From b240f536b5e121ac8a54bbf16ddf579ca593b3fe Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sat, 17 Jun 2017 07:54:35 +0200 Subject: [PATCH 001/515] Fix : Accountancy - Debug and add information in database --- htdocs/accountancy/admin/accountmodel.php | 2 +- htdocs/accountancy/admin/card.php | 2 +- htdocs/accountancy/admin/categories_list.php | 2 +- htdocs/accountancy/admin/export.php | 2 +- htdocs/accountancy/admin/fiscalyear_info.php | 2 +- htdocs/accountancy/admin/importaccounts.php | 2 +- htdocs/accountancy/admin/productaccount.php | 2 +- htdocs/accountancy/bookkeeping/balance.php | 273 +++++++++--------- .../bookkeeping/balancebymonth.php | 6 +- htdocs/accountancy/bookkeeping/card.php | 18 +- htdocs/accountancy/bookkeeping/list.php | 6 +- .../accountancy/bookkeeping/listbyaccount.php | 15 +- htdocs/accountancy/bookkeeping/listbyyear.php | 18 +- .../class/accountancycategory.class.php | 4 +- .../class/accountancyexport.class.php | 20 +- .../class/accountancysystem.class.php | 2 +- .../class/accountingaccount.class.php | 2 +- .../accountancy/class/bookkeeping.class.php | 43 ++- htdocs/accountancy/customer/card.php | 2 +- htdocs/accountancy/customer/index.php | 2 +- htdocs/accountancy/customer/lines.php | 2 +- htdocs/accountancy/customer/list.php | 2 +- htdocs/accountancy/journal/bankjournal.php | 77 ++++- .../journal/expensereportsjournal.php | 15 +- .../accountancy/journal/purchasesjournal.php | 10 +- htdocs/accountancy/journal/sellsjournal.php | 14 +- htdocs/accountancy/report/result.php | 2 +- htdocs/accountancy/supplier/card.php | 2 +- htdocs/accountancy/supplier/index.php | 2 +- htdocs/accountancy/supplier/lines.php | 2 +- htdocs/accountancy/supplier/list.php | 2 +- htdocs/accountancy/tpl/export_journal.tpl.php | 2 +- .../bank/class/paymentvarious.class.php | 25 +- htdocs/compta/bank/ligne.php | 2 +- 34 files changed, 326 insertions(+), 258 deletions(-) diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index e22e993796f..aa6c4a71551 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -8,7 +8,7 @@ * Copyright (C) 2011 Remy Younes * Copyright (C) 2012-2015 Marcos García * Copyright (C) 2012 Christophe Battarel - * Copyright (C) 2011-2016 Alexandre Spangaro + * Copyright (C) 2011-2016 Alexandre Spangaro * Copyright (C) 2015 Ferran Marcet * Copyright (C) 2016 Raphaël Doursenaud * diff --git a/htdocs/accountancy/admin/card.php b/htdocs/accountancy/admin/card.php index 73e3fdf6dd9..fa3adf1301b 100644 --- a/htdocs/accountancy/admin/card.php +++ b/htdocs/accountancy/admin/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014 Florian Henry * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index b10015baa6c..7c658d2661c 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -8,7 +8,7 @@ * Copyright (C) 2011 Remy Younes * Copyright (C) 2012-2015 Marcos García * Copyright (C) 2012 Christophe Battarel - * Copyright (C) 2011-2016 Alexandre Spangaro + * Copyright (C) 2011-2016 Alexandre Spangaro * Copyright (C) 2015 Ferran Marcet * Copyright (C) 2016 Raphaël Doursenaud * diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index eaf69f34f1f..cdec35415fd 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2015 Alexandre Spangaro + * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2014 Florian Henry * Copyright (C) 2014 Marcos García * Copyright (C) 2014 Juanjo Menent diff --git a/htdocs/accountancy/admin/fiscalyear_info.php b/htdocs/accountancy/admin/fiscalyear_info.php index 3596d73d751..baadbdc0828 100644 --- a/htdocs/accountancy/admin/fiscalyear_info.php +++ b/htdocs/accountancy/admin/fiscalyear_info.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2014-2016 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/accountancy/admin/importaccounts.php b/htdocs/accountancy/admin/importaccounts.php index 6ae94dc8ce2..93d41b3cbc6 100644 --- a/htdocs/accountancy/admin/importaccounts.php +++ b/htdocs/accountancy/admin/importaccounts.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014 Florian Henry * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php index 33bf067fa9e..5b614061dbc 100644 --- a/htdocs/accountancy/admin/productaccount.php +++ b/htdocs/accountancy/admin/productaccount.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2014 Florian Henry * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2015 Ari Elbaz (elarifr) diff --git a/htdocs/accountancy/bookkeeping/balance.php b/htdocs/accountancy/bookkeeping/balance.php index 3f2c472cc58..a32b739752a 100644 --- a/htdocs/accountancy/bookkeeping/balance.php +++ b/htdocs/accountancy/bookkeeping/balance.php @@ -1,7 +1,7 @@ - * Copyright (C) 2016 Florian Henry - * Copyright (C) 2016 Alexandre Spangaro +/* Copyright (C) 2016 Olivier Geffroy + * Copyright (C) 2016 Florian Henry + * Copyright (C) 2016 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -100,10 +100,10 @@ if (! empty($search_accountancy_code_end)) { if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers { - $search_accountancy_code_start = ''; - $search_accountancy_code_end = ''; - $search_date_start = ''; - $search_date_end = ''; + $search_accountancy_code_start = ''; + $search_accountancy_code_end = ''; + $search_date_start = ''; + $search_date_end = ''; } @@ -137,140 +137,137 @@ if ($action == 'export_csv') { } else { - $title_page = $langs->trans("AccountBalance") . (($search_date_start || $search_date_end) ? ' ' . dol_print_date($search_date_start) . '-' . dol_print_date($search_date_end) : ''); - - llxHeader('', $title_page); - - // List + $title_page = $langs->trans("AccountBalance") . (($search_date_start || $search_date_end) ? ' ' . dol_print_date($search_date_start) . '-' . dol_print_date($search_date_end) : ''); - $nbtotalofrecords = ''; - if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - $nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter); - if ($nbtotalofrecords < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } - } - - $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, $offset, $filter); - if ($result < 0) { - setEventMessages($object->error, $object->errors, 'errors'); - } - - - print '
'; - - $button = ''; - print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $options, $sortfield, $sortorder, '', $result, $result, 'title_accountancy', 0, $button); - - - $moreforfilter = ''; - - $moreforfilter .= '
'; - $moreforfilter .= $langs->trans('DateStart') . ': '; - $moreforfilter .= $form->select_date($search_date_start, 'date_start', 0, 0, 1, '', 1, 0, 1); - $moreforfilter .= $langs->trans('DateEnd') . ': '; - $moreforfilter .= $form->select_date($search_date_end, 'date_end', 0, 0, 1, '', 1, 0, 1); - $moreforfilter .= '
'; - - if (! empty($moreforfilter)) { - print '
'; - print $moreforfilter; - $parameters = array(); - $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook - print $hookmanager->resPrint; - print '
'; - } - - print ''; + llxHeader('', $title_page); - print ''; - print ''; - print ''; + + print ''; + + print ''; + print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Solde"), $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder); + print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); + print "\n"; + + $total_debit = 0; + $total_credit = 0; + $sous_total_debit = 0; + $sous_total_credit = 0; + $displayed_account = ""; + + foreach ($object->lines as $line) { + $link = ''; + $total_debit += $line->debit; + $total_credit += $line->credit; + $description = $object->get_compte_desc($line->numero_compte); // Search description of the account + $root_account_description = $object->get_compte_racine($line->numero_compte); + if (empty($description)) { + $link = '' . img_edit_add() . ''; + } + print ''; + + // Permet d'afficher le compte comptable + if ($root_account_description != $displayed_account) { + + // Affiche un Sous-Total par compte comptable + if ($displayed_account != "") { + print ''; + print "\n"; + print ''; + } + + // Affiche le compte comptable en d�but de ligne + print ""; + print ''; + print ''; + + $displayed_account = $root_account_description; + $sous_total_debit = 0; + $sous_total_credit = 0; + } + + // $object->get_compte_racine($line->numero_compte); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print "\n"; + + // Comptabilise le sous-total + $sous_total_debit += $line->debit; + $sous_total_credit += $line->credit; + } + + print ''; + print "\n"; + print ''; + + print ''; + print "\n"; + print ''; + + print "
'; - print $langs->trans('From'); - print $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', 1, array(), 1, 1, ''); - print ' '; - print $langs->trans('to'); - print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array(), 1, 1, ''); - print ''; + // List + $nbtotalofrecords = ''; + if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { + $nbtotalofrecords = $object->fetchAllBalance($sortorder, $sortfield, 0, 0, $filter); + if ($nbtotalofrecords < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + } + + $result = $object->fetchAllBalance($sortorder, $sortfield, $limit, $offset, $filter); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } + + print ''; + + $button = ''; + print_barre_liste($title_page, $page, $_SERVER["PHP_SELF"], $options, $sortfield, $sortorder, '', $result, $result, 'title_accountancy', 0, $button); + + $moreforfilter = ''; + + $moreforfilter .= '
'; + $moreforfilter .= $langs->trans('DateStart') . ': '; + $moreforfilter .= $form->select_date($search_date_start, 'date_start', 0, 0, 1, '', 1, 0, 1); + $moreforfilter .= $langs->trans('DateEnd') . ': '; + $moreforfilter .= $form->select_date($search_date_end, 'date_end', 0, 0, 1, '', 1, 0, 1); + $moreforfilter .= '
'; + + if (! empty($moreforfilter)) { + print '
'; + print $moreforfilter; + $parameters = array(); + $reshook = $hookmanager->executeHooks('printFieldPreListTitle', $parameters); // Note that $action and $object may have been modified by hook + print $hookmanager->resPrint; + print '
'; + } + + print ''; + + print ''; + print ''; + print ''; - - print ''; - - print ''; - print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_compte", "", $options, "", $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Solde"), $_SERVER["PHP_SELF"], "", $options, "", 'align="right"', $sortfield, $sortorder); - print_liste_field_titre('', $_SERVER["PHP_SELF"], "", $options, "", 'width="60" align="center"', $sortfield, $sortorder); - print "\n"; - - $total_debit = 0; - $total_credit = 0; - $sous_total_debit = 0; - $sous_total_credit = 0; - $displayed_account = ""; - - foreach ($object->lines as $line) { - $link = ''; - $total_debit += $line->debit; - $total_credit += $line->credit; - $description = $object->get_compte_desc($line->numero_compte); // Search description of the account - $root_account_description = $object->get_compte_racine($line->numero_compte); - if (empty($description)) { - $link = '' . img_edit_add() . ''; - } - print ''; - - // Permet d'afficher le compte comptable - if ($root_account_description != $displayed_account) { - - // Affiche un Sous-Total par compte comptable - if ($displayed_account != "") { - print ''; - print "\n"; - print ''; - } - - // Affiche le compte comptable en d�but de ligne - print ""; - print ''; - print ''; - - $displayed_account = $root_account_description; - $sous_total_debit = 0; - $sous_total_credit = 0; - } - - // $object->get_compte_racine($line->numero_compte); - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print "\n"; - - // Comptabilise le sous-total - $sous_total_debit += $line->debit; - $sous_total_credit += $line->credit; - } - - print ''; - print "\n"; - print ''; - - print ''; - print "\n"; - print ''; - - print "
'; + print $langs->trans('From'); + print $formaccounting->select_account($search_accountancy_code_start, 'search_accountancy_code_start', 1, array(), 1, 1, ''); + print ' '; + print $langs->trans('to'); + print $formaccounting->select_account($search_accountancy_code_end, 'search_accountancy_code_end', 1, array(), 1, 1, ''); + print ''; $searchpicto=$form->showFilterAndCheckAddButtons(0); print $searchpicto; - print '
' . $langs->trans("SubTotal") . ':' . price($sous_total_debit) . '' . price($sous_total_credit) . '' . price($sous_total_credit - $sous_total_debit) . ' 
' . $root_account_description . '
' . length_accountg($line->numero_compte) . '' . $description . '' . price($line->debit) . '' . price($line->credit) . '' . price($line->credit - $line->debit) . '' . $link; - print '
' . $langs->trans("SubTotal") . ':' . price($sous_total_debit) . '' . price($sous_total_credit) . '' . price($sous_total_credit - $sous_total_debit) . ' 
' . $langs->trans("AccountBalance") . ':' . price($total_debit) . '' . price($total_credit) . '' . price($total_credit - $total_debit) . ' 
"; - print ''; - - llxFooter(); + print '
' . $langs->trans("SubTotal") . ':' . price($sous_total_debit) . '' . price($sous_total_credit) . '' . price($sous_total_credit - $sous_total_debit) . ' 
' . $root_account_description . '
' . length_accountg($line->numero_compte) . '' . $description . '' . price($line->debit) . '' . price($line->credit) . '' . price($line->credit - $line->debit) . '' . $link; + print '
' . $langs->trans("SubTotal") . ':' . price($sous_total_debit) . '' . price($sous_total_credit) . '' . price($sous_total_credit - $sous_total_debit) . ' 
' . $langs->trans("AccountBalance") . ':' . price($total_debit) . '' . price($total_credit) . '' . price($total_credit - $total_debit) . ' 
"; + print ''; + + llxFooter(); } $db->close(); \ No newline at end of file diff --git a/htdocs/accountancy/bookkeeping/balancebymonth.php b/htdocs/accountancy/bookkeeping/balancebymonth.php index 83908f72172..1d746b4d4df 100644 --- a/htdocs/accountancy/bookkeeping/balancebymonth.php +++ b/htdocs/accountancy/bookkeeping/balancebymonth.php @@ -1,8 +1,8 @@ - * Copyright (C) 2013-2014 Alexandre Spangaro - * Copyright (C) 2014 Florian Henry - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2014 Florian Henry + * Copyright (C) 2015 Jean-François Ferry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 5c558ca0a90..660248a46a3 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -52,7 +52,7 @@ $subledger_account = GETPOST('subledger_account'); if ($subledger_account == - 1) { $subledger_account = null; } -$label_compte = GETPOST('label_compte'); +$label_operation = GETPOST('label_operation'); $debit = price2num(GETPOST('debit')); $credit = price2num(GETPOST('credit')); @@ -83,7 +83,7 @@ if ($action == "confirm_update") { } else { $book->numero_compte = $account_number; $book->subledger_account = $subledger_account; - $book->label_compte = $label_compte; + $book->label_operation = $label_operation; $book->debit = $debit; $book->credit = $credit; @@ -120,7 +120,7 @@ else if ($action == "add") { $book->numero_compte = $account_number; $book->subledger_account = $subledger_account; - $book->label_compte = $label_compte; + $book->label_operation = $label_operation; $book->debit = $debit; $book->credit = $credit; $book->doc_date = GETPOST('doc_date'); @@ -182,7 +182,7 @@ else if ($action == "confirm_create") { if (! $error) { - $book->label_compte = ''; + $book->label_operation = ''; $book->debit = 0; $book->credit = 0; $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); @@ -392,7 +392,7 @@ if ($action == 'create') { print ''; print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1, 'maxwidth300'); print ''; - print ''; + print ''; print ''; print ''; print '' . price($line->montant) . ''; @@ -404,17 +404,17 @@ if ($action == 'create') { } else { print '' . length_accountg($line->numero_compte) . ''; print '' . length_accounta($line->subledger_account) . ''; - print '' . $line->label_compte . ''; + print '' . $line->label_operation . ''; print '' . price($line->debit) . ''; print '' . price($line->credit) . ''; print '' . price($line->montant) . ''; print '' . $line->sens . ''; print ''; - print ''; + print ''; print img_edit(); print ' '; - print ''; + print ''; print img_delete(); print ''; @@ -436,7 +436,7 @@ if ($action == 'create') { print ''; print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1, 'maxwidth300'); print ''; - print ''; + print ''; print ''; print ''; print ''; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 4a7bca5e1b7..65e615cecaf 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -183,7 +183,7 @@ if (! empty($search_accountancy_aux_code_end)) { $param .= '&search_accountancy_aux_code_end=' . $search_accountancy_aux_code_end; } if (! empty($search_mvt_label)) { - $filter['t.label_compte'] = $search_mvt_label; + $filter['t.label_operation'] = $search_mvt_label; $param .= '&search_mvt_label=' . $search_mvt_label; } if (! empty($search_direction)) { @@ -424,7 +424,7 @@ print_liste_field_titre($langs->trans("Docdate"), $_SERVER['PHP_SELF'], "t.doc_d print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("AccountAccountingShort"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("SubledgerAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $param, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_compte", "", $param, "", $sortfield, $sortorder); +print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $param, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $param, 'align="right"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Codejournal"), $_SERVER['PHP_SELF'], "t.code_journal", "", $param, 'align="center"', $sortfield, $sortorder); @@ -450,7 +450,7 @@ foreach ($object->lines as $line ) { print '' . $line->doc_ref . ''; print '' . length_accountg($line->numero_compte) . ''; print '' . length_accounta($line->subledger_account) . ''; - print '' . $line->label_compte . ''; + print '' . $line->label_operation . ''; print '' . ($line->debit ? price($line->debit) : ''). ''; print '' . ($line->credit ? price($line->credit) : '') . ''; diff --git a/htdocs/accountancy/bookkeeping/listbyaccount.php b/htdocs/accountancy/bookkeeping/listbyaccount.php index 7d0ba2280ea..a1398df6fb2 100644 --- a/htdocs/accountancy/bookkeeping/listbyaccount.php +++ b/htdocs/accountancy/bookkeeping/listbyaccount.php @@ -1,9 +1,8 @@ largely based on the great work of : - * - Copyright (C) 2013-2016 Olivier Geffroy - * - Copyright (C) 2013-2016 Florian Henry - * - Copyright (C) 2013-2016 Alexandre Spangaro +/* Copyright (C) 2016 Neil Orley + * Copyright (C) 2013-2016 Olivier Geffroy + * Copyright (C) 2013-2016 Florian Henry + * Copyright (C) 2013-2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -100,11 +99,11 @@ if (!GETPOST("button_removefilter_x") && !GETPOST("button_removefilter")) // Bot $options .= '&search_accountancy_code_start=' . $search_accountancy_code_start; } if (! empty($search_label_account)) { - $filter['t.label_compte'] = $search_label_account; + $filter['t.label_operation'] = $search_label_account; $options .= '&search_label_account=' . $search_label_account; } if (! empty($search_mvt_label)) { - $filter['t.label_compte'] = $search_mvt_label; + $filter['t.label_operation'] = $search_mvt_label; $options .= '&search_mvt_label=' . $search_mvt_label; } if (! empty($search_direction)) { @@ -312,7 +311,7 @@ foreach ( $object->lines as $line ) { // Affiche un lien vers la facture client/fournisseur $doc_ref = preg_replace('/\(.*\)/', '', $line->doc_ref); - print strlen(length_accounta($line->subledger_account)) == 0 ? '' . $line->label_compte . '' : '' . $line->label_compte . '
(' . length_accounta($line->subledger_account) . ')'; + print strlen(length_accounta($line->subledger_account)) == 0 ? '' . $line->label_operation . '' : '' . $line->label_operation . '
(' . length_accounta($line->subledger_account) . ')'; print '' . ($line->debit ? price($line->debit) :''). ''; diff --git a/htdocs/accountancy/bookkeeping/listbyyear.php b/htdocs/accountancy/bookkeeping/listbyyear.php index e7e51ae67e0..becb700761a 100644 --- a/htdocs/accountancy/bookkeeping/listbyyear.php +++ b/htdocs/accountancy/bookkeeping/listbyyear.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2013-2016 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -61,7 +61,7 @@ $search_subledger_account_end = GETPOST('search_subledger_account_end', 'alpha') if ($search_subledger_account_end == - 1) { $search_subledger_account_end = ''; } -$search_label_compte = GETPOST('search_label_compte', 'alpha'); +$search_label_operation = GETPOST('search_label_operation', 'alpha'); $search_sens = GETPOST('search_sens', 'alpha'); $search_code_journal = GETPOST('search_code_journal', 'alpha'); @@ -93,7 +93,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP $search_doc_ref = ""; $search_numero_compte = ""; $search_subledger_account = ""; - $search_label_compte = ""; + $search_label_operation = ""; $search_sens = ""; $search_code_journal = ""; } @@ -144,9 +144,9 @@ if (! empty($search_subledger_account_end)) { $filter['t.subledger_account<='] = $search_subledger_account_end; $options .= '&search_subledger_account_end=' . $search_subledger_account_end; } -if (! empty($search_label_compte)) { - $filter['t.label_compte'] = $search_label_compte; - $options .= '&search_label_compte=' . $search_label_compte; +if (! empty($search_label_operation)) { + $filter['t.label_operation'] = $search_label_operation; + $options .= '&search_label_operation=' . $search_label_operation; } if (! empty($search_sens)) { $filter['t.sens'] = $search_sens; @@ -207,7 +207,7 @@ print_liste_field_titre($langs->trans("Date"), $_SERVER['PHP_SELF'], "t.doc_date print_liste_field_titre($langs->trans("Docref"), $_SERVER['PHP_SELF'], "t.doc_ref", "", $options, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("AccountAccounting"), $_SERVER['PHP_SELF'], "t.numero_compte", "", $options, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("ThirdPartyAccount"), $_SERVER['PHP_SELF'], "t.subledger_account", "", $options, "", $sortfield, $sortorder); -print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_compte", "", $options, "", $sortfield, $sortorder); +print_liste_field_titre($langs->trans("Label"), $_SERVER['PHP_SELF'], "t.label_operation", "", $options, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Debit"), $_SERVER['PHP_SELF'], "t.debit", "", $options, "", $sortfield, $sortorder); print_liste_field_titre($langs->trans("Credit"), $_SERVER['PHP_SELF'], "t.credit", "", $options, 'align="center"', $sortfield, $sortorder); print_liste_field_titre($langs->trans("Amount"), $_SERVER['PHP_SELF'], "t.montant", "", $options, 'align="center"', $sortfield, $sortorder); @@ -242,7 +242,7 @@ print ''; print ''; -print ''; +print ''; print ''; print ''; @@ -279,7 +279,7 @@ foreach ( $object->lines as $line ) { print '' . $line->doc_ref . ''; print '' . length_accountg($line->numero_compte) . ''; print '' . length_accounta($line->subledger_account) . ''; - print '' . $line->label_compte . ''; + print '' . $line->label_operation . ''; print '' . price($line->debit) . ''; print '' . price($line->credit) . ''; print '' . price($line->montant) . ''; diff --git a/htdocs/accountancy/class/accountancycategory.class.php b/htdocs/accountancy/class/accountancycategory.class.php index e4e3017ab15..db75947771e 100644 --- a/htdocs/accountancy/class/accountancycategory.class.php +++ b/htdocs/accountancy/class/accountancycategory.class.php @@ -92,7 +92,7 @@ class AccountancyCategory public function getCptBK($id) { global $conf; - $sql = "SELECT t.numero_compte, t.label_compte, t.doc_ref"; + $sql = "SELECT t.numero_compte, t.label_operation, t.doc_ref"; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as t"; $sql .= " WHERE t.numero_compte NOT IN ("; $sql .= " SELECT t.account_number"; @@ -104,7 +104,7 @@ class AccountancyCategory $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; $sql .= " AND asy.rowid = " . $conf->global->CHARTOFACCOUNTS; $sql .= " AND aa.active = 1)"; - $sql .= " GROUP BY t.numero_compte, t.label_compte, t.doc_ref"; + $sql .= " GROUP BY t.numero_compte, t.label_operation, t.doc_ref"; $sql .= " ORDER BY t.numero_compte"; $this->lines_CptBk = array (); diff --git a/htdocs/accountancy/class/accountancyexport.class.php b/htdocs/accountancy/class/accountancyexport.class.php index dc2b3195ee3..a3358337889 100644 --- a/htdocs/accountancy/class/accountancyexport.class.php +++ b/htdocs/accountancy/class/accountancyexport.class.php @@ -5,7 +5,7 @@ * Copyright (C) 2015 Florian Henry * Copyright (C) 2015 Raphaël Doursenaud * Copyright (C) 2016 Pierre-Henry Favre - * Copyright (C) 2016 Alexandre Spangaro + * Copyright (C) 2016-2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -198,7 +198,7 @@ class AccountancyExport print length_accounta($line->subledger_account) . $separator; print $line->sens . $separator; print price($line->montant) . $separator; - print $line->label_compte . $separator; + print $line->label_operation . $separator; print $line->doc_ref; print $this->end_line; } @@ -220,7 +220,7 @@ class AccountancyExport print $line->piece_num . $this->separator; print length_accountg($line->numero_compte) . $this->separator; print '' . $this->separator; - print $line->label_compte . $this->separator; + print $line->label_operation . $this->separator; print $date . $this->separator; if ($line->sens=='D') { print price($line->montant) . $this->separator; @@ -230,7 +230,7 @@ class AccountancyExport print price($line->montant) . $this->separator; } print $line->doc_ref . $this->separator; - print $line->label_compte . $this->separator; + print $line->label_operation . $this->separator; print $this->end_line; } } @@ -289,7 +289,7 @@ class AccountancyExport print price($line->debit) . $this->separator; print price($line->credit) . $this->separator; - print dol_trunc($line->label_compte, 32) . $this->separator; + print dol_trunc($line->label_operation, 32) . $this->separator; print $this->end_line; } } @@ -320,11 +320,11 @@ class AccountancyExport $Tab['date_ope'] = dol_print_date($data->doc_date, $conf->global->ACCOUNTING_EXPORT_DATE); $Tab['num_piece'] = str_pad(self::trunc($data->piece_num, 12), 12); $Tab['num_compte'] = str_pad(self::trunc($code_compta, 11), 11); - $Tab['libelle_ecriture'] = str_pad(self::trunc($data->doc_ref . $data->label_compte, 25), 25); + $Tab['libelle_ecriture'] = str_pad(self::trunc($data->doc_ref . $data->label_operation, 25), 25); $Tab['montant'] = str_pad(abs($data->montant), 13, ' ', STR_PAD_LEFT); $Tab['type_montant'] = str_pad($data->sens, 1); $Tab['vide'] = str_repeat(' ', 18); - $Tab['intitule_compte'] = str_pad(self::trunc($data->label_compte, 34), 34); + $Tab['intitule_compte'] = str_pad(self::trunc($data->label_operation, 34), 34); $Tab['end'] = 'O2003'; $Tab['end_line'] = $this->end_line; @@ -359,7 +359,7 @@ class AccountancyExport $Tab['folio'] = '000'; $Tab['date_ecriture'] = $date_ecriture; $Tab['filler'] = ' '; - $Tab['libelle_ecriture'] = str_pad(self::trunc($data->doc_ref . ' ' . $data->label_compte, 20), 20); + $Tab['libelle_ecriture'] = str_pad(self::trunc($data->doc_ref . ' ' . $data->label_operation, 20), 20); $Tab['sens'] = $data->sens; // C or D $Tab['signe_montant'] = '+'; $Tab['montant'] = str_pad(abs($data->montant), 12, '0', STR_PAD_LEFT); // TODO manage negative amount @@ -375,7 +375,7 @@ class AccountancyExport $Tab['devis'] = str_pad($conf->currency, 3); $Tab['code_journal2'] = str_pad(self::trunc($data->code_journal, 3), 3); $Tab['filler3'] = str_repeat(' ', 3); - $Tab['libelle_ecriture2'] = str_pad(self::trunc($data->doc_ref . ' ' . $data->label_compte, 32), 32); + $Tab['libelle_ecriture2'] = str_pad(self::trunc($data->doc_ref . ' ' . $data->label_operation, 32), 32); $Tab['num_piece3'] = str_pad(self::trunc($data->piece_num, 10), 10); $Tab['filler4'] = str_repeat(' ', 73); @@ -406,7 +406,7 @@ class AccountancyExport print $line->code_journal . $this->separator; print length_accountg($line->numero_compte) . $this->separator; print substr(length_accountg($line->numero_compte),0,2) . $this->separator; - print '"'.dol_trunc($line->label_compte,40,'right','UTF-8',1).'"' . $this->separator; + print '"'.dol_trunc($line->label_operation,40,'right','UTF-8',1).'"' . $this->separator; print '"'.dol_trunc($line->piece_num,15,'right','UTF-8',1).'"'.$this->separator; print price2num($line->montant).$this->separator; print $line->sens.$this->separator; diff --git a/htdocs/accountancy/class/accountancysystem.class.php b/htdocs/accountancy/class/accountancysystem.class.php index a1c90a97b5b..87d1ccd663c 100644 --- a/htdocs/accountancy/class/accountancysystem.class.php +++ b/htdocs/accountancy/class/accountancysystem.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2014 Alexandre Spangaro + * Copyright (C) 2013-2014 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/accountancy/class/accountingaccount.class.php b/htdocs/accountancy/class/accountingaccount.class.php index a526f9171a6..1dad83512e3 100644 --- a/htdocs/accountancy/class/accountingaccount.class.php +++ b/htdocs/accountancy/class/accountingaccount.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2015 Ari Elbaz (elarifr) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index d607c1dc287..2e826b55e08 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1,6 +1,6 @@ - * Copyright (C) 2015-2016 Alexandre Spangaro +/* Copyright (C) 2014-2016 Olivier Geffroy + * Copyright (C) 2015-2017 Alexandre Spangaro * Copyright (C) 2015-2016 Florian Henry * * This program is free software; you can redistribute it and/or modify @@ -80,6 +80,7 @@ class BookKeeping extends CommonObject public $subledger_label; public $numero_compte; public $label_compte; + public $label_operation; public $debit; public $credit; public $montant; @@ -144,6 +145,9 @@ class BookKeeping extends CommonObject if (isset($this->label_compte)) { $this->label_compte = trim($this->label_compte); } + if (isset($this->label_operation)) { + $this->label_operation = trim($this->label_operation); + } if (isset($this->debit)) { $this->debit = trim($this->debit); } @@ -263,6 +267,7 @@ class BookKeeping extends CommonObject $sql .= ", subledger_label"; $sql .= ", numero_compte"; $sql .= ", label_compte"; + $sql .= ", label_operation"; $sql .= ", debit"; $sql .= ", credit"; $sql .= ", montant"; @@ -284,6 +289,7 @@ class BookKeeping extends CommonObject $sql .= ",'" . $this->db->escape($this->subledger_label) . "'"; $sql .= ",'" . $this->db->escape($this->numero_compte) . "'"; $sql .= ",'" . $this->db->escape($this->label_compte) . "'"; + $sql .= ",'" . $this->db->escape($this->label_operation) . "'"; $sql .= "," . $this->debit; $sql .= "," . $this->credit; $sql .= "," . $this->montant; @@ -393,6 +399,9 @@ class BookKeeping extends CommonObject if (isset($this->label_compte)) { $this->label_compte = trim($this->label_compte); } + if (isset($this->label_operation)) { + $this->label_operation = trim($this->label_operation); + } if (isset($this->debit)) { $this->debit = trim($this->debit); } @@ -438,6 +447,7 @@ class BookKeeping extends CommonObject $sql .= 'subledger_label,'; $sql .= 'numero_compte,'; $sql .= 'label_compte,'; + $sql .= 'label_operation,'; $sql .= 'debit,'; $sql .= 'credit,'; $sql .= 'montant,'; @@ -459,6 +469,7 @@ class BookKeeping extends CommonObject $sql .= ' ' . (! isset($this->subledger_label) ? 'NULL' : "'" . $this->db->escape($this->subledger_label) . "'") . ','; $sql .= ' ' . (! isset($this->numero_compte) ? "NULL" : "'" . $this->db->escape($this->numero_compte) . "'") . ','; $sql .= ' ' . (! isset($this->label_compte) ? 'NULL' : "'" . $this->db->escape($this->label_compte) . "'") . ','; + $sql .= ' ' . (! isset($this->label_operation) ? 'NULL' : "'" . $this->db->escape($this->label_operation) . "'") . ','; $sql .= ' ' . (! isset($this->debit) ? 'NULL' : $this->debit ). ','; $sql .= ' ' . (! isset($this->credit) ? 'NULL' : $this->credit ). ','; $sql .= ' ' . (! isset($this->montant) ? 'NULL' : $this->montant ). ','; @@ -531,6 +542,7 @@ class BookKeeping extends CommonObject $sql .= " t.subledger_label,"; $sql .= " t.numero_compte,"; $sql .= " t.label_compte,"; + $sql .= " t.label_operation,"; $sql .= " t.debit,"; $sql .= " t.credit,"; $sql .= " t.montant,"; @@ -567,6 +579,7 @@ class BookKeeping extends CommonObject $this->subledger_label = $obj->subledger_label; $this->numero_compte = $obj->numero_compte; $this->label_compte = $obj->label_compte; + $this->label_operation = $obj->label_operation; $this->debit = $obj->debit; $this->credit = $obj->credit; $this->montant = $obj->montant; @@ -621,6 +634,7 @@ class BookKeeping extends CommonObject $sql .= " t.subledger_label,"; $sql .= " t.numero_compte,"; $sql .= " t.label_compte,"; + $sql .= " t.label_operation,"; $sql .= " t.debit,"; $sql .= " t.credit,"; $sql .= " t.montant,"; @@ -644,9 +658,9 @@ class BookKeeping extends CommonObject $sqlwhere[] = $key . '=' . $value; } elseif ($key == 't.subledger_account' || $key == 't.numero_compte') { $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; - } elseif ($key == 't.label_compte') { + } elseif ($key == 't.label_operation') { $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; - }else { + } else { $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; } } @@ -686,6 +700,7 @@ class BookKeeping extends CommonObject $line->subledger_label = $obj->subledger_label; $line->numero_compte = $obj->numero_compte; $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; $line->debit = $obj->debit; $line->credit = $obj->credit; $line->montant = $obj->montant; @@ -725,7 +740,7 @@ class BookKeeping extends CommonObject public function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') { global $conf; - dol_syslog(__METHOD__, LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $sql = 'SELECT'; $sql .= ' t.rowid,'; @@ -739,6 +754,7 @@ class BookKeeping extends CommonObject $sql .= " t.subledger_label,"; $sql .= " t.numero_compte,"; $sql .= " t.label_compte,"; + $sql .= " t.label_operation,"; $sql .= " t.debit,"; $sql .= " t.credit,"; $sql .= " t.montant,"; @@ -801,6 +817,7 @@ class BookKeeping extends CommonObject $line->subledger_label = $obj->subledger_label; $line->numero_compte = $obj->numero_compte; $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; $line->debit = $obj->debit; $line->credit = $obj->credit; $line->montant = $obj->montant; @@ -945,6 +962,9 @@ class BookKeeping extends CommonObject if (isset($this->label_compte)) { $this->label_compte = trim($this->label_compte); } + if (isset($this->label_operation)) { + $this->label_operation = trim($this->label_operation); + } if (isset($this->debit)) { $this->debit = trim($this->debit); } @@ -988,6 +1008,7 @@ class BookKeeping extends CommonObject $sql .= ' subledger_label = ' . (isset($this->subledger_label) ? "'" . $this->db->escape($this->subledger_label) . "'" : "null") . ','; $sql .= ' numero_compte = ' . (isset($this->numero_compte) ? "'" . $this->db->escape($this->numero_compte) . "'" : "null") . ','; $sql .= ' label_compte = ' . (isset($this->label_compte) ? "'" . $this->db->escape($this->label_compte) . "'" : "null") . ','; + $sql .= ' label_operation = ' . (isset($this->label_operation) ? "'" . $this->db->escape($this->label_operation) . "'" : "null") . ','; $sql .= ' debit = ' . (isset($this->debit) ? $this->debit : "null") . ','; $sql .= ' credit = ' . (isset($this->credit) ? $this->credit : "null") . ','; $sql .= ' montant = ' . (isset($this->montant) ? $this->montant : "null") . ','; @@ -1245,14 +1266,15 @@ class BookKeeping extends CommonObject $this->fk_doc = ''; $this->fk_docdet = ''; $this->thirdparty_code = 'CU001'; - $this->subledger_account = '410CU001'; + $this->subledger_account = '41100001'; $this->subledger_label = 'My customer company'; - $this->numero_compte = '410'; - $this->label_compte = ''; + $this->numero_compte = '411'; + $this->label_compte = 'Customer'; + $this->label_operation = 'Sales of pea'; $this->debit = 99.9; $this->credit = ''; $this->montant = ''; - $this->sens = ''; + $this->sens = 'D'; $this->fk_user_author = $user->id; $this->import_key = ''; $this->code_journal = 'VT'; @@ -1358,6 +1380,7 @@ class BookKeeping extends CommonObject $line->subledger_label = $obj->subledger_label; $line->numero_compte = $obj->numero_compte; $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; $line->debit = $obj->debit; $line->credit = $obj->credit; $line->montant = $obj->montant; @@ -1416,6 +1439,7 @@ class BookKeeping extends CommonObject $line->subledger_label = $obj->subledger_label; $line->numero_compte = $obj->numero_compte; $line->label_compte = $obj->label_compte; + $line->label_operation = $obj->label_operation; $line->debit = $obj->debit; $line->credit = $obj->credit; $line->montant = $obj->montant; @@ -1606,6 +1630,7 @@ class BookKeepingLine public $subledger_label; public $numero_compte; public $label_compte; + public $label_operation; public $debit; public $credit; public $montant; diff --git a/htdocs/accountancy/customer/card.php b/htdocs/accountancy/customer/card.php index c436fdfd088..a10cd24adc4 100644 --- a/htdocs/accountancy/customer/card.php +++ b/htdocs/accountancy/customer/card.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index deca83b6f12..24e066917bc 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2014 Juanjo Menent * Copyright (C) 2015 Jean-François Ferry * diff --git a/htdocs/accountancy/customer/lines.php b/htdocs/accountancy/customer/lines.php index a5dfa3941d1..b5778ce86f2 100644 --- a/htdocs/accountancy/customer/lines.php +++ b/htdocs/accountancy/customer/lines.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2014-2016 Florian Henry * Copyright (C) 2014 Juanjo Menent diff --git a/htdocs/accountancy/customer/list.php b/htdocs/accountancy/customer/list.php index 56765e1ba4f..85a97fb3a1e 100644 --- a/htdocs/accountancy/customer/list.php +++ b/htdocs/accountancy/customer/list.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2016 Alexandre Spangaro + * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 568edf051ff..bc27ebfa24f 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -50,6 +50,7 @@ require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; require_once DOL_DOCUMENT_ROOT . '/societe/class/client.class.php'; require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT . '/expensereport/class/paymentexpensereport.class.php'; +require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/paymentvarious.class.php'; $langs->load("companies"); $langs->load("other"); @@ -60,6 +61,7 @@ $langs->load('donations'); $langs->load("accountancy"); $langs->load("trips"); $langs->load("salaries"); +$langs->load("hrm"); // Multi journal $id_journal = GETPOST('id_journal', 'int'); @@ -131,6 +133,7 @@ $paymentdonstatic = new PaymentDonation($db); $paymentvatstatic = new TVA($db); $paymentsalstatic = new PaymentSalary($db); $paymentexpensereportstatic = new PaymentExpenseReport($db); +$paymentvariousstatic = new PaymentVarious($db); // Get code of finance journal $accountingjournalstatic = new AccountingJournal($db); @@ -208,7 +211,7 @@ if ($result) { // Now loop on each link of record in bank. foreach ( $links as $key => $val ) { - if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary'))) // So we excluded 'company' here + if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary', 'payment_various'))) // So we excluded 'company' here { // We save tabtype for a future use, to remember what kind of payment it is $tabtype[$obj->rowid] = $links[$key]['type']; @@ -250,9 +253,9 @@ if ($result) { $sqlmid = 'SELECT cchgsoc.accountancy_code'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "c_chargesociales cchgsoc "; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON chgsoc.fk_type=cchgsoc.id"; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON paycharg.fk_charge=chgsoc.rowid"; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON bkurl.url_id=paycharg.rowid"; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "chargesociales as chgsoc ON chgsoc.fk_type=cchgsoc.id"; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paycharg ON paycharg.fk_charge=chgsoc.rowid"; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "bank_url as bkurl ON bkurl.url_id=paycharg.rowid"; $sqlmid .= " WHERE bkurl.fk_bank=" . $obj->rowid; dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); @@ -285,6 +288,15 @@ if ($result) { $paymentexpensereportstatic->fk_expensereport = $links[$key]['url_id']; $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentexpensereportstatic->getNomUrl(2); $tabpay[$obj->rowid]["fk_expensereport"] = $paymentexpensereportstatic->id; + } else if ($links[$key]['type'] == 'payment_various') { + $paymentvariousstatic->id = $links[$key]['url_id']; + $paymentvariousstatic->ref = $links[$key]['url_id']; + $paymentvariousstatic->label = $links[$key]['label']; + $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvariousstatic->getNomUrl(2); + $tabpay[$obj->rowid]["paymentvariousid"] = $paymentvariousstatic->id; + $paymentvariousstatic->fetch($paymentvariousstatic->id); + $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : $langs->trans("CodeNotDef")); + $tabtp[$obj->rowid][$account_various] += $obj->amount; } else if ($links[$key]['type'] == 'banktransfert') { $tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("BankTransfer"); $tabtp[$obj->rowid][$account_transfer] += $obj->amount; @@ -353,7 +365,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->fk_doc = $key; $bookkeeping->fk_docdet = $val["fk_bank"]; $bookkeeping->numero_compte = $k; - $bookkeeping->label_compte = $compte->label; + $bookkeeping->label_operation = $val["label"]; $bookkeeping->montant = ($mt < 0 ? - $mt : $mt); $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0 ? $mt : 0); @@ -412,8 +424,11 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->doc_ref = $langs->trans("Donation") . ' (' . $val["paymentdonationid"] . ')'; // Rowid of donation } else if ($tabtype[$key] == 'payment_salary') { $bookkeeping->subledger_account = ''; - $bookkeeping->label_compte = $tabuser[$key]['name']; + $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Ref of salary payment + } else if ($tabtype[$key] == 'payment_various') { + $bookkeeping->subledger_account = ''; + $bookkeeping->doc_ref = $langs->trans("VariousPayment") . ' (' . $val["paymentvariousid"] . ')'; // Ref of various payment } $result = $bookkeeping->create($user); @@ -447,7 +462,7 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->doc_type = 'bank'; $bookkeeping->fk_doc = $key; $bookkeeping->fk_docdet = $val["fk_bank"]; - $bookkeeping->label_compte = $tabcompany[$key]['name']; + $bookkeeping->label_operation = $tabcompany[$key]['name']; $bookkeeping->montant = ($mt < 0 ? - $mt : $mt); $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0 ? - $mt : 0); @@ -473,7 +488,8 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->doc_ref = $objmid->facnumber; } $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; - $bookkeeping->numero_compte = $k; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; } else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice $sqlmid = 'SELECT facf.ref_supplier,facf.ref'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; @@ -487,7 +503,23 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')'; } $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; - $bookkeeping->numero_compte = $k; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; + } else if ($tabtype[$key] == 'payment_expensereport') { + $bookkeeping->subledger_account = $tabuser[$key]['accountancy_code']; + $bookkeeping->subledger_label = $tabuser[$key]['name']; + $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $bookkeeping->label_operation = $tabuser[$key]['name']; + $sqlmid = 'SELECT e.ref'; + $sqlmid .= " FROM " . MAIN_DB_PREFIX . "expensereport as e"; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "payment_expensereport as payer ON payer.fk_expensereport=e.rowid"; + $sqlmid .= " WHERE payer.fk_expensereport=" . $val["fk_expensereport"]; + dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $bookkeeping->doc_ref = $objmid->ref; // Ref of expensereport + } } else if ($tabtype[$key] == 'payment_vat') { $bookkeeping->subledger_account = ''; $bookkeeping->numero_compte = $k; @@ -499,16 +531,19 @@ if (! $error && $action == 'writebookkeeping') { } else if ($tabtype[$key] == 'payment_salary') { $bookkeeping->subledger_account = $tabuser[$key]['accountancy_code']; $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; - $bookkeeping->label_compte = $tabuser[$key]['name']; + $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Rowid of salary payment + } else if ($tabtype[$key] == 'payment_various') { + $bookkeeping->subledger_account = ''; + $bookkeeping->numero_compte = $k; + $bookkeeping->doc_ref = $langs->trans("VariousPayment") . ' (' . $val["paymentvariousid"] . ')'; // Rowid of various payment } else if ($tabtype[$key] == 'banktransfert') { $bookkeeping->subledger_account = ''; $bookkeeping->numero_compte = $k; } else { - // FIXME Should be a temporary account ??? + // Temporary account $bookkeeping->doc_ref = $k; - //$bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; - $bookkeeping->numero_compte = 'CodeNotDef'; + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE; } $result = $bookkeeping->create($user); @@ -745,6 +780,7 @@ if (empty($action) || $action == 'view') { $vatstatic = new Tva($db); $donationstatic = new Don($db); $salarystatic = new PaymentSalary($db); + $variousstatic = new PaymentVarious($db); llxHeader('', $langs->trans("FinanceJournal")); @@ -913,7 +949,20 @@ if (empty($action) || $action == 'view') { } else dol_print_error($db); } - + elseif ($tabtype[$key] == 'payment_various') + { + $sqlmid = 'SELECT v.rowid as id'; + $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_various as v"; + $sqlmid .= " WHERE v.rowid=" . $val["paymentvariousid"]; + dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $variousstatic->fetch($objmid->id); + $ref=$variousstatic->getNomUrl(1); + } + else dol_print_error($db); + } /*$invoicestatic->id = $key; $invoicestatic->ref = $val["ref"]; diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 3da9e09aeda..6dba1443ae1 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -136,7 +136,7 @@ if ($result) { // Define array to display all VAT rates that use this accounting account $compta_tva if ((! price2num($obj->tva_tx)) || ! empty($obj->vat_src_code)) { - $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); + $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); } $taber[$obj->rowid]["date"] = $db->jdate($obj->de); @@ -148,7 +148,7 @@ if ($result) { $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva; $tabuser[$obj->rowid] = array ( 'id' => $obj->uid, - 'name' => $obj->firstname.' '.$obj->lastname, + 'name' => dolGetFirstLastname($obj->firstname, $obj->lastname), 'user_accountancy_code' => $obj->user_accountancy_account ); @@ -169,6 +169,7 @@ if ($action == 'writebookkeeping') { $db->begin(); + // Thirdparty if (! $errorforline) { foreach ( $tabttc[$key] as $k => $mt ) { @@ -183,7 +184,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = $tabuser[$key]['user_accountancy_code']; $bookkeeping->subledger_label = $tabuser[$key]['user_accountancy_code']; - $bookkeeping->label_compte = $tabuser[$key]['name']; + $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; @@ -212,9 +213,9 @@ if ($action == 'writebookkeeping') { } } + // Fees if (! $errorforline) { - // Fees foreach ( $tabht[$key] as $k => $mt ) { $accountingaccount = new AccountingAccount($db); $accountingaccount->fetch(null, $k, true); @@ -231,7 +232,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_compte = $accountingaccount->label; + $bookkeeping->label_operation = $accountingaccount->label; $bookkeeping->numero_compte = $k; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; @@ -261,9 +262,9 @@ if ($action == 'writebookkeeping') { } } + // VAT if (! $errorforline) { - // VAT // var_dump($tabtva); foreach ( $tabtva[$key] as $k => $mt ) { if ($mt) { @@ -277,7 +278,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_compte = $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); + $bookkeeping->label_operation = $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); $bookkeeping->numero_compte = $k; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 9ef1afdac38..e80ae3ba059 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -3,7 +3,7 @@ * Copyright (C) 2007-2010 Jean Heimburger * Copyright (C) 2011 Juanjo Menent * Copyright (C) 2012 Regis Houssin - * Copyright (C) 2013-2015 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2013-2016 Olivier Geffroy * Copyright (C) 2013-2016 Florian Henry * @@ -208,10 +208,10 @@ if ($action == 'writebookkeeping') { $companystatic->code_fournisseur = $tabcompany[$key]['code_fournisseur']; $companystatic->client = $tabcompany[$key]['code_client']; + // Thirdparty if (! $errorforline) { foreach ( $tabttc[$key] as $k => $mt ) { - // get compte id and label if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; @@ -223,7 +223,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = $tabcompany[$key]['code_compta_fournisseur']; $bookkeeping->subledger_label = ''; // TODO To complete - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("subledger_account"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("subledger_account"); $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; @@ -272,7 +272,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $accountingaccount->label; + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $accountingaccount->label; $bookkeeping->numero_compte = $k; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; @@ -319,7 +319,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); $bookkeeping->numero_compte = $k; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 4eb4dc72171..a50f8be7fb9 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -1,13 +1,13 @@ * Copyright (C) 2007-2010 Jean Heimburger - * Copyright (C) 2011 Juanjo Menent - * Copyright (C) 2012 Regis Houssin - * Copyright (C) 2013 Christophe Battarel + * Copyright (C) 2011 Juanjo Menent + * Copyright (C) 2012 Regis Houssin + * Copyright (C) 2013 Christophe Battarel * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2013-2016 Florian Henry * Copyright (C) 2013-2016 Olivier Geffroy - * Copyright (C) 2014 Raphaël Doursenaud + * Copyright (C) 2014 Raphaël Doursenaud * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -239,7 +239,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; $bookkeeping->subledger_label = ''; // TODO To complete $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("subledger_account"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("subledger_account"); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0) ? $mt : 0; @@ -286,7 +286,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label; + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0) ? $mt : 0; @@ -332,7 +332,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; - $bookkeeping->label_compte = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.join(', ',$def_tva[$key][$k]); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.join(', ',$def_tva[$key][$k]); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt < 0) ? $mt : 0; diff --git a/htdocs/accountancy/report/result.php b/htdocs/accountancy/report/result.php index aa31185604a..801ba0a2007 100644 --- a/htdocs/accountancy/report/result.php +++ b/htdocs/accountancy/report/result.php @@ -1,6 +1,6 @@ - * Copyright (C) 2016 Alexandre Spangaro + * Copyright (C) 2016 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/accountancy/supplier/card.php b/htdocs/accountancy/supplier/card.php index 69a7855dfd2..b73c40ced74 100644 --- a/htdocs/accountancy/supplier/card.php +++ b/htdocs/accountancy/supplier/card.php @@ -1,7 +1,7 @@ * Copyright (C) 2005 Simon TOSSER - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2013-2014 Olivier Geffroy * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 805c5e40420..3aa8e501bb9 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -1,7 +1,7 @@ * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2015 Alexandre Spangaro + * Copyright (C) 2013-2015 Alexandre Spangaro * Copyright (C) 2014 Juanjo Menent * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/accountancy/supplier/lines.php b/htdocs/accountancy/supplier/lines.php index 164525d5214..dc6b5e7ec20 100644 --- a/htdocs/accountancy/supplier/lines.php +++ b/htdocs/accountancy/supplier/lines.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2016 Florian Henry * Copyright (C) 2014 Juanjo Menent diff --git a/htdocs/accountancy/supplier/list.php b/htdocs/accountancy/supplier/list.php index 26000c3fb66..93aeb1746f5 100644 --- a/htdocs/accountancy/supplier/list.php +++ b/htdocs/accountancy/supplier/list.php @@ -1,6 +1,6 @@ - * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2013-2017 Alexandre Spangaro * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2014 Juanjo Menent s diff --git a/htdocs/accountancy/tpl/export_journal.tpl.php b/htdocs/accountancy/tpl/export_journal.tpl.php index f69b47a8017..b5b6920e853 100644 --- a/htdocs/accountancy/tpl/export_journal.tpl.php +++ b/htdocs/accountancy/tpl/export_journal.tpl.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2015 Alexandre Spangaro * Copyright (C) 2016 Charlie Benke * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index d0c0d61a954..939872ce7fd 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +16,9 @@ */ /** - * \file htdocs/compta/bank/class/paymentvarious.class.php - * \ingroup salaries - * \brief Class for salaries module payment + * \file htdocs/compta/bank/class/paymentvarious.class.php + * \ingroup bank + * \brief Class for various payment */ // Put here all includes required by your class file @@ -30,7 +30,7 @@ require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php'; */ class PaymentVarious extends CommonObject { - //public $element='payment_various'; //!< Id that identify managed objects + //public $element='payment_various'; //!< Id that identify managed objects //public $table_element='payment_various'; //!< Name of table without prefix where object is stored var $tms; @@ -74,7 +74,6 @@ class PaymentVarious extends CommonObject $error=0; // Clean parameters - $this->fk_user=trim($this->fk_user); $this->amount=trim($this->amount); $this->label=trim($this->label); $this->note=trim($this->note); @@ -85,10 +84,9 @@ class PaymentVarious extends CommonObject $this->db->begin(); // Update request - $sql = "UPDATE ".MAIN_DB_PREFIX."payment_salary SET"; + $sql = "UPDATE ".MAIN_DB_PREFIX."payment_various SET"; $sql.= " tms=".$this->db->idate($this->tms).","; - $sql.= " fk_user=".$this->fk_user.","; $sql.= " datep=".$this->db->idate($this->datep).","; $sql.= " datev=".$this->db->idate($this->datev).","; $sql.= " sens=".$this->sens.","; @@ -114,10 +112,10 @@ class PaymentVarious extends CommonObject if (! $notrigger) { - // Call trigger - $result=$this->call_trigger('PAYMENT_SALARY_MODIFY',$user); - if ($result < 0) $error++; - // End call triggers + // Call trigger + $result=$this->call_trigger('PAYMENT_VARIOUS_MODIFY',$user); + if ($result < 0) $error++; + // End call triggers } if (! $error) @@ -178,7 +176,6 @@ class PaymentVarious extends CommonObject $this->id = $obj->rowid; $this->ref = $obj->rowid; $this->tms = $this->db->jdate($obj->tms); - $this->fk_user = $obj->fk_user; $this->datep = $this->db->jdate($obj->datep); $this->datev = $this->db->jdate($obj->datev); $this->sens = $obj->sens; @@ -252,12 +249,12 @@ class PaymentVarious extends CommonObject $this->id=0; $this->tms=''; - $this->fk_user=''; $this->datep=''; $this->datev=''; $this->sens=''; $this->amount=''; $this->label=''; + $this->accountancy_code=''; $this->note=''; $this->fk_bank=''; $this->fk_user_author=''; diff --git a/htdocs/compta/bank/ligne.php b/htdocs/compta/bank/ligne.php index b50bf07d31a..99362167a07 100644 --- a/htdocs/compta/bank/ligne.php +++ b/htdocs/compta/bank/ligne.php @@ -49,7 +49,7 @@ $confirm=GETPOST('confirm','alpha'); $rowid=GETPOST("rowid",'int'); $orig_account=GETPOST("orig_account"); $backtopage=GETPOST('backtopage'); -$cancel=GETPOSt('cancel'); +$cancel=GETPOST('cancel'); // Security check $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref :'')); From 240e9637fa03e1bf03add7712f050b26d2d20e7e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 17 Jun 2017 14:43:15 +0200 Subject: [PATCH 002/515] New: add extrafields API REST --- .../class/api_dictionaryextrafields.class.php | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 htdocs/api/class/api_dictionaryextrafields.class.php diff --git a/htdocs/api/class/api_dictionaryextrafields.class.php b/htdocs/api/class/api_dictionaryextrafields.class.php new file mode 100644 index 00000000000..69f574797c7 --- /dev/null +++ b/htdocs/api/class/api_dictionaryextrafields.class.php @@ -0,0 +1,112 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +use Luracast\Restler\RestException; + +//require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; + +/** + * API class for extra fields (content of the extrafields) + * + * @access protected + * @class DolibarrApiAccess {@requires user,external} + */ +class DictionaryExtraFields extends DolibarrApi +{ + /** + * Constructor + */ + function __construct() + { + global $db; + $this->db = $db; + } + + /** + * Get the list of extra fields. + * + * @param string $sortfield Sort field + * @param string $sortorder Sort order + * @param string $type Type of element ('adherent', 'commande', 'thirdparty', 'facture', 'propal', 'product', ...) + * @param string $sqlfilters Other criteria to filter answers separated by a comma. Syntax example "(t.label:like:'SO-%')" + * @return List of events types + * + * @throws RestException + */ + function index($sortfield = "t.pos", $sortorder = 'ASC', $type = '', $sqlfilters = '') + { + $list = array(); + + if ($type == 'thirdparty') $type='societe'; + if ($type == 'contact') $type='socpeople'; + + $sql = "SELECT t.rowid, t.name, t.label, t.type, t.size, t.elementtype, t.fieldunique, t.fieldrequired, t.param, t.pos, t.alwayseditable, t.perms, t.list, t.ishidden, t.fielddefault, t.fieldcomputed"; + $sql.= " FROM ".MAIN_DB_PREFIX."extrafields as t"; + $sql.= " WHERE t.entity IN (".getEntity('extrafields').")"; + if (! empty($type)) $sql.= " AND t.elementtype = '".$this->db->escape($type)."'"; + // Add sql filters + if ($sqlfilters) + { + if (! DolibarrApi::_checkFilters($sqlfilters)) + { + throw new RestException(503, 'Error when validating parameter sqlfilters '.$sqlfilters); + } + $regexstring='\(([^:\'\(\)]+:[^:\'\(\)]+:[^:\(\)]+)\)'; + $sql.=" AND (".preg_replace_callback('/'.$regexstring.'/', 'DolibarrApi::_forge_criteria_callback', $sqlfilters).")"; + } + + $sql.= $this->db->order($sortfield, $sortorder); + + $resql=$this->db->query($sql); + if ($resql) + { + if ($this->db->num_rows($resql)) + { + while ($tab = $this->db->fetch_object($resql)) + { + // New usage + $list[$tab->elementtype][$tab->name]['type']=$tab->type; + $list[$tab->elementtype][$tab->name]['label']=$tab->label; + $list[$tab->elementtype][$tab->name]['size']=$tab->size; + $list[$tab->elementtype][$tab->name]['elementtype']=$tab->elementtype; + $list[$tab->elementtype][$tab->name]['default']=$tab->fielddefault; + $list[$tab->elementtype][$tab->name]['computed']=$tab->fieldcomputed; + $list[$tab->elementtype][$tab->name]['unique']=$tab->fieldunique; + $list[$tab->elementtype][$tab->name]['required']=$tab->fieldrequired; + $list[$tab->elementtype][$tab->name]['param']=($tab->param ? unserialize($tab->param) : ''); + $list[$tab->elementtype][$tab->name]['pos']=$tab->pos; + $list[$tab->elementtype][$tab->name]['alwayseditable']=$tab->alwayseditable; + $list[$tab->elementtype][$tab->name]['perms']=$tab->perms; + $list[$tab->elementtype][$tab->name]['list']=$tab->list; + $list[$tab->elementtype][$tab->name]['ishidden']=$tab->ishidden; + } + } + } + else + { + throw new RestException(503, 'Error when retrieving list of extra fields : '.$this->db->lasterror()); + } + + if (! count($list)) + { + throw new RestException(404, 'No extrafield found'); + } + + return $list; + } + +} From 48866f07325c1374c1f8112382674f1160b3a74c Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 17 Jun 2017 14:43:31 +0200 Subject: [PATCH 003/515] Fix: wrong array format --- htdocs/core/class/extrafields.class.php | 46 ++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 4b5f151ec72..24be010ff4c 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1,13 +1,13 @@ - * Copyright (C) 2002-2003 Jean-Louis Bergamo - * Copyright (C) 2004 Sebastien Di Cintio - * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2009-2012 Laurent Destailleur - * Copyright (C) 2009-2012 Regis Houssin - * Copyright (C) 2013 Florian Henry - * Copyright (C) 2015 Charles-Fr BENKE - * Copyright (C) 2016 Raphaël Doursenaud +/* Copyright (C) 2002-2003 Rodolphe Quiedeville + * Copyright (C) 2002-2003 Jean-Louis Bergamo + * Copyright (C) 2004 Sebastien Di Cintio + * Copyright (C) 2004 Benoit Mortier + * Copyright (C) 2009-2012 Laurent Destailleur + * Copyright (C) 2009-2017 Regis Houssin + * Copyright (C) 2013 Florian Henry + * Copyright (C) 2015 Charles-Fr BENKE + * Copyright (C) 2016 Raphaël Doursenaud * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -702,20 +702,20 @@ class ExtraFields $this->attribute_hidden[$tab->name]=$tab->ishidden; // New usage - $this->attributes[$tab->elementtype]['type'][$tab->name]=$tab->type; - $this->attributes[$tab->elementtype]['label'][$tab->name]=$tab->label; - $this->attributes[$tab->elementtype]['size'][$tab->name]=$tab->size; - $this->attributes[$tab->elementtype]['elementtype'][$tab->name]=$tab->elementtype; - $this->attributes[$tab->elementtype]['default'][$tab->name]=$tab->fielddefault; - $this->attributes[$tab->elementtype]['computed'][$tab->name]=$tab->fieldcomputed; - $this->attributes[$tab->elementtype]['unique'][$tab->name]=$tab->fieldunique; - $this->attributes[$tab->elementtype]['required'][$tab->name]=$tab->fieldrequired; - $this->attributes[$tab->elementtype]['param'][$tab->name]=($tab->param ? unserialize($tab->param) : ''); - $this->attributes[$tab->elementtype]['pos'][$tab->name]=$tab->pos; - $this->attributes[$tab->elementtype]['alwayseditable'][$tab->name]=$tab->alwayseditable; - $this->attributes[$tab->elementtype]['perms'][$tab->name]=$tab->perms; - $this->attributes[$tab->elementtype]['list'][$tab->name]=$tab->list; - $this->attributes[$tab->elementtype]['ishidden'][$tab->name]=$tab->ishidden; + $this->attributes[$tab->elementtype][$tab->name]['type']=$tab->type; + $this->attributes[$tab->elementtype][$tab->name]['label']=$tab->label; + $this->attributes[$tab->elementtype][$tab->name]['size']=$tab->size; + $this->attributes[$tab->elementtype][$tab->name]['elementtype']=$tab->elementtype; + $this->attributes[$tab->elementtype][$tab->name]['default']=$tab->fielddefault; + $this->attributes[$tab->elementtype][$tab->name]['computed']=$tab->fieldcomputed; + $this->attributes[$tab->elementtype][$tab->name]['unique']=$tab->fieldunique; + $this->attributes[$tab->elementtype][$tab->name]['required']=$tab->fieldrequired; + $this->attributes[$tab->elementtype][$tab->name]['param']=($tab->param ? unserialize($tab->param) : ''); + $this->attributes[$tab->elementtype][$tab->name]['pos']=$tab->pos; + $this->attributes[$tab->elementtype][$tab->name]['alwayseditable']=$tab->alwayseditable; + $this->attributes[$tab->elementtype][$tab->name]['perms']=$tab->perms; + $this->attributes[$tab->elementtype][$tab->name]['list']=$tab->list; + $this->attributes[$tab->elementtype][$tab->name]['ishidden']=$tab->ishidden; } } if ($elementtype) $this->attributes[$elementtype]['loaded']=1; From fd9c30fd11ca2faa2b838977fd81219273d4d362 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Sat, 17 Jun 2017 18:30:11 +0200 Subject: [PATCH 004/515] Revert "Fix: wrong array format" This reverts commit 48866f07325c1374c1f8112382674f1160b3a74c. --- htdocs/core/class/extrafields.class.php | 46 ++++++++++++------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/htdocs/core/class/extrafields.class.php b/htdocs/core/class/extrafields.class.php index 24be010ff4c..4b5f151ec72 100644 --- a/htdocs/core/class/extrafields.class.php +++ b/htdocs/core/class/extrafields.class.php @@ -1,13 +1,13 @@ - * Copyright (C) 2002-2003 Jean-Louis Bergamo - * Copyright (C) 2004 Sebastien Di Cintio - * Copyright (C) 2004 Benoit Mortier - * Copyright (C) 2009-2012 Laurent Destailleur - * Copyright (C) 2009-2017 Regis Houssin - * Copyright (C) 2013 Florian Henry - * Copyright (C) 2015 Charles-Fr BENKE - * Copyright (C) 2016 Raphaël Doursenaud +/* Copyright (C) 2002-2003 Rodolphe Quiedeville + * Copyright (C) 2002-2003 Jean-Louis Bergamo + * Copyright (C) 2004 Sebastien Di Cintio + * Copyright (C) 2004 Benoit Mortier + * Copyright (C) 2009-2012 Laurent Destailleur + * Copyright (C) 2009-2012 Regis Houssin + * Copyright (C) 2013 Florian Henry + * Copyright (C) 2015 Charles-Fr BENKE + * Copyright (C) 2016 Raphaël Doursenaud * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -702,20 +702,20 @@ class ExtraFields $this->attribute_hidden[$tab->name]=$tab->ishidden; // New usage - $this->attributes[$tab->elementtype][$tab->name]['type']=$tab->type; - $this->attributes[$tab->elementtype][$tab->name]['label']=$tab->label; - $this->attributes[$tab->elementtype][$tab->name]['size']=$tab->size; - $this->attributes[$tab->elementtype][$tab->name]['elementtype']=$tab->elementtype; - $this->attributes[$tab->elementtype][$tab->name]['default']=$tab->fielddefault; - $this->attributes[$tab->elementtype][$tab->name]['computed']=$tab->fieldcomputed; - $this->attributes[$tab->elementtype][$tab->name]['unique']=$tab->fieldunique; - $this->attributes[$tab->elementtype][$tab->name]['required']=$tab->fieldrequired; - $this->attributes[$tab->elementtype][$tab->name]['param']=($tab->param ? unserialize($tab->param) : ''); - $this->attributes[$tab->elementtype][$tab->name]['pos']=$tab->pos; - $this->attributes[$tab->elementtype][$tab->name]['alwayseditable']=$tab->alwayseditable; - $this->attributes[$tab->elementtype][$tab->name]['perms']=$tab->perms; - $this->attributes[$tab->elementtype][$tab->name]['list']=$tab->list; - $this->attributes[$tab->elementtype][$tab->name]['ishidden']=$tab->ishidden; + $this->attributes[$tab->elementtype]['type'][$tab->name]=$tab->type; + $this->attributes[$tab->elementtype]['label'][$tab->name]=$tab->label; + $this->attributes[$tab->elementtype]['size'][$tab->name]=$tab->size; + $this->attributes[$tab->elementtype]['elementtype'][$tab->name]=$tab->elementtype; + $this->attributes[$tab->elementtype]['default'][$tab->name]=$tab->fielddefault; + $this->attributes[$tab->elementtype]['computed'][$tab->name]=$tab->fieldcomputed; + $this->attributes[$tab->elementtype]['unique'][$tab->name]=$tab->fieldunique; + $this->attributes[$tab->elementtype]['required'][$tab->name]=$tab->fieldrequired; + $this->attributes[$tab->elementtype]['param'][$tab->name]=($tab->param ? unserialize($tab->param) : ''); + $this->attributes[$tab->elementtype]['pos'][$tab->name]=$tab->pos; + $this->attributes[$tab->elementtype]['alwayseditable'][$tab->name]=$tab->alwayseditable; + $this->attributes[$tab->elementtype]['perms'][$tab->name]=$tab->perms; + $this->attributes[$tab->elementtype]['list'][$tab->name]=$tab->list; + $this->attributes[$tab->elementtype]['ishidden'][$tab->name]=$tab->ishidden; } } if ($elementtype) $this->attributes[$elementtype]['loaded']=1; From e9b6afd2aa2fe2086665fcdd1c435737a2aeb596 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Sun, 18 Jun 2017 22:17:32 +0200 Subject: [PATCH 005/515] Add last session coding - Add temporaly ledger --- htdocs/accountancy/bookkeeping/card.php | 405 ++++++++------- htdocs/accountancy/bookkeeping/list.php | 2 +- .../class/accountingjournal.class.php | 136 +++-- .../accountancy/class/bookkeeping.class.php | 466 +++++++++++------- htdocs/core/menus/standard/auguria.lib.php | 53 +- .../install/mysql/migration/5.0.0-6.0.0.sql | 40 ++ .../llx_accounting_bookkeeping_tmp.key.sql | 22 + .../tables/llx_accounting_bookkeeping_tmp.sql | 53 ++ htdocs/langs/en_US/accountancy.lang | 1 + 9 files changed, 795 insertions(+), 383 deletions(-) create mode 100644 htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.key.sql create mode 100644 htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 660248a46a3..0df46f21740 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2016 Florian Henry - * Copyright (C) 2013-2017 Alexandre Spangaro +/* Copyright (C) 2013-2017 Olivier Geffroy + * Copyright (C) 2013-2017 Florian Henry + * Copyright (C) 2013-2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,46 +16,40 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ - /** - * \file htdocs/accountancy/bookkeeping/card.php - * \ingroup Advanced accountancy - * \brief Page to show book-entry + * \file htdocs/accountancy/bookkeeping/card.php + * \ingroup Advanced accountancy + * \brief Page to show book-entry */ require '../../main.inc.php'; -// Class require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; -require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; +require_once DOL_DOCUMENT_ROOT . '/compta/facture/class/facture.class.php'; +require_once DOL_DOCUMENT_ROOT . '/fourn/class/fournisseur.facture.class.php'; +require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingjournal.class.php'; -// Langs $langs->load("accountancy"); -$langs->load("bank"); -$langs->load("bills"); -$langs->load("trips"); // Security check $id = GETPOST('id', 'int'); if ($user->societe_id > 0) { accessforbidden(); } - -$action = GETPOST('action','aZ09'); +$action = GETPOST('action'); +$mode = GETPOST('mode'); $piece_num = GETPOST("piece_num"); - $mesg = ''; - $account_number = GETPOST('account_number'); -$subledger_account = GETPOST('subledger_account'); -if ($subledger_account == - 1) { - $subledger_account = null; +$code_tiers = GETPOST('code_tiers'); +if ($code_tiers == - 1) { + $code_tiers = null; } -$label_operation = GETPOST('label_operation'); +$label_compte = GETPOST('label_compte'); +$label_operation= GETPOST('label_operation'); $debit = price2num(GETPOST('debit')); $credit = price2num(GETPOST('credit')); - $save = GETPOST('save'); if (! empty($save)) { $action = 'add'; @@ -64,29 +58,25 @@ $update = GETPOST('update'); if (! empty($update)) { $action = 'confirm_update'; } - +$object = new BookKeeping($db); if ($action == "confirm_update") { - $error = 0; - if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $error ++; } - if (empty($error)) { $book = new BookKeeping($db); - - $result = $book->fetch($id); + $result = $book->fetch($id, null, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { $book->numero_compte = $account_number; - $book->subledger_account = $subledger_account; - $book->label_operation = $label_operation; + $book->code_tiers = $code_tiers; + $book->label_compte = $label_compte; + $book->label_operation= $label_operation; $book->debit = $debit; $book->credit = $credit; - if (floatval($debit) != 0.0) { $book->montant = $debit; $book->sens = 'D'; @@ -95,8 +85,7 @@ if ($action == "confirm_update") { $book->montant = $credit; $book->sens = 'C'; } - - $result = $book->update($user); + $result = $book->update($user, false, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { @@ -106,21 +95,18 @@ if ($action == "confirm_update") { } } } - else if ($action == "add") { $error = 0; - if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $error ++; } - if (empty($error)) { $book = new BookKeeping($db); - $book->numero_compte = $account_number; - $book->subledger_account = $subledger_account; - $book->label_operation = $label_operation; + $book->code_tiers = $code_tiers; + $book->label_compte = $label_compte; + $book->label_operation= $label_operation; $book->debit = $debit; $book->credit = $credit; $book->doc_date = GETPOST('doc_date'); @@ -130,18 +116,15 @@ else if ($action == "add") { $book->code_journal = GETPOST('code_journal'); $book->fk_doc = GETPOST('fk_doc'); $book->fk_docdet = GETPOST('fk_docdet'); - if (floatval($debit) != 0.0) { $book->montant = $debit; $book->sens = 'D'; } - if (floatval($credit) != 0.0) { $book->montant = $credit; $book->sens = 'C'; } - - $result = $book->createStd($user); + $result = $book->createStd($user, false, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { @@ -150,39 +133,31 @@ else if ($action == "add") { } } } - else if ($action == "confirm_delete") { $book = new BookKeeping($db); - - $result = $book->fetch($id); - + $result = $book->fetch($id, null, $mode); $piece_num = $book->piece_num; - if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { - $result = $book->delete($user); + $result = $book->delete($user, false, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } } $action = ''; } - else if ($action == "confirm_create") { $error = 0; - $book = new BookKeeping($db); - if (! GETPOST('next_num_mvt')) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NumPiece")), null, 'errors'); $error++; } - if (! $error) { - $book->label_operation = ''; + $book->label_compte = ''; $book->debit = 0; $book->credit = 0; $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); @@ -192,163 +167,258 @@ else if ($action == "confirm_create") { $book->code_journal = GETPOST('code_journal'); $book->fk_doc = 0; $book->fk_docdet = 0; - $book->montant = 0; - - $result = $book->createStd($user); + $result = $book->createStd($user,0, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { setEventMessages($langs->trans('Saved'), null, 'mesgs'); - $action = ''; + $action = 'update'; + $id=$book->id; $piece_num = $book->piece_num; } } } - - +if ($action == 'setdate') { + $datedoc = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); + $result = $object->upddateByMvt($piece_num,'doc_date',$db->idate($datedoc),$mode); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + $action = ''; + } +} +if ($action == 'setjournal') { + $journaldoc = trim(GETPOST('code_journal')); + if (!empty($journaldoc)) { + $journaldoc='\''.$journaldoc.'\''; + } + $result = $object->upddateByMvt($piece_num,'code_journal',$journaldoc,$mode); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + $action = ''; + } +} +if ($action == 'setdocref') { + $refdoc = trim(GETPOST('doc_ref')); + if (!empty($refdoc)) { + $refdoc='\''.$refdoc.'\''; + } + $result = $object->upddateByMvt(doc_ref,'code_journal',$refdoc,$mode); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + $action = ''; + } +} +if ($action == 'valid') { + $result = $object->transformTransaction(0,$piece_num); + if ($result < 0) { + setEventMessages($object->error, $object->errors, 'errors'); + } else { + header("Location: list.php?sortfield=t.piece_num&sortorder=asc"); + exit; + } +} /* * View */ - llxHeader(); - $html = new Form($db); -$formaccountancy = new FormAccounting($db); - +$formaccounting = new FormAccounting($db); +$accountjournal = new AccountingJournal($db); /* * Confirmation to delete the command */ if ($action == 'delete') { - $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); + $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id.'&mode='. $mode , $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); print $formconfirm; } - if ($action == 'create') { print load_fiche_titre($langs->trans("CreateMvts")); - $book = new BookKeeping($db); - $next_num_mvt = $book->getNextNumMvt(); + $next_num_mvt = $book->getNextNumMvt('_tmp'); if (empty($next_num_mvt)) { dol_print_error('', 'Failed to get next piece number'); } - print '
'; print '' . "\n"; print '' . "\n"; - + print '' . "\n"; dol_fiche_head(); - print ''; print ''; print ''; print ''; print ''; - print ''; print ''; print ''; print ''; - print ''; - print ''; - print ''; - + print ''; + print ''; + print ''; print ''; print ''; - print ''; + print ''; print ''; - print ''; print ''; - print ''; + print ''; print ''; - print '
' . $langs->trans("NumPiece") . '' . $next_num_mvt . '
' . $langs->trans("Docdate") . ''; print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1); print '
'.$langs->trans("AccountancyJournal").''; - print $formaccountancy->select_journal('', 'code_journal', '', 0, 1, 1, 1, 1); - print '
' . $langs->trans("Codejournal") . '' . $formaccounting->select_journal(GETPOST('code_journal'),'code_journal',0,0,array(),1,1) . '
' . $langs->trans("Docref") . '
' . $langs->trans("Doctype") . '
'; - dol_fiche_end(); - print '
'; print '     '; print '
'; - print '
'; } else { $book = new BookKeeping($db); - $result = $book->fetchPerMvt($piece_num); + $result = $book->fetchPerMvt($piece_num, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } if (! empty($book->piece_num)) { - print load_fiche_titre($langs->trans("UpdateMvts"), '' . $langs->trans('BackToList') . ''); - dol_fiche_head(); - - print '
'; - + print '
'; + print '
'; print ''; - + // account mouvment print ''; print ''; print ''; print ''; - - print ''; - print ''; - print ''; + // date + print ''; print ''; - - print ''; - print ''; - print ''; - - print ''; - print ''; - print ''; + //journal + print ''; print ''; - - $typelabel = $book->doc_type; - if ($typelabel == 'bank') { - $typelabel = $langs->trans('Bank'); - } - if ($typelabel == 'customer_invoice') { - $typelabel = $langs->trans('CustomerInvoice'); - } - if ($typelabel == 'supplier_invoice') { - $typelabel = $langs->trans('SupplierInvoice'); - } - if ($typelabel == 'expense_report') { - $typelabel = $langs->trans('ExpenseReport'); + //docref + print ''; + print ''; + //doctype print ''; print ''; - print ''; + print ''; print ''; print '
' . $langs->trans("NumMvts") . '' . $book->piece_num . '
' . $langs->trans("Docdate") . '' . dol_print_date($book->doc_date, 'daytextshort') . '
'; + print ''; + if ($action != 'editdate') + print 'piece_num .'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('SetDate'),1).''; + print '
'; + print $langs->trans('Docdate'); + print '
'; + print '
'; + if ($action == 'editdate') { + print '
'; + print ''; + print ''; + print ''; + $form->select_date($book->doc_date ? $book->doc_date : - 1, 'doc_date', '', '', '', "setdate"); + print ''; + print '
'; + } else { + print $book->doc_date ? dol_print_date($book->doc_date, 'daytext') : ' '; + } + print '
' . $langs->trans("Codejournal") . ''; - $accountingjournal = new AccountingJournal($db); - $accountingjournal->fetch('',$book->code_journal); - print $accountingjournal->getNomUrl(0,1,1,'',1); - print '
' . $langs->trans("Docref") . '' . $book->doc_ref . '
'; + print ''; + if ($action != 'editjournal') + print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).''; + print '
'; + print $langs->trans('Codejournal'); + print '
'; + print '
'; + if ($action == 'editjournal') { + print '
'; + print ''; + print ''; + print ''; + print $formaccounting->select_journal($book->code_journal,'code_journal',0,0,array(),1,1); + print ''; + print '
'; + } else { + print $book->code_journal ; + } + print '
'; + print ''; + if ($action != 'editdocref') + print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).''; + print '
'; + print $langs->trans('Docref'); + print '
'; + print '
'; + if ($action == 'editdocref') { + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print '
'; + } else { + print $book->doc_ref ; } + print '
' . $langs->trans("Doctype") . '' . $typelabel . '' . $book->doc_type . '
'; - print '
'; - - dol_fiche_end(); - + print '
'; + print '
'; + print ''; + //Validate + print ''; + print ''; + print ''; + print ''; + // check data + print ''; + print ''; + /* + if ($book->doc_type == 'customer_invoice') + { + $sqlmid = 'SELECT rowid as ref'; + $sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac"; + $sqlmid .= " WHERE fac.rowid=" . $book->fk_doc; + dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $invoicestatic = new Facture($db); + $invoicestatic->fetch($objmid->ref); + $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1); + } + else dol_print_error($db); + } + */ + print ''; + print "
' . $langs->trans("Status") . ''; + if (empty($book->validated)) { + print ''; + print img_picto($langs->trans("Disabled"), 'switch_off'); + print ''; + } else { + print ''; + print img_picto($langs->trans("Activated"), 'switch_on'); + print ''; + } + print '
' . $langs->trans("Control") . '' . $ref .'
\n"; + print '
'; + print '
'; + print '
'; print '
'; - - $result = $book->fetch_all_per_mvt($piece_num); + $result = $book->fetchAllPerMvt($piece_num, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { - print load_fiche_titre($langs->trans("ListeMvts"), '', ''); - print '
'; print '' . "\n"; print '' . "\n"; @@ -356,95 +426,84 @@ if ($action == 'create') { print '' . "\n"; print '' . "\n"; print '' . "\n"; - - $var=False; - + print '' . "\n"; print ""; if (count($book->linesmvt) > 0) { - $total_debit = 0; $total_credit = 0; - print ''; - print_liste_field_titre($langs->trans("AccountAccountingShort")); - print_liste_field_titre($langs->trans("subledger_account")); + print_liste_field_titre($langs->trans("Code_tiers")); print_liste_field_titre($langs->trans("Labelcompte")); - print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="right"'); - print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="right"'); - print_liste_field_titre($langs->trans("Amount"), "", "", "", "", 'align="right"'); - print_liste_field_titre($langs->trans("Sens"), "", "", "", "", 'align="center"'); + print_liste_field_titre($langs->trans("Labeloperation")); + print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="center"'); + print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="center"'); print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"'); - print "\n"; - - foreach ($book->linesmvt as $line) { - print ''; - + foreach ( $book->linesmvt as $line ) { + $var = ! $var; + print ''; $total_debit += $line->debit; $total_credit += $line->credit; - if ($action == 'update' && $line->id == $id) { - print ''; print ''; - print ''; + print ''; + print ''; print ''; print ''; - print ''; - print ''; print ''; } else { print ''; - print ''; - print ''; + print ''; + print ''; + print ''; print ''; print ''; - print ''; - print ''; - print ''; } print "\n"; } - if ($total_debit != $total_credit) { setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_credit, $total_debit)), 'warnings'); } - if ($action == "" || $action == 'add') { - print ''; + $var = ! $var; + print ''; print ''; print ''; - print ''; - print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; print ''; print ''; } print '
'; - print $formaccounting->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1, 'maxwidth300'); + print $formaccounting->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1, ''); print ''; - print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1, 'maxwidth300'); + print $formaccounting->select_auxaccount($line->code_tiers, 'code_tiers', 1); print '' . price($line->montant) . '' . $line->sens . ''; print '' . "\n"; print ''; print '' . length_accountg($line->numero_compte) . '' . length_accounta($line->subledger_account) . '' . $line->label_operation . '' . length_accounta($line->code_tiers) . '' . $line->label_compte . '' . $line->label_operation. '' . price($line->debit) . '' . price($line->credit) . '' . price($line->montant) . '' . $line->sens . ''; - print ''; + print ''; print img_edit(); print ' '; - print ''; + print ''; print img_delete(); print ''; - print '
'; - print $formaccounting->select_account($account_number, 'account_number', 0, array (), 1, 1, 'maxwidth300'); + print $formaccounting->select_account($account_number, 'account_number', 0, array (), 1, 1, ''); print ''; - print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1, 'maxwidth300'); + print $formaccounting->select_auxaccount($code_tiers, 'code_tiers', 1); print '
'; + if ($mode=='_tmp' && $total_debit == $total_credit && $action=='') { + print '"; + } print '
'; } } @@ -452,6 +511,6 @@ if ($action == 'create') { print load_fiche_titre($langs->trans("NoRecords")); } } - +dol_fiche_end(); llxFooter(); -$db->close(); +$db->close(); \ No newline at end of file diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 65e615cecaf..1062fd50d87 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -99,7 +99,7 @@ $formother = new FormOther($db); $form = new Form($db); -if ($action != 'export_csv' && ! isset($_POST['begin']) && ! isset($_GET['begin']) && ! isset($_POST['formfilteraction'])) { +if ($action != 'export_csv' && ! isset($_POST['begin']) && ! isset($_GET['begin']) && ! isset($_POST['formfilteraction']) && empty($page)) { $search_date_start = dol_mktime(0, 0, 0, 1, 1, dol_print_date(dol_now(), '%Y')); $search_date_end = dol_mktime(0, 0, 0, 12, 31, dol_print_date(dol_now(), '%Y')); } diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index f47715ace58..cb72c321118 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -33,10 +33,12 @@ class AccountingJournal extends CommonObject var $rowid; - var $code; - var $label; - var $nature; // 0:various operations, 1:sale, 2:purchase, 3:bank, 9: has-new - var $active; + public $code; + public $label; + public $nature; // 0:various operations, 1:sale, 2:purchase, 3:bank, 4:expense-report, 9: has-new + public $active; + + public $lines; /** * Constructor @@ -80,7 +82,7 @@ class AccountingJournal extends CommonObject $this->code = $obj->code; $this->ref = $obj->code; $this->label = $obj->label; - $this->nature = $obj->nature; + $this->nature = $obj->nature; $this->active = $obj->active; return $this->id; @@ -97,6 +99,74 @@ class AccountingJournal extends CommonObject return -1; } + /** + * Load object in memory from the database + * + * @param string $sortorder Sort Order + * @param string $sortfield Sort field + * @param int $limit offset limit + * @param int $offset offset limit + * @param array $filter filter array + * @param string $filtermode filter mode (AND or OR) + * + * @return int <0 if KO, >0 if OK + */ + function fetchAll($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') { + $sql = "SELECT rowid, code, label, nature, active"; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; + // Manage filter + $sqlwhere = array(); + if (count($filter) > 0) { + foreach ( $filter as $key => $value ) { + if ($key == 't.code' || $key == 't.label' || $key == 't.nature') { + $sqlwhere[] = $key . '\'' . $this->db->escape($value) . '\''; + } elseif ($key == 't.rowid' || $key == 't.active') { + $sqlwhere[] = $key . '=' . $value; + } + } + } + $sql .= ' WHERE 1 = 1'; + $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; + if (count($sqlwhere) > 0) { + $sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere); + } + + if (! empty($sortfield)) { + $sql .= $this->db->order($sortfield, $sortorder); + } + if (! empty($limit)) { + $sql .= ' ' . $this->db->plimit($limit + 1, $offset); + } + $this->lines = array(); + + dol_syslog(get_class($this) . "::fetch sql=" . $sql, LOG_DEBUG); + $resql = $this->db->query($sql); + if ($resql) { + $num = $this->db->num_rows($resql); + + while ( $obj = $this->db->fetch_object($resql) ) { + $line = new self($this->db); + + $line->id = $obj->rowid; + $line->code = $obj->code; + $line->label = $obj->label; + $line->nature = $obj->nature; + $line->active = $obj->active; + + $this->lines[] = $line; + } + + $this->db->free($resql); + + return $num; + } else { + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + + return - 1; + } + } + /** * Return clicable name (with picto eventually) * @@ -130,17 +200,17 @@ class AccountingJournal extends CommonObject $linkclose=''; if (empty($notooltip)) { - if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) - { - $label=$langs->trans("ShowAccoutingJournal"); - $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; - } - $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"'; - $linkclose.=' class="classfortooltip"'; + if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) + { + $label=$langs->trans("ShowAccoutingJournal"); + $linkclose.=' alt="'.dol_escape_htmltag($label, 1).'"'; + } + $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"'; + $linkclose.=' class="classfortooltip"'; } - $linkstart=''; + $linkstart=''; $linkend=''; if ($nourl) @@ -162,43 +232,45 @@ class AccountingJournal extends CommonObject /** * Retourne le libelle du statut d'un user (actif, inactif) * - * @param int $mode 0=libelle long, 1=libelle court - * @return string Label of type + * @param int $mode 0=libelle long, 1=libelle court + * @return string Label of type */ function getLibType($mode=0) { - return $this->LibType($this->nature,$mode); + return $this->LibType($this->nature,$mode); } /** * Return type of an accounting journal * - * @param int $nature Id type - * @param int $mode 0=libelle long, 1=libelle court - * @return string Label of type + * @param int $nature Id type + * @param int $mode 0=libelle long, 1=libelle court + * @return string Label of type */ function LibType($nature,$mode=0) { - global $langs; + global $langs; $langs->load("accountancy"); - if ($mode == 0) - { - $prefix=''; + if ($mode == 0) + { + $prefix=''; if ($nature == 9) return $langs->trans('AccountingJournalType9'); + if ($nature == 5) return $langs->trans('AccountingJournalType5'); if ($nature == 4) return $langs->trans('AccountingJournalType4'); if ($nature == 3) return $langs->trans('AccountingJournalType3'); - if ($nature == 2) return $langs->trans('AccountingJournalType2'); - if ($nature == 1) return $langs->trans('AccountingJournalType1'); - } - if ($mode == 1) - { + if ($nature == 2) return $langs->trans('AccountingJournalType2'); + if ($nature == 1) return $langs->trans('AccountingJournalType1'); + } + if ($mode == 1) + { if ($nature == 9) return $langs->trans('AccountingJournalType9'); + if ($nature == 5) return $langs->trans('AccountingJournalType5'); if ($nature == 4) return $langs->trans('AccountingJournalType4'); if ($nature == 3) return $langs->trans('AccountingJournalType3'); - if ($nature == 2) return $langs->trans('AccountingJournalType2'); - if ($nature == 1) return $langs->trans('AccountingJournalType1'); - } + if ($nature == 2) return $langs->trans('AccountingJournalType2'); + if ($nature == 1) return $langs->trans('AccountingJournalType1'); + } } } diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 2e826b55e08..88e67b42735 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1,7 +1,7 @@ +/* Copyright (C) 2014-2017 Olivier Geffroy * Copyright (C) 2015-2017 Alexandre Spangaro - * Copyright (C) 2015-2016 Florian Henry + * Copyright (C) 2015-2017 Florian Henry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,9 +18,9 @@ */ /** - * \file htdocs/accountancy/class/bookkeeping.class.php - * \ingroup Advanced accountancy - * \brief File of class to manage Ledger (General Ledger and Subledger) + * \file htdocs/accountancy/class/bookkeeping.class.php + * \ingroup Advanced accountancy + * \brief File of class to manage Ledger (General Ledger and Subledger) */ // Class @@ -91,9 +91,6 @@ class BookKeeping extends CommonObject public $journal_label; public $piece_num; - /** - */ - /** * Constructor * @@ -106,9 +103,9 @@ class BookKeeping extends CommonObject /** * Create object into database * - * @param User $user User that creates - * @param bool $notrigger false=launch triggers after, true=disable triggers - * @return int <0 if KO, Id of created object if OK + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK */ public function create(User $user, $notrigger = false) { global $conf, $langs; @@ -181,23 +178,23 @@ class BookKeeping extends CommonObject // Check parameters if (empty($this->numero_compte) || $this->numero_compte == '-1') { - $langs->load("errors"); - if (in_array($this->doc_type, array('bank', 'expense_report'))) - { - $this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForBankLine', $this->fk_docdet, $this->doc_type); - } - else - { - //$this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForInvoiceLine', $this->doc_ref, $this->label_compte); - $mesg=$this->doc_ref.', '.$langs->trans("AccountAccounting").': '.$this->numero_compte; - if ($this->subledger_account && $this->subledger_account != $this->numero_compte) - { - $mesg.=', '.$langs->trans("SubledgerAccount").': '.$this->subledger_account; - } - $this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForLine', $mesg); - } + $langs->load("errors"); + if (in_array($this->doc_type, array('bank', 'expense_report'))) + { + $this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForBankLine', $this->fk_docdet, $this->doc_type); + } + else + { + //$this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForInvoiceLine', $this->doc_ref, $this->label_compte); + $mesg=$this->doc_ref.', '.$langs->trans("AccountAccounting").': '.$this->numero_compte; + if ($this->subledger_account && $this->subledger_account != $this->numero_compte) + { + $mesg.=', '.$langs->trans("SubledgerAccount").': '.$this->subledger_account; + } + $this->errors[]=$langs->trans('ErrorFieldAccountNotDefinedForLine', $mesg); + } - return -1; + return -1; } $this->db->begin(); @@ -209,7 +206,7 @@ class BookKeeping extends CommonObject $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element; $sql .= " WHERE doc_type = '" . $this->db->escape($this->doc_type) . "'"; $sql .= " AND fk_doc = " . $this->fk_doc; - $sql .= " AND fk_docdet = " . $this->fk_docdet; // This field can be 0 is record is for several lines + $sql .= " AND fk_docdet = " . $this->fk_docdet; // This field can be 0 is record is for several lines $sql .= " AND numero_compte = '" . $this->db->escape($this->numero_compte) . "'"; $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; @@ -223,7 +220,7 @@ class BookKeeping extends CommonObject $sqlnum = "SELECT piece_num"; $sqlnum .= " FROM " . MAIN_DB_PREFIX . $this->table_element; $sqlnum .= " WHERE doc_type = '" . $this->db->escape($this->doc_type) . "'"; // For example doc_type = 'bank' - $sqlnum .= " AND fk_docdet = " . $this->db->escape($this->fk_docdet); // fk_docdet is rowid into llx_bank or llx_facturedet or llx_facturefourndet, or ... + $sqlnum .= " AND fk_docdet = " . $this->db->escape($this->fk_docdet); // fk_docdet is rowid into llx_bank or llx_facturedet or llx_facturefourndet, or ... $sqlnum .= " AND doc_ref = '" . $this->db->escape($this->doc_ref) . "'"; // ref of source object $sqlnum .= " AND entity IN (" . getEntity('accountancy') . ")"; @@ -322,7 +319,7 @@ class BookKeeping extends CommonObject $this->errors[] = 'Error ' . $this->db->lasterror(); dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); } - } else { // Already exists + } else { // Already exists $result = -3; $error++; $this->error='BookkeepingRecordAlreadyExists'; @@ -361,11 +358,12 @@ class BookKeeping extends CommonObject /** * Create object into database * - * @param User $user User that creates - * @param bool $notrigger false=launch triggers after, true=disable triggers - * @return int <0 if KO, Id of created object if OK + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @param string $mode Mode + * @return int <0 if KO, Id of created object if OK */ - public function createStd(User $user, $notrigger = false) { + public function createStd(User $user, $notrigger = false, $mode='') { dol_syslog(__METHOD__, LOG_DEBUG); $error = 0; @@ -436,13 +434,13 @@ class BookKeeping extends CommonObject // Put here code to add control on parameters values // Insert request - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '('; + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.'('; $sql .= 'doc_date,'; $sql .= 'doc_type,'; $sql .= 'doc_ref,'; $sql .= 'fk_doc,'; $sql .= 'fk_docdet,'; - $sql .= 'thirdparty,'; + $sql .= 'thirdparty_code,'; $sql .= 'subledger_account,'; $sql .= 'subledger_label,'; $sql .= 'numero_compte,'; @@ -467,7 +465,7 @@ class BookKeeping extends CommonObject $sql .= ' ' . (! isset($this->thirdparty_code) ? 'NULL' : "'" . $this->db->escape($this->thirdparty_code) . "'") . ','; $sql .= ' ' . (! isset($this->subledger_account) ? 'NULL' : "'" . $this->db->escape($this->subledger_account) . "'") . ','; $sql .= ' ' . (! isset($this->subledger_label) ? 'NULL' : "'" . $this->db->escape($this->subledger_label) . "'") . ','; - $sql .= ' ' . (! isset($this->numero_compte) ? "NULL" : "'" . $this->db->escape($this->numero_compte) . "'") . ','; + $sql .= ' ' . (! isset($this->numero_compte) ? 'NULL' : "'" . $this->db->escape($this->numero_compte) . "'") . ','; $sql .= ' ' . (! isset($this->label_compte) ? 'NULL' : "'" . $this->db->escape($this->label_compte) . "'") . ','; $sql .= ' ' . (! isset($this->label_operation) ? 'NULL' : "'" . $this->db->escape($this->label_operation) . "'") . ','; $sql .= ' ' . (! isset($this->debit) ? 'NULL' : $this->debit ). ','; @@ -522,10 +520,11 @@ class BookKeeping extends CommonObject * * @param int $id Id object * @param string $ref Ref + * @param string $mode Mode * * @return int <0 if KO, 0 if not found, >0 if OK */ - public function fetch($id, $ref = null) { + public function fetch($id, $ref = null, $mode='') { global $conf; dol_syslog(__METHOD__, LOG_DEBUG); @@ -552,9 +551,9 @@ class BookKeeping extends CommonObject $sql .= " t.code_journal,"; $sql .= " t.journal_label,"; $sql .= " t.piece_num"; - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; + $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode. ' as t'; $sql .= ' WHERE 1 = 1'; - $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; + $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; if (null !== $ref) { $sql .= ' AND t.ref = ' . '\'' . $ref . '\''; } else { @@ -605,7 +604,7 @@ class BookKeeping extends CommonObject } } - /** + /** * Load object in memory from the database * * @param string $sortorder Sort Order @@ -667,14 +666,14 @@ class BookKeeping extends CommonObject } $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; $sql .= ' WHERE 1 = 1'; - $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; + $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; if (count($sqlwhere) > 0) { $sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere); } - // Affichage par compte comptable - $sql .= ' ORDER BY t.numero_compte ASC'; + // Affichage par compte comptable + $sql .= ' ORDER BY t.numero_compte ASC'; if (! empty($sortfield)) { - $sql .= ', ' . $sortfield . ' ' .$sortorder; + $sql .= ', ' . $sortfield . ' ' .$sortorder; } if (! empty($limit)) { $sql .= ' ' . $this->db->plimit($limit + 1, $offset); @@ -724,7 +723,6 @@ class BookKeeping extends CommonObject } } - /** * Load object in memory from the database * @@ -785,7 +783,7 @@ class BookKeeping extends CommonObject } } $sql.= ' WHERE 1 = 1'; - $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; + $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; if (count($sqlwhere) > 0) { $sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere); } @@ -856,7 +854,7 @@ class BookKeeping extends CommonObject public function fetchAllBalance($sortorder = '', $sortfield = '', $limit = 0, $offset = 0, array $filter = array(), $filtermode = 'AND') { global $conf; - dol_syslog(__METHOD__, LOG_DEBUG); + dol_syslog(__METHOD__, LOG_DEBUG); $sql = 'SELECT'; $sql .= " t.numero_compte,"; @@ -877,13 +875,15 @@ class BookKeeping extends CommonObject $sqlwhere[] = $key . '=' . $value; } elseif ($key == 't.subledger_account' || $key == 't.numero_compte') { $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; + } elseif ($key == 't.subledger_label') { + $sqlwhere[] = $key . ' LIKE \'' . $this->db->escape($value) . '%\''; } else { $sqlwhere[] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; } } } $sql.= ' WHERE 1 = 1'; - $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; + $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; if (count($sqlwhere) > 0) { $sql .= ' AND ' . implode(' ' . $filtermode . ' ', $sqlwhere); } @@ -926,10 +926,11 @@ class BookKeeping extends CommonObject * * @param User $user User that modifies * @param bool $notrigger false=launch triggers after, true=disable triggers + * @param string $mode Mode * * @return int <0 if KO, >0 if OK */ - public function update(User $user, $notrigger = false) { + public function update(User $user, $notrigger = false, $mode='') { $error = 0; dol_syslog(__METHOD__, LOG_DEBUG); @@ -955,7 +956,6 @@ class BookKeeping extends CommonObject } if (isset($this->subledger_label)) { $this->subledger_label = trim($this->subledger_label); - } if (isset($this->numero_compte)) { $this->numero_compte = trim($this->numero_compte); } @@ -997,7 +997,7 @@ class BookKeeping extends CommonObject // Put here code to add a control on parameters values // Update request - $sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET'; + $sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . $mode.' SET'; $sql .= ' doc_date = ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) != 0 ? "'" . $this->db->idate($this->doc_date) . "'" : 'null') . ','; $sql .= ' doc_type = ' . (isset($this->doc_type) ? "'" . $this->db->escape($this->doc_type) . "'" : "null") . ','; $sql .= ' doc_ref = ' . (isset($this->doc_ref) ? "'" . $this->db->escape($this->doc_ref) . "'" : "null") . ','; @@ -1051,15 +1051,47 @@ class BookKeeping extends CommonObject } } + /** + * Update movement + * + * @param string $piece_num + * @param string $field + * @param string $value + * @param string $mode + * @return number + */ + public function upddateByMvt($piece_num='', $field='', $value='', $mode='') { + $this->db->begin(); + $sql = "UPDATE " . MAIN_DB_PREFIX . $this->table_element.$mode." as ab"; + $sql .= ' SET ab.'.$field.'=' . $value; + $sql .= ' WHERE ab.piece_num=' . $piece_num ; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + if ($error) { + $this->db->rollback(); + + return - 1 * $error; + } else { + $this->db->commit(); + + return 1; + } + } + /** * Delete object in database * * @param User $user User that deletes * @param bool $notrigger false=launch triggers after, true=disable triggers + * @param string $mode Mode * * @return int <0 if KO, >0 if OK */ - public function delete(User $user, $notrigger = false) { + public function delete(User $user, $notrigger = false, $mode='') { dol_syslog(__METHOD__, LOG_DEBUG); $error = 0; @@ -1079,7 +1111,7 @@ class BookKeeping extends CommonObject } if (! $error) { - $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element; + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.$mode; $sql .= ' WHERE rowid=' . $this->id; $resql = $this->db->query($sql); @@ -1105,7 +1137,7 @@ class BookKeeping extends CommonObject /** * Delete bookkepping by importkey * - * @param string $importkey Import key + * @param string $importkey Import key * @return int Result */ function deleteByImportkey($importkey) { @@ -1132,25 +1164,26 @@ class BookKeeping extends CommonObject /** * Delete bookkepping by year * - * @param string $delyear Year to delete - * @param string $journal Journal to delete - * @return int <0 if KO, >0 if OK + * @param string $delyear Year to delete + * @param string $journal Journal to delete + * @param string $mode Mode + * @return int <0 if KO, >0 if OK */ - function deleteByYearAndJournal($delyear='', $journal='') { - global $conf; + function deleteByYearAndJournal($delyear='', $journal='', $mode='') { + global $conf; - if (empty($delyear) && empty($journal)) - { - return -1; - } + if (empty($delyear) && empty($journal)) + { + return -1; + } $this->db->begin(); // first check if line not yet in bookkeeping $sql = "DELETE"; - $sql.= " FROM " . MAIN_DB_PREFIX . $this->table_element; + $sql.= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; $sql.= " WHERE 1 = 1"; - if (! empty($delyear)) $sql.= " AND YEAR(doc_date) = " . $delyear; // FIXME Must use between + if (! empty($delyear)) $sql.= " AND YEAR(doc_date) = " . $delyear; // FIXME Must use between if (! empty($journal)) $sql.= " AND code_journal = '".$journal."'"; $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; $resql = $this->db->query($sql); @@ -1173,16 +1206,17 @@ class BookKeeping extends CommonObject * Delete bookkepping by piece number * * @param int $piecenum peicenum to delete + * @param string $mode Mode * @return int Result */ - function deleteMvtNum($piecenum) { - global $conf; + function deleteMvtNum($piecenum, $mode) { + global $conf; $this->db->begin(); // first check if line not yet in bookkeeping $sql = "DELETE"; - $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element; + $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element. $mode; $sql .= " WHERE piece_num = " . $piecenum; $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; @@ -1286,13 +1320,14 @@ class BookKeeping extends CommonObject * Load an accounting document into memory from database * * @param int $piecenum Accounting document to get + * @param string $mode Mode * @return int <0 if KO, >0 if OK */ - public function fetchPerMvt($piecenum) { + public function fetchPerMvt($piecenum, $mode='') { global $conf; $sql = "SELECT piece_num,doc_date,code_journal,journal_label,doc_ref,doc_type"; - $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element; + $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; $sql .= " WHERE piece_num = " . $piecenum; $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; @@ -1319,14 +1354,15 @@ class BookKeeping extends CommonObject /** * Return next number movement * - * @return string Next numero to use + * @param string $mode Mode + * @return string Next numero to use */ - public function getNextNumMvt() + public function getNextNumMvt($mode='') { global $conf; - $sql = "SELECT MAX(piece_num)+1 as max FROM " . MAIN_DB_PREFIX . $this->table_element; - $sql .= " WHERE entity IN (" . getEntity('accountancy') . ")"; + $sql = "SELECT MAX(piece_num)+1 as max FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; + $sql .= " WHERE entity IN (" . getEntity('accountancy') . ")"; dol_syslog(get_class($this) . "getNextNumMvt sql=" . $sql, LOG_DEBUG); $result = $this->db->query($sql); @@ -1349,14 +1385,14 @@ class BookKeeping extends CommonObject * @param int $piecenum id of line to get * @return int <0 if KO, >0 if OK */ - function fetch_all_per_mvt($piecenum) { + function fetchAllPerMvt($piecenum, $mode='') { global $conf; $sql = "SELECT rowid, doc_date, doc_type,"; $sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,"; - $sql .= " numero_compte, label_compte, debit, credit,"; + $sql .= " numero_compte, label_compte, label_operation, debit, credit,"; $sql .= " montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num"; - $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element; + $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element.$mode; $sql .= " WHERE piece_num = " . $piecenum; $sql .= " AND entity IN (" . getEntity('accountancy') . ")"; @@ -1403,15 +1439,15 @@ class BookKeeping extends CommonObject /** * Export bookkeping * - * @param string $model Model - * @return int Result + * @param string $model Model + * @return int Result */ function export_bookkeping($model = 'ebp') { global $conf; $sql = "SELECT rowid, doc_date, doc_type,"; $sql .= " doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,"; - $sql .= " numero_compte, label_compte, debit, credit,"; + $sql .= " numero_compte, label_compte, label_operation, debit, credit,"; $sql .= " montant, sens, fk_user_author, import_key, code_journal, piece_num"; $sql .= " FROM " . MAIN_DB_PREFIX . $this->table_element; $sql .= " WHERE entity IN (" . getEntity('accountancy') . ")"; @@ -1459,99 +1495,180 @@ class BookKeeping extends CommonObject } } - - - /** - * Return list of accounts with label by chart of accounts - * - * @param string $selectid Preselected chart of accounts - * @param string $htmlname Name of field in html form - * @param int $showempty Add an empty field - * @param array $event Event options - * @param int $select_in Value is a aa.rowid (0 default) or aa.account_number (1) - * @param int $select_out Set value returned by select 0=rowid (default), 1=account_number - * @param int $aabase Set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by this number - * @return string String with HTML select - */ - function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '') { - global $conf; - - require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; - - $pcgver = $conf->global->CHARTOFACCOUNTS; - - $sql = "SELECT DISTINCT ab.numero_compte as account_number, aa.label as label, aa.rowid as rowid, aa.fk_pcg_version"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte"; - $sql .= " AND aa.active = 1"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; - $sql .= " AND asy.rowid = " . $pcgver; - $sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")"; - $sql .= " ORDER BY account_number ASC"; - - dol_syslog(get_class($this) . "::select_account", LOG_DEBUG); - $resql = $this->db->query($sql); - - if (! $resql) { - $this->error = "Error " . $this->db->lasterror(); - dol_syslog(get_class($this) . "::select_account " . $this->error, LOG_ERR); - return - 1; - } - - $out = ajax_combobox($htmlname, $event); - - $options = array(); - $selected = null; - - while ($obj = $this->db->fetch_object($resql)) { - $label = length_accountg($obj->account_number) . ' - ' . $obj->label; - - $select_value_in = $obj->rowid; - $select_value_out = $obj->rowid; - - if ($select_in == 1) { - $select_value_in = $obj->account_number; - } - if ($select_out == 1) { - $select_value_out = $obj->account_number; - } - - // Remember guy's we store in database llx_facturedet the rowid of accounting_account and not the account_number - // Because same account_number can be share between different accounting_system and do have the same meaning - if (($selectid != '') && $selectid == $select_value_in) { - $selected = $select_value_out; - } - - $options[$select_value_out] = $label; - } - - $out .= Form::selectarray($htmlname, $options, $selected, $showempty, 0, 0, '', 0, 0, 0, '', 'maxwidth300'); - $this->db->free($resql); - return $out; - } - + /** + * Transform transaction + * + * @param number $direction if 0 tmp => real, if 1 real => tmp + * @param unknown $piecenum + */ + public function transformTransaction($direction=0,$piece_num='') { + $this->db->begin(); + if ($direction==0) { + $next_piecenum=$this->getNextNumMvt(); + if ($result < 0) { + $error++; + } + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'(doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; + $sql .= 'SELECT doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, '.$next_piecenum.''; + $sql .= ' FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + $sql = 'DELETE FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + } + if ($direction==1) { + $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element.'_tmp(doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num)'; + $sql .= 'SELECT doc_date, doc_type,'; + $sql .= ' doc_ref, fk_doc, fk_docdet, thirdparty_code, subledger_account, subledger_label,'; + $sql .= ' numero_compte, label_compte, label_operation, debit, credit,'; + $sql .= ' montant, sens, fk_user_author, import_key, code_journal, journal_label, piece_num'; + $sql .= ' FROM '.MAIN_DB_PREFIX . $this->table_element.' WHERE piece_num = '.$piece_num; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + $sql = 'DELETE FROM '.MAIN_DB_PREFIX . $this->table_element.'_tmp WHERE piece_num = '.$piece_num; + $resql = $this->db->query($sql); + if (! $resql) { + $error ++; + $this->errors[] = 'Error ' . $this->db->lasterror(); + dol_syslog(__METHOD__ . ' ' . join(',', $this->errors), LOG_ERR); + } + } + if (! $error) { + $this->db->commit(); + return 1; + } else { + $this->db->rollback(); + return - 1; + } + $sql = "DELETE FROM "; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte"; + $sql .= " AND aa.active = 1"; + $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " AND asy.rowid = " . $pcgver; + $sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")"; + $sql .= " ORDER BY account_number ASC"; + } /** - * Description of a root accounting account + * Return list of accounts with label by chart of accounts * - * @param string $account Accounting account - * @return string Root account + * @param string $selectid Preselected chart of accounts + * @param string $htmlname Name of field in html form + * @param int $showempty Add an empty field + * @param array $event Event options + * @param int $select_in Value is a aa.rowid (0 default) or aa.account_number (1) + * @param int $select_out Set value returned by select 0=rowid (default), 1=account_number + * @param int $aabase Set accounting_account base class to display empty=all or from 1 to 8 will display only account beginning by this number + * @return string String with HTML select */ + function select_account($selectid, $htmlname = 'account', $showempty = 0, $event = array(), $select_in = 0, $select_out = 0, $aabase = '') { + global $conf; + + require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; + + $pcgver = $conf->global->CHARTOFACCOUNTS; + + $sql = "SELECT DISTINCT ab.numero_compte as account_number, aa.label as label, aa.rowid as rowid, aa.fk_pcg_version"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte"; + $sql .= " AND aa.active = 1"; + $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " AND asy.rowid = " . $pcgver; + $sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")"; + $sql .= " ORDER BY account_number ASC"; + + dol_syslog(get_class($this) . "::select_account", LOG_DEBUG); + $resql = $this->db->query($sql); + + if (! $resql) { + $this->error = "Error " . $this->db->lasterror(); + dol_syslog(get_class($this) . "::select_account " . $this->error, LOG_ERR); + return - 1; + } + + $out = ajax_combobox($htmlname, $event); + + $options = array(); + $selected = null; + + while ($obj = $this->db->fetch_object($resql)) { + $label = length_accountg($obj->account_number) . ' - ' . $obj->label; + + $select_value_in = $obj->rowid; + $select_value_out = $obj->rowid; + + if ($select_in == 1) { + $select_value_in = $obj->account_number; + } + if ($select_out == 1) { + $select_value_out = $obj->account_number; + } + + // Remember guy's we store in database llx_facturedet the rowid of accounting_account and not the account_number + // Because same account_number can be share between different accounting_system and do have the same meaning + if (($selectid != '') && $selectid == $select_value_in) { + $selected = $select_value_out; + } + + $options[$select_value_out] = $label; + } + + $out .= Form::selectarray($htmlname, $options, $selected, $showempty, 0, 0, '', 0, 0, 0, '', 'maxwidth300'); + $this->db->free($resql); + return $out; + } + + /** + * Description of a root accounting account + * + * @param string $account Accounting account + * @return string Root account + */ function get_compte_racine($account = null) { global $conf; $pcgver = $conf->global->CHARTOFACCOUNTS; - $sql = "SELECT root.account_number, root.label as label"; - $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; - $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; - $sql .= " AND asy.rowid = " . $pcgver; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as parent ON aa.account_parent = parent.rowid"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as root ON parent.account_parent = root.rowid"; - $sql .= " WHERE aa.account_number = '" . $account . "'"; - $sql .= " AND parent.active = 1"; - $sql .= " AND root.active = 1"; - $sql .= " AND aa.entity IN (" . getEntity('accountancy') . ")"; + $sql = "SELECT root.account_number, root.label as label"; + $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_account as aa"; + $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_system as asy ON aa.fk_pcg_version = asy.pcg_version"; + $sql .= " AND asy.rowid = " . $pcgver; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as parent ON aa.account_parent = parent.rowid"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as root ON parent.account_parent = root.rowid"; + $sql .= " WHERE aa.account_number = '" . $account . "'"; + $sql .= " AND parent.active = 1"; + $sql .= " AND root.active = 1"; + $sql .= " AND aa.entity IN (" . getEntity('accountancy') . ")"; dol_syslog(get_class($this) . "::select_account sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); @@ -1571,13 +1688,12 @@ class BookKeeping extends CommonObject } } - - /** - * Description of accounting account - * - * @param string $account Accounting account - * @return string Account desc - */ + /** + * Description of accounting account + * + * @param string $account Accounting account + * @return string Account desc + */ function get_compte_desc($account = null) { global $conf; @@ -1590,7 +1706,7 @@ class BookKeeping extends CommonObject $sql .= " AND asy.rowid = " . $pcgver; $sql .= " AND aa.active = 1"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_accounting_category as cat ON aa.fk_accounting_category = cat.rowid"; - $sql .= " WHERE aa.entity IN (" . getEntity('accountancy') . ")"; + $sql .= " WHERE aa.entity IN (" . getEntity('accountancy') . ")"; dol_syslog(get_class($this) . "::select_account sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); @@ -1610,10 +1726,8 @@ class BookKeeping extends CommonObject return -1; } } - } - /** * Class BookKeepingLine */ @@ -1640,4 +1754,4 @@ class BookKeepingLine public $code_journal; public $journal_label; public $piece_num; -} +} \ No newline at end of file diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index bbe41dbab10..b51d303765b 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -333,8 +333,58 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM if (! empty($conf->accounting->enabled) && !empty($user->rights->accounting->mouvements->lire) && $mainmenu == 'accountancy') // Entry in accountancy journal for each bank account { - $newmenu->add('',$langs->trans("Journalization"),0,$user->rights->accounting->comptarapport->lire,'','accountancy','accountancy'); + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy/',$leftmenu)) $newmenu->add('',$langs->trans("Journalization"),0,$user->rights->accounting->comptarapport->lire,'','accountancy','accountancy'); + // Multi journal + $sql = "SELECT rowid, code, label, nature"; + $sql.= " FROM ".MAIN_DB_PREFIX."accounting_journal"; + $sql.= " WHERE entity = ".$conf->entity; + $sql.= " ORDER BY label"; + + $resql = $db->query($sql); + if ($resql) + { + $numr = $db->num_rows($resql); + $i = 0; + + if ($numr > 0) + { + while ($i < $numr) + { + $objp = $db->fetch_object($resql); + + $nature=''; + // Must match array $sourceList defined into journals_list.php + if ($objp->nature == 2) $nature="sells"; + if ($objp->nature == 3) $nature="purchases"; + if ($objp->nature == 4) $nature="bank"; + if ($objp->nature == 5) $nature="expensereports"; + if ($objp->nature == 1) $nature="various"; + if ($objp->nature == 9) $nature="hasnew"; + + // To enable when page exists + if (empty($conf->global->MAIN_FEATURES_LEVEL)) + { + if ($nature == 'various' || $nature == 'hasnew') $nature=''; + } + + if ($nature) + { + if ($usemenuhider || empty($leftmenu) || preg_match('/accountancy/',$leftmenu)) $newmenu->add('/accountancy/journal/'.$nature.'journal.php?mainmenu=accountancy&leftmenu=accountancy_journal&id_journal='.$objp->rowid,dol_trunc($objp->label,25),2,$user->rights->accounting->comptarapport->lire); + } + $i++; + } + } + else + { + // Should not happend. Entries are added + $newmenu->add('',$langs->trans("NoJournalDefined"), 2, $user->rights->accounting->comptarapport->lire); + } + } + else dol_print_error($db); + $db->free($resql); + + /* $sql = "SELECT rowid, label, accountancy_journal"; $sql.= " FROM ".MAIN_DB_PREFIX."bank_account"; $sql.= " WHERE entity = ".$conf->entity; @@ -362,6 +412,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM $newmenu->add("/accountancy/journal/sellsjournal.php?leftmenu=journal",$langs->trans("SellsJournal"),1,$user->rights->accounting->comptarapport->lire,'','accountancy','accountancy_journal'); $newmenu->add("/accountancy/journal/purchasesjournal.php?leftmenu=journal",$langs->trans("PurchasesJournal"),1,$user->rights->accounting->comptarapport->lire,'','accountancy','accountancy_journal'); $newmenu->add("/accountancy/journal/expensereportsjournal.php?leftmenu=journal",$langs->trans("ExpenseReportsJournal"),1,$user->rights->accounting->comptarapport->lire,'','accountancy','accountancy_journal'); + */ } if ($conf->ftp->enabled && $mainmenu == 'ftp') // Entry for FTP diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 5e46393768a..fd75ad95472 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -214,6 +214,46 @@ ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_lettering datetime AFTER ALTER TABLE llx_accounting_bookkeeping ADD COLUMN journal_label varchar(255) AFTER code_journal; ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_validated datetime AFTER validated; +CREATE TABLE llx_accounting_bookkeeping_tmp +( + rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, -- | multi company id + doc_date date NOT NULL, -- FEC:PieceDate + doc_type varchar(30) NOT NULL, -- FEC:PieceRef | facture_client/reglement_client/facture_fournisseur/reglement_fournisseur + doc_ref varchar(300) NOT NULL, -- | facture_client/reglement_client/... reference number + fk_doc integer NOT NULL, -- | facture_client/reglement_client/... rowid + fk_docdet integer NOT NULL, -- | facture_client/reglement_client/... line rowid + thirdparty_code varchar(32), -- Third party code (customer or supplier) when record is saved (may help debug) + subledger_account varchar(32), -- FEC:CompAuxNum | account number of subledger account + subledger_label varchar(255), -- FEC:CompAuxLib | label of subledger account + numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number + label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account + label_operation varchar(255), -- FEC:EcritureLib | label of the operation + debit numeric(24,8) NOT NULL, -- FEC:Debit + credit numeric(24,8) NOT NULL, -- FEC:Credit + montant numeric(24,8) NOT NULL, -- FEC:Montant (Not necessary) + sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) + multicurrency_amount numeric(24,8), -- FEC:Montantdevise + multicurrency_code varchar(255), -- FEC:Idevise + lettering_code varchar(255), -- FEC:EcritureLet + date_lettering datetime, -- FEC:DateLet + fk_user_author integer NOT NULL, -- | user creating + fk_user_modif integer, -- | user making last change + date_creation datetime, -- FEC:EcritureDate | creation date + tms timestamp, -- | date last modification + import_key varchar(14), + code_journal varchar(32) NOT NULL, -- FEC:JournalCode + journal_label varchar(255), -- FEC:JournalLib + piece_num integer NOT NULL, -- FEC:EcritureNum + validated tinyint DEFAULT 0 NOT NULL, -- | 0 line not validated / 1 line validated (No deleting / No modification) + date_validated datetime -- FEC:ValidDate +) ENGINE=innodb; + +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_doc_date (doc_date); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_fk_docdet (fk_docdet); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_numero_compte (numero_compte); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_code_journal (code_journal); + ALTER TABLE llx_paiementfourn ADD COLUMN model_pdf varchar(255); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201); diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.key.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.key.sql new file mode 100644 index 00000000000..95a15ca0a0d --- /dev/null +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.key.sql @@ -0,0 +1,22 @@ +-- ============================================================================ +-- Copyright (C) 2017 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_doc_date (doc_date); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_fk_docdet (fk_docdet); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_numero_compte (numero_compte); +ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_code_journal (code_journal); diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql new file mode 100644 index 00000000000..79954769cef --- /dev/null +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql @@ -0,0 +1,53 @@ +-- ============================================================================ +-- Copyright (C) 2013-2017 Olivier Geffroy +-- Copyright (C) 2013-2017 Alexandre Spangaro +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- ============================================================================ + +CREATE TABLE llx_accounting_bookkeeping_tmp +( + rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, + entity integer DEFAULT 1 NOT NULL, -- | multi company id + doc_date date NOT NULL, -- FEC:PieceDate + doc_type varchar(30) NOT NULL, -- FEC:PieceRef | facture_client/reglement_client/facture_fournisseur/reglement_fournisseur + doc_ref varchar(300) NOT NULL, -- | facture_client/reglement_client/... reference number + fk_doc integer NOT NULL, -- | facture_client/reglement_client/... rowid + fk_docdet integer NOT NULL, -- | facture_client/reglement_client/... line rowid + thirdparty_code varchar(32), -- Third party code (customer or supplier) when record is saved (may help debug) + subledger_account varchar(32), -- FEC:CompAuxNum | account number of subledger account + subledger_label varchar(255), -- FEC:CompAuxLib | label of subledger account + numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number + label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account + label_operation varchar(255), -- FEC:EcritureLib | label of the operation + debit numeric(24,8) NOT NULL, -- FEC:Debit + credit numeric(24,8) NOT NULL, -- FEC:Credit + montant numeric(24,8) NOT NULL, -- FEC:Montant (Not necessary) + sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) + multicurrency_amount numeric(24,8), -- FEC:Montantdevise + multicurrency_code varchar(255), -- FEC:Idevise + lettering_code varchar(255), -- FEC:EcritureLet + date_lettering datetime, -- FEC:DateLet + fk_user_author integer NOT NULL, -- | user creating + fk_user_modif integer, -- | user making last change + date_creation datetime, -- FEC:EcritureDate | creation date + tms timestamp, -- | date last modification + import_key varchar(14), + code_journal varchar(32) NOT NULL, -- FEC:JournalCode + journal_label varchar(255), -- FEC:JournalLib + piece_num integer NOT NULL, -- FEC:EcritureNum + validated tinyint DEFAULT 0 NOT NULL, -- | 0 line not validated / 1 line validated (No deleting / No modification) + date_validated datetime -- FEC:ValidDate +) ENGINE=innodb; diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 64744eedf4a..f9ec68a1689 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -214,6 +214,7 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use From d2371946ba040aeab84bd1ca81c03d6dabf4ebb9 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 19 Jun 2017 09:50:13 +0200 Subject: [PATCH 006/515] Fix: for avoid warning --- htdocs/core/class/conf.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index 8a96e18bf7d..a7a7540ca18 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -325,9 +325,9 @@ class Conf // Exception: Some dir are not the name of module. So we keep exception here for backward compatibility. // Sous module bons d'expedition - $this->expedition_bon->enabled=$this->global->MAIN_SUBMODULE_EXPEDITION?$this->global->MAIN_SUBMODULE_EXPEDITION:0; + $this->expedition_bon->enabled=(! empty($this->global->MAIN_SUBMODULE_EXPEDITION)?$this->global->MAIN_SUBMODULE_EXPEDITION:0); // Sous module bons de livraison - $this->livraison_bon->enabled=$this->global->MAIN_SUBMODULE_LIVRAISON?$this->global->MAIN_SUBMODULE_LIVRAISON:0; + $this->livraison_bon->enabled=(! empty($this->global->MAIN_SUBMODULE_LIVRAISON)?$this->global->MAIN_SUBMODULE_LIVRAISON:0); // Module fournisseur if (! empty($this->fournisseur)) From 85efe6ef74e37b70bebb7992cd144a5bdf97ebe3 Mon Sep 17 00:00:00 2001 From: Inovea Conseil Date: Mon, 19 Jun 2017 11:32:11 +0200 Subject: [PATCH 007/515] Add import fields for societe rib Add import fields for rib account, this fields are used in a new external module bankwire for supplier invoice. But we must copy the translation of banks.lang in bills.lang are there an other solution ? --- htdocs/core/modules/modSociete.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/modules/modSociete.class.php b/htdocs/core/modules/modSociete.class.php index c4c93537444..0861dea4a1d 100644 --- a/htdocs/core/modules/modSociete.class.php +++ b/htdocs/core/modules/modSociete.class.php @@ -416,7 +416,7 @@ class modSociete extends DolibarrModules $this->import_tables_array[$r]=array('sr'=>MAIN_DB_PREFIX.'societe_rib'); $this->import_fields_array[$r]=array('sr.fk_soc'=>"ThirdPartyName*",'sr.bank'=>"Bank", 'sr.code_banque'=>"BankCode*",'sr.code_guichet'=>"DeskCode*",'sr.number'=>"BankAccountNumber*", - 'sr.cle_rib'=>"BankAccountNumberKey*",'sr.bic'=>"BIC",'sr.iban_prefix'=>"IBAN" + 'sr.cle_rib'=>"BankAccountNumberKey*",'sr.bic'=>"BIC",'sr.iban_prefix'=>"IBAN", 'sr.domiciliation'=>"BankAccountDomiciliation",'sr.proprio' => "BankAccountOwner", 'sr.owner_address' => "BankAccountOwnerAddress", 'sr.default_rib' => 'Default' ); $this->import_convertvalue_array[$r]=array( @@ -424,7 +424,7 @@ class modSociete extends DolibarrModules ); $this->import_examplevalues_array[$r]=array('sr.fk_soc'=>"MyBigCompany",'sr.bank'=>"ING", 'sr.code_banque'=>"0000", 'sr.code_guichet'=>"1111",'sr.number'=>"3333333333", - 'sr.cle_rib'=>"22",'sr.bic'=>"USHINGMMXXX",'sr.iban_prefix'=>"US00 0000 1111 22 3333 3333" + 'sr.cle_rib'=>"22",'sr.bic'=>"USHINGMMXXX",'sr.iban_prefix'=>"US00 0000 1111 22 3333 3333",'sr.domiciliation'=>"PARIS",'sr.proprio' => "Name of owner", 'sr.owner_address' => "15 paris street 75000 Paris", 'sr.default_rib' => '1 or 0' ); // Import Company Salesman From 03eadcebf1c636cb8a9d4c5945d33d5929c8f082 Mon Sep 17 00:00:00 2001 From: Ferran Marcet Date: Mon, 19 Jun 2017 12:25:00 +0200 Subject: [PATCH 008/515] FIX: User id correction on holiday request --- htdocs/holiday/card.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index 8cae9592033..d9e651953c5 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -3,7 +3,7 @@ * Copyright (C) 2012-2015 Laurent Destailleur * Copyright (C) 2012-2016 Regis Houssin * Copyright (C) 2013 Juanjo Menent - * Copyright (C) 2014 Ferran Marcet + * Copyright (C) 2014-2017 Ferran Marcet * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -39,7 +39,7 @@ require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php'; $myparam = GETPOST("myparam"); $action=GETPOST('action', 'alpha'); $id=GETPOST('id', 'int'); -$userid = GETPOST('userid')?GETPOST('userid'):$user->id; +$userID = GETPOST('userID')?GETPOST('userID'):$user->id; // Protection if external user if ($user->societe_id > 0) accessforbidden(); @@ -57,6 +57,7 @@ if ($action == 'create') $cp = new Holiday($db); // If no right to create a request + $userid = GETPOST('userid'); if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all))) { $error++; @@ -82,7 +83,6 @@ if ($action == 'create') $valideur = GETPOST('valideur'); $description = trim(GETPOST('description')); - $userID = GETPOST('userID'); // If no type if ($type <= 0) @@ -112,7 +112,7 @@ if ($action == 'create') } // Check if there is already holiday for this period - $verifCP = $cp->verifDateHolidayCP($userID, $date_debut, $date_fin, $halfday); + $verifCP = $cp->verifDateHolidayCP($userid, $date_debut, $date_fin, $halfday); if (! $verifCP) { header('Location: '.$_SERVER["PHP_SELF"].'?action=request&error=alreadyCP'); @@ -762,7 +762,7 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create // Formulaire de demande print '
'."\n"; print ''."\n"; - print ''."\n"; + print ''."\n"; dol_fiche_head(); From a2ca6d5ef96d936fe15ef583c742ab6a6e869527 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 12:50:13 +0200 Subject: [PATCH 009/515] Add warning in log if conf file setup not correct --- htdocs/main.inc.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index 022aa4d5e44..dc3467a185d 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -654,7 +654,11 @@ if (! defined('NOLOGIN')) if (constant('DOL_MAIN_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_MAIN_URL_ROOT'),'/').'/', '', $relativepathstring); $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); $relativepathstring = preg_replace('/^\//', '', $relativepathstring); - if (! empty($_SESSION['lastsearch_values_tmp_'.$relativepathstring])) + if (preg_match('/^https?:/', $relativepathstring)) + { + dol_syslog('Failted to save the search criteria. Calculation of relative page fails (check parameter $dolibarr_main_url_root in conf file match the URL you use in your browser).', LOG_WARNING); + } + elseif (! empty($_SESSION['lastsearch_values_tmp_'.$relativepathstring])) { $_SESSION['lastsearch_values_'.$relativepathstring]=$_SESSION['lastsearch_values_tmp_'.$relativepathstring]; unset($_SESSION['lastsearch_values_tmp_'.$relativepathstring]); From 287e727e714418ce2ecf334f1960eaa411fb2d4d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 13:47:25 +0200 Subject: [PATCH 010/515] Fix detection of relative URL --- htdocs/core/lib/functions.lib.php | 4 +++- htdocs/main.inc.php | 14 +++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index ca3d0587905..50e3ecfb33f 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -276,9 +276,11 @@ function GETPOST($paramname, $check='', $method=0, $filter=NULL, $options=NULL) if (empty($method) || $method == 3 || $method == 4) { $relativepathstring = $_SERVER["PHP_SELF"]; + // Clean $relativepathstring if (constant('DOL_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_URL_ROOT'),'/').'/', '', $relativepathstring); - $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); $relativepathstring = preg_replace('/^\//', '', $relativepathstring); + $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); + //var_dump($relativepathstring); // Code for search criteria persistence. // Retrieve values if restore_lastsearch_values is set and there is saved values diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index dc3467a185d..78f5d9d4f1e 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -651,14 +651,14 @@ if (! defined('NOLOGIN')) if (! empty($_GET['save_lastsearch_values'])) // Keep $_GET here { $relativepathstring = preg_replace('/\?.*$/','',$_SERVER["HTTP_REFERER"]); - if (constant('DOL_MAIN_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_MAIN_URL_ROOT'),'/').'/', '', $relativepathstring); - $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); + $relativepathstring = preg_replace('/^https?:\/\/[^\/]*/','',$relativepathstring); // Get full path except host server + // Clean $relativepathstring + if (constant('DOL_URL_ROOT')) $relativepathstring = preg_replace('/^'.preg_quote(constant('DOL_URL_ROOT'),'/').'/', '', $relativepathstring); $relativepathstring = preg_replace('/^\//', '', $relativepathstring); - if (preg_match('/^https?:/', $relativepathstring)) - { - dol_syslog('Failted to save the search criteria. Calculation of relative page fails (check parameter $dolibarr_main_url_root in conf file match the URL you use in your browser).', LOG_WARNING); - } - elseif (! empty($_SESSION['lastsearch_values_tmp_'.$relativepathstring])) + $relativepathstring = preg_replace('/^custom\//', '', $relativepathstring); + //var_dump($relativepathstring); + + if (! empty($_SESSION['lastsearch_values_tmp_'.$relativepathstring])) { $_SESSION['lastsearch_values_'.$relativepathstring]=$_SESSION['lastsearch_values_tmp_'.$relativepathstring]; unset($_SESSION['lastsearch_values_tmp_'.$relativepathstring]); From bb2d27280b0687be03db4dc00295612bbd305ee8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 14:31:08 +0200 Subject: [PATCH 011/515] Fix sort link must be disabled for computed field --- htdocs/adherents/list.php | 4 +- htdocs/comm/propal/list.php | 4 +- htdocs/commande/list.php | 4 +- htdocs/compta/bank/bankentries.php | 48 ++++++------ htdocs/compta/bank/index.php | 40 +++++----- htdocs/compta/facture/list.php | 4 +- htdocs/contrat/list.php | 4 +- htdocs/contrat/services.php | 34 +++++---- htdocs/expedition/list.php | 56 +++++++------- htdocs/expensereport/list.php | 4 +- htdocs/fichinter/list.php | 62 ++++++++-------- htdocs/fourn/commande/list.php | 4 +- htdocs/fourn/facture/list.php | 4 +- htdocs/product/list.php | 4 +- htdocs/product/stock/mouvement.php | 4 +- htdocs/product/stock/productlot_list.php | 70 +++++++++--------- htdocs/projet/tasks/time.php | 4 +- htdocs/resource/list.php | 4 +- htdocs/supplier_proposal/list.php | 94 ++++++++++++------------ htdocs/user/index.php | 4 +- 20 files changed, 248 insertions(+), 208 deletions(-) diff --git a/htdocs/adherents/list.php b/htdocs/adherents/list.php index ec6bb85710c..20f36189862 100644 --- a/htdocs/adherents/list.php +++ b/htdocs/adherents/list.php @@ -609,7 +609,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/comm/propal/list.php b/htdocs/comm/propal/list.php index a8e3d23565f..39ee93fd9cd 100644 --- a/htdocs/comm/propal/list.php +++ b/htdocs/comm/propal/list.php @@ -732,7 +732,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/commande/list.php b/htdocs/commande/list.php index daefc3c4cce..73fa9c5b66e 100644 --- a/htdocs/commande/list.php +++ b/htdocs/commande/list.php @@ -1019,7 +1019,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/compta/bank/bankentries.php b/htdocs/compta/bank/bankentries.php index 5f50bf74c1b..d9dd8241248 100644 --- a/htdocs/compta/bank/bankentries.php +++ b/htdocs/compta/bank/bankentries.php @@ -407,7 +407,7 @@ if ($id > 0 || ! empty($ref)) dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, '', 0, '', '', 1); dol_fiche_end(); - + /* * Buttons actions */ @@ -521,10 +521,10 @@ if (($id > 0 || ! empty($ref)) && ((string) $page == '')) $offset = $limit * $page; if ($page < 0) $page = 0; } -if ($page >= $nbtotalofpages) +if ($page >= $nbtotalofpages) { // If we made a search and result has low page than the page number we were on - $page = ($nbtotalofpages -1); + $page = ($nbtotalofpages -1); $offset = $limit * $page; if ($page < 0) $page = 0; } @@ -598,7 +598,7 @@ if ($resql) print ''; print ' '.$langs->trans("or").' '; print ''; - + // Show last bank statements $nbmax=15; // We accept to show last 15 receipts (so we can have more than one year) $liste=""; @@ -703,8 +703,8 @@ if ($resql) $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; - - if ($moreforfilter) + + if ($moreforfilter) { print '
'; print $moreforfilter; @@ -718,7 +718,7 @@ if ($resql) print ''."\n"; print ''; - if (! empty($arrayfields['b.rowid']['checked'])) + if (! empty($arrayfields['b.rowid']['checked'])) { print ''; // Ref - if (! empty($arrayfields['b.rowid']['checked'])) + if (! empty($arrayfields['b.rowid']['checked'])) { print '\n"; if (! $i) $totalarray['nbfield']++; } // Date value - if (! empty($arrayfields['b.datev']['checked'])) + if (! empty($arrayfields['b.datev']['checked'])) { print ''; - if (! $i) $totalarray['nbfield']++; - + if (! $i) $totalarray['nbfield']++; + // Action column print ''; // Ref @@ -463,14 +465,14 @@ foreach ($accounts as $key=>$type) print ''; if (! $i) $totalarray['nbfield']++; } - + // Label if (! empty($arrayfields['b.label']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - + // Account type if (! empty($arrayfields['accountype']['checked'])) { @@ -479,14 +481,14 @@ foreach ($accounts as $key=>$type) print ''; if (! $i) $totalarray['nbfield']++; } - + // Number if (! empty($arrayfields['b.number']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - + // Account number if (! empty($arrayfields['b.account_number']['checked'])) { @@ -499,7 +501,7 @@ foreach ($accounts as $key=>$type) if (! $i) $totalarray['nbfield']++; } - + // Accountancy journal if (! empty($arrayfields['b.fk_accountancy_journal']['checked'])) { @@ -509,7 +511,7 @@ foreach ($accounts as $key=>$type) print ''; if (! $i) $totalarray['nbfield']++; } - + // Transactions to reconcile if (! empty($arrayfields['toreconcile']['checked'])) { @@ -528,13 +530,13 @@ foreach ($accounts as $key=>$type) print ''; if (! $i) $totalarray['nbfield']++; } - + // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { print 'getAlignFlag($key); @@ -567,14 +569,14 @@ foreach ($accounts as $key=>$type) print ''; if (! $i) $totalarray['nbfield']++; } - + // Statut if (! empty($arrayfields['b.clos']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - + // Balance if (! empty($arrayfields['balance']['checked'])) { @@ -585,7 +587,7 @@ foreach ($accounts as $key=>$type) if (! $i) $totalarray['totalbalancefield']=$totalarray['nbfield']; $totalarray['totalbalance'] += $solde; } - + // Action column print ''; if (! $i) $totalarray['nbfield']++; - + print ''; $total[$acc->currency_code] += $solde; diff --git a/htdocs/compta/facture/list.php b/htdocs/compta/facture/list.php index 2716e3a87b1..513c6854eb8 100644 --- a/htdocs/compta/facture/list.php +++ b/htdocs/compta/facture/list.php @@ -975,7 +975,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/contrat/list.php b/htdocs/contrat/list.php index a82535bfbb7..a526a9bd78c 100644 --- a/htdocs/contrat/list.php +++ b/htdocs/contrat/list.php @@ -535,7 +535,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/contrat/services.php b/htdocs/contrat/services.php index 3d5db42495a..aea03a73df5 100644 --- a/htdocs/contrat/services.php +++ b/htdocs/contrat/services.php @@ -372,7 +372,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -516,23 +518,23 @@ $var=True; $i=0; while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); - + $contractstatic->id=$obj->cid; $contractstatic->ref=$obj->ref?$obj->ref:$obj->cid; - - + + print ''; - + // Ref - if (! empty($arrayfields['c.ref']['checked'])) + if (! empty($arrayfields['c.ref']['checked'])) { print ''; } // Service - if (! empty($arrayfields['p.description']['checked'])) + if (! empty($arrayfields['p.description']['checked'])) { print ''; } - + // Third party - if (! empty($arrayfields['s.nom']['checked'])) + if (! empty($arrayfields['s.nom']['checked'])) { print ''; } - + // Start date - if (! empty($arrayfields['cd.date_ouverture_prevue']['checked'])) + if (! empty($arrayfields['cd.date_ouverture_prevue']['checked'])) { print ''; } - if (! empty($arrayfields['cd.date_ouverture']['checked'])) + if (! empty($arrayfields['cd.date_ouverture']['checked'])) { print ''; } // End date - if (! empty($arrayfields['cd.date_fin_validite']['checked'])) + if (! empty($arrayfields['cd.date_fin_validite']['checked'])) { print ''; } - if (! empty($arrayfields['cd.date_cloture']['checked'])) + if (! empty($arrayfields['cd.date_cloture']['checked'])) { print ''; } @@ -658,7 +660,7 @@ while ($i < min($num,$limit)) } print ''; if (! $i) $totalarray['nbfield']++; - + print "\n"; $i++; } diff --git a/htdocs/expedition/list.php b/htdocs/expedition/list.php index c4a07580a9a..22e11e6fd1e 100644 --- a/htdocs/expedition/list.php +++ b/htdocs/expedition/list.php @@ -158,9 +158,9 @@ if (empty($reshook)) } } - - - + + + /* * View @@ -271,9 +271,9 @@ if ($resql) $tmpkey=preg_replace('/search_options_/','',$key); if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); } - + //$massactionbutton=$form->selectMassAction('', $massaction == 'presend' ? array() : array('presend'=>$langs->trans("SendByMail"), 'builddoc'=>$langs->trans("PDFMerge"))); - + $i = 0; print ''."\n"; if ($optioncss != '') print ''; @@ -283,7 +283,7 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($langs->trans('ListOfSendings'), $page, $_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num, $nbtotalofrecords, '', 0, '', '', $limit); if ($sall) @@ -291,7 +291,7 @@ if ($resql) foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); } - + $moreforfilter=''; if (! empty($moreforfilter)) { @@ -305,28 +305,28 @@ if ($resql) $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - + print '
'; print '
'; print ''; @@ -821,7 +821,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -840,19 +842,19 @@ if ($resql) $sign = 1; $totalarray=array(); - while ($i < min($num,$limit)) + while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); // If we are in a situation where we need/can show balance, we calculate the start of balance if (! $balancecalculated && ! empty($arrayfields['balance']['checked']) && $mode_balance_ok) { - if (! $account) + if (! $account) { dol_print_error('', 'account is not defined but $mode_balance_ok is true'); exit; } - + //Loop on each record $sign = 1; $i = 0; @@ -875,7 +877,7 @@ if ($resql) } } else dol_print_error($db); - + $balancecalculated=true; } @@ -896,7 +898,7 @@ if ($resql) print '
'; print "rowid.'">'.img_object($langs->trans("ShowPayment").': '.$objp->rowid, 'account', 'class="classfortooltip"').' '.$objp->rowid."   "; @@ -908,14 +910,14 @@ if ($resql) if (! empty($arrayfields['description']['checked'])) { print ""; - + //print "rowid."&account=".$objp->fk_account."\">"; $reg=array(); preg_match('/\((.+)\)/i',$objp->label,$reg); // Si texte entoure de parenthee on tente recherche de traduction if ($reg[1] && $langs->trans($reg[1])!=$reg[1]) print $langs->trans($reg[1]); else print dol_trunc($objp->label,40); //print " "; - + // Add links after description $links = $bankaccountstatic->get_url($objp->rowid); $cachebankaccount=array(); @@ -1040,14 +1042,14 @@ if ($resql) } // Date ope - if (! empty($arrayfields['b.dateo']['checked'])) + if (! empty($arrayfields['b.dateo']['checked'])) { print ''.dol_print_date($db->jdate($objp->do),"day")."'; print ''.dol_print_date($db->jdate($objp->dv),"day").""; @@ -1063,7 +1065,7 @@ if ($resql) } // Payment type - if (! empty($arrayfields['type']['checked'])) + if (! empty($arrayfields['type']['checked'])) { print ''; $labeltype=($langs->trans("PaymentTypeShort".$objp->fk_type)!="PaymentTypeShort".$objp->fk_type)?$langs->trans("PaymentTypeShort".$objp->fk_type):$langs->getLabelFromKey($db,$objp->fk_type,'c_paiement','code','libelle'); @@ -1081,7 +1083,7 @@ if ($resql) } // Third party - if (! empty($arrayfields['bu.label']['checked'])) + if (! empty($arrayfields['bu.label']['checked'])) { print ""; if ($objp->url_id) @@ -1106,7 +1108,7 @@ if ($resql) } // Bank account - if (! empty($arrayfields['ba.ref']['checked'])) + if (! empty($arrayfields['ba.ref']['checked'])) { print ''; print $bankaccount->getNomUrl(1); @@ -1174,7 +1176,7 @@ if ($resql) print ''.$objp->num_releve.''; } else if ($action == 'reconcile') - { + { print 'rowid])?' checked':'').'>'; } } @@ -1229,8 +1231,8 @@ if ($resql) } } print ''; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined diff --git a/htdocs/compta/bank/index.php b/htdocs/compta/bank/index.php index 0c24d25e064..9d8cf29ee39 100644 --- a/htdocs/compta/bank/index.php +++ b/htdocs/compta/bank/index.php @@ -129,9 +129,9 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP $search_number=''; $search_statut=''; } - - - + + + /* * View */ @@ -416,7 +416,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -437,7 +439,7 @@ $var=true; foreach ($accounts as $key=>$type) { if ($i >= $limit) break; - + $found++; $acc = new Account($db); @@ -454,7 +456,7 @@ foreach ($accounts as $key=>$type) { $lastcurrencycode=$acc->currency_code; } - + print '
'.$acc->getNomUrl(1).''.$acc->label.''.$acc->number.''.$accountingjournal->getNomUrl(0,1,1,'',1).''.$acc->getLibStatut(5).''; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined @@ -596,7 +598,7 @@ foreach ($accounts as $key=>$type) } print '
'; print $contractstatic->getNomUrl(1,16); print ''; if ($obj->pid) @@ -552,9 +554,9 @@ while ($i < min($num,$limit)) } print ''; $companystatic->id=$obj->socid; @@ -563,9 +565,9 @@ while ($i < min($num,$limit)) print $companystatic->getNomUrl(1,'customer',28); print ''; print ($obj->date_ouverture_prevue?dol_print_date($db->jdate($obj->date_ouverture_prevue)):' '); @@ -574,15 +576,15 @@ while ($i < min($num,$limit)) else print '    '; print ''.($obj->date_ouverture?dol_print_date($db->jdate($obj->date_ouverture)):' ').''.($obj->date_fin_validite?dol_print_date($db->jdate($obj->date_fin_validite)):' '); - if ($obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < ($now - $conf->contrat->services->expires->warning_delay) && $obj->statut < 5) + if ($obj->date_fin_validite && $db->jdate($obj->date_fin_validite) < ($now - $conf->contrat->services->expires->warning_delay) && $obj->statut < 5) { $warning_delay=$conf->contrat->services->expires->warning_delay / 3600 / 24; $textlate = $langs->trans("Late").' = '.$langs->trans("DateReference").' > '.$langs->trans("DateToday").' '.(ceil($warning_delay) >= 0 ? '+' : '').ceil($warning_delay).' '.$langs->trans("days"); @@ -591,7 +593,7 @@ while ($i < min($num,$limit)) else print '    '; print ''.dol_print_date($db->jdate($obj->date_cloture)).'
'."\n"; // Lignes des champs de filtre print ''; // Ref - if (! empty($arrayfields['e.ref']['checked'])) + if (! empty($arrayfields['e.ref']['checked'])) { print ''; } // Ref customer - if (! empty($arrayfields['e.ref_customer']['checked'])) + if (! empty($arrayfields['e.ref_customer']['checked'])) { print ''; } // Thirdparty - if (! empty($arrayfields['s.nom']['checked'])) + if (! empty($arrayfields['s.nom']['checked'])) { print ''; } // Date delivery planned - if (! empty($arrayfields['e.date_delivery']['checked'])) + if (! empty($arrayfields['e.date_delivery']['checked'])) { print ''; } - if (! empty($arrayfields['l.ref']['checked'])) + if (! empty($arrayfields['l.ref']['checked'])) { // Delivery ref print ''; @@ -447,7 +447,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -461,7 +463,7 @@ if ($resql) if (! empty($arrayfields['l.fk_statut']['checked'])) print_liste_field_titre($arrayfields['l.fk_statut']['label'], $_SERVER["PHP_SELF"],"l.fk_statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - + $i=0; $var=true; $totalarray=array(); @@ -471,15 +473,15 @@ if ($resql) $shipment->id=$obj->rowid; $shipment->ref=$obj->ref; - + $companystatic->id=$obj->socid; $companystatic->ref=$obj->name; $companystatic->name=$obj->name; - - + + print ''; - + // Ref if (! empty($arrayfields['e.ref']['checked'])) { @@ -488,7 +490,7 @@ if ($resql) print "\n"; if (! $i) $totalarray['nbfield']++; } - + // Ref customer if (! empty($arrayfields['e.ref_customer']['checked'])) { @@ -496,8 +498,8 @@ if ($resql) print $obj->ref_customer; print "\n"; if (! $i) $totalarray['nbfield']++; - } - + } + // Third party if (! empty($arrayfields['s.nom']['checked'])) { @@ -546,7 +548,7 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } - + // Date delivery planed if (! empty($arrayfields['e.date_delivery']['checked'])) { @@ -558,7 +560,7 @@ if ($resql) }*/ print "\n"; } - + if (! empty($arrayfields['l.ref']['checked']) || ! empty($arrayfields['l.date_delivery']['checked'])) { $shipment->fetchObjectLinked($shipment->id,$shipment->element); @@ -572,7 +574,7 @@ if ($resql) print !empty($receiving) ? $receiving->getNomUrl($db) : ''; print ''; } - + if (! empty($arrayfields['l.date_delivery']['checked'])) { // Date received @@ -629,7 +631,7 @@ if ($resql) // Action column print ''; if (! $i) $totalarray['nbfield']++; - + print "\n"; $i++; diff --git a/htdocs/expensereport/list.php b/htdocs/expensereport/list.php index bbf2266ab13..d2c5db3426d 100644 --- a/htdocs/expensereport/list.php +++ b/htdocs/expensereport/list.php @@ -486,7 +486,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/fichinter/list.php b/htdocs/fichinter/list.php index 0404f976328..78fd59ecb22 100644 --- a/htdocs/fichinter/list.php +++ b/htdocs/fichinter/list.php @@ -117,7 +117,7 @@ $arrayfields=array( // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]); } @@ -224,7 +224,7 @@ foreach ($search_array_options as $key => $val) $typ=$extrafields->attribute_type[$tmpkey]; $mode=0; if (in_array($typ, array('int','double'))) $mode=1; // Search on a numeric - if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) + if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) { $sql .= natural_search('ef.'.$tmpkey, $crit, $mode); } @@ -252,7 +252,7 @@ if ($resql) $num = $db->num_rows($resql); $arrayofselected=is_array($toselect)?$toselect:array(); - + $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; @@ -270,7 +270,7 @@ if ($resql) $crit=$val; $tmpkey=preg_replace('/search_options_/','',$key); if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); - } + } // List of mass actions available $arrayofmassactions = array( @@ -281,7 +281,7 @@ if ($resql) if ($user->rights->ficheinter->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete"); //if ($massaction == 'presend' || $massaction == 'createbills') $arrayofmassactions=array(); $massactionbutton=$form->selectMassAction('', $arrayofmassactions); - + // Lines of title fields print ''."\n"; if ($optioncss != '') print ''; @@ -292,9 +292,9 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($title, $page, $_SERVER['PHP_SELF'], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_commercial.png', 0, '', '', $limit); - + if ($sall) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); @@ -302,23 +302,23 @@ if ($resql) } $moreforfilter=''; - + $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; - + if (! empty($moreforfilter)) { print '
'; print $moreforfilter; print '
'; } - + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); - + print '
'; print '
'; print ''; print ''; print ''; print ''; print ''; @@ -358,18 +358,18 @@ if ($resql) print ' '; print ''; } - if (! empty($arrayfields['l.date_delivery']['checked'])) + if (! empty($arrayfields['l.date_delivery']['checked'])) { // Date received print ' 
'."\n"; @@ -357,9 +357,9 @@ if ($resql) // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); $typeofextrafield=$extrafields->attribute_type[$key]; @@ -406,7 +406,7 @@ if ($resql) $searchpicto=$form->showFilterButtons(); print $searchpicto; print ''; - + print "\n"; print ''; @@ -424,7 +424,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -437,24 +439,24 @@ if ($resql) if (! empty($arrayfields['f.fk_statut']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.fk_statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - + $total = 0; $i = 0; $totalarray=array(); while ($i < min($num, $limit)) { $obj = $db->fetch_object($resql); - + $objectstatic->id=$obj->rowid; $objectstatic->ref=$obj->ref; $objectstatic->statut=$obj->fk_statut; - + print ''; - + if (! empty($arrayfields['f.ref']['checked'])) { print "\n"; if (! $i) $totalarray['nbfield']++; } @@ -525,9 +527,9 @@ if ($resql) // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { print 'getAlignFlag($key); @@ -576,7 +578,7 @@ if ($resql) } print ''; if (! $i) $totalarray['nbfield']++; - + print "\n"; $total += $obj->duree; @@ -603,14 +605,14 @@ if ($resql) } $db->free($resql); - + $parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - + print '
"; - + print ''; // Picto + Ref print '
'; @@ -484,7 +486,7 @@ if ($resql) $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid; print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); print '
'; - + print "
'."\n"; print '
'; - + print "\n"; if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) @@ -620,18 +622,18 @@ if ($resql) */ $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; $urlsource.=str_replace('&','&',$param); - + $filedir=$diroutputmassaction; $genallowed=$user->rights->ficheinter->lire; $delallowed=$user->rights->ficheinter->supprimer; - + print $formfile->showdocuments('massfilesarea_interventions','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,''); } else { print '
'.$langs->trans("ShowTempMassFilesArea").''; } - + } else { diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index bafdeeab4db..0b988e4d96b 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -1050,7 +1050,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/fourn/facture/list.php b/htdocs/fourn/facture/list.php index 30d31c0ea02..a9e372a9709 100644 --- a/htdocs/fourn/facture/list.php +++ b/htdocs/fourn/facture/list.php @@ -888,7 +888,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/product/list.php b/htdocs/product/list.php index 1512fda7b4f..8a8eda5b65a 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -654,7 +654,9 @@ else if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 469c2f292e7..23df5282435 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -892,7 +892,9 @@ if ($resql) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/product/stock/productlot_list.php b/htdocs/product/stock/productlot_list.php index 61e9438c929..ef4a9bf70c9 100644 --- a/htdocs/product/stock/productlot_list.php +++ b/htdocs/product/stock/productlot_list.php @@ -112,7 +112,7 @@ $arrayfields=array( // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { $arrayfields["ef.".$key]=array('label'=>$extrafields->attribute_label[$key], 'checked'=>$extrafields->attribute_list[$key], 'position'=>$extrafields->attribute_pos[$key], 'enabled'=>$extrafields->attribute_perms[$key]); } @@ -129,7 +129,7 @@ if (($id > 0 || ! empty($ref)) && $action != 'add') /* - * Actions + * Actions */ if (GETPOST('cancel')) { $action='list'; $massaction=''; } @@ -245,7 +245,7 @@ foreach ($search_array_options as $key => $val) $typ=$extrafields->attribute_type[$tmpkey]; $mode=0; if (in_array($typ, array('int','double'))) $mode=1; // Search on a numeric - if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) + if ($val && ( ($crit != '' && ! in_array($typ, array('select'))) || ! empty($crit))) { $sql .= natural_search('ef.'.$tmpkey, $crit, $mode); } @@ -263,7 +263,7 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $result = $db->query($sql); $nbtotalofrecords = $db->num_rows($result); -} +} $sql.= $db->plimit($limit+1, $offset); @@ -275,7 +275,7 @@ if ($resql) $num = $db->num_rows($resql); $arrayofselected=is_array($toselect)?$toselect:array(); - + $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; @@ -292,7 +292,7 @@ if ($resql) $crit=$val; $tmpkey=preg_replace('/search_options_/','',$key); if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); - } + } $arrayofmassactions = array( //'presend'=>$langs->trans("SendByMail"), @@ -310,25 +310,25 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_companies', 0, '', '', $limit); - + if ($sall) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); } - + /*$moreforfilter = ''; $moreforfilter.='
'; $moreforfilter.= $langs->trans('MyFilter') . ': '; $moreforfilter.= '
';*/ - + $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; - + if (! empty($moreforfilter)) { print '
'; @@ -338,7 +338,7 @@ if ($resql) $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - + print '
'; print ''."\n"; @@ -404,7 +404,7 @@ if ($resql) print $searchpicto; print ''; print ''."\n"; - + // Fields title print ''; if (! empty($arrayfields['t.entity']['checked'])) print_liste_field_titre($arrayfields['t.entity']['label'],$_SERVER['PHP_SELF'],'t.entity','',$param,'',$sortfield,$sortorder); @@ -418,12 +418,14 @@ if ($resql) // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -438,7 +440,7 @@ if ($resql) print ''."\n"; $productlot = new Productlot($db); - + $i=0; $var=true; $totalarray=array(); @@ -448,23 +450,23 @@ if ($resql) if ($obj) { $var = !$var; - + $productlot->id = $obj->rowid; $productlot->batch = $obj->batch; - + // You can use here results print ''; - if (! empty($arrayfields['t.entity']['checked'])) + if (! empty($arrayfields['t.entity']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.batch']['checked'])) + if (! empty($arrayfields['t.batch']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.fk_product']['checked'])) + if (! empty($arrayfields['t.fk_product']['checked'])) { $productstatic->id=$obj->fk_product; $productstatic->type=$obj->product_type; @@ -473,22 +475,22 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.eatby']['checked'])) + if (! empty($arrayfields['t.eatby']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.sellby']['checked'])) + if (! empty($arrayfields['t.sellby']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.fk_user_creat']['checked'])) + if (! empty($arrayfields['t.fk_user_creat']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; } - if (! empty($arrayfields['t.fk_user_modif']['checked'])) + if (! empty($arrayfields['t.fk_user_modif']['checked'])) { print ''; if (! $i) $totalarray['nbfield']++; @@ -497,13 +499,13 @@ if ($resql) { print ''; if (! $i) $totalarray['nbfield']++; - } + } // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { print 'getAlignFlag($key); @@ -580,7 +582,7 @@ if ($resql) } print ''; } - + $db->free($resql); $parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); @@ -589,20 +591,20 @@ if ($resql) print '
'.$obj->entity.''.$productlot->getNomUrl(1).''.$productstatic->getNomUrl(1).''.dol_print_date($db->jdate($obj->eatby), 'day').''.dol_print_date($db->jdate($obj->sellby), 'day').''.$obj->fk_user_creat.''.$obj->fk_user_modif.''.$obj->import_key.'
'."\n"; print '
'; - + print ''."\n"; - + /* if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { // Show list of available documents $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; $urlsource.=str_replace('&','&',$param); - + $filedir=$diroutputmassaction; $genallowed=$user->rights->facture->lire; $delallowed=$user->rights->facture->lire; - + print $formfile->showdocuments('massfilesarea_orders','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,''); } else diff --git a/htdocs/projet/tasks/time.php b/htdocs/projet/tasks/time.php index 2ace6736889..37331b000ab 100644 --- a/htdocs/projet/tasks/time.php +++ b/htdocs/projet/tasks/time.php @@ -805,7 +805,9 @@ if (($id > 0 || ! empty($ref)) || $projectidforalltimes > 0) if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } }*/ diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 5ec9eabbfb1..11405d15acc 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -245,7 +245,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } diff --git a/htdocs/supplier_proposal/list.php b/htdocs/supplier_proposal/list.php index e401fdbe710..f6d9c9510a0 100644 --- a/htdocs/supplier_proposal/list.php +++ b/htdocs/supplier_proposal/list.php @@ -363,11 +363,11 @@ if ($resql) { $title = $langs->trans('ListOfSupplierProposals'); } - + $num = $db->num_rows($resql); $arrayofselected=is_array($toselect)?$toselect:array(); - + $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; @@ -401,7 +401,7 @@ if ($resql) if ($user->rights->supplier_proposal->supprimer) $arrayofmassactions['delete']=$langs->trans("Delete"); if ($massaction == 'presend') $arrayofmassactions=array(); $massactionbutton=$form->selectMassAction('', $arrayofmassactions); - + // Lignes des champs de filtre print '
'; if ($optioncss != '') print ''; @@ -411,13 +411,13 @@ if ($resql) print ''; print ''; print ''; - + print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, 'title_commercial.png', 0, '', '', $limit); if ($massaction == 'presend') { $langs->load("mails"); - + if (! GETPOST('cancel')) { $objecttmp=new SupplierProposal($db); @@ -436,17 +436,17 @@ if ($resql) } } } - + print ''; - + include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); - + dol_fiche_head(null, '', ''); - + $topicmail="SendProposalRef"; $modelmail="propal_send"; - + // Cree l'objet formulaire mail include_once DOL_DOCUMENT_ROOT.'/core/class/html.formmail.class.php'; $formmail = new FormMail($db); @@ -499,25 +499,25 @@ if ($resql) $formmail->substit['__REFCLIENT__']='__REFCLIENT__'; // We want to keep the tag $formmail->substit['__PERSONALIZED__']=''; $formmail->substit['__CONTACTCIVNAME__']=''; - + // Tableau des parametres complementaires du post $formmail->param['action']=$action; $formmail->param['models']=$modelmail; $formmail->param['models_id']=GETPOST('modelmailselected','int'); $formmail->param['id']=join(',',$arrayofselected); //$formmail->param['returnurl']=$_SERVER["PHP_SELF"].'?id='.$object->id; - + print $formmail->get_form(); - + dol_fiche_end(); } - + if ($sall) { foreach($fieldstosearchall as $key => $val) $fieldstosearchall[$key]=$langs->trans($val); print $langs->trans("FilterOnInto", $sall) . join(', ',$fieldstosearchall); } - + $i = 0; $moreforfilter=''; @@ -553,30 +553,30 @@ if ($resql) $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; - + if (! empty($moreforfilter)) { print '
'; print $moreforfilter; print '
'; } - + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); - + print '
'; print ''."\n"; - + print ''; - if (! empty($arrayfields['sp.ref']['checked'])) + if (! empty($arrayfields['sp.ref']['checked'])) { print ''; } if (! empty($arrayfields['s.nom']['checked'])) - { + { print ''; @@ -605,7 +605,7 @@ if ($resql) print ''; } // Date - if (! empty($arrayfields['sp.date_valid']['checked'])) + if (! empty($arrayfields['sp.date_valid']['checked'])) { print ''; + print ''; } // Date - if (! empty($arrayfields['sp.date_livraison']['checked'])) + if (! empty($arrayfields['sp.date_livraison']['checked'])) { print ''; - } + } // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -693,7 +693,7 @@ if ($resql) { print ''; - } + } // Status if (! empty($arrayfields['sp.fk_statut']['checked'])) { @@ -727,12 +727,14 @@ if ($resql) // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { - foreach($extrafields->attribute_label as $key => $val) + foreach($extrafields->attribute_label as $key => $val) { - if (! empty($arrayfields["ef.".$key]['checked'])) + if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } @@ -745,7 +747,7 @@ if ($resql) if (! empty($arrayfields['sp.fk_statut']['checked'])) print_liste_field_titre($arrayfields['sp.fk_statut']['label'],$_SERVER["PHP_SELF"],"sp.fk_statut","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); print ''."\n"; - + $now = dol_now(); $i=0; $total=0; @@ -754,12 +756,12 @@ if ($resql) while ($i < min($num,$limit)) { $obj = $db->fetch_object($resql); - + $objectstatic->id=$obj->rowid; $objectstatic->ref=$obj->ref; print ''; - + if (! empty($arrayfields['sp.ref']['checked'])) { print '
'; print ''; print ''; print ''; print ''; //print $langs->trans('Month').': '; @@ -613,10 +613,10 @@ if ($resql) //print ' '.$langs->trans('Year').': '; $syearvalid = $yearvalid; $formother->select_year($syearvalid,'yearvalid',1, 20, 5); - print ''; //print $langs->trans('Month').': '; @@ -654,7 +654,7 @@ if ($resql) print ''; print ''; print ''; print '
'; @@ -792,11 +794,11 @@ if ($resql) $urlsource=$_SERVER['PHP_SELF'].'?id='.$obj->rowid; print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); print '
'; - + print "\n"; if (! $i) $totalarray['nbfield']++; } - + $url = DOL_URL_ROOT.'/comm/card.php?socid='.$obj->socid; // Company @@ -854,7 +856,7 @@ if ($resql) print ''; if (! $i) $totalarray['nbfield']++; } - + // Date proposal if (! empty($arrayfields['sp.date_valid']['checked'])) { @@ -863,7 +865,7 @@ if ($resql) print "\n"; if (! $i) $totalarray['nbfield']++; } - + // Date delivery if (! empty($arrayfields['sp.date_livraison']['checked'])) { @@ -897,7 +899,7 @@ if ($resql) if (! $i) $totalarray['totalttcfield']=$totalarray['nbfield']; $totalarray['totalttc'] += $obj->total_ttc; } - + $userstatic->id=$obj->fk_user_author; $userstatic->login=$obj->login; @@ -910,7 +912,7 @@ if ($resql) print "\n"; if (! $i) $totalarray['nbfield']++; } - + // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -951,7 +953,7 @@ if ($resql) } // Status if (! empty($arrayfields['sp.fk_statut']['checked'])) - { + { print ''.$objectstatic->LibStatut($obj->fk_statut,5)."\n"; if (! $i) $totalarray['nbfield']++; } @@ -966,7 +968,7 @@ if ($resql) } print ''; if (! $i) $totalarray['nbfield']++; - + print "\n"; $total += $obj->total_ht; @@ -1002,16 +1004,16 @@ if ($resql) } $db->free($resql); - + $parameters=array('arrayfields'=>$arrayfields, 'sql'=>$sql); $reshook=$hookmanager->executeHooks('printFieldListFooter',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - + print ''."\n"; print '
'."\n"; print '
'."\n"; - + if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { /* @@ -1019,18 +1021,18 @@ if ($resql) */ $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; $urlsource.=str_replace('&','&',$param); - + $filedir=$diroutputmassaction; $genallowed=$user->rights->supplier_proposal->lire; $delallowed=$user->rights->supplier_proposal->lire; - + print $formfile->showdocuments('massfilesarea_supplier_proposal','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,'',''); } else { print '
'.$langs->trans("ShowTempMassFilesArea").''; } - + } else { diff --git a/htdocs/user/index.php b/htdocs/user/index.php index 9c82216d5be..54fffcd3fb7 100644 --- a/htdocs/user/index.php +++ b/htdocs/user/index.php @@ -451,7 +451,9 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab if (! empty($arrayfields["ef.".$key]['checked'])) { $align=$extrafields->getAlignFlag($key); - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],"ef.".$key,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + $sortonfield = "ef.".$key; + if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; + print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); } } } From 241ec01adfea29fd6003e97f3c2f6f3bef6ce29f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 15:07:55 +0200 Subject: [PATCH 012/515] FIX #7031 missing change column "state_id" since dolibarr 3.5 !! --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 18349872d72..7d2d76e6d08 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -98,6 +98,11 @@ ALTER TABLE llx_actioncomm ADD COLUMN extraparams varchar(255); ALTER TABLE llx_bank_account ADD COLUMN extraparams varchar(255); +ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer DEFAULT NULL; + +ALTER TABLE llx_adherent MODIFY COLUMN state_id integer DEFAULT NULL; +ALTER TABLE llx_adherent MODIFY COLUMN country integer DEFAULT NULL; + insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30); From 3d247abe795d35f1640a727173188c4d9a79b5a2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 15:30:55 +0200 Subject: [PATCH 013/515] Test #7029 without switching to trustry for the moment. --- .travis.yml | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index bf34c86bd58..657972a31de 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,16 +17,22 @@ php: addons: mariadb: '10.0' - # FIXME: find a way to import a MySQL dump into PostgreSQL - #postgresql: '9.3' + postgresql: '9.3' apt: + sources: + # To use the last version of pgloader, we add repo of postgresql + - postgresql + - sourceline: 'deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main' + - key_url: 'https://www.postgresql.org/media/keys/ACCC4CF8.asc' packages: # We need a webserver to test the webservices # Let's install Apache with. - apache2 # mod_php is not supported by Travis. Add fcgi. We install FPM later on. - libapache2-mod-fastcgi - + # We need pgloader for import mysql database into pgsql + - pgloader + # Start on every boot services: - memcached @@ -39,8 +45,7 @@ env: # MariaDB overrides MySQL installation so it's not possible to test both yet #- DB=mysql - DB=mariadb - # FIXME: find a way to import a MySQL dump into PostgreSQL - #- DB=postgresql + - DB=postgresql # TODO #- DB=sqlite # See https://docs.travis-ci.com/user/languages/php/#Apache-%2B-PHP @@ -77,6 +82,13 @@ before_install: phpenv config-rm xdebug.ini echo +- | + if [ "$DB" = 'postgresql' ]; then + echo "Check pgloader version" + pgloader --version + echo + fi + install: - | echo "Updating Composer" @@ -132,10 +144,10 @@ before_script: echo "Set timezone" echo 'date.timezone = "Europe/Paris"' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini if [ "$TRAVIS_PHP_VERSION" = '5.3' ] || [ "$TRAVIS_PHP_VERSION" = '5.4' ]; then - echo - echo "Enabling APC for PHP <= 5.4" + #echo + #echo "Enabling APC for PHP <= 5.4" # Documentation says it should be available for PHP <= 5.6 but it's not for 5.5 and 5.6! - echo 'extension = apc.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini + #echo 'extension = apc.so' >> ~/.phpenv/versions/$PHP_VERSION_NAME/etc/php.ini echo echo "Enabling Memcached for PHP <= 5.4" # Documentation says it should be available for all PHP versions but it's not for 5.5 and 5.6, 7.0, 7.1 and nightly! @@ -164,16 +176,18 @@ before_script: - | echo "Setting up database" - if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then + if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ] || [ "$DB" = 'postgresql' ]; then echo "MySQL" mysql -e 'DROP DATABASE IF EXISTS travis;' mysql -e 'CREATE DATABASE IF NOT EXISTS travis;' + mysql -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;' + mysql -e 'FLUSH PRIVILEGES;' mysql -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql fi - # FIXME: find a way to import a MySQL dump into PostgreSQL - #if [ "$DB" = 'postgresql' ]; then - # pgsql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql - #fi + if [ "$DB" = 'postgresql' ]; then + #pgsql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql + pgloader mysql://root@127.0.0.1/travis postgresql:///travis + fi # TODO: SQLite echo @@ -190,10 +204,9 @@ before_script: if [ "$DB" = 'mysql' ] || [ "$DB" = 'mariadb' ]; then echo '$'dolibarr_main_db_type=\'mysqli\'';' >> $CONF_FILE fi - # FIXME - #if [ "$DB" = 'postgresql' ]; then - # echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE - #fi + if [ "$DB" = 'postgresql' ]; then + echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE + fi # TODO: SQLite echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE cat $CONF_FILE From 8f6e756249f12755bc4c34db8d88d7e07606d068 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 15:37:22 +0200 Subject: [PATCH 014/515] Fix PHPCS --- .../accountancy/class/bookkeeping.class.php | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 88e67b42735..a441b79dbb2 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -924,11 +924,10 @@ class BookKeeping extends CommonObject /** * Update object into database * - * @param User $user User that modifies - * @param bool $notrigger false=launch triggers after, true=disable triggers - * @param string $mode Mode - * - * @return int <0 if KO, >0 if OK + * @param User $user User that modifies + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @param string $mode Mode + * @return int <0 if KO, >0 if OK */ public function update(User $user, $notrigger = false, $mode='') { $error = 0; @@ -956,6 +955,7 @@ class BookKeeping extends CommonObject } if (isset($this->subledger_label)) { $this->subledger_label = trim($this->subledger_label); + } if (isset($this->numero_compte)) { $this->numero_compte = trim($this->numero_compte); } @@ -1054,11 +1054,11 @@ class BookKeeping extends CommonObject /** * Update movement * - * @param string $piece_num - * @param string $field - * @param string $value - * @param string $mode - * @return number + * @param string $piece_num Piece num + * @param string $field Field + * @param string $value Value + * @param string $mode Mode + * @return number <0 if KO, >0 if OK */ public function upddateByMvt($piece_num='', $field='', $value='', $mode='') { $this->db->begin(); @@ -1382,8 +1382,9 @@ class BookKeeping extends CommonObject /** * Load all informations of accountancy document * - * @param int $piecenum id of line to get - * @return int <0 if KO, >0 if OK + * @param int $piecenum Id of line to get + * @param string $mode Mode + * @return int <0 if KO, >0 if OK */ function fetchAllPerMvt($piecenum, $mode='') { global $conf; @@ -1498,8 +1499,9 @@ class BookKeeping extends CommonObject /** * Transform transaction * - * @param number $direction if 0 tmp => real, if 1 real => tmp - * @param unknown $piecenum + * @param number $direction If 0 tmp => real, if 1 real => tmp + * @param string $piece_num Piece num + * @return void */ public function transformTransaction($direction=0,$piece_num='') { $this->db->begin(); From 6fe96b322abf55f677a94e97eaf31cf31b8a0f1b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 16:18:07 +0200 Subject: [PATCH 015/515] Fix PHPCS --- htdocs/accountancy/bookkeeping/card.php | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 0df46f21740..680a2d25470 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -231,11 +231,10 @@ llxHeader(); $html = new Form($db); $formaccounting = new FormAccounting($db); $accountjournal = new AccountingJournal($db); -/* - * Confirmation to delete the command - */ + +// Confirmation to delete the command if ($action == 'delete') { - $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id.'&mode='. $mode , $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); + $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id.'&mode='. $mode, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); print $formconfirm; } if ($action == 'create') { From c4546b6da6b7ca71b5f640184b22b3d0394b8139 Mon Sep 17 00:00:00 2001 From: fmarcet Date: Mon, 19 Jun 2017 16:23:44 +0200 Subject: [PATCH 016/515] FIX: User id correction on holiday request --- htdocs/holiday/card.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php index d9e651953c5..5789cf27180 100644 --- a/htdocs/holiday/card.php +++ b/htdocs/holiday/card.php @@ -39,7 +39,6 @@ require_once DOL_DOCUMENT_ROOT.'/holiday/common.inc.php'; $myparam = GETPOST("myparam"); $action=GETPOST('action', 'alpha'); $id=GETPOST('id', 'int'); -$userID = GETPOST('userID')?GETPOST('userID'):$user->id; // Protection if external user if ($user->societe_id > 0) accessforbidden(); @@ -57,8 +56,8 @@ if ($action == 'create') $cp = new Holiday($db); // If no right to create a request - $userid = GETPOST('userid'); - if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all))) + $fuserid = GETPOST('fuserid'); + if (($fuserid == $user->id && empty($user->rights->holiday->write)) || ($fuserid != $user->id && empty($user->rights->holiday->write_all))) { $error++; setEventMessages($langs->trans('CantCreateCP'), null, 'errors'); @@ -112,7 +111,7 @@ if ($action == 'create') } // Check if there is already holiday for this period - $verifCP = $cp->verifDateHolidayCP($userid, $date_debut, $date_fin, $halfday); + $verifCP = $cp->verifDateHolidayCP($fuserid, $date_debut, $date_fin, $halfday); if (! $verifCP) { header('Location: '.$_SERVER["PHP_SELF"].'?action=request&error=alreadyCP'); @@ -140,7 +139,7 @@ if ($action == 'create') if (! $error) { - $cp->fk_user = $userid; + $cp->fk_user = $fuserid; $cp->description = $description; $cp->date_debut = $date_debut; $cp->date_fin = $date_fin; @@ -682,7 +681,7 @@ llxHeader(array(),$langs->trans('CPTitreMenu')); if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create') { // Si l'utilisateur n'a pas le droit de faire une demande - if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all))) + if (($fuserid == $user->id && empty($user->rights->holiday->write)) || ($fuserid != $user->id && empty($user->rights->holiday->write_all))) { $errors[]=$langs->trans('CantCreateCP'); } @@ -762,7 +761,6 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create // Formulaire de demande print '
'."\n"; print ''."\n"; - print ''."\n"; dol_fiche_head(); @@ -793,10 +791,10 @@ if (empty($id) || $action == 'add' || $action == 'request' || $action == 'create print ''; if (empty($user->rights->holiday->write_all)) { - print $form->select_dolusers($userid, 'useridbis', 0, '', 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); - print ''; + print $form->select_dolusers($fuserid, 'useridbis', 0, '', 1, '', '', 0, 0, 0, '', 0, '', 'maxwidth300'); + print ''; } - else print $form->select_dolusers(GETPOST('userid')?GETPOST('userid'):$user->id,'userid',0,'',0); + else print $form->select_dolusers(GETPOST('fuserid')?GETPOST('fuserid'):$user->id,'fuserid',0,'',0); print ''; print ''; From 758d8cef23d2005b6d0c624204431a91043ba2c1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 16:55:15 +0200 Subject: [PATCH 017/515] Test --- .travis.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 657972a31de..54fe804efb3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,15 +8,15 @@ language: php php: - '5.3' -- '5.4' -- '5.5' -- '5.6' -- '7.0' -- '7.1' -- nightly +#- '5.4' +#- '5.5' +#- '5.6' +#- '7.0' +#- '7.1' +#- nightly addons: - mariadb: '10.0' + #mariadb: '10.0' postgresql: '9.3' apt: sources: @@ -261,7 +261,7 @@ script: echo "Checking PHP syntax errors" # Ensure we catch errors set -e - parallel-lint --exclude htdocs/includes --blame . + #parallel-lint --exclude htdocs/includes --blame . set +e echo @@ -272,7 +272,7 @@ script: # Ensure we catch errors set -e # Exclusions are defined in the ruleset.xml file - phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 . + #phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 . set +e echo From 5bb717e31925429f4769f53c7a4d7f26545dfce7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 17:00:56 +0200 Subject: [PATCH 018/515] Test --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 54fe804efb3..e4c6548eaf4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -295,6 +295,7 @@ script: php step5.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-3.log php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log php upgrade2.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-2.log + cat $TRAVIS_BUILD_DIR/upgrade370380-2.log php step5.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-3.log php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log php upgrade2.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-2.log From ec890ff81629e9525ce6868dd8cbfe63d3e4f885 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 17:31:58 +0200 Subject: [PATCH 019/515] Test --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index e4c6548eaf4..62c3dc12777 100644 --- a/.travis.yml +++ b/.travis.yml @@ -293,9 +293,14 @@ script: php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log php upgrade2.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-2.log php step5.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-3.log + rm /tmp/dolibarr_install.log php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log + cat $TRAVIS_BUILD_DIR/upgrade370380.log + cat /tmp/dolibarr_install.log + rm /tmp/dolibarr_install.log php upgrade2.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-2.log cat $TRAVIS_BUILD_DIR/upgrade370380-2.log + cat /tmp/dolibarr_install.log php step5.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-3.log php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log php upgrade2.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-2.log From 0071632a06e11c046fb8ad17fb9721760ee55918 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 17:38:52 +0200 Subject: [PATCH 020/515] Test --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 62c3dc12777..f4dfb09f5a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ php: #- nightly addons: - #mariadb: '10.0' + mariadb: '10.0' postgresql: '9.3' apt: sources: @@ -44,7 +44,7 @@ env: matrix: # MariaDB overrides MySQL installation so it's not possible to test both yet #- DB=mysql - - DB=mariadb + #- DB=mariadb - DB=postgresql # TODO #- DB=sqlite From ba87549124c4579b4fd6736655d4abd5720ab0aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garc=C3=ADa?= Date: Mon, 19 Jun 2017 18:07:43 +0200 Subject: [PATCH 021/515] FIX #5640 Prices of a predefined product/service were incorrect under certain circumstances --- htdocs/core/tpl/objectline_create.tpl.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/tpl/objectline_create.tpl.php b/htdocs/core/tpl/objectline_create.tpl.php index d9b5b37d8f3..5e9786f2ba4 100644 --- a/htdocs/core/tpl/objectline_create.tpl.php +++ b/htdocs/core/tpl/objectline_create.tpl.php @@ -725,7 +725,7 @@ function setforpredef() { jQuery("#select_type").val(-1); jQuery("#prod_entry_mode_free").prop('checked',false); jQuery("#prod_entry_mode_predef").prop('checked',true); - jQuery("#price_ht").hide(); + jQuery("#price_ht").val('').hide(); jQuery("#multicurrency_price_ht").hide(); jQuery("#price_ttc").hide(); // May no exists jQuery("#tva_tx").hide(); From 3c73b426d7f4031683380d2a1b6810af17ee33fd Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 17:41:54 +0200 Subject: [PATCH 022/515] Fix migration. Must make reload only on last version step. --- .../install/mysql/migration/3.7.0-3.8.0.sql | 12 +- .../install/mysql/migration/3.8.0-3.9.0.sql | 4 +- .../install/mysql/migration/3.9.0-4.0.0.sql | 6 +- htdocs/install/upgrade2.php | 116 ++++++------------ 4 files changed, 48 insertions(+), 90 deletions(-) diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index 9669fe89e54..5fcf6725e9d 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -156,12 +156,12 @@ ALTER TABLE llx_facturedet ADD COLUMN situation_percent real; ALTER TABLE llx_facturedet ADD COLUMN fk_prev_id integer; -- Convert SMTP config to main entity, so new entities don't get the old values -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_SENDMODE"; -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_SMTP_PORT"; -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_SMTP_SERVER"; -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_SMTPS_ID"; -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_SMTPS_PW"; -UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = "MAIN_MAIL_EMAIL_TLS"; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_SENDMODE'; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_SMTP_PORT'; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_SMTP_SERVER'; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_SMTPS_ID'; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_SMTPS_PW'; +UPDATE llx_const SET entity = __ENCRYPT('1')__ WHERE __DECRYPT('entity')__ = 0 AND __DECRYPT('name')__ = 'MAIN_MAIL_EMAIL_TLS'; -- This option with this value is not compatible with 3.8. Value must be set to 'mutiselect', 'select2'... DELETE from llx_const where name = 'MAIN_USE_JQUERY_MULTISELECT' and value = '1'; diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql index d747d5098f5..03ff8c76d93 100644 --- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql +++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql @@ -292,7 +292,7 @@ create table llx_budget_lines ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_budget integer NOT NULL, - fk_project_ids varchar(255) NOT NULL, -- List of project ids related to this budget. If budget is dedicated to projects not yet started, we recommand to create a project "Projects to come". + fk_project_ids varchar(255) NOT NULL, -- List of project ids related to this budget. If budget is dedicated to projects not yet started, we recommand to create a project 'Projects to come'. amount double(24,8) NOT NULL, datec datetime, tms timestamp, @@ -600,7 +600,7 @@ ALTER TABLE llx_holiday ADD INDEX idx_holiday_entity (entity); -- Fix Argentina provences INSERT INTO llx_c_departements ( code_departement, fk_region, cheflieu, tncc, ncc, nom, active) VALUES ('2326', 2305, '', 0, 'MISIONES', 'Misiones', 1); -UPDATE llx_c_departements SET ncc = "FORMOSA", nom = "Formosa" WHERE nom = "Formosa Misiones"; +UPDATE llx_c_departements SET ncc = 'FORMOSA', nom = 'Formosa' WHERE nom = 'Formosa Misiones'; -- MALTA VATS (id country=148) INSERT INTO llx_c_tva(rowid,fk_pays,taux,recuperableonly,note,active) VALUES (1481, 148, '18','0','VAT standard rate',1); diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql index f66d03a917a..bb603d83aec 100644 --- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql +++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql @@ -393,9 +393,9 @@ CREATE TABLE llx_c_accounting_category ( ALTER TABLE llx_c_accounting_category ADD UNIQUE INDEX uk_c_accounting_category(code); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE',"Ventes de marchandises", '707xxx', 0, 0, '', '10', 1, 1); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR',"Coût d'achats marchandises vendues", '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 3,'MARGE',"Marge commerciale", '', 0, 1, '1 + 2', '30', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE','Ventes de marchandises', '707xxx', 0, 0, '', '10', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR','Coût d'achats marchandises vendues', '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 3,'MARGE','Marge commerciale', '', 0, 1, '1 + 2', '30', 1, 1); UPDATE llx_accounting_account SET account_parent = '0' WHERE account_parent = ''; -- VMYSQL4.1 ALTER TABLE llx_accounting_account MODIFY COLUMN account_parent varchar(32) DEFAULT '0'; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 6beeb7ca7b2..79b6df8d14f 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -184,6 +184,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 // dans la 4eme colonne, le texte 'OK' si fait ou 'AlreadyDone' si rien n'est fait ou 'Error' $versiontoarray=explode('.',$versionto); + $versionranarray=explode('.',DOL_VERSION); $afterversionarray=explode('.','2.0.0'); $beforeversionarray=explode('.','2.7.9'); @@ -245,12 +246,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_directories($db,$langs,$conf,'/compta','/banque'); migrate_directories($db,$langs,$conf,'/societe','/mycompany'); - - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); } // Script for VX (X<2.8) -> V2.8 @@ -278,12 +273,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_project_user_resp($db,$langs,$conf); migrate_project_task_actors($db,$langs,$conf); - - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); } // Script for VX (X<2.9) -> V2.9 @@ -298,12 +287,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_shipping_delivery($db,$langs,$conf); migrate_shipping_delivery2($db,$langs,$conf); - - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); } // Script for VX (X<3.0) -> V3.0 @@ -311,11 +294,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 $beforeversionarray=explode('.','3.0.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) { - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); + // No particular code } // Script for VX (X<3.1) -> V3.1 @@ -326,12 +305,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_directories($db,$langs,$conf,'/rss','/externalrss'); migrate_actioncomm_element($db,$langs,$conf); - - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); } // Script for VX (X<3.2) -> V3.2 @@ -344,12 +317,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 migrate_mode_reglement($db,$langs,$conf); migrate_clean_association($db,$langs,$conf); - - // Reload modules - migrate_reload_modules($db,$langs,$conf); - - // Reload menus - migrate_reload_menu($db,$langs,$conf,$versionto); } // Script for VX (X<3.3) -> V3.3 @@ -376,29 +343,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 $beforeversionarray=explode('.','3.8.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) { - // Reload modules (this must be always and only into last targeted version) - $listofmodule=array( - 'MAIN_MODULE_AGENDA'=>'newboxdefonly', - 'MAIN_MODULE_BARCODE'=>'newboxdefonly', - 'MAIN_MODULE_CRON'=>'newboxdefonly', - 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', - 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', - 'MAIN_MODULE_DON'=>'newboxdefonly', - 'MAIN_MODULE_ECM'=>'newboxdefonly', - 'MAIN_MODULE_FACTURE'=>'newboxdefonly', - 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', - 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', - 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', - 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', - 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', - 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', - 'MAIN_MODULE_SERVICE'=>'newboxdefonly', - 'MAIN_MODULE_USER'=>'newboxdefonly' - ); - migrate_reload_modules($db,$langs,$conf,$listofmodule); - - // Reload menus (this must be always and only into last targeted version) - migrate_reload_menu($db,$langs,$conf,$versionto); + // No particular code } // Scripts for last version @@ -419,19 +364,6 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 // Migrate to add entity value into llx_societe_remise_except migrate_remise_except_entity($db,$langs,$conf); - - // Reload modules (this must be always and only into last targeted version) - $listofmodule=array( - 'MAIN_MODULE_ACCOUNTING'=>'newboxdefonly', - 'MAIN_MODULE_BARCODE'=>'newboxdefonly', - 'MAIN_MODULE_CRON'=>'newboxdefonly', - 'MAIN_MODULE_FACTURE'=>'newboxdefonly', - 'MAIN_MODULE_PRINTING'=>'newboxdefonly', - ); - migrate_reload_modules($db,$langs,$conf,$listofmodule); - - // Reload menus (this must be always and only into last targeted version) - migrate_reload_menu($db,$langs,$conf,$versionto); } // Scripts for last version @@ -439,17 +371,43 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 $beforeversionarray=explode('.','6.0.9'); if (versioncompare($versiontoarray,$afterversionarray) >= 0 && versioncompare($versiontoarray,$beforeversionarray) <= 0) { - // Reload modules (this must be always and only into last targeted version) - $listofmodule=array( - 'MAIN_MODULE_USER'=>'newboxdefonly', - ); - migrate_reload_modules($db,$langs,$conf,$listofmodule); - - // Reload menus (this must be always and only into last targeted version) - migrate_reload_menu($db,$langs,$conf,$versionto); + // No particular code } } + // Code executed only if migrate is LAST ONE. Must always be done. + if (versioncompare($versiontoarray,$versionranarray) >= 0 || versioncompare($versiontoarray,$versionranarray) <= -3) + { + // Reload modules (this must be always done and only into last targeted version, because code to reload module may need table structure of last version) + $listofmodule=array( + 'MAIN_MODULE_AGENDA'=>'newboxdefonly', + 'MAIN_MODULE_BARCODE'=>'newboxdefonly', + 'MAIN_MODULE_CRON'=>'newboxdefonly', + 'MAIN_MODULE_COMMANDE'=>'newboxdefonly', + 'MAIN_MODULE_DEPLACEMENT'=>'newboxdefonly', + 'MAIN_MODULE_DON'=>'newboxdefonly', + 'MAIN_MODULE_ECM'=>'newboxdefonly', + 'MAIN_MODULE_FACTURE'=>'newboxdefonly', + 'MAIN_MODULE_FOURNISSEUR'=>'newboxdefonly', + 'MAIN_MODULE_HOLIDAY'=>'newboxdefonly', + 'MAIN_MODULE_OPENSURVEY'=>'newboxdefonly', + 'MAIN_MODULE_PAYBOX'=>'newboxdefonly', + 'MAIN_MODULE_PRODUIT'=>'newboxdefonly', + 'MAIN_MODULE_SOCIETE'=>'newboxdefonly', + 'MAIN_MODULE_SERVICE'=>'newboxdefonly', + 'MAIN_MODULE_USER'=>'newboxdefonly', + 'MAIN_MODULE_ACCOUNTING'=>'newboxdefonly', + 'MAIN_MODULE_BARCODE'=>'newboxdefonly', + 'MAIN_MODULE_CRON'=>'newboxdefonly', + 'MAIN_MODULE_PRINTING'=>'newboxdefonly', + + 'MAIN_MODULE_USER'=>'newboxdefonly', //This one must be always done and only into last targeted version) + ); + migrate_reload_modules($db,$langs,$conf,$listofmodule); + + // Reload menus (this must be always and only into last targeted version) + migrate_reload_menu($db,$langs,$conf,$versionto); + } // Can force activation of some module during migration with paramater 'enablemodules=MAIN_MODULE_XXX,MAIN_MODULE_YYY,...' if (! $error && $enablemodules) From 41d82b0ffa6db4de85a095232a22b43e4b592f56 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 18:52:13 +0200 Subject: [PATCH 023/515] Enable pgsql test --- .travis.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index f4dfb09f5a3..d5cf09bc4e7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,12 +8,12 @@ language: php php: - '5.3' -#- '5.4' -#- '5.5' -#- '5.6' -#- '7.0' -#- '7.1' -#- nightly +- '5.4' +- '5.5' +- '5.6' +- '7.0' +- '7.1' +- nightly addons: mariadb: '10.0' @@ -44,7 +44,7 @@ env: matrix: # MariaDB overrides MySQL installation so it's not possible to test both yet #- DB=mysql - #- DB=mariadb + - DB=mariadb - DB=postgresql # TODO #- DB=sqlite @@ -58,8 +58,7 @@ matrix: allow_failures: - php: 7.1 - php: nightly - # FIXME - #- env: DB=postgresql + - env: DB=postgresql # TODO #- env: DB=sqlite From eaaee59f92abba096890ee867d968c0dfe20e3fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcos=20Garc=C3=ADa?= Date: Mon, 19 Jun 2017 19:23:00 +0200 Subject: [PATCH 024/515] FIX #6541 since 4.0.4 to 5.0.0 autofill zip/town not working --- htdocs/core/class/conf.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/conf.class.php b/htdocs/core/class/conf.class.php index dc06bfe9ffa..203d41571a9 100644 --- a/htdocs/core/class/conf.class.php +++ b/htdocs/core/class/conf.class.php @@ -489,8 +489,8 @@ class Conf // By default, we propagate contacts if (! isset($this->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN)) $this->global->MAIN_PROPAGATE_CONTACTS_FROM_ORIGIN='*'; // Can be also '*' or '^(BILLING|SHIPPING|CUSTOMER|.*)$' (regex not yet implemented) - // By default, we use the zip town autofill - if (! isset($this->global->MAIN_USE_ZIPTOWN_DICTIONNARY)) $this->global->MAIN_USE_ZIPTOWN_DICTIONNARY=1; + // By default, we do not use the zip town autofill + if (! isset($this->global->MAIN_USE_ZIPTOWN_DICTIONNARY)) $this->global->MAIN_USE_ZIPTOWN_DICTIONNARY=0; // Define list of limited modules (value must be key found for "name" property of module, so for example 'supplierproposal' for Module "Supplier Proposal" if (! isset($this->global->MAIN_MODULES_FOR_EXTERNAL)) $this->global->MAIN_MODULES_FOR_EXTERNAL='user,societe,propal,commande,facture,categorie,supplierproposal,fournisseur,contact,projet,contrat,ficheinter,expedition,agenda,resource,adherent'; // '' means 'all'. Note that contact is added here as it should be a module later. From f694939fc74e81d823be4c56b51d66f64d793abb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 19:39:37 +0200 Subject: [PATCH 025/515] Fix migration with pgsql --- htdocs/install/mysql/migration/3.5.0-3.6.0.sql | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql index bd04766eebf..3d83d2a7af9 100644 --- a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql +++ b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql @@ -63,7 +63,7 @@ ALTER TABLE llx_bookmark ADD COLUMN entity integer DEFAULT 1 NOT NULL; ALTER TABLE llx_bookmark MODIFY COLUMN url varchar(255) NOT NULL; -ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01-01 00:00:00'; +-- VMYSQL4.1 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01-01 00:00:00'; -- Clean corrupted values for tms -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; @@ -74,7 +74,7 @@ ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01- -- VMYSQL4.3 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN date_fin DATETIME NULL DEFAULT NULL; -- VPGSQL8.2 ALTER TABLE llx_opensurvey_sondage ALTER COLUMN date_fin DROP NOT NULL; -ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP; +-- VMYSQL4.1 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP; ALTER TABLE llx_opensurvey_sondage ADD COLUMN entity integer DEFAULT 1 NOT NULL; @@ -204,9 +204,14 @@ CREATE TABLE llx_payment_salary ( fk_user_modif integer )ENGINE=innodb; + +DELETE FROM llx_product_batch where fk_product_stock NOT IN (SELECT rowid from llx_product_stock); + ALTER TABLE llx_product_batch ADD INDEX idx_fk_product_stock (fk_product_stock); ALTER TABLE llx_product_batch ADD CONSTRAINT fk_product_batch_fk_product_stock FOREIGN KEY (fk_product_stock) REFERENCES llx_product_stock (rowid); +DELETE FROM llx_expeditiondet_batch where fk_expeditiondet NOT IN (SELECT rowid from llx_expeditiondet); + ALTER TABLE llx_expeditiondet_batch ADD INDEX idx_fk_expeditiondet (fk_expeditiondet); ALTER TABLE llx_expeditiondet_batch ADD CONSTRAINT fk_expeditiondet_batch_fk_expeditiondet FOREIGN KEY (fk_expeditiondet) REFERENCES llx_expeditiondet(rowid); From bdeddd36174a88614980273034827475cfee4e25 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 19:48:19 +0200 Subject: [PATCH 026/515] Fix pgsql migration --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index e9c16d6a5fd..6469a47b4c7 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -25,7 +25,7 @@ -- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); -ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01-01 00:00:00'; +-- VMYSQL4.1 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01-01 00:00:00'; -- Clean corrupted values for tms -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; @@ -36,7 +36,7 @@ ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01- -- VMYSQL4.3 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN date_fin DATETIME NULL DEFAULT NULL; -- VPGSQL8.2 ALTER TABLE llx_opensurvey_sondage ALTER COLUMN date_fin DROP NOT NULL; -ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP; +-- VMYSQL4.1 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT CURRENT_TIMESTAMP; ALTER TABLE llx_opensurvey_sondage ADD COLUMN fk_user_creat integer NOT NULL DEFAULT 0; ALTER TABLE llx_opensurvey_sondage ADD COLUMN status integer DEFAULT 1 after date_fin; From 22ef8557b820c1d8f69c4e89c0310de41b2083f6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 19:49:27 +0200 Subject: [PATCH 027/515] Fix travis --- .travis.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index d5cf09bc4e7..fc892b7178b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -185,6 +185,7 @@ before_script: fi if [ "$DB" = 'postgresql' ]; then #pgsql travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql + #pgloader mysql://root:pass@127.0.0.1/base postgresql://dolibarrowner@127.0.0.1/dolibarr pgloader mysql://root@127.0.0.1/travis postgresql:///travis fi # TODO: SQLite @@ -292,14 +293,8 @@ script: php upgrade.php 3.6.0 3.7.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade360370.log php upgrade2.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-2.log php step5.php 3.6.0 3.7.0 > $TRAVIS_BUILD_DIR/upgrade360370-3.log - rm /tmp/dolibarr_install.log php upgrade.php 3.7.0 3.8.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade370380.log - cat $TRAVIS_BUILD_DIR/upgrade370380.log - cat /tmp/dolibarr_install.log - rm /tmp/dolibarr_install.log php upgrade2.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-2.log - cat $TRAVIS_BUILD_DIR/upgrade370380-2.log - cat /tmp/dolibarr_install.log php step5.php 3.7.0 3.8.0 > $TRAVIS_BUILD_DIR/upgrade370380-3.log php upgrade.php 3.8.0 3.9.0 ignoredbversion > $TRAVIS_BUILD_DIR/upgrade380390.log php upgrade2.php 3.8.0 3.9.0 > $TRAVIS_BUILD_DIR/upgrade380390-2.log From 099ef585b2e8291ec964ea16e93d451b3c8307ff Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 20:07:33 +0200 Subject: [PATCH 028/515] Fix pgsql --- .../install/mysql/migration/5.0.0-6.0.0.sql | 11 +++++++---- .../install/mysql/tables/llx_blockedlog.sql | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 6469a47b4c7..360a91d0fe3 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -98,11 +98,14 @@ ALTER TABLE llx_actioncomm ADD COLUMN extraparams varchar(255); ALTER TABLE llx_bank_account ADD COLUMN extraparams varchar(255); -ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer DEFAULT NULL; -ALTER TABLE llx_adherent MODIFY COLUMN state_id integer DEFAULT NULL; -ALTER TABLE llx_adherent MODIFY COLUMN country integer DEFAULT NULL; +-- VMYSQL4.1 ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer DEFAULT NULL; +-- VPGSQL8.2 ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer USING state_id::integer; +-- VMYSQL4.1 ALTER TABLE llx_adherent MODIFY COLUMN state_id integer DEFAULT NULL; +-- VPGSQL8.2 ALTER TABLE llx_adherent MODIFY COLUMN state_id integer USING state_id::integer; +-- VMYSQL4.1 ALTER TABLE llx_adherent MODIFY COLUMN country integer DEFAULT NULL; +-- VPGSQL8.2 ALTER TABLE llx_adherent MODIFY COLUMN country integer USING country::integer; insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30); @@ -463,7 +466,7 @@ ALTER TABLE llx_usergroup_rights ADD CONSTRAINT fk_usergroup_rights_fk_usergroup CREATE TABLE llx_blockedlog ( rowid integer AUTO_INCREMENT PRIMARY KEY, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + tms timestamp, action varchar(50), amounts real NOT NULL, signature varchar(100) NOT NULL, diff --git a/htdocs/install/mysql/tables/llx_blockedlog.sql b/htdocs/install/mysql/tables/llx_blockedlog.sql index ae696a0d6d1..2e2710c300c 100644 --- a/htdocs/install/mysql/tables/llx_blockedlog.sql +++ b/htdocs/install/mysql/tables/llx_blockedlog.sql @@ -1,8 +1,25 @@ +-- =================================================================== +-- Copyright (C) 2007 Laurent Destailleur +-- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . +-- +-- =================================================================== CREATE TABLE llx_blockedlog ( rowid integer AUTO_INCREMENT PRIMARY KEY, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + tms timestamp, action varchar(50), amounts real NOT NULL, signature varchar(100) NOT NULL, From 64d8b97afe3406dea19ff5797bb387860f7e530e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 20:35:14 +0200 Subject: [PATCH 029/515] Fix sql syntax errors --- htdocs/install/mysql/data/llx_accounting_category.sql | 4 ++-- htdocs/install/mysql/migration/3.9.0-4.0.0.sql | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/install/mysql/data/llx_accounting_category.sql b/htdocs/install/mysql/data/llx_accounting_category.sql index 8e69ca6331e..0659bd38a0a 100644 --- a/htdocs/install/mysql/data/llx_accounting_category.sql +++ b/htdocs/install/mysql/data/llx_accounting_category.sql @@ -24,6 +24,6 @@ -- Categories compte de résultat Français -- -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE','Ventes de marchandises', '707xxx', 0, 0, '', '10', 1, 1); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR','Coût d achats marchandises vendues', '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE', 'Ventes de marchandises', '707xxx', 0, 0, '', '10', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR', 'Coût achats marchandises vendues', '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 3,'MARGE','Marge commerciale', '', 0, 1, '1 + 2', '30', 1, 1); \ No newline at end of file diff --git a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql index bb603d83aec..7ed89ebb173 100644 --- a/htdocs/install/mysql/migration/3.9.0-4.0.0.sql +++ b/htdocs/install/mysql/migration/3.9.0-4.0.0.sql @@ -393,8 +393,8 @@ CREATE TABLE llx_c_accounting_category ( ALTER TABLE llx_c_accounting_category ADD UNIQUE INDEX uk_c_accounting_category(code); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE','Ventes de marchandises', '707xxx', 0, 0, '', '10', 1, 1); -INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR','Coût d'achats marchandises vendues', '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 1,'VTE', 'Ventes de marchandises', '707xxx', 0, 0, '', '10', 1, 1); +INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 2,'MAR', 'Coût achats marchandises vendues', '603xxx | 607xxx | 609xxx', 0, 0, '', '20', 1, 1); INSERT INTO llx_c_accounting_category (rowid, code, label, range_account, sens, category_type, formula, position, fk_country, active) VALUES ( 3,'MARGE','Marge commerciale', '', 0, 1, '1 + 2', '30', 1, 1); UPDATE llx_accounting_account SET account_parent = '0' WHERE account_parent = ''; From 8064659398c7c860ea121d1e42693d51aa89c9ad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 20:49:57 +0200 Subject: [PATCH 030/515] Fix phpunit --- test/phpunit/AdminLibTest.php | 14 ++++++++++---- test/phpunit/LangTest.php | 2 +- test/phpunit/RestAPIUserTest.php | 18 ++++++++++-------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/test/phpunit/AdminLibTest.php b/test/phpunit/AdminLibTest.php index d7f3d17a583..7c9033fe2a6 100644 --- a/test/phpunit/AdminLibTest.php +++ b/test/phpunit/AdminLibTest.php @@ -142,21 +142,27 @@ class AdminLibTest extends PHPUnit_Framework_TestCase return $result; } - + /** * testEnableModule - * + * * @return void */ public function testEnableModule() { global $conf, $db, $langs, $user; - + require_once dirname(__FILE__).'/../../htdocs/core/modules/modExpenseReport.class.php'; print "Enable module modExpenseReport"; $moduledescriptor=new modExpenseReport($db); $moduledescriptor->init(); $conf->setValues($db); + + require_once dirname(__FILE__).'/../../htdocs/core/modules/modApi.class.php'; + print "Enable module modAPI"; + $moduledescriptor=new modApi($db); + $moduledescriptor->init(); + $conf->setValues($db); } - + } diff --git a/test/phpunit/LangTest.php b/test/phpunit/LangTest.php index 4487568c1d6..76c7a17d779 100644 --- a/test/phpunit/LangTest.php +++ b/test/phpunit/LangTest.php @@ -129,7 +129,7 @@ class LangTest extends PHPUnit_Framework_TestCase } /** - * testBank + * testLang * * @return string */ diff --git a/test/phpunit/RestAPIUserTest.php b/test/phpunit/RestAPIUserTest.php index a79739fef43..d38eb53c5b5 100644 --- a/test/phpunit/RestAPIUserTest.php +++ b/test/phpunit/RestAPIUserTest.php @@ -71,6 +71,8 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase $this->savlangs=$langs; $this->savdb=$db; + if (empty($conf->api->enabled)) { print __METHOD__." module api must be enabled.\n"; die(); } + print __METHOD__." db->type=".$db->type." user->id=".$user->id; //print " - db ".$db->db; print "\n"; @@ -106,7 +108,7 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase $user=$this->savuser; $langs=$this->savlangs; $db=$this->savdb; - + $this->api_url=DOL_MAIN_URL_ROOT.'/api/index.php'; $login='admin'; @@ -149,7 +151,7 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase $url = $this->api_url.'/users/123456789?api_key='.$this->api_key; //$addheaders=array('Content-Type: application/json'); - + print __METHOD__." Request GET url=".$url."\n"; $result=getURLContent($url, 'GET', '', 1, array()); //print __METHOD__." Result for unexisting user: ".var_export($result, true)."\n"; @@ -158,7 +160,7 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase $object=json_decode($result['content'], true); $this->assertNotNull($object, "Parsing of json result must no be null"); $this->assertEquals(404, $object['error']['code']); - + $url = $this->api_url.'/users/1?api_key='.$this->api_key; print __METHOD__." Request GET url=".$url."\n"; @@ -172,18 +174,18 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase } public function testRestCreateUser() { - + // attemp to create without mandatory fields : $url = $this->api_url.'/users?api_key='.$this->api_key; $addheaders=array('Content-Type: application/json'); - + $bodyobj = array( "lastname"=>"testRestUser", "password"=>"testRestPassword", "email"=>"test@restuser.com" ); $body = json_encode($bodyobj); - + print __METHOD__." Request POST url=".$url."\n"; $result=getURLContent($url, 'POST', $body, 1, $addheaders); //print __METHOD__." Result for creating incomplete user".var_export($result, true)."\n"; @@ -210,14 +212,14 @@ class RestAPIUserTest extends PHPUnit_Framework_TestCase $resid=json_decode($result['content'], true); $this->assertNotNull($resid, "Parsing of json result must no be null"); $this->assertGreaterThan(0, $resid, $object['error']['code'].' '.$object['error']['message']); - + // attempt to create duplicated user print __METHOD__." Request POST url=".$url."\n"; $result=getURLContent($url, 'POST', $body, 1, $addheaders); //print __METHOD__." Result for creating duplicate user".var_export($result, true)."\n"; print __METHOD__." curl_error_no: ".$result['curl_error_no']."\n"; $this->assertEquals($result['curl_error_no'],''); - $object=json_decode($result['content'], true); + $object=json_decode($result['content'], true); $this->assertNotNull($object, "Parsing of json result must no be null"); $this->assertEquals(500, $object['error']['code'], $object['error']['code'].' '.$object['error']['message']); } From 24f712874214cd778b161377cf218dbbff22b041 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:04:46 +0200 Subject: [PATCH 031/515] Fix pb with postgresql --- .../core/modules/modReceiptPrinter.class.php | 4 +-- .../install/mysql/migration/3.7.0-3.8.0.sql | 25 ++++++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/htdocs/core/modules/modReceiptPrinter.class.php b/htdocs/core/modules/modReceiptPrinter.class.php index f1520cf698f..2fc7d10fe5a 100644 --- a/htdocs/core/modules/modReceiptPrinter.class.php +++ b/htdocs/core/modules/modReceiptPrinter.class.php @@ -137,8 +137,8 @@ class modReceiptPrinter extends DolibarrModules // Clean before activation $this->remove($options); $sql = array( - "CREATE TABLE IF NOT EXISTS llx_printer_receipt (rowid int(11) NOT NULL AUTO_INCREMENT, name varchar(128), fk_type int(11), fk_profile int(11), parameter varchar(128), entity int(11), PRIMARY KEY (rowid)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;", - "CREATE TABLE IF NOT EXISTS llx_printer_receipt_template (rowid int(11) NOT NULL AUTO_INCREMENT, name varchar(128), template text, entity int(11), PRIMARY KEY (rowid)) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;", + "CREATE TABLE IF NOT EXISTS llx_printer_receipt (rowid integer AUTO_INCREMENT PRIMARY KEY, name varchar(128), fk_type integer, fk_profile integer, parameter varchar(128), entity integer) ENGINE=innodb;", + "CREATE TABLE IF NOT EXISTS llx_printer_receipt_template (rowid integer AUTO_INCREMENT PRIMARY KEY, name varchar(128), template text, entity integer) ENGINE=innodb;", ); return $this->_init($sql,$options); } diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index 5fcf6725e9d..041a253a545 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -1,7 +1,7 @@ -- -- Be carefull to requests order. -- This file must be loaded by calling /install/index.php page --- when current version is 3.8.0 or higher. +-- when current version is 5.0.0 or higher. -- -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; @@ -9,14 +9,20 @@ -- To drop a column: ALTER TABLE llx_table DROP COLUMN oldname; -- To change type of field: ALTER TABLE llx_table MODIFY COLUMN name varchar(60); -- To drop a foreign key: ALTER TABLE llx_table DROP FOREIGN KEY fk_name; --- To restrict request to Mysql version x.y or more: -- VMYSQLx.y --- To restrict request to Pgsql version x.y or more: -- VPGSQLx.y --- To make pk to be auto increment (mysql): VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; --- To make pk to be auto increment (postgres): VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE --- To set a field as NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; --- To set a field as DEFAULT NULL: VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; --- To delete orphelins: VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); --- To delete orphelins: VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user); +-- To drop an index: -- VMYSQL4.0 DROP INDEX nomindex on llx_table +-- To drop an index: -- VPGSQL8.0 DROP INDEX nomindex +-- To restrict request to Mysql version x.y minimum use -- VMYSQLx.y +-- To restrict request to Pgsql version x.y minimum use -- VPGSQLx.y +-- To make pk to be auto increment (mysql): -- VMYSQL4.3 ALTER TABLE llx_c_shipment_mode CHANGE COLUMN rowid rowid INTEGER NOT NULL AUTO_INCREMENT; +-- To make pk to be auto increment (postgres): -- VPGSQL8.2 NOT POSSIBLE. MUST DELETE/CREATE TABLE +-- To set a field as NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NULL; +-- To set a field as NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name DROP NOT NULL; +-- To set a field as NOT NULL: -- VMYSQL4.3 ALTER TABLE llx_table MODIFY COLUMN name varchar(60) NOT NULL; +-- To set a field as NOT NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET NOT NULL; +-- To set a field as default NULL: -- VPGSQL8.2 ALTER TABLE llx_table ALTER COLUMN name SET DEFAULT NULL; +-- Note: fields with type BLOB/TEXT can't have default value. +-- -- VPGSQL8.2 DELETE FROM llx_usergroup_user WHERE fk_user NOT IN (SELECT rowid from llx_user); +-- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); UPDATE llx_facture_fourn set ref=rowid where ref IS NULL; @@ -35,6 +41,7 @@ ALTER TABLE llx_societe_rib ADD COLUMN frstrecur varchar(16) DEFAULT 'FRST' AFTE ALTER TABLE llx_cronjob ADD COLUMN entity integer DEFAULT 0; ALTER TABLE llx_cronjob MODIFY COLUMN params text NULL; +-- VPGSQL8.2 ALTER TABLE llx_cronjob ALTER COLUMN params DROP NOT NULL; -- Loan create table llx_loan From 2695cc416ef3c0e05afb788ab3d318f6727fc850 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:06:16 +0200 Subject: [PATCH 032/515] Fix comment --- htdocs/install/mysql/migration/3.7.0-3.8.0.sql | 2 +- htdocs/install/mysql/migration/4.0.0-5.0.0.sql | 2 +- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql index 041a253a545..c997d511fdb 100755 --- a/htdocs/install/mysql/migration/3.7.0-3.8.0.sql +++ b/htdocs/install/mysql/migration/3.7.0-3.8.0.sql @@ -1,7 +1,7 @@ -- -- Be carefull to requests order. -- This file must be loaded by calling /install/index.php page --- when current version is 5.0.0 or higher. +-- when current version is 3.8.0 or higher. -- -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; diff --git a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql index e3c8223d587..95bcc21740b 100644 --- a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql +++ b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql @@ -1,7 +1,7 @@ -- -- Be carefull to requests order. -- This file must be loaded by calling /install/index.php page --- when current version is 4.0.0 or higher. +-- when current version is 5.0.0 or higher. -- -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 360a91d0fe3..3acf312bae1 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -1,7 +1,7 @@ -- -- Be carefull to requests order. -- This file must be loaded by calling /install/index.php page --- when current version is 5.0.0 or higher. +-- when current version is 6.0.0 or higher. -- -- To rename a table: ALTER TABLE llx_table RENAME TO llx_table_new; -- To add a column: ALTER TABLE llx_table ADD COLUMN newcol varchar(60) NOT NULL DEFAULT '0' AFTER existingcol; From de423e531c490832aac392116943263318dbaabb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:24:55 +0200 Subject: [PATCH 033/515] Sync nb_NO --- htdocs/langs/nb_NO/accountancy.lang | 126 +++++++++------- htdocs/langs/nb_NO/admin.lang | 203 ++++++++++++++++---------- htdocs/langs/nb_NO/agenda.lang | 7 +- htdocs/langs/nb_NO/banks.lang | 9 +- htdocs/langs/nb_NO/bills.lang | 72 ++++----- htdocs/langs/nb_NO/bookmarks.lang | 6 +- htdocs/langs/nb_NO/boxes.lang | 16 +- htdocs/langs/nb_NO/commercial.lang | 1 + htdocs/langs/nb_NO/compta.lang | 30 ++-- htdocs/langs/nb_NO/contracts.lang | 2 + htdocs/langs/nb_NO/cron.lang | 20 +-- htdocs/langs/nb_NO/errors.lang | 27 +++- htdocs/langs/nb_NO/exports.lang | 8 +- htdocs/langs/nb_NO/loan.lang | 4 +- htdocs/langs/nb_NO/mails.lang | 34 +++-- htdocs/langs/nb_NO/main.lang | 62 +++++--- htdocs/langs/nb_NO/margins.lang | 2 +- htdocs/langs/nb_NO/modulebuilder.lang | 24 +++ htdocs/langs/nb_NO/multicurrency.lang | 18 +++ htdocs/langs/nb_NO/other.lang | 54 ++++--- htdocs/langs/nb_NO/paypal.lang | 10 +- htdocs/langs/nb_NO/products.lang | 101 ++++++++----- htdocs/langs/nb_NO/projects.lang | 37 +++-- htdocs/langs/nb_NO/resource.lang | 5 + htdocs/langs/nb_NO/sendings.lang | 9 +- htdocs/langs/nb_NO/stocks.lang | 74 ++++++++-- htdocs/langs/nb_NO/stripe.lang | 42 ++++++ htdocs/langs/nb_NO/trips.lang | 11 +- htdocs/langs/nb_NO/users.lang | 4 +- htdocs/langs/nb_NO/website.lang | 4 +- 30 files changed, 667 insertions(+), 355 deletions(-) create mode 100644 htdocs/langs/nb_NO/modulebuilder.lang create mode 100644 htdocs/langs/nb_NO/multicurrency.lang create mode 100644 htdocs/langs/nb_NO/stripe.lang diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index 44ae492ef12..c08c6733062 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -20,33 +20,37 @@ Journaux=Journaler JournalFinancial=Finasielle journaler BackToChartofaccounts=Returner kontotabell Chartofaccounts=Diagram over kontoer -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign +CurrentDedicatedAccountingAccount=Nåværende dedikert konto +AssignDedicatedAccountingAccount=Ny konto å tildele InvoiceLabel=Fakturaetikett -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account +OverviewOfAmountOfLinesNotBound=Oversikt over antall linjer som ikke er bundet til regnskapskonto +OverviewOfAmountOfLinesBound=Oversikt over antall linjer som allerede er bundet til regnskapskonto OtherInfo=Annen informasjon +DeleteCptCategory=Fjern regnskapskonto fra gruppe +ConfirmDeleteCptCategory=Er du sikker på at du vil fjerne denne regnskapskontoen fra gruppen? AccountancyArea=Område for regnskap AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt: AccountancyAreaDescActionOnce=Følgende tiltak blir vanligvis utført en gang, eller en gang i året ... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=De neste skrittene bør gjøres for å spare tid i fremtiden ved å foreslå deg riktig standardregnskapskonto når du foretar journalføringen (skriv inn post i journaler og hovedbok) AccountancyAreaDescActionFreq=Følgende tiltak blir vanligvis utført hver måned, uke eller dag for svært store selskaper ... + +AccountancyAreaDescJournalSetup=TRINN %s: Lag eller kontroller innholdet i din journalliste fra menyen %s AccountancyAreaDescChartModel=TRINN %s: Lag en kontomodell fra menyen %s AccountancyAreaDescChart=TRINN %s: Opprett eller kontroller innhold i din kontoplan fra meny %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=TRINN %s: Skriv transaksjoner inn i hovedboken. For å gjøre dette, kan du gå inn i hver journal, og klikk på knappen "Journalfør transaksjoner i hovedbok". +AccountancyAreaDescVat=TRINN %s: Definer regnskapskonto for hver MVA-sats. Bruk menyoppføringen %s. +AccountancyAreaDescExpenseReport=TRINN %s: Definer standard regnskapskontoer for hver type kostnadsrapport. Bruk menyoppføringen %s. +AccountancyAreaDescSal=TRINN %s: Definer standard regnskapskonto for betaling av lønn. Bruk menyoppføring %s. +AccountancyAreaDescContrib=TRINN %s: Definer standard regnskapskonto for spesialutgifter (diverse avgifter). Bruk menyoppføringen %s. +AccountancyAreaDescDonation=TRINN %s: Definer standard regnskapskonto for donasjoner. Bruk menyoppføringen %s. +AccountancyAreaDescMisc=TRINN %s: Definer standard regnskapskontoer for diverse transaksjoner. Bruk menyoppføringen %s. +AccountancyAreaDescLoan=TRINN %s: Definer standard regnskapskonto for lån. Bruk menyoppføringen %s. +AccountancyAreaDescBank=TRINN %s: Definer regnskapskontoer for hver bank- og finanskonto. Gå til kortet for hver finansiell konto for å gjøre dette. Du kan starte fra side %s. +AccountancyAreaDescProd=TRINN %s: Definer regnskapskontoer for dine varer/tjenester. Bruk menyoppføringen %s. + +AccountancyAreaDescBind=TRINN %s: Kontroller at bindingen mellom eksisterende %s linjer og regnskapskonto er ferdig, slik at applikasjonen vil kunne journalføre transaksjoner i hovedboken med ett klikk. Fullfør manglende bindinger. Bruk menyen %s. +AccountancyAreaDescWriteRecords=TRINN %s: Skriv transaksjoner inn i hovedboken. For dette, gå til menyen %s, og klikk på knappen %s. AccountancyAreaDescAnalyze=TRINN %s: Legg til eller endre eksisterende transaksjoner, generer rapporter og utfør eksport AccountancyAreaDescClosePeriod=TRINN %s: Lukk perioden slik at ingen endringer kan bli gjort. @@ -57,6 +61,10 @@ ChangeAndLoad=Endre og last inn Addanaccount=Legg til regnskapskonto AccountAccounting=Regnskapskonto AccountAccountingShort=Konto +SubledgerAccount=Konto i sub-hovedbok +subledger_account=Konto i sub-hovedbok +ShowAccountingAccount=Vis regnskapskonto +ShowAccountingJournal=Vis regnskapsjournal AccountAccountingSuggest=Foreslått regnskapskonto MenuDefaultAccounts=Standard kontoer MenuVatAccounts=MVA-kontoer @@ -68,19 +76,19 @@ ProductsBinding=Varekontoer Ventilation=Binding til kontoer CustomersVentilation=Binding av kundefakturaer SuppliersVentilation=Binding av leverandørfakturaer -ExpenseReportsVentilation=Expense report binding +ExpenseReportsVentilation=Utgiftsrapport-binding CreateMvts=Opprett ny transaksjon UpdateMvts=Endre en transaksjon -WriteBookKeeping=Journalfør transaksjoner i hovedboken +WriteBookKeeping=Før transaksjoner inn i hovedboken Bookkeeping=Hovedbok AccountBalance=Kontobalanse CAHTF=Totalt leverandørkjøp eks. MVA -TotalExpenseReport=Total expense report +TotalExpenseReport=Total utgiftsrapport InvoiceLines=Binding av fakturalinjer InvoiceLinesDone=Bundne fakturalinjer -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports +ExpenseReportLines=Utgiftsrapport-linjer som skal bindes +ExpenseReportLinesDone=Bundne utgiftsrapport-linjer IntoAccount=Bind linje med regnskapskonto @@ -90,7 +98,7 @@ Processing=Behandler EndProcessing=Prosess terminert. SelectedLines=Valgte linjer Lineofinvoice=Fakturalinje -LineOfExpenseReport=Line of expense report +LineOfExpenseReport=Utgiftsrapport-linje NoAccountSelected=Ingen regnskapskonto valgt VentilatedinAccount=Bundet til regnskapskontoen NotVentilatedinAccount=Ikke bundet til regnskapskontoen @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begynn sortering av siden "Bindinger utfø ACCOUNTING_LENGTH_DESCRIPTION=Avkort vare- og produktbeskrivelser i lister etter x karakterer (Anbefalt = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Avkort vare- og produkt kontobeskrivelser i lister etter x karakterer (Anbefalt = 50) -ACCOUNTING_LENGTH_GACCOUNT=Lengde på hovedbokskontoer -ACCOUNTING_LENGTH_AACCOUNT=Lengde på tredjepartskontoer -ACCOUNTING_MANAGE_ZERO=Håndter nullen på slutten av en regnskapskonto. Trengs i noen land. Deaktivert som standard. Du må også sette de 2 følgende parametre (ellers blir de ignorert) +ACCOUNTING_LENGTH_GACCOUNT=Lengden på de generelle regnskapskontoene (Hvis du setter verdien til 6 her, vil kontoen '706' vises som '706000' på skjermen) +ACCOUNTING_LENGTH_AACCOUNT=Lengden på tredjeparts regnskapskontoer (Hvis du angir verdien til 6 her, vil kontoen '401' vises som '401000' på skjermen) +ACCOUNTING_MANAGE_ZERO=Tillat å administrere forskjellig antall nuller på slutten av en regnskapskonto. Nødvendig for enkelte land (som Sveits). Hvis du holder den av (standard), kan du angi de 2 følgende parametrene for å be om å legge til virtuell null. BANK_DISABLE_DIRECT_INPUT=Deaktiver direkteregistrering av transaksjoner på bankkonto ACCOUNTING_SELL_JOURNAL=Salgsjournal @@ -132,23 +140,23 @@ Sens=som betyr Codejournal=Journal NumPiece=Del nummer TransactionNumShort=Transaksjonsnummer -AccountingCategory=Regnskapskategori +AccountingCategory=Regnskapskonto-grupper GroupByAccountAccounting=Grupper etter regnskapskonto NotMatch=Ikke valgt -DeleteMvt=Slett linjer i hovedboken +DeleteMvt=Slett linjer fra hovedboken DelYear=År som skal slettes DelJournal=Journal som skal slettes -ConfirmDeleteMvt=Dette vil slette alle linjer i hovedboken for året og/eller fra en spesifikk journal. Minst ett kriterie er påkrevet -ConfirmDeleteMvtPartial=Dette vil slette valgt linje(r) i hovedboken -DelBookKeeping=Slett post i hovedboken +ConfirmDeleteMvt=Dette vil slette alle linjene i hovedboken for år og/eller fra en bestemt journal. Minst ett kriterium kreves. +ConfirmDeleteMvtPartial=Dette vil slette den valgte linjen(e) i hovedboken +DelBookKeeping=Slett post fra hovedboken FinanceJournal=Finansjournal -ExpenseReportsJournal=Expense reports journal +ExpenseReportsJournal=Journal for utgiftsrapporter DescFinanceJournal=Finansjournal med alle typer betalinger etter bankkonto -DescJournalOnlyBindedVisible=Her vises poster som er bundet til vare-/tjenestekontoer og kan registreres i hovedboken. +DescJournalOnlyBindedVisible=Dette er en oversikt over posten som er bundet til varer-/tjenester-regnskapskontoen og kan registreres i regnskapsboken. VATAccountNotDefined=MVA-konto er ikke definert ThirdpartyAccountNotDefined=Konto for tredjepart er ikke definert ProductAccountNotDefined=Konto for vare er ikke definert -FeeAccountNotDefined=Account for fee not defined +FeeAccountNotDefined=Konto for honorar ikke definert BankAccountNotDefined=Konto for bank er ikke definert CustomerInvoicePayment=Betaling av kundefaktura ThirdPartyAccount=Tredjepart-konto @@ -156,13 +164,13 @@ NewAccountingMvt=Ny transaksjon NumMvts=Transaksjonsnummer ListeMvts=Liste over bevegelser ErrorDebitCredit=Debet og kredit kan ikke ha en verdi samtidig - +AddCompteFromBK=Legg til regnskapskontoer til gruppen ReportThirdParty=List tredjepartskonto DescThirdPartyReport=Liste over kunder og leverandører og deres regnskapskontoer ListAccounts=Liste over regnskapskontoer Pcgtype=Kontoklasse -Pcgsubtype=Underklasse av konto +Pcgsubtype=Subklasse av konto TotalVente=Total omsetning før skatt TotalMarge=Total salgsmargin @@ -175,10 +183,10 @@ ChangeAccount=Endre regnskapskonto for valgte vare-/tjenestelinjer til følgende Vide=- DescVentilSupplier=Liste over leverandørfaktura-linjer bundet eller ikke bundet til en vare-regnskapskonto DescVentilDoneSupplier=Liste over leverandørfakturalinjer og tilhørende regnskapskonto -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilTodoExpenseReport=Bind utgiftsrapport-linjer til en gebyr-regnskapskonto +DescVentilExpenseReport=Liste over utgiftsrapport-linjer bundet (eller ikke) til en gebyr-regnskapskonto +DescVentilExpenseReportMore=Hvis du setter opp regnskapskonto med type utgiftsrapport-linjer, vil programmet være i stand til å gjøre alle bindinger mellom utgiftsrapport-linjer og regnskapskontoer med et klikk på knappen "%s". Hvis du fortsatt har noen linjer som ikke er bundet til en konto, må du foreta en manuell binding fra menyen "%s". +DescVentilDoneExpenseReport=Liste over utgiftsrapport-linjer og tilhørende gebyr-regnskapskonto ValidateHistory=Bind automatisk AutomaticBindingDone=Automatisk binding utført @@ -186,16 +194,28 @@ AutomaticBindingDone=Automatisk binding utført ErrorAccountancyCodeIsAlreadyUse=Feil, du kan ikke slette denne regnskapskontoen fordi den er i bruk MvtNotCorrectlyBalanced=Bevegelse er ikke korrekt balansert. Kredit=%s. Debet=%s FicheVentilation=Binding-kort -GeneralLedgerIsWritten=Transaksjoner er ført inn i hovedboken -GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke registreres -NoNewRecordSaved=Ingen nye poster lagret +GeneralLedgerIsWritten=Transaksjoner blir skrevet inn i hovedboken +GeneralLedgerSomeRecordWasNotRecorded=Noen av transaksjonene kunne ikke sendes. Hvis det ikke er noen annen feilmelding, er dette trolig fordi de allerede var sendt. +NoNewRecordSaved=Ingen ny poster sendt ListOfProductsWithoutAccountingAccount=Liste over varer som ikke bundet til en regnskapskonto ChangeBinding=Endre bindingen ## Admin ApplyMassCategories=Masseinnlegging av kategorier -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed +AddAccountFromBookKeepingWithNoCategories=Legg til allerede brukt konto, uten kategorier +CategoryDeleted=Kategori for regnskapskontoen er blitt slettet +AccountingJournals=Regnskapsjournaler +AccountingJournal=Regnskapsjournal +NewAccountingJournal=Ny regnskapsjourna +ShowAccoutingJournal=Vis regnskapsjournal +Code=Kode +Nature=Natur +AccountingJournalType1=Ulike operasjoner +AccountingJournalType2=Salg +AccountingJournalType3=Innkjøp +AccountingJournalType4=Bank +AccountingJournalType9=Har nye +ErrorAccountingJournalIsAlreadyUse=Denne journalen er allerede i bruk ## Export Exports=Eksporter @@ -211,7 +231,8 @@ Modelcsv_ciel=Eksport til Sage Ciel Compta eller Compta Evolution Modelcsv_quadratus=Eksport til Quadratus QuadraCompta Modelcsv_ebp=Eksporter mot EBP Modelcsv_cogilog=Eksport mot Cogilog -ChartofaccountsId=Chart of accounts Id +Modelcsv_agiris=Eksport mot Agiris (Test) +ChartofaccountsId=Kontoplan ID ## Tools - Init accounting account on product / service InitAccountancy=Initier regnskap @@ -225,9 +246,9 @@ OptionModeProductBuyDesc=Vis alle varer for kjøp, med regnskapskonto CleanFixHistory=Fjern regnskapskode fra linjer som ikke finnes i kontodiagram CleanHistory=Nullstill alle bindinger for valgt år -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +WithoutValidAccount=Uten gyldig dedikert konto +WithValidAccount=Med gyldig dedikert konto +ValueNotIntoChartOfAccount=Denne verdien av regnskapskonto eksisterer ikke i kontoplanen ## Dictionary Range= Oversikt over regnskapskonto @@ -235,11 +256,12 @@ Calculated=Kalkulert Formula=Formel ## Error -ErrorNoAccountingCategoryForThisCountry=Ingen kontokategori tilgjengelig for landet %s (se Hjem - Oppsett - Ordlister) +SomeMandatoryStepsOfSetupWereNotDone=Noen obligatoriske trinn for oppsett ble ikke gjort, vennligst fullfør disse +ErrorNoAccountingCategoryForThisCountry=Ingen regnskapskonto-gruppe tilgjengelig for land %s (Se Hjem - Oppsett - Ordbøker) ExportNotSupported=Eksportformatet som er satt opp støttes ikke på denne siden BookeppingLineAlreayExists=Linjene eksisterer allerede i bokføringen - +NoJournalDefined=Ingen journal definert Binded=Bundne linjer ToBind=Linjer som skal bindes -WarningReportNotReliable=Advarsel! Denne rapporten er ikke basert på hovedboken, så den er ikke pålitelig enda. Den vil erstattes av en korrekt rapport i neste versjon +WarningReportNotReliable=Advarsel, denne rapporten er ikke basert på hovedboken, så den inneholder ikke manuelt endrede transaksjoner i hovedboken. Den blir erstattet av en mer komplett rapport i en neste versjon. diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index a9fbede41aa..1d10f9ae053 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -9,10 +9,10 @@ VersionDevelopment=Utviklingsversjon VersionUnknown=Ukjent VersionRecommanded=Anbefalt FileCheck=Filintegritetssjekker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. +FileCheckDesc=Dette verktøyet lar deg sjekke integriteten av filer og oppsett av programmet ved å sammenligne hver fil med de offisielle. Verdien av noen konstanter kan også sjekkes. Du kan bruke dette verktøyet til å oppdage om noen filer ble endret av f.eks hackere +FileIntegrityIsStrictlyConformedWithReference=Filintegriteter er strengt dannet med referansen. +FileIntegrityIsOkButFilesWereAdded=Fil-integritetssjekk ble godkjent, men noen nye filer ble lagt til. +FileIntegritySomeFilesWereRemovedOrModified=Filintegritetssjekk mislyktes. Noen filer ble endret, fjernet eller lagt til. GlobalChecksum=Global sjekksum MakeIntegrityAnalysisFrom=Opprett integritetsanalyse av applikasjonsfiler fra LocalSignature=Innebygget lokal signatur (mindre pålitelig) @@ -22,7 +22,7 @@ FilesUpdated=Oppdaterte filer FilesModified=Endrede filer FilesAdded=Filer lagt til FileCheckDolibarr=Integritetssjekk av applikasjonsfilene -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package +AvailableOnlyOnPackagedVersions=Den lokale filen for integritetssjekking er bare tilgjengelig når programmet er installert fra en offisiell pakke XmlNotFound=Xml Integritetsfilen til applikasjonen ble ikke funnet SessionId=Økt-ID SessionSaveHandler=Håndterer for å lagre sesjoner @@ -48,6 +48,7 @@ InternalUsers=Interne brukere ExternalUsers=Eksterne brukere GUISetup=Visning SetupArea=Oppsettsområde +UploadNewTemplate=Last opp ny mal(er) FormToTestFileUploadForm=Skjema for å teste opplasting (i henhold til oppsett) IfModuleEnabled=Merk: Ja er bare effektiv hvis modulen %s er aktivert RemoveLock=Fjern filen %s , hvis den finnes, for å tillate bruk av oppdateringsverktøyet. @@ -64,8 +65,8 @@ ErrorCodeCantContainZero=Koden kan ikke inneholde verdien 0 DisableJavascript=Deaktiver JavaScript og Ajax funksjoner (Anbefalt for tekstbaserte nettlesere og blinde) UseSearchToSelectCompanyTooltip=Hvis du har et stort antall tredjeparter (> 100 000), kan du øke hastigheten ved å sette konstant COMPANY_DONOTSEARCH_ANYWHERE til 1 i Oppsett-> Annet. Søket vil da være begrenset til starten av strengen. UseSearchToSelectContactTooltip=Hvis du har et stort antall tredjeparter (> 100 000), kan du øke hastigheten ved å sette konstant CONTACT_DONOTSEARCH_ANYWHERE til 1 i Oppsett-> Annet. Søket vil da være begrenset til starten av strengen. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) +DelaiedFullListToSelectCompany=Vent med å trykke på en tast før innholdet av tredjepart-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange tredjeparter) +DelaiedFullListToSelectContact=Vent med å trykke på en tast før innholdet av kontakt-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange kontakter) NumberOfKeyToSearch=Antall tegn for å starte søk: %s NotAvailableWhenAjaxDisabled=Ikke tilgjengelig når Ajax er slått av AllowToSelectProjectFromOtherCompany=På elementer av en tredjepart, kan du velge et prosjekt knyttet til en annen tredjepart @@ -85,7 +86,7 @@ Mask=Maske NextValue=Neste verdi NextValueForInvoices=Neste verdi (fakturaer) NextValueForCreditNotes=Neste verdi (kreditnotaer) -NextValueForDeposit=Neste beløp (innskudd) +NextValueForDeposit=Neste verdi (nedbetaling) NextValueForReplacements=Neste verdi (erstatninger) MustBeLowerThanPHPLimit=Merk: PHP begrenser hver filopplastning til %s %s, uansett hva som er angitt her NoMaxSizeByPHPLimit=Merk: Det er ikke satt noen begrensninger i din PHP-konfigurasjon på denne serveren @@ -103,7 +104,7 @@ MenuIdParent=ID foreldremeny DetailMenuIdParent=ID foreldremeny (tom for toppmeny) DetailPosition=Sorteringsnummer i meny AllMenus=Alle -NotConfigured=Modulen er Ikke konfigurert +NotConfigured=Modul/applikasjon ikke konfigurert Active=Aktiv SetupShort=Oppsett OtherOptions=Andre innstillinger @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tusenskille Destination=Mål IdModule=Modul ID IdPermissions=Rettigheter ID -Modules=Moduler LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Språkparametere for Dolibarr ClientTZ=Tidssone (bruker) @@ -123,7 +123,8 @@ PHPTZ=Tidssone PHP-server DaylingSavingTime=Sommertid CurrentHour=PHP tid (server) CurrentSessionTimeOut=Gjeldende økt-timeout -YouCanEditPHPTZ=Hvis du vil angi en annen PHP tidssone (ikke nødvendig), kan du prøve å legge til filen .htacces meddenne linjen "SetEnv TZ Europe/Oslo" +YouCanEditPHPTZ=For å angi en annen PHP tidssone (ikke nødvendig), kan du prøve å legge til en fil .htaccess med en linje som denne "SetEnv TZ Europe/Oslo" +HoursOnThisPageAreOnServerTZ=Advarsel, i motsetning til andre skjermer, er timer på denne siden ikke i din lokale tidssone, men i tidssonen til serveren. Box=Widget Boxes=Widgeter MaxNbOfLinesForBoxes=Maks. antall linjer for widgeter @@ -189,11 +190,11 @@ FeatureAvailableOnlyOnStable=Egenskapen er kun tilgjengelig på offisielle, stab Rights=Tillatelser BoxesDesc=Widgeter er komponenter som viser litt informasjon som du kan legge til for å tilpasse enkelte sider. Du kan velge mellom å vise widgeten eller ikke ved å velge målside og klikke på 'Aktiver', eller ved å klikke på søppelkassen for å deaktivere den. OnlyActiveElementsAreShown=Bare elementer fra aktiverte moduler vises. -ModulesDesc=Dolibarr-moduler definerer hvilke funksjonaliteter som er aktivert i programmet. Noen moduler krever tillatelser du må gi for brukerne, etter å ha aktivert modulen. Klikk på knappen på/av for å aktivere en modul/funksjon. +ModulesDesc=Dolibarr-moduler definerer hvilken applikasjon/funksjon som er aktivert i programvaren. Enkelte applikasjoner/moduler krever tillatelser du må gi til brukere, etter at du har aktivert dem. Klikk på knappen på/av for å aktivere en modul/applikasjon. ModulesMarketPlaceDesc=Du kan finne flere moduler for nedlasting på eksterne nettsteder. -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. +ModulesDeployDesc=Hvis tillatelser for filsystemet tillater det, kan du bruke dette verktøyet til å distribuere en ekstern modul. Modulen vil da være synlig under fanen %s. ModulesMarketPlaces=Finn eksterne moduler. -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +GoModuleSetupArea=For å distribuere/installere en ny modul, gå til området for Moduloppsett på %s. DoliStoreDesc=DoliStore, den offisielle markedsplassen for eksterne moduler til Dolibarr ERP/CRM DoliPartnersDesc=Liste over selskaper som tilbyr spesialtilpassede moduler og funksjoner (Merk: Erfarne PHP-programmerere kan gi tilpasset utvikling for åpen kildekode) WebSiteDesc=Referansesider for å finne flere moduler. @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Databasepassord kryptert i conf.php (Aktivering InstrucToEncodePass=For å kryptere passordet i conf.php , bytt ut linjen
$dolibarr_main_db_pass="...";
med
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=For passord i klartekst(helst ikke) i conf.php , bytt ut linjen
$dolibarr_main_db_pass="crypted:...";
med
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Beskytt genererte pdf-filer (anbefales ikke, fjerner mulighet for massegenerering av PDF'er) -ProtectAndEncryptPdfFilesDesc=Beskyttede PDF-filer kan fortsatt leses og skrives ut med alle PDF-lesere. De kan derimot ikke redigeres eller kopieres fra. Når du bruker denne funksjonen vil det ikke være mulig å lage globale akkumulerte PDF-filer (som for eksempel ubetalte fakturaer). +ProtectAndEncryptPdfFilesDesc=Beskyttelse av et PDF-dokument gjør det tilgjengelig for å lese og skrive det ut med hvilken som helst PDF-leser. Det er imidlertid ikke mulig å redigere og kopiere. Legg merke til at bruk av denne funksjonen gjør det mulig å bygge en globalt sammensatt PDF-fil som ikke fungerer. Feature=Funksjon DolibarrLicense=Lisens Developpers=Utviklere/bidragsytere @@ -225,6 +226,8 @@ OfficialMarketPlace=Offisiell markedsplass for eksterne moduler/tillegg OfficialWebHostingService=Referert webhosting service (Cloud hosting) ReferencedPreferredPartners=Foretrukne Partnere OtherResources=Andre ressurser +ExternalResources=Eksterne ressurser +SocialNetworks=Sosiale nettverk ForDocumentationSeeWiki=For bruker- eller utviklerdokumentasjon (Doc, FAQs ...),
ta en titt på Dolibarr Wiki:
%s ForAnswersSeeForum=For andre spørsmål/hjelp, kan du bruke Dolibarr forumet:
%s HelpCenterDesc1=Dette området kan hjelpe deg å få support-tjeneste med Dolibarr. @@ -235,12 +238,12 @@ LeftMargin=Venstremarg TopMargin=Toppmarg PaperSize=Papirtype Orientation=Orientering -SpaceX=Space X -SpaceY=Space Y +SpaceX=Mellomrom X +SpaceY=Mellomrom Y FontSize=Fontstørrelse Content=Innhold NoticePeriod=Oppsigelsestid -NewByMonth=New by month +NewByMonth=Ny etter måned Emails=E-poster EMailsSetup=E-postinnstillinger EMailsDesc=Denne siden lar deg overstyre PHP-innstillingene for å sende e-post. I de fleste tilfeller på Unix/Linuxservere er PHP-innstillingene korrekte, slik at disse innstillingene er unødvendige. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funksjonen er ikke tilgjengelig på Unix/Linux. Test SubmitTranslation=Hvis oversettelsen for dette språket ikke er fullstendig eller du finner feil, kan du rette opp dette ved å redigere filene i katalogen langs/%s og sende endrede filer til www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Hvis oversettelse for dette språket ikke er fullstendig eller du finner feil, kan du korrigere dette ved å redigere filer i katalogen langs/%s og sende endrede filer på dolibarr.org/forum eller for utviklere på github.com/Dolibarr/dolibarr. ModuleSetup=Modulinnstillinger -ModulesSetup=Modulinnstillinger +ModulesSetup=Moduler/Applikasjonsoppsett ModuleFamilyBase=System ModuleFamilyCrm=Kunderelasjonshåndtering (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -285,29 +288,32 @@ MenuHandlers=Menyhåndtering MenuAdmin=Menyredigering DoNotUseInProduction=Ikke bruk i produksjon ThisIsProcessToFollow=Disse skrittene må gjennomføres: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsAlternativeProcessToFollow=Dette er et alternativt oppsett for manuell behandling: StepNb=Trinn %s FindPackageFromWebSite=Finn en pakke som inneholder funksjonen du vil bruke (for eksempel på nettsider %s). DownloadPackageFromWebSite=Last ned pakke (for eksempel fra den offisielle websiden %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
+UnpackPackageInDolibarrRoot=Pakk ut filene til serverkatalogen til Dolibarr: %s +UnpackPackageInModulesRoot=For å distribuere/installere en ekstern modul, pakk ut filene i servermappen dedikert for moduler: %s +SetupIsReadyForUse=Moduldistribusjon er ferdig. Du må imidlertid aktivere og sette opp modulen i programmet ved å gå til siden: %s. +NotExistsDirect=Alternativ rotkatalog er ikke definert til en eksisterende katalog.
InfDirAlt=Fra versjon 3 er det mulig å definere en alternativ rotkatalog. Dette gjør det mulig å lagre plug-ins og egendefinerte maler.
Opprett en katalog i roten til Dolibarr (f.eks min katalog).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
Hvis disse linjene er markert med "#", er de deaktivert. For å aktivere dem er det bare å fjerne "#". YouCanSubmitFile=I dette trinnet kan du sende pakken med dette verktøyet: Velg modulfil CurrentVersion=Gjeldende versjon av Dolibarr CallUpdatePage=Gå til siden som oppdaterer data og databasestruktur: %s. LastStableVersion=Siste stabile versjon -LastActivationDate=Latest activation date +LastActivationDate=Siste aktiveringsdato +LastActivationAuthor=Siste aktiveringsforfatter +LastActivationIP=Siste aktivering IP UpdateServerOffline=Oppdater serveren offline +WithCounter=Administrer en teller GenericMaskCodes=Her kan du legge inn nummereringsmal. I malen kan du bruke følgende tagger:
{000000} tilsvarer et tall som økes ved hver %s. Angi så mange nuller som du ønsker at lengden på telleren skal være. Telleren vil ha ledende nuller i henhold til malens lengde.
{000000+000} samme som forrige, men med en forskyvning til høyre for + tegnet, starter fra første %s.
{000000@x} samme som forrige, men telleren starter fra null når måned x nås (x mellom 1 og 12). Hvis dette valget brukes og x er 2 eller mer kreves også sekvensen {yy}{mm} eller {yyyy}{mm} kreves også.
{dd} dag (01 til 31).
{mm} måned (01 til 12).
{yy}, {yyyy} eller {y} årstall over 2, 4 eller 1 siffer.
{cccc000} klientkoden på n tegn etterfulgt av en klientreferanse uten forskyvning og nullet med den globale telleren.

Alle andre tegn i malen vil forbli intakte.
Mellomrom er ikke tillatt.

Eksempel på den 99de %s av tredjeparten blir 31/01/2007:
ABC{yy}{mm}-{000000} vil gi ABC0701-000099
{0000+100}-ZZZ/{dd}/XXX vil gi 0199-ZZZ/31/XXX
-GenericMaskCodes2={cccc} klientkoden på n tegn
{cccc000} klientkoden på n tegn etterfølges av en teller dedikert til kunden. Denne telleren blir tilbakestilt til samtidig som den globale telleren.
{tttt} Koden av tredjeparts type på n tegn (se ordbok-tredjepartstyper).
+GenericMaskCodes2= {cccc} klientkoden på n tegn
{cccc000} klientkoden på n tegn etterfølges av en teller dedikert til kunden. Denne telleren tilbakestilles samtidig med global teller.
{tttt} Koden til tredjepartstype på n tegn (se menyen Hjem - Oppsett - Ordbok - Typer av tredjeparter) . Hvis du legger til denne taggen, vil telleren være forskjellig for hver type tredjepart.
GenericMaskCodes3=Alle andre tegn i masken vil være intakt.
Mellomrom er ikke tillatt.
-GenericMaskCodes4a=Eksempel på 99. %s av tredjeparten TheCompany gjort 31.01.2007:
+GenericMaskCodes4a=Eksempel på 99. %s fra tredjepart TheCompany, med dato 2007-01-31:
GenericMaskCodes4b=Eksempel på tredjepart opprettet på 2007-03-01:
GenericMaskCodes4c=Eksempel på vare opprettet 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} vil gi ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX vil gi 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} vil gi ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX vil gi 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} vil giv IN0701-0099-A hvis firmatypen er 'Responsable Inscripto' med typekode som er 'A_RI' GenericNumRefModelDesc=Gir et egendefinert nummer etter en definert mal. ServerAvailableOnIPOrPort=Serveren er tilgjengelig på adressen %s på port %s ServerNotAvailableOnIPOrPort=Serveren er ikke tilgjengelig på adressen %s på port %s @@ -369,24 +375,26 @@ Int=Integer Float=Float DateAndTime=Dato og tid Unique=Unik -Boolean=Boolean (Avmerkingsboks) +Boolean=Boolsk (en avkrysningsboks) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris ExtrafieldMail = E-post ExtrafieldUrl = Url ExtrafieldSelect = Velg liste ExtrafieldSelectList = Velg fra tabell -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (ikke et felt) ExtrafieldPassword=Passord -ExtrafieldCheckBox=Avmerkingsboks -ExtrafieldRadio=Radio-knapp -ExtrafieldCheckBoxFromList= Avkrysningsboks fra tabell +ExtrafieldRadio=Radioknapper (kun på valg) +ExtrafieldCheckBox=Sjekkbokser +ExtrafieldCheckBoxFromList=Avkrysningsbokser fra tabell ExtrafieldLink=Lenke til et objekt -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ComputedFormula=Beregnet felt +ComputedFormulaDesc=Her kan du skrive inn en formel ved hjelp av andre objektegenskaper eller PHP-koding for å få en dynamisk beregningnet verdi. Du kan bruke PHP-kompatible formler, inkludert "?" operator og følgende globale objekt: $db, $conf, $langs, $mysoc, $user, $objekt .

ADVARSEL : Kanskje bare noen egenskaper på $objekt er tilgjengelig. Hvis du trenger egenskaper som ikke er lastet, kan du bare hente objektet i formelen din som i det andre eksempelet.
Ved å bruke et beregnet felt betyr det at du ikke selv kan angi noen verdi fra grensesnittet. Også, hvis det er en syntaksfeil, kan det hende formelen ikke returnerer noe.

Eksempel på formel:
$objekt->id<10? round ($object->id / 2, 2) : ($object-> id + 2 *$user->id) * (int) substr($mysoc->zip, 1, 2)

Eksempel på å ny innlasting av objekt
(($reloadedobj = new Societe ($db)) && ($reloadedobj->fetch($obj-> id? $ obj-> id: ($obj-> rowid? $obj-> rowid: $object-> id))> 0))? $reloadedobj-> array_options ['options_extrafieldkey'] * $reloadedobj->capital / 5: '-1'

Annet eksempel på formel for å tvinge lasting av objekt og dets overordnede objekt:
(($reloadedobj = Ny oppgave ($db)) && ($reloadedobj->fetch($objekt->id)> 0) && ($secondloadedobj = nytt prosjekt ($db)) && ($secondloadedobj->fetch($reloadedobj-> fk_project )> 0))? $secondloadedobj-> ref: 'Foreldreprosjekt ikke funnet' +ExtrafieldParamHelpselect=Parameterliste må være nøkkel,verdi
for eksempel:
1,verdi1
2,verdi2
3,verdi3
...
For å ha listen avhengig av en annen attributtliste:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameterlisten må settes opp med nøkkel,verdi

for eksempel:
1,verdi1
2,verdi2
3,verdi3
... ExtrafieldParamHelpradio=Parameterlisten må settes opp med nøkkel,verdi

for eksempel:
1,verdi1
2,verdi2
3,verdi3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpsellist=Parameterlisten kommer fra en tabell
Syntax : table_name:label_field:id_field::filter
Eksempel : c_typent:libelle:id::filter

et filter kan være en enkel test (f.eks active=1) for å vise kun aktive verdier
Du kan også bruke $ID$ i filtre, som er gjeldende ID av gjeldende objekt
For å utføre SELECT i filtre, bruk $SEL$
hvis du vil filtrere på ekstrafelter, bruk syntaks extra.fieldcode=...(der feltkode er koden til ekstrafeltet)

For å få listen til å avhenge av en komplementær attributtliste:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

For å få listen til å avhenge av en annen liste:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=Parameterlisten kommer fra en tabell
Syntax : table_name:label_field:id_field::filter
Eksempel : c_typent:libelle:id::filter

et filter kan være en enkel test (f.eks active=1) for å vise kun aktive verdier
Du kan også bruke $ID$ i filtre, som er gjeldende ID av gjeldende objekt
For å utføre SELECT i filtre, bruk $SEL$
hvis du vil filtrere på ekstrafelter, bruk syntaks extra.fieldcode=...(der feltkode er koden til ekstrafeltet)

For å få listen til å avhenge av en komplementær attributtliste:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

For å få listen til å avhenge av en annen liste:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parametre må være ObjectName:Classpath
Syntax : ObjectName:Classpath
Eksempel : Societe:societe/class/societe.class.php LibraryToBuildPDF=Bibliotek brukt for PDF-generering WarningUsingFPDF=Advarsel! conf.php inneholder direktivet dolibarr_pdf_force_fpdf=1. Dette betyr at du bruker FPDF biblioteket for å generere PDF-filer. Dette biblioteket er gammelt og støtter ikke en rekke funksjoner (Unicode, bilde-transparens, kyrillisk, arabiske og asiatiske språk, ...), så du kan oppleve feil under PDF generering.
For å løse dette, og ha full støtte ved PDF generering, kan du laste ned TCPDF library, deretter kommentere eller fjerne linjen $dolibarr_pdf_force_fpdf=1, og i stedet legge inn $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' @@ -418,13 +426,27 @@ EnableAndSetupModuleCron=Hvis du ønsker at gjentakende fakturaer skal genereres ModuleCompanyCodeAquarium=Velger en regnskapskode bygget av:
%s etterfulgt av tredjeparts leverandørkode for en leverandør-regnskap kode,
%s etterfulgt av tredjepart kundekode for en kunde- regnskapkode. ModuleCompanyCodePanicum=Velg en tom regnskapskode ModuleCompanyCodeDigitaria=Regnskapskode avhenger av tredjepartskode. Koden består av karakteren "C" i første posisjon, etterfulgt av de første 5 tegnene i tredjepartskoden. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. +Use3StepsApproval=Som standard må innkjøpsordrer opprettes og godkjennes av 2 forskjellige brukere (ett trinn/bruker for å opprette og ett trinn/bruker for å godkjenne. Merk at hvis brukeren har både tillatelse til å opprette og godkjenne, vil ett trinn/ bruker vil være nok). Du kan bruke dette alternativet for å innføre et tredje trinn/bruker godkjenning, hvis beløpet er høyere enn en spesifisert verdi (så vil 3 trinn være nødvendig: 1=validering, 2=første godkjenning og 3=andre godkjenning dersom beløpet er høyt nok).
Sett denne tom en godkjenning (2 trinn) er nok, sett den til en svært lav verdi (0,1) hvis det alltid kreves en andre godkjenning (3 trinn). UseDoubleApproval=Bruk 3-trinns godkjennelse når beløpet (eks. MVA) er høyere enn... WarningPHPMail=ADVARSEL: Noen e-postleverandører (som Yahoo) tillater deg ikke å sende en e-post fra en annen server enn Yahoo-serveren hvis e-postadressen benyttes som avsender er din Yahoo e-post (som myemail@yahoo.com, myemail@yahoo.fr, ...). Ditt nåværende oppsett bruker serveren til programmet til å sende e-post, så noen mottakere (det ene er kompatible med den restriktive DMARC protokollen), vil be Yahoo om de kan ta imot e-post og Yahoo vil svare "nei" fordi serveren er ikke en server eid av Yahoo, så flere av dine sendte e-poster kan ikke aksepteres.
Hvis e-postleverandøren (som Yahoo) har denne begrensningen, må du endre e-post-oppsett for å velge den andre metoden "SMTP server" og skriv inn SMTP-server og legitimasjon som tilbys av e-postleverandøren (be e-postleverandøren om å få SMTP-legitimasjon for kontoen din). ClickToShowDescription=Klikk for å vise beskrivelse +DependsOn=Denne modulen trenger modulen(ene) +RequiredBy=Denne modulen er påkrevd av modul(ene) +TheKeyIsTheNameOfHtmlField=Dette er navnet på HTML-feltet. Dette må ha tekniske egenskaper for å lese innholdet på HTML-siden for å få nøkkelnavnet til et felt. +PageUrlForDefaultValues=Du må skrive inn den relative nettadressen til siden. Hvis du inkluderer parametere i URL, vil standardverdiene være effektive hvis alle parametere er satt til samme verdi. Eksempler: +PageUrlForDefaultValuesCreate=
For skjema for å opprette en ny tredjepart, er den %s +PageUrlForDefaultValuesList=
For side som viser tredjeparter, er den %s +EnableDefaultValues=Aktiver bruk av personlige standardverdier +EnableOverwriteTranslation=Aktiver bruk av overskrivende oversettelse +GoIntoTranslationMenuToChangeThis=En oversettelse har blitt funnet for nøkkelen med denne koden, så for å endre denne verdien må du redigere den fra Home-Setup-Oversettelse. +WarningSettingSortOrder=Advarsel, å angi en standard sorteringsrekkefølge kan føre til en teknisk feil når du går på listesiden dersom feltet er et ukjent felt. Hvis du opplever en slik feil, kan du komme tilbake til denne siden for å fjerne standard sorteringsrekkefølge og gjenopprette standardoppførsel. +Field=Felt +ProductDocumentTemplates=Dokumentmaler for å generere produktdokument +FreeLegalTextOnExpenseReports=Fri juridisk tekst på utgiftsrapporter +WatermarkOnDraftExpenseReports=Vannmerke på utgiftsrapport-maler # Modules Module0Name=Brukere & grupper -Module0Desc=Users / Employees and Groups management +Module0Desc=Håndtering av Brukere/Ansatte og Grupper Module1Name=Tredjeparter Module1Desc=Behandling av bedrifter og kontaktpersoner Module2Name=Handel @@ -444,7 +466,7 @@ Module30Desc=Behandling av fakturaer og kreditnotaer for kunder. Fakturabehandli Module40Name=Leverandører Module40Desc=Behandling av innkjøp og leverandører (ordre og fakturaer) Module42Name=Logger -Module42Desc=Loggefunksjoner (fil,syslog,...) +Module42Desc=Loggfunksjoner (fil, syslog, ...). Slike logger er for tekniske/feilsøkingsformål. Module49Name=Redigeringsprogram Module49Desc=Behandling av redigeringsprogram Module50Name=Varer @@ -499,8 +521,8 @@ Module410Name=Webkalender Module410Desc=Integrasjon med webkalender Module500Name=Spesielle utgifter Module500Desc=Behandling av spesielle utgifter (skatter og avgifter, utbytte mm) -Module510Name=Arbeidskontrakter og lønn -Module510Desc=Håndtering av arbeidskontrakter, lønn og utbetalinger +Module510Name=Betaling av lønn til ansatte +Module510Desc=Legg inn og følg betalingen av ansattes lønn Module520Name=Lån Module520Desc=Administrering av lån Module600Name=Varselmeldinger @@ -526,7 +548,7 @@ Module2200Desc=Aktiver mulighet for matematiske utrykk for å beregne priser Module2300Name=Cron Module2300Desc=Behandling av planlagte oppgaver Module2400Name=Hendelser/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Desc=Følg utførte og kommende hendelser. La applikasjonen logge hendelser automatisk for sporingsformål . Module2500Name=Elektronisk Innholdshåndtering-ECM Module2500Desc=Lagre og dele dokumenter Module2600Name=API/Web tjenseter(SOAP server) @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind konverteringsegenskaper Module3100Name=Skype Module3100Desc=Legg til en Skype-knapp i brukere/tredjeparter/kontakter/medlemskort +Module3200Name=Ikke reversible logger +Module3200Desc=Aktiver logg av enkelte forretningshendelser i en ikke reversibel logg. Hendelser arkiveres i sanntid. Loggen er en tabell med kjedede hendelser som kan leses og eksporteres. Denne modulen kan være obligatorisk for enkelte land. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=HRM (avdeling av avdeling, arbeidskontrakter og følelser) Module5000Name=Multi-selskap Module5000Desc=Lar deg administrere flere selskaper Module6000Name=Arbeidsflyt @@ -591,8 +615,8 @@ Permission32=Opprett/endre varer Permission34=Slett varer Permission36=Se/administrer skjulte varer Permission38=Eksporter varer -Permission41=Les prosjekter og oppgaver (delte prosjekter og de jeg er kontakt for). Her kan du også legge inn tidsbruk på tildelte oppgaver (timelister) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Les prosjekter og oppgaver (delt prosjekt og prosjekter jeg er kontakt for). Kan også skrive inn tidsforbruk for meg eller mitt hierarki, på tildelte oppgaver (Tidsskjema) +Permission42=Opprett/endre prosjekter (delte prosjekter og de jeg er kontakt for). Kan også opprette oppgaver og tildele prosjekter og oppgaver til brukere. Permission44=Slett prosjekter (delte og mine egne) Permission45=Eksporter prosjekter Permission61=Vis intervensjoner @@ -695,7 +719,7 @@ PermissionAdvanced253=Opprett/endre interne/eksterne brukere og tillatelser Permission254=Slette eller deaktivere andre brukere Permission255=Opprett/endre egen brukerinformasjon Permission256=Slett eller deaktiver andre brukere -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Utvid tilgangen til alle tredjeparter (ikke bare tredjeparter der brukeren er en salgsrepresentant).
Virker ikke på eksterne brukere (alltid begrenset til egne tilbud, ordre, fakturaer, kontrakter mm).
Virker ikke på prosjekter (kun regler for prosjekttillatelser, synlighet og tildeling gjelder). Permission271=Vis CA Permission272=Vis fakturaer Permission273=Opprett fakturaer @@ -842,14 +866,16 @@ DictionaryStaff=Stab DictionaryAvailability=Leveringsforsinkelse DictionaryOrderMethods=Ordremetoder DictionarySource=Tilbud/ordre-opprinnelse -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Regnskapskonto-grupper DictionaryAccountancysystem=Diagram-modeller for kontoer +DictionaryAccountancyJournal=Regnskapsjournaler DictionaryEMailTemplates=E-postmaler DictionaryUnits=Enheter DictionaryProspectStatus=Prospektstatus DictionaryHolidayTypes=Ferietyper DictionaryOpportunityStatus=Mulighet-status for prosjekt SetupSaved=Innstillinger lagret +SetupNotSaved=Oppsettet er ikke lagret BackToModuleList=Tilbake til moduloversikt BackToDictionaryList=Tilbake til ordliste VATManagement=MVA-håndtering @@ -897,7 +923,7 @@ Offset=Forskyvning AlwaysActive=Alltid aktiv Upgrade=Oppgrader MenuUpgrade=Oppgrader/Utvid -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Installer ekstern modul WebServer=Webserver DocumentRootServer=Webserverens rotkatalog DataRootServer=Mappe for datafiler @@ -931,12 +957,14 @@ DefaultMaxSizeList=Standard maks.lengde for lister DefaultMaxSizeShortList=Standard maxlengde for korte lister (f.eks på kundekort) MessageOfDay=Dagens melding MessageLogin=Meldingstekst på innloggingsbildet +LoginPage=Innloggingsside +BackgroundImageLogin=Bakgrunnsbilde PermanentLeftSearchForm=Permanent søkeskjema i venstre meny DefaultLanguage=Ønsket standardspråk (språkkode) EnableMultilangInterface=Aktiver flerspråklig grensesnitt EnableShowLogo=Vis logo i venstre meny -CompanyInfo=Firma/organisasjonsinformasjon -CompanyIds=Firma/organisasjons IDer +CompanyInfo=Firma-/organisasjonsinformasjon +CompanyIds=Firma-/organisasjonsidentiteter CompanyName=Navn CompanyAddress=Adresse CompanyZip=Postnummer @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Forsinkelsestoleranse (i dager) før varsel om forsink Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Forsinkelsestoleranse (i dager) før varsel om sjekker som må settes inn i bank Delays_MAIN_DELAY_EXPENSEREPORTS=Tillatt forsinkelse (i dager) før varsel om at utgiftsrapport skal godkjennes SetupDescription1=Oppsettområdet er for førstegangsparametre før du begynner å bruke Dolibarr. -SetupDescription2=De to viktigste konfigureringstrinnene er de to første i oppsettmenyen til venstre: Firma/Organisasjon-oppsettside og siden for moduloppsett: -SetupDescription3=Parametre i menyen Oppsett -> Firma/Organisasjon er nødvendig fordi innsendte data brukes i Dolibarr-visninger og for å tilpasse standard virkemåte for programvaren (for lands-relaterte funksjoner for eksempel) . -SetupDescription4=Parametre i menyen Oppsett -> Moduler kreves fordi Dolibarr ikke er en monolittisk ERP/CRM, men en samling av flere moduler, alle mer eller mindre uavhengig. Nye funksjoner vil bli lagt til menyer for hver modul du aktiverer. +SetupDescription2=De to obligatoriske oppsettstrinnene er de to første i oppsettmenyen til venstre: %s oppsettside og %s oppsettside: +SetupDescription3=Parametre i menyen %s -> %s kreves fordi definerte data brukes på Dolibarr-skjermer og for å tilpasse standardoppførselen til programvaren (for eksempel landrelaterte funksjoner). +SetupDescription4=Parametre i menyen %s -> %s kreves fordi Dolibarr ERP/CRM er en samling av flere moduler/applikasjoner, alle mer eller mindre uavhengige. Nye funksjoner blir lagt til i menyene for hver modul du vil aktivere. SetupDescription5=Administrere andre menyoppføringers valgfrie parametre. LogEvents=Hendelser relatert til sikkerhet Audit=Revisjon @@ -987,7 +1015,7 @@ BrowserOS=Nettleserens operativsystem ListOfSecurityEvents=Oversikt over sikkerhetshendelser i Dolibarr SecurityEventsPurged=Sikkerhetshendelser renset LogEventDesc=Her kan du slå på loggen for sikkerhetshendelser i Dolibarr. Administratorer kan da se innholdet i loggene via menyen Systemverktøy - Revisjon. OBS! Denne funksjonen kan ta opp mye plass i databasen! -AreaForAdminOnly=Disse funksjonene kan bare brukes av administratorer. +AreaForAdminOnly=Oppsettparametere kan bare angis av administratorbrukere . SystemInfoDesc=Systeminformasjon er diverse teknisk informasjon som kun vises i skrivebeskyttet modus, og som kun er synlig for administratorer. SystemAreaForAdminOnly=Dette området er bare tilgjengelig for administratorer. Ingen av tillatelsene i Dolibarr kan senke denne grensen. CompanyFundationDesc=Her kan du legge inn informasjon om firmaet eller organisasjonen din (klikk på "Endre"- eller "Lagre"-knappen i bunnen av siden) @@ -1004,7 +1032,7 @@ TriggerAlwaysActive=Utløserne i denne filen er alltid slått på, uansett hvilk TriggerActiveAsModuleActive=Utløserne i denne filen er slått på ettersom modulen %s er slått på. GeneratedPasswordDesc=Her angir du hvilken regel som skal generere nye passord dersom du ber om å ha automatisk opprettede passord DictionaryDesc=Sett alle referansedata. Du kan legge til dine verdier som standard. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +ConstDesc=Denne siden lar deg redigere alle andre parametere som ikke finnes på foregående sidene. Disse er stort sett forbeholdt parametere for utviklere eller avansert feilsøking. For en liste over alternativer klikk her. MiscellaneousDesc=Alle andre sikkerhetsrelaterte parametre er definert her. LimitsSetup=Grenser/presisjon LimitsDesc=Her angir du grenser og presisjon som skal brukes i programmet @@ -1079,11 +1107,12 @@ CurrentTranslationString=Gjeldende oversettelsesstreng WarningAtLeastKeyOrTranslationRequired=Et søkekriterie er nødvendig for nøkkel eller oversettelsesstreng NewTranslationStringToShow=Ny oversettelsesstreng som skal vises OriginalValueWas=Den originale oversettelsen er overskrevet. Original verdi var:

%s -TotalNumberOfActivatedModules=Totalt antall aktiverte moduler: %s / %s +TransKeyWithoutOriginalValue=Du tvang en ny oversettelse for oversettelsesnøkkelen ' %s' som ikke finnes i noen språkfiler +TotalNumberOfActivatedModules=Aktiverte applikasjoner/moduler: %s / %s YouMustEnableOneModule=Du må minst aktivere en modul ClassNotFoundIntoPathWarning=Klasse %s ikke funnet i PHP banen YesInSummer=Ja i sommer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Merk, bare følgende moduler blir åpnet for eksterne brukere (uansett tidligere tillatelser gitt disse brukerene) og bare hvis tillatelser ble gitt: SuhosinSessionEncrypt=Session lagring kryptert av Suhosin ConditionIsCurrently=Tilstand er for øyeblikket %s YouUseBestDriver=Du bruker driveren %s, som er den beste tilgjengelige for øyeblikket. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Regler for profesjonell ID MustBeUnique=Må være unik? MustBeMandatory=Obligatorisk å opprette tredjeparter? MustBeInvoiceMandatory=Obligatorisk å validere fakturaer? +TechnicalServicesProvided=Tekniske tjenester som tilbys ##### Webcal setup ##### WebCalUrlForVCalExport=En eksportlenke til %s formatet er tilgjengelig på følgende lenke: %s ##### Invoices ##### BillsSetup=Innstillinger for fakturamodul BillsNumberingModule=Nummereringsmodul for fakturaer og kreditnotaer BillsPDFModules=Fakturamaler +PaymentsPDFModules=Betalingsdokumentmodeller CreditNote=Kreditnota CreditNotes=Kreditnotaer ForceInvoiceDate=Tving fakturadato til godkjenningsdato @@ -1162,7 +1193,7 @@ WatermarkOnDraftSupplierProposal=Vannmerke på kladder på prisforespørsler lev BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Spør om bankkonto på prisforespørsel WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Spør om Lagerkilde for ordre ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Be om bankkonto for leverandørordre ##### Orders ##### OrdersSetup=Innstillinger for ordre OrdersNumberingModules=Nummereringsmodul for ordre @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Filtypene %s er ikke cachet av HTTP-server FilesOfTypeCompressed=Filtypene %s er undertrykket av HTTP-server FilesOfTypeNotCompressed=Filtypene %s er ikke undertrykket av HTTP-server CacheByServer=Server-cache +CacheByServerDesc=For eksempel ved å bruk Apache-direktivet "ExpiresByType image/gif A2592000" CacheByClient=Nettleser-cache CompressionOfResources=Undertrykkelse av HTTP-respons +CompressionOfResourcesDesc=For eksempel ved bruk av Apache-direktivet "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=En slik automatisk deteksjon er ikke mulig med nåværende nettlesere +DefaultValuesDesc=Her kan du definere/tvinge standardverdien du vil ha når du oppretter en ny post, og/eller standardfiltre eller sorteringsrekkefølge når du lister poster. +DefaultCreateForm=Standardverdier for nye objekter +DefaultSearchFilters=Standard søkefiltre +DefaultSortOrder=Standard sorteringsorden +DefaultFocus=Standard fokusfelt ##### Products ##### ProductSetup=Innstillinger for varemodul ServiceSetup=Oppsett av tjenester-modulen @@ -1339,7 +1377,7 @@ ViewProductDescInFormAbility=Visualisering av varebeskrivelser i skjemaer (eller MergePropalProductCard=I "Vedlagte filer"-fanen i "Varer og tjenester" kan du aktivere en opsjon for å flette PDF-varedokument til tilbud PDF-azur hvis varen/tjenesten er i tilbudet ViewProductDescInThirdpartyLanguageAbility=Visualisering av varebeskrivelser i tredjepartens språk UseSearchToSelectProductTooltip=Hvis du har mange varer (>100 000), kan du øke hastigeten ved å sette konstanten PRODUCT_DONOTSEARCH_ANYWHERE til 1 i Oppsett->Annet. Søket vil da begrenses til starten av søkestrengen -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +UseSearchToSelectProduct=Vent med å trykke på en tast før innholdet av vare-kombinasjonslisten er lastet (Dette kan øke ytelsen hvis du har mange varer) SetDefaultBarcodeTypeProducts=Standard strekkodetype for varer SetDefaultBarcodeTypeThirdParties=Standard strekkodetype for tredjeparter UseUnits=Definer måleenhet for kvantitet ved opprettelse av ordre, tilbud eller faktura @@ -1397,7 +1435,7 @@ SendingsSetup=Oppsett av forsendelsesmodulen SendingsReceiptModel=Modell for forsendelseskvitteringer SendingsNumberingModules=Nummereringsmodell for for sendelser SendingsAbility=Støtt forsendelsesskjemaer for kundeleveranser -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=I de fleste tilfeller er forsendelsesskjemaer bruket både som skjema for kundeleveranser (liste over varer som skal sendes) og skjema som er mottatt og signert av kunden. Så produktleveranse-kvitteringer er en duplisert funksjon og er sjelden aktivert. FreeLegalTextOnShippings=Fritekst på leveringer ##### Deliveries ##### DeliveryOrderNumberingModules=Nummereringsmodul for vareleveringskvitteringer @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Fakturadatoen brukes Buy=Kjøp Sell=Selg InvoiceDateUsed=Fakturadatoen brukes -YourCompanyDoesNotUseVAT=Firmaet ditt har blitt definert for å ikke bruke moms (Home - Setup - Firma / Foundation), så det er ingen moms alternativer for oppsett. +YourCompanyDoesNotUseVAT=Ditt firma er definert for å ikke bruke MVA (Hjem - Oppsett - Firma / Organisasjon), så det er ingen MVA-alternativer å sette opp. AccountancyCode=Regnskapskode AccountancyCodeSell=Kontokode for salg AccountancyCodeBuy=Kontokode for innkjøp @@ -1477,11 +1515,12 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Sett denne standardverdien automatisk for hendelse AGENDA_DEFAULT_FILTER_TYPE=Sett denne hendelsestypen automatisk i søkefilteret til Agenda-visning AGENDA_DEFAULT_FILTER_STATUS=Sett denne statustypen automatisk i søkefilteret til Agenda-visning AGENDA_DEFAULT_VIEW=Hvilken fane vil åpne som standard når du velger Agenda-menyen? -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) +AGENDA_NOTIFICATION=Aktiver hendelsesvarsling på brukernes nettlesere når hendelsesdatoen er nådd (hver bruker kan nekte dette fra sin nettleser) AGENDA_NOTIFICATION_SOUND=Aktiver lydvarsler +AGENDA_SHOW_LINKED_OBJECT=Vis koblet objekt i agendavisning ##### Clicktodial ##### ClickToDialSetup='Click To Dial' modul -ClickToDialUrlDesc=URL som kalles når man klikker på telefonikonet. I URL, kan du bruke koder
__ PHONETO __ som vil bli erstattet med telefonnummeret til personen du vil ringe
__ PHONEFROM __ som vil bli erstattet med telefonnummer for å ringe person (din)
__ lOGG __ som vil bli erstattet med clicktodial innlogging (definert på brukerkort )
__ PASS __ som vil bli erstattet med clicktodial passord (defineres på brukerkort ). +ClickToDialUrlDesc=Url som kalles når man klikker på telefonpiktogrammet. I URL kan du bruke koder
__ PHONETO __ som blir erstattet med telefonnummeret til personen som skal ringes
__ PHONEFROM __ som blir erstattet med telefonnummeret til den som ringer(din)
__ LOGIN __ som vil bli erstattet med clicktodial login (definert på brukerkort)
__ PASS __ som vil bli erstattet med clicktodial passord (definert på brukerkort). ClickToDialDesc=Denne modulen gjør telefonnumre klikkbare. Ved å klikke på dette ikonet vil telefonen din ringe opp nummeret. ClickToDialUseTelLink=Bruk kun en lenke "tlf:" for telefonnumre ClickToDialUseTelLinkDesc=Bruk denne metoden hvis brukerne har en softphone eller et programvaregrensesnitt installert på samme datamaskin som nettleseren, og kalles når du klikker på en link i nettleseren din som starter med "tel:". Hvis du trenger en full server-løsning (uten behov for lokal installasjon av programvare), må du sette denne på "Nei" og fylle neste felt. @@ -1509,11 +1548,11 @@ EndPointIs=SOAP-klienter må sende sine forespørsler til Dolibarr endepunkt til ##### API #### ApiSetup=Oppsett av API-modul ApiDesc=Ved å aktivere denne modulen, blir Dolibarr en REST-server for diverse web-tjenester -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Du kan utforske API'ene i URL +ApiProductionMode=Aktiver produksjonsmodus (dette vil aktivere bruk av en buffer for tjenestehåndtering) +ApiExporerIs=Du kan utforske og teste API'ene på URL OnlyActiveElementsAreExposed=Bare elementer fra aktiverte moduler er vist ApiKey=API-nøkkel -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +WarningAPIExplorerDisabled=API utforsker er deaktivert. API utforsker er ikke nødvendig for bruke API tjenester. Det er et verktøy for utviklere å finne/teste REST API-er. Hvis du trenger dette verktøyet, kan du gå inn i oppsett av modulen API REST og aktivere den. ##### Bank ##### BankSetupModule=Oppsett av Bankmodulen FreeLegalTextOnChequeReceipts=Fritekst på å sjekkvitteringer @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Generell visningsrekkefølge BankOrderES=Spansk BankOrderESDesc=Spansk visningsrekkefølge ChequeReceiptsNumberingModule=Nummereringsmodul for sjekk-kvitteringer - ##### Multicompany ##### MultiCompanySetup=Oppsett av multi-selskap-modulen ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Veiviser for å bygge database-backup dumpfil SomethingMakeInstallFromWebNotPossible=Installasjon av ekstern modul er ikke mulig fra webgrensesnittet på grunn av: SomethingMakeInstallFromWebNotPossible2=På grunn av dette, er prosessen for å oppgradere beskrevet her, bare manuelle trinn en privilegert bruker kan gjøre. InstallModuleFromWebHasBeenDisabledByFile=Administrator har deaktivert muligheten for å installere eksterne moduler. Administrator må fjerne filen %s for å tillate dette. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Ved installering eller bygging av en ekstern modul fra programmet må modulfilene lagres i katalogen %s. Hvis du vil ha denne katalogen behandlet av Dolibarr, må du sette opp conf/conf.php for å legge til 2 direktivlinjer:
$dolibarr_main_url_root_alt = '/custom';
$dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Fremhev tabellinjer når musen flyttes over HighlightLinesColor=Uthev fargen på linjen når musen føres over (holdes tom for ingen uthevning) TextTitleColor=Farge på sidetittel LinkColor=Farge på lenker -PressF5AfterChangingThis=Trykk F5 eller slett nettleserens cache for at endringene skal tre i kraft +PressF5AfterChangingThis=Trykk CTRL+F5 på tastaturet eller tøm nettlesercache når du har endret denne verdien for å få den til å fungere effektivt NotSupportedByAllThemes=Vil virke med kjernetemaer, vil kanskje ikke virke med eksterne temaer BackgroundColor=Bakgrunnsfarge TopMenuBackgroundColor=Bakgrunnsfarge for toppmeny @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Frist for beskjed (Feriesøknaden må sendes inn før denne NbAddedAutomatically=Antall dager pr. måned som blir lagt til av brukerenes tellere(automatisk) EnterAnyCode=Dette feltet inneholder en referanse til identifikasjon av linje. Bruk kun verdier uten spesialkarakterer UnicodeCurrency=Her legger du inn en liste med Ascii-verdier, som representerer et valutasymbol. For eksempel: $ = [36], Brasilsk real R$ = [82,36], € = [8364] +ColorFormat=RGB-fargen er i HEX-format, for eksempel: FF0000 PositionIntoComboList=Plassering av linje i kombinasjonslister SellTaxRate=Salgs-skattesats RecuperableOnly=Ja for MVA "Non Perçue Récupérable", gjelder kun Frankrike. Nei i alle andre tilfeller. @@ -1612,7 +1651,7 @@ FixTZ=Tidssone offset FillFixTZOnlyIfRequired=Eksempel: +2 (fylles kun ut ved problemer) ExpectedChecksum=Forventet sjekksum CurrentChecksum=Gjeldende sjekksum -ForcedConstants=Required constant values +ForcedConstants=Obligatoriske konstante verdier MailToSendProposal=For å sende tilbud MailToSendOrder=For å sende kundeordre MailToSendInvoice=For å sende kundefaktura @@ -1624,11 +1663,11 @@ MailToSendSupplierInvoice=For å sende leverandørfaktura MailToSendContract=For å sende en kontrakt MailToThirdparty=For å sende epost fra tredjepart-side ByDefaultInList=Vis som standard for liste -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=Du bruker siste stabile versjon TitleExampleForMajorRelease=Eksempel på melding du kan bruke for å annonsere større oppdateringer (du kan bruke denne på dine websider) TitleExampleForMaintenanceRelease=Eksempel på beskjed du kan bruke for å annonsere denne vedlikeholdsversjonen (du kan bruke den på dine websider) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s er tilgjengelig. Versjon %s er en stor utgivelse med en rekke nye funksjoner for både brukere og utviklere. Du kan laste ned fra nedlastingsområdet https://www.dolibarr.org portal (underkatalog Stabile versjoner). Du kan lese Endringslogg for en komplett liste over endringer. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s er tilgjengelig. Versjon %s er en vedlikeholdsversjon, så den inneholder bare reparasjoner av bugs. Vi anbefaler alle å bruke en eldre versjon for å oppgradere til denne. Som enhver vedlikeholdsutgivelse, er det ingen nye funksjoner, eller datastruktur-endringer i denne versjonen. Du kan laste ned fra nedlastingsområdet https://www.dolibarr.org portal (underkatalog Stabile versjoner). Du kan lese Endringslogg for en komplett liste over endringer. MultiPriceRuleDesc=Når alternativet "Flere prisnivået per vare/tjeneste" er på, kan du definere forskjellige priser (ett pr prisnivå) for hvert produkt. For å spare tid, kan du lage en regel som gir pris for hvert nivå autokalkulert i forhold til prisen på første nivå, slik at du bar legger inn en pris for hvert produkt. Denne siden er laget for å spare tid og kan være nyttig hvis prisene for hvert nivå står i forhold til første nivå. Du kan ignorere denne siden i de fleste tilfeller. ModelModulesProduct=Maler for produkt-dokumenter ToGenerateCodeDefineAutomaticRuleFirst=For å være i stand til å generere automatiske koder, må du først definere program for å automatisk definere strekkodenummer. @@ -1649,17 +1688,21 @@ AddOtherPagesOrServices=Legg til andre sider eller tjenester AddModels=Legg til dokument eller nummereringsmaler AddSubstitutions=Legg til tast-erstatninger DetectionNotPossible=Detektering ikke mulig -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) +UrlToGetKeyToUseAPIs=Url til API-nøkkel (når nøkkel er mottatt blir den lagret på databasebruker-tabell og må brukes for hvert API-kall) ListOfAvailableAPIs=Liste over tilgjengelige API'er activateModuleDependNotSatisfied=Modul "%s" avhenger av modulen "%s", som mangler, slik at modulen "%1$s" kanskje ikke virker korrekt. Installer modulen "%2$s" eller deaktiver modulen "%1$s" hvis du vil unngå ubehagelige overraskelser CommandIsNotInsideAllowedCommands=Kommandoen du prøver å kjøre er ikke i listen over tillatte kommandoer definert i parameter $dolibarr_main_restrict_os_commands i conf.php filen. LandingPage=Landingsside SamePriceAlsoForSharedCompanies=Hvis du bruker en multiselskapsmodul, og har valgt "En pris", vil prisen være den samme for alle selskaper om varene er delt mellom miljøer -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. +ModuleEnabledAdminMustCheckRights=Modulen er aktivert. Tillatelser for aktiverte module(r) ble kun gitt til admin-brukere. Du må kanskje gi tillatelser til andre brukere eller grupper manuelt om nødvendig. UserHasNoPermissions=Denne brukeren har ingen tillatelser TypeCdr=Bruk "Ingen" hvis dato for betalingsfrist er fakturadato pluss en delta i dager (delta er feltet "Antall dager")
Bruk "På slutten av måneden", dersom det etter delta, at dato må økes for å komme til slutten av måneden (+ en valgfri "Offset" i dager)
Bruk "Nåværene/Neste" for å få betalingsdato til å være den første N-te i måneden (N lagres i feltet "Antall dager") +BaseCurrency=Referansevaluta for selskapet (gå inn i oppsett av firma for å endre dette) +WarningNoteModuleInvoiceForFrenchLaw=Denne modulen %s er i samsvar med franske lover (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Denne modulen %s er i samsvar med franske lover (Loi Finance 2016) fordi modulen Ikke reversible logger er automatisk aktivert. +WarningInstallationMayBecomeNotCompliantWithLaw=Du prøver å installere modulen %s som er en ekstern modul. Aktivering av en ekstern modul betyr at du stoler på utgiveren av modulen, og at du er sikker på at denne modulen ikke endrer oppførselen til applikasjonen din negativt, og er i overensstemmelse med lovene i ditt land (%s). Hvis modulen gir en ulovlig funksjon, blir du ansvarlig for bruken av en ulovlig programvare. ##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +ResourceSetup=Oppsett av Ressursmodulen +UseSearchToSelectResource=Bruk et søkeskjema for å velge en ressurs (i stedet for en nedtrekksliste). +DisabledResourceLinkUser=Deaktivert ressurslink til bruker +DisabledResourceLinkContact=Deaktivert ressurslink til kontakt diff --git a/htdocs/langs/nb_NO/agenda.lang b/htdocs/langs/nb_NO/agenda.lang index f8492204fa1..879be9bcce2 100644 --- a/htdocs/langs/nb_NO/agenda.lang +++ b/htdocs/langs/nb_NO/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=Hendelses-ID Actions=Handlinger Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendaer LocalAgenda=Intern kalender ActionsOwnedBy=Hendelse tilhører @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Faktura %s slettet InvoicePaidInDolibarr=Faktura %s endret til betalt InvoiceCanceledInDolibarr=Faktura %s kansellert MemberValidatedInDolibarr=Medlem %s validert +MemberModifiedInDolibarr=Medlem %s endret MemberResiliatedInDolibarr=Medlem %s terminert MemberDeletedInDolibarr=Medlem %s slettet MemberSubscriptionAddedInDolibarr=Abonnement for medlem %s lagt til ShipmentValidatedInDolibarr=Leveranse %s validert -ShipmentClassifyClosedInDolibarr=Levering %s klassifisert som fakturert -ShipmentUnClassifyCloseddInDolibarr=Levering %s klassifisert som gjenåpnet +ShipmentClassifyClosedInDolibarr=Forsendelse %s klassifisert fakturert +ShipmentUnClassifyCloseddInDolibarr=Forsendelse %s klassifisert gjenåpnet ShipmentDeletedInDolibarr=Leveranse %s slettet OrderCreatedInDolibarr=Ordre %s opprettet OrderValidatedInDolibarr=Ordre %s validert @@ -74,6 +76,7 @@ ProposalDeleted=Tilbud slettet OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet ##### End agenda events ##### +AgendaModelModule=Dokumentmaler for hendelse DateActionStart=Startdato DateActionEnd=Sluttdato AgendaUrlOptions1=Du kan også bruke følgende parametere til å filtrere listen: diff --git a/htdocs/langs/nb_NO/banks.lang b/htdocs/langs/nb_NO/banks.lang index e2af0d1a3c2..2caee4fc8b8 100644 --- a/htdocs/langs/nb_NO/banks.lang +++ b/htdocs/langs/nb_NO/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Er du sikker på at du vil fjerne lenken mellom oppfø ListBankTransactions=Liste over bankoppføringer IdTransaction=Transaksjons-ID BankTransactions=Bankoppføringer +BankTransaction=Bankoppføring ListTransactions=List oppføringer ListTransactionsByCategory=List oppføringer/kategori TransactionsToConciliate=Oppføringer til avstemming @@ -74,13 +75,13 @@ Conciliate=Avstem Conciliation=Avstemming ReconciliationLate=Avstemming forsinket IncludeClosedAccount=Ta med lukkede konti -OnlyOpenedAccount=Bare åpne konti +OnlyOpenedAccount=Kun åpne konti AccountToCredit=Konto å kreditere AccountToDebit=Konto å debitere DisableConciliation=Slå av avstemmingsfunksjon for denne kontoen ConciliationDisabled=Avstemmingsfunksjon slått av LinkedToAConciliatedTransaction=Lenket til en avstemt oppføring -StatusAccountOpened=Åpnet +StatusAccountOpened=Åpent StatusAccountClosed=Lukket AccountIdShort=Nummer LineRecord=Transaksjon @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Returnert sjekk og faktura gjenåpnet BankAccountModelModule=Dokumentmaler for bankkontoer DocumentModelSepaMandate=Mal for SEPA-mandat. Gjelder kun EU. DocumentModelBan=Mal for å skrive ut en side med BAN-informasjon +NewVariousPayment=Ny varierende betaling +VariousPayment=Varierende betaling +VariousPayments=Varierende betalinger +ShowVariousPayment=Vis varierende betaling diff --git a/htdocs/langs/nb_NO/bills.lang b/htdocs/langs/nb_NO/bills.lang index b2ad2eb4d96..6f6766ee038 100644 --- a/htdocs/langs/nb_NO/bills.lang +++ b/htdocs/langs/nb_NO/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Kundefakturaer BillsCustomer=Kundefaktura BillsSuppliers=Leverandørfakturaer BillsCustomersUnpaid=Ubetalte kundefakturaer -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Ubetalte kundefakturaer for %s BillsSuppliersUnpaid=Ubetalte leverandørfakturaer -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Ubetalte leverandørfakturaer for %s BillsLate=Forfalte betalinger BillsStatistics=Kunde fakturastatistikker BillsStatisticsSuppliers=Leverandør fakturastatistikker @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Deaktivert fordi den ikke kan slettes InvoiceStandard=Standardfaktura InvoiceStandardAsk=Standardfaktura InvoiceStandardDesc=Denne fakturatypen er den vanligste fakturaen. -InvoiceDeposit=Innskuddsfaktura -InvoiceDepositAsk=Innskuddsfaktura -InvoiceDepositDesc=Denne typen faktura lages når et innskudd har blitt mottatt. +InvoiceDeposit=Nedbetalingsfaktura +InvoiceDepositAsk=Nedbetalingsfaktura +InvoiceDepositDesc=Denne typen faktura lages når en forskuddsbetaling er mottatt. InvoiceProForma=Proforma faktura InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura er et bilde av en ekte faktura, men har ingen verdi i regnskapsføring. @@ -63,7 +63,7 @@ paymentInInvoiceCurrency=i faktura-valuta PaidBack=Tilbakebetalt DeletePayment=Slett betaling ConfirmDeletePayment=Er du sikker på at du vil slette denne betalingen? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReduc=Ønsker du å konvertere denne %s til en absolutt rabatt?
Beløpet vil bli lagret og kan brukes som en rabatt på en nåværende eller fremtidig faktura for denne kunden. SupplierPayments=Leverandørbetalinger ReceivedPayments=Mottatte betalinger ReceivedCustomersPayments=Betalinger mottatt fra kunder @@ -78,7 +78,7 @@ PaymentMode=Betalingsmåte PaymentTypeDC=Debet/kredit-kort PaymentTypePP=PayPal IdPaymentMode=Betalingstype (ID) -CodePaymentMode=Payment type (code) +CodePaymentMode=Betalingstype (kode) LabelPaymentMode=Betalingstype (etikett) PaymentModeShort=Betalingstype PaymentTerm=Betalingsbetingelser @@ -106,7 +106,7 @@ SendRemindByMail=E-postpåminnelse DoPayment=Legg inn betaling DoPaymentBack=Legg inn tilbakebetaling ConvertToReduc=Konverter til framtidig rabatt -ConvertExcessReceivedToReduc=Convert excess received into future discount +ConvertExcessReceivedToReduc=Konverterer for mye innbetalt til fremtidig rabatt EnterPaymentReceivedFromCustomer=Legg inn betaling mottatt fra kunde EnterPaymentDueToCustomer=Lag purring til kunde DisabledBecauseRemainderToPayIsZero=Slått av fordi restbeløpet er null @@ -115,7 +115,7 @@ BillStatus=Fakturastatus StatusOfGeneratedInvoices=Status for genererte fakturaer BillStatusDraft=Kladd (må valideres) BillStatusPaid=Betalt -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Kreditnota refusjon eller konvertert til rabatt BillStatusConverted=Betalt (klar for siste faktura) BillStatusCanceled=Tapsført BillStatusValidated=Validert (må betales) @@ -126,8 +126,8 @@ BillStatusClosedUnpaid=Lukket (ubetalt) BillStatusClosedPaidPartially=Delbetalt BillShortStatusDraft=Kladd BillShortStatusPaid=Betalt -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Behandlet +BillShortStatusPaidBackOrConverted=Refundert eller konvertert +BillShortStatusConverted=Betalt BillShortStatusCanceled=Tapsført BillShortStatusValidated=Validert BillShortStatusStarted=Startet @@ -154,13 +154,13 @@ FoundXQualifiedRecurringInvoiceTemplate=Fant %s gjentagende-fakturamal(er) kvali NotARecurringInvoiceTemplate=Ikke en mal for gjentagende faktura NewBill=Ny faktura LastBills=Siste %s fakturaer -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastCustomersBills=Siste %s kundefakturaer +LastSuppliersBills=Siste %s leverandørfakturaer AllBills=Alle fakturaer OtherBills=Andre fakturaer DraftBills=Fakturakladder CustomersDraftInvoices=Kunde fakturamal -SuppliersDraftInvoices=Supplier draft invoices +SuppliersDraftInvoices=Leverandør-fakturamal Unpaid=Ubetalt ConfirmDeleteBill=Er du sikker på at du vil slette denne fakturaen? ConfirmValidateBill=Er du sikker på at du vil validere denne fakturaen med referanse %s? @@ -198,16 +198,16 @@ ShowBill=Vis faktura ShowInvoice=Vis faktura ShowInvoiceReplace=Vis erstatningsfaktura ShowInvoiceAvoir=Vis kreditnota -ShowInvoiceDeposit=Vis innskuddsfaktura +ShowInvoiceDeposit=Vis nedbetalingsfaktura ShowInvoiceSituation=Vis delfaktura ShowPayment=Vis betaling AlreadyPaid=Allerede betalt AlreadyPaidBack=Allerede tilbakebetalt -AlreadyPaidNoCreditNotesNoDeposits=Allerede betalt (uten kreditnotater og innskudd) +AlreadyPaidNoCreditNotesNoDeposits=Allerede betalt (uten kreditnotater og nedbetalinger) Abandoned=Tapsført RemainderToPay=Restbeløp RemainderToTake=Restbeløp -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Restbeløp å refundere Rest=Venter AmountExpected=Beløp purret ExcessReceived=Overskytende @@ -270,11 +270,11 @@ RelativeDiscount=Relativ rabatt GlobalDiscount=Global rabatt CreditNote=Kreditnota CreditNotes=Kreditnotaer -Deposit=Innskudd -Deposits=Innskudd +Deposit=Nedbetaling +Deposits=Nedbetalinger DiscountFromCreditNote=Rabatt fra kreditnota %s -DiscountFromDeposit=Betalinger fra innskuddsfaktura %s -DiscountFromExcessReceived=Payments from excess received of invoice %s +DiscountFromDeposit=Nedbetalinger fra faktura %s +DiscountFromExcessReceived=Overbetaling mottatt for faktura %s AbsoluteDiscountUse=Denne typen kreditt kan brukes på faktura før den godkjennes CreditNoteDepositUse=Fakturaen m valideres for å kunne bruke denne typen kredit NewGlobalDiscount=Ny absolutt rabatt @@ -282,8 +282,8 @@ NewRelativeDiscount=Ny relativ rabatt NoteReason=Notat/Årsak ReasonDiscount=Årsak DiscountOfferedBy=Innrømmet av -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Rabatter tilgjengelig +DiscountAlreadyCounted=Rabatter allerede gitt BillAddress=Fakturaadresse HelpEscompte=Denne rabatten er gitt fordi kunden betalte før forfall. HelpAbandonBadCustomer=Dette beløpet er tapsført (dårlig kunde) og betraktes som tap. @@ -326,7 +326,7 @@ ListOfNextSituationInvoices=Liste over kommende delfakturaer FrequencyPer_d=Hver %s dag FrequencyPer_m=Hver %s måned FrequencyPer_y=Hver %s år -toolTipFrequency=Examples:
Set 7, Day: give a new invoice every 7 days
Set 3, Month: give a new invoice every 3 month +toolTipFrequency=Eksempler:
Sett 7, Dag: gir en faktura hver 7. dag
Sett 3, Måned: gir en ny faktura hver 3. måned NextDateToExecution=Dato for neste fakturagenerering DateLastGeneration=Dato for siste generering MaxPeriodNumber=Maks ant for fakturagenerering @@ -336,12 +336,12 @@ InvoiceAutoValidate=Valider fakturaer automatisk GeneratedFromRecurringInvoice=Generert fra gjentagende-fakturamal %s DateIsNotEnough=Dato ikke nådd enda InvoiceGeneratedFromTemplate=Faktura %s generert fra gjentagende-fakturamal %s -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +WarningInvoiceDateInFuture=Advarsel, fakturadato er høyere enn dagens dato +WarningInvoiceDateTooFarInFuture=Advarsel, er fakturadato for langt fra dagens dato # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Forfall ved mottak +PaymentConditionRECEP=Forfall ved mottak PaymentConditionShort30D=30 dager PaymentCondition30D=30 dager PaymentConditionShort30DENDMONTH=30 dager etter månedsslutt @@ -358,12 +358,12 @@ PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% i forskudd, 50%% ved levering PaymentConditionShort10D=10 dager PaymentCondition10D=10 dager -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month +PaymentConditionShort10DENDMONTH=10 dager etter månedens slutt +PaymentCondition10DENDMONTH=Innen 10 dager etter slutten av måneden PaymentConditionShort14D=14 dager PaymentCondition14D=14 dager -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month +PaymentConditionShort14DENDMONTH=14 dager etter månedens slutt +PaymentCondition14DENDMONTH=Innen 14 dager etter slutten av måneden FixAmount=Fast beløp VarAmount=Variabelt beløp # PaymentType @@ -433,7 +433,7 @@ ChequeDeposits=Sjekkinnskudd Cheques=Sjekker DepositId=Innskudds-ID NbCheque=Antall sjekker -CreditNoteConvertedIntoDiscount=This %s has been converted into %s +CreditNoteConvertedIntoDiscount=Denne%s er blitt konvertert til %s UsBillingContactAsIncoiveRecipientIfExist=Bruk kontaktpersonens adresse i stedet for tredjepartens adresse ShowUnpaidAll=Vis alle ubetalte fakturaer ShowUnpaidLateOnly=Vis kun forfalte fakturaer @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Kan ikke fjerne betalingen siden det er mins ExpectedToPay=Forventet innbetaling CantRemoveConciliatedPayment=Kan ikke fjerne avtalt beløp PayedByThisPayment=Betales av denne innbetalingen -ClosePaidInvoicesAutomatically=Klassifiser alle fakturaer (alle typer) som betalt +ClosePaidInvoicesAutomatically=Klassifiser "Betalt" alle standard-, forskuddsbetalings- eller erstatningsfakturaer som er fullstendig betalt. ClosePaidCreditNotesAutomatically=Klassifiser alle fakturaer som betalt ClosePaidContributionsAutomatically=Klassifiser alle fullt betalte sosial- og regnskapsbidrag som "betalt" AllCompletelyPayedInvoiceWillBeClosed=Alle faktura uten restbeløp vil bli automatisk satt til "betalt". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Du må først lage en standardfaktura og s PDFCrabeDescription=Fakturamal Crabe. En komplett mal (Støtter MVA, rabatter, betalingsbetingelser, logo, osv...) PDFCrevetteDescription=PDF fakturamal Crevette. En komplett mal for delfaktura TerreNumRefModelDesc1=Returnerer nummer med format %syymm-nnnn for standardfaktura og %syymm-nnnn for kreditnota, der yy er året, mm måned og nnnn er et løpenummer som starter på 0+1. -MarsNumRefModelDesc1=Returnerer et nummer med formatet %sååmm-nnnn for vanlige fakturaer, %sååmm-nnnn for erstatningsfakturaer, %sååmm-nnnn for innskuddsfakturaer og %sååmm-nnnn for kreditnotaer der åå er året, mm måned og nnnn er en sekvens uten brudd og ingen retur til 0 +MarsNumRefModelDesc1=Returnerer et nummer med format %syymm-nnnn for standardfakturaer, %syymm-nnnn for erstatningsfakturaer, %syymm-nnnn for nedbetalingsfakturaer og %syymm-nnnn for kreditnotater hvor yy er år, mm er måned og nnnn er en sekvens uten pause og ingen retur til 0 TerreNumRefModelError=En faktura som starter med $sååmm finnes allerede og er ikke kompatibel med denne nummereringsmodulen. Du må slette den eller gi den ett nytt navn for å aktivere denne modulen. -CactusNumRefModelDesc1=Returnerer et nummer med formatet %syymm-nnnn for standardfakturaer, %syymm-nnnn for kreditnotaer og %syymm-nnnn for innskuddsfakturaer der yy er året, mm måned og nnnn er en sekvens med ingen opphold og ingen retur til 0 +CactusNumRefModelDesc1=Returnerer et nummer med format %syymm-nnnn for standardfakturaer, %syymm-nnnn for kreditnotater og %syymm-nnnn for nedbetalingsfakturaer hvor yy er år, mm er måned og nnnn er en sekvens uten pause og ingen retur til 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representant for oppfølging av kundefaktura TypeContact_facture_external_BILLING=Kundens fakturakontakt diff --git a/htdocs/langs/nb_NO/bookmarks.lang b/htdocs/langs/nb_NO/bookmarks.lang index d5e0bd37b98..19b49f9cac3 100644 --- a/htdocs/langs/nb_NO/bookmarks.lang +++ b/htdocs/langs/nb_NO/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Legg denne siden til bokmerker +AddThisPageToBookmarks=Legg til nåværende side i bokmerker Bookmark=Bokmerke Bookmarks=Bokmerker +ListOfBookmarks=Oversikt over bokmerker +EditBookmarks=Vis/rediger bokmerker NewBookmark=Legg til bokmerke ShowBookmark=Vis bokmerke OpenANewWindow=Åpne et nytt vindu @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Nytt vindu BookmarkTargetReplaceWindowShort=Gjeldende vindu BookmarkTitle=Bokmerketittel UrlOrLink=URL -BehaviourOnClick=Oppførsel når en URL blir klikket på +BehaviourOnClick=Oppførsel når et bokmerke-URL er valgt CreateBookmark=Opprett bokmerke SetHereATitleForLink=Angi tittel for bokmerket UseAnExternalHttpLinkOrRelativeDolibarrLink=Bruk en ekstern http URL eller en relativ Dolibarr URL diff --git a/htdocs/langs/nb_NO/boxes.lang b/htdocs/langs/nb_NO/boxes.lang index 03f98fb9f3e..62178b378f9 100644 --- a/htdocs/langs/nb_NO/boxes.lang +++ b/htdocs/langs/nb_NO/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Innloggingsinformasjon BoxLastRssInfos=Rss informasjon BoxLastProducts=Siste %s produkter/tjenester BoxProductsAlertStock=Varsling for lavt lagernivå @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Siste %s registrerte leverandører BoxTitleLastModifiedSuppliers=Siste %s endrede leverandører BoxTitleLastModifiedCustomers=Siste %s endrede kunder BoxTitleLastCustomersOrProspects=Siste %s endrede kunder eller prospekter -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Siste %s kundefakturaer +BoxTitleLastSupplierBills=Siste %s leverandørfakturaer BoxTitleLastModifiedProspects=Siste %s endrede prospekter BoxTitleLastModifiedMembers=Siste %s medlemmer BoxTitleLastFicheInter=Siste %s endrede intervensjoner @@ -51,12 +52,12 @@ ClickToAdd=Klikk her for å legge til. NoRecordedCustomers=Ingen registrerte kunder NoRecordedContacts=Ingen registrerte kontakter NoActionsToDo=Ingen åpne handlinger -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Ingen registrerte kundeordre NoRecordedProposals=Ingen registrerte tilbud -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices -NoModifiedSupplierBills=No recorded supplier invoices +NoRecordedInvoices=Ingen registrerte kundefakturaer +NoUnpaidCustomerBills=Ingen ubetalte kundefakturaer +NoUnpaidSupplierBills=Ingen ubetalte leverandørfakturaer +NoModifiedSupplierBills=Ingen registrerte leverandørfakturaer NoRecordedProducts=Ingen registrerte varer/tjenester NoRecordedProspects=Ingen registrerte prospekter NoContractedProducts=Ingen innleide varer/tjenester @@ -82,3 +83,4 @@ ForCustomersOrders=Kundeordrer ForProposals=Tilbud LastXMonthRolling=De siste %s måneders omsetning ChooseBoxToAdd=Legg widget til i kontrollpanelet +BoxAdded=Widget ble lagt til i kontrollpanelet ditt diff --git a/htdocs/langs/nb_NO/commercial.lang b/htdocs/langs/nb_NO/commercial.lang index 04c4e14c19d..f9adec632f4 100644 --- a/htdocs/langs/nb_NO/commercial.lang +++ b/htdocs/langs/nb_NO/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Vis oppgave ShowAction=Vis handling ActionsReport=Handlingsrapport ThirdPartiesOfSaleRepresentative=Tredjeparter med salgsrepresentant +SaleRepresentativesOfThirdParty=Salgsrepresentanter fra tredjepart SalesRepresentative=Salgsrepresentant SalesRepresentatives=Salgsrepresentanter SalesRepresentativeFollowUp=Salgsrepresentant (oppfølging) diff --git a/htdocs/langs/nb_NO/compta.lang b/htdocs/langs/nb_NO/compta.lang index b7db78f3f7c..888cfd798cd 100644 --- a/htdocs/langs/nb_NO/compta.lang +++ b/htdocs/langs/nb_NO/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Beløpene vist her er kalkulert ved hjelp Param=Oppsett RemainingAmountPayment=Restbeløp: Account=Konto -Accountparent=Overordnet konto -Accountsparent=Overordnede kontoer +Accountparent=Foreldrekonto +Accountsparent=Foreldrekontoer Income=Inntekt Outcome=Utgift ReportInOut=Inntekt/Utgifter @@ -56,6 +56,7 @@ MenuTaxAndDividends=Skatter og utbytte MenuSocialContributions=Skatter/avgifter MenuNewSocialContribution=Ny skatt/avgift NewSocialContribution=Ny skatt/avgift +AddSocialContribution=Legg til sosiale utgifter eller skatter ContributionsToPay=Skatter og avgifter som skal betales AccountancyTreasuryArea=Regnskap/kapital-område NewPayment=Ny betaling @@ -82,12 +83,12 @@ LT2PaymentES=IRPF Betaling LT2PaymentsES=IRPF Betalinger VATPayment=MVA.betaling VATPayments=MVA.betalinger -VATRefund=Sales tax refund +VATRefund=Mva-betaling Refund=Refusjon SocialContributionsPayments=Skatter- og avgiftsbetalinger ShowVatPayment=Vis MVA betaling TotalToPay=Sum å betale -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account +BalanceVisibilityDependsOnSortAndFilters=Balanse er synlig i denne listen bare hvis tabellen er sortert stigende etter %s og filtrert for en bankkonto CustomerAccountancyCode=Kundens regnskapskode SupplierAccountancyCode=Leverandørens regnskapskode CustomerAccountancyCodeShort=Kundens regnskapskode @@ -134,8 +135,8 @@ RulesResultDue=- Inkluderer utestående fakturaer, utgifter, MVA og donasjoner, RulesResultInOut=- Inkluderer betalinger gjort mot fakturaer, utgifter, MVA og lønn.
Basert på betalingsdato. Donasjonsdato for donasjoner RulesCADue=- Inkluderer kundens forfalte fakturaer, enten de er betalt eller ikke.
Basert på valideringsdatoen til disse fakturaene.
RulesCAIn=- Inkluderer alle betalinger av fakturaer mottatt fra klienter.
- Er basert på betalingsdatoen for disse fakturaene
-DepositsAreNotIncluded=- Innskuddsfakturaer er ikke inkludert -DepositsAreIncluded=- Innskuddsfakturaer er inkludert +DepositsAreNotIncluded=- Nedbetalingsfakturaer er ikke inkludert +DepositsAreIncluded=- Nedbetalingsfakturaer er inkludert LT2ReportByCustomersInInputOutputModeES=Rapport over tredjepart IRPF LT1ReportByCustomersInInputOutputModeES=Rapport etter tredjepart RE VATReport=MVA rapport @@ -169,7 +170,7 @@ DescSellsJournal=Salgsjournal DescPurchasesJournal=Kjøpsjournal InvoiceRef=Faktura ref. CodeNotDef=Ikke definert -WarningDepositsNotIncluded=Innskuddsfakturaer er ikke inkludert i denne versjonen med denne regnskapsmodulen. +WarningDepositsNotIncluded=Nedbetalingsfakturaer er ikke inkludert i denne versjonen med denne regnskapsmodulen. DatePaymentTermCantBeLowerThanObjectDate=Betalingsdato kan ikke være før objektdato Pcg_version=Kontomodeller Pcg_type=Kontoplan type @@ -186,22 +187,25 @@ CalculationRuleDescSupplier=Velg utregningsmetode som gir leverandør forventet TurnoverPerProductInCommitmentAccountingNotRelevant=Omsetningsrapport pr. produkt, er ikke relevant når du bruker en kontantregnskap-modus. Denne rapporten er bare tilgjengelig når du bruker engasjement regnskap modus (se oppsett av regnskap modul). CalculationMode=Kalkuleringsmodus AccountancyJournal=Regnskapskode journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_SOLD_ACCOUNT=Standard regnskapskonto for å utgående MVA - MVA på salg (brukes hvis ikke definert i oppsett av MVA-ordboken) +ACCOUNTING_VAT_BUY_ACCOUNT=Standard regnskapskonto for å inngående MVA - MVA på kjøp (brukes hvis ikke definert i oppsett av MVA-ordboken) ACCOUNTING_VAT_PAY_ACCOUNT=Standard regnskapskonto for MVA.betaling -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Regnskapskonto brukt til kunde-tredjepart +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert kunde-regnskapskonto på tredjepart ikke er definert +ACCOUNTING_ACCOUNT_SUPPLIER=Regnskapskonto brukt til leverandør-tredjepart +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedikert regnskapskonto definert på tredjepartskort som vil bli brukt til regnskapsføring i sub-hovedbok, denne er for hovedboken eller som standardverdi av sub-hovedboksregnskap hvis dedikert leverandør-regnskapskonto på tredjepart ikke er definert CloneTax=Klon skatt/avgift ConfirmCloneTax=Bekreft kloning av skatt/avgiftsbetaling CloneTaxForNextMonth=Klon for neste måned SimpleReport=Enkel rapport -AddExtraReport=Extra reports (add foreign and national customer report) +AddExtraReport=Ekstrarapporter (legg til internasjonale og nasjonale kunderapporter) OtherCountriesCustomersReport=Rapport over utenlandske kunder BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Basert på de at to første bokstavene i MVA-nummeret er ulik ditt eget selskaps landskode SameCountryCustomersWithVAT=Rapport over nasjonale kunder BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Basert på de at to første bokstavene i MVA-nummeret er det samme som ditt eget selskaps landskode LinkedFichinter=Knytt til en intervensjon ImportDataset_tax_contrib=Skatter/avgifter -ImportDataset_tax_vat=Vat payments +ImportDataset_tax_vat=Mva-betalinger ErrorBankAccountNotFound=Feil: Bankkonto ikke funnet FiscalPeriod=Regnskapsperiode +ListSocialContributionAssociatedProject=Liste over sosiale bidrag knyttet til prosjektet diff --git a/htdocs/langs/nb_NO/contracts.lang b/htdocs/langs/nb_NO/contracts.lang index 737492bd6aa..289ab915595 100644 --- a/htdocs/langs/nb_NO/contracts.lang +++ b/htdocs/langs/nb_NO/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Denne listen inneholder kun tjenester av kontrakte StandardContractsTemplate=Standard kontraktskjema ContactNameAndSignature=For %s, navn og signatur: OnlyLinesWithTypeServiceAreUsed=Kun linjer med type "Service" vi bli klonet. +CloneContract=Klon kontrakt +ConfirmCloneContract=Er du sikker på at du vil klone kontrakten %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Salgsrepresentant som signerer kontrakten diff --git a/htdocs/langs/nb_NO/cron.lang b/htdocs/langs/nb_NO/cron.lang index 80a425cbd67..bcd00b25a15 100644 --- a/htdocs/langs/nb_NO/cron.lang +++ b/htdocs/langs/nb_NO/cron.lang @@ -17,15 +17,15 @@ CronMethodDoesNotExists=Klasse %s inneholder ingen metode %s # Menu EnabledAndDisabled=Aktivert og deaktivert # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Siste kjøreresultat +CronLastResult=Siste resultatkode CronCommand=Kommando CronList=Planlagte jobber CronDelete=Slett planlagte jobber CronConfirmDelete=Er du sikker på at du vil slette disse planlagte jobbene? CronExecute=Start planlagt jobb CronConfirmExecute=Er du sikker på at du vil kjøre disse planlagte jobbene nå? -CronInfo=Planlagte jobber-modulen gir deg mulighet til å utføre jobber til ønsket tid +CronInfo=Planlagt jobb -modul gjør det mulig å planlegge jobber for å utføre dem automatisk. Jobber kan også startes manuelt. CronTask=Jobb CronNone=Ingen CronDtStart=Ikke før @@ -57,12 +57,12 @@ CronStatusActiveBtn=Aktiver CronStatusInactiveBtn=Deaktiver CronTaskInactive=Denne jobben er deaktivert CronId=ID -CronClassFile=Klasser (filnavn.klasse.php) -CronModuleHelp=Navn på Dolibarr-modul katalogen (også arbeid med ekstern Dolibarr-modul).
For eksempel hente-metode for Dolibarr Product objekt /htdocs/product/class/product.class.php, er verdien av modulen vare -CronClassFileHelp=Filnavn å laste.
For eksempel hente metode for Dolibarr Vare object/htdocs/vare/klasse/product.class.php, er verdien av klassen filnavnet product.class.php -CronObjectHelp=Objektnavn som skal lastes.
For eksempel metode for å hente Dolibarr Product object /htdocs/product/class/product.class.php, er verdien av klasse-filnavn Product -CronMethodHelp=Objekt-metode for å starte.
For eksempel hente Dolibarr Vare objekt /htdocs/product/class/product.class.php, er verdien av metoden fecth -CronArgsHelp=Metode argumenter.
For eksempel hent Dolibarr Product object /htdocs/product/class/product.class.php, kan parameterverdien være 0, ProductRef +CronClassFile=Filnavn med klasse +CronModuleHelp=Navn på Dolibarr-modulkatalogen (også arbeid med ekstern Dolibarr-modul).
For eksempel å kalle hente-metoden for Dolibarr Product-objektet /htdocs/product/class/product.class.php, er verdien for modulen produkt +CronClassFileHelp=Den relative banen og filnavnet som skal lastes (banen er i forhold til webserverens rotkatalog).
For eksempel å kalle Dolibarr Produkt objekt htdocs/product/class/ product.class.php , er verdien for klassefilnavn produkt/klasse/product.class.php +CronObjectHelp=Objektnavnet som skal lastes inn.
For eksempel å kalle hente-metoden for Dolibarr Product-objektet /htdocs/product/class/product.class.php, er verdien for klassefilenavnet Produkt +CronMethodHelp=Objektmetoden som skal startes.
For eksempel å kalle hente-metoden for Dolibarr Product-objektet /htdocs/product/class/product.class.php, er verdien for metoden fecth +CronArgsHelp=Metode-argumenter.
For eksempel å kalle hente-metoden for Dolibarr Product-objektet /htdocs/product/class/product.class.php, kan verdien for parametre være 0, ProductRef CronCommandHelp=System kommandolinje som skal kjøres CronCreateJob=Opprett ny planlagt jobb CronFrom=Fra @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Gå til menyen "Hjem - Administrative verktøy - JobDisabled=Jobb deaktivert MakeLocalDatabaseDumpShort=Backup av lokal database MakeLocalDatabaseDump=Opprett lokal databasedump -WarningCronDelayed=NB! Pga ytelseshensyn, kan aktive jobber utsettes maksimum %s timer før de kjøres, uavhengig av dato de er satt opp. +WarningCronDelayed=NB, for ytelsesformål, uansett neste utførelsesdato for aktiverte jobber, kan jobbene dine forsinkes til maksimalt %s timer før de kjøres. diff --git a/htdocs/langs/nb_NO/errors.lang b/htdocs/langs/nb_NO/errors.lang index 3e0d32e672c..3a9bd9b18f9 100644 --- a/htdocs/langs/nb_NO/errors.lang +++ b/htdocs/langs/nb_NO/errors.lang @@ -11,13 +11,15 @@ ErrorLoginAlreadyExists=brukernavnet %s eksisterer allerede. ErrorGroupAlreadyExists=Gruppen %s eksisterer allerede. ErrorRecordNotFound=Posten ble ikke funnet. ErrorFailToCopyFile=Klarte ikke å kopiere filen '«%s' til '%s'. -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToCopyDir=Klarte ikke å kopiere katalogen '%s' til '%s'. ErrorFailToRenameFile=Kunne ikke omdøpe filen '%s' til '%s' ErrorFailToDeleteFile=Kunne ikke fjerne filen '%s'. ErrorFailToCreateFile=Kunne ikke opprette filen '%s'. ErrorFailToRenameDir=Kunne ikke endre navnet på mappen '%s' til '%s'. ErrorFailToCreateDir=Kunne ikke opprette mappen '%s'. ErrorFailToDeleteDir=Klarte ikke å slette katalogen «%s '. +ErrorFailToMakeReplacementInto=Kunne ikke erstatte i filen '%s'. +ErrorFailToGenerateFile=Kunne ikke generere filen '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Denne kontaktperson er allerede definert for denne typen. ErrorCashAccountAcceptsOnlyCashMoney=Dette er en kassekonto, så det er kun mulig med kontantinnskudd på den. ErrorFromToAccountsMustDiffers=Kilde- og målkonto må være forskjellig. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Kan ikke skrive til mappen %s ErrorFoundBadEmailInFile=Feil e-postsyntaks for %s linjer i filen (for eksempel linje %s med e-post=%s) ErrorUserCannotBeDelete=Bruker kan ikke slettes. Kan være knyttet til Dolibarr-enheter. ErrorFieldsRequired=Noen påkrevde felt er ikke fylt ut. +ErrorSubjectIsRequired=Epost-emnet er påkrevd ErrorFailedToCreateDir=Kunne ikke opprette mappen. Kontroller at webserverbrukeren har skriverettigheter i dokumentmappen i Dolibarr. Hvis safe_mode er akivert i PHP, sjekk at webserveren eier eller er med i gruppen(eller bruker) for Dolibarr php-filer. ErrorNoMailDefinedForThisUser=Ingen e-post angitt for denne brukeren. ErrorFeatureNeedJavascript=Denne funksjonen krever javascript for å virke. Endre dette i Oppsett - Visning. @@ -114,9 +117,9 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Kvantum på linjer i kundefakturaer kan ErrorWebServerUserHasNotPermission=Brukerkonto %s som brukes til å kjøre web-server har ikke tillatelse til det ErrorNoActivatedBarcode=Ingen strekkodetype aktivert ErrUnzipFails=Klarte ikke å pakke ut %s med ZipArchive -ErrNoZipEngine=Ingen applikasjon som kan pakke ut %s i denne PHP +ErrNoZipEngine=Ingen motor til zip/unzip %s filen i dette PHP-miljøet ErrorFileMustBeADolibarrPackage=Filen %s må være en Dolibarr zip-pakke -ErrorModuleFileRequired=You must select a Dolibarr module package file +ErrorModuleFileRequired=Du må velge en Dolibarr modulpakke-fil ErrorPhpCurlNotInstalled=PHP CURL er ikke installert. Denne må være installert for å kommunisere med Paypal ErrorFailedToAddToMailmanList=Klarte ikke å legge post %s til Mailman-liste %s eller SPIP-base ErrorFailedToRemoveToMailmanList=Klarte ikke å fjerne post %s fra Mailman-liste %s eller SPIP-base @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Ingen global variabel valgt ErrorFieldMustBeANumeric=Feltet %s må være en numerisk verdi ErrorMandatoryParametersNotProvided=Obligatorisk(e) parametre ikke angitt ErrorOppStatusRequiredIfAmount=Sett inn et estimert beløp for denne muligheten. Status må også settes +ErrorFailedToLoadModuleDescriptorForXXX=Kunne ikke laste moduldeskriptorklassen for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=En feil oppsto under lagring av endringer ErrorWarehouseRequiredIntoShipmentLine=Lager er obligatorisk for å kunne levere @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Lagernivå er for lavt for å legge ErrorStockIsNotEnoughToAddProductOnProposal=Lagernivå er for lavt for å legge %s til i et nytt tilbud ErrorFailedToLoadLoginFileForMode=Klarte ikke å hente innloggingsnøkkel for modus '%s'. ErrorModuleNotFound=Modulfilen ble ikke funnet. -ErrorFieldAccountNotDefinedForBankLine=Verdi for regnskapskode er ikke definert bankkonto linje %s +ErrorFieldAccountNotDefinedForBankLine=Verdi for regnskapskonto ikke definert for kildelinje-id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Verdi for regnskapskonto ikke definert for faktura id %s (%s) +ErrorFieldAccountNotDefinedForLine=Verdi for regnskapskonto ikke definert for linjen (%s) ErrorBankStatementNameMustFollowRegex=Feil, navn på kontoutskrift må følge syntaksregelen %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. +ErrorPhpMailDelivery=Kontroller at du ikke bruker et for høyt antall mottakere og at epost-innhold ikke ligner spam. Spør også administratoren om å sjekke brannmuren og server-loggfilene for mer fullstendig informasjon. +ErrorUserNotAssignedToTask=Bruker må tilordnes til en oppgave for å være i stand til å angi tidsforbruk. ErrorTaskAlreadyAssigned=Oppgaven er allerede tildelt bruker -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorModuleFileSeemsToHaveAWrongFormat=Modulpakken ser ut til å ha feil format. +ErrorFilenameDosNotMatchDolibarrPackageRules=Navnet på modulpakken (%s) passer ikke forventet navn-syntaks: %s +ErrorDuplicateTrigger=Feil, duplikat utløsernavn %s. Allerede lastet fra %s. +ErrorNoWarehouseDefined=Feil, ingen lagre definert. +ErrorBadLinkSourceSetButBadValueForRef=Lenken du bruker er ikke gyldig. En 'kilde' for betaling er definert, men verdien for 'ref' er ikke gyldig. +ErrorTooManyErrorsProcessStopped=For mange feil. Prosessen ble stoppet. # Warnings WarningPasswordSetWithNoAccount=Et passord ble satt for dette medlemmet, men ingen brukerkonto ble opprettet. Det fører til at passordet ikke kan benyttes for å logge inn på Dolibarr. Det kan brukes av en ekstern modul/grensesnitt, men hvis du ikke trenger å definere noen innlogging eller passord for et medlem, kan du deaktivere alternativet "opprett en pålogging for hvert medlem" fra medlemsmodul-oppsettet. Hvis du trenger å administrere en pålogging, men ikke trenger noe passord, kan du holde dette feltet tomt for å unngå denne advarselen. Merk: E-post kan også brukes som en pålogging dersom medlemmet er knyttet til en bruker. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Betalingsdato (%s) er tidligere enn faktu WarningTooManyDataPleaseUseMoreFilters=For mange data (mer enn %s linjer). Bruk flere filtre eller sett konstanten %s til en høyere grense. WarningSomeLinesWithNullHourlyRate=Noen tider ble registrert av noen brukere mens deres timepris ikke var definert. En verdi på 0 %s pr. time ble brukt, men dette kan føre til feil verdivurdering av tidsbruk. WarningYourLoginWasModifiedPleaseLogin=Din innlogging er blitt endret. Av sikkerhetsgrunner må du logge inn på nytt før du kan gjøre noe. +WarningAnEntryAlreadyExistForTransKey=En oppføring eksisterer allerede for oversettelsesnøkkel for dette språket diff --git a/htdocs/langs/nb_NO/exports.lang b/htdocs/langs/nb_NO/exports.lang index cc08e1e8d30..d86952c7293 100644 --- a/htdocs/langs/nb_NO/exports.lang +++ b/htdocs/langs/nb_NO/exports.lang @@ -110,11 +110,17 @@ Enclosure=Innbygging SpecialCode=Spesialkode ExportStringFilter=%% tillater at at en eller flere karakterer i teksten kan erstattes ExportDateFilter=ÅÅÅÅ, ÅÅÅÅMM, ÅÅÅÅMMDD : filtrert etter år/måned/dag
ÅÅÅÅ+ÅÅÅÅ, ÅÅÅÅMM+ÅÅÅÅMM, ÅÅÅÅMMDD+ÅÅÅÅMMDD: filtrerer en tidsperiode
> ÅÅÅÅ, > ÅÅÅÅMM, > ÅÅÅÅMMDD: filteret velger alle påfølgende år
< ÅÅÅÅ, < ÅÅÅÅMM, < ÅÅÅÅMMDD: filteret velger alle foregående år -ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values +ExportNumericFilter=NNNNN filtrer etter en verdi
NNNNN+NNNNN filtrerer etter et verdiområde
< NNNNN filtrerer etter lavere verdier
> NNNNN filtrerer etter høyere verdier ImportFromLine=Import starter fra linjenummer EndAtLineNb=Slutter på linjenummer +ImportFromToLine=Importer linjenumre (fra - til) SetThisValueTo2ToExcludeFirstLine=For eksempel, sett denne verdien til 3 for å eksludere de 2 første linjene KeepEmptyToGoToEndOfFile=Hold dette feltet tomt for å få med alt til slutten av filen +SelectPrimaryColumnsForUpdateAttempt=Velg kolonne (r) som skal brukes som primærnøkkel for oppdateringsforsøk +UpdateNotYetSupportedForThisImport=Oppdatering støttes ikke for denne typen import (bare innsetting) +NoUpdateAttempt=Ingen oppdateringsforsøk ble utført, bare innsetting +ImportDataset_user_1=Brukere (ansatte eller ikke) og egenskaper +ComputedField=Beregnet felt ## filters SelectFilterFields=Hvis du vil filtrere etter noen verdier, kan du endre dem her FilteredFields=Filtrerte felt diff --git a/htdocs/langs/nb_NO/loan.lang b/htdocs/langs/nb_NO/loan.lang index ed27f6c5024..4426c55220f 100644 --- a/htdocs/langs/nb_NO/loan.lang +++ b/htdocs/langs/nb_NO/loan.lang @@ -43,9 +43,11 @@ LoanCalcDesc=Denne boliglånskalkulatoren kan brukes til å finne ut mån GoToInterest=%s vil gå mot INTEREST GoToPrincipal=%s vil gå mot PRINCIPAL YouWillSpend=Du kommer til å bruke %s i år %s -ListLoanAssociatedProject=List of loan associated with the project +ListLoanAssociatedProject=Liste over lån tilknyttet prosjektet +AddLoan=Opprett lån # Admin ConfigLoan=Oppset av lån-modulen LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard regnskapskonto kapital LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard regnskapskonto rente LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard regnskapskonto forsikring +CreateCalcSchedule=Opprett/endre låneplan diff --git a/htdocs/langs/nb_NO/mails.lang b/htdocs/langs/nb_NO/mails.lang index 66f4697840e..8b5c674558f 100644 --- a/htdocs/langs/nb_NO/mails.lang +++ b/htdocs/langs/nb_NO/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Delvis sendt MailingStatusSentCompletely=Utsendelse komplett MailingStatusError=Feil MailingStatusNotSent=Ikke sendt -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=E-post (fra %s til %s) akseptert for levering MailingSuccessfullyValidated=Utsendelse validert MailUnsubcribe=Avmelding MailingStatusNotContact=Skal ikke kontaktes flere ganger @@ -74,18 +74,22 @@ ResultOfMailSending=Resultat av masseutsendelse av epost NbSelected=Ant. valgt NbIgnored=Ant. ignorert NbSent=Ant. sent -ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? -MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third party category -MailingModuleDescContactsByCategory=Contacts by categories -MailingModuleDescContactsByFunction=Contacts by position +ConfirmUnvalidateEmailing=Er du sikker på at du vil endre status på epost %s til kladd? +MailingModuleDescContactsWithThirdpartyFilter=Kontakt med kundefilter +MailingModuleDescContactsByCompanyCategory=Kontakter etter tredjeparts-kategori +MailingModuleDescContactsByCategory=Kontakter etter kategorier +MailingModuleDescContactsByFunction=Kontakter etter stilling +MailingModuleDescEmailsFromFile=E-poster fra fil +MailingModuleDescEmailsFromUser=E-postmeldinger innlagt av bruker +MailingModuleDescDolibarrUsers=Brukere med e-post +MailingModuleDescThirdPartiesByCategories=Tredjeparter (etter kategorier) # Libelle des modules de liste de destinataires mailing LineInFile=Antall linjer i filen: %s RecipientSelectionModules=Forespørsel om lesebekreftelse MailSelectedRecipients=Valgte mottagere MailingArea=Område for e-postutsendelser -LastMailings=Latest %s emailings +LastMailings=Siste %s epostutsendelser TargetsStatistics=Statistikk over målgruppe NbOfCompaniesContacts=Unike kontakter/adresser MailNoChangePossible=Du kan ikke endre mottagere når utsendelsen er godkjent @@ -93,9 +97,9 @@ SearchAMailing=Finn utsendelse SendMailing=Send utesendelse SendMail=Send e-post SentBy=Sendt av -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand=Å sende en epost kan utføres fra kommandolinjen. Spør din server-administrator å kjøre følgende kommando for å sende e-post til alle mottakere: MailingNeedCommand2=Du kan imidlertid sende dem online ver å sette parameteret MAILING_LIMIT_SENDBYWEB til en verdi tilsvarende den maksimale antalle e-poster du ønsker å sende i en økt. -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? +ConfirmSendingEmailing=Hvis du ønsker å sende epost direkte fra denne siden, må du bekrefte at du er sikker på at du vil sende epost nå fra nettleseren LimitSendingEmailing=Merk: E-postutsendelser fra web-grensenitt er delt opp i flere omganger av sikkerhets-/timeout-hensyn.%s mottakere for hver utsendelse. TargetsReset=Tøm liste ToClearAllRecipientsClickHere=Trykk på knappen for å tømme mottagerlisten @@ -116,16 +120,16 @@ Notifications=Varsler NoNotificationsWillBeSent=Ingen e-postvarsler er planlagt for denne hendelsen/firmaet ANotificationsWillBeSent=1 e-postvarsel vil bli sendt med e-post SomeNotificationsWillBeSent=%s e-postvarsler vil bli sendt med e-post -AddNewNotification=Aktiver ny målgruppe for epost -ListOfActiveNotifications=List alle aktive mål for e-postnotifikajon +AddNewNotification=Aktiver en ny e-postvarsling mål/hendelse +ListOfActiveNotifications=List alle aktive mål/hendelser for e-postvarsling ListOfNotificationsDone=List alle e-postmeldinger sendt MailSendSetupIs=E-postutsendelser er blitt satt opp til '%s'. Denne modusen kan ikke brukes ved masseutsendelser MailSendSetupIs2=Logg på som administrator, gå til menyen %sHjem - Oppsett - E-post%s for å endre parameter '%s' for å bruke '%s' modus. I denne modusen for du tilgang til oppsett av SMTP-server og muligheten til å bruke masseutsendelser. MailSendSetupIs3=Ved spørsmål om hvordan du skal sette opp SMTP-serveren din, kontakt %s YouCanAlsoUseSupervisorKeyword=Du kan også bruke nøkkelordet __SUPERVISOREMAIL__ for å sende e-post til brukerens supervisor (supervisoren måha e-postadresse) NbOfTargetedContacts=Nåværende antall kontakter på mailinglisten -UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other -UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other +UseFormatFileEmailToTarget=Importert fil må følge formatet epost;navn;fornavn:annet +UseFormatInputEmailToTarget=Tast inn en streng med format epost;navn;fornavn;annet MailAdvTargetRecipients=Mottakere (avansert utvalg) AdvTgtTitle=Fyll inn i feltene for å forhåndsvelge tredjeparter eller kontakter/adresser til målet AdvTgtSearchTextHelp=Bruk %% som blindkarakterer. For eksempel å finne alle element som jean, joe, jim , kan du skrive j%% . Du kan også bruke ; som separator for verdi, og bruke ! for bortsett fra denne verdien. For eksempel jean, joe, jim %%;! jimo;! jima% vil finne alle jean, joe, de som starter med jim men ikke jimo og ikke det som starter med jima @@ -150,6 +154,6 @@ AdvTgtCreateFilter=Opprett filter AdvTgtOrCreateNewFilter=Navn på nytt filter NoContactWithCategoryFound=Ingen kontakter/adresser med kategori funnet NoContactLinkedToThirdpartieWithCategoryFound=Ingen kontakter/adresser med kategori funnet -OutGoingEmailSetup=Outgoing email setup -InGoingEmailSetup=Incoming email setup +OutGoingEmailSetup=Oppsett for utgående epost +InGoingEmailSetup=Oppsett for innkommende epost diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index 1190bfdeafd..dc801db39b0 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s er ikke definert ErrorUnknown=Ukjent feil ErrorSQL=SQL-feil ErrorLogoFileNotFound=Fant ikke logofilen '%s' -ErrorGoToGlobalSetup=Gå til 'Firma/Organisasjon' innstillinger for å rette dette +ErrorGoToGlobalSetup=Gå til 'Firma/Organisasjon' for å ordne dette ErrorGoToModuleSetup=Gå til Modul oppsett for å rette dette ErrorFailedToSendMail=Klarte ikke å sende epost (avsender=%s, mottager=%s) ErrorFileNotUploaded=Filen ble ikke lastet oppp. Sjekk at den ikke er større en maksimumsgrensen, at det er plass igjen på disken og at det ikke ligger en fil med samme navn i katalogen. @@ -62,7 +62,7 @@ ErrorCantLoadUserFromDolibarrDatabase=Fant ikke brukeren %s i databasen. ErrorNoVATRateDefinedForSellerCountry=Feil: Det er ikke definert noen MVA-satser for landet '%s'. ErrorNoSocialContributionForSellerCountry=Feil! Ingen skatter og avgifter definert for landet '%s' ErrorFailedToSaveFile=Feil: Klarte ikke å lagre filen. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one +ErrorCannotAddThisParentWarehouse=Du prøver å legge til en forelder-lager som allerede er et barn av nåværende MaxNbOfRecordPerPage=Maks. antall poster pr side NotAuthorized=Du er ikke autorisert for å gjøre dette. SetDate=Still dato @@ -88,7 +88,7 @@ Undefined=Udefinert PasswordForgotten=Glemt passordet? SeeAbove=Se ovenfor HomeArea=Hjemmeområde -LastConnexion=Latest connection +LastConnexion=Siste forbindelse PreviousConnexion=Forrige tilkobling PreviousValue=Forrige verdi ConnectedOnMultiCompany=Tilkoblet miljø @@ -153,6 +153,7 @@ Edit=Rediger Validate=Valider ValidateAndApprove=Valider og godkjenn ToValidate=Å validere +NotValidated=Ikke validert Save=Lagre SaveAs=Lagre som TestConnection=Test tilkobling @@ -207,7 +208,7 @@ Info=Logg Family=Familie Description=Beskrivelse Designation=Beskrivelse -Model=Doc template +Model=Dokumentmal DefaultModel=Standard dokumentmal Action=Handling About=Om @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Ingen anvendbar frakoblingsfunksjon med godkjennings Connection=Tilkobling Setup=Innstillinger Alert=Varsel +MenuWarnings=Varsler Previous=Forrige Next=Neste Cards=Kort @@ -238,7 +240,7 @@ DateCreation=Opprettet den DateCreationShort=Oppr. dato DateModification=Endret den DateModificationShort=Mod. dato -DateLastModification=Latest modification date +DateLastModification=Siste endringsdato DateValidation=Validert den DateClosing=Lukket den DateDue=Forfallsdato @@ -308,6 +310,7 @@ Copy=Kopier Paste=Lim inn Default=Standard DefaultValue=Standardverdi +DefaultValues=Standardverdier Price=Pris UnitPrice=Enhetspris UnitPriceHT=Enhetspris (netto) @@ -324,9 +327,9 @@ AmountTTCShort=Beløp (inkl. MVA) AmountHT=Beløp (eksl. MVA) AmountTTC=Beløp (inkl. MVA) AmountVAT=MVA beløp -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency +MulticurrencyAlreadyPaid=Allerede betalt, original valuta +MulticurrencyRemainderToPay=Gjenstår å betale, original valuta +MulticurrencyPaymentAmount=Beløp, original valuta MulticurrencyAmountHT=Beløp (eks. MVA), original valuta MulticurrencyAmountTTC=Beløp (ink. MVA), original valuta MulticurrencyAmountVAT=MVA-beløp, original valuta @@ -363,7 +366,8 @@ VATRate=MVA-sats Average=Gjennomsnitt Sum=Sum Delta=Delta -Module=Modul +Module=Modul/Applikasjon +Modules=Moduler/Applikasjoner Option=Opsjon List=Liste FullList=Full liste @@ -387,7 +391,7 @@ ActionRunningNotStarted=Ikke startet ActionRunningShort=Pågår ActionDoneShort=Fullført ActionUncomplete=Ikke komplett -CompanyFoundation=Firma/Organisasjon +CompanyFoundation=Firma/organisasjon ContactsForCompany=Kontakter for denne tredjeparten ContactsAddressesForCompany=Kontakter/adresser for denne tredjepart AddressesForCompany=Adresser for tredjepart @@ -405,8 +409,9 @@ Generate=Generer Duration=Varighet TotalDuration=Total varighet Summary=Oppsummering -DolibarrStateBoard=Statistikk -DolibarrWorkBoard=Arbeidsoppgaver +DolibarrStateBoard=Databasestatistikk +DolibarrWorkBoard=Kontrollpanel for åpne elementer +NoOpenedElementToProcess=Ingen åpne elementer å behandle Available=Tilgjengelig NotYetAvailable=Ikke tilgjengelig ennå NotAvailable=Ikke tilgjengelig @@ -434,7 +439,7 @@ Reportings=Rapportering Draft=Kladd Drafts=Kladder Validated=Validert -Opened=Åpnet +Opened=Åpent New=Ny Discount=Rabatt Unknown=Ukjent @@ -453,6 +458,7 @@ NextStep=Neste trinn Datas=Data None=Ingen NoneF=Ingen +NoneOrSeveral=Ingen eller flere Late=Forsinket LateDesc=Forsinkelse for å bestemme om en post er forsinket eller ikke bestemmes i oppsettet. Kontakt Admin for å endre dette i Hjem - Oppsett - Varslinger. Photo=Bilde @@ -600,13 +606,14 @@ SessionName=Sesjonnavn Method=Metode Receive=Motta CompleteOrNoMoreReceptionExpected=Komplett eller ingenting mer forventet -ExpectedValue=Expected Value +ExpectedValue=Forventet verdi CurrentValue=Gjeldende verdi PartialWoman=Delvis TotalWoman=Total NeverReceived=Aldri mottatt Canceled=Kansellert -YouCanChangeValuesForThisListFromDictionarySetup=Du kan endre verdier for denne listen fra menyen setup - ordbok +YouCanChangeValuesForThisListFromDictionarySetup=Du kan endre verdier for denne listen fra menyen Oppsett - Ordbøker +YouCanChangeValuesForThisListFrom=Du kan endre verdier for denne listen fra menyen %s YouCanSetDefaultValueInModuleSetup=Du kan sette standardverdi for nye poster i Oppsett-modulen Color=Farge Documents=Tilknyttede filer @@ -642,6 +649,7 @@ FreeLineOfType=Type fritekst CloneMainAttributes=Klon objektet med de viktigste attributtene PDFMerge=PDF Flett Merge=Flett +DocumentModelStandardPDF=Standard PDF-mal PrintContentArea=Vis nettstedet for å skrive ut innholdet på hovedområdet MenuManager=Menymanager WarningYouAreInMaintenanceMode=Advarsel, du er i vedlikeholds-modus, så bare %s har lov til å bruke programmet for øyeblikket. @@ -708,6 +716,7 @@ from=fra toward=mot Access=Tilgang SelectAction=Velg handling +SelectTargetUser=Velg målbruker/-ansatt HelpCopyToClipboard=Bruk Ctrl + C for å kopiere til utklippstavle SaveUploadedFileWithMask=Lagre filen på serveren med navnet "%s" (ellers "%s") OriginFileName=Originalt filnavn @@ -718,9 +727,9 @@ ViewPrivateNote=Vis notater XMoreLines=%s linje(r) skjult PublicUrl=Offentlig URL AddBox=Legg til boks -SelectElementAndClickRefresh=Velg et element og klikk Oppfrisk +SelectElementAndClick=Velg et element og klikk %s PrintFile=Skriv fil %s -ShowTransaction=Show entry on bank account +ShowTransaction=Vis oppføring på bankkonto GoIntoSetupToChangeLogo=Gå til Hjem - Oppsett - Firma for å skifte logo eller Hjem - Oppsett - Display for å skjule. Deny=Avvis Denied=Avvist @@ -734,8 +743,8 @@ Hello=Hei Sincerely=Med vennlig hilsen DeleteLine=Slett linje ConfirmDeleteLine=Er du sikker på at du vil slette denne linjen? -NoPDFAvailableForDocGenAmongChecked=Ingen PDF-generering var tilgjengelig for avkryssede dokumenter -TooManyRecordForMassAction=For mange poster valgt for masseutførelse. Denne handlingen er begrenset til %s poster. +NoPDFAvailableForDocGenAmongChecked=Ingen PDF var tilgjengelig for dokumentgenerering blant kontrollerte poster +TooManyRecordForMassAction=For mange poster valgt for massehandling. Handlingen er begrenset til en liste på%s poster. NoRecordSelected=Ingen poster valgt MassFilesArea= Filområde bygget av massehandlinger ShowTempMassFilesArea=Vis filområde bygget av massehandlinger @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Grupper etter... ViewFlatList=Vis liste RemoveString=Fjern strengen '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Noen språk kan delvis oversettes eller kan inneholde feil. Hvis du oppdager feil, kan du fikse språkfiler ved å registrere deg på https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Link for direktenedlasning Download=Last ned ActualizeCurrency=Oppdater valutakurs Fiscalyear=Regnskapsår +ModuleBuilder=Modulbygger +SetMultiCurrencyCode=Angi valuta +BulkActions=Massehandlinger +ClickToShowHelp=Klikk for å vise verktøytipshjelp +HR=HR +HRAndBank=HR og Bank +AutomaticallyCalculated=Automatisk beregnet +TitleSetToDraft=Gå tilbake til utkast +ConfirmSetToDraft=Er du sikker på at du vil gå tilbake til utkaststatus? # Week day Monday=Mandag Tuesday=Tirsdag @@ -796,7 +814,7 @@ Select2NotFound=Ingen resultater funnet Select2Enter=Tast inn Select2MoreCharacter=eller flere karakterer Select2MoreCharacters=eller flere tegn -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
+Select2MoreCharactersMore=Søkesyntaks:
| OR (a|b)
* Tilfeldig karakter (a*b)
^ Starter med (^ab)
$ Ender på (ab$)
Select2LoadingMoreResults=Laster flere resultater... Select2SearchInProgress=Søk pågår... SearchIntoThirdparties=Tredjeparter @@ -817,5 +835,3 @@ SearchIntoContracts=Kontrakter SearchIntoCustomerShipments=Kundeforsendelser SearchIntoExpenseReports=Utgiftsrapporter SearchIntoLeaves=Ferier - -BulkActions=Bulk actions diff --git a/htdocs/langs/nb_NO/margins.lang b/htdocs/langs/nb_NO/margins.lang index 05155594ce1..ffb7e2f075a 100644 --- a/htdocs/langs/nb_NO/margins.lang +++ b/htdocs/langs/nb_NO/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Sats må ha en numerisk verdi markRateShouldBeLesserThan100=Dekningsbidrag skal være lavere enn 100 ShowMarginInfos=Vis info om marginer CheckMargins=Margindetaljer -MarginPerSaleRepresentativeWarning=Rapporten margin pr. bruker: bruk lenken mellom tredjeparter og salgsrepresentanter til å beregne margin for hver bruker. Fordi noen tredjeparter ikke kan være knyttet til en eventuell salgsrepresentant og noen tredjeparter kan knyttes til flere brukere, kan det hende at noen marginer ikke vises i rapporten eller vises på flere forskjellige linjer. +MarginPerSaleRepresentativeWarning=Rapporten for margin per bruker benytter koblingen mellom tredjeparter og salgsrepresentanter for å beregne marginen til hver salgsrepresentant. Fordi noen tredjeparter kanskje ikke har noen dedikert salgsrepresentant og noen tredjeparter kan være knyttet til flere, kan noen beløp bli ekskludert i denne rapporten (hvis det ikke er salgsrepresentant), og noen kan vises på forskjellige linjer (for hver salgsrepresentant). diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang new file mode 100644 index 00000000000..9b5a9f6ff9a --- /dev/null +++ b/htdocs/langs/nb_NO/modulebuilder.lang @@ -0,0 +1,24 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=Disse verktøyene gir deg verktøy til å bygge eller redigere din egen modul. +EnterNameOfModuleDesc=Skriv inn navnet på modulen uten bruk av mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) +ModuleBuilderDesc2=Sti hvor modulene er generert/redigert (første alternative katalog definert i %s): %s +ModuleBuilderDesc3=Genererte / redigerbare moduler funnet: %s (de oppdages som redigerbare når filen %s eksisterer i roten av modulkatalogen). +NewModule=Ny modul +ModuleKey=Nøkkel for ny modul +ModuleInitialized=Modul initialisert +ModuleBuilderDescdescription=Her skriver du inn all generell informasjon som beskriver modulen din +ModuleBuilderDescobjects=Definer de nye objektene du vil administrere med modulen din her. En side for å liste dem og en side for å opprette/redigere/vise et kort vil bli generert. +ModuleBuilderDescmenus=Denne fanen er dedikert for å definere menyoppføringer som tilbys av modulen din. +ModuleBuilderDescpermissions=Denne fanener dedikert til å definere de nye tillatelsene du vil gi med modulen din. +ModuleBuilderDesctriggers=Dette er visningen av utløsere som tilbys av modulen din. Hvis du vil inkludere kode som kjøres når en forretningsaktivitet er startet, kan du redigere denne filen med din IDE. +ModuleBuilderDeschooks=Denne fanen er til kroker. +ModuleBuilderDescwidgets=Denne fanen er for å administrere/bygge widgeter. +ModuleBuilderDescbuildpackage=Du kan generere en "klar til å distribuere" pakkefil (en normalisert .zip-fil) av modulen din her. Bare klikk på knappen for å få modulpakkefilen din. +ModuleBuilderDescdangerzone=Du kan slette modulen din. ADVARSEL: Alle filer i modulen vil gå tapt! +DangerZone=Faresone +BuildPackage=Bygg pakke +ModuleIsNotActive=Denne modulen er ikke aktivert ennå (gå inn i Home-Setup-modulen for å aktivere) +ModuleIsLive=Denne modulen er blitt aktivert. Enhver endring på den kan ødelegge en gjeldende aktiv funksjon. +DescriptionLong=Lang beskrivelse +EditorName=Navn på editor +EditorUrl=URL til editor diff --git a/htdocs/langs/nb_NO/multicurrency.lang b/htdocs/langs/nb_NO/multicurrency.lang new file mode 100644 index 00000000000..9f3fc646c57 --- /dev/null +++ b/htdocs/langs/nb_NO/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multivaluta +ErrorAddRateFail=Feil i ny rate +ErrorAddCurrencyFail=Feil i ny valuta +ErrorDeleteCurrencyFail=Feil, sletting mislykkes +multicurrency_syncronize_error=Synkroniseringsfeil: %s +multicurrency_useOriginTx=Når et objekt er opprettet fra et annet, behold den opprinnelige raten til kildeobjektet (ellers bruk den nye kjente rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=Du må opprette en konto på deres nettside for å bruke denne funksjonaliteten.
Få din API-nøkkel
Hvis du bruker en gratis konto, kan du ikke endre valutakilden (USD som standard)
Men hvis hovedvalutaen din ikke er USD, kan du bruke alternativ valutakilde for å tvinge annen hovedvaluta

Du er begrenset til 1000 synkroniseringer per måned +multicurrency_appId=API-nøkkel +multicurrency_appCurrencySource=Valutakilde +multicurrency_alternateCurrencySource= Alternativ valutakilde +CurrenciesUsed=Valutaer brukt +CurrenciesUsed_help_to_add=Legg til de forskjellige valutaer og priser du må bruke i dine tilbud , bestillinger , osv. +rate=rate +MulticurrencyReceived=Mottatt, originalvaluta +MulticurrencyRemainderToTake=Restbeløp, opprinnelig valuta +MulticurrencyPaymentAmount=Beløp, original valuta diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index 28b1f6a7468..3b38f4f1368 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Fødselsdag DateToBirth=Fødselsdag BirthdayAlertOn=fødselsdagsvarsling aktiv BirthdayAlertOff=fødselsdagsvarsling inaktiv +TransKey=Oversettelse av nøkkelen TransKey +MonthOfInvoice=Måned (nummer 1-12) på fakturadato +TextMonthOfInvoice=Måned (tex) på fakturadato +PreviousMonthOfInvoice=Forrige måned (nummer 1-12) på fakturadato +TextPreviousMonthOfInvoice=Forrige måned (tekst) av fakturadato +NextMonthOfInvoice=Følgende måned (nummer 1-12) på fakturadato +TextNextMonthOfInvoice=Følgende måned (tekst) på fakturadato +ZipFileGeneratedInto=Zip-fil generert til %s. + +YearOfInvoice=År av fakturadato +PreviousYearOfInvoice=Forrige års fakturadato +NextYearOfInvoice=Følgende år av fakturadato + Notify_FICHINTER_ADD_CONTACT=Kontakt lagt til intervensjon Notify_FICHINTER_VALIDATE=Intervensjon validert Notify_FICHINTER_SENTBYMAIL=Intervensjon sendt med post @@ -61,22 +74,23 @@ PredefinedMailTestHtml=Dette er en test e-post (ordet test må være i fe PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nVedlagt følger faktura __REF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nFaktura __REF__ står fortsatt ubetalt etter forfall. Kan dere sjekke dette hos dere? \nFaktura vedlagt.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nVedlagt følger tilbud__PROPREF__\n\n__PERSONALIZED__med vennlig hilsen\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nVedlagt følger prisforespørsel __ASKREF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nHer finner du prisforespørselen __REF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nVedlagt følger ordrenummer __ORDERREF__\n\n__PERSONALIZED__med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nVedlagt følger ordrenummer __ORDERREF__\n\n__PERSONALIZED__med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVedlagt følger faktura __REF__\n\n__PERSONALIZED__Med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVedlagt følger leveranse __SHIPPINGREF__\n\n__PERSONALIZED__med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVedlagt følger intervensjon __FICHINTERREF__\n\n__PERSONALIZED__med vennlig hilsen\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr er en kompakt ERP/CRM med støtte for flere forretningsmoduler. En demo som viser alle moduler gir ingen mening da dette scenariet aldri skjer (flere hundre tilgjengelig). Derforer flere demoprofiler er tilgjengelig. ChooseYourDemoProfil=Velg en demoprofil som passer best til dine krav -ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) +ChooseYourDemoProfilMore=... eller bygg din egen profil
(manuell utvelgelse av moduler) DemoFundation=Håndtere medlemmer i en organisasjon DemoFundation2=Håndtere medlemmer og bankkonti i en organisasjon -DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyServiceOnly=Firma som kun selger tjenester DemoCompanyShopWithCashDesk=Administrer en butikk med kontantomsetning/kasse -DemoCompanyProductAndStocks=Company selling products with a shop -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyProductAndStocks=Firma som selger varer via butikk +DemoCompanyAll=Firma med mange aktiviteter (alle hovedmoduler) CreatedBy=Laget av %s ModifiedBy=Endret av %s ValidatedBy=Validertav %s @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Autentiseringsmetode er %s.
Prof-ID %s
er avhengig av tredjepartens land.
For eksempel er det for %s, koden %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistikk i antall varer / tjenester enheter -StatsByNumberOfEntities=Statistikk i antall henvisende enheter -NumberOfProposals=Antall tilbud siste 12 måneder -NumberOfCustomerOrders=Antall kundeordre siste 12 måneder -NumberOfCustomerInvoices=Antall kundefakturaer siste 12 måneder -NumberOfSupplierProposals=Antall leverandørtilbud siste 12 måneder -NumberOfSupplierOrders=Antall leverandørordre siste 12 måneder -NumberOfSupplierInvoices=Antall leverandørfakturaer siste 12 måneder -NumberOfUnitsProposals=Antall enheter i tilbud siste 12 måneder -NumberOfUnitsCustomerOrders=Antall enheter i kundeordre siste 12 måneder -NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer siste 12 måneder -NumberOfUnitsSupplierProposals=Antall enheter i leverandørtilbud siste 12 måneder -NumberOfUnitsSupplierOrders=Antall enheter i leverandørordre siste 12 måneder -NumberOfUnitsSupplierInvoices=Antall enheter i leverandørfakturaer siste 12 måneder +StatsByNumberOfUnits=Statistikk over summen av produkter/tjenester +StatsByNumberOfEntities=Statistikk i antall henvisende enheter (antall fakturaer, eller ordre...) +NumberOfProposals=Antall tilbud +NumberOfCustomerOrders=Antall kundeordre +NumberOfCustomerInvoices=Antall kundefakturaer +NumberOfSupplierProposals=Antall leverandørtilbud +NumberOfSupplierOrders=Antall leverandørordre +NumberOfSupplierInvoices=Antall leverandørfakturaer +NumberOfUnitsProposals=Antall enheter i tilbud +NumberOfUnitsCustomerOrders=Antall enheter i kundeordre +NumberOfUnitsCustomerInvoices=Antall enheter i kundefakturaer +NumberOfUnitsSupplierProposals=Antall enheter på leverandørtilbud +NumberOfUnitsSupplierOrders=Antall enheter på leverandørordre +NumberOfUnitsSupplierInvoices=Antall enheter i leverandørfakturaer EMailTextInterventionAddedContact=En ny intervensjon %s er blitt tildelt deg. EMailTextInterventionValidated=Intervensjonen %s har blitt validert. EMailTextInvoiceValidated=Fakturaen %s har blitt validert. diff --git a/htdocs/langs/nb_NO/paypal.lang b/htdocs/langs/nb_NO/paypal.lang index 3a6aaee0eaf..93f796cbb25 100644 --- a/htdocs/langs/nb_NO/paypal.lang +++ b/htdocs/langs/nb_NO/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Transaksjons-ID: %s PAYPAL_ADD_PAYMENT_URL=Legg til url av Paypal-betaling når du sender et dokument i posten PredefinedMailContentLink=Du kan klikke på den sikre linken nedenfor for å betale (PayPal) hvis det ikke allerede er gjort. \n\n\n%s\n\n YouAreCurrentlyInSandboxMode=Du er for øyeblikket i "sandbox"-modus -NewPaypalPaymentReceived=Ny Paypal betaling mottatt -NewPaypalPaymentFailed=Ny Paypal betaling mislyktes +NewOnlinePaymentReceived=Ny online betaling mottatt +NewOnlinePaymentFailed=Ny online betaling forsøkt, men mislyktes PAYPAL_PAYONLINE_SENDEMAIL=E-post-varsel etter en betaling (vellykket eller ikke) ReturnURLAfterPayment=Retur-URL etter betaling -ValidationOfPaypalPaymentFailed=Validering av Paypal betaling mislyktes -PaypalConfirmPaymentPageWasCalledButFailed=Betalingsbekreftelse ble forsøkt hentet av Paypal, men mislyktes +ValidationOfOnlinePaymentFailed=Validering av online betaling mislyktes +PaymentSystemConfirmPaymentPageWasCalledButFailed=Bekreftelsesside for betaling ble kalt etter at betalingssystemet returnerte en feil SetExpressCheckoutAPICallFailed=SetExpressCheckout API oppkall feilet. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API oppkall feilet. DetailedErrorMessage=Detaljert feilmelding ShortErrorMessage=Kort feilmelding ErrorCode=Feilkode ErrorSeverityCode=Feilkode alvorlighetsgrad +OnlinePaymentSystem=Nettbasert betalingssystem +PaypalLiveEnabled=Paypal Live aktivert (ellers test/sandbox modus) diff --git a/htdocs/langs/nb_NO/products.lang b/htdocs/langs/nb_NO/products.lang index 9ce6464242b..84b062ee40c 100644 --- a/htdocs/langs/nb_NO/products.lang +++ b/htdocs/langs/nb_NO/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Regnskapskode (salg) ProductOrService=Vare eller tjeneste ProductsAndServices=Varer og tjenester ProductsOrServices=Varer eller tjenester -ProductsOnSell=Vare for salg eller innkjøp +ProductsOnSaleOnly=Varer kun til salgs +ProductsOnPurchaseOnly=Varer kun for kjøp ProductsNotOnSell=Vare ikke for salg og ikke for innkjøp ProductsOnSellAndOnBuy=Varer for kjøp og salg -ServicesOnSell=Tjenester for salg eller innkjøp -ServicesNotOnSell=Tjenester ikke for salg +ServicesOnSaleOnly=Tjenester kun til salgs +ServicesOnPurchaseOnly=Tjenester kun for kjøp +ServicesNotOnSell=Tjenester ikke til salgs og ikke for kjøp ServicesOnSellAndOnBuy=Tjenester for kjøp og salg LastModifiedProductsAndServices=Siste %s endrede varer/tjenester LastRecordedProducts=Siste %s registrerte varer @@ -60,7 +62,7 @@ SellingPrice=Salgspris SellingPriceHT=Salgspris (eks. MVA) SellingPriceTTC=Salgspris (inkl. MVA) CostPriceDescription=Denne prisen (eks. MVA) kan brukes til å lagre det gjennomsnittlige beløpet dette produktet koster din bedrift. Det kan være en hvilken som helst pris du beregner selv, for eksempel fra gjennomsnittlig kjøpskurs pluss gjennomsnittlig produksjon og distribusjonkostnader. -CostPriceUsage=This value could be used for margin calculation. +CostPriceUsage=Denne verdien kan brukes for kalkulering av marginer SoldAmount=Mengde solgt PurchasedAmount=Mengde kjøpt NewPrice=Ny pris @@ -142,7 +144,7 @@ ConfirmCloneProduct=Er du sikker på at du vil klone vare eller tjeneste %s%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object -ProductCombinations=Variants -HideProductCombinations=Hide products variant in the products selector +VariantAttributes=Variantattributter +ProductAttributes=Variantattributter for varer +ProductAttributeName=Variantattributt %s +ProductAttribute=Variantattributt +ProductAttributeDeleteDialog=Er du sikker på at du vil slette denne attributten? Alle verdier vil bli slettet. +ProductAttributeValueDeleteDialog=Er du sikker på at du vil slette verdien "%s" med referanse "%s" til denne attributten? +ProductCombinationDeleteDialog=Er du sikker på at du vil slette varevarianten "%s"? +ProductCombinationAlreadyUsed=Det oppsto en feil ved sletting av varianten. Kontroller at den ikke blir brukt av noen objekter +ProductCombinations=Varianter +PropagateVariant=Propager varianter +HideProductCombinations=Skjul varevarianter i varevelgeren ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -WeightImpact=Weight impact +NewProductCombination=Ny variant +EditProductCombination=Endre variant +NewProductCombinations=Nye varianter +EditProductCombinations=Redigerer varianter +SelectCombination=Velg kombinasjon +ProductCombinationGenerator=Variantgenerator +Features=Egenskaper +PriceImpact=Prisinnvirkning +WeightImpact=Vektinnvirkning NewProductAttribute=Ny attributt -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=Nb of different values -NbProducts=Nb. of products -ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found +NewProductAttributeValue=Ny attributtverdi +ErrorCreatingProductAttributeValue=Det oppstod en feil under oppretting av attributtverdien . Det kan være fordi det allerede er en eksisterende verdi med den referansen +ProductCombinationGeneratorWarning=Hvis du fortsetter, før du genererer nye varianter, vil alle foregående bli slettet. Eksisterende vil bli oppdatert med de nye verdiene +TooMuchCombinationsWarning=Generering av mange varianter kan resultere i høy CPU- og minnebruk og gjøre Dolibarr ute av stand til å lage dem. Aktiver alternativet "%s" for å bidra til å redusere minnebruken . +DoNotRemovePreviousCombinations=Ikke fjern tidligere varevarianter +UsePercentageVariations=Brok prosentvise variasjoner +PercentageVariation=Variasjonsprosent +ErrorDeletingGeneratedProducts=Det oppsto en feil under sletting av eksisterende varevarianter +NbOfDifferentValues=Antall ulike verdier +NbProducts=Antall varer +ParentProduct=Komponent-vare +HideChildProducts=Skjul variantprodukter +ConfirmCloneProductCombinations=Vil du kopiere alle produktvarianter til det andre overordnede produktet med den oppgitte referansen? +CloneDestinationReference=Varereferanse-destinasjon +ErrorCopyProductCombinations=Det oppstod en feil under kopiering av produktvarianter +ErrorDestinationProductNotFound=Varereferanse-destinasjon ikke funnet +ErrorProductCombinationNotFound=Varevariant ikke funnet diff --git a/htdocs/langs/nb_NO/projects.lang b/htdocs/langs/nb_NO/projects.lang index 743eddda24e..12951f3afbf 100644 --- a/htdocs/langs/nb_NO/projects.lang +++ b/htdocs/langs/nb_NO/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Prosjektområde ProjectStatus=Prosjektstatus SharedProject=Alle PrivateProject=Prosjektkontakter +ProjectsImContactFor=Prosjekter jeg er eksplisitt kontakt til +AllAllowedProjects=Alt prosjekter jeg kan lese (min + offentlig) +AllProjects=Alle prosjekter MyProjectsDesc=Denne visningen er begrenset til prosjekter du er en kontakt for (uansett type). ProjectsPublicDesc=Denne visningen presenterer alle prosjektene du har lov til å lese. TasksOnProjectsPublicDesc=Her vises alle prosjektoppgaver du har lov til å se @@ -20,23 +23,25 @@ OnlyOpenedProject=Kun åpne prosjekter er synlige (prosjektkladder og lukkede pr ClosedProjectsAreHidden=Lukkede prosjekter er ikke synlige TasksPublicDesc=Denne visningen presenterer alle prosjekter og oppgaver du har lov til å lese. TasksDesc=Denne visningen presenterer alle prosjekter og oppgaver (dine brukertillatelser gir deg tillatelse til å vise alt). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. +AllTaskVisibleButEditIfYouAreAssigned=Alle oppgaver for et slikt prosjekt er synlige, men du kan angi tid bare for oppgaven tildelt deg. Tildel oppgaven til deg selv hvis du må angi tid på det. +OnlyYourTaskAreVisible=Bare oppgaver til deg er synlig. Tildel oppgaven til deg selv om den ikke er synlig, og du må angi tid på den. ImportDatasetTasks=Oppgaver fra prosjekter +ProjectCategories=Prosjekt etiketter/kategorier NewProject=Nytt prosjekt AddProject=Opprett prosjekt DeleteAProject=Slett et prosjekt DeleteATask=Slett en oppgave ConfirmDeleteAProject=Er du sikker på at du vil slette dette prosjektet? ConfirmDeleteATask=Er du sikker på at du vil slette denne oppgaven? -OpenedProjects=Åpnede prosjekter -OpenedTasks=Åpnede oppgaver -OpportunitiesStatusForOpenedProjects=Beløp på muligheter i åpnede prosjekter, etter status +OpenedProjects=Åpne prosjekter +OpenedTasks=Åpne oppgaver +OpportunitiesStatusForOpenedProjects=Mulighet-beløp på åpne prosjekter etter status OpportunitiesStatusForProjects=Mulighet - beløp på prosjekter etter status ShowProject=Vis prosjekt SetProject=Sett prosjekt NoProject=Ingen prosjekter definert NbOfProjects=Antall prosjekter +NbOfTasks=Antall oppgaver TimeSpent=Tid brukt TimeSpentByYou=Tid bruk av deg TimeSpentByUser=Tid brukt av bruker @@ -47,9 +52,9 @@ TaskTimeSpent=Tid brukt på oppgaver TaskTimeUser=Bruker TaskTimeNote=Notat TaskTimeDate=Dato -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Oppgaver i åpne prosjekter WorkloadNotDefined=Arbeidsmengde ikke definert -NewTimeSpent=Ny tid brukt +NewTimeSpent=Tid brukt MyTimeSpent=Mitt tidsforbruk Tasks=Oppgaver Task=Oppgave @@ -59,6 +64,7 @@ TaskDescription=Oppgave beskrivelse NewTask=Ny oppgave AddTask=Opprett oppgave AddTimeSpent=Opprett tidsforbruk +AddHereTimeSpentForDay=Legg til tid brukt til denne dagen/oppgaven Activity=Aktivitet Activities=Oppgaver/aktiviteter MyActivities=Mine oppgaver/aktiviteter @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Liste over kundefaktura-maler tilknyttet ListSupplierOrdersAssociatedProject=Liste over leverandørordre tilknyttet prosjektet ListSupplierInvoicesAssociatedProject=Liste over leverandørfakturaer tilknyttet prosjektet ListContractAssociatedProject=Liste over kontrakter knyttet til prosjektet +ListShippingAssociatedProject=Liste over forsendelser som er knyttet til prosjektet ListFichinterAssociatedProject=Liste over intervensjoner knyttet til prosjektet ListExpenseReportsAssociatedProject=Liste over utgiftsrapporter tilknyttet prosjektet ListDonationsAssociatedProject=Liste over donasjoner tilknyttet prosjektet @@ -96,12 +103,13 @@ ValidateProject=Valider prosjekt ConfirmValidateProject=Er du sikker på at du vil validere dette prosjektet? CloseAProject=Lukk prosjektet ConfirmCloseAProject=Er du sikker på at du vil lukke dette prosjektet? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +AlsoCloseAProject=Lukk prosjekt også (hold det åpent hvis du fortsatt trenger å følge produksjonsoppgaver på det) ReOpenAProject=Åpne prosjekt ConfirmReOpenAProject=Er du sikker på at du vil gjenåpne dette prosjektet? ProjectContact=Prosjekt kontakter ActionsOnProject=Handlinger i prosjektet YouAreNotContactOfProject=Du er ikke en kontakt tilhørende dette private prosjektet +UserIsNotContactOfProject=Brukeren er ikke en kontakt i dette private prosjektet DeleteATimeSpent=Slett tidsbruk ConfirmDeleteATimeSpent=Er du sikker på at du vil slette dette tidsforbruket? DoNotShowMyTasksOnly=Se oppgaver som tilhører andre, også @@ -110,7 +118,7 @@ TaskRessourceLinks=Ressurser ProjectsDedicatedToThisThirdParty=Prosjekter dedikert til denne tredjepart NoTasks=Ingen oppgaver for dette prosjektet LinkedToAnotherCompany=Knyttet opp til annen tredjepart -TaskIsNotAffectedToYou=Oppgave tilhører ikke deg +TaskIsNotAssignedToUser=Oppgave ikke tildelt bruker. Bruk knappen ' %s' for å tilordne oppgaven nå. ErrorTimeSpentIsEmpty=Tidsbruk er tom ThisWillAlsoRemoveTasks=Denne handlingen vil også slette alle oppgaver i prosjektet (%s oppgaver for øyeblikket), og all tidsregistrering slettes IfNeedToUseOhterObjectKeepEmpty=Dersom noen objekter (faktura, ordre, ...), tilhørende en annen tredjepart, må tilknyttes prosjektet, behold denne tom. Prosjektet kan da knyttes til flere tredjeparter. @@ -122,7 +130,7 @@ CloneProjectFiles=Klon prosjekt-tilknyttede filer CloneTaskFiles=Klon oppgave-tilknyttede fil(er) (hvis oppgave(r) er klonet) CloneMoveDate=Oppdater prosjekter/oppgaver fra nå? ConfirmCloneProject=Er du sikker på at du vil klone dette prosjektet? -ProjectReportDate=Change task dates according to new project start date +ProjectReportDate=Endre oppgavedatoer i henhold til ny prosjekt-startdato ErrorShiftTaskDate=Kan ikke skifte oppgave-dato etter nytt prosjekt-startdato ProjectsAndTasksLines=Prosjekter og oppgaver ProjectCreatedInDolibarr=Prosjekt %s opprettet @@ -161,25 +169,30 @@ FirstAddRessourceToAllocateTime=Tilknytt brukerressurs til oppgave for å tildel InputPerDay=Tidsbruk pr. dag InputPerWeek=Tidsbruk pr. uke InputPerAction=Tidsbruk pr. aktivitet -TimeAlreadyRecorded=Allerede registrert tidsforbruk for denne oppgaven/dagen og bruker %s +TimeAlreadyRecorded=Dette tidsrommet er allerede registrert for denne oppgaven/dag og bruker %s ProjectsWithThisUserAsContact=Prosjekter med denne brukeren som kontakt TasksWithThisUserAsContact=Oppgaver tildelt denne brukeren ResourceNotAssignedToProject=Ikke tildelt til prosjekt ResourceNotAssignedToTheTask=Ikke tildelt oppgaven +TasksAssignedTo=Oppgaver tildelt AssignTaskToMe=Tildel oppgaven til meg +AssignTaskToUser=Tildel oppgave til %s +SelectTaskToAssign=Velg oppgave å tildele... AssignTask=Tildel ProjectOverview=Oversikt ManageTasks=Bruk prosjekter for å følge oppgaver og tidsbruk ManageOpportunitiesStatus=Bruk prosjekter for å følge muligheter ProjectNbProjectByMonth=Antall prosjekter opprettet etter måned +ProjectNbTaskByMonth=Antall opprettede oppgaver etter måned ProjectOppAmountOfProjectsByMonth=Tilbudsbeløp etter måned ProjectWeightedOppAmountOfProjectsByMonth=Gjennomsnittsbeløp på muligheter etter måned ProjectOpenedProjectByOppStatus=Åpne prosjekter etter mulighet-status ProjectsStatistics=Statistikk over muligheter +TasksStatistics=Statistikk over prosjekter/hovedoppgaver TaskAssignedToEnterTime=Oppgave tildelt. Tidsbruk kan legges til IdTaskTime=Oppgave-tid ID YouCanCompleteRef=Hvis du ønsker å tilføre referansen med litt informasjon (for å bruke det som søkefiltre ), er det anbefalt å legge til et - tegn for å skille den, så den automatiske nummereringen fortsatt fungerer korrekt for neste prosjekt. For eksempel %s-ABC. Du kan også foretrekke å legge søkenøkler til etiketten. Men beste praksis kan være å legge et dedikert felt, også kalt komplementære egenskaper. -OpenedProjectsByThirdparties=Prosjekter åpnet av tredjeparter +OpenedProjectsByThirdparties=Åpne prosjekter etter tredjeparter OnlyOpportunitiesShort=Kun muligheter OpenedOpportunitiesShort=Åpne muligheter NotAnOpportunityShort=Ikke en mulighet diff --git a/htdocs/langs/nb_NO/resource.lang b/htdocs/langs/nb_NO/resource.lang index 74aede2d46a..2fabc89415f 100644 --- a/htdocs/langs/nb_NO/resource.lang +++ b/htdocs/langs/nb_NO/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Vellykket sletting av ressurs DictionaryResourceType=Ressurstype SelectResource=Velg ressurs + +IdResource=ID ressurs +AssetNumber=Serienummer +ResourceTypeCode=Ressurskode +ImportDataset_resource_1=Ressurser diff --git a/htdocs/langs/nb_NO/sendings.lang b/htdocs/langs/nb_NO/sendings.lang index b7c91daac39..6ee1692bdfb 100644 --- a/htdocs/langs/nb_NO/sendings.lang +++ b/htdocs/langs/nb_NO/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Pakkseddel ConfirmDeleteSending=Er du sikker på at du vil slette denne forsendelsen? ConfirmValidateSending=Er du sikker på at du vil validere denne forsendelsen med referanse %s? ConfirmCancelSending=Er du sikker på at du vil kansellere denne forsendelsen? -DocumentModelSimple=Enkel dokumentmodell DocumentModelMerou=Merou A5 modell WarningNoQtyLeftToSend=Advarsel, ingen varer venter på å sendes. StatsOnShipmentsOnlyValidated=Statistikk utført bare på validerte forsendelser. Dato for validering av forsendelsen brukes (planlagt leveringsdato er ikke alltid kjent). @@ -51,10 +50,10 @@ ActionsOnShipping=Hendelser for forsendelse LinkToTrackYourPackage=Lenke for å spore pakken ShipmentCreationIsDoneFromOrder=For øyeblikket er opprettelsen av en ny forsendelse gjort fra ordrekortet. ShipmentLine=Forsendelseslinje -ProductQtyInCustomersOrdersRunning=Varekvantum i åpnede kundeordre -ProductQtyInSuppliersOrdersRunning=Varekvantum i åpnede leverandørordre -ProductQtyInShipmentAlreadySent=Varekvantum i åpnede kundeordre som er sendt -ProductQtyInSuppliersShipmentAlreadyRecevied=Varekvantum i åpnede leverandørordre som er mottatt +ProductQtyInCustomersOrdersRunning=Varekvantum i åpne kundeordre +ProductQtyInSuppliersOrdersRunning=Varekvantum i åpne leverandørordre +ProductQtyInShipmentAlreadySent=Varekvantitet fra åpen kundeordre som allerede er sendt +ProductQtyInSuppliersShipmentAlreadyRecevied=Varekvantitet fra åpen leverandørordre som allerede er mottatt NoProductToShipFoundIntoStock=Ingen varer for utsendelse funnet på lager %s. Korriger varebeholdning eller gå tilbake for å velge et annet lager. WeightVolShort=Vekt/volum ValidateOrderFirstBeforeShipment=Du må validere ordren før du kan utføre forsendelser diff --git a/htdocs/langs/nb_NO/stocks.lang b/htdocs/langs/nb_NO/stocks.lang index 6c00292f6e2..8fa1e554d85 100644 --- a/htdocs/langs/nb_NO/stocks.lang +++ b/htdocs/langs/nb_NO/stocks.lang @@ -22,15 +22,15 @@ Movements=Bevegelser ErrorWarehouseRefRequired=Du må angi et navn på lageret ListOfWarehouses=Oversikt over lagre ListOfStockMovements=Oversikt over bevegelser -StockMovementForId=Movement ID %d -ListMouvementStockProject=List of stock movements associated to project +StockMovementForId=Bevegelse ID %d +ListMouvementStockProject=Liste over varebevegelser tilknyttet prosjekt StocksArea=Område for lager Location=Lokasjon LocationSummary=Kort navn på lokasjon NumberOfDifferentProducts=Antall forskjellige varer NumberOfProducts=Totalt antall varer -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Siste bevegelse +LastMovements=Siste bevegelser Units=Enheter Unit=Enhet StockCorrection=Korriger lagerbeholdning @@ -42,13 +42,13 @@ LabelMovement=Bevegelse-etikett NumberOfUnit=Antall enheter UnitPurchaseValue=Enhets innkjøpspris StockTooLow=For lav beholdning -StockLowerThanLimit=Lagerbeholdning lavere en varslingsgrense +StockLowerThanLimit=Lager lavere enn varslingsgrense (%s) EnhancedValue=Verdi PMPValue=Vektet gjennomsnittspris PMPValueShort=WAP EnhancedValueOfWarehouses=Lagerverdi UserWarehouseAutoCreate=Opprett lager automatisk når en bruker opprettes -AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product +AllowAddLimitStockByWarehouse=Tillat å legge til grense og ønsket lager pr. par (vare, lager) i stedet for pr. produkt IndependantSubProductStock=Varelager og sub-varelager er uavhengig av hverandre QtyDispatched=Antall sendt QtyDispatchedShort=Mengde utsendt @@ -62,16 +62,19 @@ DeStockOnShipment=Minsk fysisk lager ved validering av forsendelse DeStockOnShipmentOnClosing=Reduser reell varebeholdning når levering klassifiseres som lukket ReStockOnBill=Øk virkelig beholdning ut fra faktura/kreditnota ReStockOnValidateOrder=Øk virkelig beholdning ut fra ordre -ReStockOnDispatchOrder=Øk virkelig lager ved manuell utsendelse til lager, etter mottak av leverandørordre +ReStockOnDispatchOrder=Øk reell varebeholdning ved manuell forsendelse til lager, etter mottak av leverandørordre OrderStatusNotReadyToDispatch=Ordre har enda ikke, eller ikke lenger, status som tillater utsendelse av varer -StockDiffPhysicTeoric=Forklaring av differanse mellom fysisk og teoretisk lagerbeholdning +StockDiffPhysicTeoric=Forklaring for forskjell mellom fysisk og virtuelt lager NoPredefinedProductToDispatch=Ingen forhåndsdefinerte varer for dette objektet. Så ingen lagerutsending er nødvendig. DispatchVerb=Send ut StockLimitShort=Varslingsgrense StockLimit=Varslingsgrense for lagerbeholdning PhysicalStock=Fysisk beholdning RealStock=Virkelig beholdning +RealStockDesc=Fysisk eller reelt lager er beholdningen du for øyeblikket har i dine interne varehus. +RealStockWillAutomaticallyWhen=Den reelle varebeholdningen endres automatisk i henhold til disse reglene (se lagermoduloppsett for å endre dette): VirtualStock=Virtuell beholdning +VirtualStockDesc=Virtuell aksje er beholdningen du vil få når alle åpne ventende handlinger som påvirker lager, lukkes (leverandørordre mottatt, kundeordre sendt, ...) IdWarehouse=Lager-ID DescWareHouse=Beskrivelse av lager LieuWareHouse=Lagerlokasjon @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Beholdning av varen %s før valgte periode (< %s) NbOfProductAfterPeriod=Beholdning av varen %s før etter periode (< %s) MassMovement=Massebevegelse SelectProductInAndOutWareHouse=Velg en vare, etnkvantum, et kildelager og et mållager, og klikk deretter på "%s". Når dette er gjort for alle nødvendige bevegelser, klikk på "%s". -RecordMovement=Post overført +RecordMovement=Postoverføring ReceivingForSameOrder=Kvitteringer for denne ordren StockMovementRecorded=Registrerte varebevegelser RuleForStockAvailability=Regler og krav for lagerbeholdning @@ -135,11 +138,58 @@ InventoryCodeShort=Lag./bev.-kode NoPendingReceptionOnSupplierOrder=Ingen ventende mottak grunnet åpen leverandørordre ThisSerialAlreadyExistWithDifferentDate=Dette lot/serienummeret (%s) finnes allerede, men med ulik "best før" og "siste forbruksdag" (funnet %s , men tastet inn %s). OpenAll=Åpen for alle handlinger -OpenInternal=Open only for internal actions -UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception +OpenInternal=Kun åpen for interne hendelser +UseDispatchStatus=Bruk en utsendelses-status (godkjenn/avslå) for varelinjer på leverandør ordremottak OptionMULTIPRICESIsOn=Opsjonen "Flere priser pr. segment" er slått på. Det betyr at en vare har flere utsalgspriser og salgsverdi ikke kan kalkuleres ProductStockWarehouseCreated=Varsel for nedre og ønsket varebeholdning opprettet ProductStockWarehouseUpdated=Varsel for nedre og ønsket varebeholdning oppdatert ProductStockWarehouseDeleted=Varsel for nedre og ønsket varebeholdning slettet AddNewProductStockWarehouse=Sett ny grense for nedre og ønsket varebeholdning -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +AddStockLocationLine=Reduser mengden, legg deretter til et annet lager for dette produktet +InventoryDate=Lagerdato +NewInventory=Ny oversikt +inventorySetup = Oppsett av varetelling +inventoryCreatePermission=Opprett ny varetelling +inventoryReadPermission=Vis varetellinger +inventoryWritePermission=Oppdater oversikt +inventoryValidatePermission=Valider varetelling +inventoryTitle=Varetelling +inventoryListTitle=Varetellinger +inventoryListEmpty=Ingen varetelling pågår +inventoryCreateDelete=Opprett/slett varetelling +inventoryCreate=Opprett ny +inventoryEdit=Endre +inventoryValidate=Validert +inventoryDraft=Løpende +inventorySelectWarehouse=Lagervalg +inventoryConfirmCreate=Opprett +inventoryOfWarehouse=Oversiktfor lager: %s +inventoryErrorQtyAdd=Feil: en mengde er mindre enn null +inventoryMvtStock=Etter varetelling +inventoryWarningProductAlreadyExists=Denne varen er allerede på listen +SelectCategory=Kategorifilter +SelectFournisseur=Leverandørfilter +inventoryOnDate=Varetelling +INVENTORY_DISABLE_VIRTUAL=Tillat å ikke redusere subvare fra et sett på lager +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Bruk innkjøpspris hvis ingen siste innkjøpspris finnes +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Lagerbevegelse har dato for varetelling +inventoryChangePMPPermission=Tillat å endre PMP-verdi for en vare +ColumnNewPMP=Ny enhet PMP +OnlyProdsInStock=Ikke legg til vare uten lager +TheoricalQty=Teoretisk antall +TheoricalValue=Teoretisk antall +LastPA=Siste BP +CurrentPA=Gjeldende BP +RealQty=Virkelig antall +RealValue=Virkelig verdi +RegulatedQty=Regulert antall +AddInventoryProduct=Legg til vare i varetelling +AddProduct=Legg til +ApplyPMP=Legg til PMP +FlushInventory=Tøm varetelling +ConfirmFlushInventory=Bekrefter du denne handlingen? +InventoryFlushed=Varetelling tømt +ExitEditMode=Avslutt endring +inventoryDeleteLine=Slett linje +RegulateStock=Reguler lager +ListInventory=Liste diff --git a/htdocs/langs/nb_NO/stripe.lang b/htdocs/langs/nb_NO/stripe.lang new file mode 100644 index 00000000000..370e76ddd50 --- /dev/null +++ b/htdocs/langs/nb_NO/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe-moduloppsett +StripeDesc=Denne modulen tilbyr sider for å tillate betaling på Stripe av kunder. Dette kan brukes til gratis betaling eller for betaling på et bestemt Dolibarr-objekt (faktura, bestilling, ...) +StripeOrCBDoPayment=Betal med kredittkort eller Stripe +FollowingUrlAreAvailableToMakePayments=Følgende nettadresser er tilgjengelige for kundene til å foreta betalinger for Dolibarr objekter +PaymentForm=Betalingskjema +WelcomeOnPaymentPage=Velkommen på våre elektroniske betalingstjenester +ThisScreenAllowsYouToPay=I detteskjermbildet kan du foreta en online betaling til %s. +ThisIsInformationOnPayment=Betalingsinformasjon +ToComplete=For å fullføre +YourEMail=E-post for betalingsbekreftelsen +STRIPE_PAYONLINE_SENDEMAIL=E-post-varsel etter en betaling (vellykket eller ikke) +Creditor=Kreditor +PaymentCode=Betalingskode +StripeDoPayment=Gå til betaling +YouWillBeRedirectedOnStripe=Du blir omdirigert til en sikret Stripeside for å legge inn kredittkortinformasjon +Continue=Neste +ToOfferALinkForOnlinePayment=URL for %s betaling +ToOfferALinkForOnlinePaymentOnOrder=URL for å tilby et %s brukergrensesnitt for online betaling av kundeordre +ToOfferALinkForOnlinePaymentOnInvoice=URL for å tilby et %s brukergrensesnitt for online betaling av kundefaktura +ToOfferALinkForOnlinePaymentOnContractLine=URL for å tilby et %s brukergrensesnitt for online betaling av en kontraktlinje +ToOfferALinkForOnlinePaymentOnFreeAmount=URL for å tilby et %s brukergrensesnitt for online betaling av et fribeløp beløp +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL for å tilby et %s brukergrensesnitt for online betaling av medlemsabonnement +YouCanAddTagOnUrl=Du kan også legge til URL-parameter &tag=verdier til noen av disse URLene (kreves kun ved betaling av fribeløp) for å legge til dine egne merknader til betalingen kommentar. +SetupStripeToHavePaymentCreatedAutomatically=Sett opp Stripe med url %s for å få betaling opprettet automatisk når den er validert av Stripe. +YourPaymentHasBeenRecorded=Denne siden bekrefter at din betaling er registrert. Takk. +YourPaymentHasNotBeenRecorded=Din betaling ble ikke registrert og transaksjonen har blitt kansellert. +AccountParameter=Kontoparametre +UsageParameter=Parametre for bruk +InformationToFindParameters=Hjelp til å finne din %s kontoinformasjon +STRIPE_CGI_URL_V2=Url av Stripe CGI-modul for betaling +VendorName=Navn på leverandøren +CSSUrlForPaymentForm=URL til CSS-stilark for betalingsskjema +MessageOK=Returside for melding om validert betaling +MessageKO=Returside for melding om avbrutt betaling +NewStripePaymentReceived=Ny Stripe betaling mottatt +NewStripePaymentFailed=Ny Stripe betaling prøvd men mislyktes +STRIPE_TEST_SECRET_KEY=Hemmelig testnøkkel +STRIPE_TEST_PUBLISHABLE_KEY=Publiserbar testnøkkel +STRIPE_LIVE_SECRET_KEY=Hemmelig live-nøkkel +STRIPE_LIVE_PUBLISHABLE_KEY=Publiserbar live-nøkkel +StripeLiveEnabled=Stripe live aktivert (ellers test/sandbox modus) diff --git a/htdocs/langs/nb_NO/trips.lang b/htdocs/langs/nb_NO/trips.lang index a9297977a60..c2bbaab5985 100644 --- a/htdocs/langs/nb_NO/trips.lang +++ b/htdocs/langs/nb_NO/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Oversikt over avgifter TypeFees=Avgiftstyper ShowTrip=Vis utgiftsrapport NewTrip=Ny reiseregning -CompanyVisited=Firma/organiasjon besøkt +CompanyVisited=Firma/organisasjon besøkt FeesKilometersOrAmout=Beløp eller kilometer DeleteTrip=Slett reiseregning ConfirmDeleteTrip=Er du sikker på at du vil slette denne utgiftsrapporten? @@ -21,9 +21,9 @@ ListToApprove=Venter på godkjenning ExpensesArea=Område for reiseregninger ClassifyRefunded=Klassifisert 'refundert' ExpenseReportWaitingForApproval=En ny reiseregning er sendt inn for godkjenning -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s -ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval -ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=En ny utgiftsrapport er blitt sendt inn og venter på godkjenning.\n-Bruker: %s\n-Periode: %s\nKlikk her for å validere: %s +ExpenseReportWaitingForReApproval=En utgiftsrapport er blitt sendt inn for ny godkjenning +ExpenseReportWaitingForReApprovalMessage=En utgiftsrapport er blitt sendt inn og venter på ny godkjenning.\n%s, du godkjente ikke rapporten på grunn av: %s\nEn ny versjon er blitt sendt inn og venter på din godkjenning.\n- Bruker: %s\n- Periode: %s\nKlikk her for å validere: %s ExpenseReportApproved=En utgiftsrapport ble godkjent ExpenseReportApprovedMessage=Utgiftrapport %s ble godkjent.\n- Bruker: %s\n- Godkjent av: %s\nKlikk her for å vise utgiftsrapporten: %s ExpenseReportRefused=En utgiftsrapport ble avvist @@ -70,6 +70,7 @@ DATE_SAVE=Godkjennelsesdato DATE_CANCEL=Kansellert dato DATE_PAIEMENT=Betalt dato BROUILLONNER=Gjenåpne +ExpenseReportRef=Ref. utgiftsrapport ValidateAndSubmit=Valider og send til godkjenning ValidatedWaitingApproval=Validert (venter på godkjenning) NOT_AUTHOR=Reiseregningener ikke opprettet av deg. Operasjonen avbrutt. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Ingen reiseregning å eksportere for denne perioden ExpenseReportPayment=Betaling av utgiftsrapport ExpenseReportsToApprove=Utgiftsrapporter for godkjenning ExpenseReportsToPay=Utgiftsrapport å betale -CloneExpenseReport=Klon utgiftsrapport +CloneExpenseReport=Klon kostnadsrapport ConfirmCloneExpenseReport=Er du sikker på at du vil klone denne utgiftsrapporten? diff --git a/htdocs/langs/nb_NO/users.lang b/htdocs/langs/nb_NO/users.lang index 25974e60c54..0bb7b019a0e 100644 --- a/htdocs/langs/nb_NO/users.lang +++ b/htdocs/langs/nb_NO/users.lang @@ -66,8 +66,8 @@ InternalUser=Intern bruker ExportDataset_user_1=Dolibarr brukere og egenskaper DomainUser=Domenebruker %s Reactivate=Reaktiver -CreateInternalUserDesc=Med dette skjemaet kan du opprette en intern bruker til din bedrift/organisasjon. For å lage en ekstern bruker (kunde, leverandør, osv), bruk knappen 'Lag Dolibarr bruker' fra tredjeparts kontaktkort -InternalExternalDesc=En intern bruker er er en som er en del av firmaet/organisasjonen.
En ekstern bruker er en kunde, leverandør eller annen tredjeperson.

I begge tilfelle styres brukeren av Dolibarr-rettigheter. Dessuten kan eksterne brukere ha en annen menybehandler enn interne brukere (Se Hjem - Oppsett - Visning) +CreateInternalUserDesc=Dette skjemaet gir deg mulighet til å opprette en intern bruker til din bedrift/organisasjon. For å opprette en ekstern bruker (kunde, leverandør, ...), bruk knappen "Opprett Dolibarr-bruker" fra tredjeparts kontaktkort. +InternalExternalDesc=En intern bruker er en bruker som er en del av firmaet / organisasjonen.
En ekstern bruker er en kunde, leverandør eller annen.

Begge tilfeller definerer rettigheter i Dolibarr. Også eksterne brukere kan ha en annen menybehandling enn interne brukere (Se Hjem - Oppsett - Skjerm) PermissionInheritedFromAGroup=Rettigheter innvilget fordi de er arvet av en brukegruppe. Inherited=Arvet UserWillBeInternalUser=Opprettet bruker vil være en intern bruker (fordi ikke knyttet til en bestemt tredjepart) diff --git a/htdocs/langs/nb_NO/website.lang b/htdocs/langs/nb_NO/website.lang index aa3e3a60f61..2b1eef2ec38 100644 --- a/htdocs/langs/nb_NO/website.lang +++ b/htdocs/langs/nb_NO/website.lang @@ -24,5 +24,5 @@ SetAsHomePage=Sett som startside RealURL=Virkelig URL ViewWebsiteInProduction=Vis webside ved hjelp av hjemme-URL SetHereVirtualHost=Hvis du kan sette opp en dedikert virtuell vert med en rotkatalog på %s på webserveren din, kan du definere det virtuelle vertsnavnet her, slik at forhåndsvisningen også kan gjøres ved hjelp av denne direkte webserver-adgangen og ikke bare ved bruk av Dolibarr serveren. -PreviewSiteServedByWebServer=Forhåndsvis %s i en ny fane. %s will bli håndtert av en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren først.
URL'en til %s håndtert av ekstern server:
%s -PreviewSiteServedByDolibarr=Forhåndsvis %s i en ny fane. %s vil håndteres av Dolibarr-serveren slik at det ikke er behov for en ekstern webserver (som Apache, Nginx, IIS).
Det upraktiske er at URL til websider bruker banen til Dolibarr.
URL'en til %s håndtert av Dolibarr:
%s +PreviewSiteServedByWebServer=Forhåndsvis %s i en ny fane.

%s vil bli kjørt på en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren før du peker på katalogen:
%s
URL til ekstern server:
%s +PreviewSiteServedByDolibarr=Forhåndsvisning %s i en ny fane.

%s vil bli kjørt av Dolibarr-serveren, slik at det ikke trengs noen ekstra webserver (som Apache, Nginx, IIS).
Bakdelen er at nettadressen til sidene er ikke brukervennlige og starter med banen til Dolibarr.
URL kjørt av Dolibarr:
%s

For å bruke din egen eksterne webserver til å betjene denne websiden, opprett en virtuell vert på webserveren din som peker på katalogen
%s
og skriv deretter inn navnet på denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen. From 504d376f843e1cc933f8ac46bd51aa6423cb370e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:34:33 +0200 Subject: [PATCH 034/515] Sync transifex --- htdocs/langs/ar_SA/accountancy.lang | 92 +- htdocs/langs/ar_SA/admin.lang | 115 +- htdocs/langs/ar_SA/compta.lang | 18 +- htdocs/langs/ar_SA/cron.lang | 16 +- htdocs/langs/ar_SA/errors.lang | 15 +- htdocs/langs/ar_SA/main.lang | 42 +- htdocs/langs/ar_SA/other.lang | 44 +- htdocs/langs/ar_SA/projects.lang | 31 +- htdocs/langs/bg_BG/accountancy.lang | 86 +- htdocs/langs/bg_BG/admin.lang | 115 +- htdocs/langs/bg_BG/compta.lang | 18 +- htdocs/langs/bg_BG/cron.lang | 16 +- htdocs/langs/bg_BG/errors.lang | 15 +- htdocs/langs/bg_BG/main.lang | 42 +- htdocs/langs/bg_BG/other.lang | 44 +- htdocs/langs/bg_BG/projects.lang | 31 +- htdocs/langs/bn_BD/accountancy.lang | 86 +- htdocs/langs/bn_BD/admin.lang | 115 +- htdocs/langs/bn_BD/compta.lang | 18 +- htdocs/langs/bn_BD/cron.lang | 16 +- htdocs/langs/bn_BD/errors.lang | 15 +- htdocs/langs/bn_BD/main.lang | 42 +- htdocs/langs/bn_BD/other.lang | 44 +- htdocs/langs/bn_BD/projects.lang | 31 +- htdocs/langs/bs_BA/accountancy.lang | 140 +- htdocs/langs/bs_BA/admin.lang | 249 ++- htdocs/langs/bs_BA/banks.lang | 139 +- htdocs/langs/bs_BA/bills.lang | 214 +- htdocs/langs/bs_BA/boxes.lang | 6 +- htdocs/langs/bs_BA/companies.lang | 211 +- htdocs/langs/bs_BA/compta.lang | 82 +- htdocs/langs/bs_BA/contracts.lang | 2 + htdocs/langs/bs_BA/cron.lang | 20 +- htdocs/langs/bs_BA/ecm.lang | 4 +- htdocs/langs/bs_BA/errors.lang | 15 +- htdocs/langs/bs_BA/holiday.lang | 6 +- htdocs/langs/bs_BA/install.lang | 29 +- htdocs/langs/bs_BA/main.lang | 1434 ++++++------- htdocs/langs/bs_BA/members.lang | 10 +- htdocs/langs/bs_BA/orders.lang | 6 +- htdocs/langs/bs_BA/other.lang | 44 +- htdocs/langs/bs_BA/printing.lang | 6 +- htdocs/langs/bs_BA/products.lang | 35 +- htdocs/langs/bs_BA/projects.lang | 37 +- htdocs/langs/bs_BA/propal.lang | 6 +- htdocs/langs/bs_BA/resource.lang | 7 +- htdocs/langs/bs_BA/stocks.lang | 58 +- htdocs/langs/bs_BA/supplier_proposal.lang | 12 +- htdocs/langs/bs_BA/suppliers.lang | 1 + htdocs/langs/bs_BA/trips.lang | 13 +- htdocs/langs/bs_BA/users.lang | 76 +- htdocs/langs/bs_BA/withdrawals.lang | 7 +- htdocs/langs/ca_ES/accountancy.lang | 92 +- htdocs/langs/ca_ES/admin.lang | 159 +- htdocs/langs/ca_ES/agenda.lang | 6 +- htdocs/langs/ca_ES/compta.lang | 16 +- htdocs/langs/ca_ES/contracts.lang | 2 + htdocs/langs/ca_ES/cron.lang | 18 +- htdocs/langs/ca_ES/errors.lang | 23 +- htdocs/langs/ca_ES/main.lang | 52 +- htdocs/langs/ca_ES/members.lang | 8 +- htdocs/langs/ca_ES/other.lang | 50 +- htdocs/langs/ca_ES/projects.lang | 23 +- htdocs/langs/ca_ES/resource.lang | 5 + htdocs/langs/ca_ES/stocks.lang | 58 +- htdocs/langs/cs_CZ/accountancy.lang | 370 ++-- htdocs/langs/cs_CZ/admin.lang | 867 ++++---- htdocs/langs/cs_CZ/compta.lang | 124 +- htdocs/langs/cs_CZ/cron.lang | 52 +- htdocs/langs/cs_CZ/errors.lang | 183 +- htdocs/langs/cs_CZ/main.lang | 282 +-- htdocs/langs/cs_CZ/other.lang | 102 +- htdocs/langs/cs_CZ/projects.lang | 175 +- htdocs/langs/da_DK/accountancy.lang | 86 +- htdocs/langs/da_DK/admin.lang | 115 +- htdocs/langs/da_DK/compta.lang | 18 +- htdocs/langs/da_DK/cron.lang | 16 +- htdocs/langs/da_DK/errors.lang | 15 +- htdocs/langs/da_DK/main.lang | 42 +- htdocs/langs/da_DK/other.lang | 44 +- htdocs/langs/da_DK/projects.lang | 31 +- htdocs/langs/de_AT/accountancy.lang | 2 - htdocs/langs/de_AT/admin.lang | 1567 +------------- htdocs/langs/de_AT/banks.lang | 1 - htdocs/langs/de_AT/compta.lang | 2 +- htdocs/langs/de_AT/main.lang | 757 +------ htdocs/langs/de_AT/paypal.lang | 2 - htdocs/langs/de_CH/accountancy.lang | 1 - htdocs/langs/de_CH/admin.lang | 1453 +------------ htdocs/langs/de_CH/bills.lang | 2 - htdocs/langs/de_CH/companies.lang | 1 - htdocs/langs/de_CH/cron.lang | 1 - htdocs/langs/de_CH/main.lang | 708 +------ htdocs/langs/de_CH/projects.lang | 1 - htdocs/langs/de_DE/accountancy.lang | 150 +- htdocs/langs/de_DE/admin.lang | 275 +-- htdocs/langs/de_DE/agenda.lang | 20 +- htdocs/langs/de_DE/banks.lang | 65 +- htdocs/langs/de_DE/bills.lang | 138 +- htdocs/langs/de_DE/bookmarks.lang | 6 +- htdocs/langs/de_DE/boxes.lang | 18 +- htdocs/langs/de_DE/categories.lang | 5 +- htdocs/langs/de_DE/commercial.lang | 5 +- htdocs/langs/de_DE/companies.lang | 23 +- htdocs/langs/de_DE/compta.lang | 28 +- htdocs/langs/de_DE/contracts.lang | 4 +- htdocs/langs/de_DE/cron.lang | 20 +- htdocs/langs/de_DE/errors.lang | 45 +- htdocs/langs/de_DE/exports.lang | 16 +- htdocs/langs/de_DE/holiday.lang | 6 +- htdocs/langs/de_DE/install.lang | 3 +- htdocs/langs/de_DE/mails.lang | 40 +- htdocs/langs/de_DE/main.lang | 102 +- htdocs/langs/de_DE/members.lang | 24 +- htdocs/langs/de_DE/other.lang | 56 +- htdocs/langs/de_DE/paypal.lang | 10 +- htdocs/langs/de_DE/products.lang | 115 +- htdocs/langs/de_DE/projects.lang | 69 +- htdocs/langs/de_DE/sendings.lang | 21 +- htdocs/langs/de_DE/stocks.lang | 68 +- htdocs/langs/de_DE/users.lang | 8 +- htdocs/langs/de_DE/workflow.lang | 4 +- htdocs/langs/el_CY/accountancy.lang | 2 - htdocs/langs/el_CY/admin.lang | 1665 +-------------- htdocs/langs/el_CY/main.lang | 800 ------- htdocs/langs/el_GR/accountancy.lang | 86 +- htdocs/langs/el_GR/admin.lang | 115 +- htdocs/langs/el_GR/compta.lang | 20 +- htdocs/langs/el_GR/cron.lang | 16 +- htdocs/langs/el_GR/errors.lang | 15 +- htdocs/langs/el_GR/main.lang | 44 +- htdocs/langs/el_GR/other.lang | 44 +- htdocs/langs/el_GR/projects.lang | 29 +- htdocs/langs/en_AU/accountancy.lang | 4 - htdocs/langs/en_AU/admin.lang | 1652 +-------------- htdocs/langs/en_AU/bills.lang | 2 - htdocs/langs/en_AU/cashdesk.lang | 1 - htdocs/langs/en_AU/main.lang | 778 ------- htdocs/langs/en_AU/trips.lang | 2 - htdocs/langs/en_CA/accountancy.lang | 4 - htdocs/langs/en_CA/admin.lang | 1660 +-------------- htdocs/langs/en_CA/cashdesk.lang | 2 - htdocs/langs/en_CA/main.lang | 793 ------- htdocs/langs/en_CA/trips.lang | 2 - htdocs/langs/en_GB/accountancy.lang | 4 - htdocs/langs/en_GB/admin.lang | 1630 +-------------- htdocs/langs/en_GB/bills.lang | 2 - htdocs/langs/en_GB/cashdesk.lang | 2 - htdocs/langs/en_GB/main.lang | 770 ------- htdocs/langs/en_GB/stocks.lang | 1 - htdocs/langs/en_GB/trips.lang | 1 - htdocs/langs/en_IN/accountancy.lang | 4 - htdocs/langs/en_IN/admin.lang | 1665 +-------------- htdocs/langs/en_IN/cashdesk.lang | 2 - htdocs/langs/en_IN/main.lang | 800 ------- htdocs/langs/en_IN/trips.lang | 2 - htdocs/langs/es_AR/accountancy.lang | 4 - htdocs/langs/es_AR/admin.lang | 1665 +-------------- htdocs/langs/es_AR/main.lang | 800 ------- htdocs/langs/es_BO/accountancy.lang | 4 - htdocs/langs/es_BO/admin.lang | 1665 +-------------- htdocs/langs/es_BO/main.lang | 800 ------- htdocs/langs/es_CL/accountancy.lang | 4 - htdocs/langs/es_CL/admin.lang | 1647 +-------------- htdocs/langs/es_CL/main.lang | 794 +------ htdocs/langs/es_CL/other.lang | 1 + htdocs/langs/es_CO/accountancy.lang | 4 - htdocs/langs/es_CO/admin.lang | 1657 +-------------- htdocs/langs/es_CO/compta.lang | 1 + htdocs/langs/es_CO/main.lang | 784 ------- htdocs/langs/es_DO/accountancy.lang | 4 - htdocs/langs/es_DO/admin.lang | 1645 +-------------- htdocs/langs/es_DO/main.lang | 800 ------- htdocs/langs/es_EC/accountancy.lang | 4 - htdocs/langs/es_EC/admin.lang | 1665 +-------------- htdocs/langs/es_EC/main.lang | 800 ------- htdocs/langs/es_ES/accountancy.lang | 86 +- htdocs/langs/es_ES/admin.lang | 99 +- htdocs/langs/es_ES/compta.lang | 14 +- htdocs/langs/es_ES/cron.lang | 16 +- htdocs/langs/es_ES/errors.lang | 15 +- htdocs/langs/es_ES/main.lang | 38 +- htdocs/langs/es_ES/other.lang | 44 +- htdocs/langs/es_ES/projects.lang | 23 +- htdocs/langs/es_MX/accountancy.lang | 234 +-- htdocs/langs/es_MX/admin.lang | 1633 +-------------- htdocs/langs/es_MX/companies.lang | 1 - htdocs/langs/es_MX/compta.lang | 1 + htdocs/langs/es_MX/main.lang | 529 +---- htdocs/langs/es_MX/other.lang | 1 + htdocs/langs/es_PA/accountancy.lang | 4 - htdocs/langs/es_PA/admin.lang | 1666 +-------------- htdocs/langs/es_PA/main.lang | 800 ------- htdocs/langs/es_PE/accountancy.lang | 4 +- htdocs/langs/es_PE/admin.lang | 1655 +-------------- htdocs/langs/es_PE/main.lang | 794 ------- htdocs/langs/es_PY/accountancy.lang | 4 - htdocs/langs/es_PY/admin.lang | 1665 +-------------- htdocs/langs/es_PY/main.lang | 800 ------- htdocs/langs/es_VE/accountancy.lang | 4 - htdocs/langs/es_VE/admin.lang | 1650 --------------- htdocs/langs/es_VE/main.lang | 787 +------ htdocs/langs/es_VE/other.lang | 1 - htdocs/langs/es_VE/supplier_proposal.lang | 1 - htdocs/langs/et_EE/accountancy.lang | 86 +- htdocs/langs/et_EE/admin.lang | 115 +- htdocs/langs/et_EE/compta.lang | 18 +- htdocs/langs/et_EE/cron.lang | 16 +- htdocs/langs/et_EE/errors.lang | 15 +- htdocs/langs/et_EE/main.lang | 42 +- htdocs/langs/et_EE/other.lang | 44 +- htdocs/langs/et_EE/projects.lang | 31 +- htdocs/langs/eu_ES/accountancy.lang | 86 +- htdocs/langs/eu_ES/admin.lang | 115 +- htdocs/langs/eu_ES/compta.lang | 18 +- htdocs/langs/eu_ES/cron.lang | 16 +- htdocs/langs/eu_ES/errors.lang | 15 +- htdocs/langs/eu_ES/main.lang | 42 +- htdocs/langs/eu_ES/other.lang | 44 +- htdocs/langs/eu_ES/projects.lang | 31 +- htdocs/langs/fa_IR/accountancy.lang | 86 +- htdocs/langs/fa_IR/admin.lang | 115 +- htdocs/langs/fa_IR/compta.lang | 18 +- htdocs/langs/fa_IR/cron.lang | 16 +- htdocs/langs/fa_IR/errors.lang | 15 +- htdocs/langs/fa_IR/main.lang | 42 +- htdocs/langs/fa_IR/other.lang | 44 +- htdocs/langs/fa_IR/projects.lang | 31 +- htdocs/langs/fi_FI/accountancy.lang | 126 +- htdocs/langs/fi_FI/admin.lang | 163 +- htdocs/langs/fi_FI/compta.lang | 20 +- htdocs/langs/fi_FI/cron.lang | 16 +- htdocs/langs/fi_FI/errors.lang | 15 +- htdocs/langs/fi_FI/main.lang | 196 +- htdocs/langs/fi_FI/other.lang | 44 +- htdocs/langs/fi_FI/projects.lang | 33 +- htdocs/langs/fr_BE/accountancy.lang | 4 - htdocs/langs/fr_BE/admin.lang | 1640 +-------------- htdocs/langs/fr_BE/cashdesk.lang | 2 - htdocs/langs/fr_BE/main.lang | 793 ------- htdocs/langs/fr_CA/accountancy.lang | 142 +- htdocs/langs/fr_CA/admin.lang | 1784 +++------------- htdocs/langs/fr_CA/agenda.lang | 13 + htdocs/langs/fr_CA/banks.lang | 41 + htdocs/langs/fr_CA/bills.lang | 82 +- htdocs/langs/fr_CA/boxes.lang | 44 + htdocs/langs/fr_CA/cashdesk.lang | 2 +- htdocs/langs/fr_CA/categories.lang | 11 + htdocs/langs/fr_CA/commercial.lang | 8 +- htdocs/langs/fr_CA/companies.lang | 32 + htdocs/langs/fr_CA/compta.lang | 47 + htdocs/langs/fr_CA/contracts.lang | 63 + htdocs/langs/fr_CA/cron.lang | 46 + htdocs/langs/fr_CA/deliveries.lang | 20 + htdocs/langs/fr_CA/donations.lang | 23 + htdocs/langs/fr_CA/ecm.lang | 30 + htdocs/langs/fr_CA/errors.lang | 169 ++ htdocs/langs/fr_CA/exports.lang | 110 + htdocs/langs/fr_CA/holiday.lang | 74 + htdocs/langs/fr_CA/install.lang | 17 +- htdocs/langs/fr_CA/interventions.lang | 47 + htdocs/langs/fr_CA/ldap.lang | 19 + htdocs/langs/fr_CA/mails.lang | 125 ++ htdocs/langs/fr_CA/main.lang | 877 ++------ htdocs/langs/fr_CA/margins.lang | 32 + htdocs/langs/fr_CA/members.lang | 148 ++ htdocs/langs/fr_CA/oauth.lang | 22 +- htdocs/langs/fr_CA/opensurvey.lang | 44 + htdocs/langs/fr_CA/orders.lang | 102 + htdocs/langs/fr_CA/other.lang | 162 ++ htdocs/langs/fr_CA/paybox.lang | 30 + htdocs/langs/fr_CA/printing.lang | 36 +- htdocs/langs/fr_CA/products.lang | 199 +- htdocs/langs/fr_CA/projects.lang | 143 ++ htdocs/langs/fr_CA/propal.lang | 20 + htdocs/langs/fr_CA/salaries.lang | 5 +- htdocs/langs/fr_CA/sendings.lang | 49 + htdocs/langs/fr_CA/sms.lang | 33 + htdocs/langs/fr_CA/stocks.lang | 106 + htdocs/langs/fr_CA/supplier_proposal.lang | 38 + htdocs/langs/fr_CA/suppliers.lang | 7 + htdocs/langs/fr_CA/trips.lang | 63 + htdocs/langs/fr_CA/users.lang | 14 + htdocs/langs/fr_CA/website.lang | 20 + htdocs/langs/fr_CA/withdrawals.lang | 85 + htdocs/langs/fr_CA/workflow.lang | 3 + htdocs/langs/fr_CH/accountancy.lang | 4 - htdocs/langs/fr_CH/admin.lang | 1665 +-------------- htdocs/langs/fr_CH/cashdesk.lang | 2 - htdocs/langs/fr_CH/main.lang | 800 ------- htdocs/langs/fr_FR/accountancy.lang | 86 +- htdocs/langs/fr_FR/admin.lang | 111 +- htdocs/langs/fr_FR/bills.lang | 24 +- htdocs/langs/fr_FR/companies.lang | 23 +- htdocs/langs/fr_FR/compta.lang | 12 +- htdocs/langs/fr_FR/cron.lang | 18 +- htdocs/langs/fr_FR/errors.lang | 15 +- htdocs/langs/fr_FR/exports.lang | 6 + htdocs/langs/fr_FR/main.lang | 77 +- htdocs/langs/fr_FR/other.lang | 44 +- htdocs/langs/fr_FR/projects.lang | 22 +- htdocs/langs/fr_NC/projects.lang | 192 -- htdocs/langs/fr_NC/sendings.lang | 71 - htdocs/langs/he_IL/accountancy.lang | 86 +- htdocs/langs/he_IL/admin.lang | 115 +- htdocs/langs/he_IL/compta.lang | 18 +- htdocs/langs/he_IL/cron.lang | 16 +- htdocs/langs/he_IL/errors.lang | 15 +- htdocs/langs/he_IL/main.lang | 42 +- htdocs/langs/he_IL/other.lang | 44 +- htdocs/langs/he_IL/projects.lang | 31 +- htdocs/langs/hr_HR/accountancy.lang | 86 +- htdocs/langs/hr_HR/admin.lang | 115 +- htdocs/langs/hr_HR/compta.lang | 18 +- htdocs/langs/hr_HR/cron.lang | 16 +- htdocs/langs/hr_HR/errors.lang | 15 +- htdocs/langs/hr_HR/main.lang | 42 +- htdocs/langs/hr_HR/other.lang | 44 +- htdocs/langs/hr_HR/projects.lang | 31 +- htdocs/langs/hu_HU/accountancy.lang | 90 +- htdocs/langs/hu_HU/admin.lang | 115 +- htdocs/langs/hu_HU/compta.lang | 18 +- htdocs/langs/hu_HU/cron.lang | 40 +- htdocs/langs/hu_HU/errors.lang | 15 +- htdocs/langs/hu_HU/main.lang | 42 +- htdocs/langs/hu_HU/other.lang | 44 +- htdocs/langs/hu_HU/projects.lang | 31 +- htdocs/langs/id_ID/accountancy.lang | 86 +- htdocs/langs/id_ID/admin.lang | 115 +- htdocs/langs/id_ID/compta.lang | 18 +- htdocs/langs/id_ID/cron.lang | 16 +- htdocs/langs/id_ID/errors.lang | 15 +- htdocs/langs/id_ID/main.lang | 42 +- htdocs/langs/id_ID/other.lang | 44 +- htdocs/langs/id_ID/projects.lang | 31 +- htdocs/langs/is_IS/accountancy.lang | 86 +- htdocs/langs/is_IS/admin.lang | 115 +- htdocs/langs/is_IS/compta.lang | 18 +- htdocs/langs/is_IS/cron.lang | 16 +- htdocs/langs/is_IS/errors.lang | 15 +- htdocs/langs/is_IS/main.lang | 42 +- htdocs/langs/is_IS/other.lang | 44 +- htdocs/langs/is_IS/projects.lang | 31 +- htdocs/langs/it_IT/accountancy.lang | 94 +- htdocs/langs/it_IT/admin.lang | 285 +-- htdocs/langs/it_IT/banks.lang | 61 +- htdocs/langs/it_IT/compta.lang | 108 +- htdocs/langs/it_IT/cron.lang | 16 +- htdocs/langs/it_IT/errors.lang | 15 +- htdocs/langs/it_IT/main.lang | 130 +- htdocs/langs/it_IT/other.lang | 68 +- htdocs/langs/it_IT/projects.lang | 103 +- htdocs/langs/ja_JP/accountancy.lang | 86 +- htdocs/langs/ja_JP/admin.lang | 117 +- htdocs/langs/ja_JP/compta.lang | 18 +- htdocs/langs/ja_JP/cron.lang | 16 +- htdocs/langs/ja_JP/errors.lang | 15 +- htdocs/langs/ja_JP/main.lang | 42 +- htdocs/langs/ja_JP/other.lang | 44 +- htdocs/langs/ja_JP/projects.lang | 31 +- htdocs/langs/ka_GE/accountancy.lang | 86 +- htdocs/langs/ka_GE/admin.lang | 115 +- htdocs/langs/ka_GE/compta.lang | 18 +- htdocs/langs/ka_GE/cron.lang | 16 +- htdocs/langs/ka_GE/errors.lang | 15 +- htdocs/langs/ka_GE/main.lang | 42 +- htdocs/langs/ka_GE/other.lang | 44 +- htdocs/langs/ka_GE/projects.lang | 31 +- htdocs/langs/km_KH/accountancy.lang | 86 +- htdocs/langs/km_KH/admin.lang | 115 +- htdocs/langs/km_KH/compta.lang | 18 +- htdocs/langs/km_KH/cron.lang | 16 +- htdocs/langs/km_KH/errors.lang | 15 +- htdocs/langs/km_KH/main.lang | 42 +- htdocs/langs/km_KH/other.lang | 44 +- htdocs/langs/km_KH/projects.lang | 31 +- htdocs/langs/kn_IN/accountancy.lang | 86 +- htdocs/langs/kn_IN/admin.lang | 115 +- htdocs/langs/kn_IN/compta.lang | 18 +- htdocs/langs/kn_IN/cron.lang | 16 +- htdocs/langs/kn_IN/errors.lang | 15 +- htdocs/langs/kn_IN/main.lang | 42 +- htdocs/langs/kn_IN/other.lang | 44 +- htdocs/langs/kn_IN/projects.lang | 31 +- htdocs/langs/ko_KR/accountancy.lang | 86 +- htdocs/langs/ko_KR/admin.lang | 115 +- htdocs/langs/ko_KR/compta.lang | 18 +- htdocs/langs/ko_KR/cron.lang | 16 +- htdocs/langs/ko_KR/errors.lang | 15 +- htdocs/langs/ko_KR/main.lang | 42 +- htdocs/langs/ko_KR/other.lang | 44 +- htdocs/langs/ko_KR/projects.lang | 31 +- htdocs/langs/lo_LA/accountancy.lang | 86 +- htdocs/langs/lo_LA/admin.lang | 115 +- htdocs/langs/lo_LA/compta.lang | 18 +- htdocs/langs/lo_LA/cron.lang | 16 +- htdocs/langs/lo_LA/errors.lang | 15 +- htdocs/langs/lo_LA/main.lang | 42 +- htdocs/langs/lo_LA/other.lang | 44 +- htdocs/langs/lo_LA/projects.lang | 31 +- htdocs/langs/lt_LT/accountancy.lang | 86 +- htdocs/langs/lt_LT/admin.lang | 115 +- htdocs/langs/lt_LT/compta.lang | 18 +- htdocs/langs/lt_LT/cron.lang | 16 +- htdocs/langs/lt_LT/errors.lang | 15 +- htdocs/langs/lt_LT/main.lang | 40 +- htdocs/langs/lt_LT/other.lang | 44 +- htdocs/langs/lt_LT/projects.lang | 31 +- htdocs/langs/lv_LV/accountancy.lang | 86 +- htdocs/langs/lv_LV/admin.lang | 115 +- htdocs/langs/lv_LV/compta.lang | 18 +- htdocs/langs/lv_LV/cron.lang | 16 +- htdocs/langs/lv_LV/errors.lang | 15 +- htdocs/langs/lv_LV/main.lang | 40 +- htdocs/langs/lv_LV/other.lang | 44 +- htdocs/langs/lv_LV/projects.lang | 29 +- htdocs/langs/mk_MK/accountancy.lang | 86 +- htdocs/langs/mk_MK/admin.lang | 115 +- htdocs/langs/mk_MK/compta.lang | 18 +- htdocs/langs/mk_MK/cron.lang | 16 +- htdocs/langs/mk_MK/errors.lang | 15 +- htdocs/langs/mk_MK/main.lang | 42 +- htdocs/langs/mk_MK/other.lang | 44 +- htdocs/langs/mk_MK/projects.lang | 31 +- htdocs/langs/mn_MN/accountancy.lang | 86 +- htdocs/langs/mn_MN/admin.lang | 115 +- htdocs/langs/mn_MN/compta.lang | 18 +- htdocs/langs/mn_MN/cron.lang | 16 +- htdocs/langs/mn_MN/errors.lang | 15 +- htdocs/langs/mn_MN/main.lang | 42 +- htdocs/langs/mn_MN/other.lang | 44 +- htdocs/langs/mn_MN/projects.lang | 31 +- htdocs/langs/nl_BE/accountancy.lang | 4 +- htdocs/langs/nl_BE/admin.lang | 1673 +-------------- htdocs/langs/nl_BE/compta.lang | 3 - htdocs/langs/nl_BE/main.lang | 764 ------- htdocs/langs/nl_BE/other.lang | 1 - htdocs/langs/nl_BE/products.lang | 1 - htdocs/langs/nl_NL/accountancy.lang | 100 +- htdocs/langs/nl_NL/admin.lang | 115 +- htdocs/langs/nl_NL/agenda.lang | 3 + htdocs/langs/nl_NL/compta.lang | 18 +- htdocs/langs/nl_NL/cron.lang | 16 +- htdocs/langs/nl_NL/errors.lang | 15 +- htdocs/langs/nl_NL/main.lang | 42 +- htdocs/langs/nl_NL/other.lang | 44 +- htdocs/langs/nl_NL/projects.lang | 31 +- htdocs/langs/pl_PL/accountancy.lang | 106 +- htdocs/langs/pl_PL/admin.lang | 257 ++- htdocs/langs/pl_PL/compta.lang | 18 +- htdocs/langs/pl_PL/cron.lang | 42 +- htdocs/langs/pl_PL/errors.lang | 29 +- htdocs/langs/pl_PL/main.lang | 98 +- htdocs/langs/pl_PL/other.lang | 120 +- htdocs/langs/pl_PL/projects.lang | 31 +- htdocs/langs/pt_BR/accountancy.lang | 44 +- htdocs/langs/pt_BR/admin.lang | 458 +--- htdocs/langs/pt_BR/banks.lang | 6 +- htdocs/langs/pt_BR/bookmarks.lang | 6 - htdocs/langs/pt_BR/boxes.lang | 1 - htdocs/langs/pt_BR/companies.lang | 3 - htdocs/langs/pt_BR/compta.lang | 5 - htdocs/langs/pt_BR/cron.lang | 9 - htdocs/langs/pt_BR/errors.lang | 3 +- htdocs/langs/pt_BR/main.lang | 427 +--- htdocs/langs/pt_BR/other.lang | 13 - htdocs/langs/pt_BR/paypal.lang | 3 - htdocs/langs/pt_BR/products.lang | 2 - htdocs/langs/pt_BR/projects.lang | 10 +- htdocs/langs/pt_BR/supplier_proposal.lang | 1 - htdocs/langs/pt_PT/accountancy.lang | 402 ++-- htdocs/langs/pt_PT/admin.lang | 2311 +++++++++++---------- htdocs/langs/pt_PT/bills.lang | 78 +- htdocs/langs/pt_PT/bookmarks.lang | 28 +- htdocs/langs/pt_PT/boxes.lang | 30 +- htdocs/langs/pt_PT/companies.lang | 45 +- htdocs/langs/pt_PT/compta.lang | 20 +- htdocs/langs/pt_PT/cron.lang | 24 +- htdocs/langs/pt_PT/errors.lang | 21 +- htdocs/langs/pt_PT/main.lang | 52 +- htdocs/langs/pt_PT/other.lang | 46 +- htdocs/langs/pt_PT/projects.lang | 31 +- htdocs/langs/ro_RO/accountancy.lang | 86 +- htdocs/langs/ro_RO/admin.lang | 115 +- htdocs/langs/ro_RO/compta.lang | 18 +- htdocs/langs/ro_RO/cron.lang | 16 +- htdocs/langs/ro_RO/errors.lang | 15 +- htdocs/langs/ro_RO/main.lang | 40 +- htdocs/langs/ro_RO/other.lang | 44 +- htdocs/langs/ro_RO/paybox.lang | 1 + htdocs/langs/ro_RO/projects.lang | 31 +- htdocs/langs/ru_RU/accountancy.lang | 86 +- htdocs/langs/ru_RU/admin.lang | 227 +- htdocs/langs/ru_RU/compta.lang | 18 +- htdocs/langs/ru_RU/cron.lang | 16 +- htdocs/langs/ru_RU/errors.lang | 15 +- htdocs/langs/ru_RU/main.lang | 98 +- htdocs/langs/ru_RU/other.lang | 44 +- htdocs/langs/ru_RU/projects.lang | 31 +- htdocs/langs/sk_SK/accountancy.lang | 86 +- htdocs/langs/sk_SK/admin.lang | 115 +- htdocs/langs/sk_SK/compta.lang | 18 +- htdocs/langs/sk_SK/cron.lang | 16 +- htdocs/langs/sk_SK/errors.lang | 15 +- htdocs/langs/sk_SK/main.lang | 42 +- htdocs/langs/sk_SK/other.lang | 44 +- htdocs/langs/sk_SK/projects.lang | 31 +- htdocs/langs/sl_SI/accountancy.lang | 92 +- htdocs/langs/sl_SI/admin.lang | 115 +- htdocs/langs/sl_SI/compta.lang | 18 +- htdocs/langs/sl_SI/cron.lang | 16 +- htdocs/langs/sl_SI/dict.lang | 2 +- htdocs/langs/sl_SI/errors.lang | 15 +- htdocs/langs/sl_SI/main.lang | 40 +- htdocs/langs/sl_SI/other.lang | 44 +- htdocs/langs/sl_SI/projects.lang | 31 +- htdocs/langs/sq_AL/accountancy.lang | 86 +- htdocs/langs/sq_AL/admin.lang | 115 +- htdocs/langs/sq_AL/compta.lang | 18 +- htdocs/langs/sq_AL/cron.lang | 16 +- htdocs/langs/sq_AL/errors.lang | 15 +- htdocs/langs/sq_AL/main.lang | 42 +- htdocs/langs/sq_AL/other.lang | 44 +- htdocs/langs/sq_AL/projects.lang | 31 +- htdocs/langs/sr_RS/accountancy.lang | 86 +- htdocs/langs/sr_RS/admin.lang | 115 +- htdocs/langs/sr_RS/compta.lang | 18 +- htdocs/langs/sr_RS/cron.lang | 16 +- htdocs/langs/sr_RS/errors.lang | 15 +- htdocs/langs/sr_RS/main.lang | 42 +- htdocs/langs/sr_RS/other.lang | 44 +- htdocs/langs/sr_RS/projects.lang | 31 +- htdocs/langs/sv_SE/accountancy.lang | 86 +- htdocs/langs/sv_SE/admin.lang | 115 +- htdocs/langs/sv_SE/compta.lang | 18 +- htdocs/langs/sv_SE/cron.lang | 16 +- htdocs/langs/sv_SE/errors.lang | 15 +- htdocs/langs/sv_SE/main.lang | 42 +- htdocs/langs/sv_SE/other.lang | 44 +- htdocs/langs/sv_SE/projects.lang | 31 +- htdocs/langs/sw_SW/accountancy.lang | 86 +- htdocs/langs/sw_SW/admin.lang | 115 +- htdocs/langs/sw_SW/compta.lang | 18 +- htdocs/langs/sw_SW/cron.lang | 16 +- htdocs/langs/sw_SW/errors.lang | 15 +- htdocs/langs/sw_SW/main.lang | 42 +- htdocs/langs/sw_SW/other.lang | 44 +- htdocs/langs/sw_SW/projects.lang | 31 +- htdocs/langs/th_TH/accountancy.lang | 86 +- htdocs/langs/th_TH/admin.lang | 115 +- htdocs/langs/th_TH/compta.lang | 18 +- htdocs/langs/th_TH/cron.lang | 16 +- htdocs/langs/th_TH/errors.lang | 15 +- htdocs/langs/th_TH/main.lang | 42 +- htdocs/langs/th_TH/other.lang | 44 +- htdocs/langs/th_TH/projects.lang | 31 +- htdocs/langs/tr_TR/accountancy.lang | 154 +- htdocs/langs/tr_TR/admin.lang | 137 +- htdocs/langs/tr_TR/compta.lang | 18 +- htdocs/langs/tr_TR/cron.lang | 16 +- htdocs/langs/tr_TR/errors.lang | 15 +- htdocs/langs/tr_TR/main.lang | 40 +- htdocs/langs/tr_TR/other.lang | 44 +- htdocs/langs/tr_TR/projects.lang | 23 +- htdocs/langs/uk_UA/accountancy.lang | 86 +- htdocs/langs/uk_UA/admin.lang | 115 +- htdocs/langs/uk_UA/compta.lang | 18 +- htdocs/langs/uk_UA/cron.lang | 16 +- htdocs/langs/uk_UA/errors.lang | 15 +- htdocs/langs/uk_UA/main.lang | 42 +- htdocs/langs/uk_UA/other.lang | 44 +- htdocs/langs/uk_UA/projects.lang | 31 +- htdocs/langs/uz_UZ/accountancy.lang | 86 +- htdocs/langs/uz_UZ/admin.lang | 115 +- htdocs/langs/uz_UZ/compta.lang | 18 +- htdocs/langs/uz_UZ/cron.lang | 16 +- htdocs/langs/uz_UZ/errors.lang | 15 +- htdocs/langs/uz_UZ/main.lang | 42 +- htdocs/langs/uz_UZ/other.lang | 44 +- htdocs/langs/uz_UZ/projects.lang | 31 +- htdocs/langs/vi_VN/accountancy.lang | 86 +- htdocs/langs/vi_VN/admin.lang | 115 +- htdocs/langs/vi_VN/compta.lang | 18 +- htdocs/langs/vi_VN/cron.lang | 16 +- htdocs/langs/vi_VN/errors.lang | 15 +- htdocs/langs/vi_VN/main.lang | 42 +- htdocs/langs/vi_VN/other.lang | 44 +- htdocs/langs/vi_VN/projects.lang | 31 +- htdocs/langs/zh_CN/accountancy.lang | 86 +- htdocs/langs/zh_CN/admin.lang | 119 +- htdocs/langs/zh_CN/compta.lang | 18 +- htdocs/langs/zh_CN/cron.lang | 16 +- htdocs/langs/zh_CN/errors.lang | 17 +- htdocs/langs/zh_CN/main.lang | 58 +- htdocs/langs/zh_CN/other.lang | 44 +- htdocs/langs/zh_CN/projects.lang | 31 +- htdocs/langs/zh_TW/accountancy.lang | 86 +- htdocs/langs/zh_TW/admin.lang | 115 +- htdocs/langs/zh_TW/compta.lang | 18 +- htdocs/langs/zh_TW/cron.lang | 16 +- htdocs/langs/zh_TW/errors.lang | 15 +- htdocs/langs/zh_TW/main.lang | 42 +- htdocs/langs/zh_TW/other.lang | 44 +- htdocs/langs/zh_TW/projects.lang | 31 +- 604 files changed, 19999 insertions(+), 65100 deletions(-) delete mode 100644 htdocs/langs/de_AT/accountancy.lang delete mode 100644 htdocs/langs/el_CY/accountancy.lang delete mode 100644 htdocs/langs/en_AU/accountancy.lang delete mode 100644 htdocs/langs/en_AU/trips.lang delete mode 100644 htdocs/langs/en_CA/accountancy.lang delete mode 100644 htdocs/langs/en_CA/cashdesk.lang delete mode 100644 htdocs/langs/en_CA/trips.lang delete mode 100644 htdocs/langs/en_GB/accountancy.lang delete mode 100644 htdocs/langs/en_GB/cashdesk.lang delete mode 100644 htdocs/langs/en_IN/accountancy.lang delete mode 100644 htdocs/langs/en_IN/cashdesk.lang delete mode 100644 htdocs/langs/en_IN/trips.lang delete mode 100644 htdocs/langs/es_AR/accountancy.lang delete mode 100644 htdocs/langs/es_BO/accountancy.lang delete mode 100644 htdocs/langs/es_CO/accountancy.lang delete mode 100644 htdocs/langs/es_DO/accountancy.lang delete mode 100644 htdocs/langs/es_EC/accountancy.lang delete mode 100644 htdocs/langs/es_PA/accountancy.lang delete mode 100644 htdocs/langs/es_PY/accountancy.lang delete mode 100644 htdocs/langs/es_VE/accountancy.lang delete mode 100644 htdocs/langs/fr_BE/cashdesk.lang delete mode 100644 htdocs/langs/fr_CH/accountancy.lang delete mode 100644 htdocs/langs/fr_CH/cashdesk.lang delete mode 100644 htdocs/langs/fr_NC/sendings.lang diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 039b124e30b..7e3daf418cc 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -3,8 +3,8 @@ ACCOUNTING_EXPORT_SEPARATORCSV=فاصل العمود لملف التصدير ACCOUNTING_EXPORT_DATE=تنسيق التاريخ لملف التصدير ACCOUNTING_EXPORT_PIECE=تصدير عدد القطعة ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=تصدير مع الحساب العام -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount +ACCOUNTING_EXPORT_LABEL=تصدير التسمية +ACCOUNTING_EXPORT_AMOUNT=تصدير الكمية ACCOUNTING_EXPORT_DEVISE=Export currency Selectformat=حدد تنسيق للملف ACCOUNTING_EXPORT_PREFIX_SPEC=تحديد بادئة لاسم الملف @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=إضافة حساب محاسبي AccountAccounting=حساب محاسبي AccountAccountingShort=حساب +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -66,13 +74,13 @@ MenuLoanAccounts=Loan accounts MenuProductsAccounts=Product accounts ProductsBinding=Products accounts Ventilation=Binding to accounts -CustomersVentilation=Customer invoice binding +CustomersVentilation=ربط فاتورة الزبون SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=دفتر الأستاذ العام +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=إجمالي شراء المورد قبل الضريبة @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=دفتر البيع اليومي @@ -132,19 +140,19 @@ Sens=السيناتور Codejournal=دفتر اليومية NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=دفتر المالية اليومي ExpenseReportsJournal=Expense reports journal DescFinanceJournal=دفتر المالية اليومي المتضمن لجميع الدفعات عن طريق الحساب المصرفي -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=الدائن والمدين لا يمكن أن يكون لهم قيمة في الوقت نفسه - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=قائمة الحسابات المحاسبية Pcgtype=فئة الحساب -Pcgsubtype=تحت فئة الحساب +Pcgsubtype=Subclass of account TotalVente=المبيعات الإجمالية قبل الضريبة TotalMarge=إجمالي هامش المبيعات @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=خطأ، لا يمكنك حذف هذا الحساب المحاسبي لأنه مستخدم MvtNotCorrectlyBalanced=الحركة غير متوازنة\nالدائن =%s\nالمدين =%s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=رمز +Nature=طبيعة +AccountingJournalType1=Various operation +AccountingJournalType2=مبيعات +AccountingJournalType3=مشتريات +AccountingJournalType4=بنك +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=صادرات @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 545f8e03803..652a819b883 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -48,6 +48,7 @@ InternalUsers=مستخدمين داخليين ExternalUsers=مستخدمين خارجيين GUISetup=العرض SetupArea=منطقة الإعداد +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=نموذج لاختبار تحميل ملف (وفقا لبرنامج الإعداد) IfModuleEnabled=ملاحظة : نعم فعالة فقط في حال كان النموذج %s مفعل RemoveLock=قم بحذف الملف %s إذا كان موجوداً لتمكين اداة التحديث @@ -85,7 +86,7 @@ Mask=القناع NextValue=القيمة التالية NextValueForInvoices=القيمة التالية (الفواتير) NextValueForCreditNotes=القيمة التالية (ملاحظات دائن) -NextValueForDeposit=القيمة التالية (وديعة) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=القيمة التالية (استبدال) MustBeLowerThanPHPLimit=ملاحظة : البي إتش بي الخاص بك يحد من حجم الملفات المرفوعة %s %s, مهما كان الحجم المدخل NoMaxSizeByPHPLimit=ملاحظة : لم يتم وضح حد في إعدادات الـ PHP الخاص بك @@ -103,7 +104,7 @@ MenuIdParent=رمز القائمة العليا DetailMenuIdParent=رمز القائمة العليا (فراغ للقائمة العليا) DetailPosition=رتب الرقم لتعريف موقع القائمة AllMenus=الكل -NotConfigured=النموذج غير مهيء +NotConfigured=Module/Application not configured Active=نشطة SetupShort=الإعداد OtherOptions=الخيارات الأخرى @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=ألفاصلة الألفية Destination=المقصد IdModule=ID حدة IdPermissions=ضوابط ID -Modules=النموذج LanguageBrowserParameter=الوحدة %s LocalisationDolibarrParameters=الوحدات المحلية ClientTZ=المنطقة الزمنية للعميل (المستخدم) @@ -123,7 +123,8 @@ PHPTZ=المنطقة الزمنية خادم PHP DaylingSavingTime=التوقيت الصيفي CurrentHour=PHP خادم ساعة CurrentSessionTimeOut=إنتها مدة التصفح الحالية -YouCanEditPHPTZ=لضبط توقيت PHP مختلفة (غير مطلوب)، يمكنك محاولة إضافة .htacces الملف مع مثل هذا الخط "ابق ضاغطا TZ أوروبا / باريس" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=الصلاحيات BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=فقط العناصر من النماذج المفعلة سوف تظهر. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=كلمة السر في قاعدة بيانات InstrucToEncodePass=لديك كلمة السر المشفرة في ملف conf.php، استبدال الخط
$ dolibarr_main_db_pass = "..."؛
بواسطة
$ dolibarr_main_db_pass = "crypted:٪ ليالي". InstrucToClearPass=لديك كلمة مرور فك الشفرة (واضح) في ملف conf.php، استبدال الخط
$ dolibarr_main_db_pass = "crypted: ...".
بواسطة
$ dolibarr_main_db_pass = "%s". ProtectAndEncryptPdfFiles=حماية الملفات ولدت الشعبي (لا recommandd ، تقتحم الجماهيري الشعبي وتوليد) -ProtectAndEncryptPdfFilesDesc=حماية وجود وثيقة من وثائق وتبقي الشعبي توفيرها لقراءة وطباعة أي متصفح الشعبي. ومع ذلك ، وتحريرها ونسخها وليس من الممكن بعد الآن. علما أن استخدام هذه الميزة تجعل بناء عالمي لا يعمل المتراكمة الشعبي (مثل الفواتير غير المدفوعة). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=ميزة DolibarrLicense=الترخيص Developpers=مطوري / المساهمين @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr الانترنت التجريبي OfficialMarketPlace=المسؤول عن وحدات السوق الخارجية / أدونس OfficialWebHostingService=المشار خدمات استضافة المواقع (سحابة استضافة) ReferencedPreferredPartners=الشركاء المفضلين -OtherResources=RESSOURCES AUTRES +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=للمستخدم أو وثائق المطور (الوثيقة، أسئلة وأجوبة ...)،
نلقي نظرة على Dolibarr يكي:
%s ForAnswersSeeForum=عن أي أسئلة أخرى / مساعدة، يمكنك استخدام المنتدى Dolibarr:
%s HelpCenterDesc1=هذا المجال يمكن أن تساعدك في الحصول على مساعدة لتقديم خدمات الدعم على Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=ميزة لا تتوفر على مثل أنظمة ي SubmitTranslation=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل LANGS /%s وتقديم التغيير إلى www.transifex.com/dolibarr-association/dolibarr/~~V SubmitTranslationENUS=إذا ترجمة لهذه اللغة ليست كاملة أو تجد الأخطاء، يمكنك تصحيح هذا عن طريق تحرير الملفات إلى دليل LANGS /%s وتقديم الملفات التي تم تعديلها على dolibarr.org/forum أو للمطورين على github.com/Dolibarr/dolibarr. ModuleSetup=إعداد وحدة -ModulesSetup=نمائط الإعداد +ModulesSetup=Modules/Application setup ModuleFamilyBase=نظام ModuleFamilyCrm=إدارة علاقات العملاء (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr النسخة الحالية CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=خادم التحديث متواجد حاليا +WithCounter=Manage a counter GenericMaskCodes=يمكنك إدخال أي قناع الترقيم. في هذا القناع ، وبعد ويمكن استخدام العلامات :
(000000) يطابق عدد الذي سيكون على كل يزداد ٪ s. كما تدخل العديد من أصفار على النحو المنشود طول المضادة. المضاد وسيتم الانتهاء من اصفار من اليسار من أجل الحصول على أكبر عدد اصفار كما القناع.
000000 +000) (نفس السابقة ولكن يقابل المقابلة لعدد للحق من علامة + يطبق اعتبارا من أول ٪ s.
000000 @ (س) نفس السابقة ولكن المضاد هو إعادة الصفر عندما يتم التوصل إلى الشهر خ خ ما بين 1 و 12). إذا كان هذا الخيار هو المستخدمة وس 2 أو أعلى ، ثم تسلسل (ذ ذ م م)) ((سنة أو ملم)) (مطلوب أيضا.
(ب) اليوم (01 الى 31).
() ملم في الشهر (01 الى 12).
(كذا) ، (سنة)) أو السنة أكثر من 2 أو 4 أو 1 الأرقام.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=جميع الشخصيات الاخرى في قناع سوف تظل سليمة.
المساحات غير مسموح بها.
-GenericMaskCodes4a=ومثال على 99th %s من طرف ثالث TheCompany عمله 2007-01-31 :
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=ومثال على طرف ثالث على إنشاء 2007-03-01 :
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=العودة للتخصيص وفقا لعدد محدد القناع. ServerAvailableOnIPOrPort=الخدمة متاحة في معالجة ٪ ق %s على الميناء ServerNotAvailableOnIPOrPort=الخدمة غير متاحة في التصدي ٪ ق %s على الميناء @@ -369,19 +375,21 @@ Int=عدد صحيح Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = هاتف ExtrafieldPrice = الأسعار ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=الرمز السري -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= مربع من الجدول +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=رابط إلى كائن +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=حقل +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=& مجموعات المستخدمين Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=ويلاحظ اعتماد الفواتير وإدارة العمل Module40Name=الموردين Module40Desc=الموردين وإدارة وشراء (الأوامر والفواتير) Module42Name=Syslog -Module42Desc=قطع الأشجار مرافق (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=المحررين Module49Desc=المحررين إدارة Module50Name=المنتجات @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=التكامل Webcalendar Module500Name=المصروفات الخاصة Module500Desc=إدارة المصروفات الخاصة (الضرائب، الضرائب الاجتماعية أو المالية وتوزيعات الأرباح) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=قرض Module520Desc=إدارة القروض Module600Name=الإخطارات @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP التحويلات Maxmind القدرات Module3100Name=سكايب Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=إدارة الموارد البشرية +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=شركة متعددة Module5000Desc=يسمح لك لإدارة الشركات المتعددة Module6000Name=سير العمل @@ -591,7 +615,7 @@ Permission32=إنشاء / تعديل المنتجات Permission34=حذف المنتجات Permission36=انظر / إدارة المنتجات المخفية Permission38=منتجات التصدير -Permission41=مشاريع القراءة والمهام (مشروع مشترك ومشاريع انا اتصال ل). كما يمكن أن يدخل الوقت المستهلك في المهام الموكلة (الجدول الزمني) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=حذف مشاريع Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=طرق ترتيب DictionarySource=أصل مقترحات / أوامر DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=نماذج للتخطيط للحسابات +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=رسائل البريد الإلكتروني قوالب DictionaryUnits=الوحدات DictionaryProspectStatus=حالة التنقيب DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=الوضع فرصة للمشروع / الرصاص SetupSaved=الإعداد المحفوظة +SetupNotSaved=Setup not saved BackToModuleList=العودة إلى قائمة الوحدات BackToDictionaryList=العودة إلى قائمة القواميس VATManagement=إدارة الضريبة على القيمة المضافة @@ -921,7 +947,7 @@ Host=الخادم DriverType=سائق نوع SummarySystem=نظام معلومات موجزة SummaryConst=قائمة بجميع Dolibarr الإعداد البارامترات -MenuCompanySetup=الشركة / المؤسسة +MenuCompanySetup=Company/Organisation DefaultMenuManager= معيار مدير القائمة DefaultMenuSmartphoneManager=الهاتف الذكي القائمة مدير Skin=موضوع الجلد @@ -931,12 +957,14 @@ DefaultMaxSizeList=افتراضي الطول الاقصى للقوائم DefaultMaxSizeShortList=طول الأقصى الافتراضي للقوائم قصيرة (أي في بطاقة العميل) MessageOfDay=رسالة اليوم MessageLogin=ادخل صفحة الرسالة +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=دائم البحث عن شكل القائمة اليمنى DefaultLanguage=اللغة الافتراضية لاستخدام (شفرة اللغة) EnableMultilangInterface=تتيح واجهة متعددة اللغات EnableShowLogo=عرض الشعار على اليسار القائمة -CompanyInfo=الشركة / المؤسسة المعلومات -CompanyIds=الشركة / المؤسسة الهويات +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=اسم CompanyAddress=عنوان CompanyZip=الرمز البريدي @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=تأخير التسامح (في يوم) في حالة Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تأخير التسامح (في يوم) في حالة تأهب قبل لإيداع الشيكات للقيام Delays_MAIN_DELAY_EXPENSEREPORTS=تأخير التسامح (بالأيام) قبل حالة تأهب لتقارير النفقات الموافقة SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=القيود الأخرى القائمة في إدارة اختياري البارامترات. LogEvents=مراجعة الحسابات الأحداث الأمنية Audit=المراجعة @@ -987,7 +1015,7 @@ BrowserOS=متصفح OS ListOfSecurityEvents=قائمة الأحداث الأمنية Dolibarr SecurityEventsPurged=تطهير الاحداث الامنية LogEventDesc=هنا يمكنك تمكين قطع الأشجار لDolibarr الأحداث الأمنية. يمكن للمشرفين ثم انظر مضمونه عبر نظام القائمة أدوات -- لمراجعة الحسابات. محذرا من أن هذه الميزة يمكن أن تستهلك كمية كبيرة من البيانات في قاعدة البيانات. -AreaForAdminOnly=هذه الميزات يمكن أن تستخدم من قبل مدير المستخدمين فقط. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=نظام المعلومات المتنوعة المعلومات التقنية تحصل في قراءة فقط وواضحة للمشرفين فقط. SystemAreaForAdminOnly=هذا المجال المتاح لمدير المستخدمين فقط. أيا من Dolibarr أذونات يمكن أن تقلل من هذا الحد. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=يجب على الأقل تمكين 1 وحدة ClassNotFoundIntoPathWarning=لم يتم العثور على %s في مسار PHP YesInSummer=نعم في الصيف -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=تخزين جلسة المشفرة بواسطة Suhosin ConditionIsCurrently=الشرط هو حاليا %s YouUseBestDriver=استخدام سائق %s التي هو أفضل سائق المتاحة حاليا. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=المهنية معرف فريد MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=تصدير صلة %s شكل متاح على الوصلة التالية : %s ##### Invoices ##### BillsSetup=وحدة إعداد الفواتير BillsNumberingModule=الفواتير والقروض وتلاحظ وحدة الترقيم BillsPDFModules=فاتورة نماذج الوثائق +PaymentsPDFModules=Payment documents models CreditNote=علما الائتمان CreditNotes=ويلاحظ الائتمان ForceInvoiceDate=قوة تاريخ الفاتورة تاريخ المصادقة على @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=لا يتم التخزين المؤقت الملفات من FilesOfTypeCompressed=يتم ضغط الملفات من نوع %s من قبل خادم HTTP FilesOfTypeNotCompressed=لا يتم ضغط الملفات من نوع %s من قبل خادم HTTP CacheByServer=ذاكرة التخزين المؤقت من قبل خادم +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=الذاكرة المخبئية من خلال متصفح CompressionOfResources=ضغط الردود HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=مثل هذا الكشف التلقائي غير ممكن مع المتصفحات الحالية +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=المنتجات وحدة الإعداد ServiceSetup=خدمات وحدة الإعداد @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=فاتورة تاريخ المستخدمة Buy=يشتري Sell=يبيع InvoiceDateUsed=فاتورة تاريخ المستخدمة -YourCompanyDoesNotUseVAT=وقد تم تسجيل شركة محددة لعدم استخدام ضريبة القيمة المضافة (الصفحة الرئيسية -- إعداد -- شركة / مؤسسة) ، لذلك لا يوجد خيارات لضريبة القيمة المضافة الإعداد. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=قانون المحاسبة AccountancyCodeSell=حساب بيع. رمز AccountancyCodeBuy=شراء الحساب. رمز @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=تلقائيا تعيين هذه الحالة مع AGENDA_DEFAULT_VIEW=علامة التبويب التي تريد فتح افتراضيا عند اختيار القائمة جدول الأعمال AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=انقر لإعداد وحدة الاتصال الهاتفي -ClickToDialUrlDesc=ودعا الموقع عندما تنقر على الهاتف picto ذلك. Dans l' رابط ، vous pouvez utiliser ليه balises
٪ ٪ 1 $ ق qui الأمصال remplacé قدم المساواة جنيه téléphone دي l' appelé
٪ ٪ 2 $ ق qui الأمصال remplacé لو قدم المساواة téléphone دي l' appelant جنيه مصري vôtre)
٪ ٪ ل 3 دولار qui الأمصال remplacé vôtre ادخل clicktodial الفقرة (défini سور vôtre فيشه utilisateur)
٪ ٪ 4 $ ق qui الأمصال remplacé الفقرة vôtre يذكره دي clicktodial عتيق (défini سور vôtre فيشه utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=هذه الوحدة تسمح لجعل أرقام هواتف يمكن النقر عليها. وهناك انقر على هذه الأيقونة دعوة تجعل هاتفك إلى الاتصال برقم الهاتف. وهذا يمكن أن تستخدم لاستدعاء نظام مركز الاتصال من Dolibarr يمكن أن نسميه ورقم الهاتف على نظام SIP على سبيل المثال. ClickToDialUseTelLink=مجرد استخدام الرابط "الهاتف:" على أرقام الهواتف ClickToDialUseTelLinkDesc=استخدام هذا الأسلوب إذا كان المستخدمون يكون الهاتف الرقمي أو واجهة البرامج المثبتة على الكمبيوتر نفسه من المتصفح، ويسمى عند النقر على رابط في المتصفح التي تبدأ ب "الهاتف". إذا كنت في حاجة الى حل خادم الكامل (لا حاجة لتثبيت البرامج المحلية)، يجب عليك تعيين هذا إلى "لا" وملء الحقل التالي. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API وحدة الإعداد ApiDesc=من خلال تمكين هذه الوحدة، Dolibarr يصبح الخادم REST لتوفير خدمات الإنترنت المتنوعة. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=ويتعرض عناصر فقط من وحدات تمكين ApiKey=مفتاح API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=عرض عام النظام BankOrderES=الأسبانية BankOrderESDesc=الأسبانية عرض النظام ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=نموذج متعدد شركة الإعداد ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=المعالج لبناء قاعدة بيانات النسخ ا SomethingMakeInstallFromWebNotPossible=تركيب وحدة خارجية غير ممكن من واجهة ويب للسبب التالي: SomethingMakeInstallFromWebNotPossible2=لهذا السبب، عملية لترقية وصفت هنا هو دليل على بعد خطوات قليلة يمكن للمستخدم متميز القيام به. InstallModuleFromWebHasBeenDisabledByFile=تثبيت وحدة خارجية من التطبيق قد تم تعطيلها من قبل المسؤول. يجب أن يطلب منه إزالة الملف٪ s للسماح هذه الميزة. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=تسليط الضوء على خطوط الجدول عندما يمر تحرك الماوس فوق HighlightLinesColor=تسليط الضوء على لون الخط عند تمرير الماوس فوق (الحفاظ فارغة دون تمييز) TextTitleColor=Color of page title LinkColor=لون الروابط -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=لون الخلفية TopMenuBackgroundColor=لون الخلفية لقائمة الأعلى @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=الحد الأدنى لمدة إشعار (يجب أن يت NbAddedAutomatically=عدد الأيام تضاف إلى العدادات من المستخدمين (تلقائيا) كل شهر EnterAnyCode=يحتوي هذا الحقل على إشارة لتحديد الخط. أدخل أي قيمة من اختيارك، ولكن من دون أحرف خاصة. UnicodeCurrency=أدخل هنا بين الأقواس، وقائمة من عدد البايت التي تمثل رمز العملة. لexemple: ل$، أدخل [36] - للبرازيل R الحقيقي $ [82،36] - ل€، أدخل [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=موقف خط في قوائم السرد SellTaxRate=بيع معدل الضريبة RecuperableOnly=نعم لضريبة القيمة المضافة "غير مستردة Perçue" مخصصة لبعض الدول في فرنسا. إبقاء القيمة إلى "لا" في جميع الحالات الأخرى. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ar_SA/compta.lang b/htdocs/langs/ar_SA/compta.lang index 173c282060a..fa147c7919b 100644 --- a/htdocs/langs/ar_SA/compta.lang +++ b/htdocs/langs/ar_SA/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=وتحسب المبالغ المبينة Param=الإعداد RemainingAmountPayment=دفع المبلغ المتبقي : Account=حساب -Accountparent=الوالد حساب -Accountsparent=حسابات الأم +Accountparent=Parent account +Accountsparent=Parent accounts Income=الدخل Outcome=نتائج ReportInOut=دخل / نتائج @@ -56,6 +56,7 @@ MenuTaxAndDividends=الضرائب وعوائد MenuSocialContributions=الضرائب الاجتماعية / المالية MenuNewSocialContribution=الضريبة الاجتماعية / مالية جديدة NewSocialContribution=الضريبة الاجتماعية / مالية جديدة +AddSocialContribution=Add social/fiscal tax ContributionsToPay=الضرائب الاجتماعية / المالية لدفع AccountancyTreasuryArea=المحاسبة / الخزانة المنطقة NewPayment=دفع جديدة @@ -134,8 +135,8 @@ RulesResultDue=- وتتضمن الفواتير غير المسددة، والن RulesResultInOut=- ويشمل المدفوعات الحقيقية المحرز في الفواتير والمصاريف والضريبة على القيمة المضافة والرواتب.
- لأنه يقوم على مواعيد دفع الفواتير والمصاريف والضريبة على القيمة المضافة والرواتب. تاريخ التبرع للتبرع. RulesCADue=- ويشمل الفواتير المستحقة على العميل سواء كانت بأجر أو لا.
- وهو يستند إلى تاريخ التحقق من هذه الفواتير.
RulesCAIn=-- ويشمل جميع الفعال دفع الفواتير الواردة من العملاء.
-- يقوم على دفع هذه الفواتير تاريخ
-DepositsAreNotIncluded=- يتم ولا تشمل ودائع الفواتير -DepositsAreIncluded=- وترد الفواتير ودائع +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=تقرير من قبل طرف ثالث IRPF LT1ReportByCustomersInInputOutputModeES=تقرير RE طرف ثالث VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=مبيعات المجلة DescPurchasesJournal=شراء مجلة InvoiceRef=فاتورة المرجع. CodeNotDef=لم يتم تعريف -WarningDepositsNotIncluded=لا يتم تضمين فواتير الودائع في هذا الإصدار مع هذه الوحدة المحاسبة. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=تاريخ الدفع الأجل لا يمكن أن يكون أقل من تاريخ الكائن. Pcg_version=Chart of accounts models Pcg_type=نوع PCG @@ -189,8 +190,10 @@ AccountancyJournal=كود المحاسبة مجلة ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=استنساخ ضريبة اجتماعية / مالية ConfirmCloneTax=تأكيد استنساخ ل/ دفع الضرائب المالية الاجتماعي CloneTaxForNextMonth=استنساخ لشهر المقبل @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=الضرائب الاجتماعية / المالية ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ar_SA/cron.lang b/htdocs/langs/ar_SA/cron.lang index 2b96553e327..a03a0a3a417 100644 --- a/htdocs/langs/ar_SA/cron.lang +++ b/htdocs/langs/ar_SA/cron.lang @@ -25,7 +25,7 @@ CronDelete=حذف المهام المجدولة CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=وحدة مهمة مجدولة تسمح لتنفيذ المهمة التي تم التخطيط لها +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=وظيفة CronNone=بلا CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=تمكين CronStatusInactiveBtn=يعطل CronTaskInactive=تم تعطيل هذه الوظائف CronId=هوية شخصية -CronClassFile=فصول (filename.class.php) -CronModuleHelp=اسم Dolibarr وحدة الدليل (يعمل أيضا مع وحدة Dolibarr الخارجية).
لexemple لجلب طريقة الكائن المنتج Dolibarr / htdocs / المنتج /class/product.class.php، وقيمة الوحدة هي المنتج -CronClassFileHelp=اسم الملف لتحميل.
لexemple لجلب طريقة الكائن المنتج Dolibarr / htdocs / المنتج / فئة / product.class.php، وقيمة اسم ملف فئة هي product.class.php -CronObjectHelp=اسم الكائن لتحميل.
لexemple لجلب طريقة Dolibarr /htdocs/product/class/product.class.php الكائن المنتج، وقيمة اسم ملف فئة هي المنتج -CronMethodHelp=طريقة كائن لإطلاق.
لexemple لجلب طريقة Dolibarr /htdocs/product/class/product.class.php الكائن المنتج، وقيمة الأسلوب هو fecth -CronArgsHelp=الحجج الأسلوب.
لexemple لجلب طريقة Dolibarr /htdocs/product/class/product.class.php الكائن المنتج، وقيمة paramters يمكن أن يكون 0، ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=سطر الأوامر لتنفيذ النظام. CronCreateJob=إنشاء مهمة مجدولة جديدة CronFrom=من عند @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=تعطيل وظيفة MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ar_SA/errors.lang b/htdocs/langs/ar_SA/errors.lang index dd0d710929c..46eb89f55e9 100644 --- a/htdocs/langs/ar_SA/errors.lang +++ b/htdocs/langs/ar_SA/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=فشل إنشاء الملف '٪ ق. ErrorFailToRenameDir=فشل إعادة تسمية الدليل '٪ ق' الى '٪ ق. ErrorFailToCreateDir=فشل إنشاء الدليل '٪ ق. ErrorFailToDeleteDir=فشل حذف الدليل '٪ ق. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=هذا الاتصال هو اتصال بالفعل تعريف لهذا النوع. ErrorCashAccountAcceptsOnlyCashMoney=هذا الحساب المصرفي هو الحساب النقدي ، وذلك ما وافق على نوع من المدفوعات النقدية فقط. ErrorFromToAccountsMustDiffers=المصدر والأهداف يجب أن تكون الحسابات المصرفية المختلفة. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=لم يكتب في دليل ٪ ق ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=العثور على بريد إلكتروني صحيح لتركيب خطوط ق ٪ في ملف (على سبيل المثال خط ٪ ق= ٪ مع البريد الإلكتروني) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=تتطلب بعض المجالات لم تملأ. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=فشل إنشاء دليل. تأكد من أن خادم الويب المستخدم أذونات لكتابة وثائق Dolibarr في الدليل. إذا تم تمكين المعلم safe_mode على هذا PHP ، تحقق من أن ملفات Dolibarr php تملك لخدمة الويب المستخدم (أو مجموعة). ErrorNoMailDefinedForThisUser=البريد لا يعرف لهذا المستخدم ErrorFeatureNeedJavascript=هذه الميزة تحتاج إلى تفعيل جافا سكريبت في العمل. هذا التغيير في البنية -- عرض. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=كمية لخط في فواتير ال ErrorWebServerUserHasNotPermission=%s تستخدم حساب مستخدم لتنفيذ خادم الويب لا يوجد لديه إذن لذلك ErrorNoActivatedBarcode=لا يوجد نوع الباركود تفعيلها ErrUnzipFails=فشل بفك٪ الصورة مع ZipArchive -ErrNoZipEngine=لا المحرك لبفك الصورة ملف٪ في هذا PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=يجب أن يكون الملف٪ s حزمة البريدي Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=وPHP الضفيرة لم يتم تثبيت، وهذا أمر ضروري لاجراء محادثات مع باي بال @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=لا متغير عمومي مختارة ErrorFieldMustBeANumeric=يجب أن يكون حقل٪ الصورة قيمة رقمية ErrorMandatoryParametersNotProvided=معيار إلزامي (ق) لم تقدم ErrorOppStatusRequiredIfAmount=قمت بتعيين المبلغ المقدر لهذه الفرصة / الرصاص. لذلك يجب عليك أيضا إدخال مكانتها +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=سيئة تعريف القائمة صفيف في الوحدة واصف (القيمة سيئة لfk_menu مفتاح) ErrorSavingChanges=وقد ocurred لخطأ عند حفظ التغييرات ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=تم تعيين كلمة مرور لهذا العضو. ومع ذلك، تم إنشاء أي حساب المستخدم. لذلك يتم تخزين كلمة المرور هذه ولكن لا يمكن استخدامها للدخول إلى Dolibarr. ويمكن استخدامه من قبل وحدة / واجهة خارجية ولكن إذا كنت لا تحتاج إلى تعريف أي تسجيل دخول أو كلمة المرور لأحد أفراد، يمكنك تعطيل خيار "إدارة تسجيل دخول لكل عضو" من إعداد وحدة الأعضاء. إذا كنت بحاجة إلى إدارة تسجيل الدخول ولكن لا تحتاج إلى أي كلمة المرور، يمكنك الحفاظ على هذا الحقل فارغا لتجنب هذا التحذير. ملاحظة: يمكن أيضا أن تستخدم البريد الإلكتروني لتسجيل الدخول إذا تم ربط عضو إلى المستخدم. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=تاريخ الدفع (٪ ق) هو أقد WarningTooManyDataPleaseUseMoreFilters=عدد كبير جدا من البيانات (أكثر من خطوط%s). يرجى استخدام المزيد من المرشحات أو تعيين ثابت٪ الصورة إلى حد أعلى. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index d1838a21b1a..cfdf0efd5b5 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=المعلمة٪ S غير معرف ErrorUnknown=خطأ غير معروف ErrorSQL=خطأ SQL ErrorLogoFileNotFound=لم يتم العثور على ملف شعار '٪ ق' -ErrorGoToGlobalSetup=اذهب إلى 'شركة / مؤسسة' الإعداد لإصلاح هذه +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=الذهاب إلى الوحدة الإعداد لإصلاح هذه ErrorFailedToSendMail=فشل في إرسال البريد (المرسل =٪ ق، استقبال =٪ ق) ErrorFileNotUploaded=ويتم تحميل الملف. تحقق لا يتجاوز هذا الحجم الأقصى المسموح به، أن المساحة الحرة المتوفرة على القرص والتي لا يوجد بالفعل ملف بنفس الاسم في هذا الدليل. @@ -153,6 +153,7 @@ Edit=تحرير Validate=التحقق من صحة ValidateAndApprove=التحقق من صحة والموافقة ToValidate=للتحقق من صحة +NotValidated=Not validated Save=حفظ SaveAs=حفظ باسم TestConnection=اختبار الاتصال @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=أي ميزة قطع تطبيقية مع وضع Connection=الاتصال Setup=التثبيت Alert=إنذار +MenuWarnings=تنبيهات Previous=سابق Next=التالى Cards=بطاقات @@ -308,6 +310,7 @@ Copy=نسخ Paste=لصق Default=افتراضي DefaultValue=القيمة الافتراضية +DefaultValues=Default values Price=السعر UnitPrice=سعر الوحدة UnitPriceHT=سعر الوحدة (صافي) @@ -363,7 +366,8 @@ VATRate=معدل الضريبة Average=متوسط Sum=مجموع Delta=دلتا -Module=وحدة +Module=Module/Application +Modules=Modules/Applications Option=خيار List=قائمة FullList=القائمة الكاملة @@ -387,7 +391,7 @@ ActionRunningNotStarted=لبدء ActionRunningShort=In progress ActionDoneShort=تم الانتهاء من ActionUncomplete=Uncomplete -CompanyFoundation=شركة / مؤسسة +CompanyFoundation=Company/Organisation ContactsForCompany=اتصالات لهذا الطرف الثالث ContactsAddressesForCompany=اتصالات / عناوين لهذا الطرف الثالث AddressesForCompany=عناوين لهذا الطرف الثالث @@ -405,8 +409,9 @@ Generate=توليد Duration=المدة الزمنية TotalDuration=المدة الإجمالية Summary=ملخص -DolibarrStateBoard=إحصائيات -DolibarrWorkBoard=مهام العمل متنها +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=متاح NotYetAvailable=لم تتوفر بعد NotAvailable=غير متوفر @@ -434,7 +439,7 @@ Reportings=التقارير Draft=مسودة Drafts=الداما Validated=التحقق من صحة -Opened=Opened +Opened=فتح New=جديد Discount=تخفيض السعر Unknown=غير معروف @@ -453,6 +458,7 @@ NextStep=الخطوة التالية Datas=البيانات None=لا شيء NoneF=لا شيء +NoneOrSeveral=None or several Late=متأخر LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=صورة @@ -606,7 +612,8 @@ PartialWoman=جزئي TotalWoman=المجموع NeverReceived=لم يتلق Canceled=ألغى -YouCanChangeValuesForThisListFromDictionarySetup=يمكنك تغيير قيم هذه القائمة من إعداد القائمة - القاموس +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=لون Documents=ربط الملفات @@ -642,6 +649,7 @@ FreeLineOfType=دخول مجاني من نوع CloneMainAttributes=استنساخ وجوه مع السمات الرئيسية PDFMerge=دمج الشعبي Merge=دمج +DocumentModelStandardPDF=Standard PDF template PrintContentArea=وتظهر الصفحة الرئيسية لطباعة ناحية المحتوى MenuManager=مدير القائمة WarningYouAreInMaintenanceMode=انذار ، كنت في وضع الصيانة ، %s الدخول فقط بحيث يتم السماح لاستخدام التطبيق في الوقت الراهن. @@ -708,6 +716,7 @@ from=من عند toward=نحو Access=وصول SelectAction=حدد العمل +SelectTargetUser=Select target user/employee HelpCopyToClipboard=استخدم Ctrl + C لنسخ إلى الحافظة SaveUploadedFileWithMask=حفظ الملف على الخادم مع اسم "%s" (otherwise "%s") OriginFileName=اسم الملف الأصلي @@ -718,7 +727,7 @@ ViewPrivateNote=عرض الملاحظات XMoreLines=٪ ق خط (ق) مخبأة PublicUrl=URL العام AddBox=إضافة مربع -SelectElementAndClickRefresh=حدد عنصر وانقر فوق تحديث +SelectElementAndClick=Select an element and click %s PrintFile=طباعة ملف٪ الصورة ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=اذهب إلى الصفحة الرئيسية - إعداد - شركة لتغيير شعار أو الذهاب إلى الصفحة الرئيسية - إعداد - عرض للاختباء. @@ -734,8 +743,8 @@ Hello=أهلا Sincerely=بإخلاص DeleteLine=حذف الخط ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=التقويم GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=السنة المالية +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=يوم الاثنين Tuesday=الثلاثاء @@ -817,5 +835,3 @@ SearchIntoContracts=عقود SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=تقارير المصاريف SearchIntoLeaves=أوراق - -BulkActions=Bulk actions diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index 184c1f4b849..cceb260f27d 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=تاريخ الميلاد BirthdayAlertOn=عيد ميلاد النشطة في حالة تأهب BirthdayAlertOff=عيد الميلاد فى حالة تأهب الخاملة +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=تدخل المصادق Notify_FICHINTER_SENTBYMAIL=تدخل ترسل عن طريق البريد @@ -61,13 +74,14 @@ PredefinedMailTestHtml=هذا هو البريد الاختبار (الا PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ سوف تجد هنا الفاتورة __REF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ نود أن نحذر لكم أن __REF__ فاتورة يبدو أن لا يتم سيولي. لذلك هذا هو الفاتورة في المرفق مرة أخرى، بمثابة تذكير. __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ سوف تجد هنا اقتراح التجاري __PROPREF__ __PERSONALIZED__Sincerely __SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__ سوف تجد هنا طلب السعر __ASKREF__ __PERSONALIZED__Sincerely __SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ سوف تجد هنا ترتيب __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ سوف تجد هنا نظامنا __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ سوف تجد هنا الفاتورة __REF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ سوف تجد هنا الشحن __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ سوف تجد هنا تدخل __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
الأستاذ عيد ٪ ق
هي المعلومات التي تعتمد على طرف ثالث.
على سبيل المثال ، لبلد ق ٪ انها رمز ٪ ق. DolibarrDemo=Dolibarr تخطيط موارد المؤسسات وإدارة علاقات العملاء التجريبي -StatsByNumberOfUnits=إحصاءات في عدد من المنتجات / الخدمات وحدات -StatsByNumberOfEntities=إحصاءات في عدد من الكيانات في اشارة -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=التدخل ٪ ق المصادق EMailTextInvoiceValidated=فاتورة ٪ ق المصادق diff --git a/htdocs/langs/ar_SA/projects.lang b/htdocs/langs/ar_SA/projects.lang index dedfa88ea39..f5b26e3f3de 100644 --- a/htdocs/langs/ar_SA/projects.lang +++ b/htdocs/langs/ar_SA/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=حالة المشروع SharedProject=مشاريع مشتركة PrivateProject=مشروع اتصالات +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=جميع المشاريع MyProjectsDesc=ويقتصر هذا الرأي على المشاريع التي تقوم على الاتصال (كل ما هو نوع). ProjectsPublicDesc=هذا الرأي يعرض جميع المشاريع ويسمح لك قراءة. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=هذا الرأي يعرض جميع المشاريع والمهام ( AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=مشروع جديد AddProject=إنشاء مشروع DeleteAProject=حذف مشروع DeleteATask=حذف مهمة ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=مشاريع فتح -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=فرص كمية من المشاريع فتحت حسب الحالة +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=وتبين للمشروع SetProject=وضع المشروع NoProject=لا يعرف أو المملوكة للمشروع NbOfProjects=ملاحظة : للمشاريع +NbOfTasks=Nb of tasks TimeSpent=الوقت الذي تستغرقه TimeSpentByYou=الوقت الذي يقضيه من قبلك TimeSpentByUser=الوقت الذي يقضيه المستخدم @@ -47,9 +52,9 @@ TaskTimeSpent=الوقت المستغرق في المهام TaskTimeUser=المستعمل TaskTimeNote=ملاحظة TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=المهام على المشاريع المفتوحة WorkloadNotDefined=عبء العمل غير محددة -NewTimeSpent=جديد الوقت الذي يقضيه +NewTimeSpent=قضى وقتا MyTimeSpent=وقتي قضى Tasks=المهام Task=مهمة @@ -59,6 +64,7 @@ TaskDescription=وصف المهمة NewTask=مهمة جديدة AddTask=إنشاء مهمة AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=النشاط Activities=المهام والأنشطة MyActivities=بلدي المهام والأنشطة @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=قائمة العقود المرتبطة بالمشروع. +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=قائمة التدخلات المرتبطة بالمشروع ListExpenseReportsAssociatedProject=قائمة تقارير المصاريف المرتبطة بالمشروع ListDonationsAssociatedProject=قائمة التبرعات المرتبطة بالمشروع @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=مشروع اتصالات ActionsOnProject=الإجراءات على المشروع YouAreNotContactOfProject=كنت لا اتصال لهذا المشروع الخاص +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=قضى الوقت حذف ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=انظر أيضا المهام الغير موكلة الي @@ -110,7 +118,7 @@ TaskRessourceLinks=مصادر ProjectsDedicatedToThisThirdParty=مشاريع مخصصة لهذا الطرف الثالث NoTasks=أية مهام لهذا المشروع LinkedToAnotherCompany=ربط طرف ثالث آخر -TaskIsNotAffectedToYou=مهمة غيرموكلة اليك +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=الوقت الذي يقضيه فارغة ThisWillAlsoRemoveTasks=وهذا العمل أيضا حذف كافة مهام المشروع (%s المهام في الوقت الحاضر) وجميع المدخلات من الوقت الذي تستغرقه. IfNeedToUseOhterObjectKeepEmpty=إذا كانت بعض الكائنات (فاتورة، والنظام، ...)، الذين ينتمون إلى طرف ثالث آخر، يجب أن تكون مرتبطة بمشروع لإنشاء، والحفاظ على هذا فارغة لديها مشروع كونها متعددة الأطراف الثالثة. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=إدخال يوميا InputPerWeek=مساهمة في الأسبوع InputPerAction=مساهمة في عمل -TimeAlreadyRecorded=الوقت الذي يقضيه سجلت بالفعل لهذه المهمة / يوم والمستخدم٪ الصورة +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=مشاريع مع هذا العضو عن الاتصال TasksWithThisUserAsContact=المهام الموكلة إلى هذا المستخدم ResourceNotAssignedToProject=لم يتم تعيين إلى المشروع ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=تعيين مهمة بالنسبة لي +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=عين ProjectOverview=نظرة عامة ManageTasks=استخدام المشاريع لمتابعة المهام والوقت ManageOpportunitiesStatus=استخدام مشاريع متابعة القرائن / opportinuties ProjectNbProjectByMonth=ملحوظة من المشاريع التي تم إنشاؤها من قبل شهر +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=كمية الفرص الشهر ProjectWeightedOppAmountOfProjectsByMonth=كمية المرجح الفرص من قبل شهر ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=إحصاءات عن المشاريع / يؤدي +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=المهمة الموكلة. يجب دخول الوقت على هذه المهمة يكون ممكنا. IdTaskTime=الوقت مهمة معرف YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=مشاريع افتتحه thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=فرص المبلغ الإجمالي OpportunityPonderatedAmount=كمية الفرص المرجحة diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index 862fb0a64e8..963e270fef1 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Сметка +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Дневник NumPiece=Номер на част TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Възникна грешка, вие не можете да изтриете тази счетоводна сметка, защото се използва. MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Код +Nature=Същност +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Банка +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index 215f9bada11..ec3f94ae075 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Вътрешни потребители ExternalUsers=Външни потребители GUISetup=Екран SetupArea=Настройки +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Форма за тестване качване на файлове (за настройка) IfModuleEnabled=Забележка: Ефективно е само ако модула %s е активиран RemoveLock=Премахнете файла %s ако съществува, за да се позволи използването на инструмента за актуализация. @@ -85,7 +86,7 @@ Mask=Маска NextValue=Следваща стойност NextValueForInvoices=Следваща стойност (фактури) NextValueForCreditNotes=Следваща стойност (кредитни известия) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Забележка: PHP ограничава размера на всяко качване на файлове на %s %s, независимо от стойността на този параметър е NoMaxSizeByPHPLimit=Забележка: Не срокът се определя в конфигурацията на вашия PHP @@ -103,7 +104,7 @@ MenuIdParent=ID майка меню DetailMenuIdParent=ID на основното меню (0 за горното меню) DetailPosition=Брой Сортиране, за да определи позицията на менюто AllMenus=Всички -NotConfigured=Модула не е конфигуриран +NotConfigured=Module/Application not configured Active=Активен SetupShort=Настройки OtherOptions=Други опции @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand сепаратор Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Модули LanguageBrowserParameter=Параметър %s LocalisationDolibarrParameters=Локализация параметри ClientTZ=Часова зона на клиента (потребител) @@ -123,7 +123,8 @@ PHPTZ=Часова зона на PHP Сървъра DaylingSavingTime=Лятното часово време CurrentHour=Час на PHP (сървър) CurrentSessionTimeOut=Продължителност на текущата сесия -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Права BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Показани са само елементи от активирани модули. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Парола за базата данни, ко InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Защита на генерираните PDF файлове (активиран не се препоръчва, почивки поколение на маса PDF) -ProtectAndEncryptPdfFilesDesc=Защита на PDF документ продължава да прочетете и отпечатате с всеки PDF браузър. Въпреки това, редактиране и копиране не е възможно повече. Имайте предвид, че използването на тази функция изграждането на глобална сборен PDF не работи (като неплатени фактури). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Особеност DolibarrLicense=Лиценз Developpers=Разработчици/сътрудници @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr онлайн демо OfficialMarketPlace=Официален магазин за външни модули/добавки OfficialWebHostingService=Препоръчителен уеб хостинг услуги (хостинг в интернет облак) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Документация за потребител или разработчик (Doc, често задавани въпроси ...),
можете да намерите в Dolibarr Wiki:
%s ForAnswersSeeForum=За всякакви други въпроси / Помощ, можете да използвате форума Dolibarr:
%s HelpCenterDesc1=Тази област може да ви помогне да получите помощ и поддръжка за Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Функцията не е на разположен SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Настройки на модул -ModulesSetup=Настройки на модули +ModulesSetup=Modules/Application setup ModuleFamilyBase=Система ModuleFamilyCrm=Управление на Връзки с клиенти (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Текуща версия на Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Можете да въведете всяка маска за номериране. В тази маска, могат да се използват следните тагове:
{000000} съответства на номер, който се увеличава на всеки %s. Влез като много нули като желаната дължина на брояча. Броячът ще бъде завършен с нули от ляво, за да има колкото се може повече нули като маска.
{000000 000} същата като предишната, но компенсира, съответстваща на броя на правото на знака + се прилага започва на първи %s.
{000000 @} същата като предишната, но броячът се нулира, когато месеца Х е достигнал (Х между 1 и 12, или 0, за да използвате началото на месеца на фискалната година, определени в вашата конфигурация). Ако тази опция се използва и х е 2 или по-висока, тогава последователност {гг} {mm} или {гггг} {mm} също е задължително.
{DD} ден (01 до 31).
{Mm} месец (01 до 12).
{Гг} {гггг} или {Y} година над 2, 4 или 1 брой.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Всички други символи на маската ще останат непокътнати.
Интервалите не са разрешени.
-GenericMaskCodes4a=Пример за използване на 99 %s на третата страна КОМПАНИЯТА извършва 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Пример за контрагент е създаден на 2007-03-01:
GenericMaskCodes4c=Пример за продукт, създаден на 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} ще даде ABC0701-000099
{0000+100@1}-ZZZ/{dd} / XXX ще даде 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Върнете адаптивни номер според определен маска. ServerAvailableOnIPOrPort=Сървъра е достъпен на адрес %s , порт %s ServerNotAvailableOnIPOrPort=Сървъра не е достъпен на адрес %s , порт %s @@ -369,19 +375,21 @@ Int=Цяло число Float=Десетично число DateAndTime=Дата и час Unique=Уникално -Boolean=Логическо (Отметка) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена ExtrafieldMail = Имейл ExtrafieldUrl = Url ExtrafieldSelect = Избор лист ExtrafieldSelectList = Избор от таблица -ExtrafieldSeparator=Разделител +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Парола -ExtrafieldCheckBox=Отметка -ExtrafieldRadio=Радио бутон -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Област +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Потребители и групи Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Фактура и управление на кредитно изв Module40Name=Доставчици Module40Desc=Управление и изкупуване на доставчика (нареждания и фактури) Module42Name=Дневник -Module42Desc=Влизане съоръжения (файл, Syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Редактори Module49Desc=Управление на редактор Module50Name=Продукти @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar интеграция Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Известия @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind реализации възможности Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=ЧР -Module4000Desc=Управление на човешки ресурси +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Няколко фирми Module5000Desc=Позволява ви да управлявате няколко фирми Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Създаване / промяна на продукти Permission34=Изтриване на продукти Permission36=Преглед / управление на скрити продукти Permission38=Износ на продукти -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Изтриване на проекти (общи проекти и проекти съм се с нас за) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup спаси +SetupNotSaved=Setup not saved BackToModuleList=Обратно към списъка с модули BackToDictionaryList=Back to dictionaries list VATManagement=Управление на ДДС @@ -921,7 +947,7 @@ Host=Сървър DriverType=Шофьор тип SummarySystem=Резюме на информационна система SummaryConst=Списък на всички параметри за настройка Dolibarr -MenuCompanySetup=Фирма/Организация +MenuCompanySetup=Company/Organisation DefaultMenuManager= Стандартно меню мениджър DefaultMenuSmartphoneManager=Smartphone Menu Manager Skin=Кожата тема @@ -931,12 +957,14 @@ DefaultMaxSizeList=Макс. дължина за списъци по подра DefaultMaxSizeShortList=Макс. дължина по подразбиране за кратки списъци (т.е. в клиентската карта) MessageOfDay=Послание на деня MessageLogin=Съобщение на страницата за вход +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Постоянна форма за търсене в лявото меню DefaultLanguage=Език по подразбиране (код на езика) EnableMultilangInterface=Разрешаване на многоезичен интерфейс EnableShowLogo=Показване на логото в лявото меню -CompanyInfo=Информация за фирмата/организацията -CompanyIds=Идентичност на фирмата/организацията +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Име CompanyAddress=Адрес CompanyZip=П. код @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Толерантност закъснение (в дн Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Толерантност закъснение (в дни), преди сигнал за проверки депозит Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Другите записи от менюто управляват допълнителни параметри. LogEvents=Събития одит на сигурността Audit=Проверка @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Списък на събитията Dolibarr сигурност SecurityEventsPurged=Събития по сигурността прочиства LogEventDesc=Можете да разрешите тук сеч за събития Dolibarr сигурност. Администраторите могат да видите неговото съдържание чрез меню "Системни инструменти - Одит. Внимание, тази функция може да се консумира голямо количество данни в база данни. -AreaForAdminOnly=Тези функции могат да се използват само от администратори. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Информационна система Разни техническа информация можете да получите в режим само за четене и видими само за администратори. SystemAreaForAdminOnly=Тази област е достъпна само за администратори. Никой не може да промени това ограничение. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Общ брой на активираните модули: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Трябва да даде възможност на най-малко 1 модул ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Професионална Id уникален MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=За износ на линк към %s формат е на разположение на следния линк: %s ##### Invoices ##### BillsSetup=Фактури модул за настройка BillsNumberingModule=Фактури и кредитни известия, номериране модул BillsPDFModules=Фактура модели документи +PaymentsPDFModules=Payment documents models CreditNote=Кредитно известие CreditNotes=Кредитни известия ForceInvoiceDate=Принудително датата на фактурата датата на валидиране @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Настройка на модул Продукти ServiceSetup=Услуги модул за настройка @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Дата на фактура използва Buy=Купувам Sell=Продажба InvoiceDateUsed=Дата на фактура използва -YourCompanyDoesNotUseVAT=Вашата фирма е настроена да не се използва ДДС (Начало - Настройки - Фирма/Организация), така че е без опции за настройка на ДДС. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Счетоводен код AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Кликнете, за да наберете настройка модул -ClickToDialUrlDesc=Адреса нарича, когато се извършва едно кликване на телефона пиктограма. URL, можете да използвате маркери
__PHONETO__, Които ще бъдат заменени с телефонния номер на лицето, да се обадите
__PHONEFROM__, Че ще бъде заменен с телефонния номер на повикващата лице (твое)
__LOGIN__, Които ще бъдат заменени с clicktodial вход (определено на вашето потребителско карта)
__PASS__, Които ще бъдат заменени с clicktodial вашата парола (определено на вашето потребителско карта). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Този модул позволява телефонните номера да могат да се кликват. Кликване върху тази икона ще предизвика вашият телефон да набере телефонния номер. Това може да бъде използвано за обаждане към кол център система, която може да набере телефония номер на SIP система например. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Използвайте този метод ако вашите потребители имат софт-телефон или софтуерен интерфейс на същия компютър, на който е браузера, и повиквани с клик на линк във вашия браузер, който започва с "tel:". Ако се нуждаете от пълно сървърно решение (без нужда за локална софтуерна инсталация), трябва да зададете на това "Не" или да попълните следващото поле. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Обща дисплей за BankOrderES=Испански BankOrderESDesc=Испански дисплей за ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-модул за настройка компания ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Цвят за подчертаване на линията, когато мишката мине отгоре (оставете празно за без подчертаване) TextTitleColor=Цвят на заглавието на страницата LinkColor=Цвят на връзките -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/bg_BG/compta.lang b/htdocs/langs/bg_BG/compta.lang index 2546627fd1d..1098b2e07f8 100644 --- a/htdocs/langs/bg_BG/compta.lang +++ b/htdocs/langs/bg_BG/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Сумите показани тук са Param=Структура RemainingAmountPayment=Остатъчна сума за плащане: Account=Сметка -Accountparent=Сметка родител -Accountsparent=Сметки родител +Accountparent=Parent account +Accountsparent=Parent accounts Income=Доход Outcome=Разход ReportInOut=Приходи/разходи @@ -56,6 +56,7 @@ MenuTaxAndDividends=Данъци и дивиденти MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Секция Счетоводство/ценности NewPayment=Ново плащане @@ -134,8 +135,8 @@ RulesResultDue=- Показани Сумите са с включени всич RulesResultInOut=- It includes the real payments made on invoices, expenses and VAT.
- It is based on the payment dates of the invoices, expenses and VAT. RulesCADue=- Тя включва дължимите на клиента фактури, независимо дали са платени или не.
- Тя се основава на датата на валидиране тези фактури.
RulesCAIn=- То включва всички ефективни плащания на фактурите, получени от клиенти.
- Тя се основава на датата на плащане на тези фактури
-DepositsAreNotIncluded=- Депозит фактури не са включени -DepositsAreIncluded=- Депозит фактури са включени +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Доклад от контрагент IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Продажби вестник DescPurchasesJournal=Покупките вестник InvoiceRef=Фактура с реф. CodeNotDef=Не е определена -WarningDepositsNotIncluded=Депозити фактури не са включени в тази версия с този модул за счетоводството. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=PCG тип @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Клониране за следващ месец @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/bg_BG/cron.lang b/htdocs/langs/bg_BG/cron.lang index 2728b1877af..30e5701e5ad 100644 --- a/htdocs/langs/bg_BG/cron.lang +++ b/htdocs/langs/bg_BG/cron.lang @@ -25,7 +25,7 @@ CronDelete=Изтриване на планирани задачи CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Модул Планирана задача позволява да се изпълни задача, която е била планирана +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Задача CronNone=Няма CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Активирайте CronStatusInactiveBtn=Деактивирай CronTaskInactive=Тази задача е неактивирана CronId=Id -CronClassFile=Класове (filename.class.php) -CronModuleHelp=Име на Dolibarr модулна директория (работи също така с външен Dolibarr модул).
Например, за да издърпате метод на обект Dolibarr Product /htdocs/product/class/product.class.php, стойността на модула е product -CronClassFileHelp=Име на файл да се зареди.
Например, за да издърпате метод на обект Dolibarrr Product /htdocs/product/class/product.class.php, стойността на името на файла за класа е product.class.php -CronObjectHelp=Името на обекът, който да се зареди.
Например, за да издърпате метод на обект Dolibarr Product /htdocs/product/class/product.class.php, стойността на името на файла за класа е Product -CronMethodHelp=Методът на обекта да се зареди.
Например, за да издърпате метод на обект Dolibarr Product /htdocs/product/class/product.class.php, стойността на метода е fecth -CronArgsHelp=Аргументите за метода.
Например, за да издърпате метод на обект Dolibarr Product /htdocs/product/class/product.class.php, стойността на параметрите може да бъде 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Системният команден ред за стартиране. CronCreateJob=Създаване на нова Планирана задача CronFrom=От @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Неактивирани задачи MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/bg_BG/errors.lang b/htdocs/langs/bg_BG/errors.lang index d8c83462084..d1e9ea2e582 100644 --- a/htdocs/langs/bg_BG/errors.lang +++ b/htdocs/langs/bg_BG/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Грешка при създаване на файл &q ErrorFailToRenameDir=Неуспешно да преименувате директория "%s" в "%s". ErrorFailToCreateDir=Неуспешно създаване на директория "%s". ErrorFailToDeleteDir=Грешка при изтриване на директория "%s". +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Този контакт е вече определен контакт за този тип. ErrorCashAccountAcceptsOnlyCashMoney=Тази банкова сметка е разплащателна сметка, така че приема плащания пари само от тип. ErrorFromToAccountsMustDiffers=Източника и целите на банкови сметки трябва да бъде различен. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Неуспех при запис в директория ErrorFoundBadEmailInFile=Намерени неправилен синтаксис имейл за %s линии във файла (%s например съответствие с имейл = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Някои задължителни полета не са запълнени. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Неуспешно създаване на директория. Уверете се, че уеб сървър потребител има разрешение да пишат в Dolibarr документи. Ако параметър safe_mode е разрешен в тази PHP, проверете дали Dolibarr PHP файлове притежава за потребителя на уеб сървъра (или група). ErrorNoMailDefinedForThisUser=Не поща, определена за този потребител ErrorFeatureNeedJavascript=Тази функция трябва ДжаваСкрипт да се активира, за да работят. Променете тази настройка - дисплей. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Количество за ред в к ErrorWebServerUserHasNotPermission=Потребителски акаунт %s използват за извършване на уеб сървър не разполага с разрешение за това ErrorNoActivatedBarcode=Не е тип баркод активира ErrUnzipFails=Неуспех да разархивирате %s с ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Файла %s трябва да бъде Dolibarr zip архив ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP навийте не е инсталиран, това е от съществено значение, за да разговаря с Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Няма избрана глобална проме ErrorFieldMustBeANumeric=Поле %s трябва да бъде числена стойност ErrorMandatoryParametersNotProvided=Задължителен параметър(и) не е даден ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Парола е зададено за този член. Обаче, няма създаден потребителски акаунт. Следователно тази парола е записана, но не може да бъде използвана за влизане в Dolibarr. Може да бъде използвана от външен модул/интерфейс, но ако нямате нужда да определите нито потребителско име нито парола за член, можете да деактивирате тази опция. Ако имате нужда да управлявате потребителско име, но нямата нужда от парола, можете да оставите това поле празно, за да избегнете това предупреждение. Забележка: Имейл също може да бъде използван като потребителско име ако члена с свързан към потребител. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Датата на плащане (%s) е WarningTooManyDataPleaseUseMoreFilters=Прекалено много информация (повече от %s линии). Моля използвайте повече филтри или задайте за константата %s по-висок лимит. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index 8ab7c73ec8e..fa6c4510953 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Параметър %s не е дефиниран ErrorUnknown=Неизвестна грешка ErrorSQL=Грешка в SQL ErrorLogoFileNotFound=Файлът с лого '%s' не е открит -ErrorGoToGlobalSetup=Отидете в настройки на 'Фирма/Организация', за да коригирате това +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Отидете в настройки на Модули, за да коригирате това ErrorFailedToSendMail=Неуспешно изпращане на имейл (подател = %s, получател = %s) ErrorFileNotUploaded=Файлът не беше качен. Уверете се, че размерът му не надвишава максимално допустимия, че е на разположение свободно пространство на диска и че няма файл със същото име в тази директория. @@ -153,6 +153,7 @@ Edit=Редактиране Validate=Валидирай ValidateAndApprove=Валидирай и одобри ToValidate=За валидиране +NotValidated=Not validated Save=Запис SaveAs=Запис като TestConnection=Проверка на връзката @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Не се прилага функция за изк Connection=Вход Setup=Настройки Alert=Предупреждение +MenuWarnings=Сигнали Previous=Предишен Next=Следващ Cards=Карти @@ -308,6 +310,7 @@ Copy=Копиране Paste=Поставяне Default=По подразбиране DefaultValue=Стойност по подразбиране +DefaultValues=Default values Price=Цена UnitPrice=Единична цена UnitPriceHT=Единична цена (нето) @@ -363,7 +366,8 @@ VATRate=Данъчна ставка Average=Средно Sum=Сума Delta=Делта -Module=Модул +Module=Module/Application +Modules=Modules/Applications Option=Опция List=Списък FullList=Пълен списък @@ -387,7 +391,7 @@ ActionRunningNotStarted=За започване ActionRunningShort=In progress ActionDoneShort=Завършено ActionUncomplete=Незавършено -CompanyFoundation=Фирма/Организация +CompanyFoundation=Company/Organisation ContactsForCompany=Контакти за този контрагент ContactsAddressesForCompany=Контакти/адреси за този контрагент AddressesForCompany=Адреси за този контрагент @@ -405,8 +409,9 @@ Generate=Генерирай Duration=Продължителност TotalDuration=Обща продължителност Summary=Резюме -DolibarrStateBoard=Статистика -DolibarrWorkBoard=Табло с текущи задачи +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Налично NotYetAvailable=Все още не е налично NotAvailable=Не е налично @@ -434,7 +439,7 @@ Reportings=Справки Draft=Чернова Drafts=Чернови Validated=Валидиран -Opened=Отворен +Opened=Отворено New=Нов Discount=Отстъпка Unknown=Неизвестно @@ -453,6 +458,7 @@ NextStep=Следваща стъпка Datas=Данни None=Няма NoneF=Няма +NoneOrSeveral=None or several Late=Закъснели LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Снимка @@ -606,7 +612,8 @@ PartialWoman=Частична TotalWoman=Обща NeverReceived=Никога не получено Canceled=Отменен -YouCanChangeValuesForThisListFromDictionarySetup=Можете да промените стойностите за този списък от меню Настройки - речник +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Цвят Documents=Свързани файлове @@ -642,6 +649,7 @@ FreeLineOfType=Свободен вход с тип CloneMainAttributes=Клонира обекта с неговите основни атрибути PDFMerge=PDF обединяване Merge=Обединяване +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Показване на страница за печат само с основното съдържание MenuManager=Меню менажер WarningYouAreInMaintenanceMode=Внимание, вие сте в режим на поддръжка, така че само вход %s се разрешава за използване приложение в момента. @@ -708,6 +716,7 @@ from=от toward=към Access=Достъп SelectAction=Избиране на действие +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Използвайте Ctrl+C за да копирате в клипборда SaveUploadedFileWithMask=Запишете файла на сървъра с име "%s" (иначе "%s") OriginFileName=Оригинално име на файла @@ -718,7 +727,7 @@ ViewPrivateNote=Биж бележки XMoreLines=%s ред(а) скрити PublicUrl=Публичен URL AddBox=Добави поле -SelectElementAndClickRefresh=Изберете елемент и натиснете Обнови +SelectElementAndClick=Select an element and click %s PrintFile=Печат на файл %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Отидете на Начало - Настройки - Фирма/Организация, за да промените логото или отидете на Начало - Настройки- Екран, за да го скриете. @@ -734,8 +743,8 @@ Hello=Здравейте Sincerely=Искрено DeleteLine=Изтриване на линия ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Календар GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Понеделник Tuesday=Вторник @@ -817,5 +835,3 @@ SearchIntoContracts=Договори SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Опис разходи SearchIntoLeaves=Отпуски - -BulkActions=Bulk actions diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 7f406309764..47a6d21ead8 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Дата на раждане BirthdayAlertOn=Известяването за рожден ден е активно BirthdayAlertOff=Известяването за рожден ден е неактивно +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Интервенцията е валидирана Notify_FICHINTER_SENTBYMAIL=Интервенцията е изпратена по пощата @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Това е тестов имейл (думата PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nТук ще намерите фактура __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nБихме искали да ви предопредим, че фактура __REF__ изглежда не е платена. Затова това фактурата е в прикачения файл, за напомняне.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nЩе намерите запитването за цена тук __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nТук ще намерите фактура __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Проф. Id %s
е информация, в зависимост от трета държава, която е страна.
Например, за страната %s, това е код %s. DolibarrDemo=Dolibarr ERP/CRM демо -StatsByNumberOfUnits=Статистика в брой на единици продукти/услуги -StatsByNumberOfEntities=Статистиката в брой на референции -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Намесата %s е потвърдена. EMailTextInvoiceValidated=Фактура %s е потвърдена. diff --git a/htdocs/langs/bg_BG/projects.lang b/htdocs/langs/bg_BG/projects.lang index 34f5845b318..2765e6bfbb4 100644 --- a/htdocs/langs/bg_BG/projects.lang +++ b/htdocs/langs/bg_BG/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Статус на проект SharedProject=Всички PrivateProject=ПРОЕКТА Контакти +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Всички проекти MyProjectsDesc=Тази гледна точка е ограничена до проекти, които са за контакт (какъвто и да е тип). ProjectsPublicDesc=Този възглед представя всички проекти, по които могат да се четат. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Този възглед представя всички проекти AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Нов проект AddProject=Създаване на проект DeleteAProject=Изтриване на проект DeleteATask=Изтриване на задача ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Отворени проекти -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Покажи проект SetProject=Задайте проект NoProject=Нито един проект няма определени или собственост NbOfProjects=Nb на проекти +NbOfTasks=Nb of tasks TimeSpent=Времето, прекарано TimeSpentByYou=Време отделено от вас TimeSpentByUser=Време отделено от потребител @@ -47,9 +52,9 @@ TaskTimeSpent=Време отдадено на задачи TaskTimeUser=Потребител TaskTimeNote=Бележка TaskTimeDate=Дата -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Задачи на отворени проекти WorkloadNotDefined=Работна натовареност не е определена -NewTimeSpent=Времето, прекарано на +NewTimeSpent=Времето, прекарано MyTimeSpent=Времето, прекарано Tasks=Задачи Task=Задача @@ -59,6 +64,7 @@ TaskDescription=Описание на задача NewTask=Нова задача AddTask=Създаване на задача AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Дейност Activities=Задачите / дейностите MyActivities=Моите задачи / дейности @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Списък на договори, свързани с проекта +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Списък на интервенциите, свързани с проекта ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=Списък на даренията асоциирани със този проект @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=ПРОЕКТА Контакти ActionsOnProject=Събития по проекта YouAreNotContactOfProject=Вие не сте контакт на този частен проект +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Изтриване на времето, прекарано ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Показване също на задачи, които не са възложени на мен @@ -110,7 +118,7 @@ TaskRessourceLinks=Ресурси ProjectsDedicatedToThisThirdParty=Проекти, насочени към този контрагент NoTasks=Няма задачи за този проект LinkedToAnotherCompany=Свързано с друг контрагент -TaskIsNotAffectedToYou=Задача, която не е възложена на вас +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Изразходваното време е празна ThisWillAlsoRemoveTasks=Това действие ще изтрие всички задачи на проекта (%s задачи в момента) и всички входове на времето, прекарано. IfNeedToUseOhterObjectKeepEmpty=Ако някои обекти (фактура, поръчка, ...), принадлежащи към друга трета страна, трябва да бъдат свързани с проекта за създаване, запазете тази празна да има проект е мулти трети страни. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Вече записано отделено време за тази задача/ден и потребител %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Проекти с този потребител като контакт TasksWithThisUserAsContact=Задачи възложени на този потребител ResourceNotAssignedToProject=Не е зададено към проект ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Възлагане на задача към мен +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Възлагане ProjectOverview=Общ преглед ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Бр. на създадените проекти по месец +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Статистики за проекти/инициативи +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Задачата е възложена. Въвеждането на време на тази задача би трябвало да е възможно IdTaskTime=Ид. време на задача YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Отворени проекти от трети лица +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/bn_BD/compta.lang b/htdocs/langs/bn_BD/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/bn_BD/compta.lang +++ b/htdocs/langs/bn_BD/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/bn_BD/cron.lang b/htdocs/langs/bn_BD/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/bn_BD/cron.lang +++ b/htdocs/langs/bn_BD/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/bn_BD/errors.lang b/htdocs/langs/bn_BD/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/bn_BD/errors.lang +++ b/htdocs/langs/bn_BD/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index 9ffa398137f..d7dde34acbb 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/bn_BD/projects.lang b/htdocs/langs/bn_BD/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/bn_BD/projects.lang +++ b/htdocs/langs/bn_BD/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 2f7dbbeefa0..1fe2d5d28c5 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -1,24 +1,24 @@ # Dolibarr language file - en_US - Accounting Expert -ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file -ACCOUNTING_EXPORT_DATE=Date format for export file -ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount -ACCOUNTING_EXPORT_DEVISE=Export currency -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name +ACCOUNTING_EXPORT_SEPARATORCSV=Odvajanje kolona za izvoznu datoteku +ACCOUNTING_EXPORT_DATE=Format datuma za izvoznu datoteku +ACCOUNTING_EXPORT_PIECE=Izvoz broja komada +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Izvoz sa globalnim računom +ACCOUNTING_EXPORT_LABEL=Izvoz naziva +ACCOUNTING_EXPORT_AMOUNT=Izvoz iznosa +ACCOUNTING_EXPORT_DEVISE=Izvoz valute +Selectformat=Odaberi format za datoteku +ACCOUNTING_EXPORT_PREFIX_SPEC=Odredi prefiks za naziv datoteke ThisService=This service ThisProduct=This product DefaultForService=Default for service DefaultForProduct=Default for product CantSuggest=Can't suggest AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuration of the module accounting expert -Journalization=Journalization -Journaux=Journals -JournalFinancial=Financial journals -BackToChartofaccounts=Return chart of accounts +ConfigAccountingExpert=Podešavanje modula eksperta računovodstva +Journalization=Prenos u dnevnik +Journaux=Dnevnici +JournalFinancial=Finansijski dnevnici +BackToChartofaccounts=Vraćanje na pregled računa Chartofaccounts=Chart of accounts CurrentDedicatedAccountingAccount=Current dedicated account AssignDedicatedAccountingAccount=New account to assign @@ -26,38 +26,46 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. MenuAccountancy=Računovodstvo -Selectchartofaccounts=Select active chart of accounts +Selectchartofaccounts=Odaberi aktivnog pregleda računa ChangeAndLoad=Change and load -Addanaccount=Add an accounting account -AccountAccounting=Accounting account +Addanaccount=Dodaj računovodstveni račun +AccountAccounting=Računovodstveni račun AccountAccountingShort=Account -AccountAccountingSuggest=Accounting account suggested +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal +AccountAccountingSuggest=Predloženi računovodstveni račun MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts MenuTaxAccounts=Tax accounts @@ -70,12 +78,12 @@ CustomersVentilation=Customer invoice binding SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +UpdateMvts=Modifikacija transakcije +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance -CAHTF=Total purchase supplier before tax +CAHTF=Ukupno nabavke od dobavljača prije poreza TotalExpenseReport=Total expense report InvoiceLines=Lines of invoices to bind InvoiceLinesDone=Bound lines of invoices @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,21 +204,34 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export -Modelcsv=Model of export -OptionsDeactivatedForThisExportModel=For this export model, options are deactivated -Selectmodelcsv=Select a model of export -Modelcsv_normal=Classic export -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité +Exports=Izvozi +Export=Izvoz +Modelcsv=Model izvoza +OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su onemogućene +Selectmodelcsv=Odaberi model izvoza +Modelcsv_normal=Klasični izvoz +Modelcsv_CEGID=Izvoz prema CEGID Expert Comptabilité Modelcsv_COALA=Export towards Sage Coala Modelcsv_bob50=Export towards Sage BOB 50 Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index b2556683c91..e116e82843b 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation +Foundation=Fondacija Version=Verzija VersionProgram=Verzija programa -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Prvobitno instalirana verzija +VersionLastUpgrade=Verzija zadnje nadogradnje VersionExperimental=Eksperimentalno VersionDevelopment=Razvoj VersionUnknown=Nepoznato @@ -28,26 +28,27 @@ SessionId=ID sesije SessionSaveHandler=Rukovatelj snimanje sesija SessionSavePath=Lokalizacija snimanja sesije PurgeSessions=Očistiti sesije -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +ConfirmPurgeSessions=Da li zaista želite očistiti sve sesije? Ovo će uzrokovati odjavu svih korisnika (osim Vas). NoSessionListWithThisHandler=Rukovatelj snimanja sesija konfigurisan u PHP-u ne dopušta da se prikažu sve pokrenute sesije. LockNewSessions=Zaključaj nove konekcije -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session +ConfirmLockNewSessions=Da li ste sigurni da želite onemogućiti bilo koju novu Dolibarr konekciju sebi. Nakon toga samo će korisnik %s moći se prijaviti. +UnlockNewSessions=Ukloni zaključavanje veze +YourSession=Vaša sesija +Sessions=Korisničke sesije WebUserGroup=Web server user/group NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). DBStoringCharset=Database charset to store data DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled +WarningModuleNotActive=Modul %s mora biti omogućen WarningOnlyPermissionOfActivatedModules=Samo dozvole koje se odnose na aktivirane module su prikazane ovdje. Možete aktivirati druge module u Početna>Postavke>Stranice modula. -DolibarrSetup=Dolibarr install or upgrade +DolibarrSetup=Dolibarr instalacija ili unapređenje InternalUser=Interni korisnik -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display +ExternalUser=Vanjski korisnik +InternalUsers=Interni korisnici +ExternalUsers=Vanjski korisnici +GUISetup=Prikaz SetupArea=Podrčje za postavke +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Forma za testiranje uploada fajlova (prema postavkama) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -60,32 +61,32 @@ ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is n DictionarySetup=Postavke rječnika Dictionary=Dictionaries ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) +ErrorCodeCantContainZero=Kod ne može sadržavati vrijednost 0 +DisableJavascript=Onemogući JavaScript i Ajax funkcije (preporučeno za slijepe osobe ili tekstualne preglednike) UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled +NumberOfKeyToSearch=Broj znakova za početak pretrage: %s +NotAvailableWhenAjaxDisabled=Nije moguće kada je Ajax isključen AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) +JavascriptDisabled=Onemogućena JavaScript +UsePreviewTabs=Koristi kartice pretpregleda +ShowPreview=Prikaži pretpregled +PreviewNotAvailable=Pretpregled nije moguć +ThemeCurrentlyActive=Trenutno aktivna tema +CurrentTimeZone=Vremenska zona PHP (servera) MySQLTimeZone=TimeZone MySql (database) TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Slijedeća vrijednost (depozita) +Space=Razmak +Table=Tabela +Fields=Polja +Index=Indeks +Mask=Maska +NextValue=Sljedeća vrijednost +NextValueForInvoices=Sljedeća vrijednost (fakture) +NextValueForCreditNotes=Sljedeća vrijednost (KO) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Slijedeća vrijednost (zamjene) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -93,28 +94,27 @@ MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any uploa UseCaptchaCode=Use graphical code (CAPTCHA) on login page AntiVirusCommand= Full path to antivirus command AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line +AntiVirusParam= Više parametara preko komandne linije AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Postavke modula za računovodstvo UserSetup=Postavke upravljanja korisnika MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy +MenuLimits=Ograničenja i preciznost MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active +AllMenus=Sve +NotConfigured=Module/Application not configured +Active=Aktivan SetupShort=Postavke -OtherOptions=Other options +OtherOptions=Druge opcije OtherSetup=Ostale postavke -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator +CurrentValueSeparatorDecimal=Odvajanje decimala +CurrentValueSeparatorThousand=Odvajanje hiljada Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s +LanguageBrowserParameter=Parametar %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) ClientHour=Client time (user) @@ -123,19 +123,20 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=Da biste postavili različite PHP vremenske zonu (nije potrebno), možete pokušati dodati fajl .htacces sa linijom kao što je ova "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order +PositionByDefault=Pretpostavljeni red Position=Pozicija MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users +MenuForUsers=Meni za korisnike LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area +System=Sistem +SystemInfo=Sistemske informacije +SystemToolsArea=Područje sistemskih alata SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. Purge=Purge PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. @@ -183,13 +184,13 @@ NoLockBeforeInsert=No lock commands around INSERT DelayedInsert=Delayed insert EncodeBinariesInHexa=Encode binary data in hexadecimal IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Automatsko otkrivanje (browser jezik) +AutoDetectLang=Automatsko otkrivanje (jezik preglednika) FeatureDisabledInDemo=Feature disabled in demo FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Dozvole BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Zaštita PDF dokument drži ga na raspolaganju za čitanje i printanje za bilo kojiPDF preglednikom. Međutim, uređivanje i kopiranje nije moguće. Imajte na umu da koristite ovu funkciju čine izgradnju globalne kumulirane pdf fajlove ne radi (kao što su neplaćeni računi). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -243,7 +246,7 @@ NoticePeriod=Notice period NewByMonth=New by month Emails=E-mails EMailsSetup=Postavke e-mailova -EMailsDesc=Ova stranica vam omogućava da prebriše PHP parametre za slanje e-mailova. U većini slučajeva na Unix / Linux OS, PHP postavke si ispravne i ovi parametri su beskorisni. +EMailsDesc=Ova stranica vam omogućava da prebriše PHP parametre za slanje e-mailova. U većini slučajeva na Unix / Linux OS, PHP postavke su ispravne i ovi parametri su beskorisni. MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) @@ -267,8 +270,8 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Postavke modula -ModulesSetup=Postavke modula -ModuleFamilyBase=System +ModulesSetup=Modules/Application setup +ModuleFamilyBase=Sistem ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) ModuleFamilyProducts=Products Management (PM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -367,21 +373,23 @@ String=String TextLong=Long text Int=Integer Float=Float -DateAndTime=Date and hour +DateAndTime=Datum i vrijeme Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon -ExtrafieldPrice = Price -ExtrafieldMail = Email +ExtrafieldPrice = Cijena +ExtrafieldMail = email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldSeparator=Separator (not a field) +ExtrafieldPassword=Šifra +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -398,7 +406,7 @@ LinkToTest=Clickable link generated for user %s (click phone nu KeepEmptyToUseDefault=Keep empty to use default value DefaultLink=Default link SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Upozorenje, ova vrijednost se može prebrisati posebnim postabkama korisnika (svaki korisnik može postaviti svoj clicktodial URL) +ValueOverwrittenByUserSetup=Upozorenje, ova vrijednost se može prebrisati posebnim postavkama korisnika (svaki korisnik može postaviti svoj clicktodial URL) ExternalModule=Eksterni moduli - Instalirani u direktorij %s BarcodeInitForThirdparties=Mass barcode init for thirdparties BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Dobavljači Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Proizvodi @@ -487,7 +509,7 @@ Module240Name=Data exports Module240Desc=Tool to export Dolibarr data (with assistants) Module250Name=Data imports Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members +Module310Name=Članovi Module310Desc=Foundation members management Module320Name=RSS Feed Module320Desc=Add RSS feed inside Dolibarr screen pages @@ -499,15 +521,15 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifikacije Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails Module700Name=Donacije Module700Desc=Donation management -Module770Name=Expense reports +Module770Name=Izvještaj o troškovima Module770Desc=Management and claim expense reports (transportation, meal, ...) Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=Kadrovska služba -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow - Tok rada @@ -570,7 +594,7 @@ Module59000Name=Margins Module59000Desc=Module to manage margins Module60000Name=Commissions Module60000Desc=Module to manage commissions -Module63000Name=Resources +Module63000Name=Resursi Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events Permission11=Read customer invoices Permission12=Create/modify customer invoices @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -830,7 +854,7 @@ DictionaryActions=Types of agenda events DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=VAT Rates or Sales Tax Rates DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms +DictionaryPaymentConditions=Uslovi plaćanja DictionaryPaymentModes=Payment modes DictionaryTypeContact=Contact/Address types DictionaryEcotaxe=Ecotax (WEEE) @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Jedinice DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Postavke snimljene +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -858,7 +884,7 @@ VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases li VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. ##### Local Taxes ##### -LTRate=Rate +LTRate=Stopa LocalTax1IsNotUsed=Do not use second tax LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=Lista svih parametara postavki za Dolibarr -MenuCompanySetup=Kompanija/Fondacija +MenuCompanySetup=Kompanija/organizacija DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Naziv CompanyAddress=Adresa CompanyZip=Zip @@ -950,7 +978,7 @@ NoActiveBankAccountDefined=No active bank account defined OwnerOfBankAccount=Owner of bank account %s BankModuleNotActive=Bank accounts module not enabled ShowBugTrackLink=Show link "%s" -Alerts=Alerts +Alerts=Upozorenja DelaysOfToleranceBeforeWarning=Tolerance delays before warning DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=Možete koristiti driver %s koji je trenutno najbolji. @@ -1129,14 +1158,16 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models -CreditNote=Dobropis -CreditNotes=Dobropisi +PaymentsPDFModules=Payment documents models +CreditNote=Knjižna obavijest +CreditNotes=Knjižne obavijesti ForceInvoiceDate=Force invoice date to validation date SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account @@ -1191,11 +1222,11 @@ AdherentMailRequired=EMail required to create a new member MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default ##### LDAP setup ##### LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users +LDAPGlobalParameters=Globalni parametri +LDAPUsersSynchro=Korisnici LDAPGroupsSynchro=Grupe -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members +LDAPContactsSynchro=Kontakti +LDAPMembersSynchro=Članovi LDAPSynchronization=LDAP synchronisation LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP LDAPToDolibarr=LDAP -> Dolibarr @@ -1302,7 +1333,7 @@ LDAPFieldCompanyExample=Example : o LDAPFieldSid=SID LDAPFieldSidExample=Example : objectsid LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position +LDAPFieldTitle=Pozicija LDAPFieldTitleExample=Example: title LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Fajlovi tipa %s nisu keširani na HTTP serveru FilesOfTypeCompressed=Fajlovi tipa %s su kompresovani od strane HTTP servera FilesOfTypeNotCompressed=Fajlovi tipa %s nisu kompresovani od strane HTTP servera CacheByServer=Keširanje na serveru +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Keširanje u browser-u CompressionOfResources=Kompresija HTTP odgovora +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1518,12 +1557,11 @@ WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is n BankSetupModule=Bank module setup FreeLegalTextOnChequeReceipts=Free text on cheque receipts BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General +BankOrderGlobal=Opće BankOrderGlobalDesc=General display order BankOrderES=Španski BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/bs_BA/banks.lang b/htdocs/langs/bs_BA/banks.lang index dcfd1f41866..bb23b2539ef 100644 --- a/htdocs/langs/bs_BA/banks.lang +++ b/htdocs/langs/bs_BA/banks.lang @@ -5,14 +5,14 @@ BankName=Naziv banke FinancialAccount=Račun BankAccount=Žiro račun BankAccounts=Žiro računi -ShowAccount=Show Account -AccountRef=Financijski računa ref -AccountLabel=Naziv za financijski račun +ShowAccount=Prikaži račun +AccountRef=Finansijski račun ref +AccountLabel=Naziv za finansijski račun CashAccount=Gotovinski račun CashAccounts=Gotovinski računi CurrentAccounts=Tekući računi SavingAccounts=Štedni računi -ErrorBankLabelAlreadyExists=Naziv za financijski račun već postoji +ErrorBankLabelAlreadyExists=Naziv za finansijski račun već postoji BankBalance=Stanje BankBalanceBefore=Stanje prije BankBalanceAfter=Stanje poslije @@ -28,12 +28,12 @@ Reconciliation=Izmirenje RIB=Broj bankovnog računa IBAN=IBAN broj BIC=BIC / SWIFT broj -SwiftValid=BIC/SWIFT valid -SwiftVNotalid=BIC/SWIFT not valid -IbanValid=BAN valid -IbanNotValid=BAN not valid -StandingOrders=Direct Debit orders -StandingOrder=Direct debit order +SwiftValid=BIC/SWIFT valjan +SwiftVNotalid=BIC/SWIFT nije valjan +IbanValid=BAN valjan +IbanNotValid=BAN nije valjan +StandingOrders=Nalozi za plaćanje +StandingOrder=Nalog za plaćanje AccountStatement=Izvod računa AccountStatementShort=Izvod AccountStatements=Izvodi računa @@ -43,7 +43,7 @@ BankAccountDomiciliation=Adresa računa BankAccountCountry=Zemlja računa BankAccountOwner=Ime vlasnika računa BankAccountOwnerAddress=Adresa vlasnika računa -RIBControlError=Integrity check of values fails. This means information for this account number are not complete or wrong (check country, numbers and IBAN). +RIBControlError=Provjera integriteta vrijednosti neuspješna. To znači da podaci za ovaj broj računa nisu tačni ili nepotpuni (provjerite državu, brojeve i IBAN). CreateAccount=Kreiraj račun NewBankAccount=Novi račun NewFinancialAccount=Novi finansijski račun @@ -57,96 +57,101 @@ BankType2=Gotovinski račun AccountsArea=Područje za račune AccountCard=Kartica računa DeleteAccount=Obriši račun -ConfirmDeleteAccount=Are you sure you want to delete this account? +ConfirmDeleteAccount=Da li ste sigurni da želite obrisati ovaj račun? Account=Račun -BankTransactionByCategories=Bank entries by categories -BankTransactionForCategory=Bank entries for category %s +BankTransactionByCategories=Bankovne transakcije po kategorijama +BankTransactionForCategory=Bankovne transakcije za kategoriju %s RemoveFromRubrique=Uklonite vezu sa kategorijom -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? -ListBankTransactions=List of bank entries +RemoveFromRubriqueConfirm=Da li ste sigurni da želite ukloniti vezu između transakcije i kategorije? +ListBankTransactions=Spisak bankovnih transakcija IdTransaction=ID transakcije -BankTransactions=Bank entries -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +BankTransactions=Bankovne transakcije +BankTransaction=Bankovna transakcija +ListTransactions=Spisak transakcija +ListTransactionsByCategory=Spisak transakcija/kategorija +TransactionsToConciliate=Transakcije za izmirivanje Conciliable=Može se izmiriti Conciliate=Izmiriti Conciliation=Podmirivanje -ReconciliationLate=Reconciliation late +ReconciliationLate=Kašnjenje s izmirivanjem IncludeClosedAccount=Uključiti zatvorene račune OnlyOpenedAccount=Samo otvoreni računi AccountToCredit=Račun za potraživanja AccountToDebit=Račun za zaduživanje DisableConciliation=Isključi opciju podmirenja za ovaj račun ConciliationDisabled=Opcija podmirivanja isključena -LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Otvoreno -StatusAccountClosed=Zatvoreno +LinkedToAConciliatedTransaction=Spojeno na izmirenu transakciju +StatusAccountOpened=Otvoren +StatusAccountClosed=Zatvoren AccountIdShort=Broj LineRecord=Transakcija -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Dodaj unos +AddBankRecordLong=Dodaj unos ručno ConciliatedBy=Izmireno od strane DateConciliating=Datum izmirivanja -BankLineConciliated=Entry reconciled -Reconciled=Reconciled -NotReconciled=Not reconciled -CustomerInvoicePayment=Uplata mušterije -SupplierInvoicePayment=Plaćanje dobavljača -SubscriptionPayment=Subscription payment +BankLineConciliated=Transakcija izmirena +Reconciled=Izmireno +NotReconciled=Nije izmireno +CustomerInvoicePayment=Uplata kupca +SupplierInvoicePayment=Plaćanje dobavljaču +SubscriptionPayment=Plaćanje preplate WithdrawalPayment=Povlačenje uplate -SocialContributionPayment=Social/fiscal tax payment -BankTransfer=Bankovna transakcija -BankTransfers=Bankovne transakcije -MenuBankInternalTransfer=Internal transfer -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction) +SocialContributionPayment=Plaćanje socijalnog/fiskalnog poreza +BankTransfer=Prenos između banaka +BankTransfers=Prenosi između banaka +MenuBankInternalTransfer=Interni transfer +TransferDesc=Prebacivanje s jednog računa na drugi, Dolibarr zapisuje dva unosa (potražuje račun sa kojeg se prenosi i duguje ciljni račun. Isti iznos (osim predznaka), oznaka i datum će se koristiti za ovu transakciju) TransferFrom=Od strane TransferTo=Prema TransferFromToDone=Transfer sa %s na %s u iznosu od %s %s je zapisan. CheckTransmitter=Otpremnik -ValidateCheckReceipt=Validate this check receipt? -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done? -DeleteCheckReceipt=Delete this check receipt? -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? +ValidateCheckReceipt=Odobrite ovaj ispis čeka? +ConfirmValidateCheckReceipt=Da li ste sigurni da želite odobriti ovaj prijem čeka, kada to uradite nećete moći više vršiti promjene? +DeleteCheckReceipt=Obrišite ovaj izvod čeka? +ConfirmDeleteCheckReceipt=Da li ste sigurni da želite obrisati ovaj izvod od čeka? BankChecks=Bankovni ček -BankChecksToReceipt=Checks awaiting deposit +BankChecksToReceipt=Čekovi koji čekaju na depozit ShowCheckReceipt=Prikaži priznanicu depozita čeka NumberOfCheques=Broj čeka -DeleteTransaction=Delete entry -ConfirmDeleteTransaction=Are you sure you want to delete this entry? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +DeleteTransaction=Obriši unos +ConfirmDeleteTransaction=Da li ste sigurni da želite obrisati ovaj unos? +ThisWillAlsoDeleteBankRecord=Ovim će se također obrisati i generisana bankovna transakcija BankMovements=Promet -PlannedTransactions=Planned entries +PlannedTransactions=Planirane transakcije Graph=Grafika -ExportDataset_banque_1=Bank entries and account statement -ExportDataset_banque_2=Deposit slip +ExportDataset_banque_1=Bankovne transakcije i izvod s računa +ExportDataset_banque_2=Priznanica depozita TransactionOnTheOtherAccount=Transakcija na drugom računu -PaymentNumberUpdateSucceeded=Payment number updated successfully +PaymentNumberUpdateSucceeded=Broj uplate uspješno ažuriran PaymentNumberUpdateFailed=Broj uplate nije ažuriran -PaymentDateUpdateSucceeded=Payment date updated successfully +PaymentDateUpdateSucceeded=Datum uplate uspješno ažuriran PaymentDateUpdateFailed=Datum uplate nije ažuriran Transactions=Transakcije -BankTransactionLine=Bank entry +BankTransactionLine=Bankovna transakcija AllAccounts=Svi bankovni/novčani računi BackToAccount=Nazad na račun ShowAllAccounts=Pokaži za sve račune -FutureTransaction=Transakcije u budućnosti. Nema šanse da se izmiri. +FutureTransaction=Transakcija u budućnosti. Ne može se izmiriti. SelectChequeTransactionAndGenerate=Izaberite/filtrirajte čekove za uključivanje u priznanicu za depozit i kliknite na "Kreiraj". -InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD +InputReceiptNumber=Izaberite izvod iz banke za izmirivanje. Koristite brojevne vrijednosti koje se mogu sortirati: YYYYMM ili YYYYMMDD EventualyAddCategory=Na kraju, navesti kategoriju u koju će se svrstati zapisi -ToConciliate=To reconcile? +ToConciliate=Za izmirenje? ThenCheckLinesAndConciliate=Zatim, provjerite tekst prisutan u izvodu banke i kliknite DefaultRIB=Uobičajeni BAN -AllRIB=All BAN -LabelRIB=BAN Label -NoBANRecord=No BAN record -DeleteARib=Delete BAN record -ConfirmDeleteRib=Are you sure you want to delete this BAN record? -RejectCheck=Check returned -ConfirmRejectCheck=Are you sure you want to mark this check as rejected? -RejectCheckDate=Date the check was returned -CheckRejected=Check returned -CheckRejectedAndInvoicesReopened=Check returned and invoices reopened -BankAccountModelModule=Document templates for bank accounts -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. -DocumentModelBan=Template to print a page with BAN information. +AllRIB=Svi BAN +LabelRIB=Oznaka BAN +NoBANRecord=Nema BAN zapisa +DeleteARib=Brisanje BAN zapisa +ConfirmDeleteRib=Da li ste sigurni da želite obrisati ovaj BAN zapis? +RejectCheck=Ček vraćen +ConfirmRejectCheck=Da li ste sigurni da želite označiti ovaj ček kao odbijen? +RejectCheckDate=Datum vraćanja čeka +CheckRejected=Ček vraćen +CheckRejectedAndInvoicesReopened=Ček vraćen i fakture ponovno otvorene +BankAccountModelModule=Šabloni dokumenata za bankovne račune +DocumentModelSepaMandate=Šablon za SEPA mandat. Koristan je samo za evropske zemlje članice EU. +DocumentModelBan=Šablon za štampanje stranice sa BAN podacima. +NewVariousPayment=Novo ostalo plaćanje +VariousPayment=Razno plaćanje +VariousPayments=Razna plaćanja +ShowVariousPayment=Pokaži ostala plaćanja diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang index 5e1ce554937..7653062f4a3 100644 --- a/htdocs/langs/bs_BA/bills.lang +++ b/htdocs/langs/bs_BA/bills.lang @@ -1,32 +1,32 @@ # Dolibarr language file - Source file is en_US - bills Bill=Faktura Bills=Fakture -BillsCustomers=Customer invoices +BillsCustomers=Fakture kupaca BillsCustomer=Faktura kupca -BillsSuppliers=Supplier invoices -BillsCustomersUnpaid=Unpaid customer invoices -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s -BillsSuppliersUnpaid=Unpaid supplier invoices -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliers=Fakture dobavljača +BillsCustomersUnpaid=Nenaplaćene fakture od kupca +BillsCustomersUnpaidForCompany=Neplaćene fakture kupca za %s +BillsSuppliersUnpaid=Neplaćene fakture dobavljača +BillsSuppliersUnpaidForCompany=Neplaćene fakture dobavljača za %s BillsLate=Zakašnjela plaćanja -BillsStatistics=Customers invoices statistics -BillsStatisticsSuppliers=Suppliers invoices statistics -DisabledBecauseNotErasable=Disabled because cannot be erased +BillsStatistics=Statistika faktura kupaca +BillsStatisticsSuppliers=Statistika faktura dobavljača +DisabledBecauseNotErasable=Onemogućeno jer se ne može brisati InvoiceStandard=Standardna faktura InvoiceStandardAsk=Standardna faktura InvoiceStandardDesc=Ova vrsta fakture je uobičajena faktura. -InvoiceDeposit=Faktura za avans -InvoiceDepositAsk=Faktura za avans -InvoiceDepositDesc=Ova vrsta fakture se izdaje kada se primi avans +InvoiceDeposit=Račun za akontaciju +InvoiceDepositAsk=Račun za akontaciju +InvoiceDepositDesc=Ova vrsta fakture se pravi kada je uplaćena akontacija. InvoiceProForma=Predračun InvoiceProFormaAsk=Predračun -InvoiceProFormaDesc=Predračun izgleda isto kao račun, vendar nima računaodske vrednosti. +InvoiceProFormaDesc=Predračun izgleda isto kao račun, ali nema računovodstvene vrijednosti. InvoiceReplacement=Zamjenska faktura InvoiceReplacementAsk=Zamjenska faktura za fakturu InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. -InvoiceAvoir=Dobropis -InvoiceAvoirAsk=Dobropis za korekcijo računa -InvoiceAvoirDesc=Dobropis je negativni račun, ki se uporabi za rešitev problema, ko je iznos na računu drugačen od dejansko plačanega zneska (ker je kupec pomotoma plačal preveč, ali ne bo plačal v celoti, ker je na primer vrnil nekatere proizvode). +InvoiceAvoir=Knjižna obavijest +InvoiceAvoirAsk=Knjižna obavijest za korekciju računa +InvoiceAvoirDesc=Knjižna obavijest je negativni račun, koji se koristi za rješavanje činjenice da računa ima iznos različit od iznosa koji je zaista plaćen (jer je kupac platio greškom više, ili neće da plati ostatak jer je vratio neke robe naprimjer). invoiceAvoirWithLines=Create Credit Note with lines from the origin invoice invoiceAvoirWithPaymentRestAmount=Create Credit Note with remaining unpaid of origin invoice invoiceAvoirLineWithPaymentRestAmount=Credit Note for remaining unpaid amount @@ -39,9 +39,9 @@ CorrectionInvoice=Ispravak fakture UsedByInvoice=Upotrebljeno za plaćanje fakture %s ConsumedBy=Utrošeno od strane NotConsumed=Nije utrošeno -NoReplacableInvoice=Ni nadomestnega računa +NoReplacableInvoice=Nema zamjenskih računa NoInvoiceToCorrect=Nema fakture za ispravljanje -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=je bila izvor jedne ili više knjižnih obavijesti CardBill=Kartica fakture PredefinedInvoices=Predefinisane fakture Invoice=Faktura @@ -59,11 +59,11 @@ PaymentBack=Povrat uplate CustomerInvoicePaymentBack=Povrat uplate Payments=Uplate PaymentsBack=Povrat uplata -paymentInInvoiceCurrency=in invoices currency +paymentInInvoiceCurrency=u valuti faktura PaidBack=Uplaćeno nazad DeletePayment=Obriši uplatu -ConfirmDeletePayment=Jeste li sigurni da želite obrisati ovu uplatu? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmDeletePayment=Da li ste sigurni da želite obrisati ovu uplatu? +ConfirmConvertToReduc=Da li želite ovo %s pretvoriti u apsolutni popust ?
Iznos će biti spremljen među sve popuste i može se koristiti kao poput za trenutnu ili neke buduće fakture za ovog kupca. SupplierPayments=Uplate dobavljača ReceivedPayments=Primljene uplate ReceivedCustomersPayments=Primljene uplate od kupaca @@ -75,76 +75,76 @@ PaymentsAlreadyDone=Izvršene uplate PaymentsBackAlreadyDone=Izvršeni povrati uplata PaymentRule=Pravilo plaćanja PaymentMode=Način plaćanja -PaymentTypeDC=Debit/Credit Card +PaymentTypeDC=Debitna/kreditna kartica PaymentTypePP=PayPal IdPaymentMode=Payment type (id) -CodePaymentMode=Payment type (code) +CodePaymentMode=Vrsta plaćanja (šifra) LabelPaymentMode=Payment type (label) PaymentModeShort=Način plaćanja PaymentTerm=Rok plaćanja -PaymentConditions=Payment terms -PaymentConditionsShort=Payment terms +PaymentConditions=Uslovi plaćanja +PaymentConditionsShort=Uslovi plaćanja PaymentAmount=Iznos plaćanja ValidatePayment=Potvrditi uplatu PaymentHigherThanReminderToPay=Uplata viša od zaostalog duga -HelpPaymentHigherThanReminderToPay=Pozor, plačilo zneska enega ali več računa je višje od preostanka za plačilo.
Popravite vaš vnos, ali potrdite iznos in pripravite dobropise za prekoračene zneske za vsak preveč plačan račun. +HelpPaymentHigherThanReminderToPay=Upozorenje, plaćanje iznosa jedne ili više faktura je veće od ostatka duga.
Izmijenite vaš unos, u suprotnom potvrdite i napravite knjižnu obavijest za višak primljen za svaku više plaćenu fakturu. HelpPaymentHigherThanReminderToPaySupplier=Attention, the payment amount of one or more bills is higher than the rest to pay.
Edit your entry, otherwise confirm. ClassifyPaid=Označi kao 'Plaćeno' ClassifyPaidPartially=Označi kao 'Djelimično plaćeno' ClassifyCanceled=Označi kao 'Otkazano' ClassifyClosed=Označi kao 'Zaključeno' -ClassifyUnBilled=Classify 'Unbilled' +ClassifyUnBilled=Klasificiraj 'nefakturisano' CreateBill=Kreiraj predračun CreateCreditNote=Ustvari dobropis -AddBill=Create invoice or credit note +AddBill=Napravi račun ili knjižnu obavijest AddToDraftInvoices=Dodaj na uzorak fakture DeleteBill=Obriši fakturu SearchACustomerInvoice=Traži fakturu kupca SearchASupplierInvoice=Traži fakturu dobavljača CancelBill=Otkaži fakturu SendRemindByMail=Pošalji opomenu na E-Mail -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Unesi uplatu +DoPaymentBack=Unesi refundaciju ConvertToReduc=Pretvori u budući popust ConvertExcessReceivedToReduc=Convert excess received into future discount EnterPaymentReceivedFromCustomer=Unesi uplate primljene od kupca -EnterPaymentDueToCustomer=Vnesi Rok plaćanja za kupca -DisabledBecauseRemainderToPayIsZero=Disabled because remaining unpaid is zero +EnterPaymentDueToCustomer=Unesi rok plaćanja za kupca +DisabledBecauseRemainderToPayIsZero=Onemogućeno jer je ostatak duga nula PriceBase=Osnova cijene BillStatus=Status fakture StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Uzorak (Potrebna je potvrda) BillStatusPaid=Plaćeno -BillStatusPaidBackOrConverted=Refund or converted into discount -BillStatusConverted=Spremenjeno v popust +BillStatusPaidBackOrConverted=Refundacija knjiž.obavijesti ili pretvoreno u popust +BillStatusConverted=Plaćeno (spremno za konačnu fakturu) BillStatusCanceled=Otkazano BillStatusValidated=Potvrđeno (Potrebno platiti) BillStatusStarted=Započeto BillStatusNotPaid=Nije plaćeno -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Nije vraćeno BillStatusClosedUnpaid=Zaključeno (neplaćeno) BillStatusClosedPaidPartially=Plaćeno (djelimično) BillShortStatusDraft=Uzorak BillShortStatusPaid=Plaćeno -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Spremenjeno +BillShortStatusPaidBackOrConverted=Refundirano ili preplaćeno +BillShortStatusConverted=Plaćeno BillShortStatusCanceled=Otkazano BillShortStatusValidated=Potvrđeno BillShortStatusStarted=Započeto BillShortStatusNotPaid=Neplaćeno -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Nije vraćeno BillShortStatusClosedUnpaid=Zaključeno BillShortStatusClosedPaidPartially=Plaćeno (djelimično) PaymentStatusToValidShort=Za potvrdu ErrorVATIntraNotConfigured=PDV broj nije definisan -ErrorNoPaiementModeConfigured=Ni določen privzet način plačila. Pojdite na nastavitve modula za račune. -ErrorCreateBankAccount=Kreirajte bančni račun, zatem pojdite na področje Nastavitve za definiranje načina plačila +ErrorNoPaiementModeConfigured=Nema definisanog načina plaćanja. Idite u postavke modula faktura da popravite ovo. +ErrorCreateBankAccount=Napravite bankovni račun, zatim idite u panel postavki modula računa za definiranje načina plaćanja ErrorBillNotFound=Faktura %s ne postoji -ErrorInvoiceAlreadyReplaced=Greška, poskusili ste potrditi račun za zamenjavo račuuna %s. Vendar je ta že bil nadomeščen z računom %s. +ErrorInvoiceAlreadyReplaced=Greška, pokušavate odobriti fakturu za zamjenu fakture %s. Ali je ona već zamijenjena fakturom %s. ErrorDiscountAlreadyUsed=Greška, popust se već koristi ErrorInvoiceAvoirMustBeNegative=Greška, na popravljenem računu mora biti negativni iznos -ErrorInvoiceOfThisTypeMustBePositive=Greška, ovaj tup fakture mora imati pozitivnu količinu -ErrorCantCancelIfReplacementInvoiceNotValidated=Greška, ne morete preklicati računa, ki je bil zamenjan z drugim računom, ki je še v statusu osnutka +ErrorInvoiceOfThisTypeMustBePositive=Greška, ovaj tip fakture mora imati pozitivnu količinu +ErrorCantCancelIfReplacementInvoiceNotValidated=Greška, ne možete poništiti fakturu koju je zamijenila druga faktura a koja je još u statusu nacrta BillFrom=Od BillTo=Račun za ActionsOnBill=Aktivnosti na fakturi @@ -153,14 +153,14 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Nova faktura -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Posljednjih %s faktura +LastCustomersBills=Posljednjih %s faktura kupaca +LastSuppliersBills=Posljednjih %s faktura dobavljača AllBills=Sve fakture OtherBills=Ostale fakture DraftBills=Uzorak faktura -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Nacrti faktura kupcima +SuppliersDraftInvoices=Nacrti faktura dobavljačima Unpaid=Neplaćeno ConfirmDeleteBill=Are you sure you want to delete this invoice? ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? @@ -174,14 +174,14 @@ ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a dis ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. ConfirmClassifyPaidPartiallyReasonBadCustomer=Loš kupac -ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvodi djelomično vraćeni +ConfirmClassifyPaidPartiallyReasonProductReturned=Proizvodi djelimično vraćeni ConfirmClassifyPaidPartiallyReasonOther=Iznos otkazan zbog drugog razloga -ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ovaj izbor je moguć ako faktura sadrži odgovarajući komentar. (Primjer << Imate pravo na odbitak, samo ako je plaćen porez koji odgovara cijeni>>) -ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim državama je ovaj izbor moguć samo ako faktura sadrži ispavne bilješke +ConfirmClassifyPaidPartiallyReasonDiscountNoVatDesc=Ovaj izbor je moguć ako faktura sadrži odgovarajući komentar. (Primjer «Imate pravo na odbitak, samo ako je plaćen porez koji odgovara cijeni») +ConfirmClassifyPaidPartiallyReasonDiscountVatDesc=U nekim državama je ovaj izbor moguć samo ako faktura sadrži ispravne bilješke ConfirmClassifyPaidPartiallyReasonAvoirDesc=Koristiti ovaj izbor samo ako nije drugi nije zadovoljavajući ConfirmClassifyPaidPartiallyReasonBadCustomerDesc=Loš kupac je kupac koji je odbija platiti svoj dug. ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada uplata nije završena zbog povrata nekih proizvoda -ConfirmClassifyPaidPartiallyReasonOtherDesc=To izbiro uporabite, če nobena druga ne ustreza, na primer v naslednji situaciji:
- plačilo ni izvršeno v celoti, ker so bili nekateri proizvodi vrnjeni
- iznos je bil reklamiran, ker ni bil obračunan popust
V vseh primerih mora biti reklamiran iznos popravljen v računaodskem sistemu s kreiranjem dobropisa. +ConfirmClassifyPaidPartiallyReasonOtherDesc=Koristite ovaj izbor ako bilo koji drugi ne odgovara, naprimjer u sljedećoj situaciji:
- plaćanje nije izvršeno jer su neki proizvodi vraćeni
- iznos je bio reklamiran, jer nije obračunat popust
U svim slučajevima, iznos koji je reklamiran mora biti ispravljen u računovodstvenom sistemu kreiranjem knjižne obavijesti. ConfirmClassifyAbandonReasonOther=Ostalo ConfirmClassifyAbandonReasonOtherDesc=Ovaj izbor se koristi u svim drugih slučajevima. Naprimjer, zbog toga sto planiranje kreirati zamjensku fakturu. ConfirmCustomerPayment=Do you confirm this payment input for %s %s? @@ -198,16 +198,16 @@ ShowBill=Prikaži fakturu ShowInvoice=Prikaži fakturu ShowInvoiceReplace=Prikaži zamjensku fakturu ShowInvoiceAvoir=Prikaži dobropis -ShowInvoiceDeposit=Prikaži fakture za avans +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Prikaži uplatu AlreadyPaid=Već plaćeno AlreadyPaidBack=Već izvršen povrat uplate -AlreadyPaidNoCreditNotesNoDeposits=Že plačano (brez dobropisa in avansa) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Otkazano -RemainderToPay=Remaining unpaid -RemainderToTake=Remaining amount to take -RemainderToPayBack=Remaining amount to refund +RemainderToPay=Ostalo neplaćeno +RemainderToTake=Ostatak iznosa za naplatu +RemainderToPayBack=Ostatak iznosa za povrat Rest=Čekanje AmountExpected=Iznos za potraživati ExcessReceived=Višak primljen @@ -216,7 +216,7 @@ EscompteOfferedShort=Popust SendBillRef=Submission of invoice %s SendReminderBillRef=Submission of invoice %s (reminder) StandingOrders=Direct debit orders -StandingOrder=Direct debit order +StandingOrder=Nalog za plaćanje NoDraftBills=Nema uzoraka faktura NoOtherDraftBills=Nema drugih uzoraka faktura NoDraftInvoices=Nema uzoraka faktura @@ -233,10 +233,10 @@ DateInvoice=Datum fakture DatePointOfTax=Point of tax NoInvoice=Nema fakture ClassifyBill=Označi fakturu -SupplierBillsToPay=Unpaid supplier invoices -CustomerBillsUnpaid=Unpaid customer invoices +SupplierBillsToPay=Neplaćene fakture dobavljača +CustomerBillsUnpaid=Nenaplaćene fakture od kupca NonPercuRecuperable=Nepovratno -SetConditions=Postaviti uslova plaćanja +SetConditions=Postaviti uslove plaćanja SetMode=Postaviti način plaćanja SetRevenuStamp=Set revenue stamp Billed=Fakturisano @@ -270,10 +270,10 @@ RelativeDiscount=Relativni popust GlobalDiscount=Globalni popust CreditNote=Dobropis CreditNotes=Dobropisi -Deposit=Avans -Deposits=Avansi +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Popust z dobropisa %s -DiscountFromDeposit=Uplata sa fakture za avans %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ova vrsta kredita može se koristiti na fakturi prije potvrde CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -314,8 +314,8 @@ ConfirmRemoveDiscount=Are you sure you want to remove this discount? RelatedBill=Povezana faktura RelatedBills=Povezane fakture RelatedCustomerInvoices=Related customer invoices -RelatedSupplierInvoices=Related supplier invoices -LatestRelatedBill=Latest related invoice +RelatedSupplierInvoices=Povezane fakture dobavljača +LatestRelatedBill=Posljednje povezane fakture WarningBillExist=Warning, one or more invoice already exist MergingPDFTool=Merging PDF tool AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice @@ -323,9 +323,9 @@ PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but PaymentNote=Payment note ListOfPreviousSituationInvoices=List of previous situation invoices ListOfNextSituationInvoices=List of next situation invoices -FrequencyPer_d=Every %s days -FrequencyPer_m=Every %s months -FrequencyPer_y=Every %s years +FrequencyPer_d=Svakih %s dana +FrequencyPer_m=Svakih %s mjeseci +FrequencyPer_y=Svakih %s godina toolTipFrequency=Examples:
Set 7, Day: give a new invoice every 7 days
Set 3, Month: give a new invoice every 3 month NextDateToExecution=Date for next invoice generation DateLastGeneration=Date of latest generation @@ -340,28 +340,28 @@ WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Rok po preuzimanju +PaymentConditionRECEP=Rok po preuzimanju PaymentConditionShort30D=30 dana PaymentCondition30D=30 dana -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 dana do kraja mjeseca +PaymentCondition30DENDMONTH=Unutar 30 dana nakon isteka mjeseca PaymentConditionShort60D=60 dana PaymentCondition60D=60 dana -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 dana do kraja mjeseca +PaymentCondition60DENDMONTH=Unutar 60 dana nakon isteka mjeseca PaymentConditionShortPT_DELIVERY=Isporuka PaymentConditionPT_DELIVERY=Na isporuci -PaymentConditionShortPT_ORDER=Order +PaymentConditionShortPT_ORDER=Narudžba PaymentConditionPT_ORDER=Na narudžbi PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% unaprijed, 50%% na isporuci -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days +PaymentConditionShort10D=10 dana +PaymentCondition10D=10 dana PaymentConditionShort10DENDMONTH=10 days of month-end PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days +PaymentConditionShort14D=14 dana +PaymentCondition14D=14 dana PaymentConditionShort14DENDMONTH=14 days of month-end PaymentCondition14DENDMONTH=Within 14 days following the end of the month FixAmount=Fiksni iznos @@ -369,19 +369,19 @@ VarAmount=Varijabilni iznos (%% tot.) # PaymentType PaymentTypeVIR=Bankovna transakcija PaymentTypeShortVIR=Bankovna transakcija -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Direktni nalog za plaćanje +PaymentTypeShortPRE=Nalog za plaćanje PaymentTypeLIQ=Gotovina PaymentTypeShortLIQ=Gotovina PaymentTypeCB=Kreditna kartica PaymentTypeShortCB=Kreditna kartica PaymentTypeCHQ=Ček PaymentTypeShortCHQ=Ček -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment +PaymentTypeTIP=Akreditiv (Akreditivno pismo) +PaymentTypeShortTIP=Plaćanje akreditivom PaymentTypeVAD=Elektronska uplata PaymentTypeShortVAD=Elektronska uplata -PaymentTypeTRA=Bank draft +PaymentTypeTRA=Povlačenje banke PaymentTypeShortTRA=Nacrt PaymentTypeFAC=Factor PaymentTypeShortFAC=Factor @@ -390,7 +390,7 @@ BankCode=Kod banke DeskCode=Kod blagajne BankAccountNumber=Kod računa BankAccountNumberKey=Ključ -Residence=Direct debit +Residence=Nalog za plaćanje IBANNumber=IBAN broj IBAN=IBAN BIC=BIC/SWIFT @@ -439,7 +439,7 @@ ShowUnpaidAll=Prikaži sve neplaćene fakture ShowUnpaidLateOnly=Prikaži samo zakašnjele neplaćene fakture PaymentInvoiceRef=Faktura za plaćanje %s ValidateInvoice=Potvrdi fakturu -ValidateInvoices=Validate invoices +ValidateInvoices=Potvrdi račune Cash=Gotovina Reported=Odgođeno DisabledBecausePayments=Nije moguće jer ima nekoliko uplata @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Ne može se obrisati uplata jer ima bar jedn ExpectedToPay=Očekivano plaćanje CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Plaćeno ovom uplatom -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Sve fakture bez preostalog iznosa za uplatu će atuomatski biti zatvorene uz status "Plaćeno". @@ -460,11 +460,11 @@ YouMustCreateInvoiceFromThird=This option is only available when creating invoic YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice PDFCrabeDescription=Predloga računa Crabe. Predloga kompletnega računa (Podpora PDV opcije, popusti, pogoji plačila, logo, itd...) -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices +PDFCrevetteDescription=PDF šablon Crevette za račune. Kompletan šablon za situiranje privremenih situacija TerreNumRefModelDesc1=Predlaga številko v formatu %syymm-nnnn za standardne račune in %syymm-nnnn za dobropise kjer je yy leto, mm mesec in nnnn zaporedna broj brez presledkov in večja od 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Račun z začetkom $syymm že obstaja in ni kompatibilen s tem modelom zaporedja. Odstranite ga ali ga preimenujte za aktiviranje tega modula. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Predstavnik za kontrolu fakture kupca TypeContact_facture_external_BILLING=Kontakt za fakturu kupca @@ -475,32 +475,32 @@ TypeContact_invoice_supplier_external_BILLING=Kontakt za fakturu dobavljača TypeContact_invoice_supplier_external_SHIPPING=Kontakt za otpremanje dobavljaču TypeContact_invoice_supplier_external_SERVICE=Kontakt službe za korisnike # Situation invoices -InvoiceFirstSituationAsk=First situation invoice +InvoiceFirstSituationAsk=Prva privremena situacija InvoiceFirstSituationDesc=The situation invoices are tied to situations related to a progression, for example the progression of a construction. Each situation is tied to an invoice. -InvoiceSituation=Situation invoice -InvoiceSituationAsk=Invoice following the situation +InvoiceSituation=Privremena situacija +InvoiceSituationAsk=Faktura nakon situacije InvoiceSituationDesc=Create a new situation following an already existing one SituationAmount=Situation invoice amount(net) -SituationDeduction=Situation subtraction -ModifyAllLines=Modify all lines -CreateNextSituationInvoice=Create next situation +SituationDeduction=Oduzimanje situacije +ModifyAllLines=Izmijeni sve redove +CreateNextSituationInvoice=Napravi sljedeću situaciju NotLastInCycle=This invoice is not the latest in cycle and must not be modified. -DisabledBecauseNotLastInCycle=The next situation already exists. -DisabledBecauseFinal=This situation is final. +DisabledBecauseNotLastInCycle=Sljedeća situacija već postoji. +DisabledBecauseFinal=Ova situacija je konačna. CantBeLessThanMinPercent=The progress can't be smaller than its value in the previous situation. -NoSituations=No open situations +NoSituations=Nema otvorenih situacija InvoiceSituationLast=Final and general invoice -PDFCrevetteSituationNumber=Situation N°%s -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT -PDFCrevetteSituationInvoiceTitle=Situation invoice -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s -TotalSituationInvoice=Total situation -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line +PDFCrevetteSituationNumber=Situacija br.%s +PDFCrevetteSituationInvoiceLineDecompte=Privremena situacija - broj +PDFCrevetteSituationInvoiceTitle=Privremena situacija +PDFCrevetteSituationInvoiceLine=Situacija br%s : fakt. br°%s od %s +TotalSituationInvoice=Ukupna situacija +invoiceLineProgressError=Red prethodno fakturisanog ne može biti veće ili jednako sljedećem redu u fakturi updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module %s. Note that both method (manual and automatic) can be used together with no risk of duplication. -DeleteRepeatableInvoice=Delete template invoice +DeleteRepeatableInvoice=Obriši šablon fakture ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order) BillCreated=%s bill(s) created diff --git a/htdocs/langs/bs_BA/boxes.lang b/htdocs/langs/bs_BA/boxes.lang index bc83ee5c55c..a847b2474cd 100644 --- a/htdocs/langs/bs_BA/boxes.lang +++ b/htdocs/langs/bs_BA/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss informacije BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers BoxTitleLastModifiedSuppliers=Latest %s modified suppliers BoxTitleLastModifiedCustomers=Latest %s modified customers BoxTitleLastCustomersOrProspects=Latest %s customers or prospects -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Posljednjih %s faktura kupaca +BoxTitleLastSupplierBills=Posljednjih %s faktura dobavljača BoxTitleLastModifiedProspects=Latest %s modified prospects BoxTitleLastModifiedMembers=Latest %s members BoxTitleLastFicheInter=Latest %s modified interventions @@ -82,3 +83,4 @@ ForCustomersOrders=Narudžbe kupaca ForProposals=Prijedlozi LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/bs_BA/companies.lang b/htdocs/langs/bs_BA/companies.lang index 51d727d5f08..9243913458e 100644 --- a/htdocs/langs/bs_BA/companies.lang +++ b/htdocs/langs/bs_BA/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Ime kompanije %s već postoji. Izaberite neko drugo. ErrorSetACountryFirst=Odberite prvo zemlju SelectThirdParty=Odaberite subjekt -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Da li ste sigurni da želite obrisati ovu kompaniju i sve podatke vezane za istu? DeleteContact=Obrisati kontakt/uslugu -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Da li ste sigurni da želite obrisati ovaj kontakt i sve podatke vezane za istog? MenuNewThirdParty=Novi subjekt MenuNewCustomer=Novi kupac MenuNewProspect=Novi mogući klijent @@ -12,9 +12,9 @@ MenuNewSupplier=Novi dobavljač MenuNewPrivateIndividual=Novo fizičko lice NewCompany=Nova kompanija (mogući klijent, kupac, dobavljač) NewThirdParty=Novi subjekt (mogući klijent, kupac, dobavljač) -CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary -CreateThirdPartyAndContact=Create a third party + a child contact +CreateDolibarrThirdPartySupplier=Napravi subjekt (dobavljač) +CreateThirdPartyOnly=Napravi novi subjekt +CreateThirdPartyAndContact=Napravi subjekt + podređeni kontakt ProspectionArea=Područje za moguće kupce IdThirdParty=ID subjekta IdCompany=ID kompanije @@ -24,8 +24,8 @@ ThirdPartyContacts=Kontakti subjekta ThirdPartyContact=Kontakt/Adresa subjekta Company=Kompanija CompanyName=Ime kompanije -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Nadimak (komercijalni, trgovačkim, ...) +AliasNameShort=Nadimak Companies=Kompanije CountryIsInEEC=Zemlja je unutar Evropske ekonomske zajednice ThirdPartyName=Ime subjekta @@ -38,22 +38,21 @@ ThirdPartyCustomersStats=Kupci ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s ThirdPartySuppliers=Dobavljači ThirdPartyType=Tip subjekta -Company/Fundation=Kompanija/Fondacija Individual=Fizičko lice -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. +ToCreateContactWithSameName=Automatski pravi kontakt/adresu sa istim informacijama kao i subjekt ispod. U većini slučajeva, čak i kada je subjekt fizička osoba, samo pravljenje subjekta je dovoljno. ParentCompany=Matična kompanija Subsidiaries=Podružnice ReportByCustomers=Izvještaj po kupcima ReportByQuarter=Izvještaj po stopama -CivilityCode=Civility code +CivilityCode=Pravila ponašanja RegisteredOffice=Registrovan ured Lastname=Prezime Firstname=Ime -PostOrFunction=Job position +PostOrFunction=Pozicija UserTitle=Titula Address=Adresa State=Država/Provincija -StateShort=State +StateShort=Pokrajina Region=Region Country=Država CountryCode=Šifra države @@ -66,7 +65,7 @@ Chat=Chat PhonePro=Službeni telefon PhonePerso=Privatni telefon PhoneMobile=Mobitel -No_Email=Refuse mass e-mailings +No_Email=Odbija masovno slanje emaila Fax=Fax Zip=Poštanski broj Town=Grad @@ -75,51 +74,51 @@ Poste= Pozicija DefaultLang=Defaultni jezik VATIsUsed=Oporeziva osoba VATIsNotUsed=Neoporeziva osoba -CopyAddressFromSoc=Fill address with third party address -ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects -PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +CopyAddressFromSoc=Popuni adresu sa adresom subjekta +ThirdpartyNotCustomerNotSupplierSoNoRef=Subjekt nije kupac niti dobavljač, nema dostupnih referentnih objekata +PaymentBankAccount=Bankovni račun za plaćanje +OverAllProposals=Prijedlozi +OverAllOrders=Narudžbe +OverAllInvoices=Fakture +OverAllSupplierProposals=Zahtjevi za cijena ##### Local Taxes ##### -LocalTax1IsUsed=Use second tax -LocalTax1IsUsedES= RE is used -LocalTax1IsNotUsedES= RE is not used -LocalTax2IsUsed=Use third tax -LocalTax2IsUsedES= IRPF is used -LocalTax2IsNotUsedES= IRPF is not used +LocalTax1IsUsed=Koristi drugu stopu poreza +LocalTax1IsUsedES= Koristi se RE +LocalTax1IsNotUsedES= Ne koristi se RE +LocalTax2IsUsed=Koristi treću stopu poreza +LocalTax2IsUsedES= Koristi se IRPF +LocalTax2IsNotUsedES= Ne koristi se IRPF LocalTax1ES=RE LocalTax2ES=IRPF -TypeLocaltax1ES=RE Type -TypeLocaltax2ES=IRPF Type +TypeLocaltax1ES=Vrsta RE +TypeLocaltax2ES=Vrsta IRPF WrongCustomerCode=Nevažeća šifra kupca WrongSupplierCode=Nevažeća šifra dobavljača CustomerCodeModel=Model šifre kupca SupplierCodeModel=Model šifre dobavljača Gencod=Barkod ##### Professional ID ##### -ProfId1Short=Prof. id 1 -ProfId2Short=Prof. id 2 -ProfId3Short=Prof. id 3 -ProfId4Short=Prof. id 4 -ProfId5Short=Prof. id 5 -ProfId6Short=Prof. id 6 -ProfId1=Professional ID 1 -ProfId2=Professional ID 2 -ProfId3=Professional ID 3 -ProfId4=Professional ID 4 -ProfId5=Professional ID 5 -ProfId6=Professional ID 6 +ProfId1Short=ID broj 1 +ProfId2Short=ID broj 2 +ProfId3Short=ID broj 3 +ProfId4Short=ID broj 4 +ProfId5Short=ID broj 5 +ProfId6Short=ID broj 6 +ProfId1=Profesionalni ID 1 +ProfId2=Profesionalni ID 2 +ProfId3=Profesionalni ID 3 +ProfId4=Profesionalni ID 4 +ProfId5=Profesionalni ID 5 +ProfId6=Profesionalni ID 6 ProfId1AR=Prof Id 1 (CUIT / CUIL) ProfId2AR=Prof Id 2 (Revenu brutes) ProfId3AR=- ProfId4AR=- ProfId5AR=- ProfId6AR=- -ProfId1AT=Prof Id 1 (USt.-IdNr) -ProfId2AT=Prof Id 2 (USt.-Nr) -ProfId3AT=Prof Id 3 (Handelsregister-Nr.) +ProfId1AT=Prof Id 1 (USt.-Id br.) +ProfId2AT=Prof Id 2 (USt.-br.) +ProfId3AT=Prof Id 3 (br. trgovačkog registra) ProfId4AT=- ProfId5AT=- ProfId6AT=- @@ -143,8 +142,8 @@ ProfId4BR=CPF #ProfId6BR=INSS ProfId1CH=- ProfId2CH=- -ProfId3CH=Prof Id 1 (Federal number) -ProfId4CH=Prof Id 2 (Commercial Record number) +ProfId3CH=Prof Id 1 (Federalni broj) +ProfId4CH=Prof Id 2 (Broj komercijalnog zapisa) ProfId5CH=- ProfId6CH=- ProfId1CL=Prof Id 1 (R.U.T.) @@ -159,21 +158,21 @@ ProfId3CO=- ProfId4CO=- ProfId5CO=- ProfId6CO=- -ProfId1DE=Prof Id 1 (USt.-IdNr) -ProfId2DE=Prof Id 2 (USt.-Nr) -ProfId3DE=Prof Id 3 (Handelsregister-Nr.) +ProfId1DE=Prof Id 1 (USt.-Id br.) +ProfId2DE=Prof Id 2 (USt.-br.) +ProfId3DE=Prof Id 3 (br. trgovačkog registra) ProfId4DE=- ProfId5DE=- ProfId6DE=- ProfId1ES=Prof Id 1 (CIF/NIF) -ProfId2ES=Prof Id 2 (Social security number) +ProfId2ES=Prof Id 2 (broj socijalnog osiguranja) ProfId3ES=Prof Id 3 (CNAE) -ProfId4ES=Prof Id 4 (Collegiate number) +ProfId4ES=Prof Id 4 (broj udruženja) ProfId5ES=- ProfId6ES=- ProfId1FR=Prof Id 1 (SIREN) ProfId2FR=Prof Id 2 (SIRET) -ProfId3FR=Prof Id 3 (NAF, old APE) +ProfId3FR=Prof Id 3 (NAF, stari APE) ProfId4FR=Prof Id 4 (RCS/RM) ProfId5FR=- ProfId6FR=- @@ -191,38 +190,38 @@ ProfId5HN=- ProfId6HN=- ProfId1IN=Prof Id 1 (TIN) ProfId2IN=Prof Id 2 (PAN) -ProfId3IN=Prof Id 3 (SRVC TAX) +ProfId3IN=Prof Id 3 (SRVC porez) ProfId4IN=Prof Id 4 ProfId5IN=Prof Id 5 ProfId6IN=- -ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) -ProfId2LU=Id. prof. 2 (Business permit) +ProfId1LU=Id. prof. 1 (R.C.S. Luksemburg) +ProfId2LU=Id. prof. 2 (dozvola za rad) ProfId3LU=- ProfId4LU=- ProfId5LU=- ProfId6LU=- ProfId1MA=Id prof. 1 (R.C.) -ProfId2MA=Id prof. 2 (Patente) +ProfId2MA=Id prof. 2 (Patent) ProfId3MA=Id prof. 3 (I.F.) ProfId4MA=Id prof. 4 (C.N.S.S.) ProfId5MA=Id. prof. 5 (I.C.E.) ProfId6MA=- ProfId1MX=Prof Id 1 (R.F.C). ProfId2MX=Prof Id 2 (R..P. IMSS) -ProfId3MX=Prof Id 3 (Profesional Charter) +ProfId3MX=Prof Id 3 (profesionalna povelja) ProfId4MX=- ProfId5MX=- ProfId6MX=- -ProfId1NL=KVK nummer +ProfId1NL=KVK broj ProfId2NL=- ProfId3NL=- -ProfId4NL=Burgerservicenummer (BSN) +ProfId4NL=Broj usluga građanima (BSN) ProfId5NL=- ProfId6NL=- ProfId1PT=Prof Id 1 (NIPC) -ProfId2PT=Prof Id 2 (Social security number) -ProfId3PT=Prof Id 3 (Commercial Record number) -ProfId4PT=Prof Id 4 (Conservatory) +ProfId2PT=Prof Id 2 (broj socijalnog osiguranja) +ProfId3PT=Prof Id 3 (broj komercijalnog zapisa) +ProfId4PT=Prof Id 4 (konzervator) ProfId5PT=- ProfId6PT=- ProfId1SN=RC @@ -232,11 +231,17 @@ ProfId4SN=- ProfId5SN=- ProfId6SN=- ProfId1TN=Prof Id 1 (RC) -ProfId2TN=Prof Id 2 (Fiscal matricule) -ProfId3TN=Prof Id 3 (Douane code) +ProfId2TN=Prof Id 2 (fiskalni broj) +ProfId3TN=Prof Id 3 (carinski broj) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,28 +264,28 @@ CustomerRelativeDiscountShort=Relativni popust CustomerAbsoluteDiscountShort=Fiksni popust CompanyHasRelativeDiscount=Ovaj kupca ima defaultni popust od %s%% CompanyHasNoRelativeDiscount=Ovaj kupac nema relativnog popusta po defaultu -CompanyHasAbsoluteDiscount=Ovaj kupac još uvijek ima zasluga za popust ili depozit za %s %s -CompanyHasCreditNote=This customer still has credit notes for %s %s +CompanyHasAbsoluteDiscount=Ovaj kupac ima dostupno odobrenje (Knjižne obavijesti ili avansno plaćanje) za %s %s +CompanyHasCreditNote=Ovaj kupac i dalje ima knjižno odobrenje za %s %s CompanyHasNoAbsoluteDiscount=Ovaj kupac nema zasluga za popust CustomerAbsoluteDiscountAllUsers=Fiksni popust (odobren od strane svih korisnika) CustomerAbsoluteDiscountMy=Fiksni popust (odobren od strane sebe) DiscountNone=Ništa Supplier=Dobavljač -AddContact=Create contact -AddContactAddress=Create contact/address +AddContact=Napravi kontakt +AddContactAddress=Napravi kontakt/adresu EditContact=Uredi kontakt EditContactAddress=Uredi kontakt/adresu Contact=Kontakt -ContactId=Contact id +ContactId=Id kontakta ContactsAddresses=Kontakti/Adrese -FromContactName=Name: +FromContactName=Naziv: NoContactDefinedForThirdParty=Nema definiranih kontakata za ovaj subjekt NoContactDefined=Nijedan kontakt definiran DefaultContact=Defaultni kontakt/adresa -AddThirdParty=Create third party +AddThirdParty=Napravi novi subjekt DeleteACompany=Obrisati kompaniju PersonalInformations=Osobni podaci -AccountancyCode=Accounting account +AccountancyCode=Računovodstveni račun CustomerCode=Šifra kupca SupplierCode=Šifra dobavljača CustomerCodeShort=Šifra kupca @@ -296,17 +301,17 @@ CompanyDeleted=Kompanija"%s" obrisana iz baze podataka ListOfContacts=Lista kontakta/adresa ListOfContactsAddresses=Lista kontakta/adresa ListOfThirdParties=Lista subjekata -ShowCompany=Show third party +ShowCompany=Pokaži subjekt ShowContact=Prikaži kontakt ContactsAllShort=Svi (bez filtera) ContactType=Tip kontakta ContactForOrders=Kontakt narudžbe -ContactForOrdersOrShipments=Order's or shipment's contact +ContactForOrdersOrShipments=Kontakt za narudžbu ili slanje ContactForProposals=Kontakt prijedloga ContactForContracts=Kontakt ugovora ContactForInvoices=Kontakt fakture NoContactForAnyOrder=Ovaj kontakt nije kontakt za bilo koju narudžbu -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment +NoContactForAnyOrderOrShipments=Ovaj kontakt nije kontakt za bilo koju narudžbu ili slanje NoContactForAnyProposal=Ovaj kontakt nije kontakt za bilo koji poslovni prijedlog NoContactForAnyContract=Ovaj kontakt nije kontakt za bilo koji ugovor NoContactForAnyInvoice=Ovaj kontakt nije kontakt za bilo koju fakturu @@ -316,15 +321,15 @@ MyContacts=Moji kontakti Capital=Kapital CapitalOf=Kapital od %s EditCompany=Uredi kompaniju -ThisUserIsNot=OVaj korisnik nije mogući klijent, kupac niti dobavljač +ThisUserIsNot=Ovaj korisnik nije mogući klijent, kupac niti dobavljač VATIntraCheck=Provjeri VATIntraCheckDesc=Link %s dozvoljava upit za evopski PDV servis za provjeru. Potrebno je imati pristup internetu na serveru za ovu uslugu. VATIntraCheckURL=http://ec.europa.eu/taxation_customs/vies/vieshome.do -VATIntraCheckableOnEUSite=Check Intracomunnautary VAT on European commision site -VATIntraManualCheck=You can also check manually from european web site %s +VATIntraCheckableOnEUSite=Provjeri PDV broj na stranici Evropske komisije +VATIntraManualCheck=Također možete ručno provjeriti sa evropske web stranice %s ErrorVATCheckMS_UNAVAILABLE=Provjera nije moguća. Servis za provjeru nije naveden od stran države članice (%s). NorProspectNorCustomer=Niti mogući klijent, niti kupac -JuridicalStatus=Legal form +JuridicalStatus=Pravni status Staff=Osoblje ProspectLevelShort=Potencijal ProspectLevel=Potencijal mogućeg klijenta @@ -351,12 +356,12 @@ TE_PRIVATE=Fizičko lice TE_OTHER=Ostalo StatusProspect-1=Ne kontaktirati StatusProspect0=Nikada kontaktirano -StatusProspect1=To be contacted +StatusProspect1=Kontaktirat će se StatusProspect2=Kontaktiranje u toku StatusProspect3=Kontaktirano ChangeDoNotContact=Promijeni status u 'Ne kontaktirati' ChangeNeverContacted=Promjeni status na 'Nikada kontaktirano' -ChangeToContact=Change status to 'To be contacted' +ChangeToContact=Promijeni status na 'Treba kontaktirati' ChangeContactInProcess=Promjeni status na 'Kontaktiranje u toku' ChangeContactDone=Promjeni status na 'Kontaktirano' ProspectsByStatus=Mogući klijenti po statusu @@ -365,47 +370,47 @@ ExportCardToFormat=Izvod podataka u formatu ContactNotLinkedToCompany=Kontakt nije povezan sa nekim od subjekata DolibarrLogin=Dolibarr login NoDolibarrAccess=Nema Dolibarr pristupa -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Subjekti (kompanije/fondacije/fizička lica) i svojstva ExportDataset_company_2=Kontakti i osobine -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ImportDataset_company_1=Subjekti (kompanije/fondacije/fizička lica) i svojstva ImportDataset_company_2=Kontakti/Adrese (od subjekata ili ne) i atributi ImportDataset_company_3=Detalji banke -ImportDataset_company_4=Third parties/Sales representatives (Affect sales representatives users to companies) +ImportDataset_company_4=Subjekti/predstavnici prodaje (Odnosi se na predstavnike prodaje korisnike u kompanijama) PriceLevel=Visina cijene DeliveryAddress=Adresa za dostavu AddAddress=Dodaj adresu SupplierCategory=Kategorija dobavljača -JuridicalStatus200=Independent +JuridicalStatus200=Nezavisni DeleteFile=Obriši fajl ConfirmDeleteFile=Jeste li sigurni da želite obrisati ovaj fajl? -AllocateCommercial=Assigned to sales representative +AllocateCommercial=Dodijeljen predstavniku prodaje Organization=Organizacija FiscalYearInformation=Informacije o fiskalnoj godini FiscalMonthStart=Početni mjesec fiskalne godine -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him. -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party +YouMustAssignUserMailFirst=Morate najprije napraviti email za ovog korisnika da biste mogli dodati email notifikacije +YouMustCreateContactFirst=Da bi mogli dodati e-mail obavještenja, prvo morate definirati kontakte s važećom e-poštom za subjekte ListSuppliersShort=Lista dobavljača ListProspectsShort=Lista mogućih klijenata ListCustomersShort=Lista kupaca -ThirdPartiesArea=Third parties and contact area -LastModifiedThirdParties=Latest %s modified third parties +ThirdPartiesArea=Područje za subjekte i kontakte +LastModifiedThirdParties=Zadnjih %s izmijenjenih subjekata UniqueThirdParties=Ukupno unikatnih subjekata -InActivity=Otvoreno +InActivity=Otvori ActivityCeased=Zatvoreno -ThirdPartyIsClosed=Third party is closed -ProductsIntoElements=List of products/services into %s +ThirdPartyIsClosed=Subjekat je zatvoren +ProductsIntoElements=Spisak proizvoda/usluga u %s CurrentOutstandingBill=Trenutni neplaćeni račun OutstandingBill=Max. za neplaćeni račun -OutstandingBillReached=Max. for outstanding bill reached +OutstandingBillReached=Dostignut maksimum za neplaćene račune MonkeyNumRefModelDesc=Vratiti broj sa formatom %syymm-nnnn za šifru kupca i $syymm-nnnn za šifru dobavljača gdje je yy godina, mm mjesec i nnnn niz bez prekida i bez vraćanja za 0. LeopardNumRefModelDesc=Ova šifra je slobodna. Ova šifra se može mijenjati bilo kad. -ManagingDirectors=Manager(s) name (CEO, director, president...) -MergeOriginThirdparty=Duplicate third party (third party you want to delete) -MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. -ThirdpartiesMergeSuccess=Thirdparties have been merged -SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative -ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. -NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code +ManagingDirectors=Ime menadžer(a) (CEO, direktor, predsjednik...) +MergeOriginThirdparty=Umnoži subjekta (subjekt kojeg želite obrisati) +MergeThirdparties=Spoji subjekte +ConfirmMergeThirdparties=Da li ste sigurni da želite spojiti ovaj subjekt u trenutno prikazani? Svi povezani objekti (fakture, narudžbe, ...) će biti premještene trenutnom subjektu, a zatim će prethodni subjekt biti obrisan. +ThirdpartiesMergeSuccess=Subjekti su spojeni +SaleRepresentativeLogin=Pristup za predstavnika prodaje +SaleRepresentativeFirstname=Ime predstavnika prodaje +SaleRepresentativeLastname=Prezime predstavnika prodaje +ErrorThirdpartiesMerge=Nastala greška pri brisanju subjekta. Molimo provjeriti zapisnik. Promjene su vraćene. +NewCustomerSupplierCodeProposed=Kod novog kupca ili dobavljača predložen za duplikat koda diff --git a/htdocs/langs/bs_BA/compta.lang b/htdocs/langs/bs_BA/compta.lang index 19498b768dc..db2ed3d9ec4 100644 --- a/htdocs/langs/bs_BA/compta.lang +++ b/htdocs/langs/bs_BA/compta.lang @@ -13,37 +13,37 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Postavke RemainingAmountPayment=Iznos preostale uplate : Account=Račun -Accountparent=Account parent -Accountsparent=Accounts parent -Income=Income -Outcome=Expense -ReportInOut=Income / Expense -ReportTurnover=Turnover -PaymentsNotLinkedToInvoice=Payments not linked to any invoice, so not linked to any third party -PaymentsNotLinkedToUser=Payments not linked to any user -Profit=Profit +Accountparent=Glavni račun +Accountsparent=Glavni računi +Income=Prihod +Outcome=Rashod +ReportInOut=Prihodi / Rashodi +ReportTurnover=Promet +PaymentsNotLinkedToInvoice=Plaćanja nisu povezana ni sa jednom fakturom, niti su povezana sa nekim subjektom +PaymentsNotLinkedToUser=Plaćanja nisu povezana ni sa jednim korisnikom +Profit=Dobit AccountingResult=Accounting result Balance=Stanje -Debit=Debit -Credit=Credit +Debit=Duguje +Credit=Potražuje Piece=Accounting Doc. -AmountHTVATRealReceived=Net collected -AmountHTVATRealPaid=Net paid -VATToPay=VAT sells -VATReceived=VAT received -VATToCollect=VAT purchases -VATSummary=VAT Balance -LT2SummaryES=IRPF Balance +AmountHTVATRealReceived=Neto prikupljeno +AmountHTVATRealPaid=Neto plaćeno +VATToPay=PDV izlazni +VATReceived=PDV ulazni +VATToCollect=VAT na čekanju +VATSummary=PDV stanje +LT2SummaryES=IRPF stanje LT1SummaryES=RE Balance -VATPaid=VAT paid -LT2PaidES=IRPF Paid +VATPaid=PDV plaćen +LT2PaidES=IRPF plaćen LT1PaidES=RE Paid -LT2CustomerES=IRPF sales -LT2SupplierES=IRPF purchases +LT2CustomerES=IRPF prodajni +LT2SupplierES=IRPF kupovni LT1CustomerES=RE sales LT1SupplierES=RE purchases -VATCollected=VAT collected -ToPay=To pay +VATCollected=PDV prikupljeni +ToPay=Za plaćanje SpecialExpensesArea=Area for all special payments SocialContribution=Social or fiscal tax SocialContributions=Social or fiscal taxes @@ -56,15 +56,16 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area -NewPayment=New payment +NewPayment=Novo plaćanje Payments=Uplate -PaymentCustomerInvoice=Customer invoice payment -PaymentSocialContribution=Social/fiscal tax payment -PaymentVat=VAT payment -ListPayment=List of payments -ListOfCustomerPayments=List of customer payments +PaymentCustomerInvoice=Plaćanje računa kupca +PaymentSocialContribution=Plaćanje socijalnog/fiskalnog poreza +PaymentVat=Plaćanje PDVa +ListPayment=Spisak plaćanja +ListOfCustomerPayments=Spisak uplata kupca ListOfSupplierPayments=List of supplier payments DateStartPeriod=Date start period DateEndPeriod=Date end period @@ -75,7 +76,7 @@ LT1Payments=Tax 2 payments LT2Payment=Tax 3 payment LT2Payments=Tax 3 payments newLT1PaymentES=New RE payment -newLT2PaymentES=New IRPF payment +newLT2PaymentES=Novo IRPF plaćanje LT1PaymentES=RE Payment LT1PaymentsES=RE Payments LT2PaymentES=IRPF Payment @@ -97,7 +98,7 @@ NewAccountingAccount=Novi račun SalesTurnover=Sales turnover SalesTurnoverMinimum=Minimum sales turnover ByExpenseIncome=By expenses & incomes -ByThirdParties=By third parties +ByThirdParties=Po subjektu ByUserAuthorOfInvoice=By invoice author CheckReceipt=Check deposit CheckReceiptShort=Check deposit @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -168,8 +169,8 @@ PurchasesJournal=Purchases Journal DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Referenca fakture -CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +CodeNotDef=Nije definirano +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -178,7 +179,7 @@ InvoiceLinesToDispatch=Invoice lines to dispatch ByProductsAndServices=By products and services RefExt=External ref ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click onto button "%s". -LinkedOrder=Link to order +LinkedOrder=Link ka narudžbi Mode1=Method 1 Mode2=Method 2 CalculationRuleDesc=To calculate total VAT, there is two methods:
Method 1 is rounding vat on each line, then summing them.
Method 2 is summing all vat on each line, then rounding result.
Final result may differs from few cents. Default mode is mode %s. @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/bs_BA/contracts.lang b/htdocs/langs/bs_BA/contracts.lang index d8342051a96..d3e9ba66d36 100644 --- a/htdocs/langs/bs_BA/contracts.lang +++ b/htdocs/langs/bs_BA/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Predstavnik prodaje koji potpisuje ugovor diff --git a/htdocs/langs/bs_BA/cron.lang b/htdocs/langs/bs_BA/cron.lang index 1ca2bee6c19..808c036be73 100644 --- a/htdocs/langs/bs_BA/cron.lang +++ b/htdocs/langs/bs_BA/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=Ništa CronDtStart=Not before @@ -33,13 +33,13 @@ CronDtEnd=Not after CronDtNextLaunch=Sljedeće izvršenje CronDtLastLaunch=Start date of latest execution CronDtLastResult=End date of latest execution -CronFrequency=Frequency +CronFrequency=Frekvencija CronClass=Class CronMethod=Metoda CronModule=Modul CronNoJobs=Nema registrovanih poslova CronPriority=Prioritet -CronLabel=Label +CronLabel=Oznaka CronNbRun=Broj pokretanja CronMaxRun=Max nb. launch CronEach=Every @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Iskljući CronTaskInactive=This job is disabled CronId=ID -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Sistemska komanda za izvršenje CronCreateJob=Create new Scheduled Job CronFrom=Od @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/bs_BA/ecm.lang b/htdocs/langs/bs_BA/ecm.lang index 1f617be5121..0dbb39dbb5a 100644 --- a/htdocs/langs/bs_BA/ecm.lang +++ b/htdocs/langs/bs_BA/ecm.lang @@ -30,13 +30,13 @@ ECMDocsByContracts=Dokumenti vezani za ugovore ECMDocsByInvoices=Dokumenti vezani za fakture klijenata ECMDocsByProducts=Dokumenti vezani za proizvode ECMDocsByProjects=Dokumenti vezani za projekte -ECMDocsByUsers=Documents linked to users +ECMDocsByUsers=Dokumenti povezani s korisnicima ECMDocsByInterventions=Documents linked to interventions ECMDocsByExpenseReports=Documents linked to expense reports ECMNoDirectoryYet=Nema kreiranih direktorija ShowECMSection=Prikaži direktorij DeleteSection=Ukloni direktorij -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Možete li potvrditi da želite obrisati direktorij %s? ECMDirectoryForFiles=Relativni direktorij za fajlove CannotRemoveDirectoryContainsFiles=Nemoguće ukloniti jer sadrži fajlove ECMFileManager=Updavljanje fajlovima diff --git a/htdocs/langs/bs_BA/errors.lang b/htdocs/langs/bs_BA/errors.lang index 0a339accbc8..f9603e851d0 100644 --- a/htdocs/langs/bs_BA/errors.lang +++ b/htdocs/langs/bs_BA/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/bs_BA/holiday.lang b/htdocs/langs/bs_BA/holiday.lang index a3a406d8cb1..1d45a3e7aff 100644 --- a/htdocs/langs/bs_BA/holiday.lang +++ b/htdocs/langs/bs_BA/holiday.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Kadrovska služba -Holidays=Leaves -CPTitreMenu=Leaves +Holidays=Odlasci +CPTitreMenu=Odlasci MenuReportMonth=Mjesečni izvještaj MenuAddCP=New leave request NotActiveModCP=You must enable the module Leaves to view this page. @@ -16,7 +16,7 @@ CancelCP=Otkazan RefuseCP=Odbijen ValidatorCP=Osoba koja odobrava ListeCP=List of leaves -ReviewedByCP=Bit će pregledano od strane +ReviewedByCP=Will be approved by DescCP=Opis SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/bs_BA/install.lang b/htdocs/langs/bs_BA/install.lang index 2659f506094..48fec99a553 100644 --- a/htdocs/langs/bs_BA/install.lang +++ b/htdocs/langs/bs_BA/install.lang @@ -1,19 +1,19 @@ # Dolibarr language file - Source file is en_US - install -InstallEasy=Just follow the instructions step by step. -MiscellaneousChecks=Prerequisites check -ConfFileExists=Configuration file %s exists. -ConfFileDoesNotExistsAndCouldNotBeCreated=Configuration file %s does not exist and could not be created ! -ConfFileCouldBeCreated=Configuration file %s could be created. -ConfFileIsNotWritable=Configuration file %s is not writable. Check permissions. For first install, your web server must be granted to be able to write into this file during configuration process ("chmod 666" for example on a Unix like OS). -ConfFileIsWritable=Configuration file %s is writable. -ConfFileReload=Reload all information from configuration file. -PHPSupportSessions=This PHP supports sessions. -PHPSupportPOSTGETOk=This PHP supports variables POST and GET. -PHPSupportPOSTGETKo=It's possible your PHP setup does not support variables POST and/or GET. Check your parameter variables_order in php.ini. -PHPSupportGD=This PHP support GD graphical functions. +InstallEasy=Pratite instrukcije korak po korak. +MiscellaneousChecks=Provjera preduvjeta +ConfFileExists=Konfiguracijska datoteka%s postoji. +ConfFileDoesNotExistsAndCouldNotBeCreated=Konfiguracijska datoteka %s ne postoji i ne može biti napravljena ! +ConfFileCouldBeCreated=Konfiguracijska datoteka %s se može napraviti. +ConfFileIsNotWritable=Po konfiguracijskoj datoteci %s se ne može pisati. Provjerite dozvole. Za prvu instalaciju, vaš web server mora dopustiti pisanje u ovu datoteku tokom procesa konfiguracije ("chmod 666" naprimjer na OS poput Unixa). +ConfFileIsWritable=Konfiguracijska datoteka %s je slobodna za pisanje. +ConfFileReload=Napuni sve informacije iz konfiguracijske datoteke. +PHPSupportSessions=Ovaj PHP podržava sesije. +PHPSupportPOSTGETOk=Ovaj PHP podržava varijable POST i GET. +PHPSupportPOSTGETKo=Moguće je da vaše PHP postavke ne podržavaju varijable POST i/ili GET. Provjerite vaš parametar variables_order u php.ini. +PHPSupportGD=Ovaj PHP podržava GD grafičke funkcije. PHPSupportCurl=This PHP support Curl. -PHPSupportUTF8=This PHP support UTF8 functions. -PHPMemoryOK=Your PHP max session memory is set to %s. This should be enough. +PHPSupportUTF8=Ovaj PHP podržava UTF8 funkcije. +PHPMemoryOK=Vaša maksimalna memorija za PHP sesiju je postavljena na %s. To bi trebalo biti dovoljno. PHPMemoryTooLow=Your PHP max session memory is set to %s bytes. This should be too low. Change your php.ini to set memory_limit parameter to at least %s bytes. Recheck=Click here for a more significative test ErrorPHPDoesNotSupportSessions=Your PHP installation does not support sessions. This feature is required to make Dolibarr working. Check your PHP setup. @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 00bf4ec0c6d..3032b1b7582 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -8,814 +8,830 @@ FONTFORPDF=DejaVuSans FONTSIZEFORPDF=8 SeparatorDecimal=, SeparatorThousand=Space -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error +DatabaseConnection=Veza baze podataka +NoTemplateDefined=Za ovaj tip emaila nije definiran šablon +AvailableVariables=Dostupne zamjenske varijable +NoTranslation=Nema prevoda +NoRecordFound=Nije pronađen zapis +NoRecordDeleted=Nijedan zapis nije obrisan +NotEnoughDataYet=Nema dovoljno podataka +NoError=Nema greške Error=Greška -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. +Errors=Greške +ErrorFieldRequired=Polje '%s' je obavezno +ErrorFieldFormat=Polje '%s' ima nevaljanu vrijednost +ErrorFileDoesNotExists=Datoteka %s ne postoji +ErrorFailedToOpenFile=Neuspjelo otvaranje datoteke %s +ErrorCanNotCreateDir=Greška pri pravljenju direktorija %s +ErrorCanNotReadDir=Ne mogu pročitati direktorij %s +ErrorConstantNotDefined=Parametar %s nije definiran +ErrorUnknown=Nepoznata greška +ErrorSQL=SQL greška +ErrorLogoFileNotFound=Datoteka logotipa '%s' nije pronađena +ErrorGoToGlobalSetup=Idite u postavke 'Kompanija/Organizacija' da popravite ovo +ErrorGoToModuleSetup=Idite u postavke modula da popravite ovo +ErrorFailedToSendMail=Neuspjeh pri slanju maila (pošiljalac=%s, primalac=%s) +ErrorFileNotUploaded=Datoteka nije postavljena. Provjerite da li joj je veličina iznad dozvoljene, da li ima dovoljno slobodnog mjesta na disku i da li već postoji datoteka istog imena u ovom direktoriju. +ErrorInternalErrorDetected=Pronađena greška +ErrorWrongHostParameter=Pogrešan parametar hosta +ErrorYourCountryIsNotDefined=Vaša država nije definirana. Idite u postavke Početna-Postavke-Uredi i pošaljite ponovno obrazac. +ErrorRecordIsUsedByChild=Neuspjelo brisanje ovog unosa. Ovaj unos je korišten najmanje jednom u drugom podunosu. +ErrorWrongValue=Pogrešna vrijednost +ErrorWrongValueForParameterX=Pogrešna vrijednost za parametar %s +ErrorNoRequestInError=Nema greške u zahtjevu +ErrorServiceUnavailableTryLater=Usluga trenutno nije dostupna. Pokušajte kasnije. +ErrorDuplicateField=Duplicirana vrijednost u unikatnom polju +ErrorSomeErrorWereFoundRollbackIsDone=Pronađene određene greške. Vraćam promjene. +ErrorConfigParameterNotDefined=Parametar %s nije definiran unutar Dolibarr konfiguracijske datoteke conf.php. +ErrorCantLoadUserFromDolibarrDatabase=Neuspjelo traženje korisnika %s u Dolibarr bazi podataka. +ErrorNoVATRateDefinedForSellerCountry=Greška, nije definirana PDV stopa za državu '%s'. +ErrorNoSocialContributionForSellerCountry=Greška, nisu definirane vrste doprinosa i poreza za državu '%s'. +ErrorFailedToSaveFile=Greška, neuspjelo spremanje datoteke. +ErrorCannotAddThisParentWarehouse=Pokušavate dodati nadređeno skladište koje je već podređeno skladište ovom trenutnom +MaxNbOfRecordPerPage=Maks. br. unosa po stranici +NotAuthorized=Niste ovlašteni da to uradite. SetDate=Postavi datum SelectDate=Odaberi datum -SeeAlso=See also %s -SeeHere=See here +SeeAlso=Također pogledajte %s +SeeHere=Pogledaj ovdje Apply=Primijeniti -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. +BackgroundColorByDefault=Osnovna boja pozadine +FileRenamed=Datoteka je uspješno preimenovana +FileUploaded=Datoteka je uspješno postavljena +FileGenerated=Datoteka je uspješno generirana +FileWasNotUploaded=Datoteka je odabrana za prilog ali nije još postavljena. Kliknite na "Dodaj datoteku" da bi ste to uradili. +NbOfEntries=Broj unosa +GoToWikiHelpPage=Pročitajte online pomoć (neophodan pristup internetu) +GoToHelpPage=Pročitaj pomoć +RecordSaved=Unos spremljen +RecordDeleted=Unos obrisan +LevelOfFeature=Nivo osobina +NotDefined=Nije definirano +DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr način odobrenja je postavljen na %s u datoteci postavki conf.php.
To znači da je baza podataka šifri izvan Dolibarra, pa mjenjanje ovog polja nema efekta. Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. +Undefined=Nedefinirano +PasswordForgotten=Zaboravljena šifra? +SeeAbove=Vidi iznad +HomeArea=Početno područje +LastConnexion=Posljednje veze +PreviousConnexion=Prethodna veza +PreviousValue=Prethodna vrijednost +ConnectedOnMultiCompany=Spojeno na okruženje +ConnectedSince=Spojen od +AuthenticationMode=Način autentifikacije +RequestedUrl=Zahtijevani URL +DatabaseTypeManager=Vrsta menadžera baze podataka +RequestLastAccessInError=Posljednja greška pristupa bazi podataka +ReturnCodeLastAccessInError=Vraća kod za posljednju grešku pristupa bazi podataka +InformationLastAccessInError=Informacija za posljednju grešku pristupa bazi podataka +DolibarrHasDetectedError=Dolibarr je otkrio tehničku grešku +InformationToHelpDiagnose=Ova informacija može biti korisna u dijagnostičke svrhe +MoreInformation=Više informacija +TechnicalInformation=Tehničke informacije +TechnicalID=Tehnički ID +NotePublic=Napomena (javna) +NotePrivate=Napomena (privatna) +PrecisionUnitIsLimitedToXDecimals=Dolibarr je podešen za ograniči preciznost cijena stavki na %s decimala. DoTest=Test ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under +NoFilter=Nema filtera +WarningYouHaveAtLeastOneTaskLate=Upozorenje, imate najmanje jedan element koji je prekoračio rok za rješavanje. +yes=da +Yes=Da +no=ne +No=Ne +All=Sve +Home=Početna +Help=Pomoć +OnlineHelp=Online pomoć +PageWiki=Wiki stranica +MediaBrowser=Pregledač medija +Always=Uvijek +Never=Nikad +Under=ispod Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated +PeriodEndDate=Krajnji datum perioda +Activate=Aktiviranje +Activated=Aktivirano Closed=Zatvoreno Closed2=Zatvoreno -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Iskljući -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft +NotClosed=Nije zatvoreno +Enabled=Omogućeno +Deprecated=Prevaziđeno +Disable=Isključi +Disabled=Isključeno +Add=Dodaj +AddLink=Dodaj link +RemoveLink=Ukloni link +AddToDraft=Dodaj u nacrt Update=Ažuriraj -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? +Close=Zatvori +CloseBox=Ukloni kutijicu sa svoje nadzorne ploče +Confirm=Potvrdi +ConfirmSendCardByMail=Da li zaista želiš poslati sadržaj ove kartice mailom za %s? Delete=Obriši -Remove=Remove -Resiliate=Terminate +Remove=Ukloni +Resiliate=Deaktiviraj Cancel=Poništi -Modify=Modify +Modify=Izmijeni Edit=Izmjena Validate=Potvrdi -ValidateAndApprove=Validate and Approve +ValidateAndApprove=Provjeri i odobri ToValidate=Za potvrdu -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file +NotValidated=Nije odobreno +Save=Sačuvaj +SaveAs=Sačuvaj kao +TestConnection=Test konekcije +ToClone=Kloniraj +ConfirmClone=Izaberi podatke koje želite klonirati: +NoCloneOptionsSpecified=Nije definiran podatak za kloniranje. +Of=od +Go=Idi +Run=Kreni +CopyOf=Kopija od +Show=Prikaži +Hide=Sakrij +ShowCardHere=Prikaži karticu +Search=Traži +SearchOf=Traži +Valid=Valjan +Approve=Odobriti +Disapprove=Odbij +ReOpen=Opet otvori +Upload=Postavi datoteku ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author +Select=Odaberi +Choose=Izaberi +Resize=Promjena veličine +Recenter=Postavi centar +Author=Autor User=Korisnik -Users=Users -Group=Group +Users=Korisnici +Group=Grupa Groups=Grupe -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. +NoUserGroupDefined=Nije definirana korisnička grupa +Password=Šifra +PasswordRetype=Ponovno upišite šifru +NoteSomeFeaturesAreDisabled=Mnoge osobine/moduli su onemogućeni pri ovoj demostraciji. Name=Naziv -Person=Person -Parameter=Parameter -Parameters=PArametri +Person=Osoba +Parameter=Parametar +Parameters=Parametri Value=Vrijednost -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code +PersonalValue=Lična vrijednost +NewValue=Nova vrijednost +CurrentValue=Trenutna vrijednost +Code=Kod Type=Tip -Language=Language -MultiLanguage=Multi-language -Note=Note +Language=Jezik +MultiLanguage=Višejezično +Note=Napomena Title=Titula -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family +Label=Oznaka +RefOrLabel=Ref. oznake +Info=Zapisnik +Family=Porodica Description=Opis Designation=Opis -Model=Doc template -DefaultModel=Default doc template -Action=Event +Model=Šablon dokumenta +DefaultModel=Defaultni šablon dokumenta +Action=Događaj About=O programu Number=Broj NumberByMonth=Broj po mjesecu -AmountByMonth=Amount by month +AmountByMonth=Iznos po mjesecu Numero=Broj Limit=Ograničenje -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection +Limits=Ograničenja +Logout=Odjava +NoLogoutProcessWithAuthMode=Nema moguće osobine odspajanja sa načinom autentifikacije %s +Connection=Konekcija Setup=Postavke -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date +Alert=Uzbuna +MenuWarnings=Upozorenja +Previous=Prethodni +Next=Sljedeće +Cards=Kartice +Card=Kartica +Now=Sada +HourStart=Početno vrijeme +Date=Datum +DateAndHour=Datum i vrijeme +DateToday=Današnji datum +DateReference=Referentni datum DateStart=Datum početka DateEnd=Datum završetka DateCreation=Datum kreiranja -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes +DateCreationShort=Datum pravlj. +DateModification=Datum izmjene +DateModificationShort=Datum izmj. +DateLastModification=Datum zadnje izmjene +DateValidation=Datum potvrde +DateClosing=Datum zatvaranja +DateDue=Datum roka plaćanja +DateValue=Datum valute +DateValueShort=Datum valute +DateOperation=Datum operacije +DateOperationShort=Datum oper. +DateLimit=Datum ograničenja +DateRequest=Datum zahtjeva +DateProcess=Datum obrade +DateBuild=Datum izrade izvještaja +DatePayment=Datum plaćanja +DateApprove=Datum odobrenja +DateApprove2=Datum odobrenja (drugo odobrenje) +UserCreation=Kreiranje korisnika +UserModification=Izmjena korisnika +UserCreationShort=Napr. korisnika +UserModificationShort=Izmj. korisnika +DurationYear=godina +DurationMonth=mjesec +DurationWeek=sedmica +DurationDay=dan +DurationYears=godina +DurationMonths=mjeseci +DurationWeeks=sedmice +DurationDays=dana +Year=Godina +Month=Mjesec +Week=Sedmica +WeekShort=Sedmica +Day=Dan +Hour=Sat +Minute=Minuta +Second=Sekunda +Years=Godine +Months=Mjeseci +Days=Dani +days=dana +Hours=Sati +Minutes=Minute +Seconds=Sekunde +Weeks=Sedmice +Today=Danas +Yesterday=Jučer +Tomorrow=Sutra +Morning=Jutro +Afternoon=Večer +Quadri=Četvoro +MonthOfDay=Mjesec dana +HourShort=h +MinuteShort=min +Rate=Stopa +CurrencyRate=Kurs konverzije valuta +UseLocalTax=Uključujući porez +Bytes=bajta +KiloBytes=kilobajta +MegaBytes=megabajta +GigaBytes=gigabajta +TeraBytes=terabajta b=b. Kb=Kb Mb=Mb Gb=Gb Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) +Cut=Isijeci +Copy=Kopiraj +Paste=Zalijepi +Default=Uobičajeni +DefaultValue=Uobičajena vrijednost +DefaultValues=Podrazumijevane vrijednosti +Price=Cijena +UnitPrice=Jedinična cijena +UnitPriceHT=Jedinična cijena (neto) +UnitPriceTTC=Jedinična cijena +PriceU=J.C. +PriceUHT=J.C. (neto) +PriceUHTCurrency=J.C (valuta) +PriceUTTC=J.C. (uklj. PDV) Amount=Iznos -AmountInvoice=Invoice amount +AmountInvoice=Iznos fakture AmountPayment=Iznos plaćanja -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes +AmountHTShort=Iznos (neto) +AmountTTCShort=Iznos (uklj. PDV) +AmountHT=Iznos (neto bez PDV) +AmountTTC=Iznos (uklj. PDV) +AmountVAT=Iznos poreza +MulticurrencyAlreadyPaid=Već plaćeno, orig. valuta +MulticurrencyRemainderToPay=Ostatak za plaćanje, orig. valuta +MulticurrencyPaymentAmount=Iznos za plaćanje, orig. valuta +MulticurrencyAmountHT=Iznos (bez poreza), orig. valuta +MulticurrencyAmountTTC=Iznos (uklj. porez), origin. valuta +MulticurrencyAmountVAT=Iznos poreza, orig. valuta +AmountLT1=Iznos poreza 2 +AmountLT2=Iznos poreza 3 +AmountLT1ES=Iznos RE +AmountLT2ES=Iznos IRPF +AmountTotal=Ukupni iznos +AmountAverage=Prosječni iznos +PriceQtyMinHT=Min. cijena jedinice (neto porez) +Percentage=Postotak +Total=Ukupno +SubTotal=Međuzbir +TotalHTShort=Ukupno (neto) +TotalHTShortCurrency=Ukupno (neto u valuti) +TotalTTCShort=Ukupno (uklj. PDV) +TotalHT=Ukupno (neto PDV) +TotalHTforthispage=Ukupno (neto poreza) za ovu stranicu +Totalforthispage=Ukupno za ovu stranicu +TotalTTC=Ukupno (uklj. PDV) +TotalTTCToYourCredit=Ukupno (uklj. PDV) u vašu korist +TotalVAT=Ukupan porez +TotalLT1=Ukupan porez 2 +TotalLT2=Ukupan porez 3 +TotalLT1ES=Ukupno RE +TotalLT2ES=Ukupno IRPF +HT=Neto porez +TTC=Uklj. porez +VAT=Porez na promet +VATs=PDV LT1ES=RE LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum +VATRate=Stopa poreza +Average=Prosjek +Sum=Zbir Delta=Delta -Module=Modul -Option=Option -List=List -FullList=Full list +Module=Module/Application +Modules=Modules/Applications +Option=Opcija +List=Spisak +FullList=Potpuni spisak Statistics=Statistika -OtherStatistics=Other statistics +OtherStatistics=Druge statistike Status=Status -Favorite=Favorite +Favorite=Omiljeni ShortInfo=Info. Ref=Ref. -ExternalRef=Ref. extern +ExternalRef=Ref. vanjski RefSupplier=Ref. dobavljač -RefPayment=Ref. payment +RefPayment=Ref. plaćanje CommercialProposalsShort=Poslovni prijedlozi Comment=Komentar -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Kompanija/Fondacija -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded +Comments=Komentari +ActionsToDo=Događanja za uraditi +ActionsToDoShort=Za uraditi +ActionsDoneShort=Završeno +ActionNotApplicable=Nije primjenjivo +ActionRunningNotStarted=Treba započeti +ActionRunningShort=U toku +ActionDoneShort=Završeno +ActionUncomplete=Nedovršeno +CompanyFoundation=Kompanija/organizacija +ContactsForCompany=Kontakti za ovaj subjekt +ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekt +AddressesForCompany=Adrese za ovaj subjekt +ActionsOnCompany=Događaji o ovom subjektu +ActionsOnMember=Događaji o ovom članu +NActionsLate=%s kasne +RequestAlreadyDone=Zahtjev već zapisan Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By +FilterOnInto=Pretraži kriterij '%s' u poljima %s +RemoveFilter=Ukloni filter +ChartGenerated=Pregled napravljen +ChartNotGenerated=Pregled nije napravljen +GeneratedOn=Napravljeno %s +Generate=Napravi +Duration=Trajanje +TotalDuration=Ukupno trajanje +Summary=Sažetak +DolibarrStateBoard=Statistike baze podataka +DolibarrWorkBoard=Pregled otvorenih predmeta +NoOpenedElementToProcess=Nema otvorenih elemenata za obradu +Available=Dostupno +NotYetAvailable=Još uvijek nedostupno +NotAvailable=Nije dostupno +Categories=Oznake/kategorije +Category=Oznaka/kategorija +By=Od From=Od -to=to -and=and -or=or +to=za +and=i +or=ili Other=Ostalo -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) +Others=Drugi +OtherInformations=Ostale informacije +Quantity=Količina +Qty=Kol +ChangedBy=Izmijenio +ApprovedBy=Odobrio +ApprovedBy2=Odobrio (drugo odobrenje) Approved=Odobreno Refused=Odbijen -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting +ReCalculate=Ponovni preračun +ResultKo=Greška +Reporting=Izvještavanje +Reportings=Izvještavanja Draft=Nacrt -Drafts=Drafts +Drafts=Uzorak Validated=Potvrđeno -Opened=Otvoreno -New=New +Opened=Otvori +New=Novo Discount=Popust -Unknown=Nepoznat potencijal -General=General -Size=Size -Received=Primljena donacija +Unknown=Nepoznat +General=Opće +Size=Veličina +Received=Primljeno Paid=Plaćeno -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data +Topic=Tema +ByCompanies=Po subjektu +ByUsers=od korisnika +Links=Veze +Link=Veza +Rejects=Odbijeno +Preview=Pretpregled +NextStep=Sljedeći korak +Datas=Podaci None=Ništa NoneF=Ništa -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period +NoneOrSeveral=Nijedan ili više +Late=Kasno +LateDesc=Kašnjenje za definiranje ako je zapis zakasnio ili nije zavisan u vašem podešenju. Pitajte administratora za promjenu kašnjenja u meniju Početan - Postavke - Upozorenja. +Photo=Slika +Photos=Slike +AddPhoto=Dodaj sliku +DeletePicture=Obriši sliku +ConfirmDeletePicture=Potvrdi brisanje slike? +Login=Pristup +CurrentLogin=Trenutni pristup +EnterLoginDetail=Unesi detalje prijave +January=januar +February=februar +March=mart +April=april +May=maj +June=juni +July=juli +August=august +September=septembar +October=oktobar +November=novembar +December=decembar +JanuaryMin=jan +FebruaryMin=feb +MarchMin=mar +AprilMin=apr +MayMin=maj +JuneMin=jun +JulyMin=jul +AugustMin=aug +SeptemberMin=sep +OctoberMin=okt +NovemberMin=nov +DecemberMin=dec +Month01=Januar +Month02=februar +Month03=mart +Month04=april +Month05=maj +Month06=juni +Month07=juli +Month08=august +Month09=septembar +Month10=oktobar +Month11=novembar +Month12=decembar +MonthShort01=jan +MonthShort02=feb +MonthShort03=mar +MonthShort04=apr +MonthShort05=maj +MonthShort06=jun +MonthShort07=jul +MonthShort08=aug +MonthShort09=sep +MonthShort10=okt +MonthShort11=nov +MonthShort12=dec +AttachedFiles=Priložene datoteke i dokumenti +FileTransferComplete=Datoteka je uspješno postavljena +DateFormatYYYYMM=MM-YYYY +DateFormatYYYYMMDD=DD-MM-YYYY +DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS +ReportName=Naziv izvještaja +ReportPeriod=Period izvještaja ReportDescription=Opis -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=Fajl -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s +Report=Izvještaj +Keyword=Ključna riječ +Origin=Porijeklo +Legend=Objašnjenje +Fill=Popuni +Reset=Poništi +File=Datoteka +Files=Datoteke +NotAllowed=Nije dopušteno +ReadPermissionNotAllowed=Dozvola za čitanje nije data +AmountInCurrency=Iznos u valuti %s +Example=Primjer +Examples=Primjeri +NoExample=Nema primjera +FindBug=Javi o greški +NbOfThirdParties=Broj subjekata +NbOfLines=Broj linija +NbOfObjects=Broj objekata +NbOfObjectReferers=Broj povezanih stavki +Referers=Povezane stavke +TotalQuantity=Ukupna količina +DateFromTo=Od %s do %s +DateFrom=Od%s +DateUntil=Do %s Check=Provjeri -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand +Uncheck=Otkači +Internal=Interno +External=Vanjsko +Internals=Interni +Externals=Vanjski +Warning=Upozorenje +Warnings=Upozorenja +BuildDoc=Napravi dok. +Entity=Okruženje +Entities=entiteti +CustomerPreview=Pregled kupca +SupplierPreview=Pregled dobavljača +ShowCustomerPreview=Pokaži sažetak kupca +ShowSupplierPreview=Pokaži sažetak dobavljača +RefCustomer=Ref. kupca +Currency=valuta +InfoAdmin=Informacije za administratore +Undo=vrati +Redo=ponovi +ExpandAll=Proširi sve +UndoExpandAll=Vrati proširenje Reason=Razlog -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response +FeatureNotYetSupported=Osobina još nije podržana +CloseWindow=Zatvori prozor +Response=Odgovor Priority=Prioritet -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid +SendByMail=Pošalji emailom +MailSentBy=Email je poslao +TextUsedInTheMessageBody=Tekst emaila +SendAcknowledgementByMail=Pošalji konfirmacijski email +EMail=Email +NoEMail=nema emaila +Email=email +NoMobilePhone=Nema broj mobitela +Owner=Vlasnik +FollowingConstantsWillBeSubstituted=Sljedeće konstante će se zamijeniti sa odgovarajućim vrijednostima. +Refresh=Osvježi +BackToList=Nazad na spisak +GoBack=Idi nazad +CanBeModifiedIfOk=Može se mijenjati ako je valjan +CanBeModifiedIfKo=Može biti promijenjeno ako nije valjano ValueIsValid=Vrijednost je važeća -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name +ValueIsNotValid=Vrijednost nije valjana +RecordCreatedSuccessfully=Zapis je uspješno napravljen +RecordModifiedSuccessfully=Zapis uspješno promijenjen +RecordsModified=%s zapis promijenjen +RecordsDeleted=%s zapis obrisan +AutomaticCode=Automatski kod +FeatureDisabled=Osobina onemogućena +MoveBox=Pomjeri prikaz +Offered=Ponuđeno +NotEnoughPermissions=Nemate dozvolu za ovu akciju +SessionName=Naziv sesije Method=Metoda -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received +Receive=Primiti +CompleteOrNoMoreReceptionExpected=Završeno ili se ne očekuje više +ExpectedValue=Očekivana vrijednost +CurrentValue=Trenutna vrijednost +PartialWoman=Djelimično +TotalWoman=Ukupno +NeverReceived=Nikad primljeno Canceled=Otkazan -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files +YouCanChangeValuesForThisListFromDictionarySetup=Možete promijeniti vrijednosti na ovom spisku u meniju Postavke-Rječnici +YouCanChangeValuesForThisListFrom=Možete promijeniti vrijednosti za ovaj spisak u meniju %s +YouCanSetDefaultValueInModuleSetup=Možete postaviti podrazumijevane vrijednosti koje će se koristiti pri pravljenju novog zapisa u postavkama modula +Color=Boja +Documents=Povezane datoteke Documents2=Dokumenti -UploadDisabled=Upload disabled +UploadDisabled=Postavljanje isključeno MenuECM=Dokumenti MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager +MenuMembers=Članovi +MenuAgendaGoogle=Google kalendar +ThisLimitIsDefinedInSetup=Dolibarr ograničenje (Meni Početna-Postavke-Sigurnost): %s Kb, PHP ograničenje: %s Kb +NoFileFound=Nema dokumenata spremljenih u ovom direktoriju +CurrentUserLanguage=Trenutni jezik +CurrentTheme=Trenutna tema +CurrentMenuManager=Trenutni upravljač menija Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password +Layout=Izgled +Screen=Ekran +DisabledModules=Onemogućeni moduli +For=Za +ForCustomer=Za kupca +Signature=Potpis +DateOfSignature=Datum potpisa +HidePassword=Pokaži komandu sa skrivenom šifrom +UnHidePassword=Pokaži stvarnu komandu sa pokazanom šifrom Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +Informations=Informacije +Page=Stranica +Notes=Napomene +AddNewLine=Dodaj novi red +AddFile=Dodaj datoteku +FreeZone=Slobodni unos +FreeLineOfType=Unos slobodnog tipa +CloneMainAttributes=Kloniraj objekt sa njegovim osnovnim osobinama +PDFMerge=PDF spajanje +Merge=Spajanje +DocumentModelStandardPDF=Standardni šablon PDFa +PrintContentArea=Pokaži stranicu za štampu glavnog područja +MenuManager=Upravljanje menijima +WarningYouAreInMaintenanceMode=Upozorenje, sada ste u modu za održavanje, tako da samo korisniku %s je dopušteno korištenje aplikacije u ovom trenutku. +CoreErrorTitle=Sistemska greška +CoreErrorMessage=Žao nam je, desila se greška. Kontaktirajte sistemskog administratora da provjeri zapisnik ili onemogući $dolibarr_main_prod=1 za dobijanje više informacija. CreditCard=Kreditna kartica -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result +FieldsWithAreMandatory=Polja sa %s su obavezna +FieldsWithIsForPublic=Polja sa %s su prikazana na javnom spisku članova. Ako ovo ne želite, deaktivirajte kućicu "javno". +AccordingToGeoIPDatabase=(prema GeoIP konverziji) +Line=Red +NotSupported=Nije podržano +RequiredField=Obavezno polje +Result=Rezultat ToTest=Test -ValidateBefore=Card must be validated before using this feature +ValidateBefore=Kartica se mora odobriti prije korištenja ove osobine Visibility=Vidljivost Private=Privatno -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention +Hidden=Sakriveno +Resources=Resursi +Source=Izvor +Prefix=Prefiks +Before=Prije +After=Nakon +IPAddress=IP adresa +Frequency=Frekvencija +IM=Poruke uživo +NewAttribute=Novi atribut +AttributeCode=Kod atributa +URLPhoto=URL fotografije/logotipa +SetLinkToAnotherThirdParty=Link prema drugom subjektu +LinkTo=Link ka +LinkToProposal=Link ka prijedlogu +LinkToOrder=Link ka narudžbi +LinkToInvoice=Link na fakturu +LinkToSupplierOrder=Link ka narudžbi kupcu +LinkToSupplierProposal=Link ka ponudi dobavljača +LinkToSupplierInvoice=Link na fakturu dobavljača +LinkToContract=Link ka kontaktima +LinkToIntervention=Link ka intervencijama CreateDraft=Kreiraj nacrt -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools +SetToDraft=Nazad na nacrt +ClickToEdit=Klikni za uređivanje +ObjectDeleted=Objekat %s je obrisan +ByCountry=Po državi +ByTown=Po gradu +ByDate=Po datumu +ByMonthYear=Po mjesecu/godini +ByYear=Po godini +ByMonth=Po mjesecu +ByDay=Po danu +BySalesRepresentative=Po predstavniku prodaje +LinkedToSpecificUsers=Spojeno sa određenim kontaktom korisnika +NoResults=Nema rezultata +AdminTools=Adminski alati +SystemTools=Sistemski alati +ModulesSystemTools=Alati modula Test=Test Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman +NoPhotoYet=Još nema dostupne slike +Dashboard=Komandna tabla +MyDashboard=Moja nadzorna ploča +Deductible=Može se odbiti +from=od +toward=prema +Access=Pristup +SelectAction=Odaberi akciju +SelectTargetUser=Odaberi ciljnog korisnika/zaposlenika +HelpCopyToClipboard=Koristite Ctrl+C za kopiranje u međuspremnik copy to clipboard +SaveUploadedFileWithMask=Spremi datoteku na server pod imenom "%s" (inače "%s") +OriginFileName=Originalno ime datoteke +SetDemandReason=Postavi izvor +SetBankAccount=Definiraj bankovni račun +AccountCurrency=Valuta računa +ViewPrivateNote=Vidi zabilješke +XMoreLines=%s red(ova) skriveno +PublicUrl=Javni URL +AddBox=Dodaj kutijicu +SelectElementAndClick=Odaberite element i kliknite %s +PrintFile=Štampa datoteke %s +ShowTransaction=Pokaži unos u bankovni račun +GoIntoSetupToChangeLogo=Idite u Početna - Postavke - Kompanija za promjenu logotipa ili Početna - Postavke - Prikaz za sakrivanje. +Deny=Zabrani +Denied=Zabranjeno +ListOfTemplates=Spisak šablona +Gender=Spol +Genderman=Muškarac +Genderwoman=Žena ViewList=Lista -Mandatory=Mandatory +Mandatory=Obavezno Hello=Zdravo -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed +Sincerely=S poštovanjem +DeleteLine=Obriši red +ConfirmDeleteLine=Da li ste sigurni da želite obrisati ovaj red? +NoPDFAvailableForDocGenAmongChecked=Nijedan PDF nije dostupan za kreiranje dokumenata među provjerenim zapisima +TooManyRecordForMassAction=Previše zapisa odabrano za masovnu akciju. Akcija je ograničena na spisak od %s zapisa. +NoRecordSelected=Nijedan zapis nije odabran +MassFilesArea=Područje za datoteke napravljeno masovnim akcijama +ShowTempMassFilesArea=Pokaži područje datoteka napravljeno masovnim akcijama +RelatedObjects=Povezani objekti +ClassifyBilled=Klasificiraj kao fakturisano Progress=Napredak ClickHere=Klikni ovdje -FrontOffice=Front office +FrontOffice=Izlog BackOffice=Administracija -View=View +View=Pogled Export=Export Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous +ExportFilteredList=Izvezi filtrirani spisak +ExportList=Spisak za izvoz +Miscellaneous=Razno Calendar=Kalendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year +GroupBy=Grupiranje po... +ViewFlatList=Vidi čisti spisak +RemoveString=Ukloni pojam '%s' +SomeTranslationAreUncomplete=Neki jezici su možda djelimično prevedeni ili mogu sadržavati greške. Ako nađete neke, možete popraviti jezičke datoteke tako što ćete ih postaviti na https://transifex.com/projects/p/dolibarr/. +DirectDownloadLink=Direktni link za skidanje +Download=Skidanje +ActualizeCurrency=Ažuriraj kurs valute +Fiscalyear=Fiskalna godina +ModuleBuilder=Kreator modula +SetMultiCurrencyCode=Postavi valutu +BulkActions=Masovne akcije +ClickToShowHelp=Klikni za prikaz pomoći +HR=LJR +HRAndBank=LJR i banka +AutomaticallyCalculated=Automatski izračunato +TitleSetToDraft=Nazad na nacrt +ConfirmSetToDraft=Da li ste sigurni da želite se vratiti u stanje nacrta? # Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F +Monday=Ponedjeljak +Tuesday=Utorak +Wednesday=Srijeda +Thursday=Četvrtak +Friday=Petak +Saturday=Subota +Sunday=Nedjelja +MondayMin=Po +TuesdayMin=Ut +WednesdayMin=Sr +ThursdayMin=Če +FridayMin=Pe +SaturdayMin=Su +SundayMin=Ne +Day1=Ponedjeljak +Day2=Utorak +Day3=Srijeda +Day4=Četvrtak +Day5=Petak +Day6=Subota +Day0=Nedjelja +ShortMonday=P +ShortTuesday=U +ShortWednesday=S +ShortThursday=Č +ShortFriday=P ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services +ShortSunday=N +SelectMailModel=Odaberi šablon emaila +SetRef=Postavi ref. +Select2ResultFoundUseArrows=Pronađeni neki rezultati. Koristite strelice za odabir. +Select2NotFound=Nije pronađen rezultat +Select2Enter=Potvrdi +Select2MoreCharacter=ili više karaktera +Select2MoreCharacters=ili više karaktera +Select2MoreCharactersMore=Traži sintaksu:
| ili (a|b)
* Bilo koji znak (a*b)
^ Počni sa (^ab)
$ Završi sa (ab$)
+Select2LoadingMoreResults=Učitavam više rezultata... +Select2SearchInProgress=Pretraga u toku... +SearchIntoThirdparties=Subjekti +SearchIntoContacts=Kontakti +SearchIntoMembers=Članovi +SearchIntoUsers=Korisnici +SearchIntoProductsOrServices=Proizvodi ili usluge SearchIntoProjects=Projekti SearchIntoTasks=Zadaci -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals +SearchIntoCustomerInvoices=Fakture kupaca +SearchIntoSupplierInvoices=Fakture dobavljača +SearchIntoCustomerOrders=Narudžbe kupaca +SearchIntoSupplierOrders=Narudžbe dobavljačima +SearchIntoCustomerProposals=Ponude kupcima +SearchIntoSupplierProposals=Ponude dobavljača SearchIntoInterventions=Intervencije SearchIntoContracts=Ugovori -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions +SearchIntoCustomerShipments=Slanje kupcu +SearchIntoExpenseReports=Izvještaj o troškovima +SearchIntoLeaves=Odlasci diff --git a/htdocs/langs/bs_BA/members.lang b/htdocs/langs/bs_BA/members.lang index 09062a7534f..0cf38ddc642 100644 --- a/htdocs/langs/bs_BA/members.lang +++ b/htdocs/langs/bs_BA/members.lang @@ -3,7 +3,7 @@ MembersArea=Members area MemberCard=Member card SubscriptionCard=Subscription card Member=Member -Members=Members +Members=Članovi ShowMember=Show member card UserNotLinkedToMember=User not linked to a member ThirdpartyNotLinkedToMember=Third-party not linked to a member @@ -61,7 +61,7 @@ NewSubscription=New subscription NewSubscriptionDesc=This form allows you to record your subscription as a new member of the foundation. If you want to renew your subscription (if already a member), please contact foundation board instead by email %s. Subscription=Subscription Subscriptions=Subscriptions -SubscriptionLate=Late +SubscriptionLate=Kasno SubscriptionNotReceived=Subscription never received ListOfSubscriptions=List of subscriptions SendCardByMail=Send card by Email @@ -90,8 +90,9 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions -ImportDataset_member_1=Members +ImportDataset_member_1=Članovi LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions String=String @@ -135,7 +136,7 @@ LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with busin DocForAllMembersCards=Generate business cards for all members DocForOneMemberCards=Generate business cards for a particular member DocForLabels=Generate address sheets -SubscriptionPayment=Subscription payment +SubscriptionPayment=Plaćanje preplate LastSubscriptionDate=Latest subscription date LastSubscriptionAmount=Latest subscription amount MembersStatisticsByCountries=Members statistics by country @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistika LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/bs_BA/orders.lang b/htdocs/langs/bs_BA/orders.lang index 8b7b56f7a31..477e9210b67 100644 --- a/htdocs/langs/bs_BA/orders.lang +++ b/htdocs/langs/bs_BA/orders.lang @@ -3,8 +3,8 @@ OrdersArea=Customers orders area SuppliersOrdersArea=Suppliers orders area OrderCard=Order card OrderId=Order Id -Order=Order -Orders=Orders +Order=Narudžba +Orders=Narudžbe OrderLine=Order line OrderDate=Datum narudžbe OrderDateShort=Datum narudžbe @@ -16,7 +16,7 @@ SupplierOrder=Supplier order SuppliersOrders=Suppliers orders SuppliersOrdersRunning=Current suppliers orders CustomerOrder=Customer order -CustomersOrders=Customer orders +CustomersOrders=Narudžbe kupaca CustomersOrdersRunning=Current customer orders CustomersOrdersAndOrdersLines=Customer orders and order lines OrdersDeliveredToBill=Customer orders delivered to bill diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 9f09e215d8f..195c8948d3b 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/bs_BA/printing.lang b/htdocs/langs/bs_BA/printing.lang index 5d2ea3a9219..f46d6d6178e 100644 --- a/htdocs/langs/bs_BA/printing.lang +++ b/htdocs/langs/bs_BA/printing.lang @@ -29,8 +29,8 @@ GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_USER=Ulaz +PRINTIPP_PASSWORD=Šifra NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,7 +40,7 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Boja IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media diff --git a/htdocs/langs/bs_BA/products.lang b/htdocs/langs/bs_BA/products.lang index 3b908572021..2c82f2f134b 100644 --- a/htdocs/langs/bs_BA/products.lang +++ b/htdocs/langs/bs_BA/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Proizvod ili usluga ProductsAndServices=Proizvodi i usluge ProductsOrServices=Proizvodi ili usluge -ProductsOnSell=Product for sale or for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Product for purchase only ProductsNotOnSell=Product not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -162,7 +164,7 @@ second=second s=s hour=hour h=h -day=day +day=dan d=d kilogram=kilogram kg=Kg @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Sekunda +unitH=Sat +unitD=Dan +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -260,6 +275,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,15 +288,19 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact WeightImpact=Weight impact -NewProductAttribute=New attribute +NewProductAttribute=Novi atribut NewProductAttributeValue=New attribute value ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values @@ -291,8 +312,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/bs_BA/projects.lang b/htdocs/langs/bs_BA/projects.lang index 446d268919a..2ee89593a8e 100644 --- a/htdocs/langs/bs_BA/projects.lang +++ b/htdocs/langs/bs_BA/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Zajednički projekti PrivateProject=Kontakti projekta +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Svi projekti MyProjectsDesc=Ovaj pregled je limitiran na projekte u kojima ste stavljeni kao kontakt (bilo koji tip). ProjectsPublicDesc=Ovaj pregled predstavlja sve projekte koje možete čitati. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Ovaj pregled predstavlja sve projekte i zadatke (postavke vaših koris AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Novi projekat AddProject=Create project DeleteAProject=Obisati projekat DeleteATask=Obrisati zadatak ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Prikaži projekt SetProject=Postavi projekat NoProject=Nema definisanog ili vlastitog projekta NbOfProjects=Broj projekata +NbOfTasks=Nb of tasks TimeSpent=Vrijeme provedeno TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -45,11 +50,11 @@ RefTask=Ref. zadatka LabelTask=Oznaka zadatka TaskTimeSpent=Time spent on tasks TaskTimeUser=Korisnik -TaskTimeNote=Note +TaskTimeNote=Napomena TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Nova provedeno vrijeme +NewTimeSpent=Vrijeme provedeno MyTimeSpent=Moje provedeno vrijeme Tasks=Zadaci Task=Zadatak @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Novi zadatak AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivnost Activities=Zadaci/aktivnosti MyActivities=Moji zadaci/aktivnosti @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Lista ugovora u vezi s projektom +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lista intervencija u vezi s projektom ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,15 +109,16 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Kontakti projekta ActionsOnProject=Događaji na projektu YouAreNotContactOfProject=Vi niste kontakt ovog privatnog projekta +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Brisanje provedenog vremena ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me ShowMyTasksOnly=View only tasks assigned to me -TaskRessourceLinks=Resources +TaskRessourceLinks=Resursi ProjectsDedicatedToThisThirdParty=Projekti posvećeni ovom subjektu NoTasks=Nema zadataka za ovaj projekat LinkedToAnotherCompany=U vezi sa drugim subjektom -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Vrijeme provedeno je prazno ThisWillAlsoRemoveTasks=Ova akcija će također izbrisati sve zadatke projekta (%s zadataka u ovom trenutku) i sve unose provedenog vremena. IfNeedToUseOhterObjectKeepEmpty=Ako neki objekti (faktura, narudžbe, ...), pripadaju drugom subjektu, mora biti u vezi sa projektom za kreiranje, ostavite ovo prazno da bi imali projekat što više subjekata. @@ -155,33 +163,38 @@ DocumentModelBeluga=Project template for linked objects overview DocumentModelBaleine=Project report template for tasks PlannedWorkload=Planned workload PlannedWorkloadShort=Workload -ProjectReferers=Related items +ProjectReferers=Povezane stavke ProjectMustBeValidatedFirst=Project must be validated first FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/bs_BA/propal.lang b/htdocs/langs/bs_BA/propal.lang index a46228a3fb6..d932ada9211 100644 --- a/htdocs/langs/bs_BA/propal.lang +++ b/htdocs/langs/bs_BA/propal.lang @@ -3,7 +3,7 @@ Proposals=Poslovni prijedlozi Proposal=Poslovni prijedlog ProposalShort=Prijedlog ProposalsDraft=Nacrti poslovnih prijedloga -ProposalsOpened=Otvoreni poslovni prijedlozi +ProposalsOpened=Open commercial proposals Prop=Poslovni prijedlozi CommercialProposal=Poslovni prijedlog ProposalCard=Kartica prijedloga @@ -25,8 +25,8 @@ NumberOfProposalsByMonth=Broj po mjesecu AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Broj poslovnih prijedloga ShowPropal=Show proposal -PropalsDraft=Drafts -PropalsOpened=Otvoreno +PropalsDraft=Uzorak +PropalsOpened=Otvori PropalStatusDraft=Uzorak (Potrebna je potvrda) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/bs_BA/resource.lang b/htdocs/langs/bs_BA/resource.lang index f95121db351..cd3208760a6 100644 --- a/htdocs/langs/bs_BA/resource.lang +++ b/htdocs/langs/bs_BA/resource.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - resource -MenuResourceIndex=Resources +MenuResourceIndex=Resursi MenuResourceAdd=New resource DeleteResource=Delete resource ConfirmDeleteResourceElement=Confirm delete the resource for this element @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resursi diff --git a/htdocs/langs/bs_BA/stocks.lang b/htdocs/langs/bs_BA/stocks.lang index 3418e86532e..301ddce8641 100644 --- a/htdocs/langs/bs_BA/stocks.lang +++ b/htdocs/langs/bs_BA/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Oznaka za kretanje NumberOfUnit=Broj jedinica UnitPurchaseValue=Kupovna cijena jedinice StockTooLow=Zaliha preniska -StockLowerThanLimit=Zaliha manja od granice za upozorenje +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Vrijednost PMPValue=Ponderirana/vagana aritmetička sredina - PAS PMPValueShort=PAS @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Povećaj stvarne zalihe na odobrenju narudžbe dobavljaču -ReStockOnDispatchOrder=Povećaj stvarne zalihe na ručnom otpremanju u skladište, nakon primanja narudžbe dobavljača +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Narudžna jos uvijek nema ili nema više status koji dozvoljava otpremanje proizvoda u zalihu skladišta -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nema predefinisanih proizvoda za ovaj objekat. Dakle, nema potrebe za otpremanje na zalihu. DispatchVerb=Otpremiti StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Fizička zaliha RealStock=Stvarna zaliha +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Viruelna zaliha +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=ID skladišta DescWareHouse=Opis skladišta LieuWareHouse=Lokalizacija skladišta @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Količina proizvoda %s u zalihi prije odabranog perioda NbOfProductAfterPeriod=Količina proizvoda %s u zalihi poslije odabranog perioda (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Odaberite proizvod, kolilinu, izvordno skladište i ciljano skladište. zatim kliknite "%s". Kada je ovo završeno za sva potrebna kretanja, kliknite "%s". -RecordMovement=Zapiši transfer +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Kretanja zalihe zapisana RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Izmjena +inventoryValidate=Potvrđeno +inventoryDraft=Aktivan +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Dodaj +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Obriši red +RegulateStock=Regulate Stock +ListInventory=Spisak diff --git a/htdocs/langs/bs_BA/supplier_proposal.lang b/htdocs/langs/bs_BA/supplier_proposal.lang index fac46908d08..1795c4b6b8d 100644 --- a/htdocs/langs/bs_BA/supplier_proposal.lang +++ b/htdocs/langs/bs_BA/supplier_proposal.lang @@ -3,16 +3,16 @@ SupplierProposal=Supplier commercial proposals supplier_proposalDESC=Manage price requests to suppliers SupplierProposalNew=New request CommRequest=Price request -CommRequests=Price requests +CommRequests=Zahtjev za cijenu SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal -SupplierProposals=Supplier proposals -SupplierProposalsShort=Supplier proposals +SupplierProposals=Ponude dobavljača +SupplierProposalsShort=Ponude dobavljača NewAskPrice=New price request ShowSupplierProposal=Show price request AddSupplierProposal=Create a price request @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Uzorak (Potrebna je potvrda) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Zatvoreno SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Odbijen @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/bs_BA/suppliers.lang b/htdocs/langs/bs_BA/suppliers.lang index 42c63efe327..5503303e717 100644 --- a/htdocs/langs/bs_BA/suppliers.lang +++ b/htdocs/langs/bs_BA/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Neki podproizvodi nemaju definisanu cijenu AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ova referentni dobavljač je već povezan sa referencom: %s NoRecordedSuppliers=Nijedan dobavljač snimljen SupplierPayment=Plaćanje dobavljača diff --git a/htdocs/langs/bs_BA/trips.lang b/htdocs/langs/bs_BA/trips.lang index e50ab9b931b..8ff1923958f 100644 --- a/htdocs/langs/bs_BA/trips.lang +++ b/htdocs/langs/bs_BA/trips.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - trips ExpenseReport=Expense report -ExpenseReports=Expense reports +ExpenseReports=Izvještaj o troškovima ShowExpenseReport=Show expense report -Trips=Expense reports +Trips=Izvještaj o troškovima TripsAndExpenses=Expenses reports TripsAndExpensesStatistics=Expense reports statistics TripCard=Expense report card @@ -12,7 +12,7 @@ ListOfFees=Lista naknada TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Posjeta kompaniji/fondaciji +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Iznos ili kilometri DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -56,7 +56,7 @@ AucuneLigne=There is no expense report declared yet ModePaiement=Payment mode VALIDATOR=User responsible for approval -VALIDOR=Approved by +VALIDOR=Odobrio AUTHOR=Recorded by AUTHORPAIEMENT=Paid by REFUSEUR=Denied by @@ -66,10 +66,11 @@ MOTIF_REFUS=Razlog MOTIF_CANCEL=Razlog DATE_REFUS=Deny date -DATE_SAVE=Validation date +DATE_SAVE=Datum potvrde DATE_CANCEL=Cancelation date DATE_PAIEMENT=Datum uplate BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/bs_BA/users.lang b/htdocs/langs/bs_BA/users.lang index be3fdad87ae..af51b0ebbf6 100644 --- a/htdocs/langs/bs_BA/users.lang +++ b/htdocs/langs/bs_BA/users.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=HRM area +HRMArea=Područje upravljanja LJR UserCard=Korisnička kartica GroupCard=Grupna kartica Permission=Dozvola @@ -8,33 +8,33 @@ EditPassword=Uredi šifru SendNewPassword=Ponovo generiši i pošalji šifru ReinitPassword=Ponovo generiši šifru PasswordChangedTo=Šifra promijenjena na: %s -SubjectNewPassword=Your new password for %s +SubjectNewPassword=Vaša šifra za %s GroupRights=Grupne dozvole UserRights=Korisničke dozvole UserGUISetup=Postavke korisničkog prikaza -DisableUser=Iskljući +DisableUser=Isključi DisableAUser=Isključi korisnika DeleteUser=Obrisati DeleteAUser=Obrisati korisnika -EnableAUser=Uljuči korisnika +EnableAUser=Uključi korisnika DeleteGroup=Obrisati DeleteAGroup=Obrisati grupu -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Da li ste sigurni da želite onemogućiti korisnika %s? +ConfirmDeleteUser=Da li ste sigurni da želite obrisati korisnika %s? +ConfirmDeleteGroup=Da li ste sigurni da želite obrisati grupu %s? +ConfirmEnableUser=Da li ste sigurni da želite omogućiti korisnika %s? +ConfirmReinitPassword=Da li ste sigurni da želite generisati novu šifru za korisnika %s? +ConfirmSendNewPassword=Da li ste sigurni da želite generisati i poslati novu šifru za korisnika %s? NewUser=Novi korisnik CreateUser=Kreiraj korisnika LoginNotDefined=Prijava nije definisan. NameNotDefined=Ime nije definisano. ListOfUsers=Lista korisnika SuperAdministrator=Super Administrator -SuperAdministratorDesc=Global administrator +SuperAdministratorDesc=Globalni administrator AdministratorDesc=Administrator DefaultRights=Defaultne dozvole -DefaultRightsDesc=Definišite ovdje defaultne dozvole koje se automatski odobravaju novokreiranom korisniku (Otiđite na karticdu korisnika za mijenjanje dozvola postojećeg korisnika). +DefaultRightsDesc=Definišite ovdje defaultne dozvole koje se automatski odobravaju novokreiranom korisniku (Otiđite na karticu korisnika za mijenjanje dozvola postojećeg korisnika). DolibarrUsers=Dolibarr korisnici LastName=Prezime FirstName=Ime @@ -45,33 +45,33 @@ RemoveFromGroup=Ukloni iz grupe PasswordChangedAndSentTo=Šifra promijenjena i poslana korisniku %s. PasswordChangeRequestSent=Zahtjev za promjenu šifre za %s poslana na %s. MenuUsersAndGroups=Korisnici i grupe -LastGroupsCreated=Latest %s created groups -LastUsersCreated=Latest %s users created +LastGroupsCreated=Posljednjih %s napravljenih grupa +LastUsersCreated=Posljednjih %s napravljenih korisnika ShowGroup=Prikaži grupu ShowUser=Prikaži korisnika -NonAffectedUsers=Nedodijeljen korisnici +NonAffectedUsers=Nedodijeljeni korisnici UserModified=Korisnik uspješno izmijenjen -PhotoFile=Foto fajl +PhotoFile=Foto datoteka ListOfUsersInGroup=Lista korisnika u ovoj grupi ListOfGroupsForUser=Popis grupa za ovog korisnika -LinkToCompanyContact=Link to third party / contact +LinkToCompanyContact=Link na subjekat / kontakt LinkedToDolibarrMember=Link na člana LinkedToDolibarrUser=Link na Dolibarr korisnika -LinkedToDolibarrThirdParty=Link to Dolibarr third party +LinkedToDolibarrThirdParty=Link na Dolibarr subjekt CreateDolibarrLogin=Kreiraj korisnika -CreateDolibarrThirdParty=Create a third party -LoginAccountDisableInDolibarr=Račun isključen u Dolibarr-u. +CreateDolibarrThirdParty=Napravi subjekat +LoginAccountDisableInDolibarr=Račun isključen u Dolibarru. UsePersonalValue=Koristite lične vrijednosti InternalUser=Interni korisnik ExportDataset_user_1=Dolibarr korisnici i svojstva DomainUser=Korisnik domene %s Reactivate=Reaktivirati -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=Interni korisnik je dio vaše kompanije/fondacije. Eksterni korisnik je kupac, dobavljač ili drugo.

U oba slučaja, dozvole definišu prava na Dolibarr, također, eksterni korisnik može imati drugačiji meni menadžer od internog korisnika (pogledaj Početna->postavke->Display). +CreateInternalUserDesc=Ovaj obrazac omogućava da se napravi interni korisnik za vašu kompaniju/organizaciju. Da biste napravili eksternog korisnika (kupca, dobavljača, ...), koristite dugme 'Napravi Dolibarr korisnika' iz kartice za kontakte subjekta. +InternalExternalDesc= Interni korisnik je korisnik koji je dio vaše kompanije/organizacije.
Vanjski korisnik je kupac, dobavljač ili neko drugi.

U oba slučaja, dozvole definiraju prava u Dolibarru, također vanjski korisnik može imati drugačiji meni od internog korisnika (Vidi Početna - Postavke - Prikaz) PermissionInheritedFromAGroup=Dozvola je prenesena od jedne korisničke grupe. Inherited=Preneseno -UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) -UserWillBeExternalUser=Created user will be an external user (because linked to a particular third party) +UserWillBeInternalUser=Kreirani korisnik će biti interni korisnik (jer nije povezan sa nekim subjektom) +UserWillBeExternalUser=Napravljeni korisnik će biti vanjski korisnik (jer je povezan s određenim subjektom) IdPhoneCaller=Id telefonskog pozivatelja NewUserCreated=Korisnik %s kreiran NewUserPassword=Promjena šifre za %s @@ -80,26 +80,26 @@ UserDisabled=Korisnik %s isključen UserEnabled=Korisnik %s aktiviran UserDeleted=Korisnik %s uklonjen NewGroupCreated=Grupa %s kreirana -GroupModified=Group %s modified +GroupModified=Grupa %s izmijenjena GroupDeleted=Grupa %s uklonjena -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +ConfirmCreateContact=Da li ste sigurni da želite napraviti Dolibarr račun za ovaj kontakt? +ConfirmCreateLogin=Da li ste sigurni da želite napraviti Dolibarr račun za ovog člana? +ConfirmCreateThirdParty=Da li ste sigurni da želite napraviti subjekt za ovog člana? LoginToCreate=Kreirati login -NameToCreate=Name of third party to create -YourRole=Vaše uloga +NameToCreate=Naziv subjekta za kreiranje +YourRole=Vaše uloge YourQuotaOfUsersIsReached=Vaša kvota aktivnih korisnika je postignuta! NbOfUsers=Broj korisnika DontDowngradeSuperAdmin=Samo superadmin može unazaditi superadmina -HierarchicalResponsible=Supervisor +HierarchicalResponsible=Nadzornik HierarchicView=Hijerarhijski prikaz UseTypeFieldToChange=Koristite polja Tip za promjene OpenIDURL=OpenID URL LoginUsingOpenID=Koristiti OpenID za login -WeeklyHours=Weekly hours -ColorUser=Color of the user -DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accountancy code -UserLogoff=User logout -UserLogged=User logged -DateEmployment=Date of Employment +WeeklyHours=Sedmični sati +ColorUser=Boja korisnika +DisabledInMonoUserMode=Onemogućeno u načinu održavanja +UserAccountancyCode=Konto korisnika u kontnom planu +UserLogoff=Odjava korisnika +UserLogged=Korisnik prijavljen +DateEmployment=Datum zaposlenja diff --git a/htdocs/langs/bs_BA/withdrawals.lang b/htdocs/langs/bs_BA/withdrawals.lang index c5e535030f7..75ac43d865f 100644 --- a/htdocs/langs/bs_BA/withdrawals.lang +++ b/htdocs/langs/bs_BA/withdrawals.lang @@ -2,11 +2,11 @@ CustomersStandingOrdersArea=Direct debit payment orders area SuppliersStandingOrdersArea=Direct credit payment orders area StandingOrders=Direct debit payment orders -StandingOrder=Direct debit payment order +StandingOrder=Direktni nalog za plaćanje NewStandingOrder=New direct debit order StandingOrderToProcess=Za obradu WithdrawalsReceipts=Direct debit orders -WithdrawalReceipt=Direct debit order +WithdrawalReceipt=Nalog za plaćanje LastWithdrawalReceipts=Latest %s direct debit files WithdrawalsLines=Direct debit order lines RequestStandingOrderToTreat=Request for direct debit payment order to process @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Iznos za podizanje WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nijedna fakture kupca u modu plaćanje "podizanje" nema na čekanju. Idi na tab "Podizanje" na kartici fakture da napravite zahtjev. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odgovorni korisnik WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Razlog za odbijanje RefusedInvoicing=Naplate odbijanja NoInvoiceRefused=Ne naplatiti odbijanje InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Čekanje StatusTrans=Poslano StatusCredited=Pripisano diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index dd7d83bd840..85f24e647c1 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Etiqueta de factura OverviewOfAmountOfLinesNotBound=Visió general de quantitat de línies no comptabilitzades al compte comptable OverviewOfAmountOfLinesBound=Visió general de quantitat de línies ja comptabilitzades al compte comptable OtherInfo=Altra informació +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Àrea de comptabilitat AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes: AccountancyAreaDescActionOnce=Les següents accions s'executen normalment per una sola vegada, o un cop l'any ... -AccountancyAreaDescActionOnceBis=Les properes passes es faran per a estalviar el teu temps en un futur suggerint-te el correcte compte comptable per defecte mentre escrius als llibres (Diari i Major) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=Les següents accions s'executen normalment cada mes, setmana o dia per empreses molt grans ... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=PAS %s: Crear un model de pla de comptes des del menú %s AccountancyAreaDescChart=PAS %s: Crear o comprovar el contingut del seu pla de comptes des del menú %s -AccountancyAreaDescBank=PAS %s: S'ha fet la comprovació del vincle entre comptes bancaris i compte comptable. Completar els vincles que falten. Per fer això, ves a la fitxa de cada compte financer. Pots començar a partir de la pàgina %s. -AccountancyAreaDescVat=PAS %s: S'ha fet la comprovació del vincle entre els percentatges d'iva i compte comptable. Completar els vincles que falten. Pots posar els comptes comptables a utilitzar per a cada IVA a partir de la pàgina %s. -AccountancyAreaDescExpenseReport=PAS %s: S'ha fet la comprovació del vincle entre l'informe per tipus de despesa i comptes comptables. Completar els vincles que falten. Pots posar el compte a utilitzar per cada IVA a partir de la pàgina %s. -AccountancyAreaDescSal=PAS %s: S'ha fet la comprovació del vincle entre pagament de salaris i compte comptable. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescContrib=PAS %s: S'ha fet la comprovació del vincle entre despeses especials (taxes diverses) i comptes comptables. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescDonation=PAS %s: S'ha fet la comprovació del vincle entre donacions i compte comptable. Completar els vincles que falten. Pots posar el compte dedicat a aquest concepte a partir de l'entrada de menú %s. -AccountancyAreaDescMisc=PAS %s: S'ha fet la comprovació del vincle per defecte entre línies de transaccions diverses i comptes comptables. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescProd=PAS %s: S'ha fet la comprovació del vincle entre productes/serveis i compte comptable. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescLoan=PAS %s: S'ha fet la comprovació del vincle entre els pagaments de préstecs i comptes comptables. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescCustomer=PAS %s: S'ha fet la comprovació del vincle entre les línies de factures de client i comptes comptables, així l'aplicació serà capaç de registrar al llibre major amb un sol clic. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescSupplier=PAS %s: S'ha fet la comprovació del vincle entre les línies de factures de proveïdor i comptes comptables, així l'aplicació serà capaç de registrar al llibre major amb un sol clic. Completar els vincles que falten. Per fer això, pots utilitzar l'entrada de menú %s. -AccountancyAreaDescWriteRecords=PAS %s: Escriure les transaccions en el llibre major. Per a això, entra a cada Diari, i feu clic al botó de "Passar del llibre diari al major". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=PAS %s: Definir els comptes comptables per a cada banc i compte financer. Per a això, aneu a la fitxa de cada compte financer. Vostè pot comnçar a la pàgina %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=PAS %s: Afegir o editar transaccions existents i generar informes i exportacions. AccountancyAreaDescClosePeriod=PAS %s: Tancar el període de forma que no pot fer modificacions en un futur. @@ -57,6 +61,10 @@ ChangeAndLoad=Canviar i carregar Addanaccount=Afegir un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Compte comptable suggerit MenuDefaultAccounts=Comptes per defecte MenuVatAccounts=Comptes d'IVA @@ -71,8 +79,8 @@ SuppliersVentilation=Comptabilització de factura de proveïdor ExpenseReportsVentilation=Comptabilització d'informes de despeses CreateMvts=Crea una nova transacció UpdateMvts=Modificació d'una transacció -WriteBookKeeping=Passar llibre diari al llibre major -Bookkeeping=Llibre major +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Compte saldo CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comença l'ordenació de la pàgina "Compt ACCOUNTING_LENGTH_DESCRIPTION=Truncar descripcions de producte i serveis en llistes de x caràcters (Millor = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar descripcions de comptes de producte i serveis en llistes de x caràcters (Millor = 50) -ACCOUNTING_LENGTH_GACCOUNT=Longitud dels comptes de la Comptabilitat General -ACCOUNTING_LENGTH_AACCOUNT=Longitud de les comptes de la comptabilitat de tercers -ACCOUNTING_MANAGE_ZERO=Gestionar el zero al final d'un compte de comptabilitat. Necessària per alguns països. Desactivada per defecte. Si està en on, també ha d'establir els 2 següents paràmetres (o s'ignoren) +ACCOUNTING_LENGTH_GACCOUNT=Longitud dels comptes generals (Si s'estableix el valor a 6 aquí, el compte '706' apareixerà com '706000' a la pantalla) +ACCOUNTING_LENGTH_AACCOUNT=Longitud dels subcomptes (Si s'estableix el valor a 6 aquí, el compte '401' apareixerà com '401000' a la pantalla) +ACCOUNTING_MANAGE_ZERO=Gestiona un nombre diferent de zero al final d'un compte comptable. Necessària per alguns països (com Suïssa). Si es manté apagat (per defecte), pot configurar els següents 2 paràmetres per a demanar a l'aplicació afegir un zero virtual. BANK_DISABLE_DIRECT_INPUT=Des-habilitar l'enregistrament directe de transaccions al compte bancari ACCOUNTING_SELL_JOURNAL=Diari de venda @@ -132,19 +140,19 @@ Sens=Significat Codejournal=Diari NumPiece=Número de peça TransactionNumShort=Número de transacció -AccountingCategory=Categoria de comptabilitat +AccountingCategory=Grups comptes contables GroupByAccountAccounting=Agrupar per compte comptable NotMatch=No definit -DeleteMvt=Elimina línies del llibre major +DeleteMvt=Delete Ledger lines DelYear=Any a eliminar DelJournal=Diari per esborrar -ConfirmDeleteMvt=Això eliminarà totes les línies del llibre major per a tot un any i/o per a un específic diari. És requereix al menys un dels dos criteris. -ConfirmDeleteMvtPartial=Això eliminarà les línies o línia seleccionada del llibre major -DelBookKeeping=Elimina el registre del libre major +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Informe-diari de despeses DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=Aquesta és una vista de registres que han comptabilitzat a comptes comptables de productes/serveis i que poden registrar-se al Llibre major +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Comptes comptables de IVA sense definir ThirdpartyAccountNotDefined=Comptes comptables de tercers (clients o proveïdors) sense definir ProductAccountNotDefined=Comptes comptables per al producte sense definir @@ -156,13 +164,13 @@ NewAccountingMvt=Nova transacció NumMvts=Número de transacció ListeMvts=Llista de moviments ErrorDebitCredit=El dèbit i el crèdit no poden tenir valors alhora - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Llista el compte del tercer DescThirdPartyReport=Consulti aquí la llista de tercers (cliente i proveïdors) i els seus corresponents comptes comptables ListAccounts=Llistat dels comptes comptables Pcgtype=Classe de compte -Pcgsubtype=Sota la classe de compte +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Marge total de vendes @@ -186,16 +194,28 @@ AutomaticBindingDone=Comptabilització automàtica realitzada ErrorAccountancyCodeIsAlreadyUse=Error, no pots eliminar aquest compte comptable perquè està en ús MvtNotCorrectlyBalanced=Moviment no balancejat correctament. Crèdit = %s. Dèbit = %s FicheVentilation=Fitxa de comptabilització -GeneralLedgerIsWritten=Les transaccions han estat escrites al llibre major -GeneralLedgerSomeRecordWasNotRecorded=Alguna de les transaccions podria no ser gravada. -NoNewRecordSaved=No cap nou registre guardat +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=Llista de productes no comptabilitzats en cap compte comptable ChangeBinding=Canvia la comptabilització ## Admin ApplyMassCategories=Aplica categories massives -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed +AddAccountFromBookKeepingWithNoCategories=Afegir compte ja utilitzada sense categories +CategoryDeleted=La categoria per al compte contable ha sigut eliminada +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Codi +Nature=Caràcter +AccountingJournalType1=Various operation +AccountingJournalType2=Vendes +AccountingJournalType3=Compres +AccountingJournalType4=Banc +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exportacions @@ -211,7 +231,8 @@ Modelcsv_ciel=Exporta cap a Sage Ciel Compta o Compta Evolution Modelcsv_quadratus=Exporta cap a Quadratus QuadraCompta Modelcsv_ebp=Exporta cap a EBP Modelcsv_cogilog=Exporta cap a Cogilog -ChartofaccountsId=Chart of accounts Id +Modelcsv_agiris=Export towards Agiris (Test) +ChartofaccountsId=Id pla comptable ## Tools - Init accounting account on product / service InitAccountancy=Inicialitza la comptabilitat @@ -235,11 +256,12 @@ Calculated=Calculat Formula=Fórmula ## Error -ErrorNoAccountingCategoryForThisCountry=Categoria comptable no disponible per país %s (Veure Inici - Configuració - Diccionaris) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No hi ha cap grup comptable disponible per al país %s (Veure Inici - Configuració - Diccionaris) ExportNotSupported=El format d'exportació configurat no està suportat en aquesta pàgina BookeppingLineAlreayExists=Les línies ja existeixen en la comptabilitat - +NoJournalDefined=No journal defined Binded=Línies comptabilitzades ToBind=Línies a comptabilitzar -WarningReportNotReliable=Advertència, aquest informe no es basa en el llibre major, pel que no és fiable fins a la data. Se substitueix per un informe correcte en una versió següent. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index b9e02b95adc..c5738bf9e2e 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -9,10 +9,10 @@ VersionDevelopment=Desenvolupament VersionUnknown=Desconeguda VersionRecommanded=Recomanada FileCheck=Comprovador de integritat de arxius -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. +FileCheckDesc=Aquesta ferramenta li permet comprobar la integritat dels arxius de l'aplicació, comparant cada arxiu amb els oficials. Es pot utilitzar aquesta ferrametna per detectar si alguns arxius han sigut modificats per un hacker per exemple. FileIntegrityIsStrictlyConformedWithReference=La integritat dels arxius està estrictament conforme amb la referència. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. +FileIntegrityIsOkButFilesWereAdded=La comprovació de la integritat dels arxius ha resultat exitosa, no obstant s'han afegit alguns arxius nous. +FileIntegritySomeFilesWereRemovedOrModified=La comprovació d'integritat d'arxius ha fallat. Alguns arxius han sigut modificats, eliminats o afegits. GlobalChecksum=Checksum global MakeIntegrityAnalysisFrom=Fer anàlisi de la integritat dels arxius de l'aplicació de LocalSignature=Firma local incrustada (menys fiables) @@ -22,7 +22,7 @@ FilesUpdated=Arxius actualitzats FilesModified=Fitxers modificats FilesAdded=Fitxers afegits FileCheckDolibarr=Comprovar l'integritat dels arxius de l'aplicació -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package +AvailableOnlyOnPackagedVersions=L'arxiu local per a la comprobació de integritat sols està disponible quan l'aplicació s'instal·la desde un paquet certificat XmlNotFound=No es troba l'arxiu xml SessionId=ID de sessió SessionSaveHandler=Modalitat de desar sessions @@ -48,6 +48,7 @@ InternalUsers=Usuaris interns ExternalUsers=Usuaris externs GUISetup=Entorn SetupArea=Àrea configuració +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulari de prova de càrrega de fitxer (segons opcions escollides) IfModuleEnabled=Nota: sí només és eficaç si el mòdul %s està activat RemoveLock=Esborreu el fitxer %s, si existeix, per permetre la utilitat d'actualització. @@ -85,7 +86,7 @@ Mask=Màscara NextValue=Pròxim valor NextValueForInvoices=Pròxim valor (factures) NextValueForCreditNotes=Pròxim valor (abonaments) -NextValueForDeposit=Pròxim valor (dipòsit) +NextValueForDeposit=Següent valor (bestreta) NextValueForReplacements=Pròxim valor (rectificatives) MustBeLowerThanPHPLimit=Observació: El seu PHP limita la mida a %s %s de màxim, qualsevol que sigui el valor d'aquest paràmetre NoMaxSizeByPHPLimit=Cap limitació interna en el seu servidor PHP @@ -103,7 +104,7 @@ MenuIdParent=Id del menú pare DetailMenuIdParent=IDr del menú pare (buit per a un menú superior) DetailPosition=Número d'ordre per a la posició del menú AllMenus=Tots -NotConfigured=No configurat +NotConfigured=Module/Application not configured Active=Actiu SetupShort=Configuració OtherOptions=Altres opcions @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separador milers Destination=Destinació IdModule=ID del modul IdPermissions=ID de permisos -Modules=Mòduls LanguageBrowserParameter=Variable %s LocalisationDolibarrParameters=Paràmetres de localització ClientTZ=Zona horària client (usuari) @@ -123,7 +123,8 @@ PHPTZ=Zona horària Servidor PHP DaylingSavingTime=Horari d'estiu (usuari) CurrentHour=Hora PHP (servidor) CurrentSessionTimeOut=Timeout sessió actual -YouCanEditPHPTZ=Per definir una zona horària PHP diferent (no és necessari), provi a afegir un arxiu. Htacces amb una línia com aquesta "SetEnvTZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Panell Boxes=Panells MaxNbOfLinesForBoxes=Màxim número de línies per panell @@ -189,11 +190,11 @@ FeatureAvailableOnlyOnStable=Funcionalitat disponible únicament en versions est Rights=Permisos BoxesDesc=Els panells són components que mostren alguna informació que pots afegir per personalitzar algunes pàgines. Pots triar entre mostrar el panell o no seleccionant la pàgina de destí i fent clic a 'Activa', o fent clic al cubell d'escombraries per desactivar. OnlyActiveElementsAreShown=Només els elements de mòduls activats són mostrats -ModulesDesc=Els mòduls Dolibarr defineixen les funcionalitats disponibles en l'aplicació. Alguns mòduls requereixen permisos que hauràs d'indicar, i després habilitar el mòdul. Fes clic en el botó On/off per habilitar un mòdul/funcionalitat. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Pots trobar més mòduls per descarregar en pàgines web externes per internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. +ModulesDeployDesc=Si els permisos en el seu sistema d'arxius ho permiteixen, pot utilitzar aquesta ferramente per instal·lar un mòdul extern. El mòdul estarà aleshores visible en la pestanya %s ModulesMarketPlaces=Busca mòduls externs... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +GoModuleSetupArea=Per instal·lar un nou mòdul, vaja al àrea de configuració de mòduls en %s. DoliStoreDesc=DoliStore, el lloc oficial de mòduls complementaris per Dolibarr ERP / CRM DoliPartnersDesc=Llista d'empreses que proporcionen desenvolupament a mida de mòduls o funcionalitats (Nota: qualsevol empresa amb experiència amb programació PHP pot proporcionar desenvolupament a mida per un projecte de codi obert) WebSiteDesc=Llocs web de referència per trobar més mòduls... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Encriptar la contrasenya de la base en l'arxiu c InstrucToEncodePass=Per tenir la contrasenya encriptada al fitxer conf.php reemplaça la línia
$dolibarr_main_db_pass="...";
per
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Per tenir la contrasenya descodificada en el fitxer de configuració conf.php , reemplaça en aquest fitxer la línia
$dolibarr_main_db_pass="crypted:..."
per
$dolibarr_main_db_pass="%s" ProtectAndEncryptPdfFiles=Protecció i encriptació dels pdf generats -ProtectAndEncryptPdfFilesDesc=La protecció d'un document pdf deixa el document lliure a la lectura ia la impressió a qualsevol lector de PDF. Per contra, la modificació i la còpia resulten impossibles. +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funció DolibarrLicense=Llicència Developpers=Desenvolupadors/col·laboradors @@ -225,6 +226,8 @@ OfficialMarketPlace=Lloc oficial de mòduls complementaris i extensions OfficialWebHostingService=Serveis d'allotjament web (cloud hosting) ReferencedPreferredPartners=Soci preferent OtherResources=Altres recursos +ExternalResources=Recursos externs +SocialNetworks=Xarxes socials ForDocumentationSeeWiki=Per a la documentació d'usuari, desenvolupador o Preguntes Freqüents (FAQ), consulteu el wiki Dolibarr:
%s ForAnswersSeeForum=Per altres qüestions o realitzar les seves pròpies consultes, pot utilitzar el fòrum Dolibarr:
%s HelpCenterDesc1=Aquesta àrea et pot ajudar a obtenir un servei de suport de Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funcionalitat no disponible en sistemes Unix. Proveu SubmitTranslation=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els arxius en el directorilangs/%s i enviant els canvis a www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traducció d'aquest idioma no està completa o trobes errors, pots corregir-ho editant els fitxers en el directorilangs/%s i enviant els fitxers modificats al fòrum de www.dolibarr.es o pels desenvolupadors a github.com/Dolibarr/dolibarr. ModuleSetup=Configuració del mòdul -ModulesSetup=Configuració dels mòduls +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestió client (CRM) ModuleFamilySrm=Gestió de seguiment de proveïdors (SRM) @@ -287,10 +290,10 @@ DoNotUseInProduction=No utilitzar en producció ThisIsProcessToFollow=Aquests són els passos per al procés: ThisIsAlternativeProcessToFollow=Aquesta és una configuració alternativa per processar manualment: StepNb=Pas %s -FindPackageFromWebSite=Cercar el paquet que respon a la seva necessitat (per exemple en el lloc web %s) +FindPackageFromWebSite=Busca el paquet que t'ofereix les característiques que vols (per exemple en la web oficial %s) DownloadPackageFromWebSite=Descarrega el paquet (per exemple del lloc web oficial %s). UnpackPackageInDolibarrRoot=Descomprimeix els fitxers empaquetats en en el directori del servidor dedicat a Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s +UnpackPackageInModulesRoot=Per instal·lar un mòdul extern, descomprimir l'arxiu en el directori del servidor dedicat als mòduls: %s SetupIsReadyForUse=La instal·lació del mòdul ha finalitzat. No obstant, ha d'habilitar i configurar el mòdul en la seva aplicació, aneu a la pàgina per configurar els mòduls: %s. NotExistsDirect=No s'ha definit el directori arrel alternatiu a un directori existent.
InfDirAlt=Des de la versió 3, és possible definir un directori arrel alternatiu. Això li permet emmagatzemar, en un directori dedicat, plug-ins i plantilles personalitzades.
Només ha de crear un directori a l'arrel de Dolibarr (per exemple: custom).
@@ -300,14 +303,17 @@ CurrentVersion=Versió actual de Dolibarr CallUpdatePage=Ves a la pàgina que actualitza l'estructura de base de dades i les dades: %s LastStableVersion=Última versió estable LastActivationDate=Data de l'última activació +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Actualitzacións del servidor fora de línia +WithCounter=Gestiona un comptador GenericMaskCodes=Podeu introduir qualsevol màscara numèrica. En aquesta màscara, pot utilitzar les següents etiquetes:
{000000} correspon a un número que s'incrementa en cadascun %s. Introduïu tants zeros com longuitud desitgi mostrar. El comptador es completarà a partir de zeros per l'esquerra per tal de tenir tants zeros com la màscara.
{000000+000}Igual que l'anterior, amb una compensació corresponent al número a la dreta del signe + s'aplica a partir del primer %s.
{000000@x}igual que l'anterior, però el comptador es restableix a zero quan s'arriba a x mesos (x entre 1 i 12). Si aquesta opció s'utilitza i x és de 2 o superior, llavors la seqüència {yy}{mm} ó {yyyy}{mm} també és necessària.
{dd} dies (01 a 31).
{mm} mes (01 a 12).
{yy} , {yyyy ó {y} any en 2, 4 ó 1 xifra.
-GenericMaskCodes2={cccc} el codi de client de n caràcters
{cccc000} el codi de client en n caràcters és seguit per un comptador dedicat per al client. Aquest comptador dedicat del client es reinicia al mateix temps que el comptador global.
{tttt} El codi de tipus de tercer en n caràcters (veure el diccionari de tipus de tercers).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Qualsevol altre caràcter a la màscara es quedarà sense canvis.
No es permeten espais
-GenericMaskCodes4a=Exemple a la 99ª %s del tercer L'Empresa realitzada el 31/03/2007:
+GenericMaskCodes4a=Exemple en el 99 %s del tercer L'Empresa, amb data 31/01/2007:
GenericMaskCodes4b=Exemple sobre un tercer creat el 31/03/2007:
GenericMaskCodes4c=Exemple en un producte/servei creat el 31/03/2007:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} donarà ABC0703-000099
{0000+100@1}-XXX/{dd}/YYY donarà 0199-XXX/31/YYY +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Retorna un nombre creat d'acord amb una màscara definida. ServerAvailableOnIPOrPort=Servidor disponible a l'adreça %s al port %s ServerNotAvailableOnIPOrPort=Servidor no disponible en l'adreça %s al port %s @@ -369,24 +375,26 @@ Int=Enter Float=Decimal DateAndTime=Data i hora Unique=Unic -Boolean=Boleà (Casella de verificació) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telèfon ExtrafieldPrice = Preu ExtrafieldMail = Correu ExtrafieldUrl = Url ExtrafieldSelect = Llista de selecció ExtrafieldSelectList = Llista de selecció de table -ExtrafieldSeparator=Separador +ExtrafieldSeparator=Separador (no és un camp) ExtrafieldPassword=Contrasenya -ExtrafieldCheckBox=Casella de verificació -ExtrafieldRadio=Botó de selecció excloent -ExtrafieldCheckBoxFromList= Casella de verificació des de taula +ExtrafieldRadio=Botons d'opció (només una opció) +ExtrafieldCheckBox=Caselles de verificació +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Enllaç a un objecte -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=El llistat de paràmetres ha de ser key,valor

per exemple:\\n
1,value1
2,value2
3,value3
...

Per a tindre una llista en funció d'atributs complementaris de llista:\n
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Per a tindre la llista en funció d'altra:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=La llista ha de ser en forma clau, valor

per exemple :
1,text1
2,text2
3,text3
... ExtrafieldParamHelpradio=La llista ha de ser en forma clau, valor

per exemple :
1,text1
2,text2
3,text3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpsellist=Llista de paràmetres prové d'una tabla
Sintaxi: nombre_tabla: etiqueta_field: id_field :: filtro
Exemple: c_typent: libelle: id :: filtre

filtre pot ser una prova simple (per exemple, active=1) per a mostrar sols el valor actiu
També pot utilitzar $ ID $ en el filtro on és el id actual del objecte actual
Per a fer un SELECT en el filtre utilitze $ SEL $
si desitja filtrar en extrafields utilitza la sintaxi extra.fieldcode=... (on el codi del camp és el codi del extrafield)

Per a que la llista depenga d'un altra llista d'atributs complementaris:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Per a que la llista depenga d'un altra llista:
c_typent: libelle: id: parent_list_code | parent_column: filter +ExtrafieldParamHelpchkbxlst=Llista de paràmetres que prové d'una tabla
Sintaxi: nombre_tabla: etiqueta_field: id_field :: filtro
Exemple: c_typent: libelle: id :: filtro

filtro pot ser una prova simple (per exemple, active=1) Per a mostrar sols el valor actiu
Tambié pot utilitzar $ ID $ en el filtre on és el id actual del objeto actual
Per a fer un SELECT en el filtre utilitze $ SEL $
si desitja filtrar en extrafields utilitzar la sintaxi extra.fieldcode=... (on el codi del camp és el codi del extrafield)

Per a que la llista depenga d'un altra llista d'atributs complementaris:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Per a que la llista depenga d'un altra lista:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelplink=Els paràmetres han de ser Nom del Objecte:Url de la Clase
Sintàxi: Nom Object:Url Clase
Exemple: Societe:societe/class/societe.class.php LibraryToBuildPDF=Llibreria utilitzada per generar PDF WarningUsingFPDF=Atenció: El seu arxiu conf.php conté la directiva dolibarr_pdf_force_fpdf=1. Això fa que s'usi la llibreria FPDF per generar els seus arxius PDF. Aquesta llibreria és antiga i no cobreix algunes funcionalitats (Unicode, transparència d'imatges, idiomes ciríl · lics, àrabs o asiàtics, etc.), Pel que pot tenir problemes en la generació dels PDF.
Per resoldre-ho, i disposar d'un suport complet de PDF, pot descarregar la llibreria TCPDF , i a continuació comentar o eliminar la línia $dolibarr_pdf_force_fpdf=1, i afegir al seu lloc $dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF' @@ -422,6 +430,20 @@ Use3StepsApproval=Per defecte, les comandes de compra necessiten ser creades i a UseDoubleApproval=Utilitza una aprovació en 3 passos quan l'import (sense impostos) sigui més gran que... WarningPHPMail=ADVERTÈNCIA: Alguns proveïdors de correu electrònic (com Yahoo) no li permeten enviar un correu electrònic des d'un altre servidor que no sigui el servidor de Yahoo si l'adreça de correu electrònic utilitzada com a remitent és el seu correu correu electrònic de Yahoo (com myemail@yahoo.com, myemail@yahoo.fr, ...). La seva configuració actual utilitza el servidor de l'aplicació per enviar correu electrònic, de manera que alguns destinataris (compatibles amb el protocol restrictiu DMARC) li preguntaran a Yahoo si poden acceptar el seu e-mail i Yahoo respondrà "no" perquè el servidor no és un servidor Propietat de Yahoo, pel que alguns dels seus e-mails enviats poden no ser acceptats.
Si el proveïdor de correu electrònic (com Yahoo) té aquesta restricció, ha de canviar la configuració de correu electrònic per a triar el mètode "servidor SMTP" i introdudir el servidor SMTP i credencials proporcionades pel seu proveïdor de correu electrònic (pregunti al seu proveïdor de correu electrònic les credencials SMTP per al seu compte). ClickToShowDescription=Clica per mostrar la descripció +DependsOn=Aquest mòdul necesita el/s mòdul/s +RequiredBy=Aquest mòdul és requerit pel/s mòdul/s +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Camp +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Usuaris i grups Module0Desc=Gestió d'usuaris / empleats i grups @@ -444,7 +466,7 @@ Module30Desc=Gestió de factures i abonaments de clients. Gestió factures de pr Module40Name=Proveïdors Module40Desc=Gestió de proveïdors Module42Name=Syslog -Module42Desc=Generació de logs (arxius, syslog,...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Gestió d'editors Module50Name=Productes @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Interface amb el calendari webcalendar Module500Name=Pagaments especials Module500Desc=Gestió de despeses especials (impostos varis, dividends) -Module510Name=Contractes d'empleats i salaris -Module510Desc=Gestió dels contractes d'empleats, salaris i pagaments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Préstec Module520Desc=Gestió de préstecs Module600Name=Notificacions @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacitats de conversió GeoIP Maxmind Module3100Name=Skype Module3100Desc=Afegeix un botó d'Skype a les fitxes dels usuaris / tercers / contactes / socis +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=RRHH -Module4000Desc=Gestió de recursos humans +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-empresa Module5000Desc=Permet gestionar diverses empreses Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Crear/modificar productes Permission34=Elimina productes Permission36=Veure/gestionar els productes ocults Permission38=Exportar productes -Permission41=Consulta projectes i tasques (els projectes compartits i els projectes en que sóc el contacte). També pots entrar els temps consumits en tasques asignades (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Crea/modifica projectes (projectes compartits i projectes dels que sóc contacte). També pot crear tasques i assignar usuaris a projectes i tasques Permission44=Elimina projectes (projectes compartits i projectes dels que en sóc contacte) Permission45=Exporta projectes @@ -695,7 +719,7 @@ PermissionAdvanced253=Crear/modificar usuaris interns/externs i els seus permiso Permission254=Crea/modifica només usuaris externs Permission255=Eliminar o desactivar altres usuaris Permission256=Consultar els seus permisos -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Ampliar l'accés a tots els tercers (no sols als tercers dels quals l'usuari és comercial).
No efectiu per a usuaris externs (sempre limitat a ells mateix per a pressupostos, comandes, factures, contractes, etc).
No efectiu per a projectes (sols permisos de visió i asignació dels projectes). Permission271=Consultar el CA Permission272=Consultar les factures Permission273=Emetre les factures @@ -828,7 +852,7 @@ DictionaryCurrency=Monedes DictionaryCivility=Títols personals i professionals DictionaryActions=Tipus d'esdeveniments de l'agenda DictionarySocialContributions=Tipus d'impostos varis -DictionaryVAT=Taxa d'IVA (Impost sobre vendes als EEUU) +DictionaryVAT=Taxa d'IVA o Impost de vendes DictionaryRevenueStamp=Imports de segells fiscals DictionaryPaymentConditions=Condicions de pagament DictionaryPaymentModes=Modes de pagament @@ -842,14 +866,16 @@ DictionaryStaff=Empleats DictionaryAvailability=Temps de lliurament DictionaryOrderMethods=Mètodes de comanda DictionarySource=Orígens de pressupostos/comandes -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Grups comptes contables DictionaryAccountancysystem=Models de plans comptables +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Models d'emails DictionaryUnits=Unitats DictionaryProspectStatus=Estat del client potencial DictionaryHolidayTypes=Tipus de dies lliures DictionaryOpportunityStatus=Estat de l'oportunitat pel projecte/lead SetupSaved=Configuració desada +SetupNotSaved=Configuració no desada BackToModuleList=Retornar llista de mòduls BackToDictionaryList=Tornar a la llista de diccionaris VATManagement=Gestió IVA @@ -921,7 +947,7 @@ Host=Servidor DriverType=Tipus de driver SummarySystem=Resum de la informació de sistemes Dolibarr SummaryConst=Llista de tots els paràmetres de configuració Dolibarr -MenuCompanySetup=Empresa/Entitat +MenuCompanySetup=Empresa/Organització DefaultMenuManager= Gestor del menú estàndard DefaultMenuSmartphoneManager=Gestor de menú smartphone Skin=Tema visual @@ -931,12 +957,14 @@ DefaultMaxSizeList=Longitud màxima per defecte per a les llistes DefaultMaxSizeShortList=Longitud màxima per defecte en llistes curtes (per exemple, en la fitxa de client) MessageOfDay=Missatge del dia MessageLogin=Missatge del login +LoginPage=Pàgina de login +BackgroundImageLogin=Imatge de fons PermanentLeftSearchForm=Zona de recerca permanent del menú de l'esquerra DefaultLanguage=Idioma per defecte a utilitzar (codi d'idioma) EnableMultilangInterface=Activar interface multiidioma EnableShowLogo=Mostra el logotip en el menú de l'esquerra -CompanyInfo=Informació de l'empresa/entitat -CompanyIds=Identificació de l'empresa/entitat +CompanyInfo=Informació de l'empresa/organització +CompanyIds=Identitats de l'empresa/organització CompanyName=Nom/Raó social CompanyAddress=Adreça CompanyZip=Codi postal @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerància de retard abans de l'alerta (en dies) sobr Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerància de retard abans de l'alerta (en dies) sobre xecs a ingressar Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerància de retard (en dies) abans d'alertar d'informes de despeses pendents d'aprovar SetupDescription1=L'àrea de configuració són pels paràmetres de configuració inicials abans de començar a utilitzar Dolibarr. -SetupDescription2=Els 2 passos més importants de la configuració són les 2 primeres opcions del menú esquerre: la pàgina de configuració Empresa/entitat i la pàgina de configuració Mòduls: -SetupDescription3=Els paràmetres en el menú Configuració -> Empresa/entitat són obligatoris ja que la informació entrada s'utilitza per mostrar pantalles de Dolibarr i per modificar el comportament de Dolibarr (per exemple per funcions relacionades amb el país). -SetupDescription4=Els paràmetres en el menú Configuració -> Mòduls són obligatoris ja que Dolibarr no és un ERP/CRM monolític, és un conjunt de mòduls més o menys independent. Per cada nou mòdul que s'activi s'afegiran noves funcionalitats en els menús. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Les altres entrades de configuració gestionen paràmetres opcionals. LogEvents=Auditoria de la seguretat d'esdeveniments Audit=Auditoria @@ -987,7 +1015,7 @@ BrowserOS=S.O. del navegador ListOfSecurityEvents=Llistat d'esdeveniments de seguretat Dolibarr SecurityEventsPurged=Esdeveniments de seguretat purgats LogEventDesc=Podeu habilitar el registre d'esdeveniments de seguretat Dolibarr aquí. Els administradors poden veure el seu contingut a través de menú Eines del sistema->Auditoria. Atenció, aquesta característica pot consumir una gran quantitat de dades a la base de dades. -AreaForAdminOnly=Aquestes funcions només són accessibles a un usuari administrador. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=La informació del sistema és informació tècnica accessible només en només lectura als administradors. SystemAreaForAdminOnly=Aquesta àrea només és accessible als usuaris de tipus administradors. Cap permís Dolibarr permet estendre el cercle de usuaris autoritzats a aquesta áera. CompanyFundationDesc=Edita en aquesta pàgina tota la informació coneguda sobre l'empresa o entitat a administrar (Fes clic al botó "Modificar" o "Desar" a peu de pàgina) @@ -1076,26 +1104,27 @@ TranslationOverwriteDesc=També pot reemplaçar cadenes omplint la taula següen TranslationOverwriteDesc2=Podeu utilitzar un altra pestanya per ajudar a saber quina clau de conversió utilitzar TranslationString=Cadena de traducció CurrentTranslationString=Cadena de traducció actual -WarningAtLeastKeyOrTranslationRequired=Es necessita un criteri de recerca com a mínim per cadena de clau o traducció +WarningAtLeastKeyOrTranslationRequired=Es necessita un criteri de cerca com a mínim per cadena o clau de traducció NewTranslationStringToShow=Nova cadena de traducció a mostrar OriginalValueWas=La traducció original s'ha sobreescrit. El valor original era:

%s -TotalNumberOfActivatedModules=Número total de mòduls activats: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Ha d'activar almenys 1 mòdul. ClassNotFoundIntoPathWarning=No s'ha trobat la classe %s en el seu path PHP YesInSummer=Sí a l'estiu -OnlyFollowingModulesAreOpenedToExternalUsers=Només els següents moduls estan oberts a usuaris externs (segons els permisos de cada usuari) +OnlyFollowingModulesAreOpenedToExternalUsers=Només els següents moduls estan oberts a usuaris externs (segons els permisos de cada usuari) i només si tenen permisos: SuhosinSessionEncrypt=Emmagatzematge de sessions xifrades per Suhosin ConditionIsCurrently=Actualment la condició és %s YouUseBestDriver=Està utilitzant el driver %s, actualment és el millor driver disponible. YouDoNotUseBestDriver=Està utilitzant el driver %s però és recomanat l'ús del driver %s. NbOfProductIsLowerThanNoPb=Té %s productes/serveis a la base de dades. No és necessària cap optimització en particular. -SearchOptim=Cercar optimització +SearchOptim=Cerca optimització YouHaveXProductUseSearchOptim=Té %s productes a la base de dades. Hauria afegir la constant PRODUCT_DONOTSEARCH_ANYWHERE a 1 a Inici-Configuració-Varis, limitant la cerca al principi de la cadena que fa possible que la base de dades usi l'índex i s'obtingui una resposta immediata. BrowserIsOK=Utilitza el navegador web %s. Aquest navegador està optimitzat per a la seguretat i el rendiment. BrowserIsKO=Utilitza el navegador web %s. Aquest navegador és una mala opció per a la seguretat, rendiment i fiabilitat. Aconsellem fer servir Firefox, Chrome, Opera o Safari. XDebugInstalled=XDebug està carregat. XCacheInstalled=XCache cau està carregat. -AddRefInList=Mostra codi de client/proveïdor en el llistat (i selectors) i enllaços. Els tercers apareixeran amb el nom "CC12345 - SC45678 - The big comany coorp", en comptes de "The big comany coorp". +AddRefInList=Mostra el codi de client/proveïdor en llistats (selectors o combobox) i en la majoria d'enllaços. Els tercers apareixeran amb el nom "CC12345 - SC45678 - The big company coorp", en comptes de "The big company coorp". AskForPreferredShippingMethod=Pregunta pel mètode d'enviament preferit pels tercers. FieldEdition=Edició del camp %s FillThisOnlyIfRequired=Exemple: +2 (Completi només si es registre una desviació del temps en l'exportació) @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Règles sobre els ID professionals MustBeUnique=Ha de ser únic? MustBeMandatory=Obligatori per a crear tercers? MustBeInvoiceMandatory=Obligatori per validar factures? +TechnicalServicesProvided=Prestació de serveis tècnics ##### Webcal setup ##### WebCalUrlForVCalExport=Un vincle d'exportació del calendari en format %s estarà disponible a la url: %s ##### Invoices ##### BillsSetup=Configuració del mòdul Factures BillsNumberingModule=Mòdul de numeració de factures i abonaments BillsPDFModules=Models de documents de factures +PaymentsPDFModules=Payment documents models CreditNote=Abonament CreditNotes=Abonaments ForceInvoiceDate=Forçar la data de factura a la data de validació @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Fitxers de tipus %s no s'emmagatzemen en memòria cau pel s FilesOfTypeCompressed=Fitxers de tipus %s són comprimits pel servidor HTTP FilesOfTypeNotCompressed=Fitxers de tipus %s no són comprimits pel servidor HTTP CacheByServer=Memòria cau amb el servidor +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Memòria cau del navegador CompressionOfResources=Compressió de les respostes HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=La detecció automàtica no és possible amb els navegadors actuals +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Valors per defecte pels nous objectes +DefaultSearchFilters=Filtres de cerca per defecte +DefaultSortOrder=Tipus d'ordenació per defecte +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Configuració del mòdul Productes ServiceSetup=Configuració del mòdul Serveis @@ -1397,7 +1435,7 @@ SendingsSetup=Configuració del mòdul Expedicions SendingsReceiptModel=Model de rebut de lliurament SendingsNumberingModules=Mòduls de numeració de notes de lliurament SendingsAbility=Suport en fulles d'expedició per entregues de clients -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=En la majoria dels casos, les notes d'entrega (llista de productes enviats) també actua com a nota de recepció i son firmades per el client. La gestió de les notes de recepció és per tant redundant i rara vegada s'activarà. FreeLegalTextOnShippings=Text lliure en els enviaments ##### Deliveries ##### DeliveryOrderNumberingModules=Mòdul de numeració de rebut de lliuraments de productes @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Data de factura utilitzada Buy=Compra Sell=Venda InvoiceDateUsed=Data utilitzada de factura -YourCompanyDoesNotUseVAT=L'empresa s'ha configurat com no subjecta a l'IVA (Inici - Configuració - Empresa/Entitat), per la qual cosa no hi ha opció per a la configuració de l'IVA. +YourCompanyDoesNotUseVAT=L'empresa s'ha configurat com a no subjecta a IVA (Inici - Configuració - Empresa/Organització), per tant no hi ha opcions per configurar l'IVA. AccountancyCode=Codi comptable AccountancyCodeSell=Codi comptable vendes AccountancyCodeBuy=Codi comptable compres @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Establir per defecte aquest estat de esdeveniments AGENDA_DEFAULT_VIEW=Establir la pestanya per defecte al seleccionar el menú Agenda AGENDA_NOTIFICATION=Activa la notificació de events en els navegadors dels usuaris quan s'arriba a la data de l'esdeveniment (cada usuari és capaç de rebutjar-ho des de la pregunta de confirmació del navegador) AGENDA_NOTIFICATION_SOUND=Habilita les notificacions sonores +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Configuració del mòdul Click To Dial -ClickToDialUrlDesc=Url executada quan es fa clic en un picto de telèfon. En la URL pots utilitzar etiquetes
__PHONETO__ que seran substituides amb el número de telèfon de la persona a trucar
__PHONEFROM__ que serà substituit pel número de telèfon de la persona que truca (el teu)
__LOGIN__ que serà substituit amb el teu usuari de clicktodial (definit en la teva fitxa d'usuari)
__PASS__ que serà substituit amb el teu password de clicktodial (definit en la teva fitxa d'usuari). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Aquest mòdul permet afegir una icona després del número de telèfon de contactes Dolibarr. Un clic en aquesta icona, truca a un servidor amb un URL que s'indica a continuació. Això pot ser usat per anomenar al sistema centre de Dolibarr que pot trucar al número de telèfon en un sistema SIP, per exemple. ClickToDialUseTelLink=Utilitzar sols l'enllaç "tel:" als números de telèfon ClickToDialUseTelLinkDesc=Utilitza aquest mètode si els teus usuaris tenen un softphone o una interfície de software instal·lat en el mateix ordinador del navegador, i et truca quan fas clic en un enllaç del navegador que comença amb "tel:". Si necessites una solució amb un servidor complet (sense necessitat de instal·lació de programari en local), hauries de posar "No" i omplir el següent camp. @@ -1509,11 +1548,11 @@ EndPointIs=Els clients SOAP hauran d'enviar les seves solicituds al punt final e ##### API #### ApiSetup=Configuració del mòdul API ApiDesc=Habilitant aquest mòdul, Dolibarr serà un servidor REST per oferir varis serveis web. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Pots explorar les API en la url +ApiProductionMode=Activar el mode producció (actvarà l'ús de cachés per a la gestió dels servicis) +ApiExporerIs=Pots explorar i provar les API en la URL OnlyActiveElementsAreExposed=Només s'exposen els elements de mòduls habilitats ApiKey=Clau per l'API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +WarningAPIExplorerDisabled=S'ha deshabilitat l'explorador de API. No és necessari API Explorer per a proporcionar serveis API. És una ferramenta per a que el desenvolupador trobe/probe API REST. Si necessita aquesta ferramenta, vaja a la configuració del mòdul API REST per activar-la. ##### Bank ##### BankSetupModule=Configuració del mòdul Banc FreeLegalTextOnChequeReceipts=Text complementari en remeses de xecs @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Ordre de visualització general BankOrderES=Espanyol BankOrderESDesc=Ordre de visualització espanyol ChequeReceiptsNumberingModule=Mòdul de numeració de rebut de xec - ##### Multicompany ##### MultiCompanySetup=Configuració del mòdul Multi-empresa ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Asistent per crear una copia de seguretat de la base de dades SomethingMakeInstallFromWebNotPossible=No és possible la instal·lació de mòduls externs des de la interfície web per la següent raó: SomethingMakeInstallFromWebNotPossible2=Per aquesta raó, explicarem aquí els passos del procés d'actualització manual que pot realitzar un usuari amb privilegis InstallModuleFromWebHasBeenDisabledByFile=La instal·lació de mòduls externs des de l'aplicació es troba desactivada per l'administrador. Ha de requerir que elimini l'arxiu %s per habilitar aquesta funció -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Remarca línies de la taula quan el ratolí passi per sobre HighlightLinesColor=Remarca el color de la línia quan el ratolí hi passa per sobre (deixa-ho buit per a no remarcar) TextTitleColor=Color de títol de pàgina LinkColor=Color dels enllaços -PressF5AfterChangingThis=Prem la tecla F5 o neteja la memòria del navegador un cop has canviat aquest valor per a tenir-ho disponible +PressF5AfterChangingThis=Prem CTRL+F5 en el teclat o neteja la memòria cau del navegador després de canviar aquest valor per fer-ho efectiu NotSupportedByAllThemes=Funcionarà amb els temes del nucli, però pot no estar suportat per temes externs BackgroundColor=Color de fons TopMenuBackgroundColor=Color de fons pel menú superior @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Període mínim de notificació (La solicitud de dia lliure NbAddedAutomatically=Número de dies afegits en comptadors d'usuaris (automàticament) cada mes EnterAnyCode=Aquest camp conté una referència a un identificador de línia. Introdueix qualsevol valor però sense caràcters especials. UnicodeCurrency=Introduïu aquí entre claus, la llista de nombre de bytes que representen el símbol de moneda. Per Exemple: per $, introdueix [36] - per als reals de Brasil R$ [82,36] - per € , introdueix [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Posició de la línia en llistes combo SellTaxRate=Valor de l'IVA RecuperableOnly=Sí per l'IVA "Non Perçue Récupérable" dedicat a algun estat a França. Mantingui el valor a "No" en els altres casos. @@ -1612,7 +1651,7 @@ FixTZ=Fixar zona horaria FillFixTZOnlyIfRequired=Exemple: +2 (omple'l només si tens problemes) ExpectedChecksum=Checksum esperat CurrentChecksum=Checksum actual -ForcedConstants=Required constant values +ForcedConstants=Valors de constants requerits MailToSendProposal=Enviar pressupost de client MailToSendOrder=Enviar comanda de client MailToSendInvoice=Enviar factura de client @@ -1621,7 +1660,7 @@ MailToSendIntervention=Enviar intervenció MailToSendSupplierRequestForQuotation=Enviar pressupost de proveïdor MailToSendSupplierOrder=Enviar comanda de proveïdor MailToSendSupplierInvoice=Enviar factura de proveïdor -MailToSendContract=To send a contract +MailToSendContract=Per a enviar un contracte MailToThirdparty=Per enviar correu electrònic des de la pàgina del tercer ByDefaultInList=Mostra per defecte en la vista del llistat YouUseLastStableVersion=Estàs utilitzant l'última versió estable @@ -1658,8 +1697,12 @@ SamePriceAlsoForSharedCompanies=Si utilitzes el mòdul Multiempresa, amb l'elecc ModuleEnabledAdminMustCheckRights=S'ha activat el mòdul. Els permisos per als mòdul(s) activats es donen només als usuaris administradors. Podria ser necessari concedir permisos a altres usuaris o grups de forma manual si és necessari. UserHasNoPermissions=Aquest usuari no té permisos definits TypeCdr=Utilitze "Cap" si la data de termini de pagament és la data de la factura més un delta en dies (delta és el camp "Nº de dies")
Utilitze "A final de mes", si, després del delta, la data ha d'aumentar-se per arribar a final de mes (+ "Offset" opcional en dies)
Utilitze "Actual/Següent" per tindre la data de termini de pagament sent el primer N de cada mes (N es guarda en el camp "Nº de dies") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuració del mòdul Recurs -UseSearchToSelectResource=Utilitzar un formulari de recerca per a seleccionar un recurs (millor que una llista desplegable) +UseSearchToSelectResource=Utilitza un formulari de cerca per a seleccionar un recurs (millor que una llista desplegable) DisabledResourceLinkUser=Recurs d'enllaç a usuari deshabilitat DisabledResourceLinkContact=Recurs d'enllaç a contacte deshabilitat diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index 967b252e9de..0e2f931a2dc 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Factura %s eliminada InvoicePaidInDolibarr=Factura %s passada a pagada InvoiceCanceledInDolibarr=Factura %s cancel·lada MemberValidatedInDolibarr=Soci %s validat +MemberModifiedInDolibarr=Soci %s modificat MemberResiliatedInDolibarr=Membre %s acabat MemberDeletedInDolibarr=Soci %s eliminat MemberSubscriptionAddedInDolibarr=Subscripció del soci %s afegida ShipmentValidatedInDolibarr=Expedició %s validada -ShipmentClassifyClosedInDolibarr=Entrega %s classificada com a facturada -ShipmentUnClassifyCloseddInDolibarr=Entrega %s classificada com a reoberta +ShipmentClassifyClosedInDolibarr=Expedició %s classificada com a facturada +ShipmentUnClassifyCloseddInDolibarr=Expedició %s classificada com a reoberta ShipmentDeletedInDolibarr=Expedició %s eliminada OrderCreatedInDolibarr=Comanda %s creada OrderValidatedInDolibarr=Comanda %s validada @@ -75,6 +76,7 @@ ProposalDeleted=Pressupost esborrat OrderDeleted=Comanda esborrada InvoiceDeleted=Factura esborrada ##### End agenda events ##### +AgendaModelModule=Plantilles de documents per esdeveniments DateActionStart=Data d'inici DateActionEnd=Data finalització AgendaUrlOptions1=Podeu també afegir aquests paràmetres al filtre de sortida: diff --git a/htdocs/langs/ca_ES/compta.lang b/htdocs/langs/ca_ES/compta.lang index b3932e98e5e..6e3a8ecbd22 100644 --- a/htdocs/langs/ca_ES/compta.lang +++ b/htdocs/langs/ca_ES/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Els imports obtinguts es calculen segons Param=Configuració RemainingAmountPayment=Import restant del pagament : Account=Compte -Accountparent=Arrel del compte -Accountsparent=Arrel dels comptes +Accountparent=Compte pare +Accountsparent=Comptes pare Income=Ingressos Outcome=Despeses ReportInOut=Resultat / Exercici @@ -56,6 +56,7 @@ MenuTaxAndDividends=Impostos i càrregues MenuSocialContributions=Impostos varis MenuNewSocialContribution=Nou impost varis NewSocialContribution=Nou impost varis +AddSocialContribution=Afegeix un impost varis ContributionsToPay=Impostos varis a pagar AccountancyTreasuryArea=Àrea comptabilitat/tresoreria NewPayment=Nou pagament @@ -82,7 +83,7 @@ LT2PaymentES=Pagament IRPF LT2PaymentsES=Pagaments IRPF VATPayment=Pagament d'impost de vendes VATPayments=Pagaments d'impost de vendes -VATRefund=Sales tax refund +VATRefund=Devolució IVA Refund=Devolució SocialContributionsPayments=Pagaments d'impostos varis ShowVatPayment=Veure pagaments IVA @@ -169,7 +170,7 @@ DescSellsJournal=Diari de vendes DescPurchasesJournal=Diari de compres InvoiceRef=Ref. factura CodeNotDef=No definit -WarningDepositsNotIncluded=Les factures de bestreta encara no estan incloses en aquesta versió en el mòdul de comptabilitat. +WarningDepositsNotIncluded=Les factures de bestreta no estan incloses en aquesta versió amb aquest mòdul de comptabilitat. DatePaymentTermCantBeLowerThanObjectDate=La data límit de pagament no pot ser inferior a la data de l'objecte Pcg_version=Models de pla de comptes Pcg_type=Tipus de compte @@ -189,8 +190,10 @@ AccountancyJournal=Codi comptable diari ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable per defecte per a IVA repercutit - IVA a les vendes (utilitzat si no ha estat definit al diccionari de IVA) ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable per defecte per a IVA suportat - IVA a les compres (utilitzat si no ha estat definit al diccionari de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable per defecte per IVA pagat -ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable per defecte per a clients (utilitzat si no definit a la fitxa de tercers) -ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable per defecte per a proveïdor (utilitzat si no definit a la fitxa de tercers) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Duplica un impost varis ConfirmCloneTax=Confirma la duplicació del pagament de l'impost varis CloneTaxForNextMonth=Clonar-la pel pròxim mes @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Impostos varis ImportDataset_tax_vat=Pagaments IVA ErrorBankAccountNotFound=Error: no s'ha trobat el compte bancari FiscalPeriod=Període comptable +ListSocialContributionAssociatedProject=Llista de contribucions socials associades al projecte diff --git a/htdocs/langs/ca_ES/contracts.lang b/htdocs/langs/ca_ES/contracts.lang index bc110b7a58a..087193d0acb 100644 --- a/htdocs/langs/ca_ES/contracts.lang +++ b/htdocs/langs/ca_ES/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Aquest llistat només conté els serveis de contra StandardContractsTemplate=Plantilla de contracte Standard ContactNameAndSignature=Per %s, nom i signatura: OnlyLinesWithTypeServiceAreUsed=Només les línies amb tipus "Servei" seran clonades. +CloneContract=Clona el contracte +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Agent comercial signant del contracte diff --git a/htdocs/langs/ca_ES/cron.lang b/htdocs/langs/ca_ES/cron.lang index bf086981b51..64a2f019ae2 100644 --- a/htdocs/langs/ca_ES/cron.lang +++ b/htdocs/langs/ca_ES/cron.lang @@ -25,7 +25,7 @@ CronDelete=Elimina les tasques programades CronConfirmDelete=Vols eliminar aquests treballs programats? CronExecute=Llança la tasca programada CronConfirmExecute=Esteu segur que voleu executar aquestes tasques programades ara? -CronInfo=Tasques programades li permet executar tasques que han sigut programades +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Tasca CronNone=Ningún CronDtStart=No abans @@ -35,7 +35,7 @@ CronDtLastLaunch=Data d'inici de l'última execució CronDtLastResult=Data del final de l'última execució CronFrequency=Freqüència CronClass=Classe -CronMethod=Mètod +CronMethod=Mètode CronModule=Mòdul CronNoJobs=Sense treballs actualment CronPriority=Prioritat @@ -57,12 +57,12 @@ CronStatusActiveBtn=Activar CronStatusInactiveBtn=Desactivar CronTaskInactive=Aquesta tasca es troba desactivada CronId=Id -CronClassFile=Classe (arxiu) -CronModuleHelp=Nombre del directorio del módulo Dolibarr (funciona automáticamente con los módulos externos Dolibarr).
Por ejemplo para llamar al método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del módulo es product -CronClassFileHelp=El archivo archivo que contiene el objeto.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor de la clase es product.class.php -CronObjectHelp=El nombre del objeto a crear.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del objeto es Product -CronMethodHelp=El método a lanzar.
Por ejemplo para llamar el método fetch del objeto Product de Dolibarr /htdocs/product/class/product.class.php, el valor del método es fecth -CronArgsHelp=Los argumentos del método.
Por ejemplo para usar el método fetch del objeto Product deDolibarr /htdocs/product/class/product.class.php, el valor del parámetro podría ser 0, RefProduit +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=El comando del sistema a executar CronCreateJob=Crear nova tasca programada CronFrom=De @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Ves a menú "Inici - Utilitats de sistema - Tasq JobDisabled=Tasca desactivada MakeLocalDatabaseDumpShort=Còpia de seguretat de la base de dades local MakeLocalDatabaseDump=Crea un bolcat de base de dades local -WarningCronDelayed=Atenció, per motius de rendiment, qualsevol tasca activa prevista per la propera execució, es pot retardar fins a un màxim de %s hores abans de començar a executar-se. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index e9bdf1d8183..3d5fa68b252 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -11,13 +11,15 @@ ErrorLoginAlreadyExists=El login %s ja existeix. ErrorGroupAlreadyExists=El grup %s ja existeix. ErrorRecordNotFound=Registre no trobat ErrorFailToCopyFile=Error al copiar l'arxiu '%s' a '%s'. -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToCopyDir=Error al copiar el directori '%s' en '%s'. ErrorFailToRenameFile=Error al renomenar l'arxiu '%s' a '%s'. ErrorFailToDeleteFile=Error al suprimir el fitxer '%s'. ErrorFailToCreateFile=Error al crear l'arxiu '%s' ErrorFailToRenameDir=Error al renomenar la carpeta '%s' a '%s'. ErrorFailToCreateDir=Error al crear la carpeta '%s' ErrorFailToDeleteDir=Error en eliminar la carpeta '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Aquest contacte ja està definit com a contacte per a aquest tipus. ErrorCashAccountAcceptsOnlyCashMoney=Aquesta compte bancari és de tipus caixa i només accepta el mètode de pagament de tipus espècie. ErrorFromToAccountsMustDiffers=El compte origen i destinació han de ser diferents. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=No es pot escriure a la carpeta %s ErrorFoundBadEmailInFile=Trobada sintaxi incorrecta en email a %s línies en fitxer (exemple linia %s amb email=%s) ErrorUserCannotBeDelete=No es pot eliminar l'usuari. És possible que estigui relacionat amb entitats de Dolibarr. ErrorFieldsRequired=No s'han indicat alguns camps obligatoris +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Error en la creació d'una carpeta. Comprovi que l'usuari del servidor web té drets d'escriptura en les carpetes de documents de Dolibarr. Si el paràmetre safe_mode està actiu en aquest PHP, Comproveu que els fitxers php dolibarr pertanyen a l'usuari del servidor web. ErrorNoMailDefinedForThisUser=E-Mail no definit per a aquest usuari ErrorFeatureNeedJavascript=Aquesta funcionalitat requereix javascript actiu per funcionar. Modifiqueu en configuració->entorn. @@ -114,9 +117,9 @@ ErrorQtyForCustomerInvoiceCantBeNegative=La quantitat a les línies de factures ErrorWebServerUserHasNotPermission=El compte d'execució del servidor web %s no disposa dels permisos per això ErrorNoActivatedBarcode=No hi ha activat cap tipus de codi de barres ErrUnzipFails=No s'ha pogut descomprimir el fitxer %s amb ZipArchive -ErrNoZipEngine=En aquest PHP no hi ha motor per descomprimir l'arxiu %s +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=El fitxer %s ha de ser un paquet Dolibarr en format zip -ErrorModuleFileRequired=You must select a Dolibarr module package file +ErrorModuleFileRequired=Ha de seleccionar un arxiu del paquet del mòdul de Dolibarr ErrorPhpCurlNotInstalled=L'extensió PHP CURL no es troba instal·lada, és indispensable per dialogar amb Paypal. ErrorFailedToAddToMailmanList=S'ha produït un error en intentar afegir un registre a la llista Mailman o base de dades SPIP ErrorFailedToRemoveToMailmanList=Error en l'eliminació de %s de la llista Mailmain %s o base SPIP @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Sense variable global seleccionada ErrorFieldMustBeANumeric=El camp %s ha de ser un valor numèric ErrorMandatoryParametersNotProvided=Paràmetre/s obligatori/s no definits ErrorOppStatusRequiredIfAmount=S'estableix una quantitat estimada per aquesta oportunitat/prospecte. Així que també has d'introduir el seu estat +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definició incorrecta del menú Array en el descriptor del mòdul (valor incorrecte per a la clau fk_menu) ErrorSavingChanges=Hi ha hagut un error al salvar els canvis ErrorWarehouseRequiredIntoShipmentLine=El magatzem és obligatori en la línia a enviar @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=No hi ha suficient estoc del product ErrorStockIsNotEnoughToAddProductOnProposal=No hi ha suficient estoc del producte %s per afegir-ho en un nou pressupost ErrorFailedToLoadLoginFileForMode=No s'ha pogut obtenir la clau d'inici de sessió pel mode '%s'. ErrorModuleNotFound=No s'ha trobat el fitxer del mòdul. -ErrorFieldAccountNotDefinedForBankLine=Valor pel compte comptable no definit per la línia del banc d'origen %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, el nom del comunicat del banc deu de seguir la regla de sintaxis %s ErrorPhpMailDelivery=Comproveu que no faci servir un nombre massa alt de destinataris i que el seu contingut de correu electrònic no sigui similar a un Spam. Demani també al seu administrador que verifiqui el tallafocs i els arxius dels registres del servidor per obtenir una informació més completa. ErrorUserNotAssignedToTask=L'usuari ha d'estar assignat a la tasca per poder introduir el temps consumit. ErrorTaskAlreadyAssigned=La tasca també està assignada a l'usuari -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorModuleFileSeemsToHaveAWrongFormat=Pareix que el mòdul té un format incorrecte. +ErrorFilenameDosNotMatchDolibarrPackageRules=El nom de l'arxiu del mòdul (%s) no coincideix amb la sintaxi del nom esperat: %s +ErrorDuplicateTrigger=Error, nom de disparador %s duplicat. Ja es troba carregat des de %s. +ErrorNoWarehouseDefined=Error, no hi ha magatzems definits. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=S'ha indicat una contrasenya per aquest soci. En canvi, no s'ha creat cap compte d'usuari, de manera que aquesta contrasenya s'ha desat però no pot ser utilitzada per entrar a Dolibarr. Es pot utilitzar per un mòdul/interfície extern, però si no cal definir cap usuari i contrasenya per un soci, pots deshabilitar la opció "Gestiona l'entrada per tots els socis" des de la configuració del mòdul Socis. Si necessites gestionar una entrada sense contrasenya, pots mantenir aquest camp buit i permetre aquest avís. Nota: El correu electrònic es pot utilitzar per entrar si el soci està enllaçat a un usuarí @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=La data de pagament (%s) és anterior a l WarningTooManyDataPleaseUseMoreFilters=Massa dades (més de %s línies). Utilitza més filtres o indica la constant %s amb un límit superior. WarningSomeLinesWithNullHourlyRate=Algunes vegades es van registrar per alguns usuaris quan no s'havia definit el seu preu per hora. Es va utilitzar un valor de 0 %s per hora, però això pot resultar una valoració incorrecta del temps dedicat. WarningYourLoginWasModifiedPleaseLogin=El teu login s'ha modificat. Per seguretat has de fer login amb el nou login abans de la següent acció. +WarningAnEntryAlreadyExistForTransKey=Ja existeix una entrada per la clau de traducció d'aquest idioma diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index fe83f52309b..77f929e7d0d 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parámetre %s no definit ErrorUnknown=Error desconegut ErrorSQL=Error de SQL ErrorLogoFileNotFound=El arxiu logo '%s' no es troba -ErrorGoToGlobalSetup=Ves a la configuració 'Empresa/Entitat' per corregir-ho +ErrorGoToGlobalSetup=Ves a la configuració 'Empresa/Organització' per corregir-ho ErrorGoToModuleSetup=Ves a la configuració del mòdul per corregir-ho ErrorFailedToSendMail=Error en l'enviament de l'e-mail (emissor =%s, destinatairo =%s) ErrorFileNotUploaded=El fitxer no s'ha pogut transferir @@ -153,6 +153,7 @@ Edit=Editar Validate=Validar ValidateAndApprove=Validar i aprovar ToValidate=A validar +NotValidated=No validat Save=Desa SaveAs=Desa com TestConnection=Provar la connexió @@ -166,8 +167,8 @@ CopyOf=Còpia de Show=Veure Hide=Ocult ShowCardHere=Veure la fitxa aquí -Search=Cercar -SearchOf=Cerca de +Search=Cerca +SearchOf=Cerca Valid=Validar Approve=Aprovar Disapprove=Desaprovar @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No s'ha pogut desconnectar amb el mètode de autenti Connection=Connexió Setup=Configuració Alert=Alerta +MenuWarnings=Alertes Previous=Anterior Next=Següent Cards=Fitxes @@ -308,6 +310,7 @@ Copy=Copiar Paste=Pegar Default=Defecte DefaultValue=Valor per defecte +DefaultValues=Valors per defecte Price=Preu UnitPrice=Preu unitari UnitPriceHT=Preu base @@ -321,7 +324,7 @@ AmountInvoice=Import factura AmountPayment=Import pagament AmountHTShort=Base imp. AmountTTCShort=Import -AmountHT=Base imponible +AmountHT=Base imposable AmountTTC=Import total AmountVAT=Import IVA MulticurrencyAlreadyPaid=Ja pagat, moneda original @@ -343,7 +346,7 @@ SubTotal=Subtotal TotalHTShort=Import TotalHTShortCurrency=Import (en divisa) TotalTTCShort=Total -TotalHT=Base imponible +TotalHT=Base imposable TotalHTforthispage=Base imposable a la pagina Totalforthispage=Total per aquesta pàgina TotalTTC=Total @@ -363,7 +366,8 @@ VATRate=Taxa IVA Average=Mitja Sum=Suma Delta=Diferència -Module=Mòdul +Module=Module/Application +Modules=Modules/Applications Option=Opció List=Llistat FullList=Llista completa @@ -387,7 +391,7 @@ ActionRunningNotStarted=No començat ActionRunningShort=En progrés ActionDoneShort=Acabat ActionUncomplete=Incomplet -CompanyFoundation=Empresa/Entitat +CompanyFoundation=Empresa/Organització ContactsForCompany=Contactes d'aquest tercer ContactsAddressesForCompany=Contactes/adreces d'aquest tercer AddressesForCompany=Adreces d'aquest tercer @@ -405,8 +409,9 @@ Generate=Generar Duration=Duració TotalDuration=Duració total Summary=Resum -DolibarrStateBoard=Estadístiques -DolibarrWorkBoard=Indicadors de treball +DolibarrStateBoard=Estadístiques de base de dades +DolibarrWorkBoard=Taula de control de indicadors oberts +NoOpenedElementToProcess=No opened element to process Available=Disponible NotYetAvailable=Encara no disponible NotAvailable=No disponible @@ -434,7 +439,7 @@ Reportings=Informes Draft=Esborrany Drafts=Esborranys Validated=Validat -Opened=Obert +Opened=Actiu New=Nou Discount=Descompte Unknown=Desconegut @@ -453,6 +458,7 @@ NextStep=Següent pas Datas=Dades None=Res NoneF=Ninguna +NoneOrSeveral=Cap o diversos Late=Retard LateDesc=El retard que defineix si un registre arriba tard o no depèn de la configuració. Pregunti al seu administrador per canviar de retard des del menú Inici - Configuració - Alertes. Photo=Foto @@ -606,7 +612,8 @@ PartialWoman=Parcial TotalWoman=Total NeverReceived=Mai rebut Canceled=Anul·lada -YouCanChangeValuesForThisListFromDictionarySetup=Pot canviar aquestos valors al menú configuració->diccionaris +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Pots indicar el valor per defecte utilitzat en la creació de nous registres en el mòdul de configuració Color=Color Documents=Documents @@ -642,6 +649,7 @@ FreeLineOfType=Tipus de zona lliure CloneMainAttributes=Clonar l'objecte amb aquests atributs principals PDFMerge=Fussió PDF Merge=Fussió +DocumentModelStandardPDF=Plantilla PDF estàndard PrintContentArea=Mostrar pàgina d'impressió de la zona central MenuManager=Gestor de menú WarningYouAreInMaintenanceMode=Atenció, està en mode manteniment, així que només el login %s està autoritzat per utilitzar l'aplicació en aquest moment. @@ -708,6 +716,7 @@ from=de toward=cap a Access=Accés SelectAction=Selecciona acció +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Utilitzeu Ctrl+C per copiar al portapapers SaveUploadedFileWithMask=Desa el fitxer al servidor amb el nom "%s" (del contrari "%s") OriginFileName=Nom original de l'arxiu @@ -718,7 +727,7 @@ ViewPrivateNote=Veure notes XMoreLines=%s línia(es) oculta(es) PublicUrl=URL pública AddBox=Afegir quadre -SelectElementAndClickRefresh=Seleccioneu un element i feu clic a Actualitza +SelectElementAndClick=Select an element and click %s PrintFile=%s arxius a imprimir ShowTransaction=Mostra la transacció en el compte bancari GoIntoSetupToChangeLogo=Ves a Inici - Configuració - Empresa per canviar el logo o ves a Inici - Configuració - Entorn per ocultar-lo. @@ -734,8 +743,8 @@ Hello=Hola Sincerely=Sincerament DeleteLine=Elimina la línia ConfirmDeleteLine=Esteu segur de voler eliminar aquesta línia ? -NoPDFAvailableForDocGenAmongChecked=No hi havia PDF disponibles per la generació de document entre els registres validats. -TooManyRecordForMassAction=S'ha seleccionat massa registres per a l'acció massiva. L'acció està restringida a una llista de %s registres. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No s'han seleccionat registres MassFilesArea=Àrea de fitxers generats per accions massives ShowTempMassFilesArea=Mostra l'àrea de fitxers generats per accions massives @@ -755,11 +764,20 @@ Calendar=Calendari GroupBy=Agrupat per... ViewFlatList=Veure llista plana RemoveString=Eliminar cadena '%s' -SomeTranslationAreUncomplete=Alguns idiomes poden estar traduïts parcialment o poden tenir errors. Si detectes alguns, pots arreglar els arxius d'idiomes registrant-te a http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Enllaç de descàrrega directa Download=Descarrega ActualizeCurrency=Actualitza el canvi de divisa Fiscalyear=Any fiscal +ModuleBuilder=Creador de mòdul +SetMultiCurrencyCode=Set currency +BulkActions=Accions massives +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Calculat automàticament +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Dilluns Tuesday=Dimarts @@ -796,7 +814,7 @@ Select2NotFound=No s'han trobat resultats Select2Enter=Entrar Select2MoreCharacter=o més caràcter Select2MoreCharacters=o més caràcters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
+Select2MoreCharactersMore=Sintaxi de búsqueda:
| OR (a|b)
* Qualsevol caracter (a*b)
^Començar amb (^ab)
$Acabar amb (ab$)
Select2LoadingMoreResults=Carregant més resultats Select2SearchInProgress=Busqueda en progrés... SearchIntoThirdparties=Tercers @@ -817,5 +835,3 @@ SearchIntoContracts=Contractes SearchIntoCustomerShipments=Enviaments de client SearchIntoExpenseReports=Informes de despeses SearchIntoLeaves=Dies lliures - -BulkActions=Bulk actions diff --git a/htdocs/langs/ca_ES/members.lang b/htdocs/langs/ca_ES/members.lang index 9a439f4b0c8..fddf6160b79 100644 --- a/htdocs/langs/ca_ES/members.lang +++ b/htdocs/langs/ca_ES/members.lang @@ -7,7 +7,7 @@ Members=Socis ShowMember=Mostra la fitxa de soci UserNotLinkedToMember=Usuari no enllaçat a un soci ThirdpartyNotLinkedToMember=Tercer no enllaçat a un soci -MembersTickets=Tiquets de socis +MembersTickets=Etiquetes de socis FundationMembers=Socis de l'entitat ListOfValidatedPublicMembers=Llistat de socis públics validats ErrorThisMemberIsNotPublic=Aquest soci no és públic @@ -47,7 +47,7 @@ MemberStatusActive=Validat (en espera d'afiliació) MemberStatusActiveShort=Validat MemberStatusActiveLate=Afiliació no al dia MemberStatusActiveLateShort=No al dia -MemberStatusPaid=Afiliació al dia +MemberStatusPaid=Afiliacions al dia MemberStatusPaidShort=Al dia MemberStatusResiliated=Soci donat de baixa MemberStatusResiliatedShort=Baixa @@ -90,6 +90,7 @@ PublicMemberList=Llistat públic de socis BlankSubscriptionForm=Formulari públic d'auto-inscripció BlankSubscriptionFormDesc=Dolibarr pot proporcionar una URL de pàgina pública perquè els visitants externs demanin afiliar-se. Si es troba actiu un mòdul de pagament en línia, es proposarà automàticament un formulari de pagament. EnablePublicSubscriptionForm=Activar el formulari públic d'auto-inscripció +ForceMemberType=Força el tipus de soci ExportDataset_member_1=Socis i quotes ImportDataset_member_1=Socis LastMembersModified=Últims %s socis modificats @@ -135,7 +136,7 @@ LinkToGeneratedPagesDesc=Aquesta pantalla li permet generar fitxers PDF amb els DocForAllMembersCards=Generació de targetes per a tots els socis DocForOneMemberCards=Generació de targetes per a un soci en particular DocForLabels=Generació d'etiquetes d'adreces (Format de plantilla configurat actualment: %s) -SubscriptionPayment=Pagament quota +SubscriptionPayment=Pagament de quota LastSubscriptionDate=Data de l'última afiliació LastSubscriptionAmount=Últim import de subscripció MembersStatisticsByCountries=Estadístiques de socis per país @@ -150,6 +151,7 @@ MembersByTownDesc=Aquesta pantalla presenta una estadística del nombre de socis MembersStatisticsDesc=Tria les estadístiques que vols consultar... MenuMembersStats=Estadístiques LastMemberDate=Data de l'últim soci +LatestSubscriptionDate=Data de l'última afiliació Nature=Caràcter Public=Informació pública NewMemberbyWeb=S'ha afegit un nou soci. A l'espera d'aprovació diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 79bdd3ee161..76e61d80865 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -3,12 +3,25 @@ SecurityCode=Codi de seguretat NumberingShort=N° Tools=Utilitats TMenuTools=Utilitats -ToolsDesc=Totes les útilitats vàries no incloses en altres entrades de menú estan recollides aquí.

Totes les utilitats es poden trobar en el menú de l'esquerra. +ToolsDesc=En aquest apartat es recullen les utilitats diverses no incloses en altres entrades de menú.

Totes les utilitats es poden trobar en el menú de l'esquerra. Birthday=Aniversari BirthdayDate=Data d'aniversari DateToBirth=Data de naixement BirthdayAlertOn=alerta aniversari activada BirthdayAlertOff=alerta aniversari desactivada +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Mes (text) de la data de factura +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Any de la data de factura +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Contacte afegit a la intervenció Notify_FICHINTER_VALIDATE=Validació fitxa intervenció Notify_FICHINTER_SENTBYMAIL=Enviament fitxa intervenció per e-mail @@ -61,16 +74,17 @@ PredefinedMailTestHtml=Això és un e-mail de prova (la paraula prova ha PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nVolem comentar que no hem rebut cap notificació de la factura __REF__ que indiqui que ha estat pagada. És per això que li adjuntem de nou la factura com a recordatori.\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nLi adjuntem el pressupost __PROPREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nLi adjuntem la sol·licitud de preus __ASKREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nLi adjuntem la comanda __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLi adjuntem la nostre comanda __ORDERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nAquí tens la factura __REF__\n\n__PERSONALIZED__Salutacions\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nLi adjuntem l'enviament __SHIPPINGREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nLi adjuntem l'intervenció __FICHINTERREF__\n\n__PERSONALIZED__Cordialment\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr és un ERP/CRM per a la gestió de negocis (professionals o associacions), compost de mòduls funcionals independents i opcionals. Una demostració que incloga tots aquests mòduls no té sentit perquè no utilitzarà tots els mòduls al mateix temps. Per això, hi han disponibles diferents tipus de perfils de demostració. ChooseYourDemoProfil=Selecciona el perfil de demo que cobreixi millor les teves necessitats... -ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) +ChooseYourDemoProfilMore=o construeix el teu perfil
(selecció de mòduls manual) DemoFundation=Gestió de socis d'una entitat DemoFundation2=Gestió de socis i tresoreria d'una entitat DemoCompanyServiceOnly=Empresa o autònom només amb venda de serveis @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=El mode d'autenticació és %s. EnableGDLibraryDesc=Instala o habilita la llibreria GD en la teva instal·lació PHP per poder utilitzar aquesta opció. ProfIdShortDesc=Prof Id %s és una informació que depèn del país del tercer.
Per exemple, per al país %s, és el codi %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Estadístiques en nombre d'unitats de producte/servei -StatsByNumberOfEntities=Estadístiques en nombre d'identitats referents -NumberOfProposals=Número de pressupostos en els passats 12 mesos -NumberOfCustomerOrders=Número de comandes de client en els passats 12 mesos -NumberOfCustomerInvoices=Número de factures de client en els passats 12 mesos -NumberOfSupplierProposals=Número de pressupostos de proveïdor en els passats 12 mesos -NumberOfSupplierOrders=Número de comandes de proveïdor en els passats 12 mesos -NumberOfSupplierInvoices=Número de factures de proveïdor en els passats 12 mesos -NumberOfUnitsProposals=Nombre d'unitats en pressupostos en els darrers 12 mesos -NumberOfUnitsCustomerOrders=Nombre d'unitats en comandes a clients en els darrers 12 mesos -NumberOfUnitsCustomerInvoices=Nombre d'unitats en factures a clients en els darrers 12 mesos -NumberOfUnitsSupplierProposals=Número d'unitats en pressupostos de proveïdor en els passats 12 mesos -NumberOfUnitsSupplierOrders=Número d'unitats en comandes de proveïdor en els passats 12 mesos -NumberOfUnitsSupplierInvoices=Nombre d'unitats en factures de proveïdors en els darrers 12 mesos +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Número de pressupostos +NumberOfCustomerOrders=Número de comandes de client +NumberOfCustomerInvoices=Número de factures de client +NumberOfSupplierProposals=Número de pressupostos de proveïdor +NumberOfSupplierOrders=Número de comandes de proveïdor +NumberOfSupplierInvoices=Número de factures de proveïdor +NumberOfUnitsProposals=Número d'unitats en pressupostos +NumberOfUnitsCustomerOrders=Número d'unitats en comandes de client +NumberOfUnitsCustomerInvoices=Número d'unitats en factures de client +NumberOfUnitsSupplierProposals=Número d'unitats en pressupostos de proveïdor +NumberOfUnitsSupplierOrders=Número d'unitats en comandes de proveïdor +NumberOfUnitsSupplierInvoices=Número d'unitats en factures de proveïdor EMailTextInterventionAddedContact=La nova intervenció %s t'ha sigut assignada. EMailTextInterventionValidated=Fitxa intervenció %s validada EMailTextInvoiceValidated=Factura %s validada diff --git a/htdocs/langs/ca_ES/projects.lang b/htdocs/langs/ca_ES/projects.lang index 74e659272d0..b4a9a340d75 100644 --- a/htdocs/langs/ca_ES/projects.lang +++ b/htdocs/langs/ca_ES/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Àrea de projectes ProjectStatus=Estat el projecte SharedProject=Projecte compartit PrivateProject=Contactes del projecte +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Tots els projectes MyProjectsDesc=Aquesta vista està limitada als projectes en que estàs com a contacte afectat (per a qualsevol tipus). ProjectsPublicDesc=Aquesta vista mostra tots els projectes en els que vostè té dret a tenir visibilitat. TasksOnProjectsPublicDesc=Aquesta vista mostra totes les tasques en projectes en els que tens permisos de lectura. @@ -23,6 +26,7 @@ TasksDesc=Aquesta vista mostra tots els projectes i tasques (les sevas autoritza AllTaskVisibleButEditIfYouAreAssigned=Totes les tasques de cada projecte són visibles, però només pots entrar les hores per les tasques que tens assignades. Assigna't tasques si vols afegir-hi les hores. OnlyYourTaskAreVisible=Només són visibles les tasques que tens assignades. Assigna't tasques si no són visibles i vols afegir-hi les hores. ImportDatasetTasks=Tasques de projectes +ProjectCategories=Etiquetes de projecte NewProject=Nou projecte AddProject=Crear projecte DeleteAProject=Eliminar un projecte @@ -31,12 +35,13 @@ ConfirmDeleteAProject=Vols eliminar aquest projecte? ConfirmDeleteATask=Vols eliminar aquesta tasca? OpenedProjects=Projectes oberts OpenedTasks=Tasques obertes -OpportunitiesStatusForOpenedProjects=Quantitat d'oportunitats de projectes oberts per estat +OpportunitiesStatusForOpenedProjects=Import d'oportunitats de projectes oberts per estat OpportunitiesStatusForProjects=Import d'oportunitats de projectes per estat ShowProject=Veure projecte SetProject=Indica el projecte NoProject=Cap projecte definit NbOfProjects=Nº de projectes +NbOfTasks=Nº de tasques TimeSpent=Temps dedicat TimeSpentByYou=Temps dedicat per vostè TimeSpentByUser=Temps dedicat per usuari @@ -49,7 +54,7 @@ TaskTimeNote=Nota TaskTimeDate=Data TasksOnOpenedProject=Tasques en projectes oberts WorkloadNotDefined=Càrrega de treball no definida -NewTimeSpent=Nou temps dedicat +NewTimeSpent=Temps dedicat MyTimeSpent=El meu temps dedicat Tasks=Tasques Task=Tasca @@ -59,6 +64,7 @@ TaskDescription=Descripció de tasca NewTask=Nova tasca AddTask=Crear tasca AddTimeSpent=Crea temps dedicat +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activitat Activities=Tasques/activitats MyActivities=Les meves tasques/activitats @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Llista de plantilles de factures de clie ListSupplierOrdersAssociatedProject=Llista de comandes a proveïdors associades al projecte ListSupplierInvoicesAssociatedProject=Llista de factures a proveïdors associades al projecte ListContractAssociatedProject=Llistatde contractes associats al projecte +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Llistat d'intervencions associades al projecte ListExpenseReportsAssociatedProject=Llistat d'informes de despeses associades al projecte ListDonationsAssociatedProject=Llistat de donacions associades al projecte @@ -96,12 +103,13 @@ ValidateProject=Validar projecte ConfirmValidateProject=Vols validar aquest projecte? CloseAProject=Tancar projecte ConfirmCloseAProject=Vols tancar aquest projecte? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +AlsoCloseAProject=Tancar també el projecte (mantindre obert si encara necessita seguir les tasques de producció en ell) ReOpenAProject=Reobrir projecte ConfirmReOpenAProject=Vols reobrir aquest projecte? ProjectContact=Contactes projecte ActionsOnProject=Esdeveniments del projecte YouAreNotContactOfProject=Vostè no és contacte d'aquest projecte privat +UserIsNotContactOfProject=L'usuari no és un contacte d'aquest objecte privat DeleteATimeSpent=Elimina el temps dedicat ConfirmDeleteATimeSpent=Estàs segur que vols suprimir aquest temps emprat? DoNotShowMyTasksOnly=Veure també tasques no assignades a mi @@ -110,7 +118,7 @@ TaskRessourceLinks=Recursos ProjectsDedicatedToThisThirdParty=Projectes dedicats a aquest tercer NoTasks=Cap tasca per a aquest projecte LinkedToAnotherCompany=Enllaçat a una altra empresa -TaskIsNotAffectedToYou=Tasca no assignada a vostè +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=El temps dedicat està buit ThisWillAlsoRemoveTasks=Aquesta operació també destruirà les tasques del projecte (%s tasques en aquest moment) i tots els seus temps dedicats. IfNeedToUseOhterObjectKeepEmpty=Si els elements (factura, comanda, ...) pertanyen a un tercer que no és el seleccionat, havent aquests estar lligats al projecte a crear, deixeu buit per permetre el projecte a multi-tercers. @@ -161,21 +169,26 @@ FirstAddRessourceToAllocateTime=Associa un recurs d'usuari per reservar el temps InputPerDay=Entrada per dia InputPerWeek=Entrada per setmana InputPerAction=Entrada per acció -TimeAlreadyRecorded=Temps dedicat ja registrat per aquesta tasca/dia i usuari %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projectes amb aquest usuari com a contacte TasksWithThisUserAsContact=Tasques asignades a l'usuari ResourceNotAssignedToProject=No assignat a cap projecte ResourceNotAssignedToTheTask=No assignat a la tasca +TasksAssignedTo=Tasques assignades a AssignTaskToMe=Assignar-me una tasca +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assigna ProjectOverview=Informació general ManageTasks=Utilitza els projectes per seguir tasques i temps ManageOpportunitiesStatus=Utilitza els projectes per seguir oportunitats ProjectNbProjectByMonth=Nº de projectes creats per mes +ProjectNbTaskByMonth=Nº de tasques creades per mes ProjectOppAmountOfProjectsByMonth=Import d'oportunitats per mes ProjectWeightedOppAmountOfProjectsByMonth=Quantitat ponderada d'oportunitats per mes ProjectOpenedProjectByOppStatus=Projectes oberts per estats d'oportunitat ProjectsStatistics=Estadístiques en projectes/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Tasca assignada. És possible entrar els temps en aquesta tasca. IdTaskTime=Id de temps de tasca YouCanCompleteRef=Si vols completar la referència amb més informació (per utilitzar-la als filtres de cerca), es recomana afegir el caràcter - per separar-ho, així la numeració automàtica funcionarà correctament pels propers projectes. Per exemple %s-ABC. També pots preferir afegir claus de cerca en l'etiqueta. Però la millor pràctica pot ser afegir un camp dedicat, també anomenat Atributs complementaris. diff --git a/htdocs/langs/ca_ES/resource.lang b/htdocs/langs/ca_ES/resource.lang index 3a6f8da7941..40dec371160 100644 --- a/htdocs/langs/ca_ES/resource.lang +++ b/htdocs/langs/ca_ES/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Recurs eliminat correctament DictionaryResourceType=Tipus de recurs SelectResource=Seleccionar recurs + +IdResource=Id resource +AssetNumber=Número de serie +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Recursos diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index 4c918d4e46a..06def4d849e 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Etiqueta del moviment NumberOfUnit=Nombre de peces UnitPurchaseValue=Preu de compra unitari StockTooLow=Estoc insuficient -StockLowerThanLimit=L'estoc és menor que el límit de l'alerta +StockLowerThanLimit=L'estoc és menor que el límit de l'alerta (%s) EnhancedValue=Valor PMPValue=Valor (PMP) PMPValueShort=PMP @@ -62,16 +62,19 @@ DeStockOnShipment=Disminueix l'estoc real al validar l'enviament DeStockOnShipmentOnClosing=Disminueix els estocs reals en tancar l'expedició ReStockOnBill=Incrementar els estocs físics sobre les factures/abonaments de proveïdors ReStockOnValidateOrder=Incrementar els estocs físics sobre les comandes a proveïdors -ReStockOnDispatchOrder=Incrementa els estocs físics en el desglossament manual de la recepció de les comandes a proveïdors en els magatzems +ReStockOnDispatchOrder=Augmenta els estocs reals en l'entrega manual als magatzems, després de la recepció dels productes de la comanda proveïdor OrderStatusNotReadyToDispatch=La comanda encara no està o no té un estat que permeti un desglossament d'estoc. -StockDiffPhysicTeoric=Motiu de la diferència entre valors físics i teòrics +StockDiffPhysicTeoric=Motiu de la diferència entre l'estoc físic i virtual NoPredefinedProductToDispatch=No hi ha productes predefinits en aquest objecte. Per tant no es pot realitzar un desglossament d'estoc. DispatchVerb=Desglossar StockLimitShort=Límit per l'alerta StockLimit=Estoc límit per les alertes PhysicalStock=Estoc físic RealStock=Estoc real +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Estoc virtual +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id. magatzem DescWareHouse=Descripció magatzem LieuWareHouse=Localització magatzem @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantitat del producte %s en estoc abans del periode sel NbOfProductAfterPeriod=Quantitat del producte %s en estoc despres del periode seleccionat (> %s) MassMovement=Moviments en massa SelectProductInAndOutWareHouse=Seleccioni un producte, una quantitat, un magatzem origen i un magatzem destí, seguidament faci clic "%s". Una vegada seleccionats tots els moviments, faci clic en "%s". -RecordMovement=Registrar transferencies +RecordMovement=Record transfer ReceivingForSameOrder=Recepcions d'aquesta comanda StockMovementRecorded=Moviments d'estoc registrat RuleForStockAvailability=Regles de requeriment d'estoc @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Estoc límit per llançar una alerta i estoc òptim ProductStockWarehouseDeleted=S'ha eliminat correctament el límit d'estoc per alerta i l'estoc òptim desitjat. AddNewProductStockWarehouse=Posar nou estoc límit per alertar i nou estoc òptim desitjat AddStockLocationLine=Decrementa quantitat i a continuació fes clic per afegir un altre magatzem per aquest producte +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edita +inventoryValidate=Validat +inventoryDraft=En servei +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Crear +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filtre per categoria +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Qtat. real +RealValue=Valor real +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Afegir +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Confirmes aquesta acció? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Elimina la línia +RegulateStock=Regulate Stock +ListInventory=Llistat diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index bbe888dfbf6..28a0a58805e 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -1,112 +1,120 @@ # Dolibarr language file - en_US - Accounting Expert ACCOUNTING_EXPORT_SEPARATORCSV=Oddělovač sloupců pro export souboru ACCOUNTING_EXPORT_DATE=Formát data pro export souboru -ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount -ACCOUNTING_EXPORT_DEVISE=Export currency -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s +ACCOUNTING_EXPORT_PIECE=Exportovat počet kusů +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export s globálním účtem +ACCOUNTING_EXPORT_LABEL=Exportovat štítek +ACCOUNTING_EXPORT_AMOUNT=Exportovat částku +ACCOUNTING_EXPORT_DEVISE=Export měny +Selectformat=Vyberte formát souboru +ACCOUNTING_EXPORT_PREFIX_SPEC=Určete předponu pro název souboru +ThisService=Tato služba +ThisProduct=Tento výrobek +DefaultForService=Výchozí nastavení pro službu +DefaultForProduct=Výchozí produkt +CantSuggest=Nelze navrhnout +AccountancySetupDoneFromAccountancyMenu=Většina nastavení účetnictví se provádí z nabídky %s ConfigAccountingExpert=Konfigurace modulu účetního experta Journalization=Journalization Journaux=Deníky JournalFinancial=Finanční deníky BackToChartofaccounts=Návrat účtové osnovy Chartofaccounts=Graf účtů -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information +CurrentDedicatedAccountingAccount=Aktuální vyhrazený účet +AssignDedicatedAccountingAccount=Nový účet přiřadit +InvoiceLabel=faktura štítek +OverviewOfAmountOfLinesNotBound=Přehled množství linek není vázán na účetnictví účtu +OverviewOfAmountOfLinesBound=Přehled množství linek již vázán na účetnictví účtu +OtherInfo=Jiná informace +DeleteCptCategory=Odebrat účtování účet ze skupiny +ConfirmDeleteCptCategory=Jste si jisti, že chcete odstranit tento účetní účet ze skupiny účetního účtu? -AccountancyArea=Accountancy area -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. +AccountancyArea=Oblast účetnictví +AccountancyAreaDescIntro=Využití evidence modulu se provádí v několika kroku: +AccountancyAreaDescActionOnce=Tyto akce jsou obvykle prováděny pouze jednou, nebo jednou za rok ... +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionFreq=Tyto akce jsou proto zpravidla prováděny každý měsíc, týden nebo den pro velmi velké společnosti ... -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescChartModel=STEP %s: Vytvořte model účtové osnovy z menu %s +AccountancyAreaDescChart=STEP %s: Vytvořte nebo zkontrolovat obsah grafu účtu z menu %s -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=KROK %s: Definovat účetní účty pro každou banku a finančních účtů. Za tímto účelem přejděte na kartu každého finančního účtu. Můžete začít od strana %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. +AccountancyAreaDescAnalyze=KROK %s: Přidat nebo upravit stávající transakce a generovat reporty a exporty. + +AccountancyAreaDescClosePeriod=KROK %s: Uzavřené období, takže nemůžeme udělat změny v budoucnosti. MenuAccountancy=Účetnictví -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load +Selectchartofaccounts=Vybrat aktivní účtové osnovy +ChangeAndLoad=Změna a load Addanaccount=Přidat účetní účet AccountAccounting=Účetní účet AccountAccountingShort=Účet -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -ProductsBinding=Products accounts -Ventilation=Binding to accounts -CustomersVentilation=Customer invoice binding -SuppliersVentilation=Supplier invoice binding -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Hlavní účetní kniha -AccountBalance=Account balance +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Zobrazit účetní deník +AccountAccountingSuggest=Účetní účet navrhl +MenuDefaultAccounts=výchozí účty +MenuVatAccounts=Účty DPH +MenuTaxAccounts=daňové účty +MenuExpenseReportAccounts=Náklady zpráva účty +MenuLoanAccounts=úvěrových účtů +MenuProductsAccounts=produktové účty +ProductsBinding=Produkty účty +Ventilation=Vazba na účetní závěrky +CustomersVentilation=Zákazník faktura závazná +SuppliersVentilation=Dodavatelská faktura je závazná +ExpenseReportsVentilation=Náklady zpráva vázání +CreateMvts=Vytvořit novou transakci +UpdateMvts=Modifikace transakce +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger +AccountBalance=Zůstatek na účtu -CAHTF=Total purchase supplier before tax -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account +CAHTF=Celkový nákup dodavatele před zdaněním +TotalExpenseReport=Celkové náklady zpráva +InvoiceLines=Řádky faktury, které mají být prověřeny +InvoiceLinesDone=Prověřené řádky faktury +ExpenseReportLines=Linky výkazů výdajů navázat +ExpenseReportLinesDone=Vázané linie vyúčtování výdajů +IntoAccount=Prověřit řádky v účetním účtu -Ventilate=Bind -LineId=Id line -Processing=Dřu jako kůň ..... -EndProcessing=Process terminated. +Ventilate=Prověřit +LineId=id řádku +Processing=Dřu jako kůň ..... sorry jako ....... +EndProcessing=Proces ukončen. SelectedLines=Vybrané řádky Lineofinvoice=Řádky faktury -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account +LineOfExpenseReport=Zpráva o výdajích +NoAccountSelected=Není vybrán žádný účetní účet +VentilatedinAccount=Úspěšně prověření v účetním účtu +NotVentilatedinAccount=Neprověřeno v účetním účtu +XLineSuccessfullyBinded=%s produkty / služby úspěšně vázána k účetnímu účtu +XLineFailedToBeBinded=%s produkty / služby nebyly vázány na kterémkoli účetním účtu -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Počet prvků pro kontrolu zobrazených na stránce (maximální doporučeno: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Zahájit třídění na stránce „Provést prověření“ nejnovějšími prvky +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Zahájit třídění na stránce „Prověření hotovo“ od nejnovějších prvků -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account +ACCOUNTING_LENGTH_DESCRIPTION=Zkrátit popis produktů a služeb v seznamech po x znaků (Nejlepší = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Zkrátit popis výrobků & účtu služeb formu výpisů po x znaků (Nejlepší = 50) +ACCOUNTING_LENGTH_GACCOUNT=Délka znaků obecných účetních účtů (Nastavíte-li zde hodnotu 6, bude účet ‚706‘ zobrazovat jako ‚706000‘) +ACCOUNTING_LENGTH_AACCOUNT=Délka účtů třetích stran (Nastavíte-li zde hodnotu 6, bude účet ‚401‘ zobrazovat jako ‚401000‘) +ACCOUNTING_MANAGE_ZERO=Umožňují řídit jiný počet nulu na konci účetního účtu. Zapotřebí v některých zemích (jako Švýcarsko). -Li se držet off (výchozí), můžete nastavit 2 následující parametry požádat aplikace přidat virtuální nula. +BANK_DISABLE_DIRECT_INPUT=Zakázat přímé nahrávání transakce v bankovním účtu ACCOUNTING_SELL_JOURNAL=Prodejní deník ACCOUNTING_PURCHASE_JOURNAL=Nákupní deník @@ -114,14 +122,14 @@ ACCOUNTING_MISCELLANEOUS_JOURNAL=Ostatní deník ACCOUNTING_EXPENSEREPORT_JOURNAL=Rozšířený výpis deníku ACCOUNTING_SOCIAL_JOURNAL=Sociální deník -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Účtování v převodním účtu +ACCOUNTING_ACCOUNT_SUSPENSE=Čekající účet +DONATION_ACCOUNTINGACCOUNT=Účtování účet registrovaných darů -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené výrobky (použít, pokud není definován v listu produktu) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané produkty (použít, pokud není definován v listu produktu) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Účetní účet ve výchozím nastavení pro zakoupené služby (použít, pokud není definován v servisním listu) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Účetní účet ve výchozím nastavení pro prodané služby (použít, pokud není definován v servisním listu) Doctype=Typ dokumentu Docdate=Datum @@ -130,72 +138,84 @@ Code_tiers=Třetí strana Labelcompte=Štítek účtu Sens=Sens Codejournal=Deník -NumPiece=Piece number -TransactionNumShort=Num. transaction -AccountingCategory=Accounting category -GroupByAccountAccounting=Group by accounting account -NotMatch=Not Set -DeleteMvt=Delete general ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger -FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal -DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +NumPiece=počet kusů +TransactionNumShort=Num. transakce +AccountingCategory=Skupiny účetnictví účtů +GroupByAccountAccounting=Skupina účetním účtu +NotMatch=Nenastaveno +DeleteMvt=Delete Ledger lines +DelYear=Odstrannění roku +DelJournal=Journal odstranit +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger +FinanceJournal=Finanční deník +ExpenseReportsJournal=Výdajové zprávy journal +DescFinanceJournal=Finanční deník včetně všech typů plateb prostřednictvím bankovního účtu +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +VATAccountNotDefined=Účet pro DPH není definován +ThirdpartyAccountNotDefined=Účet pro třetí stranu není definováno +ProductAccountNotDefined=Účet pro výrobek není definován +FeeAccountNotDefined=Účet za poplatek není definováno +BankAccountNotDefined=Účet pro banku není definováno CustomerInvoicePayment=Platba zákaznické faktury ThirdPartyAccount=Účet třetí strany -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +NewAccountingMvt=nová transakce +NumMvts=Číslo transakce +ListeMvts=Seznam pohybů ErrorDebitCredit=Debetní a kreditní nemůže mít hodnotu ve stejnou dobu - -ReportThirdParty=List third party account -DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts +AddCompteFromBK=Přidat účetní účty do skupiny +ReportThirdParty=Seznam účtů třetí strany +DescThirdPartyReport=Konzultujte zde seznam třetích stran, zákazníky a dodavateli a jejich účetní účty ListAccounts=Seznam účetních účtů Pcgtype=Třída účtu -Pcgsubtype=Podle třídy účtu +Pcgsubtype=Subclass of account -TotalVente=Total turnover before tax +TotalVente=Celkový obrat před zdaněním TotalMarge=Celkové tržby marže -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Zde naleznete seznam zákaznických fakturačních řádků vázaných (nebo nikoliv) na účet účetnictví produktu +DescVentilMore=Ve většině případů, pokud používáte předdefinované produkty nebo služby a nastavíte číslo účtu na výrobek / služebního průkazu, žádost bude schopen provést všechny vazby mezi svými faktuře řádky a účetní evidence grafu účtů jen v jedno kliknutí na tlačítko "%s" . Je-li účet nebyl nastaven na výrobku / služby karty, nebo pokud má stále některé řádky není vázán na jiný účet, budete muset provést ruční vazby z menu „ %s “. +DescVentilDoneCustomer=Seznamte se zde se seznamem řádků faktur zákazníků a jejich účetních účtů +DescVentilTodoCustomer=Prověřit fakturační řádky, které již nejsou vázány účtem účetnictví produktu +ChangeAccount=Změnit výrobek/službu na účetnm účtu ve vybraných řádcích s následujícím účetním účtem: Vide=- -DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account -DescVentilDoneSupplier=Poraďte se zde se seznamem linek faktur dodavatele a jejich účetních účtů -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilSupplier=Konzultujte zde seznam řádků dodavatelské faktury vázaných nebo nevázaných na účetní produkt účtu +DescVentilDoneSupplier=Konzultujte zde seznam řádků faktur dodavatele a jejich účetnho účtu +DescVentilTodoExpenseReport=Bind zpráva náklad linky již nejsou vázány s účetním poplatek účtu +DescVentilExpenseReport=Zde si přečtěte seznam výkazů výdajů vázaných (nebo ne) na účty účtování poplatků +DescVentilExpenseReportMore=Máte-li nastavit účtování účtu na typ zprávy náklady linek, bude aplikace moci provádět všechny vazby mezi vaše náklady sestavy linek a účetní evidence grafu účtů jen jedním kliknutím pomocí tlačítka „%s“ . Je-li účet nebyl nastaven na poplatcích slovníku nebo pokud má stále některé řádky není vázán na jiný účet, budete muset provést ruční vazby z menu „ %s “. +DescVentilDoneExpenseReport=Poraďte se zde seznam v souladu se zprávami výdajů a jejich poplatků účtování účtu -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic binding done +ValidateHistory=Ověřit automaticky +AutomaticBindingDone=Automatická vazba provádí ErrorAccountancyCodeIsAlreadyUse=Chyba, nelze odstranit tento účetní účet, protože ho zrovna používáte -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding +MvtNotCorrectlyBalanced=Pohyb není správně vyrovnán. Kredit = %s. Debet = %s +FicheVentilation=Ověřovací karta +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched +ListOfProductsWithoutAccountingAccount=Seznam výrobků, které nejsou vázány na kterémkoli účetním účtu +ChangeBinding=Změnit vazby ## Admin -ApplyMassCategories=Apply mass categories -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed +ApplyMassCategories=Aplikovat hmotnostní kategorie +AddAccountFromBookKeepingWithNoCategories=Přidejte acccount již použit s žádnými kategoriemi +CategoryDeleted=Kategorie účetního účtu byla odstraněna +AccountingJournals=účetní deníky +AccountingJournal=Účetní deník +NewAccountingJournal=Nový účetní deník +ShowAccoutingJournal=Zobrazit účetní deník +Code=Kód +Nature=Příroda +AccountingJournalType1=Různé operace +AccountingJournalType2=Odbyt +AccountingJournalType3=Nákupy +AccountingJournalType4=Banka +AccountingJournalType9=Má-new +ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá ## Export Exports=Exporty @@ -204,42 +224,44 @@ Modelcsv=Model exportu OptionsDeactivatedForThisExportModel=Možnosti pro tento exportní model jsou deaktivovány Selectmodelcsv=Vyberte způsob exportu Modelcsv_normal=Klasický export -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité -Modelcsv_COALA=Export towards Sage Coala -Modelcsv_bob50=Export towards Sage BOB 50 -Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution -Modelcsv_quadratus=Export towards Quadratus QuadraCompta -Modelcsv_ebp=Export towards EBP -Modelcsv_cogilog=Export towards Cogilog -ChartofaccountsId=Chart of accounts Id +Modelcsv_CEGID=Export směrem CEGID Expert Comptabilité +Modelcsv_COALA=Export na Sage Coala +Modelcsv_bob50=Export na Sage BOB 50 +Modelcsv_ciel=Export na Sage Ciel Compta nebo Compta Evolution +Modelcsv_quadratus=Export směrem quadratus QuadraCompta +Modelcsv_ebp=Export na EBP +Modelcsv_cogilog=Export směrem Cogilog +Modelcsv_agiris=Export towards Agiris (Test) +ChartofaccountsId=Schéma Id účtů ## Tools - Init accounting account on product / service -InitAccountancy=Init accountancy -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -Options=Options -OptionModeProductSell=Mode sales -OptionModeProductBuy=Mode purchases -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -CleanFixHistory=Remove accountancy code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year +InitAccountancy=init účetnictví +InitAccountancyDesc=Tato stránka může být použita k inicializaci účetnictví u produktů a služeb, které nemají účetní účet definovaný pro prodej a nákup. +DefaultBindingDesc=Tato stránka může být použit k nastavení výchozí účet použít k propojení transakcí záznam o platebních platy, darování, daní a DPH, pokud se žádný zvláštní účetní účet již nastaven. +Options=možnosti +OptionModeProductSell=prodejní režim +OptionModeProductBuy=Nákupní režim +OptionModeProductSellDesc=Zobrazit všechny produkty s vyúčtováním pro přímý prodej. +OptionModeProductBuyDesc=Zobrazit všechny produkty které připadají v úvahu pro nákupy. +CleanFixHistory=Odstraňte evidenční skupiny kód z řádků, které neexistují do map z účtu +CleanHistory=Obnovit všechny vazby pro vybraný rok -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +WithoutValidAccount=Bez platného zvláštním účtu +WithValidAccount=S platným zvláštním účtu +ValueNotIntoChartOfAccount=Tato hodnota účetního účtu neexistuje v účtu ## Dictionary -Range=Range of accounting account -Calculated=Calculated -Formula=Formula +Range=Řada účetních účtu +Calculated=počítáno +Formula=Vzorec ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -ExportNotSupported=The export format setuped is not supported into this page -BookeppingLineAlreayExists=Lines already existing into bookeeping +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=Účetnictví skupiny účtů není k dispozici pro země %s (viz Home - instalace - slovníky) +ExportNotSupported=Exportní formát setuped není podporován na této stránce +BookeppingLineAlreayExists=Linky již existující do bookeeping +NoJournalDefined=No journal defined +Binded=linky vázané +ToBind=Linky k vazbě -Binded=Lines bound -ToBind=Lines to bind - -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index cbbc3f243bd..816a6e4ef38 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -2,33 +2,33 @@ Foundation=Nadace Version=Verze VersionProgram=Verze programu -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Verze počáteční instalace +VersionLastUpgrade=Nejnovější verze upgrade VersionExperimental=Experimentální VersionDevelopment=Vývoj VersionUnknown=Neznámý VersionRecommanded=Doporučené -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +FileCheck=Kontrola integrity souborů +FileCheckDesc=Tento nástroj vám umožňuje zkontrolovat integritu souborů a nastavení aplikace a porovnávat jednotlivé soubory s oficiálními. Je také možné zkontrolovat hodnotu některých konstant nastavení. Pomocí tohoto nástroje můžete zjistit, zda některé soubory byly například modifikovány hackerem. +FileIntegrityIsStrictlyConformedWithReference=integrity souborů je přísně přizpůsobena s odkazem. +FileIntegrityIsOkButFilesWereAdded=Kontrola souborů integrity prošel, ale byly přidány některé nové soubory. +FileIntegritySomeFilesWereRemovedOrModified=Kontrola souborů integrity selhal. Některé soubory byly změněny, odstraněny nebo přidány. +GlobalChecksum=Global kontrolní součet +MakeIntegrityAnalysisFrom=Udělat analýzu integrity souborů aplikací od +LocalSignature=Vložený místní podpis (méně spolehlivé) +RemoteSignature=Remote vzdálený podpis (spolehlivější) FilesMissing=Chybějící soubory FilesUpdated=Aktualizované soubory FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found +FilesAdded=přidané soubory +FileCheckDolibarr=Zkontrolovat integritu souborů aplikací +AvailableOnlyOnPackagedVersions=Místní soubor pro kontrolu integrity je k dispozici pouze tehdy, pokud je nainstalována aplikace z oficiálního balíčku +XmlNotFound=Xml Integrity souboru aplikace nebyly načteny SessionId=ID relace SessionSaveHandler=Manipulátor uložených relací SessionSavePath=Místo uložení relace PurgeSessions=Vyčistit relace -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +ConfirmPurgeSessions=Opravdu chcete, vyčistit všechny relace? Tím dojde k odpojení všech přihlášených uživatelů (kromě vás). NoSessionListWithThisHandler=Nastavení Vašeho PHP neumožňuje vypsat běžící relace. LockNewSessions=Uzamknout nové spojení ConfirmLockNewSessions=Určitěchcete omezit všechna nová Dolibarr spojení? Pouze uživatel%s bude mít možnost se připojit. @@ -48,12 +48,13 @@ InternalUsers=Interní uživatelé ExternalUsers=Externí uživatelé GUISetup=Zobrazení SetupArea=Modul nastavení +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulář pro testování uploadu souborů (dle nastavení) IfModuleEnabled=Poznámka: Ano má efekt pouze tehdy, pokud je aktivní modul %s RemoveLock=Odstraňte soubor %s (pokud existuje), pro povolení použití aktualizačního nástroje. RestoreLock=Obnovte soubor %s, pouze s opravněním ke čtení, chcete-li zakázat jakékoliv použití aktualizačního nástroje. SecuritySetup=Bezpečnostní nastavení -SecurityFilesDesc=Define here options related to security about uploading files. +SecurityFilesDesc=Definujte zde možnosti týkající se zabezpečení o nahrávání souborů. ErrorModuleRequirePHPVersion=Chyba, tento modul vyžaduje PHP verze %s nebo vyšší ErrorModuleRequireDolibarrVersion=Chyba, tento modul vyžaduje Dolibarr verze %s nebo vyšší ErrorDecimalLargerThanAreForbidden=Chyba, přesnost vyšší než %s není podporována. @@ -62,13 +63,13 @@ Dictionary=Slovníky ErrorReservedTypeSystemSystemAuto=Hodnota "system" a "systemauto" je vyhrazena. Můžete použít "user" k pŕidání vlastního záznamu ErrorCodeCantContainZero=Kód nemůže obsahovat hodnotu 0 DisableJavascript=Vypnout JavaScript a Ajax funkce (Doporučuje se pro nevidomého či textové prohlížeče) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) +UseSearchToSelectCompanyTooltip=Také, pokud máte velký počet subjektů (> 100 000), můžete zvýšit rychlost nastavením konstantní COMPANY_DONOTSEARCH_ANYWHERE 1 v Setup-> Ostatní. Vyhledávání pak bude omezena na začátek řetězce. +UseSearchToSelectContactTooltip=Také, pokud máte velký počet subjektů (> 100 000), můžete zvýšit rychlost nastavením konstantní CONTACT_DONOTSEARCH_ANYWHERE 1 v Setup-> Ostatní. Vyhledávání pak bude omezena na začátek řetězce. +DelaiedFullListToSelectCompany=Počkat stisknutí klávesy před vložením obsahu seznamu subjektů combo (To může zvýšit výkon, pokud máte velké množství subjektů, ale je to méně pohodlné) +DelaiedFullListToSelectContact=Počkat stisknutí klávesy před vložením obsahu seznamu kontaktů combo (To může zvýšit výkon, pokud máte velký počet kontaktů, ale je to méně pohodlné) NumberOfKeyToSearch=Počet charakterů nutných k spuštění hledání: %s NotAvailableWhenAjaxDisabled=Není k dispozici při vypnutém Ajaxu -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +AllowToSelectProjectFromOtherCompany=Na dokumentu třetí osoby, mohou vybrat projekt spojený s jinou třetí stranou JavascriptDisabled=JavaScript zablokován UsePreviewTabs=Použijte náhled ShowPreview=Zobrazit náhled @@ -76,7 +77,7 @@ PreviewNotAvailable=Náhled není k dispozici ThemeCurrentlyActive=Téma aktivní CurrentTimeZone=Časové pásmo PHP (server) MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +TZHasNoEffect=Termíny jsou uloženy a vráceny databázového serveru, jako kdyby byly vedeny jako odeslán řetězec. Časové pásmo má vliv pouze při použití funkce UNIX_TIMESTAMP (které by neměly být používány Dolibarr, takže databáze TZ by nemělo mít žádný vliv, i když se změnila po byla zadána data). Space=Mezera Table=Tabulka Fields=Pole @@ -85,7 +86,7 @@ Mask=Maska NextValue=Další hodnota NextValueForInvoices=Další hodnota (faktury) NextValueForCreditNotes=Další hodnota (dobropisů) -NextValueForDeposit=Další hodnota (záloha) +NextValueForDeposit=Další hodnota (akontace) NextValueForReplacements=Další hodnota (náhrady) MustBeLowerThanPHPLimit=Poznámka: Nastavení Vašeho PHP omezuje velikost nahrávaného souboru na %s %s, nehledě na nastavení tohoto parametru NoMaxSizeByPHPLimit=Poznámka: Ve Vaší PHP konfiguraci není nastaven limit @@ -97,13 +98,13 @@ AntiVirusParam= Další parametry příkazového řádku AntiVirusParamExample= Příklad ClamWin: - databáze = "C: \\ Program Files (x86) \\ ClamWin \\ lib" ComptaSetup=Nastavení účetního modulu UserSetup=Nastavení správy uživatelů -MultiCurrencySetup=Multi-currency setup +MultiCurrencySetup=setup Multi-currency MenuLimits=Limity a přesnost MenuIdParent=ID nadřazeného menu DetailMenuIdParent=ID nadřazeného menu (nechte prázdný pro top menu) DetailPosition=Řadicí číslo pro nastavení pozice v menu AllMenus=Vše -NotConfigured=Modul není nakonfigurován +NotConfigured=Module/Application not configured Active=Aktivní SetupShort=Nastavení OtherOptions=Další možnosti @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Oddělovač tisíců Destination=Destinace IdModule=Modul ID IdPermissions=Oprávnění ID -Modules=Moduly LanguageBrowserParameter=Parametr %s LocalisationDolibarrParameters=Lokalizační parametry ClientTZ=Časové pásmo klienta (uživatele) @@ -123,14 +123,15 @@ PHPTZ=Časové pásmo PHP serveru DaylingSavingTime=Letní čas CurrentHour=PHP Čas (server) CurrentSessionTimeOut=Aktuální časový limit relace -YouCanEditPHPTZ=Chcete-li nastavit jiné časové pásmo PHP (není podmínkou), můžete zkusit přidat soubor. Htacces s linkou, jako je tento "TZ SetEnv Europe / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets +Boxes=Boxy +MaxNbOfLinesForBoxes=Maximální počet řádků pro widgety PositionByDefault=Výchozí pořadí Position=Pozice -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenusDesc=V nastavení menu nastavíte obsah obou panelů nabídek (horizontální i vertikální). +MenusEditorDesc=Editor menu vám umožní upravovat položky v menu. Používejte jej opatrně, při nesprávném použití může dojít k nestabilnímu chodu systému Dolibarr nebo ke ztrátě některých položek v menu.
Některé moduly přidají položky v menu. Pokud jste omylem odstranili některé z těchto položek, můžete je obnovit vypnutím a opětovným zapnutím modulu. MenuForUsers=Menu pro uživatele LangFile=soubor .lang System=Systém @@ -138,16 +139,16 @@ SystemInfo=Informace o systému SystemToolsArea=Sekce systémových nástrojů SystemToolsAreaDesc=Tato sekce poskytuje správu uživatelských funkcí. V menu vyberte funkci, kterou hledáte. Purge=Očistit -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files +PurgeAreaDesc=Tato stránka vám umožňuje odstranit všechny postavené nebo uložené soubory Dolibarr (dočasné soubory nebo všechny soubory v adresáři %s). Použití této funkce není nutné. Je k dispozici pro uživatele, jejichž Dolibarr je provozován u poskytovatele, který neposkytuje oprávnění k odstranění souborů na webovém serveru. +PurgeDeleteLogFile=Vymažte log %s, definovaný pro modul Syslog (bez rizika ztráty) +PurgeDeleteTemporaryFiles=Vymažte všechny dočasné soubory (bez rizika ztráty dat) +PurgeDeleteTemporaryFilesShort=Odstranit dočasné soubory PurgeDeleteAllFilesInDocumentsDir=Odstraňte všechny soubory v adresáři %s. Dočasné soubory, zálohy databáze, soubory přiložené k prvkům (třetí strany, faktury, ...) a uploady do modulu ECM budou vymazány. PurgeRunNow=Vyčistit nyní -PurgeNothingToDelete=No directory or files to delete. +PurgeNothingToDelete=Žádný adresář nebo soubor k odstranění PurgeNDirectoriesDeleted=%s soubory nebo adresáře odstraněny. PurgeAuditEvents=Vyčistit všechny bezpečnostní události -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=Jste si jisti, že chcete vyčistit všechny bezpečnostní události? Všechny bezpečnostní záznamy budou odstraněny, žádná další data nebudou odstraněna. GenerateBackup=Vytvořit zálohu Backup=Zálohování Restore=Obnovit @@ -182,65 +183,67 @@ ExtendedInsert=Rozšířený INSERT NoLockBeforeInsert=Žádné lock příkazy okolo příkazu INSERT DelayedInsert=Zpožděné vložení EncodeBinariesInHexa=Zakódovat binární data v hexadecimálním tvaru -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) +IgnoreDuplicateRecords=Ignorovat chyby duplicitních záznamů (INSERT IGNORE) AutoDetectLang=Autodetekce (jazyku prohlížeče) FeatureDisabledInDemo=Funkce zakázána v demu -FeatureAvailableOnlyOnStable=Feature only available on official stable versions +FeatureAvailableOnlyOnStable=Funkce je k dispozici pouze v oficiálních stabilních verzích Rights=Oprávnění -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. +BoxesDesc=Widgety jsou oblasti obrazovky, které ukazují krátké informace na některých stránkách. Můžete si vybrat mezi zobrazením/schováním boxu zvolením cílové stránky a kliknutím na 'Aktivovat' nebo kliknutím na popelnici ji zakázat. OnlyActiveElementsAreShown=Pouze prvky z povolených modulů jsou uvedeny. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesMarketPlaceDesc=Více modulů naleznete ke stažení na externích webových stránkách ... +ModulesDeployDesc=Pokud oprávnění na souborovém systému dovolí, můžete použít tento nástroj k nasazení externího modulu. Modul wil pak bude viditelný na kartě %s . +ModulesMarketPlaces=Najít externí moduly ... +GoModuleSetupArea=Nasadit / instalovat nový modul, přejděte na nastavení plochy modulu na %s . DoliStoreDesc=DoliStore, oficiální trh pro download externích modulů Dolibarr ERP / CRM -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... +DoliPartnersDesc=Seznam firem poskytujících zakázku vyvinuté moduly nebo funkce (Poznámka: někdo se zkušenostmi v programování v PHP může poskytnout zakázkový vývoj pro open source projekt) +WebSiteDesc=Referenční webové stránky, kde naleznete další moduly ... URL=Odkaz -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated +BoxesAvailable=widgety k dispozici +BoxesActivated=Widgety aktivovány ActivateOn=Aktivace na ActiveOn=Aktivováno SourceFile=Zdrojový soubor AvailableOnlyIfJavascriptAndAjaxNotDisabled=Dostupné pouze v případě, že není zakázán JavaScript Required=Potřebný -UsedOnlyWithTypeOption=Used by some agenda option only +UsedOnlyWithTypeOption=Používaný některými volby programu jednání pouze Security=Zabezpečení Passwords=Hesla DoNotStoreClearPassword=Ukládat hesla v databázi pouze šifrovaně (Doporučeno) MainDbPasswordFileConfEncrypted=Šifrovat přístupové heslo databáze v conf.php (Doporučeno) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; +InstrucToEncodePass=Pro uložení zašifrovaného hesla do conf.php, nahraďte řádku
$dolibarr_main_db_pass="..."
hodnotou
$dolibarr_main_db_pass="crypted:%s" +InstrucToClearPass=Pro uložení nezašifrovaného hesla do conf.php, nahraďte řádku
$dolibarr_main_db_pass="crypted:..."
hodnotou
$dolibarr_main_db_pass="%s" ProtectAndEncryptPdfFiles=Přidat ochranu generovaných souborů PDF (Nedoporučuje se, zablokuje hromadné generování PDF) ProtectAndEncryptPdfFilesDesc=Ochrana dokumentů PDF neomezí možnost otevírání dokumentů jakýmkoliv prohlížečem. Nicméně, editace a kopírování přestane být možná. Zapnutím této ochrany přijdete o možnost vytváření kumulovaných PDF (např. nezaplacených faktur) Feature=Funkce DolibarrLicense=Licence Developpers=Vývojáři / přispěvatelé OfficialWebSite=Mezinárodní oficiální internetové stránky Dolibarr -OfficialWebSiteLocal=Local web site (%s) +OfficialWebSiteLocal=Místní webové stránky (%s) OfficialWiki=Dolibarr dokumentace na Wiki OfficialDemo=Dolibarr on-line demo OfficialMarketPlace=Oficiální trh pro externí moduly / addons OfficialWebHostingService=Odkazované webhostingové služby (Cloud hosting) ReferencedPreferredPartners=Preferovaní partneři -OtherResources=Autres ressources +OtherResources=jiné zdroje +ExternalResources=Cizí zdroje +SocialNetworks=Sociální sítě ForDocumentationSeeWiki=Pro uživatelskou nebo vývojářskou dokumentaci (Doc, FAQs ...)
navštivte Dolibarr Wiki:
%s ForAnswersSeeForum=V případě jakýchkoliv dalších dotazů nebo nápovědy použijte fórum Dolibarr:
%s HelpCenterDesc1=Tato oblast slouží k získání nápovědy a podpory systému Dolibarr. HelpCenterDesc2=Některé části této služby jsou k dispozici pouze v angličtině. CurrentMenuHandler=Aktuální handler menu MeasuringUnit=Měrná jednotka -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month +LeftMargin=levý okraj +TopMargin=Horní okraj +PaperSize=Typ papíru +Orientation=Orientace +SpaceX=space X +SpaceY=space Y +FontSize=Velikost písma +Content=Obsah +NoticePeriod=Výpovědní lhůta +NewByMonth=New podle měsíce Emails=E-maily EMailsSetup=E-maily nastavení EMailsDesc=Tato stránka umožňuje přepsat PHP parametry odesílaných e-mailů. Ve většině případů je na platformě Unix / Linux OS PHP nastavení správné, a tyto parametry jsou k ničemu. @@ -256,53 +259,56 @@ MAIN_MAIL_SENDMODE=Metoda odesílání e-mailů MAIN_MAIL_SMTPS_ID=SMTP ID je-li vyžadováno ověření MAIN_MAIL_SMTPS_PW=SMTP heslo je-li vyžadováno ověření MAIN_MAIL_EMAIL_TLS= Použít TLS (SSL) šifrování -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt +MAIN_MAIL_EMAIL_STARTTLS= Použít TLS (STARTTLS) šifrování MAIN_DISABLE_ALL_SMS=Zakázat všechny odesílané SMS (pro testovací účely apod.) MAIN_SMS_SENDMODE=Použitá metoda pro odesílání SMS MAIN_MAIL_SMS_FROM=Výchozí telefonní číslo odesílatele SMS -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email +MAIN_MAIL_DEFAULT_FROMTYPE=E-mail odesílatele ve výchozím nastavení pro manuální sendings (uživatel e-mailu nebo e-mailu společnosti) +UserEmail=Uživatelský e-mail +CompanyEmail=email Firma FeatureNotAvailableOnLinux=Funkce není k dispozici na Unixových systémech. Otestujte svůj sendmail program lokálně. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. +SubmitTranslation=Pokud překlad pro tento jazyk je neúplný, nebo chybný, můžete jej opravit editací souborů v adresáři langs/%s a předložit změněné soubory na fóru www.dolibarr.org.\n\nAktuální překlady získáte na https://www.transifex.com/dolibarr-association/dolibarr/dashboard/ kde se také můžete po vytvoření účtu na překladech podílet. +SubmitTranslationENUS=Pokud překlad pro tento jazyk není úplný nebo najdete chyby, můžete to opravit úpravou souborů do adresáře langs / %s a odeslat modifikované soubory na stránkách dolibarr.org/forum nebo pro vývojáře na adrese github.com/ Dolibarr / dolibarr. ModuleSetup=Nastavení modulu -ModulesSetup=Nastavení modulů +ModulesSetup=Modules/Application setup ModuleFamilyBase=Systém ModuleFamilyCrm=Řízení vztahů se zákazníky (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) +ModuleFamilySrm=Dodavatel Vztah Management (SRM) +ModuleFamilyProducts=Řízení produktů +ModuleFamilyHr=Řízení lidských zdrojů (HRM) ModuleFamilyProjects=Projekty / Týmové práce ModuleFamilyOther=Ostatní ModuleFamilyTechnic=Multi-modulové nastavení ModuleFamilyExperimental=Experimentální moduly ModuleFamilyFinancial=Finanční moduly (Účetnictví / Finance) ModuleFamilyECM=Elektronická správa obsahu (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems +ModuleFamilyPortal=Webové stránky a další čelní aplikací +ModuleFamilyInterface=Rozhraní s externími systémy MenuHandlers=Menu handlery MenuAdmin=Menu editor DoNotUseInProduction=Nepoužívejte ve výrobě -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Nastaveno na proces: +ThisIsAlternativeProcessToFollow=Jedná se o alternativní nastavení zpracovávat ručně: StepNb=Krok %s FindPackageFromWebSite=Nalezni balíček, obsahující funkci jež chcete (např. na oficiálních stránkách %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file +DownloadPackageFromWebSite=Download balíčku (například z oficiálních webových stránek %s). +UnpackPackageInDolibarrRoot=Rozbalte soubor balíčku do adresáře, vyhrazenému pro externí moduly: %s +UnpackPackageInModulesRoot=Nasadit / instalovat externí modul, rozbalit zabalené soubory do adresáře serveru věnovaného modulů: %s +SetupIsReadyForUse=Nasazení modulu je dokončeno. Musíte však povolit a nastavit modul ve své administraci tím, že jdete na stránku nastavení modulů: %s . +NotExistsDirect=Alternativní kořenový adresář není definován.
+InfDirAlt=Od verze 3 je možné definovat alternativní kořenovou složku. To umožňuje ukládat na stejné místo plug-iny a vlastní šablony.
Stačí vytvořit adresář v kořenovém adresáři Dolibarr (např.: custom).
+InfDirExample=
Pak je deklarujte v souboru conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
*Řádky jsou zakomentovány znakem "#", pro odkomentování tento znak odmažte. +YouCanSubmitFile=Pro tento krok můžete posílat balíček pomocí tohoto nástroje: Vyberte soubor modulu CurrentVersion=Dolibarr aktuální verze -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date +CallUpdatePage=Přejděte na stránku, která aktualizuje strukturu databáze a data: %s. +LastStableVersion=Poslední stabilní verze +LastActivationDate=Nejzazší datum aktivace +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Aktualizace serveru v režimu offline +WithCounter=Správa počítadlo GenericMaskCodes=Můžete zadat jakoukoliv masku číselné řady. V masce můžete použít následující značky:
{000000} číslo, automaticky inkrementované o 1 při každým %s. Počet nul odpovídá požadovanému počtu číslic. Číslo se zleva doplní nulami pro dosažení požadovaného počtu číslic.
{000000+000} stejné jako předchozí, ale ofset odpovídající číslu napravo od znaku + bude použit pro první %s.
{000000@x} stejné jako předchozí, ale počítadlo se resetuje na nulu, když je dosaženo měsíce x (x je v rozmezí 1 ~ 12, nebo 0 pro použití prvního měsíce fiskálního roku definované ve vaší konfiguraci, nebo 99 pro vynulování každý měsíc ). Pokud se tato volba používá, a x je 2 nebo vyšší, pak je rovněž požadovaná posloupnost {yy}{mm} či {yyyy}{mm}.
{dd} den (01 až 31).
{mm} měsíc (01 to 12).
{yy}, {yyyy} nebo {y} rok, 2, 4 nebo 1 číslo.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} Zákaznický kód s n znaky
{cccc000} Zákaznický kód s n znaky je sledován počítadlem určeným pro zákazníka. Toto počítadlo se resetuje ve stejný čas, jako globální počítadlo
{tttt} Kód společnosti s n znaky (viz. seznam typů společností).
GenericMaskCodes3=Všechny ostatní znaky v masce zůstanou nedotčeny.
Mezery nejsou povoleny.
GenericMaskCodes4a=Příklad na 99. %s třetí strany TheCompany proveden 2007-01-31:
GenericMaskCodes4b=Příklad třetí osoby vytvořené 03.01.2007:
@@ -321,14 +327,14 @@ UMaskExplanation=Tento parametr umožňuje definovat výchozí oprávnění soub SeeWikiForAllTeam=Podívejte se na wiki stránku pro kompletní seznam všech účastníků a jejich organizaci UseACacheDelay= Zpoždění pro ukládání výsledku exportu do mezipaměti v sekundách (0 nebo prázdné pro neukládání) DisableLinkToHelpCenter=Skrýt odkaz "Potřebujete pomoc či podporu" na přihlašovací stránce -DisableLinkToHelp=Hide link to online help "%s" +DisableLinkToHelp=Skrýt odkaz na on-line nápovědě " %s " AddCRIfTooLong=Neexistuje žádný automatický balení, takže pokud linka je mimo stránky na dokumentech, protože příliš dlouho, musíte přidat sami návrat vozíku do textového pole. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). +ConfirmPurge=Jste si jisti, že chcete spustit tuto očistu?
Toto smaže definitivně všechny datové soubory a nelze je žádným způsobem je obnovit (ECM soubory, přiložené soubory ...). MinLength=Minimální délka LanguageFilesCachedIntoShmopSharedMemory=Soubory. Lang vložen do sdílené paměti ExamplesWithCurrentSetup=Příklady s aktuálním systémem nastavení ListOfDirectories=Seznam OpenDocument šablony seznamů -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. +ListOfDirectoriesForModelGenODT=Seznam adresářů obsahující soubory šablon s formátem OpenDocument

Přidejte adresář modulu GED

Přidejte adresář modulu GED. > DOL_DATA_ROOT / ecm / yourdirectoryname . Soubory v těchto adresářích musí končit znakem .odt nebo .ods . NumberOfModelFilesFound=Počet ODT / ODS šablony souborů naleznete v těchto adresářích ExampleOfDirectoriesForModelGen=Příklady syntaxe:
c: \\ mydir
/ Home / mydir
DOL_DATA_ROOT / ECM / ecmdir FollowingSubstitutionKeysCanBeUsed=
Chcete-li vědět, jak vytvořit své ODT šablony dokumentů před jejich uložením do těchto adresářů, přečtěte si wiki dokumentace: @@ -342,7 +348,7 @@ ThemeDir=Skins adresář ConnectionTimeout=Connexion timeout ResponseTimeout=Reakce timeout SmsTestMessage=Zkušební zpráva od __ PHONEFROM__ do __ PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. +ModuleMustBeEnabledFirst=Modul %s musí být napřed povolen, pokud budete potřebovat tuto funkci. SecurityToken=Klíč k zabezpečené URL NoSmsEngine=Ne odesílatel SMS manažer k dispozici. SMS odesílatele manažer nejsou nainstalovány s výchozí rozložení (protože závisí na externím dodavatelem), ale můžete najít některé z %s PDF=PDF @@ -351,14 +357,14 @@ PDFAddressForging=Pravidla se budují adresy boxy HideAnyVATInformationOnPDF=Skrýt všechny informace týkající se DPH na generované PDF HideDescOnPDF=Skrýt popis produktů z vytvořeného PDF HideRefOnPDF=Skrýt produkty čj. na vytvořené PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +HideDetailsOnPDF=Skrýt produktové řady podrobnosti o generované PDF +PlaceCustomerAddressToIsoLocation=Použijte francouzský standardní pozice (La Poste) o pozici zákazníka adresy Library=Knihovna UrlGenerationParameters=Parametry k zajištění URL SecurityTokenIsUnique=Používáme unikátní securekey parametr pro každou adresu URL EnterRefToBuildUrl=Zadejte odkaz na objekt %s GetSecuredUrl=Získejte vypočtenou URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Skrýt tlačítka pro uživatele mimo administrátora k neautorizovaným zásahům místo zobrazení zapadlý tlačítek bez funkce OldVATRates=Staré Sazba DPH NewVATRates=Nová sazba DPH PriceBaseTypeToChange=Změnit na cenách s hodnotou základního odkazu uvedeného na @@ -369,62 +375,78 @@ Int=Celé číslo Float=Vznášet se DateAndTime=Datum a hodina Unique=Unikátní -Boolean=Boolean (checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena ExtrafieldMail = E-mail ExtrafieldUrl = Url ExtrafieldSelect = Vyberte seznam ExtrafieldSelectList = Vyberte z tabulky -ExtrafieldSeparator=Oddělovač +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Heslo -ExtrafieldCheckBox=Zaškrtávací políčko -ExtrafieldRadio=Přepínač -ExtrafieldCheckBoxFromList= Kontrolní pole z tabulky +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Odkaz na objekt -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=Parametry Seznam musí být jako klíč, hodnota
například:
1, value1
2 value2 Sims 3, value3
...
Aby mít přehled v závislosti na dalším doplňkovém seznamu atributů:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Chcete-li mít seznam v závislosti na jiném seznamu:
1, value1 | parent_list_code : parent_key
2, hodnota2 | parent_list_code : parent_key +ExtrafieldParamHelpcheckbox=Parametry Seznam musí být jako klíč, hodnota
například:
1, VALUE1
2, hodnota2 Sims 3, value3
... +ExtrafieldParamHelpradio=Parametry Seznam musí být jako klíč, hodnota
například:
1, VALUE1
2, hodnota2 Sims 3, value3
... +ExtrafieldParamHelpsellist=Seznam parametrů pochází z tabulky

například :
c_typent:libelle:id::filter

Za účelem mít seznam v závislosti na jiném:
c_typent:libelle:id:parent_list_code|parent_column:filter
filtr může být jednoduchým testem (např. active=1 zobrazí pouze aktivní hodnotu)
Chcete-li filtrovat další pole, použijte syntaxi: extra.fieldcode = ... (v případě pole kód je kód extrafield) +ExtrafieldParamHelpchkbxlst=Seznam parametrů pochází z tabulky
syntaxi: TABLE_NAME: label_field: id_field :: filtru
Příklad: c_typent: Libelle: id :: filtr
filtru může být jednoduchý test (např aktivní = 1) zobrazit pouze aktivní hodnoty
můžete také použít $ ID $ ve filtračním čarodějnice je aktuální id aktuálního objektu
Chcete-li SELECT v použití filtru $ SEL $
pokud chcete filtrovat extrafields použít syntax extra.fieldcode = ... (v případě pole kód je kód extrafield)
Za účelem získání seznamu v závislosti na dalším doplňkovém seznamu atributů:
c_typent: libelle: id: options_ parent_list_code | parent_column: filtr
Chcete-li mít seznam v závislosti na jiném seznamu:
c_typent: libelle: id: parent_list_code | parent_column: filtrační +ExtrafieldParamHelplink=Parametry musí být objectname: Classpath
Syntaxe: objectname: Classpath
Příklad: Societe: Societe / třída / societe.class.php +LibraryToBuildPDF=Knihovna používaná pro generování PDF WarningUsingFPDF=Upozornění: Váš conf.php obsahuje direktivu dolibarr_pdf_force_fpdf = 1. To znamená, že můžete používat knihovnu FPDF pro generování PDF souborů. Tato knihovna je stará a nepodporuje mnoho funkcí (Unicode, obraz transparentnost, azbuka, arabské a asijské jazyky, ...), takže může dojít k chybám při generování PDF.
Chcete-li vyřešit tento a mají plnou podporu generování PDF, stáhněte si TCPDF knihovny , pak komentář nebo odebrat řádek $ dolibarr_pdf_force_fpdf = 1, a místo něj doplnit $ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir " -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) +LocalTaxDesc=Některé země uplatňovat 2 nebo 3 daně na každé faktuře řádek. Pokud se jedná o tento případ, zvolit typ pro druhé a třetí daňové a jeho rychlosti. Možné typ jsou:
1: místní daň vztahovat na výrobky a služby bez DPH (localtax je vypočtena na částku bez daně)
2: místní daň platí o produktech a službách, včetně DPH (localtax je vypočtena na částku + hlavní daně)
3: místní daň vztahovat na výrobky bez DPH (localtax je vypočtena na částku bez daně)
4: místní daň vztahovat na produkty, včetně DPH (DPH se vypočítá na množství + hlavní DPH)
5: místní daň platí o službách bez DPH (localtax je vypočtena na částku bez daně)
6: místní daň platí o službách, včetně DPH (localtax je vypočtena na částku + daň) SMS=SMS LinkToTestClickToDial=Zadejte telefonní číslo pro volání ukázat odkaz na test ClickToDial URL pro %s RefreshPhoneLink=Obnovit odkaz LinkToTest=Klikací odkaz generovány pro uživatele %s (klikněte na telefonní číslo pro testování) KeepEmptyToUseDefault=Mějte prázdný použít výchozí hodnoty DefaultLink=Výchozí odkaz -SetAsDefault=Set as default +SetAsDefault=Nastavit jako výchozí ValueOverwrittenByUserSetup=Pozor, tato hodnota může být přepsána uživatelem specifické nastavení (každý uživatel může nastavit vlastní clicktodial url) ExternalModule=Externí modul - instalován do adresáře %s BarcodeInitForThirdparties=Mass čárový kód init pro thirdparties BarcodeInitForProductsOrServices=Mass init čárový kód nebo reset pro výrobky nebo služby -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. +CurrentlyNWithoutBarCode=V současné době máte %s záznam na %s %s bez čárového kódu definovaného. InitEmptyBarCode=Init hodnota pro příští %s prázdnými záznamů EraseAllCurrentBarCode=Vymazat všechny aktuální hodnoty čárových kódů -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Jste si jisti, že chcete vymazat všechny aktuální hodnoty čárových kódů? AllBarcodeReset=Byly odstraněny všechny hodnoty čárových kódů NoBarcodeNumberingTemplateDefined=Žádné šablony číslování čárových kódů aktivované v nastavení modulu čárových kódů. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. +EnableFileCache=Aktivovat mezipaměť souborů +ShowDetailsInPDFPageFoot=Přidat další podrobnosti do zápatí PDF souborů, jako vaše firemní adresy nebo názvy manažer (k dokončení profesionální IDS společnost kapitálové a číslo DPH). +NoDetails=Žádné další podrobnosti v zápatí +DisplayCompanyInfo=Zobrazit adresu společnosti +DisplayCompanyManagers=Jména display manažer +DisplayCompanyInfoAndManagers=Zobrazte adresu firmy a jména správce +EnableAndSetupModuleCron=Chcete-li mít tento opakující faktury soupisky generovány automaticky, modul * %s * musí být povoleno a správně nastaveny. V opačném případě, generování faktur musí být provedeno manuálně z této šablony s tlačítkem * Vytvořit *. Všimněte si, že i když jste povolili automatické generování, stále se můžete bezpečně spustit manuální generaci. Duplikáty generace za stejné období nejsou možné. ModuleCompanyCodeAquarium=Vrátit evidence kód postavený podle:
%s následuje třetí strany dodavatele kódu na kód dodavatele účetnictví,
%s následuje třetí strany zákazníků kód Přístupový kód zákazníka účetnictví. ModuleCompanyCodePanicum=Zpět prázdný evidence kód. ModuleCompanyCodeDigitaria=Účetnictví kód závisí na kódu třetích stran. Kód se skládá ze znaku "C" na prvním místě následuje prvních 5 znaků kódu třetích stran. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description +Use3StepsApproval=Ve výchozím nastavení musí být nákupní objednávky vytvořeny a schváleny dvěma různými uživateli (jeden krok / uživatel k vytvoření a jeden krok / uživatel ke schválení. Všimněte si, že pokud má uživatel oprávnění k vytvoření a schválení, stačí jeden krok / uživatel) . Touto volbou můžete požádat o zavedení třetího schvalovacího kroku / schválení uživatele, pokud je částka vyšší než určená hodnota (potřebujete tedy 3 kroky: 1 = ověření, 2 = první schválení a 3 = druhé schválení, pokud je dostatečné množství).
Pokud je zapotřebí jedno schvalování (2 kroky), nastavte jej na velmi malou hodnotu (0,1), pokud je vždy požadováno druhé schválení (3 kroky). +UseDoubleApproval=Použijte schválení 3 kroky, kdy částka (bez DPH) je vyšší než ... +WarningPHPMail=Upozornění: Někteří poskytovatelé e-mailu (například Yahoo) neumožňuje odeslat e-mail z jiného serveru, než server Yahoo v případě, že e-mailová adresa použita jako odesílatel je vaše Yahoo e-mail (jako myemail@yahoo.com, myemail@yahoo.fr, ...). Vaše aktuální nastavení použít server aplikace pro odesílání e-mailů, takže někteří příjemci (jeden kompatibilní s restriktivním DMARC protokolu), požádá Yahoo, pokud mohou přijímat e-maily a Yahoo odpoví „ne“, protože server není server vlastněná společností Yahoo, takže některé z vašich odeslané e-maily nemusí být přijaty.
má-li váš poskytovatel e-mail (jako je Yahoo) toto omezení, je nutné změnit nastavení e-mailu zvolit jiný způsob „SMTP serveru“ a zadat server SMTP a pověření poskytované vašeho poskytovatele e-mailu (zeptejte se svého poskytovatele e-mailových získat pověření SMTP pro váš účet). +ClickToShowDescription=Kliknutím zobrazíte popis +DependsOn=Tento modul je třeba modul (y) +RequiredBy=Tento modul je vyžadováno modulu (modulů) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=Apartmán V formulář pro vytvoření nového subjektu je %s +PageUrlForDefaultValuesList=Apartmán V straně tento seznam subjektů je %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=Překlad byl nalezen na klíče s tímto kódem, takže tuto hodnotu změnit, musíte upravit jej FOM Home-Setup-překlad. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Pole +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Uživatelé a skupiny -Module0Desc=Users / Employees and Groups management +Module0Desc=Uživatelé / zaměstnanci a vedení Skupiny Module1Name=Třetí strany Module1Desc=Firmy a správu kontaktů (zákazníci, vyhlídky ...) Module2Name=Obchodní @@ -444,7 +466,7 @@ Module30Desc=Faktura a dobropis řízení pro zákazníky. Faktura řízení pro Module40Name=Dodavatelé Module40Desc=Dodavatel řízení a nákupu (objednávky a faktury) Module42Name=Záznamy -Module42Desc=Těžební zařízení (soubor, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redakce Module49Desc=Editor pro správu Module50Name=Produkty @@ -461,8 +483,8 @@ Module55Name=Čárové kódy Module55Desc=Barcode řízení Module56Name=Telefonie Module56Desc=Telefonie integrace -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. +Module57Name=Přímé bankovní platební příkazy +Module57Desc=Správa platebních příkazů přímého inkasa. Zahrnuje generování souboru SEPA pro evropské země. Module58Name=ClickToDial Module58Desc=Integrace ClickToDial systému (Asterisk, ...) Module59Name=Bookmark4u @@ -484,9 +506,9 @@ Module200Desc=LDAP synchronizace adresářů Module210Name=PostNuke Module210Desc=PostNuke integrace Module240Name=Exporty dat -Module240Desc=Tool to export Dolibarr data (with assistants) +Module240Desc=Nástroj pro export dat Dolibarr (s asistenty) Module250Name=Import dat -Module250Desc=Tool to import data in Dolibarr (with assistants) +Module250Desc=Nástroj pro import dat v Dolibarr (s asistenty) Module310Name=Členové Module310Desc=Nadace členové vedení Module320Name=RSS Feed @@ -498,80 +520,82 @@ Module400Desc=Řízení projektů, příležitostí nebo vedení. Můžete při Module410Name=WebCalendar Module410Desc=WebCalendar integrace Module500Name=Zvláštní výdaje -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module500Desc=Řízení zvláštních výdajů, jako jsou daně, sociální příspěvky, divideny a platy +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Půjčka Module520Desc=Správa úvěrů Module600Name=Upozornění -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails +Module600Desc=Poslat upozornění e-mailem (spouštěné některých firemních akcí) pro uživatele (nastavení definovaná na každého uživatele), kontakty třetích stran (setup je definována na každé třetí osobě) nebo pevnými e-maily Module700Name=Dary Module700Desc=Darování řízení Module770Name=Zpráva výdajů -Module770Desc=Management and claim expense reports (transportation, meal, ...) +Module770Desc=Management a reklamace vyúčtování výdajů (doprava, jídlo, ...) Module1120Name=Dodavatel obchodní nabídky -Module1120Desc=Request supplier commercial proposal and prices +Module1120Desc=Požadavek dodavatel obchodní návrh a ceny Module1200Name=Mantis Module1200Desc=Mantis integrace Module1400Name=Účetnictví Module1400Desc=Vedení účetnictví (dvojité strany) Module1520Name=Dokument Generation -Module1520Desc=Mass mail document generation +Module1520Desc=Hromadná pošta generování dokumentů Module1780Name=Tagy/Kategorie Module1780Desc=Vytvořit tagy/kategorie (produkty, zákazníci, dodavatelé, kontakty nebo členi) Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) +Module2000Desc=Umožňují upravit některá textové pole přes pokročilý editor (na základě CKEditor) Module2200Name=Dynamické ceny Module2200Desc=Povolit použití matematických výrazů pro ceny Module2300Name=Cron Module2300Desc=Plánovaná správa úloh -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Name=Události / Agenda +Module2400Desc=Postupujte udělal a nadcházející události. Nechť Aplikační protokoly automatických akcí pro účely sledování nebo zaznamenávat manuální akce či Rendez-vous. Module2500Name=Elektronický Redakční Module2500Desc=Uložit a sdílet dokumenty -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) +Module2600Name=API / Webové služby (SOAP server) +Module2600Desc=Povolit Dolibarr SOAP serveru poskytující služby API +Module2610Name=API / webové služby REST (server) +Module2610Desc=Povolit služby API serveru poskytující Dolibarr REST +Module2660Name=Call WebServices (SOAP klient) +Module2660Desc=Povolit webové služby klienta Dolibarr (lze použít, aby se zasadila data / žádosti o externí servery. Dodavatel objednávky podporované jen na chvíli) Module2700Name=Gravatar Module2700Desc=Pomocí on-line služby (Gravatar www.gravatar.com) ukázat fotku uživatelů / členů (nalezen s jejich e-maily). Potřebujete přístup k internetu Module2800Desc=FTP klient Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind konverze možnosti Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3100Desc=Přidání tlačítka Skype na uživatele /subjekty/ Kontakty / členy karet +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-společnost Module5000Desc=Umožňuje spravovat více společností Module6000Name=Workflow Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. +Module10000Name=Webové stránky +Module10000Desc=Vytvoření veřejné internetové stránky s editorem WYSIWG. Jen nastavit web serveru, aby odkazovaly na specializované adresáře, aby si to on-line na internetu. Module20000Name=Nechte řízení požadavků Module20000Desc=Deklarovat a dodržovat zaměstnanci opustí požadavky Module39000Name=Množství produktu -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products +Module39000Desc=Šarže nebo sériové číslo, jíst-by a sell-managementem data o produktech Module50000Name=Paybox Module50000Desc=Modul nabídnout on-line platby kreditní kartou stránku s Paybox Module50100Name=Bod prodeje -Module50100Desc=Point of sales module (POS). +Module50100Desc=Bod prodejního modulu (POS). Module50200Name=Paypal Module50200Desc=Modul nabídnout on-line platby kreditní kartou stránku s Paypal Module50400Name=Účetnictví (pokročilé) Module50400Desc=Manažerské účetnictví (dvojité strany) Module54000Name=PrintIPP Module54000Desc=Přímý tisk (bez otevření dokumentů) pomocí poháry IPP rozhraní (tiskárna musí být viditelné ze serveru, a CUPS musí být installe na serveru). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) +Module55000Name=Anketa, průzkum nebo hlasování +Module55000Desc=Modul pro tvorbu on-line průzkumů a anket (jako Doodle, šroub, Rdvz, ...) Module59000Name=Okraje Module59000Desc=Modul pro správu marže Module60000Name=Provize Module60000Desc=Modul pro správu provize Module63000Name=Zdroje -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events +Module63000Desc=Spravovat zdroje (tiskárny, auta, prostor, ...), pak můžete sdílet na akcích Permission11=Přečtěte si zákazníků faktury Permission12=Vytvořit / upravit zákazníků faktur Permission13=Unvalidate zákazníků faktury @@ -591,10 +615,10 @@ Permission32=Vytvořit / upravit produktů Permission34=Odstranit produkty Permission36=Viz / správa skryté produkty Permission38=Export produktů -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission42=Vytvořit/upravit projekty (společný projekt a projekty Jsem kontakt). Je také možné vytvořit úkoly a přiřazovat uživatelům projekt a úkoly Permission44=Odstranit projektů (společné projekty, projekt a já jsem kontakt pro) -Permission45=Export projects +Permission45=Export projekty Permission61=Přečtěte intervence Permission62=Vytvořit / upravit zásahy Permission64=Odstranit intervence @@ -603,7 +627,7 @@ Permission71=Přečtěte členů Permission72=Vytvořit / upravit členů Permission74=Smazat členů Permission75=Nastavení typu uživatele -Permission76=Export data +Permission76=Exportovat data Permission78=Přečtěte si předplatné Permission79=Vytvořit / upravit předplatné Permission81=Přečtěte objednávky odběratelů @@ -613,10 +637,10 @@ Permission86=Poslat objednávky odběratelů Permission87=Zavřít zákazníky objednávky Permission88=Storno objednávky odběratelů Permission89=Odstranit objednávky odběratelů -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes +Permission91=Číst sociální nebo fiskální daně a DPH +Permission92=Vytvořit/upravit sociální nebo fiskální daně a DPH +Permission93=Odstranit sociální nebo fiskální daně a DPH +Permission94=Export sociální nebo fiskální daně Permission95=Přečtěte si zprávy Permission101=Přečtěte si sendings Permission102=Vytvořit / upravit sendings @@ -634,22 +658,22 @@ Permission121=Přečtěte třetí strany v souvislosti s uživateli Permission122=Vytvořit / modifikovat třetí strany spojené s uživateli Permission125=Odstranění třetí strany v souvislosti s uživateli Permission126=Export třetí strany -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) +Permission141=Přečtěte si všechny projekty a úkoly (také soukromých záměrů nejsem kontaktovat) +Permission142=Vytvořit / upravit všechny projekty a úkoly (také na soukromé záměry nejsem v kontaktu pro) +Permission144=Smazat všechny projekty a úkoly (také soukromé projekty, pro které nejsem kontakt) Permission146=Přečtěte si poskytovatelé Permission147=Přečtěte si statistiky -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders +Permission151=Číst přímé debetní platební příkazy +Permission152=Vytvořit / upravit inkasní příkazy k úhradě +Permission153=Odeslat / vysílat přímý debetní platební příkazy +Permission154=Záznam Credits / odmítá inkasa platebních příkazů Permission161=Přečtené smlouvy/předplatné -Permission162=Create/modify contracts/subscriptions +Permission162=Vytvořit / upravit zakázky / předplatné Permission163=Aktivace služby / předplatné smlouvy Permission164=Zakázat servisní / předplatné smlouvy Permission165=Smazat zakázky / předplatné -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) +Permission167=Export zakázky +Permission171=Číst výlety a výdaje (vy a vaše podřízené) Permission172=Vytvořit / upravit výlety a výdaje Permission173=Odstranění výlety a výdaje Permission174=Přečtěte si všechny výlety a výdaje @@ -695,7 +719,7 @@ PermissionAdvanced253=Vytvořit / upravit interní / externí uživatele a oprá Permission254=Vytvořit / upravit externí uživatelé pouze Permission255=Upravit ostatním uživatelům heslo Permission256=Odstranit nebo zakázat ostatním uživatelům -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Rozšířit přístup ke všem subjektům (nejen třetích stran, které uživatel je prodej zástupce).
neúčelné pro externí uživatele (vždy omezeny na sebe k předkládání žádostí, objednávky, faktury, smlouvy atd.)
neúčelné pro projekty (pouze pravidla týkající se oprávnění projektů, viditelnost a přiřazení záležitostí). Permission271=Přečtěte CA Permission272=Přečtěte si faktury Permission273=Vydání faktury @@ -744,7 +768,7 @@ Permission538=Export služeb Permission701=Přečtěte si dary Permission702=Vytvořit / upravit dary Permission703=Odstranit dary -Permission771=Read expense reports (yours and your subordinates) +Permission771=Číst zprávy o výdajích (vy a vaši podřízení) Permission772=Vytvořit/upravit vyúčtování výdajů Permission773=Smazat zprávy o výdajích Permission774=Přečtěte si všechny zprávy o výdajích (a to i pro uživatele, ne podřízení) @@ -780,14 +804,14 @@ Permission1236=Export dodavatelské faktury, atributy a platby Permission1237=Export dodavatelské objednávky a informace o nich Permission1251=Spustit Hmotné dovozy externích dat do databáze (načítání dat) Permission1321=Export zákazníků faktury, atributy a platby -Permission1322=Reopen a paid bill +Permission1322=Znovu otevřít placené účet Permission1421=Export objednávek zákazníků a atributy -Permission20001=Read leave requests (yours and your subordinates) +Permission20001=Číst opuštěné požadavky (vy a vaši podřízení) Permission20002=Vytvořit/upravit vaše požadavky na dovolenou Permission20003=Smazat žádosti o dovolenou -Permission20004=Read all leave requests (even user not subordinates) +Permission20004=Přečtěte si všechny opuštěné požadavky (i když uživatel není podřízení) Permission20005=Vytvořit/upravit žádosti o dovolenou pro každého -Permission20006=Admin leave requests (setup and update balance) +Permission20006=Žádosti admin opuštěné požadavky (setup a aktualizovat bilance) Permission23001=Čtení naplánovaných úloh Permission23002=Vytvoření/aktualizace naplánované úlohy Permission23003=Smazat naplánovanou úlohu @@ -798,7 +822,7 @@ Permission2403=Odstranit akce (události nebo úkoly) které souvisí s jeho ú Permission2411=Přečtěte akce (události nebo úkoly) a další Permission2412=Vytvořit / upravit akce (události nebo úkoly) dalších Permission2413=Odstranit akce (události nebo úkoly) dalších -Permission2414=Export actions/tasks of others +Permission2414=Export akce / úkoly druhých Permission2501=Čtení / Dokumenty ke stažení Permission2502=Dokumenty ke stažení Permission2503=Vložte nebo odstraňovat dokumenty @@ -814,20 +838,20 @@ Permission55002=Vytvořit/upravit ankety Permission59001=Přečtěte si obchodní marže Permission59002=Definovat obchodní marže Permission59003=Přečtěte si všechny marže uživatele -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties +Permission63001=číst zdroje +Permission63002=Vytvořit / upravit zdroje +Permission63003=Odstranit zdroje +Permission63004=Propojení zdroje s Plánem akcí +DictionaryCompanyType=Druhy subjektů +DictionaryCompanyJuridicalType=Právní formy subjektů DictionaryProspectLevel=Potencionální úroveň cílů DictionaryCanton=Stát/Okres DictionaryRegion=Regiony DictionaryCountry=Země DictionaryCurrency=Měny -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types +DictionaryCivility=Osobní a profesionální tituly +DictionaryActions=Typ agendy událostí +DictionarySocialContributions=Typy sociální nebo fiskální daně DictionaryVAT=Sazby DPH nebo daň z prodeje DictionaryRevenueStamp=Výše příjmů známek DictionaryPaymentConditions=Platební podmínky @@ -835,25 +859,27 @@ DictionaryPaymentModes=Platební režimy DictionaryTypeContact=Typy kontaktů/adres DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Formáty papíru -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees +DictionaryFormatCards=Karty formáty +DictionaryFees=Druhy poplatků DictionarySendingMethods=Metody dopravy DictionaryStaff=Zaměstnanci DictionaryAvailability=Zpoždění dodávky DictionaryOrderMethods=Metody objednávání DictionarySource=Původ nabídky/objednávky -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Skupiny účetnictví účtů DictionaryAccountancysystem=Modely pro účetní osnovy +DictionaryAccountancyJournal=účetní deníky DictionaryEMailTemplates=E-maily šablony DictionaryUnits=Jednotky -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead +DictionaryProspectStatus=stav prospekce +DictionaryHolidayTypes=Typy listů +DictionaryOpportunityStatus=Stav příležitost k projektu / olovo SetupSaved=Nastavení uloženo +SetupNotSaved=Setup not saved BackToModuleList=Zpět na seznam modulů BackToDictionaryList=Zpět k seznamu slovníků VATManagement=DPH řízení -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. +VATIsUsedDesc=Ve výchozím nastavení při vytváření vyhlídky, faktury, objednávky atd sazba DPH se řídí pravidlem aktivní standardní:.
Je-li prodávající nepodléhá dani z přidané hodnoty, pak výchozí DPH na 0. Konec vlády
li (prodejní země = kupovat zemi), pak se DPH standardně rovná DPH výrobku v prodejním zemi. Konec pravidla.
Pokud prodávající a kupující jsou oba v Evropském společenství a zboží přepravní zařízení (auto, loď, letadlo), výchozí DPH je 0 (DPH by měla být hradí kupující na customoffice své země, a nikoli na prodávající). Konec pravidla.
Pokud prodávající a kupující jsou oba v Evropském společenství a kupující není společnost, pak se DPH prodlením k DPH z prodaného produktu. Konec pravidla.
Pokud prodávající a kupující jsou oba v Evropském společenství a kupujícím je společnost, pak je daň 0 ve výchozím nastavení. Konec pravidla.
V každém čiš případě navrhované default je DPH = 0. Konec pravidla. VATIsNotUsedDesc=Ve výchozím nastavení je navrhovaná DPH 0, který lze použít v případech, jako je sdružení jednotlivců ou malých podniků. VATIsUsedExampleFR=Ve Francii, to znamená, že podniky a organizace, které mají skutečnou fiskální systém (zjednodušený reálný nebo normální reálné). Systém, v němž je deklarován DPH. VATIsNotUsedExampleFR=Ve Francii, to znamená, asociace, které jsou bez DPH prohlášené nebo společnosti, organizace nebo svobodných povolání, které se rozhodly pro Micro Enterprise daňového systému (s DPH v povolení) a placenými franšízové ​​DPH bez DPH prohlášení. Tato volba se zobrazí odkaz "nepoužitelné DPH - art-293B CGI" na fakturách. @@ -883,24 +909,24 @@ LocalTax2IsUsedExampleES= Ve Španělsku, na volné noze a nezávislí odborníc LocalTax2IsNotUsedExampleES= Ve Španělsku jsou bussines, které nejsou předmětem daňového systému modulů. CalcLocaltax=Zprávy o místních daních CalcLocaltax1=Prodej - Nákupy -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases +CalcLocaltax1Desc=Místní zprávy Daně jsou počítány s rozdílem mezi prodejem localtaxes a localtaxes nákupů CalcLocaltax2=Nákupy CalcLocaltax2Desc=Místní zprávy Daně jsou celkem localtaxes nákupů CalcLocaltax3=Odbyt -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales +CalcLocaltax3Desc=Místní taxy zprávy jsou celkové prodeje localtaxes LabelUsedByDefault=Label používá ve výchozím nastavení, pokud není překlad lze nalézt kód LabelOnDocuments=Štítek na dokumenty NbOfDays=Nb dní AtEndOfMonth=Na konci měsíce -CurrentNext=Current/Next +CurrentNext=Aktuální / Next Offset=Ofset AlwaysActive=Vždy aktivní Upgrade=Vylepšit MenuUpgrade=Aktualizujte / prodloužit -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Nasazení / instalace externího modulu WebServer=Webový server -DocumentRootServer=Webového serveru kořenový adresář -DataRootServer=Dat adresáře souborů +DocumentRootServer=Kořenový adresář webového serveru +DataRootServer=Adresář souboru dat IP=IP Port=Přístav VirtualServerName=Název virtuálního serveru @@ -911,7 +937,7 @@ Server=Server Database=Databáze DatabaseServer=Databáze hostitele DatabaseName=Název databáze -DatabasePort=Databáze portu +DatabasePort=Port databáze DatabaseUser=Databáze uživatel DatabasePassword=Databáze heslo Tables=Tabulky @@ -921,43 +947,45 @@ Host=Server DriverType=Typ ovladače SummarySystem=Systém souhrn informací SummaryConst=Seznam všech nastavených parametrů Dolibarr -MenuCompanySetup=Společnosti / Nadace +MenuCompanySetup=Společnost / Organizace DefaultMenuManager= Standardní nabídka manažer DefaultMenuSmartphoneManager=Smartphone Nabídka manažer Skin=Skin téma DefaultSkin=Default skin téma MaxSizeList=Maximální délka seznamu -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) +DefaultMaxSizeList=Výchozí maximální délka pro seznamy +DefaultMaxSizeShortList=Výchozí maximální délka pro krátké seznamy (tj. V kartě zákazníka) MessageOfDay=Zpráva dne MessageLogin=Přihlašovací stránka zprávu +LoginPage=přihlašovací stránka +BackgroundImageLogin=obrázek na pozadí PermanentLeftSearchForm=Permanentní vyhledávací formulář na levém menu DefaultLanguage=Výchozí jazyk používat (kód jazyka) EnableMultilangInterface=Povolit vícejazyčné rozhraní EnableShowLogo=Zobrazit logo na levém menu -CompanyInfo=Společnosti / Nadace informace -CompanyIds=Společnost / nadace identity +CompanyInfo=Společnost/organizace informace +CompanyIds=Firma / organizace identity CompanyName=Název CompanyAddress=Adresa CompanyZip=Zip CompanyTown=Město CompanyCountry=Země CompanyCurrency=Hlavní měna -CompanyObject=Object of the company +CompanyObject=Cílem firmy Logo=Logo DoNotSuggestPaymentMode=Nenaznačují NoActiveBankAccountDefined=Žádný aktivní bankovní účet definován OwnerOfBankAccount=Majitel %s bankovních účtů BankModuleNotActive=Účty v bankách modul není povolen, -ShowBugTrackLink=Show link "%s" +ShowBugTrackLink=Ukázat odkaz " %s " Alerts=Upozornění DelaysOfToleranceBeforeWarning=Tolerance zpoždění před varování DelaysOfToleranceDesc=Tato obrazovka umožňuje definovat tolerovat zpoždění před upozornění je hlášen na obrazovce s %s Piktogram pro každý pozdní prvek. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet +Delays_MAIN_DELAY_ACTIONS_TODO=Tolerance zpoždění (ve dnech) před záznamem o plánovaných akcích (Agenda akce) dosud nerealizovaných +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerance zpoždění (ve dnech) před záznam o projektu není uzavřeno v čase +Delays_MAIN_DELAY_TASKS_TODO=Zpozdit toleranci (ve dnech) před záznamem o plánovaných úkolů (projektové úkoly) dosud nebyly dokončeny +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerance zpoždění (ve dnech) před záznamem na objednávkách dosud nezpracovaných +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolerance zpoždění (ve dnech) před záznamem na dodavatele zakázky dosud nezpracovaných Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Zpoždění tolerance (ve dnech) před záznam o návrzích zavřete Delays_MAIN_DELAY_PROPALS_TO_BILL=Zpoždění tolerance (ve dnech) před záznam o návrzích účtovány Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance zpoždění (ve dnech) před záznam o službách aktivovat @@ -967,30 +995,30 @@ Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Toleranci zpoždění (ve dnech) před Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance zpoždění (ve dnech) před probíhajícím záznamu o bankovním smíření Delays_MAIN_DELAY_MEMBERS=Tolerance zpoždění (ve dnech) před záznam o zpoždění členského poplatku Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance zpoždění (ve dnech) před pohotovosti pro kontrolu vklad dělat -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance zpoždění (ve dnech) před záznamem pro výkazů o výdajích schválit +SetupDescription1=Oblast nastavení je pro počáteční nastavení parametrů ještě před začátkem užívání Dolibarr. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Ostatní položky menu spravovat volitelné parametry. LogEvents=Události bezpečnostní audit Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances +InfoDolibarr=o Dolibarr +InfoBrowser=O prohlížeči +InfoOS=o OS +InfoWebServer=O webovém serveru +InfoDatabase=o databázi +InfoPHP=o PHP +InfoPerf=o výkonech BrowserName=Název prohlížeče BrowserOS=Prohlížeč OS ListOfSecurityEvents=Seznam Dolibarr událostí zabezpečení SecurityEventsPurged=Bezpečnostní akce očistil LogEventDesc=Můžete povolit zde protokolování událostí Dolibarr zabezpečení. Správci mohou potom vidět jeho obsah pomocí nástrojů systému menu - audit. Pozor, tato funkce může spotřebovat velké množství dat v databázi. -AreaForAdminOnly=Tyto vlastnosti mohou být použity správcem uživatele. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Systémové informace je různé technické informace získáte v režimu pouze pro čtení a viditelné pouze pro správce. SystemAreaForAdminOnly=Tato oblast je k dispozici pro správce uživatele. Žádný z Dolibarr oprávnění může snížit tento limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) +CompanyFundationDesc=Úpravy na této stránce všechny známé informace o společnosti nebo nadace, které potřebujete spravovat (K tomu, klikněte na „Upravit“ nebo tlačítko „uložit“ v dolní části stránky) DisplayDesc=Můžete si vybrat každý parametr týkající se vzhledu Dolibarr a cítit se zde AvailableModules=Dostupné moduly ToActivateModule=Pro aktivaci modulů, přejděte na nastavení prostoru (Domů-> Nastavení-> Modules). @@ -1003,15 +1031,15 @@ TriggerDisabledAsModuleDisabled=Trigger v tomto souboru jsou zakázány jako mod TriggerAlwaysActive=Trigger v tomto souboru jsou vždy aktivní, ať už jsou aktivované Dolibarr moduly. TriggerActiveAsModuleActive=Trigger v tomto souboru jsou aktivní jako modul %s je povoleno. GeneratedPasswordDesc=Definujte zde pravidlo, které chcete použít k vytvoření nového hesla, pokud se zeptáte mít automaticky generované heslo -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. +DictionaryDesc=Vložit všechny referenční data. Můžete přidat své hodnoty na výchozí hodnoty. +ConstDesc=Na této stránce můžete upravovat všechny ostatní parametry které nejsou k dispozici v předchozích stránkách. Ty jsou většinou vyhrazeny parametry pro vývojáře a pokročilé řešení problémů. Pro seznam možnosti kontrole zde . +MiscellaneousDesc=Všechny ostatní parametry spojené s bezpečností definujete zde. LimitsSetup=Limity / Přesné nastavení LimitsDesc=Můžete definovat limity, upřesnění a optimalizace používané Dolibarr zde MAIN_MAX_DECIMALS_UNIT=Max desetinná pro jednotkových cen MAIN_MAX_DECIMALS_TOT=Max desetinná místa pro celkové ceny MAIN_MAX_DECIMALS_SHOWN=Max desetinná pro ceny zobrazeny na obrazovce (Přidat ... po této řady, chcete-li vidět ... když je číslo zkrácena při zobrazení na obrazovce) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +MAIN_ROUNDING_RULE_TOT=Krok zaokrouhlování (pro země, kde se zaokrouhlení provádí na něčem jiném, než je základna 10. Například položte 0,05, pokud se zaokrouhlení provede o 0,05 kroků) UnitPriceOfProduct=Čistá jednotková cena produktu TotalPriceAfterRounding=Celková cena (bez DPH / s DPH / s DPH) po zaokrouhlení ParameterActiveForNextInputOnly=Parametr efektivní pro další vstup pouze @@ -1019,7 +1047,7 @@ NoEventOrNoAuditSetup=Žádná událost zabezpečení byl zaznamenán ještě. T NoEventFoundWithCriteria=Žádná událost zabezpečení byl nalezen na těchto vyhledávacích kritérii. SeeLocalSendMailSetup=Podívejte se na místní sendmail nastavení BackupDesc=Chcete-li provést kompletní zálohu Dolibarr, musíte: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). +BackupDesc2=Uložte obsah adresáře dokumentů ( %s ), který obsahuje všechny nahrané a generované soubory (tedy obsahuje všechny soubory výpisu generovaných v kroku 1). BackupDesc3=Uložte obsah databáze (%s), do souboru výpisu. K tomu můžete použít následující asistenta. BackupDescX=Archivní adresář by měl být skladován na bezpečném místě. BackupDescY=Vygenerovaný soubor výpisu by měl být skladován na bezpečném místě. @@ -1068,22 +1096,23 @@ SendmailOptionNotComplete=Upozornění na některých operačních systémech Li PathToDocuments=Cesta k dokumentům PathDirectory=Adresář SendmailOptionMayHurtBuggedMTA=Funkce se odesílat e-maily pomocí metody "PHP mail direct" bude generovat e-mailové zprávy, které by mohly být není správně analyzovat některými dostávají poštovní servery. Výsledkem je, že některé maily nelze číst lidé hostovaných těmito platformami odposloucháván. To je případ některých poskytovatelů služeb Internetu (Ex: Orange ve Francii). To není problém do Dolibarr ani do PHP, ale na přijímání e-mailový server. Můžete však přidat možnost MAIN_FIX_FOR_BUGGED_MTA do 1 do nastavení - jiné upravovat Dolibarr k tomu nedošlo. Nicméně, může dojít k problému s jinými servery, které respektují přísně standard SMTP. Jiné řešení (doporučeno), je použít metodu "SMTP socket knihovnu", které nemá žádné nevýhody. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TranslationSetup=Nastavení překladu +TranslationKeySearch=Hledat klíč překlad nebo řetězec +TranslationOverwriteKey=Přepsat překlad řetězec +TranslationDesc=Jak nastavit zobrazený jazyk aplikace:
* systémovou: nabídku Domů - Nastavení - zobrazení
* Per uživatele: Nastavení zobrazení uživatelů na kartě uživatele (klikněte na uživatelské jméno v horní části obrazovky). +TranslationOverwriteDesc=Můžete také přepsat řetězce čerpacích následující tabulky. Vyberte si svůj jazyk „%s“ rozbalené, vložte klíč řetězec překlad do „%s“ a svým novým překladem do „%s“ +TranslationOverwriteDesc2=Můžete použít kartu další, které vám pomohou vědět, klíč překlad používat +TranslationString=překlad string +CurrentTranslationString=Aktuální překladový řetězec +WarningAtLeastKeyOrTranslationRequired=A kritéria vyhledávání je zapotřebí alespoň na klíče nebo překladu řetězce +NewTranslationStringToShow=Nový překlad řetězec ukázat +OriginalValueWas=Původní překlad je přepsán. Původní hodnota byla:
%s +TransKeyWithoutOriginalValue=nucen vám nový překlad pro klíč překladu ‚ %s ‘, která nemá v žádném jazykové soubory nejsou existuje +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Musíte povolit alespoň jeden modul ClassNotFoundIntoPathWarning=Třída %s nenašli cestu do PHP YesInSummer=Ano v létě -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Všimněte si, pouze tyto moduly jsou otevřeny pro externí uživatele (ať mají povolení těchto uživatelů) a pouze tehdy, pokud bylo uděleno oprávnění: SuhosinSessionEncrypt=Úložiště relace šifrována Suhosin ConditionIsCurrently=Podmínkou je v současné době %s YouUseBestDriver=Pomocí ovladače %s, že je nejlepší řidič současné době k dispozici. @@ -1096,45 +1125,47 @@ BrowserIsKO=Používáte %s webovém prohlížeči. Tento prohlížeč je známo XDebugInstalled=Xdebug je načten. XCacheInstalled=XCache načten. AddRefInList=Displej zákazník / dodavatel ref do seznamu (vyberte seznam nebo ComboBox) a většina z hypertextový odkaz. Třetí strany budou zobrazí s názvem "CC12345 - SC45678 - Velké firmy coorp", namísto "The velké společnosti coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. +AskForPreferredShippingMethod=Požádat o přednostní způsob odeslání pro subjekty FieldEdition=Editace položky %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) +FillThisOnlyIfRequired=Příklad: 2 (vyplnit pouze v případě časové pásmo kompenzovat problémy jsou zkušení) GetBarCode=Získat čárový kód ##### Module password generation PasswordGenerationStandard=Zpět heslo generované podle interního algoritmu Dolibarr: 8 znaků obsahující sdílené čísla a znaky malými písmeny. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description +PasswordGenerationNone=Nenaznačují žádnou vygenerované heslo. Heslo musí být zadány ručně. +PasswordGenerationPerso=Vrátit hesla dle Vašeho osobně definované konfiguraci. +SetupPerso=Podle konfigurace +PasswordPatternDesc=Popis popisu hesla ##### Users setup ##### RuleForGeneratedPasswords=Pravidlo pro generování hesel navrhovaná nebo ověřování hesla DisableForgetPasswordLinkOnLogonPage=Nezobrazovat na odkaz "Zapomněli jste heslo" na přihlašovací stránce UsersSetup=Uživatelé modul nastavení UserMailRequired=EMail nutné vytvořit nového uživatele ##### HRM setup ##### -HRMSetup=HRM module setup +HRMSetup=setup HRM Modul ##### Company setup ##### CompanySetup=Firmy modul nastavení CompanyCodeChecker=Modul pro generování kódu třetích stran a přezkušování (zákazník nebo dodavatel) AccountCodeManager=Modul pro generování kódu účetnictví (zákazník nebo dodavatel) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. +NotificationsDesc=E-maily oznámení funkce vám umožní tiše odesílat automatické poštu, pro některé události Dolibarr. Cíle oznámení mohou být definovány: +NotificationsDescUser=* Uživatelé na jeden uživatel v čase. +NotificationsDescContact=* Za subjekty kontakty (zákazníci nebo dodavatelé), jeden kontakt v době. +NotificationsDescGlobal=* Nebo nastavením globálních cílových e-mailů na stránce nastavení modulu. ModelModules=Dokumenty šablony DocumentModelOdt=Generování dokumentů z OpenDocuments šablon (. ODT nebo ODS. Soubory OpenOffice, KOffice, TextEdit, ...) WatermarkOnDraft=Vodoznak na návrhu dokumentu -JSOnPaimentBill=Activate feature to autofill payment lines on payment form +JSOnPaimentBill=Aktivovat funkci pro automatické vyplňování platebních řádků na formuláři platby CompanyIdProfChecker=Pravidla pro profesionální IDs -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? +MustBeUnique=Musí být jedinečný? +MustBeMandatory=Povinné k vytvoření subjektu? +MustBeInvoiceMandatory=Povinné ověřování faktur? +TechnicalServicesProvided=Technické služby poskytované ##### Webcal setup ##### WebCalUrlForVCalExport=Export odkaz na %s formátu je k dispozici na následujícím odkazu: %s ##### Invoices ##### BillsSetup=Faktury modul nastavení BillsNumberingModule=Faktury a dobropisy číslování modelu BillsPDFModules=Fakturační doklady modely +PaymentsPDFModules=Payment documents models CreditNote=Dobropis CreditNotes=Dobropisy ForceInvoiceDate=Force faktury datum Datum ověření @@ -1143,9 +1174,9 @@ SuggestPaymentByRIBOnAccount=Navrhnout platbu odstoupit z důvodu SuggestPaymentByChequeToAddress=Navrhnout platbu šekem na FreeLegalTextOnInvoices=Volný text na fakturách WatermarkOnDraftInvoices=Vodoznak k návrhům faktur (pokud žádný prázdný) -PaymentsNumberingModule=Payments numbering model +PaymentsNumberingModule=Platby modelu číslování SuppliersPayment=Platby dodavatelům -SupplierPaymentSetup=Suppliers payments setup +SupplierPaymentSetup=setup Dodavatelé platby ##### Proposals ##### PropalSetup=Obchodní návrhy modul nastavení ProposalsNumberingModules=Komerční návrh číslování modely @@ -1155,21 +1186,21 @@ WatermarkOnDraftProposal=Vodoznak na předloh návrhů komerčních (none-li pr BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Zeptejte se na umístění bankovního účtu nabídky ##### SupplierProposal ##### SupplierProposalSetup=Cena požaduje nastavení dodavatelé modul -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models +SupplierProposalNumberingModules=Cena žádosti dodavatele číslování modelů +SupplierProposalPDFModules=Cena požaduje dodavatelé dokumenty modely FreeLegalTextOnSupplierProposal=Volný text na žádosti o cenový dodavatele -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) +WatermarkOnDraftSupplierProposal=Vodoznak na předem požadovaných cenách dodavatelé (žádný není prázdný) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Zeptejte se na bankovní účet destinaci nabídce ceny -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Zadat zdroj datového skladu pro objednávku ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Požádat o bankovní účet určení dodavatele objednávku ##### Orders ##### OrdersSetup=Objednat řízení nastavení OrdersNumberingModules=Objednávky číslování modelů OrdersModelModule=Objednat dokumenty modely FreeLegalTextOnOrders=Volný text o objednávkách WatermarkOnDraftOrders=Vodoznak na konceptech objednávek (pokud žádný prázdný) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable +ShippableOrderIconInList=Přidejte ikonu v seznamu objednávek, které určí, zda objednávka je možné doručit BANK_ASK_PAYMENT_BANK_DURING_ORDER=Zeptejte se na bankovní účet destinaci objednávky ##### Interventions ##### InterventionsSetup=Intervence modul nastavení @@ -1214,7 +1245,7 @@ LDAPServerUseTLS=Použít TLS LDAPServerUseTLSExample=Váš server LDAP použití TLS LDAPServerDn=Server DN LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) +LDAPAdminDnExample=Kompletní DN (ex: cn = admin, dc = example, dc = com nebo CN = správce, CN = Uživatelé, dc = example, dc = com pro aktivní adresář) LDAPPassword=Heslo správce LDAPUserDn=DN uživatelů LDAPUserDnExample=Kompletní DN (ex: ou = uživatelé, dc = priklad, dc = com) @@ -1302,7 +1333,7 @@ LDAPFieldCompanyExample=Příklad: o LDAPFieldSid=SID LDAPFieldSidExample=Příklad: objectSID LDAPFieldEndLastSubscription=Datum ukončení předplatného -LDAPFieldTitle=Job position +LDAPFieldTitle=Pracovní pozice LDAPFieldTitleExample=Příklad: title LDAPSetupNotComplete=Nastavení LDAP není úplná (přejděte na záložku Ostatní) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Žádný správce nebo heslo k dispozici. LDAP přístup budou anonymní a pouze pro čtení. @@ -1327,25 +1358,32 @@ FilesOfTypeNotCached=Soubory typu %s nejsou ukládány do mezipaměti serveru HT FilesOfTypeCompressed=Soubory typu %s jsou zkomprimovány serveru HTTP FilesOfTypeNotCompressed=Soubory typu %s nekomprimuje serveru HTTP CacheByServer=Cache serverem +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache v prohlížeči CompressionOfResources=Komprese odpovědí HTTP -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=Taková automatická detekce není možné u současných prohlížečů +DefaultValuesDesc=Můžete definovat / sílu zde výchozí hodnotu, kterou chcete získat, když si vytvořit nový rekord, a / nebo défaut filtry nebo pořadí řazení, když váš seznam záznamů. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produkty modul nastavení ServiceSetup=Služby modul nastavení ProductServiceSetup=Produkty a služby moduly nastavení NumberOfProductShowInSelect=Maximální počet výrobků ve komba vyberte seznamy (0 = bez omezení) ViewProductDescInFormAbility=Vizualizace popisy produktů ve formách (jinak jako vyskakovací bublině) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +MergePropalProductCard=Aktivovat v servisním / Attached kartě výrobku Soubory možnost sloučit produkt PDF dokument k návrhu PDF Azur-li výrobek / služba je v návrhu +ViewProductDescInThirdpartyLanguageAbility=Vizualizace popisů výrobků v jazyce subjektu +UseSearchToSelectProductTooltip=Také pokud máte velký počet produktů (> 100 000), můžete zvýšit rychlost nastavením konstantního PRODUCT_DONOTSEARCH_ANYWHERE na 1 v položce Setup-> Other. Hledání bude omezeno na začátek řetězce. +UseSearchToSelectProduct=Počkat stisknutí klávesy před vložením obsahu seznamu produktů combo (To může zvýšit výkon, pokud máte velké množství výrobků, ale je to méně pohodlné) SetDefaultBarcodeTypeProducts=Výchozí typ čárového kódu použít pro produkty SetDefaultBarcodeTypeThirdParties=Výchozí typ čárového kódu použít k třetím osobám -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition +UseUnits=Vymezují měrnou jednotku pro Množství v průběhu objednávky, návrh nebo faktura linky edition ProductCodeChecker= Modul pro generování kódu produktu a přezkušování (výrobku nebo služby) ProductOtherConf= Katalog / Konfigurace služby -IsNotADir=is not a directory! +IsNotADir=není adresář! ##### Syslog ##### SyslogSetup=Záznamy modul nastavení SyslogOutput=Záznamy výstupy @@ -1371,13 +1409,13 @@ BarcodeDescUPC=Čárových kódů typu UPC BarcodeDescISBN=Čárový kód typu ISBN BarcodeDescC39=Čárový kód typu C39 BarcodeDescC128=Čárový kód typu C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code +BarcodeDescDATAMATRIX=Čárový kód typu Datamatrix +BarcodeDescQRCODE=Čárových kódů typu QR kódu GenbarcodeLocation=Čárový kód generování nástroj pro příkazovou řádku (používaný vnitřním motorem u některých typů čárových kódů). Musí být v souladu s "genbarcode".
Například: / usr / local / bin / genbarcode BarcodeInternalEngine=Vnitřní motor BarCodeNumberManager=Manažer automatického definování čísel čárových kódů ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders +WithdrawalsSetup=Nastavení modulu Direct debetních platebních příkazů ##### ExternalRSS ##### ExternalRSSSetup=Externí RSS dovoz Nastavení NewRSS=New RSS Feed @@ -1396,8 +1434,8 @@ FixedEmailTarget=Pevná emailový cíl SendingsSetup=Odeslání Nastavení modulu SendingsReceiptModel=Odeslání stvrzenky modelu SendingsNumberingModules=Sendings číslování moduly -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +SendingsAbility=Podpora zásilka listy pro dodávky zákazníkům +NoNeedForDeliveryReceipts=Ve většině případů, dodacích listů jsou používány i jako listů pro dodávky zákazníkům (seznam produktů pro odeslání) a listů, které jsou přijímány a podepsané zákazníkem. Takže dodávky produktů příjmy je duplicitní funkce a je zřídka aktivován. FreeLegalTextOnShippings=Volný text o přepravě ##### Deliveries ##### DeliveryOrderNumberingModules=Produkty dodávky příjem číslování modul @@ -1412,7 +1450,7 @@ FCKeditorForProduct=WYSIWIG vytvoření / edice produktů / služeb popis a pozn FCKeditorForProductDetails=WYSIWIG tvorba / vydání z výrobků Detaily linky pro všechny subjekty (návrhy, objednávky, faktury, atd ...). Upozornění: Použití této možnosti pro tento případ je vážně nedoporučuje, protože to může způsobit problémy se speciálními znaky a formátování stránky při vytváření PDF soubory. FCKeditorForMailing= WYSIWIG vytvoření / edice pro hromadné eMailings (Nástroje-> e-mailem) FCKeditorForUserSignature=WYSIWIG vytvoření / edice uživatelského podpisu -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) +FCKeditorForMail=Vytvoření WYSIWIG / edition pro veškerou poštu (s výjimkou Nástroje-> e-mailem) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Připojení úspěšné, ale databáze nevypadá, že databáze OsCommerce (Klíčové %s nenašli v tabulce %s). OSCommerceTestOk=Připojení k serveru "%s" na databázi "%s" s úspěšní uživatel "%s. @@ -1420,12 +1458,12 @@ OSCommerceTestKo1=Připojení k "%s" serveru úspěšná, ale databáz OSCommerceTestKo2=Připojení k serveru "%s" s uživatelem "%s 'se nezdařilo. ##### Stock ##### StockSetup=Konfigurace modulu Sklady -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. +IfYouUsePointOfSaleCheckModule=Pokud použijete místě prodeje (POS modulu modulu stanoveného ve výchozím nebo jiným externím modulu), může být toto nastavení ignorováno vaší místě prodeje modulu. Most na prodejních místech moduly jsou navrženy tak, aby vytvořit ihned fakturu a snížit zásoby standardně bez ohledu jsou možnosti zde. Takže, pokud potřebujete mít či nemít pokles zásoby při registraci prodat ze svého Point of Sale, zkontrolujte také váš POS modul nastavit. ##### Menu ##### MenuDeleted=Menu smazán Menus=Nabídky TreeMenuPersonalized=Personalizované menu -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NotTopTreeMenuPersonalized=Personalizované menu nejsou spojeny s horní položku nabídky NewMenu=Nová nabídka Menu=Výběr z jídelního lístku MenuHandler=Menu handler @@ -1446,10 +1484,10 @@ DetailTarget=Cíl pro odkazy (_blank nahoře otevře nové okno) DetailLevel=Úroveň (-1: hlavní menu, 0: header menu> 0 Menu a dílčí menu) ModifMenu=Menu změna DeleteMenu=Smazat položku nabídky -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu +ConfirmDeleteMenu=Jste si jisti, že chcete smazat položku v nabídce %s ? +FailedToInitializeMenu=Nepodařilo se inicializovat nabídku ##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup +TaxSetup=Daně, sociální a fiskální daně a dividendy nastavení modulu OptionVatMode=DPH z důvodu OptionVATDefault=Cash základ OptionVATDebitOption=Akruální báze @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Faktura použita data Buy=Koupit Sell=Prodávat InvoiceDateUsed=Faktura použita data -YourCompanyDoesNotUseVAT=Vaše společnost byla definována nepoužívat DPH (Home - Nastavení - Firma / Foundation), takže není DPH na možnosti nastavení. +YourCompanyDoesNotUseVAT=Vaše společnost byla definována tak, aby nepoužívá DPH (Home - Setup - Firma / organizace), takže neexistují žádné možnosti DPH na nastavení. AccountancyCode=Účetnictví kód AccountancyCodeSell=Prodej účtu. kód AccountancyCodeBuy=Nákup účet. kód @@ -1472,19 +1510,20 @@ AccountancyCodeBuy=Nákup účet. kód AgendaSetup=Akce a agenda Nastavení modulu PasswordTogetVCalExport=Klíč povolit export odkaz PastDelayVCalExport=Neexportovat události starší než -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form +AGENDA_USE_EVENT_TYPE=Typy použití akce (řízený do menu Nastavení -> Slovník -> typ pořadu událostí) +AGENDA_USE_EVENT_TYPE_DEFAULT=Nastaví automaticky tuto výchozí hodnotu pro typ akce do akce vytvářet formuláře AGENDA_DEFAULT_FILTER_TYPE=Nastavit automaticky tento typ události do vyhledávacího filtru pohledu agendy AGENDA_DEFAULT_FILTER_STATUS=Nastavit automaticky tento stav pro události do vyhledávacího filtru pohledu agendy AGENDA_DEFAULT_VIEW=Karta, kterou chcete otevřít ve výchozím nastavení při výběru v menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_NOTIFICATION=Povolit oznámení události na uživatelských prohlížečů, když je dosaženo datum události (každý uživatel má možnost odmítnout to z potvrzovacího prohlížeč otázky o) +AGENDA_NOTIFICATION_SOUND=Povolit zvukové upozornění +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Klikněte pro Dial Nastavení modulu -ClickToDialUrlDesc=Url volána, když se provádí kliknutím na tel. Piktogram. Do pole URL můžete použít značky
__PHONETO__ Který bude nahrazen s telefonním číslem osoby volat
__PHONEFROM__ Který bude nahrazen tel. číslo volajícího (vaše)
__LOGIN__ Který bude nahrazen s clicktodial přihlášení (definované na kartě uživatele)
__PASS__ Který bude nahrazen s clicktodial heslo (definované na kartě uživatele). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialDesc=Tento modul umožňuje kliknutí na telefonní číslo. Kliknutím na tuto ikonu bude volat, aby váš telefon pro volání na telefonní číslo. Toho lze využít k volání call centra systému z Dolibarr které mohou volat na telefonní číslo SIP systému, například. +ClickToDialUseTelLink=Na telefonních číslech použijte pouze odkaz "tel:" +ClickToDialUseTelLinkDesc=Tuto metodu použijte, pokud uživatelé mají softwarový telefon nebo softwarové rozhraní nainstalován na stejném počítači, než prohlížeče, a volal, když kliknete na odkaz ve vašem prohlížeči, které začínají „tel“. Pokud potřebujete komplexní řešení serveru (bez nutnosti lokální instalace softwaru), musíte toto nastavit na „Ne“ a vyplňte následující pole. ##### Point Of Sales (CashDesk) ##### CashDesk=Bod prodeje CashDeskSetup=Místě prodeje modulu nastavení @@ -1492,11 +1531,11 @@ CashDeskThirdPartyForSell=Výchozí obecná třetí strana použitá pro prodej CashDeskBankAccountForSell=Výchozí účet použít pro příjem plateb v hotovosti CashDeskBankAccountForCheque= Výchozí účet použít pro příjem plateb šekem CashDeskBankAccountForCB= Výchozí účet použít pro příjem plateb prostřednictvím kreditní karty -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). +CashDeskDoNotDecreaseStock=Zakážete pokles akcií, pokud je prodej uskutečněn z prodejního místa (pokud je to "ne", u každého prodeje provedeného z POS se sníží akcie, ať už je nastavena volba do modulu Akcie). CashDeskIdWareHouse=Vynutit a omezit sklad používat pro pokles zásob -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. +StockDecreaseForPointOfSaleDisabled=Sklad pokles od Point of Sale zakázán +StockDecreaseForPointOfSaleDisabledbyBatch=Sklad pokles POS není kompatibilní s řízením šarží +CashDeskYouDidNotDisableStockDecease=Jste nezakázali nutnosti snížení při provádění sell od Point of Sale. Takže je zapotřebí sklad. ##### Bookmark ##### BookmarkSetup=Záložka Nastavení modulu BookmarkDesc=Tento modul umožňuje spravovat záložky. Můžete také přidat zástupce pro všechny Dolibarr stránky nebo externale webových stránek na vašem levém menu. @@ -1505,15 +1544,15 @@ NbOfBoomarkToShow=Maximální počet záložek zobrazí v levém menu WebServicesSetup=Webservices modul nastavení WebServicesDesc=Tím, že tento modul, Dolibarr stal webový server služby poskytovat různé webové služby. WSDLCanBeDownloadedHere=WSDL deskriptor soubory poskytovaných služeb lze stáhnout zde -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +EndPointIs=SOAP klienti musí poslat své požadavky na Dolibarr koncový bod je k dispozici na adrese ##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +ApiSetup=setup API modul +ApiDesc=Povolením tohoto modulu Dolibarr stal REST server poskytovat různé webové služby. +ApiProductionMode=Povolení režimu výroby (to bude aktivovat použití cache pro správu služeb) +ApiExporerIs=Si můžete prohlédnout a vyzkoušet API na adrese +OnlyActiveElementsAreExposed=Jediné prvky z povolených modulů jsou vystaveny +ApiKey=Klíčem k API +WarningAPIExplorerDisabled=Průzkumník API byla zakázána. explorer API není povinen poskytovat služby API. Jedná se o nástroj pro vývojáře najít / testovací REST API. Potřebujete-li tento nástroj, přejděte do nastavení modulu API REST pro jeho aktivaci. ##### Bank ##### BankSetupModule=Bankovní modul nastavení FreeLegalTextOnChequeReceipts=Volný text na kontroly příjmů @@ -1522,8 +1561,7 @@ BankOrderGlobal=Obecný BankOrderGlobalDesc=Obecné pořadí zobrazení BankOrderES=Španělština BankOrderESDesc=Španělská pořadí zobrazení -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - +ChequeReceiptsNumberingModule=Zkontrolujte, zda příjmy číslování modul ##### Multicompany ##### MultiCompanySetup=Společnost Multi-modul nastavení ##### Suppliers ##### @@ -1545,121 +1583,126 @@ ProjectsSetup=Projekt modul nastavení ProjectsModelModule=Projekt zprávy Vzor dokladu TasksNumberingModules=Úkoly číslování modul TaskModelModule=Úkoly zprávy Vzor dokladu -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) +UseSearchToSelectProject=Použít automatické dokončování polí pro výběr projektu (namísto použití pole se seznamem) ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period +AccountingPeriods=účetní období +AccountingPeriodCard=Účetní období +NewFiscalYear=Nové účetní období +OpenFiscalYear=Otevřené účetní období +CloseFiscalYear=Uzavřené účetní období +DeleteFiscalYear=Smazat účetní období +ConfirmDeleteFiscalYear=Opravdu chcete smazat toto účetní období? +ShowFiscalYear=Show účetní období AlwaysEditable=Může být vždy upraveno -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) +MAIN_APPLICATION_TITLE=Nutit viditelný název aplikace (upozornění: nastavení své jméno zde může dojít ke zlomení automatického vyplňování přihlašovacích funkci při používání mobilní aplikace DoliDroid) NbMajMin=Minimální počet velkých písmen NbNumMin=Minimální počet číselných znaků NbSpeMin=Minimální počet speciálních znaků NbIteConsecutive=Maximální počet opakování stejných znaků -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation +NoAmbiCaracAutoGeneration=Nepoužívejte nejednoznačné znaky ( "1", "L", "i", "|", "0", "O") pro automatické generování SalariesSetup=Nastavení modulu platů SortOrder=Řazení objedávek Format=Formát -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type +TypePaymentDesc=0: Zákazník typ platby, 1: Dodavatel typ platby, 2: Oba zákazníci a dodavatelé typ platby IncludePath=Zahrnout cestu (definováno v proměnné% s) ExpenseReportsSetup=Nastavení modulu Expense Reports TemplatePDFExpenseReports=Šablon dokumentů ke generování dokumentu sestavy výdajů -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** +NoModueToManageStockIncrease=Žádný modul schopen řídit automatické zvýšení zásoby byl aktivován. Zvýšení fond bude probíhat pouze na ruční vstup. +YouMayFindNotificationsFeaturesIntoModuleNotification=Můžete najít možnosti pro oznamování e-mailu aktivaci a konfiguraci modulu „oznámením“. +ListOfNotificationsPerUser=Seznam oznámení na uživatele * +ListOfNotificationsPerUserOrContact=Seznam oznámení na jednoho uživatele * nebo na kontakt ** ListOfFixedNotifications=Seznam pevných oznámení -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +GoOntoUserCardToAddMore=Přejít na záložku „oznámení“ o uživateli přidat nebo odebrat oznámení pro uživatele +GoOntoContactCardToAddMore=Přejít na záložku „Oznámení“ třetí strany přidat nebo odebrat oznámení pro kontakty / adresy Threshold=Práh BackupDumpWizard=Průvodce vybudovat záložní databázi soubor s výpisem SomethingMakeInstallFromWebNotPossible=Instalace externího modulu není možné z webového rozhraní z tohoto důvodu: SomethingMakeInstallFromWebNotPossible2=Z tohoto důvodu, proces upgradovat popsáno zde je pouze ruční kroky privilegovaný uživatel může dělat. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only +InstallModuleFromWebHasBeenDisabledByFile=Instalace externí modul z aplikace byl zakázán správcem. Musíte ho požádat, aby odstranit soubor %s , aby tuto funkci povolil. +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Označte řádky tabulky, když tah myš vynechá +HighlightLinesColor=Zvýrazněte barvu čáry, když myší prochází (držte prázdné, aby nebylo zvýrazněno) +TextTitleColor=Barva názvu stránky +LinkColor=Barva odkazů +PressF5AfterChangingThis=Stisknutím klávesy CTRL + F5 na klávesnici nebo vymazat mezipaměť prohlížeče Po změně této hodnoty, aby bylo účinné +NotSupportedByAllThemes=Se pracuje s stěžejních témat, nemusí být podporována externími tématy +BackgroundColor=Barva pozadí +TopMenuBackgroundColor=barva pozadí pro Top nabídky +TopMenuDisableImages=Skrýt obrázky v Top nabídky +LeftMenuBackgroundColor=barva pozadí na levé menu +BackgroundTableTitleColor=Barva pozadí pro tabulku názvu linky +BackgroundTableLineOddColor=Barva pozadí pro liché řádky tabulky +BackgroundTableLineEvenColor=barva pozadí pro sudé řádky tabulky +MinimumNoticePeriod=Minimální výpovědní lhůta (Vaše žádost dovolená musí být provedeno před tímto zpožděním) +NbAddedAutomatically=Počet dnů, přidány do čítače uživatelů (automaticky) každý měsíc +EnterAnyCode=Toto pole obsahuje odkaz k identifikaci řádku. Zadat libovolnou hodnotu dle vlastního výběru, ale bez speciálních znaků. +UnicodeCurrency=mezi závorkami, seznam počtu bajtů, které představují symbol měny zadejte zde. Pro exemple: za $, zadejte [36] - pro Brazílii real R $ [82,36] - pro €, zadejte [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 +PositionIntoComboList=Postavení linky do seznamů combo +SellTaxRate=Prodej sazba daně +RecuperableOnly=Ano pro DPH „Non Perçue druhotných“ určený pro nějaký stát ve Francii. Udržovat hodnotu „Ne“ ve všech ostatních případech. +UrlTrackingDesc=V případě, že poskytovatel nebo dopravy nabízejí stránky nebo webové stránky, zkontrolovat stav vašeho dopravou, můžete ji zadat zde. Můžete použít tlačítko {} TrackID do parametrů URL, takže systém bude jej nahradit hodnota sledovací číslo uživatele uzavřela odeslání karty. +OpportunityPercent=Při vytváření příležitostí, budete definoval odhadované částky projektu / olovo. V závislosti na stavu příležitosti, může být tato částka vícenásobných tímto tempem zhodnotit celkovou částku všechny své možnosti, může generovat. Hodnota je procento (mezi 0 a 100). +TemplateForElement=Tento záznam šablona je určena ke kterému element +TypeOfTemplate=Typ šablony +TemplateIsVisibleByOwnerOnly=Šablona je viditelná pouze vlastníkovi FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read
ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +FillFixTZOnlyIfRequired=Příklad: 2 (vyplnit pouze tehdy, pokud problém týkal) +ExpectedChecksum=očekává Kontrolní součet +CurrentChecksum=Aktuální Kontrolní +ForcedConstants=Potřebné konstanty +MailToSendProposal=Chcete-li poslat návrh zákazníka +MailToSendOrder=Pro odeslání objednávky zákazníka +MailToSendInvoice=Chcete-li poslat zákazníkům faktury +MailToSendShipment=Chcete-li poslat zásilku +MailToSendIntervention=Chcete-li poslat zásah +MailToSendSupplierRequestForQuotation=Chcete-li odeslat žádost o kotace pro dodavatele +MailToSendSupplierOrder=Chcete-li poslat dodavatele objednávku +MailToSendSupplierInvoice=Chcete-li poslat dodavatelské faktury +MailToSendContract=Chcete-li poslat smlouvu +MailToThirdparty=Chcete-li poslat e-mail ze strany subjektů +ByDefaultInList=Zobrazit výchozí zobrazení seznamu +YouUseLastStableVersion=Používáte nejnovější stabilní verzi +TitleExampleForMajorRelease=Příklad zprávy, kterou lze použít k oznámit tuto hlavní verzi (bez obav používat na svých webových stránkách) +TitleExampleForMaintenanceRelease=Příklad zprávy, kterou lze použít k oznámit toto uvolnění do provozu (bez obav používat na svých webových stránkách) +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP a CRM %s je k dispozici. Verze %s je hlavní verze s mnoha novými funkcemi pro uživatele i vývojáře. Můžete jej stáhnout z oblasti stahování https://www.dolibarr.org portálu (podadresář Stable verze). Pro úplný seznam změn můžete přečíst ChangeLog . +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s je k dispozici. Verze %s je verze údržby, takže obsahuje pouze opravy o chybách. Doporučujeme všem používáte starší verzi pro upgrade na tento jeden. Jako každá vydání údržby, žádné nové funkce, ani změna struktury dat je přítomna v této verzi. Můžete si jej stáhnout z stažení části https://www.dolibarr.org portál (podadresář stabilní verze). Můžete si přečíst ChangeLog Úplný seznam změn. +MultiPriceRuleDesc=Když volba „Několik úroveň cen za produkt / službu“ zapnutá, můžete definovat různé ceny (jeden na cenové hladině) pro každý výrobek. Chcete-li ušetřit čas, můžete zadat zde vládnout mít cenu pro každou úroveň autocalculated podle ceny první úrovni, takže budete muset zadat pouze cenu pro první stupeň na každém výrobku. Tato stránka je zde, aby vám ušetří čas a může být užitečná pouze v případě, ceny pro každou Leve jsou vzhledem k první úrovni. Můžete ignorovat tato stránka ve většině případů. +ModelModulesProduct=Šablony pro dokumenty produktů +ToGenerateCodeDefineAutomaticRuleFirst=Aby bylo možné automaticky generovat kódy, musíte nejprve definovat správce na auto definovat číslo čárového kódu. +SeeSubstitutionVars=Viz * Poznámka k seznamu možných substitučních proměnných +AllPublishers=Všichni majitelé stránek +UnknownPublishers=Neznámé nakladatelství +AddRemoveTabs=Přidání nebo odebrání záložky +AddDictionaries=Přidat slovníky +AddBoxes=Přidejte widgety +AddSheduledJobs=Přidat naplánované úlohy +AddHooks=Přidat háčky +AddTriggers=Přidat spouštěče +AddMenus=Přidejte menu +AddPermissions=Přidat oprávnění +AddExportProfiles=Přidejte export profilů +AddImportProfiles=Přidat import profilů +AddOtherPagesOrServices=Přidávat další stránky nebo služby +AddModels=Přidat dokument nebo číslování šablony +AddSubstitutions=Přidat klíče substituce +DetectionNotPossible=Detekce není možná +UrlToGetKeyToUseAPIs=Url dostat tokenu používat API (jednou známka byla obdržena je uložena na uživatele databáze tabulce a musí být k dispozici na každé volání API) +ListOfAvailableAPIs=Seznam dostupných rozhraní API +activateModuleDependNotSatisfied=Modul „%s“ závisí na modulu „%s“, který chybí, takže modul „%1$s“ nemusí fungovat correclty. Prosím, nainstalujte modul „%2$s“ nebo zakázat modul „%1$s“, pokud chcete být v bezpečí z jakéhokoliv překvapení +CommandIsNotInsideAllowedCommands=Příkaz pokusu o spuštění není uvnitř seznam povolených příkazů definovaných v parametru $ dolibarr_main_restrict_os_commands do conf.php souboru. +LandingPage=vstupní stránka +SamePriceAlsoForSharedCompanies=Pokud použijete multicompany modul, s volbou „Single cen“, bude cena by také být stejná pro všechny společnosti, pokud výrobky jsou sdíleny mezi prostředími +ModuleEnabledAdminMustCheckRights=Modul byl aktivován. Oprávnění pro aktivovaný modul (y) byly dány pouze pro uživatele admin. Možná budete muset udělit oprávnění pro ostatní uživatele nebo skupiny ručně v případě potřeby. +UserHasNoPermissions=Tento uživatel nemá žádné oprávnění definované +TypeCdr=Použijte „Žádný“ v případě, že datum platebního termínu je datum faktury plus delta ve dnech (delta je pole „Nb dnů“)
použití „Na konci měsíce“, pokud se po delty, musí být datum zvýšena se dostanete na konec měsíce (+ volitelná „Offset“ ve dnech)
použití „Current / Next“ mít platební termín datum jako první n-tého v měsíci (N se uloží do pole „Nb dnů“) +BaseCurrency=Referenční měna společnosti (jít do nastavení firmy to změnit) +WarningNoteModuleInvoiceForFrenchLaw=Tento modul %s je v souladu s francouzskými zákony (Loi finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +ResourceSetup=Konfigurace modulu Zdroje +UseSearchToSelectResource=Použijte vyhledávací formulář k výběru zdroje (spíše než rozevírací seznam). +DisabledResourceLinkUser=Disabled odkaz zdroj, který uživatele +DisabledResourceLinkContact=Zakázán link zdrojů do kontaktu diff --git a/htdocs/langs/cs_CZ/compta.lang b/htdocs/langs/cs_CZ/compta.lang index 2226078b362..9ad184c485d 100644 --- a/htdocs/langs/cs_CZ/compta.lang +++ b/htdocs/langs/cs_CZ/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Částky se zde uvedené jsou vypočítá Param=Nastavení RemainingAmountPayment=Zbývající částka platby: Account=Účet -Accountparent=Účet rodič -Accountsparent=Účty rodič +Accountparent=Parent účet +Accountsparent=mateřské účty Income=Příjem Outcome=Výdaj ReportInOut=Výnosy/náklady @@ -45,74 +45,75 @@ LT1SupplierES=RE nákupy VATCollected=Vybraná DPH ToPay=Zaplatit SpecialExpensesArea=Oblast pro všechny speciální platby -SocialContribution=Social or fiscal tax -SocialContributions=Social or fiscal taxes -SocialContributionsDeductibles=Deductible social or fiscal taxes -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes -LabelContrib=Label contribution -TypeContrib=Type contribution +SocialContribution=Sociální nebo daňová daň +SocialContributions=Sociální nebo daně za +SocialContributionsDeductibles=Odečitatelné sociální či daně za +SocialContributionsNondeductibles=Nondeductible sociální či daně za +LabelContrib=Příspěvek štítek +TypeContrib=Typ příspěvek MenuSpecialExpenses=Zvláštní výdaje MenuTaxAndDividends=Daně a dividendy -MenuSocialContributions=Social/fiscal taxes -MenuNewSocialContribution=New social/fiscal tax -NewSocialContribution=New social/fiscal tax -ContributionsToPay=Social/fiscal taxes to pay +MenuSocialContributions=Sociální / daňové daně +MenuNewSocialContribution=Nová sociální / fiskální daň +NewSocialContribution=Nová sociální / fiskální daň +AddSocialContribution=Přidejte sociální / fiskální daň +ContributionsToPay=Sociální / daně za náhradu AccountancyTreasuryArea=Oblast Účetnictví/Pokladna NewPayment=Nová platba Payments=Platby PaymentCustomerInvoice=Platba zákaznické faktury -PaymentSocialContribution=Social/fiscal tax payment +PaymentSocialContribution=Sociální / fiskální placení daní PaymentVat=Platba DPH ListPayment=Seznam plateb ListOfCustomerPayments=Seznam zákaznických plateb ListOfSupplierPayments=Seznam plateb dodavatelům DateStartPeriod=Datum zahájení období DateEndPeriod=Datum konce období -newLT1Payment=New tax 2 payment -newLT2Payment=New tax 3 payment -LT1Payment=Tax 2 payment -LT1Payments=Tax 2 payments -LT2Payment=Tax 3 payment -LT2Payments=Tax 3 payments +newLT1Payment=Nová platba daň Obecné podmínky 2 +newLT2Payment=Nová daň 3 platba +LT1Payment=Tax 2 platba +LT1Payments=Daňové 2 Platby +LT2Payment=Daň 3 platba +LT2Payments=Daňové 3 platby newLT1PaymentES=Nová RE platba newLT2PaymentES=Nová platba IRPF LT1PaymentES=RE Platba LT1PaymentsES=RE Platby LT2PaymentES=IRPF platba LT2PaymentsES=IRPF Platby -VATPayment=Sales tax payment -VATPayments=Sales tax payments -VATRefund=Sales tax refund -Refund=Refund -SocialContributionsPayments=Social/fiscal taxes payments +VATPayment=Prodejní daň platba +VATPayments=Daň z prodeje platby +VATRefund=Vrácení daně z prodeje +Refund=Vrácení +SocialContributionsPayments=Sociální / platby daně za ShowVatPayment=Zobrazit platbu DPH TotalToPay=Celkem k zaplacení -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account +BalanceVisibilityDependsOnSortAndFilters=pouze tehdy, pokud je řazen tabulka vzestupně na %s a filtrován 1 bankovního účtu je vidět v tomto seznamu Balance CustomerAccountancyCode=Kód účetnictví zákazník SupplierAccountancyCode=Kód účetnictví dodavatel -CustomerAccountancyCodeShort=Cust. account. code -SupplierAccountancyCodeShort=Sup. account. code +CustomerAccountancyCodeShort=Cust. účet. kód +SupplierAccountancyCodeShort=Sup. účet. kód AccountNumber=Číslo účtu NewAccountingAccount=Nový účet SalesTurnover=Obrat SalesTurnoverMinimum=Minimální obrat z prodeje -ByExpenseIncome=By expenses & incomes +ByExpenseIncome=Podle nákladů & příjmy ByThirdParties=Třetími stranami ByUserAuthorOfInvoice=Fakturu vystavil CheckReceipt=Zkontrolujte vklad CheckReceiptShort=Zkontrolujte vklad -LastCheckReceiptShort=Latest %s check receipts +LastCheckReceiptShort=Poslední %s kontrola příjmu NewCheckReceipt=Nová sleva NewCheckDeposit=Nová kontrola zálohy NewCheckDepositOn=Vytvořte potvrzení o vkladu na účet: %s -NoWaitingChecks=No checks awaiting deposit. +NoWaitingChecks=Žádné kontroly čeká na vklad. DateChequeReceived=Zkontrolujte datum příjmu NbOfCheques=Nb kontroly -PaySocialContribution=Pay a social/fiscal tax -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid? -DeleteSocialContribution=Delete a social or fiscal tax payment -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment? -ExportDataset_tax_1=Social and fiscal taxes and payments +PaySocialContribution=Platit sociální / fiskální daň +ConfirmPaySocialContribution=Jste si jisti, že chcete zařadit tento sociální nebo fiskální daň jako zaplaceno? +DeleteSocialContribution=Odstranit sociální a fiskální platbu daně +ConfirmDeleteSocialContribution=Opravdu chcete vymazat tuto sociální / daňovou daň? +ExportDataset_tax_1=Sociální a fiskální daně a platby CalcModeVATDebt=Režim %sDPH zápočtu na závazky%s. CalcModeVATEngagement=Režim %sDPH z rozšířených příjmů%s. CalcModeDebt=Režim %sPohledávky-závazky%s zobrazí Závazky účetnictví. @@ -130,15 +131,15 @@ AnnualByCompaniesInputOutputMode=Bilance příjmů a výdajů, detail třetích SeeReportInInputOutputMode=Viz zpráva %s Příjmy-Výdaje %s řekl hotovostní účetnictví pro výpočet na skutečných platbách SeeReportInDueDebtMode=Viz zpráva %s Pohledávky-Závazky %s řekl účtování závazků pro výpočet na vystavených fakturách RulesAmountWithTaxIncluded=- Uvedené částky jsou se všemi daněmi -RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.
- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. -RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
+RulesResultDue=- To zahrnuje neuhrazené faktury, výdaje a DPH, zda byly zaplaceny či nikoliv.
- Je založen na ověřených datech faktur a DPH a ke dni splatnosti pro náklady. Platy definované s plat modulem, použije se datum splatnosti platby. +RulesResultInOut=- To zahrnuje skutečné platby na fakturách, nákladů, DPH a platů.
- Je založen na datech plateb faktur, náklady, DPH a platů. Datum daru pro dárcovství. +RulesCADue=- To zahrnuje splatné faktury klienta, zda byly zaplaceny či nikoliv.
- Je založen na datum ověření těchto faktur
. RulesCAIn=- Obsahuje všechny účinné platby faktury přijaté od klientů.
- Je založen na datu úhrady těchto faktur
DepositsAreNotIncluded=- Zálohové faktury nejsou zahrnuty DepositsAreIncluded=- Zálohové faktury jsou zahrnuty LT2ReportByCustomersInInputOutputModeES=Zpráva o třetí straně IRPF LT1ReportByCustomersInInputOutputModeES=Zpráva třetí strany RE -VATReport=VAT report +VATReport=zpráva DPH VATReportByCustomersInInputOutputMode=Zpráva o vybrané a zaplacené DPH zákazníka VATReportByCustomersInDueDebtMode=Zpráva o vybrané a zaplacené DPH zákazníka VATReportByQuartersInInputOutputMode=Zpráva o sazbách DPH vybrané a odvedené @@ -171,37 +172,40 @@ InvoiceRef=Faktura čj. CodeNotDef=Není definováno WarningDepositsNotIncluded=Zálohové faktury nejsou zahrnuty v této verzi tohoto modulu účetnictví. DatePaymentTermCantBeLowerThanObjectDate=Datum termínu platby nemůže být nižší než datum objektu. -Pcg_version=Chart of accounts models +Pcg_version=Graf modelů účtů Pcg_type=Pcg typ Pcg_subtype=Pcg podtyp InvoiceLinesToDispatch=Řádky faktury pro odeslání ByProductsAndServices=Výrobky a služby RefExt=Externí ref -ToCreateAPredefinedInvoice=To create a template invoice, create a standard invoice, then, without validating it, click onto button "%s". +ToCreateAPredefinedInvoice=Chcete-li vytvořit šablonu faktury, vytvořit standardní faktury, pak bez ověřování jej, klikněte na tlačítko „%s“. LinkedOrder=Odkaz na objednávku Mode1=Metoda 1 Mode2=Metoda 2 CalculationRuleDesc=Chcete-li vypočítat celkovou částku DPH, jsou k dispozici dvě metody:
Metoda 1 je zaokrouhlení DPH na každém řádku, částky se sečtou.
Metoda 2 je součtem všech sum na každém řádku, pak se výsledek zaokrouhlí.
Konečný výsledek může se liší od několika haléřů. Výchozí režim je režim %s. -CalculationRuleDescSupplier=According to supplier, choose appropriate method to apply same calculation rule and get same result expected by your supplier. +CalculationRuleDescSupplier=podle dodavatele zvolte vhodnou metodu použití stejného pravidla pro výpočet a dostanete stejný výsledek, který očekáváte od svého dodavatele. TurnoverPerProductInCommitmentAccountingNotRelevant=Obratová zpráva za zboží při použití režimu hotovostního účetnictví není relevantní. Tato zpráva je k dispozici pouze při použití režimu zapojeného účetnictví (viz nastavení účetního modulu). CalculationMode=Výpočetní režim AccountancyJournal=Deník účetnických kódů -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) -CloneTax=Clone a social/fiscal tax -ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment +ACCOUNTING_VAT_SOLD_ACCOUNT=Účtování účet ve výchozím nastavení výběru daně - DPH při prodeji (používá pokud není definována v nastavení slovníku DPH) +ACCOUNTING_VAT_BUY_ACCOUNT=Účtování v úvahu jako výchozí pro obnoveného DPH - DPH při nákupu (používá pokud není definována v nastavení slovníku DPH) +ACCOUNTING_VAT_PAY_ACCOUNT=Účtovací účet pro platby DPH +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +CloneTax=Klonovat sociální / fiskální daň +ConfirmCloneTax=Potvrdí klon sociálního / fiskální zaplacení daně CloneTaxForNextMonth=Kopírovat pro příští měsíc -SimpleReport=Simple report -AddExtraReport=Extra reports (add foreign and national customer report) -OtherCountriesCustomersReport=Foreign customers report -BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code -SameCountryCustomersWithVAT=National customers report -BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code -LinkedFichinter=Link to an intervention -ImportDataset_tax_contrib=Social/fiscal taxes -ImportDataset_tax_vat=Vat payments -ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Accounting period +SimpleReport=jednoduchá zpráva +AddExtraReport=Další zprávy (přidat zahraniční a národní zprávy od zákazníka) +OtherCountriesCustomersReport=Zahraniční zákazníci nahlásit +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Na prvních dvou písmen čísla DPH je odlišný od kódu země vaší vlastní společnosti založené +SameCountryCustomersWithVAT=Národní zákazníci nahlásit +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Na prvních dvou písmen čísla DPH je stejný jako kód země vaší vlastní společnosti založené +LinkedFichinter=Odkaz na intervenci +ImportDataset_tax_contrib=Sociální / daňové daně +ImportDataset_tax_vat=platby DPH +ErrorBankAccountNotFound=Chyba: bankovní účet nebyl nalezen +FiscalPeriod=Účetní období +ListSocialContributionAssociatedProject=Seznam příspěvků na sociální zabezpečení v souvislosti s projektem diff --git a/htdocs/langs/cs_CZ/cron.lang b/htdocs/langs/cs_CZ/cron.lang index 41ceea2bd3a..6c989cb6158 100644 --- a/htdocs/langs/cs_CZ/cron.lang +++ b/htdocs/langs/cs_CZ/cron.lang @@ -7,32 +7,32 @@ Permission23103 = Smazat naplánovanou úlohu Permission23104 = Provést naplánovanou úlohu # Admin CronSetup= Nastavení naplánovaných úloh -URLToLaunchCronJobs=URL to check and launch qualified cron jobs +URLToLaunchCronJobs=URL ke kontrole a spuštění úlohy v případě potřeby OrToLaunchASpecificJob=Nebo zkontrolovat a zahájit konkrétní práci KeyForCronAccess=Bezpečnostní klíč URL spuštění úlohy FileToLaunchCronJobs=Příkazový řádek pro spuštění úlohy CronExplainHowToRunUnix=Na Unixových systémech by jste měli použít následující položku crontab ke spuštění příkazového řádku každých 5 minut CronExplainHowToRunWin=Na Microsoft Windows systémech můžete použít naplánováné nástroje úloh ke spuštění příkazového řádku každých 5 minut -CronMethodDoesNotExists=Class %s does not contains any method %s +CronMethodDoesNotExists=Třída %s neobsahuje žádné metody %s # Menu -EnabledAndDisabled=Enabled and disabled +EnabledAndDisabled=Zapínat a vypínat # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Výstup poslední úlohy +CronLastResult=Výstup posledního kódu CronCommand=Příkaz CronList=Naplánované úlohy CronDelete=Smazat naplánované úlohy -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Plánovací modul úloh umožňují provádět úlohy, které byly plánované +CronConfirmDelete=Jste si jisti, že chcete odstranit tyto naplánované úlohy? +CronExecute=Spuštění naplánovaných úloh +CronConfirmExecute=Jste si jisti, že chcete provést tyto naplánované úlohy nyní? +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Práce CronNone=Nikdo -CronDtStart=Not before -CronDtEnd=Not after +CronDtStart=Ne předtím +CronDtEnd=nikoli po CronDtNextLaunch=Další provedení -CronDtLastLaunch=Start date of latest execution -CronDtLastResult=End date of latest execution +CronDtLastLaunch=Počáteční datum posledního provedení +CronDtLastResult=datum ukončení posledního výkonu CronFrequency=Frekvence CronClass=Třída CronMethod=Metoda @@ -41,15 +41,15 @@ CronNoJobs=Žádné registrované úkoly CronPriority=Priorita CronLabel=Štítek CronNbRun=Nb. zahájit -CronMaxRun=Max nb. launch +CronMaxRun=Max nb. zahájení CronEach=Každý JobFinished=Práce zahájena a dokončena #Page card CronAdd= Přidat práci -CronEvery=Execute job each +CronEvery=Vykonat práci každý CronObject=Vytvoření Instance/objektu CronArgs=Parametry -CronSaveSucess=Save successfully +CronSaveSucess=Úspěšně uloženo CronNote=Komentář CronFieldMandatory=Pole %s je povinné CronErrEndDateStartDt=Datum ukončení nemůže být před datem zahájení @@ -57,12 +57,12 @@ CronStatusActiveBtn=Umožnit CronStatusInactiveBtn=Zakázat CronTaskInactive=Tato úloha je zakázána CronId=Id -CronClassFile=Třídy (filename.class.php) -CronModuleHelp=Název adresáře modulu Dalibor (pracuje i s externími moduly).
Např načíst metody objektu produktu ../htdocs/product/class/product.class.php, hodnota modulu je product -CronClassFileHelp=Načíst název souboru.
Např načíst metody objektu výrobku .../htdocs/product/class/product.class.php hodnota název třídy souboru je product.class.php -CronObjectHelp=NNačíst název objektu.
Např načíst metody objektu výrobku .../htdocs/product/class/product.class.php, hodnota název třídy souboru je výrobek -CronMethodHelp=Objekt způsob startu.
Např načíst metody objektu .../htdocs/product/class/product.class.php, hodnota metody je fecth -CronArgsHelp=Metoda argumenty.
Např načíst metody objektu výrobku .../htdocs/product/class/product.class.php, hodnota paramteru může být 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Spustit příkazový řádek. CronCreateJob=Vytvořit novou naplánovanou úlohu CronFrom=Z @@ -72,8 +72,8 @@ CronType=Typ úlohy CronType_method=Volání metody třídy Dolibarr CronType_command=Shell příkaz CronCannotLoadClass=Nelze načíst třídu nebo objekt %s %s -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. +UseMenuModuleToolsToAddCronJobs=Jděte do menu "Home- Moduly nářadí- Seznam úloh" kde vidíte a upravujete naplánované úlohy. JobDisabled=Úloha vypnuta -MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +MakeLocalDatabaseDumpShort=Záloha lokální databáze +MakeLocalDatabaseDump=Vytvořit výpis lokální databáze +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/cs_CZ/errors.lang b/htdocs/langs/cs_CZ/errors.lang index 8f9647bcf78..0da4c3c5123 100644 --- a/htdocs/langs/cs_CZ/errors.lang +++ b/htdocs/langs/cs_CZ/errors.lang @@ -1,47 +1,50 @@ # Dolibarr language file - Source file is en_US - errors # No errors -NoErrorCommitIsDone=Žádná chyba se zavazujeme +NoErrorCommitIsDone=Žádná chyba, jsme se zavázali # Errors -ErrorButCommitIsDone=Byly nalezeny chyby, ale my ověřit i přes to +ErrorButCommitIsDone=Byly nalezeny chyby, ale přesto jsme provedli ověření. Snad to pojede ....\n ErrorBadEMail=EMail %s je špatně ErrorBadUrl=Url %s je špatně -ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. +ErrorBadValueForParamNotAString=Špatná hodnota pro parametr. To připojí obecně, když chybí překlad. ErrorLoginAlreadyExists=Přihlášení %s již existuje. ErrorGroupAlreadyExists=Skupina %s již existuje. ErrorRecordNotFound=Záznam není nalezen. ErrorFailToCopyFile=Nepodařilo se zkopírovat soubor "%s" na "%s". -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToCopyDir=Nepodařilo se zkopírovat složku ' %s ' do ' %s . ErrorFailToRenameFile=Nepodařilo se přejmenovat soubor "%s" na "%s". ErrorFailToDeleteFile=Nepodařilo se odstranit soubor "%s". ErrorFailToCreateFile=Nepodařilo se vytvořit soubor "%s". ErrorFailToRenameDir=Nepodařilo se přejmenovat adresář "%s" na "%s". ErrorFailToCreateDir=Nepodařilo se vytvořit adresář "%s". ErrorFailToDeleteDir=Nepodařilo se smazat adresář "%s". +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Tento kontakt je již definován jako kontakt pro tento typ. ErrorCashAccountAcceptsOnlyCashMoney=Tento bankovní účet peněžní účet, takže přijímá platby typu pouze v hotovosti. ErrorFromToAccountsMustDiffers=Zdrojové a cílové bankovní účty musí být jiný. ErrorBadThirdPartyName=Nesprávná hodnota pro třetí strany jménem ErrorProdIdIsMandatory=%s je povinné -ErrorBadCustomerCodeSyntax=Bad syntaxe pro zákazníka kódu -ErrorBadBarCodeSyntax=Bad syntax for bar code. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. +ErrorBadCustomerCodeSyntax=Špatná syntaxe kódu zákazníka +ErrorBadBarCodeSyntax=Špatná syntaxe pro čárový kód. Může být nastavení špatný typ čárového kódu, nebo jste definovali čárového kódu maska ​​pro číslování, která neodpovídá hodnotě naskenovat. ErrorCustomerCodeRequired=Zákazník požadoval kód -ErrorBarCodeRequired=Bar code required +ErrorBarCodeRequired=Je zapotřebí čárový kód ErrorCustomerCodeAlreadyUsed=Zákaznický kód již používán -ErrorBarCodeAlreadyUsed=Bar code already used +ErrorBarCodeAlreadyUsed=Čárový kód je již používán ErrorPrefixRequired=Prefix nutné ErrorBadSupplierCodeSyntax=Bad syntaxe pro kód dodavatele ErrorSupplierCodeRequired=Dodavatel povinen kód ErrorSupplierCodeAlreadyUsed=Dodavatel kód již používán -ErrorBadParameters=Bad parametry -ErrorBadValueForParameter=Wrong value '%s' for parameter '%s' -ErrorBadImageFormat=Image file has not a supported format (Your PHP does not support functions to convert images of this format) +ErrorBadParameters=Špatné parametry. Tak takto opravdu ne ...... +ErrorBadValueForParameter=Chybná hodnota ‚%s‘ parametru ‚%s‘ +ErrorBadImageFormat=Obrázek nemá podporovaný formát (Váš PHP nepodporuje funkce pro převod obrázků z tohoto formátu) ErrorBadDateFormat=Hodnota "%s" má nesprávný formát data -ErrorWrongDate=Date is not correct! +ErrorWrongDate=Datum není správné! ErrorFailedToWriteInDir=Nepodařilo se zapsat do adresáře %s ErrorFoundBadEmailInFile=Nalezeno nesprávné email syntaxe %s řádků v souboru (%s příklad souladu s emailem = %s) -ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. +ErrorUserCannotBeDelete=Uživatel nemůže být odstraněn. Může být, že je spojena s Dolibarr entity. ErrorFieldsRequired=Některé požadované pole se nevyplňuje. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nepodařilo se vytvořit adresář. Ujistěte se, že webový server má uživatel oprávnění k zápisu do adresáře dokumentů Dolibarr. Pokud je parametr safe_mode je povoleno na tomto PHP, zkontrolujte, zda Dolibarr php soubory, vlastní pro uživatele webového serveru (nebo skupina). ErrorNoMailDefinedForThisUser=Žádná pošta definované pro tohoto uživatele ErrorFeatureNeedJavascript=Tato funkce potřebujete mít Java scripty být aktivován do práce. Změnit v nastavení - displej. @@ -61,18 +64,18 @@ ErrorSizeTooLongForVarcharType=Velikost příliš dlouho typu string (%s znaků ErrorNoValueForSelectType=Vyplňte, prosím, hodnotu seznamu vyberte ErrorNoValueForCheckBoxType=Vyplňte, prosím, hodnotu checkbox seznamu ErrorNoValueForRadioType=Prosím vyplňte hodnotu pro rozhlasové seznamu -ErrorBadFormatValueList=The list value cannot have more than one comma: %s, but need at least one: key,value +ErrorBadFormatValueList=Hodnota Seznam nemůže mít více než jednu čárku: %s , ale potřebují alespoň jednu možnost: klíč, hodnota ErrorFieldCanNotContainSpecialCharacters=Terénní %s nesmí obsahuje speciální znaky. -ErrorFieldCanNotContainSpecialNorUpperCharacters=Field %s must not contain special characters, nor upper case characters and cannot contain only numbers. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Pole %s nesmí obsahovat speciální znaky, ani na velká písmena a nesmí obsahovat pouze čísla. ErrorNoAccountancyModuleLoaded=Ne účetnictví modul aktivován -ErrorExportDuplicateProfil=This profile name already exists for this export set. +ErrorExportDuplicateProfil=Tento název profilu již existuje pro tento export sady. ErrorLDAPSetupNotComplete=Dolibarr-LDAP shoda není úplná. ErrorLDAPMakeManualTest=. LDIF soubor byl vytvořen v adresáři %s. Zkuste načíst ručně z příkazového řádku získat více informací o chybách. ErrorCantSaveADoneUserWithZeroPercentage=Nelze uložit akci s "Statut nezačal", pokud pole "provádí" je také vyplněna. ErrorRefAlreadyExists=Ref používá pro tvorbu již existuje. -ErrorPleaseTypeBankTransactionReportName=Please type bank statement name where entry is reported (Format YYYYMM or YYYYMMDD) -ErrorRecordHasChildren=Failed to delete record since it has some childs. -ErrorRecordIsUsedCantDelete=Can't delete record. It is already used or included into other object. +ErrorPleaseTypeBankTransactionReportName=Prosím, zadejte název banky prohlášení, kde je hlášeno záznam (ve formátu RRRRMM nebo RRRRMMDD) +ErrorRecordHasChildren=Nepodařilo se odstranit záznam, protože má nějaké Childs. +ErrorRecordIsUsedCantDelete=Nelze odstranit záznam. Ten se již používá, nebo je zahrnut do jiných objektů. ErrorModuleRequireJavascript=Javascript musí být vypnuta, že tato funkce pracovat. Chcete-li povolit / zakázat Javascript, přejděte do nabídky Home-> Nastavení-> Zobrazení. ErrorPasswordsMustMatch=Oba napsaný hesla se musí shodovat se navzájem ErrorContactEMail=Technické chybě. Prosím, obraťte se na správce, aby e-mailovou %s en poskytovat %s kód chyby ve zprávě, nebo ještě lépe přidáním obrazovky kopii této stránky. @@ -84,18 +87,18 @@ ErrorFileIsInfectedWithAVirus=Antivirový program nebyl schopen ověřit soubor ErrorSpecialCharNotAllowedForField=Speciální znaky nejsou povoleny pro pole "%s" ErrorNumRefModel=Existuje odkaz do databáze (%s) a není kompatibilní s tímto pravidlem číslování. Odebrat záznam nebo přejmenovat odkaz na aktivaci tohoto modulu. ErrorQtyTooLowForThisSupplier=Nedostatečné množství tohoto podniku, nebo není definována cena k tomuto produktu tohoto podniku -ErrorModuleSetupNotComplete=Setup of module looks to be uncomplete. Go on Home - Setup - Modules to complete. +ErrorModuleSetupNotComplete=Nastavení modulu jeví nekompletní. Jdi domů - Nastavení - Moduly dokončit. ErrorBadMask=Chyba na masku ErrorBadMaskFailedToLocatePosOfSequence=Chyba maska ​​bez pořadovým číslem ErrorBadMaskBadRazMonth=Chyba, špatná hodnota po resetu -ErrorMaxNumberReachForThisMask=Max number reach for this mask -ErrorCounterMustHaveMoreThan3Digits=Counter must have more than 3 digits +ErrorMaxNumberReachForThisMask=Maximální počet dosah této masce +ErrorCounterMustHaveMoreThan3Digits=Počítadlo musí mít více než 3 číslice ErrorSelectAtLeastOne=Chyba. Vyberte alespoň jednu položku. ErrorDeleteNotPossibleLineIsConsolidated=Odstranění není možné, protože záznam je spojena s bankovním transakčního který smířil ErrorProdIdAlreadyExist=%s je přiřazen do jiné třetí ErrorFailedToSendPassword=Nepodařilo se odeslat heslo ErrorFailedToLoadRSSFile=Nedokáže dostat RSS feed. Zkuste přidat konstantní MAIN_SIMPLEXMLLOAD_DEBUG případě chybových hlášení neposkytuje dostatek informací. -ErrorForbidden=Access denied.
You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. +ErrorForbidden=Přístup byl odepřen.
Došlo k pokusu o přístup na stránku, oblasti nebo funkce postiženého modulu nebo aniž by byl v ověřeném relaci nebo že není dovoleno vašeho uživatele. ErrorForbidden2=Povolení pro toto přihlášení může být definována správcem Dolibarr z nabídky %s-> %s. ErrorForbidden3=Zdá se, že Dolibarr není využita prostřednictvím ověřené relace. Podívejte se na dokumentaci k nastavení Dolibarr vědět, jak řídit autentizace (htaccess, mod_auth nebo jiné ...). ErrorNoImagickReadimage=Třída Imagick není nalezen v této PHP. Náhled není mohou být k dispozici. Správci mohou zakázat tuto kartu z menu Nastavení - Zobrazení. @@ -110,13 +113,13 @@ ErrorLoginDoesNotExists=Uživatel s přihlášením %s nebyl nalezen. ErrorLoginHasNoEmail=Tento uživatel nemá žádnou e-mailovou adresu. Proces přerušena. ErrorBadValueForCode=Bad hodnota bezpečnostního kódu. Zkuste to znovu s novou hodnotou ... ErrorBothFieldCantBeNegative=Pole %s a %s nemohou být negativní -ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoices can't be negative +ErrorQtyForCustomerInvoiceCantBeNegative=Množství pro linku do odběratelských faktur nemůže být záporná ErrorWebServerUserHasNotPermission=Uživatelský účet %s použít ke spuštění webový server nemá oprávnění pro které ErrorNoActivatedBarcode=Žádný čárový kód aktivován typ ErrUnzipFails=Nepodařilo se rozbalit %s s ZipArchive -ErrNoZipEngine=No motor rozbalit %s soubor v tomto PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Souborů %s musí být zip Dolibarr balíček -ErrorModuleFileRequired=You must select a Dolibarr module package file +ErrorModuleFileRequired=Musíte vybrat modul balíček soubor Dolibarr ErrorPhpCurlNotInstalled=PHP CURL není nainstalován, je to nezbytné mluvit s Paypal ErrorFailedToAddToMailmanList=Nepodařilo se přidat záznam do %s %s pošťák seznamu nebo SPIP základny ErrorFailedToRemoveToMailmanList=Nepodařilo se odstranit záznam %s %s na seznam pošťák nebo SPIP základny @@ -124,69 +127,76 @@ ErrorNewValueCantMatchOldValue=Nová hodnota nemůže být rovno staré ErrorFailedToValidatePasswordReset=Nepodařilo se Reinit heslo. Může být reinit již byla provedena (tento odkaz lze použít pouze jednou). Pokud ne, zkuste restartovat reinit procesu. ErrorToConnectToMysqlCheckInstance=Připojení k databázi se nezdaří. Zkontrolujte, MySQL server běží (ve většině případů, můžete ji spustit z příkazového řádku: sudo / etc / init.d / mysql start '). ErrorFailedToAddContact=Nepodařilo se přidat kontakt -ErrorDateMustBeBeforeToday=The date cannot be greater than today +ErrorDateMustBeBeforeToday=Datum nemůže být větší než dnešní. Nejsme v SSSR. ErrorPaymentModeDefinedToWithoutSetup=Platební režim byl nastaven na typ %s ale nastavení modulu Faktury nebyla dokončena definovat informace, které se pro tento platební režim. ErrorPHPNeedModule=Chyba, musí mít PHP modul %s nainstalovat tuto funkci používat. ErrorOpenIDSetupNotComplete=Můžete nastavení Dolibarr konfigurační soubor, aby OpenID ověřování, ale URL OpenID služby není definován do stálých %s ErrorWarehouseMustDiffers=Zdrojové a cílové sklady musí se liší -ErrorBadFormat=Bad format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. -ErrorThereIsSomeDeliveries=Error, there is some deliveries linked to this shipment. Deletion refused. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled -ErrorCantDeletePaymentSharedWithPayedInvoice=Can't delete a payment shared by at least one invoice with status Payed -ErrorPriceExpression1=Cannot assign to constant '%s' -ErrorPriceExpression2=Cannot redefine built-in function '%s' -ErrorPriceExpression3=Undefined variable '%s' in function definition -ErrorPriceExpression4=Illegal character '%s' -ErrorPriceExpression5=Unexpected '%s' -ErrorPriceExpression6=Wrong number of arguments (%s given, %s expected) -ErrorPriceExpression8=Unexpected operator '%s' -ErrorPriceExpression9=An unexpected error occured -ErrorPriceExpression10=Iperator '%s' lacks operand -ErrorPriceExpression11=Expecting '%s' -ErrorPriceExpression14=Division by zero -ErrorPriceExpression17=Undefined variable '%s' -ErrorPriceExpression19=Expression not found -ErrorPriceExpression20=Empty expression -ErrorPriceExpression21=Empty result '%s' -ErrorPriceExpression22=Negative result '%s' -ErrorPriceExpressionInternal=Internal error '%s' -ErrorPriceExpressionUnknown=Unknown error '%s' +ErrorBadFormat=Špatný formát! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Chyba Tento člen zatím není spojen s žádným subjektem. Spojovací člen ke stávajícímu subjektu nebo vytvořit nový subjekt před vytvořením odběru s fakturou. +ErrorThereIsSomeDeliveries=Chyba, existuje nějaké dodávky spojené s touto přepravou. Odstranění zamítnuto. Máte smůlu .... +ErrorCantDeletePaymentReconciliated=Nelze odstranit platbu, který generovaný položku banky, který byl odsouhlasen +ErrorCantDeletePaymentSharedWithPayedInvoice=Nelze odstranit platbu sdílejí alespoň jednu fakturu se statusem platí +ErrorPriceExpression1=Nelze přiřadit k neustálému ‚%s‘ +ErrorPriceExpression2=Nelze předefinovat vestavěnou funkci ‚%s‘ +ErrorPriceExpression3=Nedefinovaná proměnná ‚%s‘ v definici funkce +ErrorPriceExpression4=Neplatný znak ‚%s‘ +ErrorPriceExpression5=Nečekané ‚%s‘ Kdo by to byl řekl ..... +ErrorPriceExpression6=Nesprávný počet argumentů (%s uvedeny, %s očekávaný) Argumentujte lépe !!!! +ErrorPriceExpression8=Neočekávaný operátor '%s' +ErrorPriceExpression9=Došlo k neočekávané chybě. Poklekněte a poručte svou duši bohu .... +ErrorPriceExpression10=Iperator '%s' chybí operand +ErrorPriceExpression11=Očekával ‚%s‘ +ErrorPriceExpression14=Dělíte nulou!! To si snad fakt děláte srandu ..... +ErrorPriceExpression17=Nedefinovaná proměnná ‚%s‘ +ErrorPriceExpression19=Výraz nenalezen +ErrorPriceExpression20=Prázdný výraz. Něčím ho naplňte ..... +ErrorPriceExpression21=Nenalezeno ‚%s‘ +ErrorPriceExpression22=Negativní výsledek ‚%s‘ +ErrorPriceExpressionInternal=Internal error '%s' Použijte osmikilové kladivo, nebo hledejte na netu .... +ErrorPriceExpressionUnknown=Neznámá chyba ‚%s‘ Zkuste jasnovidce .... ErrorSrcAndTargetWarehouseMustDiffers=Zdrojové a cílové sklady musí se liší -ErrorTryToMakeMoveOnProductRequiringBatchData=Error, trying to make a stock movement without lot/serial information, on a product requiring lot/serial information -ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=All recorded receptions must first be verified (approved or denied) before being allowed to do this action -ErrorCantSetReceptionToTotalDoneWithReceptionDenied=All recorded receptions must first be verified (approved) before being allowed to do this action -ErrorGlobalVariableUpdater0=HTTP request failed with error '%s' -ErrorGlobalVariableUpdater1=Invalid JSON format '%s' -ErrorGlobalVariableUpdater2=Missing parameter '%s' -ErrorGlobalVariableUpdater3=The requested data was not found in result -ErrorGlobalVariableUpdater4=SOAP client failed with error '%s' -ErrorGlobalVariableUpdater5=No global variable selected -ErrorFieldMustBeANumeric=Field %s must be a numeric value -ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided -ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status -ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) -ErrorSavingChanges=An error has ocurred when saving the changes -ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship -ErrorFileMustHaveFormat=File must have format %s +ErrorTryToMakeMoveOnProductRequiringBatchData=Chyba, se snaží vydělat na pohyb zásob bez šarže / sériových informace o produktu, který vyžaduje hodně / sériové informací +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Všechny zaznamenané recepce musí být nejprve ověřeny (schváleny nebo odepřen), než bude moci provést tuto akci +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Všechna zaznamenaná recepce musí být před provedením této akce nejprve ověřena (schválena) +ErrorGlobalVariableUpdater0=Požadavek HTTP se nezdařilo s chybou ‚%s‘ +ErrorGlobalVariableUpdater1=Neplatný formát JSON ‚%s‘ +ErrorGlobalVariableUpdater2=Chybí parametr '%s' +ErrorGlobalVariableUpdater3=Požadovaná data nebyla nalezena v důsledku +ErrorGlobalVariableUpdater4=SOAP klient se nezdařilo s chybou ‚%s‘ +ErrorGlobalVariableUpdater5=Žádné globální proměnná vybraná +ErrorFieldMustBeANumeric=Pole %s musí být číselná hodnota +ErrorMandatoryParametersNotProvided=Povinné parametr (y) není k dispozici +ErrorOppStatusRequiredIfAmount=Nastavíte odhadovanou částku za tuto příležitost / olovo. Takže musíte zadat svůj status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definice Array Menu V modulu popisovač (špatná hodnota za klíčový fk_menu) +ErrorSavingChanges=Došlo k ocurred při ukládání změn +ErrorWarehouseRequiredIntoShipmentLine=Sklad je zapotřebí na lince na dopravu +ErrorFileMustHaveFormat=Soubor musí mít formát %s ErrorSupplierCountryIsNotDefined=Země tohoto dodavatele není definována. Napravte jako první. -ErrorsThirdpartyMerge=Failed to merge the two records. Request canceled. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorsThirdpartyMerge=Nepodařilo se sloučit dva záznamy. Požadavek zrušen. +ErrorStockIsNotEnoughToAddProductOnOrder=Sklad nestačí %s produkt přidat do nové objednávky. +ErrorStockIsNotEnoughToAddProductOnInvoice=Sklad nestačí %s produkt přidat do nové faktury. +ErrorStockIsNotEnoughToAddProductOnShipment=Sklad nestačí %s produkt přidat do nové zásilky. +ErrorStockIsNotEnoughToAddProductOnProposal=Sklad nestačí %s produkt přidat do nového návrhu. +ErrorFailedToLoadLoginFileForMode=Nepodařilo se získat přihlašovací tlačítko pro režim ‚%s‘. +ErrorModuleNotFound=Soubor modulu nebyl nalezen. Zkuste křišťálovou kouli ..... +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorBankStatementNameMustFollowRegex=Chyba, název banky prohlášení musí dodržovat následující pravidla syntaxe %s +ErrorPhpMailDelivery=Zkontrolujte, zda nechcete použít příliš vysoký počet příjemců a že vaše e-mailová obsah není podobný Spam. Zeptejte se také na správce zkontrolovat firewall a serverové protokoly soubory pro více kompletní informace. +ErrorUserNotAssignedToTask=Uživatel musí být přiřazen k úkolu, aby mohli vstoupit čas spotřebovaný. +ErrorTaskAlreadyAssigned=Úkolem již přiřazena k uživateli +ErrorModuleFileSeemsToHaveAWrongFormat=Balíček modul vypadá, že má chybný formát. +ErrorFilenameDosNotMatchDolibarrPackageRules=Název balíčku modulu ( %s ) neodpovídá očekávané syntaxi název: %s Nemůžete sem cpát všechno, co vás napadne ...... +ErrorDuplicateTrigger=Chyba, spoušť název %s duplikát. Již vložen z %s. +ErrorNoWarehouseDefined=Chyba, nejsou definovány žádné sklady. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings -WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. +WarningPasswordSetWithNoAccount=Heslo bylo nastaveno pro tohoto člena. Nicméně, žádný uživatelský účet byl vytvořen. Takže toto heslo uloženo, ale nemůže být použit pro přihlášení do Dolibarr. Může být použit externí modulu / rozhraní, ale pokud nepotřebujete definovat libovolné přihlašovací jméno ani heslo pro členem, můžete možnost vypnout „Správa přihlášení pro každého člena“ z nastavení člen modulu. Pokud potřebujete ke správě přihlášení, ale nepotřebují žádné heslo, můžete mít toto pole prázdné, aby se zabránilo toto upozornění. Poznámka: E-mail může být také použit jako přihlášení v případě, že člen je připojen k uživateli. WarningMandatorySetupNotComplete=Povinné parametry jsou dosud stanoveny WarningSafeModeOnCheckExecDir=Pozor, PHP safe_mode volba je na to příkaz musí být uloženy uvnitř adresáře deklarované safe_mode_exec_dir parametrů php. WarningBookmarkAlreadyExists=Záložka s tímto názvem, nebo tento cíl (URL) již existuje. @@ -199,8 +209,9 @@ WarningUntilDirRemoved=Všechny bezpečnostní pokyny (viditelné admin uživate WarningCloseAlways=Pozor, zavírání se provádí, i když částka liší zdrojových a cílových prvků. Povolte tuto funkci se zvýšenou opatrností. WarningUsingThisBoxSlowDown=Upozornění Při použití tohoto políčka zpomalit vážně všechny stránky zobrazující krabici. WarningClickToDialUserSetupNotComplete=Nastavení ClickToDial informací pro uživatele si nejsou kompletní (viz tab ClickToDial na vaše uživatelské karty). -WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. -WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. -WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. -WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. -WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Funkce deaktivována, když je nastavení displeje optimalizovaný pro nevidomého nebo textových prohlížečů. +WarningPaymentDateLowerThanInvoiceDate=Datum platby (%s) je starší než data vystavení faktury (%s) pro faktury %s. Popíráte tak přírodní zákony. +WarningTooManyDataPleaseUseMoreFilters=Příliš mnoho dat (více než %s linek). Použijte další filtry nebo nastavit konstantní %s na vyšší limit. Kdo to má pořád zpracovávat !!!! +WarningSomeLinesWithNullHourlyRate=Někdy byly zaznamenány u některých uživatelů, zatímco jejich hodinová sazba nebyla definována. Hodnota 0 %s za hodinu byl použit, ale to může mít za následek nesprávné oceňování času stráveného. +WarningYourLoginWasModifiedPleaseLogin=Vaše přihlašovací byla upravena. Z bezpečnostních účel budete muset přihlásit pomocí nových přihlašovacích údajů před další akci. +WarningAnEntryAlreadyExistForTransKey=Položka již existuje pro překladatelské klíč pro tento jazyk diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index 65e2c840c6b..f0428f9b514 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -24,12 +24,12 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Připojení k databázi -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables +NoTemplateDefined=Žádná šablona je definována v tomto e-mailu typ +AvailableVariables=K dispozici substituční proměnné NoTranslation=Překlad není NoRecordFound=Nebyl nalezen žádný záznam -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NoRecordDeleted=Žádný záznam smazán +NotEnoughDataYet=Není dostatek údajů NoError=Žádná chyba Error=Chyba Errors=Chyby @@ -37,8 +37,8 @@ ErrorFieldRequired=Pole '%s' je povinné ErrorFieldFormat=Pole '%s' obsahuje špatnou hodnotu ErrorFileDoesNotExists=Soubor %s neexistuje ErrorFailedToOpenFile=Nepodařilo se otevřít soubor %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s +ErrorCanNotCreateDir=Nelze vytvořit složku %s +ErrorCanNotReadDir=Nelze číst složku %s ErrorConstantNotDefined=Parametr %s není definován ErrorUnknown=Neznámá chyba ErrorSQL=Chyba SQL @@ -60,56 +60,56 @@ ErrorSomeErrorWereFoundRollbackIsDone=Byly nalezeny nějaké chyby. Veškeré zm ErrorConfigParameterNotDefined=Parametr %s není definován v konfiguračním souboru Dolibarr conf.php. ErrorCantLoadUserFromDolibarrDatabase=Nepodařilo se najít uživatele %s v databázi Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Chyba, pro zemi '%s' nejsou definovány žádné sazby DPH. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. +ErrorNoSocialContributionForSellerCountry=Chyba, žádná společenská / daně typ fiskální definován pro země ‚%s‘. ErrorFailedToSaveFile=Chyba, nepodařilo se uložit soubor. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. +ErrorCannotAddThisParentWarehouse=Snažíte se přidat nadřazené sklad, který je již dítě aktuálního +MaxNbOfRecordPerPage=Max nb záznamu na stránku +NotAuthorized=Nejste oprávněni k tomu, že. SetDate=Nastavení datumu SelectDate=Výběr datumu SeeAlso=Viz také %s SeeHere=Nahlédněte zde Apply=Aplikovat BackgroundColorByDefault=Výchozí barva pozadí -FileRenamed=The file was successfully renamed +FileRenamed=Soubor byl úspěšně přejmenován FileUploaded=Soubor byl úspěšně nahrán -FileGenerated=The file was successfully generated +FileGenerated=Soubor byl úspěšně vygenerován FileWasNotUploaded=Soubor vybrán pro připojení, ale ještě nebyl nahrán. Klikněte na "Přiložit soubor". NbOfEntries=Počet záznamů -GoToWikiHelpPage=Read online help (Internet access needed) +GoToWikiHelpPage=Přečtěte si online nápovědu (přístup k internetu je potřeba) GoToHelpPage=Přečíst nápovědu RecordSaved=Záznam uložen RecordDeleted=Záznam smazán LevelOfFeature=Úroveň vlastností NotDefined=Není definováno -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. +DolibarrInHttpAuthenticationSoPasswordUseless=Režim ověřování Dolibarr je nastaven na %s v konfiguračním souboru conf.php .
To znamená, že databáze hesel je externí, takže změna tohoto pole nemusí mít žádný účinek. Administrator=Správce Undefined=Nedefinováno -PasswordForgotten=Password forgotten? +PasswordForgotten=Zapomněli jste heslo? SeeAbove=Viz výše HomeArea=Hlavní oblast -LastConnexion=Latest connection +LastConnexion=poslední připojení PreviousConnexion=Předchozí připojení -PreviousValue=Previous value +PreviousValue=Předchozí hodnota ConnectedOnMultiCompany=Připojeno na rozhraní ConnectedSince=Připojen od -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL +AuthenticationMode=režim ověřování +RequestedUrl=požadovaná adresa URL DatabaseTypeManager=Správce typu databáze -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error +RequestLastAccessInError=Žádost o poslední přístup do databáze v případě chyby +ReturnCodeLastAccessInError=Návratový kód pro přístup k databázi v případě chyby +InformationLastAccessInError=Informace pro poslední přístup do databáze v případě chyby DolibarrHasDetectedError=Dolibarr zjistil technickou chybu -InformationToHelpDiagnose=This information can be useful for diagnostic purposes +InformationToHelpDiagnose=Tyto informace mohou být užitečné pro diagnostické účely MoreInformation=Více informací TechnicalInformation=Technická informace -TechnicalID=Technical ID +TechnicalID=Technické ID NotePublic=Poznámka (veřejné) NotePrivate=Poznámka (soukromé) PrecisionUnitIsLimitedToXDecimals=Dolibarr byl nastaven pro limit přesnosti jednotkových cen na %s desetinných míst. DoTest=Test ToFilter=Filtr -NoFilter=No filter +NoFilter=Žádný filtr WarningYouHaveAtLeastOneTaskLate=Pozor, máte alespoň jeden prvek, který překročil tolerance zpoždění. yes=ano Yes=Ano @@ -130,29 +130,30 @@ Activate=Aktivovat Activated=Aktivované Closed=Zavřeno Closed2=Zavřeno -NotClosed=Not closed +NotClosed=není uzavřen Enabled=Povoleno Deprecated=Zastaralá Disable=Zakázat Disabled=Invalidní Add=Přidat AddLink=Přidat odkaz -RemoveLink=Remove link -AddToDraft=Add to draft +RemoveLink=Odebrat odkaz +AddToDraft=Přidat k návrhům Update=Aktualizovat Close=Zavřít -CloseBox=Remove widget from your dashboard +CloseBox=Odebrat widget z panelu Confirm=Potvrdit -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? +ConfirmSendCardByMail=Opravdu chcete poslat obsah této karty mailem na %s? Delete=Vymazat Remove=Odstranit -Resiliate=Terminate +Resiliate=přerušit Cancel=Zrušit Modify=Upravit Edit=Upravit Validate=Potvrdit ValidateAndApprove=Ověřeno a schváleno ToValidate=Chcete-li ověřit +NotValidated=Neověřeno Save=Uložit SaveAs=Uložit jako TestConnection=Zkušební připojení @@ -164,7 +165,7 @@ Go=Jít Run=Běh CopyOf=Kopie Show=Ukázat -Hide=Hide +Hide=Skrýt ShowCardHere=Zobrazit kartu Search=Vyhledávání SearchOf=Vyhledávání @@ -207,8 +208,8 @@ Info=Přihlásit Family=Rodina Description=Popis Designation=Popis -Model=Doc template -DefaultModel=Default doc template +Model=doc šablona +DefaultModel=Výchozí šablona doc Action=Událost About=O Number=Číslo @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Žádná aplikovaná odpojená funkce s režimem ov Connection=Spojení Setup=Nastavení Alert=Upozornění +MenuWarnings=Upozornění Previous=Předchozí Next=Další Cards=Karty @@ -230,15 +232,15 @@ Now=Nyní HourStart=Startovní hodina Date=Datum DateAndHour=Datum a hodina -DateToday=Today's date -DateReference=Reference date +DateToday=Dnešní datum +DateReference=referenční datum DateStart=Datum zahájení DateEnd=Datum ukončení DateCreation=Datum vytvoření -DateCreationShort=Creat. date +DateCreationShort=Vytvořit datum DateModification=Datum změny DateModificationShort=Datum úpravy -DateLastModification=Latest modification date +DateLastModification=Poslední datum změny DateValidation=Datum ověření DateClosing=Uzávěrka DateDue=Datum splatnosti @@ -253,10 +255,10 @@ DateBuild=Zpráva data vzniku DatePayment=Datum platby DateApprove=Schválené datum DateApprove2=Schválené datum (druhé schválení) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user +UserCreation=Vytvořit uživatele +UserModification=Upravit uživatele +UserCreationShort=Creat. uživatel +UserModificationShort=Modif. uživatel DurationYear=rok DurationMonth=měsíc DurationWeek=týden @@ -291,7 +293,7 @@ MonthOfDay=Měsíce ode dne HourShort=H MinuteShort=mn Rate=Sazba -CurrencyRate=Currency conversion rate +CurrencyRate=Míra konverze měny UseLocalTax=Včetně DPH Bytes=Bytů KiloBytes=Kilobajty @@ -308,14 +310,15 @@ Copy=Kopírovat Paste=Vložit Default=Standardní DefaultValue=Výchozí hodnota +DefaultValues=výchozí hodnoty Price=Cena UnitPrice=Jednotková cena UnitPriceHT=Jednotková cena (bez DPH) UnitPriceTTC=Jednotková cena PriceU=UP PriceUHT=UP (bez DPH) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) +PriceUHTCurrency=U.P (měna) +PriceUTTC=U.P. (Včetně daně) Amount=Množství AmountInvoice=Fakturovaná částka AmountPayment=Částka platby @@ -324,12 +327,12 @@ AmountTTCShort=Částka (vč. DPH) AmountHT=Částka (bez DPH) AmountTTC=Částka (vč. DPH) AmountVAT=Částka daně -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencyAlreadyPaid=Platba již byla zaplacena, původní měna +MulticurrencyRemainderToPay=I nadále platit, původní měnu +MulticurrencyPaymentAmount=Výše platby, původní měna +MulticurrencyAmountHT=Částka (po zdanění), původní měně +MulticurrencyAmountTTC=Částka (vč. Daně), původní měně +MulticurrencyAmountVAT=Výše daní, původní měna AmountLT1=Částka daně z 2 AmountLT2=Částka daně 3 AmountLT1ES=Množství RE @@ -341,11 +344,11 @@ Percentage=Procento Total=Celkový SubTotal=Mezisoučet TotalHTShort=Celkem (bez DPH) -TotalHTShortCurrency=Total (net in currency) +TotalHTShortCurrency=Total (netto v měně) TotalTTCShort=Celkem (vč. DPH) TotalHT=Celkem (bez daně) TotalHTforthispage=Celkem (po zdanění) pro tuto stránku -Totalforthispage=Total for this page +Totalforthispage=Celkový pro tuto stránku TotalTTC=Celkem (vč. DPH) TotalTTCToYourCredit=Celkem (vč. DPH) na Váš účet TotalVAT=Daň celkem @@ -356,14 +359,15 @@ TotalLT2ES=Celkem IRPF HT=Po odečtení daně TTC=Inc daň VAT=Daň z obratu -VATs=Sales taxes +VATs=Daň z prodeje LT1ES=RE LT2ES=IRPF VATRate=Daňová sazba Average=Průměr Sum=Součet Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Volba List=Seznam FullList=Plný seznam @@ -384,10 +388,10 @@ ActionsToDoShort=Dělat ActionsDoneShort=Hotový ActionNotApplicable=Nevztahuje se ActionRunningNotStarted=Chcete-li začít -ActionRunningShort=In progress +ActionRunningShort=probíhá ActionDoneShort=Ukončený ActionUncomplete=Nekompletní -CompanyFoundation=Společnost/Nadace +CompanyFoundation=Společnost / Organizace ContactsForCompany=Kontakty pro tuto třetí stranu ContactsAddressesForCompany=Kontakty/adresy pro tuto třetí stranu AddressesForCompany=Adresy pro tuto třetí stranu @@ -396,7 +400,7 @@ ActionsOnMember=Akce u tohoto uživatele NActionsLate=%s pozdě RequestAlreadyDone=Poptávka je již zaznamenaná Filter=Filtr -FilterOnInto=Search criteria '%s' into fields %s +FilterOnInto=Kritéria hledání ' %s ' do polí %s RemoveFilter=Vyjměte filtr ChartGenerated=Generovaný graf ChartNotGenerated=Graf není generován @@ -405,8 +409,9 @@ Generate=Generovat Duration=Trvání TotalDuration=Celková doba trvání Summary=Shrnutí -DolibarrStateBoard=Statistika +DolibarrStateBoard=Statistika databází DolibarrWorkBoard=Plocha pracovních úkolů +NoOpenedElementToProcess=No otevřel prvek zpracovávat Available=Dostupný NotYetAvailable=Zatím není k dispozici NotAvailable=Není k dispozici @@ -442,7 +447,7 @@ General=Obecný Size=Velikost Received=Přijaté Paid=Placený -Topic=Subject +Topic=Předmět ByCompanies=Třetími stranami ByUsers=Od uživatelů Links=Odkazy @@ -453,8 +458,9 @@ NextStep=Další krok Datas=Údaje None=Nikdo NoneF=Nikdo +NoneOrSeveral=Žádný nebo několik Late=Pozdě -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. +LateDesc=Zpoždění se definovat, zda záznam je pozdě, nebo ne, závisí na vašem nastavení. Požádejte svého administrátora pro změnu zpoždění z menu Home - nastavení - Výstrahy. Photo=Obrázek Photos=Obrázky AddPhoto=Přidat obrázek @@ -462,7 +468,7 @@ DeletePicture=Odstranit obrázek ConfirmDeletePicture=Potvrdit odstranění obrázku? Login=Přihlášení CurrentLogin=Aktuální přihlášení -EnterLoginDetail=Enter login details +EnterLoginDetail=Zadejte přihlašovací údaje January=Leden February=Únor March=Březen @@ -520,8 +526,8 @@ ReportName=Název zprávy ReportPeriod=Zpráva za období ReportDescription=Popis Report=Zpráva -Keyword=Keyword -Origin=Origin +Keyword=Klíčové slovo +Origin=Původ Legend=Legenda Fill=Vyplnit Reset=Obnovit @@ -537,8 +543,8 @@ FindBug=Nahlásit chybu NbOfThirdParties=Počet třetích stran NbOfLines=Počet řádků NbOfObjects=Počet objektů -NbOfObjectReferers=Number of related items -Referers=Related items +NbOfObjectReferers=Počet souvisejících položek +Referers=Související zboží TotalQuantity=Celkové množství DateFromTo=Od %s na %s DateFrom=Od %s @@ -573,8 +579,8 @@ Priority=Priorita SendByMail=Poslat e-mailem MailSentBy=E-mail odeslán TextUsedInTheMessageBody=E-mail obsah -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail +SendAcknowledgementByMail=Zaslat potvrzovací e-mail +EMail=E-mailem NoEMail=Žádný e-mail Email=E-mail NoMobilePhone=Žádné telefonní číslo @@ -586,28 +592,29 @@ GoBack=Návrat CanBeModifiedIfOk=Může být změněn, pokud platí CanBeModifiedIfKo=Může být změněn, pokud není platný ValueIsValid=Hodnota je platná -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully +ValueIsNotValid=Hodnota není platná +RecordCreatedSuccessfully=Záznam byl úspěšně vytvořen RecordModifiedSuccessfully=Nahrávání bylo úspěšně upraveno -RecordsModified=%s record modified -RecordsDeleted=%s record deleted +RecordsModified=Záznam %s změněn +RecordsDeleted=%s záznam smazán AutomaticCode=Automatický kód FeatureDisabled=Funkce vypnuta -MoveBox=Move widget +MoveBox=Přesun widgetu Offered=Nabízené NotEnoughPermissions=Nemáte oprávnění pro tuto akci SessionName=Název relace Method=Metoda Receive=Přijmout -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value +CompleteOrNoMoreReceptionExpected=Kompletní nebo nic víc očekávat +ExpectedValue=Očekávaná hodnota CurrentValue=Současná hodnota PartialWoman=Částečný TotalWoman=Celkový NeverReceived=Nikdy nedostal Canceled=Zrušený -YouCanChangeValuesForThisListFromDictionarySetup=Můžete změnit hodnoty pro tento seznam z nastavení v menu - slovník -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanSetDefaultValueInModuleSetup=Můžete nastavit výchozí hodnotu použitou při vytváření nového záznamu do nastavení modulu Color=Barva Documents=Připojené soubory Documents2=Dokumenty @@ -623,12 +630,12 @@ CurrentTheme=Aktuální téma CurrentMenuManager=Manager aktuální nabídky Browser=Prohlížeč Layout=Layout -Screen=Screen +Screen=Obrazovka DisabledModules=Zakázané moduly For=Pro ForCustomer=Pro zákazníky Signature=Podpis -DateOfSignature=Date of signature +DateOfSignature=Datum podpisu HidePassword=Zobrazit příkaz s heslem skryté UnHidePassword=Zobrazit skutečný příkaz s odstraněným heslem Root=Kořen @@ -642,11 +649,12 @@ FreeLineOfType=Volný vstup typu CloneMainAttributes=Duplikovat objekt s jeho hlavními atributy PDFMerge=Spojit PDF Merge=Spojit +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Zobrazit stránku pro tisk hlavní obsahové části MenuManager=Manager nabídky WarningYouAreInMaintenanceMode=Pozor, jste v režimu údržby, jen pro přihlášené %s je dovoleno v tuto chvíli používat aplikace. CoreErrorTitle=Systémová chyba -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Je nám líto, došlo k chybě. Obraťte se na správce systému a zkontrolujte protokoly nebo zakázat $ dolibarr_main_prod=1 pro získání více informací. CreditCard=Kreditní karta FieldsWithAreMandatory=Pole označená * jsou povinná %s FieldsWithIsForPublic=Pole s %s jsou uvedeny na veřejném seznamu členů. Pokud si to nepřejete, zaškrtněte "veřejný" box. @@ -672,15 +680,15 @@ NewAttribute=Nový atribut AttributeCode=Kód atributu URLPhoto=URL obrázku/loga SetLinkToAnotherThirdParty=Odkaz na jinou třetí stranu -LinkTo=Link to -LinkToProposal=Link to proposal +LinkTo=odkaz na +LinkToProposal=Odkaz na návrh LinkToOrder=Odkaz na objednávku -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention +LinkToInvoice=Odkaz na fakturu +LinkToSupplierOrder=Odkaz na dodavatele objednávku +LinkToSupplierProposal=Odkaz na návrh dodavatele +LinkToSupplierInvoice=Odkaz na dodavatelské faktury +LinkToContract=Odkaz na smlouvu +LinkToIntervention=Odkaz na intervenci CreateDraft=Vytvořte návrh SetToDraft=Zrušit návrh ClickToEdit=Klepnutím lze upravit @@ -695,19 +703,20 @@ ByDay=Podle dne BySalesRepresentative=Podle obchodního zástupce LinkedToSpecificUsers=Souvisí s konkrétním uživatelem kontaktu NoResults=Žádné výsledky -AdminTools=Admin tools +AdminTools=admin nástroje SystemTools=Systémové nástroje ModulesSystemTools=Moduly nástrojů Test=Test Element=Prvek NoPhotoYet=Momentálně žádné fotografie k dispozici -Dashboard=Dashboard +Dashboard=Plocha MyDashboard=My dashboard Deductible=Spoluúčast from=z toward=k Access=Přístup -SelectAction=Select action +SelectAction=Vybrat akci +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Použijte Ctrl + C pro zkopírování do schránky SaveUploadedFileWithMask=Uložit soubor na server s názvem "%s" (iinak "%s") OriginFileName=Originální název sounoru @@ -718,48 +727,57 @@ ViewPrivateNote=Zobrazit poznámky XMoreLines=%s řádky(ů) skryto PublicUrl=Veřejná URL AddBox=Přidejte box -SelectElementAndClickRefresh=Vyberte element a klikněte na Obnovit +SelectElementAndClick=Select an element and click %s PrintFile=Tisk souboru %s -ShowTransaction=Show entry on bank account +ShowTransaction=Ukázat záznam o bankovním účtu GoIntoSetupToChangeLogo=Jděte na Domů-Nastavení-Společnost pro změnu loga, nebo je v nastavení skryjte. Deny=Odmítnout Denied=Odmítnuto ListOfTemplates=Seznam šablon -Gender=Gender +Gender=Pohlaví Genderman=Muž Genderwoman=Žena ViewList=Zobrazení seznamu -Mandatory=Mandatory +Mandatory=povinné Hello=Ahoj -Sincerely=Sincerely +Sincerely=S pozdravem DeleteLine=Odstranění řádku -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects +ConfirmDeleteLine=Jste si jisti, že chcete smazat tento řádek? +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. +NoRecordSelected=Nevybrán žádný záznam +MassFilesArea=Plocha pro soubory postavený masových akcí +ShowTempMassFilesArea=Show area souborů postavený masových akcí +RelatedObjects=Související objekty ClassifyBilled=Označit jako účtováno Progress=Pokrok ClickHere=Klikněte zde -FrontOffice=Front office +FrontOffice=Přední kancelář BackOffice=Back office -View=View +View=Pohled Export=Export Exports=Exporty -ExportFilteredList=Export filtered list -ExportList=Export list +ExportFilteredList=Export filtrován seznam +ExportList=seznam export Miscellaneous=Smíšený Calendar=Kalendář -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate +GroupBy=Skupina vytvořená... +ViewFlatList=Zobrazit seznam plochý +RemoveString=Odstraňte řetězec ‚%s‘ +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +DirectDownloadLink=Přímý odkaz ke stažení +Download=Stažení +ActualizeCurrency=Aktualizovat měnovou sazbu Fiscalyear=Fiskální rok +ModuleBuilder=module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Hromadné akce +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pondělí Tuesday=Úterý @@ -790,32 +808,30 @@ ShortFriday=PÁ ShortSaturday=S ShortSunday=N SelectMailModel=Vybrat šablonu e-mailu -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties +SetRef=nastavit ref +Select2ResultFoundUseArrows=zjištěno, že některé výsledky. Pomocí šipek vyberte. +Select2NotFound=nalezen žádný výsledek +Select2Enter=Zadejte +Select2MoreCharacter=nebo více znaků +Select2MoreCharacters=nebo více znaků +Select2MoreCharactersMore= Vyhledávání syntax:
| nebo (a | b)
< strong> * Jakýkoliv znak (a * b)
^ Začít s < / kbd> (^ ab)
$ Ukončit s (ab $)
+Select2LoadingMoreResults=Načítání dalších výsledků ... +Select2SearchInProgress=Probíhá vyhledávání ... +SearchIntoThirdparties=Subjekty SearchIntoContacts=Kontakty SearchIntoMembers=Členové SearchIntoUsers=Uživatelé -SearchIntoProductsOrServices=Products or services +SearchIntoProductsOrServices=Produkty nebo služby SearchIntoProjects=Projekty SearchIntoTasks=Úkoly -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices +SearchIntoCustomerInvoices=faktury zákazníků +SearchIntoSupplierInvoices=Dodavatelské faktury SearchIntoCustomerOrders=Objednávky zákazníků -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals +SearchIntoSupplierOrders=Dodavatel objednávky +SearchIntoCustomerProposals=návrhy zákazníků +SearchIntoSupplierProposals=Návrhy dodavatele SearchIntoInterventions=Intervence SearchIntoContracts=Smlouvy -SearchIntoCustomerShipments=Customer shipments +SearchIntoCustomerShipments=zásilky zákazník SearchIntoExpenseReports=Zpráva výdajů SearchIntoLeaves=Dovolená - -BulkActions=Bulk actions diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang index 5a3875e23e0..68acf5ad4e8 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -3,13 +3,26 @@ SecurityCode=Bezpečnostní kód NumberingShort=N° Tools=Nástroje TMenuTools=Nástroje -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.

All the tools can be reached in the left menu. +ToolsDesc=Tato oblast je určena pro skupiny různých nástrojů, které nejsou k dispozici v jiných položkách menu.

Na tyto nástroje se dostanete z levého bočního menu Birthday=Narozeniny -BirthdayDate=Birthday date +BirthdayDate=datum narozenin DateToBirth=Datum narození BirthdayAlertOn=Připomenutí narozenin aktivní BirthdayAlertOff=Připomenutí narozenin neaktivní -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + +Notify_FICHINTER_ADD_CONTACT=Přidá kontakt intervence Notify_FICHINTER_VALIDATE=Intervence ověřena Notify_FICHINTER_SENTBYMAIL=Intervence přes mail Notify_ORDER_VALIDATE=Objednávka zákazníka ověřena @@ -43,7 +56,7 @@ Notify_SHIPPING_SENTBYMAIL=Doprava odeslána mailem Notify_MEMBER_VALIDATE=Uživatel ověřen Notify_MEMBER_MODIFY=Uživatel upraven Notify_MEMBER_SUBSCRIPTION=Uživatel zapsaný -Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_RESILIATE=Členské ukončeno Notify_MEMBER_DELETE=Uživatel smazán Notify_PROJECT_CREATE=Vytvoření projektu Notify_TASK_CREATE=Úkol vytvořen @@ -58,43 +71,44 @@ LinkedObject=Propojený objekt NbOfActiveNotifications=Počet hlášení (několik z příjemců e-mailů) PredefinedMailTest=Toto je testovací e-mail. \nTyto dva řádky jsou odděleny znakem konce řádku. \n\n __SIGNATURE__ PredefinedMailTestHtml=Toto je testovací mail (slovo testovací musí být tučně).
Dva řádky jsou odděleny znakem konce řádku.

__SIGNATURE__ -PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nNajdete zde fakturu __FACREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nDovolujeme si vás upozornit, že faktura __FACREF__ pravděpodobně nebyla uhrazena. Jako upomínku vám ji v příloze zasíláme znovu.\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nNajdete zde obchodní návrh __PROPREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nNajdete zde cenový požadavek __ASKREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nNajdete zde objednávku __ORDERREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nNajdete zde naši objednávku __ORDERREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nNajdete zde fakturu __FACREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nNajdete zde dopravu __SHIPPINGREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nNajdete zde intervenci __FICHINTERREF__\n\n__PERSONALIZED__S pozdravem\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that best suits your needs... -ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr je kompaktní ERP/CRM systém, který se skládá z více funkčních modulů. Demo, které obsahuje všechny moduly vám nepředstaví všechny možnosti, protože v reálné situaci všechny moduly najednou používat nebudete. Pro lepší a snadnější seznámení s celým systémem máte k dispozici několik demo profilů lépe vystihujících vaše požadavky. +ChooseYourDemoProfil=Vyberte demo profil, který nejlépe odpovídá vaší činnosti, nebo zaměření ... +ChooseYourDemoProfilMore=... nebo vytvořit vlastní profil
(manuální výběr modul) DemoFundation=Spravovat nadaci, nebo neziskovou organizaci a její členy DemoFundation2=Správa členů a bankovních účtů nadace nebo neziskové organizace -DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyServiceOnly=Správa pouze prodejní činnosti malé firmy nebo nadace DemoCompanyShopWithCashDesk=Správa obchodu s pokladnou, e-shopu nebo obchodní činnost -DemoCompanyProductAndStocks=Company selling products with a shop -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyProductAndStocks=Správa malého nebo středního podniku, který prodává své výrobky +DemoCompanyAll=Správa malé nebo střední firmy s více činnostmi (všechny hlavní moduly) CreatedBy=Vytvořil %s ModifiedBy=Změnil %s ValidatedBy=Ověřil %s ClosedBy=Uzavřel %s CreatedById=Uživatel id, který vytvořil -ModifiedById=User id who made latest change +ModifiedById=ID uživatele, který udělal poslední změnu ValidatedById=Uživatel id který ověřil CanceledById=Uživatel id který zrušil ClosedById=Uživatel id který uzavřel CreatedByLogin=Uživatelské přihlášení, které vytvořil -ModifiedByLogin=User login who made latest change +ModifiedByLogin=přihlášení uživatele, který provedl poslední změnu ValidatedByLogin=Přihlášený uživatel, který ověřil CanceledByLogin=Přihlášený uživatel, který zrušil ClosedByLogin=Přihlášený uživatel, který uzavřel FileWasRemoved=Soubor %s byl odstraněn DirWasRemoved=Adresář %s byl odstraněn -FeatureNotYetAvailable=Feature not yet available in the current version -FeaturesSupported=Supported features +FeatureNotYetAvailable=Funkce zatím není k dispozici v aktuální verzi +FeaturesSupported=Podporované funkce Width=Šířka Height=Výška Depth=Hloubka @@ -105,7 +119,7 @@ Right=Pravý CalculatedWeight=Vypočtená hmotnost CalculatedVolume=Vypočtený objem Weight=Hmotnost -WeightUnitton=tonne +WeightUnitton=tuna WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg @@ -120,7 +134,7 @@ SurfaceUnitm2=m² SurfaceUnitdm2=dm² SurfaceUnitcm2=cm² SurfaceUnitmm2=mm² -SurfaceUnitfoot2=ft² +SurfaceUnitfoot2=ft? SurfaceUnitinch2=in² Volume=Objem VolumeUnitm3=m³ @@ -140,27 +154,27 @@ SizeUnitinch=palec SizeUnitfoot=stopa SizeUnitpoint=bod BugTracker=Hlášení chyb -SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. +SendNewPasswordDesc=Tento formulář umožňuje požádat o nové heslo. To bude zasláno na vaši e-mailovou adresu.
Změna se projeví až po kliknutí na potvrzovací odkaz uvnitř tohoto e-mailu.
Zkontrolujte vašeho mailového klienta, zaa vám mail dorazil BackToLoginPage=Zpět na přihlašovací stránku -AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +AuthenticationDoesNotAllowSendNewPassword=Režim ověřování je %s.
V tomto režimu Dolibarr nepozná, zda může změnit vaše heslo.
Obraťte se na správce systému, pokud chcete heslo změnit. +EnableGDLibraryDesc=Nainstalujte nebo povolte GD knihovnu ve vaší PHP pro využití této možnosti ProfIdShortDesc=Prof Id %s je informace v závislosti na třetích stranách země.
Například pro země %s, je to kód %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistika v počtu produktů/služeb jednotek -StatsByNumberOfEntities=Statistika v počtu odkazujících subjektů -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices +EMailTextInterventionAddedContact=New intervention %s byla přiřazena k vám. EMailTextInterventionValidated=Zásah %s byl ověřen. EMailTextInvoiceValidated=Faktura %s byla ověřena. EMailTextProposalValidated=Nabídka %s byla ověřena. @@ -198,19 +212,19 @@ ClickHereToGoTo=Klikněte zde pro přechod na %s YouMustClickToChange=Musíte však nejprve kliknout na následující odkaz pro potvrzení této změny hesla ForgetIfNothing=Pokud jste o tuto změnu nežádali, stačí pouze odstranit tento e-mail. Vaše přihlašovací údaje jsou v bezpečí. IfAmountHigherThan=je-li množství vyšší než %s -SourcesRepository=Repository for sources -Chart=Chart +SourcesRepository=Úložiště pro zdroje +Chart=Schéma ##### Export ##### ExportsArea=Exportní plocha AvailableFormats=Dostupné formáty LibraryUsed=Použitá knihovna -LibraryVersion=Library version +LibraryVersion=verze knihovny ExportableDatas=Exportovatelné údaje NoExportableData=Žádná data pro export (žádné moduly s exportovatelnými daty, nebo chybějící oprávnění) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=Nastavení webových stránek modulu +WEBSITE_PAGEURL=URL stránky WEBSITE_TITLE=Titul WEBSITE_DESCRIPTION=Popis -WEBSITE_KEYWORDS=Keywords +WEBSITE_KEYWORDS=Klíčová slova diff --git a/htdocs/langs/cs_CZ/projects.lang b/htdocs/langs/cs_CZ/projects.lang index d526372dbe8..d30248d6edc 100644 --- a/htdocs/langs/cs_CZ/projects.lang +++ b/htdocs/langs/cs_CZ/projects.lang @@ -1,42 +1,47 @@ # Dolibarr language file - Source file is en_US - projects RefProject=Číslo projektu -ProjectRef=Project ref. +ProjectRef=Projekt ref. ProjectId=Id projektu -ProjectLabel=Project label +ProjectLabel=štítek projekt Project=Projekt Projects=Projekty -ProjectsArea=Projects Area +ProjectsArea=Oblast projektů ProjectStatus=Stav projektu SharedProject=Všichni PrivateProject=Kontakty projektu +ProjectsImContactFor=Projekty Jsem výslovně kontakt of +AllAllowedProjects=All projekt mohu číst (důlní + veřejné) +AllProjects=Všechny projekty MyProjectsDesc=Tento pohled je omezen na projekty u kterých jste uveden jako kontakt (jakéhokoliv typu) ProjectsPublicDesc=Tento pohled zobrazuje všechny projekty které máte oprávnění číst. -TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. +TasksOnProjectsPublicDesc=Tento pohled představuje všechny úkoly na projektech jsou povoleny číst. ProjectsPublicTaskDesc=Tento pohled představuje všechny projekty a úkoly, které mají povoleno číst. ProjectsDesc=Tento pohled zobrazuje všechny projekty (vaše uživatelské oprávnění vám umožňuje vidět vše). -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). +TasksOnProjectsDesc=Tento pohled představuje všechny úkoly na všech projektech (vaše uživatelská oprávnění udělit oprávnění ke shlédnutí vše). MyTasksDesc=Tento pohled je omezen na projekty či úkoly u kterých jste uveden jako kontakt (jakéhokoliv typu) OnlyOpenedProject=Pouze otevřené projekty jsou viditelné (projekty v návrhu ani v uzavřeném stavu nejsou viditelné). -ClosedProjectsAreHidden=Closed projects are not visible. +ClosedProjectsAreHidden=Uzavřené projekty nejsou viditelné. TasksPublicDesc=Tento pohled zobrazuje všechny projekty a úkoly které máte oprávnění číst. TasksDesc=Tento pohled zobrazuje všechny projekty a úkoly (vaše uživatelské oprávnění vám umožňuje vidět vše). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. -ImportDatasetTasks=Tasks of projects +AllTaskVisibleButEditIfYouAreAssigned=Všechny úkoly takového projektu jsou viditelné, ale můžete zadat čas pouze u úkolů, které vás. Přiřadit úkol sami, zda je nutné zadat čas na to. +OnlyYourTaskAreVisible=Pouze úkoly, které vám jsou viditelné. Přiřadit úkol sami, pokud to není vidět a je nutné zadat čas na to. +ImportDatasetTasks=Úkoly projektů +ProjectCategories=Štítky projektu / kategorie NewProject=Nový projekt AddProject=Vytvořit projekt DeleteAProject=Odstranit projekt DeleteATask=Odstranit úkol -ConfirmDeleteAProject=Are you sure you want to delete this project? -ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status -OpportunitiesStatusForProjects=Opportunities amount of projects by status +ConfirmDeleteAProject=Opravdu chcete tento projekt smazat? +ConfirmDeleteATask=Jste si jisti, že chcete smazat tento úkol? +OpenedProjects=otevřené projekty +OpenedTasks=otevřené úkoly +OpportunitiesStatusForOpenedProjects=Příležitosti množství otevřených projektů stavu +OpportunitiesStatusForProjects=Příležitosti počet projektů podle stavu ShowProject=Zobrazit projekt SetProject=Nastavit projekt NoProject=Žádný projekt nedefinován či vlastněn NbOfProjects=Počet projektů +NbOfTasks=Nb of tasks TimeSpent=Strávený čas TimeSpentByYou=Váš strávený čas TimeSpentByUser=Čas strávený uživatelem @@ -47,9 +52,9 @@ TaskTimeSpent=Čas strávený na úkolech TaskTimeUser=Uživatel TaskTimeNote=Poznámka TaskTimeDate=Datum -TasksOnOpenedProject=Úkoly otevřených projektů +TasksOnOpenedProject=Úkoly na otevřených projektech WorkloadNotDefined=Pracovní zátěž není definována -NewTimeSpent=Nový strávený čas +NewTimeSpent=Strávený čas MyTimeSpent=Můj strávený čas Tasks=Úkoly Task=Úkol @@ -58,33 +63,35 @@ TaskDateEnd=Datum ukončení úkolu TaskDescription=Popis úkolu NewTask=Nový úkol AddTask=Vytvořit úkol -AddTimeSpent=Create time spent +AddTimeSpent=Vytvořit čas strávený +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Činnost Activities=Úkoly / činnosti MyActivities=Moje úkoly / činnosti MyProjects=Moje projekty -MyProjectsArea=My projects Area +MyProjectsArea=Moje projekty Oblast DurationEffective=Efektivní doba trvání ProgressDeclared=Hlášený progres ProgressCalculated=Vypočítaný progres Time=Čas -ListOfTasks=List of tasks -GoToListOfTimeConsumed=Go to list of time consumed -GoToListOfTasks=Go to list of tasks +ListOfTasks=Seznam úkolů +GoToListOfTimeConsumed=Přejít na seznam času spotřebovaného +GoToListOfTasks=Přejít na seznam úkolů ListProposalsAssociatedProject=Seznam obchodních návrhů spojených s projektem -ListOrdersAssociatedProject=List of customer orders associated with the project -ListInvoicesAssociatedProject=List of customer invoices associated with the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project +ListOrdersAssociatedProject=Seznam zákaznických objednávek související s projektem +ListInvoicesAssociatedProject=Seznam zákaznických faktur souvisejících s projektem +ListPredefinedInvoicesAssociatedProject=Seznam předpřipravených zákaznických faktur spojených s projektem +ListSupplierOrdersAssociatedProject=Seznam dodavatelských objednávek souvisejících s projektem +ListSupplierInvoicesAssociatedProject=Seznam dodavatelských faktur spojených s projektem ListContractAssociatedProject=Seznam zakázek souvisejících s projektem +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Seznam zákroků spojených s projektem ListExpenseReportsAssociatedProject=Seznam vyúčtování výdajů souvisejících s projektem ListDonationsAssociatedProject=Seznam darů spojených s projektem ListActionsAssociatedProject=Seznam událostí spojených s projektem -ListTaskTimeUserProject=List of time consumed on tasks of project -ActivityOnProjectToday=Activity on project today -ActivityOnProjectYesterday=Activity on project yesterday +ListTaskTimeUserProject=Seznam času spotřebována na úkolech projektu +ActivityOnProjectToday=Aktivita na projektu dnes +ActivityOnProjectYesterday=Aktivita na projektu včera ActivityOnProjectThisWeek=Týdenní projektová aktivita ActivityOnProjectThisMonth=Měsíční projektová aktivita ActivityOnProjectThisYear=Roční projektová aktivita @@ -93,24 +100,25 @@ NotOwnerOfProject=Není vlastníkem privátního projektu AffectedTo=Přiděleno CantRemoveProject=Tento projekt nelze odstranit, neboť se na něj odkazují některé jiné objekty (faktury, objednávky či jiné). Viz záložku "Připojené objekty" ValidateProject=Ověřit projekt -ConfirmValidateProject=Are you sure you want to validate this project? +ConfirmValidateProject=Opravdu chcete tento projekt ověřit? CloseAProject=Zavřít projekt -ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ConfirmCloseAProject=Jste si jisti, že chcete ukončit tento projekt? +AlsoCloseAProject=Také v blízkosti projektu (držet to otevřený, pokud ještě je třeba dodržovat výrobní úkoly na něj) ReOpenAProject=Otevřít projekt -ConfirmReOpenAProject=Are you sure you want to re-open this project? +ConfirmReOpenAProject=Jste si jisti, že chcete znovu otevřít tento projekt? ProjectContact=Kontakty projektu ActionsOnProject=Události na projektu YouAreNotContactOfProject=Nejste kontakt tohoto privátního projektu +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Odstranit strávený čas -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? +ConfirmDeleteATimeSpent=Jste si jisti, že chcete smazat tento strávený čas? DoNotShowMyTasksOnly=Viz také úkoly mě nepřidělené ShowMyTasksOnly=Zobrazit pouze úkoly mě přidělené TaskRessourceLinks=Zdroje ProjectsDedicatedToThisThirdParty=Projekty této třetí strany NoTasks=Žádné úkoly na tomto projektu LinkedToAnotherCompany=Připojené k jiné třetí straně -TaskIsNotAffectedToYou=Úkol vám není přidělený +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Čas strávený je prázdný ThisWillAlsoRemoveTasks=Tato akce rovněž odstraní všechny úkoly projektu (%s úkolů v tuto chvíli) a všechny strávené časy vstupující do projektu. IfNeedToUseOhterObjectKeepEmpty=Pokud je k projektu třeba připojit některé objekty jiných třetích stran (faktury, objednávky, ...), ponechte toto prázdné (projekt bude moci obsahovat více třetích stran) @@ -120,25 +128,25 @@ CloneContacts=Duplikovat kontakty CloneNotes=Duplikovat poznámky CloneProjectFiles=Duplikovat připojené soubory projektu CloneTaskFiles=Duplikovat připojené soubory úkolu/ů (pokud úkol(y) klonován(y)) -CloneMoveDate=Update project/tasks dates from now? -ConfirmCloneProject=Are you sure to clone this project? -ProjectReportDate=Change task dates according to new project start date +CloneMoveDate=Aktualizace data projektu/úkolu od nyní? +ConfirmCloneProject=Opravdu chcete naklonovat tento projekt? +ProjectReportDate=Změnit datum úkolu dle data zahájení projektu ErrorShiftTaskDate=Nelze přesunout datum úkolu dle nového data zahájení projektu ProjectsAndTasksLines=Projekty a úkoly ProjectCreatedInDolibarr=Projekt %s vytvořen -ProjectModifiedInDolibarr=Project %s modified +ProjectModifiedInDolibarr=Projekt %s modifikované TaskCreatedInDolibarr=Úkol %s vytvořen TaskModifiedInDolibarr=Úkol %s upraven TaskDeletedInDolibarr=Úkol %s smazán -OpportunityStatus=Opportunity status -OpportunityStatusShort=Opp. status -OpportunityProbability=Opportunity probability +OpportunityStatus=stav příležitost +OpportunityStatusShort=Opp. postavení +OpportunityProbability=příležitost pravděpodobnost OpportunityProbabilityShort=Opp. probab. -OpportunityAmount=Opportunity amount -OpportunityAmountShort=Opp. amount -OpportunityAmountAverageShort=Average Opp. amount -OpportunityAmountWeigthedShort=Weighted Opp. amount -WonLostExcluded=Won/Lost excluded +OpportunityAmount=množství příležitostí +OpportunityAmountShort=Opp. množství +OpportunityAmountAverageShort=Průměrná Opp. množství +OpportunityAmountWeigthedShort=Vážený Opp. množství +WonLostExcluded=Won / Lost vyloučeny ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Vedoucí projektu TypeContact_project_external_PROJECTLEADER=Vedoucí projektu @@ -151,46 +159,51 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Přispěvatel SelectElement=Vyberte prvek AddElement=Odkaz na prvek # Documents models -DocumentModelBeluga=Project template for linked objects overview -DocumentModelBaleine=Project report template for tasks +DocumentModelBeluga=Šablona projektu pro přehled propojených objektů +DocumentModelBaleine=Projekt zpráva šablony pro úkoly PlannedWorkload=Plánované vytížení PlannedWorkloadShort=Pracovní zátěž -ProjectReferers=Related items +ProjectReferers=Související zboží ProjectMustBeValidatedFirst=Projekt musí být nejdříve ověřen -FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time +FirstAddRessourceToAllocateTime=Přiřadit zdroj k vyčlenění času InputPerDay=Vstup za den InputPerWeek=Vstup za týden InputPerAction=Vstup za akci -TimeAlreadyRecorded=Strávený čas již zaznamenána pro tento úkol/den a uživatele %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projekty s tímto uživatelem jako kontakt TasksWithThisUserAsContact=Úkoly přidělené tomuto uživateli -ResourceNotAssignedToProject=Not assigned to project -ResourceNotAssignedToTheTask=Not assigned to the task -AssignTaskToMe=Assign task to me -AssignTask=Assign -ProjectOverview=Overview -ManageTasks=Use projects to follow tasks and time -ManageOpportunitiesStatus=Use projects to follow leads/opportinuties -ProjectNbProjectByMonth=Nb of created projects by month -ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month -ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month -ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status -ProjectsStatistics=Statistics on projects/leads -TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. -IdTaskTime=Id task time -YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties -OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities -NotAnOpportunityShort=Not an opportunity -OpportunityTotalAmount=Opportunities total amount -OpportunityPonderatedAmount=Opportunities weighted amount -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability -OppStatusPROSP=Prospection -OppStatusQUAL=Qualification +ResourceNotAssignedToProject=Není přiřazen k projektu +ResourceNotAssignedToTheTask=Není přiřazen k úkolu +TasksAssignedTo=Úkolům, které jsou +AssignTaskToMe=Přiřadit úkol mně +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... +AssignTask=Přiřadit +ProjectOverview=Přehled +ManageTasks=Projektově řídit úkoly a čas +ManageOpportunitiesStatus=Projektově řídit tuhy / opportinuties +ProjectNbProjectByMonth=Nb vytvořených projektů měsíc +ProjectNbTaskByMonth=Nb of created tasks by month +ProjectOppAmountOfProjectsByMonth=Množství příležitostí podle měsíce +ProjectWeightedOppAmountOfProjectsByMonth=Vážené příležitostí v jednotlivých měsících +ProjectOpenedProjectByOppStatus=Otevřít projekt / vedení podle stavu příležitosti +ProjectsStatistics=Statistiky týkající se projektů / vodičů +TasksStatistics=Statistics on project/lead tasks +TaskAssignedToEnterTime=Úkol přidělen. Zadání času na tomto úkolu by mělo být možné. +IdTaskTime=Doba úkol Id +YouCanCompleteRef=Chcete-li doplnit ref některé informace (použít jej jako vyhledávací filtry), doporučujeme přidat znak - aby se oddělil, takže automatické číslování bude fungovat správně pro další projekty. Například %s-ABC. Můžete také preferovat přidání vyhledávacích klíčů do štítku. Nejlepším postupem může být přidání specializovaného pole, nazývaného také doplňkové atributy. +OpenedProjectsByThirdparties=Open projects by third parties +OnlyOpportunitiesShort=pouze příležitosti +OpenedOpportunitiesShort=otevřené příležitosti +NotAnOpportunityShort=Není to příležitost +OpportunityTotalAmount=Příležitosti celková částka +OpportunityPonderatedAmount=Příležitosti vážené +OpportunityPonderatedAmountDesc=Příležitosti vážené s pravděpodobností +OppStatusPROSP=Prospektiva +OppStatusQUAL=Kvalifikace OppStatusPROPO=Nabídka -OppStatusNEGO=Negociation +OppStatusNEGO=vyjednávání OppStatusPENDING=Čeká -OppStatusWON=Won -OppStatusLOST=Lost -Budget=Budget +OppStatusWON=Vyhrál +OppStatusLOST=Ztracený +Budget=Rozpočet diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index 7a216a76742..de519af0d19 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Tilføj en regnskabsmæssig konto AccountAccounting=Regnskabsmæssig konto AccountAccountingShort=Konto +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Kontoplan +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Salgskladde @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debet og kredit kan ikke have en værdi på samme tid - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Liste over de regnskabsmæssige konti Pcgtype=Kontoens klasse -Pcgsubtype=Kontoens underklasse +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Samlet salgsforskel @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Fejl, kan du ikke slette denne regnskabsmæssige konto, fordi den bruges MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kode +Nature=Natur +AccountingJournalType1=Various operation +AccountingJournalType2=Salg +AccountingJournalType3=Køb +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksporter @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index ccdc6487f08..b1d7bc816a3 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interne brugere ExternalUsers=Eksterne brugere GUISetup=Vise SetupArea=Setup område +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form til test-fil upload (ifølge setup) IfModuleEnabled=Note: ja er kun effektivt, hvis modul %s er aktiveret RemoveLock=Fjern fil %s, hvis det er oprettet for at tillade opdateringen værktøj. @@ -85,7 +86,7 @@ Mask=Maske NextValue=Næste værdi NextValueForInvoices=Næste værdi (fakturaer) NextValueForCreditNotes=Næste værdi (kreditnotaer) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=BEMÆRK: Din PHP grænser hver fil upload størrelse til %s %s, uanset denne parameter værdi er NoMaxSizeByPHPLimit=Bemærk: Ingen grænse er sat i din PHP-konfiguration @@ -103,7 +104,7 @@ MenuIdParent=Moderselskab menuen ID DetailMenuIdParent=ID for moder menu (0 for en top-menuen) DetailPosition=Sorter antallet at definere menuen holdning AllMenus=Alle -NotConfigured=Ikke konfigureret +NotConfigured=Module/Application not configured Active=Aktiv SetupShort=Setup OtherOptions=Andre valgmuligheder @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tusind separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Moduler LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Lokalisering parametre ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=Tidszone Server PHP DaylingSavingTime=Sommertid (bruger) CurrentHour=Nuværende time CurrentSessionTimeOut=Aktuelle session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Tilladelser BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database adgangskode krypteres i conf.php InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Beskyttelse af genereret pdf-filer (ikke recommandd, pauser masse pdf generation) -ProtectAndEncryptPdfFilesDesc=Beskyttelse af et PDF-dokument holder den til rådighed for at læse og udskrive med alle PDF browser. Men, redigering og kopiering er ikke muligt længere. Bemærk, at du bruger denne funktion gør opbygningen af et globalt kumulerede pdf virker ikke (som ubetalte fakturaer). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funktion DolibarrLicense=Licens Developpers=Udviklere / bidragydere @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Officielle markedsplads for eksterne moduler / addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For brugerens eller bygherren dokumentation (doc, FAQs ...),
tage et kig på Dolibarr Wiki:
%s ForAnswersSeeForum=For alle andre spørgsmål / hjælpe, kan du bruge Dolibarr forum:
%s HelpCenterDesc1=Dette område kan hjælpe dig med at få et Hjælp støtte tjeneste på Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funktionen ikke til rådighed på Unix-lignende syste SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Modul setup -ModulesSetup=Moduler setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Kunden ressource Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr aktuelle version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Alle andre tegn i maske vil forblive intakt.
Mellemrum er ikke tilladt.
-GenericMaskCodes4a=Eksempel på 99. %s af den tredje part TheCompany gøres 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Eksempel på tredjemand oprettet den 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Retur en tilpasselig antal henhold til en bestemt maske. ServerAvailableOnIPOrPort=Server findes på adressen %s port %s ServerNotAvailableOnIPOrPort=Serveren er ikke tilgængelig på adressen %s port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Dato og tid Unique=Unik -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Pris ExtrafieldMail = EMail ExtrafieldUrl = Url ExtrafieldSelect = Vælg liste ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Brugere og grupper Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Fakturaer og kreditnotaer 'forvaltning for kunderne. Faktura 'forva Module40Name=Leverandører Module40Desc=Suppliers' ledelse og opkøb (ordrer og fakturaer) Module42Name=Syslog -Module42Desc=Logføring faciliteter (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redaktion Module49Desc=Editors' ledelse Module50Name=Produkter @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Adviséringer @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind konverteringer kapaciteter Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-selskab Module5000Desc=Giver dig mulighed for at administrere flere selskaber Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Opret / ændre produkter / ydelser Permission34=Slet produkter / ydelser Permission36=Eksportere produkter / ydelser Permission38=Eksportere produkter -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Slet projekter Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Bestilling af metoder DictionarySource=Oprindelse af forslag / ordrer DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=E-mail skabeloner DictionaryUnits=Enheder DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup gemt +SetupNotSaved=Setup not saved BackToModuleList=Tilbage til moduler liste BackToDictionaryList=Tilbage til ordbøger liste VATManagement=Moms Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System oplysninger resumé SummaryConst=Liste over alle Dolibarr setup parametre -MenuCompanySetup=Company / Fundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Hud tema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Budskab om dagen MessageLogin=Loginsiden besked +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Faste search form på venstre menu DefaultLanguage=Standard sprog til brug (sprog code) EnableMultilangInterface=Aktiver flersproget grænseflade EnableShowLogo=Vis logo på venstre menu -CompanyInfo=Company / fundament oplysninger -CompanyIds=Company / fundament identiteter +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Navn CompanyAddress=Adresse CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance forsinkelse (i dag), inden indberetning om f Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance forsinkelse (i dage) før alarm for checks depositum til at gøre Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Andre menupunkter forvalte valgfri parametre. LogEvents=Sikkerhed revision arrangementer Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Liste over Dolibarr sikkerhed begivenheder SecurityEventsPurged=Sikkerhed begivenheder renset LogEventDesc=Du kan gøre det muligt at logge for Dolibarr sikkerhed begivenheder her. Administratorer kan derefter se dens indhold via menuen Systemværktøjer - Revision. Advarsel, denne funktion kan forbruge en stor mængde data i databasen. -AreaForAdminOnly=Disse funktioner kan anvendes af administrator brugere. Administrator funktioner og hjælpe er identificeret i Dolibarr af følgende picto: +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System oplysninger er diverse tekniske oplysninger du får i read only mode og synlig kun for administratorer. SystemAreaForAdminOnly=Dette område er til rådighed for administratoren brugere. Ingen af de Dolibarr permissions kan reducere denne grænse. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professionel Id unikke MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=En eksportgaranti link til %s format er tilgængelig på følgende link: %s ##### Invoices ##### BillsSetup=Fakturaer modul opsætning BillsNumberingModule=Fakturaer og kreditnotaer nummerressourcer modul BillsPDFModules=Faktura dokumenter modeller +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit noter ForceInvoiceDate=Force fakturadatoen til validering dato @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produkter modul opsætning ServiceSetup=Services modul opsætning @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Faktura, som anvendes dato Buy=Købe Sell=Sælge InvoiceDateUsed=Faktura, som anvendes dato -YourCompanyDoesNotUseVAT=Din virksomhed er blevet defineret til ikke at bruge moms (Home - Setup - Company / Foundation), så der er ingen moms optioner til opsætningen. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Regnskab Kode AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Klik for at ringe modul opsætning -ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises
__PHONETO__ qui sera remplacé par le téléphone de l'appelé
__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)
__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)
__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display for BankOrderES=Spansk BankOrderESDesc=Spansk display for ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-selskab modul opsætning ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/da_DK/compta.lang b/htdocs/langs/da_DK/compta.lang index bd999586e7a..821d6408f2b 100644 --- a/htdocs/langs/da_DK/compta.lang +++ b/htdocs/langs/da_DK/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Beløb resterende indbetaling: Account=Konto -Accountparent=Konto forældre -Accountsparent=Konti forældre +Accountparent=Parent account +Accountsparent=Parent accounts Income=Indkomst Outcome=Udgift ReportInOut=Indkomst / Udgift @@ -56,6 +56,7 @@ MenuTaxAndDividends=Skatter og udbytter MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Regnskabsmæssig / Treasury område NewPayment=Ny betaling @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Den omfatter alle de faktiske betalinger af fakturaer modtaget fra kunder.
- Det er baseret på betaling dato med disse fakturaer
-DepositsAreNotIncluded=- Depositum fakturaer eller inkluderet -DepositsAreIncluded=- Depositum fakturaer er inkluderet +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Rapport fra tredjepart IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Salg Journal DescPurchasesJournal=Køb Journal InvoiceRef=Faktura ref. CodeNotDef=Ikke defineret -WarningDepositsNotIncluded=Indskud fakturaer er ikke inkluderet i denne version med denne bogføring modul. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/da_DK/cron.lang b/htdocs/langs/da_DK/cron.lang index e45ee62e37d..56ca14c084e 100644 --- a/htdocs/langs/da_DK/cron.lang +++ b/htdocs/langs/da_DK/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=Ingen CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Deaktivere CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Fra @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/da_DK/errors.lang b/htdocs/langs/da_DK/errors.lang index d796b06c300..39f7c9b2fd4 100644 --- a/htdocs/langs/da_DK/errors.lang +++ b/htdocs/langs/da_DK/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Kunne ikke oprette filen ' %s'. ErrorFailToRenameDir=Kunne ikke omdøbe mappe ' %s' i' %s'. ErrorFailToCreateDir=Kunne ikke oprette mappen ' %s'. ErrorFailToDeleteDir=Det lykkedes ikke at slette mappen ' %s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Denne kontaktperson er allerede defineret som kontaktperson for denne type. ErrorCashAccountAcceptsOnlyCashMoney=Denne bankkonto er et kontant-konto, så det accepterer betaling af type cash only. ErrorFromToAccountsMustDiffers=Kilde og mål bankkonti skal være anderledes. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Det lykkedes ikke at skrive i mappen %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Fundet forkerte e-mail-syntaks for %s linjer i filen (f.eks line %s med email= %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Nogle krævede felter ikke var fyldt. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Det lykkedes ikke at oprette en mappe. Kontroller, at web-serveren bruger har tilladelse til at skrive i Dolibarr dokumenter bibliotek. Hvis parameter safe_mode er aktiveret på dette PHP, kontrollere, at Dolibarr php filer ejer til web-serveren bruger (eller gruppe). ErrorNoMailDefinedForThisUser=Nr. mail defineret for denne bruger ErrorFeatureNeedJavascript=Denne funktion skal have Javascript skal aktiveres for at arbejde. Ændre dette i opsætningen - displayet. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Brugerkonto %s anvendes til at udføre web-server har ikke tilladelse til at ErrorNoActivatedBarcode=Ingen stregkode aktiveret typen ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index 5af931595eb..aa4c661f05d 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s ikke defineret ErrorUnknown=Ukendt fejl ErrorSQL=SQL Fejl ErrorLogoFileNotFound=Logo fil ' %s' blev ikke fundet -ErrorGoToGlobalSetup=Gå til 'Company / Foundation "-opsætningen til at løse dette +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Gå til Modul setup at rette dette ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=Det lykkedes ikke at sende e-mails (afsender= %s, receiver= %s) ErrorFileNotUploaded=Filen blev ikke uploadet. Kontroller, at størrelse ikke overstiger den maksimalt tilladte, at den frie plads der er til rådighed på disken, og at der ikke allerede en fil med samme navn i denne mappe. @@ -153,6 +153,7 @@ Edit=Redigér Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=At validere +NotValidated=Not validated Save=Gemme SaveAs=Gem som TestConnection=Test forbindelse @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Forbindelsesstyring Setup=Setup Alert=Alarm +MenuWarnings=Indberetninger Previous=Forrige Next=Næste Cards=Postkort @@ -308,6 +310,7 @@ Copy=Kopier Paste=Paste Default=Standard DefaultValue=Standardværdi +DefaultValues=Default values Price=Pris UnitPrice=Enhedspris UnitPriceHT=Enhedspris (netto) @@ -363,7 +366,8 @@ VATRate=Momssats Average=Gennemsnit Sum=Sum Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Option List=Liste FullList=Fuldstændig liste @@ -387,7 +391,7 @@ ActionRunningNotStarted=Ikke startet ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company / Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakter til denne tredjepart ContactsAddressesForCompany=Kontakter/adresser for denne trediepart AddressesForCompany=Adresse for denne trediepart @@ -405,8 +409,9 @@ Generate=Generer Duration=Varighed TotalDuration=Samlet varighed Summary=Resumé -DolibarrStateBoard=Statistik -DolibarrWorkBoard=Arbejdsopgaver bord +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Tilgængelig NotYetAvailable=Endnu ikke tilgængelig NotAvailable=Ikke til rådighed @@ -434,7 +439,7 @@ Reportings=Rapportering Draft=Udkast Drafts=Drafts Validated=Valideret -Opened=Åbnet +Opened=Åbent New=Ny Discount=Discount Unknown=Ukendt @@ -453,6 +458,7 @@ NextStep=Næste skridt Datas=Oplysningerne None=Ingen NoneF=Ingen +NoneOrSeveral=None or several Late=Sen LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Billede @@ -606,7 +612,8 @@ PartialWoman=Delvis TotalWoman=Total NeverReceived=Aldrig modtaget Canceled=Annulleret -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Forbundet filer @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Klon formål med sine vigtigste attributter PDFMerge=PDF Sammenflet Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Vis side for at udskrive hovedindhold område MenuManager=Menu manager WarningYouAreInMaintenanceMode=Advarsel, du er i en vedligeholdelses mode, så kun login %s er tilladt at bruge ansøgningen på i øjeblikket. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Slet linie ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Mandag Tuesday=Tirsdag @@ -817,5 +835,3 @@ SearchIntoContracts=Kontrakter SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index 3907188fdec..a39ee5c599a 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Dato for fødsel BirthdayAlertOn=fødselsdag alarm aktive BirthdayAlertOff=fødselsdag alarm inaktive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Valider intervention Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Dette er en test mail (ordet test skal være i fed PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
er en information afhængigt tredjepart land.
For eksempel, for land %s, er det kode %s. DolibarrDemo=Dolibarr ERP / CRM demo -StatsByNumberOfUnits=Statistik i antallet af enheder -StatsByNumberOfEntities=Statistik i antallet af enheder -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Intervention %s valideret EMailTextInvoiceValidated=Faktura %s valideret diff --git a/htdocs/langs/da_DK/projects.lang b/htdocs/langs/da_DK/projects.lang index 02171a27ddd..c342201d9b0 100644 --- a/htdocs/langs/da_DK/projects.lang +++ b/htdocs/langs/da_DK/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Fælles projekt PrivateProject=Projekt kontakter +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Alle projekter MyProjectsDesc=Dette synspunkt er begrænset til projekter, du er en kontaktperson for (hvad der er den type). ProjectsPublicDesc=Dette synspunkt præsenterer alle projekter du får lov til at læse. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Dette synspunkt præsenterer alle projekter og opgaver (din brugertill AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nyt projekt AddProject=Create project DeleteAProject=Slet et projekt DeleteATask=Slet en opgave ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Vis projekt SetProject=Indstil projekt NoProject=Nr. projektet defineret NbOfProjects=Nb af projekter +NbOfTasks=Nb of tasks TimeSpent=Tid brugt TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Bruger TaskTimeNote=Note TaskTimeDate=Dato -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Ny tid +NewTimeSpent=Tid brugt MyTimeSpent=Min tid Tasks=Opgaver Task=Opgave @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Ny opgave AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivitet Activities=Opgaver / aktiviteter MyActivities=Mine opgaver / aktiviteter @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Liste over kontrakter i forbindelse med projektet +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Liste over interventioner i forbindelse med projektet ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekt kontakter ActionsOnProject=Initiativer på projektet YouAreNotContactOfProject=Du er ikke en kontakt af denne private projekt +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Slet tid ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Ressourcer ProjectsDedicatedToThisThirdParty=Projekter dedikeret til denne tredjepart NoTasks=Ingen opgaver for dette projekt LinkedToAnotherCompany=Knyttet til tredjemand -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Tilbragte Tiden er tom ThisWillAlsoRemoveTasks=Denne handling vil også slette alle opgaver i projektet (%s opgaver i øjeblikket), og alle indgange af tid. IfNeedToUseOhterObjectKeepEmpty=Hvis nogle objekter (faktura, ordre, ...), der tilhører en anden tredjepart, skal knyttet til projektet for at skabe, holde denne tomme for at få projektet er flere tredjeparter. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/de_AT/accountancy.lang b/htdocs/langs/de_AT/accountancy.lang deleted file mode 100644 index 473582c566a..00000000000 --- a/htdocs/langs/de_AT/accountancy.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category diff --git a/htdocs/langs/de_AT/admin.lang b/htdocs/langs/de_AT/admin.lang index cef52b33fe9..bdccd4e6180 100644 --- a/htdocs/langs/de_AT/admin.lang +++ b/htdocs/langs/de_AT/admin.lang @@ -1,668 +1,41 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version VersionProgram=Versionsnummer -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental VersionDevelopment=Entwickler -VersionUnknown=Unbekannt -VersionRecommanded=Empfohlen -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found SessionId=Sitzungsnummer SessionSaveHandler=Sessionmanager -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock YourSession=Ihre Anmeldung Sessions=Benutzeranmeldung -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade InternalUser=interner Nutzer ExternalUser=externer Nutzer InternalUsers=interne Nutzer ExternalUsers=externe Nutzer GUISetup=Anischt SetupArea=Einstellungen -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Sicherheitseinstellungen -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask NextValue=Nächste Wert -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Beispiel für ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Beispiel für ClamAV: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Beispiel für ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. +AntiVirusCommandExample=Beispiel für ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Beispiel für ClamAV: /usr/bin/clamscan +AntiVirusParamExample=Beispiel für ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ImportMySqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden Befehl über die Kommandozeile ausführen: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC (yy) (mm) - (000000) wird ABC0701-000099
(0000 +100)-ZZZ / tt () / XXX wird 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt-Dokumentvorlagen -ExampleOfDirectoriesForModelGen=Beispiele für Syntax:
c:\\mydir
/Home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Rechnungen -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management Module50Name=Produkte und Services -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services +Module53Name=Dienstleistung Module53Desc=Services-Verwaltung -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account Module70Name=Eingriffe Module70Desc=Eingriffsverwaltung -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management Module80Name=Sendungen -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members Module310Desc=Mitgliederverwaltun -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Lesezeichen Module330Desc=Bookmarks-Verwaltung -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration Module500Name=Steuern, Sozialbeiträge und Dividenden Module500Desc=Steuer-, Sozialbeitrags- und Dividendenverwaltung -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox Module50100Name=Kassa -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals Permission31=Produkte/Services einsehen Permission32=Produkte/Services erstellen/bearbeiten Permission34=Produkte/Services löschen Permission36=Projekte/Services exportieren -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects Permission61=Eingriffe ansehen Permission62=Eingriffe erstellen/bearbeiten Permission64=Eingriffe löschen Permission67=Eingriffe exportieren -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) Permission172=Reisen löschen -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders Permission192=Leitungen anlegen Permission193=Leitungen verwerfen Permission194=Breitbandverbindungen einsehen @@ -676,66 +49,17 @@ Permission212=Leitungen bestellen Permission213=Leitungen aktivieren Permission214=Telefonie einstellen Permission215=Anbieter einstellen -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users Permission252=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung) Permission253=Passwörter anderer Benutzer ändern -PermissionAdvanced253=Create/modify internal/external users and permissions Permission254=Andere Benutzer löschen oder deaktivieren Permission255=Eigene Benutzereinstellungen setzen/bearbeiten Permission256=Eigenes Passwort ändern -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). Permission271=CA einsehen Permission272=Rechnungen einsehen Permission273=Rechnungen erstellen -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs Permission292=Festlegen von Berechtigungen für die Tarife -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes Permission311=Services einsehen Permission312=Services Verträgen zuweisen -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans Permission531=Services einsehen Permission532=Services erstellen/bearbeiten Permission534=Services löschen @@ -743,923 +67,38 @@ Permission536=Versteckte Services einsehen/verwalten Permission538=Services exportieren Permission701=Spenden erstellen/bearbeiten Permission702=Spenden löschen -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details Permission1251=Massenimport von Daten in die Datenbank (Systemlast!) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill Permission1421=Kundenbestellungen und -attribute exportieren -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account Permission2403=Maßnahmen (Termine/Aufgaben) Anderer einsehen Permission2411=Maßnahmen (Termine oder Aufgaben) Anderer einsehen Permission2412=Maßnahmen (Termine oder Aufgaben) Anderer erstellen/bearbeiten Permission2413=Maßnahmen (Termine oder Aufgaben) Anderer löschen -Permission2414=Export actions/tasks of others Permission2501=Dokumente hochladen oder löschen -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmäßig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen- -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port VirtualServerName=Virtual Server Name -OS=OS PhpWebLink=Php Web-Link -Browser=Browser Server=Host -Database=Database -DatabaseServer=Database host DatabaseName=Datenbankname DatabasePort=Datenbank-Port DatabaseUser=Datenbankbenutzer DatabasePassword=Datenbankpasswort -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records Host=Host DriverType=Driver Typ -SummarySystem=System information summary SummaryConst=Liste aller Systemeinstellungen -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Oberfläche DefaultSkin=Standardoberfläche -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Standardsprache (Sprachcode) -EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Logo über dem linken Menüs anzeigen -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country CompanyCurrency=Firmenwährung -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts DelaysOfToleranceBeforeWarning=Verspätungstoleranz vor Benachrichtigungen -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über zu aktivierende Services Delays_MAIN_DELAY_RUNNING_SERVICES=Verzögerungstoleranz (in Tagen) vor Benachrichtigung zu überfälligen Services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates DocumentModelOdt=Erstellen von Dokumentvorlagen im OpenDocuments-Format (.odt-Dateien für OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Gutschrift -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungsentwürfen (alle, falls leer) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals WatermarkOnDraftProposal=Wasserzeichen für Angebotsentwürfe (alle, falls leer) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders WatermarkOnDraftOrders=Wasserzeichen zu den Entwürfen von Aufträgen (alle, wenn leer) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### InterventionsSetup=Eingriffsmoduleinstellungen FreeLegalTextOnInterventions=Freier Rechtstext für Eingriffe -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models WatermarkOnDraftInterventionCards=Wasserzeichen auf Intervention Karte Dokumente (alle, wenn leer) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### ClickToDialSetup=Click-to-Dial-Moduleinstellungen -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Kassa -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup PathToGeoIPMaxmindCountryDataFile=Pfad zur Datei mit Maxmind IP to Country Übersetzung.
Beispiel: / usr / local / share / GeoIP / GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang index 9f8f89018ff..436ba439ea6 100644 --- a/htdocs/langs/de_AT/banks.lang +++ b/htdocs/langs/de_AT/banks.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - banks MenuBankCash=Überweisung/Bar BankName=Banknamen -FinancialAccount=Konto BankAccount=Kontonummer BankAccounts=Kontonummern AccountRef=Referenznummer diff --git a/htdocs/langs/de_AT/compta.lang b/htdocs/langs/de_AT/compta.lang index 9ec9d2f810c..3a18e7f06f9 100644 --- a/htdocs/langs/de_AT/compta.lang +++ b/htdocs/langs/de_AT/compta.lang @@ -7,6 +7,7 @@ VATReceived=Eingehobene MwSt. VATToCollect=Einzuhebende MwSt. VATSummary=MwSt. Zahllast VATCollected=Eingehobene MwSt. +ToPay=To pay MenuSpecialExpenses=Steuern, Sozialbeiträge und Dividenden AnnualSummaryDueDebtMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus%sForderungen-Verbindlichkeiten%s meldet Kameralistik. AnnualSummaryInputOutputMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus %sEinkünfte-Ausgaben%s meldet Ist-Besteuerung. @@ -21,4 +22,3 @@ SellsJournal=Vertrieb Journal PurchasesJournal=Käufe Journal DescSellsJournal=Vertrieb Journal DescPurchasesJournal=Käufe Journal -WarningDepositsNotIncluded=Einlagen Rechnungen sind in dieser Version nicht mit diesem Rechnungswesen-Modul enthalten. diff --git a/htdocs/langs/de_AT/main.lang b/htdocs/langs/de_AT/main.lang index 70759251863..e4e649378dc 100644 --- a/htdocs/langs/de_AT/main.lang +++ b/htdocs/langs/de_AT/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,50 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data NoError=Kein Fehler -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo-Datei '%s' kann nicht gefunden werden -ErrorGoToGlobalSetup=Bitte wechseln Sie zu den 'Firma/Stiftung"-Einstellungen um das Problem zu beheben -ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Fehler beim Senden des Mails (Absender=%s, Empfänger=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. ErrorDuplicateField=Dieser Wert muß einzigartig sein -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted LevelOfFeature=Funktions-Level -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection PreviousConnexion=Vorherige Verbindung -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. +Closed=geschlossen +Closed2=geschlossen Of=Von -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card Search=Suche SearchOf=Suche -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open Upload=Upload -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password PasswordRetype=Geben Sie das Passwort erneut ein -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Titel -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date DateStart=Start-Datum DateEnd=End-Datum -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date DateRequest=Verlange Datum -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks DurationDays=Tag -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days days=Tag -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price UnitPrice=Bruttopreis (Stk.) UnitPriceHT=Nettopreis (Stk.) UnitPriceTTC=Bruttopreis (Stk.) -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount AmountAverage=Durchnschnittsbetrag -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Nettosumme -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit TotalVAT=Steuer gesamt -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. Ref=Bezeichnung -ExternalRef=Ref. extern RefSupplier=Lieferanten Nr. RefPayment=Zahlungs Nr. -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft Drafts=Entwurf -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unbekannt -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None Late=Versätet -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details January=Jänner -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec Month01=Jänner -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS ReportName=Berichtname -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview RefCustomer=Kunden Nr. -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority SendByMail=Per E-Mail senden MailSentBy=E-Mail-Absender TextUsedInTheMessageBody=E-Mail-Text -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail NoEMail=Keine E-Mails -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget Offered=Angeboten -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method Receive=Erhalte -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda ThisLimitIsDefinedInSetup=Gesetzte System-Limits (Menü Home-Einstellungen-Sicherheit): %s Kb, PHP Limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden UnHidePassword=Passwort-Zeichen anzeigen -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type CloneMainAttributes=Duplikat mit den Haupteigenschaften -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute AttributeCode=Attribut-Code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention CreateDraft=Erstelle Entwurf -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element NoPhotoYet=Es wurde noch kein Bild hochgeladen -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman ViewList=Liste anzeigen -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous Calendar=Kalender -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals SearchIntoInterventions=Eingriffe -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/de_AT/paypal.lang b/htdocs/langs/de_AT/paypal.lang index 051b980ecc1..341fdf56696 100644 --- a/htdocs/langs/de_AT/paypal.lang +++ b/htdocs/langs/de_AT/paypal.lang @@ -11,8 +11,6 @@ PAYPAL_CSS_URL=optionale Url eines CSS style sheets auf der Payment-Seite ThisIsTransactionId=Dies ist id Geschäftsart: %s PAYPAL_ADD_PAYMENT_URL=Fügen Sie die URL der Paypal Zahlung, wenn Sie ein Dokument per E-Mail senden YouAreCurrentlyInSandboxMode=Sie befinden sich derzeit im "Sandkasten-Modus" -NewPaypalPaymentReceived=Paypal Eingang erhalten -NewPaypalPaymentFailed=Paypal-Zahlungsvorgang ist fehlgeschlagen ReturnURLAfterPayment=Rückkehr zur URL nach der Zahlung DetailedErrorMessage=genaue Fehlermeldung ShortErrorMessage=kurze Fehlermeldung diff --git a/htdocs/langs/de_CH/accountancy.lang b/htdocs/langs/de_CH/accountancy.lang index 64ddac1527b..95c98153fff 100644 --- a/htdocs/langs/de_CH/accountancy.lang +++ b/htdocs/langs/de_CH/accountancy.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - accountancy MenuAccountancy=Rechnungswesen -AccountingCategory=Accounting category Vide=Id. Prof. 6 diff --git a/htdocs/langs/de_CH/admin.lang b/htdocs/langs/de_CH/admin.lang index bab02cc82a6..89ca7ecc041 100644 --- a/htdocs/langs/de_CH/admin.lang +++ b/htdocs/langs/de_CH/admin.lang @@ -1,1640 +1,215 @@ # Dolibarr language file - Source file is en_US - admin Foundation=Verein -Version=Version -VersionProgram=Programmversion VersionLastInstall=Erste installierte Version VersionLastUpgrade=Version der letzten Aktualisierung -VersionExperimental=Experimentell -VersionDevelopment=Entwicklung -VersionUnknown=Unbekannt -VersionRecommanded=Empfohlen -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Fehlende Dateien -FilesUpdated=Dateien ersetzt -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=ID Session -SessionSaveHandler=Handler für Sitzungsspeicherung -SessionSavePath=Pfad für Sitzungsdatenspeicherung -PurgeSessions=Bereinigung von Sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Anzeige der aktiven Sitzungen mit Ihrer PHP-Konfiguration nicht möglich. -LockNewSessions=Keine neuen Sitzungen zulassen -ConfirmLockNewSessions=Möchten Sie wirklich alle Sitzungen bis auf Ihre eigene blocken? Nur Benutzer %s kann danach noch eine Verbindung aufbauen. -UnlockNewSessions=Sperrung neuer Sitzungen aufheben -YourSession=Ihre Sitzung -Sessions=Benutzer-Sessions -WebUserGroup=WebServer Benutzer/Gruppen -NoSessionFound=Ihre PHP -Konfiguration scheint keine Liste aktiver Sitzungen zuzulassen. Eventuell ist die Speicherung im Verzeichnis (%s) aktiviert und fehlerhafte Dateizugriffsberechtigungen blockieren den Zugriff (z.B. open_basedir-Beschränkungen). -DBStoringCharset=Zeichensatz der Datenbank-Speicherung -DBSortingCharset=Zeichensatz der Datenbank-Sortierung -WarningModuleNotActive=Modul %s muss aktiviert sein -WarningOnlyPermissionOfActivatedModules=Achtung, hier werden nur Berechtigungen im Zusammenhang mit aktivierten Module angezeigt. Weitere Module können Sie unter Start->Einstellungen-Module aktivieren. -DolibarrSetup=dolibarr Installation oder Upgrade -InternalUser=Interner Benutzer -ExternalUser=Externer Benutzer -InternalUsers=Interne Benutzer -ExternalUsers=Externe Benutzer -GUISetup=Anzeige -SetupArea=Einstellungen - Übersicht FormToTestFileUploadForm=Formular für das Testen von Datei-Uplads (je nach Konfiguration) -IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul %s aktiviert ist -RemoveLock=Entfernen Sie die Datei %s falls vorhanden, um das Aktualisierungs-Tool auszuführen -RestoreLock=Ersetzen Sie die Datei %s mit einer Datei ohne Schreibberechtigung um jegliche Nutzung des Aktualisierungs-Tools zu verhindern. -SecuritySetup=Sicherheitseinstellungen SecurityFilesDesc=Sicherheitseinstellungen für den Dateiupload definieren. ErrorModuleRequirePHPVersion=Fehler: Dieses Modul benötigt PHP Version %s oder höher ErrorModuleRequireDolibarrVersion=Fehler: Dieses Moduls erfordert Dolibarr Version %s oder höher -ErrorDecimalLargerThanAreForbidden=Fehler: Eine höhere Genauigkeit als %s wird nicht unterstützt. DictionarySetup=Wörterbuch Einstellungen Dictionary=Wörterbücher -ErrorReservedTypeSystemSystemAuto=Die Werte 'system' und 'systemauto' für Typ sind reserviert. Sie können 'user' als Wert verwenden, um Ihren eigenen Datensatz hinzuzufügen ErrorCodeCantContainZero=Code darf keinen Wert 0 enthalten -DisableJavascript=JavaScript- und Ajax-Funktionen deaktivieren (empfohlen für Blinde und Text-Browser) UseSearchToSelectCompanyTooltip=Wenn Sie eine grosse Anzahl von Geschäftspartnern (> 100'000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante COMPANY_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. UseSearchToSelectContactTooltip=Wenn Sie eine grosse Anzahl von Kontakten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante CONTACT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Anzahl der Buchstaben um eine Suche auszulösen: %s -NotAvailableWhenAjaxDisabled=Nicht verfügbar, wenn Ajax deaktiviert -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript deaktiviert -UsePreviewTabs=Vorschautabs verwenden -ShowPreview=Vorschau anzeigen -PreviewNotAvailable=Vorschau nicht verfügbar -ThemeCurrentlyActive=derzeit aktivierte grafische Oberfläche -CurrentTimeZone=Aktuelle Zeitzone des PHP-Servers -MySQLTimeZone=Aktuelle Zeitzone von MySql (Datenbank) -TZHasNoEffect=Daten werden vom Datenbank-Server gespeichert und zurückgeliefert, als würde der eingegebene String abgelegt werden. Die Zeitzone hat nur dann eine Auswirkung, wenn die UNIX_TIMESTAMP-Funktion benutzt wird (Dolibarr nutzt diese nicht, daher sollte die Datenbank-TZ keine Rolle spielen, selbst wenn diese nach Dateneingabe geändert wird). Space=Raum -Table=Tabelle -Fields=Felder -Index=Index -Mask=Maske -NextValue=Nächster Wert -NextValueForInvoices=Nächster Wert (Rechnungen) -NextValueForCreditNotes=Nächster Wert (Gutschriften) -NextValueForDeposit=Nächster Wert (Scheck) -NextValueForReplacements=Nächster Wert (Ersatz) MustBeLowerThanPHPLimit=Hinweis: Ihre PHP-Einstellungen beschränken die Grösse für Dateiuploads auf %s%s NoMaxSizeByPHPLimit=Hinweis: In Ihren PHP-Einstellungen sind keine Grössenbeschränkungen hinterlegt MaxSizeForUploadedFiles=Maximale Grösse für Dateiuploads (0 verbietet jegliche Uploads) -UseCaptchaCode=Captcha-Code auf der Anmeldeseite verwenden -AntiVirusCommand= Vollständiger Pfad zum installierten Virenschutz -AntiVirusCommandExample= Beispiel für ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Beispiel für ClamAV: /usr/bin/clamscan -AntiVirusParam= Weitere Parameter auf der Kommandozeile -AntiVirusParamExample= Beispiel für ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Buchhaltungsmoduls-Einstellungen -UserSetup=Benutzerverwaltung Einstellungen +AntiVirusCommandExample=Beispiel für ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Beispiel für ClamAV: /usr/bin/clamscan +AntiVirusParamExample=Beispiel für ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" MultiCurrencySetup=Mehrfachwährungen konfigurieren -MenuLimits=Genauigkeit - Toleranz MenuIdParent=Eltern-Menü-ID -DetailMenuIdParent=ID des übergeordneten Menüs (0 für einen Eltern-Menü) DetailPosition=Reihungsnummer für definition der Menüposition -AllMenus=Alle -NotConfigured=Nicht konfiguriert -Active=Aktiv -SetupShort=Einstellungen -OtherOptions=Andere Optionen -OtherSetup=Andere Einstellungen -CurrentValueSeparatorDecimal=Dezimaltrennzeichen -CurrentValueSeparatorThousand=Tausendertrennzeichen -Destination=Ziel -IdModule=Modul ID -IdPermissions=Berechtigungs-ID -Modules=Module -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Länderspezifische Parameter -ClientTZ=Zeitzone Kunde (Benutzer) -ClientHour=Uhrzeit (Benutzer) -OSTZ=Zeitzone des Serverbetriebssystems -PHPTZ=Zeitzone der PHP-Version -DaylingSavingTime=Sommerzeit (Benutzer) -CurrentHour=PHP-Zeit (Server) -CurrentSessionTimeOut=Aktuelle Session timeout -YouCanEditPHPTZ=Um eine andere PHP-Zeitzone zu setzen (nicht erforderlich), können Sie versuchen, eine .htaccess-Datei mit einer Zeile wie "SetEnv TZ Europe / Paris" hinzuzufügen. -Box=Box -Boxes=Boxen MaxNbOfLinesForBoxes=Maximale Zeilenanzahl für Boxen -PositionByDefault=Standardposition -Position=Position MenusDesc=In der Menüverwaltung können Sie den Inhalt der beiden Menüleisten (Horizontal und Vertikal) festlegen MenusEditorDesc=Über den Menü-Editor können Sie Ihre Menüeinträge personalisieren. Gehen Sie dabei sorgfältig vor um die Stabilität des Systems zu gewährleisten und zu verhindern, dass einzelne Module gänzlich unerreichbar werden.
Einige Module erzeugen einen Menüeintrag (in den meisten Fällen im Menü Alle). Sollten Sie einen oder mehrere dieser Einträge unabsichtlich entfernt haben, können Sie diese durch das Deaktivieren und neuerliche Aktivieren des Moduls beheben. -MenuForUsers=Benutzermenü -LangFile=Datei .lang -System=System -SystemInfo=Systeminformationen -SystemToolsArea=Systemwerkzeugsübersicht -SystemToolsAreaDesc=In diesem Bereich finden Sie die Verwaltungsfunktionen. Verwenden Sie das linke Menü zur Auswahl der gesuchten Funktion. -Purge=Säubern PurgeAreaDesc=Hier können Sie alle vom System erzeugten und gespeicherten Dateien löschen (temporäre Dateien oder alle Dateien im Verzeichnis %s). Diese Funktion ist richtet sich vorwiegend an Benutzer ohne Zugriff auf das Dateisystem des Webservers (z.B. Hostingpakete) PurgeDeleteLogFile=Löschen der Protokolldatei %s des Systemprotokollmoduls (kein Risiko des Datenverlusts) PurgeDeleteTemporaryFiles=Alle temporären Dateien löschen (kein Datenverlustrisiko) PurgeDeleteTemporaryFilesShort=Temporärdateien löschen PurgeDeleteAllFilesInDocumentsDir=Alle Datein im Verzeichnis %s löschen. Dies beinhaltet temporäre Dateien ebenso wie Datenbanksicherungen, Dokumente (Geschäftspartner, Rechnungen, ...) und alle Inhalte des ECM-Moduls. -PurgeRunNow=Jetzt bereinigen PurgeNothingToDelete=Keine zu löschenden Verzeichnisse oder Dateien -PurgeNDirectoriesDeleted=%s Dateien oder Verzeichnisse gelöscht. -PurgeAuditEvents=Bereinige alle Sicherheitsereignisse -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Sicherung erzeugen -Backup=Sichern -Restore=Wiederherstellen -RunCommandSummary=Die Sicherung wird über folgenden Befehl ausgeführt -BackupResult=Sicherung Ergebnisse -BackupFileSuccessfullyCreated=Sicherungsdatei erfolgreich erzeugt -YouCanDownloadBackupFile=Sie können die erstellte Sicherungsdatei jetzt herunterladen -NoBackupFileAvailable=Keine verfügbare Sicherungsdatei ExportMethod=Export-Methode ImportMethod=Import-Methode -ToBuildBackupFileClickHere=Um eine Sicherungsdatei zu erstellen klicken Sie bitte hier. -ImportMySqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden MySql Befehl über die Kommandozeile ausführen: -ImportPostgreSqlDesc=Zum Wiederherstellen einer Sicherungsdatei müssen Sie folgenden pg_restore Befehl über die Kommandozeile ausführen: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=Name der zu erstellenden Datei -Compression=Komprimierung -CommandsToDisableForeignKeysForImport=Befehl, um Fremdschlüssel beim Import zu deaktivieren -CommandsToDisableForeignKeysForImportWarning=Zwingend erforderlich, wenn Sie den SQL-Dump später wiederherstellen möchten -ExportCompatibility=Kompatibilität der erzeugten Exportdatei -MySqlExportParameters=MySQL-Exportparameter -PostgreSqlExportParameters= PostgreSQL Export-Parameter -UseTransactionnalMode=Transaktionsmodus verwenden -FullPathToMysqldumpCommand=Vollständiger Pfad zum mysqldump-Befehl -FullPathToPostgreSQLdumpCommand=Vollständiger Pfad zum pg_dump-Befehl -ExportOptions=Exportoptionen -AddDropDatabase=DROP DATABASE Befehl hinzufügen -AddDropTable=DROP TABLE Befehl hinzufügen -ExportStructure=Struktur -NameColumn=Name der Spalten -ExtendedInsert=Erweiterte INSERTS -NoLockBeforeInsert=Keine Sperrebefehle für INSERT -DelayedInsert=Verzögerte INSERTS -EncodeBinariesInHexa=Hexadezimal-Verschlüsselung für Binärdateien -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Automatische Erkennung (Browser-Sprache) -FeatureDisabledInDemo=Funktion in der Demoversion deaktiviert -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Berechtigungen BoxesDesc=Boxen sind auf manchen Seiten angezeigte Informationsbereiche. Sie können die Anzeige einer Box einstellen, indem Sie auf die Zielseite klicken und 'Aktivieren' wählen. Zum Ausblenden einer Box klicken Sie einfach auf den Papierkorb. -OnlyActiveElementsAreShown=Nur Elemente aus aktiven Module werden angezeigt. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. ModulesMarketPlaceDesc=Sie finden weitere Module auf externen Websites -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiterungen DoliPartnersDesc=Unternehmensliste, die Zusatzmodule oder Funktionen entwicklen können. (Hinweis: Alle Entwickler mit PHP Kentinissen können Dolibarr erweitern) WebSiteDesc=Webseite für die Suche nach weiteren Modulen -URL=Link -BoxesAvailable=Verfügbare Boxen BoxesActivated=Aktivierte Boxen -ActivateOn=Aktiv ab -ActiveOn=Aktiviert am -SourceFile=Quelldatei -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Nur bei aktiviertem JavaScript und AJAX verfügbar -Required=Erforderlich -UsedOnlyWithTypeOption=verwendet nur von einigen Agenda-Optionen -Security=Sicherheit -Passwords=Passwörter -DoNotStoreClearPassword=Passwörter in der Datenbank nicht im Klartext speichern (Empfohlene Einstellung) -MainDbPasswordFileConfEncrypted=Datenbankpasswort in der Konfigurationsdatei verschlüsselt speichern (Empfohlene Einstellung) -InstrucToEncodePass=Um das Kennwort in der Konfigurationsdatei conf.php verschlüsselt zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="...";
durch
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=Um das Kennwort unverschlüsselt (im Klartext) in der Konfigurationsdatei conf.php zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="crypted:...";
durch
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert) -ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass über die Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. aller offenen Rechnungen) nicht mehr funktioniert -Feature=Funktion -DolibarrLicense=Lizenz -Developpers=Entwickler/Mitwirkende OfficialWebSite=Offizielle Website -OfficialWebSiteLocal=Lokale Webseite (%s) -OfficialWiki=Dolibarr Wiki -OfficialDemo=Dolibarr Offizielle Demo -OfficialMarketPlace=Offizieller Marktplatz für Module/Erweiterungen -OfficialWebHostingService=Offizielle Web-Hosting-Services (Cloud Hosting) ReferencedPreferredPartners=Bevorzugte Geschäftspartner -OtherResources=Andere Ressourcen -ForDocumentationSeeWiki=Für Benutzer-und Entwickler-Dokumentation (DOC, ...), FAQs
Werfen Sie einen Blick auf die Dolibarr Wiki:
%s ForAnswersSeeForum=Für alle anderen Fragen / Hilfe, können Sie die Dolibarr Forum:
%s HelpCenterDesc1=In diesem Bereich können Sie sich ein Hilfe-Support-Service auf Dolibarr. -HelpCenterDesc2=Ein Teil dieses Dienstes sind nur in Englisch verfügbar. -CurrentMenuHandler=Aktuelle Menü-Handler MeasuringUnit=Masseinheit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Kündigungsfrist -NewByMonth=New by month -Emails=E-Mails -EMailsSetup=E-Mail-Adressen einrichten -EMailsDesc=Auf dieser Seite können Sie Ihre PHP-Parameter für den E-Mail-Versand überschreiben. In den meisten Unix/Linux-Umgebungen mit korrekter PHP-Konfiguration sind diese Einstellungen nutzlos. MAIN_MAIL_SMTP_PORT=SMTP-Port (standardmässig in der php.ini: %s) MAIN_MAIL_SMTP_SERVER=SMTP-Host (standardmässig in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS-Port (nicht in PHP definiert in Unix-Umgebungen) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP-Host (nicht in PHP definiert auf Unix-Umgebungen) MAIN_MAIL_EMAIL_FROM=E-Mail-Absender für automatisch erzeugte Mails (standardmässig in php.ini: %s) -MAIN_MAIL_ERRORS_TO=E-Mail-Absender für rückkehrende fehlerhafte E-Mails -MAIN_MAIL_AUTOCOPY_TO= Senden Sie automatisch eine Blindkopie aller gesendeten Mails an -MAIN_DISABLE_ALL_MAILS=Alle E-Mail-Funktionen abschalten (für Test- oder Demozwecke) -MAIN_MAIL_SENDMODE=Methode zum Senden von E-Mails -MAIN_MAIL_SMTPS_ID=SMTP ID, wenn Authentifizierung erforderlich -MAIN_MAIL_SMTPS_PW=SMTP Passwort, wenn Authentifizierung erforderlich -MAIN_MAIL_EMAIL_TLS= TLS (SSL)-Verschlüsselung verwenden -MAIN_MAIL_EMAIL_STARTTLS= TLS (STARTTLS) Verschlüsselung verwenden -MAIN_DISABLE_ALL_SMS=Alle SMS-Funktionen abschalten (für Test- oder Demozwecke) -MAIN_SMS_SENDMODE=Methode zum Senden von SMS -MAIN_MAIL_SMS_FROM=Standard Versendetelefonnummer der SMS-Funktion -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Diese Funktion ist auf Unix-Umgebungen nicht verfügbar. Testen Sie Ihr Programm sendmail lokal. +MAIN_MAIL_EMAIL_STARTTLS=TLS (STARTTLS) Verschlüsselung verwenden SubmitTranslation=Wenn die Übersetzung der Sprache unvollständig ist oder wenn Sie Fehler finden, können Sie können Sie die entsprechenden Sprachdateien im Verzeichnis langs/%s korrigieren und und anschliessend Ihre Änderungen unter www.transifex.com/dolibarr-association/dolibarr/ teilen. SubmitTranslationENUS=Sollte die Übersetzung für eine Sprache nicht vollständig sein oder Fehler beinhalten, können Sie die entsprechenden Sprachdateien im Verzeichnis langs/%s bearbeiten und anschliessend Ihre Änderungen an dolibarr.org/forum oder für Entwickler auf github.com/Dolibarr/dolibarr. übertragen. -ModuleSetup=Moduleinstellung -ModulesSetup=Moduleinstellungen -ModuleFamilyBase=System ModuleFamilyCrm=Kundenverwaltung (CRM) ModuleFamilySrm=Lieferantenverwaltung (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Personalverwaltung (PM) -ModuleFamilyProjects=Projektverwaltung/Zusammenarbeit -ModuleFamilyOther=Andere -ModuleFamilyTechnic=Multi-Module Werkzeuge -ModuleFamilyExperimental=Experimentelle Module -ModuleFamilyFinancial=Finanzmodule (Rechnungswesen/Finanzen) -ModuleFamilyECM=Inhaltsverwaltung (ECM) -ModuleFamilyPortal=Websites und weitere Frontal-Anwendung -ModuleFamilyInterface=Schnittstellen zu externen Systemen -MenuHandlers=Menü-Handler -MenuAdmin=Menü-Editor -DoNotUseInProduction=Nicht in Produktion nutzen -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Schritt %s -FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s). -DownloadPackageFromWebSite=Installationspaket herunterladen (z.B. von offizieller Webseite %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=Durch diesen Schritt, können Sie das Paket mit diesem Tool senden: Wähle Modul Datei -CurrentVersion=Aktuelle dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und der Datenbankstruktur gehen Sie zur Seite %s. -LastStableVersion=Letzte stabile Version -LastActivationDate=Latest activation date -UpdateServerOffline=Update-Server offline GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:
{000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden.
{000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird.
{000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erfoderlich.
{dd} Tag (01 bis 31).
{mm} Monat (01 bis 12).
{yy}, {yyyy} or {y} Jahreszahl 1-, 2- oder 4-stellig.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben.
Leerzeichen sind nicht zulässig.
-GenericMaskCodes4a=Beispiel auf der 99. %s des Dritten thecompany Geschehen 2007-01-31:
GenericMaskCodes4b=Beispiel für Dritte erstellt am 2007-03-01:
-GenericMaskCodes4c=Beispiel für ein Produkt erstellt am 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} ergibt ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX ergibt 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Liefert eine anpassbare Nummer nach vordefiniertem Schema -ServerAvailableOnIPOrPort=Server ist verfügbar unter der Adresse %s auf Port %s -ServerNotAvailableOnIPOrPort=Server nicht verfügbar unter Adresse %s auf Port %s -DoTestServerAvailability=Serververfügbarkeit testen -DoTestSend=Test senden -DoTestSendHTML=HTML-Test senden -ErrorCantUseRazIfNoYearInMask=Fehler: die Option @ kann nicht benutzt werden, um den Zähler jährlich zurück zu setzen, wenn die Sequenz {yy} oder {yyyy} in der Maske fehlt. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fehler: Kann Option @ nicht verwenden, wenn Sequenz {mm}{yy} oder {mm}{yyyy} nicht im Schema verwendet werden. -UMask=Umask Parameter für neue Dateien auf Unix/Linux/BSD-Dateisystemen. UMaskExplanation=Über diesen Parameter können Sie die standardmässigen Dateiberechtigungen für vom System erzeugte/verwaltete Inhalte festlegen.
Erforderlich ist ein Oktalwert (0666 bedeutet z.B. Lesen und Schreiben für alle).
Auf Windows-Umgebungen haben diese Einstellungen keinen Effekt. -SeeWikiForAllTeam=Werfen Sie einen Blick auf die Wiki-Seite für eine vollständige Liste aller Akteure und deren Organisationen -UseACacheDelay= Verzögerung für den Export der Cache-Antwort in Sekunden (0 oder leer für kein Caching) -DisableLinkToHelpCenter=Link mit "Benötigen Sie Hilfe oder Unterstützung" auf der Anmeldeseite ausblenden -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=Kein automatischer Zeilenumbruch. Entsprechend müssen Sie, falls die Länge Ihrer Zeilen die Dokumentenbreite übersteigt, manuelle Zeilenschaltungen im Textbereich einfügen. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Mindestlänge -LanguageFilesCachedIntoShmopSharedMemory=.lang-Sprachdateien in gemeinsamen Cache geladen -ExamplesWithCurrentSetup=Beispiele mit der derzeitigen Systemkonfiguration -ListOfDirectories=Liste der OpenDocument-Vorlagenverzeichnisse -ListOfDirectoriesForModelGenODT=Liste der Verzeichnisse mit Vorlagendateien mit OpenDocument-Format.

Fügen Sie hier den vollständigen Pfad der Verzeichnisse ein.
Trennen Sie jedes Verzeichnis mit einer Zeilenschaltung
Verzeichnisse des ECM-Moduls fügen Sie z.B. so ein DOL_DATA_ROOT/ecm/yourdirectoryname.

Dateien in diesen Verzeichnissen müssen mit .odt oder .ods enden. -NumberOfModelFilesFound=Anzahl der in diesen Verzeichnissen gefundenen .odt/.ods-Dokumentvorlagen -ExampleOfDirectoriesForModelGen=Beispiele für Syntax:
c:\\mydir
/Home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
Lesen Sie die Wiki Dokumentation um zu wissen, wie Sie Ihre odt Dokumentenvorlage erstellen, bevor Sie diese in den Kategorien speichern: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Reihenfolge von Vor- und Nachname DescWeather=Die folgenden Diagramme werden auf der Übersicht Startseite angezeigt, wenn die entsprechenden Toleranzwerte erreicht werden: -KeyForWebServicesAccess=Schlüssel um Web Services (Parameter "dolibarrkey" in webservices) zu benützen -TestSubmitForm=Formular Eingabeüberprüfung -ThisForceAlsoTheme=Bei Verwendung dieser Menü-Verwaltung wird die eigene Layout-Vorlage verwendet unabhängig von der Layout Einstellung des Benutzers. Auch wenn diese Menü-Verwaltung für Smartphones ausgelegt ist kann er nicht auf allen Smartphones angezeigt werden. Verwenden Sie eine andere Menü-Verwaltung, wenn Sie Probleme bemerken. -ThemeDir=Verzeichnis Layout-Vorlagen -ConnectionTimeout=Verbindung Timeout -ResponseTimeout=Antwort Timeout -SmsTestMessage=Test Nachricht von __PHONEFROM__ zu __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Schlüssel um die URLs zu entschlüsseln -NoSmsEngine=Kein SMS Sende Manager verfügbar. SMS Sende Manager sind nicht installiert (weil diese von externen Lieferanten abhängig sind) aber Sie können welche auf http://www.dolistore.com finden. -PDF=PDF -PDFDesc=Sie können jede globale Optionen im Zusammenhang mit der PDF-Erzeugung einstellen -PDFAddressForging=Regeln zum Formen der Adresse-Boxen HideAnyVATInformationOnPDF=Unterdrücken aller MwSt.-Informationen auf dem generierten PDF -HideDescOnPDF=Unterdrücke Produktbeschreibungen in generierten PDF -HideRefOnPDF=Unterdrücke Produkt-Referenzen in generierten PDF HideDetailsOnPDF=Unterdrücke Produktzeilen in generierten PDF PlaceCustomerAddressToIsoLocation=ISO Position für die Kundenadresse verwenden -Library=Bibliothek -UrlGenerationParameters=Parameter zum Sichern von URLs -SecurityTokenIsUnique=Verwenden Sie einen eindeutigen Sicherheitsschlüssel für jede URL -EnterRefToBuildUrl=Geben Sie eine Referenz für das Objekt %s ein -GetSecuredUrl=Holen der berechneten URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons OldVATRates=Alter MwSt. Satz NewVATRates=Neuer MwSt. Satz -PriceBaseTypeToChange=Ändern Sie den Basispreis definierte nach -MassConvert=Starte Massenkonvertierung -String=Zeichenkette -TextLong=Langer Text -Int=Ganzzahl Float=Gleitkommazahl -DateAndTime=Datum und Uhrzeit -Unique=Einmalig -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Telefon -ExtrafieldPrice = Preis -ExtrafieldMail = E-Mail -ExtrafieldUrl = Url -ExtrafieldSelect = Wähle Liste -ExtrafieldSelectList = Wähle von Tabelle -ExtrafieldSeparator=Trennzeichen -ExtrafieldPassword=Passwort -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox von Tabelle -ExtrafieldLink=Verknüpftes Objekt -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
... -ExtrafieldParamHelpradio=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php LibraryToBuildPDF=Verwendete Bibliothek zur PDF-Erzeugung -WarningUsingFPDF=Achtung: Ihre conf.php enthält $dolibarr_pdf_force_fpdf=1 Dies bedeutet, dass Sie die FPDF-Bibliothek verwenden, um PDF-Dateien zu erzeugen. Diese Bibliothek ist alt und unterstützt viele Funktionen nicht (Unicode-, Bild-Transparenz, kyrillische, arabische und asiatische Sprachen, ...), so dass es zu Fehlern bei der PDF-Erstellung kommen kann.
Um dieses Problem zu beheben und volle Unterstützung der PDF-Erzeugung zu erhalten, laden Sie bitte die TCPDF Bibliothek , dann kommentieren Sie die Zeile $dolibarr_pdf_force_fpdf=1 aus oder entfernen diese und fügen statt dessen $dolibarr_lib_TCPDF_PATH='Pfad_zum_TCPDF_Verzeichnisr' ein -LocalTaxDesc=In einigen Ländern gelten zwei oder drei Steuern auf jeder Rechnungszeile. Wenn dies der Fall ist, wählen Sie den Typ für die zweite und dritte Steuer und den Steuersatz. Mögliche Arten sind:
1: Ortsteuer gelten für Produkte und Dienstleistungen, ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet)
2: Ortssteuer gilt für Produkte und Dienstleistungen mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung det MwSt berechnet)
3: Ortstaxe gilt für Produkte ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet)
4: Ortssteuer gilt für Produkte, mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung der MwSt berechnet)
5: Ortssteuer gilt für Dienstleistungen, ohne Mehrwertsteuer (Ortssteuer wird ohne Berücksichtigung der MwSt berechnet)
6: Ortssteuer gilt für Dienstleistungen mit Mehrwertsteuer (Ortssteuer wird mit Berücksichtigung der MwSt berechnet) -SMS=SMS -LinkToTestClickToDial=Geben Sie die anzurufende Telefonnr ein, um einen Link zu zeigen, mit dem die ClickToDial-URL für den Benutzer %s getestet werden kann -RefreshPhoneLink=Aktualisierungslink -LinkToTest=Anklickbarer Link für Benutzer %s erzeugt (Telefonnr. anklicken zum Testen) -KeepEmptyToUseDefault=Leer lassen für Standardwert -DefaultLink=Standardlink SetAsDefault=Als Standard definieren -ValueOverwrittenByUserSetup=Achtung, dieser Wert kann durch den Benutzer überschrieben werden (jeder kann seine eigene ClickToDial-URL setzen) -ExternalModule=Externes Modul - im Verzeichnis %s installiert -BarcodeInitForThirdparties=Alle Strichcodes für Drittanbieter initialisieren -BarcodeInitForProductsOrServices=Alle Strichcodes für Produkte oder Services initialisieren oder zurücksetzen -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Startwert für die nächsten %s leeren Datensätze -EraseAllCurrentBarCode=Alle aktuellen Barcode-Werte löschen -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=Alle Barcode-Werte wurden entfernt -NoBarcodeNumberingTemplateDefined=Im Barcode-Modul wurde kein Numerierungs-Schema aktiviert. -EnableFileCache=Dateicache aktivieren -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=Keine weiteren Details in der Fusszeile -DisplayCompanyInfo=Firmenadresse anzeigen -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. ModuleCompanyCodeAquarium=Generiert einen Kontierungscode %s, gefolgt von der Lieferantenummer für einen Lieferanten-Kontierungscode und %s, gefolgt vom Kundencontierungscode für einen Kundenkontierungscode. ModuleCompanyCodePanicum=Generiert einen leeren Kontierungscode. ModuleCompanyCodeDigitaria=Kontierungscode hängt vom Geschäftspartner Code ab. Der Code setzt sich aus dem Buchstaben 'C' und den ersten 5 Stellen des Geschäftspartner Codes zusammen. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Benutzer und Gruppen -Module0Desc=Users / Employees and Groups management Module1Name=Geschäftspartner Module1Desc=Geschäftspartner- und Kontakteverwaltung (Kunden, Leads, ...) -Module2Name=Vertrieb -Module2Desc=Vertriebsverwaltung -Module10Name=Buchhaltung -Module10Desc=Einfache Buchhaltungsverwaltung (Rechnungen und Zahlungen) -Module20Name=Angebote Module20Desc=Angeboteverwaltung -Module22Name=E-Mail-Kampagnen -Module22Desc=E-Mail-Kampagnenverwaltung -Module23Name=Energie -Module23Desc=Überwachung des Energieverbrauchs -Module25Name=Kundenaufträge -Module25Desc=Kundenauftragsverwaltung -Module30Name=Rechnungen -Module30Desc=Rechnungs- und Gutschriftsverwaltung für Kunden. Rechnungsverwaltung für Lieferanten -Module40Name=Lieferanten -Module40Desc=Lieferantenverwaltung und Einkauf (Bestellungen und Rechnungen) -Module42Name=Systemprotokoll -Module42Desc=Protokollierungsdienste (Syslog) -Module49Name=Bearbeiter Module49Desc=Bearbeiterverwaltung -Module50Name=Produkte -Module50Desc=Produktverwaltung -Module51Name=Postwurfsendungen -Module51Desc=Verwaltung von Postwurf-/Massensendungen -Module52Name=Produktbestände -Module52Desc=Produktbestandsverwaltung -Module53Name=Leistungen -Module53Desc=Leistungs-Verwaltung -Module54Name=Verträge/Abonnements -Module54Desc=Vertragsverwaltung (Services oder sich wiederholende Abos) -Module55Name=Barcodes -Module55Desc=Barcode-Verwaltung -Module56Name=Telefonie -Module56Desc=Telefonie-Integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=ClickToDial-Integration -Module59Name=Bookmark4u -Module59Desc=Neues Bookmark4u Konto zu Systembenutzerkonto hinzufügen Module70Name=Arbeitseinsätze -Module70Desc=Serviceverwaltung -Module75Name=Spesen- und Reiseaufzeichnungen -Module75Desc=Reise- und Fahrtspesenverwaltung Module80Name=Auslieferungen -Module80Desc=Versand und Lieferauftragsverwaltung -Module85Name=Banken und Kassen -Module85Desc=Verwaltung von Bank- oder Bargeldkonten -Module100Name=Externe Website -Module100Desc=Erlaubt die Einbindung einer externen Website in die Menüs von dolibarr und die Anzeige der Seite innerhalb eines Frames -Module105Name=Mailman und SPIP -Module105Desc=Mailman oder SPIP Schnittstelle für die Mitgliedsmodul -Module200Name=LDAP -Module200Desc=LDAP-Verzeichnissynchronisation -Module210Name=PostNuke -Module210Desc=PostNuke-Integration -Module240Name=Daten Exporte Module240Desc=Werkzeug zum Datenexport (mit Assistent) -Module250Name=Daten Importe Module250Desc=Werkzeug zum Dateninport (mit Assistent) -Module310Name=Mitglieder -Module310Desc=Management von Mitglieder einer Stiftung/Vereins -Module320Name=RSS Feed -Module320Desc=RSS-Feed-Bildschirm innerhalb des Systems anzeigen -Module330Name=Lesezeichen Module330Desc=Lesezeichenverwaltung -Module400Name=Projekte / Chancen / Leads Module400Desc=Projektmanagement, Aufträge oder Leads. Anschliessend können Sie ein beliebiges Element (Rechnung, Bestellung, Angebot, Intervention, ...) einem Projekt zuordnen und eine Queransicht von der Projektanzeige bekommen. -Module410Name=Webkalender -Module410Desc=Webkalenderintegration -Module500Name=Sonderausgaben -Module500Desc=Verwalten von speziellen Ausgaben (Steuern, Sozialabgaben, Dividenden) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Darlehen -Module520Desc=Verwaltung von Darlehen -Module600Name=Benachrichtigungen -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Spenden -Module700Desc=Spendenverwaltung -Module770Name=Spesenabrechnungen -Module770Desc=Management und Reporting von Reise- und Spesenabrechnungen (Transport, Essen, ...) -Module1120Name=Lieferant-Angebote -Module1120Desc=Anfordern von Lieferanten-Angeboten und Preise -Module1200Name=Mantis Module1200Desc=Mantis-Integation -Module1400Name=Buchhaltung -Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung) -Module1520Name=Dokumente erstellen -Module1520Desc=Mailings Dokumente erstellen -Module1780Name=Kategorien/#tags -Module1780Desc=Kategorien erstellen (Produkte, Kunden, Lieferanten, Kontakte oder Mitglieder) -Module2000Name=FCKeditor Module2000Desc=Texte mit dem WYSIWYG Editor bearbeiten (Basierend auf CKEditor) -Module2200Name=Dynamische Preise -Module2200Desc=Mathematische Ausdrücke für Preise aktivieren -Module2300Name=Cron -Module2300Desc=CronJob Verwaltung -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Inhaltsverwaltung(ECM) -Module2500Desc=Speicherung und Verteilung von Dokumenten -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Aktivieren Sie Dolibarr SOAP Server, unterstütztes API-Service. -Module2610Name=API/Web Services (REST Server) -Module2610Desc=Aktiviere der Dolibarr REST Serverdienst -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Verwenden Sie den online Gravatar-Dienst (www.gravatar.com) für die Anzeige von Benutzer- und Mitgliederbildern (Zuordnung über E-Mail-Adressen). Hierfür benötigen Sie eine aktive Internetverbindung -Module2800Desc=FTP-Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind Konvertierung -Module3100Name=Skype Module3100Desc=Skypebutton bei Kontakten / Drittparteien / Mitgliedern hinzufügen -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Mandantenfähigkeit -Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites Module10000Desc=Erstellen Sie öffentliche Webauftritte mit einem WYSIWIG Editor. Konfigurieren Sie dazu Ihren Webserver so, dass es auf das dedizierte Verzeichnis zeigt um den Webauftritt öffentlich zugänglich zu machen. -Module20000Name=Urlaubsantrags-Verwaltung -Module20000Desc=Definieren und beobachten sie die Urlaubsanträge Ihrer Angestellten. -Module39000Name=Chargen-/ Seriennummern -Module39000Desc=Chargen oder Seriennummer, Haltbarkeitsdatum und Verfallsdatum Management für Produkte -Module50000Name=PayBox -Module50000Desc=Über dieses Modul können Sie online Kreditkartenzahlungen entgegennehmen -Module50100Name=Kasse Module50100Desc=Kassenmodul -Module50200Name=Paypal -Module50200Desc=Mit diesem Modul können Sie via PayPal Online Kreditkartenzahlungen entgegennehmen -Module50400Name=Buchhaltung (erweitert) -Module50400Desc=Buchhaltung für Experten (doppelte Buchhaltung) -Module54000Name=PrintIPP -Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein und auf dem Server muss CUPS installiert sein) -Module55000Name=Befragung, Umfrage oder Abstimmung -Module55000Desc=Modul zur Online-Umfragen, Umfragen oder Abstimmungen zu machen (wie Doodle, Studs, Rdvz, ...) -Module59000Name=Gewinnspannen -Module59000Desc=Modul zur Verwaltung von Gewinnspannen -Module60000Name=Kommissionen -Module60000Desc=Modul zur Verwaltung von Kommissionen -Module63000Name=Ressourcen Module63000Desc=Resourcen verwalten(Drucker, Autos, Räume,...) diese können dann im Kalender verwendet werden -Permission11=Rechnungen einsehen -Permission12=Rechnungen erstellen/bearbeiten -Permission13=Rechnungsfreigabe aufheben -Permission14=Rechnungen freigeben -Permission15=Rechnungen per E-Mail versenden -Permission16=Rechnungszahlungen erstellen -Permission19=Kundenrechnungen löschen -Permission21=Angebote einsehen -Permission22=Angebote erstellen/bearbeiten -Permission24=Angebote freigeben -Permission25=Angebote per E-Mail versenden Permission26=Angebote schliessen -Permission27=Angebote löschen -Permission28=Angebote exportieren -Permission31=Produkte/Leistungen einsehen -Permission32=Produkte/Leistungen erstellen/bearbeiten -Permission34=Produkte/Leistungen löschen -Permission36=Projekte/Leistungen exportieren -Permission38=Produkte exportieren -Permission41=Projekte und Aufgaben lesen (Geteilte Projekte und Projekte in denen ich Kontakt bin). Es kann auch Zeitaufwand auf zugewiesenen Aufgaben gebucht werden. -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte, in welchen ich Ansprechpartner bin) -Permission45=Projekte exportieren Permission61=Leistungen ansehen Permission62=Leistungen erstellen/bearbeiten Permission64=Interventionen löschen -Permission67=Leistungen exportieren -Permission71=Mitglieder einsehen -Permission72=Mitglieder erstellen/bearbeiten -Permission74=Mitglieder löschen -Permission75=Erstellen Typen von Mitgliedschaft Permission76=Daten exportieren -Permission78=Abonnements einsehen -Permission79=Abonnements erstellen/bearbeiten -Permission81=Kundenaufträge einsehen -Permission82=Kundenaufträge erstellen/bearbeiten -Permission84=Kundenaufträge freigeben -Permission86=Kundenaufträge per E-Mail versenden Permission87=Kundenaufträge abschliessen -Permission88=Kundenaufträge verwerfen -Permission89=Kundenaufträge löschen -Permission91=Sozialabgaben, Steuern und Mehrwertsteuer einsehen -Permission92=Sozialabgaben, Steuern und Mehrwertsteuer erstellen/bearbeiten -Permission93=Sozialabgaben, Steuern und Mehrwertsteuer löschen -Permission94=Sozialabgaben, Steuern und Mehrwertsteuer erstellen/bearbeiten -Permission95=Buchhaltung einsehen -Permission101=Auslieferungen einsehen -Permission102=Auslieferungen erstellen/bearbeiten -Permission104=Auslieferungen freigeben -Permission106=Auslieferungen exportieren -Permission109=Sendungen löschen -Permission111=Finanzkonten einsehen -Permission112=Transaktionen erstellen/ändern/löschen und vergleichen -Permission113=Einstellungen Finanzkonten (erstellen, Kategorien verwalten) -Permission114=Transaktionen ausgleichen -Permission115=Transaktionen und Kontoauszüge exportieren -Permission116=Transfers zwischen Konten -Permission117=Scheckeinlösungen verwalten Permission121=Mit Benutzer verbundene Geschäftspartner einsehen Permission122=Mit Benutzer verbundene Geschäftspartner erstellen/bearbeiten Permission125=Mit Benutzer verbundene Geschäftspartner löschen Permission126=Geschäftspartner exportieren -Permission141=Alle Projekte und Aufgaben lesen (Auch private Projekte in denen ich nicht Kontakt bin) -Permission142=Projekte und Aufgaben erstellen und ändern (Auch private Projekte in denen ich nicht Kontakt bin) Permission144=Löschen Sie alle Projekte und Aufgaben (einschliesslich privater Projekte in denen ich kein Kontakt bin) -Permission146=Lieferanten einsehen -Permission147=Statistiken einsehen -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Verträge/Abonnements einsehen -Permission162=Verträge/Abonnements erstellen/bearbeiten -Permission163=Service/Abonnement in einem Vertrag aktivieren -Permission164=Service/Abonnement in einem Vertrag deaktivieren -Permission165=Verträge/Abonnement löschen -Permission167=Verträge exportieren -Permission171=Reise- und Spesenabrechnung einsehen (Eigene und von Untergebenen) Permission172=Reise- und Spesenabrechnung erstellen/ändern -Permission173=Reise- und Spesenabrechnung verwerfen -Permission174=Alle Reise- und Spesenabrechnung einsehen -Permission178=Reise- und Spesenabrechnung exportieren -Permission180=Lieferanten einsehen -Permission181=Lieferantenbestellungen einsehen -Permission182=Lieferantenbestellungen erstellen/bearbeiten -Permission183=Lieferantenbestellungen freigeben -Permission184=Lieferantenbestellungen bestätigen -Permission185=Lieferantenbestellungen bestellen oder verwerfen -Permission186=Lieferantenbestellungen empfangen Permission187=Lieferantenbestellungen schliessen Permission188=Lieferantenbestellungen verwerfen -Permission192=Leitungen erstellen Permission193=Leitungen abbrechen -Permission194=Leitungen einsehen -Permission202=ADSL Verbindungen erstellen Permission203=Bestellungsverbindungen Bestellungen -Permission204=Bestell-Verbindungen -Permission205=Verbindungen verwalten -Permission206=Verbindungen lesen -Permission211=Telefonie lesen -Permission212=Auftragszeilen -Permission213=Leitung aktivieren -Permission214=Telefonie einrichten -Permission215=Anbieter einrichten -Permission221=E-Mail-Kampagnen einsehen -Permission222=E-Mail-Kampagnen erstellen/bearbeiten (Thema, Empfänger, ...) -Permission223=E-Mail-Kampagnen freigeben (erlaubt das Senden) -Permission229=E-Mail-Kampagnen löschen -Permission237=Zeige Empfänger und Info -Permission238=Mails manuell senden -Permission239=Postausgang löschen nachdem die Gültigkeit ausgelaufen ist oder die Nachricht gesendet wurde. -Permission241=Kategorien einsehen -Permission242=Kategorien erstellen/bearbeiten -Permission243=Kategorien löschen -Permission244=Inhalte versteckter Kategorien einsehen -Permission251=Andere Benutzer und Gruppen einsehen -PermissionAdvanced251=Andere Benutzer einsehen -Permission252=Berechtigungen andere Benutzer einsehen -Permission253=Andere Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung) -PermissionAdvanced253=Andere interne/externe Benutzer und Gruppen erstellen/bearbeiten (inkl. Rechteverwaltung) -Permission254=Nur externe Benutzer erstellen/bearbeiten -Permission255=Andere Passwörter ändern -Permission256=Andere Benutzer löschen oder deaktivieren -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Rechnungen anzeigen -Permission273=Ausgabe Rechnungen -Permission281=Kontakte einsehen -Permission282=Kontakte erstellen/bearbeiten -Permission283=Kontakte löschen -Permission286=Kontakte exportieren -Permission291=Tarife einsehen -Permission292=Berechtigungen der Tarife einstellen -Permission293=Kundentarife ändern -Permission300=Barcodes einsehen -Permission301=Barcodes erstellen/bearbeiten -Permission302=Barcodes löschen -Permission311=Leistungen einsehen -Permission312=Leistung/Abonnement einem Vertrag zuordnen -Permission331=Lesezeichen einsehen -Permission332=Lesezeichen erstellen/bearbeiten -Permission333=Lesezeichen löschen -Permission341=Eigene Berechtigungen einsehen -Permission342=Eigene Benutzerinformationen erstellen/bearbeiten -Permission343=Eigenes Passwort ändern -Permission344=Eigene Berechtigungen bearbeiten -Permission351=Gruppen einsehen -Permission352=Gruppenberechtigungen einsehen -Permission353=Gruppen erstellen/bearbeiten -Permission354=Gruppen löschen oder deaktivieren -Permission358=Benutzer exportieren -Permission401=Rabatte einsehen -Permission402=Rabatte erstellen/bearbeiten -Permission403=Rabatte freigeben -Permission404=Rabatte löschen -Permission510=Löhne einsehen -Permission512=Löhne erstellen/bearbeiten -Permission514=Löhne löschen -Permission517=Löhne exportieren -Permission520=Darlehen einsehen -Permission522=Darlehen erstellen/bearbeiten -Permission524=Lösche Darlehen Permission525=Darlehens-rechner -Permission527=Exportiere Darlehen -Permission531=Leistungen einsehen -Permission532=Leistungen erstellen/bearbeiten -Permission534=Leistungen löschen -Permission536=Versteckte Leistungen einsehen/verwalten -Permission538=Leistungen exportieren -Permission701=Spenden einsehen -Permission702=Spenden erstellen/bearbeiten -Permission703=Spenden löschen -Permission771=Spesenabrechnungen einsehen (eigene und die der Untergebenen) -Permission772=Spesenabrechnung erstellen/ändern -Permission773=Spesenabrechnung löschen -Permission774=Spesenabrechnungen einsehen (Alle Benutzer auch die nicht Untergebenen) -Permission775=Spesenabrechnung genehmigen -Permission776=Spesenabrechnung bezahlen -Permission779=Spesenabrechnung exportieren -Permission1001=Warenbestände einsehen -Permission1002=Warenlager erstellen/ändern -Permission1003=Warenlager löschen -Permission1004=Lagerbewegungen einsehen -Permission1005=Lagerbewegungen erstellen/bearbeiten -Permission1101=Lieferscheine einsehen -Permission1102=Lieferscheine erstellen/bearbeiten -Permission1104=Lieferscheine freigeben -Permission1109=Lieferscheine löschen -Permission1181=Lieferanten einsehen -Permission1182=Lieferantenbestellungen einsehen -Permission1183=Lieferantenbestellungen erstellen/bearbeiten -Permission1184=Lieferantenbestellungen freigeben -Permission1185=Lieferantenbestellungen bestätigen -Permission1186=Lieferantenbestellungen übermitteln -Permission1187=Eingang von Lieferantenbestellungen bestätigen Permission1188=Lieferantenbestellungen schliessen -Permission1190=Lieferantenbestellungen bestätigen (zweite Bestätigung) -Permission1201=Exportresultate einsehen -Permission1202=Export erstellen/bearbeiten -Permission1231=Lieferantenrechnungen einsehen -Permission1232=Lieferantenrechnungen erstellen/bearbeiten -Permission1233=Lieferantenrechnungen freigeben -Permission1234=Lieferantenrechnungen löschen -Permission1235=Lieferantenrechnungen per E-Mail versenden -Permission1236=Lieferantenrechnungen, -attribute und zahlungen exportieren -Permission1237=Lieferantenbestellungen mit Details exportieren -Permission1251=Massenimports von externen Daten ausführen (data load) -Permission1321=Kundenrechnungen, -attribute und -zahlungen exportieren -Permission1322=Reopen a paid bill -Permission1421=Exportieren von Kundenaufträge und Attribute -Permission20001=Urlaubsanträge einsehen (eigene und die der Untergebenen) -Permission20002=Ihre eigenen Urlaubsanträge erstellen/bearbeiten -Permission20003=Urlaubsanträge löschen -Permission20004=Spesenabrechnungen einsehen (Alle Benutzer) -Permission20005=Urlaubsanträge für Jeden erstellen/bearbeiten -Permission20006=Urlaubstage Administrieren (Setup- und Aktualisierung) -Permission23001=anzeigen cronjobs -Permission23002=erstellen/ändern cronjobs -Permission23003=cronjobs löschen -Permission23004=cronjobs ausführen -Permission2401=Ereignisse (Termine/Aufgaben) in Verbindung mit eigenem Konto einsehen -Permission2402=Ereignisse (Termine/Aufgaben) in Verbindung mit eigenem Konto erstellen/bearbeiten -Permission2403=Ereignisse (Termine/Aufgaben) in Verbindung mit eigenem Konto löschen -Permission2411=Ereignisse (Termine/Aufgaben) Anderer einsehen -Permission2412=Ereignisse (Termine/Aufgaben) Anderer erstellen/bearbeiten -Permission2413=Ereignisse (Termine/Aufgaben) Anderer löschen Permission2414=Aktionen und Aufgaben anderer exportieren -Permission2501=Dokumente herunterladen oder einsehen -Permission2502=Dokumente herunterladen -Permission2503=Dokumente bestätigen oder löschen -Permission2515=Dokumentverzeichnisse verwalten -Permission2801=FTP-Client im Lesemodus nutzen (nur ansehen und herunterladen) -Permission2802=FTP-Client im Schreibmodus nutzen (Dateien löschen oder hochladen) -Permission50101=Benutze Kassen -Permission50201=Transaktionen einsehen -Permission50202=Transaktionen importieren -Permission54001=Drucken -Permission55001=Abstimmungen einsehen -Permission55002=Abstimmung erstellen/ändern -Permission59001=Gewinnspanne einsehen Permission59002=Gewinspanne definieren -Permission59003=Lesen aller Benutzer Margen -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events DictionaryCompanyType=Geschäftspartnertyp DictionaryCompanyJuridicalType=Gesellschafts- und Unternehmensformen -DictionaryProspectLevel=Potenzialstufen von Geschäftsaussicht -DictionaryCanton=Bundesländer/Provinzen/Kantone -DictionaryRegion=Regionen -DictionaryCountry=Länder -DictionaryCurrency=Währungen DictionaryCivility=Anrede Bezeichnungen DictionaryActions=Arten von Kalenderereignissen -DictionarySocialContributions=Arten von Sozialabgaben/Unternehmenssteuern DictionaryVAT=MwSt.-Sätze -DictionaryRevenueStamp=Steuermarken Beträge -DictionaryPaymentConditions=Zahlungsbedingungen -DictionaryPaymentModes=Zahlungsarten -DictionaryTypeContact=Kontaktarten -DictionaryEcotaxe=Ökosteuern (WEEE) -DictionaryPaperFormat=Papierformate -DictionaryFormatCards=Cards formats DictionaryFees=Spesen- und Kostenarten -DictionarySendingMethods=Versandarten -DictionaryStaff=Mitarbeiter -DictionaryAvailability=Lieferverzug -DictionaryOrderMethods=Bestellmethoden -DictionarySource=Quelle der Angebote/Aufträge -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Kontenplan Modul DictionaryEMailTemplates=Textvorlagen für Emails -DictionaryUnits=Einheiten -DictionaryProspectStatus=Geschäftsanbahnungsarten DictionaryHolidayTypes=Absenzarten -DictionaryOpportunityStatus=Verkaufschancen für Projekt/Lead SetupSaved=Setup gespeichert -BackToModuleList=Zurück zur Modulübersicht BackToDictionaryList=Zurück zur Wörterbuchübersicht VATManagement=MwSt-Verwaltung VATIsUsedDesc=Der standardmässige MwSt.-Satz für die Erstellung von Leads, Rechnungen, Bestellungen, etc. folgt der folgenden, aktiven Regel:
Ist der Verkäufer mehrwertsteuerpflichtig, ist die MwSt. standardmässig 0. Ende der Regel.
Ist das Verkaufsland gleich dem Einkaufsland, ist die MwSt. standardmässig die MwSt. des Produkts im Verkaufsland. Ende der Regel.
Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten und die Produkte physisch transportfähig (Auto, Schiff, Flugzeug), ist die MwSt. standardmässig 0. (Die MwSt. sollte durch den Käufer beim eigenen Zollamt entrichtet werden, nicht durch den Verkäufer. Ende der Regel.
Sind Verkäufer und Käufer beide aus Europäischen Mitgliedsstaaten, der Käufer jedoch kein Unternehmen so ist die MwSt. standardmässig die MwSt. des verkauften Produkts. Ende der Regel.
Sind Verkäufer und Käufer beide Unternehmen im Europäischen Gemeinschaftsraum, so ist die MwSt. standardmässig 0. Ende der Regel.
Trifft keine der obigen Regeln zu, ist die MwSt. standardmässig 0. VATIsNotUsedDesc=Die vorgeschlagene MwSt. ist standardmässig 0 für alle Fälle wie Stiftungen, Einzelpersonen oder Kleinunternehmen. -VATIsUsedExampleFR=- -VATIsNotUsedExampleFR=- -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Zweite Steuer nicht nutzen -LocalTax1IsUsedDesc=Benutzen sie eine zweite Art von Steuer (andere als Mehrwertsteuer) -LocalTax1IsNotUsedDesc=Benutzen sie keine andere Art von Steuer (anders als Mehrwertsteuer) -LocalTax1Management=Zweite Steuer-Art -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Dritte Steuer nicht nutzen -LocalTax2IsUsedDesc=Benutzen Sie eine dritte Art von Steuer (anders als Mehrwertsteuer) -LocalTax2IsNotUsedDesc=Benutzen sie keine andere Art von Steuer (anders als Mehrwertsteuer) -LocalTax2Management=Dritte Steuer-Art -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel:
Wenn te Käufer ist nicht unterworfen RE, RE standardmässig = 0 ist. Ende der Regel.
Ist der Käufer unterzogen, um dann die RE RE standardmässig. Ende der Regel.
-LocalTax1IsNotUsedDescES= Standardmässig werden die vorgeschlagenen RE 0 ist. Ende der Regel. -LocalTax1IsUsedExampleES= In Spanien sind sie Profis unterliegen bestimmten Abschnitten der spanischen IAE. -LocalTax1IsNotUsedExampleES= In Spanien sind sie professionelle und Gesellschaften und vorbehaltlich bestimmter Abschnitte der spanischen IAE. -LocalTax2ManagementES= EKSt. Management -LocalTax2IsUsedDescES= Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel:
Ist der Verkäufer nicht zu IRPF ausgesetzt, dann durch IRPF default = 0. Ende der Regel.
Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmässig. Ende der Regel.
-LocalTax2IsNotUsedDescES= Standardmässig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel. -LocalTax2IsUsedExampleES= In Spanien, Freiberufler und unabhängigen Fachleuten, die ihre Dienstleistungen und Unternehmen, die das Steuersystem von Modulen gewählt haben. -LocalTax2IsNotUsedExampleES= In Spanien sind sie bussines nicht der Steuer unterliegen System von Modulen. -CalcLocaltax=Berichte über lokale Steuern -CalcLocaltax1=Sales - Käufe -CalcLocaltax1Desc=Lokale Steuer-Reports werden mit der Differenz von lokalen Verkaufs- und Einkaufs-Steuern berechnet -CalcLocaltax2=Einkauf -CalcLocaltax2Desc=Lokale Steuer-Reports sind die Summe der lokalen Steuern auf Einkäufe -CalcLocaltax3=Verkauf -CalcLocaltax3Desc=Lokale Steuer-Reports sind die Summe der lokalen Steuern auf Verkäufe -LabelUsedByDefault=Bezeichnung wird verwendet falls keine Übersetzung für den Code vorhanden ist. -LabelOnDocuments=Bezeichnung auf Dokumenten -NbOfDays=Anzahl der Tage -AtEndOfMonth=Am Ende des Monats -CurrentNext=Current/Next -Offset=Wertsprung -AlwaysActive=Immer aktiv -Upgrade=Aktualisierung -MenuUpgrade=Aktualisierung/Erweiterung -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Webserver -DocumentRootServer=Dokumenten-Stammordner des Webservers -DataRootServer=Daten-Verzeichnis -IP=IP -Port=Port -VirtualServerName=Name des virtuellen Servers -OS=OS -PhpWebLink=PHP Web-Link -Browser=Browser -Server=Server -Database=Datenbank -DatabaseServer=Datenbankserver -DatabaseName=Name der Datenbank -DatabasePort=Port für Datenbank -DatabaseUser=DB Benutzername -DatabasePassword=DB Passwort -Tables=Tabellen -TableName=Tabellenname -NbOfRecord=Anzahl der Einträge -Host=Server -DriverType=Treiber Typ -SummarySystem=Zusammenfassung der Systeminformationen -SummaryConst=Liste aller Systemeinstellungen von Dolibarr -MenuCompanySetup=Firma/Stiftung -DefaultMenuManager= Standard Menü-Verwaltung -DefaultMenuSmartphoneManager=Smartphone Menü-Verwaltung -Skin=grafische Oberfläche -DefaultSkin=Standardvorlage grafische Oberfläche -MaxSizeList=Maximale Listenlänge -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Nachricht des Tages -MessageLogin=Nachricht auf der Anmeldeseite -PermanentLeftSearchForm=Ständiges Suchfeld auf der linken Seite -DefaultLanguage=Standardsprache der Anwendung (Sprachcode) -EnableMultilangInterface=Mehrsprachigkeit aktivieren -EnableShowLogo=Logo über dem linken Menü anzeigen -CompanyInfo=Information über die Firma/Institution -CompanyIds=Firmen-/Stiftungs-IDs -CompanyName=Firmenname -CompanyAddress=Firmenadresse -CompanyZip=Postleitzahl -CompanyTown=Stadt -CompanyCountry=Land -CompanyCurrency=Hauptwährung -CompanyObject=Gegenstand des Unternehmens -Logo=Logo -DoNotSuggestPaymentMode=Nicht vorschlagen -NoActiveBankAccountDefined=Keine aktiven Finanzkonten definiert -OwnerOfBankAccount=Kontoinhaber %s -BankModuleNotActive=Finanzkontenmodul nicht aktiv -ShowBugTrackLink=Zeige Link %s -Alerts=Benachrichtigungen -DelaysOfToleranceBeforeWarning=Verzögerungstoleranz vor Warnung -DelaysOfToleranceDesc=Hier können Sie die Verspätungstoleranz einstellen, bevor eine Benachrichtigung auf dem Bildschirm für jedes verspätete Element mit dem Symbol %s ausgegeben wird. +LocalTax1IsUsedDescES=Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel:
Wenn te Käufer ist nicht unterworfen RE, RE standardmässig = 0 ist. Ende der Regel.
Ist der Käufer unterzogen, um dann die RE RE standardmässig. Ende der Regel.
+LocalTax1IsNotUsedDescES=Standardmässig werden die vorgeschlagenen RE 0 ist. Ende der Regel. +LocalTax2IsUsedDescES=Die RE Rate standardmässig beim Erstellen Aussichten, Rechnungen, Bestellungen etc. folgen die aktive Standard-Regel:
Ist der Verkäufer nicht zu IRPF ausgesetzt, dann durch IRPF default = 0. Ende der Regel.
Ist der Verkäufer zur IRPF dann der Einkommenssteuer unterworfen standardmässig. Ende der Regel.
+LocalTax2IsNotUsedDescES=Standardmässig werden die vorgeschlagenen IRPF 0 ist. Ende der Regel. +LocalTax2IsNotUsedExampleES=In Spanien sind sie bussines nicht der Steuer unterliegen System von Modulen. Delays_MAIN_DELAY_ACTIONS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für nicht erledigte Ereignisse Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor Warnung für nicht fristgerecht geschlossene Projekte Delays_MAIN_DELAY_TASKS_TODO=Verzögerungstoleranz (in Tagen) vor Warnung für nicht erledigte Projektaufgaben Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Verzögerungstoleranz (in Tagen), vor Warnung für nicht bearbeitete Bestellungen Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Verzögerungstoleranz (in Tagen), vor Warnung für nicht bearbeitete Lieferantenbestellungen Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Verzögerungstoleranz (in Tagen) vor Warnung für abzuschliessende Angebote -Delays_MAIN_DELAY_PROPALS_TO_BILL=Verzögerungstoleranz (in Tagen) vor Warnung für nicht in Rechnung gestellte Angebote -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Verzögerungstoleranz (in Tagen) vor Warnung für zu aktivierende Leistungen -Delays_MAIN_DELAY_RUNNING_SERVICES=Verzögerungstoleranz (in Tagen) vor Warnung für überfällige Vertrags-Leistungen -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Lieferantenrechnungen -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über unbezahlte Kundenrechnungen -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über Bankkontenabgleich -Delays_MAIN_DELAY_MEMBERS=Verzögerungstoleranz (in Tagen) vor Benachrichtigung über verspätete Mitgliedsbeiträge -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Verzögerungstoleranz (in Tagen) vor der Benachrichtigung über einzulösende Schecks -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=Der Setupbereich erlaubt das konfigurieren ihrer Dolibarr Installation vor der ersten Verwendung. -SetupDescription2=Die 2 wichtigsten Schritte zur Grundkonfiguration finden Sie in den ersten beiden Zeilen des Einstellungen-Menüs auf der linken Seite. Dies sind die 'Unternehmen/Stiftung'- und die 'Moduleinstellungen'-Menüpunkte: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Andere Einträge verwalten optionale Parameter. -LogEvents=Protokollierte Ereignisse -Audit=Protokoll InfoDolibarr=Infos Dolibarr InfoBrowser=Infos Browser InfoOS=Infos OS InfoWebServer=Infos Webserver InfoDatabase=Infos Datenbank InfoPHP=Infos PHP -InfoPerf=Leistungs-Informationen -BrowserName=Browser Name -BrowserOS=Betriebssystem des Browsers -ListOfSecurityEvents=Liste der sicherheitsrelevanten Ereignisse -SecurityEventsPurged=Security-Ereignisse gelöscht -LogEventDesc=Hier können Sie die Protokollierungseinstellungen für sicherheitsrelevante Ereignisse anpassen. Administratoren können die entsprechenden Inhalte unter Systemwerkzeuge-Protokoll einsehen. Achtung: Diese Funktion kann zu erhöhtem Datenaufkommen in der Datenbank führen. -AreaForAdminOnly=Diese Funktionen stehen ausschliesslich Administratoren zur Verfügung. Administrationsfunktionen und -hilfe werden in dolibarr durch die folgenden Symbole dargestellt: -SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar. SystemAreaForAdminOnly=Dieser Bereich steht ausschliesslich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=Hier können Sie die Oberfläche, sowie das allgemeine 'Look and Feel' des Systems anpassen -AvailableModules=Verfügbare Module -ToActivateModule=Zum Aktivieren von Modulen gehen Sie zu Start->Einstellungen->Module -SessionTimeOut=Sitzungszeitbegrenzung -SessionExplanation=Dieser Wert garantiert, dass eine Sitzung nie vor Zeitablauf beendet wird. Die PHP-Sitzungsverwaltung garantiert jedoch nicht, dass eine Sitzung wirklich nach Ablauf dieser Zeit beendet wird. Hierzu kann es kommen, wenn ein System zur Sitzungscache-Bereinigung im Einsatz ist.
Hinweis: ohne spezielles System wird PHP die Sitzung nach etwa %s/%s beenden - allerdings erst nach dem Start einer anderen Sitzung. -TriggersAvailable=Verfügbare Trigger TriggersDesc=Trigger sind Dateien, die nach einem Kopieren in das Verzeichnis htdocs/core/triggers das Workflow-Verhalten des Systems beeinflussen. Diese stellen neue, mit Systemereignissen verbundene, Ereignisse dar (Neuer Geschäftspartner angelegt, Rechnung freigegeben, ...). TriggerDisabledByName=Trigger in dieser Datei sind durch das -NORUN-Suffix in ihrem Namen deaktviert. -TriggerDisabledAsModuleDisabled=Trigger in dieser Datei sind durch das übergeordnete Modul %s deaktiviert. -TriggerAlwaysActive=Trigger in dieser Datei sind unabhängig der Modulkonfiguration immer aktiviert. -TriggerActiveAsModuleActive=Trigger in dieser Datei sind durch das übergeordnete Modul %s aktiviert. -GeneratedPasswordDesc=Definieren Sie hier das Schema nach dem automatisch generierte Passwörter erstellt werden sollen. DictionaryDesc=Definieren Sie hier alle Defaultwerte. Sie können die vordefinierten Werte mit ihren eigenen ergänzen. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier definiert. -LimitsSetup=Limits und Genauigkeit Einstellungen -LimitsDesc=Hier können Sie Grenzwerte, Genauigkeitseinstellungen und das Rundungsverhalten einstellen. -MAIN_MAX_DECIMALS_UNIT=Dezimalstellen max. für Stückpreise -MAIN_MAX_DECIMALS_TOT=Dezimalstellen max. für Gesamtsummen -MAIN_MAX_DECIMALS_SHOWN=Dezimalstellen max. für auf dem Bildschirm angezeigte Preise (Fügen Sie ... nach dieser Nummer ein, wenn Sie ... sehen wollen, falls ein Bildschirmpreis abgeschnitten wurde. MAIN_ROUNDING_RULE_TOT=Rundungseinstellung (Für Länder in denen nicht auf 10er basis Gerundet wird. zB. 0.05 damit in 0.05 Schritten gerundet wirb) -UnitPriceOfProduct=Nettostückpreis TotalPriceAfterRounding=Gesamtpreis (Netto/MwSt./Brutto) gerundet -ParameterActiveForNextInputOnly=Die Einstellungen werden erst bei der nächsten Eingabe wirksam NoEventOrNoAuditSetup=Keine sicherheitsrelevanten Protokollereignisse. Überprüfen Sie die Aktivierung dieser Funktionen unter 'Einstellunge-Sicherheit-Protokoll'. -NoEventFoundWithCriteria=Kein sicherheitsrelevantes Protokollereignis zu Ihren Suchkriterien gefunden -SeeLocalSendMailSetup=Lokale sendmail-Einstellungen anzeigen -BackupDesc=Um eine vollständige Systemsicherung durchzuführen müssen Sie: -BackupDesc2=Sichern des Dokumenten-Verzeichnis (%s;) welches alle hochgeladenen und erzeugten Dateien enthält (dies beinhaltet alle Dump-Dateien die in Schritt 1 erzeugt wurden). -BackupDesc3=Sicherung der Datenbank (%s) über Dump-Befehl anlegen. Dafür können Sie folgende Assistenten verwenden. -BackupDescX=Bewahren Sie die archivierten Verzeichnisse an einem sicheren Ort auf. -BackupDescY=Bewahren Sie den Datenbank-Dump an einem sicheren Ort auf. -BackupPHPWarning=Datensicherung kann mit dieser Methode nicht garantiert werden. Bevorzugen Sie die vorherige. -RestoreDesc=Um eine Systemsicherung wiederherzustellen, müssen Sie: RestoreDesc2=Wiederherstellung von Archive Datei (zip Datei zum Beispiel)\nvom documents Verzeichnis um den documents Datei-Baum im documents verzeichnis in eine neue Dolibarr Installation oder in ein bestehendes Dolibarr Verzeichnis (%s). -RestoreDesc3=* Die Datenbanksicherung aus dem Dump in eine neue Dolibarr-Installation oder das bestehende System (%s) zurückspielen. Achtung: Nach Beendigung dieses Vorganges müssen Sie sich mit dem Benutzernamen/Passwort-Paar zum Zeitpunkt der Sicherung am System anmelden. Zur Wiederherstellung der Datenbank steht Ihnen der folgende Assistent zur Verfügung: -RestoreMySQL=MySQL Import -ForcedToByAModule= Diese Regel wird %s durch ein aktiviertes Modul aufgezwungen -PreviousDumpFiles=Vorige Datenbanksicherungen -WeekStartOnDay=Wochenstart -RunningUpdateProcessMayBeRequired=Eine Systemaktualisierung scheint erforderlich (Programmversion %s unterscheidet sich von Datenbankversion %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Diesen Befehl müssen Sie auf der Kommandozeile (nach Login auf der Shell mit Benutzer %s) ausführen. -YourPHPDoesNotHaveSSLSupport=Ihre PHP-Konfiguration unterstützt keine SSL-Verschlüsselung DownloadMoreSkins=Weitere grafische Oberflächen/Themes herunterladen -SimpleNumRefModelDesc=Liefere eine Nummer im Format %syymm-nnnn zurück, wobei YY für das Jahr, MM für das Monat und nnnn für eine 4-stellige, nicht unterbrochene Zahlensequenz steht -ShowProfIdInAddress=Zeige professionnal ID mit Adressen auf Dokumente ShowVATIntaInAddress=Ausblenden MwSt. Nummer in Adressen auf Dokumenten. -TranslationUncomplete=Teilweise Übersetzung -MAIN_DISABLE_METEO=Deaktivere Wetteransicht -TestLoginToAPI=Testen Sie sich anmelden, um API -ProxyDesc=Einige Features von Dolibarr müssen einen Internet-Zugang zu Arbeit haben. Definieren Sie hier Parameter für diese. Wenn die Dolibarr Server hinter einem Proxy-Server, erzählt jene Parameter Dolibarr wie man Internet über ihn zugreifen. -ExternalAccess=Externer Zugriff -MAIN_PROXY_USE=Verwenden Sie einen Proxy-Server (sonst direkten Zugang zum Internet) -MAIN_PROXY_HOST=Name / Anschrift des Proxy-Servers -MAIN_PROXY_PORT=Port of Proxy-Server -MAIN_PROXY_USER=Passwort an, um den Proxy-Server verwenden -MAIN_PROXY_PASS=Kennwort ein, um den Proxy-Server verwenden DefineHereComplementaryAttributes=Definieren Sie hier alle Attribute, die nicht standardmässig vorhanden sind, und in %s unterstützt werden sollen. -ExtraFields=Ergänzende Attribute -ExtraFieldsLines=Ergänzende Attribute (Zeilen) ExtraFieldsSupplierOrdersLines=Ergänzende Attribute (in Bestellungszeile) -ExtraFieldsSupplierInvoicesLines=Ergänzende Attribute (in Rechnungszeile) ExtraFieldsThirdParties=Ergänzende Attribute (Geschäftspartner) -ExtraFieldsContacts=Ergänzende Attribute (Kontakt) -ExtraFieldsMember=Ergänzende Attribute (Mitglied) -ExtraFieldsMemberType=Ergänzende Attribute (Mitglied) -ExtraFieldsCustomerInvoices=Ergänzende Attribute (Rechnungen) -ExtraFieldsSupplierOrders=Ergänzende Attribute (Bestellungen) -ExtraFieldsSupplierInvoices=Ergänzende Attribute (Rechnungen) -ExtraFieldsProject=Ergänzende Attribute (Projekte) -ExtraFieldsProjectTask=Ergänzende Attribute (Aufgaben) -ExtraFieldHasWrongValue=Attribut %s hat einen falschen Wert. -AlphaNumOnlyLowerCharsAndNoSpace=nur Kleinbuchstaben und Zahlen, keine Leerzeichen SendmailOptionNotComplete=Achtung, auf einigen Linux-Systemen, E-Mails von Ihrem E-Mail zu senden, sendmail Ausführung Setup muss conatins Option-ba (Parameter mail.force_extra_parameters in Ihre php.ini-Datei). Wenn einige Empfänger niemals E-Mails erhalten, versuchen, diese Parameter mit PHP mail.force_extra_parameters =-ba) zu bearbeiten. -PathToDocuments=Dokumentenpfad -PathDirectory=Verzeichnispfad -SendmailOptionMayHurtBuggedMTA=Feature-Mails mit der Methode "PHP mail direkt" senden generiert eine Mail-Nachricht, die nicht korrekt möglicherweise von einigen Mail-Servern empfangen analysiert werden. Ergebnis ist, dass manche Mails nicht von Menschen, die von thoose abgehört Plattformen gehostet gelesen werden. Es ist bei einigen Internet-Providern (Ex: Orange in Frankreich). Dies ist nicht ein Problem in Dolibarr noch in PHP aber auf empfangende Mail-Server. Sie können jedoch hinzuzufügen MAIN_FIX_FOR_BUGGED_MTA Option auf 1 in die Setup - andere zu Dolibarr ändern, um dies zu vermeiden. Sie können jedoch Probleme mit anderen Servern, dass die Achtung streng dem SMTP-Standard zu erleben. Die andere Lösung (empfohlen) ist es, die Methode "SMTP-Socket-Bibliothek", die keine Nachteile hat benutzen. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Summe aktivierter Module: %s / %s -YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren -ClassNotFoundIntoPathWarning=Klasse %s nicht innerhalb PHP-Pfad gefunden -YesInSummer=Ja im Sommer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt -ConditionIsCurrently=Einstellung ist aktuell %s -YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der beste verfügbare. -YouDoNotUseBestDriver=Sie verwenden Treiber %s, aber der Treiber %s wird empfohlen. -NbOfProductIsLowerThanNoPb=Sie haben nur %s Produkte/Leistungen in der Datenbank. Daher ist keine bestimmte Optimierung erforderlich. -SearchOptim=Such Optimierung -YouHaveXProductUseSearchOptim=Sie haben %s Produkte/Leistungen in die Datenbank. Sie sollten die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 unter Start-Einstellungen-Andere Einstellungen hinzufügen, wodurch das Suchlimit in der Datenbank von Anfang des Strings möglich gemacht wird, und der Index verwendet wird, dadurch sollten sie sofort Antwort auf Ihre suche bekommen. -BrowserIsOK=Sie benutzen den Webbrowser %s. Dieser ist hinsichtlich Sicherheit und Leistung ok. -BrowserIsKO=Sie benutzen den Webbrowser %s. Dieser ist bekannt für Sicherheitsprobleme, schlechte Leistung und Zuverlässigkeit. Wir empfehlen Ihnen, Firefox, Chrome, Opera oder Safari zu nutzen. -XDebugInstalled=XDebug installiert. -XCacheInstalled=XCache installiert. AddRefInList=Darstellung Kunden- /Lieferanten- Nr. in Listen (Listbox oder ComboBox) und die meisten von Hyperlinks. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". AskForPreferredShippingMethod=Bevorzugte Kontaktmethode bei Partnern fragen. -FieldEdition=Bearbeitung von Feld %s -FillThisOnlyIfRequired=Beispiel: +2 (nur ausfüllen, wenn Sie Probleme mit der Zeitzone haben) -GetBarCode=Erhalten Sie einen Barcode -##### Module password generation -PasswordGenerationStandard=Generiere ein Passwort nach dem internen Systemalgorithmus: 8 Zeichen, Zahlen und Kleinbuchstaben. PasswordGenerationNone=Keine automatische Passwortvorschläge, das Passwort muss manuell eingegeben werden. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Regel für automatisch erstellte Passwörter -DisableForgetPasswordLinkOnLogonPage='Passwort vergessen'-Link nicht auf der Anmeldeseite anzeigen -UsersSetup=Benutzermoduleinstellungen -UserMailRequired=Für das Erstellen eines neuen Benutzers ist dessen E-Mail-Adresse erforderlich -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Unternehmenseinstellungen CompanyCodeChecker=Modul für Geschäftspartner-Code-Erstellung (Kunden oder Lieferanten) -AccountCodeManager=Modul für Kontierungs-Code-Erstellung (Kunden oder Lieferanten) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Dokumentvorlagenmodul -DocumentModelOdt=Erstellen von Dokumentvorlagen im OpenDocuments-Format (.odt- oder .ods-Dateien für OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Wasserzeichen auf Entwurf -JSOnPaimentBill=Feature aktivieren, um Zahlungs-Zeilen in Zahlungs-Formularen automatisch zu füllen CompanyIdProfChecker=Berufs-Identifikation einzigartige -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=Ein Eportlink für das Format %s findet sich unter folgendem Link: %s -##### Invoices ##### -BillsSetup=Rechnungsmoduleinstellungen -BillsNumberingModule=Rechnungs- und Gutschriftsnumerierungsmodul -BillsPDFModules=PDF-Rechnungsvorlagen -CreditNote=Gutschrift -CreditNotes=Gutschriften -ForceInvoiceDate=Rechnungsdatum ist zwingend Freigabedatum -SuggestedPaymentModesIfNotDefinedInInvoice=Empfohlene Zahlungsart für Rechnung falls nicht in gesondert definiert SuggestPaymentByRIBOnAccount=Zahlung per Lastschrift vorschlagen SuggestPaymentByChequeToAddress=Zahlung per Scheck vorschlagen -FreeLegalTextOnInvoices=Freier Rechtstext für Rechnungen -WatermarkOnDraftInvoices=Wasserzeichen auf Rechnungs-Entwurf (keines, falls leer) -PaymentsNumberingModule=Zahlungen Nummerierungs Module -SuppliersPayment=Lieferantenzahlungen SupplierPaymentSetup=Lieferantenzahlungen einrichten -##### Proposals ##### -PropalSetup=Angebotsmoduleinstellungen -ProposalsNumberingModules=Angebotsnumerierungs-Module ProposalsPDFModules=PDF-Anbebotsmodule FreeLegalTextOnProposal=Freier Rechtstext für Angebote -WatermarkOnDraftProposal=Wasserzeichen auf Angebots-Entwurf (keines, falls leer) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Fragen Sie nach dem Bankkonto bei einem Angebot -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Bestellverwaltungseinstellungen -OrdersNumberingModules=Bestellnumerierungs-Module -OrdersModelModule=Bestellvorlagenmodule -FreeLegalTextOnOrders=Freier Rechtstext auf Bestellungen WatermarkOnDraftOrders=Wasserzeichen auf Bestellungs-Entwurf (keines, wenn leer) -ShippableOrderIconInList=In Auftragsliste ein entsprechendes Icon zufügen, wenn die Bestellung versandbereit ist -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Fragen Sie nach der Ziel-Bankverbindung -##### Interventions ##### InterventionsSetup=Servicemoduleinstellungen FreeLegalTextOnInterventions=Freier Rechtstext auf Interventions Dokument FicheinterNumberingModules=Intervention Nummerierung Module TemplatePDFInterventions=Intervention Karte Dokumenten Modelle WatermarkOnDraftInterventionCards=Wasserzeichen auf Interventionskarte Dokumente (keines, wenn leer) -##### Contracts ##### -ContractsSetup=Verträge/Abonnements-Modul Einstellungen -ContractsNumberingModules=Verträge Nummerierung Module -TemplatePDFContracts=Vertragsvorlagen -FreeLegalTextOnContracts=Freier Text in Verträgen -WatermarkOnDraftContractCards=Wasserzeichen auf Vertrags-Entwurf (keines, wenn leer) -##### Members ##### MembersSetup=Mitglieder-Modul Setup -MemberMainOptions=Haupteinstellungen -AdherentLoginRequired= Verwalten Sie eine Anmeldung für jedes Mitglied -AdherentMailRequired=Für das Anlegen eines neuen Mitglieds ist eine E-Mail-Adresse erforderlich MemberSendInformationByMailByDefault=Das Kontrollkästchen für den automatischen Mail-Bestätigungsversand an Mitglieder (bei Freigabe oder neuem Abonnement) ist standardmässig aktiviert -##### LDAP setup ##### -LDAPSetup=LDAP-Einstellungen -LDAPGlobalParameters=Globale LDAP-Parameter -LDAPUsersSynchro=Benutzer -LDAPGroupsSynchro=Gruppen -LDAPContactsSynchro=Kontakte -LDAPMembersSynchro=Mitglieder -LDAPSynchronization=LDAP-Synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP-Funktionen in Ihrer PHP-Konfiguration nicht vrefügbar -LDAPToDolibarr=LDAP->Dolibarr -DolibarrToLDAP=Dolibarr->LDAP -LDAPNamingAttribute=Schlüssel in LDAP -LDAPSynchronizeUsers=dolibarr-Benutzer mit LDAP synchronisieren -LDAPSynchronizeGroups=dolibarr-Gruppen mit LDAP synchronisieren -LDAPSynchronizeContacts=dolibarr-Kontakte mit LDAP synchronisieren -LDAPSynchronizeMembers=dolibarr-Stiftungsmitglieder mit LDAP synchronisieren -LDAPPrimaryServer=Primärer LDAP-Server -LDAPSecondaryServer=Sekundärer LDAP-Server -LDAPServerPort=Server-Port -LDAPServerPortExample=Standard-Port: 389 -LDAPServerProtocolVersion=Protokoll-Version -LDAPServerUseTLS=TLS -LDAPServerUseTLSExample=Ihr LDAP-Server TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator-Passwort -LDAPUserDn=Benutzer DN -LDAPUserDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) -LDAPGroupDn=Gruppen DN -LDAPGroupDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) -LDAPServerExample=Server-Adresse (zB: localhost, 192.168.0.2, ldaps://ldap.example.com/) LDAPServerDnExample=Complete DN (zB: dc=company,dc=com) -LDAPDnSynchroActive=Benutzer und Gruppensynchronisation -LDAPDnSynchroActiveExample=LDAP zu dolibarr oder dolibarr zu LDAP-Synchronisation -LDAPDnContactActive=Kontaktesynchronisation -LDAPDnContactActiveExample=Aktivierte/Deaktivierte Synchronisation -LDAPDnMemberActive=Mitgliedersynchronisation -LDAPDnMemberActiveExample=Aktivierte/Deaktivierte Synchronisation -LDAPContactDn=Dolibarr Kontakte DN -LDAPContactDnExample=Vollständige DN (zB: ou=users,dc=society,dc=com) -LDAPMemberDn=Dolibarr Mitglieder DN LDAPMemberDnExample=Complete DN (ex: ou=members,dc=society,dc=Vollständige DN (zB: ou=users,dc=society,dc=com) -LDAPMemberObjectClassList=Liste der objectClass -LDAPMemberObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute (z.B.: top,inetOrgPerson oder top,user für ActiveDirectory) -LDAPUserObjectClassList=Liste der objectClass -LDAPUserObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute (z.B.: top,inetOrgPerson oder top,user für ActiveDirectory) -LDAPGroupObjectClassList=Liste der objectClass -LDAPGroupObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute(z.B.: top, groupOfUniqueNames) -LDAPContactObjectClassList=Liste der objectClass -LDAPContactObjectClassListExample=Liste der objectClass-definierenden Eintragsattribute (z.B.: top,inetOrgPerson oder top,user für ActiveDirectory) -LDAPTestConnect=LDAP-Verbindung testen -LDAPTestSynchroContact=Kontaktsynchronisation testen -LDAPTestSynchroUser=Benutzersynchronisation testen LDAPTestSynchroGroup=Gruppenynchronisation testen LDAPTestSynchroMember=Mitgliederynchronisation testen -LDAPTestSearch= LDAP-Suche testen -LDAPSynchroOK=Synchronisationstest erfolgreich -LDAPSynchroKO=Synchronisationstest fehlgeschlagen -LDAPSynchroKOMayBePermissions=Synchronisationstest fehlgeschlagen. Überprüfen Sie die richtige Konfiguration der Serververbindung und die Erlaubnis für LDAP-Updates -LDAPTCPConnectOK=TCP-Verbindung zum LDAP-Server erfolgreich (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP-Verbindung zum LDAP-Server fehlgeschlagen (Server= %s, Port= %s) -LDAPBindOK=Verbindung/Authentifizierung am LDAP-Server erfolgreich (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Verbindung/Authentifizierung am LDAP-Server fehlgeschlagen (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP-Server für Version 3 konfiguriert -LDAPSetupForVersion2=LDAP-Server für Version 2 konfiguriert -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP-Mapping -LDAPFieldLoginUnix=Benutzername (Unix) -LDAPFieldLoginExample=Beispiel: uid -LDAPFilterConnection=Suchfilter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Benutzername (Samba,Active Directory) -LDAPFieldLoginSambaExample=Beispiel : samaccountname -LDAPFieldFullname=Vorname Nachname -LDAPFieldFullnameExample=Beispiel : cn -LDAPFieldPasswordNotCrypted=Passwort nicht verschlüsselt -LDAPFieldPasswordCrypted=Passwort verschlüsselt -LDAPFieldPasswordExample=Beispiel : userPassword -LDAPFieldCommonNameExample=Beispiel: cn -LDAPFieldName=Name -LDAPFieldNameExample=Beispiel: sn -LDAPFieldFirstName=Vorname -LDAPFieldFirstNameExample=Beispiel: givenname -LDAPFieldMail=E-Mail-Adresse -LDAPFieldMailExample=Beispiel: E-Mail -LDAPFieldPhone=Telefonnummer, Beruf. -LDAPFieldPhoneExample=Beispiel : Telefonnummer -LDAPFieldHomePhone=Privatnummer -LDAPFieldHomePhoneExample=Beispiel : Telefon Privat -LDAPFieldMobile=Handy -LDAPFieldMobileExample=Beispiel : Handynummer -LDAPFieldFax=Faxnummer -LDAPFieldFaxExample=Beispiel : Faxnummer LDAPFieldAddress=Strasse LDAPFieldAddressExample=Beispiel : Strasse -LDAPFieldZip=PLZ -LDAPFieldZipExample=Beispiel : plz -LDAPFieldTown=Stadt LDAPFieldTownExample=Beispiel: stadt -LDAPFieldCountry=Land -LDAPFieldDescription=Beschreibung -LDAPFieldDescriptionExample=Beispiel : Beschreibung -LDAPFieldNotePublic=öffentlicher Hinweis -LDAPFieldNotePublicExample=Beispiel : Beschreibung -LDAPFieldGroupMembers= Gruppenmitglieder -LDAPFieldGroupMembersExample= Beispiel: uniqueMember -LDAPFieldBirthdate=Geburtsdatum -LDAPFieldCompany=Firma -LDAPFieldCompanyExample=Beispiel: firma -LDAPFieldSid=SID -LDAPFieldSidExample=Beispiel : objectsid -LDAPFieldEndLastSubscription=Auslaufdatum des Abonnements -LDAPFieldTitle=Position -LDAPFieldTitleExample=Beispiel: Titel -LDAPSetupNotComplete=LDAP-Setup nicht vollständig (siehe andere Tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Kein Administrator oder Passwort gefunden. LDAP-Zugang wird anonym und im Lese-Modus ausgeführt. -LDAPDescContact=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Kontakten . -LDAPDescUsers=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Benutzern. -LDAPDescGroups=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Gruppen. -LDAPDescMembers=Auf dieser Seite definieren Sie die LDAP-Attribute im LDAP-Baum für jeden Datensatz zu dolibarr-Mitgliedern. LDAPDescValues=Die Beispielwerte für OpenLDAP verfügen über folgende Muster: core.schema, cosine.schema, inetorgperson.schema. Wenn Sie diese Werte für OpenLDAP verwenden möchten, passen Sie bitte die LDAP-Konfigurationsdateu slapd.conf entsprechend an, damit all diese Muster geladen werden. -ForANonAnonymousAccess=Für einen authentifizierten Zugang (z.B. für Schreibzugriff) -PerfDolibarr=Leistungs-Einstellungen/Optimierungsreport -YouMayFindPerfAdviceHere=Auf dieser Seite finden Sie einige Überprüfungen oder Hinweise zur Leistung. -NotInstalled=Nicht installiert, Ihr Server wird dadurch nicht verlangsamt. ApplicativeCache=Applicative Cache MemcachedNotAvailable=Kein Cache Anwendung gefunden. \nSie können die Leistung durch die Installation des Cache-Server Memcached und die Aktivierung des Anwendungs Cache Modul\n
hier mehr Informationen http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
\nverbessern.\nBeachten Sie, dass viele Billig-Provider keine solche Cache-Server in ihrer Infrastruktur anbieten. MemcachedModuleAvailableButNotSetup=Module memcached für applicative Cache gefunden, aber Setup-Modul ist nicht vollständig. MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled.. -OPCodeCache=OPCode Cache -NoOPCodeCacheFound=Kein OPCode Cache gefunden.Vielleicht sind Sie mit einem anderen OPCode Cache wie XCache oder eAccelerator (gut), vielleicht haben Sie keinen OPCode Cache (sehr schlecht) . -HTTPCacheStaticResources=HTTP Cache für statische Ressourcen (CSS, img, Javascript) -FilesOfTypeCached=Dateien vom Typ %s werden vom HTTP Server zwischengespeichert -FilesOfTypeNotCached=Dateien vom Typ %s werden vom HTTP Server nicht zwischengespeichert -FilesOfTypeCompressed=Dateien vom Typ %s werden vom HTTP Server komprimiert -FilesOfTypeNotCompressed=Dateien vom Typ %s werden vom HTTP Server nicht komprimiert -CacheByServer=Vom Server zwischengespeichert -CacheByClient=Vom Browser zwischengespeichert -CompressionOfResources=Komprimierung von HTTP Antworten -TestNotPossibleWithCurrentBrowsers=Automatische Erkennung mit den aktuellen Browsern nicht möglich -##### Products ##### -ProductSetup=Produktmoduleinstellungen ServiceSetup=Leistungen Modul Setup -ProductServiceSetup=Produkte und Leistungen Module Einstellungen -NumberOfProductShowInSelect=Max. Anzahl der Produkte in Mehrfachauswahllisten (0=kein Limit) -ViewProductDescInFormAbility=Anzeige der Produktbeschreibungen in Formularen (sonst als ToolTip- Popup) -MergePropalProductCard=Aktivieren einer Option unter Produkte/Leistungen Registerkarte verknüpfte Dateien, um Produkt-PDF-Dokumente um Angebots PDF azur zusammenzuführen, wenn Produkte/Leistungen in dem Angebot sind. -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language UseSearchToSelectProductTooltip=Wenn Sie eine grosse Anzahl von Produkten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Geschäftspartner UseUnits=Definieren Sie eine Masseinheit für die Menge während der Auftrags-, Auftragsbestätigungs- oder Rechnungszeilen-Ausgabe -ProductCodeChecker= Modul für Produktcode-Erstellung und -Überprüfung (Produkt oder Service) -ProductOtherConf= Konfiguration Produkt-/Services -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Protokollierungsmodul-Einstellungen -SyslogOutput=Protokollausgabe -SyslogFacility=Einrichtung -SyslogLevel=Level -SyslogFilename=Dateiname und-pfad -YouCanUseDOL_DATA_ROOT=Sie können DOL_DATA_ROOT/dolibarr.log als Protokolldatei in Ihrem Dokumentenverzeichnis verwenden. Bei Bedarf können Sie auch den Pfad der Datei anpassen. ErrorUnknownSyslogConstant=Konstante %s ist nicht als Protkoll-Konstante definiert -OnlyWindowsLOG_USER=Windows unterstützt nur LOG_USER -##### Donations ##### -DonationsSetup=Spendenmoduleinstellungen -DonationsReceiptModel=Vorlage für Spendenquittungen -##### Barcode ##### -BarcodeSetup=Barcode-Einstellungen -PaperFormatModule=Papierformatmodul -BarcodeEncodeModule=Barcode-Erstellungsmodul -CodeBarGenerator=Barcode-Generator -ChooseABarCode=Wählen sie einen Barcode -FormatNotSupportedByGenerator=Dieses Format wird von gewählten Barcode-Generator nicht unterstützt -BarcodeDescEAN8=Barcode vom Typ EAN8 -BarcodeDescEAN13=Barcode vom Typ EAN13 -BarcodeDescUPC=Barcode vom Typ UPC -BarcodeDescISBN=Barcode vom Typ ISBN -BarcodeDescC39=Barcode vom Typ C39 -BarcodeDescC128=Barcode vom Typ C128 -BarcodeDescDATAMATRIX=Barcodeformat Datamatrix -BarcodeDescQRCODE=Barcodetyp QR Code -GenbarcodeLocation=Bar Code Kommandozeilen-Tool (verwendet interne Engine für einige Barcodetypen) Muss mit "genbarcode" kompatibel sein.
Zum Beispiel: /usr/local/bin/genbarcode -BarcodeInternalEngine=interne Engine -BarCodeNumberManager=Manager für die automatische Generierung von Barcode-Nummer -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=Externe RSS-Einbindungseinstellungen -NewRSS=Neuer RSS-Feed -RSSUrl=RSS URL -RSSUrlExample=Ein interessanter RSS Feed -##### Mailing ##### -MailingSetup=E-Mail-Kampagnenmodul-Einstellungen -MailingEMailFrom=E-Mail-Absender (für ausgehende Mails) des E-Mail-Moduls -MailingEMailError=Antwort-E-Mail-Adresse für unzustellbare E-Mails -MailingDelay=Wartezeit in Sekunden, bevor die nächste Nachricht gesendet wird -##### Notification ##### -NotificationSetup=E-Mail Benachrichtigungs-Einstellungen -NotificationEMailFrom=E-Mail-Absender (für ausgehende Mails) des Benachrichtigungsmoduls -FixedEmailTarget=Festes E-Mail-Ziel -##### Sendings ##### -SendingsSetup=Versandmoduleinstellungen -SendingsReceiptModel=Versandbelegsvorlage -SendingsNumberingModules=Nummerierungsmodell Auslieferungen -SendingsAbility=Unterstützung von Versand-Dokumenten für Kundenlieferungen -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Freier Text auf Lieferungen -##### Deliveries ##### -DeliveryOrderNumberingModules=Zustellscheinnumerierungs-Module -DeliveryOrderModel=Zustellscheinnumerierung -DeliveriesOrderAbility=Unterstütze Zustellscheine für Produkte -FreeLegalTextOnDeliveryReceipts=Freier Rechtstext auf Empfangsbelegen -##### FCKeditor ##### -AdvancedEditor=Erweiterter Editor -ActivateFCKeditor=FCKEditor aktivieren für: FCKeditorForCompany=WYSIWIG Erstellung/Bearbeitung der Firmennformationen und Notizen (ausser Produkte/Services) -FCKeditorForProduct=WYSIWIG Erstellung/Bearbeitung von Produkt-/Serviceinformationen und Notizen -FCKeditorForProductDetails=WYSIWG Erstellung/Bearbeitung der Produktdetails für alle Dokumente( Angebote, Bestellungen, Rechnungen etc...) Achtung: Die Option führt potentiell zu Problemen mit Umlauten und Sonderzeichen und wird daher nicht empfohlen. -FCKeditorForMailing= WYSIWIG Erstellung/Bearbeitung von E-Mails -FCKeditorForUserSignature=WYSIWIG Erstellung/Bearbeitung von Benutzer-Signaturen FCKeditorForMail=WYSIWYG Erstellung/Bearbeitung für gesamte Mail (ausser Werkzeuge->Massenmaling) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Datenbank-Verbindung erfolgreich, es scheint sich allerdings nicht um eine OSCommerce-Datenbank zu handeln (Key %s nicht gefunden in der Tabelle %s). -OSCommerceTestOk=Verbindung zum Server '%s' für Datenbank '%s' mit Benutzer '%s' erfolgreich. -OSCommerceTestKo1=Verbindung zum Server '%s' erfolgreich, aber Datenbank '%s' konnte nicht erreicht werden. -OSCommerceTestKo2=Verbindung zum Server '%s' mit dem Benutzer '%s' fehlgeschlagen. -##### Stock ##### -StockSetup=Warenlager-Modul Einstellungen IfYouUsePointOfSaleCheckModule=Wenn Sie ein Point of Sale-Modul (POS-Modul Standard oder andere externe POS-Module) verwenden, kann diese Einstellung von Ihrem Point Of Sale-Modul übersteuert werden. \nDie meisten POS -Module wurden entwickelt, um sofort eine Rechnung zu erstellen und das Lager standardmässig zu verringern, egal welche Optionen hier ausgewählt wurde. \nAlso, wenn Sie während einem Verkauf einen Lagerabgang in Ihrem Point of Sale möchten oder nicht, so müssen sie auch die Konfiguration des POS-Modules überprüfen. -##### Menu ##### -MenuDeleted=Menü gelöscht -Menus=Menüs -TreeMenuPersonalized=Personalisierte Baumansicht -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=Neues Menü -Menu=Menüauswahl -MenuHandler=Menü-Handler -MenuModule=Quellmodul -HideUnauthorizedMenu= Hide unbefugte Menüs (grau) -DetailId=Menü ID -DetailMenuHandler=Menü-Handler für die Anzeige des neuen Menüs -DetailMenuModule=Modulname falls Menüeintrag aus einem Modul stimmt -DetailType=Art des Menüs (Top oder Links) DetailTitre=Menübezeichner oder Bezeichnungs-Code für Übersetzung -DetailUrl=Ziel-URL für Menüeintrag (Absolute URL oder externer Link mit http://) -DetailEnabled=Einstellungen für die Anzeige der Einträge -DetailRight=Zustand für die Anzeige nicht-authorisierter, grauer Menüs DetailLangs=Sprachdateiname für Bezeichnungsübersetzung -DetailUser=Intern/Extern/Alle -Target=Ziel -DetailTarget=Linkziel (_blank und top öffnen ein neues Fenster) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menü bearbeiten -DeleteMenu=Menüeintrag löschen -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Steuer-, Sozialabgaben- und Dividendenmodul-Einstellungen OptionVatMode=MwSt. fällig -OptionVATDefault=Barbestandsbasis -OptionVATDebitOption=Rückstellungsbasis -OptionVatDefaultDesc=Mehrwertsteuerschuld entsteht:
- Bei Lieferung/Zahlung für Waren
- Bei Zahlung für Leistungen -OptionVatDebitOptionDesc=Mehrwertsteuerschuld entsteht:
- Bei Lieferung/Zahlung für Waren
- Bei Rechnungslegung (Lastschrift) für Dienstleistungen SummaryOfVatExigibilityUsedByDefault=Standardmässiger Zeitpunkt der MwSt.-Fälligkeit in Abhängigkeit zur derzeit gewählten Option: -OnDelivery=Bei Lieferung -OnPayment=Bei Zahlung -OnInvoice=Bei Rechnungslegung -SupposedToBePaymentDate=Zahlungsdatum in Verwendung falls Lieferdatum unbekannt -SupposedToBeInvoiceDate=Rechnungsdatum verwendet -Buy=Kaufen -Sell=Verkaufen -InvoiceDateUsed=Rechnungsdatum verwendet -YourCompanyDoesNotUseVAT=Für Ihr Unternehmen wurde keine MwSt.-Verwendung definiert (Start-Einstellungen-Unternehmen/Stiftung), entsprechend stehen in der Konfiguration keine MwSt.-Optionen zur Verfügung. -AccountancyCode=Kontierungs-Code -AccountancyCodeSell=Verkaufskonto-Code -AccountancyCodeBuy=Einkaufskonto-Code -##### Agenda ##### -AgendaSetup=Aufgaben/Termine-Modul Einstellungen -PasswordTogetVCalExport=Passwort für den VCal-Export -PastDelayVCalExport=Keine Termine exportieren die älter sind als AGENDA_USE_EVENT_TYPE=Verwenden der Termintypen \nEinstellen unter (Start -> Einstellungen -> Wörterbücher -> Ereignistypen) -AGENDA_USE_EVENT_TYPE_DEFAULT=Diesen Standardwert automatisch als Ereignistyp im Ereignis Erstell-Formular verwenden. -AGENDA_DEFAULT_FILTER_TYPE=Diesen Ereignistyp automatisch in den Suchfilter für die Agenda-Ansicht übernehmen -AGENDA_DEFAULT_FILTER_STATUS=Diesen Ereignisstatus automatisch in den Suchfilter für die Agenda-Ansicht übernehmen -AGENDA_DEFAULT_VIEW=Welchen Reiter möchten Sie beim Öffnen der Agenda automatisch anzeigen -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click-to-Dial Moduleinstellungen -ClickToDialUrlDesc=Definieren Sie hier die URL, die bei einem Klick auf das Telefonsymbol aufgerufen werden soll. In dieser URL können Sie Tags verwenden
%%1$s wird durch die Telefonnummer des Angerufenen ersetzt
%%2$s wird durch die Telefonnummer des Anrufers (Ihre) ersetzt
%%3$s wird durch Ihren Benutzernamen für Click-to-Dial ersetzt (siehe Benutzerdatenblatt)
%%4$s wird durch Ihr Click-to-Dial-Passwort ersetzt (siehe Benutzerdatenblatt). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Verwenden Sie diese Methode wenn ein Softphone oder eine andere Telefonielösung auf dem Computer ist. Es wird ein "tel:" Link generiert. Wenn Sie eine Serverbasierte Lösung benötigen, setzen Sie dieses Feld auf Nein und geben die notwendigen Daten im nächsten Feld ein. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of Sales -CashDeskSetup=Kassenmoduleinstellungen CashDeskThirdPartyForSell=Standardgeschäftspartner für Kassenverkäufe -CashDeskBankAccountForSell=Standard-Bargeldkonto für Kassenverkäufe (erforderlich) -CashDeskBankAccountForCheque= Finanzkonto für Scheckeinlösungen -CashDeskBankAccountForCB= Finanzkonto für die Einlösung von Bargeldzahlungen via Kreditkarte -CashDeskDoNotDecreaseStock=Deaktiviere Lagerabgangsbuchung wenn ein Verkauf auf einem Point of Sale durchgeführt wird\n (wenn "Nein", wird die Lagerabgangsbuchung immer durchgeführt , auch wann im Modul Produktbestandsverwaltung was anderes ausgewählt wurde). -CashDeskIdWareHouse=Lager für Entnahmen festlegen und und erzwingen StockDecreaseForPointOfSaleDisabled=Lagerrückgang bei Verwendung von Point of Sale deaktivert -StockDecreaseForPointOfSaleDisabledbyBatch=Lagerrückgang in POS-Modul ist noch nicht mit dem Chargen- /Seriennummern Management kompatibel. -CashDeskYouDidNotDisableStockDecease=Sie haben die Reduzierung der Lagerbestände nicht deaktiviert, wenn Sie einen Verkauf auf dem POS durchführen.\nAuch ist ein Lager/Standort notwendig. -##### Bookmark ##### -BookmarkSetup=Lesezeichenmoduleinstellungen BookmarkDesc=Dieses Modul ermöglicht die Verwaltung von Lesezeichen. Ausserdem können Sie hiermit Verknüpfungen zu internen und externen Seiten im linken Menü anlegen. -NbOfBoomarkToShow=Maximale Anzeigeanzahl Lesezeichen im linken Menü -##### WebServices ##### -WebServicesSetup=Webservices-Moduleinstellungen -WebServicesDesc=Über Aktivierung dieses Moduls können Sie dolibarr zur Anbindung an externe Webservices konfigurieren -WSDLCanBeDownloadedHere=Die WSDL-Datei der verfügbaren Webservices können Sie hier herunterladen -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### ApiSetup=API-Modul-Setup -ApiDesc=Wenn dieses Modul aktiviert ist, wird Dolibarr zum REST Server für diverse web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Sie können das API unter dieser URL verwenden -OnlyActiveElementsAreExposed=Nur Elemente aus aktiven Modulen sind ungeschützt -ApiKey=Schlüssel für API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bankmoduleinstellungen -FreeLegalTextOnChequeReceipts=Freier Rechtstext für Scheckbelege -BankOrderShow=Anzeige Reihenfolge der Bankkonten für Länder mit "detaillierten Bank-Nummer" -BankOrderGlobal=General -BankOrderGlobalDesc=Allgemeine Anzeige-Reihenfolge -BankOrderES=Spanisch -BankOrderESDesc=Spanisch Anzeigereihenfolge ChequeReceiptsNumberingModule=Checknumerierungsmodul - -##### Multicompany ##### MultiCompanySetup=Multi-Company-Moduleinstellungen -##### Suppliers ##### -SuppliersSetup=Lieferantenmoduleinstellungen -SuppliersCommandModel=Vollständige Vorlage für Lieferantenbestellungen (Logo, ...) -SuppliersInvoiceModel=Vollständige Vorlage der Lieferantenrechnung (logo. ..) -SuppliersInvoiceNumberingModel=Lieferantenrechnungen Zähl-Modell -IfSetToYesDontForgetPermission=Wenn auf Ja gesetzt, vergessen Sie nicht, die Berechtigungen den dafür erlaubten Gruppen oder Benutzern auch das Recht für die zweite Zustimmung zu geben. -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP-Maxmind Moduleinstellungen -PathToGeoIPMaxmindCountryDataFile=Pfad zur Datei mit Maxmind IP-zu-Land Übersetzung.
Beispiele:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoOP.dat -NoteOnPathLocation=Bitte beachten Sie, dass Ihre IP-Länder-Datei in einem von PHP lesbaren Verzeichnis liegen muss (Überprüfen Sie Ihre PHP open_basedir-Einstellungen und die Dateisystem-Berechtigungen). -YouCanDownloadFreeDatFileTo=Eine kostenlose Demo-Version der Maxmind-GeoIP Datei finden Sie hier: %s -YouCanDownloadAdvancedDatFileTo=Eine vollständigere Version mit Updates der Maxmind-GeoIP Datei können Sie hier herunterladen: %s -TestGeoIPResult=Test einer Umwandlung IP -> Land -##### Projects ##### -ProjectsNumberingModules=Projektnumerierungsmodul -ProjectsSetup=Projekteinstellungenmodul -ProjectsModelModule=Projektvorlagenmodul TasksNumberingModules=Aufgaben-Nummerierungs-Modul -TaskModelModule=Vorlage für Arbeitsberichte -UseSearchToSelectProject=Feld mit Autovervollständigung zur Projektwahl verwenden (Anstelle einer Listbox) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=kann immer bearbeitet werden -MAIN_APPLICATION_TITLE=Erzwinge sichtbaren Anwendungsnamen (Warnung: Setzen Ihres eigenen Namen hier, kann Autofill Login-Funktion abbrechen, wenn Sie DoliDroid Anwendung nutzen) NbMajMin=Mindestanzahl Grossbuchstaben -NbNumMin=Mindestanzahl Ziffern -NbSpeMin=Mindestanzahl Sonderzeichen -NbIteConsecutive=Maximale Anzahl sich wiederholender Zeichen -NoAmbiCaracAutoGeneration=Verwende keine mehrdeutigen Zeichen ("1", "l", "i", "|", "0", "O") für die automatische Generierung -SalariesSetup=Einstellungen des Gehaltsmodul -SortOrder=Sortierreihenfolge -Format=Format -TypePaymentDesc=0:Kunden-Zahlungs-Typ, 1:Lieferanten-Zahlungs-Typ, 2:Sowohl Kunden- als auch Lieferanten-Zahlungs-Typ -IncludePath=Include-Pfad (in Variable '%s' definiert) -ExpenseReportsSetup=Einstellungen des Moduls Spesenabrechnung TemplatePDFExpenseReports=Dokumentvorlagen zur Spesenabrechnung Dokument erstellen -NoModueToManageStockIncrease=Kein Modul zur automatische Bestandserhöhung ist aktiviert. Lager Bestandserhöhung kann nur durch manuelle Eingabe erfolgen. -YouMayFindNotificationsFeaturesIntoModuleNotification=Sie können Optionen für E-Mail-Benachrichtigungen von Aktivierung und Konfiguration des Moduls "Benachrichtigung" finden. -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=Liste von ausbesserten Benachrichtigungen -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Schwellenwert -BackupDumpWizard=Assistenten zum erstellen der Datenbank-Backup Dump-Datei -SomethingMakeInstallFromWebNotPossible=Die Installation von dem externen Modul ist aus folgenden Gründen vom Web-Interface nicht möglich: -SomethingMakeInstallFromWebNotPossible2=Aus diesem Grund wird die Prozess hier beschriebenen Upgrade ist nur manuelle Schritte ein privilegierter Benutzer tun kann. -InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus der Anwendung wurde von Ihrem Administrator deaktiviert. \nSie müssen ihn bitten, die Datei%s zu entfernen, um diese Funktion zu ermöglichen. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover HighlightLinesColor=Farbe des Highlight Effekt bei Mausbewegung (wählen sie keine für keinen Highlight Effekt) TextTitleColor=Farbe des Seitentitels LinkColor=Linkfarbe -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Hintergrundfarbe -TopMenuBackgroundColor=Hintergrundfarbe für Hauptmenü -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Hintergrundfarbe für Menü Links -BackgroundTableTitleColor=Hintergrundfarbe für Titelzeilen in Tabellen -BackgroundTableLineOddColor=Hintergrundfarbe für ungerade Tabellenzeilen -BackgroundTableLineEvenColor=Hintergrundfarbe für gerade Tabellenzeilen -MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfolgen) NbAddedAutomatically=Anzahl Tage die den Benutzern jeden Monat automatisch dazuaddiert werden -EnterAnyCode=Dieses Feld enthält eine Referenz um die Zeile zu identifizieren. Geben Sie einen beliebigen Wert ohne Sonderzeichen ein. -UnicodeCurrency=Fügen sie zwischen den eckigen Klammern die Unicode Zeichenwerte für das Währungssymbol ein. Beispiele: Für $ den Wert [36], für brasilianische Real R$ [82,36], für € den Wert [8364] -PositionIntoComboList=Zeilenposition in der Combo-Listen -SellTaxRate=Mehrwertsteuersatz RecuperableOnly=Ja für MwSt. "Wahrgenommene nicht Erstattungsfähig" für einige Regionen in Frankreich. Nein für alle anderen Fälle. -UrlTrackingDesc=Falls der Liefer- bzw. Transportdienst eine Website für die Statusüberprüfung anbietet, kann die URL hier angegeben werden. Sie können die Zeichenfolge {TRACKID} in URL-Parameter verwenden, damit das System den Wert von Tracking-Nummer des Benutzers in die Lieferkarte ersetzen kann. -OpportunityPercent=Wenn Sie eine Verkaufschance erfassen, wird ein geschätzter Betrag an einem Projekt / Lead definiert. Entsprechend der Chance kann diese Menge durch diese Rate multipliziert werden, um die Gesamtmenge, die alle ihre Möglichkeiten erzeugen, generieren kann. Ist der Prozentwert (zwischen 0 und 100). -TemplateForElement=Diese Vorlage gehört zu diesem Element -TypeOfTemplate=Type der Vorlage -TemplateIsVisibleByOwnerOnly=Vorlage ist nur vom Besitzer sichtbar -FixTZ=Zeitzonen-Korrektur -FillFixTZOnlyIfRequired=Beispiel: +2 (nur ausfüllen, wenn Sie Probleme haben) -ExpectedChecksum=Erwartete Prüfsumme -CurrentChecksum=Aktuelle Prüfsumme -ForcedConstants=Required constant values -MailToSendProposal=Um Angebot zu schicken -MailToSendOrder=Um Kundenauftrag zu schicken -MailToSendInvoice=Um Kundenrechnung zu schicken -MailToSendShipment=Um Lieferschein zu schicken MailToSendIntervention=Um Interventions zu schicken -MailToSendSupplierRequestForQuotation=Um Anfrage an den Lieferanten schicken -MailToSendSupplierOrder=Um Lieferantenbestellung zu schicken -MailToSendSupplierInvoice=Um Lieferantenrechnung zu schicken -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Standardanzeige als Listenansicht -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. ModelModulesProduct=Vorlage für Produktdokumente ToGenerateCodeDefineAutomaticRuleFirst=Um automatisch Barcodenummern zu generieren, muss zuerst ein Nummerierungmodul im Barcodemodul definiert werden. SeeSubstitutionVars=Siehe * für eine Liste der Verfügbaren Variablen -AllPublishers=All publishers -UnknownPublishers=Unknown publishers AddRemoveTabs=Tab hinzufügen oder entfernen AddDictionaries=Wörterbücher hinzufügen AddBoxes=Box hinzufügen @@ -1648,18 +223,6 @@ AddImportProfiles=Importprofil hinzufügen AddOtherPagesOrServices=Andere Seite oder Dienst hinzufügen AddModels=Dokument- oder Nummerierungvorlage hinzufügen AddSubstitutions=Schlüsselersatzwerte hinzufügen -DetectionNotPossible=Erkennung nicht möglich -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) ListOfAvailableAPIs=Liste der verfügbaren API's activateModuleDependNotSatisfied=Modul "%s" hängt vom Modul "%s" ab, welches fehlt. Dadurch funktioniert Modul "%1$s" vermutlich nicht richtig. Installieren Sie sicherheitshalber zuerst das Modul "%2$s" oder deaktivieren Sie das Modul "%1$s" CommandIsNotInsideAllowedCommands=Das Kommando ist nicht in der Liste der erlaubten Kommandos, die unter $dolibarr_main_restrict_os_commands in der Datei conf.php definiert sind. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/de_CH/bills.lang b/htdocs/langs/de_CH/bills.lang index 22d195b6695..36416d8d12a 100644 --- a/htdocs/langs/de_CH/bills.lang +++ b/htdocs/langs/de_CH/bills.lang @@ -61,8 +61,6 @@ AbsoluteDiscountUse=Diese Art von Krediten verwendet werden kann auf der Rechnun AmountPaymentDistributedOnInvoice=Zahlungsbetrag auf Rechnungen verteilen PaymentOnDifferentThirdBills=Erlaube Zahlungen an andere Partner, aber mit gleicher übergeordnetem Unternehmung FrequencyPer_d=Alle %s Tage -FrequencyPer_m=Alle %s Monate -FrequencyPer_y=Alle %s Jahre NextDateToExecution=Datum der nächsten Rechnungsstellung DateLastGeneration=Datum der letzten Rechnungsstellung MaxPeriodNumber=Maximal Anzahl der generierten Rechnungen diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index faebfaa8761..a927d99f576 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -13,7 +13,6 @@ ThirdPartyName=Name des Geschäftspartners ThirdParty=Geschäftspartner ThirdParties=Geschäftspartner ThirdPartyType=Typ des Geschäftspartners -Company/Fundation=Firma/Verein PostOrFunction=Position PhoneShort=Telefon No_Email=Keine E-Mail-Kampagnen diff --git a/htdocs/langs/de_CH/cron.lang b/htdocs/langs/de_CH/cron.lang index ee84919c879..4b8d60d4b28 100644 --- a/htdocs/langs/de_CH/cron.lang +++ b/htdocs/langs/de_CH/cron.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - cron CronMethodDoesNotExists=Klasse %s hat keine %s Methode EnabledAndDisabled=Aktiviert und deaktiviert -CronInfo=Das Schedule Cron-Jobs Module erlaubt die geplanten Cron-Jobs die programmiert wurden durchzuführen. CronDtStart=Nicht vor CronDtEnd=Nicht nach CronMaxRun=Max. Anzahl Starts diff --git a/htdocs/langs/de_CH/main.lang b/htdocs/langs/de_CH/main.lang index f8b6b5a3067..06f474ced2a 100644 --- a/htdocs/langs/de_CH/main.lang +++ b/htdocs/langs/de_CH/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,97 @@ FormatDateHourShort=%d.%m.%Y %H:%M FormatDateHourSecShort=%d.%m.%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Datenbankverbindung NoTemplateDefined=Keine Vorlage für diese E-Mailart definiert AvailableVariables=Verfügbare Ersatzvariablen -NoTranslation=Keine Übersetzung -NoRecordFound=Keinen Eintrag gefunden -NoRecordDeleted=No record deleted NotEnoughDataYet=Nicht genügend Daten -NoError=kein Fehler -Error=Fehler -Errors=Fehler -ErrorFieldRequired=Feld '%s' ist erforderlich -ErrorFieldFormat=Der Wert in Feld '%s' ist ungültig -ErrorFileDoesNotExists=Die Datei %s existiert nicht -ErrorFailedToOpenFile=Fehler beim Öffnen der Datei %s ErrorCanNotCreateDir=Kann Verzeichnis %s nicht erstellen -ErrorCanNotReadDir=Kann Verzeichnis %s nicht lesen -ErrorConstantNotDefined=Parameter %s nicht definiert -ErrorUnknown=Unbekannter Fehler -ErrorSQL=SQL-Fehler -ErrorLogoFileNotFound=Logo-Datei '%s' nicht gefunden -ErrorGoToGlobalSetup=Bitte wechseln Sie zu den 'Firma/Stiftung'-Einstellungen um das Problem zu beheben -ErrorGoToModuleSetup=Bitte wechseln Sie zu den Moduleinstellungen um das Problem zu beheben -ErrorFailedToSendMail=Fehler beim Senden der E-Mail (Absender=%s, Empfänger=%s) ErrorFileNotUploaded=Die Datei konnte nicht hochgeladen werden. Stellen Sie sicher dass die Dateigrösse nicht den gesetzten Maximalwert übersteigt, das Zielverzeichnis über genügend freien Speicherplatz verfügt und noch keine Datei mit gleichem Namen existiert. -ErrorInternalErrorDetected=Interner Fehler entdeckt -ErrorWrongHostParameter=Ungültige Host-Parameter -ErrorYourCountryIsNotDefined=Ihr Land ist nicht definiert. Bitte vervollständigen Sie das Profil unter Start - Einstellungen - Firma/Stiftung ErrorRecordIsUsedByChild=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untegeordneten Datensatz verwendet. -ErrorWrongValue=Ungültiger Wert -ErrorWrongValueForParameterX=Ungültiger Wert für den Parameter %s -ErrorNoRequestInError=Keine Anfrage im Fehler -ErrorServiceUnavailableTryLater=Dieser Service steht derzeit nicht zur Verfügung. Bitte versuchen Sie es später erneut. ErrorDuplicateField=Dieser Wert ist nicht einzigartig (schon vorhanden) ErrorSomeErrorWereFoundRollbackIsDone=Einige Fehler wurden gefunden. Änderungen rückgängig gemacht. -ErrorConfigParameterNotDefined=Parameter %s innerhalb der Konfigurationsdatei conf.php. nicht definiert. ErrorCantLoadUserFromDolibarrDatabase=Kann Benutzer %s nicht aus der Systemdatenbank laden. -ErrorNoVATRateDefinedForSellerCountry=Fehler, keine MwSt.-Sätze für Land '%s' definiert. ErrorNoSocialContributionForSellerCountry=Fehler, keine Definition für Sozialabgaben/Steuerwerte definiert für Land '%s'. -ErrorFailedToSaveFile=Fehler, konnte Datei nicht speichern. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=Sie haben keine Berechtigung dazu. -SetDate=Datum -SelectDate=Wählen Sie ein Datum -SeeAlso=Siehe auch %s -SeeHere=Sehen Sie hier -Apply=Übernehmen -BackgroundColorByDefault=Standard-Hintergrundfarbe -FileRenamed=The file was successfully renamed -FileUploaded=Datei wurde erfolgreich hochgeladen -FileGenerated=The file was successfully generated -FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten. -NbOfEntries=Anzahl der Einträge GoToWikiHelpPage=Onlinehilfe (Internetzugang notwendig) -GoToHelpPage=Hilfe lesen -RecordSaved=Eintrag gespeichert -RecordDeleted=Eintrag gelöscht -LevelOfFeature=Funktionslevel -NotDefined=Nicht definiert -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Nicht definiert -PasswordForgotten=Password forgotten? -SeeAbove=Siehe oben -HomeArea=Startseite -LastConnexion=Latest connection -PreviousConnexion=Letzte Anmeldung -PreviousValue=Vorheriger Wert -ConnectedOnMultiCompany=Mit Entität verbunden -ConnectedSince=Angemeldet seit -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Datenbank Type Manager RequestLastAccessInError=Letzter Datenbankfehler ReturnCodeLastAccessInError=Rückgabewert des letzten Datenbankfehlers InformationLastAccessInError=Informationen zum letzten Datenbankfehler -DolibarrHasDetectedError=Das System hat einen technischen Fehler festgestellt -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Weitere Informationen -TechnicalInformation=Technische Information -TechnicalID=Technische ID -NotePublic=Anmerkung (öffentlich) -NotePrivate=Anmerkung (privat) -PrecisionUnitIsLimitedToXDecimals=Stückpreisgenauigkeit im System auf %s Dezimalstellen beschränkt. -DoTest=Testen -ToFilter=Filtern -NoFilter=Kein Filter -WarningYouHaveAtLeastOneTaskLate=Achtung: Bei mindestens einem Element wurde die Toleranz der Zeitverzögerung überschritten. -yes=ja -Yes=Ja -no=nein -No=Nein -All=Alle -Home=Start -Help=Hilfe -OnlineHelp=Online-Hilfe -PageWiki=Wiki-Seite MediaBrowser=Mediabrowser -Always=Immer -Never=Nie -Under=Unter -Period=Zeitraum -PeriodEndDate=Enddatum für Zeitraum -Activate=Aktivieren -Activated=Aktiviert -Closed=Geschlossen -Closed2=Geschlossen -NotClosed=Not closed -Enabled=Aktiviert -Deprecated=Veraltet -Disable=Deaktivieren -Disabled=Deaktiviert -Add=Hinzufügen -AddLink=Link hinzufügen -RemoveLink=Entferne Link AddToDraft=Zu Entwurf hinzufügen -Update=Aktualisieren Close=Schliessen CloseBox=Box vom Startbildschirm entfernen -Confirm=Bestätigen -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Löschen -Remove=Entfernen -Resiliate=Terminate -Cancel=Abbrechen -Modify=Ändern -Edit=Bearbeiten -Validate=Bestätigen ValidateAndApprove=Freigeben und bestätigen -ToValidate=Freizugeben -Save=Speichern -SaveAs=Speichern unter -TestConnection=Verbindung testen -ToClone=Duplizieren -ConfirmClone=Wählen Sie die zu duplizierenden Daten: -NoCloneOptionsSpecified=Keine Duplikationsoptionen ausgewählt. -Of=von -Go=Weiter -Run=bearbeiten -CopyOf=Duplikat von -Show=Zeige -Hide=Hide -ShowCardHere=Zeige Karte -Search=Suchen -SearchOf=Suche nach -Valid=Freigabe -Approve=Genehmigen -Disapprove=Abgelehnt -ReOpen=Wiedereröffnen -Upload=Datei laden -ToLink=Link -Select=Wählen Sie -Choose=Wählen -Resize=Skalieren -Recenter=Zentrieren -Author=Autor -User=Benutzer -Users=Benutzer -Group=Gruppe -Groups=Gruppen -NoUserGroupDefined=Keine Benutzergruppe definiert -Password=Passwort -PasswordRetype=Geben Sie das Passwort noch einmal ein -NoteSomeFeaturesAreDisabled=Bitte beachten Sie, dass viele Funktionen/Module in dieser Demo deaktiviert sind -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameter -Value=Wert -PersonalValue=Persönlicher Wert -NewValue=Neuer Wert -CurrentValue=Aktueller Wert -Code=Code -Type=Typ -Language=Sprache -MultiLanguage=Mehrsprachig -Note=Hinweis -Title=Titel -Label=Bezeichnung -RefOrLabel=Nr. oder Bezeichnung -Info=Protokoll -Family=Familie -Description=Beschreibung -Designation=Beschreibung -Model=Doc template -DefaultModel=Default doc template -Action=Ereignis -About=Über -Number=Anzahl -NumberByMonth=Anzahl nach Monat -AmountByMonth=Umsatz nach Monat -Numero=Nummer -Limit=Limit -Limits=Limits -Logout=Abmelden -NoLogoutProcessWithAuthMode=Keine Anwendung Trennungsfunktion mit Authentifizierungsmodus % s -Connection=Verbindung -Setup=Einstellungen -Alert=Warnung -Previous=Voriger -Next=Nächster -Cards=Karten -Card=Karte -Now=Jetzt -HourStart=Startzeit -Date=Datum -DateAndHour=Datum und Uhrzeit DateToday=Aktuelles Datum -DateReference=Referenzdatum DateStart=Startdatum DateEnd=Enddatum -DateCreation=Erstellungsdatum -DateCreationShort=Erstelldatum -DateModification=Änderungsdatum DateModificationShort=Änd.Datum -DateLastModification=Latest modification date -DateValidation=Freigabedatum DateClosing=Schliessungsdatum -DateDue=Fälligkeitsdatum -DateValue=Valutadatum -DateValueShort=Valutadatum -DateOperation=Ausführungsdatum DateOperationShort=Ausf.Datum -DateLimit=Frist -DateRequest=Anfragedatum -DateProcess=Verarbeite Datum -DateBuild=Datum der Berichterstellung -DatePayment=Zahlungsziel -DateApprove=Genehmigungsdatum -DateApprove2=Genehmigungsdatum (zweite Genehmigung) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=Jahr -DurationMonth=Monat -DurationWeek=Woche -DurationDay=Tag -DurationYears=Jahre -DurationMonths=Monate -DurationWeeks=Wochen -DurationDays=Tage -Year=Jahr -Month=Monat -Week=Woche -WeekShort=Woche -Day=Tag -Hour=Stunden -Minute=Minute -Second=Zweitens -Years=Jahre -Months=Monate -Days=Tage -days=Tage -Hours=Stunden -Minutes=Minuten -Seconds=Sekunden -Weeks=Wochen -Today=Heute -Yesterday=Gestern -Tomorrow=Morgen -Morning=Morgen -Afternoon=Nachmittag -Quadri=vierfach -MonthOfDay=Tag des Monats -HourShort=H MinuteShort=min -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=inkl. MwSt. -Bytes=Bytes -KiloBytes=Kilobyte -MegaBytes=Megabyte -GigaBytes=Gigabyte -TeraBytes=Terabyte -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Ausschneiden -Copy=Kopieren -Paste=Einfügen -Default=Standard -DefaultValue=Standardwert -Price=Preis -UnitPrice=Stückpreis -UnitPriceHT=Stückpreis (netto) -UnitPriceTTC=Stückpreis (brutto) -PriceU=VP -PriceUHT=VP (netto) -PriceUHTCurrency=Nettopreis (Währung) PriceUTTC=E.P. (inkl. Steuern) -Amount=Betrag -AmountInvoice=Rechnungsbetrag -AmountPayment=Zahlungsbetrag -AmountHTShort=Nettobetrag -AmountTTCShort=Bruttobetrag AmountHT=Betrag (exkl. MwSt.) -AmountTTC=Bruttobetrag AmountVAT=MwSt.-Betrag -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency MulticurrencyAmountHT=Nettobetrag, in Währung MulticurrencyAmountTTC=Bruttobetrag, in Währung MulticurrencyAmountVAT=Steuerbetrag, in Währung AmountLT1=MwSt.-Betrag 2 AmountLT2=MwSt.-Betrag 3 -AmountLT1ES=RE Betrag -AmountLT2ES=Betrag IRPF -AmountTotal=Gesamtbetrag -AmountAverage=Durchschnittsbetrag -PriceQtyMinHT=Mindestmengenpreis (netto) Percentage=Prozentangabe -Total=Total -SubTotal=Zwischensumme -TotalHTShort=Nettosumme TotalHTShortCurrency=Totalbetrag (In Währung) TotalTTCShort=Totalbetrag (inkl. MwSt.) TotalHT=Totalbetrag TotalHTforthispage=Totalbetrag für diese Seite Totalforthispage=Total für diese Seite -TotalTTC=Bruttosumme TotalTTCToYourCredit=Bruttosumme TotalVAT=MwSt. TotalLT1=Gesamte MwSt. 2 TotalLT2=Gesamte MwSt. 3 -TotalLT1ES=Summe RE -TotalLT2ES=Summe IRPF -HT=Netto -TTC=Brutto VAT=MwSt. -VATs=Mehrwertsteuern -LT1ES=RE -LT2ES=EKSt. -VATRate=Steuersatz -Average=Durchschnitt -Sum=Summe -Delta=Delta -Module=Modul -Option=Option -List=Liste -FullList=Vollständige Liste -Statistics=Statistik -OtherStatistics=Weitere Statistiken -Status=Status -Favorite=Favorit -ShortInfo=Info. Ref=Nummer -ExternalRef=Externe-ID -RefSupplier=Lieferanten-Nr. RefPayment=Zahlungs-Nr. -CommercialProposalsShort=Angebote -Comment=Kommentar -Comments=Kommentare ActionsToDo=unvollständige Ereignisse ActionsToDoShort=Zu erledigen -ActionsDoneShort=Erledigt -ActionNotApplicable=Nicht anwendbar ActionRunningNotStarted=Nicht begonnen -ActionRunningShort=In progress -ActionDoneShort=Abgeschlossen -ActionUncomplete=unvollständig -CompanyFoundation=Firma oder Institution ContactsForCompany=Ansprechpartner/Adressen dieses Geschäftspartners ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Geschäftspartner AddressesForCompany=Adressen für den Geschäftspartner ActionsOnCompany=Ereignisse zu diesem Geschäftspartner -ActionsOnMember=Aktionen zu diesem Mitglied -NActionsLate=%s verspätet -RequestAlreadyDone=Anfrage bereits bekannt -Filter=Filter -FilterOnInto=Suchkriterium '%s' ist in den Feldern %s -RemoveFilter=Filter entfernen -ChartGenerated=Diagramm erstellt -ChartNotGenerated=Diagramm nicht erstellt -GeneratedOn=Erstellt am %s Generate=Erstelle -Duration=Dauer -TotalDuration=Gesamtdauer -Summary=Zusammenfassung -DolibarrStateBoard=Statistik -DolibarrWorkBoard=Aufgabenübersicht -Available=Verfügbar -NotYetAvailable=Noch nicht verfügbar -NotAvailable=Nicht verfügbar -Categories=Suchwörter/Kategorien -Category=Suchwort/Kategorie -By=Durch -From=Von -to=An -and=und -or=oder -Other=Andere -Others=Andere -OtherInformations=Zusatzinformationen -Quantity=Menge -Qty=Anz. -ChangedBy=Geändert von -ApprovedBy=genehmigt von -ApprovedBy2=Genehmige von (zweite Genehmigung) -Approved=genehmigt Refused=zurückgewiesen -ReCalculate=Neuberechnung -ResultKo=Fehlschlag -Reporting=Berichterstattung -Reportings=Berichte -Draft=Entwurf -Drafts=Entwürfe Validated=Freigegeben -Opened=Opened -New=Neu -Discount=Rabatt -Unknown=Unbekannt -General=Allgemein +Opened=Offen Size=Grösse -Received=Erhalten -Paid=Bezahlt -Topic=Thema ByCompanies=Von Geschäftspartnern -ByUsers=Von Benutzern -Links=Links -Link=Link -Rejects=Ablehnungen -Preview=Vorschau -NextStep=Nächster Schritt -Datas=Daten -None=Keine -NoneF=Keine -Late=Verspätet LateDesc=Die anzahl Tage die einen Datensatz verspätet markiert, hängt von ihren Einstellungen ab. Fragen sie den Administrator umd die Einstellung unter Home-Setup-Alerts zu ändern. -Photo=Bild -Photos=Bilder -AddPhoto=Bild hinzufügen -DeletePicture=Bild löschen -ConfirmDeletePicture=Bild wirklich löschen? -Login=Anmeldung -CurrentLogin=Aktuelle Anmeldung -EnterLoginDetail=Enter login details -January=Januar -February=Februar -March=März -April=April -May=Mai -June=Juni -July=Juli -August=August -September=September -October=Oktober -November=November -December=Dezember -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=Mai -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Okt -NovemberMin=Nov -DecemberMin=Dez -Month01=Januar -Month02=Februar -Month03=März -Month04=April -Month05=Mai -Month06=Juni -Month07=Juli -Month08=August -Month09=September -Month10=Oktober -Month11=November -Month12=Dezember -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mär -MonthShort04=Apr -MonthShort05=Mai -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Okt -MonthShort11=Nov -MonthShort12=Dez -AttachedFiles=Angehängte Dateien und Dokumente -FileTransferComplete=Datei wurde erfolgreich hochgeladen -DateFormatYYYYMM=MM-YYYY -DateFormatYYYYMMDD=DD-MM-YYYY -DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS -ReportName=Berichtsname -ReportPeriod=Berichtszeitraum -ReportDescription=Beschreibung -Report=Bericht Keyword=Stichwort -Origin=Origin -Legend=Legende -Fill=Eintragen -Reset=Zurücksetzen -File=Datei -Files=Dateien -NotAllowed=Nicht erlaubt -ReadPermissionNotAllowed=Sie haben keine Berechtigung -AmountInCurrency=Betrag in %s -Example=Beispiel -Examples=Beispiele -NoExample=Kein Beispiel -FindBug=Fehler melden NbOfThirdParties=Anzahl der Geschäftspartner -NbOfLines=Anzahl der Positionen -NbOfObjects=Anzahl der Objekte NbOfObjectReferers=Anzahl verknüpfter Objekte Referers=Verknüpfte Objekte -TotalQuantity=Gesamtmenge -DateFromTo=Von %s bis %s -DateFrom=Von %s -DateUntil=Bis %s -Check=Prüfen Uncheck=nicht gewählt -Internal=Intern -External=Extern -Internals=Interne -Externals=Externe -Warning=Warnung -Warnings=Warnungen -BuildDoc=Erstelle Doc -Entity=Entität -Entities=Entitäten -CustomerPreview=Kundenvorschau -SupplierPreview=Lieferantenvorschau -ShowCustomerPreview=Zeige Kundenvorschau -ShowSupplierPreview=Zeige Lieferantenvorschau -RefCustomer=Ihr Zeichen -Currency=Währung -InfoAdmin=Hinweise für Administratoren -Undo=Rückgängig -Redo=Wiederherstellen -ExpandAll=Alle ausklappen -UndoExpandAll=Ausklappen rückgängig machen -Reason=Grund -FeatureNotYetSupported=Diese Funktion wird (noch) nicht unterstützt CloseWindow=Fenster schliessen -Response=Antwort -Priority=Wichtigkeit -SendByMail=Per E-Mail versenden -MailSentBy=E-Mail Absender -TextUsedInTheMessageBody=E-Mail Text SendAcknowledgementByMail=Bestätigungsemail senden -EMail=E-Mail -NoEMail=Keine E-Mail -Email=E-Mail NoMobilePhone=Kein Mobiltelefon -Owner=Eigentümer -FollowingConstantsWillBeSubstituted=Nachfolgende Konstanten werden durch entsprechende Werte ersetzt. -Refresh=Aktualisieren -BackToList=Zurück zur Liste -GoBack=Zurück -CanBeModifiedIfOk=Änderung möglich falls gültig -CanBeModifiedIfKo=Änderung möglich falls ungültig -ValueIsValid=Der Wert ist gültig -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Wert erfolgreich geändert -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatischer Code -FeatureDisabled=Funktion deaktiviert -MoveBox=Box verschieben -Offered=angeboten -NotEnoughPermissions=Ihre Berechtigungen reichen hierfür nicht aus -SessionName=Sitzungsname -Method=Methode -Receive=Erhalten -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Aktueller Wert -PartialWoman=Teilweise -TotalWoman=Vollständig -NeverReceived=Nie erhalten -Canceled=Storniert -YouCanChangeValuesForThisListFromDictionarySetup=Sie können die Listenoptionen in den Wörterbuch-Einstellungen anpassen YouCanSetDefaultValueInModuleSetup=Standardwerte für neue Datensätzen können im Modulsetup eingestellt werden -Color=Farbe -Documents=Verknüpfte Dokumente -Documents2=Dokumente -UploadDisabled=Upload deaktiviert -MenuECM=Dokumente -MenuAWStats=Statistiken -MenuMembers=Mitglieder -MenuAgendaGoogle=Google-Agenda -ThisLimitIsDefinedInSetup=Gesetzte Dolibarr-Limits (Menü Start-Einstellungen-Sicherheit): %s Kb, PHP Limit: %s Kb -NoFileFound=Keine Dokumente in diesem Verzeichnis -CurrentUserLanguage=Aktuelle Benutzersprache CurrentTheme=Aktuelle Oberfläche -CurrentMenuManager=Aktuelle Menüverwaltung -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Deaktivierte Module -For=Für -ForCustomer=Für Kunden -Signature=E-Mail-Signatur -DateOfSignature=Date of signature -HidePassword=Sichere Passworteingabe (Zeichen nicht angezeigt) -UnHidePassword=Passwort in Klartext anzeigen -Root=Stammordner -Informations=Informationen -Page=Seite -Notes=Hinweise -AddNewLine=Neue Zeile hinzufügen -AddFile=Datei hinzufügen -FreeZone=Freier Text FreeLineOfType=Freitext vom Typ -CloneMainAttributes=Objekt mit Haupteigenschaften duplizieren -PDFMerge=PDFs verbinden -Merge=Verbinden -PrintContentArea=Zeige Druckansicht für Seiteninhalt -MenuManager=Menüverwaltung -WarningYouAreInMaintenanceMode=Achtung: Die Anwendung befindet sich im Wartungsmodus und kann derzeit nur von Benutzer %s verwendet werden. -CoreErrorTitle=Systemfehler -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. CreditCard=Kreditkarte -FieldsWithAreMandatory=Felder mit %s sind Pflichtfelder FieldsWithIsForPublic=Felder mit %s sind für Mitglieder öffentlich sichtbar. Über die "Öffentlich"-Checkbox können Sie dies ändern. -AccordingToGeoIPDatabase=(nach GeoIP-Auflösung) -Line=Zeile -NotSupported=Nicht unterstützt -RequiredField=Pflichtfeld -Result=Ergebnis -ToTest=Test -ValidateBefore=Vor Verwendung dieser Funktion müssen Sie die Karte überprüfen -Visibility=Sichtbarkeit -Private=Privat -Hidden=Versteckt -Resources=Ressourcen -Source=Quelle -Prefix=Präfix -Before=Davor -After=Danach -IPAddress=IP Adresse -Frequency=Frequenz -IM=Instant Messaging -NewAttribute=Neues Attribut -AttributeCode=Attribut Code -URLPhoto=URL für Foto/Bild -SetLinkToAnotherThirdParty=Link zu einem anderen Partner -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link zur Bestellung -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Entwurf erstellen -SetToDraft=Auf Entwurf zurücksetzen -ClickToEdit=Klicken zum Bearbeiten -ObjectDeleted=Objekt %s gelöscht -ByCountry=Nach Land -ByTown=Nach Ort -ByDate=Nach Datum ByMonthYear=Von Monat / Jahr -ByYear=Bis zum Jahresende -ByMonth=Nach Monat -ByDay=Bei Tag -BySalesRepresentative=Nach Vertriebsmitarbeiter -LinkedToSpecificUsers=Mit Kontakt verknüpft -NoResults=Keine Ergebnisse AdminTools=Adminwerkzeuge -SystemTools=Systemwerkzeuge -ModulesSystemTools=Module Hilfsprogramme -Test=Testen -Element=Element -NoPhotoYet=Noch keine Bilder verfügbar -Dashboard=Startseite -MyDashboard=My dashboard -Deductible=absetzbar -from=von -toward=zu -Access=Zugriff SelectAction=Aktion auswählen -HelpCopyToClipboard=Benutze Ctrl+C für Kopie in Zwischenablage -SaveUploadedFileWithMask=Datei auf dem Server speichern mit dem Namen "%s" (oder "%s") -OriginFileName=Original Dateiname -SetDemandReason=Quelle definieren -SetBankAccount=Bankkonto angeben -AccountCurrency=Kontowährung -ViewPrivateNote=Zeige Hinweise -XMoreLines=%s Zeile(n) versteckt -PublicUrl=Öffentliche URL -AddBox=Box anfügen -SelectElementAndClickRefresh=Wählen Sie einen Eintrag und klicken Sie aktualisieren -PrintFile=Drucke Datei %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken. -Deny=ablehnen -Denied=abgelehnt -ListOfTemplates=Liste der Vorlagen -Gender=Geschlecht -Genderman=männlich -Genderwoman=weiblich -ViewList=Listenansicht -Mandatory=Pflichtfeld -Hello=Hallo Sincerely=Mit freundlichen Grüssen -DeleteLine=Zeile löschen -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=Für die ausgewählten Datensätze waren keine PDF für die Dokumentengenerierung verfügbar -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected MassFilesArea=Bereich für Dateien, die durch Massenaktionen erstellt werden ShowTempMassFilesArea=Bereich für Dateien anzeigen, die durch Massenaktionen erstellt wurden -RelatedObjects=Verknüpfte Objekte ClassifyBilled=Verrechnet Progress=Fortschritt -ClickHere=Hier klicken -FrontOffice=Front office BackOffice=Dolibarr -View=View -Export=Export -Exports=Exporte -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Verschiedenes Calendar=Kalender -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiskalisches Jahr -# Week day -Monday=Montag -Tuesday=Dienstag -Wednesday=Mittwoch -Thursday=Donnerstag -Friday=Freitag -Saturday=Samstag -Sunday=Sonntag -MondayMin=Mo -TuesdayMin=Di -WednesdayMin=Mi -ThursdayMin=Do -FridayMin=Fr -SaturdayMin=Sa -SundayMin=So -Day1=Montag -Day2=Dienstag -Day3=Mittwoch -Day4=Donnerstag -Day5=Freitag -Day6=Samstag -Day0=Sonntag -ShortMonday=M ShortTuesday=D ShortWednesday=M ShortThursday=D -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Wähle E-Mail-Vorlage -SetRef=Set Ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=Kein Ergebnis gefunden Select2Enter=Eingabe -Select2MoreCharacter=oder mehr Zeichen -Select2MoreCharacters=oder mehr Zeichen -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Weitere Ergebnisse werden geladen ... -Select2SearchInProgress=Suche läuft ... SearchIntoThirdparties=Drittparteien -SearchIntoContacts=Kontakte -SearchIntoMembers=Mitglieder -SearchIntoUsers=Benutzer -SearchIntoProductsOrServices=Produkte oder Dienstleistungen -SearchIntoProjects=Projekte -SearchIntoTasks=Aufgaben -SearchIntoCustomerInvoices=Kundenrechnungen -SearchIntoSupplierInvoices=Lieferantenrechnungen -SearchIntoCustomerOrders=Kundenaufträge -SearchIntoSupplierOrders=Lieferantenbestellungen SearchIntoCustomerProposals=Angebote Kunde -SearchIntoSupplierProposals=Angebote Lieferant SearchIntoInterventions=Arbeitseinsätze -SearchIntoContracts=Verträge SearchIntoCustomerShipments=Kundenlieferungen SearchIntoExpenseReports=Spesenrapporte SearchIntoLeaves=Ferien - -BulkActions=Bulk actions diff --git a/htdocs/langs/de_CH/projects.lang b/htdocs/langs/de_CH/projects.lang index 37d6bcbca4f..60fd8444198 100644 --- a/htdocs/langs/de_CH/projects.lang +++ b/htdocs/langs/de_CH/projects.lang @@ -18,5 +18,4 @@ ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt CloneTaskFiles=Aufgabe (n) clonen beigetreten Dateien (falls Aufgabe (n) geklont) ProjectReferers=Verknüpfte Objekte ResourceNotAssignedToTheTask=Nicht der Aufgabe zugewiesen -OpenedProjectsByThirdparties=Offene Projekte nach Geschäftspartner OpportunityPonderatedAmount=Verkaufschancen geschätzer Betrag diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 991f4b2dc82..04106060d16 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -13,7 +13,7 @@ ThisProduct=Dieses Produkt DefaultForService=Standard für Leistung DefaultForProduct=Standard für Produkt CantSuggest=Kann keines vorschlagen -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s +AccountancySetupDoneFromAccountancyMenu=Die wichtigste Teil der Konfiguration der Buchhaltung aus dem Menü %s wurde erledigt ConfigAccountingExpert=Konfiguration des Experten-Buchhaltungsmoduls Journalization=Journalisieren Journaux=Journale @@ -26,37 +26,45 @@ InvoiceLabel=Rechnungsanschrift OverviewOfAmountOfLinesNotBound=Übersicht über die Anzahl der nicht an ein Buchhaltungskonto zugeordneten Zeilen OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits an ein Buchhaltungskonto zugeordneten Zeilen OtherInfo=Zusatzinformationen +DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen +ConfirmDeleteCptCategory=Soll dieses Buchhaltungskonto wirklich aus der Gruppe entfernt werden? AccountancyArea=Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... +AccountancyAreaDescActionOnce=Die folgenden Aktionen werden üblicherweise nur ein Mal ausgeführt, oder jährlich... AccountancyAreaDescActionOnceBis=Die nächsten Schritte sollten getan werden, um Ihnen in Zukunft Zeit zu sparen, indem Sie Ihnen das korrekte Standardbuchhaltungskonto vorschlagen, wenn Sie die Journalisierung (Schreiben des Buchungsjournal und des Hauptbuchs) machen. -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... +AccountancyAreaDescActionFreq=Die folgende Aktionen werden in der Regel jeden Monat, Woche oder Tag für sehr großes Unternehmen durchgeführt ... + +AccountancyAreaDescJournalSetup=SCHRITT %s: Buchhaltungsjournal erstellen oder kontrollieren via Menü %s AccountancyAreaDescChartModel=SCHRITT %s: Erstellen Sie ein Modell des Kontenplans im Menü %s AccountancyAreaDescChart=SCHRITT %s: Erstellen oder überprüfen des Inhalts Ihres Kontenplans im Menü %s -AccountancyAreaDescBank=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Bankkonten und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Dazu gehen Sie auf die Karte jedes Finanzkontos. Sie können beginnen bei der Seite %s. -AccountancyAreaDescVat=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Steuersatz und Buchhaltungskonto erstellt wurde. Vervollständigen Sie die fehlenden Zuordnungen. Sie können Buchhaltungskonten zu verwenden für jede MwSt. festlegen, von der Seite %s. -AccountancyAreaDescExpenseReport=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Arten der Spesenabrechnung und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Sie können Buchhaltungskonten zur Verwendung für jede MwSt. festlegen, von der Seite %s. -AccountancyAreaDescSal=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Lohn-Zahlungen und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Dazu können Sie den Menüeintrag %s verwenden. -AccountancyAreaDescContrib=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen besondere Aufwendungen (Sonstige Steuern) und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Dafür können Sie das Menü %s verwenden. -AccountancyAreaDescDonation=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Spenden und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Über das Menü %s können Sie das entsprechende Konto festlegen. -AccountancyAreaDescMisc=SCHRITT %s: Überprüfen der Standard-Zuordnung zwischen verschiedener Transaktionszeilen und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Dafür können Sie das Menü %s verwenden. -AccountancyAreaDescProd=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Produkt/Dienstleistung und dem Buchhaltungskonto erstellt wurde. Vervollständigen Sie die fehlenden Zuordnungen. Dazu können Sie den Menüeintrag %s verwenden. -AccountancyAreaDescLoan=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen Darlehenszahlungen und dem Buchhaltungskonto erstellt wurden. Vervollständigen Sie die fehlenden Zuordnungen. Dafür können Sie das Menü %s verwenden. -AccountancyAreaDescCustomer=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen den Ausgangs-Rechnungspositionen und dem Buchhaltungskonto erstellt wurden, so wird die Anwendung in der Lage sein, mit einem Klick die Transaktionen in das Hauptbuch zu journalisieren. Vervollständigen Sie die fehlenden Zuordnungen. Dazu können Sie das Menü %s verwenden. -AccountancyAreaDescSupplier=SCHRITT %s: Überprüfen Sie die Zuordnung die zwischen den Eingangs-Rechnungspositionen und dem Buchhaltungskonto erstellt wurden, so wird die Anwendung in der Lage sein, mit einem Klick die Transaktionen in das Hauptbuch zu journalisieren. Vervollständigen Sie die fehlenden Zuordnungen. Dazu können Sie das Menü %s verwenden. -AccountancyAreaDescWriteRecords=SCHRITT %s: Schreiben Sie die Transaktionen in das Hauptbuch. Dazu gehen Sie in jedes Journal, und klicken Sie auf die Schaltfläche "Buchungen ins Hauptbuch übernehmen" +AccountancyAreaDescVat=SCHRITT %s: Definition des Buchhaltungskonto für jeden Steuersatz. Kann im Menü %s geändert werden. +AccountancyAreaDescExpenseReport=SCHRITT %s: Definition der Buchhaltungskonten für die verschiedenen Arten der Spesenabrechnung. Kann im Menü %s geändert werden. +AccountancyAreaDescSal=SCHRITT %s: Buchhaltungskonto für Lohnzahlungen definieren. Kann im Menü %s geändert werden. +AccountancyAreaDescContrib=SCHRITT %s: Definition der Buchhaltungskonten für besondere Aufwendungen (Sonstige Steuern) . Kann im Menü %s geändert werden. +AccountancyAreaDescDonation=SCHRITT %s: Definition der Buchhaltungskonten für Spenden. Kann im Menü %s geändert werden. +AccountancyAreaDescMisc=SCHRITT %s: Buchhaltungskonto für nicht zugeordnete Buchungen. Kann im Menü %s geändert werden. +AccountancyAreaDescLoan=SCHRITT %s: Definitiond der Buchhaltungskonten für Darlehenszahlungen. Kann im Menü %s geändert werden. +AccountancyAreaDescBank=SCHRITT %s: Definition der Buchhaltungskonten für jede Bank und Finanzkonten. Gehen Sie zum jeweiligen Finanzkonto. Kann im Menü %s geändert werden. +AccountancyAreaDescProd=SCHRITT %s: Definition der Buchhaltungskonten für Ihre Produkte/Dienstleistungen. Kann im Menü %s geändert werden. + +AccountancyAreaDescBind=SCHRITT %s: Kontrolle der Zuweisung zwischen bestehenden %s Buchungszeilen und Konten ist erledigt damit die Anwendung die übernahme der Buchungen ins Hauptbuch mit einem klick erfolgen kann. Wir im Menü %s eingestellt. +AccountancyAreaDescWriteRecords=SCHRITT %s: Schreiben Sie die Buchungen in das Hauptbuch. Dazu gehen Sie ins Menü %s, und klicken Sie auf die Schaltfläche %s AccountancyAreaDescAnalyze=SCHRITT %s: Vorhandene Transaktionen hinzufügen oder bearbeiten sowie Berichte und Exporte generieren. AccountancyAreaDescClosePeriod=SCHRITT %s: Schließen Sie die Periode, damit wir in Zukunft keine Veränderungen vornehmen können. MenuAccountancy=Buchführung Selectchartofaccounts=Kontenplan wählen -ChangeAndLoad=Change and load +ChangeAndLoad=Ändere und Lade Addanaccount=Fügen Sie ein Buchhaltungskonto hinzu AccountAccounting=Buchhaltungskonto AccountAccountingShort=Konto +SubledgerAccount=Nebenbuch Konto +subledger_account=Nebenbuch Konto +ShowAccountingAccount=Buchhaltungskonten anzeigen +ShowAccountingJournal=Buchhaltungsjournal anzeigen AccountAccountingSuggest=Buchhaltungskonto Vorschlag MenuDefaultAccounts=Standardkonten MenuVatAccounts=Mwst. Konten @@ -76,16 +84,16 @@ Bookkeeping=Hauptbuch AccountBalance=Saldo Sachkonto CAHTF=Einkaufssume pro Lieferant ohne Steuer -TotalExpenseReport=Total expense report +TotalExpenseReport=Gesamtausgaben Bericht InvoiceLines=Zeilen der Rechnungen zu verbinden InvoiceLinesDone=Verbundene Rechnungszeilen -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports +ExpenseReportLines=Zeilen von Spesenabrechnungen zu verbinden +ExpenseReportLinesDone=Gebundene Zeile von Spesenabrechnungen IntoAccount=mit dem Buchhaltungskonto verbundene Zeilen Ventilate=zusammenfügen -LineId=Id line +LineId=Zeile ID Processing=Bearbeitung EndProcessing=Prozess abgeschlossen. SelectedLines=Gewählte Zeilen @@ -97,15 +105,15 @@ NotVentilatedinAccount=Nicht zugeordnet, zu einem Buchhaltungskonto XLineSuccessfullyBinded=%s Produkte/Leistungen erfolgreich an ein Buchhaltungskonto zugeordnet XLineFailedToBeBinded=%s Produkte/Leistungen waren an kein Buchhaltungskonto zugeordnet -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Anzahl der Elemente, die beim Kontieren angezeigt werden (empfohlen Max.: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Beginnen Sie die Sortierung der Seite "Link zu realisieren“ durch die neuesten Elemente +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Beginnen die Sortierung auf der Seite "Zuordnung erledigt " durch die neuesten Elemente\n\n\n\n\n\n\n78/5000\n\nStarten Sie die „made-Links“ Seite durch neuere Elemente Sortier -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Länge des allgemeinen Buchführungskonto -ACCOUNTING_LENGTH_AACCOUNT=Länge von den Partner Buchhaltungskonten -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_DESCRIPTION=Länge für die Anzeige der Beschreibung von Produkten und Leistungen in Listen (optimal = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Länge für die Anzeige der Beschreibung von Produkte und Leistungen in den Listen (Ideal = 50) +ACCOUNTING_LENGTH_GACCOUNT=Länge der Kontonummern der Buchhaltung (Wenn dieser Wert auf 6 gesetzt ist, wird Konto '706' als '706000' am Bildschirm angezeigt) +ACCOUNTING_LENGTH_AACCOUNT=Länge von den Partner Buchhaltungskonten (Wenn dieser Wert auf 6 gesetzt ist, wird das Konto '401' als '401000' am Bildschirm angezeigt) +ACCOUNTING_MANAGE_ZERO=Verwalten der Null am Ende eines Buchhaltungskontos. In einigen Ländern notwendig (zB. Schweiz). Standardmäßig deaktiviert. Wenn ausgeschaltet, können die folgenden 2 Parameter konfigurieren werden um virtuelle Nullen anzuhängen BANK_DISABLE_DIRECT_INPUT=Deaktivieren der direkte Aufzeichnung von Transaktion auf dem Bankkonto ACCOUNTING_SELL_JOURNAL=Ausgangsrechnungen @@ -116,12 +124,12 @@ ACCOUNTING_SOCIAL_JOURNAL=Sozial-Journal ACCOUNTING_ACCOUNT_TRANSFER_CASH=Buchhaltungskonten für Transferierung ACCOUNTING_ACCOUNT_SUSPENSE=Buchhaltungskonten in Wartestellung -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations +DONATION_ACCOUNTINGACCOUNT=Buchhaltungskonto für die Buchung von Spenden -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Buchhaltungskonto standardmäßig für die gekauften Produkte (wenn nicht im Produktblatt definiert) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Standard-Buchhaltungskonto für die verkauften Produkte (wenn nicht anders im Produktblatt definiert) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Standard-Buchhaltungskonto für die gekauften Leistungen (wenn nicht anders im Produktblatt definiert) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Standard-Buchhaltungskonto für die verkauften Leistungen (wenn nicht anders im Produktblatt definiert) Doctype=Dokumententyp Docdate=Datum @@ -132,19 +140,19 @@ Sens=Zweck Codejournal=Journal NumPiece=Teilenummer TransactionNumShort=Anz. Buchungen -AccountingCategory=Buchhaltungskategorie +AccountingCategory=Gruppen Buchungskonten GroupByAccountAccounting=Gruppieren nach Buchhaltungskonto NotMatch=undefiniert -DeleteMvt=Lösche Hauptbuch Datensätze +DeleteMvt=Zeilen im Hauptbuch löschen DelYear=Jahr zu entfernen DelJournal=Journal zu entfernen -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvt=Es werden alle Zeilen des Hauptbuchs für Jahr und/oder eines bestimmten Journals gelöscht. Mindestens ein Kriterium ist erforderlich. ConfirmDeleteMvtPartial=Dadurch wird die ausgewählte(n) Zeile(n) aus dem Hauptbuch gelöscht -DelBookKeeping=Löschen Sie den Eintrag im Hauptbuch -FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal +DelBookKeeping=Eintrag im Hauptbuch löschen +FinanceJournal=Finanzjournal +ExpenseReportsJournal=Spesenabrechnungsjournal DescFinanceJournal=Finanzjournal inklusive aller Arten von Zahlungen mit Bankkonto -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=Dies ist eine Ansicht der Datensätze, die an ein Produkt- / Dienstleistungskonto gebunden sind und in das Hauptbuch übernommen werden können. VATAccountNotDefined=Steuerkonto nicht definiert ThirdpartyAccountNotDefined=Konto für Adresse nicht definiert ProductAccountNotDefined=Konto für Produkt nicht definiert @@ -156,9 +164,9 @@ NewAccountingMvt=Erstelle Transaktion NumMvts=Transaktionsnummer ListeMvts=Liste der Bewegungen ErrorDebitCredit=Soll und Haben können nicht gleichzeitig eingegeben werden - +AddCompteFromBK=Buchhaltungskonten zur Gruppe hinzufügen ReportThirdParty=Zeige Partner -DescThirdPartyReport=Konsultieren Sie hier die Liste der Kunden- und Lieferantenadressen und ihre Buchhaltungskonten +DescThirdPartyReport=Kontieren Sie hier die Liste der Kunden und Lieferanten zu Ihrem Buchhaltungs-Konten ListAccounts=Liste der Abrechnungskonten Pcgtype=Kontenklasse @@ -167,18 +175,18 @@ Pcgsubtype=Unterkontenklasse TotalVente=Verkaufssumme ohne Steuer TotalMarge=Gesamt-Spanne -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Kontieren Sie hier in die Liste Kundenrechnungszeilen gebunden (oder nicht), zu ihren Erlös Buchhaltungs-Konten +DescVentilMore=In den meisten Fällen, wenn Sie vordefinierte Produkte oder Dienstleistungen verwenden und Sie die Kontonummer stellen auf der Produkt / Service-Karte, wird die Anwendung in der Lage sein, alle Kontierungen zwischen den Rechnungspositionen und dem Buchhaltungskonto auf Ihrer Konto zu machen, nur in ein Klick mit der Taste "%s" . Wenn das Buchhaltungs-Konto nicht auf Produkt / Service-Karten festgelegt wurde oder wenn Sie noch ein paar Zeilen hat nicht auf jedes Konto kontiert, werden Sie manuelle Kontierungen in dem Menü " %s " machen müssen. +DescVentilDoneCustomer=Kontieren Sie hier die Liste der Kundenrechnungszeilen zu einem Buchhaltungs-Konto +DescVentilTodoCustomer=Kontiere nicht bereits kontierte Rechnungspositionen mit einem Buchhaltung Erlös-Konto +ChangeAccount=Ändere das Artikel Buchhaltungskonto für die ausgewählten Zeilen mit dem folgenden Buchhaltungskonto: Vide=- -DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account -DescVentilDoneSupplier=Konsultieren Sie hier die Liste der Zeilen der Rechnungs-Kunden und deren Abrechnungskonto -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilSupplier=Kontieren Sie hier die Liste der Lieferantenrechnungszeilen gebunden oder nicht, zu einem Buchhaltungs-Konto +DescVentilDoneSupplier=Kontieren Sie hier die Liste der Zeilen von Lieferantenrechnungen zu ihren Buchhaltungs-Konten +DescVentilTodoExpenseReport=Binde Spesenabrechnungspositionen die nicht gebunden mit einem Buchhaltungs-Konto +DescVentilExpenseReport=Kontieren Sie hier in der Liste Spesenabrechnungszeilen gebunden (oder nicht) zu Ihren Buchhaltungs-Konten +DescVentilExpenseReportMore=Wenn Sie beim Buchhaltungskonto den Typen Spesenabrechnungpositionen eingestellt haben, wird die Applikation alle Kontierungen zwischen den Spesenabrechnungspositionen und dem Buchhaltungskonto von Ihrem Kontenrahmen verwenden, durch einen einzigen Klick auf die Schaltfläche "%s" . Wenn kein Konto definiert wurde unter Stammdaten / Gebührenarten oder wenn Sie einige Zeilen nicht zu irgendeinem automatischen Konto gebunden haben, müssen Sie die Zuordnung manuell aus dem Menü " %s “ machen. +DescVentilDoneExpenseReport=Hier finden Sie die Liste der Aufwendungsposten und ihr Gebühren Buchhaltungskonto ValidateHistory=automatisch verbinden AutomaticBindingDone=automatische Zuordnung erledigt @@ -187,15 +195,27 @@ ErrorAccountancyCodeIsAlreadyUse=Fehler, Sie können dieses Buchhaltungskonto ni MvtNotCorrectlyBalanced=Der Saldo der Buchung ist nicht ausgeglichen. Haben = %s. Soll = %s FicheVentilation=Zuordnungs Karte GeneralLedgerIsWritten=Operationen werden ins Hauptbuch geschrieben -GeneralLedgerSomeRecordWasNotRecorded=Einige der Buchungen konnten nicht verbucht werden. +GeneralLedgerSomeRecordWasNotRecorded=Einige der Buchungen konnten nicht übernommen werden. Es gab keine Fehler, vermutlich wurden diese Buchungen schon früher übernommen. NoNewRecordSaved=Keine neuen Einträge gespeichert ListOfProductsWithoutAccountingAccount=Liste der Produkte, die nicht an ein Buchhaltungskonto gebunden sind ChangeBinding=Ändern der Zuordnung ## Admin ApplyMassCategories=Massenaktualisierung der Kategorien -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed +AddAccountFromBookKeepingWithNoCategories=Anfügen bereits genutzter Konten ohne Gruppen +CategoryDeleted=Die Gruppe für das Buchhaltungskonto wurde entfernt +AccountingJournals=Buchhaltungsjournale +AccountingJournal=Buchhaltungsjournal +NewAccountingJournal=Neues Buchhaltungsjournal +ShowAccoutingJournal=Buchhaltungsjournal anzeigen +Code=Code +Nature=Art +AccountingJournalType1=Verschiedene Aktionen +AccountingJournalType2=Verkauf +AccountingJournalType3=Einkauf +AccountingJournalType4=Bank +AccountingJournalType9=Hat neue +ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet ## Export Exports=Exporte @@ -211,23 +231,24 @@ Modelcsv_ciel=Export zu Sage Ciel Compta oder Compta Evolution Modelcsv_quadratus=Export zu Quadratus QuadraCompta Modelcsv_ebp=Export zu EBP Modelcsv_cogilog=Export zu Cogilog -ChartofaccountsId=Chart of accounts Id +Modelcsv_agiris=Nach Agiris exportieren (Test) +ChartofaccountsId=Kontenplan ID ## Tools - Init accounting account on product / service InitAccountancy=Rechnungswesen initialisieren -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. +InitAccountancyDesc=Auf dieser Seite kann ein Sachkonto für Artikel und Dienstleistungen vorgegeben werden, wenn noch kein Buchhaltungs-Konto für Ein- und Verkäufe definiert ist. DefaultBindingDesc=Diese Seite kann verwendet werden, um ein Standardkonto festzulegen, das für die Verknüpfung von Transaktionsdatensätzen zu Lohnzahlungen, Spenden, Steuern und Mwst. verwendet werden soll, wenn kein bestimmtes Konto angegeben wurde. Options=Optionen OptionModeProductSell=Modus Verkauf OptionModeProductBuy=Modus Einkäufe -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. +OptionModeProductSellDesc=Alle Artikel mit Sachkonten für Vertrieb anzeigen +OptionModeProductBuyDesc=Alle Artikel mit Sachkonten für Einkauf anzeigen CleanFixHistory=Bereinige Buchhaltungs-Konten von Positionen, die nicht in Kontenplänen existieren. CleanHistory=Aller Zuordungen für das selektierte Jahr zurücksetzen WithoutValidAccount=Mit keinem gültigen dedizierten Konto WithValidAccount=Mit gültigen dedizierten Konto -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +ValueNotIntoChartOfAccount=Dieser Wert für das Buchhaltungs-Konto existiert nicht im Kontenplan ## Dictionary Range=Bereich von Sachkonten @@ -235,11 +256,12 @@ Calculated=berechnet Formula=Formel ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Einige zwingende Einstellungen wurden nicht gemacht, bitte vervollständigen sie die Einrichtung +ErrorNoAccountingCategoryForThisCountry=Keine Buchhaltung Kategorie für das Land %s verfügbar (siehe Startseite - Einstellungen - Stammdaten) ExportNotSupported=Das eingestellte Exportformat wird von deiser Seite nicht unterstützt BookeppingLineAlreayExists=Datensätze existieren bereits in der Buchhaltung - +NoJournalDefined=Kein Journal definiert Binded=Zeilen verbunden ToBind=Zeilen für Zuordnung -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warnung: Dieser Bericht basiert nicht auf dem Hauptbuch, wodurch keine im Hauptbuch veränderten Buchungen berücksichtigt werden. In einer neuer Version wird das behoben werden. diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 7c78b5644c5..7beccc23d52 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -9,20 +9,20 @@ VersionDevelopment=Entwicklung VersionUnknown=Unbekannt VersionRecommanded=Empfohlen FileCheck=Dateien Integritätsprüfung -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +FileCheckDesc=Dieses Tool ermöglicht es Ihnen, die Integrität von Dateien und das Setup der Anwendung zu überprüfen, indem jede Datei mit den offiziellen Versionen verglichen wird. Der Wert einiger Setup-Konstanten kann auch überprüft werden. Sie können dieses Tool z.B. verwenden, um festzustellen, ob Dateien von einem Hacker geändert wurden. +FileIntegrityIsStrictlyConformedWithReference=Datei-Integrität entspricht genau der Referenz. +FileIntegrityIsOkButFilesWereAdded=Datei-Integrität bestätigt, allerdings wurden zusätzliche Dateien gefunden. +FileIntegritySomeFilesWereRemovedOrModified=Datei-Integrität konnte NICHT bestätigt werden. Dateien wurden modifiziert, entfernt oder zugefügt. +GlobalChecksum=globale Prüfsumme +MakeIntegrityAnalysisFrom=Mache Integrität Analyse von Anwendungsdateien aus +LocalSignature=Eingebettete lokale Signatur (weniger zuverlässig) +RemoteSignature=Remote entfernte Unterschrift (mehr zuverlässig) FilesMissing=Fehlende Dateien FilesUpdated=Dateien ersetzt -FilesModified=Modified Files -FilesAdded=Added Files +FilesModified=Geänderte Dateien +FilesAdded=Angehängte Dateien FileCheckDolibarr=Überprüfen Sie die Integrität von Anwendungsdateien -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package +AvailableOnlyOnPackagedVersions=Die lokale Datei für die Integritätsprüfung ist nur dann verfügbar, wenn die Anwendung von einem offiziellen Paket installiert ist XmlNotFound=Xml Integrität Datei der Anwendung ​​nicht gefunden SessionId=ID Session SessionSaveHandler=Handler für Sitzungsspeicherung @@ -48,6 +48,7 @@ InternalUsers=Interne Benutzer ExternalUsers=Externe Benutzer GUISetup=Anzeige SetupArea=Einstellungen - Übersicht +UploadNewTemplate=Neue Vorlage(n) hochladen FormToTestFileUploadForm=Formular für das Testen von Datei-Uploads (je nach Konfiguration) IfModuleEnabled=Anmerkung: Ist nur wirksam wenn Modul %s aktiviert ist RemoveLock=Entfernen Sie die Datei %s falls vorhanden, um das Aktualisierungs-Tool auszuführen @@ -64,11 +65,11 @@ ErrorCodeCantContainZero=Fehler, Code darf keinen Wert 0 enthalten DisableJavascript=JavaScript- und Ajax-Funktionen deaktivieren (empfohlen für Blinde und Text-Browser) UseSearchToSelectCompanyTooltip=Wenn Sie eine große Anzahl von Partnern (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante COMPANY_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. UseSearchToSelectContactTooltip=Wenn Sie eine große Anzahl von Kontakten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante CONTACT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) +DelaiedFullListToSelectCompany=Warte auf Tastendruck, bevor der Inhalt der Partner-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Partnern haben). +DelaiedFullListToSelectContact=Warte auf Tastendruck, bevor der Inhalt der Kontakt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Kontakten haben). NumberOfKeyToSearch=Anzahl der Buchstaben um eine Suche auszulösen: %s NotAvailableWhenAjaxDisabled=Nicht verfügbar, wenn Ajax deaktiviert -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +AllowToSelectProjectFromOtherCompany=Bei den Elementen eines Partners, ist es möglich Projekte von anderen Partnern zu verlinken JavascriptDisabled=JavaScript deaktiviert UsePreviewTabs=Vorschautabs verwenden ShowPreview=Vorschau anzeigen @@ -85,7 +86,7 @@ Mask=Maske NextValue=Nächster Wert NextValueForInvoices=Nächster Wert (Rechnungen) NextValueForCreditNotes=Nächster Wert (Gutschriften) -NextValueForDeposit=Nächster Wert (Scheck) +NextValueForDeposit=Nächster Wert (Anzahlung) NextValueForReplacements=Nächster Wert (Ersatz) MustBeLowerThanPHPLimit=Hinweis: Ihre PHP-Einstellungen beschränken die Größe für Dateiuploads auf %s%s NoMaxSizeByPHPLimit=Hinweis: In Ihren PHP-Einstellungen sind keine Größenbeschränkungen hinterlegt @@ -103,7 +104,7 @@ MenuIdParent=übergeordnete Menü-ID DetailMenuIdParent=ID des übergeordneten Menüs (0 für einen Eltern-Menü) DetailPosition=Sortierungsnummer für die Position des Menüpunktes AllMenus=Alle -NotConfigured=Nicht konfiguriert +NotConfigured=Modul/Applikation nicht konfiguriert Active=Aktiv SetupShort=Einstellungen OtherOptions=Andere Optionen @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tausendertrennzeichen Destination=Ziel IdModule=Modul ID IdPermissions=Berechtigungs-ID -Modules=Module LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Länderspezifische Parameter ClientTZ=Zeitzone Kunde (Benutzer) @@ -123,7 +123,8 @@ PHPTZ=Zeitzone der PHP-Version DaylingSavingTime=Sommerzeit (Benutzer) CurrentHour=PHP-Zeit (Server) CurrentSessionTimeOut=Aktuelle Session timeout -YouCanEditPHPTZ=Um eine andere PHP-Zeitzone zu setzen (nicht erforderlich), können Sie versuchen, eine .htaccess-Datei mit einer Zeile wie "SetEnv TZ Europe / Paris" hinzuzufügen. +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Box Boxes=Boxen MaxNbOfLinesForBoxes=Maximale Zeilenanzahl in Boxen\n @@ -185,15 +186,15 @@ EncodeBinariesInHexa=Hexadezimal-Verschlüsselung für Binärdateien IgnoreDuplicateRecords=Doppelte Zeilen Fehler ignorieren (INSERT IGNORE) AutoDetectLang=Automatische Erkennung (Browser-Sprache) FeatureDisabledInDemo=Funktion in der Demoversion deaktiviert -FeatureAvailableOnlyOnStable=Feature only available on official stable versions +FeatureAvailableOnlyOnStable=Diese Funktion steht nur in offiziellen stabilen Versionen zur Verfügung Rights=Berechtigungen BoxesDesc=Boxen sind auf einigen Seiten angezeigte Informationsbereiche. Sie können die Anzeige einer Box einstellen, indem Sie auf die Zielseite klicken und 'Aktivieren' wählen. Zum Ausblenden einer Box klicken Sie einfach auf den Papierkorb. OnlyActiveElementsAreShown=Nur Elemente aus aktiven Module werden angezeigt. -ModulesDesc=Die Module bestimmen, welche Funktionalität in Dolibarr verfügbar ist. Manche Module erfordern zusätzlich Berechtigungen die Benutzern die das Modul nutzen sollen gewährt werden muss, nachdem das Modul aktiviert wurde. \nKlicken Sie auf die Schaltfläche on/off, um ein Modul zu aktivieren. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Sie finden weitere Module auf externen Web-Sites... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. +ModulesDeployDesc=Wenn die Rechte Ihres Dateisystems es zulassen, können Sie mit diesem Werkzeug ein externes Modul installieren. Es wird dann im Reiter %s erscheinen. ModulesMarketPlaces=Suche externe Module ... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +GoModuleSetupArea=Um ein neues Modul zu installieren, gehen Sie auf die Modul-Setup Seite %s. DoliStoreDesc=DoliStore, der offizielle Marktplatz für dolibarr Module/Erweiterungen DoliPartnersDesc=Firmenliste die Kundenspezifische Module oder Funktionen entwickeln. (Hinweis: Jedermann mit PHP Erfahrung kann Kundenspezifische Funktionen für Opensource Projekte Entwickeln) WebSiteDesc=Anbieter für weitere Module... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Datenbankpasswort in der Konfigurationsdatei ver InstrucToEncodePass=Um das Kennwort in der Konfigurationsdatei conf.php verschlüsselt zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="...";
durch
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Um das Kennwort unverschlüsselt (im Klartext) in der Konfigurationsdatei conf.php zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="crypted:...";
durch
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert) -ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass über die Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. aller offenen Rechnungen) nicht mehr funktioniert +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funktion DolibarrLicense=Lizenz Developpers=Entwickler/Mitwirkende @@ -225,22 +226,24 @@ OfficialMarketPlace=Offizieller Marktplatz für Module/Erweiterungen OfficialWebHostingService=Offizielle Web-Hosting-Services (Cloud Hosting) ReferencedPreferredPartners=Bevorzugte Partner OtherResources=Andere Ressourcen +ExternalResources=Externe Resourcen +SocialNetworks=Soziale Netzwerke ForDocumentationSeeWiki=Für Benutzer-und Entwickler-Dokumentation (DOC, ...), FAQs
Werfen Sie einen Blick auf die Dolibarr Wiki:
%s ForAnswersSeeForum=Für alle anderen Fragen, können Sie das Dolibarr Forum:
%s benutzen. HelpCenterDesc1=In diesem Bereich erwartet Sie eine Übersicht von Hilfe und Support-Services für Dolibarr. HelpCenterDesc2=Ein Teil dieses Dienstes sind nur in Englisch verfügbar. CurrentMenuHandler=Aktuelle Menü-Handler MeasuringUnit=Maßeinheit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content +LeftMargin=Linker Rand +TopMargin=Oberer Rand +PaperSize=Papiersorte +Orientation=Orientierung +SpaceX=Leerraum X +SpaceY=Leerraum Y +FontSize=Schriftgröße +Content=Inhalt NoticePeriod=Kündigungsfrist -NewByMonth=New by month +NewByMonth=Neu nach Monat Emails=E-Mails EMailsSetup=E-Mail-Adressen einrichten EMailsDesc=Auf dieser Seite können Sie Ihre PHP-Parameter für den E-Mail-Versand überschreiben. In den meisten Unix/Linux-Umgebungen mit korrekter PHP-Konfiguration sind diese Einstellungen nutzlos. @@ -260,14 +263,14 @@ MAIN_MAIL_EMAIL_STARTTLS= TLS (STARTTLS)-Verschlüsselung verwenden MAIN_DISABLE_ALL_SMS=Alle SMS-Funktionen abschalten (für Test- oder Demozwecke) MAIN_SMS_SENDMODE=Methode zum Senden von SMS MAIN_MAIL_SMS_FROM=Standard Versendetelefonnummer der SMS-Funktion -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) +MAIN_MAIL_DEFAULT_FROMTYPE=E-Mail Absender standardmäßig für den manuellen Versandt (Benutzer E-Mail oder Firmen E-Mail) UserEmail=Email des Benutzers CompanyEmail=Email der Firma FeatureNotAvailableOnLinux=Diese Funktion ist auf Unix-Umgebungen nicht verfügbar. Testen Sie Ihr Programm sendmail lokal. SubmitTranslation=Wenn die Übersetzung der Sprache unvollständig ist oder wenn Sie Fehler finden, können Sie können Sie die entsprechenden Sprachdateien im Verzeichnis langs/%s korrigieren und und anschließend Ihre Änderungen unter www.transifex.com/dolibarr-association/dolibarr/ teilen. SubmitTranslationENUS=Sollte die Übersetzung für eine Sprache nicht vollständig sein oder Fehler beinhalten, können Sie die entsprechenden Sprachdateien im Verzeichnis langs/%s bearbeiten und anschließend Ihre Änderungen mit der Entwicklergemeinschaft auf www.dolibarr.org teilen. ModuleSetup=Moduleinstellung -ModulesSetup=Moduleinstellungen +ModulesSetup=Modul-/Applikationseinstellung ModuleFamilyBase=System ModuleFamilyCrm=Kunden-Beziehungs-Management (CRM) ModuleFamilySrm=Lieferantenmanagement (SRM) @@ -285,29 +288,32 @@ MenuHandlers=Menü-Handler MenuAdmin=Menü-Editor DoNotUseInProduction=Nicht in Produktion nutzen ThisIsProcessToFollow=Hier sind die Schritte des Prozesses: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsAlternativeProcessToFollow=Dies ist ein alternativer Setup-Prozess: StepNb=Schritt %s FindPackageFromWebSite=Finden Sie ein Paket, das die gewünschten Funktionen beinhaltet (zum Beispiel auf der offiziellen Website %s). DownloadPackageFromWebSite=Installationspaket herunterladen (z.B. von offizieller Webseite %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +UnpackPackageInDolibarrRoot=Entpacke die Paketdatei in das Dolibarr Serververzeichnis für externe Module: %s +UnpackPackageInModulesRoot=Um eine externes Modul bereit zu stellen, entpacken Sie die gepackten Dateien in das Serververzeichnis für Module: %s +SetupIsReadyForUse=Modul-Installation abgeschlossen, es muss aber noch aktiviert und konfiguriert werden: %s. +NotExistsDirect=Das alternative Stammverzeichnis ist nicht zu einem existierenden Verzeichnis definiert.
+InfDirAlt=Seit Version 3 ist es möglich, ein alternatives Stammverzeichnis anzugeben. Dies ermöglicht, Erweiterungen und eigene Templates am gleichen Ort zu speichern.
Erstellen Sie einfach ein Verzeichis im Hauptverzeichnis von Dolibarr an (z.B. "custom").
+InfDirExample=
Danach in der Datei conf.php deklarieren
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
Wenn diese Zeilen mit "#" auskommentiert sind, um sie zu aktivieren, einfach das Zeichen "#" entfernen. YouCanSubmitFile=Durch diesen Schritt, können Sie das Paket mit diesem Tool senden: Wähle Modul Datei CurrentVersion=Aktuelle dolibarr-Version CallUpdatePage=Zur Aktualisierung der Daten und Datenbankstrukturen zur Seite %s gehen. LastStableVersion=Letzte stabile Version -LastActivationDate=Latest activation date +LastActivationDate=Datum der letzten Aktivierung +LastActivationAuthor=Benutzer der letzten Aktivierung +LastActivationIP=IP der letzten Aktivierung UpdateServerOffline=Update-Server offline +WithCounter=Zähler verwalten GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:
{000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden.
{000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird.
{000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erforderlich.
{dd} Tag (01 bis 31).
{mm} Monat (01 bis 12).
{yy}, {yyyy} or {y} Jahreszahl 1-, 2- oder 4-stellig.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben.
Leerzeichen sind nicht zulässig.
-GenericMaskCodes4a=Beispiel auf der 99. %s des Partners DieFirma erstellt am 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Beispiel für Partner erstellt am 2007-03-01:
GenericMaskCodes4c=Beispiel für ein Produkt erstellt am 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} ergibt ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX ergibt 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Liefert eine anpassbare Nummer nach vordefiniertem Schema ServerAvailableOnIPOrPort=Server ist verfügbar unter der Adresse %s auf Port %s ServerNotAvailableOnIPOrPort=Server nicht verfügbar unter Adresse %s auf Port %s @@ -369,24 +375,26 @@ Int=Ganzzahl Float=Fließkommazahl DateAndTime=Datum und Uhrzeit Unique=Einmalig -Boolean=Boolean (Kontrollkästchen) +Boolean=Boolean (Ein Kontrollkästchen) ExtrafieldPhone = Telefon ExtrafieldPrice = Preis ExtrafieldMail = E-Mail -ExtrafieldUrl = Url +ExtrafieldUrl = URL ExtrafieldSelect = Wähle Liste ExtrafieldSelectList = Wähle von Tabelle -ExtrafieldSeparator=Trennzeichen +ExtrafieldSeparator=Trennzeichen (kein Feld) ExtrafieldPassword=Passwort +ExtrafieldRadio=Radio button (Nur eine Auswahl möglich) ExtrafieldCheckBox=Kontrollkästchen -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Kontrollkästchen von Tabelle +ExtrafieldCheckBoxFromList=Kontrollkästchen aus Tabelle ExtrafieldLink=Verknüpftes Objekt -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ComputedFormula=Berechnetes Feld +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
...

Um die Liste in Abhängigkeit zu einer anderen zu haben:
1,Wert1|parent_list_code:parent_key
2,Wert2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
... ExtrafieldParamHelpradio=Parameterlisten müssen das Format Schlüssel,Wert haben

zum Beispiel:
1,Wert1
2,Wert2
3,Wert3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpsellist=Die Parameterliste stammt aus einer Tabelle
Syntax: \ntable_name: label_field: id_field::filter
Beispiel: c_typent: libelle:id::filter

Filter kann ein einfacher Test sein (z.B. active=1) um nur aktive Werte anzuzeigen
Benutzen Sie $ID$ für die ID des aktuellen Objekts im Filter
Benutzen Sie $SEL$
Wenn Sie ein SELECT
Benutzen Sie zur Abfrage von Extra-Feldern(Attributen) die extra.fieldcode = ... \n(wo Feldcode ist der Code von extrafield)

um auf einer anderen komplementären Attributliste, die Liste zu haben je c_typent:libelle:id:options_parent_list_code|parent_column:filter
um die Liste zu haben, auf einer anderen Liste abhängig:
c_typent:libelle:id:parent_list_code|parent_column:filter\n +ExtrafieldParamHelpchkbxlst=Die Parameterliste stammt aus einer Tabelle
:\nSyntax: tabellen_name:label_field:id_field::filter
\nBeispiele: c_typent:libelle:id::filter

der Filter kann ein einfacher Test sein(z.B. aktiv=1) um nur die aktiven Werte zu zeigen.
\nBenutzen Sie $ID$ um die ID des aktuellen Objekts im Filter zu nutzen
\nUm ein SELECT in einem Filter zu verwenden, verwenden Sie $SEL$
\nUm in der Abfrage die zusätzlichen Attribute zu filtern, verwenden Sie den Syntax \nextra.fieldcode=... (fieldcode bezeichnet den Feldcode des zusätzlichen Feldes)

eine Liste abhängig von einem anderen zusätzlichen Attribute anzuzeigen
\nc_typent:libelle:id:options_parent_list_code|parent_column:filter \n

Um eine Liste anzuzeigen auf einer anderen Liste je
c_typent:libelle:id:code_liste_parente|colonne_parente:filter ExtrafieldParamHelplink=Parameter müssen folgendes Format haben ObjektName:Klassenpfad
Syntax: ObjektName:Klassenpfad
Beispiel: Societe:societe/class/societe.class.php LibraryToBuildPDF=Bibliothek zum erstellen von PDF WarningUsingFPDF=Achtung: Ihre conf.php enthält $dolibarr_pdf_force_fpdf=1 Dies bedeutet, dass Sie die FPDF-Bibliothek verwenden, um PDF-Dateien zu erzeugen. Diese Bibliothek ist alt und unterstützt viele Funktionen nicht (Unicode-, Bild-Transparenz, kyrillische, arabische und asiatische Sprachen, ...), so dass es zu Fehlern bei der PDF-Erstellung kommen kann.
Um dieses Problem zu beheben und volle Unterstützung der PDF-Erzeugung zu erhalten, laden Sie bitte die TCPDF Bibliothek , dann kommentieren Sie die Zeile $dolibarr_pdf_force_fpdf=1 aus oder entfernen diese und fügen statt dessen $dolibarr_lib_TCPDF_PATH='Pfad_zum_TCPDF_Verzeichnisr' ein @@ -402,7 +410,7 @@ ValueOverwrittenByUserSetup=Achtung, dieser Wert kann durch den Benutzer übersc ExternalModule=Externes Modul - im Verzeichnis %s installiert BarcodeInitForThirdparties=Alle Strichcodes für Drittanbieter initialisieren BarcodeInitForProductsOrServices=Alle Strichcodes für Produkte oder Services initialisieren oder zurücksetzen -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. +CurrentlyNWithoutBarCode=Zur Zeit gibt es %s Datensätze in %s %s ohne Barcode. InitEmptyBarCode=Startwert für die nächsten %s leeren Datensätze EraseAllCurrentBarCode=Alle aktuellen Barcode-Werte löschen ConfirmEraseAllCurrentBarCode=Wirklich alle aktuellen Barcode-Werte löschen @@ -418,13 +426,27 @@ EnableAndSetupModuleCron=Um wiederkehrende Rechnungen automatisch zu generieren, ModuleCompanyCodeAquarium=Generiert einen Kontierungscode %s, gefolgt von der Lieferantenummer für einen Lieferanten-Kontierungscode und %s, gefolgt vom Kundenkontierungscode für einen Kundenkontierungscode. ModuleCompanyCodePanicum=Leeren Kontierungscode zurückgeben. ModuleCompanyCodeDigitaria=Kontierungscode hängt vom Partnercode ab. Der Code setzt sich aus dem Buchstaben 'C' und den ersten 5 Stellen des Partnercodes zusammen. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. +Use3StepsApproval=Standardmäßig, Einkaufsaufträge müssen durch zwei unterschiedlichen Benutzer erstellt und freigegeben werden (ein Schritt/Benutzer zu erstellen und ein Schritt/Benutzer für die Freigabe). Beachten Sie wenn ein Benutzer beide Rechte hat - zum erstellen und freigeben, dann reicht ein Benutzer für diesen Vorgang. Optional können Sie ein zusätzlicher Schritt/User für die Freigabe einrichten, wenn der Betrag einen bestimmten dedizierten Wert übersteigt (wenn der Betrag übersteigt wird, werden 3 Stufen notwendig: 1=Validierung, 2=erste Freigabe und 3=Gegenfreigabe.
Lassen Sie den Feld leer wenn eine Freigabe (2 Schritte) ausreicht; Tragen Sie einen sehr niedrigen Wert (0.1) wenn eine zweite Freigabe notwendig ist. UseDoubleApproval=3-Fach Verarbeitungsschritte verwenden wenn der Betrag (ohne Steuer) höher ist als ... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description +WarningPHPMail=Achtung: Einige Mail-Server (Yahoo) erlaubt keine E-Mails von einem anderen Server als ihre Postadresse zu senden, wenn verwendet wird, ist eine Yahoo-Adresse (myemail@yahoo.fr, myemail@yahoo.com. Ihre aktuelle Konfiguration com ...) verwendet den Anwendungsserver für die E-Mails zu senden. Der Server von einigen Empfängern (kompatibel mit dem restriktiven Protokoll DMARC) fragt Yahoo-Servern Erlaubnis E-Mails und Yahoo erhalten zu verweigern, da der Server nicht ein Server von Yahoo gehört, als Teil Ihrer e- werden nicht gesendet Mails reçus.
\nWenn Ihr E-Mail-Provider (wie Yahoo) Diese Einschränkung auferlegt, müssen Sie Ihre Konfiguration ändern und ein anderes Verfahren zum Senden von „SMTP-Server“ wählen, indem das SMTP-Kennwort von Ihrer ISP eingeben (fragen Ihre Mail-Flex Gehäuse) +ClickToShowDescription=Klicke um die Beschreibung zu sehen +DependsOn=Diese Modul benötigt die folgenden Module +RequiredBy=Diese Modul wird durch folgende Module verwendet +TheKeyIsTheNameOfHtmlField=Das ist der Name des HTML Feldes. Sie benötigen HTML Kenntnisse um den Namen des Feldes aus der HTML Seite zu ermitteln. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Persönliche Standardwerte erlauben +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=Eine Übersetzung wurde für diesen Schlüssel gefunden, um die Übersetzung anzupassen, gehen Sie in Menü "Home->Setup->Überseztungen" +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Feld +ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen # Modules Module0Name=Benutzer und Gruppen -Module0Desc=Users / Employees and Groups management +Module0Desc=Benutzer / Mitarbeiter und Gruppen Administration Module1Name=Partner Module1Desc=Partner- und Kontakteverwaltung Module2Name=Vertrieb @@ -444,7 +466,7 @@ Module30Desc=Rechnungs- und Gutschriftsverwaltung für Kunden. Rechnungsverwaltu Module40Name=Lieferanten Module40Desc=Lieferantenverwaltung und Einkauf (Bestellungen und Rechnungen) Module42Name=Systemprotokoll -Module42Desc=Protokollierungsdienste (Syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Bearbeiter Module49Desc=Editorverwaltung Module50Name=Produkte @@ -499,12 +521,12 @@ Module410Name=Webkalender Module410Desc=Webkalenderintegration Module500Name=Sonderausgaben Module500Desc=Verwalten von speziellen Ausgaben (Steuern, Sozialabgaben, Dividenden) -Module510Name=Liste von Arbeitsverträgen und Löhnen -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Darlehen Module520Desc=Verwaltung von Darlehen Module600Name=Benachrichtigungen -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails +Module600Desc=Email-Benachrichtigung (ausgelößt durch einige Ereignisse) zu Benutzern (seperate Einstellungen je Benutzer), Partner-Kontakte (seperate Einstellung für jeden Partner) oder festen Email-Adressen. Module700Name=Spenden Module700Desc=Spendenverwaltung Module770Name=Spesenabrechnungen @@ -526,7 +548,7 @@ Module2200Desc=Mathematische Ausdrücke für Preise aktivieren Module2300Name=Cron Module2300Desc=CronJob Verwaltung Module2400Name=Ereignisse/Termine -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Desc=Folgeereignisse oder Termine. Ereignisse manuell in der Agenda erfassen oder Applikationen erlauben Termine zur Nachverfolgung zu erstellen. Module2500Name=Inhaltsverwaltung(ECM) Module2500Desc=Speicherung und Verteilung von Dokumenten Module2600Name=API/Webservice (SOAP Server) @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind Konvertierung Module3100Name=Skype Module3100Desc=Skype-Button zu Karten von Benutzer-/Partner-/Kontakt-/Mitglieder-Karten hinzufügen +Module3200Name=Unveränderbare Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=PV -Module4000Desc=Personalverwaltung +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Mandantenfähigkeit Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen Module6000Name=Workflow @@ -591,8 +615,8 @@ Permission32=Produkte/Leistungen erstellen/bearbeiten Permission34=Produkte/Leistungen löschen Permission36=Projekte/Leistungen exportieren Permission38=Produkte exportieren -Permission41=Projekte und Aufgaben lesen (Geteilte Projekte und Projekte in denen ich Kontakt bin). Es kann auch Zeitaufwand auf zugewiesenen Aufgaben gebucht werden. -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission42=Erstellen und Ändern von Projekten (geteilte Projekte und solche, in denen ich Kontakt bin). Kann auch Aufgaben erstellen und Benutzer dem Projekt und den Aufgaben zuweisen. Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte in welchen ich Ansprechpartner bin) Permission45=Projekte exportieren Permission61=Serviceaufträge ansehen @@ -640,9 +664,9 @@ Permission144=Löschen Sie alle Projekte und Aufgaben (einschließlich privater Permission146=Lieferanten einsehen Permission147=Statistiken einsehen Permission151=Bestellung mit Zahlart Lastschrift -Permission152=Create/modify a direct debit payment orders +Permission152=Lastschriftaufträge erstellen/bearbeiten Permission153=Bestellungen mit Zahlart Lastschrift übertragen -Permission154=Record Credits/Rejects of direct debit payment orders +Permission154=Lastschriftaufträge genehmigen/ablehnen Permission161=Verträge/Abonnements einsehen Permission162=Verträge/Abonnements erstellen/bearbeiten Permission163=Service/Abonnement in einem Vertrag aktivieren @@ -695,7 +719,7 @@ PermissionAdvanced253=Andere interne/externe Benutzer und Gruppen erstellen/bear Permission254=Nur externe Benutzer erstellen/bearbeiten Permission255=Andere Passwörter ändern Permission256=Andere Benutzer löschen oder deaktivieren -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Zugang auf alle Partner erweitern (Nicht nur Partner wo der Benutzer der Handelsvertreter ist)
Nicht wirksam für externe Nutzer (Immer beschränkt auf sich selbst für Angebote, Bestellungen, Rechnungen, Verträge, etc).
Nicht wirksam für Projekte(Nur Regeln für Projektberechtigungen, Sichtbarkeits- und Zuordnungsfragen) Permission271=Read CA Permission272=Rechnungen anzeigen Permission273=Ausgabe Rechnungen @@ -780,7 +804,7 @@ Permission1236=Lieferantenrechnungen, -attribute und zahlungen exportieren Permission1237=Lieferantenbestellungen mit Details exportieren Permission1251=Massenimports von externen Daten ausführen (data load) Permission1321=Kundenrechnungen, -attribute und -zahlungen exportieren -Permission1322=Reopen a paid bill +Permission1322=Eine bezahlte Rechnung wieder öffnen Permission1421=Exportieren von Kundenaufträge und Attribute Permission20001=Urlaubsanträge einsehen (eigene und die der Untergebenen) Permission20002=Ihre eigenen Urlaubsanträge erstellen/bearbeiten @@ -835,21 +859,23 @@ DictionaryPaymentModes=Zahlungsarten DictionaryTypeContact=Kontaktarten DictionaryEcotaxe=Ökosteuern (WEEE) DictionaryPaperFormat=Papierformate -DictionaryFormatCards=Cards formats +DictionaryFormatCards=Karten Formate DictionaryFees=Gebührenarten DictionarySendingMethods=Versandarten DictionaryStaff=Mitarbeiter DictionaryAvailability=Lieferverzug DictionaryOrderMethods=Bestellmethoden DictionarySource=Quelle der Angebote/Aufträge -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Gruppen Buchungskonten DictionaryAccountancysystem=Kontenplan Modul +DictionaryAccountancyJournal=Buchhaltungsjournale DictionaryEMailTemplates=Textvorlagen für E-Mails DictionaryUnits=Einheiten DictionaryProspectStatus=Geschäftsanbahnungsarten DictionaryHolidayTypes=Urlaubsarten DictionaryOpportunityStatus=Verkaufschancen für Projekt/Lead SetupSaved=Einstellungen gespeichert +SetupNotSaved=Einstellungen nicht gespeichert BackToModuleList=Zurück zur Modulübersicht BackToDictionaryList=Zurück zur der Stammdatenübersicht VATManagement=USt-Verwaltung @@ -892,12 +918,12 @@ LabelUsedByDefault=Bezeichnung wird verwendet falls keine Übersetzung für den LabelOnDocuments=Bezeichnung auf Dokumenten NbOfDays=Anzahl der Tage AtEndOfMonth=Am Ende des Monats -CurrentNext=Current/Next +CurrentNext=Aktueller/ Nächster Offset=Wertsprung AlwaysActive=Immer aktiv Upgrade=Aktualisierung MenuUpgrade=Aktualisierung/Erweiterung -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Externes Modul hinzufügen WebServer=Webserver DocumentRootServer=Dokumenten-Stammordner des Webservers DataRootServer=Daten-Verzeichnis @@ -931,11 +957,13 @@ DefaultMaxSizeList=Voreinstellung maximale Anzahl Zeilen für Listen DefaultMaxSizeShortList=Standard für maximale Länge bei kurzen Listen (z.B. Kundenkarte) MessageOfDay=Nachricht des Tages MessageLogin=Nachricht auf der Anmeldeseite +LoginPage=Anmeldeseite +BackgroundImageLogin=Hintergrundbild PermanentLeftSearchForm=Ständiges Suchfeld auf der linken Seite DefaultLanguage=Standardsprache der Anwendung (Sprachcode) EnableMultilangInterface=Mehrsprachigkeit aktivieren EnableShowLogo=Logo über dem linken Menü anzeigen -CompanyInfo=Information über die Firma/Institution +CompanyInfo=Firmen-/Stiftungsinformationen CompanyIds=Firmen-/Stiftungs-IDs CompanyName=Firmenname CompanyAddress=Firmenadresse @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Verzögerungstoleranz (in Tagen) vor Benachrichtigung Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Verzögerungstoleranz (in Tagen) vor der Benachrichtigung über einzulösende Schecks Delays_MAIN_DELAY_EXPENSEREPORTS=Toleranz in Tagen vor der Benachrichtigung zur Genehmigung einer Spesenabrechnung SetupDescription1=Die Einstellungsübersicht dient zum initialen Einrichten before mit der Verwendung von Dolibarr begonnen wird. -SetupDescription2=Die zwei wichtigsten Einstellungsschritte sind die ersten zwei Zeilen im Einstellungsmenü auf der linken Seite: Firma/Stiftung-Einstellungsseite und die Module-Einstellungsseite. -SetupDescription3=Parameter im Menü Setup -> Firma/Stifitung sind notwendig, da die eingeben Daten für Dolibarr-Anzeigen und zum Einstellen des Standardverhaltens der Software notwendig sind (für länderabhängige Funktionen zum Beispiel). -SetupDescription4=Parameter im Menü Setup -> Modules sind notwenig, da Dolibarr kein monolithisches ERP/CRM-System ist, sondern eine Zusammenstellung von mehren Modulen, welche mehr oder weniger unabhängig arbeiten. Neue Funktionen werden für jedes Modul, das Sie aktivieren, den Menüs hinzugefügt. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Andere Einträge verwalten optionale Parameter. LogEvents=Protokollierte Ereignisse Audit=Protokoll @@ -987,7 +1015,7 @@ BrowserOS=Betriebssystem des Browsers ListOfSecurityEvents=Liste der sicherheitsrelevanten Ereignisse SecurityEventsPurged=Security-Ereignisse gelöscht LogEventDesc=Hier können Sie die Protokollierungseinstellungen für sicherheitsrelevante Ereignisse anpassen. Administratoren können die entsprechenden Inhalte unter Systemwerkzeuge-Protokoll einsehen. Achtung: Diese Funktion kann zu erhöhtem Datenaufkommen in der Datenbank führen. -AreaForAdminOnly=Diese Funktionen stehen ausschließlich Administratoren zur Verfügung. Administrationsfunktionen und -hilfe werden in dolibarr durch die folgenden Symbole dargestellt: +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar. SystemAreaForAdminOnly=Dieser Bereich steht ausschließlich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern. CompanyFundationDesc=Tragen Sie hier alle Informationen zum Unternehmen ein, das Sie verwalten möchten (Zum Bearbeiten auf den Button "Bearbeiten" oder "Speichern" am Schluss der Seite klicken) @@ -1004,14 +1032,14 @@ TriggerAlwaysActive=Trigger in dieser Datei sind unabhängig der Modulkonfigurat TriggerActiveAsModuleActive=Trigger in dieser Datei sind durch das übergeordnete Modul %s aktiviert. GeneratedPasswordDesc=Definieren Sie hier das Schema nach dem automatisch generierte Passwörter erstellt werden sollen. DictionaryDesc=Alle Standardwerte einfügen. Sie können eigene Werte zu den Standartwerten hinzufügen. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +ConstDesc=Diese Seite erlaubt es alle anderen Parameter einzustellen, die auf den vorherigen Seiten nicht verfügbar sind. Dies sind meist reservierte Parameter für Entwickler oder für die erweiterte Fehlersuche. Für eine Liste von Optionen hier überprüfen . MiscellaneousDesc=Alle anderen sicherheitsrelevanten Parameter werden hier eingestellt. LimitsSetup=Limits und Genauigkeit Einstellungen LimitsDesc=Hier können Sie Grenzwerte, Genauigkeitseinstellungen und das Rundungsverhalten einstellen. MAIN_MAX_DECIMALS_UNIT=Dezimalstellen max. für Stückpreise MAIN_MAX_DECIMALS_TOT=Dezimalstellen max. für Gesamtsummen MAIN_MAX_DECIMALS_SHOWN=Dezimalstellen max. für auf dem Bildschirm angezeigte Preise (Fügen Sie ... nach dieser Nummer ein, wenn Sie ... sehen wollen, falls ein Bildschirmpreis abgeschnitten wurde. -MAIN_ROUNDING_RULE_TOT=Rundungseinstellung (Für Länder in denen nicht auf 10er Basis Gerundet wird. z.B. 0.05 damit in 0.05 Schritten gerundet wirb) +MAIN_ROUNDING_RULE_TOT=Rundungseinstellung (Für Länder in denen nicht auf 10er Basis gerundet wird. z.B. 0,05 damit in 0,05 Schritten gerundet wird) UnitPriceOfProduct=Nettostückpreis TotalPriceAfterRounding=Gesamtpreis (Netto/USt./Brutto) gerundet ParameterActiveForNextInputOnly=Die Einstellungen werden erst bei der nächsten Eingabe wirksam @@ -1072,18 +1100,19 @@ TranslationSetup=Konfiguration der Übersetzung TranslationKeySearch=Übersetzungsschlüssel oder -Zeichenkette suchen TranslationOverwriteKey=Überschreiben der Übersetzung TranslationDesc=Angezeichten Systemsprachen einstellen:
* Systemweit: Menü Start - Konfiguration - Anzeigen
* Nach Benutzer: Benutzer konfigurierenBenutzer Karteireiter (Benutzername anklicken ganz oben auf dem Bildschirm). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use +TranslationOverwriteDesc=Sie können Zeichenketten durch Füllen der folgenden Tabelle überschreiben. Wählen Sie Ihre Sprache aus dem "%s" Drop-Down und tragen Sie den Schlüssel in "%s" und Ihre neue Übersetzung in "%s" ein. +TranslationOverwriteDesc2=Sie können die andere Registerkarte verwenden, um Ihnen zu helfen, den Übersetzungsschlüssel zu verwenden TranslationString=Übersetzung Zeichenkette CurrentTranslationString=Aktuelle Übersetzung -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string +WarningAtLeastKeyOrTranslationRequired=Es sind mindestens ein Suchkriterium erforderlich für eine Schlüssel- oder Übersetzungszeichenfolge NewTranslationStringToShow=Neue Übersetzungen anzeigen -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Anzahl aktivierterter Module: %s / %s +OriginalValueWas=Original-Übersetzung überschrieben. Der frühere Wert war:

%s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren ClassNotFoundIntoPathWarning=Klasse %s nicht innerhalb PHP-Pfad gefunden YesInSummer=Ja im Sommer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt ConditionIsCurrently=Einstellung ist aktuell %s YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der beste verfügbare. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Regeln für Identifikationsnummern MustBeUnique=Muss es eindeutig sein ? MustBeMandatory=Erforderlich zur Anlage von Partnern ? MustBeInvoiceMandatory=Erforderlich, um Rechnungen freizugeben ? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Ein Eportlink für das Format %s findet sich unter folgendem Link: %s ##### Invoices ##### BillsSetup=Rechnungsmoduleinstellungen BillsNumberingModule=Rechnungs- und Gutschriftsnumerierungsmodul BillsPDFModules=PDF-Rechnungsvorlagen +PaymentsPDFModules=Payment documents models CreditNote=Gutschrift CreditNotes=Gutschriften ForceInvoiceDate=Rechnungsdatum ist zwingend Freigabedatum @@ -1162,7 +1193,7 @@ WatermarkOnDraftSupplierProposal=Wasserzeichen auf vorbereiteten Preisanfrage f BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Frage nach Bankkonto für Preisanfragen WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Frage nach Lager für Aufträge ##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Frage nach der Ziel-Bankverbindung der Lieferantenbestellung ##### Orders ##### OrdersSetup=Bestellverwaltungseinstellungen OrdersNumberingModules=Bestellnumerierungs-Module @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Dateien vom Typ %s werden vom HTTP Server nicht zwischenges FilesOfTypeCompressed=Dateien vom Typ %s werden vom HTTP Server komprimiert FilesOfTypeNotCompressed=Dateien vom Typ %s werden vom HTTP Server nicht komprimiert CacheByServer=Vom Server zwischengespeichert +CacheByServerDesc=Verwenden sie zB. den Apache Konfigurationsbefehl "ExpiresByType image/gif A2592000" CacheByClient=Vom Browser zwischengespeichert CompressionOfResources=Komprimierung von HTTP Antworten +CompressionOfResourcesDesc=Zum Beispiel mit der Apache Anweisung "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Automatische Erkennung mit den aktuellen Browsern nicht möglich +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Standard Suchfilter +DefaultSortOrder=Standardsortierreihenfolge +DefaultFocus=Standardfokusfeld ##### Products ##### ProductSetup=Produktmoduleinstellungen ServiceSetup=Modul Leistungen - Einstellungen @@ -1339,7 +1377,7 @@ ViewProductDescInFormAbility=Anzeige der Produktbeschreibungen in Formularen (so MergePropalProductCard=Aktivieren einer Option unter Produkte/Leistungen Registerkarte verknüpfte Dateien, um Produkt-PDF-Dokumente um Angebots PDF azur zusammenzuführen, wenn Produkte/Leistungen in dem Angebot sind. ViewProductDescInThirdpartyLanguageAbility=Anzeige der Produktbeschreibungen in der Sprache des Partners UseSearchToSelectProductTooltip=Wenn Sie eine große Anzahl von Produkten (> 100.000) haben, können Sie die Geschwindigkeit verbessern, indem Sie in Einstellungen -> Andere die Konstante PRODUCT_DONOTSEARCH_ANYWHERE auf 1 setzen. Die Suche startet dann am Beginn des Strings. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +UseSearchToSelectProduct=Warte auf Tastendruck, bevor der Inhalt der Produkt-Combo-Liste geladen wird (Dies kann die Leistung verbessern, wenn Sie eine große Anzahl von Produkten haben). SetDefaultBarcodeTypeProducts=Standard-Barcode-Typ für Produkte SetDefaultBarcodeTypeThirdParties=Standard-Barcode-Typ für Partner UseUnits=Definieren Sie eine Maßeinheit für die Menge während der Auftrags-, Auftragsbestätigungs- oder Rechnungszeilen-Ausgabe @@ -1397,7 +1435,7 @@ SendingsSetup=Versandmoduleinstellungen SendingsReceiptModel=Versandbelegsvorlage SendingsNumberingModules=Nummerierungsmodell Auslieferungen SendingsAbility=Unterstützung von Versand-Dokumenten für Kundenlieferungen -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=In den meisten Fällen werden Lieferscheine sowohl als Versanddokument (für die Zusammenstellung der Auslieferung), als auch als Zustellscheine, die vom Kunden zu unterschreiben sind, verwendet. Entsprechend sind Empfangsbelege meist eine doppelte und daher nicht verwendete Option. FreeLegalTextOnShippings=Freier Text auf Lieferungen ##### Deliveries ##### DeliveryOrderNumberingModules=Zustellscheinnumerierungs-Module @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Rechnungsdatum verwendet Buy=Kaufen Sell=Verkaufen InvoiceDateUsed=Rechnungsdatum verwendet -YourCompanyDoesNotUseVAT=Für Ihr Unternehmen wurde keine USt.-Verwendung definiert (Start-Einstellungen-Unternehmen/Stiftung), entsprechend stehen in der Konfiguration keine USt.-Optionen zur Verfügung. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Kontierungs-Code AccountancyCodeSell=Verkaufskonto-Code AccountancyCodeBuy=Einkaufskonto-Code @@ -1477,11 +1515,12 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Diesen Standardwert automatisch als Ereignistyp im AGENDA_DEFAULT_FILTER_TYPE=Diesen Ereignistyp automatisch in den Suchfilter für die Agenda-Ansicht übernehmen AGENDA_DEFAULT_FILTER_STATUS=Diesen Ereignisstatus automatisch in den Suchfilter für die Agenda-Ansicht übernehmen AGENDA_DEFAULT_VIEW=Welchen Reiter möchten Sie beim Öffnen der Agenda automatisch anzeigen -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_NOTIFICATION=Aktivieren Sie die Ereignisbenachrichtigung auf Benutzerbrowsern, wenn das Ereignisdatum erreicht ist (jeder Benutzer kann dies aus der Browser-Bestätigungsfrage verweigern) +AGENDA_NOTIFICATION_SOUND=Aktiviere Tonbenachrichtigung +AGENDA_SHOW_LINKED_OBJECT=Verknüpfte Objekte in Agenda anzeigen ##### Clicktodial ##### ClickToDialSetup=Click-to-Dial Moduleinstellungen -ClickToDialUrlDesc=Definieren Sie hier die URL, die bei einem Klick auf das Telefonsymbol aufgerufen werden soll. In dieser URL können Sie Tags verwenden
%%1$s wird durch die Telefonnummer des Angerufenen ersetzt
%%2$s wird durch die Telefonnummer des Anrufers (Ihre) ersetzt
%%3$s wird durch Ihren Benutzernamen für Click-to-Dial ersetzt (siehe Benutzerdatenblatt)
%%4$s wird durch Ihr Click-to-Dial-Passwort ersetzt (siehe Benutzerdatenblatt). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Dieses Modul fügt ein Symbol nach Telefonnummern ein. Durch einen Klick auf dieses Symbol kann Dolibarr z.B. durch ein SIP System eine Telefonanlage anweisen, diese Telefonnummer zu wählen. ClickToDialUseTelLink=Nur einen Link "Tel:" bei Telefonnummern verwenden ClickToDialUseTelLinkDesc=Benutzen Sie diese Methode, wenn Ihre Benutzer ein Software-Telefon oder ein Interface für ein Telefon auf demselben Computer wie der Browser installiert haben. Dieses Telefon/Interface wird aufgerufen, wenn Sie auf einen Link klicken, der mit "tel:" beginnt. Wenn Sie eine vollständige Server-Lösung nutzen wollen (ohne lokale Software-Installation), wählen Sie hier "Nein" und füllen das nächste Feld. @@ -1509,11 +1548,11 @@ EndPointIs=SOAP-Clients müssen ihre Anfragen an den Dolibarr Endpunkt verfügba ##### API #### ApiSetup=Modul API - Einstellungen ApiDesc=Wenn dieses Modul aktiviert ist, wird Dolibarr zum REST Server für diverse web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Sie können das API unter dieser URL anschauen +ApiProductionMode=Echtbetrieb aktivieren (dadurch wird ein Cache für Service-Management aktiviert) +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Nur Elemente aus aktiven Modulen sind ungeschützt ApiKey=Schlüssel für API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. +WarningAPIExplorerDisabled=Der API-Explorer wurde deaktiviert. Der API-Explorer ist nicht notwendig um die API-Dienste zu bieten. Es ist ein Werkzeug für Entwickler zu finden / Test-REST-APIs. Wenn Sie dieses Tool benötigen, gehen Sie in Setup von Modul-API REST um es zu aktivieren. ##### Bank ##### BankSetupModule=Bankmoduleinstellungen FreeLegalTextOnChequeReceipts=Freier Rechtstext für Scheckbelege @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Allgemeine Anzeige-Reihenfolge BankOrderES=Spanisch BankOrderESDesc=Spanisch Anzeigereihenfolge ChequeReceiptsNumberingModule=Checknummerierungsmodul - ##### Multicompany ##### MultiCompanySetup=Einstellungen des Modul Mandanten ##### Suppliers ##### @@ -1576,18 +1614,18 @@ ListOfNotificationsPerUser=Liste der Benachrichtigungen nach Benutzer* ListOfNotificationsPerUserOrContact=Liste der Benachrichtigungen nach Benutzer oder Kontakt** ListOfFixedNotifications=Liste von ausbesserten Benachrichtigungen GoOntoUserCardToAddMore=Gehen Sie auf die Registerkarte "Hinweise" eines Benutzers, um Benachrichtigungen für Benutzer zu erstellen/entfernen -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +GoOntoContactCardToAddMore=Gehen Sie auf die Registerkarte "Hinweise" des Partners, um Hinweise für Kontakte/Adressen zu erstellen oder zu entfernen Threshold=Schwellenwert BackupDumpWizard=Assistenten zum erstellen der Datenbank-Backup Dump-Datei SomethingMakeInstallFromWebNotPossible=Die Installation von dem externen Modul ist aus folgenden Gründen vom Web-Interface nicht möglich: SomethingMakeInstallFromWebNotPossible2=Aus diesem Grund wird die Prozess hier beschriebenen Upgrade ist nur manuelle Schritte ein privilegierter Benutzer tun kann. InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus der Anwendung wurde von Ihrem Administrator deaktiviert. \nSie müssen ihn bitten, die Datei%s zu entfernen, um diese Funktion zu ermöglichen. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover HighlightLinesColor=Farbe der Zeile hervorheben, wenn die Maus darüberfährt (leer lassen, um den Effekt zu deaktivieren) TextTitleColor=Farbe des Seitenkopfs LinkColor=Farbe für Hyperlinks -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Funktioniert mit dem Standard-Designvorlagen: wird möglicherweise nicht von externen Designvorlagen unterstützt BackgroundColor=Hintergrundfarbe TopMenuBackgroundColor=Hintergrundfarbe für Hauptmenü @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Kündigungsfrist (Ihre Kündigung muss vor dieser Zeit erfol NbAddedAutomatically=Anzahl Tage die den Benutzern jeden Monat (automatisch) hinzuaddiert werden EnterAnyCode=Dieses Feld enthält eine Referenz um die Zeile zu identifizieren. Geben Sie einen beliebigen Wert ohne Sonderzeichen ein. UnicodeCurrency=Fügen sie zwischen den eckigen Klammern die Unicode Zeichenwerte für das Währungssymbol ein. Beispiele: Für $ den Wert [36], für brasilianische Real R$ [82,36], für € den Wert [8364] +ColorFormat=Die RGB Farben sind im Hexformat, zB. FF0000 PositionIntoComboList=Zeilenposition in der Combo-Listen SellTaxRate=Mehrwertsteuersatz RecuperableOnly=Ja für USt. "Wahrgenommene nicht Erstattungsfähig" für einige Regionen in Frankreich. Nein für alle anderen Fälle. @@ -1612,7 +1651,7 @@ FixTZ=Zeitzonen-Korrektur FillFixTZOnlyIfRequired=Beispiel: +2 (nur ausfüllen, wenn Sie Probleme haben) ExpectedChecksum=Erwartete Prüfsumme CurrentChecksum=Aktuelle Prüfsumme -ForcedConstants=Required constant values +ForcedConstants=Erforderliche Parameter Werte MailToSendProposal=Um Angebot zu schicken MailToSendOrder=Um Kundenauftrag zu schicken MailToSendInvoice=Um Kundenrechnung zu schicken @@ -1621,14 +1660,14 @@ MailToSendIntervention=Um Serviceauftrag zu schicken MailToSendSupplierRequestForQuotation=Um Anfrage an den Lieferanten schicken MailToSendSupplierOrder=Um Lieferantenbestellung zu schicken MailToSendSupplierInvoice=Um Lieferantenrechnung zu schicken -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page +MailToSendContract=um den Vertrag zu senden +MailToThirdparty=Um E-Mail von Partner zu schicken ByDefaultInList=Standardanzeige als Listenansicht -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=Sie verwenden die letzte stabile Version TitleExampleForMajorRelease=Beispielnachricht, die Sie nutzen können, um eine Hauptversion anzukündigen. Sie können diese auf Ihrer Website verwenden. TitleExampleForMaintenanceRelease=Beispielnachricht, die Sie nutzen können, um ein Wartungsupdate anzukündigen. Sie können diese auf Ihrer Website verwenden. -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read
ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist eine Hauptversion mit vielen neuen Features für Benutzer und Entwickler. Sie können die Version aus dem Downloadbereich des Portals http://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der Änderungen. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s ist verfügbar. Version %s ist ein Wartungsupdate , das Fehlerbereinigungen enthält. Es wird allen Nutzern einer älteren Version empfohlen, auf diese zu wechseln. Wie bei jedem Wartungsupdate sind keinen neuen Features oder Änderungen in den Datenstrukturen enthalten. Sie können die Version aus dem Downloadbereich des Portals http://www.dolibarr.org laden (Unterverzeichnis "stabile Versionen"). Lesen Sie die komplette Liste der Änderungen. MultiPriceRuleDesc=Wenn die Option "mehrere Preisebenen pro Artikel/Dienstleistung" aktiviert ist, können Sie verschiedene Preis (einen pro Ebene) für jeden artikel definieren. Um Zeit zu sparen, können Sie eine Regel anlegen, mit der der Preis pro Ebene automatisch anhand des Preise in der ersten Ebene kalkuliert wird, so dass Sie nur einen Preis in der ersten Ebene eingeben müssen. Diese Seite kann Ihnen nur Zeit sparen und nützlich sein, wenn die Preise anderer Ebenen vom Preis der ersten Ebene abhängig sind. Ansonsten können Sie diese Seite ignorieren. ModelModulesProduct=Vorlagen für Produktdokumente ToGenerateCodeDefineAutomaticRuleFirst=Um Barcode automatisch zu erstellen, müssen Sie zuerst einen Manager definieren, der die Barcode-Nummern erstellt. @@ -1649,17 +1688,21 @@ AddOtherPagesOrServices=Andere Seiten oder Dienste hinzufügen AddModels=Dokumente oder Nummerierungsvorlagen hinzufügen AddSubstitutions=Ersatzwerte hinzufügen DetectionNotPossible=Erkennung nicht möglich -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) +UrlToGetKeyToUseAPIs=URL um ein Token für die API Nutzung zu erhalten (Erhaltene Token werden in der Benutzertabelle gespeichert und bei jedem Zugriff validiert) ListOfAvailableAPIs=Liste von verfügbaren APIs activateModuleDependNotSatisfied=Modul "%s" benötigt Modul "%s" welches fehlt, dadurch funktioniert Modul "%1$s" möglicherweise nicht korrekt. Installieren Sie Modul "%2$s" oder deaktivieren Sie Modul "%1$s" um auf der sicheren Seite zu sein CommandIsNotInsideAllowedCommands=Das Kommando ist nicht in der Liste der erlaubten Kommandos, definiert in $dolibarr_main_restrict_os_commands in der conf.php Datei. LandingPage=Einstiegsseite -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +SamePriceAlsoForSharedCompanies=Wenn Sie das Mehrfirmenmodul mit der Einstellung "Einzelner Preis" verwenden, dann ist der Preis für die Produkte identisch, die zwischen den Unternehmen geteilt werden. +ModuleEnabledAdminMustCheckRights=Das Modul wurde aktiviert. Rechte wurden nur Admin-Benutzern gewährt. Wenn nötig, müssen Sie anderen Benutzern oder Gruppen Rechte manuell zuweisen. +UserHasNoPermissions=Dieser Benutzer hat keine Rechte +TypeCdr=Verwenden Sie „Nein“, wenn das Datum der Zahlungsfrist ist das Rechnungsdatum plus ein Delta in Tagen (Delta ist die „Anzahl der Tage“)
Use „Am Ende des Monats“, wenn nach dem Delta das Datum muss bis zum Ende des Monats erhöht werden (+ ein „Offset“ optional Tage)
„Aktueller/ Nächster“, um das Datum der Zahlungsfrist verwenden ist der erste n-ten Tag des Monats nach (N ist in der „Anzahl der Tage“ Feld gespeichert) +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=Dieses Modul %s erfüllt die Französische Gesetzgebung (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Modul %s entspricht der französischen Gesetzgebung (Loi Finance 2016) weil das Modul "Unveränderbare Logs" automatisch aktiviert wird. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +ResourceSetup=Konfiguration des Modul Ressourcen +UseSearchToSelectResource=Verwende ein Suchformular um eine Ressource zu wählen (eher als eine Dropdown-Liste) zu wählen. +DisabledResourceLinkUser=Deaktivierter Ressource Link zu Benutzer +DisabledResourceLinkContact=Deaktivierter Ressource Link zu Kontakt diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index 504702ada72..b3dc983996a 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=ID Veranstaltung Actions=Ereignisse -Agenda=Terminplanung +Agenda=Terminplan TMenuAgenda=Terminplanung Agendas=Tagesordnungen LocalAgenda=interne Kalender @@ -12,7 +12,7 @@ Event=Ereignis Events=Ereignisse EventsNb=Anzahl der Ereignisse ListOfActions=Liste Ereignisse -Location=Standort +Location=Ort ToUserOfGroup=Für jeden Benutzer in der Gruppe EventOnFullDay=Ganztägig MenuToDoActions=Alle unvollst. Termine @@ -24,10 +24,10 @@ ActionsAskedBy=Termine eingetragen von ActionsToDoBy=Ereignisse zugewiesen an ActionsDoneBy=Termine erledigt von ActionAssignedTo=Ereignis zugewiesen an -ViewCal=Kalenderansicht +ViewCal=Monatsansicht ViewDay=Tagesansicht ViewWeek=Wochenansicht -ViewPerUser=Benutzeransicht +ViewPerUser=Ansicht pro Benutzer ViewPerType=Anzeige pro Typ AutoActions= Automatische Befüllung der Tagesordnung AgendaAutoActionDesc= Definieren sie hier Ereignisse für die Dolibarr automatisch Termine in der Agende erstellen soll. Wenn nichts aktiviert ist, werden nur manuelle Aktionen in der Agenda erfasst und angezeigt. Automatische Protokollierung von Ereignissen auf Objekten (Validierung, Statuswechsel) werden nicht gespeichert @@ -48,14 +48,15 @@ InvoiceDeleteDolibarr=Rechnung %s gelöscht InvoicePaidInDolibarr=Rechnung %s bezahlt InvoiceCanceledInDolibarr=Rechnung %s storniert MemberValidatedInDolibarr=Mitglied %s freigegeben -MemberResiliatedInDolibarr=Member %s terminated +MemberModifiedInDolibarr=Mitglied %s geändert +MemberResiliatedInDolibarr=Mitglied %s aufgehoben MemberDeletedInDolibarr=Mitglied %s gelöscht MemberSubscriptionAddedInDolibarr=Abonnement für Mitglied %s hinzugefügt ShipmentValidatedInDolibarr=Lieferung %s freigegeben -ShipmentClassifyClosedInDolibarr=Lieferung %s als verrechnet markieren -ShipmentUnClassifyCloseddInDolibarr=Lieferung %s als wiedereröffnet markieren +ShipmentClassifyClosedInDolibarr=Lieferung %s als verrechnet markiert +ShipmentUnClassifyCloseddInDolibarr=Lieferung %s als wiedereröffnet markiert ShipmentDeletedInDolibarr=Lieferung %s gelöscht -OrderCreatedInDolibarr=Order %s created +OrderCreatedInDolibarr= Auftragserteilung %s erstellt OrderValidatedInDolibarr=Auftrag %s freigegeben OrderDeliveredInDolibarr=Bestellung %s als geliefert markieren OrderCanceledInDolibarr=Auftrag %s storniert @@ -75,6 +76,7 @@ ProposalDeleted=Angebot gelöscht OrderDeleted=Bestellung gelöscht InvoiceDeleted=Rechnung gelöscht ##### End agenda events ##### +AgendaModelModule=Dokumentvorlagen für Ereignisse DateActionStart=Beginnt DateActionEnd=Endet AgendaUrlOptions1=Sie können die Ausgabe über folgende Parameter filtern: @@ -103,7 +105,7 @@ MyAvailability=Meine Verfügbarkeit ActionType=Ereignistyp DateActionBegin=Startzeit des Ereignis CloneAction=Dupliziere Ereignis -ConfirmCloneEvent=Are you sure you want to clone the event %s? +ConfirmCloneEvent=Möchten Sie dieses Ereignis %s wirklich duplizieren? RepeatEvent=Wiederhole Ereignis EveryWeek=Jede Woche EveryMonth=Jeden Monat diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index a6b05d53542..6dfca4eef1b 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -1,14 +1,14 @@ # Dolibarr language file - Source file is en_US - banks Bank=Bank -MenuBankCash=Finanzen +MenuBankCash=Bank/Kassa BankName=Name der Bank -FinancialAccount=Finanzkonto +FinancialAccount=Konto BankAccount=Bankkonto -BankAccounts=Kontenübersicht +BankAccounts=Bank Konten ShowAccount=Zeige Konto -AccountRef=Konto-Referenz +AccountRef=Buchhaltungs-Konto Nr. AccountLabel=Kontobezeichnung -CashAccount=Kasse +CashAccount=Konto Kassa CashAccounts=Kassen CurrentAccounts=Girokonten SavingAccounts=Sparkonten @@ -24,14 +24,14 @@ CurrentBalance=Aktueller Kontostand FutureBalance=Zukünftiger Kontostand ShowAllTimeBalance=Zeige Kontostand seit Eröffnung AllTime=Vom Start -Reconciliation=Zahlungsabgleich -RIB=Kontonummer +Reconciliation=Zahlungsausgleich +RIB=Bank Kontonummer IBAN=IBAN Nummer BIC=BIC/Swift Code -SwiftValid=BIC/SWIFT valid -SwiftVNotalid=BIC/SWIFT not valid -IbanValid=BAN valid -IbanNotValid=BAN not valid +SwiftValid=BIC/SWIFT gültig +SwiftVNotalid=BIC/SWIFT ungültig +IbanValid=Bankkonto gültig +IbanNotValid=Bankkonto nicht gültig StandingOrders=Lastschriften StandingOrder=Lastschrift AccountStatement=Kontoauszug @@ -59,36 +59,37 @@ AccountCard=Konto - Karte DeleteAccount=Konto löschen ConfirmDeleteAccount=Sind Sie sicher, dass Sie dieses Konto löschen wollen? Account=Konto -BankTransactionByCategories=Bank entries by categories -BankTransactionForCategory=Bank entries for category %s +BankTransactionByCategories=Banktransaktionen nach Kategorien +BankTransactionForCategory=Banktransaktionen aus #tags/Kategorie %s RemoveFromRubrique=Aus Kostenstelle entfernen -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? -ListBankTransactions=List of bank entries +RemoveFromRubriqueConfirm=Möchten Sie die Verknüpfung zwischen dieser Transaktion und der Kategorie entfernen? +ListBankTransactions=Liste von Bank-Transaktionen IdTransaction=Transaktions-ID -BankTransactions=Bank entries +BankTransactions=Bank-Transaktionen +BankTransaction=Bank-Transaktionen ListTransactions=Liste Einträge -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +ListTransactionsByCategory=Liste Einträge/Kategorie +TransactionsToConciliate=Transaktionen zum ausgleichen Conciliable=kann ausgeglichen werden Conciliate=Ausgleichen Conciliation=Ausgleich -ReconciliationLate=Reconciliation late +ReconciliationLate=Zahlungsausgleich spät IncludeClosedAccount=Geschlossene Konten miteinbeziehen -OnlyOpenedAccount=Nur geöffnete Konten +OnlyOpenedAccount=Nur offene Konten AccountToCredit=Konto für Gutschrift AccountToDebit=Zu belastendes Konto DisableConciliation=Zahlungsausgleich für dieses Konto deaktivieren ConciliationDisabled=Zahlungsausgleich deaktiviert -LinkedToAConciliatedTransaction=Linked to a conciliated entry +LinkedToAConciliatedTransaction=Verknüpft mit einer beschwichtigen Transaktion StatusAccountOpened=Geöffnet StatusAccountClosed=Geschlossen AccountIdShort=Nummer LineRecord=Transaktion -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Erstelle Transaktion +AddBankRecordLong=Eintrag manuell hinzufügen ConciliatedBy=Ausgeglichen durch DateConciliating=Ausgleichsdatum -BankLineConciliated=Entry reconciled +BankLineConciliated=Transaktion ausgeglichen Reconciled=ausgelichen NotReconciled=nicht ausgeglichen CustomerInvoicePayment=Kundenzahlung @@ -112,13 +113,13 @@ BankChecks=Bankschecks BankChecksToReceipt=Schecks warten auf Einlösung ShowCheckReceipt=Zeige Scheck Einzahlungsbeleg NumberOfCheques=Anzahl der Schecks -DeleteTransaction=Delete entry -ConfirmDeleteTransaction=Are you sure you want to delete this entry? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +DeleteTransaction=Transaktion löschen +ConfirmDeleteTransaction=Sind Sie sicher, dass Sie diese Transaktion löschen wollen? +ThisWillAlsoDeleteBankRecord=Dadurch werden auch erzeugte Kontoauszüge gelöscht BankMovements=Bankbewegungen -PlannedTransactions=Planned entries +PlannedTransactions=Geplante Transaktionen Graph=Grafiken -ExportDataset_banque_1=Bank entries and account statement +ExportDataset_banque_1=Transaktionen und Kontoauszug ExportDataset_banque_2=Einzahlungsbeleg TransactionOnTheOtherAccount=Transaktion auf dem anderem Konto PaymentNumberUpdateSucceeded=Zahlungsnummer erfolgreich aktualisiert @@ -126,7 +127,7 @@ PaymentNumberUpdateFailed=Zahlungsnummer konnte nicht aktualisiert werden PaymentDateUpdateSucceeded=Zahlungsdatum erforlgreich aktualisiert PaymentDateUpdateFailed=Zahlungsdatum konnte nicht aktualisiert werden Transactions=Transaktionen -BankTransactionLine=Bank entry +BankTransactionLine=Bank-Transaktionen AllAccounts=Alle Finanzkonten BackToAccount=Zurück zum Konto ShowAllAccounts=Alle Finanzkonten @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Scheck zurückgewiesen und Rechnungen wieder ge BankAccountModelModule=Dokumentvorlagen für Bankkonten DocumentModelSepaMandate=Vorlage für SEPA Mandate. Nur sinnvoll in Ländern der EU. DocumentModelBan=Template für den Druck von Seiten mit Bankkonto-Nummern Eintrag. +NewVariousPayment=Neue "Verschiedenes" Zahlung +VariousPayment=Diverse Zahlung +VariousPayments=Diverse Zahlungen +ShowVariousPayment=Zeige "Verschiedenes" Zahlung diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index 2667f3087f2..d792244d8d8 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Kundenrechnungen BillsCustomer=Kundenrechnung BillsSuppliers=Lieferantenrechnungen BillsCustomersUnpaid=Offene Kundenrechnungen -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Offene Kundenrechnungen von %s BillsSuppliersUnpaid=Unbezahlte Lieferantenrechnungen -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Unbezahlte Lieferantenrechnungen für %s BillsLate=Verspätete Zahlungen BillsStatistics=Statistik Kundenrechnungen BillsStatisticsSuppliers=Statistik Lieferantenrechnungen @@ -41,7 +41,7 @@ ConsumedBy=Verbraucht von NotConsumed=Nicht verbrauchte NoReplacableInvoice=Keine ersatzfähige Rechnungsnummer NoInvoiceToCorrect=Keine zu korrigierende Rechnung -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Diese Rechnung ist bereits Gegenstand einer oder mehrerer Gutschriften. CardBill=Rechnung - Karte PredefinedInvoices=Vordefinierte Rechnungen Invoice=Rechnung @@ -63,7 +63,7 @@ paymentInInvoiceCurrency=in Rechnungswährung PaidBack=Zurück bezahlt DeletePayment=Lösche Zahlung ConfirmDeletePayment=Möchten Sie diese Zahlung wirklich löschen? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReduc=Möchten Sie dieses %s in einen absoluten Rabatt konvertieren?
Der Betrag wird so unter allen Rabatten gespeichert und kann als Rabatt für ein aktuelle oder zukünftige Rechnung für diese Kunden verwendet werden. SupplierPayments=Lieferantenzahlungen ReceivedPayments=Erhaltene Zahlungen ReceivedCustomersPayments=Erhaltene Anzahlungen von Kunden @@ -75,10 +75,10 @@ PaymentsAlreadyDone=Bereits getätigte Zahlungen PaymentsBackAlreadyDone=Rückzahlungen bereits erledigt PaymentRule=Zahlungsregel PaymentMode=Zahlungsart -PaymentTypeDC=Debit/Credit Card +PaymentTypeDC=Debit- / Kreditkarte PaymentTypePP=PayPal IdPaymentMode=Zahlungsart (ID) -CodePaymentMode=Payment type (code) +CodePaymentMode=Zahlungsart (Code) LabelPaymentMode=Zahlungsart (Label) PaymentModeShort=Zahlungsart PaymentTerm=Zahlungskonditionen @@ -87,7 +87,7 @@ PaymentConditionsShort=Zahlungsziel PaymentAmount=Zahlungsbetrag ValidatePayment=Zahlung freigeben PaymentHigherThanReminderToPay=Zahlungsbetrag übersteigt Zahlungserinnerung -HelpPaymentHigherThanReminderToPay=Achtung, die Zahlung eines oder mehrerer Rechnungen ist höher als der Rest zu zahlen.
Bearbeiten Sie Ihre Eingabe, sonst bestätigen und denken über die Schaffung einer Gutschrift von mehr als der für jede overpaid Rechnungen. +HelpPaymentHigherThanReminderToPay=Achtung, der Zahlungsbetrag einer oder mehrerer Rechnungen ist höher als der offene Restbetrag.
Bearbeiten Sie Ihre Eingabe oder bestätigen Sie die Überzahlung und erstellen Sie ggf eine Gutschrift für jede überzahlte Rechnung. HelpPaymentHigherThanReminderToPaySupplier=Achtung, der Zahlungsbetrag einer oder mehrerer Rechnungen ist höher als der offene Restbetrag.
Bearbeiten Sie Ihre Eingabe oder bestätigen Sie die Überzahlung. ClassifyPaid=Als 'bezahlt' markieren ClassifyPaidPartially=Als 'teilweise bezahlt' markieren @@ -104,9 +104,9 @@ SearchASupplierInvoice=Lieferantenrechnung suchen CancelBill=Rechnung stornieren SendRemindByMail=Zahlungserinnerung per E-Mail versenden DoPayment=Zahlung eingeben -DoPaymentBack=Enter refund +DoPaymentBack=Rückerstattung eingeben ConvertToReduc=In Rabatt umwandeln -ConvertExcessReceivedToReduc=Convert excess received into future discount +ConvertExcessReceivedToReduc=Konvertieren des Überschuss in einen Rabatt EnterPaymentReceivedFromCustomer=Geben Sie die vom Kunden erhaltene Zahlung ein EnterPaymentDueToCustomer=Kundenzahlung fällig stellen DisabledBecauseRemainderToPayIsZero=Deaktiviert, da Zahlungserinnerung auf null steht @@ -115,24 +115,24 @@ BillStatus=Rechnung Status StatusOfGeneratedInvoices=Status der erstellten Rechnungen BillStatusDraft=Entwurf (freizugeben) BillStatusPaid=Bezahlt -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=In Gutschrift oder Rabatt umgewandelt BillStatusConverted=Umgerechnet auf Rabatt BillStatusCanceled=Aufgegeben BillStatusValidated=Freigegeben (zu bezahlen) BillStatusStarted=Begonnen BillStatusNotPaid=nicht bezahlt -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=nicht zurückerstattet BillStatusClosedUnpaid=Geschlossen (unbezahlt) BillStatusClosedPaidPartially=Bezahlt (teilweise) BillShortStatusDraft=Entwurf BillShortStatusPaid=Bezahlt -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Verarbeitete +BillShortStatusPaidBackOrConverted=Rückerstattet oder umgewandelt +BillShortStatusConverted=Bezahlt BillShortStatusCanceled=Storniert BillShortStatusValidated=Freigegeben BillShortStatusStarted=Begonnen BillShortStatusNotPaid=Offen -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=nicht zurückerstattet BillShortStatusClosedUnpaid=Geschlossen BillShortStatusClosedPaidPartially=Bezahlt (teilweise) PaymentStatusToValidShort=zu bestätigen @@ -149,18 +149,18 @@ BillFrom=Von BillTo=An ActionsOnBill=Ereignisse zu dieser Rechnung RecurringInvoiceTemplate=Vorlage/Wiederkehrende Rechnung -NoQualifiedRecurringInvoiceTemplateFound=Keine Vorlagen zur Erstellung von wiederkehrende Rechnungen gefunden. -FoundXQualifiedRecurringInvoiceTemplate=Es wurden %s Vorlagen zur Erstellung von wiederkehrende Rechnung(en) gefunden. +NoQualifiedRecurringInvoiceTemplateFound=Keine Vorlagen zur Erstellung von wiederkehrenden Rechnungen gefunden. +FoundXQualifiedRecurringInvoiceTemplate=Es wurden %s Vorlage(n) zur Erstellung von wiederkehrenden Rechnungen gefunden. NotARecurringInvoiceTemplate=keine Vorlage für wiederkehrende Rechnung NewBill=Neue Rechnung -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Neueste %s Rechnungen +LastCustomersBills=Neueste %s Kundenrechnungen +LastSuppliersBills=Neueste %s Lieferantenrechnungen AllBills=Alle Rechnungen OtherBills=Weitere Rechnungen DraftBills=Rechnungsentwürfe -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Kundenrechnungen Entwürfe +SuppliersDraftInvoices=Entwürfe Lieferantenrechnungen Unpaid=Unbezahlte ConfirmDeleteBill=Möchten Sie diese Rechnung wirklich löschen? ConfirmValidateBill=Möchten Sie diese Rechnung mit der referenz %s wirklich freigeben? @@ -198,27 +198,27 @@ ShowBill=Zeige Rechnung ShowInvoice=Zeige Rechnung ShowInvoiceReplace=Zeige Ersatzrechnung ShowInvoiceAvoir=Zeige Gutschrift -ShowInvoiceDeposit=Show Anzahlung Rechnung -ShowInvoiceSituation=Situation Rechnung anzeigen +ShowInvoiceDeposit=Anzahlungsrechnungen anzeigen +ShowInvoiceSituation=Zeige Fortschritt-Rechnung ShowPayment=Zeige Zahlung AlreadyPaid=Bereits bezahlt AlreadyPaidBack=Bereits zurückbezahlt -AlreadyPaidNoCreditNotesNoDeposits=Bereits bezahlte (ohne Gutschriften und Einlagen) +AlreadyPaidNoCreditNotesNoDeposits=Bereits bezahlt (ohne Gutschriften und Anzahlungen) Abandoned=Aufgegeben RemainderToPay=Offener Zahlbetrag RemainderToTake=Verbleibender Restbetrag -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Restschulden zum zurückzahlen Rest=Ausstehend AmountExpected=Höhe der Forderung ExcessReceived=Erhaltener Überschuss EscompteOffered=Rabatt angeboten (Skonto) EscompteOfferedShort=Rabatt -SendBillRef=Ihre Rechnung %s +SendBillRef=Im Anhang Ihre Rechnung %s SendReminderBillRef=Erinnerung für unsere Rechnung %s StandingOrders=Lastschriften StandingOrder=Lastschrift NoDraftBills=Keine Rechnungsentwürfe -NoOtherDraftBills=Keine Rechnungsentwürfe Anderer +NoOtherDraftBills=Keine weiteren Rechnungsentwürfe NoDraftInvoices=Keine Rechnungsentwürfe RefBill=Rechnungs Nr. ToBill=Zu verrechnen @@ -271,10 +271,10 @@ GlobalDiscount=Rabattregel CreditNote=Gutschrift CreditNotes=Gutschriften Deposit=Anzahlung -Deposits=Einlagen +Deposits=Anzahlungen DiscountFromCreditNote=Rabatt aus Gutschrift %s -DiscountFromDeposit=Die Zahlungen aus Anzahlung Rechnung %s -DiscountFromExcessReceived=Payments from excess received of invoice %s +DiscountFromDeposit=Anzahlung für Rechnung %s +DiscountFromExcessReceived=Überzahlungen von der Rechnung %s empfangen AbsoluteDiscountUse=Diese Art von Guthaben kann verwendet werden auf der Rechnung vor der Validierung CreditNoteDepositUse=Die Rechnung muss bestätigt werden, um Gutschriften zu erstellen NewGlobalDiscount=Neue Rabattregel @@ -282,15 +282,15 @@ NewRelativeDiscount=Neuer relativer Rabatt NoteReason=Anmerkung/Begründung ReasonDiscount=Rabattgrund DiscountOfferedBy=Rabatt angeboten von -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Rabatte verfügbar +DiscountAlreadyCounted=Rabatte bereits berücksichtigt BillAddress=Rechnungsanschrift HelpEscompte=Bei diesem Rabatt handelt es sich um einen Skonto. HelpAbandonBadCustomer=Dieser Betrag wurde aufgegeben (Kundenverschulden) ist als uneinbringlich zu werten. HelpAbandonOther=Dieser Betrag wurde auf Grund eines Fehlers aufgegeben (falsche Rechnung oder an falschen Kunden) IdSocialContribution=Sozialabgaben/Unternehmenssteuer Zahlungs-ID PaymentId=Zahlung id -PaymentRef=Zahlungsreferenz +PaymentRef=Zahlung Nr. InvoiceId=Rechnungs ID InvoiceRef=Rechnungs Nr. InvoiceDateCreation=Datum der Rechnungserstellung @@ -306,11 +306,11 @@ ConfirmCloneInvoice=Möchten Sie diese Rechnung %s wirklich duplizieren? DisabledBecauseReplacedInvoice=Aktion unzulässig, da die betreffende Rechnung ersetzt wurde DescTaxAndDividendsArea=Dieser Bereich zeigt eine Zusammenfassung aller Zahlungen auf spezielle Ausgaben. Nur Zeilen mit Zahlungen in dem Geschäftsjahr werden angezeigt. NbOfPayments=Anzahl der Zahlungen -SplitDiscount=Split Rabatt in zwei +SplitDiscount=Rabatt in zwei aufteilen ConfirmSplitDiscount=Möchten Sie wirklich den Rabatt von %s %s in zwei kleinere Rabatte aufteilen ? -TypeAmountOfEachNewDiscount=Input für jeden der zwei Teile: -TotalOfTwoDiscountMustEqualsOriginal=Insgesamt zwei neue Rabatt muss gleich zu den ursprünglichen Betrag Rabatt. -ConfirmRemoveDiscount=Sind Sie sicher, dass sie dieses Konto löschen wollen? +TypeAmountOfEachNewDiscount=Geben Sie den Betrag für jeden der zwei Teile ein: +TotalOfTwoDiscountMustEqualsOriginal=Summe der beiden neuen Rabatte muss gleich dem ursprünglichen Rabattbetrag sein. +ConfirmRemoveDiscount=Sind Sie sicher, dass sie diesen Rabatt löschen wollen? RelatedBill=Ähnliche Rechnung RelatedBills=Ähnliche Rechnungen RelatedCustomerInvoices=Ähnliche Kundenrechnungen @@ -323,10 +323,10 @@ PaymentOnDifferentThirdBills=Erlaube Zahlungen für Rechnungen an verschiedene P PaymentNote=Zahlungshinweis ListOfPreviousSituationInvoices=Liste der vorherigen Fortschrittsrechnungen ListOfNextSituationInvoices=Liste der nächsten Fortschrittsrechnungen -FrequencyPer_d=jeden %s Tag -FrequencyPer_m=Jeden %s Monat -FrequencyPer_y=Jedes %s Jahr -toolTipFrequency=Examples:
Set 7, Day: give a new invoice every 7 days
Set 3, Month: give a new invoice every 3 month +FrequencyPer_d=alle %s Tage +FrequencyPer_m=Alle %s Monate +FrequencyPer_y=Alle %s Jahre +toolTipFrequency=Beispiele:
Wähle 7 / Tage: eine neue Rechnung alle 7 Tage erstellen
Wähle 3 / Monate : ergibt eine neue Rechnung alle 3 Monate NextDateToExecution=Datum der nächsten Rechnungserstellung DateLastGeneration=Datum der letzten Generierung MaxPeriodNumber=max. Anzahl an Rechnungen @@ -336,20 +336,20 @@ InvoiceAutoValidate=Rechnungen automatisch freigeben GeneratedFromRecurringInvoice=Erstelle wiederkehrende Rechnung %s aus Vorlage DateIsNotEnough=Datum noch nicht erreicht InvoiceGeneratedFromTemplate=Rechnung %s erstellt aus Vorlage für wiederkehrende Rechnung %s -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +WarningInvoiceDateInFuture=Achtung, das Rechnungsdatum ist höher als das aktuelle Datum +WarningInvoiceDateTooFarInFuture=Achtung, das Rechnungsdatum ist zu weit entfernt vom aktuellen Datum # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=sofort +PaymentConditionRECEP=Sofort nach Erhalt PaymentConditionShort30D=30 Tage PaymentCondition30D=30 Tage netto PaymentConditionShort30DENDMONTH=30 Tage ab Monatsende -PaymentCondition30DENDMONTH=Innerhalb von 30 Tagen, nach Monatsende +PaymentCondition30DENDMONTH=Innerhalb von 30 Tagen nach Monatsende PaymentConditionShort60D=60 Tage PaymentCondition60D=60 Tage PaymentConditionShort60DENDMONTH=60 Tage ab Monatsende -PaymentCondition60DENDMONTH=Innerhalb von 60 Tagen, nach Monatsende +PaymentCondition60DENDMONTH=Innerhalb von 60 Tagen nach Monatsende PaymentConditionShortPT_DELIVERY=Lieferung PaymentConditionPT_DELIVERY=Bei Lieferung PaymentConditionShortPT_ORDER=Bestellung @@ -357,20 +357,20 @@ PaymentConditionPT_ORDER=Bei Bestellung PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% im Voraus, 50%% bei Lieferung PaymentConditionShort10D=10 Tage -PaymentCondition10D=10 Tage netto -PaymentConditionShort10DENDMONTH=10 Tage ab Monatsende -PaymentCondition10DENDMONTH=Innerhalb von 10 Tagen, nach Monatsende +PaymentCondition10D=10 Tage +PaymentConditionShort10DENDMONTH=10 Tage nach Monatsende +PaymentCondition10DENDMONTH=Innerhalb von 10 Tagen nach Monatsende PaymentConditionShort14D=14 Tage -PaymentCondition14D=14 Tage netto -PaymentConditionShort14DENDMONTH=14 Tage ab Monatsende -PaymentCondition14DENDMONTH=Innerhalb von 14 Tagen, nach Monatsende +PaymentCondition14D=14 Tage +PaymentConditionShort14DENDMONTH=14 Tage nach Monatsende +PaymentCondition14DENDMONTH=Innerhalb von 14 Tagen nach Monatsende FixAmount=Fester Betrag VarAmount=Variabler Betrag (%% tot.) # PaymentType PaymentTypeVIR=Banküberweisung PaymentTypeShortVIR=Banküberweisung -PaymentTypePRE=Bestellung mit Zahlart Lastschrift -PaymentTypeShortPRE=Bestellung mit Zahlart Lastschrift +PaymentTypePRE=Lastschrift +PaymentTypeShortPRE=Lastschrift PaymentTypeLIQ=Bar PaymentTypeShortLIQ=Bar PaymentTypeCB=Kreditkarte @@ -407,7 +407,7 @@ NetToBePaid=Netto Zahlbetrag PhoneNumber=Tel FullPhoneNumber=Telefon TeleFax=Fax -PrettyLittleSentence=Nehmen Sie die Höhe der Zahlungen, die aufgrund von Schecks, die in meinem Namen als Mitglied eines Accounting Association, die von der Steuerverwaltung. +PrettyLittleSentence=Akzeptiere die Höhe der Zahlungen, der fälligen Beträge per Scheck an meinen Namen in meiner Eigenschaft als Mitglied der Buchhaltung, genehmigt von der Steuerverwaltung. IntracommunityVATNumber=Innergemeinschaftliche USt-Nummer PaymentByChequeOrderedTo=Zahlung per Scheck zu zahlen sind, um %s an PaymentByChequeOrderedToShort=Zahlung per Scheck zu zahlen sind, um @@ -433,13 +433,13 @@ ChequeDeposits=Scheckeinlagen Cheques=Schecks DepositId=Scheck Nr. NbCheque=Schecknummer -CreditNoteConvertedIntoDiscount=This %s has been converted into %s +CreditNoteConvertedIntoDiscount=Diese Gutschrift %s wurde in %s umgewandelt UsBillingContactAsIncoiveRecipientIfExist=Verwenden Sie Kunden Abrechnung Kontakt-Adresse anstelle von Dritten als Empfänger-Adresse für Rechnungen ShowUnpaidAll=Zeige alle unbezahlten Rechnungen ShowUnpaidLateOnly=Zeige nur verspätete unbezahlte Rechnung PaymentInvoiceRef=Die Zahlung der Rechnung %s ValidateInvoice=Rechnung freigeben -ValidateInvoices=Validate invoices +ValidateInvoices=Rechnungen freigeben Cash=Bar Reported=Verzögert DisabledBecausePayments=Nicht möglich, da es Zahlungen gibt @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Die Zahlung kann nicht entfernt werden, da e ExpectedToPay=Erwartete Zahlung CantRemoveConciliatedPayment=Zugeordnete Zahlung kann nicht gelöscht werden. PayedByThisPayment=mit dieser Zahlung beglichen -ClosePaidInvoicesAutomatically=Markiert alle Standard- oder Ersatzrechnungen als "bezahlt", wenn diese vollständig beglichen sind. +ClosePaidInvoicesAutomatically=Markiert alle Standard-, Anzahlungs- oder Ersatzrechnungen als "bezahlt", wenn diese vollständig beglichen sind. ClosePaidCreditNotesAutomatically=Markiert alle Gutschriften als "bezahlt", wenn diese vollständig beglichen sind. ClosePaidContributionsAutomatically=Vollständig beglichenen Sozialabgaben oder Steuerbeträge als "bezahlt" kennzeichnen. AllCompletelyPayedInvoiceWillBeClosed=Alle Rechnungen ohne ausstehende Zahlungen werden automatisch geschlossen und als "bezahlt" markiert. @@ -464,7 +464,7 @@ PDFCrevetteDescription=PDF Rechnungsvorlage Crevette. Vollständige Rechnungsvol TerreNumRefModelDesc1=Liefert eine Nummer mit dem Format %syymm-nnnn für Standard-Rechnungen und %syymm-nnnn für Gutschriften, wobei yy=Jahr, mm=Monat und nnnn eine lückenlose Folge ohne Überlauf auf 0 ist MarsNumRefModelDesc1=Liefere Nummer im Format %syymm-nnnn für Standardrechnungen %syymm-nnnn für Ersatzrechnung, %syymm-nnnn für Anzahlungsrechnung und %syymm-nnnn für Gutschriften wobei yy Jahr, mm Monat und nnnn eine laufende Nummer ohne Unterbrechung und ohne Rückkehr zu 0 ist. TerreNumRefModelError=Eine Rechnung, beginnend mit $ syymm existiert bereits und ist nicht kompatibel mit diesem Modell der Reihe. Entfernen oder umbenennen, um dieses Modul. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Rückgabenummer mit Format %syymm-nnnn für Standard-Rechnungen, %syymm-nnnn für Gutschriften und %syymm-nnnn für Anzahlungsrechnungen wo yy Jahr ist, mm ist der Monat und nnnn eine lückenlose Folge ohne Überlauf auf 0 ist ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Repräsentative Follow-up Kundenrechnung TypeContact_facture_external_BILLING=Kundenrechnung Kontakt @@ -475,26 +475,26 @@ TypeContact_invoice_supplier_external_BILLING=Lieferantenrechnung Kontakt TypeContact_invoice_supplier_external_SHIPPING=Lieferantenversand Kontakt TypeContact_invoice_supplier_external_SERVICE=Lieferantenservice Kontakt # Situation invoices -InvoiceFirstSituationAsk=Erste Situation Rechnung +InvoiceFirstSituationAsk=Erste Fortschritt-Rechnung InvoiceFirstSituationDesc=Die Situation Rechnungen auf Situationen zu einer Progression bezogen gebunden, beispielsweise das Fortschreiten einer Konstruktion. Jede Situation ist mit einer Rechnung gebunden. -InvoiceSituation=Situation Rechnung +InvoiceSituation=Rechnung nach Fortschritt InvoiceSituationAsk=Rechnung folgende Situation InvoiceSituationDesc=Erstellen Sie eine neue Situation im Anschluss an eine bereits bestehende SituationAmount=Situation Rechnungsbetrag (ohne USt.) SituationDeduction=Situation Subtraktion ModifyAllLines=Bearbeite alle Zeilen -CreateNextSituationInvoice=Erstelle nächsten Position +CreateNextSituationInvoice=Erstelle nächsten Fortschritt-Rechnung NotLastInCycle=Diese Rechnung ist nicht die letzte im Zyklus und darf nicht geändert werden. -DisabledBecauseNotLastInCycle=Der folgende Situation ist bereits vorhanden. +DisabledBecauseNotLastInCycle=Die nächste Situation existiert bereits. DisabledBecauseFinal=Dieser Status ist endgültig. CantBeLessThanMinPercent=Der Fortschritt kann nicht kleiner als sein bisheriger Wert werden. NoSituations=Keine offenen Positionen InvoiceSituationLast=Allgemeine Endrechnung -PDFCrevetteSituationNumber=Situation Nr. %s +PDFCrevetteSituationNumber=Fortschritt-Rechnung Nr. %s PDFCrevetteSituationInvoiceLineDecompte=Fortschrittsrechnungen - Anzahl PDFCrevetteSituationInvoiceTitle=Rechnung nach Fortschritt -PDFCrevetteSituationInvoiceLine=Fortschritt Nr. %s: Rechnung Nr. %s nach %s -TotalSituationInvoice=Gesamtsituation +PDFCrevetteSituationInvoiceLine=Fortschritt ReNr. %s: Rechnung ReNr. %s nach %s +TotalSituationInvoice=Gesamt Fortschrittrechnung invoiceLineProgressError=Fortschritt der Rechnungsposition kann nicht größer oder gleich sein wie der Status der nächsten Rechnungsposition updatePriceNextInvoiceErrorUpdateline=Fehler: Preis der Rechnungsposition %s aktualisieren ToCreateARecurringInvoice=Um eine wiederkehrende Rechnung für diesen Vertrag zu erstellen, legen Sie zuerst einen Rechnungsentwurf an, wandeln diesen dann in eine Rechnungsvorlage um und definieren die Häufigkeit der Erstellung der zukünftigen Rechnungen. @@ -502,5 +502,5 @@ ToCreateARecurringInvoiceGene=Um zukünftige Rechnungen regelmäßig und manuell ToCreateARecurringInvoiceGeneAuto=Wollen Sie diese Rechnungen automatisch generieren lassen, fragen Sie Ihren Administrator das Modul %s zu aktivieren und einzurichten. Sie können beide Methoden (manuell und automatisch) ohne Risiko von doppelten Rechnungen zusammen verwenden. DeleteRepeatableInvoice=Rechnungs-Template löschen ConfirmDeleteRepeatableInvoice=Möchten Sie diese Rechnungsvorlage wirklich löschen? -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order) -BillCreated=%s bill(s) created +CreateOneBillByThird=Erstelle eine Rechnung pro Partner (andernfalls, eine Rechnung pro Bestellung) +BillCreated=%s Rechnung(en) erstellt diff --git a/htdocs/langs/de_DE/bookmarks.lang b/htdocs/langs/de_DE/bookmarks.lang index cf273d8952c..25634d7a2d0 100644 --- a/htdocs/langs/de_DE/bookmarks.lang +++ b/htdocs/langs/de_DE/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Anfügen dieser Seite zu den Lesezeichen +AddThisPageToBookmarks=Diese Seite zu den Lesezeichen hinzufügen Bookmark=Lesezeichen Bookmarks=Lesezeichen +ListOfBookmarks=Liste der Lesezeichen +EditBookmarks=Lesezeichen auslisten/ändern NewBookmark=Neues Lesezeichen ShowBookmark=Zeige Lesezeichen OpenANewWindow=Neues Fenster öffnen @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Neues Fenster BookmarkTargetReplaceWindowShort=Aktuelles Fenster BookmarkTitle=Titel des Lesezeichens UrlOrLink=Link -BehaviourOnClick=Verhalten wenn ein Link geklickt wird +BehaviourOnClick=Verhalten wenn ein Lesezeichen angewählt wird CreateBookmark=Lesezeichen erstellen SetHereATitleForLink=Erfasse hier einen Titel für das Lesezeichen UseAnExternalHttpLinkOrRelativeDolibarrLink=Verwenden Sie eine absolute externe URL oder eine relative Dolibarr URL diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index de619147a95..c37a67ea7d5 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Logininformationen BoxLastRssInfos=Informationen RSS Feed BoxLastProducts=Neueste %s Produkte/Leistungen BoxProductsAlertStock=Bestandeswarnungen für Produkte @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=%s neueste Lieferanten BoxTitleLastModifiedSuppliers=%s zuletzt bearbeitete Lieferanten BoxTitleLastModifiedCustomers=%s zuletzt bearbeitete Kunden BoxTitleLastCustomersOrProspects=%s neueste Kunden oder Interessenten -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Neueste %s Kundenrechnungen +BoxTitleLastSupplierBills=Neueste %s Lieferantenrechnungen BoxTitleLastModifiedProspects=%s zuletzt bearbeitete Leads BoxTitleLastModifiedMembers=%s neueste Mitglieder BoxTitleLastFicheInter=%s zuletzt bearbeitete Serviceaufträge @@ -37,7 +38,7 @@ BoxTitleLastModifiedContacts=Letzte %s bearbeitete Kontakte/Adressen BoxMyLastBookmarks=Meine %s neuesten Lesezeichen BoxOldestExpiredServices=Die ältesten abgelaufenen aktiven Dienste BoxLastExpiredServices=Letzte %s älteste Kontake mit aktiven abgelaufenen Diensten. -BoxTitleLastActionsToDo=%s neueste Aufgaben zu erledigen +BoxTitleLastActionsToDo=Letzte %s Aufgaben zu erledigen BoxTitleLastContracts=%s zuletzt veränderte Verträge BoxTitleLastModifiedDonations=Letzte %s geänderte Spenden. BoxTitleLastModifiedExpenses=Letzte %s geänderte Spesenabrechnungen. @@ -51,12 +52,12 @@ ClickToAdd=Hier klicken um hinzuzufügen. NoRecordedCustomers=Keine erfassten Kunden NoRecordedContacts=Keine erfassten Kontakte NoActionsToDo=Keine Aufgaben/Termine zu erledigen -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Keine erfassten Kundenaufträge NoRecordedProposals=Keine erfassten Angebote -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices -NoModifiedSupplierBills=No recorded supplier invoices +NoRecordedInvoices=Keine erfassten Kundenrechnungen +NoUnpaidCustomerBills=Keine offenen Kundenrechnungen +NoUnpaidSupplierBills=Keine offenen Lieferantenrechnungen +NoModifiedSupplierBills=Keine erfassten Lieferantenrechnungen NoRecordedProducts=Keine erfassten Produkte/Leistungen NoRecordedProspects=Keine erfassten Leads NoContractedProducts=Keine Produkte/Leistungen im Auftrag @@ -82,3 +83,4 @@ ForCustomersOrders=Kundenaufträge ForProposals=Angebote LastXMonthRolling=Die letzten %s Monate gleitend ChooseBoxToAdd=Box zu Ihrer Startseite hinzufügen... +BoxAdded=Box wurde zu Ihrer Startseite hinzugefügt diff --git a/htdocs/langs/de_DE/categories.lang b/htdocs/langs/de_DE/categories.lang index a78c6a22c66..60e534f406e 100644 --- a/htdocs/langs/de_DE/categories.lang +++ b/htdocs/langs/de_DE/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=#tag/Kategorie Rubriques=#tags/Kategorien +RubriquesTransactions=Tags/Kategorien der Transaktionen categories=Tags/Kategorien NoCategoryYet=Keine Kategorie/#tags dieser Art erstellt In=In @@ -34,7 +35,7 @@ CompanyIsInSuppliersCategories=Dieser Parnter ist folgenden Lieferanten- Kategor MemberIsInCategories=Dieses Mitglied ist folgenden Mitglieder- Kategorien/#tags zugewiesen ContactIsInCategories=Dieser Kontakt ist folgenden Kontakte- Kategorien/#tags verknüpft ProductHasNoCategory=Dieses Produkt/Leistung ist keiner Kategorie zugewiesen. -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=Der Partner ist in keinen Tags/Kategorien MemberHasNoCategory= Dieses Mitglied ist keiner Kategorie zugewiesen. ContactHasNoCategory= Dieser Kontakt ist keiner Kategorie zugewiesen. ProjectHasNoCategory=Dieses Projekt ist keiner Kategorie oder Suchwörtern zugewiesen. @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Diese Kategorie existiert bereits auf diesem Level ContentsVisibleByAllShort=Öffentlicher Inhalt ContentsNotVisibleByAllShort=Privater Inhalt DeleteCategory=Lösche Kategorie -ConfirmDeleteCategory=Möchten Sie diese Kategorie wirklich löschen? +ConfirmDeleteCategory=Möchten Sie dieses Tag / Kategorie wirklich löschen ? NoCategoriesDefined=Keine Kategorie definiert SuppliersCategoryShort=Lieferantenkategorien CustomersCategoryShort=Kunden-Kategorie/#tag diff --git a/htdocs/langs/de_DE/commercial.lang b/htdocs/langs/de_DE/commercial.lang index 7d8017132ba..1429836426a 100644 --- a/htdocs/langs/de_DE/commercial.lang +++ b/htdocs/langs/de_DE/commercial.lang @@ -12,13 +12,14 @@ AddAnAction=Erstelle Termin/Aufgabe AddActionRendezVous=erstelle Termin ConfirmDeleteAction=Möchten Sie diese Veranstaltung wirklich löschen ? CardAction=Ereignis - Karte -ActionOnCompany=Verknüpfte Unternehmen +ActionOnCompany=Verknüpftes Unternehmen ActionOnContact=Verknüpfter Kontakt TaskRDVWith=Termin mit %s ShowTask=Zeige Aufgabe ShowAction=Ereignisse anzeigen ActionsReport=Ereignis Journal ThirdPartiesOfSaleRepresentative=Partner mit Vertriebsmitarbeiter +SaleRepresentativesOfThirdParty=Vertriebsmittarbeiter des Partners SalesRepresentative=Vertriebsmitarbeiter SalesRepresentatives=Vertreter SalesRepresentativeFollowUp=Vertriebsmitarbeiter (Follow-up) @@ -28,7 +29,7 @@ ShowCustomer=Zeige Kunden ShowProspect=Zeige Lead ListOfProspects=Leads-Liste ListOfCustomers=Kundenliste -LastDoneTasks=Latest %s completed actions +LastDoneTasks=Letzte %s erledigte Aufgaben LastActionsToDo=%s älteste nicht erledigte Aufgaben DoneAndToDoActions=Abgeschlossene und zu unvollständige Ereignisse DoneActions=Abgeschlossene Ereignisse diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index 47557948f95..383e613d27e 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Neue Privatperson NewCompany=Neues Unternehmen (Leads, Kunden, Lieferanten) NewThirdParty=Neuer Partner (Leads, Kunden, Lieferanten) CreateDolibarrThirdPartySupplier=Neuen Partner erstellen (Lieferant) -CreateThirdPartyOnly=Erzeuge Partner +CreateThirdPartyOnly=Partner erstellen CreateThirdPartyAndContact=Neuen Partner und Unteradresse erstellen ProspectionArea=Übersicht Geschäftsanbahnung IdThirdParty=Partner-ID @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kunden ThirdPartyCustomersWithIdProf12=Kunden mit %s oder %s ThirdPartySuppliers=Lieferanten ThirdPartyType=Typ des Partners -Company/Fundation=Firma/Institution Individual=Privatperson ToCreateContactWithSameName=Erzeugt automatisch einen Kontakt/Adresse mit der gleichen Information wie der Partner unter dem Partner. In den meisten Fällen, auch wenn Ihr Prtner eine natürliche Person ist, reicht nur die Anlage eines Partners ParentCompany=Muttergesellschaft @@ -78,10 +77,10 @@ VATIsNotUsed=Nicht USt-pflichtig CopyAddressFromSoc=Anschriften zu diesem Partner ThirdpartyNotCustomerNotSupplierSoNoRef=Partner ist weder Kunde noch Lieferant, keine verbundenen Objekte PaymentBankAccount=Bankkonto für Zahlungen -OverAllProposals=Gesamt Angebote -OverAllOrders=Gesamt Auftragseingang -OverAllInvoices=Gesamt Rechnungen -OverAllSupplierProposals=Gesamt Lieferanten Angebote +OverAllProposals=Angebote +OverAllOrders=Bestellungen +OverAllInvoices=Rechnungen +OverAllSupplierProposals=Preisanfragen ##### Local Taxes ##### LocalTax1IsUsed=Nutze zweiten Steuersatz LocalTax1IsUsedES= RE wird verwendet @@ -237,6 +236,12 @@ ProfId3TN=Douane-Code ProfId4TN=BAN ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=DVR-Nummer +ProfId3US=DVR-Nummer +ProfId4US=DVR-Nummer +ProfId5US=DVR-Nummer +ProfId6US=DVR-Nummer ProfId1RU=OGRN ProfId2RU=INN ProfId3RU=KPP @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Rabatt relativ CustomerAbsoluteDiscountShort=Rabatt absolut CompanyHasRelativeDiscount=Dieser Kunde hat einen Rabatt von %s%% CompanyHasNoRelativeDiscount=Dieser Kunde hat standardmäßig keinen relativen Rabatt -CompanyHasAbsoluteDiscount=Dieser Kunde hat noch Rabatt-Gutschriften über %s %s +CompanyHasAbsoluteDiscount=Dieser Kunde hat noch ein Guthaben (Gutschrift oder Überzahlung) über %s %s CompanyHasCreditNote=Dieser Kunde hat noch Gutschriften über %s %s CompanyHasNoAbsoluteDiscount=Dieser Kunde hat keine Rabattgutschriften zur Verfügung CustomerAbsoluteDiscountAllUsers=Absolute Rabatte (von allen Nutzern gewährte) @@ -377,7 +382,7 @@ AddAddress=Adresse hinzufügen SupplierCategory=Lieferantenkategorie JuridicalStatus200=Unabhängig DeleteFile=Datei löschen -ConfirmDeleteFile=Sind Sie sicher dass Sie diese Datei löschen möchten? +ConfirmDeleteFile=Möchten Sie diese Datei wirklich löschen? AllocateCommercial=Dem Vertriebsmitarbeiter zugewiesen Organization=Partner FiscalYearInformation=Informationen über das Geschäftsjahr @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kunden / Lieferanten-Code ist frei. Dieser Code kann jede ManagingDirectors=Name(n) des/der Manager (CEO, Direktor, Geschäftsführer, ...) MergeOriginThirdparty=Partner duplizieren (Partner den Sie löschen möchten) MergeThirdparties=Partner zusammenlegen -ConfirmMergeThirdparties=Möchten Sie wirklich diesen Partner mit dem aktuellen zusammenführen ? Alle verbundenen Objekte werden zusammengeführt, so das Sie die doppelten löschen können. +ConfirmMergeThirdparties=Möchten Sie wirklich diesen Partner mit dem Aktuellen zusammenführen? Alle verbundenen Objekte (Rechnungen, Aufträge, ...) werden mit dem Aktuellen zusammengeführt, dann wird der Partner gelöscht werden. ThirdpartiesMergeSuccess=Partner wurden zusammengelegt SaleRepresentativeLogin=Login des Vertriebsmitarbeiters SaleRepresentativeFirstname=Vorname des Vertreter diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index 4d97901f907..ab2b2312722 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Die hier ausgewiesenen Beträge werden un Param=Einstellungen RemainingAmountPayment=Noch zu leistende Zahlung: Account=Konto -Accountparent=Kontohalter -Accountsparent=Kontohalter +Accountparent=Übergeordnetes Konto +Accountsparent=Übergeordnete Konten Income=Einnahmen Outcome=Ausgaben ReportInOut=Ergebnis / Geschäftsjahr @@ -56,6 +56,7 @@ MenuTaxAndDividends=Steuern und Abgaben MenuSocialContributions=Sozialabgaben/Steuern MenuNewSocialContribution=Neue Abgabe/Steuer NewSocialContribution=Neue Sozialabgabe / Steuersatz +AddSocialContribution=Sozialabgabe / Steuersatz hinzufügen ContributionsToPay=Sozialabgaben/Unternehmenssteuern zu bezahlen AccountancyTreasuryArea=Rechnungswesen/Vermögensverwaltung NewPayment=Neue Zahlung @@ -82,12 +83,12 @@ LT2PaymentES=EKSt. Zahlung LT2PaymentsES=EKSt. Zahlungen VATPayment=USt. Zahlung VATPayments=USt Zahlungen -VATRefund=Sales tax refund +VATRefund=Umsatzsteuer Rückerstattung Refund=Rückerstattung SocialContributionsPayments=Sozialabgaben-/Steuer Zahlungen ShowVatPayment=Zeige USt. Zahlung TotalToPay=Zu zahlender Gesamtbetrag -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account +BalanceVisibilityDependsOnSortAndFilters=Differenz ist nur in dieser Liste sichtbar, wenn die Tabelle aufsteigend nach %s sortiert ist und gefiltert mit nur 1 Bankkonto CustomerAccountancyCode=Kontierungscode Kunde SupplierAccountancyCode=Kontierungscode Lieferant CustomerAccountancyCodeShort=Buchh. Kunden-Konto @@ -134,8 +135,8 @@ RulesResultDue=- Dies beinhaltet ausstehende Rechnungen, Aufwendungen, Umsatzste RulesResultInOut=- Es sind nur tatsächliche Zahlungen für Rechnungen, Kostenabrechnungen, USt und Gehälter enthalten.
- Bei Rechnungen, Kostenabrechnungen, USt und Gehälter gilt das Zahlugnsdatum. Bei Spenden gilt das Spendendatum. RulesCADue=- es beinhaltet alle fälligen Kundenrechnungen, unabhängig von ihrem Zahlungsstatus.
- Es gilt das Freigabedatum der Rechnungen.
RulesCAIn=- Beinhaltet alle tatsächlich erfolgten Zahlungen von Kunden.
- Es gilt das Zahlungsdatum der Rechnungen.
-DepositsAreNotIncluded=- Noch sind Anzahlungsrechnungen inbegriffen -DepositsAreIncluded=- Anzahlungsrechnungen sind inbegriffen +DepositsAreNotIncluded=- Ohne Anzahlungsrechnungen +DepositsAreIncluded=- Inklusive Anzahlungsrechnungen LT2ReportByCustomersInInputOutputModeES=Bericht von Partner EKSt. LT1ReportByCustomersInInputOutputModeES=Bericht von Kunden RE VATReport=USt-Bericht @@ -169,7 +170,7 @@ DescSellsJournal=Verkaufsjournal DescPurchasesJournal=Einkaufsjournal InvoiceRef=Rechnungs-Nr. CodeNotDef=Nicht definiert -WarningDepositsNotIncluded=Abschlagsrechnungen werden in dieser Version des Rechnungswesens nicht berücksichtigt. +WarningDepositsNotIncluded=Anzahlungsrechnungen werden in dieser Version des Rechnungswesens nicht berücksichtigt. DatePaymentTermCantBeLowerThanObjectDate=Die Zahlungsfrist darf nicht kleiner als das Objektdatum sein Pcg_version=Kontenplan Pcg_type=Klasse des Kontos @@ -186,16 +187,18 @@ CalculationRuleDescSupplier=Gemäß Ihrem Lieferanten, wählen Sie die geeignet TurnoverPerProductInCommitmentAccountingNotRelevant=Umsatz Bericht pro Produkt, bei der Verwendung einer Kassabuch Buchhaltung ist der Modus nicht relevant. Dieser Bericht ist nur bei Verwendung Buchführungsmodus Periodenrechnung (siehe Setup das Modul Buchhaltung). CalculationMode=Berechnungsmodus AccountancyJournal=Buchhaltungscode-Journal -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) +ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für die Erhebung der MwSt. - Mehrwertsteuer auf den Umsatz (wird verwendet, wenn nicht bei der Konfiguration des MwSt-Wörterbuch definiert) +ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer - Ust bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze definiert) ACCOUNTING_VAT_PAY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Standard Buchhaltungskonto für Kunden/Debitoren (wenn nicht beim Partner definiert) +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Standard Buchhaltungskonto für Lieferanten/Kreditoren (wenn nicht beim Lieferanten definiert) +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Dupliziere Sozialabgabe/Steuersatz ConfirmCloneTax=Bestätigen Sie die Duplizierung der Steuer-/Sozialabgaben-Zahlung CloneTaxForNextMonth=Für nächsten Monat duplizieren SimpleReport=Einfache Berichte -AddExtraReport=Extra reports (add foreign and national customer report) +AddExtraReport=Zusätzliche Berichte (Fügen Sie fremde und nationalen Kundenbericht hinzu) OtherCountriesCustomersReport=Bericht Ausländische Kunden BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Basierend auf den ersten beiden Buchstaben der Mehrwertsteuernummer die unterschiedlich ist, wie Ihr eigener Unternehmens Ländercode. SameCountryCustomersWithVAT=Nationale Kunden berichten @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Sozialabgaben/Steuern ImportDataset_tax_vat=USt.-Zahlungen ErrorBankAccountNotFound=Fehler: Bankkonto nicht gefunden FiscalPeriod=Buchhaltungs Periode +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index 42e69a30bad..c15654ab9f9 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -39,7 +39,7 @@ ConfirmCloseService=Möchten Sie diesen Service wirklich mit Datum %s dea ValidateAContract=Einen Vertrag freigeben ActivateService=Service aktivieren ConfirmActivateService=Möchten Sie dieses Service wirklich mit Datum %s aktivieren? -RefContract=Vertragsnummer +RefContract=Vertrag Nr. DateContract=Vertragsdatum DateServiceActivate=Service-Aktivierungsdatum ShowContract=Zeige Vertrag @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen an Partner, be StandardContractsTemplate=Standard Vertragsschablone ContactNameAndSignature=Für %s, Name und Unterschrift OnlyLinesWithTypeServiceAreUsed=Nur die Zeile der Kategorie "Service" wird kopiert. +CloneContract=Dupliziere Vertrag +ConfirmCloneContract=Möchten Sie den Vertrag %s wirklich duplizieren? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Vertragsunterzeichnung durch Vertreter diff --git a/htdocs/langs/de_DE/cron.lang b/htdocs/langs/de_DE/cron.lang index 9a869bfd7e3..fbce22048e1 100644 --- a/htdocs/langs/de_DE/cron.lang +++ b/htdocs/langs/de_DE/cron.lang @@ -17,15 +17,15 @@ CronMethodDoesNotExists=Klasse %s enthält keine Methode %s # Menu EnabledAndDisabled=Aktiviert und Deaktiviert # Page list -CronLastOutput=Latest run output -CronLastResult=Latest result code +CronLastOutput=Ausgabe der letzten Ausführung +CronLastResult=Letzter Resultatcode CronCommand=Befehl CronList=Geplante Aufträge CronDelete=cronjobs löschen CronConfirmDelete=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt löschen möchten? CronExecute=Geplanter Auftrag jetzt ausführen CronConfirmExecute=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt ausführen möchten? -CronInfo=Das Modul "Zeitgesteuerte Cron-Jobs" erlaubt die geplanten Cron-Jobs die programmiert wurden durchzuführen. +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=Keine CronDtStart=nicht vor @@ -57,12 +57,12 @@ CronStatusActiveBtn=Aktivieren CronStatusInactiveBtn=Deaktivieren CronTaskInactive=Dieser Job ist deaktiviert CronId=ID -CronClassFile=Klassen (filenames.class.php) -CronModuleHelp=Name des Dolibarr Modul (funktioniert auch mit externen Dolibarr Modul).
Als Beispiel um die Funktion fetch der Dolibarr Produkt Klasse /htdocs/product/class/product.class.php aufzurufen, der Wert des Modul ist product. -CronClassFileHelp=Der Name der Datei zu laden
Als Beispiel um die Funktion fetch der Dolibarr Produkt Klasse /htdocs/product/class/product.class.php aufzurufen, ist der Name der Datei product.class.php -CronObjectHelp=Der Klassennamen um zu laden.
Als Beispiel um die Funktion fetch der Dolibarr Produkt Klasse /htdocs/product/class/product.class.php aufzurufen, der Klassennamen-Wert ist Produkt- -CronMethodHelp=Die Objektmethode, um zu starten.
Zum Beispiel um die Methode fetch vom Dolibarr Produkt Objekt /htdocs/product/class/product.class.php aufzurufen, ist der Methoden-Wert fetch -CronArgsHelp=Das Methodenargument/Input-Parameter.
Zum Beispiel um die Methode fetch vom Dolibarr Produkt Objekt /htdocs/product/class/product.class.php aufzurufen, ist der Input-Parameter-Wert 0, RefProduit +CronClassFile=Dateiname mit Klasse +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Die auszuführende System-Kommandozeile CronCreateJob=Erstelle neuen cronjob CronFrom=Von @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Gehen Sie in Menü "Start - Module Hilfsprogramm JobDisabled=Aufgabe deaktiviert MakeLocalDatabaseDumpShort=lokales Datenbankbackup MakeLocalDatabaseDump=erstelle einen lokalen Datenbankdump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 2e20b808f45..693f4989ce6 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -11,13 +11,15 @@ ErrorLoginAlreadyExists=Benutzername %s existiert bereits. ErrorGroupAlreadyExists=Gruppe %s existiert bereits. ErrorRecordNotFound=Eintrag wurde nicht gefunden. ErrorFailToCopyFile=Konnte die Datei '%s' nicht nach '%s' kopieren. -ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. +ErrorFailToCopyDir=Konnte Verzeichnis '%s' nicht nach '%s' kopieren. ErrorFailToRenameFile=Konnte die Datei '%s' nicht in '%s' umzubenennen. ErrorFailToDeleteFile=Fehler beim Löschen der Datei '%s'. ErrorFailToCreateFile=Fehler beim Erstellen der Datei '%s'. ErrorFailToRenameDir=Fehler beim Umbenennen des Verzeichnisses '%s' in '%s'. ErrorFailToCreateDir=Fehler beim Erstellen des Verzeichnisses '%s'. ErrorFailToDeleteDir=Fehler beim Löschen des Verzeichnisses '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Konnte Datei '%s' nicht erstellen. ErrorThisContactIsAlreadyDefinedAsThisType=Dieser Kontakt ist bereits als Kontakt dieses Typs definiert. ErrorCashAccountAcceptsOnlyCashMoney=Dies ist ein Bargeldkonto (Kasse) und akzeptiert deshalb nur Bargeldtransaktionen. ErrorFromToAccountsMustDiffers=Quell- und Zielbankkonto müssen unterschiedlich sein. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Fehler beim Schreiben in das Verzeichnis %s ErrorFoundBadEmailInFile=Ungültige E-Mail-Adresse in %s Zeilen der Datei gefunden (z.B. Zeile %s mit E-Mail=%s) ErrorUserCannotBeDelete=Dieser Benutzer kann nicht gelöscht werden. Eventuell ist er noch mit einem Partner verknüpft. ErrorFieldsRequired=Ein oder mehrere erforderliche Felder wurden nicht ausgefüllt. +ErrorSubjectIsRequired=Der E-Mailbetreff ist notwendig ErrorFailedToCreateDir=Fehler beim Erstellen eines Verzeichnisses. Vergewissern Sie sich, dass der Webserver-Benutzer Schreibberechtigungen für das Dokumentverzeichnis des Systems besitzt. Bei aktiviertem safe_mode sollten die Systemdateien den Webserver-Benutzer oder die -Gruppe als Besitzer haben. ErrorNoMailDefinedForThisUser=Für diesen Benutzer ist keine E-Mail-Adresse eingetragen. ErrorFeatureNeedJavascript=Diese Funktion erfordert aktiviertes JavaScript. Sie können dies unter Einstellungen-Anzeige ändern. @@ -70,7 +73,7 @@ ErrorLDAPSetupNotComplete=Der LDAP-Abgleich für dieses System ist nicht vollst ErrorLDAPMakeManualTest=Eine .ldif-Datei wurde im Verzeichnis %s erstellt. Laden Sie diese Datei von der Kommandozeile aus um mehr Informationen über Fehler zu erhalten. ErrorCantSaveADoneUserWithZeroPercentage=Ereignisse können nicht mit Status "Nicht begonnen" gespeichert werden, wenn das Feld "Erledigt durch" ausgefüllt ist. ErrorRefAlreadyExists=Die Nr. für den Erstellungsvorgang ist bereits vergeben -ErrorPleaseTypeBankTransactionReportName=Please type bank statement name where entry is reported (Format YYYYMM or YYYYMMDD) +ErrorPleaseTypeBankTransactionReportName=Geben Sie den Kontoauszug an, in dem die Zahlung enthalten ist (Format JJJJMM oder JJJJMMTT) ErrorRecordHasChildren=Kann diesen Eintrag nicht löschen. Dieser Eintrag wird von mindestens einem untergeordneten Datensatz verwendet. ErrorRecordIsUsedCantDelete=Eintrag kann nicht gelöscht werden. Er wird bereits benutzt oder ist in einem anderen Objekt enthalten. ErrorModuleRequireJavascript=Diese Funktion erfordert aktiviertes JavaScript. Aktivieren/deaktivieren können Sie Javascript im Menü Start-> Einstellungen->Anzeige. @@ -114,9 +117,9 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Mengen in Kundenrechnungen dürfen nich ErrorWebServerUserHasNotPermission=Der Benutzerkonto %s wurde verwendet um auf dem Webserver etwas auszuführen, hat aber keine Rechte dafür. ErrorNoActivatedBarcode=Kein Barcode aktiviert ErrUnzipFails=Fehler beim Entpacken von %s mit ZipArchive -ErrNoZipEngine=Kein Entpackprogramm in PHP gefunden für Datei %s +ErrNoZipEngine=Kein Pack/Entpackprogramm in PHP gefunden für Datei %s ErrorFileMustBeADolibarrPackage=Die Datei %s muss ein Dolibarr ZIP-Paket sein -ErrorModuleFileRequired=You must select a Dolibarr module package file +ErrorModuleFileRequired=Sie müssen eine Dolibarr Modul-Paket-Datei wählen ErrorPhpCurlNotInstalled=PHP CURL ist nicht installiert, aber erforderlich für Paypal ErrorFailedToAddToMailmanList=Fehler beim Hinzufügen von %s zur Mailman Liste %s oder SPIP basis ErrorFailedToRemoveToMailmanList=Fehler beim Löschen von %s von der Mailman Liste %s oder SPIP basis @@ -132,7 +135,7 @@ ErrorWarehouseMustDiffers=Quell- und Ziel-Lager müssen unterschiedlich sein ErrorBadFormat=Falsches Format! ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. ErrorThereIsSomeDeliveries=Fehler: Es sind noch Auslieferungen zu diesen Versand vorhanden. Löschen deshalb nicht möglich. -ErrorCantDeletePaymentReconciliated=Can't delete a payment that had generated a bank entry that was reconciled +ErrorCantDeletePaymentReconciliated=Eine Zahlung, deren Bank-Transaktion schon abgeglichen wurde, kann nicht gelöscht werden ErrorCantDeletePaymentSharedWithPayedInvoice=Eine Zahlung, die zu mindestens einer als bezahlt markierten Rechnung gehört, kann nicht entfernt werden ErrorPriceExpression1=Zur Konstanten '%s' kann nicht zugewiesen werden ErrorPriceExpression2=Die eingebaute Funktion '%s' kann nicht neu definiert werden @@ -165,25 +168,32 @@ ErrorGlobalVariableUpdater5=Keine globale Variable ausgewählt ErrorFieldMustBeANumeric=Feld %s muss ein numerischer Wert sein ErrorMandatoryParametersNotProvided=Erforderliche(r) Parameter wird nicht angeboten ErrorOppStatusRequiredIfAmount=Sie legen einen geschätzten Betrag für diese Verkaufschance/Lead erfasst. Deshalb müssen Sie auch den Status eingeben +ErrorFailedToLoadModuleDescriptorForXXX=Moduldeskriptor für Klasse %s konnte nicht geladen werden ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Falsche Definition von Menü Array in Module Descriptor (falscher Wert für den Key fk_menu) ErrorSavingChanges=Beim Speichern der Änderungen trat ein Fehler auf ErrorWarehouseRequiredIntoShipmentLine=Lager in der Zeile ist für die Lieferung notwendig ErrorFileMustHaveFormat=Die Datei muss das Format %s haben. ErrorSupplierCountryIsNotDefined=Land für den Lieferanten ist nicht definiert. Korrigieren Sie dies zuerst. ErrorsThirdpartyMerge=Fehler beim Zusammenführen der beiden Einträge. Die Anforderung wurde abgebrochen. -ErrorStockIsNotEnoughToAddProductOnOrder=Stock is not enough for product %s to add it into a new order. -ErrorStockIsNotEnoughToAddProductOnInvoice=Stock is not enough for product %s to add it into a new invoice. -ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s to add it into a new shipment. -ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. +ErrorStockIsNotEnoughToAddProductOnOrder=Nicht genug Bestand von Produkt %s, um es einem neuen Auftrag zuzufügen. +ErrorStockIsNotEnoughToAddProductOnInvoice=Nicht genug Bestand von Produkt %s, um es einer neuen Rechnung zuzufügen. +ErrorStockIsNotEnoughToAddProductOnShipment=Nicht genug Bestand von Produkt %s, um es einer neuen Sendung zuzufügen. +ErrorStockIsNotEnoughToAddProductOnProposal=Nicht genug Bestand von Produkt %s, um es einem neuen Angebot zuzufügen. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. -ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s -ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s -ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. -ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. -ErrorTaskAlreadyAssigned=Task already assigned to user -ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. -ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorModuleNotFound=Datei des Modul nicht gefunden. +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorBankStatementNameMustFollowRegex=Fehler - Name des Kontoauszugs muss dieser Syntax folgen: %s +ErrorPhpMailDelivery=Vergewissern Sie sich, dass Sie nicht zu viele Adressaten nutzen und der Inhalt Ihrer Mail nicht nach Spam aussieht. Bitten Sie Ihren Administrator, die Firewall- und Server-Logs zu prüfen, um detailliertere Informationen zu bekommen. +ErrorUserNotAssignedToTask=Benutzer muss der Aufgabe zugeteilt sein, um Zeiten erfassen zu können. +ErrorTaskAlreadyAssigned=Aufgabe ist dem Benutzer bereits zugeteilt +ErrorModuleFileSeemsToHaveAWrongFormat=Das Modul-Paket scheint ein falsches Format zu haben. +ErrorFilenameDosNotMatchDolibarrPackageRules=Der Name des Modul-Pakets (%s) entspricht nicht der erwarteten Syntax: %s +ErrorDuplicateTrigger=Fehler, doppelter Triggername %s. Schon geladen durch %s. +ErrorNoWarehouseDefined=Fehler, keine Warenlager definiert. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Zu viele Fehler, Verarbeitung abgebrochen. # Warnings WarningPasswordSetWithNoAccount=Es wurde ein Passwort für dieses Mitglied vergeben, aber kein Benutzer erstellt. Das Passwort wird gespeichert, aber kann nicht für die Anmeldung an Dolibarr verwendet werden. Es kann von einem externen Modul/einer Schnittstelle verwendet werden, aber wenn Sie kein Login oder Passwort für dieses Mitglied definiert müssen, können Sie die Option "Login für jedes Mitglied verwalten" in den Mitgliedseinstellungen deaktivieren. Wenn Sie ein Login aber kein Passwort benötige, lassen Sie dieses Feld leer, um diese Meldung zu deaktivieren. Anmerkung: Die E-Mail-Adresse kann auch zur Anmeldung verwendet werden, wenn das Mitglied mit einem Benutzer verbunden wird. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Zahlungsdatum (%s) liegt vor dem Rechnung WarningTooManyDataPleaseUseMoreFilters=Zu viele Ergebnisse (mehr als %s Zeilen). Bitte benutzen Sie mehr Filter oder erhöhen sie die Konstante %s auf einen höheren Wert. WarningSomeLinesWithNullHourlyRate=Einige erfasste Zeiten wurden von Benutzern erfasst bei denen der Stundensatz undefiniert war. Ein Stundenansatz von 0 %s pro Stunde wurde verwendet, was eine fehlerhafte Zeitauswertungen zur Folge haben kann. WarningYourLoginWasModifiedPleaseLogin=Ihr Login wurde verändert. Aus Sicherheitsgründen müssen Sie sich vor der nächsten Aktion mit Ihrem neuen Login anmelden. +WarningAnEntryAlreadyExistForTransKey=Eine Übersetzung für diesen Übersetzungsschlüssel existiert schon für diese Sprache diff --git a/htdocs/langs/de_DE/exports.lang b/htdocs/langs/de_DE/exports.lang index 4a5e803a116..50926e7fb62 100644 --- a/htdocs/langs/de_DE/exports.lang +++ b/htdocs/langs/de_DE/exports.lang @@ -110,18 +110,24 @@ Enclosure=Beilage SpecialCode=Spezialcode ExportStringFilter=%% erlaubt die Ersetzung eines oder mehrerer Zeichen im Text ExportDateFilter='YYYY' 'YYYYMM' 'YYYYMMDD': filtert nach einem Jahr/Monat/Tag
'YYYY+YYYY' 'YYYYMM+YYYYMM' 'YYYYMMDD+YYYYMMDD': filtert über einen Bereich von Jahren/Monaten/Tagen
'>YYYY' '>YYYYMM' '>YYYYMMDD': filtert auf die folgenden Jahre/Monate/Tage
'NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values +ExportNumericFilter='NNNNN' filtert genau einen Wert
'NNNNN+NNNNN' filtert einen Wertebereich
'< NNNNN' filtert nach kleineren Werten
'> NNNNN' filtert nach größeren Werten ImportFromLine=Import beginnen bei Zeile EndAtLineNb=Ende bei Zeile +ImportFromToLine=Importiere Zeilen mit Nr. (von - bis) SetThisValueTo2ToExcludeFirstLine=Setzen Sie beispielsweise den Wert auf 3, um die ersten beiden Zeilen auszuschliessen. KeepEmptyToGoToEndOfFile=Dieses Feld leer lassen, um die Datei bis zum Ende zu bearbeiten. +SelectPrimaryColumnsForUpdateAttempt=Spalte(n) auswählen die als Primärschlüssel für Aktualisierungen beim Import verwendet werden sollen +UpdateNotYetSupportedForThisImport=Aktualisierungen werden für diesen Importtyp nicht unterstützt (Nur neue Datensätze importieren) +NoUpdateAttempt=Keine Aktualisierungen gemacht, nur neue Datensätze +ImportDataset_user_1=Benutzer (Mitarbeiter und andere) sowie Eigenschaften +ComputedField=Berechnetes Feld ## filters SelectFilterFields=Wenn Sie nach bestimmten Werten filtern wollen, geben Sie diese Werte hier ein. FilteredFields=Gefilterte Felder FilteredFieldsValues=Filter Wert FormatControlRule=Regel für die Formatkontrolle ## imports updates -KeysToUseForUpdates=Key to use for updating data -NbInsert=Number of inserted lines: %s -NbUpdate=Number of updated lines: %s -MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s +KeysToUseForUpdates=Schlüssel zu verwenden, um Daten zu aktualisieren +NbInsert=Anzahl eingefügter Zeilen: %s +NbUpdate=Anzahl geänderter Zeilen: %s +MultipleRecordFoundWithTheseFilters=Mehrere Ergebnisse wurden mit diesen Filtern gefunden: %s diff --git a/htdocs/langs/de_DE/holiday.lang b/htdocs/langs/de_DE/holiday.lang index 7294bd9a9ad..e4fd3b57871 100644 --- a/htdocs/langs/de_DE/holiday.lang +++ b/htdocs/langs/de_DE/holiday.lang @@ -76,9 +76,9 @@ BoxTitleLastLeaveRequests=%s zuletzt bearbeitete Urlaubsanträge HolidaysMonthlyUpdate=Monatliches Update ManualUpdate=Manuelles Update HolidaysCancelation=Urlaubsantrag stornieren -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed +EmployeeLastname=Mitarbeiter Nachname +EmployeeFirstname=Vorname des Mitarbeiters +TypeWasDisabledOrRemoved=Abreise-Art (Nr %s) war deaktiviert oder entfernt ## Configuration du Module ## LastUpdateCP=Letzte automatische Aktualisierung der Urlaubstage diff --git a/htdocs/langs/de_DE/install.lang b/htdocs/langs/de_DE/install.lang index 03df823a874..1e3ceccb663 100644 --- a/htdocs/langs/de_DE/install.lang +++ b/htdocs/langs/de_DE/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Wenn Sie den DoliWamp-Installationsassistent verwenden, we KeepDefaultValuesDeb=Sie verwenden den Dolibarr-Installationsassistenten in einer Linux Umgebung (Ubuntu, Debian, Fedor...), entsprechend sind hier bereits Werte vorgeschlagenen. Sie müssen lediglich das Passwort des anzulegenden Datenbankbenutzers angeben. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun. KeepDefaultValuesMamp=Sie verwenden den DoliMamp-Installationsassistent, entsprechend werden hier bereits Werte vorgeschlagen. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun. KeepDefaultValuesProxmox=Sie verwenden den Dolibarr Installationsassistenten einer Proxmox "virtual appliance". Die hier vorgeschlagenen Werte sind bereits optimiert. Bitte nehmen Sie nur Änderungen vor wenn Sie wissen was Sie tun. +UpgradeExternalModule=Dedizierten Upgradeprozess für externe Module ausführen ######### # upgrade @@ -175,7 +176,7 @@ MigrationReopeningContracts=Durch Fehler geschlossenen Vertrag wiedereröffnen MigrationReopenThisContract=Vertrag %s wiedereröffnen MigrationReopenedContractsNumber=%s Verträge geändert MigrationReopeningContractsNothingToUpdate=Keine geschlossenen Verträge zur Wiedereröffnung -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationBankTransfertsUpdate=Verknüpfung zwischen Banktransaktion und einer Überweisung aktualisieren MigrationBankTransfertsNothingToUpdate=Alle Banktransaktionen sind auf neuestem Stand. MigrationShipmentOrderMatching=Aktualisierung Versand MigrationDeliveryOrderMatching=Aktualisiere Lieferscheine diff --git a/htdocs/langs/de_DE/mails.lang b/htdocs/langs/de_DE/mails.lang index e79cfa102b5..c9a30838b02 100644 --- a/htdocs/langs/de_DE/mails.lang +++ b/htdocs/langs/de_DE/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Teilweise gesendet MailingStatusSentCompletely=Vollständig gesendet MailingStatusError=Fehler beim Versand MailingStatusNotSent=Nicht gesendet -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=E-Mail (von %s an %s) erfolgreich für die den Versand akzeptiert MailingSuccessfullyValidated=E-Mail erfolgreich überprüft MailUnsubcribe=Abmelden MailingStatusNotContact=Nicht mehr kontaktieren @@ -43,7 +43,7 @@ MailingStatusReadAndUnsubscribe=Lesen und abmelden ErrorMailRecipientIsEmpty=Das Empfängerfeld ist leer WarningNoEMailsAdded=Keine neuen E-Mail-Adressen für das Hinzufügen zur Empfängerliste. ConfirmValidMailing=Möchten Sie diese E-Mail-Kampagne wirklich freigeben? -ConfirmResetMailing=Warning, by reinitializing emailing %s, you allow to make a mass sending of this email another time. Are you sure you this is what you want to do? +ConfirmResetMailing=Achtung, wenn Sie diese E-Mail Kampagne %s, können Sie diese Aktion nochmals versenden. Sind Sie sicher, das ist tun möchten? ConfirmDeleteMailing=Möchten Sie diese E-Mail-Kampagne wirklich löschen? NbOfUniqueEMails=Anzahl einzigartige E-Mail-Adressen NbOfEMails=Anzahl der E-Mails @@ -74,18 +74,22 @@ ResultOfMailSending=Sende-Ergebnis der E-Mail-Kampagne NbSelected=Anz. gewählte NbIgnored=Anz. ignoriert NbSent=Anz. gesendet -ConfirmUnvalidateEmailing=Are you sure you want to change email %s to draft status? -MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters -MailingModuleDescContactsByCompanyCategory=Contacts by third party category -MailingModuleDescContactsByCategory=Contacts by categories -MailingModuleDescContactsByFunction=Contacts by position +ConfirmUnvalidateEmailing=Möchten Sie die eMail-Kampange %s in den Entwurf Status wechseln? +MailingModuleDescContactsWithThirdpartyFilter=Kontakt mit Kunden Filter +MailingModuleDescContactsByCompanyCategory=Kontakte mit Partner Kategorie +MailingModuleDescContactsByCategory=Kontakte nach Kategorien +MailingModuleDescContactsByFunction=Kontakte nach Position +MailingModuleDescEmailsFromFile=E-Mailadressen aus Datei +MailingModuleDescEmailsFromUser=E-Mailadressen Eingabe durch Benutzer +MailingModuleDescDolibarrUsers=Benutzer mit E-Mailadresse +MailingModuleDescThirdPartiesByCategories=Partner (nach Kategorien) # Libelle des modules de liste de destinataires mailing LineInFile=Zeile %s in der Datei RecipientSelectionModules=Definiert Auswahl von Empfängern MailSelectedRecipients=Ausgewählte Empfänger MailingArea=E-Mail Kampagnenübersicht -LastMailings=Latest %s emailings +LastMailings=Neueste %s E-Mail Kampagnen TargetsStatistics=Zielstatistiken NbOfCompaniesContacts=Einzigartige Partnerkontakte MailNoChangePossible=Die Empfängerliste einer freigegebenen E-Mail Kampagne kann nicht mehr geändert werden @@ -93,9 +97,9 @@ SearchAMailing=Suche E-Mail Kampagne SendMailing=E-Mail Kampagne versenden SendMail=sende E-Mail SentBy=Gesendet von -MailingNeedCommand=Sending an emailing can be performed from command line. Ask your server administrator to launch the following command to send the emailing to all recipients: +MailingNeedCommand=Aus Sicherheitsgründen sollten E-Mails von der Kommandozeile aus versandt werden. Bitten Sie Ihren Server Administrator um die Ausführung des folgenden Befehls, um den Versand an alle Empfänger zu starten: MailingNeedCommand2=Sie können den Versand jedoch auch online starten, indem Sie den Parameter MAILING_LIMIT_SENDBYWEB auf den Wert der pro Sitzung gleichzeitig zu versendenden Mails setzen. Die entsprechenden Einstellungen finden Sie unter Übersicht-Einstellungen-Andere. -ConfirmSendingEmailing=If you want to send emailing directly from this screen, please confirm you are sure you want to send emailing now from your browser ? +ConfirmSendingEmailing=Wenn Sie die eMail-Kampange direkt von diesem Bildschirm senden möchten, bestätigen Sie bitte, dass Sie jetzt direkt von diesem Browser versenden möchten? LimitSendingEmailing=Hinweis: Aus Sicherheits- und Zeitüberschreitungsgründen ist der Online-Versand von E-Mails auf %s Empfänger je Sitzung beschränkt. TargetsReset=Liste leeren ToClearAllRecipientsClickHere=Klicken Sie hier, um die Empfängerliste zu leeren @@ -103,7 +107,7 @@ ToAddRecipientsChooseHere=Fügen Sie Empfänger über die Listenauswahl hinzu NbOfEMailingsReceived=Empfangene E-Mail-Kampagnen NbOfEMailingsSend=E-Mail-Kampagne versandt IdRecord=Eintrag-ID -DeliveryReceipt=Delivery Ack. +DeliveryReceipt=Empfangsbestätigung YouCanUseCommaSeparatorForSeveralRecipients=Trennen Sie mehrere Empfänger mit einem Komma TagCheckMail=Öffnen der Mail verfolgen TagUnsubscribe=Abmelde Link @@ -116,16 +120,16 @@ Notifications=Benachrichtigungen NoNotificationsWillBeSent=Für dieses Ereignis und diesen Partner sind keine Benachrichtigungen geplant ANotificationsWillBeSent=Eine Benachrichtigung wird per E-Mail versandt SomeNotificationsWillBeSent=%s Benachrichtigungen werden per E-Mail versandt -AddNewNotification=Neues E-Mail-Benachrichtigungsziel aktivieren -ListOfActiveNotifications=Liste aller aktive Empänger für E-Mail Benachrichtigungen +AddNewNotification=Neues E-Mail-Benachrichtigungsziel-Event aktivieren +ListOfActiveNotifications=Liste aller aktiven Empänger/Events für E-Mail Benachrichtigungen ListOfNotificationsDone=Liste aller versandten E-Mail Benachrichtigungen MailSendSetupIs=Der E-Mail-Versand wurde auf '%s' konfiguriert. Dieser Modus kann nicht für E-Mail-Kampagnen verwendet werden. MailSendSetupIs2=Sie müssen zuerst mit einem Admin-Konto im Menü %sStart - Einstellungen - E-Mails%s den Parameter '%s' auf den Modus '%s' ändern. Dann können Sie die Daten des SMTP-Servers von Ihrem Internetdienstanbieter eingeben und die E-Mail-Kampagnen-Funktion nutzen. MailSendSetupIs3=Bei Fragen über die Einrichtung Ihres SMTP-Servers, können Sie %s fragen. YouCanAlsoUseSupervisorKeyword=Sie können auch das Schlüsselwort __SUPERVISOREMAIL__ um E-Mail haben, die an den Vorgesetzten des Benutzers gesendet hinzufügen (funktioniert nur, wenn eine E-Mail für dieses Supervisor definiert) NbOfTargetedContacts=Aktuelle Anzahl der E-Mails-Kontakte -UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other -UseFormatInputEmailToTarget=Enter a string with format email;name;firstname;other +UseFormatFileEmailToTarget=Importierte Datei muss das Format\nemail;name;firstname;other haben +UseFormatInputEmailToTarget=Geben Sie eine Zeichenkette in dem Format email, name, firstname, other ein MailAdvTargetRecipients=Empfänger (Erweitere Selektion) AdvTgtTitle=Füllen Sie die Eingabefelder zur Vorauswahl der Partner- oder Kontakt- / Adressen - Empänger AdvTgtSearchTextHelp=Tipps für die Suche:
- x%% , um alle Wörter zu suchen, mit x beginnen, Frankreich - als Trennzeichen von Werten gesucht, Frankreich - ausschließen würdig
Beispiel: jean;joe;jim%%;!jimo;!jima% werden alle Ergebnisse angezeigt werden jean und joe ,, die mit jim beginnen mit Ausnahme von jimo und jima . @@ -135,7 +139,7 @@ AdvTgtMaxVal=Maximalwert AdvTgtSearchDtHelp=Intervall verwenden um ein Datum auszuwählen AdvTgtStartDt=Startdatum AdvTgtEndDt=Enddatum -AdvTgtTypeOfIncudeHelp=Target Email of third party and email of contact of the third party, or just third party email or just contact email +AdvTgtTypeOfIncudeHelp=Empfänger EMail des Partners und EMail des Kontakt des Partners, oder einfach nur Partner-EMail oder einfach nur Kontakt EMail AdvTgtTypeOfIncude=Empfänger AdvTgtContactHelp=Verwenden Sie nur, wenn Ihr Zielkontakt unter den "Typ des E-Mail-Empfänger" AddAll=Alle hinzufügen @@ -150,6 +154,6 @@ AdvTgtCreateFilter=Filter erstellen AdvTgtOrCreateNewFilter=Name des neuen Filters NoContactWithCategoryFound=Kein Kontakt/Adresse mit einer Kategorie gefunden NoContactLinkedToThirdpartieWithCategoryFound=Kein Kontakt/Adresse mit einer Kategorie gefunden -OutGoingEmailSetup=Outgoing email setup -InGoingEmailSetup=Incoming email setup +OutGoingEmailSetup=eMail Postausgang Einstellungen +InGoingEmailSetup=eMail Posteingang Einstellungen diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index 05db04df69b..b905f184f29 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -28,7 +28,7 @@ NoTemplateDefined=Für diesen E-Mail-Typ ist keine Vorlage definiert AvailableVariables=verfügbare Ersatzungsvariablen NoTranslation=Keine Übersetzung NoRecordFound=Keinen Eintrag gefunden -NoRecordDeleted=No record deleted +NoRecordDeleted=Keine Datensätze gelöscht NotEnoughDataYet=nicht genügend Daten NoError=kein Fehler Error=Fehler @@ -62,8 +62,8 @@ ErrorCantLoadUserFromDolibarrDatabase=Benutzer %s in der Dolibarr-Datenba ErrorNoVATRateDefinedForSellerCountry=Fehler, keine MwSt.-Sätze für Land '%s' definiert. ErrorNoSocialContributionForSellerCountry=Fehler, Sozialabgaben/Steuerwerte für Land '%s' nicht definiert. ErrorFailedToSaveFile=Fehler, konnte Datei nicht speichern. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page +ErrorCannotAddThisParentWarehouse=Sie versuchen ein HauptLager hinzuzufügen, das bereits ein Unterlager von dem aktuellen Lagerort ist +MaxNbOfRecordPerPage=Max. Zeilenanzahl pro Seite NotAuthorized=Sie haben keine Berechtigung dazu. SetDate=Datum SelectDate=Wählen Sie ein Datum @@ -73,7 +73,7 @@ Apply=Übernehmen BackgroundColorByDefault=Standard-Hintergrundfarbe FileRenamed=Datei wurde erfolgreich unbenannt FileUploaded=Datei wurde erfolgreich hochgeladen -FileGenerated=The file was successfully generated +FileGenerated=Die Datei wurde erfolgreich erstellt FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten. NbOfEntries=Anzahl der Einträge GoToWikiHelpPage=Onlinehilfe lesen (Internetzugang notwendig) @@ -88,7 +88,7 @@ Undefined=Nicht definiert PasswordForgotten=Passwort vergessen? SeeAbove=Siehe oben HomeArea=Startseite -LastConnexion=Latest connection +LastConnexion=Letzte Verbindung PreviousConnexion=Letzte Anmeldung PreviousValue=Vorheriger Wert ConnectedOnMultiCompany=Mit Entität verbunden @@ -130,7 +130,7 @@ Activate=Aktivieren Activated=Aktiviert Closed=Geschlossen Closed2=Geschlossen -NotClosed=Not closed +NotClosed=nicht geschlossen Enabled=Aktiviert Deprecated=Veraltet Disable=Deaktivieren @@ -153,6 +153,7 @@ Edit=Bearbeiten Validate=Bestätigen ValidateAndApprove=Freigaben bestätigen ToValidate=Freizugeben +NotValidated=Nicht freigegeben Save=Speichern SaveAs=Speichern unter TestConnection=Verbindung testen @@ -164,7 +165,7 @@ Go=Weiter Run=bearbeiten CopyOf=Duplikat von Show=Zeige -Hide=Hide +Hide=verstecken ShowCardHere=Zeige Karte Search=Suchen SearchOf=Suche nach @@ -207,8 +208,8 @@ Info=Protokoll Family=Familie Description=Beschreibung Designation=Beschreibung -Model=Doc template -DefaultModel=Default doc template +Model=Dokumentvorlage +DefaultModel=Standard Dokumentvorlage Action=Ereignis About=Über Number=Anzahl @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Keine Anwendung Trennungsfunktion mit Authentifizier Connection=Verbindung Setup=Einstellungen Alert=Warnung +MenuWarnings=Benachrichtigungen Previous=Voriger Next=Nächster Cards=Karten @@ -238,7 +240,7 @@ DateCreation=Erstellungsdatum DateCreationShort=Erstelldatum DateModification=Änderungsdatum DateModificationShort=Änderungsdatum -DateLastModification=Latest modification date +DateLastModification=Datum letzte Änderung DateValidation=Freigabedatum DateClosing=Schließungsdatum DateDue=Fälligkeitsdatum @@ -308,12 +310,13 @@ Copy=Kopieren Paste=Einfügen Default=Standard DefaultValue=Standardwert +DefaultValues=Standardwert Price=Preis UnitPrice=Stückpreis UnitPriceHT=Stückpreis (netto) UnitPriceTTC=Stückpreis (brutto) PriceU=VP -PriceUHT=St.-Pr. (Netto) +PriceUHT=VP (netto) PriceUHTCurrency=Nettopreis (Währung) PriceUTTC=St.-Pr. (inkl. Steuern) Amount=Betrag @@ -324,9 +327,9 @@ AmountTTCShort=Bruttobetrag AmountHT=Betrag (exkl. USt.) AmountTTC=Bruttobetrag AmountVAT=USt.-Betrag -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency +MulticurrencyAlreadyPaid=Bereits bezahlte, Originalwährung +MulticurrencyRemainderToPay=Noch zu bezahlen, Originalwährung +MulticurrencyPaymentAmount=Zahlungsbetrag, Originalwährung MulticurrencyAmountHT=Betrag (Netto), Originalwährung MulticurrencyAmountTTC=Betrag (Brutto), Originalwährung MulticurrencyAmountVAT=Steuerbetrag, Originalwährung @@ -343,7 +346,7 @@ SubTotal=Zwischensumme TotalHTShort=Nettosumme TotalHTShortCurrency=Summe (Netto in Währung) TotalTTCShort=Gesamt (inkl. Ust) -TotalHT=Summe (exkl. Ust) +TotalHT=Nettosumme TotalHTforthispage=Gesamtpreis (Netto) für diese Seite Totalforthispage=Gesamtbetrag dieser Seite TotalTTC=Bruttosumme @@ -363,7 +366,8 @@ VATRate=Steuersatz Average=Durchschnitt Sum=Summe Delta=Delta -Module=Modul +Module=Modul/Applikation +Modules=Modul/Applikation Option=Option List=Liste FullList=Vollständige Liste @@ -372,7 +376,7 @@ OtherStatistics=Weitere Statistiken Status=Status Favorite=Favorit ShortInfo=Info. -Ref=Referenz-Nr. +Ref=Nr. ExternalRef=Externe-ID RefSupplier=Lieferanten-Nr. RefPayment=Zahlungsref.-Nr. @@ -384,10 +388,10 @@ ActionsToDoShort=zu erledigen ActionsDoneShort=Erledigt ActionNotApplicable=Nicht anwendbar ActionRunningNotStarted=zu beginnen -ActionRunningShort=In progress +ActionRunningShort=in Bearbeitung ActionDoneShort=Abgeschlossen ActionUncomplete=unvollständig -CompanyFoundation=Firma oder Institution +CompanyFoundation=Firma/Stiftung ContactsForCompany=Ansprechpartner/Adressen dieses Partners ContactsAddressesForCompany=Ansprechpartner / Adressen zu diesem Partner AddressesForCompany=Anschriften zu diesem Partner @@ -405,8 +409,9 @@ Generate=Erzeugen Duration=Dauer TotalDuration=Gesamtdauer Summary=Zusammenfassung -DolibarrStateBoard=Statistik +DolibarrStateBoard=Datenbank Statistik DolibarrWorkBoard=Aufgabenübersicht +NoOpenedElementToProcess=Kein Element zum Verarbeiten geöffnet Available=Verfügbar NotYetAvailable=Noch nicht verfügbar NotAvailable=Nicht verfügbar @@ -453,6 +458,7 @@ NextStep=Nächster Schritt Datas=Daten None=Keine NoneF=Keine +NoneOrSeveral=Keine oder mehrere Late=Verspätet LateDesc=Verzögerung, die definiert, ob ein Datensatz spät ist oder nicht von der Einrichtung abhängig ist. Fragen Sie den Administrator, die Verzögerung im Menü Startseite - Einrichtung - Alarme Photo=Bild @@ -462,7 +468,7 @@ DeletePicture=Bild löschen ConfirmDeletePicture=Bild wirklich löschen? Login=Anmeldung CurrentLogin=Aktuelle Anmeldung -EnterLoginDetail=Enter login details +EnterLoginDetail=Geben Sie die Login-Daten ein January=Januar February=Februar March=März @@ -521,7 +527,7 @@ ReportPeriod=Berichtszeitraum ReportDescription=Beschreibung Report=Bericht Keyword=Schlüsselwort -Origin=Origin +Origin=Ursprung Legend=Legende Fill=Eintragen Reset=Zurücksetzen @@ -587,7 +593,7 @@ CanBeModifiedIfOk=Änderung möglich falls gültig CanBeModifiedIfKo=Änderung möglich falls ungültig ValueIsValid=Der Wert ist gültig ValueIsNotValid=Der Wert ist ungültig -RecordCreatedSuccessfully=Record created successfully +RecordCreatedSuccessfully=Datensatz erfolgreich erstellt RecordModifiedSuccessfully=Wert erfolgreich geändert RecordsModified=%s Datensätze geändert RecordsDeleted=Datensatz %s gelöscht @@ -600,13 +606,14 @@ SessionName=Sitzungsname Method=Methode Receive=Erhalten CompleteOrNoMoreReceptionExpected=Vollständig oder nichts mehr erwartet -ExpectedValue=Expected Value +ExpectedValue=Erwarteter Wert CurrentValue=Aktueller Wert PartialWoman=Teilweise TotalWoman=Vollständig NeverReceived=Nie erhalten Canceled=Storniert -YouCanChangeValuesForThisListFromDictionarySetup=Sie können die Listenoptionen in den Stammdaten anpassen +YouCanChangeValuesForThisListFromDictionarySetup=Sie können die Listenoptionen in den Wörterbuch-Einstellungen anpassen +YouCanChangeValuesForThisListFrom=Werte für diese Liste können im Menü %s bearbeitet werden YouCanSetDefaultValueInModuleSetup=Sie können den Standardwert verwendet setzen, wenn ein neuer Datensatz in der Modulkonfiguration erstellt wird Color=Farbe Documents=Verknüpfte Dokumente @@ -623,7 +630,7 @@ CurrentTheme=Aktuelles Design CurrentMenuManager=Aktuelle Menüverwaltung Browser=Browser Layout=Layout -Screen=Screen +Screen=Bildschirm DisabledModules=Deaktivierte Module For=Für ForCustomer=Für Kunden @@ -642,11 +649,12 @@ FreeLineOfType=Freier Texteintrag von Typ CloneMainAttributes=Objekt mit Haupteigenschaften duplizieren PDFMerge=PDFs verbinden Merge=Verbinden +DocumentModelStandardPDF=Standard PDF Vorlage PrintContentArea=Zeige Druckansicht für Seiteninhalt MenuManager=Menüverwaltung WarningYouAreInMaintenanceMode=Achtung: Die Anwendung befindet sich im Wartungsmodus und kann derzeit nur von Benutzer %s verwendet werden. CoreErrorTitle=Systemfehler -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Leider ist ein Fehler aufgetreten. Wenden Sie sich an Ihren Systemadministrator, um die Logs zu überprüfen oder deaktivieren Sie die Option $dolibarr_main_prod=1 für weitere Informationen. CreditCard=Kredit - Karte FieldsWithAreMandatory=Felder mit %s sind Pflichtfelder FieldsWithIsForPublic=Felder mit %s werden auf die öffentlich sichtbare Mitgliederliste angezeigt. Deaktivieren Sie bitte den "Öffentlich"-Kontrollkästchen wenn das nicht möchten.\n @@ -702,12 +710,13 @@ Test=Testen Element=Element NoPhotoYet=Noch keine Bilder verfügbar Dashboard=Startseite -MyDashboard=My dashboard +MyDashboard=Meine Startseite Deductible=absetzbar from=von toward=zu Access=Zugriff SelectAction=Wähle Ereignis +SelectTargetUser=Zielbenutzer/Mitarbeiter wählen HelpCopyToClipboard=Benutze Ctrl+C für Kopie in Zwischenablage SaveUploadedFileWithMask=Datei auf dem Server speichern mit dem Namen "%s" (oder "%s") OriginFileName=Original Dateiname @@ -718,9 +727,9 @@ ViewPrivateNote=Zeige Hinweise XMoreLines=%s Zeile(n) versteckt PublicUrl=Öffentliche URL AddBox=Box anfügen -SelectElementAndClickRefresh=Wählen Sie einen Eintrag und klicken Sie aktualisieren +SelectElementAndClick=Element auswählen und %s anklicken PrintFile=Drucke Datei %s -ShowTransaction=Show entry on bank account +ShowTransaction=Transaktion auf Bankkonto anzeigen GoIntoSetupToChangeLogo=Gehen Sie zu Start - Einstellungen - Firma/Stiftung um das Logo zu ändern oder gehen Sie in Start -> Einstellungen -> Anzeige um es zu verstecken. Deny=ablehnen Denied=abgelehnt @@ -735,8 +744,8 @@ Sincerely=Mit freundlichen Grüßen DeleteLine=Zeile löschen ConfirmDeleteLine=Möchten Sie diese Zeile wirklich löschen? NoPDFAvailableForDocGenAmongChecked=In den selektierten Datensätzen war kein PDF zur Erstellung der Dokumente vorhanden. -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected +TooManyRecordForMassAction=Zu viele Datensätze für Massenaktion ausgewählt. Solche Aktionen sind auf maximal %s Zeilen beschränkt. +NoRecordSelected=Kein Datensatz ausgewählt MassFilesArea=Bereich für Dateien aus Massenaktionen ShowTempMassFilesArea=Bereich für Dateien aus Massenaktionen zeigen RelatedObjects=Verknüpfte Objekte @@ -748,18 +757,27 @@ BackOffice=Backoffice View=Ansicht Export=Exportieren Exports=Exporte -ExportFilteredList=Export filtered list -ExportList=Export list +ExportFilteredList=Exportiere gefilterte Auswahl +ExportList=Liste exportieren Miscellaneous=Verschiedenes Calendar=Terminkalender -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link +GroupBy=Gruppiere nach ... +ViewFlatList=Listenansicht zeigen +RemoveString=Entfernen Sie die Zeichenfolge '%s' +SomeTranslationAreUncomplete=Einige Sprachen sind nur teilweise übersetzt oder enthalten Fehler. Wenn Sie dies feststellen, können Sie die Übersetzungen unter http://transifex.com/projects/p/dolibarr/ \nverbessern bzw. ergänzen. +DirectDownloadLink=Direkter Download Link Download=Download -ActualizeCurrency=Update currency rate +ActualizeCurrency=Update-Wechselkurs Fiscalyear=Fiskalisches Jahr +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Währung festlegen +BulkActions=Massenaktionen +ClickToShowHelp=Klicken um die Tooltiphilfe anzuzeigen +HR=Personalabteilung +HRAndBank=HR und Bank +AutomaticallyCalculated=Automatisch berechnet +TitleSetToDraft=Zurück zu Entwurf gehen +ConfirmSetToDraft=Wirklich zurück zum Entwurfstatus gehen? # Week day Monday=Montag Tuesday=Dienstag @@ -796,7 +814,7 @@ Select2NotFound=Kein Ergebnis gefunden Select2Enter=Enter Select2MoreCharacter=oder mehr Zeichen Select2MoreCharacters=oder mehr Zeichen -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
+Select2MoreCharactersMore=Suchsyntax:
|ODER(a|b)
*beliebiges Zeichen (a*b)
^Beginnt mit(^ab)
$Endet mit (ab$)
Select2LoadingMoreResults=Weitere Ergebnisse werden geladen ... Select2SearchInProgress=Suche läuft ... SearchIntoThirdparties=Partner @@ -817,5 +835,3 @@ SearchIntoContracts=Verträge SearchIntoCustomerShipments=Kunden Lieferungen SearchIntoExpenseReports=Spesenabrechnungen SearchIntoLeaves=Urlaube - -BulkActions=Bulk actions diff --git a/htdocs/langs/de_DE/members.lang b/htdocs/langs/de_DE/members.lang index d6819b451c1..eb091095f51 100644 --- a/htdocs/langs/de_DE/members.lang +++ b/htdocs/langs/de_DE/members.lang @@ -25,7 +25,7 @@ MembersListUpToDate=Liste freigegebener Mitglieder mit aktuellem Abonnement MembersListNotUpToDate=Liste freigegebener Mitglieder mit veraltetem Abonnement MembersListResiliated=Liste der deaktivierten Mitglieder MembersListQualified=Liste der qualifizierten Mitglieder -MenuMembersToValidate=Freizugebende Mitglieder +MenuMembersToValidate=Freizugebende MenuMembersValidated=Freigegebene Mitglieder MenuMembersUpToDate=Aktuelle Mitglieder MenuMembersNotUpToDate=Deaktivierte Mitglieder @@ -41,17 +41,17 @@ MemberType=Mitgliedsart MemberTypeId=ID Mitgliedsart MemberTypeLabel=Bezeichnung der Mitgliedsart MembersTypes=Mitgliedsarten -MemberStatusDraft=Entwurf (freizugeben) -MemberStatusDraftShort=Freizugeben +MemberStatusDraft=Entwurf (muss noch überprüft werden) +MemberStatusDraftShort=Scheck MemberStatusActive=Freigegebene (Abonnement ausstehend) -MemberStatusActiveShort=Freigegeben +MemberStatusActiveShort=Bestätigt MemberStatusActiveLate=Abonnement abgelaufen MemberStatusActiveLateShort=Abgelaufen -MemberStatusPaid=Abonnement aktuell -MemberStatusPaidShort=Aktuell +MemberStatusPaid=Aktuelle Abonnements +MemberStatusPaidShort=Aktuelle MemberStatusResiliated=Deaktivierte Mitglieder MemberStatusResiliatedShort=Deaktiviert -MembersStatusToValid=Freizugebende Mitglieder +MembersStatusToValid=Freizugebende MembersStatusResiliated=Deaktivierte Mitglieder NewCotisation=Neuer Beitrag PaymentSubscription=Neue Beitragszahlung @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Sie haben noch keine Mitgliedsarten definiert. Sie könne NewMemberType=Neue Mitgliedsart WelcomeEMail=Willkommen E-Mail SubscriptionRequired=Abonnement erforderlich -DeleteType=Mitgliedsart löschen +DeleteType=Lösche Gruppe VoteAllowed=Stimmrecht Physical=Natürliche Person Moral=Juristische Person @@ -90,6 +90,7 @@ PublicMemberList=Liste öffentlicher Mitglieder BlankSubscriptionForm=Leeres Abonnementformular BlankSubscriptionFormDesc=Dolibarr kann Ihnen eine öffentliche URL für externe Besucher anbieten um zu bezahlen. Wenn ein Online-Zahlungsmittel Modul aktiviert ist, wird ein Bezahlformular automatisch bereitgestellt. EnablePublicSubscriptionForm=Aktivieren Sie die Freigabe des öffentlichen Abo-Formulars +ForceMemberType=Mitgliedsart erzwingen ExportDataset_member_1=Mitglieder und Abonnements ImportDataset_member_1=Mitglieder LastMembersModified=%s zuletzt bearbeitete Mitglieder @@ -127,15 +128,15 @@ NoThirdPartyAssociatedToMember=Mit diesem Mitglied ist kein Partner verknüpft MembersAndSubscriptions= Mitglieder und Abonnements MoreActions=Ergänzende Erfassungsereignisse MoreActionsOnSubscription=Ergänzende Maßnahmen standardmäßig vorgeschlagen bei der Aufnahme eines Abonnements -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionBankDirect=Erfassung einer direkten Eingabe auf das Bankkonto oder an Kasse +MoreActionBankViaInvoice=Erstelle eine Rechnung und eine Zahlung auf das Bankkonto oder an Kasse MoreActionInvoiceOnly=Automatisch eine Rechnung (ohne Zahlung) erstellen LinkToGeneratedPages=Visitenkarten erstellen LinkToGeneratedPagesDesc=Auf dieser Seite können Sie PDF-Dateien mit Visitenkarten Ihrer Mitglieder (auf Wunsch länderspezifisch) erstellen. DocForAllMembersCards=Visitenkarten für alle Mitglieder erstellen (Gewähltes Ausgabeformat: %s) DocForOneMemberCards=Visitenkarten für ein bestimmtes Mitglied erstellen (Gewähltes Ausgabeformat: %s) DocForLabels=Etiketten erstellen (Gewähltes Ausgabeformat: %s) -SubscriptionPayment=Abo-Zahlung +SubscriptionPayment=Beitragszahlung LastSubscriptionDate=Letztes Abo-Datum LastSubscriptionAmount=Letzter Abo-Betrag MembersStatisticsByCountries=Mitgliederstatistik nach Ländern @@ -150,6 +151,7 @@ MembersByTownDesc=Diese Form zeigt Ihnen die Statistik der Mitglieder nach Städ MembersStatisticsDesc=Wählen Sie die gewünschte Statistik aus ... MenuMembersStats=Statistik LastMemberDate=Letztes Mitgliedsdatum +LatestSubscriptionDate=Letztes Abo-Datum Nature=Art Public=Informationen sind öffentlich (Nein = Privat) NewMemberbyWeb=Neues Mitgliede hinzugefügt, warte auf Genehmigung. diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index 14edcdb19ed..1b98e1d9e73 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Geburtstag DateToBirth=Geburtsdatum BirthdayAlertOn=Geburtstagserinnerung EIN BirthdayAlertOff=Geburtstagserinnerung AUS +TransKey=Übersetzung des Schlüssels TransKey +MonthOfInvoice=Monat (1-12) des Rechnungsdatum +TextMonthOfInvoice=Monat (Text) des Rechnungsdatums +PreviousMonthOfInvoice=Vorangehender Monat (1-12) des Rechnungsdatums +TextPreviousMonthOfInvoice=Vorangehender Monat (Text) des Rechnungsdatums +NextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatums +TextNextMonthOfInvoice=Folgender Monat (1-12) des Rechnungsdatum +ZipFileGeneratedInto=ZIP-Datei erstellt in %s. + +YearOfInvoice=Jahr der Rechnung +PreviousYearOfInvoice=Vorangehendes Jahr des Rechnungsdatums +NextYearOfInvoice=Folgendes Jahr des Rechnungsdatums + Notify_FICHINTER_ADD_CONTACT=Kontakt zum Serviceauftrag hinzufügen Notify_FICHINTER_VALIDATE=Serviceauftrag freigegeben Notify_FICHINTER_SENTBYMAIL=Serviceauftrag per E-Mail versendet @@ -43,7 +56,7 @@ Notify_SHIPPING_SENTBYMAIL=Versanddaten mit E-Mail versendet Notify_MEMBER_VALIDATE=Mitglied bestätigt Notify_MEMBER_MODIFY=Mitglied bearbeitet Notify_MEMBER_SUBSCRIPTION=Mitglied hat unterzeichnet -Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_RESILIATE=Mitgliedschaft auflösen Notify_MEMBER_DELETE=Mitglied gelöscht Notify_PROJECT_CREATE=Projekt-Erstellung Notify_TASK_CREATE=Aufgabe erstellt @@ -61,22 +74,23 @@ PredefinedMailTestHtml=Dies ist ein (HTML)-Test Mail (das Wort Test muss PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nAnbei erhalten Sie die Rechnung __REF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nBedauerlicherweise ist die Rechnung __REF__ bislang unbeglichen. Zur Erinnerung übersenden wir Ihnen diese nochmals als Anhang.\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang unser Angebot __PROPREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nAnbei erhalten Sie unsere Preisanfrage __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nHier die gewünschte Preisauskunft __REF__\n\n__PERSONALIZED__Mit freundlichen Grüssen\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ \n\n Bitte entnehmen Sie dem Anhang die Bestellung __ORDERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nAnbei erhalten Sie die Rechnung __REF__\n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ \n\n Als Anlage erhalten Sie unsere Lieferung __ SHIPPINGREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ \n\n Anbei finden Sie den Serviceauftrag __ FICHINTERREF__ \n\n__PERSONALIZED__Mit freundlichen Grüßen\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr ist eine Management-Software die mehrere Business-Module anbietet. Eine Demo, die alle Module beinhaltet ist nicht sinnvoll , weil der Fall nie existiert (Hunderte von verfügbaren Module). Es stehen auch einige Demo-Profile Typen zur Verfügung. ChooseYourDemoProfil=Bitte wählen Sie das Demo-Profil das Ihrem Anwendgsfall am ehesten entspricht -ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) +ChooseYourDemoProfilMore=...oder bauen Sie Ihr eigenes Profil
(manuelle Auswahl der Module) DemoFundation=Verwalten Sie die Mitglieder einer Stiftung DemoFundation2=Verwalten Sie die Mitglieder und Bankkonten einer Stiftung -DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyServiceOnly=Unternehmen oder Freiberufler der nur Leistungen verkauft DemoCompanyShopWithCashDesk=Verwalten Sie ein Geschäft mit Kasse -DemoCompanyProductAndStocks=Company selling products with a shop -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyProductAndStocks=Verwalten Sie den Produktverkauf und die Lagerstandsverwaltung eines kleinen oder mittleren Unternehmen +DemoCompanyAll=Verwalten Sie ein kleines oder mittleres Unternehmen mit mehreren Aktivitäten (alle wesentlichen Module) CreatedBy=Erstellt von %s ModifiedBy=Bearbeitet von %s ValidatedBy=Freigegeben von %s @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Im derzeit gewählten Authentifizierun EnableGDLibraryDesc=Installiere oder aktiviere die GD Bibliothek in der PHP Installtion um dieses Option zu verwenden. ProfIdShortDesc=Prof ID %s dient zur Speicherung landesabhängiger Partnerdaten.
Für das Land %s ist dies beispielsweise Code %s. DolibarrDemo=Dolibarr ERP/CRM-Demo -StatsByNumberOfUnits=Statistik der Zahl der Einheiten -StatsByNumberOfEntities=Statistik der Zahl der Entitäten -NumberOfProposals=Anzahl Angebote in den letzten 12 Monaten -NumberOfCustomerOrders=Anzahl Kundenbestellungen in den letzten 12 Monaten -NumberOfCustomerInvoices=Anzahl Kundenrechnungen in den letzten 12 Monaten -NumberOfSupplierProposals=Anzahl Lieferantenangebote in den letzten 12 Monaten -NumberOfSupplierOrders=Anzahl Lieferantenbestellungen in den letzten 12 Monaten -NumberOfSupplierInvoices=Anzahl Lieferantenrechnungen in den letzten 12 Monaten -NumberOfUnitsProposals=Anzahl von Einheiten in Angeboten in den letzten 12 Monaten. -NumberOfUnitsCustomerOrders=Anzahl von Einheiten in Kundenbestellungen in den letzten 12 Monaten. -NumberOfUnitsCustomerInvoices=Anzahl von Einheiten in Kundenrechnungen in den letzten 12 Monaten. -NumberOfUnitsSupplierProposals=Anzahl von Einheiten in Lieferantenangeboten in den letzten 12 Monaten. -NumberOfUnitsSupplierOrders=Anzahl von Einheiten in Lieferantenbestellungen in den letzten 12 Monaten. -NumberOfUnitsSupplierInvoices=Anzahl von Einheiten in Lieferantenrechnungen in den letzten 12 Monaten. +StatsByNumberOfUnits=Statistik zu den Totalstückzahlen Produkte/Dienstleistungen +StatsByNumberOfEntities=Statistik der Zahl der referenzierten Entitäten (Anzahl Rechnungen, Bestellungen, ...) +NumberOfProposals=Anzahl Angebote +NumberOfCustomerOrders=Anzahl Kundenbestellungen +NumberOfCustomerInvoices=Anzahl Kundenrechnungen +NumberOfSupplierProposals=Anzahl Lieferantenangebote +NumberOfSupplierOrders=Anzahl Lieferantenbestellungen +NumberOfSupplierInvoices=Anzahl Lieferantenrechnungen +NumberOfUnitsProposals=Anzahl von Einheiten in Angeboten +NumberOfUnitsCustomerOrders=Anzahl von Einheiten in Kundenbestellungen +NumberOfUnitsCustomerInvoices=Anzahl von Einheiten in Kundenrechnungen +NumberOfUnitsSupplierProposals=Anzahl von Einheiten in Lieferantenangeboten +NumberOfUnitsSupplierOrders=Anzahl von Einheiten in Lieferantenbestellungen +NumberOfUnitsSupplierInvoices=Anzahl von Einheiten in Lieferantenrechnungen EMailTextInterventionAddedContact=Ein neuer Serviceauftrag %s wurde Ihnen zugewiesen. EMailTextInterventionValidated=Serviceauftrag %s wurde freigegeben EMailTextInvoiceValidated=Rechnung %s wurde freigegeben diff --git a/htdocs/langs/de_DE/paypal.lang b/htdocs/langs/de_DE/paypal.lang index fb65ba51c9d..c671e384a33 100644 --- a/htdocs/langs/de_DE/paypal.lang +++ b/htdocs/langs/de_DE/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Die Transaktions ID lautet: %s PAYPAL_ADD_PAYMENT_URL=Fügen Sie die Webadresse für Paypal Zahlungen hinzu, wenn Sie ein Dokument per E-Mail versenden. PredefinedMailContentLink=Sie können unten auf den sicheren Link klicken, um Ihre Zahlung mit PayPal \n\n %s \n\n zu tätigen YouAreCurrentlyInSandboxMode=Sie befinden sich im "Sandbox"-Modus -NewPaypalPaymentReceived=Neue PayPal-Zahlung erhalten -NewPaypalPaymentFailed=Neue Paypal-Zahlung probiert, aber fehlgeschlagen +NewOnlinePaymentReceived=Neue Onlinezahlung erhalten +NewOnlinePaymentFailed=Neue Onlinezahlung versucht, aber fehlgeschlagen PAYPAL_PAYONLINE_SENDEMAIL=Status-E-Mail nach einer Zahlung (erfolgreich oder nicht) ReturnURLAfterPayment=Rückkehr-URL nach Zahlung -ValidationOfPaypalPaymentFailed=Validierung der Paypal-Zahlung gescheitert -PaypalConfirmPaymentPageWasCalledButFailed=Zahlungsbestätigungsseite für Paypal wurde von Paypal aufgerufen, aber Bestätigung fehlgeschlagen +ValidationOfOnlinePaymentFailed=Validierung der Onlinezahlung fehlgeschlagen +PaymentSystemConfirmPaymentPageWasCalledButFailed=Die aufgerufene Zahlungsbestätigungsseite hat einen Fehler zurückgemeldet SetExpressCheckoutAPICallFailed=Aufruf des API SetExpressCheckout fehlgeschlagen DoExpressCheckoutPaymentAPICallFailed=Aufruf des API DoExpressCheckoutPayment fehlgeschlagen DetailedErrorMessage=Detaillierte Fehlermeldung ShortErrorMessage=verkürzte Fehlermeldung ErrorCode=Fehlercode ErrorSeverityCode=Fehlercode Schwierigkeitsgrad +OnlinePaymentSystem=Online Zahlungssystem +PaypalLiveEnabled=Paypal live aktiviert (Nicht im Test/Sandbox Modus) diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index fb20acb70bf..90b6ff23c17 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -13,23 +13,25 @@ Product=Produkt Service=Leistung ProductId=Produkt/Leistungs ID Create=Erstelle -Reference=Referenz +Reference=Nummer NewProduct=Neues Produkt NewService=Neue Leistung ProductVatMassChange=USt-Massenänderung ProductVatMassChangeDesc=Mit dieser Seite kann ein Steuersatz für Produkte oder Dienstleistungen von einem Wert auf einen anderen geändert werden. Achtung: Diese Änderung erfolgt über die gesamte Datenbank! MassBarcodeInit=Initialisierung Barcodes MassBarcodeInitDesc=Hier können Objekte mit einem Barcode initialisiert werden, die noch keinen haben. Stellen Sie vor Benutzung sicher, dass die Einstellungen des Barcode-Moduls vollständig sind! -ProductAccountancyBuyCode=Buchhaltung - Konto (Anschaffung) -ProductAccountancySellCode=Buchhaltung - Konto (Verkauf) +ProductAccountancyBuyCode=Buchhaltungkonto (Anschaffung) +ProductAccountancySellCode=Buchhaltungkonto (Verkauf) ProductOrService=Produkt oder Leistung ProductsAndServices=Produkte und Leistungen ProductsOrServices=Produkte oder Leistungen -ProductsOnSell=Produkte für Ein- oder Verkauf +ProductsOnSaleOnly=Produkte nur für den Verkauf +ProductsOnPurchaseOnly=Produkte nur für den Einkauf ProductsNotOnSell=Produkte weder für Ein- noch Verkauf ProductsOnSellAndOnBuy=Produkte für Ein- und Verkauf -ServicesOnSell=Leistungen für Ein- oder Verkauf -ServicesNotOnSell=Leistungen nicht für Verkauf +ServicesOnSaleOnly=Leistungen nur für den Verkauf +ServicesOnPurchaseOnly=Leistungen nur für den Einkauf +ServicesNotOnSell=Services weder für Ein- noch Verkauf ServicesOnSellAndOnBuy=Leistungen für Ein- und Verkauf LastModifiedProductsAndServices=Letzte %s bearbeitete Produkte/Leistungen LastRecordedProducts=Letzte %s erfasste Produkte/Leistungen @@ -60,7 +62,7 @@ SellingPrice=Verkaufspreis SellingPriceHT=Verkaufspreis (ohne Steuern) SellingPriceTTC=Verkaufspreis (inkl. USt.) CostPriceDescription=Der Preis (netto, ohne Steuern) kann dafür verwendet werden, die durchschnittlichen Kosten dieses Artikel zu speichern. Es kann jeder Preis verwendet werden, der kalkuliert wurde, z. B. der durchschnittliche Einkaufspreis plus durchschnittliche Produktions- und Vertriebskosten. -CostPriceUsage=This value could be used for margin calculation. +CostPriceUsage=Dieser Wert könnte für Margenberechnung genutzt werden. SoldAmount=Verkaufte Menge PurchasedAmount=angeschaffte Menge NewPrice=Neuer Preis @@ -91,7 +93,7 @@ NoteNotVisibleOnBill=Anmerkung (nicht sichtbar auf Rechnungen, Angeboten,...) ServiceLimitedDuration=Ist die Erbringung einer Dienstleistung zeitlich beschränkt: MultiPricesAbility=Mehrere Preissegmente pro Produkt/Leistung (Jeder Kunde ist einem Segment zugeordnet) MultiPricesNumPrices=Anzahl Preise -AssociatedProductsAbility=Activate the feature to manage virtual products +AssociatedProductsAbility=Aktiviere die Funktion, um virtuelle Produkte zu verwalten AssociatedProducts=Unterprodukte AssociatedProductsNumber=Anzahl der Unterprodukte ParentProductsNumber=Anzahl der übergeordneten Produkte @@ -103,7 +105,7 @@ KeywordFilter=Stichwortfilter CategoryFilter=Kategoriefilter ProductToAddSearch=Suche hinzuzufügendes Produkt NoMatchFound=Kein Eintrag gefunden -ListOfProductsServices=List of products/services +ListOfProductsServices=Liste der Produkte/Leistungen ProductAssociationList=Liste der Produkte/Leistungen die Komponenten von diesem Virtuellen Produkt sind ProductParentList=Liste der Produkte / Dienstleistungen mit diesem Produkt als ein Bestandteil ErrorAssociationIsFatherOfThis=Eines der ausgewählten Produkte ist Elternteil des aktuellen Produkts @@ -142,7 +144,7 @@ ConfirmCloneProduct=Möchten Sie ddas Produkt/service %s wirklich duplizi CloneContentProduct=Allgemeine Informationen des Produkts/Leistungen duplizieren ClonePricesProduct=Allgemeine Informationen und Preise duplizieren CloneCompositionProduct=Dupliziere Produkt-/Leistungszusammenstellung -CloneCombinationsProduct=Clone product variants +CloneCombinationsProduct=Dupliziere Produkt-Variante ProductIsUsed=Produkt in Verwendung NewRefForClone=Artikelnummer neues Produkt/Leistung SellingPrices=Verkaufspreis @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=Liter l=L +unitP=Stück +unitSET=Set +unitS=Zweitens +unitH=Stunden +unitD=Tag +unitKG=Kilo +unitG=Gramm +unitM=Meter +unitLM=Laufmeter +unitM2=Quadratmeter +unitM3=Kubikmeter +unitL=Liter ProductCodeModel=Vorlage für Produktreferenz ServiceCodeModel=Vorlage für Dienstleistungsreferenz CurrentProductPrice=Aktueller Preis @@ -186,6 +200,7 @@ MultipriceRules=Regeln der Preisstufen UseMultipriceRules=Verwende Preissegmentregeln (Im Produkt Modul Setup definiert) um automatisch Preise für alle anderen Segmente anhand des ersten Segmentes zu berechnen PercentVariationOver=%% Veränderung über %s PercentDiscountOver=%% Nachlass über %s +KeepEmptyForAutoCalculation=Leer lassen um den Wert basierend auf Gewicht oder Volumen der Produkte automatisch zu berechnen ### composition fabrication Build=Produzieren ProductsMultiPrice=Produkte und Preise für jedes Preissegment @@ -208,7 +223,7 @@ DefinitionOfBarCodeForProductNotComplete=Barcode-Typ oder -Wert bei Produkt %s u DefinitionOfBarCodeForThirdpartyNotComplete=Barcode-Typ oder -Wert beim Partner %s unvollständig. BarCodeDataForProduct=Barcode-Information von Produkt %s: BarCodeDataForThirdparty=Barcode-Information vom Partner %s: -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) +ResetBarcodeForAllRecords=Definiere Barcode-Wert für alle Datensätze (dies überschreibt auch bereits definierte Barcodes mit neuen Werten!) PriceByCustomer=unterschiedliche Preise für jeden Kunden PriceCatalogue=Ein einziger Preis pro Produkt/Leistung PricingRule=Preisregel für Kundenpreise @@ -239,7 +254,7 @@ GlobalVariables=Globale Variablen VariableToUpdate=Variable, die aktualisiert wird GlobalVariableUpdaters=Globale Variablen aktualisieren UpdateInterval=Update-Intervall (Minuten) -LastUpdated=Latest update +LastUpdated=Zuletzt aktualisiert CorrectlyUpdated=erfolgreich aktualisiert PropalMergePdfProductActualFile=verwendete Dateien, um in PDF Azur hinzuzufügen sind / ist PropalMergePdfProductChooseFile=Wähle PDF-Dateien @@ -259,41 +274,47 @@ VolumeUnits=Einheit Volumen SizeUnits=Einheit Größe DeleteProductBuyPrice=Einkaufspreis löschen ConfirmDeleteProductBuyPrice=Möchten Sie diesen Einkaufspreis wirklich löschen? -SubProduct=Sub product +SubProduct=Unterprodukt +ProductSheet=Datenblatt +ServiceSheet=Wartungsblatt #Attributes -VariantAttributes=Variant attributes -ProductAttributes=Variant attributes for products -ProductAttributeName=Variant attribute %s -ProductAttribute=Variant attribute -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object -ProductCombinations=Variants -HideProductCombinations=Hide products variant in the products selector -ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -WeightImpact=Weight impact +VariantAttributes=Variante Attribute +ProductAttributes=Attribute der Varianten für Produkte +ProductAttributeName=Attribut der Variante %s +ProductAttribute=Attribut Variante +ProductAttributeDeleteDialog=Sind Sie sicher, dass Sie dieses Attribut entfernen möchten? Alle Werte werden gelöscht werden +ProductAttributeValueDeleteDialog=Sind Sie sicher, dass Sie den Wert „%s“ mit der Nummer „%s“ von diesem Attribut löschen möchten? +ProductCombinationDeleteDialog=Sind Sie sicher, dass Sie die Variante von diesem Produkt „%s“ löschen möchten? +ProductCombinationAlreadyUsed=Es ist ein Fehler während dem löschen der Variante aufgetreten. Stellen Sie sicher, dass es nicht durch ein anderes Objekt verwendet wird . +ProductCombinations=Varianten +PropagateVariant=Propagate variants +HideProductCombinations=Ausblenden von Produkt-Varianten in den Produktauswahl-Listen +ProductCombination=Variante +NewProductCombination=Neue Variante +EditProductCombination=Variante bearbeiten +NewProductCombinations=Neue Varianten +EditProductCombinations=Varianten bearbeiten +SelectCombination=Kombination wählen +ProductCombinationGenerator=Varianten-Generator +Features=Funktionen +PriceImpact=Auswirkungen auf die Preise +WeightImpact=Auswirkungen auf Gewicht NewProductAttribute=Neues Attribut -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=Nb of different values -NbProducts=Nb. of products -ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found +NewProductAttributeValue=Wert des neuen Attributs +ErrorCreatingProductAttributeValue=Es ist ein Fehler bei der Erstellung des Wertes dieses Attributes aufgetreten . \nEin Wert der gleichen Nr./Ref. wurde bereits registriert +ProductCombinationGeneratorWarning=Wenn Sie vor der Generierung von neuen Varianten fortsetzen, werden alle vorherigen Versionen GELÖSCHT werden. Es werden nur bestehende Varianten mit den neuen Werten aktualisiert werden. +TooMuchCombinationsWarning=Die Erzeugung von vielen Varianten kann den Prozessor und Speicher verlangsamen. Dolibarr ist dabei vielleicht nicht in der Lage, diese zu erstellen. Das Aktivieren dieser Option „%s“ hilft den Speicherverbrauch zu reduzieren. +DoNotRemovePreviousCombinations=Löschen Sie nicht vorhandene Varianten +UsePercentageVariations=Verwende die prozentuale Veränderung +PercentageVariation=prozentuale Varianten +ErrorDeletingGeneratedProducts=Es gab einen Fehler, während Produkt Varianten entfernt wurden +NbOfDifferentValues=Anz. verschiedene Werte +NbProducts=Anzahl Produkte +ParentProduct=Übergeordnetes Produkt +HideChildProducts=Produktvarianten ausblenden +ConfirmCloneProductCombinations=Sollen alle Produktvarianten zum anderen Produkt mit der gegebenen Referenz kopiert werden? +CloneDestinationReference=Empfangsort Nr. +ErrorCopyProductCombinations=Es gab einen Fehler, während Produkt Varianten kopiert wurden +ErrorDestinationProductNotFound=Zielprodukt nicht gefunden +ErrorProductCombinationNotFound=Produktvariante nicht gefunden diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index c4f11d0b4b0..15e0635f7a9 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projektübersicht ProjectStatus=Projekt Status SharedProject=Jeder PrivateProject=Projektkontakte +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Alle Projekte MyProjectsDesc=Diese Ansicht zeigt nur Projekte, bei welchen Sie als Kontakt (unabhängig vom Typ) hinzugefügt sind. ProjectsPublicDesc=Diese Ansicht zeigt alle Projekte, für die Sie zum Lesen berechtigt sind. TasksOnProjectsPublicDesc=Diese Ansicht zeigt alle Aufgaben der Projekte, für die Sie zum Lesen berechtigt sind. @@ -20,23 +23,25 @@ OnlyOpenedProject=Nur offene Projekte sind sichtbar. (Projekte im Status Entwurf ClosedProjectsAreHidden=Abgeschlossene Projekte werden nicht angezeigt. TasksPublicDesc=Diese Ansicht ist beschränkt auf Projekt und Aufgaben bei welchen Sie über Leserechte verfügen. TasksDesc=Diese Ansicht zeigt alle Projekte und Aufgaben (Ihre Benutzerberechtigungen berechtigt Sie alles zu sehen). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. -ImportDatasetTasks=Tasks of projects +AllTaskVisibleButEditIfYouAreAssigned=Alle Aufgaben dieser Projekte sind sichtbar, aber Sie können nur auf ihnen zugewiesenen Aufgaben Zeit erfassen. Weisen Sie sich die Aufgabe zu, wenn sie Zeiten erfassen müssen. +OnlyYourTaskAreVisible=Nur Ihnen zugewiesene Aufgaben sind sichtbar. Weisen Sie sich die Aufgabe zu, wenn Sie Zeiten auf der Aufgabe erfassen müssen. +ImportDatasetTasks=Aufgaben der Projekte +ProjectCategories=Project tags/categories NewProject=Neues Projekt AddProject=Projekt erstellen DeleteAProject=Löschen eines Projekts DeleteATask=Löschen einer Aufgabe -ConfirmDeleteAProject=Are you sure you want to delete this project? -ConfirmDeleteATask=Are you sure you want to delete this task? +ConfirmDeleteAProject=Sind Sie sicher, dass diese Vertragsposition löschen wollen? +ConfirmDeleteATask=Sind Sie sicher, dass diese Aufgabe löschen wollen? OpenedProjects=Offene Projekte -OpenedTasks=Geöffnete Aufgaben -OpportunitiesStatusForOpenedProjects=Chancen nach Projektstatus +OpenedTasks=Offene Aufgaben +OpportunitiesStatusForOpenedProjects=Betrag Verkaufschancen offene Projekt nach Status OpportunitiesStatusForProjects=Betrag Verkaufschancen pro Projekt nach Status ShowProject=Zeige Projekt SetProject=Projekt setzen NoProject=Kein Projekt definiert oder keine Rechte NbOfProjects=Anzahl der Projekte +NbOfTasks=Nb of tasks TimeSpent=Zeitaufwand TimeSpentByYou=Ihr Zeitaufwand TimeSpentByUser=Zeitaufwand von Benutzer ausgegeben @@ -47,9 +52,9 @@ TaskTimeSpent=Zeitaufwände für Aufgaben TaskTimeUser=Benutzer TaskTimeNote=Hinweis TaskTimeDate=Datum -TasksOnOpenedProject=Aufgaben für offenes Projekt +TasksOnOpenedProject=Aufgaben in offenen Projekten WorkloadNotDefined=Arbeitsaufwand nicht definiert -NewTimeSpent=Neuer Zeitaufwand +NewTimeSpent=Zeitaufwände MyTimeSpent=Mein Zeitaufwand Tasks=Aufgaben Task=Aufgabe @@ -58,7 +63,8 @@ TaskDateEnd=Enddatum der Aufgabe TaskDescription=Aufgaben-Beschreibung NewTask=Neue Aufgabe AddTask=Aufgabe erstellen -AddTimeSpent=Create time spent +AddTimeSpent=Erfassen verbrauchte Zeit +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Tätigkeit Activities=Aufgaben/Tätigkeiten MyActivities=Meine Aufgaben/Tätigkeiten @@ -72,12 +78,13 @@ ListOfTasks=Aufgabenliste GoToListOfTimeConsumed=Liste der verwendeten Zeit aufrufen GoToListOfTasks=Liste der Aufgaben aufrufen ListProposalsAssociatedProject=Liste Angebote, die mit diesem Projekt verknüpft sind -ListOrdersAssociatedProject=List of customer orders associated with the project -ListInvoicesAssociatedProject=List of customer invoices associated with the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project +ListOrdersAssociatedProject=Liste der mit diesem Projekt verbundenen Kunden-Bestellungen +ListInvoicesAssociatedProject=Liste der mit diesem Projekt verbundenen Kunden-Rechnungen +ListPredefinedInvoicesAssociatedProject=Liste von Rechnungsvorlagen, die mit diesem Projekt verknüpft sind. +ListSupplierOrdersAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenbestellungen +ListSupplierInvoicesAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenrechnungen ListContractAssociatedProject=Liste Verträge, die mit diesem Projekt verknüpft sind +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Liste der Serviceaufträge, die mit diesem Projekt verknüpft sind ListExpenseReportsAssociatedProject=Liste Spesenabrechnungen, die mit diesem Projekt verknüpft sind ListDonationsAssociatedProject=Liste Spenden, die mit diesem Projekt verknüpft sind @@ -93,24 +100,25 @@ NotOwnerOfProject=Nicht Eigner des privaten Projekts AffectedTo=Zugewiesen an CantRemoveProject=Löschen des Projekts auf Grund verbundener Elemente (Rechnungen, Bestellungen oder andere) nicht möglich. Näheres finden Sie unter dem Reiter Bezugnahmen. ValidateProject=Projekt freigeben -ConfirmValidateProject=Are you sure you want to validate this project? +ConfirmValidateProject=Möchten Sie dieses Projekt wirklich freigeben? CloseAProject=Projekt schließen -ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ConfirmCloseAProject=Möchten Sie dieses Projekt wirklich schließen? +AlsoCloseAProject=Das Projekt auch schließen (lassen Sie es offen, wenn Sie noch Produktions-Aufgaben laufen haben) ReOpenAProject=Projekt öffnen -ConfirmReOpenAProject=Are you sure you want to re-open this project? +ConfirmReOpenAProject=Möchten Sie dieses Projekt wirklich wiedereröffnen? ProjectContact=Projekt Kontakte ActionsOnProject=Projektaktionen YouAreNotContactOfProject=Sie sind diesem privaten Projekt nicht als Kontakt zugeordnet. +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Lösche einen Zeitaufwand -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? +ConfirmDeleteATimeSpent=Sind Sie sicher, dass diesen Zeitaufwand löschen wollen? DoNotShowMyTasksOnly=Zeige auch die Aufgaben der Anderen ShowMyTasksOnly=Zeige nur meine Aufgaben TaskRessourceLinks=Ressourcen ProjectsDedicatedToThisThirdParty=Mit diesem Partner verknüpfte Projekte NoTasks=Keine Aufgaben für dieses Projekt LinkedToAnotherCompany=Mit Partner verknüpft -TaskIsNotAffectedToYou=Aufgabe nicht Ihnen zugeordnet +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Zeitaufwand ist leer ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt (%s aktuelle Aufgaben) und alle Zeitaufwände. IfNeedToUseOhterObjectKeepEmpty=Wenn einige Zuordnungen (Rechnung, Bestellung, ...), einem Dritten gehören, müssen Sie erst alle mit dem Projekt verbinden, damit das Projekt auch Dritten zugänglich ist . @@ -120,13 +128,13 @@ CloneContacts=Dupliziere Kontakte CloneNotes=Dupliziere Hinweise CloneProjectFiles=Dupliziere verbundene Projektdateien CloneTaskFiles=Aufgabe(n) duplizieren beigetreten Dateien (falls Aufgabe (n) dupliziert) -CloneMoveDate=Update project/tasks dates from now? -ConfirmCloneProject=Are you sure to clone this project? -ProjectReportDate=Change task dates according to new project start date +CloneMoveDate=Datum des Projekts / der Aufgaben zum aktuellen Zeitpunkt aktualisieren? +ConfirmCloneProject=Möchten Sie dieses Projekt wirklich duplizieren? +ProjectReportDate=Passe Aufgaben-Datum dem neuen Projekt-Startdatum an ErrorShiftTaskDate=Es ist nicht möglich, das Aufgabendatum dem neuen Projektdatum anzupassen ProjectsAndTasksLines=Projekte und Aufgaben ProjectCreatedInDolibarr=Projekt %s erstellt -ProjectModifiedInDolibarr=Project %s modified +ProjectModifiedInDolibarr=Projekt %s geändert TaskCreatedInDolibarr=Aufgabe %s erstellt TaskModifiedInDolibarr=Aufgabe %s geändert TaskDeletedInDolibarr=Aufgabe %s gelöscht @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Benutzer eine Ressource pro Aufgabe zuordnen, um InputPerDay=Eingang pro Tag InputPerWeek=Eingang pro Woche InputPerAction=Eingang pro Aktion -TimeAlreadyRecorded=Zeitaufwand für diese Aufgabe/Tag und Benutzer %s bereits aufgenommen +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projekte mit diesem Anwender als Kontakt TasksWithThisUserAsContact=Aufgaben zugeordnet zu diesem Anwender ResourceNotAssignedToProject=Zugewiesen zu Projekt ResourceNotAssignedToTheTask=nicht der Aufgabe zugewiesen +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Aufgabe mir selbst zuweisen +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Zuweisen ProjectOverview=Projekt-Übersicht ManageTasks=Verwende Projekte um Aufgaben und Zeitaufwand zu verwalten ManageOpportunitiesStatus=Verwende Projekte um Leads und Chancen zu verwalten ProjectNbProjectByMonth=Anzahl der Projekte pro Monat +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Betrag der Verkaufschancen pro Monat ProjectWeightedOppAmountOfProjectsByMonth=gewichteter Betrag der Verkaufschancen pro Monat ProjectOpenedProjectByOppStatus=Offene Projekte/Verkaufschancen nach Status ProjectsStatistics=Statistik über Projekte und Leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Aufgabe zugewiesen. Eingabe der Zeit zu diese Aufgabe sollte möglich sein. IdTaskTime=ID Zeit Aufgabe YouCanCompleteRef=Wenn Sie die Referenz mit Infromationen vervollständigen möchten (um diese als Suchfilter zu verwenden), wird empfohlen ein Trennzeichen einzusetzen, damit den Nummernkreis der zukünftigen Projekten weiterhin korrekt funktioniert. Zum Beispiel %s-ABC. Sie können aber auch in den Label Suchbegriffe hinzufügen. Ein bewährtes Verfahren besteht darin, ein dedizierter Feld einzufügen, bekannt unter dem Begriff ergänzenden Attributen. -OpenedProjectsByThirdparties=Offene Projekte nach Partner +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=nur Verkaufschancen -OpenedOpportunitiesShort=geöffnete Verkaufschancen +OpenedOpportunitiesShort=Offene Verkaufschancen NotAnOpportunityShort=keine Verkaufschance OpportunityTotalAmount=Verkaufschancen Gesamtbetrag OpportunityPonderatedAmount=Verkaufschancen geschätzter Betrag diff --git a/htdocs/langs/de_DE/sendings.lang b/htdocs/langs/de_DE/sendings.lang index 35a972f7a8d..6a3f0d09ad9 100644 --- a/htdocs/langs/de_DE/sendings.lang +++ b/htdocs/langs/de_DE/sendings.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Versandnr. +RefSending=Versand-Nr. Sending=Auslieferung Sendings=Auslieferungen AllSendings=Alle Lieferungen @@ -18,13 +18,13 @@ SendingCard=Lieferung - Karte NewSending=Neue Auslieferung CreateShipment=Auslieferung erstellen QtyShipped=Liefermenge -QtyPreparedOrShipped=Qty prepared or shipped +QtyPreparedOrShipped=Menge vorbereitet oder versendet QtyToShip=Versandmenge QtyReceived=Erhaltene Menge -QtyInOtherShipments=Qty in other shipments +QtyInOtherShipments=Menge in anderen Lieferungen KeepToShip=Zum Versand behalten OtherSendingsForSameOrder=Weitere Lieferungen zu dieser Bestellung -SendingsAndReceivingForSameOrder=Shipments and receipts for this order +SendingsAndReceivingForSameOrder=Warenerhalt und Versand dieser Bestellung SendingsToValidate=Freizugebende Auslieferungen StatusSendingCanceled=Storniert StatusSendingDraft=Entwurf @@ -37,13 +37,12 @@ SendingSheet=Auslieferungen ConfirmDeleteSending=Möchten Sie diesen Versand wirklich löschen? ConfirmValidateSending=Möchten Sie diesen Versand mit der referenz %s wirklich freigeben? ConfirmCancelSending=Möchten Sie diesen Versand wirklich abbrechen? -DocumentModelSimple=Einfache Dokumentvorlage DocumentModelMerou=Merou A5-Modell WarningNoQtyLeftToSend=Achtung, keine Produkte für den Versand StatsOnShipmentsOnlyValidated=Versandstatistik (nur freigegebene). Das Datum ist das der Freigabe (geplantes Lieferdatum ist nicht immer bekannt). DateDeliveryPlanned=Geplanter Liefertermin -RefDeliveryReceipt=Ref delivery receipt -StatusReceipt=Status delivery receipt +RefDeliveryReceipt=Lieferschein-Nr. +StatusReceipt=Der Status des Lieferschein DateReceived=Datum der Zustellung SendShippingByEMail=Versand per E-Mail SendShippingRef=Versendung der Auslieferung %s @@ -51,10 +50,10 @@ ActionsOnShipping=Hinweis zur Lieferung LinkToTrackYourPackage=Link zur Paket- bzw. Sendungsverfolgung ShipmentCreationIsDoneFromOrder=Lieferscheine müssen aus einer Bestellung generiert werden ShipmentLine=Zeilen Lieferschein -ProductQtyInCustomersOrdersRunning=Produktmenge in geöffneter Kunden Bestellungen -ProductQtyInSuppliersOrdersRunning=Produktmenge in geöffneter Lieferantenbestellungen -ProductQtyInShipmentAlreadySent=Produktmenge von offenem Kundenauftrag bereits geliefert -ProductQtyInSuppliersShipmentAlreadyRecevied=Produktmenge aus Lieferantenbestellung bereits erhalten +ProductQtyInCustomersOrdersRunning=Produktmenge in offenen Kundenbestellungen +ProductQtyInSuppliersOrdersRunning=Produktmenge in offenen Lieferantenbestellungen +ProductQtyInShipmentAlreadySent=Bereits gelieferte Produktmenge aus offenem Kundenauftrag +ProductQtyInSuppliersShipmentAlreadyRecevied=Bereits erhaltene Produktmenge aus Lieferantenbestellung NoProductToShipFoundIntoStock=Kein Artikel zum Versenden gefunden im Lager %s. Korrigieren Sie den Lagerbestand oder wählen Sie ein anderes Lager. WeightVolShort=Gew./Vol. ValidateOrderFirstBeforeShipment=Sie müssen den Auftrag erst bestätigen bevor Sie eine Lieferung machen können. diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index 19ac89e8c91..76c6d5e83d7 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -2,7 +2,7 @@ WarehouseCard=Warenlager - Karte Warehouse=Warenlager Warehouses=Warenlager -ParentWarehouse=Parent warehouse +ParentWarehouse=Übergeordnetes Lager NewWarehouse=Neues Warenlager WarehouseEdit=Warenlager bearbeiten MenuNewWarehouse=Neues Warenlager @@ -22,15 +22,15 @@ Movements=Lagerbewegungen ErrorWarehouseRefRequired=Warenlager-Referenz erforderlich ListOfWarehouses=Liste der Warenlager ListOfStockMovements=Liste der Lagerbewegungen -StockMovementForId=Movement ID %d -ListMouvementStockProject=List of stock movements associated to project +StockMovementForId=Lagerbewegung Nr. %d +ListMouvementStockProject=Lagerbewegungen für Projekt StocksArea=Warenlager - Übersicht Location=Standort LocationSummary=Kurzbezeichnung Standort NumberOfDifferentProducts=Anzahl unterschiedlicher Produkte NumberOfProducts=Anzahl der Produkte -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Letzte Bewegung +LastMovements=Letzte Bewegungen Units=Einheiten Unit=Einheit StockCorrection=Lagerstandsanpassung @@ -42,7 +42,7 @@ LabelMovement=Lagerbewegungs-Etikett NumberOfUnit=Anzahl der Einheiten UnitPurchaseValue=Einkaufspreis pro Stück StockTooLow=Mindestbestand unterschritten -StockLowerThanLimit=Bestand unterhalb der Mindestbestandsmenge +StockLowerThanLimit=Lagerbestand unterhalb der Mindestbestandsmenge ( %s ) EnhancedValue=Warenwert PMPValue=Gewichteter Warenwert PMPValueShort=DSWP @@ -62,7 +62,7 @@ DeStockOnShipment=Verringere reale Bestände bei Bestädigung von Lieferungen DeStockOnShipmentOnClosing=Verringere Lagerbestände beim Schließen der Versanddokumente ReStockOnBill=Erhöhung der tatsächlichen Bestände in den Rechnungen / Gutschriften ReStockOnValidateOrder=Erhöhung der realen Bestände auf Bestellungen stellt fest -ReStockOnDispatchOrder=Erhöhe Warenbestände bei manueller Lieferung in das Lager, nachdem die Bestellung eingegangen ist. +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Auftrag wurde noch nicht oder nicht mehr ein Status, der Erzeugnisse auf Lager Hallen Versand ermöglicht. StockDiffPhysicTeoric=Begründung für Differenz zwischen Inventurbestand und Lagerbestand NoPredefinedProductToDispatch=Keine vordefinierten Produkte für dieses Objekt. Also kein Versand im Lager erforderlich ist. @@ -71,7 +71,10 @@ StockLimitShort=Grenzwert für Alarm StockLimit=Mindestbestand vor Warnung PhysicalStock=Istbestand RealStock=Realer Lagerbestand +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Theoretisches Warenlager +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Warenlager ID DescWareHouse=Beschreibung Warenlager LieuWareHouse=Standort Warenlager @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Menge des Produkts %s im Lager vor der gewählten Period NbOfProductAfterPeriod=Menge des Produkts %s im Lager nach der gewählten Periode (> %s) MassMovement=Massenbewegung SelectProductInAndOutWareHouse=Wählen Sie ein Produkt, eine Menge, ein Quellen- und ein Ziel-Lager und klicken Sie dann auf "%s". Sobald Sie dies für alle erforderlichen Bewegungen getan haben, klicken Sie auf "%s". -RecordMovement=Eintrag verschoben +RecordMovement=Umbuchung ReceivingForSameOrder=Empfänger zu dieser Bestellung StockMovementRecorded=aufgezeichnete Lagerbewegungen RuleForStockAvailability=Regeln für Bestands-Verfügbarkeit @@ -135,7 +138,7 @@ InventoryCodeShort=Inv. / Mov. Kode NoPendingReceptionOnSupplierOrder=Keine anstehenden Liefereingänge aufgrund offener Lieferantenbestellungen ThisSerialAlreadyExistWithDifferentDate=Diese Charge / Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) OpenAll=Verfügbar für alle Aktionen -OpenInternal=Open only for internal actions +OpenInternal=Verfügbar für interne Aktionen UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventardatum +NewInventory=Neues inventar +inventorySetup = Inventar einrichten +inventoryCreatePermission=Neue Inventur erstellen +inventoryReadPermission=Inventar anzeigen +inventoryWritePermission=Inventar aktualisieren +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventar +inventoryListTitle=Inventuren +inventoryListEmpty=Keine Inventarisierung in Arbeit +inventoryCreateDelete=Inventar erstellen/löschen +inventoryCreate=Neu erstellen +inventoryEdit=Bearbeiten +inventoryValidate=Bestätigt +inventoryDraft=In Arbeit +inventorySelectWarehouse=Lager auswählen +inventoryConfirmCreate=Erstelle +inventoryOfWarehouse=Inventar für Lager: %s +inventoryErrorQtyAdd=Fehler: Menge ist <= 0 +inventoryMvtStock=By Inventar +inventoryWarningProductAlreadyExists=Dieses Produkt ist schon in der Liste +SelectCategory=Kategoriefilter +SelectFournisseur=Filter nach Lieferant +inventoryOnDate=Inventur +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Fügen sie kein Produkt ohne Bestand hinzu +TheoricalQty=Sollmenge +TheoricalValue=Sollmenge +LastPA=Letzer Einstandpreis +CurrentPA=Aktueller Einstandspreis +RealQty=Echte Menge +RealValue=Echter Wert +RegulatedQty=Regulated Qty +AddInventoryProduct=Produkt zu Inventar hinzufügen +AddProduct=Hinzufügen +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Aktion wirklich ausführen? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Zeile löschen +RegulateStock=Regulate Stock +ListInventory=Liste diff --git a/htdocs/langs/de_DE/users.lang b/htdocs/langs/de_DE/users.lang index 7d9fc5535da..37527dfb7d1 100644 --- a/htdocs/langs/de_DE/users.lang +++ b/htdocs/langs/de_DE/users.lang @@ -8,7 +8,7 @@ EditPassword=Passwort bearbeiten SendNewPassword=Neues Passwort zusenden ReinitPassword=Passwort zurücksetzen PasswordChangedTo=Neues Passwort: %s -SubjectNewPassword=Your new password for %s +SubjectNewPassword=Ihr neues Passwort für %s GroupRights=Gruppenberechtigungen UserRights=Benutzerberechtigungen UserGUISetup=Benutzeroberfläche @@ -45,7 +45,7 @@ RemoveFromGroup=Gruppenzuweisung entfernen PasswordChangedAndSentTo=Passwort geändert und an %s gesendet. PasswordChangeRequestSent=Kennwort-Änderungsanforderung für %s gesendet an %s. MenuUsersAndGroups=Benutzer & Gruppen -LastGroupsCreated=%s neueste erstellte Gruppen +LastGroupsCreated=Letzte %s erstellte Gruppen LastUsersCreated=%s neueste ertellte Benutzer ShowGroup=Zeige Gruppe ShowUser=Zeige Benutzer @@ -66,8 +66,8 @@ InternalUser=Interne Benutzer ExportDataset_user_1=Benutzer und -eigenschaften DomainUser=Domain-Benutzer %s Reactivate=Reaktivieren -CreateInternalUserDesc=Dieses Formular erlaubt Ihnen das Anlegen eines unternehmensinternen Benutzers. Zum Anlegen eines externen Benutzers (Kunden, Lieferanten, ...), verwenden Sie bitte die 'Benutzer erstellen'-Schaltfläche in der Kontaktkarte des jeweiligen Partnerkontakts. -InternalExternalDesc=Ein interner Benutzer ist Teil Ihres Unternehmens/Ihrer Stiftung.
Ein externer Benutzer ist ein Kunde, Lieferant oder Anderes. +CreateInternalUserDesc=Dieses Formular erlaubt Ihnen das Anlegen eines Internen Benutzers. Zum Anlegen eines externen Benutzers (Kunden, Lieferanten, ...), verwenden Sie bitte die 'Benutzer erstellen'-Schaltfläche in der Kontaktkarte des jeweiligen Partnerkontakts. +InternalExternalDesc=Ein interner Benutzer ist Teil Ihres Unternehmens/Stiftung.
Ein externer Benutzer ist ein Kunde, Lieferant oder Anderes.

In beiden Fällen können Berechtigungen in Dolibarr definiert werden. Ein externer Benutzer kann auch ein anderes Menüsystem als interne Benutzer verwenden. (Home->Setup->Anzeige) PermissionInheritedFromAGroup=Berechtigung durch eine Gruppenzugehörigkeit geerbt. Inherited=Geerbt UserWillBeInternalUser=Erstellter Benutzer ist intern (mit keinem bestimmten Partner verknüpft) diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index bb4408d09f4..f990eb5d3d3 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -11,5 +11,5 @@ descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung bestätigt wird descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Kennzeichne das verknüpfte Angebot als abgerechnet, wenn die Kundenrechnung erstellt wurde. descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +AutomaticCreation=automatische Erstellung +AutomaticClassification=Automatische Klassifikation diff --git a/htdocs/langs/el_CY/accountancy.lang b/htdocs/langs/el_CY/accountancy.lang deleted file mode 100644 index 473582c566a..00000000000 --- a/htdocs/langs/el_CY/accountancy.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category diff --git a/htdocs/langs/el_CY/admin.lang b/htdocs/langs/el_CY/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/el_CY/admin.lang +++ b/htdocs/langs/el_CY/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/el_CY/main.lang b/htdocs/langs/el_CY/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/el_CY/main.lang +++ b/htdocs/langs/el_CY/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index baae64633d0..cde23e7a4ad 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Αλλαγή και φόρτωση Addanaccount=Προσθέστε ένα λογιστικό λογαριασμό AccountAccounting=Λογιστική λογαριασμού AccountAccountingShort=Λογαριασμός +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Δημιουργήστε μία νέα συναλλαγή UpdateMvts=Τροποποίηση συναλλαγής -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Γενικό Καθολικό +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Ημερολόγιο πωλήσεων @@ -132,19 +140,19 @@ Sens=Σημασία Codejournal=Ημερολόγιο NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Λογιστική κατηγορία +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Ημερολόγιο οικονομικών ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=Νέα συναλλαγή NumMvts=Αριθμός συναλλαγής ListeMvts=List of movements ErrorDebitCredit=Χρεωστικές και Πιστωτικές δεν μπορούν να χουν την ίδια αξία ταυτόχρονα - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Λίστα των λογιστικών λογαριασμών Pcgtype=Τύπος λογαριασμού -Pcgsubtype=Δευτερεύουσα κατηγορία λογαριασμού +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Συνολικό περιθώριο πωλήσεων @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Σφάλμα, δεν μπορείτε να διαγράψετε αυτόν τον λογιστικό λογαριασμό γιατί χρησιμοποιείται MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Κώδικας +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Πωλήσεις +AccountingJournalType3=Αγορές +AccountingJournalType4=Τράπεζα +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Εξαγωγές @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 1643b2e2621..0fcaa6d8b14 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Εσωτερικοί χρήστες ExternalUsers=Εξωτερικοί χρήστες GUISetup=Εμφάνιση SetupArea=Περιοχή ρύθμισης +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Έντυπο για να ελέγξετε το αρχείο μεταφόρτωσης (ανάλογα με τις ρυθμίσεις) IfModuleEnabled=Σημείωση: ναι, είναι αποτελεσματική μόνο αν το module %s είναι ενεργοποιημένο RemoveLock=Αφαιρέστε το αρχείο %s, αν υπάρχει, για να επιτραπεί η χρήση του εργαλείου ενημέρωσης. @@ -85,7 +86,7 @@ Mask=Μάσκα NextValue=Επόμενο NextValueForInvoices=Επόμενο (τιμολόγιο) NextValueForCreditNotes=Επόμενο (πιστωτικά τιμολόγια) -NextValueForDeposit=Επόμενη αξία (κατάθεση) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Επόμενη αξία (αντικατάστασης) MustBeLowerThanPHPLimit=Σημείωση: Η PHP σας περιορίζει το μέγεθος κάθε αρχείου αποστολής σε %s %s, ανεξάρτητα από το ποιά είναι η αξία αυτής της παραμέτρου. NoMaxSizeByPHPLimit=Σημείωση: Κανένα όριο δεν έχει οριστεί στη διαμόρφωση του PHP σας @@ -103,7 +104,7 @@ MenuIdParent=ID Μητρικού Μενού DetailMenuIdParent=ID του μητρικού μενού (άδειο για το μενού κορυφής) DetailPosition=Αριθμός Ταξινόμησης για να καθοριστεί η θέση του μενού AllMenus=Όλα -NotConfigured=Το Module δεν έχει ρυθμιστεί +NotConfigured=Module/Application not configured Active=Ενεργό SetupShort=Ρύθμιση OtherOptions=Άλλες Επιλογές @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Διαχωριστικό Χιλιάδων Destination=Προορισμός IdModule=Module ID IdPermissions=Δικαιώματα ID -Modules=Modules LanguageBrowserParameter=Παράμετρος %s LocalisationDolibarrParameters=Παράμετροι τοπικών ρυθμίσεων ClientTZ=Ζώνη Ώρας χρήστη (χρήστης) @@ -123,7 +123,8 @@ PHPTZ=Ζώνη Ώρας PHP server DaylingSavingTime=Η θερινή ώρα (χρήστη) CurrentHour=PHP server hour CurrentSessionTimeOut=Χρονικό όριο περιόδου λειτουργίας τρέχουσας συνοδού -YouCanEditPHPTZ=Για να ορίσετε μια διαφορετική ζώνη ώρας της PHP (δεν απαιτείται), μπορείτε να δοκιμάσετε να προσθέσετε ένα αρχείο .htacces με μια γραμμή σαν αυτό "TZ setenv Europe / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Μέγιστο πλήθος γραμμών για τα widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Δικαιώματα BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Μόνο στοιχεία από ενεργοποιημένα modules προβάλλονται. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Ο κωδικός της βάσης δεδομέ InstrucToEncodePass=Για κρυπτογραφημένο κωδικό στο αρχείο conf.php, κάντε αντικατάσταση στη γραμμή
$dolibarr_main_db_pass="...";
με
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Προστασία παραγόμενων αρχείων pdf (Η ενεργοποίηση ΔΕΝ προτείνεται, χαλάει την μαζική δημιουργία pdf) -ProtectAndEncryptPdfFilesDesc=Η ασφάλεια ενός αρχείου PDF επιτρέπει τα προγράμματα ανάγνωσης PDF να το ανοίξουν και να το εκτυπώσουν. Παρ' ΄όλα αυτά, η τροποποίηση και η αντιγραφή δεν θα είναι πλέον δυνατά. Σημειώστε πως αν χρησιμοποιήσετε αυτή την λειτουργία δεν θα μπορούν να δουλέψουν ομαδικά pdf (όπως απλήρωτα τιμολόγια). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Χαρακτηριστικό DolibarrLicense=Άδεια χρήσης Developpers=Προγραμματιστές/συνεργάτες @@ -224,7 +225,9 @@ OfficialDemo=Δοκιμαστική έκδοση Dolibarr OfficialMarketPlace=Επίσημη ιστοσελίδα για εξωτερικά modules/πρόσθετα OfficialWebHostingService=Υπηρεσίες που αναφέρονται για web hosting (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Άλλοι πόροι +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Για την τεκμηρίωση χρήστη ή προγραμματιστή (Doc, FAQs...),
ρίξτε μια ματιά στο Dolibarr Wiki:
%s ForAnswersSeeForum=Για οποιαδήποτε άλλη ερώτηση/βοήθεια, μπορείτε να χρησιμοποιήσετε το forum του Dolibarr:
%s HelpCenterDesc1=Αυτή η περιοχή μπορεί να σας βοηθήσει να αποκτήσετε υπηρεσίες βοήθειας στο Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Αυτή η λειτουργία δεν είναι δ SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Διαχείριση Αρθρώματος -ModulesSetup=Διαχείριση Αρθρωμάτων +ModulesSetup=Modules/Application setup ModuleFamilyBase=Σύστημα ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Έκδοση Dolibarr CallUpdatePage=Μετάβαση στη σελίδα ενημέρωσης της δομής της βάσης δεδομένων και των δεδομένων: %s. LastStableVersion=Τελευταία σταθερή έκδοση LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Ο διακομιστής ενημερώσεων είναι εκτός σύνδεσης +WithCounter=Manage a counter GenericMaskCodes=Μπορείτε να χρησιμοποιήσετε οποιαδήποτε μάσκα αρίθμησης. Σε αυτή τη μάσκα μπορούν να χρησιμοποιηθούν τις παρακάτω ετικέτες:
Το {000000} αντιστοιχεί σε έναν αριθμό που θα αυξάνεται σε κάθε %s. Εισάγετε όσα μηδέν επιθυμείτε ως το επιθυμητό μέγεθος για τον μετρητή. Ο μετρητής θα συμπληρωθεί με μηδενικά από τα αριστερά για να έχει όσα μηδενικά υπάρχουν στην μάσκα.
Η μάσκα {000000+000} είναι η ίδια όπως προηγουμένως αλλά ένα αντιστάθμισμα που αντιστοιχεί στον αριθμό στα δεξιά του + θα προστεθεί αρχίζοντας από το πρώτο %s.
Η μάσκα {000000@x} είναι η ίδια όπως προηγουμένως αλλά ο μετρητής επανέρχεται στο μηδέν όταν έρθει ο μήνας x (το x είναι μεταξύ του 1 και του 12). Αν αυτή η επιλογή χρησιμοποιηθεί και το x είναι 2 ή μεγαλύτερο, τότε η ακολουθία {yy}{mm} ή {yyyy}{mm} είναι επίσης απαιραίτητη.
Η μάσκα {dd} ημέρα (01 έως 31).
{mm} μήνας (01 έως 12).
{yy}, {yyyy} ή {y} έτος με χρήση 2, 4 ή 1 αριθμού.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Όλοι οι άλλοι χαρακτήρες στην μάσκα θα παραμείνουν ίδιοι.
Κενά διαστήματα δεν επιτρέπονται.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Το παράδειγμα του τρίτου μέρους δημιουργήθηκε στις 2007-03-01:
GenericMaskCodes4c=Παράδειγμα το προϊόν δημιουργήθηκε στις 2007-03-01:
-GenericMaskCodes5=Η μάσκα ABC{yy}{mm}-{000000} θα δώσει ABC0701-000099
Η μάσκα{0000+100}-ZZZ/{dd}/XXX θα δώσει 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Επιστρέφει έναν παραμετροποιήσημο αριθμό σύμφωνα με μία ορισμένη μάσκα. ServerAvailableOnIPOrPort=Ο διακομιστής είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s ServerNotAvailableOnIPOrPort=Ο διακομιστής δεν είναι διαθέσιμος στην διεύθυνση %s στην θύρα %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Ημερομηνία και ώρα Unique=Μοναδικό -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Τηλέφωνο ExtrafieldPrice = Τιμή ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Επιλογή από λίστα ExtrafieldSelectList = Επιλογή από πίνακα -ExtrafieldSeparator=Διαχωριστικό +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Συνθηματικό -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Πλαίσιο ελέγχου από τον πίνακα +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Η λίστα παραμέτρων θα πρέπει να είναι σαν το κλειδί,value

για παράδειγμα :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Η λίστα παραμέτρων θα πρέπει να είναι σαν το κλειδί,value

για παράδειγμα :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Χρήστες & Ομάδες Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Τιμολόγιο και πιστωτικό τιμολόγιο δ Module40Name=Προμηθευτές Module40Desc=Διαχείριση προμηθευτών και παραστατικά αγοράς (παραγγελίες και τιμολόγια) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Επεξεργαστές κειμένου Module49Desc=Διαχείριση επεξεργαστών κειμένου Module50Name=Προϊόντα @@ -499,8 +521,8 @@ Module410Name=Ημερολόγιο ιστού Module410Desc=Διεπαφή ημερολογίου ιστού Module500Name=Ειδικά έξοδα Module500Desc=Διαχείριση ειδικών εξόδων (φόροι, δόσεις) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Δάνειο Module520Desc=Διαχείριση δανείων Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Διαχείριση ανθρώπινου δυναμικού +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Σας επιτρέπει να διαχειριστήτε πολλές εταιρείες Module6000Name=Ροή εργασίας @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Εξαγωγή έργων @@ -844,12 +868,14 @@ DictionaryOrderMethods=Μέθοδος Παραγγελίας DictionarySource=Προέλευση των προτάσεων/παραγγελιών DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Μοντέλα λογιστικού σχεδίου +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Πρότυπα email DictionaryUnits=Μονάδες DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Οι ρυθμίσεις αποθηκεύτηκαν +SetupNotSaved=Setup not saved BackToModuleList=Πίσω στη λίστα με τα modules BackToDictionaryList=Επιστροφή στη λίστα λεξικών VATManagement=Διαχείριση Φ.Π.Α. @@ -921,7 +947,7 @@ Host=Διακομιστής DriverType=Driver type SummarySystem=Σύνοψη πληροφοριών συστήματος SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Εταιρία/Οργανισμός +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Θέμα @@ -931,12 +957,14 @@ DefaultMaxSizeList=Προεπιλεγμένο μέγιστο μέγεθος γι DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Μήνυμα της ημέρας MessageLogin=Μήνυμα σελίδας εισόδου +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Προκαθορισμένη Γλώσσα (κωδ. γλώσσας) EnableMultilangInterface=Ενεργοποίησ πολυγλωσσικού περιβάλλοντος EnableShowLogo=Εμφάνιση λογότυπου στο αριστερό μενού -CompanyInfo=Πληροφορίες Εταιρίας/Οργανισμού -CompanyIds=Ταυτότητες Εταιρίας/Οργανισμού +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Όνομα CompanyAddress=Διεύθυνση CompanyZip=Τ.Κ. @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Ιστορικό εισόδου χρηστών @@ -987,7 +1015,7 @@ BrowserOS=Λειτουργικό σύστημα φυλλομετρητή ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Συμβάντα ασφαλείας εξαγνίζονται LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=Μπορείτε να χρησιμοποιήσετε το πρόγραμμα οδήγησης %s που είναι καλύτερος οδηγός που διατίθεται σήμερα. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Επαγγελματική ταυτότητα μοναδι MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Τιμολόγια και πιστωτικά τιμολόγια μοντέλο αρίθμησης BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Πιστωτικό τιμολόγιο CreditNotes=Πιστωτικά τιμολόγια ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Αρχεία τύπου %s δεν αποθηκεύοντα FilesOfTypeCompressed=Τα αρχεία τύπου %s συμπιέζονται από το διακομιστή HTTP FilesOfTypeNotCompressed=Αρχεία τύπου %s δεν συμπιέζονται από το διακομιστή HTTP CacheByServer=Cache από τον server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache από τον browser CompressionOfResources=Συμπίεση HTTP απαντήσεων +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Μια τέτοια αυτόματη ανίχνευση δεν είναι δυνατόν με τα τρέχουσα προγράμματα περιήγησης +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Υπηρεσίες εγκατάστασης μονάδας @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Αγορά Sell=Πώληση InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Κωδικός Λογιστική AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Ορίστε αυτό το καθεστώς για AGENDA_DEFAULT_VIEW=Ποια καρτέλα θέλετε να ανοίξετε από προεπιλογή κατά την επιλογή του μενού Ατζέντα AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Γενική σειρά εμφάνισης BankOrderES=Ισπανικά BankOrderESDesc=Ισπανικά σειρά εμφάνισης ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Χρώμα τίτλου σελίδας LinkColor=Χρώμα σε συνδέσμους -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Χρώμα φόντου TopMenuBackgroundColor=Χρώμα φόντου για το επάνω μενού @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Θέση γραμμής σε σύνθετο πλαίσιο SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/el_GR/compta.lang b/htdocs/langs/el_GR/compta.lang index c0cb883b521..f236f0314b3 100644 --- a/htdocs/langs/el_GR/compta.lang +++ b/htdocs/langs/el_GR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Τα ποσά που εμφανίζοντ Param=Παραμετροποίηση RemainingAmountPayment=Ποσό πληρωμής που απομένουν: Account=Λογαριασμός -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Έσοδα Outcome=Έξοδα ReportInOut=Έσοδα / Έξοδα @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Κοινωνικές/φορολογικές εισφορές MenuNewSocialContribution=Νέα Κοιν/Φορ εισφορά NewSocialContribution=Νέα Κοινωνική/Φορολογική εισφορά +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Κοινωνικές/Φορολογικές εισφορές προς πληρωμή AccountancyTreasuryArea=Περιοχή Οικονομικών/Περιουσιακών Στοιχείων NewPayment=Νέα Πληρωμή @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Τα τιμολόγια ασφαλείας ούτε περιλαμβάνονται -DepositsAreIncluded=- Περιλαμβάνονται τιμολόγια ασφαλείας +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Έκθεση του τρίτου IRPF LT1ReportByCustomersInInputOutputModeES=Αναφορά Πελ./Προμ. RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Ημερολόγιο πωλήσεων DescPurchasesJournal=Ημερολόγιο Αγορών InvoiceRef=Αρ. Τιμολογίου CodeNotDef=Δεν προσδιορίζεται -WarningDepositsNotIncluded=Καταθέσεις τιμολόγια δεν περιλαμβάνονται σε αυτή την έκδοση με αυτή την ενότητα λογιστικής. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,11 +190,13 @@ AccountancyJournal=Λογιστικος Κωδικός περιοδικό ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment -CloneTaxForNextMonth=Κλώνοποίηση στον επόμενο μήνα +CloneTaxForNextMonth=Clone it for next month SimpleReport=Απλή αναφορά AddExtraReport=Extra reports (add foreign and national customer report) OtherCountriesCustomersReport=Αναφορά για πελάτες εξωτερικού @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Κοινωνικές/φορολογικές εισφο ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/el_GR/cron.lang b/htdocs/langs/el_GR/cron.lang index 5cb45d0d0ff..f5c8251118c 100644 --- a/htdocs/langs/el_GR/cron.lang +++ b/htdocs/langs/el_GR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Διαγραφή προγραμματισμένων εργασιών CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Εργασία CronNone=Καμία CronDtStart=Όχι πριν @@ -57,12 +57,12 @@ CronStatusActiveBtn=Ενεργοποίηση CronStatusInactiveBtn=Απενεργοποίηση CronTaskInactive=Αυτή η εργασία είναι απενεργοποιημένη CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Γραμμή εντολών του συστήματος προς εκτέλεση. CronCreateJob=Create new Scheduled Job CronFrom=Από @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Αντίγραφο ασφαλείας τοπικής βάσης δεδομένων MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index 0937639e4b8..769da44986d 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Απέτυχε η δημιουργία του αρχείο ErrorFailToRenameDir=Απέτυχε να μετονομάσετε «%s» κατάλογο σε «%s». ErrorFailToCreateDir=Αποτυχία δημιουργίας καταλόγου %s. ErrorFailToDeleteDir=Αποτυχία για να διαγράψετε τον κατάλογο «%s». +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Η επαφή αυτή έχει ήδη οριστεί ως επαφή για αυτόν τον τύπο. ErrorCashAccountAcceptsOnlyCashMoney=Αυτό τραπεζικός λογαριασμός είναι ένας λογαριασμός σε μετρητά, έτσι ώστε να δέχεται πληρωμές σε μετρητά τύπου μόνο. ErrorFromToAccountsMustDiffers=Πηγή και τους στόχους των τραπεζικών λογαριασμών πρέπει να είναι διαφορετικό. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Αποτυχία εγγραφής στον %s φάκελ ErrorFoundBadEmailInFile=Βρέθηκε εσφαλμένη σύνταξη e-mail για %s γραμμές στο αρχείο (%s γραμμή παράδειγμα με e-mail = %s) ErrorUserCannotBeDelete=Ο χρήστης δεν μπορεί να διαγραφεί. Μπορεί να σχετίζεται με οντότητες του Dolibarr. ErrorFieldsRequired=Ορισμένα από τα απαιτούμενα πεδία δεν έχουν συμπληρωθεί. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Αποτυχία δημιουργίας φακέλου. Βεβαιωθείτε ότι ο Web server χρήστης έχει δικαιώματα να γράψει στο φάκελο εγγράφων του Dolibarr. Αν η safe_mode παράμετρος είναι ενεργοποιημένη για την PHP, ελέγξτε ότι τα αρχεία php του Dolibarr ανήκουν στον web server χρήστη (ή ομάδα). ErrorNoMailDefinedForThisUser=Δεν έχει οριστεί mail για αυτόν το χρήστη ErrorFeatureNeedJavascript=Αυτό το χαρακτηριστικό χρειάζεται ενεργοποιημένη την javascript. Αλλάξτε την ρύθμιση στο Ρυθμίσεις - Εμφάνιση. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Η ποσότητα στην γραμμ ErrorWebServerUserHasNotPermission=Λογαριασμό χρήστη %s χρησιμοποιείται για την εκτέλεση του web server δεν έχει άδεια για τη συγκεκριμένη ErrorNoActivatedBarcode=Δεν ενεργοποιείται τύπου barcode ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Το πεδίο %s πρέπει να περιέχει αριθμητική τιμή ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Η ημερομηνία πληρωμής WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 3ef9a412d08..1d08888e0e4 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Η παράμετρος %s δεν είναι καθορ ErrorUnknown=Άγνωστο σφάλμα ErrorSQL=Σφάλμα SQL ErrorLogoFileNotFound=Το λογότυπο '%s' δεν βρέθηκε -ErrorGoToGlobalSetup=Πηγαίνετε στο 'Εταιρία/Οργανισμός' Ρυθμίσεις για να το διορθώσετε +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Πηγαίνετε στις ρυθμίσεις του αρθρώματος για να το διορθώσετε. ErrorFailedToSendMail=Αποτυχία αποστολής mail (αποστολέας=%s, παραλήπτης=%s) ErrorFileNotUploaded=Το αρχείο δεν φορτώθηκε. Βεβαιωθείτε ότι το μέγεθος δεν υπερβαίνει το μέγιστο επιτρεπόμενο όριο, ότι υπάρχει διαθέσιμος χώρος στο δίσκο και ότι δεν υπάρχει ήδη ένα αρχείο με το ίδιο όνομα σε αυτόν τον κατάλογο. @@ -153,6 +153,7 @@ Edit=Επεξεργασία Validate=Επικύρωση ValidateAndApprove=Επικύρωση και Έγκριση ToValidate=Προς Επικύρωση +NotValidated=Not validated Save=Αποθήκευση SaveAs=Αποθήκευση Ως TestConnection=Δοκιμή Σύνδεσης @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Δεν εφαρμόζεται το χαρακτηρ Connection=Σύνδεση Setup=Ρυθμίσεις Alert=Συναγερμός +MenuWarnings=Συναγερμοί Previous=Προηγούμ. Next=Επόμ. Cards=Καρτέλες @@ -289,7 +291,7 @@ Afternoon=Απόγευμα Quadri=Τετραπλής MonthOfDay=Μήνας από την ημέρα HourShort=Ω -MinuteShort=εκ +MinuteShort=mn Rate=Βαθμός CurrencyRate=Currency conversion rate UseLocalTax=με Φ.Π.Α @@ -308,6 +310,7 @@ Copy=Αντιγραφή Paste=Επικόλληση Default=Προκαθορ. DefaultValue=Προκαθορισμένη Τιμή +DefaultValues=Default values Price=Τιμή UnitPrice=Τιμή Μονάδος UnitPriceHT=Τιμή Μονάδος (χ. Φ.Π.Α) @@ -363,7 +366,8 @@ VATRate=Συντελεστής Φ.Π.Α. Average=Μ.Ο. Sum=Σύνολο Delta=Δέλτα -Module=Άρθρωμα +Module=Module/Application +Modules=Modules/Applications Option=Επιλογή List=Λίστα FullList=Πλήρης Λίστα @@ -387,7 +391,7 @@ ActionRunningNotStarted=Δεν έχουν ξεκινήσει ActionRunningShort=Σε εξέλιξη ActionDoneShort=Ολοκληρωμένες ActionUncomplete=Μη ολοκληρωμένη -CompanyFoundation=Εταιρία/Οργανισμός +CompanyFoundation=Company/Organisation ContactsForCompany=Επαφές για αυτό το στοιχείο ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό το στοιχείο. AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ. @@ -405,8 +409,9 @@ Generate=Δημιουργία Duration=Διάρκεια TotalDuration=Συνολική Διάρκεια Summary=Σύνοψη -DolibarrStateBoard=Στατιστικά -DolibarrWorkBoard=Πίνακας εργασιών +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Σε διάθεση NotYetAvailable=Δεν είναι ακόμη σε διάθεση NotAvailable=Χωρίς διάθεση @@ -434,7 +439,7 @@ Reportings=Αναφορές Draft=Προσχέδιο Drafts=Προσχέδια Validated=Επικυρωμένο -Opened=Ανοίξτε +Opened=Άνοιγμα New=Νέο Discount=Έκπτωση Unknown=Άγνωστο @@ -453,6 +458,7 @@ NextStep=Επόμενο Βήμα Datas=Δεδομένα None=None NoneF=None +NoneOrSeveral=None or several Late=Καθυστερ. LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Φωτογραφία @@ -606,7 +612,8 @@ PartialWoman=Μερική TotalWoman=Συνολικές NeverReceived=Δεν παραλήφθηκε Canceled=Ακυρώθηκε -YouCanChangeValuesForThisListFromDictionarySetup=Μπορείτε να αλλάξετε τις τιμές για αυτή τη λίστα από το μενού Ρυθμίσεις - Διαχείριση Λεξικού +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Μπορείτε να ορίσετε την προεπιλεγμένη τιμή που θα χρησιμοποιείται κατά τη δημιουργία μίας νέας εγγραφής στις ρυθμίσεις του module Color=Χρώμα Documents=Συνδεδεμένα Αρχεία @@ -642,6 +649,7 @@ FreeLineOfType=Δωρεάν είσοδος του τύπου CloneMainAttributes=Κλωνοποίηση αντικειμένου με τα βασικά του χαρακτηριστικά PDFMerge=Ενσωμάτωση PDF Merge=Ενσωμάτωση +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Εμγάνιση σελίδας για εκτύπωση MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=από toward=προς Access=Πρόσβαση SelectAction=Επιλογή ενέργειας +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Χρησιμοποιήστε το Ctrl + C για να αντιγράψετε στο πρόχειρο SaveUploadedFileWithMask=Αποθηκεύστε το αρχείο στον server με το όνομα "%s" (αλλιώς "%s") OriginFileName=Αρχική Ονομασία @@ -718,7 +727,7 @@ ViewPrivateNote=Προβολή σημειώσεων XMoreLines=%s γραμμή (ές) κρυμμένη PublicUrl=Δημόσια URL AddBox=Προσθήκη πεδίου -SelectElementAndClickRefresh=Επιλέξτε ένα στοιχείο και κάντε κλικ στο κουμπί Ανανέωση +SelectElementAndClick=Select an element and click %s PrintFile=Εκτύπωση του αρχείου %s ShowTransaction=Εμφάνιση καταχώρισης σε τραπεζικό λογαριασμό GoIntoSetupToChangeLogo=Πηγαίνετε Αρχική - Ρυθμίσεις - Εταιρία να αλλάξει το λογότυπο ή πηγαίνετε Αρχική - Ρυθμίσεις - Προβολή για απόκρυψη. @@ -734,8 +743,8 @@ Hello=Χαίρετε Sincerely=Ειλικρινώς DeleteLine=Διαγραφή γραμμής ConfirmDeleteLine=Είστε σίγουρος ότι θέλετε να διαγράψετε αυτή τη γραμμή; -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Έχουν επιλεγεί πάρα πολλές εγγραφές για μαζική τροποποίηση. Η ενέργεια έχει περιοριστεί σε μία λίστα %s εγγραφών. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Ημερολόγιο GroupBy=Ομαδοποίηση κατά... ViewFlatList=Προβολή λίστας RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Οικονομικό έτος +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Δευτέρα Tuesday=Τρίτη @@ -817,5 +835,3 @@ SearchIntoContracts=Συμβόλαια SearchIntoCustomerShipments=Αποστολές Πελάτη SearchIntoExpenseReports=Αναφορές εξόδων SearchIntoLeaves=Άδειες - -BulkActions=Bulk actions diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index 083a67112da..36fdab4f121 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Ημερομηνία γενεθλίων DateToBirth=Ημερομηνία γεννήσεως BirthdayAlertOn=Ειδοποίηση γενεθλίων ενεργή BirthdayAlertOff=Ειδοποίηση γενεθλίων ανενεργή +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Προσθήκη επαφής στην παρέμβαση Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Παρέμβαση αποστέλλεται μέσω ταχυδρομείου @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Αυτό είναι ένα μήνυμα δοκιμής PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε το τιμολόγιο __REF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε την προσφορά __PROPREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε το αίτημα των τιμών __ASKREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε τη παραγγελία __ORDERREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε την παραγγελία μας __ORDERREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε το τιμολόγιο __REF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε την αποστολή __SHIPPINGREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nΕδώ θα βρείτε την παρέμβαση __FICHINTERREF__\n\n__PERSONALIZED__Με εκτίμηση\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Καθ %s ταυτότητα
είναι μια ενημερωτική ανάλογα με τρίτη χώρα μέρος.
Για παράδειγμα, για %s χώρα, είναι %s κώδικα. DolibarrDemo=Dolibarr ERP / CRM demo -StatsByNumberOfUnits=Στατιστικά στοιχεία τον αριθμό των προϊόντων / υπηρεσιών μονάδες -StatsByNumberOfEntities=Στατιστικά στοιχεία τον αριθμό των φορέων που αναφέρονται -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=Μια νέα παρέμβαση %s έχει ανατεθεί σε εσάς EMailTextInterventionValidated=Η %s παρέμβαση έχει επικυρωθεί. EMailTextInvoiceValidated=Το τιμολόγιο %s έχει επικυρωθεί. diff --git a/htdocs/langs/el_GR/projects.lang b/htdocs/langs/el_GR/projects.lang index 183242493a1..3b2e9f1c3db 100644 --- a/htdocs/langs/el_GR/projects.lang +++ b/htdocs/langs/el_GR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Περιοχή έργων ProjectStatus=Κατάσταση έργου SharedProject=Όλοι PrivateProject=Αντιπρόσωποι του έργου +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Όλα τα έργα MyProjectsDesc=Η άποψη αυτή περιορίζονται σε έργα που είναι σε μια επαφή για την (όποια είναι ο τύπος). ProjectsPublicDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα σας επιτρέπεται να διαβάσετε. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,6 +26,7 @@ TasksDesc=Η άποψη αυτή παρουσιάζει όλα τα έργα κ AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Νέο Έργο AddProject=Δημιουργία έργου DeleteAProject=Διαγραφή Έργου @@ -30,13 +34,14 @@ DeleteATask=Διαγραφή Εργασίας ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? OpenedProjects=Ανοιχτά έργα -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Εμφάνιση έργου SetProject=Set project NoProject=No project defined or owned NbOfProjects=Αριθμός έργων +NbOfTasks=Nb of tasks TimeSpent=Χρόνος που δαπανήθηκε TimeSpentByYou=Χρόνος που δαπανάται από εσάς TimeSpentByUser=Χρόνος που δαπανάται από τον χρήστη @@ -47,9 +52,9 @@ TaskTimeSpent=Ο χρόνος που δαπανάται σε εργασίες TaskTimeUser=Χρήστης TaskTimeNote=Σημείωση TaskTimeDate=Ημερομηνία -TasksOnOpenedProject=Εργασίες σχετικές με τα ανοικτά έργα +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Ο φόρτος εργασίας δεν ορίζεται -NewTimeSpent=Νέος χρόνος που δαπανάται +NewTimeSpent=Ο χρόνος που δαπανάται MyTimeSpent=Ο χρόνος μου πέρασε Tasks=Εργασίες Task=Εργασία @@ -59,6 +64,7 @@ TaskDescription=Περιγραφή των εργασιών NewTask=Νέα Εργασία AddTask=Δημιουργία εργασίας AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Δραστηριότητα Activities=Εργασίες/Δραστηριότητες MyActivities=Οι εργασίες/δραστηρ. μου @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Κατάλογος των συμβάσεων που συνδέονται με το έργο +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Κατάλογος των παρεμβάσεων που σχετίζονται με το έργο ListExpenseReportsAssociatedProject=Λίστα αναφορών των δαπανών που σχετίζονται με το έργο ListDonationsAssociatedProject=Λίστα των δωρεών που σχετίζονται με το έργο @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Επαφές Project ActionsOnProject=Δράσεις για το έργο YouAreNotContactOfProject=Δεν έχετε μια επαφή του ιδιωτικού έργου, +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Διαγράψτε το χρόνο που δαπανάται ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Δείτε επίσης τα καθήκοντα που δεν ανατέθηκαν σε μένα @@ -110,7 +118,7 @@ TaskRessourceLinks=Πόροι ProjectsDedicatedToThisThirdParty=Έργα που αφορούν αυτό το στοιχείο NoTasks=Δεν υπάρχουν εργασίες για αυτό το έργο LinkedToAnotherCompany=Συνδέεται με άλλο τρίτο μέρος -TaskIsNotAffectedToYou=Εργασία που δεν έχει ανατεθεί σε εσάς +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Χρόνος που δαπανάται είναι άδειο ThisWillAlsoRemoveTasks=Αυτή η ενέργεια θα διαγράψει επίσης όλα τα καθήκοντα του έργου (%s καθηκόντων προς το παρόν) και όλες οι είσοδοι του χρόνου. IfNeedToUseOhterObjectKeepEmpty=Εάν ορισμένα αντικείμενα (τιμολόγιο, προκειμένου, ...), που ανήκουν σε άλλο τρίτο μέρος, πρέπει να συνδέεται με το έργο να δημιουργήσει, διατηρήσει αυτό το κενό να έχει το έργο να είναι πολλαπλών τρίτους. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Εισαγωγή ανά ημέρα InputPerWeek=Εισαγωγή ανά εβδομάδα InputPerAction=Εισαγωγή ανά ενέργεια -TimeAlreadyRecorded=Ο χρόνος που δαπανάται έχει ήδη καταγραφεί για το έργο/ημέρα και ο χρήστης %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Ανάθεση εργασίας σε εμένα +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Ανάθεση ProjectOverview=Επισκόπηση ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Μόνο ευκαιρίες -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Ανοιχτές ευαιρίες NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/en_AU/accountancy.lang b/htdocs/langs/en_AU/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/en_AU/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/en_AU/admin.lang b/htdocs/langs/en_AU/admin.lang index 291d3352a4a..c353d325e3f 100644 --- a/htdocs/langs/en_AU/admin.lang +++ b/htdocs/langs/en_AU/admin.lang @@ -1,1665 +1,17 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Other resources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes HideAnyVATInformationOnPDF=Hide all information related to GST on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons OldVATRates=Old GST rate NewVATRates=New GST rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=GST Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list VATManagement=GST Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. VATIsNotUsedDesc=By default the proposed GST rate is 0 which can be used for cases like associations, individuals and small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax LocalTax1IsUsedDesc=Use a second type of tax (other than GST) LocalTax1IsNotUsedDesc=Do not use other type of tax (other than GST) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax LocalTax2IsUsedDesc=Use a third type of tax (other than GST) LocalTax2IsNotUsedDesc=Do not use other type of tax (other than GST) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup OptionVatMode=GST due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use GST (Home - Setup - Company/Foundation), so there is no GST options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Colour of page title LinkColor=Colour of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/en_AU/bills.lang b/htdocs/langs/en_AU/bills.lang index f7d30ca05d8..6174b75c61b 100644 --- a/htdocs/langs/en_AU/bills.lang +++ b/htdocs/langs/en_AU/bills.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - bills ConfirmDeletePayment=Are you sure you want to delete this payment ? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. PaymentTypeCHQ=Cheque PaymentTypeShortCHQ=Cheque BankCode=BSB @@ -20,4 +19,3 @@ ChequesArea=Cheque deposits area ChequeDeposits=Cheque deposits Cheques=Cheques NbCheque=Number of cheques -CreditNoteConvertedIntoDiscount=This %s has been converted into %s diff --git a/htdocs/langs/en_AU/cashdesk.lang b/htdocs/langs/en_AU/cashdesk.lang index 2886b0b7da4..adbd9cf9e57 100644 --- a/htdocs/langs/en_AU/cashdesk.lang +++ b/htdocs/langs/en_AU/cashdesk.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - cashdesk NoVAT=No GST for this sale -BankToPay=Account for payment diff --git a/htdocs/langs/en_AU/main.lang b/htdocs/langs/en_AU/main.lang index 78337a91909..5edc39f2f32 100644 --- a/htdocs/langs/en_AU/main.lang +++ b/htdocs/langs/en_AU/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,25 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. ErrorNoVATRateDefinedForSellerCountry=Error, no GST rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon Quadri=Quarter -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) PriceUTTC=U.P. (incl GST) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) AmountTTCShort=Amount (inc. GST) AmountHT=Amount (excl GST) AmountTTC=Amount (incl. GST) AmountVAT=Amount GST -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency MulticurrencyAmountHT=Amount (excl GST), original currency MulticurrencyAmountTTC=Amount (incl GST), original currency MulticurrencyAmountVAT=Amount GST, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount PriceQtyMinHT=Price quantity min. (excl GST) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) TotalTTCShort=Total (incl GST) TotalHT=Total (excl GST) TotalHTforthispage=Total (excl GST) for this page -Totalforthispage=Total for this page TotalTTC=Total (incl GST) TotalTTCToYourCredit=Total (incl GST) to your credit TotalVAT=Total GST -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF HT=excl GST TTC=Incl GST VAT=GST -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF VATRate=GST Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s Check=Cheque -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/en_AU/trips.lang b/htdocs/langs/en_AU/trips.lang deleted file mode 100644 index 288b8de2315..00000000000 --- a/htdocs/langs/en_AU/trips.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - trips -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s diff --git a/htdocs/langs/en_CA/accountancy.lang b/htdocs/langs/en_CA/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/en_CA/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/en_CA/admin.lang b/htdocs/langs/en_CA/admin.lang index be8f228c26a..9bf5497f19b 100644 --- a/htdocs/langs/en_CA/admin.lang +++ b/htdocs/langs/en_CA/admin.lang @@ -1,1665 +1,9 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list VATManagement=GST Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax LocalTax1IsUsedDesc=Use a second tax (PST) LocalTax1IsNotUsedDesc=Do not use second tax (PST) LocalTax1Management=PST Management -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) LocalTax2IsNotUsedDesc=Do not use second tax (PST) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/en_CA/cashdesk.lang b/htdocs/langs/en_CA/cashdesk.lang deleted file mode 100644 index c3ca13bf385..00000000000 --- a/htdocs/langs/en_CA/cashdesk.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - cashdesk -BankToPay=Account for payment diff --git a/htdocs/langs/en_CA/main.lang b/htdocs/langs/en_CA/main.lang index 9966f094632..6d4ce6e30f2 100644 --- a/htdocs/langs/en_CA/main.lang +++ b/htdocs/langs/en_CA/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,10 @@ FormatDateHourShort=%d.%m.%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. ErrorNoVATRateDefinedForSellerCountry=Error, no vat rate defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) AmountVAT=Amount GST -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency AmountLT1=Amount PST -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit TotalVAT=Total GST TotalLT1=Total PST -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax VAT=GST -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF VATRate=GST rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/en_CA/trips.lang b/htdocs/langs/en_CA/trips.lang deleted file mode 100644 index 288b8de2315..00000000000 --- a/htdocs/langs/en_CA/trips.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - trips -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/en_GB/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index fbb430dd371..7a5a4f3a4d8 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -1,1665 +1,39 @@ # Dolibarr language file - Source file is en_US - admin Foundation=Company -Version=Version VersionProgram=Program Version VersionLastInstall=Version Initially Installed -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions SessionSavePath=Storage session localisation PurgeSessions=Purge sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). NoSessionListWithThisHandler=The Saved session handler configured in your PHP does not allow listing of all running sessions. -LockNewSessions=Lock new connections ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connections to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session Sessions=User session -WebUserGroup=Web server user/group NoSessionFound=Your PHP does not allow listing active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. RestoreLock=Restore file %s, with read permission only, to disable any usage of the update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. ErrorModuleRequirePHPVersion=Error: This module requires PHP version %s or higher ErrorModuleRequireDolibarrVersion=Error: This module requires Dolibarr version %s or higher ErrorDecimalLargerThanAreForbidden=Error: A precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries ErrorReservedTypeSystemSystemAuto=Entry 'system' and 'systemauto' for this type is reserved. You can use 'user' as a value to add your own record ErrorCodeCantContainZero=Code can't contain value 0 (zero) DisableJavascript=Disable JavaScript and Ajax functions (Recommended for a blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) NumberOfKeyToSearch=Number of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: Your PHP limits each file upload's size to %s %s, whatever you enter here -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to prevent any uploads) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" CurrentValueSeparatorThousand=Thousands separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets PositionByDefault=Default position -Position=Position MenusDesc=Menu managers set the content of the two menu bars (horizontal and vertical). MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and make permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them by disabling and re-enabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. PurgeDeleteLogFile=Delete log file %s defined for the Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. All temporary files including database backup dumps, any files attached to elements (third parties, invoices, ...) and files uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted but no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. ImportMySqlDesc=To import a backup file, you must use the mysql command from the command line: ImportPostgreSqlDesc=To import a backup file, you must use the pg_restore command from the command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=File name to be generated\n -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import CommandsToDisableForeignKeysForImportWarning=This is mandatory if you want to restore your sql dumps later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs Permission300=Read barcodes Permission301=Create/modify barcodes Permission302=Delete barcodes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents ToGenerateCodeDefineAutomaticRuleFirst=To be able to automatically generate codes, you must first set a rule to define the barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/en_GB/bills.lang b/htdocs/langs/en_GB/bills.lang index 8ab8c428de3..60b6f51bc40 100644 --- a/htdocs/langs/en_GB/bills.lang +++ b/htdocs/langs/en_GB/bills.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - bills InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

Note: Only an invoice with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. ConfirmDeletePayment=Are you sure you want to delete this payment ? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. ErrorVATIntraNotConfigured=Intracommunitary VAT number not yet defined EscompteOffered=Dscnt.offered (pay.befor.term) PaymentTypeCHQ=Cheque @@ -22,4 +21,3 @@ ChequesArea=Cheque deposits area ChequeDeposits=Cheque deposits Cheques=Cheques NbCheque=Number of cheques -CreditNoteConvertedIntoDiscount=This %s has been converted into %s diff --git a/htdocs/langs/en_GB/cashdesk.lang b/htdocs/langs/en_GB/cashdesk.lang deleted file mode 100644 index c3ca13bf385..00000000000 --- a/htdocs/langs/en_GB/cashdesk.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - cashdesk -BankToPay=Account for payment diff --git a/htdocs/langs/en_GB/main.lang b/htdocs/langs/en_GB/main.lang index a5eed9164fa..f152c0ce69d 100644 --- a/htdocs/langs/en_GB/main.lang +++ b/htdocs/langs/en_GB/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,33 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and modify the form. ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child record. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. Changes have been rolled back. ErrorConfigParameterNotDefined=Parameter %s is not defined in Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. ErrorNoVATRateDefinedForSellerCountry=Error, no VAT rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page NotAuthorized=You are not authorised to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply BackgroundColorByDefault=Default background colour -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated FileWasNotUploaded=A file is selected for attachment but has not yet been uploaded. Click on "Attach file" for this. NbOfEntries=Number of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimal places. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove Resiliate=Deactivate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save SaveAs=Save as -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve Disapprove=Reject -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize Recenter=Recentre -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes b=b -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) AmountVAT=Amount VAT -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit TotalVAT=Total VAT -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax TTC=Inc. VAT VAT=VAT -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF VATRate=VAT Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status Favorite=Favourite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished ActionUncomplete=Incomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated GeneratedOn=Built on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others OtherInformations=Other information -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s Check=Cheque -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received Canceled=Cancelled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Colour -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root Informations=Information -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. AccordingToGeoIPDatabase=(according to GeoIP lookup) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element NoPhotoYet=No picture available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/en_GB/stocks.lang b/htdocs/langs/en_GB/stocks.lang index e6f3a394dde..fc1432b5c50 100644 --- a/htdocs/langs/en_GB/stocks.lang +++ b/htdocs/langs/en_GB/stocks.lang @@ -13,7 +13,6 @@ VirtualDiffersFromPhysical=According to stock movement options, physical stock ( RuleForStockReplenishment=Rule for stock replenishment SelectProductWithNotNullQty=Select at least one product with a quantity not null and a supplier ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products which may affect stocks, are visible here. -RecordMovement=Record transfer StockMustBeEnoughForInvoice=Stock levels must be sufficient to add product/service to invoice. (Check it is done on current real stock when adding a line into the invoice whatever the rule is for automatic stock change) StockMustBeEnoughForShipment=Stock levels must be sufficient to add product/service for shipment. (Check it is done on current real stock when adding a line into Shipment whatever the rule is for automatic stock change) IsInPackage=Packaged diff --git a/htdocs/langs/en_GB/trips.lang b/htdocs/langs/en_GB/trips.lang index 538728ca85c..4b790783bd6 100644 --- a/htdocs/langs/en_GB/trips.lang +++ b/htdocs/langs/en_GB/trips.lang @@ -2,7 +2,6 @@ TripsAndExpensesStatistics=Expense report statistics CompanyVisited=Company visited FeesKilometersOrAmout=Amount or Miles -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s TripNDF=Information expense report TF_METRO=Tube ErrorDoubleDeclaration=You have submitted another expense report in a similar date range. diff --git a/htdocs/langs/en_IN/accountancy.lang b/htdocs/langs/en_IN/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/en_IN/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/en_IN/cashdesk.lang b/htdocs/langs/en_IN/cashdesk.lang deleted file mode 100644 index c3ca13bf385..00000000000 --- a/htdocs/langs/en_IN/cashdesk.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - cashdesk -BankToPay=Account for payment diff --git a/htdocs/langs/en_IN/main.lang b/htdocs/langs/en_IN/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/en_IN/main.lang +++ b/htdocs/langs/en_IN/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/en_IN/trips.lang b/htdocs/langs/en_IN/trips.lang deleted file mode 100644 index 288b8de2315..00000000000 --- a/htdocs/langs/en_IN/trips.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - trips -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s diff --git a/htdocs/langs/es_AR/accountancy.lang b/htdocs/langs/es_AR/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_AR/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_AR/admin.lang b/htdocs/langs/es_AR/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/es_AR/admin.lang +++ b/htdocs/langs/es_AR/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_AR/main.lang b/htdocs/langs/es_AR/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/es_AR/main.lang +++ b/htdocs/langs/es_AR/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_BO/accountancy.lang b/htdocs/langs/es_BO/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_BO/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_BO/admin.lang b/htdocs/langs/es_BO/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/es_BO/admin.lang +++ b/htdocs/langs/es_BO/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_BO/main.lang b/htdocs/langs/es_BO/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/es_BO/main.lang +++ b/htdocs/langs/es_BO/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_CL/accountancy.lang b/htdocs/langs/es_CL/accountancy.lang index 7861a5bb087..7b3d42d1461 100644 --- a/htdocs/langs/es_CL/accountancy.lang +++ b/htdocs/langs/es_CL/accountancy.lang @@ -12,16 +12,12 @@ ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario misceláneo Code_tiers=Socio de Negocio Labelcompte=Cuenta Sens=Significado -AccountingCategory=Accounting category ThirdPartyAccount=Cuenta de socio de negocio ErrorDebitCredit=Débito y crédito no pueden tener el mismo valor ListAccounts=Lista de cuentas contables Pcgtype=Clase de cuenta -Pcgsubtype=Bajo clase de cuenta TotalMarge=Margen total de ventas ErrorAccountancyCodeIsAlreadyUse=No puede eliminar esta cuenta porque está siendo usada OptionsDeactivatedForThisExportModel=Opciones desactivadas para este modelo de exportación Selectmodelcsv=Seleccione un modelo Modelcsv_normal=Exportación clasica -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 5b5604b72e2..2a0da2ec1a3 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -1,584 +1,10 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Contabilidad -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. Module20Name=Cotizaciones Module20Desc=Gestión de cotizaciones/propuestas comerciales -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration Module1400Name=Contabilidad -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices Permission21=Consultar cotizaciones Permission22=Crear/modificar cotizaciones Permission24=Validar cotizaciones @@ -586,1080 +12,11 @@ Permission25=Enviar las cotizaciones Permission26=Cerrar cotizaciones Permission27=Eliminar cotizaciones Permission28=Exportar las cotizaciones -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones a cerrar Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retraso antes de la alerta (en días) sobre cotizaciones no facturadas -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### PropalSetup=Configuración del módulo Cotizaciones ProposalsNumberingModules=Módulos de numeración de cotizaciones ProposalsPDFModules=Modelos de documentos de cotizaciones FreeLegalTextOnProposal=Texto libre en cotizaciones WatermarkOnDraftProposal=Marca de agua en cotizaciones borrador (en caso de estar vacío) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Parámetros globales -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note FCKeditorForProductDetails=Creación/edición WYSIWIG de las líneas de detalle de los productos (en pedidos, cotizaciones, facturas, etc.) -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang index f676766d6c2..7712ceff6ee 100644 --- a/htdocs/langs/es_CL/main.lang +++ b/htdocs/langs/es_CL/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,11 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Cerrado -Closed2=Cerrado -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft Update=Actualizar -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validar -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number NumberByMonth=Cantidad Mensual -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Fecha -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) Amount=Cantidad -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option List=Lista -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment CommercialProposalsShort=Cotizaciones -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Borrador Drafts=Borrador -Validated=Validado -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Línea -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects +Opened=Abierto ClassifyBilled=Clasificar pago -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Exportar -Exports=Exportaciones -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_CL/other.lang b/htdocs/langs/es_CL/other.lang index 059780fce81..33cbd10f9ec 100644 --- a/htdocs/langs/es_CL/other.lang +++ b/htdocs/langs/es_CL/other.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - other Tools=Herramientas +TMenuTools=Herramientas Notify_PROPAL_VALIDATE=Validación cotización cliente Notify_PROPAL_SENTBYMAIL=Envío cotización por e-mail PredefinedMailContentSendProposal=Buenos días, __CONTACTCIVNAME__ \n\n Nos ponemos en contacto con usted para facilitarle la cotización __PROPREF__\n\n Ante cualquier duda, consúltenos y será atendido a la mayor brevedad posible.\n\n __PERSONALIZED__Cordialmente\n\n__SIGNATURE__ diff --git a/htdocs/langs/es_CO/accountancy.lang b/htdocs/langs/es_CO/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_CO/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_CO/admin.lang b/htdocs/langs/es_CO/admin.lang index 033a4e190d7..a07b67603b4 100644 --- a/htdocs/langs/es_CO/admin.lang +++ b/htdocs/langs/es_CO/admin.lang @@ -1,1665 +1,12 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development VersionUnknown=Desconocido -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" AllMenus=Todo -NotConfigured=Module not configured -Active=Active SetupShort=Configuración -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order Position=Puesto -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Enlace -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Otro -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Fecha y hora -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Teléfono -ExtrafieldPrice = Precio -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Contraseña -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Terceros -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Proveedores -Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Log -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Miembros -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Recursos -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level DictionaryCanton=Departamento -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Empleados -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### LTRate=Tipo -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Empresa o institución -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities CompanyName=Nombre -CompanyAddress=Dirección -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=País -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Usuarios -LDAPGroupsSynchro=Grupos -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Miembros -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Nombre -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=Nombre -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=País -LDAPFieldDescription=Descripción -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Empresa -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang index 006f13c57a0..f5efdaf4e01 100644 --- a/htdocs/langs/es_CO/compta.lang +++ b/htdocs/langs/es_CO/compta.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - compta Param=Configuración +ToPay=To pay ByThirdParties=Por empresa CodeNotDef=No definida diff --git a/htdocs/langs/es_CO/main.lang b/htdocs/langs/es_CO/main.lang index ac5af7a160c..7fa5872f212 100644 --- a/htdocs/langs/es_CO/main.lang +++ b/htdocs/langs/es_CO/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,19 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Conexión a la base de datos -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=Sin traducción NoRecordFound=No se encontraron registros -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=Ningún error -Error=Error -Errors=Errors -ErrorFieldRequired=El campo '%s' es obligatorio -ErrorFieldFormat=El campo '%s' tiene un valor incorrecto -ErrorFileDoesNotExists=El archivo %s no existe -ErrorFailedToOpenFile=Imposible abrir el archivo %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parámetro %s no definido -ErrorUnknown=Error desconocido -ErrorSQL=Error de SQL -ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra -ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir -ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir -ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatario=%s) ErrorFileNotUploaded=El archivo no se transifirió. Compruebe que el tamaño no supere el máximo permitido, el espacio libre disponible en el disco y que no hay un archivo con el mismo nombre en el directorio destino. -ErrorInternalErrorDetected=Error detectado -ErrorWrongHostParameter=Parámetro Servidor inválido -ErrorYourCountryIsNotDefined=Su país no está definido. Corríjalo yendo a Inicio-Configuración-Empresa/Institución-Editar -ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo. -ErrorWrongValue=Valor incorrecto -ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s -ErrorNoRequestInError=Ninguna petición en error -ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde. -ErrorDuplicateField=Duplicado en un campo único ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones sin aplicar. -ErrorConfigParameterNotDefined=El parámetro %s no está definido en el archivo de configuración Dolibarr conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario %s en la base de datos Dolibarr. -ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, el registro del archivo falló. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Fijar fecha -SelectDate=Seleccione una fecha -SeeAlso=Ver también %s SeeHere=Ver aquí -Apply=Apply -BackgroundColorByDefault=Color de fondo -FileRenamed=The file was successfully renamed -FileUploaded=El archivo se ha subido correctamente -FileGenerated=The file was successfully generated FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo". -NbOfEntries=Nº de entradas -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Consultar la ayuda -RecordSaved=Registro guardado -RecordDeleted=Registro eliminado -LevelOfFeature=Nivel de funciones -NotDefined=No definida -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrador -Undefined=No definido -PasswordForgotten=Password forgotten? SeeAbove=Ver arriba -HomeArea=Área inicio -LastConnexion=Latest connection -PreviousConnexion=Conexión anterior -PreviousValue=Previous value -ConnectedOnMultiCompany=Conexión a la entidad -ConnectedSince=Conectado desde -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Tipo de gestor de base de datos -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr ha detectado un error técnico -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Más información -TechnicalInformation=Información técnica -TechnicalID=Technical ID -NotePublic=Nota (pública) -NotePrivate=Nota (privada) -PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a %s decimales. -DoTest=Probar -ToFilter=Filtrar -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Atención, tiene al menos un elemento que ha pasado la fecha de tolerancia. -yes=sí -Yes=Sí -no=no -No=No -All=Todo -Home=Inicio -Help=Ayuda -OnlineHelp=Ayuda en línea -PageWiki=Página Wiki -MediaBrowser=Media browser -Always=Siempre -Never=Nunca -Under=Bajo -Period=Periodo -PeriodEndDate=Fecha fin periodo -Activate=Activar -Activated=Activado -Closed=Cerrado -Closed2=Cerrado -NotClosed=Not closed -Enabled=Activado -Deprecated=Obsoleto -Disable=Desactivar -Disabled=Desactivado -Add=Añadir -AddLink=Enlazar -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Modificar -Close=Cerrar -CloseBox=Remove widget from your dashboard -Confirm=Confirmar -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Eliminar -Remove=Retirar -Resiliate=Terminate -Cancel=Anular -Modify=Modificar -Edit=Editar -Validate=Validar ValidateAndApprove=Validar y aprobar -ToValidate=A validar -Save=Grabar -SaveAs=Grabar como -TestConnection=Probar la conexión -ToClone=Copiar -ConfirmClone=Seleccione los datos que desea copiar: -NoCloneOptionsSpecified=No hay datos definidos para copiar -Of=de -Go=Ir -Run=Lanzar -CopyOf=Copia de -Show=Ver -Hide=Hide -ShowCardHere=Ver la ficha aquí -Search=Buscar -SearchOf=Búsqueda de -Valid=Validar -Approve=Aprobar -Disapprove=Desaprobar -ReOpen=Reabrir -Upload=Enviar archivo -ToLink=Enlace -Select=Seleccionar -Choose=Elegir -Resize=Redimensionar -Recenter=Encuadrar -Author=Autor -User=Usuario -Users=Usuarios -Group=Grupo -Groups=Grupos NoUserGroupDefined=No hay grupo de usuario definido -Password=Contraseña -PasswordRetype=Repetir contraseña -NoteSomeFeaturesAreDisabled=Atención, sólo unos pocos módulos/funcionalidades han sido activados en esta demo. -Name=Nombre -Person=Persona -Parameter=Parámetro -Parameters=Parámetros -Value=Valor -PersonalValue=Valor personalizado -NewValue=Nuevo valor -CurrentValue=Valor actual -Code=Código -Type=Tipo -Language=Idioma -MultiLanguage=Multiidioma -Note=Nota -Title=Título -Label=Etiqueta -RefOrLabel=Ref. o etiqueta -Info=Log -Family=Familia -Description=Descripción -Designation=Descripción -Model=Doc template -DefaultModel=Default doc template -Action=Acción -About=Acerca de -Number=Número -NumberByMonth=Número por mes -AmountByMonth=Importe por mes -Numero=Número -Limit=Límite -Limits=Límites -Logout=Desconexión -NoLogoutProcessWithAuthMode=Sin funcionalidades de desconexión con el modo de autenticación %s -Connection=Conexión -Setup=Configuración -Alert=Alerta -Previous=Anterior -Next=Siguiente -Cards=Fichas -Card=Ficha -Now=Ahora -HourStart=Start hour -Date=Fecha -DateAndHour=Fecha y hora -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Fecha de creación -DateCreationShort=Creat. date -DateModification=Fecha de modificación DateModificationShort=Fecha modificación -DateLastModification=Latest modification date -DateValidation=Fecha de validación -DateClosing=Fecha de cierre -DateDue=Fecha de vencimiento -DateValue=Fecha valor -DateValueShort=Fecha valor -DateOperation=Fecha operación -DateOperationShort=Fecha op. -DateLimit=Fecha límite -DateRequest=Fecha consulta -DateProcess=Fecha proceso -DateBuild=Fecha generación del informe -DatePayment=Fecha pago -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=año -DurationMonth=mes -DurationWeek=semana -DurationDay=día -DurationYears=años -DurationMonths=meses -DurationWeeks=semanas -DurationDays=días -Year=Año -Month=Mes -Week=Semana -WeekShort=Semana -Day=Día -Hour=Hora -Minute=Minuto -Second=Segundo -Years=Años -Months=Meses -Days=Días -days=días -Hours=Horas -Minutes=Minutos -Seconds=Segundos -Weeks=Semanas -Today=Hoy -Yesterday=Ayer -Tomorrow=Mañana -Morning=Mañana -Afternoon=Tarde -Quadri=Trimestre -MonthOfDay=Mes del día -HourShort=H -MinuteShort=mn -Rate=Tipo -CurrencyRate=Currency conversion rate UseLocalTax=Incluir impuestos -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cortar -Copy=Copiar -Paste=Pegar -Default=Predeterminado -DefaultValue=Valor por defecto -Price=Precio -UnitPrice=Precio unitario -UnitPriceHT=Precio base -UnitPriceTTC=Precio unitario total -PriceU=P.U. -PriceUHT=P.U. -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Importe -AmountInvoice=Importe factura -AmountPayment=Importe pago -AmountHTShort=Base imp. -AmountTTCShort=Importe -AmountHT=Base imponible -AmountTTC=Importe total -AmountVAT=Importe IVA -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Importe Impuesto 2 -AmountLT2=Importe Impuesto 3 -AmountLT1ES=Importe RE -AmountLT2ES=Importe IRPF -AmountTotal=Importe total -AmountAverage=Importe medio -PriceQtyMinHT=Precio cantidad min. total -Percentage=Porcentaje -Total=Total -SubTotal=Subtotal -TotalHTShort=Importe -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total -TotalHT=Base imponible -TotalHTforthispage=Total (base imponible) de esta página -Totalforthispage=Total for this page -TotalTTC=Total -TotalTTCToYourCredit=Total a crédito -TotalVAT=Total IVA -TotalLT1=Total Impuesto 2 -TotalLT2=Total Impuesto 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Sin IVA -TTC=IVA incluido -VAT=IVA -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tasa IVA -Average=Media -Sum=Suma -Delta=Diferencia -Module=Módulo -Option=Opción -List=Listado -FullList=Listado completo -Statistics=Estadísticas -OtherStatistics=Otras estadísticas -Status=Estado -Favorite=Favorito -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. proveedor -RefPayment=Ref. pago CommercialProposalsShort=Cotizaciones -Comment=Comentario -Comments=Comentarios -ActionsToDo=Eventos a realizar -ActionsToDoShort=A realizar -ActionsDoneShort=Realizadas -ActionNotApplicable=No aplicable -ActionRunningNotStarted=No empezado -ActionRunningShort=In progress -ActionDoneShort=Terminado -ActionUncomplete=Incompleto -CompanyFoundation=Empresa o institución -ContactsForCompany=Contactos de este tercero -ContactsAddressesForCompany=Contactos/direcciones de este tercero -AddressesForCompany=Direcciones de este tercero -ActionsOnCompany=Eventos respecto a este tercero -ActionsOnMember=Eventos respecto a este miembro -NActionsLate=%s en retraso RequestAlreadyDone=La solicitud ya ha sido procesada -Filter=Filtro -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Eliminar filtro -ChartGenerated=Gráficos generados -ChartNotGenerated=Gráfico no generado -GeneratedOn=Generado el %s -Generate=Generar -Duration=Duración -TotalDuration=Duración total -Summary=Resumen -DolibarrStateBoard=Estadísticas -DolibarrWorkBoard=Indicadores de trabajo -Available=Disponible -NotYetAvailable=Aún no disponible -NotAvailable=No disponible -Categories=Tags/categories -Category=Tag/category -By=Por -From=De -to=a -and=y -or=o -Other=Otro -Others=Otros -OtherInformations=Otras informaciones -Quantity=Cantidad -Qty=Cant. -ChangedBy=Modificado por -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalcular -ResultKo=Error -Reporting=Informe -Reportings=Informes -Draft=Borrador -Drafts=Borradores -Validated=Validado -Opened=Abierto -New=Nuevo -Discount=Descuento -Unknown=Desconocido -General=General -Size=Tamaño -Received=Recibido -Paid=Pagado -Topic=Subject -ByCompanies=Por empresa -ByUsers=Por usuario -Links=Enlaces -Link=Enlace -Rejects=Devoluciones -Preview=Vista previa -NextStep=Siguiente paso -Datas=Datos -None=Nada -NoneF=Ninguna -Late=Retraso -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Foto -Photos=Fotos -AddPhoto=Añadir foto -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Login actual -EnterLoginDetail=Enter login details -January=enero -February=febrero -March=marzo -April=abril -May=mayo -June=junio -July=julio -August=agosto -September=septiembre -October=octubre -November=noviembre December=diciembre -JanuaryMin=Ene -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Abr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Ago -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=enero -Month02=febrero -Month03=marzo -Month04=abril -Month05=mayo -Month06=junio -Month07=julio -Month08=agosto -Month09=septiembre -Month10=octubre -Month11=noviembre -Month12=diciembre -MonthShort01=ene. -MonthShort02=feb. -MonthShort03=mar. -MonthShort04=abr. -MonthShort05=may. -MonthShort06=jun. -MonthShort07=jul. -MonthShort08=ago. -MonthShort09=sep. -MonthShort10=oct. -MonthShort11=nov. -MonthShort12=dic. -AttachedFiles=Archivos y documentos adjuntos -FileTransferComplete=Se transfirió correctamente el archivo -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Nombre del informe -ReportPeriod=Periodo de análisis -ReportDescription=Descripción -Report=Informe -Keyword=Keyword -Origin=Origin -Legend=Leyenda -Fill=Rellenar -Reset=Vaciar -File=Archivo -Files=Archivos -NotAllowed=No autorizado -ReadPermissionNotAllowed=Lectura no autorizada -AmountInCurrency=Importes visualizados en %s -Example=Ejemplo -Examples=Ejemplos -NoExample=Sin ejemplo FindBug=Señalar un bug -NbOfThirdParties=Número de terceros -NbOfLines=Números de líneas -NbOfObjects=Número de objetos -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Cantidad total -DateFromTo=De %s a %s -DateFrom=A partir de %s -DateUntil=Hasta %s -Check=Verificar -Uncheck=Uncheck -Internal=Interno -External=Externo -Internals=Internos -Externals=Externos -Warning=Alerta -Warnings=Alertas -BuildDoc=Generar el documento -Entity=Entidad -Entities=Entidades -CustomerPreview=Historial cliente -SupplierPreview=Historial proveedor -ShowCustomerPreview=Ver historial cliente -ShowSupplierPreview=Ver historial proveedor -RefCustomer=Ref. cliente Currency=Moneda -InfoAdmin=Información para los administradores -Undo=Anular -Redo=Rehacer -ExpandAll=Expandir todo -UndoExpandAll=Contraer todo -Reason=Razón -FeatureNotYetSupported=Funcionalidad aún no soportada -CloseWindow=Cerrar ventana -Response=Respuesta -Priority=Prioridad -SendByMail=Enviar por e-mail -MailSentBy=Mail enviado por -TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=Sin e-mail -Email=Email -NoMobilePhone=Sin teléfono móvil -Owner=Propietario -FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente. -Refresh=Refrescar -BackToList=Volver al listado -GoBack=Volver atrás -CanBeModifiedIfOk=Puede modificarse si es valido -CanBeModifiedIfKo=Puede modificarse si no es valido -ValueIsValid=Valor válido -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Registro modificado con éxito -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Creación automática de código -FeatureDisabled=Función desactivada -MoveBox=Move widget -Offered=Oferta -NotEnoughPermissions=No tiene permisos para esta acción -SessionName=Nombre sesión -Method=Método -Receive=Recepción -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Valor actual -PartialWoman=Parcial -TotalWoman=Total -NeverReceived=Nunca recibido -Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar estos valores en el menú configuración->diccionarios -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Documentos -Documents2=Documentos -UploadDisabled=Subida desactivada -MenuECM=Documentos -MenuAWStats=AWStats -MenuMembers=Miembros -MenuAgendaGoogle=Agenda Google -ThisLimitIsDefinedInSetup=Límite Dolibarr (Menú inicio-configuración-seguridad): %s Kb, PHP limit: %s Kb -NoFileFound=No hay documentos guardados en este directorio -CurrentUserLanguage=Idioma actual -CurrentTheme=Tema actual -CurrentMenuManager=Gestor menú actual -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Módulos desactivados -For=Para -ForCustomer=Para cliente -Signature=Firma -DateOfSignature=Date of signature -HidePassword=Mostrar comando con contraseña oculta -UnHidePassword=Mostrar comando con contraseña a la vista -Root=Raíz -Informations=Información -Page=Página -Notes=Notas -AddNewLine=Añadir nueva línea -AddFile=Añadir archivo -FreeZone=Entrada libre -FreeLineOfType=Entrada libre del tipo -CloneMainAttributes=Clonar el objeto con estos atributos principales -PDFMerge=Fusión PDF -Merge=Fusión -PrintContentArea=Mostrar página de impresión de la zona central -MenuManager=Gestor de menú -WarningYouAreInMaintenanceMode=Atención, está en modo mantenimiento, así que solamente el login %s está autorizado para utilizar la aplicación en este momento. -CoreErrorTitle=Error del sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Tarjeta de crédito -FieldsWithAreMandatory=Los campos marcados por un %s son obligatorios -FieldsWithIsForPublic=Los campos marcados por %s se mostrarán en la lista pública de miembros. Si no desea verlos, desactive la casilla "público". -AccordingToGeoIPDatabase=(Obtenido por conversión GeoIP) -Line=Línea -NotSupported=No soportado -RequiredField=Campo obligatorio -Result=Resultado -ToTest=Probar -ValidateBefore=Para poder usar esta función debe validarse la ficha -Visibility=Visibilidad -Private=Privado -Hidden=Caché -Resources=Recursos -Source=Origen -Prefix=Prefijo -Before=Antes -After=Después -IPAddress=Dirección IP -Frequency=Frecuencia -IM=Mensajería instantánea -NewAttribute=Nuevo atributo -AttributeCode=Código atributo -URLPhoto=Url de la foto/logo -SetLinkToAnotherThirdParty=Vincular a otro tercero -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Crear borrador -SetToDraft=Volver a borrador -ClickToEdit=Clic para editar -ObjectDeleted=Objeto %s eliminado -ByCountry=Par país -ByTown=Por población -ByDate=Por fecha -ByMonthYear=Por mes/año -ByYear=Por año -ByMonth=Por mes -ByDay=Por día -BySalesRepresentative=Por comercial -LinkedToSpecificUsers=Enlazado a un contacto de usuario particular -NoResults=Ningún resultado -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Utilidades módulos -Test=Prueba -Element=Elemento -NoPhotoYet=No hay fotografía disponible -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deducible -from=de -toward=hacia -Access=Acceso -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C para copiar al portapapeles -SaveUploadedFileWithMask=Guardar el archivo con el nombre "%s" (sino "%s") -OriginFileName=Nombre del archivo origen -SetDemandReason=Definir origen -SetBankAccount=Definir cuenta bancaria -AccountCurrency=Divisa de la cuenta -ViewPrivateNote=Ver notas -XMoreLines=%s línea(s) ocultas -PublicUrl=URL pública -AddBox=Añadir caja -SelectElementAndClickRefresh=Seleccione un elemento y haga clic en Actualizar PrintFile=Imprimir archivo %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Lunes -Tuesday=Martes -Wednesday=Miércoles -Thursday=Jueves -Friday=Viernes -Saturday=Sábado -Sunday=Domingo -MondayMin=Lu -TuesdayMin=Ma -WednesdayMin=Mi -ThursdayMin=Ju -FridayMin=Vi -SaturdayMin=Sa -SundayMin=Do -Day1=Lunes -Day2=Martes -Day3=Miércoles -Day4=Jueves -Day5=Viernes -Day6=Sábado -Day0=Domingo -ShortMonday=L -ShortTuesday=M -ShortWednesday=Mi -ShortThursday=J -ShortFriday=V -ShortSaturday=S -ShortSunday=D -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Miembros -SearchIntoUsers=Usuarios -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_DO/accountancy.lang b/htdocs/langs/es_DO/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_DO/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_DO/admin.lang b/htdocs/langs/es_DO/admin.lang index 774595e24a8..46365249827 100644 --- a/htdocs/langs/es_DO/admin.lang +++ b/htdocs/langs/es_DO/admin.lang @@ -1,1665 +1,24 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el ITBIS en la generación de los PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons OldVATRates=Tasa de ITBIS antigua NewVATRates=Tasa de ITBIS nueva -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders Permission91=Consultar impuestos e ITBIS Permission92=Crear/modificar impuestos e ITBIS Permission93=Eliminar impuestos e ITBIS -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=Tasa de ITBIS (Impuesto sobre ventas en EEUU) -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list VATManagement=Gestión ITBIS -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. VATIsNotUsedDesc=El tipo de ITBIS propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades. VATIsUsedExampleFR=En Francia, se trata de las sociedades u organismos que eligen un régimen fiscal general (General simplificado o General normal), régimen en el cual se declara el ITBIS. VATIsNotUsedExampleFR=En Francia, se trata de asociaciones exentas de ITBIS o sociedades, organismos o profesiones liberales que han elegido el régimen fiscal de módulos (ITBIS en franquicia), pagando un ITBIS en franquicia sin hacer declaración de IVA. Esta elección hace aparecer la anotación "IVA no aplicable - art-293B del CGI" en las facturas. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax LocalTax1IsUsedDesc=Uso de un 2º tipo de impuesto (Distinto del ITBIS) LocalTax1IsNotUsedDesc=No usar un 2º tipo de impuesto (Distinto del ITBIS) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) LocalTax2IsNotUsedDesc=No usar un 2º tipo de impuesto (Distinto del ITBIS) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) UnitPriceOfProduct=Precio unitario sin ITBIS de un producto -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents ShowVATIntaInAddress=Ocultar el identificador ITBIS en las direcciones de los documentos -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup OptionVatMode=Opción de carga de ITBIS -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis OptionVatDefaultDesc=La carga del ITBIS es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre el pago por los servicios OptionVatDebitOptionDesc=La carga del ITBIS es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre la facturación de los servicios SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad de ITBIS por defecto según la opción eligida -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Su empresa está configurada como no sujeta al ITBIS (Inicio - Configuración - Empresa/Institución), por lo que no hay opción para la paremetrización del ITBIS. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_DO/main.lang b/htdocs/langs/es_DO/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/es_DO/main.lang +++ b/htdocs/langs/es_DO/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_EC/accountancy.lang b/htdocs/langs/es_EC/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_EC/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_EC/admin.lang b/htdocs/langs/es_EC/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/es_EC/admin.lang +++ b/htdocs/langs/es_EC/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang index 2fdcb824dd1..1602d6a7ffa 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,3 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 477eda5416a..5a7167903cd 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Etiqueta factura OverviewOfAmountOfLinesNotBound=Ver la cantidad de líneas no ligadas a cuentas contables OverviewOfAmountOfLinesBound=Ver la cantidad de líneas ligadas a cuentas contables OtherInfo=Otra información +DeleteCptCategory=Eliminar la cuenta contable del grupo +ConfirmDeleteCptCategory=¿Está seguro de querer eliminar esta cuenta contable del grupo de cuentas contables? AccountancyArea=Área contabilidad AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos: AccountancyAreaDescActionOnce=Las siguientes acciones se ejecutan normalmente una sola vez, o una vez al año... -AccountancyAreaDescActionOnceBis=Los pasos siguientes deben hacerse para ahorrar tiempo en el futuro, sugiriendo la cuenta contable predeterminada correcta para realizar los diarios (escritura de los registros en los diarios y el Libro Mayor) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan normalmente cada mes, semana o día en empresas muy grandes... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=PASO %s: Crear un modelo de plan general contable desde el menú %s AccountancyAreaDescChart=PASO %s: Crear o comprobar el contenido de su plan general contable desde el menú %s -AccountancyAreaDescBank=PASO %s: Verificar la unión entre cuentas bancarias y sus cuentas contables. Completar las consolidaciones que faltan. Para ello vaya a la ficha de cada cuenta bancaria. Puede empezar desde la página %s. -AccountancyAreaDescVat=PASO %s: Verificar la unión entre las tasas de IVA y sus cuentas contables. Completar las consolidaciones que faltan. Puede indicar las cuentas contables para usar en cada IVA en la página %s. -AccountancyAreaDescExpenseReport=PASO %s: Verificar la unión entre los informes de gastos y sus cuentas contables. Completar las consolidaciones que faltan. Puede indicar las cuentas contables para usar en cada registro en la página %s. -AccountancyAreaDescSal=PASO %s: Compruebe la unión entre los pagos de salarios y sus cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescContrib=PASO %s: Compruebe la unión entre los gastos especiales y sus cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescDonation=PASO %s: Compruebe la unión entre las donaciones y sus cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescMisc=PASO %s: Compruebe la unión entre líneas de registros misceláneos y cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescProd=PASO %s: Compruebe la unión entre los productos/servicios y sus cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescLoan=PASO %s: Compruebe la unión entre los pagos y sus cuentas contables. Completar las consolidaciones que faltan.
Para ello puede utilizar el menú %s. -AccountancyAreaDescCustomer=PASO %s: Verificar la unión entre líneas de facturas a clientes y sus cuentas contables. Completar las consolidaciones que faltan. Una vez que la unión es completada, la aplicación será capaz de generar las transacciones del diario en el Libro Mayor en un solo clic.
Para ello puede utilizar el menú %s. -AccountancyAreaDescSupplier=PASO %s: Verificar la unión entre líneas de facturas a proveedores y sus cuentas contables. Completar las consolidaciones que faltan. Una vez que la unión es completada, la aplicación será capaz de generar las transacciones del diario en el Libro Mayor en un solo clic.
Para ello puede utilizar el menú %s. -AccountancyAreaDescWriteRecords=PASO %s: Escribir las transacciones en el Libro Mayor. Para ello, entre en cada diario, y haga clic en el botón de "Generar transacciones en el Libro Mayor". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=PASO %s: Defina las cuentas contables para cada banco y cuentas financieras. Puede empezar desde la página %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=PASO %s: Añadir o editar transacciones existentes, generar informes y exportaciones. AccountancyAreaDescClosePeriod=PASO %s: Cerrar periodo, por lo que no podrá hacer modificaciones en un futuro. @@ -57,6 +61,10 @@ ChangeAndLoad=Cambiar y cargar Addanaccount=Añadir una cuenta contable AccountAccounting=Cuenta contable AccountAccountingShort=Cuenta +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Mostrar diario de cuentas +ShowAccountingJournal=Mostrar diario contable AccountAccountingSuggest=Cuenta contable sugerida MenuDefaultAccounts=Cuentas contables por defecto MenuVatAccounts=Cuentas de IVA @@ -71,8 +79,8 @@ SuppliersVentilation=Contabilizar facturas de proveedores ExpenseReportsVentilation=Contabilizar informes de gastos CreateMvts=Crear nuevo movimiento UpdateMvts=Modificar transacción -WriteBookKeeping=Registrar movimientos en el Libro Mayor -Bookkeeping=Libro Mayor +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Saldo de la cuenta CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Ordenar las páginas de contabilización " ACCOUNTING_LENGTH_DESCRIPTION=Longitud para la visualización de la descripción de productos y servicios en los listados (Ideal = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Longitud para la visualización de la descripción de la cuenta de productos y servicios en los listados (Ideal = 50) -ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas generales -ACCOUNTING_LENGTH_AACCOUNT=Longitud de las subcuentas -ACCOUNTING_MANAGE_ZERO=Gestiona el cero al final de una cuenta contable. Necesario en algunos países. Desactivada por defecto. Si está activada, también debe establecer los siguientes dos parámetros (o será ignorada) +ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas generales (si ajusta el valor a 6 aquí, la cuenta '706' aparecerá como '706000' en la pantalla) +ACCOUNTING_LENGTH_AACCOUNT=Longitud de las subcuentas ( si ajusta el valor a 6 aquí, la cuenta '401' aparecerá como '401000' en la pantalla) +ACCOUNTING_MANAGE_ZERO=Gestiona el cero al final de una cuenta contable. Necesario en algunos países (como Suiza). Si se mantiene desactivada (por defecto), puede configurar los 2 parámetros siguientes para pedir que la aplicación agregue el cero virtual BANK_DISABLE_DIRECT_INPUT=Desactivar transacciones directas en cuenta bancaria ACCOUNTING_SELL_JOURNAL=Diario de ventas @@ -132,19 +140,19 @@ Sens=Sentido Codejournal=Diario NumPiece=Apunte TransactionNumShort=Núm. transacción -AccountingCategory=Categoría contable +AccountingCategory=Grupos cuentas contables GroupByAccountAccounting=Agrupar por cuenta contable NotMatch=No establecido -DeleteMvt=Eliminar líneas del Libro Mayor +DeleteMvt=Delete Ledger lines DelYear=Año a eliminar DelJournal=Diario a eliminar -ConfirmDeleteMvt=Esto eliminará todas las lineas del Libro Mayor del año y/o de un diario específico. Se requiere al menos un criterio. -ConfirmDeleteMvtPartial=Esto borrará todas las líneas seleccionadas del libro de mayor -DelBookKeeping=Eliminar los registros del Diario Mayor +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Diario financiero ExpenseReportsJournal=Diario informe de gastos DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria -DescJournalOnlyBindedVisible=Esta es una vista de registros que están vinculados a una cuenta contable de productos/servicios y pueden ser registrados en el Libro Mayor. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Cuenta contable para IVA no definida ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida ProductAccountNotDefined=Cuenta contable de producto no definida @@ -156,13 +164,13 @@ NewAccountingMvt=Nuevo movimiento NumMvts=Número de movimiento ListeMvts=Listado de movimientos ErrorDebitCredit=Debe y Haber no pueden contener un valor al mismo tiempo - +AddCompteFromBK=Añadir cuentas contables al grupo ReportThirdParty=Listado de cuentas de terceros DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus códigos contables ListAccounts=Listado de cuentas contables Pcgtype=Tipo del plan -Pcgsubtype=Subcuenta +Pcgsubtype=Subclass of account TotalVente=Total facturación antes de impuestos TotalMarge=Total margen ventas @@ -186,9 +194,9 @@ AutomaticBindingDone=Vinculación automática finalizada ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s FicheVentilation=Ficha contable -GeneralLedgerIsWritten=Transacciones escritas en el libro mayor -GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse. -NoNewRecordSaved=No se guardaron nuevos registros +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables ChangeBinding=Cambiar la unión @@ -196,6 +204,18 @@ ChangeBinding=Cambiar la unión ApplyMassCategories=Aplicar categorías en masa AddAccountFromBookKeepingWithNoCategories=Añadir cuenta ya utilizada sin categorías CategoryDeleted=La categoría para la cuenta contable ha sido eliminada +AccountingJournals=Diarios contables +AccountingJournal=Diario contable +NewAccountingJournal=Nuevo diario contable +ShowAccoutingJournal=Mostrar diario contable +Code=Código +Nature=Naturaleza +AccountingJournalType1=Operaciones varias +AccountingJournalType2=Ventas +AccountingJournalType3=Compras +AccountingJournalType4=Banco +AccountingJournalType9=Haber +ErrorAccountingJournalIsAlreadyUse=Este diario ya esta siendo usado ## Export Exports=Exportaciones @@ -211,6 +231,7 @@ Modelcsv_ciel=Exportar hacia Sage Ciel Compta o Compta Evolution Modelcsv_quadratus=Exportar hacia Quadratus QuadraCompta Modelcsv_ebp=Exportar a EBP Modelcsv_cogilog=Eportar a Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Id plan contable ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculado Formula=Fórmula ## Error -ErrorNoAccountingCategoryForThisCountry=Sin categorías contables para %s (Vea Inicio - Configuración - Diccionarios) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No hay grupos contables disponibles para %s (Vea Inicio - Configuración - Diccionarios) ExportNotSupported=El formato de exportación configurado no es soportado en esta página BookeppingLineAlreayExists=Lineas ya existentes en la contabilidad - +NoJournalDefined=No journal defined Binded=Líneas contabilizadas ToBind=Líneas a contabilizar -WarningReportNotReliable=Advertencia, este informe no se basa en el libro mayor, por lo que no es fiable aún. Se sustituirá por un informe correcto en una próxima versión. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index 23a18dc51a9..e07d374c999 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Usuarios internos ExternalUsers=Usuarios externos GUISetup=Entorno SetupArea=Área configuración +UploadNewTemplate=Nueva(s) plantilla(s) actualizada(s) FormToTestFileUploadForm=Formulario de prueba de subida de archivo (según opciones elegidas) IfModuleEnabled=Nota: sólo es eficaz si el módulo %s está activado RemoveLock=Elimine el archivo %s, si existe, para permitir la utilidad de actualización. @@ -103,7 +104,7 @@ MenuIdParent=Id del menú padre DetailMenuIdParent=ID del menú padre (vacío para un menú superior) DetailPosition=Número de orden para la posición del menú AllMenus=Todos -NotConfigured=No configurado +NotConfigured=Module/Application not configured Active=Activo SetupShort=Config. OtherOptions=Otras opciones @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separador miles Destination=destino IdModule=identificador de modulo IdPermissions=Identificador de permisos -Modules=Módulos LanguageBrowserParameter=Variable %s LocalisationDolibarrParameters=Parámetros de localización ClientTZ=Zona horaria cliente (usuario) @@ -123,7 +123,8 @@ PHPTZ=Zona horaria Servidor PHP DaylingSavingTime=Horario de verano (usuario) CurrentHour=Hora PHP (servidor) CurrentSessionTimeOut=Timeout sesión actual -YouCanEditPHPTZ=Para definir una zona horaria PHP diferente (no es necesario), pruebe a añadir un archivo .htacces con una línea como esta "SetEnvTZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Panel Boxes=Paneles MaxNbOfLinesForBoxes=Número máximo de líneas para paneles @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Funcionaliad disponible únicamente en versiones of Rights=Permisos BoxesDesc=Los paneles son componentes que muestran algunos datos que pueden añadirse para personalizar algunas páginas. Puede elegir entre mostrar o no el panel mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en la papelera para desactivarlo. OnlyActiveElementsAreShown=Sólo los elementos de módulos activados son mostrados. -ModulesDesc=Los módulos de Dolibarr definen qué funcionalidad está habilitada en el software. Algunos módulos requieren permisos que se deben conceder a los usuarios después de activar el módulo. Haga clic en el botón de encendido/apagado para activar un módulo/función. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Puede encontrar más módulos para descargar en sitios web externos en Internet ... ModulesDeployDesc=Si los permisos en su sistema de archivos lo permiten, puede utilizar esta herramienta para instalar un módulo externo. El módulo estará entonces visible en la pestaña %s. ModulesMarketPlaces=Buscar módulos externos... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Encriptar la contraseña de la base en el archiv InstrucToEncodePass=Para tener la contraseña codificada en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass = "...";
por
$dolibarr_main_db_pass = "crypted:%s"; InstrucToClearPass=Para tener la contraseña decodificada (visible) en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass = "crypted:...";
por
$dolibarr_main_db_pass = "%s"; ProtectAndEncryptPdfFiles=Protección y encriptación de los pdf generados -ProtectAndEncryptPdfFilesDesc=La protección de un documento pdf deja el documento libre a la lectura y a la impresión a cualquier lector de PDF. Por el contrario, la modificación y la copia resultan imposibles. +ProtectAndEncryptPdfFilesDesc=La protección de un documento PDF lo mantiene disponible para leer e imprimir con cualquier navegador PDF. Sin embargo, la edición y la copia no son posibles. Tenga en cuenta que el uso de esta característica hace que la creación global de un conjunto de PDFs no funcione. Feature=Función DolibarrLicense=Licencia Developpers=Desarrolladores/contribuidores @@ -225,6 +226,8 @@ OfficialMarketPlace=Sitio oficial de módulos complementarios y extensiones OfficialWebHostingService=Servicios de hosting web (Cloud hosting) ReferencedPreferredPartners=Preferred Partners OtherResources=Otros recursos +ExternalResources=Recursos externos +SocialNetworks=Redes sociales ForDocumentationSeeWiki=Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr:
%s ForAnswersSeeForum=Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr:
%s HelpCenterDesc1=Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funcionalidad no disponible en sistemas Unix. Pruebe SubmitTranslation=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando los archivos en el directorio langs/%s y enviar su cambio a www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traducción de este idioma es incompleta o si encuentra errores, puede corregirlos mediante la edición de los archivos en el directorio langs/%s y el envío los cambios al foro www.dolibarr.es o a los desarrolladores en github.com/Dolibarr/dolibarr. ModuleSetup=Configuración del módulo -ModulesSetup=Configuración de los módulos +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestión de Relaciones con Clientes (CRM) ModuleFamilySrm=Gestión de Relaciones con Proveedores (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Versión actual de Dolibarr CallUpdatePage=Ir a la página de actualización de la estructura de la base de datos y sus datos: %s. LastStableVersion=Última versión estable LastActivationDate=Última fecha de activación +LastActivationAuthor=Latest activation author +LastActivationIP=Última IP activa UpdateServerOffline=Actualizar servidor offline +WithCounter=Gestionar un contador GenericMaskCodes=Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas:
{000000} corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara.
{000000+000} Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s.
{000000@x} igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia {yy}{mm} o {yyyy}{mm} también es necesaria.
{dd} días (01 a 31).
{mm} mes (01 a 12).
{yy}, {yyyy} ou {y} año en 2, 4 ó 1 cifra.
GenericMaskCodes2={cccc} código de cliente con n caracteres
{cccc000} código de cliente con n caracteres es seguido por un contador dedicado a clientes. Este contador dedicado a clientes se reseteará al mismo tiempo que el contador global.
{tttt} El código del tipo de empresa con n caracteres (vea diccionarios->tipos de empresa).
GenericMaskCodes3=Cualquier otro carácter en la máscara se quedará sin cambios.
No se permiten espacios
GenericMaskCodes4a=Ejemplo en la 99 ª %s del tercero La Empresa realizada el 31/03/2007:
GenericMaskCodes4b=Ejemplo sobre un tercero creado el 31/03/2007:
GenericMaskCodes4c=Ejemplo en un producto/servicio creado el 31/03/2007:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} dará ABC0703-000099
{0000+100@1}-XXX/{dd}/YYY daráa 0199-XXX/31/YYY +GenericMaskCodes5=ABC {yy} {mm} - {000000} dará ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX dará 0199-ZZZ/31/ XXX
IN{yy}{mm}-{0000}-{t} dará IN0701-0099-A si el tipo de empresa es 'Responsable Inscrito' con código para el tipo 'A_RI' GenericNumRefModelDesc=Devuelve un número creado acorde a una máscara definida. ServerAvailableOnIPOrPort=Servidor disponible en la dirección %s en el puerto %s ServerNotAvailableOnIPOrPort=Servidor no disponible en la dirección %s en el puerto %s @@ -369,19 +375,21 @@ Int=Numérico entero Float=Decimal DateAndTime=Fecha y hora Unique=Único -Boolean=Boleano (Casilla de verificación) +Boolean=Boolean (un checkbox) ExtrafieldPhone = Teléfono ExtrafieldPrice = Precio ExtrafieldMail = Correo ExtrafieldUrl = Url ExtrafieldSelect = Lista de selección ExtrafieldSelectList = Lista desde una tabla -ExtrafieldSeparator=Separador +ExtrafieldSeparator=Separador (No es un campo) ExtrafieldPassword=Contraseña +ExtrafieldRadio=Radio buttons (on choice only) ExtrafieldCheckBox=Casilla de verificación -ExtrafieldRadio=Botón de selección excluyente -ExtrafieldCheckBoxFromList= Casilla de selección de tabla +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Objeto adjuntado +ComputedFormula=Campo combinado +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=El listado de parámetros tiene que ser key,valor

por ejemplo:\\n
1,value1
2,value2
3,value3
...

Para tener una lista en funcion de atributos complementarios de lista:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Para tener la lista en función de otra:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=De forma predeterminada, los pedidos a proveedor deben ser cre UseDoubleApproval=Usar 3 pasos de aprobación si el importe (sin IVA) es mayor que... WarningPHPMail=ADVERTENCIA: Algunos proveedores de correo electrónico (como Yahoo) no le permiten enviar un e-mail desde otro servidor que no sea el servidor de Yahoo si la dirección de correo electrónico utilizada como remitente es su correo e-mail de Yahoo (como myemail@yahoo.com, myemail@yahoo.fr, ...). Su configuración actual utiliza el servidor de la aplicación para enviar e-mail, por lo que algunos destinatarios (compatibles con el protocolo restrictivo DMARC) le preguntarán a Yahoo si pueden aceptar su e-mail y Yahoo responderá "no" porque el servidor no es un servidor Propiedad de Yahoo, por lo que algunos de sus e-mails enviados pueden no ser aceptados. Si su proveedor de correo electrónico (como Yahoo) tiene esta restricción, debe cambiar la configuración de e-mail para elegir el método "servidor SMTP" y introdudir el servidor SMTP y credenciales proporcionadas por su proveedor de correo electrónico (pregunte a su proveedor de correo electrónico las credenciales SMTP para su cuenta). ClickToShowDescription=Clic para ver la descripción +DependsOn=Este módulo necesita los módulos +RequiredBy=Este módulo es requerido por los módulos +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
Para que el formulario cree un nuevo tercero, es %s +PageUrlForDefaultValuesList=
Para la página que lista terceros, es %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código, por lo que para cambiar este valor, debe editarlo desde Inicio-Configuración-Traducción. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Campo +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Usuarios y grupos Module0Desc=Gestión de Usuarios / Empleados y grupos @@ -444,7 +466,7 @@ Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas de prov Module40Name=Proveedores Module40Desc=Gestión de proveedores Module42Name=Syslog -Module42Desc=Generación de logs (archivos, syslog,...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editores Module49Desc=Gestión de editores Module50Name=Productos @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Interfaz con el calendario Webcalendar Module500Name=Pagos especiales Module500Desc=Gestión de gastos especiales (impuestos, gastos sociales, dividendos) -Module510Name=Contratos de empleados y salarios -Module510Desc=Gestión de contratos de empleados, salarios y pagos +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Crédito Module520Desc=Gestión de créditos Module600Name=Notificaciones @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacidades de conversión GeoIP Maxmind Module3100Name=Skype Module3100Desc=Añadir un botón Skype en las fichas de usuarios/terceros/contactos/miembros +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=RRHH -Module4000Desc=Departamento de Recursos Humanos +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-empresa Module5000Desc=Permite gestionar varias empresas Module6000Name=Flujo de trabajo @@ -591,7 +615,7 @@ Permission32=Crear/modificar productos Permission34=Eliminar productos Permission36=Ver/gestionar los productos ocultos Permission38=Exportar productos -Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos en tareas asignadas. +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Crear/modificar proyectos (proyectos compartidos y proyectos de los que soy contacto). También puede crear tareas y asignar usuarios a proyectos y tareas Permission44=Eliminar proyectos y tareas (compartidos o soy contacto) Permission45=Exportar proyectos @@ -692,9 +716,9 @@ PermissionAdvanced251=Consultar otros usuarios Permission252=Consultar los permisos de otros usuarios Permission253=Crear/modificar otros usuarios y sus permisos PermissionAdvanced253=Crear/modificar usuarios internos/externos y sus permisos -Permission254=Modificar la contraseña de otros usuarios -Permission255=Eliminar o desactivar otros usuarios -Permission256=Consultar sus permisos +Permission254=Crear/modificar únicamente usuarios externos +Permission255=Modificar la contraseña de otros usuarios +Permission256=Eliminar o desactivar otros usuarios Permission262=Ampliar el acceso a todos los terceros (no sólo a los terceros que el usuario es comercial).
No efectivo para usuarios externos (Solamente usuarios internos. Los externos están limitados a ellos mismos para presupuestos, facturas, contratos, etc.).
No efectivo para proyectos (solamente permisos de visión y asignación de los proyectos). Permission271=Consultar el CA Permission272=Consultar las facturas @@ -844,12 +868,14 @@ DictionaryOrderMethods=Métodos de pedido DictionarySource=Orígenes de presupuestos/pedidos DictionaryAccountancyCategory=Grupos cuentas contables DictionaryAccountancysystem=Modelos de planes contables +DictionaryAccountancyJournal=Diarios contables DictionaryEMailTemplates=Plantillas E-Mails DictionaryUnits=Unidades DictionaryProspectStatus=Estado cliente potencial DictionaryHolidayTypes=Tipos de honorarios DictionaryOpportunityStatus=Estado de oportunidad para el proyecto/lead SetupSaved=Configuración guardada +SetupNotSaved=Configuración no guardada BackToModuleList=Volver a la lista de módulos BackToDictionaryList=Volver a la lista de diccionarios VATManagement=Gestión IVA @@ -931,6 +957,8 @@ DefaultMaxSizeList=Longitud máxima de registros en listados DefaultMaxSizeShortList=Longitud máxima de registros en listados MessageOfDay=Mensaje del día MessageLogin=Mensaje del login +LoginPage=Página de login +BackgroundImageLogin=Imagen de fondo PermanentLeftSearchForm=Zona de búsqueda permanente del menú izquierdo DefaultLanguage=Idioma por defecto a utilizar (código idioma) EnableMultilangInterface=Activar interfaz multi-idioma @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancia de retraso entes de la alerta (en días) s Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia de retraso entes de la alerta (en días) sobre cheques a ingresar Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerancia de retraso entes de la alerta (en días) sobre gastos a aprobar SetupDescription1=El área de configuración sirve para configurar los parámetros antes de empezar a usar Dolibarr -SetupDescription2=Los dos pasos más importantes de configuración son los dos primeros en el menú de configuración de la izquierda: la página de configuración de la empresa/institución y la página de configuración de los módulos: -SetupDescription3=Los parámetros de configuración del menú Configuración -> Empresa/institución son necesarios ya que los datos presentados se utilizan en las pantallas Dolibarr y para personalizar el comportamiento por defecto del software (para funciones relacionadas con el país, por ejemplo) . -SetupDescription4=Los parámetros de configuración del menú Configuración -> Módulos son necesarios porque Dolibarr no es un ERP/CRM monolítico, sino una colección de varios módulos, todos más o menos independientes. Se añadirán nuevas funcionalidades a los menús por cada módulo que se active. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Las otras entradas de configuración gestionan parámetros opcionales. LogEvents=Auditoría de la seguridad de eventos Audit=Auditoría @@ -987,7 +1015,7 @@ BrowserOS=S.O. del navegador ListOfSecurityEvents=Listado de eventos de seguridad Dolibarr SecurityEventsPurged=Eventos de seguridad purgados LogEventDesc=Puede habilitar el registro de eventos de seguridad Dolibarr aquí. Los administradores pueden ver su contenido a través de menú Herramientas del sistema - Auditoría.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos. -AreaForAdminOnly=Estas funciones solo son accesibles a un usuario administrador. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores. SystemAreaForAdminOnly=Esta área solo es accesible a los usuarios de tipo administradores. Ningún permiso Dolibarr permite extender el círculo de usuarios autorizados a esta área. CompanyFundationDesc=Edite en esta página toda la información conocida de la empresa o institución que necesita gestionar (Para ello haga click en el botón "Modificar" o "Grabar" a pie de página) @@ -1079,7 +1107,8 @@ CurrentTranslationString=Cadena traducida actual WarningAtLeastKeyOrTranslationRequired=Se necesita un criterio de búsqueda al menos por cadena de clave o traducción NewTranslationStringToShow=Nueva cadena traducida a mostrar OriginalValueWas=La traducción original se ha sobreescrito. El valor original era:

%s -TotalNumberOfActivatedModules=Número total de módulos activados: %s / %s +TransKeyWithoutOriginalValue=Forzó una nueva traducción para la clave de traducción '%s' que no existe en ningún archivo de idioma +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Debe activar al menos un módulo. ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP YesInSummer=Sí en verano @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Reglas sobre los ID profesionales MustBeUnique=¿Debe ser único? MustBeMandatory=¿Obligatorio para crear terceros? MustBeInvoiceMandatory=¿Obligatorio para validar facturas? +TechnicalServicesProvided=Servicios técnicos prestados ##### Webcal setup ##### WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato %s estará disponible en la url: %s ##### Invoices ##### BillsSetup=Configuración del módulo Facturas BillsNumberingModule=Módulo de numeración de facturas y abonos BillsPDFModules=Modelo de documento de facturas +PaymentsPDFModules=Modelo de documentos de pago CreditNote=Abono CreditNotes=Abonos ForceInvoiceDate=Forzar la fecha de factura a la fecha de validación @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Archivos de tipo %s no se almacenan en caché por el servid FilesOfTypeCompressed=Archivos de tipo %s son comprimidos por el servidor HTTP FilesOfTypeNotCompressed=Archivos de tipo %s no son comprimidos por el servidor HTTP CacheByServer=Caché mediante el servidor +CacheByServerDesc=Por ejemplo utilizando la directiva Apache "ExpiresByType image/gif A2592000" CacheByClient=Caché mediante el navegador CompressionOfResources=Compresión de las respuestas HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=La detección automática no es posible con el navegador actual +DefaultValuesDesc=Puede definir/forzar aquí el valor predeterminado que desea obtener cuando cree un nuevo registro y/o defina filtros u ordenaciones en sus registros de listados. +DefaultCreateForm=Valores por defecto para nuevos objetos +DefaultSearchFilters=Filtros de búsqueda por defecto +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Configuración del módulo Productos ServiceSetup=Configuración del módulo Servicios @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Establecer por defecto este estado de eventos en el AGENDA_DEFAULT_VIEW=Establecer la pestaña por defecto al seleccionar el menú Agenda AGENDA_NOTIFICATION=Activar notificación de eventos en el navegador cuando se alcanza la fecha del evento (el usuario puede rechazar las notificaciones en la pregunta de confirmación del explorador) AGENDA_NOTIFICATION_SOUND=Activar sonido de notificación +AGENDA_SHOW_LINKED_OBJECT=Mostrar el link en la agenda ##### Clicktodial ##### ClickToDialSetup=Configuración del módulo Click To Dial -ClickToDialUrlDesc=URL de llamada haciendo click en el icono teléfono.
La URL completa de llamada será: URL?login=...&password=...&caller=...&called=telellamada +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Este módulo permite hacer clicables los números de teléfono. Un clic en este icono hará que su teléfono llame al número de teléfono. Esto puede ser usado para llamar a un sistema de centralitas desde Dolibarr que puede llamar al número de teléfono en un sistema SIP, por ejemplo. ClickToDialUseTelLink=Utilice el enlace "tel:" que aparece en los números de teléfono ClickToDialUseTelLinkDesc=Utilice este método si los usuarios tienen un softphone o una interfaz de software instalado en mismo equipo que el navegador, y se llama al hacer clic en un enlace en el navegador que comienza con "tel:". Si necesita una solución de servidor completa (sin necesidad de instalación de software local), debe establecer este en "No" y rellenar siguiente campo. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Orden de visualización general BankOrderES=Español BankOrderESDesc=Orden de visualización español ChequeReceiptsNumberingModule=Módulo de numeración de las remesas de cheques - ##### Multicompany ##### MultiCompanySetup=Configuración del módulo Multi-empresa ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Asistente para crear una copia de seguridad de la base de datos SomethingMakeInstallFromWebNotPossible=No es posible la instalación de módulos externos desde la interfaz web por la siguiente razón: SomethingMakeInstallFromWebNotPossible2=Por esta razón, explicaremos aquí los pasos del proceso de actualización manual que puede realizar un usuario con privilegios. InstallModuleFromWebHasBeenDisabledByFile=La instalación de módulos externos desde la aplicación se encuentra desactivada por el administrador. Debe requerirle que elimine el archivo %s para habilitar esta funcionalidad. -ConfFileMuseContainCustom=Instalar un módulo externo desde la aplicación guarda los archivos del módulo en el directorio %s. Para permitir a Dolibarr el procesamiento de dicho directorio, debe configurar su conf/conf.php añadiento 2 líneas de directivas:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Resaltar líneas de los listados cuando el ratón pasa por encima de ellas HighlightLinesColor=Resalta el color de la línea cuando el ratón pasa por encima (mantener vacío para no resaltar) TextTitleColor=Color para la página de título LinkColor=Color para los enlaces -PressF5AfterChangingThis=Para que sea eficaz el cambio, presione F5 en el teclado o borre la memoria caché del navegador después de cambiar este valor +PressF5AfterChangingThis=Para que sea eficaz el cambio, presione CTRL+F5 en el teclado o borre la memoria caché del navegador después de cambiar este valor NotSupportedByAllThemes=Funciona con temas del core, puede no funcionar con temas externos BackgroundColor=Color de fondo TopMenuBackgroundColor=Color de fondo para el Menú superior @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Período mínimo de notificación (Su solicitud de licencia NbAddedAutomatically=Número de días adicionales que se añaden automáticamente a los contadores de usuarios cada mes EnterAnyCode=Este campo contiene una referencia para identificar la línea. Introduzca cualquier valor de su elección, pero sin caracteres especiales. UnicodeCurrency=Ingrese aquí entre llaves, lista con número de byte que representa el símbolo de moneda. Por ejemplo: para $, introduzca [36] - para Brasil Real R$ [82,36] - para €, introduzca [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Posición de la línea en listas de combo SellTaxRate=Tasa de IVA RecuperableOnly=Sí para el IVA "Non Perçue Récupérable" usados en algunas provincias en Francia. Mantenga el valor a "No" en los demás casos. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=Si se utiliza un módulo multi-empresa, con la o ModuleEnabledAdminMustCheckRights=El módulo ha sido activado. Los permisos para los módulos activados se dan solamente a los usuarios administradores. Deberá otorgar permisos manualmente a otros usuarios si es necesario. UserHasNoPermissions=Este usuario no tiene permisos definidos TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de factura más un delta en días (delta es el campo "Nº de días")
Use "A final de mes", si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ opcional "Offset" en días)
Use "Actual/Siguiente" para tener la fecha del plazo de pago sea el primer N de cada mes (N se almacena en el campo "Nº de días") +BaseCurrency=Moneda de referencia de la empresa (entrar en la configuración de la empresa para cambiar esto) +WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuración del módulo Recursos UseSearchToSelectResource=Utilice un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index 456531fed7c..46ad0d6c4b5 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Los importes obtenidos se calculan según Param=Parametrizaje RemainingAmountPayment=Importe restante del pago : Account=Cuenta -Accountparent=Raíz de la cuenta -Accountsparent=Raíz de las cuentas +Accountparent=Cuenta padre +Accountsparent=Cuentas padre Income=Ingresos Outcome=Gastos ReportInOut=Resultado / Ejercicio @@ -56,6 +56,7 @@ MenuTaxAndDividends=Impuestos y cargas MenuSocialContributions=Impuestos sociales/fiscales MenuNewSocialContribution=Nueva tasa NewSocialContribution=Nueva tasa social/fiscal +AddSocialContribution=Añadir tasa social/fiscal ContributionsToPay=Tasas sociales/fiscales a pagar AccountancyTreasuryArea=Área contabilidad/tesorería NewPayment=Nuevo pago @@ -169,7 +170,7 @@ DescSellsJournal=Diario de ventas DescPurchasesJournal=Diario de compras InvoiceRef=Ref. factura CodeNotDef=No definido -WarningDepositsNotIncluded=Las facturas de anticipo aún no están incluidas en esta versión en el módulo de contabilidad. +WarningDepositsNotIncluded=Las facturas de anticipo no se encuentran incluidas en esta versión con este módulo de contabilidad DatePaymentTermCantBeLowerThanObjectDate=La fecha límite de pago no puede ser inferior a la fecha del objeto Pcg_version=Modelos de planes contables Pcg_type=Tipo de cuenta @@ -189,8 +190,10 @@ AccountancyJournal=Código contable diario ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (usado si no se define en el diccionario de IVA) ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable por defecto para terceros clientes (usado si no se define en la fecha del tercero) -ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable por defecto para terceros proveedores (usado si no se define en la fecha del tercero) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clonar una tasa social/fiscal ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal CloneTaxForNextMonth=Clonarla para el próximo mes @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Impuestos sociales/fiscales ImportDataset_tax_vat=Pagos IVA ErrorBankAccountNotFound=Error: No se encuentra la cuenta bancaria FiscalPeriod=Periodo contable +ListSocialContributionAssociatedProject=Listado de contribuciones sociales asociadas al proyecto diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang index ee687c18e0c..139b0f5df66 100644 --- a/htdocs/langs/es_ES/cron.lang +++ b/htdocs/langs/es_ES/cron.lang @@ -25,7 +25,7 @@ CronDelete=Borrar tareas programadas CronConfirmDelete=¿Está seguro de querer eliminar esta tarea programada? CronExecute=Ejecutar tarea programada CronConfirmExecute=¿Está seguro de querer ejecutar esta tarea programada ahora? -CronInfo=Tareas programadas le permite ejecutar tareas que han sido programadas +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Tarea CronNone=Ninguna CronDtStart=No antes de @@ -57,12 +57,12 @@ CronStatusActiveBtn=Activo CronStatusInactiveBtn=Inactivo CronTaskInactive=Esta tarea esta inactiva CronId=Id -CronClassFile=Clases (nombre archivo) -CronModuleHelp=Nombre del directorio del módulo Dolibarr (también funciona con módulos externos).
Por ejemplo, para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del módulo es product -CronClassFileHelp=El nombre del archivo a cargar.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del nombre del archivo de la clase es product.class.php -CronObjectHelp=El nombre del objeto a cargar.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del nombre de la clase es Product -CronMethodHelp=El métpdp a lanzar.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del método es fecth -CronArgsHelp=Los argumentos del método.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, los valores pueden ser 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=El comando en línea del sistema a ejecutar. CronCreateJob=Crear nueva tarea programada CronFrom=De @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Vaya al menú "Inicio - Utilidades administraci JobDisabled=Tarea desactivada MakeLocalDatabaseDumpShort=Copia local de la base de datos MakeLocalDatabaseDump=Crear una copia local de la base de datos -WarningCronDelayed=Atención: para mejorar el rendimiento, cualquiera que sea la próxima fecha de ejecución de las tareas activas, sus tareas pueden retrasarse un máximo de %s horas antes de ejecutarse +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index 7d796640d9b..cb42a47455c 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Error al crear el archivo '%s' ErrorFailToRenameDir=Error al renombrar el directorio '%s' a '%s'. ErrorFailToCreateDir=Error al crear el directorio '%s' ErrorFailToDeleteDir=Error al eliminar el directorio '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Este contacto ya está definido como contacto para este tipo. ErrorCashAccountAcceptsOnlyCashMoney=Esta cuenta bancaria es de tipo caja y sólo acepta pagos en efectivo. ErrorFromToAccountsMustDiffers=La cuenta origen y destino deben ser diferentes. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Imposible escribir en el directorio %s ErrorFoundBadEmailInFile=Encontrada sintaxis incorrecta en email en %s líneas en archivo (ejemplo linea %s con email=%s) ErrorUserCannotBeDelete=No puede eliminarse el usuario. Es posible que esté asociado a items de Dolibarr ErrorFieldsRequired=No se indicaron algunos campos obligatorios +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Error en la creación de un directorio. Compruebe que el usuario del servidor Web tiene derechos de escritura en los directorios de documentos de Dolibarr. Si el parámetro safe_mode está activo en este PHP, Compruebe que los archivos php Dolibarr pertenecen al usuario del servidor Web. ErrorNoMailDefinedForThisUser=E-Mail no definido para este usuario ErrorFeatureNeedJavascript=Esta funcionalidad precisa de javascript activo para funcionar. Modifique en configuración->entorno. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de factur ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web %s no dispone de los permisos para esto ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras ErrUnzipFails=No se ha podido descomprimir el archivo %s con ZipArchive -ErrNoZipEngine=En este PHP no hay motor para descomprimir el archivo %s +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=El archivo %s debe ser un paquete Dolibarr en formato zip ErrorModuleFileRequired=Debe seleccionar un archivo de módulo Dolibarr ErrorPhpCurlNotInstalled=La extensión PHP CURL no se encuentra instalada, es indispensable para dialogar con Paypal. @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Sin variable global seleccionada ErrorFieldMustBeANumeric=El campo %s debe contener un valor numérico ErrorMandatoryParametersNotProvided=Los parámetro(s) obligatorio(s) no están todavía definidos ErrorOppStatusRequiredIfAmount=Ha indicado un importe estimado para esta oportunidad/lead. Debe indicar también su estado +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definición incorrecta de la matriz de menú en el descriptor del módulo (valor incorrecto para la clave fk_menu) ErrorSavingChanges=Ha ocurrido un error al guardar los cambios ErrorWarehouseRequiredIntoShipmentLine=El almacén es obligatorio en la línea a enviar @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=No hay stock suficiente del producto ErrorStockIsNotEnoughToAddProductOnProposal=No hay stock suficiente del producto %s para añadirlo a un nuevo presupuesto. ErrorFailedToLoadLoginFileForMode=Error al obtener la clave de acceso para el modo '%s'. ErrorModuleNotFound=No se ha encontrado el archivo del módulo. -ErrorFieldAccountNotDefinedForBankLine=Valor para la cuenta contable no definida para la línea bancaria origen %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, el nombre de estado de la cuenta bancaria debe seguir la siguiente regla de sintaxis %s ErrorPhpMailDelivery=Compruebe que no use un número demasiado alto de destinatarios y que su contenido de correo electrónico no sea similar a un Spam. Pida también a su administrador que verifique el cortafuegos y los archivos de los registros del servidor para obtener una información más completa. ErrorUserNotAssignedToTask=El usuario debe ser asignado a la tarea para que pueda ingresar tiempo consumido. ErrorTaskAlreadyAssigned=Tarea ya asignada al usuario ErrorModuleFileSeemsToHaveAWrongFormat=Parece que el módulo tiene un formato incorrecto. ErrorFilenameDosNotMatchDolibarrPackageRules=El nombre del archivo del módulo (%s) no coincide coincide con la sintaxis del nombre esperado: %s +ErrorDuplicateTrigger=Error, nombre de trigger %s duplicado. Ya se encuentra cargado desde %s +ErrorNoWarehouseDefined=Error, no hay definidos almacenes. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=La fecha de pago (%s) es anterior a la fe WarningTooManyDataPleaseUseMoreFilters=Demasiados datos (más de %s líneas). Utilice más filtros o establezca la constante %s a un límite más alto. WarningSomeLinesWithNullHourlyRate=Algunas veces se realizaron registrod a usuarios, con su precio por hora sin definir. Se utilizó un valor de 0 %s por hora, esto puede dar lugar a la valoración incorrecta del tiempo invertido. WarningYourLoginWasModifiedPleaseLogin=Su cuenta de acceso ha sido modificada. Por razones de seguridad, tendrá que iniciar sesión con su nuevo acceso antes de la próxima acción. +WarningAnEntryAlreadyExistForTransKey=Ya existe una entrada para la clave de traducción para este idioma diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 51fb01ec308..6c2cb78990b 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -153,6 +153,7 @@ Edit=Editar Validate=Validar ValidateAndApprove=Validar y Aprobar ToValidate=A validar +NotValidated=No validado Save=Grabar SaveAs=Grabar como TestConnection=Probar la conexión @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Sin funcionalidades de desconexión con el modo de a Connection=Conexión Setup=Configuración Alert=Alerta +MenuWarnings=Alertas Previous=Anterior Next=Siguiente Cards=Fichas @@ -308,6 +310,7 @@ Copy=Copiar Paste=Pegar Default=Predeterminado DefaultValue=Valor por defecto +DefaultValues=Valores por defecto Price=Precio UnitPrice=Precio unitario UnitPriceHT=Precio base @@ -363,7 +366,8 @@ VATRate=Tasa IVA Average=Media Sum=Suma Delta=Diferencia -Module=Módulo +Module=Module/Application +Modules=Modules/Applications Option=Opción List=Listado FullList=Listado completo @@ -387,7 +391,7 @@ ActionRunningNotStarted=No empezado ActionRunningShort=En progreso ActionDoneShort=Terminado ActionUncomplete=Incompleto -CompanyFoundation=Empresa o institución +CompanyFoundation=Empresa/Institución ContactsForCompany=Contactos de este tercero ContactsAddressesForCompany=Contactos/direcciones de este tercero AddressesForCompany=Direcciones de este tercero @@ -407,6 +411,7 @@ TotalDuration=Duración total Summary=Resumen DolibarrStateBoard=Estadísticas DolibarrWorkBoard=Indicadores de trabajo +NoOpenedElementToProcess=Sin elementos a procesar Available=Disponible NotYetAvailable=Aún no disponible NotAvailable=No disponible @@ -434,7 +439,7 @@ Reportings=Informes Draft=Borrador Drafts=Borradores Validated=Validado -Opened=Abierto +Opened=Activo New=Nuevo Discount=Descuento Unknown=Desconocido @@ -453,6 +458,7 @@ NextStep=Siguiente paso Datas=Datos None=Nada NoneF=Ninguna +NoneOrSeveral=Ninguno o varios Late=Retraso LateDesc=El retraso que indica si un registro lleva retraso o no depende de la configuración. Pregunte a su administrador para cambiar el retraso desde el menú Inicio - Configuración - Alertas. Photo=Foto @@ -606,7 +612,8 @@ PartialWoman=Parcial TotalWoman=Total NeverReceived=Nunca recibido Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar estos valores en el menú configuración->diccionarios +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Puede establecer el valor predeterminado que se utiliza cuando se crea un nuevo registro en la configuración del módulo Color=Color Documents=Documentos @@ -642,11 +649,12 @@ FreeLineOfType=Entrada libre del tipo CloneMainAttributes=Clonar el objeto con estos atributos principales PDFMerge=Fusión PDF Merge=Fusión +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Mostrar página de impresión de la zona central MenuManager=Gestor de menú WarningYouAreInMaintenanceMode=Atención, está en modo mantenimiento, así que solamente el login %s está autorizado para utilizar la aplicación en este momento. CoreErrorTitle=Error del sistema -CoreErrorMessage=Lo sentimos, pero ha ocurrido un error. Póngase en contacto con el administrador del sistema para comprobar los registros o desactivar dolibarr_main_prod $ = 1 para obtener más información. +CoreErrorMessage=Lo sentimos, pero ha ocurrido un error. Póngase en contacto con el administrador del sistema para comprobar los registros o desactive $dolibarr_main_prod=1 para obtener más información. CreditCard=Tarjeta de crédito FieldsWithAreMandatory=Los campos marcados por un %s son obligatorios FieldsWithIsForPublic=Los campos marcados por %s se mostrarán en la lista pública de miembros. Si no desea verlos, desactive la casilla "público". @@ -708,6 +716,7 @@ from=de toward=hacia Access=Acceso SelectAction=Seleccione acción +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C para copiar al portapapeles SaveUploadedFileWithMask=Guardar el archivo con el nombre "%s" (sino "%s") OriginFileName=Nombre del archivo origen @@ -718,7 +727,7 @@ ViewPrivateNote=Ver notas XMoreLines=%s línea(s) ocultas PublicUrl=URL pública AddBox=Añadir caja -SelectElementAndClickRefresh=Seleccione un elemento y haga clic en Refrescar +SelectElementAndClick=Select an element and click %s PrintFile=Imprimir Archivo %s ShowTransaction=Mostrar registro en la cuenta bancaria GoIntoSetupToChangeLogo=Vaya a Inicio->Configuración->Empresa/Institución para cambiar el logo o vaya a Inicio->Configuración->Entorno para ocultarlo @@ -734,8 +743,8 @@ Hello=Hola Sincerely=Atentamente DeleteLine=Eliminación de línea ConfirmDeleteLine=¿Está seguro de querer eliminar esta línea? -NoPDFAvailableForDocGenAmongChecked=Sin PDF disponibles para la generación de documentos entre los registros seleccionados -TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a un listado de %s registros. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=Sin registros seleccionados MassFilesArea=Área de archivos generados por acciones masivas ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas @@ -755,11 +764,20 @@ Calendar=Calendario GroupBy=Agrupado por... ViewFlatList=Ver lista plana RemoveString=Eliminar cadena '%s' -SomeTranslationAreUncomplete=Algunos idiomas pueden estar parcialmente traducidos o pueden contener errores. Si detecta algunos, puede arreglar los archivos de idiomas registrándose en http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Enlace de descarga directa Download=Descargar ActualizeCurrency=Actualizar el tipo de cambio Fiscalyear=Año fiscal +ModuleBuilder=Módulo Builder +SetMultiCurrencyCode=Set currency +BulkActions=Acciones masivas +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Lunes Tuesday=Martes @@ -817,5 +835,3 @@ SearchIntoContracts=Contratos SearchIntoCustomerShipments=Envíos a clientes SearchIntoExpenseReports=Informes de gastos SearchIntoLeaves=Permisos - -BulkActions=Acciones masivas diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index 4005a5253aa..cd4ed4facc7 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Fecha de cumpleaños DateToBirth=Fecha de nacimiento BirthdayAlertOn=alerta aniversario activada BirthdayAlertOff=alerta aniversario desactivada +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Contacto añadido a intervención Notify_FICHINTER_VALIDATE=Validación ficha intervención Notify_FICHINTER_SENTBYMAIL=Envío ficha de intervención por e-mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Esto es un e-mail de prueba(la palabra prueba debe PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nLe adjuntamos la factura __REF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=Buenos días, __CONTACTCIVNAME__ \n\n Nos ponemos en contacto con usted ya que la factura __REF__ parece no estar pagada.\n\n Ante cualquier duda, consúltenos y será atendido a la mayor brevedad posible.\n\n __PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nLe adjuntamos el presupuesto __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__ \n\nAquí encontrará la petición de presupuesto __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n __SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nLe adjuntamos el pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLe adjuntamos nuestro pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nLe adjuntamos la factura __REF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nLe adjuntamos el envío __SHIPPINGREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nLe adjuntamos la intervención __FICHINTERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr es un ERP/CRM para la gestión de negocios (profesionales o asociaciones), compuesto de módulos funcionales independientes y opcionales. Una demostración que incluya todos estos módulos no tiene sentido porque no utilizará todos los módulos. Además, tiene disponibles varios tipos de perfiles de demostración. ChooseYourDemoProfil=Elija el perfil de demostración que mejor se adapte a sus necesidades ... ChooseYourDemoProfilMore=... o construya su perfil
(modo de selección manual) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=El modo de autenticación es %s EnableGDLibraryDesc=Instale o active la libreria GD en su PHP para poder usar esta opción ProfIdShortDesc=Prof Id %s es una información dependiente del país del tercero.
Por ejemplo, para el país %s, és el código %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Estadísticas en número de unidades de producto/servicio -StatsByNumberOfEntities=Estadísticas en número de identidades referentes -NumberOfProposals=Número de presupuestos ac clientes en los últimos 12 meses -NumberOfCustomerOrders=Número de pedidos de clientes en los últimos 12 meses -NumberOfCustomerInvoices=Número de facturas a clientes en los últimos 12 meses -NumberOfSupplierProposals=Número de presupuestos de proveedores en los últimos 12 meses -NumberOfSupplierOrders=Número de facturas de proveedores en los últimos 12 meses -NumberOfSupplierInvoices=Número de facturas de proveedores en los últimos 12 meses -NumberOfUnitsProposals=Número de unidades en los presupuestos a clientes en los últimos 12 meses -NumberOfUnitsCustomerOrders=Número de unidades en los pedidos de clientes en los últimos 12 meses -NumberOfUnitsCustomerInvoices=Número de unidades en las facturas a clientes en los últimos 12 meses -NumberOfUnitsSupplierProposals=Número de unidades en los presupuestos de proveedores en los últimos 12 meses -NumberOfUnitsSupplierOrders=Número de unidades en las facturas de proveedores en los últimos 12 meses -NumberOfUnitsSupplierInvoices=Número de unidades en las facturas de proveedores en los últimos 12 meses +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=Se le ha asignado la intervención %s EMailTextInterventionValidated=Ficha intervención %s validada EMailTextInvoiceValidated=Factura %s validada diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index 801aab5eeb5..d6dc9fc5f4a 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Área Proyectos ProjectStatus=Estado del proyecto SharedProject=Proyecto compartido PrivateProject=Contactos proyecto +ProjectsImContactFor=Proyectos de los que soy contacto explícito +AllAllowedProjects=Todos los proyectos que puedo leer (míos + públicos) +AllProjects=Todos los proyectos MyProjectsDesc=Esta vista muestra aquellos proyectos en los que usted es un contacto afectado (cualquier tipo). ProjectsPublicDesc=Esta vista muestra todos los proyectos a los que usted tiene derecho a visualizar. TasksOnProjectsPublicDesc=Esta vista muestra todos los proyectos a los que tiene derecho a visualizar. @@ -23,6 +26,7 @@ TasksDesc=Esta vista muestra todos los proyectos y tareas (sus permisos de usuar AllTaskVisibleButEditIfYouAreAssigned=Todas las tareas de este proyecto son visibles, pero solo puede indicar tiempos en las tareas que tenga asignadas. Asignese tareas si desea indicar tiempos en ellas. OnlyYourTaskAreVisible=Sólo puede ver tareas que le son asignadas. Asignese tareas si no son visibles y desea indicar tiempos en ellas. ImportDatasetTasks=Tareas de proyectos +ProjectCategories=Etiquetas/categorías de proyectos NewProject=Nuevo proyecto AddProject=Crear proyecto DeleteAProject=Eliminar un proyecto @@ -31,12 +35,13 @@ ConfirmDeleteAProject=¿Está seguro de querer eliminar este proyecto? ConfirmDeleteATask=¿Está usted seguro de querer eliminar esta tarea? OpenedProjects=Proyectos abiertos OpenedTasks=Tareas abiertas -OpportunitiesStatusForOpenedProjects=Importe oportunidades de proyectos abiertos por estado +OpportunitiesStatusForOpenedProjects=Importe oportunidades de proyectos por estado OpportunitiesStatusForProjects=Importe oportunidades de proyectos por estado ShowProject=Ver proyecto SetProject=Definir proyecto NoProject=Ningún proyecto definido NbOfProjects=Nº de proyectos +NbOfTasks=Nb of tasks TimeSpent=Tiempo dedicado TimeSpentByYou=Tiempo dedicado por usted TimeSpentByUser=Tiempo dedicado por usuario @@ -49,7 +54,7 @@ TaskTimeNote=Nota TaskTimeDate=Fecha TasksOnOpenedProject=Tareas en proyectos abiertos WorkloadNotDefined=Carga de trabajo no definida -NewTimeSpent=Nuevo tiempo dedicado +NewTimeSpent=Tiempos dedicados MyTimeSpent=Mi tiempo dedicado Tasks=Tareas Task=Tarea @@ -59,6 +64,7 @@ TaskDescription=Descripción tarea NewTask=Nueva tarea AddTask=Crear tarea AddTimeSpent=Añadir tiempo dedicado +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Actividad Activities=Tareas/actividades MyActivities=Mis tareas/actividades @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Listado de facturas predefinidas asociad ListSupplierOrdersAssociatedProject=Listado de pedidos a proveedor asociados al proyecto ListSupplierInvoicesAssociatedProject=Listado de facturas de proveedores asociadas al proyecto ListContractAssociatedProject=Listado de contratos asociados al proyecto +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Listado de intervenciones asociadas al proyecto ListExpenseReportsAssociatedProject=Listado de informes de gastos asociados al proyecto ListDonationsAssociatedProject=Listado de donaciones asociadas al proyecto @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Está seguro de querer reabrir este proyecto? ProjectContact=Contactos proyecto ActionsOnProject=Eventos del proyecto YouAreNotContactOfProject=Usted no es contacto de este proyecto privado +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Eliminación de tiempo dedicado ConfirmDeleteATimeSpent=¿Está seguro de querer eliminar este tiempo dedicado? DoNotShowMyTasksOnly=Ver también tareas no asignadas a mí @@ -110,7 +118,7 @@ TaskRessourceLinks=Recursos ProjectsDedicatedToThisThirdParty=Proyectos dedicados a este tercero NoTasks=Ninguna tarea para este proyecto LinkedToAnotherCompany=Enlazado a otra empresa -TaskIsNotAffectedToYou=Tarea no asignada a usted +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=No se ha establecido el tiempo consumido ThisWillAlsoRemoveTasks=Esta operación también destruirá las tareas del proyecto (%s tareas) y sus tiempos dedicados. IfNeedToUseOhterObjectKeepEmpty=Si los elementos (factura, pedido, ...) pertenecen a un tercero que no és el seleccionado, debiendo estos estar ligados al proyecto a crear, déjelo vacío para permitir el proyecto a multi-terceros. @@ -161,25 +169,30 @@ FirstAddRessourceToAllocateTime=Asignar un usuario a la tarea para asignar tiemp InputPerDay=Entrada por día InputPerWeek=Entrada por semana InputPerAction=Entrada por acción -TimeAlreadyRecorded=Tiempo dedicado ya registrado para esta tarea/día y usuario %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Proyectos con este usuario como contacto TasksWithThisUserAsContact=Tareas asignadas a este usuario ResourceNotAssignedToProject=No asignado al proyecto ResourceNotAssignedToTheTask=No asignado a la tarea +TasksAssignedTo=Tareas asignadas a AssignTaskToMe=Asignarme tarea +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Asignar ProjectOverview=Resumen ManageTasks=Usar proyectos para seguir tareas y tiempos ManageOpportunitiesStatus=Usar proyectos para seguir leads/oportunidades ProjectNbProjectByMonth=Nº de proyectos creados por mes +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Importe de oportunidades por mes ProjectWeightedOppAmountOfProjectsByMonth=Importe medio oportinidades por mes ProjectOpenedProjectByOppStatus=Proyectos/oportunidades abiertos por estado oportunidad ProjectsStatistics=Estadísticas de proyectos/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Tarea asignada. Debería poder introducir tiempos en esta tarea. IdTaskTime=Id YouCanCompleteRef=Si desea completar la referencia con alguna información (para usarlo como filtros de búsqueda), se recomienda añadir un caracter - para separarlo, la numeración automática seguirá funcionando correctamente para los próximos proyectos. Por ejemplo %s-ABC. También puede preferir añadir claves de búsqueda en la etiqueta. Pero la mejor práctica puede ser añadir un campo dedicado, también llamados atributos adicionales. -OpenedProjectsByThirdparties=Proyectos abiertos de terceros +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Solamente oportunidades OpenedOpportunitiesShort=Oportunidades abiertas NotAnOpportunityShort=No es una oportunidad diff --git a/htdocs/langs/es_MX/accountancy.lang b/htdocs/langs/es_MX/accountancy.lang index 3978dde395b..ccf0f375279 100644 --- a/htdocs/langs/es_MX/accountancy.lang +++ b/htdocs/langs/es_MX/accountancy.lang @@ -1,245 +1,39 @@ -# Dolibarr language file - en_US - Accounting Expert +# Dolibarr language file - Source file is en_US - accountancy ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columnas para el archivo de exportación ACCOUNTING_EXPORT_DATE=Formato de fecha para el archivo de exportación ACCOUNTING_EXPORT_PIECE=Exportar el número de pieza ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportación con cuenta global -ACCOUNTING_EXPORT_LABEL=Exportar etiqueta -ACCOUNTING_EXPORT_AMOUNT=Exportar importe ACCOUNTING_EXPORT_DEVISE=Exportar moneda -Selectformat=Seleccione el formato del archivo -ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique el prefijo del nombre de archivo -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=Configuración del módulo contable -Journalization=Journalization -Journaux=Diarios -JournalFinancial=Diarios financieros -BackToChartofaccounts=Volver al plan contable -Chartofaccounts=Chart of accounts -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information - -AccountancyArea=Accountancy area -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. - -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. - -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. - -MenuAccountancy=Accountancy -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load -Addanaccount=Añadir una cuenta contable -AccountAccounting=Cuenta contable -AccountAccountingShort=Cuenta -AccountAccountingSuggest=Cuenta contable sugerida -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -ProductsBinding=Products accounts +Selectchartofaccounts=Seleccionar gráfico activo de cuentas Ventilation=Agregando a cuentas CustomersVentilation=Agregar factura de cliente SuppliersVentilation=Agregar factura de proveedor -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Libro mayor -AccountBalance=Account balance - +CreateMvts=Crear nueva transaccion +UpdateMvts=Modificación de una transacción CAHTF=Total de compra al proveedor antes de impuestos -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account - - -Ventilate=Bind -LineId=Id line +IntoAccount=Unir partida con la cuenta contable +Ventilate=Agregar Processing=Procesando -EndProcessing=Process terminated. +EndProcessing=Proceso terminado SelectedLines=Partidas seleccionadas Lineofinvoice=Partida de factura -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account - -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements - -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account - -ACCOUNTING_SELL_JOURNAL=Diario de ventas -ACCOUNTING_PURCHASE_JOURNAL=Diario de compras +VentilatedinAccount=Agregado exitosamente a la cuenta contable +NotVentilatedinAccount=No añadido a la cuenta contable ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario de varios ACCOUNTING_EXPENSEREPORT_JOURNAL=Diario de reporte de gastos ACCOUNTING_SOCIAL_JOURNAL=Diario Social - -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations - -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) - -Doctype=Tipo de documento -Docdate=Fecha -Docref=Referencia -Code_tiers=Tercero +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Cuenta contable de transferencia +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cuenta contable por defecto para productos comprados (si no ha sido definida en la hoja producto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cuenta contable por defecto para los productos vendidos (si no ha sido definida en la hoja \nproducto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Cuenta contable por defecto para los servicios comprados (si no ha sido definida en la hoja \nservicio) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Cuenta contable por defecto para los servicios vendidos (si no ha sido definida en la hoja servicio) Labelcompte=Descripción de la cuenta Sens=Significado -Codejournal=Diario -NumPiece=Piece number -TransactionNumShort=Num. transaction -AccountingCategory=Accounting category -GroupByAccountAccounting=Group by accounting account -NotMatch=Not Set -DeleteMvt=Delete general ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger -FinanceJournal=Diario financiero -ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Diario financiero incluyendo todos los tipos de pagos por cuenta bancaria -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined -CustomerInvoicePayment=Pago de factura de cliente -ThirdPartyAccount=Cuenta de tercero -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements ErrorDebitCredit=Débito y Crédito no pueden tener un valor al mismo tiempo - -ReportThirdParty=List third party account -DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts -ListAccounts=Listado de cuentas contables - Pcgtype=Tipo de cuenta -Pcgsubtype=Subtipo de cuenta - TotalVente=Facturación total antes de impuestos TotalMarge=Margen de ventas total - -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: -Vide=- -DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account DescVentilDoneSupplier=Consulte aquí la lista de partidas de las facturas a proveedores y sus cuentas contables -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account - -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic binding done - ErrorAccountancyCodeIsAlreadyUse=Error, no es posible eliminar ésta cuenta contable porque está siendo usada MvtNotCorrectlyBalanced=Movimiento balanceado incorrectamente. Crédito = %s. Débito = %s -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding - -## Admin -ApplyMassCategories=Apply mass categories -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed - -## Export -Exports=Exportaciones -Export=Exportar -Modelcsv=Modelo de exportación -OptionsDeactivatedForThisExportModel=Las opciones están desactivadas para este modelo de exportación -Selectmodelcsv=Seleccione un modelo de exportación -Modelcsv_normal=Exportación clásica -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité -Modelcsv_COALA=Export towards Sage Coala -Modelcsv_bob50=Export towards Sage BOB 50 -Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution -Modelcsv_quadratus=Export towards Quadratus QuadraCompta -Modelcsv_ebp=Export towards EBP -Modelcsv_cogilog=Export towards Cogilog -ChartofaccountsId=Chart of accounts Id - -## Tools - Init accounting account on product / service -InitAccountancy=Init accountancy -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -Options=Options -OptionModeProductSell=Mode sales -OptionModeProductBuy=Mode purchases -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -CleanFixHistory=Remove accountancy code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year - -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account - -## Dictionary -Range=Range of accounting account -Calculated=Calculated -Formula=Formula - -## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -ExportNotSupported=The export format setuped is not supported into this page -BookeppingLineAlreayExists=Lines already existing into bookeeping - -Binded=Lines bound -ToBind=Lines to bind - -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index 1baa373fb4a..e905c3490f7 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -1,36 +1,11 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Fundación -Version=Versión VersionProgram=Versión del programa -VersionLastInstall=Versión de la instalación inicial -VersionLastUpgrade=Versión de la última actualización -VersionExperimental=Experimental -VersionDevelopment=Desarrollo -VersionUnknown=Desconocida -VersionRecommanded=Recomendada -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found SessionId=ID de sesión SessionSaveHandler=Modalidad para guardar sesiones SessionSavePath=Ubicación de la sesión guardada PurgeSessions=Depuración de sesiones -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Bloquear nuevas conexiones +ConfirmPurgeSessions=¿Realmente desea depurar todas las sesiónes? Esto desconectara a todos los usuarios (excepto usted). +NoSessionListWithThisHandler=El controlador configurado para guardar sesion en tu PHP no permite listar todas las sesiones ejecutandose. ConfirmLockNewSessions=¿Seguro que deseas restringir cualquier nueva conexión Dolibarr? Solamente el usuario %s será capaz de conectarse después de esto. UnlockNewSessions=Remover bloqueo de conexión YourSession=Tu sesión @@ -42,1624 +17,60 @@ DBSortingCharset=Charset de la base para ordenar información WarningModuleNotActive=El módulo %s debe estar habilitado WarningOnlyPermissionOfActivatedModules=Sólo los permisos relacionados a los módulos activados son mostrados aquí. Puedes activar otros módulos en la página Inicio->Configuración->Módulos DolibarrSetup=Instalación o actualización de Dolibarr -InternalUser=Usuario interno -ExternalUser=Usuario externo -InternalUsers=Usuarios internos -ExternalUsers=Usuarios externos -GUISetup=Entorno SetupArea=Área de configuración FormToTestFileUploadForm=Formulario para probar la carga de archivos (según la configuración) IfModuleEnabled=Nota: sí es efectivo sólo si el módulo %s está activado RemoveLock=Eliminar archivo %s si existe para permitir el uso de la herramienta para actualizar -RestoreLock=Restablece el archivo %s, con permisos de sólo escritura, para deshabilitar cualquier uso de la herramienta para actualizar. +RestoreLock=Restaurar archivo %s, con permisos de sólo lectura, para deshabilitar cualquier uso de la herramienta de actualizar. SecuritySetup=Configuración de seguridad -SecurityFilesDesc=Define here options related to security about uploading files. ErrorModuleRequirePHPVersion=Error, éste módulo requiere PHP versión %s o superior ErrorModuleRequireDolibarrVersion=Error, éste módulo requiere Dolibarr versión %s o superior ErrorDecimalLargerThanAreForbidden=Error, una precisión superior a %s no es soportada. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries ErrorReservedTypeSystemSystemAuto=Los valores 'system' y 'systemauto' para el tipo están reservados. Puedes usar 'user' como valor para añadir tu propio registro -ErrorCodeCantContainZero=El código no puede contener el valor 0 DisableJavascript=Deshabilita las funciones de JavaScript y Ajax (Recomendado para personas visualmente débiles o navegadores de texto) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) NumberOfKeyToSearch=N° de caracteres para activar la búsqueda: %s NotAvailableWhenAjaxDisabled=No disponible cuando Ajax está desactivado -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party JavascriptDisabled=JavaScript desactivado UsePreviewTabs=Utilizar pestañas de vista previa ShowPreview=Mostrar previsualización -PreviewNotAvailable=Vista previa no disponible ThemeCurrentlyActive=Tema activo CurrentTimeZone=Zona horaria PHP (servidor) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). Space=Espacio -Table=Tabla -Fields=Campos -Index=Índice -Mask=Máscara NextValue=Valor siguiente NextValueForInvoices=Valor siguiente (facturas) NextValueForCreditNotes=Valor siguiente (notas de crédito) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Nota: tu PHP limita el tamaño de cada carga de archivos a %s %s, sea cual sea el valor de este parámetro NoMaxSizeByPHPLimit=Nota: No hay límite establecido en la configuración de PHP MaxSizeForUploadedFiles=El tamaño máximo para los archivos subidos (0 para no permitir ninguna carga) UseCaptchaCode=Utilizar el código gráfico (CAPTCHA) en la página de inicio de sesión -AntiVirusCommand= Ruta completa del comando del antivirus -AntiVirusCommandExample= Ejemplo para ClamWin: c:\\ Progra~1\\ClamWin\\bin\\clamscan.exe
Ejemplo para ClamAV: /usr/bin/clamscan -AntiVirusParam= Más parámetros de línea de comandos -AntiVirusParamExample= Ejemplo para ClamWin: --database="C:\\Archivos de programa (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position +AntiVirusCommand=Ruta completa del comando del antivirus +AntiVirusCommandExample=Ejemplo para ClamWin: c:\\ Progra~1\\ClamWin\\bin\\clamscan.exe
Ejemplo para ClamAV: /usr/bin/clamscan +AntiVirusParam=Más parámetros de línea de comandos +AntiVirusParamExample=Ejemplo para ClamWin: --database="C:\\Archivos de programa (x86)\\ClamWin\\lib" +ComptaSetup=Establecer modulo de Contabilidad +UserSetup=Establecer usuario Administrador +MenuLimits=Limites y exactitud +MenuIdParent=ID del menu padre +DetailMenuIdParent=ID de menú padre (vacante para un menú principal) +DetailPosition=Clasificar cantidad para definir posición del menú AllMenus=Todo -NotConfigured=Module not configured -Active=Active SetupShort=Configuración -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order +OtherSetup=Otra configuración +CurrentValueSeparatorThousand=Separador millar +LanguageBrowserParameter=Parámetro %s +LocalisationDolibarrParameters=Parametros de localización +ClientTZ=Zona Horaria cliente (usuario) +OSTZ=Servidor OS Zona Horaria +PHPTZ=Servidor PHP Zona Horaria +DaylingSavingTime=Hora de verano +CurrentSessionTimeOut=Sesión actual pausada Position=Puesto -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... URL=Vínculo -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Otro -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Fecha y hora -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Teléfono -ExtrafieldPrice = Precio -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Contraseña -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Terceros -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Contabilidad -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Proveedores -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management Module50Name=productos -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Intervenciones -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Miembros -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management Module770Name=Reporte de gastos -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration Module1400Name=Contabilidad -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Recursos -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level DictionaryCanton=Estado/Provincia -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Empleados -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Tasa -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active Upgrade=Actualizar -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Servidor -Database=Database -DatabaseServer=Database host -DatabaseName=Nombre de la base de datos -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Servidor -DriverType=Tipo de driver -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Empresa/Fundación -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities CompanyName=Nombre -CompanyAddress=Dirección -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=País -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Parámetros globales -LDAPUsersSynchro=Usuarios -LDAPGroupsSynchro=Grupos -LDAPContactsSynchro=Contactos -LDAPMembersSynchro=Miembros -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Nombre -LDAPFieldNameExample=Example : sn LDAPFieldFirstName=Nombre(s) -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=País -LDAPFieldDescription=Descripción -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Empresa -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang index bd34265695a..cbb94b1a6f4 100644 --- a/htdocs/langs/es_MX/companies.lang +++ b/htdocs/langs/es_MX/companies.lang @@ -15,7 +15,6 @@ AliasNameShort=Nombre simple CountryIsInEEC=El país está dentro de la Comunidad Económica Europea ThirdPartyName=Nombre de tercero ThirdPartyCustomersWithIdProf12=Clientes con %s o %s -Company/Fundation=Empresa/Fundación ParentCompany=Empresa matriz ReportByCustomers=Reporte por clientes ReportByQuarter=Reporte por tasa diff --git a/htdocs/langs/es_MX/compta.lang b/htdocs/langs/es_MX/compta.lang index 9c1cd218356..66056ef65fc 100644 --- a/htdocs/langs/es_MX/compta.lang +++ b/htdocs/langs/es_MX/compta.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - compta Param=Configuración +ToPay=To pay PaymentSocialContribution=Pago de impuesto social/fiscal ByThirdParties=Por terceros diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang index 5394b514e8d..8b4d41143de 100644 --- a/htdocs/langs/es_MX/main.lang +++ b/htdocs/langs/es_MX/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,37 +19,20 @@ FormatDateHourShort=%I:%M %p %d/%m/%Y FormatDateHourSecShort=%I:%M:%S %p %d/%m/%Y FormatDateHourTextShort=%I:%M %p, %d %b %Y FormatDateHourText=%I:%M %p, %d %B %Y -DatabaseConnection=Conexión a la base de datos -NoTemplateDefined=No template defined for this email type AvailableVariables=Variables de sustitución disponibles -NoTranslation=Sin traducción NoRecordFound=Ningún registro fue encontrado -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data NoError=No hay error -Error=Error -Errors=Errores -ErrorFieldRequired=El campo '%s' es obligatorio ErrorFieldFormat=El campo '%s' contiene un valor incorrecto -ErrorFileDoesNotExists=El archivo %s no existe -ErrorFailedToOpenFile=Imposible abrir el archivo %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s ErrorConstantNotDefined=El parámetro %s no ha sido definido -ErrorUnknown=Error desconocido -ErrorSQL=Error de SQL ErrorLogoFileNotFound=El archivo logo '%s' no fue encontrado -ErrorGoToGlobalSetup=Vaya a la configuración de 'Empresa/Fundación' para solucionar esto ErrorGoToModuleSetup=Vaya a la configuración de Módulo para solucionar esto ErrorFailedToSendMail=Falló el envío del correo electrónico (remitente=%s, destinatario=%s) ErrorFileNotUploaded=El archivo no fue transferido. Revise que el tamaño no exceda el máximo permitido, que haya espacio disponible suficiente en disco y que no exista algún archivo con el mismo nombre en el mismo directorio. -ErrorInternalErrorDetected=Error detectado ErrorWrongHostParameter=Parámetro de servidor inválido ErrorYourCountryIsNotDefined=Tu país no está definido. Corrígelo en Inicio-Configuración-Empresa/institución-Editar. ErrorRecordIsUsedByChild=Falló la eliminación de este registro. Este registro está siendo utilizado por al menos un registro hijo ErrorWrongValue=Valor erróneo ErrorWrongValueForParameterX=Valor erróneo para el parámetro %s -ErrorNoRequestInError=Ninguna petición en error ErrorServiceUnavailableTryLater=El servicio no está disponible por el momento. Intente de nuevo más tarde. ErrorDuplicateField=Valor duplicado en un campo único ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones revertidas. @@ -61,524 +40,156 @@ ErrorConfigParameterNotDefined=El parámetro %s no está definido dentro ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar al usuario %s en la base de datos de Dolibarr ErrorNoVATRateDefinedForSellerCountry=Error, no se ha definido tasa para el IVA del país '%s'. ErrorNoSocialContributionForSellerCountry=Error, no hay tipos de impuestos sociales/fiscales definidos para el país '%s'. -ErrorFailedToSaveFile=Error, el registro del archivo falló. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page NotAuthorized=Usted no está autorizado para realizar ésta acción. SetDate=Ajustar fecha -SelectDate=Seleccione una fecha -SeeAlso=Ver también %s SeeHere=Mira aquí -Apply=Apply BackgroundColorByDefault=Color de fondo por defecto -FileRenamed=The file was successfully renamed -FileUploaded=El archivo se ha subido correctamente -FileGenerated=The file was successfully generated FileWasNotUploaded=Un archivo fue seleccionado para adjuntar, sin embargo, no ha sido cargado aún. De clic en "Adjuntar archivo" para éllo. NbOfEntries=Número de entradas -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Consultar la ayuda -RecordSaved=Registro guardado -RecordDeleted=Registro eliminado LevelOfFeature=Nivel de características NotDefined=No definido -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrador -Undefined=No definido -PasswordForgotten=Password forgotten? -SeeAbove=Mencionado anteriormente HomeArea=Área de Inicio -LastConnexion=Latest connection PreviousConnexion=Conexión Anterior -PreviousValue=Previous value ConnectedOnMultiCompany=Conectado a la entidad -ConnectedSince=Conectado desde -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL DatabaseTypeManager=Administrador de tipo de base de datos -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr ha detectado un error técnico -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Más información -TechnicalInformation=Información técnica TechnicalID=ID Técnico -NotePublic=Nota (pública) -NotePrivate=Nota (privada) PrecisionUnitIsLimitedToXDecimals=Dolibarr fue instalado para limitar la precisión de los precios unitarios a%s decimales. -DoTest=Probar -ToFilter=Filtrar -NoFilter=No filter WarningYouHaveAtLeastOneTaskLate=Advertencia, tiene al menos un elemento que ha superado la fecha de tolerancia. -yes=sí -Yes=Sí -no=no -No=No -All=Todo -Home=Inicio -Help=Ayuda -OnlineHelp=Ayuda en línea -PageWiki=Página Wiki -MediaBrowser=Media browser -Always=Siempre -Never=Nunca Under=debajo -Period=Periodo PeriodEndDate=Fecha final para ell periódo -Activate=Activar -Activated=Activado -Closed=Cerrado -Closed2=Cerrado -NotClosed=Not closed Enabled=Habilitado Deprecated=Depreciado -Disable=Desactivar Disabled=Deshabilitado -Add=Añadir AddLink=Añadir vínculo RemoveLink=Remover enlace -AddToDraft=Add to draft Update=Actualizar -Close=Cerrar -CloseBox=Remove widget from your dashboard -Confirm=Confirmar -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Eliminar -Remove=Retirar -Resiliate=Terminate Cancel=Cancelar -Modify=Modificar -Edit=Editar -Validate=Validar ValidateAndApprove=Validar y aprobar -ToValidate=A validar Save=Guardar SaveAs=Guardar como TestConnection=Probar conexión ToClone=Clonar ConfirmClone=Elige los datos que deseas clonar: NoCloneOptionsSpecified=No se definió información a clonar. -Of=de -Go=Ir Run=Ejecutar -CopyOf=Copia de -Show=Ver -Hide=Hide ShowCardHere=Ver la ficha -Search=Buscar -SearchOf=Búsqueda de -Valid=Validar -Approve=Aprobar -Disapprove=Desaprobar -ReOpen=Reabrir -Upload=Enviar archivo ToLink=Vínculo -Select=Seleccionar -Choose=Elegir -Resize=Redimensionar -Recenter=Encuadrar -Author=Autor -User=Usuario -Users=Usuarios -Group=Grupo -Groups=Grupos NoUserGroupDefined=Ningún grupo definido por el usuario -Password=Contraseña -PasswordRetype=Repetir contraseña NoteSomeFeaturesAreDisabled=Atención, muchas funciones/módulos están deshabilitadas en esta demostración. -Name=Nombre -Person=Persona -Parameter=Parámetro -Parameters=Parámetros -Value=Valor PersonalValue=Valor personal -NewValue=Nuevo valor -CurrentValue=Valor actual -Code=Código -Type=Tipo -Language=Idioma MultiLanguage=Multi-idioma -Note=Nota -Title=Título -Label=Etiqueta -RefOrLabel=Ref. o etiqueta -Info=Log -Family=Familia -Description=Descripción -Designation=Descripción -Model=Doc template -DefaultModel=Default doc template Action=Evento -About=Acerca de -Number=Número -NumberByMonth=Número por mes AmountByMonth=Cantidad por mes -Numero=Número -Limit=Límite -Limits=Límites -Logout=Desconexión -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Conexión -Setup=Configuración -Alert=Alerta -Previous=Anterior -Next=Siguiente -Cards=Fichas -Card=Ficha -Now=Ahora -HourStart=Hora de inicio -Date=Fecha -DateAndHour=Fecha y hora -DateToday=Today's date -DateReference=Reference date -DateStart=Fecha de inicio DateEnd=Fecha de finalización -DateCreation=Fecha de creación DateCreationShort=Fecha de creación -DateModification=Fecha de modificación DateModificationShort=Fecha Modif. -DateLastModification=Latest modification date -DateValidation=Fecha de validación -DateClosing=Fecha de cierre -DateDue=Fecha de vencimiento -DateValue=Fecha valor -DateValueShort=Fecha valor DateOperation=Fecha de operación DateOperationShort=Fecha Op. -DateLimit=Fecha límite -DateRequest=Fecha consulta -DateProcess=Fecha proceso DateBuild=Fecha de generación del informe DatePayment=Fecha de pago -DateApprove=Fecha de aprobación -DateApprove2=Fecha de aprobación (segunda aprobación) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=año -DurationMonth=mes -DurationWeek=semana -DurationDay=día -DurationYears=años -DurationMonths=meses -DurationWeeks=semanas -DurationDays=días -Year=Año -Month=Mes -Week=Semana -WeekShort=Semana -Day=Día -Hour=Hora -Minute=Minuto -Second=Segundo -Years=Años -Months=Meses -Days=Días -days=días -Hours=Horas -Minutes=Minutos -Seconds=Segundos -Weeks=Semanas -Today=Hoy -Yesterday=Ayer -Tomorrow=Mañana -Morning=Mañana -Afternoon=Tarde -Quadri=Trimestre -MonthOfDay=Mes del día HourShort=Hr -MinuteShort=min Rate=Tasa -CurrencyRate=Currency conversion rate UseLocalTax=Incluir impuesto -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cortar -Copy=Copiar -Paste=Pegar -Default=Predeterminado DefaultValue=Valor predeterminado -Price=Precio -UnitPrice=Precio unitario -UnitPriceHT=Precio base -UnitPriceTTC=Precio unitario total -PriceU=P.U. -PriceUHT=P.U. -PriceUHTCurrency=U.P (currency) PriceUTTC=P.U. (IVA incl.) -Amount=Importe AmountInvoice=Importe de la factura AmountPayment=Importe de pago -AmountHTShort=Base imp. -AmountTTCShort=Importe -AmountHT=Base imponible -AmountTTC=Importe total -AmountVAT=Importe IVA -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency AmountLT1=Importe impuestos 2 AmountLT2=Importe impuestos 3 -AmountLT1ES=Importe RE -AmountLT2ES=Importe IRPF -AmountTotal=Importe total AmountAverage=Importe promedio -PriceQtyMinHT=Precio cantidad min. total -Percentage=Porcentaje -Total=Total -SubTotal=Subtotal -TotalHTShort=Importe -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total -TotalHT=Base imponible TotalHTforthispage=Total (neto de impuestos) para esta página -Totalforthispage=Total for this page -TotalTTC=Total -TotalTTCToYourCredit=Total a crédito -TotalVAT=Total IVA TotalLT1=Total impuesto 2 TotalLT2=Total impuesto 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Sin IVA TTC=IVA Incluido -VAT=IVA VATs=Impuestos de ventas -LT1ES=RE -LT2ES=IRPF VATRate=Tasa de IVA Average=Promedio -Sum=Suma -Delta=Diferencia -Module=Módulo -Option=Opción List=Lista FullList=Lista completa -Statistics=Estadísticas -OtherStatistics=Otras estadísticas -Status=Estado -Favorite=Favorito -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. externa RefSupplier=Ref. Proveedor RefPayment=Ref. Pago CommercialProposalsShort=Propuestas comerciales -Comment=Comentario -Comments=Comentarios ActionsToDo=Eventos por realizar ActionsToDoShort=Por hacer ActionsDoneShort=Hecho ActionNotApplicable=No aplica ActionRunningNotStarted=Empezar -ActionRunningShort=In progress ActionDoneShort=Finalizado -ActionUncomplete=Incompleto -CompanyFoundation=Empresa/Fundación ContactsForCompany=Contactos para ste tercero ContactsAddressesForCompany=Contactos/Direcciones para este tercero AddressesForCompany=Direcciones para este tercero ActionsOnCompany=Eventos relacionados a este tercero ActionsOnMember=Eventos relacionados a éste miembro NActionsLate=%s tarde -RequestAlreadyDone=Solicitud ya registrada Filter=Filtrar FilterOnInto=Criterios de búsqueda '%s' en los campos %s RemoveFilter=Remover filtro ChartGenerated=Gráfico generado -ChartNotGenerated=Gráfico no generado GeneratedOn=Generado en %s -Generate=Generar -Duration=Duración -TotalDuration=Duración total -Summary=Resumen -DolibarrStateBoard=Estadísticas -DolibarrWorkBoard=Tablero de tareas de trabajo -Available=Disponible NotYetAvailable=No disponible aún -NotAvailable=No disponible -Categories=Etiquetas/Categorías Category=Tag/Categoría -By=Por -From=De -to=a -and=y -or=o -Other=Otro -Others=Otros -OtherInformations=Otras informaciones -Quantity=Cantidad -Qty=Cant. ChangedBy=Cambiado por -ApprovedBy=Aprobado por -ApprovedBy2=Aprobado por (segunda aprobación) -Approved=Aprobado -Refused=Rechazado -ReCalculate=Recalcular ResultKo=Fallo Reporting=Informes -Reportings=Informes -Draft=Borrador -Drafts=Borradores -Validated=Validado -Opened=Opened -New=Nuevo -Discount=Descuento -Unknown=Desconocido -General=General -Size=Tamaño -Received=Recibido -Paid=Pagado -Topic=Asunto +Opened=Abierta ByCompanies=Por terceros ByUsers=Por usuarios Links=Vínculos Link=Vínculo Rejects=Rechazos Preview=Previsualización -NextStep=Siguiente paso -Datas=Datos None=Ninguno NoneF=Ninguno Late=Tarde -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Imágen Photos=Imágenes AddPhoto=Añadir imágen -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? Login=Inicio de sesión CurrentLogin=Inicio de sesión actual -EnterLoginDetail=Enter login details -January=enero -February=febrero -March=marzo -April=abril May=Mayo -June=junio -July=julio -August=agosto -September=septiembre -October=octubre -November=noviembre December=diciembre -JanuaryMin=Ene -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Abr MayMin=Mayo -JuneMin=Jun -JulyMin=Jul -AugustMin=Ago -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dic -Month01=enero -Month02=febrero -Month03=marzo -Month04=abril Month05=Mayo -Month06=junio -Month07=julio -Month08=agosto -Month09=septiembre -Month10=octubre -Month11=noviembre -Month12=diciembre MonthShort01=Ene -MonthShort02=Feb -MonthShort03=Mar MonthShort04=Abr MonthShort05=Mayo -MonthShort06=Jun -MonthShort07=Jul MonthShort08=Ago -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov MonthShort12=Dic -AttachedFiles=Archivos y documentos adjuntos FileTransferComplete=Archivo fue subido exitosamente DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS -ReportName=Nombre del informe ReportPeriod=Período del informe -ReportDescription=Descripción -Report=Informe -Keyword=Keyword -Origin=Origin -Legend=Leyenda Fill=Llenar Reset=Reiniciar -File=Archivo -Files=Archivos NotAllowed=No permitido ReadPermissionNotAllowed=Permiso de lectura no permitido AmountInCurrency=Monto en moneda %s -Example=Ejemplo -Examples=Ejemplos NoExample=Ningún ejemplo FindBug=Reportar un bug -NbOfThirdParties=Número de terceros NbOfLines=Número de líneas -NbOfObjects=Número de objetos -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Cantidad total -DateFromTo=De %s a %s DateFrom=Desde %s -DateUntil=Hasta %s Check=Cheque Uncheck=Desmarcar -Internal=Interno -External=Externo Internals=Interno Externals=Externo Warning=Advertencia Warnings=Advertencias BuildDoc=Generar Doc Entity=Ambiente -Entities=Entidades CustomerPreview=Vista previa del cliente SupplierPreview=Vista previa de proveedores ShowCustomerPreview=Mostrar vista previa del cliente ShowSupplierPreview=Mostrar vista previa del proveedor -RefCustomer=Ref. cliente Currency=Moneda -InfoAdmin=Información para los administradores Undo=Deshacer -Redo=Rehacer -ExpandAll=Expandir todo UndoExpandAll=Deshacer ampliar -Reason=Razón FeatureNotYetSupported=Característica aún no soportada -CloseWindow=Cerrar ventana -Response=Respuesta -Priority=Prioridad SendByMail=Enviar por correo electrónico MailSentBy=Correo electrónico enviado por TextUsedInTheMessageBody=Cuerpo del correo electronico -SendAcknowledgementByMail=Send confirmation email EMail=Email NoEMail=Sin correo electrónico -Email=Email -NoMobilePhone=Sin teléfono móvil -Owner=Propietario FollowingConstantsWillBeSubstituted=Las siguientes constantes serán reemplazadas con el valor correspondiente. Refresh=Actualizar BackToList=Volver a la lista @@ -586,58 +197,23 @@ GoBack=Regresar CanBeModifiedIfOk=Puede ser modificado si es válido CanBeModifiedIfKo=Puede ser modificado si no es válido ValueIsValid=El valor es válido -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Registro modificado con éxito -RecordsModified=%s record modified -RecordsDeleted=%s record deleted AutomaticCode=Código automático FeatureDisabled=Característica deshabilitada -MoveBox=Move widget Offered=Presentado NotEnoughPermissions=Usted no tiene permiso para esta acción SessionName=Nombre de sesión -Method=Método Receive=Recibir -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Valor actual -PartialWoman=Parcial -TotalWoman=Total -NeverReceived=Nunca recibido -Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar los valores para esta lista desde el menú configuración - dictionario -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color Documents=Archivos vinculados -Documents2=Documentos UploadDisabled=Carga deshabilitada -MenuECM=Documentos -MenuAWStats=AWStats -MenuMembers=Miembros MenuAgendaGoogle=Agenda de Google ThisLimitIsDefinedInSetup=Límite de Dolibarr (Menú inicio-configuración-seguridad): %s Kb, Límite PHP: %s Kb -NoFileFound=No hay documentos guardados en este directorio -CurrentUserLanguage=Idioma actual -CurrentTheme=Tema actual CurrentMenuManager=Administrador de menú actual -Browser=Browser -Layout=Layout -Screen=Screen DisabledModules=Módulos deshabilitados -For=Para ForCustomer=Para el cliente -Signature=Firma -DateOfSignature=Date of signature HidePassword=Mostrar comando con la contraseña oculta UnHidePassword=Mostrar comando real mostrando la contraseña -Root=Raíz Informations=Informaciones -Page=Página -Notes=Notas -AddNewLine=Añadir nueva línea AddFile=Agregar archivo -FreeZone=Entrada libre FreeLineOfType=Entrada libre de tipo CloneMainAttributes=Clonar objeto con sus principales atributos PDFMerge=Unir PDF @@ -645,53 +221,21 @@ Merge=Unir PrintContentArea=Mostrar la página para imprimir el área de contenido principal MenuManager=Administrar menú WarningYouAreInMaintenanceMode=Advertencia, usted está en un modo de mantenimiento, solamente se permite el uso de la aplicación con el login %s -CoreErrorTitle=Error del sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Tarjeta de crédito FieldsWithAreMandatory=Los campos con %s son obligatorios FieldsWithIsForPublic=Los campos con %s se muestran en la lista pública de miembros. Si usted no desea esto, desmarque la casilla "público". AccordingToGeoIPDatabase=(de acuerdo con la conversión GeoIP) -Line=Línea -NotSupported=No soportado RequiredField=Campo requerido -Result=Resultado -ToTest=Probar ValidateBefore=La tarjeta debe ser validada antes de usar esta característica -Visibility=Visibilidad -Private=Privado Hidden=Oculto -Resources=Recursos Source=Fuente -Prefix=Prefijo Before=Antes de -After=Después -IPAddress=Dirección IP -Frequency=Frecuencia -IM=Mensajería instantánea -NewAttribute=Nuevo atributo AttributeCode=Código de atributo URLPhoto=URL de la foto/logotipo -SetLinkToAnotherThirdParty=Vincular a otro tercero -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Crear borrador SetToDraft=Regresar a borrador ClickToEdit=Haga clic para editar ObjectDeleted=Objeto %s suprimido ByCountry=Por país ByTown=Por municipio -ByDate=Por fecha -ByMonthYear=Por mes/año -ByYear=Por año -ByMonth=Por mes -ByDay=Por día BySalesRepresentative=Por representante de ventas LinkedToSpecificUsers=Vinculado a un usuario de contacto determinado NoResults=No hay resultados @@ -699,14 +243,7 @@ AdminTools=Herramientas de Administración SystemTools=Herramientas de sistema ModulesSystemTools=Módulos de herramientas Test=Probar -Element=Elemento NoPhotoYet=No hay fotos disponibles aún -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deducible -from=de -toward=hacia -Access=Acceso SelectAction=Seleccione la acción HelpCopyToClipboard=Utilice Ctrl + C para copiar al portapapeles SaveUploadedFileWithMask=Guarde el archivo en el servidor con el nombre "%s" (de lo contrario "%s") @@ -714,53 +251,16 @@ OriginFileName=Nombre original del archivo SetDemandReason=Seleccionar fuente SetBankAccount=Definir Cuenta Bancaria AccountCurrency=Moneda de la cuenta -ViewPrivateNote=Ver notas XMoreLines=%s línea(s) oculta(s) PublicUrl=URL Pública AddBox=Añade una caja -SelectElementAndClickRefresh=Seleccione un elemento y haga clic en Actualizar -PrintFile=Imprimir Archivo %s -ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Ve a Inicio - Configuración - Empresa para cambiar el logo o ve a Inicio - Configuración - Vista para ocultarlo. -Deny=Denegar Denied=Denegado ListOfTemplates=Lista de plantillas Gender=Género -Genderman=Hombre -Genderwoman=Mujer ViewList=Vista de la lista -Mandatory=Obligatorio -Hello=Hola Sincerely=Sinceramente DeleteLine=Borrar línea -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Exportar -Exports=Exportaciones -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendario -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day Monday=lunes Tuesday=martes Wednesday=miércoles @@ -782,40 +282,13 @@ Day4=jueves Day5=viernes Day6=sábado Day0=domingo -ShortMonday=L -ShortTuesday=M ShortWednesday=M ShortThursday=MJ -ShortFriday=V -ShortSaturday=S -ShortSunday=D SelectMailModel=Seleccionar plantilla de correo electrónico -SetRef=Establecer ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. Select2NotFound=No se encontró ningún resultado Select2Enter=Entrar -Select2MoreCharacter=or more character -Select2MoreCharacters=o más caracteres -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Cargando más resultados... -Select2SearchInProgress=Búsqueda en progreso... -SearchIntoThirdparties=Terceros -SearchIntoContacts=Contactos -SearchIntoMembers=Miembros -SearchIntoUsers=Usuarios -SearchIntoProductsOrServices=Productos o servicios -SearchIntoProjects=Proyectos -SearchIntoTasks=Tasks SearchIntoCustomerInvoices=Facturas de clientes -SearchIntoSupplierInvoices=Facturas de proveedores SearchIntoCustomerOrders=Pedidos de los clientes -SearchIntoSupplierOrders=Pedidos a proveedor SearchIntoCustomerProposals=Propuestas de clientes SearchIntoSupplierProposals=Propuestas de proveedores -SearchIntoInterventions=Intervenciones -SearchIntoContracts=Contratos -SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Reporte de gastos -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_MX/other.lang b/htdocs/langs/es_MX/other.lang index c444411ea1d..ac900b15595 100644 --- a/htdocs/langs/es_MX/other.lang +++ b/htdocs/langs/es_MX/other.lang @@ -1,3 +1,4 @@ # Dolibarr language file - Source file is en_US - other Tools=Herramientas +TMenuTools=Herramientas Notify_COMPANY_CREATE=Tercero creado diff --git a/htdocs/langs/es_PA/accountancy.lang b/htdocs/langs/es_PA/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_PA/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_PA/admin.lang b/htdocs/langs/es_PA/admin.lang index 9602601e241..059de87f623 100644 --- a/htdocs/langs/es_PA/admin.lang +++ b/htdocs/langs/es_PA/admin.lang @@ -1,1665 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +VersionUnknown=Desconocido +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_PA/main.lang b/htdocs/langs/es_PA/main.lang index 2fdcb824dd1..1602d6a7ffa 100644 --- a/htdocs/langs/es_PA/main.lang +++ b/htdocs/langs/es_PA/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,3 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_PE/accountancy.lang b/htdocs/langs/es_PE/accountancy.lang index adbb619ec03..863353289bc 100644 --- a/htdocs/langs/es_PE/accountancy.lang +++ b/htdocs/langs/es_PE/accountancy.lang @@ -13,7 +13,5 @@ Journaux=Revistas JournalFinancial=Revistas financieras BackToChartofaccounts=Retornar gráfico de cuentas Addanaccount=Agregar una cuenta contable -AccountingCategory=Accounting category +CreateMvts=Crear nueva transacción OptionsDeactivatedForThisExportModel=Para este modelo de exportación, las opciones están desactivadas -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_PE/admin.lang b/htdocs/langs/es_PE/admin.lang index 7b0c1db3052..a0de2107bec 100644 --- a/htdocs/langs/es_PE/admin.lang +++ b/htdocs/langs/es_PE/admin.lang @@ -1,1665 +1,14 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders Permission91=Consultar impuestos e IGV Permission92=Crear/modificar impuestos e IGV Permission93=Eliminar impuestos e IGV -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=Tasa de IGV (Impuesto sobre ventas en EEUU) -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list VATManagement=Gestión IGV -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. VATIsNotUsedDesc=El tipo de IGV propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) UnitPriceOfProduct=Precio unitario sin IGV de un producto -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup OptionVatMode=Opción de carga de IGV -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis OptionVatDefaultDesc=La carga del IGV es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre el pago por los servicios OptionVatDebitOptionDesc=La carga del IGV es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre la facturación de los servicios -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_PE/main.lang b/htdocs/langs/es_PE/main.lang index f40c071841a..6398e2fbb24 100644 --- a/htdocs/langs/es_PE/main.lang +++ b/htdocs/langs/es_PE/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,9 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) AmountVAT=Importe IGV -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit TotalVAT=Total IGV -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF HT=Sin IGV TTC=IGV incluido VAT=IGV -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF VATRate=Tasa IGV -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Exportar -Exports=Exportaciones -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_PY/accountancy.lang b/htdocs/langs/es_PY/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_PY/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_PY/admin.lang b/htdocs/langs/es_PY/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/es_PY/admin.lang +++ b/htdocs/langs/es_PY/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_PY/main.lang b/htdocs/langs/es_PY/main.lang index 2fdcb824dd1..1602d6a7ffa 100644 --- a/htdocs/langs/es_PY/main.lang +++ b/htdocs/langs/es_PY/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,3 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_VE/accountancy.lang b/htdocs/langs/es_VE/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/es_VE/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/es_VE/admin.lang b/htdocs/langs/es_VE/admin.lang index 7114cc23a9b..6079989953b 100644 --- a/htdocs/langs/es_VE/admin.lang +++ b/htdocs/langs/es_VE/admin.lang @@ -1,1665 +1,15 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Fundación -Version=Versión -VersionProgram=Versión programa -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Desarrollo -VersionUnknown=Desconocida -VersionRecommanded=Recomendada -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Archivos no encontrados -FilesUpdated=Archivos actualizados -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=ID sesión -SessionSaveHandler=Modalidad de salvaguardado de sesiones -SessionSavePath=Localización salvaguardado de sesiones -PurgeSessions=Purga de sesiones -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=El gestor de período de sesiones configurado en su PHP no enumera las sesiones en curso -LockNewSessions=Bloquear nuevas conexiones -ConfirmLockNewSessions=¿Está seguro de querer restringir el acceso a Dolibarr a su usuario? Solamente el login %s podrá conectarse si confirma. -UnlockNewSessions=Eliminar bloqueo de conexiones -YourSession=Su sesión -Sessions=Sesiones de usuarios -WebUserGroup=Servidor web usuario/grupo -NoSessionFound=Parece que su PHP no puede listar las sesiones activas. El directorio utilizado para el guardado de sesiones (%s) puede estar protegido (por ejemplo, por los permisos del sistema operativo o por la directiva open_basedir de su PHP). -DBStoringCharset=Codificación de la base de datos para el almacenamiento de datos -DBSortingCharset=Codificación de la base de datos para clasificar los datos -WarningModuleNotActive=El módulo %s debe ser activado -WarningOnlyPermissionOfActivatedModules=Atención, solamente los permisos relacionados con los módulos activados se indican aquí. Puede activar los otros módulos en la página Configuración->Módulos -DolibarrSetup=Instalación/Actualización de Dolibarr -InternalUser=Usuario interno -ExternalUser=Usuario externo -InternalUsers=Usuarios internos -ExternalUsers=Usuarios externos -GUISetup=Display -SetupArea=Área configuración -FormToTestFileUploadForm=Formulario de prueba de subida de archivo (según opciones elegidas) -IfModuleEnabled=Nota: sólo es eficaz si el módulo %s está activado -RemoveLock=Elimine el archivo %s, si existe, para permitir la utilidad de actualización. -RestoreLock=Sustituir un archivo %s, dándole sólo derechos de lectura a este archivo con el fin de prohibir nuevas actualizaciones. -SecuritySetup=Configuración de la seguridad -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, este módulo requiere una versión %s o superior de PHP -ErrorModuleRequireDolibarrVersion=Error, este módulo requiere una versión %s o superior de Dolibarr -ErrorDecimalLargerThanAreForbidden=Error, las precisiones superiores a %s no están soportadas. -DictionarySetup=Diccionarios -Dictionary=Diccionarios -ErrorReservedTypeSystemSystemAuto=El uso del tipo 'system' y 'systemauto' está reservado. Puede utilizar 'user' como valor para añadir su propio registro -ErrorCodeCantContainZero=El código no puede contener el valor 0 -DisableJavascript=Deshabilitar Javascript y funciones Ajax (Recomendado para personas ciegas o navegadores de texto) -UseSearchToSelectCompanyTooltip=También si tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento COMPANY_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena. -UseSearchToSelectContactTooltip=También si usted tiene un gran número de terceros (> 100 000), puede aumentar la velocidad mediante el establecimiento CONTACT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nº de caracteres para desencadenar la búsqueda: %s -NotAvailableWhenAjaxDisabled=No disponible cuando Ajax esté desactivado -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=Javascript desactivado -UsePreviewTabs=Ver fichas "vista previa" -ShowPreview=Ver vista previa -PreviewNotAvailable=Vista previa no disponible -ThemeCurrentlyActive=Tema actualmente activo -CurrentTimeZone=Zona horaria PHP (Servidor) -MySQLTimeZone=Zona horaria MySql (base de datos) -TZHasNoEffect=Las fechas se guardan y devuelven por el servidor de base de datos tal y como si se las hubieran enviado como una cadena. La zona horaria solamente tiene efecto si se usa la función UNIX_TIMESTAMP (que no debe ser usada por dolibarr, por lo que la zona horaria de la base de datos no debe tener efecto, aunque se haya cambiado después de introducir los datos). -Space=Área -Table=Tabla -Fields=Campos -Index=Índice -Mask=Máscara -NextValue=Próximo valor -NextValueForInvoices=Próximo valor (facturas) -NextValueForCreditNotes=Próximo valor (abonos) -NextValueForDeposit=Próximo valor (anticipos) -NextValueForReplacements=Próximo valor (rectificativas) -MustBeLowerThanPHPLimit=Observación: Su PHP limita el tamaño a %s %s de máximo, cualquiera que sea el valor de este parámetro -NoMaxSizeByPHPLimit=Ninguna limitación interna en su servidor PHP -MaxSizeForUploadedFiles=Tamaño máximo de los documentos a subir (0 para prohibir la subida) -UseCaptchaCode=Utilización de código gráfico (CAPTCHA) en la página de inicio de sesión -AntiVirusCommand= Ruta completa hacia el comando del antivirus -AntiVirusCommandExample= Ejemplo para ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Ejemplo para ClamAv: /usr/bin/clamscan -AntiVirusParam= Parámetros complementarios en la línea de comandos -AntiVirusParamExample= Ejemplo para ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Configuración del módulo Contabilidad -UserSetup=Configuración gestión de los usuarios -MultiCurrencySetup=Multi-currency setup -MenuLimits=Límites y precisión -MenuIdParent=Id del menú padre -DetailMenuIdParent=ID del menú padre (vacío para un menú superior) -DetailPosition=Número de orden para la posición del menú -AllMenus=Todos -NotConfigured=No configurado -Active=Activo -SetupShort=Config. -OtherOptions=Otras opciones -OtherSetup=Varios -CurrentValueSeparatorDecimal=Separador decimal -CurrentValueSeparatorThousand=Separador miles -Destination=destino -IdModule=identificador de modulo -IdPermissions=Identificador de permisos -Modules=Módulos -LanguageBrowserParameter=Variable %s -LocalisationDolibarrParameters=Parámetros de localización -ClientTZ=Zona horaria cliente (usuario) -ClientHour=Hora cliente (usuario) -OSTZ=Zona horaria Servidor -PHPTZ=Zona horaria Servidor PHP -DaylingSavingTime=Horario de verano (usuario) -CurrentHour=Hora PHP (servidor) -CurrentSessionTimeOut=Timeout sesión actual -YouCanEditPHPTZ=Para definir una zona horaria PHP diferente (no es necesario), pruebe a añadir un archivo .htacces con una línea como esta "SetEnvTZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Posición por defecto -Position=Posición -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menú para los usuarios -LangFile=archivo .lang -System=Sistema -SystemInfo=Info. sistema -SystemToolsArea=Área utilidades del sistema -SystemToolsAreaDesc=Esta área ofrece distintas funciones de administración. Utilice la menú para elegir la funcionalidad buscada. -Purge=Purga -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Eliminar todos los archivos del directorio %s. Archivos temporales y archivos adjuntados a elementos (terceros, facturas, etc.) serán eliminados. -PurgeRunNow=Purgar -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s archivos o directorios eliminados -PurgeAuditEvents=Purgar los eventos de seguridad -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generar copia de seguridad -Backup=Copia de seguridad -Restore=Restauración -RunCommandSummary=La copia será realizada por el comando siguiente -BackupResult=Resultado de la copia -BackupFileSuccessfullyCreated=Archivo de copia generado correctamente -YouCanDownloadBackupFile=Los archivos generados pueden ahora descargarse -NoBackupFileAvailable=Ninguna copia disponible -ExportMethod=Método de exportación -ImportMethod=Método de importación -ToBuildBackupFileClickHere=Para crear una copia, haga click aquí. -ImportMySqlDesc=Para importar una copia, hay que utilizar el comando mysql en linea siguiente: -ImportPostgreSqlDesc=Para importar una copia de seguridad, debe usar el comando pg_restore desde la línea de comandos: -ImportMySqlCommand=%s %s < miarchivobackup.sql -ImportPostgreSqlCommand=%s %s miarchivobackup.sql -FileNameToGenerate=Nombre del archivo a generar -Compression=Compresión -CommandsToDisableForeignKeysForImport=Comando para desactivar las claves excluyentes a la importación -CommandsToDisableForeignKeysForImportWarning=Obligatorio si quiere poder restaurar más tarde el dump SQL -ExportCompatibility=Compatibilidad del archivo de exportación generado -MySqlExportParameters=Parámetros de la exportación MySql -PostgreSqlExportParameters= Parámetros de la exportación PostgreSQL -UseTransactionnalMode=Utilizar el modo transaccional -FullPathToMysqldumpCommand=Ruta completa del comando mysqldump -FullPathToPostgreSQLdumpCommand=ruta completa hacia el comando pg_dump -ExportOptions=Opciones de exportación -AddDropDatabase=Añadir órdenes DROP DATABASE -AddDropTable=Añadir órdenes DROP TABLE -ExportStructure=Estructura -NameColumn=Nombre las columnas -ExtendedInsert=Instrucciones INSERT extendidas -NoLockBeforeInsert=Sin instrucción LOCK antes del INSERT -DelayedInsert=Inserciones con retraso -EncodeBinariesInHexa=Codificar los campos binarios en hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetección (navegador) -FeatureDisabledInDemo=Opción deshabilitada en demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permisos -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Sólo los elementos de módulos activados son mostrados. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, el sitio oficial de módulos complementarios y para Dolibarr ERP/CRM -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Enlace -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activar en -ActiveOn=Activo en -SourceFile=Archivo origen -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponible solamente si Javascript y Ajax están activados -Required=Requerido -UsedOnlyWithTypeOption=Usado solamente por alguna opción de la agenda -Security=Seguridad -Passwords=Contraseñas -DoNotStoreClearPassword=No almacenar la contraseña sin cifrar en la base -MainDbPasswordFileConfEncrypted=Encriptar la contraseña de la base en el archivo conf.php -InstrucToEncodePass=Para tener la contraseña codificada en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass = "...";
por
$dolibarr_main_db_pass = "crypted:%s"; -InstrucToClearPass=Para tener la contraseña decodificada (visible) en el archivo conf.php, reemplace la línea
$dolibarr_main_db_pass = "crypted:...";
por
$dolibarr_main_db_pass = "%s"; -ProtectAndEncryptPdfFiles=Protección y encriptación de los pdf generados -ProtectAndEncryptPdfFilesDesc=La protección de un documento pdf deja el documento libre a la lectura y a la impresión a cualquier lector de PDF. Por el contrario, la modificación y la copia resultan imposibles. -Feature=Función -DolibarrLicense=Licencia -Developpers=Desarrolladores/contribuidores -OfficialWebSite=Sitio web oficial internacional -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Wiki documentación Dolibarr -OfficialDemo=Demo en línea Dolibarr -OfficialMarketPlace=Sitio oficial de módulos complementarios y extensiones -OfficialWebHostingService=Servicios de hosting web (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Otros recursos -ForDocumentationSeeWiki=Para la documentación de usuario, desarrollador o Preguntas Frecuentes (FAQ), consulte el wiki Dolibarr:
%s -ForAnswersSeeForum=Para otras cuestiones o realizar sus propias consultas, puede utilizar el foro Dolibarr:
%s -HelpCenterDesc1=Esta aplicación, independiente de Dolibarr, le permite ayudarle a obtener un servicio de soporte de Dolibarr. -HelpCenterDesc2=Algunos de estos servicios sólo están disponibles en inglés. -CurrentMenuHandler=Gestor de menú -MeasuringUnit=Unidad de medida -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Plazo de aviso -NewByMonth=New by month -Emails=E-Mails -EMailsSetup=Configuración E-Mails -EMailsDesc=Esta página permite sustituir los parámetros PHP relacionados con el envío de correos electrónicos. En la mayoría de los casos en SO como UNIX/Linux, los parámetros PHP son ya correctos y esta página es inútil. -MAIN_MAIL_SMTP_PORT=Puerto del servidor SMTP (Por defecto en php.ini: %s) -MAIN_MAIL_SMTP_SERVER=Nombre host o ip del servidor SMTP (Por defecto en php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Puerto del servidor SMTP (No definido en PHP en sistemas de tipo Unix) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nombre servidor o ip del servidor SMTP (No definido en PHP en sistemas de tipo Unix) -MAIN_MAIL_EMAIL_FROM=E-Mail del emisor para envíos E-Mail automáticos (Por defecto en php.ini: %s) -MAIN_MAIL_ERRORS_TO=E-Mail usado para los retornos de error de los e-mails enviados -MAIN_MAIL_AUTOCOPY_TO= Enviar automáticamente copia oculta de los e-mails enviados a -MAIN_DISABLE_ALL_MAILS=Desactivar globalmente todo envío de correos electrónicos (para modo de pruebas o demo) -MAIN_MAIL_SENDMODE=Método de envío de e-mails -MAIN_MAIL_SMTPS_ID=ID de autentificación SMTP si se requiere autenticación SMTP -MAIN_MAIL_SMTPS_PW=Contraseña autentificación SMTP si se requiere autentificación SMTP -MAIN_MAIL_EMAIL_TLS= Uso de encriptación TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Desactivar globalmente todo envío de SMS (para modo de pruebas o demo) -MAIN_SMS_SENDMODE=Método de envío de SMS -MAIN_MAIL_SMS_FROM=Número de teléfono por defecto para los envíos SMS -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Funcionalidad no disponible en sistemas Unix. Pruebe su sendmail localmente. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Configuración del módulo -ModulesSetup=Configuración de los módulos -ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestión cliente (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Proyectos/Trabajo cooperativo -ModuleFamilyOther=Otro -ModuleFamilyTechnic=Módulos herramientas o Sistema -ModuleFamilyExperimental=Módulos experimentales -ModuleFamilyFinancial=Módulos financieros (Contabilidad/tesorería) -ModuleFamilyECM=Gestión Electrónica de Documentos (GED) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Gestores menú -MenuAdmin=Editor menú -DoNotUseInProduction=No usar en producción -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Paso %s -FindPackageFromWebSite=Buscar el paquete que responde a su necesidad (por ejemplo en el sitio web %s) -DownloadPackageFromWebSite=Descargue el paquete (por ejemplo desde el sitio web oficial %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=Para este paso, puede enviar el paquete usando esta herramienta: Seleccionar el archivo del módulo -CurrentVersion=Versión actual de Dolibarr -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Actualizar servidor offline -GenericMaskCodes=Puede introducir cualquier máscara numérica. En esta máscara, puede utilizar las siguientes etiquetas:
{000000} corresponde a un número que se incrementa en cada uno de %s. Introduzca tantos ceros como longitud desee mostrar. El contador se completará a partir de ceros por la izquierda con el fin de tener tantos ceros como la máscara.
{000000+000} Igual que el anterior, con una compensación correspondiente al número a la derecha del signo + se aplica a partir del primer %s.
{000000@x} igual que el anterior, pero el contador se restablece a cero cuando se llega a x meses (x entre 1 y 12). Si esta opción se utiliza y x es de 2 o superior, entonces la secuencia {yy}{mm} o {yyyy}{mm} también es necesaria.
{dd} días (01 a 31).
{mm} mes (01 a 12).
{yy}, {yyyy} ou {y} año en 2, 4 ó 1 cifra.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Cualquier otro carácter en la máscara se quedará sin cambios.
No se permiten espacios
-GenericMaskCodes4a=Ejemplo en la 99 ª %s del tercero La Empresa realizada el 31/03/2007:
-GenericMaskCodes4b=Ejemplo sobre un tercero creado el 31/03/2007:
-GenericMaskCodes4c=Ejemplo en un producto/servicio creado el 31/03/2007:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} dará ABC0703-000099
{0000+100@1}-XXX/{dd}/YYY daráa 0199-XXX/31/YYY -GenericNumRefModelDesc=Devuelve un número creado acorde a una máscara definida. -ServerAvailableOnIPOrPort=Servidor disponible en la dirección %s en el puerto %s -ServerNotAvailableOnIPOrPort=Servidor no disponible en la dirección %s en el puerto %s -DoTestServerAvailability=Probar conectividad con el servidor -DoTestSend=Probar envío -DoTestSendHTML=Probar envío HTML -ErrorCantUseRazIfNoYearInMask=Error: no puede utilizar la opción @ para reiniciar el contador cada año si la secuencia {yy} o {yyyy} no se encuentra en la máscara. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, no se puede usar la opción @ si la secuencia {yy}{mm} o {yyyy}{mm} no se encuentra en la máscara. -UMask=Parámetro UMask de nuevos archivos en Unix/Linux/BSD. -UMaskExplanation=Este parámetro determina los derechos de los archivos creados en el servidor Dolibarr (durante la subida, por ejemplo).
Este debe ser el valor octal (por ejemplo, 0666 significa lectura / escritura para todos).
Este parámetro no tiene ningún efecto sobre un servidor Windows. -SeeWikiForAllTeam=Vea el wiki para más detalles de todos los actores y de su organización -UseACacheDelay= Demora en caché de la exportación en segundos (0 o vacio sin caché) -DisableLinkToHelpCenter=Ocultar el enlace "¿Necesita soporte o ayuda?" en la página de login -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=No hay líneas de corte automático, de modo que si el texto es demasiado largo en los documentos, debe agregar sus propios retornos de carro en el texto mecanografiado. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Longuitud mínima -LanguageFilesCachedIntoShmopSharedMemory=archivos .lang en memoria compartida -ExamplesWithCurrentSetup=Ejemplos con la configuración activa actual -ListOfDirectories=Listado de directorios de plantillas OpenDocument -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Número de archivos de plantillas ODT encontrados en este/estos directorio(s) -ExampleOfDirectoriesForModelGen=Ejemplos de sintaxis:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=Colocando los siguientes tags en la plantilla, obtendrá una sustitución con el valor personalizado al generar el documento: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Crear_un_modelo_de_documento_ODT -FirstnameNamePosition=Orden visualización nombre/apellidos -DescWeather=Los siguientes gráficos se mostrarán en el panel si el número de elementos llegan a estos valores: -KeyForWebServicesAccess=Clave para usar los Web Services (parámetro "dolibarrkey" en webservices) -TestSubmitForm=Formulario de pruebas -ThisForceAlsoTheme=Usar este gestor de menús predetermina también el tema, sea cual sea la elección del usuario. Además, este gestor de menús, especial para smartphones, solamente funciona en algunos teléfonos. Use otro gestor si observa cualquier problema. -ThemeDir=Directorio de los temas -ConnectionTimeout=Timeout de conexión -ResponseTimeout=Timeout de respuesta -SmsTestMessage=Mensaje de prueba de __PHONEFROM__ para __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Clave para encriptar urls -NoSmsEngine=No hay disponible ningún gestor de envío de SMS. Los gestores de envío de SMS no se instalan por defecto ya que dependen de cada proveedor, sin embargo puede encontrarlos en la plataforma %s. -PDF=PDF -PDFDesc=Puede definir aquí las opciones globales para la generación de los PDF -PDFAddressForging=Reglas de visualización de direcciones -HideAnyVATInformationOnPDF=Ocultar toda la información relacionada con el IVA en la generación de los PDF -HideDescOnPDF=Ocultar descripción de los productos en la generación de los PDF -HideRefOnPDF=Ocultar referencia de los productos en la generación de los PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Librería -UrlGenerationParameters=Seguridad de las URLs -SecurityTokenIsUnique=¿Usar un parámetro securekey único para cada URL? -EnterRefToBuildUrl=Introduzca la referencia del objeto %s -GetSecuredUrl=Obtener la URL calculada -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Tasa de IVA antigua -NewVATRates=Tasa de IVA nueva -PriceBaseTypeToChange=Cambiar el precio cuya referencia de base es -MassConvert=Convertir masivamente -String=Cadena de texto -TextLong=Texto largo -Int=Numérico entero -Float=Decimal -DateAndTime=Fecha y hora -Unique=Único -Boolean=Boleano (Casilla de verificación) -ExtrafieldPhone = Teléfono -ExtrafieldPrice = Precio -ExtrafieldMail = Correo -ExtrafieldUrl = Url -ExtrafieldSelect = Lista de selección -ExtrafieldSelectList = Lista desde una tabla -ExtrafieldSeparator=Separador -ExtrafieldPassword=Contraseña -ExtrafieldCheckBox=Casilla de verificación -ExtrafieldRadio=Botón de selección excluyente -ExtrafieldCheckBoxFromList= Casilla de selección de tabla -ExtrafieldLink=Objeto adjuntado -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Atención: Su archivo conf.php contiene la directiva dolibarr_pdf_force_fpdf=1. Esto hace que se use la librería FPDF para generar sus archivos PDF. Esta librería es antigua y no cubre algunas funcionalidades (Unicode, transparencia de imágenes, idiomas cirílicos, árabes o asiáticos, etc.), por lo que puede tener problemas en la generación de los PDF.
Para resolverlo, y disponer de un soporte completo de PDF, puede descargar la librería TCPDF , y a continuación comentar o eliminar la línea $dolibarr_pdf_force_fpdf=1, y añadir en su lugar $dolibarr_lib_TCPDF_PATH='ruta_a_TCPDF' -LocalTaxDesc=Algunos países aplican 2 o 3 tasas a cada línea de factura. Si es el caso, escoja el tipo de la segunda y tercera tasa y su valor. Los posibles tipos son:
1 : tasa local aplicable a productos y servicios sin IVA (tasa local es calculada sobre la base imponible)
2 : tasa local se aplica a productos y servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
3 : tasa local se aplica a productos sin IVA (tasa local es calculada sobre la base imponible)
4 : tasa local se aplica a productos incluyendo el IVA (tasa local es calculada sobre base imponible+IVA)
5 : tasa local se aplica a servicios sin IVA (tasa local es calculada sobre base imponible)
6 : tasa local se aplica a servicios incluyendo el IVA (tasa local es calculada sobre base imponible+IVA) -SMS=SMS -LinkToTestClickToDial=Introduzca un número de teléfono al que llamar para probar el enlace de llamada ClickToDial para el usuario %s -RefreshPhoneLink=Refrescar enlace -LinkToTest=Enlace seleccionable para el usuario %s (haga clic en el número para probar) -KeepEmptyToUseDefault=Deje este campo vacío para usar el valor por defecto -DefaultLink=Enlace por defecto -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Atención: Este valor puede ser sobreescrito por un valor específico de la configuración del usuario (cada usuario puede tener su propia url clicktodial) -ExternalModule=Módulo externo - Instalado en el directorio %s -BarcodeInitForThirdparties=Inicio masivo de código de barras para terceros -BarcodeInitForProductsOrServices=Inicio masivo de código de barras para productos o servicios -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Iniciar valor para los %s registros vacíos -EraseAllCurrentBarCode=Eliminar todos los valores actuales de códigos de barras -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=Todos los códigos de barras han sido eliminados -NoBarcodeNumberingTemplateDefined=No hay establecida una numeración en la configuración del módulo de códigos de barras. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Devuelve un código contable compuesto de
%s seguido del código tercero de proveedor para el código contable de proveedor,
%s seguido del código tercero de cliente para el código contable de cliente. -ModuleCompanyCodePanicum=Devuelve un código contable vacío. -ModuleCompanyCodeDigitaria=Devuelve un código contable compuesto siguiendo el código de tercero. El código está formado por carácter ' C ' en primera posición seguido de los 5 primeros caracteres del código tercero. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Usuarios y grupos -Module0Desc=Users / Employees and Groups management -Module1Name=Terceros -Module1Desc=Gestión de terceros (empresas, particulares) y contactos -Module2Name=Comercial -Module2Desc=Gestión comercial -Module10Name=Contabilidad -Module10Desc=Activación de informes simples de contabilidad (diarios, ventas) basados en el contenido de la base de datos. Sin desgloses. -Module20Name=Presupuestos -Module20Desc=Gestión de presupuestos/propuestas comerciales -Module22Name=E-Mailings -Module22Desc=Administración y envío de E-Mails masivos -Module23Name=Energía -Module23Desc=Realiza el seguimiento del consumo de energías -Module25Name=Pedidos de clientes -Module25Desc=Gestión de pedidos de clientes -Module30Name=Facturas y abonos -Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas de proveedores -Module40Name=Proveedores -Module40Desc=Gestión de proveedores -Module42Name=Syslog -Module42Desc=Generación de logs (archivos, syslog,...) -Module49Name=Editores -Module49Desc=Gestión de editores -Module50Name=Productos -Module50Desc=Gestión de productos -Module51Name=Publipostage -Module51Desc=Administración y envío de correo de papel en masa -Module52Name=Stocks de productos -Module52Desc=Gestión de stocks de productos -Module53Name=Servicios -Module53Desc=Gestión de servicios -Module54Name=Contratos/Suscripciones -Module54Desc=Gestión de contratos (servicios o suscripciones recurrentes) -Module55Name=Códigos de barras -Module55Desc=Gestión de los códigos de barras -Module56Name=Telefonía -Module56Desc=Gestión de la telefonía -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integración con ClickToDial -Module59Name=Bookmark4u -Module59Desc=Añade función para generar una cuenta Bookmark4u desde una cuenta Dolibarr -Module70Name=Intervenciones -Module70Desc=Gestión de las intervenciones a terceros -Module75Name=Notas de gasto y desplazamientos -Module75Desc=Gestión de las notas de gasto y desplazamientos -Module80Name=Expediciones -Module80Desc=Gestión de expediciones y recepciones -Module85Name=Bancos y cajas -Module85Desc=Gestión de las cuentas financieras de tipo cuentas bancarias, postales o efectivo -Module100Name=Sitio web externo -Module100Desc=Incluye cualquier sitio web externo en los menús de Dolibarr, viéndolo en un frame -Module105Name=Mailman y SPIP -Module105Desc=Interfaz con Mailman o SPIP para el módulo Miembros -Module200Name=LDAP -Module200Desc=Sincronización con un directorio LDAP -Module210Name=PostNuke -Module210Desc=Integración con PostNuke -Module240Name=Exportaciones de datos -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Importación de datos -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Miembros -Module310Desc=Gestión de miembros de una asociación -Module320Name=Hilos RSS -Module320Desc=Adición de hilos de información RSS en las pantallas Dolibarr -Module330Name=Marcadores -Module330Desc=Gestión de marcadores -Module400Name=Proyectos/Oportunidades/Leads -Module400Desc=Gestión de proyectos, oportunidades o leads, Puede asignar cualquier elemento (factura, pedido, presupuesto, intervención, etc.) a un proyecto y obtener una vista transversal del proyecto -Module410Name=Webcalendar -Module410Desc=Interfaz con el calendario Webcalendar -Module500Name=Pagos especiales -Module500Desc=Gestión de gastos especiales (impuestos, gastos sociales, dividendos) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Crédito -Module520Desc=Gestión de créditos -Module600Name=Notificaciones -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donaciones -Module700Desc=Gestión de donaciones -Module770Name=Informes de gastos -Module770Desc=Gestión de informes de gastos (transporte, dietas, etc.) -Module1120Name=Presupuesto de proveedor -Module1120Desc=Solicitud presupuesto y precios a proveedor -Module1200Name=Mantis -Module1200Desc=Interfaz con el sistema de seguimiento de incidencias Mantis -Module1400Name=Contabilidad experta -Module1400Desc=Gestión experta de la contabilidad (doble partida) -Module1520Name=Generación Documento -Module1520Desc=Generación de documentos de correo masivo -Module1780Name=Etiquetas/Categorías -Module1780Desc=Crear etiquetas/Categoría(Productos, clientes,proveedores,contactos y miembros) -Module2000Name=Editor WYSIWYG -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Precios dinámicos -Module2200Desc=Activar el uso de expresiones matemáticas para precios -Module2300Name=Programador -Module2300Desc=Gestión del Trabajo programado -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Gestión Electrónica de Documentos -Module2500Desc=Permite administrar una base de documentos -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Habilitar los servicios Dolibarr SOAP proporcionando servicios API -Module2610Name=API/Web services (REST server) -Module2610Desc=Habilitar los servicios Dolibarr REST proporcionando servicios API -Module2660Name=Call WebServices (SOAP client) Module2660Desc=Habilitar los servicios web cliente de Dolibarr (puede ser utilizado para grabar datos/solicitudes de servidores externos. De momento solo se soporta pedidos a proveedor) -Module2700Name=Gravatar -Module2700Desc=Utiliza el servicio en línea de Gravatar (www.gravatar.com) para mostrar fotos de los usuarios/miembros (que se encuentran en sus mensajes de correo electrónico). Necesita un acceso a Internet -Module2800Desc=Cliente FTP -Module2900Name=GeoIPMaxmind -Module2900Desc=Capacidades de conversión GeoIP Maxmind -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=RRHH -Module4000Desc=Human resources management -Module5000Name=Multi-empresa -Module5000Desc=Permite gestionar varias empresas -Module6000Name=Flujo de trabajo -Module6000Desc=Gestión del flujo de trabajo -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Gestión de días libres retribuidos -Module20000Desc=Gestión de los días libres retribuidos de los empleados -Module39000Name=Lotes de producto -Module39000Desc=Gestión de lotes o series, fechas de caducidad y venta de los productos -Module50000Name=PayBox -Module50000Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paybox -Module50100Name=TPV -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal -Module50400Name=Contabilidad (avanzada) -Module50400Desc=Gestión contable (doble partida) -Module54000Name=PrintIPP -Module54000Desc=La impresión directa (sin abrir los documentos) usa el interfaz Cups IPP (La impresora debe ser visible por el servidor y CUPS debe estar instalado en el servidor) -Module55000Name=Encuesta o Voto -Module55000Desc=Módulo para hacer encuestas en línea o votos (como Doodle, Studs, Rdvz, ...) -Module59000Name=Márgenes -Module59000Desc=Módulo para gestionar los márgenes de beneficio -Module60000Name=Comisiones -Module60000Desc=Módulo para gestionar las comisiones de venta -Module63000Name=Recursos -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Consultar facturas -Permission12=Crear/Modificar facturas -Permission13=De-validar facturas -Permission14=Validar facturas -Permission15=Enviar facturas por correo -Permission16=Emitir pagos de facturas -Permission19=Eliminar facturas -Permission21=Consultar presupuestos -Permission22=Crear/modificar presupuestos -Permission24=Validar presupuestos -Permission25=Enviar los presupuestos -Permission26=Cerrar presupuestos -Permission27=Eliminar presupuestos -Permission28=Exportar los presupuestos -Permission31=Consultar productos -Permission32=Crear/modificar productos -Permission34=Eliminar productos -Permission36=Ver/gestionar los productos ocultos -Permission38=Exportar productos -Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos en tareas asignadas. -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Eliminar proyectos y tareas (compartidos o soy contacto) -Permission45=Export projects -Permission61=Consultar intervenciones -Permission62=Crear/modificar intervenciones -Permission64=Eliminar intervenciones -Permission67=Exportar intervenciones -Permission71=Consultar miembros -Permission72=Crear/modificar miembros -Permission74=Eliminar miembros -Permission75=Configurar tipos de los miembros -Permission76=Export data -Permission78=Consultar cotizaciones -Permission79=Crear/modificar cotizaciones -Permission81=Consultar pedidos de clientes -Permission82=Crear/modificar pedidos de clientes -Permission84=Validar pedidos de clientes -Permission86=Enviar pedidos de clientes -Permission87=Cerrar pedidos de clientes -Permission88=Anular pedidos de clientes -Permission89=Eliminar pedidos de clientes -Permission91=Leer impuestos sociales o fiscales e IVA -Permission92=Crear/modificar impuestos sociales o fiscales e IVA -Permission93=Eliminar impuestos sociales o fiscales e IVA -Permission94=Exportar impuestos sociales o fiscales -Permission95=Consultar balances y resultados -Permission101=Consultar expediciones -Permission102=Crear/modificar expediciones -Permission104=Validar expediciones -Permission106=Exportar expediciones -Permission109=Eliminar expediciones -Permission111=Consultar cuentas financieras (cuentas bancarias, cajas) -Permission112=Crear/modificar cantidad/eliminar registros bancarios -Permission113=Configurar cuentas financieras (crear, controlar las categorías) -Permission114=Reconciliar transacciones -Permission115=Exportar transacciones y extractos -Permission116=Captar transferencias entre cuentas -Permission117=Gestionar envío de cheques -Permission121=Consultar empresas -Permission122=Crear/modificar empresas -Permission125=Eliminar empresas -Permission126=Exportar las empresas -Permission141=Leer todos los proyectos y tareas (incluidos proyectos privados de los que no soy contacto) -Permission142=Crear/modificar todos los proyectos y tareas (incluidos proyectos privados de los que no soy contacto) -Permission144=Eliminar todos los proyectos y tareas (incluidos los proyectos privados de los que no soy contacto) -Permission146=Consultar proveedores -Permission147=Consultar estadísticas -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Consultar contratos/suscripciones -Permission162=Crear/modificar contratos/suscripciones -Permission163=Activar un servicio/suscripción de un contrato -Permission164=Desactivar un servicio/suscripcion de un contrato -Permission165=Eliminar contratos/suscripciones -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Crear/modificar honorarios -Permission173=Eliminar honorarios -Permission174=Leer todos los honorarios -Permission178=Exportar honorarios -Permission180=Consultar proveedores -Permission181=Consultar pedidos a proveedores -Permission182=Crear/modificar pedidos a proveedores -Permission183=Validar pedidos a proveedores -Permission184=Aprobar pedidos a proveedores -Permission185=Realizar o cancelar pedidos a proveedores -Permission186=Recibir pedidos de proveedores -Permission187=Cerrar pedidos a proveedores -Permission188=Anular pedidos a proveedores -Permission192=Crear líneas -Permission193=Cancelar líneas -Permission194=Consultar el ancho de banda de líneas -Permission202=Crear conexiones ADSL -Permission203=Realizar pedido de conexiones -Permission204=Pedir conexiones -Permission205=Gestionar conexiones -Permission206=Consultar conexiones -Permission211=Consultar telefonía -Permission212=Pedir líneas -Permission213=Activar una línea -Permission214=Configurar la telefonía -Permission215=Configurar proveedores -Permission221=Consultar E-Mails -Permission222=Crear/modificar E-Mails (asunto, destinatarios, etc.) -Permission223=Validar E-Mails (permite el envío) -Permission229=Eliminar E-Mails -Permission237=Ver los destinatarios y la información -Permission238=Enviar los e-mails manualmente -Permission239=Eliminar los e-mails después de su validación o su envío -Permission241=Consultar categorías -Permission242=Crear/modificar categorías -Permission243=Eliminar categorías -Permission244=Ver contenido de categorías ocultas -Permission251=Consultar otros usuarios -PermissionAdvanced251=Consultar otros usuarios -Permission252=Consultar los permisos de otros usuarios -Permission253=Crear/modificar otros usuarios y sus permisos -PermissionAdvanced253=Crear/modificar usuarios internos/externos y sus permisos Permission254=Modificar la contraseña de otros usuarios Permission255=Eliminar o desactivar otros usuarios Permission256=Consultar sus permisos -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Consultar el CA -Permission272=Consultar las facturas -Permission273=Emitir las facturas -Permission281=Consultar contactos -Permission282=Crear/modificar contactos -Permission283=Eliminar contactos -Permission286=Exportar contactos -Permission291=Consultar tarifas -Permission292=Definir permisos sobre las tarifas -Permission293=Modificar tarifas de clientes -Permission300=Consultar códigos de barras -Permission301=Crear/modificar códigos de barras -Permission302=Eliminar código de barras -Permission311=Consultar servicios -Permission312=Asignar servicios/suscripciones a un contrato -Permission331=Consultar marcadores -Permission332=Crear/modificar marcadores -Permission333=Eliminar marcadores -Permission341=Consultar sus propios permisos -Permission342=Crear/modificar su propia info de usuario -Permission343=Modificar su propia contraseña -Permission344=Modificar sus propios permisos -Permission351=Consultar los grupos -Permission352=Consultar los permisos de grupos -Permission353=Crear/modificar los grupos y sus permisos -Permission354=Eliminar o desactivar grupos -Permission358=Exportar usuarios -Permission401=Consultar haberes -Permission402=Crear/modificar haberes -Permission403=Validar haberes -Permission404=Eliminar haberes -Permission510=Consultar salarios -Permission512=Crear/modificar salarios -Permission514=Eliminar salarios -Permission517=Exportar salarios -Permission520=Consultar Créditos -Permission522=Crear/modificar Créditos -Permission524=Eliminar Crédito -Permission525=Calculadora de crédito -Permission527=Exportar crédito -Permission531=Consultar servicios -Permission532=Crear/modificar servicios -Permission534=Eliminar servicios -Permission536=Ver/gestionar los servicios ocultos -Permission538=Exportar servicios -Permission701=Consultar donaciones -Permission702=Crear/modificar donaciones -Permission703=Eliminar donaciones -Permission771=Read expense reports (yours and your subordinates) -Permission772=Crear/modificar informe de gastos -Permission773=Eliminar informe de gastos -Permission774=Leer todos los informes de gastos (incluidos los no subordinados) -Permission775=Aprobar informe de gastos -Permission776=Pagar informe de gastos -Permission779=Exportar informe de gastos -Permission1001=Consultar stocks -Permission1002=Crear/modificar almacenes -Permission1003=Eliminar almacenes -Permission1004=Consultar movimientos de stock -Permission1005=Crear/modificar movimientos de stock -Permission1101=Consultar ordenes de envío -Permission1102=Crear/modificar ordenes de envío -Permission1104=Validar orden de envío -Permission1109=Eliminar orden de envío -Permission1181=Consultar proveedores -Permission1182=Consultar pedidos a proveedores -Permission1183=Crear pedidos a proveedores -Permission1184=Validar pedidos a proveedores -Permission1185=Aprobar pedidos a proveedores -Permission1186=Enviar pedidos a proveedores -Permission1187=Recibir pedidos de proveedores -Permission1188=Cerrar pedidos a proveedores -Permission1190=Aprobar (segunda aprobación) pedidos a proveedores -Permission1201=Obtener resultado de una exportación -Permission1202=Crear/codificar exportaciones -Permission1231=Consultar facturas de proveedores -Permission1232=Crear facturas de proveedores -Permission1233=Validar facturas de proveedores -Permission1234=Eliminar facturas de proveedores -Permission1235=Enviar facturas de proveedores por correo -Permission1236=Exportar facturas de proveedores, atributos y pagos -Permission1237=Exportar pedidos de proveedores junto con sus detalles -Permission1251=Lanzar las importaciones en masa a la base de datos (carga de datos) -Permission1321=Exportar facturas a clientes, atributos y cobros -Permission1322=Reopen a paid bill -Permission1421=Exportar pedidos de clientes y atributos -Permission20001=Read leave requests (yours and your subordinates) Permission20002=Crear/modificar sus días retribuidos Permission20003=Eliminar peticiones de días libres retribuidos -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Crear/modificar días retribuidos para todos -Permission20006=Administrar días retribuidos (configuración y actualización de balance) -Permission23001=Consultar Trabajo programado -Permission23002=Crear/actualizar Trabajo programado -Permission23003=Borrar Trabajo Programado -Permission23004=Ejecutar Trabajo programado -Permission2401=Leer acciones (eventos o tareas) vinculadas a su cuenta Permission2402=Crear/eliminar acciones (eventos o tareas) vinculadas a su cuenta Permission2403=Modificar acciones (eventos o tareas) vinculadas a su cuenta -Permission2411=Leer acciones (eventos o tareas) de otros -Permission2412=Crear/modificar acciones (eventos o tareas) de otros -Permission2413=Eliminar acciones (eventos o tareas) de otros -Permission2414=Export actions/tasks of others -Permission2501=Consultar/Recuperar documentos -Permission2502=Recuperar documentos -Permission2503=Enviar o eliminar documentos -Permission2515=Configuración directorios de documentos -Permission2801=Utilizar el cliente FTP en modo lectura (sólo explorar y descargar) -Permission2802=Utilizar el cliente FTP en modo escritura (borrar o subir archivos) -Permission50101=Usar TPV -Permission50201=Consultar las transacciones -Permission50202=Importar las transacciones -Permission54001=Imprimir -Permission55001=Leer encuestas -Permission55002=Crear/modificar encuestas -Permission59001=Leer márgenes comerciales -Permission59002=Definir márgenes comerciales -Permission59003=Leer cualquier margen de usuario -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Perspectiva nivel cliente potencial -DictionaryCanton=Provincia -DictionaryRegion=Regiones -DictionaryCountry=Países -DictionaryCurrency=Monedas -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Tipos de impuestos sociales o fiscales -DictionaryVAT=Tasa de IVA (Impuesto sobre ventas en EEUU) -DictionaryRevenueStamp=Importes de sellos fiscales -DictionaryPaymentConditions=Condiciones de pago -DictionaryPaymentModes=Modos de pago -DictionaryTypeContact=Tipos de contactos/direcciones -DictionaryEcotaxe=Baremos CEcoParticipación (DEEE) -DictionaryPaperFormat=Formatos de papel -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Métodos de expedición -DictionaryStaff=Empleados -DictionaryAvailability=Tiempos de entrega -DictionaryOrderMethods=Métodos de pedido -DictionarySource=Orígenes de presupuestos/pedidos -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Modelos de planes contables -DictionaryEMailTemplates=Plantillas E-Mails -DictionaryUnits=Unidades -DictionaryProspectStatus=Estado cliente potencial -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Estado de oportunidad para el proyecto/lead -SetupSaved=Configuración guardada -BackToModuleList=Volver a la lista de módulos -BackToDictionaryList=Volver a la lista de diccionarios -VATManagement=Gestión IVA -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=El tipo de IVA propuesto por defecto es 0. Este es el caso de asociaciones, particulares o algunas pequeñas sociedades. -VATIsUsedExampleFR=En Francia, se trata de las sociedades u organismos que eligen un régimen fiscal general (General simplificado o General normal), régimen en el cual se declara el IVA. -VATIsNotUsedExampleFR=En Francia, se trata de asociaciones exentas de IVA o sociedades, organismos o profesiones liberales que han elegido el régimen fiscal de módulos (IVA en franquicia), pagando un IVA en franquicia sin hacer declaración de IVA. Esta elección hace aparecer la anotación "IVA no aplicable - art-293B del CGI" en las facturas. -##### Local Taxes ##### -LTRate=Tasa -LocalTax1IsNotUsed=No sujeto -LocalTax1IsUsedDesc=Uso de un 2º tipo de impuesto (Distinto del IVA) -LocalTax1IsNotUsedDesc=No usar un 2º tipo de impuesto (Distinto del IVA) -LocalTax1Management=Gestión 2º tipo de impuesto -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=No sujeto -LocalTax2IsUsedDesc=Uso de un 3er. tipo de impuesto (Distinto del IVA) -LocalTax2IsNotUsedDesc=No usar un 3er. tipo de impuesto (Distinto del IVA) -LocalTax2Management=Gestión 3er. tipo de impuesto -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= Gestión RE -LocalTax1IsUsedDescES= El tipo de RE propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:
Si el comprador no está sujeto a RE, RE por defecto=0. Final de regla.
Si el comprador está sujeto a RE entonces se aplica valor de RE por defecto. Final de regla.
-LocalTax1IsNotUsedDescES= El tipo de RE propuesto por defecto es 0. Final de regla. -LocalTax1IsUsedExampleES= En España, se trata de personas físicas: autónomos sujetos a unos epígrafes concretos del IAE. -LocalTax1IsNotUsedExampleES= En España, se trata de empresas jurídicas: Sociedades limitadas, anónimas, etc. y personas físicas (autónomos) sujetos a ciertos epígrafes del IAE. -LocalTax2ManagementES= Gestión IRPF -LocalTax2IsUsedDescES= El tipo de IRPF propuesto por defecto en las creaciones de presupuestos, facturas, pedidos, etc. Responde a la siguiente regla:
Si el vendedor no está sujeto a IRPF, IRPF por defecto=0. Final de regla.
Si el vendedor está sujeto a IRPF entonces se aplica valor de IRPF por defecto. Final de regla.
-LocalTax2IsNotUsedDescES= El tipo de IRPF propuesto por defecto es 0. Final de regla. -LocalTax2IsUsedExampleES= En España, se trata de personas físicas: autónomos y profesionales independientes que prestan servicios y empresas que han elegido el régimen fiscal de módulos. -LocalTax2IsNotUsedExampleES= En España, se trata de empresas no sujetas al régimen fiscal de módulos. -CalcLocaltax=Informes de impuestos locales -CalcLocaltax1=Ventas - Compras -CalcLocaltax1Desc=Los informes se calculan con la diferencia entre las ventas y las compras -CalcLocaltax2=Compras -CalcLocaltax2Desc=Los informes se basan en el total de las compras -CalcLocaltax3=Ventas -CalcLocaltax3Desc=Los informes se basan en el total de las ventas -LabelUsedByDefault=Etiqueta que se utilizará si no se encuentra traducción para este código -LabelOnDocuments=Etiqueta sobre documentos -NbOfDays=Nº de días -AtEndOfMonth=A fin de mes -CurrentNext=Current/Next -Offset=Decálogo -AlwaysActive=Siempre activo -Upgrade=Actualización -MenuUpgrade=Actualización / Extensión -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Servidor web -DocumentRootServer=Directorio raíz de las páginas web -DataRootServer=Directorio raíz de los archivos de datos -IP=IP -Port=Puerto -VirtualServerName=Nombre del servidor virtual -OS=SO -PhpWebLink=Vínculo Web-PHP -Browser=Navegador -Server=Servidor -Database=Base de datos -DatabaseServer=Host de la base de datos -DatabaseName=Nombre de la base de datos -DatabasePort=Puerto de la base de datos -DatabaseUser=Login de la base de datos -DatabasePassword=Contraseña de la base de datos -Tables=Tablas -TableName=Nombre de la tabla -NbOfRecord=Nº Reg. -Host=Servidor -DriverType=Tipo de driver -SummarySystem=Resumen de la información de sistemas Dolibarr -SummaryConst=Lista de todos los parámetros de configuración Dolibarr -MenuCompanySetup=Empresa/Institución -DefaultMenuManager= Gestor del menú estándar -DefaultMenuSmartphoneManager=Gestor de menú smartphone -Skin=Tema visual -DefaultSkin=Tema visual por defecto -MaxSizeList=Longitud máxima de listados -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Mensaje del día -MessageLogin=Mensaje del login -PermanentLeftSearchForm=Zona de búsqueda permanente del menú izquierdo -DefaultLanguage=Idioma por defecto a utilizar (código idioma) -EnableMultilangInterface=Activar interfaz multi-idioma -EnableShowLogo=Mostrar el logotipo en el menú de la izquierda -CompanyInfo=Información de la empresa/institución -CompanyIds=Identificación reglamentaria -CompanyName=Nombre/Razón social -CompanyAddress=Dirección -CompanyZip=Código postal -CompanyTown=Población -CompanyCountry=País -CompanyCurrency=Divisa principal -CompanyObject=Objeto de la empresa -Logo=Logo -DoNotSuggestPaymentMode=No sugerir -NoActiveBankAccountDefined=Ninguna cuenta bancaria activa definida -OwnerOfBankAccount=Titular de la cuenta %s -BankModuleNotActive=Módulo cuentas bancarias no activado -ShowBugTrackLink=Mostrar enlace "%s" -Alerts=Alertas -DelaysOfToleranceBeforeWarning=Plazos de tolerancia antes de alerta -DelaysOfToleranceDesc=Esta pantalla permite configura los plazos de tolerancia antes de que se alerte con el símbolo %s, sobre cada elemento en retraso. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerancia de retraso antes de la alerta (en días) sobre presupuestos a cerrar -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerancia de retraso antes de la alerta (en días) sobre presupuestos no facturados -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancia de retraso antes de la alerta (en días) sobre servicios a activar -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerancia de retraso antes de la alerta (en días) sobre servicios expirados -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerancia de retraso antes de la alerta (en días) sobre facturas de proveedor impagadas -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerancia de retraso antes de la alerta (en días) sobre facturas a cliente impagadas -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerancia de retraso antes de la alerta (en días) sobre conciliaciones bancarias pendientes -Delays_MAIN_DELAY_MEMBERS=Tolerancia de retraso entes de la alerta (en días) sobre cotizaciones adherentes en retraso -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia de retraso entes de la alerta (en días) sobre cheques a ingresar -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Las otras entradas de configuración gestionan parámetros opcionales. -LogEvents=Auditoría de la seguridad de eventos -Audit=Auditoría -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Nombre del navegador -BrowserOS=S.O. del navegador -ListOfSecurityEvents=Listado de eventos de seguridad Dolibarr -SecurityEventsPurged=Eventos de seguridad purgados -LogEventDesc=Puede habilitar el registro de eventos de seguridad Dolibarr aquí. Los administradores pueden ver su contenido a través de menú Herramientas del sistema - Auditoría.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos. -AreaForAdminOnly=Estas funciones solo son accesibles a un usuario administrador. -SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores. -SystemAreaForAdminOnly=Esta área solo es accesible a los usuarios de tipo administradores. Ningún permiso Dolibarr permite extender el círculo de usuarios autorizados a esta área. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=Puede encontrar aquí todos los parámetros relacionados con la apariencia de Dolibarr -AvailableModules=Módulos disponibles -ToActivateModule=Para activar los módulos, vaya al área de Configuración (Inicio->Configuración->Módulos). -SessionTimeOut=Timeout de sesiones -SessionExplanation=Asegura que el período de sesiones no expirará antes de este momento. Sin embargo, la gestión del período de sesiones de PHP no garantiza que el período de sesiones expira después de este período: Este será el caso si un sistema de limpieza del caché de sesiones es activo.
Nota: Sin mecanismo especial, el mecanismo interno para limpiar el período de sesiones de PHP todos los accesos %s/%s, pero sólo en torno al acceso de otros períodos de sesiones. -TriggersAvailable=Triggers disponibles -TriggersDesc=Los triggers son archivos que, une vez depositados en el directorio htdocs/core/triggers, modifican el comportamiento del workflow de Dolibarr. Realizan acciones suplementarias, desencadenadas por los eventos Dolibarr (creación de empresa, validación factura, cierre contrato, etc). -TriggerDisabledByName=Triggers de este archivo desactivados por el sufijo -NORUN en el nombre del archivo. -TriggerDisabledAsModuleDisabled=Triggers de este archivo desactivados ya que el módulo %s no está activado. -TriggerAlwaysActive=Triggers de este archivo siempre activos, ya que los módulos Dolibarr relacionados están activados -TriggerActiveAsModuleActive=Triggers de este archivo activos ya que el módulo %s está activado -GeneratedPasswordDesc=Indique aquí que norma quiere utilizar para generar las contraseñas cuando quiera generar una nueva contraseña -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Configuración de límites y precisiones -LimitsDesc=Puede definir aquí los límites y precisiones utilizados por Dolibarr -MAIN_MAX_DECIMALS_UNIT=Decimales máximos para los precios unitarios -MAIN_MAX_DECIMALS_TOT=Decimales máximos para los precios totales -MAIN_MAX_DECIMALS_SHOWN=Decimales máximos para los importes mostrados en pantalla (Poner ... después del máximo si quiere ver ... cuando el número se trunque al mostrarlo en pantalla) -MAIN_ROUNDING_RULE_TOT=Salto de rango de redondeo (para países donde el redondeo se realiza diferente a base 10. Por ejemplo, ponga 0.05 si el redondeo se hace en saltos de 0.05) -UnitPriceOfProduct=Precio unitario sin IVA de un producto -TotalPriceAfterRounding=Precio total después del redondeo -ParameterActiveForNextInputOnly=Parámetro efectivo solamente a partir de las próximas sesiones -NoEventOrNoAuditSetup=No se han registrado eventos de seguridad. Esto puede ser normal si la auditoría no ha sido habilitada en la página "configuración->seguridad->auditoría". -NoEventFoundWithCriteria=No se han encontrado eventos de seguridad para tales criterios de búsqueda. -SeeLocalSendMailSetup=Ver la configuración local de sendmail -BackupDesc=Para realizar una copia de seguridad completa de Dolibarr, usted debe: -BackupDesc2=Guarde el contenido del directorio de documentos (%s), contiene todos los archivos subidos y generados (Por lo que incluye todos los archivos de copias generados en el paso 1). -BackupDesc3=Guardar el contenido de su base de datos (%s) en un archivo de volcado. Para ello puede utilizar el asistente a continuación. -BackupDescX=El directorio archivado deberá guardarse en un lugar seguro. -BackupDescY=El archivo de volcado generado deberá guardarse en un lugar seguro. -BackupPHPWarning=La copia de seguridad no puede ser garantizada con este método. Es preferible utilizar el anterior -RestoreDesc=Para restaurar una copia de seguridad de Dolibarr, usted debe: -RestoreDesc2=Tomar el archivo (archivo zip, por ejemplo) del directorio de los documentos y descomprimirlo en el directorio de los documentos de una nueva instalación de Dolibarr o en la carpeta de los documentos de esta instalación (%s). -RestoreDesc3=Restaurar el archivo de volcado guardado en la base de datos de la nueva instalación de Dolibarr o de esta instalación (%s). Atención, una vez realizada la restauración, deberá utilizar un login/contraseña de administrador existente en el momento de la copia de seguridad para conectarse. Para restaurar la base de datos en la instalación actual, puede utilizar el asistente a continuación. -RestoreMySQL=Importación MySQL -ForcedToByAModule= Esta regla está forzada a %s por uno de los módulos activados -PreviousDumpFiles=Archivos de copia de seguridad de la base de datos disponibles -WeekStartOnDay=Primer día de la semana -RunningUpdateProcessMayBeRequired=Parece necesario realizar el proceso de actualización (la versión del programa %s difiere de la versión de la base de datos %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Debe ejecutar el comando desde un shell después de haber iniciado sesión con la cuenta %s. -YourPHPDoesNotHaveSSLSupport=Funciones SSL no disponibles en su PHP -DownloadMoreSkins=Más temas para descargar -SimpleNumRefModelDesc=Devuelve el número bajo el formato %syymm-nnnn donde yy es el año, mm el mes y nnnn un contador secuencial sin ruptura y sin volver a 0 -ShowProfIdInAddress=Mostrar el identificador profesional en las direcciones de los documentos -ShowVATIntaInAddress=Ocultar el identificador IVA en las direcciones de los documentos -TranslationUncomplete=Traducción parcial -MAIN_DISABLE_METEO=Deshabilitar la vista meteorológica -TestLoginToAPI=Comprobar conexión a la API -ProxyDesc=Algunas de las características de Dolibarr requieren que el servidor tenga acceso a Internet. Defina aqui los parámetros para dicho acceso. Si el servidor está detrás de un proxy, estos parámetros indican a Dolibarr cómo pasarlo. -ExternalAccess=Acceso externo -MAIN_PROXY_USE=Usar un servidor proxy (si no acceso directo a Internet) -MAIN_PROXY_HOST=Nombre/Dirección del servidor proxy -MAIN_PROXY_PORT=Puerto del servidor proxy -MAIN_PROXY_USER=Login del servidor proxy -MAIN_PROXY_PASS=Contraseña del servidor proxy -DefineHereComplementaryAttributes=Defina aquí la lista de atributos adicionales, no disponibles por defecto, y que desea gestionar para %s. -ExtraFields=Atributos adicionales -ExtraFieldsLines=Atributos adicionales (líneas) -ExtraFieldsSupplierOrdersLines=Atributos complementarios (líneas de pedido) -ExtraFieldsSupplierInvoicesLines=Atributos complementarios (líneas de factura) -ExtraFieldsThirdParties=Atributos adicionales (terceros) -ExtraFieldsContacts=Atributos adicionales (contactos/direcciones) -ExtraFieldsMember=Atributos adicionales (miembros) -ExtraFieldsMemberType=Atributos adicionales (tipos de miembros) -ExtraFieldsCustomerInvoices=Atributos adicionales (facturas a clientes) -ExtraFieldsSupplierOrders=Atributos adicionales (pedidos a proveedores) -ExtraFieldsSupplierInvoices=Atributos adicionales (facturas) -ExtraFieldsProject=Atributos adicionales (proyectos) -ExtraFieldsProjectTask=Atributos adicionales (tareas) -ExtraFieldHasWrongValue=El atributo %s tiene un valor no válido -AlphaNumOnlyLowerCharsAndNoSpace=sólo alfanuméricos y minúsculas sin espacio -SendmailOptionNotComplete=Atención, en algunos sistemas Linux, con este método de envio, para poder enviar mails en su nombre, la configuración de sendmail debe contener la opción -ba (parámetro mail.force_extra_parameters en el archivo php.ini). Si algunos de sus destinatarios no reciben sus mensajes, pruebe a modificar este parámetro PHP con mail.force_extra_parameters=-ba. -PathToDocuments=Rutas de acceso a documentos -PathDirectory=Directorio -SendmailOptionMayHurtBuggedMTA=La funcionalidad de enviar correo electrónico a través del "correo directo PHP" genera una solicitud que puede ser mal interpretado por algunos servidores de correo. Esto se traduce en mensajes de correo electrónico ilegibles para las personas alojadas en estas plataformas. Este es el caso de clientes en ciertos proveedores de servicios de Internet (Ej: Orange). Esto no es un problema ni de Dolibarr ni de PHP, pero sí del servidor de correo. Sin embargo, puede agregar la opción MAIN_FIX_FOR_BUGGED_MTA con valor 1 en configuración-varios para tratar que Dolibarr evite el error. Otra solución (recomendada) es utilizar el método de envío por SMTP que no tiene este inconveniente. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=Debe activar al menos un módulo. -ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP -YesInSummer=Sí en verano -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Almacenamiento de sesiones cifradas por Suhosin -ConditionIsCurrently=Actualmente la condición es %s -YouUseBestDriver=Está usando el driver %s, actualmente es el mejor driver disponible. -YouDoNotUseBestDriver=Usa el driver %s aunque se recomienda usar el driver %s. -NbOfProductIsLowerThanNoPb=Tiene %s productos/servicios en su base de datos. No es necesaria ninguna optimización en particular. -SearchOptim=Buscar optimización -YouHaveXProductUseSearchOptim=Tiene %s productos en su base de datos. Debería añadir la constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 en Inicio-Configuración-Varios, limitando la búsqueda al principio de la cadena lo que hace posible que la base de datos use el índice y se obtenga una respuesta inmediata. -BrowserIsOK=Usa el navegador web %s. Este navegador está optimizado para la seguridad y el rendimiento. -BrowserIsKO=Usa el navegador web %s. Este navegador es una mala opción para la seguridad, rendimiento y fiabilidad. Aconsejamos utilizar Firefox, Chrome, Opera o Safari. -XDebugInstalled=XDebug está cargado. -XCacheInstalled=XCache está cargado -AddRefInList=Mostrar código de cliente/proveedor en los listados (y selectores) y enlaces. Los terceros aparecerán con el nombre "CC12345 - SC45678 - The big company coorp", en lugar de "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edición del campo %s -FillThisOnlyIfRequired=Ejemplo: +2 (Complete sólo si se registra una desviación del tiempo en la exportación) -GetBarCode=Obtener código de barras -##### Module password generation -PasswordGenerationStandard=Devuelve una contraseña generada por el algoritmo interno Dolibarr: 8 caracteres, números y caracteres en minúsculas mezcladas. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Norma para la generación de las contraseñas propuestas -DisableForgetPasswordLinkOnLogonPage=No mostrar el vínculo "Contraseña olvidada" en la página de login -UsersSetup=Configuración del módulo usuarios -UserMailRequired=E-Mail necesario para crear un usuario nuevo -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Configuración del módulo terceros -CompanyCodeChecker=Módulo de generación y control de los códigos de terceros (clientes/proveedores) -AccountCodeManager=Módulo de generación de los códigos contables (clientes/proveedores) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Modelos de documentos -DocumentModelOdt=Generación desde los documentos OpenDocument (Archivo .ODT OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Marca de agua en los documentos borrador -JSOnPaimentBill=Activar función para autocompletar las líneas de pago en la entrada de pagos -CompanyIdProfChecker=Reglas sobre los ID profesionales -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=Un vínculo de exportación del calendario en formato %s estará disponible en la url: %s -##### Invoices ##### -BillsSetup=Configuración del módulo Facturas -BillsNumberingModule=Módulo de numeración de facturas y abonos -BillsPDFModules=Modelo de documento de facturas -CreditNote=Abono -CreditNotes=Abonos -ForceInvoiceDate=Forzar la fecha de factura a la fecha de validación -SuggestedPaymentModesIfNotDefinedInInvoice=Formas de pago sugeridas para las facturas si no están definidas explícitamente -SuggestPaymentByRIBOnAccount=Sugerir el pago por abono en cuenta -SuggestPaymentByChequeToAddress=Sugerir el pago por cheque a -FreeLegalTextOnInvoices=Texto libre en facturas -WatermarkOnDraftInvoices=Marca de agua en las facturas borrador (en caso de estar vacío) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Pagos a proveedores -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Configuración del módulo Presupuestos -ProposalsNumberingModules=Módulos de numeración de presupuestos -ProposalsPDFModules=Modelos de documentos de presupuestos -FreeLegalTextOnProposal=Texto libre en presupuestos -WatermarkOnDraftProposal=Marca de agua en presupuestos borrador (en caso de estar vacío) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Preguntar por cuenta bancaria a usar en el presupuesto -##### SupplierProposal ##### SupplierProposalSetup=Configuración del módulo Solicitudes a proveedor SupplierProposalNumberingModules=Modelos de numeración de solicitud de precios a proveedor SupplierProposalPDFModules=Modelos de documentos de solicitud de precios a proveedores FreeLegalTextOnSupplierProposal=Texto libre en solicitudes de precios a proveedores WatermarkOnDraftSupplierProposal=Marca de agua en solicitudes de precios a proveedor (en caso de estar vacío) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Preguntar por cuenta bancaria a usar en el presupuesto -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Configuración del módulo pedidos -OrdersNumberingModules=Módulos de numeración de los pedidos -OrdersModelModule=Modelos de documentos de pedidos -FreeLegalTextOnOrders=Texto libre en pedidos -WatermarkOnDraftOrders=Marca de agua en pedidos borrador (en caso de estar vacío) -ShippableOrderIconInList=Añadir un icono en el listado de pedidos que indica si el pedido es enviable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Preguntar por cuenta bancaria a usar en el pedido -##### Interventions ##### -InterventionsSetup=Configuración del módulo intervenciones -FreeLegalTextOnInterventions=Texto adicional en las fichas de intervención -FicheinterNumberingModules=Módulos de numeración de las fichas de intervención -TemplatePDFInterventions=Modelo de documentos de las fichas de intervención -WatermarkOnDraftInterventionCards=Marca de agua en fichas de intervención (en caso de estar vacío) -##### Contracts ##### -ContractsSetup=Configuración del módulo Contratos/suscripciones -ContractsNumberingModules=Módulos de numeración de los contratos -TemplatePDFContracts=Modelos de documento de contratos -FreeLegalTextOnContracts=Texto libre en contratos -WatermarkOnDraftContractCards=Marca de agua en contratos (nada si está vacía) -##### Members ##### -MembersSetup=Configuración del módulo Asociaciones -MemberMainOptions=Opciones principales -AdherentLoginRequired= Gestionar un login para cada miembro -AdherentMailRequired=E-Mail obligatorio para crear un miembro nuevo -MemberSendInformationByMailByDefault=Casilla de verificación para enviar el correo de confirmación (validación ó nueva cotización) a los miembros es por defecto "sí" -##### LDAP setup ##### -LDAPSetup=Configuración del módulo LDAP -LDAPGlobalParameters=Parámetros globales -LDAPUsersSynchro=Usuarios -LDAPGroupsSynchro=Grupos -LDAPContactsSynchro=Contactos -LDAPMembersSynchro=Miembros -LDAPSynchronization=Sincronización LDAP -LDAPFunctionsNotAvailableOnPHP=Las funciones LDAP no están disponibles en su PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Clave en LDAP -LDAPSynchronizeUsers=Organización de los usuarios en LDAP -LDAPSynchronizeGroups=Organización de los grupos en LDAP -LDAPSynchronizeContacts=Organización de los contactos en LDAP -LDAPSynchronizeMembers=Organización de los miembros en LDAP -LDAPPrimaryServer=Servidor primario -LDAPSecondaryServer=Servidor secundario -LDAPServerPort=Puerto del servidor -LDAPServerPortExample=Puerto por defecto : 389 -LDAPServerProtocolVersion=Versión de protocolo -LDAPServerUseTLS=Usuario TLS -LDAPServerUseTLSExample=Su servidor utiliza TLS -LDAPServerDn=DN del servidor -LDAPAdminDn=DN del administrador -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Contraseña del administrador -LDAPUserDn=DN de los usuarios -LDAPUserDnExample=DN completo (ej: ou=users,dc=example,dc=com) -LDAPGroupDn=DN de los grupos -LDAPGroupDnExample=DN completo (ej: ou=groups,dc=example,dc=com) -LDAPServerExample=Dirección del servidor (ej: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=DN completo (ej: dc=my-domain,dc=com) -LDAPDnSynchroActive=Sincronización de usuarios y grupos -LDAPDnSynchroActiveExample=Sincronización LDAP hacia Dolibarr o Dolibarr hacia LDAP -LDAPDnContactActive=Sincronización de contactos -LDAPDnContactActiveExample=Sincronización activada/desactivada -LDAPDnMemberActive=Sincronización de los miembros -LDAPDnMemberActiveExample=Sincronización activada/desactivada -LDAPContactDn=DN de los contactos Dolibarr -LDAPContactDnExample=DN completo (ej: ou=contacts,dc=example,dc=com) -LDAPMemberDn=DN de los miembros -LDAPMemberDnExample=DN completo (ex: ou=members,dc=society,dc=com) -LDAPMemberObjectClassList=Lista de objectClass -LDAPMemberObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) -LDAPUserObjectClassList=Lista de objectClass -LDAPUserObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) -LDAPGroupObjectClassList=Lista de objectClass -LDAPGroupObjectClassListExample=Lista de ObjectClass que definen los atributos de un registro (ej: top,groupOfUniqueNames) -LDAPContactObjectClassList=Lista de objectClass -LDAPContactObjectClassListExample=Lista de objectClass que definen los atributos de un registro (ej: top,inetOrgPerson o top,user for active directory) -LDAPTestConnect=Probar la conexión LDAP -LDAPTestSynchroContact=Probar la sincronización de contactos -LDAPTestSynchroUser=Probar la sincronización de usuarios -LDAPTestSynchroGroup=Probar la sincronización de grupos -LDAPTestSynchroMember=Probar la sincronización de miembros -LDAPTestSearch= Probar una búsqueda LDAP -LDAPSynchroOK=Prueba de sincronización realizada correctamente -LDAPSynchroKO=Prueba de sincronización erronea -LDAPSynchroKOMayBePermissions=Error de la prueba de sincronización. Compruebe que la conexión al servidor sea correcta y que permite las actualizaciones LDAP -LDAPTCPConnectOK=Conexión TCP al servidor LDAP efectuada (Servidor=%s, Puerto=%s) -LDAPTCPConnectKO=Fallo de conexión TCP al servidor LDAP (Servidor=%s, Puerto=%s) -LDAPBindOK=Conexión/Autenticación realizada al servidor LDAP (Servidor=%s, Puerto=%s, Admin=%s, Password=%s) -LDAPBindKO=Fallo de conexión/autentificación al servidor LDAP (Servidor=%s, Puerto=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=Servidor LDAP configurado en versión 3 -LDAPSetupForVersion2=Servidor LDAP configurado en versión 2 -LDAPDolibarrMapping=Mapping Dolibarr -LDAPLdapMapping=Mapping LDAP -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Ejemplo : uid -LDAPFilterConnection=Filtro de búsqueda -LDAPFilterConnectionExample=Ejemplo : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Ejemplo : samaccountname -LDAPFieldFullname=Nombre completo -LDAPFieldFullnameExample=Ejemplo : cn -LDAPFieldPasswordNotCrypted=Contraseña no encriptada -LDAPFieldPasswordCrypted=Contraseña encriptada -LDAPFieldPasswordExample=Ejemplo : userPassword -LDAPFieldCommonNameExample=Ejemplo : cn -LDAPFieldName=Nombre -LDAPFieldNameExample=Ejemplo : sn -LDAPFieldFirstName=Nombre -LDAPFieldFirstNameExample=Ejemplo : givenName -LDAPFieldMail=E-Mail -LDAPFieldMailExample=Ejemplo : mail -LDAPFieldPhone=Teléfono trabajo -LDAPFieldPhoneExample=Ejemplo : telephonenumber -LDAPFieldHomePhone=Teléfono personal -LDAPFieldHomePhoneExample=Ejemplo : homephone -LDAPFieldMobile=Teléfono móvil -LDAPFieldMobileExample=Ejemplo : mobile -LDAPFieldFax=Fax -LDAPFieldFaxExample=Ejemplo : facsimiletelephonenumber -LDAPFieldAddress=Dirección -LDAPFieldAddressExample=Ejemplo : street -LDAPFieldZip=Código postal -LDAPFieldZipExample=Ejemplo : postalcode -LDAPFieldTown=Población -LDAPFieldTownExample=Ejemplo : l -LDAPFieldCountry=País -LDAPFieldDescription=Descripción -LDAPFieldDescriptionExample=Ejemplo : description -LDAPFieldNotePublic=Nota Pública -LDAPFieldNotePublicExample=Ejemplo: publicnote -LDAPFieldGroupMembers= Miembros del grupo -LDAPFieldGroupMembersExample= Ejemplo: uniqueMember -LDAPFieldBirthdate=Fecha de nacimiento -LDAPFieldCompany=Empresa -LDAPFieldCompanyExample=Ejemplo : o -LDAPFieldSid=SID -LDAPFieldSidExample=Ejemplo : objectsid -LDAPFieldEndLastSubscription=Fecha finalización como miembro -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Ejemplo:titulo -LDAPSetupNotComplete=Configuración LDAP incompleta (a completar en las otras pestañas) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Administrador o contraseña no indicados. Los accesos LDAP serán anónimos y en solo lectura. -LDAPDescContact=Esta página permite definir el nombre de los atributos del árbol LDAP para cada información de los contactos Dolibarr. -LDAPDescUsers=Esta página permite definir el nombre de los atributos del árbol LDAP para cada información de los usuarios Dolibarr. -LDAPDescGroups=Esta página permite definir el nombre de los atributos del árbol LDAP para cada información de los grupos usuarios Dolibarr. -LDAPDescMembers=Esta página permite definir el nombre de los atributos del árbol LDAP para cada información de los miembros del módulo Asociaciones Dolibarr. -LDAPDescValues=Los valores de ejemplos se adaptan a OpenLDAP con los schemas cargados: core.schema, cosine.schema, inetorgperson.schema). Si usted utiliza los a valores sugeridos y OpenLDAP, modifique su archivo de configuración LDAP slapd.conf para tener todos estos schemas activos. -ForANonAnonymousAccess=Para un acceso autentificado -PerfDolibarr=Configuración rendimiento/informe de optimización -YouMayFindPerfAdviceHere=En esta página encontrará varias pruebas y consejos relacionados con el rendimiento. -NotInstalled=No instalado, por lo que su servidor no baja de rendimiento con esto. -ApplicativeCache=Aplicación caché -MemcachedNotAvailable=No se ha encontrado una aplicación de cache. Puede mejorar el rendimiento instalando un cache server Memcached y un módulo capaz de usar ese servidor de cache.
Más información aquí http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Tenga en cuenta que algunos hostings no ofrecen servidores de cache. -MemcachedModuleAvailableButNotSetup=Módulo memcached para el caché aplicativo encontrado pero la configuración del módulo no está completa. -MemcachedAvailableAndSetup=Memcached módulo dedicado a utilizar el servidor memcached está disponible. -OPCodeCache=OPCode caché -NoOPCodeCacheFound=No se ha encontrado ningún OPCode caché. Puede ser que esté usando otro OPCode como XCache o eAccelerator (mejor), o puede que no tenga OPCode caché (peor). -HTTPCacheStaticResources=Caché HTTP para estadísticas de recursos (css, img, javascript) -FilesOfTypeCached=Archivos de tipo %s se almacenan en caché por el servidor HTTP -FilesOfTypeNotCached=Archivos de tipo %s no se almacenan en caché por el servidor HTTP -FilesOfTypeCompressed=Archivos de tipo %s son comprimidos por el servidor HTTP -FilesOfTypeNotCompressed=Archivos de tipo %s no son comprimidos por el servidor HTTP -CacheByServer=Caché mediante el servidor -CacheByClient=Caché mediante el navegador -CompressionOfResources=Compresión de las respuestas HTTP -TestNotPossibleWithCurrentBrowsers=La detección automática no es posible con el navegador actual -##### Products ##### -ProductSetup=Configuración del módulo Productos -ServiceSetup=Configuración del módulo Servicios -ProductServiceSetup=Configuración de los módulos Productos y Servicios -NumberOfProductShowInSelect=Nº de productos máx. en las listas (0=sin límite) -ViewProductDescInFormAbility=Visualización de las descripciones de los productos en los formularios -MergePropalProductCard=Activar en el producto/servicio la pestaña Documentos una opción para fusionar documentos PDF de productos al presupuesto PDF azur si el producto/servicio se encuentra en el presupuesto -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=También si usted tiene una gran cantidad de producto (> 100 000), puede aumentar la velocidad mediante el establecimiento PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 en Configuración-> Otros. La búsqueda será limitada a la creación de cadena. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por defecto para los productos -SetDefaultBarcodeTypeThirdParties=Tipo de código de barras utilizado por defecto para los terceros -UseUnits=Definir una unidad de medida para la Cantidad en la edición de líneas de pedidos, presupuetos o facturas -ProductCodeChecker= Módulo para la generación y comprobación del código de un producto o servicio -ProductOtherConf= Configuración de productos/servicios -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Configuración del módulo Syslog -SyslogOutput=Salida del log -SyslogFacility=Facilidad -SyslogLevel=Nivel -SyslogFilename=Nombre y ruta del archivo -YouCanUseDOL_DATA_ROOT=Puede utilizar DOL_DATA_ROOT/dolibarr.log para un registro en el directorio "documentos" de Dolibarr. Sin embargo, puede establecer un directorio diferente para guardar este archivo. -ErrorUnknownSyslogConstant=La constante %s no es una constante syslog conocida -OnlyWindowsLOG_USER=Windows sólo soporta LOG_USER -##### Donations ##### -DonationsSetup=Configuración del módulo donaciones -DonationsReceiptModel=Modelo recepción de donaciones -##### Barcode ##### -BarcodeSetup=Configuración de los códigos de barras -PaperFormatModule=Módulos de formatos de impresión -BarcodeEncodeModule=Módulos de codificación de los códigos de barras -CodeBarGenerator=Generador del código -ChooseABarCode=Ningún generador seleccionado -FormatNotSupportedByGenerator=Formato no generado por este generador -BarcodeDescEAN8=Códigos de barras tipo EAN8 -BarcodeDescEAN13=Códigos de barras tipo EAN13 -BarcodeDescUPC=Códigos de barras tipo UPC -BarcodeDescISBN=Códigos de barras tipo ISBN -BarcodeDescC39=Códigos de barras tipo C39 -BarcodeDescC128=Códigos de barras tipo C128 -BarcodeDescDATAMATRIX=Códigos de barras tipo Datamatrix -BarcodeDescQRCODE=Códigos de barras tipo código QR -GenbarcodeLocation=Herramienta de generación de códigos de barras en consola (usad por el motor interno para determinados tipos de códigos de barras). Debe de ser compatible con "genbarcode".
Por ejemplo: /usr/local/bin/genbarcode -BarcodeInternalEngine=Motor interno -BarCodeNumberManager=Gestor para auto definir números de código de barras -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=Configuración de las importaciones del flujo RSS -NewRSS=Sindicación de un nuevo flujo RSS -RSSUrl=URL del RSS -RSSUrlExample=Un flujo RSS interesante -##### Mailing ##### -MailingSetup=Configuración del módulo E-Mailing -MailingEMailFrom=E-Mail emisor (From) de los correos enviados por E-Mailing -MailingEMailError=E-Mail de respuesta (Errors-to) para las respuestas acerca de envíos por e-mailing con error. -MailingDelay=Segundos de espera después de enviar el mensaje siguiente -##### Notification ##### -NotificationSetup=Configuración del módulo notificaciones -NotificationEMailFrom=E-Mail emisor (From) de los correos enviados a través de notificaciones -FixedEmailTarget=Destinatario fijo -##### Sendings ##### -SendingsSetup=Configuración del módulo Expediciones -SendingsReceiptModel=Modelo de notas de entrega -SendingsNumberingModules=Módulos de numeración de notas de entrega -SendingsAbility=Soporte de hojas de envío para entregas a clientes -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Texto libre en envíos -##### Deliveries ##### -DeliveryOrderNumberingModules=Módulos de numeración de las notas de recepción -DeliveryOrderModel=Modelo de notas de recepción -DeliveriesOrderAbility=Uso de notas de recepción -FreeLegalTextOnDeliveryReceipts=Texto libre en las notas de recepción -##### FCKeditor ##### -AdvancedEditor=Editor avanzado -ActivateFCKeditor=Activar editor avanzado para : -FCKeditorForCompany=Creación/edición WYSIWIG de la descripción y notas de los terceros -FCKeditorForProduct=Creación/edición WYSIWIG de la descripción y notas de los productos/servicios -FCKeditorForProductDetails=Creación/edición WYSIWIG de las líneas de detalle de los productos (pedidos, presupuestos, facturas, etc.). Atención: El uso de esta opción no es recomendable ya que puede crear problemas con los caracteres especiales y el formateo de página al generar archivos PDF. -FCKeditorForMailing= Creación/edición WYSIWIG de los E-Mails (Utilidades->E-Mailings) -FCKeditorForUserSignature=Creación/edición WYSIWIG de la firma de usuarios -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=La conexión se ha establecido, pero la base de datos no parece de OSCommerce. -OSCommerceTestOk=La conexión al servidor '%s' sobre la base '%s' por el usuario '%s' es correcta. -OSCommerceTestKo1=La conexión al servidor '%s' sobre la base '%s' por el usuario '%s' no se pudo efectuar. -OSCommerceTestKo2=La conexión al servidor '%s' por el usuario '%s' ha fallado. -##### Stock ##### -StockSetup=Configuración del módulo Almacenes -IfYouUsePointOfSaleCheckModule=Si utiliza un módulo de Punto de Venta (módulo TPV por defecto u otro módulo externo), esta configuración puede ser ignorada por su módulo de Punto de Venta. La mayor parte de módulos TPV están diseñados para crear inmediatamente una factura y decrementar stocks cualquiera que sean estas opciones. Por lo tanto, si usted necesita o no decrementar stocks en el registro de una venta de su punto de venta, controle también la configuración de su módulo TPV. -##### Menu ##### -MenuDeleted=Menú eliminado -Menus=Menús -TreeMenuPersonalized=Menús personalizados -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=Nuevo menú -Menu=Selección de los menús -MenuHandler=Gestor de menús -MenuModule=Módulo origen -HideUnauthorizedMenu= Ocultar también los menús no autorizados a usuarios internos (si no sólo atenuados) -DetailId=Identificador del menú -DetailMenuHandler=Nombre del gestor de menús -DetailMenuModule=Nombre del módulo si la entrada del menú es resultante de un módulo -DetailType=Tipo de menú (superior o izquierdo) -DetailTitre=Etiqueta de menú -DetailUrl=URL de la página hacia la cual el menú apunta -DetailEnabled=Condición de mostrar o no -DetailRight=Condición de visualización completa o restringida -DetailLangs=Archivo .lang para la traducción del título -DetailUser=Interno / Externo / Todos -Target=Destinatario -DetailTarget=Comportamiento del enlace (_blank para abrir una nueva ventana) -DetailLevel=Nivel (-1:menú superior, 0:principal, >0 menú y submenú) -ModifMenu=Modificación del menú -DeleteMenu=Eliminar entrada de menú -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Configuración del módulo impuestos sociales o fiscales -OptionVatMode=Opción de carga de IVA -OptionVATDefault=Criterio de caja -OptionVATDebitOption=Criterio de devengo -OptionVatDefaultDesc=La carga del IVA es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre el pago por los servicios -OptionVatDebitOptionDesc=La carga del IVA es:
-en el envío de los bienes (en la práctica se usa la fecha de la factura)
-sobre la facturación de los servicios -SummaryOfVatExigibilityUsedByDefault=Tiempo de exigibilidad de IVA por defecto según la opción eligida -OnDelivery=En la entrega -OnPayment=En el pago -OnInvoice=En la factura -SupposedToBePaymentDate=Fecha de pago usada -SupposedToBeInvoiceDate=Fecha de factura usada -Buy=Compra -Sell=Venta -InvoiceDateUsed=Fecha usada de factura -YourCompanyDoesNotUseVAT=Su empresa está configurada como no sujeta al IVA (Inicio - Configuración - Empresa/Institución), por lo que no hay opción para la paremetrización del IVA. -AccountancyCode=Código contable -AccountancyCodeSell=Código contable ventas -AccountancyCodeBuy=Código contable compras -##### Agenda ##### -AgendaSetup=Módulo configuración de acciones y agenda -PasswordTogetVCalExport=Clave de autorización vcal export link -PastDelayVCalExport=No exportar los eventos de más de -AGENDA_USE_EVENT_TYPE=Usar tipos de evento (gestionados en el menú Configuración->Diccionarios->Tipos de eventos de la agenda) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Establecer por defecto este tipo de evento en el filtro de búsqueda en la vista de la agenda -AGENDA_DEFAULT_FILTER_STATUS=Establecer por defecto este estado de eventos en el filtro de búsqueda en la vista de la agenda -AGENDA_DEFAULT_VIEW=Establecer la pestaña por defecto al seleccionar el menú Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Configuración del módulo Click To Dial -ClickToDialUrlDesc=URL de llamada haciendo click en el icono teléfono.
La URL completa de llamada será: URL?login=...&password=...&caller=...&called=telellamada -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=TPV -CashDeskSetup=Configuración del módulo Terminal Punto de Venta -CashDeskThirdPartyForSell=Tercero genérico a usar para las ventas -CashDeskBankAccountForSell=Cuenta por defecto a utilizar para los cobros en efectivo (caja) -CashDeskBankAccountForCheque= Cuenta por defecto a utilizar para los cobros con cheques -CashDeskBankAccountForCB= Cuenta por defecto a utilizar para los cobros con tarjeta de crédito -CashDeskDoNotDecreaseStock=Desactivar decremento de stock si una venta es realizada desde un Punto de Venta (si "no", el decremento de stock es realizado desde el TPV, cualquiera que sea la opción indicada en el módulo Stock). -CashDeskIdWareHouse=Forzar y restringir almacén a usar para decremento de stock -StockDecreaseForPointOfSaleDisabled=Decremento de stock desde TPV desactivado -StockDecreaseForPointOfSaleDisabledbyBatch=El decremento de stock en TPV no es compatible con la gestión de lotes -CashDeskYouDidNotDisableStockDecease=Usted no ha desactivado el decremento de stock al hacer una venta desde TPV. Así que se requiere un almacén. -##### Bookmark ##### -BookmarkSetup=Configuración del módulo Marcadores -BookmarkDesc=Este módulo le permite gestionar los enlaces y accesos directos. También permite añadir cualquier página de Dolibarr o enlace web en el menú de acceso rápido de la izquierda. -NbOfBoomarkToShow=Número máximo de marcadores que se mostrará en el menú -##### WebServices ##### -WebServicesSetup=Configuración del módulo Web services -WebServicesDesc=Mediante la activación de este módulo, Dolibarr se convierte en servidor de servicios web ofreciendo diversos servicios web. -WSDLCanBeDownloadedHere=La descripción WSDL de los servicios prestados se pueden recuperar aquí -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=Configuración del módulo API -ApiDesc=Mediante la activación de este módulo, Dolibarr se convierte en un servidor REST ofreciendo diversos servicios web. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Sólo son expuestos los elementos de los módulos activos -ApiKey=Clave para API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Configuración del módulo Banco -FreeLegalTextOnChequeReceipts=Mención complementaria en las remesas de cheques -BankOrderShow=Orden de visualización de la información bancaria al usar la "cuenta bancaria detallada" -BankOrderGlobal=General -BankOrderGlobalDesc=Orden de visualización general -BankOrderES=Español -BankOrderESDesc=Orden de visualización español -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Configuración del módulo Multi-empresa -##### Suppliers ##### -SuppliersSetup=Configuración del módulo Proveedores -SuppliersCommandModel=Modelo de pedidos a proveedores completo (logo...) -SuppliersInvoiceModel=Modelo de facturas de proveedores completo (logo...) -SuppliersInvoiceNumberingModel=Modelos de numeración de facturas de proveedor -IfSetToYesDontForgetPermission=Si está seleccionado, no olvides de modificar los permisos en los grupos o usuarios para permitir la segunda aprobación -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=Configuración del módulo GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Ruta del archivo Maxmind que contiene las conversiones IP->País.
Ejemplo: /usr/local/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Tenga en cuenta que este archivo debe estar en un directorio accesible desde su PHP (Compruebe la configuración de open_basedir de su PHP y los permisos de archivo/directorios). -YouCanDownloadFreeDatFileTo=Puede descargarse una versión demo gratuita del archivo de países Maxmind GeoIP en la dirección %s. -YouCanDownloadAdvancedDatFileTo=También puede descargarse una versión más completa del archivo de países Maxmind GeoIP en la dirección %s. -TestGeoIPResult=Test de conversión IP -> País -##### Projects ##### -ProjectsNumberingModules=Módulo de numeración para las referencias de los proyectos -ProjectsSetup=Configuración del módulo Proyectos -ProjectsModelModule=Modelo de documento para informes de proyectos -TasksNumberingModules=Módulo numeración de tareas -TaskModelModule=Módulo de documentos informes de tareas -UseSearchToSelectProject=Utilice los campos de autocompletar para seleccionar proyectos (en lugar de utilizar un cuadro de lista). -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Puede editarse siempre -MAIN_APPLICATION_TITLE=Forzar visibilidad del nombre de aplicación (advertencia: indicar su propio nombre aquí puede romper la característica de relleno automático de inicio de sesión al utilizar la aplicación móvil DoliDroid) -NbMajMin=Número mínimo de caracteres en mayúsculas -NbNumMin=Número mínimo de caracteres numéricos -NbSpeMin=Número mínimo de caracteres especiales -NbIteConsecutive=Número máximo de repeticiones de los mismos caracteres -NoAmbiCaracAutoGeneration=No usar caracteres ambiguos ("1","l","i","|","0","O") para la generación automática -SalariesSetup=Configuración del módulo salarios -SortOrder=Ordenación -Format=Formatear -TypePaymentDesc=0:Pago cliente,1:Pago proveedor,2:Tanto pago de cliente como de proveedor -IncludePath=Include path (definida en la variable %s) -ExpenseReportsSetup=Configuración del módulo Informe de Gastos -TemplatePDFExpenseReports=Modelos de documento para generar informes de gastos -NoModueToManageStockIncrease=No hay activado módulo para gestionar automáticamente el incremento de stock. El incremento de stock se realizará solamente con entrada manual -YouMayFindNotificationsFeaturesIntoModuleNotification=Puede encontrar opciones para notificaciones de e-mail activando y configurando el módulo "Notificaciones". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=Listado de notificaciones fijas -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Valor mínimo/umbral -BackupDumpWizard=Asistente para crear una copia de seguridad de la base de datos -SomethingMakeInstallFromWebNotPossible=No es posible la instalación de módulos externos desde la interfaz web por la siguiente razón: -SomethingMakeInstallFromWebNotPossible2=Por esta razón, explicaremos aquí los pasos del proceso de actualización manual que puede realizar un usuario con privilegios. -InstallModuleFromWebHasBeenDisabledByFile=La instalación de módulos externos desde la aplicación se encuentra desactivada por el administrador. Debe requerirle que elimine el archivo %s para habilitar esta funcionalidad. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Resaltar líneas de los listados cuando el ratón pasa por encima de ellas -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Color de fondo -TopMenuBackgroundColor=Color de fondo para el Menú superior -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Color de fondo para el Menú izquierdo -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Color de fondo para líneas de tabla odd -BackgroundTableLineEvenColor=Color de fondo para todas las líneas de tabl -MinimumNoticePeriod=Período mínimo de notificación (Su solicitud de licencia debe hacerse antes de este período) -NbAddedAutomatically=Número de días adicionales que se añaden automáticamente a los contadores de usuarios cada mes -EnterAnyCode=Este campo contiene una referencia para identificar la línea. Introduzca cualquier valor de su elección, pero sin caracteres especiales. -UnicodeCurrency=Ingrese aquí entre llaves, lista con número de byte que representa el símbolo de moneda. Por ejemplo: para $, introduzca [36] - para Brasil Real R$ [82,36] - para €, introduzca [8364] -PositionIntoComboList=Posición de la línea en listas de combo -SellTaxRate=Tasa de IVA -RecuperableOnly=Sí para el IVA "Non Perçue Récupérable" usados en algunas provincias en Francia. Mantenga el valor a "No" en los demás casos. -UrlTrackingDesc=Si el proveedor o el servicio de transporte ofrecen una página o un sitio web para comprobar el estado de su envío, puede indicarlo aquí. Puede utilizar la tecla {TRACKID} en los parámetros de URL y el sistema lo reemplazará con el valor del número de seguimiento introducido en la ficha de envío. -OpportunityPercent=Cuando crea una oportunidad, defina una cantidad estimada del proyecto/lead. De acuerdo con el estado de la oportunidad, esta cantidad puede ser multiplicateda por esta tasa para evaluar importe global que todas sus oportunidades pueden generar. El valor es por ciento (entre 0 y 100). -TemplateForElement=Este registro de plantilla se dedica a qué elemento -TypeOfTemplate=Tipo de plantilla -TemplateIsVisibleByOwnerOnly=La plantilla es visible solamente por el propietario -FixTZ=Corrección de zona horaria -FillFixTZOnlyIfRequired=Ejemplo: +2 (complete sólo si tiene problemas) -ExpectedChecksum=Esperando la suma de comprobación -CurrentChecksum=Suma de comprobación actual -ForcedConstants=Required constant values -MailToSendProposal=Para enviar presupuesto a cliente -MailToSendOrder=Para enviar pedido de cliente -MailToSendInvoice=Para enviar factura a cliente -MailToSendShipment=Para enviar envío -MailToSendIntervention=Para enviar intervención -MailToSendSupplierRequestForQuotation=Para enviar solicitud de presupuesto de proveedor -MailToSendSupplierOrder=Para enviar pedido a proveedor -MailToSendSupplierInvoice=Para enviar factura de proveedor -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/es_VE/main.lang b/htdocs/langs/es_VE/main.lang index 75205265f83..749498bb3d6 100644 --- a/htdocs/langs/es_VE/main.lang +++ b/htdocs/langs/es_VE/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,18 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Conexión a la base de datos -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=Sin traducción -NoRecordFound=No se han encontrado registros -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=Ningún error -Error=Error -Errors=Errores -ErrorFieldRequired=El campo '%s' es obligatorio -ErrorFieldFormat=El campo '%s' tiene un valor incorrecto -ErrorFileDoesNotExists=El archivo %s no existe -ErrorFailedToOpenFile=Imposible abrir el archivo %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parámetro %s no definido -ErrorUnknown=Error desconocido -ErrorSQL=Error de SQL -ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra -ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir -ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir -ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatario=%s) -ErrorFileNotUploaded=El archivo no se ha podido transferir -ErrorInternalErrorDetected=Error detectado -ErrorWrongHostParameter=Parámetro Servidor inválido -ErrorYourCountryIsNotDefined=Su país no está definido. Corríjalo yendo a Inicio-Configuración-Empresa/Institución-Editar -ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo. -ErrorWrongValue=Valor incorrecto -ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s -ErrorNoRequestInError=Ninguna petición en error -ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde. -ErrorDuplicateField=Duplicado en un campo único -ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas. -ErrorConfigParameterNotDefined=El parámetro %s no está definido en el archivo de configuración Dolibarr conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario %s en la base de datos Dolibarr. -ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'. -ErrorNoSocialContributionForSellerCountry=Error, ningún tipo de tasa social/fiscal definida para el país '%s'. -ErrorFailedToSaveFile=Error, el registro del archivo falló. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Fijar fecha -SelectDate=Seleccione una fecha -SeeAlso=Ver también %s -SeeHere=Vea aquí -Apply=Aplicar -BackgroundColorByDefault=Color de fondo -FileRenamed=The file was successfully renamed -FileUploaded=El archivo se ha subido correctamente -FileGenerated=The file was successfully generated -FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello. -NbOfEntries=Nº de entradas -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Consultar la ayuda -RecordSaved=Registro guardado -RecordDeleted=Registro eliminado -LevelOfFeature=Nivel de funciones -NotDefined=No definida -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrador -Undefined=No definido -PasswordForgotten=Password forgotten? -SeeAbove=Mencionado anteriormente -HomeArea=Área inicio -LastConnexion=Latest connection -PreviousConnexion=Conexión anterior -PreviousValue=Previous value -ConnectedOnMultiCompany=Conexión a la entidad -ConnectedSince=Conectado desde -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Tipo de gestor de base de datos -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr ha detectado un error técnico -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Más información -TechnicalInformation=Información técnica -TechnicalID=Technical ID -NotePublic=Nota (pública) -NotePrivate=Nota (privada) -PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a %s decimales. -DoTest=Probar -ToFilter=Filtrar -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Atención, tiene al menos un elemento que ha pasado la fecha de tolerancia. -yes=sí -Yes=Sí -no=no -No=No -All=Todo -Home=Inicio -Help=Ayuda -OnlineHelp=Ayuda en línea -PageWiki=Página Wiki -MediaBrowser=Media browser -Always=Siempre -Never=Nunca -Under=Bajo -Period=Periodo -PeriodEndDate=Fecha fin periodo -Activate=Activar -Activated=Activado -Closed=Cerrado -Closed2=Cerrado -NotClosed=Not closed -Enabled=Activado -Deprecated=Obsoleto -Disable=Desactivar -Disabled=Desactivado -Add=Añadir -AddLink=Enlazar -RemoveLink=Eliminar enlace -AddToDraft=Add to draft -Update=Modificar -Close=Cerrar -CloseBox=Remove widget from your dashboard -Confirm=Confirmar -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Eliminar -Remove=Retirar -Resiliate=Terminate -Cancel=Anular -Modify=Modificar -Edit=Editar -Validate=Validar -ValidateAndApprove=Validar y Aprobar -ToValidate=A validar -Save=Grabar -SaveAs=Grabar como -TestConnection=Probar la conexión -ToClone=Copiar -ConfirmClone=Seleccione los datos que desea copiar: -NoCloneOptionsSpecified=No hay datos definidos para copiar -Of=de -Go=Ir -Run=Lanzar -CopyOf=Copia de -Show=Ver -Hide=Hide -ShowCardHere=Ver la ficha aquí -Search=Buscar -SearchOf=Búsqueda de -Valid=Validar -Approve=Aprobar -Disapprove=Desaprobar -ReOpen=Reabrir -Upload=Enviar archivo -ToLink=Enlace -Select=Seleccionar -Choose=Elegir -Resize=Redimensionar -Recenter=Encuadrar -Author=Autor -User=Usuario -Users=Usuarios -Group=Grupo -Groups=Grupos -NoUserGroupDefined=No hay definido grupo de usuarios -Password=Contraseña -PasswordRetype=Repetir contraseña -NoteSomeFeaturesAreDisabled=Atención, sólo unos pocos módulos/funcionalidades han sido activados en esta demo. -Name=Nombre -Person=Persona -Parameter=Parámetro -Parameters=Parámetros -Value=Valor -PersonalValue=Valor personalizado -NewValue=Nuevo valor -CurrentValue=Valor actual -Code=Código -Type=Tipo -Language=Idioma -MultiLanguage=Multiidioma -Note=Nota -Title=Título -Label=Etiqueta -RefOrLabel=Ref. o etiqueta -Info=Log -Family=Familia -Description=Descripción -Designation=Descripción -Model=Doc template -DefaultModel=Default doc template -Action=Acción -About=Acerca de -Number=Número -NumberByMonth=Número por mes -AmountByMonth=Importe por mes -Numero=Número -Limit=Límite -Limits=Límites -Logout=Desconexión -NoLogoutProcessWithAuthMode=Sin funcionalidades de desconexión con el modo de autenticación %s -Connection=Conexión -Setup=Configuración -Alert=Alerta -Previous=Anterior -Next=Siguiente -Cards=Fichas -Card=Ficha -Now=Ahora -HourStart=Hora de inicio -Date=Fecha -DateAndHour=Fecha y hora -DateToday=Today's date -DateReference=Reference date -DateStart=Fecha de inicio DateEnd=Fecha finalización -DateCreation=Fecha de creación -DateCreationShort=Creat. date -DateModification=Fecha de modificación -DateModificationShort=Fecha modif. -DateLastModification=Latest modification date -DateValidation=Fecha de validación -DateClosing=Fecha de cierre -DateDue=Fecha de vencimiento -DateValue=Fecha valor -DateValueShort=Fecha valor -DateOperation=Fecha operación -DateOperationShort=Fecha op. -DateLimit=Fecha límite -DateRequest=Fecha consulta -DateProcess=Fecha proceso -DateBuild=Fecha generación del informe -DatePayment=Fecha pago -DateApprove=Fecha de aprobación -DateApprove2=Fecha de aprobación (segunda aprobación) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=año -DurationMonth=mes -DurationWeek=semana -DurationDay=día -DurationYears=años -DurationMonths=meses -DurationWeeks=semanas -DurationDays=días -Year=Año -Month=Mes -Week=Semana -WeekShort=Semana -Day=Día -Hour=Hora -Minute=Minuto -Second=Segundo -Years=Años -Months=Meses -Days=Días -days=días -Hours=Horas -Minutes=Minutos -Seconds=Segundos -Weeks=Semanas -Today=Hoy -Yesterday=Ayer -Tomorrow=Mañana -Morning=Mañana -Afternoon=Tarde -Quadri=Trimestre -MonthOfDay=Mes del día -HourShort=H -MinuteShort=min -Rate=Tipo -CurrencyRate=Currency conversion rate -UseLocalTax=Incluir tasas -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cortar -Copy=Copiar -Paste=Pegar -Default=Predeterminado -DefaultValue=Valor por defecto -Price=Precio -UnitPrice=Precio unitario -UnitPriceHT=Precio base -UnitPriceTTC=Precio unitario total -PriceU=P.U. -PriceUHT=P.U. -PriceUHTCurrency=U.P (currency) -PriceUTTC=P.U. (i.i.) -Amount=Importe -AmountInvoice=Importe factura -AmountPayment=Importe pago -AmountHTShort=Base imp. -AmountTTCShort=Importe -AmountHT=Base imponible -AmountTTC=Importe total -AmountVAT=Importe IVA -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Importe Impuesto 2 -AmountLT2=Importe Impuesto 3 AmountLT1ES=Importe de retención AmountLT2ES=Importe ISLR -AmountTotal=Importe total -AmountAverage=Importe medio -PriceQtyMinHT=Precio cantidad min. total -Percentage=Porcentaje -Total=Total -SubTotal=Subtotal -TotalHTShort=Importe -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total -TotalHT=Base imponible -TotalHTforthispage=Total (base imponible) de esta página -Totalforthispage=Total for this page -TotalTTC=Total -TotalTTCToYourCredit=Total a crédito -TotalVAT=Total IVA -TotalLT1=Total Impuesto 2 -TotalLT2=Total Impuesto 3 TotalLT1ES=Total retenido TotalLT2ES=Total ISLR -HT=Sin IVA -TTC=IVA incluido -VAT=IVA -VATs=Tasas sobre ventas LT1ES=Retención LT2ES=ISLR -VATRate=Tasa IVA -Average=Media -Sum=Suma -Delta=Diferencia -Module=Módulo -Option=Opción -List=Listado -FullList=Listado completo -Statistics=Estadísticas -OtherStatistics=Otras estadísticas -Status=Estado -Favorite=Favorito -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. externa -RefSupplier=Ref. proveedor -RefPayment=Ref. pago -CommercialProposalsShort=Presupuestos -Comment=Comentario -Comments=Comentarios -ActionsToDo=Eventos a realizar -ActionsToDoShort=A realizar -ActionsDoneShort=Realizadas -ActionNotApplicable=No aplicable -ActionRunningNotStarted=No empezado -ActionRunningShort=In progress -ActionDoneShort=Terminado -ActionUncomplete=Incompleto -CompanyFoundation=Empresa o institución -ContactsForCompany=Contactos de este tercero -ContactsAddressesForCompany=Contactos/direcciones de este tercero -AddressesForCompany=Direcciones de este tercero -ActionsOnCompany=Eventos respecto a este tercero -ActionsOnMember=Eventos respecto a este miembro -NActionsLate=%s en retraso -RequestAlreadyDone=Solicitud ya registrada -Filter=Filtro -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Eliminar filtro -ChartGenerated=Gráficos generados -ChartNotGenerated=Gráfico no generado -GeneratedOn=Generado el %s -Generate=Generar -Duration=Duración -TotalDuration=Duración total -Summary=Resumen -DolibarrStateBoard=Estadísticas -DolibarrWorkBoard=Indicadores de trabajo -Available=Disponible -NotYetAvailable=Aún no disponible -NotAvailable=No disponible -Categories=Etiquetas/Categorías -Category=Etiqueta/Categoría -By=Por -From=De -to=a -and=y -or=o -Other=Otro -Others=Otros -OtherInformations=Otras informaciones -Quantity=Cantidad -Qty=Cant. -ChangedBy=Modificado por -ApprovedBy=Aprobado por -ApprovedBy2=Aprobado por (segunda aprobación) -Approved=Aprobado -Refused=Rechazado -ReCalculate=Recalcular -ResultKo=Error -Reporting=Informe -Reportings=Informes -Draft=Borrador -Drafts=Borradores -Validated=Validado -Opened=Opened -New=Nuevo -Discount=Descuento -Unknown=Desconocido -General=General -Size=Tamaño -Received=Recibido -Paid=Pagado -Topic=Subject -ByCompanies=Por empresa -ByUsers=Por usuario -Links=Enlaces -Link=Enlace -Rejects=Devoluciones -Preview=Vista previa -NextStep=Siguiente paso -Datas=Datos -None=Nada -NoneF=Ninguna -Late=Retraso -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Foto -Photos=Fotos -AddPhoto=Añadir foto -DeletePicture=Eliminar imagen -ConfirmDeletePicture=¿Confirma la eliminación de la imagen? -Login=Login -CurrentLogin=Login actual -EnterLoginDetail=Enter login details -January=enero -February=febrero -March=marzo -April=abril -May=mayo -June=junio -July=julio -August=agosto -September=septiembre -October=octubre -November=noviembre -December=Diciembre -JanuaryMin=Ene -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Abr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Ago -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dic -Month01=enero -Month02=febrero -Month03=marzo -Month04=abril -Month05=mayo -Month06=junio -Month07=julio -Month08=agosto -Month09=septiembre -Month10=octubre -Month11=noviembre -Month12=diciembre -MonthShort01=ene. -MonthShort02=feb. -MonthShort03=mar. -MonthShort04=abr. -MonthShort05=may. -MonthShort06=jun. -MonthShort07=jul. -MonthShort08=ago. -MonthShort09=sep. -MonthShort10=oct. -MonthShort11=nov. -MonthShort12=dic. -AttachedFiles=Archivos y documentos adjuntos -FileTransferComplete=Se transfirió correctamente el archivo -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Nombre del informe -ReportPeriod=Periodo de análisis -ReportDescription=Descripción -Report=Informe -Keyword=Keyword -Origin=Origin -Legend=Leyenda -Fill=Rellenar -Reset=Vaciar -File=Archivo -Files=Archivos -NotAllowed=No autorizado -ReadPermissionNotAllowed=Lectura no autorizada -AmountInCurrency=Importes visualizados en %s -Example=Ejemplo -Examples=Ejemplos -NoExample=Sin ejemplo +Opened=Abierta FindBug=Señalar un bug -NbOfThirdParties=Número de terceros -NbOfLines=Números de líneas -NbOfObjects=Número de objetos -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Cantidad total -DateFromTo=De %s a %s -DateFrom=A partir de %s -DateUntil=Hasta %s -Check=Verificar -Uncheck=Deseleccionar -Internal=Interno -External=Externo -Internals=Internos -Externals=Externos -Warning=Alerta -Warnings=Alertas -BuildDoc=Generar el documento -Entity=Entidad -Entities=Entidades -CustomerPreview=Historial cliente -SupplierPreview=Historial proveedor -ShowCustomerPreview=Ver historial cliente -ShowSupplierPreview=Ver historial proveedor -RefCustomer=Ref. cliente -Currency=Divisa -InfoAdmin=Información para los administradores -Undo=Anular -Redo=Rehacer -ExpandAll=Expandir todo -UndoExpandAll=Contraer todo -Reason=Razón -FeatureNotYetSupported=Funcionalidad aún no soportada -CloseWindow=Cerrar ventana -Response=Respuesta -Priority=Prioridad -SendByMail=Enviar por e-mail -MailSentBy=Mail enviado por -TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=Sin e-mail -Email=Correo -NoMobilePhone=Sin teléfono móvil -Owner=Propietario -FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente. -Refresh=Refrescar -BackToList=Volver al listado -GoBack=Volver atrás -CanBeModifiedIfOk=Puede modificarse si es valido -CanBeModifiedIfKo=Puede modificarse si no es valido -ValueIsValid=Valor válido -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Registro modificado con éxito -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Creación automática de código -FeatureDisabled=Función desactivada -MoveBox=Move widget -Offered=Oferta -NotEnoughPermissions=No tiene permisos para esta acción -SessionName=Nombre sesión -Method=Método -Receive=Recepción -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Valor actual -PartialWoman=Parcial -TotalWoman=Total -NeverReceived=Nunca recibido -Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar estos valores en el menú configuración->diccionarios -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Documentos -Documents2=Documentos -UploadDisabled=Subida desactivada -MenuECM=Documentos -MenuAWStats=AWStats -MenuMembers=Miembros -MenuAgendaGoogle=Agenda Google -ThisLimitIsDefinedInSetup=Límite Dolibarr (Menú inicio-configuración-seguridad): %s Kb, PHP limit: %s Kb -NoFileFound=No hay documentos guardados en este directorio -CurrentUserLanguage=Idioma actual -CurrentTheme=Tema actual -CurrentMenuManager=Gestor menú actual -Browser=Navegador -Layout=Layout -Screen=Screen -DisabledModules=Módulos desactivados -For=Para -ForCustomer=Para cliente -Signature=Firma -DateOfSignature=Date of signature -HidePassword=Mostrar comando con contraseña oculta -UnHidePassword=Mostrar comando con contraseña a la vista -Root=Raíz -Informations=Información -Page=Página -Notes=Notas -AddNewLine=Añadir nueva línea -AddFile=Añadir archivo -FreeZone=Entrada libre -FreeLineOfType=Entrada libre del tipo -CloneMainAttributes=Clonar el objeto con estos atributos principales -PDFMerge=Fusión PDF -Merge=Fusión -PrintContentArea=Mostrar página de impresión de la zona central -MenuManager=Gestor de menú -WarningYouAreInMaintenanceMode=Atención, está en modo mantenimiento, así que solamente el login %s está autorizado para utilizar la aplicación en este momento. -CoreErrorTitle=Error del sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Tarjeta de crédito -FieldsWithAreMandatory=Los campos marcados por un %s son obligatorios -FieldsWithIsForPublic=Los campos marcados por %s se mostrarán en la lista pública de miembros. Si no desea verlos, desactive la casilla "público". -AccordingToGeoIPDatabase=(Obtenido por conversión GeoIP) -Line=Línea -NotSupported=No soportado -RequiredField=Campo obligatorio -Result=Resultado -ToTest=Probar -ValidateBefore=Para poder usar esta función debe validarse la ficha -Visibility=Visibilidad -Private=Privado -Hidden=Caché -Resources=Recursos -Source=Origen -Prefix=Prefijo -Before=Antes -After=Después -IPAddress=Dirección IP -Frequency=Frecuencia -IM=Mensajería instantánea -NewAttribute=Nuevo atributo -AttributeCode=Código atributo -URLPhoto=Url de la foto/logo -SetLinkToAnotherThirdParty=Vincular a otro tercero -LinkTo=Link to -LinkToProposal=Link to proposal LinkToOrder=Enlazar a un pedido -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Crear borrador -SetToDraft=Volver a borrador -ClickToEdit=Clic para editar -ObjectDeleted=Objeto %s eliminado -ByCountry=Par país -ByTown=Por población -ByDate=Por fecha -ByMonthYear=Por mes/año -ByYear=Por año -ByMonth=Por mes -ByDay=Por día -BySalesRepresentative=Por comercial -LinkedToSpecificUsers=Enlazado a un contacto de usuario particular -NoResults=Ningún resultado -AdminTools=Admin tools -SystemTools=Utilidades sistema -ModulesSystemTools=Utilidades módulos -Test=Prueba -Element=Elemento -NoPhotoYet=No hay fotografía disponible -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deducible -from=de -toward=hacia -Access=Acceso -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C para copiar al portapapeles -SaveUploadedFileWithMask=Guardar el archivo con el nombre "%s" (sino "%s") -OriginFileName=Nombre del archivo origen -SetDemandReason=Definir origen -SetBankAccount=Definir cuenta bancaria -AccountCurrency=Divisa de la cuenta -ViewPrivateNote=Ver notas -XMoreLines=%s línea(s) ocultas -PublicUrl=URL pública -AddBox=Añadir caja -SelectElementAndClickRefresh=Seleccione un elemento y haga clic en Refrescar -PrintFile=Imprimir Archivo %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Vaya a Inicio->Configuración->Empresa/Institución para cambiar el logo o vaya a Inicio->Configuración->Entorno para ocultarlo -Deny=Denegar -Denied=Denegada -ListOfTemplates=Listado de plantillas -Gender=Gender -Genderman=Hombre -Genderwoman=Mujer -ViewList=Vista de listado -Mandatory=Obligatorio -Hello=Hola -Sincerely=Atentamente -DeleteLine=Eliminación de línea -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Clasificar facturado Progress=Progresión -ClickHere=Haga clic aquí -FrontOffice=Front office -BackOffice=Back office -View=View Export=Exportación -Exports=Exportaciones -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscelánea -Calendar=Calendario -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Año fiscal -# Week day -Monday=Lunes -Tuesday=Martes -Wednesday=Miércoles -Thursday=Jueves -Friday=Viernes -Saturday=Sábado -Sunday=Domingo -MondayMin=Lu -TuesdayMin=Ma -WednesdayMin=Mi -ThursdayMin=Ju -FridayMin=Vi -SaturdayMin=Sa -SundayMin=Do -Day1=Lunes -Day2=Martes -Day3=Miércoles -Day4=Jueves -Day5=Viernes -Day6=Sábado -Day0=Domingo -ShortMonday=L -ShortTuesday=M -ShortWednesday=Mi -ShortThursday=J -ShortFriday=V -ShortSaturday=S -ShortSunday=D -SelectMailModel=Seleccione una plantilla de e-mail -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contactos -SearchIntoMembers=Miembros -SearchIntoUsers=Usuarios -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Proyectos -SearchIntoTasks=Tareas -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Pedidos de clientes -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals SearchIntoSupplierProposals=Presupuestos de proveedores -SearchIntoInterventions=Intervenciones -SearchIntoContracts=Contratos -SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Gastos SearchIntoLeaves=Días libres - -BulkActions=Bulk actions diff --git a/htdocs/langs/es_VE/other.lang b/htdocs/langs/es_VE/other.lang index a54f057ae0b..48f9da741b5 100644 --- a/htdocs/langs/es_VE/other.lang +++ b/htdocs/langs/es_VE/other.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - other -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nLe adjuntamos la solicitud de precios __ASKREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLe adjuntamos nuestro pedido __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ SourcesRepository=Repositorio de fuentes WEBSITE_DESCRIPTION=Descripcion diff --git a/htdocs/langs/es_VE/supplier_proposal.lang b/htdocs/langs/es_VE/supplier_proposal.lang index b225441e044..57a05997e92 100644 --- a/htdocs/langs/es_VE/supplier_proposal.lang +++ b/htdocs/langs/es_VE/supplier_proposal.lang @@ -41,7 +41,6 @@ DocModelAuroreDescription=Modelo completo de solicitud (logo...) CommercialAsk=Solicitud de precio DefaultModelSupplierProposalToBill=Plantilla por defecto cuando cierra una solicitud de precio (aceptada) DefaultModelSupplierProposalClosed=Plantilla por defecto cuando cierra una solicitud de precio (rechazada) -ListOfSupplierProposal=Lista de solicitudes de presupuestos a proveedores ListSupplierProposalsAssociatedProject=Lista de presupuestos a proveedor asociados con el proyecto SupplierProposalsToClose=Presupuestos a proveedor a cerrar SupplierProposalsToProcess=Presupuestos a proveedor a procesar diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 84908682ac7..003980a7165 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Konto +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kood +Nature=Loomus +AccountingJournalType1=Various operation +AccountingJournalType2=Müügid +AccountingJournalType3=Ostud +AccountingJournalType4=Pank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksportimised @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 625b321cbe5..6c8228bd857 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Sisemised kasutajad ExternalUsers=Välised kasutajad GUISetup=Kuva SetupArea=Seadistamise ala +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Failide üleslaadimise teistimiseks kasutatav vorm (vastavalt seadistustele) IfModuleEnabled=Märkus: jah töötab vaid siis, kui moodul %s on sisse lülitatud. RemoveLock=Kui fail %s on juba olemas, siis eemalda see, et võimaldada uuendamise tööriista kasutamist. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Järgmine väärtus NextValueForInvoices=Järgmine väärtus (arved) NextValueForCreditNotes=Järgmine väärtus (kreeditarved) -NextValueForDeposit=Järgmine väärtus (deposiit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Järgmine väärtus (asendused) MustBeLowerThanPHPLimit=Märkus: PHP piir üleslaetava faili suuruseks on %s %s, sõltumata selle parameetri väärtusest NoMaxSizeByPHPLimit=Märkus: PHP seadistustes pole piiri määratletud @@ -103,7 +104,7 @@ MenuIdParent=Emamenüü ID DetailMenuIdParent=Emamenüü ID (juurmenüü korral tühi) DetailPosition=Järjekorranumber menüü asukoha määratlemiseks AllMenus=Kõik -NotConfigured=Moodul ei ole seadistatud +NotConfigured=Module/Application not configured Active=Aktiivne SetupShort=Seadistamine OtherOptions=Muud seaded @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tuhandete eraldaja Destination=Sihtkoht IdModule=Mooduli ID IdPermissions=Kasutajaõiguste ID -Modules=Moodulid LanguageBrowserParameter=Parameeter %s LocalisationDolibarrParameters=Lokaliseerimise parameetrid ClientTZ=Kliendi ajavöönd (kasutaja) @@ -123,7 +123,8 @@ PHPTZ=Time Zone PHP server DaylingSavingTime=Suveaeg CurrentHour=Tund PHP (server) CurrentSessionTimeOut=Praeguse sessiooni aegumine -YouCanEditPHPTZ=PHP ajavööndi muutmiseks (pole nõutud), võid lisada .htaccess faili sellisel kujul reaga "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Vidin Boxes=Vidinad MaxNbOfLinesForBoxes=Vidinate maksimaalne ridade arv @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Õigused BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Näidatakse ainult elemente sisse lülitatud moodulitest. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Andmebaasi parool on conf.php failis krüpteerit InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Automaatselt loodud PDF failide kaitse (soovitatav välja lülitatud, kuna vastasel juhul ei tööta PDFide hulgi loomine) -ProtectAndEncryptPdfFilesDesc=PDF dokumendi kaitse võimaldab seda ikkagi iga PDFi lugejaga vaadata ja printida. Kahjuks ei ole selle järel enam võimalik faili toimetamine ja kopeerimine. Pane tähele, et seda funktsionaalsust kasutades pole enam võimalik luua kokkuliidetud PDF faile (näiteks tasutamata arved). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funktsionaalsus DolibarrLicense=Litsents Developpers=Arendajad/toetajad @@ -224,7 +225,9 @@ OfficialDemo=Dolibarri online demo OfficialMarketPlace=Väliste moodulite ja lisade ametlik müügikoht OfficialWebHostingService=Viidatavad veebimajutuse pakkujad (pilveteenused) ReferencedPreferredPartners=Eelistatud partnerid -OtherResources=Muud ressursid +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Kasutaja või arendaja dokumentatsiooni (KKK jms) võid leida
ametlikust Dolibarri Wikist:
%s ForAnswersSeeForum=Muude küsimuste või abi küsimise tarbeks saab kasutada Dolibarri foorumit:
%s HelpCenterDesc1=See ala võib aidata saada Dolibarri tugiteenust. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funktsionaalsus pole kasutatav Unixi laadsel süsteem SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moodulite seadistamine -ModulesSetup=Moodulite seadistamine +ModulesSetup=Modules/Application setup ModuleFamilyBase=Süsteem ModuleFamilyCrm=Kliendihaldus (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarri praegune versioo CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Viimane stabiilne versioon LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Sa võid sisestada suvalise numeratsiooni maski. Järgnevas maskis saab kasutada järgmisi silte:
{000000} vastab arvule, mida suurendatakse iga sündmuse %s korral. Sisesta niipalju nulle, kui soovid loenduri pikkuseks. Loendurile lisatakse vasakult alates niipalju nulle, et ta oleks maskiga sama pikk.
{000000+000} on eelmisega sama, kuid esimesele %s lisatakse nihe, mis vastab + märgist paremal asuvale arvule.
{000000@x} on eelmisega sama, ent kuuni x jõudmisel nullitakse loendur (x on 1 ja 12 vahel, või 0 seadistuses määratletud majandusaasta alguse kasutamiseks, või 99 loenduri nullimiseks iga kuu alguses). Kui kasutad seda funktsiooni ja x on 2 või kõrgem, siis on jada {yy}{mm} or {yyyy}{mm} nõutud.
{dd} päev (01 kuni 31).
{mm} kuu (01 kuni 12).
{yy}, {yyyy} või {y} aasta 2, 4 või 1 numbri kasutamisks.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Kõik teised maskis olevad tähemärgid jäävad puutuamata.
Tühikud ei ole lubatud.
-GenericMaskCodes4a=Näiteks 99ndal %s tegi kolmas isik KolmasIsik 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Näiteks 2007-03-01 loodud kolmas isik:
GenericMaskCodes4c=Näiteks 2007-03-01 loodud toode:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} annab vastuseks ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX annab vastuseks 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Lisab määratletud maskile vastava kohandatava arvu. ServerAvailableOnIPOrPort=Server on saadaval aadressil %s pordil %s ServerNotAvailableOnIPOrPort=Server ei ole kättesaadav aadressil %s pordi %s @@ -369,19 +375,21 @@ Int=Täisarv Float=Ujukomaarv DateAndTime=Kuupäev ja tund Unique=Unikaalne -Boolean=Tõeväärtus (märkeruut) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Hind ExtrafieldMail = E-post ExtrafieldUrl = Url ExtrafieldSelect = Valikute nimekiri ExtrafieldSelectList = Vali tabelist -ExtrafieldSeparator=Eraldaja +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Salasõna -ExtrafieldCheckBox=Märkeruut -ExtrafieldRadio=Raadionupp -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameetrite nimekiri peab olema kujul võti,väärtus

Näiteks:
1,väärtus1
2,väärtus2
3,väärtus3
... ExtrafieldParamHelpradio=Parameetrite nimekiri peab olema kujul võti,väärtus

Näiteks:
1,väärtus1
2,väärtus2
3,väärtus3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Väli +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Kasutajad ja grupid Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Klientide müügi- ja kreeditarvete haldamine. Hankijate arvete hal Module40Name=Hankijad Module40Desc=Hankijate haldamine ja ostmine (tellimused ja ostuarved) Module42Name=Logid -Module42Desc=Logimise võimalused (fail, syslog jne) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Toimetid Module49Desc=Toimetite haldamine Module50Name=Tooted @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=WebCalendari integratsioon Module500Name=Erikulud Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Teated @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind konverteerimise võimekus Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=Personalihaldus -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-ettevõte Module5000Desc=Võimaldab hallata mitut ettevõtet Module6000Name=Töövoog @@ -591,7 +615,7 @@ Permission32=Toodete loomine/muutmine Permission34=Toodete kustutamine Permission36=Peidetud toodete vaatamine/haldamine Permission38=Toodete eksport -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Projektide kustutamine (jagatud projekt ja projektid, mille kontaktiks on kasutaja) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Tellimisviisid DictionarySource=Pakkumiste/tellimuste päritolu DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Kontoplaani mudelid +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Ühikud DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Seadistused salvestatud +SetupNotSaved=Setup not saved BackToModuleList=Tagasi moodulite nimekirja BackToDictionaryList=Tagasi sõnastike nimekirja VATManagement=Käibemaksu haldamine @@ -921,7 +947,7 @@ Host=Server DriverType=Draiveri tüüp SummarySystem=Süsteemiinfo kokkuvõte SummaryConst=Kõikide Dolibarri seadistusparameetrite nimekiri -MenuCompanySetup=Ettevõte/ühendus +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standardne menüü haldaja DefaultMenuSmartphoneManager=Nutitelefoni menüü haldaja Skin=Kesta kujundus @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Päeva sõnu MessageLogin=Sisselogimise lehe sõnu +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Vasakus menüüs on alati otsingu vorm DefaultLanguage=Vaikimisi kasutatav keel (keele kood) EnableMultilangInterface=Luba mitmekeelne liides EnableShowLogo=Näita vasakul menüüs logo -CompanyInfo=Ettevõtte/ühenduse info -CompanyIds=Ettevõtte/ühenduse andmed +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nimi CompanyAddress=Aadress CompanyZip=Postiindeks @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Hilinemise viivitus (päevades) enne hoiatust hilinenu Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Hilinemise viivitus (päevades) enne hoiatust deponeerimata tšekkide kohta Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Teised menüükanded haldavad muid parameetreid LogEvents=Sündmuste turvaaudit Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Sirvija operatsioonisüsteem ListOfSecurityEvents=Dolibarri turvasündmuste nimekiri SecurityEventsPurged=Turvasündmused tühjendatud LogEventDesc=Siin saab sisse lülitada Dolibarri turvalisusega seotud sündmuste logimise. Administraatorid saavad seejärel vajaliku info kätte menüüst Süsteemi tööristad - Audit. Hoiatus: see võib võtta andmebaasis palju ruumi. -AreaForAdminOnly=Hoiatus: neid võimalusi saavad kasutada vaid administraatorid. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Süsteemi info sisaldab mitmesugust tehnilist infot, mida ei saa muuta ning mis on nähtav vaid administraatoritele. SystemAreaForAdminOnly=Sellele alale saavad ligi ainult administraatorid. Ükski Dolibarri õigus ei saa seda piirangut eemaldada. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Pead vähemalt 1 mooduli sisse lülitama ClassNotFoundIntoPathWarning=Klassi %s ei ole PHP rajas YesInSummer=Suviti 'jah' -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sessiooni andmehoidla krüpteeritud Suhosini poolt ConditionIsCurrently=Olek on hetkel %s YouUseBestDriver=Kasutad draiverit %s, mis on hetkel saadaolevatest parim. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Registreerimisnumbrite reeglid MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Eksportimise link %s formaati on saadaval järgmisel aadressil: %s ##### Invoices ##### BillsSetup=Arvete mooduli seadistamine BillsNumberingModule=Arvete ja kreeditarvete numeratsiooni mudel BillsPDFModules=Arve dokumentide mudelid +PaymentsPDFModules=Payment documents models CreditNote=Kreeditarve CreditNotes=Kreeditarved ForceInvoiceDate=Sunni arve kuupäevaks arve kinnitamise kuupäev @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=%s tüüpi faile ei hoia HTTP server vahemälus FilesOfTypeCompressed=%s tüüpi faile pakib HTTP server kokk FilesOfTypeNotCompressed=%s tüüpi faile ei paki HTTP server kokk CacheByServer=Serveri vahemäl +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Brauseri vahemälu CompressionOfResources=HTTP vastuste kokku pakkimine +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Toodete mooduli seadistamine ServiceSetup=Teenuste mooduli seadistamine @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Kasutatakse arve kuupäeva Buy=Ost Sell=Müük InvoiceDateUsed=Kasutatakse arve kuupäeva -YourCompanyDoesNotUseVAT=Sinu ettevõte ei ole määratletud kasutama käibemaksu (Kodu->Seadistamine->Ettevõte/Ühendus), seega ei ole ühtki käibemaksu seadistust, mida muuta. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Raamatupidamise kood AccountancyCodeSell=Müügikonto kood AccountancyCodeBuy=Ostukonto kood @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Seda liiki tegevuse staatus lisatakse automaatselt AGENDA_DEFAULT_VIEW=Vaikimisi avatav sakk päevakava avamisel AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial mooduli seadistamine -ClickToDialUrlDesc=Url, mida kasutatakse telefoni pildi klõpsamisel. URLi sees saab kasutada järgmisi silte:
__PHONETO__ asendatakse helistatava inimese telefoninumbriga
__PHONEFROM__ asendatakse helistaja (Sinu) telefoninumbriga
__LOGIN__ asendatakse clicktodial kasutajanimega (määratletud Sinu kasutajakaardil)
__PASS__ asendatakse clicktodial parooliga (määratletud Sinu kasutajakaardil). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Üldine kuvamise järjekord BankOrderES=Hispaania BankOrderESDesc=Hispaania kuvamise järjekord ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Mitme ettevõtte mooduli seadistamine ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/et_EE/compta.lang b/htdocs/langs/et_EE/compta.lang index 438e49810cf..f5ca41fd6bb 100644 --- a/htdocs/langs/et_EE/compta.lang +++ b/htdocs/langs/et_EE/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Seadistamine RemainingAmountPayment=Maksta jääv summa: Account=Konto -Accountparent=Emakonto -Accountsparent=Emakontod +Accountparent=Parent account +Accountsparent=Parent accounts Income=Tulu Outcome=Kulu ReportInOut=Tulu/kulu @@ -56,6 +56,7 @@ MenuTaxAndDividends=Maksud ja dividendid MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Raamatupidamise/vara ala NewPayment=Uus makse @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- See sisaldab kõiki klientidelt laekunud jõustunud arvete maksmisi.
- See põhineb nende arvete maksekuupäevadel
-DepositsAreNotIncluded=- Eelmaksuarved pole lisatud -DepositsAreIncluded=- Eelmaksuarved on lisatud +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Kolmandate isikute IRPFi aruanne LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Müügireskontro DescPurchasesJournal=Ostureskontro InvoiceRef=Arve viide CodeNotDef=Määratlemata -WarningDepositsNotIncluded=Hoiuseid ei ole antud versiooni ja sellesse raamatupidamise moodulisse lisatud. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Maksetähtaja kuupäev ei saa olla väiksem objekti kuupäevast. Pcg_version=Chart of accounts models Pcg_type=Pcg tüü @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/et_EE/cron.lang b/htdocs/langs/et_EE/cron.lang index 63d52066ff6..2043bdc6b18 100644 --- a/htdocs/langs/et_EE/cron.lang +++ b/htdocs/langs/et_EE/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Tegevus CronNone=Mitte ükski CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Lülita sisse CronStatusInactiveBtn=Lülita välja CronTaskInactive=See tegevus on välja lülitatud CronId=ID -CronClassFile=Klassid (filename.class.php) -CronModuleHelp=Dolibarri moodulite kausta nimi (töötab ka välise Dolibarro mooduliga).
Näiteks Dolibarri Product objekti kasutamisel /htdocs/product/class/product.class.php on mooduli väärtuseks product. -CronClassFileHelp=Laetava faili nimi.
Näiteks Dolibarri Product objekti /htdocs/product/class/product.class.php meetodi kasutamisel on selle väärtuseks product.class.php. -CronObjectHelp=Laetava objekti nimi.
Näiteks Dolibarri Product objekti /htdocs/product/class/product.class.php kasutamisel on selle väärtuseks Product. -CronMethodHelp=Kasutatava objekti korral käivitatav meetod.
Näiteks Dolibarr Product objekti /htdocs/product/class/product.class.php meetodi fetch kasutamisel on meetodi väärtuseks fetch -CronArgsHelp=Meetodile antavad argumendid.
Näiteks Dolibarri Product objekti /htdocs/product/class/product.class.php meetodi fetch kasutamisel võivad parameetrite väärtusteks olla 0, ProductRef. +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Käivitatav süsteemi käsk. CronCreateJob=Create new Scheduled Job CronFrom=Kellelt @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/et_EE/errors.lang b/htdocs/langs/et_EE/errors.lang index b20e11b3c9f..fa6e137939d 100644 --- a/htdocs/langs/et_EE/errors.lang +++ b/htdocs/langs/et_EE/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Ei suutnud luua faili '%s'. ErrorFailToRenameDir=Ei suutnud ümber nimetada kausta '%s' kaustaks '%s'. ErrorFailToCreateDir=Ei suutnud luua kausta '%s'. ErrorFailToDeleteDir=Ei suutnud kustutada kausta '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Antud kontakt on juba määratletud selle tüübi kontaktiks. ErrorCashAccountAcceptsOnlyCashMoney=See pangakonto on sularahakonto, seega võtab ta vastu ainult sularahamakseid. ErrorFromToAccountsMustDiffers=Lähtekonto ja sihtkonto pevad olema erinevad. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Ei suutnud kirjutada kausta %s ErrorFoundBadEmailInFile=Failis on %s real ebaõige e-posti aadressi süntaks (näiteks on rida %s aadress=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Mõned nõutud väljad on täitmata. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Kausta loomine ebaõnnestus. Kontrolli, et veebiserveri kasutajal on piisavalt õigusi Dolibarri dokumentide kausta kirjutamiseks. Kui PHP safe_mode parameeter on sisse lülitatud, siis kontrolli, et veebiserveri kasutaja (või grupp) on Dolibarri PHP failide omanik. ErrorNoMailDefinedForThisUser=Antud kasutaja e-posti aadressi pole määratletud ErrorFeatureNeedJavascript=See funktsioon vajab töötamiseks JavaScripti sisse lülitamist. Muuda seadeid Seadistamine->Kuva menüüs. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Veebiserveri käivitamiseks kasutataval kontrol %s ei ole selleks õigusi ErrorNoActivatedBarcode=Ühtki vöötkoodi tüüpi pole aktiveeritud ErrUnzipFails=%s lahti pakkimine ZipArchivega ebaõnnestus -ErrNoZipEngine=Antud PHPs pole ühtki mootorit, millega faili %s lahti pakkida +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Fail %s peab olema Dolibarri zip formaadis pakk ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURLei ole paigaldatud, see on PayPaliga suhtlemiseks vajalik @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index d63deac7c06..e348e17f27c 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameeter %s on määratlemata ErrorUnknown=Tundmatu viga ErrorSQL=SQLi viga ErrorLogoFileNotFound=Ei leidnud logo faili '%s' -ErrorGoToGlobalSetup=Kasuta selle parandamiseks 'Ettevõte/Ühendus' halduspaneeli +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Kasuta selle parandamiseks 'Moodulid' halduspaneeli ErrorFailedToSendMail=E-kirja saatmine ebaõnnestus (saatja = %s, vastuvõtja = %s) ErrorFileNotUploaded=Ei õnnestunud faili üles laadida. Kontrolli järgmist: fail ei ületa lubatud suurust, serveri kettal on vaba ruumi ning sama nimega faili ei oleks samas kaustas. @@ -153,6 +153,7 @@ Edit=Toimeta Validate=Kinnita ValidateAndApprove=Valideeri ja kiida heaks ToValidate=Kinnitada +NotValidated=Not validated Save=Salvesta SaveAs=Salvesta kui TestConnection=Kontrolli ühendust @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Autentisrežiimiga %s pole seotud ühtki laht Connection=Logi sisse Setup=Seadistamine Alert=Hoiatus +MenuWarnings=Häired Previous=Eelmine Next=Järgmine Cards=Kaardid @@ -308,6 +310,7 @@ Copy=Kopeeri Paste=Kleebi Default=Vaikimisi DefaultValue=Vaikeväärtus +DefaultValues=Default values Price=Hind UnitPrice=Ühiku hind UnitPriceHT=Ühiku hind (neto) @@ -363,7 +366,8 @@ VATRate=Maksumäär Average=Keskmine Sum=Summa Delta=Delta -Module=Moodul +Module=Module/Application +Modules=Modules/Applications Option=Valik List=Nimekiri FullList=Täielik nimekiri @@ -387,7 +391,7 @@ ActionRunningNotStarted=Alustada ActionRunningShort=In progress ActionDoneShort=Lõpetatud ActionUncomplete=Lõpuni viimata -CompanyFoundation=Ettevõte/ühendus +CompanyFoundation=Company/Organisation ContactsForCompany=Selle kolmanda isikuga seotud kontaktid ContactsAddressesForCompany=Selle kolmanda isikuga seotud kontaktid/aadressid AddressesForCompany=Selle kolmanda isikuga seotud aadressid @@ -405,8 +409,9 @@ Generate=Loo Duration=Kestus TotalDuration=Kogukestus Summary=Kokkuvõte -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Tööülesannete tahvel +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Saadaval NotYetAvailable=Pole veel saadaval NotAvailable=Pole saadaval @@ -434,7 +439,7 @@ Reportings=Aruandlus Draft=Mustand Drafts=Mustandid Validated=Kinnitatud -Opened=Avatud +Opened=Ava New=Uus Discount=Allahindlus Unknown=Tundmatu @@ -453,6 +458,7 @@ NextStep=Järgmine samm Datas=Andmed None=Puudub NoneF=Puudub +NoneOrSeveral=None or several Late=Hilja LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Pilt @@ -606,7 +612,8 @@ PartialWoman=Osaline TotalWoman=Täielik NeverReceived=Pole vastu võetud Canceled=Tühistatud -YouCanChangeValuesForThisListFromDictionarySetup=Antud nimekirja väärtusi saab muuta Seadistamine->Sõnastik menüüst +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Värv Documents=Seotud failid @@ -642,6 +649,7 @@ FreeLineOfType=Vaba sisestuse tüüp CloneMainAttributes=Klooni objekt selle põhiliste omadustega PDFMerge=PDFi ühendamine Merge=Ühendamine +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Kuva leht lehe sisu printimiseks MenuManager=Menüü haldaja WarningYouAreInMaintenanceMode=Hoiatus: hooldusrežiim on aktiivne, praegu on rakendusele ligipääs vaid kasutajal %s. @@ -708,6 +716,7 @@ from=alates toward=kuni Access=Ligipääs SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Lõikelauale kopeerimiseks kasuta Ctrl+C klahvikombinatsiooni SaveUploadedFileWithMask=Salvesta fail serverisse nimega "%s" (muul juhul "%s") OriginFileName=Faili algne nimi @@ -718,7 +727,7 @@ ViewPrivateNote=Vaata märkmeid XMoreLines=%s joon(t) varjatud PublicUrl=Avalik link AddBox=Lisa kast -SelectElementAndClickRefresh=Vali element ja klõpsa 'Värskenda' +SelectElementAndClick=Select an element and click %s PrintFile=Prindi fail %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Mine Kodu - Seadistamine - Ettevõte logo muutmiseks või mine Kodu - Seadistamine - Kuva logo peitmiseks. @@ -734,8 +743,8 @@ Hello=Tere Sincerely=Sincerely DeleteLine=Kustuta rida ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Majandusaasta +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Esmaspäev Tuesday=Teisipäev @@ -817,5 +835,3 @@ SearchIntoContracts=Lepingud SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index 2d280d66fdb..e331e1cc65b 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Sünniaeg BirthdayAlertOn=sünnipäeva hoiatus aktiivne BirthdayAlertOff=sünnipäeva hoiatus mitteaktiivne +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Sekkumine kinnitatud Notify_FICHINTER_SENTBYMAIL=Sekkumine saadetud postiga @@ -61,13 +74,14 @@ PredefinedMailTestHtml=See on test kiri (sõna test peab olema rasvases k PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Reg kood %s
on info, mis sõltub kolmanda isiku riigist.
Näiteks riigi %s puhul on see kood %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Toodete/teenuste ühikute arvu statistika -StatsByNumberOfEntities=Viitavate olemite arvude statistika -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Sekkumine %s on kinnitatud. EMailTextInvoiceValidated=Arve %s on kinnitatud. diff --git a/htdocs/langs/et_EE/projects.lang b/htdocs/langs/et_EE/projects.lang index 8bc0cc14333..e607ec1f368 100644 --- a/htdocs/langs/et_EE/projects.lang +++ b/htdocs/langs/et_EE/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Kõik PrivateProject=Projekti kontaktid +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Kõik projektid MyProjectsDesc=Selles vaates näidatakse vaid neid projekte, mille kontaktiks oled märgitud (hoolimata liigist) ProjectsPublicDesc=See vaade esitab kõik projektid, mida sul on lubatud vaadata. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=See vaade näitab kõiki projekte ja ülesandeid (sinu kasutajaõiguse AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Uus projekt AddProject=Create project DeleteAProject=Kustuta projekt DeleteATask=Kustuta ülesanne ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Kuva projekt SetProject=Määra projekt NoProject=Ühtki projekti pole määratletud või ei oma ühtki projekt NbOfProjects=Projekte +NbOfTasks=Nb of tasks TimeSpent=Aega kulutatud TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Ülesannetel kulutatud aeg TaskTimeUser=Kasutaja TaskTimeNote=Märkus TaskTimeDate=Kuupäev -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Aeg kulutatud uuesti +NewTimeSpent=Aega kulutatud MyTimeSpent=Minu poolt kulutatud aeg Tasks=Ülesanded Task=Ülesanne @@ -59,6 +64,7 @@ TaskDescription=Ülesande kirjeldus NewTask=Uus ülesanne AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktiivsus Activities=Ülesanded/toimingud MyActivities=Minu ülesanded/aktiivsused @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Antud projektiga seotud lepingute nimekiri +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Antud projektiga seotud sekkumiste nimekiri ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekti kontaktid ActionsOnProject=Projekti tegevused YouAreNotContactOfProject=Sa ei ole antud privaatse projekti kontakt +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Kustuta kulutatud aeg ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Ressursid ProjectsDedicatedToThisThirdParty=Selle kolmanda isikuga seotud projektid NoTasks=Selle projektiga ei ole seotud ühtki ülesannet LinkedToAnotherCompany=Seotud muu kolmanda isikuga -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Kulutatud aeg on tüh ThisWillAlsoRemoveTasks=See kustutab ka kõik projekti ülesanded (hetkel %s ülesannet) ja kõik kulutatud aja sisestused. IfNeedToUseOhterObjectKeepEmpty=Kui mingid projekti loomiseks vajalikud objektid (arve, tellimus jne) kuuluvad mõnele muule kolmandale isikule, siis jäta see tühjaks, et oleks projekti võimalik siduda mitme kolmanda isikuga. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index 4c2336b97b0..bf77c5e5e7d 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kodea +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 73deac1611f..42a098c277f 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Barneko erabiltzaileak ExternalUsers=Kanpoko erabiltzaileak GUISetup=Itxura SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Maskara NextValue=Hurrengo balioa NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Oharra: zure PHP konfigurazioan ez da limiterik ezarri @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=Guztiak -NotConfigured=Konfiguratu gabeko modulua +NotConfigured=Module/Application not configured Active=Aktibo SetupShort=Konfigurazioa OtherOptions=Beste aukerak @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Milakoen bereizlea Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Moduluak LanguageBrowserParameter=%s parametroa LocalisationDolibarrParameters=Lokalizazio parametroak ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Denbora (zerbitzaria) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Baimenak BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Aukera DolibarrLicense=Lizentzia Developpers=Garatzaileak/laguntzaileak @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduluaren konfigurazioa -ModulesSetup=Moduluen konfigurazioa +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistema ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr-en uneko bertsioa CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Zenbaki osoa Float=Zenbaki hamartarra DateAndTime=Data eta ordua Unique=Unique -Boolean=Boolearra (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefonoa ExtrafieldPrice = Prezioa ExtrafieldMail = E-posta ExtrafieldUrl = Url ExtrafieldSelect = Aukeren zerrenda ExtrafieldSelectList = Taulatik aukeratu -ExtrafieldSeparator=Bereizlea +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Pasahitza -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio botoia -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Erabiltzaileak & Taldeak Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Hornitzaileak Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Log -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editoreak Module49Desc=Editoreak kudeatzea Module50Name=Produktuak @@ -499,8 +521,8 @@ Module410Name=Web-egutegia Module410Desc=Web-egutegiaren integrazioa Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Jakinarazpenak @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Produktuak ezabatu Permission36=See/manage hidden products Permission38=Produktuak esportatu -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=BEZ-a kudeatzea @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Izena CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Gaztelania BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/eu_ES/compta.lang b/htdocs/langs/eu_ES/compta.lang index f2f3dd5c1ac..e12d45ebc22 100644 --- a/htdocs/langs/eu_ES/compta.lang +++ b/htdocs/langs/eu_ES/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Konfigurazioa RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/eu_ES/cron.lang b/htdocs/langs/eu_ES/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/eu_ES/cron.lang +++ b/htdocs/langs/eu_ES/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/eu_ES/errors.lang b/htdocs/langs/eu_ES/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/eu_ES/errors.lang +++ b/htdocs/langs/eu_ES/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index 6917b8eb7db..e9ad3ac707a 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Editatu Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Gorde SaveAs=Gorde honela TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Konexia Setup=Konfigurazioa Alert=Alert +MenuWarnings=Alerts Previous=Aurrekoa Next=Hurrengoa Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Prezioa UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Ezezaguna @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Irudia @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Egutegia GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Kontratuak SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang index eb41a1862a4..b68133779e6 100644 --- a/htdocs/langs/eu_ES/other.lang +++ b/htdocs/langs/eu_ES/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/eu_ES/projects.lang b/htdocs/langs/eu_ES/projects.lang index 72f0eadeaed..9805bee3f4c 100644 --- a/htdocs/langs/eu_ES/projects.lang +++ b/htdocs/langs/eu_ES/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Erabiltzailea TaskTimeNote=Oharra TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index 8d860a072db..7d6d08374eb 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=اضافه کردن یک حساب حسابداری AccountAccounting=حساب حسابداری AccountAccountingShort=حساب +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=حساب حسابداری پیشنهاد شده MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=شامل شدن با صورت حسابهای تامین ک ExpenseReportsVentilation=Expense report binding CreateMvts=ایجاد نقل و انتقال جدید UpdateMvts=ویرایش نقل و انتقال -WriteBookKeeping=درج نقل و انتقالات در دفتر کل -Bookkeeping=دفتر کل +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=جمع میزان تامین کنندۀ خرید قبل از مالیات @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=SENS Codejournal=روزنامه NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=بدهی و اعتبار نمی توانند بطور همزمان حاوی مقدار باشند - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=فهرست حساب های حسابداری Pcgtype=کلاس حساب -Pcgsubtype=تحت دسته از حساب +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=حاشیه فروش کل @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=رمز +Nature=طبیعت +AccountingJournalType1=Various operation +AccountingJournalType2=فروش +AccountingJournalType3=خرید +AccountingJournalType4=بانک +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=صادرات @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index 7763ab7e9de..c7819cd3426 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=کاربران داخلی ExternalUsers=کاربران خارجی GUISetup=نمایش SetupArea=منطقه راه اندازی +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=فرم برای تست آپلود فایل (با توجه به راه اندازی) IfModuleEnabled=توجه داشته باشید: بله موثر است تنها در صورتی که بخش٪ s فعال است RemoveLock=حذف فایل٪ s در صورت وجود اجازه می دهد تا استفاده از ابزار به روز رسانی. @@ -85,7 +86,7 @@ Mask=ماسک NextValue=ارزش بعدی NextValueForInvoices=ارزش بعدی (صورت حساب) NextValueForCreditNotes=ارزش بعدی (یادداشت های اعتباری) -NextValueForDeposit=ارزش بعدی (سپرده) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=ارزش بعدی (جایگزین) MustBeLowerThanPHPLimit=توجه: PHP خود را محدود به اندازه هر فایل آپلود را به٪ s٪ s را، هر چه مقدار این پارامتر است NoMaxSizeByPHPLimit=توجه داشته باشید: هیچ محدودیتی در تنظیمات PHP شما تنظیم @@ -103,7 +104,7 @@ MenuIdParent=منو پدر و مادر ID DetailMenuIdParent=ID از منو پدر و مادر (خالی برای منوی بالا) DetailPosition=تعداد مرتب سازی بر برای تعریف موقعیت منو AllMenus=همه -NotConfigured=ماژول تنظیم نشده است +NotConfigured=Module/Application not configured Active=فعال SetupShort=برپایی OtherOptions=گزینه های دیگر @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=هزار جدا Destination=مقصد IdModule=ماژول ID IdPermissions=مجوز های ID -Modules=ماژول ها LanguageBrowserParameter=پارامتر٪ بازدید کنندگان LocalisationDolibarrParameters=پارامترهای محلی سازی ClientTZ=کارفرما منطقه زمان (کاربر) @@ -123,7 +123,8 @@ PHPTZ=PHP سرور منطقه زمان DaylingSavingTime=نور روز صرفه جویی در زمان CurrentHour=PHP زمان (سرور) CurrentSessionTimeOut=فاصله را وارد نمایید کنونی -YouCanEditPHPTZ=برای تنظیم منطقه زمانی PHP مختلف (مورد نیاز نمی باشد)، شما می توانید سعی کنید برای اضافه کردن یک فایل. htacces با یک خط مثل این "SetEnv TZ اروپا / پاریس" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=مجوز BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=تنها عناصر از ماژول های فعال نمایش داده می شود. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=رمز عبور پایگاه داده را در InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=حفاظت از فایل های پی دی اف ایجاد شده (فعال توصیه نمی شود، می شکند نسل پی دی اف توده) -ProtectAndEncryptPdfFilesDesc=محافظت از یک سند PDF آن را نگه می دارد قابل مطالعه و چاپ با هر مرورگر PDF. با این حال، ویرایش و کپی امکان پذیر نیست. توجه داشته باشید که با استفاده از این ویژگی ساختمان از پی دی اف انباشت شده و متراکم جهانی کار نمی کند (مثل صورت حساب های پرداخت نشده). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=خصیصه DolibarrLicense=پروانه Developpers=توسعه دهندگان / همکاران @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr نسخه ی نمایشی آنلاین OfficialMarketPlace=بازار رسمی برای ماژول های خارجی / افزونه OfficialWebHostingService=خدمات وب اشاره میزبانی وب (ابر میزبانی وب) ReferencedPreferredPartners=ترجیحی همکاران -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=برای کاربر و یا اسناد و مدارک توسعه (دکتر، پرسش و ...)،
نگاهی به Dolibarr ویکی:
از٪ s ForAnswersSeeForum=برای هر گونه سوال / کمک های دیگر، شما می توانید انجمن Dolibarr استفاده کنید:
از٪ s HelpCenterDesc1=این منطقه می تواند به شما کمک کند برای دریافت خدمات پشتیبانی راهنما در Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=این قابلیت وجود ندارد در یونی SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=ماژول راه اندازی -ModulesSetup=راه اندازی ماژول ها +ModulesSetup=Modules/Application setup ModuleFamilyBase=سیستم ModuleFamilyCrm=مدیریت ارتباط با مشتری (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=نسخه فعلی Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=بروزرسانی آفلاین سرور +WithCounter=Manage a counter GenericMaskCodes=شما می توانید ماسک شماره را وارد کنید. در این ماسک، تگ های زیر می تواند مورد استفاده قرار گیرد:
{000000} مربوط به تعداد خواهد شد که در هر یک از٪ s را افزایش مییابد. به عنوان بسیاری از صفر را وارد کنید به عنوان طول مورد نظر از ضد. شمارنده خواهد شد صفر از سمت چپ به منظور به صفر کرده اند و بسیاری از ماسک به پایان رسید.
{000.000 +000} همان قبلی است اما جبران مربوطه را به شماره در سمت راست علامت + شروع به کار رفته در اولین٪ است.
{000000 @ X} همان قبلی است اما شمارنده به صفر زمانی که ماه X برسد (x بین 1 و 12، و یا 0 به استفاده از ماه های اولیه سال مالی تعیین شده در تنظیمات خود را، و یا 99 به صفر هر ماه ). اگر این گزینه استفاده می شود و x است 2 یا بالاتر، و سپس دنباله {YY} {میلی متر} یا {تاریخ برای ورود yyyy} {میلی متر} نیز مورد نیاز است.
{تولد} روز (01 تا 31).
{میلی متر} ماه (01 تا 12).
{YY}، {تاریخ برای ورود yyyy} یا {Y} سال بیش از 2، 4 و یا 1 عدد.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=تمام شخصیت های دیگر در ماسک دست نخورده باقی خواهد ماند.
فضاهای امکان پذیر نیست.
-GenericMaskCodes4a=به عنوان مثال در 99٪ از TheCompany شخص ثالث انجام می شود 2007/1/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=به عنوان مثال در شخص ثالث ایجاد شده در 2007/03/01:
GenericMaskCodes4c=به عنوان مثال در محصول ایجاد شده در 2007/03/01:
-GenericMaskCodes5=ABC {YY} {میلی متر} - {000000} خواهد ABC0701-000099 را
{0000 +100 @ 1}-ZZZ / {تولد} / XXX خواهد 0199-ZZZ/31/XXX را +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=تعداد قابل تنظیم می گرداند با توجه به ماسک تعریف شده است. ServerAvailableOnIPOrPort=سرور در آدرس٪ s روی پورت٪ در دسترس است ServerNotAvailableOnIPOrPort=سرور در دسترس نیست در آدرس٪ s روی پورت٪ بازدید کنندگان @@ -369,19 +375,21 @@ Int=عدد صحیح Float=شناور DateAndTime=تاریخ و ساعت Unique=منحصر به فرد -Boolean=بولی (جعبه) +Boolean=Boolean (one checkbox) ExtrafieldPhone = تلفن ExtrafieldPrice = قیمت ExtrafieldMail = پست الکترونیک ExtrafieldUrl = Url ExtrafieldSelect = لیست انتخاب کنید ExtrafieldSelectList = انتخاب از جدول -ExtrafieldSeparator=تفکیک کننده +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=رمز عبور -ExtrafieldCheckBox=جعبه -ExtrafieldRadio=دکمه های رادیویی -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=فهرست پارامترها را به مانند کلید، ارزش است

به عنوان مثال:
1، VALUE1
2، VALUE2
3، value3
... ExtrafieldParamHelpradio=فهرست پارامترها را به مانند کلید، ارزش است

به عنوان مثال:
1، VALUE1
2، VALUE2
3، value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=رشته +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=کاربران و گروه های Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=فاکتور و مدیریت توجه داشته باشید اعت Module40Name=تولید کنندگان Module40Desc=مدیریت تامین و خرید (سفارشات و فاکتورها) Module42Name=گزارش ها -Module42Desc=امکانات ورود به سیستم (فایل، syslog را، ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=ویراستاران Module49Desc=مدیریت ویرایشگر Module50Name=محصولات @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=ادغام Webcalendar Module500Name=هزینه های ویژه Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=اطلاعیه ها @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP با Maxmind قابلیت تبدیل Module3100Name=اسکایپ Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=چند شرکت Module5000Desc=اجازه می دهد تا به شما برای مدیریت شرکت های متعدد Module6000Name=گردش کار @@ -591,7 +615,7 @@ Permission32=ایجاد / تغییر محصول Permission34=حذف محصول Permission36=مشاهده / مدیریت محصولات مخفی Permission38=محصولات صادراتی -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=حذف پروژه (پروژه مشترک و پروژه های I تماس با هستم) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=مرتب سازی بر روش DictionarySource=منبع از پیشنهادات / سفارشات DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=مدل برای نمودار حساب +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=الگوهای ایمیل DictionaryUnits=واحد DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=راه اندازی نجات داد +SetupNotSaved=Setup not saved BackToModuleList=بازگشت به لیست ماژول ها BackToDictionaryList=برگشت به فهرست واژه نامه ها VATManagement=مدیریت مالیات بر ارزش افزوده @@ -921,7 +947,7 @@ Host=سرور DriverType=نوع درایور SummarySystem=سیستم خلاصه اطلاعات SummaryConst=فهرست تمام پارامترهای راه اندازی Dolibarr -MenuCompanySetup=شرکت / موسسه +MenuCompanySetup=Company/Organisation DefaultMenuManager= مدیر منوی استاندارد DefaultMenuSmartphoneManager=مدیر منو گوشی های هوشمند Skin=تم پوست @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=پیام روز MessageLogin=ارسال صفحه ورود +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=فرم جستجو دائمی در منوی سمت چپ DefaultLanguage=زبان پیش فرض برای استفاده از (زبان) EnableMultilangInterface=فعال کردن رابط کاربری چند زبانه EnableShowLogo=نمایش لوگو را در منوی سمت چپ -CompanyInfo=شرکت / اطلاعات پایه -CompanyIds=هویت شرکت / بنیاد +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=نام CompanyAddress=نشانی CompanyZip=زیپ @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=تاخیر تحمل (در روز) قبل از آماد Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=تاخیر تحمل (در روز) قبل از آماده باش برای چک سپرده به انجام Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=دیگر نوشته های منو مدیریت پارامتر اختیاری دارد. LogEvents=رویدادهای ممیزی امنیت Audit=ممیزی @@ -987,7 +1015,7 @@ BrowserOS=مرورگر OS ListOfSecurityEvents=فهرست حوادث امنیتی Dolibarr SecurityEventsPurged=رویدادهای امنیتی پاکسازی LogEventDesc=شما می توانید در اینجا قادر به ورود به سیستم برای رویدادهای امنیتی Dolibarr. حسابرسی - مدیران پس از آن می توانید مطالب خود را از طریق ابزارهای سیستم منو را ببینید. اخطار، این ویژگی می تواند مقدار زیادی از داده ها در پایگاه داده مصرف می کند. -AreaForAdminOnly=این ویژگی را می توان تنها کاربران مدیر استفاده می شود. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=اطلاعات سیستم اطلاعات فنی موارد دیگر شما در حالت فقط خواندنی و قابل مشاهده فقط برای مدیران دریافت می باشد. SystemAreaForAdminOnly=این منطقه در دسترس است فقط برای کاربران مدیر سیستم باشد. هیچ یک از مجوز Dolibarr می تواند از این حد کاهش دهد. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=شما باید حداقل قادر می سازد 1 ماژول ClassNotFoundIntoPathWarning=کلاس٪ s ​​را به مسیر PHP یافت نشد YesInSummer=بله در فصل تابستان -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=ذخیره سازی جلسه رمز شده توسط Suhosin ConditionIsCurrently=وضعیت در حال حاضر از٪ s YouUseBestDriver=شما با استفاده از راننده٪ است که بهترین راننده های موجود در حال حاضر. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=قوانین در حرفه شناسه MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=لینک صادرات به فرمت٪ s در لینک زیر موجود است:٪ s ##### Invoices ##### BillsSetup=راه اندازی ماژول فاکتورها BillsNumberingModule=فاکتورها و یادداشت های اعتباری مدل شماره BillsPDFModules=اسناد فاکتور مدل +PaymentsPDFModules=Payment documents models CreditNote=توجه داشته باشید اعتباری CreditNotes=یادداشت های اعتباری ForceInvoiceDate=تاریخ فاکتور نیروی به تاریخ اعتبار @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=فایل های از نوع٪ s را با HTTP سرور ک FilesOfTypeCompressed=فایل های از نوع٪ s را با HTTP سرور فشرده FilesOfTypeNotCompressed=فایل های از نوع٪ s را با HTTP سرور فشرده نیست CacheByServer=کش سرور +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=کش شده توسط مرورگر CompressionOfResources=فشرده سازی از پاسخهای HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=راه اندازی ماژول محصولات ServiceSetup=راه اندازی خدمات ماژول @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=تاریخ فاکتور استفاده می شود Buy=خرید Sell=فروش InvoiceDateUsed=تاریخ فاکتور استفاده می شود -YourCompanyDoesNotUseVAT=شرکت شما تعریف شده مالیات بر ارزش افزوده (صفحه اصلی - راه اندازی - شرکت / بنیاد) استفاده نمی کند، بنابراین هیچ گزینه های مالیات بر ارزش افزوده به نصب وجود دارد. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=حسابداری کد AccountancyCodeSell=حساب فروش. رمز AccountancyCodeBuy=خرید حساب. رمز @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=تنظیم به صورت خودکار این وضع AGENDA_DEFAULT_VIEW=کدام زبانه می خواهید برای باز کردن به طور پیش فرض هنگام انتخاب دستور کار منو AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=کلیک کنید تا شماره گیری راه اندازی ماژول -ClickToDialUrlDesc=آدرس نامیده می شود که با کلیک بر روی picto تلفن انجام می شود. در URL، شما می توانید برچسب ها
__PHONETO__ خواهد شد که با شماره تلفن از فرد جایگزین را به تماس
__PHONEFROM__ خواهد شد که با شماره تلفن تماس شخص (شما) به جای
__LOGIN__ خواهد شد که با ورود clicktodial خود را جایگزین (تعریف شده در کارت کاربر شما)
__PASS__ خواهد شد که با رمز عبور clicktodial شما (تعریف شده در کارت کاربر خود را) جایگزین شده است. +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=ترتیب نمایش عمومی BankOrderES=اسپانیایی BankOrderESDesc=ترتیب نمایش اسپانیایی ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=چند شرکت نصب ماژول ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/fa_IR/compta.lang b/htdocs/langs/fa_IR/compta.lang index 2b09183ed71..5a4510ef659 100644 --- a/htdocs/langs/fa_IR/compta.lang +++ b/htdocs/langs/fa_IR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=مقدار در اینجا نشان دا Param=برپایی RemainingAmountPayment=پرداخت مقدار باقی مانده: Account=حساب -Accountparent=حساب پدر و مادر -Accountsparent=حساب پدر و مادر +Accountparent=Parent account +Accountsparent=Parent accounts Income=درامد Outcome=هزینه ReportInOut=درآمد / هزینه @@ -56,6 +56,7 @@ MenuTaxAndDividends=مالیات و سود سهام MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=منطقه حسابداری / خزانه داری NewPayment=پرداخت جدید @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- این شامل تمام پرداخت های موثر از فاکتورها دریافت شده از مشتریان.
- این است که در روز پرداخت از این فاکتورها بر اساس
-DepositsAreNotIncluded=- صورت حساب های سپرده ها و نه شامل -DepositsAreIncluded=- صورت حساب های سپرده را شامل می شوند +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=گزارش شده توسط شخص ثالث IRPF LT1ReportByCustomersInInputOutputModeES=گزارش شده توسط شخص ثالث RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=مجله فروش DescPurchasesJournal=مجله خرید InvoiceRef=کد عکس فاکتور. CodeNotDef=تعریف نشده -WarningDepositsNotIncluded=سپرده فاکتورها در این نسخه با این ماژول حسابداری گنجانده نشده است. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=تاریخ مدت پرداخت نمی تواند کمتر از تاریخ شی. Pcg_version=Chart of accounts models Pcg_type=نوع PCG @@ -189,8 +190,10 @@ AccountancyJournal=کد حسابداری مجله ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/fa_IR/cron.lang b/htdocs/langs/fa_IR/cron.lang index 21bca90a3c6..b5c199e86e8 100644 --- a/htdocs/langs/fa_IR/cron.lang +++ b/htdocs/langs/fa_IR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=کار CronNone=هیچ یک CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=قادر ساختن CronStatusInactiveBtn=از کار انداختن CronTaskInactive=این کار غیر فعال است CronId=شناسایی -CronClassFile=کلاس ها (filename.class.php) -CronModuleHelp=نام Dolibarr دایرکتوری ماژول (با ماژول Dolibarr خارجی کار می کنند).
برای exemple به بهانه روش Dolibarr شی محصولات / htdocs / محصول / کلاس / product.class.php، ارزش ماژول محصول -CronClassFileHelp=نام فایل برای بارگذاری.
برای exemple به بهانه روش Dolibarr محصولات شی / htdocs / محصول / کلاس / product.class.php، ارزش نام فایل کلاس product.class.php است -CronObjectHelp=نام شی برای بارگذاری.
برای exemple به بهانه روش Dolibarr شی محصولات / htdocs / محصول / کلاس / product.class.php، ارزش نام فایل کلاس محصولات است -CronMethodHelp=روش شی برای راه اندازی.
برای exemple به بهانه روش Dolibarr محصولات شی / htdocs / محصول / کلاس / product.class.php، ارزش روش است fecth -CronArgsHelp=استدلال از روش.
برای exemple به بهانه روش Dolibarr محصولات شی / htdocs / محصول / کلاس / product.class.php، مقدار پارامترهای می تواند 0، ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=خط فرمان سیستم را اجرا کند. CronCreateJob=Create new Scheduled Job CronFrom=از @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/fa_IR/errors.lang b/htdocs/langs/fa_IR/errors.lang index 3540240bd0f..276a2e9ec03 100644 --- a/htdocs/langs/fa_IR/errors.lang +++ b/htdocs/langs/fa_IR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=برای ایجاد پرونده «٪ s» شکست ErrorFailToRenameDir=برای تغییر نام دایرکتوری '٪ s' را به '٪ s »شکست خورد. ErrorFailToCreateDir=برای ایجاد دایرکتوری '٪ s »شکست خورد. ErrorFailToDeleteDir=دایرکتوری '٪ s' به حذف انجام نشد. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=این تماس در حال حاضر به عنوان تماس برای این نوع تعریف شده است. ErrorCashAccountAcceptsOnlyCashMoney=این حساب بانکی یک حساب نقدی، پس از آن پرداخت و تنها نوع پول نقد را می پذیرد. ErrorFromToAccountsMustDiffers=منبع و اهداف حساب های بانکی باید متفاوت باشد. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=برای نوشتن در پوشه٪ s شکست خورد ErrorFoundBadEmailInFile=یافت نحو ایمیل نادرست برای٪ s خط در فایل (به عنوان مثال خط٪ با ایمیل =٪ بازدید کنندگان) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=برخی از زمینه های مورد نیاز است نه شد. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=برای ایجاد یک دایرکتوری شکست خورده است. بررسی کنید که کاربر وب سرور دارای مجوز به ارسال به Dolibarr دایرکتوری اسناد. اگر safe_mode پارامتر در این PHP را فعال کنید، بررسی کنید که فایل های پی اچ پی Dolibarr صاحب به کاربر وب سرور (یا گروه). ErrorNoMailDefinedForThisUser=بدون پست تعریف شده برای این کاربر ErrorFeatureNeedJavascript=این قابلیت نیاز به جاوا اسکریپت را فعال شود به کار می کنند. تغییر این در نصب - صفحه نمایش. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=حساب کاربری٪ s را برای اجرای وب سرور بدون اجازه که ErrorNoActivatedBarcode=بدون بارکد از نوع فعال ErrUnzipFails=برای جدا کردن٪ s با ZipArchive ناموفق -ErrNoZipEngine=بدون موتور را از حالت زیپ خارج از٪ s فایل در این PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=پرونده٪ s باید یک بسته فشرده Dolibarr است ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL نصب نشده است، این ضروری است که با پی پال صحبت @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index 7c02f6f694e..4d89cb3ed8b 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=پارامتر٪ s را تعریف نشده ErrorUnknown=خطا مشخص نشده است ErrorSQL=خطا در SQL ErrorLogoFileNotFound=فایل لوگو '٪ s' یافت نشد -ErrorGoToGlobalSetup=برو به راه اندازی "شرکت / بنیاد برای رفع این +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=برو به ماژول راه اندازی به رفع این ErrorFailedToSendMail=برای ارسال ایمیل (فرستنده =٪ S، گیرنده =٪ بازدید کنندگان) شکست خورد ErrorFileNotUploaded=فایل آپلود نشد. بررسی کنید که اندازه حداکثر مجاز تجاوز نمی کند، که فضای خالی موجود بر روی دیسک است و در حال حاضر وجود دارد یک فایل با همین نام در این شاخه. @@ -153,6 +153,7 @@ Edit=ویرایش Validate=معتبر ساختن ValidateAndApprove=Validate and Approve ToValidate=به اعتبار +NotValidated=Not validated Save=جویی در هزینه SaveAs=ذخیره به عنوان TestConnection=اتصال تست @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=بدون قابلیت قطع عملی با حالت Connection=ارتباط Setup=برپایی Alert=هوشیار +MenuWarnings=تصویر، موسیقی Previous=قبلی Next=بعد Cards=کارت @@ -308,6 +310,7 @@ Copy=نسخه Paste=خمیر Default=پیش فرض DefaultValue=ارزش قرار دادی +DefaultValues=Default values Price=قیمت UnitPrice=قیمت واحد UnitPriceHT=قیمت واحد (خالص) @@ -363,7 +366,8 @@ VATRate=نرخ مالیات Average=متوسط Sum=مجموع Delta=دلتا -Module=واحد +Module=Module/Application +Modules=Modules/Applications Option=انتخاب List=فهرست FullList=لیست کامل @@ -387,7 +391,7 @@ ActionRunningNotStarted=برای شروع ActionRunningShort=In progress ActionDoneShort=در دست اجرا ActionUncomplete=ناقص -CompanyFoundation=شرکت / موسسه +CompanyFoundation=Company/Organisation ContactsForCompany=اطلاعات تماس این شخص ثالث ContactsAddressesForCompany=تماس / آدرس برای این شخص ثالث AddressesForCompany=آدرس برای این شخص ثالث @@ -405,8 +409,9 @@ Generate=تولید Duration=مدت TotalDuration=مدت زمان کل Summary=خلاصه -DolibarrStateBoard=ارقام -DolibarrWorkBoard=وظایف کار هیئت مدیره +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=در دسترس NotYetAvailable=هنوز در دسترس نیست NotAvailable=در دسترس نیست @@ -434,7 +439,7 @@ Reportings=گزارش Draft=پیش نویس Drafts=نوعی بازی چکرز Validated=اعتبار -Opened=افتتاح شد +Opened=باز New=جدید Discount=تخفیف Unknown=ناشناخته @@ -453,6 +458,7 @@ NextStep=گام بعدی Datas=اطلاعات None=هیچ یک NoneF=هیچ یک +NoneOrSeveral=None or several Late=دیر LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=تصویر @@ -606,7 +612,8 @@ PartialWoman=بخشی TotalWoman=کل NeverReceived=هرگز دریافت Canceled=لغو شد -YouCanChangeValuesForThisListFromDictionarySetup=شما می توانید مقادیر را برای این لیست را از تنظیمات منو را تغییر دهید - فرهنگ لغت +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=رنگ Documents=فایل های مرتبط @@ -642,6 +649,7 @@ FreeLineOfType=ورود رایگان از نوع CloneMainAttributes=شی کلون با ویژگی های اصلی آن PDFMerge=PDF ادغام Merge=ادغام کردن +DocumentModelStandardPDF=Standard PDF template PrintContentArea=نمایش صفحه به چاپ منطقه محتوای اصلی MenuManager=مدیریت منو WarningYouAreInMaintenanceMode=اخطار، شما در یک حالت تعمیر و نگهداری می باشد، بنابراین تنها ورود به٪ s را مجاز به استفاده از نرم افزار در حال حاضر. @@ -708,6 +716,7 @@ from=از toward=نسبت به Access=دسترسی SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=استفاده از کلیدهای Ctrl + C برای کپی به کلیپ بورد SaveUploadedFileWithMask=ذخیره فایل بر روی سرور با نام "٪ s" (در غیر این صورت "٪ s") OriginFileName=نام فایل اصلی @@ -718,7 +727,7 @@ ViewPrivateNote=مشاهده یادداشت XMoreLines=٪ خط (بازدید کنندگان) پنهان PublicUrl=URL عمومی AddBox=اضافه کردن جعبه -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=سلام Sincerely=Sincerely DeleteLine=حذف خط ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=تقویم GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=سال مالی +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=دوشنبه Tuesday=سهشنبه @@ -817,5 +835,3 @@ SearchIntoContracts=قراردادها SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index 0a20729b42e..a0b0810f346 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=تاریخ تولد BirthdayAlertOn=تولد هشدار فعال BirthdayAlertOff=تولد غیر فعال هشدار +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=مداخله اعتبار Notify_FICHINTER_SENTBYMAIL=مداخله با پست @@ -61,13 +74,14 @@ PredefinedMailTestHtml=این ایمیل آزمون (آزمون کلمه PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ شما در اینجا خواهید دید پیشنهاد تجاری __ PROPREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ شما در اینجا خواهید دید که منظور __ ORDERREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ شما در اینجا خواهید دید منظور ما __ ORDERREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ شما در اینجا خواهید دید حمل و نقل __ SHIPPINGREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ شما در اینجا را پیدا خواهد کرد از مداخله __ FICHINTERREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __ PERSONALIZED__ __ SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
پروفسور کد از٪ s
اطلاعات بسته به کشور های شخص ثالث است.
به عنوان مثال، برای کشور٪، این کد٪ بازدید کنندگان است. DolibarrDemo=Dolibarr ERP / CRM نسخه ی نمایشی -StatsByNumberOfUnits=آمار در تعدادی از محصولات / خدمات واحد -StatsByNumberOfEntities=آمار در تعداد اشخاص مراجعه کننده -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=مداخله٪ s را دارای اعتبار بوده است. EMailTextInvoiceValidated=صورتحساب٪ s را دارای اعتبار بوده است. diff --git a/htdocs/langs/fa_IR/projects.lang b/htdocs/langs/fa_IR/projects.lang index 71713cc130c..f0349748b47 100644 --- a/htdocs/langs/fa_IR/projects.lang +++ b/htdocs/langs/fa_IR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=هر کسی PrivateProject=تماس با ما پروژه +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=همه پروژه ها MyProjectsDesc=این دیدگاه محدود به پروژه شما یک تماس برای (هر چه باشد نوع) می باشد. ProjectsPublicDesc=این دیدگاه ارائه تمام پروژه ها به شما این اجازه را بخوانید. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=این دیدگاه ارائه تمام پروژه ها و وظایف AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=پروژه های جدید AddProject=Create project DeleteAProject=حذف یک پروژه DeleteATask=حذف کار ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=نمایش پروژه SetProject=تنظیم پروژه NoProject=هیچ پروژه تعریف شده و یا متعلق به NbOfProjects=Nb در پروژه +NbOfTasks=Nb of tasks TimeSpent=زمان صرف شده TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=مدت زمان صرف شده در کارها TaskTimeUser=کاربر TaskTimeNote=یادداشت TaskTimeDate=تاریخ -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=زمان جدید به سر برد +NewTimeSpent=زمان صرف شده MyTimeSpent=وقت من صرف Tasks=وظایف Task=کار @@ -59,6 +64,7 @@ TaskDescription=شرح وظیفه NewTask=کار جدید AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=فعالیت Activities=وظایف / فعالیت ها MyActivities=کارهای من / فعالیت ها @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=فهرست قرارداد در ارتباط با پروژه +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=فهرست مداخلات مرتبط با پروژه ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=تماس با ما پروژه ActionsOnProject=رویدادها در پروژه YouAreNotContactOfProject=شما یک تماس از این پروژه خصوصی نیست +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=زمان صرف شده حذف ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=منابع ProjectsDedicatedToThisThirdParty=پروژه ها اختصاص داده شده به این شخص ثالث NoTasks=بدون وظایف برای این پروژه LinkedToAnotherCompany=لینک به دیگر شخص ثالث -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=مدت زمان صرف شده خالی است ThisWillAlsoRemoveTasks=این کار همچنین تمام کارهای پروژه (وظایف٪ s در حال حاضر) حذف و تمام ورودی ها از زمان صرف شده. IfNeedToUseOhterObjectKeepEmpty=اگر برخی از اشیاء (فاکتور، سفارش، ...)، متعلق به شخص ثالث دیگری، باید به این پروژه برای ایجاد، نگه داشتن این خالی به این پروژه که احزاب چند سوم مرتبط است. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index d7118bfdea3..4a0bf16d721 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -19,34 +19,38 @@ Journalization=Journalization Journaux=Journals JournalFinancial=Financial journals BackToChartofaccounts=Return chart of accounts -Chartofaccounts=Chart of accounts +Chartofaccounts=Tilikartta CurrentDedicatedAccountingAccount=Current dedicated account AssignDedicatedAccountingAccount=New account to assign InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? -AccountancyArea=Accountancy area +AccountancyArea=Kirjanpitoalue AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,12 +61,16 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts +MenuDefaultAccounts=Oletustilit +MenuVatAccounts=Arvonlisäverotili +MenuTaxAccounts=Verotili +MenuExpenseReportAccounts=Kuluraportti tilit +MenuLoanAccounts=Lainatilit MenuProductsAccounts=Product accounts ProductsBinding=Products accounts Ventilation=Binding to accounts @@ -71,9 +79,9 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger -AccountBalance=Account balance +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger +AccountBalance=Tilin saldo CAHTF=Total purchase supplier before tax TotalExpenseReport=Total expense report @@ -85,13 +93,13 @@ IntoAccount=Bind line with the accounting account Ventilate=Bind -LineId=Id line +LineId=Rivin tunniste Processing=Processing EndProcessing=Process terminated. SelectedLines=Selected lines Lineofinvoice=Line of invoice LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected +NoAccountSelected=Kirjanpitotiliä ei ole valittu VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,37 +140,37 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +DeleteMvt=Delete Ledger lines +DelYear=Tuhottava vuosi +DelJournal=Tuhottava päiväkirja +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +VATAccountNotDefined=ALV tiliä ei ole määritelty +ThirdpartyAccountNotDefined=Sidosryhmän tiliä ei ole määritetty +ProductAccountNotDefined=Tuotteen tiliä ei ole määritetty FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +BankAccountNotDefined=Pankin tiliä ei ole määritetty CustomerInvoicePayment=Payment of invoice customer ThirdPartyAccount=Thirdparty account NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Koodi +Nature=Luonto +AccountingJournalType1=Various operation +AccountingJournalType2=Myynti +AccountingJournalType3=Ostot +AccountingJournalType4=Pankki +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -231,15 +252,16 @@ ValueNotIntoChartOfAccount=This value of accounting account does not exist into ## Dictionary Range=Range of accounting account -Calculated=Calculated -Formula=Formula +Calculated=Laskettu +Formula=Kaava ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping +NoJournalDefined=No journal defined +Binded=Rivit yhdistetty +ToBind=Yhdistettäviä rivejä -Binded=Lines bound -ToBind=Lines to bind - -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index b705178ca0c..c49fabf9780 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation +Foundation=Säätiö Version=Versio VersionProgram=Ohjelmaversio -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Alkuperäinen versio +VersionLastUpgrade=Viimeisin versiopäivitys VersionExperimental=Kokeellinen VersionDevelopment=Kehitys VersionUnknown=Tuntematon @@ -48,6 +48,7 @@ InternalUsers=Sisäiset käyttäjät ExternalUsers=Ulkopuoliset käyttäjät GUISetup=Näyttö SetupArea=Asetusalue +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Lomake testata tiedostonlähetyskiintiö (mukaan setup) IfModuleEnabled=Huomaa: kyllä on tehokas vain, jos moduuli %s on käytössä RemoveLock=Poista tiedosto %s, jos se on olemassa, jotta päivitys työkalu. @@ -60,7 +61,7 @@ ErrorDecimalLargerThanAreForbidden=Virhe, tarkkuuden suurempi kuin %s ei DictionarySetup=Sanakirja setup Dictionary=Dictionaries ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 +ErrorCodeCantContainZero=Koodi ei voi sisältää arvoa 0 DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. @@ -78,14 +79,14 @@ CurrentTimeZone=Nykyinen aikavyöhyke MySQLTimeZone=TimeZone MySql (database) TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). Space=Space -Table=Table +Table=Taulu Fields=Kentät -Index=Index +Index=Indeksi Mask=Mask NextValue=Seuraava arvo NextValueForInvoices=Seuraava arvo (laskut) NextValueForCreditNotes=Seuraava arvo (hyvityslaskut) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Huomaa: sinun PHP rajoissa kunkin tiedoston lataa koko %s% s, riippumatta tämän parametrin arvo on NoMaxSizeByPHPLimit=Huom: Ei raja on asetettu sinun PHP kokoonpano @@ -103,7 +104,7 @@ MenuIdParent=Emo-valikosta tunnus DetailMenuIdParent=ID emo-valikossa (0 ylhäältä valikosta) DetailPosition=Lajittele numero määritellä valikkopalkki kanta AllMenus=Kaikki -NotConfigured=Ei määritetty +NotConfigured=Module/Application not configured Active=Aktiivinen SetupShort=Setup OtherOptions=Muut valinnat @@ -113,20 +114,20 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Moduulit LanguageBrowserParameter=Parametri %s LocalisationDolibarrParameters=Lokalisointi parametrit -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone +ClientTZ=Asiakkaan aikavyöhyke (käyttäjä) +ClientHour=Asiakkaan aikavyöhyke (käyttäjä) +OSTZ=Palvelimen OS aikavyöhyke PHPTZ=Aikavyöhyke Server PHP DaylingSavingTime=Kesäaika (käyttäjä) CurrentHour=Nykyinen tunti CurrentSessionTimeOut=Nykyinen istunnon aikakatkaisun -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets +Boxes=Widgetit +MaxNbOfLinesForBoxes=Rivien maksimimäärä widgeteille PositionByDefault=Oletus jotta Position=Asema MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). @@ -137,14 +138,14 @@ System=System SystemInfo=Järjestelmän tiedot SystemToolsArea=Kehitysresurssit alueella SystemToolsAreaDesc=Tämä alue tarjoaa hallinnon ominaisuuksia. Käytä valikosta valita ominaisuus, jota etsit. -Purge=Purge +Purge=Siivoa PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeDeleteLogFile=Poista Syslog modulin lokitiedosto %s (ei vaaraa tiedon menetyksestä) PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) PurgeDeleteTemporaryFilesShort=Delete temporary files PurgeDeleteAllFilesInDocumentsDir=Poista kaikki tiedostot hakemistoon %s. Väliaikaiset tiedostot, mutta myös liitetyt tiedostot elementtejä (kolmansien osapuolten, laskut, ...) ja siirretty osaksi ECM moduuli on poistettu. PurgeRunNow=Siivoa nyt -PurgeNothingToDelete=No directory or files to delete. +PurgeNothingToDelete=Ei tuhottavia hakemistoja eikä tiedostoja. PurgeNDirectoriesDeleted= %s tiedostot tai hakemistot poistetaan. PurgeAuditEvents=Purge kaikki tapahtumat ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. @@ -164,7 +165,7 @@ ImportPostgreSqlDesc=Tuo varmuuskopiotiedosto, sinun täytyy käyttää pg_resto ImportMySqlCommand=%s %s <mybackupfile.sql ImportPostgreSqlCommand=%s %s mybackupfile.sql FileNameToGenerate=Tiedoston nimi tuottaa -Compression=Compression +Compression=Pakkaus CommandsToDisableForeignKeysForImport=Komento poistaa ulko avaimet tuontiluvista CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later ExportCompatibility=Yhteensopivuutta luodaan viedä tiedosto @@ -176,7 +177,7 @@ FullPathToPostgreSQLdumpCommand=Täysi polku pg_dump komento ExportOptions=Vienti Valinnat AddDropDatabase=Add DROP DATABASE command AddDropTable=Lisää DROP TAULUKON komento -ExportStructure=Structure +ExportStructure=Rakenne NameColumn=Nimi sarakkeet ExtendedInsert=Laajennettu INSERT NoLockBeforeInsert=Ei lukko komennot noin INSERT @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Oikeudet BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -199,7 +200,7 @@ DoliPartnersDesc=List of companies providing custom developed modules or feature WebSiteDesc=Reference websites to find more modules... URL=Linkki BoxesAvailable=Widgets available -BoxesActivated=Widgets activated +BoxesActivated=Widget aktivoitu ActivateOn=Ota annetun ActiveOn=Aktivoitu SourceFile=Lähdetiedostoa @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Tietokannan salasana salattu conf.php InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Suojaaminen syntyy pdf-tiedostoja (ei recommandd, taukoja massa pdf sukupolvi) -ProtectAndEncryptPdfFilesDesc=Suojaaminen PDF asiakirja pitää saatavilla lukea ja tulostaa kaikki PDF-selaimella. Kuitenkin, editointi ja kopiointi ei ole mahdollista enää. Huomaa, että käyttäessäsi tätä ominaisuutta tehdä rakentaa maailmanlaajuinen kumuloida pdf ei toimi (kuten maksamattomat laskut). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Ominaisuus DolibarrLicense=Lisenssi Developpers=Kehittäjät / vastaajat @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online-demo OfficialMarketPlace=Virallinen markkinoilla ulkoisten moduulien / lisät OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Käyttäjälle tai kehittäjän dokumentaatio (doc, FAQs ...),
katsoa, että Dolibarr Wiki:
%s ForAnswersSeeForum=Muita kysymyksiä / apua, voit käyttää Dolibarr foorumilla:
%s HelpCenterDesc1=Tämä alue voi auttaa sinua saamaan tukea palvelua Dolibarr. @@ -267,12 +270,12 @@ FeatureNotAvailableOnLinux=Ominaisuus ei ole Unix-koneissa. Testaa sendmail ohje SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduuli setup -ModulesSetup=Moduulit setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Asiakas Ressource Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) +ModuleFamilyProducts=Tuotehallinat (PM) +ModuleFamilyHr=Henkilöstöhallinta (HR) ModuleFamilyProjects=Projektit / Yhteistyöhankkeet työn ModuleFamilyOther=Muu ModuleFamilyTechnic=Multi-modules työkalut @@ -283,7 +286,7 @@ ModuleFamilyPortal=Web sites and other frontal application ModuleFamilyInterface=Interfaces with external systems MenuHandlers=Valikko käsitteleville MenuAdmin=Valikko editor -DoNotUseInProduction=Do not use in production +DoNotUseInProduction=Älä käytä tuotannossa ThisIsProcessToFollow=This is steps to process: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Vaihe %s @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr nykyinen versio CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Kaikki muut merkit ja maski pysyy ennallaan.
Välilyönnit eivät ole sallittuja.
-GenericMaskCodes4a=Esimerkki on 99 %s on kolmannen osapuolen TheCompany tehnyt 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Esimerkki kolmannen osapuolen luotu 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Paluu mukautettavan numeron mukaan määritelty mask. ServerAvailableOnIPOrPort=Server on saatavilla osoitteessa %s satama %s ServerNotAvailableOnIPOrPort=Palvelin ei ole käytettävissä osoitteessa %s satama %s @@ -367,21 +373,23 @@ String=String TextLong=Long text Int=Integer Float=Float -DateAndTime=Date and hour +DateAndTime=Päivämäärä ja tunti Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Puhelin ExtrafieldPrice = Hinta ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Salasana -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Kenttä +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Käyttäjät & ryhmät Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Laskut ja hyvityslaskut hallinto-asiakkaille. Laskut hallinto-toimi Module40Name=Tavarantoimittajat Module40Desc=Toimittajien hallinta ja ostomenoista (tilaukset ja laskut) Module42Name=Syslog -Module42Desc=Logging tilat (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Toimitus Module49Desc=Editors' hallinta Module50Name=Tuotteet @@ -499,15 +521,15 @@ Module410Name=Webcalendar Module410Desc=Webcalendar yhdentyminen Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages +Module520Name=Laina Module520Desc=Management of loans Module600Name=Ilmoitukset Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails Module700Name=Lahjoitukset Module700Desc=Lahjoitukset hallinto -Module770Name=Expense reports +Module770Name=Kuluraportit Module770Desc=Management and claim expense reports (transportation, meal, ...) Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind tulokset valmiuksia Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-yhtiö Module5000Desc=Avulla voit hallita useita yrityksiä Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Luoda / muuttaa tuotetta / palvelua Permission34=Poista tuotteita / palveluita Permission36=Vienti tuotteet / palvelut Permission38=Vientituotteen -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Poista hankkeiden Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Tilaaminen menetelmät DictionarySource=Alkuperä ehdotusten / tilaukset DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Yksiköt DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup tallennettu +SetupNotSaved=Setup not saved BackToModuleList=Palaa moduulien luetteloon BackToDictionaryList=Palaa sanakirjat luettelo VATManagement=Alv Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver tyyppi SummarySystem=System Information summary SummaryConst=Luettelo kaikista Dolibarr setup parametrit -MenuCompanySetup=Yritys / säätiö +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard valikonhallinta DefaultMenuSmartphoneManager=Smartphone valikonhallinta Skin=Ihon teema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Kirjoita viesti +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Pysyvä hakulomake vasemmassa valikossa DefaultLanguage=Oletuskieltä käyttää (kieli-koodi) EnableMultilangInterface=Ota monikielinen käyttöliittymä EnableShowLogo=Show logo vasemmalla valikossa -CompanyInfo=Yritys / säätiö tiedot -CompanyIds=Yritys / perusta identiteettien +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nimi CompanyAddress=Osoite CompanyZip=Postinumero @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Suvaitsevaisuus viive (päivinä) ennen ilmoituksen my Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Suvaitsevaisuus viive (päivinä) ennen varoituksena sekit tallettaa tehdä Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Muut valikkoon rivit hallita valinnaisia parametrejä. LogEvents=Security Audit tapahtumat Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Luettelo Dolibarr turvallisuus tapahtumat SecurityEventsPurged=Turvallisuus tapahtumia puhdistettava LogEventDesc=Voit ottaa loki Dolibarr turvallisuus tapahtumia täältä. Järjestelmänvalvojat voivat sitten nähdä sen sisällön kautta valikosta System tools - Audit. Varoitus, tämä ominaisuus voi kuluttaa suuren määrän tietoa tietokannasta. -AreaForAdminOnly=Näitä toimintoja voi käyttää järjestelmänvalvojan käyttäjät vain. Administrator piirteet sekä auttaa todetaan Dolibarr ovat seuraavat picto: +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Järjestelmän tiedot ovat erinäiset tekniset tiedot saavat lukea vain tila ja näkyvissä vain järjestelmänvalvojat. SystemAreaForAdminOnly=Tämä alue on käytettävissä järjestelmänvalvojan käyttäjät vain. Ei mikään Dolibarr käyttöoikeudet voidaan vähentää tätä rajaa. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Ammatillinen tunnus ainutlaatuinen MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Vienti-yhteys %s-muodossa on saatavilla seuraavasta linkistä: %s ##### Invoices ##### BillsSetup=Laskut moduulin asetukset BillsNumberingModule=Laskut ja hyvityslaskut numerointiin moduuli BillsPDFModules=Laskun asiakirjojen malleja +PaymentsPDFModules=Payment documents models CreditNote=Menoilmoitus CreditNotes=Hyvityslaskuja ForceInvoiceDate=Force laskun päivämäärästä validointiin päivämäärä @@ -1302,7 +1333,7 @@ LDAPFieldCompanyExample=Esimerkki: o LDAPFieldSid=SID LDAPFieldSidExample=Esimerkki: objectsid LDAPFieldEndLastSubscription=Päiväys merkintää varten -LDAPFieldTitle=Job position +LDAPFieldTitle=Asema LDAPFieldTitleExample=Example: title LDAPSetupNotComplete=LDAP-asetukset ole täydellinen (go muiden välilehdet) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=N: o ylläpitäjä tai salasana tarjotaan. LDAP pääsy on nimetön ja vain luku-tilassa. @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Tuotteet Moduuli setup ServiceSetup=Services-moduuli asennus @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Laskun päiväys käytetty Buy=Ostaa Sell=Myydä InvoiceDateUsed=Laskun päiväys käytetty -YourCompanyDoesNotUseVAT=Yritys on määritelty saa käyttää arvonlisäveron (Home - Asetukset - Yritys / säätiö), joten ei ole mitään alv vaihtoehtoja asetukset. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Kirjanpito koodi AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Napsauttamalla Dial-moduulin asetukset -ClickToDialUrlDesc=Url kutsutaan kun napsautat puhelimen picto on tehty. Dans l'url, vous pouvez käytä les baliiseja
%% 1 $ s qui seerumien remplac par le tlphone de l'appelbr>%% 2 $ s qui seerumien remplac par le tlphone de l'appelant (le votre)
%% 3 $ s qui seerumien remplac par votre sisäänkirjoittautumissivuksesi clicktodial (dfini sur votre fiche utilisateur)
%% 4 $ s qui seerumien remplac par votre mot de elähtänyt clicktodial (dfini sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Yleinen näyttöjärjestys BankOrderES=Espanjalainen BankOrderESDesc=Espanjan näyttöjärjestys ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-yhtiö moduulin asetukset ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/fi_FI/compta.lang b/htdocs/langs/fi_FI/compta.lang index 19f6b0ce05e..b5757b3ccb9 100644 --- a/htdocs/langs/fi_FI/compta.lang +++ b/htdocs/langs/fi_FI/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Määrä maksu jäljellä: Account=Tili -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Tuotot Outcome=Tulos ReportInOut=Tulot / tulokset @@ -56,12 +56,13 @@ MenuTaxAndDividends=Veroja ja osinkoja MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Kirjanpito / Treasury alueella NewPayment=Uusi maksu Payments=Maksut PaymentCustomerInvoice=Asiakas laskun maksu -PaymentSocialContribution=Social/fiscal tax payment +PaymentSocialContribution=Social/fiscal veron maksu PaymentVat=ALV-maksu ListPayment=Luettelo maksut ListOfCustomerPayments=Luettelo asiakkaan maksut @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Se sisältää kaikki tehokkaan maksut laskut asiakkailta.
- Se perustuu maksupäivä näiden laskujen osalta
-DepositsAreNotIncluded=- Talletus laskut eivät sisälly -DepositsAreIncluded=- Talletus laskut kuuluvat +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Raportti kolmannen osapuolen IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Myynti lehdessä DescPurchasesJournal=Ostot lehdessä InvoiceRef=Laskun ref. CodeNotDef=Ei määritelty -WarningDepositsNotIncluded=Talletukset laskut eivät sisälly tähän versioon tämän kirjanpito moduulin. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/fi_FI/cron.lang b/htdocs/langs/fi_FI/cron.lang index 36ad552631f..5c391c13b52 100644 --- a/htdocs/langs/fi_FI/cron.lang +++ b/htdocs/langs/fi_FI/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=Ei mitään CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Poistaa käytöstä CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Mistä @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/fi_FI/errors.lang b/htdocs/langs/fi_FI/errors.lang index 63489d7b0a8..be9b66629fd 100644 --- a/htdocs/langs/fi_FI/errors.lang +++ b/htdocs/langs/fi_FI/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Luominen epäonnistui file ' %s'. ErrorFailToRenameDir=Epäonnistui nimetä directory ' %s' osaksi' %s'. ErrorFailToCreateDir=Luominen epäonnistui directory ' %s'. ErrorFailToDeleteDir=Poistaminen ei onnistunut directory ' %s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Tämä yhteys on jo määritelty yhteyttä tämän tyypin osalta. ErrorCashAccountAcceptsOnlyCashMoney=Tämä pankkitili on käteistä huomioon, joten se hyväksyy maksujen tyypin käteisellä vain. ErrorFromToAccountsMustDiffers=Lähde ja tavoitteet pankkitilit on erilainen. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Epäonnistui kirjoittaa hakemistoon %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Löytyi virheellinen sähköposti syntaksi %s rivit tiedoston (esimerkiksi rivi %s email= %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Jotkin vaaditut kentät eivät ole täytetty. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Luominen epäonnistui hakemiston. Tarkista, että Web-palvelin käyttäjällä on oikeudet kirjoittaa Dolibarr asiakirjat hakemistoon. Jos parametri safe_mode on käytössä tämän PHP, tarkista, että Dolibarr php tiedostot omistaa web-palvelimen käyttäjä (tai ryhmä). ErrorNoMailDefinedForThisUser=Ei postia määritelty tälle käyttäjälle ErrorFeatureNeedJavascript=Tätä ominaisuutta tarvitaan JavaScript on aktivoitu työstä. Muuta tämän setup - näyttö. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Käyttäjätili %s käyttää myös toteuttaa web-palvelimella ei ole lupaa, että ErrorNoActivatedBarcode=Ei viivakoodin tyyppi aktivoitu ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index 64e62a31067..daba6808802 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -20,11 +20,11 @@ FormatHourShortDuration=%H:%M FormatDateTextShort=%d. %b %Y FormatDateText=%d. %B %Y FormatDateHourShort=%d.%m.%Y %H.%M -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourSecShort=%d.%m.%Y %H:%M:%S %p FormatDateHourTextShort=%d. %b %Y %H.%M FormatDateHourText=%d. %B %Y %H.%M DatabaseConnection=Tietokantayhteys -NoTemplateDefined=No template defined for this email type +NoTemplateDefined=Tämän tyyliselle sähköpostille ei ole määritelty pohjaa AvailableVariables=Available substitution variables NoTranslation=Ei käännöstä NoRecordFound=Tietueita ei löytynyt @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametri %s ei ole määritelty ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo-tiedoston ' %s' ei löytynyt -ErrorGoToGlobalSetup=Siirry "Yritys / Fundation" setup vahvistaa tämän +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Siirry Moduuli setup vahvistaa tämän ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=Failed to send mail (lähettäjä= %s, vastaanotin= %s) ErrorFileNotUploaded=Tiedosto ei ole ladattu. Tarkista, että koko ei ylitä suurinta sallittua, että vapaata tilaa on käytettävissä levyllä ja että siellä ei ole jo tiedoston samalla nimellä tähän hakemistoon. @@ -64,11 +64,11 @@ ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type def ErrorFailedToSaveFile=Virhe, ei tallenna tiedosto. ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. +NotAuthorized=Oikeutesi ei riitä tähän toimintoon SetDate=Aseta päivä SelectDate=Valitse päivä SeeAlso=See also %s -SeeHere=See here +SeeHere=Katso täältä Apply=Apply BackgroundColorByDefault=Default taustaväri FileRenamed=The file was successfully renamed @@ -103,13 +103,13 @@ DolibarrHasDetectedError=Dolibarr on havaittu tekninen virhe InformationToHelpDiagnose=This information can be useful for diagnostic purposes MoreInformation=Lisätietoa TechnicalInformation=Tekniset tiedot -TechnicalID=Technical ID +TechnicalID=Tekninen tunniste NotePublic=Huomautus (julkinen) NotePrivate=Huomautus (yksityinen) PrecisionUnitIsLimitedToXDecimals=Dolibarr oli asetettu raja tarkkuus yksikköhinnat %s desimaalit. DoTest=Testi ToFilter=Suodata -NoFilter=No filter +NoFilter=Ei suodatinta WarningYouHaveAtLeastOneTaskLate=Varoitus, sinulla on ainakin yksi elementti, joka on ylittänyt toleranssi viivytystä. yes=kyllä Yes=Kyllä @@ -137,7 +137,7 @@ Disable=Poistaa käytöstä Disabled=Disabled Add=Lisää AddLink=Lisää linkki -RemoveLink=Remove link +RemoveLink=Poista linkki AddToDraft=Add to draft Update=Päivittää Close=Sulje @@ -151,8 +151,9 @@ Cancel=Peruuta Modify=Muokkaa Edit=Muokkaa Validate=Vahvista -ValidateAndApprove=Validate and Approve +ValidateAndApprove=Vahvista ja hyväksy ToValidate=Validoida +NotValidated=Not validated Save=Tallenna SaveAs=Tallenna nimellä TestConnection=Testaa yhteys @@ -170,7 +171,7 @@ Search=Haku SearchOf=Haku Valid=Voimassa Approve=Hyväksy -Disapprove=Disapprove +Disapprove=Poista hyväksyntä ReOpen=Avaa uudelleen Upload=Lähetä tiedosto ToLink=Linkki @@ -183,7 +184,7 @@ User=Käyttäjä Users=Käyttäjät Group=Ryhmä Groups=Ryhmät -NoUserGroupDefined=No user group defined +NoUserGroupDefined=Käyttäjäryhmää ei ole määritelty Password=Salasana PasswordRetype=Kirjoitta salasana uudelleen NoteSomeFeaturesAreDisabled=Huomaa, että monet piirteet / modules on poistettu käytöstä tämän esittelyn. @@ -222,20 +223,21 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Yhteys Setup=Asetukset Alert=Hälytys +MenuWarnings=Vahtipalvelu Previous=Edellinen Next=Seuraava Cards=Kortit Card=Kortti Now=Nyt -HourStart=Start hour +HourStart=Aloitus tunti Date=Päivä -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date +DateAndHour=Päivämäärä ja tunti +DateToday=Päivämäärä tänään +DateReference=Viite päivämäärä DateStart=Aloituspäivämäärä DateEnd=Lopetuspäivä DateCreation=Luotu -DateCreationShort=Creat. date +DateCreationShort=Luonti päivämäärä DateModification=Muokattu DateModificationShort=Muokattu DateLastModification=Latest modification date @@ -251,8 +253,8 @@ DateRequest=Pyydetty DateProcess=Käsitelty DateBuild=Raportti rakentaa päivämäärä DatePayment=Maksupäivä -DateApprove=Approving date -DateApprove2=Approving date (second approval) +DateApprove=Hyväksytään päivämäärä +DateApprove2=Hyväksytään päivämäärä (toinen hyväksyntä) UserCreation=Creation user UserModification=Modification user UserCreationShort=Creat. user @@ -280,7 +282,7 @@ days=päivää Hours=Tuntia Minutes=Minuuttia Seconds=Sekuntia -Weeks=Weeks +Weeks=Viikkoa Today=Tänään Yesterday=Eilen Tomorrow=Huomenna @@ -308,13 +310,14 @@ Copy=Kopioi Paste=Liitä Default=Oletus DefaultValue=Oletusarvo +DefaultValues=Default values Price=Hinta UnitPrice=Yksikköhinta UnitPriceHT=Yksikköhinta (netto) UnitPriceTTC=Yksikköhinta PriceU=UP PriceUHT=UP (netto) -PriceUHTCurrency=U.P (currency) +PriceUHTCurrency=U.P (valuutta) PriceUTTC=U.P. (inc. tax) Amount=Määrä AmountInvoice=Laskun summa @@ -327,9 +330,9 @@ AmountVAT=Verot MulticurrencyAlreadyPaid=Already payed, original currency MulticurrencyRemainderToPay=Remain to pay, original currency MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencyAmountHT=Summa (veroton), alkuperäisessä valuutassa +MulticurrencyAmountTTC=Summa (verollinen), alkuperäisessä valuutassa +MulticurrencyAmountVAT=Veron määrä, alkuperäinen valuutta AmountLT1=Verot 2 AmountLT2=Verot 3 AmountLT1ES=Määrä RE @@ -341,7 +344,7 @@ Percentage=Prosenttia Total=Yhteensä SubTotal=Välisumma TotalHTShort=Yhteensä (netto) -TotalHTShortCurrency=Total (net in currency) +TotalHTShortCurrency=Yhteensä (veroton valuutassa) TotalTTCShort=Yhteensä (sis. alv) TotalHT=Yhteensä (ilman veroja) TotalHTforthispage=Yhteensä (veroton) tällä sivulla @@ -356,24 +359,25 @@ TotalLT2ES=Yhteensä IRPF HT=Veroton TTC=Sis. alv VAT=Alv -VATs=Sales taxes +VATs=Myyntiverot LT1ES=RE LT2ES=IRPF VATRate=Veroaste Average=Keskimääräinen Sum=Sum Delta=Delta -Module=Moduuli +Module=Module/Application +Modules=Modules/Applications Option=Vaihtoehto List=Luettelo FullList=Täydellinen luettelo Statistics=Tilastot OtherStatistics=Muut tilastot Status=Tila -Favorite=Favorite +Favorite=Suosikki ShortInfo=Info. Ref=Viite -ExternalRef=Ref. extern +ExternalRef=Ulkoinen viite RefSupplier=Toimittajan viite RefPayment=Maksun viite CommercialProposalsShort=Kaupalliset ehdotukset @@ -384,19 +388,19 @@ ActionsToDoShort=Tehtävät ActionsDoneShort=Valmis ActionNotApplicable=Ei sovelleta ActionRunningNotStarted=Aloitetaan -ActionRunningShort=In progress +ActionRunningShort=Käsittelyssä ActionDoneShort=Päättetty ActionUncomplete=Uncomplete -CompanyFoundation=Yritys / säätiö +CompanyFoundation=Company/Organisation ContactsForCompany=Sidosryhmien yhteystiedot ContactsAddressesForCompany=Sidosryhmien kontaktit/osoitteet AddressesForCompany=Sidosryhmien osoitteet ActionsOnCompany=Sidosryhmien tapahtumat ActionsOnMember=Jäsenen tapahtumat NActionsLate=%s myöhässä -RequestAlreadyDone=Request already recorded +RequestAlreadyDone=Pyyntö on jo rekisteröity Filter=Suodata -FilterOnInto=Search criteria '%s' into fields %s +FilterOnInto=Hakuperuste '%s' kentistä %s RemoveFilter=Poista suodatin ChartGenerated=Luo kuvio ChartNotGenerated=Kuviota ei ole luotu @@ -405,13 +409,14 @@ Generate=Luo Duration=Kesto TotalDuration=Kokonaiskesto Summary=Yhteenveto -DolibarrStateBoard=Tilastot -DolibarrWorkBoard=Työtehtäväpöytä +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Saatavissa NotYetAvailable=Ei vielä saatavilla NotAvailable=Ei saatavilla -Categories=Tags/categories -Category=Tag/category +Categories=Tagit/luokat +Category=Tagi/luokka By=Mennessä From=Mistä to=on @@ -423,8 +428,8 @@ OtherInformations=Muut tiedot Quantity=Määrä Qty=Kpl ChangedBy=Muuttanut -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) +ApprovedBy=Hyväksynyt +ApprovedBy2=Hyväksynyt (toinen hyväksyntä) Approved=Hyväksytty Refused=Refused ReCalculate=Laske uudelleen @@ -434,7 +439,7 @@ Reportings=Raportointi Draft=Vedos Drafts=Vedokset Validated=Vahvistetut -Opened=Avattu +Opened=Avoinna New=Uusi Discount=Alennus Unknown=Tuntematon @@ -442,7 +447,7 @@ General=Yleiset Size=Koko Received=Vastaanotetut Paid=Maksetut -Topic=Subject +Topic=Aihe ByCompanies=Sidosryhmittäin ByUsers=Käyttäjittäin Links=Linkit @@ -453,6 +458,7 @@ NextStep=Seuraava askel Datas=Tiedot None=Ei mitään NoneF=Ei mitään +NoneOrSeveral=None or several Late=Myöhässä LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Kuva @@ -520,7 +526,7 @@ ReportName=Raportin nimi ReportPeriod=Raportointikausi ReportDescription=Kuvaus Report=Raportti -Keyword=Keyword +Keyword=Avainsana Origin=Origin Legend=Legend Fill=Täytä @@ -538,13 +544,13 @@ NbOfThirdParties=Sidosryhmien määrä NbOfLines=Rivien määrä NbOfObjects=Kohteiden määrä NbOfObjectReferers=Number of related items -Referers=Related items +Referers=Liittyvät tuotteet TotalQuantity=Kokonaismäärä DateFromTo=Kohteesta %s %s DateFrom=Kohteesta %s DateUntil=Vasta %s Check=Shekki -Uncheck=Uncheck +Uncheck=Poista valinta Internal=Sisäinen External=Ulkoinen Internals=Sisäinen @@ -573,8 +579,8 @@ Priority=Prioriteetti SendByMail=Lähetä sähköpostilla MailSentBy=Sähköpostin lähetti TextUsedInTheMessageBody=Sähköpostiviesti -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail +SendAcknowledgementByMail=Lähetä vahvistussähköposti +EMail=Sähköposti NoEMail=Ei sähköpostia Email=Email NoMobilePhone=Ei matkapuhelinta @@ -589,11 +595,11 @@ ValueIsValid=Arvo on voimassa ValueIsNotValid=Value is not valid RecordCreatedSuccessfully=Record created successfully RecordModifiedSuccessfully=Tietue muunnettu onnistuneesti -RecordsModified=%s record modified +RecordsModified=%s tietue muokattu RecordsDeleted=%s record deleted AutomaticCode=Automaattinen koodi FeatureDisabled=Ominaisuus pois päältä -MoveBox=Move widget +MoveBox=Siirrä widget Offered=Tarjottu NotEnoughPermissions=Sinulla ei ole lupaa tätä toimintaa varten SessionName=Istunnon nimi @@ -606,8 +612,9 @@ PartialWoman=Osittainen TotalWoman=Yhteensä NeverReceived=Ei ole saapunut Canceled=Peruutettu -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanSetDefaultValueInModuleSetup=Oletusarvon uudelle luotavalle tietueelle voi määrittää modulin asetuksista Color=Väri Documents=Linkitettyjä tiedostoja Documents2=Asiakirjat @@ -642,6 +649,7 @@ FreeLineOfType=Ilmaisen pääsyn tyyppi CloneMainAttributes=Klooni objekti sen tärkeimmät attribuutit PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Näytä sivu tulostaa päävalikkoon alue MenuManager=Valikkomanageri WarningYouAreInMaintenanceMode=Varoitus, olet ylläpitotilassa, joten vain kirjautunut %s saa käyttää hakemuksen tällä hetkellä. @@ -682,7 +690,7 @@ LinkToSupplierInvoice=Link to supplier invoice LinkToContract=Link to contract LinkToIntervention=Link to intervention CreateDraft=Luo luonnos -SetToDraft=Back to draft +SetToDraft=Palaa luonnokseen ClickToEdit=Klikkaa muokataksesi ObjectDeleted=Kohde %s poistettu ByCountry=Maittain @@ -701,41 +709,42 @@ ModulesSystemTools=Moduuli työkalut Test=Testi Element=Osa NoPhotoYet=Ei kuvaa saatavilla vielä -Dashboard=Dashboard +Dashboard=Kojelauta MyDashboard=My dashboard -Deductible=Deductible -from=from +Deductible=Omavastuu +from=mistä toward=eteenpäin Access=Käyttöoikeus -SelectAction=Select action +SelectAction=Valitse toiminto +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Käytä Ctrl+C kopioisaksesi leikepöydälle SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Alkuperäinen tiedostonimi SetDemandReason=Aseta lähde SetBankAccount=Define Bank Account -AccountCurrency=Account Currency +AccountCurrency=Tilin valuutta ViewPrivateNote=Katso huomiot XMoreLines=%s rivi(ä) piilossa PublicUrl=Julkinen URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied +AddBox=Lisää laatikko +SelectElementAndClick=Select an element and click %s +PrintFile=Tulosta tiedostoon %s +ShowTransaction=Näytä pankkitilin kirjaus +GoIntoSetupToChangeLogo=Vaihtaaksesi logoa mene Home - Setup - Company tai Home - Setup - Display poistaaksesi +Deny=Kiellä +Denied=Kielletty ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman +Gender=Sukupuoli +Genderman=Mies +Genderwoman=Nainen ViewList=Näytä lista -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely +Mandatory=Pakollinen +Hello=Terve +Sincerely=Vilpittömästi DeleteLine=Poista rivi -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +ConfirmDeleteLine=Halutako varmasti poistaa tämän rivin? +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalenteri GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Maanantai Tuesday=Tiistai @@ -789,33 +807,31 @@ ShortThursday=TO ShortFriday=PE ShortSaturday=LA ShortSunday=SU -SelectMailModel=Select email template -SetRef=Set ref +SelectMailModel=Valitse sähköpostipohja +SetRef=Aseta viite Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter +Select2NotFound=Tuloksia ei löytynyt +Select2Enter=Syötä Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters +Select2MoreCharacters=tai lisää merkkejä Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties +Select2LoadingMoreResults=Lataa lisää tuloksia... +Select2SearchInProgress=Haku käynnissä... +SearchIntoThirdparties=Sidosryhmät SearchIntoContacts=Yhteystiedot SearchIntoMembers=Jäsenet SearchIntoUsers=Käyttäjät -SearchIntoProductsOrServices=Products or services +SearchIntoProductsOrServices=Tuotteet tai palvelut SearchIntoProjects=Projektit SearchIntoTasks=Tehtävät -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals +SearchIntoCustomerInvoices=Asiakkaiden laskut +SearchIntoSupplierInvoices=Tavarantoimittajan laskut +SearchIntoCustomerOrders=Asiakkaan tilaukset +SearchIntoSupplierOrders=Tavarantoimittajien tilaukset +SearchIntoCustomerProposals=Tarjoukset asiakkaille +SearchIntoSupplierProposals=Tavarantoimittajan tarjoukset SearchIntoInterventions=Interventions SearchIntoContracts=Sopimukset SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports +SearchIntoExpenseReports=Kuluraportit SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index 2acdf6fedf9..770c1702553 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Päiväys syntyvyyden BirthdayAlertOn=syntymäpäivä hälytys aktiivinen BirthdayAlertOff=syntymäpäivä varoituskynnysten inaktiivinen +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Validate interventioelimen Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Tämä on testi postitse (sana testi on lihavoitu) PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s on tietojen mukaan kolmannen osapuolen maassa.
Esimerkiksi maa %s, se koodi %s. DolibarrDemo=Dolibarr ERP / CRM-demo -StatsByNumberOfUnits=Statistics in kappalemäärä -StatsByNumberOfEntities=Tilastot määrän yhteisöistä -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Väliintulo %s validoitava EMailTextInvoiceValidated=Lasku %s validoitava diff --git a/htdocs/langs/fi_FI/projects.lang b/htdocs/langs/fi_FI/projects.lang index 2a82b3eda86..6ceeb06834d 100644 --- a/htdocs/langs/fi_FI/projects.lang +++ b/htdocs/langs/fi_FI/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Yhteiset hanke PrivateProject=Hankkeen yhteystiedot +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Kaikki hankkeet MyProjectsDesc=Tämä näkemys on vain hankkeisiin olet yhteyshenkilö (mikä on tyyppi). ProjectsPublicDesc=Tämä näkemys esitetään kaikki hankkeet sinulla voi lukea. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Tämä näkemys esitetään kaikki hankkeet ja tehtävät (käyttäjä AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Uusi projekti AddProject=Create project DeleteAProject=Poista hanke DeleteATask=Poista tehtävä ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Näytä hankkeen SetProject=Aseta hankkeen NoProject=Ei hanke määritellään NbOfProjects=Nb hankkeiden +NbOfTasks=Nb of tasks TimeSpent=Käytetty aika TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Käyttäjä TaskTimeNote=Huomautus TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Uusi käytetty aika +NewTimeSpent=Käytetty aika MyTimeSpent=Oma käytetty aika Tasks=Tehtävät Task=Tehtävä @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Uusi tehtävä AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Toiminto Activities=Tehtävät / toiminnot MyActivities=Omat tehtävät / toiminnot @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Luettelo sopimukset hankkeeseen liittyvät +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Luettelo toimien hankkeeseen liittyvän ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Hankkeen yhteystiedot ActionsOnProject=Toimien hanketta YouAreNotContactOfProject=Et ole kosketuksissa tämän yksityisen hankkeen +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Poista käytetty aika ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resurssit ProjectsDedicatedToThisThirdParty=Hankkeet omistettu tälle kolmannelle NoTasks=Ei tehtävät hankkeen LinkedToAnotherCompany=Liittyy muihin kolmannen osapuolen -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Käytetty aika on tyhjä ThisWillAlsoRemoveTasks=Tämä toiminto poistaa myös kaikki tehtävät projektin (%s tehtävät tällä hetkellä) ja kaikki panokset käytetty aika. IfNeedToUseOhterObjectKeepEmpty=Jos jotkin esineet (lasku, tilaus, ...), jotka kuuluvat toiselle kolmannelle osapuolelle, on liityttävä hankkeeseen luoda, pitää tämä tyhjä saada hanke on multi kolmansille osapuolille. @@ -155,33 +163,38 @@ DocumentModelBeluga=Project template for linked objects overview DocumentModelBaleine=Project report template for tasks PlannedWorkload=Planned workload PlannedWorkloadShort=Workload -ProjectReferers=Related items +ProjectReferers=Liittyvät tuotteet ProjectMustBeValidatedFirst=Project must be validated first FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/fr_BE/accountancy.lang b/htdocs/langs/fr_BE/accountancy.lang index 126e5734e28..41573176250 100644 --- a/htdocs/langs/fr_BE/accountancy.lang +++ b/htdocs/langs/fr_BE/accountancy.lang @@ -3,13 +3,9 @@ ConfigAccountingExpert=Configuration du module de compta expert Processing=Exécution Lineofinvoice=Lignes de facture Doctype=Type de document -AccountingCategory=Accounting category ThirdPartyAccount=Compte tiers ErrorDebitCredit=Débit et crédit ne peuvent pas être non-nuls en même temps Pcgtype=Classe du compte -Pcgsubtype=Sous-classe du compte TotalMarge=Marge de ventes totale Selectmodelcsv=Sélectionnez un modèle d'export Modelcsv_normal=Export classique -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/fr_BE/admin.lang b/htdocs/langs/fr_BE/admin.lang index 91e1c3091f9..a994014f061 100644 --- a/htdocs/langs/fr_BE/admin.lang +++ b/htdocs/langs/fr_BE/admin.lang @@ -1,1665 +1,29 @@ # Dolibarr language file - Source file is en_US - admin Foundation=Fondation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade VersionExperimental=Expérimentale -VersionDevelopment=Développement -VersionUnknown=Inconnue VersionRecommanded=Recommandée -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found SessionId=ID de session SessionSaveHandler=Gestionnaire de sessions -SessionSavePath=Storage session localization PurgeSessions=Nettoyage des sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). NoSessionListWithThisHandler=Le gestionnaire de sessions configuré dans votre PHP ne permet pas de faire la liste des sessions existantes. LockNewSessions=Bloquer les nouvelles connexions ConfirmLockNewSessions=Êtes-vous certain de vouloir restreindre toute nouvelle connexion à vous seul? Seul l'utilisateur %s pourra se connecter après cela. UnlockNewSessions=Éliminer le blocage des connexions -YourSession=Votre session -Sessions=Sessions utilisateurs WebUserGroup=Utilisateur/groupe du serveur web NoSessionFound=Votre configuration PHP ne semble pas permettre de faire une liste des sessions actives. Le répertoire utilisé pour stocker les sessions (%s) pourrait être protégé (par exemple, par des permissions du système d'exploitation ou par la directive PHP open_basedir). DBStoringCharset=Codification de caractères de base de données pour stocker les données DBSortingCharset=Codification de caractères de base de données pour trier les données WarningModuleNotActive=Le module %s doit être activé WarningOnlyPermissionOfActivatedModules=Seules les permissions liées à des modules activés sont montrées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules. -DolibarrSetup=Installation ou mise à jour de Dolibarr -InternalUser=Utilisateur interne -ExternalUser=Utilisateur externe -InternalUsers=Utilisateurs internes -ExternalUsers=Utilisateurs externes -GUISetup=Affichage SetupArea=Zone de configuration FormToTestFileUploadForm=Formulaire pour tester l'upload de fichiers (selon la configuration) IfModuleEnabled=Note: oui ne fonctionne que si le module %s est activé RemoveLock=Supprimez le fichier %s s'il existe pour autoriser l'utilisation de l'outil de mise à jour. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Comptabilité -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. Module20Name=Propales -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management Module30Name=Factures -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Comptabilité -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps DictionaryPaymentConditions=Conditions de paiement -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Note de crédit -CreditNotes=Notes de crédit -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model SuppliersPayment=Paiements fournisseurs -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Paramètres globaux -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All Target=Objectif -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/fr_BE/cashdesk.lang b/htdocs/langs/fr_BE/cashdesk.lang deleted file mode 100644 index c3ca13bf385..00000000000 --- a/htdocs/langs/fr_BE/cashdesk.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - cashdesk -BankToPay=Account for payment diff --git a/htdocs/langs/fr_BE/main.lang b/htdocs/langs/fr_BE/main.lang index 65941809b4b..b23a0e13878 100644 --- a/htdocs/langs/fr_BE/main.lang +++ b/htdocs/langs/fr_BE/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,10 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Erreur -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft Update=Mise à jour -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Valider -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date DateStart=Date de début DateEnd=Date de fin -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Montant -AmountInvoice=Invoice amount AmountPayment=Montant de paiement -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=Liste -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approuvé -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New Discount=Ristourne Unknown=Inconnue -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s Check=Chèque -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Carte de crédit -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Ligne -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=Vue liste -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendrier -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index 50f9b46c36b..54ac9970ec1 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -3,20 +3,156 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Séparateur de colonne pour le fichier export ACCOUNTING_EXPORT_DATE=Format de date pour le fichier export ACCOUNTING_EXPORT_PIECE=Exporter le nombre de pièces ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exporter avec compte global +ACCOUNTING_EXPORT_LABEL=Exporter l'étiquette +ACCOUNTING_EXPORT_AMOUNT=Montant de l'exportation +ACCOUNTING_EXPORT_DEVISE=Exporter la monnaie Selectformat=Sélectionner le format de date pour le fichier ACCOUNTING_EXPORT_PREFIX_SPEC=Spécifiez le préfixe du nom de fichier +DefaultForService=Par défaut pour le service +DefaultForProduct=Défaut pour le produit +CantSuggest=Ne peut pas suggérer +AccountancySetupDoneFromAccountancyMenu=La plupart de la configuration de la comptabilité se fait à partir du menu %s +CurrentDedicatedAccountingAccount=Compte dédié actuel +AssignDedicatedAccountingAccount=Nouveau compte à attribuer +InvoiceLabel=Etiquette de facture +OverviewOfAmountOfLinesNotBound=Aperçu du montant des lignes non liées au compte comptable +OverviewOfAmountOfLinesBound=Vue d'ensemble du montant des lignes déjà liées au compte comptable +DeleteCptCategory=Supprimer le compte comptable du groupe +ConfirmDeleteCptCategory=Êtes-vous sûr de vouloir supprimer ce compte comptable du groupe de compte comptable? +AccountancyArea=Zone de comptabilité +AccountancyAreaDescActionOnce=Les actions suivantes sont généralement exécutées une seule fois, ou une fois par an ... +AccountancyAreaDescActionOnceBis=Les étapes suivantes devraient être faites pour vous faire gagner du temps en vous suggérant le bon compte comptable par défaut lors de la journalisation (écriture dans Journals et le grand livre) +AccountancyAreaDescActionFreq=Les actions suivantes sont généralement exécutées chaque mois, semaine ou jour pour de très grandes entreprises ... +AccountancyAreaDescJournalSetup=STEP %s: Créez ou vérifiez le contenu de votre liste de journal à partir du menu %s +AccountancyAreaDescChartModel=Étape %s: Créez un modèle de tableau de compte à partir du menu %s +AccountancyAreaDescChart=STEP %s: créez ou vérifiez le contenu de votre tableau de compte à partir du menu %s +AccountancyAreaDescVat=STEP %s: définissez les comptes comptables pour chaque taux de TVA. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescExpenseReport=STEP %s: définissez les comptes comptables par défaut pour chaque type de rapport de dépenses. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescSal=Étape %s: définissez les comptes comptables par défaut pour le paiement des salaires. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescContrib=Étape %s: définissez les comptes comptables par défaut pour les dépenses spéciales (taxes diverses). Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescDonation=Étape %s: définissez les comptes comptables par défaut pour le don. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescMisc=STEP %s: définissez les comptes comptables par défaut pour les transactions diverses. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescLoan=Étape %s: définissez les comptes comptables par défaut pour les prêts. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescBank=ÉTAPE %s: définissez les comptes comptables de chaque banque et compte financier. Pour cela, passez la carte de chaque compte financier. Vous pouvez commencer à partir de la page %s. +AccountancyAreaDescProd=STEP %s: définissez les comptes comptables sur vos produits / services. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescBind=STEP %s: vérifiez la liaison entre les lignes %s existantes et le compte comptable est effectué, de sorte que l'application pourra publier des transactions dans Ledger en un seul clic. Compléter les liaisons manquantes. Pour cela, utilisez l'entrée de menu %s. +AccountancyAreaDescWriteRecords=Étape %s: Écrivez des transactions dans le Ledger. Pour cela, accédez au menu %s, et cliquez sur le bouton %s. +AccountancyAreaDescAnalyze=STEP %s: Ajoutez ou modifiez des transactions existantes et générez des rapports et des exportations. +AccountancyAreaDescClosePeriod=STEP %s: période de fermeture afin que nous ne puissions faire aucune modification dans un futur. +Selectchartofaccounts=Sélectionnez le plan des comptes actif +SubledgerAccount=Compte Subledger +subledger_account=Compte Subledger +ShowAccountingJournal=Afficher le journal comptable +AccountAccountingSuggest=Compte comptable suggéré +MenuVatAccounts=Comptes Vat +MenuTaxAccounts=Comptes d'impôts +MenuExpenseReportAccounts=Comptes de comptes de dépenses +MenuLoanAccounts=Comptes de prêts +MenuProductsAccounts=Comptes de produits +Ventilation=Reliure aux comptes +CustomersVentilation=Contrat de facture client +SuppliersVentilation=Reliure de la facture du fournisseur +ExpenseReportsVentilation=Rapport de dépenses liant +CreateMvts=Créer une nouvelle transaction +WriteBookKeeping=Journalize les transactions dans Ledger +Bookkeeping=Grand livre AccountBalance=Solde du compte CAHTF=Total achats fournisseur avant taxes +TotalExpenseReport=Rapport de dépenses totales +InvoiceLines=Lignes des factures pour lier +InvoiceLinesDone=Lignes liées aux factures +ExpenseReportLines=Lignes des rapports de dépenses pour lier +ExpenseReportLinesDone=Lignes liées aux rapports de dépenses +IntoAccount=Lier avec le compte comptable +EndProcessing=Processus terminé. +LineOfExpenseReport=Ligne de rapport de dépenses +NoAccountSelected=Aucun compte comptable sélectionné +VentilatedinAccount=Lié avec succès au compte comptable +XLineSuccessfullyBinded=%s produits / services liés avec succès à un compte comptable +XLineFailedToBeBinded=%s produits / services n'étaient liés à aucun compte comptable +ACCOUNTING_LIMIT_LIST_VENTILATION=Nombre d'éléments à lier affichés par page (maximum recommandé: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Commencez le tri de la page "Reliure à faire" par les éléments les plus récents +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Commencez le tri de la page "Reliure faite" par les éléments les plus récents +ACCOUNTING_LENGTH_DESCRIPTION=Tronquer la description des produits et services dans les listes après les caractères X (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Tronquer le formulaire de description de compte de produits et services dans les listes après x chars (Best = 50) +ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes comptables généraux (Si vous définissez la valeur à 6 ici, le compte '706' apparaîtra comme '706000' à l'écran) +ACCOUNTING_LENGTH_AACCOUNT=Longueur des comptes comptables tiers (Si vous définissez la valeur à 6 ici, le compte '401' apparaîtra comme '401000' à l'écran) +ACCOUNTING_MANAGE_ZERO=Autoriser à gérer un nombre différent de zéro à la fin d'un compte comptable. Nécessaire par certains pays (comme la suisse). Si vous êtes désactivé (par défaut), vous pouvez définir les 2 paramètres suivants pour demander à l'application d'ajouter zéro virtuel. +BANK_DISABLE_DIRECT_INPUT=Désactiver l'enregistrement direct de la transaction dans le compte bancaire ACCOUNTING_EXPENSEREPORT_JOURNAL=Note de frais -AccountingCategory=Accounting category +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Compte comptable du transfert +DONATION_ACCOUNTINGACCOUNT=Compte comptable pour enregistrer des dons +ACCOUNTING_SERVICE_BUY_ACCOUNT=Compte comptable par défaut pour les services achetés (utilisé si non défini dans la fiche de service) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Compte comptable par défaut pour les services vendus (utilisé si non défini dans la fiche de service) +GroupByAccountAccounting=Groupe par compte comptable +NotMatch=Pas encore défini +DeleteMvt=Effacer les lignes du grand livre +ConfirmDeleteMvt=Cela supprimera toutes les lignes du Ledger pour l'année et / ou d'un journal spécifique. Au moins un critère est requis. +ConfirmDeleteMvtPartial=Cela supprimera les lignes sélectionnées du Ledger +DelBookKeeping=Supprimer l'enregistrement du Ledger FinanceJournal=Journal des finances +ExpenseReportsJournal=Journal des rapports de dépenses DescFinanceJournal=Journal de banque comprenant tous les types de règlements autres que espèce\t +DescJournalOnlyBindedVisible=Il s'agit d'une vue d'ensemble qui est liée au compte de comptabilité des produits / services et peut être enregistrée dans le Ledger. +VATAccountNotDefined=Compte pour la TVA non définie +ThirdpartyAccountNotDefined=Compte pour un tiers non défini +ProductAccountNotDefined=Compte pour produit non défini +FeeAccountNotDefined=Compte pour frais non définis +BankAccountNotDefined=Compte pour banque non défini +NumMvts=Nombre de transactions +AddCompteFromBK=Ajouter des comptes comptables au groupe +ReportThirdParty=Liste du compte tiers +DescThirdPartyReport=Consultez ici la liste des clients et fournisseurs tiers et leurs comptes comptables TotalVente=Chiffre d'affaires total avant taxes +DescVentilCustomer=Consultez ici la liste des lignes de facture client liées (ou non) à un compte comptable produit +DescVentilMore=Dans la plupart des cas, si vous utilisez des produits ou des services prédéfinis et que vous définissez le numéro de compte sur la carte produit / service, l'application pourra établir toute la liaison entre vos lignes de facturation et le compte comptable de votre plan comptable, juste en Un clic avec le bouton "%s". Si le compte n'a pas été défini sur les cartes produit / service ou si vous avez encore certaines lignes qui ne sont liées à aucun compte, vous devrez effectuer une liaison manuelle à partir du menu "%s". +DescVentilDoneCustomer=Consultez ici la liste des lignes clients des factures et leur compte comptable produit +DescVentilTodoCustomer=Lier les lignes de facture qui ne sont pas déjà liées avec un compte de comptabilité de produit +ChangeAccount=Modifiez le compte comptable produit / service pour les lignes sélectionnées avec le compte comptable suivant: +DescVentilSupplier=Consultez la liste des lignes de facturation fournisseur liées ou non liées à un compte comptable produit DescVentilDoneSupplier=Consultez ici la liste des lignes de factures fournisseur et leur compte comptable +DescVentilTodoExpenseReport=Les lignes de rapport de frais de liaison ne sont pas déjà liées à un compte comptable +DescVentilExpenseReport=Consultez ici la liste des lignes de rapport de dépenses liées (ou non) à un compte comptable de frais +DescVentilExpenseReportMore=Si vous configurez un compte comptable sur le type de lignes de rapport de dépenses, l'application sera en mesure d'établir toute la liaison entre vos lignes de rapport de dépenses et le compte comptable de votre plan comptable, en un clic avec le bouton "%s". Si le compte n'a pas été défini sur le dictionnaire des tarifs ou si vous avez encore certaines lignes qui ne sont liées à aucun compte, vous devrez effectuer une liaison manuelle à partir du menu "%s". +DescVentilDoneExpenseReport=Consultez ici la liste des rapports des lignes de dépenses et de leurs comptes comptables +AutomaticBindingDone=Liaison automatique effectuée MvtNotCorrectlyBalanced=Le mouvement n'est pas correctement équilibré. Crédit = %s. Débit = %s +FicheVentilation=Carte de reliure +GeneralLedgerIsWritten=Les transactions sont écrites dans le Ledger +GeneralLedgerSomeRecordWasNotRecorded=Certaines transactions n'ont pas pu être envoyées. S'il n'y a pas d'autre message d'erreur, c'est probablement parce qu'ils ont déjà été envoyés. +NoNewRecordSaved=Aucun nouveau disque expédié +ChangeBinding=Changer la liaison +ApplyMassCategories=Appliquer des catégories de masse +AddAccountFromBookKeepingWithNoCategories=Ajouter un compte déjà utilisé sans catégories +CategoryDeleted=La catégorie pour le compte comptable a été supprimée +AccountingJournals=Revues comptables +ShowAccoutingJournal=Afficher le journal comptable +AccountingJournalType1=Diverses opérations +AccountingJournalType9=A-nouveau +ErrorAccountingJournalIsAlreadyUse=Ce journal est déjà utilisé +Modelcsv_CEGID=Export vers CEGID Expert Comptabilité +Modelcsv_COALA=Exporter vers Sage Coala +Modelcsv_bob50=Exporter vers Sage BOB 50 +Modelcsv_ciel=Exporter vers Sage Ciel Compta ou Compta Evolution +Modelcsv_quadratus=Exporter vers Quadratus QuadraCompta +Modelcsv_ebp=Exporter vers EBP +Modelcsv_cogilog=Exporter vers Cogilog +Modelcsv_agiris=Export vers Agiris (test) +ChartofaccountsId=Carte comptable Id InitAccountancy=Compabilité initiale +InitAccountancyDesc=Cette page peut être utilisée pour initialiser un compte comptable sur les produits et services qui n'a pas de compte comptable défini pour les ventes et les achats. +DefaultBindingDesc=Cette page peut être utilisée pour définir un compte par défaut à utiliser pour lier l'historique des transactions sur les salaires de paiement, le don, les taxes et la TVA lorsque aucun compte comptable spécifique n'a été défini. OptionModeProductSell=Mode de ventes OptionModeProductBuy=Mode d'achats +OptionModeProductSellDesc=Afficher tous les produits avec compte comptable pour les ventes. +OptionModeProductBuyDesc=Afficher tous les produits avec compte comptable pour les achats. +CleanFixHistory=Supprimer le code de comptabilité des lignes qui n'existent pas dans les tableaux de compte +CleanHistory=Réinitialiser toutes les liaisons pour l'année sélectionnée +ValueNotIntoChartOfAccount=Cette valeur du compte comptable n'existe pas dans le tableau de compte Range=Gamme de compte comptable -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +SomeMandatoryStepsOfSetupWereNotDone=Certaines étapes obligatoires de configuration n'ont pas été effectuées, veuillez les compléter +ErrorNoAccountingCategoryForThisCountry=Aucun groupe de compte disponible pour le pays %s (Voir Home - Setup - Dictionaries) +ExportNotSupported=Le format d'exportation configuré n'est pas pris en charge dans cette page +BookeppingLineAlreayExists=Des lignes existant déjà dans la bibliothèque +NoJournalDefined=Aucun journal n'a défini +WarningReportNotReliable=Avertissement, ce rapport n'est pas basé sur le Ledger, donc ne contient pas de transaction modifiée manuellement dans le Ledger. Il sera remplacé par un rapport plus complet dans une prochaine version. diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index d1e0a9f5bc6..29fd8a5e339 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -1,1597 +1,347 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Association -Version=Version -VersionProgram=Version programmes -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Expérimental -VersionDevelopment=Développement -VersionUnknown=Inconnue -VersionRecommanded=Recommandé -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Fichiers manquants +VersionLastInstall=Version d'installation initiale +VersionLastUpgrade=Dernière mise à jour de la version +FileCheck=Vérificateur d'intégrité des fichiers +FileCheckDesc=Cet outil vous permet de vérifier l'intégrité des fichiers et la configuration de votre application, en comparant chaque fichier avec les officiels. La valeur de certaines constantes d'installation peut également être vérifiée. Vous pouvez utiliser cet outil pour détecter si certains fichiers ont été modifiés par un pirate informatique par exemple. +FileIntegrityIsStrictlyConformedWithReference=L'intégrité des fichiers est strictement conforme à la référence. +FileIntegrityIsOkButFilesWereAdded=La vérification de l'intégrité des fichiers s'est écoulée, mais certains nouveaux fichiers ont été ajoutés. +FileIntegritySomeFilesWereRemovedOrModified=La vérification de l'intégrité des fichiers a échoué. Certains fichiers ont été modifiés, supprimés ou ajoutés. +GlobalChecksum=Somme de contrôle globale +MakeIntegrityAnalysisFrom=Effectuer une analyse d'intégrité des fichiers d'application de +LocalSignature=Signature locale intégrée (moins fiable) +RemoteSignature=Signature distante distante (plus fiable) FilesUpdated=Mettre à jour les fichiers -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=ID Session -SessionSaveHandler=Modalité de sauvegarde des sessions -SessionSavePath=Emplacement de sauvegarde sessions -PurgeSessions=Purge des sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Le gestionnaire de session configuré pour votre PHP ne permet pas de lister les sessions en cours -LockNewSessions=Bloquer nouvelles connexions -ConfirmLockNewSessions=Êtes-vous sûr de vouloir restreindre l'accès Dolibarr à votre utilisateur. Seul l'utilisateur %s pourra se connecter après cela. -UnlockNewSessions=Lever blocage des connexions -YourSession=Votre session -Sessions=Sessions utilisateurs -WebUserGroup=Serveur web utilisateur/groupe -NoSessionFound=Votre PHP ne semble pas pouvoir lister les sessions actives. Le répertoire de sauvegarde des sessions (%s) est peut être protégé (Par exemple, par les permissions de l'OS ou par la directive open_basedir de votre PHP, ce qui d'un point de vue sécurité est une bonne chose). -DBStoringCharset=Encodage base pour stockage données -DBSortingCharset=Encodage base pour tri données -WarningModuleNotActive=Le module %s doit être activé pour utiliser cette fonction. -WarningOnlyPermissionOfActivatedModules=Attention, seules les permissions en rapport avec les modules activés sont affichées ici. Vous pouvez activer d'autres modules sur la page Accueil->Configuration->Modules. -DolibarrSetup=Installation ou mise à jour de Dolibarr -InternalUser=Utilisateur interne -ExternalUser=Utilisateur externe -InternalUsers=Utilisateurs internes -ExternalUsers=Utilisateurs externes -GUISetup=Affichage -SetupArea=Espace de configuration -FormToTestFileUploadForm=Formulaire de test d'envoi de fichier (selon options choisies) -IfModuleEnabled=Rem: oui est effectif uniquement si le module %s est activé -RemoveLock=Effacer le fichier %s s'il existe afin d'autoriser l'outil de mise à jour. -RestoreLock=Replacer un fichier %s en ne donnant que les droits de lecture sur ce fichier afin d'interdire à nouveau les mises à jour. -SecuritySetup=Configuration de la sécurité -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Erreur, ce module requiert une version %s ou supérieure de PHP -ErrorModuleRequireDolibarrVersion=Erreur, ce module requiert une version %s ou supérieure de Dolibarr -ErrorDecimalLargerThanAreForbidden=Erreur, les précisions supérieures à %s ne sont pas prises en charge. -DictionarySetup=Dictionnaires -Dictionary=Dictionnaires -ErrorReservedTypeSystemSystemAuto=Erreur, les valeurs 'system' et 'systemauto' sont réservées. Vous pouvez utiliser la valeur 'user' pour ajouter vos propres enregistrements -ErrorCodeCantContainZero=Erreur, le code ne peut contenir la valeur 0 -DisableJavascript=Désactive les fonctions Javascript et Ajax (Recommandé pour les personnes aveugles ou navigateurs text). -UseSearchToSelectCompanyTooltip=Si vous avez un nombre important de tiers (>100 000), vous pourrez améliorer les performances en positionnant la constante COMPANY_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines. -UseSearchToSelectContactTooltip=Si vous avez un nombre important de contacts (>100 000), vous pourrez améliorer les performances en positionnant la constante CONTACT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nb carac. déclenchant recherche : %s -NotAvailableWhenAjaxDisabled=Non disponible quand Ajax est désactivé -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=Javascript désactivé -UsePreviewTabs=Afficher les onglets "Aperçu" -ShowPreview=Afficher aperçu -PreviewNotAvailable=Aperçu non disponible -ThemeCurrentlyActive=Thème actif actuellement -CurrentTimeZone=Fuseau horaire PHP (serveur) -MySQLTimeZone=Fuseau horaire MySQL (serveur) -TZHasNoEffect=Les dates sont stockées et retournées par le serveur de base de données comme si elles étaient conservées sous forme de chaîne. Le fuseau horaire n'a d'effet que lorsque vous utilisez la fonction UNIX_TIMESTAMP (qui ne devrait pas être utilisé par Dolibarr, aussi le TZ de la base de données ne devrait avoir aucun effet, même si changé après que les données aient été saisies). -Space=Espace -Table=Table -Fields=Champs -Index=Index -Mask=Masque -NextValue=Prochaine valeur -NextValueForInvoices=Prochaine valeur (factures) -NextValueForCreditNotes=Prochaine valeur (avoirs) -NextValueForDeposit=Prochaine valeur (acomptes) -NextValueForReplacements=Prochaine valeur (factures de remplacement) -MustBeLowerThanPHPLimit=Remarque : Votre PHP limite la taille des envois à %s %s, quelle que soit la valeur de ce paramètre -NoMaxSizeByPHPLimit=Aucune limite configurée dans votre serveur PHP -MaxSizeForUploadedFiles=Taille maximum des fichiers envoyés (0 pour interdire l'envoi) -UseCaptchaCode=Utilisation du code graphique (CAPTCHA) sur la page de connexion -AntiVirusCommand= Chemin complet vers la commande antivirus -AntiVirusCommandExample= Exemple pour ClamWin : c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Exemple pour ClamAv : /usr/bin/clamscan -AntiVirusParam= Paramètres supplémentaires sur la ligne de commande -AntiVirusParamExample= Exemple pour ClamWin : --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Configuration du module Comptabilité -UserSetup=Configuration de la gestion des utilisateurs -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limites et précision -MenuIdParent=Identifiant du menu parent -DetailMenuIdParent=Identifiant du menu parent (vide pour un menu du haut) -DetailPosition=Numéro d'ordre déterminant la position du menu -AllMenus=Tous -NotConfigured=Module non configuré -Active=Actif -SetupShort=Configuration -OtherOptions=Autres options -OtherSetup=Divers -CurrentValueSeparatorDecimal=Séparateur décimal -CurrentValueSeparatorThousand=Séparateur de milliers -Destination=Destination -IdModule=ID Module -IdPermissions=ID Permissions -Modules=Modules -LanguageBrowserParameter=Variable %s -LocalisationDolibarrParameters=Paramètres de localisation -ClientTZ=Fuseau horaire client (utilisateur) -ClientHour=Heure client (utilisateur) -OSTZ=Fuseau horaire OS -PHPTZ=Fuseau horaire serveur PHP -DaylingSavingTime=Heure d'été -CurrentHour=Heure PHP (serveur) -CurrentSessionTimeOut=Délai expiration session actuelle -YouCanEditPHPTZ=Pour définir un autre fuseau horaire PHP (non obligatoire), vous pouvez essayer d'ajouter un fichier .htaccess avec une ligne du type "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Position par défaut -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu pour les utilisateurs -LangFile=Fichier .lang -System=Système -SystemInfo=Infos Système -SystemToolsArea=Espace outils systèmes -SystemToolsAreaDesc=Cet espace offre des fonctions d'administration diverses. Utilisez le menu pour choisir la fonctionnalité recherchée. -Purge=Purger -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) +FileCheckDolibarr=Vérifier l'intégrité des fichiers d'application +AvailableOnlyOnPackagedVersions=Le fichier local pour la vérification de l'intégrité n'est disponible que lorsque l'application est installée à partir d'un paquet officiel +XmlNotFound=Xml Integrity Fichier de l'application introuvable +ConfirmPurgeSessions=Voulez-vous vraiment purger toutes les sessions? Cela déconnectera tous les utilisateurs (sauf vous). +UploadNewTemplate=Télécharger un nouveau modèle (s) +SecurityFilesDesc=Définissez ici les options liées à la sécurité concernant le téléchargement de fichiers. +DelaiedFullListToSelectCompany=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des combinaisons de tiers (cela peut augmenter les performances si vous avez un grand nombre de tiers, mais cela est moins pratique) +DelaiedFullListToSelectContact=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des contacts combinés (Cela peut augmenter les performances si vous avez un grand nombre de contacts, mais cela est moins pratique) +AllowToSelectProjectFromOtherCompany=Sur le document d'un tiers, peut choisir un projet lié à un autre tiers +NextValueForDeposit=Valeur suivante (acompte) +MultiCurrencySetup=Configuration multi-devises +NotConfigured=Module / Application non configuré +HoursOnThisPageAreOnServerTZ=Avertissement, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais pour le fuseau horaire du serveur. +MaxNbOfLinesForBoxes=Nombre maximum de lignes pour les widgets +MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales). +MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence.
Certains modules ajoutent des entrées de menu (dans le menu Tous principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en redéfinissant le module. +PurgeAreaDesc=Cette page vous permet de supprimer tous les fichiers générés ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers dans le répertoire %s). L'utilisation de cette fonctionnalité n'est pas nécessaire. Il est fourni en tant que solution de contournement pour les utilisateurs dont Dolibarr est hébergé par un fournisseur qui n'offre pas d'autorisations pour supprimer les fichiers générés par le serveur Web. +PurgeDeleteLogFile=Supprimer le fichier journal %s défini pour le module Syslog (sans risque de perte de données) +PurgeDeleteTemporaryFiles=Supprimez tous les fichiers temporaires (pas de risque de perte de données) PurgeDeleteTemporaryFilesShort=Supprimer les fichiers temporaires -PurgeDeleteAllFilesInDocumentsDir=Effacer tous les fichiers du répertoire %s. Les fichiers temporaires mais aussi les fichiers « dumps » de sauvegarde de base de données, les fichiers joints aux éléments (tiers, factures, ...) ou fichiers stockés dans le module GED seront irrémédiablement effacés. -PurgeRunNow=Lancer la purge maintenant -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s fichiers ou répertoires supprimés. -PurgeAuditEvents=Purger les événements d'audit de sécurité -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Générer sauvegarde -Backup=Sauvegarde -Restore=Restauration -RunCommandSummary=La sauvegarde sera exécutée par la commande suivante -BackupResult=Résultat sauvegarde -BackupFileSuccessfullyCreated=Fichier de sauvegarde généré avec succès -YouCanDownloadBackupFile=Les fichiers générés peuvent maintenant être téléchargés -NoBackupFileAvailable=Aucun fichier de sauvegarde disponible. -ExportMethod=Méthode d'exportation -ImportMethod=Méthode d'importation -ToBuildBackupFileClickHere=Pour générer un fichier de sauvegarde, cliquez ici. -ImportMySqlDesc=Pour importer une sauvegarde, il faut utiliser la commande mysql suivante en ligne de commande: -ImportPostgreSqlDesc=Pour importer une sauvegarde, il faut utiliser la commande pg_restore en ligne suivante: -ImportMySqlCommand=%s %s < monfichiersauvegarde.sql -ImportPostgreSqlCommand=%s %s monfichiersauvegarde.sql -FileNameToGenerate=Nom du fichier à générer -Compression=Compression -CommandsToDisableForeignKeysForImport=Commande pour désactiver les clés étrangères à l'importation -CommandsToDisableForeignKeysForImportWarning=Requis si vous voulez être en mesure de restaurer votre « dump » SQL plus tard -ExportCompatibility=Compatibilité du fichier d'exportation généré -MySqlExportParameters=Paramètres de l'exportation MySQL -PostgreSqlExportParameters= Paramètres de l'exportation PostgreSQL -UseTransactionnalMode=Utiliser le mode transactionnel -FullPathToMysqldumpCommand=Chemin complet vers la commande mysqldump -FullPathToPostgreSQLdumpCommand=Chemin complet vers la commande pg_dump -ExportOptions=Options d'exportation -AddDropDatabase=Ajouter ordres DROP DATABASE -AddDropTable=Ajouter ordres DROP TABLE -ExportStructure=Structure -NameColumn=Nomme les colonnes -ExtendedInsert=Instructions INSERT étendues -NoLockBeforeInsert=Pas d'instruction LOCK autour des INSERT -DelayedInsert=Insertion avec délai -EncodeBinariesInHexa=Encoder les champs binaires en hexadécimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Détection automatique (navigateur) -FeatureDisabledInDemo=Fonction désactivée dans la démo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Seuls les éléments en rapport avec un module actif sont présentés. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, la place de marché officielle des modules et extensions complémentaires pour Dolibarr ERP/CRM -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Lien -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activer sur -ActiveOn=Active sur -SourceFile=Fichier source -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponible uniquement si Javascript activé -Required=Requis -UsedOnlyWithTypeOption=Utilisé par certaines options de l'agenda uniquement -Security=Sécurité -Passwords=Mots de passe -DoNotStoreClearPassword=Ne pas stocker de mots de passe en clair dans la base (Activation recommandée) -MainDbPasswordFileConfEncrypted=Chiffrer le mot de passe de la base dans le fichier conf.php (Activation recommandée) +PurgeNothingToDelete=Pas de répertoire ou de fichiers à supprimer. +ConfirmPurgeAuditEvents=Êtes-vous sûr de vouloir purger tous les événements de sécurité? Tous les journaux de sécurité seront supprimés, aucune autre donnée ne sera supprimée. +IgnoreDuplicateRecords=Ignorer les erreurs d'enregistrement en double (INSERT IGNORE) +FeatureAvailableOnlyOnStable=La fonctionnalité est uniquement disponible sur les versions officielles stables +BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter pour personnaliser certaines pages. Vous pouvez choisir entre afficher le widget ou non en sélectionnant la page cible et en cliquant sur 'Activer', ou en cliquant sur la poubelle pour la désactiver. +ModulesDesc=Les modules Dolibarr définissent quelle application / fonctionnalité est activée dans le logiciel. Certaines applications / modules nécessitent des autorisations que vous devez accorder aux utilisateurs, après l'avoir activé. Cliquez sur le bouton activé / désactivé pour activer un module / application. +ModulesMarketPlaceDesc=Vous pouvez trouver plus de modules à télécharger sur des sites Web externes sur Internet ... +ModulesDeployDesc=Si les autorisations sur votre système de fichiers le permettent, vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible sur l'onglet %s. +ModulesMarketPlaces=Trouver des modules externes ... +GoModuleSetupArea=Pour déployer / installer un nouveau module, accédez à la zone de configuration du module à %s . +DoliPartnersDesc=Liste des entreprises proposant des modules ou des fonctionnalités développés personnalisés (Remarque: toute personne expérimentée dans la programmation PHP peut fournir un développement personnalisé pour un projet open source) +WebSiteDesc=Les sites Web de référence pour trouver plus de modules ... InstrucToEncodePass=Pour chiffrer le mot de passe de la base dans le fichier de configuration conf.php, remplacer la ligne
$dolibarr_main_db_pass="...";
par
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Pour avoir le mot de passe de la base décodé (en clair) dans le fichier de configuration conf.php, remplacer dans ce fichier la ligne
$dolibarr_main_db_pass="crypted:..."
par
$dolibarr_main_db_pass="%s" -ProtectAndEncryptPdfFiles=Protection des PDF générés (Activation NON recommandée, rend inopérante la génération de PDF de masse) -ProtectAndEncryptPdfFilesDesc=La protection d'un document PDF laisse le document libre à la lecture et à l'impression avec tout logiciel de lecture PDF. Par contre, la modification et la copie deviennent impossible. Notez que, de plus, l'utilisation de cette option empêche la génération de PDF cumulés (comme pour le PDF global des impayés). -Feature=Fonction -DolibarrLicense=Licence -Developpers=Développeurs/contributeurs -OfficialWebSite=Site web officiel international -OfficialWebSiteLocal=Site web local (%s) -OfficialWiki=Wiki de documentation Dolibarr -OfficialDemo=Démo en ligne Dolibarr -OfficialMarketPlace=Place de marché officielle des modules et extensions complémentaires -OfficialWebHostingService=Services d'hébergements référencés (Cloud) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=Pour la documentation utilisateur, développeur ou les FAQs,
consultez le wiki Dolibarr:
%s -ForAnswersSeeForum=Pour tout autre question/aide, vous pouvez utiliser le forum Dolibarr:
%s -HelpCenterDesc1=Cette application, indépendante de Dolibarr, permet de vous aider à obtenir un service d'assistance sur Dolibarr. -HelpCenterDesc2=Choisissez le service qui correspond à votre besoin en cliquant sur le lien adéquat (Certains de ces services ne sont disponibles qu'en anglais). -CurrentMenuHandler=Gestionnaire menu courant -MeasuringUnit=Unité de mesure -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=Emails -EMailsSetup=Configuration Emails -EMailsDesc=Cette page permet de remplacer les paramètres PHP en rapport avec l'envoi d'emails. Dans la plupart des cas, sur des OS comme Unix/Linux, les paramètres PHP sont déjà corrects et cette page est inutile. -MAIN_MAIL_SMTP_PORT=Port du serveur SMTP/SMTPS (Par défaut dans php.ini: %s) -MAIN_MAIL_SMTP_SERVER=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défaut dans php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Port du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Non défini dans le PHP sur les systèmes de type Unix) -MAIN_MAIL_EMAIL_FROM=Adresse email de l'émetteur pour l'envoi d'emails automatiques (Par défaut dans php.ini: %s) -MAIN_MAIL_ERRORS_TO=Adresse email utilisée pour les retours d'erreurs des emails envoyés -MAIN_MAIL_AUTOCOPY_TO= Envoyer systématiquement une copie cachée des emails envoyés à -MAIN_DISABLE_ALL_MAILS=Désactiver globalement tout envoi d'emails (pour mode test ou démos) -MAIN_MAIL_SENDMODE=Méthode d'envoi des emails -MAIN_MAIL_SMTPS_ID=Identifiant d'authentification SMTP si authentification SMTP requise -MAIN_MAIL_SMTPS_PW=Mot de passe d'authentification SMTP si authentification SMTP requise -MAIN_MAIL_EMAIL_TLS= Utilisation du chiffrement TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS= Utilisation du chiffrement TLS (SSL) -MAIN_DISABLE_ALL_SMS=Désactiver globalement tout envoi de SMS (pour mode test ou démos) -MAIN_SMS_SENDMODE=Méthode d'envoi des SMS -MAIN_MAIL_SMS_FROM=Numéro de téléphone par défaut pour l'envoi des SMS -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Fonctionnalité non disponible sous systèmes Unix. Tester votre sendmail localement. +ProtectAndEncryptPdfFilesDesc=La protection d'un document PDF le permet de lire et d'imprimer avec n'importe quel navigateur PDF. Cependant, l'édition et la copie ne sont plus possibles. Notez que l'utilisation de cette fonctionnalité rend le développement d'un PDF fusionné global ne fonctionnant pas. +NoticePeriod=Période de préavis +NewByMonth=Nouveau par mois +MAIN_MAIL_EMAIL_STARTTLS=Utilisation du chiffrement TLS (SSL) +MAIN_MAIL_DEFAULT_FROMTYPE=E-mail de l'expéditeur par défaut pour les envois manuels (courrier électronique de l'utilisateur ou courrier électronique de la société) +UserEmail=Courrier électronique de l'utilisateur +CompanyEmail=Courrier électronique de la société SubmitTranslation=Si la traduction de cette langue est incomplète ou vous trouvez des erreur , vous pouvez corriger cela en modifiant les fichiers dans le répertoire langs/%s et soumettre votre changement à www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traduction de cette langue est incomplète ou vous trouvez des erreurs , vous pouvez corriger cela en modifiant les fichiers dans le répertoire langs/%s et soumettre les fichiers modifiés sur dolibarr.org/forum ou pour les développeurs sur github.com/Dolibarr/dolibarr. -ModuleSetup=Configuration du module -ModulesSetup=Configuration des modules -ModuleFamilyBase=Système -ModuleFamilyCrm=Gestion de la relation client (GRC) +ModulesSetup=Modules / Configuration de l'application ModuleFamilySrm=Gestion des relations fournisseurs (GRF) ModuleFamilyProducts=Gestion des produits ModuleFamilyHr=Gestion des ressources humaines (GRH) -ModuleFamilyProjects=Projets/Travail collaboratif -ModuleFamilyOther=Autre -ModuleFamilyTechnic=Outils multi-modules -ModuleFamilyExperimental=Modules expérimentaux -ModuleFamilyFinancial=Modules financiers (Compta/trésorerie) -ModuleFamilyECM=Gestion électronique de documents (GED) ModuleFamilyPortal=Site internet et autres applications frontales ModuleFamilyInterface=Interfaces avec les systèmes externes -MenuHandlers=Gestionnaires de menu -MenuAdmin=Édition menu -DoNotUseInProduction=Ne pas utiliser en production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Étape %s -FindPackageFromWebSite=Recherche le paquet qui répond à votre besoin (par exemple sur le site web %s). +ThisIsProcessToFollow=Voici des étapes à suivre pour traiter: +ThisIsAlternativeProcessToFollow=Il s'agit d'une configuration alternative à traiter manuellement: DownloadPackageFromWebSite=Télécharger le package %s. -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +UnpackPackageInDolibarrRoot=Décompressez les fichiers emballés dans le répertoire du serveur dédié à Dolibarr: %s +UnpackPackageInModulesRoot=Pour déployer / installer un module externe, décompressez les fichiers emballés dans le répertoire du serveur dédié aux modules: %s +SetupIsReadyForUse=Le déploiement du module est terminé. Vous devez toutefois activer et configurer le module dans votre application en allant sur la page pour configurer les modules: %s . +NotExistsDirect=Le répertoire racine alternatif n'est pas défini dans un répertoire existant. +InfDirAlt=Depuis la version 3, il est possible de définir un autre répertoire racine. Cela vous permet de stocker, dans un répertoire dédié, des plug-ins et des modèles personnalisés.
Créez simplement un répertoire à la racine de Dolibarr (par exemple: personnalisé). +InfDirExample=
Puis déclarer dans le fichier conf.php
$ dolibarr_main_url_root_alt = 'http: // myserver / custom'
$ dolibarr_main_document_root_alt = '/ path / of / dolibarr / htdocs / Custom '
Si ces lignes sont commentées avec "#", pour les activer, il suffit de faire un commentaire en supprimant le caractère "#". YouCanSubmitFile=Sélectionner le module : -CurrentVersion=Version actuelle de Dolibarr -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Serveur de mise à jour hors ligne -GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent être utilisées:
{000000} correspond à un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.
{000000+000} idem que précédemment mais un décalage correspondant au nombre à droite du + est appliqué dès la première %s.
{000000@x} idem que précédemment mais le compteur est remis à zéro le xème mois de l'année (x entre 1 et 12, ou 0 pour utiliser le mois de début d'exercice fiscal défini dans votre configuration, ou 99 pour remise à zéro chaque mois). Si cette option est utilisée et x vaut 2 ou plus, alors la séquence {yy}{mm} ou {yyyy}{mm} est obligatoire.
{dd} jour (01 à 31).
{mm} mois (01 à 12).
{yy}, {yyyy} ou {y} année sur 2, 4 ou 1 chiffres.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé.
Les espaces ne sont pas permis.
-GenericMaskCodes4a=Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007 :
-GenericMaskCodes4b=Exemple sur un tiers créé le 31/03/2007 :
-GenericMaskCodes4c=Exemple sur un produit/service créé le 31/03/2007 :
-GenericMaskCodes5=ABC{yy}{mm}-{000000} donnera ABC0703-000099
{0000+100@1}-XXX-{dd}-YYY donnera 0199-XXX-31-YYY -GenericNumRefModelDesc=Renvoie un numéro personnalisable selon un masque à définir. -ServerAvailableOnIPOrPort=Serveur disponible à l'adresse %s sur le port %s -ServerNotAvailableOnIPOrPort=Serveur non disponible à l'adresse %s sur le port %s -DoTestServerAvailability=Tester disponibilité serveur -DoTestSend=Tester envoi -DoTestSendHTML=Tester envoi HTML -ErrorCantUseRazIfNoYearInMask=Erreur, ne peut utiliser l'option @ pour remettre à zéro en début d'année si la séquence {yy} ou {yyyy} n'est pas dans le masque. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erreur, ne peut utiliser l'option @ si la séquence {yy}{mm} ou {yyyy}{mm} n'est pas dans le masque. -UMask=Masque des nouveaux fichiers sous Unix/Linux/BSD/Mac. -UMaskExplanation=Ce paramètre permet de définir les droits des fichiers créés sur le serveur par Dolibarr (lors d'envois par exemple).
Ce doit être la valeur octale (par exemple 0666 signifie lecture/écriture pour tous).
Ce paramètre n'a aucun effet sur un serveur Windows. -SeeWikiForAllTeam=Voir le wiki pour le détail de tous les acteurs et leur organisation -UseACacheDelay= Délai de mise en cache de l'export en secondes (0 ou vide pour aucun cache) -DisableLinkToHelpCenter=Cacher le lien «Besoin d'aide ou d'assistance» sur la page de connexion +CallUpdatePage=Accédez à la page qui met à jour la structure et les données de la base de données: %s. +LastStableVersion=Dernière version stable +LastActivationDate=Dernière date d'activation +LastActivationAuthor=Dernier auteur d'activation +LastActivationIP=Dernière activation IP +GenericMaskCodes2= {cccc} le code client sur n caractères
{cccc000} le code client sur n caractères est suivi d'un compteur dédié au client. Ce compteur dédié au client est réinitialisé au même moment que le compteur global. {tttt} Le code de type tiers sur n caractères (voir menu Accueil - Configuration - Dictionnaire - Types de tiers) . Si vous ajoutez cette étiquette, le compteur sera différent pour chaque type de tiers. +GenericMaskCodes4a=
Exemple au 99th %s du tiers TheCompany, avec la date 2007-01-31: +GenericMaskCodes5=ABC{yy}{mm}-{000000} donnera ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX donnera 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} donnera IN0701-0099-A si le type d'entreprise est 'Responsable Inscripto' avec un code pour le type 'A_RI' DisableLinkToHelp=Masquer lien vers l'aide en ligne "%s" -AddCRIfTooLong=Il n'y a pas de coupure de ligne automatique, aussi si votre texte est trop long sur les documents, il faudra ajouter vous même des retours chariot dans la zone de saisie du texte -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Longueur minimale -LanguageFilesCachedIntoShmopSharedMemory=Fichiers .lang en mémoire partagée -ExamplesWithCurrentSetup=Exemples avec le paramétrage actif courant -ListOfDirectories=Liste des répertoires des modèles OpenDocument +ConfirmPurge=Êtes-vous sûr de vouloir exécuter cette purge?
Cela supprimera définitivement tous vos fichiers de données sans pouvoir les restaurer (fichiers ECM, fichiers joints ...). ListOfDirectoriesForModelGenODT=Liste des répertoires contenant des fichiers de modèles avec le format OpenDocument .

Mettez ici le chemin complet des répertoires .
Ajouter un retour chariot entre répertoire eah.
Pour ajouter un répertoire du module de GED , ajouter iciDOL_DATA_ROOT/ecm/yourdirectoryname.

Fichiers dans ces répertoires doit se terminer par .odt or .ods. -NumberOfModelFilesFound=Nombre de fichiers modèles ODT/ODS trouvés dans ce(s) répertoire(s) -ExampleOfDirectoriesForModelGen=Exemple de syntaxe :
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
Pour savoir comment rédiger des modèles de document odt avant de les placer dans un de ces répertoires, consulter la documentation du wiki : -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Créer_un_modèle_de_document_ODT -FirstnameNamePosition=Ordre d'affichage prénom/nom -DescWeather=Les graphiques suivant seront affichés sur le tableau de bord si le nombre d'éléments en retard atteint ces valeurs : -KeyForWebServicesAccess=Clé pour utiliser les Web Services (paramètre "dolibarrkey" dans les webservices) -TestSubmitForm=Formulaire de test de saisie -ThisForceAlsoTheme=Utiliser ce gestionnaire de menu force aussi le thème quel que soit le choix de thème de l'utilisateur. De plus, ce gestionnaire de menu, spécialisé pour smartphone, ne fonctionne que sur certains téléphones. Utilisez un autre gestionnaire si vous constatez des problèmes. -ThemeDir=Répertoire des thèmes -ConnectionTimeout=Délai expiration de connexion -ResponseTimeout=Délai expiration de réponse -SmsTestMessage=Message de test de __PHONEFROM__ vers __PHONETO__ -ModuleMustBeEnabledFirst=Le module %s doit être activé pour utiliser cette fonction. -SecurityToken=Clé de sécurisation des URLs -NoSmsEngine=Aucun gestionnaire d'envoi de SMS n'est disponible. Les gestionnaires d'envois SMS ne sont pas installés en standard (car dépendent d'un fournisseur) mais vous pourrez en trouver depuis la plateforme %s -PDF=PDF -PDFDesc=Vous pouvez définir ici des options globales sur la génération des PDF -PDFAddressForging=Règles de fabrication des zones adresses HideAnyVATInformationOnPDF=Cacher toutes les informations en rapport avec la TPS/TVH sur les PDF générés -HideDescOnPDF=Cacher la description des produits sur les PDF générés -HideRefOnPDF=Cacher la référence des produits sur les PDF générés -HideDetailsOnPDF=Hide product lines details on generated PDF +HideDetailsOnPDF=Masquer les détails des lignes de produits sur le PDF généré PlaceCustomerAddressToIsoLocation=Utilisez french standard position (La Poste) pour le client position d'adresse -Library=Bibliothèque -UrlGenerationParameters=Sécurisation des URLs -SecurityTokenIsUnique=Utiliser un paramètre securekey unique pour chaque URL ? -EnterRefToBuildUrl=Entrer la référence pour l'objet %s -GetSecuredUrl=Obtenir l'URL calculée -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Masquer les boutons pour les utilisateurs non administrateurs pour les actions non autorisées au lieu de afficher les boutons désactivés grisés OldVATRates=Ancien taux de TPS/TVH NewVATRates=Nouveau taux de TPS/TVH -PriceBaseTypeToChange=Modifier sur les prix dont la référence de base est le -MassConvert=Convertir en masse -String=Chaîne -TextLong=Texte long -Int=Numérique entier -Float=Décimal -DateAndTime=Date et heure -Unique=Unique -Boolean=Booléen (Case à cocher) -ExtrafieldPhone = Téléphone -ExtrafieldPrice = Prix -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Liste de sélection -ExtrafieldSelectList = Liste issue d'une table -ExtrafieldSeparator=Séparateur de champ -ExtrafieldPassword=Mot de passe -ExtrafieldCheckBox=Case à cocher -ExtrafieldRadio=Bouton radio -ExtrafieldCheckBoxFromList= Liste à cocher issue d'une table -ExtrafieldLink=Lier à un objet -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... -ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +Boolean=Boolean (une case à cocher) +ExtrafieldSeparator=Séparateur (pas un champ) +ExtrafieldRadio=Boutons radio (uniquement sur le choix) +ExtrafieldCheckBoxFromList=Les cases à cocher du tableau +ComputedFormulaDesc=Vous pouvez entrer ici une formule utilisant d'autres propriétés de l'objet ou tout codage PHP pour obtenir une valeur calculée dynamique. Vous pouvez utiliser toutes les formules compatibles PHP, y compris le "?" L'opérateur de condition et l'objet global suivant: $ db, $ conf, $ langs, $ mysoc, $ user, $ object .
AVERTISSEMENT : Seules certaines propriétés de $ L'objet peut être disponible. Si vous avez besoin de propriétés non chargées, récupérez-vous l'objet dans votre formule comme dans le deuxième exemple. L'utilisation d'un champ calculé signifie que vous ne pouvez pas entrer de valeur d'interface. De plus, s'il existe une erreur de syntaxe, la formule ne peut renvoyer rien.

Exemple de formule: $ $ object-> id <10? Round ($ object-> id / 2, 2): ($ object-> id + 2 * $ user-> id) * (int) substr ($ mysoc-> zip, 1, 2)

Exemple de recharger l'objet
(($ reloadedobj = new Societe ($ db)) && ($ reloadedobj-> fetch ($ obj-> id? $ Obj-> id: ($ obj-> rowid? $ Obj-> Rowid: $ object-> id))> 0))? $ Reloadedobj-> array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Autre exemple de formule pour forcer la charge de l'objet et son objet parent:
(($ reloadedobj = New Task ($ db)) && ($ reloadedobj-> fetch ($ object-> id)> 0) && ($ secondloadedobj = new Project ($ db)) && ($ secondloadedobj-> fetch ($ reloadedobj-> fk_project )> 0))? $ Secondloadedobj-> ref: 'Projet parent introuvable' +ExtrafieldParamHelpselect=La liste des paramètres doit être comme une clé, une valeur

par exemple:
1, value1
2, value2
3, value3
...

Pour Pour avoir la liste en fonction d'une autre liste d'attributs complémentaires:
1, value1 | options_ parent_list_code : parent_key
2, value2 | options_ parent_list_code : parent_key

Pour avoir la liste en fonction d'une autre liste:
1, value1 | parent_list_code : parent_key
2, value2 | parent_list_code : parent_key +ExtrafieldParamHelpsellist=La liste des paramètres provient d'une table Syntaxe: table_name: label_field: id_field :: filter
Exemple: c_typent: libelle: id :: filter

filter peut être un test simple (par exemple active = 1) Pour afficher uniquement la valeur active
Vous pouvez également utiliser $ ID $ en filtre witch est l'identifiant actuel de l'objet actuel
Pour faire un SELECT en filtre, utilisez $ SEL $
si vous souhaitez filtrer sur la syntaxe d'utilisation extrafields Extra.fieldcode = ... (où le code de champ est le code de extrafield)

Pour avoir la liste en fonction d'une autre liste d'attributs complémentaires:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Pour avoir la liste en fonction d'une autre liste:
c_typent: libelle: id: parent_list_code | parent_column: filter +ExtrafieldParamHelpchkbxlst=La liste des paramètres provient d'une table Syntaxe: table_name: label_field: id_field :: filter
Exemple: c_typent: libelle: id :: filter

filter peut être un test simple (par exemple active = 1) Pour afficher uniquement la valeur active
Vous pouvez également utiliser $ ID $ en filtre witch est l'identifiant actuel de l'objet actuel
Pour faire un SELECT en filtre, utilisez $ SEL $
si vous souhaitez filtrer sur la syntaxe d'utilisation extrafields Extra.fieldcode = ... (où le code de champ est le code de extrafield)

Pour avoir la liste en fonction d'une autre liste d'attributs complémentaires:
c_typent: libelle: id: options_ parent_list_code | parent_column: filter

Pour avoir la liste en fonction d'une autre liste:
c_typent: libelle: id: parent_list_code | parent_column: filter ExtrafieldParamHelplink=Les paramètres doivent être ObjectName:Classpath
Syntax : ObjectName:Classpath
Exemple : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Attention : votre fichier conf.php contient la directive dolibarr_pdf_force_fpdf=1. Cela signifie que vous utilisez la librairie FPDF pour générer vos fichiers PDF. Cette librairie est ancienne et ne couvre pas de nombreuses fonctionnalités (Unicode, transparence des images, langues cyrilliques, arabes ou asiatiques...), aussi vous pouvez rencontrer des problèmes durant la génération des PDF.
Pour résoudre cela et avoir une prise en charge complète de PDF, vous pouvez télécharger la bibliothèque TCPDF puis commenter ou supprimer la ligne $dolibarr_pdf_force_fpdf=1, et ajouter à la place $dolibarr_lib_TCPDF_PATH='chemin_vers_TCPDF' +LibraryToBuildPDF=Bibliothèque utilisée pour la génération de PDF LocalTaxDesc=Certains pays appliquent 2 voire 3 taux sur chaque ligne de facture. Si c'est le cas, choisissez le type du deuxième et troisième taux et sa valeur. Les types possibles sont:
1 : taxe locale sur les produits et services hors TPS/TVH (la taxe locale est calculée sur le montant hors taxe)
2 : taxe locale sur les produits et services avant TPS/TVH (la taxe locale est appliquée sur le montant + TPS/TVH)
3 : taxe locale uniquement sur les produits hors TPS/TVH (la taxe locale est calculée sur le montant hors taxe)
4 : taxe locale uniquement sur les produits avant TPS/TVH (la taxe locale est calculée sur le montant + TPS/TVH)
5 : taxe locale uniquement sur les services hors TPS/TVH (la taxe locale est calculée sur le montant hors taxe)
6 : taxe locale uniquement sur les service avant TPS/TVH (la taxe locale est calculée sur le montant + TPS/TVH) -SMS=SMS -LinkToTestClickToDial=Entrez un numéro de téléphone à appeler pour tester le lien d'appel « ClickToDial » pour l'utilisateur %s -RefreshPhoneLink=Rafraichir lien -LinkToTest=Lien cliquable généré pour l'utilisateur %s (cliquer sur le numéro pour tester) -KeepEmptyToUseDefault=Laisser ce champ vide pour utiliser la valeur par défaut -DefaultLink=Lien par défaut -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Attention, cette valeur peut être écrasée par une valeur spécifique à la configuration de l'utilisateur (chaque utilisateur pouvant avoir sa propre URL « clicktodial ») -ExternalModule=Module externe - Installé dans le répertoire %s -BarcodeInitForThirdparties=Initialisation du code-barre en masse pour les tiers -BarcodeInitForProductsOrServices=Initialisation ou purge en masse des codes-barre des produits ou services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Initialisez les valeurs pour les %s enregistrements vides suivant -EraseAllCurrentBarCode=Efface toutes les valeurs de code-barre -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=Tous les codes-barre ont été supprimés -NoBarcodeNumberingTemplateDefined=Aucun modèle de numérotation de code-barre n'a été activé dans la configuration du module code-barre. +CurrentlyNWithoutBarCode=Actuellement, vous avez %s enregistrements sur %s %s sans code à barres défini. +ConfirmEraseAllCurrentBarCode=Êtes-vous sûr de vouloir effacer toutes les valeurs actuelles du code-barres? EnableFileCache=Activer le cache de fichiers -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Renvoie un code comptable composé de :
%s suivi du code tiers fournisseur pour le code compta fournisseur,
%s suivi du code tiers client pour le code compta client. -ModuleCompanyCodePanicum=Renvoie un code comptable vide. -ModuleCompanyCodeDigitaria=Renvoie un code comptable composé suivant le code tiers. Le code est composé du caractère 'C' en première position suivi des 5 premiers caractères du code tiers. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Utilisateurs & groupes -Module0Desc=Users / Employees and Groups management -Module1Name=Tiers -Module1Desc=Gestion des tiers (sociétés, particuliers) et contacts -Module2Name=Commercial -Module2Desc=Gestion commerciale -Module10Name=Comptabilité -Module10Desc=Activation de rapports simplistes de comptabilité (chiffre d'affaires, journaux) basé sur les données en base. Pas de ventilation. -Module20Name=Propositions commerciales -Module20Desc=Gestion des devis/propositions commerciales -Module22Name=Emailing -Module22Desc=Administration et envoi d'emails en masse -Module23Name=Énergie -Module23Desc=Suivi de la consommation des énergies -Module25Name=Commandes clients -Module25Desc=Gestion des commandes clients -Module30Name=Factures et avoirs -Module30Desc=Gestion des factures et avoirs clients. Gestion des factures fournisseurs -Module40Name=Fournisseurs -Module40Desc=Gestion des fournisseurs et des achats (commandes et factures) -Module42Name=Journaux et traces -Module42Desc=Génération de journaux (fichiers, syslog, …) -Module49Name=Éditeurs -Module49Desc=Gestion des éditeurs -Module50Name=Produits -Module50Desc=Gestion des produits -Module51Name=Publipostage -Module51Desc=Administration et envoi de courriers papiers en masse -Module52Name=Stocks -Module52Desc=Gestion des stocks de produits -Module53Name=Services -Module53Desc=Gestion des services -Module54Name=Contrats/Abonnements -Module54Desc=Gestion des contrats (services ou abonnements récurrents) -Module55Name=Codes-barres -Module55Desc=Gestion des codes-barres -Module56Name=Téléphonie -Module56Desc=Gestion de la téléphonie -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Intégration d'un système de « ClickToDial » (Asterisk, …) -Module59Name=Bookmark4u -Module59Desc=Ajoute une fonction pour générer un compte Bookmark4u depuis un compte Dolibarr -Module70Name=Interventions -Module70Desc=Gestion des interventions chez les tiers +ShowDetailsInPDFPageFoot=Ajoutez plus de détails au pied de page de fichiers PDF, comme l'adresse de votre entreprise, ou les noms de gestionnaire (pour compléter les identifiants professionnels, le capital de la société et le numéro de TVA). +NoDetails=Plus de détails dans le pied de page +DisplayCompanyManagers=Afficher les noms des gestionnaires +DisplayCompanyInfoAndManagers=Afficher l'adresse de la société et les noms des gestionnaires +EnableAndSetupModuleCron=Si vous souhaitez que cette facture récurrente soit générée automatiquement, le module * %s * doit être activé et correctement configuré. Sinon, la génération des factures doit être effectuée manuellement à partir de ce modèle avec le bouton * Créer *. Notez que même si vous avez activé la génération automatique, vous pouvez toujours lancer une génération manuelle sans risque. La génération de doublons pour la même période n'est pas possible. +Use3StepsApproval=Par défaut, les bons de commande doivent être créés et approuvés par 2 utilisateurs différents (une étape / utilisateur à créer et une étape / utilisateur à approuver. Notez que si l'utilisateur a la permission de créer et d'approuver, un pas / utilisateur suffira) . Vous pouvez demander cette option pour introduire une troisième étape / approbation de l'utilisateur, si le montant est supérieur à une valeur dédiée (donc 3 étapes seront nécessaires: 1 = validation, 2 = première approbation et 3 = deuxième approbation si le montant est suffisant).
Configurez ceci pour vider si une approbation (2 étapes) est suffisante, définissez-la à une valeur très faible (0.1) si une deuxième approbation (3 étapes) est toujours requise. +UseDoubleApproval=Utilisez une approbation de 3 étapes lorsque le montant (sans taxes) est supérieur à ... +WarningPHPMail=AVERTISSEMENT: Certains fournisseurs de courrier électronique (comme Yahoo) ne vous permettent pas d'envoyer un courrier électronique d'un autre serveur que le serveur Yahoo si l'adresse de courrier électronique utilisée comme expéditeur est votre courrier électronique Yahoo (comme myemail@yahoo.com, myemail@yahoo.fr, ...). Votre configuration actuelle utilise le serveur de l'application pour envoyer un courrier électronique, de sorte que certains destinataires (l'un compatible avec le protocole DMARC restrictif) demanderont à Yahoo s'ils peuvent accepter votre courrier électronique et Yahoo répondra «non» car le serveur n'est pas un serveur Appartenant à Yahoo, peu de vos e-mails envoyés peuvent ne pas être acceptés. Si votre fournisseur de messagerie (comme Yahoo) a cette restriction, vous devez modifier la configuration de messagerie pour choisir l'autre méthode "Serveur SMTP" et entrer le serveur SMTP et Les informations d'identification fournies par votre fournisseur de messagerie (demandez à votre fournisseur d'EMail d'obtenir des informations d'identification SMTP pour votre compte). +ClickToShowDescription=Cliquez pour afficher la description +DependsOn=Ce module nécessite le (s) module (s) +RequiredBy=Ce module est requis par module (s) +TheKeyIsTheNameOfHtmlField=C'est le nom du champ HTML. Ce besoin d'avoir des connaissances techniques pour lire le contenu de la page HTML pour obtenir le nom clé d'un champ. +PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous incluez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples: +PageUrlForDefaultValuesCreate=
Pour que le formulaire crée une nouvelle tierce partie, c'est %s +PageUrlForDefaultValuesList=
Pour la page qui liste les tierces parties, c'est %s +EnableDefaultValues=Activer l'utilisation de valeurs par défaut personnalisées +EnableOverwriteTranslation=Activer l'utilisation de la traduction écrasée +GoIntoTranslationMenuToChangeThis=Une traduction a été trouvée pour la clé avec ce code, afin de modifier cette valeur, vous devez l'éditer pour la traduction à domicile. +WarningSettingSortOrder=Avertissement, le réglage d'un ordre de tri par défaut peut entraîner une erreur technique lors de la page de la liste si un champ est un champ inconnu. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut. +ProductDocumentTemplates=Modèles de documents pour générer un document produit +FreeLegalTextOnExpenseReports=Texte juridique gratuit sur les rapports de dépenses +WatermarkOnDraftExpenseReports=Filigrane sur les projets de rapports de dépenses +Module0Desc=Gestion des utilisateurs / employés et des groupes +Module42Desc=Installations de journalisation (fichier, syslog, ...). Ces journaux sont à des fins techniques / de débogage. +Module57Name=Ordres de paiement bancaire direct +Module57Desc=Gestion des ordres de paiement de débit direct. Il comprend la génération du fichier SEPA pour les pays européens. Module75Name=Notes de frais et déplacements -Module75Desc=Gestion des notes de frais et déplacements -Module80Name=Expéditions -Module80Desc=Gestion des expéditions et réceptions clients -Module85Name=Banques et caisses -Module85Desc=Gestion des comptes financiers de type comptes bancaires, postaux ou caisses liquide -Module100Name=Site externe -Module100Desc=Ajoute un site web externe dans les menus Dolibarr et l'affiche dans un cadre Dolibarr -Module105Name=Mailman and SPIP -Module105Desc=Interface vers Mailman ou SPIP pour le module Adhérent -Module200Name=LDAP -Module200Desc=Synchronisation avec un annuaire LDAP -Module210Name=PostNuke -Module210Desc=Intégration avec PostNuke -Module240Name=Exports de données -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Imports de données -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Adhérents -Module310Desc=Gestion des adhérents d'une association -Module320Name=Flux RSS -Module320Desc=Ajout de flux d'informations RSS dans les écrans Dolibarr -Module330Name=Marque-pages -Module330Desc=Gestion des marque-pages -Module400Name=Projets/Opportunités/Affaires -Module400Desc=Gestion des projets, opportunités ou affaires. Vous pouvez ensuite assigner tous les autres éléments (facture, commande, proposition, intervention, ...) à ces projets et avoir une vue transverse depuis cette vue projet. -Module410Name=Webcalendar -Module410Desc=Interface avec le calendrier Webcalendar +Module240Desc=Outil d'exportation de données Dolibarr (avec des assistants) +Module250Desc=Outil d'importation de données à Dolibarr (avec des assistants) Module500Name=Dépenses spéciales (taxes, charges, dividendes) Module500Desc=Gestion des dépenses spéciales comme les taxes, charges sociales et dividendes -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Emprunt -Module520Desc=Gestion des emprunts -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Dons -Module700Desc=Gestion des dons +Module510Name=Paiement des salaires des employés +Module510Desc=Enregistrer et suivre le paiement de vos salaires salariés +Module600Desc=Envoyer des notifications EMail (déclenchées par certains événements métier) aux utilisateurs (configuration définie sur chaque utilisateur), contacts tiers (configuration définie sur chaque tiers) ou courriels fixes Module770Name=Note de frais -Module770Desc=Gestion et déclaration des notes de frais (transports, repas, ...) Module1120Name=Propositions commerciales founisseurs -Module1120Desc=Demander des devis et tarifs aux fournisseurs -Module1200Name=Mantis -Module1200Desc=Interface avec le bug tracker Mantis -Module1400Name=Comptabilité -Module1400Desc=Gestion de la comptabilité (partie double) -Module1520Name=Génération de document -Module1520Desc=Génération de documents de publipostages -Module1780Name=Libellés/Catégories -Module1780Desc=Créer tags/catégories (pour les produits, clients, fournisseurs, contacts ou adhérents) -Module2000Name=Éditeur WYSIWYG -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Prix calculés dynamiquement -Module2200Desc=Active l'usage d'expressions mathématiques -Module2300Name=Travaux programmés -Module2300Desc=Travaux planifiées -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Gestion électronique de documents -Module2500Desc=Permet de stocker et administrer une base de documents +Module2000Desc=Permet d'éditer une zone de texte à l'aide d'un éditeur avancé (basé sur CKEditor) +Module2400Name=Evénements / Agenda +Module2400Desc=Suivez les événements réalisés et à venir. Laissez l'application enregistrer les événements automatiques à des fins de suivi ou enregistrer des événements manuels ou rendez-vous. Module2600Name=services API / Web ( serveur SOAP ) Module2600Desc=Active le serveur de Web Services de Dolibarr Module2610Name=services API / Web ( serveur REST ) Module2610Desc=Activer le serveur REST de services API de les services Module2660Name=WebServices appel ( client SOAP ) Module2660Desc=Activer le client Dolibarr de services Web (peut être utilisé pour pousser les données / demandes de serveurs externes . Fournisseur commandes prises en charge seulement pour le moment ) -Module2700Name=Gravatar -Module2700Desc=Utilise le service en ligne Gravatar (www.gravatar.com) pour afficher les photos d'utilisateurs/membres (en fonction leur email). Besoin d'un accès Internet -Module2800Desc=Client FTP -Module2900Name=GeoIPMaxmind -Module2900Desc=Capacités de conversion GeoIP Maxmind -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3100Desc=Ajouter un bouton Skype aux utilisateurs / tiers / contacts / cartes membres +Module3200Name=Grumes non réversibles +Module3200Desc=Activez le journal de certains événements commerciaux dans un journal non réversible. Les événements sont archivés en temps réel. Le journal est un tableau de l'événement enchaîné qui peut ensuite être lu et exporté. Ce module peut être obligatoire pour certains pays. Module4000Name=Gestion des ressources humaines -Module4000Desc=Ressources humaines -Module5000Name=Multi-société -Module5000Desc=Permet de gérer plusieurs sociétés -Module6000Name=Workflow -Module6000Desc=Gérer le Workflow -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. +Module4000Desc=Gestion des ressources humaines (gestion du département, contrats des employés et sentiments) +Module10000Name=Sites Internet +Module10000Desc=Créez des sites Web publics avec un éditeur WYSIWG. Installez simplement votre serveur Web pour pointer vers le répertoire dédié pour l'avoir en ligne sur Internet. Module20000Name=Gestion des demandes de congès Module20000Desc=Déclaration et suivi des congès des employés Module39000Name=Lot/Série du produit -Module39000Desc=Gestion des lots et numéro de série, et date de péremption ou consommation sur les produits -Module50000Name=PayBox -Module50000Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec PayBox -Module50100Name=Point de vente -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal -Module50400Name=Comptabilité (avancée) -Module50400Desc=Gestion de la comptabilité (doubles parties) -Module54000Name=PrintIPP -Module54000Desc=Impression directe (sans ouvrir les documents) en utilisant l'interface Cups IPP (l'imprimante doit être visible depuis le serveur, et CUPS doit être installé sur le serveur). +Module50100Desc=Module de point de vente (POS). Module55000Name=Sondage, enquête ou vote Module55000Desc=Module pour faire des sondages en ligne, des enquêtes ou des votes (comme Doodle , Studs , Rdvz , ... ) -Module59000Name=Marges -Module59000Desc=Module pour gérer les marges -Module60000Name=Commissions -Module60000Desc=Module pour gérer les commissions -Module63000Name=Ressources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Consulter les factures clients -Permission12=Créer/modifier les factures clients -Permission13=Dé-valider les factures clients -Permission14=Valider les factures clients -Permission15=Envoyer les factures clients par email -Permission16=Émettre des paiements sur les factures clients -Permission19=Supprimer les factures clients -Permission21=Consulter les propositions commerciales -Permission22=Créer/modifier les propositions commerciales -Permission24=Valider les propositions commerciales -Permission25=Envoyer les propositions commerciales -Permission26=Clôturer les propositions commerciales -Permission27=Supprimer les propositions commerciales -Permission28=Exporter les propositions commerciales -Permission31=Consulter les produits -Permission32=Créer/modifier les produits -Permission34=Supprimer les produits -Permission36=Voir/gérer les produits cachés -Permission38=Exporter les produits -Permission41=Consulter les projets et tâches (partagés ou dont je suis contact) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Supprimer les projets et tâches (partagés ou dont je suis contact) +Module63000Desc=Gérer les ressources (imprimantes, voitures, salles, ...) vous pouvez ensuite partager vos événements +Permission41=Lisez les projets et les tâches (projet partagé et projets auxquels je suis contacté). Peut aussi entrer dans le temps, pour moi ou pour ma hiérarchie, sur les tâches assignées (feuille de temps) +Permission42=Créer / modifier des projets (projet partagé et projets pour lesquels je suis contact). Peut également créer des tâches et affecter des utilisateurs à des projets et à des tâches Permission45=Exportation de projets -Permission61=Consulter les interventions -Permission62=Créer/modifier les interventions -Permission64=Supprimer les interventions -Permission67=Exporter les interventions -Permission71=Consulter les fiches adhérents -Permission72=Créer/modifier les adhérents -Permission74=Supprimer les adhérents -Permission75=Configurer les types d'adhérents -Permission76=Export data -Permission78=Consulter les cotisations -Permission79=Créer/modifier les cotisations -Permission81=Consulter les commandes clients -Permission82=Créer/modifier les commandes clients -Permission84=Valider les commandes clients -Permission86=Envoyer les commandes clients -Permission87=Clôturer les commandes clients -Permission88=Annuler les commandes clients -Permission89=Supprimer les commandes clients +Permission76=Exporter des données Permission91=Consulter les charges et la TPS/TVH Permission92=Créer/modifier les charges et la TPS/TVH Permission93=Supprimer les charges et la TPS/TVH Permission94=Exporter les charges -Permission95=Consulter CA, bilans et résultats -Permission101=Consulter les expéditions -Permission102=Créer/modifier les expéditions -Permission104=Valider les expéditions -Permission106=Exporter les expéditions -Permission109=Supprimer les expéditions -Permission111=Consulter les comptes financiers (comptes bancaires, caisses) -Permission112=Créer/modifier montant/supprimer écritures bancaires -Permission113=Configurer les comptes financiers (créer, gérer les catégories) -Permission114=Rapprocher les transactions -Permission115=Exporter transactions et relevés -Permission116=Saisir virements entre comptes -Permission117=Gérer les dépots en banque de chèques reçus -Permission121=Consulter les tiers (sociétés) liés à l'utilisateur -Permission122=Créer/modifier les tiers (sociétés) liés à l'utilisateur -Permission125=Supprimer les tiers (sociétés) liés à l'utilisateur -Permission126=Exporter les tiers (sociétés) -Permission141=Consulter tous les projets et tâches (y compris privés dont je ne suis pas contact) -Permission142=Créer/modifier tous les projets et tâches (y compris privés dont je ne suis pas contact) Permission144=Supprimer tous les projets et tâches (y compris privés dont je ne suis pas contact) -Permission146=Consulter les fournisseurs -Permission147=Consulter les stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Lire les contrats/abonnements -Permission162=Créer/modifier les contrats/abonnements -Permission163=Activer un service/abonnement -Permission164=Désactiver un service/abonnements -Permission165=Supprimer les contrats/abonnements +Permission151=Lire les ordres de paiement de débit direct +Permission152=Créer / modifier des ordres de paiement de débit direct +Permission153=Envoyer / Transmettre les ordres de paiement de débit direct +Permission154=Enregistrer les crédits / Rejet des ordres de paiement par prélèvement automatique Permission167=Exportation de contacts Permission171=Lire les déplacements et les dépenses (le vôtre et vos subordonnés ) -Permission172=Créer/modifier les notes de frais / déplacements -Permission173=Supprimer les notes de frais / déplacements -Permission174=Lire toutes les notes de frais -Permission178=Exporter les notes de frais / déplacements -Permission180=Consulter les fournisseurs -Permission181=Consulter les commandes fournisseurs -Permission182=Créer/modifier les commandes fournisseurs -Permission183=Valider les commandes fournisseurs -Permission184=Approuver les commandes fournisseurs -Permission185=Commander ou annuler les commandes fournisseurs -Permission186=Accuser réception des commandes fournisseurs -Permission187=Clôturer les commandes fournisseurs -Permission188=Annuler les commandes fournisseurs -Permission192=Créer des lignes -Permission193=Résilier des lignes -Permission194=Consulter la marge des lignes -Permission202=Créer des liaisons ADSL -Permission203=Demander la commande des liaisons -Permission204=Commander les liaisons -Permission205=Gérer les liaisons -Permission206=Consulter les liaisons -Permission211=Consulter la téléphonie -Permission212=Commander les lignes -Permission213=Activer une ligne -Permission214=Configurer la téléphonie -Permission215=Configurer les fournisseurs -Permission221=Consulter les emailings -Permission222=Créer/modifier les emailings (sujet, destinataires, etc.) -Permission223=Valider les emailings (permet leur envoi) -Permission229=Supprimer les emailings -Permission237=Visualiser les destinataires et les infos -Permission238=Envoyer les emailings manuellement -Permission239=Supprimer les emailings après leur validation ou leur envoi -Permission241=Consulter les catégories -Permission242=Créer/modifier les catégories -Permission243=Supprimer les catégories -Permission244=Voir le contenu des catégories cachées -Permission251=Consulter les autres utilisateurs, les groupes et leurs permissions -PermissionAdvanced251=Consulter les autres utilisateurs -Permission252=Consulter les permissions des autres utilisateurs -Permission253=Créer/modifier les autres utilisateurs, les groupes et leurs permissions -PermissionAdvanced253=Créer/modifier les utilisateurs internes/externes et leurs permissions -Permission254=Créer/modifier les utilisateurs externes seulement -Permission255=Modifier le mot de passe des autres utilisateurs -Permission256=Supprimer ou désactiver les autres utilisateurs -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Consulter le chiffre d'affaires -Permission272=Consulter les factures -Permission273=Émettre les factures -Permission281=Consulter les contacts -Permission282=Créer/modifier les contacts -Permission283=Supprimer les contacts -Permission286=Exporter les contacts -Permission291=Consulter les tarifs -Permission292=Définir les permissions sur les tarifs -Permission293=Modifier les tarifs clients -Permission300=Consulter les codes-barres -Permission301=Créer/modifier les codes-barres -Permission302=Supprimer les codes-barres -Permission311=Consulter les services -Permission312=Affecter le service/abonnement au contrat -Permission331=Lire les marque-pages -Permission332=Créer/modifier les marque-pages -Permission333=Supprimer les marque-pages -Permission341=Consulter ses propres permissions -Permission342=Créer/modifier ses propres informations utilisateur -Permission343=Modifier son propre mot de passe -Permission344=Modifier ses propres permissions -Permission351=Consulter les groupes -Permission352=Consulter les permissions des groupes -Permission353=Créer/modifier les groupes et leurs permissions -Permission354=Supprimer ou désactiver les groupes -Permission358=Exporter les utilisateurs -Permission401=Consulter les avoirs -Permission402=Créer/modifier les avoirs -Permission403=Valider les avoirs -Permission404=Supprimer les avoirs -Permission510=Consulter les salaires -Permission512=Créer/modifier les salaires -Permission514=Supprimer les salaires -Permission517=Exporter les salaires -Permission520=Consulter les emprunts -Permission522=Créer/Modifier les emprunts -Permission524=Supprimer les emprunts -Permission525=Utiliser le calculateur d'emprunts -Permission527=Exporter les emprunts -Permission531=Consulter les services -Permission532=Créer/modifier les services -Permission534=Supprimer les services -Permission536=Voir/gérer les services cachés -Permission538=Exporter les services -Permission701=Consulter les dons -Permission702=Créer/modifier les dons -Permission703=Supprimer les dons +Permission262=Prolonger l'accès à tous les tiers (non seulement les tiers que l'utilisateur est un représentant de la vente).
Pas efficace pour les utilisateurs externes (toujours limités à eux-mêmes pour des propositions, des commandes, des factures, des contrats, etc.). Projets (règles uniquement sur les autorisations de projet, visibilité et affectation). Permission771=Lire les rapports de dépenses (le vôtre et vos subordonnés ) -Permission772=Créer/modifier les notes de frais -Permission773=Supprimer les notes de frais -Permission774=Lire toutes les notes de frais (même pour les utilisateurs en dehors de ma hierarchie) -Permission775=Approuver les notes de frais -Permission776=Payer les notes de frais -Permission779=Exporter les notes de frais -Permission1001=Consulter les stocks -Permission1002=Créer/modifier entrepôts -Permission1003=Supprimer entrepôts -Permission1004=Consulter les mouvements de stocks -Permission1005=Créer/modifier les mouvements de stocks -Permission1101=Consulter les bons de livraison -Permission1102=Créer/modifier les bons de livraison -Permission1104=Valider les bons de livraison -Permission1109=Supprimer les bons de livraison -Permission1181=Consulter les fournisseurs -Permission1182=Consulter les commandes fournisseur -Permission1183=Créer les commandes fournisseur -Permission1184=Valider les commandes fournisseur -Permission1185=Approuver les commandes fournisseur -Permission1186=Commander les commandes fournisseur -Permission1187=Accuser réception des commandes fournisseur -Permission1188=Supprimer les commandes fournisseur -Permission1190=Approuver les commandes fournisseur (second niveau) -Permission1201=Récupérer le résultat d'un export -Permission1202=Créer/modifier un export -Permission1231=Consulter les factures fournisseur -Permission1232=Créer des factures fournisseur -Permission1233=Valider les factures fournisseur -Permission1234=Supprimer les factures fournisseur -Permission1235=Envoyer les factures fournisseur par email -Permission1236=Exporter les factures fournisseurs, attributs et règlements -Permission1237=Exporter les commande fournisseurs, attributs -Permission1251=Lancer des importations en masse dans la base (chargement de données) -Permission1321=Exporter les factures clients, attributs et règlements -Permission1322=Reopen a paid bill -Permission1421=Exporter les commandes clients et attributs +Permission1322=Réouvrir une facture payée Permission20001=Lire les demandes de congé (le vôtre et vos subordonnés) Permission20002=Créer / modifier les demandes de congé -Permission20003=Supprimer les demandes de congé Permission20004=Lire toutes les demandes de congé (même utilisateur non subordonnés) Permission20005=Créer / modifier les demandes de congé pour tout le monde Permission20006=Administration des demandes de congé (balance de configuration et de mise à jour ) -Permission23001=Voir les travaux planifiés -Permission23002=Créer/Modifier des travaux planifiées -Permission23003=Effacer travail planifié Permission23004=Exécuté Travail planifié -Permission2401=Lire les actions (événements ou tâches) liées à son compte -Permission2402=Créer/modifier les actions (événements ou tâches) liées à son compte -Permission2403=Supprimer les actions (événements ou tâches) liées à son compte -Permission2411=Lire les actions (événements ou tâches) des autres -Permission2412=Créer/modifier les actions (événements ou tâches) pour les autres -Permission2413=Supprimer les actions (événements ou tâches) pour les autres Permission2414=Exportation d'actions/tâches des autres -Permission2501=Lire/récupérer les documents -Permission2502=Récupérer les documents -Permission2503=Soumettre ou supprimer des documents -Permission2515=Administrer les rubriques de documents -Permission2801=Utiliser un client FTP en mode lecture (parcours et téléchargement de fichiers) -Permission2802=Utiliser un client FTP en mode écriture (suppression et envoi de fichiers) -Permission50101=Utiliser le point de vente -Permission50201=Consulter les transactions -Permission50202=Importer les transactions -Permission54001=Imprimer -Permission55001=Lire sondages -Permission55002=Créer/modifier les sondages Permission59001=Consulter les propositions commerciales -Permission59002=Saisir les marges commerciales -Permission59003=Peut lire les marges de tout le monde -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Niveau de potentiel des prospects +Permission63002=Créer / modifier des ressources +Permission63004=Relier les ressources aux événements de l'agenda +DictionaryCompanyType=Types de tiers +DictionaryCompanyJuridicalType=Formes juridiques des tierces parties DictionaryCanton=État / Province -DictionaryRegion=Régions -DictionaryCountry=Pays -DictionaryCurrency=Monnaies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events +DictionaryCivility=Titres personnels et professionnels +DictionaryActions=Types d'événements de l'agenda DictionarySocialContributions=Types de charges sociales DictionaryVAT=Taux de TPS/TVH ou de Taxes de Ventes -DictionaryRevenueStamp=Montants des timbres fiscaux -DictionaryPaymentConditions=Conditions de règlement -DictionaryPaymentModes=Modes de paiements -DictionaryTypeContact=Types de contacts/adresses -DictionaryEcotaxe=Barèmes Eco-participation (DEEE) -DictionaryPaperFormat=Format papiers -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Méthodes d'expédition -DictionaryStaff=Effectifs -DictionaryAvailability=Délai de livraison -DictionaryOrderMethods=Méthodes de commandes -DictionarySource=Origines des propales/commandes -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Modèles de plan comptable -DictionaryEMailTemplates=Modèles des courriels -DictionaryUnits=Unités -DictionaryProspectStatus=Statuts de prospection -DictionaryHolidayTypes=Types of leaves +DictionaryFormatCards=Formats de cartes +DictionaryFees=Types de frais +DictionaryAccountancyJournal=Revues comptables +DictionaryHolidayTypes=Types de feuilles DictionaryOpportunityStatus=État d'opportunité pour le projet/chef de file -SetupSaved=Configuration sauvegardée -BackToModuleList=Retour liste des modules -BackToDictionaryList=Retour liste des dictionnaires +SetupNotSaved=Le programme d'installation n'a pas été enregistré VATManagement=Gestion TPS/TVH -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. +VATIsUsedDesc=Par défaut, lors de la création de prospects, factures, commandes, etc., le taux de TVA suit la règle standard active:
Si le vendeur n'est pas assujetti à la TVA, la TVA prend par défaut 0. Fin de la règle. Si le (pays vendeur = Pays d'achat), la TVA par défaut est égale à la TVA du produit dans le pays de vente. Fin de la règle.
Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et les marchandises sont des produits de transport (voiture, bateau, avion), la TVA par défaut est 0 (la TVA devrait être payée par l'acheteur au bureau de son pays et non à la vendeur). Fin de la règle. Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et que l'acheteur n'est pas une société, la TVA par défaut est la TVA du produit vendu. Fin de la règle. Si le vendeur et l'acheteur sont tous deux dans la Communauté européenne et l'acheteur est une société, la TVA est 0 par défaut. Fin de la règle. En tout autre cas, le défaut proposé est la TVA = 0. Fin de la règle. VATIsNotUsedDesc=Le taux de TPS/TVH proposé par défaut est 0. C'est le cas d'associations, particuliers ou certaines petites sociétés. -VATIsUsedExampleFR=En France, il s'agit des sociétés ou organismes ayant choisi un régime fiscale réel (Réel simplifié ou Réel normal), régime dans lequel la TVA est déclarée. -VATIsNotUsedExampleFR=En France, il s'agit des associations ne déclarant pas de TVA ou sociétés, organismes ou professions libérales ayant choisi le régime fiscal micro entreprise (TVA en franchise) et payant une TVA en franchise sans faire de déclaration de TVA. Ce choix fait de plus apparaître la mention "TVA non applicable - art-293B du CGI" sur les factures. -##### Local Taxes ##### -LTRate=Taux -LocalTax1IsNotUsed=Non assujeti LocalTax1IsUsedDesc=Utilisation d'un 2ème type taxe (autre que TPS/TVH) LocalTax1IsNotUsedDesc=Pas d'utilisation de 2ème type taxe (autre que TPS/TVH) -LocalTax1Management=Gestion 2ème type de taxe -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Non assujeti LocalTax2IsUsedDesc=Utilisation d'un 3ème type taxe (autre que TPS/TVH) LocalTax2IsNotUsedDesc=Pas d'utilisation de 3ème type taxe (autre que TPS/TVH) -LocalTax2Management=Gestion 3ème type de tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= Gestion RE -LocalTax1IsUsedDescES= Le taux de RE proposé par défaut lors de la création de proposition commercial, facture, commande, etc… répond à la règle standard suivante:
Si acheteur non assujetti à RE, RE par défaut=0. Fin de règle.
Si acheteur assujetti à RE alors RE par défaut. Fin de règle.
-LocalTax1IsNotUsedDescES= Le taux de RE proposé par défaut est 0. Fin de règle. -LocalTax1IsUsedExampleES= En Espagne, ce sont des professionnels sous réserve de certaines sections spécifiques de l'IAE Espagnol. -LocalTax1IsNotUsedExampleES= En Espagne, ce sont des sociétés en commandite, les sociétés anonymes, etc... et les individus (autonomes) sous réserve de certaines sections de l'IAE Espagnol. -LocalTax2ManagementES= Gestion IRPF -LocalTax2IsUsedDescES= L'IRPF proposé par défaut lors de la création de proposition commerciale, facture, commande, etc… répond à la règle standard suivante:
Si vendeur non assujetti à IRPF, IRPF par défaut=0. Fin de règle.
Si vendeur assujetti à IRPF alors IRPF par défaut. Fin de règle.
-LocalTax2IsNotUsedDescES= L'IRPF proposé par défaut est 0. Fin de règle. -LocalTax2IsUsedExampleES= En Espagne, ce sont des professionnels autonomes et indépendants qui offrent des services, et des sociétés qui ont choisi le système fiscal du module. -LocalTax2IsNotUsedExampleES= En Espagne, ce sont des sociétés qui ne sont pas soumises au système fiscal du module. -CalcLocaltax=Rapports sur les taxes locales -CalcLocaltax1=Ventes - Achats -CalcLocaltax1Desc=Les rapports des Taxes locales sont calculées avec la différence entre les taxes locales de ventes et les taxes locales d'achats -CalcLocaltax2=Achats -CalcLocaltax2Desc=Le Rapport des Taxes locales sont le total des taxes locales d'achats -CalcLocaltax3=Ventes -CalcLocaltax3Desc=Le Rapports des Taxes locales sont le total des taxes locales de ventes -LabelUsedByDefault=Libellé qui sera utilisé si aucune traduction n'est trouvée pour ce code -LabelOnDocuments=Libellé sur les documents -NbOfDays=Nbre de jours -AtEndOfMonth=En fin de mois -CurrentNext=Current/Next -Offset=Décalage -AlwaysActive=Toujours actif -Upgrade=Mise à jour -MenuUpgrade=Mise à jour / extension -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Serveur Web -DocumentRootServer=Répertoire racine des pages web -DataRootServer=Répertoire racine des fichiers de données -IP=IP -Port=Port -VirtualServerName=Nom du serveur virtuel -OS=OS -PhpWebLink=Lien Web-Php -Browser=Navigateur -Server=Serveur -Database=Base de données -DatabaseServer=Hôte de la base de données -DatabaseName=Nom de la base de données -DatabasePort=Port de la base de données -DatabaseUser=Utilisateur de la base de données -DatabasePassword=Mot de passe de la base de données -Tables=Tables -TableName=Nom de la table -NbOfRecord=Nb d'enr. -Host=Serveur -DriverType=Type du pilote -SummarySystem=Résumé des informations systèmes -SummaryConst=Liste de tous les paramètres de configuration Dolibarr -MenuCompanySetup=Société/Institution -DefaultMenuManager= Gestionnaire du menu standard -DefaultMenuSmartphoneManager=Gestionnaire du menu smartphone -Skin=Thème visuel -DefaultSkin=Thème visuel par défaut -MaxSizeList=Longueur maximale des listes +CurrentNext=Actuel / Suivant +AddExtensionThemeModuleOrOther=Déploiement / installation du module externe +MenuCompanySetup=Société / Organisation DefaultMaxSizeList=Longueur maximale des listes DefaultMaxSizeShortList=Longueur maximale par défaut des listes -MessageOfDay=Message du jour -MessageLogin=Message page de connexion -PermanentLeftSearchForm=Zone de recherche permanente du menu de gauche -DefaultLanguage=Langue à utiliser par défaut (code langue) -EnableMultilangInterface=Activer l'interface multi-langue -EnableShowLogo=Afficher le logo dans le menu gauche -CompanyInfo=Informations sur la société/institution -CompanyIds=Identifiants règlementaires -CompanyName=Nom/Enseigne/Raison sociale -CompanyAddress=Adresse -CompanyZip=Code postal -CompanyTown=Ville -CompanyCountry=Pays -CompanyCurrency=Devise principale +CompanyInfo=Informations sur la société / l'organisation +CompanyIds=Identités de la société / organisation CompanyObject=Objet de la compagnie -Logo=Logo -DoNotSuggestPaymentMode=Ne pas suggérer -NoActiveBankAccountDefined=Aucun compte bancaire actif défini -OwnerOfBankAccount=Propriétaire du compte %s -BankModuleNotActive=Module comptes bancaires non activé ShowBugTrackLink=Afficher le lien "Signaler un défaut" -Alerts=Alertes -DelaysOfToleranceBeforeWarning=Délais de tolérance avant alerte -DelaysOfToleranceDesc=Cet écran permet de définir les délais de tolérance après lesquels une alerte sera signalée à l'écran par le pictogramme %s sur chaque élément en retard. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolérance de retard avant alerte (en jours) sur propales à cloturer -Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolérance de retard avant alerte (en jours) sur propales non facturées -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolérance de retard avant alerte (en jours) sur services à activer -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolérance de retard avant alerte (en jours) sur services expirés -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolérance de retard avant alerte (en jours) sur factures fournisseur impayées -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolérance de retard avant alerte (en jours) sur factures client impayées -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolérance de retard avant alerte (en jours) sur rapprochements bancaires à faire -Delays_MAIN_DELAY_MEMBERS=Tolérance de retard avant alerte (en jours) sur cotisations adhérents en retard -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolérance de retard avant alerte (en jours) sur chèques à déposer +Delays_MAIN_DELAY_ACTIONS_TODO=Tolérance retardée (en jours) avant l'alerte sur les événements planifiés (événements agenda) non encore terminés +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolérance retardée (en jours) avant l'alerte sur le projet non fermé dans le temps +Delays_MAIN_DELAY_TASKS_TODO=Tolérance retardée (en jours) avant l'alerte sur les tâches planifiées (tâches du projet) non complétées encore +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolérance de retard (en jours) avant l'alerte sur les commandes non traitées encore +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolérance de retard (en jours) avant l'alerte sur les commandes des fournisseurs non encore traitées Delays_MAIN_DELAY_EXPENSEREPORTS=Tolérance de retard (en jours) avant alerte pour les rapports de dépenses à approuver -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Les autres entrées de configuration gèrent des paramètres facultatifs. -LogEvents=Événements d'audit de sécurité -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Nom du navigateur -BrowserOS=OS du navigateur -ListOfSecurityEvents=Liste des événements de sécurité Dolibarr -SecurityEventsPurged=Evenement de sécurité purgés -LogEventDesc=Vous pouvez activer ici, la journalisation des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu Outils systèmes - Audit. Attention, cette fonctionnalité peut générer un gros volume de données. -AreaForAdminOnly=Ces fonctions ne sont accessibles qu'aux administrateurs. -SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement. -SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=Vous pouvez choisir ici tous les paramètres liés à l'apparence de Dolibarr -AvailableModules=Modules disponibles -ToActivateModule=Pour activer des modules, aller dans l'espace Configuration (Accueil->Configuration->Modules). -SessionTimeOut=Délai expiration des sessions -SessionExplanation=Ce nombre garanti que la session n'expire pas avant ce délai, lorsque le nettoyage des sessions est assurés par le mécanisme de nettoyage interne à PHP (et aucun autre). Le nettoyage interne de sessions PHP ne garantie pas que la session expire juste au moment de ce délai. Elle expirera après ce délai, mais au moment du nettoyage des sessions, qui a lieu toutes les %s/%s accès environ, mais uniquement lors d'accès fait par d'autres sessions.
Note : sur certains serveurs munis d'un mécanisme de nettoyage de session externe (cron sous Debian, Ubuntu…), le sessions peuvent être détruites après un délai, défini par la valeur par défaut de session.gc_maxlifetime, quelle que soit la valeur saisie ici. -TriggersAvailable=Déclencheurs disponibles -TriggersDesc=Les déclencheurs sont des fichiers qui, une fois déposés dans le répertoire htdocs/core/triggers, modifient le comportement du workflow de Dolibarr. Ils réalisent des actions supplémentaires, déclenchées par les événements Dolibarr (création société, validation facture, clôture contrat…). -TriggerDisabledByName=Déclencheurs de ce fichier désactivés par le suffix -NORUN dans le nom du fichier. -TriggerDisabledAsModuleDisabled=Déclencheurs de ce fichier désactivés car le module %s n'est pas actif. -TriggerAlwaysActive=Déclencheurs de ce fichier toujours actifs, quels que soient les modules Dolibarr activés. -TriggerActiveAsModuleActive=Déclencheurs de ce fichier actifs car le module %s est actif. -GeneratedPasswordDesc=Definissez ici quelle règle vous voulez utiliser pour générer les mots de passe quand vous demandez à fabriquer un nouveau mot de passe -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Configuration des limites et précisions -LimitsDesc=Vous pouvez définir ici les limites, précisions et optimisations utilisées par Dolibarr -MAIN_MAX_DECIMALS_UNIT=Nombre de décimales maximum pour les prix unitaires -MAIN_MAX_DECIMALS_TOT=Nombre de décimales maximum pour les prix totaux -MAIN_MAX_DECIMALS_SHOWN=Nombre de décimales maximum pour les montant affichés à l'écran (Mettre ... après ce nombre max si vous voulez voir ... quand le nombre est tronqué à l'affichage écran) +SetupDescription1=La zone de configuration est pour les paramètres de configuration initiale avant de commencer à utiliser Dolibarr. +SetupDescription2=Les deux étapes d'installation obligatoires sont les deux premières dans le menu de configuration à gauche: %s page de configuration et %s page de configuration: +SetupDescription3=Les paramètres du menu %s -> %s sont nécessaires car les données définies sont utilisées sur les écrans Dolibarr et pour personnaliser le comportement par défaut du logiciel (par exemple pour les fonctions liées au pays). +SetupDescription4=Les paramètres du menu %s -> %s sont requis car Dolibarr ERP / CRM est une collection de plusieurs modules / applications, tous plus ou moins indépendants. De nouvelles fonctionnalités seront ajoutées aux menus pour chaque module que vous allez activer. +InfoDolibarr=À propos de Dolibarr +InfoBrowser=À propos du navigateur +InfoWebServer=À propos du serveur Web +InfoPHP=À propos de PHP +InfoPerf=À propos des performances +AreaForAdminOnly=Les paramètres d'installation peuvent être définis par utilisateurs d'administrateur uniquement. +CompanyFundationDesc=Modifier sur cette page toutes les informations connues de l'entreprise ou de la fondation que vous devez gérer (Pour cela, cliquez sur le bouton "Modifier" ou "Enregistrer" au bas de la page) +DictionaryDesc=Insérez toutes les données de référence. Vous pouvez ajouter vos valeurs par défaut. +ConstDesc=Cette page vous permet de modifier tous les autres paramètres non disponibles dans les pages précédentes. Ce sont principalement des paramètres réservés pour les développeurs ou le dépannage avancé. Pour une liste d'options check here . +MiscellaneousDesc=Tous les autres paramètres liés à la sécurité sont définis ici. MAIN_ROUNDING_RULE_TOT=Taille du pas des arrondis (pour les très rares pays qui arrondissent sur une autre base que la base 10) UnitPriceOfProduct=Prix unitaire (no tax) d'un produit TotalPriceAfterRounding=Prix total (no tax/TPS/TVH/tx incl.) après arrondis -ParameterActiveForNextInputOnly=Paramètre effectif pour les prochaines saisies uniquement -NoEventOrNoAuditSetup=Aucun événement d'audit de sécurité n'a été enregistré. Ceci peut être normal si l'audit n'a pas été activé dans la configuration - sécurité - audit. -NoEventFoundWithCriteria=Aucun événement d'audit de sécurité trouvé avec ces critères. -SeeLocalSendMailSetup=Voir la configuration locale de sendmail -BackupDesc=Pour réaliser une sauvegarde complète de Dolibarr, vous devez : BackupDesc2=Enregistrer le contenu du répertoire de documents (%s) qui contient tous les fichiers téléchargés et générés ( Donc, il inclut tous les fichiers de sauvegarde générés à l'étape 1). -BackupDesc3=Sauvez le contenu de votre base de données (%s) dans un fichier « dump ». Pour cela vous pouvez utiliser l'assistant ci-dessous. -BackupDescX=Le répertoire archivé devra être placé en lieu sûr. -BackupDescY=Le fichier « dump » généré devra être placé en lieu sûr. -BackupPHPWarning=La sauvegarde n'est pas garantie avec cette méthode. Préférez la méthode précédente. -RestoreDesc=Pour restaurer une sauvegarde de Dolibarr, vous devez : -RestoreDesc2=Restaurez le fichier archive (fichier zip par exemple) du répertoire documents en extrayant l'arborescence dans le répertoire documents d'une nouvelle installation de Dolibarr ou dans le répertoire documents de cette installation (%s). -RestoreDesc3=Restaurez les données, depuis le fichier « dump » de sauvegarde, dans la base de données d'une nouvelle installation de Dolibarr ou de cette instance en cours (%s). Attention, une fois la restauration faite, il faudra utiliser un identifiant/mot de passe administrateur existant à l'époque de la sauvegarde pour se connecter. Pour restaurer la base dans l'installation actuelle, vous pouvez utiliser l'assistant suivant. -RestoreMySQL=Importation MySQL -ForcedToByAModule= Cette règle est forcée à %s par un des modules activés -PreviousDumpFiles=Fichiers de sauvegarde de la base de données disponibles -WeekStartOnDay=Premier jour de la semaine -RunningUpdateProcessMayBeRequired=Le lancement du processus de mise à jour semble requis (La version des programmes %s diffère de la version de la base %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=Vous devez exécuter la commande sous un terminal après vous être identifié avec le compte %s ou ajouter -W à la fin de la commande pour fournir le mot de passe de %s. -YourPHPDoesNotHaveSSLSupport=Fonctions SSL non présentes dans votre PHP -DownloadMoreSkins=Plus de thèmes à télécharger -SimpleNumRefModelDesc=Renvoie le numéro sous la forme %syymm-nnnn où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0. -ShowProfIdInAddress=Afficher l'identifiant professionnel dans les adresses sur les documents -ShowVATIntaInAddress=Cacher l'identifiant de TVA Intracommunautaire dans les adresses sur les documents -TranslationUncomplete=Traduction partielle -MAIN_DISABLE_METEO=Désactiver la vue météo -TestLoginToAPI=Tester connexion à l'API -ProxyDesc=Certaines fonctions de Dolibarr nécessitent que le serveur ait accès à internet. Définissez ici les paramètres de ces accès. Si le serveur Dolibarr est derrière un proxy, ces paramètres indiquent à Dolibarr comment le traverser. -ExternalAccess=Accès externes -MAIN_PROXY_USE=Utiliser un serveur proxy mandataire (sinon accès direct à internet) -MAIN_PROXY_HOST=Nom/Adresse du serveur proxy mandataire -MAIN_PROXY_PORT=Port du serveur proxy mandataire -MAIN_PROXY_USER=Identifiant pour passer le serveur proxy mandataire -MAIN_PROXY_PASS=Mot de passe pour passer le serveur proxy mandataire -DefineHereComplementaryAttributes=Définissez ici la liste des attributs supplémentaires, non disponibles en standard, et que vous voulez voir gérer sur les %s. -ExtraFields=Attributs supplémentaires -ExtraFieldsLines=Attributs supplémentaires (lignes) -ExtraFieldsSupplierOrdersLines=Attributs supplémentaires (lignes de commandes) -ExtraFieldsSupplierInvoicesLines=Attributs supplémentaires (lignes de factures) -ExtraFieldsThirdParties=Attributs supplémentaires (tiers) -ExtraFieldsContacts=Attributs supplémentaires (contacts/adresses) -ExtraFieldsMember=Attributs supplémentaires (adhérents) -ExtraFieldsMemberType=Attributs supplémentaires (type d'adhérents) -ExtraFieldsCustomerInvoices=Attributs supplémentaires (factures) -ExtraFieldsSupplierOrders=Attributs supplémentaires (commandes) -ExtraFieldsSupplierInvoices=Attributs supplémentaires (factures) -ExtraFieldsProject=Attributs supplémentaires (projets) -ExtraFieldsProjectTask=Attributs supplémentaires (tâches) -ExtraFieldHasWrongValue=L'attribut %s a une valeur incorrecte. -AlphaNumOnlyLowerCharsAndNoSpace=uniquement des caractères alphanumériques et en minuscule sans espace -SendmailOptionNotComplete=Attention, sur certains systèmes Linux, avec cette méthode d'envoi, pour pouvoir envoyer des emails en votre nom, la configuration d'exécution de sendmail doit contenir l'option -ba (paramètre mail.force_extra_parameters dans le fichier php.ini). Si certains de vos destinataires ne reçoivent pas de message, essayer de modifier ce paramètre PHP avec mail.force_extra_parameters = -ba. -PathToDocuments=Chemin d'accès aux documents -PathDirectory=Répertoire -SendmailOptionMayHurtBuggedMTA=La fonction d'envoi de mails par la méthode "PHP mail directe" génère un message mail qui peut être mal interprété par certains serveurs mal configurés de réception de mail. Cela se traduit par des mails non lisibles chez les personnes hébergés par ces plateformes boguées. C'est le cas des clients de certains fournisseurs d'accès internet (Ex: Orange). Ce n'est pas un problème, ni dans Dolibarr ni dans PHP mais sur le serveur de réception. Vous pouvez toutefois ajouter l'option MAIN_FIX_FOR_BUGGED_MTA à 1 dans configuration - divers pour modifier Dolibarr afin de compenser le bug. Toutefois ce sont les serveurs respectueux du standard d'envoi de mail qui pourront avoir des problèmes. L'autre solution (recommandée) est d'utiliser la méthode d'envoi SMTP socket library qui n'a aucun de ces inconvénients. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Nombre total de modules de fonction activés : %s / %s -YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité -ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP -YesInSummer=Oui en été -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Stockage des sessions chiffrées par Suhosin -ConditionIsCurrently=La condition est actuellement %s -YouUseBestDriver=Vous utilisez le driver %s qui est le driver recommandé actuellement. -YouDoNotUseBestDriver=Vous utilisez le driver %s mais le driver %s est recommandé. -NbOfProductIsLowerThanNoPb=Vous n'avez que %s produits/services en base. Ceci ne requiert pas d'optimisation particulière. -SearchOptim=Optimization des recherches -YouHaveXProductUseSearchOptim=Vous avez %s produits/services en base. Il est recommandé d'ajouter la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Accueil-Configuration-Divers, vous limiterez ainsi la recherche au début de la chaine rendant possible l'utilisation de l'index et obtiendrez une réponse immédiate. -BrowserIsOK=Vous utilisez le navigateur %s. Ce navigateur est réputé optimisé pour la sécurité et performance. -BrowserIsKO=Vous utilisez le navigateur %s. Ce navigateur est déconseillé pour des raisons de sécurité, performance et qualité des pages restituées. Nous vous recommandons d'utiliser Firefox, Chrome, Opera ou Safari. -XDebugInstalled=XDebug est chargé. -XCacheInstalled=XCache est chargé. -AddRefInList=Afficher les références client/fournisseur dans les listes (listes déroulantes ou à autocomplétion) et les libellés des liens clicables. Les tiers apparaîtront alors sous la forme "CC12345 - SC45678 - La big company coorp", au lieu de "La big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Édition du champ %s -FillThisOnlyIfRequired=Exemple: +2 (ne remplir que si un décalage d'heure est constaté dans l'export) -GetBarCode=Récupérer code barre -##### Module password generation -PasswordGenerationStandard=Renvoie un mot de passe généré selon l'algorithme interne de Dolibarr : 8 caractères, chiffres et caractères en minuscules mélangés. +TranslationKeySearch=Rechercher une clé ou une chaîne de traduction +TranslationOverwriteKey=Ecraser une chaîne de traduction +TranslationDesc=Comment définir la langue de l'application affichée:
* Systemwide: menu Accueil - Configuration - Affichage
* Par utilisateur: Affichage de l'utilisateur onglet de la carte utilisateur (cliquez sur Nom d'utilisateur en haut de l'écran). +TranslationOverwriteDesc=Vous pouvez également remplacer les chaînes en remplissant le tableau suivant. Choisissez votre langue dans le menu déroulant "%s", insérez la chaîne de traduction dans "%s" et votre nouvelle traduction dans "%s" +TranslationString=Chaîne de traduction +WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est requis au moins pour une clé ou une chaîne de traduction +NewTranslationStringToShow=Nouvelle chaîne de traduction à afficher +OriginalValueWas=La traduction originale est écrasée. La valeur d'origine était:

%s +TransKeyWithoutOriginalValue=Vous avez forcé une nouvelle traduction pour la clé de traduction '%s' qui n'existe pas dans aucun fichier de langue +TotalNumberOfActivatedModules=Application / modules activés: %s / %s +OnlyFollowingModulesAreOpenedToExternalUsers=Remarque, seuls les modules suivants sont ouverts aux utilisateurs externes (quelle que soit l'autorisation de ces utilisateurs) et uniquement si les autorisations ont été accordées: +AskForPreferredShippingMethod=Demandez la méthode d'envoi préférée pour les tiers. PasswordGenerationNone=Aucune suggestion de mot de passe généré . Le mot de passe doit être saisi manuellement. PasswordGenerationPerso=Retour un mot de passe en fonction de votre configuration personnellement défini. -SetupPerso=Selon votre configuration PasswordPatternDesc=Description du modèle de mot de passe -##### Users setup ##### -RuleForGeneratedPasswords=Règle pour la génération des mots de passe proposés et leur validation -DisableForgetPasswordLinkOnLogonPage=Ne pas afficher le lien "Mot de passe oublié" sur la page de connexion -UsersSetup=Configuration du module utilisateurs -UserMailRequired=Email requis pour créer un nouvel utilisateur -##### HRM setup ##### HRMSetup=Configuration du module de GRH -##### Company setup ##### -CompanySetup=Configuration du module Tiers -CompanyCodeChecker=Modèle de génération et contrôle des codes tiers (clients/fournisseurs) -AccountCodeManager=Modèle de génération des codes comptable (clients/fournisseurs) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Modèle de documents -DocumentModelOdt=Génération depuis des modèles OpenDocument (Fichier .ODT ou .ODS OpenOffice, KOffice, TextEdit…) -WatermarkOnDraft=Filigrane sur les documents brouillons -JSOnPaimentBill=Activer la fonctionnalité de remplissage automatique des lignes de paiement sur le formulaire de paiement -CompanyIdProfChecker=Règles sur les Identifiants professionnels -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=Un lien d'exportation du calendrier au format %s sera disponible à l'url :
%s -##### Invoices ##### -BillsSetup=Configuration du module Factures -BillsNumberingModule=Modèle de numérotation des factures et avoirs -BillsPDFModules=Modèle de document de factures -CreditNote=Avoir -CreditNotes=Avoirs -ForceInvoiceDate=Forcer la date de facturation à la date de validation -SuggestedPaymentModesIfNotDefinedInInvoice=Mode de paiement suggéré par défaut si non défini au niveau de la facture -SuggestPaymentByRIBOnAccount=Proposer paiement par virement sur le compte -SuggestPaymentByChequeToAddress=Proposer paiement par chèque à l'ordre et adresse de -FreeLegalTextOnInvoices=Mention complémentaire sur les factures -WatermarkOnDraftInvoices=Filigrane sur les brouillons de factures (aucun si vide) +NotificationsDesc=La fonction de notification des messages électroniques vous permet d'envoyer automatiquement un courrier automatique pour certains événements Dolibarr. Les cibles des notifications peuvent être définies: +NotificationsDescUser=* Par utilisateur, un utilisateur à l'heure. +NotificationsDescContact=* Par les contacts de tiers (clients ou fournisseurs), un contact à l'heure. +NotificationsDescGlobal=* Ou en définissant des emails de cible globaux dans la page de configuration du module. +MustBeUnique=Doit être unique? +MustBeMandatory=Obligatoire de créer des tiers? +MustBeInvoiceMandatory=Obligatoire de valider les factures? +PaymentsPDFModules=Modèles de documents de paiement PaymentsNumberingModule=Modèles de numérotation des paiements -SuppliersPayment=Règlements fournisseurs -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Configuration du module Propositions Commerciales -ProposalsNumberingModules=Modèles de numérotation des propositions commerciales -ProposalsPDFModules=Modèles de documents de propositions commerciales -FreeLegalTextOnProposal=Mention complémentaire sur les propositions commerciales -WatermarkOnDraftProposal=Filigrane sur les brouillons de propositions commerciales (aucun si vide) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Saisir le compte bancaire cible lors de la proposition commerciale -##### SupplierProposal ##### +SupplierPaymentSetup=Configuration des paiements des fournisseurs SupplierProposalSetup=Configuration du module de ​​demande de prix des fournisseurs -SupplierProposalNumberingModules=Modèles de numérotation des demandes de prix des fournisseurs -SupplierProposalPDFModules=Modèles des documents des demandes de prix des fournisseurs +SupplierProposalNumberingModules=Modèles de numérotation des demandes de prix des fournisseurs +SupplierProposalPDFModules=Modèles des documents des demandes de prix des fournisseurs FreeLegalTextOnSupplierProposal=Texte libre sur les demandes de prix fournisseurs WatermarkOnDraftSupplierProposal=Filigrane sur le projet de prix demande des fournisseurs (si aucun laisser vide) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Demandez compte bancaire de destination pour les demandes de prix WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Demandez une source d'entrepôt pour l'ordre -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Configuration du module Commandes -OrdersNumberingModules=Modèles de numérotation des commandes -OrdersModelModule=Modèles de document des commandes -FreeLegalTextOnOrders=Mention complémentaire sur les commandes -WatermarkOnDraftOrders=Filigrane sur les brouillons de commandes (aucun si vide) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Demandez la destination du compte bancaire de l'ordre fournisseur ShippableOrderIconInList=Ajouter un icône dans la liste des commandes qui indique si la commande est expédiable. -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Demander le compte bancaire cible durant la commande -##### Interventions ##### -InterventionsSetup=Configuration du module Interventions -FreeLegalTextOnInterventions=Mention complémentaire sur les fiches d'intervention -FicheinterNumberingModules=Modèles de numérotation des fiches d'intervention -TemplatePDFInterventions=Modèles de document des fiches d'intervention -WatermarkOnDraftInterventionCards=Filigrane sur les brouillons des fiches d'intervention (aucun si vide) -##### Contracts ##### -ContractsSetup=Configuration du module Contrats/Abonnements -ContractsNumberingModules=Modèles de numérotation des contrats -TemplatePDFContracts=Modèles de document de contrats -FreeLegalTextOnContracts=Mention complémentaire sur les contrats -WatermarkOnDraftContractCards=Filigrane sur les brouillons de contrats (aucun si vide) -##### Members ##### -MembersSetup=Configuration du module Adhérents -MemberMainOptions=Options principales -AdherentLoginRequired= Gérer un identifiant pour chaque adhérent -AdherentMailRequired=Email obligatoire pour créer un nouvel adhérent -MemberSendInformationByMailByDefault=Case à cocher pour envoyer un email de confirmation (validation ou nouvelle cotisation) aux adhérents est à oui par défaut. -##### LDAP setup ##### -LDAPSetup=Configuration du module LDAP -LDAPGlobalParameters=Paramètres globaux -LDAPUsersSynchro=Utilisateurs -LDAPGroupsSynchro=Groupes -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Adhérents -LDAPSynchronization=Synchronisation LDAP -LDAPFunctionsNotAvailableOnPHP=Les fonctions LDAP ne sont pas disponibles sur votre PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Clé dans LDAP -LDAPSynchronizeUsers=Organisation des objets utilisateurs dans le LDAP -LDAPSynchronizeGroups=Organisation des objets groupes dans le LDAP -LDAPSynchronizeContacts=Organisation des objets contacts dans le LDAP -LDAPSynchronizeMembers=Organisation des objets adhérents dans le LDAP -LDAPPrimaryServer=Serveur primaire -LDAPSecondaryServer=Serveur secondaire -LDAPServerPort=Port du serveur -LDAPServerPortExample=Port par défaut : 389 -LDAPServerProtocolVersion=Version du protocole -LDAPServerUseTLS=Utiliser TLS -LDAPServerUseTLSExample=Votre serveur utilise le TLS -LDAPServerDn=DN du serveur -LDAPAdminDn=DN de l'administrateur -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Mot de passe de l'administrateur -LDAPUserDn=DN des utilisateurs -LDAPUserDnExample=DN complet (ex : ou=users,dc=my-domain,dc=com) -LDAPGroupDn=DN des groupes -LDAPGroupDnExample=DN complet (ex : ou=groups,dc=my-domain,dc=com) -LDAPServerExample=Adresse du serveur (ex : localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=DN complet (ex : dc=my-domain,dc=com) -LDAPDnSynchroActive=Synchronisation des utilisateurs et groupes -LDAPDnSynchroActiveExample=Synchronisation de LDAP vers Dolibarr ou Dolibarr vers LDAP -LDAPDnContactActive=Synchronisation des contacts -LDAPDnContactActiveExample=Synchronisation activée/désactivée -LDAPDnMemberActive=Synchronisation des adhérents -LDAPDnMemberActiveExample=Synchronisation activée/désactivée -LDAPContactDn=DN des contacts Dolibarr -LDAPContactDnExample=DN complet (ex : ou=contacts,dc=my-domain,dc=com) -LDAPMemberDn=DN des adhérents -LDAPMemberDnExample=DN complet (ex : ou=members,dc=society,dc=com) -LDAPMemberObjectClassList=Liste des objectClass -LDAPMemberObjectClassListExample=Liste des objectClass définissant les attributs d'un enregistrement (ex : top,inetOrgPerson ou top,user for active directory) -LDAPUserObjectClassList=Liste des objectClass -LDAPUserObjectClassListExample=Liste des objectClass définissant les attributs d'un enregistrement (ex : top,inetOrgPerson ou top,user for active directory) -LDAPGroupObjectClassList=Liste des objectClass -LDAPGroupObjectClassListExample=Liste des objectClass définissant les attributs d'un enregistrement (ex : top,groupOfUniqueNames) -LDAPContactObjectClassList=Liste des objectClass -LDAPContactObjectClassListExample=Liste des objectClass définissant les attributs d'un enregistrement (ex : top,inetOrgPerson ou top,user for active directory) -LDAPTestConnect=Tester la connexion LDAP -LDAPTestSynchroContact=Tester synchronisation contacts -LDAPTestSynchroUser=Tester synchronisation utilisateur -LDAPTestSynchroGroup=Tester synchronisation groupe -LDAPTestSynchroMember=Tester synchronisation adhérent -LDAPTestSearch= Tester une recherche LDAP -LDAPSynchroOK=Test de synchronisation réalisé avec succès -LDAPSynchroKO=Échec du test de synchronisation -LDAPSynchroKOMayBePermissions=Échec du test de synchronisation. Vérifier que la connexion au serveur est correctement configurée et permet les mises à jour LDAP -LDAPTCPConnectOK=Connexion TCP au serveur LDAP réussie (Serveur=%s, Port=%s) -LDAPTCPConnectKO=Connexion TCP au serveur LDAP échouée (Serveur=%s, Port=%s) -LDAPBindOK=Connection/Authentification au serveur LDAP réussie (Serveur=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connexion/Authentification au serveur LDAP échouée (Serveur=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=Serveur LDAP configuré en version 3 -LDAPSetupForVersion2=Serveur LDAP configuré en version 2 -LDAPDolibarrMapping=Mapping Dolibarr -LDAPLdapMapping=Mapping LDAP -LDAPFieldLoginUnix=Identifiant (unix) -LDAPFieldLoginExample=Exemple : uid -LDAPFilterConnection=Filtre de recherche -LDAPFilterConnectionExample=Exemple : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Identifiant (samba, activedirectory) -LDAPFieldLoginSambaExample=Exemple : samaccountname -LDAPFieldFullname=Prénom Nom -LDAPFieldFullnameExample=Exemple : cn -LDAPFieldPasswordNotCrypted=Mot de passe non chiffré -LDAPFieldPasswordCrypted=Mot de passe chiffré -LDAPFieldPasswordExample=Exemple : userPassword -LDAPFieldCommonNameExample=Exemple : cn -LDAPFieldName=Nom -LDAPFieldNameExample=Exemple : sn -LDAPFieldFirstName=Prénom -LDAPFieldFirstNameExample=Exemple : givenName -LDAPFieldMail=Email -LDAPFieldMailExample=Exemple : email -LDAPFieldPhone=Téléphone professionnel -LDAPFieldPhoneExample=Exemple : telephonenumber -LDAPFieldHomePhone=Téléphone perso -LDAPFieldHomePhoneExample=Exemple : homephone -LDAPFieldMobile=Téléphone portable -LDAPFieldMobileExample=Exemple : mobile -LDAPFieldFax=Fax -LDAPFieldFaxExample=Exemple : facsimiletelephonenumber -LDAPFieldAddress=Adresse -LDAPFieldAddressExample=Exemple : street -LDAPFieldZip=Code postal -LDAPFieldZipExample=Exemple : postalcode -LDAPFieldTown=Ville -LDAPFieldTownExample=Exemple : l -LDAPFieldCountry=Pays -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Exemple : description -LDAPFieldNotePublic=Note publique -LDAPFieldNotePublicExample=Exemple : publicnote -LDAPFieldGroupMembers= Membres du groupe -LDAPFieldGroupMembersExample= Exemple : uniqueMember -LDAPFieldBirthdate=Date de naissance -LDAPFieldCompany=Société -LDAPFieldCompanyExample=Exemple : o -LDAPFieldSid=SID -LDAPFieldSidExample=Exemple : objectsid -LDAPFieldEndLastSubscription=Date de fin de validité adhésion -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Exemple: title -LDAPSetupNotComplete=Configuration LDAP incomplète (à compléter sur les autres onglets) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Administrateur ou mot de passe non renseigné. Les accès LDAP seront donc anonymes et en lecture seule. -LDAPDescContact=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des contacts Dolibarr. -LDAPDescUsers=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des utilisateurs Dolibarr. -LDAPDescGroups=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des groupes utilisateurs Dolibarr. -LDAPDescMembers=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des membres du module adhérents Dolibarr. -LDAPDescValues=Les valeurs exemples sont adaptées à OpenLDAP avec les schémas suivant chargés: core.schema, cosine.schema, inetorgperson.schema). Si vous utilisez les valeurs suggérées et OpenLDAP, modifiez votre fichier de configuration LDAP slapd.conf pour avoir tous ces schémas actifs. -ForANonAnonymousAccess=Pour un accès authentifié (pour accès en écriture par exemple) -PerfDolibarr=Rapport de configuration/optimisation sur la performance -YouMayFindPerfAdviceHere=Sur cette page vous trouverez quelques indicateurs ou conseils pour optimiser la performance. -NotInstalled=Non installé, aussi votre serveur n'est pas ralentit par cela. -ApplicativeCache=Cache applicatif -MemcachedNotAvailable=Aucun cache applicatif trouvé. Vous pouvez accélérer les performances de Dolibarr en installant un serveur de cache Memcached et un module de cache applicatif exploitant ce serveur.
Plus d'info sur la page
http://wiki.dolibarr.org/index.php/Module_MemCached. Notez que de nombreux hébergeurs low-cost ne fournissent pas de tels serveurs de cache dans leur infrastructure. -MemcachedModuleAvailableButNotSetup=Le module memcached pour le cache applicatif a été trouvé mais la configuration de ce module n'est pas complète. -MemcachedAvailableAndSetup=Le module memcached dédié à l'utilisation du serveur de cache memcached est activé. -OPCodeCache=Cache OPCode -NoOPCodeCacheFound=Pas de cache OPCode trouvé. Peut-être utilisez-vous un cache OPCode différent de XCache ou eAccelerator (bien), peut-être n'avez vous pas du tout de cache OPCode (très mauvais). -HTTPCacheStaticResources=Cache HTTP des ressources statiques (css, img, javascript) -FilesOfTypeCached=Fichiers de type %s mis en cache par le serveur HTTP -FilesOfTypeNotCached=Fichiers de type %s non mis en cache par le serveur HTTP -FilesOfTypeCompressed=Fichiers de type %s compressé par le serveur HTTP -FilesOfTypeNotCompressed=Fichiers de type %s non compressé par le serveur HTTP -CacheByServer=Cache par le serveur -CacheByClient=Cache par le navigateur -CompressionOfResources=Compression des réponses HTTP -TestNotPossibleWithCurrentBrowsers=Une détection automatique n'est pas possible avec le navigateur courant -##### Products ##### -ProductSetup=Configuration du module Produits -ServiceSetup=Configuration du module Services -ProductServiceSetup=Configuration des modules Produits et Services -NumberOfProductShowInSelect=Nombre maximum de produits dans les listes déroulantes (0=aucune limite) -ViewProductDescInFormAbility=Visualisation des descriptions produits dans les formulaires (sinon en tant que bulle d'aide) +LDAPAdminDnExample=DN complet (ex: cn = admin, dc = exemple, dc = com ou cn = Administrateur, cn = Utilisateurs, dc = exemple, dc = com pour le répertoire actif) +LDAPFieldTitle=Poste +CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image / gif A2592000" +DefaultValuesDesc=Vous pouvez définir / forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et / ou défairez les filtres ou le tri lors de votre liste. +DefaultSearchFilters=Filtres de recherche par défaut +DefaultSortOrder=Ordres de tri par défaut +DefaultFocus=Champs de mise au point par défaut MergePropalProductCard=Activez dans le produit/service, l'option onglet de fichiers attachés pour fusionner le produit PDF le document à la proposition PDF azur si le produit/service est dans la proposition -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Si vous avez un nombre important de produits (>100 000), vous pourrez améliorer les performances en positionnant la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Type de code-barre utilisé par défaut pour les produits -SetDefaultBarcodeTypeThirdParties=Type de code-barre utilisé par défaut pour les tiers +ViewProductDescInThirdpartyLanguageAbility=Visualisation des descriptions de produits dans la langue de tiers +UseSearchToSelectProduct=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des combo du produit (cela peut augmenter les performances si vous avez un grand nombre de produits, mais cela est moins pratique) UseUnits=Définir une unité de mesure pour la quantité lors de la commande, l'édition de la proposition ou les lignes de facture -ProductCodeChecker= Modèles de numérotation des produits / services -ProductOtherConf= Paramètres des produits / services IsNotADir=n'est pas un répertoire -##### Syslog ##### -SyslogSetup=Configuration du module Journaux et traces -SyslogOutput=Sortie des journaux -SyslogFacility=Facility -SyslogLevel=Niveau -SyslogFilename=Nom et chemin du fichier -YouCanUseDOL_DATA_ROOT=Vous pouvez utiliser DOL_DATA_ROOT/dolibarr.log pour un journal dans le répertoire "documents" de Dolibarr. Vous pouvez néanmoins définir un chemin différent pour stocker ce fichier. -ErrorUnknownSyslogConstant=La constante %s n'est pas une constante syslog connue -OnlyWindowsLOG_USER=Windows ne prend en charge que LOG_USER -##### Donations ##### -DonationsSetup=Configuration du module Dons -DonationsReceiptModel=Modèles de reçu de dons -##### Barcode ##### -BarcodeSetup=Configuration des codes-barres -PaperFormatModule=Modules format d'impression -BarcodeEncodeModule=Modules d'encodage des codes-barres -CodeBarGenerator=Générateur graphique -ChooseABarCode=Aucun générateur sélectionné -FormatNotSupportedByGenerator=Format non géré par ce générateur -BarcodeDescEAN8=code-barres de type EAN8 -BarcodeDescEAN13=code-barres de type EAN13 -BarcodeDescUPC=code-barres de type UPC -BarcodeDescISBN=code-barres de type ISBN -BarcodeDescC39=code-barres de type C39 -BarcodeDescC128=code-barres de type C128 BarcodeDescDATAMATRIX=Codebarre de type Datamatrix BarcodeDescQRCODE=Codebarre de type QRcode -GenbarcodeLocation=Outil de génération de code-barres en ligne de commande (utilisé par le moteur interne pour certains types de codes-barres). Doit être compatible avec "genbarcode".
Par exemple: /usr/local/bin/genbarcode -BarcodeInternalEngine=Moteur interne -BarCodeNumberManager=Gestionnaire pour la génération automatique de numéro de code-barre -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=Configuration des imports de flux RSS -NewRSS=Syndication d'un nouveau flux RSS -RSSUrl=URL RSS -RSSUrlExample=Mon flux RSS -##### Mailing ##### -MailingSetup=Configuration du module Emailing -MailingEMailFrom=Email émetteur (From) des emails envoyés par Emailing -MailingEMailError=Email retour (Errors-to) pour les réponses lors des envois par Emailing en erreur -MailingDelay=Temps d'attente, en seconde, avant d'envoyer le prochain message -##### Notification ##### -NotificationSetup=Configuration du module notification par email -NotificationEMailFrom=Adresse émettrice (From) des emails envoyés lors des notifications -FixedEmailTarget=Email fixe cible destinataires -##### Sendings ##### -SendingsSetup=Configuration du module Expédition/Livraison -SendingsReceiptModel=Modèles de bordereau d'expédition -SendingsNumberingModules=Modèles de numérotation des expéditions +WithdrawalsSetup=Configuration du module Ordres de paiement de débit direct SendingsAbility=Fiches d'expédition de soutien pour les livraisons aux clients -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Mention complémentaire sur les expéditions -##### Deliveries ##### -DeliveryOrderNumberingModules=Modèle de numérotation des bons de réception client -DeliveryOrderModel=Modèle de bon de réception client -DeliveriesOrderAbility=Prise en charge des bons de réception client -FreeLegalTextOnDeliveryReceipts=Mention complémentaire sur les bons de réception -##### FCKeditor ##### -AdvancedEditor=Editeur avancé -ActivateFCKeditor=Activer l'éditeur avancé pour : -FCKeditorForCompany=Création/édition WYSIWIG de la description et note des éléments (autre que produits/services) -FCKeditorForProduct=Création/édition WYSIWIG de la description et note des produits/services -FCKeditorForProductDetails=Création/édition WYSIWIG des lignes détails produits sur tous les éléments (commandes, propales, factures, etc...). Attention: L'utilisation pour ce cas est fortement déconseillée car peut poser des problèmes dans la gestion de caractères et mise en page des fichiers PDF générés. -FCKeditorForMailing= Création/édition WYSIWIG des emailings (Outils->Emailings) -FCKeditorForUserSignature=Création/édition WYSIWIG de la signature des utilisateurs -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=La connexion a réussi mais la base ne semble pas être une base OSCommerce (clé %s non trouvée dans la table %s). -OSCommerceTestOk=La connexion au serveur '%s' sur la base '%s' par l'utilisateur '%s' a réussi. -OSCommerceTestKo1=La connexion au serveur '%s' a réussi mais la base '%s' n'a pu être atteinte. -OSCommerceTestKo2=La connexion au serveur '%s' par l'utilisateur '%s' à échoué. -##### Stock ##### -StockSetup=Configuration du module Entrepôt -IfYouUsePointOfSaleCheckModule=Si vous utilisez un module Point de Vente (module POS fourni par défaut ou un autre module externe), cette configuration peut être ignoré par votre module point de vente. La plupart de modules Point de Vente sont conçus pour créer immédiatement une facture et de réduire les stocks par défaut quelles que soient les options ici. Donc, si vous avez besoin ou non d'avoir une diminution du stock lors de l'enregistrement d'une vente dans votre Point de Vente, vérifiez également la configuration de votre module POS. -##### Menu ##### -MenuDeleted=Menu supprimé -Menus=Menus -TreeMenuPersonalized=Menus personnalisés -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=Nouveau menu -Menu=Sélection des menus -MenuHandler=Gestionnaire de menu -MenuModule=Module source -HideUnauthorizedMenu= Masquer les menus non autorisés aussi pour les utilisateurs internes (sinon juste grisés) -DetailId=Identifiant du menu -DetailMenuHandler=Nom du gestionnaire menu dans lequel faire apparaitre le nouveau menu -DetailMenuModule=Nom du module si l'entrée menu est issue d'un module -DetailType=Type de menu (top ou left) -DetailTitre=Libellé du menu ou code libellé à traduire -DetailUrl=URL vers laquelle le menu pointe (Lien URL absolu ou lien externe avec http://) -DetailEnabled=Condition d'affichage ou non -DetailRight=Condition d'affichage plein ou grisé -DetailLangs=Fichier .lang pour la traduction du code libellé -DetailUser=Interne / Externe / Tous -Target=Cible -DetailTarget=Cible liens menu (_blank pour ouvrir une nouvelle fenêtre) -DetailLevel=Niveau (-1:menu haut, 0:entête menu, >0 menu et sous menu) -ModifMenu=Modification du menu -DeleteMenu=Effacer entrée de menu -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? +NoNeedForDeliveryReceipts=Dans la plupart des cas, les feuilles d'expédition sont utilisées à la fois comme feuilles pour les livraisons clients (liste des produits à envoyer) et les feuilles reçues et signées par le client. Donc, les reçus des livraisons de produits sont une fonctionnalité en double et sont rarement activés. +FCKeditorForMail=Création / édition WYSIWIG pour tous les courriers (sauf Outils-> eMailing) +NotTopTreeMenuPersonalized=Menus personnalisés non liés à une entrée de menu supérieure +ConfirmDeleteMenu=Êtes-vous sûr de vouloir supprimer l'entrée du menu %s? FailedToInitializeMenu=Impossible d'initialiser le menu -##### Tax ##### TaxSetup=Configuration du module Taxes, charges sociales et dividendes OptionVatMode=TPS/TVH due -OptionVATDefault=Standard -OptionVATDebitOption=Option services sur Débit OptionVatDefaultDesc=TPS/TVH sur encaissement, l'exigibilité de la TPS/TVH est:
- sur livraison pour les biens (en pratique on utilise la date de facturation)
- sur paiement pour les services OptionVatDebitOptionDesc=TPS/TVH sur débit, l'exigibilité de la TPS/TVH est:
- sur livraison pour les biens (en pratique on utilise la date de facturation)
- sur facturation (débit) pour les services SummaryOfVatExigibilityUsedByDefault=Moment d'exigibilité par défaut de la TPS/TVH pour l'option choisie: -OnDelivery=Sur livraison -OnPayment=Sur paiement -OnInvoice=Sur facture -SupposedToBePaymentDate=Date de paiement utilisée -SupposedToBeInvoiceDate=Date de facture utilisée -Buy=Achat -Sell=Vente -InvoiceDateUsed=Date de facture utilisée -YourCompanyDoesNotUseVAT=Votre institution est configurée comme non assujettie à la TPS/TVH (Accueil - Configuration - Société/Institution), aussi il n'y a aucune option sur la gestion TPS/TVH à paramétrer. -AccountancyCode=Code comptable -AccountancyCodeSell=Code comptable vente -AccountancyCodeBuy=Code comptable achat -##### Agenda ##### -AgendaSetup=Configuration du module actions et agenda -PasswordTogetVCalExport=Clé pour autoriser le lien d'exportation -PastDelayVCalExport=Ne pas exporter les événements de plus de +YourCompanyDoesNotUseVAT=Votre entreprise a été définie pour ne pas utiliser la TVA (Home - Setup - Company / Organization), donc il n'y a pas de TVA pour configurer. AGENDA_USE_EVENT_TYPE=Utilisez les types des évenements (administrable dans Configuration -> Dictionnaires -> Liste des types d'évenements de l'agenda) AGENDA_USE_EVENT_TYPE_DEFAULT=Réglez automatiquement cette valeur par défaut pour le type d'événement dans en événement de lors de la création » -AGENDA_DEFAULT_FILTER_TYPE=Régler automatiquement ce type d'événement dans le filtre de recherche de la vue agenda -AGENDA_DEFAULT_FILTER_STATUS=Régler automatiquement le statut d'événement dans le filtre de recherche de la vue agenda -AGENDA_DEFAULT_VIEW=Quel onglet voulez-vous voir ouvrir par défaut quand on choisit le menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Configuration du module Click To Dial -ClickToDialUrlDesc=URL appelée lors d'un clic sur le pictogramme téléphone. Dans l'URL, vous pouvez utiliser les balises
__PHONETO__ qui sera remplacée par le téléphone de l'appelé
__PHONEFROM__ qui sera remplacée par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)
__LOGIN__ qui sera remplacée par votre identifiant clicktodial (défini sur votre fiche utilisateur)
__PASS__ qui sera remplacée par votre mot de passe clicktodial (défini sur votre fiche utilisateur). +AGENDA_NOTIFICATION=Activer la notification d'événement sur les navigateurs utilisateur lorsque la date d'événement est atteinte (chaque utilisateur peut refuser cela à partir de la question de confirmation du navigateur) +AGENDA_NOTIFICATION_SOUND=Activer la notification sonore +AGENDA_SHOW_LINKED_OBJECT=Afficher l'objet lié dans la vue d'agenda +ClickToDialUrlDesc=Url appelle quand un clic sur le picto du téléphone est terminé. Dans l'URL, vous pouvez utiliser des tags sur __ PHONETO __ qui sera remplacé par le numéro de téléphone de la personne à appeler __ PHONEFROM __ qui sera remplacé par le numéro de téléphone de l'appel Personne (votre)
__ LOGIN __ qui sera remplacé par login clicktodial (défini sur la carte utilisateur)
__ PASS __ qui sera remplacé par le mot de passe clicktodial (défini sur l'utilisateur carte). ClickToDialDesc=Ce module permet de faire des numéros de téléphone cliquable . Un clic sur cette icône fera appel à rendre votre téléphone pour appeler le numéro de téléphone . Cela peut être utilisé pour appeler un système de Dolibarr du centre d'appels qui peut appeler le numéro de téléphone sur un système SIP par exemple. ClickToDialUseTelLink=Utilisez juste un lien "tel: " sur les numéros de téléphone ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur , et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel: " . Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel ) , vous devez définir ce "Non" et remplir champ suivant. -##### Point Of Sales (CashDesk) ##### -CashDesk=Caisse enregistreuse -CashDeskSetup=Configuration du module Point de vente/caisse enregistreuse -CashDeskThirdPartyForSell=Tiers générique à utiliser par défaut pour les ventes -CashDeskBankAccountForSell=Compte par défaut à utiliser pour l'encaissement en liquide -CashDeskBankAccountForCheque= Compte par défaut à utiliser pour l'encaissement en chèque -CashDeskBankAccountForCB= Compte par défaut à utiliser pour l'encaissement en carte de crédit -CashDeskDoNotDecreaseStock=Désactiver la réduction de stocks systématique lorsque une vente se fait à partir du Point de Vente (si «non», la réduction du stock est faite pour chaque vente faite depuis le POS, quelquesoit l'option de changement de stock définit dans le module Stock). -CashDeskIdWareHouse=Forcer et restreindre l'emplacement/entrepôt à utiliser pour la réduction de stock -StockDecreaseForPointOfSaleDisabled=Réduction de stock lors de l'utilisation du Point de Vente désactivée -StockDecreaseForPointOfSaleDisabledbyBatch=La décrémentation de stock depuis ce module Point de Vente n'est pas encore compatible avec la gestion des numéros de lots/série. -CashDeskYouDidNotDisableStockDecease=Vous n'avez pas désactivé la réduction de stocks lors de la réalisation d'une vente depuis le Point de Vente. Aussi, un entrepôt/emplacement est nécessaire. -##### Bookmark ##### -BookmarkSetup=Configuration du module Marque-pages -BookmarkDesc=Ce module vous permet de gérer des liens et raccourcis. Il permet aussi d'ajouter n'importe quelle page de Dolibarr ou lien web dans le menu d'accès rapide sur la gauche. -NbOfBoomarkToShow=Nombre maximum de marques-pages à afficher dans le menu -##### WebServices ##### -WebServicesSetup=Configuration du module Webservices -WebServicesDesc=En activant ce module, Dolibarr devient aussi serveur de web services offrant des web services divers. -WSDLCanBeDownloadedHere=Les descripteurs WSDL des services fournis peuvent être récupéré ici -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### +EndPointIs=Les clients SOAP doivent envoyer leurs demandes au point d'extrémité Dolibarr disponible à l'URL ApiSetup=Configuration du module API ApiDesc=En activant ce module , Dolibarr devenir un serveur REST pour fournir des services Web divers . -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiProductionMode=Activer le mode de production (cela active l'utilisation d'un cache pour la gestion des services) +ApiExporerIs=Vous pouvez explorer et tester les API à l'URL OnlyActiveElementsAreExposed=Seuls les éléments de modules activés sont exposés ApiKey=Clé API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Configuration du module Banque -FreeLegalTextOnChequeReceipts=Mention complémentaire sur les bordereaux de remises de chèques -BankOrderShow=Ordre d'affichage des informations bancaires (pour les pays les détaillant) -BankOrderGlobal=Général -BankOrderGlobalDesc=Ordre d'affichage général -BankOrderES=Espagnol -BankOrderESDesc=Ordre d'affichage Espagnol -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Configuration du module Multi-société -##### Suppliers ##### -SuppliersSetup=Configuration du module Fournisseurs -SuppliersCommandModel=Modèle de commandes fournisseur complet (logo…) -SuppliersInvoiceModel=Modèle de factures fournisseur complet (logo…) -SuppliersInvoiceNumberingModel=Modèles de numérotation des factures fournisseur -IfSetToYesDontForgetPermission=Si positionné sur Oui, n'oubliez pas de donner les permissions aux groupes ou utilisateurs qui auront le droit de cette action. -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=Configuration du module GeoIP Maxmind -PathToGeoIPMaxmindCountryDataFile=Chemin du fichier Maxmind contenant les conversions IP->Pays.
Exemples
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Notez que ce fichier doit être dans un répertoire accessible à votre PHP (Vérifiez le paramètre open_basedir de votre PHP et les permissions du fichier/répertoires). -YouCanDownloadFreeDatFileTo=Vous pouvez télécharger une version démo gratuite de la base Maxmind à l'adresse %s. -YouCanDownloadAdvancedDatFileTo=Vous pouvez aussi télécharger une version plus complète avec mise à jours de la base Maxmind à l'adresse %s. -TestGeoIPResult=Test de conversion IP -> Pays -##### Projects ##### -ProjectsNumberingModules=Modèles de numérotation des références projets -ProjectsSetup=Configuration du module Projets -ProjectsModelModule=Modèles de document de rapport projets -TasksNumberingModules=Modèles de numérotation des références tâches -TaskModelModule=Modèles de document de rapport tâches -UseSearchToSelectProject=Utilisez un champ avec auto-complétion pour choisir les projets (plutôt qu'une liste déroulante). -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Peut toujours être édité -MAIN_APPLICATION_TITLE=Forcer la valeur visible du nom de l'application (attention : positionner ici son propre nom rendra inopérante la fonction de remplissage automatique de l'identifiant lorsque vous utilisez l'application mobile DoliDroid) -NbMajMin=Nombre minimal de caractères majuscules -NbNumMin=Nombre minimal de caractères numériques -NbSpeMin=Nombre minimal de caractères spéciaux -NbIteConsecutive=Nombre maximal de répétition des mêmes caractères -NoAmbiCaracAutoGeneration=Ne pas utiliser des caractères ambigus ("1","l","i","|","0","O") pour la génération automatique +WarningAPIExplorerDisabled=L'explorateur API a été désactivé. L'API Explorer n'est pas nécessaire pour fournir des services API. C'est un outil permettant aux développeurs de trouver / tester des API REST. Si vous avez besoin de cet outil, installez le module API REST pour l'activer. +ChequeReceiptsNumberingModule=Vérifier le module de numérotation des reçus +AccountingPeriods=Périodes de comptabilité +AccountingPeriodCard=Période de comptabilité +NewFiscalYear=Nouvelle période comptable +OpenFiscalYear=Période comptable ouverte +CloseFiscalYear=Période comptable rapprochée +DeleteFiscalYear=Supprimer la période comptable +ConfirmDeleteFiscalYear=Êtes-vous sûr de supprimer cette période comptable? +ShowFiscalYear=Afficher la période comptable SalariesSetup=Configuration du module salariés -SortOrder=Ordre de tri -Format=Format -TypePaymentDesc=0:Type de paiement client, 1:Type de paiement fournisseur, 2:Paiement de type client et fournisseur -IncludePath=Chemin Include (défini dans la variable %s) -ExpenseReportsSetup=Configuration du module Notes de frais -TemplatePDFExpenseReports=Modèles de documents pour générer les document de Notes de frais -NoModueToManageStockIncrease=Aucun module capable d'assurer l'augmentation de stock en automatique a été activé. La réduction de stock se fera donc uniquement sur mise à jour manuelle. -YouMayFindNotificationsFeaturesIntoModuleNotification=Vous pouvez trouver d'autres options pour la notification par Email en activant et configurant le module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=Liste des notifications emails fixes -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Seuil -BackupDumpWizard=Assistant de génération d'un fichier de sauvegarde de la base de données -SomethingMakeInstallFromWebNotPossible=L'installation de module externe est impossible depuis l'interface web pour la raison suivante : -SomethingMakeInstallFromWebNotPossible2=Pour cette raison, le processus de mise à jour décrit ici est uniquement une série de manipulations que seul un utilisateur ayant des droits privilégiés peut faire -InstallModuleFromWebHasBeenDisabledByFile=L'installation de module externe depuis l'application a été désactivé par l'administrator. Vous devez lui demander de supprimer le fichier %s pour permettre cette fonctionnalité. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ListOfNotificationsPerUser=Liste des notifications par utilisateur * +ListOfNotificationsPerUserOrContact=Liste des notifications par utilisateur * ou par contact ** +GoOntoUserCardToAddMore=Allez sur l'onglet "Notifications" d'un utilisateur pour ajouter ou supprimer des notifications pour les utilisateurs +GoOntoContactCardToAddMore=Accédez à l'onglet "Notifications" d'un tiers pour ajouter ou supprimer des notifications de contacts / adresses +ConfFileMustContainCustom=L'installation ou la construction d'un module externe à partir de l'application doit sauvegarder les fichiers du module dans le répertoire %s. Pour que ce répertoire soit traité par Dolibarr, vous devez configurer votre conf / conf.php pour ajouter les 2 lignes de directive:
$ dolibarr_main_url_root_alt = '/ custom';
$ dolibarr_main_document_root_alt = '%s / custom'; HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de table lorsque déplacement de la souris passe au-dessus HighlightLinesColor=Mettez en surbrillance la couleur de la ligne lorsque la souris passe au-dessus (gardez vide pour ne pas mettre en évidence) TextTitleColor=Couleur de la page titre -LinkColor=Couleur des liens -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Couleur de fond +PressF5AfterChangingThis=Appuyez sur CTRL + F5 sur le clavier ou effacez votre cache de navigateur après avoir changé cette valeur pour l'avoir efficace +NotSupportedByAllThemes=Will fonctionne avec des thèmes de base, peut ne pas être pris en charge par des thèmes externes TopMenuBackgroundColor=Couleur de fond du menu haut -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Masquer les images dans le menu principal LeftMenuBackgroundColor=Couleur de fond gauche BackgroundTableTitleColor=Couleur de fond pour le tableau ligne de titre BackgroundTableLineOddColor=Couleur de fond pour les lignes impaires @@ -1600,6 +350,7 @@ MinimumNoticePeriod=Période minimale de préavis (Votre demande de congé doit NbAddedAutomatically=Nombre de jours ajoutés aux compteurs d'utilisateurs (automatiquement) chaque mois EnterAnyCode=Ce champ contient une référence pour identifier la ligne. Entrez une valeur de votre choix, mais sans caractères spéciaux. UnicodeCurrency=Saisissez ici entre accolades , liste de nombre d'octets qui représentent le symbole monétaire . Pour exemple : pour $ , entrez [ 36 ] - pour le Brésil réel R $ [ 82,36 ] - pour € , entrez [ 8364 ] +ColorFormat=La couleur RVB est en format HEX, par exemple: FF0000 PositionIntoComboList=Position de la ligne dans les listes déroulantes SellTaxRate=Taxes de vente RecuperableOnly=Oui à la TPS/TVH " Non Perçue Récupérable " dédié pour quelques état en France. Gardez la valeur à «Non» dans tous les autres cas. @@ -1608,11 +359,10 @@ OpportunityPercent=Lorsque vous créez une opportunité , vous défini un montan TemplateForElement=Ce gabarit est dédié à cet élément TypeOfTemplate=Type de thèmes TemplateIsVisibleByOwnerOnly=Thème visible par propriétaire seulement -FixTZ=Correction du fuseau horaire FillFixTZOnlyIfRequired=Exemple: +2 (remplir seulement si le problème est connu) ExpectedChecksum=Somme attendue CurrentChecksum=Somme actuel -ForcedConstants=Required constant values +ForcedConstants=Valeurs constantes requises MailToSendProposal=Envoyer la proposition au client MailToSendOrder=Envoyer la commande au client MailToSendInvoice=Envoyer la facture au client @@ -1621,45 +371,43 @@ MailToSendIntervention=Envoyer l'intervention MailToSendSupplierRequestForQuotation=Pour envoyer demande de devis au fournisseur MailToSendSupplierOrder=Envoyer la commande fournisseur MailToSendSupplierInvoice=Envoyer la facture fournisseur -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page +MailToThirdparty=Pour envoyer un courriel à partir d'une page tiers ByDefaultInList=Afficher par défaut sur la liste vue -YouUseLastStableVersion=You use the latest stable version TitleExampleForMajorRelease=Exemple de message que vous pouvez utiliser pour annoncer cette version majeure ( se sentir libre de l'utiliser sur vos sites web ) TitleExampleForMaintenanceRelease=Exemple de message que vous pouvez utiliser pour annoncer cette version de maintenance ( se sentir libre de l'utiliser sur vos sites web ) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. +ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version majeure avec beaucoup de nouvelles fonctionnalités pour les utilisateurs et les développeurs. Vous pouvez le télécharger à partir de la zone de téléchargement du https://www.dolibarr.org portal (sous-répertoire Stable versions). Vous pouvez lire ChangeLog pour obtenir la liste complète des modifications. +ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s est disponible. La version %s est une version de maintenance, donc elle contient uniquement des corrections de bogues. Nous vous recommandons tout le monde en utilisant une ancienne version pour passer à celle-ci. Comme toute version de maintenance, aucune nouvelle fonctionnalité, ni changement de structure de données n'est présent dans cette version. Vous pouvez le télécharger à partir de la zone de téléchargement du https://www.dolibarr.org portal (sous-répertoire Stable versions). Vous pouvez lire ChangeLog pour obtenir la liste complète des modifications. MultiPriceRuleDesc=Lorsque l'option " Plusieurs niveaux de prix par produit / service " est activée, vous pouvez définir des prix différents (un par niveau de prix ) pour chaque produit . Pour gagner du temps , vous pouvez entrer ici la règle pour avoir le prix pour chaque niveau autocalculated en fonction du prix du premier niveau , de sorte que vous devrez entrer seulement le prix pour le premier niveau sur chaque produit . Cette page est ici pour gagner du temps et peut être utile que si vos prix pour chaque leve sont liés à premier niveau . Vous pouvez ignorer cette page dans la plupart des cas . ModelModulesProduct=Modèles de documents produits ToGenerateCodeDefineAutomaticRuleFirst=Pour être en mesure de générer automatiquement des codes , vous devez d'abord définir un gestionnaire à l'auto de définir le numéro de code à barres . SeeSubstitutionVars=Voir la note * pour la liste des variables de substitution possibles -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +AddRemoveTabs=Ajouter ou supprimer des onglets +AddDictionaries=Ajouter des dictionnaires +AddBoxes=Ajouter des widgets +AddSheduledJobs=Ajouter des tâches planifiées +AddHooks=Ajouter des crochets +AddTriggers=Ajouter des déclencheurs +AddMenus=Ajouter des menus +AddPermissions=Ajouter des autorisations +AddExportProfiles=Ajouter des profils d'exportation +AddImportProfiles=Ajouter des profils d'importation +AddOtherPagesOrServices=Ajouter d'autres pages ou services +AddModels=Ajouter un document ou des modèles de numérotation +AddSubstitutions=Ajouter des substitutions de clés +DetectionNotPossible=La détection n'est pas possible +UrlToGetKeyToUseAPIs=Url pour obtenir un jeton pour utiliser l'API (une fois que le jeton a été reçu, il est enregistré sur la table des utilisateurs de la base de données et doit être fourni sur chaque appel d'API) +ListOfAvailableAPIs=Liste des API disponibles +activateModuleDependNotSatisfied=Le module "%s" dépend du module "%s" qui manque, donc le module "%1$s" peut ne pas fonctionner correctement. Veuillez installer le module "%2$s" ou désactiver le module "%1$s" si vous souhaitez être à l'abri de toute surprise +CommandIsNotInsideAllowedCommands=La commande que vous essayez d'exécuter n'est pas dans la liste des commandes autorisées définies dans le paramètre $ dolibarr_main_restrict_os_commands dans le fichier conf.php . +LandingPage=Page d'atterrissage +SamePriceAlsoForSharedCompanies=Si vous utilisez un module multicompanique, avec le choix "Prix unique", le prix sera également le même pour toutes les entreprises si les produits sont partagés entre les environnements +ModuleEnabledAdminMustCheckRights=Le module a été activé. Les autorisations pour les modules activés ont été données uniquement aux utilisateurs administratifs. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire. +UserHasNoPermissions=Cet utilisateur n'a pas d'autorisation définie +TypeCdr=Utilisez "Aucun" si la date du terme de paiement est la date de facture plus un delta en jours (delta est le champ "Nb de jours")
Utilisez "Fin de mois", si, après le delta, la date doit être augmentée Pour atteindre la fin du mois (+ un «décalage» optionnel en jours)
Utilisez "Current / Next" pour que la date de terme de paiement soit le premier Nième du mois (N est stocké dans le champ "Nb de jours") +BaseCurrency=Monnaie de référence de la société (entrer dans la configuration de l'entreprise pour modifier cela) +WarningNoteModuleInvoiceForFrenchLaw=Ce module %s est conforme aux lois françaises (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=Ce module %s est conforme aux lois françaises (Loi Finance 2016) car le module Les journaux non réversibles est automatiquement activé. +WarningInstallationMayBecomeNotCompliantWithLaw=Vous essayez d'installer le module %s qui est un module externe. L'activation d'un module externe signifie que vous faites confiance à l'éditeur du module et que vous êtes sûr que ce module ne modifie pas négativement le comportement de votre application et est conforme aux lois de votre pays (%s). Si le module comporte une fonctionnalité non juridique, vous devenez responsable de l'utilisation d'un logiciel non juridique. +UseSearchToSelectResource=Utilisez un formulaire de recherche pour choisir une ressource (plutôt qu'une liste déroulante). +DisabledResourceLinkUser=Lien de ressource désactivé à l'utilisateur +DisabledResourceLinkContact=Lien de ressource handicapée au contact diff --git a/htdocs/langs/fr_CA/agenda.lang b/htdocs/langs/fr_CA/agenda.lang index 0c22869d7ca..ee94b6f276a 100644 --- a/htdocs/langs/fr_CA/agenda.lang +++ b/htdocs/langs/fr_CA/agenda.lang @@ -1,5 +1,17 @@ # Dolibarr language file - Source file is en_US - agenda ToUserOfGroup=À n'importe quel utilisateur du groupe +AgendaAutoActionDesc=Définissez ici les événements pour lesquels vous souhaitez que Dolibarr crée automatiquement un événement dans l'agenda. Si rien n'est vérifié, seules les actions manuelles seront incluses dans l'agenda et visibles dans l'agenda. Le suivi automatique des actions commerciales réalisées sur les objets (validation, changement d'état) ne sera pas sauvegardé. +NewCompanyToDolibarr=Le tiers %s a été créé +PropalClassifiedBilledInDolibarr=Proposition %s classée facturée +InvoicePaidInDolibarr=La facture %s a changé en payé +MemberValidatedInDolibarr=Membre %s validé +MemberResiliatedInDolibarr=Membre %s terminé +MemberDeletedInDolibarr=Membre %s supprimé +MemberSubscriptionAddedInDolibarr=L'abonnement au membre %s a ajouté +ShipmentClassifyClosedInDolibarr=Expédition %s classé facturé +ShipmentUnClassifyCloseddInDolibarr=Expédition %s classée rouverte +ShipmentDeletedInDolibarr=Envoi %s supprimé +OrderCreatedInDolibarr=L'ordre %s a été créé OrderDeliveredInDolibarr=Commande %s classée Délivrée ShippingSentByEMail=Bon expédition %s envoyé par EMail InterventionSentByEMail=Intervention %s envoyée par EMail @@ -12,5 +24,6 @@ AgendaExtNb=Calendrier no %s VisibleTimeRange=Plage d'heures visibles VisibleDaysRange=Plage de jours visibles CloneAction=Dupliquer événement +ConfirmCloneEvent=Êtes-vous sûr de vouloir cloner l'événement %s? RepeatEvent=Répéter événement DateStartPlusOne=Date de début +1 heure diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang index 2ff7e2dd8c5..09812367f1f 100644 --- a/htdocs/langs/fr_CA/banks.lang +++ b/htdocs/langs/fr_CA/banks.lang @@ -1,11 +1,52 @@ # Dolibarr language file - Source file is en_US - banks +SwiftValid=BIC / SWIFT valide +SwiftVNotalid=BIC / SWIFT non valide +IbanValid=BAN valide +IbanNotValid=BAN non valide +ConfirmDeleteAccount=Êtes-vous sûr de vouloir supprimer ce compte? +BankTransactionByCategories=Entrées bancaires par catégories +BankTransactionForCategory=Entrées bancaires pour la catégorie %s +RemoveFromRubriqueConfirm=Êtes-vous sûr de vouloir supprimer le lien entre l'entrée et la catégorie? +ListBankTransactions=Liste des entrées bancaires +BankTransactions=Entrées bancaires +ListTransactions=Entrées de la liste +ListTransactionsByCategory=Liste des entrées / catégorie +TransactionsToConciliate=Entrées à réconcilier +ReconciliationLate=Réconciliation tardive +OnlyOpenedAccount=Uniquement comptes ouverts +LinkedToAConciliatedTransaction=Lié à une entrée conciliée +StatusAccountOpened=Ouverte +AddBankRecord=Ajouter une entrée +AddBankRecordLong=Ajouter une entrée manuellement +BankLineConciliated=Entrée rapprochée +Reconciled=Réconcilié +NotReconciled=Non réconcilié SocialContributionPayment=Règlement charge sociale +MenuBankInternalTransfer=Transfert interne +TransferDesc=Transfert d'un compte à un autre, Dolibarr écrira deux enregistrements (un compte débiteur dans un compte source et un crédit dans un compte cible. Le même montant (sauf le signe), l'étiquette et la date seront utilisés pour cette transaction) +ValidateCheckReceipt=Validez cette facture? +ConfirmValidateCheckReceipt=Êtes-vous sûr de vouloir valider cette facture, aucun changement ne sera possible une fois que cela sera fait? +DeleteCheckReceipt=Supprimer ce reçu de facturation? +ConfirmDeleteCheckReceipt=Êtes-vous sûr de vouloir supprimer ce justificatif? +BankChecksToReceipt=Chèques en attente de dépôt +DeleteTransaction=Supprimer l'entrée +ConfirmDeleteTransaction=Êtes-vous sûr de vouloir supprimer cette entrée? +ThisWillAlsoDeleteBankRecord=Cela supprimera également l'entrée bancaire générée +PlannedTransactions=Entrées prévues +ExportDataset_banque_1=Entrées bancaires et relevé de compte +PaymentNumberUpdateSucceeded=Numéro de paiement mis à jour avec succès +BankTransactionLine=Entrée de la banque +ToConciliate=Réconcilier? DefaultRIB=RIB par défaut AllRIB=Tous les RIB LabelRIB=Nom du RIB NoBANRecord=Aucun RIB enregistré DeleteARib=Supprimé RIB enregistré +ConfirmDeleteRib=Êtes-vous sûr de vouloir supprimer cet enregistrement BAN? RejectCheck=Chèque renvoyé +ConfirmRejectCheck=Êtes-vous sûr de vouloir marquer ce contrôle comme rejeté? RejectCheckDate=Date à laquelle le chèque a été retourné CheckRejected=Chèque renvoyé CheckRejectedAndInvoicesReopened=Chèques retournés et factures rouvertes +DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens en CEE seulement. +DocumentModelBan=Modèle pour imprimer une page avec des informations BAN. diff --git a/htdocs/langs/fr_CA/bills.lang b/htdocs/langs/fr_CA/bills.lang index b3a0f4950dd..a26912adf0d 100644 --- a/htdocs/langs/fr_CA/bills.lang +++ b/htdocs/langs/fr_CA/bills.lang @@ -1,49 +1,127 @@ # Dolibarr language file - Source file is en_US - bills +BillsCustomersUnpaidForCompany=Les factures des clients non payées pour %s +BillsSuppliersUnpaidForCompany=Factures fournisseurs non payées pour %s +DisabledBecauseNotErasable=Désactivé car il ne peut pas être effacé +InvoiceDepositDesc=Ce type de facture se fait lorsque l'acompte a été reçu. +InvoiceHasAvoir=Était une source d'une ou de plusieurs notes de crédit PredefinedInvoices=Facture prédéfinie paymentInInvoiceCurrency=en factures de devises +ConfirmDeletePayment=Êtes-vous sûr de vouloir supprimer ce paiement? +ConfirmConvertToReduc=Voulez-vous convertir ce %s en une réduction absolue?
Le montant sera ainsi enregistré parmi toutes les réductions et pourrait être utilisé comme réduction pour une facture actuelle ou future pour ce client. +PaymentTypeDC=Carte de débit / crédit +PaymentTypePP=Pay Pal LabelPaymentMode=Mode de règlement (étiquette) CreateCreditNote=Créer avoir +DoPayment=Entrez le paiement +DoPaymentBack=Saisissez le remboursement +ConvertExcessReceivedToReduc=Convertir l'excédent reçu en réduction future StatusOfGeneratedInvoices=État des factures générées +BillStatusPaidBackOrConverted=Remboursement de la note de crédit ou converti en réduction +BillShortStatusPaidBackOrConverted=Remboursement ou conversion +RecurringInvoiceTemplate=Modèle / facture récurrente NoQualifiedRecurringInvoiceTemplateFound=Aucune facture de modèle récurrent qualifié pour la génération. FoundXQualifiedRecurringInvoiceTemplate=Modèles de factures récurrentes qualifiées trouvées %s pour la génération NotARecurringInvoiceTemplate=Pas un modèle de facture récurrente +LastBills=%s dernières factures +LastCustomersBills=%s dernières factures client +LastSuppliersBills=%s dernières factures fournisseurs +CustomersDraftInvoices=Factures de tirage des clients +SuppliersDraftInvoices=Les factures du fournisseur +ConfirmDeleteBill=Êtes-vous sûr de vouloir supprimer cette facture? +ConfirmValidateBill=Êtes-vous sûr de vouloir valider cette facture avec référence %s? +ConfirmUnvalidateBill=Êtes-vous sûr de vouloir modifier la facture %s pour rédiger un état? +ConfirmClassifyPaidBill=Êtes-vous sûr de vouloir modifier la facture %sau statut payé? +ConfirmCancelBill=Êtes-vous sûr de vouloir annuler la facture %s? +ConfirmCancelBillQuestion=Pourquoi souhaitez-vous classer cette facture «abandonnée»? +ConfirmClassifyPaidPartially=Êtes-vous sûr de vouloir modifier la facture %s au statut payé? +ConfirmClassifyPaidPartiallyQuestion=Cette facture n'a pas été entièrement payée. Quelles sont les raisons pour lesquelles vous fermez cette facture? +ConfirmCustomerPayment=Confirmez-vous cette entrée de paiement pour %s %s? +ConfirmSupplierPayment=Confirmez-vous cette entrée de paiement pour %s %s? +ConfirmValidatePayment=Êtes-vous sûr de vouloir valider ce paiement? Aucun changement ne peut être effectué une fois le paiement validé. AmountOfBillsByMonthHT=Montant de factures par mois (no tax.) ShowSocialContribution=Afficher charge sociale +ShowInvoiceDeposit=Afficher la facture de paiement ShowInvoiceSituation=Montrer facture de situation +AlreadyPaidNoCreditNotesNoDeposits=Déjà payé (sans notes de crédit ni acomptes) EscompteOffered=Escompte (règlement avant échéance) EscompteOfferedShort=Remise +StandingOrders=Ordres de débit direct +StandingOrder=Ordre de débit direct RelatedRecurringCustomerInvoices=Connexes factures clients récurrents +DatePointOfTax=Point d'imposition SetRevenuStamp=Configurer timbre fiscal AddGlobalDiscount=Créer ligne de déduction +DiscountFromDeposit=Acompte versé par la facture %s +DiscountFromExcessReceived=Paiements provenant de l'excédent reçu de la facture %s +CreditNoteDepositUse=La facture doit être validée pour utiliser ce type de crédits IdSocialContribution=Id charge sociale PaymentRef=Règlement référence +ConfirmCloneInvoice=Êtes-vous sûr de vouloir cloner cette facture %s? +DescTaxAndDividendsArea=Cette zone présente un résumé de tous les paiements effectués pour les dépenses spéciales. Le seul enregistrement avec paiement pendant l'année fixe est inclus ici. +ConfirmSplitDiscount=Êtes-vous sûr de vouloir diviser cette réduction de %s %s en 2 rabais inférieurs? +ConfirmRemoveDiscount=Êtes-vous sûr de vouloir supprimer cette réduction? AmountPaymentDistributedOnInvoice=Montant du paiement distribué sur la facture +PaymentOnDifferentThirdBills=Autoriser les paiements sur différentes factures de tiers, mais la même société mère PaymentNote=Note de règlement ListOfPreviousSituationInvoices=Liste des factures de situation antérieure ListOfNextSituationInvoices=Liste des prochaines factures de situation FrequencyPer_d=Chaque %s jours FrequencyPer_m=Chaque %s mois FrequencyPer_y=Chaque %s années +toolTipFrequency=Exemples:
Set 7, Day : donnez une nouvelle facture tous les 7 jours
Set 3, Month : donnez une nouvelle facture tous les 3 mois NextDateToExecution=Date de la prochaine génération de facture +DateLastGeneration=Date de dernière génération MaxPeriodNumber=Nombre maximal de génération de facture NbOfGenerationDone=Nombre de génération de facture déjà faite +MaxGenerationReached=Nombre maximum de générations atteintes GeneratedFromRecurringInvoice=Généré à partir du modèle facture récurrente %s +DateIsNotEnough=Date non encore atteinte InvoiceGeneratedFromTemplate=Facture %s générée depuis le modèle de facture %s récurrentes +WarningInvoiceDateInFuture=Attention, la date de facturation est supérieure à la date actuelle +PaymentConditionShortRECEP=Dû à la réception +PaymentConditionRECEP=Dû à la réception +PaymentConditionShort30DENDMONTH=30 jours de fin de mois +PaymentCondition30DENDMONTH=Dans les 30 jours suivant la fin du mois +PaymentConditionShort60DENDMONTH=60 jours de fin de mois +PaymentCondition60DENDMONTH=Dans les 60 jours suivant la fin du mois +PaymentConditionShortPT_ORDER=Commande +PaymentConditionShort10DENDMONTH=10 jours de fin de mois +PaymentCondition10DENDMONTH=Dans les 10 jours suivant la fin du mois +PaymentConditionShort14DENDMONTH=14 jours de fin de mois +PaymentCondition14DENDMONTH=Dans les 14 jours suivant la fin du mois +PaymentTypePRE=Ordre de paiement de débit direct +PaymentTypeShortPRE=Ordre de paiement de débit +PaymentTypeTIP=CONSEIL (Documents contre paiement) +PaymentTypeShortTIP=PAIEMENT Paiement +PaymentTypeTRA=Procédure bancaire PaymentTypeShortTRA=Brouillon BankAccountNumberKey=Clé RIB +Residence=Prélèvement automatique ChequeMaker=Émetteur du chèque/transfert PaymentByChequeOrderedTo=Règlement (tx incl.) par chèque à l'ordre de %s envoyé à PaymentByChequeOrderedToShort=Règlement (tx incl.) par chèque à l'ordre de DepositId=Identifiant de dépot +ValidateInvoices=Valider les factures CantRemoveConciliatedPayment=Impossible de supprimer le paiement par voie de conciliation -ClosePaidInvoicesAutomatically=Classer "Payées" touts les factures standards ou de remplacements ayant un reste à payer nul -MarsNumRefModelDesc1=Numéro de retour avec le format %syymm-nnnn pour les factures standards %syymm-nnnn pour les factures de remplacement , %syymm-nnnn pour les factures de dépôt et %syymm-nnnn pour les notes de crédit où yy année, mm le mois et nnnn est une séquence sans casse et pas de retour à 0 +ClosePaidInvoicesAutomatically=Classifiez «Payé» toutes les factures standard, d'acompte ou de remplacement entièrement payées. +ClosePaidContributionsAutomatically=Classer "Payé" toutes les contributions sociales ou fiscales entièrement payées. +YouMustCreateInvoiceFromThird=Cette option n'est disponible que lors de la création de la facture à partir de l'onglet «client» de tiers +YouMustCreateInvoiceFromSupplierThird=Cette option n'est disponible que lors de la création de la facture à partir de l'onglet «fournisseur» de tiers +YouMustCreateStandardInvoiceFirstDesc=Vous devez d'abord créer une facture standard et la convertir en «modèle» pour créer une nouvelle facture modèle +PDFCrevetteDescription=Facture modèle PDF Crevette. Un modèle de facture complet pour les factures de situation +MarsNumRefModelDesc1=Numéro de retour avec le format %syymm-nnnn pour les factures standard, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures de versement et %syymm-nnnn pour les notes de crédit où il est année, mm est le mois et nnnn est une séquence sans interruption et non Retourner à 0 +CactusNumRefModelDesc1=Numéro de retour avec le format %syymm-nnnn pour les factures standard, %syymm-nnnn pour les notes de crédit et %syymm-nnnn pour les factures de versement de paiement où yy est l'année, mm est le mois et nnnn est une séquence sans interruption et aucun retour à 0 SituationAmount=Montant de facture de situation (no tax.) +NotLastInCycle=Cette facture n'est pas la dernière en cycle et ne doit pas être modifiée. NoSituations=Pas de point de situation ouvert PDFCrevetteSituationInvoiceLineDecompte=Facture de situation - compter PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s sur %s TotalSituationInvoice=Situation total +invoiceLineProgressError=La progression de la ligne de facture ne peut pas être supérieure ou égale à la ligne de facture suivante updatePriceNextInvoiceErrorUpdateline=Erreur: le prix de mise à jour sur la ligne facture : %s ToCreateARecurringInvoice=Pour créer une facture récurrente pour ce contrat , d'abord créer ce projet de facture, puis le convertir en un modèle de facture et de définir la fréquence pour la génération des factures futures . ToCreateARecurringInvoiceGene=Pour générer des factures à venir régulièrement et manuellement , allez dans le menu %s - %s - %s. ToCreateARecurringInvoiceGeneAuto=Si vous avez besoin d'avoir des factures générées automatiquement , vous demander administrateur d'activer et le module de configuration %s. Notez que les deux méthodes ( manuelle et automatique ) peut être utilisé en même temps sans risque de duplication . +DeleteRepeatableInvoice=Supprimer la facture du modèle +ConfirmDeleteRepeatableInvoice=Êtes-vous sûr de vouloir supprimer la facture du modèle? +BillCreated=%s facture (s) créée (s) diff --git a/htdocs/langs/fr_CA/boxes.lang b/htdocs/langs/fr_CA/boxes.lang index 5fc77750eb4..85820c35db0 100644 --- a/htdocs/langs/fr_CA/boxes.lang +++ b/htdocs/langs/fr_CA/boxes.lang @@ -1,4 +1,48 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLastProducts=%s derniers produits / services +BoxProductsAlertStock=Alertes stockées pour les produits +BoxLastProductsInContract=%s derniers produits / services sous contrat +BoxLastSupplierBills=Dernières factures des fournisseurs +BoxLastCustomerBills=Dernières factures client +BoxOldestUnpaidCustomerBills=Les factures des clients non payées les plus anciennes +BoxOldestUnpaidSupplierBills=Les plus anciennes factures fournisseurs non payées +BoxLastProspects=Dernières perspectives modifiées +BoxLastCustomerOrders=Derniers commandes client +BoxLastActions=Dernières actions +BoxLastContacts=Derniers contacts / adresses +BoxLastMembers=Derniers membres BoxCurrentAccounts=Soldes Comptes ouverts +BoxTitleLastRssInfos=%s dernières nouvelles de %s +BoxTitleLastProducts=%s derniers produits / services modifiés +BoxTitleLastSuppliers=%s derniers fournisseurs enregistrés +BoxTitleLastModifiedSuppliers=%s derniers fournisseurs modifiés +BoxTitleLastModifiedCustomers=%s derniers clients modifiés +BoxTitleLastCustomersOrProspects=%s derniers clients ou prospects +BoxTitleLastCustomerBills=Dernières %s factures client +BoxTitleLastSupplierBills=Dernières %s factures fournisseurs +BoxTitleLastModifiedProspects=%s dernières prospects modifiées +BoxTitleLastModifiedMembers=%s derniers membres +BoxTitleLastFicheInter=%s dernières interventions modifiées BoxTitleCurrentAccounts=Soldes des comptes ouverts +BoxTitleLastModifiedContacts=%s derniers contacts / adresses modifiés +BoxMyLastBookmarks=Mes derniers %s signets +BoxLastExpiredServices=Les %s derniers contacts les plus anciens avec les services expirés actifs +BoxTitleLastActionsToDo=%s dernières actions à faire +BoxTitleLastContracts=%s dernier contrats modifiés +BoxTitleLastModifiedDonations=%s derniers dons modifiés +BoxTitleLastModifiedExpenses=%s derniers rapports de dépenses modifiés BoxTitleGoodCustomers=%s Bons clients +FailedToRefreshDataInfoNotUpToDate=Impossible de rafraîchir le flux RSS. Dernière date de rafraîchissement réussie: %s +LastRefreshDate=Dernière date de rafraîchissement +NoRecordedOrders=Aucune commande client enregistrée +NoRecordedInvoices=Aucune facture de client enregistrée +NoUnpaidCustomerBills=Pas de factures de clients non payées +NoUnpaidSupplierBills=Pas de factures fournisseurs non payées +NoModifiedSupplierBills=Aucune facture de fournisseur enregistrée +BoxTitleLastModifiedSupplierBills=%s dernières factures de fournisseur modifiées +BoxTitleLatestModifiedSupplierOrders=%s dernières commandes modifiées +BoxTitleLastModifiedCustomerBills=%s derniers modifications des factures des clients +BoxTitleLastModifiedCustomerOrders=%s dernières commandes client modifiées +BoxTitleLastModifiedPropals=%s dernières modifications proposées +LastXMonthRolling=Le dernier roulement du mois de %s +ChooseBoxToAdd=Ajouter un widget sur votre tableau de bord diff --git a/htdocs/langs/fr_CA/cashdesk.lang b/htdocs/langs/fr_CA/cashdesk.lang index ed55b9044b2..2f3da52b1f5 100644 --- a/htdocs/langs/fr_CA/cashdesk.lang +++ b/htdocs/langs/fr_CA/cashdesk.lang @@ -1,4 +1,4 @@ # Dolibarr language file - Source file is en_US - cashdesk NoVAT=Pas de TVA (TAXE) pour cette vente -BankToPay=Account for payment +BankToPay=Compte pour le paiement DolibarrReceiptPrinter=Imprimante de reçu Dolibarr diff --git a/htdocs/langs/fr_CA/categories.lang b/htdocs/langs/fr_CA/categories.lang index 0737a652735..97519cbf02f 100644 --- a/htdocs/langs/fr_CA/categories.lang +++ b/htdocs/langs/fr_CA/categories.lang @@ -1,10 +1,21 @@ # Dolibarr language file - Source file is en_US - categories MembersCategoriesArea=Espace tags/catégories de membres +AccountsCategoriesArea=Étiquettes / catégories de comptes +ProjectsCategoriesArea=Zone de tags / catégories de projets +ImpossibleAddCat=Impossible d'ajouter le tag / catégorie %s ProductIsInCategories=Produit/service appartient aux tags/catégories suivant(e)s CompanyIsInCustomersCategories=Ce tiers appartient aux tags/catégories de clients/prospects suivant(e)s CompanyIsInSuppliersCategories=Ce tiers appartient aux tags/catégories de fournisseurs suivant(e)s MemberIsInCategories=Ce membre appartient aux tags/catégories suivant(e)s ContactIsInCategories=Ce contact appartient aux tags/catégories suivant(e)s +CompanyHasNoCategory=Ce tiers n'est pas dans les tags / catégories +ProjectHasNoCategory=Ce projet n'est pas dans les tags / catégories ClassifyInCategory=Classer dans le(a) tag/catégorie +ConfirmDeleteCategory=Êtes-vous sûr de vouloir supprimer cette étiquette / catégorie? MembersCategoryShort=Tags/catégories de membres ProspectsCategoriesShort=Prospects tags/catégories +AccountsCategoriesShort=Étiquettes / catégories de comptes +ProjectsCategoriesShort=Projets Tags / catégories +ThisCategoryHasNoAccount=Cette catégorie ne contient aucun compte. +ThisCategoryHasNoProject=Cette catégorie ne contient aucun projet. +CatProJectLinks=Liens entre projets et tags / catégories diff --git a/htdocs/langs/fr_CA/commercial.lang b/htdocs/langs/fr_CA/commercial.lang index b2f630b9bf6..c48270c9d6c 100644 --- a/htdocs/langs/fr_CA/commercial.lang +++ b/htdocs/langs/fr_CA/commercial.lang @@ -1,4 +1,10 @@ # Dolibarr language file - Source file is en_US - commercial DeleteAction=Supprimer l'événement NewAction=Nouvel événement -ActionAC_OTH_AUTO=Autre (evênements insérés automatiquement) +ConfirmDeleteAction=Êtes-vous sûr de vouloir supprimer cet événement? +ActionOnCompany=Société associée +ActionOnContact=Contact connexe +ThirdPartiesOfSaleRepresentative=Personnes tierces ayant un représentant commercial +LastDoneTasks=Dernières %s actions complétées +LastActionsToDo=Le plus ancien %s actions non complétées +ActionAC_OTH_AUTO=Événements insérés automatiquement diff --git a/htdocs/langs/fr_CA/companies.lang b/htdocs/langs/fr_CA/companies.lang index 1489d72d6b7..7ab8756646e 100644 --- a/htdocs/langs/fr_CA/companies.lang +++ b/htdocs/langs/fr_CA/companies.lang @@ -1,22 +1,54 @@ # Dolibarr language file - Source file is en_US - companies +ConfirmDeleteCompany=Êtes-vous sûr de vouloir supprimer cette entreprise et toutes les informations héritées? +ConfirmDeleteContact=Êtes-vous sûr de vouloir supprimer ce contact et toutes les informations héritées? +CreateThirdPartyAndContact=Créer un tiers + un contact enfant AliasNames=Nom de l'alias (commercial, marque, ... ) AliasNameShort=Nom de l'alias +ToCreateContactWithSameName=Créeront automatiquement un contact / adresse avec les mêmes informations que le tiers sous le tiers. Dans la plupart des cas, même si votre tiers est une personne physique, créer un tiers seul suffit. +PostOrFunction=Poste State=États/Provinces StateShort=États PhoneShort=Téléphone +No_Email=Refuser les envois de masse VATIsUsed=Assujetti à la TPS/TVH VATIsNotUsed=Non assujetti à la TPS/TVH +CopyAddressFromSoc=Adresse de remplissage avec adresse de tiers +ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty ni client ni fournisseur, aucun objet de référence disponible +PaymentBankAccount=Compte bancaire de paiement +OverAllOrders=Ordres +OverAllSupplierProposals=Demande de prix LocalTax1IsUsed=Assujeti à la TVQ LocalTax2IsUsed=Assujeti à une troisième taxe ProfId6Short=TVQ ProfId6=TVQ +ProfId1US=Id du professeur VATIntra=Numéro de TPS/TVH VATIntraShort=TPS/TVH +CompanyHasAbsoluteDiscount=Ce client dispose d'un rabais disponible (notes de crédits ou acomptes) pour %s%s +ContactId=ID de contact +FromContactName=Prénom: ContactForOrdersOrShipments=Contact de commandes ou de livraison NoContactForAnyOrderOrShipments=Ce contact n'est contact d'aucune commande ou livraison +StatusProspect1=Pour être contacté +ChangeToContact=Changer l'état sur 'À contacter' +ExportDataset_company_1=Les tiers (Entreprises / fondations / personnes physiques) et les propriétés +ImportDataset_company_1=Les tiers (Entreprises / fondations / personnes physiques) et les propriétés ImportDataset_company_4=Tiers/ventes représentatives (ventes représentatives affectées aux utilisateurs aux entreprises ) +AddAddress=Ajoutez l'adresse +AllocateCommercial=Attribué au représentant des ventes +YouMustAssignUserMailFirst=Vous devez d'abord créer un email pour cet utilisateur afin d'y ajouter des notifications par courrier électronique. +YouMustCreateContactFirst=Pour pouvoir ajouter des notifications par courrier électronique, vous devez d'abord définir des contacts avec des courriels valides pour le tiers +LastModifiedThirdParties=Dernier %s tiers modifiés +InActivity=Ouverte +ThirdPartyIsClosed=Le tiers est fermé ProductsIntoElements=Liste des produits/services en %s +OutstandingBillReached=Max. Pour la facture exceptionnelle atteinte MergeOriginThirdparty=Dupliquer tiers (tiers que vous souhaitez supprimer) MergeThirdparties=Fusionner des tiers +ConfirmMergeThirdparties=Êtes-vous sûr de vouloir fusionner ce tiers avec le présent? Tous les objets liés (factures, commandes, ...) seront transférés vers un tiers actuel, puis la tierce partie sera supprimée. ThirdpartiesMergeSuccess=Les tiers ont été fusionnées +SaleRepresentativeLogin=Connexion du représentant des ventes +SaleRepresentativeFirstname=Prénom du représentant des ventes +SaleRepresentativeLastname=Nom de représentant commercial ErrorThirdpartiesMerge=Il y avait une erreur lors de la suppression des les tiers. S'il vous plaît vérifier le journal. Des modifications ont été annulées. +NewCustomerSupplierCodeProposed=Nouveau code client ou fournisseur suggéré sur le code en double diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang index dd117ca45c7..825749e8b52 100644 --- a/htdocs/langs/fr_CA/compta.lang +++ b/htdocs/langs/fr_CA/compta.lang @@ -1,4 +1,6 @@ # Dolibarr language file - Source file is en_US - compta +Accountparent=Compte Parent +Accountsparent=Comptes parents AmountHTVATRealReceived=no tax. collectée AmountHTVATRealPaid=no tax. payé VATToPay=TPS/TVH ventes @@ -10,19 +12,38 @@ VATPaid=TPS/TVH payée LT1PaidES=RE (TVQ) Payé LT1CustomerES=RE (TVQ) ventes VATCollected=TPS/TVH récupérée +ToPay=Saisir règlement SocialContribution=Charge sociale SocialContributions=Charges sociales +SocialContributionsDeductibles=Taxes sociales ou fiscales déductibles +SocialContributionsNondeductibles=Impôts sociaux ou fiscaux non déductibles +LabelContrib=Contribution d'étiquette +TypeContrib=Type de contribution MenuSocialContributions=Charges sociales MenuNewSocialContribution=Nouvelle charge sociale NewSocialContribution=Nouvelle charge sociale +AddSocialContribution=Ajouter la taxe sociale / fiscale ContributionsToPay=Charges à payer PaymentSocialContribution=Règlement charge sociale PaymentVat=Règlement TPS/TVH +newLT2Payment=Nouveau paiement d'impôt 3 +LT1Payment=Paiement de l'impôt 2 +LT2Payment=Paiement d'impôt 3 +LT2Payments=Taxe 3 paiements newLT1PaymentES=Nouveau règlement de RE (TVQ) LT1PaymentES=Règlement RE (TVQ) LT1PaymentsES=Règlements RE (TVQ) +VATPayment=Paiement d'impôt sur les ventes +VATPayments=Paiements d'impôt sur les ventes +VATRefund=Remboursement de la taxe de vente SocialContributionsPayments=Règlements charges sociales ShowVatPayment=Affiche paiement TPS/TVH +BalanceVisibilityDependsOnSortAndFilters=La balance est visible dans cette liste uniquement si la table est triée en ascendant sur %s et filtrée pour 1 compte bancaire +CustomerAccountancyCodeShort=Cust. Compte. code +SupplierAccountancyCodeShort=Souper. Compte. code +ByExpenseIncome=Par dépenses et revenus +LastCheckReceiptShort=Dernier %s vérifier les reçus +NoWaitingChecks=Aucun chèque en attente de dépôt. PaySocialContribution=Payer une charge sociale ConfirmPaySocialContribution=Êtes-vous sûr de vouloir classer cette charge sociale à payée ? DeleteSocialContribution=Effacer charge sociale @@ -30,6 +51,11 @@ ConfirmDeleteSocialContribution=Êtes-vous sûr de vouloir supprimer cette charg ExportDataset_tax_1=Charges sociales et paiements CalcModeVATDebt=Mode %sTPS/TVH sur débit%s. CalcModeVATEngagement=Mode %s TPS/TVH sur encaissement%s. +RulesResultDue=- Il comprend les factures, les dépenses, la TVA, les dons, qu'ils soient payés ou non. Comprend également les salaires payés.
- Il est basé sur la date de validation des factures et la TVA et à la date d'échéance des dépenses. Pour les salaires définis avec le module Salaire, la date de valeur du paiement est utilisée. +RulesResultInOut=- Il comprend les paiements réels effectués sur les factures, les dépenses, la TVA et les salaires.
- Il est basé sur les dates de paiement des factures, des dépenses, de la TVA et des salaires. La date de donation pour le don. +RulesCADue=- Il comprend les factures exigibles du client, qu'elles soient payées ou non.
- Il est basé sur la date de validation de ces factures.
+DepositsAreNotIncluded=- Les factures d'acompte ne sont ni incluses +DepositsAreIncluded=- Les factures de versement sont incluses LT1ReportByCustomersInInputOutputModeES=Rapport par tiers des RE (TVA) VATReportByCustomersInDueDebtMode=Rapport par client des TPS/TVH collectées et payées VATReportByQuartersInInputOutputMode=Rapport par taux des TPS/TVH collectées et payées @@ -40,7 +66,28 @@ RulesVATInServices=- Pour les services, le rapport inclut les TVA TAXES) des rè RulesVATInProducts=- Pour les biens matériels, il inclut les TVA(TAXES) des factures en se basant sur la date de facture. RulesVATDueServices=- Pour les services, le rapport inclut les TVA TAXES) des factures dues, payées ou non en se basant sur la date de facture. RulesVATDueProducts=- Pour les biens matériels, il inclut les TVA TAXES) des factures en se basant sur la date de facture. +WarningDepositsNotIncluded=Les factures de acompte ne sont pas incluses dans cette version avec ce module de comptabilité. +Pcg_version=Modèles de plan comptable +ToCreateAPredefinedInvoice=Pour créer une facture de modèle, créez une facture standard, puis, sans la valider, cliquez sur le bouton "%s". CalculationRuleDesc=Pour calculer le total de TPS/TVH, il existe 2 modes:
Le mode 1 consiste à arrondir la TPS/TVH de chaque ligne et à sommer cet arrondi.
Le mode 2 consiste à sommer la TPS/TVH de chaque ligne puis à l'arrondir.
Les résultats peuvent différer de quelques centimes. Le mode par défaut est le mode %s. +CalculationRuleDescSupplier=Selon le fournisseur, choisissez la méthode appropriée pour appliquer la même règle de calcul et obtenez le même résultat attendu par votre fournisseur. +ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour la perception de la TVA - TVA sur les ventes (utilisé si non défini sur la configuration du dictionnaire TVA) +ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour la TVA récupérée - TVA sur les achats (utilisé si non défini sur la configuration du dictionnaire TVA) +ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour payer la TVA +ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour les tiers clients +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant au client sur un tiers n'est pas défini +ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour les tiers fournisseurs +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de logiciels afférent, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini CloneTax=Cloner une charge sociale ConfirmCloneTax=Confirmer le clonage de la charge sociale +AddExtraReport=Rapports supplémentaires (ajouter un rapport client étranger et national) +OtherCountriesCustomersReport=Rapport des clients étrangers +BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Sur la base des deux premières lettres du numéro de TVA différentes du code de pays de votre entreprise +SameCountryCustomersWithVAT=Rapport des clients nationaux +BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Sur la base des deux premières lettres du numéro de TVA étant les mêmes que le code de votre propre entreprise +LinkedFichinter=Lien vers une intervention ImportDataset_tax_contrib=Charges sociales +ImportDataset_tax_vat=Paiements de vat +ErrorBankAccountNotFound=Erreur: compte bancaire introuvable +FiscalPeriod=Période de comptabilité +ListSocialContributionAssociatedProject=Liste des contributions sociales associées au projet diff --git a/htdocs/langs/fr_CA/contracts.lang b/htdocs/langs/fr_CA/contracts.lang index 1c4de4ea90a..7cf3e22ff17 100644 --- a/htdocs/langs/fr_CA/contracts.lang +++ b/htdocs/langs/fr_CA/contracts.lang @@ -1,4 +1,67 @@ # Dolibarr language file - Source file is en_US - contracts +ContractsArea=Zone de contrats ContractCard=Carte du contrat +ContractStatusNotRunning=Ne pas courrir ContractStatusValidated=Validée +ServiceStatusInitial=Ne pas courrir +ServiceStatusRunning=Fonctionnement +ServiceStatusNotLate=En cours d'exécution, pas expiré +ServiceStatusLate=En cours d'exécution, a expiré ServiceStatusClosed=Fermées +ShowContractOfService=Afficher le contrat de service +Closing=Fermeture +NoContracts=Aucun contrat +MenuInactiveServices=Services non actifs +MenuRunningServices=Les services en cours d'exécution +NewContractSubscription=Nouveau contrat / abonnement +AddContract=Créer un contrat +CloseAContract=Fermer un contrat +ConfirmDeleteAContract=Êtes-vous sûr de vouloir supprimer ce contrat et tous ses services? +ConfirmValidateContract=Êtes-vous sûr de vouloir valider ce contrat sous le nom %s? +ConfirmCloseContract=Cela fermera tous les services (actifs ou non). Êtes-vous sûr de vouloir fermer ce contrat? +ConfirmCloseService=Êtes-vous sûr de vouloir fermer ce service avec la date %s? +ConfirmActivateService=Êtes-vous sûr de vouloir activer ce service avec la date %s? +DateContract=Date de contrat +DateServiceActivate=Date d'activation du service +ShowContract=Afficher le contrat +ListOfInactiveServices=Liste des services non actifs +ListOfExpiredServices=Liste des services actifs périmés +ListOfRunningServices=Liste des services en cours d'exécution +NotActivatedServices=Services inactifs (contrats validés) +BoardNotActivatedServices=Services à activer entre contrats validés +LastContracts=Derniers contrats %s +LastModifiedServices=Derniers %s services modifiés +ContractStartDate=Date de début +ContractEndDate=Date de fin +DateStartPlanned=Date de début de réalisation prévue +DateStartPlannedShort=Date de début de réalisation prévue +DateEndPlanned=Date de fin de réalisation prévue +DateEndPlannedShort=Date de fin de réalisation prévue +DateStartReal=Date de début de réalisation réelle +DateStartRealShort=Date de début de réalisation réelle +DateEndReal=Date de fin de réalisation réelle +DateEndRealShort=Date de fin de réalisation réelle +CloseService=Fermer le service +BoardRunningServices=Services d'exploitation périmés +DraftContracts=Contrats réduits +CloseRefusedBecauseOneServiceActive=Le contrat ne peut pas être fermé car il y a au moins un service ouvert +CloseAllContracts=Fermer toutes les lignes de contrat +DeleteContractLine=Supprimer une ligne de contrat +ConfirmDeleteContractLine=Êtes-vous sûr de vouloir supprimer cette ligne de contrat? +MoveToAnotherContract=Déplacer le service dans un autre contrat. +ConfirmMoveToAnotherContract=J'ai choisi un nouveau contrat cible et je confirme que je souhaite transférer ce service dans ce contrat. +ConfirmMoveToAnotherContractQuestion=Choisissez dans quel contrat existant (d'un même tiers), vous souhaitez transférer ce service? +PaymentRenewContractId=Renouveler la ligne du contrat (numéro %s) +ExpiredSince=Date d'expiration +NoExpiredServices=Aucun service actif expiré +ListOfServicesToExpireWithDuration=Liste des services à expirer en %s jours +ListOfServicesToExpireWithDurationNeg=Liste des services expirés de plus de %s jours +ListOfServicesToExpire=Liste des services à expirer +NoteListOfYourExpiredServices=Cette liste contient uniquement des services de contrats pour des tiers auxquels vous êtes lié en tant que représentant de vente. +StandardContractsTemplate=Modèle de contrat standard +OnlyLinesWithTypeServiceAreUsed=Seules les lignes avec le type "Service" seront clonées. +TypeContact_contrat_internal_SALESREPSIGN=Contrat de signature du représentant des ventes +TypeContact_contrat_internal_SALESREPFOLL=Contrat de suivi du représentant des ventes +TypeContact_contrat_external_BILLING=Contact client de facturation +TypeContact_contrat_external_CUSTOMER=Suivi du contact client +TypeContact_contrat_external_SALESREPSIGN=Contrat de signature contact client diff --git a/htdocs/langs/fr_CA/cron.lang b/htdocs/langs/fr_CA/cron.lang index d49f6e04bf6..ca52eea8053 100644 --- a/htdocs/langs/fr_CA/cron.lang +++ b/htdocs/langs/fr_CA/cron.lang @@ -3,5 +3,51 @@ Permission23101 =Voir les travaux planifiés Permission23102 =Créer/Modifier des travaux planifiées Permission23103 =Effacer travail planifié Permission23104 =Exécuté Travail planifié +CronSetup=Configuration programmée de la gestion des tâches +URLToLaunchCronJobs=URL pour vérifier et lancer des emplois qualifiés cron +OrToLaunchASpecificJob=Ou pour vérifier et lancer un travail spécifique +KeyForCronAccess=Clé de sécurité pour URL pour lancer des travaux de cron +FileToLaunchCronJobs=Ligne de commande pour lancer des travaux de cron +CronExplainHowToRunUnix=Sur l'environnement Unix, vous devez utiliser l'entrée crontab suivante pour exécuter la ligne de commande toutes les 5 minutes +CronExplainHowToRunWin=Sur Microsoft (tm) environnement Windows, vous pouvez utiliser les outils de tâches planifiés pour exécuter la ligne de commande toutes les 5 minutes +EnabledAndDisabled=Activé et désactivé +CronLastOutput=Dernier résultat d'exécution +CronLastResult=Le dernier code de résultat +CronCommand=Commander +CronList=Emplois programmés +CronDelete=Supprimer les tâches planifiées +CronConfirmDelete=Êtes-vous sûr de vouloir supprimer ces emplois planifiés? +CronExecute=Lancer un travail planifié +CronConfirmExecute=Êtes-vous sûr de vouloir exécuter ces tâches planifiées maintenant? +CronInfo=Le module de travail planifié permet de programmer des tâches pour les exécuter automatiquement. Les travaux peuvent également être démarrés manuellement. +CronTask=Emploi CronNone=Aucune +CronDtLastLaunch=Date de début de la dernière exécution +CronDtLastResult=Date de fin de la dernière exécution +CronNoJobs=Aucun emploi enregistré +CronNbRun=Nb. lancement +CronMaxRun=Max nb. lancement +CronEach=Chaque +CronAdd=Ajouter des emplois +CronEvery=Exécuter le travail chaque +CronObject=Instance / objet à créer +CronSaveSucess=Sauvegarde réussie +CronFieldMandatory=Les champs %s sont obligatoires +CronErrEndDateStartDt=La date de fin ne peut pas être avant la date de début +CronTaskInactive=Ce travail est désactivé +CronClassFile=Nom de fichier avec classe +CronModuleHelp=Nom du répertoire du module Dolibarr (fonctionne également avec le module Dolibarr externe).
Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur du module est produit +CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web).
Par exemple, appeler la méthode de récupération de Dolibarr Product object htdocs / product / class / product.class.php, la valeur du nom de fichier de classe est product / class / product.class .php +CronObjectHelp=Le nom de l'objet à charger.
Pour appeler par exemple la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur du nom de fichier de classe est Produit +CronMethodHelp=La méthode objet à lancer.
Par exemple, appeler la méthode de récupération de l'objet produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour la méthode est fecth +CronArgsHelp=Les arguments de la méthode.
Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour les paramètres peut être 0, ProductRef +CronCommandHelp=La ligne de commande du système à exécuter. +CronCreateJob=Créer un nouvel emploi planifié CronFrom=De +CronType=Type d'emploi +CronType_method=Méthode d'appel d'une classe Dolibarr +CronType_command=Commande Shell +UseMenuModuleToolsToAddCronJobs=Accédez au menu «Accueil - Outils d'administration - Emplois programmés» pour voir et modifier les tâches planifiées. +MakeLocalDatabaseDumpShort=Sauvegarde de la base de données locale +MakeLocalDatabaseDump=Créer une décharge de base de données locale +WarningCronDelayed=Attention, à des fins de performance, quelle que soit la prochaine date d'exécution des travaux activés, vos travaux peuvent être retardés jusqu'à un maximum de %s heures avant d'être exécutés. diff --git a/htdocs/langs/fr_CA/deliveries.lang b/htdocs/langs/fr_CA/deliveries.lang index c7fc4272841..10619dd2aca 100644 --- a/htdocs/langs/fr_CA/deliveries.lang +++ b/htdocs/langs/fr_CA/deliveries.lang @@ -1,2 +1,22 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=A livraison +DeliveryRef=Livraison de remise +DeliveryCard=Carte de réception +DeliveryOrder=Bon de livraison +CreateDeliveryOrder=Gérer le reçu de livraison +DeliveryStateSaved=Etat de livraison enregistré +SetDeliveryDate=Date d'expédition prévue +ValidateDeliveryReceipt=Valider le reçu de livraison +ValidateDeliveryReceiptConfirm=Êtes-vous sûr de vouloir valider ce reçu de livraison? +DeleteDeliveryReceipt=Supprimer le reçu de livraison +DeleteDeliveryReceiptConfirm=Êtes-vous sûr de vouloir supprimer le reçu de livraison %s? +DeliveryNotValidated=Livraison non validée +NameAndSignature=Nom et signature: +ToAndDate=À ___________________________________ à ____ / _____ / __________ +GoodStatusDeclaration=Avoir reçu les marchandises ci-dessus en bon état, +Deliverer=Libérateur: +Recipient=Bénéficiaire +ErrorStockIsNotEnough=Il n'y a pas assez de stock +Shippable=Envoi possible +NonShippable=Non expédié +ShowReceiving=Afficher le reçu de livraison diff --git a/htdocs/langs/fr_CA/donations.lang b/htdocs/langs/fr_CA/donations.lang index 5519da52f06..9102ba55b8a 100644 --- a/htdocs/langs/fr_CA/donations.lang +++ b/htdocs/langs/fr_CA/donations.lang @@ -1,2 +1,25 @@ # Dolibarr language file - Source file is en_US - donations +Donor=Donneur +DeleteADonation=Supprimer un don +ConfirmDeleteADonation=Êtes-vous sûr de vouloir supprimer ce don? +ShowDonation=Montrer le don +DonationsArea=Domaine de donations +DonationStatusPromiseNotValidated=Projet de promesse +DonationStatusPaid=Dons reçus DonationStatusPromiseNotValidatedShort=Brouillon +DonationStatusPaidShort=Reçu +DonationTitle=Reçu de don +DonationDatePayment=Date de règlement +ValidPromess=Valider la promesse +DonationReceipt=Reçu de don +DonationsModels=Modèles de documents pour les reçus de dons +LastModifiedDonations=Derniers %s dons modifiés +DonationRecipient=Destinataire du don +IConfirmDonationReception=Le destinataire déclare réception, en tant que don, du montant suivant +MinimumAmount=Le montant minimum est %s +FreeTextOnDonations=Texte gratuit à afficher en bas de page +FrenchOptions=Options pour la France +DONATION_ART200=Afficher l'article 200 de CGI si vous êtes concerné +DONATION_ART238=Afficher l'article 238 de CGI si vous êtes concerné +DONATION_ART885=Afficher l'article 885 de CGI si vous êtes concerné +DonationPayment=Paiement de donation diff --git a/htdocs/langs/fr_CA/ecm.lang b/htdocs/langs/fr_CA/ecm.lang index 17963c36751..37142ed3387 100644 --- a/htdocs/langs/fr_CA/ecm.lang +++ b/htdocs/langs/fr_CA/ecm.lang @@ -1,2 +1,32 @@ # Dolibarr language file - Source file is en_US - ecm +ECMNbOfDocs=Nb de documents dans l'annuaire +ECMSectionManual=Annuaire manuel +ECMSectionAuto=Annuaire automatique +ECMSectionsManual=Arbre manuel +ECMSectionsAuto=Arbre automatique +ECMAddSection=Ajouter un répertoire ECMCreationDate=Date création +ECMArea=Zone EDM +ECMAreaDesc=La zone EDM (Electronic Document Management) vous permet d'enregistrer, de partager et de rechercher rapidement toutes sortes de documents dans Dolibarr. +ECMAreaDesc2=* Les répertoires automatiques sont remplis automatiquement lors de l'ajout de documents à partir d'une carte d'un élément.
* Les répertoires manuels peuvent être utilisés pour enregistrer des documents non liés à un élément particulier. +ECMSectionWasRemoved=Le répertoire %s a été supprimé. +ECMSectionOfDocuments=Répertoires de documents +ECMDocsBySocialContributions=Documents liés aux impôts sociaux ou fiscaux +ECMDocsByThirdParties=Documents liés à des tiers +ECMDocsByProposals=Documents liés aux propositions +ECMDocsByOrders=Documents liés aux commandes clients +ECMDocsByContracts=Documents liés aux contrats +ECMDocsByInvoices=Documents liés aux factures des clients +ECMDocsByProducts=Documents liés aux produits +ECMDocsByProjects=Documents liés à des projets +ECMDocsByUsers=Documents liés aux utilisateurs +ECMDocsByInterventions=Documents liés aux interventions +ECMDocsByExpenseReports=Documents liés aux rapports de dépenses +ShowECMSection=Afficher le répertoire +DeleteSection=Supprimer le répertoire +ConfirmDeleteSection=Pouvez-vous confirmer que vous souhaitez supprimer le répertoire %s? +ECMDirectoryForFiles=Répertoire relatif des fichiers +CannotRemoveDirectoryContainsFiles=Supprimé n'est pas possible car il contient certains fichiers +ECMFileManager=Gestionnaire de fichiers +ECMSelectASection=Sélectionnez un répertoire sur l'arbre de gauche ... +DirNotSynchronizedSyncFirst=Ce répertoire semble être créé ou modifié en dehors du module ECM. Vous devez d'abord cliquer sur le bouton "Actualiser" pour synchroniser le disque et la base de données pour obtenir le contenu de ce répertoire. diff --git a/htdocs/langs/fr_CA/errors.lang b/htdocs/langs/fr_CA/errors.lang index a8c4f59801a..53013ba9bf6 100644 --- a/htdocs/langs/fr_CA/errors.lang +++ b/htdocs/langs/fr_CA/errors.lang @@ -1,19 +1,188 @@ # Dolibarr language file - Source file is en_US - errors +NoErrorCommitIsDone=Aucune erreur, nous nous engageons +ErrorButCommitIsDone=Les erreurs trouvées, mais nous validons malgré cela ErrorBadEMail=Le courriel %s n'est pas bon ErrorBadUrl=L'adresse Url %s n'est pas bonne +ErrorBadValueForParamNotAString=Valeur incorrecte pour votre paramètre. Il ajoute généralement lorsque la traduction est manquante. ErrorRecordNotFound=L'enregistrement n'a pas été trouvé. ErrorFailToCopyFile=Impossible de copier le fichier '%s' en '%s'. +ErrorFailToCopyDir=Impossible de copier le répertoire '%s' dans '%s'. ErrorFailToRenameFile=Impossible de renommer le fichier '%s' en '%s'. ErrorFailToDeleteFile=Impossible de supprimer le fichier '%s'. ErrorFailToCreateFile=Impossible de créer le fichier '%s'. +ErrorFailToRenameDir=Impossible de renommer l'annuaire '%s' dans '%s'. +ErrorFailToCreateDir=Impossible de créer le répertoire '%s'. +ErrorFailToDeleteDir=Échec de la suppression du répertoire '%s'. +ErrorFailToMakeReplacementInto=Impossible de remplacer le fichier '%s'. +ErrorFailToGenerateFile=Impossible de générer le fichier '%s'. +ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme un contact pour ce type. ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type comptant, alors, il n'accepte que les paiements de type comptant. ErrorFromToAccountsMustDiffers=Le compte bancaire d'origine et celui de la cible doivent être différents. +ErrorBadThirdPartyName=Valeur incorrecte pour le nom de tiers ErrorBadCustomerCodeSyntax=Mauvaise syntaxe du code client +ErrorBadBarCodeSyntax=Mauvaise syntaxe pour le code à barres. Peut-être que vous définissez un mauvais type de code à barres ou que vous avez défini un masque de code à barres pour la numérotation qui ne correspond pas à la valeur analysée. ErrorCustomerCodeRequired=Code client requis +ErrorBarCodeRequired=Code de barre requis +ErrorBarCodeAlreadyUsed=Code à barres déjà utilisé ErrorPrefixRequired=Préfixe requis +ErrorBadSupplierCodeSyntax=Mauvaise syntaxe pour le code fournisseur +ErrorSupplierCodeRequired=Code du fournisseur requis ErrorBadParameters=Mauvais paramètres +ErrorBadValueForParameter=Valeur incorrecte '%s' pour le paramètre '%s' ErrorBadImageFormat=Le format de votre fichier image n'est pas supporté (Votre logiciel PHP ne supporte pas les fonctions de conversion d'images de ce format) ErrorBadDateFormat=La valeur '%s' a un mauvais format de date +ErrorWrongDate=La date n'est pas correcte! ErrorFailedToWriteInDir=Erreur d'écriture dans le répertoire %s +ErrorFoundBadEmailInFile=Trouver une syntaxe de courrier électronique incorrecte pour les lignes %s dans le fichier (ligne d'exemple %s avec email = %s) +ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être qu'il soit associé à des entités Dolibarr. +ErrorFieldsRequired=Certains champs obligatoires n'ont pas été remplis. +ErrorSubjectIsRequired=Le sujet du courrier électronique est requis +ErrorFailedToCreateDir=Impossible de créer un répertoire. Vérifiez que l'utilisateur du serveur Web a la permission d'écrire dans le répertoire de documents Dolibarr. Si le paramètre safe_mode est activé sur ce PHP, vérifiez que les fichiers Dolibarr php appartiennent à l'utilisateur du serveur Web (ou au groupe). +ErrorNoMailDefinedForThisUser=Aucun courrier défini pour cet utilisateur +ErrorFeatureNeedJavascript=Cette fonctionnalité nécessite l'activation de JavaScript pour fonctionner. Modifiez ceci dans la configuration - l'affichage. +ErrorTopMenuMustHaveAParentWithId0=Un menu de type 'Top' ne peut pas contenir un menu parent. Mettez 0 dans le menu parent ou choisissez un menu de type 'Gauche'. +ErrorLeftMenuMustHaveAParentId=Un menu de type 'Gauche' doit avoir un identifiant parent. +ErrorFileNotFound=Le fichier %s n'a pas été trouvé (mauvais chemin, mauvaises autorisations ou accès refusé par PHP openbasedir ou paramètre safe_mode) +ErrorDirNotFound=Répertoire %snon trouvé (mauvais chemin, mauvaises autorisations ou accès refusé par PHP openbasedir ou paramètre safe_mode) +ErrorFunctionNotAvailableInPHP=La fonction %s est requise pour cette fonctionnalité mais n'est pas disponible dans cette version / configuration de PHP. +ErrorDirAlreadyExists=Un répertoire avec ce nom existe déjà. +ErrorFileAlreadyExists=Un fichier avec ce nom existe déjà. +ErrorPartialFile=Fichier non reçu complètement par le serveur. +ErrorNoTmpDir=Le code temporaire %s n'existe pas. +ErrorUploadBlockedByAddon=Téléchargement bloqué par un plugin PHP / Apache. +ErrorSizeTooLongForIntType=Taille trop longue pour le type int (%s maximum) +ErrorSizeTooLongForVarcharType=Taille trop longue pour le type de chaîne (%s chars maximum) +ErrorNoValueForSelectType=Remplissez la valeur pour sélectionner la liste +ErrorNoValueForCheckBoxType=Veuillez remplir la valeur pour la liste des cases à cocher +ErrorNoValueForRadioType=Remplissez la valeur pour la liste radio +ErrorBadFormatValueList=La valeur de la liste ne peut pas contenir plus d'une virgule: %s, mais nécessite au moins une: clé, valeur +ErrorFieldCanNotContainSpecialCharacters=Le champ %s ne doit pas contenir de caractères spéciaux. +ErrorFieldCanNotContainSpecialNorUpperCharacters=Le champ %s ne doit pas contenir de caractères spéciaux, ni les caractères majuscules et ne peut contenir que des nombres. +ErrorExportDuplicateProfil=Ce nom de profil existe déjà pour ce jeu d'exportation. +ErrorLDAPSetupNotComplete=La correspondance Dolibarr-LDAP n'est pas complète. +ErrorLDAPMakeManualTest=Un fichier .ldif a été généré dans le répertoire %s. Essayez de le charger manuellement à partir de la ligne de commande pour avoir plus d'informations sur les erreurs. +ErrorCantSaveADoneUserWithZeroPercentage=Impossible d'enregistrer une action avec "statut non démarré" si le champ "fait par" est également rempli. +ErrorRefAlreadyExists=La référence utilisée pour la création existe déjà. +ErrorPleaseTypeBankTransactionReportName=Tapez le nom du relevé bancaire où l'entrée est signalée (Format AAAAMM ou AAAAMMDD) +ErrorRecordHasChildren=Impossible de supprimer l'enregistrement puisqu'il a des enfants. +ErrorRecordIsUsedCantDelete=Impossible de supprimer l'enregistrement. Il est déjà utilisé ou inclus dans un autre objet. +ErrorModuleRequireJavascript=Javascript ne doit pas être désactivé pour que cette fonction fonctionne. Pour activer / désactiver Javascript, accédez au menu Accueil-> Configuration-> Affichage. +ErrorPasswordsMustMatch=Les deux mots de passe dactylographiés doivent correspondre les uns aux autres +ErrorContactEMail=Une erreur technique s'est produite. Veuillez contacter l'administrateur pour suivre le courrier électronique %s en fournir le code d'erreur %sdans votre message, ou encore mieux en ajoutant une copie d'écran de cette page. +ErrorWrongValueForField=Valeur incorrecte pour le numéro de champ %s (valeur '%s' ne correspond pas à la règle regex %s) +ErrorFieldValueNotIn=Valeur incorrecte pour le numéro de champ %s (valeur '%s' n'est pas une valeur disponible dans le champ %s de la table %s ) +ErrorFieldRefNotIn=Valeur incorrecte pour le numéro de champ %s (valeur ' %s' n'est pas un %s référence existante) +ErrorFileIsInfectedWithAVirus=Le programme antivirus n'a pas pu valider le fichier (le fichier peut être infecté par un virus) +ErrorSpecialCharNotAllowedForField=Les caractères spéciaux ne sont pas autorisés pour le champ "%s" +ErrorNumRefModel=Une référence existe dans la base de données (%s) et n'est pas compatible avec cette règle de numérotation. Supprimez l'enregistrement ou la renommée référence pour activer ce module. ErrorQtyTooLowForThisSupplier=Quantité trop faible pour ce fournisseur ou pas de prix défini sur ce produit pour ce fournisseur +ErrorModuleSetupNotComplete=La configuration du module semble être inachevée. Allez sur Accueil - Configuration - Modules à compléter. +ErrorBadMaskBadRazMonth=Erreur, mauvaise valeur de réinitialisation +ErrorMaxNumberReachForThisMask=Nombre maxi pour ce masque +ErrorCounterMustHaveMoreThan3Digits=Le compteur doit avoir plus de 3 chiffres +ErrorDeleteNotPossibleLineIsConsolidated=L'effacement n'est pas possible car l'enregistrement est lié à une transition bancaire conciliée +ErrorProdIdAlreadyExist=%s est affecté à un autre tiers +ErrorFailedToLoadRSSFile=Impossible d'obtenir un flux RSS. Essayez d'ajouter constante MAIN_SIMPLEXMLLOAD_DEBUG si les messages d'erreur ne fournissent pas suffisamment d'informations. +ErrorForbidden=Accès refusé.
Vous essayez d'accéder à une page, zone ou fonctionnalité d'un module désactivé ou sans être dans une session authentifiée ou non autorisée pour votre utilisateur. +ErrorForbidden2=La permission de cette connexion peut être définie par votre administrateur Dolibarr à partir du menu %s-> %s. +ErrorForbidden3=Il semble que Dolibarr ne soit pas utilisé par une session authentifiée. Consultez la documentation d'installation de Dolibarr pour savoir comment gérer les authentifications (htaccess, mod_auth ou autre ...). +ErrorNoImagickReadimage=Class Imagick n'est pas trouvé dans cette PHP. Aucun aperçu ne peut être disponible. Les administrateurs peuvent désactiver cet onglet dans le menu Configuration - Affichage. +ErrorRecordAlreadyExists=L'enregistrement existe déjà +ErrorCantReadFile=Impossible de lire le fichier '%s' +ErrorCantReadDir=Impossible de lire le répertoire '%s' +ErrorBadLoginPassword=Mauvaise valeur pour la connexion ou le mot de passe +ErrorLoginDisabled=Votre compte a été désactivé +ErrorFailedToRunExternalCommand=Impossible d'exécuter une commande externe. Vérifiez qu'il est disponible et exécutable par votre serveur PHP. Si PHP Mode sans échec est activé, vérifiez que cette commande se trouve dans un répertoire défini par le paramètre safe_mode_exec_dir . +ErrorFailedToChangePassword=Échec de la modification du mot de passe +ErrorLoginDoesNotExists=L'utilisateur avec la connexion %s n'a pas été trouvé. +ErrorLoginHasNoEmail=Cet utilisateur n'a pas d'adresse e-mail. Processus interrompu. +ErrorBadValueForCode=Valeur incorrecte pour le code de sécurité. Réessayez avec une nouvelle valeur ... +ErrorBothFieldCantBeNegative=Les champs %s et %s ne peuvent pas être à la fois négatifs +ErrorQtyForCustomerInvoiceCantBeNegative=La quantité de ligne dans les factures des clients ne peut pas être négative +ErrorWebServerUserHasNotPermission=Le compte d'utilisateur %s utilisé pour exécuter le serveur Web n'a aucune permission pour cela +ErrorNoActivatedBarcode=Aucun type de code à barres activé +ErrUnzipFails=Impossible de décompresser %s avec ZipArchive +ErrNoZipEngine=Pas de fichier moteur pour zip / unzip %s dans ce PHP +ErrorFileMustBeADolibarrPackage=Le fichier %s doit être un zip zip Dolibarr +ErrorModuleFileRequired=Vous devez sélectionner un module de module Dolibarr +ErrorPhpCurlNotInstalled=Le PHP CURL n'est pas installé, c'est essentiel pour parler avec Paypal +ErrorFailedToAddToMailmanList=Impossible d'ajouter l'enregistrement %s à la liste Mailman %s ou à la base SPIP +ErrorFailedToRemoveToMailmanList=Impossible de supprimer l'enregistrement %s à la liste Mailman %s ou à la base SPIP +ErrorNewValueCantMatchOldValue=Une nouvelle valeur ne peut pas être égale à l'ancienne +ErrorFailedToValidatePasswordReset=Impossible de réinitialiser le mot de passe. Peut-être que le reinit était déjà fait (ce lien ne peut être utilisé qu'une seule fois). Sinon, essayez de redémarrer le processus de réinitialisation. +ErrorToConnectToMysqlCheckInstance=La connexion à la base de données échoue. Vérifiez que le serveur Mysql est en cours d'exécution (dans la plupart des cas, vous pouvez le lancer à partir de la ligne de commande avec 'sudo /etc/init.d/mysql start'). +ErrorFailedToAddContact=Impossible d'ajouter un contact +ErrorPaymentModeDefinedToWithoutSetup=Un mode de paiement a été configuré pour taper %s mais la configuration du module La facture n'a pas été complétée pour définir les informations à afficher pour ce mode de paiement. +ErrorOpenIDSetupNotComplete=Vous configurez le fichier de configuration Dolibarr pour autoriser l'authentification OpenID, mais l'URL du service OpenID n'est pas définie en constante %s +ErrorWarehouseMustDiffers=Les entrepôts source et cible doivent être différents +ErrorBadFormat=Mauvais format! +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Erreur, ce membre n'est pas encore lié à un tiers. Associez le membre à un tiers existant ou créez un nouveau tiers avant de créer une souscription avec facture. +ErrorThereIsSomeDeliveries=Une erreur, des livraisons sont liées à cette expédition. La suppression a été refusée. +ErrorCantDeletePaymentReconciliated=Impossible de supprimer un paiement qui a généré une entrée bancaire qui a été réconciliée +ErrorCantDeletePaymentSharedWithPayedInvoice=Impossible de supprimer un paiement partagé par au moins une facture avec le statut Payé +ErrorPriceExpression1=Impossible d'assigner à la constante '%s' +ErrorPriceExpression2=Impossible de redéfinir la fonction intégrée '%s' +ErrorPriceExpression3=Variable non définie '%s' en définition de fonction +ErrorPriceExpression5=Inattendue '%s' +ErrorPriceExpression6=Mauvais nombre d'arguments (%s donné, %s prévu) +ErrorPriceExpression8=Opérateur inattendu '%s' +ErrorPriceExpression10=Iperator '%s' manque d'opérande +ErrorPriceExpression11=En attendant '%s' +ErrorPriceExpression17=Variable non définie '%s' +ErrorPriceExpression19=Expression non trouvée +ErrorPriceExpression21=Résultat vide '%s' +ErrorSrcAndTargetWarehouseMustDiffers=Les entrepôts source et cible doivent être différents +ErrorTryToMakeMoveOnProductRequiringBatchData=Erreur, essayer de faire un mouvement de stock sans lot / informations en série, sur un produit nécessitant des informations de lot / série +ErrorCantSetReceptionToTotalDoneWithReceptionToApprove=Toutes les réceptions enregistrées doivent d'abord être vérifiées (approuvées ou refusées) avant d'être autorisées à effectuer cette action +ErrorCantSetReceptionToTotalDoneWithReceptionDenied=Toutes les réceptions enregistrées doivent d'abord être vérifiées (approuvées) avant d'être autorisées à effectuer cette action +ErrorGlobalVariableUpdater0=La demande HTTP a échoué avec l'erreur '%s' +ErrorGlobalVariableUpdater3=Les données demandées n'ont pas été trouvées en résultat +ErrorGlobalVariableUpdater5=Aucune variable globale sélectionnée +ErrorFieldMustBeANumeric=Le champ %s doit être une valeur numérique +ErrorMandatoryParametersNotProvided=Paramètre (s) obligatoire (s) non fourni +ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité / chef de file. Vous devez donc entrer son statut +ErrorFailedToLoadModuleDescriptorForXXX=Impossible de charger la classe descripteur du module pour %s +ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Définition incorrecte de la matrice de menus dans le descripteur de module (mauvaise valeur pour la clé fk_menu) +ErrorSavingChanges=Une erreur s'est produite lors de l'enregistrement des modifications +ErrorWarehouseRequiredIntoShipmentLine=Un entrepôt est requis sur la ligne à expédier +ErrorFileMustHaveFormat=Le fichier doit avoir un format %s ErrorSupplierCountryIsNotDefined=Le pays pour ce fournisseur n'est pas défini. Veuillez premièrement corriger cet élément. +ErrorsThirdpartyMerge=Impossible de fusionner les deux enregistrements. Demande annulée. +ErrorStockIsNotEnoughToAddProductOnOrder=Le stock n'est pas suffisant pour le produit %s pour l'ajouter à une nouvelle commande. +ErrorStockIsNotEnoughToAddProductOnInvoice=Le stock n'est pas suffisant pour le produit %s pour l'ajouter à une nouvelle facture. +ErrorStockIsNotEnoughToAddProductOnShipment=Le stock n'est pas suffisant pour le produit %s pour l'ajouter à un nouvel envoi. +ErrorStockIsNotEnoughToAddProductOnProposal=Le stock n'est pas suffisant pour le produit %s pour l'ajouter à une nouvelle proposition. +ErrorFailedToLoadLoginFileForMode=Impossible d'obtenir la touche de connexion pour le mode '%s'. +ErrorModuleNotFound=Le fichier du module n'a pas été trouvé. +ErrorFieldAccountNotDefinedForBankLine=Le compte Value for Accounting n'est pas défini pour l'identifiant de ligne source %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Le compte Value for Accounting n'est pas défini pour l'identifiant de la facture %s (%s) +ErrorFieldAccountNotDefinedForLine=Le compte Value for Accounting n'est pas défini pour la ligne (%s) +ErrorBankStatementNameMustFollowRegex=Erreur, le nom de la déclaration bancaire doit suivre la règle de syntaxe suivante %s +ErrorPhpMailDelivery=Vérifiez que vous n'utilisez pas un nombre trop élevé de destinataires et que votre contenu de courrier électronique n'est pas similaire à un Spam. Demandez également à votre administrateur de vérifier les fichiers de pare-feu et de journaux du serveur pour obtenir des informations plus complètes. +ErrorUserNotAssignedToTask=L'utilisateur doit être affecté à la tâche pour pouvoir saisir le temps consommé. +ErrorTaskAlreadyAssigned=Tâche déjà attribuée à l'utilisateur +ErrorModuleFileSeemsToHaveAWrongFormat=Le module module semble avoir un mauvais format. +ErrorFilenameDosNotMatchDolibarrPackageRules=Le nom du module package (%s) ne correspond pas à la syntaxe du nom attendu: %s +ErrorDuplicateTrigger=Erreur, nom du trigger en double %s. Déjà chargé à partir de %s. +ErrorNoWarehouseDefined=Erreur, aucun entrepôt n'a été défini. +ErrorBadLinkSourceSetButBadValueForRef=Le lien que vous utilisez n'est pas valide. Une «source» de paiement est définie, mais la valeur pour «ref» n'est pas valide. +ErrorTooManyErrorsProcessStopped=Trop d'erreurs. Le processus a été arrêté. +WarningPasswordSetWithNoAccount=Un mot de passe a été défini pour ce membre. Cependant, aucun compte utilisateur n'a été créé. Donc, ce mot de passe est stocké mais ne peut pas être utilisé pour vous connecter à Dolibarr. Il peut être utilisé par un module / interface externe, mais si vous n'avez pas besoin de définir un login ou un mot de passe pour un membre, vous pouvez désactiver l'option "Gérer une connexion pour chaque membre" de la configuration du module Membre. Si vous devez gérer une connexion mais n'avez pas besoin de mot de passe, vous pouvez garder ce champ vide pour éviter cet avertissement. Remarque: Le courrier électronique peut également être utilisé en tant que connexion si le membre est lié à un utilisateur. +WarningMandatorySetupNotComplete=Les paramètres de configuration obligatoires ne sont pas encore définis +WarningSafeModeOnCheckExecDir=Avertissement, l'option PHP safe_mode est activée, la commande doit être stockée dans un répertoire déclaré par le paramètre php safe_mode_exec_dir . +WarningBookmarkAlreadyExists=Un marque-page avec ce titre ou cette cible (URL) existe déjà. +WarningPassIsEmpty=Attention, le mot de passe de la base de données est vide. C'est un trou de sécurité. Vous devez ajouter un mot de passe à votre base de données et modifier votre fichier conf.php pour refléter cela. +WarningConfFileMustBeReadOnly=Avertissement, votre fichier de configuration ( htdocs / conf / conf.php ) peut être écrasé par le serveur Web. C'est un trou de sécurité sérieux. Modifiez les autorisations sur le fichier pour être en mode lecture seule pour l'utilisateur du système d'exploitation utilisé par le serveur Web. Si vous utilisez le format Windows et FAT pour votre disque, vous devez savoir que ce système de fichiers ne permet pas d'ajouter des autorisations au fichier, donc ne peut pas être complètement sécurisé. +WarningsOnXLines=Avertissements sur %s enregistrement source (s) +WarningNoDocumentModelActivated=Aucun modèle, pour la génération de document, n'a été activé. Un modèle sera choisi par défaut jusqu'à ce que vous vérifiez la configuration de votre module. +WarningLockFileDoesNotExists=Attention, une fois la configuration terminée, vous devez désactiver l'installation / la migration des outils en ajoutant un fichier install.lock dans le répertoire %s. Le fait de manquer ce fichier est un trou de sécurité. +WarningUntilDirRemoved=Tous les avertissements de sécurité (visibles uniquement par les utilisateurs d'administration) resteront actifs tant que la vulnérabilité est présente (ou que constante MAIN_REMOVE_INSTALL_WARNING est ajoutée dans Configuration-> Autre configuration). +WarningCloseAlways=Avertissement, la fermeture se fait même si le montant diffère entre les éléments source et cible. Activez cette fonctionnalité avec prudence. +WarningUsingThisBoxSlowDown=Avertissement, l'utilisation de cette boîte ralentit sérieusement toutes les pages montrant la boîte. +WarningClickToDialUserSetupNotComplete=L'installation des informations ClickToDial pour votre utilisateur n'est pas complète (voir l'onglet ClickToDial sur votre carte utilisateur). +WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Fonction désactivée lorsque la configuration de l'affichage est optimisée pour les navigateurs de personnes aveugles ou de texte. +WarningPaymentDateLowerThanInvoiceDate=La date de paiement (%s) est antérieure à la date de facture (%s) pour la facture %s. +WarningTooManyDataPleaseUseMoreFilters=Trop de données (plus de %s lignes). Utilisez plus de filtres ou réglez la constante %s à une limite supérieure. +WarningSomeLinesWithNullHourlyRate=Quelques fois ont été enregistrés par certains utilisateurs alors que leur taux horaire n'était pas défini. Une valeur de 0 %s par heure a été utilisée, mais cela peut entraîner une mauvaise évaluation du temps passé. +WarningYourLoginWasModifiedPleaseLogin=Votre connexion a été modifiée. Pour des raisons de sécurité, vous devrez vous connecter avec votre nouvelle connexion avant l'action suivante. +WarningAnEntryAlreadyExistForTransKey=Une entrée existe déjà pour la clé de traduction pour cette langue diff --git a/htdocs/langs/fr_CA/exports.lang b/htdocs/langs/fr_CA/exports.lang index 04f510da475..d1b114f8f3d 100644 --- a/htdocs/langs/fr_CA/exports.lang +++ b/htdocs/langs/fr_CA/exports.lang @@ -1,2 +1,112 @@ # Dolibarr language file - Source file is en_US - exports +ExportsArea=Zone d'exportation +ImportArea=Zone d'importation +NewExport=Nouvelle exportation +NewImport=Nouvelle importation +ExportableDatas=Ensemble de données exportables +ImportableDatas=Ensemble de données Importable +SelectExportDataSet=Choisissez l'ensemble de données que vous souhaitez exporter ... +SelectImportDataSet=Choisissez l'ensemble de données que vous souhaitez importer ... +SelectExportFields=Choisissez les champs que vous souhaitez exporter ou sélectionnez un profil d'exportation prédéfini +SelectImportFields=Choisissez les champs de fichier source que vous souhaitez importer et leur champ cible dans la base de données en les déplaçant vers le haut et vers le bas avec l'ancre %s ou sélectionnez un profil d'importation prédéfini: +NotImportedFields=Les champs du fichier source ne sont pas importés +SaveExportModel=Enregistrez ce profil d'exportation si vous prévoyez de le réutiliser plus tard ... +SaveImportModel=Enregistrez ce profil d'importation si vous prévoyez de le réutiliser plus tard ... +ExportModelName=Exporter le nom du profil +ExportModelSaved=Exporter le profil enregistré sous le nom %s. +ExportableFields=Champs d'exportation +ExportedFields=Champs exportés +ImportModelName=Nom du profil d'importation +ImportModelSaved=Importer le profil enregistré sous le nom %s. +DatasetToExport=Ensemble de données à exporter +DatasetToImport=Importer un fichier dans l'ensemble de données +ChooseFieldsOrdersAndTitle=Choisissez les champs d'ordre ... +FieldsTitle=Titre des champs +FieldTitle=Titre du champ +NowClickToGenerateToBuildExportFile=Maintenant, sélectionnez le format de fichier dans la zone de liste déroulante et cliquez sur "Générer" pour créer un fichier d'exportation ... +FormatedImport=Assistant d'importation +FormatedImportDesc1=Cette zone permet d'importer des données personnalisées, en utilisant un assistant pour vous aider en cours sans connaissance technique. +FormatedImportDesc2=La première étape consiste à choisir un roi de données que vous souhaitez charger, puis à charger, puis à choisir les champs que vous souhaitez charger. +FormatedExport=Assistant d'exportation +FormatedExportDesc1=Cette zone permet d'exporter des données personnalisées, en utilisant un assistant pour vous aider en cours sans connaissance technique. +FormatedExportDesc2=La première étape consiste à choisir un ensemble de données prédéfini, puis à choisir les champs que vous voulez dans vos fichiers de résultat et à quel ordre. +FormatedExportDesc3=Lorsque les données à exporter sont sélectionnées, vous pouvez définir le format de fichier de sortie auquel vous souhaitez exporter vos données. +Sheet=Drap +NoImportableData=Aucune donnée importable (aucun module avec des définitions permettant d'importer des données) +SQLUsedForExport=Requête SQL utilisée pour créer un fichier d'exportation +LineId=Id de ligne +LineLabel=Étiquette de ligne +LineDescription=Description de la ligne +LineUnitPrice=Prix ​​unitaire de la ligne +LineQty=Quantité pour ligne +LineTotalHT=Montant net d'impôt pour ligne +LineTotalTTC=Montant avec taxe pour ligne +LineTotalVAT=Montant de la TVA pour ligne +TypeOfLineServiceOrProduct=Type de ligne (0 = produit, 1 = service) +FileWithDataToImport=Fichier avec données à importer +FileMustHaveOneOfFollowingFormat=Le fichier à importer doit avoir un format suivant +DownloadEmptyExample=Télécharger l'exemple du fichier source vide +ChooseFormatOfFileToImport=Choisissez le format de fichier à utiliser comme format de fichier d'importation en cliquant sur picto %s pour le sélectionner ... +ChooseFileToImport=Téléchargez le fichier puis cliquez sur picto %s pour sélectionner le fichier comme fichier d'importation source ... +SourceFileFormat=Format de fichier source +FieldsInTargetDatabase=Champs cibles dans la base de données Dolibarr (gras = obligatoire) +NoFields=Pas de champs +MoveField=Déplacer le numéro de colonne du champ %s +SaveImportProfile=Enregistrer ce profil d'importation +ErrorImportDuplicateProfil=Impossible d'enregistrer ce profil d'importation avec ce nom. Un profil existant existe déjà avec ce nom. +TablesTarget=Tableaux ciblés +FieldsTarget=Champs ciblés +FieldTarget=Champ ciblé +NbOfSourceLines=Nombre de lignes dans le fichier source +NowClickToTestTheImport=Vérifiez les paramètres d'importation que vous avez définis. Si elles sont correctes, cliquez sur le bouton "%s" pour lancer une simulation du processus d'importation (aucune donnée ne sera modifiée dans votre base de données, c'est seulement une simulation pour le moment) ... +RunSimulateImportFile=Lancer la simulation d'importation +FieldNeedSource=Ce champ nécessite des données du fichier source +SomeMandatoryFieldHaveNoSource=Certains champs obligatoires n'ont aucune source à partir du fichier de données +SelectAtLeastOneField=Changer au moins un champ source dans la colonne de champs à exporter +SelectFormat=Choisissez ce format de fichier d'importation +RunImportFile=Lancer le fichier d'importation +NowClickToRunTheImport=Vérifier les résultats de la simulation d'importation. Si tout va bien, lancez l'importation définitive. +DataLoadedWithId=Toutes les données seront chargées avec l'identifiant d'importation suivant: %s +ErrorMissingMandatoryValue=Les données obligatoires sont vides dans le fichier source pour le champ %s. +TooMuchErrors=Il existe encore %s autres lignes source avec des erreurs, mais la sortie a été limitée. +TooMuchWarnings=Il existe encore %s autres lignes sources avec des avertissements mais la sortie a été limitée. +EmptyLine=Ligne vide (sera rejetée) +CorrectErrorBeforeRunningImport=Vous devez d'abord corriger toutes les erreurs avant d'exécuter l'importation définitive. +FileWasImported=Le fichier a été importé avec le numéro %s. +YouCanUseImportIdToFindRecord=Vous pouvez trouver tous les enregistrements importés dans votre base de données en filtrant sur le champ import_key = '%s'. +NbOfLinesOK=Nombre de lignes sans erreur et sans avertissement: %s. +NbOfLinesImported=Nombre de lignes importées avec succès: %s. +DataComeFromNoWhere=La valeur à insérer vient de nulle part dans le fichier source. +DataComeFromFileFieldNb=La valeur à insérer provient du numéro de champ %s dans le fichier source. +DataComeFromIdFoundFromRef=La valeur provenant du numéro de champ %s du fichier source sera utilisée pour trouver l'identifiant de l'objet parent à utiliser (Donc, l'objet %s qui a le ref. À partir du fichier source doit exister Dans Dolibarr). +DataComeFromIdFoundFromCodeId=Le code provenant du numéro de champ %sdu fichier source sera utilisé pour trouver l'identifiant de l'objet parent à utiliser (Donc, le code du fichier source doit exister dans le dictionnaire %s). Notez que si vous connaissez l'identification, vous pouvez également l'utiliser dans un fichier source au lieu du code. L'importation devrait fonctionner dans les deux cas. +DataIsInsertedInto=Les données provenant du fichier source seront insérées dans le champ suivant: +DataIDSourceIsInsertedInto=L'identifiant de l'objet parent trouvé à l'aide des données dans le fichier source sera inséré dans le champ suivant: +DataCodeIDSourceIsInsertedInto=L'identifiant de la ligne parent trouvée à partir du code, sera inséré dans le champ suivant: +SourceRequired=La valeur des données est obligatoire +SourceExample=Exemple de valeur de données possible +ExampleAnyRefFoundIntoElement=Toute référence pour l'élément %s +ExampleAnyCodeOrIdFoundIntoDictionary=Tout code (ou id) trouvé dans le dictionnaire %s +CSVFormatDesc= Comma Separated Value format de fichier (.csv).
C'est un format de fichier texte où les champs sont séparés par separator [%s]. Si le séparateur se trouve dans un contenu de champ, le champ est arrondis par un caractère rond [%s]. Le personnage d'évasion pour échapper au caractère rond est [%s]. +Excel95FormatDesc= Excel format de fichier (.xls)
C'est le format native Excel 95 (BIFF5). +Excel2007FormatDesc= Excel format de fichier (.xlsx)
C'est le format natif de Excel 2007 (SpreadsheetML). +TsvFormatDesc= Onglet Valeur séparée format de fichier (.tsv)
Il s'agit d'un format de fichier texte où les champs sont séparés par un tabulateur [onglet]. +ExportFieldAutomaticallyAdded=Le champ %sa été ajouté automatiquement. Cela vous évitera d'avoir des lignes similaires à traiter comme enregistrement en double (avec ce champ ajouté, toutes les lignes seront propriétaires de leur propre identifiant et seront différentes). +CsvOptions=Options Csv Separator=Séparateur de champ +Enclosure=Enceinte +ExportStringFilter=%% permet de remplacer un ou plusieurs caractères dans le texte +ExportDateFilter=AAAA, AAAAA, YYYMMDD: filtre d'ici un an / mois / jour
AAAA + YYYY, YYYYMM + YYYYMM, AAAAAAAA + AAAAMMDD: filtre sur une plage d'années / mois / jours
> AAAA, AAAAA, : Filtre sur toutes les années / mois / jours suivants NNNNN + NNNNN filtre sur une gamme de valeurs
> Filtres NNNNN par des valeurs plus élevées +ImportFromLine=Importation à partir du numéro de ligne +EndAtLineNb=Fin au numéro de ligne +ImportFromToLine=Importer les numéros de ligne (de - à) +SetThisValueTo2ToExcludeFirstLine=Par exemple, définissez cette valeur sur 3 pour exclure les 2 premières lignes +KeepEmptyToGoToEndOfFile=Gardez ce champ vide pour passer à la fin du fichier +SelectPrimaryColumnsForUpdateAttempt=Sélectionnez la (les) colonne (s) à utiliser comme clé primaire pour la tentative de mise à jour +UpdateNotYetSupportedForThisImport=La mise à jour n'est pas prise en charge pour ce type d'importation (uniquement insertion) +NoUpdateAttempt=Aucune tentative de mise à jour n'a été effectuée, insérer seulement +ImportDataset_user_1=Utilisateurs (employés ou non) et propriétés +SelectFilterFields=Si vous souhaitez filtrer certaines valeurs, il suffit d'entrer les valeurs ici. +FilteredFieldsValues=Valeur pour le filtre +KeysToUseForUpdates=Clé à utiliser pour la mise à jour des données diff --git a/htdocs/langs/fr_CA/holiday.lang b/htdocs/langs/fr_CA/holiday.lang index c0339838872..8b2bb1c91ec 100644 --- a/htdocs/langs/fr_CA/holiday.lang +++ b/htdocs/langs/fr_CA/holiday.lang @@ -1,11 +1,85 @@ # Dolibarr language file - Source file is en_US - holiday HRM=Gestion des ressources humaines +Holidays=Feuilles +CPTitreMenu=Feuilles +MenuReportMonth=Relevé mensuel +MenuAddCP=Nouvelle demande de congé +NotActiveModCP=Vous devez activer le module Déplacer pour afficher cette page. +AddCP=Demander un congé DateDebCP=Date de début DateFinCP=Date de fin DateCreateCP=Date création ApprovedCP=Approuver CancelCP=Annulé RefuseCP=Refusé +ListeCP=Liste des feuilles +SendRequestCP=Créer un congé +DelayToRequestCP=Les requêtes doivent être effectuées au moins %s jour (s) devant elles. +MenuConfCP=Balance des feuilles +SoldeCPUser=Le solde des feuilles est %s jours. +ErrorEndDateCP=Vous devez sélectionner une date de fin supérieure à la date de début. +ErrorSQLCreateCP=Une erreur SQL s'est produite lors de la création: +ErrorIDFicheCP=Une erreur s'est produite, la demande de congé n'existe pas. +ReturnCP=Retourner à la page précédente +ErrorUserViewCP=Vous n'êtes pas autorisé à lire cette demande de congé. +InfosWorkflowCP=Flux de travail d'information +RequestByCP=Demandé par +TitreRequestCP=Demande de congé +NbUseDaysCP=Nombre de jours de vacances consommés EditCP=Éditer StatutCP=État +TitleDeleteCP=Supprimer la demande de congé +ConfirmDeleteCP=Confirmer la suppression de cette demande de congé? +ErrorCantDeleteCP=Erreur, vous n'avez pas le droit de supprimer cette demande de congé. +CantCreateCP=Vous n'avez pas le droit de faire des demandes de congé. +InvalidValidatorCP=Vous devez choisir un approbateur à votre demande de congé. +NoDateDebut=Vous devez sélectionner une date de début. +NoDateFin=Vous devez sélectionner une date de fin. +ErrorDureeCP=Votre demande de congé ne contient pas de jour ouvrable. +TitleValidCP=Approuver la demande de congé +ConfirmValidCP=Êtes-vous sûr de vouloir approuver la demande de congé? +TitleToValidCP=Envoyer demande de congé +ConfirmToValidCP=Êtes-vous sûr de vouloir envoyer la demande de congé? +TitleRefuseCP=Refuser la demande de congé +ConfirmRefuseCP=Êtes-vous sûr de vouloir refuser la demande de congé? +NoMotifRefuseCP=Vous devez choisir une raison pour refuser la demande. +TitleCancelCP=Annuler la demande de congé +ConfirmCancelCP=Êtes-vous sûr de vouloir annuler la demande de congé? +DateRefusCP=Date de refus +DateCancelCP=Date d'annulation +addEventToUserCP=Assigner un congé MotifCP=Raison +ErrorAddEventToUserCP=Une erreur s'est produite lors de l'ajout du congé exceptionnel. +AddEventToUserOkCP=L'ajout du congé exceptionnel a été complété. +MenuLogCP=Afficher les journaux de modification +LogCP=Enregistrement des mises à jour des jours de vacances disponibles +ActionByCP=Interprété par +PrevSoldeCP=Solde précédent +NewSoldeCP=Nouvel équilibre +alreadyCPexist=Une demande de congé a déjà été faite sur cette période. +FirstDayOfHoliday=Premier jour de vacances +LastDayOfHoliday=Dernier jour de vacances +BoxTitleLastLeaveRequests=Dernier %s demandes de congé modifié +HolidaysCancelation=Laisser l'annulation de demande +EmployeeLastname=Nom de famille de l'employé +EmployeeFirstname=Prénom de l'employé +TypeWasDisabledOrRemoved=Laisser le type (id %s) a été désactivé ou supprimé +LastUpdateCP=Dernière mise à jour automatique de l'allocation des feuilles +MonthOfLastMonthlyUpdate=Mois de la dernière mise à jour automatique de l'allocation des feuilles +UpdateConfCPOK=Mis à jour avec succés. +Module27130Name=Gestion des demandes de congé +Module27130Desc=Gestion des demandes de congé +ErrorMailNotSend=Une erreur s'est produite lors de l'envoi du courrier électronique: +HolidaysToValidate=Valider les demandes de congé +HolidaysToValidateBody=Voici une demande de congé pour valider +HolidaysToValidateDelay=Cette demande de congé aura lieu dans un délai inférieur à %s jours. +HolidaysToValidateAlertSolde=L'utilisateur qui a fait cette demande de demande n'a pas assez de jours disponibles. +HolidaysValidated=Demandes de congés validés +HolidaysValidatedBody=Votre demande de congé pour %s à %s a été validée. +HolidaysRefused=Demande refusée +HolidaysRefusedBody=Votre demande de congé pour %s à %s a été refusée pour la raison suivante: +HolidaysCanceled=Demande d'annulation +HolidaysCanceledBody=Votre demande de congé pour %s à %s a été annulée. +FollowedByACounter=1: Ce type de congé doit être suivi d'un compteur. Le compteur est incrémenté manuellement ou automatiquement et lorsqu'une demande de congé est validée, le compteur est décrémenté.
0: Non suivi d'un compteur. +NoLeaveWithCounterDefined=Il n'existe aucun type de congé défini qui doit être suivi d'un compteur +GoIntoDictionaryHolidayTypes=Entrez dans Accueil - Configuration - Dictionnaires - Type de feuilles pour configurer les différents types de feuilles. diff --git a/htdocs/langs/fr_CA/install.lang b/htdocs/langs/fr_CA/install.lang index 6cfce2c80c3..cde4cbb1e6e 100644 --- a/htdocs/langs/fr_CA/install.lang +++ b/htdocs/langs/fr_CA/install.lang @@ -1,3 +1,18 @@ # Dolibarr language file - Source file is en_US - install -WarningUpgrade=Attention:\nEst-ce que votre exécuter une sauvegarde de base de données en premier?\nIl est fortement conseillé: par exemple, en raison de quelques bugs dans les systèmes de bases de données ( pour la version exemple mysql 5.5.40 / 41 /42/ 43) , certaines données ou tables peuvent être perdues au cours de ce processus , il est donc fortement conseillé d'avoir un vidage complet de votre base de données avant de commencer migration.\n\n\nCliquez sur OK pour lancer le processus de migration ... +PHPSupportCurl=Ce PHP supporte Curl. +ErrorPHPDoesNotSupportCurl=Votre installation PHP ne prend pas en charge Curl. +AdminLoginCreatedSuccessfuly=Connexion administrateur Dolibarr '%s' créé avec succès. +FailedToCreateAdminLogin=Impossible de créer un compte administrateur Dolibarr. +WarningUpgrade=Attention:\nEst-ce que vous avez effectué une sauvegarde de la base de données d'abord?\nCeci est très recommandé: par exemple, en raison de certains bogues dans les systèmes de bases de données (par exemple mysql version 5.5.40 / 41/42/43), certaines données ou tables peuvent être perdues au cours de ce processus, il est donc fortement recommandé de disposer d'un Déversement complet de votre base de données avant de commencer la migration.\n\nCliquez sur OK pour commencer le processus de migration ... +KeepDefaultValuesWamp=Comme vous utilisez l'assistant d'installation Dolibarr depuis DoliWamp, les valeurs proposées aux paramètres sont déjà optimisées. Ne les modifier qu'en connaissance de cause. +KeepDefaultValuesDeb=Comme vous utilisez l'assistant d'installation Dolibarr depuis un paquet Linux ou BSD (Ubuntu, Debian, Fedora, …), les valeurs proposées aux paramètres sont déjà optimisées. Seul le mot de passe du propriétaire de la base de données à créer est à renseigner. Ne modifiez les autres informations qu'en connaissance de cause. +KeepDefaultValuesMamp=Comme vous utilisez l'assistant d'installation Dolibarr depuis DoliMamp, les valeurs proposées aux paramètres sont déjà optimisées. Ne les modifiez qu'en connaissance de cause. +KeepDefaultValuesProxmox=Comme vous utilisez l'assistant d'installation Dolibarr depuis une machine virtuelle Proxmox, les valeurs proposées aux paramètres sont déjà optimisées. Ne les modifiez qu'en connaissance de cause. +MigrationSuccessfullUpdate=Mise à niveau réussie +MigrationContractsEmptyDatesUpdateSuccess=Contrat de correction de date d'emtpy effectué avec succès +MigrationContractsIncoherentCreationDateUpdateSuccess=Correction mauvaise valeur de la date de création du contrat effectuée avec succès +MigrationBankTransfertsUpdate=Mettre à jour les liens entre la saisie bancaire et un virement bancaire +MigrationRemiseEntity=Mise à jour de la valeur du champ de l'entité de llx_societe_remise +MigrationRemiseExceptEntity=Valeur du champ d'entité de mise à jour de llx_societe_remise_except MigrationReloadModule=Recharger module %s +ErrorFoundDuringMigration=Des erreurs ont été signalées lors du processus de migration, alors la prochaine étape n'est pas disponible. Pour ignorer les erreurs, vous pouvez cliquer ici , mais l'application ou certaines fonctionnalités peuvent ne pas fonctionner correctement jusqu'à ce qu'elles soient corrigées. diff --git a/htdocs/langs/fr_CA/interventions.lang b/htdocs/langs/fr_CA/interventions.lang index 46f819f49f0..5b92c324b23 100644 --- a/htdocs/langs/fr_CA/interventions.lang +++ b/htdocs/langs/fr_CA/interventions.lang @@ -1,2 +1,49 @@ # Dolibarr language file - Source file is en_US - interventions +InterventionCard=Carte d'intervention +AddIntervention=Créer une intervention +ActionsOnFicheInter=Actions sur l'intervention +LastInterventions=Dernières %s interventions +InterventionContact=Contact d'intervention +DeleteIntervention=Supprimer l'intervention +ValidateIntervention=Valider l'intervention +ModifyIntervention=Modifier l'intervention +DeleteInterventionLine=Supprimer la ligne d'intervention +CloneIntervention=Intervention de clone +ConfirmDeleteIntervention=Êtes-vous sûr de vouloir supprimer cette intervention? +ConfirmValidateIntervention=Êtes-vous sûr de vouloir valider cette intervention sous le nom %s? +ConfirmModifyIntervention=Êtes-vous sûr de vouloir modifier cette intervention? +ConfirmDeleteInterventionLine=Êtes-vous sûr de vouloir supprimer cette ligne d'intervention? +ConfirmCloneIntervention=Êtes-vous sûr de vouloir cloner cette intervention? +NameAndSignatureOfInternalContact=Nom et signature de l'intervention: +NameAndSignatureOfExternalContact=Nom et signature du client: +DocumentModelStandard=Modèle de document standard pour les interventions +InterventionCardsAndInterventionLines=Interventions et lignes d'intervention +InterventionClassifyBilled=Classer "facturé" +InterventionClassifyUnBilled=Classer "Non facturé" +InterventionClassifyDone=Classer "Terminé" StatusInterInvoiced=Facturées +ShowIntervention=Montrer l'intervention +SendInterventionRef=Soumission de l'intervention %s +SendInterventionByMail=Envoyer l'intervention par courrier électronique +InterventionClassifiedBilledInDolibarr=Intervention %s définie comme facturée +InterventionClassifiedUnbilledInDolibarr=Intervention %s définie comme non facturée +InterventionDeletedInDolibarr=Intervention %s supprimé +InterventionsArea=Zone d'intervention +DraftFichinter=Projet d'interventions +LastModifiedInterventions=Dernières %s interventions modifiées +TypeContact_fichinter_external_CUSTOMER=Suivi du contact client +PrintProductsOnFichinter=Imprimez également les lignes de type "produit" (non seulement les services) sur la carte d'intervention +PrintProductsOnFichinterDetails=Interventions générées à partir des commandes +UseServicesDurationOnFichinter=Utiliser la durée des services pour les interventions générées à partir des commandes +NbOfinterventions=Nb de cartes d'intervention +NumberOfInterventionsByMonth=Nb de cartes d'intervention par mois (date de validation) +InterId=ID d'intervention +InterRef=Intervention réf. +InterDateCreation=Intervention de création de date +InterDuration=Intervention de durée +InterStatus=Intervention d'état +InterNote=Note d'intervention +InterLineId=Intervention d'identification de ligne +InterLineDate=Intervention de la date limite +InterLineDuration=Intervention de durée de ligne +InterLineDesc=Intervention de description de ligne diff --git a/htdocs/langs/fr_CA/ldap.lang b/htdocs/langs/fr_CA/ldap.lang index bb9f35af0f5..19fb06a3b0c 100644 --- a/htdocs/langs/fr_CA/ldap.lang +++ b/htdocs/langs/fr_CA/ldap.lang @@ -1,2 +1,21 @@ # Dolibarr language file - Source file is en_US - ldap +DomainPassword=Mot de passe pour le domaine +YouMustChangePassNextLogon=Le mot de passe pour l'utilisateur %s sur le domaine %s doit être modifié. +UserMustChangePassNextLogon=L'utilisateur doit modifier le mot de passe sur le domaine %s +LDAPInformationsForThisContact=Information dans la base de données LDAP pour ce contact +LDAPInformationsForThisUser=Information dans la base de données LDAP pour cet utilisateur +LDAPInformationsForThisGroup=Information dans la base de données LDAP pour ce groupe +LDAPInformationsForThisMember=Information dans la base de données LDAP pour ce membre +LDAPCard=Carte LDAP +LDAPRecordNotFound=Enregistrement non trouvé dans la base de données LDAP +LDAPUsers=Utilisateurs dans la base de données LDAP LDAPFieldStatus=État +LDAPFieldFirstSubscriptionDate=Première date d'abonnement +LDAPFieldFirstSubscriptionAmount=Premier montant de souscription +LDAPFieldLastSubscriptionDate=La dernière date d'abonnement +LDAPFieldLastSubscriptionAmount=Dernier montant de souscription +LDAPFieldSkypeExample=Exemple: skypeName +UserSynchronized=Synchronisé par l'utilisateur +MemberSynchronized=Membre synchronisé +ForceSynchronize=Force la synchronisation Dolibarr -> LDAP +ErrorFailedToReadLDAP=Impossible de lire la base de données LDAP. Vérifiez l'installation du module LDAP et l'accessibilité de la base de données. diff --git a/htdocs/langs/fr_CA/mails.lang b/htdocs/langs/fr_CA/mails.lang index 71ecef377dd..b17db32f75b 100644 --- a/htdocs/langs/fr_CA/mails.lang +++ b/htdocs/langs/fr_CA/mails.lang @@ -1,2 +1,127 @@ # Dolibarr language file - Source file is en_US - mails +Mailing=Emission +EMailing=Emission +AllEMailings=Tous les eMailings +MailCard=Carte de préhension +MailRecipients=Récipiendaires +MailRecipient=Bénéficiaire +MailFrom=Expéditeur +MailReply=Répondre à +MailTo=Récepteur (s) +MailCC=Copier +MailCCC=Copie en cache vers +MailTopic=Sujet EMail +MailMessage=Courrier électronique +ShowEMailing=Afficher le courrier électronique +ListOfEMailings=Liste des courriers électroniques +NewMailing=Nouveau courrier électronique +EditMailing=Modifier le courrier électronique +ResetMailing=Renvoyer l'envoi par courrier électronique +DeleteMailing=Supprimer l'envoi par courrier électronique +DeleteAMailing=Supprimer un courrier électronique +PreviewMailing=Aperçu de l'envoi par courrier électronique +CreateMailing=Créer un email +TestMailing=E-mail de test +ValidMailing=Courrier électronique valide MailingStatusValidated=Validée +MailSuccessfulySent=Courrier électronique (de %s à %s) accepté avec succès pour la livraison +MailingSuccessfullyValidated=Emission validée avec succès +MailUnsubcribe=Se désabonner +MailingStatusReadAndUnsubscribe=Lire et se désabonner +ErrorMailRecipientIsEmpty=Le destinataire du courrier électronique est vide +WarningNoEMailsAdded=Pas de nouveau courrier électronique pour ajouter à la liste des destinataires. +ConfirmValidMailing=Êtes-vous sûr de vouloir valider ce courrier électronique? +ConfirmResetMailing=Avertissement, en réinitialisant le courrier électronique %s, vous permettez de faire un envoi en masse de cet email à un autre moment. Êtes-vous sûr que c'est ce que vous voulez faire? +ConfirmDeleteMailing=Êtes-vous sûr de vouloir supprimer cette mise en cache? +NbOfUniqueEMails=Nb d'emails uniques +TotalNbOfDistinctRecipients=Nombre de destinataires distincts +NoTargetYet=Pas encore de destinataires définis (Passez sur l'onglet 'Récipients') +RemoveRecipient=Supprimer le destinataire +YouCanAddYourOwnPredefindedListHere=Pour créer votre module sélecteur de messagerie, voir htdocs / core / modules / mailings / README. +EMailTestSubstitutionReplacedByGenericValues=Lors de l'utilisation du mode de test, les variables de substitution sont remplacées par des valeurs génériques +MailingAddFile=Joignez ce fichier +NoAttachedFiles=Pas de fichiers joints +BadEMail=Mauvaise valeur pour EMail +ConfirmCloneEMailing=Êtes-vous sûr de vouloir cloner ce courrier électronique? +CloneReceivers=Récipiendaires Cloner +DateLastSend=Date de l'envoi le plus récent +DateSending=Envoi de la date +SentTo=Envoyé à %s +MailingStatusRead=Lis +YourMailUnsubcribeOK=Le courrier électronique %s est correctement désactivé à partir de la liste de diffusion +ActivateCheckReadKey=Clé utilisée pour chiffrer l'URL utilisée pour la fonctionnalité "Réception de lecture" et "Désinscription" +EMailSentToNRecipients=EMail envoyé aux destinataires %s. +EMailSentForNElements=EMail envoyé pour les éléments %s. +XTargetsAdded=%s les destinataires ajoutés dans la liste cible +OnlyPDFattachmentSupported=Si le document PDF a déjà été généré pour l'objet à envoyer, il sera joint au courrier électronique. Sinon, aucun courrier électronique ne sera envoyé (notez également que seuls les documents pdf sont pris en charge comme pièce jointe dans l'envoi de masse dans cette version). +AllRecipientSelected=Toutes les tierces parties sélectionnées et si un courrier électronique est défini. +ResultOfMailSending=Résultat de la messe EMail envoi +NbIgnored=Nb a ignoré +ConfirmUnvalidateEmailing=Êtes-vous sûr de vouloir modifier le courrier électronique %s pour rédiger un état? +MailingModuleDescContactsWithThirdpartyFilter=Contact avec les filtres clients +MailingModuleDescContactsByCompanyCategory=Contacts par catégorie de tiers +MailingModuleDescContactsByCategory=Contacts par catégories +MailingModuleDescContactsByFunction=Contacts par poste +LineInFile=Ligne %s dans le fichier +RecipientSelectionModules=Demandes définies pour la sélection du destinataire +MailSelectedRecipients=Récipiendaires sélectionnés +MailingArea=Zone d'édition +LastMailings=Derniers %s messages électroniques +TargetsStatistics=Statistiques des cibles +NbOfCompaniesContacts=Contacts / adresses uniques +MailNoChangePossible=Les destinataires pour les courriers électroniques validés ne peuvent pas être modifiés +SearchAMailing=Chercher l'envoi postal +SendMailing=Envoyer un courrier électronique +SendMail=Envoyer un courrier électronique +SentBy=Envoyée par +MailingNeedCommand=L'envoi d'un courrier électronique peut être effectué à partir de la ligne de commande. Demandez à votre administrateur du serveur de lancer la commande suivante pour envoyer le courrier électronique à tous les destinataires: +MailingNeedCommand2=Vous pouvez cependant les envoyer en ligne en ajoutant le paramètre MAILING_LIMIT_SENDBYWEB avec la valeur du nombre maximum d'emails que vous souhaitez envoyer par session. Pour cela, passez à la page d'accueil - Configuration - Autre. +ConfirmSendingEmailing=Si vous souhaitez envoyer des courriels directement à partir de cet écran, veuillez confirmer que vous souhaitez envoyer des courriels maintenant depuis votre navigateur? +LimitSendingEmailing=Remarque: l'envoi de courriels à partir de l'interface Web se fait plusieurs fois pour des raisons de sécurité et de délai, %s destinataires à la fois pour chaque session d'envoi. +TargetsReset=Effacer la liste +ToClearAllRecipientsClickHere=Cliquez ici pour effacer la liste des destinataires pour ce courrier électronique +ToAddRecipientsChooseHere=Ajouter les destinataires en choisissant parmi les listes +NbOfEMailingsReceived=Courrier électronique de masse reçu +NbOfEMailingsSend=Envoi massif envoyé +IdRecord=Enregistrement d'identité +YouCanUseCommaSeparatorForSeveralRecipients=Vous pouvez utiliser le séparateur virgule pour spécifier plusieurs destinataires. +TagCheckMail=Suivre l'ouverture du courrier +TagUnsubscribe=Désinscription lien +TagSignature=Signature envoyant l'utilisateur +EMailRecipient=Destinataire E-mail +TagMailtoEmail=Lien de courrier électronique du destinataire (y compris html "mailto:") +NoEmailSentBadSenderOrRecipientEmail=Aucun courriel envoyé. Mauvais expéditeur ou courrier électronique du destinataire. Vérifiez le profil de l'utilisateur. +NoNotificationsWillBeSent=Aucune notification par courrier électronique n'est prévue pour cet événement et cette entreprise +ANotificationsWillBeSent=1 notification sera envoyée par courrier électronique +SomeNotificationsWillBeSent=%s les notifications seront envoyées par courrier électronique +AddNewNotification=Activer un nouvel objectif / événement de notification par courrier électronique +ListOfActiveNotifications=Liste tous les cibles / événements actifs pour la notification par courrier électronique +ListOfNotificationsDone=Liste toutes les notifications par courrier électronique envoyées +MailSendSetupIs=La configuration de l'envoi de courrier électronique a été configurée sur '%s'. Ce mode ne peut pas être utilisé pour envoyer des messages électroniques de masse. +MailSendSetupIs2=Vous devez d'abord aller, avec un compte admin, dans le menu %sHome - Configuration - EMails%s pour modifier le paramètre '%s' pour utiliser le mode '%s'. Avec ce mode, vous pouvez entrer dans la configuration du serveur SMTP fourni par votre fournisseur de services Internet et utiliser la fonctionnalité de messagerie en masse. +MailSendSetupIs3=Si vous avez des questions sur la configuration de votre serveur SMTP, vous pouvez demander à %s. +YouCanAlsoUseSupervisorKeyword=Vous pouvez également ajouter le mot-clé __ SUPERVISOREMAIL __ pour que le courrier électronique soit envoyé au superviseur de l'utilisateur (fonctionne uniquement si un email est défini pour ce superviseur) +NbOfTargetedContacts=Nombre actuel d'emails de contact ciblés +UseFormatFileEmailToTarget=Le fichier importé doit avoir un format email; nom; prénom; autre +UseFormatInputEmailToTarget=Entrez une chaîne avec le format email; nom; prénom; autre +MailAdvTargetRecipients=Récipiendaires (sélection avancée) +AdvTgtTitle=Remplissez les champs de saisie pour présélectionner les tierces parties ou les contacts / adresses à cibler +AdvTgtSearchTextHelp=Utilisez %% comme caractères magiques. Par exemple, pour trouver tous les éléments comme jean, joe, jim, vous pouvez entrer j%%, vous pouvez également utiliser; Comme séparateur pour la valeur et l'utilisation! Sauf pour cette valeur. Par exemple jean; joe; jim%%;! jimo;! Jima% ciblera tous jean, joe, commence par jim mais pas jimo et pas tout le monde commence par jima +AdvTgtSearchIntHelp=Intervalle d'utilisation pour sélectionner la valeur int ou flottante +AdvTgtMinVal=Valeur minimale +AdvTgtSearchDtHelp=Intervalle d'utilisation pour sélectionner la valeur de la date +AdvTgtStartDt=Démarrez dt. +AdvTgtEndDt=Fin dt. +AdvTgtTypeOfIncudeHelp=Email cible de tiers et courrier électronique de contact du tiers, ou simplement un courrier électronique de tiers ou simplement un courrier électronique de contact +AdvTgtTypeOfIncude=Type d'email ciblé +AdvTgtContactHelp=Utilisez uniquement si vous ciblez le contact dans "Type d'email ciblé" +RemoveAll=Enlever tout +ItemsCount=Articles) +AdvTgtAddContact=Ajouter les emails selon les critères +AdvTgtLoadFilter=Filtre de charge +AdvTgtDeleteFilter=Supprimer le filtre +AdvTgtCreateFilter=Créer un filtre +NoContactWithCategoryFound=Aucun contact / adresse avec une catégorie trouvée +NoContactLinkedToThirdpartieWithCategoryFound=Aucun contact / adresse avec une catégorie trouvée +OutGoingEmailSetup=Configuration de messagerie sortante +InGoingEmailSetup=Configuration de messagerie entrante diff --git a/htdocs/langs/fr_CA/main.lang b/htdocs/langs/fr_CA/main.lang index e0e41b700d6..15a815ae518 100644 --- a/htdocs/langs/fr_CA/main.lang +++ b/htdocs/langs/fr_CA/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -24,798 +20,159 @@ FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Connexion à la base de donnée -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=Pas de traduction -NoRecordFound=Aucun enregistrement trouvé -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=Aucune erreur -Error=Erreur -Errors=Erreurs -ErrorFieldRequired=Le champ '%s' est obligatoire -ErrorFieldFormat=Le champ '%s' a une valeur incorrecte -ErrorFileDoesNotExists=Le fichier %s n'existe pas -ErrorFailedToOpenFile=Impossible d'ouvrir le fichier %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Paramètre %s non défini -ErrorUnknown=Erreur inconnue -ErrorSQL=Erreur SQL -ErrorLogoFileNotFound=Le fichier logo '%s' n'a pas été trouvé -ErrorGoToGlobalSetup=Allez dans la Configuration 'Société/Institution' pour corriger -ErrorGoToModuleSetup=Allez dans la Configuration du module pour corriger -ErrorFailedToSendMail=Échec de l'envoi de l'email (émetteur=%s, destinataire=%s) -ErrorFileNotUploaded=Le fichier n'a pas été transféré. Vérifiez que sa taille ne dépasse pas le maxium autorisé, que l'espace disque est disponible et qu'un fichier du même nom n'existe pas déjà. -ErrorInternalErrorDetected=Erreur détectée -ErrorWrongHostParameter=Mauvais paramètre Serveur -ErrorYourCountryIsNotDefined=Votre pays n'est pas défini. Corriger en allant dans Accueil-Configuration-Société/Institution-Editer. -ErrorRecordIsUsedByChild=Impossible de supprimer cet enregistrement. Ce dernier est utilisé en tant que père par au moins un enregistrement fils. -ErrorWrongValue=Valeur incorrecte -ErrorWrongValueForParameterX=Valeur incorrecte pour le paramètre %s -ErrorNoRequestInError=Aucune requête en erreur -ErrorServiceUnavailableTryLater=Service non disponible actuellement. Réessayer plus tard. -ErrorDuplicateField=Doublon dans un champ unique -ErrorSomeErrorWereFoundRollbackIsDone=Des erreurs ont été trouvées. On rollback les modifications. -ErrorConfigParameterNotDefined=Le paramètre %s n'est pas défini dans le fichier de configuration Dolibarr conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Impossible de trouver l'utilisateur %s dans la base Dolibarr. -ErrorNoVATRateDefinedForSellerCountry=Erreur, aucun taux tva défini pour le pays '%s'. +NoTemplateDefined=Aucun modèle défini pour ce type de courrier électronique +ErrorCanNotCreateDir=Impossible de créer le dir %s +ErrorCanNotReadDir=Impossible de lire le dir %s +ErrorGoToGlobalSetup=Accédez à la configuration 'Société / Organisation' pour corriger cela ErrorNoSocialContributionForSellerCountry=Erreur, aucun type de charges défini pour le pays '%s'. -ErrorFailedToSaveFile=Erreur, l'enregistrement du fichier a échoué. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Définir date -SelectDate=Sélectionnez une date -SeeAlso=Voir aussi %s -SeeHere=Regardez ici -Apply=Appliquer -BackgroundColorByDefault=Couleur de fond -FileRenamed=The file was successfully renamed -FileUploaded=Le fichier a été transféré avec succès -FileGenerated=The file was successfully generated -FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela. -NbOfEntries=Nb d'entrées -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Consulter l'aide -RecordSaved=Enregistrement sauvegardé -RecordDeleted=Enregistrement supprimé -LevelOfFeature=Niveau de fonctionnalités -NotDefined=Non défini -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrateur -Undefined=Non défini -PasswordForgotten=Password forgotten? -SeeAbove=Voir ci-dessus -HomeArea=Espace accueil -LastConnexion=Latest connection -PreviousConnexion=Connexion précédente -PreviousValue=Previous value -ConnectedOnMultiCompany=Connexion sur l'entité -ConnectedSince=Connecté depuis -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Type gestionnaire de base de données -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr a détecté une erreur technique -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Plus d'information -TechnicalInformation=Informations techniques -TechnicalID=Technical ID -NotePublic=Note (publique) -NotePrivate=Note (privée) -PrecisionUnitIsLimitedToXDecimals=Dolibarr a été configuré pour limiter la précision des prix unitaires à %s décimales. -DoTest=Tester -ToFilter=Filtrer -NoFilter=Pas de filtre -WarningYouHaveAtLeastOneTaskLate=Attention, vous avez au moins un élément qui a dépassé le délai de tolérance de retard. -yes=oui -Yes=Oui -no=non -No=Non -All=Tout -Home=Accueil -Help=Aide -OnlineHelp=Aide en ligne -PageWiki=Page Wiki -MediaBrowser=Media browser -Always=Toujours -Never=Jamais -Under=sous -Period=Période -PeriodEndDate=Date fin période -Activate=Activer -Activated=Activé -Closed=Clôturé -Closed2=Fermé -NotClosed=Not closed -Enabled=Actif -Deprecated=Obsolète -Disable=Désactiver -Disabled=Désactivé -Add=Ajouter -AddLink=Lier +ErrorCannotAddThisParentWarehouse=Vous essayez d'ajouter un entrepôt parent qui est déjà un enfant de l'actuel +MaxNbOfRecordPerPage=Nombre maximum d'enregistrements par page +NotAuthorized=Vous n'êtes pas autorisé à le faire. +GoToWikiHelpPage=Lire l'aide en ligne (accès Internet nécessaire) +DolibarrInHttpAuthenticationSoPasswordUseless=Le mode d'authentification Dolibarr est défini sur %s dans le fichier de configuration conf.php.
Cela signifie que la base de données de mots de passe est externe à Dolibarr, donc changer ce champ peut ne pas avoir d'effet . +PasswordForgotten=Mot de passe oublié? +AuthenticationMode=Mode d'authentification +RequestedUrl=URL requise +RequestLastAccessInError=Erreur de demande d'accès à la base de données la plus récente +ReturnCodeLastAccessInError=Code de retour pour la dernière erreur de demande d'accès à la base de données +InformationLastAccessInError=Informations pour la dernière erreur de demande d'accès à la base de données +InformationToHelpDiagnose=Cette information peut être utile à des fins de diagnostic +TechnicalID=ID technique +MediaBrowser=Navigateur multimédia +NotClosed=Pas fermé RemoveLink=Supprimer lien -AddToDraft=Add to draft -Update=Modifier -Close=Clôturer -CloseBox=Remove widget from your dashboard -Confirm=Confirmer -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Supprimer -Remove=Enlever -Resiliate=Terminate -Cancel=Annuler -Modify=Modifier -Edit=Éditer -Validate=Valider -ValidateAndApprove=Valider et Approuver -ToValidate=À valider -Save=Enregistrer -SaveAs=Enregistrer sous -TestConnection=Tester la connexion -ToClone=Cloner -ConfirmClone=Veuillez choisir votre option de clonage : -NoCloneOptionsSpecified=Aucun option de clonage n'a été spécifiée. -Of=du -Go=Aller -Run=Lancer -CopyOf=Copie de -Show=Voir -Hide=Hide -ShowCardHere=Voir la fiche ici -Search=Rechercher -SearchOf=Recherche de -Valid=Valider -Approve=Approuver -Disapprove=Désapprouver -ReOpen=Réouvrir -Upload=Envoyer fichier -ToLink=Lier -Select=Sélectionner -Choose=Choisir -Resize=Redimensionner -Recenter=Recadrer -Author=Auteur -User=Utilisateur -Users=Utilisateurs -Group=Groupe -Groups=Groupes -NoUserGroupDefined=Pas de groupe utilisateur défini -Password=Mot de passe -PasswordRetype=Retaper le mot de passe +AddToDraft=Ajouter au projet +CloseBox=Supprimer le widget de votre tableau de bord +ConfirmSendCardByMail=Voulez-vous vraiment envoyer le contenu de cette carte par mail à %s? +Resiliate=Mettre fin +NotValidated=Pas validé NoteSomeFeaturesAreDisabled=Attention, seules quelques modules/fonctionnalités ont été activés dans cette démo. -Name=Nom -Person=Personne -Parameter=Paramètre -Parameters=Paramètres -Value=Valeur -PersonalValue=Valeur personnelle -NewValue=Nouvelle valeur -CurrentValue=Valeur courante -Code=Code -Type=Type -Language=Langue -MultiLanguage=Multi-langage -Note=Note -Title=Titre -Label=Libellé -RefOrLabel=Réf. ou libellé -Info=Suivi -Family=Famille -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Action -About=À propos -Number=Nombre -NumberByMonth=Nombre par mois -AmountByMonth=Montant par mois -Numero=Numéro -Limit=Limite -Limits=Limites -Logout=Déconnexion -NoLogoutProcessWithAuthMode=Pas de fonctionnalité de déconnexion applicative avec le mode d'authentification %s -Connection=Connexion -Setup=Configuration -Alert=Alerte -Previous=Précédent -Next=Suivant -Cards=Fiches -Card=Fiche -Now=Maintenant -HourStart=Heure de début -Date=Date -DateAndHour=Date et heure -DateToday=Today's date -DateReference=Reference date +DefaultModel=Modèle de docteur par défaut +DateToday=La date d'aujourd'hui DateStart=Date de début DateEnd=Date de fin -DateCreation=Date création -DateCreationShort=Creat. date -DateModification=Date modification -DateModificationShort=Date modif. -DateLastModification=Latest modification date -DateValidation=Date validation -DateClosing=Date clôture -DateDue=Date échéance -DateValue=Date valeur -DateValueShort=Date valeur -DateOperation=Date opération -DateOperationShort=Date opé. -DateLimit=Date limite -DateRequest=Date demande -DateProcess=Date traitement -DateBuild=Date génération du rapport -DatePayment=Date paiement -DateApprove=Date approbation -DateApprove2=Date approbation (deuxième approbation) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=an -DurationMonth=mois -DurationWeek=semaine -DurationDay=jour -DurationYears=ans -DurationMonths=mois -DurationWeeks=semaines -DurationDays=jours -Year=Année -Month=Mois -Week=Semaine -WeekShort=Semaine -Day=Jour -Hour=Heure -Minute=Minute -Second=Seconde -Years=Années -Months=Mois -Days=Jours -days=jours -Hours=Heures -Minutes=Minutes -Seconds=Secondes -Weeks=Semaines -Today=Aujourd'hui -Yesterday=Hier -Tomorrow=Demain -Morning=Matin -Afternoon=Après-midi -Quadri=Trimestre -MonthOfDay=Mois du jour -HourShort=H -MinuteShort=mn -Rate=Taux -CurrencyRate=Currency conversion rate +DateCreationShort=Création. rendez-vous amoureux +DateLastModification=Dernière date de modification +UserCreation=Utilisateur de la création +UserModification=Modification utilisateur +UserCreationShort=Création. utilisateur +UserModificationShort=Modif. utilisateur +CurrencyRate=Taux de conversion monétaire UseLocalTax=Inclure taxe -Bytes=Octets -KiloBytes=Kilooctets -MegaBytes=Mégaoctets -GigaBytes=Gigaoctets -TeraBytes=Teraoctets -b=o. -Kb=Ko -Mb=Mo -Gb=Go -Tb=To -Cut=Couper -Copy=Copier -Paste=Coller -Default=Défaut -DefaultValue=Valeur par défaut -Price=Prix -UnitPrice=Prix unitaire +DefaultValues=Les valeurs par défaut UnitPriceHT=Prix unitaire (no tax.) UnitPriceTTC=Prix unitaire tx incl. -PriceU=P.U. PriceUHT=Prix -PriceUHTCurrency=U.P (currency) +PriceUHTCurrency=U.P (devise) PriceUTTC=P.U. (tx incl.) -Amount=Montant -AmountInvoice=Montant facture -AmountPayment=Montant paiement AmountHTShort=Montant (no tax.) AmountTTCShort=Montant (tx incl.) AmountHT=Montant (no tax.) AmountTTC=Montant (tx incl.) AmountVAT=Montant TPS/TVH -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencyAlreadyPaid=Déjà payé, monnaie d'origine +MulticurrencyRemainderToPay=Reste à payer, monnaie d'origine +MulticurrencyPaymentAmount=Montant du paiement, monnaie d'origine +MulticurrencyAmountHT=Montant (net d'impôt), monnaie d'origine +MulticurrencyAmountTTC=Montant (hors taxe), monnaie d'origine +MulticurrencyAmountVAT=Montant de l'impôt, monnaie d'origine AmountLT1=Montant TVQ -AmountLT2=Montant Tax 3 -AmountLT1ES=Montant RE -AmountLT2ES=Montant IRPF -AmountTotal=Montant total -AmountAverage=Montant moyen PriceQtyMinHT=Prix quantité min. (no tax.) -Percentage=Pourcentage -Total=Total -SubTotal=Sous-total TotalHTShort=Total (no tax.) -TotalHTShortCurrency=Total (net in currency) +TotalHTShortCurrency=Total (en devise nette) TotalTTCShort=Total (tx incl.) TotalHT=Sous-total TotalHTforthispage=Montant (no tax.) pour la page -Totalforthispage=Total for this page TotalTTC=Total TotalTTCToYourCredit=Total (tx incl.) à votre crédit TotalVAT=Total TPS/TVH TotalLT1=Total TVQ -TotalLT2=Total Taxe 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF HT=no tax. TTC=tx incl. VAT=TPS/TVH VATs=Taxes de vente -LT1ES=RE -LT2ES=IRPF VATRate=Taux TPS/TVH -Average=Moyenne -Sum=Somme -Delta=Écart -Module=Module -Option=Option -List=Liste -FullList=Liste complète -Statistics=Statistiques -OtherStatistics=Autres statistiques -Status=État -Favorite=Favori -ShortInfo=Infos -Ref=Réf. -ExternalRef=Réf. externe -RefSupplier=Réf. fournisseur -RefPayment=Réf. paiement -CommercialProposalsShort=Propositions/devis -Comment=Commentaire -Comments=Commentaires -ActionsToDo=Événements à faire -ActionsToDoShort=À faire -ActionsDoneShort=Effectuées -ActionNotApplicable=Non applicable -ActionRunningNotStarted=A réaliser -ActionRunningShort=In progress -ActionDoneShort=Terminé -ActionUncomplete=Incomplets -CompanyFoundation=Société ou institution -ContactsForCompany=Contacts de ce tiers -ContactsAddressesForCompany=Contacts/adresses de ce tiers -AddressesForCompany=Adresses de ce tiers -ActionsOnCompany=Événements vis à vis de ce tiers -ActionsOnMember=Événements vis à vis de cet adhérent -NActionsLate=%s en retard -RequestAlreadyDone=Requête déjà enregistrée -Filter=Filtre -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Supprimer filtre -ChartGenerated=Graphiques générés -ChartNotGenerated=Graphique non généré -GeneratedOn=Généré le %s -Generate=Générer -Duration=Durée -TotalDuration=Durée totale -Summary=Résumé -DolibarrStateBoard=Statistiques -DolibarrWorkBoard=Tableau de bord de travail -Available=Disponible -NotYetAvailable=Pas encore disponible -NotAvailable=Non disponible -Categories=Tags/catégories -Category=Tag/catégorie -By=Par -From=Du -to=au -and=et -or=ou -Other=Autre -Others=Autres -OtherInformations=Autres informations -Quantity=Quantité -Qty=Qté -ChangedBy=Modifié par -ApprovedBy=Approuvé par -ApprovedBy2=Approuvé par (deuxième approbation) +Module=Module / Application +Modules=Modules / Applications +CompanyFoundation=Société / Organisation +FilterOnInto=Critères de recherche '%s' dans les champs %s +DolibarrStateBoard=Statistiques de base de données +DolibarrWorkBoard=Ouvrir le tableau de bord des éléments Approved=Approuver -Refused=Refusé -ReCalculate=Recalculer -ResultKo=Échec -Reporting=Rapport -Reportings=Rapports -Draft=Brouillon -Drafts=Brouillons -Validated=Validé -Opened=Opened -New=Nouveau -Discount=Remise -Unknown=Inconnu -General=Général -Size=Taille -Received=Reçu -Paid=Payé -Topic=Sujet -ByCompanies=Par tiers -ByUsers=Par utilisateur -Links=Liens -Link=Lien -Rejects=Rejets -Preview=Aperçu -NextStep=Étape suivante -Datas=Données -None=Aucun -NoneF=Aucune -Late=Retard -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Photo -Photos=Photos -AddPhoto=Ajouter photo +Opened=Ouverte +LateDesc=Retard pour définir si un enregistrement est en retard ou non dépend de votre configuration. Demandez à votre administrateur de modifier le délai du menu Accueil - Configuration - Alertes. DeletePicture=Supprimer image ConfirmDeletePicture=Etes-vous sur de vouloir supprimer cette image ? -Login=Identifiant -CurrentLogin=Identifiant courant -EnterLoginDetail=Enter login details -January=janvier -February=février -March=mars -April=avril -May=mai -June=juin -July=juillet -August=août -September=septembre -October=octobre -November=novembre -December=décembre -JanuaryMin=Jan -FebruaryMin=Fév -MarchMin=Mars -AprilMin=Avr -MayMin=Mai -JuneMin=Juin -JulyMin=Juil -AugustMin=Août -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Déc -Month01=Janvier -Month02=Février -Month03=Mars -Month04=Avril -Month05=Mai -Month06=Juin -Month07=Juillet -Month08=Août -Month09=Septembre -Month10=Octobre -Month11=Novembre -Month12=Décembre -MonthShort01=Jan. -MonthShort02=Fév. -MonthShort03=Mars -MonthShort04=Avr. -MonthShort05=Mai -MonthShort06=Juin -MonthShort07=Juil. -MonthShort08=Août -MonthShort09=Sep. -MonthShort10=Oct. -MonthShort11=Nov. -MonthShort12=Déc. -AttachedFiles=Fichiers et documents joints -FileTransferComplete=Le fichier a été correctement transféré -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Nom du rapport -ReportPeriod=Période d'analyse -ReportDescription=Description -Report=Rapport -Keyword=Keyword -Origin=Origin -Legend=Légende -Fill=Remplir -Reset=Vider -File=Fichier -Files=Fichiers -NotAllowed=Non autorisé -ReadPermissionNotAllowed=Lecture non autorisée -AmountInCurrency=Montants exprimés en %s -Example=Exemple -Examples=Exemples -NoExample=Pas d'exemple -FindBug=Signaler un bug -NbOfThirdParties=Nombre de tiers -NbOfLines=Nombre de lignes -NbOfObjects=Nombre d'objets -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Quantité totale -DateFromTo=Du %s au %s -DateFrom=A partir du %s -DateUntil=Jusqu'au %s -Check=Vérifier -Uncheck=Décocher -Internal=Interne -External=Externe -Internals=Internes -Externals=Externes -Warning=Alerte -Warnings=Alertes -BuildDoc=Générer le doc -Entity=Environnement -Entities=Environnements -CustomerPreview=Aperçu client -SupplierPreview=Aperçu fournisseur -ShowCustomerPreview=Afficher aperçu client -ShowSupplierPreview=Afficher aperçu fournisseur -RefCustomer=Réf. client -Currency=Devise -InfoAdmin=Information pour les administrateurs -Undo=Annuler -Redo=Refaire -ExpandAll=Tout dérouler -UndoExpandAll=Annuler déroulement -Reason=Raison -FeatureNotYetSupported=Fonctionnalité pas encore prise en charge -CloseWindow=Fermer fenêtre -Response=Réponse -Priority=Priorité -SendByMail=Envoyer par email -MailSentBy=Mail envoyé par -TextUsedInTheMessageBody=Corps du message -SendAcknowledgementByMail=Send confirmation email +EnterLoginDetail=Entrez les détails de connexion +NbOfObjectReferers=Nombre d'articles connexes +Referers=Articles connexes +SendAcknowledgementByMail=Envoyer un email de confirmation EMail=Courriel -NoEMail=Pas d'email -Email=Email -NoMobilePhone=Pas de téléphone portable -Owner=Propriétaire -FollowingConstantsWillBeSubstituted=Les constantes suivantes seront substituées par leur valeur correspondante. -Refresh=Rafraichir -BackToList=Retour liste -GoBack=Retour arrière -CanBeModifiedIfOk=Peut être modifié si valide -CanBeModifiedIfKo=Peut être modifié si invalide -ValueIsValid=Valeur valide -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Enregistrement modifié avec succès -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Création automatique du code -FeatureDisabled=Fonction désactivée -MoveBox=Move widget -Offered=Offert -NotEnoughPermissions=Vous n'avez pas les permissions pour cette action -SessionName=Nom session -Method=Méthode -Receive=Réceptionner -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Valeur courante -PartialWoman=Partielle -TotalWoman=Totale -NeverReceived=Jamais reçu -Canceled=Annulé -YouCanChangeValuesForThisListFromDictionarySetup=Vous pouvez changer ces valeurs depuis le menu accueil - configuration - dictionnaires -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Couleur -Documents=Fichiers joints -Documents2=Documents -UploadDisabled=Transfert désactivé -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Adhérents -MenuAgendaGoogle=Agenda Google -ThisLimitIsDefinedInSetup=Limite Dolibarr (Menu accueil-configuration-sécurité): %s Ko, Limite PHP: %s Ko -NoFileFound=Pas de documents stockés dans cette rubrique -CurrentUserLanguage=Langue utilisateur actuelle -CurrentTheme=Thème courant -CurrentMenuManager=Gestionnaire de menu courant -Browser=Navigateur -Layout=Layout -Screen=Screen -DisabledModules=Modules désactivés -For=Pour -ForCustomer=Pour le client -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Afficher commande avec mot de passe masqué -UnHidePassword=Afficher commande réelle avec mot de passe en clair -Root=Racine -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Ajout nouvelle ligne -AddFile=Ajouter fichier -FreeZone=Ligne en saisie libre -FreeLineOfType=Ligne libre de type -CloneMainAttributes=Cloner l'objet avec ces attributs principaux -PDFMerge=Fusion PDF -Merge=Fusion -PrintContentArea=Afficher page d'impression de la zone centrale -MenuManager=Gestionnaire de menu -WarningYouAreInMaintenanceMode=Attention, vous êtes en mode maintenance, aussi seul l'utilisateur identifié par %s est autorisé à utiliser l'application en ce moment. -CoreErrorTitle=Erreur système -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Carte de crédit -FieldsWithAreMandatory=Les champs marqués par un %s sont obligatoires -FieldsWithIsForPublic=Les champs marqués par %s seront affichés sur la liste publique des membres. Si vous ne le souhaitez pas, décochez la case "public". -AccordingToGeoIPDatabase=(obtenu par conversion GeoIP) -Line=Ligne -NotSupported=Non pris en charge -RequiredField=Champ obligatoire -Result=Résultat -ToTest=Tester -ValidateBefore=La fiche doit être validée pour pouvoir utiliser cette fonction -Visibility=Visibilité -Private=Privé -Hidden=Caché -Resources=Ressources -Source=Origine -Prefix=Préfixe -Before=Avant -After=Après -IPAddress=Adresse IP -Frequency=Fréquence -IM=Messagerie instantanée -NewAttribute=Nouvel attribut -AttributeCode=Code de l'attribut -URLPhoto=URL de la photo/logo -SetLinkToAnotherThirdParty=Lier vers un autre tiers -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Lier à une commande -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Créer brouillon -SetToDraft=Retour en brouillon -ClickToEdit=Cliquer ici pour éditer -ObjectDeleted=Objet %s supprimé -ByCountry=Par pays -ByTown=Par ville -ByDate=Par date -ByMonthYear=Par mois/année -ByYear=Par année -ByMonth=Par mois -ByDay=Par jour -BySalesRepresentative=Par commerciaux -LinkedToSpecificUsers=Liés à un contact utilisateur particulier -NoResults=Aucun résultat -AdminTools=Admin tools -SystemTools=Outils système -ModulesSystemTools=Outils Modules -Test=Test -Element=Élément -NoPhotoYet=Pas de photo disponible pour l'instant -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Déductible -from=de -toward=vers -Access=Accès -SelectAction=Select action -HelpCopyToClipboard=Utilisez Ctrl+C pour copier dans le presse-papier -SaveUploadedFileWithMask=Sauver le fichier sur le serveur sous le nom "%s" (sinon "%s") -OriginFileName=nom du fichier source -SetDemandReason=Définir la source -SetBankAccount=Définir compte bancaire -AccountCurrency=Devise du compte -ViewPrivateNote=Voir les notes -XMoreLines=%s ligne(s) cachées -PublicUrl=URL publique -AddBox=Ajouter boite -SelectElementAndClickRefresh=Sélectionnez un élément et cliquez sur Rafraichir -PrintFile=Imprimer fichier %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Allez dans Accueil - Configuration - Société/institution pour changer le logo ou aller dans Accueil - Configuration - Affichage pour le cacher. -Deny=Refuser -Denied=Refusé -ListOfTemplates=Liste des modèles -Gender=Genre -Genderman=Homme -Genderwoman=Femme -ViewList=Vue liste -Mandatory=Mandatory -Hello=Bonjour -Sincerely=Sincèrement +ValueIsNotValid=La valeur n'est pas valide +RecordsModified=%s enregistrement modifié +RecordsDeleted=%s enregistrement supprimé +CompleteOrNoMoreReceptionExpected=Complète ou rien de plus attendu +YouCanChangeValuesForThisListFromDictionarySetup=Vous pouvez modifier les valeurs de cette liste dans le menu Configuration - Dictionnaires +YouCanChangeValuesForThisListFrom=Vous pouvez modifier les valeurs de cette liste dans le menu %s +YouCanSetDefaultValueInModuleSetup=Vous pouvez configurer la valeur par défaut utilisée lors de la création d'un nouvel enregistrement dans la configuration du module +Layout=Disposition +Screen=Écran +DocumentModelStandardPDF=Modèle PDF standard +CoreErrorMessage=Désolé, une erreur s'est produite. Contactez votre administrateur système pour vérifier les journaux ou désactiver $ dolibarr_main_prod = 1 pour obtenir plus d'informations. +LinkTo=Lié à +LinkToProposal=Lien vers la proposition +LinkToInvoice=Lien vers la facture +LinkToSupplierOrder=Lien vers l'ordre du fournisseur +LinkToSupplierProposal=Lien vers la proposition du fournisseur +LinkToSupplierInvoice=Lien vers la facture du fournisseur +LinkToContract=Lien vers le contrat +LinkToIntervention=Lien vers l'intervention +SelectAction=Sélectionnez l'action +SelectTargetUser=Sélectionnez l'utilisateur / employé cible +SelectElementAndClick=Sélectionnez un élément et cliquez sur %s +ShowTransaction=Afficher l'entrée sur le compte bancaire DeleteLine=Suppression de ligne -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progression -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Divers -Calendar=Calendrier -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate +ConfirmDeleteLine=Êtes-vous sûr de vouloir supprimer cette ligne? +NoPDFAvailableForDocGenAmongChecked=Aucun document PDF n'était disponible pour la génération du document parmi les enregistrements vérifiés +TooManyRecordForMassAction=Trop d'enregistrement sélectionné pour une action de masse. L'action est limitée à une liste de %s enregistrement. +NoRecordSelected=Aucun enregistrement sélectionné +MassFilesArea=Domaine pour les fichiers construits par des actions de masse +ShowTempMassFilesArea=Afficher la zone des fichiers construits par des actions de masse +RelatedObjects=Objets associés +ClickHere=Cliquez ici +FrontOffice=Front Office +ExportFilteredList=Export liste filtrée +ExportList=Liste des exportations +GroupBy=Par groupe... +ViewFlatList=Afficher la liste forfaitaire +RemoveString=Supprimer la chaîne '%s' +SomeTranslationAreUncomplete=Certaines langues peuvent être partiellement traduites ou peuvent contenir des erreurs. Si vous détectez certains, vous pouvez réparer les fichiers de langue se connectant à https://transifex.com/projects/p/ Dolibarr / . +Download=Télécharger +ActualizeCurrency=Mettre à jour le taux de change Fiscalyear=Année fiscale -# Week day -Monday=Lundi -Tuesday=Mardi -Wednesday=Mercredi -Thursday=Jeudi -Friday=Vendredi -Saturday=Samedi -Sunday=Dimanche -MondayMin=Lu -TuesdayMin=Ma -WednesdayMin=Me -ThursdayMin=Je -FridayMin=Ve -SaturdayMin=Sa -SundayMin=Di -Day1=Lundi -Day2=Mardi -Day3=Mercredi -Day4=Jeudi -Day5=Vendredi -Day6=Samedi -Day0=Dimanche -ShortMonday=L -ShortTuesday=M -ShortWednesday=M -ShortThursday=J -ShortFriday=V -ShortSaturday=S -ShortSunday=D +SetMultiCurrencyCode=Définir la devise +BulkActions=Actions en vrac +ClickToShowHelp=Cliquez pour afficher l'aide sur les outils +HR=HEURE +HRAndBank=RH et Banque +AutomaticallyCalculated=Calculé automatiquement +TitleSetToDraft=Retourner au brouillon +ConfirmSetToDraft=Êtes-vous sûr de vouloir revenir à l'état du projet? SelectMailModel=Choisir modèle de courriel -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts +SetRef=Ref. +Select2ResultFoundUseArrows=Certains résultats ont été trouvés. Utilisez les flèches pour sélectionner. +Select2NotFound=Aucun résultat trouvé +Select2Enter=Entrer +Select2MoreCharacter=Ou plus de caractère +Select2MoreCharacters=Ou plus de personnages +Select2MoreCharactersMore= Syntaxe de recherche:
| OU (a | b)
< Strong> * Tout caractère (a * b)
^ Commencez avec < / Kbd> (^ ab)
$ Fin avec (ab $)
+Select2LoadingMoreResults=Chargement de plus de résultats ... +Select2SearchInProgress=Recherche en cours ... SearchIntoMembers=Membres -SearchIntoUsers=Utilisateurs -SearchIntoProductsOrServices=Produits ou services -SearchIntoProjects=Projets -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Factures clients -SearchIntoSupplierInvoices=Factures fournisseurs -SearchIntoCustomerOrders=Commandes clients -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments +SearchIntoTasks=les tâches +SearchIntoSupplierOrders=Commandes de fournisseur +SearchIntoCustomerProposals=Propositions de clients +SearchIntoSupplierProposals=Propositions de fournisseurs +SearchIntoCustomerShipments=Envois clients SearchIntoExpenseReports=Note de frais -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions +SearchIntoLeaves=Feuilles diff --git a/htdocs/langs/fr_CA/margins.lang b/htdocs/langs/fr_CA/margins.lang index 285abe5dd0d..c06f8189cb6 100644 --- a/htdocs/langs/fr_CA/margins.lang +++ b/htdocs/langs/fr_CA/margins.lang @@ -1,2 +1,34 @@ # Dolibarr language file - Source file is en_US - margins +MarkRate=Marquer le taux +DisplayMarkRates=Taux d'affichage +InputPrice=Prix ​​d'entrée +margin=Gestion des marges bénéficiaires +margesSetup=Configuration de la gestion des marges bénéficiaires +MarginDetails=Détails de la marge +ProductMargins=Marges du produit +CustomerMargins=Les marges clients +SalesRepresentativeMargins=Marges représentatives des ventes +UserMargins=Marges de l'utilisateur ProductService=Produit et service +ChooseProduct/Service=Choisissez un produit ou un service +ForceBuyingPriceIfNull=Force achat / prix de revient au prix de vente si non défini +ForceBuyingPriceIfNullDetails=Si le prix d'achat / coût non défini, et cette option "ON", la marge sera nulle en ligne (prix d'achat / coût = prix de vente), sinon ("OFF"), marge sera égal au défaut suggéré. +MARGIN_METHODE_FOR_DISCOUNT=Méthode de marge pour les réductions globales +UseDiscountAsProduct=En tant que produit +UseDiscountAsService=En tant que service +UseDiscountOnTotal=Sur le sous-total +MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Définit si une remise globale est traitée comme un produit, un service, ou seulement sur le sous-total pour le calcul de la marge. +MARGIN_TYPE=Prix ​​d'achat / coût suggéré par défaut pour le calcul de la marge +MargeType2=Marge sur le prix moyen pondéré (WAP) +MargeType3=Marge sur prix coûté +MarginTypeDesc=* Marge sur le meilleur prix d'achat = Prix de vente - Meilleur prix fournisseur défini sur la carte du produit
* Marge sur le prix moyen pondéré (WAP) = Prix de vente - Prix moyen pondéré du produit (WAP) ou meilleur prix fournisseur si WAP n'est pas encore défini < Br> * Marge sur prix de coût = Prix de vente - Prix de coût défini sur la carte de produit ou WAP si le prix de revient n'est pas défini ou le meilleur prix de fournisseur si WAP n'est pas encore défini +CostPrice=Prix ​​de revient +UnitCharges=Frais unitaires +Charges=Des charges +AgentContactType=Type de contact d'agent commercial +AgentContactTypeDetails=Définir le type de contact (lié sur les factures) sera utilisé pour le rapport de marge par représentant de vente +rateMustBeNumeric=Le taux doit être une valeur numérique +markRateShouldBeLesserThan100=Le taux de marquage devrait être inférieur à 100 +ShowMarginInfos=Afficher les infos de marge +CheckMargins=Détail des marges +MarginPerSaleRepresentativeWarning=Le rapport de la marge par utilisateur utilise le lien entre les tierces parties et les représentants de vente pour calculer la marge de chaque salerepresentaive. Étant donné que certaines tierces parties peuvent ne pas avoir de représentant de vente dédié et que certaines tierces parties peuvent être liées à plusieurs, certains montants peuvent ne pas être inclus dans ce rapport (s'il n'y a pas de représentant de vente) et certains peuvent apparaître sur des lignes différentes (pour chaque représentant de vente). diff --git a/htdocs/langs/fr_CA/members.lang b/htdocs/langs/fr_CA/members.lang index a7293341530..c6578f71b34 100644 --- a/htdocs/langs/fr_CA/members.lang +++ b/htdocs/langs/fr_CA/members.lang @@ -1,5 +1,153 @@ # Dolibarr language file - Source file is en_US - members +MembersArea=Zone des membres +MemberCard=Carte de membre +SubscriptionCard=Carte de souscription +Member=Membre Members=Membres +ShowMember=Afficher la carte membre +UserNotLinkedToMember=L'utilisateur n'est pas lié à un membre +ThirdpartyNotLinkedToMember=Un tiers non lié à un membre +MembersTickets=Billets des membres +FundationMembers=Membres de la Fondation +ListOfValidatedPublicMembers=Liste des membres publics validés +ErrorThisMemberIsNotPublic=Ce membre n'est pas public +ErrorMemberIsAlreadyLinkedToThisThirdParty=Un autre membre (nom: %s, connexion: %s) est déjà lié à un tiers %s. Supprimez ce lien en premier parce qu'un tiers ne peut être lié qu'à un membre (et vice versa). +ErrorUserPermissionAllowsToLinksToItselfOnly=Pour des raisons de sécurité, vous devez disposer d'autorisations pour éditer tous les utilisateurs afin de pouvoir lier un membre à un utilisateur qui n'est pas le vôtre. +ThisIsContentOfYourCard=Bonjour.

Ceci rappelle l'information que nous avons sur vous. N'hésitez pas à nous contacter si quelque chose a l'air mal.

+CardContent=Contenu de votre carte membre +SetLinkToUser=Lien vers un utilisateur Dolibarr +SetLinkToThirdParty=Lien vers un tiers Dolibarr +MembersCards=Cartes de visite Membres +MembersList=Liste des membres +MembersListToValid=Liste des membres préliminaires (à valider) +MembersListValid=Liste des membres valides +MembersListUpToDate=Liste des membres valides avec abonnement à jour +MembersListNotUpToDate=Liste des membres valides avec une souscription périmée +MembersListResiliated=Liste des membres licenciés +MembersListQualified=Liste des membres qualifiés +MenuMembersToValidate=Ébauche de membres +MenuMembersValidated=Membres validés +MenuMembersUpToDate=Membres à jour +MenuMembersNotUpToDate=Membres périmés +MenuMembersResiliated=Membres résiliés +MembersWithSubscriptionToReceive=Membres avec abonnement à recevoir +DateSubscription=Date de souscription +DateEndSubscription=Date de fin de l'abonnement +EndSubscription=Fin de l'abonnement +SubscriptionId=Identifiant de souscription +MemberId=ID membres +NewMember=Nouveau membre +MemberType=Type de membre +MemberTypeId=Id. De type membre +MemberTypeLabel=Étiquette de type membre +MembersTypes=Types de membres +MemberStatusActive=Validé (en attente d'abonnement) MemberStatusActiveShort=Validée +MemberStatusActiveLate=L'abonnement est expiré +MemberStatusActiveLateShort=Expiré +MemberStatusPaid=Abonnement à jour +MemberStatusPaidShort=À jour +MemberStatusResiliated=Membre résilié +MemberStatusResiliatedShort=Terminé +MembersStatusToValid=Ébauche de membres +MembersStatusResiliated=Membres résiliés +NewCotisation=Nouvelle contribution +PaymentSubscription=Nouveau paiement de contribution +SubscriptionEndDate=Date de fin de l'abonnement +MembersTypeSetup=Configuration des types de membres +NewSubscription=Nouvelle inscription +NewSubscriptionDesc=Ce formulaire vous permet d'enregistrer votre abonnement en tant que nouveau membre de la fondation. Si vous souhaitez renouveler votre abonnement (si déjà un membre), veuillez contacter le conseil de fondation par email %s. +Subscription=Abonnement +Subscriptions=Abonnements SubscriptionLate=Retard +SubscriptionNotReceived=L'abonnement n'a jamais été reçu +ListOfSubscriptions=Liste des abonnements +SendCardByMail=Envoyer une carte par courrier électronique +AddMember=Créer un membre +NoTypeDefinedGoToSetup=Aucun type de membre n'est défini. Aller au menu "Types de membres" +WelcomeEMail=E-mail de bienvenue +SubscriptionRequired=Abonnement requis +MorPhy=Moral / Physique +Reenable=Reignable +ResiliateMember=Terminer un membre +ConfirmResiliateMember=Êtes-vous sûr de vouloir mettre fin à ce membre? +DeleteMember=Supprimer un membre +ConfirmDeleteMember=Êtes-vous sûr de vouloir supprimer ce membre (Supprimer un membre supprime tous ses abonnements)? +DeleteSubscription=Supprimer un abonnement +ConfirmDeleteSubscription=Êtes-vous sûr de vouloir supprimer cette souscription? +ValidateMember=Valider un membre +ConfirmValidateMember=Êtes-vous sûr de vouloir valider ce membre? +FollowingLinksArePublic=Les liens suivants sont des pages ouvertes non protégées par une autorisation de Dolibarr. Ce ne sont pas des pages formées, fournies à titre d'exemple pour montrer comment lister la base de données des membres. +BlankSubscriptionForm=Formulaire d'auto-abonnement public +BlankSubscriptionFormDesc=Dolibarr peut vous fournir une URL publique permettant aux visiteurs externes de demander de s'abonner à la fondation. Si un module de paiement en ligne est activé, un formulaire de paiement sera automatiquement fourni. +EnablePublicSubscriptionForm=Activer le formulaire d'auto-abonnement public +ExportDataset_member_1=Membres et abonnements ImportDataset_member_1=Membres +LastMembersModified=Derniers membres modifiés %s +LastSubscriptionsModified=Derniers %s modifications des abonnements +Text=Texte +PublicMemberCard=Carte publique membre +SubscriptionNotRecorded=L'abonnement n'est pas enregistré +AddSubscription=Créer un abonnement +ShowSubscription=Afficher l'abonnement +SendAnEMailToMember=Envoyer un email d'information au membre +DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Objet de l'e-mail reçu en cas d'auto-inscription d'un invité +DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail reçu en cas d'auto-inscription d'un invité +DescADHERENT_AUTOREGISTER_MAIL_SUBJECT=Émetteur pour les abonnements aux membres +DescADHERENT_AUTOREGISTER_MAIL=EMail pour les abonnements aux membres +DescADHERENT_MAIL_VALID_SUBJECT=Sujet d'envoi pour la validation des membres +DescADHERENT_MAIL_VALID=EMail pour la validation des membres +DescADHERENT_MAIL_COTIS_SUBJECT=Sujet d'envoi pour souscription +DescADHERENT_MAIL_COTIS=EMail pour souscription +DescADHERENT_MAIL_RESIL_SUBJECT=Sujet d'envoi pour la résiliation des membres +DescADHERENT_MAIL_RESIL=EMail pour la résiliation des membres +DescADHERENT_MAIL_FROM=Expéditeur EMail pour les courriels automatiques +DescADHERENT_ETIQUETTE_TYPE=Format de la page des étiquettes +DescADHERENT_ETIQUETTE_TEXT=Texte imprimé sur les feuilles d'adresses des membres +DescADHERENT_CARD_TYPE=Format de la page des cartes +DescADHERENT_CARD_HEADER_TEXT=Texte imprimé au dessus des cartes membres +DescADHERENT_CARD_TEXT=Texte imprimé sur les cartes membres (aligner sur la gauche) +DescADHERENT_CARD_TEXT_RIGHT=Texte imprimé sur les cartes membres (aligner à droite) +DescADHERENT_CARD_FOOTER_TEXT=Texte imprimé au bas des cartes membres +ShowTypeCard=Afficher le type '%s' +HTPasswordExport=Génération de fichier htpassword +NoThirdPartyAssociatedToMember=Aucun tiers associé à ce membre +MembersAndSubscriptions=Membres et abonnements +MoreActions=Action complémentaire sur l'enregistrement +MoreActionsOnSubscription=Action complémentaire, suggérée par défaut lors de l'enregistrement d'une souscription +MoreActionBankDirect=Créer une entrée directe sur un compte bancaire +MoreActionBankViaInvoice=Créer une facture et un paiement sur un compte bancaire +MoreActionInvoiceOnly=Créer une facture sans paiement +LinkToGeneratedPages=Générer des cartes de visite +LinkToGeneratedPagesDesc=Cet écran vous permet de générer des fichiers PDF avec des cartes de visite pour tous vos membres ou un membre particulier. +DocForAllMembersCards=Générer des cartes de visite pour tous les membres +DocForOneMemberCards=Générer des cartes de visite pour un membre particulier +DocForLabels=Générer des feuilles d'adresses +SubscriptionPayment=Paiement de souscription +LastSubscriptionDate=La dernière date d'abonnement +LastSubscriptionAmount=Dernier montant de souscription +MembersStatisticsByState=Statistiques des membres par état / province +NoValidatedMemberYet=Aucun membre validé n'a été trouvé +MembersByCountryDesc=Cet écran vous montre des statistiques sur les membres par pays. Le graphique dépend toutefois du service graphique Google en ligne et n'est disponible que si une connexion Internet fonctionne. +MembersByStateDesc=Cet écran vous montre des statistiques sur les membres par état / provinces / canton. +MembersByTownDesc=Cet écran vous montre des statistiques sur les membres par ville. +MembersStatisticsDesc=Choisissez les statistiques que vous souhaitez lire ... +LastMemberDate=Dernière date de membre +Nature=La nature +Public=L'information est publique +NewMemberbyWeb=Nouveau membre ajouté. En attente d'approbation +NewMemberForm=Nouveau formulaire de membre +SubscriptionsStatistics=Statistiques sur les abonnements +NbOfSubscriptions=Nombre d'abonnements +AmountOfSubscriptions=Montant des abonnements +TurnoverOrBudget=Chiffre d'affaires (pour une entreprise) ou Budget (pour une fondation) +DefaultAmount=Montant d'abonnement par défaut +CanEditAmount=Le visiteur peut choisir / modifier le montant de son abonnement +MEMBER_NEWFORM_PAYONLINE=Aller sur la page de paiement en ligne intégrée +MembersStatisticsByProperties=Statistiques des membres par caractéristiques +MembersByNature=Cet écran vous montre des statistiques sur les membres par nature. +MembersByRegion=Cet écran vous montre des statistiques sur les membres par région. +VATToUseForSubscriptions=Taux de TVA à utiliser pour les abonnements +NoVatOnSubscription=Pas de TVA pour les abonnements +MEMBER_PAYONLINE_SENDEMAIL=Courrier électronique à utiliser pour l'alerte par courrier électronique lorsque Dolibarr reçoit une confirmation d'un paiement validé pour un abonnement (Exemple: paymentdone@example.com) +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produit utilisé pour la ligne d'abonnement en facture: %s diff --git a/htdocs/langs/fr_CA/oauth.lang b/htdocs/langs/fr_CA/oauth.lang index 6bc640c655b..b55f8db25ec 100644 --- a/htdocs/langs/fr_CA/oauth.lang +++ b/htdocs/langs/fr_CA/oauth.lang @@ -1,3 +1,21 @@ # Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +ConfigOAuth=Configuration d'Oauth +ManualTokenGeneration=Génération de jetons manuels +IsTokenGenerated=Le jeton est-il généré? +NoAccessToken=Pas de jeton d'accès enregistré dans la base de données locale +HasAccessToken=Un jeton a été généré et enregistré dans la base de données locale +NewTokenStored=Jeton reçu et enregistré +ToCheckDeleteTokenOnProvider=Cliquez ici pour vérifier / supprimer l'autorisation enregistrée par %s OAuth provider +TokenDeleted=Jeton supprimé +RequestAccess=Cliquez ici pour demander / renouveler l'accès et recevoir un nouveau jeton à sauvegarder +DeleteAccess=Cliquez ici pour supprimer le jeton +UseTheFollowingUrlAsRedirectURI=Utiliser l'URL suivante comme URI de redirection lorsque vous créez vos informations d'identification sur votre fournisseur OAuth: +ListOfSupportedOauthProviders=Entrez ici les informations d'identification fournies par votre fournisseur OAuth2. Seuls les fournisseurs OAuth2 supportés sont visibles ici. Cette configuration peut être utilisée par d'autres modules nécessitant une authentification OAuth2. +OAuthSetupForLogin=Page pour générer un jeton OAuth +SeePreviousTab=Voir l'onglet précédent +TOKEN_EXPIRED=Jeton expiré +TOKEN_EXPIRE_AT=Token expire à +TOKEN_DELETE=Supprimer le jeton enregistré +OAUTH_GOOGLE_ID=Id de Google Oauth +OAUTH_GOOGLE_DESC=Allez sur cette page puis "Credentials" pour créer des informations d'identification Oauth +OAUTH_GITHUB_DESC=Allez sur cette page puis "Enregistrez une nouvelle application" pour créer des informations d'identification Oauth diff --git a/htdocs/langs/fr_CA/opensurvey.lang b/htdocs/langs/fr_CA/opensurvey.lang index 140add7ceaa..edb093acd77 100644 --- a/htdocs/langs/fr_CA/opensurvey.lang +++ b/htdocs/langs/fr_CA/opensurvey.lang @@ -1,2 +1,46 @@ # Dolibarr language file - Source file is en_US - opensurvey +Surveys=Les sondages +OrganizeYourMeetingEasily=Organisez facilement vos réunions et vos sondages. Premier choix de type de sondage ... +OpenSurveyArea=Zone des sondages +AddACommentForPoll=Vous pouvez ajouter un commentaire dans le sondage ... +AddComment=Ajouter un commentaire +CreatePoll=Créer un sondage +PollTitle=Titre du sondage +ToReceiveEMailForEachVote=Recevoir un email pour chaque vote +OpenSurveyStep2=Sélectionnez vos dates entre les jours libres (gris). Les jours sélectionnés sont verts. Vous pouvez désélectionner un jour précédemment sélectionné en cliquant à nouveau sur celui-ci +RemoveAllDays=Supprimer tous les jours +CopyHoursOfFirstDay=Heures de copie du premier jour +RemoveAllHours=Supprimer toutes les heures +TheBestChoices=Les meilleurs choix sont actuellement +OpenSurveyHowTo=Si vous acceptez de voter dans ce sondage, vous devez donner votre nom, choisir les valeurs qui vous conviennent le mieux et valider avec le bouton de plus à la fin de la ligne. +CommentsOfVoters=Commentaires des électeurs +ConfirmRemovalOfPoll=Êtes-vous sûr de vouloir supprimer ce sondage (et tous les votes) +RemovePoll=Supprimer le sondage +UrlForSurvey=URL pour communiquer pour obtenir un accès direct au sondage +PollOnChoice=Vous créez un sondage pour faire un choix multiple pour un sondage. Entrez tout les choix possibles pour votre sondage: +CreateSurveyDate=Créer un sondage de date +CheckBox=Case à cocher simple +YesNoList=Liste (vide / oui / non) +PourContreList=Liste (vide / pour / contre) +AddNewColumn=Ajouter une nouvelle colonne +TitleChoice=Étiquette de choix +ExportSpreadsheet=Feuille de calcul des résultats d'exportation ExpireDate=Date limite +NbOfVoters=Nb des électeurs +PollAdminDesc=Vous pouvez modifier toutes les lignes de vote de ce sondage avec le bouton "Modifier". Vous pouvez également supprimer une colonne ou une ligne avec %s. Vous pouvez également ajouter une nouvelle colonne avec %s. +5MoreChoices=5 choix supplémentaires +YouAreInivitedToVote=Vous êtes invité à voter pour ce sondage +VoteNameAlreadyExists=Ce nom a déjà été utilisé pour ce sondage +AddStartHour=Ajouter l'heure de début +AddEndHour=Ajouter l'heure de fin +votes=Vote (s) +NoCommentYet=Aucun commentaire n'a encore été publié pour ce sondage +CanComment=Les électeurs peuvent commenter dans le sondage +CanSeeOthersVote=Les électeurs peuvent voir le vote d'autres personnes +SelectDayDesc=Pour chaque jour sélectionné, vous pouvez choisir, ou non, les heures de rendez-vous dans le format suivant:
- vide,
- "8h", "8H" ou "8:00" pour donner l'heure de début d'une réunion, < Br> - "8-11", "8h-11h", "8H-11H" ou "8: 00-11: 00" pour donner l'heure de début et de fin d'une réunion, - "8h15-11h15", " 8H15-11H15 "ou" 8: 15-11: 15 "pour la même chose mais avec des minutes. +ErrorOpenSurveyFillFirstSection=Vous n'avez pas rempli la première section de la création du sondage +ErrorOpenSurveyOneChoice=Entrez au moins un choix +ErrorInsertingComment=Une erreur s'est produite lors de l'insertion de votre commentaire +MoreChoices=Entrez plus de choix pour les électeurs +SurveyExpiredInfo=Le sondage a été clôturé ou le délai de vote a expiré. +EmailSomeoneVoted=%s a rempli une ligne.\nVous pouvez trouver votre sondage au lien:\n%s diff --git a/htdocs/langs/fr_CA/orders.lang b/htdocs/langs/fr_CA/orders.lang index 497d078c595..b888e06a930 100644 --- a/htdocs/langs/fr_CA/orders.lang +++ b/htdocs/langs/fr_CA/orders.lang @@ -1,16 +1,118 @@ # Dolibarr language file - Source file is en_US - orders +OrdersArea=Zone de commandes clients +SuppliersOrdersArea=Zone de commandes des fournisseurs +OrderCard=Carte de commande +OrderId=Numéro de commande +Orders=Ordres +OrderToProcess=Commander pour traiter +NewOrder=nouvel ordre +ToOrder=Faire une commande +MakeOrder=Faire une commande +SupplierOrder=Commande du fournisseur +SuppliersOrders=Commandes des fournisseurs +SuppliersOrdersRunning=Commandes actuelles des fournisseurs +CustomerOrder=Commande du client +CustomersOrdersRunning=Commandes clients actuelles +CustomersOrdersAndOrdersLines=Commandes client et lignes de commande +OrdersDeliveredToBill=Ordres des clients livrés à la facture +OrdersToBill=Commandes du client livrées +OrdersInProcess=Commandes clients en cours +OrdersToProcess=Ordres clients à traiter +SuppliersOrdersToProcess=Ordres fournisseurs à traiter StatusOrderCanceledShort=Annulé StatusOrderProcessedShort=Traité +StatusOrderDelivered=Livré +StatusOrderDeliveredShort=Livré StatusOrderApprovedShort=Approuver StatusOrderRefusedShort=Refusé StatusOrderBilledShort=Facturées +StatusOrderToProcessShort=Procéder +StatusOrderReceivedPartiallyShort=Partiellement reçu StatusOrderCanceled=Annulé +StatusOrderOnProcess=Commandé - Réception en veille +StatusOrderOnProcessWithValidation=Commandé - Réception ou validation en veille StatusOrderProcessed=Traité +StatusOrderToBill=Livré StatusOrderApproved=Approuver StatusOrderRefused=Refusé StatusOrderBilled=Facturées +StatusOrderReceivedPartially=Partiellement reçu +QtyOrdered=Qté commandé +ProductQtyInDraft=Quantité de produit dans les projets de commande +ProductQtyInDraftOrWaitingApproved=Quantité de produit dans les projets ou les commandes approuvées, pas encore commandé +ShipProduct=Produit de navire +CreateOrder=Créer un ordre +RefuseOrder=Refus d'ordre +ApproveOrder=Approuver l'ordre +Approve2Order=Approuver l'ordre (deuxième niveau) +ValidateOrder=Valider l'ordre +UnvalidateOrder=Ordre non valide +DeleteOrder=Supprimer l'ordre +OrderReopened=Commande %s Réouverture +AddOrder=Créer un ordre +AddToDraftOrders=Ajouter au projet d'ordre +ShowOrder=Afficher l'ordre +NoDraftOrders=Aucun projet de commande +NoSupplierOrder=Pas de fournisseur +LastOrders=Derniers %s commandes client +LastCustomerOrders=Derniers %s commandes client +LastSupplierOrders=Dernières commandes du fournisseur %s +LastModifiedOrders=Derniers %s commandes modifiées +AllOrders=Tous les ordres +OrdersStatistics=Statistiques de la commande +OrdersStatisticsSuppliers=Statistiques de la commande du fournisseur +AmountOfOrdersByMonthHT=Montant des commandes par mois (net d'impôt) +CloseOrder=Fermer l'ordre +ConfirmCloseOrder=Êtes-vous sûr de vouloir régler cette commande? Une fois la commande livrée, elle peut être configurée comme facturée. +ConfirmDeleteOrder=Êtes-vous sûr de vouloir supprimer cette commande? +ConfirmValidateOrder=Êtes-vous sûr de vouloir valider cette commande sous le nom %s? +ConfirmUnvalidateOrder=Êtes-vous sûr de vouloir rétablir l'ordre %s pour ébauche d'état? +ConfirmCancelOrder=Êtes-vous sûr de vouloir annuler cette commande? +ConfirmMakeOrder=Êtes-vous sûr de vouloir confirmer que vous avez effectué cette commande sur %s? +GenerateBill=Générer une facture +ClassifyShipped=Classifier livré +DraftOrders=Projet de commandes +DraftSuppliersOrders=Ordres des fournisseurs de projets +OnProcessOrders=Commandes en cours +RefCustomerOrder=Réf. Commande pour client +RefOrderSupplier=Réf. Commande pour fournisseur +RefOrderSupplierShort=Réf. Fournisseur de commande +SendOrderByMail=Envoyer la commande par mail +ActionsOnOrder=Événements sur commande +NoArticleOfTypeProduct=Aucun article de type 'produit' donc aucun article expédié pour cet ordre +AuthorRequest=Demandeur +UserWithApproveOrderGrant=Les utilisateurs bénéficient d'une autorisation «d'approbation des commandes». +PaymentOrderRef=Paiement de la commande %s +CloneOrder=Ordre de clone +ConfirmCloneOrder=Êtes-vous sûr de vouloir cloner cette commande %s? +DispatchSupplierOrder=Commande de fournisseur de réception %s +FirstApprovalAlreadyDone=Première approbation déjà terminée +SecondApprovalAlreadyDone=Deuxième approbation déjà terminée +SupplierOrderReceivedInDolibarr=Commande fournisseur %s reçu %s +SupplierOrderSubmitedInDolibarr=Commande du fournisseur %s soumise +SupplierOrderClassifiedBilled=Commande du fournisseur %s set facturé +TypeContact_commande_internal_SALESREPFOLL=Ordre de suivi du client représentatif +TypeContact_commande_internal_SHIPPING=Expédition complémentaire représentative TypeContact_commande_external_BILLING=Contact client facturation TypeContact_commande_external_SHIPPING=Contact client livraison +TypeContact_commande_external_CUSTOMER=Ordre de suivi du contact client +TypeContact_order_supplier_internal_SALESREPFOLL=Ordonnance de fournisseur adjointe représentative +TypeContact_order_supplier_internal_SHIPPING=Expédition complémentaire représentative TypeContact_order_supplier_external_BILLING=Contact fournisseur facturation TypeContact_order_supplier_external_SHIPPING=Contact fournisseur livraison +TypeContact_order_supplier_external_CUSTOMER=Ordre de suivi du contact fournisseur +Error_OrderNotChecked=Aucun ordre de facturation sélectionné OrderByFax=Télécopie +PDFEinsteinDescription=Un modèle de commande complet (logo ...) +PDFEdisonDescription=Un modèle d'ordre simple +PDFProformaDescription=Une facture proforma complète (logo ...) +CreateInvoiceForThisCustomer=Commandes de factures +NoOrdersToInvoice=Aucun ordre pouvant être facturé +CloseProcessedOrdersAutomatically=Classifiez "Traiter" toutes les commandes sélectionnées. +OrderCreation=Création d'ordre +OrderCreated=Vos commandes ont été créées +OrderFail=Une erreur est survenue lors de la création de votre commande +CreateOrders=Créer des commandes +ToBillSeveralOrderSelectCustomer=Pour créer une facture pour plusieurs commandes, cliquez d'abord sur le client, puis choisissez "%s". +CloseReceivedSupplierOrdersAutomatically=Fermez l'ordre à "%s" automatiquement si tous les produits sont reçus. +SetShippingMode=Définir le mode d'expédition diff --git a/htdocs/langs/fr_CA/other.lang b/htdocs/langs/fr_CA/other.lang index 67e3098eb10..48069cec6b2 100644 --- a/htdocs/langs/fr_CA/other.lang +++ b/htdocs/langs/fr_CA/other.lang @@ -1,2 +1,164 @@ # Dolibarr language file - Source file is en_US - other +NumberingShort=N ° +ToolsDesc=Tous les outils divers non inclus dans les autres entrées de menu sont collectés ici.

Tous les outils sont accessibles dans le menu de gauche. +BirthdayDate=Date d'anniversaire +BirthdayAlertOn=Alerte d'anniversaire active +BirthdayAlertOff=Alerte d'anniversaire inactive +TransKey=Traduction de la clé TransKey +MonthOfInvoice=Mois (numéro 1-12) de la date de facturation +TextMonthOfInvoice=Mois (tex) de la date de facturation +PreviousMonthOfInvoice=Mois précédent (numéro 1-12) de la date de facturation +TextPreviousMonthOfInvoice=Mois précédent (texte) de la date de facturation +NextMonthOfInvoice=Le mois suivant (numéro 1-12) de la date de facturation +TextNextMonthOfInvoice=Le mois suivant (texte) de la date de facturation +ZipFileGeneratedInto=Fichier Zip généré dans %s. +YearOfInvoice=Année de la date de facturation +PreviousYearOfInvoice=Année de facture précédente +NextYearOfInvoice=Année suivante de la date de facturation +Notify_FICHINTER_ADD_CONTACT=Ajout de contact à Intervention +Notify_FICHINTER_VALIDATE=Intervention validée +Notify_FICHINTER_SENTBYMAIL=Intervention envoyée par courrier +Notify_ORDER_VALIDATE=Ordre client validé +Notify_ORDER_SENTBYMAIL=Commande client envoyée par courrier électronique +Notify_ORDER_SUPPLIER_SENTBYMAIL=Commande du fournisseur envoyée par courrier +Notify_ORDER_SUPPLIER_VALIDATE=Ordre du fournisseur enregistré +Notify_ORDER_SUPPLIER_APPROVE=Ordre du fournisseur approuvé +Notify_ORDER_SUPPLIER_REFUSE=Ordre du fournisseur refusé +Notify_PROPAL_VALIDATE=Proposition client validée +Notify_PROPAL_CLOSE_SIGNED=Client propal fermé signé +Notify_PROPAL_CLOSE_REFUSED=Client propal fermé refusé +Notify_PROPAL_SENTBYMAIL=Proposition commerciale envoyée par courrier +Notify_WITHDRAW_TRANSMIT=Retrait de la transmission +Notify_WITHDRAW_CREDIT=Retrait de crédit +Notify_WITHDRAW_EMIT=Effectuer le retrait +Notify_COMPANY_SENTBYMAIL=Les envois envoyés par une carte tierce +Notify_BILL_VALIDATE=Facture client validée +Notify_BILL_UNVALIDATE=Facture du client non valide +Notify_BILL_PAYED=Facture du client payée +Notify_BILL_CANCEL=Facture du client annulée +Notify_BILL_SENTBYMAIL=Facture du client envoyée par courrier +Notify_BILL_SUPPLIER_VALIDATE=Facture du fournisseur validée +Notify_BILL_SUPPLIER_PAYED=Facture du fournisseur payée +Notify_BILL_SUPPLIER_SENTBYMAIL=Facture du fournisseur envoyée par courrier +Notify_BILL_SUPPLIER_CANCELED=Facture du fournisseur annulée +Notify_CONTRACT_VALIDATE=Contrat validé +Notify_FICHEINTER_VALIDATE=Intervention validée +Notify_SHIPPING_VALIDATE=Expédition validée +Notify_SHIPPING_SENTBYMAIL=Expédition envoyée par mail +Notify_MEMBER_VALIDATE=Membre validé +Notify_MEMBER_MODIFY=Membre modifié +Notify_MEMBER_SUBSCRIPTION=Membre abonné +Notify_MEMBER_RESILIATE=Membre résilié +Notify_MEMBER_DELETE=Membre supprimé +NbOfAttachedFiles=Nombre de fichiers / documents attachés +TotalSizeOfAttachedFiles=Taille totale des fichiers / documents attachés +AttachANewFile=Joindre un nouveau fichier / document +NbOfActiveNotifications=Nombre de notifications (nb des emails du destinataire) +PredefinedMailTest=C'est un courrier de test.\nLes deux lignes sont séparées par un retour de chariot.\n\n__SIGNATURE__ +PredefinedMailTestHtml=Il s'agit d'un test mail (le mot test doit être en gras).
Les deux lignes sont séparées par un retour de chariot.

__SIGNATURE__ +PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nVous trouverez ici la facture __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nNous aimerions vous avertir que la facture __REF__ semble ne pas être payée. C'est donc la facture en pièce jointe à nouveau, comme un rappel.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nVous trouverez ici la proposition commerciale __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nVous trouverez ici la demande de prix __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nVous trouverez ici la commande __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nVous trouverez ici notre commande __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVous trouverez ici la facture __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVous trouverez ici la livraison __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVous trouverez ici l'intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentUser=Aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr est un ERP / CRM compact prenant en charge plusieurs modules métier. Une démonstration montrant tous les modules n'a aucun sens car ce scénario ne se produit jamais (plusieurs centaines disponibles). Ainsi, plusieurs profils de démonstration sont disponibles. +ChooseYourDemoProfil=Choisissez le profil de démonstration qui correspond le mieux à vos besoins ... +ChooseYourDemoProfilMore=... ou créez votre propre profil
(sélection du module manuel) +DemoFundation=Gérer les membres d'une fondation +DemoFundation2=Gérer les membres et le compte bancaire d'une fondation +DemoCompanyServiceOnly=Société ou service de vente indépendant uniquement +DemoCompanyShopWithCashDesk=Gérer un magasin avec une caisse +DemoCompanyProductAndStocks=Société vendant des produits avec un magasin +DemoCompanyAll=Entreprise avec plusieurs activités (tous les modules principaux) +ValidatedBy=Valider par %s +ClosedBy=Fermé par %s +CreatedById=Identifiant utilisateur créé +ModifiedById=Identifiant utilisateur qui a effectué le dernier changement +ValidatedById=Identification de l'utilisateur qui a validé +CanceledById=Identification de l'utilisateur qui a annulé +ClosedById=Identification de l'utilisateur qui a fermé +CreatedByLogin=Connexion utilisateur créée +ModifiedByLogin=Connexion utilisateur qui a effectué les derniers changements +ValidatedByLogin=Connexion utilisateur validée +CanceledByLogin=Connexion utilisateur annulée +ClosedByLogin=Connexion utilisateur fermée +DirWasRemoved=L'annuaire %s a été supprimé +FeatureNotYetAvailable=La fonctionnalité n'est pas encore disponible dans la version actuelle +Height=la taille +Left=La gauche +WeightUnitmg=Mg +LengthUnitm=M +LengthUnitdm=Dm +LengthUnitmm=Mm +Surface=Région +SurfaceUnitm2=M² +SurfaceUnitdm2=Dm² +SurfaceUnitcm2=Cm² +SurfaceUnitmm2=Mm² +SurfaceUnitfoot2=Pi² +SurfaceUnitinch2=En² +Volume=Le volume +VolumeUnitm3=M³ +VolumeUnitdm3=Dm³ (L) +VolumeUnitcm3=Cm³ (ml) +VolumeUnitmm3=Mm³ (μ l) +VolumeUnitfoot3=Ft³ +VolumeUnitinch3=In³ +SizeUnitm=M +SizeUnitdm=Dm +SizeUnitmm=Mm +SendNewPasswordDesc=Ce formulaire vous permet de demander un nouveau mot de passe. Il sera envoyé à votre adresse électronique.
Le changement entrera en vigueur une fois que vous aurez cliqué sur le lien de confirmation dans l'email.
Vérifiez votre boîte de réception. +BackToLoginPage=Retour à la page de connexion +AuthenticationDoesNotAllowSendNewPassword=Le mode d'authentification est %s.
Dans ce mode, Dolibarr ne peut pas savoir ni modifier votre mot de passe.
Contactez votre administrateur système si vous souhaitez modifier votre mot de passe. +EnableGDLibraryDesc=Installez ou activez la bibliothèque GD sur votre installation PHP pour utiliser cette option. +ProfIdShortDesc=Prof ID%s est une information en fonction d'un pays tiers.
Par exemple, pour le pays %s, c'est le code%s. +DolibarrDemo=Démo Dolibarr ERP / CRM +StatsByNumberOfUnits=Statistiques pour la somme des produits / services +StatsByNumberOfEntities=Statistiques en nombre d'entités référantes (nb de facture, ou commande ...) +NumberOfProposals=Nombre de propositions +NumberOfCustomerInvoices=Nombre de factures des clients +NumberOfSupplierProposals=Nombre de propositions de fournisseurs +NumberOfSupplierOrders=Nombre d'ordres fournisseurs +NumberOfUnitsProposals=Nombre d'unités sur proposition +NumberOfUnitsCustomerOrders=Nombre d'unités sur commandes client +NumberOfUnitsCustomerInvoices=Nombre d'unités sur les factures des clients +NumberOfUnitsSupplierProposals=Nombre d'unités sur les propositions des fournisseurs +NumberOfUnitsSupplierOrders=Nombre d'unités sur commandes fournisseurs +NumberOfUnitsSupplierInvoices=Nombre d'unités sur les factures des fournisseurs +EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée. +EMailTextInterventionValidated=L'intervention %s a été validée. +EMailTextInvoiceValidated=La facture %s a été validée. +EMailTextProposalValidated=Le projet %s a été validé. +EMailTextOrderValidated=La commande %s a été validée. +EMailTextOrderValidatedBy=La commande %s a été enregistrée par %s. +EMailTextOrderRefusedBy=L'ordre %s a été refusé par %s. +EMailTextExpeditionValidated=La livraison %s a été validée. +ImportedWithSet=Ensemble de données sur l'importation +ResizeDesc=Entrez une nouvelle largeur OU nouvelle hauteur. Le ratio sera maintenu pendant le redimensionnement ... +NewSizeAfterCropping=Nouvelle taille après la culture +DefineNewAreaToPick=Définir une nouvelle zone sur l'image à choisir (clic gauche sur l'image, puis faites glisser jusqu'à ce que vous atteigniez le coin opposé) +CurrentInformationOnImage=Cet outil a été conçu pour vous aider à redimensionner ou à recadrer une image. Il s'agit d'informations sur l'image éditée en cours +YouReceiveMailBecauseOfNotification=Vous recevez ce message car votre courriel a été ajouté à la liste des cibles pour être informé des événements particuliers dans le logiciel %s de %s. +YouReceiveMailBecauseOfNotification2=Cet événement est le suivant: +ThisIsListOfModules=Il s'agit d'une liste de modules présélectionnés par ce profil de démonstration (seuls les modules les plus courants sont visibles dans cette démo). Modifiez ceci pour avoir une démo plus personnalisée et cliquez sur "Démarrer". +UseAdvancedPerms=Utilisez les autorisations avancées de certains modules +StartUpload=Commence le téléchargement +CancelUpload=Annuler le chargement +FileIsTooBig=Les fichiers sont trop gros PleaseBePatient=Merci de patienter… +RequestToResetPasswordReceived=Une requête pour changer votre mot de passe Dolibarr a été reçue +NewKeyIs=Voici vos nouvelles clés pour vous connecter +NewKeyWillBe=Votre nouvelle clé de connexion au logiciel sera +ClickHereToGoTo=Cliquez ici pour aller à %s +YouMustClickToChange=Vous devez tout d'abord cliquer sur le lien suivant pour valider ce changement de mot de passe +ForgetIfNothing=Si vous n'avez pas demandé ce changement, n'oubliez pas cet email. Vos informations d'identification sont sécurisées. +IfAmountHigherThan=Si un montant supérieur à %s +SourcesRepository=Dépôt de sources +LibraryVersion=Version de la bibliothèque +NoExportableData=Aucune donnée exportable (aucun module avec des données exportables chargées ou des autorisations manquantes) +WebsiteSetup=Site de configuration du module diff --git a/htdocs/langs/fr_CA/paybox.lang b/htdocs/langs/fr_CA/paybox.lang index c10ae6c580b..14b5e199543 100644 --- a/htdocs/langs/fr_CA/paybox.lang +++ b/htdocs/langs/fr_CA/paybox.lang @@ -1,2 +1,32 @@ # Dolibarr language file - Source file is en_US - paybox +PayBoxSetup=Configuration du module PayBox +PayBoxDesc=Ce module offre des pages pour permettre le paiement sur Paybox par les clients. Cela peut être utilisé pour un paiement gratuit ou pour un paiement sur un objet Dolibarr particulier (facture, commande, ...) +FollowingUrlAreAvailableToMakePayments=Les URL suivantes sont disponibles pour offrir une page à un client pour effectuer un paiement sur les objets Dolibarr +ThisScreenAllowsYouToPay=Cet écran vous permet de faire un paiement en ligne à %s. +ThisIsInformationOnPayment=Il s'agit d'informations sur le paiement à effectuer +ToComplete=Compléter +YourEMail=Email pour recevoir la confirmation de paiement +Creditor=Créancier +PayBoxDoPayment=Aller au paiement +YouWillBeRedirectedOnPayBox=Vous serez redirigé sur la page Paybox sécurisée pour vous inscrire les informations de votre carte de crédit Continue=Suivant +ToOfferALinkForOnlinePayment=URL pour le paiement %s +ToOfferALinkForOnlinePaymentOnOrder=URL pour proposer une interface utilisateur de paiement en ligne %s pour une commande client +ToOfferALinkForOnlinePaymentOnInvoice=URL pour proposer une interface utilisateur de paiement en ligne %s pour une facture client +ToOfferALinkForOnlinePaymentOnContractLine=URL pour proposer une interface utilisateur de paiement en ligne %s pour une ligne de contrat +ToOfferALinkForOnlinePaymentOnFreeAmount=URL pour offrir une interface utilisateur de paiement en ligne %s pour un montant gratuit +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL pour offrir une interface utilisateur de paiement en ligne %s pour un abonnement de membre +YouCanAddTagOnUrl=Vous pouvez également ajouter le paramètre url & tag = valeur à l'un de ces URL (requis uniquement pour un paiement gratuit) pour ajouter votre propre étiquette de commentaire de paiement. +SetupPayBoxToHavePaymentCreatedAutomatically=Configurez votre PayBox avec url %s pour que le paiement soit créé automatiquement lorsqu'il est validé par Paybox. +YourPaymentHasBeenRecorded=Cette page confirme que votre paiement a été enregistré. Je vous remercie. +YourPaymentHasNotBeenRecorded=Votre paiement n'a pas été enregistré et la transaction a été annulée. Je vous remercie. +InformationToFindParameters=Aidez-nous à trouver vos informations sur le compte %s +PAYBOX_CGI_URL_V2=Url de Paybox CGI module de paiement +CSSUrlForPaymentForm=URL de la feuille de style CSS pour le formulaire de paiement +MessageOK=Message sur la page de retour de paiement validée +MessageKO=Message sur la page de retour de paiement annulée +NewPayboxPaymentFailed=Le nouveau paiement Paybox a échoué +PAYBOX_PAYONLINE_SENDEMAIL=EMail pour avertir après un paiement (succès ou échec) +PAYBOX_PBX_SITE=Valeur pour PBX SITE +PAYBOX_PBX_RANG=Valeur pour PBX Rang +PAYBOX_PBX_IDENTIFIANT=Valeur pour ID de PBX diff --git a/htdocs/langs/fr_CA/printing.lang b/htdocs/langs/fr_CA/printing.lang index 0ed07f1f5d0..8696206a6a4 100644 --- a/htdocs/langs/fr_CA/printing.lang +++ b/htdocs/langs/fr_CA/printing.lang @@ -1,2 +1,36 @@ # Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +Module64000Name=Impression directe +Module64000Desc=Activer le système d'impression directe +PrintingSetup=Configuration du système d'impression directe +PrintingDesc=Ce module ajoute un bouton Imprimer pour envoyer des documents directement à une imprimante (sans ouvrir le document dans une application) avec différents modules. +MenuDirectPrinting=Emploi d'impression directe +DirectPrint=Impression directe +PrintingDriverDesc=Variables de configuration pour l'impression du pilote. +ListDrivers=Liste des conducteurs +PrintTestDesc=Liste des imprimantes. +NoActivePrintingModuleFound=Aucun module actif pour imprimer un document +PleaseSelectaDriverfromList=Sélectionnez un pilote de la liste. +PleaseConfigureDriverfromList=Configurez le pilote sélectionné dans la liste. +SetupDriver=Configuration du pilote +TargetedPrinter=Imprimante ciblée +PRINTGCP_INFO=Configuration de Google OAuth API +PrintGCPDesc=Ce pilote permet d'envoyer des documents directement à une imprimante avec Google Cloud Print. +GCP_displayName=Afficher un nom +GCP_Id=ID de l'imprimante +GCP_OwnerName=Le nom du propriétaire +GCP_State=État de l'imprimante +GCP_connectionStatus=État en ligne +PrintIPPDesc=Ce pilote permet d'envoyer des documents directement à une imprimante. Il nécessite un système Linux avec CUPS installé. +PRINTIPP_HOST=Serveur d'imprimante +NoDefaultPrinterDefined=Aucune imprimante par défaut n'est définie +IPP_Uri=Imprimante Uri +IPP_Name=Nom de l'imprimante +IPP_State=État de l'imprimante +IPP_State_reason=Raison de l'état +IPP_State_reason1=Motif de l'État1 +IPP_Media=Imprimante média +DirectPrintingJobsDesc=Cette page répertorie les travaux d'impression trouvés pour les imprimantes disponibles. +GoogleAuthNotConfigured=L'installation de Google OAuth n'est pas terminée. Activez le module OAuth et définissez Google ID / Secret. +GoogleAuthConfigured=Les informations d'identification de Google OAuth ont été trouvées dans la configuration du module OAuth. +PrintingDriverDescprintgcp=Variables de configuration pour l'impression du pilote Google Cloud Print. +PrintTestDescprintgcp=Liste des imprimantes pour Google Cloud Print. diff --git a/htdocs/langs/fr_CA/products.lang b/htdocs/langs/fr_CA/products.lang index ba0002c657a..ca4acd5f682 100644 --- a/htdocs/langs/fr_CA/products.lang +++ b/htdocs/langs/fr_CA/products.lang @@ -1,15 +1,27 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Référence produit ProductLabel=Désignation du produit +ProductLabelTranslated=Etiquette du produit traduit +ProductDescriptionTranslated=Description du produit traduit +ProductNoteTranslated=Note du produit traduit ProductServiceCard=Carte du produits/services ProductId=Identification du produit/service +ProductVatMassChange=Changement massif de la TVA +ProductVatMassChangeDesc=Cette page peut être utilisée pour modifier un taux de TVA défini sur des produits ou services d'une valeur à l'autre. Avertissement, cette modification est effectuée sur toutes les bases de données. +MassBarcodeInit=Invalidité du code barre +MassBarcodeInitDesc=Cette page peut être utilisée pour initialiser un code à barres sur des objets qui n'ont pas le code à barres défini. Vérifiez avant que la configuration du code-barres du module soit terminée. +ProductAccountancyBuyCode=Code de comptabilité (achat) +ProductAccountancySellCode=Code de comptabilité (vente) ProductOrService=Produit et service ProductsAndServices=Produits et services ProductsOrServices=Produits ou services -ProductsOnSell=Produit à la vente ou à l'achat ProductsNotOnSell=Produit non destiné à la vente et non à l'achat -ServicesOnSell=Produit à la vente ou à l'achat -ServicesNotOnSell=Les services non destinés à la vente +ProductsOnSellAndOnBuy=Produits à vendre et à acheter +ServicesNotOnSell=Services à vendre et non à l'achat +ServicesOnSellAndOnBuy=Services à vendre et à vendre +LastModifiedProductsAndServices=Derniers %s produits / services modifiés +LastRecordedProducts=Derniers produits enregistrés %s +LastRecordedServices=Derniers %s services enregistrés CardProduct0=Carte du produit CardProduct1=Carte du service OnSell=À vendre @@ -23,5 +35,186 @@ ProductStatusOnBuy=À acheter ProductStatusNotOnBuy=Pas à acheter ProductStatusOnBuyShort=À acheter ProductStatusNotOnBuyShort=Pas à acheter +UpdateVAT=Mise à jour de la batterie +UpdateDefaultPrice=Mettre à jour le prix par défaut +UpdateLevelPrices=Mettre à jour les prix pour chaque niveau +AppliedPricesFrom=Prix ​​appliqués à partir de +SellingPrice=Prix ​​de vente +SellingPriceHT=Prix ​​de vente (hors taxes) +SellingPriceTTC=Prix ​​de vente (taxes) +CostPriceDescription=Ce prix (net d'impôt) peut être utilisé pour stocker le montant moyen de ce produit pour votre entreprise. Il peut s'agir de tout prix que vous calculez, par exemple du prix d'achat moyen plus le coût moyen de production et de distribution. +CostPriceUsage=Cette valeur pourrait être utilisée pour le calcul de la marge. +SoldAmount=Montant vendu +PurchasedAmount=Montant acheté +MinPrice=Min. prix de vente +CantBeLessThanMinPrice=Le prix de vente ne peut être inférieur au minimum autorisé pour ce produit (%s sans taxes). Ce message peut également apparaître si vous tapez une remise trop importante. ContractStatusClosed=Fermées +ErrorProductBadRefOrLabel=Valeur incorrecte pour référence ou étiquette. +ErrorProductClone=Il y a eu un problème en essayant de cloner le produit ou le service. +SupplierRef=Produit ref. +ShowProduct=Afficher le produit +ShowService=Afficher le service +ProductsAndServicesArea=Domaine de produits et services +ProductsArea=Zone de produits +ServicesArea=Zone de services +SupplierCard=Carte du fournisseur +PriceRemoved=Prix ​​retiré +BarCode=code à barre +BarcodeType=Type de code à barres +SetDefaultBarcodeType=Définir le type de code à barres +BarcodeValue=Valeur du code à barres +NoteNotVisibleOnBill=Note (non visible sur les factures, propositions ...) +ServiceLimitedDuration=Si le produit est un service à durée limitée: +MultiPricesAbility=Plusieurs segments de prix par produit / service (chaque client est en un seul segment) +AssociatedProductsAbility=Activez la fonctionnalité pour gérer les produits virtuels +AssociatedProductsNumber=Nombre de produits composant ce produit virtuel +ParentProductsNumber=Nombre de produits d'emballage pour les parents +ParentProducts=Produits parentaux +IfZeroItIsNotUsedByVirtualProduct=Si 0, ce produit n'est utilisé par aucun produit virtuel +KeywordFilter=Filtre à mots clés +CategoryFilter=Filtre de catégorie +ProductToAddSearch=Rechercher un produit à ajouter +NoMatchFound=Pas de résultat trouvé +ListOfProductsServices=Liste des produits / services +ProductAssociationList=Liste des produits / services composant ce produit / package virtuel +ProductParentList=Liste des produits / services virtuels avec ce produit en tant que composant +ErrorAssociationIsFatherOfThis=L'un des produits sélectionnés est le parent avec le produit actuel +DeleteProduct=Supprimer un produit / service +ConfirmDeleteProduct=Êtes-vous sûr de vouloir supprimer ce produit / service? +ProductDeleted=Produit / Service "%s" supprimé de la base de données. +DeleteProductLine=Supprimer la ligne de produits +ConfirmDeleteProductLine=Êtes-vous sûr de vouloir supprimer cette ligne de produits? +ProductSpecial=Spécial +QtyMin=Quantité minimale +PriceQtyMin=Prix ​​pour cette min. Qté (sans rabais) +VATRateForSupplierProduct=Taux de TVA (pour ce fournisseur / produit) +DiscountQtyMin=Réduction par défaut pour la quantité +NoPriceDefinedForThisSupplier=Pas de prix / quantité défini pour ce fournisseur / produit +NoSupplierPriceDefinedForThisProduct=Aucun fournisseur prix / quantité défini pour ce produit +PredefinedProductsToSell=Produits prédéfinis à vendre +PredefinedServicesToSell=Services prédéfinis à vendre +PredefinedProductsAndServicesToSell=Produits / services prédéfinis à vendre +PredefinedProductsToPurchase=Produit prédéfini à acheter +PredefinedProductsAndServicesToPurchase=Produits / services prédéfinis à puchase +NotPredefinedProducts=Produits / services non prédéfinis +GenerateThumb=Générer le pouce +ServiceNb=Service # %s +ListProductServiceByPopularity=Liste des produits / services par popularité +Finished=Produit fabriqué +CloneProduct=Clone produit ou service +ConfirmCloneProduct=Êtes-vous sûr de vouloir cloner un produit ou un service %s? +CloneContentProduct=Cloner toutes les informations principales du produit / service +ClonePricesProduct=Informations principales et prix Clone +CloneCompositionProduct=Produit / service emballé par clone +CloneCombinationsProduct=Variantes de produit de clonage +NewRefForClone=Réf. De nouveau produit / service +SellingPrices=Prix ​​de vente +BuyingPrices=Prix ​​d'achat +CustomerPrices=Prix ​​client +SuppliersPrices=Prix ​​des fournisseurs +SuppliersPricesOfProductsOrServices=Prix ​​des fournisseurs (des produits ou des services) +CustomCode=Code douanier +ShortLabel=Étiquette courte +p=U. +s=S +h=H +d=ré +m=M +lm=Lm +m2=M² +m3=M³ +ProductCodeModel=Modèle de ref. Produit +ServiceCodeModel=Modèle de réparation de service +CurrentProductPrice=Prix ​​actuel +AlwaysUseNewPrice=Toujours utiliser le prix actuel du produit / service +AlwaysUseFixedPrice=Utilisez le prix fixe +PriceByQuantity=Différents prix par quantité +PriceByQuantityRange=Gamme de quantité +MultipriceRules=Règles du segment des prix +UseMultipriceRules=Utiliser les règles de segment de prix (définies dans la configuration du module de produit) pour calculer automatiquement les prix de tous les autres segments selon le premier segment +PercentVariationOver=%% variation par rapport à %s +PercentDiscountOver=%% discount sur %s +Build=Produire +ProductsMultiPrice=Produits et prix pour chaque segment de prix +ProductsOrServiceMultiPrice=Prix ​​clients (de produits ou de services, multi-prix) +ProductSellByQuarterHT=Le chiffre d'affaires des produits trimestriels avant impôt +ServiceSellByQuarterHT=Chiffre d'affaires trimestriel avant impôts +Quarter1=1er. Trimestre +Quarter2=2ème. Trimestre +Quarter3=3ème. Trimestre +Quarter4=4ème. Trimestre +BarCodePrintsheet=Imprimer le code à barres +PageToGenerateBarCodeSheets=Avec cet outil, vous pouvez imprimer des feuilles d'autocollants de codes à barres. Choisissez le format de votre page d'autocollant, le type de code à barres et la valeur du code à barres, puis cliquez sur le bouton %s. +NumberOfStickers=Nombre d'autocollants à imprimer sur la page +PrintsheetForOneBarCode=Imprimez plusieurs autocollants pour un code à barres +BuildPageToPrint=Générer une page pour imprimer +FillBarCodeTypeAndValueManually=Remplissez le type de code à barres et la valeur manuellement. +FillBarCodeTypeAndValueFromProduct=Remplissez le type de code à barres et la valeur du code à barres d'un produit. +FillBarCodeTypeAndValueFromThirdParty=Remplissez le type de code à barres et la valeur du code à barres d'un tiers. +DefinitionOfBarCodeForProductNotComplete=La définition du type ou de la valeur du code à barres n'est pas complète pour le produit %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Définition du type ou de la valeur du code à barres non complet pour le tiers %s. +BarCodeDataForProduct=Informations sur le code à barres du produit %s: +BarCodeDataForThirdparty=Informations sur le code à barres de tiers %s: +ResetBarcodeForAllRecords=Définissez la valeur du code-barres pour tous les enregistrements (cela rétablira également la valeur du code-barres déjà définie avec de nouvelles valeurs) +PriceByCustomer=Différents prix pour chaque client +PriceCatalogue=Un prix de vente unique par produit / service +PricingRule=Règles pour les prix de vente +AddCustomerPrice=Ajouter un prix par client +ForceUpdateChildPriceSoc=Définir le même prix sur les filiales clientes +PriceByCustomerLog=Enregistrement des prix clients précédents +MinimumPriceLimit=Le prix minimum ne peut pas être inférieur à %s +MinimumRecommendedPrice=Le prix minimum recommandé est: %s +PriceExpressionSelected=Expression de prix choisie +PriceExpressionEditorHelp1="Prix = 2 + 2" ou "2 + 2" pour régler le prix. Utilisation ; Séparer les expressions +PriceExpressionEditorHelp2=Vous pouvez accéder à ExtraFields avec des variables comme #extrafield_myextrafieldkey # et les variables globales avec #global_mycode # +PriceExpressionEditorHelp3=Dans les prix des produits / services et des fournisseurs, ces variables sont disponibles: # tva_tx # # localtax1_tx # # localtax2_tx # # poids # # longueur # # surface # #price_min # +PriceExpressionEditorHelp4=En prix produit / service seulement: #supplier_min_price #
Sur les prix des fournisseurs uniquement: # supplier_quantity # et #supplier_tva_tx # +PriceMode=Mode prix PriceNumeric=Numéro +DefaultPrice=Prix ​​par défaut +ComposedProductIncDecStock=Augmenter / diminuer le stock sur le changement de parent +ComposedProduct=Sous-produit +MinSupplierPrice=Prix ​​minimum fournisseur +MinCustomerPrice=Prix ​​minimum du client +DynamicPriceConfiguration=Configuration de prix dynamique +DynamicPriceDesc=Sur la carte produit, avec ce module activé, vous pouvez définir des fonctions mathématiques pour calculer les prix Client ou Fournisseur. Une telle fonction peut utiliser tous les opérateurs mathématiques, certaines constantes et variables. Vous pouvez définir ici les variables que vous voulez et si la variable nécessite une mise à jour automatique, l'URL externe à utiliser pour demander à Dolibarr de mettre à jour automatiquement la valeur. +AddVariable=Ajouter une variable +AddUpdater=Ajouter une mise à jour +GlobalVariableUpdaters=Mises à jour variables globales +UpdateInterval=Intervalle de mise à jour (minutes) +CorrectlyUpdated=Correctement mis à jour +PropalMergePdfProductActualFile=Les fichiers utilisés pour ajouter au PDF Azur sont / sont +IncludingProductWithTag=Y compris produit / service avec étiquette +NbOfQtyInProposals=Qté dans les propositions +ClinkOnALinkOfColumn=Cliquez sur un lien de la colonne %s pour obtenir une vue détaillée ... +TranslatedLabel=Etiquette traduite +ProductWeight=Poids pour 1 produit +ProductVolume=Volume pour 1 produit +DeleteProductBuyPrice=Supprimer le prix d'achat +ConfirmDeleteProductBuyPrice=Êtes-vous sûr de vouloir supprimer ce prix d'achat? +ProductAttributeName=Attribut Variant %s +ProductAttributeDeleteDialog=Êtes-vous sûr de vouloir supprimer cet attribut? Toutes les valeurs seront supprimées +ProductAttributeValueDeleteDialog=Êtes-vous sûr de vouloir supprimer la valeur "%s" avec la référence "%s" de cet attribut? +ProductCombinationDeleteDialog=Êtes-vous sûr de vouloir supprimer la variante du produit "%s"? +ProductCombinationAlreadyUsed=Une erreur s'est produite lors de la suppression de la variante. Vérifiez qu'il ne soit utilisé dans aucun objet +HideProductCombinations=Masquer la variante des produits dans le sélecteur de produits +ProductCombination=Une variante +EditProductCombination=Modification de la variante +Features=Caractéristiques +PriceImpact=Impact des prix +NewProductAttributeValue=Nouvelle valeur d'attribut +ErrorCreatingProductAttributeValue=Une erreur s'est produite lors de la création de la valeur de l'attribut. Ce pourrait être parce qu'il existe déjà une valeur existante avec cette référence +ProductCombinationGeneratorWarning=Si vous continuez, avant de générer de nouvelles variantes, toutes les précédentes seront supprimées. Les éléments déjà existants seront mis à jour avec les nouvelles valeurs +TooMuchCombinationsWarning=La génération de nombreuses variantes peut entraîner une CPU élevée, une utilisation de la mémoire et Dolibarr pas capable de les créer. L'activation de l'option "%s" peut aider à réduire l'utilisation de la mémoire. +DoNotRemovePreviousCombinations=Ne supprimez pas les variantes précédentes +UsePercentageVariations=Variations en pourcentage d'utilisation +PercentageVariation=Variation en pourcentage +ErrorDeletingGeneratedProducts=Une erreur s'est produite en essayant de supprimer les variantes de produits existantes +NbProducts=Nb. De produits +ParentProduct=Produit principal +HideChildProducts=Masquer les variantes +ConfirmCloneProductCombinations=Voulez-vous copier toutes les variantes du produit vers l'autre produit parent avec la référence donnée? +CloneDestinationReference=Référence du produit de destination +ErrorCopyProductCombinations=Une erreur s'est produite lors de la copie des variantes du produit +ErrorDestinationProductNotFound=Produit de destination introuvable +ErrorProductCombinationNotFound=Variante du produit non trouvée diff --git a/htdocs/langs/fr_CA/projects.lang b/htdocs/langs/fr_CA/projects.lang index 1e30aa508b0..ed0a18cc2c6 100644 --- a/htdocs/langs/fr_CA/projects.lang +++ b/htdocs/langs/fr_CA/projects.lang @@ -1,2 +1,145 @@ # Dolibarr language file - Source file is en_US - projects +ProjectRef=Projet ref. +ProjectId=Id de projet +ProjectLabel=Étiquette du projet +ProjectsArea=Zone de projets +ProjectStatus=L'état du projet +PrivateProject=Contacts de projet +ProjectsImContactFor=Projets, je suis explicitement un contact de +AllAllowedProjects=Tout le projet que je peux lire (mine + public) +MyProjectsDesc=Cette vue est limitée aux projets pour lesquels vous êtes un contact (quel que soit le type). +ProjectsPublicDesc=Cette vue présente tous les projets que vous êtes autorisé à lire. +TasksOnProjectsPublicDesc=Cette vue présente toutes les tâches sur les projets que vous êtes autorisé à lire. +ProjectsPublicTaskDesc=Cette vue présente tous les projets et tâches que vous pouvez lire. +ProjectsDesc=Cette vue présente tous les projets (vos autorisations d'utilisateur vous permettent d'afficher tout). +TasksOnProjectsDesc=Cette vue présente toutes les tâches sur tous les projets (vos autorisations d'utilisateur vous permettent d'afficher tout). +MyTasksDesc=Cette vue est limitée aux projets ou tâches auxquels vous êtes un contact (quel que soit le type). +OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets en ébauche ou l'état fermé ne sont pas visibles). +ClosedProjectsAreHidden=Les projets fermés ne sont pas visibles. +TasksPublicDesc=Cette vue présente tous les projets et tâches que vous pouvez lire. +TasksDesc=Cette vue présente tous les projets et les tâches (vos autorisations d'utilisateur vous accordent l'autorisation de voir tout). +AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches pour un tel projet sont visibles, mais vous ne pouvez entrer l'heure que pour la tâche qui vous est assignée. Assignez-vous la tâche si vous devez entrer l'heure. +OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez-vous la tâche si elle n'est pas visible et vous devez entrer l'heure. +ProjectCategories=Étiquettes / catégories de projet +AddProject=Créer un projet +ConfirmDeleteAProject=Êtes-vous sûr de vouloir supprimer ce projet? +ConfirmDeleteATask=Êtes-vous sûr de vouloir supprimer cette tâche? +OpenedTasks=Ouvrir des tâches +OpportunitiesStatusForOpenedProjects=Opportunités nombre de projets ouverts par statut +OpportunitiesStatusForProjects=Opportunités montant des projets par statut +ShowProject=Afficher le projet +SetProject=Définir le projet +NoProject=Aucun projet défini ou détenu +NbOfProjects=Nb de projets +TimeSpent=Temps passé +TimeSpentByYou=Temps passé par vous +TimeSpentByUser=Temps passé par l'utilisateur +TimesSpent=Temps passé +RefTask=Réf. tâche +LabelTask=Tâche d'étiquette +TaskTimeSpent=Temps consacré aux tâches +NewTimeSpent=Temps passé +MyTimeSpent=Mon temps passé +Tasks=les tâches +TaskDateStart=Date de début de la tâche +AddTask=Créer une tâche +AddTimeSpent=Créer le temps passé +AddHereTimeSpentForDay=Ajouter ici le temps passé pour cette journée / tâche +Activities=Tâches / activités +MyActivities=Mes tâches / activités +MyProjectsArea=Zone de mes projets +ProgressDeclared=Progrès déclaré +ListOfTasks=Liste des tâches +ListInvoicesAssociatedProject=Liste des factures de clients associées au projet +ListPredefinedInvoicesAssociatedProject=Liste des factures de modèles de clients associées au projet +ListShippingAssociatedProject=Liste des envois associés au projet +ListExpenseReportsAssociatedProject=Liste des rapports de dépenses associés au projet +ListTaskTimeUserProject=Liste des temps consacrés aux tâches du projet +ActivityOnProjectToday=Activité sur le projet aujourd'hui +ActivityOnProjectYesterday=Activité sur projet hier +ActivityOnProjectThisWeek=Activité de projet cette semaine +ActivityOnProjectThisMonth=Activité de projet ce mois-ci +ActivityOnProjectThisYear=Activité de projet cette année +ChildOfTask=Enfant du projet / tâche +NotOwnerOfProject=Pas le propriétaire de ce projet privé +AffectedTo=Alloué à +CantRemoveProject=Ce projet ne peut pas être supprimé car il est référencé par d'autres objets (facture, commandes ou autres). Voir l'onglet des références. +ValidateProject=Valider le projet +ConfirmValidateProject=Êtes-vous sûr de vouloir valider ce projet? +CloseAProject=Prochain projet +ConfirmCloseAProject=Êtes-vous sûr de vouloir fermer ce projet? +AlsoCloseAProject=Fermez également le projet (maintenez-le ouvert si vous devez toujours suivre les tâches de production) +ReOpenAProject=Projet ouvert +ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet? +ProjectContact=Contacts de projet +ActionsOnProject=Événements sur projet +YouAreNotContactOfProject=Vous n'êtes pas un contact de ce projet privé +UserIsNotContactOfProject=L'utilisateur n'est pas un contact de ce projet privé +DeleteATimeSpent=Supprimer le temps passé +ConfirmDeleteATimeSpent=Êtes-vous sûr de vouloir supprimer ce temps passé? +DoNotShowMyTasksOnly=Voir aussi les tâches qui ne m'ont pas été affectées +ShowMyTasksOnly=Voir seulement les tâches qui m'ont été assignées +LinkedToAnotherCompany=Lié à d'autres tiers +TaskIsNotAssignedToUser=Tâche non assignée à l'utilisateur. Utilisez le bouton '%s' pour attribuer la tâche maintenant. +ErrorTimeSpentIsEmpty=Le temps passé est vide +ThisWillAlsoRemoveTasks=Cette action supprimera également toutes les tâches du projet (%s tâches en ce moment) et toutes les entrées du temps passé. +IfNeedToUseOhterObjectKeepEmpty=Si certains objets (facture, commande, ...), appartenant à un autre tiers, doivent être liés au projet à créer, conservez ce vide pour que le projet soit multi tiers. +CloneProject=Projet Clone +CloneTasks=Tâches de clonage +CloneProjectFiles=Le projet Clone a joint les fichiers +CloneTaskFiles=Tâches (s) clonées (s) jointes (si une ou plusieurs tâches est clonée) +CloneMoveDate=Mettre à jour les dates de projets / tâches à partir de maintenant? +ConfirmCloneProject=Êtes-vous sûr de cloner ce projet? +ProjectReportDate=Modifier les dates des tâches en fonction de la nouvelle date de début du projet +ErrorShiftTaskDate=Impossible de modifier la date de la tâche selon la nouvelle date de début du projet +TaskDeletedInDolibarr=Tâche %s supprimé +OpportunityStatus=Statut d'opportunité +OpportunityStatusShort=Opp. statut +OpportunityProbabilityShort=Opp. Probab. +OpportunityAmount=Montant de l'opportunité +OpportunityAmountShort=Opp. montant +OpportunityAmountAverageShort=Moyenne Opp. montant +OpportunityAmountWeigthedShort=Opp pondéré. montant +WonLostExcluded=Won / Lost excluded +TypeContact_project_internal_PROJECTCONTRIBUTOR=Donateur +TypeContact_project_external_PROJECTCONTRIBUTOR=Donateur +TypeContact_project_task_internal_TASKEXECUTIVE=Responsable de la tâche +TypeContact_project_task_external_TASKEXECUTIVE=Responsable de la tâche +TypeContact_project_task_internal_TASKCONTRIBUTOR=Donateur +TypeContact_project_task_external_TASKCONTRIBUTOR=Donateur +SelectElement=Sélectionnez l'élément +AddElement=Lien vers l'élément +DocumentModelBeluga=Modèle de projet pour l'aperçu des objets liés +DocumentModelBaleine=Modèle de rapport de projet pour les tâches +PlannedWorkload=Charge de travail planifiée +ProjectReferers=Articles connexes +ProjectMustBeValidatedFirst=Le projet doit d'abord être validé +FirstAddRessourceToAllocateTime=Affectez une ressource utilisateur à la tâche pour allouer du temps +InputPerDay=Entrée par jour +InputPerWeek=Entrée par semaine +InputPerAction=Entrée par action +TimeAlreadyRecorded=Il s'agit du temps passé déjà enregistré pour cette tâche / jour et utilisateur %s +ProjectsWithThisUserAsContact=Projets avec cet utilisateur en contact +ResourceNotAssignedToProject=Pas affecté au projet +ResourceNotAssignedToTheTask=Non assigné à la tâche +AssignTaskToMe=Attribuez une tâche à moi +AssignTaskToUser=Affectez une tâche à %s +SelectTaskToAssign=Sélectionnez la tâche à affecter ... +AssignTask=Attribuer +ProjectOverview=Aperçu +ManageTasks=Utiliser des projets pour suivre les tâches et le temps +ManageOpportunitiesStatus=Utiliser des projets pour suivre les pistes / opportunités +ProjectOppAmountOfProjectsByMonth=Nombre de possibilités par mois +ProjectOpenedProjectByOppStatus=Projet ouvert / chef d'entreprise selon le statut d'opportunité +ProjectsStatistics=Statistiques sur les projets / prospects +TasksStatistics=Statistiques sur les tâches de projet / chef de file +TaskAssignedToEnterTime=Tâche attribuée. La saisie de cette tâche devrait être possible. +IdTaskTime=Id temps de tâche +YouCanCompleteRef=Si vous souhaitez compléter la référence avec certaines informations (pour l'utiliser comme filtres de recherche), il est recommandé d'ajouter un caractère pour le séparer, de sorte que la numérotation automatique fonctionnera toujours correctement pour les prochains projets. Par exemple %s-ABC. Vous pouvez également ajouter des clés de recherche dans l'étiquette. Mais la meilleure pratique peut être d'ajouter un champ dédié, également appelé attributs complémentaires. +OpenedProjectsByThirdparties=Projets ouverts par des tiers +OnlyOpportunitiesShort=Seules les opportunités +NotAnOpportunityShort=Pas une opportunité +OpportunityTotalAmount=Possibilité montant total +OpportunityPonderatedAmountDesc=Montant des opportunités pondéré avec probabilité OppStatusPENDING=Créance +OppStatusWON=A gagné diff --git a/htdocs/langs/fr_CA/propal.lang b/htdocs/langs/fr_CA/propal.lang index c883ba1ad88..fc289fe178d 100644 --- a/htdocs/langs/fr_CA/propal.lang +++ b/htdocs/langs/fr_CA/propal.lang @@ -1,26 +1,46 @@ # Dolibarr language file - Source file is en_US - propal ProposalsDraft=Propositions brouillons +ProposalCard=Carte de proposition DeleteProp=Supprimer la proposition commerciale ValidateProp=Valider la proposition commerciale +ConfirmDeleteProp=Êtes-vous sûr de vouloir supprimer cette proposition commerciale? +ConfirmValidateProp=Êtes-vous sûr de vouloir valider cette proposition commerciale sous le nom %s? +LastPropals=Dernières %s propositions +LastModifiedProposals=Dernières %s propositions modifiées AllPropals=Toutes les propositions SearchAProposal=Rechercher une proposition NoProposal=Pas de propositions +ProposalsStatistics=Statistiques de la proposition commerciale +AmountOfProposalsByMonthHT=Montant par mois (net d'impôt) +PropalStatusValidated=Validé (la proposition est ouverte) PropalStatusNotSigned=Non signée (close) +PropalsToClose=Propositions commerciales à clôturer +ListOfProposals=Liste des propositions commerciales +ActionsOnPropal=Événements sur proposition RefProposal=Référence de la proposition commerciale SendPropalByMail=Envoyer proposition commerciale par courriel DateEndPropal=Date de validité se terminant +CloseAs=Définir l'état sur SetAcceptedRefused=Accepté/refusé ErrorPropalNotFound=Pas de proposition %s trouvées AddToDraftProposals=Ajouter un brouillon de proposition NoDraftProposals=Pas de brouillons de propositions CopyPropalFrom=Créer proposition commerciale en copiant proposition existante +CreateEmptyPropal=Créer des propositions commerciales vides vierge ou à partir d'une liste de produits / services DefaultProposalDurationValidity=Durée de validité par défaut de la proposition commerciale (en jours) UseCustomerContactAsPropalRecipientIfExist=\n ClonePropal=Dupliquer proposition commerciale +ConfirmClonePropal=Êtes-vous sûr de vouloir cloner la proposition commerciale %s? +ConfirmReOpenProp=Êtes-vous sûr de vouloir ouvrir la proposition commerciale %s? ProposalsAndProposalsLines=Proposition commerciale et des lignes ProposalLine=ligne de proposition AvailabilityPeriod=Délai de disponibilité SetAvailability=Indiquer le délai de disponibilité AvailabilityTypeAV_NOW=Immédiatement +TypeContact_propal_internal_SALESREPFOLL=Proposition de suivi représentative TypeContact_propal_external_BILLING=Contact client facturation +TypeContact_propal_external_CUSTOMER=Proposition de suivi du contact client +DocModelAzurDescription=Un modèle complet de proposition (logo ...) +DefaultModelPropalCreate=Création de modèle par défaut +DefaultModelPropalClosed=Modèle par défaut lors de la clôture d'une proposition commerciale (non facturé) ProposalsStatisticsSuppliers=Statistiques des propositions par fournisseurs diff --git a/htdocs/langs/fr_CA/salaries.lang b/htdocs/langs/fr_CA/salaries.lang index a1f85800ea0..effce5cd68f 100644 --- a/htdocs/langs/fr_CA/salaries.lang +++ b/htdocs/langs/fr_CA/salaries.lang @@ -1,10 +1,13 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Code comptable pour les charges financières +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable par défaut pour les paiements de salaire +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les dépenses de personnel Salary=Salaires NewSalaryPayment=Nouveau paiement de salaire SalaryPayment=Paiement Salaire SalariesPayments=Paiements salaires ShowSalaryPayment=Afficher paiement de salaires +THM=Taux horaire moyen +TJM=Taux journalier moyen CurrentSalary=Salaire actuel THMDescription=Cette valeur peut être utilisée pour calculer le coût du temps consommé sur un projet entré par les utilisateurs si le projet de module est utilisé TJMDescription=Cette valeur est actuellement à titre d'information seulement et ne sert pas à tout calcul diff --git a/htdocs/langs/fr_CA/sendings.lang b/htdocs/langs/fr_CA/sendings.lang index a36c88189e1..7b30519b12e 100644 --- a/htdocs/langs/fr_CA/sendings.lang +++ b/htdocs/langs/fr_CA/sendings.lang @@ -1,2 +1,51 @@ # Dolibarr language file - Source file is en_US - sendings +AllSendings=Tous les envois +ShowSending=Afficher les envois +Receivings=Reçus de livraison +SendingsArea=Zone d'expédition +ListOfSendings=Liste des envois +SendingMethod=Méthode d'envoi +LastSendings=Dernières expéditions %s +StatisticsOfSendings=Statistiques pour les envois +NumberOfShipmentsByMonth=Nombre d'envois par mois +SendingCard=Carte d'expédition +CreateShipment=Créer un envoi +QtyShipped=Quantité expédiée +QtyPreparedOrShipped=Qté préparé ou expédié +QtyToShip=Qté pour expédier +QtyReceived=Qté reçue +QtyInOtherShipments=Quantité dans les autres envois +OtherSendingsForSameOrder=Autres envois pour cette commande +SendingsAndReceivingForSameOrder=Livraisons et recettes pour cet ordre +SendingsToValidate=Livraisons à valider +StatusSendingCanceled=Annulé +StatusSendingValidated=Validé (produits à expédier ou déjà expédiés) +StatusSendingProcessed=Traité +StatusSendingProcessedShort=Traité +SendingSheet=Fiche d'expédition +ConfirmDeleteSending=Êtes-vous sûr de vouloir supprimer cette expédition? +ConfirmValidateSending=Êtes-vous sûr de vouloir valider cette expédition avec la référence %s? +ConfirmCancelSending=Êtes-vous sûr de vouloir annuler cette expédition? +WarningNoQtyLeftToSend=Attention, aucun produit n'est en attente d'expédition. +StatsOnShipmentsOnlyValidated=Statistiques réalisées sur les envois validés uniquement. La date utilisée est la date de validation de l'expédition (la date de livraison prévue n'est pas toujours connue). DateDeliveryPlanned=Date de livraison prévue +RefDeliveryReceipt=Bon de livraison de remise +StatusReceipt=Date réception de livraison +DateReceived=Date de livraison reçue +SendShippingByEMail=Envoyer un envoi par EMail +SendShippingRef=Soumission d'envoi %s +ActionsOnShipping=Évènements à l'expédition +LinkToTrackYourPackage=Lien pour suivre votre colis +ShipmentCreationIsDoneFromOrder=Pour l'instant, la création d'un nouvel envoi se fait à partir de la carte de commande. +ShipmentLine=Ligne de livraison +ProductQtyInCustomersOrdersRunning=Quantité de produit dans les commandes de clients ouverts +ProductQtyInSuppliersOrdersRunning=Quantité de produit en commandes de fournisseurs ouverts +ProductQtyInShipmentAlreadySent=La quantité de produit provenant de l'ordre client ouvert déjà envoyé +ProductQtyInSuppliersShipmentAlreadyRecevied=La quantité de produit provenant de l'ordre fournisseur ouvert déjà reçu +NoProductToShipFoundIntoStock=Aucun produit à expédier dans l'entrepôt %s. Corrigez le stock ou reviens pour choisir un autre entrepôt. +WeightVolShort=Poids / Vol. +ValidateOrderFirstBeforeShipment=Vous devez d'abord valider l'ordre avant de pouvoir effectuer des expéditions. +DocumentModelTyphon=Modèle de document plus complet pour les reçus de livraison (logo ...) +SumOfProductVolumes=Somme des volumes de produits +DetailWarehouseNumber=Détails de l'entrepôt +DetailWarehouseFormat=W: %s (Qté: %d) diff --git a/htdocs/langs/fr_CA/sms.lang b/htdocs/langs/fr_CA/sms.lang index 82c8a7fb0dd..6a79dcba648 100644 --- a/htdocs/langs/fr_CA/sms.lang +++ b/htdocs/langs/fr_CA/sms.lang @@ -1,2 +1,35 @@ # Dolibarr language file - Source file is en_US - sms +SmsSetup=Configuration Sms +SmsDesc=Cette page vous permet de définir des options globales sur les fonctionnalités SMS +SmsCard=Carte SMS +AllSms=Tous les campagnes SMS +SmsTargets=Objectifs +SmsRecipients=Objectifs +SmsRecipient=Cible +SmsFrom=Expéditeur +SmsTo=Cible +SmsMessage=Message SMS +EditSms=Modifier Sms +DeleteSms=Supprimer Sms campain +DeleteASms=Supprimer une campagne Sms +PreviewSms=Aperçu Sms +PrepareSms=Préparer Sms +CreateSms=Créer Sms +SmsResult=Résultat de l'envoi de Sms +ValidSms=Valider Sms +ApproveSms=Approuve Sms SmsStatusValidated=Validée +SmsStatusApproved=Approuver +SmsStatusSentPartialy=Envoyé en partie +SmsSuccessfulySent=Sms envoyé correctement (%s de %s) +ErrorSmsRecipientIsEmpty=Le nombre de cibles est vide +WarningNoSmsAdded=Aucun nouveau numéro de téléphone à ajouter à la liste cible +ConfirmValidSms=Confirmez-vous la validation de ce campain? +NbOfUniqueSms=Nb dof numéros de téléphone uniques +NbOfSms=Nbre de numéros phon +SendSms=Envoyer un SMS +SmsInfoCharRemain=Nb de personnages restants +SmsInfoNumero=(Format international, c'est-à-dire: +33899701761) +DelayBeforeSending=Délai avant l'envoi (minutes) +SmsNoPossibleSenderFound=Aucun expéditeur n'est disponible. Vérifiez la configuration de votre fournisseur de SMS. +SmsNoPossibleRecipientFound=Aucune cible disponible. Vérifiez la configuration de votre fournisseur de SMS. diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang index 96b8786b0d8..9fe13bc4cb2 100644 --- a/htdocs/langs/fr_CA/stocks.lang +++ b/htdocs/langs/fr_CA/stocks.lang @@ -1,3 +1,109 @@ # Dolibarr language file - Source file is en_US - stocks +WarehouseCard=Carte d'entrepôt +NewWarehouse=Nouvelle entrepôt / zone de stock +WarehouseEdit=Modifier l'entrepôt +AddOne=Ajoute un +WarehouseTarget=Entrepôt cible +ValidateSending=Supprimer l'envoi +CancelSending=Annuler l'envoi +DeleteSending=Supprimer l'envoi +StocksByLotSerial=Stock par lot / série +LotSerial=Lots / Serials +LotSerialList=Liste des lots / séries +ErrorWarehouseRefRequired=Le nom de référence de l'entrepôt est requis +StockMovementForId=ID de mouvement %d +ListMouvementStockProject=Liste des mouvements de stock associés au projet +StocksArea=Zone d'entrepôts +LocationSummary=Nom abrégé +StockCorrection=Stock correct +StockTransfer=Stock de transfert +MassStockTransferShort=Transfert de stock de masse +LabelMovement=Étiquette de mouvement +NumberOfUnit=Nombre d'unités +UnitPurchaseValue=Prix ​​unitaire d'achat +StockTooLow=Stock trop bas +StockLowerThanLimit=Stock inférieure à la limite d'alerte (%s) EnhancedValue=Valeur +PMPValue=Prix ​​moyen pondéré +EnhancedValueOfWarehouses=Valeur des entrepôts +UserWarehouseAutoCreate=Créer un entrepôt automatiquement lors de la création d'un utilisateur +AllowAddLimitStockByWarehouse=Permet d'ajouter la limite et le stock désiré par couple (produit, entrepôt) au lieu de par produit +IndependantSubProductStock=Le stock de produits et le sous-produit sont indépendants +QtyDispatched=Quantité expédiée +QtyDispatchedShort=Qté expédiée +QtyToDispatchShort=Qté à expédier +RuleForStockManagementDecrease=Règle pour la réduction automatique de la gestion des stocks (la diminution manuelle est toujours possible, même si une règle de diminution automatique est activée) +RuleForStockManagementIncrease=Règle pour l'augmentation automatique de la gestion des stocks (l'augmentation manuelle est toujours possible, même si une règle d'augmentation automatique est activée) +DeStockOnBill=Diminuer les stocks réels sur les factures des clients / validation des notes de crédit +DeStockOnValidateOrder=Diminuer les stocks réels sur la validation des commandes des clients +DeStockOnShipment=Diminuer les stocks réels lors de la validation de l'expédition +DeStockOnShipmentOnClosing=Diminuer les stocks réels sur la classification de l'expédition fermée +ReStockOnBill=Augmenter les stocks réels sur les factures des fournisseurs / validation des notes de crédit +ReStockOnValidateOrder=Augmenter les stocks réels sur l'approbation des commandes des fournisseurs +ReStockOnDispatchOrder=Augmenter les stocks réels lors de l'expédition manuelle dans les entrepôts, après réception de la facture fournisseur des marchandises +OrderStatusNotReadyToDispatch=L'ordre n'a pas encore ou pas plus un statut qui permet l'envoi de produits dans des entrepôts de stock. +StockDiffPhysicTeoric=Explication de la différence entre le stock physique et le stock virtuel +NoPredefinedProductToDispatch=Aucun produit prédéfini pour cet objet. Donc, aucune expédition en stock n'est requise. +DispatchVerb=Envoi +StockLimitShort=Limite d'alerte +StockLimit=Limite de stock pour l'alerte +VirtualStock=Stock virtuel +IdWarehouse=Id entrepôt +LieuWareHouse=Entrepôt de localisation +WarehousesAndProductsBatchDetail=Entrepôts et produits (avec détail par lot / série) +AverageUnitPricePMPShort=Prix ​​moyen pondéré des intrants +AverageUnitPricePMP=Prix ​​moyen pondéré des intrants +SellPriceMin=Prix ​​unitaire de vente +EstimatedStockValueSellShort=Valeur à vendre +EstimatedStockValueSell=Valeur à vendre +EstimatedStockValueShort=Valeur de stock d'entrée +EstimatedStockValue=Valeur de stock d'entrée +ConfirmDeleteWarehouse=Êtes-vous sûr de vouloir supprimer l'entrepôt %s? +ThisWarehouseIsPersonalStock=Cet entrepôt représente un stock personnel de %s %s +SelectWarehouseForStockDecrease=Choisissez un entrepôt à utiliser pour réduire les stocks +SelectWarehouseForStockIncrease=Choisir un entrepôt à utiliser pour augmenter les stocks +NoStockAction=Pas de stock action +DesiredStock=Offre optimale souhaitée +DesiredStockDesc=Ce montant de stock sera la valeur utilisée pour remplir le stock par fonctionnalité de réapprovisionnement. +StockToBuy=Commander +ReplenishmentOrders=Ordres de réapprovisionnement +VirtualDiffersFromPhysical=Selon l'augmentation / diminution des options d'achat d'actions, les stocks physiques et les stocks virtuels (commandes physiques et actuelles) peuvent différer +UseVirtualStockByDefault=Utilisez le stock virtuel par défaut, au lieu du stock physique, pour la fonctionnalité de réapprovisionnement +UseVirtualStock=Utiliser un stock virtuel +UsePhysicalStock=Utiliser un stock physique +CurentSelectionMode=Mode de sélection actuel +CurentlyUsingVirtualStock=Stock virtuel +CurentlyUsingPhysicalStock=Stock physique +RuleForStockReplenishment=Règle pour la reconstitution des stocks +AlertOnly=Alertes uniquement +WarehouseForStockDecrease=L'entrepôt %s sera utilisé pour diminuer les stocks +WarehouseForStockIncrease=L'entrepôt %s sera utilisé pour augmenter les stocks +ReplenishmentStatusDesc=Il s'agit d'une liste de tous les produits avec un stock inférieur au stock souhaité (ou inférieur à la valeur d'alerte si la case "Alerte uniquement" est cochée). À l'aide de la case à cocher, vous pouvez créer des commandes fournisseurs pour combler la différence. +ReplenishmentOrdersDesc=Il s'agit d'une liste de toutes les commandes fournisseurs ouvertes, y compris des produits prédéfinis. Seuls les commandes ouvertes avec des produits prédéfinis, de sorte que les commandes susceptibles d'affecter les stocks, sont visibles ici. +NbOfProductBeforePeriod=Quantité de produit %s en stock avant la période sélectionnée (<%s) +NbOfProductAfterPeriod=Quantité de produit %s en stock après la période sélectionnée (> %s) +MassMovement=Mouvement de masse +SelectProductInAndOutWareHouse=Sélectionnez un produit, une quantité, un entrepôt source et un entrepôt cible, puis cliquez sur "%s". Une fois que cela est fait pour tous les mouvements requis, cliquez sur "%s". +RecordMovement=Transfert d'enregistrement +ReceivingForSameOrder=Reçus pour cette commande +StockMovementRecorded=Mouvements de stock enregistrés +RuleForStockAvailability=Règles sur les stocks requis +StockMustBeEnoughForInvoice=Le niveau de stock doit être suffisant pour ajouter un produit / service à la facture (la vérification est effectuée sur le stock réel actuel lors de l'ajout d'une ligne dans la facture, quelle que soit la règle pour la modification automatique des stocks) +StockMustBeEnoughForOrder=Le niveau de stock doit être suffisant pour ajouter un produit / service à la commande (la vérification est effectuée sur le stock réel actuel lors de l'ajout d'une ligne dans l'ordre quelle que soit la règle pour le changement de stock automatique) +StockMustBeEnoughForShipment=Le niveau de stock doit être suffisant pour ajouter du produit / service à l'expédition (la vérification est effectuée sur le stock réel actuel lors de l'ajout d'une ligne dans l'expédition, quelle que soit la règle pour la modification automatique des stocks) +MovementLabel=Étiquette de mouvement +InventoryCode=Mouvement ou code d'inventaire +IsInPackage=Contenu dans le paquet ShowWarehouse=Voir entrepôt +MovementCorrectStock=Correction de stock pour le produit %s +NoPendingReceptionOnSupplierOrder=Pas de réception en attente en raison d'une commande ouverte du fournisseur +ThisSerialAlreadyExistWithDifferentDate=Ce lot / numéro de série (%s) existe déjà, mais avec différentes dates eatby ou sellby (trouvé %s mais vous entrez %s). +OpenAll=Ouvert pour toutes les actions +OpenInternal=Ouvrir uniquement pour les actions internes +UseDispatchStatus=Utilisez un état d'envoi (approbation / refus) pour les lignes de produits lors de la réception de commande fournisseur +OptionMULTIPRICESIsOn=L'option "plusieurs prix par segment" est activée. Cela signifie qu'un produit a plusieurs prix de vente, donc la valeur à vendre ne peut être calculée +ProductStockWarehouseCreated=Limite de stock pour l'alerte et le stock optimal souhaité correctement créé +ProductStockWarehouseUpdated=La limite de stock pour l'alerte et le stock optimal souhaité est correctement mis à jour +ProductStockWarehouseDeleted=La limite de stock pour l'alerte et le stock optimal souhaité sont correctement supprimés +AddNewProductStockWarehouse=Définir une nouvelle limite pour l'alerte et le stock optimal souhaité +AddStockLocationLine=Diminuez la quantité, puis cliquez pour ajouter un autre entrepôt pour ce produit diff --git a/htdocs/langs/fr_CA/supplier_proposal.lang b/htdocs/langs/fr_CA/supplier_proposal.lang index 1ba2ff4572d..f9a6b3caf48 100644 --- a/htdocs/langs/fr_CA/supplier_proposal.lang +++ b/htdocs/langs/fr_CA/supplier_proposal.lang @@ -1,4 +1,42 @@ # Dolibarr language file - Source file is en_US - supplier_proposal +SupplierProposal=Propositions commerciales fournisseurs +supplier_proposalDESC=Gérer les demandes de prix aux fournisseurs +SupplierProposalNew=Nouvelle requête +CommRequests=Demande de prix +SearchRequest=Trouver une demande +DraftRequests=Requêtes préliminaires +SupplierProposalsDraft=Projet de propositions de fournisseurs +LastModifiedRequests=Dernières %s demandes de prix modifiées +RequestsOpened=Demandes de prix ouverts +SupplierProposalArea=Zone de propositions de fournisseurs +SupplierProposalShort=Proposition de fournisseur +SupplierProposals=Propositions de fournisseurs +SupplierProposalsShort=Propositions de fournisseurs +ShowSupplierProposal=Afficher la demande de prix +SupplierProposalRefFourn=Réf fournisseur +SupplierProposalRefFournNotice=Avant de passer à "Accepté", pensez à saisir les références des fournisseurs. +ConfirmValidateAsk=Êtes-vous sûr de vouloir valider cette demande de prix sous le nom %s? +DeleteAsk=Supprimer la demande +ValidateAsk=Valider la demande +SupplierProposalStatusValidated=Validé (la demande est ouverte) SupplierProposalStatusClosed=Fermées SupplierProposalStatusValidatedShort=Validée SupplierProposalStatusClosedShort=Fermées +CopyAskFrom=Créer une demande de prix en copiant une demande existante +CreateEmptyAsk=Créer une requête vierge +CloneAsk=Demande de prix de clone +ConfirmCloneAsk=Êtes-vous sûr de vouloir cloner la demande de prix %s? +ConfirmReOpenAsk=Êtes-vous sûr de vouloir ouvrir la demande de prix %s? +SendAskByMail=Envoyer la demande de prix par mail +SupplierProposalCard=Demande de carte +ConfirmDeleteAsk=Êtes-vous sûr de vouloir supprimer cette demande de prix %s? +ActionsOnSupplierProposal=Événements sur demande de prix +DocModelAuroreDescription=Un modèle de demande complet (logo ...) +DefaultModelSupplierProposalCreate=Création de modèle par défaut +DefaultModelSupplierProposalToBill=Modèle par défaut lors de la clôture d'une demande de prix (acceptée) +DefaultModelSupplierProposalClosed=Modèle par défaut lors de la clôture d'une demande de prix (refusée) +ListSupplierProposalsAssociatedProject=Liste des propositions de fournisseurs associées au projet +SupplierProposalsToClose=Propositions de fournisseurs à clôturer +SupplierProposalsToProcess=Propositions de fournisseurs à traiter +LastSupplierProposals=Dernières demandes de prix %s +AllPriceRequests=Toutes les demandes diff --git a/htdocs/langs/fr_CA/suppliers.lang b/htdocs/langs/fr_CA/suppliers.lang index ee2194a28ed..9ae6d3eb064 100644 --- a/htdocs/langs/fr_CA/suppliers.lang +++ b/htdocs/langs/fr_CA/suppliers.lang @@ -4,6 +4,7 @@ ShowSupplierInvoice=Afficher une facture fournisseur ListOfSuppliers=Liste fournisseurs TotalBuyingPriceMinShort=Total de sous-produits par prix d'achat SomeSubProductHaveNoPrices=Certains sous-produits n'ont pas de prix défini +ChangeSupplierPrice=Changer le prix d'achat ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ce fournisseur de référence est déjà associé à une référence : %s NoRecordedSuppliers=Aucun fournisseurs enregistrés SupplierPayment=Règlement fournisseur @@ -12,7 +13,13 @@ ExportDataset_fournisseur_1=Liste des factures des fournisseurs et des lignes de ExportDataset_fournisseur_2=Factures des fournisseurs et paiements ExportDataset_fournisseur_3=Commandes fournisseurs et les lignes de commande ApproveThisOrder=Approuver cette commande +ConfirmApproveThisOrder=Êtes-vous sûr de vouloir approuver la commande %s? +ConfirmDenyingThisOrder=Êtes-vous sûr de vouloir refuser cette commande %s? +ConfirmCancelThisOrder=Êtes-vous sûr de vouloir annuler cette commande %s? ListOfSupplierProductForSupplier=Liste des produits et des prix pour le fournisseur %s SentToSuppliers=Envoyer aux fournisseurs MenuOrdersSupplierToBill=Commandes de fournisseur à facturer DescNbDaysToDelivery=Délai de livraison maximum pour les produits de cette commande +DoNotOrderThisProductToThisSupplier=Ne commandez pas +NotTheGoodQualitySupplier=Qualité incorrecte +AllProductServicePrices=Tous les prix des produits / services diff --git a/htdocs/langs/fr_CA/trips.lang b/htdocs/langs/fr_CA/trips.lang index 70793109004..3e2773793f2 100644 --- a/htdocs/langs/fr_CA/trips.lang +++ b/htdocs/langs/fr_CA/trips.lang @@ -1,5 +1,68 @@ # Dolibarr language file - Source file is en_US - trips +ExpenseReport=Rapport de dépenses ExpenseReports=Note de frais +ShowExpenseReport=Afficher le rapport de dépenses +TripsAndExpenses=Rapports sur les dépenses +TripsAndExpensesStatistics=Statistiques des rapports de dépenses +TripCard=Rapport de dépenses +AddTrip=Créer un rapport de dépenses +ListOfTrips=Liste des rapports de dépenses +ListOfFees=Liste des frais +TypeFees=Types de frais +ShowTrip=Afficher le rapport de dépenses +NewTrip=Nouveau rapport de dépenses +CompanyVisited=Entreprise / organisation visité +DeleteTrip=Supprimer le rapport de dépenses +ConfirmDeleteTrip=Êtes-vous sûr de vouloir supprimer ce rapport de dépenses? +ListTripsAndExpenses=Liste des rapports de dépenses +ListToApprove=en attente d'approbation +ExpensesArea=Zone de rapports sur les dépenses +ClassifyRefunded=Classer «Remboursé» +ExpenseReportWaitingForApproval=Un nouveau rapport de dépenses a été soumis pour approbation +ExpenseReportWaitingForApprovalMessage=Un nouveau rapport de dépenses a été soumis et attend l'approbation.\n - Utilisateur: %s\n - Période: %s\nCliquez ici pour valider: %s +ExpenseReportWaitingForReApproval=Un rapport sur les dépenses a été soumis pour approbation +ExpenseReportWaitingForReApprovalMessage=Un rapport sur les dépenses a été soumis et attend une ré-approbation.\nLe %s, vous avez refusé d'approuver le rapport de dépenses pour cette raison: %s.\nUne nouvelle version a été proposée et en attente de votre approbation.\n - Utilisateur: %s\n - Période: %s\nCliquez ici pour valider: %s +ExpenseReportApproved=Un rapport sur les dépenses a été approuvé +ExpenseReportApprovedMessage=Le rapport de dépenses %s a été approuvé.\n - Utilisateur: %s\n - Approuvé par: %s\nCliquez ici pour afficher le rapport de dépenses: %s +ExpenseReportRefused=Un rapport de dépenses a été refusé +ExpenseReportRefusedMessage=Le rapport de dépenses %s a été refusé.\n - Utilisateur: %s\n - Refusé par: %s\n - Motif de refus: %s\nCliquez ici pour afficher le rapport de dépenses: %s +ExpenseReportCanceled=Un rapport de dépenses a été annulé +ExpenseReportCanceledMessage=Le rapport de dépenses %s a été annulé.\n - Utilisateur: %s\n - Annulé par: %s\n - Motif d'annulation: %s\nCliquez ici pour afficher le rapport de dépenses: %s +ExpenseReportPaid=Un rapport de dépenses a été payé +ExpenseReportPaidMessage=Le rapport de dépenses %s a été payé.\n - Utilisateur: %s\n - Payé par: %s\nCliquez ici pour afficher le rapport de dépenses: %s +TripId=Rapport de dépenses +AnyOtherInThisListCanValidate=Personne à informer pour validation. +TripSociete=Société d'information +TripNDF=Informations rapport de dépenses +PDFStandardExpenseReports=Modèle standard pour générer un document PDF pour le rapport de dépenses +ExpenseReportLine=Ligne de rapport de dépenses +TF_LUNCH=Le déjeuner +TF_BUS=Autobus +TF_HOTEL=Un hôtel +ErrorDoubleDeclaration=Vous avez déclaré un autre rapport de dépenses dans une fourchette de dates similaire. +AucuneLigne=Il n'y a pas encore de rapport de dépenses déclaré +VALIDATOR=Responsable de l'approbation MOTIF_REFUS=Raison MOTIF_CANCEL=Raison +DATE_REFUS=Déni de date +DATE_CANCEL=Date d'annulation DATE_PAIEMENT=Date de règlement +BROUILLONNER=Rouvrir +ValidateAndSubmit=Validez et soumettez pour approbation +NOT_AUTHOR=Vous n'êtes pas l'auteur de ce rapport de dépenses. Fonctionnement annulé. +ConfirmRefuseTrip=Êtes-vous sûr de vouloir refuser ce rapport de dépenses? +ValideTrip=Approuver le rapport de dépenses +ConfirmValideTrip=Êtes-vous sûr de vouloir approuver ce rapport de dépenses? +PaidTrip=Payer un rapport de dépenses +ConfirmPaidTrip=Êtes-vous sûr de vouloir modifier l'état de ce rapport de dépenses sur "Payé"? +ConfirmCancelTrip=Êtes-vous sûr de vouloir annuler ce rapport de dépenses? +BrouillonnerTrip=Déplacer le rapport de dépenses vers le statut "Ébauche" +ConfirmBrouillonnerTrip=Êtes-vous sûr de vouloir déplacer ce rapport de dépenses au statut "Ébauche"? +SaveTrip=Valider le rapport de dépenses +ConfirmSaveTrip=Êtes-vous sûr de vouloir valider ce rapport de dépenses? +NoTripsToExportCSV=Aucun rapport de dépenses à exporter pour cette période. +ExpenseReportPayment=Paiement du rapport de dépenses +ExpenseReportsToApprove=Rapports de dépenses à approuver +ExpenseReportsToPay=Rapports de dépenses à payer +CloneExpenseReport=Rapport de dépenses de clones +ConfirmCloneExpenseReport=Êtes-vous sûr de vouloir cloner ce rapport de dépenses? diff --git a/htdocs/langs/fr_CA/users.lang b/htdocs/langs/fr_CA/users.lang index dc4b895ede4..7f80f64cd1b 100644 --- a/htdocs/langs/fr_CA/users.lang +++ b/htdocs/langs/fr_CA/users.lang @@ -1,2 +1,16 @@ # Dolibarr language file - Source file is en_US - users +SubjectNewPassword=Votre nouveau mot de passe pour %s +ConfirmDisableUser=Êtes-vous sûr de vouloir désactiver l'utilisateur %s? +ConfirmDeleteUser=Êtes-vous sûr de vouloir supprimer l'utilisateur %s? +ConfirmDeleteGroup=Êtes-vous sûr de vouloir supprimer le groupe %s? +ConfirmEnableUser=Êtes-vous sûr de vouloir activer l'utilisateur %s? +ConfirmReinitPassword=Êtes-vous sûr de vouloir générer un nouveau mot de passe pour l'utilisateur %s? +ConfirmSendNewPassword=Êtes-vous sûr de vouloir générer et envoyer un nouveau mot de passe pour l'utilisateur %s? +LastGroupsCreated=Derniers groupes %s créés +LastUsersCreated=Derniers %s utilisateurs créés +CreateInternalUserDesc=Ce formulaire vous permet de créer un utilisateur interne à votre entreprise / organisation. Pour créer un utilisateur externe (client, fournisseur, ...), utilisez le bouton 'Créer un utilisateur Dolibarr' à partir de la carte de contact de tiers. +InternalExternalDesc=Un utilisateur interne est un utilisateur qui fait partie de votre entreprise/organisation.
Un utilisateur externeest un client, un fournisseur ou un autre.

Les deux cas, les autorisations définissent les droits sur Dolibarr, mais l'utilisateur externe peut avoir un gestionnaire de menu différent de l'utilisateur interne (voir Home - Setup - Display) +ConfirmCreateContact=Êtes-vous sûr de vouloir créer un compte Dolibarr pour ce contact? +ConfirmCreateLogin=Êtes-vous sûr de vouloir créer un compte Dolibarr pour ce membre? +ConfirmCreateThirdParty=Êtes-vous sûr de vouloir créer un tiers pour ce membre? UserAccountancyCode=code comptabie de l'utilisateur diff --git a/htdocs/langs/fr_CA/website.lang b/htdocs/langs/fr_CA/website.lang index 7656edf7aa4..ca6168a235e 100644 --- a/htdocs/langs/fr_CA/website.lang +++ b/htdocs/langs/fr_CA/website.lang @@ -2,3 +2,23 @@ WebsiteSetupDesc=Créer ici autant d'entrée que le nombre de différents sites Web dont vous avez besoin. Ensuite, allez dans le menu Sites Web pour les éditer. DeleteWebsite=Supprimer site internet ConfirmDeleteWebsite=Etes-vous sûr de vouloir supprimer ce site Web. Toutes ses pages et le contenu seront également supprimés. +WEBSITE_PAGENAME=Nom / alias de la page +WEBSITE_CSS_URL=URL du fichier CSS externe +WEBSITE_CSS_INLINE=Contenu CSS +MediaFiles=Médiathèque +EditCss=Modifier style / CSS +EditMenu=Menu Edition +EditPageMeta=Modifier Meta +EditPageContent=Modifier le contenu +Website=Site Internet +Webpage=page web +PreviewOfSiteNotYetAvailable=Aperçu de votre site web %s n'est pas encore disponible. Vous devez d'abord ajouter une page. +RequestedPageHasNoContentYet=La page demandée avec l'identifiant %s n'a pas encore de contenu ou le fichier cache .tpl.php a été supprimé. Modifier le contenu de la page pour résoudre ce problème. +PageDeleted=Page '%s' du site %s supprimé +PageAdded=La page '%s' a ajouté +ViewSiteInNewTab=Afficher le site dans un nouvel onglet +ViewPageInNewTab=Afficher la page dans un nouvel onglet +ViewWebsiteInProduction=Afficher le site Web à l'aide d'URL d'accueil +SetHereVirtualHost=Si vous pouvez définir, sur votre serveur Web, un hôte virtuel dédié avec un répertoire racine sur %s, définissez ici le nom d'hôte virtuel afin que l'aperçu puisse être effectué également en utilisant cet accès direct au serveur Web et non seulement en utilisant Serveur Dolibarr. +PreviewSiteServedByWebServer=Aperçu %s dans un nouvel onglet.

Le %s sera desservi par un serveur web externe (comme Apache, Nginx, IIS). Vous devez installer et configurer ce serveur avant de pointer vers le répertoire:
%s
URL desservie par un serveur externe:
%s +PreviewSiteServedByDolibarr=Aperçu %s dans un nouvel onglet.

%s sera desservi par le serveur Dolibarr afin qu'il ne soit pas nécessaire d'installer un serveur Web supplémentaire (comme Apache, Nginx, IIS).
L'inconvénient est cet URL Des pages ne sont pas conviviaux et commencent par le chemin de votre Dolibarr.
URL desservie par Dolibarr:
%s

Pour utiliser votre propre serveur Web externe pour desservir ce site Web Site, créez un hôte virtuel sur votre serveur Web qui pointe sur le répertoire
%s
puis entrez le nom de ce serveur virtuel et cliquez sur l'autre bouton de prévisualisation. diff --git a/htdocs/langs/fr_CA/withdrawals.lang b/htdocs/langs/fr_CA/withdrawals.lang index 9efc4180748..923d547db91 100644 --- a/htdocs/langs/fr_CA/withdrawals.lang +++ b/htdocs/langs/fr_CA/withdrawals.lang @@ -1,2 +1,87 @@ # Dolibarr language file - Source file is en_US - withdrawals +CustomersStandingOrdersArea=Zone de commandes de paiement par débit direct +SuppliersStandingOrdersArea=Zone de commandes de paiement direct +NewStandingOrder=Nouveau décret direct +StandingOrderToProcess=Procéder +WithdrawalsReceipts=Ordres de débit direct +WithdrawalReceipt=Ordre de débit direct +LastWithdrawalReceipts=Derniers fichiers de débit direct %s +WithdrawalsLines=Lignes de commande de débit direct +RequestStandingOrderToTreat=Demande d'ordonnance de paiement de débit direct à traiter +RequestStandingOrderTreated=Demande d'ordonnance de paiement par prélèvement automatique traitée +NotPossibleForThisStatusOfWithdrawReceiptORLine=Pas encore possible. L'état de retrait doit être défini sur 'crédité' avant de déclarer le rejet sur des lignes spécifiques. +NbOfInvoiceToWithdraw=Nb. De la facture avec l'ordre de débit direct +NbOfInvoiceToWithdrawWithInfo=Nb. De la facture du client avec des ordres de paiement de débit direct ayant des informations définies sur le compte bancaire +InvoiceWaitingWithdraw=Facture en attente de débit direct +AmountToWithdraw=Montant à retirer +WithdrawsRefused=Débit direct refusé +NoInvoiceToWithdraw=Aucune facture de client avec Open 'Demandes de débit direct' est en attente. Allez sur l'onglet '%s' sur la carte de facture pour faire une demande. +ResponsibleUser=Utilisateur responsable +WithdrawStatistics=Statistiques de paiement par débit direct +WithdrawRejectStatistics=Statistiques de rejet de paiement par débit direct +LastWithdrawalReceipt=Derniers %s reçus de débit direct +MakeWithdrawRequest=Faire une demande de paiement par prélèvement automatique +WithdrawRequestsDone=%s demandes de paiement par prélèvement automatique enregistrées +ThirdPartyBankCode=Code bancaire tiers +NoInvoiceCouldBeWithdrawed=Aucune facture retirée avec succès. Vérifiez que la facture se trouve sur des sociétés avec un BAN valide. +ClassCreditedConfirm=Êtes-vous sûr de vouloir classer ce reçu de retrait comme crédité sur votre compte bancaire? +WithdrawalRefused=Retrait refusée +WithdrawalRefusedConfirm=Êtes-vous sûr de vouloir introduire un rejet de retrait pour la société? +RefusedData=Date de rejet +RefusedReason=Raison du rejet +NoInvoiceRefused=Ne chargez pas le rejet +InvoiceRefused=Facture refusée (Charge le rejet au client) +StatusWaiting=Attendre +StatusTrans=Envoyé +StatusCredited=Crédit StatusRefused=Refusé +StatusMotif0=Non spécifié +StatusMotif1=Fonds insuffisants +StatusMotif2=Demande contestée +StatusMotif3=Aucune ordonnance de paiement par prélèvement automatique +StatusMotif4=Commande du client +StatusMotif5=RIB inutilisable +StatusMotif6=Compte sans solde +StatusMotif8=Autre raison +CreateAll=Retirer tout +CreateGuichet=Seul bureau +CreateBanque=Seulement la banque +NotifyTransmision=Transmission de retrait +NotifyCredit=Crédit de retrait +NumeroNationalEmetter=Numéro national de l'émetteur +WithBankUsingRIB=Pour les comptes bancaires utilisant RIB +WithBankUsingBANBIC=Pour les comptes bancaires utilisant IBAN / BIC / SWIFT +BankToReceiveWithdraw=Compte bancaire pour recevoir des débits directs +CreditDate=Crédit sur +WithdrawalFileNotCapable=Impossible de générer un fichier de retrait de retrait pour votre pays %s (Votre pays n'est pas pris en charge) +ShowWithdraw=Afficher le retrait +IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Toutefois, si la facture a au moins un paiement de retrait non encore traité, elle ne sera pas définie comme payée pour permettre la gestion préalable du retrait. +DoStandingOrdersBeforePayments=Cet onglet vous permet de demander une commande de paiement par prélèvement automatique. Une fois terminé, accédez au menu Banque-> Ordres de débit direct pour gérer l'ordre de paiement de débit direct. Lorsque la commande de paiement est fermée, le paiement sur facture sera automatiquement enregistré et la facture sera fermée si le solde à payer est nul. +WithdrawalFile=Fichier de retrait +SetToStatusSent=Définir le statut "Fichier envoyé" +ThisWillAlsoAddPaymentOnInvoice=Cela s'appliquera également aux paiements aux factures et les classera comme "Payé" +StatisticsByLineStatus=Statistiques par état des lignes +RUMLong=Référence de mandat unique +RUMWillBeGenerated=Le numéro UMR sera généré une fois les informations du compte bancaire enregistrées +WithdrawMode=Mode de débit direct (FRST ou RECUR) +WithdrawRequestAmount=Montant de la demande de débit direct: +WithdrawRequestErrorNilAmount=Impossible de créer une demande de débit direct pour un montant vide. +SepaMandate=Mandat de débit direct SEPA +PleaseReturnMandate=Veuillez renvoyer ce formulaire de mandat par courrier électronique à %s ou par courrier à +SEPALegalText=En signant ce formulaire de mandat, vous autorisez (A) %s à envoyer des instructions à votre banque pour débiter votre compte et (B) votre banque pour débiter votre compte conformément aux instructions de %s. Dans le cadre de vos droits, vous avez droit à un remboursement de votre banque selon les termes et conditions de votre contrat avec votre banque. Un remboursement doit être demandé dans les 8 semaines à partir de la date à laquelle votre compte a été débité. Vos droits concernant le mandat ci-dessus sont expliqués dans un état que vous pouvez obtenir auprès de votre banque. +CreditorIdentifier=Identificateur du créancier +CreditorName=Nom du créancier +SEPAFillForm=(B) Veuillez compléter tous les champs marqués * +SEPAFormYourBAN=Votre nom de compte bancaire (IBAN) +SEPAFormYourBIC=Votre code d'identification de banque (BIC) +ModeRECUR=Paiement récurrent +ModeFRST=Paiement unique +PleaseCheckOne=Veuillez cocher un seul +InfoCreditSubject=Paiement de l'ordre de paiement de débit direct %s par la banque +InfoCreditMessage=La ligne de paiement de débit direct %s a été payée par la banque
Données de paiement: %s +InfoTransSubject=Transmission de l'ordre de paiement de débit direct %s à la banque +InfoTransMessage=L'ordre de paiement de débit direct %s a été envoyé à la banque par %s %s.

+InfoTransData=Montant: %s
Méthode: %s
Date: %s +InfoRejectSubject=Ordonnance de paiement par prélèvement automatique refusée +InfoRejectMessage=Bonjour,

l'ordre de paiement de débit direct de la facture %s relatif à la société %s, avec un montant de %s a été refusé par la banque.

-
%s +ModeWarning=L'option pour le mode réel n'a pas été définie, nous nous arrêtons après cette simulation diff --git a/htdocs/langs/fr_CA/workflow.lang b/htdocs/langs/fr_CA/workflow.lang index 785a361bd24..e0f853db9e4 100644 --- a/htdocs/langs/fr_CA/workflow.lang +++ b/htdocs/langs/fr_CA/workflow.lang @@ -5,6 +5,9 @@ ThereIsNoWorkflowToModify=Il n'y a pas de modification de flux de travail dispon descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Créer automatiquement une commande client après une proposition commerciale est signée descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Créer automatiquement une facture client après une proposition commerciale est signée descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Créer automatiquement une facture client après un contrat est validé +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crée automatiquement une facture client après la fermeture d'une commande client descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classez proposition source liée à bec lors de la commande du client est réglé sur payé descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classez commande client source liée(s) à bec lorsque la facture client est réglé sur payé descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classez ordre lié source de client(s) à bec lorsque la facture client est validée +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classer la proposition de source liée à facturer lorsque la facture du client est validée +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classer l'ordre source lié à l'expédition lorsqu'un envoi est validé et la quantité expédiée est identique à celle de l'ordre diff --git a/htdocs/langs/fr_CH/accountancy.lang b/htdocs/langs/fr_CH/accountancy.lang deleted file mode 100644 index 527f1fd139d..00000000000 --- a/htdocs/langs/fr_CH/accountancy.lang +++ /dev/null @@ -1,4 +0,0 @@ -# Dolibarr language file - Source file is en_US - accountancy -AccountingCategory=Accounting category -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. diff --git a/htdocs/langs/fr_CH/admin.lang b/htdocs/langs/fr_CH/admin.lang index 9602601e241..1c53b65c99c 100644 --- a/htdocs/langs/fr_CH/admin.lang +++ b/htdocs/langs/fr_CH/admin.lang @@ -1,1665 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Foundation -Version=Version -VersionProgram=Version program -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimental -VersionDevelopment=Development -VersionUnknown=Unknown -VersionRecommanded=Recommended -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Missing Files -FilesUpdated=Updated Files -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Session ID -SessionSaveHandler=Handler to save sessions -SessionSavePath=Storage session localization -PurgeSessions=Purge of sessions -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=Save session handler configured in your PHP does not allow to list all running sessions. -LockNewSessions=Lock new connections -ConfirmLockNewSessions=Are you sure you want to restrict any new Dolibarr connection to yourself. Only user %s will be able to connect after that. -UnlockNewSessions=Remove connection lock -YourSession=Your session -Sessions=Users session -WebUserGroup=Web server user/group -NoSessionFound=Your PHP seems to not allow to list active sessions. Directory used to save sessions (%s) might be protected (For example, by OS permissions or by PHP directive open_basedir). -DBStoringCharset=Database charset to store data -DBSortingCharset=Database charset to sort data -WarningModuleNotActive=Module %s must be enabled -WarningOnlyPermissionOfActivatedModules=Only permissions related to activated modules are shown here. You can activate other modules in the Home->Setup->Modules page. -DolibarrSetup=Dolibarr install or upgrade -InternalUser=Internal user -ExternalUser=External user -InternalUsers=Internal users -ExternalUsers=External users -GUISetup=Display -SetupArea=Setup area -FormToTestFileUploadForm=Form to test file upload (according to setup) -IfModuleEnabled=Note: yes is effective only if module %s is enabled -RemoveLock=Remove file %s if it exists to allow usage of the update tool. -RestoreLock=Restore file %s, with read permission only, to disable any usage of update tool. -SecuritySetup=Security setup -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Error, this module requires PHP version %s or higher -ErrorModuleRequireDolibarrVersion=Error, this module requires Dolibarr version %s or higher -ErrorDecimalLargerThanAreForbidden=Error, a precision higher than %s is not supported. -DictionarySetup=Dictionary setup -Dictionary=Dictionaries -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record -ErrorCodeCantContainZero=Code can't contain value 0 -DisableJavascript=Disable JavaScript and Ajax functions (Recommended for blind person or text browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nbr of characters to trigger search: %s -NotAvailableWhenAjaxDisabled=Not available when Ajax disabled -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript disabled -UsePreviewTabs=Use preview tabs -ShowPreview=Show preview -PreviewNotAvailable=Preview not available -ThemeCurrentlyActive=Theme currently active -CurrentTimeZone=TimeZone PHP (server) -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Space -Table=Table -Fields=Fields -Index=Index -Mask=Mask -NextValue=Next value -NextValueForInvoices=Next value (invoices) -NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) -NextValueForReplacements=Next value (replacements) -MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is -NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration -MaxSizeForUploadedFiles=Maximum size for uploaded files (0 to disallow any upload) -UseCaptchaCode=Use graphical code (CAPTCHA) on login page -AntiVirusCommand= Full path to antivirus command -AntiVirusCommandExample= Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan -AntiVirusParam= More parameters on command line -AntiVirusParamExample= Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Accounting module setup -UserSetup=User management setup -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limits and accuracy -MenuIdParent=Parent menu ID -DetailMenuIdParent=ID of parent menu (empty for a top menu) -DetailPosition=Sort number to define menu position -AllMenus=All -NotConfigured=Module not configured -Active=Active -SetupShort=Setup -OtherOptions=Other options -OtherSetup=Other setup -CurrentValueSeparatorDecimal=Decimal separator -CurrentValueSeparatorThousand=Thousand separator -Destination=Destination -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Parameter %s -LocalisationDolibarrParameters=Localisation parameters -ClientTZ=Client Time Zone (user) -ClientHour=Client time (user) -OSTZ=Server OS Time Zone -PHPTZ=PHP server Time Zone -DaylingSavingTime=Daylight saving time -CurrentHour=PHP Time (server) -CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Default order -Position=Position -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu for users -LangFile=.lang file -System=System -SystemInfo=System information -SystemToolsArea=System tools area -SystemToolsAreaDesc=This area provides administration features. Use the menu to choose the feature you're looking for. -Purge=Purge -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Delete all files in directory %s. Temporary files but also database backup dumps, files attached to elements (third parties, invoices, ...) and uploaded into the ECM module will be deleted. -PurgeRunNow=Purge now -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s files or directories deleted. -PurgeAuditEvents=Purge all security events -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Generate backup -Backup=Backup -Restore=Restore -RunCommandSummary=Backup has been launched with the following command -BackupResult=Backup result -BackupFileSuccessfullyCreated=Backup file successfully generated -YouCanDownloadBackupFile=Generated files can now be downloaded -NoBackupFileAvailable=No backup files available. -ExportMethod=Export method -ImportMethod=Import method -ToBuildBackupFileClickHere=To build a backup file, click here. -ImportMySqlDesc=To import a backup file, you must use mysql command from command line: -ImportPostgreSqlDesc=To import a backup file, you must use pg_restore command from command line: -ImportMySqlCommand=%s %s < mybackupfile.sql -ImportPostgreSqlCommand=%s %s mybackupfile.sql -FileNameToGenerate=File name to generate -Compression=Compression -CommandsToDisableForeignKeysForImport=Command to disable foreign keys on import -CommandsToDisableForeignKeysForImportWarning=Mandatory if you want to be able to restore your sql dump later -ExportCompatibility=Compatibility of generated export file -MySqlExportParameters=MySQL export parameters -PostgreSqlExportParameters= PostgreSQL export parameters -UseTransactionnalMode=Use transactional mode -FullPathToMysqldumpCommand=Full path to mysqldump command -FullPathToPostgreSQLdumpCommand=Full path to pg_dump command -ExportOptions=Export Options -AddDropDatabase=Add DROP DATABASE command -AddDropTable=Add DROP TABLE command -ExportStructure=Structure -NameColumn=Name columns -ExtendedInsert=Extended INSERT -NoLockBeforeInsert=No lock commands around INSERT -DelayedInsert=Delayed insert -EncodeBinariesInHexa=Encode binary data in hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetect (browser language) -FeatureDisabledInDemo=Feature disabled in demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Permissions -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, the official market place for Dolibarr ERP/CRM external modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activate on -ActiveOn=Activated on -SourceFile=Source file -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Available only if JavaScript is not disabled -Required=Required -UsedOnlyWithTypeOption=Used by some agenda option only -Security=Security -Passwords=Passwords -DoNotStoreClearPassword=Do no store clear passwords in database but store only encrypted value (Activated recommended) -MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activated recommended) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). -Feature=Feature -DolibarrLicense=License -Developpers=Developers/contributors -OfficialWebSite=Dolibarr international official web site -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Dolibarr documentation on Wiki -OfficialDemo=Dolibarr online demo -OfficialMarketPlace=Official market place for external modules/addons -OfficialWebHostingService=Referenced web hosting services (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources -ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s -ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s -HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. -HelpCenterDesc2=Some part of this service are available in english only. -CurrentMenuHandler=Current menu handler -MeasuringUnit=Measuring unit -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mails setup -EMailsDesc=This page allows you to overwrite your PHP parameters for e-mails sending. In most cases on Unix/Linux OS, your PHP setup is correct and these parameters are useless. -MAIN_MAIL_SMTP_PORT=SMTP/SMTPS Port (By default in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP/SMTPS Host (By default in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP/SMTPS Port (Not defined into PHP on Unix like systems) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP/SMTPS Host (Not defined into PHP on Unix like systems) -MAIN_MAIL_EMAIL_FROM=Sender e-mail for automatic emails (By default in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Sender e-mail used for error returns emails sent -MAIN_MAIL_AUTOCOPY_TO= Send systematically a hidden carbon-copy of all sent emails to -MAIN_DISABLE_ALL_MAILS=Disable all e-mails sendings (for test purposes or demos) -MAIN_MAIL_SENDMODE=Method to use to send EMails -MAIN_MAIL_SMTPS_ID=SMTP ID if authentication required -MAIN_MAIL_SMTPS_PW=SMTP Password if authentication required -MAIN_MAIL_EMAIL_TLS= Use TLS (SSL) encrypt -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Disable all SMS sendings (for test purposes or demos) -MAIN_SMS_SENDMODE=Method to use to send SMS -MAIN_MAIL_SMS_FROM=Default sender phone number for Sms sending -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your sendmail program locally. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. -ModuleSetup=Module setup -ModulesSetup=Modules setup -ModuleFamilyBase=System -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) -ModuleFamilyHr=Human Resource Management (HR) -ModuleFamilyProjects=Projects/Collaborative work -ModuleFamilyOther=Other -ModuleFamilyTechnic=Multi-modules tools -ModuleFamilyExperimental=Experimental modules -ModuleFamilyFinancial=Financial Modules (Accounting/Treasury) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menu handlers -MenuAdmin=Menu editor -DoNotUseInProduction=Do not use in production -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Step %s -FindPackageFromWebSite=Find a package that provides feature you want (for example on official web site %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Dolibarr current version -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
-GenericMaskCodes4b=Example on third party created on 2007-03-01:
-GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Returns a customizable number according to a defined mask. -ServerAvailableOnIPOrPort=Server is available at address %s on port %s -ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s -DoTestServerAvailability=Test server connectivity -DoTestSend=Test sending -DoTestSendHTML=Test sending HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Error, can't use option @ if sequence {yy}{mm} or {yyyy}{mm} is not in mask. -UMask=UMask parameter for new files on Unix/Linux/BSD/Mac file system. -UMaskExplanation=This parameter allow you to define permissions set by default on files created by Dolibarr on server (during upload for example).
It must be the octal value (for example, 0666 means read and write for everyone).
This parameter is useless on a Windows server. -SeeWikiForAllTeam=Take a look at the wiki page for full list of all actors and their organisation -UseACacheDelay= Delay for caching export response in seconds (0 or empty for no cache) -DisableLinkToHelpCenter=Hide link "Need help or support" on login page -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=There is no automatic wrapping, so if line is out of page on documents because too long, you must add yourself carriage returns in the textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimum length -LanguageFilesCachedIntoShmopSharedMemory=Files .lang loaded in shared memory -ExamplesWithCurrentSetup=Examples with current running setup -ListOfDirectories=List of OpenDocument templates directories -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Number of ODT/ODS templates files found in those directories +AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan +AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir -FollowingSubstitutionKeysCanBeUsed=
To know how to create your odt document templates, before storing them in those directories, read wiki documentation: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Position of Name/Lastname -DescWeather=The following pictures will be shown on dashboard when number of late actions reach the following values: -KeyForWebServicesAccess=Key to use Web Services (parameter "dolibarrkey" in webservices) -TestSubmitForm=Input test form -ThisForceAlsoTheme=Using this menu manager will also use its own theme whatever is user choice. Also this menu manager specialized for smartphones does not works on all smartphone. Use another menu manager if you experience problems on yours. -ThemeDir=Skins directory -ConnectionTimeout=Connexion timeout -ResponseTimeout=Response timeout -SmsTestMessage=Test message from __PHONEFROM__ to __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Key to secure URLs -NoSmsEngine=No SMS sender manager available. SMS sender manager are not installed with default distribution (because they depends on an external supplier) but you can find some on %s -PDF=PDF -PDFDesc=You can set each global options related to the PDF generation -PDFAddressForging=Rules to forge address boxes -HideAnyVATInformationOnPDF=Hide all information related to VAT on generated PDF -HideDescOnPDF=Hide products description on generated PDF -HideRefOnPDF=Hide products ref. on generated PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Library -UrlGenerationParameters=Parameters to secure URLs -SecurityTokenIsUnique=Use a unique securekey parameter for each URL -EnterRefToBuildUrl=Enter reference for object %s -GetSecuredUrl=Get calculated URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Old VAT rate -NewVATRates=New VAT rate -PriceBaseTypeToChange=Modify on prices with base reference value defined on -MassConvert=Launch mass convert -String=String -TextLong=Long text -Int=Integer -Float=Float -DateAndTime=Date and hour -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Phone -ExtrafieldPrice = Price -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Select list -ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator -ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Refresh link -LinkToTest=Clickable link generated for user %s (click phone number to test) -KeepEmptyToUseDefault=Keep empty to use default value -DefaultLink=Default link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=External module - Installed into directory %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Return an accountancy code built by:
%s followed by third party supplier code for a supplier accountancy code,
%s followed by third party customer code for a customer accountancy code. -ModuleCompanyCodePanicum=Return an empty accountancy code. -ModuleCompanyCodeDigitaria=Accountancy code depends on third party code. The code is composed of the character "C" in the first position followed by the first 5 characters of the third party code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Users & groups -Module0Desc=Users / Employees and Groups management -Module1Name=Third parties -Module1Desc=Companies and contact management (customers, prospects...) -Module2Name=Commercial -Module2Desc=Commercial management -Module10Name=Accounting -Module10Desc=Simple accounting reports (journals, turnover) based onto database content. No dispatching. -Module20Name=Proposals -Module20Desc=Commercial proposal management -Module22Name=Mass E-mailings -Module22Desc=Mass E-mailing management -Module23Name=Energy -Module23Desc=Monitoring the consumption of energies -Module25Name=Customer Orders -Module25Desc=Customer order management -Module30Name=Invoices -Module30Desc=Invoice and credit note management for customers. Invoice management for suppliers -Module40Name=Suppliers -Module40Desc=Supplier management and buying (orders and invoices) -Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) -Module49Name=Editors -Module49Desc=Editor management -Module50Name=Products -Module50Desc=Product management -Module51Name=Mass mailings -Module51Desc=Mass paper mailing management -Module52Name=Stocks -Module52Desc=Stock management (products) -Module53Name=Services -Module53Desc=Service management -Module54Name=Contracts/Subscriptions -Module54Desc=Management of contracts (services or reccuring subscriptions) -Module55Name=Barcodes -Module55Desc=Barcode management -Module56Name=Telephony -Module56Desc=Telephony integration -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integration of a ClickToDial system (Asterisk, ...) -Module59Name=Bookmark4u -Module59Desc=Add function to generate Bookmark4u account from a Dolibarr account -Module70Name=Interventions -Module70Desc=Intervention management -Module75Name=Expense and trip notes -Module75Desc=Expense and trip notes management -Module80Name=Shipments -Module80Desc=Shipments and delivery order management -Module85Name=Banks and cash -Module85Desc=Management of bank or cash accounts -Module100Name=External site -Module100Desc=This module include an external web site or page into Dolibarr menus and view it into a Dolibarr frame -Module105Name=Mailman and SPIP -Module105Desc=Mailman or SPIP interface for member module -Module200Name=LDAP -Module200Desc=LDAP directory synchronisation -Module210Name=PostNuke -Module210Desc=PostNuke integration -Module240Name=Data exports -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Data imports -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Members -Module310Desc=Foundation members management -Module320Name=RSS Feed -Module320Desc=Add RSS feed inside Dolibarr screen pages -Module330Name=Bookmarks -Module330Desc=Bookmarks management -Module400Name=Projects/Opportunities/Leads -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. -Module410Name=Webcalendar -Module410Desc=Webcalendar integration -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Loan -Module520Desc=Management of loans -Module600Name=Notifications -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Donations -Module700Desc=Donation management -Module770Name=Expense reports -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices -Module1200Name=Mantis -Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) -Module1520Name=Document Generation -Module1520Desc=Mass mail document generation -Module1780Name=Tags/Categories -Module1780Desc=Create tags/category (products, customers, suppliers, contacts or members) -Module2000Name=WYSIWYG editor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamic Prices -Module2200Desc=Enable the usage of math expressions for prices -Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Save and share documents -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) -Module2700Name=Gravatar -Module2700Desc=Use online Gravatar service (www.gravatar.com) to show photo of users/members (found with their emails). Need an internet access -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=GeoIP Maxmind conversions capabilities -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-company -Module5000Desc=Allows you to manage multiple companies -Module6000Name=Workflow -Module6000Desc=Workflow management -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Leave Requests management -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=PayBox -Module50000Desc=Module to offer an online payment page by credit card with PayBox -Module50100Name=Point of sales -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module to offer an online payment page by credit card with Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) -Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Margins -Module59000Desc=Module to manage margins -Module60000Name=Commissions -Module60000Desc=Module to manage commissions -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Read customer invoices -Permission12=Create/modify customer invoices -Permission13=Unvalidate customer invoices -Permission14=Validate customer invoices -Permission15=Send customer invoices by email -Permission16=Create payments for customer invoices -Permission19=Delete customer invoices -Permission21=Read commercial proposals -Permission22=Create/modify commercial proposals -Permission24=Validate commercial proposals -Permission25=Send commercial proposals -Permission26=Close commercial proposals -Permission27=Delete commercial proposals -Permission28=Export commercial proposals -Permission31=Read products -Permission32=Create/modify products -Permission34=Delete products -Permission36=See/manage hidden products -Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Delete projects (shared project and projects i'm contact for) -Permission45=Export projects -Permission61=Read interventions -Permission62=Create/modify interventions -Permission64=Delete interventions -Permission67=Export interventions -Permission71=Read members -Permission72=Create/modify members -Permission74=Delete members -Permission75=Setup types of membership -Permission76=Export data -Permission78=Read subscriptions -Permission79=Create/modify subscriptions -Permission81=Read customers orders -Permission82=Create/modify customers orders -Permission84=Validate customers orders -Permission86=Send customers orders -Permission87=Close customers orders -Permission88=Cancel customers orders -Permission89=Delete customers orders -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Read reports -Permission101=Read sendings -Permission102=Create/modify sendings -Permission104=Validate sendings -Permission106=Export sendings -Permission109=Delete sendings -Permission111=Read financial accounts -Permission112=Create/modify/delete and compare transactions -Permission113=Setup financial accounts (create, manage categories) -Permission114=Reconciliate transactions -Permission115=Export transactions and account statements -Permission116=Transfers between accounts -Permission117=Manage cheques dispatching -Permission121=Read third parties linked to user -Permission122=Create/modify third parties linked to user -Permission125=Delete third parties linked to user -Permission126=Export third parties -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Read providers -Permission147=Read stats -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Read contracts/subscriptions -Permission162=Create/modify contracts/subscriptions -Permission163=Activate a service/subscription of a contract -Permission164=Disable a service/subscription of a contract -Permission165=Delete contracts/subscriptions -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Create/modify trips and expenses -Permission173=Delete trips and expenses -Permission174=Read all trips and expenses -Permission178=Export trips and expenses -Permission180=Read suppliers -Permission181=Read supplier orders -Permission182=Create/modify supplier orders -Permission183=Validate supplier orders -Permission184=Approve supplier orders -Permission185=Order or cancel supplier orders -Permission186=Receive supplier orders -Permission187=Close supplier orders -Permission188=Cancel supplier orders -Permission192=Create lines -Permission193=Cancel lines -Permission194=Read the bandwith lines -Permission202=Create ADSL connections -Permission203=Order connections orders -Permission204=Order connections -Permission205=Manage connections -Permission206=Read connections -Permission211=Read Telephony -Permission212=Order lines -Permission213=Activate line -Permission214=Setup Telephony -Permission215=Setup providers -Permission221=Read emailings -Permission222=Create/modify emailings (topic, recipients...) -Permission223=Validate emailings (allows sending) -Permission229=Delete emailings -Permission237=View recipients and info -Permission238=Manually send mailings -Permission239=Delete mailings after validation or sent -Permission241=Read categories -Permission242=Create/modify categories -Permission243=Delete categories -Permission244=See the contents of the hidden categories -Permission251=Read other users and groups -PermissionAdvanced251=Read other users -Permission252=Read permissions of other users -Permission253=Create/modify other users, groups and permisssions -PermissionAdvanced253=Create/modify internal/external users and permissions -Permission254=Create/modify external users only -Permission255=Modify other users password -Permission256=Delete or disable other users -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Read CA -Permission272=Read invoices -Permission273=Issue invoices -Permission281=Read contacts -Permission282=Create/modify contacts -Permission283=Delete contacts -Permission286=Export contacts -Permission291=Read tariffs -Permission292=Set permissions on the tariffs -Permission293=Modify costumers tariffs -Permission300=Read bar codes -Permission301=Create/modify bar codes -Permission302=Delete bar codes -Permission311=Read services -Permission312=Assign service/subscription to contract -Permission331=Read bookmarks -Permission332=Create/modify bookmarks -Permission333=Delete bookmarks -Permission341=Read its own permissions -Permission342=Create/modify his own user information -Permission343=Modify his own password -Permission344=Modify its own permissions -Permission351=Read groups -Permission352=Read groups permissions -Permission353=Create/modify groups -Permission354=Delete or disable groups -Permission358=Export users -Permission401=Read discounts -Permission402=Create/modify discounts -Permission403=Validate discounts -Permission404=Delete discounts -Permission510=Read Salaries -Permission512=Create/modify salaries -Permission514=Delete salaries -Permission517=Export salaries -Permission520=Read Loans -Permission522=Create/modify loans -Permission524=Delete loans -Permission525=Access loan calculator -Permission527=Export loans -Permission531=Read services -Permission532=Create/modify services -Permission534=Delete services -Permission536=See/manage hidden services -Permission538=Export services -Permission701=Read donations -Permission702=Create/modify donations -Permission703=Delete donations -Permission771=Read expense reports (yours and your subordinates) -Permission772=Create/modify expense reports -Permission773=Delete expense reports -Permission774=Read all expense reports (even for user not subordinates) -Permission775=Approve expense reports -Permission776=Pay expense reports -Permission779=Export expense reports -Permission1001=Read stocks -Permission1002=Create/modify warehouses -Permission1003=Delete warehouses -Permission1004=Read stock movements -Permission1005=Create/modify stock movements -Permission1101=Read delivery orders -Permission1102=Create/modify delivery orders -Permission1104=Validate delivery orders -Permission1109=Delete delivery orders -Permission1181=Read suppliers -Permission1182=Read supplier orders -Permission1183=Create/modify supplier orders -Permission1184=Validate supplier orders -Permission1185=Approve supplier orders -Permission1186=Order supplier orders -Permission1187=Acknowledge receipt of supplier orders -Permission1188=Delete supplier orders -Permission1190=Approve (second approval) supplier orders -Permission1201=Get result of an export -Permission1202=Create/Modify an export -Permission1231=Read supplier invoices -Permission1232=Create/modify supplier invoices -Permission1233=Validate supplier invoices -Permission1234=Delete supplier invoices -Permission1235=Send supplier invoices by email -Permission1236=Export supplier invoices, attributes and payments -Permission1237=Export supplier orders and their details -Permission1251=Run mass imports of external data into database (data load) -Permission1321=Export customer invoices, attributes and payments -Permission1322=Reopen a paid bill -Permission1421=Export customer orders and attributes -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Read Scheduled job -Permission23002=Create/update Scheduled job -Permission23003=Delete Scheduled job -Permission23004=Execute Scheduled job -Permission2401=Read actions (events or tasks) linked to his account -Permission2402=Create/modify actions (events or tasks) linked to his account -Permission2403=Delete actions (events or tasks) linked to his account -Permission2411=Read actions (events or tasks) of others -Permission2412=Create/modify actions (events or tasks) of others -Permission2413=Delete actions (events or tasks) of others -Permission2414=Export actions/tasks of others -Permission2501=Read/Download documents -Permission2502=Download documents -Permission2503=Submit or delete documents -Permission2515=Setup documents directories -Permission2801=Use FTP client in read mode (browse and download only) -Permission2802=Use FTP client in write mode (delete or upload files) -Permission50101=Use Point of sales -Permission50201=Read transactions -Permission50202=Import transactions -Permission54001=Print -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potential level -DictionaryCanton=State/Province -DictionaryRegion=Regions -DictionaryCountry=Countries -DictionaryCurrency=Currencies -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=VAT Rates or Sales Tax Rates -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Payment terms -DictionaryPaymentModes=Payment modes -DictionaryTypeContact=Contact/Address types -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Paper formats -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Shipping methods -DictionaryStaff=Staff -DictionaryAvailability=Delivery delay -DictionaryOrderMethods=Ordering methods -DictionarySource=Origin of proposals/orders -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Models for chart of accounts -DictionaryEMailTemplates=Emails templates -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Setup saved -BackToModuleList=Back to modules list -BackToDictionaryList=Back to dictionaries list -VATManagement=VAT Management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=By default the proposed VAT is 0 which can be used for cases like associations, individuals ou small companies. -VATIsUsedExampleFR=In France, it means companies or organisations having a real fiscal system (Simplified real or normal real). A system in which VAT is declared. -VATIsNotUsedExampleFR=In France, it means associations that are non VAT declared or companies, organisations or liberal professions that have chosen the micro enterprise fiscal system (VAT in franchise) and paid a franchise VAT without any VAT declaration. This choice will display the reference "Non applicable VAT - art-293B of CGI" on invoices. -##### Local Taxes ##### -LTRate=Rate -LocalTax1IsNotUsed=Do not use second tax -LocalTax1IsUsedDesc=Use a second type of tax (other than VAT) -LocalTax1IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax1Management=Second type of tax -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Do not use third tax -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Do not use other type of tax (other than VAT) -LocalTax2Management=Third type of tax -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= RE Management -LocalTax1IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If te buyer is not subjected to RE, RE by default=0. End of rule.
If the buyer is subjected to RE then the RE by default. End of rule.
-LocalTax1IsNotUsedDescES= By default the proposed RE is 0. End of rule. -LocalTax1IsUsedExampleES= In Spain they are professionals subject to some specific sections of the Spanish IAE. -LocalTax1IsNotUsedExampleES= In Spain they are professional and societies and subject to certain sections of the Spanish IAE. -LocalTax2ManagementES= IRPF Management -LocalTax2IsUsedDescES= The RE rate by default when creating prospects, invoices, orders etc follow the active standard rule:
If the seller is not subjected to IRPF, then IRPF by default=0. End of rule.
If the seller is subjected to IRPF then the IRPF by default. End of rule.
-LocalTax2IsNotUsedDescES= By default the proposed IRPF is 0. End of rule. -LocalTax2IsUsedExampleES= In Spain, freelancers and independent professionals who provide services and companies who have chosen the tax system of modules. -LocalTax2IsNotUsedExampleES= In Spain they are bussines not subject to tax system of modules. -CalcLocaltax=Reports on local taxes -CalcLocaltax1=Sales - Purchases -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases -CalcLocaltax2=Purchases -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases -CalcLocaltax3=Sales -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Label used by default if no translation can be found for code -LabelOnDocuments=Label on documents -NbOfDays=Nb of days -AtEndOfMonth=At end of month -CurrentNext=Current/Next -Offset=Offset -AlwaysActive=Always active -Upgrade=Upgrade -MenuUpgrade=Upgrade / Extend -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Web server -DocumentRootServer=Web server's root directory -DataRootServer=Data files directory -IP=IP -Port=Port -VirtualServerName=Virtual server name -OS=OS -PhpWebLink=Web-Php link -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Database host -DatabaseName=Database name -DatabasePort=Database port -DatabaseUser=Database user -DatabasePassword=Database password -Tables=Tables -TableName=Table name -NbOfRecord=Nb of records -Host=Server -DriverType=Driver type -SummarySystem=System information summary -SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation -DefaultMenuManager= Standard menu manager -DefaultMenuSmartphoneManager=Smartphone menu manager -Skin=Skin theme -DefaultSkin=Default skin theme -MaxSizeList=Max length for list -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Message of the day -MessageLogin=Login page message -PermanentLeftSearchForm=Permanent search form on left menu -DefaultLanguage=Default language to use (language code) -EnableMultilangInterface=Enable multilingual interface -EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities -CompanyName=Name -CompanyAddress=Address -CompanyZip=Zip -CompanyTown=Town -CompanyCountry=Country -CompanyCurrency=Main currency -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Do not suggest -NoActiveBankAccountDefined=No active bank account defined -OwnerOfBankAccount=Owner of bank account %s -BankModuleNotActive=Bank accounts module not enabled -ShowBugTrackLink=Show link "%s" -Alerts=Alerts -DelaysOfToleranceBeforeWarning=Tolerance delays before warning -DelaysOfToleranceDesc=This screen allows you to define the tolerated delays before an alert is reported on screen with picto %s for each late element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Other menu entries manage optional parameters. -LogEvents=Security audit events -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser name -BrowserOS=Browser OS -ListOfSecurityEvents=List of Dolibarr security events -SecurityEventsPurged=Security events purged -LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. -SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. -SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=You can choose each parameter related to the Dolibarr look and feel here -AvailableModules=Available modules -ToActivateModule=To activate modules, go on setup Area (Home->Setup->Modules). -SessionTimeOut=Time out for session -SessionExplanation=This number guarantee that session will never expire before this delay, if the session cleaner is done by Internal PHP session cleaner (and nothing else). Internal PHP session cleaner does not guaranty that session will expire just after this delay. It will expire, after this delay, and when the session cleaner is ran, so every %s/%s access, but only during access made by other sessions.
Note: on some servers with an external session cleaning mechanism (cron under debian, ubuntu ...), the sessions can be destroyed after a period defined by the default session.gc_maxlifetime, no matter what the value entered here. -TriggersAvailable=Available triggers -TriggersDesc=Triggers are files that will modify the behaviour of Dolibarr workflow once copied into the directory htdocs/core/triggers. They realised new actions, activated on Dolibarr events (new company creation, invoice validation, ...). -TriggerDisabledByName=Triggers in this file are disabled by the -NORUN suffix in their name. -TriggerDisabledAsModuleDisabled=Triggers in this file are disabled as module %s is disabled. -TriggerAlwaysActive=Triggers in this file are always active, whatever are the activated Dolibarr modules. -TriggerActiveAsModuleActive=Triggers in this file are active as module %s is enabled. -GeneratedPasswordDesc=Define here which rule you want to use to generate new password if you ask to have auto generated password -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limits/Precision setup -LimitsDesc=You can define limits, precisions and optimisations used by Dolibarr here -MAIN_MAX_DECIMALS_UNIT=Max decimals for unit prices -MAIN_MAX_DECIMALS_TOT=Max decimals for total prices -MAIN_MAX_DECIMALS_SHOWN=Max decimals for prices shown on screen (Add ... after this number if you want to see ... when number is truncated when shown on screen) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Net unit price of a product -TotalPriceAfterRounding=Total price (net/vat/incl tax) after rounding -ParameterActiveForNextInputOnly=Parameter effective for next input only -NoEventOrNoAuditSetup=No security event has been recorded yet. This can be normal if audit has not been enabled on "setup - security - audit" page. -NoEventFoundWithCriteria=No security event has been found for such search criterias. -SeeLocalSendMailSetup=See your local sendmail setup -BackupDesc=To make a complete backup of Dolibarr, you must: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=Archived directory should be stored in a secure place. -BackupDescY=The generated dump file should be stored in a secure place. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=To restore a Dolibarr backup, you must: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. -RestoreMySQL=MySQL import -ForcedToByAModule= This rule is forced to %s by an activated module -PreviousDumpFiles=Available database backup dump files -WeekStartOnDay=First day of week -RunningUpdateProcessMayBeRequired=Running the upgrade process seems to be required (Programs version %s differs from database version %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=You must run this command from command line after login to a shell with user %s or you must add -W option at end of command line to provide %s password. -YourPHPDoesNotHaveSSLSupport=SSL functions not available in your PHP -DownloadMoreSkins=More skins to download -SimpleNumRefModelDesc=Returns the reference number with format %syymm-nnnn where yy is year, mm is month and nnnn is a sequence without hole and with no reset -ShowProfIdInAddress=Show professionnal id with addresses on documents -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Partial translation -MAIN_DISABLE_METEO=Disable meteo view -TestLoginToAPI=Test login to API -ProxyDesc=Some features of Dolibarr need to have an Internet access to work. Define here parameters for this. If the Dolibarr server is behind a Proxy server, those parameters tells Dolibarr how to access Internet through it. -ExternalAccess=External access -MAIN_PROXY_USE=Use a proxy server (otherwise direct access to internet) -MAIN_PROXY_HOST=Name/Address of proxy server -MAIN_PROXY_PORT=Port of proxy server -MAIN_PROXY_USER=Login to use the proxy server -MAIN_PROXY_PASS=Password to use the proxy server -DefineHereComplementaryAttributes=Define here all attributes, not already available by default, and that you want to be supported for %s. -ExtraFields=Complementary attributes -ExtraFieldsLines=Complementary attributes (lines) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) -ExtraFieldsThirdParties=Complementary attributes (thirdparty) -ExtraFieldsContacts=Complementary attributes (contact/address) -ExtraFieldsMember=Complementary attributes (member) -ExtraFieldsMemberType=Complementary attributes (member type) -ExtraFieldsCustomerInvoices=Complementary attributes (invoices) -ExtraFieldsSupplierOrders=Complementary attributes (orders) -ExtraFieldsSupplierInvoices=Complementary attributes (invoices) -ExtraFieldsProject=Complementary attributes (projects) -ExtraFieldsProjectTask=Complementary attributes (tasks) -ExtraFieldHasWrongValue=Attribute %s has a wrong value. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Warning, on some Linux systems, to send email from your email, sendmail execution setup must contains option -ba (parameter mail.force_extra_parameters into your php.ini file). If some recipients never receive emails, try to edit this PHP parameter with mail.force_extra_parameters = -ba). -PathToDocuments=Path to documents -PathDirectory=Directory -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=You must at least enable 1 module -ClassNotFoundIntoPathWarning=Class %s not found into PHP path -YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Session storage encrypted by Suhosin -ConditionIsCurrently=Condition is currently %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. -SearchOptim=Search optimization -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. -XDebugInstalled=XDebug is loaded. -XCacheInstalled=XCache is loaded. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Edition of field %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) -GetBarCode=Get barcode -##### Module password generation -PasswordGenerationStandard=Return a password generated according to internal Dolibarr algorithm: 8 characters containing shared numbers and characters in lowercase. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Rule to generate suggested passwords or validate passwords -DisableForgetPasswordLinkOnLogonPage=Do not show the link "Forget password" on login page -UsersSetup=Users module setup -UserMailRequired=EMail required to create a new user -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Companies module setup -CompanyCodeChecker=Module for third parties code generation and checking (customer or supplier) -AccountCodeManager=Module for accountancy code generation (customer or supplier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documents templates -DocumentModelOdt=Generate documents from OpenDocuments templates (.ODT or .ODS files for OpenOffice, KOffice, TextEdit,...) -WatermarkOnDraft=Watermark on draft document -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Rules on Professional Ids -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=An export link to %s format is available at following link: %s -##### Invoices ##### -BillsSetup=Invoices module setup -BillsNumberingModule=Invoices and credit notes numbering model -BillsPDFModules=Invoice documents models -CreditNote=Credit note -CreditNotes=Credit notes -ForceInvoiceDate=Force invoice date to validation date -SuggestedPaymentModesIfNotDefinedInInvoice=Suggested payments mode on invoice by default if not defined for invoice -SuggestPaymentByRIBOnAccount=Suggest payment by withdraw on account -SuggestPaymentByChequeToAddress=Suggest payment by cheque to -FreeLegalTextOnInvoices=Free text on invoices -WatermarkOnDraftInvoices=Watermark on draft invoices (none if empty) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Suppliers payments -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Commercial proposals module setup -ProposalsNumberingModules=Commercial proposal numbering models -ProposalsPDFModules=Commercial proposal documents models -FreeLegalTextOnProposal=Free text on commercial proposals -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal -##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Order management setup -OrdersNumberingModules=Orders numbering models -OrdersModelModule=Order documents models -FreeLegalTextOnOrders=Free text on orders -WatermarkOnDraftOrders=Watermark on draft orders (none if empty) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventions module setup -FreeLegalTextOnInterventions=Free text on intervention documents -FicheinterNumberingModules=Intervention numbering models -TemplatePDFInterventions=Intervention card documents models -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) -##### Contracts ##### -ContractsSetup=Contracts/Subscriptions module setup -ContractsNumberingModules=Contracts numbering modules -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) -##### Members ##### -MembersSetup=Members module setup -MemberMainOptions=Main options -AdherentLoginRequired= Manage a Login for each member -AdherentMailRequired=EMail required to create a new member -MemberSendInformationByMailByDefault=Checkbox to send mail confirmation to members (validation or new subscription) is on by default -##### LDAP setup ##### -LDAPSetup=LDAP Setup -LDAPGlobalParameters=Global parameters -LDAPUsersSynchro=Users -LDAPGroupsSynchro=Groups -LDAPContactsSynchro=Contacts -LDAPMembersSynchro=Members -LDAPSynchronization=LDAP synchronisation -LDAPFunctionsNotAvailableOnPHP=LDAP functions are not available on your PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Key in LDAP -LDAPSynchronizeUsers=Organization of users in LDAP -LDAPSynchronizeGroups=Organization of groups in LDAP -LDAPSynchronizeContacts=Organization of contacts in LDAP -LDAPSynchronizeMembers=Organization of foundation's members in LDAP -LDAPPrimaryServer=Primary server -LDAPSecondaryServer=Secondary server -LDAPServerPort=Server port -LDAPServerPortExample=Default port : 389 -LDAPServerProtocolVersion=Protocol version -LDAPServerUseTLS=Use TLS -LDAPServerUseTLSExample=Your LDAP server use TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Administrator password -LDAPUserDn=Users' DN -LDAPUserDnExample=Complete DN (ex: ou=users,dc=example,dc=com) -LDAPGroupDn=Groups' DN -LDAPGroupDnExample=Complete DN (ex: ou=groups,dc=example,dc=com) -LDAPServerExample=Server address (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=Complete DN (ex: dc=example,dc=com) -LDAPDnSynchroActive=Users and groups synchronization -LDAPDnSynchroActiveExample=LDAP to Dolibarr or Dolibarr to LDAP synchronization -LDAPDnContactActive=Contacts' synchronization -LDAPDnContactActiveExample=Activated/Unactivated synchronization -LDAPDnMemberActive=Members' synchronization -LDAPDnMemberActiveExample=Activated/Unactivated synchronization -LDAPContactDn=Dolibarr contacts' DN -LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=example,dc=com) -LDAPMemberDn=Dolibarr members DN -LDAPMemberDnExample=Complete DN (ex: ou=members,dc=example,dc=com) -LDAPMemberObjectClassList=List of objectClass -LDAPMemberObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPUserObjectClassList=List of objectClass -LDAPUserObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPGroupObjectClassList=List of objectClass -LDAPGroupObjectClassListExample=List of objectClass defining record attributes (ex: top,groupOfUniqueNames) -LDAPContactObjectClassList=List of objectClass -LDAPContactObjectClassListExample=List of objectClass defining record attributes (ex: top,inetOrgPerson or top,user for active directory) -LDAPTestConnect=Test LDAP connection -LDAPTestSynchroContact=Test contacts synchronization -LDAPTestSynchroUser=Test user synchronization -LDAPTestSynchroGroup=Test group synchronization -LDAPTestSynchroMember=Test member synchronization -LDAPTestSearch= Test a LDAP search -LDAPSynchroOK=Synchronization test successful -LDAPSynchroKO=Failed synchronization test -LDAPSynchroKOMayBePermissions=Failed synchronization test. Check that connexion to server is correctly configured and allows LDAP udpates -LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s) -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Connect/Authentificate to LDAP server failed (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP server configured for version 3 -LDAPSetupForVersion2=LDAP server configured for version 2 -LDAPDolibarrMapping=Dolibarr Mapping -LDAPLdapMapping=LDAP Mapping -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Example : uid -LDAPFilterConnection=Search filter -LDAPFilterConnectionExample=Example : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Example : samaccountname -LDAPFieldFullname=Full name -LDAPFieldFullnameExample=Example : cn -LDAPFieldPasswordNotCrypted=Password not crypted -LDAPFieldPasswordCrypted=Password crypted -LDAPFieldPasswordExample=Example : userPassword -LDAPFieldCommonNameExample=Example : cn -LDAPFieldName=Name -LDAPFieldNameExample=Example : sn -LDAPFieldFirstName=First name -LDAPFieldFirstNameExample=Example : givenName -LDAPFieldMail=Email address -LDAPFieldMailExample=Example : mail -LDAPFieldPhone=Professional phone number -LDAPFieldPhoneExample=Example : telephonenumber -LDAPFieldHomePhone=Personal phone number -LDAPFieldHomePhoneExample=Example : homephone -LDAPFieldMobile=Cellular phone -LDAPFieldMobileExample=Example : mobile -LDAPFieldFax=Fax number -LDAPFieldFaxExample=Example : facsimiletelephonenumber -LDAPFieldAddress=Street -LDAPFieldAddressExample=Example : street -LDAPFieldZip=Zip -LDAPFieldZipExample=Example : postalcode -LDAPFieldTown=Town -LDAPFieldTownExample=Example : l -LDAPFieldCountry=Country -LDAPFieldDescription=Description -LDAPFieldDescriptionExample=Example : description -LDAPFieldNotePublic=Public Note -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Group members -LDAPFieldGroupMembersExample= Example : uniqueMember -LDAPFieldBirthdate=Birthdate -LDAPFieldCompany=Company -LDAPFieldCompanyExample=Example : o -LDAPFieldSid=SID -LDAPFieldSidExample=Example : objectsid -LDAPFieldEndLastSubscription=Date of subscription end -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Example: title -LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. -LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts. -LDAPDescUsers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr users. -LDAPDescGroups=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr groups. -LDAPDescMembers=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr members module. -LDAPDescValues=Example values are designed for OpenLDAP with following loaded schemas: core.schema, cosine.schema, inetorgperson.schema). If you use thoose values and OpenLDAP, modify your LDAP config file slapd.conf to have all thoose schemas loaded. -ForANonAnonymousAccess=For an authenticated access (for a write access for example) -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. -NotInstalled=Not installed, so your server is not slow down by this. -ApplicativeCache=Applicative cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers -##### Products ##### -ProductSetup=Products module setup -ServiceSetup=Services module setup -ProductServiceSetup=Products and Services modules setup -NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit) -ViewProductDescInFormAbility=Visualization of product descriptions in the forms (otherwise as popup tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Default barcode type to use for products -SetDefaultBarcodeTypeThirdParties=Default barcode type to use for third parties -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Product / Service configuration -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Logs module setup -SyslogOutput=Logs outputs -SyslogFacility=Facility -SyslogLevel=Level -SyslogFilename=File name and path -YouCanUseDOL_DATA_ROOT=You can use DOL_DATA_ROOT/dolibarr.log for a log file in Dolibarr "documents" directory. You can set a different path to store this file. -ErrorUnknownSyslogConstant=Constant %s is not a known Syslog constant -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donation module setup -DonationsReceiptModel=Template of donation receipt -##### Barcode ##### -BarcodeSetup=Barcode setup -PaperFormatModule=Print format module -BarcodeEncodeModule=Barcode encoding type -CodeBarGenerator=Barcode generator -ChooseABarCode=No generator defined -FormatNotSupportedByGenerator=Format not supported by this generator -BarcodeDescEAN8=Barcode of type EAN8 -BarcodeDescEAN13=Barcode of type EAN13 -BarcodeDescUPC=Barcode of type UPC -BarcodeDescISBN=Barcode of type ISBN -BarcodeDescC39=Barcode of type C39 -BarcodeDescC128=Barcode of type C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Manager to auto define barcode numbers -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=External RSS imports setup -NewRSS=New RSS Feed -RSSUrl=RSS URL -RSSUrlExample=An interesting RSS feed -##### Mailing ##### -MailingSetup=EMailing module setup -MailingEMailFrom=Sender EMail (From) for emails sent by emailing module -MailingEMailError=Return EMail (Errors-to) for emails with errors -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=EMail notification module setup -NotificationEMailFrom=Sender EMail (From) for emails sent for notifications -FixedEmailTarget=Fixed email target -##### Sendings ##### -SendingsSetup=Sending module setup -SendingsReceiptModel=Sending receipt model -SendingsNumberingModules=Sendings numbering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Free text on shipments -##### Deliveries ##### -DeliveryOrderNumberingModules=Products deliveries receipt numbering module -DeliveryOrderModel=Products deliveries receipt model -DeliveriesOrderAbility=Support products deliveries receipts -FreeLegalTextOnDeliveryReceipts=Free text on delivery receipts -##### FCKeditor ##### -AdvancedEditor=Advanced editor -ActivateFCKeditor=Activate advanced editor for: -FCKeditorForCompany=WYSIWIG creation/edition of elements description and note (except products/services) -FCKeditorForProduct=WYSIWIG creation/edition of products/services description and note -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= WYSIWIG creation/edition for mass eMailings (Tools->eMailing) -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Connection succeeded but database doesn't look to be an OSCommerce database (Key %s not found in table %s). -OSCommerceTestOk=Connection to server '%s' on database '%s' with user '%s' successfull. -OSCommerceTestKo1=Connection to server '%s' succeed but database '%s' could not be reached. -OSCommerceTestKo2=Connection to server '%s' with user '%s' failed. -##### Stock ##### -StockSetup=Warehouse module setup -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. -##### Menu ##### -MenuDeleted=Menu deleted -Menus=Menus -TreeMenuPersonalized=Personalized menus -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=New menu -Menu=Selection of menu -MenuHandler=Menu handler -MenuModule=Source module -HideUnauthorizedMenu= Hide unauthorized menus (gray) -DetailId=Id menu -DetailMenuHandler=Menu handler where to show new menu -DetailMenuModule=Module name if menu entry come from a module -DetailType=Type of menu (top or left) -DetailTitre=Menu label or label code for translation -DetailUrl=URL where menu send you (Absolute URL link or external link with http://) -DetailEnabled=Condition to show or not entry -DetailRight=Condition to display unauthorized grey menus -DetailLangs=Lang file name for label code translation -DetailUser=Intern / Extern / All -Target=Target -DetailTarget=Target for links (_blank top open a new window) -DetailLevel=Level (-1:top menu, 0:header menu, >0 menu and sub menu) -ModifMenu=Menu change -DeleteMenu=Delete menu entry -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=VAT due -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on payments for services -OptionVatDebitOptionDesc=VAT is due:
- on delivery for goods (we use invoice date)
- on invoice (debit) for services -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: -OnDelivery=On delivery -OnPayment=On payment -OnInvoice=On invoice -SupposedToBePaymentDate=Payment date used -SupposedToBeInvoiceDate=Invoice date used -Buy=Buy -Sell=Sell -InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Sale account. code -AccountancyCodeBuy=Purchase account. code -##### Agenda ##### -AgendaSetup=Events and agenda module setup -PasswordTogetVCalExport=Key to authorize export link -PastDelayVCalExport=Do not export event older than -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Point of sales -CashDeskSetup=Point of sales module setup -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Default account to use to receive cash payments -CashDeskBankAccountForCheque= Default account to use to receive payments by cheque -CashDeskBankAccountForCB= Default account to use to receive payments by credit cards -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. -##### Bookmark ##### -BookmarkSetup=Bookmark module setup -BookmarkDesc=This module allows you to manage bookmarks. You can also add shortcuts to any Dolibarr pages or externale web sites on your left menu. -NbOfBoomarkToShow=Maximum number of bookmarks to show in left menu -##### WebServices ##### -WebServicesSetup=Webservices module setup -WebServicesDesc=By enabling this module, Dolibarr become a web service server to provide miscellaneous web services. -WSDLCanBeDownloadedHere=WSDL descriptor files of provided services can be download here -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bank module setup -FreeLegalTextOnChequeReceipts=Free text on cheque receipts -BankOrderShow=Display order of bank accounts for countries using "detailed bank number" -BankOrderGlobal=General -BankOrderGlobalDesc=General display order -BankOrderES=Spanish -BankOrderESDesc=Spanish display order -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-company module setup -##### Suppliers ##### -SuppliersSetup=Supplier module setup -SuppliersCommandModel=Complete template of supplier order (logo...) -SuppliersInvoiceModel=Complete template of supplier invoice (logo...) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=GeoIP Maxmind module setup -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note that your ip to country data file must be inside a directory your PHP can read (Check your PHP open_basedir setup and filesystem permissions). -YouCanDownloadFreeDatFileTo=You can download a free demo version of the Maxmind GeoIP country file at %s. -YouCanDownloadAdvancedDatFileTo=You can also download a more complete version, with updates, of the Maxmind GeoIP country file at %s. -TestGeoIPResult=Test of a conversion IP -> country -##### Projects ##### -ProjectsNumberingModules=Projects numbering module -ProjectsSetup=Project module setup -ProjectsModelModule=Project reports document model -TasksNumberingModules=Tasks numbering module -TaskModelModule=Tasks reports document model -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Can always be edited -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Minimum number of uppercase characters -NbNumMin=Minimum number of numeric characters -NbSpeMin=Minimum number of special characters -NbIteConsecutive=Maximum number of repeating same characters -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Setup of module salaries -SortOrder=Sort order -Format=Format -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/fr_CH/cashdesk.lang b/htdocs/langs/fr_CH/cashdesk.lang deleted file mode 100644 index c3ca13bf385..00000000000 --- a/htdocs/langs/fr_CH/cashdesk.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - cashdesk -BankToPay=Account for payment diff --git a/htdocs/langs/fr_CH/main.lang b/htdocs/langs/fr_CH/main.lang index 9ffa398137f..2e691473326 100644 --- a/htdocs/langs/fr_CH/main.lang +++ b/htdocs/langs/fr_CH/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. @@ -23,799 +19,3 @@ FormatDateHourShort=%m/%d/%Y %I:%M %p FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p -DatabaseConnection=Database connection -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables -NoTranslation=No translation -NoRecordFound=No record found -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=No error -Error=Error -Errors=Errors -ErrorFieldRequired=Field '%s' is required -ErrorFieldFormat=Field '%s' has a bad value -ErrorFileDoesNotExists=File %s does not exist -ErrorFailedToOpenFile=Failed to open file %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s not defined -ErrorUnknown=Unknown error -ErrorSQL=SQL Error -ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this -ErrorGoToModuleSetup=Go to Module setup to fix this -ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) -ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. -ErrorInternalErrorDetected=Error detected -ErrorWrongHostParameter=Wrong host parameter -ErrorYourCountryIsNotDefined=Your country is not defined. Go to Home-Setup-Edit and post again the form. -ErrorRecordIsUsedByChild=Failed to delete this record. This record is used by at least one child records. -ErrorWrongValue=Wrong value -ErrorWrongValueForParameterX=Wrong value for parameter %s -ErrorNoRequestInError=No request in error -ErrorServiceUnavailableTryLater=Service not available for the moment. Try again later. -ErrorDuplicateField=Duplicate value in a unique field -ErrorSomeErrorWereFoundRollbackIsDone=Some errors were found. We rollback changes. -ErrorConfigParameterNotDefined=Parameter %s is not defined inside Dolibarr config file conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Failed to find user %s in Dolibarr database. -ErrorNoVATRateDefinedForSellerCountry=Error, no vat rates defined for country '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Error, failed to save file. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. -SetDate=Set date -SelectDate=Select a date -SeeAlso=See also %s -SeeHere=See here -Apply=Apply -BackgroundColorByDefault=Default background color -FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded -FileGenerated=The file was successfully generated -FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. -NbOfEntries=Nb of entries -GoToWikiHelpPage=Read online help (Internet access needed) -GoToHelpPage=Read help -RecordSaved=Record saved -RecordDeleted=Record deleted -LevelOfFeature=Level of features -NotDefined=Not defined -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Administrator -Undefined=Undefined -PasswordForgotten=Password forgotten? -SeeAbove=See above -HomeArea=Home area -LastConnexion=Latest connection -PreviousConnexion=Previous connection -PreviousValue=Previous value -ConnectedOnMultiCompany=Connected on environment -ConnectedSince=Connected since -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database type manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr has detected a technical error -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=More information -TechnicalInformation=Technical information -TechnicalID=Technical ID -NotePublic=Note (public) -NotePrivate=Note (private) -PrecisionUnitIsLimitedToXDecimals=Dolibarr was setup to limit precision of unit prices to %s decimals. -DoTest=Test -ToFilter=Filter -NoFilter=No filter -WarningYouHaveAtLeastOneTaskLate=Warning, you have at least one element that has exceeded the tolerance delay. -yes=yes -Yes=Yes -no=no -No=No -All=All -Home=Home -Help=Help -OnlineHelp=Online help -PageWiki=Wiki page -MediaBrowser=Media browser -Always=Always -Never=Never -Under=under -Period=Period -PeriodEndDate=End date for period -Activate=Activate -Activated=Activated -Closed=Closed -Closed2=Closed -NotClosed=Not closed -Enabled=Enabled -Deprecated=Deprecated -Disable=Disable -Disabled=Disabled -Add=Add -AddLink=Add link -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Close -CloseBox=Remove widget from your dashboard -Confirm=Confirm -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Delete -Remove=Remove -Resiliate=Terminate -Cancel=Cancel -Modify=Modify -Edit=Edit -Validate=Validate -ValidateAndApprove=Validate and Approve -ToValidate=To validate -Save=Save -SaveAs=Save As -TestConnection=Test connection -ToClone=Clone -ConfirmClone=Choose data you want to clone : -NoCloneOptionsSpecified=No data to clone defined. -Of=of -Go=Go -Run=Run -CopyOf=Copy of -Show=Show -Hide=Hide -ShowCardHere=Show card -Search=Search -SearchOf=Search -Valid=Valid -Approve=Approve -Disapprove=Disapprove -ReOpen=Re-Open -Upload=Send file -ToLink=Link -Select=Select -Choose=Choose -Resize=Resize -Recenter=Recenter -Author=Author -User=User -Users=Users -Group=Group -Groups=Groups -NoUserGroupDefined=No user group defined -Password=Password -PasswordRetype=Retype your password -NoteSomeFeaturesAreDisabled=Note that a lot of features/modules are disabled in this demonstration. -Name=Name -Person=Person -Parameter=Parameter -Parameters=Parameters -Value=Value -PersonalValue=Personal value -NewValue=New value -CurrentValue=Current value -Code=Code -Type=Type -Language=Language -MultiLanguage=Multi-language -Note=Note -Title=Title -Label=Label -RefOrLabel=Ref. or label -Info=Log -Family=Family -Description=Description -Designation=Description -Model=Doc template -DefaultModel=Default doc template -Action=Event -About=About -Number=Number -NumberByMonth=Number by month -AmountByMonth=Amount by month -Numero=Number -Limit=Limit -Limits=Limits -Logout=Logout -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Connection -Setup=Setup -Alert=Alert -Previous=Previous -Next=Next -Cards=Cards -Card=Card -Now=Now -HourStart=Start hour -Date=Date -DateAndHour=Date and hour -DateToday=Today's date -DateReference=Reference date -DateStart=Start date -DateEnd=End date -DateCreation=Creation date -DateCreationShort=Creat. date -DateModification=Modification date -DateModificationShort=Modif. date -DateLastModification=Latest modification date -DateValidation=Validation date -DateClosing=Closing date -DateDue=Due date -DateValue=Value date -DateValueShort=Value date -DateOperation=Operation date -DateOperationShort=Oper. Date -DateLimit=Limit date -DateRequest=Request date -DateProcess=Process date -DateBuild=Report build date -DatePayment=Date of payment -DateApprove=Approving date -DateApprove2=Approving date (second approval) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=year -DurationMonth=month -DurationWeek=week -DurationDay=day -DurationYears=years -DurationMonths=months -DurationWeeks=weeks -DurationDays=days -Year=Year -Month=Month -Week=Week -WeekShort=Week -Day=Day -Hour=Hour -Minute=Minute -Second=Second -Years=Years -Months=Months -Days=Days -days=days -Hours=Hours -Minutes=Minutes -Seconds=Seconds -Weeks=Weeks -Today=Today -Yesterday=Yesterday -Tomorrow=Tomorrow -Morning=Morning -Afternoon=Afternoon -Quadri=Quadri -MonthOfDay=Month of the day -HourShort=H -MinuteShort=mn -Rate=Rate -CurrencyRate=Currency conversion rate -UseLocalTax=Include tax -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cut -Copy=Copy -Paste=Paste -Default=Default -DefaultValue=Default value -Price=Price -UnitPrice=Unit price -UnitPriceHT=Unit price (net) -UnitPriceTTC=Unit price -PriceU=U.P. -PriceUHT=U.P. (net) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Amount -AmountInvoice=Invoice amount -AmountPayment=Payment amount -AmountHTShort=Amount (net) -AmountTTCShort=Amount (inc. tax) -AmountHT=Amount (net of tax) -AmountTTC=Amount (inc. tax) -AmountVAT=Amount tax -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Amount tax 2 -AmountLT2=Amount tax 3 -AmountLT1ES=Amount RE -AmountLT2ES=Amount IRPF -AmountTotal=Total amount -AmountAverage=Average amount -PriceQtyMinHT=Price quantity min. (net of tax) -Percentage=Percentage -Total=Total -SubTotal=Subtotal -TotalHTShort=Total (net) -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Total (inc. tax) -TotalHT=Total (net of tax) -TotalHTforthispage=Total (net of tax) for this page -Totalforthispage=Total for this page -TotalTTC=Total (inc. tax) -TotalTTCToYourCredit=Total (inc. tax) to your credit -TotalVAT=Total tax -TotalLT1=Total tax 2 -TotalLT2=Total tax 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF -HT=Net of tax -TTC=Inc. tax -VAT=Sales tax -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=Tax Rate -Average=Average -Sum=Sum -Delta=Delta -Module=Module -Option=Option -List=List -FullList=Full list -Statistics=Statistics -OtherStatistics=Other statistics -Status=Status -Favorite=Favorite -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern -RefSupplier=Ref. supplier -RefPayment=Ref. payment -CommercialProposalsShort=Commercial proposals -Comment=Comment -Comments=Comments -ActionsToDo=Events to do -ActionsToDoShort=To do -ActionsDoneShort=Done -ActionNotApplicable=Not applicable -ActionRunningNotStarted=To start -ActionRunningShort=In progress -ActionDoneShort=Finished -ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation -ContactsForCompany=Contacts for this third party -ContactsAddressesForCompany=Contacts/addresses for this third party -AddressesForCompany=Addresses for this third party -ActionsOnCompany=Events about this third party -ActionsOnMember=Events about this member -NActionsLate=%s late -RequestAlreadyDone=Request already recorded -Filter=Filter -FilterOnInto=Search criteria '%s' into fields %s -RemoveFilter=Remove filter -ChartGenerated=Chart generated -ChartNotGenerated=Chart not generated -GeneratedOn=Build on %s -Generate=Generate -Duration=Duration -TotalDuration=Total duration -Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board -Available=Available -NotYetAvailable=Not yet available -NotAvailable=Not available -Categories=Tags/categories -Category=Tag/category -By=By -From=From -to=to -and=and -or=or -Other=Other -Others=Others -OtherInformations=Other informations -Quantity=Quantity -Qty=Qty -ChangedBy=Changed by -ApprovedBy=Approved by -ApprovedBy2=Approved by (second approval) -Approved=Approved -Refused=Refused -ReCalculate=Recalculate -ResultKo=Failure -Reporting=Reporting -Reportings=Reporting -Draft=Draft -Drafts=Drafts -Validated=Validated -Opened=Opened -New=New -Discount=Discount -Unknown=Unknown -General=General -Size=Size -Received=Received -Paid=Paid -Topic=Subject -ByCompanies=By third parties -ByUsers=By users -Links=Links -Link=Link -Rejects=Rejects -Preview=Preview -NextStep=Next step -Datas=Data -None=None -NoneF=None -Late=Late -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Picture -Photos=Pictures -AddPhoto=Add picture -DeletePicture=Picture delete -ConfirmDeletePicture=Confirm picture deletion? -Login=Login -CurrentLogin=Current login -EnterLoginDetail=Enter login details -January=January -February=February -March=March -April=April -May=May -June=June -July=July -August=August -September=September -October=October -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Feb -MarchMin=Mar -AprilMin=Apr -MayMin=May -JuneMin=Jun -JulyMin=Jul -AugustMin=Aug -SeptemberMin=Sep -OctoberMin=Oct -NovemberMin=Nov -DecemberMin=Dec -Month01=January -Month02=February -Month03=March -Month04=April -Month05=May -Month06=June -Month07=July -Month08=August -Month09=September -Month10=October -Month11=November -Month12=December -MonthShort01=Jan -MonthShort02=Feb -MonthShort03=Mar -MonthShort04=Apr -MonthShort05=May -MonthShort06=Jun -MonthShort07=Jul -MonthShort08=Aug -MonthShort09=Sep -MonthShort10=Oct -MonthShort11=Nov -MonthShort12=Dec -AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Report name -ReportPeriod=Report period -ReportDescription=Description -Report=Report -Keyword=Keyword -Origin=Origin -Legend=Legend -Fill=Fill -Reset=Reset -File=File -Files=Files -NotAllowed=Not allowed -ReadPermissionNotAllowed=Read permission not allowed -AmountInCurrency=Amount in %s currency -Example=Example -Examples=Examples -NoExample=No example -FindBug=Report a bug -NbOfThirdParties=Number of third parties -NbOfLines=Number of lines -NbOfObjects=Number of objects -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Total quantity -DateFromTo=From %s to %s -DateFrom=From %s -DateUntil=Until %s -Check=Check -Uncheck=Uncheck -Internal=Internal -External=External -Internals=Internal -Externals=External -Warning=Warning -Warnings=Warnings -BuildDoc=Build Doc -Entity=Environment -Entities=Entities -CustomerPreview=Customer preview -SupplierPreview=Supplier preview -ShowCustomerPreview=Show customer preview -ShowSupplierPreview=Show supplier preview -RefCustomer=Ref. customer -Currency=Currency -InfoAdmin=Information for administrators -Undo=Undo -Redo=Redo -ExpandAll=Expand all -UndoExpandAll=Undo expand -Reason=Reason -FeatureNotYetSupported=Feature not yet supported -CloseWindow=Close window -Response=Response -Priority=Priority -SendByMail=Send by EMail -MailSentBy=Email sent by -TextUsedInTheMessageBody=Email body -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=No email -Email=Email -NoMobilePhone=No mobile phone -Owner=Owner -FollowingConstantsWillBeSubstituted=The following constants will be replaced with the corresponding value. -Refresh=Refresh -BackToList=Back to list -GoBack=Go back -CanBeModifiedIfOk=Can be modified if valid -CanBeModifiedIfKo=Can be modified if not valid -ValueIsValid=Value is valid -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Record modified successfully -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatic code -FeatureDisabled=Feature disabled -MoveBox=Move widget -Offered=Offered -NotEnoughPermissions=You don't have permission for this action -SessionName=Session name -Method=Method -Receive=Receive -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Current value -PartialWoman=Partial -TotalWoman=Total -NeverReceived=Never received -Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup -Color=Color -Documents=Linked files -Documents2=Documents -UploadDisabled=Upload disabled -MenuECM=Documents -MenuAWStats=AWStats -MenuMembers=Members -MenuAgendaGoogle=Google agenda -ThisLimitIsDefinedInSetup=Dolibarr limit (Menu home-setup-security): %s Kb, PHP limit: %s Kb -NoFileFound=No documents saved in this directory -CurrentUserLanguage=Current language -CurrentTheme=Current theme -CurrentMenuManager=Current menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Disabled modules -For=For -ForCustomer=For customer -Signature=Signature -DateOfSignature=Date of signature -HidePassword=Show command with password hidden -UnHidePassword=Show real command with clear password -Root=Root -Informations=Informations -Page=Page -Notes=Notes -AddNewLine=Add new line -AddFile=Add file -FreeZone=Free entry -FreeLineOfType=Free entry of type -CloneMainAttributes=Clone object with its main attributes -PDFMerge=PDF Merge -Merge=Merge -PrintContentArea=Show page to print main content area -MenuManager=Menu manager -WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. -CoreErrorTitle=System error -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=Credit card -FieldsWithAreMandatory=Fields with %s are mandatory -FieldsWithIsForPublic=Fields with %s are shown on public list of members. If you don't want this, check off the "public" box. -AccordingToGeoIPDatabase=(according to GeoIP convertion) -Line=Line -NotSupported=Not supported -RequiredField=Required field -Result=Result -ToTest=Test -ValidateBefore=Card must be validated before using this feature -Visibility=Visibility -Private=Private -Hidden=Hidden -Resources=Resources -Source=Source -Prefix=Prefix -Before=Before -After=After -IPAddress=IP address -Frequency=Frequency -IM=Instant messaging -NewAttribute=New attribute -AttributeCode=Attribute code -URLPhoto=URL of photo/logo -SetLinkToAnotherThirdParty=Link to another third party -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Create draft -SetToDraft=Back to draft -ClickToEdit=Click to edit -ObjectDeleted=Object %s deleted -ByCountry=By country -ByTown=By town -ByDate=By date -ByMonthYear=By month/year -ByYear=By year -ByMonth=By month -ByDay=By day -BySalesRepresentative=By sales representative -LinkedToSpecificUsers=Linked to a particular user contact -NoResults=No results -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules tools -Test=Test -Element=Element -NoPhotoYet=No pictures available yet -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Deductible -from=from -toward=toward -Access=Access -SelectAction=Select action -HelpCopyToClipboard=Use Ctrl+C to copy to clipboard -SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") -OriginFileName=Original filename -SetDemandReason=Set source -SetBankAccount=Define Bank Account -AccountCurrency=Account Currency -ViewPrivateNote=View notes -XMoreLines=%s line(s) hidden -PublicUrl=Public URL -AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh -PrintFile=Print File %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. -Deny=Deny -Denied=Denied -ListOfTemplates=List of templates -Gender=Gender -Genderman=Man -Genderwoman=Woman -ViewList=List view -Mandatory=Mandatory -Hello=Hello -Sincerely=Sincerely -DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects -ClassifyBilled=Classify billed -Progress=Progress -ClickHere=Click here -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export -Exports=Exports -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Miscellaneous -Calendar=Calendar -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Fiscal year -# Week day -Monday=Monday -Tuesday=Tuesday -Wednesday=Wednesday -Thursday=Thursday -Friday=Friday -Saturday=Saturday -Sunday=Sunday -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=We -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Monday -Day2=Tuesday -Day3=Wednesday -Day4=Thursday -Day5=Friday -Day6=Saturday -Day0=Sunday -ShortMonday=M -ShortTuesday=T -ShortWednesday=W -ShortThursday=T -ShortFriday=F -ShortSaturday=S -ShortSunday=S -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties -SearchIntoContacts=Contacts -SearchIntoMembers=Members -SearchIntoUsers=Users -SearchIntoProductsOrServices=Products or services -SearchIntoProjects=Projects -SearchIntoTasks=Tasks -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals -SearchIntoInterventions=Interventions -SearchIntoContracts=Contracts -SearchIntoCustomerShipments=Customer shipments -SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 949f602b617..42dba8d01f3 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Description de la facture OverviewOfAmountOfLinesNotBound=Vue d'ensemble du nombre de lignes non reliées à un compte comptable OverviewOfAmountOfLinesBound=Vue d'ensemble du nombre de lignes liées à un compte comptable OtherInfo=Autre information +DeleteCptCategory=Supprimer le code comptable du groupe +ConfirmDeleteCptCategory=Êtes-vous sur de vouloir supprimer ce compte comptable du groupe comptable ? AccountancyArea=Espace comptabilité AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes: AccountancyAreaDescActionOnce=Les actions suivantes sont habituellement exécutées une seule fois, ou une fois par an ... -AccountancyAreaDescActionOnceBis=Les prochaines étapes doivent être faites pour vous faire gagner du temps à l'avenir en vous proposant le bon compte comptable par défaut lors de la journalisation (écrire des enregistrements dans les journaux et Grand Livre) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=Les actions suivantes sont habituellement exécutées chaque mois, semaine, ou jour pour les très grandes entreprises ... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=Etape %s: Créer un modèle de plan de compte depuis le menu %s AccountancyAreaDescChart=Etape %s: Créer ou vérifier le contenu de votre plan de compte depuis le menu %s -AccountancyAreaDescBank=Etape %s: Vérifier que la liaison entre les comptes bancaires et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, rendez-vous sur la fiche de chaque compte financier. Vous pouvez commencer à partir de la page %s. -AccountancyAreaDescVat=Etape %s: Vérifiez que la liaison entre le paiement de la TVA et le compte comptable est faite. Compléter les liaisons manquantes. Vous pouvez définir les comptes comptables à utiliser pour chaque taux de TVA sur la page %s. -AccountancyAreaDescExpenseReport=Etape %s: Vérifiez que la liaison entre le type de notes de frais et le compte comptable est faite. Compléter les liaisons manquantes. Vous pouvez définir les comptes comptables à utiliser pour chaque type de ligne de note de frais sur la page %s. -AccountancyAreaDescSal=Etape %s: Vérifier que la liaison entre les paiements de salaires et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescContrib=Etape %s: Vérifier que la liaison entre les dépenses spéciales (cotisations sociales ou fiscales) et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescDonation=Etape %s: Vérifier que la liaison entre les paiements de dons et le compte comptable est faite. Compléter les liaisons manquantes. Vous pouvez définir le compte dédié pour cela à partir de l'entrée de menu %s. -AccountancyAreaDescMisc=Etape %s: Vérifier que la liaison par défaut entre les lignes de transactions diverses et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescProd=Etape %s: Vérifier que la liaison entre les produits/services et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescLoan=Etape %s: Vérifier que la liaison entre les paiements de prêts et les comptes comptables est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescCustomer=Etape %s: Vérifier que la liaison entre les lignes de factures client existantes et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescSupplier=Etape %s: Vérifier que la liaison entre les lignes de factures fournisseurs existantes et le compte comptable est faite. Compléter les liaisons manquantes. Pour cela, vous pouvez utiliser l'entrée de menu %s. -AccountancyAreaDescWriteRecords=Etape %s: Ecrire les transactions dans le Grand Livre. Pour cela, aller sur chaque Journal, et cliquer sur le bouton "Enregistrer les opérations dans le Grand Livre". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=Etape %s: Définissez les comptes comptables de chaque compte bancaire ou financier. Vous pouvez commencer à partir de la page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=Etape %s: Ajouter ou modifier les opérations existantes et générer des rapports et des exportations. AccountancyAreaDescClosePeriod=Etape %s: Fermer la période pour ne plus pouvoir faire de modification à l'avenir. @@ -57,6 +61,10 @@ ChangeAndLoad=Changer et charger Addanaccount=Ajouter un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Afficher le compte comptable +ShowAccountingJournal=Afficher le journal AccountAccountingSuggest=Code comptable suggéré MenuDefaultAccounts=Comptes par défaut MenuVatAccounts=Compte TVA @@ -71,8 +79,8 @@ SuppliersVentilation=Liaison factures fournisseur ExpenseReportsVentilation=Liaison notes de frais CreateMvts=Créer nouvelle transaction UpdateMvts=Modification d'une transaction -WriteBookKeeping=Ventiler les opérations dans le Grand Livre -Bookkeeping=Grand livre +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Balance des comptes CAHTF=Total achat fournisseur HT @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Commencez le tri de la page "Liens réalis ACCOUNTING_LENGTH_DESCRIPTION=Tronquer la description des produits & services dans les listes à n caractères (Idéalement = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Tronquer la description du compte des produits & services dans les listes à n caractères (Idéalement = 50) -ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes généraux -ACCOUNTING_LENGTH_AACCOUNT=Longueur des comptes tiers -ACCOUNTING_MANAGE_ZERO=Ajouter des 0 à la fin des codes comptables. Fonctionnalité nécessaire pour certains pays. Désactivée par défaut. Si vous positionnez cette option à Oui, il vous faut aussi définir les 2 paramètres suivants (sinon celui-ci sera ignoré) +ACCOUNTING_LENGTH_GACCOUNT=Longueur des comptes de la comptabilité générale (Si vous définissez la valeur à 6 ici, le compte « 706 » apparaîtra comme « 706000 » à l'écran) +ACCOUNTING_LENGTH_AACCOUNT=Longueur des comptes comptables de Tiers (Si vous définissez la valeur à 6 ici, le compte « 401 » apparaîtra comme « 401000 » à l'écran) +ACCOUNTING_MANAGE_ZERO=Permettre de gérer un nombre différent de zéro à la fin d'un compte comptable. Nécessaire par certains pays (comme la Suisse). Si conservé à Non (par défaut), vous pouvez définir les 2 paramètres suivants pour demander à l'application d'ajouter des zéros virtuels. BANK_DISABLE_DIRECT_INPUT=Désactiver la saisie directe de transactions en banque ACCOUNTING_SELL_JOURNAL=Journal des ventes @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Numéro de pièce TransactionNumShort=Num. transaction -AccountingCategory=Catégorie comptable +AccountingCategory=Groupes de comptes comptables GroupByAccountAccounting=Grouper par compte comptable NotMatch=Non défini -DeleteMvt=Supprimer les lignes du grand livre +DeleteMvt=Delete Ledger lines DelYear=Année à supprimer DelJournal=Journal à supprimer -ConfirmDeleteMvt=Cela supprimera toutes les lignes du Grand Livre pour l'année et/ou un journal spécifique. Au moins un critère est requis. -ConfirmDeleteMvtPartial=Ceci va supprimer la(les) ligne(s) sélectionnée(s) du Grand Livre -DelBookKeeping=Supprimer l'enregistrement du grand livre +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Journal de trésorerie ExpenseReportsJournal=Journal des notes de frais DescFinanceJournal=Journal de trésorerie comprenant tous les types de paiements par compte bancaire / caisse -DescJournalOnlyBindedVisible=Ceci est une vue des enregistrements qui sont liés à un compte comptable produits et qui peuvent être enregistrés dans le Grand Livre. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Compte de la TVA non défini ThirdpartyAccountNotDefined=Compte pour le tiers non défini ProductAccountNotDefined=Compte pour le produit non défini @@ -156,13 +164,13 @@ NewAccountingMvt=Nouvelle transaction NumMvts=Numéro de transaction ListeMvts=Liste des mouvements ErrorDebitCredit=Débit et crédit ne peuvent pas avoir la même valeur en même temps. - +AddCompteFromBK=Ajouter un code comptable au groupe ReportThirdParty=Liste des comptes tiers DescThirdPartyReport=Consultez ici la liste des tiers clients et fournisseurs et leurs codes comptables ListAccounts=Liste des comptes comptables Pcgtype=Classe de compte -Pcgsubtype=Sous classe de compte +Pcgsubtype=Sous-classe de compte TotalVente=Total chiffre affaires hors taxe TotalMarge=Total marge @@ -186,9 +194,9 @@ AutomaticBindingDone=Liaison automatique faite ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé MvtNotCorrectlyBalanced=Le mouvement n'est pas équilibré. Crédit = %s. Débit = %s FicheVentilation=Fiche lien -GeneralLedgerIsWritten=Les opérations ont été inscrites dans le grand livre -GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être enregistrées. -NoNewRecordSaved=Aucun nouvel enregistrement sauvegardé +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=Pas de nouvelle ligne liée ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte comptable ChangeBinding=Changer les liens @@ -196,6 +204,18 @@ ChangeBinding=Changer les liens ApplyMassCategories=Application en masse des catégories AddAccountFromBookKeepingWithNoCategories=Ajouter les comptes sans groupes CategoryDeleted=Le groupe de comptes comptables a été supprimé +AccountingJournals=Journaux comptables +AccountingJournal=Journal comptable +NewAccountingJournal=Nouveau journal comptable +ShowAccoutingJournal=Afficher le journal +Code=Code +Nature=Nature +AccountingJournalType1=Opérations Diverses +AccountingJournalType2=Ventes +AccountingJournalType3=Achats +AccountingJournalType4=Banque +AccountingJournalType9=A-nouveaux +ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export vers Sage Ciel Compta ou Compta Evolution Modelcsv_quadratus=Export vers Quadratus QuadraCompta Modelcsv_ebp=Export vers EBP Modelcsv_cogilog=Export vers Cogilog +Modelcsv_agiris=Export vers Agiris (Test) ChartofaccountsId=Id plan comptable ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculé Formula=Formule ## Error -ErrorNoAccountingCategoryForThisCountry=Pas de catégories comptable disponibles pour le pays %s (Voir Accueil - Configuration - Dictionnaires) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=Pas de catégories de regroupement comptable disponibles pour le pays %s (Voir Accueil - Configuration - Dictionnaires) ExportNotSupported=Le format de l'export n'est pas supporté par cette page BookeppingLineAlreayExists=Lignes dejà existantes dans le grand livre - +NoJournalDefined=Pas de journal défini Binded=Lignes liées ToBind=Lignes à lier -WarningReportNotReliable=Attention, ce rapport ne se fonde pas sur le Grand Livre, donc n'est pas précis pour l'instant. Il sera remplacé par un rapport plus fiable dans une prochaine version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index 5fc1993c898..f639964e86c 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Utilisateurs internes ExternalUsers=Utilisateurs externes GUISetup=Affichage SetupArea=Espace de configuration +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulaire de test d'envoi de fichier (selon options choisies) IfModuleEnabled=Rem: oui est effectif uniquement si le module %s est activé RemoveLock=Effacer le fichier %s s'il existe afin d'autoriser l'outil de mise à jour. @@ -103,7 +104,7 @@ MenuIdParent=Identifiant du menu parent DetailMenuIdParent=Identifiant du menu parent (vide pour un menu du haut) DetailPosition=Numéro d'ordre déterminant la position du menu AllMenus=Tous -NotConfigured=Module non configuré +NotConfigured=Module/Application non configuré Active=Actif SetupShort=Configuration OtherOptions=Autres options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Séparateur de milliers Destination=Destination IdModule=ID Module IdPermissions=ID Permissions -Modules=Modules LanguageBrowserParameter=Variable %s LocalisationDolibarrParameters=Paramètres de localisation ClientTZ=Fuseau horaire client (utilisateur) @@ -123,7 +123,8 @@ PHPTZ=Fuseau horaire serveur PHP DaylingSavingTime=Heure d'été CurrentHour=Heure PHP (serveur) CurrentSessionTimeOut=Délai expiration session actuelle -YouCanEditPHPTZ=Pour définir un autre fuseau horaire PHP (non obligatoire), vous pouvez essayer d'ajouter un fichier .htaccess avec une ligne du type "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=Pour définir un fuseau horaire PHP différent (non requis), vous pouvez essayer d'ajouter un fichier .htaccess avec une ligne comme celle-ci "SetEnv TZ Europe / Paris" +HoursOnThisPageAreOnServerTZ=Attention, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais dépendent du le fuseau horaire du serveur. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Nombre maximum de lignes dans les widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Fonction disponible uniquement sur les versions off Rights=Permissions BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter à vos pages pour les personnaliser. Vous pouvez choisir de les afficher ou non en sélectionnant la page cible et en cliquant sur "Activer" ou "Désactiver". OnlyActiveElementsAreShown=Seuls les éléments en rapport avec un module actif sont présentés. -ModulesDesc=Les modules déterminent les fonctionnalités qui seront actives sur l'environnement. Certains modules nécessitent le paramétrage de permissions utilisateurs à définir suite à l'installation du module. Cliquez sur les boutons on/off pour activer/désactiver les modules. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=D'autres modules/extensions sont disponibles en téléchargement sur des sites externes sur Internet... ModulesDeployDesc=Si les permissions de votre système de fichier le permettent , vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible dans l'onglet %s. ModulesMarketPlaces=Recherche de modules externes... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Chiffrer le mot de passe de la base dans le fich InstrucToEncodePass=Pour avoir le mot de passe de la base encodé dans le fichier de configuration conf.php, remplacer dans ce fichier la ligne
$dolibarr_main_db_pass="...";
par
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Pour avoir le mot de passe de la base décodé (en clair) dans le fichier de configuration conf.php, remplacer dans ce fichier la ligne
$dolibarr_main_db_pass="crypted:...";
par
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection des PDF générés (Activation NON recommandée, rend inopérante la génération de PDF de masse) -ProtectAndEncryptPdfFilesDesc=La protection d'un document PDF laisse le document libre à la lecture et à l'impression avec tout logiciel de lecture PDF. Par contre, la modification et la copie deviennent impossible. Notez que, de plus, l'utilisation de cette option empêche la génération de PDF cumulés (comme pour le PDF global des impayés). +ProtectAndEncryptPdfFilesDesc=La protection d'un document PDF laisse le document libre à la lecture et à l'impression avec tout logiciel de lecture PDF. Par contre, la modification et la copie deviennent impossible. Notez que, de plus, l'utilisation de cette option empêche la génération de PDFs cumulés. Feature=Fonction DolibarrLicense=Licence Developpers=Développeurs/contributeurs @@ -225,6 +226,8 @@ OfficialMarketPlace=Place de marché officielle des modules et extensions compl OfficialWebHostingService=Services d'hébergements référencés (Cloud) ReferencedPreferredPartners=Preferred Partners OtherResources=Autres ressources +ExternalResources=Ressources externes +SocialNetworks=Réseaux sociaux ForDocumentationSeeWiki=Pour la documentation utilisateur, développeur ou les FAQs,
consultez le wiki Dolibarr:
%s ForAnswersSeeForum=Pour tout autre question/aide, vous pouvez utiliser le forum Dolibarr:
%s HelpCenterDesc1=Cette application, indépendante de Dolibarr, permet de vous aider à obtenir un service d'assistance sur Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Fonctionnalité non disponible sous systèmes Unix. T SubmitTranslation=Si la traduction de cette langue est incomplète ou si vous trouvez des erreurs, vous pouvez corriger cela en éditant les fichiers dans le répertoire langs/%s et soumettre votre changement sur www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traduction pour cette langue est incomplète ou si vous trouvez des erreurs, vous pouvez les corriger en éditant les fichiers dans le répertoire langs/%s et soumettre les modifications sur le forum dolibarr.org/forum ou pour les développeurs sur github.com/Dolibarr/dolibarr. ModuleSetup=Configuration du module -ModulesSetup=Configuration des modules +ModulesSetup=Configuration Modules/Application ModuleFamilyBase=Système ModuleFamilyCrm=Gestion de la relation client (GRC) ModuleFamilySrm=Gestion de la relation fournisseur (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Version actuelle de Dolibarr CallUpdatePage=Aller à la page de mise à jour de la structure et des données de la base : %s. LastStableVersion=Dernière version stable disponible LastActivationDate=Date de dernière activation +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Serveur de mise à jour hors ligne +WithCounter=Gérer un compteur GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent être utilisées:
{000000} correspond à un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.
{000000+000} idem que précédemment mais un décalage correspondant au nombre à droite du + est appliqué dès la première %s.
{000000@x} idem que précédemment mais le compteur est remis à zéro le xème mois de l'année (x entre 1 et 12, ou 0 pour utiliser le mois de début d'exercice fiscal défini dans votre configuration, ou 99 pour remise à zéro chaque mois). Si cette option est utilisée et x vaut 2 ou plus, alors la séquence {yy}{mm} ou {yyyy}{mm} est obligatoire.
{dd} jour (01 à 31).
{mm} mois (01 à 12).
{yy}, {yyyy} ou {y} année sur 2, 4 ou 1 chiffres.
-GenericMaskCodes2={cccc} le code client sur n lettres
{cccc000} le code client sur n lettres est suivi d'un compteur propre au client. Ce compteur propre au client est aussi remis à zéro en même temps que le compteur global.
{tttt} Le code du type de tiers sur n caractères (voir dictionnaires-types de tiers).
+GenericMaskCodes2={cccc} : code client sur n caractères
{cccc000} : code client sur n caractères suivi d'un compteur propre au client. Ce compteur propre au client est remis à zéro en même temps que le compteur général.
{tttt} code du type de tiers sur n caractères (Voir menu Accueil > Configuration > Dictionnaires > Types de tiers). Si vous ajoutez cet élément au masque de numérotation, le compteur sera différent pour chaque type de tiers.
GenericMaskCodes3=Tout autre caractère dans le masque sera laissé inchangé.
Les espaces ne sont pas permis.
GenericMaskCodes4a=Exemple sur la 99eme %s du tiers LaCompanie faite le 31/03/2007 :
GenericMaskCodes4b=Exemple sur un tiers créé le 31/03/2007 :
GenericMaskCodes4c=Exemple sur un produit/service créé le 31/03/2007 :
-GenericMaskCodes5=ABC{yy}{mm}-{000000} donnera ABC0703-000099
{0000+100@1}-XXX-{dd}-YYY donnera 0199-XXX-31-YYY +GenericMaskCodes5=ABC{yy}{mm}-{000000} donnera ABC0703-000099
{0000+100@1}-XXX-{dd}-YYY donnera 0199-XXX-31-YYY
IN{yy}{mm}-{0000}-{t} donnera IN0701-0099-A si la société a le type 'Responsable Inscripto' avec le code type qui est 'A_RI' GenericNumRefModelDesc=Renvoie un numéro personnalisable selon un masque à définir. ServerAvailableOnIPOrPort=Serveur disponible à l'adresse %s sur le port %s ServerNotAvailableOnIPOrPort=Serveur non disponible à l'adresse %s sur le port %s @@ -369,19 +375,21 @@ Int=Numérique entier Float=Décimal DateAndTime=Date et heure Unique=Unique -Boolean=Booléen (Case à cocher) +Boolean=Boolean (case à cocher unique) ExtrafieldPhone = Téléphone ExtrafieldPrice = Prix ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Liste de sélection ExtrafieldSelectList = Liste issue d'une table -ExtrafieldSeparator=Séparateur de champ +ExtrafieldSeparator=Séparateur (il ne s'agit pas d'un champ de saisie) ExtrafieldPassword=Mot de passe -ExtrafieldCheckBox=Case à cocher -ExtrafieldRadio=Bouton radio -ExtrafieldCheckBoxFromList= Liste à cocher issue d'une table +ExtrafieldRadio=Radio bouton (choix unique) +ExtrafieldCheckBox=Cases à cocher +ExtrafieldCheckBoxFromList=Cases à cocher issues d'une table ExtrafieldLink=Lier à un objet +ComputedFormula=Champ calculé +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
...

\nPour afficher une liste dépendant d'une autre liste attribut complémentaire:
1, valeur1|options_code_liste_parente:clé_parente
2,valeur2|option_Code_liste_parente:clé_parente

\nPour que la liste soit dépendante d'une autre liste:
1,valeur1|code_liste_parent:clef_parent
2,valeur2|code_liste_parent:clef_parent ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... @@ -422,6 +430,20 @@ Use3StepsApproval=Par défaut, les commandes fournisseurs nécessitent d'être c UseDoubleApproval=Activer l'approbation en trois étapes si le montant HT est supérieur à... WarningPHPMail=Attention : Certains serveurs de messagerie (Yahoo) ne permettent pas l'envoi d'e-mails depuis un autre serveur que le leur si l'adresse d'envoi utilisée est une adresse Yahoo (myemail@yahoo.fr, myemail@yahoo.com...) Votre configuration actuelle utilise le serveur de l'application pour l'envoi d'e-mails. Le serveur de certains destinataires (compatibles avec le protocole restrictif DMARC) demanderont aux serveurs Yahoo l'autorisation de recevoir les e-mails et Yahoo la refusera car le serveur n'est pas un serveur appartenant à Yahoo, aussi une partie de vos e-mails envoyés risquent de ne pas être reçus.\n
Si votre fournisseur d'e-mail (comme Yahoo) impose cette restriction, vous devrez modifier votre configuration et opter pour l'autre méthode d'envoi "SMTP server" en saisissant les identifiants SMTP fournis par votre FAI (à demander à votre fourniseur de messagerie) ClickToShowDescription=Cliquer pour afficher la description +DependsOn=Ce module a besoin du(des) module(s) +RequiredBy=Ce module est requis par le ou les module(s) +TheKeyIsTheNameOfHtmlField=C'est le nom du champ HTML. Cela nécessite d'avoir des connaissances techniques pour lire le contenu de la page HTML et récupérer le nom d'un champ. +PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous indiquez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples: +PageUrlForDefaultValuesCreate=
Pour créer un nouveau tiers, c'est %s +PageUrlForDefaultValuesList=
Pour la liste des tiers, c'est %s +EnableDefaultValues=Autoriser l'enregistrement par défaut de valeurs personnalisées +EnableOverwriteTranslation=Activer la réécriture de traduction +GoIntoTranslationMenuToChangeThis=Une traduction a été trouvée pour le code de cette valeur. Pour changer cette valeur, vous devez modifier le fichier depuis Accueil > Configuration > Traduction. +WarningSettingSortOrder=Attention, le réglage d'un tri par défaut peut entraîner une erreur technique lorsque le champ est inconnu dans le listing. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut. +Field=Champ +ProductDocumentTemplates=Modèle de document pour la fiche produit +FreeLegalTextOnExpenseReports=Mention complémentaire sur les notes de frais +WatermarkOnDraftExpenseReports=Filigrane sur les notes de frais # Modules Module0Name=Utilisateurs & groupes Module0Desc=Gestion des utilisateurs / employés et groupes @@ -444,7 +466,7 @@ Module30Desc=Gestion des factures et avoirs clients. Gestion des factures fourni Module40Name=Fournisseurs Module40Desc=Gestion des fournisseurs et des achats (commandes et factures) Module42Name=Journaux et traces -Module42Desc=Génération de journaux (fichiers, syslog, …) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Éditeurs Module49Desc=Gestion des éditeurs Module50Name=Produits @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Interface avec le calendrier Webcalendar Module500Name=Dépenses spéciales Module500Desc=Dépenses spéciales (taxes, charges fiscales ou sociales, dividendes) -Module510Name=Contrats et salaires des salariés -Module510Desc=Gestion des paiements des salaires des employés +Module510Name=Règlement des salaires +Module510Desc=Enregistrer et suivre le paiement des salaires des employés Module520Name=Emprunt Module520Desc=Gestion des emprunts Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacités de conversion GeoIP Maxmind Module3100Name=Skype Module3100Desc=Ajouter un bouton Skype dans les fiches utilisateurs / tiers / contacts / adhérents +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=GRH -Module4000Desc=Gestion des ressources humaines +Module4000Desc=Gestion des ressources humaines (gestion du département, contrats des employés et appréciations) Module5000Name=Multi-société Module5000Desc=Permet de gérer plusieurs sociétés Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Créer/modifier les produits Permission34=Supprimer les produits Permission36=Voir/gérer les produits cachés Permission38=Exporter les produits -Permission41=Consulter les projets et les tâches (projets publiques et projets dont je suis contact). Peut également entrer le temps consommé sur les tâches assignées (feuille de temps) +Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé par vous et votre supérieur hiérarchique sur les tâches auxquelles vous êtes assigné. Permission42=Créer/modifier les projets (projets partagés et projets pour lesquels je suis contact). Permet aussi de créer des tâches et d'assigner des utilisateurs aux projets et tâches. Permission44=Supprimer les projets et tâches (partagés ou dont je suis contact) Permission45=Exporter les projets @@ -695,7 +719,7 @@ PermissionAdvanced253=Créer/modifier les utilisateurs internes/externes et leur Permission254=Créer/modifier les utilisateurs externes seulement Permission255=Modifier le mot de passe des autres utilisateurs Permission256=Supprimer ou désactiver les autres utilisateurs -Permission262=Etendre l'accès à tous les utilisateurs (pas seulement ceux dont l'utilisateur est enregistré en tant que commercial).
Non effectif pour les utilisateurs externes (toujours limités à eux-mêmes sur les propositions commerciales, commandes, factures, contrats, etc).
Non effectif sur les projets (seules s'appliquent les permissions propres au module projets, et les règles de visibilité et d'assignation des tâches) +Permission262=Etendre l'accès à tous les tiers (pas seulement ceux dont l'utilisateur est enregistré en tant que commercial).
Non effectif pour les utilisateurs externes (toujours limités à eux-mêmes sur les propositions commerciales, commandes, factures, contrats, etc).
Non effectif sur les projets (seules s'appliquent les permissions propres au module projets, et les règles de visibilité et d'assignation des tâches) Permission271=Consulter le chiffre d'affaires Permission272=Consulter les factures Permission273=Émettre les factures @@ -844,12 +868,14 @@ DictionaryOrderMethods=Méthodes de commandes DictionarySource=Origines des propales/commandes DictionaryAccountancyCategory=Groupes de comptes comptables DictionaryAccountancysystem=Modèles de plan comptable +DictionaryAccountancyJournal=Journaux comptables DictionaryEMailTemplates=Modèles des courriels DictionaryUnits=Unités DictionaryProspectStatus=Statuts de prospection DictionaryHolidayTypes=Type de congés DictionaryOpportunityStatus=Statut d'opportunités pour les affaires/projets SetupSaved=Configuration sauvegardée +SetupNotSaved=Configuration non enregistrée BackToModuleList=Retour liste des modules BackToDictionaryList=Retour liste des dictionnaires VATManagement=Gestion TVA @@ -897,7 +923,7 @@ Offset=Décalage AlwaysActive=Toujours actif Upgrade=Mise à jour MenuUpgrade=Mise à jour / extension -AddExtensionThemeModuleOrOther=Déployer/Installer le module externe +AddExtensionThemeModuleOrOther=Déployer/Installer un module externe WebServer=Serveur Web DocumentRootServer=Répertoire racine des pages web DataRootServer=Répertoire racine des fichiers de données @@ -921,7 +947,7 @@ Host=Serveur DriverType=Type du pilote SummarySystem=Résumé des informations systèmes SummaryConst=Liste de tous les paramètres de configuration Dolibarr -MenuCompanySetup=Société/Institution +MenuCompanySetup=Société/Organisation DefaultMenuManager= Gestionnaire du menu standard DefaultMenuSmartphoneManager=Gestionnaire du menu smartphone Skin=Thème visuel @@ -931,11 +957,13 @@ DefaultMaxSizeList=Longueur maximale par défaut des listes DefaultMaxSizeShortList=Longueur maximale par défaut des listes courtes (e.g. dans la carte du client) MessageOfDay=Message du jour MessageLogin=Message page de connexion +LoginPage=Page de connexion +BackgroundImageLogin=Image de fond PermanentLeftSearchForm=Zone de recherche permanente du menu de gauche DefaultLanguage=Langue à utiliser par défaut (code langue) EnableMultilangInterface=Activer l'interface multi-langue EnableShowLogo=Afficher le logo dans le menu gauche -CompanyInfo=Informations sur la société/institution +CompanyInfo=Informations sur la société/organisation CompanyIds=Identifiants règlementaires CompanyName=Nom/Enseigne/Raison sociale CompanyAddress=Adresse @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolérance de retard avant alerte (en jours) sur cotis Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolérance de retard avant alerte (en jours) sur chèques à déposer Delays_MAIN_DELAY_EXPENSEREPORTS=Tolérance de retard avant alerte (en jours) sur les notes de frais à approuver SetupDescription1=L'espace configuration permet de réaliser le paramétrage afin de pouvoir commencer à utiliser l'application -SetupDescription2=Les deux étapes les plus importantes de la configuration sont les deux entrées du menu gauche : Configuration de la Société/institution et Configuration des Modules -SetupDescription3=Les données du menu Configuration -> Société/institution sont requises car les informations saisies sont utilisées dans la plupart des écrans, en affichage, ou pour modifier le comportement de Dolibarr (comme par exemple des fonctions qui dépendent de votre pays). -SetupDescription4=Les données du menu Configuration -> Modules sont indispensables car Dolibarr ERP/CRM est constitué d'un ensemble de modules tous plus ou moins indépendants. C'est après avoir activé les modules qui vous intéressent que vous verrez apparaître les fonctionnalités dans les menus. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Les autres entrées de configuration gèrent des paramètres facultatifs. LogEvents=Événements d'audit de sécurité Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=OS du navigateur ListOfSecurityEvents=Liste des événements de sécurité Dolibarr SecurityEventsPurged=Evenement de sécurité purgés LogEventDesc=Vous pouvez activer ici, la journalisation des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu Outils systèmes - Audit. Attention, cette fonctionnalité peut générer un gros volume de données. -AreaForAdminOnly=Ces fonctions ne sont accessibles qu'aux administrateurs. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement. SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace. CompanyFundationDesc=Éditez sur cette page toutes les informations connues de la société ou de l'association que vous souhaitez gérer (Pour cela, cliquez sur les boutons "Modifier" ou "Sauvegarder" en bas de page) @@ -1079,7 +1107,8 @@ CurrentTranslationString=Chaîne de traduction actuelle WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est nécessaire au moins pour la clé ou la valeur de traduction NewTranslationStringToShow=Nouvelle traduction à afficher OriginalValueWas=La traduction d'origine est écrasée. La valeur initiale était:

%s -TotalNumberOfActivatedModules=Nombre total de modules/fonctionnalités activés: %s / %s +TransKeyWithoutOriginalValue=Vous avez forcé une nouvelle traduction pour la clé de traduction '%s' qui n'existe dans aucun fichier de langue +TotalNumberOfActivatedModules=Modules activés : %s/%s YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP YesInSummer=Oui en été @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Règles sur les Identifiants professionnels MustBeUnique=Doit être unique ? MustBeMandatory=Obligatoire pour créer des tiers ? MustBeInvoiceMandatory=Obligatoire pour valider des factures ? +TechnicalServicesProvided=Services techniques fournis ##### Webcal setup ##### WebCalUrlForVCalExport=Un lien d'exportation du calendrier au format %s sera disponible à l'url :
%s ##### Invoices ##### BillsSetup=Configuration du module Factures BillsNumberingModule=Modèle de numérotation des factures et avoirs BillsPDFModules=Modèle de document de factures +PaymentsPDFModules=Modèle de document pour les règlements CreditNote=Avoir CreditNotes=Avoirs ForceInvoiceDate=Forcer la date de facturation à la date de validation @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Fichiers de type %s non mis en cache par le serveur HTTP FilesOfTypeCompressed=Fichiers de type %s compressé par le serveur HTTP FilesOfTypeNotCompressed=Fichiers de type %s non compressé par le serveur HTTP CacheByServer=Cache par le serveur +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache par le navigateur CompressionOfResources=Compression des réponses HTTP +CompressionOfResourcesDesc=Par exemple, en utilisant la directive Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Une détection automatique n'est pas possible avec le navigateur courant +DefaultValuesDesc=Vous pouvez définir/forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et/ou les filtres par défaut ou ordre de tri des listes. +DefaultCreateForm=Valeurs par défaut pour les nouveaux objets +DefaultSearchFilters=Filtres par défaut +DefaultSortOrder=Tri des commandes par défaut +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Configuration du module Produits ServiceSetup=Configuration du module Services @@ -1339,7 +1377,7 @@ ViewProductDescInFormAbility=Visualisation des descriptions produits dans les fo MergePropalProductCard=Ajoute dans l'onglet Fichiers joints des produits/services, une option pour fusionner le document PDF du produit au PDF des propositions Azur si le produit/services est inclut dans la proposition. ViewProductDescInThirdpartyLanguageAbility=Visualisation des descriptions de produits dans la langue du tiers UseSearchToSelectProductTooltip=Si vous avez un nombre important de produits (>100 000), vous pourrez améliorer les performances en positionnant la constante PRODUCT_DONOTSEARCH_ANYWHERE à 1 dans Configuration->Divers. La recherche sera alors limité au début des chaines. -UseSearchToSelectProduct=Attendre que vous ayez appuyez sur une touche avant de charger le contenu de la liste déroulante des produits (Cela peut augmenter les performances si vous avez un grand nombre de contacts) +UseSearchToSelectProduct=Attendre que vous ayez appuyé sur une touche avant de charger le contenu de la liste déroulante des produits (Cela peut augmenter les performances si vous avez un grand nombre de contacts) SetDefaultBarcodeTypeProducts=Type de code-barre utilisé par défaut pour les produits SetDefaultBarcodeTypeThirdParties=Type de code-barre utilisé par défaut pour les tiers UseUnits=Définir une unité de mesure pour la quantité lors de l'édition de lignes de commande, proposition ou facture @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Date de facture utilisée Buy=Achat Sell=Vente InvoiceDateUsed=Date de facture utilisée -YourCompanyDoesNotUseVAT=Votre institution est configurée comme non assujettie à la TVA (Accueil - Configuration - Société/Institution), aussi il n'y a aucune option sur la gestion TVA à paramétrer. +YourCompanyDoesNotUseVAT=Votre société/institution est définie comme non assujettie à la TVA (voir Accueil > Configuration > Société/Institution), aussi il n'y a pas d'option paramétrage de la TVA. AccountancyCode=Code comptable AccountancyCodeSell=Code comptable vente AccountancyCodeBuy=Code comptable achat @@ -1482,7 +1520,7 @@ AGENDA_NOTIFICATION_SOUND=Activer les notifications sonores. AGENDA_SHOW_LINKED_OBJECT=Afficher l'objet lié dans la vue agenda ##### Clicktodial ##### ClickToDialSetup=Configuration du module Click To Dial -ClickToDialUrlDesc=URL appelée lors d'un clic sur le pictogramme téléphone. Dans l'URL, vous pouvez utiliser les balises
__PHONETO__ qui sera remplacée par le téléphone de l'appelé
__PHONEFROM__ qui sera remplacée par le téléphone de l'appelant (le votre, défini sur votre fiche utilisateur)
__LOGIN__ qui sera remplacée par votre identifiant clicktodial (défini sur votre fiche utilisateur)
__PASS__ qui sera remplacée par votre mot de passe clicktodial (défini sur votre fiche utilisateur). +ClickToDialUrlDesc=URL appelée au clic sur l'icône téléphone. Dans l'URL, vous pouvez utiliser les tags
__PHONETO__ qui sera remplacée par le numéro de téléphone de la personne à appeler,
__PHONEFROM__ qui sera remplacée par le numéro de l'appelant (vous),
__LOGIN__ qui sera remplacée par l'identifiant d'accès de l'utilisateur à l'application d'appel (à définir sur la fiche utilisateur) et
__PASS__ qui sera remplacée par le mot de passe d'accès de l'utilisateur à l'application d'appel (également à définir sur la fiche utilisateur) ClickToDialDesc=Ce module permet de rendre un numéro de téléphone cliquable. Un clique sur cet icone fera votre téléphone appeler le numéro cliqué. Ce module peut être utilisé pour appeler un système de centre d'appel à partir de Dolibarr. ClickToDialUseTelLink=Utiliser un lien «Tel.» sur les numéros de téléphone ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur, et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel:". Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel), vous devez définir ce "Non" et remplissez champ suivant. @@ -1511,7 +1549,7 @@ EndPointIs=Les clients SOAP doivent envoyer leur requêtes vers le point de sort ApiSetup=Configuration du module API REST ApiDesc=En activant ce module, Dolibarr devient aussi serveur de services API de type REST ApiProductionMode=Activer le mode « production » (ceci activera l'utilisation du cache pour la gestion des services) -ApiExporerIs=Vous pouvez accéder aux API par l'URL +ApiExporerIs=Vous pouvez explorer et tester les API par l'URL OnlyActiveElementsAreExposed=Seuls les éléments en rapport avec un module actif sont présentés. ApiKey=Clé pour l'API WarningAPIExplorerDisabled=L'explorateur d'API est désactivé. L'explorateur d'API n'est pas nécessaire pour le fonctionnement des API. il s'agit d'un outil pour les développeurs pour en tester les services. Si cet outil vous est nécessaire, activez le module API REST dans la liste des modules. @@ -1524,7 +1562,6 @@ BankOrderGlobalDesc=Ordre d'affichage général BankOrderES=Espagnol BankOrderESDesc=Ordre d'affichage Espagnol ChequeReceiptsNumberingModule=Module de numérotation des bordereaux de remises de chèques - ##### Multicompany ##### MultiCompanySetup=Configuration du module Multi-société ##### Suppliers ##### @@ -1583,12 +1620,12 @@ BackupDumpWizard=Assistant de génération d'un fichier de sauvegarde de la base SomethingMakeInstallFromWebNotPossible=L'installation de module externe est impossible depuis l'interface web pour la raison suivante : SomethingMakeInstallFromWebNotPossible2=Pour cette raison, le processus de mise à jour décrit ici est uniquement une série de manipulations que seul un utilisateur ayant des droits privilégiés peut faire InstallModuleFromWebHasBeenDisabledByFile=L'installation de module externe depuis l'application a été désactivé par l'administrator. Vous devez lui demander de supprimer le fichier %s pour permettre cette fonctionnalité. -ConfFileMuseContainCustom=L'installation d'un module externe depuis l'application nécessite de sauver les fichiers du module dans le répertoire %s. Pour que ce répertoire soit reconnu par Dolibarr, il est nécessaire de paramétrer le fichier de configuration conf/conf.php pour lui ajouter les 2 lignes suivantes :
\n$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de la table lorsque la souris passe au-dessus HighlightLinesColor=Mettez en surbrillance les lignes de la table lorsque la souris passe au-dessus (garder vide pour ne pas avoir de surbrillance) TextTitleColor=Couleur du titre des pages LinkColor=Couleur des liens -PressF5AfterChangingThis=Appuyez sur la touche F5 ou videz le cache de votre navigateur après avoir modifié cette valeur pour que le changement soit effectif +PressF5AfterChangingThis=Appuyez sur la touche CTRL+F5 ou videz le cache de votre navigateur après avoir modifié cette valeur pour que le changement soit effectif NotSupportedByAllThemes=Fonctionne avec les thèmes natifs. Non garanti avec d'autres BackgroundColor=Couleur de fond TopMenuBackgroundColor=Couleur de fond pour le menu horizontal @@ -1601,7 +1638,7 @@ MinimumNoticePeriod=Période de préavis minimum (Votre demande de congé doit NbAddedAutomatically=Nombre de jours ajoutés aux compteurs des utilisateurs (automatiquement) chaque mois EnterAnyCode=Ce champ contient une référence pour identifier le champ. Entrez une valeur de votre choix, mais sans caractères spéciaux. UnicodeCurrency=Saisissez ici entre accolades, la liste du numéro des octets qui représentent le symbole de la monnaie. Pour exemple: pour $, entrez [36] - pour le Real Brésilien R$ [82,36] - pour l'euro €, entrez [8364] -ColorFormat=La couleur RVB est au format HEX, ex: FF0000 +ColorFormat=La couleur RVB au format HEX est, par exemple: FF0000 PositionIntoComboList=Position de la ligne dans des listes déroulantes SellTaxRate=Taux de TVA RecuperableOnly=Oui pour une TVA "Perçue Non Récupérable" dédiée à certains pays comme la France. Gardez la valeur à "Non" dans tous les autres cas. @@ -1660,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=Si vous utilisez un module multi-société, avec ModuleEnabledAdminMustCheckRights=Le module a été activé. Les permissions pour le(s) module(s) activé(s) ont été donnés aux utilisateurs admin uniquement. Vous devrez peut-être accorder des autorisations aux autres utilisateurs ou groupes manuellement si nécessaire. UserHasNoPermissions=Cet utilisateur n'a pas de permission définie TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "Nb de jours")
Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un «Offset» optionnel en jours)
Utilisez "Coutant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois qui suit (N est stocké dans le champ "Nb de jours") +BaseCurrency=Devise par défaut de votre société/institution (Voir Accueil > configuration > Société/Institution) +WarningNoteModuleInvoiceForFrenchLaw=Ce module %s permet d'être conforme aux lois françaises (Loi Finance 2016 par exemple). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Ressource UseSearchToSelectResource=Utilisez un champ avec auto-complétion pour choisir les ressources (plutôt qu'une liste déroulante). diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index 10a2f2075ec..fa0159c2aa0 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -17,7 +17,7 @@ InvoiceStandardAsk=Facture standard InvoiceStandardDesc=Ce type de facture est la facture traditionnelle. On l'appelle aussi facture de doit (du verbe devoir). InvoiceDeposit=Facture d'acompte InvoiceDepositAsk=Facture d'acompte -InvoiceDepositDesc=La facture d'acompte est le type de facture qui fait suite à réception d'un acompte, s'il n'est pas encore possible de saisir le paiement sur une facture définitive. +InvoiceDepositDesc=Ce type de facture fait suite à réception d'un acompte, s'il n'est pas encore possible de saisir le paiement sur une facture définitive. InvoiceProForma=Facture proforma InvoiceProFormaAsk=Facture proforma InvoiceProFormaDesc=La facture proforma est une image de facture définitive mais qui n'a aucune valeur comptable. @@ -115,7 +115,7 @@ BillStatus=État de la facture StatusOfGeneratedInvoices=Statut des factures générées BillStatusDraft=Brouillon (à valider) BillStatusPaid=Payée -BillStatusPaidBackOrConverted=Remboursé ou converti en réduction +BillStatusPaidBackOrConverted=Facture d'avoir remboursée ou convertie en réduction BillStatusConverted=Payée BillStatusCanceled=Abandonnée BillStatusValidated=Validée (à payer) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Payée (partiellement) BillShortStatusDraft=Brouillon BillShortStatusPaid=Payée BillShortStatusPaidBackOrConverted=Remboursé ou converti -BillShortStatusConverted=Traité +BillShortStatusConverted=Payé BillShortStatusCanceled=Abandonnée BillShortStatusValidated=Validée BillShortStatusStarted=Commencée @@ -273,7 +273,7 @@ CreditNotes=Avoirs Deposit=Acompte Deposits=Acomptes DiscountFromCreditNote=Remise issue de l'avoir %s -DiscountFromDeposit=Paiements issus de l'acompte %s +DiscountFromDeposit=Acomptes issus de la facture %s DiscountFromExcessReceived=Trop-perçu sur la facture %s AbsoluteDiscountUse=Ce type de crédit ne peut s'utiliser que sur une facture non validée CreditNoteDepositUse=La facture doit être validée pour pouvoir utiliser ce type de crédit @@ -357,13 +357,13 @@ PaymentConditionPT_ORDER=À réception de commande PaymentConditionShortPT_5050=50/50 PaymentConditionPT_5050=Règlement 50%% d'avance, 50%% à la livraison PaymentConditionShort10D=10 jours -PaymentCondition10D=Règlement à 10 jours +PaymentCondition10D=10 jours PaymentConditionShort10DENDMONTH=10 jours fin de mois -PaymentCondition10DENDMONTH=Règlement à 10 jours fin de mois +PaymentCondition10DENDMONTH=Sous 10 jours suivant la fin du mois PaymentConditionShort14D=14 jours -PaymentCondition14D=Règlement à 14 jours +PaymentCondition14D=14 jours PaymentConditionShort14DENDMONTH=14 jours fin de mois -PaymentCondition14DENDMONTH=Règlement à 14 jours fin de mois +PaymentCondition14DENDMONTH=Sous 14 jours suivant la fin du mois FixAmount=Montant Fixe VarAmount=Montant variable (%% tot.) # PaymentType @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Suppression impossible quand il existe au mo ExpectedToPay=Paiement attendu CantRemoveConciliatedPayment=Suppression d'un paiement rapproché impossible PayedByThisPayment=Règlé par ce paiement -ClosePaidInvoicesAutomatically=Classer "Payées" les factures standards ou de remplacements ayant un reste à payer nul +ClosePaidInvoicesAutomatically=Classifiez "Payée" toutes les factures standard, d'acompte ou de remplacement entièrement payées. ClosePaidCreditNotesAutomatically=Classer automatiquement à "Payé" les factures avoirs entièrement remboursées. ClosePaidContributionsAutomatically=Classer "payée" toutes les dépenses spéciales réglées en totalité. AllCompletelyPayedInvoiceWillBeClosed=Toutes les factures avec un reste à payer nul seront automatiquement fermées au statut "Payé". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Pour créer une facture modèle, vous deve PDFCrabeDescription=Modèle de facture PDF complet (modèle recommandé par défaut) PDFCrevetteDescription=Modèle de facture PDF Crevette (modèle complet pour les factures de situation) TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et factures de remplacement, %syymm-nnnn pour les avoirs et %syymm-nnnn pour les acomptes où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0 -MarsNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les acomptes et %syymm-nnnn pour les avoirs où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0 +MarsNumRefModelDesc1=Renvoie une numérotation au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures d'acompte et %syymm-nnnn pour les factures d'avoir où yy est l'année, mm, le mois et nnnn un compteur sans rupture ni remise à zéro. TerreNumRefModelError=Une facture commençant par $syymm existe déjà et est incompatible avec cet modèle de numérotation. Supprimez-la ou renommez-la pour activer ce module. -CactusNumRefModelDesc1=Renvoie une référence avec le format %syymm-nnnn pour les factures standards, %symm-nnnn pour les avoirs et %syymm-nnnn pour les factures d'accomptes où yy est l'année, mm est le mois et nnnn est une séquence sans rupture et sans retour à 0 +CactusNumRefModelDesc1=Renvoie un numéro au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures d'avoir et %syymm-nnnn pour les factures d'acompte où yy est l'année, mm le mois et nnnn un compteur sans rupture ni remise à 0. ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsable suivi facture client TypeContact_facture_external_BILLING=Contact client facturation @@ -504,5 +504,3 @@ DeleteRepeatableInvoice=Supprimer facture modèle ConfirmDeleteRepeatableInvoice=Est-ce votre sûr de vouloir supprimer la facture modèle ? CreateOneBillByThird=Créer une facture par tiers (sinon, une facture par commande) BillCreated=%s facture(s) créée(s) -WithdrawRequest=Demande de prélèvement -BadPaymentMethod=Mauvais mode de paiement diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 14f2e9ffd76..4fc3580fa26 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nouveau particulier NewCompany=Nouvelle société (prospect, client, fournisseur) NewThirdParty=Nouveau tiers (prospect, client, fournisseur) CreateDolibarrThirdPartySupplier=Créer un Tiers (fournisseur) -CreateThirdPartyOnly=Créer le tiers +CreateThirdPartyOnly=Créer tiers CreateThirdPartyAndContact=Créer un tiers + un contact/adresse fils ProspectionArea=Espace prospection IdThirdParty=Identifiant tiers @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clients ThirdPartyCustomersWithIdProf12=Clients avec %s ou %s ThirdPartySuppliers=Fournisseurs ThirdPartyType=Type du tiers -Company/Fundation=Société/Association Individual=Individu privé ToCreateContactWithSameName=Crée automatiquement un contact/adresse, sous le tiers, avec la même information que le tiers. Dans la plupart des cas, même si votre tiers est une personne physique, la création d'un tiers seul suffit. ParentCompany=Maison mère @@ -78,10 +77,10 @@ VATIsNotUsed=Non assujetti à la TVA CopyAddressFromSoc=Remplir avec l'adresse du tiers ThirdpartyNotCustomerNotSupplierSoNoRef=Ce tiers n'est ni client ni fournisseur. il n'y a pas d'objet référent. PaymentBankAccount=Compte bancaire paiements -OverAllProposals=Total des propositions commerciales -OverAllOrders=Total des commandes -OverAllInvoices=Total des factures -OverAllSupplierProposals=Total des propositions fournisseurs +OverAllProposals=Propositions commerciales +OverAllOrders=Commandes +OverAllInvoices=Factures +OverAllSupplierProposals=Demandes de prix ##### Local Taxes ##### LocalTax1IsUsed=Assujetti à la deuxième taxe LocalTax1IsUsedES= Assujetti à RE @@ -237,6 +236,12 @@ ProfId3TN=Id. prof. 3 (Code en douane) ProfId4TN=Id. prof. 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Id prof +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Id. prof.1 (OGRN) ProfId2RU=Id. prof.2 (INN) ProfId3RU=Id. prof.3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Remise relative CustomerAbsoluteDiscountShort=Remise fixe CompanyHasRelativeDiscount=Ce client a une remise par défaut de %s%% CompanyHasNoRelativeDiscount=Ce client n'a pas de remise relative par défaut -CompanyHasAbsoluteDiscount=Ce client a %s %s de lignes de déduction disponibles (remises, acomptes…) +CompanyHasAbsoluteDiscount=Ce client dispose de remises disponibles (avoirs ou acomptes) pour un montant de %s %s CompanyHasCreditNote=Ce client a %s %s d'avoirs disponibles CompanyHasNoAbsoluteDiscount=Ce client n'a pas ou plus de remise fixe disponible CustomerAbsoluteDiscountAllUsers=Remises fixes en cours (accordées par tout utilisateur) @@ -390,7 +395,7 @@ ListCustomersShort=Liste clients ThirdPartiesArea=Espace tiers et contacts LastModifiedThirdParties=Les %s derniers tiers modifiés UniqueThirdParties=Total de tiers uniques -InActivity=En activité +InActivity=Ouvert ActivityCeased=Clos ThirdPartyIsClosed=Le tiers est clôturé ProductsIntoElements=Liste des produits/services dans %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Code libre sans vérification. Peut être modifié à tou ManagingDirectors=Nom du(des) gestionnaire(s) (PDG, directeur, président...) MergeOriginThirdparty=Tiers en doublon (le tiers que vous voulez supprimer) MergeThirdparties=Fursion de tiers -ConfirmMergeThirdparties=Etes-vous sûr que vous voulez fusionner ce tiers dans l'actuel ? Tous les objets liés (factures, commandes, ...) seront déplacés sur le tiers en cours de sorte que vous serez en mesure de supprimer le doublon. +ConfirmMergeThirdparties=Êtes-vous sur de vouloir fusionner ce tiers avec le tiers courant ? Tous ses objets liés (factures, commandes, ...) seront déplacés vers le tiers courant avant sa suppression. ThirdpartiesMergeSuccess=Les tiers ont été fusionnés SaleRepresentativeLogin=Login du commercial SaleRepresentativeFirstname=Prénom du commercial diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index b72af130b92..590b468465f 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Les montants obtenus sont ceux calculés Param=Paramétrage RemainingAmountPayment=Montant restant du paiement : Account=Compte -Accountparent=Racine du compte -Accountsparent=Racine des comptes +Accountparent=Compte père +Accountsparent=Comptes père Income=Recettes Outcome=Dépenses ReportInOut=Résultat / Exercice @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes et charges MenuSocialContributions=Charges fiscales/sociales MenuNewSocialContribution=Nouvelle taxe sociale NewSocialContribution=Nouvelle charge fiscale/sociale +AddSocialContribution=Ajouter taxe sociale/fiscale ContributionsToPay=Charges fiscales/sociales à payer AccountancyTreasuryArea=Espace comptabilité/trésorerie NewPayment=Nouveau règlement @@ -189,8 +190,10 @@ AccountancyJournal=Code journal comptabilité ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour l'encaissement de TVA - TVA sur les ventes (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA -ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable par défaut des tiers clients (utilisé si non défini au niveau de la fiche Tiers) -ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable par défaut des tiers fournisseurs (utilisé si non défini au niveau de la fiche Tiers) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Cloner une charge sociale/fiscale ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale CloneTaxForNextMonth=Cloner pour le mois suivant @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Charges fiscales/sociales ImportDataset_tax_vat=Paiements de TVA ErrorBankAccountNotFound=Erreur: compte banque non trouvé FiscalPeriod=Période fiscale +ListSocialContributionAssociatedProject=Liste des charges sociales liées au projet diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang index caeab63a7cb..355f1c2556f 100644 --- a/htdocs/langs/fr_FR/cron.lang +++ b/htdocs/langs/fr_FR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Effacer les travaux planifiés CronConfirmDelete=Êtes-vous sûr de vouloir supprimer ces travaux planifiées? CronExecute=Lancer la tache planifiée CronConfirmExecute=Etes-vous sûr que vous voulez exécuter ces travaux planifiées maintenant? -CronInfo=Le module des travaux planifiés permet d'exécuter des opérations qui ont été programmées +CronInfo=Les travaux planifiés permettent de planifier des tâches à exécuter automatiquement. Les travaux planifiés peuvent aussi être lancés manuellement. CronTask=Travail planifié CronNone=Aucun(e) CronDtStart=Pas avant @@ -57,23 +57,23 @@ CronStatusActiveBtn=Activer CronStatusInactiveBtn=Désactiver CronTaskInactive=Cette tâche est désactivée CronId=Id -CronClassFile=Classes (nom de fichier) -CronModuleHelp=Nom du répertoire du module Dolibarr (fonctionne aussi avec les modules externes de Dolibarr).
Par exemple pour appeler la méthode fetch de l'objet Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de module est product -CronClassFileHelp=Le nom du fichier à charger.
Par exemple pour appeler la méthode fetch de l'objet Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de du nom de fichier de classe est product.class.php -CronObjectHelp=Le nom de l'objet à charger.
Par exemple pour appeler la méthode fetch de l'objet Product de Dolibarr /htdocs/product/class/product.class.php, la valeur du nom de l'objet est Product -CronMethodHelp=La méthode à lancer.
Par exemple pour appeler la méthode fetch de l'objet Product de Dolibarr /htdocs/product/class/product.class.php, la valeur de la méthode est fetch -CronArgsHelp=Les arguments de la méthode.
Par exemple pour appeler la méthode fetch de l'objet Product de Dolibarr /htdocs/product/class/product.class.php, la valeur des arguments pourrait être 0, RefProduit +CronClassFile=Filename with class +CronModuleHelp=Nom du dossier du module dans Dolibarr (fonctionne aussi avec les modules externes).
Par exemple, pour appeler la méthode d'appel des produits Dolibarr /htdocs/product/class/product.class.php, la valeur du module est product. +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=La commande système a exécuter. CronCreateJob=Créer un nouveau travail planifié CronFrom=A partir du # Info # Common CronType=Type de travail planifié -CronType_method=Méthode d'appel d'une classe Dolibarr +CronType_method=Appelle d'une méthode d'une classe Dolibarr CronType_command=Commande terminal CronCannotLoadClass=Impossible de charger la classe %s ou l'objet %s UseMenuModuleToolsToAddCronJobs=Aller à la page "Accueil - Outils administration - Travaux planifiées" pour voir la listes des travaux programmées et les modifier. JobDisabled=Travail désactivé MakeLocalDatabaseDumpShort=Sauvegarde locale de base MakeLocalDatabaseDump=Créer une sauvegarde locale de la base -WarningCronDelayed=Attention, à des fins de performance, quelle que soit la prochaine date d'exécution des travaux actifs, vos travaux peuvent être retardée jusqu'à un maximum de %s heures avant d'être exécuter. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 09b2f9a16c1..13c813f963a 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Echec de la création du fichier '%s'. ErrorFailToRenameDir=Echec du renommage du répertoire '%s' en '%s'. ErrorFailToCreateDir=Echec de création du répertoire '%s'. ErrorFailToDeleteDir=Echec de la suppression du répertoire '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type. ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que le mode de règlement de type espèce. ErrorFromToAccountsMustDiffers=Les comptes source et destination doivent être différents. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s ErrorFoundBadEmailInFile=Syntaxe d'email incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s) ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr. ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web ait bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre safe_mode a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. ErrorNoMailDefinedForThisUser=Email non défini pour cet utilisateur ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifiez dans configuration - affichage. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas ê ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web %s n'a pas les permissions pour cela ErrorNoActivatedBarcode=Aucun type de code-barres activé ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive -ErrNoZipEngine=Pas de moteur pour décompresser le fichier %s dans ce PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Le fichier doit être un package Dolibarr ErrorModuleFileRequired=Vous devez sélectionner un fichier package de module Dolibarr ErrorPhpCurlNotInstalled=L'extension PHP CURL n'est pas installée, ceci est indispensable pour dialoguer avec Paypal. @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Pas de variable globale ErrorFieldMustBeANumeric=Le champ %s doit être un numérique ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité/affaire. Aussi, vous devez également entrer son statut +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu) ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications ErrorWarehouseRequiredIntoShipmentLine=L'entrepôt est requis sur la ligne de l'expédition @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Le stock du produit %s est insuffisa ErrorStockIsNotEnoughToAddProductOnProposal=Le stock du produit %s est insuffisant pour permettre un ajout dans une nouvelle proposition commerciale. ErrorFailedToLoadLoginFileForMode=Impossible d'obtenir la clé de connexion pour le mode « %s ». ErrorModuleNotFound=Fichier du module non trouvé. -ErrorFieldAccountNotDefinedForBankLine=Valeur du compte comptable non défini pour la ligne de bank source %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Erreur, le nom de relevé bancaire doit suivre la règle de syntaxe suivante %s ErrorPhpMailDelivery=Assurez-vous que vous n'utilisez pas un nombre de destinataires trop élevé et que le contenu de votre message n'est pas similaire à du Spam. Demandez aussi à votre administrateur de vérifier le pare-feu et les journaux serveur pour une information plus complète. ErrorUserNotAssignedToTask=L'utilisateur doit être assigné à une tâche pour qu'il puisse entrer le temps consommé. ErrorTaskAlreadyAssigned=Tâche déjà assignée à l'utilisateur ErrorModuleFileSeemsToHaveAWrongFormat=Le package du module semble avoir un mauvais format. ErrorFilenameDosNotMatchDolibarrPackageRules=Le nom du package du module (%s) ne correspond pas à la syntaxe attendue: %s +ErrorDuplicateTrigger=Erreur, doublon du trigger nommé %s. Déjà chargé à partir de %s. +ErrorNoWarehouseDefined=Erreur, aucun entrepôts défini. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=La date de paiement (%s) est inférieure WarningTooManyDataPleaseUseMoreFilters=Trop de données (plus de %s lignes). Utilisez davantage de filtres ou régler la constante %s pour augmenter la limite à une valeur plus élevée. WarningSomeLinesWithNullHourlyRate=Des temps ont été enregistrés par des utilisateurs lorsque leur taux horaire n'était défini. Une valeur de 0 %s a été utilisée, mais cela peut entraîner une mauvaise évaluation du temps passé. WarningYourLoginWasModifiedPleaseLogin=Votre identifiant a été modifié. Par sécurité, vous devrez vous identifiez avec votre nouvel identifiant avant l'action suivante. +WarningAnEntryAlreadyExistForTransKey=Une donnée identique existe déjà pour la traduction du code dans cette langue diff --git a/htdocs/langs/fr_FR/exports.lang b/htdocs/langs/fr_FR/exports.lang index da785522df5..660ae8276e1 100644 --- a/htdocs/langs/fr_FR/exports.lang +++ b/htdocs/langs/fr_FR/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=AAAA, AAAAMM, AAAAMMJJ: filtre pour une année/mois/jour
AAA ExportNumericFilter=NNNNN filtre une seule valeur
NNNNN+NNNNN filtre une plage de valeurs
< NNNNN filtre les valeurs inférieures
> NNNNN filtre les valeurs supérieures ImportFromLine=Début d'import à la ligne numéro EndAtLineNb=Fin à la ligne numéro +ImportFromToLine=Importer les lignes à la position (de - à) SetThisValueTo2ToExcludeFirstLine=Par exemple, positionnez cette valeur à 3 pour exclure les 2 premières lignes KeepEmptyToGoToEndOfFile=Laissez ce champ vide pour aller jusqu'à la fin du fichier +SelectPrimaryColumnsForUpdateAttempt=Sélectionnez la ou les colonne(s) à utiliser comme clé primaire pour la tentative de mise à jour +UpdateNotYetSupportedForThisImport=La mise à jour n'est pas pris en charge pour ce type d'importation (seulement les ajouts) +NoUpdateAttempt=Aucune tentative de mise à jour n'a été effectuée, seulement un insertion. +ImportDataset_user_1=Utilisateurs (employés ou non) et attributs +ComputedField=Champ calculé ## filters SelectFilterFields=Si vous voulez filtrer sur certaines valeurs, saisissez ces valeurs. FilteredFields=Champs filtrés diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index 1f0b2340feb..e37d708fbbe 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Paramètre %s non défini ErrorUnknown=Erreur inconnue ErrorSQL=Erreur SQL ErrorLogoFileNotFound=Le fichier logo '%s' n'a pas été trouvé -ErrorGoToGlobalSetup=Allez dans la Configuration 'Société/Institution' pour corriger +ErrorGoToGlobalSetup=Allez dans la Configuration 'Société/Organisation' pour corriger ErrorGoToModuleSetup=Allez dans la Configuration du module pour corriger ErrorFailedToSendMail=Échec de l'envoi de l'email (émetteur=%s, destinataire=%s) ErrorFileNotUploaded=Le fichier n'a pas été transféré. Vérifiez que sa taille ne dépasse pas le maxium autorisé, que l'espace disque est disponible et qu'un fichier du même nom n'existe pas déjà. @@ -153,6 +153,7 @@ Edit=Éditer Validate=Valider ValidateAndApprove=Valider et Approuver ToValidate=À valider +NotValidated=Non validé Save=Enregistrer SaveAs=Enregistrer sous TestConnection=Tester la connexion @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Pas de fonctionnalité de déconnexion applicative a Connection=Connexion Setup=Configuration Alert=Alerte +MenuWarnings=Alertes Previous=Précédent Next=Suivant Cards=Fiches @@ -292,7 +294,7 @@ HourShort=H MinuteShort=mn Rate=Taux CurrencyRate=Taux de change de la devise -UseLocalTax=Inclure taxe +UseLocalTax=Utiliser taxe Bytes=Octets KiloBytes=Kilooctets MegaBytes=Mégaoctets @@ -308,6 +310,7 @@ Copy=Copier Paste=Coller Default=Défaut DefaultValue=Valeur par défaut +DefaultValues=Valeurs par défaut Price=Prix UnitPrice=Prix unitaire UnitPriceHT=Prix unitaire HT @@ -363,7 +366,8 @@ VATRate=Taux TVA Average=Moyenne Sum=Somme Delta=Écart -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=Liste FullList=Liste complète @@ -387,7 +391,7 @@ ActionRunningNotStarted=A réaliser ActionRunningShort=En cours ActionDoneShort=Terminé ActionUncomplete=Incomplets -CompanyFoundation=Société ou institution +CompanyFoundation=Société/Organisation ContactsForCompany=Contacts de ce tiers ContactsAddressesForCompany=Contacts/adresses de ce tiers AddressesForCompany=Adresses de ce tiers @@ -405,8 +409,9 @@ Generate=Générer Duration=Durée TotalDuration=Durée totale Summary=Résumé -DolibarrStateBoard=Statistiques -DolibarrWorkBoard=Tableau de bord de travail +DolibarrStateBoard=Statistiques de la base +DolibarrWorkBoard=Tableau de bord des éléments ouverts +NoOpenedElementToProcess=Aucun élément ouvert à traiter Available=Disponible NotYetAvailable=Pas encore disponible NotAvailable=Non disponible @@ -453,6 +458,7 @@ NextStep=Étape suivante Datas=Données None=Aucun NoneF=Aucune +NoneOrSeveral=Aucun ou plusieurs Late=Retard LateDesc=Le délai qui définit si un enregistrement est en retard ou non dépend de votre configuration. Demandez à votre administrateur pour changer ce délai depuis Accueil - Configuration - Alertes Photo=Photo @@ -606,7 +612,8 @@ PartialWoman=Partielle TotalWoman=Totale NeverReceived=Jamais reçu Canceled=Annulé -YouCanChangeValuesForThisListFromDictionarySetup=Vous pouvez changer ces valeurs depuis le menu accueil - configuration - dictionnaires +YouCanChangeValuesForThisListFromDictionarySetup=Les valeurs de cette liste sont modifiables depuis le menu Accueil > Configuration > Dictionnaires +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Vous pouvez définir la valeur par défaut utilisée lors de la création d'un nouvel enregistrement dans la configuration du module Color=Couleur Documents=Fichiers joints @@ -642,6 +649,7 @@ FreeLineOfType=Ligne libre de type CloneMainAttributes=Cloner l'objet avec ces attributs principaux PDFMerge=Fusion PDF Merge=Fusion +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Afficher page d'impression de la zone centrale MenuManager=Gestionnaire de menu WarningYouAreInMaintenanceMode=Attention, vous êtes en mode maintenance, aussi seul l'utilisateur identifié par %s est autorisé à utiliser l'application en ce moment. @@ -708,6 +716,7 @@ from=de toward=vers Access=Accès SelectAction=Sélectionner l'action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Utilisez Ctrl+C pour copier dans le presse-papier SaveUploadedFileWithMask=Sauver le fichier sur le serveur sous le nom "%s" (sinon "%s") OriginFileName=nom du fichier source @@ -718,7 +727,7 @@ ViewPrivateNote=Voir les notes XMoreLines=%s ligne(s) cachées PublicUrl=URL publique AddBox=Ajouter boite -SelectElementAndClickRefresh=Sélectionnez un élément et cliquez sur Rafraichir +SelectElementAndClick=Select an element and click %s PrintFile=Imprimer fichier %s ShowTransaction=Afficher l'écriture sur le compte bancaire GoIntoSetupToChangeLogo=Allez dans Accueil - Configuration - Société/institution pour changer le logo ou aller dans Accueil - Configuration - Affichage pour le cacher. @@ -734,8 +743,8 @@ Hello=Bonjour Sincerely=Sincèrement DeleteLine=Effacer ligne ConfirmDeleteLine=Êtes-vous sûr de vouloir supprimer cette ligne ? -NoPDFAvailableForDocGenAmongChecked=Aucun PDF n'est disponible pour la génération du document parmi les enregistrements cochés -TooManyRecordForMassAction=Trop d'enregistrements sélectionnés pour l'action de masse. De telles actions sont restreintes à une liste de %s enregistrements maximum. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=Aucu enregistrement sélectionné MassFilesArea=Zone des fichiers générés en masse ShowTempMassFilesArea=Afficher la zone des fichiers générés en masse @@ -755,11 +764,20 @@ Calendar=Calendrier GroupBy=Grouper par... ViewFlatList=Voir vue liste RemoveString=Supprimer la chaine '%s' -SomeTranslationAreUncomplete=Certaines langues sont traduites partiellement ou peuvent contenir des erreurs. Si vous en détectez, vous pouvez corriger les fichiers langues depuis http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Lien de téléchargement direct Download=Téléchargement ActualizeCurrency=Mettre à jour le taux de devise Fiscalyear=Exercice fiscal +ModuleBuilder=Générateur de Module +SetMultiCurrencyCode=Set currency +BulkActions=Actions de masse +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Lundi Tuesday=Mardi @@ -817,40 +835,3 @@ SearchIntoContracts=Contrats SearchIntoCustomerShipments=Expéditions clients SearchIntoExpenseReports=Notes de frais SearchIntoLeaves=Congés -BulkActions=Actions de masse -#Numbers translate -centimes=centimes -one=un -two=deux -three=trois -four=quatre -five=cinq -six=six -seven=sept -eight=huit -nine=neuf -ten=dix -eleven=onze -twelve=douze -thirteen=treize -fourteen=quatorze -fifteen=quinze -sixteen=seize -seventeen=dix-sept -eighteen=dix-huit -nineteen=dix-neuf -twenty=vingt -thirty=trente -forty=quarante -fifty=cinquante -sixty=soixante -seventy=soixante-dix -eighty=quatre-vingt -ninety=quatre-vingt-dix -hundred=cent -hundreds=cents -thousand=mille -million=million -billion=milliard -trillion=billion -quadrillion=quadrillion \ No newline at end of file diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 6c279402dc2..5ee7db08209 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Date anniversaire DateToBirth=Date de naissance BirthdayAlertOn=alerte anniversaire active BirthdayAlertOff=alerte anniversaire inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Contact ajouté à l'intervention Notify_FICHINTER_VALIDATE=Validation fiche intervention Notify_FICHINTER_SENTBYMAIL=Envoi fiche d'intervention par email @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Ceci est un message de test (le mot test doit êtr PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nVous trouverez ci-joint la facture __REF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nNous voudrions vous avertir que le facture __REF__ ne semble pas avoir été payée. Nous vous avons joins la dite facture comme rappel.\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint la proposition commerciale __PROPREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nVous trouverez ci-joint la demande de prix __ASKREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nVous trouverez ci-joint la demande de prix __REF__\n\n__PERSONALIZED__Cordialement,\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint la commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint notre commande __ORDERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVous trouverez ci-joint la facture __REF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint le bon d'expédition __SHIPPINGREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint la fiche d'intervention __FICHINTERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr est un logiciel de gestion proposant plusieurs modules métiers. Une démonstration qui inclut tous ces modules n'a pas de sens car ce cas n'existe jamais (plusieurs centaines de modules disponibles). Aussi, quelques profils type de démo sont disponibles. ChooseYourDemoProfil=Veuillez choisir le profil de démonstration qui correspond le mieux à votre activité… ChooseYourDemoProfilMore=...ou construisez votre propre profil
(sélection manuelle des modules) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Le mode d'authentification de Dolibarr EnableGDLibraryDesc=Vous devez activer ou installer la librairie GD avec votre PHP pour pouvoir activer cette option. ProfIdShortDesc=Id prof. %s est une information qui dépend du pays du tiers.
Par exemple, pour le pays %s, il s'agit du code %s. DolibarrDemo=Démonstration de Dolibarr ERP/CRM -StatsByNumberOfUnits=Statistiques en nombre d'unités du produit/service -StatsByNumberOfEntities=Statistiques en nombre d'entités référentes -NumberOfProposals=Nombre de propositions commerciales sur les 12 derniers mois -NumberOfCustomerOrders=Nombre de commandes clients sur les 12 derniers mois -NumberOfCustomerInvoices=Nombre de factures clients sur les 12 derniers mois -NumberOfSupplierProposals=Nombre de propositions commerciales fournisseurs des 12 derniers mois -NumberOfSupplierOrders=Nombre de factures fournisseurs sur les 12 derniers mois -NumberOfSupplierInvoices=Nombre de factures fournisseurs sur les 12 derniers mois -NumberOfUnitsProposals=Nombre d'unités sur les propositions commerciales des 12 derniers mois -NumberOfUnitsCustomerOrders=Nombre d'unités sur les commandes clients des 12 derniers mois -NumberOfUnitsCustomerInvoices=Nombre d'unités sur les factures clients des 12 derniers mois -NumberOfUnitsSupplierProposals=Nombre d'unités sur les propositions commerciales fournisseurs des 12 derniers mois -NumberOfUnitsSupplierOrders=Nombre d'unités sur les factures fournisseurs des 12 derniers mois -NumberOfUnitsSupplierInvoices=Nombre d'unités sur les factures fournisseurs des 12 derniers mois +StatsByNumberOfUnits=Statistiques de quantités de produits/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Nombre de propositions commerciales +NumberOfCustomerOrders=Nombre de commandes clients +NumberOfCustomerInvoices=Nombre de factures clients +NumberOfSupplierProposals=Nombre de demandes de prix +NumberOfSupplierOrders=Nombre de commandes fournisseurs +NumberOfSupplierInvoices=Nombre de factures fournisseurs +NumberOfUnitsProposals=Quantités présentes sur les propositions commerciales +NumberOfUnitsCustomerOrders=Quantités présentes sur les commandes clients +NumberOfUnitsCustomerInvoices=Quantités présentes sur les factures fournisseurs +NumberOfUnitsSupplierProposals=Quantités présentes en demande de prix +NumberOfUnitsSupplierOrders=Quantités présentes dans les commandes fournisseurs +NumberOfUnitsSupplierInvoices=Quantités présentes sur les factures fournisseurs EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée. EMailTextInvoiceValidated=La facture %s vous concernant a été validée. diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index 34553656359..51f26eb28d8 100644 --- a/htdocs/langs/fr_FR/projects.lang +++ b/htdocs/langs/fr_FR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Espace projets ProjectStatus=Statut projet SharedProject=Tout le monde PrivateProject=Contacts projet +ProjectsImContactFor=Projets dont je suis un contact explicite +AllAllowedProjects=Tout projet que je peux lire (les miens + public) +AllProjects=Tous les projets MyProjectsDesc=Cette vue projet est restreinte aux projets pour lesquels vous êtes un contact affecté (quel qu'en soit le type). ProjectsPublicDesc=Cette vue présente tous les projets pour lesquels vous êtes habilité à avoir une visibilité. TasksOnProjectsPublicDesc=Cette vue affiche toutes les tâches de projets selon vos permissions utilisateur @@ -23,6 +26,7 @@ TasksDesc=Cette vue présente tous les projets et tâches (vos habilitations vou AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches d'un tel projet sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tache pour pouvoir saisir un temps passé. OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez vous une tâche pour la voir et saisir du temps passé ImportDatasetTasks=Tâches des projets +ProjectCategories=Catégories/tags de projet NewProject=Nouveau projet AddProject=Créer projet DeleteAProject=Supprimer un projet @@ -37,6 +41,7 @@ ShowProject=Afficher projet SetProject=Définir projet NoProject=Aucun projet défini ou responsable NbOfProjects=Nombre de projets +NbOfTasks=Nb de tâches TimeSpent=Temps consommé TimeSpentByYou=Temps consommé par vous TimeSpentByUser=Temps consommé par utilisateur @@ -47,9 +52,9 @@ TaskTimeSpent=Temps consommé sur les tâches TaskTimeUser=Utilisateur TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tâches sur projets ouverts +TasksOnOpenedProject=Tâches sur les projets ouverts WorkloadNotDefined=Charge de travail non définie -NewTimeSpent=Nouveau consommé +NewTimeSpent=Temps consommés MyTimeSpent=Mon consommé Tasks=Tâches Task=Tâche @@ -59,6 +64,7 @@ TaskDescription=Description de la tâche NewTask=Nouvelle tâche AddTask=Créer tâche AddTimeSpent=Saisir temps consommé +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activité Activities=Tâches/activités MyActivities=Mes tâches/activités @@ -78,8 +84,8 @@ ListPredefinedInvoicesAssociatedProject=Liste des modèles de facture client ass ListSupplierOrdersAssociatedProject=Liste des commandes fournisseurs associées au projet ListSupplierInvoicesAssociatedProject=Liste des factures fournisseurs associées au projet ListContractAssociatedProject=Liste des contrats associés au projet +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Liste des interventions associées au projet -ListShippingAssociatedProject=Liste des expéditions associées au projet ListExpenseReportsAssociatedProject=Liste des notes de frais associées avec ce projet ListDonationsAssociatedProject=Liste des dons associés au projet ListActionsAssociatedProject=Liste des événements associés au projet @@ -103,6 +109,7 @@ ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet ? ProjectContact=Contacts projet ActionsOnProject=Événements sur le projet YouAreNotContactOfProject=Vous n'êtes pas contact de ce projet privé +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Suppression du temps consommé ConfirmDeleteATimeSpent=Êtes-vous sûr de vouloir supprimer ce temps consommé ? DoNotShowMyTasksOnly=Voir aussi les tâches qui ne me sont pas affectées @@ -111,7 +118,7 @@ TaskRessourceLinks=Ressources ProjectsDedicatedToThisThirdParty=Projets dédiés à ce tiers NoTasks=Aucune tâche pour ce projet LinkedToAnotherCompany=Liés à autre société -TaskIsNotAffectedToYou=Tâche qui ne vous sont pas affectées +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Le temps consommé n'est pas renseigné ThisWillAlsoRemoveTasks=Cette opération détruira également les tâches du projet (%s tâches actuellement) et le suivi des consommés. IfNeedToUseOhterObjectKeepEmpty=Si des objets (facture, commande, ...), appartenant à un autre tiers que celui choisi, doivent être liés au projet à créer, laisser vide afin de laisser le projet multi-tiers. @@ -162,21 +169,26 @@ FirstAddRessourceToAllocateTime=Affecter un utilisateur pour saisir des temps InputPerDay=Saisie par jour InputPerWeek=Saisie par semaine InputPerAction=Saisie par action -TimeAlreadyRecorded=Temps consommé déjà enregistré pour cette tâche/jour et utilisateur %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projets avec cet utilisateur comme contact TasksWithThisUserAsContact=Tâches assignées à cet utilisateur ResourceNotAssignedToProject=Non assigné à un projet ResourceNotAssignedToTheTask=Non assigné à la tache +TasksAssignedTo=Tâches assignées à AssignTaskToMe=M'assigner la tâche +AssignTaskToUser=Tâche assignée à %s +SelectTaskToAssign=Sélectionnez la tâche à assigner AssignTask=Assigner ProjectOverview=Vue d'ensemble ManageTasks=Utiliser les projets pour suivre les tâches ManageOpportunitiesStatus=Utiliser les projets pour suivre les affaires / opportunités ProjectNbProjectByMonth=Nb de projets créés par mois +ProjectNbTaskByMonth=Nb de tâches créées par mois ProjectOppAmountOfProjectsByMonth=Montant des opportunités par mois ProjectWeightedOppAmountOfProjectsByMonth=Montant pondéré des opportunités par mois ProjectOpenedProjectByOppStatus=Opportunités/affaires ouvertes par statut ProjectsStatistics=Statistics sur les projets +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Tâche assignée. La saisie de temps sur cette tâche devrait être possible. IdTaskTime=Id ligne de temps YouCanCompleteRef=SI vous souhaitez compléter la référence avec d'autres informations filtrables, il est recommandé d'ajouter le caractère - entre les données. La numérotation automatique sera alors fonctionnelle pour le prochain compteur. Par exemple %s-ABC. Il est également possible d'ajouter des mots-clés dans le libellé. Il est cependant recommandé d'utiliser un attribut supplémentaire ou extrafield. diff --git a/htdocs/langs/fr_NC/projects.lang b/htdocs/langs/fr_NC/projects.lang index 34553656359..d36e44c7248 100644 --- a/htdocs/langs/fr_NC/projects.lang +++ b/htdocs/langs/fr_NC/projects.lang @@ -1,197 +1,5 @@ # Dolibarr language file - Source file is en_US - projects -RefProject=Réf. projet -ProjectRef=Ref projet -ProjectId=Id projet -ProjectLabel=Libellé projet -Project=Projet -Projects=Projets -ProjectsArea=Espace projets -ProjectStatus=Statut projet -SharedProject=Tout le monde -PrivateProject=Contacts projet -MyProjectsDesc=Cette vue projet est restreinte aux projets pour lesquels vous êtes un contact affecté (quel qu'en soit le type). -ProjectsPublicDesc=Cette vue présente tous les projets pour lesquels vous êtes habilité à avoir une visibilité. -TasksOnProjectsPublicDesc=Cette vue affiche toutes les tâches de projets selon vos permissions utilisateur -ProjectsPublicTaskDesc=Cette vue présente tous les projets et tâches pour lesquels vous êtes habilité à avoir une visibilité. -ProjectsDesc=Cette vue présente tous les projets (vos habilitations vous offrant une vue exhaustive). -TasksOnProjectsDesc=Cette vue présente toutes les tâches sur tous les projets (vos permissions d'utilisateur vous accordent la permission de voir tout). -MyTasksDesc=Cette vue est restreinte aux projets et tâches pour lesquels vous êtes un contact affecté à au moins une tâche (quel qu'en soit le type). -OnlyOpenedProject=Seuls les projets ouverts sont visibles (les projets à l'état brouillon ou fermé ne sont pas visibles). -ClosedProjectsAreHidden=Les projets fermés ne sont pas visible. -TasksPublicDesc=Cette vue présente tous les projets et tâches pour lesquels vous êtes habilité à avoir une visibilité. -TasksDesc=Cette vue présente tous les projets et tâches (vos habilitations vous offrant une vue exhaustive). -AllTaskVisibleButEditIfYouAreAssigned=Toutes les tâches d'un tel projet sont visibles mais il n'est possible de saisir du temps passé que sur celles qui vous sont assignées.\nAssignez vous la tache pour pouvoir saisir un temps passé. -OnlyYourTaskAreVisible=Seules les tâches qui vous sont assignées sont visibles. Assignez vous une tâche pour la voir et saisir du temps passé -ImportDatasetTasks=Tâches des projets -NewProject=Nouveau projet -AddProject=Créer projet -DeleteAProject=Supprimer un projet -DeleteATask=Supprimer une tâche -ConfirmDeleteAProject=Êtes-vous sûr de vouloir supprimer ce projet ? -ConfirmDeleteATask=Êtes-vous sûr de vouloir supprimer cette tâche ? -OpenedProjects=Projets ouverts -OpenedTasks=Tâches ouvertes -OpportunitiesStatusForOpenedProjects=Montant des opportunités des projets ouverts par statut -OpportunitiesStatusForProjects=Montant des opportunités des projets par statut -ShowProject=Afficher projet -SetProject=Définir projet -NoProject=Aucun projet défini ou responsable -NbOfProjects=Nombre de projets -TimeSpent=Temps consommé -TimeSpentByYou=Temps consommé par vous -TimeSpentByUser=Temps consommé par utilisateur -TimesSpent=Temps consommés -RefTask=Ref. tâche -LabelTask=Libellé tâche -TaskTimeSpent=Temps consommé sur les tâches -TaskTimeUser=Utilisateur -TaskTimeNote=Note -TaskTimeDate=Date TasksOnOpenedProject=Tâches sur projets ouverts -WorkloadNotDefined=Charge de travail non définie NewTimeSpent=Nouveau consommé -MyTimeSpent=Mon consommé -Tasks=Tâches -Task=Tâche -TaskDateStart=Date de début de tâche -TaskDateEnd=Date de fin de tâche -TaskDescription=Description de la tâche -NewTask=Nouvelle tâche -AddTask=Créer tâche -AddTimeSpent=Saisir temps consommé -Activity=Activité -Activities=Tâches/activités -MyActivities=Mes tâches/activités -MyProjects=Mes projets -MyProjectsArea=Espace Mes projets -DurationEffective=Durée effective -ProgressDeclared=Progression déclarée -ProgressCalculated=Progression calculée -Time=Temps -ListOfTasks=Liste de tâches -GoToListOfTimeConsumed=Aller à la liste des temps consommés -GoToListOfTasks=Aller à la liste des tâches -ListProposalsAssociatedProject=Liste des propositions commerciales associées au projet -ListOrdersAssociatedProject=Liste des commandes clients associées au projet -ListInvoicesAssociatedProject=Liste des factures clients associées au projet -ListPredefinedInvoicesAssociatedProject=Liste des modèles de facture client associées au projet -ListSupplierOrdersAssociatedProject=Liste des commandes fournisseurs associées au projet -ListSupplierInvoicesAssociatedProject=Liste des factures fournisseurs associées au projet -ListContractAssociatedProject=Liste des contrats associés au projet -ListFichinterAssociatedProject=Liste des interventions associées au projet ListShippingAssociatedProject=Liste des expéditions associées au projet -ListExpenseReportsAssociatedProject=Liste des notes de frais associées avec ce projet -ListDonationsAssociatedProject=Liste des dons associés au projet -ListActionsAssociatedProject=Liste des événements associés au projet -ListTaskTimeUserProject=Liste du temps consommé sur les tâches d'un projet -ActivityOnProjectToday=Activité projet aujourd'hui -ActivityOnProjectYesterday=Activité projet hier -ActivityOnProjectThisWeek=Activité sur les projets cette semaine -ActivityOnProjectThisMonth=Activité sur les projets ce mois -ActivityOnProjectThisYear=Activité sur les projets cette année -ChildOfTask=Fille du projet/tâche -NotOwnerOfProject=Non responsable de ce projet privé -AffectedTo=Affecté à -CantRemoveProject=Ce projet ne peut être supprimé car il est référencé par de nombreux objets (factures, commandes ou autre). voir la liste sur l'onglet Reférents. -ValidateProject=Valider projet -ConfirmValidateProject=Êtes-vous sûr de vouloir valider ce projet ? -CloseAProject=Clore projet -ConfirmCloseAProject=Êtes-vous sûr de vouloir clore ce projet ? -AlsoCloseAProject=Fermer également le projet (laissez-le ouvert si vous devez suivre la production de tâches dessus) -ReOpenAProject=Réouvrir projet -ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet ? -ProjectContact=Contacts projet -ActionsOnProject=Événements sur le projet -YouAreNotContactOfProject=Vous n'êtes pas contact de ce projet privé -DeleteATimeSpent=Suppression du temps consommé -ConfirmDeleteATimeSpent=Êtes-vous sûr de vouloir supprimer ce temps consommé ? -DoNotShowMyTasksOnly=Voir aussi les tâches qui ne me sont pas affectées -ShowMyTasksOnly=Ne voir que les tâches qui me sont affectées -TaskRessourceLinks=Ressources -ProjectsDedicatedToThisThirdParty=Projets dédiés à ce tiers -NoTasks=Aucune tâche pour ce projet -LinkedToAnotherCompany=Liés à autre société -TaskIsNotAffectedToYou=Tâche qui ne vous sont pas affectées -ErrorTimeSpentIsEmpty=Le temps consommé n'est pas renseigné -ThisWillAlsoRemoveTasks=Cette opération détruira également les tâches du projet (%s tâches actuellement) et le suivi des consommés. -IfNeedToUseOhterObjectKeepEmpty=Si des objets (facture, commande, ...), appartenant à un autre tiers que celui choisi, doivent être liés au projet à créer, laisser vide afin de laisser le projet multi-tiers. -CloneProject=Cloner le projet -CloneTasks=Cloner les tâches -CloneContacts=Cloner les contacts -CloneNotes=Cloner les notes -CloneProjectFiles=Cloner les pièces jointes du projet -CloneTaskFiles=Cloner les pièces jointes des tâche(s) (si tâche(s) cloner) -CloneMoveDate=Mettre à jour les dates projet/tâches à partir de maintenant -ConfirmCloneProject=Êtes-vous sûr de vouloir cloner ce projet ? -ProjectReportDate=Reporter les dates des tâches en fonction de la date de départ. -ErrorShiftTaskDate=Une erreur s'est produite dans le report des dates des tâches. -ProjectsAndTasksLines=Projets et tâches -ProjectCreatedInDolibarr=Projet %s créé -ProjectModifiedInDolibarr=Projet %s modifié -TaskCreatedInDolibarr=Tâche %s créée -TaskModifiedInDolibarr=Tâche %s modifiée -TaskDeletedInDolibarr=Tâche %s supprimée -OpportunityStatus=Statut opportunité -OpportunityStatusShort=Status opp. -OpportunityProbability=Probabilité d'opportunité -OpportunityProbabilityShort=Prob. opp. -OpportunityAmount=Montant opportunité -OpportunityAmountShort=Montant Opp. -OpportunityAmountAverageShort=montant moyen des opportunités -OpportunityAmountWeigthedShort=Montant pondéré des opportunités -WonLostExcluded=hors opportunités remportées/perdues -##### Types de contacts ##### -TypeContact_project_internal_PROJECTLEADER=Chef de projet -TypeContact_project_external_PROJECTLEADER=Chef de projet -TypeContact_project_internal_PROJECTCONTRIBUTOR=Contributeur -TypeContact_project_external_PROJECTCONTRIBUTOR=Contributeur -TypeContact_project_task_internal_TASKEXECUTIVE=Responsable -TypeContact_project_task_external_TASKEXECUTIVE=Responsable -TypeContact_project_task_internal_TASKCONTRIBUTOR=Contributeur -TypeContact_project_task_external_TASKCONTRIBUTOR=Contributeur -SelectElement=Séléctionnez l'élément -AddElement=Associer l'élément -# Documents models -DocumentModelBeluga=Modèle de document de rapport pour l'aperçu projet -DocumentModelBaleine=Modèles de document de rapport de tâches de projets -PlannedWorkload=Charge de travail prévue -PlannedWorkloadShort=Charge de travail -ProjectReferers=Objets associés -ProjectMustBeValidatedFirst=Le projet doit être validé d'abord -FirstAddRessourceToAllocateTime=Affecter un utilisateur pour saisir des temps -InputPerDay=Saisie par jour -InputPerWeek=Saisie par semaine -InputPerAction=Saisie par action TimeAlreadyRecorded=Temps consommé déjà enregistré pour cette tâche/jour et utilisateur %s -ProjectsWithThisUserAsContact=Projets avec cet utilisateur comme contact -TasksWithThisUserAsContact=Tâches assignées à cet utilisateur -ResourceNotAssignedToProject=Non assigné à un projet -ResourceNotAssignedToTheTask=Non assigné à la tache -AssignTaskToMe=M'assigner la tâche -AssignTask=Assigner -ProjectOverview=Vue d'ensemble -ManageTasks=Utiliser les projets pour suivre les tâches -ManageOpportunitiesStatus=Utiliser les projets pour suivre les affaires / opportunités -ProjectNbProjectByMonth=Nb de projets créés par mois -ProjectOppAmountOfProjectsByMonth=Montant des opportunités par mois -ProjectWeightedOppAmountOfProjectsByMonth=Montant pondéré des opportunités par mois -ProjectOpenedProjectByOppStatus=Opportunités/affaires ouvertes par statut -ProjectsStatistics=Statistics sur les projets -TaskAssignedToEnterTime=Tâche assignée. La saisie de temps sur cette tâche devrait être possible. -IdTaskTime=Id ligne de temps -YouCanCompleteRef=SI vous souhaitez compléter la référence avec d'autres informations filtrables, il est recommandé d'ajouter le caractère - entre les données. La numérotation automatique sera alors fonctionnelle pour le prochain compteur. Par exemple %s-ABC. Il est également possible d'ajouter des mots-clés dans le libellé. Il est cependant recommandé d'utiliser un attribut supplémentaire ou extrafield. -OpenedProjectsByThirdparties=Projets ouverts par tiers -OnlyOpportunitiesShort=Opportunités uniquement -OpenedOpportunitiesShort=Opportunités ouvertes -NotAnOpportunityShort=Non une opportunité -OpportunityTotalAmount=Montant total des opportunités -OpportunityPonderatedAmount=Montant pondéré des opportunités -OpportunityPonderatedAmountDesc=Montant des opportunités pondéré par la probabilité -OppStatusPROSP=Prospection -OppStatusQUAL=Qualification -OppStatusPROPO=Proposition -OppStatusNEGO=Négociation -OppStatusPENDING=En attente -OppStatusWON=Gagné -OppStatusLOST=Perdu -Budget=Budget diff --git a/htdocs/langs/fr_NC/sendings.lang b/htdocs/langs/fr_NC/sendings.lang deleted file mode 100644 index 5c3974dc11c..00000000000 --- a/htdocs/langs/fr_NC/sendings.lang +++ /dev/null @@ -1,71 +0,0 @@ -# Dolibarr language file - Source file is en_US - sendings -RefSending=Réf. expédition -Sending=Expédition -Sendings=Expéditions -AllSendings=Toutes les expéditions -Shipment=Expédition -Shipments=Expéditions -ShowSending=Afficher Expéditions -Receivings=Bons de réceptions -SendingsArea=Espace expéditions -ListOfSendings=Liste des expéditions -SendingMethod=Méthode d'expédition -LastSendings=Les %s dernières expéditions -StatisticsOfSendings=Statistiques des expéditions -NbOfSendings=Nombre d'expéditions -NumberOfShipmentsByMonth=Nombre d'expéditions par mois -SendingCard=Fiche expédition -NewSending=Nouvelle expédition -CreateShipment=Créer expédition -QtyShipped=Qté. expédiée -QtyPreparedOrShipped=Quantité préparée ou envoyée -QtyToShip=Qté. à expédier -QtyReceived=Qté. reçue -QtyInOtherShipments=Qté dans les autres expéditions -KeepToShip=Reste à expédier -OtherSendingsForSameOrder=Autres expéditions pour cette commande -SendingsAndReceivingForSameOrder=Expéditions et réceptions pour cette commande -SendingsToValidate=Expéditions à valider -StatusSendingCanceled=Annulée -StatusSendingDraft=Brouillon -StatusSendingValidated=Validée (produits à envoyer ou envoyés) -StatusSendingProcessed=Traitée -StatusSendingDraftShort=Brouillon -StatusSendingValidatedShort=Validée -StatusSendingProcessedShort=Traitée -SendingSheet=Fiche expédition -ConfirmDeleteSending=Êtes-vous sûr de vouloir supprimer cette expédition ? -ConfirmValidateSending=Êtes-vous sûr de vouloir valider cette expédition sous la référence %s? -ConfirmCancelSending=Êtes-vous sûr de vouloir annuler cette expédition ? -DocumentModelSimple=Modèle simple -DocumentModelMerou=Modèle Merou A5 -WarningNoQtyLeftToSend=Alerte, aucun produit en attente d'expédition. -StatsOnShipmentsOnlyValidated=Statistiques effectuées sur les expéditions validées uniquement. La date prise en compte est la date de validation (la date de prévision de livraison n'étant pas toujours renseignée). -DateDeliveryPlanned=Date prévue de livraison -RefDeliveryReceipt=Ref bon de réception -StatusReceipt=Status du bon de réception -DateReceived=Date de réception réelle -SendShippingByEMail=Envoyer bon d'expédition par email -SendShippingRef=Envoi du bordereau d'expédition %s -ActionsOnShipping=Événements sur l'expédition -LinkToTrackYourPackage=Lien pour le suivi de votre colis -ShipmentCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle expédition se fait depuis la fiche commande. -ShipmentLine=Ligne d'expédition -ProductQtyInCustomersOrdersRunning=Quantité de produit en commandes client ouvertes -ProductQtyInSuppliersOrdersRunning=Quantité de produit en commandes fournisseur ouvertes -ProductQtyInShipmentAlreadySent=Quantité du produit parmi les commandes clients déjà envoyées -ProductQtyInSuppliersShipmentAlreadyRecevied=Quantité de produit déjà reçu en commandes fournisseur ouvertes -NoProductToShipFoundIntoStock=Aucun produit à expédier n'a été trouver dans l'entrepôt %s. Corrigez l'inventaire ou retourner choisir un autre entrepôt. -WeightVolShort=Poids/vol. -ValidateOrderFirstBeforeShipment=Vous devez d'abord valider la commande pour pouvoir créer une expédition. - -# Sending methods -# ModelDocument -DocumentModelTyphon=Modèle de bon de réception/livraison complet (logo…) -Error_EXPEDITION_ADDON_NUMBER_NotDefined=Constante EXPEDITION_ADDON_NUMBER non définie -SumOfProductVolumes=Somme des volumes des produits -SumOfProductWeights=Somme des poids des produits - -# warehouse details -DetailWarehouseNumber= Détail de l'entrepôt -DetailWarehouseFormat= W:%s (Qté : %d) diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index db1cace6b2c..de6406b1bf7 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -48,6 +48,7 @@ InternalUsers=משתמשים פנימיים ExternalUsers=משתמשים חיצוניים GUISetup=להציג SetupArea=הגדרת האזור +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=טופס לבדוק העלאת קובץ (על פי ההגדרה) IfModuleEnabled=הערה: כן, הוא יעיל רק אם %s מודול מופעלת RemoveLock=הסר קבצים %s אם היא קיימת כדי לאפשר שימוש בכלי העדכון. @@ -85,7 +86,7 @@ Mask=מסכה NextValue=לאחר מכן ערך NextValueForInvoices=הערך הבא (חשבוניות) NextValueForCreditNotes=הערך הבא (הערות אשראי) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=הערה: PHP שלך מגביל גודל כל קובץ של ההעלאה כדי %s %s, מה הערך של פרמטר זה הוא NoMaxSizeByPHPLimit=הערה: אין גבול מוגדר בתצורת שלך PHP @@ -103,7 +104,7 @@ MenuIdParent=התפריט ההורה מזהה DetailMenuIdParent=תעודת הזהות של ההורה התפריט (0 עבור התפריט העליון) DetailPosition=מיין במספר להגדיר מיקום תפריט AllMenus=כל -NotConfigured=מודול לא מוגדר +NotConfigured=Module/Application not configured Active=פעיל SetupShort=הגדרת OtherOptions=אפשרויות אחרות @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=אלף מפריד Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=מודולים LanguageBrowserParameter=פרמטר %s LocalisationDolibarrParameters=Localisation פרמטרים ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=אזור זמן PHP שרת DaylingSavingTime=שעון קיץ (משתמש) CurrentHour=שעה PHP (שרת) CurrentSessionTimeOut=ההפעלה הנוכחית פסק זמן -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=הרשאות BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=האלמנטים היחידים של מודולים המאפשרים מוצגים. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=מאגר המידע הסיסמה מוצפן ב c InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=הגנה על קבצי PDF שנוצרו הופעל (לא מומלץ, שובר את הדור המונית pdf) -ProtectAndEncryptPdfFilesDesc=הגנה על מסמך PDF שומר אותו לזמין לקרוא ולהדפיס עם כל דפדפן PDF. עם זאת, עריכת והעתקה אינו אפשרי עוד. שים לב כי השימוש בתכונה זו את בניית PDF המצטבר העולמי לא עובד (כמו חשבוניות שלא שולמו). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=תכונה DolibarrLicense=רשיון Developpers=מפתחים / תורמים @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr הדגמה מקוון OfficialMarketPlace=שוק המקום הרשמי של מודולים / addons חיצוניים OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=עבור המשתמש או תיעוד של מפתח (דוק, שאלות ...)
תסתכל על ויקי Dolibarr:
%s ForAnswersSeeForum=אם יש לך שאלות נוספות / עזרה, אתה יכול להשתמש בפורום Dolibarr:
%s HelpCenterDesc1=שטח זה יכול לעזור לך לקבל תמיכה ועזרה שירות Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=תכונה לא זמינה כמו מערכות יונ SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=מודול ההתקנה -ModulesSetup=מודולים ההתקנה +ModulesSetup=Modules/Application setup ModuleFamilyBase=מערכת ModuleFamilyCrm=קשרי לקוחות (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr הגרסה הנוכחית CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=אתה רשאי להיכנס לכל מסכת מספור. במסכת זו, התגים הבאים יכול לשמש:
{000000} המתאים למספר אשר יהיה מוגדל על %s כל אחד. הזן כמו אפסים רבים ככל האורך הרצוי של הדלפק. נגד יושלם עד אפסים משמאל כדי שיהיה כמו אפסים רבים ככל המסכה.
{000} 000000 זהה לקודם, אך קוזז המתאים למספר בצד ימין של סימן + מיושם החל מיום %s הראשונים.
{000000 @ x} זהה לקודם אבל הדלפק מתאפס לאפס כאשר x חודש הוא הגיע (x בין 1 ל 12 או 0 כדי להשתמש בחודשים הראשונים של שנת הכספים מוגדרת בהגדרות שלך). אם אפשרות זו בשימוש, x הוא 2 או יותר, אז רצף {yy} {מ"מ} או {yyyy} {מ"מ} נדרש גם.
Dd {} היום (01 עד 31).
{מ"מ} החודש (01 עד 12).
{Yy}, {yyyy} או {y} השנה על 2, 4 או 1 מספרים.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=כל הדמויות האחרות מסכת יישאר ללא שינוי.
מקומות אסורים.
-GenericMaskCodes4a=למשל על %s 99 של צד שלישי TheCompany לעשות 2007/01/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=למשל על צד שלישי נוצר 2007/03/01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC {yy} {מ"מ} - {000000} ייתן ABC0701-000099
{0000} 100-zzz / dd {} / XXX ייתן 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=להחזיר מספר להתאמה אישית על פי מסכת מוגדר. ServerAvailableOnIPOrPort=שרת זמין בכתובת %s כתובת ביציאה %s ServerNotAvailableOnIPOrPort=השרת אינו זמין %s כתובת ביציאה %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=סיסמה -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=משתמשים להקות Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=חשבוניות וניהול הערת אשראי ללקוחות. Module40Name=ספקים Module40Desc=הספק של ניהול הקנייה (הזמנות וחשבוניות) Module42Name=יומנים -Module42Desc=מתקני רישום (קובץ, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=העורכים Module49Desc=עורך ההנהלה Module50Name=מוצרים @@ -499,8 +521,8 @@ Module410Name=לוח השנה Module410Desc=שילוב לוח השנה Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=הודעות @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind המרות יכולות Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=רב החברה Module5000Desc=מאפשר לך לנהל מספר רב של חברות Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=צור / לשנות מוצרים Permission34=מחק מוצרים Permission36=ראה / ניהול מוצרים מוסתרים Permission38=ייצוא מוצרים -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=מחק פרויקטים (פרויקט משותף פרויקטים אני לפנות לקבלת) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=הזמנת שיטות DictionarySource=מקור הצעות / הזמנות DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=הגדרת הציל +SetupNotSaved=Setup not saved BackToModuleList=חזרה לרשימת מודולים BackToDictionaryList=חזרה לרשימת המילונים VATManagement=מע"מ ניהול @@ -921,7 +947,7 @@ Host=שרת DriverType=הנהג סוג SummarySystem=מערכת מידע סיכום SummaryConst=רשימה של כל הפרמטרים ההתקנה Dolibarr -MenuCompanySetup=החברה / קרן +MenuCompanySetup=Company/Organisation DefaultMenuManager= התפריט הסטנדרטי מנהל DefaultMenuSmartphoneManager=התפריט החכם המנהל Skin=העור נושא @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=המסר של היום MessageLogin=התחברות הודעה בדף +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=חפש בצורה קבועה בתפריט השמאלי DefaultLanguage=ברירת המחדל של השפה להשתמש (קוד שפה) EnableMultilangInterface=אפשר ממשק רב לשוני EnableShowLogo=הצג את הלוגו בתפריט השמאלי -CompanyInfo=החברה / בסיס מידע -CompanyIds=החברה / קרן זהויות +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=שם CompanyAddress=כתובת CompanyZip=רוכסן @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=עיכוב סובלנות (בימים) לפני התר Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=עיכוב סובלנות (בימים) לפני התראה על הפקדת המחאות לעשות Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=ערכים אחרים לנהל את התפריט פרמטרים אופציונליים. LogEvents=ביקורת אבטחה אירועים Audit=ביקורת @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=רשימת אירועים Dolibarr הביטחון SecurityEventsPurged=אירועים ביטחוניים מטוהר LogEventDesc=ניתן להפעיל כאן בכניסה לאירועים Dolibarr הביטחון. מנהלים יכולים לראות את התוכן שלה באמצעות כלי מערכת התפריטים - הביקורת. אזהרה, תכונה זו יכולה לצרוך כמות גדולה של נתונים במסד נתונים. -AreaForAdminOnly=תכונות אלה יכולים לשמש את המשתמשים מנהל בלבד. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=מערכת מידע הוא מידע טכני שונות נכנסת למצב קריאה בלבד ונראה לעין עבור מנהלי בלבד. SystemAreaForAdminOnly=אזור זה זמין עבור המשתמשים מנהל בלבד. אף אחד הרשאות Dolibarr יכול להפחית את המגבלה. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professional מזהה ייחודי MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=הקישור ייצוא לפורמט %s זמין בקישור הבא: %s ##### Invoices ##### BillsSetup=חשבוניות ההתקנה מודול BillsNumberingModule=חשבוניות ושטרי אשראי המונים מודול BillsPDFModules=חשבוניות ומסמכים מודלים +PaymentsPDFModules=Payment documents models CreditNote=כתב זכויות CreditNotes=אשראי הערות ForceInvoiceDate=להכריח את תאריך החשבונית עד כה אימות @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=מוצרים מודול ההתקנה ServiceSetup=מודול שירותי התקנה @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=תאריך חשבונית שימוש Buy=לקנות Sell=למכור InvoiceDateUsed=תאריך חשבונית שימוש -YourCompanyDoesNotUseVAT=החברה שלך הוגדר לא להשתמש מע"מ (דף הבית - התקנה - החברה / קרן), כך שאין אפשרויות מע"מ ההתקנה. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=חשבונאות קוד AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=לחץ כדי לחייג ההתקנה מודול -ClickToDialUrlDesc=כתובת האתר נקרא כאשר לחיצה על הטלפון picto נעשה. ב-URL, ניתן להשתמש בתגיות
__PHONETO__ כי יוחלף מספר הטלפון של אדם לקרוא
__PHONEFROM__ כי יוחלף מספר הטלפון של אדם קורא (שלך)
__LOGIN__ כי יוחלפו התחברות clicktodial שלך (המוגדר בכרטיס המשתמש שלך)
__PASS__ כי יוחלף עם הסיסמה clicktodial שלך (המוגדר בכרטיס המשתמש שלך). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=התצוגה כללי סדר BankOrderES=ספרדית BankOrderESDesc=התצוגה ספרדית כדי ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=רב החברה מודול ההתקנה ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/he_IL/compta.lang b/htdocs/langs/he_IL/compta.lang index ae9d9019fb1..a009e65313f 100644 --- a/htdocs/langs/he_IL/compta.lang +++ b/htdocs/langs/he_IL/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=הגדרת RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/he_IL/cron.lang b/htdocs/langs/he_IL/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/he_IL/cron.lang +++ b/htdocs/langs/he_IL/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/he_IL/errors.lang b/htdocs/langs/he_IL/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/he_IL/errors.lang +++ b/htdocs/langs/he_IL/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index 794af723739..3d2bca74f3b 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=הגדרת Alert=Alert +MenuWarnings=התראות Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=החברה / קרן +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=לא ידוע @@ -453,6 +458,7 @@ NextStep=Next step Datas=נתונים None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=מחק את השורה ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=חוזים SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang index ba4a8398a3b..892ea707a92 100644 --- a/htdocs/langs/he_IL/other.lang +++ b/htdocs/langs/he_IL/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/he_IL/projects.lang b/htdocs/langs/he_IL/projects.lang index 3f2e1c48449..a2635adb0e9 100644 --- a/htdocs/langs/he_IL/projects.lang +++ b/htdocs/langs/he_IL/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index 896f98e2c24..a51023fdbec 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Dodaj obračunski račun AccountAccounting=Obračunski račun AccountAccountingShort=Račun +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Stanje računa CAHTF=Ukupna nabava dobavljača prije poreza @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Broj komada TransactionNumShort=Num. transaction -AccountingCategory=Obračunska kategorija +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Nije postavljeno -DeleteMvt=Brisanje stavaka glavne knjige +DeleteMvt=Delete Ledger lines DelYear=Godina za obrisati DelJournal=Dnevnik za obrisati -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Financijski izvještaj uključujući sve tipove plačanja po bankovnom računom -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Popis obračunskih računa Pcgtype=Klasa računa -Pcgsubtype=Podklasa računa +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete obrisati obračunski račun jer je u upotrebi MvtNotCorrectlyBalanced=Kretanje nije točno balansirano. Potražno = %s. Dugovno = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Primjeni masovne kategorije AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Vrsta +AccountingJournalType1=Various operation +AccountingJournalType2=Prodaja +AccountingJournalType3=Nabava +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Izračunato Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=Podešeni format izvoza nije podržan BookeppingLineAlreayExists=Stavke već postoje u knjigovodstvu - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index 21ec7d6d56f..ac249be826f 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interni korisnici ExternalUsers=Vanjski korisnici GUISetup=Prikaz SetupArea=Sučelje postavki +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Obrazac za testiranje uploada datoteka (sukladno postavkama) IfModuleEnabled=Napomena: DA je efektivno samo ako je modul %s omogućen RemoveLock=makni datoteku %s ako postoji da biste omogučili korištenje alata za nadogradnju. @@ -85,7 +86,7 @@ Mask=Maska NextValue=Sljedeća vrijednost NextValueForInvoices=Sljedeća vrijednost (računi) NextValueForCreditNotes=Sljedeća vrijednost (kreditne bilješke) -NextValueForDeposit=Sljedeća vrijednost (polog) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Sljedeća vrijednost (zamjene) MustBeLowerThanPHPLimit=Napomena: vaš PHP limitira svaki upload datoteka većih od %s %s, bez obzira koja je vrijednost parametra NoMaxSizeByPHPLimit=Napomena: Limit nije podešen u vašoj PHP konfiguraciji @@ -103,7 +104,7 @@ MenuIdParent=Matični izbornik ID DetailMenuIdParent=ID matičnog izbornika (prazno za top izbornik) DetailPosition=Redni broj za definiranje pozicije izbornika AllMenus=Svi -NotConfigured=Modul nije konfiguriran +NotConfigured=Module/Application not configured Active=Aktivan SetupShort=Postavke OtherOptions=Ostale opcije @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separator tisučica Destination=Odredište IdModule=ID Modula IdPermissions=ID Dozvole -Modules=Moduli LanguageBrowserParameter=Parametar %s LocalisationDolibarrParameters=Parametri prijevoda ClientTZ=Vremenska zona klijenta (korisnik) @@ -123,7 +123,8 @@ PHPTZ=PHP server vremenska zona DaylingSavingTime=Ljetno računanje vremena CurrentHour=PHP Vrijem (server) CurrentSessionTimeOut=Trenutni istek sesije -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Dodatak Boxes=Dodaci MaxNbOfLinesForBoxes=Maksimalni broj linija u dodatku @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Prava pristupa BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Prikazani su samo elementi sa omogučenih modula -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Možete pronaći više modula za download na vanjskim internet web lokacijama ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Lozinka baze enkriptirana u conf.php (Preporuče InstrucToEncodePass=Da biste imali kodiranu lozinku u conf.php datoteci, zamjenite red
$dolibarr_main_db_pass="...";
sa
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Da biste imali čitljivu lozinku u conf.php datoteci, zamjenite red
$dolibarr_main_db_pass="crypted:...";
sa
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Zaštita generiranih PDF datoteka (NIJE preporučeno aktiviranje, kvari masovno generiranje PDF-ova) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Mogučnost DolibarrLicense=Licenca Developpers=Kreatori/suradnici @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr Online demo OfficialMarketPlace=Ovlaštena trgovina za vanjske module/dodatke OfficialWebHostingService=Preporučeni web hosting servisi (Cloud hosting) ReferencedPreferredPartners=Preferirani partneri -OtherResources=Drugi resursi +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Za korisničku ili razvojnu dokumentciju ( DOC, FAQ...)
pogledajte na Dolibarr Wiki-u:
%s ForAnswersSeeForum=Za sva ostala pitanja/pomoć, obratite se na Dolibarr forumu:
%s HelpCenterDesc1=Ovo sučelje vam može pomoći da dobijete pomoć Dolibarr servisa podrške @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Mogučnost nije dostupna na UNIX-u. Testirajte sendma SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Podešavanje modula -ModulesSetup=Podešavanje modula +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistem ModuleFamilyCrm=Upravljanje odnosima sa kupcima (CRM) ModuleFamilySrm=Upravljanje odnosima dobavljača (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Trenutna verzija Dolibarr-a CallUpdatePage=Idite na stranicu koja nadograđuje strukturu baze i podatke: %s LastStableVersion=Zadnja stabilna verzija LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Nadogradi server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Svi preostali znakovi u predlošku će ostati nepromjenjeni.
Razmak nije dozvoljen.
-GenericMaskCodes4a=Primjer na 99th %s Tvrtka komitenta je uradila 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Primjer na komitentu kreiranog 2007-03-01:
GenericMaskCodes4c=Primjer na proizvodu kreiranog 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} dati će ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX dati će 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Vraća prilagodljiv broj sukladno s definiranim predloškom. ServerAvailableOnIPOrPort=Server je dostupan na adresi %s na portu %s ServerNotAvailableOnIPOrPort=Server nije dostupan na adresi %s s portom %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cijena ExtrafieldMail = E-pošta ExtrafieldUrl = Url ExtrafieldSelect = Odaberi popis ExtrafieldSelectList = Odaberi iz tabele -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Lozinka -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Poveži s objektom +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Koristi 3 koraka odobravanja kada je iznos (bez poreza) veći od... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Korisnici i grupe Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Dobavljači Module40Desc=Upravljanje dobavljačima i nabava (narudžbe i računi) Module42Name=Dnevnici -Module42Desc=Sadržaji dnevnika (datoteke, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Urednici Module49Desc=Upravljanje urednicima Module50Name=Proizvodi @@ -499,8 +521,8 @@ Module410Name=Web kalendar Module410Desc=Integracija web kalendara Module500Name=Specijalni troškovi Module500Desc=Upravljanje specijalnim troškovima (porezi, društveni ili fiskalni porezi, dividende) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Kredit Module520Desc=Upravljanje kreditima Module600Name=Obavijesti @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind mogućnosti konverzije Module3100Name=Skype Module3100Desc=Dodaj Skype gumb na kartice korisnika / komitenta / kontakata / članova +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Upravljanje ljudskim resursima +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi tvrtka Module5000Desc=Dozvoljava upravljanje multi tvrtkama Module6000Name=Tijek rada @@ -591,7 +615,7 @@ Permission32=Kreiraj/izmjeni proizvod Permission34=Obriši proizvod Permission36=Pregled/upravljanje skrivenim proizvodima Permission38=izvoz proizvoda -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Obriši projekte (zajednički projekti i moji projekti) Permission45=Izvezi projekte @@ -844,12 +868,14 @@ DictionaryOrderMethods=Metode naručivanja DictionarySource=Porjeklo ponuda/narudžbi DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modeli za grafikone računa +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Predlošci e-pošte DictionaryUnits=Jedinice DictionaryProspectStatus=Status prospekcije DictionaryHolidayTypes=Tipovi odsustva DictionaryOpportunityStatus=Status šanse za projekt/prednost SetupSaved=Postavi spremljeno +SetupNotSaved=Setup not saved BackToModuleList=Povratak na popis modula BackToDictionaryList=Povratak na popis definicija VATManagement=Upravljanje PDV @@ -921,7 +947,7 @@ Host=Server DriverType=Tip upr. programa SummarySystem=Sažetak informacija o sistemu SummaryConst=Popis svih Dolibarr parametara podešavanja -MenuCompanySetup=Tvrtka/Zaklada +MenuCompanySetup=Company/Organisation DefaultMenuManager= Upravitelj standardnog izbornika DefaultMenuSmartphoneManager=Upravitelj mobilnog izbornika Skin=Skin teme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Zadana maks. dužina popisa DefaultMaxSizeShortList=Zadana maks. dužina za kratke popise ( npr. na kartici kupca) MessageOfDay=Poruka dana MessageLogin=Poruka na stranici za prijavu +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Stalni obrazac za pretraživanje na ljevom izborniku DefaultLanguage=Zadani jezik za korištenje (kod jezika) EnableMultilangInterface=Omogući višejezično sučelje EnableShowLogo=Prikaži logo na ljevom izborniku -CompanyInfo=Informacije o tvrtci/zakladi -CompanyIds=Identitet tvrtke/zaklade +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Naziv CompanyAddress=Adresa CompanyZip=PBR @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancija kašnjenja (u danima) prije obavijesti o z Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancija kašnjenja (u danima) prije obavijesti za napraviti čekovne pologe Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerancija kašnjenja (u danima) prije obavijesti za odobravanje izvještaja troška SetupDescription1=Sučelje postavki je za inicijalnu podešavanje parametara prije korištenja Dolibarr-a. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Ostale stavke izbornika upravljaju dodatnim parametrima. LogEvents=Pregled sigurnosnih događaja Audit=Revizija @@ -987,7 +1015,7 @@ BrowserOS=OS preglednika ListOfSecurityEvents=Popis Dolibarr sigurnosnih događaja SecurityEventsPurged=Sigurnosni događaji trajno obrisani LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Ove mogućnosti mogu se koristit samo od strane administratora. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=Novi prevedeni tekst za prikaz OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Ukupan broj aktiviranih modula : %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Morate omogućiti barem 1 modul ClassNotFoundIntoPathWarning=Klasa %s nije pronađena u PHP putanji YesInSummer=Da u ljeto -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Stanje je trenutno %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Pravila za profesionalne ID MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Izvoz poveznice u %s formatu je dostupno na sljedećoj poveznici: %s ##### Invoices ##### BillsSetup=Podešavanje modula računa BillsNumberingModule=Način označavanja računa i odobrenja BillsPDFModules=Model dokumenata računa +PaymentsPDFModules=Payment documents models CreditNote=Odobrenje CreditNotes=Odobrenja ForceInvoiceDate=Forsiraj datum računa kao datum ovjere @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Podešavanje modula proizvoda ServiceSetup=Podešavanje modula usluga @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Korišten datum računa Buy=Kupi Sell=Prodaj InvoiceDateUsed=Korišten datum računa -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Konto AccountancyCodeSell=Konto prodaje AccountancyCodeBuy=Konto nabave @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Postavi automatski ovaj status u filter pretraživa AGENDA_DEFAULT_VIEW=Koji tab želite da se otvori kod odabira izbornika Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Podešavanje modula ClickToDial -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Koristi samo "tel:" kod telefona ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=Podešavanje API modula ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Možete istražiti API na URL +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=API Key WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Glavni red prikaza BankOrderES=Španjolski BankOrderESDesc=Španjolski red prikaza ChequeReceiptsNumberingModule=Način označavanja čekovnih primki - ##### Multicompany ##### MultiCompanySetup=Više poduzeća module podešavanje ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Čarobnjak za izradu backup-a baze podataka SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Boja naslova stranice LinkColor=Boja poveznica -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Boja pozadine TopMenuBackgroundColor=Boja pozadine za gornji izbornik @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Stopa prodajnog poreza RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/hr_HR/compta.lang b/htdocs/langs/hr_HR/compta.lang index 8db21d04355..cf920e14dcd 100644 --- a/htdocs/langs/hr_HR/compta.lang +++ b/htdocs/langs/hr_HR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Prikazani iznosi su izračunati korišten Param=Podešavanje RemainingAmountPayment=Preostali iznos za naplatu: Account=Račun -Accountparent=Matični račun -Accountsparent=Matični računi +Accountparent=Parent account +Accountsparent=Parent accounts Income=Prihod Outcome=Trošak ReportInOut=Prihod / Trošak @@ -56,6 +56,7 @@ MenuTaxAndDividends=Porezi i dividende MenuSocialContributions=Društveni/fiskalni porezi MenuNewSocialContribution=Novi druš/fis porez NewSocialContribution=Novi društveni/fiskalni porez +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Društvni/fiskalni porez za platiti AccountancyTreasuryArea=Sučelje Računovodstva/Financija NewPayment=Novo plaćanje @@ -134,8 +135,8 @@ RulesResultDue=- Uključuje neplačene račune, troškove, PDV, donacije bez obz RulesResultInOut=- Uključuje stvarne uplate po računima, troškove, PDV i plaće.
- Baziran je po datumu plaćanja računa, troškova, PDV-a i plaćama. Datum donacje za donacije. RulesCADue=- Uključuje dospjeće računa kupca bez obzira da li je plaćena ili ne.
- Baziran je po datumu ovjere tih računa.
RulesCAIn=- Uključuje sva efektivna plaćanja računa zaprimljena od klijenata.
- Baziran je po datumu plaćanja tih računa
-DepositsAreNotIncluded=- Računi pologa nisu uključeni -DepositsAreIncluded=- Računi pologa su uključeni +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Izvještaj po IRPF komitenta LT1ReportByCustomersInInputOutputModeES=Izvještaj po RE komitenta VATReport=PDV izvještaj @@ -169,7 +170,7 @@ DescSellsJournal=Izvještaj prodaje DescPurchasesJournal=Izvještaj kupovine InvoiceRef=Ref. računa CodeNotDef=Nije definirano -WarningDepositsNotIncluded=Računi depozita nisu uključeni u ovoj verziji s ovim računovodstvenim modulom +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Datum valute plaćanja ne može biti manji od datuma objekta. Pcg_version=Chart of accounts models Pcg_type=Pcg tip @@ -189,8 +190,10 @@ AccountancyJournal=Kontni plan ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Kloniraj društveni/fiskalni porez ConfirmCloneTax=Potvrdi kloniranje plaćanja društvenog/fiskalnog poreza CloneTaxForNextMonth=Kloniraj za sljedeći mjesec @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Društveni/fiskalni porezi ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Greška: Nije pronađen bankovni račun FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/hr_HR/cron.lang b/htdocs/langs/hr_HR/cron.lang index a6bfed3c88b..1beb4167616 100644 --- a/htdocs/langs/hr_HR/cron.lang +++ b/htdocs/langs/hr_HR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Obriši planirane zadatke CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Pokreni planirani posao CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Modul planiranih poslova omogućuje izvrsavanje poslova koji su planirani +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Posao CronNone=Nijedan CronDtStart=Ne prije @@ -57,12 +57,12 @@ CronStatusActiveBtn=Omogući CronStatusInactiveBtn=Onemogući CronTaskInactive=Ovaj posao je onemogućen CronId=ID -CronClassFile=Klase (filename.class.php) -CronModuleHelp=Naziv mape Dolibarr modula ( radi isto i s vanjskim Dolibarr modulom ).
Na primjer za dohvat metodu od Dolibarr Product objekta /htdocs/product/class/product.class.php, vrijednost modula je product -CronClassFileHelp=Naziv datoteke za učitavanje.
Na primjer za dohvat metodu od Dolibarr Product objekta /htdocs/product/class/product.class.php, vrijednost naziva datoteke klase je product.class.php -CronObjectHelp=Naziv objekta za učitavanje.
Na primjer za dohvat metodu od Dolibarr Product objekta /htdocs/product/class/product.class.php, vrijednost naziva datoteke klase je Product -CronMethodHelp=Metoda objekta za pokretanje.
Na primjer za dohvat metode od Dolibarr Product objekta /htdocs/product/class/product.class.php, vrijednost metode je fetch -CronArgsHelp=Argumenti metode.
Na primjer za dohvat metodu od Dolibarr Product objekta /htdocs/product/class/product.class.php, vrijednost parametara može biti 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Sistemska komanda za pokretanje CronCreateJob=Kreiraj novi planirani posao CronFrom=Od @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Idite na izbornik "Home - Admin tools - Schedule JobDisabled=Posao onemogućen MakeLocalDatabaseDumpShort=Lakalni backup baze MakeLocalDatabaseDump=Kreiraj lokalni backup baze -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/hr_HR/errors.lang b/htdocs/langs/hr_HR/errors.lang index a7722d97d3c..14629ea74fa 100644 --- a/htdocs/langs/hr_HR/errors.lang +++ b/htdocs/langs/hr_HR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=Ovaj bankovni račun je gotovinski račun, te kao takav prihvača samo gotovinske uplate. ErrorFromToAccountsMustDiffers=Izvorni i odredišni bankovni računi moraju biti različiti. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Korisnički račun %s koji pokreće web server nema dozvolu za pokretanje ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 35bc4e304d4..02cac8e8b43 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Značajka %s nije određena ErrorUnknown=Nepoznata greška ErrorSQL=Greška na SQL-u ErrorLogoFileNotFound=Datoteka s logom '%s' nije pronađena -ErrorGoToGlobalSetup=Idite na postavke 'Tvrtka/Zaklada' kako bi ste ovo popravili +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Idite na postavke modula kako bi ste ovo popravili ErrorFailedToSendMail=Elektronska pošta nije poslana (pošiljatelj=%s, primatelj=%s) ErrorFileNotUploaded=Datoteka nije učitana. Proverite da veličina ne prelazi dozvoljenu, da imate slobodnog mjesta na disku i da u ovoj mapi nema datoteke sa istim imenom. @@ -153,6 +153,7 @@ Edit=Uredi Validate=Ovjeri ValidateAndApprove=Ovjeri i odobri ToValidate=Za ovjeru +NotValidated=Not validated Save=Spremi SaveAs=Spremi kao TestConnection=Provjera veze @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Nema mogučnosti aplikativnog odspajanja s %s Connection=Veza Setup=Podešavanje Alert=Obavijest +MenuWarnings=Obavijesti Previous=Prijašnji Next=Sljedeći Cards=Kartice @@ -308,6 +310,7 @@ Copy=Kopiraj Paste=Zalijepi Default=Zadano DefaultValue=Zadana vrijednost +DefaultValues=Default values Price=Cijena UnitPrice=Jedinična cijena UnitPriceHT=Jedinična cijena (neto) @@ -363,7 +366,8 @@ VATRate=Stopa poreza Average=Prosjek Sum=Zbroj Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Opcija List=Popis FullList=Kompletan popis @@ -387,7 +391,7 @@ ActionRunningNotStarted=Za početi ActionRunningShort=In progress ActionDoneShort=Završeno ActionUncomplete=Nekompletno -CompanyFoundation=Tvrtka/Zaklada +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakti komitenta ContactsAddressesForCompany=Kontakti/adrese komitenta AddressesForCompany=Adrese komitenta @@ -405,8 +409,9 @@ Generate=Generiraj Duration=Trajanje TotalDuration=Ukupno trajanje Summary=Sažetak -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Ploča radnih zadataka +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Dostupno NotYetAvailable=Nije još dostupno NotAvailable=Nije dostupno @@ -434,7 +439,7 @@ Reportings=Izvještavanje Draft=Skica Drafts=Skice Validated=Ovjereno -Opened=Otvorena +Opened=Otvori New=Novo Discount=Rabat Unknown=Nepoznat @@ -453,6 +458,7 @@ NextStep=Sljedeći korak Datas=Podatak None=Niti jedan NoneF=Niti jedan +NoneOrSeveral=None or several Late=Kasni LateDesc=Kašnjenje za definiranje ako podatak kasni ili ne ovisno o vašim postavkama. Tražite administratora da promjeni kašnjenje iz izbornika Naslovna - Podešavanje - Obavijesti. Photo=Slika @@ -606,7 +612,8 @@ PartialWoman=Parcijalno TotalWoman=Ukupno NeverReceived=Nikad primljeno Canceled=Otkazano -YouCanChangeValuesForThisListFromDictionarySetup=Možete promijeniti vrijednosti za ovaj popis kroz izbornik Podešavanje - definicije +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Možete podesiti zadanu vrijednost koju koristite kada kreirate novi podatak u postavkama modula. Color=Boja Documents=Povezane datoteke @@ -642,6 +649,7 @@ FreeLineOfType=Slobodan unos tipa CloneMainAttributes=Kloniraj objekt s svim glavnim atributima PDFMerge=Spoji PDF Merge=Spoji +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Prikaži stranicu za ispis MenuManager=Upravitelj izbornikom WarningYouAreInMaintenanceMode=Upozorenje, nalazite se u načinu održavanja, tako da samo prijava %s je dozvoljeno za korištenje aplikacije. @@ -708,6 +716,7 @@ from=od toward=ispred Access=Pristup SelectAction=Odaberi akciju +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Koristi Ctrl+C za kopiranje u međuspremnik SaveUploadedFileWithMask=Spremite datoteku na server pod imenom "%s" (u protivnom "%s") OriginFileName=Orginalna datoteka @@ -718,7 +727,7 @@ ViewPrivateNote=Vidi napomene XMoreLines=%s stavaka(e) skriveno PublicUrl=Javni URL AddBox=Dodaj blok -SelectElementAndClickRefresh=Odaberi element i klikni Osvježi +SelectElementAndClick=Select an element and click %s PrintFile=Ispis datoteke %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Idite na Home - Podešavanje - Tvrtka za promjenu logotipa ili idite na Home - Podešavanje - Prikaz za skrivanje. @@ -734,8 +743,8 @@ Hello=Pozdrav Sincerely=Srdačno DeleteLine=Obriši stavku ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=PDF nije dostupan za generiranje dokumenta unutar označenih podataka -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Sučelje za datoteke stvorene masovnom akcijom ShowTempMassFilesArea=Prikaži sučelje datoteka stvorenih masovnom akcijom @@ -755,11 +764,20 @@ Calendar=Kalendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Ponedjeljak Tuesday=Utorak @@ -817,5 +835,3 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Pošiljke kupcu SearchIntoExpenseReports=Izvještaji troška SearchIntoLeaves=Odsustva - -BulkActions=Bulk actions diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index db195747ddf..18169a54a4b 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nPonudu __PROPREF__ ćete pronaći ovdje\n\n__PERSONALIZED__Srdačno\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
je podatak ovisan o državi komitenta.
Na primjer, za zemlju %s, kod je %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/hr_HR/projects.lang b/htdocs/langs/hr_HR/projects.lang index e5a8ce39356..84f15e8b191 100644 --- a/htdocs/langs/hr_HR/projects.lang +++ b/htdocs/langs/hr_HR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Sučelje projekata ProjectStatus=Status projekta SharedProject=Svi PrivateProject=Kontakti projekta +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Svi projekti MyProjectsDesc=Ovaj popis je ograničen samo na projekte gdje ste navedeni za kontakt ( bez obzira na tip) ProjectsPublicDesc=Ovaj popis predstavlja sve projekte za koje imate dozvolu. TasksOnProjectsPublicDesc=Ovaj popis predstavlja sve zadatke na projektima za koje imate dozvolu. @@ -23,20 +26,22 @@ TasksDesc=Ovaj popis predstavlja sve projekte i zadatke (vaše korisničke dozvo AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Novi projekt AddProject=Kreiraj projekt DeleteAProject=Izbriši projekt DeleteATask=Izbriši zadatak ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Otvoreni projekti +OpenedTasks=Otvoreni zadaci +OpportunitiesStatusForOpenedProjects=Mogući iznos otvorenih projekata po statusu OpportunitiesStatusForProjects=Iznos šanse za projekte po statusu ShowProject=Prikaži projekt SetProject=Postavi projekt NoProject=Nema definiranih ili vlastih projekata NbOfProjects=Br. projekata +NbOfTasks=Nb of tasks TimeSpent=Vrijeme utrošeno TimeSpentByYou=Vaše utrošeno vrijeme TimeSpentByUser=Utrošeno vrijeme korisnika @@ -47,9 +52,9 @@ TaskTimeSpent=Utrošeno vrijeme zadataka TaskTimeUser=Korisnik TaskTimeNote=Bilješka TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Zadaci u otvorenim projektima WorkloadNotDefined=Opterećenje nije definirano -NewTimeSpent=Novo utrošeno vrijeme +NewTimeSpent=Vrijeme utrošeno MyTimeSpent=Moje utrošeno vrijeme Tasks=Zadaci Task=Zadatak @@ -59,6 +64,7 @@ TaskDescription=Opis zadatka NewTask=Novi zadatak AddTask=Kreiraj zadatak AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivnost Activities=Zadaci/aktovnosti MyActivities=Moji zadaci/aktivnosti @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Popis ugovora povezanih sa projektom +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Popis intervencija povezanih sa projektom ListExpenseReportsAssociatedProject=Popis izvještaja troškova povezanih sa projektom ListDonationsAssociatedProject=Popis donacija povezanih sa projektom @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Kontakti projekta ActionsOnProject=Događaji projekta YouAreNotContactOfProject=Niste kontakt za ovaj privatni projekti +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Obriši utrošeno vrijeme ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Vidi također zadatke koji nisu dodjeljeni meni @@ -110,7 +118,7 @@ TaskRessourceLinks=Resursi ProjectsDedicatedToThisThirdParty=Projekti posvećeni komitentu NoTasks=Nema zadataka u ovom projektu LinkedToAnotherCompany=Povezano s drugim komitentom -TaskIsNotAffectedToYou=Zadatak nije dodjeljen vama +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Utrošeno vrijeme je prazno ThisWillAlsoRemoveTasks=Ova akcija će također obrisati sve zadatke projekta (%s zadataka u ovom trenutku) i sve unose utrošenog vremena. IfNeedToUseOhterObjectKeepEmpty=Ako neki objekti (računi, narudžbe,...), pripadaju drugom komitentu, moraju biti povezani s projektom koji se kreira, ostavite prazno da bi projekt bio za više komitenata. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Dodjeli korisnka u zadatak za alokaciju vremena InputPerDay=Unos po danu InputPerWeek=Unos po tjednu InputPerAction=Unos po akciji -TimeAlreadyRecorded=Utrošeno vrijeme je već zabilježeno za ovaj zadatak/dan i za korisnika %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projekti s ovim korisnikom kao kontakt osoba TasksWithThisUserAsContact=Zadaci dodjeljeni korisniku ResourceNotAssignedToProject=Nije dodjeljen projektu ResourceNotAssignedToTheTask=Nije dodjeljen zadatku +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Dodjeli zadatak meni +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Dodjeli ProjectOverview=Pregled ManageTasks=Koristi projekte za pračenje zadataka i vremena ManageOpportunitiesStatus=Koristi projekte za praćenje prednosti/šansi ProjectNbProjectByMonth=Br. kreiranih projektata po mjesecu +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Iznos šansi po mjesecu ProjectWeightedOppAmountOfProjectsByMonth=Važniji iznosi šansi po mjesecu ProjectOpenedProjectByOppStatus=Otvoreni projekti/prednosti po statusu šanse ProjectsStatistics=Statistika po projektima/prednostima +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Zadatak dodjeljen. Unos vremena za zadatak je moguće. IdTaskTime=ID vre. zad. YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Samo šanse -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Otvorene šanse NotAnOpportunityShort=Nije šansa OpportunityTotalAmount=Ukupan iznos šansi OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index b602f003d38..497b3bcce71 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -3,8 +3,8 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Oszlop határoló az export fájlhoz ACCOUNTING_EXPORT_DATE=Dátum formátuma az export fájlhoz ACCOUNTING_EXPORT_PIECE=Darabszám exportálása ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export globális számlákkal -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount +ACCOUNTING_EXPORT_LABEL=Felíratok Exportálása +ACCOUNTING_EXPORT_AMOUNT=Számlák Exportálása ACCOUNTING_EXPORT_DEVISE=Export currency Selectformat=Fájl formátumának kiválasztása ACCOUNTING_EXPORT_PREFIX_SPEC=Fájlnév előtagjának kiválasztása @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Számla +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Számlaosztály -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Teljes eladási marzs @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kód +Nature=Természet +AccountingJournalType1=Various operation +AccountingJournalType2=Eladások +AccountingJournalType3=Beszerzések +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Export @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Számított Formula=Képlet ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index fa2ddb07122..2f228660c45 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Belső felhasználók ExternalUsers=Külső felhasználók GUISetup=Kijelző SetupArea=Beállítási terület +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=A fájlfeltöltés tesztelésének űrlapja (beállítás szerint) IfModuleEnabled=Megjegyzés: az 'igen' csak akkor eredményes, ha a %s modul engedélyezve van RemoveLock=A frissítőeszköz használatához törölje a következő fájlt, ha létezik: %s @@ -85,7 +86,7 @@ Mask=Maszk NextValue=Következő érték NextValueForInvoices=Következő érték (számlák) NextValueForCreditNotes=Következő érték (jóváírás) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Megjegyzés: A PHP minden fájlfeltöltést %s %s méretre korlátoz, függetlenül ennek a paraméternek az értékétől NoMaxSizeByPHPLimit=Megjegyzés: A PHP konfigurációban nincs beállítva korlátozás @@ -103,7 +104,7 @@ MenuIdParent=Szülő menü ID DetailMenuIdParent=Szülő menü azonosítója (a főmenü esetében üres) DetailPosition=A menü sorrendjét meghatározó szám AllMenus=Minden -NotConfigured=A modul nincs konfigurálva +NotConfigured=Module/Application not configured Active=Aktív SetupShort=Beállítás OtherOptions=Egyéb lehetőségek @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Ezer elválasztó Destination=Úticél IdModule=Module ID IdPermissions=Permissions ID -Modules=Modulok LanguageBrowserParameter=Paraméter %s LocalisationDolibarrParameters=Lokalizációs paraméterek ClientTZ=Kliens időzónája (felhasználó) @@ -123,7 +123,8 @@ PHPTZ=A PHP szerver időzónája DaylingSavingTime=Nyári időszámítás CurrentHour=PHP óra (szerver) CurrentSessionTimeOut=Jelenlegi munkamenet elévülési ideje -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgetek MaxNbOfLinesForBoxes=A widgetek által elfoglalt sorok száma max. @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Engedélyek BoxesDesc=A widgetek olyan elemek melyek segítségével egyes oldalak testreszabhatók. A widget ki/bekapcsolását a cél-oldal kiválasztásával az 'Aktiválás'-ra kattintva érheti el illetve a kukára kattintva kikapcsolhatja. OnlyActiveElementsAreShown=Csak a bekapcsolt modulok elemei jelennek meg. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Az interneten további modulokat találhat... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Titkosítsa az adatbázis jelszót a conf.php-ba InstrucToEncodePass=A jelszavak titkosításához a conf.php-ben cserélje ki a
$dolibarr_main_db_pass="...";
sort erre:
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=A generált pdf fájlok védelme (nem ajánlott aktiválni, mivel a tömeges pdf generálást ellehetetleníti) -ProtectAndEncryptPdfFilesDesc=A PDF dokumentum védelme lehetővé teszi az olvasást és nyomtatást bármilyen PDF böngészőben. Azonban a dokumentum szerkesztése és másolása többé nem lesz lehetséges. Megjegyzendő, amennyiben ezt a szolgáltatást használja, a globális sorozatos pdf generálás nem fog működni (például kifizetetlen számlák). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funkció DolibarrLicense=Engedély Developpers=Fejlesztők / közreműködők @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Hivatalos piactér külső modulok / kiegészítők számára OfficialWebHostingService=Referencia tárhely szolgáltatások (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=A felhasználó vagy fejlesztői dokumentáció (doc, GYIK ...),
vessünk egy pillantást a Dolibarr Wiki:
%s ForAnswersSeeForum=Ha bármilyen további kérdése / help, akkor használja a fórumot Dolibarr:
%s HelpCenterDesc1=Ebben a részben a Dolibarral kapcsolatos segítségnyújtási szolgáltatást veheti igénybe. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=A szolgáltatás nem elérhető Unix szerű rendszere SubmitTranslation=Ha a fordítás nem teljes vagy hibákat talál, kijavíthatja a langs/%s könyvtárban található fájlokban és elküldheti a javítást a www.transifex.com/dolibarr-association/dolibarr/ címre SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Modul beállítása -ModulesSetup=Modulok beállítása +ModulesSetup=Modules/Application setup ModuleFamilyBase=Rendszer ModuleFamilyCrm=Ügyfélkapcsolat kezelés (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr jelenlegi verziója CallUpdatePage=Lépjen az oldalra amiben az adatbázis struktúrát és adatokat frissíti: %s LastStableVersion=Utolsó stabil verzió LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=A szerver offline frissítése +WithCounter=Manage a counter GenericMaskCodes=Megadhat bármilyen számozás maszk. Ebben a maszk, az alábbi címkék is használhatók:
{000000} felel meg egy számot, amelyet fogja megnövelni minden %s. Adja meg a nullákat, mint annyi a kívánt méretre a számláló. A számláló tölti nullákkal balról annak érdekében, hogy minél több nullák, mint a maszk.
{000000} 000 ugyanaz, mint korábban, hanem ellensúlyozza számának megfelelő jobbra a + jel alkalmazzák kezdve az első %s.
{000000} @ x ugyanaz, mint korábban, de a számláló lenullázódik, ha havi x-ért (x 1 és 12 között, vagy 0 használni a korai hónapokban a pénzügyi év van megadva a konfiguráció). Ha ezt az opciót használjuk, és az x 2 vagy magasabb, akkor a sorozat nn {} {} vagy {mm yyyy}} {mm is szükség van.
{} Dd nap (01 31).
{} Mm hónap (01-12).
Yy {}, {ÉÉÉÉ} vagy {} y évben több mint 2, 4 vagy 1 számokat.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Az összes többi karakter a maszkban marad érintetlen.
A szóközök nem megengedettek.
-GenericMaskCodes4a=Példa a 99. %s a harmadik fél kész TheCompany 2007/01/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Példa: a harmadik fél létre 2007/03/01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Vissza szabható számot a meghatározott maszkot. ServerAvailableOnIPOrPort=Kiszolgálóhoz elérhető a címen %s %s porton ServerNotAvailableOnIPOrPort=A kiszolgáló nem elérhető címen %s %s porton @@ -369,19 +375,21 @@ Int=Egész Float=Lebegőpontos DateAndTime=Dátum és idő Unique=Egyedi -Boolean=Logikai (jelölőnégyzet) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Ár ExtrafieldMail = E-mail ExtrafieldUrl = Cím ExtrafieldSelect = Kiválasztó lista ExtrafieldSelectList = Válassz a táblából -ExtrafieldSeparator=Elválasztó +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Jelszó -ExtrafieldCheckBox=Jelölőnégyzet -ExtrafieldRadio=Választógomb -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Mező +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Felhasználók és csoportok Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Ügyfél számlák és jóváírás, beszállítói számlák kezel Module40Name=Beszállítók Module40Desc=Szállító menedzsment és vásárlás (megrendelések és számlák) Module42Name=Naplók -Module42Desc=Bejelentkezés létesítmények (fájl, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Szerkesztők Module49Desc=Szerkesztő vezetése Module50Name=Termékek @@ -499,8 +521,8 @@ Module410Name=WebCalendar Module410Desc=WebCalendar integráció Module500Name=Különleges költségek Module500Desc=Különleges kiadások (adók, szociális vagy pénzügyi adók, osztalék) kezelése -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Értesítések @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind konverziók képességek Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Több-cég Module5000Desc=Több vállalat kezelését teszi lehetővé Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Létrehozza / módosítja termékek Permission34=Törlés termékek Permission36=Lásd / kezelhetik rejtett termékek Permission38=Export termékek -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Törlés projektek (közös projekt és a projektek vagyok contact) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Rendelés módjai DictionarySource=Származási javaslatok / megrendelések DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=E-mail sablonok DictionaryUnits=Egységek DictionaryProspectStatus=Ajánlat állapota DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Beállítás mentett +SetupNotSaved=Setup not saved BackToModuleList=Visszalép a modulok listáját BackToDictionaryList=Visszalép a szótárak listája VATManagement=ÁFA kezelés @@ -921,7 +947,7 @@ Host=Szerver DriverType=Vezető típus SummarySystem=Rendszer információk összefoglaló SummaryConst=List of all Dolibarr beállítási paraméterek -MenuCompanySetup=Company / Alapítvány +MenuCompanySetup=Company/Organisation DefaultMenuManager= Normál menü menedzser DefaultMenuSmartphoneManager=Smartphone Menükezelőben Skin=Bőr téma @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Alapértelmezett maximális karakter-hossz egy rövid listában (pl. vevő adatlapon) MessageOfDay=A nap üzenete MessageLogin=Belépés oldalra üzenet +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Állandó keresési űrlapot baloldali menüben DefaultLanguage=Alapértelmezett nyelv használatát (nyelv kód) EnableMultilangInterface=Engedélyezze a többnyelvű interfész EnableShowLogo=Mutasd logo a bal menüben -CompanyInfo=Cég / alapítvány adatai -CompanyIds=Cég / alapítvány identitások +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Név CompanyAddress=Cím CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancia késleltetést (nap) előtt figyelmeztető Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia késedelem (nap) előtt figyelmeztetést ellenőrzések betét csinálni Delays_MAIN_DELAY_EXPENSEREPORTS=Tűréshatár értéke (napokban) mielőtt figyelmeztetést küld a kiadási összesítések elfogadtatására SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=További bejegyzések kezelése menüben választható paramétereket. LogEvents=Biztonsági audit események Audit=Könyvvizsgálat @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Listája Dolibarr biztonsági események SecurityEventsPurged=Biztonsági események kitisztítják LogEventDesc=Itt tud belépni a Dolibarr eseményeire biztonságosa. A rendszergazdák láthatják annak tartalmát menün keresztül Rendszereszközök - Audit. Figyelem, ez a funkció nagy mennyiségű adatot dolgozhat fel az adatbázisban! -AreaForAdminOnly=Ezeket a funkciókat lehet használni a felhasználók csak a rendszergazda. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Rendszer információk különféle műszaki információkat kapunk a csak olvasható módban, és csak rendszergazdák számára látható. SystemAreaForAdminOnly=Ez a terület áll rendelkezésre a felhasználók csak rendszergazda. Egyik Dolibarr engedélyek csökkentheti ezt a határt. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Legalább egy modult engedélyezni kell ClassNotFoundIntoPathWarning=A(z) %s osztály nem található a PHP útvonalon YesInSummer=Nyáron -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=A %s meghajtóprogram van használatban, ez a jelenleg elérhető legjobb. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professzionális egyedi azonosító MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Az export linket %s formátumban elérhető a következő linkre: %s ##### Invoices ##### BillsSetup=Számlák modul beállítása BillsNumberingModule=Számlák és jóváírási számozási modul BillsPDFModules=Számla dokumentumok modellek +PaymentsPDFModules=Payment documents models CreditNote=Jóváírást CreditNotes=Jóváírási ForceInvoiceDate=Kényszer számla keltétől annak érvényességét @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=A HTTP szerver a %s típusú fájlok esetében nem használ FilesOfTypeCompressed=A HTTP szerver a %s típusú fájlokat tömöríti. FilesOfTypeNotCompressed=A HTTP szerver a %s típusú fájlokat nem tömöríti. CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=HTTP válaszok tömörítése +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Termékek modul beállítása ServiceSetup=Szolgáltatások modul beállítása @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Számla dátuma használt Buy=Megvesz Sell=Eladás InvoiceDateUsed=Számla dátuma használt -YourCompanyDoesNotUseVAT=A cég már meg, hogy nem használja ÁFA-t (Home - Beállítás - Company / Alapítvány), így nincs lehetőség ÁFA telepíteni. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Számviteli kód AccountancyCodeSell=Eladás számviteli kódja AccountancyCodeBuy=Vétel számviteli kódja @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Kattintson a Tárcsázás modul beállítása -ClickToDialUrlDesc=Url meghívásra, ha egy kattintás a telefonon Picto történik. Az URL, akkor a tag
__PHONETO__ Hogy fogja helyettesíteni a telefonszámot hívott személynek
__PHONEFROM__ Hogy váltják fel a hívó telefonszámát személy (a tiéd)
__LOGIN__ Hogy váltják fel clicktodial login (azaz a felhasználói kártya)
__PASS__ Hogy váltják a clicktodial jelszót (amelyeket a felhasználói kártya). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Általános megjelenítési sorrend BankOrderES=Spanyol BankOrderESDesc=Spanyol megjelenítési sorrend ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Több cég setup modul ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/hu_HU/compta.lang b/htdocs/langs/hu_HU/compta.lang index 4225e7501cc..8bff007aad1 100644 --- a/htdocs/langs/hu_HU/compta.lang +++ b/htdocs/langs/hu_HU/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Beállítás RemainingAmountPayment=Összeg kifizetése még: Account=Fiók -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Jövedelem Outcome=Költség ReportInOut=Bevétel / Kiadás @@ -56,6 +56,7 @@ MenuTaxAndDividends=Adók és osztalék MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Számviteli / Treasury területén NewPayment=Új fizetési @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Magában foglalja mindazokat a tényleges kifizetések kézhez kapott számlák az ügyfelektől.
- Ennek alapja a fizetési határidőn ilyen számlák
-DepositsAreNotIncluded=- Befizetési számla nem tartalmazza -DepositsAreIncluded=- Fizess számlák kerülnek +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Jelentés a harmadik fél IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Értékesítési Journal DescPurchasesJournal=Vásárlások Journal InvoiceRef=Számla ref. CodeNotDef=Nem meghatározott -WarningDepositsNotIncluded=Betétek számlák nem szerepelnek ebben a változatban a számviteli modul. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=A fizetés határideje nem lehet korábbi a tárgy dátumánál Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Könyvelési periódus +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/hu_HU/cron.lang b/htdocs/langs/hu_HU/cron.lang index 4ceeeda9fda..f942363f3c3 100644 --- a/htdocs/langs/hu_HU/cron.lang +++ b/htdocs/langs/hu_HU/cron.lang @@ -20,24 +20,24 @@ EnabledAndDisabled=Enabled and disabled CronLastOutput=Latest run output CronLastResult=Latest result code CronCommand=Command -CronList=Scheduled jobs +CronList=Időzített feladatok CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned -CronTask=Job +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronTask=Feladat CronNone=Nincs -CronDtStart=Not before -CronDtEnd=Not after -CronDtNextLaunch=Next execution -CronDtLastLaunch=Start date of latest execution +CronDtStart=Nem hamarabb mint +CronDtEnd=Nem később mint +CronDtNextLaunch=Következő végrehajtás +CronDtLastLaunch=Legutóbbi végrehajtás időpontja CronDtLastResult=End date of latest execution CronFrequency=Gyakoriság -CronClass=Class +CronClass=Osztály CronMethod=Módszer CronModule=Modul -CronNoJobs=No jobs registered +CronNoJobs=Nincsenek feladatok CronPriority=Prioritás CronLabel=Felirat CronNbRun=Nb. launch @@ -49,20 +49,20 @@ CronAdd= Add jobs CronEvery=Execute job each CronObject=Instance/Object to create CronArgs=Paraméterek -CronSaveSucess=Save successfully +CronSaveSucess=Sikeres mentés CronNote=Megjegyzés -CronFieldMandatory=Fields %s is mandatory -CronErrEndDateStartDt=End date cannot be before start date -CronStatusActiveBtn=Enable +CronFieldMandatory=A %s mezőket kötelező kitölteni +CronErrEndDateStartDt=A befejezés időpontja nem lehet hamarabb mint a kezdet +CronStatusActiveBtn=Engedélyez CronStatusInactiveBtn=Letiltás CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Küldő @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/hu_HU/errors.lang b/htdocs/langs/hu_HU/errors.lang index 2635aacb539..b35d06274d5 100644 --- a/htdocs/langs/hu_HU/errors.lang +++ b/htdocs/langs/hu_HU/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Nem sikerült létrehozni a '%s' fájlt. ErrorFailToRenameDir=Nem sikerült átnevezni a '%s' könyvtárat '%s' -ra. ErrorFailToCreateDir=Nem sikerült létrehozni a '%s' könyvtárat. ErrorFailToDeleteDir=Nem sikerült törölni a '%s' könyvtárat. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Ez a kapcsolat már definiálva van, mint az ilyen típusú kapcsolatot. ErrorCashAccountAcceptsOnlyCashMoney=Ez egy folyószámla, ezért csak készpénzes fizetési módot fogad el. ErrorFromToAccountsMustDiffers=A forrás és cél bankszámláknak különbözőeknek kell lenniük. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Nem sikerült írni a %s könyvtárba ErrorFoundBadEmailInFile=Talált rossz e-mail szintaxisa %s sorok fájlt (például az e-mail vonal %s %s =) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Néhány kötelezően kitöltendő mező még üres. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nem sikerült létrehozni egy könyvtárat. Ellenőrizze, hogy a Web szerver felhasználó engedélyekkel rendelkezik, hogy ültesse át Dolibarr dokumentumok könyvtárba. Ha a paraméter safe_mode engedélyezve van ez a PHP-t, ellenőrizze, hogy Dolibarr PHP fájlok tulajdonosa a webszerver felhasználó (vagy csoport). ErrorNoMailDefinedForThisUser=Nincs megadva a felhasználó email címe ErrorFeatureNeedJavascript=A funkcó működéséhez Javascript aktiválására van szükség. A beállítások - képernyő részben beállíthatja. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Felhasználói fiók %s végrehajtására használnak web szerver nincs engedélye az adott ErrorNoActivatedBarcode=Nem vonalkód típus aktivált ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index 74817be31c4..e72c33485a3 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=%s paraméter nincs definiálva ErrorUnknown=Ismeretlen hiba ErrorSQL=SQL Hiba ErrorLogoFileNotFound='%s' logo fájl nincs meg -ErrorGoToGlobalSetup=Menj a 'Cég/Alapítván' beállításokhoz a javítás érdekében +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Menj a Modul beállításokhoz a javítás érdekében ErrorFailedToSendMail=Nemsikerült elküldeni a levelet (feladó=%s, címzett=%s) ErrorFileNotUploaded=A Fájl nem lett feltöltve. Ellenőrizd, hogy a méret nem haladja -e meg a maximum méretet, van -e elég szabad hely és hogy a célkönyvtárban nincs -e még egy ugyan ilyen nevü fájl. @@ -153,6 +153,7 @@ Edit=Szerkesztés Validate=Hitelesítés ValidateAndApprove=Validate and Approve ToValidate=Hitelesyteni +NotValidated=Not validated Save=Mentés SaveAs=Mentés másként TestConnection=Kapcsolat tesztelése @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Kapcsolat Setup=Beállítás Alert=Figyelmeztetés +MenuWarnings=Figyelmeztetések Previous=Előző Next=Következő Cards=Kártyák @@ -308,6 +310,7 @@ Copy=Másolás Paste=Beillesztés Default=Alaptértelmezett DefaultValue=Alaptértelmezett érték +DefaultValues=Default values Price=Ár UnitPrice=Egység ár UnitPriceHT=Egység ár (nettó) @@ -363,7 +366,8 @@ VATRate=ÁFA érték Average=Átlag Sum=Szumma Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Opció List=Lista FullList=Teljes lista @@ -387,7 +391,7 @@ ActionRunningNotStarted=Nincs elkezdve ActionRunningShort=Folyamatban ActionDoneShort=Befejezett ActionUncomplete=Befejezetlen -CompanyFoundation=Cég/Alapítvány +CompanyFoundation=Company/Organisation ContactsForCompany=Kapcsolat/cím ehhez a harmadik félhez ContactsAddressesForCompany=Kapcsolat/cím ehhez a harmadik félhez AddressesForCompany=Cím ehhez a harmadik félhez @@ -405,8 +409,9 @@ Generate=Generálás Duration=Időtartam TotalDuration=Teljes időtartam Summary=Összefoglalás -DolibarrStateBoard=Statisztikák -DolibarrWorkBoard=Munkafeladatok felület +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Elérhető NotYetAvailable=Még nem elérhető NotAvailable=Nem elérhető @@ -434,7 +439,7 @@ Reportings=Jelentés Draft=Piszkozat Drafts=Piszkozatok Validated=Hitelesítve -Opened=Megnyitva +Opened=Nyitott New=Új Discount=Kedvezmény Unknown=Ismeretlen @@ -453,6 +458,7 @@ NextStep=Következő lépés Datas=Adat None=Nincs NoneF=Nincs +NoneOrSeveral=None or several Late=Késő LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Kép @@ -606,7 +612,8 @@ PartialWoman=Részleges TotalWoman=Összes NeverReceived=Soha nem került átvételre Canceled=Megszakítva -YouCanChangeValuesForThisListFromDictionarySetup=A lista elemeit megváltoztathatja a menüben: Beállítások->Szótár +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Szín Documents=Kapcsolt fájlok @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Objektum klónozása a főbb jellemzőivel PDFMerge=PDF összeolvasztás Merge=Összeolvasztás +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menü-menedzser WarningYouAreInMaintenanceMode=Figyelem, karbantartási mód, csak %s jelentkezhet be. @@ -708,6 +716,7 @@ from=tól toward=felé Access=Hozzáférés SelectAction=Válasszon tevékenységet +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Használja a Ctrl+C kombinációt a vágólapra másoláshoz SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Eredeti fájlnév @@ -718,7 +727,7 @@ ViewPrivateNote=Megjegyzések XMoreLines=%s sor rejtve maradt PublicUrl=Nyílvános URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=%s fájl nyomtatása ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Tisztelettel DeleteLine=Sor törlése ConfirmDeleteLine=Biztos, hogy törölni akarja ezt a sort ? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Naptár GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Közvetlen letöltés címe Download=Letöltés ActualizeCurrency=Árfolyam frissítése Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Hétfő Tuesday=Kedd @@ -817,5 +835,3 @@ SearchIntoContracts=Szerződések SearchIntoCustomerShipments=Vásárlói kiszállítások SearchIntoExpenseReports=Költség kimutatások SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index 681fd608a8e..612007188e9 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Dátum a születési BirthdayAlertOn=Születésnaposok aktív BirthdayAlertOff=Születésnaposok inaktív +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Beavatkozás validált Notify_FICHINTER_SENTBYMAIL=Beavatkozás küldése e-mailben @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Ez egy teszt mail (a szó vizsgálatot kell vastag PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
egy információs függően harmadik fél ország.
Például, az ország %s, ez %s kódot. DolibarrDemo=Dolibarr ERP / CRM demo -StatsByNumberOfUnits=Statisztikák száma termékek / szolgáltatások egységek -StatsByNumberOfEntities=Statisztikák száma utaló szervezetek -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=A beavatkozás %s nem érvényesítette. EMailTextInvoiceValidated=A számla %s nem érvényesítette. diff --git a/htdocs/langs/hu_HU/projects.lang b/htdocs/langs/hu_HU/projects.lang index 200f09562ea..b7066f448ed 100644 --- a/htdocs/langs/hu_HU/projects.lang +++ b/htdocs/langs/hu_HU/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Mindenki PrivateProject=Projekt kapcsolatok +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Minden projekt MyProjectsDesc=Ez a nézet azokra a projektekre van korlátozva amivel valamilyen összefüggésben áll. ProjectsPublicDesc=Ez a nézet minden az ön által megtekinthető projektre van korlátozva. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Ez a nézet minden projektet tartalmaz. AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Új projekt AddProject=Create project DeleteAProject=Projekt törlése DeleteATask=Feladat törlése ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Projektek mutatása SetProject=Projekt beállítása NoProject=Nincs létrehozott vagy tulajdonolt projekt NbOfProjects=Projektek száma +NbOfTasks=Nb of tasks TimeSpent=Eltöltött idő TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Felhasználó TaskTimeNote=Megjegyzés TaskTimeDate=Dátum -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Új eltöltött idő +NewTimeSpent=Töltött idő MyTimeSpent=Az én eltöltött időm Tasks=Feladatok Task=Feladat @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Új feladat AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivitás Activities=Feladatok/aktivitások MyActivities=Feladataim/Aktivitásaim @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=A projekthez tartozó szerződések listája +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=A projekthez tartozó intervenciók listája ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekt kapcsolatok ActionsOnProject=Projekteh tartozó cselekvések YouAreNotContactOfProject=Nem kapcsolata ennek a privát projektnek +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Eltöltött idő törlése ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Erőforrások ProjectsDedicatedToThisThirdParty=Harmadik félhnek dedikált projektek NoTasks=Nincs a projekthez tartozó feladat LinkedToAnotherCompany=Harmadik félhez kapcsolva -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Töltött idő üres ThisWillAlsoRemoveTasks=Ez a művelet is törli az összes feladatot a projekt (%s feladatokat a pillanatban), és az összes bemenet eltöltött idő. IfNeedToUseOhterObjectKeepEmpty=Ha egyes tárgyakat (számla, megrendelés, ...), amelyek egy másik harmadik félnek kell kapcsolódniuk a projekt létrehozásához, tartsa ezt az üres, hogy a projekt, hogy több harmadik fél. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index 9d4337e6803..f2b698ffa73 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Tambahkan sebuah akun akuntansi AccountAccounting=Akun akuntansi AccountAccountingShort=Akun +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Buku besar +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Saldo akun CAHTF=Total pembelian pemasok sebelum pajak @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Jurnal Penjualan @@ -132,19 +140,19 @@ Sens=Sen Codejournal=Jurnal NumPiece=Jumlah potongan TransactionNumShort=Num. transaction -AccountingCategory=Kategori akuntansi +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debet dan Kredit tidak boleh ada nilai di saat yg sama - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Daftar akun-akun akunting Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total margin penjualan @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Kesalahan, Anda tidak dapat menghapus akun akuntansi ini karena digunakan MvtNotCorrectlyBalanced=Perpindahan tidak benar seimbang . Kredit = %s . Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Terapkan kategori secara massal AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Ekspor @@ -211,6 +231,7 @@ Modelcsv_ciel=Ekspor terhadap Sage Ceil Compta atau Compta Evolution Modelcsv_quadratus=Ekspor terhadap Quadratus QuadraCompta Modelcsv_ebp=Ekspor terhadap EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Terhitung Formula=Rumus ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=Format ekspor yang diseting tidak sesuai untuk halaman ini BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index b089fc36ed8..d1a0ecc9941 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Beberapa pengguna internal ExternalUsers=Beberapa pengguna eksternal GUISetup=Penampakan display SetupArea=Area setup +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Halaman percobaan untuk menunggah / upload file ( berdasarkan konfigurasi setup ) IfModuleEnabled=Catatan: Ya ini efektif jika hanya module %s di hidupkan RemoveLock=Hapus file %s kalau sudah tersedia untuk diperbolehkan penggunaannya oleh update tool. @@ -85,7 +86,7 @@ Mask=Topeng NextValue=Nilai berikutnya NextValueForInvoices=Nilai berikutnya (faktur) NextValueForCreditNotes=Nilai berikutnya (nota kredit) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Catatan: PHP Anda membatasi ukuran setiap file upload untuk% s% s, apa pun nilai parameter ini adalah NoMaxSizeByPHPLimit=Catatan: Tidak ada batas diatur dalam konfigurasi PHP Anda @@ -103,7 +104,7 @@ MenuIdParent=Menu Induk ID DetailMenuIdParent=ID dari menu induk (kosong untuk menu atas) DetailPosition=Urutkan nomor untuk menentukan posisi menu AllMenus=Semua -NotConfigured=Modul tidak dikonfigurasi +NotConfigured=Module/Application not configured Active=Aktif SetupShort=Pengaturan OtherOptions=Pilihan lain @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Ribuan pemisah Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modul LanguageBrowserParameter=Parameter% s LocalisationDolibarrParameters=Parameter Lokalisasi ClientTZ=Zona Waktu Klien (Pengguna) @@ -123,7 +123,8 @@ PHPTZ=Zona Waktu Server PHP DaylingSavingTime=Menghemat waktu siang hari CurrentHour=Jam PHP (Server) CurrentSessionTimeOut=Sesi sekarang habis waktu -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Izin BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Keistimewaan DolibarrLicense=Lisensi Developpers=Pembangun/Penyumbang @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Setup Modul -ModulesSetup=Setup Modul-Modul +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistem ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Versi Dolibarr saat ini CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unik -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telepon ExtrafieldPrice = Harga ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Daftar Pilihan ExtrafieldSelectList = Pilih dari tabel -ExtrafieldSeparator=Pembatas +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Kata kunci -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Pengguna & Grup Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Pemasok Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Produk @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifikasi @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Membuat/Merubah produk Permission34=Menghapus Produk Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Kembali Ke Daftar Modul BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=Ringkasan Sistem Informasi SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Berita Hari Ini MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Tampilkan Logo dimenu kiri -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nama CompanyAddress=Alamat CompanyZip=Kode Pos @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Catatan kredit CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanyol BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/id_ID/compta.lang b/htdocs/langs/id_ID/compta.lang index 6dfee813bf9..65bbb736dc8 100644 --- a/htdocs/langs/id_ID/compta.lang +++ b/htdocs/langs/id_ID/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Pengaturan RemainingAmountPayment=Amount payment remaining : Account=Akun -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/id_ID/cron.lang b/htdocs/langs/id_ID/cron.lang index 40543fd4f96..03cb471fe75 100644 --- a/htdocs/langs/id_ID/cron.lang +++ b/htdocs/langs/id_ID/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Dari @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/id_ID/errors.lang b/htdocs/langs/id_ID/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/id_ID/errors.lang +++ b/htdocs/langs/id_ID/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index cfecf76ef70..74921a43c4b 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validasi ValidateAndApprove=Validate and Approve ToValidate=Untuk divalidasi +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Pengaturan Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Harga UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=Daftar FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Tidak tersedia @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Konsep Drafts=Drafts Validated=Divalidasi -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Tidak diketahui @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Dibatalkan -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Cuti - -BulkActions=Bulk actions diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang index bed72a95198..fab58d6ceba 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/id_ID/projects.lang b/htdocs/langs/id_ID/projects.lang index 72821fbdf8a..efbeec7d156 100644 --- a/htdocs/langs/id_ID/projects.lang +++ b/htdocs/langs/id_ID/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Tanggal -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index f1254652032..5249dd2e7d0 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Náttúra +AccountingJournalType1=Various operation +AccountingJournalType2=Velta +AccountingJournalType3=Innkaup +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index c63f2421390..b6ec2e652a5 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Innri notendur ExternalUsers=Ytri notendur GUISetup=Skoða SetupArea=Skipulag svæðis +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form til að prófa skrá hlaða (samkvæmt skipulag) IfModuleEnabled=Ath: er já aðeins gild ef einingin %s er virkt RemoveLock=Fjarlægja skrána %s ef það er til staðar til að leyfa endurnýja tól. @@ -85,7 +86,7 @@ Mask=Gríma NextValue=Næsta gildi NextValueForInvoices=Næsta gildi (reikningum) NextValueForCreditNotes=Næsta gildi (kredit athugasemdum) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Ath: PHP þínum takmörk Nýjustu's stærð hvor til %s % s, hvað sem viðfang 'gildi þetta er NoMaxSizeByPHPLimit=Ath: Ekki eru sett lágmörk á PHP uppsetningu þína @@ -103,7 +104,7 @@ MenuIdParent=Parent Valmynd ID DetailMenuIdParent=Auðkenni Valmynd foreldri (0 til aðalvalmynd) DetailPosition=Raða númer til að tilgreina Valmynd stöðu AllMenus=All -NotConfigured=Ekki stillt +NotConfigured=Module/Application not configured Active=Virk SetupShort=Skipulag OtherOptions=Aðrir valkostir @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand skiltákn Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Viðfang %s LocalisationDolibarrParameters=Staðsetning stika ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=Time Zone PHP miðlara DaylingSavingTime=Sumartíma (notandi) CurrentHour=PHP-miðlara klukkustund CurrentSessionTimeOut=Núverandi fundur tími -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Heimildir BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Aðeins atriði frá virkt einingar eru birtar. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Gagnasafn lykilorð dulkóðuð í conf.php (Vir InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Verndun mynda pdf skrá (Virkja EKKI mælt, brýtur massi pdf-kynslóð) -ProtectAndEncryptPdfFilesDesc=Verndun á PDF skjal heldur laus við að lesa og prenta með einhverju PDF vafra. Hins vegar útgáfa og afritun er ekki hægt lengur. Athugaðu að nota þennan eiginleika að byggja upp alþjóðlegt cumulated Pdf ekki að vinna (eins og ógreiddra reikninga). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Lögun DolibarrLicense=License Developpers=Developers / Höfundar @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr netinu kynningu OfficialMarketPlace=Opinber markaði fyrir ytri modules / addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Notandanafn eða skjölum verktaki '(Doc, FAQs ...),
kíkið á Dolibarr Wiki:
%s ForAnswersSeeForum=Fyrir einhverjar aðrar spurningar / hjálp, getur þú notað Dolibarr spjall:
%s HelpCenterDesc1=Þetta svæði getur hjálpað þér að fá stuðning Hjálp þjónusta á Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Lögun er ekki í boði á Unix eins og kerfum. Próf SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module skipulag -ModulesSetup=Modules skipulag +ModulesSetup=Modules/Application setup ModuleFamilyBase=Kerfi ModuleFamilyCrm=Viðskiptavinur Tengsl Stjórnun (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr núverandi útgáfa CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Þú getur fært inn hvaða tala lagsins. Í þessu maska gæti eftirfarandi tög að nota:
(000000) samsvarar fjölda sem verður incremented á hverjum %s . Sláðu inn eins mörg núll og löngun lengd borðið. Teljarinn verður lokið við núllum frá vinstri til að fá eins mörg núll og lagsins.
(000000 000) sami eins og fyrri en að vega upp á móti sem svarar til fjölda til hægri á + merki er notað sem hófst á fyrsta %s .
(000000 @ x) sami eins og fyrri en borðið er endurstilla á núll þegar mánaðar x er náð (x á milli 1 og 12). Ef þessi möguleiki er notaður og x er 2 eða hærra, þá röð (YY) (mm) eða (áááá) (mm) er einnig nauðsynleg.
(Dd) dag (01-31).
(Mm) mánuði (01-12).
(YY), (áááá) eða (y) ár yfir 2, 4 eða 1 númer.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Allir aðrir stafir í möskva haldast óbreytt.
Bil eru ekki leyfð.
-GenericMaskCodes4a=Dæmi um 99 %s af þriðja aðila TheCompany gert 2007/01/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Dæmi um þriðja aðila skapa á 2007/3/1:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Fara aftur á sérhannaðar númer samkvæmt skilgreiningu lagsins. ServerAvailableOnIPOrPort=Þjónninn er í boði á% heimilisfang er á gátt %s ServerNotAvailableOnIPOrPort=Þjónninn er ekki í boði á% heimilisfang er á gátt %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Sími ExtrafieldPrice = Verð ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Lykilorð -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Notendur & hópar Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Reikninga og stjórnun kredit athugið fyrir viðskiptavini. Invoic Module40Name=Birgjar Module40Desc=Birgis stjórnun og kaupa (pöntunum og reikningum) Module42Name=Syslog -Module42Desc=Annálar aðstöðu (skrifað) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Ritstjórar Module49Desc=Ritstjórainnskráning stjórnun Module50Name=Vörur @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar sameining Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Tilkynningar @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind viðskipti viðbúnað Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-fyrirtæki Module5000Desc=Leyfir þér að stjórna mörgum fyrirtækjum Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Búa til / breyta vörur Permission34=Eyða vöru Permission36=Sjá / stjórna falinn vörur Permission38=Útflutningur vöru -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Eyða verkefni (sameiginleg verkefni og verkefnum sem ég hef samband vegna) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Röðun aðferðir DictionarySource=Uppruni tillögur / pantanir DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Einingar DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Skipulag vistuð +SetupNotSaved=Setup not saved BackToModuleList=Til baka í mát lista BackToDictionaryList=Til baka orðabækur lista VATManagement=VSK Stjórn @@ -921,7 +947,7 @@ Host=Server DriverType=Bílstjóri tegund SummarySystem=System Information yfirlit SummaryConst=Listi yfir allar Dolibarr skipulag breytur -MenuCompanySetup=Fyrirtæki / Stofnun +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard matseðill framkvæmdastjóri DefaultMenuSmartphoneManager=Smartphone matseðill framkvæmdastjóri Skin=Skin þema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Skilaboð dagsins MessageLogin=Innskráning síðu skilaboð +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Varanleg leita mynd til vinstri valmynd DefaultLanguage=Sjálfgefið tungumál til að nota (tungumálið code) EnableMultilangInterface=Virkja Fjöltyng tengi EnableShowLogo=Sýna merki á vinstri valmynd -CompanyInfo=Fyrirtæki / stofnun upplýsingar -CompanyIds=Fyrirtæki / stofnun auðkenni +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nafn CompanyAddress=Heimilisfang CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Umburðarlyndi töf (í dögum) áður en viðvörun u Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Umburðarlyndi töf (í dögum) áður en vakandi fyrir eftirlit leggja inn til að gera Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Aðrar færslur matseðill stjórna valfrjálst stika. LogEvents=Öryggi endurskoðun viðburðir Audit=Úttekt @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Listi yfir Dolibarr öryggi viðburðir SecurityEventsPurged=Öryggi viðburðir hreinsa LogEventDesc=Þú getur gert hér skráir þig inn Dolibarr öryggi viðburðir. Stjórnandi getur þá sjá efni þess í gegnum valmynd System verkfæri - endurskoðun. Aðvörun, getur þessi eiginleiki neyta mikið af gögnum í gagnagrunninum. -AreaForAdminOnly=Þessir eiginleikar geta vera notaður af notendum og stjórnandi aðeins. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Kerfi upplýsingar er ýmis tæknilegar upplýsingar sem þú færð í lesa aðeins háttur og sýnileg Aðeins kerfisstjórar. SystemAreaForAdminOnly=Þetta svæði er í boði fyrir notendur stjórnandi aðeins. Ekkert af Dolibarr leyfi getur dregið þessi mörk. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professional Id einstakt MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Óákveðinn greinir í ensku útflutningur hlekkur til %s snið er að finna á eftirfarandi tengil: %s ##### Invoices ##### BillsSetup=Kvittanir í mát skipulag BillsNumberingModule=Reikninga og lána athugasemdir tala mát BillsPDFModules=Invoice skjöl módel +PaymentsPDFModules=Payment documents models CreditNote=Credit athugið CreditNotes=Credit athugasemdir ForceInvoiceDate=Force dagsetningu reiknings staðfestingu dagsetningu @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Vörur mát skipulag ServiceSetup=Þjónusta mát skipulag @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Dagsetning reiknings notað Buy=Kaupa Sell=Selja InvoiceDateUsed=Dagsetning reiknings notað -YourCompanyDoesNotUseVAT=Félagið hefur verið skilgreint til að nota VSK (Heim - Skipulag - Fyrirtæki / Stofnun), svo það er ekkert VSK valmöguleika til skipulag. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Bankar Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Smelltu til að hringja mát skipulag -ClickToDialUrlDesc=Url kallað þegar smellur á picto síminn er lokið. Dans l'url, énumérés pouvez utiliser les balises
%% 1 $ s Qui Sera remplacé jöfnuður æ Sími de l'appelé
%% 2 $ s Qui Sera remplacé jöfnuður æ Sími de l'appelant (æ votre)
%% 3 $ s Qui Sera remplacé jöfnuður votre innskráningu clicktodial (skilgreining sur votre fiche utilisateur)
%% 4 $ s Qui Sera remplacé jöfnuður votre mot de passe clicktodial (skilgreining sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Almennt sýna til BankOrderES=Spænska BankOrderESDesc=Spænska sýna til ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-fyrirtæki mát skipulag ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/is_IS/compta.lang b/htdocs/langs/is_IS/compta.lang index 240fba50459..1882883d39c 100644 --- a/htdocs/langs/is_IS/compta.lang +++ b/htdocs/langs/is_IS/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Skipulag RemainingAmountPayment=Upphæð greiðslu eftir: Account=Reikningur -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Tekjur Outcome=Kostnað ReportInOut=Tekjur / gjöld @@ -56,6 +56,7 @@ MenuTaxAndDividends=Skattar og arður MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Bókhalds / ríkissjóðs area NewPayment=Ný greiðsla @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Það innheldur alla virka greiðslur reikninga sem berast frá viðskiptavini.
- Þetta er byggt á gjalddagi þessara reikninga
-DepositsAreNotIncluded=- Innlánsstofnanir reikningar eru né með -DepositsAreIncluded=- Innlánsstofnanir reikningar eru +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Skýrsla um þriðja aðila IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sala Journal DescPurchasesJournal=Kaup Journal InvoiceRef=Invoice tilv. CodeNotDef=Ekki skilgreint -WarningDepositsNotIncluded=Innlán reikningar eru ekki með í þessari útgáfu með þessari endurskoðun áfanga. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/is_IS/cron.lang b/htdocs/langs/is_IS/cron.lang index 28d4e811598..1cf87277e89 100644 --- a/htdocs/langs/is_IS/cron.lang +++ b/htdocs/langs/is_IS/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Slökkva CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Frá @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/is_IS/errors.lang b/htdocs/langs/is_IS/errors.lang index e15208488af..67c301be52a 100644 --- a/htdocs/langs/is_IS/errors.lang +++ b/htdocs/langs/is_IS/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Ekki tókst að búa til skrána ' %s '. ErrorFailToRenameDir=Ekki tókst að endurnefna 'Mappan %s ' í ' %s '. ErrorFailToCreateDir=Ekki tókst að búa til möppu ' %s '. ErrorFailToDeleteDir=Tókst ekki að eyða '% möppu s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Þessi tengiliður er nú þegar skilgreint og tengiliður fyrir þessa tegund. ErrorCashAccountAcceptsOnlyCashMoney=Þessi bankareikningur er reiðufé reikning, svo tekur það greiðslur af gerðinni reiðufé eingöngu. ErrorFromToAccountsMustDiffers=Heimild og markmið bankareikninga verður að vera annað. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Tókst ekki að skrifa í möppunni %s ErrorFoundBadEmailInFile=Stofna rangt netfang setningafræði fyrir %s línur í skrá (td línu %s með email = %s ) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Sumir Nauðsynlegir reitir voru ekki fylltir. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Ekki tókst að búa til möppu. Athugaðu að vefþjóninn notandi hefur réttindi til að skrifa inn Dolibarr skjöl skrá. Ef viðfang safe_mode er virkt á þessu PHP, athuga hvort Dolibarr PHP skrár á nú á netþjóninn notandi (eða hóp). ErrorNoMailDefinedForThisUser=Nei póstur er skilgreind fyrir þennan notanda ErrorFeatureNeedJavascript=Þessi aðgerð þarfnast javascript til að virkja til vinnu. Breyting þessi hefur skipulag - sýna. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Notandi Reikningur %s notað til að framkvæma vefur framreiðslumaður hefur ekki leyfi til að ErrorNoActivatedBarcode=Nei barcode gerð virk ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index cc86e39b822..e1e180da766 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Viðfang %s ekki skilgreint ErrorUnknown=Unknown error ErrorSQL=SQL Villa ErrorLogoFileNotFound=%s Logo skrá 'fannst ekki -ErrorGoToGlobalSetup=Fara á "Fyrirtæki / skipulag Foundation" til að laga þetta +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Fara til Module skipulag til festa this ErrorFailedToSendMail=Ekki tókst að senda póst (sendandi = %s , símtól = %s ) ErrorFileNotUploaded=Skrá var ekki send inn. Athugaðu að stærð hjartarskinn ekki fara yfir leyfileg mörk, sem laust pláss er í boði á diski og að það er ekki nú þegar skrá með sama nafni í þessari möppu. @@ -153,6 +153,7 @@ Edit=Breyta Validate=Staðfesta ValidateAndApprove=Validate and Approve ToValidate=Til að sannprófa +NotValidated=Not validated Save=Vista SaveAs=Save As TestConnection=Próf tengingu @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Tengsl Setup=Skipulag Alert=Viðvörun +MenuWarnings=Alerts Previous=Fyrri Next=Næsti Cards=Spil @@ -308,6 +310,7 @@ Copy=Afrita Paste=Líma Default=Default DefaultValue=Sjálfgefið gildi +DefaultValues=Default values Price=Verð UnitPrice=Eining verðs UnitPriceHT=Unit verð (nettó) @@ -363,7 +366,8 @@ VATRate=VSK-hlutfall Average=Meðaltal Sum=Summa Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Valkostur List=Listi FullList=Sjá lista @@ -387,7 +391,7 @@ ActionRunningNotStarted=Ekki byrjað ActionRunningShort=In progress ActionDoneShort=Lokið ActionUncomplete=Uncomplete -CompanyFoundation=Fyrirtæki / Stofnun +CompanyFoundation=Company/Organisation ContactsForCompany=Tengiliðir / adresses fyrir þessa þriðja aðila ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Mynda Duration=Lengd TotalDuration=Samtals tímalengd Summary=Yfirlit -DolibarrStateBoard=Tölfræði -DolibarrWorkBoard=Vinna verkefni borð +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Laus NotYetAvailable=Ekki enn í boði NotAvailable=Ekki í boði @@ -434,7 +439,7 @@ Reportings=Skýrslur Draft=Víxill Drafts=Drög Validated=Staðfestar -Opened=Opnaður +Opened=Opnaðu New=New Discount=Afsláttur Unknown=Óþekkt @@ -453,6 +458,7 @@ NextStep=Næsta skref Datas=Gögn None=None NoneF=None +NoneOrSeveral=None or several Late=Seint LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Mynd augnabliksins @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Samtals NeverReceived=Aldrei fengið Canceled=Hætt við -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Litur Documents=Hlekkur skrá @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Klóna mótmæla við helstu eiginleika hennar PDFMerge=PDF Sameina Merge=Sameina +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Sýna síðu til að prenta aðalefni area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Aðvörun, ert þú í viðhald háttur, svo að aðeins tenging %s er leyft að nota forritið í augnablikinu. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Eyða línu ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Mánudagur Tuesday=Þriðjudagur @@ -817,5 +835,3 @@ SearchIntoContracts=Samningar SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index e0affdb2cc9..76ee678b253 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Dags til fæðingu BirthdayAlertOn=afmæli viðvörun virk BirthdayAlertOff=afmæli viðvörun óvirk +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention staðfestar Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Þetta er prófun póstur (orðið próf verður f PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s
er upplýsingamiðstöð ráðast á þriðja aðila land.
Til dæmis, þegar landið %s , kóði% það er. DolibarrDemo=Dolibarr ERP / CRM kynningu -StatsByNumberOfUnits=Tölfræði í fjölda af vörum / þjónustu eininga -StatsByNumberOfEntities=Tölfræði í fjölda vísa aðila -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Á% afskipti s hefur verið staðfest. EMailTextInvoiceValidated=Í% reikningi s hefur verið staðfest. diff --git a/htdocs/langs/is_IS/projects.lang b/htdocs/langs/is_IS/projects.lang index 40b006ff906..8851e24cfe2 100644 --- a/htdocs/langs/is_IS/projects.lang +++ b/htdocs/langs/is_IS/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Allir PrivateProject=Project tengiliðir +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Öll verkefni MyProjectsDesc=Þessi skoðun er takmörkuð við verkefni sem þú ert að hafa samband við (hvað sem er gerð). ProjectsPublicDesc=Þetta sýnir öll verkefni sem þú ert að fá að lesa. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Þetta sýnir öll verkefni og verkefni (notandi heimildir veita þér AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Ný verkefni AddProject=Create project DeleteAProject=Eyða verkefni DeleteATask=Eyða verkefni ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Sýna verkefni SetProject=Setja verkefni NoProject=Engin verkefni skilgreind eða í eigu NbOfProjects=ATH verkefna +NbOfTasks=Nb of tasks TimeSpent=Tíma sem fer TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Notandi TaskTimeNote=Ath TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Nýr tími +NewTimeSpent=Tími MyTimeSpent=Minn tími var Tasks=Verkefni Task=Verkefni @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Ný verkefni AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Afþreying Activities=Verkefni / starfsemi MyActivities=verkefni mín / starfsemi @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Listi yfir samninga í tengslum við verkefnið +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Listi yfir inngrip í tengslum við verkefnið ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project tengiliðir ActionsOnProject=Aðgerðir á verkefninu YouAreNotContactOfProject=Þú ert ekki samband við þessa einka verkefni +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Eyða tíma ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Gagnagrunnur ProjectsDedicatedToThisThirdParty=Verkefni hollur til þessa þriðja aðila NoTasks=Engin verkefni fyrir þetta verkefni LinkedToAnotherCompany=Tengjast öðrum þriðja aðila -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Tími er tómur ThisWillAlsoRemoveTasks=Þessi aðgerð mun einnig eyða öllum verkefnum verkefnisins (%s verkefni í augnablikinu) og allt inntak tíma varið. IfNeedToUseOhterObjectKeepEmpty=Ef sumir hlutir (nótum röð ...), sem tilheyra öðrum þriðja aðila, verður að vera í tengslum við verkefnið til að búa til, halda þessu tóm til að hafa verkefni verði fjölnota þriðja aðila. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index e144c03ffff..489b64b2282 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Aggiungi un account di contabilità AccountAccounting=Account di contabilità AccountAccountingShort=Conto +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Account per contabilità suggerito MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Inserisci movimento UpdateMvts=Modifica di un movimento -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Contabilità generale +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Saldo CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -118,10 +126,10 @@ ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Account di contabilità predefinito per i prodotti acquistati (se non definito nella scheda prodotto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Account di contabilità predefinito per i prodotti venduti (se non definito nella scheda prodotto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Account di contabilità predefinito per i servizi acquistati (se non definito nella scheda servizio) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Account di contabilità predefinito per i servizi venduti (se non definito nella scheda servizio) Doctype=Tipo documento Docdate=Data @@ -132,19 +140,19 @@ Sens=Verso Codejournal=Giornale NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Categoria contabile +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Non impostato -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debito e Credito non possono avere un valore contemporaneamente - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Margine totale sulle vendite @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Movimento non bilanciato correttamente. Credito =%s. Debito =%s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Codice +Nature=Natura +AccountingJournalType1=Various operation +AccountingJournalType2=Vendite +AccountingJournalType3=Acquisti +AccountingJournalType4=Banca +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Esportazioni @@ -211,6 +231,7 @@ Modelcsv_ciel=Esportazione per Sage Ciel Compta o Compta Evolution Modelcsv_quadratus=Esportazione per Quadratus QuadraCompta Modelcsv_ebp=Esportazione per EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calcolato Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index ee6bf0e89c9..7a658ee1743 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -19,8 +19,8 @@ LocalSignature=Embedded local signature (less reliable) RemoteSignature=Remote distant signature (more reliable) FilesMissing=File mancanti FilesUpdated=File aggiornati -FilesModified=Modified Files -FilesAdded=Added Files +FilesModified=Files modificati +FilesAdded=Files aggiunti FileCheckDolibarr=Check integrity of application files AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package XmlNotFound=Xml Integrity File of application not found @@ -48,12 +48,13 @@ InternalUsers=Utenti interni ExternalUsers=Utenti esterni GUISetup=Layout di visualizzazione SetupArea=Sezione impostazioni +UploadNewTemplate=Carica nuovi modelli FormToTestFileUploadForm=Modulo per provare il caricamento file (secondo la configurazione) IfModuleEnabled=Nota: funziona solo se il modulo %s è attivo RemoveLock=Per consentire l'aggiornamento del modulo, il file %s deve essere eliminato, se esiste. RestoreLock=Impostare il file %s in sola lettura per disabilitare l'uso di qualsiasi strumento di aggiornamento. SecuritySetup=Impostazioni per la sicurezza -SecurityFilesDesc=Define here options related to security about uploading files. +SecurityFilesDesc=Definire qui le impostazioni relative alla sicurezza per l'upload dei files. ErrorModuleRequirePHPVersion=Errore: questo modulo richiede almeno la versione %s di PHP. ErrorModuleRequireDolibarrVersion=Errore: questo modulo richiede almeno la versione %s di Dolibarr ErrorDecimalLargerThanAreForbidden=Errore: Non è supportata una precisione superiore a %s . @@ -85,7 +86,7 @@ Mask=Maschera NextValue=Prossimo valore NextValueForInvoices=Prossimo valore (fatture) NextValueForCreditNotes=Prossimo valore (note di credito) -NextValueForDeposit=Valore successivo (deposito) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Valore successivo (sostituzioni) MustBeLowerThanPHPLimit=Nota: il tuo PHP limita la dimensione di ogni file upload a %s %s, sebbene il valore del parametro sia NoMaxSizeByPHPLimit=Nota: Non è stato fissato nessun limite massimo nella configurazione del PHP @@ -103,7 +104,7 @@ MenuIdParent=Capogruppo dal menu ID DetailMenuIdParent=ID del menu principale (0 per un menu in alto) DetailPosition=Ordina per definire il numero di posizione del menu AllMenus=Tutti -NotConfigured=Non configurato +NotConfigured= Modulo/Applicazione non configurato Active=Attivo SetupShort=Impostazioni OtherOptions=Altre opzioni @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separatore per le migliaia Destination=Destinazione IdModule=Modulo ID IdPermissions=Permessi ID -Modules=Moduli LanguageBrowserParameter=Parametro %s LocalisationDolibarrParameters=Parametri di localizzazione ClientTZ=Fuso orario client (utente) @@ -123,7 +123,8 @@ PHPTZ=Fuso orario server PHP DaylingSavingTime=Ora legale (utente) CurrentHour=Orario PHP (server) CurrentSessionTimeOut=Timeout sessione corrente -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Massimo numero di righe per componente @@ -189,13 +190,13 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Autorizzazioni BoxesDesc=I Widgets sono componenti che personalizzano le pagine aggiungendo delle informazioni.\nPuoi scegliere se mostrare il widget o meno cliccando 'Attiva' sulla la pagina di destinazione, o cliccando sul cestino per disattivarlo. OnlyActiveElementsAreShown=Vengono mostrati solo gli elementi relativi ai moduli attivi . -ModulesDesc=I moduli di Dolibarr definiscono quale funzionalità è abilitata. Alcuni moduli richiedono permessi da abilitare agli utenti, dopo la loro abilitazione. Clicca su on/off per l'abilitazione del modulo. +ModulesDesc=I moduli di Dolibarr definiscono quali funzionalità sono abilitate. Alcuni moduli, dopo la loro attivazione, richiedono dei permessi da abilitare agli utenti. Clicca su on/off per l'abilitazione del modulo. ModulesMarketPlaceDesc=Potete trovare altri moduli da scaricare su siti web esterni... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Trova altri moduli esterni... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, il mercato ufficiale dei moduli esterni per Dolibarr ERP/CRM -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) +DoliPartnersDesc=Elenco di aziende che forniscono moduli e funzionalità sviluppate su misura (Nota: chiunque sia esperto in programmazione PHP è in grado di fornire un contributo allo sviluppo per un progetto open source) WebSiteDesc=Siti Web in cui è possibile cercare altri moduli ... URL=Collegamento BoxesAvailable=Widget disponibili @@ -213,31 +214,33 @@ MainDbPasswordFileConfEncrypted=Password del database crittata in conf.php (racc InstrucToEncodePass=Per avere la password codificata sostituisci nel file conf.php , la linea
$dolibarr_main_db_pass="...";
con
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Per avere la password decodificata (in chiaro) sostituisci nel fileconf.php la linea
$dolibarr_main_db_pass="crypted:...";
con
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protezione e crittografia dei PDF generati -ProtectAndEncryptPdfFilesDesc=La protezione di un documento PDF rende possibile solo la lettura e la stampa con qualsiasi browser. La modifica e la copia non sono più possibili. +ProtectAndEncryptPdfFilesDesc=La protezione di un documento PDF rende possibile la lettura e la stampa con qualsiasi browser; tuttavia modifica e copia non sono più possibili. Si noti che l'utilizzo di questa funzionalità non renderà possibile la stampa unione dei file PDF Feature=Caratteristica DolibarrLicense=Licenza Developpers=Sviluppatori e contributori OfficialWebSite=Sito ufficiale internazionale -OfficialWebSiteLocal=Local web site (%s) +OfficialWebSiteLocal=Sito ufficiale locale (%s) OfficialWiki=Dolibarr Wiki OfficialDemo=Dolibarr demo online OfficialMarketPlace=Market ufficiale per moduli esterni e addon OfficialWebHostingService=Servizi di hosting web referenziati (Hosting Cloud) ReferencedPreferredPartners=Preferred Partners -OtherResources=Altre risorse +OtherResources=Other resources +ExternalResources=Risorse esterne +SocialNetworks=Social Networks ForDocumentationSeeWiki=La documentazione per utenti e sviluppatori e le FAQ sono disponibili sul wiki di Dolibarr:
Dai un'occhiata a %s ForAnswersSeeForum=Per qualsiasi altro problema/domanda, si può utilizzare il forum di Dolibarr:
%s HelpCenterDesc1=In quest'area puoi cercare un servizio di supporto su Dolibarr. HelpCenterDesc2=Alcuni di questi servizi sono disponibili solo in inglese. CurrentMenuHandler=Attuale gestore menu MeasuringUnit=Unità di misura -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation +LeftMargin=Margine sinistro +TopMargin=Margine superiore +PaperSize=Tipo di carta +Orientation=Orientamento SpaceX=Space X SpaceY=Space Y -FontSize=Font size +FontSize=Dimensione del testo Content=Content NoticePeriod=Periodo di avviso NewByMonth=New by month @@ -265,12 +268,12 @@ UserEmail=Email utente CompanyEmail=Email società FeatureNotAvailableOnLinux=Funzione non disponibile sui sistemi Linux. Viene usato il server di posta installato sul server (es. sendmail). SubmitTranslation=Se la traduzione per questa lingua non è completa o trovi degli errori, puoi correggere i file presenti nella directory langs/%s e pubblicare i file modificati su www.transifex.com/dolibarr-association/dolibarr/ -SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. +SubmitTranslationENUS=Se la traduzione per questa lingua non è completa o trovi degli errori, puoi correggere i file presenti nella directory langs/%s e pubblicare i file modificati su dolibarr.org/forum oppure, se sei uno sviluppatore, su github.com/Dolibarr/dolibarr ModuleSetup=Impostazioni modulo -ModulesSetup=Impostazioni moduli +ModulesSetup=Impostazione Modulo/Applicazione ModuleFamilyBase=Sistema ModuleFamilyCrm=Client Resource Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) +ModuleFamilySrm=Gestione delle relazioni con i fornitori (SRM) ModuleFamilyProducts=Gestione dei prodotti (PM) ModuleFamilyHr=Gestione delle risorse umane (HR) ModuleFamilyProjects=Progetti/collaborazioni @@ -284,7 +287,7 @@ ModuleFamilyInterface=Interfacce con sistemi esterni MenuHandlers=Gestori menu MenuAdmin=Editor menu DoNotUseInProduction=Da non usare in produzione -ThisIsProcessToFollow=This is steps to process: +ThisIsProcessToFollow=Il procedimento da seguire è: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Passo %s FindPackageFromWebSite=Trova un pacchetto che fornisca la funzionalità desiderata (per esempio su %s). @@ -300,14 +303,17 @@ CurrentVersion=Versione attuale di Dolibarr CallUpdatePage=Vai alla pagina che aggiorna la struttura del database e dati su %s. LastStableVersion=Ultima versione stabile LastActivationDate=Latest activation date +LastActivationAuthor=Ultimo +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag :
{000000} Corrisponde a un numero che sarà incrementato ad ogni aggiunta di %s. Inserisci il numero di zeri equivalente alla lunghezza desiderata per il contatore. Verranno aggiunti zeri a sinistra fino alla lunghezza impostata per il contatore.
{000000+000} Come il precedente, ma con un offset corrispondente al numero a destra del segno + che viene applicato al primo inserimento %s.
{000000@x} Come sopra, ma il contatore viene reimpostato a zero quando si raggiunge il mese x (x compreso tra 1 e 12). Se viene utilizzata questa opzione e x è maggiore o uguale a 2, diventa obbligatorio inserire anche la sequenza {yy}{mm} o {yyyy}{mm}.
{dd} giorno (da 01 a 31).
{mm} mese (da 01 a 12).
{yy} , {yyyy} o {y} anno con 2, 4 o 1 cifra.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno inalterati.
Gli spazi non sono ammessi.
-GenericMaskCodes4a=Esempio sulla novantanovesima %s del terzo TheCompany fatta il 31/01/2007:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Esempio : il 99esimo cliente/fornitore viene creato 31/01/2007:
GenericMaskCodes4c=Esempio su prodotto creato il 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} darà ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX darà 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Restituisce un numero personalizzabile in base allo schema definito dalla maschera. ServerAvailableOnIPOrPort=Il server è disponibile all'indirizzo %s sulla porta %s ServerNotAvailableOnIPOrPort=Il server non è disponibile all'indirizzo %s sulla porta %s @@ -358,7 +364,7 @@ UrlGenerationParameters=Parametri di generazione degli indirizzi SecurityTokenIsUnique=Utilizzare un unico parametro securekey per ogni URL EnterRefToBuildUrl=Inserisci la reference per l'oggetto %s GetSecuredUrl=Prendi URL calcolato -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Nascondi pulsanti per azioni non autorizzate anziché mostrare pulsantii disabilitati OldVATRates=Vecchia aliquota IVA NewVATRates=Nuova aliquota IVA PriceBaseTypeToChange=Modifica i prezzi con la valuta di base definita. @@ -369,24 +375,26 @@ Int=Intero Float=Decimale DateAndTime=Data e ora Unique=Unico -Boolean=Booleano (Checkbox) +Boolean=booleano (una checkbox) ExtrafieldPhone = Tel. ExtrafieldPrice = Prezzo ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Lista di selezione ExtrafieldSelectList = Seleziona dalla tabella -ExtrafieldSeparator=Separatore +ExtrafieldSeparator=Separatore (non è un campo) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Bottone Radio -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio button (una sola scelta) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=La lista dei parametri deve contenere chiave univoca e valore.

Per esempio:
1, valore1
2, valore2
3, valore3
... ExtrafieldParamHelpradio=La lista dei parametri deve rispettare il formato chiave,valore

per esempio:
1,valore1
2,valore2
3,valore3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpsellist=La lista dei parametri viene da una tabella
Sintassi: table_name:label_field:id_field::filter
Per esempio: c_typent:libelle:id::filter

filter può essere un semplice test (tipo active=1 per mostrare solo valori attivi)
se vuoi filtrare per extrafield usa la sintassi extra.fieldcode=... (dove fieldcode è il codice del extrafield)

Per far dipendere la lista da un'altra usa:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldParamHelpchkbxlst=La lista dei parametri viene da una tabella
Sintassi: table_name:label_field:id_field::filter
Per esempio: c_typent:libelle:id::filter

filter può essere un semplice test (tipo active=1 per mostrare solo valori attivi)
se vuoi filtrare per extrafield usa la sintassi extra.fieldcode=... (dove fieldcode è il codice del extrafield)

Per far dipendere la lista da un'altra usa:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php LibraryToBuildPDF=Libreria utilizzata per generare PDF WarningUsingFPDF=Avviso: Il tuo conf.php contiene la direttiva dolibarr_pdf_force_fpdf = 1. Questo significa che si utilizza la libreria FPDF per generare file PDF. Questa libreria è obsoleta e non supporta un molte funzioni (Unicode, trasparenza dell'immagine, lingue cirillico, arabo e asiatico, ...), quindi potrebbero verificarsi errori durante la generazione di file PDF.
Per risolvere questo problema ed avere un supporto completo di generazione di file PDF, scarica biblioteca TCPDF , quindi commentare o rimuovere la riga $ dolibarr_pdf_force_fpdf = 1, e aggiungere invece $ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir' @@ -409,19 +417,33 @@ ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode AllBarcodeReset=All barcode values have been removed NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. EnableFileCache=Abilita file di cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). +ShowDetailsInPDFPageFoot=Aggiungi ulteriori dettagli a piè di pagina nei files PDF, come l'indirizzo della tua società o i nomi dei managers (per completare id professionali, capitale sociale e numeri di partita IVA). NoDetails=Nessun dettaglio nel piè di pagina DisplayCompanyInfo=Mostra indirizzo dell'azienda DisplayCompanyManagers=Visualizza nomi responsabili -DisplayCompanyInfoAndManagers=Display company address and manager names +DisplayCompanyInfoAndManagers=Mostra l'indirizzo dell'azienda ed il nome del manager EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. ModuleCompanyCodeAquarium=Restituisce una stringa composta da %s seguito dal codice del fornitore per il codice contabile fornitori, e %s seguito dal codice del cliente per il codice contabile cliente. ModuleCompanyCodePanicum=Restituisce un codice contabile vuoto. ModuleCompanyCodeDigitaria=Codice contabile dipendente dal codice di terze parti. Il codice è composto dal carattere "C" nella prima posizione seguito da i primi 5 caratteri del codice cliente/fornitore. Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description +WarningPHPMail=Attenzione: Alcuni providers(com Yahoo) non ti consentono di inviare un'email da un altro server rispetto al server Yahoo se l'indirizzo email utilizzato come mittente è la tua email di Yahoo (come myemail@yahoo.com, myemail@yahoo.fr, ...). La tua configurazione corrente utilizza il server dell'applicazione per inviare e-mail, quindi alcuni destinatari (quello compatibile con il protocollo restrittivo DMARC) chiederanno a Yahoo se accettano la tua e-mail e Yahoo risponderà "no" perché il server non è un server Yahoo, quindi alcune delle tue email inviate potrebbero non essere accettate.
Se il tuo provider di posta elettronica (come Yahoo) ha questa restrizione, devi modificare l'impostazione di posta elettronica per scegliere l'altro metodo "server SMTP" e inserire il server SMTP e le credenziali fornite da Il tuo provider di posta elettronica (chiedere al tuo fornitore di Email di ottenere credenziali SMTP per il tuo account). +ClickToShowDescription=Clicca per mostrare la descrizione +DependsOn=A questo modulo serve il modulo +RequiredBy=Questo modulo è richiesto dal modulo +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Abilita l'utilizzo di valori predefiniti personalizzati +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Campo +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Testo libero sul report di spesa +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Utenti e gruppi Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Gestione Fatture e note di credito per i clienti. Gestione Fatture Module40Name=Fornitori Module40Desc=Gestione fornitori e acquisti (ordini e fatture) Module42Name=Log -Module42Desc=Sistemi di log (file, syslog, ecc...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redazione Module49Desc=Gestione redattori Module50Name=Prodotti @@ -461,7 +483,7 @@ Module55Name=Codici a barre Module55Desc=Gestione codici a barre Module56Name=Telefonia Module56Desc=Integrazione telefonia -Module57Name=Direct bank payment orders +Module57Name=Ordini permanenti e domiciliazioni Module57Desc=Gestione degli ordini di pagamento SEPA Direct Debit. Comprende anche la generazione di file SEPA per i paesi europei. Module58Name=ClickToDial Module58Desc=Integrazione di un sistema ClickToDial (per esempio Asterisk) @@ -499,8 +521,8 @@ Module410Name=Calendario web Module410Desc=Integrazione calendario web Module500Name=Spese speciali Module500Desc=Gestione delle sepse speciali (tasse, contributi, dividendi) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Prestito Module520Desc=Gestione dei prestiti Module600Name=Notifiche @@ -525,8 +547,8 @@ Module2200Name=Prezzi dinamici Module2200Desc=Abilita l'utilizzo di espressioni matematiche per i prezzi Module2300Name=Cron Module2300Desc=Gestione delle operazioni pianificate -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Name=Eventi/Agenda +Module2400Desc=Gestione eventi/compiti e ordine del giorno. Registra manualmente eventi nell'agenda o consenti all'applicazione di registrare eventi automaticamente a scopo di monitoraggio Module2500Name=Gestione dei contenuti digitali Module2500Desc=Salvare e condividere documenti Module2600Name=API/Web services (SOAP server) @@ -541,9 +563,11 @@ Module2800Desc=Client FTP Module2900Name=GeoIPMaxmind Module2900Desc=Localizzazione degli accessi tramite GeoIP Maxmind Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3100Desc=Aggiunge un collegamento a Skype nelle schede di terze parti e contatti +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=Risorse umane -Module4000Desc=Gestione delle risorse umane +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multiazienda Module5000Desc=Permette la gestione di diverse aziende Module6000Name=Flusso di lavoro @@ -557,7 +581,7 @@ Module39000Desc=Lot or serial number, eat-by and sell-by date management on prod Module50000Name=PayBox Module50000Desc=Modulo per offrire il pagamento online con PayBox Module50100Name=Punti vendita -Module50100Desc=Point of sales module (POS). +Module50100Desc=Modulo per la creazione di un punto vendita (POS) Module50200Name=Paypal Module50200Desc=Modulo per offrire il pagamento online con Paypal Module50400Name=Accounting (advanced) @@ -565,13 +589,13 @@ Module50400Desc=Accounting management (double parties) Module54000Name=PrintIPP Module54000Desc=Stampa diretta (senza aprire i documenti) tramite l'interfaccia CUPS IPP (la stampante deve essere visibile dal server, e il server deve avere CUPS installato). Module55000Name=Sondaggio, Indagine o Votazione -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) +Module55000Desc=Modulo per creare sondaggi, indagini o feedback online (Doodle, Studs, Rdvz o simili) Module59000Name=Margini Module59000Desc=Modulo per gestire margini Module60000Name=Commissioni Module60000Desc=Modulo per gestire commissioni Module63000Name=Risorse -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events +Module63000Desc=Gestione risorse (stampanti, automobili, locali, ...) e loro utilizzo all'interno degli eventi Permission11=Vedere le fatture attive Permission12=Creare fatture attive Permission13=Annullare le fatture attive @@ -591,8 +615,8 @@ Permission32=Creare/modificare prodotti Permission34=Eliminare prodotti Permission36=Vedere/gestire prodotti nascosti Permission38=Esportare prodotti -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission42=Creare/modificare i progetti (condivisi e di cui si è contatto). Può anche creare compiti/attività e assegnare risorse a progetti e compiti/attività Permission44=Eliminare progetti Permission45=Esporta progetti Permission61=Vedere gli interventi @@ -639,10 +663,10 @@ Permission142=Crea e mofica tutti i progetti e tutti i compiti (anche progetti p Permission144=Cancella tutti i progetti e tutti i compiti (anche progetti privati in cui non sono stato insertio come contatto) Permission146=Vedere provider Permission147=Vedere statistiche -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders +Permission151=Vedere ordini permanenti +Permission152=Creare/modificare richieste di ordini permanenti +Permission153=Trasmettere fatture ordini permanenti +Permission154=Pagare/rifiutare fatture ordini permanenti Permission161=Leggi contratti / abbonamenti Permission162=Crea/modifica contratti/abbonamenti Permission163=Attiva un servizio/sottoscrizione di un contratto @@ -695,7 +719,7 @@ PermissionAdvanced253=Creare/modificare utenti interni/esterni e permessi Permission254=Eliminare o disattivare altri utenti Permission255=Cambiare le password di altri utenti Permission256=Eliminare o disabilitare altri utenti -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Estendere accesso a tutte le terze parti (non solo quelle legate all'utente). Non ha effetto sugli utenti esterni e sui progetti. Permission271=Vedere CA Permission272=Vedere fatture Permission273=Emettere fatture @@ -744,7 +768,7 @@ Permission538=Esportare servizi Permission701=Vedere donazioni Permission702=Creare/modificare donazioni Permission703=Eliminare donazioni -Permission771=Read expense reports (yours and your subordinates) +Permission771=Visualizzare le note spese (tue e dei tuoi subordinati) Permission772=Create/modify expense reports Permission773=Delete expense reports Permission774=Read all expense reports (even for user not subordinates) @@ -780,13 +804,13 @@ Permission1236=Esportare fatture fornitore, attributi e pagamenti Permission1237=Esportazione ordini fornitori e loro dettagli Permission1251=Eseguire importazioni di massa di dati esterni nel database (data load) Permission1321=Esportare fatture cliente, attributi e pagamenti -Permission1322=Reopen a paid bill +Permission1322=Riaprire le fatture pagate Permission1421=Esportare ordini cliente e attributi -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody +Permission20001=Vedere le richieste di ferie (tue e dei tuoi subordinati) +Permission20002=Creare/modicare le richieste di ferie +Permission20003=Eliminare le richieste di ferie +Permission20004=Vedere tutte le richieste di ferie (anche di utenti non subordinati) +Permission20005=Creaee/modificare le richieste di ferie per tutti Permission20006=Admin leave requests (setup and update balance) Permission23001=Leggi lavoro pianificato Permission23002=Crea / Aggiorna lavoro pianificato @@ -814,9 +838,9 @@ Permission55002=Crea/modifica sondaggi Permission59001=Leggi margini commerciali Permission59002=Definisci margini commerciali Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources +Permission63001=Leggi risorse +Permission63002=Crea/modifica risorse +Permission63003=Elimina risorsa Permission63004=Link resources to agenda events DictionaryCompanyType=Tipi dei soggetti terzi DictionaryCompanyJuridicalType=forma legale dei soggetti terzi @@ -825,8 +849,8 @@ DictionaryCanton=Stato/Provincia DictionaryRegion=Regioni DictionaryCountry=Paesi DictionaryCurrency=Valute -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events +DictionaryCivility=Titoli personali e professionali +DictionaryActions=Tipi di azioni/eventi DictionarySocialContributions=Social or fiscal taxes types DictionaryVAT=Aliquote IVA o Tasse di vendita DictionaryRevenueStamp=Ammontare dei valori bollati @@ -836,7 +860,7 @@ DictionaryTypeContact=Tipi di contatti/indirizzi DictionaryEcotaxe=Ecotassa (WEEE) DictionaryPaperFormat=Formati di carta DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees +DictionaryFees=Tipi di imposte DictionarySendingMethods=Metodi di spedizione DictionaryStaff=Personale DictionaryAvailability=Tempi di consegna @@ -844,16 +868,18 @@ DictionaryOrderMethods=Metodi di ordinazione DictionarySource=Origine delle proposte/ordini DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modelli per piano dei conti +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Modelli email DictionaryUnits=Unità DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves +DictionaryHolidayTypes=Tipi di ferie DictionaryOpportunityStatus=Stato opportunità per progetto/clienti interessati SetupSaved=Impostazioni salvate +SetupNotSaved=Impostazioni non salvate BackToModuleList=Torna alla lista moduli BackToDictionaryList=Torna alla lista dei dizionari VATManagement=Gestione IVA -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. +VATIsUsedDesc=Per impostazione predefinita l'aliquota IVA usata per la creazione di prospetti, fatture, ordini, ecc. segue la regola attiva:
- Se il venditore non è un soggetto IVA, l'aliquota IVA è pari a 0.
- Se i paesi di vendita e di acquisto coincidono, il valore predefinito dell'aliquota IVA è quello del prodotto nel paese di vendita.
- Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea ed i beni consistono in servizi di trasporto (auto, nave, aereo), il valore predefinito dell'aliquota IVA è 0 (L'IVA dovrebbe essere pagata dall'acquirente all'ufficio doganale del suo paese e non al venditore).
- Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea e l'acquirente non è una società, l'aliquota IVA predefinita è quella del prodotto venduto.
- Se il venditore e l'acquirente si trovano entrambi all'interno della Comunità Europea e l'acquirente è una società, l'aliquota IVA predefinita è 0.
In tutti gli altri casi l'aliquota IVA predefinita è 0. VATIsNotUsedDesc=Impostazione predefinita in cui l'aliquota IVA è pari a 0. Adatto a soggetti come associazioni, persone fisiche o piccole imprese con regime semplificato o a forfait. VATIsUsedExampleFR=In Francia si intendono le imprese o organizzazioni che hanno un vero e proprio sistema fiscale (Semplificato, nominale o normale). Un sistema in cui l'IVA à dichiarata. VATIsNotUsedExampleFR=In Francia le associazioni non sono tenute alla dichiarazione IVA, così come le società, le organizzazioni o i liberi professionisti che hanno scelto la microimpresa come sistema fiscale (IVA a forfait) e il versamento di una franchigia IVA senza alcuna dichiarazione IVA. In questo caso viene visualizzata la dicitura "non applicabile IVA - Art-293B del CGI" sulle fatture. @@ -892,12 +918,12 @@ LabelUsedByDefault=Descrizione (utilizzata in tutti i documenti per cui non esis LabelOnDocuments=Descrizione sul documento NbOfDays=Numero di giorni AtEndOfMonth=Alla fine del mese -CurrentNext=Current/Next +CurrentNext=Corrente/Successivo Offset=Scostamento AlwaysActive=Sempre attivo Upgrade=Aggiornamento MenuUpgrade=Migliora/Estendi -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Aggiungi estensione (tema, modulo, ...) WebServer=Server Web DocumentRootServer=Cartella principale del Server Web DataRootServer=Cartella dei file di dati @@ -928,9 +954,11 @@ Skin=Tema DefaultSkin=Skin di default MaxSizeList=Lunghezza massima elenchi DefaultMaxSizeList=Lunghezza massima predefinita elenchi -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) +DefaultMaxSizeShortList=Massima lunghezza di default per le liste brevi (es in scheda cliente) MessageOfDay=Messaggio del giorno MessageLogin=Messaggio per la pagina di login +LoginPage=Login page +BackgroundImageLogin=Immagine di sfondo PermanentLeftSearchForm=Modulo di ricerca permanente nel menu di sinistra DefaultLanguage=La lingua da impostare come predefinita (codice lingua) EnableMultilangInterface=Attiva l'interfaccia multilingua @@ -953,11 +981,11 @@ ShowBugTrackLink=Mostra link "%s" Alerts=Avvisi e segnalazioni DelaysOfToleranceBeforeWarning=Tolleranza sui ritardi prima di un avvertimento DelaysOfToleranceDesc=Questa schermata consente di definire per ciascun elemento la tolleranza sul ritardo prima che appaia una segnalazione nella casella con l'immagine %s. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet +Delays_MAIN_DELAY_ACTIONS_TODO=Tolleranza sul ritardo (in giorni) prima di un avvertimento per azioni pianificate non ancora realizzate +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolleranza sul ritardo (in giorni) prima di un avvertimento per progetti non terminati nei tempi previsti +Delays_MAIN_DELAY_TASKS_TODO=Tolleranza sul ritardo (in giorni) prima di un avvertimento per attività di progetto pianificate e non ancora completate +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolleranza sul ritardo (in giorni) prima di un avvertimento per ordini non ancora lavorati +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolleranza sul ritardo (in giorni) prima di un avvertimento per ordini fornitore non ancora elaborati Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolleranza sul ritardo (in giorni) prima di un avvertimento per proposte da chiudere Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolleranza sul ritardo (in giorni) prima di un avvertimento per proposte non fatturate Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolleranza sul ritardo (in giorni) prima di un avvertimento per servizi da attivare @@ -968,26 +996,26 @@ Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolleranza sul ritardo (in giorni) Delays_MAIN_DELAY_MEMBERS=Tolleranza sul ritardo (in giorni) prima di un avvertimento per quota di adesione ritardata Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolleranza sul ritardo (in giorni) prima un avvertimento per deposito di assegni da fare Delays_MAIN_DELAY_EXPENSEREPORTS=Tolleranza (in giorni) prima di avvisare per l'approvazione delle note spese -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription1=La sezione impostazioni consente il setup iniziale di Dolibarr prima del suo utilizzo. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Altre voci di menu consentono la gestione di parametri opzionali. LogEvents=Eventi di audit di sicurezza Audit=Audit InfoDolibarr=Informazioni su Dolibarr -InfoBrowser=About Browser +InfoBrowser=Informazioni browser InfoOS=Informazioni OS InfoWebServer=Informazioni web server InfoDatabase=Informazioni database InfoPHP=Informazioni PHP -InfoPerf=About Performances +InfoPerf=Informazioni prestazioni BrowserName=Browser BrowserOS=Sistema operativo ListOfSecurityEvents=Elenco degli eventi di sicurezza Dolibarr SecurityEventsPurged=Eventi di sicurezza eliminati LogEventDesc=Qui è possibile attivare il registro eventi di sicurezza di Dolibarr. Gli amministratori possono quindi vederne il contenuto attraverso Strumenti di sistema - Audit. Attenzione, attivando questa funzione è possibile che venga scritta una grande quantità di dati nel database. -AreaForAdminOnly=Tali funzioni possono essere utilizzate solo da utenti di tipo amministratore.
+AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Le informazioni di sistema sono dati tecnici visibili in sola lettura e solo dagli amministratori. SystemAreaForAdminOnly=Questa sezione è disponibile solo agli utenti di tipo amministratore. Nessuna delle autorizzazioni disponibili può alterare questo limite. CompanyFundationDesc=In questa pagina puoi modificare tutte le informazioni della società o fondazione che intendi gestire (Per farlo clicca sui pulsanti "Modifica" o "Salva" in fondo alla pagina) @@ -1003,8 +1031,8 @@ TriggerDisabledAsModuleDisabled=I trigger in questo file sono disabilitati perch TriggerAlwaysActive=I trigger in questo file sono sempre attivi, indipendentemente da quali moduli siano attivi in Dolibarr. TriggerActiveAsModuleActive=I trigger in questo file sono attivi se il modulo %s è attivo. GeneratedPasswordDesc=Regola per la generazione di nuove password generate automaticamente -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +DictionaryDesc=Inserire tutti i dati di riferimento. È possibile aggiungere i propri valori a quelli di default. +ConstDesc=Questa pagina ti permette di modificare tutti i parametri non disponibili nelle pagine precedenti. Si tratta di parametri riservati per lo sviluppo o la risoluzione dei problemi. MiscellaneousDesc=Definire qui tutti gli altri parametri relativi alla sicurezza. LimitsSetup=Limiti/impostazioni di precisione LimitsDesc=Da qui è possibile definire i limiti e la precisione utilizzati da Dolibarr. @@ -1019,7 +1047,7 @@ NoEventOrNoAuditSetup=Nessun evento di sicurezza registrato. Questo può essere NoEventFoundWithCriteria=Nessun evento di sicurezza trovato con i criteri di ricerca impostati. SeeLocalSendMailSetup=Controllare le impostazioni locali del server di posta (sendmail) BackupDesc=Per effettuare un backup completo di Dolibarr è necessario: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). +BackupDesc2=Salvare il contenuto della directory dei documenti (%s) che contiene tutti i file generati e caricati (e che quindi contiene tutti i files dump generati al passo precedente). BackupDesc3=Salva il contenuto del tuo database (%s) in un file dump. È possibile utilizzare il seguente assistente. BackupDescX=L'archivio delle directory va conservato in un luogo sicuro. BackupDescY=Il file generato va conservato in un luogo sicuro. @@ -1068,22 +1096,23 @@ SendmailOptionNotComplete=Attenzione: su alcuni sistemi Linux, per poter inviare PathToDocuments=Percorso documenti PathDirectory=Percorso directory SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string +TranslationSetup=Configurazione della traduzione +TranslationKeySearch=Cerca una chiave o una stringa di testo +TranslationOverwriteKey=Sovrascrivi una stringa di testo +TranslationDesc=La scelta della lingua visualizzata su schermo può essere modidificata:

- Globalmente dal menu Home > Impostazioni > Layout di visualizzazione
- Per utente dalla linguetta Impostazioni interfaccia grafica della Scheda utente (cliccare l'icona di login in alto sullo schermo). +TranslationOverwriteDesc=Puoi anche effettuare l'override delle stringhe di testo utilizzando la tabella seguente. Seleziona la tua lingua nel box "%s", inserisci la chiave della stringa da tradurre nel campo "%s" e la tua traduzione nel campo "%s". +TranslationOverwriteDesc2=Puoi utilizzare il tab di ricerca per individuare la chiave della stringa di tuo interesse +TranslationString=Stringa di testo +CurrentTranslationString=Stringa di testo corrente WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +NewTranslationStringToShow=Nuova stringa di testo da utilizzare +OriginalValueWas=La traduzione originale è stata sovrascritta. Il testo originale era:

%s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Devi abilitare almeno un modulo ClassNotFoundIntoPathWarning=La classe %s non è stata trovata al percorso PHP indicato YesInSummer=Si in estate -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sessioni salvate con criptazione tramite Suhosin ConditionIsCurrently=La condizione corrente è %s YouUseBestDriver=Usi già il miglior driver attualmente disponibile: %s @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Unicità dell'identità MustBeUnique=Deve essere unico? MustBeMandatory=Obbligatorio per creare il soggetto terzo? MustBeInvoiceMandatory=Obbligatorio per convalidare le fatture? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Un link per esportare %s è disponibile al seguente link: %s ##### Invoices ##### BillsSetup=Impostazioni modulo fatture BillsNumberingModule=Numerazione modulo fatture e note di credito BillsPDFModules=Modelli fattura in pdf +PaymentsPDFModules=Payment documents models CreditNote=Nota di credito CreditNotes=Note di credito ForceInvoiceDate=Forza la data della fattura alla data di convalida @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=I file di tipo %s non vengono serviti dalla cache del serve FilesOfTypeCompressed=I file di tipo %s vengono compressi dal server HTTP FilesOfTypeNotCompressed=I file di tipo %s non vengono compressi dal server HTTP CacheByServer=Cache per server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache per browser CompressionOfResources=Compressione delle risposte HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Con i browser attuali l'individuazione automatica non è possibile +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Impostazioni modulo prodotti ServiceSetup=Impostazioni modulo servizi @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Alla data della fattura Buy=Acquista Sell=Vendi InvoiceDateUsed=Data utilizzata per la fatturazione -YourCompanyDoesNotUseVAT=Società non soggetta all'IVA. Non ci sono parametri da impostare. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Codice contabile AccountancyCodeSell=Codice contabilità vendite AccountancyCodeBuy=Codice contabilità acquisti @@ -1478,11 +1516,12 @@ AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filt AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_NOTIFICATION_SOUND=Attiva i suoni per le notifiche +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Impostazioni modulo ClickToDial (telefonate con un clic) -ClickToDialUrlDesc=Indirizzo da raggiungere quando si clicca sull'icona del telefono. L'indirizzo può contenere i codici
__PHONETO__ che verrà sostituito con il numero telefonico a cui collegarsi,
__PHONEFROM__ che verrà sostituito con il numero chiamante (il vostro),
__LOGIN__ che verrà sostituito con il nome utente usato per il servizio e
__PASS__ che verrà sostituito con la password del servizio ClickToDial. -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialDesc=Questo modulo aggiunge un'icona accanto ai numeri telefonici dei contatti.
Cliccando sull'icona si attiva il collegamento al server che effettuerà le chiamate telefoniche. ClickToDialUseTelLink=Peri numeri di telefono basta usare un link di tipo "tel:" ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. ##### Point Of Sales (CashDesk) ##### @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Vengono esposti solo elementi correlati ai moduli abilitati ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Ordine di visualizzazione generale BankOrderES=Spagnolo BankOrderESDesc=Ordine di visualizzazione spagnolo ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Impostazioni modulo multiazienda ##### Suppliers ##### @@ -1548,14 +1586,14 @@ TaskModelModule=Tasks reports document model UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period +AccountingPeriods=Periodi di esercizio fiscale +AccountingPeriodCard=Scheda periodo di esercizio +NewFiscalYear=Nuovo periodo di esercizio +OpenFiscalYear=Apri periodo di esercizio +CloseFiscalYear=Chiudi periodo di esercizio +DeleteFiscalYear=Elimina periodo di esercizio +ConfirmDeleteFiscalYear=Vuoi davvero cancellare questo periodo di esercizio? +ShowFiscalYear=Mostra periodo di esercizio AlwaysEditable=Può essere modificato in qualsiasi momento MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) NbMajMin=Numero minimo di caratteri maiuscoli @@ -1582,24 +1620,25 @@ BackupDumpWizard=Procedura guidata per creare file di backup del database (dump) SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) +HighlightLinesColor=Evidenzia le righe delle tabelle passandoci sopra con il mouse TextTitleColor=Colore del titolo di pagina LinkColor=Colore dei link -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective +NotSupportedByAllThemes=Funziona con il tema Eldy ma non è supportato da tutti gli altri temi BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Nascondi le icone nel menu superiore LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line +BackgroundTableTitleColor=Colore di sfondo della riga di intestazione BackgroundTableLineOddColor=Background color for odd table lines BackgroundTableLineEvenColor=Background color for even table lines MinimumNoticePeriod=Periodo minimo di avviso (le richieste di ferie/permesso dovranno essere effettuate prima di questo periodo) NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=Il colore RGB è nel formato HEX, es:FF0000 PositionIntoComboList=Posizione di questo modello nella menu a tendina SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1621,10 +1660,10 @@ MailToSendIntervention=Inviare intervento MailToSendSupplierRequestForQuotation=Inviare richiesta di preventivo a fornitore MailToSendSupplierOrder=Inviare ordine fornitore MailToSendSupplierInvoice=Inviare fattura fornitore -MailToSendContract=To send a contract +MailToSendContract=Per spedire un contratto MailToThirdparty=To send email from third party page ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=Stai usando l'ultima versione stabile TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configurazione del modulo Risorse UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/it_IT/banks.lang b/htdocs/langs/it_IT/banks.lang index 50c2f57cfb3..eac03717371 100644 --- a/htdocs/langs/it_IT/banks.lang +++ b/htdocs/langs/it_IT/banks.lang @@ -28,12 +28,12 @@ Reconciliation=Riconciliazione RIB=Coordinate bancarie IBAN=Codice IBAN BIC=Codice BIC (Swift) -SwiftValid=BIC/SWIFT valid -SwiftVNotalid=BIC/SWIFT not valid -IbanValid=BAN valid -IbanNotValid=BAN not valid +SwiftValid=Il codice BIC/SWIFT è valido +SwiftVNotalid=BIC/SWIFT non valido +IbanValid=Il codice IBAN è valido +IbanNotValid=Il codice IBAN non è valido StandingOrders=Ordini di addebito diretto -StandingOrder=Direct debit order +StandingOrder=Ordine di addebito diretto AccountStatement=Estratto conto AccountStatementShort=Est. conto AccountStatements=Estratti conto @@ -59,20 +59,21 @@ AccountCard=Scheda conto DeleteAccount=Elimina conto ConfirmDeleteAccount=Vuoi davvero eliminare questo conto? Account=Conto -BankTransactionByCategories=Bank entries by categories -BankTransactionForCategory=Bank entries for category %s +BankTransactionByCategories=Transazioni bancarie per categoria +BankTransactionForCategory=Transazioni bancarie per la categoria %s RemoveFromRubrique=Rimuovi collegamento con la categoria -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? -ListBankTransactions=List of bank entries +RemoveFromRubriqueConfirm=Sei sicuro di voler rimuovere il legame tra l'operazione e la categoria? +ListBankTransactions=Elenco delle transazioni bancarie IdTransaction=ID transazione -BankTransactions=Bank entries -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +BankTransactions=Transazioni bancarie +BankTransaction=Transazione bancaria +ListTransactions=Elenco transazioni +ListTransactionsByCategory=Elenco transazioni per categoria +TransactionsToConciliate=Transazioni da conciliare Conciliable=Conciliabile Conciliate=Concilia transazione Conciliation=Conciliazione -ReconciliationLate=Reconciliation late +ReconciliationLate=Riconciliazione in ritardo IncludeClosedAccount=Includi i conti chiusi OnlyOpenedAccount=Solo conti aperti AccountToCredit=Conto di accredito @@ -84,11 +85,11 @@ StatusAccountOpened=Aperto StatusAccountClosed=Chiuso AccountIdShort=Numero di conto LineRecord=Transazione -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Aggiungi operazione +AddBankRecordLong=Aggiungi operazione manualmente ConciliatedBy=Transazione conciliata da DateConciliating=Data di conciliazione -BankLineConciliated=Entry reconciled +BankLineConciliated=Transazione conciliata Reconciled=Conciliata NotReconciled=Non conciliata CustomerInvoicePayment=Pagamento fattura attiva @@ -98,7 +99,7 @@ WithdrawalPayment=Ritiro pagamento SocialContributionPayment=Pagamento delle imposte sociali/fiscali BankTransfer=Bonifico bancario BankTransfers=Bonifici e giroconti -MenuBankInternalTransfer=Internal transfer +MenuBankInternalTransfer=Trasferimento interno TransferDesc=Trasferimento da un conto ad un altro, Dolibarr scriverà due record (uno di addebito nel conto di origine e uno di credito nel conto di destinazione), dello stesso importo. Per questa operazione verranno usate la stessa data e la stessa etichetta. TransferFrom=Da TransferTo=A @@ -112,13 +113,13 @@ BankChecks=Assegni bancari BankChecksToReceipt=Assegni in attesa di deposito ShowCheckReceipt=Mostra ricevuta di versamento assegni NumberOfCheques=Numero di assegni -DeleteTransaction=Delete entry -ConfirmDeleteTransaction=Are you sure you want to delete this entry? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +DeleteTransaction=Elimina transazione +ConfirmDeleteTransaction=Vuoi davvero eliminare questa transazione? +ThisWillAlsoDeleteBankRecord=Questa operazione elimina anche le transazioni bancarie generate BankMovements=Movimenti -PlannedTransactions=Planned entries +PlannedTransactions=Transazioni pianificate Graph=Grafico -ExportDataset_banque_1=Bank entries and account statement +ExportDataset_banque_1=Movimenti bancari e di cassa e loro rilevazioni ExportDataset_banque_2=Modulo di versamento TransactionOnTheOtherAccount=Transazione sull'altro conto PaymentNumberUpdateSucceeded=Numero del pagamento aggiornato correttamente @@ -126,7 +127,7 @@ PaymentNumberUpdateFailed=Il numero di pagamento potrebbe non essere stato aggio PaymentDateUpdateSucceeded=Data del pagamento aggiornata correttamente PaymentDateUpdateFailed=La data di pagamento potrebbe non essere stata aggiornata Transactions=Transazioni -BankTransactionLine=Bank entry +BankTransactionLine=Transazione bancaria AllAccounts=Tutte le banche/casse BackToAccount=Torna al conto ShowAllAccounts=Mostra per tutti gli account @@ -141,12 +142,16 @@ AllRIB=Tutti i BAN LabelRIB=Etichetta BAN NoBANRecord=Nessun BAN DeleteARib=Cancella il BAN -ConfirmDeleteRib=Are you sure you want to delete this BAN record? +ConfirmDeleteRib=Vuoi davvero cancellare questo BAN? RejectCheck=Assegno restituito ConfirmRejectCheck=Sei sicuro di voler segnare questo assegno come rifiutato? RejectCheckDate=Data di restituzione dell'assegno CheckRejected=Assegno restituito CheckRejectedAndInvoicesReopened=Assegno restituito e fatture riaperte -BankAccountModelModule=Document templates for bank accounts -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. -DocumentModelBan=Template to print a page with BAN information. +BankAccountModelModule=Modelli di documento per i conti bancari e le casse +DocumentModelSepaMandate=Modello di documento per i mandati SEPA. Da utilizzare solamente per i paese appartenenti alla CEE +DocumentModelBan=Template per la stampa delle informazioni relative al BAN +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/it_IT/compta.lang b/htdocs/langs/it_IT/compta.lang index abb92ffa2b0..7c7e389799e 100644 --- a/htdocs/langs/it_IT/compta.lang +++ b/htdocs/langs/it_IT/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=I totali qui mostrati sono calcolati usan Param=Configurazione RemainingAmountPayment=Pagamento a saldo: Account=Conto -Accountparent=Conto di origine -Accountsparent=Conti di origine +Accountparent=Parent account +Accountsparent=Parent accounts Income=Entrate Outcome=Uscite ReportInOut=Entrate/Uscite @@ -22,7 +22,7 @@ ReportTurnover=Fatturato PaymentsNotLinkedToInvoice=I pagamenti non legati ad una fattura, quindi non legati ad alcun soggetto terzo PaymentsNotLinkedToUser=Pagamenti non legati ad alcun utente Profit=Utile -AccountingResult=Accounting result +AccountingResult=Risultato contabile Balance=Saldo Debit=Debito Credit=Credito @@ -45,18 +45,19 @@ LT1SupplierES=RE purchases VATCollected=IVA incassata ToPay=Da pagare SpecialExpensesArea=Area per pagamenti straordinari -SocialContribution=Social or fiscal tax -SocialContributions=Social or fiscal taxes -SocialContributionsDeductibles=Deductible social or fiscal taxes -SocialContributionsNondeductibles=Nondeductible social or fiscal taxes +SocialContribution=Tassa o contributo +SocialContributions=Tasse o contributi +SocialContributionsDeductibles=Tasse o contributi deducibili +SocialContributionsNondeductibles=Tasse o contributi non deducibili LabelContrib=Label contribution TypeContrib=Type contribution MenuSpecialExpenses=Spese straordinarie MenuTaxAndDividends=Imposte e dividendi -MenuSocialContributions=Social/fiscal taxes -MenuNewSocialContribution=New social/fiscal tax -NewSocialContribution=New social/fiscal tax -ContributionsToPay=Social/fiscal taxes to pay +MenuSocialContributions=Tasse/contributi +MenuNewSocialContribution=Nuova tassa/contributo +NewSocialContribution=Nuova tassa/contributo +AddSocialContribution=Add social/fiscal tax +ContributionsToPay=Tasse/contributi da pagare AccountancyTreasuryArea=Area contabilità/tesoreria NewPayment=Nuovo pagamento Payments=Pagamenti @@ -74,24 +75,24 @@ LT1Payment=Tax 2 payment LT1Payments=Tax 2 payments LT2Payment=Tax 3 payment LT2Payments=Tax 3 payments -newLT1PaymentES=New RE payment +newLT1PaymentES=Nuovo pagamento RE newLT2PaymentES=Nuovo pagamento IRPF (Spagna) -LT1PaymentES=RE Payment -LT1PaymentsES=RE Payments +LT1PaymentES=Pagamento RE +LT1PaymentsES=Pagamenti RE LT2PaymentES=Pagamento IRPF (Spagna) LT2PaymentsES=Pagamenti IRPF (Spagna) -VATPayment=Sales tax payment -VATPayments=Sales tax payments -VATRefund=Sales tax refund +VATPayment=Pagamento IVA +VATPayments=Pagamenti IVA +VATRefund=Rimborso IVA Refund=Rimborso -SocialContributionsPayments=Social/fiscal taxes payments +SocialContributionsPayments=Pagamenti tasse/contributi ShowVatPayment=Visualizza pagamento IVA TotalToPay=Totale da pagare -BalanceVisibilityDependsOnSortAndFilters=Balance is visible in this list only if table is sorted ascending on %s and filtered for 1 bank account +BalanceVisibilityDependsOnSortAndFilters=Il bilancio è visibile in questo elenco solo se la tabella è ordinata in verso ascendente per %s e filtrata per un conto bancario CustomerAccountancyCode=Codice contabile cliente SupplierAccountancyCode=Codice contabile fornitore -CustomerAccountancyCodeShort=Cust. account. code -SupplierAccountancyCodeShort=Sup. account. code +CustomerAccountancyCodeShort=Cod. cont. cliente +SupplierAccountancyCodeShort=Cod. cont. fornitore AccountNumber=Numero di conto NewAccountingAccount=Nuovo conto SalesTurnover=Fatturato @@ -101,28 +102,28 @@ ByThirdParties=Per soggetti terzi ByUserAuthorOfInvoice=Per autore fattura CheckReceipt=Ricevuta di versamento assegno CheckReceiptShort=Ricevuta assegno -LastCheckReceiptShort=Latest %s check receipts +LastCheckReceiptShort=Ultime %s ricevute assegni NewCheckReceipt=Nuovo sconto NewCheckDeposit=Nuovo deposito NewCheckDepositOn=Nuovo deposito sul conto: %s NoWaitingChecks=Nessun assegno in attesa di deposito. DateChequeReceived=Data di ricezione assegno NbOfCheques=Numero di assegni -PaySocialContribution=Pay a social/fiscal tax -ConfirmPaySocialContribution=Are you sure you want to classify this social or fiscal tax as paid? -DeleteSocialContribution=Delete a social or fiscal tax payment -ConfirmDeleteSocialContribution=Are you sure you want to delete this social/fiscal tax payment? -ExportDataset_tax_1=Social and fiscal taxes and payments -CalcModeVATDebt=Mode %sVAT on commitment accounting%s. +PaySocialContribution=Paga tassa/contributo +ConfirmPaySocialContribution=Sei sicuro di voler classificare questa tassa/contributo come pagato? +DeleteSocialContribution=Cancella il pagamento della tassa/contributo +ConfirmDeleteSocialContribution=Sei sicuro di voler cancellare il pagamento di questa tassa/contributo? +ExportDataset_tax_1=Tasse/contributi e pagamenti +CalcModeVATDebt=Modalità %sIVA su contabilità d'impegno%s. CalcModeVATEngagement=Calcola %sIVA su entrate-uscite%s -CalcModeDebt=Mode %sClaims-Debts%s said Commitment accounting. -CalcModeEngagement=Mode %sIncomes-Expenses%s said cash accounting -CalcModeLT1= Mode %sRE on customer invoices - suppliers invoices%s -CalcModeLT1Debt=Mode %sRE on customer invoices%s -CalcModeLT1Rec= Mode %sRE on suppliers invoices%s -CalcModeLT2= Mode %sIRPF on customer invoices - suppliers invoices%s -CalcModeLT2Debt=Mode %sIRPF on customer invoices%s -CalcModeLT2Rec= Mode %sIRPF on suppliers invoices%s +CalcModeDebt=Modalità %sCrediti-Debiti%s detta Contabilità d'impegno. +CalcModeEngagement=Modalità %sEntrate-Uscite%s detta contabilità di cassa +CalcModeLT1= Modalità %sRE su fatture clienti - fatture fornitori%s +CalcModeLT1Debt=Modalità %sRE su fatture clienti%s +CalcModeLT1Rec= Modalità %sRE su fatture fornitori%s +CalcModeLT2= Modalità %sIRPF su fatture clienti - fatture fornitori%s +CalcModeLT2Debt=Modalità %sIRPF su fatture clienti%s +CalcModeLT2Rec= Modalità %sIRPF su fatture fornitori%s AnnualSummaryDueDebtMode=Bilancio di entrate e uscite, sintesi annuale AnnualSummaryInputOutputMode=Bilancio di entrate e uscite, sintesi annuale AnnualByCompaniesDueDebtMode=Bilancio delle entrate e delle spese, dettaglio per soggetti terzi, in modalità %sCrediti-Debiti%s detta contabilità d'impegno . @@ -130,12 +131,12 @@ AnnualByCompaniesInputOutputMode=Bilancio delle entrate e delle spese, dettaglio SeeReportInInputOutputMode=Vedi il report %sEntrate-Uscite%s detto contabilità di cassa per un calcolo sui pagamenti effettuati SeeReportInDueDebtMode=Vedi il report %sCrediti-Debiti%s detto contabilità d'impegno per un calcolo sulle fatture emesse RulesAmountWithTaxIncluded=- Gli importi indicati sono tasse incluse -RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whether they are paid or not. Is also includes paid salaries.
- It is based on the validation date of invoices and VAT and on the due date for expenses. For salaries defined with Salary module, the value date of payment is used. -RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. -RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
+RulesResultDue=- Gli importi indicati sono tutti tasse incluse
- Comprendono le fatture in sospeso, l'IVA e le spese, che siano state pagate o meno.
- Si basa sulla data di convalida delle fatture e dell'IVA e sulla data di scadenza per le spese. +RulesResultInOut=- Include i pagamenti reali di fatture, spese e IVA.
- Si basa sulle date di pagamento di fatture, spese e IVA. +RulesCADue=- Comprende le fatture del cliente, che siano state pagate o meno.
- Si basa sulla data di tali fatture.
RulesCAIn=- Comprende le fatture effettivamente pagate dai clienti.
- Si basa sulla data dei pagamenti.
-DepositsAreNotIncluded=- Le fatture d'acconto non sono incluse -DepositsAreIncluded=- Le fatture d'acconto sono incluse +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=IRPF soggetti terzi(Spagna) LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=Dichiarazione IVA @@ -169,7 +170,7 @@ DescSellsJournal=Storico vendite DescPurchasesJournal=Storico acquisti InvoiceRef=Rif. fattura CodeNotDef=Non definito -WarningDepositsNotIncluded=Le fatture d'acconto non sono incluse in questa versione del modulo contabilità. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=La data termine di pagamento non può essere anteriore alla data dell'oggetto Pcg_version=Chart of accounts models Pcg_type=Tipo pcg @@ -186,22 +187,25 @@ CalculationRuleDescSupplier=According to supplier, choose appropriate method to TurnoverPerProductInCommitmentAccountingNotRelevant=Turnover report per product, when using a cash accountancy mode is not relevant. This report is only available when using engagement accountancy mode (see setup of accountancy module). CalculationMode=Metodo di calcolo AccountancyJournal=Codice del giornale di contabilità -ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) -ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) -CloneTax=Clone a social/fiscal tax -ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment +ACCOUNTING_VAT_SOLD_ACCOUNT=Codice contabile predefinito per la riscossione dell'IVA sulle vendite (usato se l'IVA non è definita nel dizionario) +ACCOUNTING_VAT_BUY_ACCOUNT=Codice contabile predefinito per il recupero dell'IVA sugli acquisti (usato se l'IVA non è definita nel dizionario) +ACCOUNTING_VAT_PAY_ACCOUNT=Codice contabile predefinito per il pagamento dell'IVA +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +CloneTax=Clonare tassa/contributo +ConfirmCloneTax=Conferma la clonazione del pagamento tassa/contributo CloneTaxForNextMonth=Clona nel mese successivo -SimpleReport=Simple report +SimpleReport=Report semplice AddExtraReport=Extra reports (add foreign and national customer report) OtherCountriesCustomersReport=Foreign customers report BasedOnTwoFirstLettersOfVATNumberBeingDifferentFromYourCompanyCountry=Based on the two first letters of the VAT number being different from your own company's country code SameCountryCustomersWithVAT=National customers report BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the two first letters of the VAT number being the same as your own company's country code LinkedFichinter=Collegamento ad un intervento -ImportDataset_tax_contrib=Social/fiscal taxes +ImportDataset_tax_contrib=Tasse/contributi ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Accounting period +FiscalPeriod=Scheda periodo di esercizio +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/it_IT/cron.lang b/htdocs/langs/it_IT/cron.lang index 2ade1b8efb9..fdc66a42016 100644 --- a/htdocs/langs/it_IT/cron.lang +++ b/htdocs/langs/it_IT/cron.lang @@ -25,7 +25,7 @@ CronDelete=Cancella i job programmati CronConfirmDelete=Vuoi davvero eliminare questi job schedulati? CronExecute=Esegui i job schedulati CronConfirmExecute=Vuoi davvero eseguire i job schedulati ora? -CronInfo=Il modulo per i job programmati permette di eseguire operazioni definite in anticipoi +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Azione CronNone=Nessuno CronDtStart=Non prima @@ -57,12 +57,12 @@ CronStatusActiveBtn=Abilita CronStatusInactiveBtn=Disattiva CronTaskInactive=Questa azione è disabilitata CronId=Id -CronClassFile=Classi (filename.class.php) -CronModuleHelp=Nome della directory del modulo di Dolibarr (funziona anche con moduli di Dolibarr esterni).
Per esempio per ottenere il metodo corretto dell'oggetto /htdocs/product/class/product.class.php, il valore da inserire è product -CronClassFileHelp=Nome del file da caricare.
Per esempio per ottenere il metodo corretto dell'oggetto /htdocs/product/class/product.class.php, il valore del class file name è product.class.php -CronObjectHelp=Nome dell'oggetto da caricare.
Per esempio per ottenere il metodo corretto dell'oggetto /htdocs/product/class/product.class.php, il valore da inserire è Product -CronMethodHelp=Nome del metodo dell'oggetto da eseguire.
Per esempio per ottenere il metodo dell'oggetto /htdocs/product/class/product.class.php, il valore da inserire è fetch -CronArgsHelp=Argomenti del metodo.
Per esempio per ottenere il metodo corretto dell'oggetto /htdocs/product/class/product.class.php, il valore dei parametri può essere 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Il comando da eseguire sul sistema CronCreateJob=Crea nuovo job programmato CronFrom=Da @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Vai nel menu "Home - Strumenti di amministrazion JobDisabled=Lavoro disabilitato MakeLocalDatabaseDumpShort=Backup del database locale MakeLocalDatabaseDump=Crea un backup del database locale -WarningCronDelayed=Attenzione, per motivi di performance, qualunque sia la data della prossima esecuzione dei job attivi, i job possono essere ritardati di un massimo di %s ore prima di essere eseguiti +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang index a38dd576f4b..2c1abe058d3 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Impossibile creare il file '%s'. ErrorFailToRenameDir=Impossibile rinominare la directory '%s' in '%s'. ErrorFailToCreateDir=Impossibile creare la directory '%s'. ErrorFailToDeleteDir=Impossibile eliminare la directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Questo contatto è già tra i contatti di questo tipo ErrorCashAccountAcceptsOnlyCashMoney=Questo conto corrente è un conto di cassa e accetta solo pagamenti in contanti. ErrorFromToAccountsMustDiffers=I conti bancari di origine e destinazione devono essere diversi. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Impossibile scrivere nella directory %s ErrorFoundBadEmailInFile=Sintassi email errata nelle righe %s del file (ad esempio alla riga %s con email = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Mancano alcuni campi obbligatori. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Impossibile creare la directory. Verifica che l'utente del server Web abbia i permessi per scrivere nella directory Dolibarr. Se il parametro safe_mode è abilitato in PHP, verifica che i file php di Dolibarr appartengano all'utente o al gruppo del server web (per esempio www-data). ErrorNoMailDefinedForThisUser=Nessun indirizzo memorizzato per questo utente ErrorFeatureNeedJavascript=Questa funzione necessita di javascript per essere attivata. Modificare questa impostazione nel menu Impostazioni - layout di visualizzazione. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=La quantità di ciascuna riga della fat ErrorWebServerUserHasNotPermission=L'account utente %s utilizzato per eseguire il server web non ha i permessi necessari ErrorNoActivatedBarcode=Nessun tipo di codice a barre attivato ErrUnzipFails=Estrazione dell'archivio %s con ZipArchive fallita -ErrNoZipEngine=Non c'è modo di spacchettare i file %s in questo PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Il file %s deve essere un archivio zip Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL non risulta installato, ma è necessario per comunicare con Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Il campo %s deve essere un valore numerico ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=La scadenza del pagamento (%s) risulta an WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index cf101b66421..901e485d434 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -28,7 +28,7 @@ NoTemplateDefined=Nessun template definito per questo tipo di email AvailableVariables=Available substitution variables NoTranslation=Nessuna traduzione NoRecordFound=Nessun risultato trovato -NoRecordDeleted=No record deleted +NoRecordDeleted=Nessun record eliminato NotEnoughDataYet=Dati insufficienti NoError=Nessun errore Error=Errore @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametro %s non definito ErrorUnknown=Errore sconosciuto ErrorSQL=Errore di SQL ErrorLogoFileNotFound=Impossibile trovare il file %s per il logo -ErrorGoToGlobalSetup=Vai alle impostazioni Società/Fondazione per risolvere il problema +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Vai alle impostazioni del modulo per risolvere il problema ErrorFailedToSendMail=Impossibile inviare l'email (mittente=%s, destinatario=%s) ErrorFileNotUploaded=Upload fallito. Controllare che la dimensione del file non superi il numero massimo consentito, che lo spazio libero su disco sia sufficiente e che non esista già un file con lo stesso nome nella directory. @@ -63,7 +63,7 @@ ErrorNoVATRateDefinedForSellerCountry=Errore, non sono state definite le aliquot ErrorNoSocialContributionForSellerCountry=Errore, non sono stati definiti i tipi di contributi per: '%s'. ErrorFailedToSaveFile=Errore, file non salvato. ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page +MaxNbOfRecordPerPage=Massimo numero di record per pagina NotAuthorized=Non sei autorizzato. SetDate=Imposta data SelectDate=Seleziona una data @@ -71,9 +71,9 @@ SeeAlso=Vedi anche %s SeeHere=Vedi qui Apply=Applica BackgroundColorByDefault=Colore di sfondo predefinito -FileRenamed=The file was successfully renamed +FileRenamed=Il file è stato rinominato con successo FileUploaded=Il file è stato caricato con successo -FileGenerated=The file was successfully generated +FileGenerated=Il file è stato generato con successo FileWasNotUploaded=Il file selezionato per l'upload non è stato ancora caricato. Clicca su Allega file per farlo NbOfEntries=Numero di voci GoToWikiHelpPage=Leggi l'aiuto online (è richiesto un collegamento internet) @@ -82,25 +82,25 @@ RecordSaved=Record salvato RecordDeleted=Record cancellato LevelOfFeature=Livello di funzionalità NotDefined=Non definito -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. +DolibarrInHttpAuthenticationSoPasswordUseless=Modalità di autenticazione %s configurata nel file conf.php.
Ciò significa che la password del database è indipendente dall'applicazione, eventuali cambiamenti non avranno alcun effetto. Administrator=Amministratore Undefined=Indefinito -PasswordForgotten=Password forgotten? +PasswordForgotten=Password dimenticata? SeeAbove=Vedi sopra HomeArea=Area home -LastConnexion=Latest connection +LastConnexion=Ultima connessione PreviousConnexion=Connessione precedente -PreviousValue=Previous value +PreviousValue=Valore precedente ConnectedOnMultiCompany=Collegato all'ambiente ConnectedSince=Collegato da -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL +AuthenticationMode=Modalità di autenticazione +RequestedUrl=URL richiesto DatabaseTypeManager=Gestore del tipo di database RequestLastAccessInError=Ultimo errore di accesso al database -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error +ReturnCodeLastAccessInError=Codice di ritorno per l'ultimo accesso errato al database +InformationLastAccessInError=Informazioni sull'ultimo accesso errato al database DolibarrHasDetectedError=Dolibarr ha rilevato un errore tecnico -InformationToHelpDiagnose=This information can be useful for diagnostic purposes +InformationToHelpDiagnose=Questa informazione può essere utile alla diagnostica MoreInformation=Maggiori informazioni TechnicalInformation=Informazioni tecniche TechnicalID=Technical ID @@ -130,7 +130,7 @@ Activate=Attiva Activated=Attivato Closed=Chiuso Closed2=Chiuso -NotClosed=Not closed +NotClosed=Non chiuso Enabled=Attivo Deprecated=Deprecato Disable=Disattivare @@ -141,18 +141,19 @@ RemoveLink=Rimuovere collegamento AddToDraft=Aggiungi alla bozza Update=Aggiornamento Close=Chiudi -CloseBox=Remove widget from your dashboard +CloseBox=Rimuovi il widget dal pannello principale Confirm=Conferma -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? +ConfirmSendCardByMail=Vuoi davvero inviare il contenuto di questa scheda per posta a %s? Delete=Elimina Remove=Rimuovi -Resiliate=Terminate +Resiliate=Termina Cancel=Annulla Modify=Modifica Edit=Modifica Validate=Convalida ValidateAndApprove=Convalida e approva ToValidate=Convalidare +NotValidated=Not validated Save=Salva SaveAs=Salva con nome TestConnection=Test connessione @@ -207,8 +208,8 @@ Info=Info Family=Famiglia Description=Descrizione Designation=Descrizione -Model=Doc template -DefaultModel=Default doc template +Model=Modello +DefaultModel=Modello predefinito Action=Azione About=About Number=Numero @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Nessuna funzione di disconnessione al programma con Connection=Connessione Setup=Impostazioni Alert=Avvertimento +MenuWarnings=Avvisi e segnalazioni Previous=Precedente Next=Successivo Cards=Schede @@ -238,7 +240,7 @@ DateCreation=Data di creazione DateCreationShort=Data di creazione DateModification=Data di modifica DateModificationShort=Data modif. -DateLastModification=Latest modification date +DateLastModification=Data ultima modifica DateValidation=Data di convalida DateClosing=Data di chiusura DateDue=Data di scadenza @@ -253,10 +255,10 @@ DateBuild=Data di creazione del report DatePayment=Data pagamento DateApprove=Approvato in data DateApprove2=Data di approvazione (seconda approvazione) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user +UserCreation=Creazione utente +UserModification=Modifica utente +UserCreationShort=Creaz. utente +UserModificationShort=Modif. utente DurationYear=anno DurationMonth=mese DurationWeek=settimana @@ -291,7 +293,7 @@ MonthOfDay=Mese del giorno HourShort=Ora MinuteShort=min Rate=Tariffa -CurrencyRate=Currency conversion rate +CurrencyRate=Tasso di conversione di valuta UseLocalTax=Tasse incluse Bytes=Byte KiloBytes=Kilobyte @@ -308,14 +310,15 @@ Copy=Copia Paste=Incolla Default=Predefinito DefaultValue=Valore predefinito +DefaultValues=Default values Price=Prezzo UnitPrice=Prezzo unitario UnitPriceHT=Prezzo unitario (netto) UnitPriceTTC=Prezzo unitario (lordo) PriceU=P.U. PriceUHT=P.U.(netto) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) +PriceUHTCurrency=P.U. (valuta) +PriceUTTC=P.U.(lordo) Amount=Importo AmountInvoice=Importo della fattura AmountPayment=Importo del pagamento @@ -363,7 +366,8 @@ VATRate=Aliquota IVA Average=Media Sum=Somma Delta=Delta -Module=Modulo +Module=Module/Application +Modules=Modules/Applications Option=Opzione List=Elenco FullList=Elenco completo @@ -384,7 +388,7 @@ ActionsToDoShort=Da fare ActionsDoneShort=Fatte ActionNotApplicable=Non applicabile ActionRunningNotStarted=Non avviato -ActionRunningShort=In progress +ActionRunningShort=Avviato ActionDoneShort=Fatto ActionUncomplete=Incompleto CompanyFoundation=Società/Fondazione @@ -405,8 +409,9 @@ Generate=Genera Duration=Durata TotalDuration=Durata totale Summary=Riepilogo -DolibarrStateBoard=Statistiche -DolibarrWorkBoard=Pannello dei lavori/compiti +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Disponibile NotYetAvailable=Non ancora disponibile NotAvailable=Non disponibile @@ -453,6 +458,7 @@ NextStep=Passo successivo Datas=Dati None=Nessuno NoneF=Nessuno +NoneOrSeveral=None or several Late=Tardi LateDesc=Il ritardo di un'azione viene definito nel setup. Chiedi al tuo amministratore di modificarlo dal menu Home - Setup - Alerts. Photo=Immagine @@ -462,7 +468,7 @@ DeletePicture=Foto cancellata ConfirmDeletePicture=Confermi l'eliminazione della foto? Login=Login CurrentLogin=Accesso attuale -EnterLoginDetail=Enter login details +EnterLoginDetail=Inserisci le credenziali di accesso January=Gennaio February=Febbraio March=Marzo @@ -520,8 +526,8 @@ ReportName=Nome report ReportPeriod=Periodo report ReportDescription=Descrizione Report=Report -Keyword=Keyword -Origin=Origin +Keyword=Chiave +Origin=Origine Legend=Legenda Fill=Completa Reset=Reset @@ -586,14 +592,14 @@ GoBack=Torna indietro CanBeModifiedIfOk=Può essere modificato se valido CanBeModifiedIfKo=Può essere modificato se non valido ValueIsValid=Il valore è valido -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully +ValueIsNotValid=Il valore non è valido +RecordCreatedSuccessfully=Record creato con success0 RecordModifiedSuccessfully=Record modificati con successo -RecordsModified=%s record modified +RecordsModified=%s record modificati RecordsDeleted=%s record deleted AutomaticCode=Codice automatico FeatureDisabled=Funzionalità disabilitata -MoveBox=Move widget +MoveBox=Sposta widget Offered=Offerto NotEnoughPermissions=Non hai l'autorizzazione per svolgere questa azione SessionName=Nome sessione @@ -606,7 +612,8 @@ PartialWoman=Parziale TotalWoman=Totale NeverReceived=Mai ricevuto Canceled=Annullato -YouCanChangeValuesForThisListFromDictionarySetup=Puoi modificare i valori per questa lista dal menu setup - dizionario +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Puoi definire il valore predefinito durante la creazione di un nuovo record nella configurazione del modulo Color=Colore Documents=Documenti @@ -628,7 +635,7 @@ DisabledModules=Moduli disabilitati For=Per ForCustomer=Per i clienti Signature=Firma -DateOfSignature=Date of signature +DateOfSignature=Data della firma HidePassword=Mostra il comando con password offuscata UnHidePassword=Visualizza comando con password in chiaro Root=Root @@ -642,11 +649,12 @@ FreeLineOfType=Libero inserimento del tipo CloneMainAttributes=Clona oggetto con i suoi principali attributi PDFMerge=Unisci PDF Merge=Unisci +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Mostra una pagina per stampare l'area principale MenuManager=Gestore dei menu WarningYouAreInMaintenanceMode=Attenzione, si è in modalità manutenzione. Solo %s ha il permesso di usare l'applicazione. CoreErrorTitle=Errore di sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Si è verificato un errore. Controllare i log o contattare l'amministratore di sistema. CreditCard=Carta di credito FieldsWithAreMandatory=I campi con %s sono obbligatori FieldsWithIsForPublic=I campi con %s vengono mostrati nell'elenco pubblico dei membri. Per evitarlo, deseleziona la casella pubblica. @@ -702,12 +710,13 @@ Test=Test Element=Elemento NoPhotoYet=Nessuna immagine disponibile Dashboard=Dashboard -MyDashboard=My dashboard +MyDashboard=Pannello principale Deductible=Deducibile from=da toward=verso Access=Accesso SelectAction=Seleziona azione +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Usa Ctrl+C per copiare negli appunti SaveUploadedFileWithMask=Salva il file sul server con il nome "%s" (oppure "%s") OriginFileName=Nome originale del file @@ -718,7 +727,7 @@ ViewPrivateNote=Vedi note XMoreLines=%s linea(e) nascoste PublicUrl=URL pubblico AddBox=Aggiungi box -SelectElementAndClickRefresh=Seleziona un elemento e clicca Aggiorna +SelectElementAndClick=Select an element and click %s PrintFile=Stampa il file %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vai in Home -> Impostazioni -> Società per cambiare il logo o in Home - Setup -> display per nasconderlo. @@ -733,9 +742,9 @@ Mandatory=Obbligatorio Hello=Ciao Sincerely=Cordialmente DeleteLine=Elimina riga -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=Non è possibile generare PDF dai record selezionati -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +ConfirmDeleteLine=Vuoi davvero eliminare questa riga? +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=File creati da azioni di massa ShowTempMassFilesArea=Mostra i file creati da azioni di massa @@ -745,21 +754,30 @@ Progress=Avanzamento ClickHere=Clicca qui FrontOffice=Front office BackOffice=Backoffice -View=View +View=Vista Export=Esportazione Exports=Esportazioni -ExportFilteredList=Export filtered list -ExportList=Export list +ExportFilteredList=Esporta lista filtrata +ExportList=Esporta lista Miscellaneous=Varie Calendar=Calendario -GroupBy=Group by... +GroupBy=Raggruppa per... ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link +RemoveString=Rimuovi la stringa '%s' +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +DirectDownloadLink=Collegamento diretto al download Download=Download -ActualizeCurrency=Update currency rate +ActualizeCurrency=Aggiorna tasso di cambio Fiscalyear=Anno fiscale +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Lunedì Tuesday=Martedì @@ -817,5 +835,3 @@ SearchIntoContracts=Contratti SearchIntoCustomerShipments=Spedizioni cliente SearchIntoExpenseReports=Nota spese SearchIntoLeaves=Assenze - -BulkActions=Bulk actions diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index 30e09599bb2..11f987cbd8e 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -3,13 +3,26 @@ SecurityCode=Codice di sicurezza NumberingShort=N° Tools=Strumenti TMenuTools=Strumenti -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.

All the tools can be reached in the left menu. +ToolsDesc=
Quest'area è dedicata agli strumenti di utilità generale.
Questi strumenti permettono di gestire i dati, le risorse, le periferiche e le comunicazioni di massa. Birthday=Compleanno BirthdayDate=Data di nascita DateToBirth=Data di nascita BirthdayAlertOn=Attiva avviso compleanni BirthdayAlertOff=Avviso compleanni inattivo -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + +Notify_FICHINTER_ADD_CONTACT=Contatto aggiunto all'intervento Notify_FICHINTER_VALIDATE=Intervento convalidato Notify_FICHINTER_SENTBYMAIL=Intervento inviato per posta Notify_ORDER_VALIDATE=Ordine cliente convalidato @@ -61,22 +74,23 @@ PredefinedMailTestHtml=Questa è una mail di test (la parola test deve ri PredefinedMailContentSendInvoice=__CONTACTCIVNAME__ Qui troverete la fattura __REF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__ Vorremmo avvertirvi che il __REF__ fattura sembra di non essere pagato. Quindi questa è la fattura in allegato di nuovo, come un promemoria. __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nAlleghiamo la proposta commerciale __PROPREF__ \n\n__PERSONALIZED__ Cordiali Saluti\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__ Troverete qui la richiesta di prezzo __ASKREF__ __PERSONALIZED__Cordialmente __SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nAlleghiamo l'ordine __ORDERREF__\n\n__PERSONALIZED__ Cordiali Saluti\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nAlleghiamo il nostro ordine __ORDERREF__\n\n__PERSONALIZED__Cordiali Saluti\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ Qui troverete la fattura __REF__ __PERSONALIZED__Cordialmente, __SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nAlleghiamo il documento di trasporto __SHIPPINGREF__\n\n__PERSONALIZED__Cordiali Saluti\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nAlleghiamo l'intervento __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that best suits your needs... +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +DemoDesc=Dolibarr è un ERP/CRM compatto composto di diversi moduli funzionali. Un demo comprendente tutti i moduli non ha alcun senso, perché un caso simile non esiste nella realtà. Sono dunque disponibili diversi profili demo. +ChooseYourDemoProfil=Scegli il profilo demo che corrisponde alla tua attività ... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) DemoFundation=Gestisci i membri di una Fondazione DemoFundation2=Gestisci i membri e un conto bancario di una Fondazione -DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyServiceOnly=Gestire un'attività freelance di vendita di soli servizi DemoCompanyShopWithCashDesk=Gestire un negozio con una cassa -DemoCompanyProductAndStocks=Company selling products with a shop -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyProductAndStocks=Gestire una piccola o media azienda che vende prodotti +DemoCompanyAll=Gestire una piccola o media azienda con più attività (tutti i moduli principali) CreatedBy=Creato da %s ModifiedBy=Modificato da %s ValidatedBy=Convalidato da %s @@ -105,7 +119,7 @@ Right=Destra CalculatedWeight=Peso calcolato CalculatedVolume=volume calcolato Weight=Peso -WeightUnitton=tonne +WeightUnitton=t WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg @@ -140,27 +154,27 @@ SizeUnitinch=pollice SizeUnitfoot=piede SizeUnitpoint=punto BugTracker=Bug tracker -SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. +SendNewPasswordDesc=Questo modulo consente di richiedere una nuova password che verrà inviata al tuo indirizzo email.
Il cambiamento sarà effettivo solo dopo aver cliccato sul link di conferma contenuto nell'email.
Controlla la tua casella email. BackToLoginPage=Torna alla pagina di login -AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +AuthenticationDoesNotAllowSendNewPassword=La modalità di autenticazione è %s.
In questa modalità Dolibarr non può sapere né cambiare la tua password.
Contatta l'amministratore di sistema se desideri cambiare password. +EnableGDLibraryDesc=Per usare questa opzione bisogna installare o abilitare la libreria GD in PHP. ProfIdShortDesc=Prof ID %s è un dato dipendente dal paese terzo.
Ad esempio, per il paese %s, è il codice %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistiche per numero di unità -StatsByNumberOfEntities=Statistiche per numero di entità -NumberOfProposals=Numero di proposte degli ultimi 12 mesi -NumberOfCustomerOrders=Numero di ordini clienti degli ultimi 12 mesi -NumberOfCustomerInvoices=Numero di fatture clienti degli ultimi 12 mesi -NumberOfSupplierProposals=Numero di proposte fornitori degli ultimi 12 mesi -NumberOfSupplierOrders=Numero di ordini fornitori degli ultimi 12 mesi -NumberOfSupplierInvoices=Numero di fatture fornitori degli ultimi 12 mesi -NumberOfUnitsProposals=Numero di unità sulle proposte degli ultimi 12 mesi -NumberOfUnitsCustomerOrders=Numero di unità sugli ordini clienti degli ultimi 12 mesi -NumberOfUnitsCustomerInvoices=Numero di unità sulle fatture clienti degli ultimi 12 mesi -NumberOfUnitsSupplierProposals=Numero di unità sulle proposte fornitori degli ultimi 12 mesi -NumberOfUnitsSupplierOrders=Numero di unità sugli ordini fornitori degli ultimi 12 mesi -NumberOfUnitsSupplierInvoices=Numero di unità sulle fatture fornitori degli ultimi 12 mesi -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices +EMailTextInterventionAddedContact=Ti è stato assegnato un nuovo intervento %s. EMailTextInterventionValidated=Intervento %s convalidato EMailTextInvoiceValidated=Fattura %s convalidata EMailTextProposalValidated=Proposta %s convalidata. diff --git a/htdocs/langs/it_IT/projects.lang b/htdocs/langs/it_IT/projects.lang index c94a449c4c4..69f321ed703 100644 --- a/htdocs/langs/it_IT/projects.lang +++ b/htdocs/langs/it_IT/projects.lang @@ -9,34 +9,39 @@ ProjectsArea=Sezione progetti ProjectStatus=Stato del progetto SharedProject=Progetto condiviso PrivateProject=Contatti del progetto +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Tutti i progetti MyProjectsDesc=Questa visualizzazione mostra solo i progetti in cui sei indicato come contatto (di qualsiasi tipo). ProjectsPublicDesc=Questa visualizzazione mostra tutti i progetti che sei autorizzato a vedere. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. ProjectsPublicTaskDesc=Questa prospettiva presenta tutti i progetti e le attività a cui è permesso accedere. ProjectsDesc=Questa visualizzazione mostra tutti i progetti (hai i privilegi per vedere tutto). -TasksOnProjectsDesc=This view presents all tasks on all projects (your user permissions grant you permission to view everything). +TasksOnProjectsDesc=Questa visualizzazione mostra tutti i compiti di ogni progetto (hai i privilegi per vedere tutto). MyTasksDesc=Questa visualizzazione mostra solo i progetti o i compiti in cui sei indicati come contatto (di qualsiasi tipo). OnlyOpenedProject=Sono visibili solamente i progetti aperti (i progetti con stato di bozza o chiusi non sono visibili). -ClosedProjectsAreHidden=Closed projects are not visible. +ClosedProjectsAreHidden=I progetti chiusi non sono visibili. TasksPublicDesc=Questa visualizzazione mostra tutti i progetti e i compiti che hai il permesso di vedere. TasksDesc=Questa visualizzazione mostra tutti i progetti e i compiti (hai i privilegi per vedere tutto). -AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. -OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. -ImportDatasetTasks=Tasks of projects +AllTaskVisibleButEditIfYouAreAssigned=Tutti i compiti per questo progetto sono visibili, ma puoi allocare tempo lavorato solo ai compiti assegnati a te. Assegna a te stesso il compito se vuoi allocarvi tempo lavorato. +OnlyYourTaskAreVisible=Solo i compiti assegnati a te sono visibili. Assegna a te stesso il compito se vuoi allocarvi tempo lavorato. +ImportDatasetTasks=Compiti dei progetti +ProjectCategories=Project tags/categories NewProject=Nuovo progetto AddProject=Crea progetto DeleteAProject=Elimina un progetto DeleteATask=Cancella un compito -ConfirmDeleteAProject=Are you sure you want to delete this project? -ConfirmDeleteATask=Are you sure you want to delete this task? +ConfirmDeleteAProject=Vuoi davvero eliminare il progetto? +ConfirmDeleteATask=Vuoi davvero eliminare questo compito? OpenedProjects=Progetti aperti -OpenedTasks=Compiti aperti -OpportunitiesStatusForOpenedProjects=Opportunità numero di progetti aperti per stato -OpportunitiesStatusForProjects=Opportunities amount of projects by status +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status +OpportunitiesStatusForProjects=Importo delle vendite potenziali per stato nei progetti ShowProject=Visualizza progetto SetProject=Imposta progetto NoProject=Nessun progetto definito o assegnato NbOfProjects=Num. di progetti +NbOfTasks=Nb of tasks TimeSpent=Tempo lavorato TimeSpentByYou=Tempo impiegato da te TimeSpentByUser=Tempo impiegato dall'utente @@ -49,7 +54,7 @@ TaskTimeNote=Nota TaskTimeDate=Data TasksOnOpenedProject=Compiti relativi a progetti aperti WorkloadNotDefined=Carico di lavoro non definito -NewTimeSpent=Aggiungi tempo lavorato +NewTimeSpent=Tempo lavorato MyTimeSpent=Il mio tempo lavorato Tasks=Compiti Task=Compito @@ -58,26 +63,28 @@ TaskDateEnd=Data fine attività TaskDescription=Descrizione attività NewTask=Nuovo compito AddTask=Crea attività -AddTimeSpent=Create time spent +AddTimeSpent=Aggiungi tempo lavorato +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Operatività Activities=Compiti/operatività MyActivities=I miei compiti / operatività MyProjects=I miei progetti -MyProjectsArea=My projects Area +MyProjectsArea=Area progetti DurationEffective=Durata effettiva ProgressDeclared=Avanzamento dichiarato ProgressCalculated=Avanzamento calcolato Time=Tempo -ListOfTasks=List of tasks -GoToListOfTimeConsumed=Go to list of time consumed -GoToListOfTasks=Go to list of tasks +ListOfTasks=Lista dei compiti +GoToListOfTimeConsumed=Vai all'elenco del tempo impiegato +GoToListOfTasks=Vai all'elenco dei compiti ListProposalsAssociatedProject=Elenco delle proposte commerciali associate al progetto -ListOrdersAssociatedProject=List of customer orders associated with the project -ListInvoicesAssociatedProject=List of customer invoices associated with the project -ListPredefinedInvoicesAssociatedProject=List of customer template invoices associated with project -ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project -ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project +ListOrdersAssociatedProject=Elenco degli ordini associati al progetto +ListInvoicesAssociatedProject=Elenco delle fatture attive associate al progetto +ListPredefinedInvoicesAssociatedProject=Elenco dei modelli di fattura associati al progetto +ListSupplierOrdersAssociatedProject=Elenco degli ordini fornitori associati al progetto +ListSupplierInvoicesAssociatedProject=Elenco delle fatture passive associate al progetto ListContractAssociatedProject=Elenco dei contratti associati al progetto +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Elenco degli interventi associati al progetto ListExpenseReportsAssociatedProject=Lista delle note spese associate con il progetto ListDonationsAssociatedProject=Lista delle donazioni associate al progetto @@ -93,24 +100,25 @@ NotOwnerOfProject=Non sei proprietario di questo progetto privato AffectedTo=Assegnato a CantRemoveProject=Questo progetto non può essere rimosso: altri oggetti (fatture, ordini, ecc...) vi fanno riferimento. Guarda la scheda riferimenti. ValidateProject=Convalida progetto -ConfirmValidateProject=Are you sure you want to validate this project? +ConfirmValidateProject=Vuoi davvero convalidare il progetto? CloseAProject=Chiudi il progetto -ConfirmCloseAProject=Are you sure you want to close this project? -AlsoCloseAProject=Also close project (keep it open if you still need to follow production tasks on it) +ConfirmCloseAProject=Vuoi davvero chiudere il progetto? +AlsoCloseAProject=Chiudu anche il progetto (mantienilo aperto se hai ancora bisogno di seguire le attività in esso contenute) ReOpenAProject=Apri progetto -ConfirmReOpenAProject=Are you sure you want to re-open this project? +ConfirmReOpenAProject=Vuoi davvero riaprire il progetto? ProjectContact=Contatti del progetto ActionsOnProject=Azioni sul progetto YouAreNotContactOfProject=Non sei tra i contatti di questo progetto privato +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Cancella il tempo lavorato -ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? +ConfirmDeleteATimeSpent=Vuoi davvero cancellare il tempo lavorato? DoNotShowMyTasksOnly=Mostra anche le attività non assegnate a me ShowMyTasksOnly=Mostra soltanto le attività assegnate a me TaskRessourceLinks=Risorse ProjectsDedicatedToThisThirdParty=Progetti dedicati a questo soggetto terzo NoTasks=Nessun compito per questo progetto LinkedToAnotherCompany=Collegato ad un altro soggetto terzo -TaskIsNotAffectedToYou=Attività non assegnate a te +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Il campo tempo lavorato è vuoto ThisWillAlsoRemoveTasks=Questa azione eliminerà anche tutti i compiti del progetto (al momento ci sono %s compiti) e tutto il tempo lavorato già inserito. IfNeedToUseOhterObjectKeepEmpty=Se qualche elemento (fattura, ordine, ...), appartenente ad un altro soggetto terzo deve essere collegato al progetto da creare, non compilare il campo per assegnare il progetto a più di un soggetto terzo. @@ -120,25 +128,25 @@ CloneContacts=Clona contatti CloneNotes=Clona note CloneProjectFiles=Clona progetto con file collegati CloneTaskFiles=Clona i file collegati alle(a) attività (se le(a) attività sono clonate) -CloneMoveDate=Update project/tasks dates from now? -ConfirmCloneProject=Are you sure to clone this project? -ProjectReportDate=Change task dates according to new project start date +CloneMoveDate=Vuoi davvero aggiornare le date di progetti e compiti a partire da oggi? +ConfirmCloneProject=Vuoi davvero clonare il progetto? +ProjectReportDate=Cambia la data del compito a seconda della data di inizio progetto ErrorShiftTaskDate=Impossibile cambiare la data del compito a seconda della data di inizio del progetto ProjectsAndTasksLines=Progetti e compiti ProjectCreatedInDolibarr=Progetto %s creato -ProjectModifiedInDolibarr=Project %s modified +ProjectModifiedInDolibarr=Progetto %s modificato TaskCreatedInDolibarr=Attività %s creata TaskModifiedInDolibarr=Attività %s modificata TaskDeletedInDolibarr=Attività %s cancellata OpportunityStatus=Stato Opportunità OpportunityStatusShort=Opp. stato OpportunityProbability=Probabilità oppotunità -OpportunityProbabilityShort=Opp. probab. +OpportunityProbabilityShort=Probabilità vendita OpportunityAmount=Ammontare opportunità OpportunityAmountShort=Opp. quantità -OpportunityAmountAverageShort=Average Opp. amount -OpportunityAmountWeigthedShort=Weighted Opp. amount -WonLostExcluded=Won/Lost excluded +OpportunityAmountAverageShort=Importo medio vendita +OpportunityAmountWeigthedShort=Importo pesato vendita +WonLostExcluded=Escluse acquisite/perse ##### Types de contacts ##### TypeContact_project_internal_PROJECTLEADER=Capo progetto TypeContact_project_external_PROJECTLEADER=Capo progetto @@ -151,41 +159,46 @@ TypeContact_project_task_external_TASKCONTRIBUTOR=Contributore SelectElement=Seleziona elemento AddElement=Link all'elemento # Documents models -DocumentModelBeluga=Project template for linked objects overview +DocumentModelBeluga=Modello di progetto per la panoramica sugli oggetti collegati DocumentModelBaleine=Modello per il report di un progetto completo PlannedWorkload=Carico di lavoro previsto PlannedWorkloadShort=Carico di lavoro ProjectReferers=Elementi correlati ProjectMustBeValidatedFirst=I progetti devono prima essere validati -FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time +FirstAddRessourceToAllocateTime=Assegna una risorsa per allocare tempo InputPerDay=Input per giorno InputPerWeek=Input per settimana InputPerAction=Input per azione -TimeAlreadyRecorded=Tempo impiegato e già registrato per questo compito/giorno e questo utente %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Progetti con questo utente come contatto TasksWithThisUserAsContact=Compiti assegnati a questo utente ResourceNotAssignedToProject=Non assegnato al progetto -ResourceNotAssignedToTheTask=Not assigned to the task +ResourceNotAssignedToTheTask=Risorsa non assegnata all'attività +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assegnare un compito a me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assegnare ProjectOverview=Panoramica ManageTasks=Utilizzare i progetti per seguire compiti e tempo ManageOpportunitiesStatus=Utilizzare i progetti per seguire clienti interessati/opportunità ProjectNbProjectByMonth=Num. di progetti creati per mese +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Quantità di opportunità per mese ProjectWeightedOppAmountOfProjectsByMonth=Quantità ponderata di opportunità per mese ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Le statistiche relative a progetti/clienti interessati +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Compito assegnato. Inserire i tempi per questo compito dovrebbe esserre possibile. IdTaskTime=Tempo compito id -YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Progetti aperti da terze parti -OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities -NotAnOpportunityShort=Not an opportunity +YouCanCompleteRef=Se vuoi aggiungere informazioni al riferimento (per agevolare la ricerca tramite filtri), è opportuno separarle con un carattere "-" in modo che la numerazione automatica continui a funzionare correttamente per i progetti successivi (es: %s-ABC). Puoi aggiungere all'etichetta anche altre chiavi di ricerca. +OpenedProjectsByThirdparties=Open projects by third parties +OnlyOpportunitiesShort=Solo vendite potenziali +OpenedOpportunitiesShort=Open opportunities +NotAnOpportunityShort=Nessuna vendita potenziale OpportunityTotalAmount=Opportunità importo totale OpportunityPonderatedAmount=Opportunità importo ponderato -OpportunityPonderatedAmountDesc=Opportunities amount weighted with probability +OpportunityPonderatedAmountDesc=Importo vendite potenziali pesato con la probabilità OppStatusPROSP=Potenziale OppStatusQUAL=Qualificazione OppStatusPROPO=Proposta diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index 2db54463087..7d0d21f1255 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=コー​​ド +Nature=自然 +AccountingJournalType1=Various operation +AccountingJournalType2=販売 +AccountingJournalType3=購入 +AccountingJournalType4=バンク +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index d31d4d0bed2..ad4015ee27e 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -48,6 +48,7 @@ InternalUsers=内部ユーザー ExternalUsers=外部ユーザー GUISetup=表示 SetupArea=セットアップのエリア +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=ファイルのアップロードをテストするために形成します(設定に応じて) IfModuleEnabled=注:[はい]は、モジュールの%sが有効になっている場合にのみ有効です RemoveLock=それはアップデートツールの使用を可能にするために存在する場合は、ファイル%sを削除します 。 @@ -85,7 +86,7 @@ Mask=マスク NextValue=次の値 NextValueForInvoices=次の値(請求書) NextValueForCreditNotes=次の値(クレジットメモ) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=注意:PHPは、このパラメータの値が何であれ、%s %s 各ファイルのアップロードのサイズを制限する NoMaxSizeByPHPLimit=注:制限なしお使いのPHPの設定で設定されていません @@ -103,7 +104,7 @@ MenuIdParent=親メニューのID DetailMenuIdParent=親メニューのID(上のメニューの場合は0) DetailPosition=メニューの位置を定義するには、ソート番号 AllMenus=すべて -NotConfigured=モジュール構成されていません +NotConfigured=Module/Application not configured Active=アクティブ SetupShort=セットアップ OtherOptions=その他のオプション @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=桁区切り記号 Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=モジュール LanguageBrowserParameter=パラメータ%s LocalisationDolibarrParameters=ローカリゼーションのパラメータ ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=タイムゾーンは、PHPサーバー DaylingSavingTime=夏時間(ユーザー) CurrentHour=時間PHP(サーバー) CurrentSessionTimeOut=現在のセッションのタイムアウト -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=パーミッション BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=から要素のみ対応のモジュールが表示されます。 -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=conf.phpで暗号化されたデータベース InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=生成されたPDFファイル(推奨しない活性化、大量のPDF生成を壊す)の保護 -ProtectAndEncryptPdfFilesDesc=PDF文書の保護は、任意のPDFブラウザで読んで、印刷することが可能な保持されます。しかし、編集、およびコピーすることはもはや可能ではありません。この機能を使用すると、(未払いの請求書のように)動作していないグローバル累積PDFの建物を作ることに注意してください。 +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=機能 DolibarrLicense=ライセンス Developpers=開発者/貢献者 @@ -224,7 +225,9 @@ OfficialDemo=Dolibarrオンラインデモ OfficialMarketPlace=外部モジュール/アドオンの公式市場の場所 OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=ユーザーまたは開発者のドキュメント(DOC、よくある質問(FAQ)...)のために、
Dolibarr Wikiで見てみましょう。
%s ForAnswersSeeForum=他の質問/ヘルプについては、Dolibarrフォーラムを使用することができます。
%s HelpCenterDesc1=この領域には、Dolibarrのヘルプサポートサービスを取得することができます。 @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=システムと同様にUnix上では使用できま SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=モジュールのセットアップ -ModulesSetup=モジュールのセットアップ +ModulesSetup=Modules/Application setup ModuleFamilyBase=システム ModuleFamilyCrm=顧客関係管理(CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr現在のバージョン CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=任意の番号マスクを入力することができます。このマスクには、以下のタグを使用することができます。
{00万}各%sにインクリメントされる番号に対応しています。カウンタの希望の長さなどの多くのゼロとして入力します。カウンタは、マスクとして多くのゼロとして持たせるために、左からゼロで完了する予定です。
{00万000}以前のが、最初の%sから始まる適用されている+記号の右にある数字に対応するオフセットと同じです。
{00万@ x}の前のと同じですが、カウンタが月、xは(1〜12、または0の間でXコンフィギュレーションで定義された会計年度の初めに数ヶ月を使用する)に達したときにゼロにリセットされます。このオプションを使用すると、xが2以上ある場合、その列{YY} {ミリメートル}または{yyyyは} {}ミリメートルも要求されます。
{DD}日(01〜31)。
{}ミリメートル月(01〜12)。
2、4、または1の数値以上{YY}、{探す}または{Y}年。
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=マスク内の他のすべての文字はそのまま残ります。
スペースは許可されていません。
-GenericMaskCodes4a=サードパーティTheCompany第99 %s上の例では、2007年1月31日に行わ:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=2007年3月1日で作成されたサードパーティの例:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=定義されたマスクに応じてカスタマイズ可能な数を返します。 ServerAvailableOnIPOrPort=サーバーはポート%s上のアドレス%sで入手できます。 ServerNotAvailableOnIPOrPort=サーバーはポート%s上のアドレス%sでは使用できません @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = 電話 ExtrafieldPrice = 価格 ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=パスワード -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=フィールド +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=ユーザーとグループ Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=請求書、顧客のクレジットメモの管理。仕入先の Module40Name=サプライヤー Module40Desc=サプライヤーの管理と購買(注文書や請求書) Module42Name=ログ -Module42Desc=ロギング機能(ファイル、syslog、...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=エディタ Module49Desc=エディタの管理 Module50Name=製品 @@ -499,8 +521,8 @@ Module410Name=のwebcalendar Module410Desc=のwebcalendar統合 Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=通知 @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=のGeoIP Maxmindの変換機能 Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=マルチ会社 Module5000Desc=あなたが複数の企業を管理することができます Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=製品を作成/変更 Permission34=製品を削除します。 Permission36=隠された製品を参照してください/管理 Permission38=輸出製品 -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=(私が連絡している共有プロジェクトとプロジェクト)のプロジェクトを削除します。 Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=注文方法 DictionarySource=提案/受注の起源 DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=ユニット DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=セットアップは、保存された +SetupNotSaved=Setup not saved BackToModuleList=モジュールリストに戻る BackToDictionaryList=辞書リストに戻る VATManagement=付加価値税管理 @@ -921,7 +947,7 @@ Host=サーバ DriverType=ドライバの種類 SummarySystem=システム情報の概要 SummaryConst=すべてのDolibarrセットアップパラメータのリスト -MenuCompanySetup=会社/財団 +MenuCompanySetup=Company/Organisation DefaultMenuManager= 標準メニューマネージャ DefaultMenuSmartphoneManager=スマートフォンメニューマネージャ Skin=皮膚のテーマ @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=その日のメッセージ MessageLogin=ログインページのメッセージ +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=左側のメニューの恒久的な検索フォーム DefaultLanguage=使用する既定の言語(言語コード) EnableMultilangInterface=多言語のインターフェイスをイネーブルにします。 EnableShowLogo=左メニューのロゴを表示する -CompanyInfo=会社/財団情報 -CompanyIds=会社/財団ID +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=名 CompanyAddress=アドレス CompanyZip=ZIP @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=遅延会費のアラートの前に許容遅延時間 Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=行うためのチェック預金のアラートの前に許容遅延時間(日数) Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=他のメニューエントリは、オプションのパラメータを管理することができます。 LogEvents=セキュリティ監査イベント Audit=監査 @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Dolibarrセキュリティイベントのリスト SecurityEventsPurged=セキュリティイベントのパージ LogEventDesc=ここDolibarrセキュリティイベントのロギングを有効にすることができます。 監査-管理者は、メニューのシステムツールを介してそのコンテンツを見ることができます。警告は、この機能は、データベース内のデータを大量に消費することができます。 -AreaForAdminOnly=これらの機能は、 管理者ユーザーのみ ​​使用することができます。 +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=システム情報では、読み取り専用モードでのみ管理者の目に見える得るその他の技術情報です。 SystemAreaForAdminOnly=この領域は、管理者ユーザーのために利用可能です。 Dolibarr権限のいずれも、この制限を減らすことはできません。 CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=ユニークなイドプロ MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=%s形式にエクスポートするリンクは以下のリンクで入手可能です:%s ##### Invoices ##### BillsSetup=請求書モジュールのセットアップ BillsNumberingModule=モジュールの番号請求書とクレジットメモ BillsPDFModules=請求書ドキュメントモデル +PaymentsPDFModules=Payment documents models CreditNote=クレジットメモ CreditNotes=クレジットメモ ForceInvoiceDate=検証日に請求書の日付を強制的に @@ -1302,7 +1333,7 @@ LDAPFieldCompanyExample=例:o LDAPFieldSid=SID LDAPFieldSidExample=例:objectSidが LDAPFieldEndLastSubscription=サブスクリプション終了の日付 -LDAPFieldTitle=Job position +LDAPFieldTitle=職位 LDAPFieldTitleExample=Example: title LDAPSetupNotComplete=(他のタブに行く)LDAPセットアップ完了していません LDAPNoUserOrPasswordProvidedAccessIsReadOnly=いいえ、管理者またはパスワードが提供されません。 LDAPのアクセスは匿名で、読み取り専用モードになります。 @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=製品モジュールのセットアップ ServiceSetup=サービスモジュールのセットアップ @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=使用される請求書の日付 Buy=購入する Sell=販売 InvoiceDateUsed=使用される請求書の日付 -YourCompanyDoesNotUseVAT=あなたの会社は付加価値税を( - セットアップ - ホーム会社/財団)を使用しないように定義されているので、セットアップへのVATオプションはありません。 +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=会計コード AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=モジュールのセットアップをダイヤルする]をクリックします -ClickToDialUrlDesc=電話ピクトをクリックしが行われるときに、URLと呼ばれる。 URLでは、タグを使用することができます
呼び出すために人の電話番号に置き換えられます__PHONETO__
呼び出し人の電話番号(あなた)に置き換えられます__PHONEFROM__
あなたのclicktodialログイン(ユーザーカードに定義されています)に置き換えられます__LOGIN__
あなたのclicktodialパスワード(ユーザーカードに定義されています)に置き換えられます__PASS__。 +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=一般的な表示順 BankOrderES=スペイン語 BankOrderESDesc=スペイン語の表示順​​序 ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=マルチ会社のモジュールのセットアップ ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ja_JP/compta.lang b/htdocs/langs/ja_JP/compta.lang index 5aa7c6c110f..4d1d4ae77ac 100644 --- a/htdocs/langs/ja_JP/compta.lang +++ b/htdocs/langs/ja_JP/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=セットアップ RemainingAmountPayment=残りの金額の支払い: Account=アカウント -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=収入 Outcome=費用 ReportInOut=収益/費用 @@ -56,6 +56,7 @@ MenuTaxAndDividends=税金と配当金 MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=会計/財務エリア NewPayment=新しいお支払い @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- それは、クライアントから受け取った請求書のすべての効果的な支払いが含まれています。
- これは、これらの請求書の支払日に基づいている
-DepositsAreNotIncluded=- 入金請求書も含まれています -DepositsAreIncluded=- デポジットの請求書が含まれています +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=第三者IRPFによる報告 LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=セールスジャーナル DescPurchasesJournal=購入ジャーナル InvoiceRef=請求書参照。 CodeNotDef=定義されていない -WarningDepositsNotIncluded=預金請求書は、この会計モジュールでもこの​​バージョンに含まれていません。 +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ja_JP/cron.lang b/htdocs/langs/ja_JP/cron.lang index 3647d5769de..ed34f8a1655 100644 --- a/htdocs/langs/ja_JP/cron.lang +++ b/htdocs/langs/ja_JP/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=なし CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=無効にする CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=から @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ja_JP/errors.lang b/htdocs/langs/ja_JP/errors.lang index 28da4e16c77..9f88ac112e1 100644 --- a/htdocs/langs/ja_JP/errors.lang +++ b/htdocs/langs/ja_JP/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=ファイル'%s'を作成できませんでした ErrorFailToRenameDir="%s"にディレクトリ"%s"をリネームに失敗しました。 ErrorFailToCreateDir=ディレクトリ'%s'を作成できませんでした。 ErrorFailToDeleteDir=ディレクトリ'%s'を削除できませんでした。 +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=この連絡先は既にこのタイプの連絡先として定義されています。 ErrorCashAccountAcceptsOnlyCashMoney=この銀行口座は現金勘定であるため、それが唯一のタイプの現金の支払を受け入れます。 ErrorFromToAccountsMustDiffers=ソースとターゲットの銀行口座は異なっている必要があります。 @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=ディレクトリ%sの書き込みに失敗しました ErrorFoundBadEmailInFile=ファイル内の%s線の発見誤った電子メールのシンタックス(電子メール= %sを使用したサンプルライン%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=いくつかの必須フィールドが満たされていませんでした。 +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=ディレクトリの作成に失敗しました。そのWebサーバのユーザがDolibarrのドキュメントディレクトリに書き込む権限を持って確認してください。パラメータのsafe_modeがこのPHPが有効になっている場合、Dolibarr PHPファイルは、Webサーバーのユーザー(またはグループ)に所有していることを確認してください。 ErrorNoMailDefinedForThisUser=このユーザーに定義されたメールはありません ErrorFeatureNeedJavascript=この機能が動作するようにアクティブにするjavascriptをする必要があります。セットアップでこれを変更 - 表示されます。 @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Webサーバを実行するユーザーアカウントを使用%sそのための権限を持っていない ErrorNoActivatedBarcode=活性化バーコード·タイプません ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index e34383faf2a..2bfabf12f5c 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=パラメータが定義されていない%s ErrorUnknown=Unknown error ErrorSQL=SQLエラー ErrorLogoFileNotFound=ロゴファイル '%s'が見つかりませんでした -ErrorGoToGlobalSetup="会社/財団この問題を解決するためのセットアップに行く +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=これを修正するモジュールのセットアップに行く ErrorFailedToSendMail=(送信者= %s、受信機= %s)メールの送信に失敗しました ErrorFileNotUploaded=ファイルがアップロードされていませんでした。最大許容超えないようにサイズを確認し、その空き領域がディスク上で使用可能であり、すでにこのディレクトリ内の同じ名前のファイルが存在しないことに注意してください。 @@ -153,6 +153,7 @@ Edit=編集 Validate=検証 ValidateAndApprove=Validate and Approve ToValidate=検証するには +NotValidated=Not validated Save=保存 SaveAs=名前を付けて保存 TestConnection=試験用接続 @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=接続 Setup=セットアップ Alert=警告 +MenuWarnings=アラート Previous=前 Next=次の Cards=カード @@ -308,6 +310,7 @@ Copy=コピー Paste=貼り付ける Default=デフォルト DefaultValue=デフォルト値 +DefaultValues=Default values Price=価格 UnitPrice=単価 UnitPriceHT=単価(純額) @@ -363,7 +366,8 @@ VATRate=税率 Average=平均 Sum=合計 Delta=デルタ -Module=モジュール +Module=Module/Application +Modules=Modules/Applications Option=オプション List=リスト FullList=全リスト @@ -387,7 +391,7 @@ ActionRunningNotStarted=開始するには ActionRunningShort=In progress ActionDoneShort=完成した ActionUncomplete=Uncomplete -CompanyFoundation=会社/財団 +CompanyFoundation=Company/Organisation ContactsForCompany=このサードパーティの連絡先/ adresses ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=生成する Duration=持続 TotalDuration=全持続時間 Summary=要約 -DolibarrStateBoard=統計 -DolibarrWorkBoard=作業タスクボード +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=利用できる NotYetAvailable=まだ利用できません NotAvailable=利用できない @@ -434,7 +439,7 @@ Reportings=報告 Draft=ドラフト Drafts=ドラフト Validated=検証 -Opened=開かれた +Opened=開く New=新しい Discount=割引 Unknown=未知の @@ -453,6 +458,7 @@ NextStep=次のステップ Datas=データ None=なし NoneF=なし +NoneOrSeveral=None or several Late=遅い LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=画像 @@ -606,7 +612,8 @@ PartialWoman=部分的な TotalWoman=合計 NeverReceived=受信しませんでした Canceled=キャンセル -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=カラー Documents=リンクされたファイル @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=その主な属性を持つオブジェクトのクローンを作成する PDFMerge=PDFのマージ Merge=マージ +DocumentModelStandardPDF=Standard PDF template PrintContentArea=メインのコンテンツ領域を印刷するページを表示 MenuManager=Menu manager WarningYouAreInMaintenanceMode=警告は、あなたがメンテナンスモードになっているので、唯一のログイン%sは、現時点ではアプリケーションの使用を許可されている。 @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=行を削除します ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=カレンダー GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=月曜日 Tuesday=火曜日 @@ -817,5 +835,3 @@ SearchIntoContracts=契約 SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index 5f5b3009f47..ef87e73d04a 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=誕生日 BirthdayAlertOn=誕生日アラートアクティブ BirthdayAlertOff=非アクティブな誕生日アラート +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=介入は、検証 Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=これはテストメール(ワードテスト PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
教授イド%sは、
サードパーティの国に応じて情報です。
たとえば、国%sのために、それはコード%sです。 DolibarrDemo=Dolibarr ERP / CRMデモ -StatsByNumberOfUnits=製品/サービス単位数の統計 -StatsByNumberOfEntities=参照エンティティの数の統計 -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=介入%sが検証されています。 EMailTextInvoiceValidated=請求書%sが検証されています。 diff --git a/htdocs/langs/ja_JP/projects.lang b/htdocs/langs/ja_JP/projects.lang index 47da6022410..7bf41df7b9e 100644 --- a/htdocs/langs/ja_JP/projects.lang +++ b/htdocs/langs/ja_JP/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=皆 PrivateProject=プロジェクトの連絡先 +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=すべてのプロジェクト MyProjectsDesc=このビューは、(型が何であれ)の連絡先であるプロジェクトに限定されています。 ProjectsPublicDesc=このビューには、読み取りを許可されているすべてのプロジェクトを紹介します。 TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=このビューは、すべてのプロジェクトとタスク(あ AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=新しいプロジェクト AddProject=Create project DeleteAProject=プロジェクトを削除します。 DeleteATask=タスクを削除する ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=プロジェクトを表示する SetProject=プロジェクトを設定します。 NoProject=はプロジェクトが定義されていませんまたは所有している NbOfProjects=プロジェクトのNb +NbOfTasks=Nb of tasks TimeSpent=に費や​​された時間は TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=ユーザー TaskTimeNote=注意 TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=新たに費やされた時間は +NewTimeSpent=に費や​​された時間は MyTimeSpent=私の時間を費やし Tasks=タスク Task=タスク @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=新しいタスク AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=アクティビティ Activities=タスク/活動 MyActivities=私の仕事/活動 @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=プロジェクトに関連付けられている契約のリスト +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=プロジェクトに関連付けられている介入のリスト ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=プロジェクトの連絡先 ActionsOnProject=プロジェクトのイベント YouAreNotContactOfProject=この民間プロジェクトの接触ではありません +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=費やした時間を削除します。 ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=資源 ProjectsDedicatedToThisThirdParty=この第三者に専用のプロジェクト NoTasks=このプロジェクトのための作業をしない LinkedToAnotherCompany=他の第三者へのリンク -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=費やした時間は空です ThisWillAlsoRemoveTasks=このアクションは、プロジェクトのすべてのタスク(現時点では%sタスク)と過ごした時間のすべての入力を削除します。 IfNeedToUseOhterObjectKeepEmpty=いくつかのオブジェクト(請求書、注文、...)、別の第三者に属するが、作成するプロジェクトにリンクする必要がある場合は、複数のサードパーティ中のプロジェクトを持っているこの空を保持します。 @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ka_GE/compta.lang b/htdocs/langs/ka_GE/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/ka_GE/compta.lang +++ b/htdocs/langs/ka_GE/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ka_GE/cron.lang b/htdocs/langs/ka_GE/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/ka_GE/cron.lang +++ b/htdocs/langs/ka_GE/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ka_GE/errors.lang b/htdocs/langs/ka_GE/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/ka_GE/errors.lang +++ b/htdocs/langs/ka_GE/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang index 9ffa398137f..d7dde34acbb 100644 --- a/htdocs/langs/ka_GE/main.lang +++ b/htdocs/langs/ka_GE/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/ka_GE/other.lang +++ b/htdocs/langs/ka_GE/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/ka_GE/projects.lang b/htdocs/langs/ka_GE/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/ka_GE/projects.lang +++ b/htdocs/langs/ka_GE/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/km_KH/accountancy.lang b/htdocs/langs/km_KH/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/km_KH/accountancy.lang +++ b/htdocs/langs/km_KH/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/km_KH/admin.lang b/htdocs/langs/km_KH/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/km_KH/admin.lang +++ b/htdocs/langs/km_KH/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/km_KH/compta.lang b/htdocs/langs/km_KH/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/km_KH/compta.lang +++ b/htdocs/langs/km_KH/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/km_KH/cron.lang b/htdocs/langs/km_KH/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/km_KH/cron.lang +++ b/htdocs/langs/km_KH/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/km_KH/errors.lang b/htdocs/langs/km_KH/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/km_KH/errors.lang +++ b/htdocs/langs/km_KH/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang index c4b9c8e9f5b..9bcf62f836a 100644 --- a/htdocs/langs/km_KH/main.lang +++ b/htdocs/langs/km_KH/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/km_KH/other.lang b/htdocs/langs/km_KH/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/km_KH/other.lang +++ b/htdocs/langs/km_KH/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/km_KH/projects.lang b/htdocs/langs/km_KH/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/km_KH/projects.lang +++ b/htdocs/langs/km_KH/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index 6fc574c14e1..25e356fda32 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = ದೂರವಾಣಿ ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=ಪೂರೈಕೆದಾರರು Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=ಸ್ಕೈಪ್ Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=ಕಂಪನಿ / ಫೌಂಡೇಶನ್ +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=ಹೆಸರು CompanyAddress=ವಿಳಾಸ CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/kn_IN/compta.lang b/htdocs/langs/kn_IN/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/kn_IN/compta.lang +++ b/htdocs/langs/kn_IN/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/kn_IN/cron.lang b/htdocs/langs/kn_IN/cron.lang index 0535c4b32d4..e7433e137ac 100644 --- a/htdocs/langs/kn_IN/cron.lang +++ b/htdocs/langs/kn_IN/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=ಯಾವುದೂ ಇಲ್ಲ CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/kn_IN/errors.lang b/htdocs/langs/kn_IN/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/kn_IN/errors.lang +++ b/htdocs/langs/kn_IN/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index fe4ad62f967..6c858333c20 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=ಕಂಪನಿ / ಫೌಂಡೇಶನ್ +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=ತೆರೆಯಲಾಗಿದೆ New=New Discount=Discount Unknown=ತಿಳಿದಿಲ್ಲ @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=ಯಾವುದೂ ಇಲ್ಲ NoneF=ಯಾವುದೂ ಇಲ್ಲ +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang index 0c86b423cb0..8c8701310e6 100644 --- a/htdocs/langs/kn_IN/other.lang +++ b/htdocs/langs/kn_IN/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/kn_IN/projects.lang b/htdocs/langs/kn_IN/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/kn_IN/projects.lang +++ b/htdocs/langs/kn_IN/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index c92c890a496..9c6d314a6d2 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=스페인어 BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ko_KR/compta.lang b/htdocs/langs/ko_KR/compta.lang index dd86d8177cc..1fe127bd3a6 100644 --- a/htdocs/langs/ko_KR/compta.lang +++ b/htdocs/langs/ko_KR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=지정하지 않음 -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ko_KR/cron.lang b/htdocs/langs/ko_KR/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/ko_KR/cron.lang +++ b/htdocs/langs/ko_KR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ko_KR/errors.lang b/htdocs/langs/ko_KR/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/ko_KR/errors.lang +++ b/htdocs/langs/ko_KR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index f0c2e5199e3..2e8a395da7a 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=%s 매개변수를 지정할 수 없습니다 ErrorUnknown=Unknown error ErrorSQL=SQL 오류 ErrorLogoFileNotFound='%s' 로고 파일이 없습니다 -ErrorGoToGlobalSetup='회사/재단' 설정에서 수정하세요 +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=모듈 설정에서 수정하세요 ErrorFailedToSendMail=메일을 보내는 데 실패했습니다 (전송인=%s, 수취인=%s) ErrorFileNotUploaded=파일을 업로드할 수 없습니다. 파일 크기가 최대 허가 용량을 초과하지 않고, 디스크 내 충분한 저장 공간이 남아 있으며 또한 디렉토리에 같은 이름의 파일이 없는지를 확인하세요. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=할인 Unknown=알 수 없음 @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=월요일 Tuesday=화요일 @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/ko_KR/other.lang +++ b/htdocs/langs/ko_KR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/ko_KR/projects.lang b/htdocs/langs/ko_KR/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/ko_KR/projects.lang +++ b/htdocs/langs/ko_KR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 68f9d424d02..9ba6ee06140 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=ບັນຊີ +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=ທະນາຄານ +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 061ca7cb059..1252bc1dcc2 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=ການອະນຸຍາດ BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=ຊື່ CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/lo_LA/compta.lang b/htdocs/langs/lo_LA/compta.lang index a156c99f6d9..b16ca4f1053 100644 --- a/htdocs/langs/lo_LA/compta.lang +++ b/htdocs/langs/lo_LA/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=ບັນຊີ -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/lo_LA/cron.lang b/htdocs/langs/lo_LA/cron.lang index 8b4f1c713c3..c8dd26f18ed 100644 --- a/htdocs/langs/lo_LA/cron.lang +++ b/htdocs/langs/lo_LA/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=ປິດການນຳໃຊ້ CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/lo_LA/errors.lang b/htdocs/langs/lo_LA/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/lo_LA/errors.lang +++ b/htdocs/langs/lo_LA/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index 4471f368a65..2f42675b2e4 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=ລາຍການ FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang index e57d267ae08..84b1fa38edc 100644 --- a/htdocs/langs/lo_LA/other.lang +++ b/htdocs/langs/lo_LA/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/lo_LA/projects.lang b/htdocs/langs/lo_LA/projects.lang index d29957e1825..82afb02ec1b 100644 --- a/htdocs/langs/lo_LA/projects.lang +++ b/htdocs/langs/lo_LA/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=ວັນທີ -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index e07ab55aa6f..468919c7b6d 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Pridėti apskaitos sąskaitą AccountAccounting=Apskaitos sąskaita AccountAccountingShort=Sąskaita +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Didžioji knyga +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Pardavimų žurnalas @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Žurnalas NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debetas ir Kreditas negali turėti reikšmę tuo pačiu metu, - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Apskaitos sąskaitų sąrašas Pcgtype=Sąskaitų klasė -Pcgsubtype=Sąskaitų poklasis +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Iš viso pardavimų marža @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kodas +Nature=Prigimtis +AccountingJournalType1=Various operation +AccountingJournalType2=Pardavimai +AccountingJournalType3=Pirkimai +AccountingJournalType4=Bankas +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksportas @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index e60da717f22..694a3c5edec 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Vidiniai naudotojai ExternalUsers=Išoriniai naudotojai GUISetup=Atvaizdavimas SetupArea=Paruošimo sritis +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Failo-testo įkėlimo forma (pagal nustatymus) IfModuleEnabled=Pastaba: Patvirtinimas yra efektyvus tik, kai modulis %s yra aktyvus RemoveLock=Norint naudotis įkėlimo įrankiu, pašalinkite %s failą, jei toks egzistuoja @@ -85,7 +86,7 @@ Mask=Kaukė NextValue=Sekanti vertė NextValueForInvoices=Sekanti vertė (sąskaitos) NextValueForCreditNotes=Sekanti verte (kredito žymės) -NextValueForDeposit=Kita vertė (depozitas) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Kita vertė (papildymas) MustBeLowerThanPHPLimit=Pastaba: jūsų PHP riboja kiekvienos įkeliamo failo dydį iki %s %s, nesvarbu kokia būtų šio parametro vertė NoMaxSizeByPHPLimit=PHP konfiguracijoje ribos nepritaikytos @@ -103,7 +104,7 @@ MenuIdParent=Pagrindinio meniu ID DetailMenuIdParent=Pagrindinio meniu ID (tuščias aukščiausiam meniu lygiui) DetailPosition=Meniu pozicijos eilės numeris AllMenus=Visi -NotConfigured=Modulis nesukonfigūruotas +NotConfigured=Module/Application not configured Active=Aktyvus SetupShort=Nustatymai OtherOptions=Kitos parinktys @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tūkstančių skyriklis Destination=Paskirties vieta IdModule=Modulio ID IdPermissions=Leidimų ID -Modules=Moduliai LanguageBrowserParameter=Parametro %-as LocalisationDolibarrParameters=Vietos parametrai ClientTZ=Kliento Laiko Juosta (vartotojas) @@ -123,7 +123,8 @@ PHPTZ=PHP serverio Laiko Juosta DaylingSavingTime=Vasaros laikas CurrentHour=PHP serverio laikas CurrentSessionTimeOut=Einamosios sesijos pertrauka -YouCanEditPHPTZ=Norėdami nustatyti kitą PHP laiko juostą (neprivaloma), galite pabandyti pridėti failą .htacces su tokia linija "SetEnv TZ Europe/Paris". +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Leidimai BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Rodomi tik elementai iš leidžiami moduliai. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Duomenų bazės slaptažodis užšifruotas conf. InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Generuojamų PDF failų apsauga (Activated NOT recomended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=PDF dokumento apsauga sudaro galimybę jį skaityti ir spausdinti bet kurioje PDF skaityklėje. Tačiau redagavimas ir kopijavimas yra nebegalimas. Dėmesio, naudojant šią funkciją, masinis sukauptų pdf failų apjungimas neveikia (kaip neapmokėtų sąskaitų). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Savybė DolibarrLicense=Licencija Developpers=Kūrėjai/autoriai @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr tiesioginis demo OfficialMarketPlace=Oficiali išorinių Modulių/papildinių parduotuvė OfficialWebHostingService=Nurodomos Web prieglobos (hosting) paslaugos (Debesų priegloba (Cloud hosting)) ReferencedPreferredPartners=Privilegijuoti partneriai -OtherResources=Kiti resursai +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Vartotojo arba kūrėjo dokumentacijos (doc, DUK ...)
ieškoti Dolibarr Wiki:
%s ForAnswersSeeForum=Dėl kitų klausimų/pagalbos galite kreiptis į Dolibarr forumą:
%s HelpCenterDesc1=Ši sritis gali padėti jums gauti Dolibarr Help žinyno palaikymo paslaugą @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funkcija negalima Unix tipo sistemose. Patikrinti el. SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Modulio nuostatos -ModulesSetup=Moduliai nuostatos +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistema ModuleFamilyCrm=Ryšių su klientais valdymas (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr dabartinė versija CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Atnaujinti serverį offline +WithCounter=Manage a counter GenericMaskCodes=Galite įvesti bet kokį užmaskuotą numeravimą. Šiame maskavime naudojamos sekančios žymės:
{000000} atitinka skaičių, kuris bus padidinamas vienetu kiekvienam%s. Įveskite nulių iki pageidaujamo skaitiklio ilgio. Skaitiklis bus užpildomas nuliais iš kairės iki pilno skaitiklio ilgio.
{000000+000} toks kaip paskutinis, bet nuokrypis atitinkantis numerį dešinėje už + ženklo taikomas pradedant pirmu %s.
{000000@x} toks pat kaip ankstesnis, bet skaitiklis apnulinamas, kai pasiekiamas mėnuo x (x tarp 1 ir 12, arba naudojamas 0 pirmaisiais fiskalinių metų mėnesiais kaip aprašyta konfigūracijoje, arba 99 apnulinimui kiekvieną mėnesį). Jei ši opcija yra naudojama ir x yra 2 ar didesnis, tada seka {yy}{mm} arba {yyyy}{mm} taip pat reikalinga.
{dd} diena (nuo 01 iki 31).
{mm} mėnuo (nuo 01 iki 12).
{yy}, {yyyy} arba {y} metai, 2, 4 arba 1 skaitmenys.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Visi kiti simboliai maskuotėje išliks nepakitę.
Tarpai neleidžiami.
-GenericMaskCodes4a=Trečios šalies pavyzdys apie 99-us %s. Įmonė įkurta 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Trečios šalies pavyzdys sukurtas 2007-03-01:
GenericMaskCodes4c=Produkto pavyzdys sukurtas 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} duos ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX duos 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Grąžina taikomą numerį pagal nustatytą numeravimo maskuotę. ServerAvailableOnIPOrPort=Serveris yra pasiekiamas adresu %s, prievadas (port) %s ServerNotAvailableOnIPOrPort=Serveris nėra pasiekiamas adresu %s, prievadas (port) %s @@ -369,19 +375,21 @@ Int=Sveikasis skaičius Float=Slankus DateAndTime=Data ir valanda Unique=Unikalus -Boolean=Būlio ("paukščiukas") +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefonas ExtrafieldPrice = Kaina ExtrafieldMail = El. paštas ExtrafieldUrl = Url ExtrafieldSelect = Pasirinkti sąrašą ExtrafieldSelectList = Pasirinkite iš lentelės -ExtrafieldSeparator=Separatorius +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Slaptažodis -ExtrafieldCheckBox=Žymimasis langelis ("paukščiukas") -ExtrafieldRadio=Opcijų mygtukai -ExtrafieldCheckBoxFromList= Žymės langelis iš lentelės +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Nuoroda į objektą, +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Laukas +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Vartotojai ir grupės Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Sąskaitų ir kreditinių sąskaitų valdymas klientams. Sąskaitų Module40Name=Tiekėjai Module40Desc=Tiekėjų valdymas ir pirkimai (užsakymai ir sąskaitos) Module42Name=Įrašai -Module42Desc=Įregistravimo sąlygos (failas, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redaktoriai Module49Desc=Redaktoriaus valdymas Module50Name=Produktai @@ -499,8 +521,8 @@ Module410Name=Web kalendorius Module410Desc=Web kalendoriaus integracija Module500Name=Specialios išlaidos Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Paskola Module520Desc=Paskolų valdymas Module600Name=Pranešimai @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind konvertavimo galimybes Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=Žmogiškųjų išteklių valdymas (HRM) -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi įmonė Module5000Desc=Jums leidžiama valdyti kelias įmones Module6000Name=Darbo eiga @@ -591,7 +615,7 @@ Permission32=Sukurti/pakeisti produktus Permission34=Ištrinti produktus Permission36=Žiūrėti/tvarkyti paslėptus produktus Permission38=Eksportuoti produktus -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Ištrinti projektus (bendrus projektus ir projektus, apie kuriuos kalbama) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Užsakymų metodai DictionarySource=Pasiūlymų/užsakymų kilmė DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Sąskaitų plano modeliai +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=El.pašto pranešimų šablonai DictionaryUnits=Vienetai DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Nustatymai išsaugoti +SetupNotSaved=Setup not saved BackToModuleList=Atgal į modulių sąrašą BackToDictionaryList=Atgal į žodynų sąrašą VATManagement=PVM valdymas @@ -921,7 +947,7 @@ Host=Serveris DriverType=Tvarkyklės (driver) tipas SummarySystem=Sistemos informacijos santrauka SummaryConst=Visų Dolibarr nuostatų parametrų sąrašas -MenuCompanySetup=Įmonė/Organizacija +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standartinio meniu valdytojas DefaultMenuSmartphoneManager=Smartphone meniu valdytojas Skin=Grafinio vaizdo (skin) tema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Dienos pranešimas MessageLogin=Prisijungimo prie sistemos ekrano pranešimas +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Nuolatinė paieškos forma kairiajame meniu DefaultLanguage=Naudojama kalba pagal nutylėjimą (kalbos kodas) EnableMultilangInterface=Įjungti daugiakalbę sąsają EnableShowLogo=Rodyti logotipą kairiajame meniu -CompanyInfo=Įmonės/Organizacijos informacija -CompanyIds=Įmonės/Organizacijos tapatybės +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Pavadinimas/Vardas CompanyAddress=Adresas CompanyZip=Pašto kodas @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Vėlavimo tolerancija (dienų) prieš perspėjimą dė Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Vėlavimo tolerancija (dienų) prieš perspėjimą dėl čekių depozito įvykdymo Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Kiti meniu įrašai valdo laisvai pasirenkamus (optional) parametrus. LogEvents=Saugumo audito įvykiai Audit=Auditas @@ -987,7 +1015,7 @@ BrowserOS=Naršyklės OS ListOfSecurityEvents=Dolibarr saugumo įvykių sąrašas SecurityEventsPurged=Saugumo įvykiai išvalyti LogEventDesc=Čia galite leisti prisijungimą prie Dolibarr saugumo įvykių. Administratoriai gali matyti turinį per meniu System Tools - Audit. Įspėjimas, ši funkcija gali užimti didelį kiekį duomenų bazės atminties ir sulėtinti darbą. -AreaForAdminOnly=Šios funkcijos gali būti naudojamos tik administrator users. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistemos informacija yra įvairi techninė informacija, kurią gausite tik skaitymo režimu, ir bus matoma tik sistemos administratoriams. SystemAreaForAdminOnly=Ši sritis yra skirta tik administratoriams. Nė vienas iš Dolibarr leidimų negali sumažinti šio apribojimo. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Jūs turite įjungti bent 1 modulį ClassNotFoundIntoPathWarning=Klasė %s nerasta į PHP kelią YesInSummer=Taip vasarą -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sesijų saugykla užšifruota Suhosin ConditionIsCurrently=Dabartinė būklė yra %s YouUseBestDriver=Jūs naudojate tvarkyklę %s, kuri yra geriausia tvarkyklė prieinama šiuo metu. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Profesionalių IDS taisyklės MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Eksporto nuorodą į %s formatą galima rasti šiuo adresu: %s ##### Invoices ##### BillsSetup=Sąskaitos-faktūros modulio nuostatos BillsNumberingModule=Sąskaitų-faktūrų ir kredito avizų numeravimo modulis BillsPDFModules=Sąskaitų-faktūrų dokumentų moduliai +PaymentsPDFModules=Payment documents models CreditNote=Kreditinė sąskaita-faktūra CreditNotes=Kreditinės sąskaitos-faktūros ForceInvoiceDate=Sąskaitos-faktūros data įsigalioja patvirtinimo datą @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=%s tipo failais nėra laikomi HTTP serverio tarpinėje spar FilesOfTypeCompressed=%s tipo failai yra suspausti HTTP serveryje FilesOfTypeNotCompressed=%s tipo failai nėra suspausti HTTP serveryje CacheByServer=Laikoma serverio atmintyje +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Laikoma naršyklės atmintyje CompressionOfResources=HTTP atsakymų suspaudimas +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Toks automatinis aptikimas negalimas su naudojama naršykle +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produktų modulio nuostatos ServiceSetup=Paslaugų modulio nuostatos @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Naudojama sąskaitos-faktūros data Buy=Pirkti Sell=Parduoti InvoiceDateUsed=Naudojama sąskaitos-faktūros data -YourCompanyDoesNotUseVAT=Jūsų įmonei yra nustatymas netaikyti PVM (Pagrindinis - Nustatymai - Įmonė/Organizacija), todėl čia nėra PVM variantų pasirinkimo. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Apskaitos kodeksas AccountancyCodeSell=Pardavimo sąskaita. Kodas AccountancyCodeBuy=Pirkimo sąskaita. Kodas @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Nustatyti automatiškai šio įvykio būklę paieš AGENDA_DEFAULT_VIEW=Kurią kortelę norite atidaryti pagal nutylėjimą renkantis meniu Darbotvarkė AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial modulio nuostatos -ClickToDialUrlDesc=Paspaudus telefono piktogramą kviečiamas URL. Galima naudoti žymes
__PHONETO__, tam, kad pakeisti asmens, kuriam skambinama, telefono numeriu
__PHONEFROM__, tam, kad pakeisti asmens, kuris skambina, telefono numeriu (Jūsų)
__LOGIN__, tam, kad pakeisti Jūsų ClickToDial prisijungimo vardu (nustatytu vartotojo kortelėje)
__PASS__, tam, kad pakeisti Jūsų ClickToDial slaptažodį (nustatytą vartotojo kortelėje). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Bendra rodymo tvarka BankOrderES=Ispanų BankOrderESDesc=Ispanijos rodymo tvarka ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-įmonės modulio nustatymas ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Duomenų bazės atsarginės kopijos failo kūrimo vedlys SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/lt_LT/compta.lang b/htdocs/langs/lt_LT/compta.lang index 178a643e61b..4467e9e42af 100644 --- a/htdocs/langs/lt_LT/compta.lang +++ b/htdocs/langs/lt_LT/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Nustatymai RemainingAmountPayment=Likusi mokėjimo suma: Account=Sąskaita -Accountparent=Pagrindinė sąskaita (motina) -Accountsparent=Pagrindinės sąskaitos (motinos) +Accountparent=Parent account +Accountsparent=Parent accounts Income=Pajamos Outcome=Išlaidos ReportInOut=Pajamų/išlaidų @@ -56,6 +56,7 @@ MenuTaxAndDividends=Mokesčiai ir dividendai MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Apskaitos/Iždo sritis NewPayment=Naujas mokėjimas @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Tai apima visus faktinius sąskaitų-faktūrų apmokėjimus, gautus iš klientų.
- Tai grindžiama šių sąskaitų-faktūrų apmokėjimo datomis.
-DepositsAreNotIncluded=- Depozitų sąskaitos-faktūros neįtrauktos -DepositsAreIncluded=- Depozitų sąskaitos-faktūros yra įtrauktos +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Ataskaita pagal trečiosios šalies IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Pardavimų žurnalas DescPurchasesJournal=Pirkimų žurnalas InvoiceRef=Sąskaitos-faktūros nuoroda CodeNotDef=Neapibūdinta -WarningDepositsNotIncluded=Depozitų sąskaitos-faktūros nėra įtrauktos į apskaitos modulį šioje versijoje. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Mokėjimo termino data negali būti mažesnė nei objekto data. Pcg_version=Chart of accounts models Pcg_type=Pcg tipas @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/lt_LT/cron.lang b/htdocs/langs/lt_LT/cron.lang index 49700c9d714..2e9fd168ccd 100644 --- a/htdocs/langs/lt_LT/cron.lang +++ b/htdocs/langs/lt_LT/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Darbas CronNone=Nė vienas CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Įjungti CronStatusInactiveBtn=Išjungti CronTaskInactive=Šis darbas yra išjungtas CronId=ID -CronClassFile=Klasės (filename.class.php) -CronModuleHelp=Dolibarr modulio aplanko vardas (taip pat dirba su išorės Dolibarr moduliu).
Pvz.: Dolibarr Produkto objekto patraukimo metodas /htdocs/product/class/product.class.php, modulio reikšmė yra product -CronClassFileHelp=Failo pavadinimas įkėlimui.
Pvz.: Dolibarr Produkto objekto patraukimo metodas /htdocs/product/class/product.class.php, klasės failo vardo reikšmė yra product.class.php -CronObjectHelp=Objekto pavadinimas įkėlimui.
Pvz.:Dolibarr Produkto objekto patraukimo metodas /htdocs/product/clas/product.class.php, klasės failo vardo reikšmė yra Product -CronMethodHelp=Objekto metodas įkėlimui.
Pvz.: Dolibarr Produkto objekto patraukimo metodas /htdocs/product/class/product.class.php, metodo reikšmė yra fecth -CronArgsHelp=Metodo argumentai.
Pvz.: Dolibarr Produkto objekto patraukimo metodas /htdocs/product/class/product.class.php, parametrų reikšmė gali būti 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Sistemos komandinė eilutė vykdymui CronCreateJob=Create new Scheduled Job CronFrom=Nuo @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/lt_LT/errors.lang b/htdocs/langs/lt_LT/errors.lang index c00f0160604..d2297ca32e5 100644 --- a/htdocs/langs/lt_LT/errors.lang +++ b/htdocs/langs/lt_LT/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Nepavyko sukurti failo '%s'. ErrorFailToRenameDir=Nepavyko pervadinti katalogo '%s' į '%s' ErrorFailToCreateDir=Nepavyko sukurti katalogo '%s' ErrorFailToDeleteDir=Nepavyko ištrinti katalogo '%s' +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Šis kontaktas jau yra apibrėžtas kaip šio tipo kontaktas. ErrorCashAccountAcceptsOnlyCashMoney=Tai banko sąskaita yra pinigų sąskaita, todėl ji priima mokėjimus tik grynaisiais pinigais. ErrorFromToAccountsMustDiffers=Šaltinis ir tikslinės banko sąskaitos turi būti skirtingi. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Nepavyko įrašyti į katalogą %s ErrorFoundBadEmailInFile=Rasta neteisinga elektroninio pašto sintaksė failo eilutėje %s (eilutės pavyzdys %s su e-paštas=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Kai kurie privalomi laukai nėra užpildyti. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nepavyko sukurti aplanko. Įsitikinkite, kad web serverio vartotojas turi teisę rašyti į Dolibarr dokumentų aplanką. Jei parametras safe_mode yra įjungtas šio PHP, patikrinkite, ar Dolibarr PHP failai priklauso web serverio vartotojui (ar jų grupei). ErrorNoMailDefinedForThisUser=Šiam klientui neapibrėžtas paštas ErrorFeatureNeedJavascript=Šiai funkcijai turi būti aktyvuotas Javascript, kad galėtumėte dirbti. Pakeiskite tai meniu Nustatymai-Ekranas. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Vartotojo sąskaita %s naudojama web serverio vykdymui neturi leidimo tam. ErrorNoActivatedBarcode=Nėra įjungta brūkšninio kodo tipo ErrUnzipFails=Nepavyko išpakuoti %s su ZipArchive -ErrNoZipEngine=Nėra programos išpakuoti failui %s šiame PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Failas %s turi būti Dolibarr zip paketas ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL nėra įdiegta, tai yra būtina kalbantis su PayPal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index 68379d6399d..ca2af29824f 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametras %s neapibrėžtas ErrorUnknown=Nežinoma klaida ErrorSQL=SQL klaida ErrorLogoFileNotFound=Logotipo failas '%s' nerastas -ErrorGoToGlobalSetup=Eiti į 'Įmonė/Organizacija' nustatymus išspręsti šią problemą +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Eiti į Modulio nustatymus ir išspręsti šią problemą ErrorFailedToSendMail=Nepavyko išsiųsti laiško (siuntėjas=%s, gavėjas=%s) ErrorFileNotUploaded=Failas nebuvo įkeltas. Patikrinkite, ar jo dydis neviršija leistino, ar yra laisvos vietos diske ir ar jau nėra failo su tokiu pačiu pavadinimu šiame kataloge. @@ -153,6 +153,7 @@ Edit=Redaguoti Validate=Patvirtinti ValidateAndApprove=Patvirtinti ir leisti ToValidate=Patvirtinti +NotValidated=Not validated Save=Išsaugoti SaveAs=Įšsaugoti kaip TestConnection=Bandyti sujungimą @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Nėra tinkamos atjungimo funkcijos su autentifikavim Connection=Sujungimas Setup=Nustatymai Alert=Įspėjimas +MenuWarnings=Įspėjimai Previous=Ankstesnis Next=Sekantis Cards=Kortelės @@ -308,6 +310,7 @@ Copy=Kopijuoti Paste=Įklijuoti Default=Pagal nutylėjimą DefaultValue=Reikšmė pagal nutylėjimą +DefaultValues=Default values Price=Kaina UnitPrice=Vieneto kaina UnitPriceHT=Vieneto kaina (grynoji) @@ -363,7 +366,8 @@ VATRate=Mokesčio tarifas Average=Vidutinis Sum=Suma Delta=Delta -Module=Modulis +Module=Module/Application +Modules=Modules/Applications Option=Opcija List=Sąrašas FullList=Pilnas sąrašas @@ -387,7 +391,7 @@ ActionRunningNotStarted=Pradėti ActionRunningShort=In progress ActionDoneShort=Baigtas ActionUncomplete=Nepilnas -CompanyFoundation=Įmonė/Organizacija +CompanyFoundation=Company/Organisation ContactsForCompany=Šios trečiosios šalies adresatas ContactsAddressesForCompany=Adresatai/adresai šiai trečiajai šaliai AddressesForCompany=Adresai šiai trečiajai šaliai @@ -405,8 +409,9 @@ Generate=Generuoti Duration=Trukmė TotalDuration=Bendra trukmė Summary=Suvestinė -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Darbo uždavinių lenta +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Prieinamas NotYetAvailable=Dar nėra prieinamas NotAvailable=Nėra prieinamas @@ -453,6 +458,7 @@ NextStep=Kitas žingsnis Datas=Duomenys None=Nė vienas NoneF=Nė vienas +NoneOrSeveral=None or several Late=Vėlai LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Nuotrauka @@ -606,7 +612,8 @@ PartialWoman=Dalinis TotalWoman=Visas NeverReceived=Niekada negautas Canceled=Atšauktas -YouCanChangeValuesForThisListFromDictionarySetup=Jūs galite pakeisti reikšmes šiame sąraše iš meniu Nustatymai-Žodynas +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Spalva Documents=Susieti failai @@ -642,6 +649,7 @@ FreeLineOfType=Nemokamas tipo įėjimas CloneMainAttributes=Klonuoti objektą su savo pagrindiniais atributais PDFMerge=PDF sujungimas Merge=Sujungti +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Rodyti puslapio pagrindinio turinio sritį spausdinimui MenuManager=Meniu vadovas WarningYouAreInMaintenanceMode=Perspėjimas. Jūs esate serviso režime, todėl tik prisijungimas %s leidžiamas naudotis programa einamu momentu. @@ -708,6 +716,7 @@ from=nuo toward=būsimas Access=Priėjimas SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Naudokite Ctrl+C kopijuoti į iškarpinę (clipboard) SaveUploadedFileWithMask=Išsaugokite failą serveryje su pavadinimu "%s" (kitaip "%s") OriginFileName=Originalus failo pavadinimas @@ -718,7 +727,7 @@ ViewPrivateNote=Peržiūrėti pastabas XMoreLines=%s paslėptos eilutės PublicUrl=Viešas URL AddBox=Pridėti langelį -SelectElementAndClickRefresh=Pasirinkite elementą ir spustelėkite Atnaujinti +SelectElementAndClick=Select an element and click %s PrintFile=Spausdinti failą %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Eiti į Pradžia - Nustatymai - Bendrovė, kad pakeisti logotipą arba eikite į Pradžia - Nustatymai - Ekranas, kad paslėpti. @@ -734,8 +743,8 @@ Hello=Sveiki ! Sincerely=Sincerely DeleteLine=Ištrinti eilutę ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalendorius GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiskaliniai metai +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pirmadienis Tuesday=Antradienis @@ -817,5 +835,3 @@ SearchIntoContracts=Sutartys SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Išlaidų ataskaitos SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index 1a7647cf207..eff7ebeab4d 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Gimimo data BirthdayAlertOn=Gimtadienio perspėjimas aktyvus BirthdayAlertOff=Gimtadienio perspėjimas neaktyvus +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervencija patvirtinta Notify_FICHINTER_SENTBYMAIL=Intervencija nusiųsta paštu @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Tai yra pašto bandymas (žodis bandymas turi būt PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nČia rasite komercinį pasiūlymą __ PROPREF__\n\n__ PERSONALIZED__Sincerely\n\n__ SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nČia rasite užsakymą __ ORDERREF__\n\n__ PERSONALIZED__Sincerely\n\n__ SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nČia rasite mūsų užsakymą __ ORDERREF__\n\n__ PERSONALIZED__Sincerely\n\n__ SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nČia rasite pakrovimo gabenimui dokumentą __ SHIPPINGREF__\n\n__ PERSONALIZED__Sincerely\n\n__ SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nČia rasite intervencijos dokumentą __ FICHINTERREF__\n\n__ PERSONALIZED__Sincerely\n\n__ SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n __ PERSONALIZED__ \n\n__ SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof ID%s
yra informacija, priklausoma nuo trečiosios šalies dalyvio šalies.
Pavyzdžiui, šaliai %s, jo kodas %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Produktų/paslaugų vienetų skaičių statistika -StatsByNumberOfEntities=Susijusių subjektų skaičių statistika -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Intervencija %s buvo patvirtinta EMailTextInvoiceValidated=Sąskaita-faktūra %s buvo patvirtinta diff --git a/htdocs/langs/lt_LT/projects.lang b/htdocs/langs/lt_LT/projects.lang index fe5adf133d1..ec5ef378aff 100644 --- a/htdocs/langs/lt_LT/projects.lang +++ b/htdocs/langs/lt_LT/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Projekto statusas SharedProject=Visi PrivateProject=Projekto kontaktai +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Visi projektai MyProjectsDesc=Šis vaizdas yra ribotas projektams, kuriems esate kontaktinis asmuo (koks bebūtų tipas). ProjectsPublicDesc=Šis vaizdas rodo visus projektus, kuriuos yra Jums leidžiama skaityti. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Šis vaizdas rodo visus projektus ir užduotis (Jūsų vartotojo teis AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Naujas projektas AddProject=Sukurti projektą DeleteAProject=Ištrinti projektą DeleteATask=Ištrinti užduotį ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Rodyti projektą SetProject=Nustatykite projektą NoProject=Nėra apibrėžto ar turimo projekto NbOfProjects=Projektų skaičius +NbOfTasks=Nb of tasks TimeSpent=Praleistas laikas TimeSpentByYou=Jūsų sugaištas laikas TimeSpentByUser=Vartotojo sugaištas laikas @@ -47,9 +52,9 @@ TaskTimeSpent=Laikas, praleistas vykdant užduotis TaskTimeUser=Vartotojas TaskTimeNote=Pastaba TaskTimeDate=Data -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Užduotys atidarytuose projektuose WorkloadNotDefined=Darbo krūvis nėra apibrėžtas -NewTimeSpent=Naujas praleistas laikas +NewTimeSpent=Praleistas laikas MyTimeSpent=Mano praleistas laikas Tasks=Uždaviniai Task=Užduotis @@ -59,6 +64,7 @@ TaskDescription=Užduoties aprašymas NewTask=Nauja užduotis AddTask=Sukurti užduotį AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Veikla Activities=Užduotys/veikla MyActivities=Mano užduotys/veikla @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Sudarytų sutarčių, susijusių su projektu, sąrašas +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Intervencijų, susijusių su projektu, sąrašas ListExpenseReportsAssociatedProject=Išlaidų, susijusių su projektu, ataskaitų sąrašas. ListDonationsAssociatedProject=Paaukotų lėšų, susijusių su projektu, sąrašas. @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekto kontaktai ActionsOnProject=Projekto įvykiai YouAreNotContactOfProject=Jūs nesate šios privataus projekto kontaktinis adresatas +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Ištrinti praleistą laiką ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Taip pat žiūrėti užduotis pavestas ne man @@ -110,7 +118,7 @@ TaskRessourceLinks=Ištekliai ProjectsDedicatedToThisThirdParty=Projektai, skirti šiai trečiąjai šaliai NoTasks=Nėra uždavinių šiam projektui LinkedToAnotherCompany=Susijęs su kita trečiąja šalimi -TaskIsNotAffectedToYou=Užduotis nėra priskirta jums +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Praleistas laikas yra tuščias ThisWillAlsoRemoveTasks=Šis veiksmas taip pat ištrins visas projekto užduotis (%s užduotis šiuo metu) ir visus praleisto laiko įvestus duomenis. IfNeedToUseOhterObjectKeepEmpty=Jei kai kurie objektai (sąskaitos-faktūros, užsakymai, ...), priklausantys kitai trečiąjai šaliai, turi būti susiję su kuriamu projektu, laikykite šitą tuščią, kad projektas būtų kelių trečiųjų šalių (multi). @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Įvesčių per dieną InputPerWeek=Įvesčių per savaitę InputPerAction=Įvesčių vienam veiksmui -TimeAlreadyRecorded=sugaištas laikas, jau įrašytas šiai užduočiai / dienai ir vartotojas %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projektai su šiuo vartotoju kaip kontaktu. TasksWithThisUserAsContact=Užduotys, priskirtos šiam vartotojui ResourceNotAssignedToProject=Nepriskirtas projektui ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index f4c34b6b7f4..115020e1028 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Konts +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Virsgrāmata +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Konta bilance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Žurnāls NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Nav iestatīts -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Gads kurš jādzēš DelJournal=Žurnāls kurš jādzēš -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=Jauna transakcija NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Trešo personu kontu saraksts DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kods +Nature=Daba +AccountingJournalType1=Various operation +AccountingJournalType2=Pārdošanas +AccountingJournalType3=Purchases +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index f7e06ddafbd..e10b81e721c 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Iekšējie lietotāji ExternalUsers=Ārējie lietotāji GUISetup=Attēlojums SetupArea=Iestatījumi +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Forma, lai pārbaudītu failu augšupielādi (pēc uiestatītajiem parametriem) IfModuleEnabled=Piezīme: jā, ir efektīva tikai tad, ja modulis %s ir iespējots RemoveLock=Dzēst failu %s, ja tāds ir, lai varētu izmantošanu atjaunināšanas rīku. @@ -85,7 +86,7 @@ Mask=Maska NextValue=Nākošā vērtība NextValueForInvoices=Nākošā vērtība (rēķini) NextValueForCreditNotes=Nākošā vērtība (kredīta piezīmes) -NextValueForDeposit=Tālāk vērtība (depozīts) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Tālāk vērtība (nomaiņa) MustBeLowerThanPHPLimit=Piezīme: jūsu PHP ierobežo katra failu augšupielādes lielumu, lai %s %s, neatkarīgi no šī parametra vērtība ir NoMaxSizeByPHPLimit=Piezīme: Nav limits tiek noteikts jūsu PHP konfigurācijā @@ -103,7 +104,7 @@ MenuIdParent=Mātes izvēlne ID DetailMenuIdParent=ID vecāku izvēlnē (tukšs top izvēlnē) DetailPosition=Šķirot skaits definēt izvēlnes novietojumu AllMenus=Viss -NotConfigured=Modulis nav konfigurēts +NotConfigured=Module/Application not configured Active=Aktīvs SetupShort=Iestatījumi OtherOptions=Citas iespējas @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tūkstošu atdalītājs Destination=Galamērķis IdModule=Module ID IdPermissions=Permissions ID -Modules=Moduļi LanguageBrowserParameter=Parametrs %s LocalisationDolibarrParameters=Lokalizācijas parametri ClientTZ=Klienta laika zona (lietotāja) @@ -123,7 +123,8 @@ PHPTZ=PHP servera Laika zona DaylingSavingTime=Vasaras laiks CurrentHour=PHP laiks (servera) CurrentSessionTimeOut=Pašreizējais sesijas taimauts -YouCanEditPHPTZ=Noteikt atšķirīgu PHP laika joslu (nav obligāti), jūs varat mēģināt, lai pievienotu failu htacces ar līniju, piemēram, šīs "setenv TZ Eiropa / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Atļaujas BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Tikai elementus no iespējotu moduļi tiek parādīts. -ModulesDesc=Dolibarr moduļi noteikt, kura funkcionalitāte ir iespējots programmatūru. Daži moduļi pieprasa atļaujas, jums ir piešķirt lietotājiem, pēc tam ļaujot moduli. Noklikšķiniet uz pogas on / off ailē "Statuss", lai nodrošinātu moduli / funkciju. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Datubāzes paroli šifrēti conf.php (aktivēt i InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Ģenerēto PDF failu aizsardzība (aktivizēta NAV ieteicama, masveida pdf veidošanai) -ProtectAndEncryptPdfFilesDesc=Aizsardzība PDF dokumentu saglabā to pieejamu lasīt un izdrukāt ar jebkuru PDF pārlūkprogrammu. Tomēr, rediģēšanu un kopēšanu nav iespējams vairs. Ņemiet vērā, ka, izmantojot šo funkciju veikt ēku no pasaules uzkrātā pdf nedarbojas (piemēram, neapmaksātiem rēķiniem). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Iespēja DolibarrLicense=Licence Developpers=Izstrādātāji/ziedotāji @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr tiešsaistes demo OfficialMarketPlace=Oficiālais tirgus vieta ārējiem moduļiem/papildinājumiem OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Par lietotāju vai attīstītājs dokumentācijas (Doc, FAQ ...),
ieskatieties uz Dolibarr Wiki:
%s ForAnswersSeeForum=Attiecībā uz jebkuru citu jautājumu / palīdzēt, jūs varat izmantot Dolibarr forumu:
%s HelpCenterDesc1=Šī sadaļa var palīdzēt jums, lai saņemtu palīdzības dienesta atbalstu Dolibarr programmai. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Iezīme nav pieejams Unix, piemēram, sistēmas. Pār SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduļa iestatīšana -ModulesSetup=Moduļu iestatīšana +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistēma ModuleFamilyCrm=Klientu pārvaldība (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr pašreizējā versija CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Jaunākā stabilā versija LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Jūs varat ievadīt jebkuru numerācijas masku. Šajā maska, šādus tagus var izmantot:
{000000} atbilst skaitam, kas tiks palielināts par katru %s. Ievadīt tik daudz nullēm, kā vajadzīgajā garumā letes. Skaitītājs tiks pabeigts ar nullēm no kreisās puses, lai būtu tik daudz nullēm kā masku.
{000000 000} tāds pats kā iepriekšējais, bet kompensēt atbilst noteiktam skaitam pa labi uz + zīmi tiek piemērots, sākot ar pirmo %s.
{000000 @ x} tāds pats kā iepriekšējais, bet skaitītājs tiek atiestatīts uz nulli, kad mēnesī x ir sasniegts (x no 1 līdz 12, 0 vai izmantot agri no finanšu gada mēnešiem, kas noteiktas konfigurācijas, 99 vai atiestatīt uz nulli katru mēnesi ). Ja šis variants tiek izmantots, un x ir 2 vai vairāk, tad secība {gggg} {mm} vai {GGGG} {mm} ir arī nepieciešama.
{Dd} diena (no 01 līdz 31).
{Mm} mēnesi (no 01 līdz 12).
{Yy}, {GGGG} vai {y} gadu vairāk nekā 2, 4 vai 1 numuri.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of thirdparty type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Visas citas rakstzīmes masku paliks neskartas.
Atstarpes nav atļautas.
-GenericMaskCodes4a=Piemērs par 99. %s trešās puses Thecompany darīts 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Piemērs trešā persona veidota 2007-03-01:
GenericMaskCodes4c=Piemērs produkts veidots 2007-03-01:
-GenericMaskCodes5=ABC {gggg} {mm} - {000000} dos ABC0701-000099
{0000 +100 @ 1}-ZZZ / {dd} / XXX dos 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Atgriež pielāgojamu numuru atbilstoši noteiktajai maskai. ServerAvailableOnIPOrPort=Serveris ir pieejams adresē %s ports %s ServerNotAvailableOnIPOrPort=Serveris nav pieejams adresē %s ports %s @@ -369,19 +375,21 @@ Int=Vesels skaitlis Float=Peldēt DateAndTime=Datums un laiks Unique=Unikāls -Boolean=Būla (izvēles rūtiņa) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefons ExtrafieldPrice = Cena ExtrafieldMail = E-pasts ExtrafieldUrl = Url ExtrafieldSelect = Izvēlēties sarakstu ExtrafieldSelectList = Izvēlieties kādu no tabulas -ExtrafieldSeparator=Atdalītājs +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Parole -ExtrafieldCheckBox=Rūtiņa -ExtrafieldRadio=Radio poga -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Lauks +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Lietotāji un grupas Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Rēķinu un kredītu piezīmi vadību klientiem. Rēķinu pārvald Module40Name=Piegādātāji Module40Desc=Piegādātājs vadības un iepirkuma (rīkojumi un rēķini) Module42Name=Logfaili -Module42Desc=Mežizstrāde iekārtas (fails, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redaktors Module49Desc=Redaktora vadība Module50Name=Produkti @@ -499,8 +521,8 @@ Module410Name=Vebkalendārs Module410Desc=Web kalendāra integrācija Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Darbinieku līgumi un atalgojums -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Paziņojumi @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind pārveidošanu iespējas Module3100Name=Skaips Module3100Desc=Add a Skype button into card of users / third parties / contacts / members +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-kompānija Module5000Desc=Ļauj jums pārvaldīt vairākus uzņēmumus Module6000Name=Darba plūsma @@ -591,7 +615,7 @@ Permission32=Izveidot / mainīt produktus Permission34=Dzēst produktus Permission36=Skatīt/vadīt slēptos produktus Permission38=Eksportēt produktus -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Dzēst projektus (dalīta projekts un projektu es esmu kontaktpersonai) Permission45=Eksportēt projektus @@ -844,12 +868,14 @@ DictionaryOrderMethods=Pasūtījumu veidi DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=E-pastu paraugi DictionaryUnits=Vienības DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Iestatījumi saglabāti +SetupNotSaved=Setup not saved BackToModuleList=Atpakaļ uz moduļu sarakstu BackToDictionaryList=Atpakaļ uz vārdnīcu sarakstu VATManagement=PVN Vadība @@ -921,7 +947,7 @@ Host=Serveris DriverType=Draivera veids SummarySystem=Sistēmas informācijas kopsavilkums SummaryConst=Sarakstu ar visiem Dolibarr uzstādīšanas parametriem -MenuCompanySetup=Kompānija/Organizācija +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standarta izvēlnes menedžeris DefaultMenuSmartphoneManager=Viedtālruņa izvēlnes vadība Skin=Izskats @@ -931,12 +957,14 @@ DefaultMaxSizeList=Noklusētais maksimālais sarakstu garums DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Dienas ziņa MessageLogin=Iežurnalēšanās lapas paziņojums +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Pastāvīgā meklēšanas forma kreisajā izvēlnē DefaultLanguage=Noklusējuma izmantošanas valoda (valodas kods) EnableMultilangInterface=Iespējot daudzvalodu interfeisu EnableShowLogo=Rādīt logotipu kreisajā izvēlnē -CompanyInfo=Uzņēmuma / nodibinājuma informācija -CompanyIds=Uzņēmuma / nodibinājuma identitātes +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nosaukums CompanyAddress=Adrese CompanyZip=Pasta indekss @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance kavēšanās (dienās) pirms brīdinājumu p Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance kavēšanās (dienās) pirms brīdinājumu par pārbaudēm, depozītu darīt Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Citas izvēlnes ieraksti pārvaldīt izvēles parametrus. LogEvents=Drošības audita notikumi Audit=Audits @@ -987,7 +1015,7 @@ BrowserOS=Pārlūkprogrammas OS ListOfSecurityEvents=Saraksts ar Dolibarr drošības pasākumiem SecurityEventsPurged=Drošības pasākumi dzēsti LogEventDesc=Jūs varat ļaut šeit reģistrēšanu Dolibarr drošības notikumiem. Administratori tad var redzēt tās saturu, izmantojot izvēlnes Sistēmas rīki - revīzijas. Uzmanību, šī funkcija var patērēt lielu daudzumu datu bāzē. -AreaForAdminOnly=Minētās funkcijas var izmantot administratora lietotājiem. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistēmas informācija ir dažādi tehniskā informācija jums tikai lasīšanas režīmā un redzama tikai administratoriem. SystemAreaForAdminOnly=Šī joma ir pieejama administratora lietotājiem. Neviens no Dolibarr atļauju var samazināt šo robežu. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Jums ir jābūt ieslēgtam vismaz 1 modulim ClassNotFoundIntoPathWarning=Klase %s nav atrasta PHP norādītajā ceļā YesInSummer=Jā vasarā -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sesija uzglabāšana šifrēta ar Suhosin ConditionIsCurrently=Stāvoklis šobrīd ir %s YouUseBestDriver=Jūs varat izmantot vadītāja %s, kas ir labākais draiveris, kas pieejams šobrīd. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Noteikumi par profesionālo IDS MustBeUnique=Jābūt unikālam? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Eksporta saite uz %s formātā ir pieejams šādā tīmekļa vietnē: %s ##### Invoices ##### BillsSetup=Rēķinu moduļa uzstādīšana BillsNumberingModule=Rēķinu un kredītu piezīmes numerācijas modelis BillsPDFModules=Rēķina dokumentu modeļi +PaymentsPDFModules=Payment documents models CreditNote=Kredīta piezīme CreditNotes=Kredīta piezīmes ForceInvoiceDate=Force rēķina datumu apstiprināšanas datuma @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Faili tipa %s nav kešatmiņā ar HTTP serveri FilesOfTypeCompressed=Faili Tipa %s tiek saspiesti ar HTTP serveri FilesOfTypeNotCompressed=Faili Tipa %s nav saspiesti ar HTTP serveri CacheByServer=Cache serverim +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache pārlūks CompressionOfResources=Kompresijas HTTP atbildes +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produktu moduļa uzstādīšana ServiceSetup=Pakalpojumu moduļa uzstādīšana @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Rēķina izmantotais datums Buy=Pirkt Sell=Pārdot InvoiceDateUsed=Rēķina izmantotais datums -YourCompanyDoesNotUseVAT=Jūsu uzņēmums ir definēts neizmantot PVN (Home - Setup - Uzņēmuma / Foundation), tāpēc nav PVN iespējas, lai setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Grāmatvedība kods AccountancyCodeSell=Tirdzniecība kontu. kods AccountancyCodeBuy=Iegādes konta. kods @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Klikšķiniet lai Dial moduļa uzstādīšanas -ClickToDialUrlDesc=Url sauc, kad uz tālruņa Piktogramma klikšķis tiek darīts. In URL, jūs varat izmantot tagus
__PHONETO__ Kas tiks aizstāts ar tālruņa numuru personai, lai izsauktu
__PHONEFROM__ Kas tiks aizstāts ar tālruņa numuru, aicinot personas (jūsu)
__LOGIN__ Kas tiks aizstāts ar jūsu clicktodial pieteikšanās (definēts jūsu lietotāja kartes)
__PASS__ Kas tiks aizstāts ar jūsu clicktodial paroli (definēts jūsu lietotāja kartes). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Vispārējā displejs rīkojums BankOrderES=Spāņu BankOrderESDesc=Spāņu displejs, lai ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-kompānija modulis iestatīšana ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Lapas virsraksta krāsa LinkColor=Linku krāsa -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Fona krāsa TopMenuBackgroundColor=Fona krāsa augšējai izvēlnei @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index cb3fb940f6c..41682eb4b3f 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Iestatījumi RemainingAmountPayment=Summa maksājums Atlikušo: Account=Konts -Accountparent=Konta vecākiem -Accountsparent=Konti vecākiem +Accountparent=Parent account +Accountsparent=Parent accounts Income=Ienākumi Outcome=Izdevumi ReportInOut=Ienākumi / izdevumi @@ -56,6 +56,7 @@ MenuTaxAndDividends=Nodokļi un dividendes MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Grāmatvedība / kase laukums NewPayment=Jauns maksājums @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Tas ietver visas efektīvus maksājumus rēķiniem, kas saņemti no klientiem.
- Tā ir balstīta uz maksājuma datumu šiem rēķiniem
-DepositsAreNotIncluded=- Noguldījumu rēķinus, nedz iekļauti -DepositsAreIncluded=- Noguldījumu rēķini ir iekļauti +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Ziņojumā, ko trešās puses IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=PVN atskaite @@ -169,7 +170,7 @@ DescSellsJournal=Pārdošanas žurnāls DescPurchasesJournal=Pirkšanas žurnāls InvoiceRef=Rēķina ref. CodeNotDef=Nav definēts -WarningDepositsNotIncluded=Noguldījumi rēķini nav iekļauti šajā versijā ar šo grāmatvedības moduli. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Maksājuma termiņš datums nevar būt zemāka par objekta datumu. Pcg_version=Chart of accounts models Pcg_type=PCG veids @@ -189,8 +190,10 @@ AccountancyJournal=Kontu žurnāls ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Klonēt nākošam mēnesim @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/lv_LV/cron.lang b/htdocs/langs/lv_LV/cron.lang index dbde31ee42d..fedc26e7d45 100644 --- a/htdocs/langs/lv_LV/cron.lang +++ b/htdocs/langs/lv_LV/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Darbs CronNone=Nav CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Ieslēgt CronStatusInactiveBtn=Izslēgt CronTaskInactive=Šis darbs ir izslēgts CronId=Id -CronClassFile=Klases (filename.class.php) -CronModuleHelp=Nosaukums Dolibarr moduļa direktoriju (arī strādāt ar ārējo Dolibarr moduli).
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, moduļa vērtība ir produkts -CronClassFileHelp=Faila nosaukumu, lai slodze.
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, klases faila nosaukuma vērtība ir product.class.php -CronObjectHelp=Objekta nosaukums, lai slodze.
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, klases faila nosaukuma vērtība ir produktu -CronMethodHelp=Objekts metode, lai palaistu.
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, metodes vērtība ir ir fecth -CronArgsHelp=Šī metode argumentus.
Par exemple atnest metodi Dolibarr Produkta objekts / htdocs / produktu / klase / product.class.php, no paramters vērtība var būt 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Sistēma komandrindas izpildīt. CronCreateJob=Create new Scheduled Job CronFrom=No @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index 0962082bf40..8e3808f142e 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Neizdevās izveidot failu '%s'. ErrorFailToRenameDir=Neizdevās pārdēvēt mapi '%s' uz '%s'. ErrorFailToCreateDir=Neizdevās izveidot mapi '%s'. ErrorFailToDeleteDir=Neizdevās dzēst direktoriju '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Šī kontaktpersona jau ir definēts kā kontaktpersona šāda veida. ErrorCashAccountAcceptsOnlyCashMoney=Šis bankas konts ir naudas konts, lai tā pieņem maksājumus no veida tikai skaidrā naudā. ErrorFromToAccountsMustDiffers=Avots un mērķiem banku kontiem jābūt atšķirīgai. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Neizdevās ierakstīt direktorijā %s ErrorFoundBadEmailInFile=Atrasts nepareiza e-pasta sintakse %s līnijām failā (piemērs line %s ar e-pasta = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Daži nepieciešamie lauki netika aizpildīti. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Neizdevās izveidot direktoriju. Pārbaudiet, vai Web servera lietotājam ir tiesības rakstīt uz Dolibarr dokumentus direktorijā. Ja parametrs safe_mode ir iespējots uz šo PHP, pārbaudiet, Dolibarr php faili pieder web servera lietotājam (vai grupa). ErrorNoMailDefinedForThisUser=Nav definēts e-pasts šim lietotājam ErrorFeatureNeedJavascript=Šai funkcijai ir nepieciešams aktivizēt javascript. Mainīt to var iestatījumi - attēlojums. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Lietotāja konts %s izmantot, lai veiktu web serveri nav atļauja, kas ErrorNoActivatedBarcode=Nav svītrkodu veids aktivizēts ErrUnzipFails=Neizdevās atarhivēt %s izmantojot ZipArchive -ErrNoZipEngine=Nav dzinēja unzip %s failu šajā PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Failam %s jābūt Dolibarr zip ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL nav uzstādīts, tas ir svarīgi runāt ar Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=Kļūda saglabājot izmaiņas ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index 1de889172ed..fa2167ea8bf 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametrs %s nav definēts ErrorUnknown=Nezināma kļūda ErrorSQL=SQL kļūda ErrorLogoFileNotFound=Logotipa fails '%s' nav atrasts -ErrorGoToGlobalSetup=Iet uz 'Sabiedrība / nodibinājums' uzstādījumiem, lai novērstu šo +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Iet uz moduļa uzstādīšanu, lai atrisinātu šo ErrorFailedToSendMail=Neizdevās nosūtīt pastu (sūtītājs = %s, saņēmējs = %s) ErrorFileNotUploaded=Fails netika augšupielādēts. Pārbaudiet vai izmērs nepārsniedz maksimāli pieļaujamo un, ka brīvas vietas ir pieejama uz diska, un nav jau failu ar tādu pašu nosaukumu šajā direktorijā. @@ -153,6 +153,7 @@ Edit=Rediģēt Validate=Pārbaudīt ValidateAndApprove=Validate and Approve ToValidate=Jāpārbauda +NotValidated=Not validated Save=Saglabāt SaveAs=Saglabāt kā TestConnection=Savienojuma pārbaude @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Pieslēgties Setup=Iestatījumi Alert=Brīdināt +MenuWarnings=Brīdinājumi Previous=Iepriekšējais Next=Nākamais Cards=Kartes @@ -308,6 +310,7 @@ Copy=Kopēt Paste=Ielīmēt Default=Noklusējums DefaultValue=Noklusējuma vērtība +DefaultValues=Default values Price=Cena UnitPrice=Vienības cena UnitPriceHT=Vienības cena (neto) @@ -363,7 +366,8 @@ VATRate=Nodokļa likme Average=Vidējais Sum=Summa Delta=Delta -Module=Modulis +Module=Module/Application +Modules=Modules/Applications Option=Iespējas List=Saraksts FullList=Pilns saraksts @@ -387,7 +391,7 @@ ActionRunningNotStarted=Jāsāk ActionRunningShort=Procesā ActionDoneShort=Pabeigts ActionUncomplete=Nepabeigts -CompanyFoundation=Kompānija/Organizācija +CompanyFoundation=Company/Organisation ContactsForCompany=Šīs trešās personas kontakti ContactsAddressesForCompany=Kontakti / adreses par šīs trešās personas AddressesForCompany=Šīs trešās puses adreses @@ -405,8 +409,9 @@ Generate=Izveidot Duration=Ilgums TotalDuration=Kopējais pasākuma ilgums Summary=Kopsavilkums -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Darba uzdevumi +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Pieejams NotYetAvailable=Nav vēl pieejams NotAvailable=Nav pieejams @@ -453,6 +458,7 @@ NextStep=Nākamais solis Datas=Dati None=Nav NoneF=Nav +NoneOrSeveral=None or several Late=Vēlu LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Attēls @@ -606,7 +612,8 @@ PartialWoman=Daļējs TotalWoman=Kopsumma NeverReceived=Nekad nav saņemts Canceled=Atcelts -YouCanChangeValuesForThisListFromDictionarySetup=Jūs varat mainīt vērtības šim sarakstam no iestatījumiem - vārdnīcas +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Krāsa Documents=Piesaistītie faili @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Klonēt objektu ar tā galvenajiem atribūtiem PDFMerge=Apvienot PDF Merge=Apvienot +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Rādīt lapu drukāt galveno satura jomā MenuManager=Izvēlnes iestatīšana WarningYouAreInMaintenanceMode=Uzmanību, jūs esat uzturēšanas režīmā, t.i. tikai pieteikšanās %s ir atļauts lietot programmu. @@ -708,6 +716,7 @@ from=no toward=uz Access=Pieeja SelectAction=Izvēlēties darbību +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Izmantot taustiņu kombināciju Ctrl + C, lai kopētu SaveUploadedFileWithMask=Saglabāt failu uz servera ar nosaukumu "%s" (citādi "%s") OriginFileName=Oriģinālais faila nosaukums @@ -718,7 +727,7 @@ ViewPrivateNote=Apskatīt piezīmes XMoreLines=%s līnija(as) slēptas PublicUrl=Publiskā saite AddBox=Pievienot info logu -SelectElementAndClickRefresh=Izvēlieties elementu un nospiediet atjaunot +SelectElementAndClick=Select an element and click %s PrintFile=Drukāt failu %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalendārs GroupBy=Kārtot pēc... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiskālais gads +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pirmdiena Tuesday=Otrdiena @@ -817,5 +835,3 @@ SearchIntoContracts=Līgumi SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Izdevumu atskaites SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 3b169d369c3..8c7f7ce2be7 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Dzimšanas diena DateToBirth=Dzimšanas datums BirthdayAlertOn=dzimšanas dienas brīdinājums aktīvs BirthdayAlertOff=dzimšanas dienas brīdinājums neaktīvs +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervences apstiprināts Notify_FICHINTER_SENTBYMAIL=Intervences nosūtīt pa pastu @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Tas ir tests pasts (vārds testam jābūt treknrak PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nJums tiek nosūtīts komerciālais piedāvājums __PROPREF__\n\n__PERSONALIZED__Ar cieņu\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\n\nYou will find here the price request __ASKREF__\n\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof ID %s
ir informācija, atkarībā no trešās puses valstīm.
Piemēram, attiecībā uz valstu %s, tas ir kods %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistiku skaita produktu / pakalpojumu vienības -StatsByNumberOfEntities=Statistiku skaita atsaucoties vienību -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Iejaukšanās %s ir apstiprināta. EMailTextInvoiceValidated=Rēķins %s ir apstiprināts. diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang index c5d2461511c..7218c550c1c 100644 --- a/htdocs/langs/lv_LV/projects.lang +++ b/htdocs/langs/lv_LV/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projektu sadaļa ProjectStatus=Project status SharedProject=Visi PrivateProject=Projekta kontakti +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Visi projekti MyProjectsDesc=Šis skats ir tikai uz projektiem, jums ir kontakts (kāds ir tipa). ProjectsPublicDesc=Šo viedokli iepazīstina visus projektus jums ir atļauts lasīt. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,6 +26,7 @@ TasksDesc=Šo viedokli iepazīstina visus projektus un uzdevumus (jūsu lietotā AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Jauns projekts AddProject=Izveidot projektu DeleteAProject=Dzēst projektu @@ -30,13 +34,14 @@ DeleteATask=Izdzēst uzdevumu ConfirmDeleteAProject=Vai tiešām vēlaties dzēst šo projektu? ConfirmDeleteATask=Vai tiešām vēlaties dzēst šo uzdevumu? OpenedProjects=Atvērtie projekti -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedTasks=Atvērtie uzdevumi +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Rādīt projektu SetProject=Izvēlēties projektu NoProject=Neviens projekts nosaka, vai īpašumā NbOfProjects=Nb projektu +NbOfTasks=Nb of tasks TimeSpent=Laiks, kas pavadīts TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Pavadītais laiks veicot uzdevumus TaskTimeUser=Lietotājs TaskTimeNote=Piezīme TaskTimeDate=Datums -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Jauns pavadītais laiks +NewTimeSpent=Laiks, kas patērēts MyTimeSpent=Mans pavadīts laiks Tasks=Uzdevumi Task=Uzdevums @@ -59,6 +64,7 @@ TaskDescription=Uzdevuma apraksts NewTask=Jauns uzdevums AddTask=Izveidot uzdevumu AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivitāte Activities=Uzdevumi/aktivitātes MyActivities=Mani uzdevumi / aktivitātes @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Līgumu sarakstu kas saistīti ar projektu +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Saraksts iejaukšanās saistīts ar projektu ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekta kontakti ActionsOnProject=Pasākumi par projektu YouAreNotContactOfProject=Jūs neesat kontakts šīs privātam projektam +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Dzēst pavadīts laiks ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resursi ProjectsDedicatedToThisThirdParty=Projekti, kas veltīta šai trešajai personai NoTasks=Neviens uzdevumi šajā projektā LinkedToAnotherCompany=Saistīts ar citām trešajām personām -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Pavadīts laiks ir tukšs ThisWillAlsoRemoveTasks=Šī darbība arī izdzēst visus uzdevumus projekta (%s uzdevumi brīdī) un visu laiku ieguldījumiem pavadīts. IfNeedToUseOhterObjectKeepEmpty=Ja daži objekti (rēķinu, pasūtījumu, ...), kas pieder citai trešai personai, ir saistītas ar projektu, lai izveidotu, saglabāt šo tukšo, lai būtu projektam, multi trešajām personām. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index 95d5fd9f7de..ffc92b65536 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Шпански BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/mk_MK/compta.lang b/htdocs/langs/mk_MK/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/mk_MK/compta.lang +++ b/htdocs/langs/mk_MK/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/mk_MK/cron.lang b/htdocs/langs/mk_MK/cron.lang index ae15e3b505f..6cce323868e 100644 --- a/htdocs/langs/mk_MK/cron.lang +++ b/htdocs/langs/mk_MK/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs ? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now ? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/mk_MK/errors.lang b/htdocs/langs/mk_MK/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/mk_MK/errors.lang +++ b/htdocs/langs/mk_MK/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang index f2d5f7bdd22..49a6e4064e1 100644 --- a/htdocs/langs/mk_MK/main.lang +++ b/htdocs/langs/mk_MK/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/mk_MK/other.lang +++ b/htdocs/langs/mk_MK/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/mk_MK/projects.lang b/htdocs/langs/mk_MK/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/mk_MK/projects.lang +++ b/htdocs/langs/mk_MK/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/mn_MN/compta.lang b/htdocs/langs/mn_MN/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/mn_MN/compta.lang +++ b/htdocs/langs/mn_MN/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/mn_MN/cron.lang b/htdocs/langs/mn_MN/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/mn_MN/cron.lang +++ b/htdocs/langs/mn_MN/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/mn_MN/errors.lang b/htdocs/langs/mn_MN/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/mn_MN/errors.lang +++ b/htdocs/langs/mn_MN/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang index 8e74def35e0..b1718bc40eb 100644 --- a/htdocs/langs/mn_MN/main.lang +++ b/htdocs/langs/mn_MN/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/mn_MN/other.lang +++ b/htdocs/langs/mn_MN/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/mn_MN/projects.lang b/htdocs/langs/mn_MN/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/mn_MN/projects.lang +++ b/htdocs/langs/mn_MN/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/nl_BE/accountancy.lang b/htdocs/langs/nl_BE/accountancy.lang index 2c832e27ab6..778ac68b554 100644 --- a/htdocs/langs/nl_BE/accountancy.lang +++ b/htdocs/langs/nl_BE/accountancy.lang @@ -13,14 +13,14 @@ MenuAccountancy=Boekhouding Addanaccount=Voeg een boekhouder account toe AccountAccounting=Boekhouder account AccountAccountingShort=Rekening -Bookkeeping=Grootboek CAHTF=Totaal leveranciersaankoop voor BTW Processing=Verwerken -SelectedLines=Geselecteerde lijnen Lineofinvoice=Factuur lijn Docdate=Datum Docref=Artikelcode TotalVente=Totaal omzet voor belastingen +AccountingJournalType2=Verkoop +AccountingJournalType3=Inkoop Modelcsv=Model van een export OptionsDeactivatedForThisExportModel=Voor dit export model zijn de opties gedeactiveerd. Selectmodelcsv=Selecteer een model van export diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index d18bc42a159..1c513e99f4a 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -1,1665 +1,16 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Stichting -Version=Versie -VersionProgram=Programmaversie -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade -VersionExperimental=Experimenteel -VersionDevelopment=Ontwikkeling -VersionUnknown=Onbekend -VersionRecommanded=Aanbevolen -FileCheck=Files integrity checker -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum -MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Ontbrekende bestanden -FilesUpdated=Bijgewerkte bestanden -FilesModified=Modified Files -FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found -SessionId=Sessie-ID -SessionSaveHandler=Wijze van sessieopslag -SessionSavePath=Sessie opslaglocatie -PurgeSessions=Verwijderen van sessies -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=De waarde van 'save session handler' ingesteld in uw PHP instellingen staat het niet toe een lijst van alle lopende sessies weer te geven. -LockNewSessions=Blokkeer nieuwe sessies -ConfirmLockNewSessions=Weet u zeker dat u alle sessies wilt beperken tot uzelf? Alleen de gebruiker %s kan dan nog met Dolibarr verbinden. -UnlockNewSessions=Verwijder sessieblokkering -YourSession=Uw sessie -Sessions=Gebruikers-sessies -WebUserGroup=Webserver gebruiker / groep -NoSessionFound=Uw PHP installatie lijkt het niet toe te staan een lijst van actieve sessies weer te geven. De map waarin sessies worden opgeslagen (%s) zou afgeschermd kunnen zijn (bijvoorbeeld, door OS rechten of via de PHP instelling open_basedir). -DBStoringCharset=Databasekarakterset voor het opslaan van gegevens -DBSortingCharset=Databasekarakterset voor het sorteren van gegevens -WarningModuleNotActive=Module %s dient te worden ingeschakeld -WarningOnlyPermissionOfActivatedModules=Hier worden alleen de rechten van geactiveerde modules weergegeven. U kunt andere modules in het menu Home->Instellingen->Modules activeren. -DolibarrSetup=Installatie of upgrade van Dolibarr -InternalUser=Interne gebruiker -ExternalUser=Externe gebruiker -InternalUsers=Interne gebruikers -ExternalUsers=Externe gebruikers -GUISetup=Scherm -SetupArea=Instellingenoverzicht -FormToTestFileUploadForm=Formulier waarmee bestandsupload kan worden getest (afhankelijk van de gekozen opties) -IfModuleEnabled=Opmerking: Ja, is alleen effectief als module %s is geactiveerd -RemoveLock=Verwijder, als het bestaat, het bestand %s om gebruik te kunnen maken van de updatetool. -RestoreLock=Voorzie het bestand %s van 'alleen-bekijken' rechten om updaten te voorkomen. -SecuritySetup=Beveiligingsinstellingen -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Fout, deze module vereist PHP versie %s of hoger. -ErrorModuleRequireDolibarrVersion=Fout, deze module vereist Dolibarr versie %s of hoger. -ErrorDecimalLargerThanAreForbidden=Fout, een nauwkeurigheid van meer dan %s wordt niet ondersteund. -DictionarySetup=Woordenboek setup -Dictionary=Woordenboeken -ErrorReservedTypeSystemSystemAuto=De waarde 'system' en 'systemauto' als type zijn voorbehouden voor het systeem. Je kan 'user' als waarde gebruiken om je eigen gegevens-record toe te voegen. -ErrorCodeCantContainZero=Code mag geen 0 bevatten -DisableJavascript=JavaScript en Ajax functies uitzetten (Aanbevolen voor blinden of tekst browsers) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Aantal karakters om een zoekopdracht te initiëren: %s -NotAvailableWhenAjaxDisabled=Niet beschikbaar wanneer AJAX functionaliteit uitgeschakeld is -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=JavaScript uitgeschakeld -UsePreviewTabs=Gebruik voorbeelweergavetabbladen -ShowPreview=Toon voorbeelweergave -PreviewNotAvailable=Voorbeeldweergave niet beschikbaar -ThemeCurrentlyActive=Huidige thema -CurrentTimeZone=Huidige Tijdszone -MySQLTimeZone=TimeZone MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). -Space=Ruimte -Table=Tabel -Fields=Velden -Index=Index -Mask=Masker -NextValue=Volgende waarde -NextValueForInvoices=Volgende waarde (facturen) -NextValueForCreditNotes=Volgende waarde (creditnota's) -NextValueForDeposit=Volgende waarde (storting) -NextValueForReplacements=Volgende waarde (vervangingen) -MustBeLowerThanPHPLimit=Opmerking: uw PHP instellingen beperken de groote van bestanduploads naar %s %s, ongeacht wat de waarde van de instelling binnen Dolibarr is -NoMaxSizeByPHPLimit=Opmerking: Geen limiet ingesteld in uw PHP instellingen -MaxSizeForUploadedFiles=Maximale grootte voor geüploade bestanden (0 om uploaden niet toe te staan) -UseCaptchaCode=Gebruik een grafische code (CAPTCHA) op de aanmeldingspagina (SPAM preventie) -AntiVirusCommand= Het volledige pad naar het antiviruscommando -AntiVirusCommandExample= Voorbeeld voor ClamWin: c:\\Program Files (x86)\\ClamWin\\bin\\clamscan.exe
Voorbeeld voor ClamAv: /usr/bin/clamscan -AntiVirusParam= Aanvullende parameters op de opdrachtregel -AntiVirusParamExample= Voorbeeld voor ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" -ComptaSetup=Instellingen van de boekhoudkundige module -UserSetup=Gebruikersbeheerinstellingen -MultiCurrencySetup=Multi-currency setup -MenuLimits=Limieten en nauwkeurigheid -MenuIdParent=ID van het bovenliggende menu -DetailMenuIdParent=ID van het bovenliggend menu (0 voor een hoogste menu) -DetailPosition=Sorteren aantal te definiëren menupositie -AllMenus=Alle -NotConfigured=Niet geconfigureerd -Active=Actief -SetupShort=Instellingen -OtherOptions=Overige opties -OtherSetup=Overige instellingen -CurrentValueSeparatorDecimal=Decimaal scheidingsteken -CurrentValueSeparatorThousand=Duizend scheidingsteken -Destination=Bestemming -IdModule=Module ID -IdPermissions=Permissions ID -Modules=Modules -LanguageBrowserParameter=Instelling %s -LocalisationDolibarrParameters=Localisatie-instellingen -ClientTZ=Tijdzone van de klant (gebruiker) -ClientHour=Tijd bij de klant (gebruiker) -OSTZ=Server OS Time Zone -PHPTZ=Tijdzone binnen de PHP server -DaylingSavingTime=Zomertijd (gebruiker) -CurrentHour=Huidige tijd op server -CurrentSessionTimeOut=Huidige sessietimeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets -PositionByDefault=Standaardvolgorde -Position=Positie -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Gebruikersmenu -LangFile=.lang bestand -System=Systeem -SystemInfo=Systeeminformatie -SystemToolsArea=Systeemwerksetoverzicht -SystemToolsAreaDesc=Dit gedeelte biedt administratieve functionaliteit. Gebruik het menu om de functionaliteit in te stellen die u nodig heeft. -Purge=Leegmaken -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) -PurgeDeleteTemporaryFiles=Delete all temporary files (no risk of losing data) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Verwijder alle bestanden in de map %s.. Tijdelijke bestanden, maar ook databasebackupbestanden, bijlagen van elementen (derde partijen, facturen, etc) en bestanden geüpload naar de ECM-module zullen verwijderd worden. -PurgeRunNow=Nu opschonen -PurgeNothingToDelete=No directory or files to delete. -PurgeNDirectoriesDeleted=%s bestanden of mappen verwijderd. -PurgeAuditEvents=Verwijder alle gebeurtenisen -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Genereer backup -Backup=Backup -Restore=Herstellen -RunCommandSummary=Backup geïnitieerd met het volgende commando -BackupResult=Resultaat backup -BackupFileSuccessfullyCreated=Backupbestand succesvol gegenereerd -YouCanDownloadBackupFile=De gegenereerde bestanden kunnen nu gedownload worden -NoBackupFileAvailable=Geen backupbestanden beschikbaar. -ExportMethod=Exporteer methode -ImportMethod=Importeer methode -ToBuildBackupFileClickHere=Om een backupbestand te maken, klik hier. -ImportMySqlDesc=Voor de invoer van een backupbestand, voert u het mysql-commando vanaf de opdrachtregel uit: -ImportPostgreSqlDesc=Om een backupbestand te importeren, dient u het 'pg_restore' commando vanaf de opdrachtregel uit te voeren: -ImportMySqlCommand=%s %s < mijnbackupbestand.sql -ImportPostgreSqlCommand=%s %s mijnbackupbestand.sql -FileNameToGenerate=Te creëren bestandsnaam -Compression=Compressie -CommandsToDisableForeignKeysForImport=Commando om 'foreign keys' bij importeren uit te schakelen -CommandsToDisableForeignKeysForImportWarning=Verplicht als je je sql neerslag later wil gebruiken -ExportCompatibility=Uitwisselbaarheid (compatibiliteit) van het gegenereerde exportbestand -MySqlExportParameters=MySQL exporteer instellingen -PostgreSqlExportParameters= PostgreSQL uitvoer parameters -UseTransactionnalMode=Gebruik transactionele modus -FullPathToMysqldumpCommand=Het volledige pad naar het 'MySQL dump' commando -FullPathToPostgreSQLdumpCommand=Volledige pad naar het 'pg_dump' commando -ExportOptions=Exporteeropties -AddDropDatabase=Voeg 'DROP DATABASE' commando toe -AddDropTable=Voeg 'DROP TABLE' commando toe -ExportStructure=Struktuur -NameColumn=Kollomennaam -ExtendedInsert=Uitgebreide (extended) INSERT -NoLockBeforeInsert=Geen lock-opdrachten rond INSERT -DelayedInsert=Vertraagde (delayed) INSERT -EncodeBinariesInHexa=Codeer binaire data in hexadecimalen -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Automatisch detecteren (taal van de browser) -FeatureDisabledInDemo=Functionaliteit uitgeschakeld in de demonstratie -FeatureAvailableOnlyOnStable=Feature only available on official stable versions -Rights=Rechten -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Alleen elementen van ingeschakelde modules worden getoond. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, de officiële markt voor externe Dolibarr ERP / CRM modules -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... -URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated -ActivateOn=Activeren op -ActiveOn=Geactiveerd op -SourceFile=Bronbestand -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Alleen beschikbaar als JavaScript en AJAX niet zijn uitgeschakeld -Required=Verplicht -UsedOnlyWithTypeOption=Alleen gebruikt door sommige agenda opties -Security=Beveiliging -Passwords=Wachtwoorden -DoNotStoreClearPassword=Geen onversleutelde wachtwoorden opslaan in de database, maar alleen versleutelde (Activering aanbevolen) -MainDbPasswordFileConfEncrypted=Databasewachtwoord versleuteld opslaan in conf.php (Activering aanbevolen) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Bescherming van gecreëerde PDF files. (Activering NIET aanbevolen, omdat dit de aanmaak van meerdere bestanden onmogelijk maakt) -ProtectAndEncryptPdfFilesDesc=Bescherming van PDF files, deze kunnen gelezen en afgedrukt worden met behulp van een PDF-lezer. Echter, het bewerken en kopiëren is niet meer mogelijk. Let op dat door het gebruik van deze functionaliteit, de bouw van een globale gecumuleerde pdf niet werkt (zoals bij onbetaalde facturen). -Feature=Functionaliteit -DolibarrLicense=Licentie -Developpers=Ontwikkelaars / mensen die bijgedragen hebben -OfficialWebSite=Officiële internationale Dolibarr website -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Documentatie op de Wiki pagina's van Dolibarr -OfficialDemo=Online demonstratie van Dolibarr -OfficialMarketPlace=Officiële markt voor externe modules / addons -OfficialWebHostingService=Verwezen web hosting diensten (Cloud hosting) -ReferencedPreferredPartners=Preferred Partners -OtherResources=Andere bronnen -ForDocumentationSeeWiki=Documentatie voor gebruikers of ontwikkelaars kunt u inzien door
te kijken op de Dolibarr Wiki-pagina's:
%s -ForAnswersSeeForum=Voor alle andere vragen / hulp, kunt u gebruik maken van het Dolibarr forum:
%s -HelpCenterDesc1=Dit scherm kan u helpen om ondersteuning voor Dolibarr te krijgen. -HelpCenterDesc2=Kies de ondersteuning die overeenkomt met uw behoeften door te klikken op de betreffende link (Sommige van deze diensten zijn alleen beschikbaar in het Engels). -CurrentMenuHandler=Huidige menuverwerker -MeasuringUnit=Maateenheid -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Notice period -NewByMonth=New by month -Emails=E-mails -EMailsSetup=E-mailinstellingen -EMailsDesc=Met behulp van deze pagina kunt u PHP instellingen om e-mails te verzenden overschrijven. Op Unix / Linux besturingssystemen zijn deze In de meeste gevallen goed ingesteld en zijn deze instellingen nutteloos. -MAIN_MAIL_SMTP_PORT=SMTP / SMTPS-poort (standaard in php.ini: %s) -MAIN_MAIL_SMTP_SERVER=SMTP / SMTPS Host (standaard in php.ini: %s) -MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=SMTP / SMTPS-poort (niet gedefinieerd in PHP op Unix-achtige systemen) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=SMTP / SMTPS-host (Niet gedefinieerd in PHP op Unix-achtige systemen) -MAIN_MAIL_EMAIL_FROM=E-mailafzender voor automatische e-mails (Standaard in php.ini: %s) -MAIN_MAIL_ERRORS_TO=Afzender e-mail gebruikt voor error rendementen e-mails verzonden -MAIN_MAIL_AUTOCOPY_TO= Stuur systematisch een verborgen zogenoemde 'Carbon-Copy' van alle verzonden e-mails naar -MAIN_DISABLE_ALL_MAILS=Schakel alle e-mailverzendingen uit (voor testdoeleinden of demonstraties) -MAIN_MAIL_SENDMODE=Te gebruiken methode om e-mails te verzenden -MAIN_MAIL_SMTPS_ID=SMTP-gebruikersnaam indien verificatie vereist -MAIN_MAIL_SMTPS_PW=SMTP-wachtwoord indien verificatie vereist -MAIN_MAIL_EMAIL_TLS= Gebruik TLS (SSL) encryptie -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt -MAIN_DISABLE_ALL_SMS=Schakel alle SMS verzendingen (voor test doeleinden of demo) -MAIN_SMS_SENDMODE=Methode te gebruiken om SMS te verzenden -MAIN_MAIL_SMS_FROM=Standaard afzender telefoonnummer voor Sms versturen -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email -FeatureNotAvailableOnLinux=Functionaliteit niet beschikbaar op Unix-achtige systemen. Test uw lokale 'sendmail' programma. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ +VersionLastInstall=Versie van eerste installatie +VersionLastUpgrade=Laatste versie upgrade +MaxNbOfLinesForBoxes=Max aantal lijnen voor widgets +PurgeDeleteTemporaryFiles=Verwijder alle tijdelijke bestanden (geen risico op verlies van gegevens) +PurgeNothingToDelete=Geen map of bestanden om te verwijderen. +IgnoreDuplicateRecords=Negeer fouten van dubbele tabelregels (INSERT negeren) +ModulesMarketPlaces=Meer modules... +BoxesAvailable=Beschikbare widgets +BoxesActivated=Geactiveerde widgets SubmitTranslationENUS=Als de vertaling voor deze taal niet volledig is of een fout bevat, dan kunt u dit corrigeren door het bewuste taalbestand in de map Langs/%s te wijzigen en de wijzigingen op het Dolibarr forum te delen met anderen: www.dolibarr.org. -ModuleSetup=Module-instellingen -ModulesSetup=Instellingen van modules -ModuleFamilyBase=Systeem -ModuleFamilyCrm=Customer Relation Management (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) -ModuleFamilyProducts=Products Management (PM) ModuleFamilyHr=Personeelszaken (HR) -ModuleFamilyProjects=Projecten / Samenwerkingen -ModuleFamilyOther=Ander -ModuleFamilyTechnic=Hulpmiddelen voor multi-modules -ModuleFamilyExperimental=Experimentele modules -ModuleFamilyFinancial=Financiële Modules (Boekhouding / Bedrijfsfinanciën) -ModuleFamilyECM=Electronic Content Management (ECM) -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems -MenuHandlers=Menuverwerkers -MenuAdmin=Menu wijzigen -DoNotUseInProduction=Niet in productie gebruiken -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Stap %s -FindPackageFromWebSite=Vind een pakket die u de functionaliteit geeft die u wilt (bijvoorbeeld op de officiële website van %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Huidige versie van Dolibarr -CallUpdatePage=Go to the page that updates the database structure and data: %s. -LastStableVersion=Latest stable version -LastActivationDate=Latest activation date -UpdateServerOffline=Updateserver offline -GenericMaskCodes=U kunt elk gewenst maskernummer invoeren. In dit masker, kunnen de volgende tags worden gebruikt:
{000000} correspondeert met een nummer welke vermeerderd zal worden op elke %s. Voer zoveel nullen in als de gewenste lengte van de teller. De teller wordt aangevuld met nullen vanaf links zodat er zoveel nullen zijn als in het masker.
{000000+000} hetzelfde als voorgaand maar een offset corresponderend met het nummer aan de rechterkant van het + teken is toegevoegd startend op de eerste %s.
{000000@x} hetzelfde als voorgaande maar de teller wordt gereset naar nul, wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie is gebruikt en x is 2 of hoger, dan is de volgorde {yy}{mm} of {yyyy}{mm} ook vereist.
{dd} dag (01 t/m 31).
{mm} maand (01 t/m 12).
{yy}, {yyyy} of {y} jaat over 2, 4 of 1 nummer(s).
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Alle andere karakters in het masker zullen intact blijven.
Spaties zijn niet toegestaan.
-GenericMaskCodes4a=Voorbeeld van de 99e %s van de Klant 'HetBedrijf' gedaan op 2007-01-31:
-GenericMaskCodes4b=Voorbeeld van een Klant gecreëerd op 2007-03-01:
-GenericMaskCodes4c=Voorbeeld op product gemaakt op 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} geeft ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX geeft 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Geeft een aanpasbaar nummer volgens een gedefinieerd masker. -ServerAvailableOnIPOrPort=Server is beschikbaar op het IP-adres %s met poort %s -ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het IP-adres %s met poort %s -DoTestServerAvailability=Test server verbinding -DoTestSend=Test verzenden -DoTestSendHTML=Test het verzenden van HTML -ErrorCantUseRazIfNoYearInMask=Fout, kan optie @ niet gebruiken om teller te resetten als sequence {yy} or {yyyy} niet in het masker. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Fout, kan optie @ niet gebruiken wanneer de volgorde {jj}{mm} of {jjjj}{mm} niet is opgenomen in het masker. -UMask=Umask parameter voor nieuwe bestanden op een Unix- / Linux- / BSD-bestandssysteem. -UMaskExplanation=Deze parameter laat u de rechten bepalen welke standaard zijn ingesteld voor de bestanden aangemaakt door Dolibarr op de server (tijdens het uploaden, bijvoorbeeld).
Het moet de octale waarde zijn (bijvoorbeeld, 0666 betekent lezen en schrijven voor iedereen).
Deze parameter wordt NIET op een windows-server gebruikt -SeeWikiForAllTeam=Zie de Wiki-pagina voor details van alle personen die bijgedragen hebben en hun organisaties -UseACacheDelay= Ingestelde vertraging voor de cacheexport in secondes (0 of leeg voor geen cache) -DisableLinkToHelpCenter=Verberg de link "ondersteuning of hulp nodig" op de inlogpagina -DisableLinkToHelp=Hide link to online help "%s" -AddCRIfTooLong=Er zijn geen automatische regeleinden, dus als uw tekst in de documenten te lang is, moet u zelf regeleinden in de teksteditor invoeren. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Minimale lengte -LanguageFilesCachedIntoShmopSharedMemory=Bestanden .lang in het gedeelde geheugen -ExamplesWithCurrentSetup=Voorbeelden met de huidige actieve configuratie -ListOfDirectories=Lijst van OpenDocument sjablonenmappen -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Aantal ODT/ODS templates gevonden in deze mappen -ExampleOfDirectoriesForModelGen=Voorbeelden van de syntaxis:
c:\\mijndir
/home/mijndir
DOL_DATA_ROOT/ECM/ecmdir -FollowingSubstitutionKeysCanBeUsed=Door het plaatsen van de volgende velden in het sjabloon krijgt u een vervanging met de aangepaste waarde bij het genereren van het document: -FullListOnOnlineDocumentation=De complete lijst met beschikbare velden is te vinden in de gebruikersdocumentatie op de Wiki van Dolibar: http://wiki.dolibarr.org. -FirstnameNamePosition=Positie van voornaam / achternaam -DescWeather=De volgende afbeeldingen zullen getoond worden op het dashboard wanneer het aantal late acties de volgende waarden heeft bereikt: -KeyForWebServicesAccess=Sleutel om webdiensten te gebruiken (waarde "dolibarrkey" in webdiensten) -TestSubmitForm=Invoer testformulier -ThisForceAlsoTheme=Met behulp van dit menu manager zal ook gebruik maken van een eigen thema wat er keuze van de gebruiker. Ook dit menu manager gespecialiseerd smartphones niet werkt op alle smartphone. Gebruik een ander menu manager als u problemen ondervindt op het jouwe. -ThemeDir=Skins directory -ConnectionTimeout=Connexion time-out -ResponseTimeout=Time-out antwoord -SmsTestMessage=Testbericht van __PHONEFROM__ naar __PHONETO__ -ModuleMustBeEnabledFirst=Module %s must be enabled first if you need this feature. -SecurityToken=Sleutel tot URL beveiligen -NoSmsEngine=Geen SMS afzender manager beschikbaar. SMS afzender manager zijn niet geïnstalleerd met de standaard distributie (omdat ze afhankelijk is van een externe leverancier), maar u kunt vinden op een aantal http://www.dolistore.com -PDF=PDF -PDFDesc=U kunt elke globale opties met betrekking tot de PDF-generatie -PDFAddressForging=Regels aan te pakken dozen te smeden -HideAnyVATInformationOnPDF=Verberg alle informatie met betrekking tot de BTW op gegenereerde PDF -HideDescOnPDF=Verberg productbeschrijving op gemaakte PDF -HideRefOnPDF=Verberg productreferentie op gemaakte PDF -HideDetailsOnPDF=Hide product lines details on generated PDF -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position -Library=Bibliotheek -UrlGenerationParameters=Parameters om URL beveiligen -SecurityTokenIsUnique=Gebruik een unieke securekey parameter voor elke URL -EnterRefToBuildUrl=Geef referentie voor object %s -GetSecuredUrl=Get berekend URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons -OldVATRates=Oud BTW tarief -NewVATRates=Nieuw BTW tarief -PriceBaseTypeToChange=Wijzig op prijzen waarop een base reference waarde gedefiniëerd is -MassConvert=Start algemene omzetting -String=String -TextLong=Lange tekst -Int=Integer -Float=Float -DateAndTime=Datum en uur -Unique=Unique -Boolean=Boolean (Checkbox) -ExtrafieldPhone = Telefoon -ExtrafieldPrice = Prijs -ExtrafieldMail = Email -ExtrafieldUrl = Url -ExtrafieldSelect = Keuze lijst -ExtrafieldSelectList = Kies uit tabel -ExtrafieldSeparator=Scheidingsteken +HideDetailsOnPDF=Verberg product-detaillijnen op gemaakte PDF ExtrafieldPassword=Paswoord -ExtrafieldCheckBox=Aanvink-vak -ExtrafieldRadio=Radioknop -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link naar een object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Een parameterlijst heeft de waarden sleutel,waarde

bijvoorbeeld:
1,waarde1
2,waarde2
3,waarde3
...

-ExtrafieldParamHelpradio=Lijst van parameters moet bestaan uit sleutel,waarde

bv:
1,waarde
2,waarde2
3,waarde3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation -WarningUsingFPDF=Opgelet: je
conf.php bevat de instelling dolibarr_pdf_force_fpdf=1. Dat betekent dat je de FPDF bibliotheek gebruikt om PDF bestanden te maken. Deze bibliotheek is oud, en ondersteunt een aantal mogelijkheden niet (Unicode, transparantie in beelden, cyrillische, arabische en aziatische talen, ...), dus er kunnen fouten optreden bij het maken van PDF's.
Om dat op te lossen, en om volledige ondersteuning van PDF-maken te hebben, download aub TCPDF library, en dan verwijder of maak commentaar van de lijn $dolibarr_pdf_force_fpdf=1, en voeg in plaats daarvan $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' toe. -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) -SMS=SMS -LinkToTestClickToDial=Geef een telefoonnummer om de ClickToDial link te testen voor gebruiker %s -RefreshPhoneLink=Herladen link -LinkToTest=Klikbare link gegenereerd voor gebruiker% s (klik telefoonnummer om te testen) -KeepEmptyToUseDefault=Laat leeg om standaardwaarde te gebruiken -DefaultLink=Standaard link -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Waarschuwing, deze waarde kan worden overschreven door de gebruiker specifieke setup (elke gebruiker kan zijn eigen ClickToDial url ingestellen) -ExternalModule=Externe module - geïnstalleerd in map %s -BarcodeInitForThirdparties=Mass barcode initialisatie voor relaties -BarcodeInitForProductsOrServices=Mass barcode init of reset voor producten of diensten -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init waarde voor de volgende %s lege records -EraseAllCurrentBarCode=Wis alle huidige barcode waarden -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=Alle barcode waarden zijn verwijderd -NoBarcodeNumberingTemplateDefined=Geen barcode nummering sjabloon ingeschakeld in barcode module setup. -EnableFileCache=Enable file cache -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address -DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names -EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Geef een boekhoudkundige code terug opgebouwd uit "401", gevolgd door de de leverancierscode(Wanneer het een leverancier betreft) of een afnemerscode van de Klant (Wanneer het een afnemer betreft). -ModuleCompanyCodePanicum=Geef een lege boekhoudkundige code terug. -ModuleCompanyCodeDigitaria=Boekhoudkundige-code is afhankelijk van derden code. De code bestaat uit het teken "C" in de eerste positie, gevolgd door de eerste 5 tekens van de derden code. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules -Module0Name=Gebruikers & groepen -Module0Desc=Users / Employees and Groups management -Module1Name=Beheer derde partijen -Module1Desc=Beheer van derde partijen (klanten, leveranciers en contactpersonen). Ook kunt u hier sjabloondocumenten uploaden. -Module2Name=Commercieel -Module2Desc=Commercieel beheer -Module10Name=Boekhouding -Module10Desc=Eenvoudig boekhoudkundig beheer (Verzending van facturen en betalingen) -Module20Name=Zakelijke voorstellen / Offertes -Module20Desc=Beheer van offertes -Module22Name=EMailings -Module22Desc=Administratie en verzending van bulk-e-mails -Module23Name=Energie -Module23Desc=Monitoring van het verbruik van energie -Module25Name=Bestellingen klanten -Module25Desc=Beheer van de bestellingen door klanten -Module30Name=Facturen -Module30Desc=Factuur- en creditnotabeheer voor klanten. Factuurbeheer voor leveranciers -Module40Name=Leveranciers -Module40Desc=Leveranciersbeheer (inkoopopdrachten en -facturen) -Module42Name=Syslog -Module42Desc=logfaciliteiten met behulp van het 'syslog'-systeem -Module49Name=Editors -Module49Desc=Editorbeheer -Module50Name=Producten -Module50Desc=Productenbeheer -Module51Name=Bulkmailings -Module51Desc=Bulkmailingbeheer -Module52Name=Productenvoorraad -Module52Desc=Productenvoorraadbeheer -Module53Name=Diensten -Module53Desc=Dienstenbeheer -Module54Name=Contracten/Abonnementen -Module54Desc=Contractmanagement (diensten of herhalende abonnementen) -Module55Name=Streepjescodes -Module55Desc=Streepjescodesbeheer -Module56Name=Telefonie -Module56Desc=Telefoniebeheer -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. -Module58Name=ClickToDial -Module58Desc=Integratie van een 'ClickToDial' systeem (Asterisk, etc) -Module59Name=Bookmark4u -Module59Desc=Voeg functionaliteit toe om een 'Bookmark4u'-account te maken vanuit een Dolibarr-account -Module70Name=Interventies -Module70Desc=Interventiesbeheer -Module75Name=Reisnotities en -kosten -Module75Desc=Beheer van reisnotities en -kosten -Module80Name=Verzendingen -Module80Desc=Beheer afnemersverzending en -ontvangst -Module85Name=Bank en Contant -Module85Desc=Beheer van bank- en / of kasrekeningen -Module100Name=Externe site -Module100Desc=Voeg een externe website in het Dolibarr menu toe en bekijk deze in een frame -Module105Name=Mailman en SPIP -Module105Desc=Mailman of SPIP-interface voor leden-module -Module200Name=LDAP -Module200Desc=LDAP mappen synchronisatie -Module210Name=PostNuke -Module210Desc='PostNuke'-integratie -Module240Name=Uitvoer gegevens (exporteren) -Module240Desc=Tool to export Dolibarr data (with assistants) -Module250Name=Invoer gegevens (importeren) -Module250Desc=Tool to import data in Dolibarr (with assistants) -Module310Name=Leden -Module310Desc=Ledenbeheer (van een vereniging) -Module320Name=RSS-feeds -Module320Desc=Voeg een RSS feed toe in de informatieschermen van Dolibarr -Module330Name=Weblinks (Favouriete internetpagina's in het menu weergeven) -Module330Desc=Internetfavorietenbeheer -Module400Name=Projecten/Kansen/Leads -Module400Desc=Beheer van projecten, kansen of leads. U kunt elk willekeurig element (factuur, order, offerte, interventie, ...) toewijzen aan een project en een transversale weergave krijgen van de projectweergave. -Module410Name=Webkalender -Module410Desc=Integratie van een webkalender -Module500Name=Special expenses -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments -Module520Name=Lening -Module520Desc=Het beheer van de leningen -Module600Name=Kennisgevingen -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Giften -Module700Desc=Donatiebeheer -Module770Name=Expense reports -Module770Desc=Management en vordering onkostennota's (vervoer, maaltijden, ...) -Module1120Name=Leverancier commerciële voorstel -Module1120Desc=Leverancier verzoek commerciële voorstel en prijzen -Module1200Name=Mantis -Module1200Desc=Mantis integratie -Module1400Name=Boekhouden -Module1400Desc=Boekhoudkundig beheer van deskundigen (dubbel partijen) -Module1520Name=Documenten genereren -Module1520Desc=Massa mail document generen -Module1780Name=Labels/Categorien -Module1780Desc=Label/categorie maken (producten, klanten, leveranciers, contacten of leden) -Module2000Name=Fckeditor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Dynamische prijzen -Module2200Desc=Het gebruik van wiskundige uitdrukkingen voor prijzen mogelijk te maken -Module2300Name=Cron -Module2300Desc=Beheer taakplanning -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Electronic Content Management -Module2500Desc=Opslaan en delen van documenten -Module2600Name=API/Web services (SOAP server) -Module2600Desc=Enable the Dolibarr SOAP server providing API services -Module2610Name=API/Web services (REST server) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Schakel de Dolibarr webservices client aan (Kan worden gebruikt om gegevens en / of aanvragen duwen naar externe servers. Leverancier bestellingen alleen ondersteund voor het moment) -Module2700Name=Gravatar -Module2700Desc=Gebruik de online dienst 'Gravatar' (www.gravatar.com) voor het posten van afbeeldingen van gebruikers / leden (gevonden door hun e-mails). Internet toegang vereist. -Module2800Desc=FTP Client -Module2900Name=GeoIPMaxmind -Module2900Desc=Capaciteitconversie GeoIP Maxmind -Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards -Module4000Name=HRM -Module4000Desc=Human resources management -Module5000Name=Multi-bedrijf -Module5000Desc=Hiermee kunt meerdere bedrijven beheren in Dolibarr -Module6000Name=Workflow -Module6000Desc=Workflow beheer -Module10000Name=Websites -Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Beheer van verlofverzoeken -Module20000Desc=Bevestig en volg verlofverzoeken van medewerkers -Module39000Name=Product lot -Module39000Desc=Lot of serienummer, vervaldatum en de uiterste verkoopdatum beheer van producten -Module50000Name=Paybox -Module50000Desc=Module om een ​​online betaling pagina te bieden door creditcard met Paybox -Module50100Name=Verkooppunt -Module50100Desc=Point of sales module (POS). -Module50200Name=Paypal -Module50200Desc=Module om een ​​online betaling pagina te bieden per credit card met Paypal -Module50400Name=Boekhouding -Module50400Desc=Boekhoudkundig beheer -Module54000Name=PrintIPP -Module54000Desc=Direct print (zonder het openen van de documenten) met behulp van Cups IPP-interface (Printer moet zichtbaar zijn vanaf de server zijn, en CUPS moet geinstalleerd zijn op de server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) -Module59000Name=Marges -Module59000Desc=Module om de marges te beheren -Module60000Name=Commissies -Module60000Desc=Module om commissies te beheren -Module63000Name=Resources -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Bekijk afnemersfacturen -Permission12=Creëer / wijzigen afnemersfacturen -Permission13=Invalideer afnemersfacturen -Permission14=Valideer afnemersfacturen -Permission15=Afnemersfacturen verzenden via e-mail -Permission16=Creëer betalingen voor afnemersfacturen -Permission19=Verwijder afnemersfacturen -Permission21=Bekijk offertes -Permission22=Creëer / wijzig offertes -Permission24=Valideer offertes -Permission25=Stuur offertes -Permission26=Sluit offertes -Permission27=Verwijder offertes -Permission28=Exporteer offertes -Permission31=Bekijk producten / diensten -Permission32=Creëer / wijzig producten / diensten -Permission34=Verwijderen producten / diensten -Permission36=Exporteer producten / diensten -Permission38=Export producten -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Verwijder projecten (Gedeelde projecten en projecten waarvoor ik de contactpersoon ben) -Permission45=Export projects -Permission61=Bekijk interventies -Permission62=Creëer / wijzig interventies -Permission64=Verwijder interventies -Permission67=Exporteer interventies -Permission71=Bekijk leden -Permission72=Creëer / wijzigen leden -Permission74=Verwijder leden -Permission75=Instelling lidsoorten en -attributen -Permission76=Export data -Permission78=Bekijk abonnementen -Permission79=Creëer / wijzigen abonnementen -Permission81=Bekijk afnemersopdrachten -Permission82=Creëer / wijzig afnemersopdrachten -Permission84=Valideer afnemersopdrachten -Permission86=Verzend afnemersopdrachten -Permission87=Sluit afnemersopdrachten -Permission88=Annuleer afnemersopdrachten -Permission89=Verwijder afnemersopdrachten -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Bekijk de verslagen -Permission101=Bekijk verzendingen -Permission102=Creëer / wijzig verzendingen -Permission104=Valideer verzendingen -Permission106=Export zendingen -Permission109=Verwijder verzendingen -Permission111=Bekijk de financiële rekeningen -Permission112=Creëer / wijzig / verwijder en vergelijk transacties -Permission113=Stel financiële rekeningen in (creëer, beheer, categoriseer) -Permission114=Afstemming overboekingen -Permission115=Exporteer transacties en rekeningafschriften -Permission116=Overschrijvingen tussen rekeningen -Permission117=Beheer cheques verzending -Permission121=Bekijk derde partijen gelinkt aan de gebruiker -Permission122=Creëer / wijzig derden gelinkt aan gebruiker -Permission125=Verwijderen van derden gelinkt aan gebruiker -Permission126=Exporteer derden -Permission141=Read all projects and tasks (also private projects i am not contact for) -Permission142=Create/modify all projects and tasks (also private projects i am not contact for) -Permission144=Delete all projects and tasks (also private projects i am not contact for) -Permission146=Bekijk leveranciers -Permission147=Bekijk statistieken -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Lees contracten/abonnementen -Permission162=Creëren/aanpassen contracten/abonnementen -Permission163=Een dienst/abonnement van een contract activeren -Permission164=Een dienst/abonnement van een contract uitschakelen -Permission165=Verwijderen contracten/abonnementen -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) -Permission172=Creëren / bewerken reis- en onkosten -Permission173=Verwijder reis- en onkosten -Permission174=Lees alle reis en onkosten -Permission178=Exporteer reis- en onkosten -Permission180=Bekijk leveranciers -Permission181=Bekijk leverancier opdrachten -Permission182=Creëren / wijzigen leverancier opdrachten -Permission183=Valideer leveranciersopdrachten -Permission184=Goedkeuren leveranciersopdrachten -Permission185=Bestel of annuleer leverancieropdrachten -Permission186=Ontvang leveranciersopdrachten -Permission187=Sluiten leverancieropdrachten -Permission188=Annuleren leverancieropdrachten -Permission192=Regels aanmaken -Permission193=Regels beëindigen -Permission194=Consult marge regels -Permission202=Creëer DSL-aansluitingen -Permission203=links inzien -Permission204=Creëer links -Permission205=Beheer links -Permission206=Bladeren links -Permission211=Consult telefonie -Permission212=Orderregels -Permission213=Schakel lijn -Permission214=Configureer telefonie -Permission215=Configureer leveranciers -Permission221=Bekijk EMailings -Permission222=Creëren / wijzigen e-mailings (onderwerp, ontvangers etc) -Permission223=Valideer EMailings (laat sturen) -Permission229=Verwijderen EMailings -Permission237=Bekijk ontvangers en info -Permission238=Handmatig verzenden van mailings -Permission239=Verwijder mailings na validatie of verzonden -Permission241=Bekijk categorieën -Permission242=Creëren / wijzigen categorieën -Permission243=Verwijderen categorieën -Permission244=Zie de inhoud van de verborgen categorieën -Permission251=Bekijk de andere gebruikers en groepen -PermissionAdvanced251=Lees andere gebruikers -Permission252=Creëren / wijzigen van andere gebruikers, groepen en rechten -Permission253=Wijzigen van andere gebruikers wachtwoord -PermissionAdvanced253=Creëer / wijzig de rechten van internet / externe gebruikers -Permission254=Verwijderen of uitschakelen van andere gebruikers -Permission255=Creëren / wijzigen eigen gebruikersgegevens -Permission256=Wijzigen eigen wachtwoord -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Lees CA -Permission272=Facturen inzien -Permission273=Facturen uitgeven -Permission281=Bekijk contactpersonen -Permission282=Creëren / wijzigen contactpersonen -Permission283=Contactpersonen verwijderen -Permission286=Contactpersonen Exporteren -Permission291=Tarieven inzien -Permission292=Stel rechten voor tarieven in -Permission293=Wijzig afnemerstarieven -Permission300=Bekijk streepjescodes -Permission301=Creëren / wijzigen streepjescodes -Permission302=Verwijderen streepjescodes -Permission311=Diensten inzien -Permission312=Dienst/abonnement aan het contract toevoegen -Permission331=Bekijk weblinks -Permission332=Creëren / wijzigen weblinks -Permission333=Verwijderen weblinks -Permission341=zijn eigen rechten lezen -Permission342=zijn eigen gebruikersinformatie creëren / wijzigen -Permission343=Eigen wachtwoord wijzigen -Permission344=De eigen rechten aanpassen -Permission351=Groepen inzien -Permission352=Groepsrechten inzien -Permission353=Creëren / bewerken van groepen -Permission354=Verwijderen of uitschakelen van groepen -Permission358=Gebruikers exporteren -Permission401=Bekijk kortingen -Permission402=Creëren / wijzigen kortingen -Permission403=Kortingen valideren -Permission404=Kortingen verwijderen -Permission510=Lees Salarissen -Permission512=Maak / wijzig salarissen -Permission514=Verwijder salarissen -Permission517=Export salarissen -Permission520=Lees Leningen -Permission522=Creëer/wijzigen leningen -Permission524=Verwijderen leningen -Permission525=Toegang lening calculator -Permission527=Export leningen -Permission531=Diensten inzien -Permission532=Creëren / wijzigen van diensten -Permission534=Diensten verwijderen -Permission536=Inzien / beheren van verborgen diensten -Permission538=Diensten exporteren -Permission701=Bekijk donaties -Permission702=Creëren / wijzigen donaties -Permission703=Verwijderen donaties -Permission771=Read expense reports (yours and your subordinates) -Permission772=Creëer / wijzigen onkostennota's -Permission773=Verwijderen onkostennota's -Permission774=Lees alle onkostennota's (ook voor de gebruiker niet ondergeschikten) -Permission775=Goedkeuren onkostennota's -Permission776=Betalen onkostennota's -Permission779=Export onkostennota's -Permission1001=Bekijk voorraden -Permission1002=Toevoegen/wijzigen van een magazijn -Permission1003=Verwijder magazijnen -Permission1004=Bekijk voorraadmutaties -Permission1005=Creëren / wijzigen voorraadmutaties -Permission1101=Bekijk levering opdrachten -Permission1102=Creëren / wijzigen opdrachtenlevering -Permission1104=Valideer opdrachtenlevering -Permission1109=Verwijderen opdrachtenlevering -Permission1181=Bekijk leveranciers -Permission1182=Bekijk leveranciersopdrachten -Permission1183=Creëer leveranciersopdrachten -Permission1184=Valideer leveranciersopdrachten -Permission1185=Goedkeuren leveranciersopdrachten -Permission1186=Bestel leveranciersopdrachten -Permission1187=Bevestigt de ontvangst van de leveranciersopdrachten -Permission1188=Sluiten leverancier opdrachten -Permission1190=Goedkeuren (tweede goedkeuring) leverancier bestellingen -Permission1201=Geef het resultaat van een uitvoervergunning -Permission1202=Creëren/wijzigen een uitvoervergunning -Permission1231=Bekijk leveranciersfacturen -Permission1232=Creëer leveranciersfacturen -Permission1233=Valideer leveranciersfacturen -Permission1234=Verwijderen leveranciersfacturen -Permission1235=Leveranciersfacturen per e-mail verzenden -Permission1236=Exporteer leveranciersfacturen, attributen en betalingen -Permission1237=Exporteer Leverancier opdrachten en hun details -Permission1251=Voer massale invoer van externe gegevens in de database uit (data load) -Permission1321=Exporteer afnemersfacturen, attributen en betalingen -Permission1322=Reopen a paid bill -Permission1421=Exporteer afnemersfacturen en attributen -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Lees geplande taak -Permission23002=Maak/wijzig geplande taak -Permission23003=Verwijder geplande taak -Permission23004=Voer geplande taak uit -Permission2401=Bekijk acties (gebeurtenissen of taken) in gerelateerd aan eigen account -Permission2402=Creëren / wijzigen / verwijderen acties (gebeurtenissen of taken) gerelateerd aan eigen account -Permission2403=Bekijk acties (gebeurtenissen of taken) van anderen -Permission2411=Inzien van acties (gebeurtenissen of taken) van anderen -Permission2412=Creëer/delete acties (gebeurtenissen of taken) van anderen -Permission2413=Wijzig acties (gebeurtenissen of taken) van anderen -Permission2414=Export actions/tasks of others -Permission2501=Inzien van documenten -Permission2502=Uploaden of verwijderen van documenten -Permission2503=In te dienen of te verwijderen documenten -Permission2515=Instellen documentabonneelijsten -Permission2801=Gebruik FTP-client in lees modus (enkel verkennen en downloaden) -Permission2802=Gebruik FTP-client in schrijf modus (verwijderen of bestanden uploaden) -Permission50101=Gebruik Verkooppunten -Permission50201=Lees transacties -Permission50202=Import transacties -Permission54001=Afdrukken -Permission55001=Lees polls -Permission55002=Maak / wijzig polls -Permission59001=Lees commerciële marges -Permission59002=Definieer commerciële marges -Permission59003=Read every user margin -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Prospect potentiële niveau -DictionaryCanton=Provincie -DictionaryRegion=Regio -DictionaryCountry=Landen -DictionaryCurrency=Valuta -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types -DictionaryVAT=BTW-tarieven of Verkoop Tax tarieven -DictionaryRevenueStamp=Bedrag van de fiscale zegels -DictionaryPaymentConditions=Betalingsvoorwaarden -DictionaryPaymentModes=Betaalwijzen -DictionaryTypeContact=Contact / Adres soorten -DictionaryEcotaxe=Ecotax (WEEE) -DictionaryPaperFormat=Papierformaten -DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Verzendmethoden -DictionaryStaff=Personeel -DictionaryAvailability=Leverings vertraging -DictionaryOrderMethods=Bestel methodes -DictionarySource=Oorsprong van offertes / bestellingen -DictionaryAccountancyCategory=Accounting account groups -DictionaryAccountancysystem=Modellen voor rekeningschema -DictionaryEMailTemplates=Email documentensjablonen -DictionaryUnits=Units -DictionaryProspectStatus=Prospection status -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead -SetupSaved=Instellingen opgeslagen -BackToModuleList=Terug naar moduleoverzicht -BackToDictionaryList=Terug naar de woordenboeken lijst -VATManagement=BTW-beheer -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=Standaard is de voorgestelde BTW 0. Dit kan gebruikt worden in situaties zoals verenigingen, particulieren of kleine bedrijven. -VATIsUsedExampleFR=In Frankrijk, betekent dit dat bedrijven of organisaties met een echt fiscaalsysteem (Vereenvoudigd reëel of normaal reëel). Een systeem waarbij de BTW wordt aangegeven. -VATIsNotUsedExampleFR=In Frankrijk, betekent dit verenigingen die geen BTW aangegeven of bedrijven, organisaties of vrije beroepen die hebben gekozen voor het micro-onderneming fiscale stelsel (BTW in franchise) en een franchise BTW betaalden zonder BTW aangifte. Bij het maken van deze keuze verschijnt de vermelding "Niet van toepassing BTW - art-293B van CGI" op de facturen. -##### Local Taxes ##### -LTRate=Tarief -LocalTax1IsNotUsed=Gebruik geen tweede belasting -LocalTax1IsUsedDesc=Gebruik een tweede type van belasting (met uitzondering van de BTW) -LocalTax1IsNotUsedDesc=Gebruik geen ander type van belasting (andere dan BTW) -LocalTax1Management=Tweede soort belasting -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= -LocalTax2IsNotUsed=Derde belasting niet gebruiken -LocalTax2IsUsedDesc=Gebruik een derde type van belasting (met uitzondering van de BTW) -LocalTax2IsNotUsedDesc=Gebruik geen ander type van belasting (andere dan BTW) -LocalTax2Management=Derde type belasting -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= Gestion RE -LocalTax1IsUsedDescES= Het RE tarief volgt standaard de actieve standaardregel (bij het maken van prospecten, facturen, opdrachten etc)
Als de koper niet is onderworpen aan RE, wordt de RE standaard standaard ingesteld op 0. Einde van de regel.
Indien de koper wordt onderworpen aan dan de RE dan standaard RE. Einde van de regel.
-LocalTax1IsNotUsedDescES= Standaard is de voorgestelde RE 0. Einde van de regel. -LocalTax1IsUsedExampleES= In Spanje zijn zij professionals die onderworpen zijn aan enkele specifieke secties van het Spaanse IAE. -LocalTax1IsNotUsedExampleES= In Spanje zijn zij professionals en verenigingen die onderworpen zijn aan bepaalde secties van het Spaanse IAE. -LocalTax2ManagementES= IRPF beheer -LocalTax2IsUsedDescES= Het standaard RE tarief bij het aanmaken van prospecten, facturen, opdrachten, etc volgt de actieve standaardregel:
Wanneer de verkoper niet onderworpen is aan de IRPF, dan wordt IRPF ingesteld op o. Einde van de regel.
Wanneer de verkoper onderworpen is aan de IRPF, dan wordt standaard de IRPF insgesteld. Einde van regel.
-LocalTax2IsNotUsedDescES= Standaard is de voorgestelde IRPF 0. Einde van de regel. -LocalTax2IsUsedExampleES= In Spanje, freelancers en onafhankelijke professionals die diensten aanbieden alsmede bedrijven die voor het belastingsysteem van modules hebben gekozen. -LocalTax2IsNotUsedExampleES= In Spanje zijn zij bedrijven die niet onderworpen zijn aan het belastingsysteem van modules. -CalcLocaltax=Rapporten over lokale belastingen -CalcLocaltax1=Verkopen - Aankopen -CalcLocaltax1Desc=Lokale belastings rapporten worden berekend met het verschil tussen verkopen en aankopen -CalcLocaltax2=Aankopen -CalcLocaltax2Desc=Lokale Belastingen rapporten zijn het totaal van balastingen aankopen -CalcLocaltax3=Verkopen -CalcLocaltax3Desc=Lokale Belastingen rapporten zijn het totaal van belastingen verkoop -LabelUsedByDefault=Standaard te gebruiken label indien er geen vertaling kan worden gevonden voor de code -LabelOnDocuments=Etiket op documenten -NbOfDays=Aantal dagen -AtEndOfMonth=Aan het einde van de maand -CurrentNext=Current/Next -Offset=Offset (afstand) -AlwaysActive=Altijd actief -Upgrade=Bijwerken -MenuUpgrade=Bijwerken / Uitbreiden -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Webserver -DocumentRootServer='Root' map van de webserver -DataRootServer=Gegevensbestandenmap -IP=IP -Port=Poort -VirtualServerName=Virtuele servernaam -OS=OS -PhpWebLink=PHP Weblink -Browser=Browser -Server=Server -Database=Database -DatabaseServer=Databasehost -DatabaseName=Databasenaam -DatabasePort=Databasepoort -DatabaseUser=Databasegebruikersnaam -DatabasePassword=Databasewachwoord -Tables=Tabellen -TableName=Tabelnaam -NbOfRecord=Aantal tabelregels -Host=Server -DriverType=Drivertype -SummarySystem=Samenvatting van systeeminformatie -SummaryConst=Lijst van alle Dolibarr-instellingen -MenuCompanySetup=Bedrijf / Stichting -DefaultMenuManager= standaard menuverwerker -DefaultMenuSmartphoneManager=standaard smartphonemenuverwerker -Skin=Uiterlijksthema -DefaultSkin=Standaard uiterlijksthema -MaxSizeList=Maximale lijstlengte -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) -MessageOfDay=Bericht van de dag -MessageLogin=Bericht op inlogpagina -PermanentLeftSearchForm=Permanent zoekformulier in linker menu -DefaultLanguage=Standaard te gebruiken taal (taal-code) -EnableMultilangInterface=Inschakelen meertalige interface -EnableShowLogo=Toon logo in het linker menu -CompanyInfo=Bedrijf / stichting informatie -CompanyIds=Bedrijf / stichting identiteiten -CompanyName=Naam -CompanyAddress=Adres -CompanyZip=Postcode -CompanyTown=Plaats -CompanyCountry=Land -CompanyCurrency=Belangrijkste valuta -CompanyObject=Object of the company -Logo=Logo -DoNotSuggestPaymentMode=Geen betalingswijze voorstellen -NoActiveBankAccountDefined=Geen actieve bankrekening ingesteld -OwnerOfBankAccount=Eigenaar van bankrekening %s -BankModuleNotActive=Bankrekeningen module niet ingeschakeld -ShowBugTrackLink=Show link "%s" -Alerts=Kennisgevingen -DelaysOfToleranceBeforeWarning=Getolereerde vertraging voor kennisgeving -DelaysOfToleranceDesc=In dit scherm kunt u de getolereerde vertraging voordat een kennisgeving wordt gemeld op het scherm met een icoontje %s voor elk te laat element. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Getolereerde vertraging (in dagen) voor een kennisgeving, op af te sluiten offertes word getoond -Delays_MAIN_DELAY_PROPALS_TO_BILL=Getolereerde vertraging (in dagen) voor een kennisgeving, op niet-gefactureerde offertes word getoond -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Getolereerde vertraging (in dagen) voor een kennisgeving, op te activeren diensten word getoond -Delays_MAIN_DELAY_RUNNING_SERVICES=Getolereerde vertraging (in dagen) voor een kennisgeving, op afgelopen diensten word getoond -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Getolereerde vertraging (in dagen) voor een kennisgeving, op een onbetaalde leveranciersfactuur word getoond -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Getolereerde vertraging (in dagen) voor een kennisgeving, op een onbetaalde afnemersfactuur word getoond -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Getolereerde vertraging (in dagen) voor een kennisgeving, op bank conciliatie word getoond -Delays_MAIN_DELAY_MEMBERS=Getolereerde vertraging (in dagen) voor een kennisgeving, op niet betaalde contributie word getoond -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Getolereerde vertraging (in dagen) voor de kennisgeving voor nog te doen cheques aanbetaling -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. -SetupDescription5=Andere menu-items beheren / optionele instellingen. -LogEvents=Veiligheidsauditgebeurtenissen -Audit=Audit -InfoDolibarr=About Dolibarr -InfoBrowser=About Browser -InfoOS=About OS -InfoWebServer=About Web Server -InfoDatabase=About Database -InfoPHP=About PHP -InfoPerf=About Performances -BrowserName=Browser naam -BrowserOS=Browser OS -ListOfSecurityEvents=Lijst van Dolibarr veiligheidgebeurtenisen -SecurityEventsPurged=Beveiliging gebeurtenissen verwijderd -LogEventDesc=Hier kunt u de de gewenste veiligheidslogs in- of uitschakelen. Beheerders kunnen de inhoud ervan dan zien via het menu Home->Systeemwerkset->Audit. Waarschuwing, deze functionaliteit kan een grote hoeveelheid gegevens in de database wegschrijven. -AreaForAdminOnly=Deze functies kunnen alleen worden gebruikt door beheerders -SystemInfoDesc=Systeeminformatie is technische informatie welke u in alleen-lezen modus krijgt en alleen door beheerders is in te zien. -SystemAreaForAdminOnly=Dit scherm is alleen beschikbaar voor de beheerders. Andere Dolibarr gebruikers kunnen hier niets wijzigen. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=U kunt hier instellingen doen die het uiterlijk van Dolibarr instellen -AvailableModules=Beschikbare modules -ToActivateModule=Om modules te activeren, ga naar Home->Instellingen->Modules. -SessionTimeOut=Time-out van de sessie -SessionExplanation=De hier ingestelde waarde garandeert dat de sessie nooit zal verlopen voordat deze periode is verlopen, maar niet dat de sessie wel verloopt na deze vertraging, omdat sessies worden worden verwijderd wanneer het systeem zelf een opschoning begint.
Opmerking: bij geen specifiek systeem, zal PHP elke sessie wissen rond %s/%s toegang, maar alleen tijdens de toegang van andere sessies. -TriggersAvailable=Beschikbare initiatoren (triggers) -TriggersDesc=Initiatoren zijn bestanden die het gedrag van de 'workflow' van Dolibarr zullen beïnvloeden vanaf het moment dat zij zijn gekopieerd naar de map htdocs/core/triggers.Zij initiëren nieuwe acties, geactiveerd door Dolibarr gebeurtenissen (de creatie van nieuwe bedrijven, factuur validatie, etc). -TriggerDisabledByName=Initiatoren in dit bestand zijn uitgeschakeld door het NoRun achtervoegsel in hun naam. -TriggerDisabledAsModuleDisabled=Initiatoren in dit bestand zijn uitgeschakeld als module %s is uitgeschakeld. -TriggerAlwaysActive=Initiatoren in dit bestand zijn altijd actief, ongeacht de geactiveerde modules in Dolibarr. -TriggerActiveAsModuleActive=Initiatoren in dit bestand zijn actief als module %s is ingeschakeld. -GeneratedPasswordDesc=Stel hier de regel in die u wilt gebruiken voor het genereren van een nieuwe wachtwoord als u vraagt om een automatisch gegenereerd wachtwoord -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Limieten- en precisieinstellingen -LimitsDesc=U kunt hier limieten en preciseringen die Dolibarr gebruikt instellen -MAIN_MAX_DECIMALS_UNIT=Maximaal aantal decimalen voor eenheidsprijzen -MAIN_MAX_DECIMALS_TOT=Maximaal aantal decimalen voor de totale prijs -MAIN_MAX_DECIMALS_SHOWN=Maximaal aantal decimalen voor de prijzen weergegeven op het scherm (Voeg ... toe na dit nummer als u ... wilt zien als het nummer wordt afgekapt op het scherm) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) -UnitPriceOfProduct=Prijs per eenheid van een product -TotalPriceAfterRounding=Totale prijs inclusief na afronding -ParameterActiveForNextInputOnly=De instelling word pas actief voor de volgende invoer -NoEventOrNoAuditSetup=Geen geregistreerde auditgebeurtenis. Dit is normaal als de audit nog niet is ingeschakeld in "Home->Instellingen->Beveiliging->Audit". -NoEventFoundWithCriteria=Geen beveiligingsgebeurtenis gevonden met deze zoek criteria. -SeeLocalSendMailSetup=Controleer de instellingen van uw lokale "sendmail"-programma -BackupDesc=Om een complete backup van Dolibarr te maken, dient u: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=- Bewaar de inhoud van uw database in een dump bestand. Om dit te doen, kunt u gebruik maken van de volgende assistent. -BackupDescX=Gearchiveerde map-bestand moet op een veilige plaats worden opgeslagen. -BackupDescY=De gemaakte dump bestand moet op een veilige plaats worden opgeslagen. -BackupPHPWarning=Backup niet gegarandeerd met deze methode. Gebruik beter de vorige -RestoreDesc=Om een Dolibarr backup terug te zetten, dient u: -RestoreDesc2=- Herstel archiefbestand (zip bestand bijvoorbeeld) van de oude documentenmap in de documentenmap van de nieuwe Dolibarr installatie of in huidige documentenmap (%s). -RestoreDesc3=- Herstel de gegevens van een backup dumpbestand, in de database van de nieuwe Dolibarr installatie of in de database van de huidige installatie. Waarschuwing, zodra een herstel is gedaan, zult u de gebruikersnaam en wachtwoord die bestonden toen de backup werd gemaakt, moeten gebruiken. Om een backupdatabase in de huidige installatie te herstellen, kunt u de assistent (wizard) volgen. -RestoreMySQL=MySQL import -ForcedToByAModule= Geforceerd tot %s door een geactiveerde module -PreviousDumpFiles=Beschikbare databasebackupdumpbestanden -WeekStartOnDay=Eerste dag van de week -RunningUpdateProcessMayBeRequired=Update lijkt vereist (Programma versie %s verschilt met de database versie %s) -YouMustRunCommandFromCommandLineAfterLoginToUser=U dient dit commando vanaf de opdrachtregel uit te voeren, na ingelogd te zijn als gebruiker %s. Of u dient het commando uit te breiden door de -W optie mee te geven zodat u het wachtwoord kunt opgeven. -YourPHPDoesNotHaveSSLSupport=SSL functies niet beschikbaar in uw PHP installatie -DownloadMoreSkins=Meer uiterlijkthema's om te downloaden -SimpleNumRefModelDesc=Geeft het referentienummer terug in het formaat %sjjmm-nnnn waar jj jaar is, mm de maand en nnnn een opeenvolgende aaneengesloten reeks en zonder vervangende 0 -ShowProfIdInAddress=Toon in het adresgedeelte van documenten het 'professioneel ID' -ShowVATIntaInAddress=Verberg BTW Intra num met adressen op documenten -TranslationUncomplete=Onvolledige vertaling -MAIN_DISABLE_METEO=Schakel "Meteo"-weergave uit -TestLoginToAPI=Test inloggen op API -ProxyDesc=Sommige functies van Dolibarr moet een toegang tot internet aan het werk te hebben. Definieer hier parameters voor deze. Als de Dolibarr server zich achter een Proxy server, deze parameters vertelt Dolibarr hoe toegang tot internet via het. -ExternalAccess=Externe toegang -MAIN_PROXY_USE=Gebruik een proxy server (anders directe toegang tot internet) -MAIN_PROXY_HOST=Naam / adres van de proxy server -MAIN_PROXY_PORT=Poort van de proxy server -MAIN_PROXY_USER=Inloggen op de proxyserver te gebruiken -MAIN_PROXY_PASS=Wachtwoord voor de proxy-server te gebruiken -DefineHereComplementaryAttributes=Definieer hier alle attributen, niet reeds standaard beschikbaar, en dat je wilt worden ondersteund voor %s. -ExtraFields=Aanvullende attributen -ExtraFieldsLines=Aanvullende kenmerken (lijnen) -ExtraFieldsSupplierOrdersLines=Complementaire attributen (orderregels) -ExtraFieldsSupplierInvoicesLines=Complementaire attributen (factuurregels) -ExtraFieldsThirdParties=Aanvullende kenmerken (relaties) -ExtraFieldsContacts=Aanvullende kenmerken (contact / adres) -ExtraFieldsMember=Aanvullende kenmerken (lid) -ExtraFieldsMemberType=Aanvullende kenmerken (soort lid) -ExtraFieldsCustomerInvoices=Aanvullende kenmerken (facturen) -ExtraFieldsSupplierOrders=Aanvullende kenmerken (orders) -ExtraFieldsSupplierInvoices=Aanvullende kenmerken (facturen) -ExtraFieldsProject=Aanvullende kenmerken (projecten) -ExtraFieldsProjectTask=Aanvullende kenmerken (taken) -ExtraFieldHasWrongValue=Attribuut %s heeft een verkeerde waarde. -AlphaNumOnlyLowerCharsAndNoSpace=alleen alfanumerieke tekens en kleine letters zonder spatie -SendmailOptionNotComplete=Waarschuwing, op sommige Linux-systemen, e-mail verzenden vanaf uw e-mail, sendmail uitvoering setup moet conatins optie-ba (parameter mail.force_extra_parameters in uw php.ini-bestand). Als sommige ontvangers nooit e-mails ontvangen, probeer dit PHP parameter bewerken met mail.force_extra_parameters =-ba). -PathToDocuments=Pad naar documenten -PathDirectory=Map -SendmailOptionMayHurtBuggedMTA=Feature om e-mails met behulp van methode "PHP mail direct" te sturen zal een e-mailbericht dat niet goed zou kunnen worden ontleed door sommige het ontvangen van e-mailservers. Resultaat is dat sommige mails niet kunnen worden gelezen door mensen gehost door thoose afgeluisterd platforms. Het is het geval voor sommige Internet providers (Ex: Orange in Frankrijk). Dit is geen probleem in Dolibarr noch in PHP, maar op het ontvangen van e-mailserver. U kunt de optie MAIN_FIX_FOR_BUGGED_MTA echter toe te voegen aan 1 in setup - andere om Dolibarr wijzigen om dit te voorkomen. Echter, kunnen er problemen met andere servers dat opzicht strikt de SMTP-standaard. De andere oplossing (aanbevolen) is het gebruik van de methode "SMTP-socket bibliotheek" dat er geen nadelen heeft. -TranslationSetup=Setup of translation -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s -YouMustEnableOneModule=Je moet minstens 1 module aktiveren -ClassNotFoundIntoPathWarning=Classe %s niet gevonden in PHP pad -YesInSummer=Ja in de zomer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: -SuhosinSessionEncrypt=Sessie opslag geencrypteerd door Suhosin -ConditionIsCurrently=Voorwaarde is momenteel %s -YouUseBestDriver=U gebruikt driver %s die momenteel meest geschikt is. -YouDoNotUseBestDriver=U gebruikt driver %s, maar driver %s is aangeraden -NbOfProductIsLowerThanNoPb=U hebt enkel %s producten/diensten in de database. Er is geen optimalisatie nodig. -SearchOptim=Zoekmachine optimalisatie -YouHaveXProductUseSearchOptim=U hebt %s producten in de database. U kan best de constante PRODUCT_DONOTSEARCH_ANYWHERE op 1 zetten in Home-instellingen-andere, u beperkt het zoeken tot begin van strings, waardoor de database een index kan gebruiken en een onmiddelijk resultaat geeft. -BrowserIsOK=U gebruikt de webbrowser %s. Deze browser is in orde voor beveiliging en prestaties. -BrowserIsKO=U gebruikt de webbrowser %s. Deze browser is een slechte keuze voor veiligheid, prestaties en betrouwbaarheid. Wij raden u aan Firefox, Chrome, Opera of Safari gebruiken. -XDebugInstalled=Xdebug is geladen. -XCacheInstalled=Xcache is geladen. -AddRefInList=Weergave klant / leverancier ref in lijst (lijst of combobox) en de meeste van hyperlink. Relaties verschijnen met de naam "CC12345 - SC45678 - Het groot bedrijf coorp", in plaats van "Het groot bedrijf coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. -FieldEdition=Wijziging van het veld %s -FillThisOnlyIfRequired=Voorbeeld: +2 (alleen invullen als tijdzone offset problemen worden ervaren) -GetBarCode=Haal barcode -##### Module password generation -PasswordGenerationStandard=Geeft een wachtwoord terug dat gegenereerd is volgens het interne Dolibarr algoritme: 8 karakters met gedeelde nummers en tekens in kleine letters. -PasswordGenerationNone=Do not suggest any generated password. Password must be typed in manually. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description -##### Users setup ##### -RuleForGeneratedPasswords=Regel voor te genereren suggestie- en validatiewachtwoorden -DisableForgetPasswordLinkOnLogonPage=Verberg de link "Wachtwoord vergeten?" op de inlogpagina -UsersSetup=Gebruikersmoduleinstellingen -UserMailRequired=E-mail verplicht om een nieuwe gebruiker creëren -##### HRM setup ##### -HRMSetup=HRM module setup -##### Company setup ##### -CompanySetup=Derde partijenmoduleinstellingen -CompanyCodeChecker=Module voor de generatie en toetsing van codes voor derde partijen (afnemer of leverancier) -AccountCodeManager=Module voor de generatie van boekhoudkundige codes (afnemer of leverancier) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. -ModelModules=Documentensjablonen -DocumentModelOdt=Genereer documenten uit OpenDocuments sjablonen (. ODT of. ODS-bestanden voor OpenOffice, KOffice, TextEdit, ...) -WatermarkOnDraft=Watermerk op conceptdocumenten -JSOnPaimentBill=Activeert functie om de betalingslijnen op betalingsformulieren automatisch aan te vullen -CompanyIdProfChecker=Professionele Id unieke -MustBeUnique=Must be unique? -MustBeMandatory=Mandatory to create third parties? -MustBeInvoiceMandatory=Mandatory to validate invoices? -##### Webcal setup ##### -WebCalUrlForVCalExport=Een exportlink naar het %s formaat is beschikbaar onder de volgende link: %s -##### Invoices ##### -BillsSetup=Facturenmodule instellen -BillsNumberingModule=Nummeringsmodule voor facturen en creditnota's -BillsPDFModules=Factuur documentsjablonen -CreditNote=Creditnota -CreditNotes=Creditnota's -ForceInvoiceDate=Forceer factuurdatum naar validatiedatum -SuggestedPaymentModesIfNotDefinedInInvoice=Voorgestelde betaalwijze standaard op de factuur, indien niet ingesteld voor de betreffende factuur -SuggestPaymentByRIBOnAccount=Voorstellen de betaling via automatische incasso te laten plaatsvinden -SuggestPaymentByChequeToAddress=Voorstellen de betaling per cheque te doen -FreeLegalTextOnInvoices=Vrije tekst op facturen -WatermarkOnDraftInvoices=Watermerk op ontwerp-facturen (geen indien leeg) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Leveranciersbetalingen -SupplierPaymentSetup=Suppliers payments setup -##### Proposals ##### -PropalSetup=Offertemoduleinstellingen -ProposalsNumberingModules=Offertenummeringmodules -ProposalsPDFModules=Offertedocumentsjablonen -FreeLegalTextOnProposal=Vrije tekst op Offertes -WatermarkOnDraftProposal=Watermerk op ontwerp offertes (geen indien leeg) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Vraag naar bankrekening bestemming van het voorstel -##### SupplierProposal ##### -SupplierProposalSetup=Prijsaanvragen leveranciers module instelling -SupplierProposalNumberingModules=Prijsaanvragen leveranciers nummering modellen -SupplierProposalPDFModules=Prijsaanvragen leveranciers documenten modellen -FreeLegalTextOnSupplierProposal=Vrije tekst op leveranciers prijsaanvragen -WatermarkOnDraftSupplierProposal=Watermerk op ontwerp leveranciers prijsaanvraag ​​(geen als leeg) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Vraag naar bankrekening bestemming van prijsaanvraag -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### -OrdersSetup=Opdrachtenbeheerinstellingen -OrdersNumberingModules=Opdrachtennummeringmodules -OrdersModelModule=Oprachtendocumentsjablonen -FreeLegalTextOnOrders=Vrije tekst op opdrachten -WatermarkOnDraftOrders=Watermerk op ontwerp-orders (geen indien leeg) -ShippableOrderIconInList=Voeg een icoon toe aan de lijst Bestellingen die aangeeft wanneer leverbaar -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order -##### Interventions ##### -InterventionsSetup=Interventiemodule-instellingen -FreeLegalTextOnInterventions=Vrije tekst op interventiedocumenten -FicheinterNumberingModules=Interventienummeringsmodules -TemplatePDFInterventions=Interventiekaartdocumentensjablonen -WatermarkOnDraftInterventionCards=Watermerk op interventiekaart documenten (geen indien leeg) -##### Contracts ##### -ContractsSetup=Contracten/Abonnementen instellingen -ContractsNumberingModules=Contracten nummering modules -TemplatePDFContracts=Modeldocumenten contracten -FreeLegalTextOnContracts=Vrije tekst op contracten -WatermarkOnDraftContractCards=Watermerk op voorlopige contracten (leeg=geen) -##### Members ##### -MembersSetup=Ledenmoduleinstellingen -MemberMainOptions=Hoofdopties -AdherentLoginRequired= Beheren van een login voor elk lid -AdherentMailRequired=E-mail is vereist om een nieuw lid te creeren -MemberSendInformationByMailByDefault=Vinkvakje om een bevestigingse-mail te sturen naar leden (validatie van nieuwe abonnementen). Staat standaard aan. -##### LDAP setup ##### -LDAPSetup=LDAP-instellingen -LDAPGlobalParameters=Globale instellingen -LDAPUsersSynchro=Gebruikers -LDAPGroupsSynchro=Groepen -LDAPContactsSynchro=Contacten -LDAPMembersSynchro=Leden -LDAPSynchronization=LDAP-synchronisatie -LDAPFunctionsNotAvailableOnPHP=LDAP-functies zijn niet beschikbaar in uw PHP-installatie -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Waarde in LDAP -LDAPSynchronizeUsers=Organisatie van gebruikers in LDAP -LDAPSynchronizeGroups=Organisatie van groepen in LDAP -LDAPSynchronizeContacts=Organisatie van contactpersonen in LDAP -LDAPSynchronizeMembers=Organisatie van verenigingsleden in LDAP -LDAPPrimaryServer=Primaire server -LDAPSecondaryServer=Secundaire server -LDAPServerPort=Serverpoort -LDAPServerPortExample=Standaardpoort: 389 -LDAPServerProtocolVersion=Protocolversie -LDAPServerUseTLS=Gebruik TLS -LDAPServerUseTLSExample=Uw LDAP-server gebruik TLS -LDAPServerDn=Server DN -LDAPAdminDn=Administrator DN -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) -LDAPPassword=Beheerderswachtwoord -LDAPUserDn=Gebruikers DN -LDAPUserDnExample=Complete DN (voorbeeld: ou=users,dc=society,dc=com) -LDAPGroupDn=Groepen DN -LDAPGroupDnExample=Complete DN (voorbeeld: ou=groups,dc=society,dc=com) -LDAPServerExample=Serveradres (voorbeeld: localhost, 192.168.0.2, LDAPS://ldap.example.com/) -LDAPServerDnExample=Complete DN (voorbeeld: dc=company,dc=com) -LDAPDnSynchroActive=Gebruikers- en groepensynchronisatie -LDAPDnSynchroActiveExample=LDAP naar Dolibarr of Dolibarr naar LDAP synchronisatie -LDAPDnContactActive=Contactpersonensynchronisatie -LDAPDnContactActiveExample=Geactiveerde / gedeactiveerde synchronisatie -LDAPDnMemberActive=Ledensynchronisatie -LDAPDnMemberActiveExample=Geactiveerde / gedeactiveerde synchronisatie -LDAPContactDn=Dolibarr contactpersonen DN -LDAPContactDnExample=Complete DN (voorbeeld: ou=contacts,dc=society,dc=com) -LDAPMemberDn=Dolibarr leden DN -LDAPMemberDnExample=Complete DN (voorbeeld: ou=members,dc=society,dc=com) -LDAPMemberObjectClassList=Lijst van objectClass -LDAPMemberObjectClassListExample=Lijst van objectClass tabelregelattributen instellen (voorbeeld: top,inetOrgPerson of top,user voor de actieve map) -LDAPUserObjectClassList=Lijst van objectClass -LDAPUserObjectClassListExample=Lijst van objectClass tabelregelattributen instellen (voorbeeld: top,inetOrgPerson of top,user voor de actieve map) -LDAPGroupObjectClassList=Lijst van objectClass -LDAPGroupObjectClassListExample=Lijst van objectClass tabelregelattributen instellen (voorbeeld: top,groupOfUniqueNames) -LDAPContactObjectClassList=Lijst van objectClass -LDAPContactObjectClassListExample=Lijst van objectClass tabelregelattributen instellen (voorbeeld: top,inetOrgPerson of top,user voor actieve map) -LDAPTestConnect=Test LDAP-verbinding -LDAPTestSynchroContact=Test contactpersonensynchronisatie -LDAPTestSynchroUser=Test gebruikersynchronisatie -LDAPTestSynchroGroup=Test groepsynchronisatie -LDAPTestSynchroMember=Test ledensynchronisatie -LDAPTestSearch= Test een LDAP-zoekopdracht -LDAPSynchroOK=Synchronisatietest succesvol -LDAPSynchroKO=Synchronisatietest mislukt -LDAPSynchroKOMayBePermissions=Synchronisatie test mislukt. Controleer of de verbinding met de server correct is ingesteld en LDAP udpates toestaat. -LDAPTCPConnectOK=TCP verbinding met de LDAP-server succesvol (Server=%s, Port=%s) -LDAPTCPConnectKO=TCP verbinding met de LDAP-server mislukt (Server=%s, Port=%s) -LDAPBindOK=Verbinden en autorisatie met LDAP server geslaagd (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Verbinden en autoriseren met LDAP server mislukt (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPSetupForVersion3=LDAP-server ingesteld voor versie 3 -LDAPSetupForVersion2=LDAP-server ingesteld voor versie 2 -LDAPDolibarrMapping=Dolibarr-mapping (in kaart brengen) -LDAPLdapMapping=LDAP-mapping (in kaart brengen) -LDAPFieldLoginUnix=Gebruikersnaam (Unix) -LDAPFieldLoginExample=Voorbeeld: uid -LDAPFilterConnection=Zoekfilter -LDAPFilterConnectionExample=Voorbeeld: &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Gebruikersnaam (samba, activedirectory) -LDAPFieldLoginSambaExample=Voorbeeld: sAMAccountName -LDAPFieldFullname=Voornaam Achternaam -LDAPFieldFullnameExample=Voorbeeld: cn -LDAPFieldPasswordNotCrypted=Wachtwoord niet versleuteld -LDAPFieldPasswordCrypted=Wachtwoord versleuteld -LDAPFieldPasswordExample=Voorbeeld: userPassword -LDAPFieldCommonNameExample=Voorbeeld: cn -LDAPFieldName=Naam -LDAPFieldNameExample=Voorbeeld: sn -LDAPFieldFirstName=Voornaam -LDAPFieldFirstNameExample=Voorbeeld: givenname -LDAPFieldMail=E-mailadres -LDAPFieldMailExample=Voorbeeld: mail -LDAPFieldPhone=Zakelijk telefoonnummer -LDAPFieldPhoneExample=Voorbeeld: telefoonnummer -LDAPFieldHomePhone=Privételefoonnummer -LDAPFieldHomePhoneExample=Voorbeeld: Privénummer -LDAPFieldMobile=Mobieltelefoonnummer -LDAPFieldMobileExample=Voorbeeld: mobiele -LDAPFieldFax=Faxnummer -LDAPFieldFaxExample=Voorbeeld: facsimiletelephonenumber -LDAPFieldAddress=Straat -LDAPFieldAddressExample=Voorbeeld: straat -LDAPFieldZip=Zip -LDAPFieldZipExample=Voorbeeld: postalcode -LDAPFieldTown=Plaats -LDAPFieldTownExample=Voorbeeld: l -LDAPFieldCountry=Land -LDAPFieldDescription=Omschrijving -LDAPFieldDescriptionExample=Voorbeeld: omschrijving -LDAPFieldNotePublic=Openbare Nota -LDAPFieldNotePublicExample=Voorbeeld: publicnote -LDAPFieldGroupMembers= Groepsleden -LDAPFieldGroupMembersExample= Voorbeeld : uniqueMember -LDAPFieldBirthdate=Geboortedatum -LDAPFieldCompany=Bedrijf -LDAPFieldCompanyExample=Voorbeeld: o -LDAPFieldSid=SID -LDAPFieldSidExample=Voorbeeld: objectsid -LDAPFieldEndLastSubscription=Datum van abonnementseinde -LDAPFieldTitle=Job position -LDAPFieldTitleExample=Voorbeeld: title -LDAPSetupNotComplete=LDAP instellingen niet compleet (ga naar de andere tabbladen) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Geen beheerder of wachtwoord opgegeven. LDAP toegang zal anoniem zijn en in alleen-lezen modus. -LDAPDescContact=Deze pagina maakt het u mogelijk LDAP-waarden in de LDAP structuur te koppelen aan elk gegeven in de Dolibarr contactpersonen -LDAPDescUsers=Deze pagina maakt het u mogelijk LDAP-waarden in de LDAP structuur te koppelen aan elk gegeven in de Dolibarr gebruikers -LDAPDescGroups=Deze pagina maakt het u mogelijk LDAP-waarden in de LDAP structuur te koppelen aan elk gegeven in de Dolibarr groepen -LDAPDescMembers=Deze pagina maakt het u mogelijk LDAP-waarden in de LDAP structuur te koppelen aan elk gegeven in de Dolibarr ledenmodule -LDAPDescValues=Voorbeeldwaarden zijn ingesteld voor OpenLDAP geladen met de volgende schema's: TODO {VAR INSTELLEN?)core.schema, cosine.schema, inetorgperson.schema). Als udie waarden gebruikt en OpenLDAP, wijzigen dan uw LDAP 'config'-bestand slapd.conf om alle die schema's te laden. -ForANonAnonymousAccess=Voor een geautoriseerde verbinding (bijvoorbeeld om over schrijfrechten te beschikken) -PerfDolibarr=Prestaties setup / optimaliseren rapport -YouMayFindPerfAdviceHere=U vindt op deze pagina een aantal controles of adviezen met betrekking tot de prestaties. -NotInstalled=Niet geïnstalleerd, zodat uw server niet vertraagt -ApplicativeCache=Applicatieve cache -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=OPCode cache -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). -HTTPCacheStaticResources=HTTP cache for static resources (css, img, javascript) -FilesOfTypeCached=Files of type %s are cached by HTTP server -FilesOfTypeNotCached=Files of type %s are not cached by HTTP server -FilesOfTypeCompressed=Files of type %s are compressed by HTTP server -FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server -CacheByServer=Cache by server -CacheByClient=Cache by browser -CompressionOfResources=Compression of HTTP responses -TestNotPossibleWithCurrentBrowsers=Automatische detectie niet mogelijk -##### Products ##### -ProductSetup=Productenmoduleinstellingen -ServiceSetup=Services module setup -ProductServiceSetup=Producten en Diensten modules setup -NumberOfProductShowInSelect=Maximaal aantal producten in 'combo-lijsten' (0 = onbeperkt) -ViewProductDescInFormAbility=Visualisatie van de productomschrijvingen in de formulieren (anders getoond als popup-tooltip) -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Standaard streepjescodetype voor produkten -SetDefaultBarcodeTypeThirdParties=Standaard streepjescodetype voor derde partijen -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module om product codes te genereren en te controleren (product of dienst) -ProductOtherConf= Product / dienst configuratie -IsNotADir=is not a directory! -##### Syslog ##### -SyslogSetup=Syslog-moduleinstellingen -SyslogOutput=Log uitvoer -SyslogFacility=Faciliteit -SyslogLevel=Level -SyslogFilename=Bestandsnaam en -pad -YouCanUseDOL_DATA_ROOT=U kunt DOL_DATA_ROOT/dolibarr.log gebruiken voor een logbestand in de Dolibarr "documenten"-map. U kunt ook een ander pad gebruiken om dit bestand op te slaan. -ErrorUnknownSyslogConstant=Constante %s is geen bekende 'syslog' constante -OnlyWindowsLOG_USER=Windows only supports LOG_USER -##### Donations ##### -DonationsSetup=Donatiemoduleinstellingen -DonationsReceiptModel=Sjabloon van donatie-ontvangst -##### Barcode ##### -BarcodeSetup=Streepjescodeinstellingen -PaperFormatModule=Afdrukformaatmodule -BarcodeEncodeModule=Streepjescodesencoderingstype -CodeBarGenerator=Streepjescodegenerator -ChooseABarCode=Geen generator ingesteld -FormatNotSupportedByGenerator=Formaat niet ondersteund door deze generator -BarcodeDescEAN8=Streepjescodetype EAN8 -BarcodeDescEAN13=Streepjescodetype EAN13 -BarcodeDescUPC=Streepjescodetype UPC -BarcodeDescISBN=Streepjescodetype ISBN -BarcodeDescC39=Streepjescodetype C39 -BarcodeDescC128=Streepjescodetype C128 -BarcodeDescDATAMATRIX=Barcode of type Datamatrix -BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Opdrachtregelprogramma voor streepjescodegeneratie (gebruikt door interne generator voor sommige barcode types). Moet compatible zijn met "genbarcode".
vb: /usr/local/bin/genbarcode -BarcodeInternalEngine=Internal engine -BarCodeNumberManager=Beheerder om automatisch barcode nummers te bepalen. -##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders -##### ExternalRSS ##### -ExternalRSSSetup=Externe RSS importeerinstellingen -NewRSS=Nieuwe RSS Feed -RSSUrl=RSS URL -RSSUrlExample=Een interessante RSS-feed -##### Mailing ##### -MailingSetup=EMailingmoduleinstellingen -MailingEMailFrom=E-mailafzender (Van) voor e-mails die verstuurd worden door de EMailingmodule -MailingEMailError=Retoure-mailadres (Errors-to) voor e-mails met fouten -MailingDelay=Seconds to wait after sending next message -##### Notification ##### -NotificationSetup=Moduleinstellingen voor kennisgeving door e-mail -NotificationEMailFrom=E-mailafzender (van) voor e-mails die verstuurd worden voor kennisgevingen -FixedEmailTarget=Vaste email bestemmeling -##### Sendings ##### -SendingsSetup=Verzendingsmoduleinstellingen -SendingsReceiptModel=Verzendontvangstsjabloon -SendingsNumberingModules=Verzendingen nummering modules -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. -FreeLegalTextOnShippings=Vrije tekst op verzendingen -##### Deliveries ##### -DeliveryOrderNumberingModules=ontvangstbevestigingennummeringsmodule -DeliveryOrderModel=ontvangstbevestigingensjablonen -DeliveriesOrderAbility=Ondersteun productontvangstbevestigingen -FreeLegalTextOnDeliveryReceipts=Vrije tekst op ontvangstbevestigingen -##### FCKeditor ##### -AdvancedEditor=Geavanceerde editor -ActivateFCKeditor=Activeer FCKeditor voor: -FCKeditorForCompany=WYSIWIG creatie / bewerking van bedrijfsomschrijving en notities -FCKeditorForProduct=WYSIWIG creatie / bewerking van product- / dienstomschrijving en notities -FCKeditorForProductDetails=WYSIWIG creatie / bewerking van produktdetailregels voor alle entiteiten (Offertes, opdrachten, facturen, etc)
Waarschuwing: Gebruik van deze optie, voor dit doeleinde, wordt sterk afgeraden, omdat het problemen kan geven met speciale karakters en de paginaopmaak wanneer er PDF bestanden worden gegenereerd van deze gegevens. -FCKeditorForMailing= WYSIWIG creatie / bewerking van mailings -FCKeditorForUserSignature=WYSIWIG creatie /aanpassing van ondertekening -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) -##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=Verbinding geslaagd, maar de database lijkt geen OSCommerce database te zijn (Sleutel %s niet gevonden in tabel %s). -OSCommerceTestOk=Verbinding met de server '%s' en database '%s' met gebruiker '%s' succesvol. -OSCommerceTestKo1=Verbinding met de server '%s' gelukt maar de database '%s' kon niet worden bereikt. -OSCommerceTestKo2=Verbinding met server '%s' met gebruiker '%s' mislukt. -##### Stock ##### -StockSetup=Magazijnen instellingen -IfYouUsePointOfSaleCheckModule=Als u de verkooppunt module (de standaard POS module of een andere externe module) gebruikt, kan deze setup worden genegeerd door uw verkooppunt module. De meeste verkooppunt modules zijn ontworpen om onmiddellijk een factuur te creëren en het standaard verlagen van voorraad. Dus, als je ja of nee een voorraad daling nodig hebt om bij het registreren van een verkoop op uw verkooppunt, controleer ook uw POS-module instellingen. -##### Menu ##### -MenuDeleted=Menu verwijderd -Menus=Menu's -TreeMenuPersonalized=Persoonlijke menu's -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=Nieuw menu -Menu=Selectie van menu -MenuHandler=Menuverwerker -MenuModule=Bronmodule -HideUnauthorizedMenu= Verberg ongeautoriseerde menu's (grijs) -DetailId=Menu ID -DetailMenuHandler=Menuverwerker waar het nieuwe menu getoond moet worden -DetailMenuModule=Modulenaam als menu-item van een module afkomstig is -DetailType=Menutype (boven of links (Top of Left)TODO) -DetailTitre=Menulabel of labelcode voor de vertaling -DetailUrl=URL waar het menu naar linkt (Absolute URL-link of externe link met http://) -DetailEnabled=Voorwaarde voor het wel of niet tonen van het menu-item -DetailRight=Voorwaarde om onbevoegde grijze menu's weer te geven -DetailLangs=.lang bestandsnaam voor labelcodevertaling -DetailUser=Intern / Extern / Alle -Target=Doel -DetailTarget=Doel van links (_blank opent een nieuw venster) -DetailLevel=Niveau (-1: menu bovenaan, 0: header menu, >0 menu en submenu) -ModifMenu=Menu-item wijzigen -DeleteMenu=Menu-item verwijderen -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu -##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=BTW verplicht -OptionVATDefault=Kasbasis -OptionVATDebitOption=Transactiebasis -OptionVatDefaultDesc=BTW is verplicht:
- op levering / betalingen van goederen (wij gebruiken de factuurdatum)
- op betalingen van diensten -OptionVatDebitOptionDesc=BTW is verplicht:
- op levering / betalingen van goederen
- op factuur (debet) voor diensten -SummaryOfVatExigibilityUsedByDefault=Tijd van BTW opeisbaarheid standaard volgens gekozen optie: -OnDelivery=Bij levering -OnPayment=Bij betaling -OnInvoice=Op factuur -SupposedToBePaymentDate=Betalingsdatum gebruiken -SupposedToBeInvoiceDate=Factuurdatum gebruiken -Buy=Kopen -Sell=Verkopen -InvoiceDateUsed=Factuurdatum gebruiken -YourCompanyDoesNotUseVAT=Uw bedrijf is ingesteld als zijnde vrijgesteld van BTW (Home->Instellingen->Bedrijf / stichting), er zijn dus geen BTW opties in te stellen. -AccountancyCode=Accountancy Code -AccountancyCodeSell=Boekhoudkundige afnemerscode -AccountancyCodeBuy=Boekhoudkundige leverancierscode -##### Agenda ##### -AgendaSetup=Acties- en agendamoduleinstellingen -PasswordTogetVCalExport=autorisatiecode van de exportlink -PastDelayVCalExport=Exporteer geen gebeurtenissen ouder dan -AGENDA_USE_EVENT_TYPE=Gebruik event types (beheerd in menu Instellingen -> Woordenboek -> Type agenda event) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Stel automatisch dit soort evenementen in zoekfilter van agendaweergave -AGENDA_DEFAULT_FILTER_STATUS=Stel automatisch deze status voor evenementen in zoekfilter van agendaweergave -AGENDA_DEFAULT_VIEW=Welk tabblad wilt u standaard openen bij het selecteren van menu Agenda -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### -ClickToDialSetup='Click-To-Dial' moduleinstellingen -ClickToDialUrlDesc=Aangeroepen URL wanneer er geklikt wordt op een telefoonicoontje. In de URL kunt u 'tags' gebruiken
__PHONETO__ zal vervangen worden met het telefoonnummer dat gebeld moet worden
__PHONEFROM__ zal worden vervangen met het telefoonnummer van de bellende persoon (uw telefoonnummer)
__LOGIN__ zal vervangen worden door uw 'Click-To-Dial'-accountgebruikersnaam (Zoals ingesteld op uw gebruikerskaartdetails
__PASS__ zal vervangen worden door uw "Click-To-Dial"-accountwachtwoord (Zoals ingesteld op uw gebruikerskaartdetails). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. -##### Point Of Sales (CashDesk) ##### -CashDesk=Verkooppunten -CashDeskSetup=Verkooppuntenmoduleinstellingen -CashDeskThirdPartyForSell=Algemene Klant te gebruiken bij verkopen -CashDeskBankAccountForSell=Te gebruiken rekening voor ontvangst van contacte betalingen -CashDeskBankAccountForCheque= Te gebruiken rekening voor ontvangst van betalingen per cheque -CashDeskBankAccountForCB= Te gebruiken rekening voor ontvangst van betalingen per CreditCard -CashDeskDoNotDecreaseStock=Uitschakelen voorraad daling bij een verkoop via verkooppunt (indien "Nee", stock daling wordt gedaan voor elke verkoope gedaan via POS, wat er ook in de opties ingesteld staat in de module Stock). -CashDeskIdWareHouse=Kies magazijn te gebruiken voor voorraad daling -StockDecreaseForPointOfSaleDisabled=Stock daling van verkooppunt uitgeschakeld -StockDecreaseForPointOfSaleDisabledbyBatch=De stock afname van POS is niet compatibel met lot/serienummer beheer -CashDeskYouDidNotDisableStockDecease=Je hebt voorraad daling bij het maken van een verkoop via verkooppunt niet uitgeschakeld. Dus een magazijn is vereist. -##### Bookmark ##### -BookmarkSetup=Weblinkmoduleinstellingen -BookmarkDesc=Deze module maakt het u mogelijk 'weblinks' te beheren. U kunt ook verwijzingen naar elke Dolibarr pagina of externe website in uw linker menu zetten. -NbOfBoomarkToShow=Maximaal aantal 'weblinks' die in het linker menu getoond worden -##### WebServices ##### -WebServicesSetup=Webdienstenmoduleinstellingen -WebServicesDesc=Door het inschakelen van deze module, word Dolibarr een webdienstenserver voor het verrichten van diverse webdiensten. -WSDLCanBeDownloadedHere='WSDL descriptor'-bestanden van de aangeboden diensten kunnen hier gedownload worden -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL -##### API #### -ApiSetup=API module setup -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed -ApiKey=Key for API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### -BankSetupModule=Bankmoduleinstellingen -FreeLegalTextOnChequeReceipts=Eigen tekst op cheque-ontvangsten -BankOrderShow=Laat de volgorde van bankrekeningen zien voor landen die gebruik maken van "detailed bank number" -BankOrderGlobal=Algemeen -BankOrderGlobalDesc=Algemene vertoonvolgorde -BankOrderES=Spaans -BankOrderESDesc=Spaanse vertoonvolgorde -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - -##### Multicompany ##### -MultiCompanySetup=Multi-Bedrijfmoduleinstellingen -##### Suppliers ##### -SuppliersSetup=Leveranciersmoduleinstellingen -SuppliersCommandModel=Compleet levaranciersopdrachtsjabloon (logo) -SuppliersInvoiceModel=Compleet leveranciersfacturensjabloon (logo) -SuppliersInvoiceNumberingModel=Leveranciersfacturen nummering modellen -IfSetToYesDontForgetPermission=Indien ingesteld op ja, vergeet dan niet om machtigingen te verlenen aan groepen of gebruikers ​​voor het toestaan van de tweede goedkeuring -##### GeoIPMaxmind ##### -GeoIPMaxmindSetup="GeoIP Maxmind"-moduleinstellingen -PathToGeoIPMaxmindCountryDataFile=Pad naar bestand met Maxmind ip tot land vertaling.
Voorbeelden:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Let op dat uw "GeoIP Maxmind"-landbestand zich bevind in een map die door uw PHP-installatie kan worden gelezen (Controleer uwPHP open_basedir instelling en de bestandsrechten). -YouCanDownloadFreeDatFileTo=U kunt een gratis demo versie downloaden van een "Maxmind GeoIP"-landbestand op het adres %s. -YouCanDownloadAdvancedDatFileTo=U kunt ook een completere versie, met updates downloaden van het "Maxmind GeoIP"-landbestand op het adres %s. -TestGeoIPResult=Test van een conversie IP -> land -##### Projects ##### -ProjectsNumberingModules=Projectennummeringsmodule -ProjectsSetup=Projectenmoduleinstellingen -ProjectsModelModule=Projectenrapportagedocumentsjabloon -TasksNumberingModules=Taken nummering module -TaskModelModule=Taken rapporten documentmodel -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) -##### ECM (GED) ##### -##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? -ShowFiscalYear=Show accounting period -AlwaysEditable=Kan altijd worden bewerkt -MAIN_APPLICATION_TITLE=Forceer zichtbare naam van de toepassing (waarschuwing: het instellen van uw eigen naam hier kan het automatisch aanvullen van de inlog functie breken wanneer gebruik wordt van de mobiele applicatie DoliDroid) -NbMajMin=Minimum aantal hoofdletters -NbNumMin=Minimum aantal numerieke tekens -NbSpeMin=Minimum aantal speciale tekens -NbIteConsecutive=Maximum aantal repeterende dezelfde karakters -NoAmbiCaracAutoGeneration=Voor het automatisch genereren, gebruik geen dubbelzinnige tekens ("1","l","i","|","0","O") -SalariesSetup=Setup van module salarissen -SortOrder=Sorteervolgorde -Format=Formaat -TypePaymentDesc=0: Klant betalingswijze, 1: Leverancier betalingswijze 2: Zowel klanten en leveranciers betaalwijze -IncludePath=Include path (gedefinieerd in de variabele %s) -ExpenseReportsSetup=Setup van module onkostennota's -TemplatePDFExpenseReports=Document sjablonen om onkostennota's document te genereren -NoModueToManageStockIncrease=Geen module in staat om automatische voorraad toename beheren is geactiveerd. Stock verhoging zal worden gedaan via handmatige invoer. -YouMayFindNotificationsFeaturesIntoModuleNotification=U kunt opties voor e-mailberichten door het inschakelen en configureren van de module "Meldingen " te vinden. -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=Lijst met vaste meldingen -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Drempel -BackupDumpWizard=Wizard om database backup dump bestand op te bouwen -SomethingMakeInstallFromWebNotPossible=Installatie van externe module is niet mogelijk via de webinterface om de volgende reden: -SomethingMakeInstallFromWebNotPossible2=Om deze reden, is het upgrade process hier beschreven alleen in handmatige stappen door een bevoorrechte gebruiker te doen. -InstallModuleFromWebHasBeenDisabledByFile=Installeren van externe module van toepassing is uitgeschakeld door uw beheerder. Je moet hem vragen om het bestand %s te verwijderen om deze functie mogelijk te maken. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes -BackgroundColor=Background color -TopMenuBackgroundColor=Background color for Top menu -TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element -TypeOfTemplate=Type of template -TemplateIsVisibleByOwnerOnly=Template is visible by owner only -FixTZ=TimeZone fix -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum -ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice -MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs -AddHooks=Add hooks -AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates -AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs -activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise -CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. -LandingPage=Landing page -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined -TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +LDAPFieldTitle=Functie +AddBoxes=Widgets toevoegen diff --git a/htdocs/langs/nl_BE/compta.lang b/htdocs/langs/nl_BE/compta.lang index 85b92a9942f..f1e6f65a49a 100644 --- a/htdocs/langs/nl_BE/compta.lang +++ b/htdocs/langs/nl_BE/compta.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - compta RemainingAmountPayment=Resterend bedrag betaling: -Accountparent=Hoofdrekening -Accountsparent=Hoofdrekeningen LT1SummaryES=RE Balans SocialContribution=Sociale bijdrage/belasting SocialContributions=Sociale bijdragen/belastingen @@ -33,7 +31,6 @@ RulesResultInOut=- Dit omvat alle betalingen van facturen, uitgaven, BTW en lone RulesCADue=- Dit omvat de verschuldigde afnemersfacturen, betaald of niet.
- Dit is gebaseerd op de validatiedata van deze facturen.
RulesCAIn=- Dit omvat alle effectieve betalingen van afnemersfacturen.
- Het is gebaseerd op de betaaldatum van deze facturen
VATReport=BTW rapport -WarningDepositsNotIncluded=Deposito facturen worden niet opgenomen in deze versie met deze boekhoudmodule. CloneTax=Kopieer een sociale bijdrage/belasting ConfirmCloneTax=Bevestig kopie van betaling sociale bijdrage/belasting SimpleReport=Eenvoudig rapport diff --git a/htdocs/langs/nl_BE/main.lang b/htdocs/langs/nl_BE/main.lang index 83ab59c7974..ae55704fe49 100644 --- a/htdocs/langs/nl_BE/main.lang +++ b/htdocs/langs/nl_BE/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -23,799 +19,39 @@ FormatDateHourShort=%d-%m-%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M -DatabaseConnection=Databaseverbinding NoTemplateDefined=Geen model gedefinieerd voor dit email type -AvailableVariables=Available substitution variables -NoTranslation=Geen vertaling NoRecordFound=Geen record gevonden -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data -NoError=Geen fout -Error=Fout -Errors=Fouten -ErrorFieldRequired=Veld '%s' is vereist -ErrorFieldFormat=Veld '%s' heeft een incorrecte waarde -ErrorFileDoesNotExists=Bestand %s bestaat niet -ErrorFailedToOpenFile=Kan bestand %s niet openen -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s -ErrorConstantNotDefined=Parameter %s is niet gedefinieerd -ErrorUnknown=Onbekende fout -ErrorSQL=SQL fout -ErrorLogoFileNotFound=Logobestand '%s' is niet gevonden -ErrorGoToGlobalSetup=Ga naar het instellingscherm 'Bedrijf / Stichting' om dit te corrigeren -ErrorGoToModuleSetup=Ga naar Moduleinstellingen om dit te corrigeren -ErrorFailedToSendMail=Mail versturen mislukt (afzender=%s, ontvanger=%s) ErrorFileNotUploaded=Bestand is niet geüpload. Controleer of de grootte niet meer is dan maximaal toegestaan, of er vrije ruimte beschikbaar is op de schijf en of er niet al een bestand met dezelfde naam in deze map bestaat. -ErrorInternalErrorDetected=Fout ontdekt ErrorWrongHostParameter=Verkeerde host instelling -ErrorYourCountryIsNotDefined=Uw land is niet gedefinieerd. Corrigeer in Home->Instellingen-Bewerk en verstuur het formulier opnieuw. ErrorRecordIsUsedByChild=Tabelregel verwijderen mislukt. Deze tabelregel wordt gebruikt door ten minste een onderliggend tabelregel. -ErrorWrongValue=Verkeerde waarde -ErrorWrongValueForParameterX=Verkeerde waarde voor de parameter %s -ErrorNoRequestInError=Geen verzoek mislukt -ErrorServiceUnavailableTryLater=Service op dit moment niet beschikbaar. Probeer het later opnieuw. -ErrorDuplicateField=Dubbele waarde in een uniek veld -ErrorSomeErrorWereFoundRollbackIsDone=Fouten gevonden. Wij draaien de veranderingen terug. -ErrorConfigParameterNotDefined=Parameter %s is niet gedefinieerd binnen Dolibarr configuratiebestand conf.php. -ErrorCantLoadUserFromDolibarrDatabase=Kan gebruiker %s niet in de Dolibarr database vinden. -ErrorNoVATRateDefinedForSellerCountry=Fout, geen BTW-tarieven voor land '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. -ErrorFailedToSaveFile=Fout, bestand opslaan mislukt. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page NotAuthorized=U bent niet toegelaten om dat te doen. -SetDate=Stel datum in -SelectDate=Selecteer een datum -SeeAlso=Zie ook %s -SeeHere=Zie hier -Apply=Toepassen -BackgroundColorByDefault=Standaard achtergrondkleur -FileRenamed=The file was successfully renamed -FileUploaded=Het bestand is geüpload -FileGenerated=The file was successfully generated FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geupload. Klik hiervoor op "Bevestig dit bestand". -NbOfEntries=Aantal invoeringen -GoToWikiHelpPage=Read online help (Internet access needed) GoToHelpPage=Contacteer helpdesk RecordSaved=Tabelregel opgeslagen RecordDeleted=Record verwijderd -LevelOfFeature=Niveau van de functionaliteiten -NotDefined=Niet gedefinieerd -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. -Administrator=Beheerder -Undefined=Ongedefineerd -PasswordForgotten=Password forgotten? -SeeAbove=Zie hierboven -HomeArea=Home -LastConnexion=Latest connection -PreviousConnexion=Laatste keer ingelogd -PreviousValue=Previous value -ConnectedOnMultiCompany=Aangesloten bij Meervoudig bedrijf -ConnectedSince=Aangesloten sinds -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL -DatabaseTypeManager=Database Type Manager -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error -DolibarrHasDetectedError=Dolibarr heeft een technische fout gedetecteerd -InformationToHelpDiagnose=This information can be useful for diagnostic purposes -MoreInformation=Meer informatie -TechnicalInformation=Technische gegevens -TechnicalID=Technische ID -NotePublic=Notitie (publiek) -NotePrivate=Notitie (privé) -PrecisionUnitIsLimitedToXDecimals=Dolibarr is geconfigureerd om de precisie van de stuksprijzen op %s decimalen te beperken. -DoTest=Test -ToFilter=Filter NoFilter=Geen filter -WarningYouHaveAtLeastOneTaskLate=Let op, u heeft minstens een vertraagd element dat de getolereerde vertraging heeft overschreden. -yes=ja -Yes=Ja -no=nee -No=Nee -All=Alle -Home=Home -Help=Help -OnlineHelp=Online hulp -PageWiki=Wiki Pagina -MediaBrowser=Media browser -Always=Altijd -Never=Nooit -Under=onder -Period=Looptijd -PeriodEndDate=Einddatum looptijd -Activate=Activeren -Activated=Geactiveerd -Closed=Gesloten -Closed2=Gesloten -NotClosed=Not closed -Enabled=Ingeschakeld -Deprecated=Deprecated -Disable=Uitschakelen -Disabled=Uitgeschakeld -Add=Toevoegen -AddLink=Link toevoegen -RemoveLink=Remove link -AddToDraft=Add to draft -Update=Update -Close=Sluiten -CloseBox=Remove widget from your dashboard -Confirm=Bevestig -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? -Delete=Wissen -Remove=Verwijderen -Resiliate=Terminate -Cancel=Annuleren -Modify=Wijzigen -Edit=Bewerken -Validate=Valideer -ValidateAndApprove=Valideren en goedkeuren -ToValidate=Te valideren -Save=Opslaan -SaveAs=Opslaan als -TestConnection=Test verbinding -ToClone=Klonen -ConfirmClone=Kies de gegevens die u wilt klonen: -NoCloneOptionsSpecified=Geen gegevens om te klonen gedefinieerd. -Of=van -Go=Ga -Run=Run -CopyOf=Kopie van -Show=Tonen -Hide=Hide -ShowCardHere=Kaart tonen -Search=Zoeken -SearchOf=Zoeken -Valid=Geldig -Approve=Goedkeuren -Disapprove=Afkeuren -ReOpen=Heropenen -Upload=Upload -ToLink=Link -Select=Selecteer -Choose=Kies -Resize=Schalen -Recenter=Hercentreer -Author=Auteur -User=Gebruiker -Users=Gebruikers -Group=Groep -Groups=Groepen -NoUserGroupDefined=Geen gebruikersgroep gedefinieerd -Password=Wachtwoord -PasswordRetype=Herhaal uw wachtwoord -NoteSomeFeaturesAreDisabled=Let op, veel functionaliteiten / modules zijn uitgeschakeld in deze demonstratie. -Name=Naam -Person=Persoon -Parameter=Instelling -Parameters=Instellingen -Value=Waarde -PersonalValue=Persoonlijke waarde -NewValue=Nieuwe waarde -CurrentValue=Huidige waarde -Code=Code -Type=Type -Language=Taal -MultiLanguage=Meertalig -Note=Notitie -Title=Titel -Label=Naam -RefOrLabel=Nr. of naam -Info=Info -Family=Familie -Description=Omschrijving -Designation=Omschrijving -Model=Doc template -DefaultModel=Default doc template -Action=Actie -About=Over -Number=Aantal -NumberByMonth=Aantal per maand -AmountByMonth=Bedrag per maand -Numero=Nummer -Limit=Limiet -Limits=Grenzen -Logout=Uitloggen -NoLogoutProcessWithAuthMode=No applicative disconnect feature with authentication mode %s -Connection=Inloggen -Setup=Instellingen -Alert=Kennisgevingen -Previous=Vorige -Next=Volgende -Cards=Kaarten -Card=Kaart -Now=Nu -HourStart=Start uur -Date=Datum -DateAndHour=Datum en uur DateToday=Datum van vandaag DateReference=Referentie datum DateStart=Start datum DateEnd=Eind datum -DateCreation=Aanmaakdatum DateCreationShort=Aanmaak datum -DateModification=Wijzigingsdatum -DateModificationShort=Wijzigingsdatum -DateLastModification=Latest modification date -DateValidation=Validatiedatum -DateClosing=Sluitingsdatum -DateDue=Vervaldatum -DateValue=Valutadatum -DateValueShort=Valutadatum -DateOperation=Exploitatiedatum -DateOperationShort=Exploitatiedatum -DateLimit=Termijn -DateRequest=Verzoekdatum -DateProcess=Procesdatum -DateBuild=Datum van rapportgeneratie -DatePayment=Datum van betaling -DateApprove=Goedkeurings datum -DateApprove2=Goedkeurings datum (tweede goedkeuring) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user -DurationYear=jaar -DurationMonth=maand -DurationWeek=week -DurationDay=dag -DurationYears=jaren -DurationMonths=maanden -DurationWeeks=weken -DurationDays=dagen -Year=Jaar -Month=Maand -Week=Week -WeekShort=Week -Day=Dag -Hour=Uur -Minute=Minuut -Second=Seconde -Years=Jaren -Months=Maanden -Days=Dagen -days=dagen -Hours=Uur -Minutes=Minuten -Seconds=Seconden -Weeks=Weken -Today=Vandaag -Yesterday=Gisteren -Tomorrow=Morgen -Morning=Ochtend -Afternoon=Namiddag -Quadri=Trimester -MonthOfDay=Maand van de dag -HourShort=U -MinuteShort=mn -Rate=Tarief -CurrencyRate=Currency conversion rate -UseLocalTax=Inclusief btw -Bytes=Bytes -KiloBytes=KiloBytes -MegaBytes=MegaBytes -GigaBytes=GigaBytes -TeraBytes=Terabytes -b=b -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Knippen -Copy=Kopiëren -Paste=Plakken -Default=Standaard -DefaultValue=Standaardwaarde -Price=Prijs -UnitPrice=Eenheidsprijs -UnitPriceHT=Eenheidsprijs (netto) -UnitPriceTTC=Eenheidsprijs (bruto) -PriceU=E.P. -PriceUHT=EP (netto) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) -Amount=Hoeveelheid -AmountInvoice=Factuurbedrag -AmountPayment=Betalingsbedrag -AmountHTShort=Bedrag ex. BTW -AmountTTCShort=Bedrag met BTW -AmountHT=Bedrag (exclusief BTW) -AmountTTC=Bedrag (incl. BTW) -AmountVAT=Bedrag BTW -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency -AmountLT1=Bedrag tax 2 -AmountLT2=Bedrag tax 3 -AmountLT1ES=Bedrag RE -AmountLT2ES=Bedrag IRPF -AmountTotal=Totaal bedrag -AmountAverage=Gemiddeld bedrag -PriceQtyMinHT=Prijs hoeveelheid min. (exclusief BTW) -Percentage=Percentage -Total=Totaal -SubTotal=Subtotaal -TotalHTShort=Totaal excl. BTW -TotalHTShortCurrency=Total (net in currency) -TotalTTCShort=Totaal incl. BTW -TotalHT=Totaal excl. BTW -TotalHTforthispage=Totaal (na belastingen) voor deze pagina -Totalforthispage=Total for this page -TotalTTC=Totaal (incl. BTW) -TotalTTCToYourCredit=Totaal (incl. BTW) op uw krediet -TotalVAT=Totaal BTW -TotalLT1=Totaal tax 2 -TotalLT2=Totaal tax 3 -TotalLT1ES=Totaal RE -TotalLT2ES=Totaal IRPF -HT=Exclusief BTW -TTC=Inclusief BTW -VAT=BTW -VATs=Sales taxes -LT1ES=RE -LT2ES=IRPF -VATRate=BTW-tarief -Average=Gemiddeld -Sum=Som -Delta=Variantie -Module=Module -Option=Optie -List=Lijstoverzicht -FullList=Volledig overzicht -Statistics=Statistieken -OtherStatistics=Andere statistieken -Status=Status -Favorite=Favoriet -ShortInfo=Info. -Ref=Referentie -ExternalRef=Ref. extern -RefSupplier=Leverancierreferentie -RefPayment=Betalingskenmerk -CommercialProposalsShort=Offertes -Comment=Opmerking -Comments=Opmerkingen -ActionsToDo=Acties te doen -ActionsToDoShort=Te doen -ActionsDoneShort=Uitgevoerd -ActionNotApplicable=Niet van toepassing -ActionRunningNotStarted=Niet gestart -ActionRunningShort=In progress -ActionDoneShort=Uitgevoerd -ActionUncomplete=Onvolledig -CompanyFoundation=Bedrijf of instelling -ContactsForCompany=Bedrijfscontacten -ContactsAddressesForCompany=Contacten / adressen voor deze relatie -AddressesForCompany=Adressen voor deze relatie -ActionsOnCompany=Acties voor bedrijf -ActionsOnMember=Events over dit lid -NActionsLate=%s is laat -RequestAlreadyDone=Aanvraag reeds opgenomen -Filter=Filter -FilterOnInto=Zoekcriteria '%s' in velden %s -RemoveFilter=Verwijder filter -ChartGenerated=Grafiek gegenereerd -ChartNotGenerated=Grafiek niet gegenereerd -GeneratedOn=Voortbouwen op %s -Generate=Genereer -Duration=Duur -TotalDuration=Totale duur -Summary=Samenvatting -DolibarrStateBoard=Statistieken -DolibarrWorkBoard=Actieoverzicht -Available=Beschikbaar -NotYetAvailable=Nog niet beschikbaar -NotAvailable=Niet beschikbaar -Categories=Tags / categorieën -Category=Tag / categorie -By=Door -From=Van -to=aan -and=en -or=of -Other=Overig -Others=Overigen -OtherInformations=Overige informatie -Quantity=Hoeveelheid -Qty=Aantal -ChangedBy=Veranderd door -ApprovedBy=Goedgekeurd door -ApprovedBy2=Goedgekeurd door (tweede goedkeuring) -Approved=Approved -Refused=Refused -ReCalculate=Herberekenen -ResultKo=Mislukking -Reporting=Rapportage -Reportings=Rapportage -Draft=Concept -Drafts=Concepten -Validated=Gevalideerd -Opened=Opened -New=Nieuw -Discount=Korting -Unknown=Onbekend -General=Algemeen -Size=Grootte -Received=Ontvangen -Paid=Betaald -Topic=Onderwerp -ByCompanies=Door bedrijven -ByUsers=Door gebruikers -Links=Links -Link=Link -Rejects=Verworpen -Preview=Voorbeeldweergave -NextStep=Volgende stap -Datas=Gegevens -None=Geen -NoneF=Geen -Late=Vertraagd -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. -Photo=Afbeelding -Photos=Afbeeldingen -AddPhoto=Afbeelding toevoegen -DeletePicture=Afbeelding verwijderen -ConfirmDeletePicture=Bevestig verwijderen afbeelding -Login=Login -CurrentLogin=Huidige login -EnterLoginDetail=Enter login details -January=Januari -February=Februari -March=Maart -April=April -May=Mei -June=Juni -July=Juli -August=Augustus -September=September -October=Oktober -November=November -December=December -JanuaryMin=Jan -FebruaryMin=Februari -MarchMin=Mar -AprilMin=April -MayMin=Kunnen -JuneMin=Juni -JulyMin=Juli -AugustMin=Augustus -SeptemberMin=September -OctoberMin=Oktober -NovemberMin=November -DecemberMin=December -Month01=januari -Month02=februari -Month03=maart -Month04=april -Month05=mei -Month06=juni -Month07=juli -Month08=augustus -Month09=september -Month10=oktober -Month11=november -Month12=december -MonthShort01=jan -MonthShort02=feb -MonthShort03=mar -MonthShort04=apr -MonthShort05=mei -MonthShort06=jun -MonthShort07=jul -MonthShort08=aug -MonthShort09=sep -MonthShort10=okt -MonthShort11=nov -MonthShort12=dec -AttachedFiles=Bijgevoegde bestanden en documenten -FileTransferComplete=Het bestand is succesvol geupload -DateFormatYYYYMM=JJJJ-MM -DateFormatYYYYMMDD=JJJJ-MM-DD -DateFormatYYYYMMDDHHMM=JJJJ-MM-DD HH: SS -ReportName=Rapportnaam -ReportPeriod=Periode-analyse -ReportDescription=Omschrijving -Report=Verslag -Keyword=Keyword -Origin=Origin -Legend=Legende -Fill=Invullen -Reset=Reset -File=Bestand -Files=Bestanden -NotAllowed=Niet toegestaan -ReadPermissionNotAllowed=Leesrechten niet toegestaan -AmountInCurrency=Bedrag in %s valuta -Example=Voorbeeld -Examples=Voorbeelden -NoExample=Geen voorbeeld -FindBug=Rapporteer een bug -NbOfThirdParties=Aantal derden -NbOfLines=Aantal regels -NbOfObjects=Aantal objecten -NbOfObjectReferers=Number of related items -Referers=Related items -TotalQuantity=Totale hoeveelheid -DateFromTo=Van %s naar %s -DateFrom=Vanaf %s -DateUntil=Tot %s -Check=Controleren -Uncheck=Haal het vinkje weg -Internal=Interne -External=Extern -Internals=Internen -Externals=Externen -Warning=Waarschuwing -Warnings=Waarschuwingen -BuildDoc=Genereer Document -Entity=Entiteit -Entities=Entiteiten -CustomerPreview=Afnemersvoorbeeldweergave -SupplierPreview=Leverancier voorbeeldweergave -ShowCustomerPreview=Toon afnemersvoorbeeldweergave -ShowSupplierPreview=Toon leverancier voorbeeldweergave -RefCustomer=Referentie afnemer -Currency=Valuta -InfoAdmin=Informatie voor beheerders -Undo=Ongedaan maken -Redo=Opnieuw -ExpandAll=Alles uitklappen -UndoExpandAll=Ongedaan maken alles uitklappen -Reason=Reden -FeatureNotYetSupported=Functie nog niet ondersteund -CloseWindow=Sluit venster -Response=Antwoord -Priority=Prioriteit -SendByMail=Verzend per mail -MailSentBy=E-mail verzonden door -TextUsedInTheMessageBody=E-mailinhoud -SendAcknowledgementByMail=Send confirmation email -EMail=E-mail -NoEMail=Geen e-mail -Email=Email -NoMobilePhone=Geen mobiele telefoon -Owner=Eigenaar -FollowingConstantsWillBeSubstituted=De volgende constanten worden vervangen met de overeenkomstige waarde. -Refresh=Vernieuwen -BackToList=Terug naar het overzicht -GoBack=Ga terug -CanBeModifiedIfOk=Kan worden gewijzigd indien geldig -CanBeModifiedIfKo=Kan worden gewijzigd indien ongeldig -ValueIsValid=Prijs is geldig -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully -RecordModifiedSuccessfully=Tabelregel succesvol gewijzigd -RecordsModified=%s record modified -RecordsDeleted=%s record deleted -AutomaticCode=Automatische code -FeatureDisabled=Functie uitgeschakeld -MoveBox=Move widget -Offered=Beschikbaar -NotEnoughPermissions=U heeft geen toestemming voor deze actie -SessionName=Sessienaam -Method=Methode -Receive=Ontvangen -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value -CurrentValue=Huidige waarde -PartialWoman=Gedeeltelijke -TotalWoman=Totaal -NeverReceived=Nooit ontvangen -Canceled=Geannuleerd -YouCanChangeValuesForThisListFromDictionarySetup=U kunt waarden voor deze lijst wijzigen via menu-instellingen - woordenboek YouCanSetDefaultValueInModuleSetup=Je kan de standaard waarde gebruiken wanneer je een nieuw record plaatst in de module setup -Color=Kleur -Documents=Gekoppelde bestanden -Documents2=Documenten -UploadDisabled=Uploaden uitgeschakeld -MenuECM=Documenten -MenuAWStats=AWStats -MenuMembers=Leden -MenuAgendaGoogle=Google-agenda -ThisLimitIsDefinedInSetup=Dolibarr limiet (Menu Home-Instellingen-Beveiliging): %s Kb, PHP grens: %s Kb -NoFileFound=Geen documenten die zijn opgeslagen in deze map -CurrentUserLanguage=Huidige taal -CurrentTheme=Actuele thema -CurrentMenuManager=Huidige menu manager -Browser=Browser -Layout=Layout -Screen=Screen -DisabledModules=Uitgeschakelde modules -For=Voor -ForCustomer=Voor de afnemer -Signature=Handtekening -DateOfSignature=Date of signature -HidePassword=Toon opdracht met verborgen wachtwoord -UnHidePassword=Toon opdracht met zichtbaar wachtwoord -Root=Root -Informations=Informatie -Page=Pagina -Notes=Notitie -AddNewLine=Voeg nieuwe regel toe -AddFile=Voeg bestand toe -FreeZone=Vrije ingave -FreeLineOfType=Vrije ingave van type -CloneMainAttributes=Kloon het object met de belangrijkste kenmerken -PDFMerge=Voeg PDF samen -Merge=Samenvoegen -PrintContentArea=Toon printervriendelijke pagina -MenuManager=Standaard menuverwerker -WarningYouAreInMaintenanceMode=Let op, u bevind zich in de onderhoudmodus, dus alleen de login %s is gemachtigd om de applicatie op dit moment te gebruiken. -CoreErrorTitle=Systeemfout -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=CreditCard -FieldsWithAreMandatory=Velden met een %s zijn verplicht -FieldsWithIsForPublic=Velden gemarkeerd door %s zullen worden geplaatst op de openbare lijst van de leden. Indien u dat niet wenst, schakelt u de toegang "publiek" uit. -AccordingToGeoIPDatabase=(verkregen door conversie GeoIP) -Line=Regel -NotSupported=Niet ondersteund -RequiredField=Verplicht veld -Result=Resultaat -ToTest=Testen -ValidateBefore=Het geheel moet worden gevalideerd om deze functie te kunnen gebruiken -Visibility=Zichtbaarheid -Private=Privé -Hidden=Verborgen -Resources=Middelen -Source=Bron -Prefix=Voorvoegsel -Before=Voor -After=Na -IPAddress=IP-adres -Frequency=Frequentie -IM=Instant messaging -NewAttribute=Nieuwe attribuut -AttributeCode=Attribuut code -URLPhoto=Url van foto / logo SetLinkToAnotherThirdParty=Link naar een derde partij -LinkTo=Link to -LinkToProposal=Link to proposal -LinkToOrder=gekoppeld aan bestelling -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention -CreateDraft=Maak een ontwerp -SetToDraft=Terug naar ontwerp -ClickToEdit=Klik om te bewerken -ObjectDeleted=Object %s verwijderd -ByCountry=Per land -ByTown=Door de stad -ByDate=Op datum -ByMonthYear=Per maand / jaar -ByYear=Per jaar -ByMonth=per maand -ByDay=Per dag -BySalesRepresentative=Door vertegenwoordiger -LinkedToSpecificUsers=Gekoppeld aan een bepaalde gebruiker contact -NoResults=Geen resultaten -AdminTools=Admin tools -SystemTools=System tools -ModulesSystemTools=Modules gereedschappen -Test=Test -Element=Element -NoPhotoYet=Nog geen fotos beschikbaar -Dashboard=Dashboard -MyDashboard=My dashboard -Deductible=Aftrekbaar -from=van -toward=richting -Access=Toegang SelectAction=Selecteer actie -HelpCopyToClipboard=Gebruik Ctrl + C om te kopiëren naar het klembord -SaveUploadedFileWithMask=Sla het bestand op de server met de naam "%s" (anders "%s") -OriginFileName=Oorspronkelijke bestandsnaam -SetDemandReason=Stel bron in -SetBankAccount=Definieer Bank Rekening -AccountCurrency=Rekening Valuta -ViewPrivateNote=Notities bekijken -XMoreLines=%s regel(s) verborgen -PublicUrl=Openbare URL -AddBox=Box toevoegen -SelectElementAndClickRefresh=Selecteer een element en klik op nernieuwen -PrintFile=Bestand afdrukken %s -ShowTransaction=Show entry on bank account -GoIntoSetupToChangeLogo=Ga naar Home - Setup - Bedrijf om logo te wijzigen of ga naar Home - Instellingen - Scherm om te verbergen. Deny=Weigeren Denied=Geweigerd -ListOfTemplates=List of templates -Gender=Geslacht -Genderman=Man -Genderwoman=Vrouw -ViewList=List view -Mandatory=Mandatory -Hello=Hallo Sincerely=Met vriendelijke groeten DeleteLine=Verwijder lijn -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects ClassifyBilled=Wijzig Status naar "gefactureerd" -Progress=Voortgang -ClickHere=Klik hier -FrontOffice=Front office -BackOffice=Back office -View=View -Export=Export Exports=Exporten -ExportFilteredList=Export filtered list -ExportList=Export list -Miscellaneous=Diversen -Calendar=Kalender -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate -Fiscalyear=Boekjaar -# Week day -Monday=Maandag -Tuesday=Dinsdag -Wednesday=Woensdag -Thursday=Donderdag -Friday=Vrijdag -Saturday=Zaterdag -Sunday=Zondag -MondayMin=Mo -TuesdayMin=Tu -WednesdayMin=Wij -ThursdayMin=Th -FridayMin=Fr -SaturdayMin=Sa -SundayMin=Su -Day1=Maandag -Day2=Dinsdag -Day3=Woensdag -Day4=Donderdag -Day5=Vrijdag -Day6=Zaterdag -Day0=Zondag -ShortMonday=Ma -ShortTuesday=Di -ShortWednesday=Wo -ShortThursday=Do -ShortFriday=Vr -ShortSaturday=Za -ShortSunday=Zo -SelectMailModel=Selecteer e-mail template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. Select2NotFound=Geen resultaten gevonden -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=of meer karakters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
Select2LoadingMoreResults=Laden van meer resultaten... Select2SearchInProgress=Zoeken is aan de gang... SearchIntoThirdparties=Derde partijen -SearchIntoContacts=Contacten -SearchIntoMembers=Leden -SearchIntoUsers=Gebruikers SearchIntoProductsOrServices=Producten of diensten -SearchIntoProjects=Projecten -SearchIntoTasks=Taken SearchIntoCustomerInvoices=Klant facturen SearchIntoSupplierInvoices=Leverancier facturen SearchIntoCustomerOrders=Klant bestellingen -SearchIntoSupplierOrders=Leveranciersopdrachten SearchIntoCustomerProposals=Klant voorstellen SearchIntoSupplierProposals=Leverancier voorstellen -SearchIntoInterventions=Interventies -SearchIntoContracts=Contracten -SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Uitgaven rapporten -SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/nl_BE/other.lang b/htdocs/langs/nl_BE/other.lang index b1d06de55b8..ddba9731290 100644 --- a/htdocs/langs/nl_BE/other.lang +++ b/htdocs/langs/nl_BE/other.lang @@ -2,7 +2,6 @@ Notify_COMPANY_CREATE=Third party aangemaakt PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nHierbij vindt U de factuur __REF__\n\n__PERSONALIZED__Met oprechte groeten\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe willen U waarschuwen dat deze factuur __REF__ nog nog niet werd betaald. Hierbij kunt U, als herinnering, de factuur opnieuw terug vinden in bijlage .\n\n__PERSONALIZED__ met oprechte groeten\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nHierbij vindt U de prijs offerte __ASKREF__\n\n__PERSONALIZED__Met oprechte groeten\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nHierbij vindt U de factuur __REF__\n\n__PERSONALIZED__Met oprechte groeten\n\n__SIGNATURE__ FileIsTooBig=Bestanden zijn te groot WebsiteSetup=Setup van de module website diff --git a/htdocs/langs/nl_BE/products.lang b/htdocs/langs/nl_BE/products.lang index 70da9583209..4701b644959 100644 --- a/htdocs/langs/nl_BE/products.lang +++ b/htdocs/langs/nl_BE/products.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - products Reference=Artikelcode -ProductsOnSell=Beschikbaar voor verkoop ProductsNotOnSell=Niet beschikbaar voor verkoop ServicesNotOnSell=Geen diensten vatbaar voor verkoop OnSell=Te koop diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index ebcac1f50a5..e9b1ede8897 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -1,6 +1,6 @@ # Dolibarr language file - en_US - Accounting Expert -ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file -ACCOUNTING_EXPORT_DATE=Date format for export file +ACCOUNTING_EXPORT_SEPARATORCSV=Kolom separator voor export bestand +ACCOUNTING_EXPORT_DATE=Datumnotatie voor exportbestand ACCOUNTING_EXPORT_PIECE=Export the number of piece ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account ACCOUNTING_EXPORT_LABEL=Export label @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -86,10 +94,10 @@ IntoAccount=Bind line with the accounting account Ventilate=Bind LineId=Id line -Processing=Processing +Processing=verwerken EndProcessing=Process terminated. -SelectedLines=Selected lines -Lineofinvoice=Line of invoice +SelectedLines=Geselecteerde lijnen +Lineofinvoice=factuur lijn LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -126,43 +134,43 @@ ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold servi Doctype=Type of document Docdate=Date Docref=Reference -Code_tiers=Thirdparty +Code_tiers=Klant Labelcompte=Label account Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined FeeAccountNotDefined=Account for fee not defined BankAccountNotDefined=Account for bank not defined CustomerInvoicePayment=Payment of invoice customer -ThirdPartyAccount=Thirdparty account +ThirdPartyAccount=Klant account NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Natuur +AccountingJournalType1=Various operation +AccountingJournalType2=Verkopen +AccountingJournalType3=Aankopen +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Export @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index 3466e729f44..4e03bc776b3 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interne gebruikers ExternalUsers=Externe gebruikers GUISetup=Scherm SetupArea=Instellingenoverzicht +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulier waarmee bestandsupload kan worden getest (afhankelijk van de gekozen opties) IfModuleEnabled=Opmerking: Ja, is alleen effectief als module %s is geactiveerd RemoveLock=Verwijder, als het bestaat, het bestand %s om gebruik te kunnen maken van de updatetool. @@ -85,7 +86,7 @@ Mask=Masker NextValue=Volgende waarde NextValueForInvoices=Volgende waarde (facturen) NextValueForCreditNotes=Volgende waarde (creditnota's) -NextValueForDeposit=Volgende waarde (storting) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Volgende waarde (vervangingen) MustBeLowerThanPHPLimit=Opmerking: uw PHP instellingen beperken de groote van bestanduploads naar %s %s, ongeacht wat de waarde van de instelling binnen Dolibarr is NoMaxSizeByPHPLimit=Opmerking: Geen limiet ingesteld in uw PHP instellingen @@ -103,7 +104,7 @@ MenuIdParent=ID van het bovenliggende menu DetailMenuIdParent=ID van het bovenliggend menu (0 voor een hoogste menu) DetailPosition=Sorteren aantal te definiëren menupositie AllMenus=Alle -NotConfigured=Niet geconfigureerd +NotConfigured=Module/Application not configured Active=Actief SetupShort=Instellingen OtherOptions=Overige opties @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Duizend scheidingsteken Destination=Bestemming IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Instelling %s LocalisationDolibarrParameters=Localisatie-instellingen ClientTZ=Tijdzone van de klant (gebruiker) @@ -123,7 +123,8 @@ PHPTZ=Tijdzone binnen de PHP server DaylingSavingTime=Zomertijd (gebruiker) CurrentHour=Huidige tijd op server CurrentSessionTimeOut=Huidige sessietimeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Rechten BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Alleen elementen van ingeschakelde modules worden getoond. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Databasewachtwoord versleuteld opslaan in conf.p InstrucToEncodePass=Om je paswoord versleuteld (gecodeerd) te krijgen in dit bestand conf.php , vervang de regel
$dolibarr_main_db_pass="...";
door
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Om je paswoord gedecodeerd te verkrijgen in dit bestand conf.php, vervang de regel
$dolibarr_main_db_pass="crypted:...";
door
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Bescherming van gecreëerde PDF files. (Activering NIET aanbevolen, omdat dit de aanmaak van meerdere bestanden onmogelijk maakt) -ProtectAndEncryptPdfFilesDesc=Bescherming van PDF files, deze kunnen gelezen en afgedrukt worden met behulp van een PDF-lezer. Echter, het bewerken en kopiëren is niet meer mogelijk. Let op dat door het gebruik van deze functionaliteit, de bouw van een globale gecumuleerde pdf niet werkt (zoals bij onbetaalde facturen). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Functionaliteit DolibarrLicense=Licentie Developpers=Ontwikkelaars / mensen die bijgedragen hebben @@ -224,7 +225,9 @@ OfficialDemo=Online demonstratie van Dolibarr OfficialMarketPlace=Officiële markt voor externe modules / addons OfficialWebHostingService=Verwezen web hosting diensten (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Andere bronnen +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Documentatie voor gebruikers of ontwikkelaars kunt u inzien door
te kijken op de Dolibarr Wiki-pagina's:
%s ForAnswersSeeForum=Voor alle andere vragen / hulp, kunt u gebruik maken van het Dolibarr forum:
%s HelpCenterDesc1=Dit scherm kan u helpen om ondersteuning voor Dolibarr te krijgen. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Functionaliteit niet beschikbaar op Unix-achtige syst SubmitTranslation=Indien de vertaling voor deze taal nog niet volledig is of je vindt fouten, dan kan je dit verbeteren door de bestanden te editeren in de volgende directory langs/%s en stuur uw wijzigingen door naar www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module-instellingen -ModulesSetup=Instellingen van modules +ModulesSetup=Modules/Application setup ModuleFamilyBase=Systeem ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Huidige versie van Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Updateserver offline +WithCounter=Manage a counter GenericMaskCodes=U kunt elk gewenst maskernummer invoeren. In dit masker, kunnen de volgende tags worden gebruikt:
{000000} correspondeert met een nummer welke vermeerderd zal worden op elke %s. Voer zoveel nullen in als de gewenste lengte van de teller. De teller wordt aangevuld met nullen vanaf links zodat er zoveel nullen zijn als in het masker.
{000000+000} hetzelfde als voorgaand maar een offset corresponderend met het nummer aan de rechterkant van het + teken is toegevoegd startend op de eerste %s.
{000000@x} hetzelfde als voorgaande maar de teller wordt gereset naar nul, wanneer maand x is bereikt (x tussen 1 en 12). Als deze optie is gebruikt en x is 2 of hoger, dan is de volgorde {yy}{mm} of {yyyy}{mm} ook vereist.
{dd} dag (01 t/m 31).
{mm} maand (01 t/m 12).
{yy}, {yyyy} of {y} jaat over 2, 4 of 1 nummer(s).
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Alle andere karakters in het masker zullen intact blijven.
Spaties zijn niet toegestaan.
-GenericMaskCodes4a=Voorbeeld van de 99e %s van de Klant 'HetBedrijf' gedaan op 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Voorbeeld van een Klant gecreëerd op 2007-03-01:
GenericMaskCodes4c=Voorbeeld op product gemaakt op 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} geeft ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX geeft 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Geeft een aanpasbaar nummer volgens een gedefinieerd masker. ServerAvailableOnIPOrPort=Server is beschikbaar op het IP-adres %s met poort %s ServerNotAvailableOnIPOrPort=Server is niet beschikbaar op het IP-adres %s met poort %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Datum en uur Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefoon ExtrafieldPrice = Prijs ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Keuze lijst ExtrafieldSelectList = Kies uit tabel -ExtrafieldSeparator=Scheidingsteken +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Wachtwoord -ExtrafieldCheckBox=Aanvink-vak -ExtrafieldRadio=Radioknop -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link naar een object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Een parameterlijst heeft de waarden sleutel,waarde

bijvoorbeeld:
1,waarde1
2,waarde2
3,waarde3
...

ExtrafieldParamHelpradio=Lijst van parameters moet bestaan uit sleutel,waarde

bv:
1,waarde
2,waarde2
3,waarde3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=veld +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Gebruikers & groepen Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Factuur- en creditnotabeheer voor klanten. Factuurbeheer voor lever Module40Name=Leveranciers Module40Desc=Leveranciersbeheer (inkoopopdrachten en -facturen) Module42Name=Syslog -Module42Desc=logfaciliteiten met behulp van het 'syslog'-systeem +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editorbeheer Module50Name=Producten @@ -499,8 +521,8 @@ Module410Name=Webkalender Module410Desc=Integratie van een webkalender Module500Name=Speciale uitgaven Module500Desc=Beheer van bijzondere uitgaven (BTW, sociale of fiscale lasten, dividenden) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Lening Module520Desc=Het beheer van de leningen Module600Name=Kennisgevingen @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capaciteitconversie GeoIP Maxmind Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-bedrijf Module5000Desc=Hiermee kunt meerdere bedrijven beheren in Dolibarr Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Creëer / wijzig producten / diensten Permission34=Verwijderen producten / diensten Permission36=Exporteer producten / diensten Permission38=Export producten -Permission41=Lees projecten en taken (gedeeld project en project waarvan ik contactpersoon ben). Kan ook de gebruikte tijd invoeren op toegewezen taken (rooster). +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Verwijder projecten (Gedeelde projecten en projecten waarvoor ik de contactpersoon ben) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Bestel methodes DictionarySource=Oorsprong van offertes / bestellingen DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modellen voor rekeningschema +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Email documentensjablonen DictionaryUnits=Eenheden DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Instellingen opgeslagen +SetupNotSaved=Setup not saved BackToModuleList=Terug naar moduleoverzicht BackToDictionaryList=Terug naar de woordenboeken lijst VATManagement=BTW-beheer @@ -921,7 +947,7 @@ Host=Server DriverType=Drivertype SummarySystem=Samenvatting van systeeminformatie SummaryConst=Lijst van alle Dolibarr-instellingen -MenuCompanySetup=Bedrijf / Stichting +MenuCompanySetup=Company/Organisation DefaultMenuManager= standaard menuverwerker DefaultMenuSmartphoneManager=standaard smartphonemenuverwerker Skin=Uiterlijksthema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Standaard maximum lengte voor lijsten DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Bericht van de dag MessageLogin=Bericht op inlogpagina +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent zoekformulier in linker menu DefaultLanguage=Standaard te gebruiken taal (taal-code) EnableMultilangInterface=Inschakelen meertalige interface EnableShowLogo=Toon logo in het linker menu -CompanyInfo=Bedrijf / stichting informatie -CompanyIds=Bedrijf / stichting identiteiten +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Naam CompanyAddress=Adres CompanyZip=Postcode @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Getolereerde vertraging (in dagen) voor een kennisgevi Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Getolereerde vertraging (in dagen) voor de kennisgeving voor nog te doen cheques aanbetaling Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Andere menu-items beheren / optionele instellingen. LogEvents=Veiligheidsauditgebeurtenissen Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Lijst van Dolibarr veiligheidgebeurtenisen SecurityEventsPurged=Beveiliging gebeurtenissen verwijderd LogEventDesc=Hier kunt u de de gewenste veiligheidslogs in- of uitschakelen. Beheerders kunnen de inhoud ervan dan zien via het menu Home->Systeemwerkset->Audit. Waarschuwing, deze functionaliteit kan een grote hoeveelheid gegevens in de database wegschrijven. -AreaForAdminOnly=Deze functies kunnen alleen worden gebruikt door beheerders +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Systeeminformatie is technische informatie welke u in alleen-lezen modus krijgt en alleen door beheerders is in te zien. SystemAreaForAdminOnly=Dit scherm is alleen beschikbaar voor de beheerders. Andere Dolibarr gebruikers kunnen hier niets wijzigen. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Je moet minstens 1 module aktiveren ClassNotFoundIntoPathWarning=Classe %s niet gevonden in PHP pad YesInSummer=Ja in de zomer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Sessie opslag geencrypteerd door Suhosin ConditionIsCurrently=Voorwaarde is momenteel %s YouUseBestDriver=U gebruikt driver %s die momenteel meest geschikt is. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professionele Id unieke MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Een exportlink naar het %s formaat is beschikbaar onder de volgende link: %s ##### Invoices ##### BillsSetup=Facturenmodule instellen BillsNumberingModule=Nummeringsmodule voor facturen en creditnota's BillsPDFModules=Factuur documentsjablonen +PaymentsPDFModules=Payment documents models CreditNote=Creditnota CreditNotes=Creditnota's ForceInvoiceDate=Forceer factuurdatum naar validatiedatum @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache via server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache via browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Automatische detectie niet mogelijk +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Productenmoduleinstellingen ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Factuurdatum gebruiken Buy=Kopen Sell=Verkopen InvoiceDateUsed=Factuurdatum gebruiken -YourCompanyDoesNotUseVAT=Uw bedrijf is ingesteld als zijnde vrijgesteld van BTW (Home->Instellingen->Bedrijf / stichting), er zijn dus geen BTW opties in te stellen. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Boekhoudkundige afnemerscode AccountancyCodeBuy=Boekhoudkundige leverancierscode @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Stel automatisch deze status voor evenementen in zo AGENDA_DEFAULT_VIEW=Welk tabblad wilt u standaard openen bij het selecteren van menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup='Click-To-Dial' moduleinstellingen -ClickToDialUrlDesc=Aangeroepen URL wanneer er geklikt wordt op een telefoonicoontje. In de URL kunt u 'tags' gebruiken
__PHONETO__ zal vervangen worden met het telefoonnummer dat gebeld moet worden
__PHONEFROM__ zal worden vervangen met het telefoonnummer van de bellende persoon (uw telefoonnummer)
__LOGIN__ zal vervangen worden door uw 'Click-To-Dial'-accountgebruikersnaam (Zoals ingesteld op uw gebruikerskaartdetails
__PASS__ zal vervangen worden door uw "Click-To-Dial"-accountwachtwoord (Zoals ingesteld op uw gebruikerskaartdetails). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Algemene vertoonvolgorde BankOrderES=Spaans BankOrderESDesc=Spaanse vertoonvolgorde ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-Bedrijfmoduleinstellingen ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard om database backup dump bestand op te bouwen SomethingMakeInstallFromWebNotPossible=Installatie van externe module is niet mogelijk via de webinterface om de volgende reden: SomethingMakeInstallFromWebNotPossible2=Om deze reden, is het upgrade process hier beschreven alleen in handmatige stappen door een bevoorrechte gebruiker te doen. InstallModuleFromWebHasBeenDisabledByFile=Installeren van externe module van toepassing is uitgeschakeld door uw beheerder. Je moet hem vragen om het bestand %s te verwijderen om deze functie mogelijk te maken. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/nl_NL/agenda.lang b/htdocs/langs/nl_NL/agenda.lang index 8b093601644..8c67e47823a 100644 --- a/htdocs/langs/nl_NL/agenda.lang +++ b/htdocs/langs/nl_NL/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID gebeurtenis Actions=Acties Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agenda's LocalAgenda=Interne kalender ActionsOwnedBy=Actie gevraagd door @@ -47,6 +48,7 @@ InvoiceDeleteDolibarr=Factuur %s verwijderd InvoicePaidInDolibarr=Factuur %s gewijzigd naar betaald InvoiceCanceledInDolibarr=Factuur %s geannuleerd MemberValidatedInDolibarr=Lid %s gevalideerd +MemberModifiedInDolibarr=Lid %s gewijzigd MemberResiliatedInDolibarr=Lidmaatschap %s beëindigd MemberDeletedInDolibarr=Lid %s verwijderd MemberSubscriptionAddedInDolibarr=Abonnement voor lid %s toegevoegd @@ -74,6 +76,7 @@ ProposalDeleted=Voorstel verwijderd OrderDeleted=Bestelling verwijderd InvoiceDeleted=Factuur verwijderd ##### End agenda events ##### +AgendaModelModule=Document sjablonen voor evenement DateActionStart=Startdatum DateActionEnd=Einddatum AgendaUrlOptions1=U kunt ook de volgende parameters gebruiken om te filteren: diff --git a/htdocs/langs/nl_NL/compta.lang b/htdocs/langs/nl_NL/compta.lang index 4dc07f35e50..e0ac09c805b 100644 --- a/htdocs/langs/nl_NL/compta.lang +++ b/htdocs/langs/nl_NL/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Bedragen hier getoond worden berekend vol Param=Instellen RemainingAmountPayment=Bedrag betaling resteert: Account=Rekening -Accountparent=Hoofd rekening -Accountsparent=Hoofd rekeningen +Accountparent=Parent account +Accountsparent=Parent accounts Income=Inkomsten Outcome=Kosten ReportInOut=Opbrengsten / kosten @@ -56,6 +56,7 @@ MenuTaxAndDividends=Belastingen en dividenden MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Treasury- (schatkist) / boekhoudingsoverzicht NewPayment=Nieuwe betaling @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Het bevat alle effectieve betalingen van afnemersfacturen.
- Het is gebaseerd op de betaaldatum van deze facturen
-DepositsAreNotIncluded=- Storting facturen worden ook niet opgenomen -DepositsAreIncluded=- Storting facturen zijn opgenomen +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Verslag van derden IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Verkoopdagboek DescPurchasesJournal=Inkoopdagboek InvoiceRef=Factuur ref. CodeNotDef=Niet gedefinieerd -WarningDepositsNotIncluded=Deposito facturen worden niet opgenomen in deze versie met deze accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Betalingstermijn mag niet lager zijn dan de datum object. Pcg_version=Chart of accounts models Pcg_type=Boekhouding soort @@ -189,8 +190,10 @@ AccountancyJournal=Dagboek van financiële rekening ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Kloon het voor volgende maand @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/nl_NL/cron.lang b/htdocs/langs/nl_NL/cron.lang index a33f2824410..0e1bea43164 100644 --- a/htdocs/langs/nl_NL/cron.lang +++ b/htdocs/langs/nl_NL/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Taak CronNone=Geen CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Deactiveren CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Van @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/nl_NL/errors.lang b/htdocs/langs/nl_NL/errors.lang index b43b1ba0a06..eef726cce6f 100644 --- a/htdocs/langs/nl_NL/errors.lang +++ b/htdocs/langs/nl_NL/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Creëren van het bestand '%s' mislukt. ErrorFailToRenameDir=De map '%s' kon niet hernoemd worden naar '%s'. ErrorFailToCreateDir=Creëren van de map '%s' mislukt. ErrorFailToDeleteDir=Verwijderen van de map '%s' mislukt. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Deze contactpersoon is al ingesteld als een contactpersoon voor dit type. ErrorCashAccountAcceptsOnlyCashMoney=Dit is een kasrekening, dus deze accepteert alleen betalingen van het type kas. ErrorFromToAccountsMustDiffers=De bron- en doelrekening mogen niet dezelfde zijn. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Schrijven in de map %s mislukt ErrorFoundBadEmailInFile=Onjuist e-mail syntax gevonden voor %s regels in het bestand (bijvoorbeeld regel %s met email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Enkele verplichte velden zijn niet ingevuld. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Creëren van een map mislukt. Controleer of de Webservergebruiker toestemming heeft om te schrijven in Dolibarr documentenmap. Wanneer de parameter safe_mode is ingeschakeld in PHP, controleer dan dat de Dolibarr php bestanden eigendom zijn van de de webserve gebruiker (of groep). ErrorNoMailDefinedForThisUser=Geen e-mailadres ingesteld voor deze gebruiker ErrorFeatureNeedJavascript=Voor deze functie moet Javascript geactiveerd zijn. Verander dit in het Instellingen - scherm. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s gebruikt om web-server uit te voeren heeft geen toestemming voor die ErrorNoActivatedBarcode=Geen geactiveerde barcode soort ErrUnzipFails=uitpakken %s mislukt met ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Het bestand %s moet een Dolibarr zip-pakket zijn ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=De PHP CURL is niet geïnstalleerd, dit is van essentieel belang met Paypal te communiceren @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index 3937bd6d813..f8ecd5293a9 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s is niet gedefinieerd ErrorUnknown=Onbekende fout ErrorSQL=SQL fout ErrorLogoFileNotFound=Logobestand '%s' is niet gevonden -ErrorGoToGlobalSetup=Ga naar het instellingscherm 'Bedrijf / Stichting' om dit te corrigeren +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Ga naar Moduleinstellingen om dit te corrigeren ErrorFailedToSendMail=Mail versturen mislukt (afzender=%s, ontvanger=%s) ErrorFileNotUploaded=Bestand is niet geüploadet. Controleer of de grootte niet meer is dan maximaal toegestaan, of er vrije ruimte beschikbaar is op de schijf en of er niet al een bestand met dezelfde naam in deze map bestaat. @@ -153,6 +153,7 @@ Edit=Bewerken Validate=Valideer ValidateAndApprove=Valideren en goedkeuren ToValidate=Te valideren +NotValidated=Not validated Save=Opslaan SaveAs=Opslaan als TestConnection=Test verbinding @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Inloggen Setup=Instellingen Alert=Kennisgevingen +MenuWarnings=Kennisgevingen Previous=Vorige Next=Volgende Cards=Kaarten @@ -308,6 +310,7 @@ Copy=Kopiëren Paste=Plakken Default=Standaard DefaultValue=Standaardwaarde +DefaultValues=Default values Price=Prijs UnitPrice=Eenheidsprijs UnitPriceHT=Eenheidsprijs (netto) @@ -363,7 +366,8 @@ VATRate=BTW-tarief Average=Gemiddeld Sum=Som Delta=Variantie -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Optie List=Lijstoverzicht FullList=Volledig overzicht @@ -387,7 +391,7 @@ ActionRunningNotStarted=Niet gestart ActionRunningShort=In progress ActionDoneShort=Uitgevoerd ActionUncomplete=Onvolledig -CompanyFoundation=Bedrijf of instelling +CompanyFoundation=Company/Organisation ContactsForCompany=Bedrijfscontacten ContactsAddressesForCompany=Contacten / adressen voor deze relatie AddressesForCompany=Adressen voor deze relatie @@ -405,8 +409,9 @@ Generate=Genereer Duration=Duur TotalDuration=Totale duur Summary=Samenvatting -DolibarrStateBoard=Statistieken -DolibarrWorkBoard=Actieoverzicht +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Beschikbaar NotYetAvailable=Nog niet beschikbaar NotAvailable=Niet beschikbaar @@ -434,7 +439,7 @@ Reportings=Rapportage Draft=Concept Drafts=Concepten Validated=Gevalideerd -Opened=Geopend +Opened=Open New=Nieuw Discount=Korting Unknown=Onbekend @@ -453,6 +458,7 @@ NextStep=Volgende stap Datas=Gegevens None=Geen NoneF=Geen +NoneOrSeveral=None or several Late=Vertraagd LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Afbeelding @@ -606,7 +612,8 @@ PartialWoman=Gedeeltelijke TotalWoman=Totaal NeverReceived=Nooit ontvangen Canceled=Geannuleerd -YouCanChangeValuesForThisListFromDictionarySetup=U kunt waarden voor deze lijst wijzigen via menu-instellingen - woordenboek +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Kleur Documents=Gekoppelde bestanden @@ -642,6 +649,7 @@ FreeLineOfType=Vrije ingave van type CloneMainAttributes=Kloon het object met de belangrijkste kenmerken PDFMerge=Voeg PDF samen Merge=Samenvoegen +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Toon printervriendelijke pagina MenuManager=Standaard menuverwerker WarningYouAreInMaintenanceMode=Let op, u bevind zich in de onderhoudmodus, dus alleen de login %s is gemachtigd om de applicatie op dit moment te gebruiken. @@ -708,6 +716,7 @@ from=van toward=richting Access=Toegang SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Gebruik Ctrl + C om te kopiëren naar het klembord SaveUploadedFileWithMask=Sla het bestand op de server met de naam "%s" (anders "%s") OriginFileName=Oorspronkelijke bestandsnaam @@ -718,7 +727,7 @@ ViewPrivateNote=Notities bekijken XMoreLines=%s regel(s) verborgen PublicUrl=Openbare URL AddBox=Box toevoegen -SelectElementAndClickRefresh=Selecteer een element en klik op nernieuwen +SelectElementAndClick=Select an element and click %s PrintFile=Bestand afdrukken %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Ga naar Home - Setup - Bedrijf om logo te wijzigen of ga naar Home - Instellingen - Scherm om te verbergen. @@ -734,8 +743,8 @@ Hello=Hallo Sincerely=Oprecht DeleteLine=Verwijderen regel ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Boekjaar +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Maandag Tuesday=Dinsdag @@ -817,5 +835,3 @@ SearchIntoContracts=Contracten SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Onkostennota's SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index 4b4627f0eac..399d30b445d 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Geboortedatum BirthdayAlertOn=Verjaardagskennisgeving actief BirthdayAlertOff=Verjaardagskennisgeving inactief +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Interventie gevalideerd Notify_FICHINTER_SENTBYMAIL=Interventie via mail verzonden @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Dit is een test e-mail (het woord test moet vetged PredefinedMailContentSendInvoice=Geachte __CONTACTCIVNAME__,\n\nGraag verwijzen wij u naar de bijlage van dit e-mail bericht, hierin treft u onze factuur met nummer __REF__ aan. Het PDF-bestand in de bijlage kunt u openen met Adobe Reader.\nMet vriendelijke groeten, PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__Hierbij sturen wij u de offerte __PROPREF__\n\n__PERSONALIZED__Met vriendelijke groeten,\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Hierbij sturen wij u de opdracht __ORDERREF__ __PERSONALIZED__Met vriendelijke groeten, __SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Hierbij sturen wij u de opdracht __ORDERREF__ __PERSONALIZED__Met vriendelijke groeten, __SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__ Hierbij sturen wij u de factuur __FACREF__ __PERSONALIZED__Met vriendelijke groeten, __SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Hier vindt u de verzendkosten __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Hier vindt u de tussenkomst __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE_ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
%s is een gegeven afhankelijk van het land.
Voor land %s, is de code bijvoorbeeld %s. DolibarrDemo=Dolibarr ERP / CRM demonstratie -StatsByNumberOfUnits=Statistieken van het aantal producten / diensten -StatsByNumberOfEntities=Statistieken van het aantal verwijzende eenheden -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=De interventie %s is gevalideerd EMailTextInvoiceValidated=De factuur %s is gevalideerd diff --git a/htdocs/langs/nl_NL/projects.lang b/htdocs/langs/nl_NL/projects.lang index 1279279b1d3..6f999eac8eb 100644 --- a/htdocs/langs/nl_NL/projects.lang +++ b/htdocs/langs/nl_NL/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Iedereen PrivateProject=Projectcontacten +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Alle projecten MyProjectsDesc=Deze weergave is beperkt tot projecten waarvoor u een contactpersoon bent (ongeacht het type). ProjectsPublicDesc=Deze weergave toont alle projecten waarvoor u gerechtigd bent deze in te zien. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Deze weergave toont alle projecten en taken (Uw gebruikersrechten staa AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nieuw project AddProject=Nieuw project DeleteAProject=Project verwijderen DeleteATask=Taak verwijderen ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Toon project SetProject=Stel project in NoProject=Geen enkel project gedefinieerd of in eigendom NbOfProjects=Aantal projecten +NbOfTasks=Nb of tasks TimeSpent=Bestede tijd TimeSpentByYou=Uw tijdsbesteding TimeSpentByUser=Gebruikers tijdsbesteding @@ -47,9 +52,9 @@ TaskTimeSpent=Tijd besteed aan taken TaskTimeUser=Gebruiker TaskTimeNote=Notitie TaskTimeDate=Datum -TasksOnOpenedProject=Taken op geopende projecten +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload niet gedefinieerd -NewTimeSpent=Nieuwe bestede tijd +NewTimeSpent=Bestede tijd MyTimeSpent=Mijn bestede tijd Tasks=Taken Task=Taak @@ -59,6 +64,7 @@ TaskDescription=Taakomschrijving NewTask=Nieuwe taak AddTask=Nieuwe taak AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activiteit Activities=Taken / activiteiten MyActivities=Mijn taken / activiteiten @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Lijst van aan het project verbonden contracten +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lijst van aan het project verbonden interventies ListExpenseReportsAssociatedProject=Lijst van onkostennota's in verband met het project ListDonationsAssociatedProject=Lijst van donaties in verband met het project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projectcontacten ActionsOnProject=Acties in het project YouAreNotContactOfProject=U bent geen contactpersoon van dit privé project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Verwijder gespendeerde tijd ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Bekijk ook taken niet aan mij toegewezen @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projecten gewijd aan deze derde partij NoTasks=Geen taken voor dit project LinkedToAnotherCompany=Gekoppeld aan een andere derde partij -TaskIsNotAffectedToYou=Taak niet aan u toegewezen +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Gespendeerde tijd is leeg ThisWillAlsoRemoveTasks=Deze actie zal ook alle taken van het project (%s taken op het moment) en alle ingangen van de tijd doorgebracht. IfNeedToUseOhterObjectKeepEmpty=Als sommige objecten (factuur, order, ...), die behoren tot een andere derde, moet worden gekoppeld aan het project te maken, houden deze leeg naar het project dat met meerdere derden. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per dag InputPerWeek=Input per week InputPerAction=Input per actie -TimeAlreadyRecorded=Tijd besteed reeds opgenomen voor deze taak / dag en gebruiker %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index 21ed2c370e3..52677424e4e 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -21,32 +21,36 @@ JournalFinancial=Dzienniki finansowe BackToChartofaccounts=Powrót planu kont Chartofaccounts=Plan kont CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign +AssignDedicatedAccountingAccount=Nowe konto do przypisania InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? -AccountancyArea=Accountancy area +AccountancyArea=Obszar księgowości AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=Następujące akcje są wykonywane zwykle tylko raz lub raz w roku... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=Następujące akcje są wykonywane zwykle każdego miesiąca, tygodnia lub dnia dla naprawdę wielkich firm... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Dodaj konto księgowe AccountAccounting=Konto księgowe AccountAccountingShort=Konto +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -64,16 +72,16 @@ MenuTaxAccounts=Tax accounts MenuExpenseReportAccounts=Expense report accounts MenuLoanAccounts=Loan accounts MenuProductsAccounts=Product accounts -ProductsBinding=Products accounts +ProductsBinding=Konta produktów Ventilation=Binding to accounts CustomersVentilation=Powiązania do faktury klienta SuppliersVentilation=Powiązania do faktury dostawcy ExpenseReportsVentilation=Expense report binding CreateMvts=Utwórz nową transakcję UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Księga główna -AccountBalance=Account balance +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger +AccountBalance=Bilans konta CAHTF=Total sprzedaży dostawcy przed opodatkowaniem TotalExpenseReport=Total expense report @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Długość kont księgowych kontrahenta -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Dziennik sprzedaży @@ -114,9 +122,9 @@ ACCOUNTING_MISCELLANEOUS_JOURNAL=Dziennik różnic ACCOUNTING_EXPENSEREPORT_JOURNAL=Dziennik raportów kosztowych ACCOUNTING_SOCIAL_JOURNAL=Czasopismo Społecznego -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Konto księgowe dla przelewów +ACCOUNTING_ACCOUNT_SUSPENSE=Konto księgowe dla oczekujących +DONATION_ACCOUNTINGACCOUNT=Konto księgowe dla zarejestrowanych dotatcji ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) @@ -132,21 +140,21 @@ Sens=Sens Codejournal=Dziennik NumPiece=ilość sztuk TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Dziennik finansów ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Dziennik finansów zawiera wszystkie typy płatności wykonane przez konto bankowe -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +VATAccountNotDefined=Konto dla niezdefiniowanego VATu +ThirdpartyAccountNotDefined=Konto dla niezdefiniowanego kontrahenta ProductAccountNotDefined=Account for product not defined FeeAccountNotDefined=Account for fee not defined BankAccountNotDefined=Account for bank not defined @@ -156,13 +164,13 @@ NewAccountingMvt=Nowa transakcja NumMvts=Numero of transaction ListeMvts=Lista ruchów ErrorDebitCredit=Debetowych i kredytowych nie może mieć wartość w tym samym czasie - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=Lista kont kontrahentów DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Lista kont księgowych Pcgtype=Klasa konta -Pcgsubtype=W ramach klasy uwagę +Pcgsubtype=Subclass of account TotalVente=Łączny obrót przed opodatkowaniem TotalMarge=Całkowita marża sprzedaży @@ -171,7 +179,7 @@ DescVentilCustomer=Consult here the list of customer invoice lines bound (or not DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account DescVentilTodoCustomer=Powiąż pozycje faktury aktualnie nie związane z kontem księgowym produktu -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +ChangeAccount=Zmień konto księgowe dla zaznaczonych produktów/usług na następujące konto księgowe: Vide=- DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account DescVentilDoneSupplier=Skonsultuj się tutaj listę linii dostawcy faktur i ich koncie księgowym @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Błąd, nie można usunąc tego konta księgowego, ponieważ jest w użyciu MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=Brak zapisanych nowych rekordów +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Natura +AccountingJournalType1=Various operation +AccountingJournalType2=Sprzedaż +AccountingJournalType3=Zakupy +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksporty @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index ee430d88d8d..e3cd4ac1dea 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -28,7 +28,7 @@ SessionId=ID sesji SessionSaveHandler=Asystent zapisu sesji SessionSavePath=Lokalizacja sesji danych PurgeSessions=Czyszczenie sesji -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +ConfirmPurgeSessions=Czy na pewno chcesz usunąć wszystkie sesje? Spowoduje to odłączenie każdego użytkownika (oprócz ciebie). NoSessionListWithThisHandler=Asystent zapisu sesji skonfigurowany w PHP nie zezwala na wyświetlenie wszystkich aktywnych sesji. LockNewSessions=Zablokuj nowe połączenia ConfirmLockNewSessions=Czy na pewno chcesz ograniczyć wszelkie nowe połączenie Dolibarr do siebie. Tylko %s użytkownik będzie mógł się połączyć po tym. @@ -48,6 +48,7 @@ InternalUsers=Wewnętrzni użytkownicy ExternalUsers=Zewnetrzni użytkownicy GUISetup=Wyświetlanie SetupArea=Dział konfiguracji +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formularz do wysyłania pliku testowego (według konfiguracji) IfModuleEnabled=Uwaga: tak jest skuteczne tylko wtedy, gdy moduł %s jest aktywny RemoveLock=Usuń plik %s, jeśli istnieje, aby umożliwić aktualizację narzędzia. @@ -64,8 +65,8 @@ ErrorCodeCantContainZero=Kod nie może zawierać wartości "0" DisableJavascript=Wyłącz funkcje JavaScript i Ajax (rekomendowane dla osób niewidomych oraz przeglądarek tekstowych) UseSearchToSelectCompanyTooltip=Także jeśli masz dużą liczbę osób trzecich (> 100 000), można zwiększyć prędkość przez ustawienie stałej COMPANY_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha. UseSearchToSelectContactTooltip=Także jeśli masz dużą liczbę osób trzecich (> 100 000), można zwiększyć prędkość przez ustawienie stałej CONTACT_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) +DelaiedFullListToSelectCompany=Poczekaj na kliknięcia na przycisk przed załadowaniem zawartości do listy kontrahentów (opcja może zwiększyć wydajność jeżeli masz dużą ilość kontrahentów, ale zmniejszy wygodę użytkowania) +DelaiedFullListToSelectContact=Poczekaj na kliknięcia na przycisk przed załadowaniem zawartości do listy kontaktów (opcja może zwiększyć wydajność jeżeli masz dużą ilość kontrahentów, ale zmniejszy wygodę użytkowania) NumberOfKeyToSearch=Liczba znaków do wyszukiwania: %s NotAvailableWhenAjaxDisabled=Niedostępne kiedy Ajax nie działa AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party @@ -85,7 +86,7 @@ Mask=Maska NextValue=Następna wartość NextValueForInvoices=Następna wartość (faktury) NextValueForCreditNotes=Następna wartość (not kredytowych) -NextValueForDeposit=Następny wartości (depozyt) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Następna wartość (zamienniki) MustBeLowerThanPHPLimit=Uwaga: twoj PHP ogranicza rozmiar każdego uploadowanego pliku do %s %s, niezależnie od wartości tego parametru NoMaxSizeByPHPLimit=Uwaga: Brak ustawionego limitu w twojej konfiguracji PHP @@ -97,13 +98,13 @@ AntiVirusParam= Więcej parametrów w linii poleceń AntiVirusParamExample= Przykład dla ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Konfiguracja modułu rachunkowości UserSetup=Zarządzanie konfiguracją użytkowników -MultiCurrencySetup=Multi-currency setup +MultiCurrencySetup=Konfiguracja multi-walut MenuLimits=Granice i dokładność MenuIdParent=ID Rodzica menu DetailMenuIdParent=ID menu rodzica (pusty dla górnego menu) DetailPosition=Sortuj numer do zdefiniowania pozycji menu AllMenus=Wszyscy -NotConfigured=Moduł nie skonfigurowano +NotConfigured=Module/Application not configured Active=Aktywne SetupShort=Konfiguracja OtherOptions=Inne opcje @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separator tysięczny Destination=Miejsce przeznaczenia IdModule=Identyfikator modułu IdPermissions=Uprawnienia ID -Modules=Moduły LanguageBrowserParameter=Parametr %s LocalisationDolibarrParameters=Parametry lokalizacji ClientTZ=Strefa Czasowa Klienta (użytkownik) @@ -123,14 +123,15 @@ PHPTZ=Strefa czasowa serwera PHP DaylingSavingTime=Czas letni (użytkownik) CurrentHour=Aktualna godzina CurrentSessionTimeOut=Obecna sesja wygasła -YouCanEditPHPTZ=Aby ustawić inną strefę czasową PHP (nie jest wymagany), można spróbować dodać .htacces plików z linii jak ten "Setenv TZ Europe / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widżet Boxes=Widżety MaxNbOfLinesForBoxes=Maks. ilość linii dla widgetów PositionByDefault=Domyślny porządek Position=Pozycja MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenusEditorDesc=Edytor menu pozwala CI na ustawienie własnych pozycji w menu. Używaj go ostrożnie, aby zapobiec destabilizacji i całkowitej niedostępności pozycji menu.
Niektóre moduły i pozycje menu (w menu Wszystkie w większości). jeżeli usuniesz niektóe z tych pozycji przez pomyłkę, możesz je przywrócić wyłączając i ponownie włączając moduł. MenuForUsers=Menu dla użytkowników LangFile=Plik. Lang System=System @@ -141,13 +142,13 @@ Purge=Czyszczenie PurgeAreaDesc=Ta strona pozwala Ci na usunięcie wszystkich plików wygenerowanych lub zapisanych przesz Dolibarr (tymczasowe pliki lub wszystkie pliki w folderze %s). Używanie tej opcji nie jest konieczne. Opcja ta jest dostarczana jako obejście dla użytkowników, których Dolibarr jest obsługiwany przez operatora, który nie oferuje możliwości usuwania plików generowanych przez serwer WWW. PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) PurgeDeleteTemporaryFiles=Usuń wszystkie pliki tymczasowe (nie utracisz danych) -PurgeDeleteTemporaryFilesShort=Delete temporary files +PurgeDeleteTemporaryFilesShort=Usuń pliki tymczasowe PurgeDeleteAllFilesInDocumentsDir=Usuń wszystkie pliki w katalogu %s. Pliki tymczasowe, jak również kopie zapasowe baz danych oraz pliki dołączone do elementów (kontrahencji, faktury ...) i przesłane do modułu ECM zostaną usunięte. PurgeRunNow=Czyść teraz PurgeNothingToDelete=Brak katalogu lub plików do usunięcia. PurgeNDirectoriesDeleted= %s pliki lub katalogi usunięte. PurgeAuditEvents=Czyść wszystkie wydarzenia -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=Czy jesteś pewien, że chcesz usunąć wszystkie zdarzenia związane z bezpieczeństwem? Wszystkie logo związane z bezpieczeństwem zostaną usunięte. Inne dane nie zostaną usunięte. GenerateBackup=Generowanie kopii zapasowej Backup=Kopia zapasowa Restore=Przywróć @@ -189,14 +190,14 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Uprawnienia BoxesDesc=Widgety są komponentami pokazującymi pewne informacje, które możesz dodać w celu spersonalizowania niektórych stron. Możesz wybrać pomiędzy pokazaniem wigetu lub nie poprzez wybranie docelowej strony i kliknięcie "Aktywacja", lub poprzez kliknięcie na kosz w celu wyłączenia go. OnlyActiveElementsAreShown=Tylko elementy z aktywnych modułów są widoczne. -ModulesDesc=Moduły Dolibarr określają funkcjonalności które są włączone w oprogramowaniu. Niektóre moduły wymagają pozwoleń, które musisz przyznać użytkownikom po włączeniu modułu. Kliknij na przycisk on/off w celu włączenia modułu. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Możesz znaleźć więcej modułów do pobrania na zewnętrznych stronach internetowych... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Znajdź dodatkowe moduły... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, oficjalny kanał dystrybucji zewnętrznych modułów Dolibarr ERP / CRM DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) -WebSiteDesc=Reference websites to find more modules... +WebSiteDesc=Powiązane strony z modułami... URL=Łącze BoxesAvailable=Dostępne widgety BoxesActivated=Widgets activated @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Hasło bazy danych zakodowane w conf.php InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Ochrona generowanych plików PDF (Aktywowany nie jest zalecany, przerwa masowe generowanie plików pdf) -ProtectAndEncryptPdfFilesDesc=Ochrona dokument PDF udostępnia go do odczytu i druku z wykorzystaniem dowolnej przeglądarki plików PDF. Jednakże, edycja i kopiowanie nie jest już możliwe. Należy pamiętać, że korzystając z tej funkcji, budowa globalnego, skumulowanego pliku PDF nie jest możliwa (np. zestawienie niezapłaconych faktur). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funkcja DolibarrLicense=Licencja Developpers=Programiści / Współpracownicy @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Oficjalne miejsce dystrybucji zewnętrznych modułów / dodatków OfficialWebHostingService=Opisywane usługi hostingowe (Cloud hosting) ReferencedPreferredPartners=Preferowani Partnerzy -OtherResources=Zasoby autres +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Aby zapoznać się z dokumentacją użytkownika lub dewelopera (Doc, FAQ ...),
zajrzyj do Dolibarr Wiki:
%s ForAnswersSeeForum=Aby znaleźć odpowiedzi na pytania / uzyskać dodatkową pomoc, możesz skorzystać z forum Dolibarr :
%s HelpCenterDesc1=Obszar ten może pomóc w uzyskaniu wsparcia dla usługi Dolibarr. @@ -256,7 +259,7 @@ MAIN_MAIL_SENDMODE=Metoda używana do wysłania E-maili MAIN_MAIL_SMTPS_ID=Identyfikator SMTP, jeżeli wymaga uwierzytelniania MAIN_MAIL_SMTPS_PW=Hasło SMTP , jeżeli wymagane uwierzytelniania MAIN_MAIL_EMAIL_TLS= Użyj szyfrowania TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt +MAIN_MAIL_EMAIL_STARTTLS= Użyj szyfrowania TLS (STARTTLS) MAIN_DISABLE_ALL_SMS=Wyłącz wysyłanie wszystkich SMS (do celów badawczych lub testowych) MAIN_SMS_SENDMODE=Metoda służy do wysyłania wiadomości SMS MAIN_MAIL_SMS_FROM=Nadawca domyślny numer telefonu wysyłaniu SMS-ów @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Cechy te nie są dostępne w systemach Unix, takich j SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduł konfiguracji -ModulesSetup=Moduły konfiguracji +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Zarządzanie relacjami z klientem (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Aktualna wersja Dolibarr CallUpdatePage=Przejdź na stronę, która pomoże w zaktualizować strukturę bazy danych i dane: %s. LastStableVersion=Ostatnia stabilna wersja LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Aktualizacja serwera nieaktywny +WithCounter=Manage a counter GenericMaskCodes=Można wpisać dowolną maskę numeracji. W tej masce, może stosować następujące tagi:
{000000} odpowiada liczbie, która jest zwiększona w każdym% s. Wprowadzić dowolną liczbę zer jako żądaną długość licznika. Licznik zostaną zakończone zerami z lewej, aby mieć jak najwięcej zer jak maski.
{000000 + 000} sama jak poprzednia, ale przesunięciem odpowiadającym numerem, na prawo od znaku + odnosi się począwszy od pierwszego% s.
{000000} @ x, ale sama jak poprzednia licznik jest wyzerowany, gdy miesiąc osiągnięciu x (x od 1 do 12 lub ​​0 do korzystania pierwszych miesiącach roku podatkowego określone w konfiguracji, lub 99 do wyzerowany co miesiąc ). Jeśli opcja ta jest używana, a x jest 2 lub więcej, wymagana jest również to ciąg {rr} {mm} lub {rrrr} {mm}.
{Dd} dni (01 do 31).
{Mm} miesięcy (01 do 12).
{Rr}, {rrrr} lub {r} roku ponad 2, 4 lub 1 liczb.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Wszystkie inne znaki w masce pozostaną nienaruszone.
Spacje są niedozwolone.
-GenericMaskCodes4a=Przykład na 99-cie %s strony trzeciej TheCompany utworzony 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Przykład kontrahenta utworzonego w dniu 2007-03-01:
GenericMaskCodes4c=Przykład produktu utworzony 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} wygeneruje ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX wygeneruje 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Zwraca numer wysyłki zgodnie z zdefiniowaną maską ServerAvailableOnIPOrPort=Serwer dostępny jest pod adresem %s na porcie %s ServerNotAvailableOnIPOrPort=Serwer nie jest dostępna pod adresem %s na porcie %s @@ -351,14 +357,14 @@ PDFAddressForging=Zasady złączania pól adresowych HideAnyVATInformationOnPDF=Ukryj wszystkie informacje dotyczące podatku VAT w wygenerowanym pliku PDF HideDescOnPDF=Ukryj opis produktów w wygenerowanych plikach PDF HideRefOnPDF=Ukryj numer referencyjny produktów w generowanych plikach PDF -HideDetailsOnPDF=Hide product lines details on generated PDF +HideDetailsOnPDF=Ukryj linię z szczegółami produktu w generowanym pliku PDF PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position Library=Biblioteka UrlGenerationParameters=Parametry do zabezpiecznie adresu URL SecurityTokenIsUnique=Użyj unikalnego klucza zabezpieczeń dla każdego adresu EnterRefToBuildUrl=Wprowadź odwołanie do obiektu %s GetSecuredUrl=Pobierz obliczony adres URL -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Ukryj przyciski dla użytkowników nie będących administratorami zamiast pokazywać szare wyłączone przyciski OldVATRates=Poprzednia stawka VAT NewVATRates=Nowa stawka VAT PriceBaseTypeToChange=Zmiana dla cen opartych na wartości referencyjnej ustalonej na @@ -369,19 +375,21 @@ Int=Liczba całkowita Float=Liczba zmiennoprzecinkowa DateAndTime=Data i godzina Unique=Unikalny -Boolean=Typ logiczny (pole wyboru) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena ExtrafieldMail = Adres e-mail ExtrafieldUrl = Url ExtrafieldSelect = Wybierz listę ExtrafieldSelectList = Wybierz z tabeli -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Hasło -ExtrafieldCheckBox=Pole wyboru -ExtrafieldRadio=Przełącznik -ExtrafieldCheckBoxFromList= Pole z tabeli +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link do obiektu +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parametry lista musi tak być, wartość klucza

Na przykład:
1, wartosc1
2, wartość2
3, wartość3
... ExtrafieldParamHelpradio=Parametry lista musi tak być, wartość klucza

Na przykład:
1, wartosc1
2, wartość2
3, wartość3
... @@ -397,7 +405,7 @@ RefreshPhoneLink=Odśwież link LinkToTest=Klikalny link wygenerowany dla użytkownika% s (kliknij numer telefonu, aby sprawdzić) KeepEmptyToUseDefault=Zostaw puste by używać domyślnych wartości DefaultLink=Domyślny link -SetAsDefault=Set as default +SetAsDefault=Ustaw jako domyślny ValueOverwrittenByUserSetup=Uwaga, ta wartość może być zastąpiona przez specyficzną konfiguracją użytkownika (każdy użytkownik może ustawić własny clicktodial url) ExternalModule=Moduł zewnętrzny - Zainstalowane w katalogu% s BarcodeInitForThirdparties=Masowa inicjalizacja kodów kreskowych dla kontrahentów @@ -405,15 +413,15 @@ BarcodeInitForProductsOrServices=Masowe generowanie kodów lub reset kodów kres CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. InitEmptyBarCode=Generuj wartość dla kolejnych %s pustych wpisów EraseAllCurrentBarCode=Usuń wszystkie aktualne kody kreskowe -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=Wszystkie wartości zostały usunięte z kodem kreskowym +ConfirmEraseAllCurrentBarCode=Jesteś pewien, że chcesz usunąć wszystkie aktualne wartości kodów kreskowych? +AllBarcodeReset=Wszystkie wartości kodów kreskowych zostały usunięte NoBarcodeNumberingTemplateDefined=Nie szablonu numeracji kodów kreskowych włączona w konfiguracji modułu kodów kreskowych. EnableFileCache=Włącz cache plików -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). +ShowDetailsInPDFPageFoot=Dodaj więcej szczegółów w stopce dokumentów PDF takich jak adres twojej firmy lub dane menadżerów (w celu dodatnia numeru REGON, kapitału zakładowego i numeru NIP) NoDetails=No more details in footer -DisplayCompanyInfo=Display company address +DisplayCompanyInfo=Wyświetl adres firmy DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names +DisplayCompanyInfoAndManagers=Wyświetl adres firmy i dane menadżerów EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. ModuleCompanyCodeAquarium=Zwrócić rachunkowych kod zbudowany przez %s, a następnie trzeciej dostawcy kod dostawcy rachunkowych kod i %s, a następnie trzeciej klienta kodu dla klienta rachunkowych kodu. ModuleCompanyCodePanicum=Wróć pusty rachunkowych kodu. @@ -422,9 +430,23 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Pole +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Użytkownicy i grupy -Module0Desc=Users / Employees and Groups management +Module0Desc=Zarządzanie Użytkownikami/Pracownikami i Grupami Module1Name=Kontrahenci Module1Desc=Zarządzanie firmami oraz kontaktami (klienci, prospekty...) Module2Name=Reklama @@ -444,7 +466,7 @@ Module30Desc=Zarządzanie fakturami oraz notami kredytowymi klientów. Zarządza Module40Name=Dostawcy Module40Desc=Zarządzanie dostawcami oraz zakupami (zamówienia i faktury) Module42Name=Syslog -Module42Desc=Rejestrowanie urządzenia (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Edytory Module49Desc=Zarządzanie edytorem Module50Name=Produkty @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Integracja Webcalendar Module500Name=Special expenses Module500Desc=Zarządzanie kosztami specjalnymi (podatki, opłaty ZUS, dywidendy) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Pożyczka Module520Desc=Zarządzanie kredytów Module600Name=Powiadomienia @@ -520,12 +542,12 @@ Module1520Desc=Dokument poczty masowej generacji Module1780Name=Tagi / Kategorie Module1780Desc=Tworzenie tagów / kategorii (produktów, klientów, dostawców, kontaktów lub członków) Module2000Name=Edytor WYSIWYG -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) +Module2000Desc=Pozwól na edycję niektórych pól tekstowych z użyciem zaawansowanego edytora (bazującego na CKEditor) Module2200Name=Dynamiczne Ceny Module2200Desc=Włącz użycie wyrażeń matematycznych dla cen Module2300Name=Cron Module2300Desc=Zaplanowane zarządzanie zadaniami -Module2400Name=Events/Agenda +Module2400Name=Wydarzenia/Agenda Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. Module2500Name=Zarządzanie zawartością elektroniczną (ECM) Module2500Desc=Zapisz i udostępnij dokumenty @@ -542,13 +564,15 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Możliwości konwersji GeoIP Maxmind Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HR -Module4000Desc=Zarządzanie zasobami ludzkimi +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Pozwala na zarządzanie wieloma firmami Module6000Name=Workflow Module6000Desc=Zarządzania przepływem pracy -Module10000Name=Websites +Module10000Name=Strony internetowe Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. Module20000Name=Zarządzanie "Pozostaw Żądanie" Module20000Desc=Zadeklaruj oraz nadzoruj wnioski pracowników dotyczące wyjść z pracy @@ -557,7 +581,7 @@ Module39000Desc=Partia lub numer seryjny, zarządzanie według daty ważności l Module50000Name=Paybox Module50000Desc=Moduł oferujący płatność online za pomocą karty kredytowej z Paybox Module50100Name=Punkt sprzedaży -Module50100Desc=Point of sales module (POS). +Module50100Desc=Punkty sprzedaży (POS) Module50200Name=Paypal Module50200Desc=Moduł oferujący płatność online za pomocą karty kredytowej z Paypal Module50400Name=Rachunkowość (zaawansowane) @@ -591,10 +615,10 @@ Permission32=Tworzenie / modyfikacja produktów Permission34=Usuwanie produktów Permission36=Podejrzyj / zarządzaj ukrytymi produktami Permission38=Eksport produktów -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission42=Twórz/modyfikuj projekty (projekty udostępnione i projekty dla których jestem kontaktem). Można tworzyć zadania i przypisywać użytkowników to projektów i zadań Permission44=Usuwanie projektów (projekty współdzielone oraz projekty, w których biorę udział) -Permission45=Export projects +Permission45=Eksportuj projekty Permission61=Czytaj interwencje Permission62=Tworzenie / modyfikacja interwencji Permission64=Usuwanie interwencji @@ -648,7 +672,7 @@ Permission162=Tworzenie / modyfikacja umowy / subskrypcji Permission163=Aktywacja usługi / subskrypcji umowy Permission164=Wyłączanie usługi / subskrypcji umowy Permission165=Usuń umowy / subskrypcje -Permission167=Export contracts +Permission167=Eksportuj kontrakty Permission171=Read trips and expenses (yours and your subordinates) Permission172=Tworzenie / modyfikacja wyjazdów i kosztów Permission173=Usuń wyjazdy i wydatki @@ -745,7 +769,7 @@ Permission701=Zobacz darowizny Permission702=Tworzenie / modyfikacja darowizn Permission703=Usuń darowizny Permission771=Read expense reports (yours and your subordinates) -Permission772=Tworzenie / modyfikacja raportów wydatków +Permission772=Tworzenie/modyfikacja raportów kosztów Permission773=Usuń raporty wydatków Permission774=Przeczytaj wszystkie raporty wydatków (nawet dla użytkowników nie podwładni) Permission775=Zatwierdzanie raportów wydatków @@ -844,12 +868,14 @@ DictionaryOrderMethods=Sposoby zamawiania DictionarySource=Pochodzenie wniosków / zleceń DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modele dla planu kont +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Szablony wiadomości e-mail DictionaryUnits=Units DictionaryProspectStatus=Status możliwości DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Konfiguracja zapisana +SetupNotSaved=Setup not saved BackToModuleList=Powrót do listy modułów BackToDictionaryList=Powrót do listy słowników VATManagement=Zarządzanie VAT @@ -897,7 +923,7 @@ Offset=Offset AlwaysActive=Zawsze aktywne Upgrade=Uaktualnij MenuUpgrade=Uaktualnij / Rozszerz -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Wdrażaj/Instaluj dodatkowe moduły WebServer=Serwer sieciowy DocumentRootServer=Katalog główny serwera sieciowego DataRootServer=Katalogi plików danych @@ -921,7 +947,7 @@ Host=Serwer DriverType=Typ sterownika SummarySystem=Podsumowanie informacji systemowych SummaryConst=Lista wszystkich parametrów konfiguracji Dolibarr -MenuCompanySetup=Firma / Fundacja +MenuCompanySetup=Company/Organisation DefaultMenuManager= Menedżer standardowego menu DefaultMenuSmartphoneManager=Menedżer menu Smartphona Skin=Skórka @@ -931,12 +957,14 @@ DefaultMaxSizeList=Domyślna maksymalna długość listy DefaultMaxSizeShortList=Domyślna maksymalna długość dla krótkiej listy (przykłado na karcie klienta) MessageOfDay=Wiadomość dnia MessageLogin=Wiadomość strona logowania +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Stały formularz wyszukiwania w lewym menu DefaultLanguage=Domyślny język do użytku (kod języka) EnableMultilangInterface=Włącz wielojęzyczny interfejs EnableShowLogo=Pokaż logo w menu po lewej stronie -CompanyInfo=Informacja o firmie / fundacji -CompanyIds=Tożsamości firmy / fundacji +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nazwa firmy CompanyAddress=Adres CompanyZip=Kod pocztowy @@ -953,11 +981,11 @@ ShowBugTrackLink=Show link "%s" Alerts=Alarmy DelaysOfToleranceBeforeWarning=Tolerancja opóźnień przed ostrzeżeniem DelaysOfToleranceDesc=Ten ekran pozwala na określenie dopuszczalnego opóźnienia przed uruchomieniem alarmu na ekranie z pictogramami %s dla każdego opóźnionego elementu. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet +Delays_MAIN_DELAY_ACTIONS_TODO=Dopuszczalne opóźnienie (w dniach) przed alarmem o niezakończonych zaplanowanych wydarzeniach (wydarzeniach a agendzie) Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Dopuszczalne opóźnienie (w dniach) przed alarmem o nieprzetworzonych zamówieniach +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Dopuszczalne opóźnienie (w dniach) przed alarmem o nieprzetworzonych zamówieniach dostawców Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Opóźnienie tolerancji (w dniach) przed wpisu w sprawie propozycji, aby zamknąć Delays_MAIN_DELAY_PROPALS_TO_BILL=Opóźnienie tolerancji (w dniach) przed wpisu na temat propozycji nie rozliczone Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerancja opóźnienia (liczba dni) przed wpisu na usługi, aby uaktywnić @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancja opóźnienie (w dniach) przed wpisu na opó Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancja opóźnienia (liczba dni) przed wpisu do deponowania czeków do Delays_MAIN_DELAY_EXPENSEREPORTS=Opóźnienie tolerancji (w dniach) przed wpisu do zestawienia wydatków do zatwierdzenia SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Inne pozycje menu zarządzają opcjonalnymi parametrami. LogEvents=Zdarzenia audytu bezpieczeństwa Audit=Audyt @@ -987,10 +1015,10 @@ BrowserOS=Przeglądarka OS ListOfSecurityEvents=Lista zdarzeń bezpieczeństwa Dolibarr SecurityEventsPurged=Zdarzenia dotyczące bezpieczeństwa oczyszczone LogEventDesc=Można włączyć dziennik Dolibarr bezpieczeństwa imprez tutaj. Administratorzy mogą wtedy zobaczyć jego zawartość za pomocą menu Narzędzia systemowe - Audyt. Ostrzeżenie: Funkcja ta może zużywają duże ilości danych w bazie danych. -AreaForAdminOnly=Cechy te mogą być używane tylko przez użytkowników na prawach administratora. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System informacji jest różne informacje techniczne można uzyskać w trybie tylko do odczytu i widoczne tylko dla administratorów. SystemAreaForAdminOnly=Obszar ten jest dostępny tylko dla użytkowników na prawach administratora. Żadne z uprawnień Dolibarr nie zniesie tego ograniczenia. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) +CompanyFundationDesc=Edytuj na tej stronie wszystkie znane Ci informacje na temat firmy lub fundacji (Aby to zrobić, kliknij na przycisk "Modyfikuj" lub "Zapisz" na dole strony) DisplayDesc=Możesz wybrać każdego z parametrów związanych z wyglądem i Dolibarr tutaj AvailableModules=Dostępne moduły ToActivateModule=Aby uaktywnić modules, przejdź na konfigurację Powierzchnia. @@ -1005,7 +1033,7 @@ TriggerActiveAsModuleActive=Wyzwalacze w tym pliku są aktywne jako modułu % GeneratedPasswordDesc=Określ tutaj reguły, które chcesz użyć do wygenerowania nowego hasła, jeśli zapyta się automatycznie wygenerowane hasło DictionaryDesc=Insert all reference data. You can add your values to the default. ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. +MiscellaneousDesc=Inne powiązane parametry bezpieczeństwa są zdefiniowane tutaj LimitsSetup=Ograniczenia / Precision konfiguracji LimitsDesc=Można określić limity, doprecyzowanie i optymalizacje stosowane przez Dolibarr tutaj MAIN_MAX_DECIMALS_UNIT=Max dziesiętnych na ceny jednostkowe @@ -1048,7 +1076,7 @@ MAIN_PROXY_HOST=Imię i nazwisko / adres serwera proxy MAIN_PROXY_PORT=Port serwera proxy MAIN_PROXY_USER=Zaloguj się, aby korzystać z serwera proxy MAIN_PROXY_PASS=Hasło do korzystania z serwera proxy -DefineHereComplementaryAttributes=Określ tutaj wszystkie ATUTY, nie są już dostępne domyślnie i że chcesz być obsługiwane przez %s. +DefineHereComplementaryAttributes=Określ tutaj wszystkie atrybuty, nie są już dostępne domyślnie i że chcesz być obsługiwane przez %s. ExtraFields=Uzupełniające atrybuty ExtraFieldsLines=Atrybuty uzupełniające (linie) ExtraFieldsSupplierOrdersLines=(Linie uzupełniające atrybuty order) @@ -1068,7 +1096,7 @@ SendmailOptionNotComplete=Uwaga, w niektórych systemach Linux, aby wysłać e-m PathToDocuments=Ścieżka do dokumentów PathDirectory=Katalog SendmailOptionMayHurtBuggedMTA=Funkcja wysłać maile za pomocą metody "PHP poczty bezpośredniej" wygeneruje wiadomości, że może nie być prawidłowo przeanalizowany przez niektórych otrzymujących serwerów pocztowych. Powoduje to, że niektóre maile nie mogą być odczytywane przez ludzi obsługiwanych przez te platformy podsłuchu. To przypadku niektórych dostawców internetowych (Ex: Pomarańczowy we Francji). To nie jest problem w Dolibarr, ani w PHP, ale na otrzymywanie serwera poczty. Możesz jednak dodać opcję MAIN_FIX_FOR_BUGGED_MTA do 1 w konfiguracji - inne zmodyfikować Dolibarr, aby tego uniknąć. Jednakże, mogą wystąpić problemy z innymi serwerami, które przestrzegają ściśle standardu SMTP. Inne rozwiązanie (zalecane) jest użycie metody "gniazdo SMTP biblioteki", który nie ma wad. -TranslationSetup=Setup of translation +TranslationSetup=Ustawienia tłumaczenia TranslationKeySearch=Search a translation key or string TranslationOverwriteKey=Overwrite a translation string TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Musisz przynajmniej umożliwić 1 moduł ClassNotFoundIntoPathWarning=Klasa% s nie znaleziono na drodze PHP YesInSummer=Tak w lecie -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Przechowywania sesji szyfrowane Suhosin ConditionIsCurrently=Stan jest obecnie% s YouUseBestDriver=Za pomocą sterownika% s, który jest najlepszym kierowcą dostępne obecnie. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Profesjonalny Identyfikator unikalny MustBeUnique=Musi być unikatowy? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Wywóz link %s format jest dostępny na poniższy link: %s ##### Invoices ##### BillsSetup=Konfiguracja modułu faktur BillsNumberingModule=Faktur i not kredytowych numeracji modułu BillsPDFModules=Faktura dokumentów modele +PaymentsPDFModules=Payment documents models CreditNote=Nota kredytowa CreditNotes=Not kredytowych ForceInvoiceDate=Siły daty wystawienia faktury do walidacji daty @@ -1181,8 +1212,8 @@ WatermarkOnDraftInterventionCards=Znak wodny na dokumentach kart interwencji (br ContractsSetup=Kontrakty / konfiguracji modułu Subskrybcje ContractsNumberingModules=Kontrakty numerowania modułów TemplatePDFContracts=Kontrakty modele dokumenty -FreeLegalTextOnContracts=Wolny tekst na kontraktach -WatermarkOnDraftContractCards=Znak wodny w sprawie projektów umów (brak jeśli pusty) +FreeLegalTextOnContracts=Dowolny tekst na kontraktach +WatermarkOnDraftContractCards=Znak wodny w szkicach projektów (brak jeśli pusty) ##### Members ##### MembersSetup=Członkowie konfiguracji modułu MemberMainOptions=Główne opcje @@ -1200,7 +1231,7 @@ LDAPSynchronization=LDAP synchronizacji LDAPFunctionsNotAvailableOnPHP=LDAP funkcje nie są availbale w PHP LDAPToDolibarr=LDAP -> Dolibarr DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Wpisz LDAP +LDAPNamingAttribute=Klucz LDAP LDAPSynchronizeUsers=Synchronizacja Dolibarr użytkowników LDAP LDAPSynchronizeGroups=Synchronizacja Dolibarr grup LDAP LDAPSynchronizeContacts=Synchronizacja kontaktów z Dolibarr LDAP @@ -1225,9 +1256,9 @@ LDAPServerDnExample=Complete DN (ex: dc=company,dc=Kompletny DN (dawniej: dc= fi LDAPDnSynchroActive=Użytkownicy i grupy synchronizacji LDAPDnSynchroActiveExample=LDAP do Dolibarr lub Dolibarr do synchronizacji LDAP LDAPDnContactActive=Kontakty 'synchronizacji -LDAPDnContactActiveExample=Aktywowany / Unactivated synchronizacji +LDAPDnContactActiveExample=Aktywuj/Dezaktywuj synchronizację LDAPDnMemberActive=Posłów synchronizacji -LDAPDnMemberActiveExample=Aktywowany / Unactivated synchronizacji +LDAPDnMemberActiveExample=Aktywuj/Dezaktywuj synchronizację LDAPContactDn=Dolibarr kontaktów "DN LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=Kompletny DN (dawniej: ou= Kontakty, DC= społeczeństwa, dc= com) LDAPMemberDn=Dolibarr członków DN @@ -1305,7 +1336,7 @@ LDAPFieldEndLastSubscription=Data zakończenia subskrypcji LDAPFieldTitle=Job position LDAPFieldTitleExample=Przykład: tytuł LDAPSetupNotComplete=LDAP konfiguracji nie są kompletne (przejdź na innych kartach) -LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Nr hasło administratora lub przewidziane. LDAP dostęp będą anonimowe i w trybie tylko do odczytu. +LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Brak administratora lub hasła. Dostęp do LDAP będzie jedynie anonimowy i tylko w trybie do odczytu. LDAPDescContact=Ta strona pozwala na zdefiniowanie atrybutów LDAP nazwę LDAP drzewa dla każdego danych na Dolibarr kontakty. LDAPDescUsers=Ta strona pozwala na zdefiniowanie atrybutów LDAP nazwę LDAP drzewa dla każdego danych na Dolibarr użytkowników. LDAPDescGroups=Ta strona pozwala na zdefiniowanie atrybutów LDAP nazwę LDAP drzewa dla każdego danych na Dolibarr grupy. @@ -1322,14 +1353,21 @@ MemcachedAvailableAndSetup=Moduł memcached dedykowane obsłudze serwer memcache OPCodeCache=OPCODE cache NoOPCodeCacheFound=Nie znaleziono OpCode cache. Może użyć innego cache OPCODE niż XCache lub eAccelerator (dobry), może nie masz OPCODE cache (bardzo źle). HTTPCacheStaticResources=Cache HTTP do zasobów statycznych (css, img, JavaScript) -FilesOfTypeCached=Pliki typu% s są buforowane przez serwer HTTP -FilesOfTypeNotCached=Pliki typu% s nie są buforowane przez serwer HTTP -FilesOfTypeCompressed=Pliki typu% s są skompresowane przez serwer HTTP -FilesOfTypeNotCompressed=Pliki typu% s nie są kompresowane przez serwer HTTP +FilesOfTypeCached=Pliki typu %s są buforowane przez serwer HTTP +FilesOfTypeNotCached=Pliki typu %s nie są buforowane przez serwer HTTP +FilesOfTypeCompressed=Pliki typu %s są kompresowane przez serwer HTTP +FilesOfTypeNotCompressed=Pliki typu %s nie są kompresowane przez serwer HTTP CacheByServer=Cache przez serwer +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache przez przeglądarkę CompressionOfResources=Kompresja odpowiedzi HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Taka automatyczna detekcja nie jest możliwe przy obecnych przeglądarek +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produkty konfiguracji modułu ServiceSetup=Konfiguracja modułu Usługi @@ -1341,7 +1379,7 @@ ViewProductDescInThirdpartyLanguageAbility=Visualization of products description UseSearchToSelectProductTooltip=Także jeśli masz dużą ilość produktu (> 100 000), można zwiększyć prędkość przez ustawienie stałej PRODUCT_DONOTSEARCH_ANYWHERE do 1 w Setup-> Inne. Szukaj zostaną ograniczone do początku łańcucha. UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) SetDefaultBarcodeTypeProducts=Domyślny kod kreskowy typu użyć do produktów -SetDefaultBarcodeTypeThirdParties=Domyślny kod kreskowy typu do użytku dla osób trzecich +SetDefaultBarcodeTypeThirdParties=Domyślny typ kodu kreskowego używanego dla kontahentów UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition ProductCodeChecker= Moduł do generowania kodu produktu i sprawdzeniu (produkt lub usługa) ProductOtherConf= Konfiguracja produktu / usługi @@ -1385,12 +1423,12 @@ RSSUrl=RSS URL RSSUrlExample=Ciekawe RSS ##### Mailing ##### MailingSetup=Moduł konfiguracji e-maila -MailingEMailFrom=Nadawca wiadomości e-mail (Z) na e-maile wysyłane przez e-maila modułu -MailingEMailError=Powrót e-mail (Errors-do) na e-maile z błędami +MailingEMailFrom=Nadawca wiadomości e-mail (Od) dla wiadomości wysyłanych przez moduł mailingowy +MailingEMailError=Email zwrotny (Error-To) dla wiadomości z błędami wysyłania MailingDelay=Sekund po wysłaniu czekać następnej wiadomości ##### Notification ##### NotificationSetup=Napisz e-mail konfiguracji modułu powiadomienia -NotificationEMailFrom=Nadawca wiadomości e-mail (Z) na e-maile wysyłane do powiadomień +NotificationEMailFrom=Nadawca wiadomości e-mail (Od) dla wiadomości wysyłanych w formie powiadomień FixedEmailTarget=Naprawiono docelowy adres e-mail ##### Sendings ##### SendingsSetup=Konfiguracja modułu wysyłek @@ -1403,7 +1441,7 @@ FreeLegalTextOnShippings=Dowolny tekst sprawie przemieszczania DeliveryOrderNumberingModules=Produkty dostaw otrzymania numeracji modułu DeliveryOrderModel=Produkty dostaw otrzymania modelu DeliveriesOrderAbility=Obsługuj wysyłki przychodzące z dostawami produktów -FreeLegalTextOnDeliveryReceipts=Wolny tekst na dostawy wpływy +FreeLegalTextOnDeliveryReceipts=Dowolny tekst na dokumentach dostawy ##### FCKeditor ##### AdvancedEditor=Zaawansowany edytor ActivateFCKeditor=Uaktywnij FCKeditor za: @@ -1415,9 +1453,9 @@ FCKeditorForUserSignature=WYSIWIG tworzenie / edycja podpisu użytkownika FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Połączenie udało, ale baza danych nie patrzy się osCommerce danych (klucz %s nie został znaleziony w tabeli %s). -OSCommerceTestOk=Połączenie do serwera ' %s' w bazie danych " %s" z użytkownika' %s' powiodło się. -OSCommerceTestKo1=Połączenie do serwera ' %s' sukces, ale baza danych' %s' nie mógł zostać osiągnięty. -OSCommerceTestKo2=Połączenie do serwera ' %s' z użytkownika' %s' nie powiodło się. +OSCommerceTestOk=Połączenie do serwera ' %s' z bazą danych " %s" z użytkownikiem '%s' powiodło się. +OSCommerceTestKo1=Pomyślnie połączono się z serwerem '%s', ale baza danych '%s' jest niedostępna. +OSCommerceTestKo2=Połączenie do serwera '%s' z użytkownikiem '%s' nie powiodło się. ##### Stock ##### StockSetup=Magazyn konfiguracji modułu IfYouUsePointOfSaleCheckModule=W przypadku korzystania z modułu Point of Sale (moduł POS dostarczony domyślnie lub inny moduł zewnętrzny), ta konfiguracja może być ignorowana przez twój moduł POS. Większość modułów POS jest zaprojektowana, aby wystawiać natychmiast fakturę i obniżać zapas domyślnie, czyli podobnie jak poniższe opcje. Tak więc, jeśli chcesz lub nie, aby twój moduł POS obsłużył zmniejszanie zapasu na magazynie podczas rejestrowania sprzedaży, sprawdź konfigurację twojego modułu POS. @@ -1445,11 +1483,11 @@ Target=Cel DetailTarget=Target dla linków (_blank górę otworzyć nowe okno) DetailLevel=Poziom (-1: top menu 0: nagłówek menu> 0 menu i podmenu) ModifMenu=Menu zmiany -DeleteMenu=Usuń w menu +DeleteMenu=Usuń element menu ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? FailedToInitializeMenu=Nie można zainicjowac menu ##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup +TaxSetup=Podatki, podatki socjalne lub podatkowe i dywidendy konfiguracji moduł OptionVatMode=Opcja d'exigibilit de TVA OptionVATDefault=Kasowej OptionVATDebitOption=Memoriału @@ -1460,11 +1498,11 @@ OnDelivery=Na dostawy OnPayment=W sprawie wypłaty OnInvoice=Na fakturze SupposedToBePaymentDate=Płatność daty dostawy, jeśli wykorzystane data nie jest znana -SupposedToBeInvoiceDate=Faktura używany termin +SupposedToBeInvoiceDate=Data użyta na fakturze Buy=Kupić Sell=Sprzedać -InvoiceDateUsed=Faktura używany termin -YourCompanyDoesNotUseVAT=Twoja firma została określona, aby nie używać VAT (Start - Ustawienia - Firma / fundacji), więc nie ma VAT opcje konfiguracji. +InvoiceDateUsed=Data użyta na fakturze +YourCompanyDoesNotUseVAT=Twoja firma została zdefiniowana jako nie rozliczająca się z podatku VAT (Strona główna - Konfiguracja - Firma / Fundacja), więc nie ma opcji ustawienia podatku VAT do ustawienia. AccountancyCode=Kod Księgowość AccountancyCodeSell=Rachunek sprzedaży. kod AccountancyCodeBuy=Kup konto. kod @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Ustaw automatycznie tego stanu dla wydarzeń w filt AGENDA_DEFAULT_VIEW=Która karta chcesz otworzyć domyślnie po wybraniu menu Agendę AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Kliknij, aby Dial konfiguracji modułu -ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises
__PHONETO__ qui sera remplacé par le téléphone de l'appelé
__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)
__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)
__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Moduł ten pozwala dodać ikonę po numer telefonu Dolibarr kontakty. Kliknięcie na tę ikonę, będzie połączenie z serveur z danego adresu URL można zdefiniować poniżej. Może to być wykorzystane, aby połączyć się z Call Center z systemu Dolibarr, że mogą dzwonić na numer telefonu SIP system przykład. ClickToDialUseTelLink=Używaj tylko łącza "tel:" na numery telefonów ClickToDialUseTelLinkDesc=Użyj tej metody, jeśli użytkownicy mają softphone lub interfejs oprogramowania zainstalowanego na tym samym komputerze, niż przeglądarce i nazywa się po kliknięciu na link w przeglądarce, które zaczynają się od "tel:". Jeśli potrzebujesz pełne rozwiązanie serwera (bez potrzeby instalacji oprogramowania lokalnego), należy ustawić na "Nie" i wypełnić następne pole. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Ogólna kolejność wyświetlania BankOrderES=Hiszpański BankOrderESDesc=Hiszpański kolejność wyświetlania ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Firma Multi-Moduł konfiguracji ##### Suppliers ##### @@ -1550,11 +1588,11 @@ UseSearchToSelectProject=Use autocompletion fields to choose project (instead of ##### Fiscal Year ##### AccountingPeriods=Accounting periods AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? +NewFiscalYear=Nowy okres rozliczeniowy +OpenFiscalYear=Otwórz okres rozliczeniowy +CloseFiscalYear=Zamknij okres rozliczeniowy +DeleteFiscalYear=Usuń okres rozliczeniowy +ConfirmDeleteFiscalYear=Jesteś pewien, że chcesz usunąć ten okres rozliczeniowy? ShowFiscalYear=Show accounting period AlwaysEditable=Zawsze może być edytowany MAIN_APPLICATION_TITLE=Wymusza widoczną nazwę aplikacji (ostrzeżenie: ustawienie własnej nazwy tutaj może złamać Autouzupełnianie funkcji logowania przy użyciu DoliDroid aplikację mobilną) @@ -1582,12 +1620,12 @@ BackupDumpWizard=Konfigurator wykonywania kopii zapasowej bazy danych SomethingMakeInstallFromWebNotPossible=Instalacja zewnętrznych modułów za pomocą interfejsu sieciowego nie jest możliwa z powodu następujących przyczyn: SomethingMakeInstallFromWebNotPossible2=Z tego powodu, proces uaktualnienia tutaj opisany jest jednie krokiem manualnym, który wykonać może uprawniony użytkownik. InstallModuleFromWebHasBeenDisabledByFile=Instalacja zewnętrznych modułów z poziomu aplikacji została wyłączona przez administratora. Musisz poprosić go o usunięcie pliku %s aby włączyć odpowiednią funkcję. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Kolor podświetlenia linii przy najechaniu na nią myszą (pozostaw puste jeżeli ma nie być podświetlona) TextTitleColor=Kolor tytułu strony LinkColor=Kolor odnośników -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Naciśnij CTRL+F5 na klawiaturze aby wyczyścić cache w przeglądarce po zmianie tej wartości, aby zobaczyć efekt tej zmiany NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Kolor tła TopMenuBackgroundColor=Kolor tła górnego menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1624,7 +1663,7 @@ MailToSendSupplierInvoice=To send supplier invoice MailToSendContract=To send a contract MailToThirdparty=To send email from third party page ByDefaultInList=Pokaż domyślnie w widoku listy -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=Używasz ostatniej stabilnej wersji TitleExampleForMajorRelease=Przykład wiadomości można użyć, aby ogłosić to główne wydanie (prosimy używać go na swoich stronach internetowych) TitleExampleForMaintenanceRelease=Przykład wiadomości można użyć, aby ogłosić wydanie konserwacji (prosimy używać go na swoich stronach internetowych) ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. @@ -1633,24 +1672,24 @@ MultiPriceRuleDesc=Gdy opcja "Kilka poziom cen na produkt / usługę" jest włą ModelModulesProduct=Templates for product documents ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries +AllPublishers=Wszyscy wydawcy +UnknownPublishers=Nieznani wydawcy +AddRemoveTabs=Dodaj lub usuń zakładki +AddDictionaries=Dodaj słowniki AddBoxes=Dodaj widgety -AddSheduledJobs=Add scheduled jobs +AddSheduledJobs=Dodaj zaplanowane zadania AddHooks=Add hooks AddTriggers=Add triggers AddMenus=Add menus -AddPermissions=Add permissions +AddPermissions=Dodaj uprawnienia AddExportProfiles=Add export profiles AddImportProfiles=Add import profiles AddOtherPagesOrServices=Add other pages or services AddModels=Add document or numbering templates AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible +DetectionNotPossible=Wykrycie niemożliwe UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs +ListOfAvailableAPIs=Lista dostępnych API activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. LandingPage=Landing page @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/pl_PL/compta.lang b/htdocs/langs/pl_PL/compta.lang index 4fe290d65ce..3b84c67a289 100644 --- a/htdocs/langs/pl_PL/compta.lang +++ b/htdocs/langs/pl_PL/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Kwoty podane tutaj są obliczane na podst Param=Konfiguracja RemainingAmountPayment=Płatność pozostałej kwoty: Account=Konto -Accountparent=Konto rodzic -Accountsparent=Konta rodzica +Accountparent=Parent account +Accountsparent=Parent accounts Income=Przychody Outcome=Rozchody ReportInOut=Przychody/Koszty @@ -56,6 +56,7 @@ MenuTaxAndDividends=Podatki i dywidendy MenuSocialContributions=ZUS/podatek MenuNewSocialContribution=Nowa opłata ZUS/podatek NewSocialContribution=Nowa opłata ZUS/podatek +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Opłata ZUS/podatek do zapłacenia AccountancyTreasuryArea=Obszar księgowości NewPayment=Nowa płatność @@ -134,8 +135,8 @@ RulesResultDue=- Obejmuje zaległe faktury, koszty, podatek VAT, darowizny nieza RulesResultInOut=- Obejmuje rzeczywiste płatności dokonywane za faktury, koszty, podatek VAT oraz wynagrodzenia.
Opiera się na datach płatności faktur, wygenerowania kosztów, podatku VAT oraz wynagrodzeń. Dla darowizn brana jest pod uwagę data przekazania darowizny. RulesCADue=- Zawiera numery faktur klienta, niezależnie czy są płacone, czy też nie.
- Jest oparte na podstawie daty zatwierdzenia tych faktur.
RulesCAIn=- Obejmuje wszystkie skuteczne płatności faktur otrzymanych od klientów.
- Jest on oparty na dacie płatności tych faktur
-DepositsAreNotIncluded=- Faktury depozytów są ani też -DepositsAreIncluded=- Faktury depozytowe są zawarte +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Raport osób trzecich IRPF LT1ReportByCustomersInInputOutputModeES=Sprawozdanie trzecim RE partii VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Dziennik sprzedaży DescPurchasesJournal=Dziennik zakupów InvoiceRef=Numer referencyjny faktury CodeNotDef=Nie zdefiniowany -WarningDepositsNotIncluded=Depozyty faktury nie są zawarte w tej wersji z tego modułu księgowego. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Termin płatności określony nie może być niższa niż data obiektu. Pcg_version=Chart of accounts models Pcg_type=Typ PCG @@ -189,8 +190,10 @@ AccountancyJournal=Dziennik kodów księgowości ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Powiel opłatę za ZUS/podatek ConfirmCloneTax=Potwierdź powielenie płatności za ZUS/podatek CloneTaxForNextMonth=Powiel to na następny miesiąc @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=ZUS/podatek ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/pl_PL/cron.lang b/htdocs/langs/pl_PL/cron.lang index 9e2b50a7987..57f515d93ad 100644 --- a/htdocs/langs/pl_PL/cron.lang +++ b/htdocs/langs/pl_PL/cron.lang @@ -13,26 +13,26 @@ KeyForCronAccess=Klucz zabezpieczeń dla URL, aby uruchomić cron FileToLaunchCronJobs=Linia poleceń do uruchamiania zadań crona CronExplainHowToRunUnix=W środowisku Unix należy użyć następującego wpisu crontab, aby uruchomić wiersz poleceń co 5 minut CronExplainHowToRunWin=W środowisku Microsoft Windows(tm) można użyć narzędzia Zaplanowane zadania, aby uruchomić linię poleceń co 5 minut -CronMethodDoesNotExists=Class %s does not contains any method %s +CronMethodDoesNotExists=Klasa %s nie zawiera żadnej metody %s # Menu -EnabledAndDisabled=Enabled and disabled +EnabledAndDisabled=Włączone i wyłączone # Page list CronLastOutput=Latest run output CronLastResult=Latest result code CronCommand=Komenda CronList=Zaplanowane zadania CronDelete=Usuwanie zaplanowanych zadań -CronConfirmDelete=Are you sure you want to delete these scheduled jobs? -CronExecute=Launch scheduled job -CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Moduł zaplanowanych zadań pozwala na uruchamianie zadań, ktore były zaplanowane +CronConfirmDelete=Czy jesteś pewien, że chcesz usunąć te zaplanowane zadania? +CronExecute=Uruchom zaplanowane zadania +CronConfirmExecute=Jesteś pewien, że chcesz wykonać te zaplanowane zadania teraz? +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Zadanie CronNone=Żaden -CronDtStart=Not before -CronDtEnd=Not after +CronDtStart=Nie przed +CronDtEnd=Nie po CronDtNextLaunch=Kolejne wykonanie -CronDtLastLaunch=Start date of latest execution -CronDtLastResult=End date of latest execution +CronDtLastLaunch=Data rozpoczęcia ostatniego wykonania +CronDtLastResult=Data zakończenia ostatniego wykonania CronFrequency=Częstotliwość CronClass=Klasa CronMethod=Metoda @@ -57,23 +57,23 @@ CronStatusActiveBtn=Włączone CronStatusInactiveBtn=Wyłączone CronTaskInactive=To zadanie jest wyłączone CronId=ID -CronClassFile=Klasy (filename.class.php) -CronModuleHelp=Nazwa Dolibarr katalogu modułu (także współpracować z zewnętrznym modułem Dolibarr).
Dla exemple sprowadzić metodę Dolibarr obiektu wyrobów / htdocs / /class/product.class.php produktu, wartość modułu jest produktem -CronClassFileHelp=Nazwa pliku do załadowania.
Dla exemple sprowadzić metodę Dolibarr obiektu wyrobów / htdocs / produktu / klasy / product.class.php wartość nazwy pliku klasa product.class.php -CronObjectHelp=Nazwa obiektu, aby załadować.
Dla exemple sprowadzić metodę Dolibarr obiektu wyrobów /htdocs/product/class/product.class.php wartość nazwy pliku klasa produktów -CronMethodHelp=Metoda obiektu, aby uruchomić.
Dla exemple sprowadzić metodę Dolibarr obiektu wyrobów /htdocs/product/class/product.class.php, wartość metody jest to fecth -CronArgsHelp=Argumenty metody.
Reprezentują np sprowadzić sposób Dolibarr obiektu Product /htdocs/product/class/product.class.php, wartość paramters może wynosić 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=System linii poleceń do wykonania. CronCreateJob=Utwórz nowe zaplanowane zadanie CronFrom=Z # Info # Common CronType=Typ zadania -CronType_method=Wywołanie metody z klasy Dolibarr +CronType_method=Metoda wywołania klasy Dolibarr CronType_command=Polecenie powłoki CronCannotLoadClass=Nie można załadować klasy s% lub obiektu %s -UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled jobs" to see and edit scheduled jobs. +UseMenuModuleToolsToAddCronJobs=Idź do "Strona główna - Narzędzia administracyjne - Zaplanowane zadania" aby zobaczyć i zmieniać zaplanowane zadania JobDisabled=Zadanie wyłączone -MakeLocalDatabaseDumpShort=Local database backup -MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +MakeLocalDatabaseDumpShort=Backup lokalnej bazy danych +MakeLocalDatabaseDump=Twórz zrzut lokalnej bazy danych +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/pl_PL/errors.lang b/htdocs/langs/pl_PL/errors.lang index 320e6d4abd0..e116dcdc611 100644 --- a/htdocs/langs/pl_PL/errors.lang +++ b/htdocs/langs/pl_PL/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Nie można utworzyć pliku '%s'. ErrorFailToRenameDir=Nie można zmienić nazwy katalogu %s na %s. ErrorFailToCreateDir=Nie można utworzyć katalogu '%s'. ErrorFailToDeleteDir=Nie można usunąć katalogu ''. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Ten kontakt jest już zdefiniowana jako kontaktowy dla tego typu. ErrorCashAccountAcceptsOnlyCashMoney=To konto bankowe jest kontem gotówkowym, więc akceptuje jedynie płatności gotówkowe ErrorFromToAccountsMustDiffers=Konta źródłowe i docelowe muszą być inne @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Nie można zapisać w katalogu %s ErrorFoundBadEmailInFile=Znaleziono nieprawidłową składnię adresu email dla %s linii w pliku (przykładowo linia %s z adresem email %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Niektóre pola wymagane nie były uzupełnione. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nie można utworzyć katalogu. Sprawdź, czy serwer WWW użytkownik ma uprawnienia do zapisu do katalogu dokumentów Dolibarr. Jeśli parametr safe_mode jest włączona w tym PHP, czy posiada Dolibarr php pliki do serwera internetowego użytkownika (lub grupy). ErrorNoMailDefinedForThisUser=Nie określono adresu email dla tego użytkownika ErrorFeatureNeedJavascript=Ta funkcja wymaga do pracy aktywowanego JavaScript. Zmień to w konfiguracji - wyświetlanie. @@ -57,9 +60,9 @@ ErrorNoTmpDir=Tymczasowy directy %s nie istnieje. ErrorUploadBlockedByAddon=Prześlij zablokowane / PHP wtyczki Apache. ErrorFileSizeTooLarge=Rozmiar pliku jest zbyt duży. ErrorSizeTooLongForIntType=Rozmiar zbyt długi dal typu int (max %s cyfr) -ErrorSizeTooLongForVarcharType=Rozmiar zbyt długo typu string (%s znaków maksymalnie) -ErrorNoValueForSelectType=Proszę wypełnić wartości listy wyboru -ErrorNoValueForCheckBoxType=Proszę wypełnić pole wyboru wartości dla listy +ErrorSizeTooLongForVarcharType=Za dużo znaków dla tego typu (maksymalnie %s znaków) +ErrorNoValueForSelectType=Proszę wypełnić wartości dla listy wyboru +ErrorNoValueForCheckBoxType=Proszę wypełnić wartości dla listy checkbox ErrorNoValueForRadioType=Proszę wypełnić wartość liście radiowej ErrorBadFormatValueList=Wartość na tej liście nie może mieć więcej niż jeden przecinek: %s, ale wymagany jest przynajmniej jeden: klucz, wartość ErrorFieldCanNotContainSpecialCharacters=Pole %s nie zawiera znaki specjalne. @@ -102,19 +105,19 @@ ErrorNoImagickReadimage=Funkcja imagick_readimage nie jest w tej PHP. Podgląd m ErrorRecordAlreadyExists=Wpis już istnieje ErrorCantReadFile=Nie można odczytać pliku '%s' ErrorCantReadDir=Nie można odczytać katalogu '%s' -ErrorBadLoginPassword=Zła wartość dla loginu lub hasła +ErrorBadLoginPassword=Błędne hasło lub login ErrorLoginDisabled=Twoje konto zostało wyłączone ErrorFailedToRunExternalCommand=Nie można uruchomić polecenia zewnętrznych. Zameldowanie jest ona dostępna i runnable przez serwer PHP. Jeśli PHP safe mode jest włączony, czy polecenie wewnątrz katalogu określonym przez parametr safe_mode_exec_dir. ErrorFailedToChangePassword=Nie można zmienić hasła ErrorLoginDoesNotExists=Użytkownik %s nie został znaleziony. ErrorLoginHasNoEmail=Ten użytkownik nie ma adresu e-mail. Proces przerwany. -ErrorBadValueForCode=Zła wartość typy kodu. Spróbuj ponownie z nową wartość ... +ErrorBadValueForCode=Zła wartość kody zabezpieczeń. Wprowadź nową wartość... ErrorBothFieldCantBeNegative=Pola %s i %s nie może być zarówno negatywny ErrorQtyForCustomerInvoiceCantBeNegative=Ilość linii do faktur dla klientów nie może być ujemna ErrorWebServerUserHasNotPermission=Konto użytkownika %s wykorzystywane do wykonywania serwer WWW nie ma zgody na który ErrorNoActivatedBarcode=Nie Typ aktywny kodów kreskowych ErrUnzipFails=Nie udało się rozpakować% s ZipArchive -ErrNoZipEngine=Brak silnika do rozpakowania pliku %s w PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Plik% s musi być pakiet zip Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL nie jest zainstalowany, to jest niezbędne, aby porozmawiać z Paypal @@ -146,8 +149,8 @@ ErrorPriceExpression10=Iperator '% s' nie ma argumentu ErrorPriceExpression11=Spodziewając '% s' ErrorPriceExpression14=Dzielenie przez zero ErrorPriceExpression17=Niezdefiniowana zmienna '%s' -ErrorPriceExpression19=Ekspresja Nie znaleziono -ErrorPriceExpression20=Pusty wyraz +ErrorPriceExpression19=Nie znaleziono wyrażenia +ErrorPriceExpression20=Puste wyrażenie ErrorPriceExpression21=Pusty wynik '%s' ErrorPriceExpression22=Wynik negatywny '%s' ErrorPriceExpressionInternal=Wewnętrzny błąd '%s' @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Nie wybrano zmiennej globalnej ErrorFieldMustBeANumeric=Pole %s musi mieć wartość numeryczną ErrorMandatoryParametersNotProvided=Obowiązkowe parametr (y) nie przewidziane ErrorOppStatusRequiredIfAmount=Możesz ustawić szacunkową kwotę za możliwość / ołowiu. Więc należy także wprowadzić swój status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad definicja tablicy w menu modułu deskryptora (zły stosunek jakości do kluczowego fk_menu) ErrorSavingChanges=Wystąpił błąd podczas zapisywania zmian ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Hasło zostało ustawione dla tego użytkownika. Jednakże nie Konto użytkownika zostało utworzone. Więc to hasło jest przechowywane, ale nie mogą być używane do logowania do Dolibarr. Może być stosowany przez zewnętrzny moduł / interfejsu, ale jeśli nie trzeba definiować dowolną logowania ani hasła do członka, można wyłączyć opcję "Zarządzaj login dla każdego członka" od konfiguracji modułu użytkownika. Jeśli potrzebujesz zarządzać logowanie, ale nie wymagają hasła, możesz zachować to pole puste, aby uniknąć tego ostrzeżenia. Uwaga: E może być również stosowany jako login, jeśli element jest połączony do użytkownika. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Termin płatności (%s) jest wcześniejsz WarningTooManyDataPleaseUseMoreFilters=Zbyt wiele danych (więcej niż% s linii). Proszę używać więcej filtrów lub ustawić stałą% s na wyższy limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 08676b5ad05..249acebddcf 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -24,12 +24,12 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p DatabaseConnection=Połączenia z bazą danych -NoTemplateDefined=No template defined for this email type +NoTemplateDefined=Nie zdefiniowano szablonu do wiadomości email tego typu AvailableVariables=Available substitution variables NoTranslation=Brak tłumaczenia NoRecordFound=Rekord nie został znaleziony. NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NotEnoughDataYet=Za mało danych NoError=Brak błędów Error=Błąd Errors=Błędy @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametr %s nie został zdefiniowany ErrorUnknown=Nieznany błąd ErrorSQL=Błąd SQL ErrorLogoFileNotFound=Logo pliku ' %s' nie zostało odnalezione -ErrorGoToGlobalSetup=Idź do "Firma / Fundacja" Aby rozwiązać problem +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Przejdź do modułu konfiguracji aby naprawić ErrorFailedToSendMail=Próba wysłania maila nie udana (nadawca=%s, odbiorca=%s) ErrorFileNotUploaded=Plik nie został załadowany. Sprawdź, czy rozmiar nie przekracza maksymalnej dopuszczalnej wagi, lub czy wolne miejsce jest dostępne na dysku. Sprawdz czy nie ma już pliku o takiej samej nazwie w tym katalogu. @@ -69,11 +69,11 @@ SetDate=Ustaw datę SelectDate=Wybierz datę SeeAlso=Zobacz także %s SeeHere=Zobacz tutaj -Apply=Zastosować +Apply=Zastosuj BackgroundColorByDefault=domyślny kolor tła FileRenamed=The file was successfully renamed FileUploaded=Plik został pomyślnie przesłany -FileGenerated=The file was successfully generated +FileGenerated=Plik został wygenerowany pomyślnie FileWasNotUploaded=Wybrano pliku do zamontowaia, ale jeszcze nie wysłano. W tym celu wybierz opcję "dołącz plik". NbOfEntries=Liczba wejść GoToWikiHelpPage=Read online help (Internet access needed) @@ -85,7 +85,7 @@ NotDefined=Nie zdefiniowany DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. Administrator=Administrator Undefined=Niezdefiniowano -PasswordForgotten=Password forgotten? +PasswordForgotten=Zapomniałeś hasła? SeeAbove=Patrz wyżej HomeArea=Strona Startowa LastConnexion=Latest connection @@ -153,6 +153,7 @@ Edit=Edytuj Validate=Potwierdź ValidateAndApprove=Weryfikacja i zatwierdzanie ToValidate=Aby potwierdzić +NotValidated=Not validated Save=Zapisać SaveAs=Zapisz jako TestConnection=Test połączenia @@ -186,7 +187,7 @@ Groups=Grupy NoUserGroupDefined=Niezdefiniowano grup użytkowników Password=Hasło PasswordRetype=Powtórz hasło -NoteSomeFeaturesAreDisabled=Należy pamiętać, że wiele funkcji / modułów są wyłączone w tej demonstracji. +NoteSomeFeaturesAreDisabled=Należy pamiętać, że wiele funkcji/modułów jest wyłączonych w tej demonstracji. Name=Nazwa Person=Osoba Parameter=Parametr @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=żadna aplikacja nierozłączona w skutek uwierzytel Connection=Połączenie Setup=Konfiguracja Alert=Sygnał +MenuWarnings=Alarmy Previous=Poprzednia Next=Następny Cards=Kartki @@ -230,15 +232,15 @@ Now=Teraz HourStart=Godzina startu Date=Data DateAndHour=Data i godzina -DateToday=Today's date +DateToday=Dzisiejsza data DateReference=Reference date DateStart=Data rozpoczęcia -DateEnd=Koniec +DateEnd=Data zakończenia DateCreation=Data utworzenia DateCreationShort=Data utworzenia DateModification=Zmiana daty DateModificationShort=Data modyfikacji -DateLastModification=Latest modification date +DateLastModification=Data ostatniej zmiany DateValidation=Zatwierdzenie daty DateClosing=Ostateczny termin DateDue=W trakcie terminu @@ -308,6 +310,7 @@ Copy=Kopiowanie Paste=Wklej Default=Domyślny DefaultValue=Wartość domyślna +DefaultValues=Default values Price=Cena UnitPrice=Cena jednostkowa UnitPriceHT=Cena jednostkowa (netto) @@ -324,12 +327,12 @@ AmountTTCShort=Kwota (zawierająca VAT) AmountHT=Kwota (netto bez podatku) AmountTTC=Kwota (zawierająca VAT) AmountVAT=Kwota podatku VAT -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencyAlreadyPaid=Zapłacono, oryginalna waluta +MulticurrencyRemainderToPay=Pozostało do zapłaty, oryginalna waluta +MulticurrencyPaymentAmount=Kwota płatności, oryginalna waluta +MulticurrencyAmountHT=Kwota (bez VAT), oryginalna waluta +MulticurrencyAmountTTC=Kwota (zVAT), oryginalna waluta +MulticurrencyAmountVAT=Kwota VAT, oryginalna waluta AmountLT1=Wartość podatku 2 AmountLT2=Wartość podatku 3 AmountLT1ES=Kwota RE @@ -363,7 +366,8 @@ VATRate=Stawka VAT Average=Średni Sum=Suma Delta=Delta -Module=Moduł +Module=Module/Application +Modules=Modules/Applications Option=Opcja List=Lista FullList=Pełna lista @@ -387,7 +391,7 @@ ActionRunningNotStarted=By rozpocząć ActionRunningShort=In progress ActionDoneShort=Zakończone ActionUncomplete=Niekompletne -CompanyFoundation=Firma / Fundacja +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakty dla tego zamówienia ContactsAddressesForCompany=Kontakt/adres dla tej części/zamówienia/ AddressesForCompany=Adressy dla części trzeciej @@ -405,8 +409,9 @@ Generate=Wygeneruj Duration=Czas trwania TotalDuration=Łączny czas trwania Summary=Podsumowanie -DolibarrStateBoard=Statystyki -DolibarrWorkBoard=Do zrobienia +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Dostępny NotYetAvailable=Nie są jeszcze dostępne NotAvailable=Niedostępne @@ -434,7 +439,7 @@ Reportings=Raportowanie Draft=Szkic Drafts=Robocze Validated=Zatwierdzona -Opened=Otwierany +Opened=Otwarte New=Nowy Discount=Rabat Unknown=Nieznany @@ -453,12 +458,13 @@ NextStep=Następny krok Datas=Dane None=Żaden NoneF=Żaden +NoneOrSeveral=None or several Late=Późno LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Obraz Photos=Obrazy AddPhoto=Dodaj obraz -DeletePicture=Usuń obraz +DeletePicture=Obraz usunięty ConfirmDeletePicture=Potwierdzić usunięcie obrazka? Login=Login CurrentLogin=Aktualny login @@ -537,8 +543,8 @@ FindBug=Zgłoś błąd NbOfThirdParties=Liczba zamówień NbOfLines=Liczba linii NbOfObjects=Liczba obiektów -NbOfObjectReferers=Number of related items -Referers=Related items +NbOfObjectReferers=Liczba powiązanych elementów +Referers=Powiązane elementy TotalQuantity=Całkowita ilość DateFromTo=Z %s do %s DateFrom=Z %s @@ -573,7 +579,7 @@ Priority=Priorytet SendByMail=Wyślij przez email MailSentBy=E-mail został wysłany przez TextUsedInTheMessageBody=Zawartość emaila -SendAcknowledgementByMail=Send confirmation email +SendAcknowledgementByMail=Wyślij email potwierdzający EMail=E-mail NoEMail=Brak e-mail Email=Adres e-mail @@ -586,7 +592,7 @@ GoBack=Wróć CanBeModifiedIfOk=Mogą być zmienione jeśli ważne CanBeModifiedIfKo=Mogą być zmienione, jeśli nie ważne ValueIsValid=Wartość jest poprawna -ValueIsNotValid=Value is not valid +ValueIsNotValid=Wartość jest niepoprawna RecordCreatedSuccessfully=Record created successfully RecordModifiedSuccessfully=Zapis zmodyfikowany pomyślnie RecordsModified=%s record modified @@ -606,7 +612,8 @@ PartialWoman=Część TotalWoman=Razem NeverReceived=Nigdy nie otrzymała Canceled=Anulowany -YouCanChangeValuesForThisListFromDictionarySetup=Możesz zmieniać wartości dla tej listy z menu Konfiguracja - Słownik +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Kolor Documents=Związanych plików @@ -642,11 +649,12 @@ FreeLineOfType=Wolność wyboru typu CloneMainAttributes=Skopiuj obiekt z jego głównymi atrybutami PDFMerge=Scalanie/ dzielenie PDF Merge=Scalanie/ dzielenie +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Pokaż stronę do wydruku głównej treści MenuManager=Menu menager WarningYouAreInMaintenanceMode=Uwaga, jesteś w trybie konserwacji, więc tylko zalogowani %s mogą używać aplikacji w danym momencie. CoreErrorTitle=Błąd systemu -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Przepraszamy, napotkano błąd. Skontaktuj się z administratorem w celu sprawdzenia logów lub wyłącz $dolibarr_main_prod=1 aby uzyskać więcej informacji. CreditCard=Karta kredytowa FieldsWithAreMandatory=Pola %s są obowiązkowe FieldsWithIsForPublic=Pola %s są wyświetlane na publiczną listę członków. Jeśli nie chcesz, odznacz opcję "publiczny". @@ -675,10 +683,10 @@ SetLinkToAnotherThirdParty=Link do innego kontrahenta LinkTo=Link to LinkToProposal=Link to proposal LinkToOrder=Link do zamówienia -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order +LinkToInvoice=Link do faktury +LinkToSupplierOrder=Link do zamówienia dostawcy LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice +LinkToSupplierInvoice=Link do faktury dostawcy LinkToContract=Link to contract LinkToIntervention=Link to intervention CreateDraft=Utwórz Szic @@ -708,6 +716,7 @@ from=od toward=kierunek Access=Dostęp SelectAction=Wybierz działanie +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Użyj Ctrl+C by skopiować SaveUploadedFileWithMask=Zapisz plik na serwerze z nazwą "%s" (w innym wypadku "%s") OriginFileName=Oryginalna nazwa pliku @@ -718,9 +727,9 @@ ViewPrivateNote=Wyświetl notatki XMoreLines=%s lini(e) ukryte PublicUrl=Publiczny URL AddBox=Dodaj skrzynke -SelectElementAndClickRefresh=Zaznacz element i kliknij Odśwież +SelectElementAndClick=Select an element and click %s PrintFile=Wydrukuj plik %s -ShowTransaction=Show entry on bank account +ShowTransaction=Pokaż wpisy na koncie bankowym GoIntoSetupToChangeLogo=Wejdź w Strona główna - Ustawienia- Firma by zmienić logo lub przejdź do Strona główna- Ustawienia - Wyświetl do ukrycia. Deny=Zabraniać Denied=Zabroniony @@ -733,13 +742,13 @@ Mandatory=Zleceniobiorca Hello=Witam Sincerely=Z poważaniem DeleteLine=Usuń linię -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +ConfirmDeleteLine=Czy jesteś pewien, że chcesz usunąć tą linię? +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects +RelatedObjects=Powiązane obiekty ClassifyBilled=Klasyfikacja billed Progress=Postęp ClickHere=Kliknij tutaj @@ -755,11 +764,20 @@ Calendar=Kalendarz GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download -ActualizeCurrency=Update currency rate +ActualizeCurrency=Aktualizuj kurs walut Fiscalyear=Rok podatkowy +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Poniedziałek Tuesday=Wtorek @@ -817,5 +835,3 @@ SearchIntoContracts=Kontrakty SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Zestawienia wydatków SearchIntoLeaves=Urlopy - -BulkActions=Bulk actions diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index 6869882df75..c7fdc7eecfe 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Data urodzenia BirthdayAlertOn=urodziny wpisu aktywnych BirthdayAlertOff=urodziny wpisu nieaktywne +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Validate interwencji Notify_FICHINTER_SENTBYMAIL=Interwencja wysyłane pocztą @@ -46,8 +59,8 @@ Notify_MEMBER_SUBSCRIPTION=Członek subskrybowanych Notify_MEMBER_RESILIATE=Member terminated Notify_MEMBER_DELETE=Członek usunięte Notify_PROJECT_CREATE=Stworzenie projektu -Notify_TASK_CREATE=Utworzone zadanie -Notify_TASK_MODIFY=Zmodyfikowane zadanie +Notify_TASK_CREATE=Zadanie utworzone +Notify_TASK_MODIFY=Zadanie zmodyfikowane Notify_TASK_DELETE=Zadanie usunięte SeeModuleSetup=Zobacz konfigurację modułu% s NbOfAttachedFiles=Liczba załączonych plików / dokumentów @@ -61,49 +74,50 @@ PredefinedMailTestHtml=Dette er en test mail (ordet testen må være i fe PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nZnajdziesz tu fakturę __REF__\n\n__PERSONALIZED__Z poważaniem\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nChcielibyśmy przypomnieć, że faktura __REF__ jest wciąż nie zapłacona. Więc w załączniku przesyłamy ponownie fakturę jako przypomnienie.\n\n__PERSONALIZED__Z poważaniem\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ Znajdziesz tu propozycję handlową __PROPREF__ __PERSONALIZED__Sincerely __SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nZnajdziesz tutaj zapytanie o cenę __ASKREF__\n\n __PERSONALIZED__Z poważaniem\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Znajdziesz tu porządek __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Znajdziesz tu nasze zamówienie __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nZnajdziesz tu fakturę __REF__\n\n__PERSONALIZED__Z poważaniem\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Znajdziesz tu wysyłkę __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Znajdziesz tu interwencji __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) -DemoFundation=Zarządzanie użytkowników o fundacji +DemoFundation=Zarządzanie członkami fundacji DemoFundation2=Zarządzanie członkami i kontami bankowymi fundacji DemoCompanyServiceOnly=Company or freelance selling service only DemoCompanyShopWithCashDesk=Zarządzanie sklepem z kasy DemoCompanyProductAndStocks=Company selling products with a shop DemoCompanyAll=Company with multiple activities (all main modules) -CreatedBy=Utworzono %s +CreatedBy=Utworzone przez %s ModifiedBy=Zmodyfikowane przez %s -ValidatedBy=Zatwierdzona przez %s +ValidatedBy=Zatwierdzone przez %s ClosedBy=Zamknięte przez %s -CreatedById=ID użytkownika, który stworzył +CreatedById=ID użytkownika który stworzył ModifiedById=User id who made latest change -ValidatedById=ID użytkownika, który zatwierdzony -CanceledById=ID użytkownika, który anulowane -ClosedById=ID użytkownika, który zamknięty -CreatedByLogin=Nazwa użytkownika, który stworzył +ValidatedById=ID użytkownika który zatwierdzał +CanceledById=ID użytkownika który anulował +ClosedById=ID użytkownika który zamknął +CreatedByLogin=Nazwa użytkownika który stworzył ModifiedByLogin=User login who made latest change -ValidatedByLogin=Nazwa użytkownika, który zatwierdzony -CanceledByLogin=Nazwa użytkownika, który anulowane -ClosedByLogin=Nazwa użytkownika, który zamknięty -FileWasRemoved=Plik został usunięty -DirWasRemoved=Katalog został usunięty +ValidatedByLogin=Nazwa użytkownika który zatwierdził +CanceledByLogin=Nazwa użytkownika który anulował +ClosedByLogin=Nazwa użytkownika który zamknął +FileWasRemoved=Plik %s został usunięty +DirWasRemoved=Katalog %s został usunięty FeatureNotYetAvailable=Feature not yet available in the current version FeaturesSupported=Supported features Width=Szerokość Height=Wysokość Depth=Głębokość -Top=Top -Bottom=Dno -Left=W lewo +Top=Góra +Bottom=Dół +Left=Lewo Right=Prawo -CalculatedWeight=Beregnet vekt -CalculatedVolume=Beregnet volum +CalculatedWeight=Obliczona waga +CalculatedVolume=Obliczona wartość Weight=Waga WeightUnitton=tonne WeightUnitkg=kg @@ -145,56 +159,56 @@ BackToLoginPage=Powrót do strony logowania AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. ProfIdShortDesc=Prof ID %s jest informacji w zależności od trzeciej kraju.
Na przykład, dla kraju, %s, jest to kod %s. -DolibarrDemo=Dolibarr ERP / CRM demo -StatsByNumberOfUnits=Statystyki liczby jednostek -StatsByNumberOfEntities=Statystyki liczby podmiotów -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Ilość zamówień klientów przez ostatnie 12 miesięcy -NumberOfCustomerInvoices=Ilość faktur klientów przez ostatnie 12 miesięcy -NumberOfSupplierProposals=Ilość propozycji dostawców przez ostatnie 12 miesięcy -NumberOfSupplierOrders=Ilość zamówień dostawców przez ostatnie 12 miesięcy -NumberOfSupplierInvoices=Ilość faktur dostawców przez ostatnie 12 miesięcy -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Ilość sztuk artykułu w zamówieniach klienta przez ostatnie 12 miesięcy -NumberOfUnitsCustomerInvoices=Ilość sztuk artykułu na fakturach klientów przez ostatnie 12 miesięcy -NumberOfUnitsSupplierProposals=Ilość sztuk na propozycjach dostawców przez ostatnie 12 miesięcy -NumberOfUnitsSupplierOrders=Ilość sztuk artykułu w zamówieniach dostawców przez ostatnie 12 miesięcy -NumberOfUnitsSupplierInvoices=Ilość sztuk artykułu na fakturach dostawców przez ostatnie 12 miesięcy +DolibarrDemo=Demo Dolibarr ERP/CRM +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Interwencja %s zatwierdzone -EMailTextInvoiceValidated=Faktura %s zatwierdzone +EMailTextInvoiceValidated=Faktura %s została zatwierdzona EMailTextProposalValidated=Forslaget %s har blitt validert. -EMailTextOrderValidated=Ordren %s har blitt validert. -EMailTextOrderApproved=Postanowienie %s zatwierdzone +EMailTextOrderValidated=Zamówienie %s zostało zatwierdzone +EMailTextOrderApproved=Zamówienie %s zostało zaakceptowane. EMailTextOrderValidatedBy=Kolejność% s został nagrany przez% s. -EMailTextOrderApprovedBy=Zamówienie zatwierdzone przez %s %s -EMailTextOrderRefused=Postanowienie %s odmówił -EMailTextOrderRefusedBy=Postanowienie %s %s odmawia -EMailTextExpeditionValidated=Wysyłka% s został zatwierdzony. +EMailTextOrderApprovedBy=Zamówienie %s zostało zaakceptowane przez %s. +EMailTextOrderRefused=Zamówienie %s zostało odrzucone. +EMailTextOrderRefusedBy=Zamówienie %s zostało odrzucone przez %s. +EMailTextExpeditionValidated=Wysyłka %s została zatwierdzone. ImportedWithSet=Przywóz zestaw danych -DolibarrNotification=Automatyczne powiadomienia +DolibarrNotification=Automatyczne powiadomienie ResizeDesc=Skriv inn ny bredde eller ny høyde. Forhold vil bli holdt under resizing ... -NewLength=Ny bredde -NewHeight=Ny høyde -NewSizeAfterCropping=Ny størrelse etter beskjæring +NewLength=Nowa szerokość +NewHeight=Nowa waga +NewSizeAfterCropping=Nowy rozmiar po przycięciu DefineNewAreaToPick=Definer nytt område på bildet for å plukke (venstre klikk på bildet og dra til du kommer til motsatt hjørne) -CurrentInformationOnImage=Informasjon om gjeldende bilde +CurrentInformationOnImage=To narzędzie zostało zaprojektowane aby pomóc ci w zmianie wielkości lub przycięciu obrazu. ImageEditor=Edytor obrazów YouReceiveMailBecauseOfNotification=Du mottar denne meldingen fordi din e-post har blitt lagt til listen over mål for å bli informert om spesielle hendelser i %s programvare av %s. YouReceiveMailBecauseOfNotification2=Denne hendelsen er følgende: ThisIsListOfModules=To jest lista modułów selekcjonowane przez tego profilu demo (tylko najczęściej moduły są widoczne w tym demo). Zmodyfikować, aby mieć bardziej spersonalizowany demo i kliknij "Start". -UseAdvancedPerms=Korzystać z zaawansowanych uprawnień niektórych modułów +UseAdvancedPerms=Użyj zaawansowanych uprawnień niektórych modułów FileFormat=Format pliku SelectAColor=Wybierz kolor AddFiles=Dodaj pliki StartUpload=Rozpocznij przesyłanie CancelUpload=Anuluj przesyłanie -FileIsTooBig=Plików jest zbyt duży +FileIsTooBig=Plik jest za duży PleaseBePatient=Proszę o cierpliwość... RequestToResetPasswordReceived=Wniosek o zmianę hasła Dolibarr został odebrany -NewKeyIs=To jest twoje nowe klucze, aby zalogować się +NewKeyIs=To są twoje nowe klucze do logowania NewKeyWillBe=Twój nowy klucz, aby zalogować się do programu będzie -ClickHereToGoTo=Kliknij tutaj, aby przejść do% s +ClickHereToGoTo=Kliknij tutaj, aby przejść do %s YouMustClickToChange=Trzeba jednak najpierw kliknąć na poniższy link, aby potwierdzić tę zmianę hasła ForgetIfNothing=Jeśli nie zwrócić tę zmianę, po prostu zapomnieć ten e-mail. Twoje dane są przechowywane w sposób bezpieczny. IfAmountHigherThan=Jeśli kwota wyższa niż %s @@ -204,7 +218,7 @@ Chart=Chart ##### Export ##### ExportsArea=Wywóz obszarze AvailableFormats=Dostępne formaty -LibraryUsed=Librairie +LibraryUsed=Użyte biblioteki LibraryVersion=Library version ExportableDatas=Eksport danych NoExportableData=Nr eksport danych (bez modułów z eksportowane dane załadowane lub brakujące uprawnienia) diff --git a/htdocs/langs/pl_PL/projects.lang b/htdocs/langs/pl_PL/projects.lang index 6afa35d22e2..3c493284115 100644 --- a/htdocs/langs/pl_PL/projects.lang +++ b/htdocs/langs/pl_PL/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Obszar projektów ProjectStatus=Status projektu SharedProject=Wszyscy PrivateProject=Kontakty projektu +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Wszystkie projekty MyProjectsDesc=Ten widok jest ograniczony do projektów dla których jesteś kontaktem (cokolwiek jest w typie). ProjectsPublicDesc=Ten widok przedstawia wszystkie projekty, które możesz przeczytać. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,6 +26,7 @@ TasksDesc=Ten widok przedstawia wszystkie projekty i zadania (twoje uprawnienia AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nowy projekt AddProject=Tworzenie projektu DeleteAProject=Usuń projekt @@ -30,13 +34,14 @@ DeleteATask=Usuń zadanie ConfirmDeleteAProject=Czy usunąć ten projekt? ConfirmDeleteATask=Czy usunąć to zadanie? OpenedProjects=Otwarte projekty -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Szanse ilość otwartych projektów przez statusu +OpenedTasks=Otwarte zadania +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Pokaż projekt SetProject=Ustaw projekt NoProject=Żadny projekt niezdefiniowany lub nie jest twoją własnością NbOfProjects=Liczba projektów +NbOfTasks=Nb of tasks TimeSpent=Czas spędzony TimeSpentByYou=Czas spędzony przez Ciebie TimeSpentByUser=Czas spędzony przez użytkownika @@ -47,9 +52,9 @@ TaskTimeSpent=Czas spędzony na zadaniach TaskTimeUser=Użytkownik TaskTimeNote=Uwaga TaskTimeDate=Data -TasksOnOpenedProject=Zadania na otwartych projektach +TasksOnOpenedProject=Zadania w otwartych projektach WorkloadNotDefined=Czas pracy nie zdefiniowany -NewTimeSpent=Nowy czas spędzony +NewTimeSpent=Czas spędzony MyTimeSpent=Mój czas spędzony Tasks=Zadania Task=Zadanie @@ -59,6 +64,7 @@ TaskDescription=Opis zadania NewTask=Nowe zadania AddTask=Tworzenie zadania AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktywność Activities=Zadania / aktywności MyActivities=Moje zadania / aktywności @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Lista szablonów faktur klientów powią ListSupplierOrdersAssociatedProject=Lista zamówień dostawców powiązanych z projektem ListSupplierInvoicesAssociatedProject=Lista faktur dostawców powiązanych z projektem ListContractAssociatedProject=Wykaz umów związanych z projektem +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Wykaz interwencji związanych z projektem ListExpenseReportsAssociatedProject=Lista raportów o wydatkach związanych z projektem ListDonationsAssociatedProject=Lista dotacji związanych z projektem @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Czy otworzyć na nowo ten projekt? ProjectContact=Kontakty projektu ActionsOnProject=Działania w ramach projektu YouAreNotContactOfProject=Nie jestes kontaktem tego prywatnego projektu +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Usuń czas spędzony ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Zobacz również zadania nie przypisane do mnie @@ -110,7 +118,7 @@ TaskRessourceLinks=Zasoby ProjectsDedicatedToThisThirdParty=Projekty poświęcone tej stronie trzeciej NoTasks=Brak zadań dla tego projektu LinkedToAnotherCompany=Powiązane z innymą częścią trzecią -TaskIsNotAffectedToYou=Zadanie nie jest przypisany do Ciebie +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Czas spędzony jest pusty ThisWillAlsoRemoveTasks=To działanie także usunie wszystkie zadania projektu (%s zadania w tej chwili) i wszystkie dane wejścia czasu spędzonego. IfNeedToUseOhterObjectKeepEmpty=Jeżeli pewne obiekty (faktura, zamówienie, ...), należące do innej części trzeciej, muszą być związane z projektem tworzenia, zachowaj to puste by projekt był wielowątkowy -(wiele części trzecich). @@ -155,33 +163,38 @@ DocumentModelBeluga=Szablon projektu na przegląd połączonych obiektów DocumentModelBaleine=Szablon projektu raportu dla zadań PlannedWorkload=Planowany nakład pracy PlannedWorkloadShort=Nakład pracy -ProjectReferers=Related items +ProjectReferers=Powiązane elementy ProjectMustBeValidatedFirst=Projekt musi być najpierw zatwierdzony FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Wejścia na dzień InputPerWeek=Wejścia w tygodniu InputPerAction=Wejścia na działanie -TimeAlreadyRecorded=Czas spędzony (zarejestrowany do tej pory) dla tego zadanie / dzień i użytkownik %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projekty z tym użytkownika jako kontakt TasksWithThisUserAsContact=Zadania dopisane do tego użytkownika ResourceNotAssignedToProject=Nie przypisane do projektu ResourceNotAssignedToTheTask=Nie dopisane do zadania +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Przypisz zadanie do mnie +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Przydzielać ProjectOverview=Przegląd ManageTasks=Użyj projektów do śledzenia zadań i czasu ManageOpportunitiesStatus=Użyj projekty śledzić pozostawienie danych kontaktowych / opportinuties ProjectNbProjectByMonth=Liczba stworzynych projektów w miesiącu +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Ilość możliwości w danym miesiącu ProjectWeightedOppAmountOfProjectsByMonth=Ważona ilość szans na miesiąc ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statystyki dotyczące projektów / przewodów +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Zadanie przypisanie. Wprowadzenie czasu na zadanie powinno być możliwe. IdTaskTime=Id razem zadaniem YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Projekty otwarte przez kontahentów +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Szanse Całkowita ilość OpportunityPonderatedAmount=Ilość możliwości ważone diff --git a/htdocs/langs/pt_BR/accountancy.lang b/htdocs/langs/pt_BR/accountancy.lang index 25e6fd6c775..a4765b0f22d 100644 --- a/htdocs/langs/pt_BR/accountancy.lang +++ b/htdocs/langs/pt_BR/accountancy.lang @@ -11,8 +11,6 @@ ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique o prefixo do nome do arquivo AccountancySetupDoneFromAccountancyMenu=A maioria das configurações da Contabilidade é feita a partir do menu %s ConfigAccountingExpert=Configuração do módulo específico de contabilidade Journalization=Lançamento no Livro -Journaux=Diários -JournalFinancial=Diários financeiros Chartofaccounts=Plano de contas AccountancyArea=Área da Contabilidade AccountancyAreaDescIntro=O uso do módulo Contabilidade é feito em diversas etapas: @@ -20,7 +18,6 @@ AccountancyAreaDescActionOnce=As ações a seguir são normalmente realizadas ap AccountancyAreaDescActionFreq=As ações a seguir são normalmente executadas a cada mês, semana ou dia para grandes empresas... AccountancyAreaDescChartModel=ETAPA %s: Criar um modelo de gráfico de conta a partir do menu %s AccountancyAreaDescChart=ETAPA %s: Criar ou verificar o conteúdo do seu gráfico de conta a partir do menu %s -AccountancyAreaDescWriteRecords=ETAPA %s: Grave as transações na Contabilidade Geral. Para isto, vá para cada Registro, e clique no botão "Registrar as transações na Contabilidade Geral". AccountancyAreaDescAnalyze=ETAPA %s: Adicionar ou editar as transações existentes, gerar os relatórios e exportar. AccountancyAreaDescClosePeriod=ETAPA %s: Fechar o período de forma que não possamos fazer modificações no futuro. Selectchartofaccounts=Selecione gráfico ativo de contas @@ -28,25 +25,17 @@ ChangeAndLoad=Alterar e carregar Addanaccount=Adicionar uma conta contábil AccountAccounting=Conta contábil AccountAccountingSuggest=Sugerir Conta de Contabilidade -MenuDefaultAccounts=Contas padrão MenuProductsAccounts=Contas de produto ProductsBinding=Contas dos produtos Ventilation=Vinculando para as contas CustomersVentilation=Vinculando as faturas do cliente SuppliersVentilation=Vinculando as faturas do fornecedor -CreateMvts=Criar nova transação -UpdateMvts=Modificação de uma transação -WriteBookKeeping=Diário de transações em Contabilidade Geral -Bookkeeping=Livro razão -AccountBalance=Saldo da conta CAHTF=Total de Compras em fornecedores sem Impostos InvoiceLines=Linhas da fatura a vincular InvoiceLinesDone=Linhas das faturas vinculadas IntoAccount=Vincular linha com conta contábil -Ventilate=Vincular +Processing=Processando EndProcessing=Processo foi finalizado. -SelectedLines=Linhas selecionadas -Lineofinvoice=Linha da fatura NoAccountSelected=Nenhuma conta da Contabilidade selecionada VentilatedinAccount=Vinculado a conta contábil com sucesso NotVentilatedinAccount=Não vinculado a conta contábil @@ -57,45 +46,30 @@ ACCOUNTING_LIST_SORT_VENTILATION_TODO=Iniciar a página "Vinculações a fazer" ACCOUNTING_LIST_SORT_VENTILATION_DONE=Iniciar a página "Vinculações feitas" ordenando pelos elementos mais recentes ACCOUNTING_LENGTH_DESCRIPTION=Truncar a descrição de Produtos & Serviços nas listagens, após x caracteres (Melhor = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar a descrição da conta de Produtos & Serviços nas listagens, após X caracteres (Melhor = 50) -ACCOUNTING_LENGTH_GACCOUNT=Tamanho das contas contábeis geral -ACCOUNTING_LENGTH_AACCOUNT=Tamanho das contas contábeis de terceiros -ACCOUNTING_MANAGE_ZERO=Gerenciar o zero no fim de uma conta da Contabilidade. Necessário em alguns países. Desabilitado como padrão. Se habilitado, você deve também definir os 2 parâmetros seguintes (ou isto é ignorado). +ACCOUNTING_LENGTH_GACCOUNT=Comprimento das contas de contabilidade geral (se o valor configurado for 6, a conta '706' aparecerá como '706000' na tela) BANK_DISABLE_DIRECT_INPUT=Desabilitar o registro direto da transação na conta bancária ACCOUNTING_SELL_JOURNAL=Resumo diário das Vendas ACCOUNTING_PURCHASE_JOURNAL=Resumo diário das Compras ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário diversos ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatórios de despesas -Docref=Referência Code_tiers=Terceiro Labelcompte=Conta rótulo Sens=Significado -NumPiece=Número da peça TransactionNumShort=Nº da transação -AccountingCategory=Categoria contábil GroupByAccountAccounting=Agrupar pela conta da Contabilidade NotMatch=Não Definido -DeleteMvt=Excluir as linhas da Contabilidade geral DelYear=Ano a ser deletado DelJournal=Resumo a ser deletado -ConfirmDeleteMvt=Isto excluirá todas as linhas da Contabilidade geral para o ano e/ou de um registro específico. É exigido pelo menos um critério. -ConfirmDeleteMvtPartial=Isto excluirá a(s) linha(s) selecionada(s) da Contabilidade geral -FinanceJournal=Diário financeiro -DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária -DescJournalOnlyBindedVisible=Esta é uma visualização do registro que está vinculado à conta da Contabilidade dos produtos/serviços e que pode ser também registrado na Contabilidade Geral. VATAccountNotDefined=Conta para ICMS não definida ThirdpartyAccountNotDefined=Conta para terceiro não definida ProductAccountNotDefined=Conta para produto não definida BankAccountNotDefined=Conta para o banco não definida ThirdPartyAccount=Conta de terceiro -NewAccountingMvt=Nova transação -NumMvts=Número da transação ListeMvts=Lista de movimentações ErrorDebitCredit=Débito e Crédito não pode ter valor preenchido ao mesmo tempo -ReportThirdParty=Lista de contas de terceiros DescThirdPartyReport=Consulte aqui a lista dos terceiros, clientes e fornecedores, e as suas contas contábeis ListAccounts=Lista das contas contábeis Pcgtype=Classes de conta -Pcgsubtype=Sob classe de conta TotalVente=Volume total negociado sem Impostos TotalMarge=Margem de vendas totais DescVentilCustomer=Consulte aqui a lista linhas de pedidos de clientes vinculadas (ou não) a uma conta contábil de produto @@ -109,16 +83,11 @@ ValidateHistory=Vincular Automaticamente AutomaticBindingDone=Vinculação automática realizada ErrorAccountancyCodeIsAlreadyUse=Erro, você não pode excluir esta conta contábil, pois ela esta em uso MvtNotCorrectlyBalanced=Movimento sem o equilíbrio correto. Crédito = %s. Débito = %s -FicheVentilation=Cartão de vinculação -GeneralLedgerIsWritten=As transações são gravadas na Contabilidade geral -GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações poderão não ser registradas. -NoNewRecordSaved=Nenhum novo registro salvo ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta da Contabilidade ChangeBinding=Alterar a vinculação -ApplyMassCategories=Aplicar categorias em massa +AccountingJournalType2=De vendas OptionsDeactivatedForThisExportModel=Para este modelo de exportação, as opções são desativadas Selectmodelcsv=Escolha um modelo de exportação -Modelcsv_normal=Exportação clássica Modelcsv_CEGID=Exportação em direção CEGID Especialista em Contabilidade Modelcsv_COALA=Exportar para Sage Coala Modelcsv_bob50=Exportar para Sage BOB 50 @@ -129,17 +98,10 @@ Modelcsv_cogilog=Exportar para Cogilog InitAccountancy=Contabilidade Inicial InitAccountancyDesc=Esta página pode ser usada para inicializar uma conta da Contabilidade dos produtos e serviços que não possuem uma conta da Contabilidade definida para vendas e compras. DefaultBindingDesc=Esta página pode ser usada para definir a conta padrão a ser usada para conectar o registro das transações sobre o pagamento de salários, doações, taxas e o ICMS quando nenhuma conta da Contabilidade específica tiver sido definida. -Options=Opções OptionModeProductSell=Modo vendas OptionModeProductBuy=Modo compras CleanFixHistory=Remover o código da Contabilidade das linhas que não existem nos gráficos da conta CleanHistory=Redefinir todas as vinculações para o ano selecionado Range=Faixa da conta da Contabilidade -Calculated=Calculado -Formula=Fórmula -ErrorNoAccountingCategoryForThisCountry=Nenhuma categoria da Contabilidade disponível para o país %s (Veja Início - Configuração - Dicionários) ExportNotSupported=O formato de exportação definido não é suportado nesta página BookeppingLineAlreayExists=Linhas já existentes na Contabilidade -Binded=Linhas vinculadas -ToBind=Linhas a vincular -WarningReportNotReliable=Alerta, este relatório não está baseado na Contabilidade Geral, portanto não é ainda confiável. Ele será substituído por um relatório correto na próxima versão. diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index a7fdad6e2ef..c5e2eefe797 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -1,6 +1,4 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Fundação -Version=Versão VersionProgram=Versão Programa VersionLastInstall=Versão de instalação inicial VersionLastUpgrade=Atualização versão mais recente @@ -9,20 +7,12 @@ VersionDevelopment=Versão de Desenvolvimento VersionUnknown=Versão Desconhecida VersionRecommanded=Versão Recomendada FileCheck=Verificador da integridade dos arquivos -FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum MakeIntegrityAnalysisFrom=Realizar a análise da integridade dos arquivos do aplicativo em LocalSignature=Assinatura local integrada (menos confiável) RemoteSignature=Assinatura remota distante (mais confiável) FilesMissing=Arquivos ausentes FilesUpdated=Arquivos atualizados -FilesModified=Modified Files -FilesAdded=Added Files FileCheckDolibarr=Verificar a integridade dos arquivos do aplicativo -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package XmlNotFound=Não encontrado o Arquivo Xml da integridade SessionId=ID da sessão SessionSaveHandler=Manipulador para salvar sessão @@ -58,18 +48,14 @@ ErrorModuleRequirePHPVersion=Erro, este módulo requer uma versão %s ou superio ErrorModuleRequireDolibarrVersion=Erro, este módulo requer uma versão %s ou superior do Dolibarr ErrorDecimalLargerThanAreForbidden=Erro, número maior que %s e não é suportada pelo dolibarr. DictionarySetup=Configuração Dicionário -Dictionary=Dicionários ErrorReservedTypeSystemSystemAuto=A Variável 'system' e 'systemauto' é reservada. Você pode usar 'user' como variável para adicionar sua própria gravação ErrorCodeCantContainZero=A variável não pode conter valor "0" (zero) DisableJavascript=Desativar as funções Javascript e Ajax UseSearchToSelectCompanyTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo COMPANY_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. UseSearchToSelectContactTooltip=Além disso, se você tem um grande número de terceiros (> 100 000), você pode aumentar a velocidade, definindo CONTACT_DONOTSEARCH_ANYWHERE constante a 1 em Setup-> Outro. Busca, então, ser limitada até o início da string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) NumberOfKeyToSearch='Nbr' dos caracteres para 'trigger search': %s NotAvailableWhenAjaxDisabled=Indisponível quando o Ajax esta desativado AllowToSelectProjectFromOtherCompany=No documento de um terceiro, pode-se escolher um projeto conectado a outro terceiro -JavascriptDisabled=JavaScript desativado UsePreviewTabs=Usar previsão de digitação na tecla 'tab' ShowPreview=Mostrar Previsão PreviewNotAvailable=Previsão Indisponível @@ -77,24 +63,18 @@ ThemeCurrentlyActive=Tema Ativo CurrentTimeZone=Timezone PHP (do servidor apache) MySQLTimeZone=Timezone Mysql (do servidor sql) TZHasNoEffect=A data é armazenada e retornada pelo servidor sql se eles manterem a string apresentada. A timezone é resultado somente se for usado a função UNIX_TIMESTAMP (Não deve ser usada pelo Dolibarr, se não a database TZ não terá efeito, mesmo se tivesse trocada depois da data ter entrado). -Space=Área -Table=Tabela -Fields=Campos -Index=Index -Mask=Mask NextValue=Próximo Valor NextValueForInvoices=Próximo Valor (Faturas) NextValueForCreditNotes=Próximo Valor (Notas de Crédito) -NextValueForDeposit=Próximo Valor (Depósito) NextValueForReplacements=Próximo Valor (Substituição) MustBeLowerThanPHPLimit=OBS: Tamanho máximo de upload é %s %s de máximo, qualquer que seja o valor do parâmetro é NoMaxSizeByPHPLimit=Nenhum limite foi configurado no seu PHP MaxSizeForUploadedFiles=Tamanho Máximo para uploads de arquivos ('0' para proibir o carregamento) UseCaptchaCode=Usar captcha para login (recomendado se os usuários tiverem acesso ao Dolibarr pela internet) -AntiVirusCommand= Caminho completo para antivirus -AntiVirusCommandExample= Exemplo com o ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Exemplo com o ClamAv: /usr/bin/clamscan (UNIX) -AntiVirusParam= Mais parâmetros em linha de comando (CLI) -AntiVirusParamExample= Exemplo com o ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AntiVirusCommand=Caminho completo para antivirus +AntiVirusCommandExample=Exemplo com o ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Exemplo com o ClamAv: /usr/bin/clamscan (UNIX) +AntiVirusParam=Mais parâmetros em linha de comando (CLI) +AntiVirusParamExample=Exemplo com o ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ComptaSetup=Conf. do Módulo Contabilidade UserSetup=Conf. do Gestor de usuários MultiCurrencySetup=Configuração de múltiplas moedas @@ -102,38 +82,26 @@ MenuLimits=Limites e Precisão MenuIdParent=ID do menu pai DetailMenuIdParent=ID do menu pai (vazio (NULL) para menu no topo) DetailPosition=Define as posições do menu em ordem numérica -AllMenus=Todos -NotConfigured=Módulo não está configurado -Active=Ativo SetupShort=Conf. OtherOptions=Outras Opções OtherSetup=Outras Configurações -CurrentValueSeparatorDecimal=Separador decimal CurrentValueSeparatorThousand=Separador de milhar -Destination=Destino IdModule=Módulo ID IdPermissions=Permissão ID -Modules=Módulos LanguageBrowserParameter=Parâmetro de Linguagem %s LocalisationDolibarrParameters=Parâmetros de Localização ClientTZ=Fuso Horário do cliente (usuário) ClientHour=Horário do Cliente (usuário) OSTZ=Fuso Horário do OS do Servidor PHPTZ=Fuso Horário do servidor PHP -DaylingSavingTime=Horário de verão CurrentHour=Horário PHP (servidor) CurrentSessionTimeOut=A sessão expirou -YouCanEditPHPTZ=Para trocar diferente PHP 'timezone' (não requerido), você pode tentar adicionando um arquivo .htacces com uma linha tipo essa "SetEnv TZ Europe/Paris" -Box=Widget -Boxes=Widgets MaxNbOfLinesForBoxes=Número máximo de linahs para os widgets PositionByDefault=Posição Padrão(default) -Position=Posição MenusDesc=O Gerenciador de Menu, define o conteúdo das barras de menu (Horizontal e Vertical). MenusEditorDesc=O Editor de menu permite definir entradas personalizadas ao menu.
Use-o com cuidado para evitar instabilidades e que os menus fiquem totalmente inacessiveis.
Alguns módulos adicionam entradas do menu ( no menu Geral principalmente). Se você remover algumas destas entradas por engano, você poderá restaurá-las desabilitando e habilitando o módulo novamente. MenuForUsers=Menu para os Usuários LangFile=Arquivo .lang -System=Sistema SystemInfo=Informações de Sistema SystemToolsArea=Área de Ferramentas do sistema SystemToolsAreaDesc=Essa área dispõe de funções administrativas. Use esse menu para escolher as funções que você está procurando. @@ -149,8 +117,6 @@ PurgeNDirectoriesDeleted=%s Arquivos o diretórios eliminados PurgeAuditEvents=Eliminar os eventos de segurança ConfirmPurgeAuditEvents=Você tem certeza que deseja limpar todos os eventos de segurança? Todos os registros de segurança serão excluídos, nenhum outro dado será removido. GenerateBackup=Gerar Backup -Backup=Backup -Restore=Restaurar RunCommandSummary=Backup foi iniciado com o seguinte comando BackupResult=Resultado de backup BackupFileSuccessfullyCreated=Sucesso em gerar o arquivo de backup! =D @@ -169,15 +135,10 @@ CommandsToDisableForeignKeysForImport=Comando para desativar as chaves estrangei CommandsToDisableForeignKeysForImportWarning=Mandatório se você quiser ser capaz de restaurar seu 'sql dump' depois ExportCompatibility=Compatibilidade de gerar arquivos de exportação MySqlExportParameters=Parâmetros de exportação do MySql -PostgreSqlExportParameters= Parâmetros de exportação do PostgreSQL +PostgreSqlExportParameters=Parâmetros de exportação do PostgreSQL UseTransactionnalMode=Utilizar o modo transicional(transactional mode) -FullPathToMysqldumpCommand=Caminho completo para o comando mysqldump -FullPathToPostgreSQLdumpCommand=Caminho completo para o comando pg_dump -ExportOptions=Opções de exportação AddDropDatabase=Adicionar o comando 'DROP DATABASE' AddDropTable=Adicionar o comando 'DROP TABLE' -ExportStructure=Estrutura -NameColumn=Nome das colunas ExtendedInsert=Extender o INSERT NoLockBeforeInsert=Não travar comando antes do INSERT DelayedInsert=Inserir Atraso @@ -186,14 +147,10 @@ IgnoreDuplicateRecords=Ignorar erros de registro duplicado (INSERT IGNORE) AutoDetectLang=Autodetecção de idioma pelo navegador FeatureDisabledInDemo=Algumas funções desabilitada no Demo FeatureAvailableOnlyOnStable=Funcionalidade somente disponível em versões estáveis oficiais -Rights=Permissões BoxesDesc=Os widgets são componentes que exibem alguma informação que você pode adicionar para personalizar algumas páginas. Você pode escolher entre a exibição ou não do widget pela seleção da página de destino e clicando em "Ativar", ou clicando na lixeira para desabilitá-lo. OnlyActiveElementsAreShown=Somente elementos de módulos ativos são mostrado. -ModulesDesc=Os módulos do Dolibarr definem qual funcionalidade está habilitada no aplicativo. Alguns módulos exigem permissões que você deve garantir aos usuários, após a habilitação do código. Clique no botão on/off para habilitar um módulo/funcionalidade. ModulesMarketPlaceDesc=Você pode encontrar mais módulos para download em sites externos na Internet ... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +ModulesMarketPlaces=Localizar módulos externos DoliStoreDesc=DoliStore, o site oficial para baixar módulos externos. DoliPartnersDesc=Lista das empresas que realizam o serviço de desenvolvimento de módulos ou funcionalidades personalizadas (Nota: qualquer pessoa com experiência na programação em PHP pode realizar o desenvolvimento personalizado para um projeto com código fonte aberto) WebSiteDesc=Sites de referência para encontrar mais módulos ... @@ -204,18 +161,15 @@ ActivateOn=Ativar ActiveOn=Ativa SourceFile=Arquivo Fonte AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponível somente se Javascript não estiver desativado -Required=Requerido UsedOnlyWithTypeOption=Usado por alguns opção agenda única -Security=Segurança Passwords=Senhas DoNotStoreClearPassword=Não armazenar senhas em branco no banco de dados, somente armazenar senhas criptografadas (Ativação é Recomendada) MainDbPasswordFileConfEncrypted=Criptografar senha do banco de dados no arquivo conf.php InstrucToEncodePass=Para ter a senha codificada no arquivo conf.php, substitua a linha
$dolibarr_main_db_pass="..."
por
$dolibarr_main_db_pass="crypted:%s" InstrucToClearPass=Para ter a senha não codificada(limpa) no arquivo conf.php, substitua a linha
$dolibarr_main_db_pass="crypted:..."
por
$dolibarr_main_db_pass="%s" ProtectAndEncryptPdfFiles=Criptografar a geração de arquivos em PDF (NÃO RECOMENDADO, póis pode deixar instável a geração de PDFs massivos) -ProtectAndEncryptPdfFilesDesc=A proteção de um documento PDF o mantém disponível para leitura e impressão em qualquer leitor PDF. Contudo, a edição e a cópia não serão mais possíveis. Favor notar que o uso desta função não permite a criação de um PDF global acumulado (tal como as faturas não pagas). +ProtectAndEncryptPdfFilesDesc=Proteção de um documento PDF mantém ele disponível para ler e imprimir com qualquer navegador PDF. No entanto, edição e cópia não é possível. Observe que a utilização deste recurso faz com que a construção de um PDF global mesclado não funcione. Feature=Destaque -DolibarrLicense=Licença Developpers=Desenvolvedores/Contribuidores OfficialWebSite=Site internacional do Dolibarr OfficialWebSiteLocal=Web site local (%s) @@ -224,23 +178,12 @@ OfficialDemo=Demo online do Dolibarr OfficialMarketPlace=Loja oficial para módulos externos/addons OfficialWebHostingService=Serviços de hospedagem web referenciados (hospedagem na Nuvem) ReferencedPreferredPartners=Parceiro preferido -OtherResources=Outros recursos ForDocumentationSeeWiki=Documentos para usuários e desenvolvedores (Doc, FAQs...),
de uma olhada no Dolibarr Wiki:
%s ForAnswersSeeForum=Para outras questões/ajudas, você pode usar o forum do Dolibar:
%s HelpCenterDesc1=Essa área pode ajudar você a conseguir serviço de suporte no Dolibarr. HelpCenterDesc2=Uma parte desse serviço está disponivel em inglês. CurrentMenuHandler=Gestor atual de menu MeasuringUnit=Unidade de medida -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content -NoticePeriod=Período de aviso -NewByMonth=New by month Emails=E-Mails EMailsSetup=Conf. de E-Mails EMailsDesc=Essa página permite você a sobrescrever os seus parâmetros PHP para enviar e-mails. Na maioria dos casos dos sistemas Unix/Linux OS, a configuração já está correta, tornando desnecessário esses parâmetros. @@ -250,64 +193,50 @@ MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta SMTP/SMTPS (Não definido no P MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP/SMTPS (Não definido no PHP nos sistemas tipo Unix) MAIN_MAIL_EMAIL_FROM=E-Mail de envio para envios automáticos (Como padrão no php.ini: %s) MAIN_MAIL_ERRORS_TO=Remetente do e-mail usado para o erro retorna e-mails enviados -MAIN_MAIL_AUTOCOPY_TO= Enviar sistematicamente uma cópia carbono oculta de todos os e-mails enviados para +MAIN_MAIL_AUTOCOPY_TO=Enviar sistematicamente uma cópia carbono oculta de todos os e-mails enviados para MAIN_DISABLE_ALL_MAILS=Desabilita o envido de todos os E-Mails (Para testes ou demo) MAIN_MAIL_SENDMODE=Método usado para o envio de E-Mails MAIN_MAIL_SMTPS_ID=ID SMTP se a autentificação é exigida MAIN_MAIL_SMTPS_PW=Senha SMTP se a autenticação é exigida -MAIN_MAIL_EMAIL_TLS= Usar criptografia TLS (SSL) -MAIN_MAIL_EMAIL_STARTTLS= Use criptografia TLS (STARTTLS) +MAIN_MAIL_EMAIL_TLS=Usar criptografia TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS=Use criptografia TLS (STARTTLS) MAIN_DISABLE_ALL_SMS=Desabilitar todos envios de SMS (Para testes ou demo) MAIN_SMS_SENDMODE=Método usado para enviar SMS MAIN_MAIL_SMS_FROM=Número de telefone padrão para o envio de SMS MAIN_MAIL_DEFAULT_FROMTYPE=Remetente do e-mail como padrão para envios manuais (e-mail do usuário ou e-mail da empresa) UserEmail=E-mail do usuário -CompanyEmail=E-mail da empresa FeatureNotAvailableOnLinux=Função não disponível para sistemas tipo Unix. Teste de envio local. SubmitTranslation=Se a tradução deste idioma não estiver completa ou se encontrar erros, você poderá corrigir editando os arquivos no diretório langs/%s e submeter sua alteração em www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Se a tradução para este idioma não está completa ou você encontrar erros, você pode corrigir pela edição dos arquivos no diretório langs/%s e enviar os arquivos modificados para dolibarr.org/forum ou para os desenvolvedores em github.com/Dolibarr/dolibarr. ModuleSetup=Conf. do módulo -ModulesSetup=Conf. dos módulos -ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestão de Relacionamento com o Cliente (CRM) ModuleFamilySrm=Gestor da Relação com o Fornecedor (SRM) ModuleFamilyProducts=Gestão de Produtos (GP) ModuleFamilyHr=Gestão de Recursos Humanos (RH) ModuleFamilyProjects=Projetos -ModuleFamilyOther=Outro ModuleFamilyTechnic=Ferramentas para Módulos Múltiplos ModuleFamilyExperimental=Módulos Experimentais ModuleFamilyFinancial=Módulos Financeiros ModuleFamilyECM=Gestão de Conteúdos Eletrônicos (ECM) ModuleFamilyPortal=Websites e outras aplicações frontend -ModuleFamilyInterface=Interfaces com sistemas externos MenuHandlers=Gestor de Menus MenuAdmin=Editor menus DoNotUseInProduction=Não utilizar em produção -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: -StepNb=Passo %s +ThisIsProcessToFollow=Estas são as etapas para o processo: FindPackageFromWebSite=Achar um pacote que possue as funções desejadas (por exemplo no site oficial %s). DownloadPackageFromWebSite=Baixar pacote. -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s -UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +UnpackPackageInDolibarrRoot=Descompacte os arquivos no diretório do servidor dedicado ao Dolibarr:%s +SetupIsReadyForUse=A implantação do módulo está concluída. No entanto, você deve habilitar e configurar o módulo em sua aplicatição, indo na página para configurar os módulos: %s. +NotExistsDirect=O diretório root alternativo não está definido para um diretório existente.
+InfDirAlt=Desde a versão 3, é possível definir um diretório-root alternativo. Isso permite que você armazene, em um diretório dedicado, plug-ins e modelos personalizados.
Basta criar um diretório na raiz de Dolibarr (por exemplo:custom).
+InfDirExample=
Em seguida, declará-lo no arquivo conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
Se essas linhas forem comentadas com "#", para habilitá-las, basta descomentar removendo o caractere "#". YouCanSubmitFile=Selecione o módulo: -CurrentVersion=Versão atual do Dolibarr CallUpdatePage=Vá para a página que atualiza a estrutura de banco de dados e os dados:% s. -LastStableVersion=Última versão estável -LastActivationDate=Latest activation date UpdateServerOffline=Atualização de servidor off-line GenericMaskCodes=Você pode criar suas próprias mascaras para gerar as referências automáticas.
Como exemplo inicial a mascara 'CLI{000}' vai gerar a ref. CLI001,CLI002,... as mascaras são:
Mascara de contagem {0000}, essa mascara vai contar para cada nova ref. ex:0001,0002,0003,...
Mascara de número inicial ex:{000+100} -> 101,102,103,... ex2:{0000+123} -> 0124,0125,...
Mascara da data {dd} dias (01 a 31), {mm} mês (01 a 12), {yy} {yyyy} para anos ex:{dd}/{mm}/{yy} -> 28/07/15
-GenericMaskCodes2={cccc} o código do cliente nos caracteres
{cccc000} o código do cliente nos caracteres é seguido por um contador dedicado ao cliente. Este contador dedicado ao cliente é redefinido ao mesmo tempo que o contador global.
{tttt} O código do tipo de terceiros em n caracteres (veja o dicionário-tipos de terceiros).
GenericMaskCodes3=Não é permitido espaços.
Mascara fixa, basta colocar uma letra ou número sem {} ex:CLI,FOR

-GenericMaskCodes4a=Ex: TESTE{000+100}.{mm}.{yy} -> TESTE101.07.15,TESTE102.07.15
GenericMaskCodes4b=Ex: CLI{dd}{mm}{yy}.{000} -> CLI280715.001
GenericMaskCodes4c=Ex: PRODUTO{000+100} -> PRODUTO101
-GenericMaskCodes5=Ex:ABC{yy}{mm}-{000000} -> ABC1507-000099
GenericNumRefModelDesc=Retorna um número costomizado de acordo com a mascara definida. ServerAvailableOnIPOrPort=Servidor disponível no endeço %s e porta %s ServerNotAvailableOnIPOrPort=Servidor não disponível no endereço %s e porta %s @@ -319,12 +248,11 @@ ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não pode utilizar a opç UMask=Parâmetros da UMask para novos arquivos nos sistemas de arquivos Unix/Linux/BSD/Mac. UMaskExplanation=Esses parâmetros permitem você definir permissões por default nos arquivos criado pelo Dolibarr no servidor (Ex: durante upload).
Deve ser em formato octal (Ex: 06666 significa que tem permissão de leitura e escrita para todo mundo).
Esse parâmetro é inutil para servidores windows. SeeWikiForAllTeam=Veja a página da wiki para ver a lista de todos os autores e essa organização -UseACacheDelay= Atraso para exportação de cache em segundos (0 ou vazio para sem cache) +UseACacheDelay=Atraso para exportação de cache em segundos (0 ou vazio para sem cache) DisableLinkToHelpCenter=Esconder link "Precisa de ajuda ou suporte" na página de login DisableLinkToHelp=Ocultar link para ajuda online "%s" AddCRIfTooLong=Não possui nenhum empacotamento automático, então se a linha sair da página do documento é porque é muito comprida, você precisa adicionar você mesmo um retorno de transporte(carriage) na área de texto. ConfirmPurge=Você tem certeza que deseja executar esta limpeza?
Isto excluirá definitivamente todos os arquivos de dados sem qualquer chance de restaurá-los (arquivos ECM, arquivos anexos...). -MinLength=Comprimento mínimo LanguageFilesCachedIntoShmopSharedMemory=Os arquivos .lang foram carregados na memória compartilhada ExamplesWithCurrentSetup=Exemplos com atuais configurações que estão rodando ListOfDirectories=Lista de diretórios com templates de documentos abertos(.odt) @@ -332,7 +260,6 @@ ListOfDirectoriesForModelGenODT=A lista de diretórios contém modelos de arquiv NumberOfModelFilesFound=Número de arquivos de temas ODT/ODS encontrados nestes diretórios ExampleOfDirectoriesForModelGen=Exemplo de sintaxe:
c:\\meudir
/home/meudir
DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
Para saber como criar seus temas de documento em ODT, antes de armazená-los nesses diretórios, leia a documentação wiki: -FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template FirstnameNamePosition=Posição do Nome/Sobrenome DescWeather=As seguintes imagens serão mostradas no painel quando o número de ações tardias alcançar os seguintes valores: KeyForWebServicesAccess=Chave para usar o Serviços Web (parâmetro "dolibarrkey" no serviço web) @@ -345,7 +272,6 @@ SmsTestMessage=Mensagem Teste de __PHONEFROM__ para __PHONETO__ ModuleMustBeEnabledFirst=O módulo %s deve estar primeiramente habilitado se você precisa desta funcionalidade. SecurityToken=Chave para proteção das URLs NoSmsEngine=Sem gestor de envido de SMS disponível. Por default o gestor de envio de SMS não vêm instalado (porque depende de um fornecedor externo) mas você pode achar um em %s -PDF=PDF PDFDesc=Você pode configurar cada opção global relacionada com geração de PDF PDFAddressForging=Regras para forjar caixas de endereços HideAnyVATInformationOnPDF=Esconder todas as informações relacionadas com ICMS na geração de PDF @@ -353,7 +279,6 @@ HideDescOnPDF=Esconder todas as descrições de produto na geração de PDF HideRefOnPDF=Esconder ref. dos produtos na geração de PDF HideDetailsOnPDF=Esconder a linha de detalhes dos produtos na geração de PDF PlaceCustomerAddressToIsoLocation=Use a posição padrão francesa (La Poste) para a posição do endereço do cliente -Library=Biblioteca UrlGenerationParameters=Parâmetros para URLs de segurança SecurityTokenIsUnique=Usar um único parâmetro na chave de segurança para cada URL EnterRefToBuildUrl=Entre com a referência do objeto %s @@ -364,34 +289,22 @@ NewVATRates=Taxa de ICMS nova PriceBaseTypeToChange=Modificar os preços com base no valor de referência defino em MassConvert=Lançar converções massivas String=Variável -TextLong=Texto longo Int=Inteiro Float=Flutuante DateAndTime=Data e Hora -Unique=Único -Boolean=Boolean -ExtrafieldPhone = Telefone -ExtrafieldPrice = Preço -ExtrafieldMail = E-mail -ExtrafieldUrl = Url -ExtrafieldSelect = Selecionar lista -ExtrafieldSelectList = Selecionar da tabela -ExtrafieldSeparator=Separador +Boolean=Booleano (uma caixa de seleção) +ExtrafieldMail =E-mail +ExtrafieldSelect =Selecionar lista ExtrafieldPassword=Senha -ExtrafieldCheckBox=Caixa de seleção -ExtrafieldRadio=Botão de Rádio -ExtrafieldCheckBoxFromList= Caixa de seleção da tabela +ExtrafieldRadio=Botões de seleção única (apenas na escolha) +ExtrafieldCheckBox=Caixas de seleção ExtrafieldLink=Link para um objeto -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Lista de parâmetros tem que ser tipo chave,valor

por exemplo:
1,valor1
2,valor2
3,valor3
... ExtrafieldParamHelpradio=Lista de parâmetros tem que ser do tipo chave,valor

por exemplo:
1,valor1
2,valor2
3,valor3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Os parâmetros devem ser ObjectName:Classpath
Sintaxe : ObjectName:Classpath
Exemplo : Sociedade:sociedade/class/sociedade.class.php LibraryToBuildPDF=Biblioteca usada para a geração de PDF WarningUsingFPDF=Aviso: Sua conf.php Contém diretrize dolibarr_pdf_force_fpdf=1. Isso significa que você usa a biblioteca FPDF para gerar arquivos em PDF. Essa biblioteca é velha e não suporta muitas novas funções (Unicode, imagem transparente, cyrillic, línguas arábicas e asiáticas,...), portanto pode ocorrer alguns erros durante a geração de PDF.
Para corrigir esse problema e ter todo o suporte na geração de PDF, baixe Biblioteca TCPDF, então comente ou remova essa linha $dolibarr_pdf_force_fpdf=1, e adicione essa $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' LocalTaxDesc=Alguns paises aplicam de 2 a 3 taxas em cada linha de fatura. Se for esse caso, escolha o tipo de segunda e terceira taxa. Os possíveis tipos são:
1 : Taxa local aplicam em produtos e serviços sem ICMS (ICMS não é aplicada em taxa local)
2 : Taxa local aplicam em produtos e serviços antes do ICMS (ICMS é calculado no montante + taxa local)
3 : Taxa local aplicam em produtos sem o ICMS (ICMS não é aplicada na taxa local)
4 : Taxa local aplicam nos produtos antes do ICMS (ICMS é calculado no montante + taxa local)
5 : Taxa local aplicam no serviço sem o ICMS (ICMS não é aplicado em taxa local)
6 : Taxa local aplicam em serviços antes do ICMS (ICMS é calculado no montante + taxa local) -SMS=SMS LinkToTestClickToDial=Entre com um número telefônico para chamar e mostrar um link que testar a URL CliqueParaDiscar para usuário %s RefreshPhoneLink=Atualizar link LinkToTest=Clique no link gerado pelo usuário %s (clique no número telefônico para testar) @@ -410,7 +323,6 @@ AllBarcodeReset=Todos os valores de código de barras foram removidas NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de código de barras habilitado para configuração do módulo de código de barras. EnableFileCache=Ativar cache de arquivos ShowDetailsInPDFPageFoot=Adicionar mais detalhes no rodapé dos arquivos PDF, tais como o endereço da empresa, ou os nomes dos gerentes (para completar as IDs profissionais, capital da empresa e o número VAT). -NoDetails=Sem mais detalhes no rodapé DisplayCompanyInfo=Exibir endereço da empresa DisplayCompanyManagers=Exibir nomes dos gerentes DisplayCompanyInfoAndManagers=Exibir o endereço da empresa e os nomes dos gerentes @@ -418,42 +330,27 @@ EnableAndSetupModuleCron=Se você deseja ter esta fatura recorrente sendo gerada ModuleCompanyCodeAquarium=Retorna código de contabilidade construido por:
%s seguido pelo código do fornecedor terceiro pelo código de contabilidade do fornecedor,
%s seguido pelo código do cliente terceiro pelo código de contabilidade do cliente. ModuleCompanyCodePanicum=Retorna um código de contabilidade vazio. ModuleCompanyCodeDigitaria=Código de contabilidade depende do código do terceiro. O Código é composto pelo caractere "C" na primeira posição seguido pelos 5 primeiros caracteres do código do terceiro. -Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. UseDoubleApproval=Usar uma aprovação de 3 etapas quando o valor (sem taxa) é maior do que ... -WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -# Modules Module0Name=Usuários e grupos -Module0Desc=Users / Employees and Groups management -Module1Name=Terceiros +Module0Desc=Gerenciamento de Usuários / Funcionários e Grupos Module1Desc=Gerenciamento de empresas e contatos (clientes, prospecção, etc.) -Module2Name=Comercial Module2Desc=Gestor Comercial -Module10Name=Contabilidade Module10Desc=Relatório de Contabilidade Simples (jornais, rotação de estoque) baseado no conteúdo do banco de dados. -Module20Name=Orçamentos Module20Desc=Gestor de Orçamentos Module22Name=E-Mails Massivos Module22Desc=Envio de E-Mails Massivos (spam) -Module23Name=Energia Module23Desc=Monitoramento de Consumo de Energia Module25Name=Pedidos de Clientes Module25Desc=Gestor de Pedidos de Clientes -Module30Name=Faturas Module30Desc=Gestor de Faturas e Notas de Créditos para Clientes. Gestor de faturas para Fornecedores -Module40Name=Fornecedores Module40Desc=Gestor de Fornecedores e Compra (Pedidos e Faturas) Module42Name=Registros -Module42Desc=Recursos para registro (arquivo, syslog, etc.) -Module49Name=Editores Module49Desc=Gestor de Editores -Module50Name=Produtos Module50Desc=Gestor de Produtos Module51Name=Cartas Massivos Module51Desc=Gestão de correspondência do massa Module52Name=Estoques Module52Desc=Gestor de Estoques (produtos) -Module53Name=Serviços Module53Desc=Gestor de Serviços Module54Name=Contratos/Assinaturas Module54Desc=Gestor de Contratos (serviços e assinaturas recorrentes) @@ -465,9 +362,7 @@ Module57Name=Ordens de pagamento bancárias diretas Module57Desc=Gerenciamento dos pedidos de pagamento com Débito Direto. Isto inclui a geração do arquivo SEPA para os países europeus. Module58Name=CliqueParaDiscarl Module58Desc=Integração do Sistema CliqueParaDiscar (Asterisk, etc.) -Module59Name=Bookmark4u Module59Desc=Adicione uma função para gerar uma conta Bookmark4u de uma conta Dolibarr -Module70Name=Intervenções Module70Desc=Gestor de Intervenções Module75Name=Despesas e Notas de Viagem Module75Desc=Gestor de Despesas e Notas de Viagem. Administração das notas de despesas e deslocamentos @@ -479,98 +374,68 @@ Module100Name=Site Externo Module100Desc=Incluir seu site no menu superior do Dolibarr Module105Name=Carteiro e SPIP Module105Desc=Carteiro ou Interface SPIP para Módulo MembroMailman or SPIP interface for member module -Module200Name=LDAP Module200Desc=Diretório de sincronização do LDAP -Module210Name=PostNuke -Module210Desc=Integração com PostNuke Module240Name=Exportações de Dados Module240Desc=Ferramenta para exportar dados do Dolibarr (com assistentes) Module250Name=Importação de Dados Module250Desc=Ferramenta para importar dados para o Dolibarr (com assistentes) -Module310Name=Membros Module310Desc=Gestor de Associação de Membros -Module320Name=RSS Feed Module320Desc=Adiciona um RSS feed dentro das páginas de tela do Dolibarr Module330Name=Marcadores de Página Module330Desc=Gerenciamento de agendamentos Module400Name=Projetos Module400Desc=Gestor de Projetos dentro de outros módulos -Module410Name=Webcalendar Module410Desc=Integração do Webcalendar Module500Name=Taxas, Contribuições Sociais e Dividendos Module500Desc=Gestor Taxas, Contribuições Sociais e Dividentos -Module510Name=Contratos e salários do empregado -Module510Desc=Gerenciamento dos contratos, salários e pagamentos dos empregados -Module520Name=Empréstimo Module520Desc=Gestão dos empréstimos -Module600Name=Notificações Module600Desc=Enviar notificações por e-mail (disparadas por alguns eventos comerciais) para os usuários (configuração definida para cada usuário), contatos de terceiros (configuração definida para cada terceiro) ou para e-mails fixos Module700Name=Doações Module700Desc=Gestor de Doações -Module770Name=Relatórios de despesas Module770Desc=Gestão e reivindicação de relatórios de despesas (transporte, refeição, ...) Module1120Name=Fornecedor - proposta comercial Module1120Desc=Pedido fornecedor - proposta comercial e preços -Module1200Name=Mantis Module1200Desc=Integração Mantis -Module1400Name=Contabilidade Module1400Desc=Gestor de Contabilidade (duas partes) Module1520Name=Geração de Documentos Module1520Desc=Geração de documentos via e-mail em massa Module1780Name=Categorias Module1780Desc=Gestor de Categorias (produtos, fornecedores e clientes) -Module2000Name=Editor WYSIWYG Module2000Desc=Permitir editar alguma área do texto usando um editor avançado (Baseado no CKEditor) Module2200Name=Preços dinâmicos Module2200Desc=Habilitar o uso de expressões matemáticas para os preços -Module2300Name=Cron Module2300Desc=Gestor de Tarefas Agendadas -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Name=Eventos / Agenda +Module2400Desc=Acompanhe os eventos realizados e futuros. Deixe o aplicativo registrar eventos automáticos para fins de rastreamento ou gravar eventos manuais ou reuniões. Module2500Name=Gerenciamento de Conteúdo Eletrônico Module2500Desc=Salve e compartilhe documentos Module2600Name=Serviços API/Web (Servidor SOAP) Module2600Desc=Ativa o servidor de serviços web do Dolibarr -Module2610Name=Serviços API/Web (servidor REST) Module2610Desc=Permitir que o servidor prestação de serviços de API REST do Dolibarr Module2660Name=Chamar ServiçosWeb (cliente SOAP) Module2660Desc=Habilitar o webservices do Dolibarr (pode ser usado para empurrar de dados / pedidos de servidores externos. Ordens Fornecedor suporte apenas para o momento) -Module2700Name=Gravatar Module2700Desc=Usar serviço online do Gravatar (www.gravatar.com) para mostrar foto de usuários/membros (achado pelos emails deles). Precisa de acesso a internet -Module2800Desc=Cliente FTP -Module2900Name=GeoIPMaxmind Module2900Desc=Capacidade de conversão com o GeoIP Maxmind -Module3100Name=Skype Module3100Desc=Adicionar um botão Skype nos cartões dos usuários / terceiros / contatos membros -Module4000Name=RH -Module4000Desc=Gestão de recursos humanos Module5000Name=Multi-Empresas Module5000Desc=Permite gerenciar várias empresas Module6000Name=Fluxo de Trabalho Module6000Desc=Gestor de Fluxo de Trabalho -Module10000Name=Websites Module10000Desc=Criar websites públicos com um editor WYSIWYG. Configure apenas o seu servidor web para direcionar para um diretório dedicado para tê-lo online na Internet. Module20000Name=Gerenciamento de folgas e férias Module20000Desc=Autorizar e acompanhar solicitações de licença de funcionários -Module39000Name=Lote do produto Module39000Desc=Lote ou número de serie, para compra e venda administrado produtos -Module50000Name=PayBox Module50000Desc=Módulo para oferecer pagamento online via cartão de crédito com PayBox Module50100Name=Ponto de Vendas Module50100Desc=Módulo ponto de vendas (PDV) -Module50200Name=Paypal Module50200Desc=Módulo que oferece pagamento online via cartão de crédito com Paypal -Module50400Name=Contabilidade (avançada) Module50400Desc=Gestão de Contabilidade (partes duplas) Module54000Name=ImprimirIPP Module54000Desc=Imprima via Cups IPP Module55000Name=Pesquisa Aberta Module55000Desc=Módulo que integra pesquisa (tipo: Doodle, Studs, Rdvz, ...) -Module59000Name=Margens Module59000Desc=Módulo para gerenciar margens -Module60000Name=Comissões Module60000Desc=Módulo para gerenciar comissão -Module63000Name=Recursos Module63000Desc=Gerenciar recursos (impressoras, carros, salas, etc.) que você pode compartilhar em eventos. Permission11=Ler Faturas de Clientes Permission12=Criar/Modificar Faturas de Clientes @@ -591,10 +456,9 @@ Permission32=Criar/Modificar Produtos Permission34=Deletar Produtos Permission36=Ver/Gerenciar Produtos Ocultos Permission38=Exportar Produtos -Permission41=Ler Projetos (Projetos Compartilhados e Projetos que eu contratei para) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Leia projetos e tarefas (projeto compartilhado e projetos para os quais eu sou um contato). Também pode inserir o tempo consumido, para mim ou minha hierarquia, nas tarefas atribuídas (Folha de horários) +Permission42=Criar / modificar projetos (projeto compartilhado e projetos para os quais eu sou um contato). Também pode criar tarefas e atribuir usuários a projetos e tarefas Permission44=Deletar Projetos (Projetos Compartilhados e Projetos que eu contratei para) -Permission45=Exportar projetos Permission61=Ler Intervenções Permission62=Criar/Modificar Intervenções Permission64=Deletar Intervenções @@ -603,7 +467,6 @@ Permission71=Ler Membros Permission72=Criar/Modificar Membros Permission74=Deletar Membros Permission75=Configurar tipos e atributos dos Membros -Permission76=Exportar dados Permission78=Ler Assinaturas Permission79=Criar/Modificar Assinaturas Permission81=Ler Pedidos de Clientes @@ -648,7 +511,6 @@ Permission162=Criar/Modificar Contratos Permission163=Ativar Serviço de um Contrato Permission164=Desabilitar Serviço de um Contrato Permission165=Excluir Contratos/assinaturas -Permission167=Exportar contratos Permission171=Ler viagens e despesas (suas e de seus subordinados) Permission172=Criar/Modificar Viagens Permission173=Deletar Viagens @@ -695,7 +557,7 @@ PermissionAdvanced253=Criar/Modificar Usuários internos/externos e suas Permiss Permission254=Criar/Modificar Usuários Externos Permission255=Modificar Senha de Outros Usuários Permission256=Deletar ou Desativar Outros Usuários -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Estender o acesso a todos os terceiros (não apenas os terceiros para os quais o usuário é um representante de venda).
Não é efetivo para usuários externos (sempre limitados a si próprios para propostas, pedidos, faturas, contratos, etc.).
Não é efetivo para Projetos (apenas regras sobre permissões do projeto, visibilidade e questões de atribuição). Permission271=Ler CA Permission272=Ler Faturas Permission273=Emitir Fatura @@ -750,7 +612,7 @@ Permission773=Excluir relatórios de despesas Permission774=Leia todos os relatórios de despesas (mesmo para o utilizadores Não subordinados) Permission775=Aprovar os relatórios de despesas Permission776=Relatórios de despesas pagas -Permission779=Exportar - Relatórios de despesas +Permission779=Exportar - Relatórios de despesas Permission1001=Ler Estoques Permission1002=Criar/Modificar Estoques Permission1003=Excluir Estoques @@ -808,121 +670,89 @@ Permission2802=Usar cliente FTP no modo escrita (deletar ou upload de arquivos) Permission50101=Usar Ponto de Vendas Permission50201=Ler Transações Permission50202=Importar Transações -Permission54001=Imprimir Permission55001=Ler Pesquisa Permission55002=Criar/Modificar Pesquisa Permission59001=Leia margens comerciais -Permission59002=Definir margens comerciais Permission59003=Leia cada margem do usuário Permission63001=Ler recursos Permission63002=Criar/Modificar recursos Permission63003=Excluir recursos Permission63004=Conectar os recursos aos eventos da agenda -DictionaryCompanyType=Tipos de terceiros DictionaryCompanyJuridicalType=Formas legais dos terceiros DictionaryProspectLevel=Nível potencial Prospect DictionaryCanton=Estado/Província DictionaryRegion=Regiões -DictionaryCountry=Países -DictionaryCurrency=Moedas -DictionaryCivility=Títulos pessoais e profissionais DictionaryActions=Tipos de eventos na agenda DictionarySocialContributions=Tipos de encargos sociais e fiscais DictionaryVAT=Taxas de VAT ou imposto sobre vendas de moeda DictionaryRevenueStamp=Quantidade de selos fiscais -DictionaryPaymentConditions=Condições de pagamento DictionaryPaymentModes=Modos de pagamento DictionaryTypeContact=Tipos Contato / Endereço DictionaryEcotaxe=Ecotaxa (REEE) DictionaryPaperFormat=Formatos de papel -DictionaryFormatCards=Cards formats DictionaryFees=Tipos de benefício DictionarySendingMethods=Métodos do transporte DictionaryStaff=Pessoal -DictionaryAvailability=Atraso na entrega DictionaryOrderMethods=Métodos de compra DictionarySource=Origem das propostas / ordens -DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modelos para o plano de contas DictionaryEMailTemplates=Modelos de E-mails -DictionaryUnits=Unidades DictionaryProspectStatus=Status de Prospecção DictionaryHolidayTypes=Tipos de licenças DictionaryOpportunityStatus=Status oportunidade para projeto / lead SetupSaved=Configurações Salvas -BackToModuleList=Voltar à lista de módulos BackToDictionaryList=Voltar para a lista de dicionários VATManagement=Gestor de ICMS VATIsUsedDesc=Como padrão, quando da criação de orçamentos, faturas, pedidos, etc. a taxa do ICMS acompanha a regra padrão ativa:
se o vendedor não estiver sujeito ao ICMS, então o padrão do ICMS é 0. Fim da regra.
Se o (país da venda= país da compra), então o ICMS por padrão é igual ao ICMS do produto no país da venda. Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e os produtos são meios de transporte (carro, navio, avião), o VAT padrão é 0 (O VAT deverá ser pago pelo comprador à receita federal do seu país e não ao vendedor). Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e o comprador não é uma pessoa jurídica, então o VAT por padrão é o VAT do produto vendido. Fim da regra.
Se o vendedor e o comprador estão na Comunidade Europeia e o comprador é uma pessoa jurídica, então o VAT é 0 por padrão . Fim da regra.
Em qualquer outro caso o padrão proposto é ICMS=0. Fim da regra. VATIsNotUsedDesc=Por padrão o ICMS sugerido é 0, o que pode ser usado em casos tipo associações, pessoas ou pequenas empresas. VATIsUsedExampleFR=Na França, as empresas ou organizações tem um sistema fiscal real (simplificado real ou normal real). Um sistema no qual o ICMS(vat) é declarado. VATIsNotUsedExampleFR=Na França, as associações que não declaram ICMS(vat) ou empresas, organizações ou profissionais liberais que tem escolhidos o sistema fiscal de micro empresas (VAT em franquia) e pago uma franquia VAT sem qualquer declaração de ICMS(vat). Está escolha será mostrado com uma refêrencia "Não Aplicado ICMS(vat) - art-293B de CGI" nas faturas. -##### Local Taxes ##### LTRate=Rata LocalTax1IsNotUsed=Não utilizar segundo imposto LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (outro que não seja ICMS) LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS) -LocalTax1Management=Segundo tipo de imposto -LocalTax1IsUsedExample= -LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Não utilizar terceiro imposto LocalTax2IsUsedDesc=Utilizar um terceiro tipo de imposto (outro que não seja ICMS) LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (outro que não seja ICMS) -LocalTax2Management=Terceiro tipo de imposto -LocalTax2IsUsedExample= -LocalTax2IsNotUsedExample= -LocalTax1ManagementES= Gestor RE -LocalTax1IsUsedDescES= A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., segue a regra padrão ativa:
Se o comprador não estiver sujeito à RE, a RE por padrão=0. Fim da regra.
Se o comprador for sujeito à RE, então será aplicada a RE padrão. Fim da regra.
-LocalTax1IsNotUsedDescES= A RE padrão proposta é 0. Fim da regra. -LocalTax1IsUsedExampleES= Na Espanha eles são profissionais sujeito a alguma seção especifica da IAE espanhola. -LocalTax1IsNotUsedExampleES= Na Espanha eles são proficionais e sócios e sujeito a uma certa seção da IAE espanhola. -LocalTax2ManagementES= Gestor IRPF -LocalTax2IsUsedDescES= A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., acompanha a regra padrão ativa:
Se o vendedor não estiver sujeito ao IRPF, então o IRPF por padrão=0. Fim da regra.
Se o vendedor estiver sujeito ao IRPF, então aplica-se o IRPF padrão. Fim da regra.
-LocalTax2IsNotUsedDescES= Por padrão, o iRPF sugerido é 0. Fim da regra. -LocalTax2IsUsedExampleES= Na Espanha, freelancers e profissionais independentes que oferecem serviços e empresas que tenham escolhidos o módulo de sistema de imposto. -LocalTax2IsNotUsedExampleES= Na Espanha eles são negócios não sujeito ao módulo de sistema de imposto. +LocalTax1ManagementES=Gestor RE +LocalTax1IsUsedDescES=A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., segue a regra padrão ativa:
Se o comprador não estiver sujeito à RE, a RE por padrão=0. Fim da regra.
Se o comprador for sujeito à RE, então será aplicada a RE padrão. Fim da regra.
+LocalTax1IsNotUsedDescES=A RE padrão proposta é 0. Fim da regra. +LocalTax1IsUsedExampleES=Na Espanha eles são profissionais sujeito a alguma seção especifica da IAE espanhola. +LocalTax1IsNotUsedExampleES=Na Espanha eles são proficionais e sócios e sujeito a uma certa seção da IAE espanhola. +LocalTax2ManagementES=Gestor IRPF +LocalTax2IsUsedDescES=A taxa RE padrão, quando criando orçamentos, faturas, pedidos, etc., acompanha a regra padrão ativa:
Se o vendedor não estiver sujeito ao IRPF, então o IRPF por padrão=0. Fim da regra.
Se o vendedor estiver sujeito ao IRPF, então aplica-se o IRPF padrão. Fim da regra.
+LocalTax2IsNotUsedDescES=Por padrão, o iRPF sugerido é 0. Fim da regra. +LocalTax2IsUsedExampleES=Na Espanha, freelancers e profissionais independentes que oferecem serviços e empresas que tenham escolhidos o módulo de sistema de imposto. +LocalTax2IsNotUsedExampleES=Na Espanha eles são negócios não sujeito ao módulo de sistema de imposto. CalcLocaltax=Relatórios sobre os impostos locais -CalcLocaltax1=Vendas - Compras CalcLocaltax1Desc=Relatorios de taxas locais são calculados pela differença entre taxas locais de venda e taxas locais de compra -CalcLocaltax2=Compras CalcLocaltax2Desc=Relatorio de taxas locais e o total de taxas locais nas compras CalcLocaltax3=De vendas CalcLocaltax3Desc=Relatorio de taxas locais e o total de taxas locais de vendas LabelUsedByDefault=Etiqueta usado por default se nenhuma tradução não for encontrado para o código =/ LabelOnDocuments=Etiqueta nos documentos NbOfDays=Nº de dias -AtEndOfMonth=No fim de mês CurrentNext=Atual/Próxima Offset=Compensar -AlwaysActive=Sempre ativo Upgrade=Atualizar MenuUpgrade=Atualizar / Ampliar -AddExtensionThemeModuleOrOther=Deploy/install external module -WebServer=Servidor web +AddExtensionThemeModuleOrOther=Implantar / instalar o módulo externo DocumentRootServer=Diretório raiz do servidor web DataRootServer=Diretório raiz dos dados -IP=IP -Port=Porta VirtualServerName=Nome virtual do servidor -OS=SO PhpWebLink=link Web-PHP -Browser=Navegador -Server=Servidor Database=Banco de Dados DatabaseServer=Servidor do Banco de Dados DatabaseName=Nome do Banco de Dados DatabasePort=Porta do Banco de Dados DatabaseUser=Usuário do Banco de Dados DatabasePassword=Senha do Banco de Dados -Tables=Tabelas TableName=Nome da Tabela NbOfRecord=Núm de gravações -Host=Servidor DriverType=Tipo de Driver SummarySystem=Resumo de informações do sistema SummaryConst=Lista de todos os parâmetros de configurações do Dolibarr -MenuCompanySetup=Empresa -DefaultMenuManager= Gestor padrão de menu +DefaultMenuManager=Gestor padrão de menu DefaultMenuSmartphoneManager=Gestor do menu de smartphone Skin=Tema Visual DefaultSkin=Tema visual default @@ -935,22 +765,15 @@ PermanentLeftSearchForm=Formulário permanente de pesquisa no menu esquerdo DefaultLanguage=Idioma padrão a ser usado (código do idioma) EnableMultilangInterface=Habilitar interface multi-idioma EnableShowLogo=Exibir logo no menu esquerdo -CompanyInfo=Informação da empresa/fundação -CompanyIds=Identificações da empresa/fundação +CompanyInfo=Informações da Empresa/Organização +CompanyIds=Identificações da Empresa/Organização CompanyName=Nome CompanyAddress=Endereço CompanyZip=CEP CompanyTown=Município -CompanyCountry=País -CompanyCurrency=Moeda principal -CompanyObject=Objeto da empresa -Logo=Logo -DoNotSuggestPaymentMode=Não sugerir NoActiveBankAccountDefined=Nenhuma conta bancária ativa está definida -OwnerOfBankAccount=Titular da conta bancária %s BankModuleNotActive=O módulo de contas bancárias não está habilitado ShowBugTrackLink=Mostrar link "%s" -Alerts=Alertas DelaysOfToleranceBeforeWarning=Prazos de tolerância antes do aviso DelaysOfToleranceDesc=Esta janela permite definir os prazos de tolerância antes que o aviso é reportado na tela com o símbolo %s, sobre cada elemento em atraso. Delays_MAIN_DELAY_ACTIONS_TODO=Prazo de tolerância (em dias) antes do alerta sobre eventos planejados (eventos da agenda) ainda não concluídos @@ -969,30 +792,20 @@ Delays_MAIN_DELAY_MEMBERS=Prazo de tolerância (em dias) antes do aviso do atras Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Prazo de tolerância (em dias) antes do aviso de fazer depósitos de cheques Delays_MAIN_DELAY_EXPENSEREPORTS=Prazo de tolerância (em dias) antes do alerta para aprovação do relatório de despesas SetupDescription1=A área de configuração é para a definição dos parâmetros iniciais antes de se usar o Dolibarr. -SetupDescription2=As duas etapas mais importantes da configuração são as duas primeiras no menu de configuração à esquerda: Página de configuração da companhia/fundação e a Página de configuração dos módulos. -SetupDescription3=Os parâmetros no menu Configuração -> Companhia/Fundação são exigidos, pois os dados enviados são usados nas telas do Dolibarr e para personalizar o comportamento padrão do aplicativo (para funções que dependem do país, por exemplo). -SetupDescription4=Os parâmetros no menu Configuração -> Módulos são exigidos, pois o Dolibarr não é um ERP/CRM monolítico, mas uma coleção de diversos módulos, todos mais ou menos independentes. Novas funções serão adicionadas aos menus para cada módulo que você habilitar. SetupDescription5=Outros menu precisa entrar com parâmetros opcionais do gestor. LogEvents=Auditoría de segurança dos eventos Audit=Auditoría -InfoDolibarr=Sobre o Dolibarr -InfoBrowser=Sobre o navegador InfoOS=Sobre o SO -InfoWebServer=Sobre o servidor web InfoDatabase=Sobre o banco de dados -InfoPHP=Sobre o PHP InfoPerf=Sobre Desempenhos -BrowserName=Nome do navegador BrowserOS=Navegador OS ListOfSecurityEvents=Lista de eventos de segurança do Dolibarr SecurityEventsPurged=Eventos de segurança foram purgados(apagados) LogEventDesc=Você pode habilitar aqui os logging para os eventos de segurança do Dolibarr. Administradores podem ver o conteúdo via menu Ferramentas do Sistema - Auditar. Aviso, essa função pode consumir uma grande quantidade de dados no banco de dados. -AreaForAdminOnly=Essas funções podem ser usadas somente por Usuários Administrativos. SystemInfoDesc=Informações do sistema está faltando informações, técnicas você consegue em modo de leitura e é visivel somente para administradores. SystemAreaForAdminOnly=Essa área é dísponivel apenas para administradores. Ninguém do Dolibarr pode diminuir essas permissões. CompanyFundationDesc=Editar nesta página toda a informação conhecida da companhia ou fundação que você precisa gerenciar (Para isto, clique no botão "Modificar" ou "Salvar" no rodapé da página). DisplayDesc=Você pode escolher cada parâmetro relacionado com a aparência do Dolibarr e testar aqui -AvailableModules=Módulos disponíveis ToActivateModule=Para ativar os módulos, vá à área de configuração (Home->Configuração->Módulo). SessionTimeOut=Expiro tempo de sessão SessionExplanation=Esse número garante que a sessão nunca irá expirar antes desse tempo de atraso, se o session cleaner for feito pelo Internal PHP session cleaner (e nada mais). O Internal PHP session cleaner não garante que irá expirar nesse tempo de atraso. Ele vai expirar, depois desse tempo de atraso, e quando o session cleaner está na RAM, então cada %s/%s acesso, mas somente durante o acesso feito pelos outros usuários.
Nota: em alguns servidores com mecanismo de "external session cleaning" (cron no Debian, Ubuntu ...), a sessão pode ser perdida depois desse periodo definido por default session.gc_maxlifetime, não importando importando o valor entrado aqui. @@ -1004,7 +817,7 @@ TriggerAlwaysActive=Triggers neste arquivo está sempre ativo, não importando o TriggerActiveAsModuleActive=Triggers neste arquivo são ativos quando módulo %s está ativado. GeneratedPasswordDesc=Defina aqui qual regra você deseja para gerar uma nova senha se você perguntar para ter uma geração automática de senhas DictionaryDesc=Inserir todos os dados de referência. Você pode adicionar seus valores ao padrão. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +ConstDesc=Esta página permite editar todos os outros parâmetros não disponíveis nas páginas anteriores. Estes são principalmente parâmetros reservados para desenvolvedores ou solução de problemas avançada. Para uma lista de opções verifique aqui. MiscellaneousDesc=Todos os outros parâmetros relacionados com a segurança são definidos aqui. LimitsSetup=Configurações de Limites/Precisões LimitsDesc=Você pode definir limites, precisões e otimizações utilizadas pelo Dolibarr aqui @@ -1028,9 +841,8 @@ RestoreDesc=Para restaurar o backup Dolibarr, você deve: RestoreDesc2=* Restaurar o arquivo de backup (zipado) no diretório dos documentos, para extrair a arvore de arquivos no diretório do documento da nova instalação do Dolibarr ou dentro do atual diretório dos documentos (%s). RestoreDesc3=* Restaurar os dados de backup do arquivo de despejo, para dentro do banco de dados da nova instalação do Dolibarr ou para dentro da atual instalação. Aviso, uma vez a restauração completa, você deve usar o login/senha, que existia quando o backup foi feito, para conectar denovo. Para restaurar o backup do banco de dados para dentro da atual instalação, você pode seguir esse assistente. RestoreMySQL=Importar MySQL -ForcedToByAModule= Essa Regra é forçada para %s by um módulo ativado +ForcedToByAModule=Essa Regra é forçada para %s by um módulo ativado PreviousDumpFiles=Disponível banco de dados de backup dos arquivos de despejo -WeekStartOnDay=Primeiro dia da semana RunningUpdateProcessMayBeRequired=Rodando o processo de upgrade parece ser requerido (Versão dos programas %s é diferente da versão do banco de dados %s) YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve rodar esse comando na linha de comando (CLI) depois de logar no shell com o usuário %s ou você deve adicionar a opção -W no final da linha de comando para fornecer a senha %s. YourPHPDoesNotHaveSSLSupport=Função SSL functions não está disponível no seu PHP @@ -1038,37 +850,25 @@ DownloadMoreSkins=Mais skins para baixar SimpleNumRefModelDesc=Retorna o número de referênciaReturns com o formato %syymm-nnnn onde yy é o ano, mm é o mês é nnnn é a sequencia sem buraco e sem reset ShowProfIdInAddress=Mostrar id proficional com endereço no documento ShowVATIntaInAddress=Esconder ICMS dentro num com endereços no documento -TranslationUncomplete=Tradução parcial MAIN_DISABLE_METEO=Desativar visualização meteo TestLoginToAPI=Teste de login para API ProxyDesc=Algumas funções do Dolibarr precisam ter acesso a internet para funcionar. Defina esses parâmetros aqui. se o servidor Dolibarr esta atrás de um servidor de proxy, esses parâmetros falam pro Dolibarr como acessar a internet através disso. -ExternalAccess=Acesso externo MAIN_PROXY_USE=Use um servidor de proxy (caso contrário acesso direto a internet) MAIN_PROXY_HOST=Nome/Endereço do servidor de proxy MAIN_PROXY_PORT=Porta do servidor de proxy MAIN_PROXY_USER=Login para usar no servidor de proxy MAIN_PROXY_PASS=Senha para usar no servidor de proxy DefineHereComplementaryAttributes=Defina aqui todos os atributos, não disponível por default, e que você quer que seja suportado por %s. -ExtraFields=Atributos complementares -ExtraFieldsLines=Atributos complementares (linhas) ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas de encomenda) -ExtraFieldsSupplierInvoicesLines=Atributos complementares (linhas da fatura) ExtraFieldsThirdParties=Atributos complementares (terceiros) ExtraFieldsContacts=Atributos complementares (contato/endereço) ExtraFieldsMember=Atributos complementares (membros) -ExtraFieldsMemberType=Atributos complementares (tipo de membro) -ExtraFieldsCustomerInvoices=Atributos complementares (faturas) ExtraFieldsSupplierOrders=Atributos complementares (pedidos) -ExtraFieldsSupplierInvoices=Atributos complementares (faturas) -ExtraFieldsProject=Atributos complementares (projetos) -ExtraFieldsProjectTask=Atributos complementares (tarefas) ExtraFieldHasWrongValue=Atributo %s tem um valor errado. AlphaNumOnlyLowerCharsAndNoSpace=apenas alfanumérico e minúsculas, sem espaço SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar email para seu email, sendmail executa a configuração que deve conter opção -ba (parâmetro mail.force_extra_parameters dentro do seu arquivo php.ini). Se algum destinatário não receber emails, tente editar esse parâmetro PHP com mail.force_extra_parameters = -ba). PathToDocuments=Caminho para documentos -PathDirectory=Diretório SendmailOptionMayHurtBuggedMTA=Função para envios de correspondência usando o método "PHP mail direct" irá gerar uma mensagem na correspondência que pode não estar corretamente analisada por algum servidor de recepção de correspondência. Resultando que essa correspondência não pode ser lida pela pessoa hostiada por essa plataforma bugada. É caso de alguns provedores de internet (Ex: Orange na França). Isso não é um problema para o Dolibarr nem dentro PHP mas para servidor receptor de correspondência. Você pode contudo adicionar a opção MAIN_FIX_FOR_BUGGED_MTA para 1 dentro da configuração, outra modificação do Dolibarr para evitar isso. Contudo você pode sofrer problemas com outros servidores que respeitão estritamente os padrões SMTP. A outra solução (RECOMENDADA) é usar o método "SMTP socket library" que não tem desvantagens. -TranslationSetup=Configuração da tradução TranslationKeySearch=Buscar uma chave ou variável de tradução TranslationOverwriteKey=Sobrescrever uma variável de tradução TranslationDesc=Como definir o idioma exibido no aplicativo :
* Systemwide: menu Início - Configuração - Exibição
* Por usuário : Configuração da exibição por usuário aba do cartão do usuário (clique no nome do usuário na parte superior da tela). @@ -1079,11 +879,11 @@ CurrentTranslationString=Variável de tradução atual WarningAtLeastKeyOrTranslationRequired=Pelo menos um critério de busca é exigido para a chave ou variável de tradução. NewTranslationStringToShow=Nova variável de tradução a ser exibida OriginalValueWas=A tradução original foi sobrescrita. O valor original era:

%s -TotalNumberOfActivatedModules=Número total de módulos ativados em destaque: %s / %s +TotalNumberOfActivatedModules=Aplicação / módulos ativados: %s / %s YouMustEnableOneModule=Você pelo menos deve ativar 1 módulo ClassNotFoundIntoPathWarning=Classe %s não achado dentro o caminho PHP YesInSummer=Sim em verão -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, apenas os seguintes módulos são abertos para usuários externos (seja qual for a permissão de tais usuários) e somente se as permissões fossem concedidas: SuhosinSessionEncrypt=Sessão armazenada criptografada pelo Suhosin ConditionIsCurrently=Condição é atualmente %s YouUseBestDriver=Você usa o driver %s que é o melhor driver disponível atualmente. @@ -1096,24 +896,16 @@ BrowserIsKO=Você está usando o navegador %s. Esse navegador é uma péssima es XDebugInstalled=XDebug é carregado. XCacheInstalled=XCache é carregado. AddRefInList=Aparência cliente/fornecedor ref dentro da lista (escolha a lista ou combobox) e mais o hyperlink. Terceiros serão exibidos co o nome "CC12345 - SC45678 - A grande corporação", ao invés de "A grande corporação". -AskForPreferredShippingMethod=Perguntar pelo Método de Envio preferido para Terceiros -FieldEdition=Edição do campo %s FillThisOnlyIfRequired=Exemplo: +2 (Preencha somente se compensar o problema do timezone é experiente) -GetBarCode=Obter código de barras -##### Module password generation PasswordGenerationStandard=Retorna uma senha gerara de acordo com o algorítimo interno do Dolibarr: 8 caracteres contendo números e letras em letras minusculas. PasswordGenerationNone=Não sugerimos qualquer senha gerada. A senha deve ser inserida manualmente. PasswordGenerationPerso=Retornar uma senha de acordo com a configuração definida para a sua personalidade. -SetupPerso=De acordo com a sua configuração PasswordPatternDesc=Descrição do padrão de senha -##### Users setup ##### RuleForGeneratedPasswords=Regra para sugerir uma senha gerada ou validação de senha DisableForgetPasswordLinkOnLogonPage=Não mostrar o link "Esqueceu a senha" na página de login UsersSetup=Configurações de módulo de usuários UserMailRequired=EMail é necessário para criação de um novo usuário -##### HRM setup ##### HRMSetup=Configuração do módulo RH -##### Company setup ##### CompanySetup=Configurações de módulo das empresas CompanyCodeChecker=Módulo de geração e verificação de códigos de terceiros (cliente ou fornecedor) AccountCodeManager=Módulo de geração de códigos de contabilidade (clientes ou fornecedores) @@ -1126,17 +918,12 @@ DocumentModelOdt=Gerar documentos dos templates livres (Arquivos .ODT ou .ODS do WatermarkOnDraft=Marca d'água no documento de rascuno JSOnPaimentBill=Ative a função de preenchimento automático de linhas no formulário de pagamento CompanyIdProfChecker=Regras no Ids profissional -MustBeUnique=Deve ser único? MustBeMandatory=Obrigatória a criação de terceiros? MustBeInvoiceMandatory=Obrigatória a validação de faturas? -##### Webcal setup ##### WebCalUrlForVCalExport=Uma exportação de link para o formato %s está disponível no seguinte link: %s -##### Invoices ##### BillsSetup=Configurações do módulo de faturas BillsNumberingModule=Faturas e notas de crédito no modelo de numeração BillsPDFModules=Modelos de documentos da fatura -CreditNote=Nota de crédito -CreditNotes=Notas de crédito ForceInvoiceDate=Forçar data de fatura para data de validação SuggestedPaymentModesIfNotDefinedInInvoice=Sugerir formas de pagamentos na fatura por default se não estiver definida na fatura SuggestPaymentByRIBOnAccount=Sugerir pagamento por transferência bancária @@ -1144,16 +931,13 @@ SuggestPaymentByChequeToAddress=Sugerir pagamento por cheque para FreeLegalTextOnInvoices=Texto livre nas fatura WatermarkOnDraftInvoices=Marca d'água sobre o projeto de faturas (nenhum se estiver vazio) PaymentsNumberingModule=Modelo de enumeração para pagamentos -SuppliersPayment=Pagamentos a fornecedores SupplierPaymentSetup=Configuração dos pagamentos aos fornecedores -##### Proposals ##### PropalSetup=Configurações do módulo de orçamentos ProposalsNumberingModules=Modelos de numeração de orçamentos ProposalsPDFModules=Modelos de documentos para Orçamentos FreeLegalTextOnProposal=Texto livre em orçamentos WatermarkOnDraftProposal=Marca d'água no rascunho de orçamentos (nenhum se vazio) BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Informar conta bancária de destino da proposta -##### SupplierProposal ##### SupplierProposalSetup=Preço solicitado via fornecedor instalação de módulo SupplierProposalNumberingModules=Modelos de numeração das solicitações de preço aos fornecedores SupplierProposalPDFModules=Modelos de documentos de solicitação de preço aos fornecedores @@ -1161,9 +945,6 @@ FreeLegalTextOnSupplierProposal=Texto livre sobre os pedidos de preços de forne WatermarkOnDraftSupplierProposal=Marca d'água em projetos de ordem dos fornecedores (nenhum se estiver vazio) BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Informar conta bancária de destino da proposta WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Solicitar Fonte de Armazenagem para o pedido -##### Suppliers Orders ##### -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order -##### Orders ##### OrdersSetup=Configurações do gestor de pedidos OrdersNumberingModules=modelos de numeração de pedidos OrdersModelModule=Modelos de documentos de pedidos @@ -1171,59 +952,42 @@ FreeLegalTextOnOrders=Texto livre em pedidos WatermarkOnDraftOrders=Marca d'água no rascunho de pedidos (nenhum para vazio) ShippableOrderIconInList=Adicionar um ícone na lista de pedidos que indicam se a ordem é shippable BANK_ASK_PAYMENT_BANK_DURING_ORDER=Informar conta bancária de destino da ordem -##### Interventions ##### InterventionsSetup=Configurações do módulo intervenções FreeLegalTextOnInterventions=Texto livre nos documentos de intervenção FicheinterNumberingModules=Modelos de numeração de intervenção TemplatePDFInterventions=Modelos de documentos de cartão de intervenção WatermarkOnDraftInterventionCards=Marca d'água nos documentos de cartão de intervenção (nenhum para vazio) -##### Contracts ##### ContractsSetup=Configurações de módulo de contratos ContractsNumberingModules=módulos de numeração de contratos TemplatePDFContracts=Modelos de documentos Contratos -FreeLegalTextOnContracts=Texto livre em contratos WatermarkOnDraftContractCards=Marca d'água em projetos de contratos (nenhum se estiver vazio) -##### Members ##### MembersSetup=Configurações de módulo de membros -MemberMainOptions=Opções principais -AdherentLoginRequired= Gestor de login para cada membro +AdherentLoginRequired=Gestor de login para cada membro AdherentMailRequired=E-Mail é obrigatório para criar um novo membro MemberSendInformationByMailByDefault=Marque o checkbox para enviar confirmação de correspondência para membros (validação ou nova contribuição) é ativo por default -##### LDAP setup ##### LDAPSetup=Configurações do LDAP -LDAPGlobalParameters=Parâmetros globais LDAPUsersSynchro=Usuários -LDAPGroupsSynchro=Grupos LDAPContactsSynchro=Contatos -LDAPMembersSynchro=Membros LDAPSynchronization=sincronização LDAP LDAPFunctionsNotAvailableOnPHP=Funções LDAP não estão disponíveis no seu PHP -LDAPToDolibarr=LDAP -> Dolibarr -DolibarrToLDAP=Dolibarr -> LDAP -LDAPNamingAttribute=Chave em LDAP LDAPSynchronizeUsers=Organização dos usuários em LDAP LDAPSynchronizeGroups=Organização dos grupos em LDAP LDAPSynchronizeContacts=Organização dos contatos em LDAP LDAPSynchronizeMembers=Organização dos membros da fundação em LDAP LDAPPrimaryServer=Servidor primário LDAPSecondaryServer=Servidor secundário -LDAPServerPort=Porta do servidor LDAPServerPortExample=Porta default : 389 -LDAPServerProtocolVersion=Versão de protocolo LDAPServerUseTLS=Usuário TLS LDAPServerUseTLSExample=Seu servidor LDAP usa TLS -LDAPServerDn=Servidor DN LDAPAdminDn=Administrador DN LDAPAdminDnExample=Preencher DN (ex: cn=admin,dc=exemplo,dc=com ou cn=Administrador,cn=Usuários,dc=exemplo,dc=com para diretório ativo) LDAPPassword=Senha do administrador LDAPUserDn=DN dos Usuário LDAPUserDnExample=DN completo (ex: ou=usuários,dc=exemplo,dc=com) -LDAPGroupDn=DN dos grupos LDAPGroupDnExample=DN completo (ex: ou=grupos,dc=exemplo,dc=com) LDAPServerExample=Endereço do servidor (ex: localhost, 192.168.0.2, ldaps://ldap.exemplo.com/) LDAPServerDnExample=DN completo (Ex: dc=exemplo,dc=com) LDAPDnSynchroActive=Sincronização de Usuários e Grupos -LDAPDnSynchroActiveExample=Sincronização LDAP para Dolibarr ou Dolibarr para LDAP LDAPDnContactActive=Sincronização dos contatos LDAPDnContactActiveExample=Sincronização Ativada/Desativada LDAPDnMemberActive=Sincronização dos Membros @@ -1232,20 +996,16 @@ LDAPContactDn=Contatos DN do Dolibarr LDAPContactDnExample=DN completo (ex: ou=contatos,dc=exemplo,dc=com) LDAPMemberDn=Membros DN do Dolibarr LDAPMemberDnExample=DN completo (ex: ou=membros,dc=exemplo,dc=com) -LDAPMemberObjectClassList=Lista de objectClass LDAPMemberObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) -LDAPUserObjectClassList=Lista de objectClass LDAPUserObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex: top,inetOrgPerson ou top,usuário por active diretory) -LDAPGroupObjectClassList=Lista de objectClass LDAPGroupObjectClassListExample=Lista de ObjectClass que definem os atributos gravados (ex top,grupoDeNomeUnico) -LDAPContactObjectClassList=Lista de objectClass LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos gravados (ex: top,inetOrgPerson o top,usuários por active diretory) LDAPTestConnect=Teste de conexão LDAP LDAPTestSynchroContact=Teste de sincronização dos contatos LDAPTestSynchroUser=Teste de sincronização dos Usuário LDAPTestSynchroGroup=Teste de sincronização dos grupos LDAPTestSynchroMember=Teste de sincronização dos Membros -LDAPTestSearch= Teste de pesquisa LDAP +LDAPTestSearch=Teste de pesquisa LDAP LDAPSynchroOK=Teste de sincronização foi um sucesso LDAPSynchroKO=Teste de sincronização falhou LDAPSynchroKOMayBePermissions=Teste de sincronização falhou. Verifique se a conexão do servidor está corretamente configurada e que permita atualizações LDAP @@ -1255,23 +1015,15 @@ LDAPBindOK=Conexão/Autenticação do servidor LDAP foi um sucesso (Servidor=%s, LDAPBindKO=Conexão/Autenticação do servidor LDAP falhou (Servidor=%s, Porta=%s, Admin=%s, Senha=%s) LDAPSetupForVersion3=Servidor LDAP configurado para versão 3 LDAPSetupForVersion2=Servidor LDAP configurado para versão 2 -LDAPDolibarrMapping=Mapeamento Dolibarr -LDAPLdapMapping=Mapeamento LDAP -LDAPFieldLoginUnix=Login (unix) LDAPFieldLoginExample=Exemplo : uid -LDAPFilterConnection=Filtro de pesquisa LDAPFilterConnectionExample=Exemplo : &(objectClass=inetOrgPerson) -LDAPFieldLoginSamba=Login (samba, activedirectory) LDAPFieldLoginSambaExample=Exemplo : ananomedaconta -LDAPFieldFullname=Nome completo LDAPFieldFullnameExample=Exemplo : cn LDAPFieldPasswordNotCrypted=Senha não criptografada LDAPFieldPasswordCrypted=Senha criptografada LDAPFieldPasswordExample=Exemplo : SenhaUsuário LDAPFieldCommonNameExample=Exemplo : cn -LDAPFieldName=Nome LDAPFieldNameExample=Exemplo : sn -LDAPFieldFirstName=Primeiro nome LDAPFieldFirstNameExample=Exemplo : deumnome LDAPFieldMail=E-Mail LDAPFieldMailExample=Exemplo : mail @@ -1289,20 +1041,12 @@ LDAPFieldZip=CEP LDAPFieldZipExample=Exemplo : 00000-000 LDAPFieldTown=Município LDAPFieldTownExample=Exemplo : l -LDAPFieldCountry=País -LDAPFieldDescription=Descrição LDAPFieldDescriptionExample=Exemplo : Descrição -LDAPFieldNotePublic=Nota Pública LDAPFieldNotePublicExample=Exemplo: publicnote -LDAPFieldGroupMembers= Membros de grupo -LDAPFieldGroupMembersExample= Exemplo : membroÚnico -LDAPFieldBirthdate=Data de nascimento -LDAPFieldCompany=Empresa -LDAPFieldCompanyExample=Exemplo : o -LDAPFieldSid=SID +LDAPFieldGroupMembers=Membros de grupo +LDAPFieldGroupMembersExample=Exemplo : membroÚnico LDAPFieldSidExample=Exemplo : objetosid LDAPFieldEndLastSubscription=Data do término de inscrição -LDAPFieldTitle=Cargo LDAPFieldTitleExample=Exemplo: Título LDAPSetupNotComplete=Configurações LDAP não está completa (vá nas outras abas) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Nenhum administrador ou senha fornecido. O acesso LDAP será anônimo no modo sómente leitura. @@ -1321,16 +1065,12 @@ MemcachedModuleAvailableButNotSetup=Módulo de aceleração da memória cache es MemcachedAvailableAndSetup=Módulo de aceleração da memória cache está ativado e a configuração está completa OPCodeCache=cache OPCode NoOPCodeCacheFound=Nenhum cache OPCode foi achado. Pode ser que você use outro cache OPCode do que XCache ou eAccelerator (bom), pode ser que você não tenha cache OPCode (muito mau). -HTTPCacheStaticResources=Cache HTTP para recursos estáticos (css, img, javascript) FilesOfTypeCached=Arquivos do tipo %s estão no cache pelo servidor HTTP FilesOfTypeNotCached=Arquivos do tipo %s não estão no cache pelo servidor HTTP FilesOfTypeCompressed=Arquivos do tipo %s estão comprimidos pelo servidor HTTP FilesOfTypeNotCompressed=Arquivos do tipo %s não estão comprimidos pelo servidor HTTP -CacheByServer=Cache pelo servidor -CacheByClient=Cache pelo navegador CompressionOfResources=Comprimir as respostas HTTP TestNotPossibleWithCurrentBrowsers=Não é possível detecção automática -##### Products ##### ProductSetup=Configurações do módulo dos produtos ServiceSetup=Configurações do módulo de serviços ProductServiceSetup=Configurações dos módulos de produtos e serviços @@ -1339,26 +1079,19 @@ ViewProductDescInFormAbility=Visualização das descrições do produto nos form MergePropalProductCard=Ativar na aba Arquivos Anexos ao produto/serviço uma opção para mesclar o documento PDF do produto à proposta PDF se o produto/serviço estiver na proposta ViewProductDescInThirdpartyLanguageAbility=Visualização das descrições dos produtos no idioma do terceiro UseSearchToSelectProductTooltip=Além disso, se você tem um grande número de produtos (> 100 000), você pode aumentar a velocidade, definindo PRODUCT_DONOTSEARCH_ANYWHERE constante a 1 em Setup Outro. Busca, então, ser limitada até o início da string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) SetDefaultBarcodeTypeProducts=Tipo de código de barras default para usar nós produtos SetDefaultBarcodeTypeThirdParties=Tipo de código de barras default para usar nós terceiros UseUnits=Definir uma unidade de medida para a Quantidade durante a edição das linhas do pedido, proposta ou fatura -ProductCodeChecker= Módulo para geração de código do produto e verificação (produto ou serviço) -ProductOtherConf= Configurações de Produto / Serviço -IsNotADir=não é um diretório! -##### Syslog ##### +ProductCodeChecker=Módulo para geração de código do produto e verificação (produto ou serviço) +ProductOtherConf=Configurações de Produto / Serviço SyslogSetup=Configurações do módulo de logs SyslogOutput=Saídas de logs -SyslogFacility=Facilidade -SyslogLevel=Nível SyslogFilename=Nome do arquivo e caminho YouCanUseDOL_DATA_ROOT=Você pode usar DOL_DATA_ROOT/dolibarr.log para um arquivo de log no diretório dos "documentos" do Dolibarr. ErrorUnknownSyslogConstant=A Constante %s não é conhecida pelas constantes do Syslog OnlyWindowsLOG_USER=Somente Windows suporta LOG_USER -##### Donations ##### DonationsSetup=Configurações do módulo de doações DonationsReceiptModel=Templates de recibos de doação -##### Barcode ##### BarcodeSetup=Configurações de código de barras PaperFormatModule=Módulo de formato de impressão BarcodeEncodeModule=Tipo de codificação do código de barras @@ -1371,84 +1104,64 @@ BarcodeDescUPC=Código de barras tipo UPC BarcodeDescISBN=Código de barras tipo ISBN BarcodeDescC39=Código de barras tipo C39 BarcodeDescC128=Código de barras tipo C128 -BarcodeDescDATAMATRIX=Código de barras do tipo Datamatrix BarcodeDescQRCODE=Código de barras do tipo QR code GenbarcodeLocation=Ferramenta em linha de comando para geração de código de barras (usado pelo mecanismo interno para alguns tipos de código de barras) BarcodeInternalEngine=Mecanismo interno BarCodeNumberManager=Gerente de auto definir números de código de barras -##### Prelevements ##### WithdrawalsSetup=Configuração do módulo de pedidos com pagamento por Débito direto -##### ExternalRSS ##### ExternalRSSSetup=Configurações importantes de RSS externo NewRSS=Novo RSS Feed RSSUrl=URL de RSS RSSUrlExample=Um interessante RSS feed -##### Mailing ##### MailingSetup=Configurações do módulo de e-mails MailingEMailFrom=Emissor de e-mails (de) por envio de e-mail pelo módulo de e-mails MailingEMailError=Retornar e-mails (erros-para) por e-mails que contêm erros MailingDelay=Segundos de espera antes do envio da mensagem seguinte -##### Notification ##### NotificationSetup=Configurações do módulo de notificações por e-mail NotificationEMailFrom=Emissor de e-mails (de) por envio de notificação por e-mails FixedEmailTarget=Alvo fixo e-mail -##### Sendings ##### SendingsSetup=Configurações do módulo de envios SendingsReceiptModel=Modelo de recibo do envio SendingsNumberingModules=Módulos de númeração de envios SendingsAbility=Suporte para folhas de envios, para entregas de cliente -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. FreeLegalTextOnShippings=Texto livre para envios -##### Deliveries ##### DeliveryOrderNumberingModules=Módulo de numeração de recibos de produtos entregues DeliveryOrderModel=Modelo de recibo de produtos entregues DeliveriesOrderAbility=Suporta recibos de entrega de produtos FreeLegalTextOnDeliveryReceipts=Texto livre em recibos de entregas -##### FCKeditor ##### -AdvancedEditor=Editor avançado ActivateFCKeditor=Editor avançado ativo por: FCKeditorForCompany=Criação/edição do WYSIWIG nas descrições de elementos e nota (exceto produtos/serviços) FCKeditorForProduct=Criação/edição do WYSIWIG nas descrições de produtos/serviços e nota FCKeditorForProductDetails=Criação/edição do WYSIWIG nas linhas dos detalhes de produtos de todas entidades (orçamentos, pedidos, faturas, etc...). Aviso: Usando essa opção nesse caso é extremamente NÃO recomendado, podendo causar problemas com caracteres especiais e no formato da página na construção do arquivo PDF. -FCKeditorForMailing= Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing) +FCKeditorForMailing=Criação/edição do WYSIWIG nos E-Mails massivos (ferramentas->emailing) FCKeditorForUserSignature=criação/edição do WYSIWIG nas assinaturas de usuários FCKeditorForMail=Criação/Edição WYSIWIG para todos os e-mails (exceto Ferramentas->eMailing) -##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Conexão foi um sucesso mas o banco de dados não enxerga o banco de dados do OSCommerce (chave %s não achada na tabela %s). OSCommerceTestOk=Conexão ao servidor '%s' no banco de dados '%s' com o usuário '%s' foi um sucesso. OSCommerceTestKo1=Conexão ao servidor '%s' foi um sucesso mas o banco de dados '%s' não foi alcançado. OSCommerceTestKo2=Conexão ao servidor '%s' com o usuário '%s' falhou. -##### Stock ##### StockSetup=Configurações do módulo de estoque IfYouUsePointOfSaleCheckModule=Se você usar um módulo Ponto de Venda (POS módulo fornecido por padrão ou outro módulo externo), esta configuração pode ser ignorado pelo seu modulo ponto de Venda. A maioria modulo ponto de Vendas são projetados para criar imediatamente uma fatura e diminuir estoque por padrão tudo o que são opções aqui. Então, se você precisa ou não ter uma diminuição de ações quando registrar uma venda a partir do seu ponto de venda, verifique também a configuração do seu módulo POS. -##### Menu ##### MenuDeleted=Menu Deletado -Menus=Menus -TreeMenuPersonalized=Menus personalizados NotTopTreeMenuPersonalized=Menus personalizados não conectados à uma entrada do menu superior NewMenu=Novo Menu Menu=Seleção de menus -MenuHandler=Gestor de menus MenuModule=Fonte do módulo -HideUnauthorizedMenu= Esconder menus não autorizados (cinza) +HideUnauthorizedMenu=Esconder menus não autorizados (cinza) DetailId=Menu ID DetailMenuHandler=Gestor de menu onde mostra novo menu DetailMenuModule=Nome do módulo se a entrada do menu vier de um módulo DetailType=Tipo do menu (superior o esquerdo) -DetailTitre=Etiqueta do menu ou código da etiqueta para tradução DetailUrl=URL onde o menu envia para você (URL absoluta ou link externo com http://) DetailEnabled=Condição para mostra ou não entrar DetailRight=Condição para mostrar menus não autorizados em cinza DetailLangs=Nomes de arquivos lang para código de etiqueta da tradução -DetailUser=Interno / Externo / Todos -Target=Alvo DetailTarget=Alvos por links (_blank topo abre uma nova janela) DetailLevel=Nível (-1:menu superior, 0:menu do cabeçario, >0 menu e sub-menu) ModifMenu=Modificar menu DeleteMenu=Deletar entrada do menu ConfirmDeleteMenu=Você tem certeza que deseja excluir a entrada no menu %s? FailedToInitializeMenu=Falha na inicialização do menu -##### Tax ##### TaxSetup=Configurações do módulo taxas, contribuição social e dividendos OptionVatMode=Imposto ICMS OptionVATDefault=Base em Dinheiro @@ -1456,19 +1169,14 @@ OptionVATDebitOption=Base em Acréscimo OptionVatDefaultDesc=ICMS é um imposto:
- Nas entregas dos bens (Nós usamos a data da fatura)
- Nos pagamentos dos serviços OptionVatDebitOptionDesc=ICMS é um imposto:
- Nas entregas dos bens (Nós usamos a data da fatura)
- Na emissão da fatura do serviço SummaryOfVatExigibilityUsedByDefault=O tempo do ICMS exige por default as seguintes opções a serem escolhidas: -OnDelivery=Na entrega -OnPayment=No pagamento -OnInvoice=Na fatura SupposedToBePaymentDate=Data usada no pagamento SupposedToBeInvoiceDate=Data usada na fatura Buy=Compra Sell=Venda InvoiceDateUsed=Data usada na fatura -YourCompanyDoesNotUseVAT=Sua empresa está definido para não usar ICMS (Home->Configuração->Empresa), então não há nenhuma opção de configuração do ICMS. AccountancyCode=Código de contabilidade AccountancyCodeSell=Código de contas de vendas AccountancyCodeBuy=Código de contas de compras -##### Agenda ##### AgendaSetup=Configurações do módulo de eventos e agenda PasswordTogetVCalExport=Chave para autorizar exportação do link PastDelayVCalExport=Não exportar eventos antigos de @@ -1477,77 +1185,56 @@ AGENDA_USE_EVENT_TYPE_DEFAULT=Definido automaticamente esse valor padrão para o AGENDA_DEFAULT_FILTER_TYPE=Use automaticamente este tipo de evento no filtro de busca da agenda AGENDA_DEFAULT_FILTER_STATUS=Use automaticamente este estado no filtro das buscas da agenda AGENDA_DEFAULT_VIEW=Qual aba voçê quer abrir por padrão quando o menu Agenda e selecionado -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -##### Clicktodial ##### ClickToDialSetup=Configurações do módulo clique para discar -ClickToDialUrlDesc=Chamada URL quando se dá um clique na imagem do telefone. Na URL, você pode usar as tags
__TELEFONEPARA__ que será substituido com o número telefônico da pessoa a telefonar
__TELEFONEDE__ que será substituido com o número da pessoa que se telefona (seus)
__LOGIN__ que será substituido com o seu usuário do seu clique para discar (definido com o seu cartão de usuário)
__SENHA__ que será substituido pela sua senha do clique para discar (definida pelo seu cartão de usuário) ClickToDialDesc=Esto modo permite tornar os números telefônicos em link. Um clique neste ícone fará com que o seu telefone ligue para o número exibido. Isto pode ser usado para ligar para um sistema de Call Center do Dolibarr, o qual poderá ligar para um número em um sistema SIP, por exemplo. ClickToDialUseTelLink=Use apenas o link "tel." para os números de telefone ClickToDialUseTelLinkDesc=Use este método se os seus usuários possuírem um softphone ou uma interface de programa instalada no mesmo computador do navegador, e usado para ligar quando você clica em um link no seu navegador que inicia com "tel.". Se você precisar de uma solução de um servidor completo (sem a necessidade de instalação de um programa local), você deve definir isto para "Não" e preencher o próximo campo. -##### Point Of Sales (CashDesk) ##### -CashDesk=Ponto de Vendas CashDeskSetup=Configurações do módulo do ponto de vendas CashDeskThirdPartyForSell=Terceiro genérico para usar nas vendas CashDeskBankAccountForSell=Conta default para usar nos pagamentos em dinheiro -CashDeskBankAccountForCheque= Conta default para usar nos pagamentos em cheque -CashDeskBankAccountForCB= Conta default para usar nos pagamentos em cartão de crédito +CashDeskBankAccountForCheque=Conta default para usar nos pagamentos em cheque +CashDeskBankAccountForCB=Conta default para usar nos pagamentos em cartão de crédito CashDeskDoNotDecreaseStock=Desativar diminuição de ações quando uma venda é feita a partir de ponto de venda (se "não", diminuição de ações é feito para cada vendem feito a partir de POS, o que for opção definida no módulo de estoque). CashDeskIdWareHouse=Depósito para usar nas vendas StockDecreaseForPointOfSaleDisabled=Diminuição do estoque pelo PDV desativado StockDecreaseForPointOfSaleDisabledbyBatch=Diminuir estoque no Ponto De Vendas não é compativel com o gerenciamento do lote CashDeskYouDidNotDisableStockDecease=Você não desabilitou a redução do estoque quando realizando uma venda a partir do Ponto de Venda. Por isso um armazém é exigido. -##### Bookmark ##### BookmarkSetup=Configurações do módulo de marcadores BookmarkDesc=Esse módulo permite você gerenciar marcadores. Você pode também adicionar atalhos para qualquer página do Dolibarr ou sites externos no seu menu esquerdo. NbOfBoomarkToShow=Número máximo de marcadores para mostrar no menu esquerdo -##### WebServices ##### WebServicesSetup=Configurações do módulo de serviço de web WebServicesDesc=Ativando esse módulo, Dolibarr se torna um servidor de serviços web e fornece vários serviços web. WSDLCanBeDownloadedHere=Arquivos descritor WSDL que fornece serviços que podem ser baixados aqui EndPointIs=Os clientes SOAP devem enviar suas solicitações para o destinatário Dolibarr disponível na URL -##### API #### ApiSetup=Instalação de módulo de API ApiDesc=Ao ativar este módulo, Dolibarr se tornar um servidor REST para fornecer serviços de web diversos. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Você pode explorar as APIs no URL OnlyActiveElementsAreExposed=Somente elementos de módulos habilitados são expostos ApiKey=Chave para API -WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. -##### Bank ##### BankSetupModule=Configurações do módulo bancário FreeLegalTextOnChequeReceipts=Texto livre para recibos de cheque BankOrderShow=Mostrar ordem das contas bancárias para países usando "Número do banco detalhado" -BankOrderGlobal=Geral BankOrderGlobalDesc=Ordem geral exibida BankOrderES=Espanhol BankOrderESDesc=Ordem espanhola exibida ChequeReceiptsNumberingModule=Módulo de Numeração dos Comprovantes de Cheque - -##### Multicompany ##### MultiCompanySetup=Configurações do módulo multi-empresas -##### Suppliers ##### SuppliersSetup=Configurações do módulo de fornecedores SuppliersCommandModel=Template completo de pedidos de fornecedores (logo...) SuppliersInvoiceModel=Template completo de faturas de fornecedores (logo...) SuppliersInvoiceNumberingModel=Modelo de numeração de faturas de fornecedores IfSetToYesDontForgetPermission=Se definido como sim, não se esqueça de fornecer permissões a grupos ou usuários autorizados para a segunda aprovação -##### GeoIPMaxmind ##### GeoIPMaxmindSetup=Configurações do módulo GeoIP Maxmind PathToGeoIPMaxmindCountryDataFile=Caminho do arquivo que contêm Maxmind ip para tradução do país.
Exemplos:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat NoteOnPathLocation=Nota que seu ip para o arquivo de dados do país deve estar dentro do diretório do seu PHP que possa ser lido (Verifique a configuração do seu PHP open_basedir e o sistema de permissões). YouCanDownloadFreeDatFileTo=Você pode baixar uma Versão demo do arquivo Maxmind GeoIP do seu país no %s. YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com updates do arquivo Maxmind GeoIP do seu país no %s. TestGeoIPResult=Teste a conversão IP -> país -##### Projects ##### ProjectsNumberingModules=Modelo de numeração de projetos ProjectsSetup=Configurações do módulo de projetos ProjectsModelModule=Modelo de documento de relatório de projeto TasksNumberingModules=Modelo de numeração de tarefas TaskModelModule=Modelo de numeração de relatório de tarefas UseSearchToSelectProject=Use campos de completação automática para escolher projeto (em vez de usar uma caixa de lista) -##### ECM (GED) ##### -##### Fiscal Year ##### AccountingPeriods=Períodos de contabilidade AccountingPeriodCard=Período de contabilidade NewFiscalYear=Novo período de contabilidade @@ -1559,13 +1246,10 @@ ShowFiscalYear=Exibir período da contabilidade AlwaysEditable=Sempre pode ser editado MAIN_APPLICATION_TITLE=Forçar nome visível da aplicação (aviso: definir o seu próprio nome aqui pode quebrar recurso de login preenchimento automático ao usar aplicativos móveis DoliDroid) NbMajMin=Número mínimo de caracteres maiúsculos -NbNumMin=Número mínimo de caracteres numéricos -NbSpeMin=Número mínimo de caracteres especiais NbIteConsecutive=Numero maximo dos mesmos caracteres repetidos NoAmbiCaracAutoGeneration=Não use caracteres ambíguos ("1","l","i","|","0","O") para a geração automática SalariesSetup=Configuração do módulo de salários SortOrder=Ordem de classificação -Format=Formato TypePaymentDesc=0: Pagamento para Cliente, 1: Pagamento para Fornecedor, 2: Pagamentos para Clientes e Fornecedores IncludePath=Incluir caminho (definido na variável %s) ExpenseReportsSetup=Configuração do módulo de Relatórios de Despesas @@ -1574,22 +1258,16 @@ NoModueToManageStockIncrease=Nenhum módulo disponível foi ativado para gerenci YouMayFindNotificationsFeaturesIntoModuleNotification=Você pode encontrar opções para notificações por email por habilitar e configurar o módulo "Notificação". ListOfNotificationsPerUser=Lista de notificações por usuário* ListOfNotificationsPerUserOrContact=Lista de notificações por usuário* ou por contato** -ListOfFixedNotifications=Lista de notificações fixas GoOntoUserCardToAddMore=Ir para a aba "Notificações" de um usuário para adicionar ou remover as notificações para os usuários GoOntoContactCardToAddMore=Ir para a aba "Notificações" de um terceiro para adicionar ou remover as notificações para contatos/endereços -Threshold=Limite BackupDumpWizard=Assistente para construir arquivo de despejo de backup do banco de dados SomethingMakeInstallFromWebNotPossible=A instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: SomethingMakeInstallFromWebNotPossible2=Por esta razão, o processo de atualização descrito aqui é apenas manual de passos que um usuário privilegiado pode fazer. InstallModuleFromWebHasBeenDisabledByFile=A instalação do módulo externo do aplicativo foi desabilitada pelo seu Administrador. Você deve pedir que ele remova o arquivo %s para permitir esta funcionalidade. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Destacar linhas de tabela quando o mouse passar sobre elas HighlightLinesColor=Cor de realce da linha quando o mouse passa sobre ela (manter vazio para nenhum realce) -TextTitleColor=Cor do título da página LinkColor=Cor dos linques -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Trabalhará com os temas principais, pode não ser suportado por temas externos -BackgroundColor=Cor de fundo TopMenuBackgroundColor=Cor de fundo para o menu de topo TopMenuDisableImages=Ocultar imagens no menu Superior LeftMenuBackgroundColor=Cor do fundo para o menu esquerdo @@ -1606,13 +1284,10 @@ RecuperableOnly=Sim para VAT "Non Perçue Récupérable" dedicado a alguns estad UrlTrackingDesc=Se o prestador do serviço de transporte oferece uma página ou um site na web para verificação da situação do seu envio, você pode inserir seu endereço aqui. Você pode usar a chave {TRACKID} nos parâmetros da URL de forma que o sistema a substitua com o valor do número de rastreamento que o usuário inseriu no cartão de envio. OpportunityPercent=Quando você cria uma oportunidade, você definiu um valor estimado para o projeto. De acordo com a situação da oportunidade, este valor pode ser multiplicado por esta taxa para avaliação do valor global que todas as suas oportunidades podem gerar. O valor é uma porcentagem (entre 0 e 100). TemplateForElement=O registro deste tema é dedicado a qual elemento -TypeOfTemplate=Tipo de modelo TemplateIsVisibleByOwnerOnly=Template é visível somente pelo proprietário FixTZ=Consertar TimeZone FillFixTZOnlyIfRequired=Exemplo: +2 (preencher apenas se experimentou um problema) -ExpectedChecksum=Checksum esperado CurrentChecksum=Checksum corrente -ForcedConstants=Required constant values MailToSendProposal=Para enviar a proposta ao cliente MailToSendOrder=Para enviar pedido do cliente MailToSendInvoice=Para enviar fatura do cliente @@ -1621,14 +1296,10 @@ MailToSendIntervention=Para enviar intervenção MailToSendSupplierRequestForQuotation=Para enviar a solicitação de cotação para fornecedor MailToSendSupplierOrder=Para enviar ordem fornecedor MailToSendSupplierInvoice=Para enviar fatura do fornecedor -MailToSendContract=To send a contract MailToThirdparty=Para enviar e-mail de uma página de terceiro ByDefaultInList=Exibir como padrão na visualização em lista -YouUseLastStableVersion=You use the latest stable version TitleExampleForMajorRelease=Exemplo de mensagem que você pode usar para anunciar esta importante versão (sinta-se à vontade para usar isso nos seus websites) TitleExampleForMaintenanceRelease=Exemplo de mensagem que você pode usar para anunciar esta versão de manutenção (sinta-se à vontade para usar isso nos seus websites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. MultiPriceRuleDesc=Quando a opção "Diversos níveis de preço por produto/serviço" estiver habilitada, você pode definir diferentes preços (um por nível de preço) para cada produto. Para ganhar tempo, você pode inserir aqui a regra para ter um preço para cada nível sendo calculada automaticamente de acordo com o preço do primeiro nível, desta forma você precisará apenas inserir o preço do primeiro nível para cada produto. Está página existe apenas para lhe ajudar a ganhar tempo e pode ser útil somente se os seus preços para cada nível estão relacionados ao primeiro nível. Você pode ignorar esta página na maioria das vezes. ModelModulesProduct=Temas para os documentos do produto ToGenerateCodeDefineAutomaticRuleFirst=Para estar apto a gerar códigos automaticamente, você deve definir primeiro um gerente para definir automaticamente o número do código de barras. @@ -1636,30 +1307,15 @@ SeeSubstitutionVars=Veja * nota para a lista das possíveis variáveis de substi AllPublishers=Todos os que publicam UnknownPublishers=Anônimos que publicam AddRemoveTabs=Adicionar ou remover abas -AddDictionaries=Adicionar dicionários -AddBoxes=Adicionar widgets -AddSheduledJobs=Adicionar trabalhos agendados AddHooks=Adicionar ganchos AddTriggers=Adicionar disparadores -AddMenus=Adicionar menus -AddPermissions=Adicionar permissões -AddExportProfiles=Adicionar perfis de exportação -AddImportProfiles=Adicionar perfis de importação -AddOtherPagesOrServices=Adicionar outras páginas ou serviços AddModels=Adicionar temas de documentos ou de numeração AddSubstitutions=Adicionar substituições de chaves DetectionNotPossible=Não foi possível a detecção -UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) ListOfAvailableAPIs=Lista de API's disponíveis activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s" que está faltando, assim o módulo "%1$s" pode não funcionar corretamente. Favor instalar o módulo "%2$s" ou desabilitar o módulo "%1$s" se você deseja estar livre de qualquer surpresa. CommandIsNotInsideAllowedCommands=O comando que você tenta executar não está na lista de comandos permitidos definidos no parâmetro $dolibarr_main_restrict_os_commands no arquivo conf.php. LandingPage=Página de destino SamePriceAlsoForSharedCompanies=Se você usa um módulo de múltiplas empresas, com a escolha de "Preço único", o preço será também o mesmo para todas as empresas se os produtos são compartilhados entre os ambientes. -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=Este usuário não possui permissões definidas TypeCdr=Use "Nenhum" se a data do prazo de pagamento da fatura mais um delta em dias (delta é o campo "Nº de dias")
Use "No fim do mês", se, após o delta, a data deve ser aumentada para alcançar o fim do mês (+ um "Prazo" opcional em dias)
Use "Atual/Próximo" para ter a data do prazo de pagamento sendo o primeiro Nº do mês (N é armazenado no campo "Nº de dias") -##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index a06dc7619cd..d7f6b5fef65 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -56,12 +56,14 @@ TransactionsToConciliate=Transações a reconciliar Conciliable=Pode ser reconciliado Conciliate=Reconciliar Conciliation=Reconciliação +ReconciliationLate=Reconciliação tardia IncludeClosedAccount=Incluir contas inativas -OnlyOpenedAccount=Somente Contas Abertas +OnlyOpenedAccount=Apenas contas ativas AccountToCredit=Conta para crédito AccountToDebit=Conta para débito DisableConciliation=Desativar função de reconciliação dessa conta ConciliationDisabled=Função de reconciliação desativada +LinkedToAConciliatedTransaction=Ligado a uma entrada conciliada StatusAccountClosed=Inativa LineRecord=Transação AddBankRecord=Adicionar transação @@ -88,6 +90,7 @@ DeleteTransaction=Excluir transação ConfirmDeleteTransaction=Você tem certeza que deseja excluir esta transação? ThisWillAlsoDeleteBankRecord=Isto também excluirá as transações geradas PlannedTransactions=Transações planejadas +ExportDataset_banque_1=Entradas bancárias e demonstrações contábeis ExportDataset_banque_2=Comprovante de depósito TransactionOnTheOtherAccount=Transação de outra conta PaymentNumberUpdateSucceeded=Número de pagamentos atualizado com sucesso @@ -95,6 +98,7 @@ PaymentNumberUpdateFailed=Número de pagamento não foi possível ser atualizada PaymentDateUpdateSucceeded=Data de pagamento atualizada com sucesso PaymentDateUpdateFailed=Data de pagamento não foi possível ser atualizada Transactions=Transações +BankTransactionLine=Entrada no bancária AllAccounts=Todas contas bancária/caixa BackToAccount=Voltar para conta ShowAllAccounts=Mostrar todas as contas diff --git a/htdocs/langs/pt_BR/bookmarks.lang b/htdocs/langs/pt_BR/bookmarks.lang index 1ad92390b9c..3e6878d9de8 100644 --- a/htdocs/langs/pt_BR/bookmarks.lang +++ b/htdocs/langs/pt_BR/bookmarks.lang @@ -1,15 +1,9 @@ # Dolibarr language file - Source file is en_US - bookmarks AddThisPageToBookmarks=Adicionar essa página aos marcadores -Bookmark=Marcador -Bookmarks=Marcadores -NewBookmark=Novo marcador -ShowBookmark=Mostrar marcador OpenANewWindow=Abrir uma nova janela ReplaceWindow=Substituir atual janela BookmarkTargetReplaceWindowShort=Atual janela -BookmarkTitle=Título do marcador BehaviourOnClick=Comportamento quando a URL é clicada -CreateBookmark=Criar marcador SetHereATitleForLink=Colocar título para o marcador UseAnExternalHttpLinkOrRelativeDolibarrLink=Usar uma URL externa ou uma URL do Dolibarr ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolha se página vinculada deve abrir em uma nova janela ou não diff --git a/htdocs/langs/pt_BR/boxes.lang b/htdocs/langs/pt_BR/boxes.lang index 49419f61306..a1d3b2b88cf 100644 --- a/htdocs/langs/pt_BR/boxes.lang +++ b/htdocs/langs/pt_BR/boxes.lang @@ -53,7 +53,6 @@ BoxCustomersInvoicesPerMonth=Faturas de cliente por mês BoxSuppliersInvoicesPerMonth=Faturas de fornecedor por mês BoxCustomersOrdersPerMonth=Pedidos de clientes por mês BoxSuppliersOrdersPerMonth=Pedidos de fornecedor por mês -BoxProposalsPerMonth=Orçamentos por mês NoTooLowStockProducts=Nenhum produto abaixo do estoque mínimo BoxTitleLastModifiedSupplierBills=Ultimos %s notas fornecedores modificadas BoxTitleLatestModifiedSupplierOrders=Ultimas %s ordems de fornecedores modificadas diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index b88d0b8859d..6073684e4c9 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -12,7 +12,6 @@ MenuNewPrivateIndividual=Novo particular NewCompany=Nova empresa (prospecto de cliente, cliente, fornecedor) NewThirdParty=Novo terceiro (prospecto de cliente, cliente, fornecedor) CreateDolibarrThirdPartySupplier=Criar um terceiro (fornecedor) -CreateThirdPartyOnly=Criar terceiro CreateThirdPartyAndContact=Criar um terceiro + um contato interno ProspectionArea=Área de prospecção IdThirdParty=ID do terceiro @@ -29,7 +28,6 @@ ThirdPartyProspects=Prospectos de cliente ThirdPartyProspectsStats=Prospectos de cliente ThirdPartyCustomersWithIdProf12=Clientes com %s ou %s ThirdPartyType=Tipo de terceiro -Company/Fundation=Pessoa jurídica Individual=Pessoa física ToCreateContactWithSameName=Um contato/endereço será criado automaticamente com a mesma informação do terceiro. Na maioria dos casos, mesmo que o terceiro seja uma pessoa física, a criação de um único terceiro é suficiente. ParentCompany=Matriz @@ -209,7 +207,6 @@ PriceLevel=Faixa de preço DeliveryAddress=Endereço de entrega AddAddress=Adicionar endereço SupplierCategory=Categoria de fornecedor -JuridicalStatus200=Independente DeleteFile=Excluir arquivo ConfirmDeleteFile=Você tem certeza que deseja deletar esse arquivo? AllocateCommercial=Designado para representante comercial diff --git a/htdocs/langs/pt_BR/compta.lang b/htdocs/langs/pt_BR/compta.lang index 1b5ee09e148..392d95470e4 100644 --- a/htdocs/langs/pt_BR/compta.lang +++ b/htdocs/langs/pt_BR/compta.lang @@ -11,8 +11,6 @@ VATReportBuildWithOptionDefinedInModule=Os valores aqui apresentados são calcul LTReportBuildWithOptionDefinedInModule=Valores mostrados aqui são calculados usando as regras definidas nas configurações da empresa. Param=Configuração RemainingAmountPayment=Pagamento montante remanescente: -Accountparent=Conta pai -Accountsparent=Contas pai Income=Rendimentos ReportInOut=Rendimentos/Despesas ReportTurnover=Faturamento @@ -114,8 +112,6 @@ RulesResultDue=- Isto inclui as faturas vencidas, despesas, ICMS (VAT), doaçõe RulesResultInOut=- Isto inclui os pagamentos reais feitos nas faturas, despesas, ICMS (VAT) e salários.
- Isto é baseado nas datas de pagamento das faturas, despesas, ICMS (VAT) e salários. A data de doação para a doação. RulesCADue=- Isto inclui as faturas vencidas do cliente, pagas ou não.
- Isto é baseado na data de validação destas faturas.
RulesCAIn=- Inclui os pagamentos efetuados das faturas a clientes.
- Baseia-se na data de pagamento das mesmas
-DepositsAreNotIncluded=- Faturas e depósito não estão incluído -DepositsAreIncluded=- Faturas de Depósito estão incluídos LT2ReportByCustomersInInputOutputModeES=Relatório de fornecedores do IRPF LT1ReportByCustomersInInputOutputModeES=Relatorio por terceiro RE VATReport=Relatório de ICMS @@ -143,7 +139,6 @@ PurchasesJournal=Diário de Compras DescSellsJournal=Diário de Vendas DescPurchasesJournal=Diário de Compras CodeNotDef=Não Definida -WarningDepositsNotIncluded=Depósitos faturas não estão incluídos nesta versão com este módulo de contabilidade. DatePaymentTermCantBeLowerThanObjectDate=Data Prazo de pagamento não pode ser inferior a data da compra ou aquisição Pcg_version=Modelos de carta de contas Pcg_type=Tipo Pcg diff --git a/htdocs/langs/pt_BR/cron.lang b/htdocs/langs/pt_BR/cron.lang index 9c4de0bc30d..203adb63829 100644 --- a/htdocs/langs/pt_BR/cron.lang +++ b/htdocs/langs/pt_BR/cron.lang @@ -17,14 +17,12 @@ CronDelete=Excluir tarefas agendadas CronConfirmDelete=Você tem certeza que deseja excluir esses cron jobs agendados? CronExecute=Lançar Tarefas agendadas CronConfirmExecute=Você tem certeza que deseja executar agora estas tarefas agendadas? -CronInfo=Módulo de tarefas agendadas permitem executar trabalho que foram planejadas CronNone=Nenhum CronDtStart=Não antes CronDtEnd=Não depois CronDtNextLaunch=Próxima execução CronDtLastLaunch=Data de início da última execução CronDtLastResult=Data final da última execução -CronClass=Classe CronNoJobs=Nenhuma tarefa registrada CronNbRun=Nr. execuçao CronMaxRun=Max nr. execução @@ -39,12 +37,6 @@ CronErrEndDateStartDt=A data final não pode ser anterior a data de início CronStatusActiveBtn=Ativar CronStatusInactiveBtn=Desativar CronTaskInactive=Está tarefa está desativada -CronClassFile=Classes (nomedoarquivo.class.php) -CronModuleHelp=Nome do diretório do módulo Dolibarr (também trabalha com módulo Dolibarr externo). Por exemplo para buscar método do objeto Dolibarr Product /htdocs/produto/class/product.class.php, o valor do módulo é o produto -CronClassFileHelp=O nome do arquivo a ser carregado.
Por exemplo para buscar método do objeto Dolibarr Product /htdocs/produtos/classe/product.class.php, o valor do nome do arquivo de classe é product.class.php -CronObjectHelp=O nome do objeto a ser carregado. Por exemplo para buscar método do objeto Dolibarr Product /htdocs/produtos/class/product.class.php, o valor do nome do arquivo da classe é Produtos -CronMethodHelp=O método de objeto para o lançamento. Por exemplo para buscar método do objeto Dolibarr Product /htdocs/produtos/class/product.class.php, o valor do método é fecth -CronArgsHelp=Os argumentos do método. Por exemplo para buscar método do objeto Product do Dolibarr /htdocs/produto/class/product.class.php, o valor de paramtetros pode ser 0, ProductRef CronCommandHelp=A linha de comando de sistema que deve ser executada. CronCreateJob=Criar uma nova Tarefa agendada CronType=Tipo de tarefa @@ -55,4 +47,3 @@ UseMenuModuleToolsToAddCronJobs=Vá até o menu "Home >> Ferramentas administrat JobDisabled=Tarefa desativada MakeLocalDatabaseDumpShort=Backup do banco de dados local MakeLocalDatabaseDump=Criar um dump do banco de dados local -WarningCronDelayed=Atenção, para fins de desempenho, qualquer que seja a próxima data de execução das tarefas ativas, as suas tarefas podem ser atrasadas no máximo %s horas antes de serem executadas; diff --git a/htdocs/langs/pt_BR/errors.lang b/htdocs/langs/pt_BR/errors.lang index 6ad94dddc47..273cc59b14b 100644 --- a/htdocs/langs/pt_BR/errors.lang +++ b/htdocs/langs/pt_BR/errors.lang @@ -4,6 +4,7 @@ ErrorButCommitIsDone=Erros foram encontrados mas, apesar disso, validamos ErrorBadEMail=O e-mail %s está errado ErrorBadUrl=O URL %s está errado ErrorBadValueForParamNotAString=Valor ruim para o seu parâmetro por falta, possivelmente, de tradução. +ErrorLoginAlreadyExists=O login %s já existe. ErrorRecordNotFound=Registro não encontrado. ErrorFailToCopyFile=Houve uma falha ao copiar o arquivo '%s' para '%s'. ErrorFailToRenameFile=Houve uma falha ao renomear o arquivo '%s' para '%s'. @@ -101,7 +102,6 @@ ErrorQtyForCustomerInvoiceCantBeNegative=A quantidade nas linhas das notas de cl ErrorWebServerUserHasNotPermission=A conta de usuário %s usada para executar o servidor web não possui permissão para isto ErrorNoActivatedBarcode=Nenhum tipo de código de barras foi ativado ErrUnzipFails=Houve uma falha ao descompactar %s com ZipArchive -ErrNoZipEngine=Não esta instaladoo programa para descompactar o arquivo% s neste PHP ErrorFileMustBeADolibarrPackage=O arquivo %s deve ser um pacote zipado do Dolibarr ErrorPhpCurlNotInstalled=O PHP CURL não está instalado, isto é essencial para conversar com Paypal ErrorFailedToAddToMailmanList=Falha ao adicionar registro% s para% s Mailman lista ou base SPIP @@ -157,7 +157,6 @@ ErrorFileMustHaveFormat=O arquivo deve ter o formato %s ErrorSupplierCountryIsNotDefined=Este fornecedor não possui o país definido. Corrija isto primeiro. ErrorsThirdpartyMerge=Falha em mesclar os dois registros. Solicitação cancelada. ErrorModuleNotFound=O arquivo do módulo não foi encontrado. -ErrorFieldAccountNotDefinedForBankLine=O valor para a conta da Contabilidade não foi definido para a linha do banco de origem %s WarningPasswordSetWithNoAccount=A senha foi definida para esse membro. No entanto, nenhuma conta de usuário foi criada. Portanto, esta senha é armazenada, mas não pode ser usado para acessar Dolibarr. Ele pode ser usado por um módulo / interface externa, mas se você não precisa definir qualquer login nem palavra-passe para um membro, você pode desabilitar a opção "Gerenciar um login para cada membro" da configuração do módulo-Membro. Se você precisa para gerenciar um login, mas não precisa de qualquer senha, você pode manter este campo em branco para evitar este aviso. Nota: E-mail pode também ser utilizado como uma entre o membro se está ligado a um utilizador. WarningMandatorySetupNotComplete=Há parâmetros de configuração obrigatórios ainda não definidos WarningSafeModeOnCheckExecDir=Atenção, a opção PHP safe_mode está em modo de comando devem ser armazenados dentro de um diretório declarado pelo php parâmetro safe_mode_exec_dir. diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index 3f9aa2dcf51..a95c5c4eac5 100644 --- a/htdocs/langs/pt_BR/main.lang +++ b/htdocs/langs/pt_BR/main.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - main DIRECTION=ltr -# Note for Chinese: -# msungstdlight or cid0ct are for traditional Chinese (traditional does not render with Ubuntu pdf reader) -# stsongstdlight or cid0cs are for simplified Chinese -# To read Chinese pdf with Linux: sudo apt-get install poppler-data FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=, @@ -26,50 +22,33 @@ FormatDateHourText=%d %B, %Y, %I:%M %p DatabaseConnection=Login à Base de Dados NoTemplateDefined=Nenhum tema definido para este tipo de e-mail AvailableVariables=Variáveis de substituição disponíveis -NoTranslation=Sem tradução NoRecordFound=Nenhum registro encontrado NoRecordDeleted=Nenhum registro foi deletado NotEnoughDataYet=Sem dados suficientes NoError=Sem erro -Error=Erro -Errors=Erros -ErrorFieldRequired=O campo '%s' é obrigatório ErrorFieldFormat=O campo '%s' tem um valor incorreto ErrorFileDoesNotExists=O arquivo %s não existe ErrorFailedToOpenFile=Houve uma falha ao abrir o arquivo %s ErrorCanNotCreateDir=Não é possível criar a pasta %s ErrorCanNotReadDir=Não é possível ler a pasta %s -ErrorConstantNotDefined=Parâmetro %s não definido -ErrorUnknown=Erro desconhecido -ErrorSQL=Erro de SQL ErrorLogoFileNotFound=O arquivo logo '%s' não se encontra -ErrorGoToGlobalSetup=Ir á configuração ' Empresa/Instituição ' para corrigir -ErrorGoToModuleSetup=Ir á configuração do módulo para corrigir ErrorFailedToSendMail=Erro ao envio do e-mail (emissor ErrorFileNotUploaded=O arquivo não foi possível transferir -ErrorInternalErrorDetected=Erro detectado -ErrorWrongHostParameter=Parâmetro Servidor inválido ErrorYourCountryIsNotDefined=O seu país não está definido. corrija indo a Configuração-Geral-Editar ErrorRecordIsUsedByChild=Impossível de suprimir este registo. Esta sendo utilizado como pai pelo menos em um registo filho. ErrorWrongValue=Valor incorreto ErrorWrongValueForParameterX=Valor incorreto para o parâmetro %s -ErrorNoRequestInError=Nenhuma petição em erro ErrorServiceUnavailableTryLater=Serviço não disponível no momento. Tente novamente mais tarde. -ErrorDuplicateField=Duplicado num campo único ErrorSomeErrorWereFoundRollbackIsDone=Foram encontrados alguns erros. Alterações revertidas. ErrorConfigParameterNotDefined=O parâmetro %s não está definido ao arquivo de configuração Dolibarr conf.php. ErrorCantLoadUserFromDolibarrDatabase=Impossível encontrar o usuário %s na base de dados do Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de ICMS definido para o país '%s'. ErrorNoSocialContributionForSellerCountry=Erro, nenhum tipo de imposto social / fiscal definidos para o país '%s'. ErrorFailedToSaveFile=Erro, o registo do arquivo falhou. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page NotAuthorized=Você não está autorizado a fazer isso. -SetDate=Definir data SelectDate=Selecionar uma data SeeAlso=Ver tambem %s SeeHere=veja aqui -Apply=Aplicar BackgroundColorByDefault=Cor do fundo padrão FileRenamed=O arquivo foi renomeado com sucesso FileUploaded=O arquivo foi carregado com sucesso @@ -78,169 +57,87 @@ FileWasNotUploaded=O arquivo foi selecionado, mas nao foi ainda enviado. Clique NbOfEntries=Nr. de entradas GoToWikiHelpPage=Ler a ajuda online (necessário acesso a Internet) GoToHelpPage=Consulte a ajuda (pode necessitar de acesso à internet) -RecordSaved=Registo Guardado RecordDeleted=Registro apagado LevelOfFeature=Nível de funções -NotDefined=Não Definida DolibarrInHttpAuthenticationSoPasswordUseless=Modo de autenticação do Dolibarr está definido como %s no arquivo de configuraçãoconf.php.
Isso significa que o banco de dados das senhas é externo ao Dolibarr, assim mudar este campo, pode não ter efeito. -Administrator=Administrador -Undefined=Não Definido PasswordForgotten=Esqueceu a senha? SeeAbove=Mencionar anteriormente -HomeArea=Área Principal -LastConnexion=Latest connection PreviousConnexion=último login PreviousValue=Valor anterior ConnectedOnMultiCompany=Conectado no ambiente -ConnectedSince=Conectado desde AuthenticationMode=Modo de Autenticação RequestedUrl=URL solicitada DatabaseTypeManager=Tipo de gerente de base de dados RequestLastAccessInError=Últimos erros de acesso ao banco de dados ReturnCodeLastAccessInError=Código de retorno do último erro de acesso ao banco de dados InformationLastAccessInError=Informação do último erro de acesso ao banco de dados -DolibarrHasDetectedError=O Dolibarr detectou um erro técnico -InformationToHelpDiagnose=Esta informação pode ser útil para fins de diagnóstico -MoreInformation=Mais Informação -TechnicalInformation=Informação técnica +InformationToHelpDiagnose=Esta informação pode ser útil para fins de diagnóstico TechnicalID=ID Técnico -NotePublic=Nota (pública) -NotePrivate=Nota (privada) PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitários a %s Decimais. -DoTest=Teste -ToFilter=Filtrar NoFilter=Nenhum filtro WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerância. yes=sim -Yes=Sim no=não -No=Não -All=Tudo -Home=Inicio -Help=Ajuda OnlineHelp=Ajuda online PageWiki=Pagina wiki MediaBrowser=Navegador de mídia -Always=Sempre -Never=Nunca -Under=Baixo -Period=Periodo PeriodEndDate=Data final periodo Activate=Ativar Activated=Ativado Closed=Encerrado Closed2=Encerrado -NotClosed=Not closed Enabled=Ativado -Deprecated=Obsoleto Disable=Desativar Disabled=Desativado -Add=Adicionar AddLink=Adicionar link RemoveLink=Remover o link AddToDraft=Adicionar ao rascunho Update=Modificar -Close=Fechar CloseBox=Remover o widget do seu painel de controle -Confirm=Confirmar ConfirmSendCardByMail=Você realmente quer enviar o conteúdo deste cartão por e-mail para %s? Delete=Eliminar Remove=Retirar Resiliate=Concluir -Cancel=Cancelar -Modify=Modificar -Edit=Editar Validate=Confirmar -ValidateAndApprove=Validar e Aprovar ToValidate=A Confirmar -Save=Guardar SaveAs=Guardar como TestConnection=Teste a login ToClone=Cópiar ConfirmClone=Selecciones dados que deseja Cópiar. NoCloneOptionsSpecified=Não existem dados definidos para copiar -Of=de Go=Ir Run=Attivo -CopyOf=Cópia de Show=Ver -Hide=Hide ShowCardHere=Mostrar cartão -Search=Procurar -SearchOf=Procurar -Valid=Confirmar -Approve=Aprovar -Disapprove=Desaprovar -ReOpen=Reabrir Upload=Enviar Arquivo -ToLink=Link -Select=Selecionar -Choose=Escolher Resize=Modificar tamanho Recenter=Recolocar no centro -Author=Autor User=Usuário Users=Usuário -Group=Grupo -Groups=Grupos NoUserGroupDefined=Nenhum grupo definido pelo usuário -Password=Senha PasswordRetype=Repetir Senha NoteSomeFeaturesAreDisabled=Antenção, só poucos módulos/funcionalidade foram ativados nesta demo -Name=Nome -Person=Pessoa -Parameter=Parâmetro -Parameters=Parâmetros -Value=Valor PersonalValue=Valor Personalizado -NewValue=Novo valor CurrentValue=Valor atual -Code=Código -Type=Tipo -Language=Idioma MultiLanguage=Multi Idioma -Note=Nota -Title=Título -Label=Etiqueta RefOrLabel=Ref. da etiqueta -Info=Log -Family=Familia -Description=Descrição -Designation=Designação -Model=Doc template -DefaultModel=Default doc template Action=Ação About=Acerca de -Number=Número NumberByMonth=Numero por mes -AmountByMonth=Valor por mês -Numero=Número Limit=Límite -Limits=Limites Logout=Sair NoLogoutProcessWithAuthMode=No recurso de desconexão aplicativo com modo de autenticação Connection=Login -Setup=Configuração -Alert=Alerta -Previous=Anterior -Next=Seguinte -Cards=Fichas -Card=Ficha Now=Agora HourStart=Comece hora -Date=Data DateAndHour=Data e hora DateToday=Data de hoje DateReference=Data de referência -DateStart=Data de início DateEnd=Data de término -DateCreation=Data de Criação DateCreationShort=Data Criação DateModification=Data Modificação DateModificationShort=Data Modif. -DateLastModification=Latest modification date DateValidation=Data Validação -DateClosing=Data de Encerramento DateDue=Data Vencimento DateValue=Data Valor DateValueShort=Data Valor @@ -249,66 +146,20 @@ DateOperationShort=Data Op. DateLimit=Data Límite DateRequest=Data Consulta DateProcess=Data Processo -DateBuild=Data da geração do Relatório -DatePayment=Data de pagamento -DateApprove=Data de aprovação -DateApprove2=Data de aprovação (segunda aprovação) UserCreation=Criado por UserModification=Alterado por UserCreationShort=Criado por UserModificationShort=Modif. por -DurationYear=Ano -DurationMonth=Mês -DurationWeek=Semana DurationDay=Día -DurationYears=Anos -DurationMonths=Meses -DurationWeeks=Semanas -DurationDays=Dias -Year=Ano -Month=Mês -Week=Semana -WeekShort=Semana Day=Día -Hour=Hora -Minute=Minuto -Second=Segundo -Years=Anos -Months=Meses -Days=Dias days=Dias -Hours=Horas -Minutes=Minutos -Seconds=Segundos Weeks=Semandas -Today=Hoje -Yesterday=Ontem -Tomorrow=Amanhã Morning=Manha -Afternoon=Tarde Quadri=Trimistre -MonthOfDay=Dia do mês -HourShort=H -MinuteShort=mn -Rate=Tipo CurrencyRate=Taxa de conversão moeda UseLocalTax=Incluindo taxa -Bytes=Bytes -KiloBytes=Kilobytes -MegaBytes=Megabytes -GigaBytes=Gigabytes -TeraBytes=Terabytes -b=b. -Kb=Kb -Mb=Mb -Gb=Gb -Tb=Tb -Cut=Cortar -Copy=Copiar -Paste=Colar Default=Padrao DefaultValue=Valor por default -Price=Preço UnitPrice=Preço Unit. UnitPriceHT=Preço Base UnitPriceTTC=Preço Unit. Total @@ -324,9 +175,6 @@ AmountTTCShort=Valor (incl. taxas) AmountHT=Valor Base AmountTTC=Valor AmountVAT=Valor ICMS -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency MulticurrencyAmountHT=Quantia (sem as taxas), na moeda original MulticurrencyAmountTTC=Quantia (com as taxas), na moeda original MulticurrencyAmountVAT=Valor das taxas, na moeda original @@ -336,10 +184,6 @@ AmountLT1ES=Valor RE AmountLT2ES=Valor IRPF AmountTotal=Valor Total AmountAverage=Valor médio -PriceQtyMinHT=Preço quantidade min total -Percentage=Percentagem -Total=Total -SubTotal=Subtotal TotalHTShort=Total (neto) TotalHTShortCurrency=Total (líquido na moeda) TotalTTCShort=Total (incl. taxas) @@ -347,297 +191,106 @@ TotalHT=Valor TotalHTforthispage=Total (sem impostos) desta pagina Totalforthispage=Total para esta página TotalTTC=Total -TotalTTCToYourCredit=Total a crédito TotalVAT=Total do ICMS TotalLT1=Total taxa 2 TotalLT2=Total taxa 3 -TotalLT1ES=Total RE -TotalLT2ES=Total IRPF HT=Sem ICMS TTC=ICMS Incluido VAT=ICMS VATs=Impostos sobre vendas -LT1ES=RE -LT2ES=IRPF VATRate=Taxa ICMS -Average=Média -Sum=Soma -Delta=Divergencia -Module=Módulo -Option=Opção -List=Lista -FullList=Lista Completa -Statistics=Estatísticas OtherStatistics=Outras estatisticas -Status=Estado Favorite=Favorito -ShortInfo=Info. -Ref=Ref. -ExternalRef=Ref. extern RefSupplier=Ref. Fornecedor RefPayment=Ref. Pagamento -CommercialProposalsShort=Orçamentos Comment=Comentario Comments=Comentarios ActionsToDo=Ações a realizar -ActionsToDoShort=A realizar -ActionsDoneShort=Realizadas ActionNotApplicable=Não aplicavel ActionRunningNotStarted=A Iniciar -ActionRunningShort=In progress -ActionDoneShort=Terminado ActionUncomplete=Imcompleto -CompanyFoundation=Companhia/Fundação ContactsForCompany=Contatos desta empresa ContactsAddressesForCompany=Contatos/Endereços do Cliente ou Fornecedor AddressesForCompany=Endereços para este terceiro ActionsOnCompany=Ações nesta sociedade ActionsOnMember=Eventos deste membro -NActionsLate=%s em atraso RequestAlreadyDone=Pedido ja registrado -Filter=Filtro FilterOnInto=Critério da pesquisa '%s' nos campos %s RemoveFilter=Eliminar filtro -ChartGenerated=Gráficos gerados -ChartNotGenerated=Gráfico não gerado GeneratedOn=Gerado a %s -Generate=Gerar -Duration=Duração -TotalDuration=Duração total -Summary=Resumo -DolibarrStateBoard=Estatísticas -DolibarrWorkBoard=Indicadores de Trabalho Available=Disponivel NotYetAvailable=Ainda não disponível NotAvailable=Não disponível Categories=Tags / categorias Category=Tag / categoria -By=Por -From=De to=para -and=e -or=ou -Other=Outro -Others=Outros -OtherInformations=Outras Informações -Quantity=quantidade -Qty=Quant. -ChangedBy=Modificado por -ApprovedBy=Aprovado por ApprovedBy2=Aprovado pelo (segunda aprovação) -Approved=Aprovado -Refused=Recusado -ReCalculate=Recalcular -ResultKo=Erro -Reporting=Relatório -Reportings=Relatórios -Draft=Rascunho -Drafts=Drafts -Validated=Validado Opened=Aberto -New=Novo -Discount=Desconto -Unknown=Desconhecido -General=General -Size=Tamanho -Received=Recebido -Paid=Pago Topic=Assunto -ByCompanies=Por empresa ByUsers=Por usuário -Links=Links -Link=Link -Rejects=Reprovado -Preview=Preview -NextStep=Passo Seguinte -Datas=Dados -None=Nenhum -NoneF=Nenhuma -Late=Atraso LateDesc=O atraso na definição se o registro é tardio ou não, depende da sua configuração. Peça ao seu Administrador para alterar o atraso no menu Início - Configuração - Alertas. -Photo=Foto -Photos=Fotos -AddPhoto=Adicionar foto DeletePicture=Apagar foto ConfirmDeletePicture=Confirmar eliminação de fotografias -Login=Login CurrentLogin=Login atual -EnterLoginDetail=Enter login details -January=Janeiro -February=Fevereiro -March=Março -April=Abril -May=Maio -June=Junho -July=Julho -August=Agosto -September=Setembro -October=Outubro -November=Novembro -December=Dezembro -JanuaryMin=Jan FebruaryMin=Fev -MarchMin=Mar AprilMin=Abr MayMin=Mai -JuneMin=Jun -JulyMin=Jul AugustMin=Ago SeptemberMin=Set OctoberMin=Out -NovemberMin=Nov DecemberMin=Dez -Month01=Janeiro -Month02=Fevereiro -Month03=Março -Month04=Abril -Month05=Maio -Month06=Junho -Month07=Julho -Month08=Agosto -Month09=Setembro -Month10=Outubro -Month11=Novembro -Month12=Dezembro -MonthShort01=Jan MonthShort02=Fev -MonthShort03=Mar MonthShort04=Abr MonthShort05=Mai -MonthShort06=Jun -MonthShort07=Jul MonthShort08=Ago MonthShort09=Set MonthShort10=Out -MonthShort11=Nov MonthShort12=Dez AttachedFiles=Arquivos e Documentos Anexos FileTransferComplete=Foi transferido corretamente o Arquivo -DateFormatYYYYMM=YYYY-MM -DateFormatYYYYMMDD=YYYY-MM-DD -DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS -ReportName=Nome do Relatório ReportPeriod=Periodo de Análise -ReportDescription=Descrição -Report=Relatório Keyword=Palavra-chave -Origin=Origin -Legend=Legenda Fill=Preencher Reset=Resetar File=Arquivo Files=Arquivos -NotAllowed=Não Autorizado -ReadPermissionNotAllowed=Leitura não Autorizada AmountInCurrency=Valores Apresentados em %s -Example=Exemplo -Examples=Exemplos -NoExample=Sem Exemplo -FindBug=Sinalizar um bug NbOfThirdParties=Numero de Fornecedores -NbOfLines=Numeros de Linhas NbOfObjects=Numero de Objetos NbOfObjectReferers=Número de itens relacionados Referers=Itens correlatos -TotalQuantity=Quantidade Total -DateFromTo=De %s a %s -DateFrom=A partir de %s -DateUntil=Até %s -Check=Verificar Uncheck=Desmarque -Internal=Interno -External=Externo -Internals=Internos -Externals=Externos -Warning=Alerta -Warnings=Alertas -BuildDoc=Gerar o doc -Entity=Entidade Entities=Entidadees CustomerPreview=Historico Cliente SupplierPreview=Historico Fornecedor ShowCustomerPreview=Ver Historico Cliente ShowSupplierPreview=Ver Historico Fornecedor -RefCustomer=Ref. Cliente -Currency=Moeda -InfoAdmin=Informação para os administradores -Undo=Desfazer -Redo=Refazer -ExpandAll=Expandir tudo -UndoExpandAll=Anular Expansão -Reason=Razão -FeatureNotYetSupported=Funcionalidade ainda não suportada -CloseWindow=Fechar Janela -Response=Resposta -Priority=Prioridade SendByMail=Enviado por e-mail -MailSentBy=Mail enviado por -TextUsedInTheMessageBody=Texto utilizado no corpo da mensagem -SendAcknowledgementByMail=Enviar email de confirmação -EMail=E-mail -NoEMail=Sem e-mail Email=E-mail NoMobilePhone=Sem celular Owner=Proprietário -FollowingConstantsWillBeSubstituted=As seguintes constantes serão substituidas pelo seu valor correspondente. Refresh=Atualizar -BackToList=Mostar Lista -GoBack=Voltar CanBeModifiedIfOk=Pode modificarse se é valido CanBeModifiedIfKo=Pode modificarse senão é valido ValueIsValid=Valor é válido ValueIsNotValid=Valor inválido RecordCreatedSuccessfully=Registro criado com sucesso -RecordModifiedSuccessfully=Registo modificado com êxito RecordsModified=%s registros modificados RecordsDeleted=%s registro excluido -AutomaticCode=Criação automática de código FeatureDisabled=Função Desativada MoveBox=Widget de movimento -Offered=Oferta NotEnoughPermissions=Não tem permissões para esta ação -SessionName=Nome Sessão -Method=Método -Receive=Recepção CompleteOrNoMoreReceptionExpected=Completo nada mais a fazer -ExpectedValue=Expected Value -CurrentValue=Valor atual -PartialWoman=Parcial -TotalWoman=Total -NeverReceived=Nunca Recebido -Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Voce pode modificar os valores para esta lista no menu Configuração - dicionario YouCanSetDefaultValueInModuleSetup=Você pode definir o valor padrão usado quando da criação de um novo registro na configuração do módulo -Color=Cor -Documents=Documentos -Documents2=Documentos UploadDisabled=Carregamento Desativada -MenuECM=Documentos -MenuAWStats=Estatisticas -MenuMembers=Membros -MenuAgendaGoogle=Agenda Google -ThisLimitIsDefinedInSetup=Límite Dolibarr (menu inicio-configuração-segurança): %s Kb, PHP limit: %s Kb -NoFileFound=Não existem documentos guardados nesta pasta CurrentUserLanguage=Idioma atual CurrentTheme=Tema atual CurrentMenuManager=Administração do menu atual -Browser=Navegador -Layout=Layout -Screen=Screen DisabledModules=Módulos desativados -For=Para -ForCustomer=Para cliente -Signature=Assinatura DateOfSignature=Data da assinatura HidePassword=Mostrar comando com senha oculta UnHidePassword=Mostrar comando real com a senha visivel -Root=Raíz -Informations=Informação -Page=Página -Notes=Notas -AddNewLine=Adicionar nova linha AddFile=Adicionar arquivo -FreeZone=Entrada livre FreeLineOfType=Entrada livre de tipo CloneMainAttributes=Clonar o objeto com estes atributos PDFMerge=Fusão de PDF @@ -645,30 +298,18 @@ Merge=Fusão PrintContentArea=Mostrar pagina a se imprimir na area principal MenuManager=Administração do menu WarningYouAreInMaintenanceMode=Atenção, voce esta no modo de manutenção, somente o login %s tem permissões para uso da aplicação no momento. -CoreErrorTitle=Erro de sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. CreditCard=Cartão de credito FieldsWithAreMandatory=Campos com %s são obrigatorios FieldsWithIsForPublic=Campos com %s são mostrados na lista publica de membros. Se não deseja isto, deselecione a caixa "publico". AccordingToGeoIPDatabase=(conforme a convenção GeoIP) -Line=Linha NotSupported=Não suportado RequiredField=Campo obrigatorio -Result=Resultado -ToTest=Teste ValidateBefore=Precisa de um cartão valido antes de usar esta função -Visibility=Visibilidade -Private=Privado Hidden=Escondido Resources=Resorsas -Source=Fonte -Prefix=Prefixo -Before=Antes -After=Depois IPAddress=endereco IP Frequency=Frequencia IM=Mensagems instantaneas -NewAttribute=Novo atributo AttributeCode=Codigo do atributo URLPhoto=URL da photo/logo SetLinkToAnotherThirdParty=Atalho para outro terceiro @@ -681,32 +322,21 @@ LinkToSupplierProposal=Link para a proposta de Compra LinkToSupplierInvoice=Link para a Fatura de Compra LinkToContract=Link para o Contrato LinkToIntervention=Link para a Intervensão -CreateDraft=Criar Rascunho SetToDraft=Voltar para modo rascunho -ClickToEdit=Clique para editar ObjectDeleted=Objeto %s apagado -ByCountry=Por país -ByTown=Por cidade -ByDate=Por data ByMonthYear=Por mes/ano ByYear=Por ano ByMonth=Por mes ByDay=Por día BySalesRepresentative=Por vendedor representante -LinkedToSpecificUsers=Conectado com um contato particular do usuario -NoResults=Sem resultados +LinkedToSpecificUsers=Conectado com um contato particular do usuario AdminTools=Ferram. admin. -SystemTools=Ferramentas do sistema ModulesSystemTools=Ferramentas de modulos -Test=Teste -Element=Elemento NoPhotoYet=Sem fotos disponiveis no momento Dashboard=Painel de Controle -MyDashboard=My dashboard Deductible=Deduzivel from=de toward=para -Access=Acesso SelectAction=Selecionar ação HelpCopyToClipboard=Use Ctrl+C para copiar para o clipboard SaveUploadedFileWithMask=Salvar arquivo no servidor com nome "%s" (alternativamente "%s") @@ -718,35 +348,23 @@ ViewPrivateNote=Ver anotaçoes XMoreLines=%s linha(s) escondidas PublicUrl=URL pública AddBox=Adicionar caixa -SelectElementAndClickRefresh=Selecionar um elemento e clickar atualizar PrintFile=Imprimir arquivo %s -ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vá para casa - Configuração - Empresa de mudar logotipo ou ir para casa - Setup - Display para esconder. -Deny=Negar Denied=Negado -ListOfTemplates=Lista de modelos Gender=Gênero -Genderman=Homem -Genderwoman=Mulher ViewList=Exibição de lista Mandatory=Obrigatório -Hello=Olá Sincerely=Sinceramente DeleteLine=Apagar linha ConfirmDeleteLine=Você tem certeza que deseja excluir esta linha? -NoPDFAvailableForDocGenAmongChecked=Nenhum PDF estava disponível para a geração do documento entre os registros verificados -TooManyRecordForMassAction=Muitos registros selecionados para a ação em massa. A ação é restrita a uma lista de %s registros. -NoRecordSelected=No record selected MassFilesArea=Área para os arquivos gerados pelas ações em massa ShowTempMassFilesArea=Exibir área dos arquivos gerados pelas ações em massa RelatedObjects=Objetos Relacionados ClassifyBilled=Classificar Faturado -Progress=Progresso ClickHere=Clickque aqui FrontOffice=Frente do escritório BackOffice=Fundo do escritório View=Visão -Export=Exportar Exports=Exportações ExportFilteredList=Exportar lista filtrada ExportList=Exportar lista @@ -754,41 +372,9 @@ Miscellaneous=Variados Calendar=Calendário GroupBy=Agrupar por ViewFlatList=Visão da lista resumida -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate Fiscalyear=Ano fiscal -# Week day -Monday=Segunda-feira -Tuesday=Terça-feira -Wednesday=Quarta-feira -Thursday=Quinta-feira -Friday=Sexta-feira Saturday=Sabado -Sunday=Domingo -MondayMin=Seg -TuesdayMin=Ter -WednesdayMin=Qua -ThursdayMin=Qui -FridayMin=Sex SaturdayMin=Sab -SundayMin=Dom -Day1=Segunda-Feira -Day2=Terça-Feira -Day3=Quarta-Feira -Day4=Quinta-Feira -Day5=Sexta-Feria -Day6=Sábado -Day0=Domingo -ShortMonday=Seg -ShortTuesday=Ter -ShortWednesday=Qua -ShortThursday=Qui -ShortFriday=Sex -ShortSaturday=Sab -ShortSunday=Dom SelectMailModel=Escolha um modelo de e-mail SetRef=Escolher referência Select2ResultFoundUseArrows=Alguns resultados encontrados. Use as setas para selecionar. @@ -796,26 +382,17 @@ Select2NotFound=Nenhum resultado encontrado Select2Enter=Forneça Select2MoreCharacter=ou mais caracteres Select2MoreCharacters=ou mais caracteres -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
Select2LoadingMoreResults=Carregando mais resultados... Select2SearchInProgress=Busca em andamento... SearchIntoThirdparties=Terceiros SearchIntoContacts=Contatos -SearchIntoMembers=Membros SearchIntoUsers=Usuários SearchIntoProductsOrServices=Produtos ou serviços -SearchIntoProjects=Projetos -SearchIntoTasks=Tarefas SearchIntoCustomerInvoices=Faturas a clientes SearchIntoSupplierInvoices=Faturas de fornecedores SearchIntoCustomerOrders=Pedidos de clientes SearchIntoSupplierOrders=Pedidos a fornecedores SearchIntoCustomerProposals=Propostas de cliente SearchIntoSupplierProposals=Propostas a fornecedor -SearchIntoInterventions=Intervenções SearchIntoContracts=Contratos SearchIntoCustomerShipments=Remessas do cliente -SearchIntoExpenseReports=Relatórios de despesas -SearchIntoLeaves=Licenças - -BulkActions=Bulk actions diff --git a/htdocs/langs/pt_BR/other.lang b/htdocs/langs/pt_BR/other.lang index 9e8e942fd7e..82594ede742 100644 --- a/htdocs/langs/pt_BR/other.lang +++ b/htdocs/langs/pt_BR/other.lang @@ -54,7 +54,6 @@ PredefinedMailTestHtml=Esse é um email de teste (a palavra teste deve es PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nVocê encontrará a fatura aqui __REF__\n\n__PERSONALIZED__Atenciosamente\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nGostaríamos de lhe alertar que a fatura __REF__ parece não ter sido paga. Por isso ela está novamente anexa, apenas como um lembrete.\n\n__PERSONALIZED__Atenciosamente\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__ CONTACTCIV NAME__ Você vai encontrar aqui a proposta comercial __ PROPREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nVocê vai encontrar aqui o preço pedido __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIV NAME__ Você vai encontrar aqui a ordem __ ORDERREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Você vai encontrar aqui o nosso pedido __ ORDERREF__ __ PERSONALIZED__Sincerely __ SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVocê encontrará sua fatura aqui __REF__\n\n__PERSONALIZED__Atenciosamente\n\n__SIGNATURE__ @@ -91,18 +90,6 @@ BackToLoginPage=Voltar e a página de login AuthenticationDoesNotAllowSendNewPassword=O modo de autenticação é %s.
Neste modo, o Dolibarr não pode saber e nem alterar a sua senha.
Entre em contato com o seu Administrador se você deseja alterar a sua senha. EnableGDLibraryDesc=Instale ou ative a biblioteca GD da sua instalação PHP para usar esta opção. ProfIdShortDesc=Prof Id %s é uma informação dePendente do país do Fornecedor.
Por Exemplo, para o país %s, é o código %s. -NumberOfProposals=Número de propostas nos últimos 12 meses -NumberOfCustomerOrders=Número de pedidos de cliente nos últimos 12 meses -NumberOfCustomerInvoices=Número de faturas de cliente nos últimos 12 meses -NumberOfSupplierProposals=Número de propostas do fornecedor nos últimos 12 meses -NumberOfSupplierOrders=Número de pedidos a fornecedor nos últimos 12 meses -NumberOfSupplierInvoices=Número de faturas de fornecedor nos últimos 12 meses -NumberOfUnitsProposals=Número de unidades nas propostas nos últimos 12 meses -NumberOfUnitsCustomerOrders=Número de unidades nos pedidos de cliente nos últimos 12 meses -NumberOfUnitsCustomerInvoices=Número de unidades nas faturas de cliente nos últimos 12 meses -NumberOfUnitsSupplierProposals=Número de unidades nas propostas do fornecedor nos últimos 12 meses -NumberOfUnitsSupplierOrders=Número de unidades nos pedidos a fornecedor nos últimos 12 meses -NumberOfUnitsSupplierInvoices=Número de unidades nas faturas de fornecedor nos últimos 12 meses EMailTextInterventionAddedContact=Uma nova intervenção %s foi atribuída a você. EMailTextInterventionValidated=A intervenção %s foi validada EMailTextInvoiceValidated=A fatura %s foi validada. diff --git a/htdocs/langs/pt_BR/paypal.lang b/htdocs/langs/pt_BR/paypal.lang index 3a24701e5fb..40c5d92f42f 100644 --- a/htdocs/langs/pt_BR/paypal.lang +++ b/htdocs/langs/pt_BR/paypal.lang @@ -16,11 +16,8 @@ ThisIsTransactionId=Eis o id da transação: %s PAYPAL_ADD_PAYMENT_URL=Adicionar URL do pagamento Paypal quando se envia o documento por e-mail PredefinedMailContentLink=Clique no link seguro abaixo para fazer o pagamento (PayPal) se nao esta ainda effetuado.⏎\n⏎\n%s⏎\n⏎\n YouAreCurrentlyInSandboxMode=No momento esta no modo "caixa de areia" -NewPaypalPaymentFailed=Tentado novo pagamento Paypal mas sem hesito. PAYPAL_PAYONLINE_SENDEMAIL=Endereço e-mail para aviso apos o pagamento (positivo ou nao) ReturnURLAfterPayment=Retornar ao URL após o pagamento -ValidationOfPaypalPaymentFailed=Validação do pagamento do Paypal falhou -PaypalConfirmPaymentPageWasCalledButFailed=Pagamento completo mas nenhum pagamento foi recebido no PayPal SetExpressCheckoutAPICallFailed=Falha ao chamar a API: SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=Falha ao chamar a API: DoExpressCheckoutPayment. DetailedErrorMessage=Mensagem de erro detalhada diff --git a/htdocs/langs/pt_BR/products.lang b/htdocs/langs/pt_BR/products.lang index 4243b299105..0fdd0ce8344 100644 --- a/htdocs/langs/pt_BR/products.lang +++ b/htdocs/langs/pt_BR/products.lang @@ -15,10 +15,8 @@ MassBarcodeInit=Inicialização de código de barras. MassBarcodeInitDesc=Esta página pode ser usado para inicializar um código de barras em objetos que não têm código de barras definidas. Verifique antes que a instalação do módulo de código de barras é completa. ProductAccountancyBuyCode=Código contábil (para compras) ProductAccountancySellCode=Código contábil (venda) -ProductsOnSell=Produto para venda ou para compra ProductsNotOnSell=Produto que não se vende nem se compra ProductsOnSellAndOnBuy=Produtos para venda e para compra -ServicesOnSell=Serviços para venda ou para compra ServicesNotOnSell=Serviços não vendidos ServicesOnSellAndOnBuy=Serviços para venda e compra LastModifiedProductsAndServices=Últimos %s produtos/serviços modificados diff --git a/htdocs/langs/pt_BR/projects.lang b/htdocs/langs/pt_BR/projects.lang index 7a16aa7591c..fbe1965a978 100644 --- a/htdocs/langs/pt_BR/projects.lang +++ b/htdocs/langs/pt_BR/projects.lang @@ -22,6 +22,9 @@ DeleteAProject=Excluir um projeto DeleteATask=Excluir uma tarefa ConfirmDeleteAProject=Você tem certeza que deseja excluir este projeto? ConfirmDeleteATask=Você tem certeza que deseja excluir esta tarefa? +OpenedProjects=Projetos em andamento +OpenedTasks=Tarefas em andamento +OpportunitiesStatusForOpenedProjects=Montante de oportunidades de projetos abertos de acordo com a situação OpportunitiesStatusForProjects=Montante de oportunidades dos projetos pela situação ShowProject=Mostrar projeto NoProject=Nenhum Projeto Definido @@ -33,7 +36,8 @@ TimesSpent=Dispêndio de tempo RefTask=Ref. da tarefa TaskTimeSpent=Dispêndio de tempo com tarefas TaskTimeUser=Usuário -NewTimeSpent=Novo dispêndio de tempo +TasksOnOpenedProject=Tarefas em projetos abertos +NewTimeSpent=Dispêndio de tempo MyTimeSpent=Meu dispêndio de tempo TaskDateEnd=Data final da tarefa NewTask=Nova tarefa @@ -75,7 +79,6 @@ DoNotShowMyTasksOnly=Ver tambem tarefas não associadas comigo ShowMyTasksOnly=Visualizar apenas tarefas incumbidas a mim NoTasks=Não há tarefas para este projeto LinkedToAnotherCompany=Ligado a outros terceiros -TaskIsNotAffectedToYou=Tarefas não incumbidas a você ErrorTimeSpentIsEmpty=O dispêndio de tempo está em branco ThisWillAlsoRemoveTasks=Esta ação também vai apagar todas as tarefas do projeto (tarefas% s no momento) e todas as entradas de tempo gasto. IfNeedToUseOhterObjectKeepEmpty=Se alguns objetos (nota fiscal, ordem, ...), pertencentes a um terceiro, deve estar vinculado ao projeto de criar, manter este vazio para que o projeto de vários fornecedores. @@ -115,7 +118,6 @@ FirstAddRessourceToAllocateTime=Atribuir o recurso de um usuário à tarefa para InputPerDay=Entrada por dia InputPerWeek=Entrada por semana InputPerAction=Entrada por ação -TimeAlreadyRecorded=Tempo já passado gravado para esta tarefa / dia e usuário %s ProjectsWithThisUserAsContact=Projetos com este usuário como contato TasksWithThisUserAsContact=As tarefas atribuídas a esse usuário ResourceNotAssignedToProject=Não atribuído ao projeto @@ -132,8 +134,8 @@ ProjectsStatistics=As estatísticas sobre projetos / leads TaskAssignedToEnterTime=Tarefa atribuída. Entrando tempo nesta tarefa deve ser possível. IdTaskTime=Horário do ID da tarefa YouCanCompleteRef=Se você deseja completar a referência com alguma informação (para usar como filtro de busca), recomenda-se a adição do carácter "-" para separação, desta forma a numeração automática ainda funcionará corretamente para os próximos projetos. Por exemplo: %s-ABC. Você também pode preferir adicionar chaves de busca no rótulo. Mas a melhor prática pode ser adicionar um campo dedicado, também chamado de atributos complementares. -OpenedProjectsByThirdparties=Projetos abertos pelo thirdparties OnlyOpportunitiesShort=Somente oportunidades +OpenedOpportunitiesShort=Oportunidades em andamento NotAnOpportunityShort=Não é uma oportunidade OpportunityTotalAmount=Montante total de oportunidades OpportunityPonderatedAmount=Montante de oportunidades ponderadas diff --git a/htdocs/langs/pt_BR/supplier_proposal.lang b/htdocs/langs/pt_BR/supplier_proposal.lang index 5feee372351..82e3b298c05 100644 --- a/htdocs/langs/pt_BR/supplier_proposal.lang +++ b/htdocs/langs/pt_BR/supplier_proposal.lang @@ -44,7 +44,6 @@ CommercialAsk=Solicitação de preço DefaultModelSupplierProposalCreate=Criação de modelo padrão DefaultModelSupplierProposalToBill=Tema padrão quando fechando uma solicitação de preço (aceita) DefaultModelSupplierProposalClosed=Tema padrão quando fechando uma solicitação de preço (recusada) -ListOfSupplierProposal=Lista de solicitações de proposta a fornecedor ListSupplierProposalsAssociatedProject=Lista de propostas de fornecedores associadas ao projeto SupplierProposalsToClose=Propostas a fornecedor a encerrar SupplierProposalsToProcess=Propostas a fornecedor a tratar diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index 9fe84202b60..b10124ac9a9 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -1,245 +1,267 @@ # Dolibarr language file - en_US - Accounting Expert -ACCOUNTING_EXPORT_SEPARATORCSV=Column separator for export file -ACCOUNTING_EXPORT_DATE=Date format for export file -ACCOUNTING_EXPORT_PIECE=Export the number of piece -ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount -ACCOUNTING_EXPORT_DEVISE=Export currency -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s -ConfigAccountingExpert=A configuração do módulo especialista em contabilidade -Journalization=Journalization -Journaux=Diarios -JournalFinancial=Diarios financeiros +ACCOUNTING_EXPORT_SEPARATORCSV=Separador de coluna para o ficheiro exportado +ACCOUNTING_EXPORT_DATE=Formato da data para o ficheiro exportado +ACCOUNTING_EXPORT_PIECE=Exportar a referência da peça +ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportar com a conta global +ACCOUNTING_EXPORT_LABEL=Exportar a etiqueta +ACCOUNTING_EXPORT_AMOUNT=Exportar quantia +ACCOUNTING_EXPORT_DEVISE=Exportar moeda +Selectformat=Selecione o formato para o ficheiro +ACCOUNTING_EXPORT_PREFIX_SPEC=Especifique o prefixo para o nome de ficheiro +ThisService=Este serviço +ThisProduct=Este produto +DefaultForService=Padrão para o serviço +DefaultForProduct=Padrão para o produto +CantSuggest=Não pode sugerir +AccountancySetupDoneFromAccountancyMenu=A maioria da configuração da contabilidade é efetuada a partir do menu %s +ConfigAccountingExpert=Configuração do módulo "Contabilidade (avançada)" +Journalization=Registo em diário contabilístico +Journaux=Diários +JournalFinancial=Diários financeiros BackToChartofaccounts=Voltar ao plano de contas Chartofaccounts=Gráfico de contas -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information +CurrentDedicatedAccountingAccount=Conta dedicada atual +AssignDedicatedAccountingAccount=Nova conta para atribuir +InvoiceLabel=Etiqueta da factura +OverviewOfAmountOfLinesNotBound=Visão geral da quantidade de linhas não vinculadas à conta contabilística +OverviewOfAmountOfLinesBound=Visão geral da quantidade de linhas já vinculadas à conta contabilística +OtherInfo=Outra informação +DeleteCptCategory=Remover conta contabilistica do grupo +ConfirmDeleteCptCategory=Tem a certeza que deseja remover esta conta contabilística deste grupo? -AccountancyArea=Accountancy area -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. +AccountancyArea=Área de contabilidade +AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas: +AccountancyAreaDescActionOnce=As seguintes ações são geralmente executadas apenas uma vez, ou uma vez por ano ... +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionFreq=As seguintes ações são normalmente executadas a cada mês, semana ou dia para grandes empresas... -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescChartModel=PASSO %s: Crie um modelo de gráfico de conta no menu %s +AccountancyAreaDescChart=PASSO %s: Criar or verificar conteúdo do seu gráfico de conta no menu %s -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=PASSO %s: Defina a conta contabilística para cada conta bancária e financeira. Para tal vá à ficha de cada conta bancária ou financeira. Comece na página %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. +AccountancyAreaDescAnalyze=PASSO %s: Adicionar ou editar transações e gerar relatórios e ficheiros a exportar. + +AccountancyAreaDescClosePeriod=PASSO %s: Fechar período para que não seja possível modificar no futuro. MenuAccountancy=Contabilidade -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load -Addanaccount=Adicione uma conta contabilistica -AccountAccounting=Conta contabilistica +Selectchartofaccounts=Selecione gráfico de contas ativo +ChangeAndLoad=Mudar e carregar +Addanaccount=Adicione uma conta contabilística +AccountAccounting=Conta contabilística AccountAccountingShort=Conta -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -ProductsBinding=Products accounts -Ventilation=Binding to accounts -CustomersVentilation=Customer invoice binding -SuppliersVentilation=Supplier invoice binding -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Contabilidade geral -AccountBalance=Account balance +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Mostrar diário contabilistico +AccountAccountingSuggest=Conta contabilística sugerida +MenuDefaultAccounts=Contas padrão +MenuVatAccounts=Contas de IVA +MenuTaxAccounts=Contas fiscais +MenuExpenseReportAccounts=Contas de relatório de despesas +MenuLoanAccounts=Contas de empréstimo +MenuProductsAccounts=Contas de produtos +ProductsBinding=Contas de produtos +Ventilation=Vinculação a contas +CustomersVentilation=Cliente de ligação factura +SuppliersVentilation=Fornecedor de ligação factura +ExpenseReportsVentilation=Vinculação do relatório de despesas +CreateMvts=Criar nova transação +UpdateMvts=Modificação de uma transação +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger +AccountBalance=Saldo da conta -CAHTF=Total purchase supplier before tax -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account +CAHTF=Total de compras em fornecedores sem impostos +TotalExpenseReport=Relatório da despesa total +InvoiceLines=Linhas de facturas a vincular +InvoiceLinesDone=Linhas vinculadas de facturas +ExpenseReportLines=Linhas de relatórios de despesas para vincular +ExpenseReportLinesDone=Linhas vinculadas de relatórios de despesas +IntoAccount=Vincular linha com a conta contabilística -Ventilate=Bind -LineId=Id line -Processing=Processando -EndProcessing=Process terminated. -SelectedLines=Selecione a linha -Lineofinvoice=Linha de fatura -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account +Ventilate=Vincular +LineId=Linha de Id +Processing=A processar +EndProcessing=Processo terminado. +SelectedLines=Linhas selecionadas +Lineofinvoice=Linha da fatura +LineOfExpenseReport=Linha de relatório de despesas +NoAccountSelected=Nenhuma conta contabilística selecionada +VentilatedinAccount=Vinculado com sucesso a conta de contabilística +NotVentilatedinAccount=Não vinculado à conta contabilística +XLineSuccessfullyBinded=%s produtos/serviços vinculados com sucesso a uma conta contabilística +XLineFailedToBeBinded=%s produtos/serviços não foram vinculados a uma conta contabilística -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos para vincular, mostrado por página (máximo recomendado: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Comece a ordenação da página "Vinculação a efetuar" pelos elementos mais recentes +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comece a ordenação da página "Vinculação efetuada" pelos elementos mais recentes -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account +ACCOUNTING_LENGTH_DESCRIPTION=Truncar a descrição de produtos e serviços em listas após x caracteres (Ideal = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar descrição produtos e serviços em formulário da conta em listas após x caracteres (Ideal = 50) +ACCOUNTING_LENGTH_GACCOUNT=Tamanho das contas contabilísticas gerais (se definir o valor deste campo a 6, então a conta '706' irá ser mostrada como '706000') +ACCOUNTING_LENGTH_AACCOUNT=Tamanho das contas contabilísticas de terceiros (se definir o valor deste campo a 6, então a conta '401' irá ser mostrada como '401000') +ACCOUNTING_MANAGE_ZERO=Permitir a gestão do número de zeros no fim da designação da conta contabilística. Isto é necessário em alguns países (como a Suíça). Se desativada (por defeito), você poderá definir os 2 seguintes parâmetros de forma a que a aplicação adicione zeros virtualmente. +BANK_DISABLE_DIRECT_INPUT=Desactivar a gravação direta de transação na conta bancária ACCOUNTING_SELL_JOURNAL=Diário de vendas ACCOUNTING_PURCHASE_JOURNAL=Diário de compras ACCOUNTING_MISCELLANEOUS_JOURNAL=Diário de diversos -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal +ACCOUNTING_EXPENSEREPORT_JOURNAL=Diário de relatório de despesas ACCOUNTING_SOCIAL_JOURNAL=Diário social -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Conta de contabilidade para registar donativos +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Conta contabilística de transferência +ACCOUNTING_ACCOUNT_SUSPENSE=Conta contabilística de espera +DONATION_ACCOUNTINGACCOUNT=Conta contabilística para registar donativos -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Conta contabilística padrão para produtos comprados (usado se não for definida na folha de produto) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Conta contabilística padrão para produtos vendidos (utilizada se não for definida na folha de produto) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Conta contabilística padrão para compra de serviços (usada se não for definida na folha de serviço) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Conta contabilística padrão para serviços vendidos (usada se não for definida na folha de serviço) Doctype=Tipo de documento Docdate=Data -Docref=Referencia +Docref=Referência Code_tiers=Terceiros Labelcompte=Etiqueta de conta Sens=Sentido Codejournal=Diário -NumPiece=Piece number -TransactionNumShort=Num. transaction -AccountingCategory=Accounting category -GroupByAccountAccounting=Group by accounting account -NotMatch=Not Set -DeleteMvt=Delete general ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger -FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal -DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +NumPiece=Número da peça +TransactionNumShort=Núm. de transação +AccountingCategory=Grupos de contas contabilísticas +GroupByAccountAccounting=Agrupar por conta contabilística +NotMatch=Não configurado +DeleteMvt=Delete Ledger lines +DelYear=Ano a apagar +DelJournal=Diário a apagar +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger +FinanceJournal=Diário financeiro +ExpenseReportsJournal=Diário de relatórios de despesas +DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +VATAccountNotDefined=Conta para efeitos de IVA não definido +ThirdpartyAccountNotDefined=Conta para terceiros não definido +ProductAccountNotDefined=Conta para o produto não definido +FeeAccountNotDefined=Conta para o honorário não definida +BankAccountNotDefined=Conta de banco não definida CustomerInvoicePayment=Pagamento de fatura de cliente ThirdPartyAccount=Conta de terceiros -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +NewAccountingMvt=Nova transação +NumMvts=Número da transação +ListeMvts=Lista de movimentos ErrorDebitCredit=Débito e crédito não pode ter um valor, ao mesmo tempo - -ReportThirdParty=List third party account -DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts -ListAccounts=Lista de contas contabeis +AddCompteFromBK=Adicionar contas contabilisticas ao grupo +ReportThirdParty=Lista de contas de terceiros +DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores e as suas contas contabilísticas +ListAccounts=Lista de contas contabilísticas Pcgtype=Classe de conta -Pcgsubtype=sub-classe de conta +Pcgsubtype=Subclass of account -TotalVente=Total turnover before tax +TotalVente=Total de volume de negócios sem impostos TotalMarge=Margem total de vendas -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consulte aqui a lista de linhas de faturas de clientes associados (ou não) a uma conta contabilística de produto +DescVentilMore=Na maioria dos casos, se você usar produtos ou serviços predefinidos e configurar o número de conta no cartão do produto/serviço, a aplicação será capaz de efetuar toda a vinculação entre a linhas das faturas e a conta contabilística do seu gráfico de contas através de um clique no botão "%s". Se a conta não for configurada no cartão do produto/serviço or se você tiver algumas linhas não vinculadas a uma conta, então terá de efetuar a vinculação manual a partir do menu "%s". +DescVentilDoneCustomer=Consulte aqui a lista das linhas de facturas de clientes e as suas contas de contabilísticas de produto +DescVentilTodoCustomer=Vincular linhas da fatura que não estejam vinculadas a uma conta contabilística de produto +ChangeAccount=Alterar a conta contabilística de produto/serviço para as linhas selecionadas com a seguinte conta contabilística: Vide=- -DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account -DescVentilDoneSupplier=Consulte as suas linhas da fatura de fornecedor com a conta de contabilidade -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilSupplier=Consulte aqui a lista de linhas fornecedor factura associado ou não, a uma conta contabilística de produto +DescVentilDoneSupplier=Consulte aqui a lista das linhas das faturas e a conta contabilística do fornecedor +DescVentilTodoExpenseReport=Vincule as linhas do relatórios de despesas de não vinculados a um honorário de uma conta de contabilística +DescVentilExpenseReport=Consulte aqui a lista de linhas do relatório de despesas vinculadas (ou não) a um honorário da conta contabilística +DescVentilExpenseReportMore=Se configurar a conta contabilística de acordo com o tipo de linha de relatório de despesa, a aplicação será capaz de efetuar toda a vinculação entre as linhas do seu relatório de despesas e a conta contabilística do seu gráfico de contas através de um único clique no botão "%s". Se a conta não foi configurada no dicionário de honorários ou se você tem algumas linhas não vinculadas, então terá de efetuar a vinculação manuel no menu "%s". +DescVentilDoneExpenseReport=Consulte aqui a lista das linhas de relatórios de despesas e os seus honorários da conta contabilística -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic binding done +ValidateHistory=Vincular automaticamente +AutomaticBindingDone=Vinculação automática efetuada -ErrorAccountancyCodeIsAlreadyUse=Erro, Não pode apagar uma conta em uso -MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding +ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada +MvtNotCorrectlyBalanced=O movimento não foi balanceado corretamente. Crédito = %s. Débito = %s +FicheVentilation=Cartão de vinculação +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched +ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta contabilística +ChangeBinding=Alterar vinculação ## Admin -ApplyMassCategories=Apply mass categories -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed +ApplyMassCategories=Aplicar categorias em massa +AddAccountFromBookKeepingWithNoCategories=Adicionar conta já foi utilizado com nenhuma categoria +CategoryDeleted=Categoria para a conta contabilística foi removida +AccountingJournals=Diários contabilisticos +AccountingJournal=Diário contabilistico +NewAccountingJournal=Novo diário contabilistico +ShowAccoutingJournal=Mostrar diário contabilistico +Code=Código +Nature=Natureza +AccountingJournalType1=Várias operações +AccountingJournalType2=Vendas +AccountingJournalType3=Compras +AccountingJournalType4=Banco +AccountingJournalType9=Contém novo +ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado ## Export Exports=Exportados Export=Exportar Modelcsv=Modelo de exportação -OptionsDeactivatedForThisExportModel=Para este modelo de esportação, as opções estão desativadas +OptionsDeactivatedForThisExportModel=Para este modelo de exportação, as opções estão desativadas Selectmodelcsv=Selecione um modelo de exportação -Modelcsv_normal=Exportação classica -Modelcsv_CEGID=Export towards CEGID Expert Comptabilité -Modelcsv_COALA=Export towards Sage Coala -Modelcsv_bob50=Export towards Sage BOB 50 -Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution -Modelcsv_quadratus=Export towards Quadratus QuadraCompta -Modelcsv_ebp=Export towards EBP -Modelcsv_cogilog=Export towards Cogilog -ChartofaccountsId=Chart of accounts Id +Modelcsv_normal=Exportação clássica +Modelcsv_CEGID=Exportar relativamente a CEGID Expert Comptabilité +Modelcsv_COALA=Exportar relativamente a Sage Coala +Modelcsv_bob50=Exportação relativamente a Sage BOB 50 +Modelcsv_ciel=Exportar relativamente a Sage Ciel Compta ou Compta Evolution +Modelcsv_quadratus=Exportar relativamente a Quadratus QuadraCompta +Modelcsv_ebp=Exportar relativamente a EBP +Modelcsv_cogilog=Exportar relativamente a Cogilog +Modelcsv_agiris=Export towards Agiris (Test) +ChartofaccountsId=ID de plano de contas ## Tools - Init accounting account on product / service -InitAccountancy=Init accountancy -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. -Options=Options -OptionModeProductSell=Mode sales -OptionModeProductBuy=Mode purchases -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -CleanFixHistory=Remove accountancy code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year +InitAccountancy=Iniciar contabilidade +InitAccountancyDesc=Esta página pode ser usado para inicializar uma conta contabilística sobre os produtos e serviços que não têm conta de contabilidade definida para vendas e compras. +DefaultBindingDesc=Esta página pode ser usada para definir uma conta padrão a ser usada para vincular registo de transações sobre salários, doações, impostos e IVA quando nenhuma conta contabilística específica estiver definida. +Options=Opções +OptionModeProductSell=Modo de vendas +OptionModeProductBuy=Modo de compras +OptionModeProductSellDesc=Mostrar todos os produtos com conta contabilística para as vendas. +OptionModeProductBuyDesc=Mostrar todos os produtos com conta contabilística para as compras. +CleanFixHistory=Remover o código de contabilidade de linhas que não existe em gráficos de conta +CleanHistory=Repor todas as vinculações para o ano selecionado -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +WithoutValidAccount=Sem conta dedicada válido +WithValidAccount=Com conta dedicada válida +ValueNotIntoChartOfAccount=Este valor de conta de contabilística não existe no plano de contas ## Dictionary -Range=Range of accounting account -Calculated=Calculated -Formula=Formula +Range=Gama da conta contabilística +Calculated=Calculado +Formula=Fórmula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) -ExportNotSupported=The export format setuped is not supported into this page -BookeppingLineAlreayExists=Lines already existing into bookeeping +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=Não existe grupo de conta contabilística disponível para o país %s (Consulte Inicio -> Configuração -> Dicionários) +ExportNotSupported=O formato de exportação configurado não é suportado nesta página +BookeppingLineAlreayExists=Linhas já existente em contabilidade +NoJournalDefined=No journal defined +Binded=Linhas vinculadas +ToBind=Linhas a vincular -Binded=Lines bound -ToBind=Lines to bind - -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index e135a2a8169..3b44d6044de 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -1,14 +1,14 @@ # Dolibarr language file - Source file is en_US - admin Foundation=Fundação Version=Versão -VersionProgram=Versão do Programa -VersionLastInstall=Versão Inicial instalada -VersionLastUpgrade=Versão da Última Atualização +VersionProgram=Versão do programa +VersionLastInstall=Versão inicial instalada +VersionLastUpgrade=Última atualização da versão VersionExperimental=Experimental VersionDevelopment=Desenvolvimento -VersionUnknown=Desconhecido +VersionUnknown=Desconhecida VersionRecommanded=Recomendada -FileCheck=Files integrity checker +FileCheck=Verificador da integridade dos ficheiros FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. @@ -17,220 +17,223 @@ GlobalChecksum=Global checksum MakeIntegrityAnalysisFrom=Make integrity analysis of application files from LocalSignature=Embedded local signature (less reliable) RemoteSignature=Remote distant signature (more reliable) -FilesMissing=Ficheiros em Falta -FilesUpdated=Ficheiros Atualizados +FilesMissing=Ficheiros em falta +FilesUpdated=Ficheiros atualizados FilesModified=Modified Files FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files +FileCheckDolibarr=Verficar a integridade dos ficheiros de aplicação AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found +XmlNotFound=Ficheiro XML de integridade da aplicação não encontrado SessionId=Id. da Sessão -SessionSaveHandler=Gestor para guardar as sessões -SessionSavePath=Localização para guardar a sessão -PurgeSessions=Limpeza de sessões -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). -NoSessionListWithThisHandler=O gestor de guardar a sessão configurado no seu PHP não permite listar todas as sessões em execução. +SessionSaveHandler=Utilizador para guardar as sessões +SessionSavePath=Localização de armazenamento da sessão +PurgeSessions=Limpeza das sessões +ConfirmPurgeSessions=Deseja mesmo limpar todas as sessões? Isto irá desassociar todos os utilizadores (exceto você). +NoSessionListWithThisHandler=O utilizador para guardar a sessão configurado no seu PHP não permite listar todas as sessões em execução. LockNewSessions=Bloquear novas ligações -ConfirmLockNewSessions=Tem certeza que quer restringir qualquer ligação nova EPR para si mesmo? Depois disso, só o utilizador %s poderá conetar. +ConfirmLockNewSessions=Tem a certeza que pretende restringir qualquer nova ligação Dolibarr para si? Depois disso, só o utilizador %s poderá ligar. UnlockNewSessions=Remover bloqueio de ligação YourSession=A sua sessão -Sessions=Sessão do utilizador -WebUserGroup=Utilizador / grupo do servidor da Web +Sessions=Sessão de utilizadores +WebUserGroup=Utilizador/grupo do servidor da Web NoSessionFound=O seu PHP parece não permitir a listagem das sessões ativas. A diretoria utilizada para guardar as sessões (%s) poderá estar protegida (por exemplo, pelas permissões do SO ou pela diretiva open_basedir PHP ). DBStoringCharset=Conjunto de carateres da base de dados para guardar os dados DBSortingCharset=Conjunto de carateres da base de dados para ordenar os dados WarningModuleNotActive=O módulo %s deve estar ativado -WarningOnlyPermissionOfActivatedModules=Só são mostradas aqui as permissões relacionadas com os módulos ativados. Pode ativar os outros módulos em Início -> Configuração -> Módulos. -DolibarrSetup=Instalar ou atualizar o ERP -InternalUser=Utilizador Interno -ExternalUser=Utilizador Externo -InternalUsers=Utilizadores Internos -ExternalUsers=Utilizadores Externos -GUISetup=Layout -SetupArea=Área de Configuração -FormToTestFileUploadForm=Formulário para testar o upload de arquivos (de acordo com instalação) -IfModuleEnabled=Nota: Só é eficaz se módulo %s é ativado -RemoveLock=Remova o arquivo %s se existir para permitir a atualização da ferramenta. -RestoreLock=Substituir um arquivo %s com permissão somente leitura no arquivo para desativar o uso de qualquer atualização da ferramenta. -SecuritySetup=Configuração de Segurança -SecurityFilesDesc=Define here options related to security about uploading files. -ErrorModuleRequirePHPVersion=Erro, este módulo requer uma versão %s ou superior de PHP +WarningOnlyPermissionOfActivatedModules=Só são mostradas aqui as permissões relacionadas com os módulos ativados. Pode ativar outros módulos em Início->Configuração->Módulos. +DolibarrSetup=Instalar ou atualizar o Dolibarr +InternalUser=Utilizador interno +ExternalUser=Utilizador externo +InternalUsers=Utilizadores internos +ExternalUsers=Utilizadores externos +GUISetup=Exibir +SetupArea=Área de configuração +UploadNewTemplate=Upload new template(s) +FormToTestFileUploadForm=Formulário para testar o envio de ficheiro (de acordo com a configuração) +IfModuleEnabled=Nota: sim, só é eficaz se módulo %s estiver ativado +RemoveLock=Se este existir, remova o ficheiro %s para permitir a utilização da ferramenta de atualização. +RestoreLock=Restaure o ficheiro %s, apenas com permissão de só de leitura, para desativar qualquer utilização da ferramenta de atualização. +SecuritySetup=Configuração de segurança +SecurityFilesDesc=Defina aqui opções relacionadas com a segurança de ficheiros carregados. +ErrorModuleRequirePHPVersion=Erro, este módulo requer a versão %s ou superior do PHP ErrorModuleRequireDolibarrVersion=Erro, este módulo requer a versão %s ou superior do Dolibarr -ErrorDecimalLargerThanAreForbidden=Erro, as casas decimais superiores a %s não são suportadas. -DictionarySetup=Configurar Dicionário +ErrorDecimalLargerThanAreForbidden=Erro, não é suportada uma casa decimal superior a %s. +DictionarySetup=Configurar dicionário Dictionary=Dicionários -ErrorReservedTypeSystemSystemAuto=Value 'system' and 'systemauto' for type is reserved. You can use 'user' as value to add your own record +ErrorReservedTypeSystemSystemAuto=O valor 'system' e 'systemauto', para o tipo está reservado. Pode utilizar 'user' como valor para adicionar o seu próprio registo ErrorCodeCantContainZero=O código não pode conter o valor 0 -DisableJavascript=Desactivar as funções Javascript e Ajax ( Recomendado para pessoas cegas ) -UseSearchToSelectCompanyTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant COMPANY_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectContactTooltip=Also if you have a large number of third parties (> 100 000), you can increase speed by setting constant CONTACT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) -NumberOfKeyToSearch=Nr palavras chave para adicionar á pesquisa: %s -NotAvailableWhenAjaxDisabled=Não está disponível quando o Ajax esta desativado +DisableJavascript=Desativar as funções de Javascript e Ajax (Recomendado para pessoas invisuais ou navegadores de texto) +UseSearchToSelectCompanyTooltip=Se tiver um grande número de terceiros (> 100 000), pode aumentar a velocidade, configurando a constante COMPANY_DONOTSEARCH_ANYWHERE para 1 em Configuração->Outros. A procura depois será limitada para o início da sequência de carateres. +UseSearchToSelectContactTooltip=Se você tiver grande número de contactos (> 100 000), você pode aumentar a velocidade, definindo a constante CONTACT_DONOTSEARCH_ANYWHERE para 1 em Configuração -> Outros. A pesquisa será então limitada ao início da sequência de caracteres. +DelaiedFullListToSelectCompany=Esperar até que introduza valores no campo antes de carregar a lista de terceiros (isto pode aumentar a performance se você tiver um elevado número de terceiros, mas é menos conveniente) +DelaiedFullListToSelectContact=Esperar até que introduza valores no campo antes de carregar a lista de contactos (isto pode aumentar a performance se você tiver um elevado número de contactos, mas é menos conveniente) +NumberOfKeyToSearch=Número de carateres para acionar a procura: %s +NotAvailableWhenAjaxDisabled=Não está disponível quando o Ajax está desativado AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party -JavascriptDisabled=Javascript Desativado -UsePreviewTabs=Ver Fichas "Vista Prévia" -ShowPreview=Ver Vista Prévia -PreviewNotAvailable=Visualização não disponível -ThemeCurrentlyActive=Tema Actualmente Activo -CurrentTimeZone=Zona Horaria Actual -MySQLTimeZone=Zona Horária MySql (database) -TZHasNoEffect=Dates are stored and returned by database server as if they were kept as submited string. The timezone has effect only when using UNIX_TIMESTAMP function (that should not be used by Dolibarr, so database TZ should have no effect, even if changed after data was entered). +JavascriptDisabled=JavaScript desativado +UsePreviewTabs=Utilizar separadores de pré-visualização +ShowPreview=Mostrar pré-visualização +PreviewNotAvailable=Pré-visualização não disponível +ThemeCurrentlyActive=Tema atualmente ativo +CurrentTimeZone=Zona Horária PHP (servidor) +MySQLTimeZone=Fuso Horário MySQL (base de dados) +TZHasNoEffect=As datas são armazenadas e retornadas pela base de dados como se elas fossem submetidas como sequência de caracteres. O fuso horário tem efeito somente ao usar a função UNIX_TIMESTAMP (que não deve ser usada pelo Dolibarr, portanto a base de dados TZ não deve ter nenhum efeito, mesmo se alterado depois da submissão de dados). Space=Área Table=Tabela Fields=Campos Index=Índice Mask=Máscara -NextValue=Próximo Valor -NextValueForInvoices=Próximo Valor (Facturas) -NextValueForCreditNotes=Próximo Valor (Notas de Entregas) -NextValueForDeposit=Valor seguinte (depósito) +NextValue=Valor seguinte +NextValueForInvoices=Valor seguinte (faturas) +NextValueForCreditNotes=Valor seguinte (notas de crédito) +NextValueForDeposit=Valor seguinte (entrada inicial) NextValueForReplacements=Valor seguinte (restituições) -MustBeLowerThanPHPLimit=Observação: Parametros PHP limita o tamanho a %s %s de máximo, qualquer que seja o valor deste parametro -NoMaxSizeByPHPLimit=Nenhuma limitação interna no servidor PHP -MaxSizeForUploadedFiles=Tamanho máximo dos documentos a carregar (0 para proibir o carregamento) -UseCaptchaCode=Utilização do código gráfico no login +MustBeLowerThanPHPLimit=Nota: os seus limites do PHP de cada tamanho de envio de ficheiro para %s %s , qualquer que seja o valor deste parâmetro +NoMaxSizeByPHPLimit=Nota: não está definido nenhum limite na sua configuração do PHP +MaxSizeForUploadedFiles=Tamanho máximo para os ficheiros enviados (0 para rejeitar qualquer envio) +UseCaptchaCode=Utilizar código gráfico (CAPTCHA) na página de iniciar a sessão AntiVirusCommand= Caminho completo para o comando de antivírus -AntiVirusCommandExample= Exemplo de AntiVirus: c: \\ Program Files (x86) \\ ClamWin \\ bin \\ clamscan.exe
Exemplo de AntiVirus: / usr / bin / clamscan -AntiVirusParam= Mais informações sobre parâmetros da linha de comando -AntiVirusParamExample= Exemplo de Antivirus: - database -ComptaSetup=Configuração do Módulo Contabilidade -UserSetup=Configuração e Gestão dos Utilizadores -MultiCurrencySetup=Multi-currency setup -MenuLimits=Límites e Precisão -MenuIdParent=Id do menu pai -DetailMenuIdParent=ID do menu pai (0 para um menu superior) -DetailPosition=Número de ordem para a posição no menu +AntiVirusCommandExample= Exemplo para ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Exemplo para ClamAV: /usr/bin/clamscan +AntiVirusParam= Mais parâmetros na linha de comando +AntiVirusParamExample= Exemplo para ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +ComptaSetup=Configuração do módulo de "Contabilidade" +UserSetup=Configuração e gestão dos utilizadores +MultiCurrencySetup=Configuração da utilização de várias moedas +MenuLimits=Limites e precisão +MenuIdParent=Id. do menu origem +DetailMenuIdParent=Id. do menu origem (vazio para um menu superior) +DetailPosition=Número de ordenação para definir a posição no menu AllMenus=Todos -NotConfigured=Não Configurado -Active=Activo +NotConfigured=Módulo/Aplicação não configurados +Active=Ativo SetupShort=Config. -OtherOptions=Outras Opções -OtherSetup=Várias Configurações +OtherOptions=Outras opções +OtherSetup=Outras configurações CurrentValueSeparatorDecimal=Separador decimal CurrentValueSeparatorThousand=Separador dos milhares Destination=Destino -IdModule=Id. do Módulo -IdPermissions=Id. das Autorizações -Modules=Módulos -LanguageBrowserParameter=Variável %s +IdModule=Id do módulo +IdPermissions=Id das autorizações +LanguageBrowserParameter=Parâmetro %s LocalisationDolibarrParameters=Parâmetros de localização ClientTZ=Fuso Horário do Cliente (utilizador) -ClientHour=Hora do Cliente (utilizador) -OSTZ=Fuso Horário do Servidor do SO -PHPTZ=Zona horaria PHP -DaylingSavingTime=Horário de verão (do usuário) -CurrentHour=Hora actual -CurrentSessionTimeOut=Time out Sessão actual -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" -Box=Aplicativo -Boxes=Aplicativo -MaxNbOfLinesForBoxes=Número máximo de linhas para os aplicativos -PositionByDefault=Posição por defeito +ClientHour=Hora do cliente (utilizador) +OSTZ=Fuso Horário do Servidor do Sistema Operativo +PHPTZ=Fuso Horário do servidor do PHP +DaylingSavingTime=Horário de verão +CurrentHour=Hora do PHP (servidor) +CurrentSessionTimeOut=Sessão atual expirou +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. +Box=Widget +Boxes=Widgets +MaxNbOfLinesForBoxes=Número máximo de linhas para os widgets +PositionByDefault=Ordem predefinida Position=Posição -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. -MenuForUsers=Menu para os Utilizadores +MenusDesc=Os gestores de menu definem o conteúdo das duas barras de menu (horizontal e vertical) +MenusEditorDesc=O editor de menu permite-lhe definir as entradas de menu personalizadas. Utilize com cuidado para evitar instabilidade e entradas de menu inválidas.
Alguns módulos adicionam entradas de menu (principalmente no menu Todos). Se remover algumas destas entradas por engano, poderá restaurá-las, desativando e reativando o módulo. +MenuForUsers=Menu para os utilizadores LangFile=Ficheiro .lang System=Sistema -SystemInfo=Info Sistema -SystemToolsArea=Área de utilidades do sistema -SystemToolsAreaDesc=Esta área oferece diferentes funções de administração. Use o menu para escolher a Funcionalidade e pesquisa. -Purge=Limpar -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Eliminar ficheiro de Log %s definido para o módulo Syslog (sem risco de perda de dados) -PurgeDeleteTemporaryFiles=Apagar todos os ficheiros tempórarios (sem risco de perderem os dados) -PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros da pasta %s. Ficheiros temporários e Ficheiros anexados a elementos (Terceiros, facturas, etc.) serão eliminados. -PurgeRunNow=Purgar Agora -PurgeNothingToDelete=Nenhuma(s) pasta(s) ou ficheiro(s) para apagar. -PurgeNDirectoriesDeleted=%s Ficheiros ou pastas eliminados -PurgeAuditEvents=Purgar os eventos de segurança -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. -GenerateBackup=Gerar Cópia -Backup=Cópia +SystemInfo=Informação do Sistema +SystemToolsArea=Área de ferramentas do sistema +SystemToolsAreaDesc=Esta área oferece funcionalidades de administração. Utilize o menu para escolher a funcionalidade que está à procura. +Purge=Limpar\n +PurgeAreaDesc=Esta página permite-lhe eliminar todos os ficheiros gerados ou armazenados pelo Dolibarr (ficheiros temporários ou todos os ficheiros na diretoria %s). Não é necessário utilizar esta funcionalidade. Esta é fornecida como uma alternativa para os utilizadores que têm o Dolibarr alojado num provedor que não oferece permissões para eliminar os ficheiros gerados pelo servidor da Web. +PurgeDeleteLogFile=Eliminar o ficheiro de registo %s definido para o módulo Syslog (sem risco de perda de dados) +PurgeDeleteTemporaryFiles=Eliminar todos os ficheiros temporários (sem risco de perder os dados) +PurgeDeleteTemporaryFilesShort=Eliminar ficheiros temporários +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros na diretoria %s. Não só os ficheiros temporários mas também as cópias de segurança da base de dados, ficheiros anexados aos elementos (como faturas, terceiros, ...) e enviados para o módulo GED serão eliminados. +PurgeRunNow=Limpar agora +PurgeNothingToDelete=Nenhuma diretoria ou ficheiros para eliminar. +PurgeNDirectoriesDeleted=%s ficheiros ou diretorias eliminadas. +PurgeAuditEvents=Limpar todos os eventos de segurança +ConfirmPurgeAuditEvents=tem a certeza que deseja limpar todos os eventos de segurança? Serão eliminados todos os registos de segurança, e não serão serão removidos outros dados. +GenerateBackup=Gerar cópia de segurança +Backup=Cópia de segurança Restore=Restaurar -RunCommandSummary=A cópia será feita pelo seguinte comando -BackupResult=Resultado da Cópia -BackupFileSuccessfullyCreated=Ficheiro de cópia gerado correctamente -YouCanDownloadBackupFile=Os arquivos gerados podem agora ser baixados -NoBackupFileAvailable=Nenhuma cópia disponivel +RunCommandSummary=A cópia de segurança foi iniciada com o seguinte comando +BackupResult=Resultado da cópia de segurança +BackupFileSuccessfullyCreated=Ficheiro de cópia de segurança gerado correctamente +YouCanDownloadBackupFile=Os ficheiros gerados podem agora ser descarregados +NoBackupFileAvailable=Sem ficheiros de cópias de segurança disponíveis ExportMethod=Método de exportação ImportMethod=Método de importação -ToBuildBackupFileClickHere=Para criar uma cópia, click aqui. +ImportMySqlDesc=Para importar um ficheiro de cópia de segurança, deve utilizar o comando mysql a partir da linha de comandos: +ImportPostgreSqlDesc=Para importar um ficheiro de cópia de segurança, deve utilizar o comando pg_restore a partir da linha de comandos: +ImportMySqlCommand=%s %s < ficheiro_copia_seguranca.sql +ImportPostgreSqlCommand=%s %s ficheiro_copia_seguranca.sql FileNameToGenerate=Nome do ficheiro a gerar Compression=Compressão CommandsToDisableForeignKeysForImport=Comando para desactivar a chave exclusiva para a importação -CommandsToDisableForeignKeysForImportWarning=Obrigatório, se pretender restaurar mais tarde o lixo 'sql' +CommandsToDisableForeignKeysForImportWarning=Obrigatório, se pretender restaurar mais tarde o ficheiro dump de SQL ExportCompatibility=Compatibilidade do ficheiro de exportação gerado -MySqlExportParameters=Parâmetros da exportação MySql +MySqlExportParameters=Parâmetros da exportação MySQL PostgreSqlExportParameters= Parâmetros de exportação PostgreSQL UseTransactionnalMode=Utilizar o modo transaccional -FullPathToMysqldumpCommand=Rota completa do comando mysqldump -FullPathToPostgreSQLdumpCommand=Caminho completo para o pg_dump comando +FullPathToMysqldumpCommand=Caminho completo para o comando mysqldump +FullPathToPostgreSQLdumpCommand=Caminho completo para o comando pg_dump ExportOptions=Opções de exportação -AddDropDatabase=Adicionar DROP DATABASE -AddDropTable=Adicionar ordens DROP TABLE +AddDropDatabase=Adicionar comando DROP DATABASE +AddDropTable=Adicionar comando DROP TABLE ExportStructure=Estrutura NameColumn=Nome das colunas ExtendedInsert=Instruções INSERT extendidas NoLockBeforeInsert=Nenhum comando de bloqueio em torno de Inserção DelayedInsert=Adições com atraso -EncodeBinariesInHexa=Codificar os campos binarios em hexadecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) -AutoDetectLang=Autodetecção (navegador) -FeatureDisabledInDemo=Opção desabilitada em demo +EncodeBinariesInHexa=Codificar os campos binários em hexadecimal +IgnoreDuplicateRecords=Ignorar erros de registos duplicados (INSERT IGNORE) +AutoDetectLang=Autodeteção (navegador) +FeatureDisabledInDemo=Opção desativada em demo FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissões -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. -OnlyActiveElementsAreShown=Só os elementos de módulos ativos. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesMarketPlaceDesc=Pode encontrar mais módulos para descarregar noutros sites da internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Procurar módulos externos... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. -DoliStoreDesc=DoliStore, o mercado oficial para Dolibarr ERP / CRM módulos externos -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) +DoliStoreDesc=DoliStore, o mercado oficial para módulos externos Dolibarr ERP/CRM +DoliPartnersDesc=Lista de empresas que desenvolvem módulos ou funcionalidades personalizadas (Nota: qualquer pessoa com experiência em programação PHP pode proporcionar o desenvolvimento personalizado para um projeto open source) WebSiteDesc=Indique sites de referência para encontrar mais módulos... -URL=Link -BoxesAvailable=Aplicativos disponiveis -BoxesActivated=Aplicativos activados -ActivateOn=Activar sobre -ActiveOn=Activa sobre +URL=Hiperligação +BoxesAvailable=Aplicativos disponíveis +BoxesActivated=Aplicativos ativados +ActivateOn=Ativar sobre +ActiveOn=Ativado sobre SourceFile=Ficheiro origem -AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponivel somente se o Javascript e Ajax estiverem activos +AvailableOnlyIfJavascriptAndAjaxNotDisabled=Disponível somente se o JavaScript e Ajax estiverem ativos Required=Requerido -UsedOnlyWithTypeOption=Used by some agenda option only +UsedOnlyWithTypeOption=Utilizado apenas por algumas opções da agenda Security=Segurança Passwords=Palavras-passe -DoNotStoreClearPassword=Não guardar as palavras-passe na base de dados, mas guardar apenas os valores encriptados (recomendado Ativada) -MainDbPasswordFileConfEncrypted=Palavra-passe da base de dados encriptada no ficheiro conf.php (recomendado Ativada) -InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; -ProtectAndEncryptPdfFiles=Protecção e encriptação dos pdf gerados -ProtectAndEncryptPdfFilesDesc=A protecção de um documento pdf deixa o documento livre para leitura e impressão a qualquer leitor de PDF. Ao contrário, a modificação e a cópia são impossíveis. -Feature=Característica +DoNotStoreClearPassword=Não guardar as palavras-passe na base de dados, mas guardar apenas os valores encriptados (recomendado: Ativada) +MainDbPasswordFileConfEncrypted=Palavra-passe da base de dados encriptada no ficheiro conf.php (recomendado: Ativada) +InstrucToEncodePass=Para que a palavra passe seja codificada no ficheiro conf.php, substitua a linha
$dolibarr_main_db_pass="...";
por
$dolibarr_main_db_pass="crypted:%s"; +InstrucToClearPass=Para que a palavra passe seja descodificada no ficheiro conf.php, substitua a linha
$dolibarr_main_db_pass="crypted:...";
por
$dolibarr_main_db_pass="%s"; +ProtectAndEncryptPdfFiles=Protecção e encriptação dos ficheiros PDF criados (recomendado: Desativado, pode provocar problemas na produção de PDFs) +ProtectAndEncryptPdfFilesDesc=A proteção de um documento PDF faz com que este esteja disponível para ler e imprimir a partir de qualquer navegador. No entanto, a edição e cópia do documento deixam de ser possíveis. Nota: ao usar esta funcionalidade deixa de ser possível juntar documentos PDFs singulares num único documento PDF global. +Feature=Funcionalidade DolibarrLicense=Licença -Developpers=Programadores/contribuintes -OfficialWebSite=Sitio web oficial internacional -OfficialWebSiteLocal=Local web site (%s) -OfficialWiki=Wiki ERP -OfficialDemo=Demo em linha ERP/CRM -OfficialMarketPlace=Mercado Oficial externo para os módulos / addons -OfficialWebHostingService=web hosting de serviços referenciados (hospedagem na nuvem) -ReferencedPreferredPartners=Parceiros Preferidos +Developpers=Programadores/colaboradores +OfficialWebSite=Página Dolibarr internacional oficial +OfficialWebSiteLocal=Website local (%s) +OfficialWiki=Documentação Dolibarr na Wiki +OfficialDemo=Demo online Dolibarr +OfficialMarketPlace=Mercado externo oficial para os módulos/addons +OfficialWebHostingService=Serviços web hosting referenciados (hospedagem na nuvem) +ReferencedPreferredPartners=Parceiros preferidos OtherResources=Outros recursos -ForDocumentationSeeWiki=Para a documentação de utilizador, programador ou Perguntas Frequentes (FAQ), consulte o wiki do ERP:
%s +ForAnswersSeeForum=Para outras questões, como efectuar as consultas, pode utilizar o forum do Dolibarr:
%s +HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte para o Dolibarr. HelpCenterDesc2=Alguns destes serviços só estão disponíveis em inglês. -CurrentMenuHandler=Manipulador de menu atual -MeasuringUnit=Unidade de medida +CurrentMenuHandler=Gestor de menu atual +MeasuringUnit=Unidade de medição LeftMargin=Left margin TopMargin=Top margin PaperSize=Paper type @@ -241,633 +244,656 @@ FontSize=Font size Content=Content NoticePeriod=Período de aviso NewByMonth=New by month -Emails=E-Mails -EMailsSetup=Configuração E-Mails -EMailsDesc=Esta página permite substituir os parâmetros PHP relacionados con o envío de correios electrónicos. Na maioria dos casos não com SO como UNIX/Linux, os parâmetros PHP estão correctos e esta página é inútil. -MAIN_MAIL_SMTP_PORT=Porta do servidor SMTP (Por defeito não php.ini: %s) -MAIN_MAIL_SMTP_SERVER=Nome host ou ip do servidor SMTP (Por defeito em php.ini: %s) +Emails=Emails +EMailsSetup=Configuração de emails +EMailsDesc=Esta página permite substituir os parâmetros PHP relacionados com o envio de emails. Na maioria dos casos em sistemas operativos Unix/Linux, os parâmetros PHP estão correctos e esta página é inútil. +MAIN_MAIL_SMTP_PORT=Porta de SMTP/SMTPS (Por predefinição no php.ini: %s) +MAIN_MAIL_SMTP_SERVER=Servidor SMTP/SMTPS (Por predefinição no php.ini: %s) MAIN_MAIL_SMTP_PORT_NotAvailableOnLinuxLike=Porta do servidor SMTP (Não definido em PHP em sistemas de tipo Unix) -MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Nome servidor ou ip do servidor SMTP (Não definido em PHP em sistemas de tipo Unix) -MAIN_MAIL_EMAIL_FROM=E-Mail do emissor para envios E-Mail automáticos (Por defeito em php.ini: %s) -MAIN_MAIL_ERRORS_TO=Remetente de e-mail usado para e-mails enviados retorna erro -MAIN_MAIL_AUTOCOPY_TO= Enviar sistematicamente uma cópia carbono de todos os e-mails enviados para -MAIN_DISABLE_ALL_MAILS=Desativar globalmente todo o envio de correios eletrónicos (para fins de teste ou demonstrações) -MAIN_MAIL_SENDMODE=Método de envío de e-mails -MAIN_MAIL_SMTPS_ID=ID SMTP para autenticação SMTP +MAIN_MAIL_SMTP_SERVER_NotAvailableOnLinuxLike=Servidor SMTP/SMTPS (Não definido em PHP em sistemas de tipo Unix) +MAIN_MAIL_EMAIL_FROM=Email do emissor para envios email automáticos (Por defeito em php.ini: %s) +MAIN_MAIL_ERRORS_TO=Remetente de email usado para emails enviados que retornaram erro +MAIN_MAIL_AUTOCOPY_TO= Enviar sistematicamente uma cópia carbono de todos os emails enviados para +MAIN_DISABLE_ALL_MAILS=Desativar globalmente todo o envio de emails (para fins de teste ou demonstrações) +MAIN_MAIL_SENDMODE=Método de envio de emails +MAIN_MAIL_SMTPS_ID=ID SMTP, se necessário a autenticação MAIN_MAIL_SMTPS_PW=Palavra-passe de SMTP, se necessário a autenticação -MAIN_MAIL_EMAIL_TLS= Utilizar TLS (SSL) criptografia -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt +MAIN_MAIL_EMAIL_TLS= Utilizar criptografia TLS (SSL) +MAIN_MAIL_EMAIL_STARTTLS= Utilizar encriptação TLS (STARTTLS) MAIN_DISABLE_ALL_SMS=Desative todos os envios de SMS (para fins de teste ou demonstrações) -MAIN_SMS_SENDMODE=Método a ser usado para enviar SMS -MAIN_MAIL_SMS_FROM=Número de telefone padrão do remetente para envio de SMS -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) +MAIN_SMS_SENDMODE=Método a usar para enviar SMS +MAIN_MAIL_SMS_FROM=Número de telefone predefinido do remetente para envio de SMS +MAIN_MAIL_DEFAULT_FROMTYPE=E-mail do remetente por predefinição para os envios manuais (E-mail do Utilizador ou da Empresa) UserEmail=User email -CompanyEmail=Company email +CompanyEmail=E-mail da empresa FeatureNotAvailableOnLinux=Funcionalidade não disponivel em sistemas Unix. Teste parâmetros sendmail localmente. -SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ +SubmitTranslation=Se a tradução para esta lingua não estiver completa ou se encontrar erros, pode corrigi-los editando os ficheiros no diretório langs/%s e submetendo-os em www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Configuração do módulo -ModulesSetup=Configuração dos módulos +ModulesSetup=Módulos/Aplicação - Configuração ModuleFamilyBase=Sistema -ModuleFamilyCrm=Gestão cliente (CRM) -ModuleFamilySrm=Supplier Relation Management (SRM) +ModuleFamilyCrm=Gestão do Relacionamento com o Cliente (CRM) +ModuleFamilySrm=Gestão de Relacionamento com o Fornecedor (SRM) ModuleFamilyProducts=Gestão de Productos (PM) ModuleFamilyHr=Gestão de Recursos Humanos (HR) -ModuleFamilyProjects=Projectos/Trabalho cooperativo +ModuleFamilyProjects=Projetos/Trabalho cooperativo ModuleFamilyOther=Outro -ModuleFamilyTechnic=Módulos ferramentas do sistema +ModuleFamilyTechnic=Ferramentas multi-módulos ModuleFamilyExperimental=Módulos testes ModuleFamilyFinancial=Módulos financeiros (Contabilidade/Tesouraria) -ModuleFamilyECM=ECM -ModuleFamilyPortal=Web sites and other frontal application -ModuleFamilyInterface=Interfaces with external systems +ModuleFamilyECM=Gestão de conteúdo electrónico (ECM) +ModuleFamilyPortal=Websites e outras aplicações de interface de utilizador +ModuleFamilyInterface=Interfaces com sistemas externos MenuHandlers=Gestores de menu MenuAdmin=Editor de menu DoNotUseInProduction=Não utilizar em ambiente de produção -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Estes são os passos a processar: +ThisIsAlternativeProcessToFollow=Esta é uma configuração alternativa para processar manualmente: StepNb=Passo %s -FindPackageFromWebSite=Encontre um pacote que fornece a funcionalidade desejada (por exemplo, %s site oficial). -DownloadPackageFromWebSite=Transfira o pacote (por exemplo, do site da Web oficial %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +FindPackageFromWebSite=Encontre um pacote que fornece a funcionalidade desejada (por exemplo, na página oficial %s). +DownloadPackageFromWebSite=Descarregue o pacote (por exemplo, da página oficial %s). +UnpackPackageInDolibarrRoot=Descompactar os ficheiros para a raiz da instalação Dolibarr: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. -YouCanSubmitFile=For this step, you can send package using this tool: Select module file -CurrentVersion=Versão actual do ERP/CRM -CallUpdatePage=Go to the page that updates the database structure and data: %s. +SetupIsReadyForUse=A instalação do módulo terminou. No entanto você deve ativar e configurar o módulo na sua aplicação, indo à página de configuração de módulos: %s. +NotExistsDirect=O diretório raiz alternativo não está definido para um diretório existente.
+InfDirAlt=Desde a versão 3 do Dolibarr que é possível definir um diretório raiz alternativo. Isto permite que você consiga armazenar plug-ins e templates, num diretório dedicado.
Para tal basta criar um dirétorio na raiz do Dolibarr (ex: dedicado).
+InfDirExample=
Depois declare-o no ficheiro conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
Se estas linhas estiverem comentadas com um "#", descomente-as removendo o "#". +YouCanSubmitFile=Para este passo, pode enviar o pacote utilizando esta ferramenta: Selecione o ficheiro do módulo +CurrentVersion=Versão atual do Dolibarr +CallUpdatePage=Vá à página que atualiza a estrutura e dados da base de dados: %s. LastStableVersion=Última versão estável LastActivationDate=Latest activation date -UpdateServerOffline=Update server offline -GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:
{000000} corresponde a um número que se incrementa em cada um de %s. Introduza tantos zeros como longitude que deseja mostrar. O contador completar-se-á a partir de zeros pela esquerda com o fim de ter tantos zeros como a máscara.
{000000+000} Igual que o anterior, com uma compensação correspondente ao número da direita do sinal + aplica-se a partir do primeiro %s.
{000000@x} igual que o anterior, mas o contador restablece-se a zero quando se chega a x meses (x entre 1 e 12). Se esta opção se utiliza e x é de 2 ou superior, então a sequência {yy}{mm} ou {yyyy}{mm} também é necessário.
{dd} días (01 a 31).
{mm} mês (01 a 12).
{yy}, {yyyy} ou {e} ano em 2, 4 ou 1 figura.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Qualquer outro caractere na máscara fica sem alterações.
Não são permitidos espaços
-GenericMaskCodes4a=Exemplo em 99 ª %s o Terceiro a Empresa realizada em 31/03/2007:
-GenericMaskCodes4b=Exemplo sobre um Terceiro criado em 31/03/2007:
-GenericMaskCodes4c=Exemplo no produto criado em 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} dará ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX dará 0199-ZZZ/31/XXX -GenericNumRefModelDesc=Devolve um número criado na linha numa máscara definida. -ServerAvailableOnIPOrPort=Servidor disponivel no endereço %s na porta %s -ServerNotAvailableOnIPOrPort=Servidor não disponivel no endereço %s na Porta %s -DoTestServerAvailability=Teste de conectividade com o servidor +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP +UpdateServerOffline=Atualizar servidor offline +WithCounter=Manage a counter +GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:
{000000} corresponde a um número que se incrementa em cada um de %s. Introduza um número de zeros idêntico ao comprimento do número que deseja mostrar. O contador completar-se-á a partir de zeros pela esquerda de forma a ter tantos zeros como a máscara.
{000000+000} igual ao anterior, com uma compensação em algarismos correspondente ao número à direita do sinal + que é aplicada a partir do primeiro %s.
{000000@x} igual ao anterior, mas o contador volta a zero quando se chega ao mês x (x entre 1 e 12, 0 para usar o primeiros meses do mês fiscal definido na sua configuração, 99 para voltar a zero todos os meses). Se esta opção se utiliza e x é igual ou superior a 2, então a sequência {yy}{mm} ou {yyyy}{mm} também é necessária.
{dd} días (01 a 31).
{mm} mês (01 a 12).
{yy}, {yyyy} ou {y} ano formatado em 2, 4 ou 1 algarismos.
+GenericMaskCodes2={cccc} o código do cliente em N caracteres
{cccc000} o código de cliente em N caracteres, seguido de um contador dedicado ao cliente. Este contador é reiniciado ao mesmo tempo que o contador global.
{tttt} O código do tipo de terceiro em N caracteres (ver dicionário->Tipos de terceiros).
+GenericMaskCodes3=Quaisquer outros caracteres na máscara não sofrerão alterações.
Não são permitidos espaços.
+GenericMaskCodes4a=Exemplo no 99º %s de terceiro 'A Empresa', com a data 31-01-2007:
+GenericMaskCodes4b=Exemplo sobre um terceiro criado a 31-03-2007:
+GenericMaskCodes4c=Exemplo no produto criado a 01-03-2007:
+GenericMaskCodes5=ABC{yy}{mm}-{000000} dará ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX dará 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} dará IN0701-0099-A +GenericNumRefModelDesc=Devolve um número personalizado, de acordo com a máscara definida. +ServerAvailableOnIPOrPort=O servidor está disponível no endereço %s na porta %s +ServerNotAvailableOnIPOrPort=O servidor não está disponível no endereço %s na porta %s +DoTestServerAvailability=Teste de conetividade com o servidor DoTestSend=Teste de envío -DoTestSendHTML=Testede envio HTML -ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. -ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não se pode usar a opção @ se a sequência {yy}{mm} ou {yyyy}{mm} não se encontra a máscara. -UMask=Parâmetro UMask de novos ficheiros em Unix/Linux/BSD. -UMaskExplanation=Este parâmetro determina os direitos dos ficheiros criados no servidor do ERP/CRM (durante o carregamento, por Exemplo).
Este deve ter o valor octal (por Exemplo, 0666 significa leitura / escrita para todos).
Este parâmetro não tem nenhum efeito sobre um servidor Windows. -SeeWikiForAllTeam=Veja o wiki para mais detalhes de todos os actores e da sua organização -UseACacheDelay= Tempo para o caching exportação em segundos (0 ou em branco para não cache) -DisableLinkToHelpCenter=Ocultar link "Precisa de ajuda ou apoio" na página de login +DoTestSendHTML=Teste de envio HTML +ErrorCantUseRazIfNoYearInMask=Erro, não pode usar a opção @ para repor o contador a cada ano, se sequência {yy} ou {aaaa} não está na máscara. +ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não pode usar a opção @ se a sequência {yy}{mm} ou {yyyy}{mm} não se encontra na máscara definida. +UMask=Parâmetro UMask de novos ficheiros em sistemas Unix/Linux/BSD/macOS. +UMaskExplanation=Este parâmetro permite definir permissões usadas por omissão em ficheiros criados pelo Dolibarr no servidor (durante o carregamento, por exemplo).
Este deve ter o valor octal (por exemplo, 0666 significa permissão de leitura/escrita para todos).
Este parâmetro não tem nenhum efeito sobre um servidor Windows. +SeeWikiForAllTeam=Veja o wiki para mais detalhes de todos os atores e da sua organização +UseACacheDelay= Atraso, em segundos, para o caching de exportação (0 ou em branco para não criar cache) +DisableLinkToHelpCenter=Ocultar hiperligação "Precisa de ajuda ou apoio" na página de inicio de sessão DisableLinkToHelp=Ocultar a hiperligação para a ajuda on-line "%s" -AddCRIfTooLong=Não há envolvimento automático, por isso, se estiver fora de linha da página de documentos, por ser demasiado longo, deve adicionar um "enter" na area de texto -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). -MinLength=Prazo mínimo -LanguageFilesCachedIntoShmopSharedMemory=Arquivos. Lang carregado na memória compartilhada -ExamplesWithCurrentSetup=Exemplos com o funcionamento da actual configuração -ListOfDirectories=Lista dos modelos OpenDocument directórios -ListOfDirectoriesForModelGenODT=List of directories containing templates files with OpenDocument format.

Put here full path of directories.
Add a carriage return between eah directory.
To add a directory of the GED module, add here DOL_DATA_ROOT/ecm/yourdirectoryname.

Files in those directories must end with .odt or .ods. -NumberOfModelFilesFound=Número de ficheiros de modelos ODT/ODS encontrados nessas diretorias -ExampleOfDirectoriesForModelGen=Exemplos de sintaxe:
c: \\ mydir
/ Home mydir /
DOL_DATA_ROOT ecm / ecmdir / -FollowingSubstitutionKeysCanBeUsed=
Para saber como criar os seus modelos de documentos odt, antes de armazená-los nestas listas, ler a documentação wiki: +AddCRIfTooLong=Não há envolvimento automático, por isso, se estiver fora de linha da página de documentos, por ser demasiado longo, deve adicionar um parágrafo, "Enter", na área de texto. +ConfirmPurge=De certeza que quer executar esta limpeza?
Isto eliminará definitivamente todos os seus ficheiros de dados sem forma de os recuperar (ficheiros GED, ficheiros anexados) +MinLength=Comprimento mínimo +LanguageFilesCachedIntoShmopSharedMemory=Ficheiros .lang carregados na memória partilhada +ExamplesWithCurrentSetup=Exemplos com a configuração atual +ListOfDirectories=Lista de diretórios com modelos OpenDocument +ListOfDirectoriesForModelGenODT=Lista de diretórios que contêm ficheiros template com formato OpenDocument.

Digite aqui o caminho completo dos diretórios.
Adicione um "Enter" entre cada diratório.
Para adicionar um diretório do módulo GED, adicione aqui DOL_DATA_ROOT/ecm/seudiretorio.

Ficheiros nesses diretórios têm de acabar com .odt ou .ods. +NumberOfModelFilesFound=Número de ficheiros de modelos ODT/ODS encontrados nesses diretórios +ExampleOfDirectoriesForModelGen=Exemplos de sintaxe:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +FollowingSubstitutionKeysCanBeUsed=
Para saber como criar os seus modelos de documentos ODT, antes de armazená-los nestes diretórios, leia a documentação no wiki: FullListOnOnlineDocumentation=http://wiki.dolibarr.org/index.php/Create_an_ODT_document_template -FirstnameNamePosition=Posição do primeiro nome / +FirstnameNamePosition=Posição do primeiro nome/último nome DescWeather=As imagens seguintes serão mostradas no painel quando o número de ações tardias alcançar os seguintes valores: -KeyForWebServicesAccess=A chave para usar Web Services (parâmetro " -TestSubmitForm=Forma de teste de Entrada -ThisForceAlsoTheme=Usando este gestor de menu também vai usar o seu próprio tema qualquer que seja a escolha do usuário. Além disso, este gestor de menu especializado em smartphones não funciona em todos os smartphones. Use um outro gestor de menu se você tiver problemas na seu. -ThemeDir=Diretório Skins +KeyForWebServicesAccess=Chave para usar Web Services (parâmetro "dolibarrkey" nos webservices) +TestSubmitForm=Formulário de teste de introdução +ThisForceAlsoTheme=Ao utilizar este gestor de menu também vai utilizar o seu tema, independentemente da escolha do utilizador. Para além disso, este gestor de menu especializado em smartphones não funciona em todos os smartphones. Utilize outro gestor de menu se você tiver problemas. +ThemeDir=Diretório de temas ConnectionTimeout=Tempo limite de conexão ResponseTimeout=Tempo limite de resposta -SmsTestMessage=Mensagem de teste de PHONEFROM__ __ para __ PHONETO__ -ModuleMustBeEnabledFirst=Primeiro, o módulo %s deve estar ativado se precisar desta função. +SmsTestMessage=Mensagem teste de __PHONEFROM__ para __PHONETO__ +ModuleMustBeEnabledFirst=Se precisa desta função, o módulo %s deve ser ativado antes. SecurityToken=A chave para URLs seguras -NoSmsEngine=Nenhum mecanismo de envio de SMS disponível. Mecanismos de sms, não são instalados com a distribuição padrão (porque depende de um fornecedor externo), mas você pode encontrar alguns em http://www.dolistore.com +NoSmsEngine=Nenhum mecanismo de envio de SMS disponível. Mecanismos de SMS, não são instalados juntamente com a distribuição (porque depende de um fornecedor externo), mas você pode encontrar alguns em %s PDF=PDF -PDFDesc=Você pode definir cada uma das opções globais relacionadas com a geração do PDF -PDFAddressForging=Regras para forjar caixas de endereço +PDFDesc=Você pode definir cada uma das opções globais relacionadas com a criação de PDF +PDFAddressForging=Regras para criar caixas de endereço HideAnyVATInformationOnPDF=Ocultar todas as informações relativas ao IVA em PDF gerado HideDescOnPDF=Ocultar a descrição dos produtos no PDF gerado HideRefOnPDF=Ocultar a referência dos produtos no PDF gerado HideDetailsOnPDF=Esconder linhas de detalhes do produto no PDF gerado -PlaceCustomerAddressToIsoLocation=Use french standard position (La Poste) for customer address position +PlaceCustomerAddressToIsoLocation=Usar a posição padrão francesa (La Poste) para a posição de endereço do cliente Library=Biblioteca -UrlGenerationParameters=Parâmetros para garantir URLs -SecurityTokenIsUnique=Use um parâmetro securekey exclusivo para cada URL -EnterRefToBuildUrl=Digite referência para %s objeto +UrlGenerationParameters=Parâmetros para tornar URLs seguros +SecurityTokenIsUnique=Use um parâmetro securekey único para cada URL +EnterRefToBuildUrl=Digite a referência para o objeto %s GetSecuredUrl=Obter URL seguro -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Esconder botões de ações não autorizados a utilizadores não administradores, em vez de mostrá-los com cor cinza e desativados. OldVATRates=Taxa de IVA antiga -NewVATRates=Nova Taxa de IVA -PriceBaseTypeToChange=Modificar nos preços com base no valor de referência definido em -MassConvert=Launch mass convert -String=Cadeia +NewVATRates=Nova taxa de IVA +PriceBaseTypeToChange=Modificar nos preços com valor de referência base definido em +MassConvert=Executar a conversão em massa +String=Sequencia de caracteres TextLong=Texto longo -Int=Número inteiro -Float=Número vírgula flutuante +Int=Integer +Float=Float DateAndTime=Data e hora Unique=Único -Boolean=Booleano (Caixa de verificação) +Boolean=Booliano (uma caixa de marcação) ExtrafieldPhone = Telefone ExtrafieldPrice = Preço ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Lista de selecção ExtrafieldSelectList = Selecionar da tabela -ExtrafieldSeparator=Separador +ExtrafieldSeparator=Separador (não um campo) ExtrafieldPassword=Palavra Passe -ExtrafieldCheckBox=Caixa de verificação -ExtrafieldRadio=Botão -ExtrafieldCheckBoxFromList= Checkbox from table -ExtrafieldLink=Link to an object -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Caixas de marcação +ExtrafieldCheckBoxFromList=Caixas de marcação da tabela +ExtrafieldLink=Vincular a um objeto +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=A lista de parâmetros tem seguir o seguinte esquema chave,valor

por exemplo:
1,value1
2,value2
3,value3
...

Para que a lista dependa noutra lista de atributos complementares:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Para que a lista dependa doutra lista:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=A lista de parâmetros tem de seguir o seguinte esquema chave,valor

por exemplo:
1,value1
2,value2
3,value3
... +ExtrafieldParamHelpradio=A lista de parâmetros tem de seguir o seguinte esquema chave,valor

por exemplo:
1,value1
2,value2
3,value3
... +ExtrafieldParamHelpsellist=A lista de parâmetros vem de uma tabela
Syntaxe: table_name:label_field:id_field::filter
Examplo: c_typent:libelle:id::filter

o filtro pode ser um simples teste (ex: active=1) para exibir só o valor ativo
Também pode utilizar $ID$ no filtro, o qual se refere ao ID do objeto atual
Para fazer um SELECT no filtro utilize $SEL$
Se quer filtrar campos complementares use a sintaxe extra.fieldcode=... (onde fieldcode representa o código do campo complementar)

Para fazer com que a lista dependa doutra lista:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter -ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php +ExtrafieldParamHelplink=Os parâmetros devem ser ObjectName:Classpath
Syntax: ObjectName:Classpath
Exemplo: Societe:societe/class/societe.class.php LibraryToBuildPDF=Biblioteca utilizada para gerar PDF -WarningUsingFPDF=Warning: Your conf.php contains directive dolibarr_pdf_force_fpdf=1. This means you use the FPDF library to generate PDF files. This library is old and does not support a lot of features (Unicode, image transparency, cyrillic, arab and asiatic languages, ...), so you may experience errors during PDF generation.
To solve this and have a full support of PDF generation, please download TCPDF library, then comment or remove the line $dolibarr_pdf_force_fpdf=1, and add instead $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) +WarningUsingFPDF=Aviso: O seu ficheiro conf.php contém a diretiva dolibarr_pdf_force_fpdf=1. Isto significa que utiliza a biblioteca FPDF para gerar ficheiros PDF. Esta biblioteca está desatualizada e não suporta muitas funcionalidades (Unicode, transparência de imagens, línguas asiáticas, árabes ou cirílicas, ...), por isso você pode experienciar alguns erros durante a produção de PDFs.
Para resolver isto e para ter suporte completo para produção de PDF, por favor descarregue a biblioteca TCPDF, comente ou remova a linha $dolibarr_pdf_force_fpdf=1, e adicione $dolibarr_lib_TCPDF_PATH='path_to_TCPDF_dir' +LocalTaxDesc=Alguns países aplicam 2 ou 3 impostos para cada linha da fatura. Se é este o caso, escolha o tipo para o segundo e terceiro imposto e a sua taxa. Os tipos possíveis são:
1 : imposto local aplicado em produtos e serviços sem IVA (imposto local é calculado sobre o total sem IVA)
2 : imposto local aplicado em produtos e serviços incluindo IVA (imposto local é calculado sobre o total + IVA)
3 : imposto local aplicado em produtos sem IVA (imposto local é calculado sobre o total sem IVA)
4 : imposto local aplicado em produtos incluindo IVA (imposto local é calculado sobre o total + IVA)
5 : imposto local aplicado em serviços sem IVA (imposto local é calculado sobre o total sem IVA)
6 : imposto local aplicado em serviços incluindo IVA (imposto local é calculado sobre o total + IVA) SMS=SMS -LinkToTestClickToDial=Enter a phone number to call to show a link to test the ClickToDial url for user %s -RefreshPhoneLink=Atualizar link -LinkToTest=Clickable link generated for user %s (click phone number to test) +LinkToTestClickToDial=Introduzida o número de telefone a ligar, de forma mostra um link para testar o ClickToDial para o utilizador %s +RefreshPhoneLink=Atualizar hiperligação +LinkToTest=Link gerado para o utilizador %s (clique no número de telefone para ligar) KeepEmptyToUseDefault=Deixar em branco para usar o valor por omissão DefaultLink=Hiperligação predefinida -SetAsDefault=Set as default -ValueOverwrittenByUserSetup=Warning, this value may be overwritten by user specific setup (each user can set his own clicktodial url) -ExternalModule=Módulo externo - Instalado na diretoria %s -BarcodeInitForThirdparties=Mass barcode init for thirdparties -BarcodeInitForProductsOrServices=Mass barcode init or reset for products or services -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. -InitEmptyBarCode=Init value for next %s empty records -EraseAllCurrentBarCode=Erase all current barcode values -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? -AllBarcodeReset=All barcode values have been removed -NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache +SetAsDefault=Definir como predefinição +ValueOverwrittenByUserSetup=Aviso: Este valor pode ter sido modificado pela configuração específica de um utilizador (cada utilizador pode definir o seu próprio link ClickToDial) +ExternalModule=Módulo externo - Instalado no diretório %s +BarcodeInitForThirdparties=Inicialização em massa de códigos de barras para terceiros +BarcodeInitForProductsOrServices=Inicialização ou reposição de códigos de barras em massa para produtos ou serviços +CurrentlyNWithoutBarCode=Atualmente, você tem o registo %s em %s %s sem o código de barras definido. +InitEmptyBarCode=Inicializar o valor para os próximos %s registos vazios +EraseAllCurrentBarCode=Apagar todos os códigos de barras atuais +ConfirmEraseAllCurrentBarCode=Tem certeza de que deseja apagar todos os códigos de barras atuais? +AllBarcodeReset=Todos os códigos de barras foram removidos +NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de códigos de barras ativo na configuração do módulo "Código de barras". +EnableFileCache=Ativar cache de ficheiros ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). -NoDetails=No more details in footer -DisplayCompanyInfo=Display company address +NoDetails=Sem mais detalhes no rodapé +DisplayCompanyInfo=Exibir morada da empresa DisplayCompanyManagers=Display manager names -DisplayCompanyInfoAndManagers=Display company address and manager names +DisplayCompanyInfoAndManagers=Exibir a morada da empresa e menus de gestor EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. -ModuleCompanyCodeAquarium=Devolve um código contabilistico composto de 401 seguido do código do Terceiro do fornecedor para o código contabilistico de fornecedor, e 411 seguido do código Terceiro de cliente para o código contabilistico do cliente. +ModuleCompanyCodeAquarium=Devolve um código contabilístico composto de:
%s seguido do código do terceiro (fornecedor) para o código contabilístico de fornecedor,,
%s seguido do código do terceiro (cliente) para o código contabilístico do cliente. ModuleCompanyCodePanicum=Devolve um código contabilistico vazio. -ModuleCompanyCodeDigitaria=Devolve um código contabilistico composto por o código do Terceiro. O código está formado por caracter ' C ' na primeira posição seguido dos 5 primeiros caracteres do código do Terceiro. +ModuleCompanyCodeDigitaria=O código contabilístico depende do código do terceiro. O código é composto pelo caractere "C" na primeira posição seguido dos 5 primeiros caracteres do código do terceiro. Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Campo +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules -Module0Name=Utilizadores e Grupos -Module0Desc=Users / Employees and Groups management +Module0Name=Utilizadores e grupos +Module0Desc=Gestão de Utilizadores / Funcionários e Grupos Module1Name=Terceiros -Module1Desc=Gestão de Terceiros (Empresas, Particulares) e Contactos +Module1Desc=Gestão de terceiros (empresas, particulares) e contactos Module2Name=Comercial Module2Desc=Gestão comercial Module10Name=Contabilidade -Module10Desc=Gestão simples da Contabilidade (repartição das receitas e pagamentos) +Module10Desc=Relatórios simples de contabilidade (repartição das receitas e pagamentos) baseados no conteúdo da base de dados. Sem expedição. Module20Name=Orçamentos -Module20Desc=Gestão de Orçamentos/Propostas comerciais -Module22Name=E-Mailings -Module22Desc=Administração e envío de E-Mails massivos +Module20Desc=Gestão de orçamentos para clientes +Module22Name=Emails em massa +Module22Desc=Gestão de emails em massa Module23Name=Energia -Module23Desc=Acompanhamento do consumo de energia -Module25Name=Pedidos de clientes -Module25Desc=Gestão de pedidos de clientes -Module30Name=Facturas e Recibos -Module30Desc=Gestão de facturas e recibos de clientes. Gestão de facturas de Fornecedores +Module23Desc=Monitorização do consumo de energia +Module25Name=Encomendas de clientes +Module25Desc=Gestão de encomendas de clientes +Module30Name=Faturas +Module30Desc=Gestão de faturas e notas de crédito de clientes. Gestão de faturas de fornecedores Module40Name=Fornecedores -Module40Desc=Gestão de Fornecedores +Module40Desc=Gestão de fornecedores (encomendas e faturas) Module42Name=Syslog -Module42Desc=Utilização de logs (syslog) +Module42Desc=Funções de registo de eventos (ficheiro, registo do sistema, ...). Tais registos, são para fins técnicos/depuração. Module49Name=Editores -Module49Desc=Gestão de Editores +Module49Desc=Gestão de editores Module50Name=Produtos Module50Desc=Gestão de produtos -Module51Name=Massa envios -Module51Desc=Massa papel expedições "gestão" -Module52Name=Stocks de produtos -Module52Desc=Gestão de stocks de produtos +Module51Name=Envio de emails em massa +Module51Desc=Gestão de envio de correio em massa +Module52Name=Stocks +Module52Desc=Gestão de stocks (produtos) Module53Name=Serviços Module53Desc=Gestão de serviços Module54Name=Contractos/Subscrições Module54Desc=Gestão de contractos (serviços ou subscrições periódicas) Module55Name=Códigos de barras Module55Desc=Gestão dos códigos de barras -Module56Name=Central Telefónica -Module56Desc=Gestão da Central Telefónica -Module57Name=Direct bank payment orders -Module57Desc=Management of Direct Debit payment orders. It includes generation of SEPA file for european countries. +Module56Name=Central telefónica +Module56Desc=Gestão de central telefónica +Module57Name=Ordens de pagamento por transferência bancária +Module57Desc=Gestão de order de pagamento por débito direto. Inclui a produção de ficheiros SEPA para países europeus. Module58Name=ClickToDial -Module58Desc=Integração com ClickToDial +Module58Desc=Integração com um sistema ClickToDial (Asterisk, ...) Module59Name=Bookmark4u -Module59Desc=Adicione função para gerar uma conta Bookmark4u a partir de uma conta do ERP +Module59Desc=Adicione uma função para gerar uma conta Bookmark4u a partir de uma conta do Dolibarr Module70Name=Intervenções -Module70Desc=Gestão de Intervenções +Module70Desc=Gestão de intervenções Module75Name=Notas de despesas e deslocações Module75Desc=Gestão das notas de despesas e deslocações Module80Name=Expedições -Module80Desc="Gestão de Expedições e Recepções\t " -Module85Name=Bancos e Caixas -Module85Desc=Gestão das contas financeiras de tipo contas bancarias, prazo ou efectivo -Module100Name=Site Externo -Module100Desc=Incluir qualquer site externo em menus ERP/CRM e visualizá-lo em um quadro ERP/CRM -Module105Name=Mailman e Sip -Module105Desc=Mailman ou Spip interface para o módulo membro +Module80Desc=Gestão de expedições e notas de encomenda +Module85Name=Bancos e caixas +Module85Desc=Gestão das contas financeiras ou contas bancárias (prazo ou efetivo) +Module100Name=Página externa +Module100Desc=Incluir página externa no menu e visualizá-la a partir do Dolibarr +Module105Name=Mailman e SPIP +Module105Desc=Interface Mailman ou SPIP para módulo membro Module200Name=LDAP -Module200Desc=Sincronização com LDAP +Module200Desc=Sincronização de diretórios com LDAP Module210Name=PostNuke Module210Desc=Integração com PostNuke Module240Name=Exportações de dados -Module240Desc=Tool to export Dolibarr data (with assistants) +Module240Desc=Ferramenta para exportação dos dados do Dolibarr Module250Name=Importação de dados -Module250Desc=Tool to import data in Dolibarr (with assistants) +Module250Desc=Ferramenta para importação dos dados do Dolibarr Module310Name=Membros -Module310Desc=Gestão de Membros de uma associação -Module320Name=Ligações RSS -Module320Desc=Criação de ligações de informação RSS nas janelas do ERP -Module330Name=Favoritos -Module330Desc=Gestão de Favoritos -Module400Name=Projetos/Oportunidades/Chefias -Module400Desc=Management of projects, opportunities or leads. You can then assign any element (invoice, order, proposal, intervention, ...) to a project and get a transversal view from the project view. +Module310Desc=Gestão de membros de uma fundação +Module320Name=Feed RSS +Module320Desc=Adicionar feed RSS às páginas Dolibarr +Module330Name=Marcadores +Module330Desc=Gestão de marcadores +Module400Name=Projetos/Oportunidades/Leads +Module400Desc=Gestão de projetos, oportunidades ou leads. Depois você pode atribuir qualquer elemento (fatura, encomenda, proposta, intervenção, ...) a um projeto e obter uma vista transversal do mesmo. Module410Name=Webcalendar -Module410Desc=Interface com calendario Webcalendar +Module410Desc=Integração com Webcalendar Module500Name=Despesas especiais -Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module500Desc=Gestão de despesas especiais (impostos, impostos sociais ou ficais, dividendos) +Module510Name=Pagamento dos ordenados do funcionário +Module510Desc=Registe o seguinte pagamento dos ordenados do seu funcionário Module520Name=Empréstimo Module520Desc=Gestão de empréstimos Module600Name=Notificações -Module600Desc=Send EMail notifications (triggered by some business events) to users (setup defined on each user), third-party contacts (setup defined on each third party) or fixed emails -Module700Name=Bolsas -Module700Desc=Gestão de Bolsas +Module600Desc=Enviar notificações por email (acionado por alguns eventos) aos utilizadores (configurável para cada utilizador), contactos de terceiros (configurável para cada terceiro) ou emails fixos +Module700Name=Donativos +Module700Desc=Gestão de donativos Module770Name=Relatórios de despesas -Module770Desc=Management and claim expense reports (transportation, meal, ...) -Module1120Name=Supplier commercial proposal -Module1120Desc=Request supplier commercial proposal and prices +Module770Desc=Gestão e reivindicação de relatórios de despesas (deslocação, refeição, ...) +Module1120Name=Orçamentos de fornecedores +Module1120Desc=Pedir orçamentos e preços de fornecedores Module1200Name=Mantis -Module1200Desc=Interface com o sistema de seguimento de incidencias Mantis -Module1400Name=Perito de Contabilidade -Module1400Desc=Perido de gestão da Contabilidade (dupla posição) -Module1520Name=Criação de Documentio -Module1520Desc=Mass mail document generation +Module1200Desc=Integração com Mantis +Module1400Name=Contabilidade +Module1400Desc=Gestão de contabilidade (dupla posição) +Module1520Name=Criação de documentos +Module1520Desc=Produção do documento da emails em massa Module1780Name=Etiquetas/Categorias Module1780Desc=Criar etiquetas/categoria (produtos, clientes, fornecedores, contactos ou membros) -Module2000Name=FCKeditor -Module2000Desc=Allow to edit some text area using an advanced editor (Based on CKEditor) -Module2200Name=Preços Dinamicos -Module2200Desc=Enable the usage of math expressions for prices +Module2000Name=Editor WYSIWYG +Module2000Desc=Permitir a edição de texto utilizando um editor avançado (baseado no CKEditor) +Module2200Name=Preços dinamicos +Module2200Desc=Permitir a utilização de expressões matemáticas para os preços Module2300Name=Cron Module2300Desc=Gestão de trabalho agendado -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. -Module2500Name=Gestão Electrónica de Documentos -Module2500Desc=Permite administrar uma base de documentos +Module2400Name=Eventos/Agenda +Module2400Desc=Seguir eventos terminados e que estão para ocorrer. Permitir que a aplicação registe eventos automáticos ou eventos manuais ou encontros. +Module2500Name=Gestão electrónica de conteúdo +Module2500Desc=Guardar e partilhar documentos Module2600Name=Serviços API/Web (servidor SOAP) -Module2600Desc=Enable the Dolibarr SOAP server providing API services +Module2600Desc=Ativar o servidor SOAP do Dolibarr, fornecendo serviços API Module2610Name=Serviços API/Web (servidor REST) -Module2610Desc=Enable the Dolibarr REST server providing API services -Module2660Name=Call WebServices (SOAP client) -Module2660Desc=Enable the Dolibarr web services client (Can be used to push data/requests to external servers. Supplier orders supported only for the moment) +Module2610Desc=Ativar os serviços API do servidor REST do Dolibarr +Module2660Name=Serviços Web de chamada (cliente SOAP) +Module2660Desc=Ativar o cliente de serviços web Dolibarr (pode ser usado para enviar dados/pedidos a servidores externos. Suporta apenas encomendas a fornecedores de momento) Module2700Name=Gravatar -Module2700Desc=Usar o serviço online Gravatar (www.gravatar.com) para mostrar as fotos dos utilizadores / membros (que encontrar nos seus e-mails). Necessita de um acesso à Internet +Module2700Desc=Usar o serviço online Gravatar (www.gravatar.com) para mostrar as fotos dos utilizadores/membros (que encontrar nos seus e-mails). Necessita de um acesso à Internet Module2800Desc=Cliente FTP Module2900Name=GeoIPMaxmind -Module2900Desc=Capacidades GeoIP conversões MaxMind +Module2900Desc=Capacidades de conversões GeoIP Maxmind Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3100Desc=Adicionar um botão Skype nas fichas dos usuários/terceiros/contactos/membros +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=RH -Module4000Desc=Human resources management -Module5000Name=Multi-empresa +Module4000Desc=Gestão de recursos humanos (gestão do departamento, contactos do funcionário e sentimentos) +Module5000Name=Multiempresa Module5000Desc=Permite-lhe gerir várias empresas -Module6000Name=Fluxo de Trabalho +Module6000Name=Fluxo de trabalho Module6000Desc=Gestão do fluxo de trabalho -Module10000Name=Websites +Module10000Name=Sites da Web Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web server to point to the dedicated directory to have it online on the Internet. -Module20000Name=Deixar gestão de Pedidos -Module20000Desc=Declare and follow employees leaves requests -Module39000Name=Product lot -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products -Module50000Name=Paybox -Module50000Desc=Módulo para oferecer uma página de pagamento online por cartão de crédito com paybox -Module50100Name=Caixa -Module50100Desc=Modúlo de Ponto de Venda (POS). +Module20000Name=Gestão de pedidos de licença +Module20000Desc=Declarar e seguir os pedidos de licença dos funcionários +Module39000Name=Lote do produto +Module39000Desc=Gestão de produtos por lotes ou números de série +Module50000Name=PayBox +Module50000Desc=Módulo que disponibiliza uma página de pagamento online por cartão de crédito com PayBox +Module50100Name=Ponto de vendas +Module50100Desc=Modúlo de ponto de vendas (POS). Module50200Name=Paypal -Module50200Desc=Módulo para oferecer uma página de pagamento online por cartão de crédito com Paypal -Module50400Name=Accounting (advanced) -Module50400Desc=Perido de gestão da Contabilidade (dupla posição) +Module50200Desc=Módulo que disponibiliza uma página de pagamento online por cartão de crédito com Paypal +Module50400Name=Contabilidade (avançada) +Module50400Desc=Gestão de contabilidade (dupla posição) Module54000Name=PrintIPP -Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) +Module54000Desc=impressão direta (sem abrir os documentos) usando a interface Cups IPP (A impressora deve ser visível a partir do servidor, e o CUPS deve estar instalado no servidor). +Module55000Name=Votação ou Questionário +Module55000Desc=Módulo para fazer votações ou questionários online (como Doodle, Studs, Rdvz, ...) Module59000Name=Margens -Module59000Desc=Módulo para gerir as margens +Module59000Desc=Módulo para gerir margens Module60000Name=Comissões Module60000Desc=Módulo para gerir comissões Module63000Name=Recursos Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events -Permission11=Consultar facturas -Permission12=Criar/Modificar facturas -Permission13=Facturas não validadas -Permission14=Confirmar facturas -Permission15=Enviar facturas por correio -Permission16=Emitir pagamentos de facturas -Permission19=Eliminar facturas -Permission21=Consultar Orçamentos -Permission22=Criar/Modificar Orçamentos -Permission24=Confirmar Orçamentos -Permission25=Enviar os Orçamentos -Permission26=Fechar Orçamentos -Permission27=Eliminar Orçamentos -Permission28=Exportação propostas comerciais -Permission31=Consultar produtos/serviços -Permission32=Criar/Modificar produtos/serviços -Permission34=Eliminar produtos/serviços -Permission36=Exportar produtos/serviços -Permission38=Exportar Produtos -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks -Permission44=Eliminar projectos -Permission45=Export projects -Permission61=Consultar Intervenções -Permission62=Criar/Modificar Intervenções -Permission64=Eliminar Intervenções -Permission67=Exportar Intervenções -Permission71=Consultar Membros -Permission72=Criar/Modificar Membros -Permission74=Eliminar Membros +Permission11=Consultar facturas de clientes +Permission12=Criar/Modificar faturas de clientes +Permission13=Invalidar faturas de clientes +Permission14=Validar faturas de clientes +Permission15=Enviar faturas de clientes por email +Permission16=Emitir pagamentos para facturas de clientes +Permission19=Eliminar faturas de clientes +Permission21=Consultar orçamentos a clientes +Permission22=Criar/Modificar orçamentos a clientes +Permission24=Confirmar orçamentos a clientes +Permission25=Enviar orçamentos a clientes +Permission26=Fechar orçamentos para clientes +Permission27=Eliminar orçamentos a clientes +Permission28=Exportar orçamentos a clientes +Permission31=Consultar produtos +Permission32=Criar/Modificar produtos +Permission34=Eliminar produtos +Permission36=Ver/Gerir produtos ocultos +Permission38=Exportar produtos +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission42=Criar/modificar projetos (projetos partilhados e projetos nos quais sou contacto). Permite também criar tarefas e atribuir utilizadores a projetos e tarefas +Permission44=Eliminar projectos (projetos partilhados e projetos dos quais sou contacto) +Permission45=Exportar projetos +Permission61=Consultar intervenções +Permission62=Criar/Modificar intervenções +Permission64=Eliminar intervenções +Permission67=Exportar intervenções +Permission71=Consultar membros +Permission72=Criar/Modificar membros +Permission74=Eliminar membros Permission75=Configure os tipos de membros Permission76=Exportar dados -Permission78=Consultar honorários -Permission79=Criar/Modificar honorários -Permission81=Consultar pedidos de clientes -Permission82=Criar/Modificar pedidos de clientes -Permission84=Confirmar pedidos de clientes -Permission86=Enviar pedidos de clientes -Permission87=Fechar pedidos de clientes -Permission88=Anular pedidos de clientes -Permission89=Eliminar pedidos de clientes -Permission91=Read social or fiscal taxes and vat -Permission92=Create/modify social or fiscal taxes and vat -Permission93=Delete social or fiscal taxes and vat -Permission94=Export social or fiscal taxes -Permission95=Consultar balanços e resultados +Permission78=Consultar subscrições +Permission79=Criar/Modificar subscrições +Permission81=Consultar encomendas de clientes +Permission82=Criar/Modificar encomendas de clientes +Permission84=Confirmar encomendas de clientes +Permission86=Enviar encomendas de clientes +Permission87=Fechar encomendas de clientes +Permission88=Cancelar encomendas de clientes +Permission89=Eliminar encomendas de clientes +Permission91=Consultar impostos sociais e fiscais e IVA +Permission92=Criar/modificar impostos sociais e fiscais e IVA +Permission93=Eliminar impostos sociais e fiscais e IVA +Permission94=Exportar impostos sociais ou fiscais +Permission95=Consultar relatórios Permission101=Consultar envios Permission102=Criar/modificar envios Permission104=Confirmar envios Permission106=Exportar envios Permission109=Eliminar envios -Permission111=Consultar contas financeiras (contas bancarias, caixas) -Permission112=Criar/Modificar quantidade/eliminar registos bancarios +Permission111=Consultar contas financeiras (contas bancárias, caixas) +Permission112=Criar/modificar/eliminar e comparar trasações Permission113=Configurar as contas ficnanceiras (criar, gerir categorias) Permission114=Reconciliar transações Permission115=Exportar transacções e extractos -Permission116=Captar transferencias entre contas -Permission117=Gerir envío de cheques -Permission121=Consultar empresas -Permission122=Criar/Modificar empresas -Permission125=Eliminar empresas -Permission126=Exportar as empresas -Permission141=Ler todos os projetos e tarefas (também os projetos privados em que eu não sou contactado) -Permission142=Criar/modificar todos os projetos e tarefas (também os projetos privados em que eu não sou contactado) -Permission144=Eliminar todos os projetos e tarefas (também os projetos privados em que eu não sou contactado) -Permission146=Consultar Fornecedores -Permission147=Consultar Estados -Permission151=Read direct debit payment orders -Permission152=Create/modify a direct debit payment orders -Permission153=Send/Transmit direct debit payment orders -Permission154=Record Credits/Rejects of direct debit payment orders -Permission161=Ler contractos/subscrições -Permission162=Criar/modificar contractos/subscrições -Permission163=Ativar um serviço/subscrição de um contracto -Permission164=Desativar um serviço/subscrição de um contracto -Permission165=Apagar contractos/subscrições -Permission167=Export contracts -Permission171=Read trips and expenses (yours and your subordinates) +Permission116=Transferências entre contas +Permission117=Gerir envio de cheques +Permission121=Consultar terceiros associados ao utilizador +Permission122=Criar/modificar terceiros associados ao utilizador +Permission125=Eliminar terceiros associados ao utilizador +Permission126=Exportar terceiros +Permission141=Ler todos os projetos e tarefas (também os projetos privados para os quais não sou contatado) +Permission142=Criar/modificar todos os projetos e tarefas (também os projetos privados para os quais não sou contactado) +Permission144=Eliminar todos os projetos e tarefas (também os projetos privados para os quais não sou contactado) +Permission146=Consultar fornecedores de rede +Permission147=Consultar estados +Permission151=Consultar ordens de pagamento por débito direto +Permission152=Criar/modificar ordens de pagamento por débito direto +Permission153=Enviar/transimitir ordens de pagamento por débito direto +Permission154=Registar Créditos/Rejeições de ordens de pagamento por débito direto +Permission161=Consultar contratos/subscrições +Permission162=Criar/modificar contratos/subscrições +Permission163=Ativar um serviço/subscrição de um contrato +Permission164=Desativar um serviço/subscrição de um contrato +Permission165=Apagar contratos/subscrições +Permission167=Exportar contratos +Permission171=Consultar viagens e despesas (suas e dos seus subordinados) Permission172=Criar/modificar viagens e despesas Permission173=Apagar viagens e despesas -Permission174=Ler todas as viagens e despesas +Permission174=Consultar todas as viagens e despesas Permission178=Exportar viagens e despesas -Permission180=Consultar Fornecedores -Permission181=Consultar pedidos a Fornecedores -Permission182=Criar/Modificar pedidos a Fornecedores -Permission183=Confirmar pedidos a Fornecedores -Permission184=Aprovar pedidos a Fornecedores -Permission185=Encomendar ou cancelar ordens do fornecedor -Permission186=Receber pedidos de Fornecedores -Permission187=Fechar pedidos a Fornecedores -Permission188=Anular pedidos a Fornecedores -Permission192=Criar Linhas -Permission193=Cancelar Linhas -Permission194=Consultar Linhas, Largura de Banda -Permission202=Criar Ligações ADSL -Permission203=Ordem das ligações encomendadas -Permission204=Comprar Ligações -Permission205=Gerir Ligações -Permission206=Consultar Ligações -Permission211=Ler Telefone -Permission212=Comprar Linhas -Permission213=Activar Linha -Permission214=Configurar Telefone -Permission215=Configurar Fornecedores -Permission221=Consultar E-Mails -Permission222=Criar/Modificar E-Mails (assunto, destinatarios, etc.) -Permission223=Confirmar E-Mails (permite o envío) -Permission229=Eliminar E-Mails +Permission180=Consultar fornecedores +Permission181=Consultar encomendas a fornecedores +Permission182=Criar/modificar encomendas a fornecedores +Permission183=Confirmar encomendas a fornecedores +Permission184=Aprovar encomendas a fornecedores +Permission185=Encomendar ou cancelar encomendas a fornecedores +Permission186=Receber encomendas a fornecedores +Permission187=Fechar encomendas a fornecedores +Permission188=Cancelar encomendas a fornecedores +Permission192=Criar linhas de rede +Permission193=Cancelar linhas de rede +Permission194=Consultar linhas de largura de banda +Permission202=Criar ligações ADSL +Permission203=Encomendar encomendas de ligações +Permission204=Encomendar ligações +Permission205=Gerir ligações +Permission206=Consultar ligações +Permission211=Consultar telefonia +Permission212=Encomendar linhas de rede +Permission213=Ativar linha de rede +Permission214=Configurar telefonia +Permission215=Configurar fornecedores de rede +Permission221=Consultar emails +Permission222=Criar/modificar emails (assunto, destinatários, etc.) +Permission223=Validar emails (permite o envío) +Permission229=Eliminar emails Permission237=Ver destinatários e informação Permission238=Envie correio manualmente Permission239=Apagar o correio depois da validação ou envio Permission241=Consultar categorías -Permission242=Criar/Modificar categorías +Permission242=Criar/modificar categorías Permission243=Eliminar categorías Permission244=Ver conteudo de categorías ocultas -Permission251=Consultar Outros Utilizadores, grupos e permissões -PermissionAdvanced251=Leia outros usuários -Permission252=Criar/Modificar outros utilizadores, grupos e permissões -Permission253=Modificar a palavra-passe de outros utilizadores -PermissionAdvanced253=Criar / modificar usuários internos / externos e permissões -Permission254=Eliminar ou desactivar outros utilizadores +Permission251=Consultar outros utilizadores e grupos +PermissionAdvanced251=Consultar outros utilizadores +Permission252=Consultar permissões de outros utilizadores +Permission253=Criar/modificar outros utilizadores, grupos e permissões +PermissionAdvanced253=Criar/modificar utilizadores internos/externos e permissões +Permission254=Criar/modificar apenas utilizadores externos Permission255=Modificar a palavra-passe de outros utilizadores -Permission256=Modificar a sua propia palavra-passe -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). -Permission271=Ler CA -Permission272=Ler Facturas -Permission273=Emitir Factura +Permission256=Eliminar ou desativar outros utilizadores +Permission262=Extender o acesso do utilizador a todos os terceiros (e não apenas aos clientes dos quais o utilizador é representante de vendas).
Não é eficaz para utilizadores externos (sempre limitados aos orçamentos, encomendas, faturas, etc. que são deles)
Não é eficaz para projetos (apenas regras em termos de permissões, visibilidade e atribuição de projeto é que importam). +Permission271=Consultar CA +Permission272=Consultar faturas +Permission273=Emitir fatura Permission281=Consultar contactos -Permission282=Criar/Modificar contactos +Permission282=Criar/modificar contactos Permission283=Eliminar contactos -Permission286=Exportar os contactos -Permission291=Consultar Tarifas -Permission292=Permissões das Tarifas -Permission293=Modificar Fornecedor de Tarifas +Permission286=Exportar contactos +Permission291=Consultar tarifas +Permission292=Definir permissões das tarifas +Permission293=Modificar tarifas de clientes Permission300=Consultar códigos de barra -Permission301=Criar/Modificar códigos de barra +Permission301=Criar/modificar códigos de barra Permission302=Eliminar código de barras -Permission311=Consultar Serviços -Permission312=Assign service/subscription to contract -Permission331=Consultar Favoritos -Permission332=Criar/Modificar Favoritos -Permission333=Eliminar Favoritos -Permission341=Leia suas próprias permissões -Permission342=Criar / modificar suas informações de utilizador +Permission311=Consultar serviços +Permission312=Atribuir serviço/subscrição ao contrato +Permission331=Consultar marcadores +Permission332=Criar/modificar marcadores +Permission333=Eliminar marcadores +Permission341=Consultar as suas próprias permissões +Permission342=Criar/modificar a sua informação de utilizador Permission343=Modificar a sua própria palavra-passe -Permission344=Modificar suas próprias permissões -Permission351=Leia grupos -Permission352=Permissões de leitura grupos -Permission353=Criar / modificar grupos -Permission354=Excluir ou desativar grupos -Permission358=Usuários de Exportação -Permission401=Consultar activos -Permission402=Criar/Modificar activos -Permission403=Confirmar activos -Permission404=Eliminar activos -Permission510=Ler Salários +Permission344=Modificar as suas próprias permissões +Permission351=Consultar grupos +Permission352=Consultar permissões dos grupos +Permission353=Criar/modificar grupos +Permission354=Eliminar ou desativar grupos +Permission358=Exportar utilizadores +Permission401=Consultar descontos +Permission402=Criar/modificar descontos +Permission403=Validar descontos +Permission404=Eliminar descontos +Permission510=Consultar salários Permission512=Criar/modificar salários Permission514=Apagar salários Permission517=Exportar salários -Permission520=Ler Empréstimos +Permission520=Consultar empréstimos Permission522=Criar/modificar empréstimos Permission524=Eliminar empréstimos Permission525=Aceder á calculadora de empréstimos Permission527=Exportar empréstimos -Permission531=Ler serviços -Permission532=Criar / modificar serviços -Permission534=Apagar serviços -Permission536=Ver / gerenciar os serviços escondidos -Permission538=Exportação de serviços -Permission701=Consultar Bolsas -Permission702=Criar/Modificar Bolsas -Permission703=Eliminar Bolsas -Permission771=Read expense reports (yours and your subordinates) +Permission531=Consultar serviços +Permission532=Criar/modificar serviços +Permission534=Eliminar serviços +Permission536=Ver/gerir serviços ocultos +Permission538=Exportar serviços +Permission701=Consultar donativos +Permission702=Criar/modificar donativos +Permission703=Eliminar donativos +Permission771=Consultar relatórios de despesas (seus e dos seus subordinados) Permission772=Criar/modificar relatórios de despesas Permission773=Eliminar relatórios de despesas -Permission774=Read all expense reports (even for user not subordinates) +Permission774=Consultar todos os relatórios de despesa (mesmo para utilizadores que não são subordinados) Permission775=Aprovar relatórios de despesas Permission776=Pagar relatórios de despesas Permission779=Exportar relatórios de despesas Permission1001=Consultar stocks Permission1002=Criar/modificar armazéns -Permission1003=Apagar armazéns -Permission1004=Consultar movimientos de stock -Permission1005=Criar/Modificar movimentos de stock +Permission1003=Eliminar armazéns +Permission1004=Consultar movimentos de stock +Permission1005=Criar/modificar movimentos de stock Permission1101=Consultar ordens de envío Permission1102=Criar/modificar ordens de envío Permission1104=Confirmar ordem de envío Permission1109=Eliminar ordem de envío -Permission1181=Consultar Fornecedores -Permission1182=Consultar pedidos a Fornecedores -Permission1183=Criar pedidos a Fornecedores -Permission1184=Confirmar pedidos a Fornecedores -Permission1185=Aprovar pedidos a Fornecedores -Permission1186=Enviar pedidos a Fornecedores -Permission1187=Receber pedidos de Fornecedores -Permission1188=Fechar pedidos a Fornecedores -Permission1190=Approve (second approval) supplier orders +Permission1181=Consultar fornecedores +Permission1182=Consultar encomendas a fornecedores +Permission1183=Criar/modificar encomendas a fornecedores +Permission1184=Validar encomendas a fornecedores +Permission1185=Aprovar encomendas a fornecedores +Permission1186=Encomendar encomendas a fornecedores +Permission1187=Confirmar a receção de encomendas a fornecedores +Permission1188=Eliminar encomendas a fornecedores +Permission1190=Aprovar (segunda aprovação) encomendas a fornecedores Permission1201=Obter resultado de uma exportação -Permission1202=Criar/Modificar Exportações -Permission1231=Consultar facturas de Fornecedores -Permission1232=Criar facturas de Fornecedores -Permission1233=Confirmar facturas de Fornecedores -Permission1234=Eliminar facturas de Fornecedores -Permission1235=Enviar facturas de fornecedores por e-mail -Permission1236=Exportar facturas de Fornecedores, atributos e pagamentos -Permission1237=Exportar as encomendas do fornecedor e os seus ddetalhes -Permission1251=Executar importações em massa de dados externos em bases de dados (dados de carga) -Permission1321=Exportar facturas a clientes, atributos e cobranças +Permission1202=Criar/Modificar uma exportação +Permission1231=Consultar facturas de fornecedores +Permission1232=Criar/modificar facturas de fornecedores +Permission1233=Validar faturas de fornecedores +Permission1234=Eliminar faturas de fornecedores +Permission1235=Enviar faturas de fornecedores por email +Permission1236=Exportar faturas, atributos e pagamentos de fornecedores +Permission1237=Exportar encomendas a fornecedores e os seus detalhes +Permission1251=Executar importações em massa de dados externos para a bases de dados (data load) +Permission1321=Exportar faturas, atributos e cobranças de clientes Permission1322=Reopen a paid bill -Permission1421=Exportar facturas de clientes e atributos -Permission20001=Read leave requests (yours and your subordinates) -Permission20002=Create/modify your leave requests -Permission20003=Delete leave requests -Permission20004=Read all leave requests (even user not subordinates) -Permission20005=Create/modify leave requests for everybody -Permission20006=Admin leave requests (setup and update balance) -Permission23001=Ler trabalho agendado +Permission1421=Exportar faturas e atributos de clientes +Permission20001=Consultar pedidos de licença (seu e dos seus subordinados) +Permission20002=Criar/Modificar os seus pedidos de licença +Permission20003=Eliminar pedidos de licença +Permission20004=Consultar todos os pedidos de licença (seus e dos seus subordinados) +Permission20005=Criar/Modificar todos os pedidos de licenças +Permission20006=Pedidos de licenças do administrador (configuração e atualização do balanço) +Permission23001=Consultar trabalho agendado Permission23002=Criar/atualizar trabalho agendado -Permission23003=Apagar Trabalho Agendado -Permission23004=Executar Trabalho Agendado -Permission2401=Ler acções (eventos ou tarefas) vinculadas na sua conta -Permission2402=Criar/Modificar/Eliminar acções (eventos ou tarefas) vinculadas na sua conta -Permission2403=Consultar acções (acontecimientos ou tarefas) de outros -Permission2411=Ler acções (eventos ou tarefas) de outros -Permission2412=Criar / modificar acções (eventos ou tarefas) de outros -Permission2413=Excluir acções (eventos ou tarefas) de outros -Permission2414=Export actions/tasks of others -Permission2501=Consultar documentos -Permission2502=Enviar ou eliminar documentos -Permission2503=Enviar ou excluir documentos -Permission2515=Configuração de directorios de documentos -Permission2801=Usar cliente FTP em modo de leitura (listar e transferir apenas) -Permission2802=Usar o cliente FTP em modo de escrita (apagar ou fazer upload de ficheiros) -Permission50101=Usar Pontos de Venda -Permission50201=Leia transações -Permission50202=Operações de importação +Permission23003=Eliminar trabalho agendado +Permission23004=Executar trabalho agendado +Permission2401=Consultar ações (eventos ou tarefas) vinculadas à conta dele +Permission2402=Criar/modificar ações (eventos ou tarefas) vinculadas à conta dele +Permission2403=Consultar ações (eventos ou tarefas) vinculadas à conta dele +Permission2411=Consultar ações (eventos ou tarefas) de outros +Permission2412=Criar/modificar ações (eventos ou tarefas) de outros +Permission2413=Eliminar ações (eventos ou tarefas) de outros +Permission2414=Exportar ações/taregas de outros +Permission2501=Consultar/descarregar documentos +Permission2502=Descarregar documentos +Permission2503=Submeter ou eliminar documentos +Permission2515=Configuração de diretórios de documentos +Permission2801=Usar cliente FTP em modo de leitura (listar e descarregar apenas) +Permission2802=Usar o cliente FTP em modo de escrita (eliminar ou carregar ficheiros) +Permission50101=Utilizar Pontos de venda +Permission50201=Consultar transações +Permission50202=Importar transações Permission54001=Imprimir -Permission55001=Read polls -Permission55002=Create/modify polls -Permission59001=Read commercial margins -Permission59002=Define commercial margins -Permission59003=Read every user margin +Permission55001=Consultar votações +Permission55002=Criar/Modificar votações +Permission59001=Consultar margens comerciais +Permission59002=Definir margens comerciais +Permission59003=Consultar as margens de todos os utilizadores Permission63001=Read resources Permission63002=Create/modify resources Permission63003=Delete resources Permission63004=Link resources to agenda events -DictionaryCompanyType=Types of thirdparties -DictionaryCompanyJuridicalType=Legal forms of thirdparties -DictionaryProspectLevel=Perspectiva ao nivel do cliente potencial -DictionaryCanton=Cidade/Distrito -DictionaryRegion=Regiões +DictionaryCompanyType=Tipos de terceiros +DictionaryCompanyJuridicalType=Formulários legais de terceiros +DictionaryProspectLevel=Nível de potencial da prospeção +DictionaryCanton=Concelho +DictionaryRegion=Distritos DictionaryCountry=Países DictionaryCurrency=Moedas -DictionaryCivility=Personal and professional titles -DictionaryActions=Types of agenda events -DictionarySocialContributions=Social or fiscal taxes types +DictionaryCivility=Títulos pessoais e profissionais +DictionaryActions=Tipos de eventos da agenda +DictionarySocialContributions=Tipos de impostos sociais ou fiscais DictionaryVAT=Taxa de IVA -DictionaryRevenueStamp=Amount of revenue stamps -DictionaryPaymentConditions=Condições de Pagamento -DictionaryPaymentModes=Modos de Pagamento -DictionaryTypeContact=Tipos de Contacto/Endereço -DictionaryEcotaxe=ECO Taxa (DEEE) +DictionaryRevenueStamp=Quantidade de sêlos fiscais +DictionaryPaymentConditions=Condições de pagamento +DictionaryPaymentModes=Métodos de pagamento +DictionaryTypeContact=Tipos de contacto/endereço +DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Formatos de Papel DictionaryFormatCards=Cards formats -DictionaryFees=Types of fees -DictionarySendingMethods=Métodos de Expedição +DictionaryFees=Tipos de taxas +DictionarySendingMethods=Métodos de expedição DictionaryStaff=Empregados DictionaryAvailability=Atraso na entrega DictionaryOrderMethods=Métodos de encomenda -DictionarySource=Origem das propostas/ordens -DictionaryAccountancyCategory=Accounting account groups +DictionarySource=Origem de orçamentos/encomendas +DictionaryAccountancyCategory=Grupos de contas contabilísticas DictionaryAccountancysystem=Modelos para o gráfíco de contas -DictionaryEMailTemplates=Modelos de Mensagens +DictionaryAccountancyJournal=Diários contabilisticos +DictionaryEMailTemplates=Modelos de emails DictionaryUnits=Unidades DictionaryProspectStatus=Estado da prospeção -DictionaryHolidayTypes=Types of leaves -DictionaryOpportunityStatus=Opportunity status for project/lead +DictionaryHolidayTypes=Tipos de licença +DictionaryOpportunityStatus=Estado da oportunidade para o projeto/lead SetupSaved=Configuração guardada +SetupNotSaved=Setup not saved BackToModuleList=Voltar à lista de módulos BackToDictionaryList=Voltar à lista de dicionários VATManagement=Gestão de IVA -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. -VATIsNotUsedDesc=O tipo de IVA proposto por defeito é 0. Este é o caso de associações, particulares o algunas pequenas sociedades. +VATIsUsedDesc=Por defeito, quando prospeções; faturas; encomendas; etc. são criadas, a taxa de IVA segue a seguinte regra:
Se o vendedor não estiver sujeito a IVA, então este é igual a 0. Fim da regra.
Se o país de venda for igual ao país de compra, então o valor do IVA passa a ser o aplicado no país de venda. Fim da regra.
Se o vendedor e o comprador fizerem parte da União Europeia e os bens forem produtos de transporte (carro, navio, avião), o IVA é 0 (o IVA deverá ser pago pelo comprador à alfândega do seu país, e não ao vendedor). Fim da regra.
Se o vendedor e o comprador fizerem parte da União Europeia e o comprador não for uma empresa, então o IVA é igual ao IVA aplicado no produto vendido. Fim da regra.
Se o vendedor e o comprador fizerem parte da União Europeia e o comprador for uma empresa, então o IVA é igual a 0. Fim da regra.
Noutros casos o IVA por defeito é igual a 0. Fim da regra. +VATIsNotUsedDesc=O tipo de IVA proposto por defeito é 0, este pode ser usado em casos como associações, indivíduos ou pequenas empresas. VATIsUsedExampleFR=Em França, trata-se de sociedades ou organismos que elegem um regime fiscal general (Geral simplificado ou Geral normal), regime ao qual se declara o IVA. -VATIsNotUsedExampleFR=Em França, trata-se de associações ou sociedades isentas de IVA, organismos o profissionais liberais que escolheram o régime fiscal de módulos (IVA em franquia), pagando um IVA em franquia sem fazer declarações de IVA. Esta eleição faz aparecer a anotação "IVA não aplicavel" nas facturas. +VATIsNotUsedExampleFR=Em França, trata-se de associações ou sociedades isentas de IVA, organismos ou profissionais liberais que escolheram o regime fiscal de módulos (IVA em franquia) e pagaram um IVA em franquia sem fazer declarações de IVA. Esta escolha faz com apareça a anotação "IVA não aplicável" nas facturas. ##### Local Taxes ##### LTRate=Taxa LocalTax1IsNotUsed=Não utilizar um segundo imposto -LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (não IVA) -LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (não IVA) +LocalTax1IsUsedDesc=Utilizar um segundo tipo de imposto (para além do IVA) +LocalTax1IsNotUsedDesc=Não utilizar outro tipo de imposto (para além do IVA) LocalTax1Management=Segundo tipo de imposto LocalTax1IsUsedExample= LocalTax1IsNotUsedExample= LocalTax2IsNotUsed=Não utilizar um terceiro imposto -LocalTax2IsUsedDesc=Use a third type of tax (other than VAT) -LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (não IVA) +LocalTax2IsUsedDesc=Utilizar um terceiro tipo de imposto (a parte do IVA) +LocalTax2IsNotUsedDesc=Não utilizar outro tipo de imposto (para além do IVA) LocalTax2Management=Terceiro tipo de imposto LocalTax2IsUsedExample= LocalTax2IsNotUsedExample= @@ -876,185 +902,187 @@ LocalTax1IsUsedDescES= A taxa de RE por padrão, quando as perspectivas de cria LocalTax1IsNotUsedDescES= Por padrão, o RE proposto é 0. Fim da regra. LocalTax1IsUsedExampleES= Em Espanha, eles são profissionais sujeitos a algumas secções específicas do IAE Espanhol. LocalTax1IsNotUsedExampleES= Em Espanha por exemplo, eles são profissionais e sociedades, sujeitos a certas secções do IAE Espanhol. -LocalTax2ManagementES= IRPF Gestão +LocalTax2ManagementES= Gestão de Imposto sobre o Rendimento das Pessoas Singulares (IRS) LocalTax2IsUsedDescES= A taxa de RE por padrão, quando as perspectivas de criação, faturas, pedidos, etc seguir a regra activa padrão:
Se o vendedor não está sujeito ao IRPF, IRPF, seguida, por defeito -LocalTax2IsNotUsedDescES= Por padrão, o IRPF proposto é 0. Fim da regra. +LocalTax2IsNotUsedDescES= Por defeito, o IRS proposto é 0. Fim da regra. LocalTax2IsUsedExampleES= Em Espanha, os freelancers e profissionais liberais que prestam serviços e empresas que escolheram o regime fiscal dos módulos. -LocalTax2IsNotUsedExampleES= Em Espanha, eles não são negócios sujeitas ao regime fiscal dos módulos. -CalcLocaltax=Reports on local taxes +LocalTax2IsNotUsedExampleES= Em Espanha, eles são negócios que não estão sujeitos ao regime fiscal de módulos. +CalcLocaltax=Relatórios sobre impostos locais CalcLocaltax1=Vendas - Compras -CalcLocaltax1Desc=Local Taxes reports are calculated with the difference between localtaxes sales and localtaxes purchases +CalcLocaltax1Desc=Os relatórios de impostos locais são calculados através da diferença entre as vendas de impostos locais e as compras de impostos locais CalcLocaltax2=Compras -CalcLocaltax2Desc=Local Taxes reports are the total of localtaxes purchases +CalcLocaltax2Desc=Os relatórios de impostos locais são o total de compras de impostos locais CalcLocaltax3=Vendas -CalcLocaltax3Desc=Local Taxes reports are the total of localtaxes sales -LabelUsedByDefault=Etiqueta que se utilizará se não se encontra tradução para este código +CalcLocaltax3Desc=Os relatórios de impostos locais são o total de vendas de impostos locais +LabelUsedByDefault=Etiqueta que será utilizada por defeito se não for encontrada tradução para este código LabelOnDocuments=Etiqueta sobre documentos NbOfDays=Nº de Dias -AtEndOfMonth=No Fim de Mês +AtEndOfMonth=No fim de mês CurrentNext=Current/Next -Offset=Deslocado -AlwaysActive=Sempre Activo -Upgrade=Actualização -MenuUpgrade=Upgrade / Ampliar -AddExtensionThemeModuleOrOther=Deploy/install external module +Offset=Desvio +AlwaysActive=Sempre ativo +Upgrade=Atualização +MenuUpgrade=Atualizar/Estender +AddExtensionThemeModuleOrOther=Instalar módulo externo WebServer=Servidor web -DocumentRootServer=Pasta raiz das páginas web -DataRootServer=Pasta raiz dos ficheiros de dados +DocumentRootServer=Directório raiz do servidor +DataRootServer=Diretório raiz dos ficheiros de dados IP=IP Port=Porta VirtualServerName=Nome do servidor virtual OS=SO -PhpWebLink=link Web-PHP -Browser=Browser -Server=Server +PhpWebLink=Ligação Web-PHP +Browser=Navegador +Server=Servidor Database=Base de dados -DatabaseServer=Host da base de dados +DatabaseServer=Servidor da base de dados DatabaseName=Nome da base de dados DatabasePort=Porta da base de dados DatabaseUser=Utilizador da base de dados DatabasePassword=Palavra-passe da base de dados Tables=Tabelas TableName=Nome da tabela -NbOfRecord=Nº Reg. +NbOfRecord=Nº de registos Host=Servidor DriverType=Tipo de driver -SummarySystem=Resumo da informação de sistemas ERP/CRM -SummaryConst=Lista de todos os parâmetros de configuração ERP/CRM -MenuCompanySetup=Empresa/Instituição -DefaultMenuManager= Gestor de menu padrão -DefaultMenuSmartphoneManager=Gestor de menu Smartphone -Skin=Tema visual -DefaultSkin=Tema visual por defeito -MaxSizeList=Longuitude máxima de listagem -DefaultMaxSizeList=Default max length for lists -DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) +SummarySystem=Resumo da informação do sistema +SummaryConst=Lista de todos os parâmetros de configuração do Dolibarr +MenuCompanySetup=Empresa/Organização +DefaultMenuManager= Gestor de menu predefinido +DefaultMenuSmartphoneManager=Gestor de menu smartphone +Skin=Tema +DefaultSkin=Tema predefinido +MaxSizeList=Tamanho máximo da lista +DefaultMaxSizeList=Tamanho máximo predefinido para listas +DefaultMaxSizeShortList=Tamanho máximo predefinido para listas curtas (por exemplo, listas na ficha de cliente) MessageOfDay=Mensagem do día -MessageLogin=Mensagem do login -PermanentLeftSearchForm=Zona de pesquisa permanente do menu esquerdo +MessageLogin=Mensagem da página de inicio de sessão +LoginPage=Login page +BackgroundImageLogin=Background image +PermanentLeftSearchForm=Zona de pesquisa permanente no menu esquerdo DefaultLanguage=Idioma por defeito a utilizar (código idioma) -EnableMultilangInterface=Activar interface Multi Idioma -EnableShowLogo=Mostrar o logotipo no menu da esquerda -CompanyInfo=Informação da Empresa/Instituição -CompanyIds=Identificação regulamentação +EnableMultilangInterface=Ativar interface multi-idioma +EnableShowLogo=Mostrar o logótipo no menu esquerdo +CompanyInfo=Informação da empresa/organização +CompanyIds=Identidades da empresa/organização CompanyName=Nome/Razão social CompanyAddress=Morada CompanyZip=Código Postal -CompanyTown=Concelho +CompanyTown=Cidade CompanyCountry=País CompanyCurrency=Moeda principal CompanyObject=Objeto da empresa Logo=Logótipo DoNotSuggestPaymentMode=Não sugerir -NoActiveBankAccountDefined=Nenhuma conta bancaria activa definida -OwnerOfBankAccount=Titular da conta %s -BankModuleNotActive=O módulo de contas bancarias não se encontra activado +NoActiveBankAccountDefined=Nenhuma conta bancária ativa definida +OwnerOfBankAccount=Titular da conta bancária %s +BankModuleNotActive=O módulo de contas bancarias não se encontra ativado ShowBugTrackLink=Mostrar hiperligação "%s" Alerts=Alertas -DelaysOfToleranceBeforeWarning=Prazos de tolerancia antes de notificação -DelaysOfToleranceDesc=Esta janela permite configurar os prazos de tolerancia antes de que se notifique com o símbolo %s, sobre cada elemento em atraso. -Delays_MAIN_DELAY_ACTIONS_TODO=Delay tolerance (in days) before alert on planned events (agenda events) not completed yet +DelaysOfToleranceBeforeWarning=Prazos de tolerância antes de notificação +DelaysOfToleranceDesc=Esta janela permite configurar os prazos de tolerância antes da emissão de um alerta no ecrã, com o símbolo %s, sobre cada elemento em atraso. +Delays_MAIN_DELAY_ACTIONS_TODO=Tolerância de atraso (em dias) antes da emissão de um alerta para eventos planeados (eventos da agenda) que não estejam terminados Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time -Delays_MAIN_DELAY_TASKS_TODO=Delay tolerance (in days) before alert on planned tasks (project tasks) not completed yet -Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on orders not processed yet -Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Delay tolerance (in days) before alert on suppliers orders not processed yet -Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Delay tolerance (in days) before alert on proposals to close -Delays_MAIN_DELAY_PROPALS_TO_BILL=Delay tolerance (in days) before alert on proposals not billed -Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerance delay (in days) before alert on services to activate -Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerance delay (in days) before alert on expired services -Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerance delay (in days) before alert on unpaid supplier invoices -Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerence delay (in days) before alert on unpaid client invoices -Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerance delay (in days) before alert on pending bank reconciliation -Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed membership fee -Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do -Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve -SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +Delays_MAIN_DELAY_TASKS_TODO=Tolerância de atraso (em dias) antes da emissão de alertas para tarefas planeadas (tarefas de projeto) ainda não concluídas +Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerância de atraso (em dias) antes da emissão de um alerta para encomendas de cleintes não processadas +Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolerância de atraso (em dias) antes da emissão de um alerta para encomendas a fornecedor não processadas +Delays_MAIN_DELAY_PROPALS_TO_CLOSE=Tolerância (em dias) antes da emissão do alerta para orçamentos a fechar +Delays_MAIN_DELAY_PROPALS_TO_BILL=Tolerância (em dias) antes da emissão do alerta para orçamentos não faturados +Delays_MAIN_DELAY_NOT_ACTIVATED_SERVICES=Tolerância de atraso (em dias) antes da emissão de um alerta para serviços por ativar +Delays_MAIN_DELAY_RUNNING_SERVICES=Tolerância de atraso (em dias) antes da emissão de um alerta para serviços expirados +Delays_MAIN_DELAY_SUPPLIER_BILLS_TO_PAY=Tolerância de atraso (em dias) antes da emissão de um alerta para faturas de fornecedores por pagar +Delays_MAIN_DELAY_CUSTOMER_BILLS_UNPAYED=Tolerância de atraso (em dias) antes da emissão de um alerta para faturas de clientes por pagar +Delays_MAIN_DELAY_TRANSACTIONS_TO_CONCILIATE=Tolerância de atraso (em dias) antes da emissão de um alerta para reconcilizações bancárias pendentes +Delays_MAIN_DELAY_MEMBERS=Tolerância de atraso (em dias) antes da emissão de um alerta para atrasos de pagamentos para taxas de associação +Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerância de atraso (em dias) antes da emissão de um alerta para depósitos em cheques, por efetuar +Delays_MAIN_DELAY_EXPENSEREPORTS=Atraso de tolerância (em dias) antes da emissão de um alerta para relatórios de despesas por aprovar +SetupDescription1=A área de configuração é para parâmetros de configuração iniciais, antes do primeiro uso do Dolibarr +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Outros itens do menu, gerir parâmetros opcionais. -LogEvents=Auditoría da segurança de eventos -Audit=Auditoría -InfoDolibarr=Sobre Dolibarr -InfoBrowser=About Browser -InfoOS=Sobre OS -InfoWebServer=Sobre Web Server -InfoDatabase=Sobre Database -InfoPHP=Sobre PHP -InfoPerf=About Performances -BrowserName=Nome do Navegador -BrowserOS=Browser OS -ListOfSecurityEvents=Listagem de eventos de segurança ERP/CRM +LogEvents=Eventos de auditoria da segurança +Audit=Auditoria +InfoDolibarr=Sobre o Dolibarr +InfoBrowser=Sobre o navegador +InfoOS=Sobre o sistema operativo +InfoWebServer=Sobre o servidor web +InfoDatabase=Sobre a base de dados +InfoPHP=Sobre o PHP +InfoPerf=Sobre o desempenho +BrowserName=Nome do navegador +BrowserOS=Sistema operativo do navegador +ListOfSecurityEvents=Listagem de eventos de segurança do Dolibarr SecurityEventsPurged=Os eventos de segurança purgados -LogEventDesc=Pode activar o registo de eventos de segurança ERP/CRM aquí. os administradores podem ver o seu conteúdo a través d0 menu ferramentas do sistema - Auditoria.Atenção, esta característica pode consumir uma grande quantidade de espaço na base de dados. -AreaForAdminOnly=Estas funções só são acessiveis ao Utilizador Administrador. +LogEventDesc=Pode ativar o registo de eventos de segurança Dolibarr aqui. Os administradores podem ver o seu conteúdo a través do menu Ferramentas do sistema - Auditoria. Atenção, esta funcionalidade pode consumir uma grande quantidade de espaço na base de dados. +AreaForAdminOnly=Os parâmetros de configuração só podem ser definidos pelos utilizadores administradores. SystemInfoDesc=Esta informação do sistema é uma informação técnica acessível só para leitura dos administradores. -SystemAreaForAdminOnly=Esta área só é acessível aos Utilizadores do tipo administradores. Nenhuma permissão ERP/CRM permite extender o círculo de Utilizadores autorizados. -CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) -DisplayDesc=Pode encontrar aqui todos os parâmetros relacionados com a apariencia do ERP -AvailableModules=Módulos disponiveis -ToActivateModule=Para activar os módulos, aceder á área de configuração. -SessionTimeOut=Time out de sessões -SessionExplanation=Assegura que o período de sessões não expirará antes deste momento. sem perda, a Gestão do período de sessões de PHP não garante que o período de sessões expire depois deste período: Este será o caso sem o sistema de limpieza da cache de sessões activo.
Nota: sem mecanismo especial, o mecanismo interno para limpiar o período de sessões de PHP e todos os acessos %s/%s, só em acesso de Outros períodos de sessões. -TriggersAvailable=Triggers disponiveis -TriggersDesc=Os triggers são Ficheiros que, une vez depositados na pasta htdocs/includes/triggers, modifican o comportamento do workflow de Dolibarr. Realizan acções suplementares, desencadenadas por os eventos Dolibarr (criação de empresa, validação factura, fechar contrato, etc). -TriggerDisabledByName=Triggers deste Ficheiro desactivador por o sufijo -NORUN ao Nome do Ficheiro. -TriggerDisabledAsModuleDisabled=Triggers deste Ficheiro desactivados já que o módulo %s não está activado. -TriggerAlwaysActive=Triggers deste Ficheiro sempre activos, já que os módulos Dolibarr relacionados estão activados -TriggerActiveAsModuleActive=Triggers deste Ficheiro activos já que o módulo %s está activado -GeneratedPasswordDesc=Indique aqui que norma quer utilizar para gerar as palavras-passe. -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. -MiscellaneousDesc=All other security related parameters are defined here. -LimitsSetup=Configuração de límites e precisões -LimitsDesc=Pode definir aqui os límites e precisões utilizados pelo ERP/CRM -MAIN_MAX_DECIMALS_UNIT=Decimais máximos para os preços unitários -MAIN_MAX_DECIMALS_TOT=Decimais máximos para os preços totais -MAIN_MAX_DECIMALS_SHOWN=Decimais máximos para os valores mostrados na janela (Por ... depois do valor máximo em ... quando o número seja truncado, mostrar na janela) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +SystemAreaForAdminOnly=Esta área só é acessível aos utilizadores administradores. Nenhuma permissão do Dolibarr permite reduzir esta limitação. +CompanyFundationDesc=Nesta página modifique toda a informação relacionada com a empresa ou fundação que você gere (para isso, clique em no botão "Modificar" ou "Guardar" no fim da página) +DisplayDesc=Pode encontrar aqui todos os parâmetros relacionados com a aparência do Dolibarr +AvailableModules=Módulos disponíveis +ToActivateModule=Para ativar módulos, aceder à área de configuração (Configuração->Módulos). +SessionTimeOut=Tempo limite para a sessão +SessionExplanation=Este valor assegura que o período de sessões não expirará antes deste momento, se a limpeza de sessão for efetuada internamente pelo PHP (e nada mais). A limpeza de sessões interna do PHP não garante que a sessão expire logo a seguir ao atraso definido. A sessão irá expirar, após o atraso aqui definido, e quando a limpeza de sessão ocorrer, normalmente após cada %s/%s acessos feitos para além deste.
Nota: em alguns servidores que possuem mecanismos de limpeza de sessão (cron), as sessões expirarão após o perído predefinido session.gc_maxlifetime, independentemente do valor aqui introduzido. +TriggersAvailable=Acionadores disponíveis +TriggersDesc=Os acionadores são ficheiros que irão modificar o comportamento do fluxo de trabalho do Dolibarr, assim que estes forem copiados para i diretório htdocs/core/triggers. Estes realizam novas ações, ativadas sobre eventos do Dolibarr (criação de novos terceiros, validação de faturas, etc.). +TriggerDisabledByName=Os acionadores neste ficheiro estão desativados pelo sufixo -NORUN presente no nome. +TriggerDisabledAsModuleDisabled=Os acionadores neste ficheiro estão desativados porque o módulo %s está desativado. +TriggerAlwaysActive=Os acionadores neste ficheiro estão sempre ativos, independentemente de quais são os módulos ativados. +TriggerActiveAsModuleActive=Os acionadores deste ficheiro estão ativos, isto porque o módulo %s está ativado. +GeneratedPasswordDesc=Indique aqui a norma quer definir para gerar palavras-passe automáticas. +DictionaryDesc=Insira todos os dados de referência. Você pode adicionar os seus valores aos valores predefinidos. +ConstDesc=Esta página permite que modifique todos os outros parâmetros não disponíveis nas páginas anteriores. Estes são na sua maioria parâmetros reservados para programadores ou solução avançada de problemas. Para uma lista de opções consulte aqui. +MiscellaneousDesc=Aqui são definidos todos os outros parâmetros relacionados com segurança. +LimitsSetup=Configuração de limites/precisão +LimitsDesc=Pode definir aqui os limites, precisão e otimizações utilizados pelo Dolibarr +MAIN_MAX_DECIMALS_UNIT=Número de casa decimais máximo para os preços unitários +MAIN_MAX_DECIMALS_TOT=Número de casa decimais máximo para os preços totais +MAIN_MAX_DECIMALS_SHOWN=Número de casa decimais máximo para os valores mostrados na janela (Colocar ... depois do número de casas decimais máximo quando o número for truncado) +MAIN_ROUNDING_RULE_TOT=Passo do intervalo de arredondamento (para os países onde o arredondamento é feito em algo mais do que a base 10. Por exemplo, colocar 0,05 se o arredondamento é feito por incrementos de 0,05) UnitPriceOfProduct=Preço unitário líquido de um produto -TotalPriceAfterRounding=Preço total (líquido / / IVA incl fiscal) após arredondamento -ParameterActiveForNextInputOnly=Parâmetro efectivo somente a partir das próximas sessões -NoEventOrNoAuditSetup=Não registraram eventos de segurança. Pode ser normal se a auditoría não foi habilitada na página "configuração->segurança->auditoría". -NoEventFoundWithCriteria=Não se encontraram eventos de segurança para os criterios de pesquisa. -SeeLocalSendMailSetup=Ver a configuração local de sendmail -BackupDesc=Para realizar uma Cópia de segurança completa do ERP, deve: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. -BackupDescX=O ficheiro gerado deverá ser guardado num lugar seguro. -BackupDescY=O arquivo gerado deve ser armazenado em local seguro. -BackupPHPWarning=Backup can't be guaranted with this method. Prefer previous one -RestoreDesc=Para restaurar uma Cópia de segurança do ERP/CRM, você deve: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. +TotalPriceAfterRounding=Preço total (líquido/IVA/inclui impostos) após arredondamento +ParameterActiveForNextInputOnly=Parâmetro efetivo somente para as próximas sessões +NoEventOrNoAuditSetup=Ainda não foram registados eventos de segurança. Isto é comum no caso de "Auditoria" não estar ativa na página "Configuração->Segurança->Auditoria". +NoEventFoundWithCriteria=Não foram encontrados eventos de segurança para os critérios de pesquisa introduzidos. +SeeLocalSendMailSetup=Verifique a configuração local de sendmail +BackupDesc=Para realizar uma cópia de segurança completa do Dolibarr, deve: +BackupDesc2=Guarde o conteúdo do diretório de documentos (%s) que contém todos ficheiros carregados e gerados (de forma a que inclua todos os ficheiros dump gerados no passo 1). +BackupDesc3=Guarde o conteúdo da sua base de dados (%s) num ficheiro dump. Para isso, pode usar o assistente seguinte. +BackupDescX=O diretório arquivado deverá ser guardado num local seguro. +BackupDescY=A cópia de segurança gerada deve ser armazenada num local seguro. +BackupPHPWarning=O backup não pode ser garantido com este método. Utilize o anterior +RestoreDesc=Para restaurar uma cópia de segurança do Dolibarr, você deve: +RestoreDesc2=Restaurar o ficheiro de arquivo (ficheiro .zip por exemplo) do diretório de documentos para extrair árvore de ficheiros no diretório de documentos de uma nova instalação Dolibarr ou no atual diretório de documentos (%s). +RestoreDesc3=Restaurar os dados, a partir de um ficheiro dump backup, na base de dados da nova instalação Dolibarr ou na base de dados da instalação atual (%s). Aviso: uma vez que a restauração esteja concluída, você deve usar um login/palavra passe, que existia quando o backup foi feito, para iniciar a sessão novamente. Para restaurar um backup da base de dados para a instalação atual, pode seguir este assistente. RestoreMySQL=Importação MySQL -ForcedToByAModule= Esta regra é forçada a %s activada por um módulo -PreviousDumpFiles=Cópia de segurança disponível, base de dados de arquivos +ForcedToByAModule= Esta regra é forçada a a %s, por um módulo ativo +PreviousDumpFiles=Ficheiros de cópias de segurança de base de dados disponíveis WeekStartOnDay=Primeiro dia da semana -RunningUpdateProcessMayBeRequired=Para Executar o processo de atualização é necessário (versão Programas %s %s diferente da versão da base de dados) -YouMustRunCommandFromCommandLineAfterLoginToUser=Você deve executar este comando de linha de comando após o login de um escudo com %s usuário. -YourPHPDoesNotHaveSSLSupport=Funções SSL não está disponível no seu PHP -DownloadMoreSkins=Mais skins para download -SimpleNumRefModelDesc=Retorna o número de referência, com o formato nnnn %syymm, onde aa é o ano, mm é o mês e nnnn é uma sequência. +RunningUpdateProcessMayBeRequired=Parece ser necessário executar o processo de atualização (a versão do programa %s difere da versão da base de dados %s) +YouMustRunCommandFromCommandLineAfterLoginToUser=Deve executar este comando a partir de uma linha de comandos depois de iniciar a sessão, na linha de comandos, com o utilizador %s ou deve adicionar a opção -W no fim da linha de comando para indicar a palavra-passe %s. +YourPHPDoesNotHaveSSLSupport=Funções SSL não estão disponíveis no seu PHP +DownloadMoreSkins=Mais temas para descarregar +SimpleNumRefModelDesc=Retorna o número de referência, com o formato %syymm-nnnn, onde "yy" é o ano, "mm" é o mês e "nnnn" é uma sequência. ShowProfIdInAddress=Mostrar ID professionnal com endereços em documentos -ShowVATIntaInAddress=Hide VAT Intra num with addresses on documents -TranslationUncomplete=Tradução incompleta +ShowVATIntaInAddress=Ocultar o número IVA Intra-Comunitário com endereços em documentos +TranslationUncomplete=Tradução parcial MAIN_DISABLE_METEO=Desativar vista de meteorologia -TestLoginToAPI=Teste o login para API -ProxyDesc=Algumas características do Dolibarr precisa ter um acesso à Internet para funcionar. Definir aqui parâmetros para isso. Se o servidor Dolibarr está atrás de um servidor Proxy, esses parâmetros diz Dolibarr como acessar a Internet através dele. +TestLoginToAPI=Teste o login à API +ProxyDesc=Algumas características do Dolibarr precisam de acesso à Internet para funcionar. Defina aqui os parâmetros necessários para tal. Se o servidor Dolibarr estiver atrás de um servidor Proxy, esses parâmetros informam o Dolibarr como aceder à internet através dele. ExternalAccess=Acesso externo -MAIN_PROXY_USE=Usar um servidor proxy (acesso direto à internet de outra forma) -MAIN_PROXY_HOST=Nome / Endereço de servidor proxy +MAIN_PROXY_USE=Utilizar um servidor proxy (se não, o acesso à internet é direto) +MAIN_PROXY_HOST=Nome/Endereço de servidor proxy MAIN_PROXY_PORT=Porta do servidor proxy -MAIN_PROXY_USER=Entrar para usar o servidor proxy +MAIN_PROXY_USER=Inicie a sessão para usar o servidor proxy MAIN_PROXY_PASS=Palavra-passe para utilizar o servidor proxy -DefineHereComplementaryAttributes=Defina aqui todos os atributos complementares, que não estejam disponiveis por padrão, e que deseja ser suporte para %s. +DefineHereComplementaryAttributes=Defina aqui todos os atributos complementares, que não estejam disponíveis por defeito, e que deseja que seja suportado por %s. ExtraFields=Atributos complementares ExtraFieldsLines=Atributos complementares (linhas) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) +ExtraFieldsSupplierOrdersLines=Atributos complementares (linhas da encomenda) +ExtraFieldsSupplierInvoicesLines=Atributos complementares (linhas da fatura) ExtraFieldsThirdParties=Atributos complementares (terceiro) -ExtraFieldsContacts=Atributos complementares (contato/morada) +ExtraFieldsContacts=Atributos complementares (contacto/morada) ExtraFieldsMember=Atributos complementares (membro) ExtraFieldsMemberType=Atributos complementares (tipo de membro) ExtraFieldsCustomerInvoices=Atributos complementares (faturas) @@ -1063,308 +1091,318 @@ ExtraFieldsSupplierInvoices=Atributos complementares (faturas) ExtraFieldsProject=Atributos complementares (projetos) ExtraFieldsProjectTask=Atributos complementares (tarefas) ExtraFieldHasWrongValue=O atributo %s tem um valor errado. -AlphaNumOnlyLowerCharsAndNoSpace=only alphanumericals and lower case characters without space -SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar e-mails, a configuração sendmail deve conter a opção ba-(mail.force_extra_parameters parâmetro em seu arquivo php.ini). Se alguns destinatários não receberem e-mails, tente editar este parâmetro PHP com mail.force_extra_parameters +AlphaNumOnlyLowerCharsAndNoSpace=somente caracteres alfanuméricos e minúsculas, sem espaço +SendmailOptionNotComplete=Aviso, em alguns sistemas Linux, para enviar emails, a configuração sendmail deve conter a opção -ba (o parâmetro mail.force_extra_parameters no seu ficheiro php.ini). Se alguns destinatários não receberem e-mails, tente editar este parâmetro PHP com mail.force_extra_parameters = -ba PathToDocuments=Caminhos de acesso a documentos -PathDirectory=Catálogo -SendmailOptionMayHurtBuggedMTA=Feature to send mails using method "PHP mail direct" will generate a mail message that might be not correctly parsed by some receiving mail servers. Result is that some mails can't be read by people hosted by those bugged platforms. It's case for some Internet providers (Ex: Orange in France). This is not a problem into Dolibarr nor into PHP but onto receiving mail server. You can however add option MAIN_FIX_FOR_BUGGED_MTA to 1 into setup - other to modify Dolibarr to avoid this. However, you may experience problem with other servers that respect strictly the SMTP standard. The other solution (recommended) is to use the method "SMTP socket library" that has no disadvantages. +PathDirectory=Diretório +SendmailOptionMayHurtBuggedMTA=Funcionalidade para enviar e-mails usando o método "PHP mail direct" irá gerar uma mensagem de correio que poderá não ser lida corretamente por alguns servidores de e-mail. O resultado será que alguns e-mails não poderão ser lidos por utilizadores que usem essas plataformas com problemas. Isto é o caso de alguns fornecedores de Internet (Ex: MEO em Portugal). Este problema não está relacionado com o Dolibarr nem o PHP, mas sim com o servidor de correio que recebe os e-mails. No entanto, você pode adicionar a opção MAIN_FIX_FOR_BUGGED_MTA a 1 na configuração de forma contornar esta questão. No entanto, você pode ter problemas com outros servidores que respeitam estritamente o padrão SMTP. A outra solução (recomendada) é usar o método "SMTP socket library" que não traz desvantagens. TranslationSetup=Configuração da tradução TranslationKeySearch=Search a translation key or string TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). -TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" +TranslationDesc=Como definir o idioma exibido:
* Systemwide: menu Início -> Configuração -> Aspeto
* Por utilizador: Configuração do aspeto por utilizador aba do cartão do utilizador (clique no nome de utlizador, localizado no topo do ecrã). +TranslationOverwriteDesc=Você pode substituir as traduções na seguinte tabela. Escolha o seu idioma na caixa de seleção "%s", insira a chave tradução rm "%s" e sua nova tradução em "%s" TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationString=Translation string CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Aplicação/módulos ativados: %s / %s YouMustEnableOneModule=Deve ativar, pelo menos, 1 módulo -ClassNotFoundIntoPathWarning=Classe %s não encontrada no caminho PHP +ClassNotFoundIntoPathWarning=A classe %s não foi encontrada no caminho PHP YesInSummer=Sim no verão -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Nota: apenas os seguintes módulos é que estão disponíveis a utilizadores externos (independentemente das permissões definidas para tais utilizadores) e somente se as permissões foram concedidas: SuhosinSessionEncrypt=Sessão de armazenamento encriptada por Suhosin ConditionIsCurrently=A condição está atualmente %s -YouUseBestDriver=You use driver %s that is best driver available currently. -YouDoNotUseBestDriver=You use drive %s but driver %s is recommended. -NbOfProductIsLowerThanNoPb=You have only %s products/services into database. This does not required any particular optimization. +YouUseBestDriver=Você está a utilizar a driver %s, sendo esta a melhor driver disponível atualmente. +YouDoNotUseBestDriver=Você está a utilizar a driver %s, mas a driver %s é recomendada. +NbOfProductIsLowerThanNoPb=Você apenas possui %s produtos/serviços na base de dados. Assim sendo não é necessário qualquer tipo de otimização. SearchOptim=Optimização da pesquisa -YouHaveXProductUseSearchOptim=You have %s product into database. You should add the constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 into Home-Setup-Other, you limit the search to the beginning of strings making possible for database to use index and you should get an immediate response. -BrowserIsOK=You are using the web browser %s. This browser is ok for security and performance. -BrowserIsKO=You are using the web browser %s. This browser is known to be a bad choice for security, performance and reliability. We recommand you to use Firefox, Chrome, Opera or Safari. +YouHaveXProductUseSearchOptim=Você possui %s produtos na base de dados. Deve adicionar a constante PRODUCT_DONOTSEARCH_ANYWHERE a 1 em Início->Configuração->Outros, assim limita a pesquisa ao início de sequências de caracteres tornando possível para a base de dados usar índices e você deve obter uma resposta imediata. +BrowserIsOK=Você está utilizar o navegador %s. Este navegador não tem quaisquer problemas relacionados com segurança e desempenho. +BrowserIsKO=Você está utilizar o navegador %s. Este navegador é conhecido por ter problemas a nível de segurança e desempenho. Recomendamos que utilize o Firefox, Chrome, Opera ou o Safari. XDebugInstalled=XDebug está carregado. XCacheInstalled=XCache está carregada. -AddRefInList=Display customer/supplier ref into list (select list or combobox) and most of hyperlink. Third parties will appears with name "CC12345 - SC45678 - The big company coorp", instead of "The big company coorp". -AskForPreferredShippingMethod=Ask for preferred Sending Method for Third Parties. +AddRefInList=Exibir a referência do cliente/fornecedor na lista (lista de seleção) e na maioria das hiperligações. Os terceiros aparecerão com o nome "CC12345 - SC45678 - A grande empresa", em vez de apenas "A grande empresa". +AskForPreferredShippingMethod=Perguntar pelo Método de Envio preferido para Terceiros FieldEdition=Edição do campo %s -FillThisOnlyIfRequired=Example: +2 (fill only if timezone offset problems are experienced) +FillThisOnlyIfRequired=Exemplo: +2 (para preencher apenas se existir problemas de desvios de fuso horário) GetBarCode=Obter código de barras ##### Module password generation -PasswordGenerationStandard=Devolve uma palavra-passe generada por o algoritmo interno ERP/CRM: 8 caracteres, números e caracteres em minúsculas misturados. -PasswordGenerationNone=Não sugerir qualquer palavra-passe gerada. A palavra-passe deve ser digitada manualmente. -PasswordGenerationPerso=Return a password according to your personally defined configuration. -SetupPerso=According to your configuration -PasswordPatternDesc=Password pattern description +PasswordGenerationStandard=Devolve uma palavra-passe gerada pelo algoritmo interno Dolibarr: 8 caracteres no mínimo, contendo números e letras minúsculas. +PasswordGenerationNone=Não sugerir qualquer palavra-passe gerada. A palavra-passe deve ser introduzida manualmente. +PasswordGenerationPerso=Retornar uma palavra-passe que esteja de acordo com sua configuração definida. +SetupPerso=De acordo com a sua configuração +PasswordPatternDesc=Descrição do padrão da palavra-passe ##### Users setup ##### RuleForGeneratedPasswords=Regra para gerar as palavras-passe sugeridas ou validar as palavras-passe -DisableForgetPasswordLinkOnLogonPage=Não mostrar a hiperligação "Esquecer palavra-passe" na página de iniciar a sessão -UsersSetup=Utilizadores de configuração do módulo -UserMailRequired=Email exigidos para criar um novo utilizador +DisableForgetPasswordLinkOnLogonPage=Não mostrar a hiperligação "Esqueceu-se da palavra-passe?" na página de inicio de sessão +UsersSetup=Configuração do módulo "Utilizadores" +UserMailRequired=O email é obrigatório para poder criar um novo utilizador ##### HRM setup ##### -HRMSetup=HRM module setup +HRMSetup=Configuração do módulo "Gestão de Recursos Humanos" ##### Company setup ##### -CompanySetup=Configuração do módulo empresas -CompanyCodeChecker=Módulo de geração e control dos códigos de Terceiros (Clientes/Fornecedores) -AccountCodeManager=Módulo de geração dos códigos contabilisticos (Clientes/Fornecedores) -NotificationsDesc=EMails notifications feature allows you to silently send automatic mail, for some Dolibarr events. Targets of notifications can be defined: +CompanySetup=Configuração do módulo "Empresas" +CompanyCodeChecker=Módulo para criação e verificação dos códigos de terceiros (clientes ou fornecedores) +AccountCodeManager=Módulo para criação dos códigos contabilísticos (clientes ou fornecedores) +NotificationsDesc=O funcionalidade "Notificações por email" permite que você envie mensagens automáticas para alguns eventos Dolibarr. Os destinatários das notificações podem ser definidos: NotificationsDescUser=* per users, one user at time. NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. NotificationsDescGlobal=* or by setting global target emails in module setup page. ModelModules=Documentos modelos DocumentModelOdt=Crie documentos a partir dos modelos OpenDocuments (ficheiros .ODT ou .ODS para o KOffice, OpenOffice, TextEdit,...) -WatermarkOnDraft=Marca d' -JSOnPaimentBill=Activate feature to autofill payment lines on payment form -CompanyIdProfChecker=Identidade profissional única +WatermarkOnDraft=Marca d'água no documento rascunho +JSOnPaimentBill=Ative a funcionalidade para preencher automaticamente as linhas de pagamento no formulário de pagamento +CompanyIdProfChecker=Regras sobre IDs profissionais MustBeUnique=Deve ser único? MustBeMandatory=Obrigatório para criar terceiros? MustBeInvoiceMandatory=Obrigatório para validar faturas? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### -WebCalUrlForVCalExport=Um link de exportação do calendario em formato %s estará disponivel na url: %s +WebCalUrlForVCalExport=Uma hiperligação de exportação para o formato %s está disponivel na seguinte hiperligação: %s ##### Invoices ##### -BillsSetup=Configuração do módulo Facturas -BillsNumberingModule=Módulo de numeração de facturas e entregas -BillsPDFModules=Modelo de documentos de facturas -CreditNote=Entrega -CreditNotes=Entregas -ForceInvoiceDate=Forçar a data de factura e a data de validação -SuggestedPaymentModesIfNotDefinedInInvoice=Formas de pagamento sugeridas para facturas, estão definidas explicitamente -SuggestPaymentByRIBOnAccount=Sugerir o pagamento por transfência para a conta +BillsSetup=Configuração do módulo "Faturas" +BillsNumberingModule=Módulo de numeração de faturas e entregas +BillsPDFModules=Modelo de documentos de faturas +PaymentsPDFModules=Payment documents models +CreditNote=Nota de crédito +CreditNotes=Notas de crédito +ForceInvoiceDate=Forçar a data de factura para a data de validação +SuggestedPaymentModesIfNotDefinedInInvoice=Formas de pagamento sugeridas para faturas por defeito, se não estiverem definidas explicitamente +SuggestPaymentByRIBOnAccount=Sugerir o pagamento por levantamento na conta SuggestPaymentByChequeToAddress=Sugerir o pagamento por cheque a -FreeLegalTextOnInvoices=Texto livre em facturas -WatermarkOnDraftInvoices=Marca d'água nas faturas provisórias (nenhuma se em branco) -PaymentsNumberingModule=Payments numbering model -SuppliersPayment=Pagamentos a Fornecedores +FreeLegalTextOnInvoices=Texto livre em faturas +WatermarkOnDraftInvoices=Marca d'água nas faturas rascunho (nenhuma se em branco) +PaymentsNumberingModule=Modelo de numeração de pagamentos +SuppliersPayment=Pagamentos a fornecedores SupplierPaymentSetup=Suppliers payments setup ##### Proposals ##### -PropalSetup=Configuração do módulo Orçamentos -ProposalsNumberingModules=Módulos de numeração de Orçamentos -ProposalsPDFModules=Modelos de documentos de Orçamentos -FreeLegalTextOnProposal=Texto livre em Orçamentos -WatermarkOnDraftProposal=Watermark on draft commercial proposals (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Ask for bank account destination of proposal +PropalSetup=Configuração do módulo "Orçamentos para clientes" +ProposalsNumberingModules=Modelos de numeração de orçamentos para clientes +ProposalsPDFModules=Modelos de documentos de orçamentos para clientes +FreeLegalTextOnProposal=Texto livre em orçamentos para clientes +WatermarkOnDraftProposal=Marca d'água em rascunhos de orçamentos para clientes (nenhuma não preenchido) +BANK_ASK_PAYMENT_BANK_DURING_PROPOSAL=Pedir conta bancária destinatária do orçamento ##### SupplierProposal ##### -SupplierProposalSetup=Price requests suppliers module setup -SupplierProposalNumberingModules=Price requests suppliers numbering models -SupplierProposalPDFModules=Price requests suppliers documents models -FreeLegalTextOnSupplierProposal=Free text on price requests suppliers -WatermarkOnDraftSupplierProposal=Watermark on draft price requests suppliers (none if empty) -BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Ask for bank account destination of price request -WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Ask for Warehouse Source for order +SupplierProposalSetup=Configuração do módulo "Solicitações de preço a fornecedores" +SupplierProposalNumberingModules=Modelos de numeração para solicitações de preços a fornecedores +SupplierProposalPDFModules=Modelos de documentos para solicitações de preços a fornecedores +FreeLegalTextOnSupplierProposal=Texto livre em solicitações de preços a fornecedores +WatermarkOnDraftSupplierProposal=Marca d'água nos documentos rascunho de solicitações de preços a fornecedores (nenhuma se vazio) +BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_PROPOSAL=Pedir conta bancária destinatária da solicitação de preço +WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER=Pedir qual o armazém origem para a encomenda ##### Suppliers Orders ##### BANK_ASK_PAYMENT_BANK_DURING_SUPPLIER_ORDER=Ask for bank account destination of supplier order ##### Orders ##### -OrdersSetup=Configuração do módulo pedidos -OrdersNumberingModules=Módulos de numeração dos pedidos -OrdersModelModule=Modelos de documentos dos pedidos -FreeLegalTextOnOrders=Texto livre em pedidos -WatermarkOnDraftOrders=Marca d'água nas encomendas provisórias (nenhuma se em branco) -ShippableOrderIconInList=Add an icon in Orders list which indicate if order is shippable -BANK_ASK_PAYMENT_BANK_DURING_ORDER=Ask for bank account destination of order +OrdersSetup=Configuração do módulo "Encomendas" +OrdersNumberingModules=Modelos de numeração de encomendas +OrdersModelModule=Modelos de documentos de encomendas +FreeLegalTextOnOrders=Texto livre em encomendas +WatermarkOnDraftOrders=Marca d'água nas encomendas rascunho (nenhuma se em branco) +ShippableOrderIconInList=Adicionar um ícone na lista de Encomendas que indicam se o pedido pode ser expedido +BANK_ASK_PAYMENT_BANK_DURING_ORDER=Pedir conta bancária destinatária da encomenda ##### Interventions ##### -InterventionsSetup=Configuração do módulo Intervenções -FreeLegalTextOnInterventions=Texto livre em documentos de intervenção -FicheinterNumberingModules=Módulos de numeração das fichas de intervenção -TemplatePDFInterventions=Modelo de documentos das fichas de intervenção -WatermarkOnDraftInterventionCards=Watermark on intervention card documents (none if empty) +InterventionsSetup=Configuração do módulo "Intervenções" +FreeLegalTextOnInterventions=Texto livre em documentos de intervenção +FicheinterNumberingModules=Modelos de numeração de intervenções +TemplatePDFInterventions=Modelo de documentos de intervenções +WatermarkOnDraftInterventionCards=Marca d'água em documentos de intervenções (nenhum se vazio) ##### Contracts ##### -ContractsSetup=Configurar módulo de Contractos/Subscricões -ContractsNumberingModules=Contratos de numeração módulos -TemplatePDFContracts=Contracts documents models -FreeLegalTextOnContracts=Free text on contracts -WatermarkOnDraftContractCards=Watermark on draft contracts (none if empty) +ContractsSetup=Configuração do módulo "Contratos/Subscrições" +ContractsNumberingModules=Módulos de númeração de contratos +TemplatePDFContracts=Modelos de documentos de contratos +FreeLegalTextOnContracts=Texto livre em contratos +WatermarkOnDraftContractCards=Marca d'água nos contratos rascunho (nenhuma se estiver vazio) ##### Members ##### -MembersSetup=Configuração do módulo de associações +MembersSetup=Configuração do módulo "Membros" MemberMainOptions=Opções principais -AdherentLoginRequired= Gerenciar um login para cada membro -AdherentMailRequired=E-Mail obrigatório para criar um novo membro -MemberSendInformationByMailByDefault=Caixa de verificação para enviar o correio de confirmação aos Membros é por defeito "sim" +AdherentLoginRequired= Gerir um login para cada membro +AdherentMailRequired=O email é obrigatório para criar um novo membro +MemberSendInformationByMailByDefault=Selecione para enviar email de confirmação aos membros (validação ou nova subscrição), está ativada por defeito ##### LDAP setup ##### -LDAPSetup=Configuração do módulo LDAP -LDAPGlobalParameters=parâmetros globais +LDAPSetup=Configuração do módulo "LDAP" +LDAPGlobalParameters=Parâmetros globais LDAPUsersSynchro=Utilizadores LDAPGroupsSynchro=Grupos LDAPContactsSynchro=Contactos LDAPMembersSynchro=Membros LDAPSynchronization=Sincronização LDAP -LDAPFunctionsNotAvailableOnPHP=as funções LDAP não estão disponiveis no seu PHP -LDAPToDolibarr=LDAP -> ERP/CRM -DolibarrToLDAP=ERP/CRM -> LDAP +LDAPFunctionsNotAvailableOnPHP=As funções LDAP não estão disponiveis no seu PHP +LDAPToDolibarr=LDAP -> Dolibarr +DolibarrToLDAP=Dolibarr -> LDAP LDAPNamingAttribute=Chave em LDAP -LDAPSynchronizeUsers=Sincronização dos Utilizadores ERP/CRM com LDAP -LDAPSynchronizeGroups=Sincronização dos grupos de Utilizadores com LDAP -LDAPSynchronizeContacts=Sincronização dos contactos ERP/CRM com LDAP -LDAPSynchronizeMembers=Sincronização dos Membros do módulo associações de ERP/CRM com LDAP +LDAPSynchronizeUsers=Sincronização dos utilizadores com LDAP +LDAPSynchronizeGroups=Sincronização dos grupos de utilizadores com LDAP +LDAPSynchronizeContacts=Sincronização dos contactos com LDAP +LDAPSynchronizeMembers=Sincronização dos membros da fundação com LDAP LDAPPrimaryServer=Servidor primario LDAPSecondaryServer=Servidor secundario LDAPServerPort=Porta do servidor -LDAPServerPortExample=Porta por defeito : 389 +LDAPServerPortExample=Porta predefinida : 389 LDAPServerProtocolVersion=Versão de protocolo -LDAPServerUseTLS=Utilizador TLS -LDAPServerUseTLSExample=O seu servidor utiliza TLS -LDAPServerDn=DN do servidor +LDAPServerUseTLS=Utilizar TLS +LDAPServerUseTLSExample=O seu servidor LDAP utiliza TLS +LDAPServerDn=Servidor DN LDAPAdminDn=DN do administrador -LDAPAdminDnExample=Complete DN (ex: cn=admin,dc=example,dc=com or cn=Administrator,cn=Users,dc=example,dc=com for active directory) +LDAPAdminDnExample=DN completo (ex: cn=admin,dc=example,dc=com ou cn=Administrator,cn=Users,dc=example,dc=com para o diretório ativo) LDAPPassword=Palavra-passe do Administrador -LDAPUserDn=DN dos Utilizadores -LDAPUserDnExample=DN completo (ej: ou +LDAPUserDn=DN dos utilizadores +LDAPUserDnExample=DN completo (ex: ou=users,dc=example,dc=com) LDAPGroupDn=DN dos grupos -LDAPGroupDnExample=DN completo (ej: ou -LDAPServerExample=Direcção do servidor (ej: localhost, 192.168.0.2, ldaps://ldap.example.com/) -LDAPServerDnExample=DN completo (ej: dc -LDAPDnSynchroActive=Sincronização de Utilizadores e Grupos -LDAPDnSynchroActiveExample=Sincronização LDAP vs ERP/CRM ou ERP/CRM vs LDAP +LDAPGroupDnExample=DN completo (ex: ou=groups,dc=example,dc=com) +LDAPServerExample=Endereço do servidor (ex: localhost, 192.168.0.2, ldaps://ldap.example.com/) +LDAPServerDnExample=DN completo (ex: dc=example,dc=com) +LDAPDnSynchroActive=Sincronização de utilizadores e grupos +LDAPDnSynchroActiveExample=Sincronização LDAP para Dolibarr ou Dolibarr para LDAP LDAPDnContactActive=Sincronização de contactos -LDAPDnContactActiveExample=Sincronização activada/desactivada -LDAPDnMemberActive=Sincronização dos Membros -LDAPDnMemberActiveExample=Sincronização activada/desactivada -LDAPContactDn=DN dos contactos ERP/CRM -LDAPContactDnExample=DN completo (ej: ou -LDAPMemberDn=DN dos Membros -LDAPMemberDnExample=DN completo (ex: ou +LDAPDnContactActiveExample=Sincronização ativada/desativada +LDAPDnMemberActive=Sincronização de membros +LDAPDnMemberActiveExample=Sincronização ativada/desativada +LDAPContactDn=DN dos contactos Dolibarr +LDAPContactDnExample=DN completo (ex: ou=contacts,dc=example,dc=com) +LDAPMemberDn=DN dos membros Dolibarr +LDAPMemberDnExample=DN completo (ex: ou=members,dc=example,dc=com) LDAPMemberObjectClassList=Lista de objectClass -LDAPMemberObjectClassListExample=Lista de ObjectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active directory) +LDAPMemberObjectClassListExample=Lista de objectClass que definem os atributos de registo (ex: top,inetOrgPerson or top,user for active directory) LDAPUserObjectClassList=Lista de objectClass -LDAPUserObjectClassListExample=Lista de ObjectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active directory) +LDAPUserObjectClassListExample=Lista de objectClass que definem os atributos de registo (ex: top,inetOrgPerson or top,user for active directory) LDAPGroupObjectClassList=Lista de objectClass -LDAPGroupObjectClassListExample=Lista de ObjectClass que definem os atributos de um registo (ej: top,groupOfUniqueNames) +LDAPGroupObjectClassListExample=Lista de objectClass que definem os atributos de registo (ex: top,groupOfUniqueNames) LDAPContactObjectClassList=Lista de objectClass -LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos de um registo (ej: top,inetOrgPerson o top,user for active directory) -LDAPTestConnect=Teste a ligação LDAP +LDAPContactObjectClassListExample=Lista de objectClass que definem os atributos de registo (ex: top,inetOrgPerson or top,user for active directory) +LDAPTestConnect=Testar a ligação LDAP LDAPTestSynchroContact=Teste a sincronização de contactos -LDAPTestSynchroUser=Teste a sincronização de Utilizadores -LDAPTestSynchroGroup=Teste a sincronização de grupos -LDAPTestSynchroMember=Teste a sincronização de Membros +LDAPTestSynchroUser=Testar a sincronização de utilizadores +LDAPTestSynchroGroup=Testar a sincronização de grupos +LDAPTestSynchroMember=Testar a sincronização de membros LDAPTestSearch= Testar pesquisa LDAP -LDAPSynchroOK=Teste de sincronização realizado correctamente -LDAPSynchroKO=Teste de sincronização errado -LDAPSynchroKOMayBePermissions=Erro do teste de sincronização. verifique que a ligação ao servidor está correcta e que permite as actualizações LDAP -LDAPTCPConnectOK=Ligação TCP ao servidor LDAP efectuada (Servidor -LDAPTCPConnectKO=Falha de ligação TCP ao servidor LDAP (Servidor -LDAPBindOK=Connect/Authentificate to LDAP server successful (Server=%s, Port=%s, Admin=%s, Password=%s) -LDAPBindKO=Fallo de ligação/autenticação ao servidor LDAP (Servidor -LDAPSetupForVersion3=Servidor LDAP configurado em Versão 3 -LDAPSetupForVersion2=Servidor LDAP configurado em Versão 2 -LDAPDolibarrMapping=Mapping ERP/CRM -LDAPLdapMapping=Mapping LDAP -LDAPFieldLoginUnix=Login (unix) -LDAPFieldLoginExample=Exemplo : uid +LDAPSynchroOK=Teste de sincronização realizado com sucesso +LDAPSynchroKO=O teste de sincronização falhou +LDAPSynchroKOMayBePermissions=O teste de sincronização falhou. Verifique se ligação ao servidor está correctamente configurada e que permite atualizações LDAP +LDAPTCPConnectOK=Ligação TCP ao servidor LDAP efectuada com sucesso (Servidor=%s, Porta=%s) +LDAPTCPConnectKO=Falha de ligação TCP ao servidor LDAP (Servidor=%s, Porta=%s) +LDAPBindOK=Conexão/Autenticação ao servidor LDAP efetuada com êxito (Servidor=%s, Porta=%s, Admin=%s, Palavra passe=%s) +LDAPBindKO=A ligação/autenticação ao servidor LDAP falhou (Servidor=%s, Porta=%s, Administrador=%s, Palavra-passe=%s) +LDAPSetupForVersion3=Servidor LDAP configurado para a versão 3 +LDAPSetupForVersion2=Servidor LDAP configurado para a versão 2 +LDAPDolibarrMapping=Mapeamento Dolibarr +LDAPLdapMapping=Mapeamento LDAP +LDAPFieldLoginUnix=Nome de utilizador (Unix) +LDAPFieldLoginExample=Exemplo: uid LDAPFilterConnection=Filtro de pesquisa -LDAPFilterConnectionExample=Exemplo : &(objectClass -LDAPFieldLoginSamba=Login (samba, activedirectory) -LDAPFieldLoginSambaExample=Exemplo : Nome da conta samba +LDAPFilterConnectionExample=Exemplo: &(objectClass=inetOrgPerson) +LDAPFieldLoginSamba=Nome de utilizador (samba, activedirectory) +LDAPFieldLoginSambaExample=Exemplo: sambaccountname LDAPFieldFullname=Nome completo -LDAPFieldFullnameExample=Exemplo : cn +LDAPFieldFullnameExample=Exemplo: cn LDAPFieldPasswordNotCrypted=Palavra-passe não encriptada LDAPFieldPasswordCrypted=Palavra-passe encriptada -LDAPFieldPasswordExample=Exemplo : userPassword -LDAPFieldCommonNameExample=Exemplo : cn +LDAPFieldPasswordExample=Exemplo: userPassword +LDAPFieldCommonNameExample=Exemplo: cn LDAPFieldName=Nome -LDAPFieldNameExample=Exemplo : sn -LDAPFieldFirstName=Nome -LDAPFieldFirstNameExample=Exemplo : dar nome -LDAPFieldMail=E-Mail -LDAPFieldMailExample=Exemplo : mail -LDAPFieldPhone=Telefone trabalho -LDAPFieldPhoneExample=Exemplo : Número do telefone -LDAPFieldHomePhone=Telefone pessoal -LDAPFieldHomePhoneExample=Exemplo : Telefone casa -LDAPFieldMobile=Telefone móvel -LDAPFieldMobileExample=Exemplo : Telemóvel -LDAPFieldFax=Fax -LDAPFieldFaxExample=Exemplo :numero de telefone de fax -LDAPFieldAddress=Direcção -LDAPFieldAddressExample=Exemplo : rua +LDAPFieldNameExample=Exemplo: sn +LDAPFieldFirstName=Primeiro nome +LDAPFieldFirstNameExample=Exemplo: givenName +LDAPFieldMail=Endereço de email +LDAPFieldMailExample=Exemplo: mail +LDAPFieldPhone=Número de telefone profissional +LDAPFieldPhoneExample=Exemplo: telephonenumber +LDAPFieldHomePhone=Número de telefone pessoal +LDAPFieldHomePhoneExample=Exemplo: homephone +LDAPFieldMobile=Número de telemóvel +LDAPFieldMobileExample=Exemplo: mobile +LDAPFieldFax=Número de fax +LDAPFieldFaxExample=Exemplo: facsimiletelephonenumber +LDAPFieldAddress=Rua +LDAPFieldAddressExample=Exemplo: street LDAPFieldZip=Código postal -LDAPFieldZipExample=Exemplo : Código postal -LDAPFieldTown=Concelho -LDAPFieldTownExample=Exemplo : l +LDAPFieldZipExample=Exemplo: postalcode +LDAPFieldTown=Cidade +LDAPFieldTownExample=Exemplo: l LDAPFieldCountry=País LDAPFieldDescription=Descrição -LDAPFieldDescriptionExample=Exemplo : descrição +LDAPFieldDescriptionExample=Exemplo: description LDAPFieldNotePublic=Nota Pública -LDAPFieldNotePublicExample=Example : publicnote -LDAPFieldGroupMembers= Os membros do grupo -LDAPFieldGroupMembersExample= Exemplo: Membro único +LDAPFieldNotePublicExample=Exemplo : publicnote +LDAPFieldGroupMembers= Membros do grupo +LDAPFieldGroupMembersExample= Exemplo: uniqueMember LDAPFieldBirthdate=Data de nascimento LDAPFieldCompany=Empresa LDAPFieldCompanyExample=Exemplo : o LDAPFieldSid=SID -LDAPFieldSidExample=Exemplo : objecto sid -LDAPFieldEndLastSubscription=Data finalização como membro -LDAPFieldTitle=Posição de trabalho -LDAPFieldTitleExample=Exemplo: título -LDAPSetupNotComplete=Configuração LDAP incompleta (a completar em Outras pestañas) +LDAPFieldSidExample=Exemplo : objectsid +LDAPFieldEndLastSubscription=Data de fim da subscrição +LDAPFieldTitle=Cargo +LDAPFieldTitleExample=Exemplo: title +LDAPSetupNotComplete=Configuração LDAP incompleta LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Não foi indicado o administrador ou palavra-passe. Os acessos LDAP serão anónimos e no modo só de leitura. -LDAPDescContact=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos contactos ERP/CRM. -LDAPDescUsers=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos Utilizadores ERP/CRM. -LDAPDescGroups=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos grupos Utilizadores ERP/CRM. -LDAPDescMembers=Esta página permite definir o Nome dos atributos da árvore LDAP para cada informação dos Membros do módulo associações ERP/CRM. -LDAPDescValues=Os valores de Exemplo adaptam-se a OpenLDAP com os esquemas cargados: core.schema, cosine.schema, inetorgperson.schema). Utilize os valores sugeridos de OpenLDAP, modifique o seu ficheiro de configuração LDAP slapd.conf para ter estes esquemas activos. +LDAPDescContact=Esta página permite definir o nome dos atributos da árvore LDAP para cada contacto registado no Dolibarr. +LDAPDescUsers=Esta página permite definir o nome dos atributos da árvore LDAP para cada utilizador registado no Dolibarr. +LDAPDescGroups=Esta página permite definir o nome dos atributos da árvore LDAP para cada grupo registado no Dolibarr. +LDAPDescMembers=Esta página permite definir o Nome dos atributos da árvore LDAP para cada membro registado no Dolibarr. +LDAPDescValues=Os valores de exemplo foram construídos para o OpenLDAP com os seguintes esquemas carregados: core.schema, cosine.schema, inetorgperson.schema. Se você utiliza esses valores e o OpenLDAP, então modifique o seu ficheiro de configuração LDAP, slapd.conf, para carregar todos esses esquemas. ForANonAnonymousAccess=Para um acesso autentificado -PerfDolibarr=Performance setup/optimizing report -YouMayFindPerfAdviceHere=You will find on this page some checks or advices related to performance. +PerfDolibarr=Relatório de configuração/otimização de desempenho +YouMayFindPerfAdviceHere=Nesta página encontrará algumas dicas relacionadas com desempenho. NotInstalled=Não instalado, o servidor não está mais lento por isso. -ApplicativeCache=Cache aplicativa -MemcachedNotAvailable=No applicative cache found. You can enhance performance by installing a cache server Memcached and a module able to use this cache server.
More information here http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note that a lot of web hosting provider does not provide such cache server. -MemcachedModuleAvailableButNotSetup=Module memcached for applicative cache found but setup of module is not complete. -MemcachedAvailableAndSetup=Module memcached dedicated to use memcached server is enabled. -OPCodeCache=Cache de OPCode -NoOPCodeCacheFound=No OPCode cache found. May be you use another OPCode cache than XCache or eAccelerator (good), may be you don't have OPCode cache (very bad). +ApplicativeCache=Cache de aplicativo +MemcachedNotAvailable=Não foi encontrada cache de aplicativo. Você pode melhorar o desempenho através da instalação de um servidor de cache Memcached e um módulo capaz de utilizar este servidor de cache.
Mais informações em http://wiki.dolibarr.org/index.php/Module_MemCached_EN.
Note que muitos fornecedores de hospedagem web não fornece tais servidores de cache. +MemcachedModuleAvailableButNotSetup=Encontrado módulo memcached para cache de aplicativo, mas a configuração deste não está completa. +MemcachedAvailableAndSetup=O módulo memcached dedicado está ativo. +OPCodeCache=Cache OPCode +NoOPCodeCacheFound=Nenhuma cache OPCode encontrada. Pode ser que você utilize outro tipo de cache OPCode sem ser XCache ou eAccelerator, pode ser que você não tenha cache OPCode. HTTPCacheStaticResources=Cache HTTP para recursos estáticos (css, img, javascript) FilesOfTypeCached=Ficheiros do tipo %s são guardados na cache do servidor HTTP FilesOfTypeNotCached=Ficheiros do tipo %s não são guardados na cache do servidor HTTP FilesOfTypeCompressed=Ficheiros do tipo %s são comprimidos pelo servidor HTTP FilesOfTypeNotCompressed=Ficheiros do tipo %s não são comprimidos pelo servidor HTTP CacheByServer=Cache pelo servidor +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache pelo navegador CompressionOfResources=Compressão das respostas HTTP -TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" +TestNotPossibleWithCurrentBrowsers=A detecção automática não é possível com os navegadores atuais +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### -ProductSetup=Configuração do módulo produtos -ServiceSetup=Serviços de instalação do módulo -ProductServiceSetup=Produtos e Serviços de instalação de módulos -NumberOfProductShowInSelect=Nº de produtos max em listas (0 -ViewProductDescInFormAbility=Visualização das descrições dos produtos nos formularios -MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal -ViewProductDescInThirdpartyLanguageAbility=Visualization of products descriptions in the third party language -UseSearchToSelectProductTooltip=Also if you have a large number of product (> 100 000), you can increase speed by setting constant PRODUCT_DONOTSEARCH_ANYWHERE to 1 in Setup->Other. Search will then be limited to start of string. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) -SetDefaultBarcodeTypeProducts=Tipo de código de barras utilizado por defeito para os produtos -SetDefaultBarcodeTypeThirdParties=Tipo de código de barras utilizado por defeito para os Terceiros -UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition -ProductCodeChecker= Module for product code generation and checking (product or service) -ProductOtherConf= Configuração de Produtos/Serviços -IsNotADir=is not a directory! +ProductSetup=Configuração do módulo "Produtos" +ServiceSetup=Configuração do módulo "Serviços" +ProductServiceSetup=Configuração do módulo "Produtos e Serviços" +NumberOfProductShowInSelect=Nº máximo de produtos apresentados em listas (0=sem limite) +ViewProductDescInFormAbility=Visualização das descrições dos produtos nos formulários (de outra forma serão apresentados em popups) +MergePropalProductCard=Ative na aba "Ficheiros anexados" do cartão de produto/serviço a opção para unir o documento PDF do produto/serviço ao documento PDF do orçamento, isto se o produto/serviço se encontrar no orçamento +ViewProductDescInThirdpartyLanguageAbility=Visualização das descrições de produtos na língua do terceiro +UseSearchToSelectProductTooltip=Se você tiver grande número de produtos (> 100 000), você pode aumentar a velocidade, definindo a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 em Configuração -> Outros. A pesquisa será então limitada ao início da sequência de caracteres. +UseSearchToSelectProduct=Aguardar até que seja preenchido parte do campo antes de carregar o conteúdo da lista de produtos (isto pode aumentar o desempenho se você tiver um grande número de produtos, mas é menos conveniente) +SetDefaultBarcodeTypeProducts=Tipo de código de barras predefinido para produtos +SetDefaultBarcodeTypeThirdParties=Tipo de código de barras predefinido para terceiros +UseUnits=Defina uma unidade de medida para o campo "Quantidade" durante a edição de uma encomenda, orçamento ou fatura +ProductCodeChecker= Modelo para a produção e verificação de códigos de produto (produto ou serviço) +ProductOtherConf= Configuração de produto/serviço +IsNotADir=não é um diretório! ##### Syslog ##### -SyslogSetup=configuração do módulo Syslog -SyslogOutput=Sair do log +SyslogSetup=Configuração do módulo "Syslog" +SyslogOutput=Regista saídas SyslogFacility=Facilidade -SyslogLevel=Nivel -SyslogFilename=Nome e caminho do Ficheiro -YouCanUseDOL_DATA_ROOT=Pode utilizar DOL_DATA_ROOT/dolibarr.log para um log na pasta 'documentos' de Dolibarr. -ErrorUnknownSyslogConstant=A constante %s não é uma constante syslog conhecida -OnlyWindowsLOG_USER=O Windows suporta apenas LOG_USER +SyslogLevel=Nível +SyslogFilename=Nome e caminho do ficheiro +YouCanUseDOL_DATA_ROOT=Pode utilizar DOL_DATA_ROOT/dolibarr.log para um ficheiro log no diretório de "documentos" do Dolibarr. +ErrorUnknownSyslogConstant=A constante %s não é uma constante Syslog conhecida +OnlyWindowsLOG_USER=O Windows apenas suporta LOG_USER ##### Donations ##### -DonationsSetup=Configuração do módulo Bolsas -DonationsReceiptModel=Modelo de recibo de doação +DonationsSetup=Configuração do módulo "Donativos" +DonationsReceiptModel=Modelo de recibo de donativo ##### Barcode ##### -BarcodeSetup=Configuração dos códigos de barras -PaperFormatModule=Módulos de formatos de impressão -BarcodeEncodeModule=Módulos de codificação dos códigos de barras -CodeBarGenerator=Gerador do código -ChooseABarCode=Nenhum gerador seleccionado -FormatNotSupportedByGenerator=Formato não gerado por este gerador +BarcodeSetup=Configuração de códigos de barras +PaperFormatModule=Módulo de formatos de impressão +BarcodeEncodeModule=Tipo de codificação de códigos de barras +CodeBarGenerator=Gerador do códigos de barras +ChooseABarCode=Nenhum gerador definido +FormatNotSupportedByGenerator=Formato não suportado por este gerador BarcodeDescEAN8=Códigos de barras tipo EAN8 BarcodeDescEAN13=Códigos de barras tipo EAN13 BarcodeDescUPC=Códigos de barras tipo UPC @@ -1373,284 +1411,285 @@ BarcodeDescC39=Códigos de barras tipo C39 BarcodeDescC128=Códigos de barras tipo C128 BarcodeDescDATAMATRIX=Código de barras do tipo Datamatrix BarcodeDescQRCODE=Código de barras do tipo QR -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode +GenbarcodeLocation=Ferramenta da linha de comandos para a produção de códigos de barras (usado pelo motor interno para alguns tipos de códigos de barras). Deve ser compatível com "genbarcode".
Por exemplo: /usr/local/bin/genbarcode BarcodeInternalEngine=Motor interno -BarCodeNumberManager=Manager to auto define barcode numbers +BarCodeNumberManager=Gestor para definir automaticamente números de código de barras ##### Prelevements ##### -WithdrawalsSetup=Setup of module Direct debit payment orders +WithdrawalsSetup=Configuração do módulo de "Ordens de pagamento por débito directo" ##### ExternalRSS ##### -ExternalRSSSetup=Configuração das importacções do fluxo RSS -NewRSS=Gravação de um Novo fluxo RSS -RSSUrl=Endereço RSS +ExternalRSSSetup=Configuração das importações de feeds RSS externos +NewRSS=Novo feed RSS +RSSUrl=Endereço do feed RSS RSSUrlExample=Um feed RSS interessante ##### Mailing ##### -MailingSetup=configuração do módulo E-Mailing -MailingEMailFrom=E-Mail emissor (From) dos correios enviados por E-Mailing -MailingEMailError=Retorno EMail (Erros a) para e-mails com erros -MailingDelay=Seconds to wait after sending next message +MailingSetup=Configuração do módulo "Emailing" +MailingEMailFrom=Email do emissor (From) para emails enviados através do módulo emailing +MailingEMailError=Email de retorno (Erros a) para emails com erros +MailingDelay=Segundos a esperar antes de enviar a próxima mensagem ##### Notification ##### -NotificationSetup=Configurar módulo da notificação de mensagem -NotificationEMailFrom=E-Mail emissor (From) dos correios enviados a traves de Notificações -FixedEmailTarget=Fixed email target +NotificationSetup=Configuração do módulo "Notificação por email" +NotificationEMailFrom=Email emissor (From) para emails enviados de notificações +FixedEmailTarget=Destinatário fixo de emails ##### Sendings ##### -SendingsSetup=Configuração do módulos envíos -SendingsReceiptModel=Modelo da ficha de expedição +SendingsSetup=Configuração do módulo "Envios" +SendingsReceiptModel=Modelo do recibo de expedição SendingsNumberingModules=Envios módulos numerados -SendingsAbility=Support shipping sheets for customer deliveries -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +SendingsAbility=Suporte para guias de transporte para entregas a clientes +NoNeedForDeliveryReceipts=Na maioria dos casos, as guias de transporte são usadas tanto como folhas para entregas do cliente (lista de produtos para enviar), como folhas que são recebidas e assinadas pelo cliente. Deste modo, os recibos de entregas de produtos são uma funcionalidade duplicada e raramente é ativada. FreeLegalTextOnShippings=Texto livre nas expedições ##### Deliveries ##### -DeliveryOrderNumberingModules=Módulo de numeração dos envios a clientes -DeliveryOrderModel=Modelo de ordem de envío -DeliveriesOrderAbility=Portes pagos pelo cliente -FreeLegalTextOnDeliveryReceipts=Texto livre em notas de entregas. +DeliveryOrderNumberingModules=Módulo de numeração de notas de entrega de produtos +DeliveryOrderModel=Modelo de nota de entrega de produtos +DeliveriesOrderAbility=Notas de entrega para produtos de suporte +FreeLegalTextOnDeliveryReceipts=Texto livre em notas de entregas ##### FCKeditor ##### -AdvancedEditor=Edição avançada -ActivateFCKeditor=Activar FCKeditor para : -FCKeditorForCompany=Criação/Edição WYSIWIG da descrição e notas dos Terceiros +AdvancedEditor=Editor avançado +ActivateFCKeditor=Ativar editor avançado para: +FCKeditorForCompany=Criação/Edição WYSIWIG da descrição e notas de elementos (exceto produtos/services) FCKeditorForProduct=Criação/Edição WYSIWIG da descrição e notas dos produtos/serviços -FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (proposals, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. -FCKeditorForMailing= Criação/Edição WYSIWIG dos E-Mails -FCKeditorForUserSignature=WYSIWIG creation/edition of user signature -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) +FCKeditorForProductDetails=Edição/criação WYSIWIG dos detalhes produtos para todas as entidades (orçamentos, encomendas, faturas, etc.). Aviso: Usar esta opção para este caso é muito pouco recomendado, isto porque pode criar problemas relacionados com caracteres especiais e formatação durante a criação de ficheiros PDF. +FCKeditorForMailing= Criação/Edição WYSIWIG para emails em massa (Ferramentas->eMailing) +FCKeditorForUserSignature=Criação/Edição WYSIWIG da assinatura do utilizador +FCKeditorForMail=Criação/Edição WYSIWIG para todo o correio (exceto Ferramentas->eMailling) ##### OSCommerce 1 ##### -OSCommerceErrorConnectOkButWrongDatabase=A ligação foi establecida, mas a base de dados não parece de OSCommerce. -OSCommerceTestOk=A ligação ao servidor '%s' sobre a base '%s' pelo Utilizador '%s' está correcta. -OSCommerceTestKo1=A ligação ao servidor '%s' sobre a base '%s' por o Utilizador '%s' não se pode efectuar. -OSCommerceTestKo2=A ligação ao servidor '%s' pelo Utilizador '%s' falhou. +OSCommerceErrorConnectOkButWrongDatabase=A ligação foi establecida, mas a base de dados não parece ser de OSCommerce (A chave %s não foi encontrada na tabela %s). +OSCommerceTestOk=A ligação ao servidor '%s' à base de dados '%s' através do utilizador '%s' foi efetuada com sucesso. +OSCommerceTestKo1=A ligação ao servidor '%s' foi efetuada com sucesso, no entanto não foi possível comunicar com a base de dados '%s'. +OSCommerceTestKo2=A ligação ao servidor '%s' através do utilizador '%s' não foi possível. ##### Stock ##### -StockSetup=Warehouse module setup +StockSetup=Configuração do módulo "Armazém" IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. ##### Menu ##### -MenuDeleted=Menu Eliminado +MenuDeleted=Menu eliminado Menus=Menus TreeMenuPersonalized=Menus personalizados NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry -NewMenu=Novo Menu -Menu=Selecção dos menus +NewMenu=Novo menu +Menu=Seleção do menu MenuHandler=Gestor de menus MenuModule=Módulo origem HideUnauthorizedMenu= Ocultar menus não autorizados (cinza) -DetailId=Identificador do menu -DetailMenuHandler=Nome do gestor de menus -DetailMenuModule=Nome do módulo, a entrada do menu é resultante de um módulo +DetailId=Id do menu +DetailMenuHandler=Gestor de menus onde será exibido o novo menu +DetailMenuModule=Nome do módulo, no caso da entrada do menu ser resultante de um módulo DetailType=Tipo de menu (superior ou esquerdo) -DetailTitre=Etiqueta do menu -DetailUrl=URL da página para a qual o menu aponta -DetailEnabled=Condição para mostrar ou não a entrada -DetailRight=Condição de visualização completa ou cristálida -DetailLangs=Ficheiro langs para a tradução do título +DetailTitre=Etiqueta do menu ou código da etiqueta para tradução +DetailUrl=URL da página para a qual o menu aponta (URL absoluto or hiperligação externa com http://) +DetailEnabled=Condição para mostrar, ou não, a entrada +DetailRight=Condição para mostrar menus cinza não autorizados +DetailLangs=Nome do ficheiro. lang para a tradução de códigos de etiquetas DetailUser=Interno / Externo / Todos Target=Alvo -DetailTarget=Objectivo +DetailTarget=Alvo para hiperligações (_blank para abrir numa nova janela) DetailLevel=Nivel (-1:menu superior, 0:principal, >0 menu e submenu) ModifMenu=Modificação do menu DeleteMenu=Eliminar entrada de menu -ConfirmDeleteMenu=Are you sure you want to delete menu entry %s? -FailedToInitializeMenu=Failed to initialize menu +ConfirmDeleteMenu=Tem a certeza que deseja eliminar a entrada de menu %s ? +FailedToInitializeMenu=Falha ao inicializar o menu ##### Tax ##### -TaxSetup=Taxes, social or fiscal taxes and dividends module setup -OptionVatMode=Opção de carga de IVA -OptionVATDefault=Cash basis -OptionVATDebitOption=Accrual basis -OptionVatDefaultDesc=A carga do IVA é:
-ao envio dos bens
-sobre o pagamento dos serviços -OptionVatDebitOptionDesc=A carga do IVA é:
-ao envío dos bens
-sobre a facturação dos serviços -SummaryOfVatExigibilityUsedByDefault=Time of VAT exigibility by default according to chosen option: +TaxSetup=Configuração do módulo "Impostos, impostos sociais ou fiscais e dividendos" +OptionVatMode=Aplicação do IVA +OptionVATDefault=Regime de caixa +OptionVATDebitOption=Regime de competência +OptionVatDefaultDesc=O IVA é aplicado:
- ao envio dos bens (é utilizada a data da fatura)
- sobre o pagamento dos serviços +OptionVatDebitOptionDesc=O IVA é aplicado:
- ao envio dos bens (é utilizada a data da fatura)
- sobre a faturação (débito) dos serviços +SummaryOfVatExigibilityUsedByDefault=Tempo de exigibilidade do IVA prédefinido, de acordo com a opção escolhida: OnDelivery=Na entrega -OnPayment=Pagamento -OnInvoice=Em factura -SupposedToBePaymentDate=Data de pagamento utilizada, se não souber a data de entrega -SupposedToBeInvoiceDate=Data da factura usada +OnPayment=No pagamento +OnInvoice=Na fatura +SupposedToBePaymentDate=Data de pagamento utilizada +SupposedToBeInvoiceDate=Data da fatura usada Buy=Comprar Sell=Vender -InvoiceDateUsed=Data da factura usada -YourCompanyDoesNotUseVAT=Sua empresa não tem configuração definida para usar o IVA (Home - Setup - Empresa / Fundação), pelo que não há opções de configuração do IVA. +InvoiceDateUsed=Data da fatura usada +YourCompanyDoesNotUseVAT=Sua empresa não tem configuração definida para usar o IVA (Home - Configuração - Empresa/Organização), pelo que não há opções de configuração do IVA. AccountancyCode=Código de Contabilidade -AccountancyCodeSell=Código da conta de Vendas -AccountancyCodeBuy=Código da conta de Compras +AccountancyCodeSell=Código de contabilidade de vendas +AccountancyCodeBuy=Código de contabilidade de compras ##### Agenda ##### -AgendaSetup=Módulo configuração de acções e agenda +AgendaSetup=Configuração do módulo "Eventos e agenda" PasswordTogetVCalExport=Chave de autorização para exportação do link vcal. PastDelayVCalExport=Não exportar evento com mais de -AGENDA_USE_EVENT_TYPE=Use events types (managed into menu Setup -> Dictionary -> Type of agenda events) -AGENDA_USE_EVENT_TYPE_DEFAULT=Set automatically this default value for type of event into event create form -AGENDA_DEFAULT_FILTER_TYPE=Set automatically this type of event into search filter of agenda view -AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into search filter of agenda view -AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda +AGENDA_USE_EVENT_TYPE=Usar tipos de eventos (gerido através do menu Configuração -> Dicionário -> Tipo de eventos da agenda) +AGENDA_USE_EVENT_TYPE_DEFAULT=Definir este valor automaticamente como o valor predefinido para o campo tipo de evento, no formulário de criação de evento +AGENDA_DEFAULT_FILTER_TYPE=Definir automaticamente este tipo de evento no filtro de pesquisa da vista agenda +AGENDA_DEFAULT_FILTER_STATUS=Definido automaticamente este estado para eventos no filtro de pesquisa da vista agenda +AGENDA_DEFAULT_VIEW=Qual é a aba que você deseja abrir por defeito quando seleciona o menu "Agenda" AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### -ClickToDialSetup=Configuração do módulo Click To Dial -ClickToDialUrlDesc=Efectue uma chamada, fazendo click no icon (URL) do telefone .
a 'url completa da chamada será: URL?login -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. -ClickToDialUseTelLink=Use just a link "tel:" on phone numbers -ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. +ClickToDialSetup=Configuração do módulo "Click To Dial" +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialDesc=Este módulo torna os números de telefone clicáveis. Um clique neste ícone fará com que o seu telefone ligue para o número de telefone. Isto pode ser usado para chamar um sistema de call-center a partir do Dolibarr que por sua vez pode ligar ao número de telefone num sistema SIP, por exemplo. +ClickToDialUseTelLink=Usar apenas um link "tel:" em números de telefone +ClickToDialUseTelLinkDesc=Utilize este método se os utilizadores têm um softphone ou uma interface de software instalado no mesmo computador que o navegador e efetua uma chamada quando você clica em links que começam com "tel:". Se você precisa de uma solução de servidor (sem necessidade de instalação de software local), você deve definir este como "Não" e preencher o próximo campo. ##### Point Of Sales (CashDesk) ##### CashDesk=Pontos de vendas -CashDeskSetup=Configuração do módulo de Caixa Registadora -CashDeskThirdPartyForSell=Default generic third party to use for sells -CashDeskBankAccountForSell=Conta de efectivo que se utilizará para as vendas +CashDeskSetup=Configuração do módulo "Ponto de vendas" +CashDeskThirdPartyForSell=Terceiro genérico a usar para as vendas +CashDeskBankAccountForSell=Conta a ser usada para receber pagamentos em dinheiro CashDeskBankAccountForCheque= Conta a ser usada para receber pagamentos através de cheques -CashDeskBankAccountForCB= Conta a ser usada para receber pagamentos em dinheiro ou por cartões de crédito -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). -CashDeskIdWareHouse=Force and restrict warehouse to use for stock decrease -StockDecreaseForPointOfSaleDisabled=Stock decrease from Point Of Sale disabled -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management -CashDeskYouDidNotDisableStockDecease=You did not disable stock decrease when making a sell from Point Of Sale. So a warehouse is required. +CashDeskBankAccountForCB= Conta a ser usada para receber pagamentos por cartões de crédito +CashDeskDoNotDecreaseStock=Decréscimo de stock quando é efetuada uma venda a partir do Ponto de Venda desativado (se "não", o decréscimo do stock e feito após cada venda, para qualquer opção definida no módulo "Stock") +CashDeskIdWareHouse=Forçar e restringir o armazém a usar para o decréscimo de stock +StockDecreaseForPointOfSaleDisabled=Decréscimo de stock a partir do Ponto de Venda desativado +StockDecreaseForPointOfSaleDisabledbyBatch=Decréscimo de stock a partir do Ponto de Venda não é compatível com a gestão de lotes +CashDeskYouDidNotDisableStockDecease=Não desativou o decréscimo de stock para quando é efetuada uma venda a partir do Ponto de Venda, como tal é necessário ter um armazém definido. ##### Bookmark ##### -BookmarkSetup=Configuração do Modulo de Favoritos -BookmarkDesc=Este módulo permite gerir as ligações e acessos directos. Também permite adicionar qualquer página do ERP/CRM ou o link web ao menu de acesso rápido na esquerda. -NbOfBoomarkToShow=Número máximo de marcadores que se mostra no menu +BookmarkSetup=Configuração do módulo "Marcadores" +BookmarkDesc=Este módulo permite gerir os marcadores. Também permite adicionar qualquer página do Dolibarr ou links externos ao menu de acesso rápido na esquerda. +NbOfBoomarkToShow=Número máximo de marcadores a mostrar no menu esquerdo ##### WebServices ##### -WebServicesSetup=Webservices módulo configuração -WebServicesDesc=Ao permitir a este módulo, ERP/CRM tornar-se um serviço de servidor web para fornecer diversos serviços da web. -WSDLCanBeDownloadedHere=WSDL descritor de arquivo desde serviços pode ser fazer o download aqui -EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint available at URL +WebServicesSetup=Configuração do módulo "Webservices" +WebServicesDesc=Ao ativar a este módulo, o Dolibarr torna-se num servidor de web services para fornecer diversos serviços da web. +WSDLCanBeDownloadedHere=Os ficheiros descritores WSDL de serviços fornecidos pode ser descarregado aqui +EndPointIs=Clientes SOAP devem enviar os seus pedidos à Dolibarr disponível no URL ##### API #### -ApiSetup=Configurar módulo API -ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. -ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=Pode explorar as APIs na url -OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed +ApiSetup=Configuração do módulo "API" +ApiDesc=Ao ativar este módulo, o Dolibarr torna-se num servidor REST para prestar diversoes serviços web. +ApiProductionMode=Ativar o modo de produção (isto irá ativar uso de uma cache para a gestão de serviços) +ApiExporerIs=Você pode explorar e testar as APIs no URL +OnlyActiveElementsAreExposed=Somente os elementos de módulos ativados é que estão expostos ApiKey=Chave para a API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. ##### Bank ##### -BankSetupModule=Banco módulo de configuração -FreeLegalTextOnChequeReceipts=Texto livre em recibos dos cheques -BankOrderShow=Mostrar fim de contas bancárias para países que utilizam " +BankSetupModule=Configuração do módulo "Bancário" +FreeLegalTextOnChequeReceipts=Texto livre em recibos de pagamento em cheque +BankOrderShow=Ordem de exibiçãode contas bancárias para países que utilizam "IBAN" BankOrderGlobal=Geral -BankOrderGlobalDesc=Ordem de exibição Geral -BankOrderES=Ordem bancária Espanhola -BankOrderESDesc=Ordem de apresentação espanhol -ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - +BankOrderGlobalDesc=Ordem de exibição geral +BankOrderES=Espanhola +BankOrderESDesc=Ordem de exibição espanhola +ChequeReceiptsNumberingModule=Módulo de numeração para recibos de pagamento em cheque ##### Multicompany ##### -MultiCompanySetup=Multi-empresa módulo configuração +MultiCompanySetup=Configuração do módulo "Multi-empresa" ##### Suppliers ##### -SuppliersSetup=Fornecedor de configuração do módulo -SuppliersCommandModel=Complete modelo de ordem do fornecedor (logo. ..) -SuppliersInvoiceModel=Modelo completo da factura do fornecedor (logo. ..) -SuppliersInvoiceNumberingModel=Supplier invoices numbering models -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval +SuppliersSetup=Configuração do módulo "Fornecedor" +SuppliersCommandModel=Modelo completo de encomenda a fornecedor (logo...) +SuppliersInvoiceModel=Modelo completo de fatura do fornecedor (logo. ..) +SuppliersInvoiceNumberingModel=Modelos de numeração de faturas de fornecedores +IfSetToYesDontForgetPermission=Se definido a "sim", não se esqueça de atribuir permissões a utilizadores ou grupos de utilizadores que possam efetuar a segunda aprovação ##### GeoIPMaxmind ##### -GeoIPMaxmindSetup=MaxMind GeoIP instalação do módulo -PathToGeoIPMaxmindCountryDataFile=Path to file containing Maxmind ip to country translation.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat -NoteOnPathLocation=Note que o ip de dados do país/arquivo deve estar dentro de um diretório do seu PHP (Verifique a configuração do PHP open_basedir e permissões de arquivos). -YouCanDownloadFreeDatFileTo=Você pode baixar uma versão demo gratuita do país arquivo GeoIP MaxMind em %s. +GeoIPMaxmindSetup=Configuração do módulo "GeoIP Maxmind" +PathToGeoIPMaxmindCountryDataFile=Caminho para o ficheiro que contém o IP do Maxmind para tradução do país.
Exemplos:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat +NoteOnPathLocation=Note que o endereço IP de dados do país/arquivo deve estar dentro de um diretório do seu PHP (Verifique a configuração do PHP open_basedir e permissões de ficheiros de sistema). +YouCanDownloadFreeDatFileTo=Você pode descarregar uma versão demo gratuita do ficheiro país Maxmind GeoIP em %s. YouCanDownloadAdvancedDatFileTo=Você também pode baixar uma versão mais completa, com atualizações do país arquivo GeoIP MaxMind em %s. -TestGeoIPResult=Teste de uma conversão de IP -> +TestGeoIPResult=Teste de uma conversão IP -> País ##### Projects ##### -ProjectsNumberingModules=Projetos módulo de numeração -ProjectsSetup=Projeto de instalação do módulo -ProjectsModelModule=Modelo de projeto de documento de relatório -TasksNumberingModules=Módulo de numeração das tarefas +ProjectsNumberingModules=Módulo de numeração de projetos +ProjectsSetup=Configuração do módulo "Projetos" +ProjectsModelModule=Modelo de documento para relatórios de projeto +TasksNumberingModules=Módulo de numeração de tarefas TaskModelModule=Modelo de documento dos relatórios de tarefasl -UseSearchToSelectProject=Use autocompletion fields to choose project (instead of using a list box) +UseSearchToSelectProject=Usar campos de preenchimento automático para escolher o projeto (em vez de usar uma lista de seleção) ##### ECM (GED) ##### ##### Fiscal Year ##### AccountingPeriods=Accounting periods AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? +NewFiscalYear=Novo período contabilístico +OpenFiscalYear=Abrir período contabilístico +CloseFiscalYear=Fechar período contabilístico +DeleteFiscalYear=Eliminar período contabilístico +ConfirmDeleteFiscalYear=Tem certeza que deseja eliminar este período contábilistico? ShowFiscalYear=Show accounting period AlwaysEditable=Pode ser sempre editado -MAIN_APPLICATION_TITLE=Force visible name of application (warning: setting your own name here may break autofill login feature when using DoliDroid mobile application) -NbMajMin=Número máximo de carateres maiúsculos -NbNumMin=Número mínimod de carateres numéricos -NbSpeMin=Número mínimo de carateres especiais -NbIteConsecutive=Número máximo para repetir os mesmos carateres -NoAmbiCaracAutoGeneration=Do not use ambiguous characters ("1","l","i","|","0","O") for automatic generation -SalariesSetup=Configuração do módulo de salários +MAIN_APPLICATION_TITLE=Forçar o nome visível da aplicação (aviso: definir o seu próprio nome aqui pode quebrar a funcionalidade de preenchimento automático de credenciais de inicio de sessão ao usar a aplicação DoliDroid para telemovel) +NbMajMin=Número máximo de caracteres maiúsculos +NbNumMin=Número mínimo de caracteres numéricos +NbSpeMin=Número mínimo de caracteres especiais +NbIteConsecutive=Número máximo de caracteres repetidos +NoAmbiCaracAutoGeneration=Em criação automática de referências não utilize caracteres ambíguos ("1","l","i","|","0","O") +SalariesSetup=Configuração do módulo "Salários" SortOrder=Ordenação Format=Formato -TypePaymentDesc=0:Customer payment type, 1:Supplier payment type, 2:Both customers and suppliers payment type -IncludePath=Include path (defined into variable %s) -ExpenseReportsSetup=Configuração do módulo de Relatórios de Despesas -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". +TypePaymentDesc=0:Tipo de pagamento de cliente, 1:Tipo de pagamento de fornecedor, 2:Tipo de pagamento de clientes e fornecedores +IncludePath=Caminho para o dirétorio "include" (definido na variável %s) +ExpenseReportsSetup=Configuração do módulo "Relatórios de Despesas" +TemplatePDFExpenseReports=Modelos de documentos para a produção de relatórios de despesa +NoModueToManageStockIncrease=Não foi ativado nenhum módulo capaz de efetuar a gestão automática do acréscimo de stock. O acrescimo de stock será efetuado manualmente. +YouMayFindNotificationsFeaturesIntoModuleNotification=Poderá encontrar as opções das notificações por email ao ativar e configurar o módulo "Notificação". ListOfNotificationsPerUser=List of notifications per user* ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications +ListOfFixedNotifications=Lista de notificações fixas GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses -Threshold=Threshold -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. -InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; -HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over -HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) -TextTitleColor=Color of page title -LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective -NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes +GoOntoContactCardToAddMore=Vá à aba "Notificações" de um terceiro para adicionar ou remover as notificações de contactos/endereços +Threshold=Limite +BackupDumpWizard=Assistente para construir o ficheiro dump de backup da base de dados +SomethingMakeInstallFromWebNotPossible=Instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: +SomethingMakeInstallFromWebNotPossible2=Por este motivo, o processo de atualização descrito aqui é apenas manual que um utilizador privilegiado pode efetuar. +InstallModuleFromWebHasBeenDisabledByFile=Instalação de um módulo externo da aplicação foi desativada pelo seu administrador. Você deve pedir-lhe para remover o ficheiro %s para permitir esta funcionalidade. +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +HighlightLinesOnMouseHover=Realçar as linhas da tabela quando o rato passar sobre elas +HighlightLinesColor=Realçar a cor da linha quando o rato passa por cima (manter vazio para não realçar) +TextTitleColor=Cor do título da página +LinkColor=Cor dos links +PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe a cache do navegador depois de mudar este valor de forma a gravar as alterações +NotSupportedByAllThemes=Funciona com os temas predefinidos, pode não ser suportado por temas externos BackgroundColor=Cor de fundo -TopMenuBackgroundColor=Background color for Top menu +TopMenuBackgroundColor=Cor de fundo para o menu no topo TopMenuDisableImages=Hide images in Top menu -LeftMenuBackgroundColor=Background color for Left menu -BackgroundTableTitleColor=Background color for Table title line -BackgroundTableLineOddColor=Background color for odd table lines -BackgroundTableLineEvenColor=Background color for even table lines -MinimumNoticePeriod=Minimum notice period (Your leave request must be done before this delay) -NbAddedAutomatically=Number of days added to counters of users (automatically) each month -EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. -UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] -PositionIntoComboList=Position of line into combo lists -SellTaxRate=Sale tax rate -RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. -UrlTrackingDesc=If the provider or transport service offer a page or web site to check status of your shipping, you can enter it here. You can use the key {TRACKID} into URL parameters so the system will replace it with value of tracking number user entered into shipment card. -OpportunityPercent=When you create an opportunity, you will defined an estimated amount of project/lead. According to status of opportunity, this amount may be multiplicated by this rate to evaluate global amount all your opportunities may generate. Value is percent (between 0 and 100). -TemplateForElement=This template record is dedicated to which element +LeftMenuBackgroundColor=Cor de fundo para o menu à esquerda +BackgroundTableTitleColor=A cor do fundo para a linha de título das tabelas +BackgroundTableLineOddColor=A cor do fundo para as linhas ímpares da tabela +BackgroundTableLineEvenColor=Cor de fundo para linhas pares da tabela +MinimumNoticePeriod=Período mínimo de notificação (o seu pedido de licença deve ser feito antes deste período) +NbAddedAutomatically=Número de dias adicionados ao contadores dos utilizadores (automaticamente) cada mês +EnterAnyCode=Este campo contém uma referência para identificar a linha. Digite qualquer valor sem caracteres especiais. +UnicodeCurrency=Digite aqui entre parêntesis retos, a lista de bytes que representam o símbolo da moeda. Por exemplo: para o dólar americano $, digite [36] - para o real braisleiro, R$ [82,36] - para o euro €, digite [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 +PositionIntoComboList=Posição da linha nas listas de seleção +SellTaxRate=Taxa de imposto de venda +RecuperableOnly=Sim para IVA "Non Perçue Récupérable" dedicado para alguns estados na França. Mantenha o valor como "Não" em todos os outros casos. +UrlTrackingDesc=Se a transportadora oferecer uma página da Internet para verificar o estado da sua encomenda, pode introduzi-lo aqui. Você pode usar a chave {TRACKID} nos parâmetros do URL para que o sistema possa substituí-lo na ficha de expedição. +OpportunityPercent=Quando você cria uma oportunidade, você vai definir um valor estimado de projeto/lead. De acordo com o estado da oportunidade, este montante poderá ser multiplicado por esta taxa para avaliar o montante global que todas as suas oportunidades pode gerar. O valor é percentual (entre 0 e 100). +TemplateForElement=Este registo modelo é dedicado a qual elemento TypeOfTemplate=Tipo de modelo TemplateIsVisibleByOwnerOnly=Modelo é visível apenas pelo dono FixTZ=Corrigir Fuso Horário -FillFixTZOnlyIfRequired=Example: +2 (fill only if problem experienced) -ExpectedChecksum=Expected Checksum -CurrentChecksum=Current Checksum +FillFixTZOnlyIfRequired=Exemplo: +2 (preencha somente se experienciar problemas) +ExpectedChecksum=Checksum esperado +CurrentChecksum=Checksum atual ForcedConstants=Required constant values -MailToSendProposal=To send customer proposal -MailToSendOrder=To send customer order -MailToSendInvoice=To send customer invoice -MailToSendShipment=To send shipment -MailToSendIntervention=To send intervention -MailToSendSupplierRequestForQuotation=To send quotation request to supplier -MailToSendSupplierOrder=To send supplier order -MailToSendSupplierInvoice=To send supplier invoice +MailToSendProposal=Orçamento para cliente a enviar +MailToSendOrder=Para enviar a encomenda do cliente por e-mail +MailToSendInvoice=Para enviar a fatura do cliente por e-mail +MailToSendShipment=Para enviar a expedição por e-mail +MailToSendIntervention=Para enviar a intervenção por e-mail +MailToSendSupplierRequestForQuotation=Para enviar a solicitação de cotação ao fornecedor por e-mail +MailToSendSupplierOrder=Para enviar a encomenda ao fornecedor por e-mail +MailToSendSupplierInvoice=Para enviar a fatura emitida pelo fornecedor por e-mail MailToSendContract=To send a contract -MailToThirdparty=To send email from third party page -ByDefaultInList=Show by default on list view -YouUseLastStableVersion=You use the latest stable version -TitleExampleForMajorRelease=Example of message you can use to announce this major release (feel free to use it on your web sites) -TitleExampleForMaintenanceRelease=Example of message you can use to announce this maintenance release (feel free to use it on your web sites) -ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. -ExampleOfNewsMessageForMaintenanceRelease=Dolibarr ERP & CRM %s is available. Version %s is a maintenance version, so it contains only fixes of bugs. We recommend everybody using an older version to upgrade to this one. As any maintenance release, no new features, nor data structure change is present into this version. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. +MailToThirdparty=Para enviar e-mail a partir da página dos terceiros +ByDefaultInList=Mostrar por padrão na vista de lista +YouUseLastStableVersion=Você possui a última versão estável +TitleExampleForMajorRelease=Exemplo de mensagem que você pode usar para anunciar esta versão principal (sinta-se livre para usá-la nas suas páginas da Internet) +TitleExampleForMaintenanceRelease=Exemplo de mensagem que você pode usar para anunciar esta versão de manutenção (sinta-se livre para usá-la nas suas páginas da Internet) +ExampleOfNewsMessageForMajorRelease=O Dolibarr ERP e CRM %s está disponível. A versão %s é um grande lançamento com várias funcionalidades novas. Você pode transferi-lo a partir da área de downloads do portal https://www.dolibarr.org (subdiretório: versões estáveis). Você pode ler o ChangeLog para consultar a lista completa de alterações. +ExampleOfNewsMessageForMaintenanceRelease=O Dolibarr ERP e CRM %s está disponível. A versão %s é uma versão de manutenção, por isso contém apenas correções de bugs. Recomendamos que atualize para este. Como com qualquer versão de manutenção, não há novas funcionalidades, nem foi mudada a estrutura de dados presente nesta versão. Você pode transferi-lo a partir da área de downloads da página https://www.dolibarr.org (subdiretório: versões estáveis). Você pode consultar ChangeLog para a lista completa de alterações. MultiPriceRuleDesc=When option "Several level of prices per product/service" is on, you can define different prices (one per price level) for each product. To save you time, you can enter here rule to have price for each level autocalculated according to price of first level, so you will have to enter only price for first level on each product. This page is here to save you time and can be usefull only if your prices for each leve are relative to first level. You can ignore this page in most cases. -ModelModulesProduct=Templates for product documents -ToGenerateCodeDefineAutomaticRuleFirst=To be able to generate automatically codes, you must first define a manager to auto define barcode number. -SeeSubstitutionVars=See * note for list of possible substitution variables -AllPublishers=All publishers -UnknownPublishers=Unknown publishers -AddRemoveTabs=Add or remove tabs -AddDictionaries=Add dictionaries -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs +ModelModulesProduct=Modelos para documentos de produto +ToGenerateCodeDefineAutomaticRuleFirst=Para ser possível criar códigos automaticamente, você deve primeiro definir um gestor para auto definir o número de código de barras. +SeeSubstitutionVars=Veja a nota * para uma lista de possíveis variáveis ​​de substituição +AllPublishers=Todos os editores +UnknownPublishers=Editores desconhecidos +AddRemoveTabs=Adicionar ou remover separadores +AddDictionaries=Adicionar dicionários +AddBoxes=Adicionar widgets +AddSheduledJobs=Adicionar trabalhos agendados AddHooks=Add hooks AddTriggers=Add triggers -AddMenus=Add menus -AddPermissions=Add permissions -AddExportProfiles=Add export profiles -AddImportProfiles=Add import profiles -AddOtherPagesOrServices=Add other pages or services -AddModels=Add document or numbering templates +AddMenus=Adicionar menus +AddPermissions=Adicionar permissões +AddExportProfiles=Adicionar perfis de exportação +AddImportProfiles=Adicionar perfis de importação +AddOtherPagesOrServices=Adicionar outras páginas ou serviços +AddModels=Adicionar modelos de documento ou numeração AddSubstitutions=Add keys substitutions -DetectionNotPossible=Detection not possible +DetectionNotPossible=Deteção não é possível UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) -ListOfAvailableAPIs=List of available APIs +ListOfAvailableAPIs=Lista de APIs disponíveis activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. LandingPage=Página Inicial @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index 397079541da..853457b9f74 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - bills Bill=Fatura Bills=Facturas -BillsCustomers=Customer invoices +BillsCustomers=Faturas de Clientes BillsCustomer=Fatura de Cliente -BillsSuppliers=Supplier invoices +BillsSuppliers=Faturas de Fornecedores BillsCustomersUnpaid=Faturas a receber de clientes BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s BillsSuppliersUnpaid=Faturas a pagar de fornecedores @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Desativar porque não pode ser eliminado InvoiceStandard=Fatura Normal InvoiceStandardAsk=Fatura Normal InvoiceStandardDesc=Este tipo de fatura é uma fatura comum. -InvoiceDeposit=Depositar Factura -InvoiceDepositAsk=Depositar Factura -InvoiceDepositDesc=Este tipo de fatura é efetuada quando for recebido um depósito. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Fatura Pró-Forma InvoiceProFormaAsk=Fatura Pró-Forma InvoiceProFormaDesc=A Fatura Pró-Forma é uma imagem de uma fatura, mas não tem valor contabilístico. @@ -103,8 +103,8 @@ SearchACustomerInvoice=Procurar por uma fatura de cliente SearchASupplierInvoice=Procurar por uma factura de fornecedor CancelBill=Anular uma Factura SendRemindByMail=Enviar lembrete por E-mail -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Inserir pagamento +DoPaymentBack=Inserir reembolso ConvertToReduc=Converter em desconto futuro ConvertExcessReceivedToReduc=Convert excess received into future discount EnterPaymentReceivedFromCustomer=Adicionar pagamento recebido de cliente @@ -115,7 +115,7 @@ BillStatus=Estado da factura StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=rascunho (a Confirmar) BillStatusPaid=paga -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Converter em Desconto BillStatusCanceled=Abandonada BillStatusValidated=Validada (a pagar) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paga (parcialmente) BillShortStatusDraft=Rascunho BillShortStatusPaid=Paga BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Transformados +BillShortStatusConverted=Pago BillShortStatusCanceled=Abandonada BillShortStatusValidated=Validada BillShortStatusStarted=Iniciada @@ -153,22 +153,22 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Nova factura -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Últimas %s faturas +LastCustomersBills=Últimas %s faturas de cliente +LastSuppliersBills=Últimas %s faturas de fornecedor AllBills=Todas as facturas OtherBills=Outras facturas DraftBills=Facturas rascunho -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Faturas provisórias de cliente +SuppliersDraftInvoices=Faturas provisórias de fornecedor Unpaid=Pendentes -ConfirmDeleteBill=Are you sure you want to delete this invoice? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? +ConfirmDeleteBill=Tem a certeza que deseja eliminar esta fatura? +ConfirmValidateBill=Tem a certeza que deseja validar esta fatura com a referência %s? +ConfirmUnvalidateBill=Tem a certeza que pretende alterar a fatura %s para o estado de provisória? +ConfirmClassifyPaidBill=Tem a certeza que pretende alterar a fatura %s para o estado de paga? +ConfirmCancelBill=Tem a certeza que pretende cancelar a fatura %s? +ConfirmCancelBillQuestion=Porque é que pretende classificar esta fatura como 'abandonada'? +ConfirmClassifyPaidPartially=Tem a certeza que pretende alterar a fatura %s para o estado de paga? ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularise the VAT with a credit note. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. @@ -198,12 +198,12 @@ ShowBill=Ver factura ShowInvoice=Ver factura ShowInvoiceReplace=Ver factura rectificativa ShowInvoiceAvoir=Ver deposito -ShowInvoiceDeposit=Ver Factura Depositada +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Ver pagamento AlreadyPaid=Já e AlreadyPaidBack=Já reembolsado -AlreadyPaidNoCreditNotesNoDeposits=Já pagas (sem notas de crédito e depósitos) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandonada RemainderToPay=Restante a receber RemainderToTake=Remaining amount to take @@ -225,7 +225,7 @@ ToBill=A facturar RemainderToBill=Falta Facturar SendBillByMail=Enviar a factura por E-Mail SendReminderBillByMail=Enviar um lembrete por E-Mail -RelatedCommercialProposals=Orçamentos associados +RelatedCommercialProposals=Orçamentos para clientes associados RelatedRecurringCustomerInvoices=Related recurring customer invoices MenuToValid=A Confirmar DateMaxPayment=Data limite de pagamento @@ -238,7 +238,7 @@ CustomerBillsUnpaid=Faturas a receber de clientes NonPercuRecuperable=Não recuperável SetConditions=Definir Condições de pagamento SetMode=Definir modo de pagamento -SetRevenuStamp=Set revenue stamp +SetRevenuStamp=Definir selo fiscal Billed=Facturado RecurringInvoices=Recurring invoices RepeatableInvoice=Fatura Modelo @@ -270,10 +270,10 @@ RelativeDiscount=Desconto relativo GlobalDiscount=Desconto fixo CreditNote=Deposito CreditNotes=Recibos -Deposit=Depósito -Deposits=Depósitos +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Desconto resultante do deposito %s -DiscountFromDeposit=Pagamentos a partir de depósito na factura %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Este tipo de crédito pode ser usado na factura antes da sua validação CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -282,8 +282,8 @@ NewRelativeDiscount=Nova parente desconto NoteReason=Nota/Motivo ReasonDiscount=Motivo DiscountOfferedBy=Acordado por -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Descontos disponíveis +DiscountAlreadyCounted=Descontos já utilizados BillAddress=Morada de facturação HelpEscompte=Um Desconto é um desconto acordado sobre uma factura dada, a um cliente que realizou o seu pagamento muito antes do vencimento. HelpAbandonBadCustomer=Este Montante é deixado (cliente julgado como devedor) e se considera como uma perda excepcional. @@ -302,12 +302,12 @@ RemoveDiscount=Eliminar Desconto WatermarkOnDraftBill=Marca de agua em facturas rascunho (nada sem está vazia) InvoiceNotChecked=Factura não seleccionada CloneInvoice=Clonar factura -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Tem a certeza que pretende clonar esta fatura %s? DisabledBecauseReplacedInvoice=Acção desactivada porque é uma factura substituída DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here. NbOfPayments=Nb de pagamentos SplitDiscount=Dividido em duas desconto -ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into 2 lower discounts? +ConfirmSplitDiscount=Tem a certeza que pretende dividir este desconto de %s %s em 2 descontos menores? TypeAmountOfEachNewDiscount=Entrada montante para cada uma das duas partes: TotalOfTwoDiscountMustEqualsOriginal=Total de dois novos desconto deve ser igual ao montante original de desconto. ConfirmRemoveDiscount=Tem certeza que deseja remover este desconto? @@ -353,7 +353,7 @@ PaymentCondition60DENDMONTH=Within 60 days following the end of the month PaymentConditionShortPT_DELIVERY=Envio PaymentConditionPT_DELIVERY=Na entrega PaymentConditionShortPT_ORDER=Pedido -PaymentConditionPT_ORDER=On order +PaymentConditionPT_ORDER=Ao encomendar PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% adiantado, 50%% na entrega PaymentConditionShort10D=10 days @@ -381,7 +381,7 @@ PaymentTypeTIP=TIP (Documents against Payment) PaymentTypeShortTIP=TIP Payment PaymentTypeVAD=Pagamento On Line PaymentTypeShortVAD=Pagamento On Line -PaymentTypeTRA=Bank draft +PaymentTypeTRA=Letra bancária PaymentTypeShortTRA=Rascunho PaymentTypeFAC=Factor PaymentTypeShortFAC=Factor @@ -447,24 +447,24 @@ CantRemovePaymentWithOneInvoicePaid=Não é possível remover o pagamento desde ExpectedToPay=Pagamento esperado CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Pago por esse pagamento -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Tudo sem nota fiscal continuam a pagar será automaticamente fechada ao status de "payed". ToMakePayment=Pagar ToMakePaymentBack=Reembolsar ListOfYourUnpaidInvoices=Lista de faturas não pagas -NoteListOfYourUnpaidInvoices=Note: This list contains only invoices for third parties you are linked to as a sale representative. -RevenueStamp=Revenue stamp +NoteListOfYourUnpaidInvoices=Nota: Esta lista apenas contém fatura de terceiros dos quais você está definido como representante de vendas. +RevenueStamp=Selo fiscal YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice PDFCrabeDescription=Modelo de factura completo (IVA, método de pago a mostrar, logotipo...) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Uma conta a começar com $syymm já existe e não é compatível com este modelo de sequencia. Remove-o ou renomeia para activar este modulo -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representante factura do cliente seguimento TypeContact_facture_external_BILLING=Contacto na factura do Cliente diff --git a/htdocs/langs/pt_PT/bookmarks.lang b/htdocs/langs/pt_PT/bookmarks.lang index e201e4f4166..b82edfa034b 100644 --- a/htdocs/langs/pt_PT/bookmarks.lang +++ b/htdocs/langs/pt_PT/bookmarks.lang @@ -1,18 +1,20 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Adicionar esta página aos Favoritos -Bookmark=Favorito -Bookmarks=Favoritos -NewBookmark=Novo Favorito -ShowBookmark=Mostrar Favoritos -OpenANewWindow=Abrir uma Nova Janela +AddThisPageToBookmarks=Adicionar a página atual aos marcadores +Bookmark=Marcador +Bookmarks=Marcadores +ListOfBookmarks=Lista de Marcadores +EditBookmarks=Listar/editar marcadores +NewBookmark=Novo marcador +ShowBookmark=Mostrar marcador +OpenANewWindow=Abrir numa nova janela ReplaceWindow=Substituir a janela atual BookmarkTargetNewWindowShort=Nova janela BookmarkTargetReplaceWindowShort=Janela atual -BookmarkTitle=Título do Favorito +BookmarkTitle=Título do marcador UrlOrLink=URL -BehaviourOnClick=Comportamento quando clica num URL -CreateBookmark=Criar Favorito -SetHereATitleForLink=Defina um título para o Favorito -UseAnExternalHttpLinkOrRelativeDolibarrLink=Indicar um URL externo para o URL relativo do Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not -BookmarksManagement=Gestão de Favoritos +BehaviourOnClick=Comportamento quando um URL de marcador é selecionado +CreateBookmark=Criar marcador +SetHereATitleForLink=Defina um título para o marcador +UseAnExternalHttpLinkOrRelativeDolibarrLink=Utilizar um URL http externo para o URL Dolibarr relativo +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolher se a página associada deve abrir ou não numa nova janela +BookmarksManagement=Gestão de Marcadores diff --git a/htdocs/langs/pt_PT/boxes.lang b/htdocs/langs/pt_PT/boxes.lang index 060f311dd64..116f9f8d304 100644 --- a/htdocs/langs/pt_PT/boxes.lang +++ b/htdocs/langs/pt_PT/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Informação RSS BoxLastProducts=Os %s últimos produtos/serviços BoxProductsAlertStock=Alertas de stock para produtos @@ -7,7 +8,7 @@ BoxLastSupplierBills=Últimas faturas do fornecedor BoxLastCustomerBills=Últimas faturas do cliente BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices -BoxLastProposals=Latest commercial proposals +BoxLastProposals=Últimos orçamentos para clientes BoxLastProspects=Latest modified prospects BoxLastCustomers=Latest modified customers BoxLastSuppliers=Latest modified suppliers @@ -17,7 +18,7 @@ BoxLastContracts=Últimos contratos BoxLastContacts=Latest contacts/addresses BoxLastMembers=Últimos membros BoxFicheInter=Últimas intervenções -BoxCurrentAccounts=Open accounts balance +BoxCurrentAccounts=Saldo de abertura das contas BoxTitleLastRssInfos=Latest %s news from %s BoxTitleLastProducts=Latest %s modified products/services BoxTitleProductsAlertStock=Produtos no alerta de stock @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers BoxTitleLastModifiedSuppliers=Latest %s modified suppliers BoxTitleLastModifiedCustomers=Latest %s modified customers BoxTitleLastCustomersOrProspects=Latest %s customers or prospects -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Últimas %s faturas de clientes +BoxTitleLastSupplierBills=Últimas %s faturas de fornecedores BoxTitleLastModifiedProspects=Latest %s modified prospects BoxTitleLastModifiedMembers=Latest %s members BoxTitleLastFicheInter=Latest %s modified interventions @@ -39,26 +40,26 @@ BoxOldestExpiredServices=Mais antigos ativos de serviços vencidos BoxLastExpiredServices=Latest %s oldest contacts with active expired services BoxTitleLastActionsToDo=Latest %s actions to do BoxTitleLastContracts=Latest %s modified contracts -BoxTitleLastModifiedDonations=%s Últimas doações modificadas +BoxTitleLastModifiedDonations=As %s últimos donativos modificados BoxTitleLastModifiedExpenses=Latest %s modified expense reports -BoxGlobalActivity=Atividade Global (faturas, propostas, encomendas) +BoxGlobalActivity=Atividade global (faturas, orçamentos, encomendas) BoxGoodCustomers=Good customers BoxTitleGoodCustomers=%s Good customers FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s LastRefreshDate=Latest refresh date -NoRecordedBookmarks=Não existem favoritos pessoais. Click aqui para adicionar. +NoRecordedBookmarks=Não existem marcadores definidos. ClickToAdd=Clique aqui para adicionar. NoRecordedCustomers=Nenhum cliente registado -NoRecordedContacts=Não há contatos gravados -NoActionsToDo=Sem acções a realizar +NoRecordedContacts=Nenhum contacto registado +NoActionsToDo=Sem ações a realizar NoRecordedOrders=No recorded customer orders -NoRecordedProposals=Sem Orçamentos registados +NoRecordedProposals=Sem orçamentos registados NoRecordedInvoices=No recorded customer invoices NoUnpaidCustomerBills=No unpaid customer invoices NoUnpaidSupplierBills=No unpaid supplier invoices NoModifiedSupplierBills=No recorded supplier invoices -NoRecordedProducts=Não gravados produtos / serviços -NoRecordedProspects=Não gravadas perspectivas +NoRecordedProducts=Nenhum produto/serviço registado +NoRecordedProspects=Nenhuma prospecção registada NoContractedProducts=Não contractados produtos / serviços NoRecordedContracts=Sem contratos registrados NoRecordedInterventions=No recorded interventions @@ -67,8 +68,8 @@ NoSupplierOrder=No recorded supplier order BoxCustomersInvoicesPerMonth=Faturas de clientes por mês BoxSuppliersInvoicesPerMonth=Facturas de fornecedores por mês BoxCustomersOrdersPerMonth=Encomendas de clientes por mês -BoxSuppliersOrdersPerMonth=Encomendas de Fornecedores por mês -BoxProposalsPerMonth=Propostas por mês +BoxSuppliersOrdersPerMonth=Encomendas a fornecedores por mês +BoxProposalsPerMonth=Orçamentos por mês NoTooLowStockProducts=Nenhum produto abaixo do limite mínimo de stock BoxProductDistribution=Distribuição de Produtos/Serviços BoxProductDistributionFor=Distribuição de %s para %s @@ -82,3 +83,4 @@ ForCustomersOrders=Encomendas de clientes ForProposals=Orçamentos LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index 6dcae58c45f..bdb37320deb 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Novo Particular NewCompany=Nova Empresa (Cliente Potencial, Cliente, Fornecedor) NewThirdParty=Novo Terceiro (Cliente Potencial, Cliente, Fornecedor) CreateDolibarrThirdPartySupplier=Criar entidade (fornecedor) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Criar terceiro CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Área de prospeção IdThirdParty=ID Terceiro @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clientes ThirdPartyCustomersWithIdProf12=Clientes com %s ó %s ThirdPartySuppliers=Fornecedores ThirdPartyType=Tipo de Terceiro -Company/Fundation=Empresa/Associação Individual=Particular ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Casa mãe @@ -78,10 +77,10 @@ VATIsNotUsed=Não Sujeito a IVA CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Orçamentos +OverAllOrders=Encomendas +OverAllInvoices=Faturas +OverAllSupplierProposals=Preços solicitados ##### Local Taxes ##### LocalTax1IsUsed=Utilizar um segundo imposto LocalTax1IsUsedES= RE é usado @@ -237,6 +236,12 @@ ProfId3TN=Código na Alfandega ProfId4TN=CCC ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,8 +264,8 @@ CustomerRelativeDiscountShort=Desconto Relativo CustomerAbsoluteDiscountShort=Desconto Fixo CompanyHasRelativeDiscount=Este cliente tem um desconto por defeito de %s%% CompanyHasNoRelativeDiscount=Este cliente não tem descontos relativos por defeito -CompanyHasAbsoluteDiscount=Este cliente tem %s %s Descontos fixos disponiveis -CompanyHasCreditNote=Este cliente tem %s %s recibos disponiveis +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s +CompanyHasCreditNote=Este cliente ainda tem notas de crédito para %s %s CompanyHasNoAbsoluteDiscount=Este cliente não tem mas descontos fixos disponiveis CustomerAbsoluteDiscountAllUsers=Descontos fixos em curso (acordado por todos os Utilizadores) CustomerAbsoluteDiscountMy=Descontos fixos em curso (acordados Pessoalmente) @@ -296,7 +301,7 @@ CompanyDeleted=A Empresa "%s" foi Eliminada ListOfContacts=Lista de Contactos ListOfContactsAddresses=Lista de contactos/endereços ListOfThirdParties=Lista de Terceiros -ShowCompany=Show third party +ShowCompany=Mostrar terceiros ShowContact=Mostrar Contacto ContactsAllShort=Todos (sem filtro) ContactType=Tipo de Contacto @@ -351,34 +356,34 @@ TE_PRIVATE=Micro TE_OTHER=Outro StatusProspect-1=Não Contactar StatusProspect0=Nunca Contactado -StatusProspect1=To be contacted +StatusProspect1=Para ser contactado StatusProspect2=Contacto em Curso StatusProspect3=Contacto Realizado ChangeDoNotContact=Alterar o Estado para ' Não Contactar ' ChangeNeverContacted=Alterar o Estado para 'Nunca Nontactado' -ChangeToContact=Change status to 'To be contacted' +ChangeToContact=Alterar estado para 'Para ser contactado' ChangeContactInProcess=Alterar o Estado para 'Contacto em Curso' ChangeContactDone=Alterar o Estado para 'Contacto Realizado' ProspectsByStatus=Clientes Potenciais por Estado NoParentCompany=Nenhuma ExportCardToFormat=Exportar ficha para o formato ContactNotLinkedToCompany=Contacto não vinculado a um Terceiro -DolibarrLogin=Login +DolibarrLogin=Dolibarr - Iniciar Sessão NoDolibarrAccess=Sem Acesso ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties ExportDataset_company_2=Contactos de Terceiro e Atributos ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties ImportDataset_company_2=Contatos/Moradas (de terceiros ou não) e atributos ImportDataset_company_3=Dados bancários -ImportDataset_company_4=Third parties/Sales representatives (Affect sales representatives users to companies) +ImportDataset_company_4=Terceiros/Representantes de vendas (afetar utilizadores representantes de vendas a terceiros) PriceLevel=Nível de preços DeliveryAddress=Direcção de Envío AddAddress=Adicionar Direcção SupplierCategory=categoria Fornecedor -JuridicalStatus200=Independent +JuridicalStatus200=Independente DeleteFile=Apagar um Ficheiro ConfirmDeleteFile=Está seguro de querer eliminar este ficheiro? -AllocateCommercial=Assigned to sales representative +AllocateCommercial=Atribuído a representante de vendas Organization=Organismo FiscalYearInformation=Informação do Ano Fiscal FiscalMonthStart=Mês de Inicio do Exercício @@ -390,7 +395,7 @@ ListCustomersShort=Lista de clientes ThirdPartiesArea=Terceiros e árrea de contacto LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total de originais terceiros -InActivity=Aberto +InActivity=Abrir ActivityCeased=Fechado ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,10 +407,10 @@ LeopardNumRefModelDesc=Código de cliente/fornecedor livre sem verificação. po ManagingDirectors=Nome Diretor(es) (DE, diretor, presidente ...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged -SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeLogin=Nome de utilizador do representante de vendas +SaleRepresentativeFirstname=Primeiro nome do representante de vendas +SaleRepresentativeLastname=Último nome do representante de vendas ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang index 88326c6bcd0..4fa138590c4 100644 --- a/htdocs/langs/pt_PT/compta.lang +++ b/htdocs/langs/pt_PT/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Parametrização RemainingAmountPayment=Saldo pagamento: Account=Conta -Accountparent=Conta original -Accountsparent=Contas originais +Accountparent=Parent account +Accountsparent=Parent accounts Income=Depósitos Outcome=Despesas ReportInOut=Resultado / Exercício @@ -56,6 +56,7 @@ MenuTaxAndDividends=Impostos e Dividas MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Área Contabilidade/Tesouraria NewPayment=Novo Pagamento @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Inclui os pagamentos efectuados das facturas a clientes.
- Se baseia na data de pagamento das mesmas
-DepositsAreNotIncluded=- Facturas de depósito não são incluídas -DepositsAreIncluded=- Facturas de Depósito estão incluídas +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Relatório de terceiros IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,9 +170,9 @@ DescSellsJournal=Relatório vendas DescPurchasesJournal=Relatório compras InvoiceRef=Ref fatura. CodeNotDef=Não definido -WarningDepositsNotIncluded=Facturas depósitos não estão incluídos nesta versão com este módulo de contabilidade. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. -Pcg_version=Chart of accounts models +Pcg_version=Modelos de planos de contas Pcg_type=Pcg type Pcg_subtype=Pcg subtype InvoiceLinesToDispatch=Invoice lines to dispatch @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Cloná-la para o mês seguinte @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/pt_PT/cron.lang b/htdocs/langs/pt_PT/cron.lang index 1869af8b0b5..7338c883140 100644 --- a/htdocs/langs/pt_PT/cron.lang +++ b/htdocs/langs/pt_PT/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Tarefa CronNone=Nenhuma CronDtStart=Not before @@ -34,7 +34,7 @@ CronDtNextLaunch=Próximo execução CronDtLastLaunch=Start date of latest execution CronDtLastResult=End date of latest execution CronFrequency=Frequência -CronClass=Class +CronClass=Classe CronMethod=Método CronModule=Módulo CronNoJobs=Nenhumas tarefas registadas @@ -46,10 +46,10 @@ CronEach=Every JobFinished=Terafa lançada e concluída #Page card CronAdd= Adicionar tarefas -CronEvery=Execute job each +CronEvery=Executar cada trabalho CronObject=Instância/Objeto para criar CronArgs=Parâmetros -CronSaveSucess=Save successfully +CronSaveSucess=Guardado com sucesso CronNote=Comentário CronFieldMandatory=Os campos %s são obrigatórios CronErrEndDateStartDt=A data de fim não pode ser anterior à data de início @@ -57,18 +57,18 @@ CronStatusActiveBtn=Activar CronStatusInactiveBtn=Desactivar CronTaskInactive=Esta tarefa está desactivada CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=De # Info # Common -CronType=Job type +CronType=Tipo de trabalho CronType_method=Call method of a Dolibarr Class CronType_command=Shell command CronCannotLoadClass=Cannot load class %s or object %s @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang index 6a885acb6fa..055b4c07850 100644 --- a/htdocs/langs/pt_PT/errors.lang +++ b/htdocs/langs/pt_PT/errors.lang @@ -7,17 +7,19 @@ ErrorButCommitIsDone=Errors found but we validate despite this ErrorBadEMail=EMail %s é errado ErrorBadUrl=Url %s é errado ErrorBadValueForParamNotAString=Bad value for your parameter. It appends generally when translation is missing. -ErrorLoginAlreadyExists=O login %s já existe. +ErrorLoginAlreadyExists=A sessão %s já existe. ErrorGroupAlreadyExists=O grupo %s já existe. ErrorRecordNotFound=Registro não foi encontrado. ErrorFailToCopyFile=Falha ao copiar "%s" arquivo para "%s". ErrorFailToCopyDir=Failed to copy directory '%s' into '%s'. ErrorFailToRenameFile=Falha ao renomear "%s" arquivo para "%s". -ErrorFailToDeleteFile=Erro à eliminar o Ficheiro '%s'. -ErrorFailToCreateFile=Erro ao criar o ficheiro '' +ErrorFailToDeleteFile=A remoção do ficheiro '%s' falhou. +ErrorFailToCreateFile=A criação do ficheiro ' falhou'. ErrorFailToRenameDir=Erro à renomear a pasta '%s' a '%s'. ErrorFailToCreateDir=Erro ao criar a pasta '%s' ErrorFailToDeleteDir=Erro à eliminar a pasta '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Este contacto já está definido como contacto para este tipo. ErrorCashAccountAcceptsOnlyCashMoney=Esta conta bancaria é de tipo Caixa e só aceita o método de pagamento de tipo especie. ErrorFromToAccountsMustDiffers=A conta origem e destino devem ser diferentes. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Impossivel escrever na pasta %s ErrorFoundBadEmailInFile=Encontrada sintaxis incorrecta em email em %s linhas em Ficheiro (Exemplo linha %s com email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Não se indicaram alguns campos obrigatórios +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Erro na criação de uma pasta. Verifique se o usuário do servidor Web tem acesso de escrita aos documentos Dolibarr. Se o parâmetro safe_mode está ativo no PHP, Verifique se os arquivos php do Dolibarr são da propriedade do usuário do servidor web. ErrorNoMailDefinedForThisUser=E-Mail não definido para este utilizador ErrorFeatureNeedJavascript=Esta Funcionalidade precisa de javascript activo para funcionar. Modifique em configuração->ambiente. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Conta de usuário utilizada para executar %s servidor web não tem permissão para que ErrorNoActivatedBarcode=Nenhum tipo de código de barras ativado ErrUnzipFails=Falha ao extrair %s com o ZipArchive -ErrNoZipEngine=Não existe nenhum mecanismo para extrair o ficheiro %s neste PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=O ficheiro %s deve ser um pacote Dolibarr no formato zip ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=O PHP CURL não está instalado, isto é essencial para comunicar com o Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index 455ab4e39a8..a3f3d656336 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parâmetro %s não definido ErrorUnknown=Erro desconhecido ErrorSQL=Erro de SQL ErrorLogoFileNotFound=O ficheiro logo '%s' não se encontra -ErrorGoToGlobalSetup=Ir á configuração ' Empresa/Instituição ' para corrigir +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Ir á configuração do módulo para corrigir ErrorFailedToSendMail=Erro ao envio do e-mail (emissor=%s, destinatário=%s) ErrorFileNotUploaded=Não foi possivel transferir o ficheiro @@ -153,6 +153,7 @@ Edit=Editar Validate=Validar ValidateAndApprove=Validar e Aprovar ToValidate=Para validar +NotValidated=Not validated Save=Guardar SaveAs=Guardar Como TestConnection=Teste a ligação @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Função aplicativo não desconetado com modo de aut Connection=Ligação Setup=Configuração Alert=Alerta +MenuWarnings=Alertas Previous=Anterior Next=Seguinte Cards=Fichas @@ -308,6 +310,7 @@ Copy=Copiar Paste=Colar Default=Predefinição DefaultValue=Valor Predefinido +DefaultValues=Default values Price=Preço UnitPrice=Preço Unitário UnitPriceHT=Preço Base (base) @@ -363,7 +366,8 @@ VATRate=Taxa IVA Average=Média Sum=Soma Delta=Divergencia -Module=Módulo +Module=Module/Application +Modules=Modules/Applications Option=Opção List=Lista FullList=Lista Completa @@ -387,7 +391,7 @@ ActionRunningNotStarted=Não Iniciado ActionRunningShort=In progress ActionDoneShort=Terminado ActionUncomplete=Incompleta -CompanyFoundation=Empresa/Fundação +CompanyFoundation=Empresa/Organização ContactsForCompany=Contactos para este terceiro ContactsAddressesForCompany=Contactos/moradas para este terceiro AddressesForCompany=Moradas para este terceiro @@ -405,8 +409,9 @@ Generate=Gerar Duration=Duração TotalDuration=Duração total Summary=Resumo -DolibarrStateBoard=Estatísticas -DolibarrWorkBoard=Indicadores de Trabalho +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Disponível NotYetAvailable=Ainda não disponivel NotAvailable=Não disponivel @@ -434,7 +439,7 @@ Reportings=Relatórios Draft=Rascunho Drafts=Rascunhos Validated=Validado -Opened=Aberto +Opened=Abrir New=Novo Discount=Desconto Unknown=Desconhecido @@ -453,6 +458,7 @@ NextStep=Passo Seguinte Datas=Dados None=Nenhum NoneF=Nenhuma +NoneOrSeveral=None or several Late=Atraso LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Foto @@ -461,7 +467,7 @@ AddPhoto=Adicionar foto DeletePicture=Apagar Imagem ConfirmDeletePicture=Confirmar eliminação da imagem? Login=Iniciar Sessão -CurrentLogin=Login actual +CurrentLogin=Sessão atual EnterLoginDetail=Enter login details January=Janeiro February=Fevereiro @@ -606,7 +612,8 @@ PartialWoman=Parcial TotalWoman=Total NeverReceived=Nunca Recebido Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=Pode alterar estes valores no menu configuração->dicionários +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Cor Documents=Documentos @@ -642,6 +649,7 @@ FreeLineOfType=Entrada livre do tipo CloneMainAttributes=Copiar objeto com os seus atributos principais PDFMerge=PDF Merge Merge=Junção +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Visualizar página para impressão área de conteúdo principal MenuManager=Gestão do menu WarningYouAreInMaintenanceMode=Atenção, você está em um modo de manutenção, tão somente %s login é permitido o uso de aplicativos no momento. @@ -692,7 +700,7 @@ ByMonthYear=Por mês / ano ByYear=por ano ByMonth=por mês ByDay=Por dia -BySalesRepresentative=Ao representante de vendas +BySalesRepresentative=Por representante de vendas LinkedToSpecificUsers=Associado ao contacto de um utilizador NoResults=Sem resultados AdminTools=Admin tools @@ -708,6 +716,7 @@ from=Emissor toward=relativamente a Access=Acesso SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C para copiar SaveUploadedFileWithMask=Guardar o ficheiro no servidor com o nome "%s" (caso contrário "%s") OriginFileName=Nome do ficheiro original @@ -718,7 +727,7 @@ ViewPrivateNote=Ver notas XMoreLines=%s linhas(s) ocultas PublicUrl=URL público AddBox=Adicionar Caixa -SelectElementAndClickRefresh=Selecione um elemento e actualize a pagina +SelectElementAndClick=Select an element and click %s PrintFile=Imprimir Ficheiro %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vá Início - Configurar - Empresa para alterar o logótipo ou vá a Início - Configurar - Exibir para ocultar. @@ -734,8 +743,8 @@ Hello=Olá Sincerely=Sincerely DeleteLine=Apagar a linha ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendario GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Ano Fiscal +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Segunda-feira Tuesday=Terça-feira @@ -806,9 +824,9 @@ SearchIntoUsers=Utilizadores SearchIntoProductsOrServices=Products or services SearchIntoProjects=Projetos SearchIntoTasks=Tarefas -SearchIntoCustomerInvoices=Customer invoices -SearchIntoSupplierInvoices=Supplier invoices -SearchIntoCustomerOrders=Customer orders +SearchIntoCustomerInvoices=Faturas de Clientes +SearchIntoSupplierInvoices=Faturas de Fornecedores +SearchIntoCustomerOrders=Encomendas de clientes SearchIntoSupplierOrders=Supplier orders SearchIntoCustomerProposals=Customer proposals SearchIntoSupplierProposals=Supplier proposals @@ -817,5 +835,3 @@ SearchIntoContracts=contractos SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Relatórios de despesas SearchIntoLeaves=Licenças - -BulkActions=Bulk actions diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index dd9a9eee46e..75f0feb81e6 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Data de Nascimento BirthdayAlertOn=Alerta de aniversário activo BirthdayAlertOff=Alerta aniversário inativo +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Validação Ficha Intervenção Notify_FICHINTER_SENTBYMAIL=Intervenções enviadas por correio @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Este é um email de teste (o teste de palavra deve PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -141,25 +155,25 @@ SizeUnitfoot=pé SizeUnitpoint=ponto BugTracker=Incidencias SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. -BackToLoginPage=Voltar e a página de ligação +BackToLoginPage=Voltar à página de iniciar a sessão AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. ProfIdShortDesc=Prof Id %s é uma informação dePendente do país do Terceiro.
Por Exemplo, para o país %s, é o código %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Estatísticas em número de unidades de produto/serviço -StatsByNumberOfEntities=Estatísticas em número de identidadees referentes -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Intervenção %s validados EMailTextInvoiceValidated=Factura %s validados diff --git a/htdocs/langs/pt_PT/projects.lang b/htdocs/langs/pt_PT/projects.lang index 0e79a52bfed..d1b6fb71060 100644 --- a/htdocs/langs/pt_PT/projects.lang +++ b/htdocs/langs/pt_PT/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Área de Projetos ProjectStatus=Estado do projeto SharedProject=Toda a Gente PrivateProject=contatos do Projeto +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Todos os Projetos MyProjectsDesc=Esta visualização está limitada a projetos onde é um contacto para (seja qual for o tipo). ProjectsPublicDesc=Esta visualização apresenta todos os projetos que está autorizado a ler. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Esta visualização apresenta todos os projetos e tarefas (as suas per AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Novo Projeto AddProject=Criar Projeto DeleteAProject=Apagar um Projeto DeleteATask=Apagar uma Tarefa ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Projetos abertos -OpenedTasks=Tarefas abertas -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Mostrar Projeto SetProject=Definir Projeto NoProject=Nenhum projeto definido ou possuído NbOfProjects=Nr. de Projetos +NbOfTasks=Nb of tasks TimeSpent=Tempo Dispendido TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Tempo despendido nas tarefas TaskTimeUser=Utilizador TaskTimeNote=Nota TaskTimeDate=Data -TasksOnOpenedProject=Tarefas nos projetos abertos +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Carga de trabalho não definida -NewTimeSpent=Novo Tempo Dispendido +NewTimeSpent=Tempos Dispendidos MyTimeSpent=Meu Tempo Dispendido Tasks=Tarefas Task=Tarefa @@ -59,6 +64,7 @@ TaskDescription=Descrição da tarefa NewTask=Nova Tarefa AddTask=Criar Tarefa AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Atividade Activities=Tarefas/Atividades MyActivities=As Minhas Tarefas/Atividades @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Lista de Contratos Associados ao Projeto +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lista de intervenções associadas ao projeto ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=contatos do Projeto ActionsOnProject=Ações sobre o projeto YouAreNotContactOfProject=Não é um contato deste projeto privado +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Excluir o tempo gasto ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Ver também as tarefas não me atribuidas @@ -110,7 +118,7 @@ TaskRessourceLinks=Recursos ProjectsDedicatedToThisThirdParty=Projetos dedicados a este terceiro NoTasks=Não existem tarefas para este projeto LinkedToAnotherCompany=Vinculado a Terceiros -TaskIsNotAffectedToYou=Tarefas que não lhe foram atribuidas +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Tempo dispensado está vazio ThisWillAlsoRemoveTasks=Esta ação também vai excluir todas as tarefas do projeto (%s tarefas no momento) e todas as entradas de tempo dispensadas. IfNeedToUseOhterObjectKeepEmpty=Caso alguns objetos (fatura, encomenda, ...), pertencentes a um terceiro, deve estar vinculado ao projeto para criar, manter este vazio para ter o projeto sendo multi-terceiros. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projetos com este utilizador como contacto TasksWithThisUserAsContact=Tarefas atribuídas a este utilizador ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Atribuir ProjectOverview=Resumo ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Apenas oportunidades -OpenedOpportunitiesShort=Oportunidades abertas +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 1e898fa8f06..4c6f707faec 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Contabilitate AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add un cont contabil AccountAccounting=Cont contabil AccountAccountingShort=Cont +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Cartea Mare +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Sold cont CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Jurnal vânzări @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Număr nota contabila TransactionNumShort=Num. transaction -AccountingCategory=Categorie Contabilitate +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Jurnal Bancă ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debitul și creditul nu pot avea o valoare, în același timp, - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Lista conturilor contabile Pcgtype=Clasa contului -Pcgsubtype=Sub Clasa contului +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total Marje vânzări @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Eroare, nu puteți șterge acest cont contabil, deoarece este folosit MvtNotCorrectlyBalanced=Miscare incorect efectuata . Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Aplica categorii bulk AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Cod +Nature=Personalitate juridică +AccountingJournalType1=Various operation +AccountingJournalType2=Vânzări +AccountingJournalType3=Achiziţii +AccountingJournalType4=Banca +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exporturi @@ -211,6 +231,7 @@ Modelcsv_ciel=Export către Sage Ciel Compta sau Compta Evolution Modelcsv_quadratus=Export către Quadratus QuadraCompta Modelcsv_ebp=Export către EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculat Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=Formatul exportat nu este suportat in aceasta pagina BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 21d4ad84942..66416440fd3 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Utilizatori interni ExternalUsers=Utilizatori externi GUISetup=Afişare SetupArea=CONFIGURARE +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formular pentru testarear încărcării de fişiere (în funcţie de configurare) IfModuleEnabled=Notă: Da este folositor numai dacă modul %s este activat RemoveLock=Eliminaţi fişierul %s dacă acesta există, pentru a permite utilizarea instrumentelor de actualizare. @@ -85,7 +86,7 @@ Mask=Masca NextValue=Următoarea valoare NextValueForInvoices=Urmatoarea valoare (facturi) NextValueForCreditNotes=Urmatoarea valoare (credit note) -NextValueForDeposit=Urmatoarea Valoare() +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Urmatoarea valoare(înlocuiri) MustBeLowerThanPHPLimit=Notă: PHP limitează fiecare upload ladimensiunea de %s %s chiar dacă valoarea acestui parametru este NoMaxSizeByPHPLimit=Notă: Nicio limită setată în configuraţia dvs. PHP @@ -103,7 +104,7 @@ MenuIdParent=ID Meniu părinte DetailMenuIdParent=ID-ul meniului părinte (0 pentru top meniu ) DetailPosition=Sortează numărul meniu pentru a defini poziţia AllMenus=Toate -NotConfigured=Modul neconfigurat +NotConfigured=Module/Application not configured Active=Activ SetupShort=Setări OtherOptions=Alte opţiuni @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Separator mii Destination=Destinaţii IdModule=ID Modul IdPermissions=ID Permisiuni -Modules=Module LanguageBrowserParameter=Parametru %s LocalisationDolibarrParameters=Parametrii Localizare ClientTZ=Time Zone client (utilizator) @@ -123,7 +123,8 @@ PHPTZ=Time Zone Server PHP DaylingSavingTime=Ora de vară (utilizator) CurrentHour=Timp PHP (server) CurrentSessionTimeOut=Sesiunea curentă timeout -YouCanEditPHPTZ=Pentru a seta un alt fus orar PHP (nu este obligatoriu), aveți posibilitatea să încercați să adăugați la fișierul .htacces cu o linie de genul acesta"SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgeturi MaxNbOfLinesForBoxes=Număr maxim de linii pentru widgeturi @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permisiuni BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Numai elementele din module activate sunt afişate. -ModulesDesc=Modulele Dolibarr definesc care funcționalitatea este activată în software. Unele module necesită permisiuni pe care trebuie să le acordați utilizatorilor, după activarea modulului. Faceți clic pe butonul de pornire/oprire pentru a activa un modul/caracteristică. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Puteți descărca mai multe module de pe site-uri externe de pe Internet ... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Baza de date parola criptat în conf.php InstrucToEncodePass=Pentru a fi parola codificată în dosarul conf.php, înlocuiţi linia
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protecţie a generat pdf (nu recommandd, pauzele de masă PDF Generation) -ProtectAndEncryptPdfFilesDesc=De protecţie a unui document PDF păstrează disponibil pentru a citi şi de a imprima cu orice browser PDF. Cu toate acestea, editarea şi copierea nu este posibil acum. Reţineţi că utilizarea acestei funcţii face construirea unui globale cumulate pdf nu de lucru (cum ar fi facturile unpaid). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funcţionalitate DolibarrLicense=Licenţa Developpers=Dezvoltatori / colaboratori @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr demo online OfficialMarketPlace=Oficial loc pe piaţă pentru modulelor externe / addons OfficialWebHostingService=Referinţă Servicii de web hosting (Cloud hosting) ReferencedPreferredPartners=Parteneri preferati -OtherResources=Alte Resurse +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Pentru utilizator sau developer documentaţia (doc, FAQs ...),
aruncăm o privire la Dolibarr Wiki:
%s ForAnswersSeeForum=Pentru orice alte întrebări / ajutor, se poate utiliza Dolibarr forum:
%s HelpCenterDesc1=Această zonă vă poate ajuta să obţineţi un suport de Ajutor de servicii pe Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Caracteristicã nu sunt disponibile pe Unix, cum ar f SubmitTranslation=Dacă traducerea este incompletă sau găsiți erori, puteți corecta prin editarea fișierului în directorul langs/%s și trimite schimbările la www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Configurare Modul -ModulesSetup=Configurare Module +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistem ModuleFamilyCrm=Clientul Ressource Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr versiunea curentă CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Ultima versiune stabilă LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=Puteți introduce orice mască de numerotare. În această mască, ar putea fi folosit următoarele etichete:
{000000} corespunde unui număr care va fi incrementat pe fiecare% s. Introduceți cât mai multe zerouri ca lungimea dorită a contra. Contorul va fi completat cu zerouri la stânga, în scopul de a avea cât mai multe zerouri ca masca.
{000000} +000 fel ca și anterior, dar o compensare corespunzător cu numărul din dreapta semnului + se aplică începând cu prima% s.
{000000 @ x} fel ca și anterior, dar contorul este resetat la zero atunci când se ajunge la o lună x (x între 1 și 12, sau 0 pentru a folosi primele luni ale anului fiscal definite în configurația dvs., sau 99 pentru a reseta la zero în fiecare lună ). Dacă această opțiune este folosită și x este 2 sau mai mare, atunci secvența {aa} {mm} sau {AAAA} {mm} este de asemenea necesară.
{Dd} zi (01 la 31).
{Mm} luni (01 la 12).
{AA}, {AAAA} sau {y} an peste 2, 4 sau 1 numere.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Toate celelalte caractere în masca va rămâne intactă.
Spaţiile nu sunt permise.
-GenericMaskCodes4a=Exemplu pe 99th %s de-a treia parte TheCompany făcut 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Exemplu de la o terţă parte a creat pe 2007-03-01:
GenericMaskCodes4c=Examplu pe produs creat pe 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} va daABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX va da 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Întoarceţi-vă un număr de personalizabil definite în conformitate cu o masca. ServerAvailableOnIPOrPort=Server este disponibil la adresa %s pe portul %s ServerNotAvailableOnIPOrPort=Serverul nu este disponibil la adresa %s pe portul %s @@ -369,19 +375,21 @@ Int=Întreg Float=Float DateAndTime=Data şi ora Unique=Unic -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Preţ ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select Listă ExtrafieldSelectList = Select din tabel -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Parolă -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio buton -ExtrafieldCheckBoxFromList= Checkbox din tabel +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link către un obiect +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Lista de parametri trebuie să fie de tip cheie, valoare

pentru exemplul:
1, valoare1
2, valoare2
3, value3
... ExtrafieldParamHelpradio=Lista de parametri trebuie să fie de tip cheie, valoare

pentru exemplul:
1, valoare1
2, valoare2
3, value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Câmp +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Utilizatori & grupuri Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Facturi şi note de credit "de management pentru clienţi. Facturi Module40Name=Furnizori Module40Desc=Managementul Furnizorilor şi aprovizionării (comenzi si facturi) Module42Name=Loguri -Module42Desc=Jurnalizarea facilităţi (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editori Module49Desc=Managementul Editorilor Module50Name=Produse @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integrare Module500Name=Cheltuieli speciale Module500Desc=Managementul cheltuielilor speciale (impozite, taxe sociale sau fiscale, dividende) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Credit Module520Desc=Gestionarea creditelor Module600Name=Notificări @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP conversii Maxmind capacităţile Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Managementul resurselor umane +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-societate Module5000Desc=Vă permite să administraţi mai multe companii Module6000Name=Flux de lucru @@ -591,7 +615,7 @@ Permission32=Creare / Modificare produse / servicii Permission34=Ştergere produse / servicii Permission36=Exportul de produse / servicii Permission38=Exportul de produse -Permission41=Citește proiecte și sarcini (proiecte comune și proiecte la care sunt persoana de contact). Se poate introduce, de asemenea, timpul consumat cu privire la sarcinile atribuite (pontajul) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Ştergere proiecte Permission45=Export proiecte @@ -844,12 +868,14 @@ DictionaryOrderMethods=Metode de comandă DictionarySource=Originea ofertei / comenzi DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Model pentru plan de conturi +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Șabloane e-mailuri DictionaryUnits=Unităţi DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Tipuri concedii DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup salvate +SetupNotSaved=Setup not saved BackToModuleList=Inapoi la lista de module BackToDictionaryList=Inapoi la lista de dicţionare VATManagement=TVA-ul de management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver de tip SummarySystem=Sistemul de informaţii rezumat SummaryConst=Lista tuturor Dolibarr setarea parametrilor -MenuCompanySetup=Societatea/ Fundaţia +MenuCompanySetup=Company/Organisation DefaultMenuManager= Manager meniul Standard DefaultMenuSmartphoneManager=Manager meniul Smartphone Skin=Tema vizuală @@ -931,12 +957,14 @@ DefaultMaxSizeList=Lungime max implicită pentru lista DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Mesajul zilei MessageLogin=Mesaj pagina login +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Formular de căutare permanent in meniu din stânga DefaultLanguage=Limba folosita implicit (cod limba) EnableMultilangInterface=Activaţi multilingv interfaţă EnableShowLogo=Afişare logo în meniul stânga -CompanyInfo=Companie / fundaţie informaţii -CompanyIds=Companie / fundaţie identităţi +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Nume CompanyAddress=Adresă CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Toleranta întârziere (în zile) înainte de alertă Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Toleranta întârziere (în zile) înainte de alertă pentru cecuri de depozit pentru a face Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=\nZona de configurare este pentru parametrii de configurare inițiali înainte de a începe să se utilizeze Dolibarr. -SetupDescription2=Cele mai importante două etape de configurare sunt primele două din meniul de setare din partea stângă: pagina de configurare pentru Companie/fundație și pagina de configurare a Modulelor: -SetupDescription3=Parametrii din meniul Setup -> Companie / fundație sunt necesari deoarece datele transmise sunt utilizate pe ecranele Dolibarr și pentru a personaliza comportamentul implicit al software-ului (pentru caracteristicile legate de țară, de exemplu) . -SetupDescription4=Parametrii din meniul Configurare -> Module sunt necesari, deoarece Dolibarr nu este un ERP/CRM monolitic, ci o colecție de mai multe module, toate mai mult sau mai puțin independente. Noile caracteristici vor fi adăugate meniurilor pentru fiecare modul pe care îl veți activa. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Alte meniul intrări gestiona parametri opţionali. LogEvents=Audit de securitate evenimente Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Lista de evenimente Dolibarr de securitate SecurityEventsPurged=Evenimentelor de securitate epurate LogEventDesc=Puteţi activa jurnalul de evenimente de securitate Dolibarr aici. Administratorii pot vedea apoi conţinutul său prin meniul System Tools - Audit. Atenţie, această caracteristică poate consuma o cantitate mare de date în baza de date. -AreaForAdminOnly=Aceste caracteristici pot fi utilizate numai de către administratorul de utilizatori. Administrator caracteristici şi pentru a ajuta sunt identificate în Dolibarr de următoarele picto: +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistemul de informare este diverse informaţii tehnice ai citit doar în modul şi vizibil doar pentru administratori. SystemAreaForAdminOnly=Această zonă este disponibil numai pentru utilizatorii de administrator. Nici una din Dolibarr permisiunile pot reduce această limită. CompanyFundationDesc=Editați pe această pagină toate informațiile cunoscute ale companiei sau fundației pe care trebuie să o gestionați (Pentru aceasta, faceți clic pe "Modificare" sau "Salvare", butonul din partea de jos a paginii) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Numărul total al modulelor funcţionale activate: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Trebuie activat cel puţin 1 modul ClassNotFoundIntoPathWarning=Clasa %s negăsită în calea PHP YesInSummer=Da în vară -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Stocarea sesiune criptată prin Suhosin ConditionIsCurrently=Condiția este momentan %s YouUseBestDriver=Utilizaţi driverul %s care este cel mai bun driver disponibil acum. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professional ID unic MustBeUnique=Trebuie sa fie unic? MustBeMandatory=Este obligatorie crearea unor terțe părți? MustBeInvoiceMandatory=Este obligatorie validarea facturilor? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=O export se leagă de format %s este disponibil la următoarea adresă: %s ##### Invoices ##### BillsSetup=Facturi modul de configurare BillsNumberingModule=Facturi şi note de credit, modul de numerotare BillsPDFModules=Factura modele de documente +PaymentsPDFModules=Payment documents models CreditNote=Nota de credit CreditNotes=Credit note ForceInvoiceDate=Vigoare la data facturii de validare data @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Fișierele de tip %s nu sunt puse în cache de serverul HTT FilesOfTypeCompressed=Fișierele de tip %s sunt comprimate de serverul HTTP FilesOfTypeNotCompressed=Fișierele de tip %s nu sunt comprimate de serverul HTTP CacheByServer=Cache pe server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache pe browser CompressionOfResources=Compresie a răspunsului HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=O astfel de detectare automată nu este posibilă cu browserele curente +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produse modul de configurare ServiceSetup=Servicii de modul de configurare @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Data facturii utilizat Buy=Cumpăra Sell=Vinde InvoiceDateUsed=Data facturii utilizat -YourCompanyDoesNotUseVAT=Compania dvs. a fost definit de a nu folosi TVA (Home - Setup - Companie / fundaţiei), deci nu există opţiuni pentru a TVA-ului de instalare. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Codul de Contabilitate AccountancyCodeSell=Cont vânzare. cod AccountancyCodeBuy=Cont cumpărare. cod @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Setați automat acest statut în filtrul de căutar AGENDA_DEFAULT_VIEW=Care tab doriţi să deschideţi când selectaţi meniul Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click pentru a Dial modul setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises
__PHONETO__ qui sera remplac� par le t�l�phone de l'appel�
__PHONEFROM__ qui sera remplac� par le t�l�phone de l'appelant (le votre)
__LOGIN__ qui sera remplac� par votre login clicktodial (d�fini sur votre fiche utilisateur)
__PASS__ qui sera remplac� par votre mot de passe clicktodial (d�fini sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=Clienții SOAP trebuie să își trimită cererile la punctul final D ApiSetup=Configurare Modul API ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Cheie pentru API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General, pentru afişaj BankOrderES=Spaniol BankOrderESDesc=Spaniolă de afişare pentru ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-societate modul setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Culoare titlu pagina LinkColor=Culoare link-uri -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Culoare Background TopMenuBackgroundColor=Culoare Background pentru Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ro_RO/compta.lang b/htdocs/langs/ro_RO/compta.lang index dda1589b5c3..607c95b12da 100644 --- a/htdocs/langs/ro_RO/compta.lang +++ b/htdocs/langs/ro_RO/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Sumele prezentate aici sunt calculate fol Param=Setări RemainingAmountPayment=Suma rămasă de plată: Account=Cont -Accountparent=Rădăcina contului -Accountsparent=Rădăcina conturilor +Accountparent=Parent account +Accountsparent=Parent accounts Income=Venituri Outcome=Cheltuieli ReportInOut=Venituri / Rezultate @@ -56,6 +56,7 @@ MenuTaxAndDividends=Impozite şi dividende MenuSocialContributions=Taxe sociale / fiscale MenuNewSocialContribution=Tax social/fiscal nou NewSocialContribution=Taxa sociala/fiscala noua +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Taxe sociale / fiscale de plata AccountancyTreasuryArea=Contabilitate / Trezorerie NewPayment=Plată nouă @@ -134,8 +135,8 @@ RulesResultDue=- Include facturi deschise, cheltuieli, TVA, donații, indiferent RulesResultInOut=- Include plățile efective pe facturi, cheltuieli,TVA și salarii.
- Se ia în calcul data plăţii facturilor, cheltuielilor, TVA-ului și salariilor . RulesCADue=-Include facturile scadente de la clienți indiferent dacă sunt încasate sau nu.
-Se ia în calcul data de validare a acestor facturi
RulesCAIn=- Ea include toate plăţile efective a facturilor primite de la clienti.
- Se bazează pe data de plată a acestor facturi
-DepositsAreNotIncluded=- Facturile de depozit nu sunt incluse -DepositsAreIncluded=- Facturile de depozit sunt incluse +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Raport de terţă parte IRPF LT1ReportByCustomersInInputOutputModeES=Raport pe terţ RE VATReport=Raport TVA @@ -169,7 +170,7 @@ DescSellsJournal=Jurnalul de vânzări DescPurchasesJournal=Jurnalul de cumpărări InvoiceRef=Factură ref. CodeNotDef=Nedefinit -WarningDepositsNotIncluded=Facturile în avans nu sunt incluse in aceasta versiune cu acest modul de contabilitate. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Termenul de plată nu poate fi mai mic decât data obiectului. Pcg_version=Chart of accounts models Pcg_type=Pcg tip @@ -189,8 +190,10 @@ AccountancyJournal=Jurnal cod contabilitate ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Cloneaza o taxa sociala / fiscala ConfirmCloneTax= Confirmare duplicare plată taxă. CloneTaxForNextMonth=Clonaţi-o pentru luna următoare @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Taxe sociale / fiscale ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound= Eroare: cont bancar nu a fost găsit FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ro_RO/cron.lang b/htdocs/langs/ro_RO/cron.lang index 5c69dd88a17..58b98ed116a 100644 --- a/htdocs/langs/ro_RO/cron.lang +++ b/htdocs/langs/ro_RO/cron.lang @@ -25,7 +25,7 @@ CronDelete=Şterge Joburi programate CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Modul de joburi programate permite să se execute job-uri care au fost planificate +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=Niciunul CronDtStart=Dată începere @@ -57,12 +57,12 @@ CronStatusActiveBtn=Activare CronStatusInactiveBtn=Dezactivare CronTaskInactive=Acest post este dezactivat CronId=Id -CronClassFile=Clase (filename.class.php) -CronModuleHelp=Numele directorului modulului Dolibarr( de asemenea lucrează cu module externe Dolibarr).
De exemplu să aducă metoda de obiect Produs Dolibarr /htdocs/product/class/product.class.php,valoarea modulului este product -CronClassFileHelp=Numele fişierului de încărcat.
De exemplu să aducă metoda de obiect Produs Dolibarr htdocs/product/class/product.class.php, valoarea numelui fișierului de clasă este product.class.php -CronObjectHelp=Numele obiectului de încărcat.
De exemplu să aducă metoda de obiect Produs Dolibarr / htdocs / produse / clasă / product.class.php, valoarea numelui fișierului de clasă este Produs -CronMethodHelp=Metoda obiectului de încărcat.
De exemplu să aducă metoda de obiect Produs Dolibarr /htdocs/product/class/product.class.php, valoarea metodei este fecth -CronArgsHelp=Argumentele metodei .
De exemplu să aducă metoda obiect ului Produs Dolibarr /htdocs/product/class/product.class.php, valoarea parametrilor pot fi este 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Linia de comandă de sistem pentru a executa. CronCreateJob=Creare job programat CronFrom=De la @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Intrați în meniul ''Acasă - Module Instrument JobDisabled=Job dezactivat MakeLocalDatabaseDumpShort=Backup local baza de date MakeLocalDatabaseDump=Creare dump local baza de date -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ro_RO/errors.lang b/htdocs/langs/ro_RO/errors.lang index 8b6acb43154..14acf4124b3 100644 --- a/htdocs/langs/ro_RO/errors.lang +++ b/htdocs/langs/ro_RO/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Nu a reuşit să creeze fişierul " %s". ErrorFailToRenameDir=Nu a reuşit să redenumiţi directorul " %s" în " %s". ErrorFailToCreateDir=Nu a reuşit să crea directorul " %s". ErrorFailToDeleteDir=Esec pentru a şterge directorul " %s". +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Acest contact este deja definit ca persoană de contact pentru acest tip. ErrorCashAccountAcceptsOnlyCashMoney=Acest cont bancar este un cont de bani, aşa că acceptă plăţi de tip cash numai. ErrorFromToAccountsMustDiffers=Sursa obiective şi conturi bancare trebuie să fie diferite. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Nu a reuşit să scrie în directorul %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Found incorecte de email sintaxă pentru %s linii în fişier (de exemplu linia de e-mail cu %s= %s) ErrorUserCannotBeDelete=Utilizatorul nu poate fi şters. Poate fi asociat la o entitate Dolibarr. ErrorFieldsRequired=Unele campuri obligatorii nu au fost ocupate. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nu a reuşit să creeze un director. Verificaţi ca server Web utilizator are permisiuni pentru a scrie în directorul de Dolibarr documente. Dacă safe_mode parametru este activat pe această PHP, Dolibarr verifica faptul că fişierele PHP detine la server web utilizator (sau grup). ErrorNoMailDefinedForThisUser=Nu mail definite pentru acest utilizator ErrorFeatureNeedJavascript=Această caracteristică JavaScript trebuie activat pentru a fi la locul de muncă. Schimbare în acest setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Cantitatea pentru linia unei facturi cl ErrorWebServerUserHasNotPermission=Contul de utilizator %s folosite pentru a executa serverul de web nu are permisiunea, pentru că ErrorNoActivatedBarcode=Niciun tip de coduri de bare activat ErrUnzipFails=Eşec la dezarhivarea fişierului %s cu ZipArchive -ErrNoZipEngine=Niciun motor pentru dezarhivarea fișierului %s în acest PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Fșierul %s trebuie să fie un pachet zip Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURLnu este instalat, acest lucru este esențial pentru comunicarea cu Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Nicio varialbila globala selectata ErrorFieldMustBeANumeric=Campul %s trebuie sa fie o valoare numerica ErrorMandatoryParametersNotProvided= Parametrii obligatorii nu au fost furnizați ErrorOppStatusRequiredIfAmount=Stabiliți o sumă estimată pentru această oportunitate / lead. Astfel, trebuie să introduceți, de asemenea, stadiul său. +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definire greșită pentru Menu Array in descriptorul modulului (valoare greșită pentru cheia fk_menu) ErrorSavingChanges=A apărut o eroare la salvarea modificărilor ErrorWarehouseRequiredIntoShipmentLine=Depozitul este obligatoriu pe linie pentru livrare @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount= O parolă a fost trimisă către acest membru. Cu toate acestea, nu a fost creat nici un cont de utilizator. Astfel, această parolă este stocată, dar nu poate fi utilizată pentru autentificare. Poate fi utilizată de către un modul / interfată externă, dar dacă nu aveți nevoie să definiți un utilizator sau o parolă pentru un membru, puteți dezactiva opțiunea "Gestionați o conectare pentru fiecare membru" din modul de configurare membri. În cazul în care aveți nevoie să gestionați un utilizator, dar nu este nevoie de parolă, aveți posibilitatea să păstrați acest câmp gol pentru a evita acest avertisment. Notă: Adresa de e-mail poate fi utilizată ca utilizator la autentificare, în cazul în care membrul este legat de un utilizator. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Data plăţii(%s) este mai veche decât d WarningTooManyDataPleaseUseMoreFilters= Prea multe date (mai mult de %s linii). Folosiți mai multe filtre sau setați constanta %s la o limită superioară. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Utilizatorul-ul a fost modificat. Din motive de securitate, va trebui să vă conectați cu noul dvs. utilizator înainte de următoarea acțiune. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index d26d4baa38c..7d2a3ac264d 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametrul %s nedefinit ErrorUnknown=Eroare Necunoscută ErrorSQL=Eroare SQL ErrorLogoFileNotFound=Fișierul logo '% s' nu a fost găsit -ErrorGoToGlobalSetup=Mergeţi la Configurare "Societate / Fundație" pentru rezolvare +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Mergeţi la configurarea modulului pentru rezolvare ErrorFailedToSendMail=Nu se poate trimite e-mail (expeditor=% s, destinatar =%s) ErrorFileNotUploaded=Fișierul nu a fost încărcat. Verificați ca dimensiunea să nu depășească maximul permis, că spațiu pe disc este disponibil și că nu există deja un fișier cu același nume, în acest director. @@ -153,6 +153,7 @@ Edit=Editează Validate=Validează ValidateAndApprove=Validareaza si aproba ToValidate=De validat +NotValidated=Not validated Save=Salvează SaveAs=Salvează ca TestConnection=Test conexiune @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Nu există funcție de deconectare ce poate fi aplic Connection=Conexiune Setup=Setări Alert=Alerta +MenuWarnings=Alerte Previous=Precedent Next=Următor Cards=Fişe @@ -308,6 +310,7 @@ Copy=Copiază Paste=Lipeşte Default=Implicit DefaultValue=Valoare implicită +DefaultValues=Default values Price=Preţ UnitPrice=Preţ unitar UnitPriceHT=Preț unitar (net) @@ -363,7 +366,8 @@ VATRate=Taxa TVA Average=Medie Sum=Suma Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Opţiunea List=Lista FullList=Lista completă @@ -387,7 +391,7 @@ ActionRunningNotStarted=De realizat ActionRunningShort=In progress ActionDoneShort=Terminat ActionUncomplete=Incomplet -CompanyFoundation=Societate sau Instituţie +CompanyFoundation=Company/Organisation ContactsForCompany=Contacte pentru aceast terţ ContactsAddressesForCompany=Contacte pentru aceast terţ AddressesForCompany=Adrese pentru acest terţ @@ -405,8 +409,9 @@ Generate=Generează Duration=Durata TotalDuration=Durată totală Summary=Sumar -DolibarrStateBoard=Statistici -DolibarrWorkBoard=Sarcini Tablou de bord +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Disponibil NotYetAvailable=Nedisponibil încă NotAvailable=Nedisponibil @@ -453,6 +458,7 @@ NextStep=Etapa următoare Datas=Date None=Niciunul NoneF=Niciunul +NoneOrSeveral=None or several Late=Întârziat LateDesc=Durata care defineşte dacă o înregistrare este întârziată depinde de configurare. Contactaţi administratorul pentru a schimbă durata din Acasă - Setări - Alerte. Photo=Foto @@ -606,7 +612,8 @@ PartialWoman=Parţial TotalWoman=Total NeverReceived=Niciodată primit Canceled=Anulată -YouCanChangeValuesForThisListFromDictionarySetup=Se pot schimba valorile pentru această listă din meniul setări - dicționar +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Valoarea implicită pentru o nouă înregistrare se poate defini în configirarea modulului Color=Culoare Documents=Fişiere ataşate @@ -642,6 +649,7 @@ FreeLineOfType=Câmp liber de introdus CloneMainAttributes=Clonează obiect cu atributele sale principale PDFMerge=Îmbină PDF Merge=Îmbină +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Afişaţi pagina pentru imprimat în zona conţinutului principal MenuManager=Manager Meniu WarningYouAreInMaintenanceMode=Atenție, vă aflați în modul de întreținere, astfel încât numai %s este permis să utilizeze aplicația în acest moment. @@ -708,6 +716,7 @@ from=de la toward=spre Access=Acces SelectAction=Selectați acțiune +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Utilizați Ctrl + C pentru a copia în clipboard SaveUploadedFileWithMask=Salvați fișierul pe server cu numele "%s" (altfel"%s") OriginFileName=Nume fişier original @@ -718,7 +727,7 @@ ViewPrivateNote=Vezi notițe XMoreLines=%s linii(e) ascunse PublicUrl=URL Public AddBox=Adauga box -SelectElementAndClickRefresh=Selectează un element şi click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Printeaza Fisierul %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Mergi la Home - Setup - Company pentru a schimba logo - ul sau mergi la Home - Setup - Display pentru a ascunde. @@ -734,8 +743,8 @@ Hello=Salut Sincerely=Cu sinceritate DeleteLine=Şterge linie ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=Nici un PDF nu este disponibil pentru generarea documentului -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Zona pentru fişiere generate prin acţiuni în masă ShowTempMassFilesArea=Afişează zona pentru fişiere generate prin acţiuni în masă @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=An fiscal +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Luni Tuesday=Marţi @@ -817,5 +835,3 @@ SearchIntoContracts=Contracte SearchIntoCustomerShipments=Livrări Client SearchIntoExpenseReports=Rapoarte Cheltuieli SearchIntoLeaves=Concedii - -BulkActions=Bulk actions diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index be0572ae809..bcb29ececd8 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Data naştere DateToBirth=Data naşterii BirthdayAlertOn=ziua de nastere de alertă activă BirthdayAlertOff=ziua de nastere de alertă inactiv +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Adaugat contact la Interventie Notify_FICHINTER_VALIDATE=Validate intervenţie Notify_FICHINTER_SENTBYMAIL=Intervenţie trimisă prin mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Acesta este un e-mail de testare (test de cuvânt PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nVeţi găsi aici oferta comercială__PROPREF__\n\n__PERSONALIZED__Cu respect\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nVeţi găsi aici comanda __ORDERREF__\n\n__PERSONALIZED__Cu respect\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYVeţi găsi aici comanda noastră__ORDERREF__\n\n__PERSONALIZED__Cu respect\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVeţi găsi aici livrarea __SHIPPINGREF__\n\n__PERSONALIZED__Cu respect\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVeţi găsi aici intervenţia__FICHINTERREF__\n\n__PERSONALIZED__Cu respect\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id-ul %s
este una de informaţii în funcţie de ţară terţă parte.
De exemplu, pentru ţara %s, este codul %s. DolibarrDemo=Demo Dolibarr ERP / CRM -StatsByNumberOfUnits=Statistica în numărul de unităţi -StatsByNumberOfEntities=Statistica în număr de entităţi -NumberOfProposals=Numărul ofertelor pe ultimele 12 luni -NumberOfCustomerOrders=Număr comenzi clienţi pe ultimele 12 luni -NumberOfCustomerInvoices=Numărul facturilor clienţi pe ultimele 12 luni -NumberOfSupplierProposals=Număr oferte furnizor pe ultimele 12 luni -NumberOfSupplierOrders=Număr comenzi furnizor pe ultimele 12 luni -NumberOfSupplierInvoices=Număr facturi furnizor pe ultimele 12 luni -NumberOfUnitsProposals=Numărul de unităţi pe oferte în ultimele 12 luni -NumberOfUnitsCustomerOrders=Numărul de unităţi de pe facturile clienti pe ultimele 12 luni -NumberOfUnitsCustomerInvoices=Numărul de unităţi de pe facturile clienti pe ultimele 12 luni -NumberOfUnitsSupplierProposals=Numărul de unităţi pe oferte furnizori în ultimele 12 luni -NumberOfUnitsSupplierOrders=Numărul de unităţi de pe facturile furnizori pe ultimele 12 luni -NumberOfUnitsSupplierInvoices=Număr facturi furnizor pe ultimele 12 luni +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=O noua interventie %s ti- a fost atribuita EMailTextInterventionValidated=Intervenţia %s validată EMailTextInvoiceValidated=Factura %s validată diff --git a/htdocs/langs/ro_RO/paybox.lang b/htdocs/langs/ro_RO/paybox.lang index d8bef6b0be5..a003453de43 100644 --- a/htdocs/langs/ro_RO/paybox.lang +++ b/htdocs/langs/ro_RO/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail de confirmare de plată Creditor=Creditor PaymentCode=Cod Plata PayBoxDoPayment=Du-te la plată +ToPay=Emite plata YouWillBeRedirectedOnPayBox=Veţi fi redirecţionat pe pagina Paybox securizat la intrare ai card de credit Informatii Continue=Următorul ToOfferALinkForOnlinePayment=URL-ul pentru plata %s diff --git a/htdocs/langs/ro_RO/projects.lang b/htdocs/langs/ro_RO/projects.lang index b6f2f5e1326..8a515eb93f1 100644 --- a/htdocs/langs/ro_RO/projects.lang +++ b/htdocs/langs/ro_RO/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Statut Proiect SharedProject=Toată lumea PrivateProject=Contacte Proiect +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Toate proiectele MyProjectsDesc=Această vedere este limitată la proiecte sau sarcini pentru care sunteţi contact(indiferent de tip). ProjectsPublicDesc=Această vedere prezintă toate proiectele la care aveţi permisiunea să le citiţi. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Această vedere prezintă toate proiectele şi sarcinile (permisiuni d AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Proiect nou AddProject=Creare proiect DeleteAProject=Şterge proiect DeleteATask=Şterge task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Afişează proiect SetProject=Setare proiect NoProject=Niciun proiect definit sau responsabil NbOfProjects=Nr proiecte +NbOfTasks=Nb of tasks TimeSpent=Timp comsumat TimeSpentByYou=Timpul consumat da tine TimeSpentByUser=Timp consumat pe utilizator @@ -47,9 +52,9 @@ TaskTimeSpent=Timp consumat pe task TaskTimeUser=Utilizator TaskTimeNote=Nota TaskTimeDate=Data -TasksOnOpenedProject=Sarcini la proiectele deschise +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Volumul de muncă nu este definit -NewTimeSpent=Timp nou consumat +NewTimeSpent=Timpi consumaţi MyTimeSpent=Timpul meu consumat Tasks=Taskuri Task=Task @@ -59,6 +64,7 @@ TaskDescription=Descriere task NewTask=Task nou AddTask=Creare sarcină AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activitate Activities=Activităţi / Taskuri MyActivities=Activităţile / Taskurile mele @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Lista contracte asociate la proiect +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lista intervenţii asociate la proiectului ListExpenseReportsAssociatedProject=Lista rapoartelor cheltuieli asociate proiectului ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Contacte Proiect ActionsOnProject=Evenimente pe proiect YouAreNotContactOfProject=Nu sunteţi un contact al acestui proiect privat +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Ştergeţi timpul consumat ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Afişează, de asemenea, şi taskurile ce nu sunt atribuite mie @@ -110,7 +118,7 @@ TaskRessourceLinks=Resurse ProjectsDedicatedToThisThirdParty=Proiecte dedicate acestui terţ NoTasks=Nr sarcini pentru acest proiect LinkedToAnotherCompany=Legat de terţe părţi, alta -TaskIsNotAffectedToYou=Sarcină neatribuită ţie +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Timpul consumat nu este completat ThisWillAlsoRemoveTasks=Această acţiune va şterge, de asemenea, toate taskurile proiectului (%s ) la acest moment şitoţi timpii petrecuţi. IfNeedToUseOhterObjectKeepEmpty=Dacă unele obiecte (facturi, comenzi, ...), care aparţin altui terţ, trebuie să fie legate de proiect, pentru creare, menţine acest gol pentru a avea proiectul fiind multiterţi. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Intrare pe zi InputPerWeek=Intrare pe saptamana InputPerAction=Intrare pe actiune -TimeAlreadyRecorded=Timpul consumat deja înregistrat pentru această sarcină / zi și utilizator %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 174d88cdfd1..47149e160ea 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Добавить бухгалтерский счёт AccountAccounting=Бухгалтерский счёт AccountAccountingShort=Бухгалтерский счёт +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Главная книга +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Журнал продаж @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Журнал NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Дебит и кредит не могут иметь значения одновременно - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Список бухгалтерских счетов Pcgtype=Класс бухгалтерского счёта -Pcgsubtype=Подкласс бухгалтерского счёта +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Итоговая наценка на продажи @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Код +Nature=Природа +AccountingJournalType1=Various operation +AccountingJournalType2=Продажи +AccountingJournalType3=Покупки +AccountingJournalType4=Банк +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Экспорт @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index f0f43c7ccd5..343d31eef0b 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Внутренние пользователи ExternalUsers=Внешние пользователи GUISetup=Внешний вид SetupArea=Раздел настроек +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Форма для проверки загрузки файлов (в зависимости от настройки) IfModuleEnabled=Примечание: "Да" влияет только тогда, когда модуль %s включен RemoveLock=Удалить файл %s, (если он существует), чтобы позволить использование инструментов обновления. @@ -85,7 +86,7 @@ Mask=Маска NextValue=Следующее значение NextValueForInvoices=Следующее значение (счета-фактуры) NextValueForCreditNotes=Следующее значение (credit notes) -NextValueForDeposit=Следующее значение (депозиты) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Следующее значение (замены) MustBeLowerThanPHPLimit=Примечание: ваш PHP ограничивает размер загружаемого файла до %s %s независимо от значения этого параметра NoMaxSizeByPHPLimit=Примечание: в вашей конфигурации PHP установлено no limit @@ -103,7 +104,7 @@ MenuIdParent=ID родительского меню DetailMenuIdParent=ID родительского меню (EMPTY для верхнего меню) DetailPosition=Порядковый номер меню для определения позиции меню AllMenus=Все -NotConfigured=Модуль не настроен +NotConfigured=Module/Application not configured Active=Активная SetupShort=Настройка OtherOptions=Другие опции @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Разделитель разрядов Destination=Назначение IdModule=ID модуля IdPermissions=ID прав доступа -Modules=Модули LanguageBrowserParameter=Параметр %s LocalisationDolibarrParameters=Параметры локализации ClientTZ=Часовой пояс пользователя @@ -123,7 +123,8 @@ PHPTZ=Часовой пояс PHP сервера DaylingSavingTime=Летнее время (пользователь) CurrentHour=Время PHP (на PHP-сервере) CurrentSessionTimeOut=Тайм-аут текущей сессии -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Виджет Boxes=Виджеты MaxNbOfLinesForBoxes=Максимальное количество строк для виджетов @@ -142,7 +143,7 @@ PurgeAreaDesc=Эта страница позволяет вам удалить PurgeDeleteLogFile=Удалить файл с логами %s являющегося системным журналом Dolibarr (без риска потери данных) PurgeDeleteTemporaryFiles=Удалить все временные файлы (без риска потери данных) PurgeDeleteTemporaryFilesShort=Delete temporary files -PurgeDeleteAllFilesInDocumentsDir=Удалить все файлы в каталоге %s. Временные файлы, резервные копии базы данных, а также файлы, прикрепленные к элементам (контрагенты, счета-фактуры, ...) и загруженные в модуль ECM (модуль электронного документооборота) будут удалены. +PurgeDeleteAllFilesInDocumentsDir=Удалить все файлы в директории %s. Временные файлы, резервные копии базы данных, а также файлы, прикрепленные к элементам (контрагенты, счета-фактуры, ...) и загруженные в модуль электронного документооборота ECM будут удалены. PurgeRunNow=Очистить сейчас PurgeNothingToDelete=Нет директории или файла для удаления. PurgeNDirectoriesDeleted=Удалено %s файлов или каталогов. @@ -189,10 +190,10 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Права BoxesDesc=Виджеты компонентов отображают такую же информацию которую вы можете добавить к персонализированным страницам. Вы можете выбрать между показом виджета или не выбирая целевую страницу нажать "Активировать", или выбрать корзину для отключения. OnlyActiveElementsAreShown=Показаны только элементы из включенных модулей -ModulesDesc=Модули Dolibarr определяют какая функциональность будет доступна в программе. Так же модулям необходимы разрешения которые необходимо предоставить пользователям после включения модуля. Нажмите на on/off для включения или отключения модуля. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=В интернете вы можете найти больше модулей для загрузки... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Поиск внешних модулей... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, официальный магазин внешних модулей Dolibarr ERP / CRM DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Зашифровать пароль к базе InstrucToEncodePass=Чтобы поместить зашифрованный пароль в conf.php файл, замените строку
$dolibarr_main_db_pass ="..."
на
$dolibarr_main_db_pass"=crypted:%s" InstrucToClearPass=Чтобы поместить не зашифрованный пароль в conf.php файл, замените строку
$dolibarr_main_db_pass="crypted:..."
на
$dolibarr_main_db_pass="%s" ProtectAndEncryptPdfFiles=Защита создаваемых PDF файлов (НЕ РЕКОМЕНДУЕТСЯ при массовом создании PDF) -ProtectAndEncryptPdfFilesDesc=Защита PDF документа оставляет его доступным для чтения и печати PDF любым браузером. Вместе с тем, редактирование и копирование запрещается. Заметим, что из-за использования этой опции создание глобального аккумулированного PDF перестает работать (например неоплаченные счета-фактуры). +ProtectAndEncryptPdfFilesDesc=Защита документов PDF допускает чтение и распечатку любым приложением просмотра файлов PDF. Однако редактирование и копирование не возможно. Использование этой возможности не позволит глобальное объединение файлов PDF. Feature=Возможность DolibarrLicense=Лицензия Developpers=Разработчики / авторы @@ -224,7 +225,9 @@ OfficialDemo=Демонстрация возможностей Dolibarr в ин OfficialMarketPlace=Официальный магазин внешних модулей / дополнений OfficialWebHostingService=Рекомендуемые сервисы веб-хостинга (облачный хостинг) ReferencedPreferredPartners=Предпочитаемые партнёры -OtherResources=Другие ресурсы +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Для получения документации пользователя или разработчика (документация, часто задаваемые вопросы...),
посетите Dolibarr Wiki:
%s ForAnswersSeeForum=Для любых других вопросов / помощи, вы можете использовать форум Dolibarr:
%s HelpCenterDesc1=Этот раздел может помочь вам получить помощь службы поддержки по Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Функция недоступна на Unix под SubmitTranslation=Если перевод на этот язык не завершен или вы нашли ошибки, вы можете исправить их отредактировав файлы в папке langs/%s и отправив внесенные изменения на www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Настройка модуля -ModulesSetup=Настройка модулей +ModulesSetup=Modules/Application setup ModuleFamilyBase=Система ModuleFamilyCrm=Управление взаимоотношениями с клиентами (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -275,7 +278,7 @@ ModuleFamilyProducts=Управление продукцией (PM) ModuleFamilyHr=Управление персоналом (HR) ModuleFamilyProjects=Проекты / Совместная работа ModuleFamilyOther=Другое -ModuleFamilyTechnic=Инструменты для массовых модулей +ModuleFamilyTechnic=Много-модульные инструменты ModuleFamilyExperimental=Экспериментальные модули ModuleFamilyFinancial=Финансовые модули (Бухгалтерия / Казначейство) ModuleFamilyECM=Управление электронным содержимым (ECM) @@ -287,36 +290,39 @@ DoNotUseInProduction=Не используйте в производстве ThisIsProcessToFollow=Это шаги для процесса: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Шаг %s -FindPackageFromWebSite=Найдите пакет, который обеспечивает функции которые вы хотите (например, на официальном веб-сайте %s). -DownloadPackageFromWebSite=Скачайте пакет (например, на официальном веб-сайте %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +FindPackageFromWebSite=Поиск пакета, который обеспечивает функции которые вы хотите (например, на официальном веб-сайте %s). +DownloadPackageFromWebSite=Загрузка пакета (например, на официальном веб-сайте %s). +UnpackPackageInDolibarrRoot=Распаковка файлов пакета на сервере Dolibarr: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +SetupIsReadyForUse=Развертывание модуля завершено. Теперь необходимо включить и настроить модуль в вашей программе на странице настройки модуля: %s. +NotExistsDirect=Альтернативная корневая директория не задана.
+InfDirAlt=Начиная с 3-ей версии, можно определить альтернативный корневой каталог. Это позволяет вам хранить в специальном каталоге, плагины и настраиваемые шаблоны.
Просто создайте каталог в корне Dolibarr (например: custom).
+InfDirExample=
Затем укажите его в файле conf.php
\n$ dolibarr_main_url_root_alt = 'http://myserver/custom'
$ dolibarr_main_document_root_alt = '/путь/к/dolibarr/htdocs/Custom'
Если эти строки закомментированы с помощью «#», раскомментируйте их, удалив символ «#» чтобы включить их. YouCanSubmitFile=На этом шаге вы можете отправить пакет используя этот инструмент: Выберите файл модуля CurrentVersion=Текущая версия Dolibarr CallUpdatePage=Перейдите на страницу, где вы сможете обновить структуру базы данных и данные: %s. LastStableVersion=Последняя стабильная версия LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Сервер обновления недоступен +WithCounter=Manage a counter GenericMaskCodes=Вы можете ввести любую цифровую маску. В этой маске можно использовать следующие тэги:
{000000} соответствующий номер будет увеличиваться для каждого %s. Введите столько нулей сколько соответствует длине счетчика. Счетчик будет заполнен слева нулями в таком количестве как указано в маске.
{000000+000} как предыдущая, но со смещением на количество справа + знаки начиная с первого %s.
{000000@x} то же что и предыдущее, но счетчик будет обнулен когда наступит месяц Х (x может быть от 1 до 12, or 0 для использования заранее или налоговый год определен в вашей конфигурации, или 99 для обнуления каждый месяц). Если эта опция используется и х равен 2 или более чем последовательность {yy}{mm} или {yyyy}{mm} это тоже необходимо.
{dd} день (от 01 до 31).
{mm} месяц (от 01 до 12).
{yy}, {yyyy} или {y} год указывается 2, 4 или 1 цифрами.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
-GenericMaskCodes3=Все другие символы в маске останутся нетронутыми.
Пробелы не допускается.
-GenericMaskCodes4a=Пример 99-й %s компании контрагента созданной 2007-01-31:
+GenericMaskCodes2={cccc} код клиента на n символов
{cccc000} код клиента на n символов с счетчиком, предназначенным для клиента. Этот счетчик, предназначенный для клиента, сбрасывается в то же время, что и глобальный счетчик.
{tttt} Код контрагента для n символов (см. Меню «Главная страница - Настройка - Словарь - Типы контрагентов») , Если вы добавите этот тег, счетчик будет отличаться для каждого типа контрагента.
+GenericMaskCodes3=Все остальные символы в маске останутся нетронутыми.
Пробелы не допускается.
+GenericMaskCodes4a= Пример для 99-го %s контрагента Компании с датой 2007-01-31:
GenericMaskCodes4b=Пример контрагента созданного 2007-03-01:
GenericMaskCodes4c=Пример товара созданного 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} получится ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX получится 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} даст ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX даст 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} даст IN0701-0099-A , если тип компании является «Responsable Inscripto» с кодом типа «A_RI», GenericNumRefModelDesc=Возвращает настраиваемое число в соответствии с заданной маской. ServerAvailableOnIPOrPort=Сервер доступен по адресу %s порт %s ServerNotAvailableOnIPOrPort=Сервер не доступен по адресу %s порт %s -DoTestServerAvailability=Тест соединения с сервером -DoTestSend=Тест отправки -DoTestSendHTML=Тест отправки HTML +DoTestServerAvailability=Проверка соединения с сервером +DoTestSend=Проверка отправки +DoTestSendHTML=Проверка отправки HTML ErrorCantUseRazIfNoYearInMask=Error, can't use option @ to reset counter each year if sequence {yy} or {yyyy} is not in mask. ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Ошибка, не возможно использовать опцию @ если последовательность {yy}{mm} или {yyyy}{mm} не в маске. -UMask=UMask параметр для новых файлов в файловых системах Unix / Linux / BSD. +UMask=UMask параметр для новых файлов в файловых системах Unix / Linux / BSD / Mac. UMaskExplanation=Этот параметр позволяет определить набор прав по умолчанию для файлов, созданных Dolibarr на сервере (при загрузке, например).
Это должно быть восьмеричное значение (например, 0666 означает, читать и записывать сможет каждый).
Этот параметр бесполезен на Windows-сервере. SeeWikiForAllTeam=Посмотрите на вики-странице на полный список всех участников и их организации UseACacheDelay= Задержка для кэширования при экспорте в секундах (0 или пусто для отключения кэширования) @@ -369,23 +375,25 @@ Int=Целое Float=С плавающей запятой DateAndTime=Дата и время Unique=Уникальный -Boolean=Двоичный (флажок) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Телефон ExtrafieldPrice = Цена ExtrafieldMail = Адрес электронной почты ExtrafieldUrl = Url ExtrafieldSelect = Выбрать из списка ExtrafieldSelectList = Выбрать из таблицы -ExtrafieldSeparator=Разделитель +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Пароль -ExtrafieldCheckBox=Флажок -ExtrafieldRadio=Переключатель -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Ссылка на объект -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key -ExtrafieldParamHelpcheckbox=Параметры списка имеют ключи, значение

например :
1,значение1
2,значение2
3,значение3
... -ExtrafieldParamHelpradio=Параметры списка имеют ключи, значение

например :
1,значение1
2,значение2
3,значение3
... -ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=Список параметров должен быть в формате ключ, значение

например:
1,значение1
2,значение2
3,значение3
...

Иметь список зависимый от другого дополнительного списка атрибутов:
1,value1|options_ parent_list_code : parent_key
2,value2|options_ parent_list_code : parent_key

Список в зависящий от другого списка:
1,value1|parent_list_code:parent_key
2,значение2|parent_list_code:parent_key +ExtrafieldParamHelpcheckbox=Список параметров имеет ключ,значение

например :
1,значение1
2,значение2
3,значение3
... +ExtrafieldParamHelpradio=Список параметров имеет ключ,значение

например :
1,значение1
2,значение2
3,значение3
... +ExtrafieldParamHelpsellist=Список параметров берется из таблицы
Syntax : table_name:label_field:id_field::filter
Пример : c_typent:libelle:id::filter

фильтр может быть простым текстом (напр. active=1) отображающим только активное значение
Так же можно использовать $ID$ в фильтрах текущего id текущего объекта
Для ВЫДЕЛЕНИЯ в фильтре используйте $SEL$
если вы хотите фильтровать дополнительные поля используйте extra.fieldcode=... (где код поля это код дополнительного поля)

В результате вы получите список зависимый от дополнительного списка атрибутов:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

В результате вы получите список зависимый от другого списка:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php LibraryToBuildPDF=Библиотека используемая для создания PDF-файлов @@ -422,9 +430,23 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Поле +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Пользователи и группы -Module0Desc=Users / Employees and Groups management +Module0Desc=Управление Пользователями / Сотрудниками и Группами Module1Name=Контрагенты Module1Desc=Компании и управление контактами (клиенты, перспективы...) Module2Name=Коммерческие @@ -444,7 +466,7 @@ Module30Desc=Управелние счет-фактурами и кредитн Module40Name=Поставщики Module40Desc=Управление поставщиками и закупками (заказы и счета-фактуры) Module42Name=Журналы -Module42Desc=Средства журналирования (файлы, системный журнал, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Редакторы Module49Desc=Управления редактором Module50Name=Продукция @@ -464,7 +486,7 @@ Module56Desc=Интеграция телефонии Module57Name=Прямые банковские поручения Module57Desc=Управление прямыми дебиторскими платежными поручениями. Включая создание SEPA-файлов для европейских стран. Module58Name=ClickToDial -Module58Desc=Интерация ClickToDial +Module58Desc=Интеграция с системами НажатьДляЗвонка (Asterisk, ...) Module59Name=Bookmark4u Module59Desc=Добавить функцию для создания учетных записей Bookmark4u из учетной записи Dolibarr Module70Name=Мероприятия @@ -499,8 +521,8 @@ Module410Name=Веб-календарь Module410Desc=Интеграция веб-календаря Module500Name=Специальные расходы Module500Desc=Управление специальными расходами (налоги, социальные или налоговые отчисления, дивиденды) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Ссуда Module520Desc=Управление ссудами Module600Name=Уведомления @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Подключение к службе GeoIP MaxMind для преобразования IP-адреса в название страны Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=Отдел кадров -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Группы компаний Module5000Desc=Управление группами компаний Module6000Name=Бизнес-Процесс @@ -591,7 +615,7 @@ Permission32=Создание / изменение продукции / услу Permission34=Удаленные продукция / услуги Permission36=Просмотр / управление скрытой продукцией / услугами Permission38=Экспорт продукции -Permission41=Просмотр проектов и задач (общие и мои проекты). Можно так же указать расход времени на поставленные задачи (расписание) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Создание / изменение проектов и задач (общие и мои проекты). Можно так же создать задачи и назначить пользователей для выполнения проекта и задач Permission44=Удаление проектов (общих и моих проектов) Permission45=Export projects @@ -695,7 +719,7 @@ PermissionAdvanced253=Создать / изменить внутренних / Permission254=Создать / изменить только внешних пользователей Permission255=Изменить пароли других пользователей Permission256=Удалить или отключить других пользователей -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Расширенный доступ ко всем контрагентам (не только контрагентов пользователей являющихся торговыми представителями).
Не эффективно для внешних пользователей (всегда ограниченные только предложениями, заказами, счетами-фактурами, контрактами и т.д.).
Не эффективно для проектов (только правила разрешений проекта, видимости и распределение вопросов). Permission271=Читать CA Permission272=Читать счета Permission273=Выпуск счетов @@ -739,11 +763,11 @@ Permission527=Экспорт ссуд Permission531=Читать услуги Permission532=Создать / изменить услуги Permission534=Удаление услуг -Permission536=See / Управлять скрытыми услугами +Permission536=Смотреть / Управлять скрытыми услугами Permission538=Экспорт услуг -Permission701=Читать пожертвования -Permission702=Создать / изменить пожертвований -Permission703=Удалить пожертвований +Permission701=Просмотр пожертвований +Permission702=Создание / изменение пожертвований +Permission703=Удаление пожертвований Permission771=Read expense reports (yours and your subordinates) Permission772=Создание/изменение отчётов о затратах Permission773=Удаление отчётов о затратах @@ -751,32 +775,32 @@ Permission774=Просмотр всех отчётов о затратах (да Permission775=Утвердить отчёты о расходах Permission776=Оплата отчётов о затратах Permission779=Экспорт отчётов о затратах -Permission1001=Читать запасов +Permission1001=Просмотр запасов Permission1002=Создать/изменить склады Permission1003=Удалить склады -Permission1004=Читать фондового движения -Permission1005=Создать / изменить фондового движения -Permission1101=Читать доставка заказов -Permission1102=Создать / изменить доставки заказов +Permission1004=Просмотр перемещений по складу +Permission1005=Создание / изменение перемещений на складе +Permission1101=Просмотр доставки заказов +Permission1102=Создание / изменение доставки заказов Permission1104=Подтверждение доставки заказов -Permission1109=Удалить доставка заказов -Permission1181=Читать поставщиков -Permission1182=Читать поставщик заказов +Permission1109=Удаление доставки заказов +Permission1181=Просмотр поставщиков +Permission1182=Просмотр заказов поставщикам Permission1183=Создание заказов поставщикам -Permission1184=Проверка поставщиком заказов -Permission1185=Одобрить поставщик заказов -Permission1186=Заказ поставщику заказов -Permission1187=Подтвердить получение поставщиками заказов -Permission1188=Закрыть поставщик заказов +Permission1184=Проверка заказов поставщикам +Permission1185=Одобрение заказов поставщикам +Permission1186=Заказ заказов поставщикам +Permission1187=Подтверждение получения заказов поставщикам +Permission1188=Удаление заказов поставщикам Permission1190=Утвердить (второй уровень) заказы поставщика Permission1201=Получите результат экспорта -Permission1202=Создать / Изменить экспорт -Permission1231=Читать поставщиком счета-фактуры +Permission1202=Создание / Изменение экспорта +Permission1231=Просмотр счета-фактуры поставщиков Permission1232=Создание счета-фактуры поставщика Permission1233=Проверка счета-фактуры поставщика -Permission1234=Удалить поставщиком счета-фактуры -Permission1235=Отправить поставщиком счетов по электронной почте -Permission1236=Экспорт поставщиком счета-фактуры, качества и платежей +Permission1234=Удаление счета-фактуры поставщика +Permission1235=Отправка счетов поставщику по электронной почте +Permission1236=Экспорт счета-фактуры поставщика, аттрибутов и платежей Permission1237=Детализированный экспорт заказов поставщика Permission1251=Запуск массового импорта внешних данных в базу данных (загрузка данных) Permission1321=Экспорт клиентом счета-фактуры, качества и платежей @@ -792,22 +816,22 @@ Permission23001=Просмотр Запланированных задач Permission23002=Создать/обновить Запланированную задачу Permission23003=Удалить Запланированную задачу Permission23004=Выполнить запланированную задачу -Permission2401=Читать действия (события или задачи), связанные с его счета -Permission2402=Создать / изменить / удалить действия (события или задачи), связанные с его счета -Permission2403=Читать мероприятия (задачи, события или) других -Permission2411=Читайте действия (события или задачи), других +Permission2401=Посмотреть действия (события или задачи), связанные с его учетной записью +Permission2402=Создание / изменение / удаление действий (события или задачи), связанные с его учетной записью +Permission2403=Удаление действий (задачи, события или) связанных с его учетной записью +Permission2411=Просмотреть действия (события или задачи), других Permission2412=Создать / изменить действия (события или задачи), других Permission2413=Удалить действия (события или задачи), других Permission2414=Export actions/tasks of others -Permission2501=Читайте документы -Permission2502=Добавить или удалить документы -Permission2503=Отправить или удалять документы -Permission2515=Настройка документов, справочников -Permission2801=Использовать FTP клиент в режиме только для чтения (просмотр и загрузка файлов) -Permission2802=Использовать FTP клиент в режиме для записи (удаление или загрузка файлов) +Permission2501=Чтение/Загрузка документов +Permission2502=Загрузка документов +Permission2503=Отправить или удалить документы +Permission2515=Настройка директорий документов +Permission2801=Использовать FTP клиент в режиме только чтения (только просмотр и загрузка файлов) +Permission2802=Использовать FTP клиент в режиме записи (удаление или выгрузка файлов) Permission50101=Использовать Торговую точку -Permission50201=Прочитано сделок -Permission50202=Импортных операций +Permission50201=Просмотр транзакций +Permission50202=Импорт транзакций Permission54001=Печать Permission55001=Открыть опросы Permission55002=Создать/изменить опросы @@ -844,12 +868,14 @@ DictionaryOrderMethods=Методы заказов DictionarySource=Происхождение Коммерческих предложений / Заказов DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Модели для диаграммы счетов +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Шаблоны электронных писем DictionaryUnits=Единицы DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Настройки сохранены +SetupNotSaved=Setup not saved BackToModuleList=Вернуться к списку модулей BackToDictionaryList=Назад к списку словарей VATManagement=НДС менеджмент @@ -921,7 +947,7 @@ Host=Сервер DriverType=Тип драйвера SummarySystem=Обзор системной информации SummaryConst=Список всех параметров настройки Dolibarr -MenuCompanySetup=Компания / Фонд +MenuCompanySetup=\t\nКомпания/Организация DefaultMenuManager= Менеджер стандартного меню DefaultMenuSmartphoneManager=Менеджер Меню Смартфона Skin=Тема оформления @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Сообщение дня MessageLogin=Сообщение на странице входа +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Постоянный поиск формы на левом меню DefaultLanguage=Язык по умолчанию (код языка) EnableMultilangInterface=Включить многоязычный интерфейс EnableShowLogo=Показать логотип на левом меню -CompanyInfo=Информация о Компании / фонде -CompanyIds=Компания / фундамент тождествам +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Имя CompanyAddress=Адрес CompanyZip=Индекс @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Толерантность задержки (в дня Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Терпимость задержки (в днях) до полной готовности к чеки сделать депозит Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Другие пункты меню управления необязательных параметров. LogEvents=Безопасность ревизии события Audit=Аудит @@ -987,7 +1015,7 @@ BrowserOS=Операционная система браузера ListOfSecurityEvents=Список Dolibarr безопасность события SecurityEventsPurged=Безопасность событий очищены LogEventDesc=Вы можете включить в журнале событий безопасности Dolibarr здесь. Администраторы могут увидеть его содержимое с помощью меню System Tools - Аудит. Внимание, эта функция может занимать большой объем данных в базе данных. -AreaForAdminOnly=Эти функции могут быть использованы только администратору пользователей. Администратор черт и помочь определены в Dolibarr по следующим picto: +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Система информации разного техническую информацию Вы получите в режиме только для чтения и видимые только для администраторов. SystemAreaForAdminOnly=Эта область доступна для пользователей только администратором. Ни одно из разрешений Dolibarr может снизить этот предел. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Вы должны включить минимум 1 модуль ClassNotFoundIntoPathWarning=Класс %s не найден по PHP пути YesInSummer=Да летом -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Хранилище сессий шифровано системой SUHOSIN ConditionIsCurrently=Текущее состояние %s YouUseBestDriver=Вы используете драйвер %s, который на текущий момент является самым подходящим @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Профессиональные Id уникальным MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Экспорт ссылка на %s формате доступна на следующую ссылку: %s ##### Invoices ##### BillsSetup=Счета модуль настройки BillsNumberingModule=Счета и кредитных нот нумерации модуль BillsPDFModules=Счет документы моделей +PaymentsPDFModules=Payment documents models CreditNote=Кредит сведению CreditNotes=Кредитных нот ForceInvoiceDate=Силы дата счета-фактуры для подтверждения даты @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Файлы типа %s не кешируются HTTP с FilesOfTypeCompressed=Файлы типа %s сжимаются HTTP сервером FilesOfTypeNotCompressed=Файлы типа %s сжимаются не HTTP сервером CacheByServer=Кэшируется сервером +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Кэшируется броузером CompressionOfResources=Сжатие HTTP заголовков +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Продукты модуль настройки ServiceSetup=Услуги установки модуля @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Счет дата, используемая Buy=Покупать Sell=Продавать InvoiceDateUsed=Счет дата, используемая -YourCompanyDoesNotUseVAT=Ваша компания была определена не использовать НДС (Главная - Настройка - компания / фонд), так что нет НДС на эту настройку. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Бухгалтерия код AccountancyCodeSell=Бух. код продаж AccountancyCodeBuy=Бух. код покупок @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Устанавливать автоматическ AGENDA_DEFAULT_VIEW=Какую вкладку вы хотите открывать по умолчанию, когда выбираете из меню Повестку дня AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Нажмите для набора модуля настройки -ClickToDialUrlDesc=Url called when a click on phone picto is done. Dans l'url, vous pouvez utiliser les balises
__PHONETO__ qui sera remplacé par le téléphone de l'appelé
__PHONEFROM__ qui sera remplacé par le téléphone de l'appelant (le votre)
__LOGIN__ qui sera remplacé par votre login clicktodial (défini sur votre fiche utilisateur)
__PASS__ qui sera remplacé par votre mot de passe clicktodial (défini sur votre fiche utilisateur). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Генеральный порядок отображения BankOrderES=Испанский BankOrderESDesc=Испанская порядок отображения ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Компания Multi-модуль настройки ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Мастер создания резервной копии б SomethingMakeInstallFromWebNotPossible=Установка внешних модулей через веб-интерфейс не возможна по следующей причине: SomethingMakeInstallFromWebNotPossible2=По этой причине, описанный здесь процесс апрейгда - это только шаги, которые может выполнить пользователь с соответствующими правами доступа. InstallModuleFromWebHasBeenDisabledByFile=Установка внешних модулей из приложения отключена вашим администратором. Вы должны попросить его удалить файл %s, чтобы использовать эту функцию. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/ru_RU/compta.lang b/htdocs/langs/ru_RU/compta.lang index cc0699b8b10..f0d4cb004ea 100644 --- a/htdocs/langs/ru_RU/compta.lang +++ b/htdocs/langs/ru_RU/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Настройка RemainingAmountPayment=Сумма оплаты Осталось: Account=Учетная запись -Accountparent=Исходный счёт -Accountsparent=Исходные счета +Accountparent=Parent account +Accountsparent=Parent accounts Income=Поступления Outcome=Итог ReportInOut=Поступления / Результат @@ -56,6 +56,7 @@ MenuTaxAndDividends=Налоги и дивиденды MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Бухгалтерия / Казначейство области NewPayment=Новые оплаты @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Она включает в себя все эффективные платежи в счетах-фактурах, полученных от клиентов.
- Он основан на день оплаты этих счетов-фактур
-DepositsAreNotIncluded=- Депозитные счета-фактуры и не включен -DepositsAreIncluded=- Депозитные счета включены +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Доклад третьей стороной IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Продажи журнала DescPurchasesJournal=Покупки Журнал InvoiceRef=Счет реф. CodeNotDef=Не определено -WarningDepositsNotIncluded=Депозиты счетов не включены в эту версию с этим бухгалтерский учет модуля. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Журнал бухгалтерских кодов ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Клонировать для следующего месяца @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/ru_RU/cron.lang b/htdocs/langs/ru_RU/cron.lang index 5ebd75c5fdf..2e583fdd108 100644 --- a/htdocs/langs/ru_RU/cron.lang +++ b/htdocs/langs/ru_RU/cron.lang @@ -25,7 +25,7 @@ CronDelete=Удалить запланированные задания CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Модуль запланированных задач позволяет выполнять запланированные задачи +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Задание CronNone=Никакой CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Включено CronStatusInactiveBtn=Выключать CronTaskInactive=Задание отключено CronId=ID -CronClassFile=Классы (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Команда для выполнения CronCreateJob=Создать новое запланированное задание CronFrom=От @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/ru_RU/errors.lang b/htdocs/langs/ru_RU/errors.lang index 7f03c4c6803..2e549a57b68 100644 --- a/htdocs/langs/ru_RU/errors.lang +++ b/htdocs/langs/ru_RU/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Не удалось создать файл '%s' ErrorFailToRenameDir=Не удалось переименовать директорию '%s' в '%s' ErrorFailToCreateDir=Не удалось создать директорию '%s' ErrorFailToDeleteDir=Не удалось удалить директорию '%s' +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Этот контакт уже определено в качестве контакта данного типа. ErrorCashAccountAcceptsOnlyCashMoney=Этот банковский счет определен как счет для наличных, так что он принимает только наличные платежи. ErrorFromToAccountsMustDiffers=Источник и цели банковского счета должны быть разными. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Не удалось записать в директор ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=Найдено неверный электронный синтаксис% с линии в файл (например, строка %s с электронной почтой= %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Некоторые обязательные поля не были заполнены. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Не удалось создать каталог. Убедитесь, что веб-сервер пользователь имеет разрешения на запись в каталог Dolibarr документы. Если параметр safe_mode включен по этому PHP, проверьте, что Dolibarr PHP файлы принадлежат к веб-серверу пользователей (или группы). ErrorNoMailDefinedForThisUser=Нет определена почта для этого пользователя ErrorFeatureNeedJavascript=Эта функция JavaScript должны быть активированы на работу. Изменить это в настройки - дисплей. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Количество строк в сч ErrorWebServerUserHasNotPermission=Учетная запись пользователя %s используется для выполнения веб-сервер не имеет разрешения для этого ErrorNoActivatedBarcode=Нет штрих-кодов типа активированного ErrUnzipFails=Невозможно распаковать %s с помощью ZipArchive -ErrNoZipEngine=Нет доступного модуля в PHP для распаковки файла %s +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Файл %s должен быть архивом zip системы Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=Модуль CURL для PHP не установлен, он необходим для работы с PayPal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Не выбрана глобальная перем ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Дата платежа (%s) меньш WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index c37813cd169..911eb16f641 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -7,13 +7,13 @@ DIRECTION=ltr FONTFORPDF=freemono FONTSIZEFORPDF=8 SeparatorDecimal=, -SeparatorThousand=None +SeparatorThousand=, FormatDateShort=%d.%m.%Y FormatDateShortInput=%d.%m.%Y -FormatDateShortJava=dd.MM.yyyy -FormatDateShortJavaInput=dd.MM.yyyy -FormatDateShortJQuery=dd.mm.yy -FormatDateShortJQueryInput=dd.mm.yy +FormatDateShortJava=ММ/дд/гггг +FormatDateShortJavaInput=ММ/дд/гггг +FormatDateShortJQuery=мм/дд/гг +FormatDateShortJQueryInput=мм/дд/гг FormatHourShortJQuery=ЧЧ:ММ FormatHourShort=%H:%M FormatHourShortDuration=%H:%M @@ -43,9 +43,9 @@ ErrorConstantNotDefined=Параметр s% не определен ErrorUnknown=Неизвестная ошибка ErrorSQL=Ошибка SQL ErrorLogoFileNotFound=Файл логотипа '%s' не найден -ErrorGoToGlobalSetup=Перейти к настройкам 'Компания/Организация', чтобы исправить -ErrorGoToModuleSetup=Перейти к настройкам модулей, чтобы исправить -ErrorFailedToSendMail=Не удалось отправить почту(отправитель=%s, получатель=%s) +ErrorGoToGlobalSetup=Для исправления перейдите в настройки "Компании/Организации" +ErrorGoToModuleSetup=Для исправления перейдите в настройки модуля +ErrorFailedToSendMail=Не удалось отправить почту (отправитель=%s, получатель=%s) ErrorFileNotUploaded=Файл не был загружен. Убедитесь, что его размер не превышает максимально допустимое значение, свободное место имеется на диске, и файл с таким же именем не существует в этом каталоге. ErrorInternalErrorDetected=Обнаружена ошибка ErrorWrongHostParameter=Неверный параметр хоста @@ -88,7 +88,7 @@ Undefined=Неопределено PasswordForgotten=Забыли пароль? SeeAbove=См. выше HomeArea=Начальная область -LastConnexion=Latest connection +LastConnexion=Последнее подключение PreviousConnexion=Предыдущий вход PreviousValue=Предыдущее значение ConnectedOnMultiCompany=Подключено к объекту @@ -105,7 +105,7 @@ MoreInformation=Подробнее TechnicalInformation=Техническая информация TechnicalID=Технический идентификатор NotePublic=Примечание (публичное) -NotePrivate=Примечание (частное) +NotePrivate=Примечание (личное) PrecisionUnitIsLimitedToXDecimals=Dolibarr был настроен на ограничение точности цены единицы до %s десятых. DoTest=Проверка ToFilter=Фильтр @@ -117,8 +117,8 @@ no=нет No=Нет All=Все Home=Главная -Help=Помощь -OnlineHelp=Он-лайн помощь +Help=Справка +OnlineHelp=Интернет-справка PageWiki=Страница Wiki MediaBrowser=Обозреватель медиа Always=Всегда @@ -153,6 +153,7 @@ Edit=Редактировать Validate=Проверить ValidateAndApprove=Проверить и Утвердить ToValidate=На проверке +NotValidated=Не подтвержден Save=Сохранить SaveAs=Сохранить как TestConnection=Проверка подключения @@ -202,7 +203,7 @@ MultiLanguage=Многоязычный Note=Примечание Title=Название Label=Наименование -RefOrLabel=Ref. или наименование +RefOrLabel=Ссылка или ярлык Info=Журнал Family=Семья Description=Описание @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Нет возможности разрыва сое Connection=Войти Setup=Настройка Alert=Оповещение +MenuWarnings=Предупреждения Previous=Назад Next=Дальше Cards=Карточки @@ -238,7 +240,7 @@ DateCreation=Дата создания DateCreationShort=Дата создания DateModification=Дата изменения DateModificationShort=Дата изм. -DateLastModification=Latest modification date +DateLastModification=Дата последнего изменения DateValidation=Дата проверки DateClosing=Дата закрытия DateDue=Срок выполнения @@ -308,6 +310,7 @@ Copy=Копировать Paste=Вставить Default=По умолчанию DefaultValue=Значение по умолчанию +DefaultValues=Стандартное значение Price=Цена UnitPrice=Цена за единицу UnitPriceHT=Цена за единицу (нетто) @@ -339,7 +342,7 @@ AmountAverage=Средняя сумма PriceQtyMinHT=Цена за мин. количество (без налога) Percentage=Процент Total=Всего -SubTotal=Итого +SubTotal=Подитог TotalHTShort=Всего (без налога) TotalHTShortCurrency=Итого (нетто в текущей валюте) TotalTTCShort=Всего (вкл-я налог) @@ -357,25 +360,26 @@ HT=Без налога TTC=Вкл-я налог VAT=НДС VATs=Торговые сборы -LT1ES=Повторно +LT1ES=RE LT2ES=IRPF VATRate=Ставка НДС Average=Среднее Sum=Сумма Delta=Разница -Module=Модуль +Module=Module/Application +Modules=Modules/Applications Option=Опция List=Список FullList=Полный список Statistics=Статистика OtherStatistics=Другие статистические данные Status=Статус -Favorite=Любимые +Favorite=Избранное ShortInfo=Инфо -Ref=Ref. +Ref=Ссылка ExternalRef=Внешний источник -RefSupplier=Ref. поставщика -RefPayment=Ref. оплаты +RefSupplier=Ссылка на поставщика +RefPayment=Ссылка на оплату CommercialProposalsShort=Коммерческие предложения Comment=Комментарий Comments=Комментарии @@ -387,26 +391,27 @@ ActionRunningNotStarted=Не начато ActionRunningShort=Выполняется ActionDoneShort=Завершено ActionUncomplete=Не завершено -CompanyFoundation=Компания/Организация -ContactsForCompany=Контакты/адреса контрагента -ContactsAddressesForCompany=Контак/Адреса для этого стороннего лица -AddressesForCompany=Адреса для этого стороннего лица +CompanyFoundation=\t\nКомпания/Организация +ContactsForCompany=Контакты для этого контрагента контрагента +ContactsAddressesForCompany=Контакты/Адреса для этого контрагента +AddressesForCompany=Адреса для этого контарагента ActionsOnCompany=Действия для этого контрагента -ActionsOnMember=События об этом члене +ActionsOnMember=События этого участника NActionsLate=% с опозданием RequestAlreadyDone=Запрос уже зарегистрован Filter=Фильтр FilterOnInto=Найти критерий '%s' в полях %s RemoveFilter=Удалить фильтр -ChartGenerated=Диаграмма сгенерирована -ChartNotGenerated=Диаграмма не сгенерирована +ChartGenerated=Диаграмма создана +ChartNotGenerated=Диаграмма не создана GeneratedOn=Создан %s Generate=Создать Duration=Продолжительность TotalDuration=Общая продолжительность Summary=Общее -DolibarrStateBoard=Статистика -DolibarrWorkBoard=Панель текущих задач +DolibarrStateBoard=Статистика базы данных +DolibarrWorkBoard=Открытые элементы основной страницы +NoOpenedElementToProcess=Нет открытого элемента для обработки Available=Доступно NotYetAvailable=Пока не доступно NotAvailable=Не доступно @@ -434,7 +439,7 @@ Reportings=Отчеты Draft=Черновик Drafts=Черновики Validated=Подтверждено -Opened=Открыты +Opened=Открытые New=Новый Discount=Скидка Unknown=Неизвестно @@ -453,6 +458,7 @@ NextStep=Следующий шаг Datas=Данные None=Никакой NoneF=Никакой +NoneOrSeveral=Нет или несколько Late=Поздно LateDesc=Появится ваша запись с задержкой или без задержки определяется в настройках. Попросите вашего администратора изменить задержку из меню Главная - Настройка - Предупреждения Photo=Изображение @@ -600,13 +606,14 @@ SessionName=Имя Сессии Method=Метод Receive=Получить CompleteOrNoMoreReceptionExpected=Завершено или ничего больше не ожидается -ExpectedValue=Expected Value +ExpectedValue=Ожидаемое значение CurrentValue=Текущее значение PartialWoman=Частичное TotalWoman=Всего NeverReceived=Никогда не получено Canceled=Отменено -YouCanChangeValuesForThisListFromDictionarySetup=Вы можете изменить значения для этого списка из меню Настройки->Словарь +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Вы можете настроить значение по-умолчанию используемое при создании новой записи в модуле Настройка Color=Цвет Documents=Связанные файлы @@ -642,6 +649,7 @@ FreeLineOfType=Свободная запись типа CloneMainAttributes=Клонирование объекта с его основными атрибутами PDFMerge=Слияние PDF Merge=Слияние +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Показать страницу для печати области основного содержимого MenuManager=Менеджер меню WarningYouAreInMaintenanceMode=Внимание, вы находитесь в режиме обслуживания, так что только пользователю %s разрешено использовать приложение в данный момент. @@ -708,6 +716,7 @@ from=от toward=к Access=Доступ SelectAction=Выбор действия +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Для копировани в буфер обмена используйте Ctrl+C SaveUploadedFileWithMask=Сохранить файл на сервер под именем "%s" (иначе "%s") OriginFileName=Изначальное имя файла @@ -718,7 +727,7 @@ ViewPrivateNote=Посмотреть заметки XMoreLines=%s строк(и) скрыто PublicUrl=Публичная ссылка AddBox=Добавить бокс -SelectElementAndClickRefresh=Выберите элемент и нажмите обновить +SelectElementAndClick=Select an element and click %s PrintFile=Печать файл %s ShowTransaction=Показать транзакцию на банковском счете GoIntoSetupToChangeLogo=Используйте Главная-Настройки-Компании для изменения логотипа или Главная-Настройки-Отображение для того, чтобы его скрыть. @@ -734,8 +743,8 @@ Hello=Здравствуйте Sincerely=С уважением, DeleteLine=Удалить строки ConfirmDeleteLine=Вы точно хотите удалить эту строку? -NoPDFAvailableForDocGenAmongChecked=Нет доступных PDF среди проверяемых записей для создания документов -TooManyRecordForMassAction=Выделено слишком много записей для массового действия. Массовое действие запрещено для списка из более %s записей. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=Нет выделенных записей MassFilesArea=Пространство для массовых действий с файлами ShowTempMassFilesArea=Показать область для массовых действий с файлами @@ -755,11 +764,20 @@ Calendar=Календарь GroupBy=Группировка по... ViewFlatList=Вид плоским списком RemoveString=Удалить строку '%s' -SomeTranslationAreUncomplete=Некоторые языки могут быть переведены частично или могут содержать ошибки. Если вы обнаружите их, вы можете исправить языковые файлы зарегистрировавшись на http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Прямая ссылка для загрузки Download=Загрузка ActualizeCurrency=Обновить текущий курс Fiscalyear=Финансовый год +ModuleBuilder=Создатель Модуля +SetMultiCurrencyCode=Set currency +BulkActions=Массовые действия +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Понедельник Tuesday=Вторник @@ -794,9 +812,9 @@ SetRef=Настроить источник Select2ResultFoundUseArrows=Найдено несколько результатов. Используйте стрелки для выбора. Select2NotFound=Ничего не найдено Select2Enter=Ввод/вход -Select2MoreCharacter=or more character +Select2MoreCharacter=или больше символов Select2MoreCharacters=или больше символов -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
+Select2MoreCharactersMore=Синтаксис поиска:
| OR (a|b)
* любые символы (a*b)
^ Начинается с (^ab)
$ Заканчивается символами (ab$)
Select2LoadingMoreResults=Загрузка результатов... Select2SearchInProgress=Поиск в процессе... SearchIntoThirdparties=Контрагенты @@ -817,5 +835,3 @@ SearchIntoContracts=Договоры SearchIntoCustomerShipments=Отгрузки клиентам SearchIntoExpenseReports=Отчёты о затратах SearchIntoLeaves=Отпуска - -BulkActions=Bulk actions diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index 28a79aa2881..9e04daa2f8f 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Дата рождения BirthdayAlertOn=рождения активного оповещения BirthdayAlertOff=рождения оповещения неактивные +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Посредничество подтверждено Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Dette er en test mail (ordet testen må være i fe PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nВы можете увидеть здесь запрос цены __ASKREF__\n\n\n__PERSONALIZED__С уважением\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Проф Id %s
является информация в зависимости от сторонних страны.
Например, для страны с%, то с кодом%. DolibarrDemo=Dolibarr ERP / CRM демо -StatsByNumberOfUnits=Статистика количества единиц -StatsByNumberOfEntities=Статистика в ряде организаций -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Посредничество %s проверено. EMailTextInvoiceValidated=Счет %s проверены diff --git a/htdocs/langs/ru_RU/projects.lang b/htdocs/langs/ru_RU/projects.lang index 52985ce2487..b6ecd847c1b 100644 --- a/htdocs/langs/ru_RU/projects.lang +++ b/htdocs/langs/ru_RU/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Статус проекта SharedProject=Общий проект PrivateProject=Проект контакты +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Все проекты MyProjectsDesc=Эта точка зрения ограничена проекты, которые Вы контакте (что бы это тип). ProjectsPublicDesc=Эта точка зрения представлены все проекты, которые Вы позволили читать. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Эта точка зрения представляет всех пр AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Новый проект AddProject=Создать проект DeleteAProject=Удаление проекта DeleteATask=Удалить задание ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Показать проекта SetProject=Комплекс проектов NoProject=Нет проекта определена NbOfProjects=Nb проектов +NbOfTasks=Nb of tasks TimeSpent=Время, затраченное TimeSpentByYou=Затраченное мной время TimeSpentByUser=Затраченное пользователем время @@ -47,9 +52,9 @@ TaskTimeSpent=Время, потраченное на задачи TaskTimeUser=Пользователь TaskTimeNote=Заметка TaskTimeDate=Дата -TasksOnOpenedProject=Задачи на открытых проектах +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Рабочая нагрузка не задана -NewTimeSpent=Новое время +NewTimeSpent=Время, проведенное MyTimeSpent=Мое время Tasks=Задание Task=Задача @@ -59,6 +64,7 @@ TaskDescription=Описание задачи NewTask=Новые задачи AddTask=Создать задачу AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Мероприятие Activities=Задачи / мероприятия MyActivities=Мои задачи / мероприятия @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Перечень договоров, связанных с проектом +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Список мероприятий, связанных с проектом ListExpenseReportsAssociatedProject=Список отчётов о затратах, связанных с проектом ListDonationsAssociatedProject=Список пожертвований, связанных с проектом @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Проект контакты ActionsOnProject=Действия по проекту YouAreNotContactOfProject=Вы не контакт этого частного проекта +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Удалить времени ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Также видеть задачи, не назначенные мне @@ -110,7 +118,7 @@ TaskRessourceLinks=Ресурсы ProjectsDedicatedToThisThirdParty=Проектов, посвященных этой третьей стороне NoTasks=Нет задач, для этого проекта LinkedToAnotherCompany=Связь с другими третий участник -TaskIsNotAffectedToYou=Задачи, не назначенные вам +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Время, проведенное пуста ThisWillAlsoRemoveTasks=Это действие приведет к удалению всех задач проекта (%s задач на данный момент), и все входы затраченного времени. IfNeedToUseOhterObjectKeepEmpty=Если некоторые объекты (счет-фактура, заказ, ...), принадлежащей другому третьему лицу, должна быть увязана с проектом по созданию, держать этот пустой иметь проект, несколько третьих лиц. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Ввод по дням InputPerWeek=Ввод по неделе InputPerAction=Ввод по действиям -TimeAlreadyRecorded=Время, потраченное на уже зафиксировано для этой задачи / дня и пользователя %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index 5f31b6e2b2d..0bbbf93b74d 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Účet +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Priradenie dodávateľskej faktúry ExpenseReportsVentilation=Expense report binding CreateMvts=Vytvoriť novú tranzakciu UpdateMvts=Upraviť tranzakciu -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Stav účtu CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Trvanie prístupových údajov pre všeobecné účtovníctvo -ACCOUNTING_LENGTH_AACCOUNT=Trvanie prístupových údajov pre účtovníctvo tretej strany -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Číslo kusu TransactionNumShort=Num. transaction -AccountingCategory=Účtovná kategória +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Nenastavené -DeleteMvt=Zmazať riadky hlavnej účtovnej knihy +DeleteMvt=Delete Ledger lines DelYear=Rok na zmazanie DelJournal=Žurnále na zmazanie -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=Táto akcia zmaže vybrané riadky z hlavnej účtovnej knihy -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=Nová tranzakcia NumMvts=Numero of transaction ListeMvts=Zoznam pohybov ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatické priradenie dokončené ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Pohyby nie sú vyvážené. Kredit = %S Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Použiť hromadne kategóriu AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kód +Nature=Príroda +AccountingJournalType1=Various operation +AccountingJournalType2=Predaje +AccountingJournalType3=Platby +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Exportovať pre Sage Ciel Compta alebo Compta Evolution Modelcsv_quadratus=Exportovať pre Quadratus QuadraCompta Modelcsv_ebp=Exportovať pre EBP Modelcsv_cogilog=Exportovať pre Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Vypočítané Formula=Vzorec ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=Exportovaný formát nie je podporovaný pre túto stránku BookeppingLineAlreayExists=Riadky už existujú v archíve - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index b8f240e6747..56a8bdeb85b 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interní používatelia ExternalUsers=Externí používatelia GUISetup=Zobraziť SetupArea=Nastavenie plochy +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulár pre testovanie nahrávania súborov (podľa nastavenia) IfModuleEnabled=Poznámka: áno je účinné len vtedy, ak je modul %s zapnutý RemoveLock=Odstráňte súbor %s ak existuje povoliť použitie aktualizačného nástroja. @@ -85,7 +86,7 @@ Mask=Maska NextValue=Ďalšia hodnota NextValueForInvoices=Ďalšie hodnota (faktúry) NextValueForCreditNotes=Ďalšie hodnota (dobropisov) -NextValueForDeposit=Ďalšie hodnota (záloha) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Ďalšie hodnota (náhrady) MustBeLowerThanPHPLimit=Poznámka: Váš PHP obmedzuje každého upload súboru je veľkosť %s %s, čo hodnota tohto parametra je NoMaxSizeByPHPLimit=Poznámka: No limit je nastavený v konfigurácii PHP @@ -103,7 +104,7 @@ MenuIdParent=Materská Ponuka ID DetailMenuIdParent=ID nadradenej ponuky (prázdny na horné menu) DetailPosition=Zoradiť číslo definovať pozíciu v menu AllMenus=Všetko -NotConfigured=Modul nie je nakonfigurovaný +NotConfigured=Module/Application not configured Active=Aktívne SetupShort=Setup OtherOptions=Ďalšie možnosti @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Oddeľovač tisícov Destination=Destinácia IdModule=ID Modulu IdPermissions=ID Povolení -Modules=Moduly LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Parametre lokalizácie ClientTZ=Časová zóna klienta (používateľ) @@ -123,7 +123,8 @@ PHPTZ=PHP servera Časová zóna DaylingSavingTime=Letný čas CurrentHour=PHP Čas (server) CurrentSessionTimeOut=Časový limit súčasnej relácie -YouCanEditPHPTZ=Ak chcete nastaviť iné časové pásmo PHP (nie je podmienkou), môžete skúsiť pridať súbor. Htacces s linkou, ako je tento "TZ setenv Europe / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Panel Boxes=Panely MaxNbOfLinesForBoxes=Maximálny počet panelov @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Táto možnosť je dostupná iba v oficiálnej stab Rights=Oprávnenie BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Iba prvky z povolených modulov sú uvedené. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Viac modulov na stiahnutie môžete nájst na internete ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Databáza heslo zašifrované v conf.php (Activa InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Ochrana generovaných súborov PDF (aktivuje sa neodporúča, rozbije hromadné generovanie PDF) -ProtectAndEncryptPdfFilesDesc=Ochrana dokumentu vo formáte PDF udržuje ju k dispozícii pre čítanie a tlač PDF s akýmkoľvek prehliadači. Avšak, editáciu a kopírovanie nie je už možné. Všimnite si, že používate túto funkciu, aby budovu globálne kumulovanú pdf nefunguje (ako nezaplatených faktúr). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Rys DolibarrLicense=Licencia Developpers=Vývojári / prispievatelia @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr on-line demo OfficialMarketPlace=Oficiálny trh pre externé moduly / addons OfficialWebHostingService=Odkazované služby web hostingu ( Cloud hosting ) ReferencedPreferredPartners=Preferovaní partneri -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Pre používateľov alebo vývojárov dokumentácie (doc, FAQs ...)
pozrite sa na Dolibarr Wiki:
%s ForAnswersSeeForum=V prípade akýchkoľvek ďalších otázok / help, môžete použiť fórum Dolibarr:
%s HelpCenterDesc1=Táto oblasť vám môže pomôcť získať pomocníka služby podpory na Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funkcia nie je k dispozícii pre Unix, ako napr syst SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Nastavenie modulu -ModulesSetup=Moduly nastavenie +ModulesSetup=Modules/Application setup ModuleFamilyBase=Systém ModuleFamilyCrm=Riadenie vzťahov so zákazníkmi (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr aktuálna verzia CallUpdatePage=Choďte na stránku úpravý databázobej štruktúry a dát. %s LastStableVersion= Najnovšia stabilná verzia LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Aktualizovať server offline +WithCounter=Manage a counter GenericMaskCodes=Môžete zadať akékoľvek masku číslovanie. V tejto maske, by mohli byť použité nasledovné značky:
{000000} zodpovedá množstvu, ktoré sa zvýšia na každej %s. Vložiť počet núl na požadovanú dĺžku pultu. Počítadlo sa vyplní nulami zľava, aby sa čo najviac nuly ako maska.
{000000} 000 rovnako ako predchádzajúce, ale posun zodpovedá číslu na pravej strane znamienko + je aplikovaný začína na prvej %s.
{000000 @ x} rovnaká ako predchádzajúca, ale počítadlo sa resetuje na nulu, keď je mesiac x hodnoty (x medzi 1 a 12 alebo 0, používať prvých mesiacoch fiškálneho roka definované v konfigurácii, alebo 99 pre resetovanie na nulu každý mesiac ). Ak je táto voľba sa používa, a x je 2 alebo vyššia, potom postupnosť {yy} {mm} alebo {yyyy} {} mm je tiež potrebné.
{Dd} deň (01 až 31).
{Mm} mesiac (01 až 12).
{Yy}, {RRRR} alebo {y} ročne po dobu 2, 4 alebo 1 číslice.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Všetky ostatné znaky v maske zostanú nedotknuté.
Medzery nie sú povolené.
-GenericMaskCodes4a=Príklad na 99. %s tretej strany Thecompany vykonáva 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Príklad na tretie osoby vytvorené na 03.1.2007:
GenericMaskCodes4c=Príklad produktu vytvorili na 03.1.2007:
-GenericMaskCodes5=ABC {yy} {mm} - {000000} dám ABC0701-000099
{0000} 100 @ 1-ZZZ / {dd} / XXX0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Vracia číslo prispôsobiteľný podľa tvarovanou maskou. ServerAvailableOnIPOrPort=Server je k dispozícii na adrese %s na porte %s ServerNotAvailableOnIPOrPort=Server nie je k dispozícii na adrese %s na porte %s @@ -369,19 +375,21 @@ Int=Celé číslo Float=Vznášať sa DateAndTime=Dátum a hodina Unique=Unikátna -Boolean=Boolean (checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefón ExtrafieldPrice = Cena ExtrafieldMail = E-mail ExtrafieldUrl = Url ExtrafieldSelect = Vyberte zoznam ExtrafieldSelectList = Vyberte z tabuľky -ExtrafieldSeparator=Oddeľovač +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Heslo -ExtrafieldCheckBox=Zaškrtávacie políčko -ExtrafieldRadio=Prepínač -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Odkaz na objekt +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Zoznam kľúčových hodnôt

napríklad :
1,hodnota1
2,hodnota2
3,hodnota3
... ExtrafieldParamHelpradio=Zoznam kľúčových hodnôt

napríklad :
1,hodnota1
2,hodnota2
3,hodnota3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Použiť 3 krokové povolenie ked cena ( bez DPH ) je väčšia ako... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Pole +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Používatelia a skupiny Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Faktúra a dobropis riadenie pre zákazníkov. Faktúra konania pre Module40Name=Dodávatelia Module40Desc=Dodávateľ riadenia a nákupu (objednávky a faktúry) Module42Name=Záznamy -Module42Desc=Ťažobné zariadenie (súbor, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redakcia Module49Desc=Editor pre správu Module50Name=Produkty @@ -499,8 +521,8 @@ Module410Name=WebCalendar Module410Desc=WebCalendar integrácia Module500Name=špeciálne rozšírenia Module500Desc=Správca špeciálnych rozšírení ( dane, sociálne a fiškálne dane, dividendy ) -Module510Name=Zamestnanecké zmluvy a platy -Module510Desc=Spravovanie zamestnaneckých zmlúv, platov a platieb +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Pôžička Module520Desc=Správca pôžičiek Module600Name=Upozornenie @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP MaxMind konverzie možnosti Module3100Name=Skype Module3100Desc=Pridať Skype tlačidlo na úžívateľskú kartu používateľa / tretej osoby / kontaktu +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-spoločnosť Module5000Desc=Umožňuje spravovať viac spoločností Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Vytvoriť / upraviť produktov Permission34=Odstrániť produkty Permission36=Pozri / správa skryté produkty Permission38=Export produktov -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Odstrániť projektov (spoločné projekty, projekt a ja som kontakt pre) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Možnosti objednávky DictionarySource=Pôvod ponuky / objednávky DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modely účtovných osnov +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Šablóny emailov DictionaryUnits=Jednotky DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Status príležitosti pre projekt/vedenie SetupSaved=Nastavenie uložené +SetupNotSaved=Setup not saved BackToModuleList=Späť na zoznam modulov BackToDictionaryList=Napäť do zoznamu slovníkov VATManagement=DPH riadenia @@ -921,7 +947,7 @@ Host=Server DriverType=Typ ovládača SummarySystem=Systém súhrn informácií SummaryConst=Zoznam všetkých nastavených parametrov Dolibarr -MenuCompanySetup=Spoločnosti / Nadácia +MenuCompanySetup=Company/Organisation DefaultMenuManager= Štandardná ponuka manažér DefaultMenuSmartphoneManager=Smartphone Ponuka manažér Skin=Skin téma @@ -931,12 +957,14 @@ DefaultMaxSizeList=Základná max. dĺžka zoznamu DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Správa dňa MessageLogin=Prihlasovacia stránka správu +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanentný vyhľadávací formulár na ľavom menu DefaultLanguage=Predvolený jazyk používať (kód jazyka) EnableMultilangInterface=Povoliť viacjazyčné rozhranie EnableShowLogo=Zobraziť logo na ľavom menu -CompanyInfo=Spoločnosti / Nadácia informácie -CompanyIds=Spoločnosť / nadácie identity +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Názov CompanyAddress=Adresa CompanyZip=Zips @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancia oneskorenie (v dňoch) pred záznam o mešk Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia oneskorenie (v dňoch) pred pohotovosti pre kontrolu vklad robiť Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=Oblasť nastavení je pre základné nastavenia pre začatím používania Dolubarru -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Ostatné položky menu spravovať voliteľné parametre. LogEvents=Udalosti bezpečnostný audit Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=OS prehliadača ListOfSecurityEvents=Zoznam Dolibarr udalostí zabezpečenia SecurityEventsPurged=Bezpečnostnej akcie očistil LogEventDesc=Môžete povoliť tu zapisovanie udalostí Dolibarr zabezpečenia. Správcovia môžu potom vidieť jeho obsah pomocou nástrojov systému menu - audit. Pozor, táto funkcia môže spotrebovať veľké množstvo dát v databáze. -AreaForAdminOnly=Tieto vlastnosti môžu byť použité správcom užívateľa. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Systémové informácie je rôzne technické informácie získate v režime iba pre čítanie a viditeľné len pre správcov. SystemAreaForAdminOnly=Táto oblasť je k dispozícii pre správcu užívateľa. Žiadny z Dolibarr oprávnenia môže znížiť tento limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Aktuálny prekladovy reťazec WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=Novy prekladový reťazec na zobrzenie OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Počet aktivovaných modulov : %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Musíte povoliť aspoň jeden modul ClassNotFoundIntoPathWarning=Trieda %s nenašli cestu do PHP YesInSummer=Áno v lete -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Úložisko relácie šifrovaná Suhosin ConditionIsCurrently=Podmienkou je v súčasnej dobe %s YouUseBestDriver=Pomocou ovládača %s, že je najlepší vodič súčasnej dobe k dispozícii. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Pravidlá pre profesionálne IDs MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Export odkaz na %s formáte je k dispozícii na nasledujúcom odkaze: %s ##### Invoices ##### BillsSetup=Faktúry modul nastavenia BillsNumberingModule=Faktúry a dobropisy číslovanie modelu BillsPDFModules=Fakturačné doklady modely +PaymentsPDFModules=Payment documents models CreditNote=Dobropis CreditNotes=Dobropisy ForceInvoiceDate=Force faktúry dátum Dátum overenia @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Súbory typu %s nie sú ukladané do medzipamäte servera H FilesOfTypeCompressed=Súbory typu %s sú skomprimované servera HTTP FilesOfTypeNotCompressed=Súbory typu %s nekomprimuje servera HTTP CacheByServer=Cache serverom +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache v prehliadači CompressionOfResources=Kompresia odpovedí HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=So súčasnými prehliadačmi taká automatická detekcia nie je možná +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produkty modul nastavenia ServiceSetup=Služby modul nastavenia @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Faktúra použitá dáta Buy=Kúpiť Sell=Predávať InvoiceDateUsed=Faktúra použitá dáta -YourCompanyDoesNotUseVAT=Vaša spoločnosť bola definovaná nepoužívať DPH (Home - Nastavenie - Firma / Foundation), takže nie je DPH na možnosti nastavenia. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Účtovníctvo kód AccountancyCodeSell=Predaj účtu. kód AccountancyCodeBuy=Nákup účet. kód @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Kliknite pre Dial Nastavenie modulu -ClickToDialUrlDesc=Url volaná, keď sa vykonáva kliknutím na tel Piktogram. Do poľa URL môžete použiť značky
__PHONETO__ Ktorý bude nahradený s telefónnym číslom osoby volať
__PHONEFROM__ Ktorý bude nahradený telefónne číslo volajúceho (vaše)
__LOGIN__ Ktorý bude nahradený s clicktodial prihlásenie (definované na karte užívateľa)
__PASS__ Ktorý bude nahradený s clicktodial heslo (definované na karte užívateľa). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=Nastavenie API modulu ApiDesc=Zapnutím tohto modulu získate rôzne služby REST servra ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=API možete preskúmať na adrese +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Iba prvky zapnutého modulu sú odhalené ApiKey=Kľúč pre API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Všeobecné poradí zobrazenie BankOrderES=Španielčina BankOrderESDesc=Španielska poradí zobrazenie ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Spoločnosť Multi-modul nastavenia ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Pomocník pre databázovú zálohu SomethingMakeInstallFromWebNotPossible=Inštalácia externého modulu z webu nie je možná kôli : SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Zvýrazniť riadok pre prechode kurzora HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Spolupracuje so základnou témou, nemusí byť podporované externou témou BackgroundColor=Farba pozadia TopMenuBackgroundColor=Farba pozadia pre vrchné menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimálny oznamovací čas ( Vaša požiadávka musi byť z NbAddedAutomatically=Počet dní pridaných do počítadla užívateľov ( automaticky ) každý mesiac EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Hodnota dane z predaja RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=Užívateľ nemá definované povolenia TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sk_SK/compta.lang b/htdocs/langs/sk_SK/compta.lang index 2d35bf37a41..91c96839bd6 100644 --- a/htdocs/langs/sk_SK/compta.lang +++ b/htdocs/langs/sk_SK/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Suma platby sviatku: Account=Účet -Accountparent=Účet rodič -Accountsparent=Účty rodič +Accountparent=Parent account +Accountsparent=Parent accounts Income=Príjem Outcome=Výdavok ReportInOut=Výnosy / náklady @@ -56,6 +56,7 @@ MenuTaxAndDividends=Dane a dividendy MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Účtovníctvo / Treasury oblasť NewPayment=Nový platobný @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Obsahuje všetky účinné platby faktúry prijaté od klientov.
- Je založený na dátume úhrady týchto faktúr
-DepositsAreNotIncluded=- Kaucia faktúry, ani zahrnuté -DepositsAreIncluded=- Kaucia faktúry sú zahrnuté +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Správa o treťou stranou IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Predaj Journal DescPurchasesJournal=Nákupy Journal InvoiceRef=Faktúra čj. CodeNotDef=Nie je definované -WarningDepositsNotIncluded=Vklady faktúry nie sú zahrnuté v tejto verzii tohto modulu účtovníctva. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Termín vyplatenia dátum nemôže byť nižšia ako objektu dáta. Pcg_version=Chart of accounts models Pcg_type=PCG typ @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sk_SK/cron.lang b/htdocs/langs/sk_SK/cron.lang index 343b69e2325..18ca43ec3e7 100644 --- a/htdocs/langs/sk_SK/cron.lang +++ b/htdocs/langs/sk_SK/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Práca CronNone=Nikto CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Umožniť CronStatusInactiveBtn=Zakázať CronTaskInactive=Táto úloha je zakázaný CronId=Id -CronClassFile=Triedy (filename.class.php) -CronModuleHelp=Názov adresára modulu Dolibarr (tiež pracovať s externým modulom Dolibarr).
Napr načítať metódy objektu výrobku Dolibarr / htdocs / produktu / trieda / product.class.php, hodnota modulu je produkt -CronClassFileHelp=Názov súboru načítať.
Napr načítať metódy objektu výrobku Dolibarr / htdocs / produktu / trieda / product.class.php, hodnota názov triedy súboru je product.class.php -CronObjectHelp=Názov objektu načítať.
Napr načítať metódy objektu výrobku Dolibarr / htdocs / produktu / trieda / product.class.php, hodnota názov triedy súboru je výrobok -CronMethodHelp=Objekt spôsob štartu.
Napr načítať metódy objektu výrobku Dolibarr / htdocs / produktu / trieda / product.class.php, hodnota metódy je fecth -CronArgsHelp=Metóda argumenty.
Napr načítať metódy objektu výrobku Dolibarr / htdocs / produktu / trieda / product.class.php, môže byť hodnota paramters byť 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Systém príkazového riadka spustiť. CronCreateJob=Create new Scheduled Job CronFrom=Z @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sk_SK/errors.lang b/htdocs/langs/sk_SK/errors.lang index 1370f0edf3a..ff9dadd7021 100644 --- a/htdocs/langs/sk_SK/errors.lang +++ b/htdocs/langs/sk_SK/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Nepodarilo sa vytvoriť súbor "%s". ErrorFailToRenameDir=Nepodarilo sa premenovať adresár "%s" na "%s". ErrorFailToCreateDir=Nepodarilo sa vytvoriť adresár "%s". ErrorFailToDeleteDir=Nepodarilo sa zmazať adresár "%s". +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Tento kontakt je už definovaný ako kontakt pre tento typ. ErrorCashAccountAcceptsOnlyCashMoney=Tento bankový účet peňažný účet, takže prijíma platby typu iba v hotovosti. ErrorFromToAccountsMustDiffers=Zdrojovej a cieľovej bankové účty musí byť iný. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Nepodarilo sa zapísať do adresára %s ErrorFoundBadEmailInFile=Našiel nesprávne email syntaxe %s riadkov v súbore (%s príklad súlade s emailom = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Niektoré požadované pole sa nevypĺňa. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Nepodarilo sa vytvoriť adresár. Uistite sa, že webový server má užívateľ oprávnenie na zápis do adresára dokumentov Dolibarr. Ak je parameter safe_mode je povolené na tomto PHP, skontrolujte, či Dolibarr php súbory, vlastné pre užívateľa webového servera (alebo skupina). ErrorNoMailDefinedForThisUser=Žiadna pošta definované pre tohto používateľa ErrorFeatureNeedJavascript=Táto funkcia potrebujete mať Java scripty byť aktivovaný do práce. Zmeniť v nastavení - displej. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Užívateľský účet %s použiť na spustenie webový server nemá oprávnenie pre ktoré ErrorNoActivatedBarcode=Žiaden čiarový kód aktivovaný typ ErrUnzipFails=Nepodarilo sa rozbaliť %s s ZipArchive -ErrNoZipEngine=No motor rozbaliť %s súbor v tomto PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Súborov %s musí byť zips Dolibarr balíček ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL nie je nainštalovaný, je to nevyhnutné hovoriť s Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index 37ac2025e6c..e16ed9ff52d 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s nie je definovaný ErrorUnknown=Neznáma chyba ErrorSQL=Chyba SQL ErrorLogoFileNotFound=Súbor loga '%s' nebol nájdený -ErrorGoToGlobalSetup=Prejsť do spoločnosti / Nadácia nastavenia Ak chcete tento +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Choď na Nastavenie modulu to opraviť ErrorFailedToSendMail=Nepodarilo sa odoslať poštu (vysielač, prijímač = %s = %s) ErrorFileNotUploaded=Súbor nebol nahraný. Skontrolujte, či veľkosť nepresahuje maximálnu povolenú, že voľné miesto na disku a že už nie je súbor s rovnakým názvom v tomto adresári. @@ -153,6 +153,7 @@ Edit=Upraviť Validate=Potvrdiť ValidateAndApprove=Overiť a schváliť ToValidate=Ak chcete overiť +NotValidated=Not validated Save=Uložiť SaveAs=Uložiť ako TestConnection=Skúšobné pripojenie @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Spojenie Setup=Setup Alert=Upozornenie +MenuWarnings=Upozornenie Previous=Predchádzajúci Next=Ďalšie Cards=Karty @@ -308,6 +310,7 @@ Copy=Kopírovať Paste=Pasta Default=Štandardné DefaultValue=Východisková hodnota +DefaultValues=Default values Price=Cena UnitPrice=Jednotková cena UnitPriceHT=Jednotková cena (bez DPH) @@ -363,7 +366,8 @@ VATRate=Daňová sadzba Average=Priemer Sum=Súčet Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Voľba List=Zoznam FullList=Plný zoznam @@ -387,7 +391,7 @@ ActionRunningNotStarted=Ak chcete začať ActionRunningShort=In progress ActionDoneShort=Hotový ActionUncomplete=Neúplné -CompanyFoundation=Spoločnosti / Nadácia +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakty pre túto tretiu stranu ContactsAddressesForCompany=Kontakty / adries tretím stranám tejto AddressesForCompany=Adresy pre túto tretiu stranu @@ -405,8 +409,9 @@ Generate=Generovať Duration=Trvanie TotalDuration=Celkové trvanie Summary=Zhrnutie -DolibarrStateBoard=Štatistika -DolibarrWorkBoard=Pracovné úlohy doska +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Dostupný NotYetAvailable=Zatiaľ nie je k dispozícii NotAvailable=Nie je k dispozícii @@ -434,7 +439,7 @@ Reportings=Hlásenie Draft=Návrh Drafts=Dáma Validated=Overené -Opened=Otvorené +Opened=Otvorení New=Nový Discount=Zľava Unknown=Neznámy @@ -453,6 +458,7 @@ NextStep=Ďalší krok Datas=Údaje None=Nikto NoneF=Nikto +NoneOrSeveral=None or several Late=Neskoro LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Obrázok @@ -606,7 +612,8 @@ PartialWoman=Čiastočný TotalWoman=Celkový NeverReceived=Nikdy nedostal Canceled=Zrušený -YouCanChangeValuesForThisListFromDictionarySetup=Hodnoty tohto zoznamu môžete zmenit z menu Nastavenie - Slovník +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Farba Documents=Pripojené súbory @@ -642,6 +649,7 @@ FreeLineOfType=Voľný vstup typu CloneMainAttributes=Clone objekt s jeho hlavnými atribútmi PDFMerge=PDF Merge Merge=Spojiť +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Zobraziť stránku pre tlač hlavnú obsahovú časť MenuManager=Menu manažér WarningYouAreInMaintenanceMode=Pozor, ste v režime údržby, tak len prihlásení %s je dovolené používať aplikácie v túto chvíľu. @@ -708,6 +716,7 @@ from=z toward=k Access=Prístup SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Použite Ctrl + C skopírujte do schránky SaveUploadedFileWithMask=Uloženie súboru na serveri s názvom "%s" (inak "%s") OriginFileName=Pôvodný názov súboru @@ -718,7 +727,7 @@ ViewPrivateNote=Zobraziť poznámky XMoreLines=%s riadk(y/ov) skrytých PublicUrl=Verejné URL AddBox=Pridať box -SelectElementAndClickRefresh=Vyberte prvok a stlačte Obnoviť +SelectElementAndClick=Select an element and click %s PrintFile=Vytlačiť súbor %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Choďte na Domov - Nastavenie - Spoločnosť pre zmenu loga, alebo na Domov - Nastavenie - Zobrazenie pre skrytie loga. @@ -734,8 +743,8 @@ Hello=Ahoj Sincerely=Sincerely DeleteLine=Odstránenie riadka ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalendár GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiškálny rok +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pondelok Tuesday=Utorok @@ -817,5 +835,3 @@ SearchIntoContracts=Zmluvy SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index d246e62180c..89dd366e930 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Dátum narodenia BirthdayAlertOn=narodeniny výstraha aktívna BirthdayAlertOff=narodeniny upozornenia neaktívne +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervencie overená Notify_FICHINTER_SENTBYMAIL=Intervencie poštou @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Toto je test-mail (slovo test musí byť tučne). PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s je informácia v závislosti na tretích strán krajiny.
Napríklad pre krajiny %s, je to kód %s. DolibarrDemo=Dolibarr ERP / CRM demo -StatsByNumberOfUnits=Štatistika v rade produktov / služieb jednotiek -StatsByNumberOfEntities=Štatistika v počte odkazujúcich subjektov -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Zásah %s bol overený. EMailTextInvoiceValidated=Faktúra %s bol overený. diff --git a/htdocs/langs/sk_SK/projects.lang b/htdocs/langs/sk_SK/projects.lang index 128849d06e3..9ef949c8c39 100644 --- a/htdocs/langs/sk_SK/projects.lang +++ b/htdocs/langs/sk_SK/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Všetci PrivateProject=Projekt kontakty +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Všetky projekty MyProjectsDesc=Tento pohľad je obmedzená na projekty, ste kontakt (nech je to typ). ProjectsPublicDesc=Tento názor predstavuje všetky projekty, ktoré sú prístupné pre čítanie. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Tento názor predstavuje všetky projekty a úlohy (vaše užívateľs AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nový projekt AddProject=Create project DeleteAProject=Odstránenie projektu DeleteATask=Ak chcete úlohu ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Zobraziť projektu SetProject=Nastavenie projektu NoProject=Žiadny projekt definovaný alebo vlastné NbOfProjects=Nb projektov +NbOfTasks=Nb of tasks TimeSpent=Čas strávený TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Užívateľ TaskTimeNote=Poznámka TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Nový čas strávený +NewTimeSpent=Čas strávený MyTimeSpent=Môj čas strávený Tasks=Úlohy Task=Úloha @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=Nová úloha AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Činnosť Activities=Úlohy / aktivity MyActivities=Moje úlohy / činnosti @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Zoznam zákaziek súvisiacich s projektom +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Zoznam výkonov spojených s projektom ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekt kontakty ActionsOnProject=Udalosti na projekte YouAreNotContactOfProject=Nie ste kontakt tomto súkromnom projekte +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Odstrániť čas strávený ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Zdroje ProjectsDedicatedToThisThirdParty=Projekty venovaný tejto tretej osobe NoTasks=Žiadne úlohy tohto projektu LinkedToAnotherCompany=Súvisí s tretej strane -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Čas strávený je prázdny ThisWillAlsoRemoveTasks=Táto akcia bude tiež odstrániť všetky úlohy projektu (%s úlohy v túto chvíľu) a všetky vstupy času stráveného. IfNeedToUseOhterObjectKeepEmpty=Ak sú niektoré predmety (faktúra, objednávka, ...), ktoré patria do inej tretej osobe, musí byť spojené s projektom, vytvoriť, aby bol tento prázdny mať projekt bytia multi tretej strany. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index 606f39ed6af..df8fa63f7f3 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -3,9 +3,9 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Ločilo za stolpce za izvozno datoteko ACCOUNTING_EXPORT_DATE=Format datuma za izvozno datoteko ACCOUNTING_EXPORT_PIECE=Export the number of piece ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account -ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount -ACCOUNTING_EXPORT_DEVISE=Export currency +ACCOUNTING_EXPORT_LABEL=Izvozi naziv +ACCOUNTING_EXPORT_AMOUNT=Izvozi znesek +ACCOUNTING_EXPORT_DEVISE=Izvozi valuto Selectformat=Select the format for the file ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name ThisService=This service @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Dodaj računovodskega račun AccountAccounting=Računovodstvo račun AccountAccountingShort=Račun +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Glavna knjiga +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Prodam revija @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Revija NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debetne in Credit ne more imeti vrednosti hkrati - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Seznam računovodskih računov Pcgtype=Razred račun -Pcgsubtype=Pod razred račun +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Skupaj prodajna marža @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Napaka, ne morete izbrisati to računovodsko račun, ker se uporablja MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Koda +Nature=Narava +AccountingJournalType1=Various operation +AccountingJournalType2=Prodaja +AccountingJournalType3=Nabava +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Izvoz @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 6d5ebdb4082..9d90b068978 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interni uporabniki ExternalUsers=Zunanji uporabniki GUISetup=Prikaz SetupArea=Področje nastavitev +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Testiranje »upload-a« (v skladu z nastavitvami) IfModuleEnabled=Opomba: 'Da' velja samo, če je omogočen modul %s RemoveLock=Odstrani datoteko %s, če obstaja, da omogočite orodje za posodobitev. @@ -85,7 +86,7 @@ Mask=Maska NextValue=Naslednja vrednost NextValueForInvoices=Naslednja vrednost (fakture) NextValueForCreditNotes=Naslednja vrednost (dobropisi) -NextValueForDeposit=Naslednja vrednost (depozit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Naslednja vrednost (zamenjave) MustBeLowerThanPHPLimit=Opomba: vaš PHP omejuje velikost datoteke za prenos na %s %s, kot je vrednost tega parametra NoMaxSizeByPHPLimit=Opomba: V vaši PHP konfiguraciji ni nastavljenih omejitev @@ -103,7 +104,7 @@ MenuIdParent=ID nadrejenega menija DetailMenuIdParent=ID nadrejenega menija (0 za najvišji meni) DetailPosition=Številka za razvrstitev za določanje položaja menija AllMenus=Vsi -NotConfigured=Ni konfiguriran +NotConfigured=Module/Application not configured Active=Aktiven SetupShort=Nastavitve OtherOptions=Ostale opcije @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Ločilo tisočic Destination=Destinacija IdModule=ID modula IdPermissions=ID dovoljenj -Modules=Moduli LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Lokalizacijski parameteri ClientTZ=Časovni pas klienta (uporabnika) @@ -123,7 +123,8 @@ PHPTZ=Časovni pas PHP strežnika DaylingSavingTime=Poletni/zimski čas (uporabnik) CurrentHour=Ura PHP strežnika CurrentSessionTimeOut=Časovna omejitev trenutne seje -YouCanEditPHPTZ=Za nastavitev drugačne PHP časovne cone (ni obvezno), lahko poskusite dodati datoteko .htacces z vrstico, kot je ta "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Dovoljenja BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Prikazani so samo elementi omogočenih modulov . -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Šifrirana baza podatkov v conf.php (priporočen InstrucToEncodePass=Za kodiranje gesla v datoteki conf.php, zamenjajte vrstico
$dolibarr_main_db_pass="...";
z
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Za dekodiranje gesla (izbris) v datoteki conf.php, zamenjajte vrstico
$dolibarr_main_db_pass="crypted:...";
z
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Zaščita generiranih pdf datotek (aktivacija ni priporočena, prekinjeno masovno generiranje pdf) -ProtectAndEncryptPdfFilesDesc=Zaščiteni PDF se lahko berejo in tiskajo preko kateregakoli PDF bralnika. Vendar pa ni več možno popravljanje in kopiranje. Upoštevajte, da uporaba te funkcije onemogoči izdelavo globalnih zbirnih pdf datotek (kot so neplačani računi). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Funkcija DolibarrLicense=Licenca Developpers=Razvojniki/sodelavci @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Uradna tržnica za zunanje module/dodatke OfficialWebHostingService=Referenčne storitve spletnega gostovanja (gostovanje v oblaku) ReferencedPreferredPartners=Preferirani partnerji -OtherResources=Drugi izvori +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Glede dokumentacije za uporabnike in razvojnike (Doc, FAQ...),
poglejte na Dolibarr Wiki:
%s ForAnswersSeeForum=Za vsa ostala vprašanja/pomoč lahko uporabite Dolibarr forum:
%s HelpCenterDesc1=To področje vam omogoča dostop do storitve »Dolibarr Help Support«. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funkcija ni na voljo pri Unix sistemih. Preverite pro SubmitTranslation=Če prevod v ta jezik ni narejen v celoti ali če ste v prevodu našli napake, lahko popravite datoteke v mapi langs/%s in pošljete vaše spremembe na www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Nastavitve modula -ModulesSetup=Nastavitve modulov +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistem ModuleFamilyCrm=Upravljanje odnosov s strankami (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Trenutna različica Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Posodobitev strežnika brez povezave +WithCounter=Manage a counter GenericMaskCodes=Vnesete lahko kakršnokoli številčno masko. V tej maski lahko uporabite naslednje oznake:
{000000} ustreza številki, ki se poveča pri vsakem %s. Vnesite toliko ničel, kot je želena dolžina števca. Števec se bo zapolnil z ničlami na levi strani, da bi velikost ustrezala maski.
{000000+000} enako kot prej, vendar je desno od znaka + odmik, ki je uporabljen na prvi %s.
{000000@x} enako kot prej, vendar se števec resetira na 0, ko se doseže mesec x (x je med 1 in 12). Če je uporabljena ta opcija, ,in je x enak ali večji od 2, je zahtevana tudi sekvenca {yy}{mm} ali {yyyy}{mm}.
{dd} dan (01 do 31).
{mm} mesec (01 do 12).
{yy}, {yyyy} ali {y} leto, izraženo z 2, 4 ali 1 številko.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Vsi ostali znaki v maski bodo ostali nedotaknjeni.
Presledki niso dovoljeni.
-GenericMaskCodes4a=Primer 99-ega %s partnerja podjetja narejen 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Primer partnerja 99, kreiranega 2007-03-01:
GenericMaskCodes4c=Primer proizvoda, kreiranega 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} bo dal rezultat ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX bo dal rezultat 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Predlaga prilagodljivo številko glede na definirano masko. ServerAvailableOnIPOrPort=Strežnik je na voljo na naslovu %s na vratih %s ServerNotAvailableOnIPOrPort=Strežnik ni na voljo na naslovu %s na vratih %s @@ -369,19 +375,21 @@ Int=Celo število Float=Plavajoče DateAndTime=Datum in ura Unique=Enoličen -Boolean=Boolov izraz (potrditveno polje) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Cena ExtrafieldMail = E-pošta ExtrafieldUrl = Url ExtrafieldSelect = Izberi seznam ExtrafieldSelectList = Izberi iz tabele -ExtrafieldSeparator=Ločilo +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Geslo -ExtrafieldCheckBox=Potrditveno polje -ExtrafieldRadio=Radijski gumb -ExtrafieldCheckBoxFromList= Potrditveno polje iz tabele +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Poveži z objektom +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Seznam parametrov mora biti kot ključ,vrednost

na primer :
1,vrednost1
2,vrednost2
3,vrednost3
... ExtrafieldParamHelpradio=Seznam parametrov mora biti kot ključ,vrednost

na primer :
1,vrednost1
2,vrednost2
3,vrednost3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Polje +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Uporabniki & skupine Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Upravljanje računov in dobropisov za kupce. Upravljanje računov d Module40Name=Dobavitelji Module40Desc=Upravljanje dobaviteljev in nabava (naročila in računi) Module42Name=Sistemski dnevniki (syslog) -Module42Desc=Možnosti za prijavljanje (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Urejevalniki Module49Desc=Upravljanje urejevalnikov Module50Name=Proizvodi @@ -499,8 +521,8 @@ Module410Name=Internetni koledar Module410Desc=Integracija internetnega koledarja Module500Name=Posebni stroški Module500Desc=Upravljanje posebnih stroškov (davki, socialni ali fiskalni prispevki, dividende) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Posojilo Module520Desc=Upravljanje posojil Module600Name=Obvestila @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Možnost konverzije GeoIP Maxmind Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Skupine podjetij Module5000Desc=Omogoča upravljaje skupine podjetij Module6000Name=Potek dela @@ -591,7 +615,7 @@ Permission32=Kreiranje/spreminjanje proizvodov Permission34=Brisanje proizvodov Permission36=Pregled/upravljanje skritih proizvodov Permission38=Izvoz proizvodov -Permission41=Beri projekte in naloge (za katere sem jaz kontaktna oseba). Lahko se vnese porabljen čas za dodeljeno nalogo (časovnica) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Brisanje projektov Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Metode naročanja DictionarySource=Izvor ponudb/naročil DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modeli kontnih planov +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Predloge za elektronsko pošto DictionaryUnits=Enote DictionaryProspectStatus=Status možnih strank DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Status priložnosti za projekt/možnost SetupSaved=Nastavitve shranjene +SetupNotSaved=Setup not saved BackToModuleList=Nazaj na seznam modulov BackToDictionaryList=Nazaj na seznam slovarjev VATManagement=Upravljanje DDV @@ -921,7 +947,7 @@ Host=Server DriverType=Tip gonilnika SummarySystem=Povzetek sistemskih informacij SummaryConst=Seznam vseh Dolibarr nastavitvenih parametrov -MenuCompanySetup=Podjetje/ustanova +MenuCompanySetup=Company/Organisation DefaultMenuManager= Vmesnik za standardni meni DefaultMenuSmartphoneManager=Vmesnik za Smartphone meni Skin=Tema preobleke @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Sporočilo dneva MessageLogin=Sporočilo na prijavni strani +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Stalno polje za iskanje na levem meniju DefaultLanguage=Privzet jezik uporabe (koda jezika) EnableMultilangInterface=Omogočen večjezični vmesnik EnableShowLogo=Prikaži logo na levem meniju -CompanyInfo=Informacije o podjetju/ustanovi -CompanyIds=Registracijski podatki o podjetju/ustanovi +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Ime podjetja CompanyAddress=Naslov CompanyZip=Poštna številka @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Toleranca zakasnitve (v dnevih) pred opozorilom na zak Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Toleranca zakasnitve (v dnevih) pred opozorilom na potrebo po deponiranju čeka Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Ostale postavke na meniju so namenjene upravljanju opcijskih parametrov. LogEvents=Dogodki v zvezi z nadzorovanjem varnosti Audit=Nadzor @@ -987,7 +1015,7 @@ BrowserOS=OS brskalnika ListOfSecurityEvents=Seznam varnostnih dogodkov Dolibarr SecurityEventsPurged=Varnostni dogodki očistimo LogEventDesc=Tukaj lahko omogočite beleženje dnevnika Dolibarr varnostnih dogodkov. Administratorji lahko vidijo njegovo vsebino preko menija Sistemska orodja - Nadzor. Pozor, ta funkcija lahko uporabi veliko količino podatkov iz baze. -AreaForAdminOnly=Te funkcije lahko uporablja samo administrator. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistemske informacije so raznovrstne tehnične informacije, ki so na voljo samo v bralnem načinu in jih vidi samo administrator. SystemAreaForAdminOnly=To področje je na voljo samo administratorju. Nobeno od Dolibarr dovoljenj ne more spremeniti teh omejitev. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Omogočiti morate vsaj 1 modul ClassNotFoundIntoPathWarning=Ratzred %s ni najedn na poti PHP YesInSummer=Da poleti -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Shranjevanje seje kriptirano s Suhosin ConditionIsCurrently=Trenutni pogoj je %s YouUseBestDriver=Uporabljate gonilnik %s , ki je najboljši trenutno na voljo @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Strokovno Id edinstven MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Izvozna povezava na %s format je na voljo na naslednji povezavi: %s ##### Invoices ##### BillsSetup=Nastavitve modula za račune BillsNumberingModule=Modul za številčenje računov in dobropisov BillsPDFModules=Modeli obrazcev računov +PaymentsPDFModules=Payment documents models CreditNote=Dobropis CreditNotes=Dobropisi ForceInvoiceDate=Vsili datum računa kot datum potrditve @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Datoteke tipa %s niso shranjene v predpomnilniku HTTP stre FilesOfTypeCompressed=Datoteke tipa %s so komprimirane v HTTP strežniku FilesOfTypeNotCompressed=Datoteke tipa %s niso komprimirane v HTTP strežniku CacheByServer=Predpomnilnik v strežniku +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Predpomnilnik v brskalniku CompressionOfResources=Kompresija HTTP odgovorov +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Taka avtomatska zaznava ni možna v trenutnem brskalniku +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Nastavitve modula za proizvode ServiceSetup=Storitve modul nastavitev @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Predvideva se datum računa Buy=Nakup Sell=Prodaja InvoiceDateUsed=Uporabljen datum računa -YourCompanyDoesNotUseVAT=Vaše podjetje ni davčni zavezanec (Domov - Nastavitve - Podjetje/ustanova), zato ni možno nastaviti opcij za DDV. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Računovodstvo zakonik AccountancyCodeSell=Računovodska koda prodaje AccountancyCodeBuy=Računovodska koda nabave @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Avtomatsko nastavi ta status aktivnosti v iskalni f AGENDA_DEFAULT_VIEW=Kateri zavihek naj se privzeto odpre ko izberete meni Dnevni red AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Nastavitve modula za klicanje s klikom -ClickToDialUrlDesc=Po kliku na piktogram se izvede klic na Url. Na url lahko uporabite ikono
__PHONETO__ ki predstavlja telefon klicanega
__PHONEFROM__ ki predstavlja telefon klicatelja (vaša številka)
__LOGIN__ ki predstavlja vašo prijavo na klicanje s klikom (določena z vašo uporabniško kodo)
__PASS__ ki predstavlja vaše geslo za klicanje s klikom (določena z vašo uporabniško kodo). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=Nastavitev modula API ApiDesc=Z omogočenjem tega modula postane Dolibarr REST strežnik za zagotavljanje različnih spletnih storitev. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Izpostavljeni so samo elementi omogočenih modulov ApiKey=Ključ za API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Splošno zaporedje prikaza BankOrderES=Španski BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Nastavitev modula za več podjetij ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Čarovnik za ustvarjanje datoteke z varnostnimi kopijami podatk SomethingMakeInstallFromWebNotPossible=Instalacija eksternega modula s spletnega vmesnika ni možna zaradi naslednjega razloga: SomethingMakeInstallFromWebNotPossible2=Zaradi tega razloga je tukaj opisan postopek samo ročnih korakov, ki jih lahko naredi le uporabnik z dovoljenjem. InstallModuleFromWebHasBeenDisabledByFile=Instalacijo zunanjega modula iz aplikacije je onemogočil vaš administrator. Prositi ga morate, naj odstrani datoteko %s, da bi omogočil to funkcijo. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Osvetli vrstice tabele, preko katerih je šla miška HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Barva ozadja TopMenuBackgroundColor=Barva ozadja za zgornji meni @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimalni rok za obvestilo (Vaš zahtevek za odsotnost mora NbAddedAutomatically=Število dodanih dni pri števcu uporabnikov (avtomatsko) vsak mesec EnterAnyCode=To polje vsebuje referenco identifikacijske vrstice. Vnesite poljubno vrednost, vendar brez posebnih znakov. UnicodeCurrency=Med oklepaja vnesite seznam bitnih števil, ki določajo valutni simbol. Na primer: za $, vnesite [36] - za brazilski real R$ [82,36] - za €, vnesite [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Položaj vrstice v kombiniranih seznamih SellTaxRate=Stopnja prodajnega davka RecuperableOnly=Yes z DDV "Non Perçue Récupérable" določen za nekatera področja v Franciji. Obdržite vrednost "No" v vseh drugih primerih. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sl_SI/compta.lang b/htdocs/langs/sl_SI/compta.lang index 3f37d21ffd9..58cc2377639 100644 --- a/htdocs/langs/sl_SI/compta.lang +++ b/htdocs/langs/sl_SI/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Nastavitve RemainingAmountPayment=Znesek preostalih plačil : Account=Konto -Accountparent=Nadrejen račun -Accountsparent=Ndrejeni računi +Accountparent=Parent account +Accountsparent=Parent accounts Income=Prejemek Outcome=Izdatek ReportInOut=Prejemek / Izdatek @@ -56,6 +56,7 @@ MenuTaxAndDividends=Davki in dividende MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Področje računovodstva/blagajne NewPayment=Novo plačilo @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Vključuje vsa dejanska plačila kupcev.
- Temelji na datumu plačila teh računov
-DepositsAreNotIncluded=- Vlog računi so prav tako vključeni -DepositsAreIncluded=- Vključena so vlog računi +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Poročilo tretjih oseb IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Poročilo o prodaji DescPurchasesJournal=Poročilo o nabavi InvoiceRef=Referenca računa CodeNotDef=Ni definirano -WarningDepositsNotIncluded=Avansni računi niso vključeni v tej verziji računovodskega modula. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Datum plačila ne more biti nižji od datuma storitve. Pcg_version=Chart of accounts models Pcg_type=Pcg način @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sl_SI/cron.lang b/htdocs/langs/sl_SI/cron.lang index ff381bf9d15..8195afc58df 100644 --- a/htdocs/langs/sl_SI/cron.lang +++ b/htdocs/langs/sl_SI/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Naloga CronNone=Nič CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Omogočeno CronStatusInactiveBtn=Onemogoči CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Od @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sl_SI/dict.lang b/htdocs/langs/sl_SI/dict.lang index a302c28e995..3a15500a30a 100644 --- a/htdocs/langs/sl_SI/dict.lang +++ b/htdocs/langs/sl_SI/dict.lang @@ -138,7 +138,7 @@ CountryLS=Lesoto CountryLR=Liberija CountryLY=Libija CountryLI=Lihtenštajn -CountryLT=Lithuania +CountryLT=Litva CountryLU=Luksemburg CountryMO=Makao CountryMK=Makedonija diff --git a/htdocs/langs/sl_SI/errors.lang b/htdocs/langs/sl_SI/errors.lang index 21953a5bcfe..af30bdb6101 100644 --- a/htdocs/langs/sl_SI/errors.lang +++ b/htdocs/langs/sl_SI/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Napaka pri kreiranju datoteke '%s'. ErrorFailToRenameDir=Napaka pri preimenovanju mape '%s' v '%s'. ErrorFailToCreateDir=Napaka pri kreiranju mape '%s'. ErrorFailToDeleteDir=Napaka pri brisanju mape '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Ta kontakt je že definiran kot kontakt istega tipa. ErrorCashAccountAcceptsOnlyCashMoney=Ta bančni račun je gotovinski, zato so možna samo gotovinska plačila. ErrorFromToAccountsMustDiffers=Plačilni in ciljni bančni račun morata biti različna. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Napaka pri pisanju v mapo %s ErrorFoundBadEmailInFile=Napačna email sintaksa v vrstici %s v datoteki (naprimer vrstica %s z emailom=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Nekatera zahtevana polja niso izpolnjena. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Kreiranje mape ni uspelo. Preverite, če ima uporabnik internetne strani dovoljenje za pisanje v mapo z Dolibarr dokumenti. Če je parameter safe_mode v tem PHP omogočen, preverite če je lastnik Dolibarr php datotek uporabnik web strežnika (ali skupina). ErrorNoMailDefinedForThisUser=Ta uporabnik nima določenega Email naslova ErrorFeatureNeedJavascript=Za aktiviranje ali delovanje te funkcije je potreben javascript. Spremenite »Nastavitve – Prikaz«. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Uporabniški račun %s uporablja za izvedbo spletni strežnik nima dovoljenja za to ErrorNoActivatedBarcode=Noben tip črtne kode ni aktiviran ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index ba7ff980af3..e7bc7f7da7f 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s ni definiran ErrorUnknown=Neznana napaka ErrorSQL=SQL napaka ErrorLogoFileNotFound=Datoteka z logotipom '%s' ni bila najdena -ErrorGoToGlobalSetup=Popravite v meniju 'Nastavitve', 'Podjetje/Ustanova' +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Popravite v meniju 'Nastavitve', 'Moduli' ErrorFailedToSendMail=Napaka pri pošiljanju E-maila (pošiljatelj=%s, prejemnik=%s) ErrorFileNotUploaded=Datoteka ni bila naložena. Preverite, če velikost ne presega omejitve, če je na disku dovolj prostora ali če datoteka z istim imenom že obstaja v tej mapi. @@ -153,6 +153,7 @@ Edit=Uredi Validate=Potrdi ValidateAndApprove=Potrdi in odobri ToValidate=Za potrditev +NotValidated=Not validated Save=Shrani SaveAs=Shrani kot TestConnection=Test povezave @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Ni zahtevana funkcija odklopa pri avtentifikacijskem Connection=Prijava Setup=Nastavitve Alert=Opozorilo +MenuWarnings=Opozorila Previous=Prejšnji Next=Naslednji Cards=Kartice @@ -308,6 +310,7 @@ Copy=Kopiraj Paste=Prilepi Default=Privzeto DefaultValue=Privzeta vrednost +DefaultValues=Default values Price=Cena UnitPrice=Cena enote UnitPriceHT=Cena enote (neto) @@ -363,7 +366,8 @@ VATRate=Stopnja DDV Average=Povprečje Sum=Vsota Delta=Razlika -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Opcija List=Seznam FullList=Celoten seznam @@ -387,7 +391,7 @@ ActionRunningNotStarted=Nezačete ActionRunningShort=In progress ActionDoneShort=Končane ActionUncomplete=Nepopolno -CompanyFoundation=Podjetje/Ustanova +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakti tega partnerja ContactsAddressesForCompany=Kontakti/naslovi za tega partnerja AddressesForCompany=Naslovi za tega partnerja @@ -405,8 +409,9 @@ Generate=Ustvari Duration=Trajanje TotalDuration=Skupno trajanje Summary=Povzetek -DolibarrStateBoard=Statistika -DolibarrWorkBoard=Tabla z delovnimi nalogami +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Na voljo NotYetAvailable=Še ni na voljo NotAvailable=Ni na voljo @@ -453,6 +458,7 @@ NextStep=Naslednji korak Datas=Podatki None=Nič NoneF=Nič +NoneOrSeveral=None or several Late=Prekoračeno LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Slika @@ -606,7 +612,8 @@ PartialWoman=Delni TotalWoman=Skupna NeverReceived=Nikoli prejeto Canceled=Preklicano -YouCanChangeValuesForThisListFromDictionarySetup=Vrednosti za ta seznam lahko spremenite na meniju 'Nastavitve – Slovarji' +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Barva Documents=Povezane datoteke @@ -642,6 +649,7 @@ FreeLineOfType=Prost vnos tipa CloneMainAttributes=Kloniraj objekt z osnovnimi atributi PDFMerge=Spoji PDF Merge=Spoji +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Prikaži stran za izpis področja z osnovno vsebino MenuManager=Upravljalnik menija WarningYouAreInMaintenanceMode=Pozor, ste v vzdrževalnem načinu, zato je trenutno samo prijavljenemu %s dovoljena uporaba aplikacije. @@ -708,6 +716,7 @@ from=od toward=proti Access=Dostop SelectAction=Izberi akcijo +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Uporabi Ctrl+C za kopiranje na odložišče SaveUploadedFileWithMask=Shrani datoteko na strežnik z imenom "%s" (otherwise "%s") OriginFileName=Originalno ime datoteke @@ -718,7 +727,7 @@ ViewPrivateNote=Glej opombe XMoreLines=%s zasenčena(ih) vrstic PublicUrl=Javni URL AddBox=Dodaj okvir -SelectElementAndClickRefresh=Izberi element in klikni osveži +SelectElementAndClick=Select an element and click %s PrintFile=Natisni datoteko %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Pojdite na Domov - Nastavitve - Podjetje za spremembo logotipa oz. na Domov - Nastavitve - Prikaz za njegovo skritje. @@ -734,8 +743,8 @@ Hello=Pozdravljeni Sincerely=S spoštovanjem DeleteLine=Izbriši vrstico ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Koledar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiskalno leto +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Ponedeljek Tuesday=Torek @@ -817,5 +835,3 @@ SearchIntoContracts=Pogodbe SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Stroškovna poročila SearchIntoLeaves=Dopusti - -BulkActions=Bulk actions diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index 91ef2e2eebd..bc2d5c993cc 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Datum rojstva BirthdayAlertOn=Vklopljeno opozorilo na rojstni dan BirthdayAlertOff=Izklopljeno opozorilo na rojstni dan +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Potrjena intervencija Notify_FICHINTER_SENTBYMAIL=Intervencija poslana po EMailu @@ -61,13 +74,14 @@ PredefinedMailTestHtml=To je test mail (beseda test mora biti v krepkem t PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nV prilogi je ponudba __PROPREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nV prilogi je zahtevek za ceno __ASKREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nV prilogi je potrditev naročila __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nV prilogi je naše naročilo __ORDERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nV prilogi je pošiljka __SHIPPINGREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nV prilogi je intervencija __FICHINTERREF__\n\n__PERSONALIZED__S spoštovanjem\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s je informacija, odvisna od države partnerja.
Na primer za državo %s, je koda %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistika o številu enot proizvodov/storitev -StatsByNumberOfEntities=Statistika o številu povezanih entitet -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Potrjena intervencija %s EMailTextInvoiceValidated=Potrjen račun %s diff --git a/htdocs/langs/sl_SI/projects.lang b/htdocs/langs/sl_SI/projects.lang index b4cdec94699..bfb535d36ba 100644 --- a/htdocs/langs/sl_SI/projects.lang +++ b/htdocs/langs/sl_SI/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Projekti v skupni rabi PrivateProject=Kontakti za projekt +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Vsi projekti MyProjectsDesc=Ta pogled je omejen na projekte za katere ste vi kontaktna oseba (ne glede na vrsto). ProjectsPublicDesc=To pogled predstavlja vse projekte, za katere imate dovoljenje za branje. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Ta pogled predstavlja vse projekte in naloge (vaše uporabniško dovol AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nov projekt AddProject=Ustvari projekt DeleteAProject=Izbriši projekt DeleteATask=Izbriši nalogo ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Prikaži projekt SetProject=Nastavi projekt NoProject=Nimate definiranega ali lastnega projekta NbOfProjects=Število projektov +NbOfTasks=Nb of tasks TimeSpent=Porabljen čas TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=Uporabnik TaskTimeNote=Beležka TaskTimeDate=Datum -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=Nov porabljen čas +NewTimeSpent=Porabljen čas MyTimeSpent=Moj porabljen čas Tasks=Naloge Task=Naloga @@ -59,6 +64,7 @@ TaskDescription=Opis naloge NewTask=Nova naloga AddTask=Ustvari nalogo AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivnost Activities=Naloge/aktivnosti MyActivities=Moje naloge/aktivnosti @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Seznam pogodb, povezanih s projektom +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Seznam intervencij, povezanih s projektom ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Kontakti za projekt ActionsOnProject=Aktivnosti o projektu YouAreNotContactOfProject=Niste kontakt tega privatnega projekta +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Izbrišite porabljen čas ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Viri ProjectsDedicatedToThisThirdParty=Projekti, ki so povezani s tem partnerjem NoTasks=Ni nalog za ta projekt LinkedToAnotherCompany=Povezane z drugimi partnerji -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Ni porabljenega časa ThisWillAlsoRemoveTasks=Ta aktivnost bo tudi izbrisala vse naloge projekta (%s trenutne naloge) in vse vnose porabljenega časa. IfNeedToUseOhterObjectKeepEmpty=Če nekateri objekti (računi, naročila, ...), ki pripadajo drugemu partnerju, morajo biti vezani na projekt, ki se kreira, pustite polje prazno, da je projekt lahko vezan na več partnerjev. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index b087433178a..a63c99dacf1 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index 34430e3ced7..15406423955 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Përdorues të brendshëm ExternalUsers=Përdorues të jashtëm GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=Të gjitha -NotConfigured=Modul i pakonfiguruar +NotConfigured=Module/Application not configured Active=Aktiv SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modulet LanguageBrowserParameter=Parametër %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Fjalëkalimi -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Furnitorët Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Adresa CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Bli Sell=Shit InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanjisht BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sq_AL/compta.lang b/htdocs/langs/sq_AL/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/sq_AL/compta.lang +++ b/htdocs/langs/sq_AL/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sq_AL/cron.lang b/htdocs/langs/sq_AL/cron.lang index 2101c395149..8d6477e206f 100644 --- a/htdocs/langs/sq_AL/cron.lang +++ b/htdocs/langs/sq_AL/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Aktivizo CronStatusInactiveBtn=Çaktivizo CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sq_AL/errors.lang b/htdocs/langs/sq_AL/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/sq_AL/errors.lang +++ b/htdocs/langs/sq_AL/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index b2a7b7a14c0..d486ef50274 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Hapur New=New Discount=Ulje Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Anulluar -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Lejet - -BulkActions=Bulk actions diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang index 49ed25e0ec8..22b216a0816 100644 --- a/htdocs/langs/sq_AL/other.lang +++ b/htdocs/langs/sq_AL/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/sq_AL/projects.lang b/htdocs/langs/sq_AL/projects.lang index 95618bc5db6..325c567b86c 100644 --- a/htdocs/langs/sq_AL/projects.lang +++ b/htdocs/langs/sq_AL/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index 4e1a88f6681..37c63ff56f5 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Dodaj računovodstveni nalog AccountAccounting=Računovodstveni nalog AccountAccountingShort=Račun +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Glavna knjiga +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Stanje računa CAHTF=Ukupna nabavka bez PDV-a @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Izveštaj prodaje @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Izveštaj NumPiece=Deo broj TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finansijski izveštaji ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finansijski izveštaji uključujući sve vrste uplata preko bankovnog računa -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit i Kredit ne smeju imati vrednost u isto vreme - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Lista računovodstvenih naloga Pcgtype=Klasa računa -Pcgsubtype=Pod klasom računa +Pcgsubtype=Subclass of account TotalVente=Ukupni obrt pre poreza TotalMarge=Ukupna prodajna marža @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Greška, ne možete opbrisati ovaj računovodstveni nalog, jer je u upotrebi MvtNotCorrectlyBalanced=Transakcija nema dobar balans. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Priroda +AccountingJournalType1=Various operation +AccountingJournalType2=Prodaje +AccountingJournalType3=Nabavke +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Izvozi @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index 0b463079387..a36197cc8d3 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=Ukoliko prevod za ovaj jezik nije kompletan ili ukoliko pronađete greške, možete ga ispraviti izmenom fajlova u folderu langs/%s i da prosledite promene na www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Ukoliko prevod ovog jezika nije kompletan ili ukoliko pronađete greške, možete ih ispraviti editom fajlova u folderu langs/%s i proslediti izmene na dolibarr.org/forum ili na github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Polje +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max dužina za liste DefaultMaxSizeShortList=Default max dužina kratkih lista (npr u kartici klijenta) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Prag tolerancije (u danima) pre pojavljivanja upozorenja za odobrenje troškova SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Ovaj modul omogućava klik na brojeve telefona. Klik na ovu ikonu će izvršiti poziv sa Vašeg telefona na odgovarajući broj. Ova funkcionalnost se može koristiti ukoliko se Dolibarr poveže sa call center sistemom koji može pozvati telefonski broj sa SIP sistema. ClickToDialUseTelLink=Samo koristi link "tel:" na telefonskim brojevima ClickToDialUseTelLinkDesc=Koristi ovu metodu ako korisnici imaju softphone ili softverski interfejs instaliran na istom računaru gde je i browser - biće pozvana kada kliknete na link u browseru koji počinje sa "tel:". Ukoliko Vam je potrebno celokupno server rešenje (bez instalacije softvera), ovde ostavie "Ne" i popunite sledeće polje. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Boja kojom će linija biti označena kada se mišem pređe preko nje (ostavite prazno kako linija ne bi bila označena) TextTitleColor=Color of page title LinkColor=Boja linkova -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sr_RS/compta.lang b/htdocs/langs/sr_RS/compta.lang index 80d0a312e94..26887818c87 100644 --- a/htdocs/langs/sr_RS/compta.lang +++ b/htdocs/langs/sr_RS/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Prikazani iznosi su sračunati po pravili Param=Podešavanja RemainingAmountPayment=Preostali iznos za plaćanje : Account=Nalog -Accountparent=Matični nalog -Accountsparent=Matični nalog +Accountparent=Parent account +Accountsparent=Parent accounts Income=Prihod Outcome=Rashod ReportInOut=Prihod / Rashod @@ -56,6 +56,7 @@ MenuTaxAndDividends=Takse i dividende MenuSocialContributions=Socijalni/poreski troškovi MenuNewSocialContribution=Novi porez/doprinos NewSocialContribution=Novi porez/doprinos +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Porezi/doprinosi za uplatu AccountancyTreasuryArea=Oblast računovodstva/trezora NewPayment=Nova uplata @@ -134,8 +135,8 @@ RulesResultDue=- Sadrži sve račune, troškove, PDV, donacije, bez obzira da li RulesResultInOut=- Sadrži realne uplate računa, troškova, PDV-a i zarada.
- Zasniva se na datumima isplate računa, troškova, PDV-a i zarada. Za donacije se zasniva na datumu donacije. RulesCADue=- Sadrži račune izdate klijentu, bez obzira da li su plaćeni ili ne.
- Zasniva se na datumu potvrde računa.
RulesCAIn=- Sadrži sve realne isplate računa primljene od klijenata.
- Zasniva se na datumu isplate računa
-DepositsAreNotIncluded=- Računi depozita nisu uključeni -DepositsAreIncluded=- Računi depozita su uključeni +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Izveštaj po subjektu IRPF LT1ReportByCustomersInInputOutputModeES=Izveštaj po RE subjektima VATReport=PDV izveštaj @@ -169,7 +170,7 @@ DescSellsJournal=Dnevnik prodaje DescPurchasesJournal=Dnevnik nabavke InvoiceRef=Ref. Računa CodeNotDef=Nije definisano -WarningDepositsNotIncluded=Računi depozita nisu uračunati u ovoj verziji sa ovim modulom računvodstva. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Rok isplate ne može biti pre datuma objekta. Pcg_version=Chart of accounts models Pcg_type=Pcg tip @@ -189,8 +190,10 @@ AccountancyJournal=Računovodstveni kodovi ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Dupliraj porez/doprinos ConfirmCloneTax=Potvrdi dupliranje uplate poreza/doprinosa CloneTaxForNextMonth=Dupliraj za sledeći mesec @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Socijalni/poreski troškovi ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sr_RS/cron.lang b/htdocs/langs/sr_RS/cron.lang index 1bb3caad9fd..7dad7beadc8 100644 --- a/htdocs/langs/sr_RS/cron.lang +++ b/htdocs/langs/sr_RS/cron.lang @@ -25,7 +25,7 @@ CronDelete=Obriši planirane operacije CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Modul planiranih aktivnosti omogućava izvršenje planirane aktivnosti +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Operacija CronNone=Nema CronDtStart=Ne pre @@ -57,12 +57,12 @@ CronStatusActiveBtn=Aktiviraj CronStatusInactiveBtn=Deaktiviraj CronTaskInactive=Operacije je deaktivirana CronId=Id -CronClassFile=Klase (filename.class.php) -CronModuleHelp=Naziv Dolibarr modul foldera (radi i sa eksternim Dolibarr modulima).
Na primer za fetch metodu Dolibarr Product objekta /htdocs/product/class/product.class.php, vrednost modula je product -CronClassFileHelp=Naziv fajla za učitavanje.
Na primer za fetch metodu Dolibarr Product objekta /htdocs/product/class/product.class.php, naziv fajla za učitavanje je product.class.php -CronObjectHelp=Naziv objekta za učitavanje.
Na primer za fetch metodu Dolibarr Product objekta /htdocs/product/class/product.class.php, naziv objekta za učitavanje je Product -CronMethodHelp=Naziv metode za učitavanje.
Na primer za fetch metodu Dolibarr Product objekta /htdocs/product/class/product.class.php, naziv metode je fetch -CronArgsHelp=Argumenti metode.
Na primer za fetch metodu Dolibarr Product objekta /htdocs/product/class/product.class.php, parametri mogu biti 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Komandna linija za izvršenje CronCreateJob=Kreiraj novu planiranu operaciju CronFrom=Od @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Operacija deaktivirana MakeLocalDatabaseDumpShort=Bekap lokalne baze MakeLocalDatabaseDump=Kreirajte odbacivanje lokalne baze -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sr_RS/errors.lang b/htdocs/langs/sr_RS/errors.lang index 72137d34f13..bb1752b10b1 100644 --- a/htdocs/langs/sr_RS/errors.lang +++ b/htdocs/langs/sr_RS/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Greška prilikom kreacije fajla '%s'. ErrorFailToRenameDir=Greška prilikom preimenovanja foldera '%s' u '%s'. ErrorFailToCreateDir=Greška prilikom kreacije foldera '%s'. ErrorFailToDeleteDir=Greška prilikom brisanja foldera '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Kontakt je već definisan kao kontakt za ovaj tip. ErrorCashAccountAcceptsOnlyCashMoney=Ovaj bankovni raču je keš račun i prihvata samo keš uplate. ErrorFromToAccountsMustDiffers=Izvorni i ciljani bankovni račun moraju biti različiti. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Greška prilikom pisanja u folder %s ErrorFoundBadEmailInFile=Pronađeni su mailovi sa pogrešnom sintaksom za %s linija u fajlu (primer linija %s sa mailom %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Neka obavezna polja nisu popunjena +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Greška prilikom kreacije foldera. Proverite da li Web server nalog ima prava da piše u Dolibarr documents folderu. Ako je parametar safe_mode aktivan u PHP-u, proverite da li Dolibarr php fajlovi pripadaju korisniku (ili grupi) Web server naloga. ErrorNoMailDefinedForThisUser=Mail nije definisan za ovog korisnika ErrorFeatureNeedJavascript=Za ovu funkcionalnost morate aktivirati javascript. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Količina za liniju na fakturi klijenta ErrorWebServerUserHasNotPermission=Korisnik %s nema prava za izvršavanje na web serveru ErrorNoActivatedBarcode=Barcode tip nije aktiviran ErrUnzipFails=Greška prilikom dekompresije %s -ErrNoZipEngine=PHP ne podržava dekompresiju za fajl %s +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Fajl %s mora biti Dolibarr zip paket ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL nije instaliran, ovo je neophodno za Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Nema selektovane globalne promenljive ErrorFieldMustBeANumeric=Polje %s mora biti numeričko ErrorMandatoryParametersNotProvided=Obavezni parametar(i) nije dat ErrorOppStatusRequiredIfAmount=Podesili ste procenjeni iznos za ovu priliku, tako da morate uneti i status. +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Pogrešna definicija Menu Array u Module Descriptoru (pogrešna vrednost za fk_menu) ErrorSavingChanges=Došlo je do greške prilikom čuvanja promena. ErrorWarehouseRequiredIntoShipmentLine=Magacin je neophodan na liniji do isporuke @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Lozinka je podešena za ovog člana, ali korisnik nije kreiran. To znači da je lozinka sačuvana, ali se član ne može ulogovati na Dolibarr. Informaciju može koristiti neka eksterna komponenta, ali ako nemate potrebe da definišete korisnika/lozinku za članove, možete deaktivirati opciju "Upravljanje lozinkama za svakog člana" u podešavanjima modula Članovi. Ukoliko morate da kreirate login, ali Vam nije potrebna lozinka, ostavite ovo polje prazno da se ovo upozorenje ne bi prikazivalo. Napomena: email može biti korišćen kao login ako je član povezan sa korisnikom. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Datum uplate (%s) je pre datuma fakture ( WarningTooManyDataPleaseUseMoreFilters=Previše podataka (preko %s linija). Molimo koristite filtere ili podesite konstantu %s na veći limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Vaša prijava je promenjena. Iz sigurnosnih razloga se morate ponovo ulogovati. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 5341d8b02d9..9344892419a 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parametar %s nije definisan ErrorUnknown=Nepoznata greška ErrorSQL=Greška u SQL-u ErrorLogoFileNotFound=Logo fajl '%s' nije pronađen -ErrorGoToGlobalSetup=Idite u 'Company/Foundation' podešavanja da ovo ispravite +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Idite u podešavanja Modula da ovo ispravite ErrorFailedToSendMail=Greška u slanju mail-a (pošiljalac=%s, primalac=%s) ErrorFileNotUploaded=Fajl nije uploadovan. Proverite da li je fajl preveliki, da li ima dovoljno prostora na disku i da li postoji fajl sa istim imenom u ovom folderu. @@ -153,6 +153,7 @@ Edit=Izmeni Validate=Potvrdi ValidateAndApprove=Validiraj i Odobri ToValidate=Potvrditi +NotValidated=Not validated Save=Sačuvaj SaveAs=Sačuvaj kao TestConnection=Testiraj konekciju @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Nema funkcionalnosti za diskonekciju sa %s mo Connection=Konekcija Setup=Podešavanja Alert=Alert +MenuWarnings=Alerts Previous=Prethodno Next=Sledeće Cards=Kartice @@ -308,6 +310,7 @@ Copy=Kopiraj Paste=Zalepi Default=Default DefaultValue=Default vrednost +DefaultValues=Default values Price=Cena UnitPrice=Jedinična cena UnitPriceHT=Jedinična cena (neto) @@ -363,7 +366,8 @@ VATRate=Stopa poreza Average=Prosek Sum=Suma Delta=Razlika -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Opcija List=Lista FullList=Cela lista @@ -387,7 +391,7 @@ ActionRunningNotStarted=Započeti ActionRunningShort=In progress ActionDoneShort=Završeno ActionUncomplete=nepotpuno -CompanyFoundation=Kompanija/Fondacija +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakti za ovaj subjekat ContactsAddressesForCompany=Kontakti/adrese za ovaj subjekat AddressesForCompany=Adrese za ovaj subjekat @@ -405,8 +409,9 @@ Generate=Gereriši Duration=Trajanje TotalDuration=Ukupno trajanje Summary=Rezime -DolibarrStateBoard=Statistike -DolibarrWorkBoard=Pregled radnih zadataka +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Dostupno NotYetAvailable=Još uvek nedostupno NotAvailable=Nedostupno @@ -434,7 +439,7 @@ Reportings=Izveštavanje Draft=Draft Drafts=Draft Validated=Validirano -Opened=Opened +Opened=Otvoreno New=Novo Discount=Popust Unknown=Nepoznato @@ -453,6 +458,7 @@ NextStep=Sledeće Datas=Podaci None=Ništa NoneF=Ništa +NoneOrSeveral=None or several Late=Kasni LateDesc=Odloži definisanje da li je zapis zakasneo ili ne zavisi od vašeg podešenja. Zamolite Vašeg administratora da promeni odlaganje u Naslovna-Podešenja-Upozorenja Photo=Slika @@ -606,7 +612,8 @@ PartialWoman=Delimično TotalWoman=Celo NeverReceived=Nije primljena Canceled=Otkazano -YouCanChangeValuesForThisListFromDictionarySetup=Možete izmeniti vrednosti ove liste iz menija podešavanja - rečnik +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Možete postaviti podrazumevane vrednosti pri kreiranju novog zapisa u modul podešavanja Color=Boja Documents=Povezani fajlovi @@ -642,6 +649,7 @@ FreeLineOfType=Slobodan unos tipa CloneMainAttributes=Dupliraj objekat sa glavnim atributima PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Prikaži stranu za štampanje glavnog sadržaja MenuManager=Menu manager WarningYouAreInMaintenanceMode=Upozorenje, trenutno ste u modu održavanja, samo korisnik %s može trenutno koristiti aplikaciju. @@ -708,6 +716,7 @@ from=od toward=ka Access=Pristup SelectAction=Selektiraj akciju +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Ctrl+C za kopiranje SaveUploadedFileWithMask=Sačuvaj fajl na serveru sa nazivom "%s" (ili "%s") OriginFileName=Originalno ime fajla @@ -718,7 +727,7 @@ ViewPrivateNote=Pogledaj beleške XMoreLines=%s linija skrivena(o) PublicUrl=Javni UR AddBox=Dodaj box -SelectElementAndClickRefresh=Izaberite element i kliknite na Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Štampaj fajl %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Otvori Home - Podešavanja - Kompanija da biste izmenili logo ili Home - Setup - Prikaz da biste ga sakrili. @@ -734,8 +743,8 @@ Hello=Zdravo Sincerely=Srdačan pozdrav DeleteLine=Obriši red ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=Nema PDF-a za generaciju dokumenata među proverenim zapisima -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Zona za dokumenta kreirana masovnim akcijama ShowTempMassFilesArea=Prikaži zonu za dokumenta kreirana masovnim akcijama @@ -755,11 +764,20 @@ Calendar=Kalendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Ponedeljak Tuesday=Utorak @@ -817,5 +835,3 @@ SearchIntoContracts=Ugovori SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Troškovi SearchIntoLeaves=Odsustva - -BulkActions=Bulk actions diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang index 2ffac3ed71e..e81a263aef4 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Datum rođenja BirthdayAlertOn=Obaveštenje o rođendanu je aktivno BirthdayAlertOff=Obaveštenje o rođendanu je neaktivno +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Dodat kontakt Intervenciji Notify_FICHINTER_VALIDATE=Intervencija je potvrđena Notify_FICHINTER_SENTBYMAIL=Intervencija je poslata mail-om @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Ovo je test mail (reč test mora biti pojačana).< PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nU prilogu možete pronaći fakturu __REF__\n\n__PERSONALIZED__Srdačan pozdrav\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nOvom prilikom želimo da Vas upozorimo da nismo evidentirali uplatu za fakturu __REF__ koju možete pronaći u prilogu, kao podsetnik.\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nU prilogu možete pronaći komercijalnu ponudu __PROPREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nU prilogu možete pronaći zahtev za cenu __ASKREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nU prilogu možete naći narudžbinu __ORDERREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nU prilogu možete naći narudžbinu __ORDERREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nU prilogu možete pronaći fakturu __REF__\n\n__PERSONALIZED__Srdačan pozdrav\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nU prilogu možete naći isporuku __SHIPPINGREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nU prilogu možete naći intervenciju __FICHINTERREF__\n\n__PERSONALIZED__Srdačan pozdrav,\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s je infomacija koja zavisi od zemlje subjekta.
Na primer, za zemlju %s, to je kod %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistike u brojkama jedinica proizvoda/usluga -StatsByNumberOfEntities=Statistike u brojkama referentnih entiteta -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=Nova intervencija %s je dodeljena Vama. EMailTextInterventionValidated=Intervencija %s je potvrđena. EMailTextInvoiceValidated=Račun %s je potvrđen. diff --git a/htdocs/langs/sr_RS/projects.lang b/htdocs/langs/sr_RS/projects.lang index 1bc63c8365b..be2de884f26 100644 --- a/htdocs/langs/sr_RS/projects.lang +++ b/htdocs/langs/sr_RS/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Zona projekata ProjectStatus=Status projekta SharedProject=Svi PrivateProject=Kontakti projekta +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Svi projekti MyProjectsDesc=Ovaj ekran prikazuje samo projekte u kojima ste definisani kao kontakt (bilo kog tipa). ProjectsPublicDesc=Ovaj ekran prikazuje sve projekte za koje imate pravo pregleda. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Ovaj ekran prikazuje sve projekte i zadatke (Vaš korisnik ima pravo p AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Novi projekat AddProject=Kreiraj projekat DeleteAProject=Obriši projekat DeleteATask=Obriši zadatak ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Otvoreni projekti -OpenedTasks=Otvoreni zadaci -OpportunitiesStatusForOpenedProjects=Iznos prilika u otvorenim projektima po statusu +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Količina prilika projekata na osnovu statusa ShowProject=Prikaži projekat SetProject=Postavi projekat NoProject=Nema definisanih ni pripadajućih projekata NbOfProjects=Br projekata +NbOfTasks=Nb of tasks TimeSpent=Provedeno vreme TimeSpentByYou=Vreme koje ste Vi proveli TimeSpentByUser=Vreme koje je korisnik proveo @@ -47,9 +52,9 @@ TaskTimeSpent=Vreme provedeno na zadacima TaskTimeUser=Korisnik TaskTimeNote=Beleška TaskTimeDate=Datum -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Zadaci na otvorenim projektima WorkloadNotDefined=Količina vremena nije definisana -NewTimeSpent=Novo provedeno vreme +NewTimeSpent=Provedeno vreme MyTimeSpent=Moje vreme Tasks=Zadaci Task=Zadatak @@ -59,6 +64,7 @@ TaskDescription=Opis zadatka NewTask=Novi zadatak AddTask=Kreiraj zadatak AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivnost Activities=Zadaci/aktivnosti MyActivities=Moji zadaci/aktivnosti @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Lista ugovora vezanih za projekat +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lista intervencija vezanih za projekat ListExpenseReportsAssociatedProject=Lista troškova povezanih sa ovim projektom ListDonationsAssociatedProject=Lista donacija vezanih za ovaj projekat @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Kontakti projekta ActionsOnProject=Događaji projekta YouAreNotContactOfProject=Vi niste kontakt u ovom privatnom projektu +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Obriši provedeno vreme ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Prikaži zadatke koji mi nisu dodeljeni @@ -110,7 +118,7 @@ TaskRessourceLinks=Resursi ProjectsDedicatedToThisThirdParty=Projekti posvećeni ovom subjektu NoTasks=Nema zadataka za ovaj projekat LinkedToAnotherCompany=Subjekti vezani za ovaj projekat -TaskIsNotAffectedToYou=Zadaci koji Vam nisu dodeljeni +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Provedeno vreme nije uneto ThisWillAlsoRemoveTasks=Ova akcija će obrisati sve zadatke ovog projekta (%s zadataka u ovom trenutku) i sve unose utrošenog vremena. IfNeedToUseOhterObjectKeepEmpty=Ukoliko neki objekti (fakture, narudžbine, ...) pripadaju drugom subjektu, oni moraju biti povezani projektu koji se kreira. Ostavite ovu opciju praznu da bi projekat mogao da bude povezan sa više subjekata. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Ulaz po danu InputPerWeek=Ulaz po nedelji InputPerAction=Ulaz po akciji -TimeAlreadyRecorded=Utrošeno vreme je već sačuvano za ovaj zadatak/dan za korisnika %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projekti sa ovim korisnikom u kontaktima TasksWithThisUserAsContact=Zadaci ovog korisnika ResourceNotAssignedToProject=Nije dodeljen projektu ResourceNotAssignedToTheTask=Nije dodeljen zadatku +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Dodeli zadatak meni +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Dodeli ProjectOverview=Pregled ManageTasks=Koristi projekte za praćenje zadataka i vremena ManageOpportunitiesStatus=Koristi projekte za praćenje prilika ProjectNbProjectByMonth=Br kreiranih projekata po mesecu +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Iznos prilika po mesecu ProjectWeightedOppAmountOfProjectsByMonth=Prosečni iznos prilika po mesecu ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistike na projektima/lead-ovima +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Zadatak je dodeljen. Unos vremena za ovaj zadatak je omogućen. IdTaskTime=Id vremena zadatka YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Otvoreni projekti po subjektima +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Samo šanse -OpenedOpportunitiesShort=Otvorene šanse +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Nije šansa OpportunityTotalAmount=Ukupan iznos prilika OpportunityPonderatedAmount=Prosečni iznos prilika diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index e4e68206bb2..8b3bd4d73be 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Lägg till ett redovisningskonto AccountAccounting=Redovisningskonto AccountAccountingShort=Konto +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Huvudbok +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell ​​tidskrift @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit och kredit kan inte ha ett värde på samma gång - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Förteckning över redovisningskonton Pcgtype=Klass konto -Pcgsubtype=Under klass konto +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total försäljning marginal @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Fel, du kan inte ta bort denna redovisningskonto eftersom den används MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Naturen +AccountingJournalType1=Various operation +AccountingJournalType2=Försäljning +AccountingJournalType3=Inköp +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Export @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 10e6a0646e1..6b0aeb6aeda 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Interna användare ExternalUsers=Externa användare GUISetup=Visa SetupArea=Setup område +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Formulär för att testa filuppladdning (enligt inställningar) IfModuleEnabled=Anm: ja effektivt endast om modul %s är aktiverat RemoveLock=Ta bort filen %s om den finns godkänns uppdatering verktyget. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Nästa värde NextValueForInvoices=Nästa värde (fakturor) NextValueForCreditNotes=Nästa värde (kreditnotor) -NextValueForDeposit=Nästa värde (deposition) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Nästa värde (ersättare) MustBeLowerThanPHPLimit=Obs: Din PHP gränser varje filuppladdning storlek till %s %s, oavsett denna parameter värde är NoMaxSizeByPHPLimit=Obs: Ingen gräns som anges i din PHP konfiguration @@ -103,7 +104,7 @@ MenuIdParent=Överordnade menyn ID DetailMenuIdParent=ID överordnade menyn (0 för en toppmenyn) DetailPosition=Sortera nummer att definiera menyposition AllMenus=Alla -NotConfigured=Inte konfigurerad +NotConfigured=Module/Application not configured Active=Aktiv SetupShort=Inställning OtherOptions=Andra alternativ @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Tusentalsavgränsare Destination=Destination IdModule=Modul ID IdPermissions=Behörighet ID -Modules=Moduler LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Lokalisering parametrar ClientTZ=Kund tidzon (användare) @@ -123,7 +123,8 @@ PHPTZ=Tidszon PHP server DaylingSavingTime=Sommartid (användare) CurrentHour=PHP Tid (server) CurrentSessionTimeOut=Aktuell session timeout -YouCanEditPHPTZ=För att ställa in en annan PHP tidszon (inget krav), kan du försöka lägga till en fil .htacces med en rad som denna "setenv TZ Europe / Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Behörigheter BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Endast delar av aktiverade moduler visas. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Databas lösenord krypterat i conf.php (Aktivera InstrucToEncodePass=Att ha lösenord kodad i conf.php filen, ersätt raden
$ Dolibarr_main_db_pass = "...";
av
$ Dolibarr_main_db_pass = "krypterad:%s"; InstrucToClearPass=Att ha lösenord avkodas (klar) i conf.php filen, ersätt raden
$ Dolibarr_main_db_pass = "krypterat: ...";
av
$ Dolibarr_main_db_pass = "%s"; ProtectAndEncryptPdfFiles=Skydd av genererade pdf-filer (Aktiverad rekommenderas inte, raster massa pdf generationen) -ProtectAndEncryptPdfFilesDesc=Skydd av ett PDF-dokument håller den tillgänglig att läsa och skriva ut alla PDF webbläsare. Det är dock redigering och kopiering inte möjligt längre. Observera att använda den här funktionen gör byggandet av en samlad global pdf inte fungerar (t.ex. obetalda fakturor). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Huvudnummer DolibarrLicense=Licens Developpers=Utvecklare / bidragsgivare @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Officiella marknadsplats för externa moduler / addons OfficialWebHostingService=Refererade webbhotell (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=För användarens eller utvecklarens dokumentation (Doc, FAQs ...),
ta en titt på Dolibarr Wiki:
%s ForAnswersSeeForum=För alla andra frågor / hjälp, kan du använda Dolibarr forumet:
%s HelpCenterDesc1=Detta område kan hjälpa dig att få en tjänst Hjälp stöd på Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Funktionen inte finns på Unix-liknande system. Testa SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Modul setup -ModulesSetup=Moduler setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr nuvarande version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Uppdatera server offline +WithCounter=Manage a counter GenericMaskCodes=Du kan ange någon numrering mask. I denna mask skulle följande taggar användas:
(000000) motsvarar ett antal som kommer att ökas på varje %s. Ange så många nollor som den önskade längden på disken. Räknaren kommer att fyllas ut med nollor från vänster för att få så många nollor som masken.
(000000 000) samma som tidigare men en kompensation som motsvarar det antal till höger om tecknet + tillämpas med början den första %s.
(000000 @ x) samma som tidigare, men räknaren återställs till noll när månaden x uppnås (x mellan 1 och 12). Om detta alternativ används och x är 2 eller högre, då sekvensen (yy) (mm) eller (ÅÅÅÅ) (mm) krävs också.
(Dd) dag (01 till 31).
(Mm) månad (01 till 12).
(Yy), (ÅÅÅÅ) eller (y) år under 2, 4 eller ett nummer.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Alla andra tecken i masken förblir intakt.
Blanksteg är inte tillåtna.
-GenericMaskCodes4a=Exempel på 99. %s den tredje part TheCompany gjort 2007/01/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Exempel på tredje part som har skapats på 2007/03/01:
GenericMaskCodes4c=Exempel på artikel skapad 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} blir ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX blir 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Avkastningen en anpassningsbar nummer enligt en fastställd mask. ServerAvailableOnIPOrPort=Server finns på adressen %s på port %s ServerNotAvailableOnIPOrPort=Servern är inte tillgänglig på adress %s på port %s @@ -369,19 +375,21 @@ Int=Heltal Float=Flyttal DateAndTime=Datum och timme Unique=Unik -Boolean=Boolsk (Kryssruta) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefonen ExtrafieldPrice = Pris ExtrafieldMail = epost ExtrafieldUrl = Url ExtrafieldSelect = Välj lista ExtrafieldSelectList = Välj från tabell -ExtrafieldSeparator=Avskiljare +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Lösenord -ExtrafieldCheckBox=Kryssruta -ExtrafieldRadio=Radioknapp -ExtrafieldCheckBoxFromList= Kryssruta från tabell +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Länk till ett objekt +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parametrar listan måste vara som nyckel, värde

till exempel:
1, value1
2, värde2
3, value3
... ExtrafieldParamHelpradio=Parametrar listan måste vara som nyckel, värde

till exempel:
1, value1
2, värde2
3, value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Fält +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Användare & grupper Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Fakturor och kreditnota: s förvaltning för kunder. Faktura lednin Module40Name=Leverantörer Module40Desc=Leverantörens ledning och inköp (order och fakturor) Module42Name=Syslog -Module42Desc=Loggning faciliteter (syslog) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Redaktion Module49Desc=Redaktör ledning Module50Name=Produkter @@ -499,8 +521,8 @@ Module410Name=WebCalendar Module410Desc=WebCalendar integration Module500Name=Särskilda kostnader Module500Desc=Förvaltning av särskilda kostnader (skatter, sociala eller skattemässiga skatter, utdelningar) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Lån Module520Desc=Förvaltning av lån Module600Name=Anmälningar @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind omvandlingar kapacitet Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-bolag Module5000Desc=Gör att du kan hantera flera företag Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Skapa / modifiera produkter Permission34=Ta bort produkter Permission36=Se / hantera dold produkter Permission38=EXPORTVARA -Permission41=Läs projekt och uppgifter (gemensamma projekt och projekt jag är kontaktperson för). Kan också ange tid konsumeras på tilldelade uppgifter (tidrapport) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Ta bort projekt (gemensamma projekt och projekt som jag är kontaktperson för) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Beställningsmetoder DictionarySource=Ursprung av affärsförslag / beställning DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Modeller för kontoplan +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=E-postmeddelanden mallar DictionaryUnits=Enheter DictionaryProspectStatus=Prospektering Status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Möjlighet status för projektet / bly SetupSaved=Setup sparas +SetupNotSaved=Setup not saved BackToModuleList=Tillbaka till moduler lista BackToDictionaryList=Tillbaka till ordlistan VATManagement=Moms Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver typ SummarySystem=Systeminformation sammandrag SummaryConst=Lista över alla Dolibarr setup parametrar -MenuCompanySetup=Företag / stiftelsen +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard Menu Manager DefaultMenuSmartphoneManager=Smartphone menyhanteraren Skin=Hud tema @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Dagens meddelande MessageLogin=Inloggningssidan meddelande +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent sökformuläret på menyn till vänster DefaultLanguage=Default språk att använda (språkkod) EnableMultilangInterface=Aktivera flerspråkigt gränssnitt EnableShowLogo=Visa logotypen på vänstra menyn -CompanyInfo=Företag / stiftelse information -CompanyIds=Företag / stiftelse identiteter +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Namn CompanyAddress=Adress CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerans fördröjning (i dagar) före registrering om Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerans fördröjning (i dagar) före registrering om kontroller insättning för att göra Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Andra menyalternativ hantera valfria parametrar. LogEvents=Säkerhetsgranskning evenemang Audit=Revision @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Förteckning över Dolibarr säkerhetshändelser SecurityEventsPurged=Säkerhetshändelser renas LogEventDesc=Du kan aktivera här loggning för Dolibarr säkerhet händelser. Administratörer kan sedan se dess innehåll via menyn Systemverktyg - Revision. Varning, kan denna funktion konsumerar en stor mängd data i databasen. -AreaForAdminOnly=Dessa funktioner kan användas av administratören användare. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information diverse teknisk information får du i skrivskyddad läge och synlig för administratörer bara. SystemAreaForAdminOnly=Detta område är tillgänglig för administratören användare. Ingen av de Dolibarr behörigheter kan minska denna gräns. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Minst 1 modul måste aktiveras ClassNotFoundIntoPathWarning=Klass %s inte funnen i PHP-sökvägen YesInSummer=Ja, under sommaren -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session lagring krypteras av Suhosin ConditionIsCurrently=Condition är för närvarande% s YouUseBestDriver=Du använder drivrutinen %s som är bäst drivrutin tillgänglig för tillfället. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Professionell Id unik MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=En export länk till %s format finns på följande länk: %s ##### Invoices ##### BillsSetup=Fakturor modul setup BillsNumberingModule=Fakturor och kreditnotor numrering modul BillsPDFModules=Faktura dokument modeller +PaymentsPDFModules=Payment documents models CreditNote=Kreditnota CreditNotes=Kreditnotor ForceInvoiceDate=Force fakturadatum till giltighetsdatum @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Filer av typen %s är inte cachas av HTTP-server FilesOfTypeCompressed=Filer av typen %s komprimeras med HTTP-server FilesOfTypeNotCompressed=Filer av typen %s är inte komprimerade av HTTP-server CacheByServer=Cache med server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache med browser CompressionOfResources=Komprimering av HTTP-svar +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=En sådan automatisk detektering är inte möjligt med nuvarande webbläsare +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Produkter modul setup ServiceSetup=Tjänster modul konfiguration @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Fakturadatum används Buy=Köp Sell=Sälj InvoiceDateUsed=Fakturadatum används -YourCompanyDoesNotUseVAT=Ditt företag har definierats att inte använda moms (Hem - Setup - Företaget / Foundation), så det finns ingen mervärdesskatt alternativ för installationen. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Bokföring kod AccountancyCodeSell=Försäljning konto. kod AccountancyCodeBuy=Köpa konto. kod @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Ställs in automatiskt denna status för evenemang AGENDA_DEFAULT_VIEW=Vilken flik vill du öppna som standard vid val av meny Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Klicka för att Dial modul setup -ClickToDialUrlDesc=Url anropas när ett klick på telefon picto görs. I URL kan du använda taggar
__PHONETO__ Som kommer att ersättas med telefonnumret för personen att ringa
__PHONEFROM__ Som ska ersättas med telefonnummer att ringa person (er)
__LOGIN__ Som ska ersättas med clicktodial inloggning (definierad på ditt användarnamn kort)
__PASS__ Som ska ersättas med ditt clicktodial lösenord (definierad på ditt användarnamn kort). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API-modul konfiguration ApiDesc=Genom att aktivera denna modul Dolibarr bli en REST-server för att tillhandahålla diverse webbtjänster. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Endast element från aktiverade moduler utsätts ApiKey=Key för API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Allmänt visningsordning BankOrderES=Spanska BankOrderESDesc=Spanska visningsordning ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-bolag modul setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Guiden för att bygga databas backup dumpfilen SomethingMakeInstallFromWebNotPossible=Installation av extern modul är inte möjligt från webbgränssnittet av följande skäl: SomethingMakeInstallFromWebNotPossible2=Av denna anledning, för att processen uppgradering, som beskrivs här är endast manuell steg en privilegierad användare kan göra. InstallModuleFromWebHasBeenDisabledByFile=Installation av extern modul från ansökan har inaktiverats av administratören. Du måste be honom att ta bort filen% s för att tillåta denna funktion. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Markera tabelllinjer när musen flytta passerar över HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Bakgrundsfärg TopMenuBackgroundColor=Bakgrundsfärg för Huvudmeny @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minsta varseltid (Din ledighet begäran måste göras innan NbAddedAutomatically=Antal dagar som läggs till räknare av användare (automatiskt) varje månad EnterAnyCode=Detta fält innehåller en hänvisning till identifiera linje. Ange något värde i ditt val, men utan specialtecken. UnicodeCurrency=Ange här mellan hängslen, lista över bytenummer som representerar valutasymbolen. För exemple: för $ anger [36] - för brazil real R $ [82,36] - för €, ange [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line i kombinationslistor SellTaxRate=Försäljning skattesats RecuperableOnly=Ja moms "Non Perçue återvinningsbart" avsedd för någon stat i Frankrike. Håll värde till "Nej" i alla andra fall. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sv_SE/compta.lang b/htdocs/langs/sv_SE/compta.lang index 4f41edbbc17..d06bba823ce 100644 --- a/htdocs/langs/sv_SE/compta.lang +++ b/htdocs/langs/sv_SE/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Belopp som visas här är beräknade med Param=Setup RemainingAmountPayment=Belopp som skall erläggas resterande: Account=Konto -Accountparent=Konto förälder -Accountsparent=Konto förälder +Accountparent=Parent account +Accountsparent=Parent accounts Income=Inkomst Outcome=Expense ReportInOut=Intäkter / kostnader @@ -56,6 +56,7 @@ MenuTaxAndDividends=Skatter och utdelning MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Bokföring / Treasury område NewPayment=Ny betalning @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Den innehåller alla faktiska utbetalningar av fakturor från kunder.
- Den bygger på betalningsdagen för dessa fakturor
-DepositsAreNotIncluded=- Deposit fakturor eller ingår -DepositsAreIncluded=- Deposit fakturor ingår +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Rapport från tredje part IRPF LT1ReportByCustomersInInputOutputModeES=Rapport från tredje part RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Försäljning Journal DescPurchasesJournal=Inköp Journal InvoiceRef=Faktura ref. CodeNotDef=Inte definierad -WarningDepositsNotIncluded=Insättningar fakturor ingår inte i denna version med denna redovisning modul. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Betalning sikt datum kan inte vara lägre än objektdatum. Pcg_version=Chart of accounts models Pcg_type=Pcg typ @@ -189,8 +190,10 @@ AccountancyJournal=Bokförings kod tidskrift ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Klona det för nästa månad @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sv_SE/cron.lang b/htdocs/langs/sv_SE/cron.lang index afa1fee7995..c23917c395c 100644 --- a/htdocs/langs/sv_SE/cron.lang +++ b/htdocs/langs/sv_SE/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Jobb CronNone=Ingen CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Aktivera CronStatusInactiveBtn=Inaktivera CronTaskInactive=Det här jobbet är avaktiverat CronId=Id -CronClassFile=Klasser (filename.class.php) -CronModuleHelp=Namn på Dolibarr modul katalog (även arbeta med extern Dolibarr modul).
För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / produkt /class/product.class.php, värdet av modulen är produkten -CronClassFileHelp=Filnamnet för att ladda.
För exemple att hämta metod för Dolibarr Produkt objektet / htdocs / produkt / klass / product.class.php, är värdet av klass filnamn product.class.php -CronObjectHelp=Det objektnamn som ska läsas in.
För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, är värdet av klass filnamn Produkt -CronMethodHelp=Objektet metod för att starta.
För exemple att hämta metod för Dolibarr Produktobjekt /htdocs/product/class/product.class.php, värdet av metoden är är fecth -CronArgsHelp=Metoden argument.
Till exemple att hämta förfarande för Dolibarr Produkt objekt /htdocs/product/class/product.class.php kan värdet av paramters vara 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Systemet kommandoraden som ska köras. CronCreateJob=Create new Scheduled Job CronFrom=Från @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sv_SE/errors.lang b/htdocs/langs/sv_SE/errors.lang index f47da3aa0ac..530c61834a4 100644 --- a/htdocs/langs/sv_SE/errors.lang +++ b/htdocs/langs/sv_SE/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Misslyckades med att skapa filen "%s". ErrorFailToRenameDir=Misslyckades med att byta namn på katalogen "%s" till "%s". ErrorFailToCreateDir=Det gick inte att skapa katalogen "%s". ErrorFailToDeleteDir=Det gick inte att ta bort katalogen "%s". +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Denna kontakt redan har definierats som kontaktperson för denna typ. ErrorCashAccountAcceptsOnlyCashMoney=Detta bankkonto är en kontant-konto, så det tar emot betalningar av typ kontanter endast. ErrorFromToAccountsMustDiffers=Källa och mål bankkonton måste vara olika. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Misslyckades med att skriva i katalogen %s ErrorFoundBadEmailInFile=Hittade felaktig e-syntax för %s rader i filen (t.ex. linje %s med email = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Vissa obligatoriska fält inte fylls. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Misslyckades med att skapa en katalog. Kontrollera att webbservern användaren har rättigheter att skriva till Dolibarr dokument katalogen. Om parametern safe_mode är aktiv på PHP, kontrollera att Dolibarr php-filer äger till webbserver användare (eller grupp). ErrorNoMailDefinedForThisUser=Ingen post definierats för denna användare ErrorFeatureNeedJavascript=Denna funktion måste ha Javascript vara aktiverat för att arbeta. Ändra detta i setup - displayen. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Kvantitet för linje i kundfakturor kan ErrorWebServerUserHasNotPermission=Användarkonto %s användas för att exekvera webbserver har ingen behörighet för den ErrorNoActivatedBarcode=Ingen streckkod typ aktiveras ErrUnzipFails=Det gick inte att packa upp %s med ZipArchive -ErrNoZipEngine=Ingen motor att packa upp %s fil i denna PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Filen %s måste vara ett Dolibarr zip-paket ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL är inte installerat, detta är viktigt för att prata med Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Betalningsdag (%s) är tidigare än faktu WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 87d0480f94a..4f243484bdc 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s inte definierad ErrorUnknown=Okänt fel ErrorSQL=SQL-fel ErrorLogoFileNotFound=Logo fil '%s' hittades inte -ErrorGoToGlobalSetup=Gå till 'bolaget / stiftelsen' setup för att åtgärda detta +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Gå till modul inställningarna för att åtgärda detta ErrorFailedToSendMail=Det gick inte att skicka e-post (avsändare = %s, mottagare = %s) ErrorFileNotUploaded=Filen har inte laddats upp. Kontrollera att storleken inte överskrider högsta tillåtna, att det finns plats på disken och att det inte redan finns en fil med samma namn i den här katalogen. @@ -153,6 +153,7 @@ Edit=Redigera Validate=Validera ValidateAndApprove=Validate and Approve ToValidate=Att validera +NotValidated=Not validated Save=Spara SaveAs=Spara som TestConnection=Testa anslutning @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Ingen applikativ koppling funktionen med autentiseri Connection=Anslutning Setup=Setup Alert=Alert +MenuWarnings=Varningar Previous=Föregående Next=Nästa Cards=Kort @@ -308,6 +310,7 @@ Copy=Kopiera Paste=Klistra in Default=Standard DefaultValue=Standardvärde +DefaultValues=Default values Price=Pris UnitPrice=Pris per enhet UnitPriceHT=Pris per enhet (netto) @@ -363,7 +366,8 @@ VATRate=Mervärdesskattesats Average=Genomsnittlig Sum=Summa Delta=Delta -Module=Modul +Module=Module/Application +Modules=Modules/Applications Option=Alternativ List=Lista FullList=Fullständig lista @@ -387,7 +391,7 @@ ActionRunningNotStarted=Inte påbörjats ActionRunningShort=In progress ActionDoneShort=Färdiga ActionUncomplete=Icke klar -CompanyFoundation=Företag / stiftelse +CompanyFoundation=Company/Organisation ContactsForCompany=Kontakter till denna tredje part ContactsAddressesForCompany=Kontakter / adresser för denna tredje part AddressesForCompany=Adresser för denna tredje part @@ -405,8 +409,9 @@ Generate=Generera Duration=Längd TotalDuration=Total längd Summary=Sammanfattning -DolibarrStateBoard=Statistik -DolibarrWorkBoard=Arbetsuppgifter ombord +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Tillgängliga NotYetAvailable=Ännu inte tillgängligt NotAvailable=Inte tillgänglig @@ -434,7 +439,7 @@ Reportings=Rapportering Draft=Utkast Drafts=Utkast Validated=Validerad -Opened=Öppnad +Opened=Öppen New=Ny Discount=Rabatt Unknown=Okänd @@ -453,6 +458,7 @@ NextStep=Nästa steg Datas=Data None=Ingen NoneF=Ingen +NoneOrSeveral=None or several Late=Sent LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Bild @@ -606,7 +612,8 @@ PartialWoman=Partiell TotalWoman=Totalt NeverReceived=Aldrig fick Canceled=Annullerad -YouCanChangeValuesForThisListFromDictionarySetup=Du kan ändra värden för denna lista från menyinställning - ordbok +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Färg Documents=Länkade filer @@ -642,6 +649,7 @@ FreeLineOfType=Fritt inlägg typ CloneMainAttributes=Klona objekt med dess viktigaste attribut PDFMerge=PDF-dokument Merge=Sammanfoga +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Visa sidan för att skriva ut huvudinnehållet MenuManager=Menyhanteraren WarningYouAreInMaintenanceMode=Varning, du är i en underhållsmode, så bara login %s får använda tillämpningen för tillfället. @@ -708,6 +716,7 @@ from=från toward=mot Access=Åtkomst SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Använd Ctrl+C för att kopiera till klippbordet SaveUploadedFileWithMask=Spara filen på servern med namnet "%s" (annars "%s") OriginFileName=Ursprungligt filnamn @@ -718,7 +727,7 @@ ViewPrivateNote=Se noter XMoreLines=%s rader osynliga PublicUrl=Offentlig webbadress AddBox=Lägg till låda -SelectElementAndClickRefresh=Välj ett element och klicka på uppdatera +SelectElementAndClick=Select an element and click %s PrintFile=Skriv ut fil %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hallå Sincerely=Sincerely DeleteLine=Radera rad ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Kalender GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Räkenskapsåret +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Måndag Tuesday=Tisdag @@ -817,5 +835,3 @@ SearchIntoContracts=Kontrakt SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Räkningar SearchIntoLeaves=Löv - -BulkActions=Bulk actions diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index 04369a11ffd..896818bf966 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Födelsedatum BirthdayAlertOn=födelsedag alert aktiva BirthdayAlertOff=födelsedag alert inaktiv +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validerade Notify_FICHINTER_SENTBYMAIL=Ingripande skickas per post @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Detta är en test post (ordet Provningen skall i f PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ \nHär hittar du det kommersiella förslaget __PROPREF__\n__PERSONALIZED__mvh\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Här hittar ordern __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Här hittar du vår ordning __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Här hittar sjöfarten __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Här hittar interventionen __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s är en information är beroende av tredje part land.
Till exempel för landets %s, det är kod %s. DolibarrDemo=Dolibarr ERP / CRM-demo -StatsByNumberOfUnits=Statistik i antal produkter / tjänster enheter -StatsByNumberOfEntities=Statistik på antalet nationella enheter -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Interventionen %s har validerats. EMailTextInvoiceValidated=Fakturan %s har validerats. diff --git a/htdocs/langs/sv_SE/projects.lang b/htdocs/langs/sv_SE/projects.lang index 19bfbc40c24..121db6b87d4 100644 --- a/htdocs/langs/sv_SE/projects.lang +++ b/htdocs/langs/sv_SE/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Projektstatus SharedProject=Alla PrivateProject=Projekt kontakter +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Alla projekt MyProjectsDesc=Denna syn är begränsad till projekt du en kontakt för (allt som är "typ"). ProjectsPublicDesc=Denna uppfattning presenterar alla projekt du har rätt att läsa. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Denna uppfattning presenterar alla projekt och uppgifter (din använda AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Nytt projekt AddProject=Skapa projekt DeleteAProject=Ta bort ett projekt DeleteATask=Ta bort en uppgift ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Visa projekt SetProject=Ställ projekt NoProject=Inget projekt definieras eller ägs NbOfProjects=Nb av projekt +NbOfTasks=Nb of tasks TimeSpent=Tid som tillbringas TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Tid som ägnas åt uppgifter TaskTimeUser=Användare TaskTimeNote=Anmärkning TaskTimeDate=Datum -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Arbetsbelastning inte definierad -NewTimeSpent=Ny tid +NewTimeSpent=Tid MyTimeSpent=Min tid Tasks=Uppgifter Task=Uppgift @@ -59,6 +64,7 @@ TaskDescription=Uppgiftsbeskrivning NewTask=Ny uppgift AddTask=Skapa uppgift AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Aktivitet Activities=Uppgifter / aktiviteter MyActivities=Mina uppgifter / aktiviteter @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Förteckning över avtal i samband med projektet +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Lista över åtgärder i samband med projektet ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Projekt kontakter ActionsOnProject=Åtgärder för projektet YouAreNotContactOfProject=Du är inte en kontakt på denna privata projekt +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Ta bort tid ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Se även uppgifter som inte tilldelats mig @@ -110,7 +118,7 @@ TaskRessourceLinks=Resurser ProjectsDedicatedToThisThirdParty=Projekt som arbetat med denna tredje part NoTasks=Inga uppgifter för detta projekt LinkedToAnotherCompany=Kopplat till annan tredje part -TaskIsNotAffectedToYou=Uppgift inte tilldelats dig +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Tid är tom ThisWillAlsoRemoveTasks=Denna åtgärd kommer också att ta bort alla aktiviteter av projekt (%s uppgifter på för tillfället) och alla ingångar för nedlagd tid. IfNeedToUseOhterObjectKeepEmpty=Om vissa objekt (faktura, order, ...), som tillhör en annan tredje part, måste kopplas till projektet för att skapa, hålla denna tomt för att få projektet att flera tredje part. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/sw_SW/compta.lang b/htdocs/langs/sw_SW/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/sw_SW/compta.lang +++ b/htdocs/langs/sw_SW/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/sw_SW/cron.lang b/htdocs/langs/sw_SW/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/sw_SW/cron.lang +++ b/htdocs/langs/sw_SW/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/sw_SW/errors.lang b/htdocs/langs/sw_SW/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/sw_SW/errors.lang +++ b/htdocs/langs/sw_SW/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang index 9ffa398137f..d7dde34acbb 100644 --- a/htdocs/langs/sw_SW/main.lang +++ b/htdocs/langs/sw_SW/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/sw_SW/other.lang +++ b/htdocs/langs/sw_SW/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/sw_SW/projects.lang b/htdocs/langs/sw_SW/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/sw_SW/projects.lang +++ b/htdocs/langs/sw_SW/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index 2c7a10cea3e..8b2bbbbe6f0 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=เพิ่มบัญชีบัญชี AccountAccounting=บัญชีการบัญชี AccountAccountingShort=บัญชี +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=บัญชีแยกประเภททั่วไป +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=ขายวารสาร @@ -132,19 +140,19 @@ Sens=ซองส์ Codejournal=วารสาร NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=เดบิตและเครดิตไม่สามารถมีค่าในเวลาเดียวกัน - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=รายการบัญชีที่บัญชี Pcgtype=ชั้นบัญชี -Pcgsubtype=ภายใต้ระดับบัญชี +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=อัตรากำไรขั้นต้นรวมยอดขาย @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=ข้อผิดพลาดที่คุณไม่สามารถลบบัญชีบัญชีนี้เพราะมันถูกนำมาใช้ MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=รหัส +Nature=ธรรมชาติ +AccountingJournalType1=Various operation +AccountingJournalType2=ขาย +AccountingJournalType3=การสั่งซื้อสินค้า +AccountingJournalType4=ธนาคาร +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=การส่งออก @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index d49d6a99a20..476a622c632 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -48,6 +48,7 @@ InternalUsers=ผู้ใช้ภายใน ExternalUsers=ผู้ใช้ภายนอก GUISetup=แสดง SetupArea=พื้นที่ติดตั้ง +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=แบบทดสอบการอัปโหลดไฟล์ (ตามการตั้งค่า) IfModuleEnabled=หมายเหตุ: ใช่จะมีผลเฉพาะถ้าโมดูล% s ถูกเปิดใช้งาน RemoveLock=ลบไฟล์% s ถ้ามันมีอยู่เพื่อช่วยให้การใช้งานของเครื่องมือการปรับปรุง @@ -85,7 +86,7 @@ Mask=หน้ากาก NextValue=ค่าถัดไป NextValueForInvoices=ค่าถัดไป (ใบแจ้งหนี้) NextValueForCreditNotes=ค่าถัดไป (บันทึกเครดิต) -NextValueForDeposit=ค่าถัดไป (เงินฝาก) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=ค่าถัดไป (เปลี่ยน) MustBeLowerThanPHPLimit=หมายเหตุ: PHP ของคุณ จำกัด ขนาดอัปโหลดไฟล์แต่ละ% s% s สิ่งที่ค่าพารามิเตอร์นี้คือ NoMaxSizeByPHPLimit=หมายเหตุ: ไม่ จำกัด มีการตั้งค่าในการกำหนดค่าของ PHP @@ -103,7 +104,7 @@ MenuIdParent=ID เมนูผู้ปกครอง DetailMenuIdParent=ID ของเมนูปกครอง (ที่ว่างเปล่าสำหรับเมนูด้านบน) DetailPosition=เรียงลำดับหมายเลขในการกำหนดตำแหน่งที่เมนู AllMenus=ทั้งหมด -NotConfigured=โมดูลไม่ได้กำหนดค่า +NotConfigured=Module/Application not configured Active=กระตือรือร้น SetupShort=การติดตั้ง OtherOptions=ตัวเลือกอื่น ๆ @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=พันคั่น Destination=ปลายทาง IdModule=โมดูล ID IdPermissions=ID สิทธิ์ -Modules=โมดูล LanguageBrowserParameter=s พารามิเตอร์% LocalisationDolibarrParameters=พารามิเตอร์ภาษาท้องถิ่น ClientTZ=โซนเวลาไคลเอ็นต์ (ผู้ใช้) @@ -123,7 +123,8 @@ PHPTZ=PHP เซิร์ฟเวอร์โซนเวลา DaylingSavingTime=ปรับเวลาตามฤดูกาล CurrentHour=PHP เวลา (เซิร์ฟเวอร์) CurrentSessionTimeOut=หมดเวลาการใช้งานปัจจุบัน -YouCanEditPHPTZ=การตั้งค่าเขตเวลาที่แตกต่างกัน PHP (ไม่จำเป็น) คุณสามารถพยายามที่จะเพิ่ม .htacces ไฟล์ที่มีสายเช่นนี้ "SetEnv TZ ยุโรป / ปารีส" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=สิทธิ์ BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=องค์ประกอบเฉพาะจาก โมดูลที่เปิดใช้งาน จะแสดง -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=รหัสผ่านฐานข้อมู InstrucToEncodePass=จะมีรหัสผ่านที่เข้ารหัสเป็นไฟล์ conf.php เปลี่ยนสาย
$ dolibarr_main_db_pass = "... ";
โดย
$ dolibarr_main_db_pass = "crypted:% s"; InstrucToClearPass=จะมีรหัสผ่านถอดรหัส (ชัดเจน) เป็นไฟล์ conf.php เปลี่ยนสาย
$ dolibarr_main_db_pass = "crypted ... ";
โดย
$ dolibarr_main_db_pass = "% s"; ProtectAndEncryptPdfFiles=การคุ้มครองของไฟล์ PDF ที่สร้าง (เปิดใช้งานไม่แนะนำแบ่งไฟล์ PDF รุ่นมวล) -ProtectAndEncryptPdfFilesDesc=คุ้มครองเอกสาร PDF ช่วยให้มันสามารถอ่านและพิมพ์ไฟล์ PDF กับเบราว์เซอร์ใด ๆ อย่างไรก็ตามการแก้ไขและการคัดลอกเป็นไปไม่ได้อีกต่อไป โปรดทราบว่าการใช้คุณลักษณะนี้ทำให้การสร้างไฟล์ PDF สะสมทั่วโลกไม่ทำงาน (เช่นใบแจ้งหนี้ที่ค้างชำระ) +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=ลักษณะ DolibarrLicense=อนุญาต Developpers=นักพัฒนา / ผู้ร่วมสมทบ @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr สาธิตออนไลน์ OfficialMarketPlace=ตลาดอย่างเป็นทางการสำหรับโมดูลภายนอก / addons OfficialWebHostingService=อ้างอิงเว็บโฮสติ้ง (Cloud โฮสติ้ง) ReferencedPreferredPartners=พาร์ทเนอร์ที่ต้องการ -OtherResources=สารสนเทศ autres +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=สำหรับผู้ใช้หรือเอกสารพัฒนา (หมอคำถามที่พบบ่อย ... ),
ดูที่วิกิพีเดีย Dolibarr:
% s ForAnswersSeeForum=สำหรับคำถามใด ๆ / ความช่วยเหลือคุณสามารถใช้ฟอรั่ม Dolibarr:
% s HelpCenterDesc1=พื้นที่บริเวณนี้จะสามารถช่วยให้คุณได้รับบริการสนับสนุนช่วยเหลือใน Dolibarr @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=คุณลักษณะที่ไม่สา SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=การติดตั้งโมดูล -ModulesSetup=การติดตั้งโมดูล +ModulesSetup=Modules/Application setup ModuleFamilyBase=ระบบ ModuleFamilyCrm=การบริหารลูกค้าสัมพันธ์ (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=รุ่นปัจจุบัน Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=เซิร์ฟเวอร์การอัพเดทออฟไลน์ +WithCounter=Manage a counter GenericMaskCodes=คุณอาจป้อนหน้ากากเลขใด ๆ ในหน้ากากนี้แท็กต่อไปนี้สามารถนำมาใช้:
{000000} สอดคล้องกับจำนวนที่จะเพิ่มขึ้นในแต่ละ% s ใส่เลขศูนย์เป็นจำนวนมากตามความยาวที่ต้องการของเคาน์เตอร์ เคาน์เตอร์จะแล้วเสร็จภายในศูนย์จากซ้ายเพื่อให้มีศูนย์มากที่สุดเท่าที่เป็นหน้ากาก
{000000} + 000 เช่นเดียวกับก่อนหน้านี้ แต่ชดเชยที่สอดคล้องกับจำนวนที่อยู่ทางขวาของเครื่องหมาย + ถูกนำไปใช้ในการเริ่มต้นครั้งแรก%
{000000 @ x} เดียวกับก่อนหน้านี้ แต่นับตั้งค่าใหม่เป็นศูนย์เมื่อเดือน x ถึง (x ระหว่างวันที่ 1 และ 12 หรือ 0 จะใช้เดือนแรกของปีงบประมาณที่กำหนดไว้ในการกำหนดค่าของคุณหรือ 99 เพื่อตั้งค่าให้เป็นศูนย์ทุกเดือน ) ถ้าตัวเลือกนี้ถูกนำมาใช้และ x 2 หรือสูงกว่านั้นลำดับ {yy} {} มิลลิเมตรหรือปปปป {} {} มิลลิเมตรจะต้องมี
{} วววัน (01-31)
{} มิลลิเมตรเดือน (01-12)
yy {}, {} หรือปปปป {y} มากกว่าปีที่ 2, 4 หรือ 1 หมายเลข
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=ทุกตัวละครอื่น ๆ ในหน้ากากจะยังคงเหมือนเดิม
ช่องว่างที่ไม่ได้รับอนุญาต
-GenericMaskCodes4a=ตัวอย่างใน% s 99 ของ thecompany บุคคลที่สามทำ 2007/01/31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=ตัวอย่างของบุคคลที่สามที่สร้างขึ้นบน 2007/03/01:
GenericMaskCodes4c=ตัวอย่างสินค้าที่สร้างขึ้นบน 2007/03/01:
-GenericMaskCodes5=เอบีซี yy {} {} มิลลิเมตร - {000000} จะให้ ABC0701-000099
{0000 + 100 @ 1} -ZZZ / {} วว / XXX จะให้ ZZZ-0199/31 / XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=ส่งกลับจำนวนที่ปรับแต่งได้ตามที่กำหนดไว้หน้ากาก ServerAvailableOnIPOrPort=เซิร์ฟเวอร์ที่มีอยู่ในที่อยู่% s พอร์ต% s ServerNotAvailableOnIPOrPort=เซิร์ฟเวอร์ที่ไม่สามารถใช้ได้ตามที่อยู่% s พอร์ต% s @@ -369,19 +375,21 @@ Int=จำนวนเต็ม Float=ลอย DateAndTime=วันที่และชั่วโมง Unique=เป็นเอกลักษณ์ -Boolean=บูลีน (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = โทรศัพท์ ExtrafieldPrice = ราคา ExtrafieldMail = อีเมล์ ExtrafieldUrl = Url ExtrafieldSelect = เลือกรายการ ExtrafieldSelectList = เลือกจากตาราง -ExtrafieldSeparator=เครื่องสกัด +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=รหัสผ่าน -ExtrafieldCheckBox=ช่องทำเครื่องหมาย -ExtrafieldRadio=ปุ่ม -ExtrafieldCheckBoxFromList= Checkbox จากตาราง +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=เชื่อมโยงไปยังวัตถุ +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=รายการพารามิเตอร์จะต้องเป็นเหมือนกุญแจสำคัญค่า

ตัวอย่างเช่น:
1 ค่า 1
2 value2
3 value3
... ExtrafieldParamHelpradio=รายการพารามิเตอร์จะต้องเป็นเหมือนกุญแจสำคัญค่า

ตัวอย่างเช่น:
1 ค่า 1
2 value2
3 value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=สนาม +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=และกลุ่มผู้ใช้ Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=ใบแจ้งหนี้และการจัดการ Module40Name=ซัพพลายเออร์ Module40Desc=จัดการซัพพลายเออร์และการซื้อ (คำสั่งซื้อและใบแจ้งหนี้) Module42Name=บันทึก -Module42Desc=สิ่งอำนวยความสะดวกการบันทึกข้อมูล (ไฟล์ syslog, ... ) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=บรรณาธิการ Module49Desc=การจัดการแก้ไข Module50Name=ผลิตภัณฑ์ @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=บูรณาการ Webcalendar Module500Name=ค่าใช้จ่ายพิเศษ Module500Desc=การบริหารจัดการค่าใช้จ่ายพิเศษ (ภาษีภาษีสังคมหรือการเงินการจ่ายเงินปันผล) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=เงินกู้ Module520Desc=การบริหารจัดการของเงินให้สินเชื่อ Module600Name=การแจ้งเตือน @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind ความสามารถในการแปลง Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=ระบบบริหารจัดการทรัพยากรบุคคล -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=หลาย บริษัท Module5000Desc=ช่วยให้คุณสามารถจัดการกับหลาย บริษัท Module6000Name=ขั้นตอนการทำงาน @@ -591,7 +615,7 @@ Permission32=สร้าง / แก้ไขผลิตภัณฑ์ Permission34=ลบผลิตภัณฑ์ Permission36=ดู / จัดการผลิตภัณฑ์ที่ซ่อน Permission38=สินค้าส่งออก -Permission41=อ่านโครงการและงาน (โครงการและโครงการที่ใช้ร่วมกันฉันติดต่อ) นอกจากนี้ยังสามารถใส่เวลาที่ใช้ในงานที่ได้รับมอบหมาย (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=ลบโครงการ (โครงการและโครงการที่ใช้ร่วมกันฉันติดต่อ) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=วิธีการสั่งซื้อ DictionarySource=แหล่งที่มาของข้อเสนอ / การสั่งซื้อ DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=รุ่นสำหรับผังบัญชี +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=แม่แบบอีเมล DictionaryUnits=หน่วย DictionaryProspectStatus=สถานะ prospection DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=สถานะการเปิดโอกาสให้โครงการ / นำ SetupSaved=การตั้งค่าที่บันทึกไว้ +SetupNotSaved=Setup not saved BackToModuleList=กลับไปยังรายการโมดูล BackToDictionaryList=กลับไปยังรายการพจนานุกรม VATManagement=การบริหารจัดการภาษีมูลค่าเพิ่ม @@ -921,7 +947,7 @@ Host=เซิร์ฟเวอร์ DriverType=ชนิดตัวขับ SummarySystem=สรุปข้อมูลระบบ SummaryConst=รายชื่อของพารามิเตอร์การตั้งค่า Dolibarr -MenuCompanySetup=บริษัท / มูลนิธิ +MenuCompanySetup=Company/Organisation DefaultMenuManager= ผู้จัดการเมนูมาตรฐาน DefaultMenuSmartphoneManager=ผู้จัดการเมนูมาร์ทโฟน Skin=ธีมผิว @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=ข้อความของวัน MessageLogin=ข้อความหน้าเข้าสู่ระบบ +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=แบบฟอร์มการค้นหาถาวรบนเมนูด้านซ้าย DefaultLanguage=ภาษาเริ่มต้นที่จะใช้ (รหัสภาษา) EnableMultilangInterface=เปิดใช้งานอินเตอร์เฟซที่พูดได้หลายภาษา EnableShowLogo=โลโก้แสดงบนเมนูด้านซ้าย -CompanyInfo=บริษัท / ข้อมูลมูลนิธิ -CompanyIds=บริษัท / อัตลักษณ์ของมูลนิธิ +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=ชื่อ CompanyAddress=ที่อยู่ CompanyZip=ไปรษณีย์ @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=ความล่าช้าความอดทน Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=ความล่าช้าความอดทน (ในวัน) ก่อนที่จะแจ้งเตือนสำหรับการฝากเงินการตรวจสอบที่จะทำ Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=รายการเมนูอื่น ๆ จัดการพารามิเตอร์ที่ไม่จำเป็น LogEvents=ตรวจสอบเหตุการณ์การรักษาความปลอดภัย Audit=การตรวจสอบบัญชี @@ -987,7 +1015,7 @@ BrowserOS=ระบบปฏิบัติการเบราว์เซอ ListOfSecurityEvents=รายการ Dolibarr เหตุการณ์การรักษาความปลอดภัย SecurityEventsPurged=เหตุการณ์การรักษาความปลอดภัยกำจัด LogEventDesc=คุณสามารถเปิดใช้การเข้าสู่ระบบที่นี่สำหรับ Dolibarr เหตุการณ์การรักษาความปลอดภัย ผู้ดูแลระบบแล้วสามารถมองเห็นเนื้อหาผ่านทางเครื่องมือของระบบเมนู - ตรวจสอบ คำเตือนคุณลักษณะนี้สามารถใช้ข้อมูลจำนวนมากในฐานข้อมูล -AreaForAdminOnly=คุณสมบัติเหล่านั้นสามารถนำมาใช้โดยผู้ใช้ผู้ดูแลระบบเท่านั้น +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=ข้อมูลระบบข้อมูลทางด้านเทคนิคอื่น ๆ ที่คุณได้รับในโหมดอ่านอย่างเดียวและมองเห็นสำหรับผู้ดูแลระบบเท่านั้น SystemAreaForAdminOnly=บริเวณนี้เป็นที่ใช้ได้สำหรับผู้ใช้ผู้ดูแลระบบเท่านั้น ไม่มีสิทธิ์ Dolibarr สามารถลดขีด จำกัด นี้ CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=คุณต้องเปิดการใช้งานอย่างน้อย 1 โมดูล ClassNotFoundIntoPathWarning=คลาส% s ไม่พบเ​​ข้ามาในเส้นทาง PHP YesInSummer=ใช่ในช่วงฤดู​​ร้อน -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=เซสชั่นการจัดเก็บข้อมูลที่มีการเข้ารหัสโดย Suhosin ConditionIsCurrently=สภาพปัจจุบันคือ% s YouUseBestDriver=คุณสามารถใช้โปรแกรมควบคุม% s ที่เป็นคนขับรถที่ดีที่สุดที่มีอยู่ในปัจจุบัน @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=หลักเกณฑ์ในการมืออา MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=การเชื่อมโยงการส่งออกไปยังรูปแบบ% s สามารถดูได้ที่ลิงค์ต่อไปนี้:% s ##### Invoices ##### BillsSetup=ใบแจ้งหนี้การติดตั้งโมดูล BillsNumberingModule=ใบแจ้งหนี้และบันทึกหมายเลขบัตรเครดิตรูปแบบ BillsPDFModules=รูปแบบเอกสารใบแจ้งหนี้ +PaymentsPDFModules=Payment documents models CreditNote=ใบลดหนี้ CreditNotes=บันทึกเครดิต ForceInvoiceDate=วันที่ใบแจ้งหนี้กองทัพวันที่ตรวจสอบ @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=แฟ้ม s พิมพ์% ไม่ได้เก็ FilesOfTypeCompressed=ไฟล์ประเภท% s จะถูกบีบอัดโดยเซิร์ฟเวอร์ HTTP FilesOfTypeNotCompressed=แฟ้ม s พิมพ์% ไม่ได้บีบอัดโดยเซิร์ฟเวอร์ HTTP CacheByServer=แคชโดยเซิร์ฟเวอร์ +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=แคชเบราว์เซอร์ CompressionOfResources=การบีบอัดของการตอบสนอง HTTP +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=ดังกล่าวตรวจสอบโดยอัตโนมัติเป็นไปไม่ได้กับเบราว์เซอร์ในปัจจุบัน +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=ผลิตภัณฑ์การติดตั้งโมดูล ServiceSetup=บริการติดตั้งโมดูล @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=วันที่ใบแจ้งหนี้ที Buy=ซื้อ Sell=ขาย InvoiceDateUsed=วันที่ใบแจ้งหนี้ที่ใช้ -YourCompanyDoesNotUseVAT=บริษัท ของคุณได้รับการกำหนดที่จะไม่ใช้ภาษีมูลค่าเพิ่ม (หน้าหลัก - การติดตั้ง - บริษัท / มูลนิธิ) ดังนั้นจึงไม่มีตัวเลือกในการติดตั้งภาษีมูลค่าเพิ่ม +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=รหัสบัญชี AccountancyCodeSell=บัญชีการขาย รหัส AccountancyCodeBuy=บัญชีซื้อ รหัส @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=ตั้งค่าโดยอัตโนมั AGENDA_DEFAULT_VIEW=ซึ่งแท็บที่คุณต้องการที่จะเปิดตามค่าเริ่มต้นเมื่อมีการเลือกวาระที่เมนู AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=คลิกเพื่อกดติดตั้งโมดูล -ClickToDialUrlDesc=url ที่เรียกว่าเมื่อการคลิกที่ picto โทรศัพท์จะทำ ใน URL คุณสามารถใช้แท็ก
__PHONETO__ ที่จะถูกแทนที่ด้วยหมายเลขโทรศัพท์ของบุคคลที่จะเรียก
__PHONEFROM__ ที่จะถูกแทนที่ด้วยหมายเลขโทรศัพท์ของบุคคลที่โทร (คุณ)
__LOGIN__ ที่จะถูกแทนที่ด้วยการเข้าสู่ระบบของคุณ clicktodial (ตามที่กำหนดในบัตรผู้ใช้ของคุณ)
__PASS__ ที่จะถูกแทนที่ด้วยรหัสผ่าน clicktodial คุณ (ที่กำหนดไว้ในบัตรผู้ใช้ของคุณ) +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API การติดตั้งโมดูล ApiDesc=โดยการเปิดใช้โมดูลนี้ Dolibarr กลายเป็นเซิร์ฟเวอร์ REST เพื่อให้บริการเว็บอื่น ๆ ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=องค์ประกอบเฉพาะจากโมดูลมีการเปิดใช้งาน ApiKey=ที่สำคัญสำหรับ API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=ลำดับการแสดงทั่วไป BankOrderES=สเปน BankOrderESDesc=เพื่อการแสดงผลภาษาสเปน ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=หลาย บริษัท ติดตั้งโมดูล ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=ตัวช่วยสร้างการสร้างแ SomethingMakeInstallFromWebNotPossible=การติดตั้งโมดูลภายนอกเป็นไปไม่ได้จากอินเตอร์เฟซเว็บด้วยเหตุผลต่อไปนี้: SomethingMakeInstallFromWebNotPossible2=ด้วยเหตุนี้กระบวนการอัพเกรดอธิบายไว้ที่นี่เป็นเพียงไม่กี่ก้าวคู่มือผู้ใช้สิทธิพิเศษที่สามารถทำ InstallModuleFromWebHasBeenDisabledByFile=ติดตั้งโมดูลภายนอกจากโปรแกรมที่ได้รับการปิดใช้งานโดยผู้ดูแลระบบ คุณต้องขอให้เขาลบไฟล์% s เพื่อให้คุณลักษณะนี้ -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=เน้นเส้นตารางเมื่อเลื่อนเมาส์ผ่านไป HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=สีพื้นหลัง TopMenuBackgroundColor=สีพื้นหลังสำหรับเมนูยอดนิยม @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=ระยะเวลาการแจ้งให้ทร NbAddedAutomatically=จำนวนวันที่เพิ่มเข้าไปในเคาน์เตอร์ของผู้ใช้ (โดยอัตโนมัติ) ในแต่ละเดือน EnterAnyCode=ฟิลด์นี้มีการอ้างอิงในการระบุสาย ป้อนค่าที่คุณเลือกได้ แต่ไม่มีตัวอักษรพิเศษ UnicodeCurrency=ป้อนที่นี่ระหว่างวงเล็บรายการจำนวนไบต์ที่เป็นตัวแทนของสัญลักษณ์สกุลเงิน สำหรับ exemple: ราคา $ ป้อน [36] - ราคา $ บราซิลจริง R [82,36] - สำหรับ€ป้อน [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=ตำแหน่งของเส้นเป็นรายการคำสั่งผสม SellTaxRate=อัตราภาษีการขาย RecuperableOnly=ใช่ภาษีมูลค่าเพิ่ม "ไม่PerçueRécupérable" ทุ่มเทของรัฐในฝรั่งเศสบาง เก็บค่าที่จะ "ไม่" ในกรณีอื่น ๆ @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/th_TH/compta.lang b/htdocs/langs/th_TH/compta.lang index cf965e0f49c..d25fbd36226 100644 --- a/htdocs/langs/th_TH/compta.lang +++ b/htdocs/langs/th_TH/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=จํานวนเงินที่ Param=การติดตั้ง RemainingAmountPayment=การชำระเงินจำนวนเงินที่เหลือ: Account=บัญชี -Accountparent=บัญชีผู้ปกครอง -Accountsparent=บัญชีผู้ปกครอง +Accountparent=Parent account +Accountsparent=Parent accounts Income=เงินได้ Outcome=ค่าใช้จ่าย ReportInOut=รายได้ / ค่าใช้จ่าย @@ -56,6 +56,7 @@ MenuTaxAndDividends=ภาษีและเงินปันผล MenuSocialContributions=สังคม / ภาษีการคลัง MenuNewSocialContribution=ใหม่สังคม / ภาษีการคลัง NewSocialContribution=ใหม่สังคม / ภาษีการคลัง +AddSocialContribution=Add social/fiscal tax ContributionsToPay=สังคม / ภาษีการคลังที่จะต้องจ่าย AccountancyTreasuryArea=การบัญชี / ธนารักษ์พื้นที่ NewPayment=การชำระเงินใหม่ @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- ซึ่งจะรวมถึงทุกการชำระเงินที่มีประสิทธิภาพของใบแจ้งหนี้ที่ได้รับจากลูกค้า
- มันขึ้นอยู่กับวันที่ชำระเงินของใบแจ้งหนี้เหล่านี้
-DepositsAreNotIncluded=- ใบแจ้งหนี้หรือเงินฝากจะรวม -DepositsAreIncluded=- ใบแจ้งหนี้เงินฝากที่จะถูกรวม +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=รายงานโดยบุคคลที่สาม IRPF LT1ReportByCustomersInInputOutputModeES=รายงานโดยเรื่องของบุคคลที่สาม VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=วารสารการขาย DescPurchasesJournal=วารสารการสั่งซื้อสินค้า InvoiceRef=อ้างอิงใบแจ้งหนี้ CodeNotDef=ไม่กำหนด -WarningDepositsNotIncluded=ใบแจ้งหนี้เงินฝากไม่รวมอยู่ในรุ่นที่มีโมดูลบัญชีนี้ +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=ในระยะวันที่ชำระเงินไม่สามารถจะต่ำกว่าวันที่วัตถุ Pcg_version=Chart of accounts models Pcg_type=ประเภท PCG @@ -189,8 +190,10 @@ AccountancyJournal=วารสารการบัญชีรหัส ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=โคลนสังคม / ภาษีการคลัง ConfirmCloneTax=ยืนยันโคลนของสังคม / ชำระภาษีการคลัง CloneTaxForNextMonth=โคลนมันสำหรับเดือนถัดไป @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=สังคม / ภาษีการคลัง ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/th_TH/cron.lang b/htdocs/langs/th_TH/cron.lang index 5172a26816f..d7a604c6b46 100644 --- a/htdocs/langs/th_TH/cron.lang +++ b/htdocs/langs/th_TH/cron.lang @@ -25,7 +25,7 @@ CronDelete=ลบงานที่กำหนดไว้ CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=โมดูลงานตามกำหนดการอนุญาตให้มีการดำเนินงานที่ได้รับการวางแผน +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=งาน CronNone=ไม่ CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=เปิดใช้งาน CronStatusInactiveBtn=ปิดการใช้งาน CronTaskInactive=งานนี้ถูกปิดใช้งาน CronId=Id -CronClassFile=การเรียนการสอน (filename.class.php) -CronModuleHelp=ชื่อของไดเรกทอรีโมดูล Dolibarr (ยังทำงานร่วมกับโมดูล Dolibarr ภายนอก)
สำหรับ exemple สามารถดึงข้อมูลวิธีการ Dolibarr วัตถุสินค้า / htdocs / ผลิตภัณฑ์ /class/product.class.php ค่าของโมดูลเป็นผลิตภัณฑ์ -CronClassFileHelp=ชื่อไฟล์ที่จะโหลด
สำหรับ exemple สามารถดึงข้อมูลวิธีการ Dolibarr วัตถุสินค้า / htdocs / สินค้า / ระดับ / product.class.php ค่าของชื่อไฟล์ระดับคือ product.class.php -CronObjectHelp=ชื่อวัตถุที่จะโหลด
สำหรับ exemple สามารถดึงข้อมูลวิธีการ Dolibarr วัตถุสินค้า /htdocs/product/class/product.class.php ค่าของชื่อไฟล์ระดับเป็นสินค้า -CronMethodHelp=วิธีวัตถุที่จะเปิดตัว
สำหรับ exemple สามารถดึงข้อมูลวิธีการ Dolibarr วัตถุสินค้า /htdocs/product/class/product.class.php ค่าของวิธีการที่เป็น fecth -CronArgsHelp=วิธีการขัดแย้ง
สำหรับ exemple สามารถดึงข้อมูลวิธีการ Dolibarr วัตถุสินค้า /htdocs/product/class/product.class.php ค่าของพารามิเตอร์สามารถ 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=บรรทัดคำสั่งระบบที่จะดำเนินการ CronCreateJob=สร้างงานใหม่กำหนด CronFrom=จาก @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=ปิดการใช้งาน MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/th_TH/errors.lang b/htdocs/langs/th_TH/errors.lang index 6092dfbe7a8..c7b6db36de1 100644 --- a/htdocs/langs/th_TH/errors.lang +++ b/htdocs/langs/th_TH/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=ล้มเหลวในการสร้างแฟ ErrorFailToRenameDir=ไม่สามารถเปลี่ยนชื่อไดเรกทอรี '% s' เป็น '% s' ErrorFailToCreateDir=ล้มเหลวในการสร้างไดเรกทอรี '% s' ErrorFailToDeleteDir=ไม่สามารถลบไดเรกทอรี '% s' +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=ติดต่อนี้ถูกกำหนดไว้แล้วเป็นผู้ติดต่อสำหรับประเภทนี้ ErrorCashAccountAcceptsOnlyCashMoney=บัญชีธนาคารนี้เป็นบัญ​​ชีเงินสดดังนั้นจึงยอมรับการชำระเงินของเงินสดชนิดเดียว ErrorFromToAccountsMustDiffers=แหล่งที่มาและเป้าหมายบัญชีธนาคารจะต้องแตกต่าง @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=ไม่สามารถเขียนในได ErrorFoundBadEmailInFile=พบไวยากรณ์อีเมลไม่ถูกต้องสำหรับ% s บรรทัดในไฟล์ (เช่นสาย% s ด้วยอีเมล =% s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=ฟิลด์ที่จำเป็นบางคนไม่เต็ม +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=ล้มเหลวในการสร้างไดเรกทอรี ตรวจสอบการใช้เว็บเซิร์ฟเวอร์ที่มีสิทธิ์ในการเขียนลงในไดเรกทอรีเอกสาร Dolibarr หาก safe_mode พารามิเตอร์เปิดใช้งานบน PHP นี้ตรวจสอบว่า php ไฟล์ Dolibarr เป็นเจ้าของให้กับผู้ใช้เว็บเซิร์ฟเวอร์ (หรือกลุ่ม) ErrorNoMailDefinedForThisUser=จดหมายไม่มีกำหนดไว้สำหรับผู้ใช้นี้ ErrorFeatureNeedJavascript=คุณลักษณะนี้จะต้องเปิดการใช้งานได้ในการทำงาน เปลี่ยนนี้ในการตั้งค่า - การแสดงผล @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=จำนวนบรรทัดลง ErrorWebServerUserHasNotPermission=บัญชีผู้ใช้% s ใช้ในการดำเนินการเว็บเซิร์ฟเวอร์มีสิทธิ์ในการที่ไม่มี ErrorNoActivatedBarcode=ประเภทไม่มีการเปิดใช้งานบาร์โค้ด ErrUnzipFails=ไม่สามารถเปิดเครื่องรูด% s กับ ZipArchive -ErrNoZipEngine=เครื่องยนต์ยังไม่ได้เปิดเครื่องรูดแฟ้ม% ใน PHP นี้ +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=ไฟล์% s จะต้องเป็นแพคเกจซิป Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL ไม่ได้ติดตั้งนี้เป็นสิ่งสำคัญที่จะพูดคุยกับ Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=ไม่มีตัวแปรทั่วโล ErrorFieldMustBeANumeric=s สนาม% จะต้องเป็นค่าตัวเลข ErrorMandatoryParametersNotProvided=พารามิเตอร์บังคับ (s) ไม่ได้ให้ ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=วันที่ชำระเงิ WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index 2db97ac35dd..eaa24193396 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=พารามิเตอร์% s ไม่ได้ ErrorUnknown=ข้อผิดพลาดที่ไม่รู้จัก ErrorSQL=ข้อผิดพลาด SQL ErrorLogoFileNotFound=ไฟล์โลโก้ '% s' ไม่พบ -ErrorGoToGlobalSetup=ไปที่ 'บริษัท / มูลนิธิการติดตั้งการแก้ไขปัญหานี้ +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=ไปยังโมดูลการติดตั้งการแก้ไขปัญหานี้ ErrorFailedToSendMail=ล้มเหลวในการส่งอีเมล (ส่ง =% s รับ =% s) ErrorFileNotUploaded=ไฟล์ที่อัปโหลดไม่ได้ ตรวจสอบขนาดที่ไม่เกินสูงสุดที่อนุญาตที่พื้นที่ว่างที่มีอยู่บนดิสก์และนั่นก็คือไม่ได้อยู่แล้วไฟล์ที่มีชื่อเดียวกันในไดเรกทอรีนี้ @@ -153,6 +153,7 @@ Edit=แก้ไข Validate=ตรวจสอบ ValidateAndApprove=ตรวจสอบและอนุมัติ ToValidate=ในการตรวจสอบ +NotValidated=Not validated Save=บันทึก SaveAs=บันทึกเป็น TestConnection=ทดสอบการเชื่อมต่อ @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=ไม่มีคุณลักษณะปลด Connection=สัมพันธ์ Setup=การติดตั้ง Alert=เตือนภัย +MenuWarnings=การแจ้งเตือน Previous=ก่อน Next=ถัดไป Cards=การ์ด @@ -308,6 +310,7 @@ Copy=สำเนา Paste=แปะ Default=ผิดนัด DefaultValue=ค่ามาตรฐาน +DefaultValues=Default values Price=ราคา UnitPrice=ราคาต่อหน่วย UnitPriceHT=ราคาต่อหน่วย (สุทธิ) @@ -363,7 +366,8 @@ VATRate=อัตราภาษี Average=เฉลี่ย Sum=รวม Delta=รูปสามเหลี่ยม -Module=โมดูล +Module=Module/Application +Modules=Modules/Applications Option=ตัวเลือก List=รายการ FullList=รายการเต็มรูปแบบ @@ -387,7 +391,7 @@ ActionRunningNotStarted=ในการเริ่มต้น ActionRunningShort=In progress ActionDoneShort=เสร็จสิ้น ActionUncomplete=Uncomplete -CompanyFoundation=บริษัท / มูลนิธิ +CompanyFoundation=Company/Organisation ContactsForCompany=สำหรับรายชื่อของบุคคลที่สามนี้ ContactsAddressesForCompany=รายชื่อ / ที่อยู่สำหรับบุคคลที่สามนี้ AddressesForCompany=สำหรับที่อยู่ของบุคคลที่สามนี้ @@ -405,8 +409,9 @@ Generate=ผลิต Duration=ระยะเวลา TotalDuration=ระยะเวลารวม Summary=ย่อ -DolibarrStateBoard=สถิติ -DolibarrWorkBoard=คณะกรรมการงานการทำงาน +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=มีจำหน่าย NotYetAvailable=ยังไม่สามารถใช้ได้ NotAvailable=ไม่พร้อม @@ -434,7 +439,7 @@ Reportings=การรายงาน Draft=ร่าง Drafts=ร่าง Validated=ผ่านการตรวจสอบ -Opened=Opened +Opened=เปิด New=ใหม่ Discount=ส่วนลด Unknown=ไม่ทราบ @@ -453,6 +458,7 @@ NextStep=ขั้นตอนต่อไป Datas=ข้อมูล None=ไม่ NoneF=ไม่ +NoneOrSeveral=None or several Late=สาย LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=ภาพ @@ -606,7 +612,8 @@ PartialWoman=เป็นบางส่วน TotalWoman=ทั้งหมด NeverReceived=ไม่เคยได้รับ Canceled=ยกเลิก -YouCanChangeValuesForThisListFromDictionarySetup=คุณสามารถเปลี่ยนค่าสำหรับรายชื่อจากการตั้งค่าเมนูนี้ - พจนานุกรม +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=สี Documents=แฟ้มที่เชื่อมโยง @@ -642,6 +649,7 @@ FreeLineOfType=รายการฟรีประเภท CloneMainAttributes=วัตถุโคลนที่มีคุณลักษณะหลัก PDFMerge=ผสานรูปแบบไฟล์ PDF Merge=ผสาน +DocumentModelStandardPDF=Standard PDF template PrintContentArea=หน้าแสดงพื้นที่ในการพิมพ์เนื้อหาหลัก MenuManager=ผู้จัดการเมนู WarningYouAreInMaintenanceMode=คำเตือนคุณอยู่ในโหมดการบำรุงรักษาดังนั้นเพียง% s เข้าสู่ระบบได้รับอนุญาตให้ใช้โปรแกรมในขณะนี้ @@ -708,6 +716,7 @@ from=จาก toward=ไปทาง Access=การเข้าถึง SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=ใช้ Ctrl + C เพื่อคัดลอกไปที่คลิปบอร์ด SaveUploadedFileWithMask=บันทึกไฟล์บนเซิร์ฟเวอร์ที่มีชื่อ "%s" (มิฉะนั้น "%s") OriginFileName=ชื่อไฟล์ต้นฉบับ @@ -718,7 +727,7 @@ ViewPrivateNote=ดูบันทึก XMoreLines=% s สาย (s) ซ่อน PublicUrl=URL ที่สาธารณะ AddBox=เพิ่มกล่อง -SelectElementAndClickRefresh=เลือกองค์ประกอบและคลิกฟื้นฟู +SelectElementAndClick=Select an element and click %s PrintFile=พิมพ์ไฟล์% s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=ไปลงในหน้าหลัก - การติดตั้ง - บริษัท ที่จะเปลี่ยนโลโก้หรือไปลงในหน้าแรก - การติดตั้ง - จอแสดงผลที่จะซ่อน @@ -734,8 +743,8 @@ Hello=สวัสดี Sincerely=Sincerely DeleteLine=ลบบรรทัด ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=ปฏิทิน GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=ปีงบประมาณ +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=วันจันทร์ Tuesday=วันอังคาร @@ -817,5 +835,3 @@ SearchIntoContracts=สัญญา SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=รายงานค่าใช้จ่าย SearchIntoLeaves=ใบลา - -BulkActions=Bulk actions diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index 4f436420b43..7d99ded2d77 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=วันเกิด BirthdayAlertOn=การแจ้งเตือนการใช้งานวันเกิด BirthdayAlertOff=การแจ้งเตือนวันเกิดไม่ได้ใช้งาน +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=การแทรกแซงการตรวจสอบ Notify_FICHINTER_SENTBYMAIL=การแทรกแซงส่งทางไปรษณีย์ @@ -61,13 +74,14 @@ PredefinedMailTestHtml=นี่คือจดหมายทดสอบ(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
ศ Id% s ข้อมูลขึ้นอยู่กับประเทศของบุคคลที่สาม
ตัวอย่างเช่นสำหรับประเทศ% s ก็รหัส% s DolibarrDemo=Dolibarr ERP / CRM สาธิต -StatsByNumberOfUnits=สถิติในจำนวนของผลิตภัณฑ์ / หน่วยบริการ -StatsByNumberOfEntities=สถิติในจำนวนของหน่วยงานหมาย -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=การแทรกแซง% s ได้รับการตรวจสอบ EMailTextInvoiceValidated=ใบแจ้งหนี้% s ได้รับการตรวจสอบ diff --git a/htdocs/langs/th_TH/projects.lang b/htdocs/langs/th_TH/projects.lang index 43ea4da302a..d8950ef4322 100644 --- a/htdocs/langs/th_TH/projects.lang +++ b/htdocs/langs/th_TH/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=สถานะของโครงการ SharedProject=ทุกคน PrivateProject=รายชื่อโครงการ +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=ทุกโครงการ MyProjectsDesc=มุมมองนี้จะ จำกัด ให้กับโครงการที่คุณกำลังติดต่อ (สิ่งที่เป็นประเภท) ProjectsPublicDesc=มุมมองนี้จะนำเสนอโครงการทั้งหมดที่คุณได้รับอนุญาตให้อ่าน TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=มุมมองนี้นำเสนอทุกโครงก AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=โครงการใหม่ AddProject=สร้างโครงการ DeleteAProject=ลบโครงการ DeleteATask=ลบงาน ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=เปิดโครงการ -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=แสดงโครงการ SetProject=โครงการตั้ง NoProject=ไม่มีโครงการที่กำหนดไว้หรือเป็นเจ้าของ NbOfProjects=nb ของโครงการ +NbOfTasks=Nb of tasks TimeSpent=เวลาที่ใช้ TimeSpentByYou=เวลาที่ใช้โดยคุณ TimeSpentByUser=เวลาที่ใช้โดยผู้ใช้ @@ -47,9 +52,9 @@ TaskTimeSpent=เวลาที่ใช้ในงาน TaskTimeUser=ผู้ใช้งาน TaskTimeNote=บันทึก TaskTimeDate=วันที่ -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=งานเกี่ยวกับโครงการที่เปิด WorkloadNotDefined=ภาระงานที่ไม่ได้กำหนดไว้ -NewTimeSpent=เวลาใหม่ใช้เวลา +NewTimeSpent=เวลาที่ใช้ MyTimeSpent=เวลาของการใช้จ่าย Tasks=งาน Task=งาน @@ -59,6 +64,7 @@ TaskDescription=รายละเอียดงาน NewTask=งานใหม่ AddTask=สร้างงาน AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=กิจกรรม Activities=งาน / กิจกรรม MyActivities=งานของฉัน / กิจกรรม @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=รายการของสัญญาที่เกี่ยวข้องกับโครงการ +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=รายชื่อของการแทรกแซงที่เกี่ยวข้องกับโครงการ ListExpenseReportsAssociatedProject=รายชื่อของรายงานค่าใช้จ่ายที่เกี่ยวข้องกับการโครงการ ListDonationsAssociatedProject=รายชื่อของการบริจาคที่เกี่ยวข้องกับการโครงการ @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=รายชื่อโครงการ ActionsOnProject=เหตุการณ์ที่เกิดขึ้นในโครงการ YouAreNotContactOfProject=คุณยังไม่ได้ติดต่อส่วนตัวของโครงการนี​​้ +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=ลบเวลาที่ใช้ ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=ดูยังไม่ได้รับมอบหมายงานมาให้ฉัน @@ -110,7 +118,7 @@ TaskRessourceLinks=ทรัพยากร ProjectsDedicatedToThisThirdParty=โครงการที่ทุ่มเทให้กับบุคคลที่สามนี้ NoTasks=ไม่มีงานสำหรับโครงการนี​​้ LinkedToAnotherCompany=เชื่อมโยงไปยังบุคคลที่สาม -TaskIsNotAffectedToYou=งานไม่ได้มอบหมายให้คุณ +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=เวลาที่ใช้เป็นที่ว่างเปล่า ThisWillAlsoRemoveTasks=การดำเนินการนี้จะลบงานทั้งหมดของโครงการ (% s งานในขณะนี้) และปัจจัยการผลิตทั้งหมดของเวลาที่ใช้ IfNeedToUseOhterObjectKeepEmpty=หากวัตถ​​ุบางอย่าง (ใบแจ้งหนี้การสั่งซื้อ ... ) เป็นของอีกบุคคลที่สามจะต้องเชื่อมโยงกับโครงการที่จะสร้างให้ที่ว่างเปล่านี้จะมีโครงการที่เป็นบุคคลที่สามหลาย @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=การป้อนข้อมูลต่อวัน InputPerWeek=การป้อนข้อมูลต่อสัปดาห์ InputPerAction=การป้อนข้อมูลต่อการกระทำ -TimeAlreadyRecorded=เวลาที่อยู่ในใช้เวลาบันทึกไว้แล้วสำหรับงานนี้วัน / และใช้งาน% s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=โครงการที่มีผู้ใช้เป็นการติดต่อนี้ TasksWithThisUserAsContact=Tasks ได้รับมอบหมายให้ผู้ใช้รายนี้ ResourceNotAssignedToProject=ไม่ได้กำหนดโครงการ ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=มอบหมายงานให้ฉัน +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=กำหนด ProjectOverview=ภาพรวม ManageTasks=ใช้โครงการที่จะปฏิบัติตามงานและเวลา ManageOpportunitiesStatus=ใช้โครงการที่จะนำไปสู่​​การปฏิบัติตาม / opportinuties ProjectNbProjectByMonth=nb ของโครงการที่สร้างขึ้นโดย +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=สถิติในโครงการ / โอกาสในการขาย +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=งานที่ได้รับมอบหมาย เข้าครั้งในงานนี้จะเป็นไปได้ IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=โครงการเปิดโดย thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 4c62a66caa3..2a204c8e8d4 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -3,16 +3,16 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Dışaaktarma dosyası için sütun ayırıcısı ACCOUNTING_EXPORT_DATE=Dışaaktarma dosyası için tarih biçimi ACCOUNTING_EXPORT_PIECE=Parça sayısını dışaaktar ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Genel hesapla birlikte dışaaktar -ACCOUNTING_EXPORT_LABEL=Etiket dışaaktar -ACCOUNTING_EXPORT_AMOUNT=Tutarı dışaaktar -ACCOUNTING_EXPORT_DEVISE=Para birimi dışaaktar +ACCOUNTING_EXPORT_LABEL=Etiket dışa aktar +ACCOUNTING_EXPORT_AMOUNT=Tutarı dışa aktar +ACCOUNTING_EXPORT_DEVISE=Para birimi dışa aktar Selectformat=Dosya için biçimi seçin ACCOUNTING_EXPORT_PREFIX_SPEC=Dosya adı için öneki belirtin -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest +ThisService=Bu hizmet +ThisProduct=Bu ürün +DefaultForService=Hizmet için varsayılan +DefaultForProduct=Ürün için varsayılan +CantSuggest=Öneri yok AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s ConfigAccountingExpert=Hesap uzmanı modülü yapılandırması Journalization=Journalization @@ -22,31 +22,35 @@ BackToChartofaccounts=Hesap planı cirosu Chartofaccounts=Hesap planı CurrentDedicatedAccountingAccount=Current dedicated account AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label +InvoiceLabel=Fatura etiketi OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information +OtherInfo=Diğer Bilgiler +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,12 +61,16 @@ ChangeAndLoad=Change and load Addanaccount=Muhasebe hesabı ekle AccountAccounting=Muhasebe hesabı AccountAccountingShort=Hesap +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Önerilen muhasebe hesabı MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts +MenuTaxAccounts=Vergi hesabı +MenuExpenseReportAccounts=Gider raporu hesapları +MenuLoanAccounts=Kredi hesapları MenuProductsAccounts=Product accounts ProductsBinding=Products accounts Ventilation=Hesaba bağlama @@ -71,8 +79,8 @@ SuppliersVentilation=Tedarikçi faturası bağlama ExpenseReportsVentilation=Expense report binding CreateMvts=Yeni işlem oluştur UpdateMvts=İşlemi değiştir -WriteBookKeeping=İşlemleri Büyük Deftere kaydet -Bookkeeping=Büyük Defter +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Hesap bakiyesi CAHTF=Total purchase supplier before tax @@ -93,19 +101,19 @@ Lineofinvoice=Fatura satırı LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Muhasebe hesabına başarıyla bağlandı -NotVentilatedinAccount=Not bound to the accounting account +NotVentilatedinAccount=Muhasebe hesabına bağlı değil XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Her sayfada gösterilen bağlanacak öğe sayısı (ençok önerilen: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO="Bağlama yapılacaklar" sayfasının sıralama işlemini en son öğelerden başlatın +ACCOUNTING_LIST_SORT_VENTILATION_DONE="Bağlama yapılanlar" sayfasının sıralama işlemini en son öğelerden başlatın -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_DESCRIPTION=Listedeki ürün ve hizmet açıklamalarını x karakterden sonra kesin (En iyi = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Listedeki ürün ve hizmet hesabı açıklamalarını x karakterden sonra kesin (En iyi = 50) +ACCOUNTING_LENGTH_GACCOUNT=Genel muhasebe hesaplarının uzunluğu (eğer burada değeri 6 olarak ayarlarsanız '706' nolu hesap ekranda '706000' gibi görüntülenecektir) +ACCOUNTING_LENGTH_AACCOUNT=Üçüncü taraf muhasebe hesaplarının uzunluğu (eğer burada değeri 6 olarak ayarlarsanız '401' nolu hesap ekranda '401000' gibi görüntülenecektir) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Satış günlüğü @@ -114,14 +122,14 @@ ACCOUNTING_MISCELLANEOUS_JOURNAL=Çeşitli günlük ACCOUNTING_EXPENSEREPORT_JOURNAL=Rapor günlüğü dışaaktarılsın mı? ACCOUNTING_SOCIAL_JOURNAL=Sosyal günlük -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Muhasebe hesabının transferi +ACCOUNTING_ACCOUNT_SUSPENSE=Muhasebe hesabının bekletilmesi DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Satınalınan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Satılan ürünler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Satınalınan hizmetler için varsayılan muhasebe hesabı (ürün kartlarında tanımlanmışsa) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Satılan hizmetler için varsayılan muhasebe kodu (hizmet sayfasında tanımlanmamışsa) Doctype=Belge türü Docdate=Tarih @@ -132,19 +140,19 @@ Sens=Sens (borsa haberleri yayınlama günlüğü) Codejournal=Günlük NumPiece=Parça sayısı TransactionNumShort=Num. transaction -AccountingCategory=Muhasebe kategorisi +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Ayarlanmamış -DeleteMvt=Büyük defter satırı sil +DeleteMvt=Delete Ledger lines DelYear=Silinecek yıl DelJournal=Silinecek günlük -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal -ExpenseReportsJournal=Expense reports journal +ExpenseReportsJournal=Gider raporları günlüğü DescFinanceJournal=Banka hesabından yapılan tüm ödeme türlerini içeren finans günlüğü -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -152,22 +160,22 @@ FeeAccountNotDefined=Account for fee not defined BankAccountNotDefined=Account for bank not defined CustomerInvoicePayment=Müşteri faturası ödemesi ThirdPartyAccount=Üçüncü taraf hesabı -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +NewAccountingMvt=Yeni İşlem +NumMvts=İşlem hareket sayısı +ListeMvts=Hareketler Listesi ErrorDebitCredit=Borç ve Alacak aynı anda bir değere sahip olamaz - -ReportThirdParty=List third party account -DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts +AddCompteFromBK=Add accounting accounts to the group +ReportThirdParty=Üçüncü taraf hesabını listele +DescThirdPartyReport=Burada üçüncü taraf müşterileri ve tedarikçileri ile onların muhasebe hesaplarının listesine bakın ListAccounts=Muhasebe hesapları listesi Pcgtype=Hesap sınıfı -Pcgsubtype=Hesap sınıfı altında +Pcgsubtype=Subclass of account TotalVente=Vergi öncesi toplam gelir TotalMarge=Toplam satışlar kar oranı -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account +DescVentilCustomer=Burada bir ürün hesabına bağlı (ya da bağlı olmayan) müşteri faturaları satırları listesine bakın. DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account @@ -186,16 +194,28 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Hata, kullanıldığı için bu muhasebe hesabını silemezsiniz MvtNotCorrectlyBalanced=Hareket doğru denkleştirilmemiş. Alacak = %s. Borç = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding ## Admin ApplyMassCategories=Toplu kategori uygula -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories +AddAccountFromBookKeepingWithNoCategories=Önceden kategori kullanılmayan bir hesap ekle CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Kod +Nature=Niteliği +AccountingJournalType1=Various operation +AccountingJournalType2=Satışlar +AccountingJournalType3=Alışlar +AccountingJournalType4=Banka +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Dışaaktarımlar @@ -211,7 +231,8 @@ Modelcsv_ciel=Sage Ciel Compta ya da Compta Evolution'a doğru dışaaktar Modelcsv_quadratus=Quadratus QuadraCompta'ya doğru dışaaktar Modelcsv_ebp=EBP'ye yönelik dışaaktarım Modelcsv_cogilog=Cogilog'a dışaaktar -ChartofaccountsId=Chart of accounts Id +Modelcsv_agiris=Export towards Agiris (Test) +ChartofaccountsId=Hesap planı Id ## Tools - Init accounting account on product / service InitAccountancy=Muhasebe başlangıcı @@ -235,11 +256,12 @@ Calculated=Hesaplanmış Formula=Formül ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=Ayarlanan dışaaktarım biçimi bu sayfada desteklenmiyor BookeppingLineAlreayExists=Satırlar zaten muhasebede bulunmaktadır - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 0eb1491952f..19ba7f0497b 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -48,6 +48,7 @@ InternalUsers=İç kullanıcılar ExternalUsers=Dış kullanıcılar GUISetup=Ekran SetupArea=Ayarlar alanı +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Dosya yükleme deneme formu (ayarlara göre) IfModuleEnabled=Not: yalnızca %s modülü etkinleştirildiğinde evet etkilidir. RemoveLock=%s dosyasını, eğer güncelleme aracının kullanımına izin vermek için belirmişse kaldırın. @@ -85,7 +86,7 @@ Mask=Maske NextValue=Sonraki değer NextValueForInvoices=Sonraki değer (faturalar) NextValueForCreditNotes=Sonraki değer (iade faturaları) -NextValueForDeposit=Sonraki değer (yatırılan) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Sonraki değer (yenileme) MustBeLowerThanPHPLimit=Not: PHP niz yüklenen her dosyanın boyutunu, parametrelerin değeri ne olursa olsun %s %s ile sınırlandırır NoMaxSizeByPHPLimit=Not: PHP yapılandırmanızda hiç sınır ayarlanmamış @@ -103,7 +104,7 @@ MenuIdParent=Ana menü Kimliği DetailMenuIdParent=Ana menü Kimliği (bir üst menü için boş) DetailPosition=Menü konumunu tanımlamak için sıra numarası AllMenus=Tümü -NotConfigured=Modül yapılandırılmamış +NotConfigured=Module/Application not configured Active=Etkin SetupShort=Ayarlar OtherOptions=Diğer seçenekler @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Binlik ayırıcı Destination=Hedef IdModule=Modül Kimliği IdPermissions=İzin Kimliği -Modules=Modüller LanguageBrowserParameter=Parametre %s LocalisationDolibarrParameters=Yerelleştirme parametreleri ClientTZ=İstemci Zaman Dilimi (kullanıcı) @@ -123,7 +123,8 @@ PHPTZ=PHP Saat Dilimi (sunucu) DaylingSavingTime=Yaz saati uygulaması CurrentHour=PHP saati (sunucu) CurrentSessionTimeOut=Geçerli oturumun zaman aşımı -YouCanEditPHPTZ=Farklı bir PHP saat dilimi (gerekli değildir) ayarlamak için "SetEnv TZ Europe/Paris" gibi bir satır içeren .htacces dosyası eklemeyi deneyin +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Ekran etiketi Boxes=Ekran Etiketleri MaxNbOfLinesForBoxes=Ekran etiketleri için ençok satır sayısı @@ -189,10 +190,10 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=İzinler BoxesDesc=Ekran etiketleri, sayfaları kişiselleştirmek için ekleyeceğiniz bazı bilgiler gösteren ekran araçlarıdır. Bu ekran etiketlerini gösterip göstermemeyi seçebilirsiniz ya da hedef sayfayı seçip 'Etkinleştir'e tıklayabilir ya da engellemek için çöp kutusuna tıklayabilirsiniz. OnlyActiveElementsAreShown=Yalnızca etkinleştirilmiş modüllerin öğeleri gösterilmiştir. -ModulesDesc=Dolibarr modülleri, yazılımda hangi özelliğin devreye alınacağını tanımlar. Modül devreye alındıktan sonra kullanıcıya bazı izinler vermeniz gerekir. Bir modülü/özelliği etkinleştirmek için aç/kapa düğmesini tıklayın. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=Internette dış web sitelerinde indirmek için daha çok modül bulabilirsiniz... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Dış modül bul... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, Dolibarr ERP/CRM dış modülleri için resmi pazar yeri DoliPartnersDesc=İstek üzerine modül ve özellik geliştiren firmaların listesi. (Not: Açık kaynak kullanan PHP bilen herhangi bir firma size özel geliştirme hizmetleri sağlayabilir) @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Veritabanı parolaları conf.php de şifrelendir InstrucToEncodePass=Parolayı conf.php dosyasına kodlamak için
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; satırını değiştirin InstrucToClearPass=Parolayı conf.php dosyasına kodlamak (temiz) için
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; satırını değiştirin ProtectAndEncryptPdfFiles=Oluşturulan pdf dosyalarının korunması (Etkinleştirme önerilmez) toplu pdf oluşumunu bozar -ProtectAndEncryptPdfFilesDesc=Bir PDF belgesinin korunması dosyanın herhangi bir PDF tarayıcısında okunmasını ve yazdırılmasını sağlar. Bundan düzenleme ve kopyalama olanaksızdır. Bu özelliği kulanmanın çalışmayan genel kümülatif pdf oluşturduğuna dikkat edin (ödenmemiş faturalar gibi). +ProtectAndEncryptPdfFilesDesc=Bir PDF belgesinin korunması dosyanın herhangi bir PDF tarayıcısında okunmasını ve yazdırılmasını sağlar. Bundan düzenleme ve kopyalama yapmak olanaksızdır. Bu özelliği kulanmanın çalışmayan genel kümülatif pdf oluşturduğuna dikkat edin. Feature=Özellik DolibarrLicense=Lisans Developpers=Geliştiriciler/katılımcılar @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr çevrimiçi demo OfficialMarketPlace=Dış modüller/eklentiler için resmi Pazar yeri OfficialWebHostingService=Önerilen web barındırma servisleri (bulut barındırma) ReferencedPreferredPartners=Tercihli Ortaklar -OtherResources=Diğer kaynaklar +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=Kullanıcıların ve geliştiricilerin belgeleri (Doc, FAQs…),
Dolibarr Wiki ye bir göz atın:
%s ForAnswersSeeForum=Herhangi bir başka soru/yardım için Dolibarr forumunu kullanabilirsiniz:
%s HelpCenterDesc1=Bu alan Dolibarr’dan Yardım destek hizmeti almanıza olanak sağlar. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Unix gibi sistemlerde bu özellik yoktur. SubmitTranslation=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları langs/%s dizininde düzeltebilir ve değişikliklerinizi www.transifex.com/dolibarr-association/dolibarr/ a gönderebilirsiniz. SubmitTranslationENUS=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları langs/%s dizininde düzeltebilir ve değişikliklerinizi dolibarr.org/forum adresine veya geliştiriciler için github.com/Dolibarr/dolibarr adresine gönderebilirsiniz. ModuleSetup=Modül kurulumu -ModulesSetup=Modüllerin kurulumu +ModulesSetup=Modules/Application setup ModuleFamilyBase=Sistem ModuleFamilyCrm=Müşteri İlişkileri Yönetimi (CRM) ModuleFamilySrm=Tefadrikçi İlişkileri Yönetimi (SRM) @@ -284,30 +287,33 @@ ModuleFamilyInterface=Dış sistemli arayüzler MenuHandlers=Menü işlemcileri MenuAdmin=Menü düzenleyici DoNotUseInProduction=Üretimde kullanmayın -ThisIsProcessToFollow=This is steps to process: +ThisIsProcessToFollow=İşlem adımlarıdır: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Adım %s FindPackageFromWebSite=İstediğiniz özelliği sağlayan bir paket bulun (örneğin; resmi web sitesinden %s). DownloadPackageFromWebSite=Paketi indir (örneğin resmi web sitesinden %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +UnpackPackageInDolibarrRoot=Paket dosyalarını Dolibarr'da dış modüllere ayrılmış sunucu dizini içine ayıkla: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +SetupIsReadyForUse=Modül yerleşimi tamamlandı. Bununla birlikte, modül ayarları sayfasına giderek modülleri uygulamanızda etkinleştirmeli ve kurmalısınız: %s. +NotExistsDirect=Alternatif kök dizin varolan bir dizine tanımlanmamış.
+InfDirAlt=Sürüm 3 ten beri bir alternatif kök dizin tanımlanabiliyor. Bu sizin ayrılmış bir dizine, eklentiler ve özel şablonlar depolamanızı sağlar.
Yalnızca Dolibarr kökünde bir dizin oluşturun (örn. özel).
+InfDirExample=
Sonra bunu conf.php dosyasında belirtin
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
*Bu satırlar "#" karakteri ile yorumlanır, yorumu kaldırmak için sadece bu karakteri kaldırın. YouCanSubmitFile=Bu adımda paketi göndermek için kullanacağınız araç: Modül dosyasını seç CurrentVersion=Dolibarr geçerli sürümü CallUpdatePage=Veritabanı yapısını ve verileri güncelleyen sayfaya git: %s. LastStableVersion=Son kararlı sürüm LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Güncelleme sunucusu çevrimdışı +WithCounter=Manage a counter GenericMaskCodes=Herhangi bir numaralandırma maskesi girebilirsiniz. Bu maskede alttaki etiketler kullanılabilir:
{000000} her %s te artırılacak bir numaraya karşılık gelir. Sayacın istenilen uzunluğu kadar çok sıfır girin. Sayaç, maskedeki kadar çok sayıda sıfır olacak şekilde soldan sıfırlarla tamamlanacaktır.
{000000+000} önceki ile aynıdır fakat + işaretinin sağındaki sayıya denk gelen bir sapma ilk %s ten itibaren uygulanır.
{000000@x} önceki ile aynıdır fakat sayaç x aya ulaşıldığında sıfırlanır (x= 1 ve 12 arasındadır veya yapılandırmada tanımlanan mali yılın ilk aylarını kullanmak için 0 dır). Bu seçenek kullanılırsa ve x= 2 veya daha yüksekse, {yyyy}{mm} veya {yyyy}{mm} dizisi de gereklidir.
{dd} gün (01 ila 31).
{mm} ay (01 ila 12).
{yy}, {yyyy} veya {y} yıl 2, 4 veya 1 sayıları üzerindedir.
-GenericMaskCodes2={cccc} n Karakterdeki istemci kodu
{cccc000} n Karakterdeki istemci kodu müşteri için özel bir sayaç tarafından takip edilmektedir. Müşteriye ayrılan bu sayaç, genel sayaçla aynı anda sıfırlanır.
{tttt} n Karakterdeki üçüncü taraf türü kodu (bakınız sözlük-şirket türleri).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=Maskede diğer tüm karakterler olduğu gibi kalır.
Boşluklara izin verilmez.
-GenericMaskCodes4a=Üçüncü partinin 99 uncu %s örneği Firma 2007/01/31 de yapıldı:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=2007/03/01 tarihinde oluşturulan üçüncü parti örneği:
GenericMaskCodes4c=2007-03-01 de oluşturulan ürün için örnek:
-GenericMaskCodes5=ABC{yy}{mm}-{000000}, ABC0701-000099 verecektir
{0000+100@1}-ZZZ/{dd}/XXX, 0199-ZZZ/31/XXX verecektir +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Tanımlı bir maskeye göre özelleştirilebilir bir sayı verir. ServerAvailableOnIPOrPort=Sunucu %s portundaki %s adresinde bulunur. ServerNotAvailableOnIPOrPort=Sunucu %s portundaki %s adresinde yoktur. @@ -369,20 +375,22 @@ Int=Tam sayı Float=Kayan DateAndTime=Tarih ve saat Unique=Benzersiz -Boolean=Matıksal (Onay kutusu) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Telefon ExtrafieldPrice = Fiyat ExtrafieldMail = Eposta ExtrafieldUrl = Url ExtrafieldSelect = Liste seç ExtrafieldSelectList = Tablodan seç -ExtrafieldSeparator=Ayırıcı +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Parola -ExtrafieldCheckBox=Onay kutusu -ExtrafieldRadio=Onay düğmesi -ExtrafieldCheckBoxFromList= Tablodan açılır kutu +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Bir nesneye bağlantı -ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ExtrafieldParamHelpselect=Parametre listesi anahtar,değer gibi olmalı, örneğin

:
1,değer1
2,değer2
3,değer3
...

Listenin başka bir tamamlayıcı nitelik listesine bağlı olmasını sağlamak için :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Başka bir listeye bağlı bir liste elde etmek için\n:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parametre listesi anahtar.değer gibi olmalı, örneğin

:
1,değer1
2,değer2
3,değer3
... ExtrafieldParamHelpradio=Parametre listesi anahtar.değer gibi olmalı, örneğin

:
1,değer1
2,değer2
3,değer3
... ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter @@ -422,9 +430,23 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Tutar (vergi öncesi) bu tutardan yüksekse 3 aşamalı bir onaylama kullanın... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Alan +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Kullanıcılar & gruplar -Module0Desc=Users / Employees and Groups management +Module0Desc=Kullanıcı / Çalışan ve Grup Yönetimi Module1Name=Üçüncü partiler Module1Desc=Firma ve kişi yönetimi (müşteriler, adaylar…) Module2Name=Ticaret @@ -444,7 +466,7 @@ Module30Desc=Müşteri faturaları ve iade faturaları yönetimi. Tedarikçi fat Module40Name=Tedarikçiler Module40Desc=Tedarikçi yönetimi ve satın alma (siparişler ve faturalar) Module42Name=Kütükler -Module42Desc=Kütük özellikleri (dosya, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Düzenleyiciler Module49Desc=Düzenleyici yönetimi Module50Name=Ürünler @@ -499,8 +521,8 @@ Module410Name=Web Takvimi Module410Desc=WebT akvimi entegrasyonu Module500Name=Özel giderler Module500Desc=Özel giderlerin yönetimi (vergiler, sosyal ya da mali vergiler, kar payları) -Module510Name=Çalışan sözleşmeleri ve ücretleri -Module510Desc=Çalışanların sözleşme, ücret ve ödeme yönetimi +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Borç Module520Desc=Borçların yönetimi Module600Name=Duyurlar @@ -525,8 +547,8 @@ Module2200Name=Dinamik Fiyatlar Module2200Desc=Fiyatlar için matematik ifadelerin kullanımını etkinleştir Module2300Name=Kron Module2300Desc=Planlı iş yönetimi -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Name=Etkinlik / Ajanda +Module2400Desc=Geçmiş ve Gelecek Etkinlikleri izle. Uygulama kayıtlarının otomatik etkinlik takibi ya da el ile etkinlikleri takip et Module2500Name=Elektronik İçerik Yönetimi Module2500Desc=Belgeleri saklayın ve yönetin Module2600Name=API/Web hizmetleri (SOAP sunucusu) @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind dönüştürme becerileri Module3100Name=Skype Module3100Desc=Kullanıcı / üçüncü parti / kişi / üye kartlarına bir Skype düğmesi ekle +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=IK -Module4000Desc=İnsan Kaynakları Yönetimi +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Çoklu-firma Module5000Desc=Birden çok firmayı yönetmenizi sağlar Module6000Name=İş akışı @@ -591,7 +615,7 @@ Permission32=Ürün oluştur/düzenle Permission34=Ürün sil Permission36=Gizli ürünleri gör/yönet Permission38=Ürün dışaaktar -Permission41=Proje ve görevleri oku (paylaşılan projeleri ve benim ilgilisi olduğum projeleri). Aynı zamanda verilen görevlerde harcanan süreleri de ekleyebilir (zaman çizelgeleri). +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Proje sil (paylaşılan projeler ve ilgilisi olduğum projeler) Permission45=Projeleri dışaaktar @@ -844,12 +868,14 @@ DictionaryOrderMethods=Sipariş yöntemleri DictionarySource=Teklifin/siparişin kökeni DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Hesap planı modelleri +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Eposta şablonları DictionaryUnits=Birimler DictionaryProspectStatus=Aday durumu DictionaryHolidayTypes=izin türleri DictionaryOpportunityStatus=Proje/aday için fırsat durumu SetupSaved=Kurulum kaydedildi +SetupNotSaved=Setup not saved BackToModuleList=Modül listesine geri git BackToDictionaryList=Sözlük listesine dön VATManagement=KDV Yönetimi @@ -921,7 +947,7 @@ Host=Sunucu DriverType=Sürücü türü SummarySystem=Sistem bilgileri özeti SummaryConst=Tüm Dolibarr kurulum parametreleri listesi -MenuCompanySetup=Firma/Dernek +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standart menü yöneticisi DefaultMenuSmartphoneManager=Akıllı telefon (Smartphone) menü yöneticisi Skin=Dış görünüm teması @@ -931,12 +957,14 @@ DefaultMaxSizeList=Liste için varsayılan ençok uzunluk DefaultMaxSizeShortList=Kısa liste için ençok uzunluk (örn müşteri kartında) MessageOfDay=Günün mesajı MessageLogin=Oturum açma sayfası mesajı +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Sol menüdeki sabit arama formu DefaultLanguage=Kullanılan varsayılan dil (dil kodu) EnableMultilangInterface=Çoklu dil arayüzünü etkinleştir EnableShowLogo=Logoyu sol menüde göster -CompanyInfo=Firma/dernek bilgileri -CompanyIds=Firma/dernek kimlikleri +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Adı CompanyAddress=Adresi CompanyZip=Posta Kodu @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Gecikmiş üyelik ücreti uyarısı öncesi süre tole Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Çek ödemesi uyarısı öncesi süre tolerans (gün olarak) Delays_MAIN_DELAY_EXPENSEREPORTS=Gider raporlarının onaylanmasından önceki uyarı için bekleme süresi (gün) SetupDescription1=Ayarlar alanı, Dolibarr'ı kullanmaya başlamadan önceki ilk parametre ayarları içindir. -SetupDescription2=En önemli 2 ayarlama adımı sol ayarlar menüsündeki ilk 2 adımdır: Firma/dernek ayarları sayfası ve Modül kurulumu sayfası: -SetupDescription3=Ayarlar->Firma/dernek menüsündeki parametreler gereklidir, çünkü giriş bilgileri Dolibarr ekranlarında ve Dolibarr’ın davranışlarını özelleştirmek üzere kullanılır (örneğin ülkenizle ilgili özellikler). -SetupDescription4=Ayarlar->Modüller menüsündeki parametreler gereklidir, çünkü Dolibarr sabit bir ERP/CRM olmayıp bir çok modülden oluşur, daha çoğuna ya da daha azına bağımlıdır. Ancak istediğiniz modülleri etkinleştirdikten sonra özellikleri menülerde görebilirsiniz. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Diğer menü girişleri ile isteğe bağlı parametreleri yönetebilirsiniz. LogEvents=Güvenlik denetimi etkinlikleri Audit=Denetim @@ -987,7 +1015,7 @@ BrowserOS=Tarayıcı OS ListOfSecurityEvents=Dolibarr güvenlik etkinlikleri listesi SecurityEventsPurged=Güvenlik etkinlikleri temizlendi LogEventDesc=Burada Dolibarr güvenlik etkinlikleri için günlük etkinleştirebilirsiniz. Yöneticiler sonra Sistem araçları->Denetim menüsünden içeriği görebilir. Uyarı, bu özellik veritabanında büyük miktarda veri tüketebilir. -AreaForAdminOnly=Bu özellikler yalnız yönetici kullanıcılar tarafından kullanılabilir. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Sistem bilgileri sadece okuma modunda ve yöneticiler için görüntülenen çeşitli teknik bilgilerdir. SystemAreaForAdminOnly=Bu alan yalnız yönetici kullanıcılar için kullanılabilir. Hiçbir Dolibarr izini bu sınırı azaltamaz. CompanyFundationDesc=Bu sayfada yönetmek istediğiniz şirket veya dernekle ilgili bilinen bütün bilgileri düzenleyebilirsiniz. (Bunun için sayfanın en altındaki “Değiştir” ya da "Kaydet" düğmesine basın). @@ -1079,11 +1107,12 @@ CurrentTranslationString=Geçerli çeviri dizesi WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=Gösterilecek yeni çeviri dizesi OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Etkinleştirilmiş özel modül toplam sayısı: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Enaz 1 modül etkinleştirmelisiniz ClassNotFoundIntoPathWarning=Sınıf %s PHP youlnda bulunamadı YesInSummer=Yazın evet -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Oturum depolaması Suhosin tarafından şifrelendi ConditionIsCurrently=Koşul şu anda %s durumunda YouUseBestDriver=Kullandığınız sürücü %s şu anda en iyi sürücüdür. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Uzman Kimliği kuralları MustBeUnique=Eşsiz olmalıdır? MustBeMandatory=Üçüncü tarafları oluşturmak zorunludur? MustBeInvoiceMandatory=Faturaları doğrulamak zorunludur ? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=%s biçimine göndermek için gerekli bağlantıyı aşağıdaki bağlantıdan bulabilirsiniz:%s ##### Invoices ##### BillsSetup=Faturalar modülünün kurulumu BillsNumberingModule=Fatura ve iade faturaları numaralandırma modülü BillsPDFModules=Fatura belgesi modelleri +PaymentsPDFModules=Payment documents models CreditNote=İade faturası CreditNotes=İade faturaları ForceInvoiceDate=Fatura tarihini fatura doğrulama tarihine zorla @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=%s türündeki dosyalar HTTP sunucusu tarafından önbelle FilesOfTypeCompressed=%s türündeki dosyalar HTTP sunucusu tarafından sıkıştırılır FilesOfTypeNotCompressed=%s türündeki dosyalar HTTP sunucusu tarafından sıkıştırılmaz CacheByServer=Sunucu önbelleği +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Tarayıcı önbelleği CompressionOfResources=HTTP yanıtlarının sıkıştırılması +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Böyle bir otomatik algılama mevcut tarayıcılar için olası değildir +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Ürünler modülü kurulumu ServiceSetup=Hizmetler modülü kurulumu @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Kullanılan fatura tarihi Buy=Satınal Sell=Sat InvoiceDateUsed=Kullanılan fatura tarihi -YourCompanyDoesNotUseVAT=Firmanız (Giriş - Ayarlar - Firma/Dernek) KDV kullanmıyor olarak yapılandırılmış, bu nedenle ayarlama için herhangi bir KDV seçeneği belirlenmemiştir. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Muhasebe Kodu AccountancyCodeSell=Satış hesap. kodu AccountancyCodeBuy=Alış hesap. kodu @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Gündem görünümü arama süzgeçinde, etkinlikle AGENDA_DEFAULT_VIEW=Gündem menüsünü seçtiğinizde varsayılan olarak hangi sekmenin açılmasını istiyorsunuz AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=TıklaAra modülü kurulumu -ClickToDialUrlDesc=Telefon resmi üzerine tıklandığında Url aranır. URL’de aranan kişinin telefon numarası ile değişecek
__PHONETO__ etiketini kullanabilirsiniz +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=Bu modül telefon numaralarının tıklanabilmesini sağlar. Bu simgeye tıklanma telefonunuz ile bu telefonun aranmasını sağlar. Bu işlem Dolibarr'dan bir çağrı merkezini aramak için kullanılır, örneğin SIP sisteminde bir telefon numarasının aranması. ClickToDialUseTelLink=Telefon numaraları üzerinde yalnızca bir "tel:" linki kullan ClickToDialUseTelLinkDesc=Eğer kullanıcılarınız bir softphone ya da web tarayıcıdan farklı olarak aynı bilgisayarda kurulu bir arayüz kullanıyorsa ve web tarayıcınızda "tel:" ile başlayan bir köprü tıklandığında aranıyorsa bu yöntemi kullanın. Tam bir sunucu çözümüne gereksiniminiz varsa (yerel yazılım kurulumu gereksinimi olmadan) bunu "HAYIR" olarak ayarlayın ve sonraki alanı doldurun. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP istemcileri isteklerini URL de varolan Dolibarr uç noktasına g ApiSetup=API modül ayarları ApiDesc=Bu modül etkinleştirilerek Dolibarr çeşitli web hizmetlerini sağlayan bir REST sunucusu haline getirilir. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=API leri url de keşfedebilirsiniz +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Yalnızca etkin modüllerdeki öğeler gösterilir ApiKey=API için anahtar WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Genel görüntüleme sırası BankOrderES=İspanyolca BankOrderESDesc=İspanyolca görüntüleme sırası ChequeReceiptsNumberingModule=Çek Makbuzu Numaralandırma modülü - ##### Multicompany ##### MultiCompanySetup=Çoklu şirket modülü kurulumu ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Veritabanı yedekleme döküm dosyası oluşturma sihirbazı SomethingMakeInstallFromWebNotPossible=Web arayüzünden dış modül kurulumu aşağıdaki nedenden ötürü olanaksızdır: SomethingMakeInstallFromWebNotPossible2=Bu nedenle, burada anlatılan yükseltme işlemi yalnızca ayrıcalıklı bir kullanıcın elle atacağı adımlardır. InstallModuleFromWebHasBeenDisabledByFile=Dış modülün uygulama içerisinden kurulumu yöneticiniz tarafından engellenmiştir. Bu özelliğe izin verilmesi için ondan %s dosyasını kaldırmasını istemelisiniz. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Tablo satırlarını fare üzerine geldiğinde vurgula HighlightLinesColor=Fare üzerinden geçerken satır rengini vurgula (vurgulanmaması için boş bırakın) TextTitleColor=Sayfa başlık rengi LinkColor=Bağlantıların rengi -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Yalnızca çekirdek temaları ile çalışır ancak dış temalar tarafından desteklenmez BackgroundColor=Arka plan rengi TopMenuBackgroundColor=Üst menü için arka plan rengi @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Enaz bildirim süresi (İzin isteğiniz bu süreden önce ya NbAddedAutomatically=Her ay (otomatik olarak) bu kullanıcının sayacına eklenen gün sayısı EnterAnyCode=Bu alan satırın tanınması için bir referans içerir. Özel karakterler hariç seçeceğiniz herhangi bir değeri girebilirsiniz. UnicodeCurrency=Burada ayraçlar arasına para birimi simgesini belirten bayt sayısını girin. Örneğin: $ için [36] - Brezilya Real'i için [82,36] - € için [8364] girin +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Satırın kombo listesindeki konumu SellTaxRate=Satış vergisi oranı RecuperableOnly=Bazı Fransa eyaletlerinde geçerli olan "Non Perçue Récupérable" KDV için Evet, bütün diğer durumlar için "Hayır" girin. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=Çok firmalı modülü kullanıyorsanız, eğer ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=Kullanıcının tanımlanmış izni yok TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 38639e13bcc..1b11fd564c0 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Burada gösterilen tutarlar Firma ayarlar Param=Ayarlar RemainingAmountPayment=Kalan ödeme tutarı: Account=Hesap -Accountparent=Ana hesap -Accountsparent=Ana hesaplar +Accountparent=Parent account +Accountsparent=Parent accounts Income=Gelir Outcome=Gider ReportInOut=Gelir/Gider @@ -56,6 +56,7 @@ MenuTaxAndDividends=Vergiler ve kar payları MenuSocialContributions=Sosyal/mali vergiler MenuNewSocialContribution=Yeni sosyal/mali NewSocialContribution=Yeni sosyal/mali vergi +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Ödenecek sosyal/mali vergiler AccountancyTreasuryArea=Muhasebe/Maliye alanı NewPayment=Yeni ödeme @@ -134,8 +135,8 @@ RulesResultDue=- Ödenmemiş faturaları, giderleri ve KDV ni, ödenmiş ya da RulesResultInOut=- Faturalarda, giderlerde, KDV inde ve maaşlarda yapılan gerçek ödemeleri içerir.
- Faturaların, giderleri, KDV nin ve maaşların ödeme tarihleri baz alınır. Bağışlar için bağış tarihi. RulesCADue=- ödenmiş ya da ödenmemiş olsun müşterilere ait faturaları içerir.
- Bu faturaların doğrulama tarihi baz alınır.
RulesCAIn=- Müşterilerden alınan tüm geçerli fatura ödemelerini içerir.
- Bu faturaların ödenme tarihleri baz alınır
-DepositsAreNotIncluded=- Teminat faturalarını içermez -DepositsAreIncluded=- Teminat faturalarını içerir +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Üçüncü parti IRPF Raporu LT1ReportByCustomersInInputOutputModeES=RE Üçüncü partiye göre rapor VATReport=KDV raporu @@ -169,7 +170,7 @@ DescSellsJournal=Satış Günlüğü DescPurchasesJournal=Alış Günlüğü InvoiceRef=Fatura ref. CodeNotDef=Tanımlanmamış -WarningDepositsNotIncluded=Teminat faturaları bu muhasebe modülü ile bu sürümde içerilmez. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Ödeme koşulu tarihi nesnenin tarihinden düşük olamaz. Pcg_version=Chart of accounts models Pcg_type=Pcg türü @@ -189,8 +190,10 @@ AccountancyJournal=Muhasebe kodu günlüğü ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Sosyal/mali vergi kopyala ConfirmCloneTax=Sosyal/mali vergi ödemesi kopyalamasını onayla CloneTaxForNextMonth=Sonraki aya kopyala @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Sosyal/mali vergiler ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Hata: Banka hesabı bulunamadı FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/tr_TR/cron.lang b/htdocs/langs/tr_TR/cron.lang index 43d9ce91177..ca6d8f33249 100644 --- a/htdocs/langs/tr_TR/cron.lang +++ b/htdocs/langs/tr_TR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Planlı işleri sil CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Planlı işleri yükle CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Planlı iş modülü planlanmış işlerin yürütülmesini sağlar +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=İş CronNone=Hiçbiri CronDtStart=Bundan önce değil @@ -57,12 +57,12 @@ CronStatusActiveBtn=Etkin CronStatusInactiveBtn=Engelle CronTaskInactive=Bu iş devre dışı CronId=Kimlik -CronClassFile=Sınıflar (dosyaadı.sınıf.php) -CronModuleHelp=Dolibarr modül dizini adı (aynı zamanda dış Dolibarr modülü ile de çalışır).
Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/product.class.php, modül değeri product -CronClassFileHelp=Yüklenecek dosya adı.
Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/product.class.php, sınıf dosya adı değeri product.class.php -CronObjectHelp=Yüklenecek nesne adı.
Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/product.class.php, sınıf dosya adı değeri Product -CronMethodHelp=Çalıştırılacak nesne yöntemi.
Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/product.class.php, yöntem değeri fecth -CronArgsHelp=Yöntem parametreleri.
Örneğin; Dolibarr Ürün nesnesi alım yöntemi /htdocs/product/class/product.class.php, parametre değerleri 0, ProductRef olabilir +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Yürütülecek sistem komut satırı. CronCreateJob=Yeni Planlı İş oluştur CronFrom=Gönderen @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Planlı işleri görmek ve düzenlemek için "Gi JobDisabled=İş engellendi MakeLocalDatabaseDumpShort=Yerel veritabanı yedeklemesi MakeLocalDatabaseDump=Yerel bir veritabanı dökümü oluştur -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/tr_TR/errors.lang b/htdocs/langs/tr_TR/errors.lang index 287807daf9b..ba98a1ea218 100644 --- a/htdocs/langs/tr_TR/errors.lang +++ b/htdocs/langs/tr_TR/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile='%s' dosyası oluşturulamadı ErrorFailToRenameDir='%s' dizinin adı '%s' olarak değiştirilemedi. ErrorFailToCreateDir='%s' dizini oluşturulamadı ErrorFailToDeleteDir='%s' dizini silinemedi +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Bu kişi zaten bu tür için kişi olarak tanımlıdır. ErrorCashAccountAcceptsOnlyCashMoney=Bu banka hesabı kasa hesabı lduğundan yalnızca nakit ödemeleri kabul eder. ErrorFromToAccountsMustDiffers=Kaynak ve hedef banka hesapları farklı olmalıdır. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=%s dizinine yazılamadı ErrorFoundBadEmailInFile=Dosyada %s satır hatalı e-posta sözdizimi bulundu (örneğin eposta=%s teki satır %s) ErrorUserCannotBeDelete=Kullanıcı silinemez. Belki Dolibarr öğeleri ile ilişkili olabilir. ErrorFieldsRequired=Bazı gerekli alanlar doldurulmamış. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Dizin oluşturulamadı. Web sunucusu kullanıcısının Dolibarr belgeleri dizinine yazma izinlerini denetleyin. Eğer bu parametre guvenli_mod bu PHP üzerinde etkinleştirilmişse, Dolibarr php dosyalarının web sunucusu kullanıcısına (ya da grubuna) sahip olduğunu denetleyin. ErrorNoMailDefinedForThisUser=Bu kullanıcı için tanımlı posta yok ErrorFeatureNeedJavascript=Bu özelliğin çalışması için JavaScriptin etkinleştirilmesi gerekir. Bunu Kurulum - Ekran menüsünden değiştirebilirsiniz. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Müşteri faturasındaki kalem miktarı ErrorWebServerUserHasNotPermission=Web sunucusunu çalıştırmak için kullanılan %s kullanıcı hesabnın bunun için izni yok ErrorNoActivatedBarcode=Etkinleştirilmiş barkod türü yok ErrUnzipFails=% ZipArchive ile sıkıştırılamıyor -ErrNoZipEngine=Bu PHP deki %s dosyası ayıklamak için motor yok +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Bu %s dosyası bir Dolibarr zip paketi olmalıdır ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL kurulu değil, Bu PayPal ile iletişim kurmak için gereklidir @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=Seçilmiş genel değişken yok ErrorFieldMustBeANumeric=%s alanı sayısal bir değer olmalıdır ErrorMandatoryParametersNotProvided=Zorunlu parametre(ler) girilmemiş ErrorOppStatusRequiredIfAmount=Bu fırsat/aday için tahmini bir tutar ayarladınız. Durumunu da girmelisiniz +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Modül Tanımlayıcıda hatalı Menu Dizisi tanımı (fk_menu anahtarı için hatalı değer) ErrorSavingChanges=Değişiklikler kaydedilirken bir hata oluştu ErrorWarehouseRequiredIntoShipmentLine=Depo gemi hattı üzerinde gerekli @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=Modül dosyası bulunamadı. -ErrorFieldAccountNotDefinedForBankLine=Kaynak bankanın %s satırı için Muhasebe hesabı değeri tanımlanmamış +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=Bu üye için bir parola ayarlıdır. Ancak, hiçbir kullanıcı hesabı oluşturulmamıştır. Yani bu şifre saklanır ama Dolibarr'a giriş için kullanılamaz. Dış bir modül/arayüz tarafından kullanılıyor olabilir, ama bir üye için ne bir kullanıcı adı ne de parola tanımlamanız gerekmiyorsa "Her üye için bir kullanıcı adı yönet" seçeneğini devre dışı bırakabilirsiniz. Bir kullanıcı adı yönetmeniz gerekiyorsa ama herhangi bir parolaya gereksinim duymuyorsanız bu uyarıyı engellemek için bu alanı boş bırakabilirsiniz. Not: Eğer bir üye bir kullanıcıya bağlıysa kullanıcı adı olarak eposta adresi de kullanılabilir. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Ödeme tarihi (%s) fatura tarihinden (%s) WarningTooManyDataPleaseUseMoreFilters=Çok fazla veri (%s değerinden fazla satır). Daha çok süzgeç kullanın ya da %s değişmezini daha yüksek bir sınıra getirin. WarningSomeLinesWithNullHourlyRate=Saatlik ücretleri tanımlanmadığında bazen bazı kullanıcılar tarafından kayıt edilir. Saat başına 0 %s değeri kullanılmıştır ancak harcanan sürenin yanlış değerlendirilmesine neden olabilir. WarningYourLoginWasModifiedPleaseLogin=Kullanıcı adınız değiştirilmiştir. Güvenlik nedeniyle sonraki eyleminiz için yeni kullanıcı adınızla giriş yapmalısınız. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 7c8aaeea585..5648b017065 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=%s Parametresi tanımlı değil ErrorUnknown=Bilinmeyen hata ErrorSQL=SQL Hatası ErrorLogoFileNotFound='%s' Logo dosyası bulunamadı -ErrorGoToGlobalSetup='Firma/Dernek' ayarlarına giderek düzeltiniz. +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Bunu düzeltmek için Modül Kurulumuna git ErrorFailedToSendMail=Posta gönderilemedi (gönderen) ErrorFileNotUploaded=Dosya gönderilemedi. Boyutun izin verilen ençok dosya boyutunu aşmadığını denetleyin, bu dizinde yeterli boş alan olmalı ve aynı isimde başka bir dosya olmamalı. @@ -153,6 +153,7 @@ Edit=Düzenle Validate=Doğrula ValidateAndApprove=Doğrula ve onayla ToValidate=Doğrulanacak +NotValidated=Not validated Save=Kaydet SaveAs=Farklı kaydet TestConnection=Deneme bağlantısı @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Kimlik denetimi modu %s için uygulanabilir b Connection=Bağlan Setup=Ayarlar Alert=Uyarı +MenuWarnings=Uyarılar Previous=Önceki Next=Sonraki Cards=Kartlar @@ -308,6 +310,7 @@ Copy=Kopyala Paste=Yapıştır Default=Varsayılan DefaultValue=Varsayılan değer +DefaultValues=Default values Price=Fiyat UnitPrice=Birim fiyat UnitPriceHT=Birim fiyat (net) @@ -363,7 +366,8 @@ VATRate=KDV Oranı Average=Ortalama Sum=Toplam Delta=Değişim oranı -Module=Modül +Module=Module/Application +Modules=Modules/Applications Option=Seçenek List=Liste FullList=Tüm liste @@ -387,7 +391,7 @@ ActionRunningNotStarted=Başlayacak ActionRunningShort=In progress ActionDoneShort=Bitti ActionUncomplete=Tamamlanmamış -CompanyFoundation=Firma/Dernek +CompanyFoundation=Company/Organisation ContactsForCompany=Bu üçüncü partinin kişileri ContactsAddressesForCompany=Bu üçüncü partinin kişleri/adresleri AddressesForCompany=Bu üçüncü partinin adresleri @@ -405,8 +409,9 @@ Generate=Oluştur Duration=Süre TotalDuration=Toplam süre Summary=Özet -DolibarrStateBoard=İstatistikler -DolibarrWorkBoard=İş görevleri panosu +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Mevcut NotYetAvailable=Henüz mevcut değil NotAvailable=Uygun değil @@ -453,6 +458,7 @@ NextStep=Sonraki adım Datas=Veriler None=Hiçbiri NoneF=Hiçbiri +NoneOrSeveral=None or several Late=Son LateDesc=Bir kayıdın sizin ayarlarınıza dayanarak gecikmiş olduğu ya da olmadığını tanımlayabilmek için gerekli süre. Yöneticinizden Giriş - Ayarlar - Uyarılar menüsünden süreyi değiştirmesini isteyin. Photo=Resim @@ -606,7 +612,8 @@ PartialWoman=Kısmi TotalWoman=Toplam NeverReceived=Hiç alınmadı Canceled=Vazgeçildi -YouCanChangeValuesForThisListFromDictionarySetup=Bu listedeki değerleri ayarlar - sözlük menüsünden değiştirebilirsiniz +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=Modül ayarlarında yeni bir kayıt oluştururken kullanılacak varsayılan değeri belirleybilirsiniz Color=Renk Documents=Bağlı dosyalar @@ -642,6 +649,7 @@ FreeLineOfType=Türe göre serbest giriş CloneMainAttributes=Nesneyi ana öznitelikleri ile klonla PDFMerge=PDF Birleştir Merge=Birleştir +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Yazdırılıcak Sayfanın ana içerik alanını göster MenuManager=Menu yöneticisi WarningYouAreInMaintenanceMode=Uyarı, bakım modundasınız, şu anda uygulamayı kullanmak için yalnızca %s girişine izin veriliyor. @@ -708,6 +716,7 @@ from=itibaren toward=yönünde Access=Erişim SelectAction=Eylem seç +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Panoya kopyalamak için Crtl+C SaveUploadedFileWithMask=Dosyayı "%s" adlı sunucuya kaydedin (aksi durumda "%s") OriginFileName=Özgün dosya adı @@ -718,7 +727,7 @@ ViewPrivateNote=Notları izle XMoreLines=%s gizli satır PublicUrl=Genel URL AddBox=Kutu ekle -SelectElementAndClickRefresh=Bir öğe seçin ve Yenile'ye tıkla +SelectElementAndClick=Select an element and click %s PrintFile=%s Dosyasını Yazdır ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Logoyu değiştirmek için Giriş - Ayarlar - Firma menüsüne ya da gizlemek için Giriş - Ayarlar - Ekran menüsüne git. @@ -734,8 +743,8 @@ Hello=Merhaba Sincerely=Saygılar DeleteLine=Satır sil ConfirmDeleteLine=Bu satırı silmek istediğinizden emin misiniz? -NoPDFAvailableForDocGenAmongChecked=Kontrol edilen kayıtlar arasında belge oluşturmak için hiç PDF yok -TooManyRecordForMassAction=Toplu işlem için çok sayıda kayıt seçilmiş. Bu işlem %s kayıtlık bir liste ile sınırlıdır. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Toplu işlemler tarafından yapılan dosyalar için alan ShowTempMassFilesArea=Toplu işlemler tarafından yapılan dosyalar alanını göster @@ -755,11 +764,20 @@ Calendar=Takvim GroupBy=Gruplandır... ViewFlatList=Düz listeyi incele RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Mali yıl +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pazartesi Tuesday=Salı @@ -817,5 +835,3 @@ SearchIntoContracts=Sözleşmeler SearchIntoCustomerShipments=Müşteri sevkiyatları SearchIntoExpenseReports=Gider raporları SearchIntoLeaves=İzinler - -BulkActions=Bulk actions diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index 05f824dab00..87915753874 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Doğumgünü tarihi DateToBirth=Doğum Tarihi BirthdayAlertOn=doğum günü uyarısı etkin BirthdayAlertOff=doğumgünü uyarısı etkin değil +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Müdahaleye kişi eklendi Notify_FICHINTER_VALIDATE=Müdahale doğrulandı Notify_FICHINTER_SENTBYMAIL=Müdahale posta ile gönderildi @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Bu bir deneme postası (deneme sözcüğü koyu ol PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nFaturanız ektedir __REF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nFaturanızın __REF__ ödenmemiş olarak göründüğünü size anımsatmak isteriz. Bu yüzden bu faturanız anımsatmak amacıyla yeniden eklenmiştir.\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nTeklifiniz bilgilerinize sunulmuştur __PROPREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nFiyat isteğini burada görebilirsiniz __ASKREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nSiparişiniz buradadır __ORDERREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nSiparişimiz buradadır __ORDERREF__\n\n__PERSONALIZED__Saygılar\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nFaturanız ektedir __REF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nSevkiyatınız bilgilerinize sunulmuştur __SHIPPINGREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nMüdahale bilgilerinize sunulmuştur __FICHINTERREF__\n\n__PERSONALIZED__Saygılarımızla\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n__PERSONALIZED__\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=İşlemlerinize uyan demo profilini seçin... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Kimlik doğrulama modu %s.
Uzman no %s
üçüncü parti ülkesine bağlı bir bilgidir.
Örneğin, %s ülkesi için kodu%sdir. DolibarrDemo=Dolibarr ERP/CRM demosu -StatsByNumberOfUnits=Sayı olarak ürün/hizmet birimleri istatistikleri -StatsByNumberOfEntities=Sayı olarak ilgili varlıkların istatistikleri -NumberOfProposals=Son 12 aydaki teklif sayısı -NumberOfCustomerOrders=Son 12 aydaki müşteri siparişlerinin sayısı -NumberOfCustomerInvoices=Son 12 aydaki müşteri faturalarının sayısı -NumberOfSupplierProposals=Son 12 aydaki tedarikçi tekliflerinin sayısı -NumberOfSupplierOrders=Son 12 aydaki tedarikçi siparişlerinin sayısı -NumberOfSupplierInvoices=Son 12 aydaki tedarikçi faturalarının sayısı -NumberOfUnitsProposals=Son 12 aydaki birimlerin sayısı -NumberOfUnitsCustomerOrders=Son 12 aydaki müşteri siparişlerindeki birimlerin sayısı -NumberOfUnitsCustomerInvoices=Son 12 aydaki müşteri faturalarındaki birimlerin sayısı -NumberOfUnitsSupplierProposals=Son 12 aydaki tedarikçi tekliflerindeki birimlerin sayısı -NumberOfUnitsSupplierOrders=Son 12 aydaki tedarikçi siparişlerindeki birimlerin sayısı -NumberOfUnitsSupplierInvoices=Son 12 aydaki tedarikçi faturalarındaki birimlerin sayısı +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=Bir yeni müdahale olan %s size atandı EMailTextInterventionValidated=Müdahele %s doğrulanmıştır. EMailTextInvoiceValidated=Fatura %s doğrulanmıştır. diff --git a/htdocs/langs/tr_TR/projects.lang b/htdocs/langs/tr_TR/projects.lang index 3e029dde645..59f9e0a087a 100644 --- a/htdocs/langs/tr_TR/projects.lang +++ b/htdocs/langs/tr_TR/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projeler Alanı ProjectStatus=Proje durumu SharedProject=Herkes PrivateProject=Proje ilgilileri +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Tüm projeler MyProjectsDesc=Bu görünüm ilgilisi olduğunuz projelerle sınırlıdır (türü ne olursa olsun). ProjectsPublicDesc=Bu görünüm okuma izininiz olan tüm projeleri içerir. TasksOnProjectsPublicDesc=Bu görünüm okuma izininiz olan tüm projeleri içerir. @@ -23,6 +26,7 @@ TasksDesc=Bu görünüm tüm projeleri ve görevleri içerir (size verilen kulla AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Yeni proje AddProject=Proje oluştur DeleteAProject=Bir proje sil @@ -31,12 +35,13 @@ ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? OpenedProjects=Açık projeler OpenedTasks=Açık görevler -OpportunitiesStatusForOpenedProjects=Durumuna göre açık projelerin fırsat tutarı +OpportunitiesStatusForOpenedProjects=Projelerin durumuna göre fırsat tutarı OpportunitiesStatusForProjects=Projelerin durumuna göre fırsat tutarı ShowProject=Proje göster SetProject=Proje ayarla NoProject=Tanımlı ya da sahip olunan hiçbir proje yok NbOfProjects=Proje sayısı +NbOfTasks=Nb of tasks TimeSpent=Harcanan süre TimeSpentByYou=Tarafınızdan harcanan süre TimeSpentByUser=Kullanıcı tarafından harcanan süre @@ -49,7 +54,7 @@ TaskTimeNote=Not TaskTimeDate=Tarih TasksOnOpenedProject=Açık projelerdeki görevler WorkloadNotDefined=İşyükü tanımlanmamış -NewTimeSpent=Yeni harcanan süre +NewTimeSpent=Harcanan süre MyTimeSpent=Harcadığım sürelerim Tasks=Görevler Task=Görev @@ -59,6 +64,7 @@ TaskDescription=Görev açıklaması NewTask=Yeni görev AddTask=Görev oluştur AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Etkinlik Activities=Görevler/etkinlikler MyActivities=Görevlerim/etkinliklerim @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Proje ile ilgili sözleşmelerin listesi +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Proje ile ilgili müdahalelerin listesi ListExpenseReportsAssociatedProject=Bu proje ile ilişkili gider raporları listesi ListDonationsAssociatedProject=Bu proje ile ilişkilendirilmiş bağış listesi @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Proje ilgilileri ActionsOnProject=Proje etkinlikleri YouAreNotContactOfProject=Bu özel projenin bir ilgilisi değilsiniz +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Harcana süre sil ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Bana atanmamış görevleri de göster @@ -110,7 +118,7 @@ TaskRessourceLinks=Kaynaklar ProjectsDedicatedToThisThirdParty=Bu üçüncü parti atanmış projeler NoTasks=Bu proje için hiçbir görev yok LinkedToAnotherCompany=Diğer üçüncü partiye bağlantılı -TaskIsNotAffectedToYou=Sana atanmamış görevler +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Harcanan süre boş ThisWillAlsoRemoveTasks=Bu eylem aynı zamanda projenin tüm görevlerini (şu andaki %s görevleri) ve tüm harcanan süre girişlernii siler . IfNeedToUseOhterObjectKeepEmpty=Eğer bazı nesneler başka bir üçüncü partiye aitse (fatura, sipariş, ...), oluşturulması için bu projeye bağlanmalıdır, projenin birden çok üçüncü partiye bağlı olması için bunu boş bırakın. @@ -161,25 +169,30 @@ FirstAddRessourceToAllocateTime=Zaman tahsisi için göreve bir kullanıcı kayn InputPerDay=Günlük giriş InputPerWeek=Haftalık giriş InputPerAction=Eylem başına giriş -TimeAlreadyRecorded=Bu görev ve kullanıcı %s için harcanan süre zaten kayıtlı +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=İlgili olarak bu kullanıcı olan projeler TasksWithThisUserAsContact=Bu kullanıcıya atanmış görevler ResourceNotAssignedToProject=Projeye atanmamış ResourceNotAssignedToTheTask=Bu göreve atanmamış +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Görevi bana ata +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Ata ProjectOverview=Genel bakış ManageTasks=Görev ve süre izlemek için projeleri kullan ManageOpportunitiesStatus=Adayları/fırsatları izlemek için projeleri kullan ProjectNbProjectByMonth=Aylık oluşturulan proje sayısı +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Aylık fırsat tutarı ProjectWeightedOppAmountOfProjectsByMonth=Aylık fırsat ağırlıklı tutarı ProjectOpenedProjectByOppStatus=Fırsat durumuna göre açık proje/aday ProjectsStatistics=Projeler/adaylar için istatistikler +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Atanan görevler. Bu göreve süre girmek mümkün olmalı. IdTaskTime=Görev zamanı kimliği YouCanCompleteRef=Eğer referansı bazı bilgilerle tamamlamak isterseniz (arama süzgeçleri olarak kullanmak üzere), ayırmak için bir - karakteri eklemeniz önerilir, böylece otomatik numaralandırma sonraki projeler için de çalışacaktır. Örneğin; %s-ABC. Etikete arama anahtarları da eklemeyi yeğleyebilirsiniz. Ama en iyisi özel bir alan olarak da adlandırılan tamamlayıcı özellikler eklemek olabilir. -OpenedProjectsByThirdparties=Üçüncü partiye göre açık projeler +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Yalnızca fırsatlar OpenedOpportunitiesShort=Açık fırsatlar NotAnOpportunityShort=Bir fırsat değil diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index b3725c985c4..0e12f44d409 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=Всі -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Оповіщення @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Кредитове авізо CreditNotes=Кредитове авізо ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Іспанська BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/uk_UA/compta.lang b/htdocs/langs/uk_UA/compta.lang index 9ce9af8bff6..71427bfd4e7 100644 --- a/htdocs/langs/uk_UA/compta.lang +++ b/htdocs/langs/uk_UA/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/uk_UA/cron.lang b/htdocs/langs/uk_UA/cron.lang index 5c3ecd0a53f..d59dd3c965c 100644 --- a/htdocs/langs/uk_UA/cron.lang +++ b/htdocs/langs/uk_UA/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=Продавець @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/uk_UA/errors.lang b/htdocs/langs/uk_UA/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/uk_UA/errors.lang +++ b/htdocs/langs/uk_UA/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index 6f0fce5cf10..daf29f55264 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Параметр %s не було визначено ErrorUnknown=Невідома помилка ErrorSQL=Помилка SQL ErrorLogoFileNotFound=Файл логотипу '%s' не знайдено -ErrorGoToGlobalSetup=Перейти до налаштувань 'Компанія/Організація', щоб це виправити +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Перейти до Модулю налаштувань, щоб це виправити ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=Файл не завантажений. Переконайтеся, що розмір не перевищує максимально допустимий, що достатньо вільного місця на диску і що не існує вже файл з таким же ім'ям в цій директорії. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=На підтвердженні +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Проект Drafts=Drafts Validated=Підтверджений -Opened=Opened +Opened=Open New=New Discount=Знижка Unknown=Невизначена @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Календар GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/uk_UA/other.lang +++ b/htdocs/langs/uk_UA/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/uk_UA/projects.lang b/htdocs/langs/uk_UA/projects.lang index 8227ed550d9..86c9a21346f 100644 --- a/htdocs/langs/uk_UA/projects.lang +++ b/htdocs/langs/uk_UA/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index 4c2336b97b0..31b54e83c5b 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Code +Nature=Nature +AccountingJournalType1=Various operation +AccountingJournalType2=Sales +AccountingJournalType3=Purchases +AccountingJournalType4=Bank +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index 9602601e241..6851d698625 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Internal users ExternalUsers=External users GUISetup=Display SetupArea=Setup area +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Form to test file upload (according to setup) IfModuleEnabled=Note: yes is effective only if module %s is enabled RemoveLock=Remove file %s if it exists to allow usage of the update tool. @@ -85,7 +86,7 @@ Mask=Mask NextValue=Next value NextValueForInvoices=Next value (invoices) NextValueForCreditNotes=Next value (credit notes) -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=Note: your PHP limits each file upload's size to %s %s, whatever this parameter's value is NoMaxSizeByPHPLimit=Note: No limit is set in your PHP configuration @@ -103,7 +104,7 @@ MenuIdParent=Parent menu ID DetailMenuIdParent=ID of parent menu (empty for a top menu) DetailPosition=Sort number to define menu position AllMenus=All -NotConfigured=Module not configured +NotConfigured=Module/Application not configured Active=Active SetupShort=Setup OtherOptions=Other options @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Thousand separator Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=Modules LanguageBrowserParameter=Parameter %s LocalisationDolibarrParameters=Localisation parameters ClientTZ=Client Time Zone (user) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Current session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permissions BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Only elements from enabled modules are shown. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Database password encrypted in conf.php (Activat InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Feature DolibarrLicense=License Developpers=Developers/contributors @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr online demo OfficialMarketPlace=Official market place for external modules/addons OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Feature not available on Unix like systems. Test your SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Module setup -ModulesSetup=Modules setup +ModulesSetup=Modules/Application setup ModuleFamilyBase=System ModuleFamilyCrm=Customer Relation Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr current version CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Price ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Password -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Field +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Users & groups Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Invoice and credit note management for customers. Invoice managemen Module40Name=Suppliers Module40Desc=Supplier management and buying (orders and invoices) Module42Name=Logs -Module42Desc=Logging facilities (file, syslog, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Editors Module49Desc=Editor management Module50Name=Products @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integration Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=Notifications @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Multi-company Module5000Desc=Allows you to manage multiple companies Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=Create/modify products Permission34=Delete products Permission36=See/manage hidden products Permission38=Export products -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Delete projects (shared project and projects i'm contact for) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Ordering methods DictionarySource=Origin of proposals/orders DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=Units DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Setup saved +SetupNotSaved=Setup not saved BackToModuleList=Back to modules list BackToDictionaryList=Back to dictionaries list VATManagement=VAT Management @@ -921,7 +947,7 @@ Host=Server DriverType=Driver type SummarySystem=System information summary SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Foundation +MenuCompanySetup=Company/Organisation DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Skin theme @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Message of the day MessageLogin=Login page message +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Permanent search form on left menu DefaultLanguage=Default language to use (language code) EnableMultilangInterface=Enable multilingual interface EnableShowLogo=Show logo on left menu -CompanyInfo=Company/foundation information -CompanyIds=Company/foundation identities +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Name CompanyAddress=Address CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Other menu entries manage optional parameters. LogEvents=Security audit events Audit=Audit @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=List of Dolibarr security events SecurityEventsPurged=Security events purged LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Those features can be used by administrator users only. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=System information is miscellaneous technical information you get in read only mode and visible for administrators only. SystemAreaForAdminOnly=This area is available for administrator users only. None of the Dolibarr permissions can reduce this limit. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=An export link to %s format is available at following link: %s ##### Invoices ##### BillsSetup=Invoices module setup BillsNumberingModule=Invoices and credit notes numbering model BillsPDFModules=Invoice documents models +PaymentsPDFModules=Payment documents models CreditNote=Credit note CreditNotes=Credit notes ForceInvoiceDate=Force invoice date to validation date @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Products module setup ServiceSetup=Services module setup @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Invoice date used Buy=Buy Sell=Sell InvoiceDateUsed=Invoice date used -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Foundation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Accountancy Code AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=General display order BankOrderES=Spanish BankOrderESDesc=Spanish display order ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Multi-company module setup ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/uz_UZ/compta.lang b/htdocs/langs/uz_UZ/compta.lang index 5e9814369ec..94a3bd671ef 100644 --- a/htdocs/langs/uz_UZ/compta.lang +++ b/htdocs/langs/uz_UZ/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=Setup RemainingAmountPayment=Amount payment remaining : Account=Account -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=Income Outcome=Expense ReportInOut=Income / Expense @@ -56,6 +56,7 @@ MenuTaxAndDividends=Taxes and dividends MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Accountancy/Treasury area NewPayment=New payment @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- It includes all the effective payments of invoices received from clients.
- It is based on the payment date of these invoices
-DepositsAreNotIncluded=- Deposit invoices are nor included -DepositsAreIncluded=- Deposit invoices are included +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Report by third party IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Sales Journal DescPurchasesJournal=Purchases Journal InvoiceRef=Invoice ref. CodeNotDef=Not defined -WarningDepositsNotIncluded=Deposits invoices are not included in this version with this accountancy module. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/uz_UZ/cron.lang b/htdocs/langs/uz_UZ/cron.lang index b1e8bcb36d2..245fefe7af1 100644 --- a/htdocs/langs/uz_UZ/cron.lang +++ b/htdocs/langs/uz_UZ/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=None CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=Disable CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/uz_UZ/errors.lang b/htdocs/langs/uz_UZ/errors.lang index 9e2eb6817ef..feada2d1b5a 100644 --- a/htdocs/langs/uz_UZ/errors.lang +++ b/htdocs/langs/uz_UZ/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Failed to create file '%s'. ErrorFailToRenameDir=Failed to rename directory '%s' into '%s'. ErrorFailToCreateDir=Failed to create directory '%s'. ErrorFailToDeleteDir=Failed to delete directory '%s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=This contact is already defined as contact for this type. ErrorCashAccountAcceptsOnlyCashMoney=This bank account is a cash account, so it accepts payments of type cash only. ErrorFromToAccountsMustDiffers=Source and targets bank accounts must be different. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Failed to write in directory %s ErrorFoundBadEmailInFile=Found incorrect email syntax for %s lines in file (example line %s with email=%s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Some required fields were not filled. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Failed to create a directory. Check that Web server user has permissions to write into Dolibarr documents directory. If parameter safe_mode is enabled on this PHP, check that Dolibarr php files owns to web server user (or group). ErrorNoMailDefinedForThisUser=No mail defined for this user ErrorFeatureNeedJavascript=This feature need javascript to be activated to work. Change this in setup - display. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=User account %s used to execute web server has no permission for that ErrorNoActivatedBarcode=No barcode type activated ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index b93c4e1e8dc..788a10d92f0 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Parameter %s not defined ErrorUnknown=Unknown error ErrorSQL=SQL Error ErrorLogoFileNotFound=Logo file '%s' was not found -ErrorGoToGlobalSetup=Go to 'Company/Foundation' setup to fix this +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Go to Module setup to fix this ErrorFailedToSendMail=Failed to send mail (sender=%s, receiver=%s) ErrorFileNotUploaded=File was not uploaded. Check that size does not exceed maximum allowed, that free space is available on disk and that there is not already a file with same name in this directory. @@ -153,6 +153,7 @@ Edit=Edit Validate=Validate ValidateAndApprove=Validate and Approve ToValidate=To validate +NotValidated=Not validated Save=Save SaveAs=Save As TestConnection=Test connection @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=Connection Setup=Setup Alert=Alert +MenuWarnings=Alerts Previous=Previous Next=Next Cards=Cards @@ -308,6 +310,7 @@ Copy=Copy Paste=Paste Default=Default DefaultValue=Default value +DefaultValues=Default values Price=Price UnitPrice=Unit price UnitPriceHT=Unit price (net) @@ -363,7 +366,8 @@ VATRate=Tax Rate Average=Average Sum=Sum Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Option List=List FullList=Full list @@ -387,7 +391,7 @@ ActionRunningNotStarted=To start ActionRunningShort=In progress ActionDoneShort=Finished ActionUncomplete=Uncomplete -CompanyFoundation=Company/Foundation +CompanyFoundation=Company/Organisation ContactsForCompany=Contacts for this third party ContactsAddressesForCompany=Contacts/addresses for this third party AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=Generate Duration=Duration TotalDuration=Total duration Summary=Summary -DolibarrStateBoard=Statistics -DolibarrWorkBoard=Work tasks board +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Available NotYetAvailable=Not yet available NotAvailable=Not available @@ -434,7 +439,7 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Opened +Opened=Open New=New Discount=Discount Unknown=Unknown @@ -453,6 +458,7 @@ NextStep=Next step Datas=Data None=None NoneF=None +NoneOrSeveral=None or several Late=Late LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Picture @@ -606,7 +612,8 @@ PartialWoman=Partial TotalWoman=Total NeverReceived=Never received Canceled=Canceled -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Color Documents=Linked files @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=Clone object with its main attributes PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Show page to print main content area MenuManager=Menu manager WarningYouAreInMaintenanceMode=Warning, you are in a maintenance mode, so only login %s is allowed to use application at the moment. @@ -708,6 +716,7 @@ from=from toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Use Ctrl+C to copy to clipboard SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=Original filename @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=Public URL AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=Print File %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=Sincerely DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Calendar GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Monday Tuesday=Tuesday @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Leaves - -BulkActions=Bulk actions diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang index ab937ff3bab..b151614ce3c 100644 --- a/htdocs/langs/uz_UZ/other.lang +++ b/htdocs/langs/uz_UZ/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Date of birth BirthdayAlertOn=birthday alert active BirthdayAlertOff=birthday alert inactive +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Intervention validated Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Prof Id %s is an information depending on third party country.
For example, for country %s, it's code %s. DolibarrDemo=Dolibarr ERP/CRM demo -StatsByNumberOfUnits=Statistics in number of products/services units -StatsByNumberOfEntities=Statistics in number of referring entities -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=The intervention %s has been validated. EMailTextInvoiceValidated=The invoice %s has been validated. diff --git a/htdocs/langs/uz_UZ/projects.lang b/htdocs/langs/uz_UZ/projects.lang index f9c603ce113..f40af2b963b 100644 --- a/htdocs/langs/uz_UZ/projects.lang +++ b/htdocs/langs/uz_UZ/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=Everybody PrivateProject=Project contacts +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=All projects MyProjectsDesc=This view is limited to projects you are a contact for (whatever is the type). ProjectsPublicDesc=This view presents all projects you are allowed to read. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=This view presents all projects and tasks (your user permissions grant AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=New project AddProject=Create project DeleteAProject=Delete a project DeleteATask=Delete a task ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Show project SetProject=Set project NoProject=No project defined or owned NbOfProjects=Nb of projects +NbOfTasks=Nb of tasks TimeSpent=Time spent TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=User TaskTimeNote=Note TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=New time spent +NewTimeSpent=Time spent MyTimeSpent=My time spent Tasks=Tasks Task=Task @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=New task AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Activity Activities=Tasks/activities MyActivities=My tasks/activities @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=List of contracts associated with the project +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=List of interventions associated with the project ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Project contacts ActionsOnProject=Events on project YouAreNotContactOfProject=You are not a contact of this private project +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Delete time spent ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=Resources ProjectsDedicatedToThisThirdParty=Projects dedicated to this third party NoTasks=No tasks for this project LinkedToAnotherCompany=Linked to other third party -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Time spent is empty ThisWillAlsoRemoveTasks=This action will also delete all tasks of project (%s tasks at the moment) and all inputs of time spent. IfNeedToUseOhterObjectKeepEmpty=If some objects (invoice, order, ...), belonging to another third party, must be linked to the project to create, keep this empty to have the project being multi third parties. @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index 998a2808d5f..d0a0c29f2ed 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Thêm một tài khoản kế toán AccountAccounting=Tài khoản kế toán AccountAccountingShort=Tài khoản +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=Sổ cái tổng hợp +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Bán tạp chí @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Tạp chí NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Thẻ ghi nợ và tín dụng không thể có một giá trị cùng một lúc - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=Danh sách các tài khoản kế toán Pcgtype=Lớp tài khoản -Pcgsubtype=Trong lớp học của các tài khoản +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Lợi nhuận tổng doanh thu @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Lỗi, bạn không thể xóa tài khoản kế toán này bởi vì nó được sử dụng MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=Mã +Nature=Tự nhiên +AccountingJournalType1=Various operation +AccountingJournalType2=Bán +AccountingJournalType3=Mua +AccountingJournalType4=Ngân hàng +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Xuất khẩu @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index a9b49d488ba..b07d3372ad3 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -48,6 +48,7 @@ InternalUsers=Người dùng bên trong ExternalUsers=Người dùng bên ngoài GUISetup=Hiển thị SetupArea=Khu vực thiết lập +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=Mẫu để thử nghiệm việc tải lên tập tin (dựa theo thiết lập) IfModuleEnabled=Ghi chú: Yes chỉ có tác dụng nếu module %s được mở RemoveLock=Loại bỏ tập tin %s nếu tập tin này cho phép sử dụng công cụ cập nhật. @@ -85,7 +86,7 @@ Mask=Mặt nạ NextValue=Giá trị tiếp theo NextValueForInvoices=Giá trị tiếp theo (hóa đơn) NextValueForCreditNotes=Giá trị tiếp theo (giấy báo có) -NextValueForDeposit=Giá trị tiếp theo (tiền ứng trước) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Giá trị tiếp theo (thay thế) MustBeLowerThanPHPLimit=Ghi chú: PHP của bạn giới hạn kích thước của tập tin tải lên là %s%s, cho dù giá trị thông số phần này là NoMaxSizeByPHPLimit=Ghi chú: Không có giới hạn được chỉnh sửa trong phần chỉnh sửa PHP @@ -103,7 +104,7 @@ MenuIdParent=ID menu chính DetailMenuIdParent=ID menu chính (rỗng nếu là menu gốc) DetailPosition=Sắp xếp chữ số để xác định vị trí menu AllMenus=Tất cả -NotConfigured=Module chưa được cấu hình +NotConfigured=Module/Application not configured Active=Kích hoạt SetupShort=Cài đặt OtherOptions=Tùy chọn khác @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=Phân cách phần ngàn Destination=Đích đến IdModule=ID module IdPermissions=ID phân quyền -Modules=Module LanguageBrowserParameter=Thông số %s LocalisationDolibarrParameters=Thông số địa phương hóa ClientTZ=Time Zone khách hàng (người sử dụng) @@ -123,7 +123,8 @@ PHPTZ=PHP server Time Zone DaylingSavingTime=Daylight saving time CurrentHour=PHP Time (server) CurrentSessionTimeOut=Thời hạn phiên làm việc hiện tại -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Phân quyền BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Chỉ có các yếu tố từ module kích hoạt được hiển thị. -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Cơ sở dữ liệu mật khẩu được mã h InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Protection of generated pdf files (Activated NOT recommended, breaks mass pdf generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature make building of a global cumulated pdf not working (like unpaid invoices). +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=Đặc tính DolibarrLicense=Giấy phép Developpers=Người phát triển/cộng tác viên @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr demo trực tuyến OfficialMarketPlace=Thị trường chính thức cho các module/addon bên ngoài OfficialWebHostingService=Dịch vụ lưu trữ web được tham chiếu (Cloud hosting) ReferencedPreferredPartners=Đối tác ưu tiên -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=For user or developer documentation (Doc, FAQs...),
take a look at the Dolibarr Wiki:
%s ForAnswersSeeForum=For any other questions/help, you can use the Dolibarr forum:
%s HelpCenterDesc1=This area can help you to get a Help support service on Dolibarr. @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=Tính năng không có sẵn trên Unix như hệ th SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Cài đặt module -ModulesSetup=Cài đặt module +ModulesSetup=Modules/Application setup ModuleFamilyBase=Hệ thống ModuleFamilyCrm=Quản lý quan hệ khách hàng (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=Phiên bản hiện tại Dolibarr CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Cập nhật server offline +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=All other characters in the mask will remain intact.
Spaces are not allowed.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany done 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Example on third party created on 2007-03-01:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=Returns a customizable number according to a defined mask. ServerAvailableOnIPOrPort=Server is available at address %s on port %s ServerNotAvailableOnIPOrPort=Server is not available at address %s on port %s @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=Date and hour Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = Phone ExtrafieldPrice = Giá ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Lựa chọn danh sách ExtrafieldSelectList = Chọn từ bảng -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=Mật khẩu -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox từ bảng +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Liên kết với một đối tượng +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=Dòng +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Người dùng & nhóm Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=Quản lý hóa đơn và giấy báo có cho khách hàng. Quản Module40Name=Nhà cung cấp Module40Desc=Quản lý nhà cung cấp và mua hàng (đơn hàng và hoá đơn) Module42Name=Nhật trình -Module42Desc=Nhật trình thiết bị (file, nhật trình hệ thống, ...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=Biên tập Module49Desc=Quản lý biên tập Module50Name=Sản phẩm @@ -499,8 +521,8 @@ Module410Name=Lịch trên web Module410Desc=Tích hợp lịch trên web Module500Name=Chi phí đặc biệt Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Cho vay Module520Desc=Quản lý cho vay Module600Name=Thông báo @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP Maxmind conversions capabilities Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=Đa công ty Module5000Desc=Cho phép bạn quản lý đa công ty Module6000Name=Quy trình làm việc @@ -591,7 +615,7 @@ Permission32=Tạo/chỉnh sửa sản phẩm Permission34=Xóa sản phẩm Permission36=Xem/quản lý sản phẩm ẩn Permission38=Xuất dữ liệu sản phẩm -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=Xóa dự án (dự án chia sẻ và các dự án tôi liên lạc) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=Phương thức đặt hàng DictionarySource=Chứng từ gốc của đơn hàng đề xuất/đơn hàng DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Kiểu biểu đồ tài khoản +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Mẫu email DictionaryUnits=Đơn vị DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Cài đặt đã lưu +SetupNotSaved=Setup not saved BackToModuleList=Trở lại danh sách module BackToDictionaryList=Trở lại danh sách từ điển VATManagement=Quản lý thuế VAT @@ -921,7 +947,7 @@ Host=Máy chủ DriverType=Driver type SummarySystem=Tóm tắt thông tin hệ thống SummaryConst=Danh sách của tất cả các thông số cài đặt Dolibarr -MenuCompanySetup=Công ty/Tổ chức +MenuCompanySetup=Company/Organisation DefaultMenuManager= Quản lý menu chuẩn DefaultMenuSmartphoneManager=Quản lý menu smartphone Skin=Chủ đề giao diện @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Tin trong ngày MessageLogin=Tin trang đăng nhập +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=Forrm tìm kiếm cố định trên menu bên trái DefaultLanguage=Ngôn ngữ mặc định để sử dụng (mã ngôn ngữ) EnableMultilangInterface=Kích hoạt giao diện đa ngôn ngữ EnableShowLogo=Hiển thị logo trên menu bên trái -CompanyInfo=Thông tin Công ty/Tổ chức -CompanyIds=Xác định Công ty/Tổ chức +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=Tên CompanyAddress=Địa chỉ CompanyZip=Zip @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Khoảng trì hoãn (theo ngày) trước khi cảnh b Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Khoảng trì hoãn (theo ngày) trước khi cảnh báo đối với séc ứng trước để làm Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=Thông số tùy chọn quản lý thông tin menu đầu vào khác LogEvents=Sự kiện kiểm toán bảo mật Audit=Kiểm toán @@ -987,7 +1015,7 @@ BrowserOS=Trình duyệt hệ điều hành ListOfSecurityEvents=Danh sách các sự kiện bảo mật Dolibarr SecurityEventsPurged=Sự kiện bảo mật được thanh lọc LogEventDesc=You can enable here the logging for Dolibarr security events. Administrators can then see its content via menu System tools - Audit. Warning, this feature can consume a large amount of data in database. -AreaForAdminOnly=Những tính năng này có thể được sử dụng bởi những người dùng quản trị. +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=Hệ thống thông tin là thông tin kỹ thuật linh tinh bạn nhận được trong chế độ chỉ đọc và có thể nhìn thấy chỉ cho quản trị viên. SystemAreaForAdminOnly=Khu vực này hiện có sẵn cho những người dùng quản trị. Không ai trong số phân quyền Dolibarr có thể làm giảm giới hạn này. CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=Bạn phải có ít nhất 1 mô-đun cho phép ClassNotFoundIntoPathWarning=Lớp %s không tìm thấy con đường vào PHP YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Điều kiện là hiện tại %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=Rules on Professional Ids MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=Một liên kết xuất dữ liệu sang định dạng %s có sẵn tại liên kết sau đây: %s ##### Invoices ##### BillsSetup=Cài đặt module hóa đơn BillsNumberingModule=Mô hình đánh số Hoá đơn và giấy báo có BillsPDFModules=Mô hình chứng từ hóa đơn +PaymentsPDFModules=Payment documents models CreditNote=Lưu ý tín dụng CreditNotes=Giấy báo có ForceInvoiceDate=Buộc ngày hóa đơn là ngày xác nhận @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=Cài đặt module sản phẩm ServiceSetup=Cài đặt module dịch vụ @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=Ngày hóa đơn được dùng Buy=Mua Sell=Bán InvoiceDateUsed=Ngày hóa đơn được dùng -YourCompanyDoesNotUseVAT=Công ty của bạn đã được xác định không sử dụng thuế VAT (Trang chủ - Cài đặt - Công ty / Tổ chức), vì vậy không có tùy chọn để cài đặt thuế VAT. +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=Mã kế toán AccountancyCodeSell=Mã kế toán bán hàng AccountancyCodeBuy=Mã kế toán mua hàng @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Thiết lập tự động trạng thái này cho c AGENDA_DEFAULT_VIEW=Tab mà bạn muốn mở mặc định khi lựa chọn menu chương trình nghị sự AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click To Dial module setup -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=Thứ tự hiển thị chung BankOrderES=Tây Ban Nha BankOrderESDesc=Thứ tự hiển thị tiếng Tây Ban Nha ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=Thiết lập mô-đun đa công ty ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Thủ thuật tạo file dump sao lưu dự phòng cơ sở d SomethingMakeInstallFromWebNotPossible=Cài đặt module bên ngoài là không thể từ giao diện web với các lý do sau: SomethingMakeInstallFromWebNotPossible2=Vì lý do này, quá trình nâng cấp để mô tả ở đây là chỉ là bước thủ công một người dùng có đặc quyền có thể làm. InstallModuleFromWebHasBeenDisabledByFile=Cài đặt các module bên ngoài từ các ứng dụng đã bị vô hiệu bởi quản trị viên của bạn. Bạn phải yêu cầu ông phải loại bỏ các tập tin %s để cho phép tính năng này. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/vi_VN/compta.lang b/htdocs/langs/vi_VN/compta.lang index 2ce9d4799df..41d427301b1 100644 --- a/htdocs/langs/vi_VN/compta.lang +++ b/htdocs/langs/vi_VN/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Lượng hiển thị ở đây được Param=Thiết lập RemainingAmountPayment=Thanh toán số tiền còn lại: Account=Tài khoản -Accountparent=Mẹ tài khoản -Accountsparent=Tài khoản mẹ +Accountparent=Parent account +Accountsparent=Parent accounts Income=Thu nhập Outcome=Chi phí ReportInOut=Thu nhập / chi phí @@ -56,6 +56,7 @@ MenuTaxAndDividends=Thuế và cổ tức MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=Kế toán / Tài chính khu vực NewPayment=Thanh toán mới @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- Nó bao gồm tất cả các khoản thanh toán có hiệu quả các hóa đơn nhận được từ khách hàng.
- Nó được dựa trên ngày thanh toán các hoá đơn
-DepositsAreNotIncluded=- Hóa đơn tiền gửi cũng không được bao gồm -DepositsAreIncluded=- Hóa đơn tiền gửi mới có +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=Báo cáo của bên thứ ba IRPF LT1ReportByCustomersInInputOutputModeES=Báo cáo của bên thứ ba RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=Tạp chí Kinh doanh DescPurchasesJournal=Mua Tạp chí InvoiceRef=Ref hóa đơn. CodeNotDef=Không xác định -WarningDepositsNotIncluded=Tiền gửi hoá đơn không được bao gồm trong phiên bản này với các phân hệ kế toán này. +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Ngày thanh toán hạn không thể thấp hơn so với ngày đối tượng. Pcg_version=Chart of accounts models Pcg_type=PCG loại @@ -189,8 +190,10 @@ AccountancyJournal=Đang kế toán tạp chí ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Sao chép nó vào tháng tới @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/vi_VN/cron.lang b/htdocs/langs/vi_VN/cron.lang index c3c615b9722..497f2b24b2c 100644 --- a/htdocs/langs/vi_VN/cron.lang +++ b/htdocs/langs/vi_VN/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Công việc CronNone=Không CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Kích hoạt CronStatusInactiveBtn=Vô hiệu hoá CronTaskInactive=Công việc này bị vô hiệu hóa CronId=Id -CronClassFile=Lớp học (filename.class.php) -CronModuleHelp=Tên của thư mục module Dolibarr (cũng làm việc với mô-đun Dolibarr bên ngoài).
Đối với exemple phương pháp của Dolibarr đối tượng sản phẩm / htdocs / sản phẩm /class/product.class.php lấy, giá trị của mô-đun là sản phẩm -CronClassFileHelp=Tên tập tin để tải.
Đối với exemple phương pháp của Dolibarr đối tượng sản phẩm / htdocs / sản phẩm / lớp / product.class.php lấy, giá trị của tên tập tin lớp học là product.class.php -CronObjectHelp=Tên đối tượng để tải.
Đối với exemple phương pháp của Dolibarr đối tượng sản phẩm /htdocs/product/class/product.class.php lấy, giá trị của tên tập tin lớp học là sản phẩm -CronMethodHelp=Phương pháp đối tượng để khởi động.
Đối với exemple phương pháp của Dolibarr đối tượng sản phẩm /htdocs/product/class/product.class.php lấy, giá trị của phương pháp là fecth -CronArgsHelp=Các đối số phương pháp.
Đối với exemple phương pháp của Dolibarr đối tượng sản phẩm /htdocs/product/class/product.class.php lấy, giá trị của paramters có thể là 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=Các dòng lệnh hệ thống để thực thi. CronCreateJob=Create new Scheduled Job CronFrom=Từ @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/vi_VN/errors.lang b/htdocs/langs/vi_VN/errors.lang index 8d2ddf5ad2c..5cb5d29384c 100644 --- a/htdocs/langs/vi_VN/errors.lang +++ b/htdocs/langs/vi_VN/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=Không thể tạo tập tin '% s'. ErrorFailToRenameDir=Không thể đổi tên thư mục '% s' vào '% s'. ErrorFailToCreateDir=Không thể tạo thư mục '% s'. ErrorFailToDeleteDir=Không thể xóa thư mục '% s'. +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Liên hệ này đã được xác định là liên lạc cho loại hình này. ErrorCashAccountAcceptsOnlyCashMoney=Tài khoản ngân hàng Đây là một tài khoản tiền mặt, vì vậy nó chấp nhận thanh toán các loại chỉ tiền mặt. ErrorFromToAccountsMustDiffers=Nguồn tài khoản ngân hàng và các mục tiêu phải khác. @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=Không thể viết trong thư mục% s ErrorFoundBadEmailInFile=Tìm thấy cú pháp email không chính xác cho% s dòng trong tập tin (ví dụ dòng% s với email =% s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Một số trường yêu cầu không được lấp đầy. +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=Không thể tạo một thư mục. Kiểm tra xem người sử dụng máy chủ web có quyền ghi vào thư mục tài liệu Dolibarr. Nếu tham số safe_mode được kích hoạt trên PHP này, hãy kiểm tra các tập tin php Dolibarr sở hữu cho người sử dụng máy chủ web (hoặc một nhóm). ErrorNoMailDefinedForThisUser=Không có thư xác định cho người dùng này ErrorFeatureNeedJavascript=Tính năng này cần javascript để được kích hoạt để làm việc. Thay đổi điều này trong thiết lập - hiển thị. @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=Tài khoản người dùng% s được sử dụng để thực hiện các máy chủ web không có sự cho phép cho điều đó ErrorNoActivatedBarcode=Không có loại mã vạch kích hoạt ErrUnzipFails=Không thể giải nén% s với ZipArchive -ErrNoZipEngine=Không có công cụ để giải nén tập tin% s trong PHP này +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=Các tập tin% s phải là một gói zip Dolibarr ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP CURL không được cài đặt, điều này là cần thiết để nói chuyện với Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index 23df966ce86..6258f3369a1 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=Thông số %s chưa được khai báo ErrorUnknown=Lỗi không xác định ErrorSQL=Lỗi SQL ErrorLogoFileNotFound=Không tìm thấy tệp logo '%s' -ErrorGoToGlobalSetup=Đi đến phần thiết lập 'Công ty/Tổ chức" để sửa lỗi này +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=Đến phần thiết lập Module để sửa lỗi này ErrorFailedToSendMail=Lỗi gửi mail (người gửi=%s, người nhận=%s) ErrorFileNotUploaded=Tập tin không được tải lên. Kiểm tra kích thước không vượt quá tối đa cho phép, không gian miễn phí có sẵn trên đĩa và không có một tập tin đã có cùng tên trong thư mục này. @@ -153,6 +153,7 @@ Edit=Sửa Validate=Xác nhận ValidateAndApprove=Xác nhận và Duyệt ToValidate=Để xác nhận +NotValidated=Not validated Save=Lưu SaveAs=Lưu thành TestConnection=Kiểm tra kết nối @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=Không áp dụng tính năng ngắt kết nối v Connection=Kết nối Setup=Thiết lập Alert=Cảnh báo +MenuWarnings=Cảnh báo Previous=Trước Next=Tiếp theo Cards=Thẻ @@ -308,6 +310,7 @@ Copy=Copy Paste=Dán Default=Mặc định DefaultValue=Giá trị mặc định +DefaultValues=Default values Price=Giá UnitPrice=Đơn giá UnitPriceHT=Đơn giá (chưa thuế) @@ -363,7 +366,8 @@ VATRate=Thuế suất Average=Trung bình Sum=Tính tổng Delta=Delta -Module=Module +Module=Module/Application +Modules=Modules/Applications Option=Tùy chọn List=Danh sách FullList=Danh mục đầy đủ @@ -387,7 +391,7 @@ ActionRunningNotStarted=Để bắt đầu ActionRunningShort=In progress ActionDoneShort=Đã hoàn tất ActionUncomplete=Không hoàn tất -CompanyFoundation=Công ty/Tổ chức +CompanyFoundation=Company/Organisation ContactsForCompany=Liên lạc cho bên thứ ba này ContactsAddressesForCompany=Liên lạc/địa chỉ cho bên thứ ba này AddressesForCompany=Địa chỉ cho bên thứ ba này @@ -405,8 +409,9 @@ Generate=Xuất ra Duration=Thời hạn TotalDuration=Tổng thời hạn Summary=Tóm tắt -DolibarrStateBoard=Thống kê -DolibarrWorkBoard=Ban tác vụ công việc +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=Sẵn có NotYetAvailable=Chưa có NotAvailable=Chưa có @@ -434,7 +439,7 @@ Reportings=Việc báo cáo Draft=Dự thảo Drafts=Dự thảo Validated=Đã xác nhận -Opened=Đã mở +Opened=Mở New=Mới Discount=Giảm giá Unknown=Không biết @@ -453,6 +458,7 @@ NextStep=Bước tiếp theo Datas=Dữ liệu None=Không NoneF=Không +NoneOrSeveral=None or several Late=Trễ LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=Hình ảnh @@ -606,7 +612,8 @@ PartialWoman=Một phần TotalWoman=Tổng NeverReceived=Chưa từng nhận Canceled=Đã hủy -YouCanChangeValuesForThisListFromDictionarySetup=Bạn có thể thay đổi giá trị cho danh sách này từ menu thiết lập-từ điển +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=Màu Documents=Tập tin liên kết @@ -642,6 +649,7 @@ FreeLineOfType=Loại tự do gõ CloneMainAttributes=Nhân bản đối tượng và các thuộc tính chính của nó PDFMerge=PDF Merge Merge=Merge +DocumentModelStandardPDF=Standard PDF template PrintContentArea=Hiển thị trang in khu vực nội dung chính MenuManager=Menu quản lý WarningYouAreInMaintenanceMode=Cảnh báo, bạn đang trong chế độ bảo trì, vì vậy chỉ có đăng nhập %s là được phép sử dụng ứng dụng tại thời điểm này. @@ -708,6 +716,7 @@ from=từ toward=hướng Access=Truy cập SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=Sử dụng tổ hợp phím Ctrl + C để copy vào clipboard SaveUploadedFileWithMask=Lưu tập tin trên máy chủ với tên "%s" (nếu không "%s") OriginFileName=Tên tập tin gốc @@ -718,7 +727,7 @@ ViewPrivateNote=Xem ghi chú XMoreLines=%s dòng ẩn PublicUrl=URL công khai AddBox=Thêm hộp -SelectElementAndClickRefresh=Chọn một phần tử và nhấn Làm mới +SelectElementAndClick=Select an element and click %s PrintFile=In tập tin %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Vào Nhà-Thiết lập-Công ty để đổi logo hoặc vào Nhà-Thiết lập-Hiển thị để ẩn. @@ -734,8 +743,8 @@ Hello=Xin chào Sincerely=Sincerely DeleteLine=Xóa dòng ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=Lịch GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Năm tài chính +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Thứ Hai Tuesday=Thứ Ba @@ -817,5 +835,3 @@ SearchIntoContracts=Hợp đồng SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=Nghỉ phép - -BulkActions=Bulk actions diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang index 4fd0bc0f659..dced48e8ed9 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=Ngày tháng năm sinh BirthdayAlertOn=sinh nhật cảnh báo hoạt động BirthdayAlertOff=sinh nhật không hoạt động cảnh báo +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=Can thiệp xác nhận Notify_FICHINTER_SENTBYMAIL=Can thiệp gửi qua đường bưu điện @@ -61,13 +74,14 @@ PredefinedMailTestHtml=Đây là một thư kiểm tra (kiểm tra từ p PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__ Bạn sẽ tìm thấy ở đây đề nghị thương mại __PROPREF__ __PERSONALIZED__Sincerely __SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__ Bạn sẽ tìm thấy ở đây thứ tự __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__ Bạn sẽ tìm thấy ở đây để chúng tôi __ORDERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__ Bạn sẽ tìm thấy ở đây vận chuyển __SHIPPINGREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__ Bạn sẽ tìm thấy ở đây sự can thiệp __FICHINTERREF__ __PERSONALIZED__Sincerely __SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__ __PERSONALIZED__ __SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
Id Giáo sư% s là một thông tin phụ thuộc vào quốc gia của bên thứ ba.
Ví dụ, đối với đất nước% s, đó là mã% s. DolibarrDemo=Giới thiệu Dolibarr ERP / CRM -StatsByNumberOfUnits=Thống kê về số lượng các sản phẩm / dịch vụ đơn vị -StatsByNumberOfEntities=Thống kê về số lượng của các đơn vị giới thiệu -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=Sự can thiệp% s đã được xác nhận. EMailTextInvoiceValidated=Hóa đơn% s đã được xác nhận. diff --git a/htdocs/langs/vi_VN/projects.lang b/htdocs/langs/vi_VN/projects.lang index ef47a652093..90150e9b76f 100644 --- a/htdocs/langs/vi_VN/projects.lang +++ b/htdocs/langs/vi_VN/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Trạng thái dự án SharedProject=Mọi người PrivateProject=Liên lạc dự án +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=Tất cả dự án MyProjectsDesc=Phần xem này được giới hạn cho dự án mà bạn có liên quan (đối với bất kỳ loại dự án nào). ProjectsPublicDesc=Phần xem này hiển thị tất cả các dự án mà bạn được phép đọc. TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=Phần xem này hiển thị tất cả các dự án và tác vụ (q AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=Dự án mới AddProject=Tạo dự án DeleteAProject=Xóa một dự án DeleteATask=Xóa một tác vụ ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=Hiển thị dự án SetProject=Lập dự án NoProject=Không có dự án được xác định hoặc tự tạo NbOfProjects=Nb của dự án +NbOfTasks=Nb of tasks TimeSpent=Thời gian đã qua TimeSpentByYou=Thời gian đã qua bởi bạn TimeSpentByUser=Thời gian đã qua bởi người dùng @@ -47,9 +52,9 @@ TaskTimeSpent=Thời gian đã qua trên tác vụ TaskTimeUser=Người dùng TaskTimeNote=Ghi chú TaskTimeDate=Ngày -TasksOnOpenedProject=Tác vụ đã mở trong dự án +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Khối lượng công việc chưa xác định -NewTimeSpent=Thời gian đã qua mới +NewTimeSpent=Thời gian đã qua MyTimeSpent=Thời gian đã qua của tôi Tasks=Tác vụ Task=Tác vụ @@ -59,6 +64,7 @@ TaskDescription=Mô tả tác vụ NewTask=Tác vụ mới AddTask=Tạo tác vụ AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=Hoạt động Activities=Tác vụ/hoạt động MyActivities=Tác vụ/hoạt động của tôi @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=Danh sách các hợp đồng được gắn với dự án +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=Danh sách các sự can thiệp được gắn với dự án ListExpenseReportsAssociatedProject=Danh sách các báo cáo chi phí liên quan đến dự án ListDonationsAssociatedProject=Danh sách hiến tặng liên quan đến dự án @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=Liên lạc dự án ActionsOnProject=Các sự kiện trên dự án YouAreNotContactOfProject=Bạn không là một liên hệ của dự án riêng tư này +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=Xóa thời gian đã qua ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=Xem thêm tác vụ không được gán cho tôi @@ -110,7 +118,7 @@ TaskRessourceLinks=Tài nguyên ProjectsDedicatedToThisThirdParty=Các dự án được dành riêng cho bên thứ ba này NoTasks=Không có tác vụ nào cho dự án này LinkedToAnotherCompany=Được liên kết đến các bên thứ ba -TaskIsNotAffectedToYou=Tác vụ không được gán cho bạn +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=Thời gian đã qua đang trống ThisWillAlsoRemoveTasks=Thao tác này sẽ xóa toàn bộ các tác vụ của dự án (%s các tác vụ ở thời điểm hiện tại) và toàn bộ dữ liệu đã nhập vào trong suốt thời gian vừa qua. IfNeedToUseOhterObjectKeepEmpty=Nếu một số đối tượng (hóa đơn, đơn hàng, ...), thuộc về một bên thứ ba khác, phải có liên kết đến dự án để tạo, giữ phần này trống để dự án có sự tham gia của nhiều bên thứ ba khác @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Đầu vào mỗi ngày InputPerWeek=Đầu vào mỗi tuần InputPerAction=Đầu vào mỗi hành động -TimeAlreadyRecorded=Thời gian đã qua được ghi nhận cho tác vụ/ngày này và người dùng %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Giao việc cho tôi +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Phân công ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index eed32904230..85ae089bfb5 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=添加一个会计帐户 AccountAccounting=会计账户 AccountAccountingShort=账户 +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=总帐 +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=账目平衡 CAHTF=税前供应商采购总计 @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=卖杂志 @@ -132,19 +140,19 @@ Sens=SENS Codejournal=日记帐 NumPiece=件数 TransactionNumShort=Num. transaction -AccountingCategory=会计分类 +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=未设定 -DeleteMvt=删除常规分类账清单 +DeleteMvt=Delete Ledger lines DelYear=删除整年 DelJournal=删除整月 -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=财务账 ExpenseReportsJournal=Expense reports journal DescFinanceJournal=财务账包括全部银行账户付款类型 -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=借记卡和信用卡在同一时间不能有一个值 - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=会计账目清单 Pcgtype=账户类 -Pcgsubtype=在类账户 +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=总销售利润率 @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=错误,你不能删除这个会计帐户,因为它是用来 MvtNotCorrectlyBalanced=不正确的移转调拨。 Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=应用批量类别 AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=编码 +Nature=属性 +AccountingJournalType1=Various operation +AccountingJournalType2=销售 +AccountingJournalType3=采购 +AccountingJournalType4=银行 +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=导出 @@ -211,6 +231,7 @@ Modelcsv_ciel=向 Sage Ciel Compta 或 Compta Evolution导出 Modelcsv_quadratus=向 Quadratus QuadraCompta导出 Modelcsv_ebp=向 EBP导出 Modelcsv_cogilog=导出到 Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=计算 Formula=公式 ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=本页不支持设置导出格式 BookeppingLineAlreayExists=已存在的账簿明细行 - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 511474769d4..9a78588e2ff 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -48,6 +48,7 @@ InternalUsers=内部员工用户 ExternalUsers=外部用户 GUISetup=主题 SetupArea=设置区 +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=文件上传功能测试 IfModuleEnabled=注:“是”仅在模块 %s 启用时有效 RemoveLock=如果存在文件 %s 则删除,以便可以使用升级工具。 @@ -85,7 +86,7 @@ Mask=格式掩码 NextValue=下一个编码 NextValueForInvoices=下一个发票编码 NextValueForCreditNotes=下一个票据编码 -NextValueForDeposit=下一值(存款) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=下一值(替换) MustBeLowerThanPHPLimit=注意:无论这个参数值是多少,您的 PHP 参数已经限制每个上传文件大小为%s %s, NoMaxSizeByPHPLimit=注:您的 PHP 配置参数中没有设置限制 @@ -103,7 +104,7 @@ MenuIdParent=父菜单ID DetailMenuIdParent=父菜单ID (空表示顶级菜单) DetailPosition=排序编号,以确定菜单位置 AllMenus=全部 -NotConfigured=模块未配置 +NotConfigured=Module/Application not configured Active=启用 SetupShort=设置 OtherOptions=其他选项 @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=千位分隔符 Destination=目的地 IdModule=模块ID IdPermissions=权限ID -Modules=模块 LanguageBrowserParameter=参数 %s LocalisationDolibarrParameters=本地化参数 ClientTZ=(用户)客户端时区 @@ -123,7 +123,8 @@ PHPTZ=PHP服务器时区 DaylingSavingTime=夏令时间 CurrentHour=PHP 服务器时间 CurrentSessionTimeOut=当前会话超时 -YouCanEditPHPTZ=要设置不同的PHP时区(不要求),你可以尝试在 .htacces文件添加像这样 "SetEnv TZ 欧洲/巴黎" 一行。 +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=插件 Boxes=插件 MaxNbOfLinesForBoxes=插件清单最大数值 @@ -189,10 +190,10 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=权限 BoxesDesc=小组件展示一些可以添加到您个人页面的信息。您可以通过选择目标页面点击“激活”或关闭按钮来选择显示或关闭这些小组件。 OnlyActiveElementsAreShown=仅显示 已启用模块 的元素。 -ModulesDesc=激活并启用Dolibarr定义的功能模块。部分模块启用后,需要您给予相应用户权限他才能使用到该模块。点击 on/off 来启用/禁用功能/模块。 +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=你能在外部互联网查找到并下载更多的功能模块... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=查找更多模块 GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore,为 Dolibarr 的 ERP/CRM 的外部模块官方市场 DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=加密 conf.php 中的数据库密码(推荐启 InstrucToEncodePass=如果要在conf.php中使用明文密码,请将
$dolibarr_main_db_pass="...";
替换为br>$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=如果要在conf.php中使用明文密码,请将
$dolibarr_main_db_pass="crypted:...";
替换为
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=保护生成的PDF文件(不推荐,影响PDF的批量生成) -ProtectAndEncryptPdfFilesDesc=PDF保护允许在PDF浏览器中阅读和打印PDF,但无法编辑和复制内容。请注意,此功能让追加生成多页PDF的功能无法使用(例如未支付账单)。 +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=功能特色 DolibarrLicense=授权 Developpers=开发商/贡献者 @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr在线演示 OfficialMarketPlace=官方市场提供外部扩展模型/模块 OfficialWebHostingService=引用网络托管服务(云主机) ReferencedPreferredPartners=首选合作伙伴 -OtherResources=其他资源 +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=用户或开发人员用文档(文档,常见问题…),
参见 Dolibarr 百科:
%s ForAnswersSeeForum=您有任何其他问题/帮助,可以到 Dolibarr 论坛:
%s简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089 HelpCenterDesc1=此处可以帮助你获得 Dolibarr 帮助支持服务。 @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=功能在 Unix 类系统下不可用。请在本地 SubmitTranslation=如果您发现当前语言的翻译不完整或有误,您可以通过编辑 langs/%s 文件更正它,并将修改后的文件提交至 www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=如果您发现当前语言的翻译不完整或有误,您可以通过编辑 langs/%s 文件更正它,并将修改后的文件提交至 dolibarr.org/forum 或github开发者 github.com/Dolibarr/dolibarr. ModuleSetup=模块设置 -ModulesSetup=模块设置 +ModulesSetup=Modules/Application setup ModuleFamilyBase=系统 ModuleFamilyCrm=客户关系管理(CRM) ModuleFamilySrm=供应商关系管理 (SRM) @@ -284,7 +287,7 @@ ModuleFamilyInterface=系统外部扩展接口 MenuHandlers=菜单处理程序 MenuAdmin=菜单编辑器 DoNotUseInProduction=请勿用于生产环境 -ThisIsProcessToFollow=This is steps to process: +ThisIsProcessToFollow=步骤如下: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=第 %s 步 FindPackageFromWebSite=搜索你需要的功能(例如在官方 %s )。 @@ -300,14 +303,17 @@ CurrentVersion=Dolibarr 当前版本 CallUpdatePage=升级更新数据库和数据请到: %s. LastStableVersion=最新稳定版 LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=离线升级服务器 +WithCounter=Manage a counter GenericMaskCodes=You may enter any numbering mask. In this mask, the following tags could be used:
{000000} corresponds to a number which will be incremented on each %s. Enter as many zeros as the desired length of the counter. The counter will be completed by zeros from the left in order to have as many zeros as the mask.
{000000+000} same as previous but an offset corresponding to the number to the right of the + sign is applied starting on first %s.
{000000@x} same as previous but the counter is reset to zero when month x is reached (x between 1 and 12, or 0 to use the early months of fiscal year defined in your configuration, or 99 to reset to zero every month). If this option is used and x is 2 or higher, then sequence {yy}{mm} or {yyyy}{mm} is also required.
{dd} day (01 to 31).
{mm} month (01 to 12).
{yy}, {yyyy} or {y} year over 2, 4 or 1 numbers.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=其它非标记字符将维持不变。
不允许使用空格
-GenericMaskCodes4a=例如第99位 %s 合伙人 TheCompany 已搞定于 2007-01-31:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=例如合伙人创建于 2007-03-01:
GenericMaskCodes4c=例如: 于 2007-03-1 建立的产品资料:
-GenericMaskCodes5=号码格式: ABC{yy}{mm}-{000000} 将生成 ABC0701-000099格式编号
号码格式:{0000+100}-ZZZ/{dd}/XXX 将生成 0199-ZZZ/31/XXX格式编号 +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=根据事先定义的格式掩码,返回一个可定制编号,详见说明。 ServerAvailableOnIPOrPort=可用服务器地址: %s:%s ServerNotAvailableOnIPOrPort=服务器地址: %s:%s 不可用 @@ -369,19 +375,21 @@ Int=整型 Float=浮点型 DateAndTime=日期与小时 Unique=唯一 -Boolean=布尔值 (复选框) +Boolean=Boolean (one checkbox) ExtrafieldPhone = 电话 ExtrafieldPrice = 价格 ExtrafieldMail = 电子邮件 ExtrafieldUrl = Url ExtrafieldSelect = 选择列表 ExtrafieldSelectList = 从表格中选取 -ExtrafieldSeparator=分隔符 +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=密码 -ExtrafieldCheckBox=复选框 -ExtrafieldRadio=单选框 -ExtrafieldCheckBoxFromList= 表格的勾选框 +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=连接到项目 +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=字符列表类似于 key,value

举例说明 ::
1,value1
2,value2
3,value3
等等等... ExtrafieldParamHelpradio=字符列表类似于 key,value

举例说明 ::
1,value1
2,value2
3,value3
等等等... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=栏位 +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=用户和组 Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=客户发票和信用记录管理。供应商发票管理。 Module40Name=供应商 Module40Desc=供应商和其采购管理(订单和发票) Module42Name=日志 -Module42Desc=日志系统(文件、系统日志...) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=编辑器 Module49Desc=编辑器管理 Module50Name=产品 @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar 整合 Module500Name=特殊开支 Module500Desc=特殊开支管理(税、财政税等) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=贷款 Module520Desc=贷款管理模块 Module600Name=通知 @@ -542,8 +564,10 @@ Module2900Name=Maxmind网站的GeoIP全球IP地址数据库 Module2900Desc=Maxmind的geoip数据库的转换能力 Module3100Name=Skype Module3100Desc=添加 Skype 聊天按钮到用户 / 合伙人 / 联系人 / 会员信息资料卡 +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=人事管理 -Module4000Desc=人力资源管理 +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=多公司 Module5000Desc=允许你管理多个公司 Module6000Name=工作流程 @@ -591,7 +615,7 @@ Permission32=创建/变更产品信息 Permission34=删除产品信息 Permission36=查看/管理隐藏产品 Permission38=导出产品信息 -Permission41=读取项目和任务(共享的工程和我参与的项目)。还可输入项目所消耗的时间(时间表) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=删除项目(共享的项目和我参与的项目) Permission45=导出项目 @@ -844,12 +868,14 @@ DictionaryOrderMethods=订单类型 DictionarySource=报价/订单来源方式 DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=账户图标模块 +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=电子邮件模板 DictionaryUnits=单位 DictionaryProspectStatus=准客户状态 DictionaryHolidayTypes=请假类型 DictionaryOpportunityStatus=项目/线索的机会状态 SetupSaved=设置已经成功保存 +SetupNotSaved=Setup not saved BackToModuleList=返回模块列表 BackToDictionaryList=回到字典库 VATManagement=增值税管理 @@ -921,7 +947,7 @@ Host=服务器 DriverType=驱动类型 SummarySystem=系统信息摘要 SummaryConst=Dolibarr所有设置参数清单 -MenuCompanySetup=公司/机构 +MenuCompanySetup=公司/组织 DefaultMenuManager= 标准菜单管理 DefaultMenuSmartphoneManager=智能手机菜单管理 Skin=外观主题 @@ -931,12 +957,14 @@ DefaultMaxSizeList=列表默认最大值 DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=每日消息 MessageLogin=登陆页面显示消息 +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=常驻左侧菜单搜寻框 DefaultLanguage=默认语言(语言代码) EnableMultilangInterface=启用多语言界面 EnableShowLogo=左侧菜单中显示LOGO公司标志 -CompanyInfo=公司/机构资料信息 -CompanyIds=公司/机构的编号 +CompanyInfo=公司/组织信息 +CompanyIds=Company/organisation identities CompanyName=名称 CompanyAddress=地址 CompanyZip=邮编 @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=会员费用最大逾期时间 (天) Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=支票兑现最大逾期时间 (天) Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=在开始使用Dolibarr之前请先进行初始化设置相关参数。 -SetupDescription2=两个最重要的设置步骤是在左边的设置菜单中的前两个:公司/机构和模块: -SetupDescription3=该参数的设置菜单是 设置 -> 公司/机构 需要您首先设定好的原因是因为显示特定信息必须事先设定好此参数 (例如国家税费相关的信息). -SetupDescription4=该参数的设置菜单是 设置 -> 模块 需要您首先设定好的原因是Dolibarr采用的是目前最先进优化的模块化设计 ERP/CRM 系统.这种设计非常棒,未来我们开发新功能将以模块的形式启用到系统菜单中. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=其他管理菜单可选参数。 LogEvents=安全稽核事件 Audit=安全稽核 @@ -987,7 +1015,7 @@ BrowserOS=浏览器操作系统 ListOfSecurityEvents=安全事件清单 SecurityEventsPurged=安全事件清除 LogEventDesc=这里您可以启用 Dolibarr 的安全事件日志记录。管理员可以通过系统工具-稽核查看其内容。警告,此功能会消耗大量的数据库空间。 -AreaForAdminOnly=此功能仅供管理员用户 使用。 +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=系统信息指以只读方式显示的其它技术信息,只对系统管理员可见。 SystemAreaForAdminOnly=此区仅供管理员用户使用。Dolibarr 中没有权限可越过此限制。 CompanyFundationDesc=在本页面输入详细的公司或机构的初始资料 (然后点击页面底部的 "变更" 或 "保存" 按钮) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=显示新翻译字符串 OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=启用的功能模块总共: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=您必须至少启用 1 个模块 ClassNotFoundIntoPathWarning=PHP 路径中未发现 类 %s YesInSummer=是(在夏天) -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=会话存储空间已用 Suhosin 加密 ConditionIsCurrently=当前条件为 %s YouUseBestDriver=你使用的驱动程序 %s 就是目前最佳驱动程式。 @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=专业ID号码规则 MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=%s格式的导出文件可以通过链接 %s 下载 ##### Invoices ##### BillsSetup=发票模块设置 BillsNumberingModule=发票与信用记录编号模块 BillsPDFModules=发票文档模板 +PaymentsPDFModules=Payment documents models CreditNote=信用记录 CreditNotes=信用记录 ForceInvoiceDate=强制发票中的日期为确认日期 @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=HTTP服务器不缓存的文件类型%s FilesOfTypeCompressed=HTTP服务器 %s 类型的文件被压缩 FilesOfTypeNotCompressed=HTTP服务器 %s 类型的文件不会被压缩 CacheByServer=缓存服务器 +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=通过浏览器缓存 CompressionOfResources=压缩的HTTP响应 +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=这种自动检测在该浏览器中不适用 +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=产品模块设置 ServiceSetup=服务模块设置 @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=所用账单日期 Buy=采购 Sell=销售 InvoiceDateUsed=所用账单日期 -YourCompanyDoesNotUseVAT=贵公司已被定义为不含增值税 (首页->设定->公司/机构),所以没有设置增值税的选项。 +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=科目代码 AccountancyCodeSell=销售账户代码 AccountancyCodeBuy=采购账户代码 @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=点击拨号模块设置 -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with your clicktodial login (defined on your user card)
__PASS__ that will be replaced with your clicktodial password (defined on your user card). +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=在电话号码上链接 "tel:" ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API模块设置 ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=你可浏览 APIs 地址 +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=API的Key WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=一般的显示顺序 BankOrderES=西班牙语 BankOrderESDesc=西班牙语显示顺序 ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=多公司模块设置 ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=数据库转储备份向导 SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=当鼠标经过表格明细时高亮显示 HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=页面标题颜色 LinkColor=颜色链接 -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=背景颜色 TopMenuBackgroundColor=顶部菜单背景颜色 @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=最小通知间隔 NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=消费税率 RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/zh_CN/compta.lang b/htdocs/langs/zh_CN/compta.lang index 158bee98f0b..944091f39c2 100644 --- a/htdocs/langs/zh_CN/compta.lang +++ b/htdocs/langs/zh_CN/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=这里显示的金额是根据公司定 Param=设置 RemainingAmountPayment=剩余的付款金额: Account=帐户 -Accountparent=母公司帐户 -Accountsparent=母公司帐户 +Accountparent=Parent account +Accountsparent=Parent accounts Income=收入 Outcome=支出 ReportInOut=收入/支出 @@ -56,6 +56,7 @@ MenuTaxAndDividends=税和股息 MenuSocialContributions=社会/财政税 MenuNewSocialContribution=新建社会/财政税 NewSocialContribution=新建社会/财政税 +AddSocialContribution=Add social/fiscal tax ContributionsToPay=支付社会/财政税 AccountancyTreasuryArea=会计/库务区 NewPayment=新建支付 @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- 它包括所有从客户收到发票有效付款。
- 这是对这些发票的付款日期为基础
-DepositsAreNotIncluded=- 不包括存款发票 -DepositsAreIncluded=- 包括存款发票 +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=按合伙人IRPF的报表 LT1ReportByCustomersInInputOutputModeES=按合伙人 RE 报表 VATReport=VAT报告 @@ -169,7 +170,7 @@ DescSellsJournal=销售日志 DescPurchasesJournal=采购日志 InvoiceRef=发票编号。 CodeNotDef=没有定义 -WarningDepositsNotIncluded=存款发票不包括在此版本与本会计模块。 +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=付款期限日期不能小于对象日期。 Pcg_version=Chart of accounts models Pcg_type=PCG类型 @@ -189,8 +190,10 @@ AccountancyJournal=科目代码日记账 ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=复制 social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=复制下一个月 @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=社会/财政税 ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=错误:银行账号未发现 FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/zh_CN/cron.lang b/htdocs/langs/zh_CN/cron.lang index 720a516ec5a..f4dbef38a61 100644 --- a/htdocs/langs/zh_CN/cron.lang +++ b/htdocs/langs/zh_CN/cron.lang @@ -25,7 +25,7 @@ CronDelete=删除计划任务 CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=安排计划工作 CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=计划工作模式允许执行计划好了的工作 +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=工作 CronNone=无 CronDtStart=之前 @@ -57,12 +57,12 @@ CronStatusActiveBtn=生效 CronStatusInactiveBtn=禁用 CronTaskInactive=这个工作已失效 CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Dolibarr模块目录名称 (同时也是 Dolibarr 外部模块的工作目录).
例如 Dolibarr 产品对象 /htdocs/product/class/product.class.php的获取方法, 模块的参数值是 product -CronClassFileHelp=加载文件名称。
例如 Dolibarr 产品对象 /htdocs/product/class/product.class.php的获取方法, 它的参数值 class 文件名称是 product.class.php -CronObjectHelp=加载对象名称.
例如 Dolibarr 产品对象 /htdocs/product/class/product.class.php的获取方法, 它的参数值 class 文件名称是 Product -CronMethodHelp=对象启动方法.
例如 Dolibarr 产品对象 /htdocs/product/class/product.class.php的启动方法, 它的参数方法是 fecth -CronArgsHelp=该方法的参数.
例如 Dolibarr 产品对象 /htdocs/product/class/product.class.php的获取方法, 参数值 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=系统命令行执行。 CronCreateJob=创建新的计划任务 CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=请到菜单 "主页 - 管理员工具 - 计划 JobDisabled=岗位无效 MakeLocalDatabaseDumpShort=本地数据库备份 MakeLocalDatabaseDump=生成一份本地数据库 dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/zh_CN/errors.lang b/htdocs/langs/zh_CN/errors.lang index 5cfebca3dcb..0abbed95bfb 100644 --- a/htdocs/langs/zh_CN/errors.lang +++ b/htdocs/langs/zh_CN/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=无法创建文件'%s'的。 ErrorFailToRenameDir=无法重命名目录'%s'%s'的。 ErrorFailToCreateDir=无法创建目录'%s'的。 ErrorFailToDeleteDir=无法删除目录'%s'的。 +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=这个联络已定义为这种类型的接触。 ErrorCashAccountAcceptsOnlyCashMoney=这是一个银行帐户的现金帐户,所以只接受现金支付的类型。 ErrorFromToAccountsMustDiffers=源和目标的银行帐户必须是不同的。 @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=无法写在目录%s ErrorFoundBadEmailInFile=找到%S的语法不正确的电子邮件文件中的行(例如行%的电子邮件s =%s)的 ErrorUserCannotBeDelete=用户不能删除。也许它已经关联到Dolibarr实体对象了。 ErrorFieldsRequired=一些必要的栏位都没有填补。 +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=无法创建一个目录。检查Web服务器的用户有权限写入Dolibarr文件目录。如果参数safe_mode设置为启用这个PHP,检查Dolibarr php文件到Web服务器的用户拥有(或组)。 ErrorNoMailDefinedForThisUser=没有邮件定义该用户 ErrorFeatureNeedJavascript=此功能需要Javascript被激活才能工作。更改此设置 - 显示。 @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=%s用来执行Web服务器用户帐户没有该权限 ErrorNoActivatedBarcode=没有激活的条码类型 ErrUnzipFails=%s 无法解压缩与解压缩 -ErrNoZipEngine=PHP没有引擎来解压缩文件%s +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=%s 文件必须是Dolibarr zip格式包 ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=PHP Curl没有安装,这需要与支付宝协调 @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=没有全局变量选择 ErrorFieldMustBeANumeric=填写 %s 必须为数字值 ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -191,7 +201,7 @@ WarningMandatorySetupNotComplete=初始参数尚未设置 WarningSafeModeOnCheckExecDir=警告,PHP的选项safe_mode设置为在此情况下命令必须在safe_mode_exec_dir之存储参数的PHP目录内宣布。 WarningBookmarkAlreadyExists=本标题或此目标(网址)书签已存在。 WarningPassIsEmpty=警告,数据库密码是空的。这是一个安全漏洞。您应该添加一个密码到您的数据库,并改变你的conf.php文件,以反映这一点。 -WarningConfFileMustBeReadOnly=警告:您的服务器配置文件 (htdocs/conf/conf.phpLiAnGjiA注:初始安装时需要允许Dolibarr读写权限安装完成后为了安全着想则需要取消写入权限害怕被公鸡啦) 有写入权限。这是个非常严重的漏洞。其允许服务器权限级别的文件读取与写入,有被恶意利用的风险。假如你是Windows的磁盘格式是FAT格式,你必须将该配置文件的权限修改为只读权限,并请继续加强其他服务器安全防护工作。 +WarningConfFileMustBeReadOnly=警告:您的服务器配置文件 (htdocs/conf/conf.php——LiAnGjiA注:初始安装时需要允许Dolibarr读写权限安装完成后为了安全着想则需要取消写入权限害怕被公鸡啦) 有写入权限。这是个非常严重的漏洞。其允许服务器权限级别的文件读取与写入,有被恶意利用的风险。假如你是Windows的磁盘格式是FAT格式,你必须将该配置文件的权限修改为只读权限,并请继续加强其他服务器安全防护工作。 WarningsOnXLines=%S上的源代码行警告 WarningNoDocumentModelActivated=没有模板,对文档生成,已被激活。一个模板是选用默认,直到您检查您的模块设置。 WarningLockFileDoesNotExists=警告:一旦您安装完成Dolibarr则必须将install整个目录移走并在目录 %s下添加一个 install.lock 文件来防止他人的恶意重装。如若缺少此文件则将是个安全漏洞哦。 @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index 309c8ce3cc4..76de77ade11 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=不是定义的参数% ErrorUnknown=未知错误 ErrorSQL=SQL错误 ErrorLogoFileNotFound=徽标LOGO文件'%s'没有找到 -ErrorGoToGlobalSetup=到'公司/机构的设置来解决此 +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=前往模块设置来解决此 ErrorFailedToSendMail=无法发送邮件(发件人=%s后,接收器=%s)的 ErrorFileNotUploaded=文件没有上传。检查大小不超过允许的最大值,即在磁盘上的可用空间是可用和有没有这已经与in这个目录同名文件。 @@ -85,15 +85,15 @@ NotDefined=未定义 DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. Administrator=管理员 Undefined=未定义 -PasswordForgotten=Password forgotten? +PasswordForgotten=忘记密码? SeeAbove=见上文 HomeArea=首页信息状态区 -LastConnexion=Latest connection -PreviousConnexion=上次登陆 +LastConnexion=最后上线时间 +PreviousConnexion=上次上线时间 PreviousValue=上一个值 ConnectedOnMultiCompany=对实体连接 ConnectedSince=当前连接状态 -AuthenticationMode=Authentication mode +AuthenticationMode=认证模式 RequestedUrl=Requested URL DatabaseTypeManager=数据库类型管理员 RequestLastAccessInError=最后数据库访问请求错误 @@ -153,6 +153,7 @@ Edit=编辑 Validate=验证 ValidateAndApprove=验证和同意 ToValidate=为了验证 +NotValidated=Not validated Save=保存 SaveAs=另存为 TestConnection=测试连接 @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=登陆 Setup=设置 Alert=生日提醒 +MenuWarnings=警告 Previous=以前 Next=未来 Cards=牌 @@ -238,7 +240,7 @@ DateCreation=创建日期 DateCreationShort=创建日期 DateModification=变更日期 DateModificationShort=变更日期 -DateLastModification=Latest modification date +DateLastModification=最后修改日期 DateValidation=验证日期 DateClosing=截止日期 DateDue=截止日期 @@ -308,6 +310,7 @@ Copy=复制 Paste=糊 Default=默认 DefaultValue=默认值 +DefaultValues=默认值 Price=价格 UnitPrice=单价 UnitPriceHT=单位价格(净值) @@ -363,7 +366,8 @@ VATRate=增值税率 Average=平均 Sum=总和 Delta=增量 -Module=模块 +Module=Module/Application +Modules=Modules/Applications Option=选项 List=列表 FullList=全部列表 @@ -387,7 +391,7 @@ ActionRunningNotStarted=等待 ActionRunningShort=In progress ActionDoneShort=已完成 ActionUncomplete=未完成 -CompanyFoundation=公司/机构 +CompanyFoundation=公司/组织信息 ContactsForCompany=合伙人联系方式 ContactsAddressesForCompany=这个合伙人联系人/地址 AddressesForCompany=这个合伙人的地址 @@ -405,8 +409,9 @@ Generate=生成 Duration=为期 TotalDuration=总时间 Summary=摘要 -DolibarrStateBoard=统计 -DolibarrWorkBoard=工作任务看板 +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=可用的 NotYetAvailable=尚未提供 NotAvailable=不可用 @@ -434,7 +439,7 @@ Reportings=报告 Draft=草稿 Drafts=草稿 Validated=验证 -Opened=启动 +Opened=打开 New=新建 Discount=折扣 Unknown=未知 @@ -453,6 +458,7 @@ NextStep=下一步 Datas=数据 None=无 NoneF=无 +NoneOrSeveral=None or several Late=逾期 LateDesc=延迟的定义假如一条记录逾期或者取决于你的配置设定。请向管理员询问并从首页菜单->设置->警告菜单下修改相应设置。 Photo=图片 @@ -543,7 +549,7 @@ TotalQuantity=总数量 DateFromTo=从%s到%s DateFrom=第05期从% DateUntil=直到%s的 -Check=支票 +Check=检查 Uncheck=不检查 Internal=内部 External=外部 @@ -606,7 +612,8 @@ PartialWoman=局部的 TotalWoman=总计 NeverReceived=从未收到 Canceled=取消 -YouCanChangeValuesForThisListFromDictionarySetup=你可在设置->字典中更改此下拉列表值 +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=颜色 Documents=链接的文件 @@ -623,7 +630,7 @@ CurrentTheme=当前主题样式 CurrentMenuManager=当前后台管理菜单主题样式 Browser=浏览器 Layout=Layout -Screen=Screen +Screen=屏幕分辨率 DisabledModules=禁用模块 For=为 ForCustomer=对于客户 @@ -642,6 +649,7 @@ FreeLineOfType=自由选项类型 CloneMainAttributes=复制项目含主属性 PDFMerge=PDF合并 Merge=合并 +DocumentModelStandardPDF=Standard PDF template PrintContentArea=打印中间大区域中显示的文字内容 MenuManager=菜单管理器 WarningYouAreInMaintenanceMode=警告,你是在维护模式,因此,目前只有登陆%s才被允许使用应用。 @@ -702,12 +710,13 @@ Test=测试 Element=元素 NoPhotoYet=还没有图片 Dashboard=看板 -MyDashboard=My dashboard +MyDashboard=个人看板 Deductible=可抵扣 from=从 toward=往 Access=访问 SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=按快捷键 Ctrl+C 复制 SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=原始文件名 @@ -718,7 +727,7 @@ ViewPrivateNote=查看备注 XMoreLines=%s 明细(s) 隐藏 PublicUrl=公网URL AddBox=添加选项框 -SelectElementAndClickRefresh=选择元素然后点击刷新 +SelectElementAndClick=Select an element and click %s PrintFile=打印文件 %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=点击菜单 主页 -> 设置 -> 公司 来修改LOGO或 主页 -> 设置 -> 显示菜单隐藏它。 @@ -734,8 +743,8 @@ Hello=你好 Sincerely=诚恳地 DeleteLine=删除行 ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=批量动作生成文件区 ShowTempMassFilesArea=显示批量动作生成文件区 @@ -755,11 +764,20 @@ Calendar=日历 GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=财务年度 +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=星期一 Tuesday=星期二 @@ -817,5 +835,3 @@ SearchIntoContracts=合同 SearchIntoCustomerShipments=客户运输 SearchIntoExpenseReports=费用报表 SearchIntoLeaves=请假 - -BulkActions=Bulk actions diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index 3f8ee552a68..9820e25f517 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -9,6 +9,19 @@ BirthdayDate=生日 DateToBirth=生日 BirthdayAlertOn=生日提醒活跃 BirthdayAlertOff=生日提醒无效 +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=添加联络人到干预 Notify_FICHINTER_VALIDATE=干预验证 Notify_FICHINTER_SENTBYMAIL=通过邮件发送的干预 @@ -61,13 +74,14 @@ PredefinedMailTestHtml=This is a test mail (the word test must be in bold PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\n你将在这里找到询价申请 __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=选择最适合您所需的演示配置文件… ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=认证模式是 %s
在 EnableGDLibraryDesc=这个选项安装或启用PHP的GD支持库。 ProfIdShortDesc=Prof Id %s 取决于合伙人的国别。
例如,对于%s, 它的代码是%s.。 DolibarrDemo=Dolibarr的ERP / CRM的演示 -StatsByNumberOfUnits=统计的产品/服务单位数目 -StatsByNumberOfEntities=统计中所指的实体数量 -NumberOfProposals=过去12个月的报价数量 -NumberOfCustomerOrders=过去12个月客户订单数 -NumberOfCustomerInvoices=过去12个月客户发票数量 -NumberOfSupplierProposals=过去12个月供应商报价数 -NumberOfSupplierOrders=过去12个月的供应商订单数 -NumberOfSupplierInvoices=去年供应商发票数 -NumberOfUnitsProposals=过去12个月的报价单位数量 -NumberOfUnitsCustomerOrders=过去12个月客户订单单位数量 -NumberOfUnitsCustomerInvoices=过去12个月客户发票单位数量 -NumberOfUnitsSupplierProposals=过去12个月供应商报价单位数量 -NumberOfUnitsSupplierOrders=过去12个月供应商订单单位数量 -NumberOfUnitsSupplierInvoices=去年供应商发票单位数量 +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=你有一个新干预%s任务。 EMailTextInterventionValidated=干预%s已被验证。 EMailTextInvoiceValidated=发票%s已被确认。 diff --git a/htdocs/langs/zh_CN/projects.lang b/htdocs/langs/zh_CN/projects.lang index af1709bdaf9..a0e636e1e8a 100644 --- a/htdocs/langs/zh_CN/projects.lang +++ b/htdocs/langs/zh_CN/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=项目区 ProjectStatus=项目状态 SharedProject=全体同仁 PrivateProject=项目联系人 +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=所有项目 MyProjectsDesc=这种观点是有限的项目你是一个接触(不管是类型)。 ProjectsPublicDesc=这种观点提出了所有你被允许阅读的项目。 TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=这种观点提出的所有项目和任务(您的用户权限批准 AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=新建项目 AddProject=创建项目 DeleteAProject=删除一个项目 DeleteATask=删除任务 ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=打开项目 +OpenedTasks=打开任务 +OpportunitiesStatusForOpenedProjects=按有效项目状态机会值 OpportunitiesStatusForProjects=按项目状态机会值 ShowProject=显示项目 SetProject=设置项目 NoProject=没有项目或拥有的定义 NbOfProjects=项目数量 +NbOfTasks=Nb of tasks TimeSpent=花费的时间 TimeSpentByYou=你花费的时间 TimeSpentByUser=用户花费时间 @@ -47,9 +52,9 @@ TaskTimeSpent=任务花费时间 TaskTimeUser=用户 TaskTimeNote=备注 TaskTimeDate=日期 -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=打开项目任务 WorkloadNotDefined=工作量没有定义 -NewTimeSpent=新的时间 +NewTimeSpent=所花费的时间 MyTimeSpent=我的时间花 Tasks=任务 Task=任务 @@ -59,6 +64,7 @@ TaskDescription=任务描述 NewTask=新建任务 AddTask=创建任务 AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=活动 Activities=任务/活动 MyActivities=我的任务/活动 @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=项目有关的合同列表 +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=项目相关的干预措施列表 ListExpenseReportsAssociatedProject=项目相关费用报销列表 ListDonationsAssociatedProject=项目相关捐款列表 @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=项目联系人 ActionsOnProject=项目活动 YouAreNotContactOfProject=你是不是这个私人项目联系 +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=删除的时间 ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=查看未分配给我的任务 @@ -110,7 +118,7 @@ TaskRessourceLinks=资源 ProjectsDedicatedToThisThirdParty=这个项目致力于合伙人 NoTasks=该项目没有任务 LinkedToAnotherCompany=链接到其他合伙人 -TaskIsNotAffectedToYou=未分配给你的任务 +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=所花费的时间是空的 ThisWillAlsoRemoveTasks=这一行动也将删除所有项目任务 (%s 任务的时刻) ,花全部的时间都投入。 IfNeedToUseOhterObjectKeepEmpty=如果某些对象(发票,订单,...),属于其他合伙人,必须与该项目以创建,保持这个空项目多的合伙人。 @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=输入天数 InputPerWeek=输入周数 InputPerAction=输入动作 -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=项目的用户作为联系人 TasksWithThisUserAsContact=任务分配给这个用户 ResourceNotAssignedToProject=未分配到项目 ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=分配任务给自己 +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=分配 ProjectOverview=概览 ManageTasks=用项目跟进任务和工时 ManageOpportunitiesStatus=用项目跟进机会/线索 ProjectNbProjectByMonth=按月份筛选创建项目数 +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=按月的机会加权数值 ProjectOpenedProjectByOppStatus=按机会状态打开项目/线索 ProjectsStatistics=统计项目/线索 +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=机会数值总计 OpportunityPonderatedAmount=机会加权数值 diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index 1a2bcb9820c..115e212c047 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -26,27 +26,31 @@ InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account OtherInfo=Other information +DeleteCptCategory=Remove accounting account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making thee journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... + +AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s -AccountancyAreaDescBank=STEP %s: Check the binding between bank accounts and accounting account is done. Complete missing bindings. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescVat=STEP %s: Check the binding between vat rates and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescExpenseReport=STEP %s: Check the binding between type of expense report and accounting account is done. Complete missing bindings. You can set accounting accounts to use for each VAT from page %s. -AccountancyAreaDescSal=STEP %s: Check the binding between salaries payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Check the binding between special expences (miscellaneous taxes) and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Check the binding between donation and accounting account is done. Complete missing bindings. You can set the account dedicated for that from the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Check the default binding between miscellaneous transaction lines and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescProd=STEP %s: Check the binding between products/services and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Check the binding between loans payment and accounting account is done. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescCustomer=STEP %s: Check the binding between existing customer invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescSupplier=STEP %s: Check the binding between existing supplier invoice lines and accounting account is done, so application will be able to journalize transactions in General Ledger in one click. Complete missing bindings. For this you can use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the General Ledger. For this, go into each Journal, and click into button "Journalize transactions in General Ledger". +AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. + +AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. @@ -57,6 +61,10 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account +SubledgerAccount=Subledger Account +subledger_account=Subledger Account +ShowAccountingAccount=Show accounting account +ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested MenuDefaultAccounts=Default accounts MenuVatAccounts=Vat accounts @@ -71,8 +79,8 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in General Ledger -Bookkeeping=General ledger +WriteBookKeeping=Journalize transactions in Ledger +Bookkeeping=Ledger AccountBalance=Account balance CAHTF=Total purchase supplier before tax @@ -103,9 +111,9 @@ ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding don ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts -ACCOUNTING_MANAGE_ZERO=Manage the zero at the end of an accounting account. Needed by some countries. Disabled by default. If set to on, you must also set the 2 following parameters (or it is ignored) +ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account ACCOUNTING_SELL_JOURNAL=Sell journal @@ -132,19 +140,19 @@ Sens=Sens Codejournal=Journal NumPiece=Piece number TransactionNumShort=Num. transaction -AccountingCategory=Accounting category +AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account NotMatch=Not Set -DeleteMvt=Delete general ledger lines +DeleteMvt=Delete Ledger lines DelYear=Year to delete DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the general ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the general ledger -DelBookKeeping=Delete record of the general ledger +ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. +ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger +DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the General Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined @@ -156,13 +164,13 @@ NewAccountingMvt=New transaction NumMvts=Numero of transaction ListeMvts=List of movements ErrorDebitCredit=Debit and Credit cannot have a value at the same time - +AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts ListAccounts=List of the accounting accounts Pcgtype=Class of account -Pcgsubtype=Under class of account +Pcgsubtype=Subclass of account TotalVente=Total turnover before tax TotalMarge=Total sales margin @@ -186,9 +194,9 @@ AutomaticBindingDone=Automatic binding done ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this accounting account because it is used MvtNotCorrectlyBalanced=Mouvement not correctly balanced. Credit = %s. Debit = %s FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the general ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be recorded. -NoNewRecordSaved=No new record saved +GeneralLedgerIsWritten=Transactions are written in the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +NoNewRecordSaved=No new record dispatched ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account ChangeBinding=Change the binding @@ -196,6 +204,18 @@ ChangeBinding=Change the binding ApplyMassCategories=Apply mass categories AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed +AccountingJournals=Accounting journals +AccountingJournal=Accounting journal +NewAccountingJournal=New accounting journal +ShowAccoutingJournal=Show accounting journal +Code=碼 +Nature=類型 +AccountingJournalType1=Various operation +AccountingJournalType2=可否銷售 +AccountingJournalType3=可否採購 +AccountingJournalType4=银行 +AccountingJournalType9=Has-new +ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports @@ -211,6 +231,7 @@ Modelcsv_ciel=Export towards Sage Ciel Compta or Compta Evolution Modelcsv_quadratus=Export towards Quadratus QuadraCompta Modelcsv_ebp=Export towards EBP Modelcsv_cogilog=Export towards Cogilog +Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id ## Tools - Init accounting account on product / service @@ -235,11 +256,12 @@ Calculated=Calculated Formula=Formula ## Error -ErrorNoAccountingCategoryForThisCountry=No accounting category available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) ExportNotSupported=The export format setuped is not supported into this page BookeppingLineAlreayExists=Lines already existing into bookeeping - +NoJournalDefined=No journal defined Binded=Lines bound ToBind=Lines to bind -WarningReportNotReliable=Warning, this report is not based on the General Ledger, so is not reliable yet. It will be replaced by a correct report in a next version. +WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index e7c2a08d03f..e289bce6a50 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -48,6 +48,7 @@ InternalUsers=公司員工用戶 ExternalUsers=非公司員工用戶 GUISetup=人機介面 SetupArea=安裝面積 +UploadNewTemplate=Upload new template(s) FormToTestFileUploadForm=測試文件的形式上傳(根據設置) IfModuleEnabled=註:是的,是有效的,只有模組%s是啟用 RemoveLock=刪除檔案 %s ,如果此檔案是因為升級工具產生的。 @@ -85,7 +86,7 @@ Mask=遮罩 NextValue=下一個產生的值 NextValueForInvoices=下一個發票(invoice)編碼值 NextValueForCreditNotes=下一個信用債券編碼值 -NextValueForDeposit=Next value (deposit) +NextValueForDeposit=Next value (down payment) NextValueForReplacements=Next value (replacements) MustBeLowerThanPHPLimit=注意:你的PHP限制每個文件上傳的大小為%s%s的,不管這個參數的值 NoMaxSizeByPHPLimit=註:不限制設置在你的PHP配置 @@ -103,7 +104,7 @@ MenuIdParent=父菜單編號 DetailMenuIdParent=家長菜單(0編號為頂級菜單) DetailPosition=分類編號,以確定菜單位置 AllMenus=所有 -NotConfigured=未配置 +NotConfigured=Module/Application not configured Active=活躍 SetupShort=設定 OtherOptions=其他選項 @@ -113,7 +114,6 @@ CurrentValueSeparatorThousand=千位分隔符 Destination=Destination IdModule=Module ID IdPermissions=Permissions ID -Modules=模組 LanguageBrowserParameter=%s的參數 LocalisationDolibarrParameters=本地化參數 ClientTZ=使用者時區 @@ -123,7 +123,8 @@ PHPTZ=PHP伺服器時區 DaylingSavingTime=夏令時間(用戶) CurrentHour=當前 PHP伺服器時間 CurrentSessionTimeOut=當前會話超時 -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htacces with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=小工具 Boxes=小工具 MaxNbOfLinesForBoxes=Max number of lines for widgets @@ -189,7 +190,7 @@ FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=權限 BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=只有被 modules.php 所啟用的模組才會顯示。 -ModulesDesc=Dolibarr modules define which functionality is enabled in software. Some modules require permissions you must grant to users, after enabling module. Click on button on/off to enable a module/feature. +ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. ModulesMarketPlaces=Find external modules... @@ -213,7 +214,7 @@ MainDbPasswordFileConfEncrypted=數據庫密碼conf.php加密(活性炭推薦 InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=保護生成的PDF文件(活性不推薦,休息質量PDF生成) -ProtectAndEncryptPdfFilesDesc=一個PDF文檔保護不斷提供給閲讀和打印任何的PDF瀏覽器。然而,編輯和複製是不可能的了。請注意,使用此功能使全球累計PDF格式的建設工作不喜歡未付發票()。 +ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. Feature=功能特色 DolibarrLicense=授權 Developpers=開發商/貢獻者 @@ -224,7 +225,9 @@ OfficialDemo=Dolibarr在線演示 OfficialMarketPlace=官方/插件外部模組市場 OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners -OtherResources=Autres ressources +OtherResources=Other resources +ExternalResources=External resources +SocialNetworks=Social Networks ForDocumentationSeeWiki=對於用戶或開發人員的文件(文檔,常見問題...),
看一看在Dolibarr維基看看:
%s的 ForAnswersSeeForum=對於任何其他問題/幫助,您可以使用Dolibarr論壇:
%s的 HelpCenterDesc1=這方面可以幫助你獲得一個Dolibarr幫助支持服務。 @@ -267,7 +270,7 @@ FeatureNotAvailableOnLinux=功能不可用在Unix類系統。在本地測試您 SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=模組設置 -ModulesSetup=模組設置 +ModulesSetup=Modules/Application setup ModuleFamilyBase=系統 ModuleFamilyCrm=客戶關係管理(CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -300,14 +303,17 @@ CurrentVersion=此系統軟體(Dolibarr)目前版本 CallUpdatePage=Go to the page that updates the database structure and data: %s. LastStableVersion=Latest stable version LastActivationDate=Latest activation date +LastActivationAuthor=Latest activation author +LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline +WithCounter=Manage a counter GenericMaskCodes=這個編碼模組使用方式如下:
1. {000000}表示每個 %s 編碼會依據此參數產生序號字串,且會自動遞增。有多少個0就表示序號字串有多長,滿最大值會自動歸0。
2. {000000+000} 同上面第一條,但是多了 offset 功能,也就第一筆 %s 編碼的起始序號會根據 + 號後面的參數而定。
3. {000000@x} 同上面第一條,但是每當為新的月份時,會將序號歸0。如果使用兩個x 則必需要有 {yy}{mm} 或 {yyyy}{mm} 參數。
{dd} 表示天 (01 to 31).
{mm} 表示月 (01 to 12)
{yy}, {yyyy} or {y} 表示用多少位數顯示年
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see dictionary-thirdparty types).
+GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
GenericMaskCodes3=非遮罩字元的則該字元維持不變,也就是 A 就是 A,Z 就是 Z
注意:不允許空白字元
-GenericMaskCodes4a=例如: 第99筆 %s 資訊於 2007-01-31 建立完成:
+GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=例如: 於 2007-01-31 建立的客戶/供應商資訊:
GenericMaskCodes4c=Example on product created on 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX +GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' GenericNumRefModelDesc=根據事先定義的遮罩值,回傳一個客制化的編號,詳細可參照說明。 ServerAvailableOnIPOrPort=服務器可在地址%s%s的連接埠上 ServerNotAvailableOnIPOrPort=服務器而不是%可在地址港口%s對 @@ -369,19 +375,21 @@ Int=Integer Float=Float DateAndTime=日期時間 Unique=Unique -Boolean=Boolean (Checkbox) +Boolean=Boolean (one checkbox) ExtrafieldPhone = 電話 ExtrafieldPrice = 價格 ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select list ExtrafieldSelectList = Select from table -ExtrafieldSeparator=Separator +ExtrafieldSeparator=Separator (not a field) ExtrafieldPassword=密碼 -ExtrafieldCheckBox=Checkbox -ExtrafieldRadio=Radio button -ExtrafieldCheckBoxFromList= Checkbox from table +ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldCheckBox=Checkboxes +ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object +ComputedFormula=Computed field +ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
...

In order to have the list depending on another complementary attribute list :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

In order to have the list depending on another list :
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=Parameters list have to be like key,value

for example :
1,value1
2,value2
3,value3
... @@ -422,6 +430,20 @@ Use3StepsApproval=By default, Purchase Orders need to be created and approved by UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description +DependsOn=This module need the module(s) +RequiredBy=This module is required by module(s) +TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. +PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s +PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +EnableDefaultValues=Enable usage of personalized default values +EnableOverwriteTranslation=Enable usage of overwrote translation +GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. +WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +Field=欄位 +ProductDocumentTemplates=Document templates to generate product document +FreeLegalTextOnExpenseReports=Free legal text on expense reports +WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=用戶和組 Module0Desc=Users / Employees and Groups management @@ -444,7 +466,7 @@ Module30Desc=客戶發票(invoice)和票據(credit note)的管理。供應商發 Module40Name=供應商 Module40Desc=供應商的管理和採購管理(訂單和發票) Module42Name=系統日誌 -Module42Desc=測井設備(系統日誌) +Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. Module49Name=編輯 Module49Desc=編輯器的管理 Module50Name=產品 @@ -499,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar一體化 Module500Name=Special expenses Module500Desc=Management of special expenses (taxes, social or fiscal taxes, dividends) -Module510Name=Employee contracts and salaries -Module510Desc=Management of employees contracts, salaries and payments +Module510Name=Payment of employee wages +Module510Desc=Record and follow payment of your employee wages Module520Name=Loan Module520Desc=Management of loans Module600Name=通知 @@ -542,8 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=geoip的Maxmind轉換能力 Module3100Name=Skype Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3200Name=Non Reversible Logs +Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM -Module4000Desc=Human resources management +Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) Module5000Name=多公司 Module5000Desc=允許你管理多個公司 Module6000Name=Workflow @@ -591,7 +615,7 @@ Permission32=建立/修改產品資訊 Permission34=刪除產品資訊 Permission36=查看/隱藏產品管理 Permission38=匯出產品資訊 -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed on assigned tasks (timesheet) +Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks Permission44=刪除項目(共享的項目和項目我聯繫) Permission45=Export projects @@ -844,12 +868,14 @@ DictionaryOrderMethods=排列方法 DictionarySource=訂單來源方式 DictionaryAccountancyCategory=Accounting account groups DictionaryAccountancysystem=Models for chart of accounts +DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Emails templates DictionaryUnits=單位 DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=設定值已儲存 +SetupNotSaved=Setup not saved BackToModuleList=返回模組列表 BackToDictionaryList=回到設定選項列表 VATManagement=營業稅管理 @@ -921,7 +947,7 @@ Host=服務器 DriverType=驅動類型 SummarySystem=系統資訊摘要 SummaryConst=列出所有Dolibarr設置參數 -MenuCompanySetup=公司資訊 +MenuCompanySetup=Company/Organisation DefaultMenuManager= 標準菜單管理 DefaultMenuSmartphoneManager=智能手機菜單管理 Skin=佈景主題 @@ -931,12 +957,14 @@ DefaultMaxSizeList=Default max length for lists DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=消息的一天 MessageLogin=登錄頁的信息 +LoginPage=Login page +BackgroundImageLogin=Background image PermanentLeftSearchForm=常駐左搜尋列表菜單 DefaultLanguage=預設語言使用(語言代碼) EnableMultilangInterface=啟用多語言界面 EnableShowLogo=在菜單上顯示的標誌 -CompanyInfo=公司/基本資訊 -CompanyIds=公司/基本ID +CompanyInfo=Company/organisation information +CompanyIds=Company/organisation identities CompanyName=名稱 CompanyAddress=地址 CompanyZip=郵遞區號 @@ -969,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerance delay (in days) before alert on delayed memb Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerance delay (in days) before alert for cheques deposit to do Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=The setup area is for initial setup parameters before starting to use Dolibarr. -SetupDescription2=The two most important setup steps are the first two in the setup menu on the left: Company/foundation setup page and Modules setup page: -SetupDescription3=Parameters in menu Setup -> Company/foundation are required because submitted data are used on Dolibarr displays and to customize the default behaviour of the software (for country-related features for example). -SetupDescription4=Parameters in menu Setup -> Modules are required because Dolibarr is not a monolithic ERP/CRM but a collection of several modules, all more or less independent. New features will be added to menus for every module you'll enable. +SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : +SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). +SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. SetupDescription5=其他菜單項管理可選參數。 LogEvents=安全稽核事件 Audit=安全稽核 @@ -987,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=安全事件清單 SecurityEventsPurged=安全事件清除 LogEventDesc=在這裡您可以啟用的Dolibarr安全事件日誌記錄。管理員就可以看到它的菜單內容,通過系統工具-稽核 。警告,此功能可以在數據庫中消耗了大量數據。 -AreaForAdminOnly=這些功能都可以使用管理員用戶 。 +AreaForAdminOnly=Setup parameters can be set by administrator users only. SystemInfoDesc=只有系統管理員可以取得系統資訊。 SystemAreaForAdminOnly=此區是只給具有管理員權限的使用者。在此系統軟體中,這是必要的限制。 CompanyFundationDesc=Edit on this page all known information of the company or foundation you need to manage (For this, click on "Modify" or "Save" button at bottom of page) @@ -1079,11 +1107,12 @@ CurrentTranslationString=Current translation string WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s -TotalNumberOfActivatedModules=Total number of activated feature modules: %s / %s +TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files +TotalNumberOfActivatedModules=Activated application/modules: %s / %s YouMustEnableOneModule=You must at least enable 1 module ClassNotFoundIntoPathWarning=Class %s not found into PHP path YesInSummer=Yes in summer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are open to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: SuhosinSessionEncrypt=Session storage encrypted by Suhosin ConditionIsCurrently=Condition is currently %s YouUseBestDriver=You use driver %s that is best driver available currently. @@ -1129,12 +1158,14 @@ CompanyIdProfChecker=專業術語欄位ID是否獨一無二 MustBeUnique=Must be unique? MustBeMandatory=Mandatory to create third parties? MustBeInvoiceMandatory=Mandatory to validate invoices? +TechnicalServicesProvided=Technical services provided ##### Webcal setup ##### WebCalUrlForVCalExport=出口連接到%s格式可在以下連結:%s的 ##### Invoices ##### BillsSetup=發票模組設置 BillsNumberingModule=發票編號和信用票據模組 BillsPDFModules=發票文件範本 +PaymentsPDFModules=Payment documents models CreditNote=信用注意 CreditNotes=信用票據 ForceInvoiceDate=強制使用驗證日期為發票(invoice)日期 @@ -1327,9 +1358,16 @@ FilesOfTypeNotCached=Files of type %s are not cached by HTTP server FilesOfTypeCompressed=Files of type %s are compressed by HTTP server FilesOfTypeNotCompressed=Files of type %s are not compressed by HTTP server CacheByServer=Cache by server +CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Cache by browser CompressionOfResources=Compression of HTTP responses +CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Such an automatic detection is not possible with current browsers +DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. +DefaultCreateForm=Default values for new objects +DefaultSearchFilters=Default search filters +DefaultSortOrder=Default sort orders +DefaultFocus=Default focus fields ##### Products ##### ProductSetup=產品模組設置 ServiceSetup=服務模組的設置 @@ -1464,7 +1502,7 @@ SupposedToBeInvoiceDate=使用的發票日期 Buy=購買 Sell=出售 InvoiceDateUsed=使用的發票日期 -YourCompanyDoesNotUseVAT=貴公司已被定義為不使用增值稅(首頁 - 安裝 - 公司/基金會),所以沒有設置增值稅的選擇。 +YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. AccountancyCode=會計準則 AccountancyCodeSell=Sale account. code AccountancyCodeBuy=Purchase account. code @@ -1479,9 +1517,10 @@ AGENDA_DEFAULT_FILTER_STATUS=Set automatically this status for events into searc AGENDA_DEFAULT_VIEW=Which tab do you want to open by default when selecting menu Agenda AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) AGENDA_NOTIFICATION_SOUND=Enable sound notification +AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=點擊撥號模組設置 -ClickToDialUrlDesc=連結時調用一個電話象形點擊完成。丹斯l'網址,vous pouvez utiliser萊balises
%%1 $ s的誇血清remplacé電話桿樂德l' appelé
%%2 $ s的誇血清remplacé電話桿樂德l' appelant(樂votre)
%%3 $ s的誇血清remplacé桿votre登錄clicktodial(定義所涵蓋河畔votre膠片utilisateur)
%%4 $ s的誇血清remplacé桿votre摩托羅拉德過時clicktodial(定義所涵蓋河畔votre膠片utilisateur)。 +ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. @@ -1510,7 +1549,7 @@ EndPointIs=SOAP clients must send their requests to the Dolibarr endpoint availa ApiSetup=API module setup ApiDesc=By enabling this module, Dolibarr become a REST server to provide miscellaneous web services. ApiProductionMode=Enable production mode (this will activate use of a cache for services management) -ApiExporerIs=You can explore the APIs at url +ApiExporerIs=You can explore and test the APIs at URL OnlyActiveElementsAreExposed=Only elements from enabled modules are exposed ApiKey=Key for API WarningAPIExplorerDisabled=The API explorer has been disabled. API explorer is not required to provide API services. It is a tool for developer to find/test REST APIs. If you need this tool, go into setup of module API REST to activate it. @@ -1523,7 +1562,6 @@ BankOrderGlobalDesc=一般的顯示順序 BankOrderES=西班牙人 BankOrderESDesc=西班牙的顯示順序 ChequeReceiptsNumberingModule=Cheque Receipts Numbering module - ##### Multicompany ##### MultiCompanySetup=多模組安裝公司 ##### Suppliers ##### @@ -1582,12 +1620,12 @@ BackupDumpWizard=Wizard to build database backup dump file SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. -ConfFileMuseContainCustom=Installing an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over HighlightLinesColor=Highlight color of the line when the mouse passes over (keep empty for no highlight) TextTitleColor=Color of page title LinkColor=Color of links -PressF5AfterChangingThis=Press F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective NotSupportedByAllThemes=Will works with core themes, may not be supported by external themes BackgroundColor=Background color TopMenuBackgroundColor=Background color for Top menu @@ -1600,6 +1638,7 @@ MinimumNoticePeriod=Minimum notice period (Your leave request must be done befor NbAddedAutomatically=Number of days added to counters of users (automatically) each month EnterAnyCode=This field contains a reference to identify line. Enter any value of your choice, but without special characters. UnicodeCurrency=Enter here between braces, list of byte number that represent the currency symbol. For exemple: for $, enter [36] - for brazil real R$ [82,36] - for €, enter [8364] +ColorFormat=The RGB color is in HEX format, eg: FF0000 PositionIntoComboList=Position of line into combo lists SellTaxRate=Sale tax rate RecuperableOnly=Yes for VAT "Non Perçue Récupérable" dedicated for some state in France. Keep value to "No" in all other cases. @@ -1658,6 +1697,10 @@ SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choic ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") +BaseCurrency=Reference currency of the company (go into setup of company to change this) +WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). +WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. +WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### ResourceSetup=Configuration du module Resource UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). diff --git a/htdocs/langs/zh_TW/compta.lang b/htdocs/langs/zh_TW/compta.lang index e47375ad955..8505bf63968 100644 --- a/htdocs/langs/zh_TW/compta.lang +++ b/htdocs/langs/zh_TW/compta.lang @@ -13,8 +13,8 @@ LTReportBuildWithOptionDefinedInModule=Amounts shown here are calculated using r Param=格局 RemainingAmountPayment=付款金額其余: Account=帳戶 -Accountparent=Account parent -Accountsparent=Accounts parent +Accountparent=Parent account +Accountsparent=Parent accounts Income=收入 Outcome=費用 ReportInOut=收入/支出 @@ -56,6 +56,7 @@ MenuTaxAndDividends=稅和股息 MenuSocialContributions=Social/fiscal taxes MenuNewSocialContribution=New social/fiscal tax NewSocialContribution=New social/fiscal tax +AddSocialContribution=Add social/fiscal tax ContributionsToPay=Social/fiscal taxes to pay AccountancyTreasuryArea=財務/會計區 NewPayment=新的支付 @@ -134,8 +135,8 @@ RulesResultDue=- It includes outstanding invoices, expenses, VAT, donations whet RulesResultInOut=- It includes the real payments made on invoices, expenses, VAT and salaries.
- It is based on the payment dates of the invoices, expenses, VAT and salaries. The donation date for donation. RulesCADue=- It includes the client's due invoices whether they are paid or not.
- It is based on the validation date of these invoices.
RulesCAIn=- 它包括所有從客戶收到發票有效付款。
- 這是對這些發票的付款日期為基礎
-DepositsAreNotIncluded=- 存款發票,也不包括 -DepositsAreIncluded=- 存款發票 +DepositsAreNotIncluded=- Down payment invoices are nor included +DepositsAreIncluded=- Down payment invoices are included LT2ReportByCustomersInInputOutputModeES=報告由第三方IRPF LT1ReportByCustomersInInputOutputModeES=Report by third party RE VATReport=VAT report @@ -169,7 +170,7 @@ DescSellsJournal=銷售雜誌 DescPurchasesJournal=購買雜誌 InvoiceRef=發票編號。 CodeNotDef=沒有定義 -WarningDepositsNotIncluded=存款發票不包括在此版本與本會計模塊。 +WarningDepositsNotIncluded=Down payment invoices are not included in this version with this accountancy module. DatePaymentTermCantBeLowerThanObjectDate=Payment term date can't be lower than object date. Pcg_version=Chart of accounts models Pcg_type=Pcg type @@ -189,8 +190,10 @@ AccountancyJournal=Accountancy code journal ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - VAT on sales (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account by default for customer third parties (used if not defined on third party card) -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account by default for supplier third parties (used if not defined on third party card) +ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month @@ -205,3 +208,4 @@ ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found FiscalPeriod=Accounting period +ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/zh_TW/cron.lang b/htdocs/langs/zh_TW/cron.lang index d220e226056..15f6c089257 100644 --- a/htdocs/langs/zh_TW/cron.lang +++ b/htdocs/langs/zh_TW/cron.lang @@ -25,7 +25,7 @@ CronDelete=Delete scheduled jobs CronConfirmDelete=Are you sure you want to delete these scheduled jobs? CronExecute=Launch scheduled job CronConfirmExecute=Are you sure you want to execute these scheduled jobs now? -CronInfo=Scheduled job module allow to execute job that have been planned +CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. CronTask=Job CronNone=無 CronDtStart=Not before @@ -57,12 +57,12 @@ CronStatusActiveBtn=Enable CronStatusInactiveBtn=禁用 CronTaskInactive=This job is disabled CronId=Id -CronClassFile=Classes (filename.class.php) -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of module is product -CronClassFileHelp=The file name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is product.class.php -CronObjectHelp=The object name to load.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of class file name is Product -CronMethodHelp=The object method to launch.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of method is is fecth -CronArgsHelp=The method arguments.
For exemple to fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value of paramters can be 0, ProductRef +CronClassFile=Filename with class +CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product +CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php +CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product +CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth +CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef CronCommandHelp=The system command line to execute. CronCreateJob=Create new Scheduled Job CronFrom=From @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Go into menu "Home - Admin tools - Scheduled job JobDisabled=Job disabled MakeLocalDatabaseDumpShort=Local database backup MakeLocalDatabaseDump=Create a local database dump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of active jobs, your jobs may be delayed to a maximum of %s hours before being run. +WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. diff --git a/htdocs/langs/zh_TW/errors.lang b/htdocs/langs/zh_TW/errors.lang index 26f9692cb4b..4fe69b16b2f 100644 --- a/htdocs/langs/zh_TW/errors.lang +++ b/htdocs/langs/zh_TW/errors.lang @@ -18,6 +18,8 @@ ErrorFailToCreateFile=無法創建文件'%s'的。 ErrorFailToRenameDir=無法重命名目錄'%s'%s'的。 ErrorFailToCreateDir=無法創建目錄'%s'的。 ErrorFailToDeleteDir=無法刪除目錄'%s'的。 +ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToGenerateFile=Failed to generate file '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=這個聯絡已定義為這種類型的接觸。 ErrorCashAccountAcceptsOnlyCashMoney=這是一個銀行帳戶的現金帳戶,所以只接受現金支付的類型。 ErrorFromToAccountsMustDiffers=源和目標的銀行帳戶必須是不同的。 @@ -42,6 +44,7 @@ ErrorFailedToWriteInDir=無法寫在目錄%s ErrorFoundBadEmailInFile=找到%S的語法不正確的電子郵件文件中的行(例如行%的電子郵件s =%s)的 ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=一些必要的欄位都沒有填補。 +ErrorSubjectIsRequired=The email topic is required ErrorFailedToCreateDir=無法創建一個目錄。檢查Web服務器的用戶有權限寫入Dolibarr文件目錄。如果參數safe_mode設置為啟用這個PHP,檢查Dolibarr php文件到Web服務器的用戶擁有(或組)。 ErrorNoMailDefinedForThisUser=沒有郵件定義該用戶 ErrorFeatureNeedJavascript=此功能需要Javascript被激活的工作。更改此設置 - 顯示。 @@ -114,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Quantity for line into customer invoice ErrorWebServerUserHasNotPermission=%s用來執行Web服務器用戶帳戶沒有該權限 ErrorNoActivatedBarcode=沒有激活的條碼類型 ErrUnzipFails=Failed to unzip %s with ZipArchive -ErrNoZipEngine=No engine to unzip %s file in this PHP +ErrNoZipEngine=No engine to zip/unzip %s file in this PHP ErrorFileMustBeADolibarrPackage=The file %s must be a Dolibarr zip package ErrorModuleFileRequired=You must select a Dolibarr module package file ErrorPhpCurlNotInstalled=The PHP CURL is not installed, this is essential to talk with Paypal @@ -165,6 +168,7 @@ ErrorGlobalVariableUpdater5=No global variable selected ErrorFieldMustBeANumeric=Field %s must be a numeric value ErrorMandatoryParametersNotProvided=Mandatory parameter(s) not provided ErrorOppStatusRequiredIfAmount=You set an estimated amount for this opportunity/lead. So you must also enter its status +ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Bad Definition Of Menu Array In Module Descriptor (bad value for key fk_menu) ErrorSavingChanges=An error has ocurred when saving the changes ErrorWarehouseRequiredIntoShipmentLine=Warehouse is required on the line to ship @@ -177,13 +181,19 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Stock is not enough for product %s t ErrorStockIsNotEnoughToAddProductOnProposal=Stock is not enough for product %s to add it into a new proposal. ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. ErrorModuleNotFound=File of module was not found. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source bank line %s +ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) +ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) ErrorBankStatementNameMustFollowRegex=Error, bank statement name must follow the following syntax rule %s ErrorPhpMailDelivery=Check that you don't use a too high number of recipients and that your email content is not similar to a Spam. Ask also your administrator to check firewall and server logs files for a more complete information. ErrorUserNotAssignedToTask=User must be assigned to task to be able to enter time consumed. ErrorTaskAlreadyAssigned=Task already assigned to user ErrorModuleFileSeemsToHaveAWrongFormat=The module package seems to have a wrong format. ErrorFilenameDosNotMatchDolibarrPackageRules=The name of the module package (%s) does not match expected name syntax: %s +ErrorDuplicateTrigger=Error, duplicate trigger name %s. Already loaded from %s. +ErrorNoWarehouseDefined=Error, no warehouses defined. +ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. # Warnings WarningPasswordSetWithNoAccount=A password was set for this member. However, no user account was created. So this password is stored but can't be used to login to Dolibarr. It may be used by an external module/interface but if you don't need to define any login nor password for a member, you can disable option "Manage a login for each member" from Member module setup. If you need to manage a login but don't need any password, you can keep this field empty to avoid this warning. Note: Email can also be used as a login if the member is linked to a user. @@ -204,3 +214,4 @@ WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. WarningSomeLinesWithNullHourlyRate=Some times were recorded by some users while their hourly rate was not defined. A value of 0 %s per hour was used but this may result in wrong valuation of time spent. WarningYourLoginWasModifiedPleaseLogin=Your login was modified. For security purpose you will have to login with your new login before next action. +WarningAnEntryAlreadyExistForTransKey=An entry already exists for the translation key for this language diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index 7a67ec9df40..0c02e3e3c79 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=不是定義的參數% ErrorUnknown=未知錯誤 ErrorSQL=SQL錯誤 ErrorLogoFileNotFound=徽標文件'%s'沒有找到 -ErrorGoToGlobalSetup=到'公司/基金會的設置來解決此 +ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this ErrorGoToModuleSetup=前往模塊設置來解決此 ErrorFailedToSendMail=錯誤!無法傳送郵件(寄件人=%s、收件人=%s)。 ErrorFileNotUploaded=文件沒有上傳。檢查大小不超過允許的最大值,即在磁盤上的可用空間是可用和有沒有這已經與in這個目錄同名文件。 @@ -153,6 +153,7 @@ Edit=編輯 Validate=確認 ValidateAndApprove=確認核准 ToValidate=為了驗證 +NotValidated=Not validated Save=儲存 SaveAs=另存為 TestConnection=測試連接 @@ -222,6 +223,7 @@ NoLogoutProcessWithAuthMode=No applicative disconnect feature with authenticatio Connection=連接 Setup=設定 Alert=提示 +MenuWarnings=其他快訊資訊 Previous=前一筆 Next=下一筆 Cards=資訊卡 @@ -308,6 +310,7 @@ Copy=複製 Paste=貼上 Default=預設 DefaultValue=預設值 +DefaultValues=Default values Price=價格 UnitPrice=單價 UnitPriceHT=單位價格(凈值) @@ -363,7 +366,8 @@ VATRate=營業稅率 Average=平均 Sum=總和 Delta=三角洲 -Module=模組 +Module=Module/Application +Modules=Modules/Applications Option=選項 List=清單列表 FullList=全部列表 @@ -387,7 +391,7 @@ ActionRunningNotStarted=未開始 ActionRunningShort=In progress ActionDoneShort=成品 ActionUncomplete=Uncomplete -CompanyFoundation=公司資訊設定 +CompanyFoundation=Company/Organisation ContactsForCompany=聯系方式/不會忽略這個第三者 ContactsAddressesForCompany=此客戶(供應商)的聯絡人及地址清單 AddressesForCompany=Addresses for this third party @@ -405,8 +409,9 @@ Generate=產生 Duration=為期 TotalDuration=總時間 Summary=摘要 -DolibarrStateBoard=統計 -DolibarrWorkBoard=任務工作板 +DolibarrStateBoard=Database statistics +DolibarrWorkBoard=Open items dashboard +NoOpenedElementToProcess=No opened element to process Available=可用的 NotYetAvailable=尚未提供 NotAvailable=不適用 @@ -434,7 +439,7 @@ Reportings=報表 Draft=草案 Drafts=草稿 Validated=驗證 -Opened=開業 +Opened=開放 New=新 Discount=折扣 Unknown=未知 @@ -453,6 +458,7 @@ NextStep=下一步 Datas=數據 None=無 NoneF=無 +NoneOrSeveral=None or several Late=最新 LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. Photo=圖片 @@ -606,7 +612,8 @@ PartialWoman=部分 TotalWoman=全部 NeverReceived=從未收到 Canceled=取消 -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu setup - dictionary +YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries +YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup Color=彩色 Documents=附加檔案 @@ -642,6 +649,7 @@ FreeLineOfType=Free entry of type CloneMainAttributes=複製的對象,其主要屬性 PDFMerge=合併PDF Merge=合併 +DocumentModelStandardPDF=Standard PDF template PrintContentArea=全螢幕顯示資訊區 MenuManager=Menu manager WarningYouAreInMaintenanceMode=警告,你是在維護模式,因此,只有登錄%s是允許使用在目前的應用。 @@ -708,6 +716,7 @@ from=從 toward=toward Access=Access SelectAction=Select action +SelectTargetUser=Select target user/employee HelpCopyToClipboard=按 Ctrl+C 複製 SaveUploadedFileWithMask=Save file on server with name "%s" (otherwise "%s") OriginFileName=原始檔名 @@ -718,7 +727,7 @@ ViewPrivateNote=View notes XMoreLines=%s line(s) hidden PublicUrl=公開網址 AddBox=Add box -SelectElementAndClickRefresh=Select an element and click Refresh +SelectElementAndClick=Select an element and click %s PrintFile=列印檔案 %s ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. @@ -734,8 +743,8 @@ Hello=Hello Sincerely=敬祝商祺 DeleteLine=Delete line ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked records -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s records. +NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record +TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions @@ -755,11 +764,20 @@ Calendar=日歷 GroupBy=Group by... ViewFlatList=View flat list RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to http://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Direct download link Download=Download ActualizeCurrency=Update currency rate Fiscalyear=Fiscal year +ModuleBuilder=Module Builder +SetMultiCurrencyCode=Set currency +BulkActions=Bulk actions +ClickToShowHelp=Click to show tooltip help +HR=HR +HRAndBank=HR and Bank +AutomaticallyCalculated=Automatically calculated +TitleSetToDraft=Go back to draft +ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=星期一 Tuesday=星期二 @@ -817,5 +835,3 @@ SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports SearchIntoLeaves=休假 - -BulkActions=Bulk actions diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index 412a760ea54..7a10c5cad7a 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -9,6 +9,19 @@ BirthdayDate=Birthday date DateToBirth=出生日期 BirthdayAlertOn=生日提醒活躍 BirthdayAlertOff=生日提醒無效 +TransKey=Translation of the key TransKey +MonthOfInvoice=Month (number 1-12) of invoice date +TextMonthOfInvoice=Month (tex) of invoice date +PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date +TextPreviousMonthOfInvoice=Previous month (text) of invoice date +NextMonthOfInvoice=Following month (number 1-12) of invoice date +TextNextMonthOfInvoice=Following month (text) of invoice date +ZipFileGeneratedInto=Zip file generated into %s. + +YearOfInvoice=Year of invoice date +PreviousYearOfInvoice=Previous year of invoice date +NextYearOfInvoice=Following year of invoice date + Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention Notify_FICHINTER_VALIDATE=幹預驗證 Notify_FICHINTER_SENTBYMAIL=Intervention sent by mail @@ -61,13 +74,14 @@ PredefinedMailTestHtml=這是一個測試郵件(單詞測試必須大 PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=__CONTACTCIVNAME__\n\nWe would like to warn you that the invoice __REF__ seems to not being payed. So this is the invoice in attachment again, as a reminder.\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nYou will find here the commercial proposal __PROPREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __ASKREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nYou will find here the order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nYou will find here our order __ORDERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the shipping __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. ChooseYourDemoProfil=Choose the demo profile that best suits your needs... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) @@ -146,20 +160,20 @@ AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
教授ID為%s是一個國家的信息取決於第三方。
例如,對於國家的%s,它的代碼的%s。 DolibarrDemo=Dolibarr的ERP / CRM的演示 -StatsByNumberOfUnits=根據單位數統計的產品/服務 -StatsByNumberOfEntities=根據實體數統計的產品/服務 -NumberOfProposals=Number of proposals in past 12 months -NumberOfCustomerOrders=Number of customer orders in past 12 months -NumberOfCustomerInvoices=Number of customer invoices in past 12 months -NumberOfSupplierProposals=Number of supplier proposals in past 12 months -NumberOfSupplierOrders=Number of supplier orders in past 12 months -NumberOfSupplierInvoices=Number of supplier invoices in past 12 months -NumberOfUnitsProposals=Number of units on proposals in past 12 months -NumberOfUnitsCustomerOrders=Number of units on customer orders in past 12 months -NumberOfUnitsCustomerInvoices=Number of units on customer invoices in past 12 months -NumberOfUnitsSupplierProposals=Number of units on supplier proposals in past 12 months -NumberOfUnitsSupplierOrders=Number of units on supplier orders in past 12 months -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices in past 12 months +StatsByNumberOfUnits=Statistics for sum of qty of products/services +StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +NumberOfProposals=Number of proposals +NumberOfCustomerOrders=Number of customer orders +NumberOfCustomerInvoices=Number of customer invoices +NumberOfSupplierProposals=Number of supplier proposals +NumberOfSupplierOrders=Number of supplier orders +NumberOfSupplierInvoices=Number of supplier invoices +NumberOfUnitsProposals=Number of units on proposals +NumberOfUnitsCustomerOrders=Number of units on customer orders +NumberOfUnitsCustomerInvoices=Number of units on customer invoices +NumberOfUnitsSupplierProposals=Number of units on supplier proposals +NumberOfUnitsSupplierOrders=Number of units on supplier orders +NumberOfUnitsSupplierInvoices=Number of units on supplier invoices EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. EMailTextInterventionValidated=幹預%s已被驗證。 EMailTextInvoiceValidated=發票%s已被確認。 diff --git a/htdocs/langs/zh_TW/projects.lang b/htdocs/langs/zh_TW/projects.lang index a00589c9c8d..1e9e446321d 100644 --- a/htdocs/langs/zh_TW/projects.lang +++ b/htdocs/langs/zh_TW/projects.lang @@ -9,6 +9,9 @@ ProjectsArea=Projects Area ProjectStatus=Project status SharedProject=每個人 PrivateProject=項目聯系人 +ProjectsImContactFor=Projects I'm explicitely a contact of +AllAllowedProjects=All project I can read (mine + public) +AllProjects=所有項目 MyProjectsDesc=這種觀點是有限的項目你是一個接觸(不管是類型)。 ProjectsPublicDesc=這種觀點提出了所有你被允許閱讀的項目。 TasksOnProjectsPublicDesc=This view presents all tasks on projects you are allowed to read. @@ -23,20 +26,22 @@ TasksDesc=這種觀點提出的所有項目和任務(您的用戶權限批準 AllTaskVisibleButEditIfYouAreAssigned=All tasks for such project are visible, but you can enter time only for task assigned to you. Assign task to yourself if you need to enter time on it. OnlyYourTaskAreVisible=Only tasks assigned to you are visible. Assign task to yourself if it is not visible and you need to enter time on it. ImportDatasetTasks=Tasks of projects +ProjectCategories=Project tags/categories NewProject=新項目 AddProject=Create project DeleteAProject=刪除一個項目 DeleteATask=刪除任務 ConfirmDeleteAProject=Are you sure you want to delete this project? ConfirmDeleteATask=Are you sure you want to delete this task? -OpenedProjects=Opened projects -OpenedTasks=Opened tasks -OpportunitiesStatusForOpenedProjects=Opportunities amount of opened projects by status +OpenedProjects=Open projects +OpenedTasks=Open tasks +OpportunitiesStatusForOpenedProjects=Opportunities amount of open projects by status OpportunitiesStatusForProjects=Opportunities amount of projects by status ShowProject=顯示項目 SetProject=設置項目 NoProject=沒有項目或擁有的定義 NbOfProjects=鈮項目 +NbOfTasks=Nb of tasks TimeSpent=花費的時間 TimeSpentByYou=Time spent by you TimeSpentByUser=Time spent by user @@ -47,9 +52,9 @@ TaskTimeSpent=Time spent on tasks TaskTimeUser=用戶 TaskTimeNote=註解 TaskTimeDate=Date -TasksOnOpenedProject=Tasks on opened projects +TasksOnOpenedProject=Tasks on open projects WorkloadNotDefined=Workload not defined -NewTimeSpent=新的時間 +NewTimeSpent=所花費的時間 MyTimeSpent=我的時間花 Tasks=任務 Task=任務 @@ -59,6 +64,7 @@ TaskDescription=Task description NewTask=新任務 AddTask=Create task AddTimeSpent=Create time spent +AddHereTimeSpentForDay=Add here time spent for this day/task Activity=活動 Activities=任務/活動 MyActivities=我的任務/活動 @@ -78,6 +84,7 @@ ListPredefinedInvoicesAssociatedProject=List of customer template invoices assoc ListSupplierOrdersAssociatedProject=List of supplier orders associated with the project ListSupplierInvoicesAssociatedProject=List of supplier invoices associated with the project ListContractAssociatedProject=名單與項目有關的合同 +ListShippingAssociatedProject=List of shippings associated with the project ListFichinterAssociatedProject=名單與項目相關的幹預措施 ListExpenseReportsAssociatedProject=List of expense reports associated with the project ListDonationsAssociatedProject=List of donations associated with the project @@ -102,6 +109,7 @@ ConfirmReOpenAProject=Are you sure you want to re-open this project? ProjectContact=項目聯系人 ActionsOnProject=行動項目 YouAreNotContactOfProject=你是不是這個私人項目聯系 +UserIsNotContactOfProject=User is not a contact of this private project DeleteATimeSpent=刪除的時間 ConfirmDeleteATimeSpent=Are you sure you want to delete this time spent? DoNotShowMyTasksOnly=See also tasks not assigned to me @@ -110,7 +118,7 @@ TaskRessourceLinks=資源 ProjectsDedicatedToThisThirdParty=這個項目致力於第三方 NoTasks=該項目沒有任務 LinkedToAnotherCompany=鏈接到其他第三方 -TaskIsNotAffectedToYou=Task not assigned to you +TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. ErrorTimeSpentIsEmpty=所花費的時間是空的 ThisWillAlsoRemoveTasks=這一行動也將刪除所有項目任務(%s任務的時刻),花全部的時間都投入。 IfNeedToUseOhterObjectKeepEmpty=如果某些對象(發票,訂單,...),屬於其他第三方,必須與該項目以創建,保持這個空項目多的第三方。 @@ -161,27 +169,32 @@ FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day InputPerWeek=Input per week InputPerAction=Input per action -TimeAlreadyRecorded=Time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s ProjectsWithThisUserAsContact=Projects with this user as contact TasksWithThisUserAsContact=Tasks assigned to this user ResourceNotAssignedToProject=Not assigned to project ResourceNotAssignedToTheTask=Not assigned to the task +TasksAssignedTo=Tasks assigned to AssignTaskToMe=Assign task to me +AssignTaskToUser=Assign task to %s +SelectTaskToAssign=Select task to assign... AssignTask=Assign ProjectOverview=Overview ManageTasks=Use projects to follow tasks and time ManageOpportunitiesStatus=Use projects to follow leads/opportinuties ProjectNbProjectByMonth=Nb of created projects by month +ProjectNbTaskByMonth=Nb of created tasks by month ProjectOppAmountOfProjectsByMonth=Amount of opportunities by month ProjectWeightedOppAmountOfProjectsByMonth=Weighted amount of opportunities by month ProjectOpenedProjectByOppStatus=Open project/lead by opportunity status ProjectsStatistics=Statistics on projects/leads +TasksStatistics=Statistics on project/lead tasks TaskAssignedToEnterTime=Task assigned. Entering time on this task should be possible. IdTaskTime=Id task time YouCanCompleteRef=If you want to complete the ref with some information (to use it as search filters), it is recommanded to add a - character to separate it, so the automatic numbering will still work correctly for next projects. For example %s-ABC. You may also prefer to add search keys into label. But best practice may be to add a dedicated field, also called complementary attributes. -OpenedProjectsByThirdparties=Opened projects by thirdparties +OpenedProjectsByThirdparties=Open projects by third parties OnlyOpportunitiesShort=Only opportunities -OpenedOpportunitiesShort=Opened opportunities +OpenedOpportunitiesShort=Open opportunities NotAnOpportunityShort=Not an opportunity OpportunityTotalAmount=Opportunities total amount OpportunityPonderatedAmount=Opportunities weighted amount From 068460540c1b9af6c5491cfa1d0c76514da5d41c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:38:33 +0200 Subject: [PATCH 035/515] Full enable of pgsql in CI --- .travis.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/.travis.yml b/.travis.yml index fc892b7178b..473a1ac8fba 100644 --- a/.travis.yml +++ b/.travis.yml @@ -58,7 +58,7 @@ matrix: allow_failures: - php: 7.1 - php: nightly - - env: DB=postgresql + #- env: DB=postgresql # TODO #- env: DB=sqlite @@ -261,18 +261,16 @@ script: echo "Checking PHP syntax errors" # Ensure we catch errors set -e - #parallel-lint --exclude htdocs/includes --blame . + parallel-lint --exclude htdocs/includes --blame . set +e echo -# TODO: dev/* checks - - | echo "Checking coding style" # Ensure we catch errors set -e # Exclusions are defined in the ruleset.xml file - #phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 . + phpcs -s -n -p -d memory_limit=-1 --colors --tab-width=4 --standard=dev/setup/codesniffer/ruleset.xml --encoding=utf-8 . set +e echo @@ -280,8 +278,6 @@ script: # TODO: Check CSS (csslint?) -# TODO: check SQL syntax (pgsanity?) - - | echo "Upgrading Dolibarr" # Ensure we catch errors From 95573e86080ed9de82fa491324263631738f03f2 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Mon, 19 Jun 2017 21:39:43 +0200 Subject: [PATCH 036/515] Fix : Accountancy - Debug --- htdocs/accountancy/admin/index.php | 1 + htdocs/accountancy/bookkeeping/card.php | 191 ++++++++++++------ .../accountancy/class/bookkeeping.class.php | 6 +- .../journal/expensereportsjournal.php | 2 +- htdocs/accountancy/journal/sellsjournal.php | 7 +- 5 files changed, 136 insertions(+), 71 deletions(-) diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index 0e1f67a0e61..2d6ee046bbc 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -31,6 +31,7 @@ require '../../main.inc.php'; // Class require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; $langs->load("compta"); $langs->load("bills"); diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 680a2d25470..3c6d2faec94 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -1,7 +1,7 @@ - * Copyright (C) 2013-2017 Florian Henry - * Copyright (C) 2013-2017 Alexandre Spangaro +/* Copyright (C) 2013-2017 Olivier Geffroy + * Copyright (C) 2013-2017 Florian Henry + * Copyright (C) 2013-2017 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -40,16 +40,19 @@ if ($user->societe_id > 0) { $action = GETPOST('action'); $mode = GETPOST('mode'); $piece_num = GETPOST("piece_num"); + $mesg = ''; + $account_number = GETPOST('account_number'); -$code_tiers = GETPOST('code_tiers'); -if ($code_tiers == - 1) { - $code_tiers = null; +$subledger_account = GETPOST('subledger_account'); +if ($subledger_account == - 1) { + $subledger_account = null; } $label_compte = GETPOST('label_compte'); $label_operation= GETPOST('label_operation'); $debit = price2num(GETPOST('debit')); $credit = price2num(GETPOST('credit')); + $save = GETPOST('save'); if (! empty($save)) { $action = 'add'; @@ -60,23 +63,28 @@ if (! empty($update)) { } $object = new BookKeeping($db); if ($action == "confirm_update") { + $error = 0; + if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $error ++; } + if (empty($error)) { $book = new BookKeeping($db); + $result = $book->fetch($id, null, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { $book->numero_compte = $account_number; - $book->code_tiers = $code_tiers; + $book->subledger_account = $subledger_account; $book->label_compte = $label_compte; $book->label_operation= $label_operation; $book->debit = $debit; $book->credit = $credit; + if (floatval($debit) != 0.0) { $book->montant = $debit; $book->sens = 'D'; @@ -85,6 +93,7 @@ if ($action == "confirm_update") { $book->montant = $credit; $book->sens = 'C'; } + $result = $book->update($user, false, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); @@ -95,16 +104,20 @@ if ($action == "confirm_update") { } } } + else if ($action == "add") { $error = 0; + if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $error ++; } + if (empty($error)) { $book = new BookKeeping($db); + $book->numero_compte = $account_number; - $book->code_tiers = $code_tiers; + $book->subledger_account = $subledger_account; $book->label_compte = $label_compte; $book->label_operation= $label_operation; $book->debit = $debit; @@ -116,14 +129,17 @@ else if ($action == "add") { $book->code_journal = GETPOST('code_journal'); $book->fk_doc = GETPOST('fk_doc'); $book->fk_docdet = GETPOST('fk_docdet'); + if (floatval($debit) != 0.0) { $book->montant = $debit; $book->sens = 'D'; } + if (floatval($credit) != 0.0) { $book->montant = $credit; $book->sens = 'C'; } + $result = $book->createStd($user, false, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); @@ -133,10 +149,13 @@ else if ($action == "add") { } } } + else if ($action == "confirm_delete") { $book = new BookKeeping($db); + $result = $book->fetch($id, null, $mode); $piece_num = $book->piece_num; + if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { @@ -147,41 +166,47 @@ else if ($action == "confirm_delete") { } $action = ''; } + else if ($action == "confirm_create") { - $error = 0; - $book = new BookKeeping($db); + $error = 0; + + $book = new BookKeeping($db); + if (! GETPOST('next_num_mvt')) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NumPiece")), null, 'errors'); - $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NumPiece")), null, 'errors'); + $error++; } + if (! $error) { - $book->label_compte = ''; - $book->debit = 0; - $book->credit = 0; - $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); - $book->doc_type = GETPOST('doc_type'); - $book->piece_num = GETPOST('next_num_mvt'); - $book->doc_ref = GETPOST('doc_ref'); - $book->code_journal = GETPOST('code_journal'); - $book->fk_doc = 0; - $book->fk_docdet = 0; - $book->montant = 0; - $result = $book->createStd($user,0, $mode); - if ($result < 0) { - setEventMessages($book->error, $book->errors, 'errors'); - } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); - $action = 'update'; - $id=$book->id; - $piece_num = $book->piece_num; - } + $book->label_compte = ''; + $book->debit = 0; + $book->credit = 0; + $book->doc_date = $date_start = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); + $book->doc_type = GETPOST('doc_type'); + $book->piece_num = GETPOST('next_num_mvt'); + $book->doc_ref = GETPOST('doc_ref'); + $book->code_journal = GETPOST('code_journal'); + $book->fk_doc = 0; + $book->fk_docdet = 0; + $book->montant = 0; + + $result = $book->createStd($user,0, $mode); + if ($result < 0) { + setEventMessages($book->error, $book->errors, 'errors'); + } else { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + $action = 'update'; + $id=$book->id; + $piece_num = $book->piece_num; + } } } + if ($action == 'setdate') { $datedoc = dol_mktime(0, 0, 0, GETPOST('doc_datemonth'), GETPOST('doc_dateday'), GETPOST('doc_dateyear')); - $result = $object->upddateByMvt($piece_num,'doc_date',$db->idate($datedoc),$mode); + $result = $object->updateByMvt($piece_num,'doc_date',$db->idate($datedoc),$mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { @@ -189,12 +214,13 @@ if ($action == 'setdate') { $action = ''; } } + if ($action == 'setjournal') { $journaldoc = trim(GETPOST('code_journal')); if (!empty($journaldoc)) { $journaldoc='\''.$journaldoc.'\''; } - $result = $object->upddateByMvt($piece_num,'code_journal',$journaldoc,$mode); + $result = $object->updateByMvt($piece_num,'code_journal',$journaldoc,$mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { @@ -202,12 +228,13 @@ if ($action == 'setjournal') { $action = ''; } } + if ($action == 'setdocref') { $refdoc = trim(GETPOST('doc_ref')); if (!empty($refdoc)) { $refdoc='\''.$refdoc.'\''; } - $result = $object->upddateByMvt(doc_ref,'code_journal',$refdoc,$mode); + $result = $object->updateByMvt(doc_ref,'code_journal',$refdoc,$mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { @@ -215,6 +242,7 @@ if ($action == 'setdocref') { $action = ''; } } + if ($action == 'valid') { $result = $object->transformTransaction(0,$piece_num); if ($result < 0) { @@ -224,6 +252,7 @@ if ($action == 'valid') { exit; } } + /* * View */ @@ -237,47 +266,61 @@ if ($action == 'delete') { $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id.'&mode='. $mode, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); print $formconfirm; } + if ($action == 'create') { print load_fiche_titre($langs->trans("CreateMvts")); + $book = new BookKeeping($db); $next_num_mvt = $book->getNextNumMvt('_tmp'); - if (empty($next_num_mvt)) - { - dol_print_error('', 'Failed to get next piece number'); - } + + if (empty($next_num_mvt)) + { + dol_print_error('', 'Failed to get next piece number'); + } + print ''; print '' . "\n"; print '' . "\n"; print '' . "\n"; + dol_fiche_head(); + print ''; print ''; print ''; print ''; print ''; + print ''; print ''; print ''; print ''; + print ''; print ''; print ''; print ''; + print ''; print ''; - print ''; + print ''; print ''; + print ''; print ''; - print ''; + print ''; print ''; + print '
' . $langs->trans("NumPiece") . '' . $next_num_mvt . '
' . $langs->trans("Docdate") . ''; print $html->select_date('', 'doc_date', '', '', '', "create_mvt", 1, 1); print '
' . $langs->trans("Codejournal") . '' . $formaccounting->select_journal(GETPOST('code_journal'),'code_journal',0,0,array(),1,1) . '
' . $langs->trans("Docref") . '
' . $langs->trans("Doctype") . '
'; + dol_fiche_end(); + print '
'; print '     '; print '
'; + print ''; } else { $book = new BookKeeping($db); @@ -286,16 +329,21 @@ if ($action == 'create') { setEventMessages($book->error, $book->errors, 'errors'); } if (! empty($book->piece_num)) { + print load_fiche_titre($langs->trans("UpdateMvts"), '' . $langs->trans('BackToList') . ''); + dol_fiche_head(); + print '
'; print '
'; print ''; - // account mouvment + + // account movement print ''; print ''; print ''; print ''; + // date print ''; */ -/* TODO uncomment when the functionality will integrated +/* TODO uncomment when the functionality will integrated print ''; print ''; @@ -258,9 +251,9 @@ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) print $langs->trans("Value").' '; print ''; print ''; - - - + + + print ''; print ''; print ''; @@ -272,8 +265,8 @@ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) print ''; print ''; print ''; - - + + print ''; print ''; print ''; @@ -285,8 +278,8 @@ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) print ''; print ''; print ''; - - + + print ''; print ''; print ''; @@ -298,7 +291,7 @@ if (!empty($conf->global->MAIN_MULTICURRENCY_ALLOW_SYNCHRONIZATION)) print ''; print ''; print ''; - + print '
' . $langs->trans("NumMvts") . '' . $book->piece_num . '
'; print ''; print ''; print '
'; @@ -368,11 +416,14 @@ if ($action == 'create') { print '' . $book->doc_type . '
'; + print ''; + print '
'; print '
'; print ''; - //Validate + + // Validate print ''; print ''; print ''; @@ -413,11 +464,14 @@ if ($action == 'create') { print ''; print '
'; print '
'; + $result = $book->fetchAllPerMvt($piece_num, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { + print load_fiche_titre($langs->trans("ListeMvts"), '', ''); + print ''; print '' . "\n"; print '' . "\n"; @@ -426,30 +480,37 @@ if ($action == 'create') { print '' . "\n"; print '' . "\n"; print '' . "\n"; + print "
' . $langs->trans("Status") . ''; @@ -394,17 +445,17 @@ if ($action == 'create') { if ($book->doc_type == 'customer_invoice') { $sqlmid = 'SELECT rowid as ref'; - $sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac"; - $sqlmid .= " WHERE fac.rowid=" . $book->fk_doc; - dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG); - $resultmid = $db->query($sqlmid); - if ($resultmid) { - $objmid = $db->fetch_object($resultmid); - $invoicestatic = new Facture($db); - $invoicestatic->fetch($objmid->ref); - $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1); - } - else dol_print_error($db); + $sqlmid .= " FROM ".MAIN_DB_PREFIX."facture as fac"; + $sqlmid .= " WHERE fac.rowid=" . $book->fk_doc; + dol_syslog("accountancy/bookkeeping/card.php::sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $invoicestatic = new Facture($db); + $invoicestatic->fetch($objmid->ref); + $ref=$langs->trans("Invoice").' '.$invoicestatic->getNomUrl(1); + } + else dol_print_error($db); } */ print '' . $ref .'
"; if (count($book->linesmvt) > 0) { + $total_debit = 0; $total_credit = 0; + print ''; + print_liste_field_titre($langs->trans("AccountAccountingShort")); - print_liste_field_titre($langs->trans("Code_tiers")); + print_liste_field_titre($langs->trans("Subledger_account")); print_liste_field_titre($langs->trans("Labelcompte")); print_liste_field_titre($langs->trans("Labeloperation")); print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="center"'); print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="center"'); print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"'); + print "\n"; + foreach ( $book->linesmvt as $line ) { $var = ! $var; print ''; $total_debit += $line->debit; $total_credit += $line->credit; + if ($action == 'update' && $line->id == $id) { print ''; print ''; print ''; print ''; @@ -461,34 +522,37 @@ if ($action == 'create') { print ''; } else { print ''; - print ''; + print ''; print ''; print ''; print ''; print ''; + print ''; } print "\n"; } + if ($total_debit != $total_credit) { setEventMessages(null, array($langs->trans('MvtNotCorrectlyBalanced', $total_credit, $total_debit)), 'warnings'); } + if ($action == "" || $action == 'add') { - $var = ! $var; - print ''; + print ''; print ''; print ''; print ''; print ''; @@ -510,6 +574,7 @@ if ($action == 'create') { print load_fiche_titre($langs->trans("NoRecords")); } } + dol_fiche_end(); llxFooter(); -$db->close(); \ No newline at end of file +$db->close(); diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index a441b79dbb2..843e15a5dd7 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -1060,10 +1060,10 @@ class BookKeeping extends CommonObject * @param string $mode Mode * @return number <0 if KO, >0 if OK */ - public function upddateByMvt($piece_num='', $field='', $value='', $mode='') { + public function updateByMvt($piece_num='', $field='', $value='', $mode='') { $this->db->begin(); - $sql = "UPDATE " . MAIN_DB_PREFIX . $this->table_element.$mode." as ab"; - $sql .= ' SET ab.'.$field.'=' . $value; + $sql = "UPDATE " . MAIN_DB_PREFIX . $this->table_element . $mode . " as ab"; + $sql .= ' SET ab.' . $field . '=' . $value; $sql .= ' WHERE ab.piece_num=' . $piece_num ; $resql = $this->db->query($sql); if (! $resql) { diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 6dba1443ae1..f751d78b1a6 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -91,7 +91,7 @@ $idpays = $mysoc->country_id; $sql = "SELECT er.rowid, er.ref, er.date_debut as de,"; $sql .= " erd.rowid as erdid, erd.comments, erd.total_ttc, erd.tva_tx, erd.total_ht, erd.total_tva, erd.fk_code_ventilation, erd.vat_src_code, "; $sql .= " u.rowid as uid, u.firstname, u.lastname, u.accountancy_code as user_accountancy_account,"; -$sql .= " f.accountancy_code, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte,"; +$sql .= " f.accountancy_code, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; //$sql .= " ct.accountancy_code_buy as account_tva"; $sql .= " FROM " . MAIN_DB_PREFIX . "expensereport_det as erd"; //$sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "c_tva as ct ON erd.tva_tx = ct.taux AND ct.fk_pays = '" . $idpays . "'"; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index a50f8be7fb9..e374ab62c5c 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -152,7 +152,7 @@ if ($result) { // Define array to display all VAT rates that use this accounting account $compta_tva if ((! price2num($obj->tva_tx)) || ! empty($obj->vat_src_code)) { - $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); + $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); } // Situation invoices handling @@ -591,7 +591,7 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; - print ""; + print ""; print ""; print ""; print "\n"; @@ -617,7 +617,6 @@ if (empty($action) || $action == 'view') { $companystatic->id = $tabcompany[$key]['id']; $companystatic->name = $tabcompany[$key]['name']; $companystatic->client = $tabcompany[$key]['code_client']; - $companystatic->client = $tabcompany[$key]['code_client']; print ""; - print ""; + print ""; // ' '.join(', ',$def_tva[$key][$k]). // print ""; print ""; print ""; From 8dffc38cd5567fe8ebb22b9f43fb838b102d5962 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 21:46:38 +0200 Subject: [PATCH 037/515] Fix separator --- htdocs/langs/ru_RU/main.lang | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 911eb16f641..632522bc90f 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -7,7 +7,7 @@ DIRECTION=ltr FONTFORPDF=freemono FONTSIZEFORPDF=8 SeparatorDecimal=, -SeparatorThousand=, +SeparatorThousand=None FormatDateShort=%d.%m.%Y FormatDateShortInput=%d.%m.%Y FormatDateShortJava=ММ/дд/гггг From 3717a016413a55396f0da20cece4f263dab5fa26 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 19 Jun 2017 23:15:47 +0200 Subject: [PATCH 038/515] Fix lang --- htdocs/langs/ru_RU/main.lang | 8 ++--- htdocs/langs/ru_RU/modulebuilder.lang | 24 +++++++++++++++ htdocs/langs/ru_RU/multicurrency.lang | 18 ++++++++++++ htdocs/langs/ru_RU/stripe.lang | 42 +++++++++++++++++++++++++++ 4 files changed, 88 insertions(+), 4 deletions(-) create mode 100644 htdocs/langs/ru_RU/modulebuilder.lang create mode 100644 htdocs/langs/ru_RU/multicurrency.lang create mode 100644 htdocs/langs/ru_RU/stripe.lang diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 632522bc90f..19a24fa80f6 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -10,10 +10,10 @@ SeparatorDecimal=, SeparatorThousand=None FormatDateShort=%d.%m.%Y FormatDateShortInput=%d.%m.%Y -FormatDateShortJava=ММ/дд/гггг -FormatDateShortJavaInput=ММ/дд/гггг -FormatDateShortJQuery=мм/дд/гг -FormatDateShortJQueryInput=мм/дд/гг +FormatDateShortJava=dd.MM.yyyy +FormatDateShortJavaInput=dd.MM.yyyy +FormatDateShortJQuery=dd.mm.yy +FormatDateShortJQueryInput=dd.mm.yy FormatHourShortJQuery=ЧЧ:ММ FormatHourShort=%H:%M FormatHourShortDuration=%H:%M diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang new file mode 100644 index 00000000000..a8fc8164ae8 --- /dev/null +++ b/htdocs/langs/ru_RU/modulebuilder.lang @@ -0,0 +1,24 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools give you utilites to build or edit your own module. +EnterNameOfModuleDesc=Enter name of the module to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +ModuleBuilderDesc2=Path were modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +ModuleKey=Key for new module +ModuleInitialized=Module initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescobjects=Define here the new objects you want to manage with your module. A page to list them and a page to create/edit/view a card will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module. Just click on button to get your module package file. +ModuleBuilderDescdangerzone=You can delete your module. WARNING: All files of module will be definetly lost ! +DangerZone=Danger zone +BuildPackage=Build package +ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor diff --git a/htdocs/langs/ru_RU/multicurrency.lang b/htdocs/langs/ru_RU/multicurrency.lang new file mode 100644 index 00000000000..925764f5e37 --- /dev/null +++ b/htdocs/langs/ru_RU/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Сумма платежа, в оригинальной валюте diff --git a/htdocs/langs/ru_RU/stripe.lang b/htdocs/langs/ru_RU/stripe.lang new file mode 100644 index 00000000000..ff607e59dc3 --- /dev/null +++ b/htdocs/langs/ru_RU/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=После URL, можно предложить страницу к клиенту сделать платеж по Dolibarr объектов +PaymentForm=Форма оплаты +WelcomeOnPaymentPage=Добро пожаловать на наш интернет-платежей службы +ThisScreenAllowsYouToPay=На этом экране можно сделать онлайн-платежей для %s. +ThisIsInformationOnPayment=Это данные по оплате делать +ToComplete=Для завершения +YourEMail=Электронная почта для подтверждения оплаты +STRIPE_PAYONLINE_SENDEMAIL=Адрес электронной почты, куда будут высылаться уведомления о платежах (успешных или нет) +Creditor=Кредитор +PaymentCode=Код платежа +StripeDoPayment=Перейти к оплате +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Дальше +ToOfferALinkForOnlinePayment=URL-адрес для оплаты %s +ToOfferALinkForOnlinePaymentOnOrder=URL предложить %s онлайн платежей пользовательский интерфейс для заказа +ToOfferALinkForOnlinePaymentOnInvoice=URL предложить %s онлайн платежей пользовательский интерфейс для счета +ToOfferALinkForOnlinePaymentOnContractLine=URL предложить% интернет-платежей с интерфейсом пользователя на контракт линия +ToOfferALinkForOnlinePaymentOnFreeAmount=URL предложить% интернет-платежей с пользовательским интерфейсом для свободного сумму +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL предложить оплаты %s онлайн пользовательский интерфейс для членов подписки +YouCanAddTagOnUrl=Вы также можете добавить URL параметр И тег= значение для любой из этих URL (требуется только для свободного платежа), чтобы добавить свой комментарий оплаты метки. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Эта страница подтверждает, что ваш платеж был записан. Спасибо. +YourPaymentHasNotBeenRecorded=Вы платеж не был записан и сделка была отменена. Спасибо. +AccountParameter=Счет параметры +UsageParameter=Использование параметров +InformationToFindParameters=Помогите найти %s информацию об учетной записи +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Имя поставщика +CSSUrlForPaymentForm=CSS-стилей URL для оплаты форме +MessageOK=Сообщение на странице проверки возвращение оплаты +MessageKO=Сообщение на странице отменен возврат оплаты +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) From eef5df583ef8ee35f1ba4ae619a2415050af713c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 00:50:30 +0200 Subject: [PATCH 039/515] Fix php 7.2 --- htdocs/core/lib/json.lib.php | 7 +++++-- test/phpunit/JsonLibTest.php | 8 +++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/json.lib.php b/htdocs/core/lib/json.lib.php index 6b868663aa7..7388ba47806 100644 --- a/htdocs/core/lib/json.lib.php +++ b/htdocs/core/lib/json.lib.php @@ -49,12 +49,15 @@ function dol_json_encode($elements) { dol_syslog('dol_json_encode() is deprecated. Please update your code to use native json_encode().', LOG_WARNING); - $num=count($elements); + $num=0; if (is_object($elements)) // Count number of properties for an object { - $num=0; foreach($elements as $key => $value) $num++; } + else + { + $num=count($elements); + } //var_dump($num); // determine type diff --git a/test/phpunit/JsonLibTest.php b/test/phpunit/JsonLibTest.php index 66999e31c65..a06db14565c 100644 --- a/test/phpunit/JsonLibTest.php +++ b/test/phpunit/JsonLibTest.php @@ -134,7 +134,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase // Do a test with an array starting with 0 $arraytotest=array(0=>array('key'=>1,'value'=>'PRODREF','label'=>'Product ref with é and special chars \\ \' "')); $arrayencodedexpected='[{"key":1,"value":"PRODREF","label":"Product ref with \u00e9 and special chars \\\\ \' \""}]'; - + $encoded=json_encode($arraytotest); $this->assertEquals($arrayencodedexpected,$encoded); $decoded=json_decode($encoded,true); @@ -148,7 +148,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase // Same test but array start with 2 instead of 0 $arraytotest=array(2=>array('key'=>1,'value'=>'PRODREF','label'=>'Product ref with é and special chars \\ \' "')); $arrayencodedexpected='{"2":{"key":1,"value":"PRODREF","label":"Product ref with \u00e9 and special chars \\\\ \' \""}}'; - + $encoded=json_encode($arraytotest); $this->assertEquals($arrayencodedexpected,$encoded); $decoded=json_decode($encoded,true); @@ -158,7 +158,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase $this->assertEquals($arrayencodedexpected,$encoded); $decoded=dol_json_decode($encoded,true); $this->assertEquals($arraytotest,$decoded,'test for dol_json_xxx'); - + // Test with object $now=gmmktime(12,0,0,1,1,1970); $objecttotest=new stdClass(); @@ -167,7 +167,5 @@ class JsonLibTest extends PHPUnit_Framework_TestCase $objecttotest->property3=$now; $encoded=dol_json_encode($objecttotest); $this->assertEquals('{"property1":"abc","property2":1234,"property3":43200}',$encoded); - } - } From d78d5d60c44f8ff371f61b0f854b3e33ec6968d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 01:45:44 +0200 Subject: [PATCH 040/515] Fix pgsql Fix missing vat rate info. --- htdocs/accountancy/journal/sellsjournal.php | 4 ++- htdocs/compta/resultat/index.php | 26 ++++++++++---------- htdocs/install/pgsql/functions/functions.sql | 3 +++ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index e374ab62c5c..425153198a0 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -674,7 +674,9 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print ""; - print "
"; // ' '.join(', ',$def_tva[$key][$k]). + print ""; // print ""; print ""; print ""; diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php index 45cbbfe3a46..6043a7cbec5 100644 --- a/htdocs/compta/resultat/index.php +++ b/htdocs/compta/resultat/index.php @@ -492,14 +492,14 @@ if (! empty($conf->salaries->enabled)) } else { $column = 'p.datep'; } - + $subtotal_ht = 0; $subtotal_ttc = 0; $sql = "SELECT p.label as nom, date_format($column,'%Y-%m') as dm, sum(p.amount) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."payment_salary as p"; $sql.= " WHERE p.entity = ".$conf->entity; $sql.= " GROUP BY p.label, dm"; - + dol_syslog("get social salaries payments"); $result=$db->query($sql); if ($result) @@ -512,13 +512,13 @@ if (! empty($conf->salaries->enabled)) while ($i < $num) { $obj = $db->fetch_object($result); - + if (! isset($decaiss[$obj->dm])) $decaiss[$obj->dm]=0; $decaiss[$obj->dm] += $obj->amount; - + if (! isset($decaiss_ttc[$obj->dm])) $decaiss_ttc[$obj->dm]=0; $decaiss_ttc[$obj->dm] += $obj->amount; - + $i++; } } @@ -568,7 +568,7 @@ if (! empty($conf->expensereport->enabled)) { if (! isset($decaiss[$obj->dm])) $decaiss[$obj->dm]=0; $decaiss[$obj->dm] += $obj->amount_ht; - + if (! isset($decaiss_ttc[$obj->dm])) $decaiss_ttc[$obj->dm]=0; $decaiss_ttc[$obj->dm] += $obj->amount_ttc; @@ -588,7 +588,7 @@ if (! empty($conf->don->enabled)) { $subtotal_ht = 0; $subtotal_ttc = 0; - + if ($modecompta == 'CREANCES-DETTES') { $sql = "SELECT p.societe as nom, p.firstname, p.lastname, date_format(p.datedon,'%Y-%m') as dm, sum(p.amount) as amount"; $sql.= " FROM ".MAIN_DB_PREFIX."don as p"; @@ -617,13 +617,13 @@ if (! empty($conf->don->enabled)) while ($i < $num) { $obj = $db->fetch_object($result); - + if (! isset($encaiss[$obj->dm])) $encaiss[$obj->dm]=0; $encaiss[$obj->dm] += $obj->amount; - + if (! isset($encaiss_ttc[$obj->dm])) $encaiss_ttc[$obj->dm]=0; $encaiss_ttc[$obj->dm] += $obj->amount; - + $i++; } } @@ -671,7 +671,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) { $mois_modulo = $mois; if($mois>12) {$mois_modulo = $mois-12;} - + print ''; print ""; for ($annee = $year_start ; $annee <= $year_end ; $annee++) @@ -680,7 +680,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) if($mois>12) {$annee_decalage=$annee+1;} $case = strftime("%Y-%m",dol_mktime(12,0,0,$mois_modulo,1,$annee_decalage)); - print '"; - print '
'; print $formaccounting->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1, ''); print ''; - print $formaccounting->select_auxaccount($line->code_tiers, 'code_tiers', 1); + print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1); print '' . length_accountg($line->numero_compte) . '' . length_accounta($line->code_tiers) . '' . length_accounta($line->subledger_account) . '' . $line->label_compte . '' . $line->label_operation. '' . price($line->debit) . '' . price($line->credit) . ''; - print ''; + print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; print img_edit(); print ' '; - print ''; + print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; print img_delete(); + print ''; print '
'; print $formaccounting->select_account($account_number, 'account_number', 0, array (), 1, 1, ''); print ''; - print $formaccounting->select_auxaccount($code_tiers, 'code_tiers', 1); + print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1); print '" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("InvoiceRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("Type") . "" . $langs->trans("Label") . "" . $langs->trans("Debit") . "" . $langs->trans("Credit") . "
"; $accountoshow = length_accounta($k); if (empty($accountoshow) || $accountoshow == 'NotDefined') @@ -675,7 +674,7 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . ' '.join(', ',$def_tva[$key][$k]). "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . "" . $langs->trans("VAT") . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT") . "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT"); + print ' '.join(', ',$def_tva[$key][$k]); + print "" . $langs->trans("VAT") . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "
".dol_print_date(dol_mktime(12,0,0,$mois_modulo,1,$annee),"%B")." '; + print ' '; if (isset($decaiss_ttc[$case]) && $decaiss_ttc[$case] != 0) { print ''.price(price2num($decaiss_ttc[$case],'MT')).''; @@ -689,7 +689,7 @@ for ($mois = 1+$nb_mois_decalage ; $mois <= 12+$nb_mois_decalage ; $mois++) } print " '; + print ' '; //if (isset($encaiss_ttc[$case]) && $encaiss_ttc[$case] != 0) if (isset($encaiss_ttc[$case])) { diff --git a/htdocs/install/pgsql/functions/functions.sql b/htdocs/install/pgsql/functions/functions.sql index 9d3b3c8dbe6..441b20c66ad 100644 --- a/htdocs/install/pgsql/functions/functions.sql +++ b/htdocs/install/pgsql/functions/functions.sql @@ -23,9 +23,12 @@ CREATE LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITHOUT TIME ZONE) RETURNS BIGINT LANGUAGE SQL IMMUTABLE STRICT AS 'SELECT EXTRACT(EPOCH FROM $1)::bigint;'; CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITH TIME ZONE) RETURNS BIGINT LANGUAGE SQL IMMUTABLE STRICT AS 'SELECT EXTRACT(EPOCH FROM $1)::bigint;'; + CREATE OR REPLACE FUNCTION date_format(timestamp without time zone, text) RETURNS text AS $$ DECLARE i int := 1; temp text := ''; c text; n text; res text; BEGIN WHILE i <= pg_catalog.length($2) LOOP c := SUBSTRING ($2 FROM i FOR 1); IF c = '%' AND i != pg_catalog.length($2) THEN n := SUBSTRING ($2 FROM (i + 1) FOR 1); SELECT INTO res CASE WHEN n = 'a' THEN pg_catalog.to_char($1, 'Dy') WHEN n = 'b' THEN pg_catalog.to_char($1, 'Mon') WHEN n = 'c' THEN pg_catalog.to_char($1, 'FMMM') WHEN n = 'D' THEN pg_catalog.to_char($1, 'FMDDth') WHEN n = 'd' THEN pg_catalog.to_char($1, 'DD') WHEN n = 'e' THEN pg_catalog.to_char($1, 'FMDD') WHEN n = 'f' THEN pg_catalog.to_char($1, 'US') WHEN n = 'H' THEN pg_catalog.to_char($1, 'HH24') WHEN n = 'h' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'I' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'i' THEN pg_catalog.to_char($1, 'MI') WHEN n = 'j' THEN pg_catalog.to_char($1, 'DDD') WHEN n = 'k' THEN pg_catalog.to_char($1, 'FMHH24') WHEN n = 'l' THEN pg_catalog.to_char($1, 'FMHH12') WHEN n = 'M' THEN pg_catalog.to_char($1, 'FMMonth') WHEN n = 'm' THEN pg_catalog.to_char($1, 'MM') WHEN n = 'p' THEN pg_catalog.to_char($1, 'AM') WHEN n = 'r' THEN pg_catalog.to_char($1, 'HH12:MI:SS AM') WHEN n = 'S' THEN pg_catalog.to_char($1, 'SS') WHEN n = 's' THEN pg_catalog.to_char($1, 'SS') WHEN n = 'T' THEN pg_catalog.to_char($1, 'HH24:MI:SS') WHEN n = 'U' THEN pg_catalog.to_char($1, '?') WHEN n = 'u' THEN pg_catalog.to_char($1, '?') WHEN n = 'V' THEN pg_catalog.to_char($1, '?') WHEN n = 'v' THEN pg_catalog.to_char($1, '?') WHEN n = 'W' THEN pg_catalog.to_char($1, 'FMDay') WHEN n = 'w' THEN EXTRACT(DOW FROM $1)::text WHEN n = 'X' THEN pg_catalog.to_char($1, '?') WHEN n = 'x' THEN pg_catalog.to_char($1, '?') WHEN n = 'Y' THEN pg_catalog.to_char($1, 'YYYY') WHEN n = 'y' THEN pg_catalog.to_char($1, 'YY') WHEN n = '%' THEN pg_catalog.to_char($1, '%') ELSE NULL END; temp := temp operator(pg_catalog.||) res; i := i + 2; ELSE temp = temp operator(pg_catalog.||) c; i := i + 1; END IF; END LOOP; RETURN temp; END $$ IMMUTABLE STRICT LANGUAGE plpgsql; +CREATE OR REPLACE FUNCTION date_format(timestamp with time zone, text) RETURNS text AS $$ DECLARE i int := 1; temp text := ''; c text; n text; res text; BEGIN WHILE i <= pg_catalog.length($2) LOOP c := SUBSTRING ($2 FROM i FOR 1); IF c = '%' AND i != pg_catalog.length($2) THEN n := SUBSTRING ($2 FROM (i + 1) FOR 1); SELECT INTO res CASE WHEN n = 'a' THEN pg_catalog.to_char($1, 'Dy') WHEN n = 'b' THEN pg_catalog.to_char($1, 'Mon') WHEN n = 'c' THEN pg_catalog.to_char($1, 'FMMM') WHEN n = 'D' THEN pg_catalog.to_char($1, 'FMDDth') WHEN n = 'd' THEN pg_catalog.to_char($1, 'DD') WHEN n = 'e' THEN pg_catalog.to_char($1, 'FMDD') WHEN n = 'f' THEN pg_catalog.to_char($1, 'US') WHEN n = 'H' THEN pg_catalog.to_char($1, 'HH24') WHEN n = 'h' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'I' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'i' THEN pg_catalog.to_char($1, 'MI') WHEN n = 'j' THEN pg_catalog.to_char($1, 'DDD') WHEN n = 'k' THEN pg_catalog.to_char($1, 'FMHH24') WHEN n = 'l' THEN pg_catalog.to_char($1, 'FMHH12') WHEN n = 'M' THEN pg_catalog.to_char($1, 'FMMonth') WHEN n = 'm' THEN pg_catalog.to_char($1, 'MM') WHEN n = 'p' THEN pg_catalog.to_char($1, 'AM') WHEN n = 'r' THEN pg_catalog.to_char($1, 'HH12:MI:SS AM') WHEN n = 'S' THEN pg_catalog.to_char($1, 'SS') WHEN n = 's' THEN pg_catalog.to_char($1, 'SS') WHEN n = 'T' THEN pg_catalog.to_char($1, 'HH24:MI:SS') WHEN n = 'U' THEN pg_catalog.to_char($1, '?') WHEN n = 'u' THEN pg_catalog.to_char($1, '?') WHEN n = 'V' THEN pg_catalog.to_char($1, '?') WHEN n = 'v' THEN pg_catalog.to_char($1, '?') WHEN n = 'W' THEN pg_catalog.to_char($1, 'FMDay') WHEN n = 'w' THEN EXTRACT(DOW FROM $1)::text WHEN n = 'X' THEN pg_catalog.to_char($1, '?') WHEN n = 'x' THEN pg_catalog.to_char($1, '?') WHEN n = 'Y' THEN pg_catalog.to_char($1, 'YYYY') WHEN n = 'y' THEN pg_catalog.to_char($1, 'YY') WHEN n = '%' THEN pg_catalog.to_char($1, '%') ELSE NULL END; temp := temp operator(pg_catalog.||) res; i := i + 2; ELSE temp = temp operator(pg_catalog.||) c; i := i + 1; END IF; END LOOP; RETURN temp; END $$ IMMUTABLE STRICT LANGUAGE plpgsql; + CREATE OR REPLACE FUNCTION YEAR(TIMESTAMP without TIME ZONE) RETURNS INTEGER AS $$ SELECT EXTRACT(YEAR FROM $1)::INTEGER; $$ LANGUAGE SQL IMMUTABLE; From fcdc7b1a0d015b9977802211d47d81632773a48f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 01:52:47 +0200 Subject: [PATCH 041/515] Fix pgsql compatibility --- htdocs/accountancy/customer/index.php | 32 +++++++++++++-------------- htdocs/accountancy/supplier/index.php | 28 +++++++++++------------ htdocs/langs/en_US/admin.lang | 4 ++-- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 24e066917bc..817811cd0fc 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -73,7 +73,7 @@ if ($action == 'validatehistory') { // First clean corrupted data $sqlclean = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; - $sqlclean .= " SET fd.fk_code_ventilation = 0"; + $sqlclean .= " SET fk_code_ventilation = 0"; $sqlclean .= ' WHERE fd.fk_code_ventilation NOT IN '; $sqlclean .= ' (SELECT accnt.rowid '; $sqlclean .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; @@ -91,7 +91,7 @@ if ($action == 'validatehistory') { $sql1 .= " AND " . MAIN_DB_PREFIX . "facturedet.fk_code_ventilation = 0"; } else { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " SET fd.fk_code_ventilation = accnt.rowid"; + $sql1 .= " SET fk_code_ventilation = accnt.rowid"; $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_sell=accnt.account_number"; $sql1 .= " AND fd.fk_code_ventilation = 0"; @@ -113,7 +113,7 @@ if ($action == 'validatehistory') { $db->begin(); $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql1 .= " SET fd.fk_code_ventilation = 0"; + $sql1 .= " SET fk_code_ventilation = 0"; $sql1 .= ' WHERE fd.fk_code_ventilation NOT IN '; $sql1 .= ' (SELECT accnt.rowid '; $sql1 .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; @@ -134,16 +134,16 @@ if ($action == 'validatehistory') { } elseif ($action == 'cleanaccountancycode') { $error = 0; $db->begin(); - + // Now clean $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql1.= " SET fd.fk_code_ventilation = 0"; + $sql1.= " SET fk_code_ventilation = 0"; $sql1.= " WHERE fd.fk_facture IN ( SELECT f.rowid FROM " . MAIN_DB_PREFIX . "facture as f"; $sql1.= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($year_current, 1, false)) . "'"; $sql1.= " AND f.datef <= '" . $db->idate(dol_get_last_day($year_current, 12, false)) . "'"; $sql1.= " AND f.entity IN (" . getEntity('accountancy') . ")"; $sql1.=")"; - + dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG); $resql1 = $db->query($sql1); @@ -321,9 +321,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. { print '
'; print '
'; - + print_fiche_titre($langs->trans("OtherInfo"), '', ''); - + print "
\n"; print ''; print ''; @@ -331,7 +331,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print ''; } print ''; - + $sql = "SELECT '" . $langs->trans("TotalVente") . "' AS total,"; for($i = 1; $i <= 12; $i ++) { $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, 'fd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; @@ -347,13 +347,13 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. } else { $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; } - + dol_syslog('htdocs/accountancy/customer/index.php'); $resql = $db->query($sql); if ($resql) { $i = 0; $num = $db->num_rows($resql); - + while ($row = $db->fetch_row($resql)) { print ''; for($i = 1; $i <= 12; $i ++) { @@ -368,7 +368,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print $db->lasterror(); // Show last sql error } print "
' . $langs->trans("TotalVente") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '
\n"; - + if (! empty($conf->margin->enabled)) { print "
\n"; print ''; @@ -377,7 +377,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print ''; } print ''; - + $sql = "SELECT '" . $langs->trans("Vide") . "' AS marge,"; for($i = 1; $i <= 12; $i ++) { $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; @@ -393,14 +393,14 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. } else { $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; } - + dol_syslog('htdocs/accountancy/customer/index.php:: $sql=' . $sql); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - + while ($row = $db->fetch_row($resql)) { - + print ''; for($i = 1; $i <= 12; $i ++) { print ''; diff --git a/htdocs/accountancy/supplier/index.php b/htdocs/accountancy/supplier/index.php index 3aa8e501bb9..fb5f28fc27d 100644 --- a/htdocs/accountancy/supplier/index.php +++ b/htdocs/accountancy/supplier/index.php @@ -69,14 +69,14 @@ if ($action == 'validatehistory') { // First clean corrupted data $sqlclean = "UPDATE " . MAIN_DB_PREFIX . "facturedet as fd"; - $sqlclean .= " SET fd.fk_code_ventilation = 0"; + $sqlclean .= " SET fk_code_ventilation = 0"; $sqlclean .= ' WHERE fd.fk_code_ventilation NOT IN '; $sqlclean .= ' (SELECT accnt.rowid '; $sqlclean .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; $sqlclean .= ' INNER JOIN ' . MAIN_DB_PREFIX . 'accounting_system as syst'; $sqlclean .= ' ON accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=' . $conf->global->CHARTOFACCOUNTS . ')'; $resql = $db->query($sqlclean); - + // Now make the binding. Bind automatically only for product with a dedicated account that exists into chart of account, others need a manual bind if ($db->type == 'pgsql') { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det"; @@ -87,7 +87,7 @@ if ($action == 'validatehistory') { $sql1 .= " AND " . MAIN_DB_PREFIX . "facture_fourn_det.fk_code_ventilation = 0"; } else { $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd, " . MAIN_DB_PREFIX . "product as p, " . MAIN_DB_PREFIX . "accounting_account as accnt , " . MAIN_DB_PREFIX . "accounting_system as syst"; - $sql1 .= " SET fd.fk_code_ventilation = accnt.rowid"; + $sql1 .= " SET fk_code_ventilation = accnt.rowid"; $sql1 .= " WHERE fd.fk_product = p.rowid AND accnt.fk_pcg_version = syst.pcg_version AND syst.rowid=" . $conf->global->CHARTOFACCOUNTS; $sql1 .= " AND accnt.active = 1 AND p.accountancy_code_buy=accnt.account_number"; $sql1 .= " AND fd.fk_code_ventilation = 0"; @@ -107,7 +107,7 @@ if ($action == 'validatehistory') { $db->begin(); $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd"; - $sql1 .= " SET fd.fk_code_ventilation = 0"; + $sql1 .= " SET fk_code_ventilation = 0"; $sql1 .= ' WHERE fd.fk_code_ventilation NOT IN '; $sql1 .= ' (SELECT accnt.rowid '; $sql1 .= ' FROM ' . MAIN_DB_PREFIX . 'accounting_account as accnt'; @@ -130,13 +130,13 @@ if ($action == 'validatehistory') { $db->begin(); $sql1 = "UPDATE " . MAIN_DB_PREFIX . "facture_fourn_det as fd"; - $sql1.= " SET fd.fk_code_ventilation = 0"; + $sql1.= " SET fk_code_ventilation = 0"; $sql1.= " WHERE fd.fk_facture_fourn IN ( SELECT f.rowid FROM " . MAIN_DB_PREFIX . "facture_fourn as f"; $sql1.= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($year_current, 1, false)) . "'"; $sql1.= " AND f.datef <= '" . $db->idate(dol_get_last_day($year_current, 12, false)) . "'"; $sql1.= " AND f.entity IN (" . getEntity('accountancy') . ")"; $sql1.= ")"; - + dol_syslog("htdocs/accountancy/customer/index.php fixaccountancycode", LOG_DEBUG); $resql1 = $db->query($sql1); @@ -291,9 +291,9 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. { print '
'; print '
'; - + print_fiche_titre($langs->trans("OtherInfo"), '', ''); - + print "
\n"; print '
' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price(price2num($row[$i])) . '
'; print ''; @@ -301,7 +301,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print ''; } print ''; - + $sql = "SELECT '" . $langs->trans("CAHTF") . "' AS label,"; for($i = 1; $i <= 12; $i ++) { $sql .= " SUM(" . $db->ifsql('MONTH(ff.datef)=' . $i, 'ffd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; @@ -313,15 +313,15 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. $sql .= " AND ff.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; $sql .= " AND ff.fk_statut > 0 "; $sql .= " AND ff.entity IN (" . getEntity('facture_fourn', 0) . ")"; // We don't share object for accountancy - + dol_syslog('/accountancy/supplier/index.php:: sql=' . $sql); $resql = $db->query($sql); if ($resql) { $num = $db->num_rows($resql); - + while ( $row = $db->fetch_row($resql)) { - - + + print ''; for($i = 1; $i <= 12; $i ++) { print ''; @@ -329,7 +329,7 @@ if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. print ''; print ''; } - + $db->free($resql); } else { print $db->lasterror(); // Show last sql error diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 23b207b4fea..e4fd5a7b253 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote From 8d23ffd6d234d57cfc2d59bf3b5fe9984f844662 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 02:05:42 +0200 Subject: [PATCH 042/515] Fix show vat rates --- htdocs/accountancy/journal/expensereportsjournal.php | 2 +- htdocs/accountancy/journal/purchasesjournal.php | 2 +- htdocs/accountancy/journal/sellsjournal.php | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index f751d78b1a6..1a18e89792a 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -134,7 +134,7 @@ if ($result) { $compta_tva = (! empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $account_vat); // Define array to display all VAT rates that use this accounting account $compta_tva - if ((! price2num($obj->tva_tx)) || ! empty($obj->vat_src_code)) + if (price2num($obj->tva_tx) || ! empty($obj->vat_src_code)) { $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); } diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index e80ae3ba059..cbe793deb63 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -145,7 +145,7 @@ if ($result) { $compta_tva = (! empty($vatdata['accountancy_code_buy']) ? $vatdata['accountancy_code_buy'] : $cpttva); // Define array to display all VAT rates that use this accounting account $compta_tva - if ((! price2num($obj->tva_tx)) || ! empty($obj->vat_src_code)) + if (price2num($obj->tva_tx) || ! empty($obj->vat_src_code)) { $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); } diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 425153198a0..cf92905e041 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -150,7 +150,7 @@ if ($result) { $compta_tva = (! empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $cpttva); // Define array to display all VAT rates that use this accounting account $compta_tva - if ((! price2num($obj->tva_tx)) || ! empty($obj->vat_src_code)) + if (price2num($obj->tva_tx) || ! empty($obj->vat_src_code)) { $def_tva[$obj->rowid][$compta_tva][vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')]=(vatrate($obj->tva_tx).($obj->vat_src_code?' ('.$obj->vat_src_code.')':'')); } @@ -674,8 +674,7 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print ""; - print ""; // print ""; print ""; From 658ba50aa812da9e21ef7e4dbddb31fa1e74b6f1 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 02:29:29 +0200 Subject: [PATCH 043/515] Standardize picto status --- htdocs/core/class/fiscalyear.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/fiscalyear.class.php b/htdocs/core/class/fiscalyear.class.php index 22b26983bcc..a273443ef7c 100644 --- a/htdocs/core/class/fiscalyear.class.php +++ b/htdocs/core/class/fiscalyear.class.php @@ -275,7 +275,7 @@ class Fiscalyear extends CommonObject if ($mode == 5) { if ($statut==0 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut4'); - if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut8'); + if ($statut==1 && ! empty($this->statuts_short[$statut])) return $langs->trans($this->statuts_short[$statut]).' '.img_picto($langs->trans($this->statuts_short[$statut]),'statut6'); } } From 74c509eac83498a6432626b2f5d230faf469f031 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 02:36:13 +0200 Subject: [PATCH 044/515] Fix bad var type (must be array) --- htdocs/install/upgrade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index 772d578a841..e7cb6f46d71 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -185,10 +185,10 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 dolibarr_install_syslog("upgrade: " . $langs->transnoentities("ServerVersion") . ": " .$version); // Test database version requirement - $versionmindb=$db::VERSIONMIN; + $versionmindb=explode('.',$db::VERSIONMIN); //print join('.',$versionarray).' - '.join('.',$versionmindb); if (count($versionmindb) && count($versionarray) - && versioncompare($versionarray,$versionmindb) < 0) + && versioncompare($versionarray, $versionmindb) < 0) { // Warning: database version too low. print "\n"; From c381c213a50af78bcf7f6b877e81493bdee2adfd Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Tue, 20 Jun 2017 06:52:41 +0200 Subject: [PATCH 045/515] Fix : Accountancy --- htdocs/accountancy/admin/accountmodel.php | 1 - htdocs/accountancy/admin/defaultaccounts.php | 16 +- htdocs/accountancy/bookkeeping/card.php | 3 +- htdocs/accountancy/bookkeeping/list.php | 1 - htdocs/accountancy/customer/index.php | 232 +++++++++---------- htdocs/accountancy/expensereport/index.php | 3 - htdocs/langs/en_US/salaries.lang | 3 +- 7 files changed, 125 insertions(+), 134 deletions(-) diff --git a/htdocs/accountancy/admin/accountmodel.php b/htdocs/accountancy/admin/accountmodel.php index ff908d6d066..e57354f8566 100644 --- a/htdocs/accountancy/admin/accountmodel.php +++ b/htdocs/accountancy/admin/accountmodel.php @@ -1148,7 +1148,6 @@ else * Show list of dictionary to show */ - $var=true; $lastlineisempty=false; print '
' . $langs->trans("Total") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price($row[$i]) . '' . price($row[13]) . '
" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT"); - print ' '.join(', ',$def_tva[$key][$k]); + print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); print "" . $langs->trans("VAT") . "" . ($mt < 0 ? price(- $mt) : '') . "
".$langs->trans("ErrorDatabaseVersionTooLow",join('.',$versionarray),join('.',$versionmindb))."".$langs->trans("Error")."
'; print ''; diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 227949a3c1c..9cf4d2977fd 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -1,11 +1,11 @@ - * Copyright (C) 2013-2014 Florian Henry - * Copyright (C) 2013-2016 Alexandre Spangaro - * Copyright (C) 2014-2015 Ari Elbaz (elarifr) +/* Copyright (C) 2013-2014 Olivier Geffroy + * Copyright (C) 2013-2014 Florian Henry + * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2014-2015 Ari Elbaz (elarifr) * Copyright (C) 2014 Marcos García - * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2014 Juanjo Menent + * Copyright (C) 2015 Jean-François Ferry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ */ /** - * \file htdocs/accountancy/admin/index.php + * \file htdocs/accountancy/admin/defaultaccounts.php * \ingroup Advanced accountancy * \brief Setup page to configure accounting expert module */ @@ -53,10 +53,10 @@ $action = GETPOST('action', 'alpha'); $list_account_main = array ( 'ACCOUNTING_ACCOUNT_CUSTOMER', 'ACCOUNTING_ACCOUNT_SUPPLIER', + 'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT', ); $list_account = array ( - 'SALARIES_ACCOUNTING_ACCOUNT_PAYMENT', 'ACCOUNTING_PRODUCT_BUY_ACCOUNT', 'ACCOUNTING_PRODUCT_SOLD_ACCOUNT', 'ACCOUNTING_SERVICE_BUY_ACCOUNT', diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 3c6d2faec94..28b7b177860 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -500,8 +500,7 @@ if ($action == 'create') { print "\n"; foreach ( $book->linesmvt as $line ) { - $var = ! $var; - print ''; + print ''; $total_debit += $line->debit; $total_credit += $line->credit; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 1062fd50d87..16d27df15fd 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -438,7 +438,6 @@ $total_debit = 0; $total_credit = 0; foreach ($object->lines as $line ) { - $var = ! $var; $total_debit += $line->debit; $total_credit += $line->credit; diff --git a/htdocs/accountancy/customer/index.php b/htdocs/accountancy/customer/index.php index 24e066917bc..10322c68077 100644 --- a/htdocs/accountancy/customer/index.php +++ b/htdocs/accountancy/customer/index.php @@ -1,9 +1,9 @@ +/* Copyright (C) 2013 Olivier Geffroy * Copyright (C) 2013-2014 Florian Henry * Copyright (C) 2013-2016 Alexandre Spangaro * Copyright (C) 2014 Juanjo Menent - * Copyright (C) 2015 Jean-François Ferry + * Copyright (C) 2015 Jean-François Ferry * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -40,7 +40,7 @@ $langs->load("accountancy"); // Security check if (empty($conf->accounting->enabled)) { - accessforbidden(); + accessforbidden(); } if ($user->societe_id > 0) accessforbidden(); @@ -187,7 +187,7 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { } else { $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; } -$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy +$sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy dol_syslog("htdocs/accountancy/customer/index.php sql=" . $sql, LOG_DEBUG); $result = $db->query($sql); @@ -203,10 +203,6 @@ $buttonbind = '' . $langs->trans("CleanHistory", $year_current) . ''; - - -$var = true; - print_fiche_titre($langs->trans("OverviewOfAmountOfLinesNotBound"), $buttonbind, ''); print '
'; @@ -269,14 +265,14 @@ print '
'; print ''; print ''; for($i = 1; $i <= 12; $i ++) { - print ''; + print ''; } print ''; $sql = "SELECT " . $db->ifsql('aa.account_number IS NULL', "'".$langs->trans('NotMatch')."'", 'aa.account_number') . " AS codecomptable,"; $sql .= " " . $db->ifsql('aa.label IS NULL', "'".$langs->trans('NotMatch')."'", 'aa.label') . " AS intitule,"; for($i = 1; $i <= 12; $i ++) { - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, 'fd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, 'fd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; } $sql .= " SUM(fd.total_ht) as total"; $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; @@ -296,22 +292,22 @@ $sql .= " GROUP BY fd.fk_code_ventilation,aa.account_number,aa.label"; dol_syslog("htdocs/accountancy/customer/index.php sql=" . $sql, LOG_DEBUG); $resql = $db->query($sql); if ($resql) { - $num = $db->num_rows($resql); + $num = $db->num_rows($resql); - while ( $row = $db->fetch_row($resql)) { + while ( $row = $db->fetch_row($resql)) { - print ''; - print ''; - for($i = 2; $i <= 12; $i ++) { - print ''; - } - print ''; - print ''; - print ''; - } - $db->free($resql); + print ''; + print ''; + for($i = 2; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + print ''; + } + $db->free($resql); } else { - print $db->lasterror(); // Show last sql error + print $db->lasterror(); // Show last sql error } print "
' . $langs->trans("Account") . '' . $langs->trans("Label") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . length_accountg($row[0]) . '' . $row[1] . '' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '
' . length_accountg($row[0]) . '' . $row[1] . '' . price($row[$i]) . '' . price($row[13]) . '' . price($row[14]) . '
\n"; @@ -319,101 +315,101 @@ print "
\n"; if ($conf->global->MAIN_FEATURES_LEVEL > 0) // This part of code looks strange. Why showing a report that should rely on result of this step ? { - print '
'; - print '
'; - - print_fiche_titre($langs->trans("OtherInfo"), '', ''); - - print "
\n"; - print ''; - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - - $sql = "SELECT '" . $langs->trans("TotalVente") . "' AS total,"; - for($i = 1; $i <= 12; $i ++) { - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, 'fd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; - } - $sql .= " SUM(fd.total_ht) as total"; - $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; - $sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; - $sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; - $sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; - } else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; - } - - dol_syslog('htdocs/accountancy/customer/index.php'); - $resql = $db->query($sql); - if ($resql) { - $i = 0; - $num = $db->num_rows($resql); - - while ($row = $db->fetch_row($resql)) { - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - print ''; - $i ++; - } - $db->free($resql); - } else { - print $db->lasterror(); // Show last sql error - } - print "
' . $langs->trans("TotalVente") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price($row[$i]) . '' . price($row[13]) . '
\n"; - - if (! empty($conf->margin->enabled)) { - print "
\n"; - print ''; - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - - $sql = "SELECT '" . $langs->trans("Vide") . "' AS marge,"; - for($i = 1; $i <= 12; $i ++) { - $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; - } - $sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total"; - $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; - $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; - $sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; - $sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; - $sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy - if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; - } else { - $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; - } - - dol_syslog('htdocs/accountancy/customer/index.php:: $sql=' . $sql); - $resql = $db->query($sql); - if ($resql) { - $num = $db->num_rows($resql); - - while ($row = $db->fetch_row($resql)) { - - print ''; - for($i = 1; $i <= 12; $i ++) { - print ''; - } - print ''; - print ''; - } - $db->free($resql); - } else { - print $db->lasterror(); // Show last sql error - } - print "
' . $langs->trans("TotalMarge") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price(price2num($row[$i])) . '' . price(price2num($row[13])) . '
\n"; - } + print '
'; + print '
'; + + print_fiche_titre($langs->trans("OtherInfo"), '', ''); + + print "
\n"; + print ''; + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + + $sql = "SELECT '" . $langs->trans("TotalVente") . "' AS total,"; + for($i = 1; $i <= 12; $i ++) { + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, 'fd.total_ht', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; + } + $sql .= " SUM(fd.total_ht) as total"; + $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; + $sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; + $sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; + $sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy + if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; + } else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; + } + + dol_syslog('htdocs/accountancy/customer/index.php'); + $resql = $db->query($sql); + if ($resql) { + $i = 0; + $num = $db->num_rows($resql); + + while ($row = $db->fetch_row($resql)) { + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + $i ++; + } + $db->free($resql); + } else { + print $db->lasterror(); // Show last sql error + } + print "
' . $langs->trans("TotalVente") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price($row[$i]) . '' . price($row[13]) . '
\n"; + + if (! empty($conf->margin->enabled)) { + print "
\n"; + print ''; + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + + $sql = "SELECT '" . $langs->trans("Vide") . "' AS marge,"; + for($i = 1; $i <= 12; $i ++) { + $sql .= " SUM(" . $db->ifsql('MONTH(f.datef)=' . $i, '(fd.total_ht-(fd.qty * fd.buy_price_ht))', '0') . ") AS month" . str_pad($i, 2, '0', STR_PAD_LEFT) . ","; + } + $sql .= " SUM((fd.total_ht-(fd.qty * fd.buy_price_ht))) as total"; + $sql .= " FROM " . MAIN_DB_PREFIX . "facturedet as fd"; + $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "facture as f ON f.rowid = fd.fk_facture"; + $sql .= " WHERE f.datef >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; + $sql .= " AND f.datef <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; + $sql .= " AND f.entity IN (" . getEntity('facture', 0) . ")"; // We don't share object for accountancy + if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_SITUATION . ")"; + } else { + $sql .= " AND f.type IN (" . Facture::TYPE_STANDARD . "," . Facture::TYPE_REPLACEMENT . "," . Facture::TYPE_CREDIT_NOTE . "," . Facture::TYPE_DEPOSIT . "," . Facture::TYPE_SITUATION . ")"; + } + + dol_syslog('htdocs/accountancy/customer/index.php:: $sql=' . $sql); + $resql = $db->query($sql); + if ($resql) { + $num = $db->num_rows($resql); + + while ($row = $db->fetch_row($resql)) { + + print ''; + for($i = 1; $i <= 12; $i ++) { + print ''; + } + print ''; + print ''; + } + $db->free($resql); + } else { + print $db->lasterror(); // Show last sql error + } + print "
' . $langs->trans("TotalMarge") . '' . $langs->trans('MonthShort' . str_pad($i, 2, '0', STR_PAD_LEFT)) . '' . $langs->trans("Total") . '
' . $row[0] . '' . price(price2num($row[$i])) . '' . price(price2num($row[13])) . '
\n"; + } } diff --git a/htdocs/accountancy/expensereport/index.php b/htdocs/accountancy/expensereport/index.php index e9ce1b2e729..fdbf4d1ce4b 100644 --- a/htdocs/accountancy/expensereport/index.php +++ b/htdocs/accountancy/expensereport/index.php @@ -178,9 +178,6 @@ $buttonreset = ' Date: Tue, 20 Jun 2017 06:57:23 +0200 Subject: [PATCH 046/515] Fix: add dist name --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 473a1ac8fba..509578e57ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ # from Dolibarr GitHub repository. # For syntax, see http://about.travis-ci.org/docs/user/languages/php/ +dist: precise sudo: required language: php From 07a2938b832e4d38268dbba5e37ea60ff2255561 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 20 Jun 2017 07:07:12 +0200 Subject: [PATCH 047/515] Fix: try to force php version --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 509578e57ef..db0f3196cf8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ php: - '5.3' - '5.4' - '5.5' -- '5.6' +- '5.6.29' - '7.0' - '7.1' - nightly From 095155a58b8e6e9a620955bcf57935304d0d89d3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 10:06:17 +0200 Subject: [PATCH 048/515] Enhance sql quality. Refused double quotes into sql content. --- htdocs/install/mysql/migration/3.2.0-3.3.0.sql | 4 ++-- htdocs/install/mysql/migration/3.5.0-3.6.0.sql | 2 +- htdocs/install/mysql/migration/repair.sql | 2 +- htdocs/install/mysql/tables/llx_accounting_account.sql | 2 +- htdocs/install/mysql/tables/llx_actioncomm.sql | 2 +- htdocs/install/mysql/tables/llx_advtargetemailing.sql | 2 +- htdocs/install/mysql/tables/llx_budget_lines.sql | 2 +- htdocs/install/mysql/tables/llx_chargesociales.sql | 2 +- test/phpunit/CodingSqlTest.php | 4 ++++ 9 files changed, 13 insertions(+), 9 deletions(-) diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index bc065ee4c1a..2253eb68787 100644 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -659,7 +659,7 @@ insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (305,'PCG99-BASE','FINAN', 'XXXXXX', '511', '51', 'Valeurs à l''encaissement', '1'); insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (306,'PCG99-BASE','FINAN', 'BANK', '512', '51', 'Banques', '1'); insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (307,'PCG99-BASE','FINAN', 'XXXXXX', '514', '51', 'Chèques postaux', '1'); -insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '51', '"Caisses" du Trésor et des établissements publics', '1'); +insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '51', 'Caisses du Trésor et des établissements publics', '1'); insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (309,'PCG99-BASE','FINAN', 'XXXXXX', '516', '51', 'Sociétés de bourse', '1'); insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (310,'PCG99-BASE','FINAN', 'XXXXXX', '517', '51', 'Autres organismes financiers', '1'); insert into llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (311,'PCG99-BASE','FINAN', 'XXXXXX', '518', '51', 'Intérêts courus', '1'); @@ -803,7 +803,7 @@ ALTER TABLE llx_user ADD COLUMN job varchar(128) AFTER firstname; -- Use entity 0 for all entities -INSERT INTO llx_const(name, value, visible, entity) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, __ENCRYPT('["mod_syslog_file"]')__, 0, 0 FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; +INSERT INTO llx_const(name, value, visible, entity) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, __ENCRYPT('[\'mod_syslog_file\']')__, 0, 0 FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; -- New Imports diff --git a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql index 1d7ad10d938..bfd9f1c3d53 100755 --- a/htdocs/install/mysql/migration/3.5.0-3.6.0.sql +++ b/htdocs/install/mysql/migration/3.5.0-3.6.0.sql @@ -635,7 +635,7 @@ INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (305,'PCG99-BASE','FINAN', 'XXXXXX', '511', '304', 'Valeurs à l''encaissement', '1'); INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (306,'PCG99-BASE','FINAN', 'BANK', '512', '304', 'Banques', '1'); INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (307,'PCG99-BASE','FINAN', 'XXXXXX', '514', '304', 'Chèques postaux', '1'); -INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '304', '"Caisses" du Trésor et des établissements publics', '1'); +INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '304', 'Caisses du Trésor et des établissements publics', '1'); INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (309,'PCG99-BASE','FINAN', 'XXXXXX', '516', '304', 'Sociétés de bourse', '1'); INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (310,'PCG99-BASE','FINAN', 'XXXXXX', '517', '304', 'Autres organismes financiers', '1'); INSERT INTO llx_accountingaccount (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (311,'PCG99-BASE','FINAN', 'XXXXXX', '518', '304', 'Intérêts courus', '1'); diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 567bd3aef85..3f1b93778d4 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -18,7 +18,7 @@ -- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) CHARACTER SET utf8; -- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) COLLATE utf8_unicode_ci; --- You can check with "show full columns from llx_accounting_account"; +-- You can check with 'show full columns from llx_accounting_account'; diff --git a/htdocs/install/mysql/tables/llx_accounting_account.sql b/htdocs/install/mysql/tables/llx_accounting_account.sql index 23e53f73740..8abd342cee5 100644 --- a/htdocs/install/mysql/tables/llx_accounting_account.sql +++ b/htdocs/install/mysql/tables/llx_accounting_account.sql @@ -16,7 +16,7 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- --- Table of "accounts" for accountancy expert module +-- Table of 'accounts' for accountancy expert module -- ============================================================================ create table llx_accounting_account diff --git a/htdocs/install/mysql/tables/llx_actioncomm.sql b/htdocs/install/mysql/tables/llx_actioncomm.sql index 48b73bcaa65..dc5c50c288f 100644 --- a/htdocs/install/mysql/tables/llx_actioncomm.sql +++ b/htdocs/install/mysql/tables/llx_actioncomm.sql @@ -65,7 +65,7 @@ create table llx_actioncomm errors_to varchar(256), -- when event was an email, we store here the erros_to recurid varchar(128), -- used to store event id to link each other all the repeating event record - recurrule varchar(128), -- contains string with ical format recurring rule like "FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=19" or "FREQ=WEEKLY;BYDAY=MO" + recurrule varchar(128), -- contains string with ical format recurring rule like 'FREQ=MONTHLY;INTERVAL=2;BYMONTHDAY=19' or 'FREQ=WEEKLY;BYDAY=MO' recurdateend datetime, -- no more recurring event after this date fk_element integer DEFAULT NULL, -- For link to an element (proposal, invoice, order, ...) diff --git a/htdocs/install/mysql/tables/llx_advtargetemailing.sql b/htdocs/install/mysql/tables/llx_advtargetemailing.sql index 7e95f6b8097..d2114821f2e 100644 --- a/htdocs/install/mysql/tables/llx_advtargetemailing.sql +++ b/htdocs/install/mysql/tables/llx_advtargetemailing.sql @@ -14,7 +14,7 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . -- --- Table of "Plan de comptes" for accountancy expert module +-- Table to setup advanced targeting for emailing -- ============================================================================ CREATE TABLE llx_advtargetemailing diff --git a/htdocs/install/mysql/tables/llx_budget_lines.sql b/htdocs/install/mysql/tables/llx_budget_lines.sql index aba5c7f53ee..c93a6e736e7 100644 --- a/htdocs/install/mysql/tables/llx_budget_lines.sql +++ b/htdocs/install/mysql/tables/llx_budget_lines.sql @@ -20,7 +20,7 @@ create table llx_budget_lines ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_budget integer NOT NULL, - fk_project_ids varchar(255) NOT NULL, -- 'IDS:x,y' = List of project ids related to this budget. If budget is dedicated to projects not yet started, we recommand to create a project "Projects to come". 'FILTER:ref=*ABC' = Can also be a dynamic rule to select projects. + fk_project_ids varchar(255) NOT NULL, -- 'IDS:x,y' = List of project ids related to this budget. If budget is dedicated to projects not yet started, we recommand to create a project 'Projects to come'. 'FILTER:ref=*ABC' = Can also be a dynamic rule to select projects. amount double(24,8) NOT NULL, datec datetime, tms timestamp, diff --git a/htdocs/install/mysql/tables/llx_chargesociales.sql b/htdocs/install/mysql/tables/llx_chargesociales.sql index 519ceacc9e5..f52d155ecaa 100644 --- a/htdocs/install/mysql/tables/llx_chargesociales.sql +++ b/htdocs/install/mysql/tables/llx_chargesociales.sql @@ -21,7 +21,7 @@ create table llx_chargesociales ( rowid integer AUTO_INCREMENT PRIMARY KEY, - ref varchar(16), -- "TX...." + ref varchar(16), -- 'TX....' date_ech datetime NOT NULL, -- date echeance libelle varchar(80) NOT NULL, entity integer DEFAULT 1 NOT NULL, -- multi company id diff --git a/test/phpunit/CodingSqlTest.php b/test/phpunit/CodingSqlTest.php index c56f76af246..348043d4a4e 100644 --- a/test/phpunit/CodingSqlTest.php +++ b/test/phpunit/CodingSqlTest.php @@ -160,6 +160,10 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase print __METHOD__." Result for checking we don't have back quote = ".$result."\n"; $this->assertTrue($result===false, 'Found back quote into '.$file.'. Bad.'); + $result=strpos($filecontent,'"'); + print __METHOD__." Result for checking we don't have double quote = ".$result."\n"; + $this->assertTrue($result===false, 'Found double quote into '.$file.'. Bad.'); + $result=strpos($filecontent,'int('); print __METHOD__." Result for checking we don't have 'int(' instead of 'integer' = ".$result."\n"; $this->assertTrue($result===false, 'Found int(x) or tinyint(x) instead of integer or tinyint into '.$file.'. Bad.'); From d8b0199ba23724a9861a1f5bca42a056eb329c32 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 10:24:54 +0200 Subject: [PATCH 049/515] FIX #7040 --- htdocs/core/class/commonobject.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index d98625db1cc..2d52a7ee2d1 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -1469,7 +1469,7 @@ abstract class CommonObject $fieldname = 'multicurrency_code'; $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element; - $sql .= ' SET '.$fieldname.' = "'.$this->db->escape($code).'"'; + $sql .= ' SET '.$fieldname." = '".$this->db->escape($code)."'"; $sql .= ' WHERE rowid='.$this->id; if ($this->db->query($sql)) From 6d42922839c41bf205f985b69b7cc83cab167be4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 10:37:42 +0200 Subject: [PATCH 050/515] FIX #7012 --- htdocs/supplier_proposal/card.php | 68 +++++++++++++++---------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 55da718cebc..a336a96b5e0 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -510,7 +510,7 @@ if (empty($reshook)) } // Add a product line - if ($action == 'addline' && $user->rights->supplier_proposal->creer) + if ($action == 'addline' && $user->rights->supplier_proposal->creer) { $langs->load('errors'); $error = 0; @@ -520,7 +520,7 @@ if (empty($reshook)) $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); $date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); $date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); - + if (GETPOST('prod_entry_mode') == 'free') { $idprod=0; @@ -577,7 +577,7 @@ if (empty($reshook)) if ((GETPOST('prod_entry_mode') != 'free') && empty($error)) // With combolist mode idprodfournprice is > 0 or -1. With autocomplete, idprodfournprice is > 0 or '' { $productsupplier = new ProductFournisseur($db); - + if (empty($conf->global->SUPPLIER_PROPOSAL_WITH_NOPRICEDEFINED)) { $idprod=0; @@ -597,7 +597,7 @@ if (empty($reshook)) $idprod=$productsupplier->get_buyprice(GETPOST('idprodfournprice'), -1); // We force qty to -1 to be sure to find if a supplier price exist $res=$productsupplier->fetch($idprod); } - + if ($idprod > 0) { $pu_ht = $productsupplier->fourn_pu; @@ -606,7 +606,7 @@ if (empty($reshook)) $label = $productsupplier->label; $desc = $productsupplier->description; if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc); - + $tva_tx = get_default_tva($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice')); $tva_npr = get_default_npr($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice')); if (empty($tva_tx)) $tva_npr=0; @@ -664,13 +664,13 @@ if (empty($reshook)) $type = GETPOST('type'); $fk_unit= GETPOST('units', 'alpha'); - + $tva_tx = price2num($tva_tx); // When vat is text input field - + // Local Taxes $localtax1_tx= get_localtax($tva_tx, 1, $mysoc, $object->thirdparty); $localtax2_tx= get_localtax($tva_tx, 2, $mysoc, $object->thirdparty); - + if (GETPOST('price_ht')!=='') { $price_base_type = 'HT'; @@ -683,13 +683,13 @@ if (empty($reshook)) $ht = $ttc / (1 + ($tva_tx / 100)); $price_base_type = 'HT'; } - + $result = $object->addline($desc, $ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $price_base_type, $ttc, $info_bits, $type, - 1, 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, $label, $array_options, $ref_fourn, $fk_unit); //$result = $object->addline($desc, $ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, 0, 0, '', $remise_percent, $price_base_type, $ttc, $type,'','', $date_start, $date_end, $array_options, $fk_unit); } - if (! $error && $result > 0) + if (! $error && $result > 0) { $db->commit(); @@ -706,7 +706,7 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $result=$object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); if ($result < 0) dol_print_error($db,$result); } @@ -716,7 +716,7 @@ if (empty($reshook)) unset($_POST['qty']); unset($_POST['type']); unset($_POST['remise_percent']); - unset($_POST['pu']); + unset($_POST['pu']); unset($_POST['price_ht']); unset($_POST['multicurrency_price_ht']); unset($_POST['price_ttc']); @@ -747,8 +747,8 @@ if (empty($reshook)) unset($_POST['date_endday']); unset($_POST['date_endmonth']); unset($_POST['date_endyear']); - } - else + } + else { $db->rollback(); @@ -1367,11 +1367,11 @@ if ($action == 'create') // Print form confirm print $formconfirm; - + // Supplier proposal card $linkback = '' . $langs->trans("BackToList") . ''; - - + + $morehtmlref='
'; // Ref supplier //$morehtmlref.=$form->editfieldkey("RefSupplier", 'ref_supplier', $object->ref_supplier, $object, $user->rights->fournisseur->commande->creer, 'string', '', 0, 1); @@ -1392,7 +1392,7 @@ if ($action == 'create') $morehtmlref.=''; $morehtmlref.=''; $morehtmlref.=''; - $morehtmlref.=$formproject->select_projects($object->socid, $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); + $morehtmlref.=$formproject->select_projects((empty($conf->global->PROJECT_CAN_ALWAYS_LINK_TO_ALL_SUPPLIERS)?$object->socid:-1), $object->fk_project, 'projectid', $maxlength, 0, 1, 0, 1, 0, 0, '', 1); $morehtmlref.=''; $morehtmlref.=''; } else { @@ -1411,15 +1411,15 @@ if ($action == 'create') } } $morehtmlref.='
'; - - + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - - + + print '
'; print '
'; print '
'; - + print ''; // Payment term @@ -1562,14 +1562,14 @@ if ($action == 'create') include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; print '
'; - + print '
'; print '
'; print '
'; print '
'; - + print ''; - + if (!empty($conf->multicurrency->enabled) && ($object->multicurrency_code != $conf->currency)) { // Multicurrency Amount HT @@ -1587,7 +1587,7 @@ if ($action == 'create') print ''; print ''; } - + // Amount HT print ''; print ''; @@ -1618,18 +1618,18 @@ if ($action == 'create') print ''; print '
' . price($object->multicurrency_total_ttc, '', $langs, 0, - 1, - 1, (!empty($object->multicurrency_code) ? $object->multicurrency_code : $conf->currency)) . '
' . $langs->trans('AmountHT') . '' . price($object->total_ht, '', $langs, 0, - 1, - 1, $conf->currency) . '
'; - + // Margin Infos /*if (! empty($conf->margin->enabled)) { $formmargin->displayMarginInfos($object); - }*/ + }*/ print '
'; print '
'; print '
'; - + print '

'; - + if (! empty($conf->global->MAIN_DISABLE_CONTACTS_TAB)) { $blocname = 'contacts'; $title = $langs->trans('ContactsAddresses'); @@ -1666,7 +1666,7 @@ if ($action == 'create') // Add free products/services form global $forceall, $senderissupplier, $dateSelector; $forceall=1; $senderissupplier=2; $dateSelector=0; // $senderissupplier=2 is same than 1 but disable test on minimum qty. - + if (! empty($object->lines)) $ret = $object->printObjectLines($action, $soc, $mysoc, $lineid, 1); @@ -1814,12 +1814,12 @@ if ($action == 'create') print $formfile->showdocuments('supplier_proposal', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', 0, '', $soc->default_lang); - + // Show links to link elements $linktoelem = $form->showLinkToObjectBlock($object, null, array('supplier_proposal')); $somethingshown = $form->showLinkedObjectBlock($object, $linktoelem); - + print '
'; // List of actions on element From d572bd4f34e6ab85718a035d0300ea48dfe53cef Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 10:45:20 +0200 Subject: [PATCH 051/515] FIX #7003 --- htdocs/projet/ganttchart.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/projet/ganttchart.inc.php b/htdocs/projet/ganttchart.inc.php index f60ada41bb1..8ac203500b3 100644 --- a/htdocs/projet/ganttchart.inc.php +++ b/htdocs/projet/ganttchart.inc.php @@ -141,7 +141,7 @@ else function constructGanttLine($tarr,$task,$project_dependencies,$level=0,$project_id=null) { global $dateformatinput2; - + $start_date = $task["task_start_date"]; $end_date = $task["task_end_date"]; if (!$end_date) $end_date = $start_date; @@ -206,7 +206,7 @@ function constructGanttLine($tarr,$task,$project_dependencies,$level=0,$project_ $s = "\n// Add taks id=".$task["task_id"]." level = ".$level."\n"; // $s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js($name)."','".$start_date."', '".$end_date."', '".$task['task_color']."', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]>0?1:0).", '".$parent."', 1, '".($depend?$depend:"")."', '".$note."'));"; // For JSGanttImproved - $s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js(trim($name))."','".$start_date."', '".$end_date."', '".$task['task_css']."', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]).", '".$parent."', 1, '".($depend?$depend:$parent."SS")."', '".($percent >= 0 ? $percent.'%' : '0%')."','".$task['note']."'));"; + $s.= "g.AddTaskItem(new JSGantt.TaskItem(".$task['task_id'].",'".dol_escape_js(trim($name))."','".$start_date."', '".$end_date."', '".$task['task_css']."', '".$link."', ".$task['task_milestone'].", '".$resources."', ".($percent >= 0 ? $percent : 0).", ".($task["task_is_group"]).", '".$parent."', 1, '".($depend?$depend:$parent."SS")."', '".($percent >= 0 ? $percent.'%' : '0%')."','".dol_escape_js($task['note'])."'));"; echo $s; From f2a2cfd8c85ea7241e4e830caa772921d7fef765 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 11:46:30 +0200 Subject: [PATCH 052/515] Look and feel v6 --- htdocs/admin/multicurrency.php | 53 +++++++++++++++------------------- 1 file changed, 23 insertions(+), 30 deletions(-) diff --git a/htdocs/admin/multicurrency.php b/htdocs/admin/multicurrency.php index 3aa6ad5dc26..ac5ab678109 100644 --- a/htdocs/admin/multicurrency.php +++ b/htdocs/admin/multicurrency.php @@ -61,7 +61,7 @@ if (preg_match('/set_(.*)/',$action,$reg)) dol_print_error($db); } } - + if (preg_match('/del_(.*)/',$action,$reg)) { $code=$reg[1]; @@ -79,7 +79,7 @@ if (preg_match('/del_(.*)/',$action,$reg)) if ($action == 'add_currency') { $langs->loadCacheCurrencies(''); - + $code = GETPOST('code', 'alpha'); $rate = GETPOST('rate', 'alpha'); $currency = new MultiCurrency($db); @@ -96,23 +96,23 @@ if ($action == 'add_currency') elseif ($action == 'update_currency') { $submit = GETPOST('submit', 'alpha'); - + if ($submit == $langs->trans('Modify')) { $fk_multicurrency = GETPOST('fk_multicurrency', 'int'); $rate = GETPOST('rate', 'float'); $currency = new MultiCurrency($db); - + if ($currency->fetch($fk_multicurrency) > 0) { $currency->updateRate($rate); - } + } } elseif ($submit == $langs->trans('Delete')) { $fk_multicurrency = GETPOST('fk_multicurrency', 'int'); $currency = new MultiCurrency($db); - + if ($currency->fetch($fk_multicurrency) > 0) { if ($currency->delete() > 0) setEventMessages($langs->trans('RecordDeleted'), array()); @@ -120,14 +120,14 @@ elseif ($action == 'update_currency') } } } -elseif ($action == 'synchronize') +elseif ($action == 'synchronize') { $response = GETPOST('response'); $response = json_decode($response); - + if ($response->success) { - MultiCurrency::syncRates($response); + MultiCurrency::syncRates($response); } else { @@ -159,19 +159,12 @@ $page_name = "MultiCurrencySetup"; llxHeader('', $langs->trans($page_name)); // Subheader -$linkback = '' - . $langs->trans("BackToModuleList") . ''; +$linkback = '' . $langs->trans("BackToModuleList") . ''; print_fiche_titre($langs->trans($page_name), $linkback); // Configuration header $head = multicurrencyAdminPrepareHead(); -dol_fiche_head( - $head, - 'settings', - $langs->trans("ModuleSetup"), - 0, - "multicurrency" -); +dol_fiche_head($head, 'settings', $langs->trans("ModuleSetup"), -1, "multicurrency"); // Setup page goes here $form=new Form($db); @@ -225,7 +218,7 @@ print ''; print '
'.$langs->transnoentitiesnoconv("multicurrency_modifyRateApplication").'
'.$langs->transnoentitiesnoconv("multicurrency_appId").' 
'.$langs->transnoentitiesnoconv("multicurrency_appCurrencySource").' 
'.$langs->transnoentitiesnoconv("multicurrency_alternateCurrencySource").' 
'; print '
'; } @@ -333,8 +326,8 @@ print ''; foreach ($TCurrency as &$currency) { if($currency->code == $conf->currency) continue; - - + + print ''; print ''.$currency->code.' - '.$currency->name.''; print ' '; @@ -362,7 +355,7 @@ print ' { $("#bt_sync").attr("disabled", true); var url_sync = "http://apilayer.net/api/live?access_key='.$conf->global->MULTICURRENCY_APP_ID.'&format=1'.(!empty($conf->global->MULTICURRENCY_APP_SOURCE) ? '&source='.$conf->global->MULTICURRENCY_APP_SOURCE : '').'"; - + $.ajax({ url: url_sync, dataType: "jsonp" From 08a86fa03dcc5ee4c46f9b001de3cccafed17b2f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 12:17:13 +0200 Subject: [PATCH 053/515] Start #6981 --- htdocs/commande/stats/index.php | 6 +++--- htdocs/core/lib/files.lib.php | 2 +- htdocs/fourn/commande/list.php | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/htdocs/commande/stats/index.php b/htdocs/commande/stats/index.php index 8967e22a160..ed9f8906804 100644 --- a/htdocs/commande/stats/index.php +++ b/htdocs/commande/stats/index.php @@ -76,7 +76,7 @@ if ($mode == 'customer') if ($mode == 'supplier') { $title=$langs->trans("OrdersStatisticsSuppliers").' ('.$langs->trans("SentToSuppliers").")"; - $dir=$conf->fournisseur->dir_output.'/commande/temp'; + $dir=$conf->fournisseur->commande->dir_temp; } llxHeader('', $title); @@ -322,7 +322,7 @@ foreach ($data as $val) while (! empty($year) && $oldyear > $year+1) { // If we have empty year $oldyear--; - + print ''; print '0?'&userid='.$userid:'').'">'.$oldyear.''; print '0'; @@ -334,7 +334,7 @@ foreach ($data as $val) print ''; } - + print ''; print '0?'&userid='.$userid:'').'">'.$year.''; print ''.$val['nb'].''; diff --git a/htdocs/core/lib/files.lib.php b/htdocs/core/lib/files.lib.php index 7f2be7f5a3d..6257bcb08db 100644 --- a/htdocs/core/lib/files.lib.php +++ b/htdocs/core/lib/files.lib.php @@ -1912,7 +1912,7 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, elseif ($modulepart == 'orderstatssupplier' && !empty($conf->fournisseur->dir_output)) { if ($fuser->rights->fournisseur->commande->{$lire}) $accessallowed=1; - $original_file=$conf->fournisseur->dir_output.'/commande/temp/'.$original_file; + $original_file=$conf->fournisseur->commande->dir_temp.'/'.$original_file; } // Wrapping pour les images des stats factures elseif ($modulepart == 'billstats' && !empty($conf->facture->dir_temp)) diff --git a/htdocs/fourn/commande/list.php b/htdocs/fourn/commande/list.php index 0b988e4d96b..3e3fe658155 100644 --- a/htdocs/fourn/commande/list.php +++ b/htdocs/fourn/commande/list.php @@ -1111,7 +1111,7 @@ if ($resql) // Other picto tool print ''; $filename=dol_sanitizeFileName($obj->ref); - $filedir=$conf->fournisseur->dir_output.'/commande' . '/' . dol_sanitizeFileName($obj->ref); + $filedir=$conf->fournisseur->dir_output.'/commande/' . dol_sanitizeFileName($obj->ref); print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir); print ''; From 3ec0e6f7efc965da8991a17541e20e1c28cf6b0d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 12:31:08 +0200 Subject: [PATCH 054/515] FIX #6885 --- htdocs/core/ajax/ajaxdirpreview.php | 16 ++----- htdocs/core/class/html.formfile.class.php | 56 +++++++++++------------ 2 files changed, 33 insertions(+), 39 deletions(-) diff --git a/htdocs/core/ajax/ajaxdirpreview.php b/htdocs/core/ajax/ajaxdirpreview.php index bbc7647c802..f6077bf6261 100644 --- a/htdocs/core/ajax/ajaxdirpreview.php +++ b/htdocs/core/ajax/ajaxdirpreview.php @@ -162,21 +162,13 @@ if ($type == 'directory') // Auto area for suppliers invoices else if ($module == 'invoice') $upload_dir = $conf->facture->dir_output; // Auto area for suppliers invoices - else if ($module == 'invoice_supplier') - { - $relativepath='facture'; - $upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath; - } + else if ($module == 'invoice_supplier') $upload_dir = $conf->fournisseur->facture->dir_output; // Auto area for customers orders else if ($module == 'propal') $upload_dir = $conf->propal->dir_output; // Auto area for customers orders else if ($module == 'order') $upload_dir = $conf->commande->dir_output; // Auto area for suppliers orders - else if ($module == 'order_supplier') - { - $relativepath='commande'; - $upload_dir = $conf->fournisseur->dir_output.'/'.$relativepath; - } + else if ($module == 'order_supplier') $upload_dir = $conf->fournisseur->commande->dir_output; // Auto area for suppliers invoices else if ($module == 'contract') $upload_dir = $conf->contrat->dir_output; // Auto area for products @@ -197,10 +189,12 @@ if ($type == 'directory') $param.='&module='.$module; $textifempty=($section?$langs->trans("NoFileFound"):($showonrightsize=='featurenotyetavailable'?$langs->trans("FeatureNotYetAvailable"):$langs->trans("NoFileFound"))); + if ($module == 'company') $excludefiles[]='^contact$'; // The subdir 'contact' contains files of contacts with no id of thirdparty. + $filearray=dol_dir_list($upload_dir,"files",1,'', $excludefiles, $sortfield, $sorting,1); $formfile->list_of_autoecmfiles($upload_dir,$filearray,$module,$param,1,'',$user->rights->ecm->upload,1,$textifempty,$maxlengthname,$url); } - //Manual area + // Manual area else { $relativepath=$ecmdir->getRelativePath(); diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index 6e46efe3fdf..05c5982dc00 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -331,11 +331,11 @@ class FormFile jQuery(\'#togglemassfilesarea\').text("('.dol_escape_js($langs->trans("Hide")).')"); } return false; - }); + }); }); '; - } - + } + $titletoshow=$langs->trans("Documents"); if (! empty($title)) $titletoshow=$title; @@ -556,7 +556,7 @@ class FormFile if (empty($noform)) $out.= '
'; $out.= ''; $out.= ''; - + $out.= load_fiche_titre($titletoshow, '', ''); $out.= ''; @@ -644,9 +644,9 @@ class FormFile $sortfield = $sortorder = null; $res = $link->fetchAll($link_list, $object->element, $object->id, $sortfield, $sortorder); } - + $out.= ''."\n"; - + // Show title of array if not already shown if ((! empty($file_list) || ! empty($link_list) || preg_match('/^massfilesarea/', $modulepart)) && ! $headershown) { @@ -671,7 +671,7 @@ class FormFile $documenturl = DOL_URL_ROOT.'/document.php'; if (isset($conf->global->DOL_URL_ROOT_DOCUMENT_PHP)) $documenturl=$conf->global->DOL_URL_ROOT_DOCUMENT_PHP; - + // Show file name with link to download $out.= ''; @@ -799,7 +799,7 @@ class FormFile $this->infofiles=array('nboffiles'=>0,'extensions'=>array(),'files'=>array()); if (! empty($conf->dol_use_jmobile)) return ''; - + $file_list=dol_dir_list($filedir, 'files', 0, preg_quote(basename($modulesubdir),'/').'[^\-]+', '\.meta$|\.png$'); // Get list of files starting with name of ref (but not followed by "-" to discard uploaded files) // For ajax treatment @@ -919,7 +919,7 @@ class FormFile if ($user->rights->service->creer && $object->type == Product::TYPE_SERVICE) $permtoeditline=1; } } - if (empty($conf->global->MAIN_UPLOAD_DOC)) + if (empty($conf->global->MAIN_UPLOAD_DOC)) { $permtoeditline=0; $permonobject=0; @@ -928,7 +928,7 @@ class FormFile // Show list of existing files if (empty($useinecm)) print load_fiche_titre($title?$title:$langs->trans("AttachedFiles")); if (empty($url)) $url=$_SERVER["PHP_SELF"]; - + print ''."\n"; if (GETPOST('action') == 'editfile' && $permtoeditline) { @@ -938,7 +938,7 @@ class FormFile print ''; } print '
'; $out.= '"; $out.=''; $out.=''; @@ -756,7 +756,7 @@ class FormFile } $this->numoffiles++; } - + if (count($file_list) == 0 && count($link_list) == 0 && $headershown) { $out.='
'.$langs->trans("None").'
'."\n"; - + print ''; print_liste_field_titre($langs->trans("Documents2"),$url,"name","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Size"),$url,"size","",$param,'align="right"',$sortfield,$sortorder); @@ -971,13 +971,13 @@ class FormFile $relativepath=preg_replace('/^.*\/produit\//','',$file['path']).'/'; } $var=!$var; - + $editline=0; - + print ''."\n"; print ''; print '"; @@ -1103,7 +1103,7 @@ class FormFile { print ''; } - + return $nboffiles; } } @@ -1489,11 +1489,11 @@ class FormFile return $nboflinks; } - - + + /** * Show detail icon with link for preview - * + * * @param array $file File * @param string $modulepart propal, facture, facture_fourn, ... * @param string $relativepath Relative path of docs From 4dda771079d04bb22eb5166ad2aff8042e237184 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 12:54:26 +0200 Subject: [PATCH 055/515] FIX #6973 --- htdocs/admin/mails_templates.php | 404 +++++++++++++++++-------------- 1 file changed, 216 insertions(+), 188 deletions(-) diff --git a/htdocs/admin/mails_templates.php b/htdocs/admin/mails_templates.php index cc35aed19be..123877f7f4e 100644 --- a/htdocs/admin/mails_templates.php +++ b/htdocs/admin/mails_templates.php @@ -50,6 +50,7 @@ $action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view'; $confirm=GETPOST('confirm','alpha'); $id=GETPOST('id','int'); $rowid=GETPOST('rowid','alpha'); +$search_label=GETPOST('search_label','alpha'); $allowed=$user->admin; if (! $allowed) accessforbidden(); @@ -78,10 +79,6 @@ $hookmanager->initHooks(array('emailtemplates')); $tabname=array(); $tabname[25]= MAIN_DB_PREFIX."c_email_templates"; -// Requests to extract data -$tabsql=array(); -$tabsql[25]= "SELECT rowid as rowid, label, type_template, private, position, topic, content_lines, content, active FROM ".MAIN_DB_PREFIX."c_email_templates WHERE entity IN (".getEntity('email_template').")"; - // Criteria to sort dictionaries $tabsqlsort=array(); $tabsqlsort[25]="label ASC"; @@ -173,211 +170,223 @@ $id = 25; * Actions */ -if (GETPOST('button_removefilter') || GETPOST('button_removefilter.x') || GETPOST('button_removefilter_x')) -{ - //$search_country_id = ''; -} +if (GETPOST('cancel')) { $action='list'; $massaction=''; } +if (! GETPOST('confirmmassaction') && $massaction != 'presend' && $massaction != 'confirm_presend') { $massaction=''; } -// Actions add or modify an entry into a dictionary -if (GETPOST('actionadd') || GETPOST('actionmodify')) -{ - $listfield=explode(',', str_replace(' ', '',$tabfield[$id])); - $listfieldinsert=explode(',',$tabfieldinsert[$id]); - $listfieldmodify=explode(',',$tabfieldinsert[$id]); - $listfieldvalue=explode(',',$tabfieldvalue[$id]); +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); - // Check that all fields are filled - $ok=1; - foreach ($listfield as $f => $value) +if (empty($reshook)) +{ + // Purge search criteria + if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") ||GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers { - if ($value == 'content') continue; - if ($value == 'content_lines') continue; - if ($value == 'content') $value='content-'.$rowid; - if ($value == 'content_lines') $value='content_lines-'.$rowid; - - if (! isset($_POST[$value]) || $_POST[$value]=='') - { - $ok=0; - $fieldnamekey=$listfield[$f]; - // We take translate key of field - if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label'; - if ($fieldnamekey == 'libelle_facture') $fieldnamekey = 'LabelOnDocuments'; - if ($fieldnamekey == 'code') $fieldnamekey = 'Code'; - if ($fieldnamekey == 'note') $fieldnamekey = 'Note'; - if ($fieldnamekey == 'type') $fieldnamekey = 'Type'; - - setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); - } + $search_label=''; + $toselect=''; + $search_array_options=array(); } - // Si verif ok et action add, on ajoute la ligne - if ($ok && GETPOST('actionadd')) + // Actions add or modify an entry into a dictionary + if (GETPOST('actionadd') || GETPOST('actionmodify')) { - if ($tabrowid[$id]) + $listfield=explode(',', str_replace(' ', '',$tabfield[$id])); + $listfieldinsert=explode(',',$tabfieldinsert[$id]); + $listfieldmodify=explode(',',$tabfieldinsert[$id]); + $listfieldvalue=explode(',',$tabfieldvalue[$id]); + + // Check that all fields are filled + $ok=1; + foreach ($listfield as $f => $value) { - // Recupere id libre pour insertion - $newid=0; - $sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id]; - $result = $db->query($sql); - if ($result) + if ($value == 'content') continue; + if ($value == 'content_lines') continue; + if ($value == 'content') $value='content-'.$rowid; + if ($value == 'content_lines') $value='content_lines-'.$rowid; + + if (! isset($_POST[$value]) || $_POST[$value]=='') { - $obj = $db->fetch_object($result); - $newid=($obj->newid + 1); + $ok=0; + $fieldnamekey=$listfield[$f]; + // We take translate key of field + if ($fieldnamekey == 'libelle' || ($fieldnamekey == 'label')) $fieldnamekey='Label'; + if ($fieldnamekey == 'libelle_facture') $fieldnamekey = 'LabelOnDocuments'; + if ($fieldnamekey == 'code') $fieldnamekey = 'Code'; + if ($fieldnamekey == 'note') $fieldnamekey = 'Note'; + if ($fieldnamekey == 'type') $fieldnamekey = 'Type'; - } else { - dol_print_error($db); + setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); } } - // Add new entry - $sql = "INSERT INTO ".$tabname[$id]." ("; - // List of fields - if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert)) - $sql.= $tabrowid[$id].","; - $sql.= $tabfieldinsert[$id]; - $sql.=",active)"; - $sql.= " VALUES("; + // Si verif ok et action add, on ajoute la ligne + if ($ok && GETPOST('actionadd')) + { + if ($tabrowid[$id]) + { + // Recupere id libre pour insertion + $newid=0; + $sql = "SELECT max(".$tabrowid[$id].") newid from ".$tabname[$id]; + $result = $db->query($sql); + if ($result) + { + $obj = $db->fetch_object($result); + $newid=($obj->newid + 1); - // List of values - if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert)) - $sql.= $newid.","; - $i=0; - foreach ($listfieldinsert as $f => $value) - { - //var_dump($i.' - '.$listfieldvalue[$i].' - '.$_POST[$listfieldvalue[$i]].' - '.$value); - if ($value == 'entity') { - $_POST[$listfieldvalue[$i]] = $conf->entity; + } else { + dol_print_error($db); + } } - if ($i) $sql.=","; - if ($value == 'private' && ! is_numeric($_POST[$listfieldvalue[$i]])) $_POST[$listfieldvalue[$i]]='0'; - if ($value == 'position' && ! is_numeric($_POST[$listfieldvalue[$i]])) $_POST[$listfieldvalue[$i]]='1'; - if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; // For vat, we want/accept code = '' - else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'"; - $i++; - } - $sql.=",1)"; - dol_syslog("actionadd", LOG_DEBUG); - $result = $db->query($sql); - if ($result) // Add is ok - { - setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs'); - $_POST=array('id'=>$id); // Clean $_POST array, we keep only - } - else - { - if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { - setEventMessages($langs->transnoentities("ErrorRecordAlreadyExists"), null, 'errors'); + // Add new entry + $sql = "INSERT INTO ".$tabname[$id]." ("; + // List of fields + if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert)) + $sql.= $tabrowid[$id].","; + $sql.= $tabfieldinsert[$id]; + $sql.=",active)"; + $sql.= " VALUES("; + + // List of values + if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldinsert)) + $sql.= $newid.","; + $i=0; + foreach ($listfieldinsert as $f => $value) + { + //var_dump($i.' - '.$listfieldvalue[$i].' - '.$_POST[$listfieldvalue[$i]].' - '.$value); + if ($value == 'entity') { + $_POST[$listfieldvalue[$i]] = $conf->entity; + } + if ($i) $sql.=","; + if ($value == 'private' && ! is_numeric($_POST[$listfieldvalue[$i]])) $_POST[$listfieldvalue[$i]]='0'; + if ($value == 'position' && ! is_numeric($_POST[$listfieldvalue[$i]])) $_POST[$listfieldvalue[$i]]='1'; + if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; // For vat, we want/accept code = '' + else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'"; + $i++; } - else { - dol_print_error($db); + $sql.=",1)"; + + dol_syslog("actionadd", LOG_DEBUG); + $result = $db->query($sql); + if ($result) // Add is ok + { + setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs'); + $_POST=array('id'=>$id); // Clean $_POST array, we keep only + } + else + { + if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') { + setEventMessages($langs->transnoentities("ErrorRecordAlreadyExists"), null, 'errors'); + } + else { + dol_print_error($db); + } + } + } + + // Si verif ok et action modify, on modifie la ligne + if ($ok && GETPOST('actionmodify')) + { + if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } + else { $rowidcol="rowid"; } + + // Modify entry + $sql = "UPDATE ".$tabname[$id]." SET "; + // Modifie valeur des champs + if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldmodify)) + { + $sql.= $tabrowid[$id]."="; + $sql.= "'".$db->escape($rowid)."', "; + } + $i = 0; + foreach ($listfieldmodify as $field) + { + if ($field == 'content') $_POST['content']=$_POST['content-'.$rowid]; + if ($field == 'content_lines') $_POST['content_lines']=$_POST['content_lines-'.$rowid]; + if ($field == 'entity') { + $_POST[$listfieldvalue[$i]] = $conf->entity; + } + if ($i) $sql.=","; + $sql.= $field."="; + if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; // For vat, we want/accept code = '' + else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'"; + $i++; + } + $sql.= " WHERE ".$rowidcol." = '".$rowid."'"; + + dol_syslog("actionmodify", LOG_DEBUG); + //print $sql; + $resql = $db->query($sql); + if (! $resql) + { + setEventMessages($db->error(), null, 'errors'); } } } - // Si verif ok et action modify, on modifie la ligne - if ($ok && GETPOST('actionmodify')) + if ($action == 'confirm_delete' && $confirm == 'yes') // delete { if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } else { $rowidcol="rowid"; } - // Modify entry - $sql = "UPDATE ".$tabname[$id]." SET "; - // Modifie valeur des champs - if ($tabrowid[$id] && ! in_array($tabrowid[$id],$listfieldmodify)) - { - $sql.= $tabrowid[$id]."="; - $sql.= "'".$db->escape($rowid)."', "; - } - $i = 0; - foreach ($listfieldmodify as $field) - { - if ($field == 'content') $_POST['content']=$_POST['content-'.$rowid]; - if ($field == 'content_lines') $_POST['content_lines']=$_POST['content_lines-'.$rowid]; - if ($field == 'entity') { - $_POST[$listfieldvalue[$i]] = $conf->entity; - } - if ($i) $sql.=","; - $sql.= $field."="; - if ($_POST[$listfieldvalue[$i]] == '') $sql.="null"; // For vat, we want/accept code = '' - else $sql.="'".$db->escape($_POST[$listfieldvalue[$i]])."'"; - $i++; - } - $sql.= " WHERE ".$rowidcol." = '".$rowid."'"; + $sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."='".$rowid."'"; - dol_syslog("actionmodify", LOG_DEBUG); - //print $sql; - $resql = $db->query($sql); - if (! $resql) + dol_syslog("delete", LOG_DEBUG); + $result = $db->query($sql); + if (! $result) { - setEventMessages($db->error(), null, 'errors'); + if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') + { + setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors'); + } + else + { + dol_print_error($db); + } } } -} -if ($action == 'confirm_delete' && $confirm == 'yes') // delete -{ - if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } - else { $rowidcol="rowid"; } - - $sql = "DELETE from ".$tabname[$id]." WHERE ".$rowidcol."='".$rowid."'"; - - dol_syslog("delete", LOG_DEBUG); - $result = $db->query($sql); - if (! $result) + // activate + if ($action == $acts[0]) { - if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') - { - setEventMessages($langs->transnoentities("ErrorRecordIsUsedByChild"), null, 'errors'); + if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } + else { $rowidcol="rowid"; } + + if ($rowid) { + $sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol."='".$rowid."'"; } - else + elseif ($code) { + $sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE code='".$code."'"; + } + + $result = $db->query($sql); + if (!$result) + { + dol_print_error($db); + } + } + + // disable + if ($action == $acts[1]) + { + if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } + else { $rowidcol="rowid"; } + + if ($rowid) { + $sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol."='".$rowid."'"; + } + elseif ($code) { + $sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE code='".$code."'"; + } + + $result = $db->query($sql); + if (!$result) { dol_print_error($db); } } } -// activate -if ($action == $acts[0]) -{ - if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } - else { $rowidcol="rowid"; } - - if ($rowid) { - $sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE ".$rowidcol."='".$rowid."'"; - } - elseif ($code) { - $sql = "UPDATE ".$tabname[$id]." SET active = 1 WHERE code='".$code."'"; - } - - $result = $db->query($sql); - if (!$result) - { - dol_print_error($db); - } -} - -// disable -if ($action == $acts[1]) -{ - if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } - else { $rowidcol="rowid"; } - - if ($rowid) { - $sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE ".$rowidcol."='".$rowid."'"; - } - elseif ($code) { - $sql = "UPDATE ".$tabname[$id]." SET active = 0 WHERE code='".$code."'"; - } - - $result = $db->query($sql); - if (!$result) - { - dol_print_error($db); - } -} - - /* * View @@ -416,8 +425,11 @@ if ($action == 'delete') } //var_dump($elementList); -// Complete requete recherche valeurs avec critere de tri -$sql=$tabsql[$id]; + +$sql="SELECT rowid as rowid, label, type_template, private, position, topic, content_lines, content, active"; +$sql.=" FROM ".MAIN_DB_PREFIX."c_email_templates"; +$sql.=" WHERE entity IN (".getEntity('email_template').")"; +if ($search_label) $sql.=natural_search('label', $search_label); if ($search_country_id > 0) { @@ -572,9 +584,19 @@ if ($action != 'edit') $colspan=count($fieldlist)+1; - print ''; // Keep   to have a line with enough height + //print ''; // Keep   to have a line with enough height } +print '
'; - + //print "XX".$file['name']; //$file['name'] must be utf8 print '\n"; @@ -1038,7 +1038,7 @@ class FormFile // Delete or view link // ($param must start with &) print ''; - if ($useinecm) + if ($useinecm) { print ''.img_view('default', 0, 'class="paddingrightonly"').''; } @@ -1046,10 +1046,10 @@ class FormFile { $newmodulepart=$modulepart; if (in_array($modulepart, array('product','produit','service'))) $newmodulepart='produit|service'; - - $disablecrop=1; + + $disablecrop=1; if (in_array($modulepart, array('product','produit','service','holiday','project'))) $disablecrop=0; - + if (! $disablecrop && image_format_supported($file['name']) > 0) { if ($permtoeditline) @@ -1058,7 +1058,7 @@ class FormFile print ''.img_picto($langs->trans("Resize"),DOL_URL_ROOT.'/theme/common/transform-crop-and-resize','class="paddingrightonly"',1).''; } } - + if ($permtoeditline) { print ''.img_edit('default',0,'class="paddingrightonly"').''; @@ -1076,7 +1076,7 @@ class FormFile if (! empty($conf->dol_use_jmobile)) $useajax=0; if (empty($conf->use_javascript_ajax)) $useajax=0; if (! empty($conf->global->MAIN_ECM_DISABLE_JS)) $useajax=0; - + print ''.img_delete().''; } print "
 
 
'; +print ''; + +print '
'; + +print '
'; +print ''; +print ''; + +print ''; // List of available record in database dol_syslog("htdocs/admin/dict", LOG_DEBUG); @@ -599,8 +621,26 @@ if ($resql) print ''; } + + // Title line with search boxes + print ''; + $filterfound=0; + foreach ($fieldlist as $field => $value) + { + if ($value == 'label') print ''; + elseif (! in_array($value, array('content', 'content_lines'))) print ''; + } + if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) print ''; + print ''; + // Action column + print ''; + print ''; + // Title of lines - print ''; + print ''; foreach ($fieldlist as $field => $value) { // Determine le nom du champ par rapport aux noms possibles @@ -642,18 +682,6 @@ if ($resql) print getTitleFieldOfList(''); print ''; - // Title line with search boxes - print ''; - $filterfound=0; - foreach ($fieldlist as $field => $value) - { - if (! in_array($field, array('content', 'content_lines'))) print ''; - } - if (empty($conf->global->MAIN_EMAIL_TEMPLATES_FOR_OBJECT_LINES)) print ''; - print ''; - print ''; - print ''; - if ($num) { // Lines with values From efe5d79a862f72b3da7aecbf07e508d7e6d23b65 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 12:58:43 +0200 Subject: [PATCH 056/515] Work on #6958. Only one type of invoice supported for supplier invoices --- .../mod_facture_fournisseur_tulip.php | 33 +++++++++++-------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php index b7a3801a9cd..2e155c04df8 100644 --- a/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php +++ b/htdocs/core/modules/supplier_invoice/mod_facture_fournisseur_tulip.php @@ -72,27 +72,32 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices $tooltip.=$langs->trans("GenericMaskCodes5"); // Parametrage du prefix - $texte.= ''; + $texte.= ''; $texte.= ''; $texte.= ''; $texte.= ''; - // Parametrage du prefix des replacement - $texte.= ''; - $texte.= ''; - $texte.= ''; + if ($conf->global->MAIN_FEATURE_LEVEL >= 2) + { + // Parametrage du prefix des replacement + $texte.= ''; + $texte.= ''; + $texte.= ''; - // Parametrage du prefix des avoirs - $texte.= ''; - $texte.= ''; - $texte.= ''; + // Parametrage du prefix des avoirs + $texte.= ''; + $texte.= ''; + $texte.= ''; - // Parametrage du prefix des acomptes - $texte.= ''; - $texte.= ''; - $texte.= ''; + // Parametrage du prefix des acomptes + $texte.= ''; + $texte.= ''; + $texte.= ''; + } $texte.= '
'; + $searchpicto=$form->showFilterButtons(); + print $searchpicto; + print '
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceStandard").'):
'.$langs->trans("Mask"); + //$texte.= ' ('.$langs->trans("InvoiceStandard").')'; + $texte.= ':'.$form->textwithpicto('',$tooltip,1,1).' 
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceReplacement").'):'.$form->textwithpicto('',$tooltip,1,1).'
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceReplacement").'):'.$form->textwithpicto('',$tooltip,1,1).'
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):'.$form->textwithpicto('',$tooltip,1,1).'
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceAvoir").'):'.$form->textwithpicto('',$tooltip,1,1).'
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceDeposit").'):'.$form->textwithpicto('',$tooltip,1,1).'
'.$langs->trans("Mask").' ('.$langs->trans("InvoiceDeposit").'):'.$form->textwithpicto('',$tooltip,1,1).'
'; $texte.= '
'; @@ -137,7 +142,7 @@ class mod_facture_fournisseur_tulip extends ModeleNumRefSuppliersInvoices // Get Mask value $mask = ''; - if (is_object($object) && $object->type == 1) + if (is_object($object) && $object->type == 1) { $mask=$conf->global->SUPPLIER_REPLACEMENT_TULIP_MASK; if (! $mask) From f1701469e0a16d80951de4801a4637918ad7493d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 13:28:34 +0200 Subject: [PATCH 057/515] NEW data files are now also parsed by phpunit for sql syntax --- htdocs/core/db/pgsql.class.php | 3 ++- htdocs/install/mysql/data/llx_accounting.sql | 2 +- htdocs/install/mysql/data/llx_const.sql | 8 ++++---- htdocs/install/mysql/migration/3.2.0-3.3.0.sql | 2 +- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 2 +- .../mysql/tables/llx_blockedlog_authority.sql | 2 +- htdocs/install/pgsql/functions/functions.sql | 3 ++- test/phpunit/CodingSqlTest.php | 13 +++++++++++-- 8 files changed, 23 insertions(+), 12 deletions(-) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 89f2a66bdea..2b8e90d0780 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -169,7 +169,7 @@ class DoliDBPgsql extends DoliDB $line = preg_replace('/ SEPARATOR/i', ',', $line); $line = preg_replace('/STRING_AGG\(([^,\)]+)\)/i', 'STRING_AGG(\\1, \',\')', $line); //print $line."\n"; - + if ($type == 'auto') { if (preg_match('/ALTER TABLE/i',$line)) $type='dml'; @@ -210,6 +210,7 @@ class DoliDBPgsql extends DoliDB // tinytext/mediumtext -> text $line=preg_replace('/tinytext/i','text',$line); $line=preg_replace('/mediumtext/i','text',$line); + $line=preg_replace('/longtext/i','text',$line); $line=preg_replace('/text\([0-9]+\)/i','text',$line); diff --git a/htdocs/install/mysql/data/llx_accounting.sql b/htdocs/install/mysql/data/llx_accounting.sql index ea1fe7a7dd7..6448646bda0 100644 --- a/htdocs/install/mysql/data/llx_accounting.sql +++ b/htdocs/install/mysql/data/llx_accounting.sql @@ -360,7 +360,7 @@ INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (305,'PCG99-BASE','FINAN', 'XXXXXX', '511', '304', 'Valeurs à l''encaissement', 1); INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (306,'PCG99-BASE','FINAN', 'BANK', '512', '304', 'Banques', 1); INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (307,'PCG99-BASE','FINAN', 'XXXXXX', '514', '304', 'Chèques postaux', 1); -INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '304', '"Caisses" du Trésor et des établissements publics', 1); +INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (308,'PCG99-BASE','FINAN', 'XXXXXX', '515', '304', 'Caisses du Trésor et des établissements publics', 1); INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (309,'PCG99-BASE','FINAN', 'XXXXXX', '516', '304', 'Sociétés de bourse', 1); INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (310,'PCG99-BASE','FINAN', 'XXXXXX', '517', '304', 'Autres organismes financiers', 1); INSERT INTO llx_accounting_account (rowid, fk_pcg_version, pcg_type, pcg_subtype, account_number, account_parent, label, active) VALUES (311,'PCG99-BASE','FINAN', 'XXXXXX', '518', '304', 'Intérêts courus', 1); diff --git a/htdocs/install/mysql/data/llx_const.sql b/htdocs/install/mysql/data/llx_const.sql index bf76d378789..ee6f952e6ae 100644 --- a/htdocs/install/mysql/data/llx_const.sql +++ b/htdocs/install/mysql/data/llx_const.sql @@ -91,7 +91,7 @@ insert into llx_const (name, value, type, note, visible) values ('MAILING_EMAIL_ -- -- ODT Path --- -insert into `llx_const` (`name`, `entity`, `value`, `type`, `visible`) VALUES ('PRODUCT_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/products', 'chaine', 0); -insert into `llx_const` (`name`, `entity`, `value`, `type`, `visible`) VALUES ('CONTRACT_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/contracts', 'chaine', 0); -insert into `llx_const` (`name`, `entity`, `value`, `type`, `visible`) VALUES ('USERGROUP_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/usergroups', 'chaine', 0); -insert into `llx_const` (`name`, `entity`, `value`, `type`, `visible`) VALUES ('USER_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/users', 'chaine', 0); +insert into llx_const (name, entity, value, type, visible) VALUES ('PRODUCT_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/products', 'chaine', 0); +insert into llx_const (name, entity, value, type, visible) VALUES ('CONTRACT_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/contracts', 'chaine', 0); +insert into llx_const (name, entity, value, type, visible) VALUES ('USERGROUP_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/usergroups', 'chaine', 0); +insert into llx_const (name, entity, value, type, visible) VALUES ('USER_ADDON_PDF_ODT_PATH', 1, 'DOL_DATA_ROOT/doctemplates/users', 'chaine', 0); diff --git a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql index 2253eb68787..91c155d3d84 100644 --- a/htdocs/install/mysql/migration/3.2.0-3.3.0.sql +++ b/htdocs/install/mysql/migration/3.2.0-3.3.0.sql @@ -803,7 +803,7 @@ ALTER TABLE llx_user ADD COLUMN job varchar(128) AFTER firstname; -- Use entity 0 for all entities -INSERT INTO llx_const(name, value, visible, entity) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, __ENCRYPT('[\'mod_syslog_file\']')__, 0, 0 FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; +INSERT INTO llx_const(name, value, visible, entity) SELECT __ENCRYPT('SYSLOG_HANDLERS')__, __ENCRYPT('["mod_syslog_file"]')__, 0, 0 FROM llx_const WHERE __DECRYPT('name')__ = 'SYSLOG_FILE_ON' AND __DECRYPT('value')__ = '1'; -- New Imports diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 3acf312bae1..637648be3ba 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -493,7 +493,7 @@ CREATE TABLE llx_blockedlog_authority rowid integer AUTO_INCREMENT PRIMARY KEY, blockchain longtext NOT NULL, signature varchar(100) NOT NULL, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + tms timestamp ) ENGINE=innodb; ALTER TABLE llx_blockedlog_authority ADD INDEX signature (signature); diff --git a/htdocs/install/mysql/tables/llx_blockedlog_authority.sql b/htdocs/install/mysql/tables/llx_blockedlog_authority.sql index eb491f93af4..9e7dae8f23c 100644 --- a/htdocs/install/mysql/tables/llx_blockedlog_authority.sql +++ b/htdocs/install/mysql/tables/llx_blockedlog_authority.sql @@ -3,5 +3,5 @@ CREATE TABLE llx_blockedlog_authority rowid integer AUTO_INCREMENT PRIMARY KEY, blockchain longtext NOT NULL, signature varchar(100) NOT NULL, - tms timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + tms timestamp ) ENGINE=innodb; diff --git a/htdocs/install/pgsql/functions/functions.sql b/htdocs/install/pgsql/functions/functions.sql index 441b20c66ad..1b2d184de0f 100644 --- a/htdocs/install/pgsql/functions/functions.sql +++ b/htdocs/install/pgsql/functions/functions.sql @@ -24,9 +24,10 @@ CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITHOUT TIME ZONE) RETURNS B CREATE OR REPLACE FUNCTION UNIX_TIMESTAMP(TIMESTAMP WITH TIME ZONE) RETURNS BIGINT LANGUAGE SQL IMMUTABLE STRICT AS 'SELECT EXTRACT(EPOCH FROM $1)::bigint;'; - +DROP FUNCTION date_format(timestamp without time zone,text); CREATE OR REPLACE FUNCTION date_format(timestamp without time zone, text) RETURNS text AS $$ DECLARE i int := 1; temp text := ''; c text; n text; res text; BEGIN WHILE i <= pg_catalog.length($2) LOOP c := SUBSTRING ($2 FROM i FOR 1); IF c = '%' AND i != pg_catalog.length($2) THEN n := SUBSTRING ($2 FROM (i + 1) FOR 1); SELECT INTO res CASE WHEN n = 'a' THEN pg_catalog.to_char($1, 'Dy') WHEN n = 'b' THEN pg_catalog.to_char($1, 'Mon') WHEN n = 'c' THEN pg_catalog.to_char($1, 'FMMM') WHEN n = 'D' THEN pg_catalog.to_char($1, 'FMDDth') WHEN n = 'd' THEN pg_catalog.to_char($1, 'DD') WHEN n = 'e' THEN pg_catalog.to_char($1, 'FMDD') WHEN n = 'f' THEN pg_catalog.to_char($1, 'US') WHEN n = 'H' THEN pg_catalog.to_char($1, 'HH24') WHEN n = 'h' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'I' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'i' THEN pg_catalog.to_char($1, 'MI') WHEN n = 'j' THEN pg_catalog.to_char($1, 'DDD') WHEN n = 'k' THEN pg_catalog.to_char($1, 'FMHH24') WHEN n = 'l' THEN pg_catalog.to_char($1, 'FMHH12') WHEN n = 'M' THEN pg_catalog.to_char($1, 'FMMonth') WHEN n = 'm' THEN pg_catalog.to_char($1, 'MM') WHEN n = 'p' THEN pg_catalog.to_char($1, 'AM') WHEN n = 'r' THEN pg_catalog.to_char($1, 'HH12:MI:SS AM') WHEN n = 'S' THEN pg_catalog.to_char($1, 'SS') WHEN n = 's' THEN pg_catalog.to_char($1, 'SS') WHEN n = 'T' THEN pg_catalog.to_char($1, 'HH24:MI:SS') WHEN n = 'U' THEN pg_catalog.to_char($1, '?') WHEN n = 'u' THEN pg_catalog.to_char($1, '?') WHEN n = 'V' THEN pg_catalog.to_char($1, '?') WHEN n = 'v' THEN pg_catalog.to_char($1, '?') WHEN n = 'W' THEN pg_catalog.to_char($1, 'FMDay') WHEN n = 'w' THEN EXTRACT(DOW FROM $1)::text WHEN n = 'X' THEN pg_catalog.to_char($1, '?') WHEN n = 'x' THEN pg_catalog.to_char($1, '?') WHEN n = 'Y' THEN pg_catalog.to_char($1, 'YYYY') WHEN n = 'y' THEN pg_catalog.to_char($1, 'YY') WHEN n = '%' THEN pg_catalog.to_char($1, '%') ELSE NULL END; temp := temp operator(pg_catalog.||) res; i := i + 2; ELSE temp = temp operator(pg_catalog.||) c; i := i + 1; END IF; END LOOP; RETURN temp; END $$ IMMUTABLE STRICT LANGUAGE plpgsql; +DROP FUNCTION date_format(timestamp with time zone,text); CREATE OR REPLACE FUNCTION date_format(timestamp with time zone, text) RETURNS text AS $$ DECLARE i int := 1; temp text := ''; c text; n text; res text; BEGIN WHILE i <= pg_catalog.length($2) LOOP c := SUBSTRING ($2 FROM i FOR 1); IF c = '%' AND i != pg_catalog.length($2) THEN n := SUBSTRING ($2 FROM (i + 1) FOR 1); SELECT INTO res CASE WHEN n = 'a' THEN pg_catalog.to_char($1, 'Dy') WHEN n = 'b' THEN pg_catalog.to_char($1, 'Mon') WHEN n = 'c' THEN pg_catalog.to_char($1, 'FMMM') WHEN n = 'D' THEN pg_catalog.to_char($1, 'FMDDth') WHEN n = 'd' THEN pg_catalog.to_char($1, 'DD') WHEN n = 'e' THEN pg_catalog.to_char($1, 'FMDD') WHEN n = 'f' THEN pg_catalog.to_char($1, 'US') WHEN n = 'H' THEN pg_catalog.to_char($1, 'HH24') WHEN n = 'h' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'I' THEN pg_catalog.to_char($1, 'HH12') WHEN n = 'i' THEN pg_catalog.to_char($1, 'MI') WHEN n = 'j' THEN pg_catalog.to_char($1, 'DDD') WHEN n = 'k' THEN pg_catalog.to_char($1, 'FMHH24') WHEN n = 'l' THEN pg_catalog.to_char($1, 'FMHH12') WHEN n = 'M' THEN pg_catalog.to_char($1, 'FMMonth') WHEN n = 'm' THEN pg_catalog.to_char($1, 'MM') WHEN n = 'p' THEN pg_catalog.to_char($1, 'AM') WHEN n = 'r' THEN pg_catalog.to_char($1, 'HH12:MI:SS AM') WHEN n = 'S' THEN pg_catalog.to_char($1, 'SS') WHEN n = 's' THEN pg_catalog.to_char($1, 'SS') WHEN n = 'T' THEN pg_catalog.to_char($1, 'HH24:MI:SS') WHEN n = 'U' THEN pg_catalog.to_char($1, '?') WHEN n = 'u' THEN pg_catalog.to_char($1, '?') WHEN n = 'V' THEN pg_catalog.to_char($1, '?') WHEN n = 'v' THEN pg_catalog.to_char($1, '?') WHEN n = 'W' THEN pg_catalog.to_char($1, 'FMDay') WHEN n = 'w' THEN EXTRACT(DOW FROM $1)::text WHEN n = 'X' THEN pg_catalog.to_char($1, '?') WHEN n = 'x' THEN pg_catalog.to_char($1, '?') WHEN n = 'Y' THEN pg_catalog.to_char($1, 'YYYY') WHEN n = 'y' THEN pg_catalog.to_char($1, 'YY') WHEN n = '%' THEN pg_catalog.to_char($1, '%') ELSE NULL END; temp := temp operator(pg_catalog.||) res; i := i + 2; ELSE temp = temp operator(pg_catalog.||) c; i := i + 1; END IF; END LOOP; RETURN temp; END $$ IMMUTABLE STRICT LANGUAGE plpgsql; diff --git a/test/phpunit/CodingSqlTest.php b/test/phpunit/CodingSqlTest.php index 348043d4a4e..d158b71fc2e 100644 --- a/test/phpunit/CodingSqlTest.php +++ b/test/phpunit/CodingSqlTest.php @@ -141,7 +141,7 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase $langs=$this->savlangs; $db=$this->savdb; - $listofsqldir = array(DOL_DOCUMENT_ROOT.'/install/mysql/tables', DOL_DOCUMENT_ROOT.'/install/mysql/migration'); + $listofsqldir = array(DOL_DOCUMENT_ROOT.'/install/mysql/data', DOL_DOCUMENT_ROOT.'/install/mysql/tables', DOL_DOCUMENT_ROOT.'/install/mysql/migration'); foreach ($listofsqldir as $dir) { @@ -161,8 +161,12 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase $this->assertTrue($result===false, 'Found back quote into '.$file.'. Bad.'); $result=strpos($filecontent,'"'); + if ($result) + { + $result=! strpos($filecontent,'["'); + } print __METHOD__." Result for checking we don't have double quote = ".$result."\n"; - $this->assertTrue($result===false, 'Found double quote into '.$file.'. Bad.'); + $this->assertTrue($result===false, 'Found double quote that is not [" (used for json content) into '.$file.'. Bad.'); $result=strpos($filecontent,'int('); print __METHOD__." Result for checking we don't have 'int(' instead of 'integer' = ".$result."\n"; @@ -176,6 +180,11 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase { // Test for migration files only + } + elseif ($dir == DOL_DOCUMENT_ROOT.'/install/mysql/data') + { + // Test for data files only + } else { From 302e086f991c60dad5abd3a7b3ea214dbf3b5106 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 13:33:26 +0200 Subject: [PATCH 058/515] Fix pgsql compatibility --- .../class/supplier_proposal.class.php | 86 +++++++++---------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index e3f873476ba..b14e4a40ff9 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -50,7 +50,7 @@ class SupplierProposal extends CommonObject public $fk_element='fk_supplier_proposal'; protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe public $picto='propal'; - + /** * {@inheritdoc} */ @@ -140,7 +140,7 @@ class SupplierProposal extends CommonObject var $multicurrency_total_ht; var $multicurrency_total_tva; var $multicurrency_total_ttc; - + /** * Draft status */ @@ -160,10 +160,10 @@ class SupplierProposal extends CommonObject /** * Billed or closed/processed quote */ - const STATUS_CLOSE = 4; - - - + const STATUS_CLOSE = 4; + + + /** * Constructor * @@ -407,7 +407,7 @@ class SupplierProposal extends CommonObject $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc); $txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate. - + $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type, 100, $this->multicurrency_tx); $total_ht = $tabprice[0]; $total_tva = $tabprice[1]; @@ -419,7 +419,7 @@ class SupplierProposal extends CommonObject $multicurrency_total_ht = $tabprice[16]; $multicurrency_total_tva = $tabprice[17]; $multicurrency_total_ttc = $tabprice[18]; - + // Rang to use $rangtouse = $rang; if ($rangtouse == -1) @@ -487,7 +487,7 @@ class SupplierProposal extends CommonObject $this->line->multicurrency_total_ht = $multicurrency_total_ht; $this->line->multicurrency_total_tva = $multicurrency_total_tva; $this->line->multicurrency_total_ttc = $multicurrency_total_ttc; - + // Mise en option de la ligne if (empty($qty) && empty($special_code)) $this->line->special_code=3; @@ -583,7 +583,7 @@ class SupplierProposal extends CommonObject $localtaxes_type=getLocalTaxesFromRate($txtva,0,$this->thirdparty,$mysoc); $txtva = preg_replace('/\s*\(.*\)/','',$txtva); // Remove code into vatrate. - + $tabprice=calcul_price_total($qty, $pu, $remise_percent, $txtva, $txlocaltax1, $txlocaltax2, 0, $price_base_type, $info_bits, $type, $this->thirdparty, $localtaxes_type, 100, $this->multicurrency_tx); $total_ht = $tabprice[0]; $total_tva = $tabprice[1]; @@ -595,7 +595,7 @@ class SupplierProposal extends CommonObject $multicurrency_total_ht = $tabprice[16]; $multicurrency_total_tva = $tabprice[17]; $multicurrency_total_ttc = $tabprice[18]; - + // Anciens indicateurs: $price, $remise (a ne plus utiliser) $price = $pu; if ($remise_percent > 0) @@ -662,7 +662,7 @@ class SupplierProposal extends CommonObject if (is_array($array_option) && count($array_option)>0) { $this->line->array_options=$array_option; } - + // Multicurrency $this->line->multicurrency_subprice = price2num($pu * $this->multicurrency_tx); $this->line->multicurrency_total_ht = $multicurrency_total_ht; @@ -1180,7 +1180,7 @@ class SupplierProposal extends CommonObject $this->multicurrency_total_ht = $obj->multicurrency_total_ht; $this->multicurrency_total_tva = $obj->multicurrency_total_tva; $this->multicurrency_total_ttc = $obj->multicurrency_total_ttc; - + if ($obj->fk_statut == 0) { $this->brouillon = 1; @@ -1271,7 +1271,7 @@ class SupplierProposal extends CommonObject $line->multicurrency_total_tva = $objp->multicurrency_total_tva; $line->multicurrency_total_ttc = $objp->multicurrency_total_ttc; $line->fk_unit = $objp->fk_unit; - + $this->lines[$i] = $line; $i++; @@ -1653,7 +1653,7 @@ class SupplierProposal extends CommonObject { $trigger_name='SUPPLIER_PROPOSAL_CLASSIFY_BILLED'; } - + if (empty($conf->global->MAIN_DISABLE_PDF_AUTOUPDATE)) { // Define output language @@ -1704,7 +1704,7 @@ class SupplierProposal extends CommonObject $productsupplier = new ProductFournisseur($this->db); dol_syslog(get_class($this)."::updateOrCreatePriceFournisseur", LOG_DEBUG); - foreach ($this->lines as $product) + foreach ($this->lines as $product) { if ($product->subprice <= 0) continue; @@ -1721,7 +1721,7 @@ class SupplierProposal extends CommonObject $this->createPriceFournisseur($product, $user); } } - + return 1; } @@ -2149,7 +2149,7 @@ class SupplierProposal extends CommonObject $response->label = $label; $response->url = DOL_URL_ROOT.'/supplier_proposal/list.php?viewstatut='.$statut; $response->img = img_object('',"propal"); - + // This assignment in condition is not a bug. It allows walking the results. while ($obj=$this->db->fetch_object($resql)) { @@ -2187,7 +2187,7 @@ class SupplierProposal extends CommonObject global $user,$langs,$conf; // Load array of products prodids - $num_prods = 0; + $num_prods = 0; $prodids = array(); $sql = "SELECT rowid"; $sql.= " FROM ".MAIN_DB_PREFIX."product"; @@ -2250,7 +2250,7 @@ class SupplierProposal extends CommonObject $prodid = mt_rand(1, $num_prods); $line->fk_product=$prodids[$prodid]; } - + $this->lines[$xnbp]=$line; $this->total_ht += $line->total_ht; @@ -2375,10 +2375,10 @@ class SupplierProposal extends CommonObject global $langs, $conf, $user; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips - + $url=''; $result=''; - + $label=''.$langs->trans("ShowSupplierProposal").''; if (! empty($this->ref)) $label.= '
'.$langs->trans('Ref').': '.$this->ref; @@ -2396,7 +2396,7 @@ class SupplierProposal extends CommonObject if ($option == 'document') { $url = DOL_URL_ROOT.'/supplier_proposal/document.php?id='.$this->id. $get_params; } - + $linkclose=''; if (empty($notooltip) && $user->rights->propal->lire) { @@ -2408,7 +2408,7 @@ class SupplierProposal extends CommonObject $linkclose.= ' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose.=' class="classfortooltip"'; } - + $linkstart = ''; $linkend=''; @@ -2432,14 +2432,14 @@ class SupplierProposal extends CommonObject function getLinesArray() { // For other object, here we call fetch_lines. But fetch_lines does not exists on supplier proposal - + $sql = 'SELECT pt.rowid, pt.label as custom_label, pt.description, pt.fk_product, pt.fk_remise_except,'; $sql.= ' pt.qty, pt.tva_tx, pt.remise_percent, pt.subprice, pt.info_bits,'; $sql.= ' pt.total_ht, pt.total_tva, pt.total_ttc, pt.fk_product_fournisseur_price as fk_fournprice, pt.buy_price_ht as pa_ht, pt.special_code, pt.localtax1_tx, pt.localtax2_tx,'; $sql.= ' pt.product_type, pt.rang, pt.fk_parent_line,'; $sql.= ' p.label as product_label, p.ref, p.fk_product_type, p.rowid as prodid,'; - $sql.= ' p.description as product_desc, pt.ref_fourn as ref_produit_fourn'; - $sql.= ' ,pt.fk_multicurrency, pt.multicurrency_code, pt.multicurrency_subprice, pt.multicurrency_total_ht, pt.multicurrency_total_tva, pt.multicurrency_total_ttc, pt.fk_unit'; + $sql.= ' p.description as product_desc, pt.ref_fourn as ref_produit_fourn,'; + $sql.= ' pt.fk_multicurrency, pt.multicurrency_code, pt.multicurrency_subprice, pt.multicurrency_total_ht, pt.multicurrency_total_tva, pt.multicurrency_total_ttc, pt.fk_unit'; $sql.= ' FROM '.MAIN_DB_PREFIX.'supplier_proposaldet as pt'; $sql.= ' LEFT JOIN '.MAIN_DB_PREFIX.'product as p ON pt.fk_product=p.rowid'; $sql.= ' WHERE pt.fk_supplier_proposal = '.$this->id; @@ -2486,7 +2486,7 @@ class SupplierProposal extends CommonObject $this->lines[$i]->rang = $obj->rang; $this->lines[$i]->ref_fourn = $obj->ref_produit_fourn; - + // Multicurrency $this->lines[$i]->fk_multicurrency = $obj->fk_multicurrency; $this->lines[$i]->multicurrency_code = $obj->multicurrency_code; @@ -2541,7 +2541,7 @@ class SupplierProposal extends CommonObject return $this->commonGenerateDocument($modelpath, $modele, $outputlangs, $hidedetails, $hidedesc, $hideref); } - + /** * Function used to replace a thirdparty id with another one. * @@ -2555,10 +2555,10 @@ class SupplierProposal extends CommonObject $tables = array( 'supplier_proposal' ); - + return CommonObject::commonReplaceThirdparty($db, $origin_id, $dest_id, $tables); } - + } @@ -2669,7 +2669,7 @@ class SupplierProposalLine extends CommonObjectLine var $skip_update_total; // Skip update price total for special lines var $ref_fourn; - + // Multicurrency var $fk_multicurrency; var $multicurrency_code; @@ -2750,7 +2750,7 @@ class SupplierProposalLine extends CommonObjectLine $this->product_desc = $objp->product_desc; $this->ref_fourn = $objp->ref_produit_forun; - + // Multicurrency $this->fk_multicurrency = $objp->fk_multicurrency; $this->multicurrency_code = $objp->multicurrency_code; @@ -2798,11 +2798,11 @@ class SupplierProposalLine extends CommonObjectLine if (empty($this->fk_parent_line)) $this->fk_parent_line=0; if (empty($this->fk_fournprice)) $this->fk_fournprice=0; if (empty($this->fk_unit)) $this->fk_unit=0; - + if (empty($this->pa_ht)) $this->pa_ht=0; // if buy price not defined, define buyprice as configured in margin admin - if ($this->pa_ht == 0) + if ($this->pa_ht == 0) { if (($result = $this->defineBuyPrice($this->subprice, $this->remise_percent, $this->fk_product)) < 0) { @@ -2826,8 +2826,8 @@ class SupplierProposalLine extends CommonObjectLine $sql.= ' subprice, remise_percent, '; $sql.= ' info_bits, '; $sql.= ' total_ht, total_tva, total_localtax1, total_localtax2, total_ttc, fk_product_fournisseur_price, buy_price_ht, special_code, rang,'; - $sql.= ' ref_fourn'; - $sql.= ', fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc, fk_unit)'; + $sql.= ' ref_fourn,'; + $sql.= ' fk_multicurrency, multicurrency_code, multicurrency_subprice, multicurrency_total_ht, multicurrency_total_tva, multicurrency_total_ttc, fk_unit)'; $sql.= " VALUES (".$this->fk_supplier_proposal.","; $sql.= " ".($this->fk_parent_line>0?"'".$this->fk_parent_line."'":"null").","; $sql.= " ".(! empty($this->label)?"'".$this->db->escape($this->label)."'":"null").","; @@ -2860,7 +2860,7 @@ class SupplierProposalLine extends CommonObjectLine $sql.= ", ".$this->multicurrency_total_ht; $sql.= ", ".$this->multicurrency_total_tva; $sql.= ", ".$this->multicurrency_total_ttc; - $sql.= ", fk_unit=".($this->fk_unit?$this->fk_unit:'null'); + $sql.= ", ".($this->fk_unit?$this->fk_unit:'null'); $sql.= ')'; dol_syslog(get_class($this).'::insert', LOG_DEBUG); @@ -2869,7 +2869,7 @@ class SupplierProposalLine extends CommonObjectLine { $this->rowid=$this->db->last_insert_id(MAIN_DB_PREFIX.'supplier_proposaldet'); $this->id=$this->rowid; - + if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used { $result=$this->insertExtraFields(); @@ -2982,11 +2982,11 @@ class SupplierProposalLine extends CommonObjectLine if (empty($this->fk_parent_line)) $this->fk_parent_line=0; if (empty($this->fk_fournprice)) $this->fk_fournprice=0; if (empty($this->fk_unit)) $this->fk_unit=0; - + if (empty($this->pa_ht)) $this->pa_ht=0; // if buy price not defined, define buyprice as configured in margin admin - if ($this->pa_ht == 0) + if ($this->pa_ht == 0) { if (($result = $this->defineBuyPrice($this->subprice, $this->remise_percent, $this->fk_product)) < 0) { @@ -3031,13 +3031,13 @@ class SupplierProposalLine extends CommonObjectLine if (! empty($this->rang)) $sql.= ", rang=".$this->rang; $sql.= " , ref_fourn=".(! empty($this->ref_fourn)?"'".$this->db->escape($this->ref_fourn)."'":"null"); $sql.= " , fk_unit=".($this->fk_unit?$this->fk_unit:'null'); - + // Multicurrency $sql.= " , multicurrency_subprice=".price2num($this->multicurrency_subprice).""; $sql.= " , multicurrency_total_ht=".price2num($this->multicurrency_total_ht).""; $sql.= " , multicurrency_total_tva=".price2num($this->multicurrency_total_tva).""; $sql.= " , multicurrency_total_ttc=".price2num($this->multicurrency_total_ttc).""; - + $sql.= " WHERE rowid = ".$this->rowid; dol_syslog(get_class($this)."::update", LOG_DEBUG); From 3873bc74333657921b2c01cc67a3153284674146 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 15:06:24 +0200 Subject: [PATCH 059/515] Fix bette compatibility with pgsql --- htdocs/core/db/pgsql.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 2b8e90d0780..4aa56b367f3 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -185,8 +185,8 @@ class DoliDBPgsql extends DoliDB // we are inside create table statement so lets process datatypes if (preg_match('/(ISAM|innodb)/i',$line)) { // end of create table sequence - $line=preg_replace('/\)[\s\t]*type[\s\t]*=[\s\t]*(MyISAM|innodb);/i',');',$line); - $line=preg_replace('/\)[\s\t]*engine[\s\t]*=[\s\t]*(MyISAM|innodb);/i',');',$line); + $line=preg_replace('/\)[\s\t]*type[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line); + $line=preg_replace('/\)[\s\t]*engine[\s\t]*=[\s\t]*(MyISAM|innodb).*;/i',');',$line); $line=preg_replace('/,$/','',$line); } From ec9bbe2b52214008f6d6c55bf3dafbb8b8080778 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 20 Jun 2017 16:54:37 +0200 Subject: [PATCH 060/515] Help/Need debug of some online instances with the log view --- htdocs/admin/syslog.php | 14 +++++++++++--- htdocs/admin/tools/purge.php | 10 +++++++++- htdocs/core/lib/files.lib.php | 21 +++++++++++++-------- htdocs/document.php | 5 +++-- 4 files changed, 36 insertions(+), 14 deletions(-) diff --git a/htdocs/admin/syslog.php b/htdocs/admin/syslog.php index 65933c25639..75de985728c 100644 --- a/htdocs/admin/syslog.php +++ b/htdocs/admin/syslog.php @@ -88,7 +88,7 @@ if ($action == 'set') $newActiveModules = array(); $selectedModules = (isset($_POST['SYSLOG_HANDLERS']) ? $_POST['SYSLOG_HANDLERS'] : array()); - + // Save options of handler foreach ($syslogModules as $syslogHandler) { @@ -111,7 +111,7 @@ if ($action == 'set') $activeModules = $newActiveModules; - dolibarr_del_const($db, 'SYSLOG_HANDLERS', -1); // To be sure ther is not a setup into another entity + dolibarr_del_const($db, 'SYSLOG_HANDLERS', -1); // To be sure ther is not a setup into another entity dolibarr_set_const($db, 'SYSLOG_HANDLERS', json_encode($activeModules), 'chaine',0,'',0); // Check configuration @@ -206,7 +206,7 @@ foreach ($syslogModules as $moduleName) //print $moduleName." = ".$moduleactive." - ".$module->getName()." ".($moduleactive == -1)."
\n"; if (($moduleactive == -1) && empty($conf->global->MAIN_FEATURES_LEVEL)) continue; // Some modules are hidden if not activable and not into debug mode (end user must not see them) - + print ''; print ''; print ' '; @@ -229,6 +229,14 @@ foreach ($syslogModules as $moduleName) print $option['name'].': '; if (! empty($option['example'])) print '
'.$langs->trans("Example").': '.$option['example']; + + if ($option['constant'] == 'SYSLOG_FILE' && preg_match('/^DOL_DATA_ROOT\/[^\/]*$/',$value)) + { + $filelogparam =' ('; + $filelogparam.=$langs->trans('Download'); + $filelogparam.=$filelog.')'; + print $filelogparam; + } } } print ''; diff --git a/htdocs/admin/tools/purge.php b/htdocs/admin/tools/purge.php index e913d59a4a7..7a5cb30ae75 100644 --- a/htdocs/admin/tools/purge.php +++ b/htdocs/admin/tools/purge.php @@ -83,7 +83,15 @@ if (! empty($conf->syslog->enabled)) { print ' '.$langs->trans("PurgeDeleteLogFile",$filelog).'

'; + $filelogparam=$filelog; + if ($user->admin && preg_match('/^dolibarr.*\.log$/', basename($filelog))) + { + $filelogparam =''.$filelog.''; + } + print '> '.$langs->trans("PurgeDeleteLogFile", $filelogparam); + print '

'; } print 'admin && basename($original_file) == $original_file && preg_match('/^dolibarr.*\.log$/', basename($original_file))); + $original_file=$dolibarr_main_data_root.'/'.$original_file; + } // Wrapping for some images - if (($modulepart == 'mycompany' || $modulepart == 'companylogo') && !empty($conf->mycompany->dir_output)) + elseif (($modulepart == 'mycompany' || $modulepart == 'companylogo') && !empty($conf->mycompany->dir_output)) { $accessallowed=1; $original_file=$conf->mycompany->dir_output.'/logos/'.$original_file; @@ -2369,13 +2381,6 @@ function dol_check_secure_access_document($modulepart, $original_file, $entity, $original_file=$conf->fckeditor->dir_output.'/'.$original_file; } - // Wrapping for miscellaneous medias files - elseif ($modulepart == 'medias' && !empty($dolibarr_main_data_root)) - { - $accessallowed=1; - $original_file=$dolibarr_main_data_root.'/medias/'.$original_file; - } - // Wrapping for backups else if ($modulepart == 'systemtools' && !empty($conf->admin->dir_output)) { diff --git a/htdocs/document.php b/htdocs/document.php index 46e27d57a67..206ea69688a 100644 --- a/htdocs/document.php +++ b/htdocs/document.php @@ -26,6 +26,7 @@ * \brief Wrapper to download data files * \remarks Call of this wrapper is made with URL: * document.php?modulepart=repfichierconcerne&file=pathrelatifdufichier + * document.php?modulepart=logs&file=dolibarr.log */ define('NOTOKENRENEWAL',1); // Disables token renewal @@ -106,7 +107,7 @@ $refname=basename(dirname($original_file)."/"); // Security check if (empty($modulepart)) accessforbidden('Bad value for parameter modulepart'); -$check_access = dol_check_secure_access_document($modulepart,$original_file,$entity,$refname); +$check_access = dol_check_secure_access_document($modulepart, $original_file, $entity, $refname); $accessallowed = $check_access['accessallowed']; $sqlprotectagainstexternals = $check_access['sqlprotectagainstexternals']; $original_file = $check_access['original_file']; // original_file is now a full path name @@ -183,7 +184,7 @@ header('Pragma: public'); //ob_clean(); //flush(); - + readfile($original_file_osencoded); if (is_object($db)) $db->close(); From ce8a024d4484c5f42d141e5889f6d62b0eebf51e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Jun 2017 00:34:56 +0200 Subject: [PATCH 061/515] Fix limit on margin pages --- htdocs/margin/agentMargins.php | 22 ++++++++++++---------- htdocs/margin/customerMargins.php | 18 ++++++++++++------ htdocs/margin/productMargins.php | 28 ++++++++++++++-------------- 3 files changed, 38 insertions(+), 30 deletions(-) diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index f474b7af340..e00eb4ae18b 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -44,8 +44,15 @@ if ($user->rights->margins->read->all) { $mesg = ''; -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); +// Load variable for pagination +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; if (! $sortorder) $sortorder="ASC"; if (! $sortfield) { @@ -54,11 +61,6 @@ if (! $sortfield) else $sortfield="u.lastname"; } -$page = GETPOST("page",'int'); -if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $conf->liste_limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; $startdate=$enddate=''; @@ -170,13 +172,13 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,$num,''); + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); if ($conf->global->MARGIN_TYPE == "1") $labelcostprice=$langs->trans('BuyingPrice'); else // value is 'costprice' or 'pmp' $labelcostprice=$langs->trans('CostPrice'); - + $i = 0; print ""; @@ -220,7 +222,7 @@ if ($result) $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } - + print ''; if ($agentid > 0) { diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php index 64b0dd82ff2..ed76cde223c 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -41,11 +41,17 @@ $result = restrictedArea($user, 'societe','',''); $mesg = ''; -$page = GETPOST("page",'int'); +// Load variable for pagination +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $conf->liste_limit * $page; +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; +if (! $sortfield) $sortfield="s.nom"; // Set here default search field +if (! $sortorder) $sortorder="ASC"; $startdate=$enddate=''; @@ -206,13 +212,13 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,$num,''); + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); if ($conf->global->MARGIN_TYPE == "1") $labelcostprice=$langs->trans('BuyingPrice'); else // value is 'costprice' or 'pmp' $labelcostprice=$langs->trans('CostPrice'); - + $i = 0; print "
"; @@ -260,7 +266,7 @@ if ($result) $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } - + print ''; if ($client) { @@ -295,7 +301,7 @@ if ($result) } // affichage totaux marges - + $totalMargin = $cumul_vente - $cumul_achat; /*if ($totalMargin < 0) { diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index f1ed5afe573..43a9ef0f22e 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -46,9 +46,15 @@ $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','', $mesg = ''; -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); -if (! $sortorder) $sortorder="ASC"; +// Load variable for pagination +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; if (! $sortfield) { if ($id > 0) @@ -63,12 +69,6 @@ if (! $sortfield) } } -$page = GETPOST("page",'int'); -if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 -$offset = $conf->liste_limit * $page; -$pageprev = $page - 1; -$pagenext = $page + 1; - $startdate=$enddate=''; if (!empty($_POST['startdatemonth'])) @@ -202,16 +202,16 @@ if ($result) $num = $db->num_rows($result); print '
'; - print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&id=".$id,$sortfield,$sortorder,'',$num,$num,''); + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "&id=".$id, $sortfield, $sortorder, '', $num, $num, '', 0, '', '', 0, 1); //var_dump($conf->global->MARGIN_TYPE); if ($conf->global->MARGIN_TYPE == "1") $labelcostprice=$langs->trans('BuyingPrice'); else // value is 'costprice' or 'pmp' $labelcostprice=$langs->trans('CostPrice'); - + $moreforfilter=''; - + $i = 0; print '
'; print '
'."\n"; @@ -260,7 +260,7 @@ if ($result) $markRate = ($pv != 0)?(100 * $marge / $pv):'' ; } - + print ''; if ($id > 0) { @@ -308,7 +308,7 @@ if ($result) } // affichage totaux marges - + $totalMargin = $cumul_vente - $cumul_achat; $marginRate = ($cumul_achat != 0)?(100 * $totalMargin / $cumul_achat):''; From 9ec792975396b708dd1e90fd535bcae94df26a9e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Jun 2017 10:57:15 +0200 Subject: [PATCH 062/515] Look and feel v6 --- htdocs/margin/agentMargins.php | 25 +++- htdocs/margin/checkMargins.php | 237 +++++++++++++++--------------- htdocs/margin/customerMargins.php | 1 + htdocs/margin/productMargins.php | 1 + htdocs/theme/eldy/style.css.php | 5 +- htdocs/theme/md/style.css.php | 5 +- 6 files changed, 143 insertions(+), 131 deletions(-) diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php index e00eb4ae18b..6c3a246ad0d 100644 --- a/htdocs/margin/agentMargins.php +++ b/htdocs/margin/agentMargins.php @@ -34,14 +34,6 @@ $langs->load("bills"); $langs->load("products"); $langs->load("margins"); -// Security check - -if ($user->rights->margins->read->all) { - $agentid = GETPOST('agentid', 'int'); -} else { - $agentid = $user->id; -} - $mesg = ''; // Load variable for pagination @@ -69,6 +61,23 @@ if (!empty($_POST['startdatemonth'])) if (!empty($_POST['enddatemonth'])) $enddate = dol_mktime(23, 59, 59, $_POST['enddatemonth'], $_POST['enddateday'], $_POST['enddateyear']); +// Security check +if ($user->rights->margins->read->all) { + $agentid = GETPOST('agentid', 'int'); +} else { + $agentid = $user->id; +} +$result=restrictedArea($user,'margins'); + + +/* + * Actions + */ + +// None + + + /* * View */ diff --git a/htdocs/margin/checkMargins.php b/htdocs/margin/checkMargins.php index c576b3ce4a6..ab6394eb74c 100644 --- a/htdocs/margin/checkMargins.php +++ b/htdocs/margin/checkMargins.php @@ -34,72 +34,35 @@ $langs->load("bills"); $langs->load("products"); $langs->load("margins"); -// Security check - -if ($user->rights->margins->creer) { - $agentid = $user->id; -} else { - accessforbidden(); -} - -$sortfield = GETPOST("sortfield", 'alpha'); -$sortorder = GETPOST("sortorder", 'alpha'); -if (! $sortorder) - $sortorder = "DESC"; -if (! $sortfield) { - $sortfield = 'f.facnumber'; -} -$page = GETPOST("page", 'int'); -if ($page == - 1) { - $page = 0; -} -$offset = $conf->liste_limit * $page; +// Load variable for pagination +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; - -// Both test are required to be compatible with all browsers -if (GETPOST("button_search_x") || GETPOST("button_search")) { - $action = 'search'; -} elseif (GETPOST("button_updatemagins_x") || GETPOST("button_updatemagins")) { - $action = 'update'; -} - -if ($action == 'update') { - $datapost = $_POST; - - foreach ( $datapost as $key => $value ) { - if (strpos($key, 'buyingprice_') !== false) { - $tmp_array = explode('_', $key); - if (count($tmp_array) > 0) { - $invoicedet_id = $tmp_array[1]; - if (! empty($invoicedet_id)) { - $sql = 'UPDATE ' . MAIN_DB_PREFIX . 'facturedet'; - $sql .= ' SET buy_price_ht=\'' . price2num($value) . '\''; - $sql .= ' WHERE rowid=' . $invoicedet_id; - $result = $db->query($sql); - if (!$result) { - setEventMessages($db->lasterror, null, 'errors'); - } - } - } - } - } -} +if (! $sortorder) $sortorder = "DESC"; +if (! $sortfield) $sortfield = 'f.facnumber'; $startdate = $enddate = ''; $startdate = dol_mktime(0, 0, 0, GETPOST('startdatemonth', 'int'), GETPOST('startdateday', 'int'), GETPOST('startdateyear', 'int')); $enddate = dol_mktime(23, 59, 59, GETPOST('enddatemonth', 'int'), GETPOST('enddateday', 'int'), GETPOST('enddateyear', 'int')); -if (! empty($startdate)) { - $options .= '&startdatemonth=' . GETPOST('startdatemonth', 'int') . '&startdateday=' . GETPOST('startdateday', 'int') . '&startdateyear=' . GETPOST('startdateyear', 'int'); -} -if (! empty($enddate)) { - $options .= '&enddatemonth=' . GETPOST('enddatemonth', 'int') . '&enddateday=' . GETPOST('enddateday', 'int') . '&enddateyear=' . GETPOST('enddateyear', 'int'); -} - $search_ref = GETPOST('search_ref','alpha'); +// Security check +$result=restrictedArea($user,'margins'); + +// Both test are required to be compatible with all browsers +if (GETPOST("button_search_x") || GETPOST("button_search")) { + $action = 'search'; +} elseif (GETPOST("button_updatemagins_x") || GETPOST("button_updatemagins")) { + $action = 'update'; +} + /* * Actions @@ -117,6 +80,28 @@ if (empty($reshook)) // Selection of new fields include DOL_DOCUMENT_ROOT.'/core/actions_changeselectedfields.inc.php'; + if ($action == 'update') { + $datapost = $_POST; + + foreach ( $datapost as $key => $value ) { + if (strpos($key, 'buyingprice_') !== false) { + $tmp_array = explode('_', $key); + if (count($tmp_array) > 0) { + $invoicedet_id = $tmp_array[1]; + if (! empty($invoicedet_id)) { + $sql = 'UPDATE ' . MAIN_DB_PREFIX . 'facturedet'; + $sql .= ' SET buy_price_ht=\'' . price2num($value) . '\''; + $sql .= ' WHERE rowid=' . $invoicedet_id; + $result = $db->query($sql); + if (!$result) { + setEventMessages($db->lasterror, null, 'errors'); + } + } + } + } + } + } + // Purge search criteria if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers { @@ -155,6 +140,17 @@ llxHeader('', $title); // print_fiche_titre($text); +$param=''; +if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; +if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; +if (! empty($startdate)) { + $param .= '&startdatemonth=' . GETPOST('startdatemonth', 'int') . '&startdateday=' . GETPOST('startdateday', 'int') . '&startdateyear=' . GETPOST('startdateyear', 'int'); +} +if (! empty($enddate)) { + $param .= '&enddatemonth=' . GETPOST('enddatemonth', 'int') . '&enddateday=' . GETPOST('enddateday', 'int') . '&enddateyear=' . GETPOST('enddateyear', 'int'); +} +if ($optioncss != '') $param.='&optioncss='.$optioncss; + // Show tabs $head = marges_prepare_head($user); $picto = 'margin'; @@ -202,7 +198,7 @@ $sql .= $db->order($sortfield, $sortorder); $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { - + dol_syslog(__FILE__, LOG_DEBUG); $result = $db->query($sql); if ($result) { @@ -212,31 +208,30 @@ if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { } } -$sql .= $db->plimit($conf->liste_limit + 1, $offset); +$sql .= $db->plimit($limit+1, $offset); -dol_syslog(__FILE__, LOG_DEBUG); $result = $db->query($sql); if ($result) { $num = $db->num_rows($result); - + print '
'; - print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, '', $num, $nbtotalofrecords, ''); - + print_barre_liste($langs->trans("MarginDetails"), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, '', 0, '', '', $limit); + if ($conf->global->MARGIN_TYPE == "1") $labelcostprice=$langs->trans('BuyingPrice'); else // value is 'costprice' or 'pmp' $labelcostprice=$langs->trans('CostPrice'); - + $moreforfilter=''; - + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; //$selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields //if ($massactionbutton) $selectedfields.=$form->showCheckAddButtons('checkforselect', 1); $selectedfields=''; - + print '
'; print '
'."\n"; - + print ''; print ''; print ''; @@ -249,66 +244,66 @@ if ($result) { print $searchpitco; print ''; print "\n"; - + print ''; - print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "f.facnumber", "", $options, '', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "", "", $options, 'width=20%', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("UnitPriceHT"), $_SERVER["PHP_SELF"], "d.subprice", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($langs->trans("AmountTTC"), $_SERVER["PHP_SELF"], "d.total_ht", "", $options, 'align="right"', $sortfield, $sortorder); - print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); + print_liste_field_titre($langs->trans("Ref"), $_SERVER["PHP_SELF"], "f.facnumber", "", $param, '', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Description"), $_SERVER["PHP_SELF"], "", "", $param, 'width=20%', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("UnitPriceHT"), $_SERVER["PHP_SELF"], "d.subprice", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($labelcostprice, $_SERVER["PHP_SELF"], "d.buy_price_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("Qty"), $_SERVER["PHP_SELF"], "d.qty", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($langs->trans("AmountTTC"), $_SERVER["PHP_SELF"], "d.total_ht", "", $param, 'align="right"', $sortfield, $sortorder); + print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'',$param,'align="center"',$sortfield,$sortorder,'maxwidthsearch '); print "\n"; - - if ($num > 0) { - while ($objp = $db->fetch_object($result)) - { - $var = ! $var; - - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - - print "\n"; - - $i ++; + + $i=0; + while ($i < min($num, $limit)) + { + $objp = $db->fetch_object($result); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print "\n"; + + $i ++; } + print "
'; - $result_inner = $invoicestatic->fetch($objp->invoiceid); - if ($result_inner < 0) { - setEventMessages($invoicestatic->error, null, 'errors'); - } else { - print $invoicestatic->getNomUrl(1); - } - print ''; - if (! empty($objp->fk_product)) { - $result_inner = $productstatic->fetch($objp->fk_product); - if ($result_inner < 0) { - setEventMessages($productstatic->error, null, 'errors'); - } else { - print $productstatic->getNomUrl(1); - } - } else { - print $objp->label; - print ' '; - print $objp->description; - } - print ''; - print price($objp->subprice); - print ''; - print ''; - print ''; - print $objp->qty; - print ''; - print price($objp->total_ht); - print '
'; + $result_inner = $invoicestatic->fetch($objp->invoiceid); + if ($result_inner < 0) { + setEventMessages($invoicestatic->error, null, 'errors'); + } else { + print $invoicestatic->getNomUrl(1); } + print ''; + if (! empty($objp->fk_product)) { + $result_inner = $productstatic->fetch($objp->fk_product); + if ($result_inner < 0) { + setEventMessages($productstatic->error, null, 'errors'); + } else { + print $productstatic->getNomUrl(1); + } + } else { + print $objp->label; + print ' '; + print $objp->description; + } + print ''; + print price($objp->subprice); + print ''; + print ''; + print ''; + print $objp->qty; + print ''; + print price($objp->total_ht); + print '
"; - + print "
"; } else { dol_print_error($db); diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php index ed76cde223c..643fdcb4704 100644 --- a/htdocs/margin/customerMargins.php +++ b/htdocs/margin/customerMargins.php @@ -37,6 +37,7 @@ $langs->load("margins"); $socid = GETPOST('socid','int'); if (! empty($user->societe_id)) $socid=$user->societe_id; $result = restrictedArea($user, 'societe','',''); +$result = restrictedArea($user,'margins'); $mesg = ''; diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php index 43a9ef0f22e..77f7e23c84f 100644 --- a/htdocs/margin/productMargins.php +++ b/htdocs/margin/productMargins.php @@ -43,6 +43,7 @@ $fieldvalue = (! empty($id) ? $id : (! empty($ref) ? $ref : '')); $fieldtype = (! empty($ref) ? 'ref' : 'rowid'); if (! empty($user->societe_id)) $socid=$user->societe_id; $result=restrictedArea($user,'produit|service',$fieldvalue,'product&product','','',$fieldtype); +$result=restrictedArea($user,'margins'); $mesg = ''; diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php index c3bfa8b05cb..3f05f66c82b 100644 --- a/htdocs/theme/eldy/style.css.php +++ b/htdocs/theme/eldy/style.css.php @@ -4043,12 +4043,15 @@ a span.select2-chosen .css-searchselectcombo ul.select2-results { max-height: none; } -.select2-container-multi.select2-container-disabled .select2-choices { +.select2-container.select2-container-disabled .select2-choice, .select2-container-multi.select2-container-disabled .select2-choices { background-color: #FFFFFF; background-image: none; border: none; cursor: default; } +.select2-container-disabled .select2-choice .select2-arrow b { + opacity: 0.5; +} .select2-container-multi .select2-choices .select2-search-choice { margin-bottom: 3px; } diff --git a/htdocs/theme/md/style.css.php b/htdocs/theme/md/style.css.php index e96fa032538..802eb46f6af 100644 --- a/htdocs/theme/md/style.css.php +++ b/htdocs/theme/md/style.css.php @@ -4128,12 +4128,15 @@ a span.select2-chosen .css-searchselectcombo ul.select2-results { max-height: none; } -.select2-container-multi.select2-container-disabled .select2-choices { +.select2-container.select2-container-disabled .select2-choice, .select2-container-multi.select2-container-disabled .select2-choices { background-color: #FFFFFF; background-image: none; border: none; cursor: default; } +.select2-container-disabled .select2-choice .select2-arrow b { + opacity: 0.5; +} .select2-container-multi .select2-choices .select2-search-choice { margin-bottom: 3px; } From 4102403482156add2e1342d7d8b02f8604678b6e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 21 Jun 2017 11:37:34 +0200 Subject: [PATCH 063/515] Look and feel v6 --- htdocs/categories/card.php | 11 +++++------ htdocs/comm/propal/card.php | 2 +- htdocs/commande/card.php | 2 +- htdocs/core/class/html.form.class.php | 4 ++-- htdocs/core/lib/ajax.lib.php | 20 ++++++++++---------- htdocs/core/lib/functions.lib.php | 4 ++-- htdocs/fichinter/card.php | 2 +- htdocs/fourn/commande/card.php | 2 +- htdocs/fourn/facture/card.php | 2 +- htdocs/product/card.php | 4 +++- htdocs/product/stock/card.php | 4 +++- htdocs/societe/ajax/company.php | 5 +++-- htdocs/supplier_proposal/card.php | 2 +- htdocs/theme/eldy/style.css.php | 2 +- 14 files changed, 35 insertions(+), 31 deletions(-) diff --git a/htdocs/categories/card.php b/htdocs/categories/card.php index 55bf400ea3a..9f49e42f060 100644 --- a/htdocs/categories/card.php +++ b/htdocs/categories/card.php @@ -1,6 +1,6 @@ - * Copyright (C) 2006-2015 Laurent Destailleur + * Copyright (C) 2006-2017 Laurent Destailleur * Copyright (C) 2005-2014 Regis Houssin * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2013 Florian Henry @@ -221,9 +221,7 @@ llxHeader("",$langs->trans("Categories"),$helpurl); if ($user->rights->categorie->creer) { - /* - * Fiche en mode creation - */ + // Create or add if ($action == 'create' || $_POST["addcat"] == 'addcat') { dol_set_focus('#label'); @@ -246,7 +244,7 @@ if ($user->rights->categorie->creer) // Ref print ''; - print ''.$langs->trans("Ref").''; + print ''.$langs->trans("Ref").''; print''; // Description @@ -263,7 +261,8 @@ if ($user->rights->categorie->creer) // Parent category print ''.$langs->trans("AddIn").''; - print $form->select_all_categories($type, $catorigin); + print $form->select_all_categories($type, $catorigin, 'parent'); + print ajax_combobox('parent'); print ''; $parameters=array(); diff --git a/htdocs/comm/propal/card.php b/htdocs/comm/propal/card.php index 67dbca101f8..0c9d97fc299 100644 --- a/htdocs/comm/propal/card.php +++ b/htdocs/comm/propal/card.php @@ -1360,7 +1360,7 @@ if ($action == 'create') } } else { print ''; - print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1', 'SelectThirdParty'); + print $form->select_company('', 'socid', '(s.client = 1 OR s.client = 2 OR s.client = 3) AND status=1', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); // reload page to retrieve customer informations if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE)) { diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index f837119730c..a10de641ea1 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -1477,7 +1477,7 @@ if ($action == 'create' && $user->rights->commande->creer) print ''; } else { print ''; - print $form->select_company('', 'socid', 's.client = 1 OR s.client = 3', 'SelectThirdParty'); + print $form->select_company('', 'socid', 's.client = 1 OR s.client = 3', 'SelectThirdParty', 0, 0, null, 0, 'minwidth300'); // reload page to retrieve customer informations if (!empty($conf->global->RELOAD_PAGE_ON_CUSTOMER_CHANGE)) { diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index 7c8efcc8328..1a19d0da776 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -995,7 +995,7 @@ class Form unset($societetmp); } // mode 1 - $urloption='htmlname='.$htmlname.'&outjson=1&filter='.$filter; + $urloption='htmlname='.$htmlname.'&outjson=1&filter='.$filter.($showtype?'&showtype='.$showtype:''); $out.= ajax_autocompleter($selected, $htmlname, DOL_URL_ROOT.'/societe/ajax/company.php', $urloption, $conf->global->COMPANY_USE_SEARCH_TO_SELECT, 0, $ajaxoptions); $out.=''."\n";*/ $contentforedit .= $objectpage->content; - + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor=new DolEditor('PAGE_CONTENT',$contentforedit,'',500,'Full','',true,true,true,ROWS_5,'90%'); $doleditor->Create(0, '', false); @@ -1056,23 +1071,23 @@ if ($action == 'preview') $objectpage->fetch($pageid); $out = "\n".''."\n"; - + $out.='
'."\n"; - + $csscontent = @file_get_contents($filecss); - + $out.=''."\n"; - + $out.=$objectpage->content."\n"; - + $out.='
'; - + $out.= "\n".''."\n\n"; - + print $out; - + /*file_put_contents($filetpl, $out); if (! empty($conf->global->MAIN_UMASK)) @chmod($filetpl, octdec($conf->global->MAIN_UMASK)); @@ -1080,17 +1095,17 @@ if ($action == 'preview') // Output file on browser dol_syslog("index.php include $filetpl $filename content-type=$type"); $original_file_osencoded=dol_osencode($filetpl); // New file name encoded in OS encoding charset - + // This test if file exists should be useless. We keep it to find bug more easily if (! file_exists($original_file_osencoded)) { dol_print_error(0,$langs->trans("ErrorFileDoesNotExists",$original_file)); exit; } - + //include_once $original_file_osencoded; */ - + /*print '';*/ } From efecb32ec98459e1810f61772bc72c8578841a59 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 00:11:22 +0200 Subject: [PATCH 189/515] Fix migration --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 5d1948f318f..0b41cf739ef 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -25,7 +25,22 @@ -- -- VMYSQL4.1 DELETE FROM llx_usergroup_user WHERE fk_usergroup NOT IN (SELECT rowid from llx_usergroup); +ALTER TABLE llx_supplier_proposaldet CHANGE COLUMN fk_askpricesupplier fk_supplier_proposal integer NOT NULL; + +-- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; +-- VMYSQL4.1 update llx_adherent set datefin = NULL where DATE(STR_TO_DATE(datefin, '%Y-%m-%d')) IS NULL; +-- VMYSQL4.1 SET sql_mode = 'NO_ZERO_DATE'; +-- VMYSQL4.1 update llx_adherent set datefin = NULL where DATE(STR_TO_DATE(datefin, '%Y-%m-%d')) IS NULL; + -- VMYSQL4.1 ALTER TABLE llx_opensurvey_sondage MODIFY COLUMN tms timestamp DEFAULT '2001-01-01 00:00:00'; +-- VMYSQL4.1 ALTER TABLE llx_adherent MODIFY COLUMN datefin datetime NULL; + +-- To remove a default value for date that is not valid when field is not null +-- VMYSQL4.1 ALTER TABLE llx_chargesociales MODIFY COLUMN date_ech datetime DEFAULT NULL; +-- VMYSQL4.1 ALTER TABLE llx_chargesociales MODIFY COLUMN date_ech datetime NOT NULL; + + + -- Clean corrupted values for tms -- VMYSQL4.1 SET sql_mode = 'ALLOW_INVALID_DATES'; From aa1351d48393915c0c5fb992b374e9962151e988 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 01:10:09 +0200 Subject: [PATCH 190/515] Fix to be sure database is not created using utf8mb4 (not yet supported) --- htdocs/core/db/mysqli.class.php | 10 ++++++++-- htdocs/install/mysql/migration/repair.sql | 11 ++++++++--- .../mysql/tables/llx_product_attribute.key.sql | 3 ++- htdocs/install/step1.php | 15 +++++++++++++-- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 24ed1425f6b..526d43de0ab 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -857,6 +857,7 @@ class DoliDBMysqli extends DoliDB * Return charset used to store data in current database (same result than using SELECT default_character_set_name FROM information_schema.SCHEMATA WHERE schema_name = "databasename";) * * @return string Charset + * @see getDefaultCollationDatabase */ function getDefaultCharacterSetDatabase() { @@ -867,7 +868,9 @@ class DoliDBMysqli extends DoliDB return $this->forcecharset; } $liste=$this->fetch_array($resql); - return $liste['Value']; + $tmpval = $liste['Value']; + + return $tmpval; } /** @@ -900,6 +903,7 @@ class DoliDBMysqli extends DoliDB * Return collation used in current database * * @return string Collation value + * @see getDefaultCharacterSetDatabase */ function getDefaultCollationDatabase() { @@ -910,7 +914,9 @@ class DoliDBMysqli extends DoliDB return $this->forcecollate; } $liste=$this->fetch_array($resql); - return $liste['Value']; + $tmpval = $liste['Value']; + + return $tmpval; } /** diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index f9ec23d4f69..95840f73cb8 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -13,12 +13,17 @@ -- flush privileges; --- Requests to change character set and collation of a varchar column. --- utf8 and utf8_unicode_ci is recommended (or even better utf8mb4 and utf8mb4_unicode_ci with mysql 5.5.3+) +-- Request to change default pagecode + colation of database +-- ALTER DATABASE name_of_database CHARACTER SET utf8 COLLATE utf8_unicode_ci; +-- Request to change default pagecode + colation of table +-- ALTER TABLE name_of_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci; + +-- Request to change character set and collation of a varchar column. +-- utf8 and utf8_unicode_ci is recommended (or even better utf8mb4 and utf8mb4_unicode_ci with mysql 5.5.3+) -- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) CHARACTER SET utf8; -- ALTER TABLE llx_accounting_account MODIFY account_number VARCHAR(20) COLLATE utf8_unicode_ci; --- You can check with 'show full columns from llx_accounting_account'; +-- You can check with 'show full columns from mytablename'; diff --git a/htdocs/install/mysql/tables/llx_product_attribute.key.sql b/htdocs/install/mysql/tables/llx_product_attribute.key.sql index 28d687dbdda..f107a855e61 100644 --- a/htdocs/install/mysql/tables/llx_product_attribute.key.sql +++ b/htdocs/install/mysql/tables/llx_product_attribute.key.sql @@ -16,4 +16,5 @@ -- -- ============================================================================ -ALTER TABLE llx_product_attribute ADD CONSTRAINT unique_ref UNIQUE (ref); \ No newline at end of file +ALTER TABLE llx_product_attribute ADD UNIQUE INDEX uk_product_attribute_ref (ref); + diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index 9ad30fe5d7b..a0fdc22a015 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -312,8 +312,11 @@ if (! $error && $db->connected) // Define $defaultCharacterSet and $defaultDBSortingCollation if (! $error && $db->connected) { - if (!empty($db_create_database)) { // If we create database, we force default value - $defaultCharacterSet=$db->forcecharset; + if (!empty($db_create_database)) // If we create database, we force default value + { + // Default values come from the database handler + + $defaultCharacterSet=$db->forcecharset; $defaultDBSortingCollation=$db->forcecollate; } else // If already created, we take current value @@ -322,6 +325,14 @@ if (! $error && $db->connected) $defaultDBSortingCollation=$db->getDefaultCollationDatabase(); } + // Force to avoid utf8mb4 because index on field char 255 reach limit of 767 char for indexes (example with mysql 5.6.34 = mariadb 10.0.29) + // TODO Remove this when utf8mb4 is supported + if ($defaultCharacterSet == 'utf8mb4' || $defaultDBSortingCollation == 'utf8mb4_unicode_ci') + { + $defaultCharacterSet = 'utf8'; + $defaultDBSortingCollation = 'utf8_unicode_ci'; + } + print ''; print ''; $db_character_set=$defaultCharacterSet; From d57fe35efc0327ff4b7b191e40a508b2cd1a65f3 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 01:36:04 +0200 Subject: [PATCH 191/515] Add option to fix corrupted database with bad pagecode --- htdocs/install/repair.php | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/htdocs/install/repair.php b/htdocs/install/repair.php index 895d36d72f1..3cfbbda5d26 100644 --- a/htdocs/install/repair.php +++ b/htdocs/install/repair.php @@ -78,6 +78,7 @@ print 'Option clean_product_stock_batch (0 or \'test\' or \'confirmed\') is '.(G print 'Option set_empty_time_spent_amount (0 or \'test\' or \'confirmed\') is '.(GETPOST('set_empty_time_spent_amount','alpha')?GETPOST('set_empty_time_spent_amount','alpha'):'0').'
'."\n"; print 'Option rebuild_product_thumbs (0 or \'test\' or \'confirmed\') is '.(GETPOST('rebuild_product_thumbs','alpha')?GETPOST('rebuild_product_thumbs','alpha'):'0').'
'."\n"; print 'Option force_disable_of_modules_not_found (0 or \'test\' or \'confirmed\') is '.(GETPOST('force_disable_of_modules_not_found','alpha')?GETPOST('force_disable_of_modules_not_found','alpha'):'0').'
'."\n"; +print 'Option force_utf8_on_tables, for mysql/mariadb only(0 or \'test\' or \'confirmed\') is '.(GETPOST('force_utf8_on_tables','alpha')?GETPOST('force_utf8_on_tables','alpha'):'0').'
'."\n"; print '
'; print ''; @@ -890,6 +891,35 @@ if ($ok && GETPOST('force_disable_of_modules_not_found','alpha')) +// clean_old_module_entries: Clean data into const when files of module were removed without being +// clean_linked_elements: Check and clean linked elements +if ($ok && GETPOST('force_utf8_on_tables','alpha')) +{ + print ''; + + if ($db->type == "mysql") + { + $listoftables = $db->DDLListTables($db->database_name); + + foreach($listoftables as $table) + { + print ''; + } + } + else + { + print ''; + } +} + + print '

*** Force page code and collation with utf8 (for mysql/mariadb only)
'; + print $table; + $sql='ALTER TABLE '.$table.' CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci'; + if (GETPOST('force_utf8_on_tables','alpha') == 'confirmed') + { + $db->query($sql); + } + print '
Not available with database type '.$db->type.'
'; From 8a96260892ae9b4f76026e8c065291c6ced85901 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 01:57:28 +0200 Subject: [PATCH 192/515] Fix amount not filled into email confirmation --- htdocs/public/stripe/newpayment.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/public/stripe/newpayment.php b/htdocs/public/stripe/newpayment.php index af0c880d3c8..962185b8397 100644 --- a/htdocs/public/stripe/newpayment.php +++ b/htdocs/public/stripe/newpayment.php @@ -297,7 +297,7 @@ if ($action == 'charge') } $_SESSION["onlinetoken"] = $stripeToken; - $_SESSION["FinalPaymentAmt"] = $amount; + $_SESSION["Payment_Amount"] = $amount; $_SESSION["currencyCodeType"] = $currency; $_SESSION["paymentType"] = ''; $_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR']; // Payer ip From db1d97c9ac8e8d3f39e7c63876dfc6779b335a5c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 02:09:14 +0200 Subject: [PATCH 193/515] Fix bad value for ref of old contracts --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 0b41cf739ef..f418a5e6a1f 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -346,6 +346,8 @@ ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_tx d ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price double(24,8) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price_ttc double(24,8) DEFAULT NULL; +UPDATE TABLE llx_contrat set ref = rowid where ref is null or ref = ''; + create table llx_payment_various ( rowid integer AUTO_INCREMENT PRIMARY KEY, From 30153f8c2ef592a1b90641936fba08129c9ef155 Mon Sep 17 00:00:00 2001 From: Darkjeff Date: Mon, 3 Jul 2017 07:21:15 +0200 Subject: [PATCH 194/515] add in bookkeeping date lim reglement Date lim reglement for export Sage and Iris correct avoir when write in bookkeeping --- htdocs/accountancy/class/bookkeeping.class.php | 7 +++++++ htdocs/accountancy/journal/purchasesjournal.php | 12 ++++++++---- htdocs/accountancy/journal/sellsjournal.php | 12 ++++++++---- .../mysql/tables/llx_accounting_bookkeeping.sql | 1 + .../mysql/tables/llx_accounting_bookkeeping_tmp.sql | 1 + 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 51ef317e917..947a05a5e9e 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -71,6 +71,7 @@ class BookKeeping extends CommonObject /** */ public $doc_date; + public $date_lim_reglement; public $doc_type; public $doc_ref; public $fk_doc; @@ -255,6 +256,7 @@ class BookKeeping extends CommonObject $sql = "INSERT INTO " . MAIN_DB_PREFIX . $this->table_element . " ("; $sql .= "doc_date"; + $sql .= ", date_lim_reglement"; $sql .= ", doc_type"; $sql .= ", doc_ref"; $sql .= ", fk_doc"; @@ -277,6 +279,7 @@ class BookKeeping extends CommonObject $sql .= ', entity'; $sql .= ") VALUES ("; $sql .= "'" . $this->db->idate($this->doc_date) . "'"; + $sql .= ",'" . $this->db->idate($this->date_lim_reglement) . "'"; $sql .= ",'" . $this->db->escape($this->doc_type) . "'"; $sql .= ",'" . $this->db->escape($this->doc_ref) . "'"; $sql .= "," . $this->fk_doc; @@ -441,6 +444,7 @@ class BookKeeping extends CommonObject // Insert request $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . $mode.'('; $sql .= 'doc_date,'; + $sql .= 'date_lim_reglement,'; $sql .= 'doc_type,'; $sql .= 'doc_ref,'; $sql .= 'fk_doc,'; @@ -463,6 +467,7 @@ class BookKeeping extends CommonObject $sql .= 'entity'; $sql .= ') VALUES ('; $sql .= ' ' . (! isset($this->doc_date) || dol_strlen($this->doc_date) == 0 ? 'NULL' : "'" . $this->db->idate($this->doc_date) . "'") . ','; + $sql .= ' ' . (! isset($this->date_lim_reglement) || dol_strlen($this->date_lim_reglement) == 0 ? 'NULL' : "'" . $this->db->idate($this->date_lim_reglement) . "'") . ','; $sql .= ' ' . (! isset($this->doc_type) ? 'NULL' : "'" . $this->db->escape($this->doc_type) . "'") . ','; $sql .= ' ' . (! isset($this->doc_ref) ? 'NULL' : "'" . $this->db->escape($this->doc_ref) . "'") . ','; $sql .= ' ' . (empty($this->fk_doc) ? '0' : $this->fk_doc) . ','; @@ -537,6 +542,7 @@ class BookKeeping extends CommonObject $sql = 'SELECT'; $sql .= ' t.rowid,'; $sql .= " t.doc_date,"; + $sql .= " t.date_lim_reglement,"; $sql .= " t.doc_type,"; $sql .= " t.doc_ref,"; $sql .= " t.fk_doc,"; @@ -574,6 +580,7 @@ class BookKeeping extends CommonObject $this->id = $obj->rowid; $this->doc_date = $this->db->jdate($obj->doc_date); + $this->date_lim_reglement = $this->db->jdate($obj->date_lim_reglement); $this->doc_type = $obj->doc_type; $this->doc_ref = $obj->doc_ref; $this->fk_doc = $obj->fk_doc; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index 963ae4f19af..7bd8edc0fc0 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -88,7 +88,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $idpays = $mysoc->country_id; -$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier,"; +$sql = "SELECT f.rowid, f.ref, f.type, f.datef as df, f.libelle,f.ref_supplier, f.date_lim_reglement as dlf, "; $sql .= " fd.rowid as fdid, fd.description, fd.total_ttc, fd.tva_tx, fd.total_ht, fd.tva as total_tva, fd.product_type, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.fournisseur, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.accountancy_code_buy , aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; @@ -154,6 +154,7 @@ if ($result) { } $tabfac[$obj->rowid]["date"] = $db->jdate($obj->df); + $tabfac[$obj->rowid]["datereg"] = $db->jdate($obj->dlr); $tabfac[$obj->rowid]["ref"] = $obj->ref_supplier . ' (' . $obj->ref . ')'; $tabfac[$obj->rowid]["refsologest"] = $obj->ref; $tabfac[$obj->rowid]["refsuppliersologest"] = $obj->ref_supplier; @@ -218,6 +219,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; @@ -230,7 +232,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; - $bookkeeping->debit = ($mt <= 0) ? $mt : 0; + $bookkeeping->debit = ($mt <= 0) ? -$mt : 0; $bookkeeping->credit = ($mt > 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; @@ -267,6 +269,7 @@ if ($action == 'writebookkeeping') { if ($accountingaccount->fetch(null, $k, true)) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; @@ -280,7 +283,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; - $bookkeeping->credit = ($mt <= 0) ? $mt : 0; + $bookkeeping->credit = ($mt <= 0) ? -$mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; $bookkeeping->fk_user_author = $user->id; @@ -314,6 +317,7 @@ if ($action == 'writebookkeeping') { // get compte id and label $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'supplier_invoice'; @@ -327,7 +331,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; - $bookkeeping->credit = ($mt <= 0) ? $mt : 0; + $bookkeeping->credit = ($mt <= 0) ? -$mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; $bookkeeping->fk_user_author = $user->id; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index edaf3a87f27..3f51c1985e5 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -92,7 +92,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $idpays = $mysoc->country_id; -$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client,"; +$sql = "SELECT f.rowid, f.facnumber, f.type, f.datef as df, f.ref_client, f.date_lim_reglement as dlr,"; $sql .= " fd.rowid as fdid, fd.description, fd.product_type, fd.total_ht, fd.total_tva, fd.tva_tx, fd.total_ttc, fd.situation_percent, fd.vat_src_code,"; $sql .= " s.rowid as socid, s.nom as name, s.code_client, s.code_fournisseur, s.code_compta, s.code_compta_fournisseur,"; $sql .= " p.rowid as pid, p.ref as pref, p.accountancy_code_sell, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; @@ -175,6 +175,7 @@ if ($result) { // Invoice lines $tabfac[$obj->rowid]["date"] = $db->jdate($obj->df); + $tabfac[$obj->rowid]["datereg"] = $db->jdate($obj->dlr); $tabfac[$obj->rowid]["ref"] = $obj->facnumber; $tabfac[$obj->rowid]["type"] = $obj->type; $tabfac[$obj->rowid]["description"] = $obj->label_compte; @@ -233,6 +234,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; @@ -246,7 +248,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0) ? $mt : 0; - $bookkeeping->credit = ($mt < 0) ? $mt : 0; + $bookkeeping->credit = ($mt < 0) ? -$mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; $bookkeeping->fk_user_author = $user->id; @@ -280,6 +282,7 @@ if ($action == 'writebookkeeping') { if ($accountingaccount->fetch(null, $k, true)) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; @@ -292,7 +295,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $accountingaccount->label; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; - $bookkeeping->debit = ($mt < 0) ? $mt : 0; + $bookkeeping->debit = ($mt < 0) ? -$mt : 0; $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; @@ -326,6 +329,7 @@ if ($action == 'writebookkeeping') { if ($mt) { $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; + $bookkeeping->date_lim_reglement = $val["datereg"]; $bookkeeping->doc_ref = $val["ref"]; $bookkeeping->date_create = $now; $bookkeeping->doc_type = 'customer_invoice'; @@ -338,7 +342,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("VAT").' '.join(', ',$def_tva[$key][$k]); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'D' : 'C'; - $bookkeeping->debit = ($mt < 0) ? $mt : 0; + $bookkeeping->debit = ($mt < 0) ? -$mt : 0; $bookkeeping->credit = ($mt >= 0) ? $mt : 0; $bookkeeping->code_journal = $journal; $bookkeeping->journal_label = $journal_label; diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql index ad1160c356d..5c5ed42fac0 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql @@ -40,6 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet + date_lim_reglement datetime, -- | date limite de reglement fk_user_author integer NOT NULL, -- | user creating fk_user_modif integer, -- | user making last change date_creation datetime, -- FEC:EcritureDate | creation date diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql index 79954769cef..8744429a8fe 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql @@ -40,6 +40,7 @@ CREATE TABLE llx_accounting_bookkeeping_tmp multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet + date_lim_reglement datetime, -- | date limite de reglement fk_user_author integer NOT NULL, -- | user creating fk_user_modif integer, -- | user making last change date_creation datetime, -- FEC:EcritureDate | creation date From 9e26e6b0a3600b1172a01f31a0772e9f5b4bc7bf Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 02:09:14 +0200 Subject: [PATCH 195/515] Fix bad value for ref of old contracts --- htdocs/admin/websites.php | 51 +++++++++++------- htdocs/core/lib/pdf.lib.php | 2 +- htdocs/core/lib/website.lib.php | 33 ++++++++---- htdocs/core/modules/modWebsites.class.php | 6 +-- .../install/mysql/migration/5.0.0-6.0.0.sql | 2 + htdocs/langs/en_US/website.lang | 3 +- htdocs/public/error-404.php | 2 +- htdocs/public/websites/index.php | 52 +++++++++++++++---- htdocs/public/websites/styles.css.php | 21 +++++--- htdocs/websites/index.php | 13 ++++- 10 files changed, 132 insertions(+), 53 deletions(-) diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php index 4dbd154096f..0336a2533c0 100644 --- a/htdocs/admin/websites.php +++ b/htdocs/admin/websites.php @@ -25,8 +25,10 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formadmin.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; +require_once DOL_DOCUMENT_ROOT.'/websites/class/website.class.php'; $langs->load("errors"); $langs->load("admin"); @@ -35,7 +37,6 @@ $langs->load("website"); $action=GETPOST('action','alpha')?GETPOST('action','alpha'):'view'; $confirm=GETPOST('confirm','alpha'); -$id=GETPOST('id','int'); $rowid=GETPOST('rowid','alpha'); $id=1; @@ -135,7 +136,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) setEventMessages($langs->transnoentities("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)), null, 'errors'); } } - + // Si verif ok et action add, on ajoute la ligne if ($ok && GETPOST('actionadd')) { @@ -185,7 +186,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) if ($result) // Add is ok { setEventMessages($langs->transnoentities("RecordSaved"), null, 'mesgs'); - $_POST=array('id'=>$id); // Clean $_POST array, we keep only + unset($_POST); // Clean $_POST array, we keep only } else { @@ -204,6 +205,10 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } else { $rowidcol="rowid"; } + $website=new Website($db); + $rowid=GETPOST('rowid','int'); + $website->fetch($rowid); + // Modify entry $sql = "UPDATE ".$tabname[$id]." SET "; // Modifie valeur des champs @@ -229,7 +234,17 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) dol_syslog("actionmodify", LOG_DEBUG); //print $sql; $resql = $db->query($sql); - if (! $resql) + if ($resql) + { + $newname = dol_sanitizeFileName(GETPOST('ref','aZ09')); + if ($newname != $website->ref) + { + $srcfile=DOL_DATA_ROOT.'/websites/'.$website->ref; + $destfile=DOL_DATA_ROOT.'/websites/'.$newname; + @rename($srcfile, $destfile); + } + } + else { setEventMessages($db->error(), null, 'errors'); } @@ -249,7 +264,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete $sql = "DELETE from ".MAIN_DB_PREFIX."website_pages WHERE fk_website ='".$rowid."'"; $result = $db->query($sql); - + $sql = "DELETE from ".MAIN_DB_PREFIX."website WHERE rowid ='".$rowid."'"; $result = $db->query($sql); if (! $result) @@ -321,7 +336,7 @@ print "
\n"; // Confirmation de la suppression de la ligne if ($action == 'delete') { - print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid.'&id='.$id, $langs->trans('DeleteWebsite'), $langs->trans('ConfirmDeleteWebsite'), 'confirm_delete','',0,1); + print $form->formconfirm($_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.$rowid, $langs->trans('DeleteWebsite'), $langs->trans('ConfirmDeleteWebsite'), 'confirm_delete','',0,1); } //var_dump($elementList); @@ -355,7 +370,7 @@ if ($id) $fieldlist=explode(',',$tabfield[$id]); - print '
'; + print ''; print ''; print ''; @@ -388,9 +403,7 @@ if ($id) if ($fieldlist[$field]=='libelle' || $fieldlist[$field]=='label') $alabelisused=1; } - if ($id == 4) print ''; print ''; print ''; @@ -444,19 +457,19 @@ if ($id) if ($num) { print '
'; - - print ''; + + print ''; print ''; print ''; print ''; - + print '
'; - print ''; print '
'; - + // There is several pages if ($num > $listlimit) { print ''; } @@ -486,11 +499,11 @@ if ($id) // Affiche nom du champ if ($showfield) { - print getTitleFieldOfList($valuetoshow,0,$_SERVER["PHP_SELF"],($sortable?$fieldlist[$field]:''),($page?'page='.$page.'&':'').'&id='.$id,"","align=".$align,$sortfield,$sortorder); + print getTitleFieldOfList($valuetoshow,0,$_SERVER["PHP_SELF"],($sortable?$fieldlist[$field]:''),($page?'page='.$page.'&':''),"","align=".$align,$sortfield,$sortorder); } } - print getTitleFieldOfList($langs->trans("Status"),0,$_SERVER["PHP_SELF"],"status",($page?'page='.$page.'&':'').'&id='.$id,"",'align="center"',$sortfield,$sortorder); + print getTitleFieldOfList($langs->trans("Status"),0,$_SERVER["PHP_SELF"],"status",($page?'page='.$page.'&':''),"",'align="center"',$sortfield,$sortorder); print getTitleFieldOfList(''); print getTitleFieldOfList(''); print ''; @@ -539,7 +552,7 @@ if ($id) // Can an entry be erased or disabled ? $iserasable=1;$isdisable=1; // true by default - $url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(! empty($obj->rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'').'&id='.$id.'&'; + $url = $_SERVER["PHP_SELF"].'?'.($page?'page='.$page.'&':'').'sortfield='.$sortfield.'&sortorder='.$sortorder.'&rowid='.(! empty($obj->rowid)?$obj->rowid:(! empty($obj->code)?$obj->code:'')).'&code='.(! empty($obj->code)?urlencode($obj->code):'').'&'; // Active print '
'; - print_fleche_navigation($page, $_SERVER["PHP_SELF"], '&id='.$id, ($num > $listlimit), ''); + print_fleche_navigation($page, $_SERVER["PHP_SELF"], '', ($num > $listlimit), ''); print '
'; @@ -558,9 +571,9 @@ if ($id) } $i++; } - + print '
'; - + print '
'; } } diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index dedb169dc38..614379a2900 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -865,7 +865,7 @@ function pdf_pagefoot(&$pdf,$outputlangs,$paramfreetext,$fromcompany,$marge_bass // Make a change into HTML code to allow to include images from medias directory. // // become - // + // $newfreetext=preg_replace('/()/', '\1'.DOL_DATA_ROOT.'/medias/\2\3', $newfreetext); $line.=$outputlangs->convToOutputCharset($newfreetext); diff --git a/htdocs/core/lib/website.lib.php b/htdocs/core/lib/website.lib.php index ebbd261984e..37f01a0ffe3 100644 --- a/htdocs/core/lib/website.lib.php +++ b/htdocs/core/lib/website.lib.php @@ -31,21 +31,36 @@ function dolWebsiteOutput($content) { global $db, $langs, $conf, $user; + global $dolibarr_main_url_root; dol_syslog("dolWebsiteOutput start"); - + if (! defined('USEDOLIBARRSERVER')) { - // Replace link of Dolibarr medias with direct link for virtual server - - - - - + // Define $urlwithroot + $urlwithouturlroot=preg_replace('/'.preg_quote(DOL_URL_ROOT,'/').'$/i','',trim($dolibarr_main_url_root)); + $urlwithroot=$urlwithouturlroot.DOL_URL_ROOT; // This is to use external domain name found into config file + //$urlwithroot=DOL_MAIN_URL_ROOT; // This is to use same domain name than current + + $symlinktomediaexists=1; + + // Make a change into HTML code to allow to include images from medias directory correct with direct link for virtual server + // + // become + // + $nbrep=0; + if (! $symlinktomediaexists) + { + $content=preg_replace('/()/', '\1'.$urlwithroot.'/viewimage.php\2modulepart=medias\3file=\4\5', $content, -1, $nbrep); + } + else + { + $content=preg_replace('/()/', '\1medias/\4\5', $content, -1, $nbrep); + } } - + dol_syslog("dolWebsiteOutput end"); - + print $content; } diff --git a/htdocs/core/modules/modWebsites.class.php b/htdocs/core/modules/modWebsites.class.php index 877c78b85eb..57abe371314 100644 --- a/htdocs/core/modules/modWebsites.class.php +++ b/htdocs/core/modules/modWebsites.class.php @@ -42,15 +42,15 @@ class modWebsites extends DolibarrModules $this->db = $db; $this->numero = 10000; - + // Family can be 'crm','financial','hr','projects','products','ecm','technic','other' // It is used to group modules in module setup page $this->family = "portal"; $this->module_position = 50; // Module label (no space allowed), used if translation string 'ModuleXXXName' not found (where XXX is value of numeric property 'numero' of module) $this->name = preg_replace('/^mod/i','',get_class($this)); - $this->description = "Enable the public website with CMS features"; - $this->version = 'development'; // 'experimental' or 'dolibarr' or version + $this->description = "Enable to build and serve public websites with CMS features"; + $this->version = 'experimental'; // 'experimental' or 'dolibarr' or version // Key used in llx_const table to save module status enabled/disabled (where MYMODULE is value of property name of module in uppercase) $this->const_name = 'MAIN_MODULE_'.strtoupper($this->name); // Where to store the module in setup page (0=common,1=interface,2=others,3=very specific) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 0b41cf739ef..f418a5e6a1f 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -346,6 +346,8 @@ ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_tx d ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price double(24,8) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price_ttc double(24,8) DEFAULT NULL; +UPDATE TABLE llx_contrat set ref = rowid where ref is null or ref = ''; + create table llx_payment_various ( rowid integer AUTO_INCREMENT PRIMARY KEY, diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index 4482093b26d..dd6332b11a7 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -14,8 +14,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab diff --git a/htdocs/public/error-404.php b/htdocs/public/error-404.php index 951f29b7dde..36547d26704 100644 --- a/htdocs/public/error-404.php +++ b/htdocs/public/error-404.php @@ -18,7 +18,7 @@

Error


- You requested a page that does not exists. + You requested a website or a page that does not exists.
diff --git a/htdocs/public/websites/index.php b/htdocs/public/websites/index.php index 4c2eec0edc5..0bc85dce463 100644 --- a/htdocs/public/websites/index.php +++ b/htdocs/public/websites/index.php @@ -67,23 +67,51 @@ if (empty($pageid)) { require_once DOL_DOCUMENT_ROOT.'/websites/class/website.class.php'; require_once DOL_DOCUMENT_ROOT.'/websites/class/websitepage.class.php'; - + $object=new Website($db); $object->fetch(0, $website); - - $objectpage=new WebsitePage($db); - $array=$objectpage->fetchAll($object->id); - - if (count($array) > 0) + if (empty($object->id)) { - $firstrep=reset($array); - $pageid=$firstrep->id; + if (empty($pageid)) + { + // Return header 404 + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); + + include DOL_DOCUMENT_ROOT.'/public/error-404.php'; + exit; + } + } + + $objectpage=new WebsitePage($db); + + if ($object->fk_default_home > 0) + { + $result=$objectpage->fetch($object->fk_default_home); + if ($result > 0) + { + $pageid = $objectpage->id; + } + } + + if (empty($pageid)) + { + $array=$objectpage->fetchAll($object->id); + if (is_array($array) && count($array) > 0) + { + $firstrep=reset($array); + $pageid=$firstrep->id; + } } } if (empty($pageid)) { + // Return header 404 + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); + $langs->load("website"); print $langs->trans("PreviewOfSiteNotYetAvailable"); + + include DOL_DOCUMENT_ROOT.'/public/error-404.php'; exit; } @@ -95,7 +123,7 @@ if ($pageid == 'css') // No more used ? header('Content-type: text/css'); // Important: Following code is to avoid page request by browser and PHP CPU at each Dolibarr page access. //if (empty($dolibarr_nocache)) header('Cache-Control: max-age=3600, public, must-revalidate'); - //else + //else header('Cache-Control: no-cache'); $original_file=$dolibarr_main_data_root.'/websites/'.$website.'/styles.css.php'; } @@ -136,9 +164,13 @@ $original_file_osencoded=dol_osencode($original_file); // New file name encoded // This test if file exists should be useless. We keep it to find bug more easily if (! file_exists($original_file_osencoded)) { + // Return header 404 + header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found", true, 404); + $langs->load("website"); print $langs->trans("RequestedPageHasNoContentYet", $pageid); - //dol_print_error(0,$langs->trans("ErrorFileDoesNotExists",$original_file)); + + include DOL_DOCUMENT_ROOT.'/public/error-404.php'; exit; } diff --git a/htdocs/public/websites/styles.css.php b/htdocs/public/websites/styles.css.php index 5a736affc25..14014577cea 100644 --- a/htdocs/public/websites/styles.css.php +++ b/htdocs/public/websites/styles.css.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2016-2017 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,8 +18,7 @@ /** * \file htdocs/public/websites/styles.css.php * \ingroup website - * \brief Page to output style page - * \author Laurent Destailleur + * \brief Page to output style page. Called with */ define('NOTOKENRENEWAL',1); // Disables token renewal @@ -48,6 +47,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; $error=0; $website=GETPOST('website', 'alpha'); +$websiteid=GETPOST('websiteid', 'int'); $pageid=GETPOST('page', 'alpha')?GETPOST('page', 'alpha'):GETPOST('pageid', 'alpha'); $accessallowed = 1; @@ -67,13 +67,20 @@ if (empty($pageid)) { require_once DOL_DOCUMENT_ROOT.'/websites/class/website.class.php'; require_once DOL_DOCUMENT_ROOT.'/websites/class/websitepage.class.php'; - + $object=new Website($db); - $object->fetch(0, $website); - + if ($websiteid) + { + $object->fetch($websiteid); + $website=$object->ref; + } + else + { + $object->fetch(0, $website); + } $objectpage=new WebsitePage($db); $array=$objectpage->fetchAll($object->id); - + if (count($array) > 0) { $firstrep=reset($array); diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index 183fa45298a..1a11ea2a4e1 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -414,7 +414,7 @@ if ($action == 'updatemeta') $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; $tplcontent.= ''."\n"; @@ -452,6 +452,15 @@ if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage { $object->fetch(0, $website); + // Check symlink to medias and restore it if ko + $pathtomedias=DOL_DATA_ROOT.'/medias'; + $pathtomediasinwebsite=$pathofwebsite.'/medias'; + if (! is_link(dol_osencode($pathtomediasinwebsite))) + { + dol_syslog("Create symlink for ".$pathtomedias." into name ".$pathtomediasinwebsite); + symlink($pathtomedias, $pathtomediasinwebsite); + } + /*if (GETPOST('savevirtualhost') && $object->virtualhost != GETPOST('previewsite')) { $object->virtualhost = GETPOST('previewsite', 'alpha'); @@ -558,7 +567,7 @@ if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; $tplcontent.= ''."\n"; From 8b91f4fb5ee537980ced85843a983ec98ccb4a9a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 12:04:45 +0200 Subject: [PATCH 196/515] Debug module website --- htdocs/collab/index.php | 62 ++++++++++++++++----------------- htdocs/langs/en_US/website.lang | 3 +- htdocs/websites/index.php | 6 ++-- 3 files changed, 36 insertions(+), 35 deletions(-) diff --git a/htdocs/collab/index.php b/htdocs/collab/index.php index ea7abde4151..7f08beff955 100644 --- a/htdocs/collab/index.php +++ b/htdocs/collab/index.php @@ -49,7 +49,7 @@ function llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, top_htmlhead($head, $title, $disablejs, $disablehead, $arrayofjs, $arrayofcss); print ''; - + // top menu and left menu area if (empty($conf->dol_hide_topmenu)) { @@ -108,7 +108,7 @@ if (empty($action)) $action='preview'; */ if (GETPOST('refreshsite')) $pageid=0; // If we change the site, we reset the pageid. -if (GETPOST('refreshpage')) $action='preview'; +if (GETPOST('refreshpage')) $action='preview'; // Add a collab page @@ -146,7 +146,7 @@ if ($action == 'add') { $db->rollback(); } - + $action = 'preview'; $id = $objectpage->id; } @@ -173,7 +173,7 @@ if ($action == 'delete') { $db->commit(); setEventMessages($langs->trans("PageDeleted", $objectpage->pageurl, $website), null, 'mesgs'); - + header("Location: ".$_SERVER["PHP_SELF"].'?website='.$website); exit; } @@ -218,7 +218,7 @@ print '
'; if (count($object->records) > 0) { // ***** Part for web sites - + print '
'; print $langs->trans("Website").': '; print '
'; @@ -252,20 +252,20 @@ if (count($object->records) > 0) $dataroot=DOL_DATA_ROOT.'/websites/'.$website; if (! empty($object->virtualhost)) $virtualurl=$object->virtualhost; } - + if ($website && $action == 'preview') { $disabled=''; if (empty($user->rights->websites->write)) $disabled=' disabled="disabled"'; - + print '   '; - + //print ''; print ''; print ''; print ''; } - + print '
'; // Button for websites @@ -279,7 +279,7 @@ if (count($object->records) > 0) $htmltext=$langs->trans("SetHereVirtualHost", $dataroot); print $form->textwithpicto('', $htmltext); print '
'; - + $urlext=$virtualurl; $urlint=$urlwithroot.'/public/websites/index.php?website='.$website; //if (! empty($object->virtualhost)) @@ -288,7 +288,7 @@ if (count($object->records) > 0) print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $dataroot, $urlext?$urlext:$langs->trans("VirtualHostUrlNotDefined")), 1, 'preview_ext'); print ''; //} - + print 'transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $urlint)).'">'; print $form->textwithpicto('', $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Site"), $langs->transnoentitiesnoconv("Site"), $urlint, $dataroot), 1, 'preview'); print ''; @@ -300,12 +300,12 @@ if (count($object->records) > 0) if (preg_match('/^create/',$action)) print ''; if (preg_match('/^edit/',$action)) print ''; } - + print ''; // ***** Part for pages - + if ($website) { print ''; @@ -313,13 +313,13 @@ if (count($object->records) > 0) $array=$objectpage->fetchAll($object->id); if (! is_array($array) && $array < 0) dol_print_error('', $objectpage->error, $objectpage->errors); $atleastonepage=(is_array($array) && count($array) > 0); - + print '
'; print '
'; print $langs->trans("Page").': '; print '
'; print '
'; - + if ($action != 'add') { $out=''; @@ -336,7 +336,7 @@ if (count($object->records) > 0) } $pageid=$homepageid?$homepageid:$firstpageid; // We choose home page and if not defined yet, we take first page } - + foreach($array as $key => $valpage) { $out.='
'; print '
'; print '
'; @@ -389,17 +389,17 @@ if (count($object->records) > 0) { $websitepage = new WebSitePage($db); $websitepage->fetch($pageid); - + $realpage=$urlwithroot.'/public/websites/index.php?website='.$website.'&page='.$pageid; $pagealias = $websitepage->pageurl; - + print '
'; print ''; //print ''; $htmltext=$langs->trans("WEBSITE_PAGENAME", $pagealias); print $form->textwithpicto('', $htmltext); print '
'; - + if (! empty($object->virtualhost)) { $urlext=$virtualurl.'/'.$pagealias.'.php'; @@ -413,12 +413,12 @@ if (count($object->records) > 0) print $form->textwithpicto('', $langs->trans("PreviewSiteServedByWebServer", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $dataroot, $urlext?$urlext:$langs->trans("VirtualHostUrlNotDefined")), 1, 'preview_ext'); print ''; } - + print 'transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage)).'">'; - print $form->textwithpicto('', $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage, $dataroot), 1, 'preview'); + print $form->textwithpicto('', $langs->trans("PreviewSiteServedByDolibarr", $langs->transnoentitiesnoconv("Page"), $langs->transnoentitiesnoconv("Page"), $realpage, $dataroot), 1, 'preview'); print ''; // View page in new Tab //print ''; - + // TODO Add js to save alias like we save virtual host name and use dynamic virtual host for url of id=previewpageext } if (! in_array($action, array('editcss','editmenu','create'))) @@ -427,7 +427,7 @@ if (count($object->records) > 0) if (preg_match('/^create/',$action)) print ''; if (preg_match('/^edit/',$action)) print ''; } - + print '
'; if ($action == 'preview') @@ -454,7 +454,7 @@ if (count($object->records) > 0) }, context: document.body }); - + jQuery("#previewsiteext").attr("href",newurl); jQuery("#previewpageext").attr("href",newpage); }); @@ -483,15 +483,15 @@ if ($action == 'editcontent') /* * Editing global variables not related to a specific theme */ - + $csscontent = @file_get_contents($filecss); - + $contentforedit = ''; /*$contentforedit.=''."\n";*/ $contentforedit .= $objectpage->content; - + require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $doleditor=new DolEditor('PAGE_CONTENT',$contentforedit,'',500,'Full','',true,true,true,ROWS_5,'90%'); $doleditor->Create(0, '', false); diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index dd6332b11a7..abb7f7e56d3 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -24,7 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. NoPageYet=No pages yet \ No newline at end of file diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index 1a11ea2a4e1..a5c2ae4e046 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -727,7 +727,7 @@ if (count($object->records) > 0) print ''; //print ''; $htmltext=$langs->trans("SetHereVirtualHost", $dataroot); - print $form->textwithpicto('', $htmltext); + print $form->textwithpicto('', $htmltext, 1, 'help', '', 0, 2, 'helpvirtualhost'); print ''; $urlext=$virtualurl; @@ -846,8 +846,8 @@ if (count($object->records) > 0) print '
'; print ''; //print ''; - $htmltext=$langs->trans("WEBSITE_PAGENAME", $pagealias); - print $form->textwithpicto('', $htmltext); + $htmltext=$langs->trans("PageNameAliasHelp", $langs->transnoentitiesnoconv("EditPageMeta")); + print $form->textwithpicto('', $htmltext, 1, 'help', '', 0, 2, 'helppagealias'); print '
'; if (! empty($object->virtualhost)) From cb1c461b69440755cd5241c02807c14f1318ebb7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 3 Jul 2017 12:28:52 +0200 Subject: [PATCH 197/515] Work on module builder --- htdocs/langs/en_US/modulebuilder.lang | 15 ++++++---- htdocs/modulebuilder/index.php | 43 ++++++++++++++++++++++++--- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 1c3a7932263..9eb910da360 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tools give you utilites to build or edit your own module (More information here). +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) -ModuleBuilderDesc2=Path were modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module NewObject=New object @@ -11,17 +11,19 @@ ObjectKey=Object key ModuleInitialized=Module initialized FilesForObjectInitialized=Files for new object initialized ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE. ModuleBuilderDeschooks=This tab is dedicated to hooks. ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module. Just click on button to build the module package file. -EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module will be definitly lost ! +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! DangerZone=Danger zone -BuildPackage=Build package +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live) ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description @@ -33,5 +35,6 @@ ApiClassFile=File for PHP API class PageForList=PHP page for list of record PageForCreateEditView=PHP page to create/edit/view a record PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. -PackageFileNotYetGenerated=Package file not yet generated \ No newline at end of file +FileNotYetGenerated=File not yet generated diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index caa99d4b089..8ea54b78454 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -579,6 +579,11 @@ elseif (! empty($module)) $head2[$h][2] = 'description'; $h++; + $head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=specifications&module='.$module; + $head2[$h][1] = $langs->trans("Specifications"); + $head2[$h][2] = 'specifications'; + $h++; + $head2[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module; $head2[$h][1] = $langs->trans("Objects"); $head2[$h][2] = 'objects'; @@ -692,6 +697,13 @@ elseif (! empty($module)) print ''; } + + if ($tab == 'specifications') + { + print $langs->trans("FeatureNotYetAvailable"); + + } + if ($tab == 'objects') { $head3 = array(); @@ -849,7 +861,6 @@ elseif (! empty($module)) { print $langs->trans("FeatureNotYetAvailable"); - } if ($tab == 'permissions') @@ -900,7 +911,7 @@ elseif (! empty($module)) print ''; } - if ($tab == 'widget') + if ($tab == 'widgets') { print $langs->trans("FeatureNotYetAvailable"); @@ -947,17 +958,22 @@ elseif (! empty($module)) { $FILENAMEZIP="module_".$modulelowercase.'-'.$arrayversion[0].'.'.$arrayversion[1].($arrayversion[2]?".".$arrayversion[2]:"").".zip"; $outputfile = $conf->admin->dir_temp.'/'.$FILENAMEZIP; + + $FILENAMEDOC="module_".$modulelowercase.'-'.$arrayversion[0].'.'.$arrayversion[1].($arrayversion[2]?".".$arrayversion[2]:"").".md"; + $outputfiledoc = $conf->admin->dir_temp.'/'.$FILENAMEDOC; } + print '
'; + print ' '. $langs->trans("PathToModulePackage") . ' : '; - if (! dol_is_file($outputfile)) print ''.$langs->trans("PackageFileNotYetGenerated").''; + if (! dol_is_file($outputfile)) print ''.$langs->trans("FileNotYetGenerated").''; else { print ''.$outputfile.''; print ' ('.$langs->trans("GeneratedOn").' '.dol_print_date(dol_filemtime($outputfile), 'dayhour').')'; } print '

'; - print '

'; + print '
'; print '
'; print ''; @@ -965,6 +981,25 @@ elseif (! empty($module)) print ''; print ''; print '
'; + + print '


'; + + print ' '. $langs->trans("PathToModuleDocumentation") . ' : '; + if (! dol_is_file($outputfiledoc)) print ''.$langs->trans("FileNotYetGenerated").''; + else { + print ''.$outputfiledoc.''; + print ' ('.$langs->trans("GeneratedOn").' '.dol_print_date(dol_filemtime($outputfiledoc), 'dayhour').')'; + } + print '

'; + + print '
'; + + print '
'; + print ''; + print ''; + print ''; + print ''; + print '
'; } dol_fiche_end(); From c8d039508f976f36d7328b7288e712cb24cd9906 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Mon, 3 Jul 2017 14:01:11 +0200 Subject: [PATCH 198/515] Fix missing error message --- htdocs/expedition/class/expedition.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 857ac1d5271..c87e43c28fc 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -716,6 +716,7 @@ class Expedition extends CommonObject if ($result < 0) { $error++; $this->errors[]=$mouvS->error; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } From d9d9b748adb6993af1e9646b9a9230f82cbd54dc Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Mon, 3 Jul 2017 19:27:21 +0200 Subject: [PATCH 199/515] Fix: check if action type is different of 'user' (external module) --- htdocs/admin/dict.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/admin/dict.php b/htdocs/admin/dict.php index 485c5713636..72888a8deb3 100644 --- a/htdocs/admin/dict.php +++ b/htdocs/admin/dict.php @@ -1752,8 +1752,9 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') } elseif ($fieldlist[$field] == 'type' && $tabname == MAIN_DB_PREFIX."c_actioncomm") { + $type = (! empty($obj->type)?$obj->type:'user'); // Check if type is different of 'user' (external module) print ''; - print 'user'; + print $type.''; print ''; } elseif ($fieldlist[$field] == 'recuperableonly' || $fieldlist[$field] == 'type_cdr' || $fieldlist[$field] == 'deductible' || $fieldlist[$field] == 'category_type') { From 42183877e8a1ce122b3cc39e97b0ba899cf099b9 Mon Sep 17 00:00:00 2001 From: phf Date: Tue, 4 Jul 2017 09:30:53 +0200 Subject: [PATCH 200/515] Fix sql syntax --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index f418a5e6a1f..600503a8b7e 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -346,7 +346,7 @@ ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_tx d ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price double(24,8) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price_ttc double(24,8) DEFAULT NULL; -UPDATE TABLE llx_contrat set ref = rowid where ref is null or ref = ''; +UPDATE llx_contrat set ref = rowid where ref is null or ref = ''; create table llx_payment_various ( From 0ee93fb00c011243c2db224a6d3e8119dd412aa0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 10:29:38 +0200 Subject: [PATCH 201/515] Fix conflict between option login and logina and logint in agenda export --- htdocs/admin/agenda_xcal.php | 2 +- htdocs/comm/action/class/actioncomm.class.php | 64 +++++++++++-------- htdocs/langs/en_US/agenda.lang | 4 +- htdocs/public/agenda/agendaexport.php | 22 +++---- 4 files changed, 52 insertions(+), 40 deletions(-) diff --git a/htdocs/admin/agenda_xcal.php b/htdocs/admin/agenda_xcal.php index 1895eb5b15d..99742b19f57 100644 --- a/htdocs/admin/agenda_xcal.php +++ b/htdocs/admin/agenda_xcal.php @@ -174,8 +174,8 @@ $message.='
'; print $message; $message=$langs->trans("AgendaUrlOptions1",$user->login,$user->login).'
'; -//$message.=$langs->trans("AgendaUrlOptions2",$user->login,$user->login).'
'; $message.=$langs->trans("AgendaUrlOptions3",$user->login,$user->login).'
'; +$message.=$langs->trans("AgendaUrlOptionsNotAdmin",$user->login,$user->login).'
'; $message.=$langs->trans("AgendaUrlOptions4",$user->login,$user->login).'
'; $message.=$langs->trans("AgendaUrlOptionsProject",$user->login,$user->login); diff --git a/htdocs/comm/action/class/actioncomm.class.php b/htdocs/comm/action/class/actioncomm.class.php index 8243268574c..70b2acb86b7 100644 --- a/htdocs/comm/action/class/actioncomm.class.php +++ b/htdocs/comm/action/class/actioncomm.class.php @@ -38,7 +38,7 @@ class ActionComm extends CommonObject public $table_rowid = 'id'; protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe public $picto='action'; - + /** * Id of the event * @var int @@ -168,7 +168,7 @@ class ActionComm extends CommonObject var $email_subject; var $errors_to; - + /** * Constructor * @@ -444,7 +444,7 @@ class ActionComm extends CommonObject $u->fetch($fuser); $fuser = $u; } - else + else { $fuser = $user; } @@ -657,11 +657,11 @@ class ActionComm extends CommonObject $this->error=$this->db->lasterror(); $error++; } - + if (! $error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."actioncomm_resources"; $sql.= " WHERE fk_actioncomm=".$this->id; - + dol_syslog(get_class($this)."::delete", LOG_DEBUG); $res=$this->db->query($sql); if ($res < 0) { @@ -669,7 +669,7 @@ class ActionComm extends CommonObject $error++; } } - + // Removed extrafields if (! $error) { $result=$this->deleteExtraFields(); @@ -1091,7 +1091,7 @@ class ActionComm extends CommonObject else if ($percent > 0 && $percent < 100) return $percent.'% '.img_picto($langs->trans('StatusActionInProcess').' - '.$percent.'%','statut3'); else if ($percent >= 100) return img_picto($langs->trans('StatusActionDone'),'statut6'); } - + return ''; } @@ -1112,20 +1112,20 @@ class ActionComm extends CommonObject global $conf, $langs, $user, $hookmanager; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips - + $label = $this->label; if (empty($label)) $label=$this->libelle; // For backward compatibility $result=''; - + // Set label of typ $labeltype = ($langs->transnoentities("Action".$this->type_code) != "Action".$this->type_code)?$langs->transnoentities("Action".$this->type_code):$this->type_label; if (empty($conf->global->AGENDA_USE_EVENT_TYPE)) { if ($this->type_code != 'AC_OTH_AUTO') $labeltype = $langs->trans('ActionAC_MANUAL'); } - - + + $tooltip = '' . $langs->trans('ShowAction'.$objp->code) . ''; if (! empty($this->ref)) $tooltip .= '
' . $langs->trans('Ref') . ': ' . $this->ref; @@ -1137,7 +1137,7 @@ class ActionComm extends CommonObject $tooltip .= '
' . $langs->trans('Location') . ': ' . $this->location; $linkclose=''; - if (! empty($conf->global->AGENDA_USE_EVENT_TYPE) && $this->type_color) + if (! empty($conf->global->AGENDA_USE_EVENT_TYPE) && $this->type_color) $linkclose = ' style="background-color:#'.$this->type_color.'"'; if (empty($notooltip)) @@ -1149,7 +1149,7 @@ class ActionComm extends CommonObject } $linkclose.=' title="'.dol_escape_htmltag($tooltip, 1).'"'; $linkclose.=' class="'.$classname.' classfortooltip"'; - + if (! is_object($hookmanager)) { include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; @@ -1161,17 +1161,17 @@ class ActionComm extends CommonObject $linkclose = ($hookmanager->resPrint ? $hookmanager->resPrint : $linkclose); } else $linkclose.=' class="'.$classname.'"'; - + $url=''; - if ($option=='birthday') + if ($option=='birthday') $url = DOL_URL_ROOT.'/contact/perso.php?id='.$this->id; - else + else $url = DOL_URL_ROOT.'/comm/action/card.php?id='.$this->id; - + $linkstart = ''; $linkend=''; - + //print 'rrr'.$this->libelle.'-'.$withpicto; if ($withpicto == 2) @@ -1279,7 +1279,7 @@ class ActionComm extends CommonObject $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."user as u on u.rowid = a.fk_user_author"; // Link to get author of event for export $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on s.rowid = a.fk_soc"; // We must filter on assignement table - if ($filters['logint'] || $filters['login']) $sql.=", ".MAIN_DB_PREFIX."actioncomm_resources as ar"; + if ($filters['logint']) $sql.=", ".MAIN_DB_PREFIX."actioncomm_resources as ar"; $sql.= " WHERE a.fk_action=c.id"; $sql.= " AND a.entity IN (".getEntity('agenda').")"; foreach ($filters as $key => $value) @@ -1291,20 +1291,34 @@ class ActionComm extends CommonObject if ($key == 'idto') $sql.=" AND a.id <= ".(is_numeric($value)?$value:0); if ($key == 'project') $sql.=" AND a.fk_project=".(is_numeric($value)?$value:0); // We must filter on assignement table - if ($key == 'logint' || $key == 'login') $sql.= " AND ar.fk_actioncomm = a.id AND ar.element_type='user'"; + if ($key == 'logint') $sql.= " AND ar.fk_actioncomm = a.id AND ar.element_type='user'"; if ($key == 'logina') { $logina=$value; + $condition='='; + if (preg_match('/^!/',$logina)) + { + $logina=preg_replace('/^!/','',$logina); + $condition='<>'; + } $userforfilter=new User($this->db); - $result=$userforfilter->fetch('',$value); - $sql.= " AND a.fk_user_author = ".$userforfilter->id; + $result=$userforfilter->fetch('',$logina); + if ($result > 0) $sql.= " AND a.fk_user_author ".$condition." ".$userforfilter->id; + elseif ($result < 0 || $condition == '=') $sql.= " AND a.fk_user_author = 0"; } - if ($key == 'logint' || $key == 'login') + if ($key == 'logint') { $logint=$value; + $condition='='; + if (preg_match('/^!/',$logint)) + { + $logint=preg_replace('/^!/','',$logint); + $condition='<>'; + } $userforfilter=new User($this->db); - $result=$userforfilter->fetch('',$value); - $sql.= " AND ar.fk_element = ".$userforfilter->id; + $result=$userforfilter->fetch('',$logint); + if ($result > 0) $sql.= " AND ar.fk_element = ".$userforfilter->id; + elseif ($result < 0 || $condition == '=') $sql.= " AND ar.fk_element = 0"; } } $sql.= " AND a.datep IS NOT NULL"; // To exclude corrupted events and avoid errors in lightning/sunbird import diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 9e7af7b0d06..4e2e2acf378 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -80,9 +80,9 @@ AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/public/agenda/agendaexport.php b/htdocs/public/agenda/agendaexport.php index b3886824485..81a67204fdb 100644 --- a/htdocs/public/agenda/agendaexport.php +++ b/htdocs/public/agenda/agendaexport.php @@ -65,19 +65,18 @@ if (! isset($conf->global->MAIN_AGENDA_EXPORT_PAST_DELAY)) $conf->global->MAIN_A // Define format, type and filter $format='ical'; $type='event'; -if (! empty($_GET["format"])) $format=$_GET["format"]; -if (! empty($_GET["type"])) $type=$_GET["type"]; +if (GETPOST("format",'alpha')) $format=GETPOST("format",'apha'); +if (GETPOST("type",'apha')) $type=GETPOST("type",'alpha'); $filters=array(); -if (! empty($_GET["year"])) $filters['year']=$_GET["year"]; -if (! empty($_GET["id"])) $filters['id']=$_GET["id"]; -if (! empty($_GET["idfrom"])) $filters['idfrom']=$_GET["idfrom"]; -if (! empty($_GET["idto"])) $filters['idto']=$_GET["idto"]; -if (! empty($_GET["project"])) $filters['project']=$_GET["project"]; -if (! empty($_GET["login"])) $filters['login']=$_GET["login"]; -if (! empty($_GET["logina"])) $filters['logina']=$_GET["logina"]; -if (! empty($_GET["logint"])) $filters['logint']=$_GET["logint"]; -if (GETPOST("notolderthan")) $filters['notolderthan']=GETPOST("notolderthan","int"); +if (GETPOST("year",'int')) $filters['year']=GETPOST("year",'int'); +if (GETPOST("id",'int')) $filters['id']=GETPOST("id",'int'); +if (GETPOST("idfrom",'int')) $filters['idfrom']=GETPOST("idfrom",'int'); +if (GETPOST("idto",'int')) $filters['idto']=GETPOST("idto",'int'); +if (GETPOST("project",'apha')) $filters['project']=GETPOST("project",'apha'); +if (GETPOST("logina",'apha')) $filters['logina']=GETPOST("logina",'apha'); +if (GETPOST("logint",'apha')) $filters['logint']=GETPOST("logint",'apha'); +if (GETPOST("notolderthan",'int')) $filters['notolderthan']=GETPOST("notolderthan","int"); else $filters['notolderthan']=$conf->global->MAIN_AGENDA_EXPORT_PAST_DELAY; // Check config @@ -115,7 +114,6 @@ foreach ($filters as $key => $value) if ($key == 'idfrom') $filename.='-idfrom'.$value; if ($key == 'idto') $filename.='-idto'.$value; if ($key == 'project') $filename.='-project'.$value; - if ($key == 'login') $filename.='-login'.$value; if ($key == 'logina') $filename.='-logina'.$value; // Author if ($key == 'logint') $filename.='-logint'.$value; // Assigned to } From e1ae97e66123b1565eb2769d98f199526ac7e2b3 Mon Sep 17 00:00:00 2001 From: John Date: Tue, 4 Jul 2017 10:34:59 +0200 Subject: [PATCH 202/515] Fix return method --- htdocs/contrat/class/contrat.class.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php index a1696c749f8..f1c0f1343b7 100644 --- a/htdocs/contrat/class/contrat.class.php +++ b/htdocs/contrat/class/contrat.class.php @@ -228,7 +228,7 @@ class Contrat extends CommonObject */ function active_line($user, $line_id, $date, $date_end='', $comment='') { - $this->lines[$this->lines_id_index_mapper[$line_id]]->active_line($user, $date, $date_end, $comment); + return $this->lines[$this->lines_id_index_mapper[$line_id]]->active_line($user, $date, $date_end, $comment); } @@ -243,7 +243,7 @@ class Contrat extends CommonObject */ function close_line($user, $line_id, $date_end, $comment='') { - $this->lines[$this->lines_id_index_mapper[$line_id]]->close_line($user, $date_end, $comment); + return $this->lines[$this->lines_id_index_mapper[$line_id]]->close_line($user, $date_end, $comment); } From 95cf36c43bd814a7aeee09a17b432a4d8c8d778c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 10:55:53 +0200 Subject: [PATCH 203/515] Fix use the getUrl function instead of hard coded curl --- htdocs/categories/admin/categorie.php | 3 ++- .../categories/admin/categorie_extrafields.php | 2 +- htdocs/langs/en_US/products.lang | 8 +++++++- htdocs/product/admin/dynamic_prices.php | 2 ++ .../price_global_variable_updater.class.php | 18 ++++++------------ 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/htdocs/categories/admin/categorie.php b/htdocs/categories/admin/categorie.php index d16b081e6ae..55006a8b171 100644 --- a/htdocs/categories/admin/categorie.php +++ b/htdocs/categories/admin/categorie.php @@ -37,6 +37,7 @@ $action=GETPOST('action','aZ09'); /* * Actions */ + if (preg_match('/set_(.*)/',$action,$reg)) { $code=$reg[1]; @@ -82,7 +83,7 @@ print load_fiche_titre($langs->trans("CategoriesSetup"),$linkback,'title_setup') $head=categoriesadmin_prepare_head(); -dol_fiche_head($head, 'setup', $langs->trans("Categories"), 0, 'category'); +dol_fiche_head($head, 'setup', $langs->trans("Categories"), -1, 'category'); print ''; diff --git a/htdocs/categories/admin/categorie_extrafields.php b/htdocs/categories/admin/categorie_extrafields.php index 2bc9f205334..6291d2065c2 100644 --- a/htdocs/categories/admin/categorie_extrafields.php +++ b/htdocs/categories/admin/categorie_extrafields.php @@ -68,7 +68,7 @@ print load_fiche_titre($langs->trans("CategoriesSetup"),$linkback,'title_setup') $head = categoriesadmin_prepare_head(); -dol_fiche_head($head, 'attributes_categories', $langs->trans("Categories"), 0, 'category'); +dol_fiche_head($head, 'attributes_categories', $langs->trans("Categories"), -1, 'category'); require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php'; diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index ae9cd743c8f..3c47b188972 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -247,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated diff --git a/htdocs/product/admin/dynamic_prices.php b/htdocs/product/admin/dynamic_prices.php index 24f1d64e30c..b044471e3e1 100644 --- a/htdocs/product/admin/dynamic_prices.php +++ b/htdocs/product/admin/dynamic_prices.php @@ -54,9 +54,11 @@ if ($action == 'edit_updater') { } } + /* * Actions */ + if (!empty($action) && empty($cancel)) { //Global variable actions if ($action == 'create_variable' || $action == 'edit_variable') { diff --git a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php index 3c176f0530e..0948275ce2b 100644 --- a/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php +++ b/htdocs/product/dynamic_price/class/price_global_variable_updater.class.php @@ -464,24 +464,18 @@ class PriceGlobalVariableUpdater } $result = ""; if ($this->type == 0) { - //CURL client - $handle = curl_init(); - curl_setopt_array($handle, array( - CURLOPT_URL => $url, - CURLOPT_RETURNTRANSFER => true, - CURLOPT_TIMEOUT => 5, - CURLOPT_POST => false, - CURLOPT_HEADER => false, - )); + // Call JSON request + include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; + $tmpresult=getURLContent($url); + $code=$tmpresult['http_code']; + $result=$tmpresult['content']; - $result = curl_exec($handle); - $code = curl_getinfo($handle, CURLINFO_HTTP_CODE); if (!isset($result)) { $this->error = $langs->trans("ErrorGlobalVariableUpdater0", "empty response"); return -1; } if ($code !== 200) { - $this->error = $langs->trans("ErrorGlobalVariableUpdater0", $code); + $this->error = $langs->trans("ErrorGlobalVariableUpdater0", $code.' '.$tmpresult['curl_error_msg']); return -1; } From 77f5952318a6fd58617dcd35d7c3ab44471ad271 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 11:18:48 +0200 Subject: [PATCH 204/515] Fix pgsql compatibility --- htdocs/core/db/mysqli.class.php | 10 +++++----- htdocs/core/db/pgsql.class.php | 7 +++++-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/htdocs/core/db/mysqli.class.php b/htdocs/core/db/mysqli.class.php index 526d43de0ab..4358e8695fe 100644 --- a/htdocs/core/db/mysqli.class.php +++ b/htdocs/core/db/mysqli.class.php @@ -735,13 +735,13 @@ class DoliDBMysqli extends DoliDB { // cles recherchees dans le tableau des descriptions (field_desc) : type,value,attribute,null,default,extra // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); - $sql= "ALTER TABLE ".$table." ADD `".$field_name."` "; + $sql= "ALTER TABLE ".$table." ADD ".$field_name." "; $sql.= $field_desc['type']; if(preg_match("/^[^\s]/i",$field_desc['value'])) - if (! in_array($field_desc['type'],array('date','datetime'))) - { - $sql.= "(".$field_desc['value'].")"; - } + if (! in_array($field_desc['type'],array('date','datetime'))) + { + $sql.= "(".$field_desc['value'].")"; + } if(preg_match("/^[^\s]/i",$field_desc['attribute'])) $sql.= " ".$field_desc['attribute']; if(preg_match("/^[^\s]/i",$field_desc['null'])) diff --git a/htdocs/core/db/pgsql.class.php b/htdocs/core/db/pgsql.class.php index 4aa56b367f3..d02ff4a1341 100644 --- a/htdocs/core/db/pgsql.class.php +++ b/htdocs/core/db/pgsql.class.php @@ -1048,8 +1048,11 @@ class DoliDBPgsql extends DoliDB // ex. : $field_desc = array('type'=>'int','value'=>'11','null'=>'not null','extra'=> 'auto_increment'); $sql= "ALTER TABLE ".$table." ADD ".$field_name." "; $sql .= $field_desc['type']; - if ($field_desc['type'] != 'int' && preg_match("/^[^\s]/i",$field_desc['value'])) - $sql .= "(".$field_desc['value'].")"; + if(preg_match("/^[^\s]/i",$field_desc['value'])) + if (! in_array($field_desc['type'],array('int','date','datetime'))) + { + $sql.= "(".$field_desc['value'].")"; + } if (preg_match("/^[^\s]/i",$field_desc['attribute'])) $sql .= " ".$field_desc['attribute']; if (preg_match("/^[^\s]/i",$field_desc['null'])) From 3892da76066a96331598d6641872b973940a187d Mon Sep 17 00:00:00 2001 From: phf Date: Tue, 4 Jul 2017 12:09:56 +0200 Subject: [PATCH 205/515] Fix update row on xlsx import do not work as csv import --- .../modules/import/import_xlsx.modules.php | 215 +++++++++++++----- 1 file changed, 153 insertions(+), 62 deletions(-) diff --git a/htdocs/core/modules/import/import_xlsx.modules.php b/htdocs/core/modules/import/import_xlsx.modules.php index 917760dc900..eff3b8f8b21 100644 --- a/htdocs/core/modules/import/import_xlsx.modules.php +++ b/htdocs/core/modules/import/import_xlsx.modules.php @@ -292,10 +292,11 @@ class ImportXlsx extends ModeleImports * @param Object $objimport Object import (contains objimport->array_import_tables, objimport->array_import_fields, objimport->array_import_convertvalue, ...) * @param int $maxfields Max number of fields to use * @param string $importid Import key + * @param array $updatekeys Array of keys to use to try to do update * @return int <0 if KO, >0 if OK */ // What is this doing here ? it is common to all imports, is should be in the parent class - function import_insert($arrayrecord,$array_match_file_to_database,$objimport,$maxfields,$importid) + function import_insert($arrayrecord,$array_match_file_to_database,$objimport,$maxfields,$importid,$updatekeys) { global $langs,$conf,$user; global $thirdparty_static; // Specific to thirdparty import @@ -326,13 +327,15 @@ class ImportXlsx extends ModeleImports else { $last_insert_id_array = array(); // store the last inserted auto_increment id for each table, so that dependent tables can be inserted with the appropriate id (eg: extrafields fk_object will be set with the last inserted object's id) + $updatedone = false; + $insertdone = false; // For each table to insert, me make a separate insert foreach($objimport->array_import_tables[0] as $alias => $tablename) { // Build sql request $sql=''; - $listfields=''; - $listvalues=''; + $listfields=array(); + $listvalues=array(); $i=0; $errorforthistable=0; @@ -372,7 +375,7 @@ class ImportXlsx extends ModeleImports // Make some tests on $newval // Is it a required field ? - if (preg_match('/\*/',$objimport->array_import_fields[0][$val]) && ((string) $newval == '')) + if (preg_match('/\*/',$objimport->array_import_fields[0][$val]) && ((string) $newval=='')) { $this->errors[$error]['lib']=$langs->trans('ErrorMissingMandatoryValue',$key); $this->errors[$error]['type']='NOTNULL'; @@ -399,7 +402,7 @@ class ImportXlsx extends ModeleImports if ($isidorref == 'ref') // If value into input import file is a ref, we apply the function defined into descriptor { - $file=$objimport->array_import_convertvalue[0][$val]['classfile']; + $file=(empty($objimport->array_import_convertvalue[0][$val]['classfile'])?$objimport->array_import_convertvalue[0][$val]['file']:$objimport->array_import_convertvalue[0][$val]['classfile']); $class=$objimport->array_import_convertvalue[0][$val]['class']; $method=$objimport->array_import_convertvalue[0][$val]['method']; if ($this->cacheconvert[$file.'_'.$class.'_'.$method.'_'][$newval] != '') @@ -408,7 +411,12 @@ class ImportXlsx extends ModeleImports } else { - dol_include_once($file); + $resultload = dol_include_once($file); + if (empty($resultload)) + { + dol_print_error('', 'Error trying to call file='.$file.', class='.$class.', method='.$method); + break; + } $classinstance=new $class($this->db); // Try the fetch from code or ref call_user_func_array(array($classinstance, $method),array('', $newval)); @@ -481,6 +489,26 @@ class ImportXlsx extends ModeleImports } if (empty($newval)) $arrayrecord[($key-1)]['type']=-1; // If we get empty value, we will use "null" } + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='getrefifauto') + { + $defaultref=''; + // TODO provide the $modTask (module of generation of ref) as parameter of import_insert function + $obj = empty($conf->global->PROJECT_TASK_ADDON)?'mod_task_simple':$conf->global->PROJECT_TASK_ADDON; + if (! empty($conf->global->PROJECT_TASK_ADDON) && is_readable(DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.".php")) + { + require_once DOL_DOCUMENT_ROOT ."/core/modules/project/task/".$conf->global->PROJECT_TASK_ADDON.'.php'; + $modTask = new $obj; + $defaultref = $modTask->getNextValue(null,null); + } + if (is_numeric($defaultref) && $defaultref <= 0) $defaultref=''; + $newval=$defaultref; + } + + + elseif ($objimport->array_import_convertvalue[0][$val]['rule']=='numeric') + { + $newval = price2num($newval); + } //print 'Val to use as insert is '.$newval.'
'; } @@ -541,42 +569,37 @@ class ImportXlsx extends ModeleImports } // Define $listfields and $listvalues to build SQL request - if ($listfields) { $listfields.=', '; $listvalues.=', '; } - $listfields.=$fieldname; + $listfields[] = $fieldname; // Note: arrayrecord (and 'type') is filled with ->import_read_record called by import.php page before calling import_insert - if (empty($newval) && $arrayrecord[($key-1)]['type'] < 0) $listvalues.=($newval=='0'?$newval:"null"); - elseif (empty($newval) && $arrayrecord[($key-1)]['type'] == 0) $listvalues.="''"; - else $listvalues.="'".$this->db->escape($newval)."'"; + if (empty($newval) && $arrayrecord[($key-1)]['type'] < 0) $listvalues[] = ($newval=='0'?$newval:"null"); + elseif (empty($newval) && $arrayrecord[($key-1)]['type'] == 0) $listvalues[] = "''"; + else $listvalues[] = "'".$this->db->escape($newval)."'"; } $i++; } // We add hidden fields (but only if there is at least one field to add into table) - if ($listfields && is_array($objimport->array_import_fieldshidden[0])) + if (!empty($listfields) && is_array($objimport->array_import_fieldshidden[0])) { // Loop on each hidden fields to add them into listfields/listvalues foreach($objimport->array_import_fieldshidden[0] as $key => $val) { if (! preg_match('/^'.preg_quote($alias).'\./', $key)) continue; // Not a field of current table - if ($listfields) { $listfields.=', '; $listvalues.=', '; } if ($val == 'user->id') { - $listfields.=preg_replace('/^'.preg_quote($alias).'\./','',$key); - $listvalues.=$user->id; + $listfields[] = preg_replace('/^'.preg_quote($alias).'\./','',$key); + $listvalues[] = $user->id; } elseif (preg_match('/^lastrowid-/',$val)) { $tmp=explode('-',$val); $lastinsertid=(isset($last_insert_id_array[$tmp[1]]))?$last_insert_id_array[$tmp[1]]:0; - $listfields.=preg_replace('/^'.preg_quote($alias).'\./','',$key); - $listvalues.=$lastinsertid; + $keyfield = preg_replace('/^'.preg_quote($alias).'\./','',$key); + $listfields[] = $keyfield; + $listvalues[] = $lastinsertid; //print $key."-".$val."-".$listfields."-".$listvalues."
";exit; - } else - { - $listfields.=preg_replace('/^'.preg_quote($alias).'\./','',$key); - $listvalues.=$val; - } + } } } //print 'listfields='.$listfields.'
listvalues='.$listvalues.'
'; @@ -584,49 +607,114 @@ class ImportXlsx extends ModeleImports // If no error for this $alias/$tablename, we have a complete $listfields and $listvalues that are defined if (! $errorforthistable) { - //print "$alias/$tablename/$listfields/$listvalues
"; - if ($listfields) + //print "$alias/$tablename/$listfields/$listvalues
"; + if (!empty($listfields)) { - //var_dump($objimport->array_import_convertvalue); exit; - - // Build SQL request - if (empty($tablewithentity_cache[$tablename])) - { - $sql ='INSERT INTO '.$tablename.'('.$listfields.', import_key'; - if (! empty($objimport->array_import_tables_creator[0][$alias])) $sql.=', '.$objimport->array_import_tables_creator[0][$alias]; - $sql.=') VALUES('.$listvalues.", '".$importid."'"; - } - else - { - $sql ='INSERT INTO '.$tablename.'('.$listfields.', import_key, entity'; - if (! empty($objimport->array_import_tables_creator[0][$alias])) $sql.=', '.$objimport->array_import_tables_creator[0][$alias]; - $sql.=') VALUES('.$listvalues.", '".$importid."', ".$conf->entity ; - } - if (! empty($objimport->array_import_tables_creator[0][$alias])) $sql.=', '.$user->id; - $sql.=')'; - - //print($sql).'
'; - dol_syslog("import_csv.modules", LOG_DEBUG); - - //print '> '.join(',',$arrayrecord); - //print 'sql='.$sql; - //print '
'."\n"; - - // Run insert request - if ($sql) - { - $resql=$this->db->query($sql); - $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that dependent tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). - if ($resql) - { - //print '.'; + $updatedone = false; + $insertdone = false; + if (!empty($updatekeys)) { + // We do SELECT to get the rowid, if we already have the rowid, it's to be used below for related tables (extrafields) + if (empty($lastinsertid)) { + $sqlSelect = 'SELECT rowid FROM '.$tablename; + + $data = array_combine($listfields, $listvalues); + $where = array(); + $filters = array(); + foreach ($updatekeys as $key) { + $col = $objimport->array_import_updatekeys[0][$key]; + $key=preg_replace('/^.*\./i','',$key); + $where[] = $key.' = '.$data[$key]; + $filters[] = $col.' = '.$data[$key]; + } + $sqlSelect.= ' WHERE '.implode(' AND ', $where); + + $resql=$this->db->query($sqlSelect); + if($resql) { + $res = $this->db->fetch_object($resql); + if($resql->num_rows == 1) { + $lastinsertid = $res->rowid; + $last_insert_id_array[$tablename] = $lastinsertid; + } else if($resql->num_rows > 1) { + $this->errors[$error]['lib']=$langs->trans('MultipleRecordFoundWithTheseFilters', implode($filters, ', ')); + $this->errors[$error]['type']='SQL'; + $error++; + } else { + // No record found with filters, insert will be tried below + } + } + else + { + //print 'E'; + $this->errors[$error]['lib']=$this->db->lasterror(); + $this->errors[$error]['type']='SQL'; + $error++; + } } - else + + if (!empty($lastinsertid)) { + // Build SQL UPDATE request + $sqlstart = 'UPDATE '.$tablename; + + $data = array_combine($listfields, $listvalues); + $set = array(); + foreach ($data as $key => $val) { + $set[] = $key.' = '.$val; + } + $sqlstart.= ' SET '.implode(', ', $set); + + if(empty($keyfield)) $keyfield = 'rowid'; + $sqlend = ' WHERE '.$keyfield.' = '.$lastinsertid; + + $sql = $sqlstart.$sqlend; + + // Run update request + $resql=$this->db->query($sql); + if($resql) { + // No error, update has been done. $this->db->db->affected_rows can be 0 if data hasn't changed + $updatedone = true; + } + else + { + //print 'E'; + $this->errors[$error]['lib']=$this->db->lasterror(); + $this->errors[$error]['type']='SQL'; + $error++; + } + } + } + + // Update not done, we do insert + if (!$error && !$updatedone) { + // Build SQL INSERT request + $sqlstart = 'INSERT INTO '.$tablename.'('.implode(', ', $listfields).', import_key'; + $sqlend = ') VALUES('.implode(', ', $listvalues).", '".$importid."'"; + if (! empty($tablewithentity_cache[$tablename])) { + $sqlstart.= ', entity'; + $sqlend.= ', '.$conf->entity; + } + if (! empty($objimport->array_import_tables_creator[0][$alias])) { + $sqlstart.= ', '.$objimport->array_import_tables_creator[0][$alias]; + $sqlend.=', '.$user->id; + } + $sql = $sqlstart.$sqlend.')'; + dol_syslog("import_xlsx.modules", LOG_DEBUG); + + // Run insert request + if ($sql) { - //print 'E'; - $this->errors[$error]['lib']=$this->db->lasterror(); - $this->errors[$error]['type']='SQL'; - $error++; + $resql=$this->db->query($sql); + if ($resql) + { + $last_insert_id_array[$tablename] = $this->db->last_insert_id($tablename); // store the last inserted auto_increment id for each table, so that child tables can be inserted with the appropriate id. This must be done just after the INSERT request, else we risk losing the id (because another sql query will be issued somewhere in Dolibarr). + $insertdone = true; + } + else + { + //print 'E'; + $this->errors[$error]['lib']=$this->db->lasterror(); + $this->errors[$error]['type']='SQL'; + $error++; + } } } } @@ -638,6 +726,9 @@ class ImportXlsx extends ModeleImports if ($error) break; } + + if($updatedone) $this->nbupdate++; + if($insertdone) $this->nbinsert++; } return 1; From c1e747fa39d25490d6c1992684ebc7316fb70a0b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 13:05:02 +0200 Subject: [PATCH 206/515] Look and feel v6 --- htdocs/adherents/stats/byproperties.php | 2 +- htdocs/adherents/stats/geo.php | 2 +- htdocs/opensurvey/list.php | 14 +++++++++++--- htdocs/resource/list.php | 4 +++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/htdocs/adherents/stats/byproperties.php b/htdocs/adherents/stats/byproperties.php index f067b27b3d4..ded3dec120e 100644 --- a/htdocs/adherents/stats/byproperties.php +++ b/htdocs/adherents/stats/byproperties.php @@ -101,7 +101,7 @@ else $head = member_stats_prepare_head($adh); -dol_fiche_head($head, 'statsbyproperties', $langs->trans("Statistics"), 0, 'user'); +dol_fiche_head($head, 'statsbyproperties', $langs->trans("Statistics"), -1, 'user'); // Print title diff --git a/htdocs/adherents/stats/geo.php b/htdocs/adherents/stats/geo.php index 1f9ff189068..1c6944c2a0a 100644 --- a/htdocs/adherents/stats/geo.php +++ b/htdocs/adherents/stats/geo.php @@ -198,7 +198,7 @@ if ($mode) $head = member_stats_prepare_head($adh); -dol_fiche_head($head, $tab, $langs->trans("Statistics"), 0, 'user'); +dol_fiche_head($head, $tab, $langs->trans("Statistics"), -1, 'user'); // Print title diff --git a/htdocs/opensurvey/list.php b/htdocs/opensurvey/list.php index 0593f9ccd05..d5a17f02239 100644 --- a/htdocs/opensurvey/list.php +++ b/htdocs/opensurvey/list.php @@ -172,7 +172,7 @@ while ($i < min($num,$limit)) $opensurvey_static->id=$obj->id_sondage; $opensurvey_static->status=$obj->status; - + print '
'; print ''; print''."\n"; - + print ''; print''."\n"; - + print''."\n"; print ''."\n"; $i++; } +// If no record found +if ($num == 0) +{ + $colspan=8; + //foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; } + print ''; +} + print '
'; print ''.img_picto('','object_opensurvey').' '.$obj->id_sondage.''; @@ -198,19 +198,27 @@ while ($i < min($num,$limit)) print ''.$nbuser.''.dol_print_date($db->jdate($obj->date_fin),'day'); if ($db->jdate($obj->date_fin) < time()) { print ' ('.$langs->trans("Expired").')'; } print ''.$opensurvey_static->getLibStatut(5).'
'.$langs->trans("NoRecordFound").'
'."\n"; print ''; print ''; diff --git a/htdocs/resource/list.php b/htdocs/resource/list.php index 11405d15acc..53658c588c6 100644 --- a/htdocs/resource/list.php +++ b/htdocs/resource/list.php @@ -311,7 +311,9 @@ if ($ret) } else { - print ''.$langs->trans('NoResourceInDatabase').''; + $colspan=1; + foreach($arrayfields as $key => $val) { if (! empty($val['checked'])) $colspan++; } + print ''.$langs->trans("NoRecordFound").''; } print ''; From 3f6778889b2c4baa60d78873e5f70edc62bcc962 Mon Sep 17 00:00:00 2001 From: Quentin Vial-Gouteyron Date: Tue, 4 Jul 2017 14:05:03 +0200 Subject: [PATCH 207/515] FIX erreur mysql migration --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index f418a5e6a1f..600503a8b7e 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -346,7 +346,7 @@ ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_tx d ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price double(24,8) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price_ttc double(24,8) DEFAULT NULL; -UPDATE TABLE llx_contrat set ref = rowid where ref is null or ref = ''; +UPDATE llx_contrat set ref = rowid where ref is null or ref = ''; create table llx_payment_various ( From 451e8fc02472b11acf05f0f0a7577d01e4f31150 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 17:37:28 +0200 Subject: [PATCH 208/515] FIX Support of vat code when using price per customer --- htdocs/societe/price.php | 148 +++++++++++++++++++++++++-------------- 1 file changed, 95 insertions(+), 53 deletions(-) diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php index e8dc595c6c3..c3575ae249b 100644 --- a/htdocs/societe/price.php +++ b/htdocs/societe/price.php @@ -21,10 +21,11 @@ */ /** - * \file htdocs/societe/price.php + * \file htdocs/societe/price.php * \ingroup product - * \brief Page to show product prices by customer + * \brief Page to show product prices by customer */ + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/product.lib.php'; require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; @@ -42,7 +43,8 @@ $langs->load("companies"); $langs->load("bills"); $action = GETPOST('action', 'alpha'); -$search_prod = GETPOST('search_prod'); +$search_prod = GETPOST('search_prod','alpha'); +$cancel = GETPOST('cancel','alpha'); // Security check $socid = GETPOST('socid', 'int')?GETPOST('socid', 'int'):GETPOST('id', 'int'); @@ -71,36 +73,72 @@ if (empty($reshook)) { $search_prod = ''; } - - if ($action == 'add_customer_price_confirm' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) { - + + if ($action == 'add_customer_price_confirm' && ! $cancel && ($user->rights->produit->creer || $user->rights->service->creer)) { + $update_child_soc = GETPOST('updatechildprice'); - + // add price by customer $prodcustprice->fk_soc = $socid; $prodcustprice->fk_product = GETPOST('prodid', 'int'); $prodcustprice->price = price2num(GETPOST("price"), 'MU'); $prodcustprice->price_min = price2num(GETPOST("price_min"), 'MU'); $prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha'); - $prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx")); - $prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0); - + + $tva_tx_txt = GETPOST('tva_tx', 'alpha'); // tva_tx can be '8.5' or '8.5*' or '8.5 (XXX)' or '8.5* (XXX)' + + // We must define tva_tx, npr and local taxes + $vatratecode = ''; + $tva_tx = preg_replace('/[^0-9\.].*$/', '', $tva_tx_txt); // keep remove all after the numbers and dot + $npr = preg_match('/\*/', $tva_tx_txt) ? 1 : 0; + $localtax1 = 0; $localtax2 = 0; $localtax1_type = '0'; $localtax2_type = '0'; + // If value contains the unique code of vat line (new recommanded method), we use it to find npr and local taxes + if (preg_match('/\((.*)\)/', $tva_tx_txt, $reg)) + { + // We look into database using code (we can't use get_localtax() because it depends on buyer that is not known). Same in update price. + $vatratecode=$reg[1]; + // Get record from code + $sql = "SELECT t.rowid, t.code, t.recuperableonly, t.localtax1, t.localtax2, t.localtax1_type, t.localtax2_type"; + $sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_country as c"; + $sql.= " WHERE t.fk_pays = c.rowid AND c.code = '".$mysoc->country_code."'"; + $sql.= " AND t.taux = ".((float) $tva_tx)." AND t.active = 1"; + $sql.= " AND t.code ='".$vatratecode."'"; + $resql=$db->query($sql); + if ($resql) + { + $obj = $db->fetch_object($resql); + $npr = $obj->recuperableonly; + $localtax1 = $obj->localtax1; + $localtax2 = $obj->localtax2; + $localtax1_type = $obj->localtax1_type; + $localtax2_type = $obj->localtax2_type; + } + } + + $prodcustprice->default_vat_code = $vatratecode; + $prodcustprice->tva_tx = $tva_tx; + $prodcustprice->recuperableonly = $npr; + $prodcustprice->localtax1_tx = $localtax1; + $prodcustprice->localtax2_tx = $localtax2; + $prodcustprice->localtax1_type = $localtax1_type; + $prodcustprice->localtax2_type = $localtax2_type; + $result = $prodcustprice->create($user, 0, $update_child_soc); - + if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } else { setEventMessages($langs->trans('Save'), null, 'mesgs'); } - + $action = ''; } - + if ($action == 'delete_customer_price' && ($user->rights->produit->creer || $user->rights->service->creer)) { // Delete price by customer $prodcustprice->id = GETPOST('lineid'); $result = $prodcustprice->delete($user); - + if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'mesgs'); } else { @@ -108,27 +146,27 @@ if (empty($reshook)) } $action = ''; } - + if ($action == 'update_customer_price_confirm' && ! $_POST ["cancel"] && ($user->rights->produit->creer || $user->rights->service->creer)) { - + $prodcustprice->fetch(GETPOST('lineid', 'int')); - + $update_child_soc = GETPOST('updatechildprice'); - + // update price by customer $prodcustprice->price = price2num(GETPOST("price"), 'MU'); $prodcustprice->price_min = price2num(GETPOST("price_min"), 'MU'); $prodcustprice->price_base_type = GETPOST("price_base_type", 'alpha'); $prodcustprice->tva_tx = str_replace('*', '', GETPOST("tva_tx")); $prodcustprice->recuperableonly = (preg_match('/\*/', GETPOST("tva_tx")) ? 1 : 0); - + $result = $prodcustprice->update($user, 0, $update_child_soc); if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } else { setEventMessages($langs->trans('Save'), null, 'mesgs'); } - + $action = ''; } } @@ -154,7 +192,7 @@ dol_fiche_head($head, 'price', $langs->trans("ThirdParty"), 0, 'company'); $linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($object, 'socid', $linkback, ($user->societe_id?0:1), 'rowid', 'nom'); - + print '
'; print '
'; @@ -239,7 +277,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { // VAT print '' . $langs->trans("VATRate") . ''; - print $form->load_tva("tva_tx", $object->tva_tx, $mysoc, '', $object->id, $object->tva_npr); + print $form->load_tva("tva_tx", $object->tva_tx, $mysoc, '', $object->id, $object->tva_npr, '', false, 1); print ''; // Price base @@ -299,7 +337,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print load_fiche_titre($langs->trans('PriceByCustomer')); $result = $prodcustprice->fetch(GETPOST('lineid', 'int')); - if ($result < 0) + if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } @@ -374,6 +412,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print '
'; } elseif ($action == 'showlog_customer_price') { + print ''."\n"; + $filter = array ( 't.fk_product' => GETPOST('prodid', 'int'),'t.fk_soc' => $socid ); @@ -385,7 +425,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { } $result = $prodcustprice->fetch_all_log($sortorder, $sortfield, $conf->liste_limit, $offset, $filter); - if ($result < 0) + if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } @@ -440,8 +480,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; } print ""; - } - else + } + else { print $langs->trans('None'); } @@ -449,8 +489,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print "\n" . '
' . "\n"; print ''; print "\n

\n"; - } - else + } + else { // View mode @@ -466,30 +506,32 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; } print "\n
\n"; - - + + // Count total nb of records $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $nbtotalofrecords = $prodcustprice->fetch_all('', '', 0, 0, $filter); } - + $result = $prodcustprice->fetch_all($sortorder, $sortfield, $conf->liste_limit, $offset, $filter); if ($result < 0) { setEventMessages($prodcustprice->error, $prodcustprice->errors, 'errors'); } - + $option = '&search_prod=' . $search_prod . '&id=' . $object->id; - - print_barre_liste($langs->trans('PriceForEachProduct'), $page, $_SERVEUR['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords, ''); - + + print ''."\n"; + + print_barre_liste($langs->trans('PriceForEachProduct'), $page, $_SERVEUR['PHP_SELF'], $option, $sortfield, $sortorder, '', count($prodcustprice->lines), $nbtotalofrecords, ''); + print '
'; print ''; - + print ''; - + print ''; print ''; print ''; @@ -502,12 +544,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; print ''; print ''; - + if (count($prodcustprice->lines) > 0 || $search_prod) { print ''; - print ''; - print ''; + print ''; + print ''; // Print the search button print ''; print ''; } - + if (count($prodcustprice->lines) > 0) { $var = False; - + foreach ($prodcustprice->lines as $line) { print ""; - + $staticprod = new Product($db); $staticprod->fetch($line->fk_product); - + print ""; print ""; - + print '"; - print '"; + print '"; print '"; print '"; print ''; print ''; - + // User $userstatic = new User($db); $userstatic->fetch($line->fk_user); print ''; - + // Action if ($user->rights->produit->creer || $user->rights->service->creer) { @@ -561,21 +603,21 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print ''; print ''; } - + print "\n"; } } else { $colspan=9; - if ($user->rights->produit->supprimer || $user->rights->service->supprimer) $colspan+=1; + if ($user->rights->produit->supprimer || $user->rights->service->supprimer) $colspan+=1; print ''; } - + print "
' . $langs->trans("Product") . '' . $langs->trans("AppliedPricesFrom") . '' . $langs->trans("ChangedBy") . ' 
  '; $searchpitco=$form->showFilterAndCheckAddButtons(0); @@ -515,35 +557,35 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { print '
" . $staticprod->getNomUrl(1) . "" . dol_print_date($line->datec, "dayhour") . "' . $langs->trans($line->price_base_type) . "' . vatrate($line->tva_tx, true, $line->recuperableonly) . "' . vatrate($line->tva_tx.($line->default_vat_code?' ('.$line->default_vat_code.')':''), true, $line->recuperableonly) . "' . price($line->price) . "' . price($line->price_ttc) . "' . price($line->price_min) . '' . price($line->price_min_ttc) . ''; print $userstatic->getLoginUrl(1); print '
' . $langs->trans('None') . '
"; - + print "
"; - + } } From ea8a49aea36899cbb3970cbd1eaeb0523b72315f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 4 Jul 2017 17:38:20 +0200 Subject: [PATCH 209/515] Prepare 5.0.5 --- htdocs/filefunc.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php index 9e065451001..537f8908de7 100644 --- a/htdocs/filefunc.inc.php +++ b/htdocs/filefunc.inc.php @@ -31,7 +31,7 @@ */ if (! defined('DOL_APPLICATION_TITLE')) define('DOL_APPLICATION_TITLE','Dolibarr'); -if (! defined('DOL_VERSION')) define('DOL_VERSION','5.0.4'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c +if (! defined('DOL_VERSION')) define('DOL_VERSION','5.0.5'); // a.b.c-alpha, a.b.c-beta, a.b.c-rcX or a.b.c if (! defined('EURO')) define('EURO',chr(128)); From 9f50882d6d835e553b37a0b575d8e9a437ff7609 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Tue, 4 Jul 2017 21:45:38 +0200 Subject: [PATCH 210/515] fix incorrect indent --- htdocs/expedition/class/expedition.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index c87e43c28fc..5803442d1ea 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -716,7 +716,7 @@ class Expedition extends CommonObject if ($result < 0) { $error++; $this->errors[]=$mouvS->error; - $this->errors = array_merge($this->errors, $mouvS->errors); + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } From 5b154946a86b18a13fe78cd7f03f350e535ffe42 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Tue, 4 Jul 2017 21:48:38 +0200 Subject: [PATCH 211/515] fix missing error on stock mouvment with batch --- htdocs/expedition/class/expedition.class.php | 1 + 1 file changed, 1 insertion(+) diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php index 5803442d1ea..9e057106dd8 100644 --- a/htdocs/expedition/class/expedition.class.php +++ b/htdocs/expedition/class/expedition.class.php @@ -730,6 +730,7 @@ class Expedition extends CommonObject if ($result < 0) { $error++; $this->errors[]=$mouvS->error; + $this->errors = array_merge($this->errors, $mouvS->errors); break; } } From 67f11103a37caf61e5d1b295d44855f4e7b27071 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Tue, 4 Jul 2017 21:56:47 +0200 Subject: [PATCH 212/515] fix indent --- htdocs/comm/card.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index 0a290af1507..f46d8060f4c 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -604,17 +604,17 @@ if ($id > 0) if ($link) $boxstat.=''; } - $parameters = array(); - $reshook = $hookmanager->executeHooks('addMoreBoxStatsCustomer', $parameters, $object, $action); - if(empty($reshook)){ - $boxstat.= $hookmanager->resPrint; - } + $parameters = array(); + $reshook = $hookmanager->executeHooks('addMoreBoxStatsCustomer', $parameters, $object, $action); + if(empty($reshook)){ + $boxstat.= $hookmanager->resPrint; + } $boxstat.=''; $boxstat.=''; $boxstat.=''; - print $boxstat; + print $boxstat; $now=dol_now(); From e199864fce9600488c736d7701ac6bed5e9e48e2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Jul 2017 00:09:35 +0200 Subject: [PATCH 213/515] Better log --- htdocs/categories/class/categorie.class.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 0263395ec50..dbac2f0236a 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -52,7 +52,7 @@ class Categorie extends CommonObject const TYPE_ACCOUNT = 5; // for bank account TODO Replace this value with 'account' const TYPE_PROJECT = 6; public $picto = 'category'; - + /** * @var array ID mapping from type string @@ -556,7 +556,7 @@ class Categorie extends CommonObject $error++; } } - + if (! $error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_lang"; @@ -1163,11 +1163,11 @@ class Categorie extends CommonObject */ if($obj[0] > 0 && $obj[0] != $this->id) { - dol_syslog(get_class($this)."::already_exists category with name=".$this->label." exist rowid=".$obj[0]." current_id=".$this->id, LOG_DEBUG); + dol_syslog(get_class($this)."::already_exists category with name=".$this->label." and parent ".$this->fk_parent." exists: rowid=".$obj[0]." current_id=".$this->id, LOG_DEBUG); return 1; } } - dol_syslog(get_class($this)."::already_exists no category with same name=".$this->label." rowid=".$obj[0]." current_id=".$this->id, LOG_DEBUG); + dol_syslog(get_class($this)."::already_exists no category with same name=".$this->label." and same parent ".$this->fk_parent.": rowid=".$obj[0]." current_id=".$this->id, LOG_DEBUG); return 0; } else @@ -1737,8 +1737,8 @@ class Categorie extends CommonObject { return ''; } - - + + /** * Initialise an instance with random values. * Used to build previews or test instances. From e7e4252244e9a2a04e1d2e2b03265a6d1e3e49ec Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 5 Jul 2017 01:23:42 +0200 Subject: [PATCH 214/515] Fix deletion of category --- htdocs/categories/class/categorie.class.php | 40 ++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index 60ef207bb48..b294f7c4aeb 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -447,9 +447,10 @@ class Categorie extends CommonObject * Delete a category from database * * @param User $user Object user that ask to delete - * @return int <0 KO >0 OK + * @param int $notrigger 1=Does not execute triggers, 0= execute triggers + * @return int <0 KO >0 OK */ - function delete($user) + function delete($user, $notrigger=0) { global $conf,$langs; @@ -462,6 +463,14 @@ class Categorie extends CommonObject $this->db->begin(); + if (! $error && ! $notrigger) + { + // Call trigger + $result=$this->call_trigger('CATEGORY_DELETE',$user); + if ($result < 0) $error++; + // End call triggers + } + /* FIX #1317 : Check for child category and move up 1 level*/ if (! $error) { @@ -580,25 +589,16 @@ class Categorie extends CommonObject $this->error=$this->db->lasterror(); $error++; } - else + } + + // Removed extrafields + if (! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used + { + $result=$this->deleteExtraFields(); + if ($result < 0) { - // Removed extrafields - if (! $error) - { - if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used - { - $result=$this->deleteExtraFields(); - if ($result < 0) - { - $error++; - dol_syslog(get_class($this)."::delete erreur ".$this->error, LOG_ERR); - } - } - } - // Call trigger - $result=$this->call_trigger('CATEGORY_DELETE',$user); - if ($result < 0) { $error++; } - // End call triggers + $error++; + dol_syslog(get_class($this)."::delete erreur ".$this->error, LOG_ERR); } } From a2e2149eb2cce8bef560b1cb9c2385f0b48e135f Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 5 Jul 2017 11:12:48 +0200 Subject: [PATCH 215/515] Fix: multiple preg_match $reg confusion ! --- htdocs/api/index.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/api/index.php b/htdocs/api/index.php index 0e54d0cb8af..21d60bdab73 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -131,9 +131,9 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | { while (($file = readdir($handle))!==false) { - if (is_readable($dir.$file) && preg_match("/^mod(.*)\.class\.php$/i",$file,$reg)) + if (is_readable($dir.$file) && preg_match("/^mod(.*)\.class\.php$/i",$file,$regmod)) { - $module = strtolower($reg[1]); + $module = strtolower($regmod[1]); $moduledirforclass = getModuleDirForApiClass($module); $moduleforperm = $module; if ($module == 'propale') { $moduleforperm='propal'; } @@ -159,9 +159,9 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | if ($file_searched == 'api_access.class.php') continue; // Support of the deprecated API. - if (is_readable($dir_part.$file_searched) && preg_match("/^api_deprecated_(.*)\.class\.php$/i",$file_searched,$reg)) + if (is_readable($dir_part.$file_searched) && preg_match("/^api_deprecated_(.*)\.class\.php$/i",$file_searched,$regapi)) { - $classname = ucwords($reg[1]).'Api'; + $classname = ucwords($regapi[1]).'Api'; require_once $dir_part.$file_searched; if (class_exists($classname)) { @@ -173,9 +173,9 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | dol_syslog("We found an api_xxx file (".$file_searched.") but class ".$classname." does not exists after loading file", LOG_WARNING); } } - elseif (is_readable($dir_part.$file_searched) && preg_match("/^api_(.*)\.class\.php$/i",$file_searched,$reg)) + elseif (is_readable($dir_part.$file_searched) && preg_match("/^api_(.*)\.class\.php$/i",$file_searched,$regapi)) { - $classname = ucwords($reg[1]); + $classname = ucwords($regapi[1]); $classname = str_replace('_', '', $classname); require_once $dir_part.$file_searched; if (class_exists($classname)) From 1816b2249e7545807a3d5cd0271d87eac7776342 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Wed, 5 Jul 2017 11:24:24 +0200 Subject: [PATCH 216/515] fix class error --- htdocs/ecm/class/ecmfiles.class.php | 52 +++++++++++++------ .../template/class/myobject.class.php | 2 +- 2 files changed, 37 insertions(+), 17 deletions(-) diff --git a/htdocs/ecm/class/ecmfiles.class.php b/htdocs/ecm/class/ecmfiles.class.php index 9a8c503ac2e..c854231307f 100644 --- a/htdocs/ecm/class/ecmfiles.class.php +++ b/htdocs/ecm/class/ecmfiles.class.php @@ -65,7 +65,7 @@ class EcmFiles //extends CommonObject /** */ - + /** * Constructor @@ -88,13 +88,13 @@ class EcmFiles //extends CommonObject public function create(User $user, $notrigger = false) { global $conf; - + dol_syslog(__METHOD__, LOG_DEBUG); $error = 0; // Clean parameters - + if (isset($this->label)) { $this->label = trim($this->label); } @@ -135,13 +135,13 @@ class EcmFiles //extends CommonObject $this->acl = trim($this->acl); } if (empty($this->date_c)) $this->date_c = dol_now(); - + $maxposition=0; if (empty($this->position)) // Get max used { $sql = "SELECT MAX(position) as maxposition FROM " . MAIN_DB_PREFIX . $this->table_element; $sql.= " WHERE filepath ='".$this->db->escape($this->filepath)."'"; - + $resql = $this->db->query($sql); if ($resql) { @@ -204,7 +204,7 @@ class EcmFiles //extends CommonObject if (!$error) { $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); $this->position = $maxposition; - + if (!$notrigger) { // Uncomment this and change MYOBJECT to your own tag if you // want this action to call a trigger. @@ -299,7 +299,7 @@ class EcmFiles //extends CommonObject $this->fk_user_m = $obj->fk_user_m; $this->acl = $obj->acl; } - + // Retrieve all extrafields for invoice // fetch optionals attributes and labels /* @@ -309,7 +309,7 @@ class EcmFiles //extends CommonObject $this->fetch_optionals($this->id,$extralabels); */ // $this->fetch_lines(); - + $this->db->free($resql); if ($numrows) { @@ -393,7 +393,7 @@ class EcmFiles //extends CommonObject $line = new EcmfilesLine(); $line->id = $obj->rowid; - + $line->label = $obj->label; $line->entity = $obj->entity; $line->filename = $obj->filename; @@ -437,7 +437,7 @@ class EcmFiles //extends CommonObject dol_syslog(__METHOD__, LOG_DEBUG); // Clean parameters - + if (isset($this->label)) { $this->label = trim($this->label); } @@ -562,7 +562,7 @@ class EcmFiles //extends CommonObject } // If you need to delete child tables to, you can insert them here - + if (!$error) { $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element; $sql .= ' WHERE rowid=' . $this->id; @@ -651,7 +651,7 @@ class EcmFiles //extends CommonObject global $menumanager; if (! empty($conf->dol_no_mouse_hover)) $notooltip=1; // Force disable tooltips - + $result = ''; $companylink = ''; @@ -660,7 +660,7 @@ class EcmFiles //extends CommonObject $label.= '' . $langs->trans('Ref') . ': ' . $this->ref; $url = DOL_URL_ROOT.'/ecm/'.$this->table_name.'_card.php?id='.$this->id; - + $linkclose=''; if (empty($notooltip)) { @@ -673,7 +673,7 @@ class EcmFiles //extends CommonObject $linkclose.=' class="classfortooltip'.($morecss?' '.$morecss:'').'"'; } else $linkclose = ($morecss?' class="'.$morecss.'"':''); - + $linkstart = ''; $linkend=''; @@ -757,9 +757,9 @@ class EcmFiles //extends CommonObject public function initAsSpecimen() { global $conf,$user; - + $this->id = 0; - + $this->label = '0a1b2c3e4f59999999'; $this->entity = '1'; $this->filename = 'myspecimenfilefile.pdf'; @@ -780,3 +780,23 @@ class EcmFiles //extends CommonObject } + +class EcmfilesLine +{ + public $label; + public $entity; + public $filename; + public $filepath; + public $fullpath_orig; + public $description; + public $keywords; + public $cover; + public $position; + public $gen_or_uploaded; // can be 'generated', 'uploaded', 'unknown' + public $extraparams; + public $date_c = ''; + public $date_m = ''; + public $fk_user_c; + public $fk_user_m; + public $acl; +} diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index c66110fddf6..9ef593367c9 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -433,7 +433,7 @@ class MyObject extends CommonObject global $user; $error = 0; - $object = new MyModuleObject($this->db); + $object = new self($this->db); $this->db->begin(); From a4b1c28696dbfd3a0308bae880adcb4ead44160e Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Wed, 5 Jul 2017 11:33:58 +0200 Subject: [PATCH 217/515] fix : accountancy right management --- htdocs/accountancy/admin/categories.php | 4 ++-- htdocs/accountancy/admin/categories_list.php | 2 +- htdocs/accountancy/admin/defaultaccounts.php | 2 +- htdocs/accountancy/admin/export.php | 2 +- htdocs/accountancy/admin/fiscalyear_card.php | 18 +++++++++--------- htdocs/accountancy/admin/index.php | 2 +- htdocs/accountancy/admin/journals_list.php | 2 +- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index fd8c67246f4..11913c6d2e9 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -46,7 +46,7 @@ if ($cat_id == 0) { } // Security check -if (! empty($user->rights->accountancy->chartofaccount)) +if (! $user->rights->accounting-->chartofaccount) { accessforbidden(); } @@ -104,7 +104,7 @@ $formaccounting->select_accounting_category($cat_id, 'account_category', 1, 0, 0 print ''; print ''; -if (! empty($cat_id)) +if (! empty($cat_id)) { $return = $accountingcategory->getAccountsWithNoCategory($cat_id); if ($return < 0) { diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index cb852d82e0c..6c2b94d727a 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -57,7 +57,7 @@ $rowid=GETPOST('rowid','alpha'); $code=GETPOST('code','alpha'); // Security access -if (! empty($user->rights->accountancy->chartofaccount)) +if (! $user->rights->accounting-->chartofaccount) { accessforbidden(); } diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 9cf4d2977fd..60b8424ff3e 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -42,7 +42,7 @@ $langs->load("salaries"); $langs->load("loan"); // Security check -if (! empty($user->rights->accountancy->chartofaccount)) +if (! $user->rights->accounting-->chartofaccount) { accessforbidden(); } diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index 7a209be45b1..dfbeb09f25e 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -38,7 +38,7 @@ $langs->load("admin"); $langs->load("accountancy"); // Security check -if (empty($user->admin) || ! empty($user->rights->accountancy->chartofaccount)) +if (empty($user->admin) || ! $user->rights->accounting-->chartofaccount) { accessforbidden(); } diff --git a/htdocs/accountancy/admin/fiscalyear_card.php b/htdocs/accountancy/admin/fiscalyear_card.php index 7a8ab0673a7..fa817942a54 100644 --- a/htdocs/accountancy/admin/fiscalyear_card.php +++ b/htdocs/accountancy/admin/fiscalyear_card.php @@ -43,10 +43,10 @@ $id = GETPOST('id', 'int'); // List of statut static $tmpstatut2label = array ( '0' => 'OpenFiscalYear', - '1' => 'CloseFiscalYear' + '1' => 'CloseFiscalYear' ); $statut2label = array ( - '' + '' ); foreach ( $tmpstatut2label as $key => $val ) $statut2label[$key] = $langs->trans($val); @@ -69,7 +69,7 @@ if ($action == 'confirm_delete' && $confirm == "yes") { } else { setEventMessages($object->error, $object->errors, 'errors'); } -} +} else if ($action == 'add') { if (! GETPOST('cancel', 'alpha')) { @@ -113,7 +113,7 @@ else if ($action == 'add') { header("Location: ./fiscalyear.php"); exit(); } -} +} // Update record else if ($action == 'update') { @@ -126,7 +126,7 @@ else if ($action == 'update') { $object->statut = GETPOST('statut', 'int'); $result = $object->update($user); - + if ($result > 0) { header("Location: " . $_SERVER["PHP_SELF"] . "?id=" . $id); exit(); @@ -151,7 +151,7 @@ llxHeader("",$title,$helpurl); $form = new Form($db); -if ($action == 'create') +if ($action == 'create') { print load_fiche_titre($langs->trans("NewFiscalYear")); @@ -184,7 +184,7 @@ if ($action == 'create') print $form->selectarray('statut', $statut2label, GETPOST('statut')); print ''; */ - + print ''; dol_fiche_end(); @@ -306,9 +306,9 @@ if ($action == 'create') print ''; } } diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index ead997a5d8c..ce17979157b 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -266,7 +266,7 @@ if (! empty($user->admin)) } -// Param a user $user->rights->accountancy->chartofaccount can access +// Param a user $user->rights->accounting-->chartofaccount can access foreach ($list as $key) { print ''; diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index dca29fd28b8..e0e41a776be 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -41,7 +41,7 @@ $rowid=GETPOST('rowid','alpha'); $code=GETPOST('code','alpha'); // Security access -if (! empty($user->rights->accountancy->chartofaccount)) +if (!$user->rights->accounting->chartofaccount) { accessforbidden(); } From c5442c355395759d02c853cca3514c6adfc03c49 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 5 Jul 2017 12:21:35 +0200 Subject: [PATCH 218/515] Fix: module "root" not exists ! (deprecated api) --- htdocs/api/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/api/index.php b/htdocs/api/index.php index 21d60bdab73..905d560f9c2 100644 --- a/htdocs/api/index.php +++ b/htdocs/api/index.php @@ -206,7 +206,7 @@ if (! empty($reg[1]) && $reg[1] == 'explorer' && ($reg[2] == '/resources.json' | } // Call one APIs or one definition of an API -if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json' && preg_match('/^\/resources.json\/(.+)$/', $reg[2], $regbis)))) +if (! empty($reg[1]) && ($reg[1] != 'explorer' || ($reg[2] != '/resources.json' && preg_match('/^\/resources.json\/(.+)$/', $reg[2], $regbis) && $regbis[1] != 'root'))) { $module = $reg[1]; if ($module == 'explorer') // If we call page to explore details of a service From 31b94c1d3f13553bfbcc36977d701652b1148d90 Mon Sep 17 00:00:00 2001 From: phf Date: Wed, 5 Jul 2017 16:52:37 +0200 Subject: [PATCH 219/515] Fix 7109 - class name already exist for customer payment --- .../supplier_payment/mod_supplier_payment_brodator.php | 2 +- .../modules/supplier_payment/mod_supplier_payment_bronan.php | 2 +- .../modules/supplier_payment/modules_supplier_payment.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php index fb06c028aed..97c7b077b22 100644 --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_brodator.php @@ -28,7 +28,7 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_payment/modules_supplier /** * Class to manage customer payment numbering rules Ant */ -class mod_supplier_payment_brodator extends ModeleNumRefPayments +class mod_supplier_payment_brodator extends ModeleNumRefSupplierPayments { var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' var $error = ''; diff --git a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php index e7146e2e1fd..c94ef4296c0 100644 --- a/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php +++ b/htdocs/core/modules/supplier_payment/mod_supplier_payment_bronan.php @@ -27,7 +27,7 @@ require_once DOL_DOCUMENT_ROOT .'/core/modules/supplier_payment/modules_supplier /** * Class to manage customer payment numbering rules Cicada */ -class mod_supplier_payment_bronan extends ModeleNumRefPayments +class mod_supplier_payment_bronan extends ModeleNumRefSupplierPayments { var $version='dolibarr'; // 'development', 'experimental', 'dolibarr' var $prefix='SPAY'; diff --git a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php index c9023a9fc65..526b70145ba 100644 --- a/htdocs/core/modules/supplier_payment/modules_supplier_payment.php +++ b/htdocs/core/modules/supplier_payment/modules_supplier_payment.php @@ -17,11 +17,11 @@ */ /** - * \class ModeleNumRefPayments + * \class ModeleNumRefSupplierPayments * \brief Payment numbering references mother class */ -abstract class ModeleNumRefPayments +abstract class ModeleNumRefSupplierPayments { var $error=''; From 1a71e9b4a0377f2c42ebdccd65aa73c5bd73a6cb Mon Sep 17 00:00:00 2001 From: arnaud Date: Wed, 5 Jul 2017 16:57:03 +0200 Subject: [PATCH 220/515] FIX add supplierproposaldet without price (new product) --- htdocs/supplier_proposal/card.php | 5 +++-- htdocs/supplier_proposal/class/supplier_proposal.class.php | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/htdocs/supplier_proposal/card.php b/htdocs/supplier_proposal/card.php index 9ed38461180..e2bfb502028 100644 --- a/htdocs/supplier_proposal/card.php +++ b/htdocs/supplier_proposal/card.php @@ -526,7 +526,8 @@ if (empty($reshook)) $error = 0; // Set if we used free entry or predefined product - $predef=''; + $predef=''; + $ref_fourn = GETPOST('fourn_ref'); $product_desc=(GETPOST('dp_desc')?GETPOST('dp_desc'):''); $date_start=dol_mktime(GETPOST('date_start'.$predef.'hour'), GETPOST('date_start'.$predef.'min'), GETPOST('date_start' . $predef . 'sec'), GETPOST('date_start'.$predef.'month'), GETPOST('date_start'.$predef.'day'), GETPOST('date_start'.$predef.'year')); $date_end=dol_mktime(GETPOST('date_end'.$predef.'hour'), GETPOST('date_end'.$predef.'min'), GETPOST('date_end' . $predef . 'sec'), GETPOST('date_end'.$predef.'month'), GETPOST('date_end'.$predef.'day'), GETPOST('date_end'.$predef.'year')); @@ -614,7 +615,7 @@ if (empty($reshook)) $price_base_type = $productsupplier->fourn_price_base_type; $type = $productsupplier->type; $label = $productsupplier->label; - $desc = $productsupplier->description; + $desc = $productsupplier->description; if (trim($product_desc) != trim($desc)) $desc = dol_concatdesc($desc, $product_desc); $tva_tx = get_default_tva($object->thirdparty, $mysoc, $productsupplier->id, GETPOST('idprodfournprice')); diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index 8cbc3882fc4..6f973f4ce08 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -2738,6 +2738,7 @@ class SupplierProposalLine extends CommonObject if (empty($this->special_code)) $this->special_code=0; if (empty($this->fk_parent_line)) $this->fk_parent_line=0; if (empty($this->fk_fournprice)) $this->fk_fournprice=0; + if (empty($this->subprice)) $this->subprice=0; if (empty($this->pa_ht)) $this->pa_ht=0; @@ -2920,6 +2921,7 @@ class SupplierProposalLine extends CommonObject if (empty($this->special_code)) $this->special_code=0; if (empty($this->fk_parent_line)) $this->fk_parent_line=0; if (empty($this->fk_fournprice)) $this->fk_fournprice=0; + if (empty($this->subprice)) $this->subprice=0; if (empty($this->pa_ht)) $this->pa_ht=0; From 3d18c71201bc22c5ff5377418812e66caf774362 Mon Sep 17 00:00:00 2001 From: alexis Algoud Date: Wed, 5 Jul 2017 17:21:37 +0200 Subject: [PATCH 221/515] FIX invoice situation VAT total rounding into PDF crabe --- .../modules/facture/doc/pdf_crabe.modules.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php index 52971f76770..57c8d55c983 100644 --- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php +++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php @@ -1120,7 +1120,26 @@ class pdf_crabe extends ModelePDFFactures } //} + // VAT + // Situations totals migth be wrong on huge amounts + if ($object->situation_cycle_ref && $object->situation_counter > 1) { + + $sum_pdf_tva = 0; + foreach($this->tva as $tvakey => $tvaval){ + $sum_pdf_tva+=$tvaval; // sum VAT amounts to compare to object + } + + if($sum_pdf_tva!=$object->total_tva) { // apply coef to recover the VAT object amount (the good one) + $coef_fix_tva = $object->total_tva / $sum_pdf_tva; + + foreach($this->tva as $tvakey => $tvaval) { + $this->tva[$tvakey]=$tvaval * $coef_fix_tva; + } + } + + } + foreach($this->tva as $tvakey => $tvaval) { if ($tvakey != 0) // On affiche pas taux 0 From a072b23a5e5df764de2a2e08d874d59b25bf3ce6 Mon Sep 17 00:00:00 2001 From: jfefe Date: Thu, 6 Jul 2017 00:47:26 +0200 Subject: [PATCH 222/515] FIX #7075 : bad path for document --- htdocs/fourn/commande/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index bc3c0822207..b46b9fde5cd 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -878,7 +878,7 @@ if (empty($reshook)) } // Actions to build doc - $upload_dir = $conf->commande->dir_output; + $upload_dir = $conf->fournisseur->dir_output.'/commande'; $permissioncreate = $user->rights->fournisseur->commande->creer; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; From bec5bde363e5ed22c91ea1aa9a26f18b315da2c0 Mon Sep 17 00:00:00 2001 From: TuxGasy Date: Thu, 6 Jul 2017 12:18:54 +0200 Subject: [PATCH 223/515] Move addMoreBoxStatsCustomer after table tag --- htdocs/comm/card.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index f46d8060f4c..e93bddb2e0b 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -604,16 +604,16 @@ if ($id > 0) if ($link) $boxstat.=''; } + $boxstat.=''; + $boxstat.=''; + $boxstat.=''; + $parameters = array(); $reshook = $hookmanager->executeHooks('addMoreBoxStatsCustomer', $parameters, $object, $action); if(empty($reshook)){ $boxstat.= $hookmanager->resPrint; } - $boxstat.=''; - $boxstat.=''; - $boxstat.=''; - print $boxstat; $now=dol_now(); From 857e45baf31b1e27367d6498ec0c22a4a78bcd67 Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 6 Jul 2017 15:34:10 +0200 Subject: [PATCH 224/515] Fix comment --- htdocs/product/list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index cb31de75892..f9037c32517 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -573,7 +573,7 @@ else print ' '; print ''; } - // Number buying Price + // WAP if (! empty($arrayfields['p.pmp']['checked'])) { print ''; From 3a89591fb46953e6d3b3ad3eb2cde6239daba333 Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Thu, 6 Jul 2017 15:48:22 +0200 Subject: [PATCH 225/515] Adding Hook for tooltip on project --- htdocs/projet/class/project.class.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index b22ea32f646..cfb6c45437d 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -991,7 +991,7 @@ class Project extends CommonObject } $linkclose=''; - if (empty($notooltip) && $user->rights->propal->lire) + if (empty($notooltip)) { if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { @@ -1000,6 +1000,17 @@ class Project extends CommonObject } $linkclose.=' title="'.dol_escape_htmltag($label, 1).'"'; $linkclose.=' class="classfortooltip"'; + + if (! is_object($hookmanager)) { + include_once DOL_DOCUMENT_ROOT.'/core/class/hookmanager.class.php'; + $hookmanager=new HookManager($this->db); + } + $hookmanager->initHooks(array('projectdao')); + $parameters=array('id'=>$this->id); + // Note that $action and $object may have been modified by some hooks + $reshook=$hookmanager->executeHooks('getnomurltooltip',$parameters,$this,$action); + if ($reshook > 0) + $linkclose = $hookmanager->resPrint; } $picto = 'projectpub'; From 6effcb0829e5c05224ba0611d1215d28025df3af Mon Sep 17 00:00:00 2001 From: fappels Date: Thu, 22 Jun 2017 16:00:12 +0200 Subject: [PATCH 226/515] New add trigger disable to updateline functions --- htdocs/comm/propal/class/propal.class.php | 5 +++-- htdocs/commande/class/commande.class.php | 5 +++-- htdocs/compta/facture/class/facture.class.php | 5 +++-- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index a59fefc7a89..494ff0bbe9a 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -618,9 +618,10 @@ class Propal extends CommonObject * @param array $array_options extrafields array * @param string $fk_unit Code of the unit to use. Null to use the default one * @param double $pu_ht_devise Unit price in currency + * @param int $notrigger disable line update trigger * @return int 0 if OK, <0 if KO */ - function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0, $txlocaltax2=0.0, $desc='', $price_base_type='HT', $info_bits=0, $special_code=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=0, $pa_ht=0, $label='', $type=0, $date_start='', $date_end='', $array_options=0, $fk_unit=null, $pu_ht_devise = 0) + function updateline($rowid, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0, $txlocaltax2=0.0, $desc='', $price_base_type='HT', $info_bits=0, $special_code=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=0, $pa_ht=0, $label='', $type=0, $date_start='', $date_end='', $array_options=0, $fk_unit=null, $pu_ht_devise = 0, $notrigger=0) { global $mysoc; @@ -745,7 +746,7 @@ class Propal extends CommonObject $this->line->multicurrency_total_tva = $multicurrency_total_tva; $this->line->multicurrency_total_ttc = $multicurrency_total_ttc; - $result=$this->line->update(); + $result=$this->line->update($notrigger); if ($result > 0) { // Reorder if child line diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 0910fedcb9d..afd0dc81bd9 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -2778,9 +2778,10 @@ class Commande extends CommonOrder * @param array $array_options extrafields array * @param string $fk_unit Code of the unit to use. Null to use the default one * @param double $pu_ht_devise Amount in currency + * @param int $notrigger disable line update trigger * @return int < 0 if KO, > 0 if OK */ - function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0,$txlocaltax2=0.0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $fk_unit=null, $pu_ht_devise = 0) + function updateline($rowid, $desc, $pu, $qty, $remise_percent, $txtva, $txlocaltax1=0.0,$txlocaltax2=0.0, $price_base_type='HT', $info_bits=0, $date_start='', $date_end='', $type=0, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $fk_unit=null, $pu_ht_devise = 0, $notrigger=0) { global $conf, $mysoc, $langs, $user; @@ -2935,7 +2936,7 @@ class Commande extends CommonOrder $this->line->array_options=$array_options; } - $result=$this->line->update($user); + $result=$this->line->update($user, $notrigger); if ($result > 0) { // Reorder if child line diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php index ce441ee213e..c410e507b96 100644 --- a/htdocs/compta/facture/class/facture.class.php +++ b/htdocs/compta/facture/class/facture.class.php @@ -2652,9 +2652,10 @@ class Facture extends CommonInvoice * @param int $situation_percent Situation advance percentage * @param string $fk_unit Code of the unit to use. Null to use the default one * @param double $pu_ht_devise Unit price in currency + * @param int $notrigger disable line update trigger * @return int < 0 if KO, > 0 if OK */ - function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type= self::TYPE_STANDARD, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $situation_percent=100, $fk_unit = null, $pu_ht_devise = 0) + function updateline($rowid, $desc, $pu, $qty, $remise_percent, $date_start, $date_end, $txtva, $txlocaltax1=0, $txlocaltax2=0, $price_base_type='HT', $info_bits=0, $type= self::TYPE_STANDARD, $fk_parent_line=0, $skip_update_total=0, $fk_fournprice=null, $pa_ht=0, $label='', $special_code=0, $array_options=0, $situation_percent=100, $fk_unit = null, $pu_ht_devise = 0, $notrigger=0) { global $conf,$user; // Deprecation warning @@ -2812,7 +2813,7 @@ class Facture extends CommonInvoice $this->line->array_options=$array_options; } - $result=$this->line->update($user); + $result=$this->line->update($user, $notrigger); if ($result > 0) { // Reorder if child line From 0c5febfb4da59d0241c52dc357b7f70a4e2792d1 Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Fri, 7 Jul 2017 06:09:49 +0200 Subject: [PATCH 227/515] Fix: Accountancy --- htdocs/accountancy/admin/journals_list.php | 1 + htdocs/compta/bank/various_payment/index.php | 160 +++++++++---------- htdocs/core/menus/standard/auguria.lib.php | 9 +- htdocs/core/menus/standard/eldy.lib.php | 1 + 4 files changed, 87 insertions(+), 84 deletions(-) diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index dca29fd28b8..62ae612cb48 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -134,6 +134,7 @@ $elementList = array(); '2' => $langs->trans('AccountingJournalType2'), '3' => $langs->trans('AccountingJournalType3'), '4' => $langs->trans('AccountingJournalType4'), + '5' => $langs->trans('AccountingJournalType5'), '9' => $langs->trans('AccountingJournalType9') ); diff --git a/htdocs/compta/bank/various_payment/index.php b/htdocs/compta/bank/various_payment/index.php index 39c6d27be4f..6594bacea7f 100644 --- a/htdocs/compta/bank/various_payment/index.php +++ b/htdocs/compta/bank/various_payment/index.php @@ -16,9 +16,9 @@ */ /** - * \file htdocs/compta/bank/various_payment/index.php - * \ingroup bank - * \brief List of various payments + * \file htdocs/compta/bank/various_payment/index.php + * \ingroup bank + * \brief List of various payments */ require '../../../main.inc.php'; @@ -44,7 +44,7 @@ $search_account = GETPOST('search_account','int'); $sortfield = GETPOST("sortfield",'alpha'); $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); -if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $conf->liste_limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -75,7 +75,7 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP $search_label=""; $search_amount=""; $search_account=''; - $typeid=""; + $typeid=""; } /* @@ -103,11 +103,11 @@ if ($search_label) $sql.=natural_search(array('v.label'), $search_label); if ($search_amount) $sql.=natural_search("v.amount", $search_amount, 1); if ($search_account > 0) $sql .=" AND b.fk_account=".$search_account; if ($filtre) { - $filtre=str_replace(":","=",$filtre); - $sql .= " AND ".$filtre; + $filtre=str_replace(":","=",$filtre); + $sql .= " AND ".$filtre; } if ($typeid) { - $sql .= " AND v.fk_typepayment=".$typeid; + $sql .= " AND v.fk_typepayment=".$typeid; } $sql.= $db->order($sortfield,$sortorder); @@ -116,48 +116,48 @@ $totalnboflines=0; $result=$db->query($sql); if ($result) { - $totalnboflines = $db->num_rows($result); + $totalnboflines = $db->num_rows($result); } $sql.= $db->plimit($limit+1,$offset); $result = $db->query($sql); if ($result) { - $num = $db->num_rows($result); - $i = 0; - $total = 0 ; + $num = $db->num_rows($result); + $i = 0; + $total = 0 ; $var=true; $param=''; - if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; + if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; if ($typeid) $param.='&typeid='.$typeid; if ($optioncss != '') $param.='&optioncss='.$optioncss; print '
'; - if ($optioncss != '') print ''; - print ''; + if ($optioncss != '') print ''; + print ''; print ''; - print ''; - print ''; - print ''; - print ''; - + print ''; + print ''; + print ''; + print ''; + print_barre_liste($langs->trans("VariousPayments"),$page,$_SERVER["PHP_SELF"],$param,$sortfield,$sortorder,'',$num, $totalnboflines, 'title_accountancy.png', 0, '', '', $limit); - - print '
'; - print ''."\n"; + + print '
'; + print '
'."\n"; print ''; print_liste_field_titre($langs->trans("Ref"),$_SERVER["PHP_SELF"],"v.rowid","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Label"),$_SERVER["PHP_SELF"],"v.label","",$param,'align="left"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("DatePayment"),$_SERVER["PHP_SELF"],"v.datep","",$param,'align="center"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("PaymentMode"),$_SERVER["PHP_SELF"],"type","",$param,'align="left"',$sortfield,$sortorder); - if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); + if (! empty($conf->banque->enabled)) print_liste_field_titre($langs->trans("BankAccount"),$_SERVER["PHP_SELF"],"ba.label","",$param,"",$sortfield,$sortorder); print_liste_field_titre($langs->trans("Amount"),$_SERVER["PHP_SELF"],"v.amount","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre($langs->trans("Sens"),$_SERVER["PHP_SELF"],"v.sens","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre('',$_SERVER["PHP_SELF"],"",'','','',$sortfield,$sortorder,'maxwidthsearch '); - print "\n"; + print "\n"; print ''; // Ref @@ -174,85 +174,85 @@ if ($result) print ''; // Account if (! empty($conf->banque->enabled)) - { - print ''; - } + { + print ''; + } // Amount print ''; // Sens print ''; - print ''; - + print ''; + print "\n"; - while ($i < min($num,$limit)) - { - $obj = $db->fetch_object($result); - - print ''; + while ($i < min($num,$limit)) + { + $obj = $db->fetch_object($result); - $variousstatic->id=$obj->rowid; + print ''; + + $variousstatic->id=$obj->rowid; $variousstatic->ref=$obj->rowid; - // Ref + // Ref print "\n"; // Label payment - print "\n"; + print "\n"; // Date payment - print '\n"; - // Type - print ''; + print '\n"; + // Type + print ''; // Account - if (! empty($conf->banque->enabled)) - { - print ''; - } - // Amount - print ""; - // Sens + if (! empty($conf->banque->enabled)) + { + print ''; + } + // Amount + print ""; + // Sens if ($obj->sens == '1') $sens = $langs->trans("Credit"); else $sens = $langs->trans("Debit"); - print ""; - print ""; - print "\n"; + print ""; + print ""; + print "\n"; - $total = $total + $obj->amount; + $total = $total + $obj->amount; - $i++; - } + $i++; + } - $colspan=4; - if (! empty($conf->banque->enabled)) $colspan++; - print ''; - print '"; + $colspan=4; + if (! empty($conf->banque->enabled)) $colspan++; + print ''; + print '"; print ""; - print "
'; - $form->select_comptes($search_account,'search_account',0,'',1); - print ''; + $form->select_comptes($search_account,'search_account',0,'',1); + print ' '; - $searchpicto=$form->showFilterAndCheckAddButtons(0); - print $searchpicto; - print ''; + $searchpicto=$form->showFilterAndCheckAddButtons(0); + print $searchpicto; + print '
".$variousstatic->getNomUrl(1)."".dol_trunc($obj->label,40)."".dol_trunc($obj->label,40)."'.dol_print_date($db->jdate($obj->datep),'day')."'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.''.dol_print_date($db->jdate($obj->datep),'day')."'.$langs->trans("PaymentTypeShort".$obj->payment_code).' '.$obj->num_payment.''; - if ($obj->fk_bank > 0) - { - //$accountstatic->fetch($obj->fk_bank); - $accountstatic->id=$obj->bid; - $accountstatic->ref=$obj->bref; - $accountstatic->number=$obj->bnumber; - $accountstatic->accountancy_number=$obj->account_number; - $accountstatic->fk_accountancy_journal=$obj->fk_accountancy_journal; - $accountstatic->label=$obj->blabel; - print $accountstatic->getNomUrl(1); - } - else print ' '; - print '".price($obj->amount)."'; + if ($obj->fk_bank > 0) + { + //$accountstatic->fetch($obj->fk_bank); + $accountstatic->id=$obj->bid; + $accountstatic->ref=$obj->bref; + $accountstatic->number=$obj->bnumber; + $accountstatic->accountancy_number=$obj->account_number; + $accountstatic->fk_accountancy_journal=$obj->fk_accountancy_journal; + $accountstatic->label=$obj->blabel; + print $accountstatic->getNomUrl(1); + } + else print ' '; + print '".price($obj->amount)."".$sens."
".$sens."
'.$langs->trans("Total").''.price($total)."
'.$langs->trans("Total").''.price($total)."
"; - print '
'; + print ""; + print ''; print '
'; - $db->free($result); + $db->free($result); } else { - dol_print_error($db); + dol_print_error($db); } diff --git a/htdocs/core/menus/standard/auguria.lib.php b/htdocs/core/menus/standard/auguria.lib.php index 6b42e7ad500..fd4d2a4e7f7 100644 --- a/htdocs/core/menus/standard/auguria.lib.php +++ b/htdocs/core/menus/standard/auguria.lib.php @@ -357,6 +357,7 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM $sql = "SELECT rowid, code, label, nature"; $sql.= " FROM ".MAIN_DB_PREFIX."accounting_journal"; $sql.= " WHERE entity = ".$conf->entity; + $sql.= " active = 1"; $sql.= " ORDER BY label"; $resql = $db->query($sql); @@ -373,10 +374,10 @@ function print_left_auguria_menu($db,$menu_array_before,$menu_array_after,&$tabM $nature=''; // Must match array $sourceList defined into journals_list.php - if ($objp->nature == 2) $nature="sells"; - if ($objp->nature == 3) $nature="purchases"; - if ($objp->nature == 4) $nature="bank"; - if ($objp->nature == 5) $nature="expensereports"; + if ($objp->nature == 2 && ! empty($conf->facture->enabled)) $nature="sells"; + if ($objp->nature == 3 && ! empty($conf->fournisseur->enabled)) $nature="purchases"; + if ($objp->nature == 4 && ! empty($conf->banque->enabled)) $nature="bank"; + if ($objp->nature == 5 && ! empty($conf->expensereport->enabled)) $nature="expensereports"; if ($objp->nature == 1) $nature="various"; if ($objp->nature == 9) $nature="hasnew"; diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php index 66bfdcbce87..d1a26d2de1c 100644 --- a/htdocs/core/menus/standard/eldy.lib.php +++ b/htdocs/core/menus/standard/eldy.lib.php @@ -992,6 +992,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu $sql = "SELECT rowid, code, label, nature"; $sql.= " FROM ".MAIN_DB_PREFIX."accounting_journal"; $sql.= " WHERE entity = ".$conf->entity; + $sql.= " AND active = 1"; $sql.= " ORDER BY label"; $resql = $db->query($sql); From 0797323664af5d740b58e9589b81662c3630a60d Mon Sep 17 00:00:00 2001 From: Alexandre SPANGARO Date: Fri, 7 Jul 2017 06:42:29 +0200 Subject: [PATCH 228/515] Fix: Search broken in holiday list --- htdocs/holiday/list.php | 62 ++++++++++++++++++++++------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/htdocs/holiday/list.php b/htdocs/holiday/list.php index 5706307a16c..c9147419650 100644 --- a/htdocs/holiday/list.php +++ b/htdocs/holiday/list.php @@ -20,7 +20,7 @@ /** * \file htdocs/holiday/list.php * \ingroup holiday - * \brief List of holiday. + * \brief List of holiday */ require('../main.inc.php'); @@ -63,10 +63,10 @@ $month_start = GETPOST('month_start'); $year_start = GETPOST('year_start'); $month_end = GETPOST('month_end'); $year_end = GETPOST('year_end'); -$search_employe = GETPOST('search_employe'); +$search_employee = GETPOST('search_employee'); $search_valideur = GETPOST('search_valideur'); $search_statut = GETPOST('select_statut'); -$type = GETPOST('type','int'); +$search_type = GETPOST('search_type','int'); // List of fields to search into when doing a "search in all" $fieldstosearchall = array( @@ -91,10 +91,10 @@ if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") || GETP $year_start=""; $month_end=""; $year_end=""; - $search_employe=""; + $search_employee=""; $search_valideur=""; $search_statut=""; - $type=''; + $search_type=''; } @@ -121,13 +121,13 @@ llxHeader('', $langs->trans('CPTitreMenu')); $order = $db->order($sortfield,$sortorder).$db->plimit($limit + 1, $offset); -// WHERE +// Ref if(!empty($search_ref)) { $filter.= " AND cp.rowid LIKE '%".$db->escape($search_ref)."%'\n"; } -// DATE START +// Start date if($year_start > 0) { if($month_start > 0) { $filter .= " AND (cp.date_debut BETWEEN '".$db->idate(dol_get_first_day($year_start,$month_start,1))."' AND '".$db->idate(dol_get_last_day($year_start,$month_start,1))."')"; @@ -142,7 +142,7 @@ if($year_start > 0) { } } -// DATE FIN +// End date if($year_end > 0) { if($month_end > 0) { $filter .= " AND (cp.date_fin BETWEEN '".$db->idate(dol_get_first_day($year_end,$month_end,1))."' AND '".$db->idate(dol_get_last_day($year_end,$month_end,1))."')"; @@ -157,7 +157,7 @@ if($year_end > 0) { } } -// DATE CREATE +// Create date if($year_create > 0) { if($month_create > 0) { $filter .= " AND (cp.date_create BETWEEN '".$db->idate(dol_get_first_day($year_create,$month_create,1))."' AND '".$db->idate(dol_get_last_day($year_create,$month_create,1))."')"; @@ -172,17 +172,22 @@ if($year_create > 0) { } } -// EMPLOYE -if(!empty($search_employe) && $search_employe != -1) { - $filter.= " AND cp.fk_user = '".$db->escape($search_employe)."'\n"; +// Employee +if(!empty($search_employee) && $search_employee != -1) { + $filter.= " AND cp.fk_user = '".$db->escape($search_employee)."'\n"; } -// VALIDEUR +// Validator if(!empty($search_valideur) && $search_valideur != -1) { $filter.= " AND cp.fk_validator = '".$db->escape($search_valideur)."'\n"; } -// STATUT +// Type +if (!empty($search_type) && $search_type != -1) { + $filter.= ' AND cp.fk_type IN ('.$db->escape($search_type).')'; +} + +// Status if(!empty($search_statut) && $search_statut != -1) { $filter.= " AND cp.statut = '".$db->escape($search_statut)."'\n"; } @@ -194,7 +199,6 @@ if (!empty($sall)) if (empty($user->rights->holiday->read_all)) $filter.=' AND cp.fk_user IN ('.join(',',$childids).')'; -if ($type > 0) $filter.=' AND cp.fk_type IN ('.$db->escape($type).')'; // Récupération de l'ID de l'utilisateur $user_id = $user->id; @@ -297,34 +301,34 @@ if ($sall) print '
'; print ''."\n"; -// FILTRES +// Filters print ''; print ''; -// DATE CREATE +// Create date print ''; -// UTILISATEUR +// User if ($user->rights->holiday->write_all) { print ''; } else { //print ''; print ''; } -// APPROVER +// Approve if($user->rights->holiday->write_all) { print ''; -// DUREE +// Duration print ''; -// DATE DEBUT +// Start date print ''; -// DATE FIN +// End date print ''; -// STATUT +// Status print ''; -// ACTION +// Actions print ''."\n"; print ''."\n"; print ''."\n"; print ''."\n"; From a6f1e08c194e7b8f3b3ebf191eaa0f10c57ad7bb Mon Sep 17 00:00:00 2001 From: gauthier Date: Fri, 7 Jul 2017 11:46:19 +0200 Subject: [PATCH 233/515] FIX : we have to check if contact doesn't already exist on add_contact() function --- htdocs/core/class/commonobject.class.php | 92 ++++++++++++++---------- 1 file changed, 54 insertions(+), 38 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 2d52a7ee2d1..8e9cdbfc4d5 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -599,48 +599,64 @@ abstract class CommonObject } $datecreate = dol_now(); - - $this->db->begin(); - - // Insertion dans la base - $sql = "INSERT INTO ".MAIN_DB_PREFIX."element_contact"; - $sql.= " (element_id, fk_socpeople, datecreate, statut, fk_c_type_contact) "; - $sql.= " VALUES (".$this->id.", ".$fk_socpeople." , " ; - $sql.= "'".$this->db->idate($datecreate)."'"; - $sql.= ", 4, ". $id_type_contact; - $sql.= ")"; - - $resql=$this->db->query($sql); - if ($resql) - { - if (! $notrigger) - { - $result=$this->call_trigger(strtoupper($this->element).'_ADD_CONTACT', $user); - if ($result < 0) + + // Socpeople must have already been added by some a trigger, then we have to check it to avoid DB_ERROR_RECORD_ALREADY_EXISTS error + $TListeContacts=$this->liste_contact(-1, $source); + $already_added=false; + if(!empty($TListeContacts)) { + foreach($TListeContacts as $array_contact) { + if($array_contact['status'] == 4 && $array_contact['id'] == $fk_socpeople && $array_contact['fk_c_type_contact'] == $id_type_contact) { + $already_added=true; + break; + } + } + } + + if(!$already_added) { + + $this->db->begin(); + + // Insertion dans la base + $sql = "INSERT INTO ".MAIN_DB_PREFIX."element_contact"; + $sql.= " (element_id, fk_socpeople, datecreate, statut, fk_c_type_contact) "; + $sql.= " VALUES (".$this->id.", ".$fk_socpeople." , " ; + $sql.= "'".$this->db->idate($datecreate)."'"; + $sql.= ", 4, ". $id_type_contact; + $sql.= ")"; + + $resql=$this->db->query($sql); + if ($resql) + { + if (! $notrigger) { + $result=$this->call_trigger(strtoupper($this->element).'_ADD_CONTACT', $user); + if ($result < 0) + { + $this->db->rollback(); + return -1; + } + } + + $this->db->commit(); + return 1; + } + else + { + if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') + { + $this->error=$this->db->errno(); + $this->db->rollback(); + echo 'err rollback'; + return -2; + } + else + { + $this->error=$this->db->error(); $this->db->rollback(); return -1; } - } - - $this->db->commit(); - return 1; - } - else - { - if ($this->db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') - { - $this->error=$this->db->errno(); - $this->db->rollback(); - return -2; - } - else - { - $this->error=$this->db->error(); - $this->db->rollback(); - return -1; - } - } + } + } else return 0; } /** From 8abec461a6908f2d4024df69cf96f3c229eda5d4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 12:31:00 +0200 Subject: [PATCH 234/515] Fix total with tax does not include local taxes. To solve, i show both totals. --- htdocs/langs/en_US/main.lang | 1 + htdocs/product/price.php | 104 ++++++++++++++++++++++++----------- 2 files changed, 73 insertions(+), 32 deletions(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a35342f2af9..8b1c0df7f40 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -358,6 +358,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE diff --git a/htdocs/product/price.php b/htdocs/product/price.php index 8c86f544dba..a701a637aa8 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -33,6 +33,7 @@ */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/product.lib.php'; +require_once DOL_DOCUMENT_ROOT . '/core/lib/price.lib.php'; require_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php'; require_once DOL_DOCUMENT_ROOT . '/product/dynamic_price/class/price_expression.class.php'; require_once DOL_DOCUMENT_ROOT . '/product/dynamic_price/class/price_parser.class.php'; @@ -759,12 +760,8 @@ if (! empty($conf->global->PRODUIT_MULTIPRICES)) print ''; print ''; - $var=True; - for($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i++) { - $var = ! $var; - print ''; // Label of price @@ -1244,11 +1241,8 @@ if ($action == 'edit_price' && $object->getRights()->creer) print ''; - $var = false; for ($i = 1; $i <= $conf->global->PRODUIT_MULTIPRICES_LIMIT; $i ++) { - $var = !$var; - print ''; print ''; + + print ''; // Date print ""; @@ -1440,7 +1433,9 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_ print ''; } } + print ''; + print ''; // User @@ -1729,11 +1724,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; print ''; - $var = True; - foreach ($prodcustprice->lines as $line) { - $var = ! $var; print ''; // Date $staticsoc = new Societe($db); @@ -1748,6 +1740,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '"; print '"; print '"; + print ''; print ''; @@ -1757,6 +1750,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; + print ''; } print "
'; print ''; print ''; print ''; $formother->select_year($year_create,'year_create',1, $min_year, 0); print ''; - print $form->select_dolusers($search_employe,"search_employe",1,"",0,'','',0,0,0,'',0,'','maxwidth200'); + print $form->select_dolusers($search_employee,"search_employee",1,"",0,'','',0,0,0,'',0,'','maxwidth200'); print ' '; - print $form->select_dolusers($user->id,"search_employe",1,"",1,'','',0,0,0,'',0,'','maxwidth200'); + print $form->select_dolusers($user->id,"search_employee",1,"",1,'','',0,0,0,'',0,'','maxwidth200'); print ''; @@ -352,30 +356,30 @@ foreach($typeleaves as $key => $val) //$labeltoshow .= ($val['delay'] > 0 ? ' ('.$langs->trans("NoticePeriod").': '.$val['delay'].' '.$langs->trans("days").')':''); $arraytypeleaves[$val['rowid']]=$labeltoshow; } -print $form->selectarray('type', $arraytypeleaves, (GETPOST('type')?GETPOST('type'):''), 1); +print $form->selectarray('search_type', $arraytypeleaves, (GETPOST('search_type')?GETPOST('search_type'):''), 1); print ' '; print ''; $formother->select_year($year_start,'year_start',1, $min_year, $max_year); print ''; print ''; $formother->select_year($year_end,'year_end',1, $min_year, $max_year); print ''; $holiday->selectStatutCP($search_statut); print ''; $searchpicto=$form->showFilterAndCheckAddButtons(0); print $searchpicto; @@ -404,7 +408,7 @@ if (! empty($holiday->holiday)) foreach($holiday->holiday as $infos_CP) { - // Utilisateur + // User $userstatic->id=$infos_CP['fk_user']; $userstatic->lastname=$infos_CP['user_lastname']; $userstatic->firstname=$infos_CP['user_firstname']; @@ -412,7 +416,7 @@ if (! empty($holiday->holiday)) $userstatic->statut=$infos_CP['user_statut']; $userstatic->photo=$infos_CP['user_photo']; - // Valideur + // Validator $approbatorstatic->id=$infos_CP['fk_validator']; $approbatorstatic->lastname=$infos_CP['validator_lastname']; $approbatorstatic->firstname=$infos_CP['validator_firstname']; From 2aaf8b22f22b2ef1a0ba391b938260c39875279e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 10:10:12 +0200 Subject: [PATCH 229/515] Fix substitution var --- htdocs/core/class/commondocgenerator.class.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index bb806257d01..e85434ccd37 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -386,7 +386,7 @@ abstract class CommonDocGenerator $array_key.'_note_private'=>$object->note, $array_key.'_note_public'=>$object->note_public, $array_key.'_note'=>$object->note_public, // For backward compatibility - + // Payments $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs), $array_key.'_already_payed'=>price2num($sumpayed), @@ -394,10 +394,10 @@ abstract class CommonDocGenerator $array_key.'_already_deposit'=>price2num($sumdeposit), $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs), $array_key.'_already_creditnote'=>price2num($sumcreditnote), - + $array_key.'_already_payed_all_locale'=>price(price2num($sumpayed + $sumdeposit + $sumcreditnote, 'MT'), 0, $outputlangs), - $array_key.'already_payed_all'=> price2num(($sumpayed + $sumdeposit + $sumcreditnote), 'MT'), - + $array_key.'_already_payed_all'=> price2num(($sumpayed + $sumdeposit + $sumcreditnote), 'MT'), + // Remain to pay with all know infrmation (except open direct debit requests) $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $sumpayed - $sumdeposit - $sumcreditnote, 'MT'), 0, $outputlangs), $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $sumpayed - $sumdeposit - $sumcreditnote, 'MT') From 9baeee893f13a51c153a765254fbbbbd81576158 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 10:54:54 +0200 Subject: [PATCH 230/515] Fix multicurrency (tags for odt) --- .../core/class/commondocgenerator.class.php | 80 ++++++++++++------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/htdocs/core/class/commondocgenerator.class.php b/htdocs/core/class/commondocgenerator.class.php index 00394b0e03f..4d8bc356ef4 100644 --- a/htdocs/core/class/commondocgenerator.class.php +++ b/htdocs/core/class/commondocgenerator.class.php @@ -318,34 +318,6 @@ abstract class CommonDocGenerator return $array_other; } - - - - /** - * Define array with couple subtitution key => subtitution value - * - * @param Object $object Dolibarr Object - * @param Translate $outputlangs Language object for output - * @param boolean $recursive Want to fetch child array or child object - * @return array Array of substitution key->code - */ - function get_substitutionarray_each_var_object(&$object,$outputlangs,$recursive=true) { - $array_other = array(); - if(!empty($object)) { - foreach($object as $key => $value) { - if(!empty($value)) { - if(!is_array($value) && !is_object($value)) { - $array_other['object_'.$key] = $value; - } - if(is_array($value) && $recursive){ - $array_other['object_'.$key] = $this->get_substitutionarray_each_var_object($value,$outputlangs,false); - } - } - } - } - return $array_other; - } - /** @@ -410,10 +382,19 @@ abstract class CommonDocGenerator $array_key.'_total_ttc'=>price2num($object->total_ttc), $array_key.'_total_discount_ht' => price2num($object->getTotalDiscount()), + $array_key.'_multicurrency_code' => price2num($object->multicurrency_code), + $array_key.'_multicurrency_tx' => price2num($object->multicurrency_tx), + $array_key.'_multicurrency_total_ht' => price2num($object->multicurrency_total_ht), + $array_key.'_multicurrency_total_tva' => price2num($object->multicurrency_total_tva), + $array_key.'_multicurrency_total_ttc' => price2num($object->multicurrency_total_ttc), + $array_key.'_multicurrency_total_ht_locale' => price($object->multicurrency_total_ht, 0, $outputlangs), + $array_key.'_multicurrency_total_tva_locale' => price($object->multicurrency_total_tva, 0, $outputlangs), + $array_key.'_multicurrency_total_ttc_locale' => price($object->multicurrency_total_ttc, 0, $outputlangs), + $array_key.'_note_private'=>$object->note, $array_key.'_note_public'=>$object->note_public, $array_key.'_note'=>$object->note_public, // For backward compatibility - + // Payments $array_key.'_already_payed_locale'=>price($sumpayed, 0, $outputlangs), $array_key.'_already_payed'=>price2num($sumpayed), @@ -421,10 +402,10 @@ abstract class CommonDocGenerator $array_key.'_already_deposit'=>price2num($sumdeposit), $array_key.'_already_creditnote_locale'=>price($sumcreditnote, 0, $outputlangs), $array_key.'_already_creditnote'=>price2num($sumcreditnote), - + $array_key.'_already_payed_all_locale'=>price(price2num($sumpayed + $sumdeposit + $sumcreditnote, 'MT'), 0, $outputlangs), $array_key.'already_payed_all'=> price2num(($sumpayed + $sumdeposit + $sumcreditnote), 'MT'), - + // Remain to pay with all know infrmation (except open direct debit requests) $array_key.'_remain_to_pay_locale'=>price(price2num($object->total_ttc - $sumpayed - $sumdeposit - $sumcreditnote, 'MT'), 0, $outputlangs), $array_key.'_remain_to_pay'=>price2num($object->total_ttc - $sumpayed - $sumdeposit - $sumcreditnote, 'MT') @@ -493,6 +474,16 @@ abstract class CommonDocGenerator 'line_date_end'=>dol_print_date($line->date_end, 'day', 'tzuser'), 'line_date_end_locale'=>dol_print_date($line->date_end, 'day', 'tzuser', $outputlangs), 'line_date_end_rfc'=>dol_print_date($line->date_end, 'dayrfc', 'tzuser'), + + 'line_multicurrency_code' => price2num($line->multicurrency_code), + 'line_multicurrency_subprice' => price2num($line->multicurrency_subprice), + 'line_multicurrency_total_ht' => price2num($line->multicurrency_total_ht), + 'line_multicurrency_total_tva' => price2num($line->multicurrency_total_tva), + 'line_multicurrency_total_ttc' => price2num($line->multicurrency_total_ttc), + 'line_multicurrency_subprice_locale' => price($line->multicurrency_subprice, 0, $outputlangs), + 'line_multicurrency_total_ht_locale' => price($line->multicurrency_total_ht, 0, $outputlangs), + 'line_multicurrency_total_tva_locale' => price($line->multicurrency_total_tva, 0, $outputlangs), + 'line_multicurrency_total_ttc_locale' => price($line->multicurrency_total_ttc, 0, $outputlangs), ); // Retrieve extrafields @@ -601,6 +592,33 @@ abstract class CommonDocGenerator ); } + + /** + * Define array with couple subtitution key => subtitution value + * + * @param Object $object Dolibarr Object + * @param Translate $outputlangs Language object for output + * @param boolean $recursive Want to fetch child array or child object + * @return array Array of substitution key->code + */ + function get_substitutionarray_each_var_object(&$object,$outputlangs,$recursive=true) { + $array_other = array(); + if(!empty($object)) { + foreach($object as $key => $value) { + if(!empty($value)) { + if(!is_array($value) && !is_object($value)) { + $array_other['object_'.$key] = $value; + } + if(is_array($value) && $recursive){ + $array_other['object_'.$key] = $this->get_substitutionarray_each_var_object($value,$outputlangs,false); + } + } + } + } + return $array_other; + } + + /** * Fill array with couple extrafield key => extrafield value * From de1a7042d455a771ec64bac1a17bf2bbb9244a47 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 10:55:42 +0200 Subject: [PATCH 231/515] Fix filter on list of actions --- htdocs/comm/action/listactions.php | 15 +++++++++++---- htdocs/langs/en_US/agenda.lang | 3 +++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index 13a7015059b..55f73575f78 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -59,9 +59,9 @@ else if ($actioncode == '' && empty($actioncodearray)) $actioncode=(empty($conf->global->AGENDA_DEFAULT_FILTER_TYPE)?'':$conf->global->AGENDA_DEFAULT_FILTER_TYPE); $search_title=GETPOST('search_title','alpha'); -$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth'), GETPOST('dateselectday'), GETPOST('dateselectyear')); -$datestart=dol_mktime(0, 0, 0, GETPOST('datestartmonth'), GETPOST('datestartday'), GETPOST('datestartyear')); -$dateend=dol_mktime(0, 0, 0, GETPOST('dateendmonth'), GETPOST('dateendday'), GETPOST('dateendyear')); +$dateselect=dol_mktime(0, 0, 0, GETPOST('dateselectmonth','int'), GETPOST('dateselectday','int'), GETPOST('dateselectyear','int')); +$datestart=dol_mktime(0, 0, 0, GETPOST('datestartmonth','int'), GETPOST('datestartday','int'), GETPOST('datestartyear','int')); +$dateend=dol_mktime(0, 0, 0, GETPOST('dateendmonth','int'), GETPOST('dateendday','int'), GETPOST('dateendyear','int')); if ($status == '' && ! isset($_GET['status']) && ! isset($_POST['status'])) $status=(empty($conf->global->AGENDA_DEFAULT_FILTER_STATUS)?'':$conf->global->AGENDA_DEFAULT_FILTER_STATUS); if (empty($action) && ! isset($_GET['action']) && ! isset($_POST['action'])) $action=(empty($conf->global->AGENDA_DEFAULT_VIEW)?'show_month':$conf->global->AGENDA_DEFAULT_VIEW); @@ -168,7 +168,7 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; if ($actioncode != '') $param.="&actioncode=".$actioncode; if ($resourceid > 0) $param.="&resourceid=".$resourceid; -if ($status || isset($_GET['status']) || isset($_POST['status'])) $param.="&status=".$status; +if ($status != '' && $status > -1) $param.="&status=".$status; if ($filter) $param.="&filter=".$filter; if ($filtert) $param.="&filtert=".$filtert; if ($socid) $param.="&socid=".$socid; @@ -177,6 +177,13 @@ if ($pid) $param.="&projectid=".$pid; if ($type) $param.="&type=".$type; if ($usergroup) $param.="&usergroup=".$usergroup; if ($optioncss != '') $param.='&optioncss='.$optioncss; +if ($search_title != '') $param.='&search_title='.$search_title; +if (GETPOST('datestartday','int')) $param.='&datestartday='.GETPOST('datestartday','int'); +if (GETPOST('datestartmonth','int')) $param.='&datestartmonth='.GETPOST('datestartmonth','int'); +if (GETPOST('datestartyear','int')) $param.='&datestartyear='.GETPOST('datestartyear','int'); +if (GETPOST('dateendday','int')) $param.='&dateendday='.GETPOST('dateendday','int'); +if (GETPOST('dateendmonth','int')) $param.='&dateendmonth='.GETPOST('dateendmonth','int'); +if (GETPOST('dateendyear','int')) $param.='&dateendyear='.GETPOST('dateendyear','int'); $sql = "SELECT"; if ($usergroup > 0) $sql.=" DISTINCT"; diff --git a/htdocs/langs/en_US/agenda.lang b/htdocs/langs/en_US/agenda.lang index 4e2e2acf378..38a40315985 100644 --- a/htdocs/langs/en_US/agenda.lang +++ b/htdocs/langs/en_US/agenda.lang @@ -75,6 +75,9 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### AgendaModelModule=Document templates for event DateActionStart=Start date From 2be9f402c6acfa1bdaf6fb89823c7e1e97e1a0db Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 10:58:18 +0200 Subject: [PATCH 232/515] Fix order of tab --- htdocs/admin/agenda_other.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/admin/agenda_other.php b/htdocs/admin/agenda_other.php index 31bcf1077e6..cf4f3832a1f 100644 --- a/htdocs/admin/agenda_other.php +++ b/htdocs/admin/agenda_other.php @@ -385,7 +385,7 @@ print '
'.$langs->trans("AGENDA_DEFAULT_VIEW").' '."\n"; -$tmplist=array('show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_list'=>$langs->trans("ViewList"), 'show_peruser'=>$langs->trans("ViewPerUser")); +$tmplist=array('show_list'=>$langs->trans("ViewList"), 'show_month'=>$langs->trans("ViewCal"), 'show_week'=>$langs->trans("ViewWeek"), 'show_day'=>$langs->trans("ViewDay"), 'show_peruser'=>$langs->trans("ViewPerUser")); print $form->selectarray('AGENDA_DEFAULT_VIEW', $tmplist, $conf->global->AGENDA_DEFAULT_VIEW); print '
'.$langs->trans("MinPrice").'
'; print $form->textwithpicto($langs->trans('SellingPrice') . ' ' . $i, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1); @@ -1389,13 +1383,12 @@ if ((empty($conf->global->PRODUIT_CUSTOMER_PRICES) || $action=='showlog_default_ $notfirstlineforlevel=array(); - $var = True; $i = 0; while ($i < $num) { $objp = $db->fetch_object($result); - $var = ! $var; - print '
" . dol_print_date($db->jdate($objp->dp), "dayhour") . "' . ($objp->price_base_type != 'TTC' ? price($objp->price_min) : '') . '' . ($objp->price_base_type == 'TTC' ? price($objp->price_min_ttc) : '') . ' 
' . vatrate($tva_tx, true, $line->recuperableonly) . "' . price($line->price) . "' . price($line->price_ttc) . "' . price($line->price_min) . '' . price($line->price_min_ttc) . ''; print $userstatic->getLoginUrl(1); print '
"; } else { @@ -1788,24 +1782,14 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - if (count($prodcustprice->lines) > 0 || $search_soc) { + $colspan=8; + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") $colspan++; + print ''; print ''; - print ''; + print ''; // Print the search button print ''; } - $var = False; - + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") print ''; + print ''; + print ''; + print ''; + print ''; + print ''; // Line for default price + if ($object->price_base_type=='HT') + { + $pu=$object->price; + } + else + { + $pu=$object->price_ttc; + } + + // Local tax is not saved into table of product. We use value linked to VAT code. + $localtaxarray=getLocalTaxesFromRate($object->tva_tx.($object->default_vat_code?' ('.$object->default_vat_code.')':''), 0, $mysoc, $mysoc); + // Define part of HT, VAT, TTC + $resultarray=calcul_price_total(1, $pu, 0, $object->tva_tx, 1, 1, 0, $object->price_base_type, $object->recuperableonly, $object->type, $mysoc, $localtaxarray); + // Calcul du total ht sans remise + $total_ht = $resultarray[0]; + $total_vat = $resultarray[1]; + $total_localtax1 = $resultarray[9]; + $total_localtax2 = $resultarray[10]; + $total_ttc = $resultarray[2]; + print ''; print ""; print ""; @@ -1827,8 +1842,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print vatrate($object->tva_tx, true, $object->recuperableonly); print $object->default_vat_code?' ('.$object->default_vat_code.')':''; print ""; + print '"; print '"; + + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") print ''; + print ''; print ''; print ''; // Date @@ -1864,6 +1880,27 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) $tva_tx = $line->default_vat_code ? $line->tva_tx.' ('.$line->default_vat_code.')' : $line->tva_tx; + // Line for default price + if ($object->price_base_type=='HT') + { + $pu=$line->price; + } + else + { + $pu=$line->price_ttc; + } + + // Local tax is not saved into table of product. We use value linked to VAT code. + $localtaxarray=getLocalTaxesFromRate($object->tva_tx.($object->default_vat_code?' ('.$object->default_vat_code.')':''), 0, $mysoc, $mysoc); + // Define part of HT, VAT, TTC + $resultarray=calcul_price_total(1, $pu, 0, $object->tva_tx, 1, 1, 0, $object->price_base_type, $object->recuperableonly, $object->type, $mysoc, $localtaxarray); + // Calcul du total ht sans remise + $total_ht = $resultarray[0]; + $total_vat = $resultarray[1]; + $total_localtax1 = $resultarray[9]; + $total_localtax2 = $resultarray[10]; + $total_ttc = $resultarray[2]; + print ""; print ""; @@ -1871,6 +1908,9 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '"; print '"; print '"; + + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") print ''; + print ''; print ''; From 4c0fcb2b9a45dbd39fc0cc6b7215649cb1816739 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 14:58:57 +0200 Subject: [PATCH 235/515] Fix total with tax does not include local taxes. To solve, i show both totals. --- htdocs/product/price.php | 73 ++++++++++++++++++++++++++++------------ 1 file changed, 52 insertions(+), 21 deletions(-) diff --git a/htdocs/product/price.php b/htdocs/product/price.php index a701a637aa8..e296d44bd33 100644 --- a/htdocs/product/price.php +++ b/htdocs/product/price.php @@ -1606,9 +1606,12 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; print ''; print ''; + + dol_fiche_head(); + print '
' . $langs->trans("ThirdParty") . '' . $langs->trans("AppliedPricesFrom") . '' . $langs->trans("PriceBase") . '' . $langs->trans("VATRate") . '' . $langs->trans("HT") . '' . $langs->trans("TTC") . '' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '' . $langs->trans("ChangedBy") . ' 
  '; $searchpicto=$form->showFilterAndCheckAddButtons(0); @@ -1814,10 +1798,41 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '
' . $langs->trans("ThirdParty") . '' . $langs->trans("AppliedPricesFrom") . '' . $langs->trans("PriceBase") . '' . $langs->trans("VATRate") . '' . $langs->trans("HT") . '' . $langs->trans("TTC") . '' . $langs->trans("INCT") . '' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . '' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . '' . $langs->trans("ChangedBy") . ' 
" . $langs->trans("Default") . "" . "' . price($object->price) . "' . price($object->price_ttc) . "' . price($resultarray[2]) . '' . price($object->price_min) . '' . price($object->price_min_ttc) . ''; @@ -1851,11 +1870,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) if (count($prodcustprice->lines) > 0) { - $var = false; foreach ($prodcustprice->lines as $line) { - $var = ! $var; - print '
" . $staticsoc->getNomUrl(1) . "" . dol_print_date($line->datec, "dayhour") . "' . vatrate($tva_tx, true, $line->recuperableonly) . "' . price($line->price) . "' . price($line->price_ttc) . "' . price($resultarray[2]) . '' . price($line->price_min) . '' . price($line->price_min_ttc) . '
'; print ''; - print ''; + print ''; $staticsoc = new Societe($db); $staticsoc->fetch($prodcustprice->fk_soc); print ""; @@ -1620,7 +1623,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print ''; // Price base - print ''; print ''; // Price - print ''; // Update all child soc - print ''; print '
' . $langs->trans('ThirdParty') . '' . $langs->trans('ThirdParty') . '" . $staticsoc->getNomUrl(1) . "
'; + print '
'; print $langs->trans('PriceBase'); print ''; @@ -1629,7 +1632,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '
'; + print '
'; $text = $langs->trans('SellingPrice'); print $form->textwithpicto($text, $langs->trans("PrecisionUnitIsLimitedToXDecimals", $conf->global->MAIN_MAX_DECIMALS_UNIT), 1, 1); print ''; @@ -1658,7 +1661,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '
'; + print '
'; print $langs->trans('ForceUpdateChildPriceSoc'); print ''; @@ -1668,7 +1671,9 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '
'; - print '
'; + dol_fiche_end(); + + print '
'; print ''; print '     '; print ''; @@ -1678,7 +1683,10 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) } elseif ($action == 'showlog_customer_price') { - $filter = array('t.fk_product' => $object->id,'t.fk_soc' => GETPOST('socid', 'int')); + // List of all log of prices by customers + print ''."\n"; + + $filter = array('t.fk_product' => $object->id,'t.fk_soc' => GETPOST('socid', 'int')); // Count total nb of records $nbtotalofrecords = ''; @@ -1705,7 +1713,6 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) if (count($prodcustprice->lines) > 0) { - print '
'; print ''; @@ -1718,6 +1725,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) print '' . $langs->trans("VATRate") . ''; print '' . $langs->trans("HT") . ''; print '' . $langs->trans("TTC") . ''; + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") print '' . $langs->trans("INCT") . ''; print '' . $langs->trans("MinPrice") . ' ' . $langs->trans("HT") . ''; print '' . $langs->trans("MinPrice") . ' ' . $langs->trans("TTC") . ''; print '' . $langs->trans("ChangedBy") . ''; @@ -1726,21 +1734,44 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) foreach ($prodcustprice->lines as $line) { - print ''; - // Date - $staticsoc = new Societe($db); - $staticsoc->fetch($line->fk_soc); - - print "" . $staticsoc->getNomUrl(1) . ""; - print "" . dol_print_date($line->datec, "dayhour") . ""; + // Date + $staticsoc = new Societe($db); + $staticsoc->fetch($line->fk_soc); $tva_tx = $line->default_vat_code ? $line->tva_tx.' ('.$line->default_vat_code.')' : $line->tva_tx; - print '' . $langs->trans($line->price_base_type) . ""; + // Line for default price + if ($line->price_base_type=='HT') + { + $pu=$line->price; + } + else + { + $pu=$line->price_ttc; + } + + // Local tax is not saved into table of product. We use value linked to VAT code. + $localtaxarray=getLocalTaxesFromRate($line->tva_tx.($line->default_vat_code?' ('.$line->default_vat_code.')':''), 0, $staticsoc, $mysoc); + // Define part of HT, VAT, TTC + $resultarray=calcul_price_total(1, $pu, 0, $line->tva_tx, 1, 1, 0, $line->price_base_type, $line->recuperableonly, $object->type, $mysoc, $localtaxarray); + // Calcul du total ht sans remise + $total_ht = $resultarray[0]; + $total_vat = $resultarray[1]; + $total_localtax1 = $resultarray[9]; + $total_localtax2 = $resultarray[10]; + $total_ttc = $resultarray[2]; + + print ''; + + print "" . $staticsoc->getNomUrl(1) . ""; + print "" . dol_print_date($line->datec, "dayhour") . ""; + print '' . $langs->trans($line->price_base_type) . ""; print '' . vatrate($tva_tx, true, $line->recuperableonly) . ""; print '' . price($line->price) . ""; print '' . price($line->price_ttc) . ""; + if ($mysoc->localtax1_assuj == "1" || $mysoc->localtax2_assuj == "1") print '' . price($resultarray[2]) . ''; + print '' . price($line->price_min) . ''; print '' . price($line->price_min_ttc) . ''; @@ -1760,7 +1791,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) else if ($action != 'showlog_default_price' && $action != 'edit_price') { // List of all prices by customers - print ''."\n"; + print ''."\n"; // Count total nb of records $nbtotalofrecords = ''; @@ -1872,8 +1903,6 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) { foreach ($prodcustprice->lines as $line) { - print ''; - // Date $staticsoc = new Societe($db); $staticsoc->fetch($line->fk_soc); @@ -1881,7 +1910,7 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) $tva_tx = $line->default_vat_code ? $line->tva_tx.' ('.$line->default_vat_code.')' : $line->tva_tx; // Line for default price - if ($object->price_base_type=='HT') + if ($line->price_base_type=='HT') { $pu=$line->price; } @@ -1891,9 +1920,9 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) } // Local tax is not saved into table of product. We use value linked to VAT code. - $localtaxarray=getLocalTaxesFromRate($object->tva_tx.($object->default_vat_code?' ('.$object->default_vat_code.')':''), 0, $mysoc, $mysoc); + $localtaxarray=getLocalTaxesFromRate($line->tva_tx.($line->default_vat_code?' ('.$line->default_vat_code.')':''), 0, $staticsoc, $mysoc); // Define part of HT, VAT, TTC - $resultarray=calcul_price_total(1, $pu, 0, $object->tva_tx, 1, 1, 0, $object->price_base_type, $object->recuperableonly, $object->type, $mysoc, $localtaxarray); + $resultarray=calcul_price_total(1, $pu, 0, $line->tva_tx, 1, 1, 0, $line->price_base_type, $line->recuperableonly, $object->type, $mysoc, $localtaxarray); // Calcul du total ht sans remise $total_ht = $resultarray[0]; $total_vat = $resultarray[1]; @@ -1901,6 +1930,8 @@ if (! empty($conf->global->PRODUIT_CUSTOMER_PRICES)) $total_localtax2 = $resultarray[10]; $total_ttc = $resultarray[2]; + print ''; + print "" . $staticsoc->getNomUrl(1) . ""; print "" . dol_print_date($line->datec, "dayhour") . ""; From 640f66f01751d51d2771e2b5659ebe924553332e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 17:34:56 +0200 Subject: [PATCH 236/515] Fix SQL syntax --- htdocs/comm/propal/class/propal.class.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/htdocs/comm/propal/class/propal.class.php b/htdocs/comm/propal/class/propal.class.php index a59fefc7a89..86219edba59 100644 --- a/htdocs/comm/propal/class/propal.class.php +++ b/htdocs/comm/propal/class/propal.class.php @@ -909,23 +909,23 @@ class Propal extends CommonObject $sql.= $this->socid; $sql.= ", 0"; $sql.= ", ".$this->remise; - $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'null'); - $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'null'); + $sql.= ", ".($this->remise_percent?$this->db->escape($this->remise_percent):'NULL'); + $sql.= ", ".($this->remise_absolue?$this->db->escape($this->remise_absolue):'NULL'); $sql.= ", 0"; $sql.= ", 0"; $sql.= ", '".$this->db->idate($this->date)."'"; $sql.= ", '".$this->db->idate($now)."'"; $sql.= ", '(PROV)'"; - $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"null"); + $sql.= ", ".($user->id > 0 ? "'".$user->id."'":"NULL"); $sql.= ", '".$this->db->escape($this->note_private)."'"; $sql.= ", '".$this->db->escape($this->note_public)."'"; $sql.= ", '".$this->db->escape($this->modelpdf)."'"; - $sql.= ", ".($this->fin_validite!=''?"'".$this->db->idate($this->fin_validite)."'":"null"); - $sql.= ", ".$this->cond_reglement_id; - $sql.= ", ".$this->mode_reglement_id; + $sql.= ", ".($this->fin_validite!=''?"'".$this->db->idate($this->fin_validite)."'":"NULL"); + $sql.= ", ".($this->cond_reglement_id > 0 ? $this->cond_reglement_id : 'NULL'); + $sql.= ", ".($this->mode_reglement_id > 0 ? $this->mode_reglement_id : 'NULL'); $sql.= ", ".($this->fk_account>0?$this->fk_account:'NULL'); $sql.= ", '".$this->db->escape($this->ref_client)."'"; - $sql.= ", ".($this->date_livraison!=''?"'".$this->db->idate($this->date_livraison)."'":"null"); + $sql.= ", ".($this->date_livraison!=''?"'".$this->db->idate($this->date_livraison)."'":"NULL"); $sql.= ", ".($this->shipping_method_id>0?$this->shipping_method_id:'NULL'); $sql.= ", ".$this->availability_id; $sql.= ", ".$this->demand_reason_id; From 0a7a092080220822e6169827343aa645936aea1f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 19:17:53 +0200 Subject: [PATCH 237/515] FIX Missing ref --- htdocs/install/mysql/migration/5.0.0-6.0.0.sql | 4 ++++ htdocs/install/mysql/tables/llx_holiday.sql | 2 ++ 2 files changed, 6 insertions(+) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index f418a5e6a1f..1994fb10c37 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -70,6 +70,10 @@ ALTER TABLE llx_extrafields ADD COLUMN fielddefault varchar(255); ALTER TABLE llx_c_typent MODIFY COLUMN libelle varchar(64); +ALTER TABLE llx_holiday ADD COLUMN ref varchar(30) NULL; +ALTER TABLE llx_holiday ADD COLUMN ref_ext varchar(255); + + create table llx_notify_def_object ( id integer AUTO_INCREMENT PRIMARY KEY, diff --git a/htdocs/install/mysql/tables/llx_holiday.sql b/htdocs/install/mysql/tables/llx_holiday.sql index 2091dea9541..35982525853 100644 --- a/htdocs/install/mysql/tables/llx_holiday.sql +++ b/htdocs/install/mysql/tables/llx_holiday.sql @@ -19,6 +19,8 @@ CREATE TABLE llx_holiday ( rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, +ref varchar(30) NOT NULL, -- number +ref_ext varchar(255), entity integer DEFAULT 1 NOT NULL, -- Multi company id fk_user integer NOT NULL, fk_user_create integer, From c459d3aa7a22e8e4154c31e3895b18f22c6033d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 19:23:19 +0200 Subject: [PATCH 238/515] FIX user that modify not set --- htdocs/compta/tva/class/tva.class.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/htdocs/compta/tva/class/tva.class.php b/htdocs/compta/tva/class/tva.class.php index 045284bd47c..ff26347576e 100644 --- a/htdocs/compta/tva/class/tva.class.php +++ b/htdocs/compta/tva/class/tva.class.php @@ -173,7 +173,6 @@ class Tva extends CommonObject // Update request $sql = "UPDATE ".MAIN_DB_PREFIX."tva SET"; - $sql.= " tms=".$this->db->idate($this->tms).","; $sql.= " datep=".$this->db->idate($this->datep).","; $sql.= " datev=".$this->db->idate($this->datev).","; @@ -182,9 +181,7 @@ class Tva extends CommonObject $sql.= " note='".$this->db->escape($this->note)."',"; $sql.= " fk_bank=".$this->fk_bank.","; $sql.= " fk_user_creat=".$this->fk_user_creat.","; - $sql.= " fk_user_modif=".$this->fk_user_modif.""; - - + $sql.= " fk_user_modif=".($this->fk_user_modif>0?$this->fk_user_modif:$user->id).""; $sql.= " WHERE rowid=".$this->id; dol_syslog(get_class($this)."::update", LOG_DEBUG); @@ -580,7 +577,7 @@ class Tva extends CommonObject } else { $bank_line_id = $acc->addline($this->datep, $this->type_payment, $this->label, abs($this->amount), '', '', $user); } - + // Update fk_bank into llx_tva. So we know vat line used to generate bank transaction if ($bank_line_id > 0) { @@ -731,7 +728,7 @@ class Tva extends CommonObject { return $this->LibStatut($this->statut,$mode); } - + /** * Renvoi le libelle d'un statut donne * From a026e1d7011c6b6b325543f1835d40d9935be91c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 19:32:03 +0200 Subject: [PATCH 239/515] Close #7095 --- htdocs/compta/tva/index.php | 59 ++++++++++++++++++++++++++++++++----- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php index 105bfcb2bf6..618ba11a37e 100644 --- a/htdocs/compta/tva/index.php +++ b/htdocs/compta/tva/index.php @@ -83,7 +83,7 @@ function pt ($db, $sql, $date) while ($i < $num) { $obj = $db->fetch_object($result); - + print ''; print ''.$obj->dm."\n"; $total = $total + $obj->mm; @@ -147,14 +147,14 @@ for ($m = 1 ; $m < 13 ; $m++ ) { $coll_listsell = vat_by_date($db, $y, 0, 0, 0, $modetax, 'sell', $m); $coll_listbuy = vat_by_date($db, $y, 0, 0, 0, $modetax, 'buy', $m); - + $action = "tva"; $object = array(&$coll_listsell, &$coll_listbuy); $parameters["mode"] = $modetax; $parameters["year"] = $y; $parameters["month"] = $m; $parameters["type"] = 'vat'; - + // Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('externalbalance')); $reshook=$hookmanager->executeHooks('addVatLine',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks @@ -171,7 +171,7 @@ for ($m = 1 ; $m < 13 ; $m++ ) break; } - + print ''; print ''.dol_print_date(dol_mktime(0,0,0,$m,1,$y),"%b %Y").''; @@ -220,22 +220,67 @@ print ''; print '
'; + print load_fiche_titre($langs->trans("VATPaid"), '', ''); /* * Payed */ -$sql = "SELECT SUM(amount) as mm, date_format(f.datev,'%Y-%m') as dm"; +$sql = "SELECT SUM(amount) as mm, date_format(f.datep,'%Y-%m') as dm"; $sql.= " FROM ".MAIN_DB_PREFIX."tva as f"; $sql.= " WHERE f.entity = ".$conf->entity; -$sql.= " AND f.datev >= '".$db->idate(dol_get_first_day($y,1,false))."'"; -$sql.= " AND f.datev <= '".$db->idate(dol_get_last_day($y,12,false))."'"; +$sql.= " AND f.datep >= '".$db->idate(dol_get_first_day($y,1,false))."'"; +$sql.= " AND f.datep <= '".$db->idate(dol_get_last_day($y,12,false))."'"; $sql.= " GROUP BY dm ORDER BY dm ASC"; pt($db, $sql,$langs->trans("Year")." $y"); +print '
'; + + + +if (! empty($conf->global->MAIN_FEATURES_LEVEL)) +{ + /* + * Recap + */ + + print load_fiche_titre($langs->trans("VATRecap"), '', ''); // need to add translation + + $sql1 = "SELECT SUM(amount) as mm, date_format(f.datev,'%Y') as dm"; + $sql1 .= " FROM " . MAIN_DB_PREFIX . "tva as f"; + $sql1 .= " WHERE f.entity = " . $conf->entity; + $sql1 .= " AND f.datev >= '" . $db->idate(dol_get_first_day($y, 1, false)) . "'"; + $sql1 .= " AND f.datev <= '" . $db->idate(dol_get_last_day($y, 12, false)) . "'"; + $sql1 .= " GROUP BY dm ORDER BY dm ASC"; + + $result = $db->query($sql1); + if ($result) { + $obj = $db->fetch_object($result); + print ''; + + print ""; + print ''; // need to add translation + print ''; + print "\n"; + + print ""; + print ''; + print '\n"; + print "\n"; + + $restopay = $total - $obj->mm; + print ""; + print ''; // need to add translation + print ''; + print "\n"; + + print '
' . $langs->trans("VATDue") . '' . price(price2num($total, 1)) . '
' . $langs->trans("VATPaid") . '' . price(price2num($obj->mm, 1)) . "
' . $langs->trans("VATRestopay") . '' . price(price2num($restopay, 1)) . '
'; + } +} + print '
'; llxFooter(); From 608e9e1c82480d55a72f609df6847a0676226adb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 19:48:35 +0200 Subject: [PATCH 240/515] Look and feel v6 (no amount symbol into list) --- htdocs/product/list.php | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/htdocs/product/list.php b/htdocs/product/list.php index f9037c32517..dae7ea7d8c8 100644 --- a/htdocs/product/list.php +++ b/htdocs/product/list.php @@ -846,14 +846,11 @@ else // WAP if (! empty($arrayfields['p.pmp']['checked'])) { - print ''; - if ($obj->tobuy) - { - print price($product_static->pmp, 1, $langs, 1, 2, 2, 'auto'); - } + print ''; + print price($product_static->pmp, 1, $langs); print ''; } - + // Limit alert if (! empty($arrayfields['p.seuil_stock_alerte']['checked'])) { From 0fc6f6920e119f1630cb9a94dfdd72efd802cb87 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:03:14 +0200 Subject: [PATCH 241/515] Update categories.php --- htdocs/accountancy/admin/categories.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/admin/categories.php b/htdocs/accountancy/admin/categories.php index 11913c6d2e9..f9200a575be 100644 --- a/htdocs/accountancy/admin/categories.php +++ b/htdocs/accountancy/admin/categories.php @@ -46,7 +46,7 @@ if ($cat_id == 0) { } // Security check -if (! $user->rights->accounting-->chartofaccount) +if (empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } @@ -164,4 +164,4 @@ if ($action == 'display' || $action == 'delete') { llxFooter(); -$db->close(); \ No newline at end of file +$db->close(); From d880c943ae7961fcf925aea2f542a5e7c4525df5 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:03:39 +0200 Subject: [PATCH 242/515] Update categories_list.php --- htdocs/accountancy/admin/categories_list.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/admin/categories_list.php b/htdocs/accountancy/admin/categories_list.php index 6c2b94d727a..270d882eac7 100644 --- a/htdocs/accountancy/admin/categories_list.php +++ b/htdocs/accountancy/admin/categories_list.php @@ -57,7 +57,7 @@ $rowid=GETPOST('rowid','alpha'); $code=GETPOST('code','alpha'); // Security access -if (! $user->rights->accounting-->chartofaccount) +if (empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } From 51a9c4fad56644701fa6b166f66bb85c8c591ecc Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:03:57 +0200 Subject: [PATCH 243/515] Update defaultaccounts.php --- htdocs/accountancy/admin/defaultaccounts.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/admin/defaultaccounts.php b/htdocs/accountancy/admin/defaultaccounts.php index 60b8424ff3e..ce99bd6296c 100644 --- a/htdocs/accountancy/admin/defaultaccounts.php +++ b/htdocs/accountancy/admin/defaultaccounts.php @@ -42,7 +42,7 @@ $langs->load("salaries"); $langs->load("loan"); // Security check -if (! $user->rights->accounting-->chartofaccount) +if (empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } From 2dd9cb61a6a18ec398607dd4a3d02bcf44313175 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:04:29 +0200 Subject: [PATCH 244/515] Update export.php --- htdocs/accountancy/admin/export.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php index dfbeb09f25e..433448fa688 100644 --- a/htdocs/accountancy/admin/export.php +++ b/htdocs/accountancy/admin/export.php @@ -38,7 +38,7 @@ $langs->load("admin"); $langs->load("accountancy"); // Security check -if (empty($user->admin) || ! $user->rights->accounting-->chartofaccount) +if (empty($user->admin) && empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } From 5eaf49a265a9fb5b10edc2b863ed7dce06eb683c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:05:32 +0200 Subject: [PATCH 245/515] Update journals_list.php --- htdocs/accountancy/admin/journals_list.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/accountancy/admin/journals_list.php b/htdocs/accountancy/admin/journals_list.php index e0e41a776be..eca8a4bdca0 100644 --- a/htdocs/accountancy/admin/journals_list.php +++ b/htdocs/accountancy/admin/journals_list.php @@ -41,7 +41,7 @@ $rowid=GETPOST('rowid','alpha'); $code=GETPOST('code','alpha'); // Security access -if (!$user->rights->accounting->chartofaccount) +if (empty($user->rights->accounting->chartofaccount)) { accessforbidden(); } @@ -743,4 +743,4 @@ function fieldList($fieldlist, $obj='', $tabname='', $context='') print ''; } } -} \ No newline at end of file +} From 3270d141b040c59163ceb2e9b9be85ceaa9a5927 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:07:28 +0200 Subject: [PATCH 246/515] Update index.php --- htdocs/accountancy/admin/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php index ce17979157b..b6aceb52ad4 100644 --- a/htdocs/accountancy/admin/index.php +++ b/htdocs/accountancy/admin/index.php @@ -266,7 +266,7 @@ if (! empty($user->admin)) } -// Param a user $user->rights->accounting-->chartofaccount can access +// Param a user $user->rights->accounting->chartofaccount can access foreach ($list as $key) { print ''; From bd0dba6439d57508ff8f4a14cd7ead54e735b88e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:14:47 +0200 Subject: [PATCH 247/515] Update card.php Better fix for future --- htdocs/fourn/commande/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/fourn/commande/card.php b/htdocs/fourn/commande/card.php index b46b9fde5cd..bbc91bc3871 100644 --- a/htdocs/fourn/commande/card.php +++ b/htdocs/fourn/commande/card.php @@ -878,7 +878,7 @@ if (empty($reshook)) } // Actions to build doc - $upload_dir = $conf->fournisseur->dir_output.'/commande'; + $upload_dir = $conf->fournisseur->commande->dir_output; $permissioncreate = $user->rights->fournisseur->commande->creer; include DOL_DOCUMENT_ROOT.'/core/actions_builddoc.inc.php'; From 749e5eb7f4e94c6ba6551b2b734e745e60b328b6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:24:39 +0200 Subject: [PATCH 248/515] Fix link --- htdocs/compta/bank/transfer.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/htdocs/compta/bank/transfer.php b/htdocs/compta/bank/transfer.php index 88d5e94ed83..0d9a9a94aea 100644 --- a/htdocs/compta/bank/transfer.php +++ b/htdocs/compta/bank/transfer.php @@ -37,6 +37,7 @@ if (! $user->rights->banque->transfer) accessforbidden(); $action = GETPOST('action','alpha'); +$error = 0; /* @@ -54,22 +55,22 @@ if ($action == 'add_confirm') if (! $label) { - $error=1; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Description")), null, 'errors'); } if (! $amount) { - $error=1; + $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("Amount")), null, 'errors'); } if (! GETPOST('account_from','int')) { - $error=1; + $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("TransferFrom")), null, 'errors'); } if (! GETPOST('account_to','int')) { - $error=1; + $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentities("TransferTo")), null, 'errors'); } if (! $error) @@ -86,7 +87,6 @@ if ($action == 'add_confirm') { $db->begin(); - $error=0; $bank_line_id_from=0; $bank_line_id_to=0; $result=0; @@ -114,7 +114,7 @@ if ($action == 'add_confirm') if (! $error) { - $mesgs = $langs->trans("TransferFromToDone","id."\">".$accountfrom->label."","id."\">".$accountto->label."",$amount,$langs->transnoentities("Currency".$conf->currency)); + $mesgs = $langs->trans("TransferFromToDone","id."\">".$accountfrom->label."","id."\">".$accountto->label."",$amount,$langs->transnoentities("Currency".$conf->currency)); setEventMessages($mesgs, null, 'mesgs'); $db->commit(); } @@ -126,6 +126,7 @@ if ($action == 'add_confirm') } else { + $error++; setEventMessages($langs->trans("ErrorFromToAccountsMustDiffers"), null, 'errors'); } } @@ -147,7 +148,7 @@ $label=''; $amount=''; $amount_to=''; -if($error) +if ($error) { $account_from = GETPOST('account_from','int'); $account_to = GETPOST('account_to','int'); @@ -163,7 +164,7 @@ print "

"; print ''; print ''; -print ''; +print ''; print ''; print ''; From 02aa4f7e0c16366e3157011f2702c0d17e2726f0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 20:28:43 +0200 Subject: [PATCH 249/515] Fix permission to show details of project --- htdocs/projet/class/project.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index b22ea32f646..84050012a5a 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -991,7 +991,7 @@ class Project extends CommonObject } $linkclose=''; - if (empty($notooltip) && $user->rights->propal->lire) + if (empty($notooltip) && $user->rights->projet->lire) { if (! empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) { From 4bae65bedc9fa5245835c29fb13d2cc5efe15cad Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 22:04:29 +0200 Subject: [PATCH 250/515] Fix travis --- .../bookkeeping/thirdparty_lettrage.php | 126 ++++++------ .../thirdparty_lettrage_supplier.php | 123 ++++++------ htdocs/accountancy/class/lettering.class.php | 183 +++++++++--------- htdocs/accountancy/journal/sellsjournal.php | 3 +- 4 files changed, 214 insertions(+), 221 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php index 424aa65eb67..a47cecf1453 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php @@ -3,7 +3,7 @@ * Copyright (C) 2005 Laurent Destailleur * Copyright (C) 2013 Olivier Geffroy * Copyright (C) 2013 Florian Henry - * Copyright (C) 2013 Alexandre Spangaro + * Copyright (C) 2013 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ $object->id = $socid; $object->fetch($socid); $form = new Form($db); -$BookKeeping = new lettering($db); +$BookKeeping = new lettering($db); if ($sortorder == "") $sortorder = "ASC"; if ($sortfield == "") $sortfield = "bk.rowid"; @@ -65,11 +65,11 @@ $formaccounting = new FormAccounting($db); if ($action == 'lettering') { $result = $BookKeeping->updatelettrage($_POST['ids']); - -// var_dump($result); + +// var_dump($result); if( $result < 0 ){ setEventMessages('', $BookKeeping->errors, 'errors' ); - $error++; + $error++; } } @@ -77,29 +77,29 @@ if ($action == 'lettering') { if ($action == 'autolettrage') { $result = $BookKeeping->LettrageTiers($socid); - + if( $result < 0 ){ setEventMessages('', $BookKeeping->errors, 'errors' ); - $error++; + $error++; } - + } llxHeader ( '', 'Compta - Grand Livre' ); - - + + /* * Affichage onglets */ $head = societe_prepare_head($object); dol_htmloutput_mesg(is_numeric($error)?'':$error, $errors, 'error'); - + dol_fiche_head($head, 'TabAccounting', $langs->trans("ThirdParty"),0,'company'); - - + + print '
'; @@ -129,7 +129,7 @@ llxHeader ( '', 'Compta - Grand Livre' ); print $form->editfieldval("CustomerAccountancyCode",'customeraccountancycode',$object->code_compta,$object,$user->rights->societe->creer); print ''; print ''; - + // Address print ''; - + print '
'.$langs->trans("Address").''; @@ -147,41 +147,41 @@ llxHeader ( '', 'Compta - Grand Livre' ); if ($object->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$object->country,$langs->trans("CountryIsInEEC"),1,0); else print ($img?$img.' ':'').$object->country; print '
'; - - - + + + $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering_code "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; $sql .= " WHERE (bk.code_tiers = '" . $object->code_compta . "' AND bk.numero_compte = '" .$conf->global->ACCOUNTING_ACCOUNT_CUSTOMER. "' )" ; - + if (dol_strlen ( $search_year )) { $sql .= " AND ( bk.doc_date BETWEEN '" . $search_year . "-0-0' AND '" . ($search_year+1). "-0-0' )"; } - + $sql .= " ORDER BY bk.lettering_code ASC, bk.doc_date ASC" ;//. $db->plimit ( $conf->liste_limit + 1, $offset ); - -// echo $sql; + +// echo $sql; // dol_syslog ( "bookkeping:liste:create sql=" . $sql, LOG_DEBUG ); $resql = $db->query ( $sql ); if ($resql) { $num = $db->num_rows ( $resql ); $i = 0; - + print ''; print ''; print ''; - + print ""; print ''; - print ''; + print ''; print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" ); print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" ); print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" ); @@ -193,10 +193,10 @@ llxHeader ( '', 'Compta - Grand Livre' ); // print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" ); // print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" ); print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" ); - print ''; - print ''; + print ''; + print ''; print "\n"; - + print ''; print ''; print ''; @@ -218,29 +218,29 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print ''; - + $var = false; - - $debit = 0; - $credit = 0; - $solde = 0; - $tmp = ''; + + $debit = 0; + $credit = 0; + $solde = 0; + $tmp = ''; while ( $i < $num ) { $obj = $db->fetch_object ( $resql ); - + if($tmp !=$obj->lettering_code || empty($tmp) ) $tmp =$obj->lettering_code; - - if($tmp !=$obj->lettering_code || empty($obj->lettering_code)) + + if($tmp !=$obj->lettering_code || empty($obj->lettering_code)) $var = ! $var; - - - $debit+= $obj->debit; - $credit+= $obj->credit; - + + + $debit+= $obj->debit; + $credit+= $obj->credit; + $solde+=($obj->credit-$obj->debit); print ""; - + print ''; if(empty($obj->lettering_code)){ print '' . "\n"; - - - + + + print ''; print ''; // print ''; @@ -263,24 +263,24 @@ llxHeader ( '', 'Compta - Grand Livre' ); // print ''; print ''; print ''; - + if(empty($obj->lettering_code)){ print ''; } else print ''; - - print "\n"; - - $i ++; - - + print "\n"; + + $i ++; + + + } - - print ""; - + + print ''; + print '' . "\n"; print ''; // print ''; @@ -292,7 +292,7 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print "\n"; - + print ""; print '' . "\n"; // print ''; @@ -304,19 +304,19 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print "\n"; - + print "
 
' . $obj->rowid . ''; @@ -249,9 +249,9 @@ llxHeader ( '', 'Compta - Grand Livre' ); } else print ''.$obj->doc_type . '' . dol_print_date ( $db->jdate ( $obj->doc_date ), 'day' ) . '' . $obj->doc_ref . '' . $obj->numero_compte . '' . $obj->sens . '' . $obj->code_journal . '' . round($solde, 2) . '' . $obj->lettering_code . '
Mouvement totaux 
Solde Comptable 
"; - + print ''; print 'auto lettering'; print ""; - $db->free ( $resql ); + $db->free($resql); } else { - dol_print_error ( $db ); + dol_print_error($db); } - + // End of page llxFooter(); $db->close(); -?> + diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php index 338a4aef0e6..f5e30ed77af 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php @@ -3,7 +3,7 @@ * Copyright (C) 2005 Laurent Destailleur * Copyright (C) 2013 Olivier Geffroy * Copyright (C) 2013 Florian Henry - * Copyright (C) 2013 Alexandre Spangaro + * Copyright (C) 2013 Alexandre Spangaro * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -52,7 +52,7 @@ $object->id = $socid; $object->fetch($socid); $form = new Form($db); -$BookKeeping = new lettering($db); +$BookKeeping = new lettering($db); if ($sortorder == "") $sortorder = "ASC"; if ($sortfield == "") $sortfield = "bk.rowid"; @@ -67,11 +67,11 @@ $formaccounting = new FormAccounting($db); if ($action == 'lettering') { $result = $BookKeeping->updatelettrage($_POST['ids']); - -// var_dump($result); + +// var_dump($result); if( $result < 0 ){ setEventMessages('', $BookKeeping->errors, 'errors' ); - $error++; + $error++; } } @@ -79,29 +79,29 @@ if ($action == 'lettering') { if ($action == 'autolettrage') { $result = $BookKeeping->LettrageTiers($socid); - + if( $result < 0 ){ setEventMessages('', $BookKeeping->errors, 'errors' ); - $error++; + $error++; } - + } llxHeader ( '', 'Compta - Grand Livre' ); - - + + /* * Affichage onglets */ $head = societe_prepare_head($object); dol_htmloutput_mesg(is_numeric($error)?'':$error, $errors, 'error'); - + dol_fiche_head($head, 'TabAccounting', $langs->trans("ThirdParty"),0,'company'); - - + + print ''; @@ -131,7 +131,7 @@ llxHeader ( '', 'Compta - Grand Livre' ); print $form->editfieldval("SupplierAccountancyCode",'supplieraccountancycode',$object->code_compta_fournisseur,$object,$user->rights->societe->creer); print ''; print ''; - + // Address print ''; - + print '
'.$langs->trans("Address").''; @@ -149,49 +149,49 @@ llxHeader ( '', 'Compta - Grand Livre' ); if ($object->isInEEC()) print $form->textwithpicto(($img?$img.' ':'').$object->country,$langs->trans("CountryIsInEEC"),1,0); else print ($img?$img.' ':'').$object->country; print '
'; - -// print_r($soc); -// exit; + +// print_r($soc); +// exit; // [code_compta] => 411DOUA // [code_compta_fournisseur] => 401SUPPCODE - + /* * Mode Liste * * * */ - + $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.lettering "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; $sql .= " WHERE (bk.code_tiers = '" . $object->code_compta_fournisseur . "' AND bk.numero_compte = '" .$conf->global->ACCOUNTING_ACCOUNT_SUPPLIER. "' )" ; - - + + if (dol_strlen ( $search_year )) { $sql .= " AND ( bk.doc_date BETWEEN '" . $search_year . "-0-0' AND '" . ($search_year+1). "-0-0' )"; } - + $sql .= " ORDER BY bk.lettering ASC, bk.doc_date ASC" ;//. $db->plimit ( $conf->liste_limit + 1, $offset ); - -// echo $sql; + +// echo $sql; // dol_syslog ( "bookkeping:liste:create sql=" . $sql, LOG_DEBUG ); $resql = $db->query ( $sql ); if ($resql) { $num = $db->num_rows ( $resql ); $i = 0; - + print '
'; print ''; print ''; - + print ""; print ''; - print ''; + print ''; print_liste_field_titre ( $langs->trans ( "Doctype" ), "liste.php", "bk.doc_type" ); print_liste_field_titre ( $langs->trans ( "Docdate" ), "liste.php", "bk.doc_date" ); print_liste_field_titre ( $langs->trans ( "Docref" ), "liste.php", "bk.doc_ref" ); @@ -203,10 +203,10 @@ llxHeader ( '', 'Compta - Grand Livre' ); print_liste_field_titre ( $langs->trans ( "Amount" ), "liste.php", "bk.montant" ); print_liste_field_titre ( $langs->trans ( "Sens" ), "liste.php", "bk.sens" ); print_liste_field_titre ( $langs->trans ( "Codejournal" ), "liste.php", "bk.code_journal" ); - print ''; - print ''; + print ''; + print ''; print "\n"; - + print ''; print ''; print ''; @@ -228,29 +228,29 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print ''; - + $var = false; - - $debit = 0; - $credit = 0; - $solde = 0; - $tmp = ''; + + $debit = 0; + $credit = 0; + $solde = 0; + $tmp = ''; while ( $i < $num ) { $obj = $db->fetch_object ( $resql ); - + if($tmp !=$obj->lettering || empty($tmp) ) $tmp =$obj->lettering; - - if($tmp !=$obj->lettering || empty($obj->lettering)) + + if($tmp !=$obj->lettering || empty($obj->lettering)) $var = ! $var; - - - $debit+= $obj->debit; - $credit+= $obj->credit; - + + + $debit+= $obj->debit; + $credit+= $obj->credit; + $solde+=($obj->credit-$obj->debit); print ""; - + print ''; if(empty($obj->lettering)){ print '' . "\n"; - - - + + + print ''; print ''; // print ''; @@ -273,24 +273,20 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print ''; - + if(empty($obj->lettering)){ print ''; } else print ''; - + print "\n"; - + $i ++; - - - - } - - print ""; - + + print ''; + print '' . "\n"; print ''; print ''; @@ -302,7 +298,7 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print "\n"; - + print ""; print '' . "\n"; print ''; @@ -314,9 +310,9 @@ llxHeader ( '', 'Compta - Grand Livre' ); print ''; print ''; print "\n"; - + print "
 
' . $obj->rowid . ''; @@ -259,9 +259,9 @@ llxHeader ( '', 'Compta - Grand Livre' ); } else print ''.$obj->doc_type . '' . dol_print_date ( $db->jdate ( $obj->doc_date ), 'day' ) . '' . $obj->doc_ref . '' . $obj->numero_compte . '' . $obj->sens . '' . $obj->code_journal . '' . round($solde, 2) . '' . $obj->lettering . '
Mouvement totaux 
Solde Comptable 
"; - + print ''; print 'auto lettering'; print ""; @@ -325,8 +321,7 @@ llxHeader ( '', 'Compta - Grand Livre' ); dol_print_error ( $db ); } - + // End of page llxFooter(); $db->close(); -?> diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index 77e1f897f97..f6101f2ccf4 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -22,33 +22,34 @@ * \ingroup Accounting Expert * \brief Fichier de la classe des comptes comptable */ -error_reporting(0); -dol_include_once ( "/accountancy/class/bookkeeping.class.php"); -dol_include_once ( "/societe/class/societe.class.php"); -dol_include_once ( "/core/lib/date.lib.php"); // see if not useless for dol(now) +include_once DOL_DOCUMENT_ROOT."/accountancy/class/bookkeeping.class.php"; +include_once DOL_DOCUMENT_ROOT."/societe/class/societe.class.php"; +include_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; -class lettering - extends BookKeeping { - +/** + * Class lettering + */ +class lettering extends BookKeeping { + public function LettrageTiers($socid){ - - $db = $this->db; - + + $db = $this->db; + $object = new Societe($this->db); $object->id = $socid; $object->fetch($socid); - if( $object->code_compta == '411CUSTCODE') - $object->code_compta = ''; - - if( $object->code_compta_fournisseur == '401SUPPCODE') - $object->code_compta_fournisseur = ''; + if( $object->code_compta == '411CUSTCODE') + $object->code_compta = ''; + + if( $object->code_compta_fournisseur == '401SUPPCODE') + $object->code_compta_fournisseur = ''; + - $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.lettering_code, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.date_lettering "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; $sql .= " WHERE code_journal = 'BQ' AND ( "; @@ -58,17 +59,17 @@ class lettering $sql .= " OR "; if(!empty($object->code_compta_fournisseur) ) $sql .= " bk.code_tiers = '" . $object->code_compta_fournisseur . "' "; - + $sql .= " ) AND ( bk.date_lettering ='' OR bk.date_lettering IS NULL ) AND bk.lettering_code !='' "; - + $sql .= " GROUP BY bk.lettering_code "; - - + + $resql = $db->query ( $sql ); if ($resql) { $num = $db->num_rows ( $resql ); $i = 0; - + while ( $i < $num ) { $obj = $db->fetch_object ( $resql ); $i++; @@ -84,7 +85,7 @@ class lettering if(!empty($object->code_compta_fournisseur) ) $sql .= " bk.code_tiers = '" . $object->code_compta_fournisseur . "' "; $sql .= " ) "; -// echo $sql; +// echo $sql; $resql2 = $db->query ( $sql ); if ($resql2) { $num2 = $db->num_rows ( $resql2 ); @@ -95,25 +96,25 @@ class lettering $i2++; $ids[] = $obj2->rowid; } - - + + if(count($ids) > 1 ){ $result = $this->updatelettrage($ids); - - // var_dump($result); + + // var_dump($result); // if( $result < 0 ){ // setEventMessages('', $BookKeeping->errors, 'errors' ); -// $error++; -// +// $error++; +// // } } } } } - - + + /** - Prise en charge des lettering complexe avec prelevment , virement + Prise en charge des lettering complexe avec prelevment , virement */ $sql = "SELECT bk.rowid, bk.doc_date, bk.doc_type, bk.doc_ref, bk.code_tiers, bk.numero_compte , bk.label_compte, bk.debit , bk.credit, bk.montant , bk.sens , bk.code_journal , bk.piece_num, bk.date_lettering, bu.url_id , bu.type "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk"; @@ -125,29 +126,29 @@ class lettering $sql .= " OR "; if(!empty($object->code_compta_fournisseur) ) $sql .= " bk.code_tiers = '" . $object->code_compta_fournisseur . "' "; - + $sql .= " ) AND date_lettering ='' "; $sql .= " GROUP BY bk.lettering_code "; - -// echo $sql; -// + +// echo $sql; +// $resql = $db->query ( $sql ); if ($resql) { $num = $db->num_rows ( $resql ); $i = 0; - + while ( $i < $num ) { $obj = $db->fetch_object ( $resql ); $ids = array(); $i++; - - // print_r($obj); - - - if($obj->type =='payment_supplier' ) { + // print_r($obj); + + + + if($obj->type =='payment_supplier' ) { $ids[] = $obj->rowid; - + $sql= 'SELECT bk.rowid, facf.ref, facf.ref_supplier, payf.fk_bank '; $sql.= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid"; @@ -166,12 +167,12 @@ class lettering if(!empty($object->code_compta_fournisseur) ) $sql .= " bk.code_tiers = '" . $object->code_compta_fournisseur . "' "; $sql .= " ) "; - // echo $sql; - // exit; + // echo $sql; + // exit; } elseif($obj->type =='payment' ){ $ids[] = $obj->rowid; - + $sql= 'SELECT bk.rowid,fac.facnumber , pay.fk_bank '; $sql.= " FROM " . MAIN_DB_PREFIX . "facture fac "; $sql.= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid"; @@ -188,108 +189,108 @@ class lettering $sql .= " bk.code_tiers = '" . $object->code_compta_fournisseur . "' "; $sql .= " ) "; - // echo $sql; + // echo $sql; } - - - + + + $resql2 = $db->query ( $sql ); if ($resql2) { $num2 = $db->num_rows ( $resql2 ); $i2 = 0; - + while ( $i2 < $num2 ) { $obj2 = $db->fetch_object ( $resql2 ); $i2++; $ids[] = $obj2->rowid; } - - // print_r($ids); + + // print_r($ids); // exit; if(count($ids) > 1 ){ $result = $this->updatelettrage($ids); - - // var_dump($result); + + // var_dump($result); // if( $result < 0 ){ // setEventMessages('', $BookKeeping->errors, 'errors' ); -// $error++; -// +// $error++; +// // } } - - // exit; + + // exit; } } } } - - + + public function updatelettrage($ids, $notrigger=false){ - $error = 0; - + $error = 0; + $sql = "SELECT lettering_code FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE "; $sql .= " lettering_code != '' GROUP BY lettering_code ORDER BY lettering_code DESC limit 1; "; -// echo $sql; +// echo $sql; $result = $this->db->query ( $sql ); if ($result) { $obj = $this->db->fetch_object ( $result ); - $lettre = (empty($obj->lettering_code)? 'AAA' : $obj->lettering_code ); + $lettre = (empty($obj->lettering_code)? 'AAA' : $obj->lettering_code ); if(!empty($obj->lettering_code)) - $lettre++; + $lettre++; } else{ - $this->errors[] = 'Error'.$this->db->lasterror();; + $this->errors[] = 'Error'.$this->db->lasterror();; $error++; } -// var_dump(__line__, $error); - +// var_dump(__line__, $error); + $sql = "SELECT SUM(ABS(debit)) as deb, SUM(ABS(credit)) as cred FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping WHERE "; $sql .= " rowid IN (".implode(',', $ids).") "; $result = $this->db->query ( $sql ); if ($result) { $obj = $this->db->fetch_object ( $result ); -// print_r($obj); +// print_r($obj); if( !(round(abs($obj->deb),2) === round(abs($obj->cred),2)) ){ -// echo $sql; -// print_r($obj); - $this->errors[] = 'Total not exacts '.round(abs($obj->deb),2).' vs '. round(abs($obj->cred),2); - $error++; +// echo $sql; +// print_r($obj); + $this->errors[] = 'Total not exacts '.round(abs($obj->deb),2).' vs '. round(abs($obj->cred),2); + $error++; } } else{ - $this->errors[] = 'Erreur sql'.$this->db->lasterror();; + $this->errors[] = 'Erreur sql'.$this->db->lasterror();; $error++; } - + // Update request - + $now = dol_now(); - + $sql = "UPDATE ".MAIN_DB_PREFIX."accounting_bookkeeping SET"; $sql.= " lettering_code='".$lettre."'"; - $sql.= " , date_lettering = " .$now ; // todo correct date it's false + $sql.= " , date_lettering = " .$now ; // todo correct date it's false $sql.= " WHERE rowid IN (".implode(',', $ids).") "; -// echo $sql ; -// -// var_dump(__line__, $error); -// print_r($this->errors); -// exit; +// echo $sql ; +// +// var_dump(__line__, $error); +// print_r($this->errors); +// exit; $this->db->begin(); - + dol_syslog(get_class($this)."::update sql=".$sql, LOG_DEBUG); $resql = $this->db->query($sql); if (! $resql) { $error++; $this->errors[]="Error ".$this->db->lasterror(); } - + if (! $error) { if (! $notrigger) { // Uncomment this and change MYOBJECT to your own tag if you // want this action calls a trigger. - + //// Call triggers //include_once DOL_DOCUMENT_ROOT . '/core/class/interfaces.class.php'; //$interface=new Interfaces($this->db); @@ -298,7 +299,7 @@ class lettering //// End call triggers } } -// var_dump(__line__, $error); +// var_dump(__line__, $error); // Commit or rollback if ($error) { @@ -308,8 +309,8 @@ class lettering // $this->error.=($this->error?', '.$errmsg:$errmsg); // } $this->db->rollback(); -// echo $this->error; -// var_dump(__line__, $error); +// echo $this->error; +// var_dump(__line__, $error); return -1*$error; } else @@ -318,10 +319,6 @@ class lettering return 1; } } - } - - -?> diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 54af643df54..5060397fc6a 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -1,4 +1,4 @@ - * Copyright (C) 2007-2010 Jean Heimburger * Copyright (C) 2011 Juanjo Menent @@ -28,6 +28,7 @@ * \ingroup Advanced accountancy * \brief Page with sells journal */ + require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/report.lib.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/date.lib.php'; From eff4282cc254534daf6fd85d91588f7bf75bf6d9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 22:19:01 +0200 Subject: [PATCH 251/515] Clean files --- dev/resources/iso-normes/sample_FEC_file.txt | 2 +- dev/tools/rmphpclosingtag.sh | 23 ------------- .../bookkeeping/thirdparty_lettrage.php | 33 ++++++++++++------- .../thirdparty_lettrage_supplier.php | 30 ++++++++++------- htdocs/core/lib/functions2.lib.php | 0 htdocs/core/tpl/objectline_view.tpl.php | 0 .../lib/swiftmailer_generate_mimes_config.php | 0 .../template/scripts/myobject.php | 0 8 files changed, 41 insertions(+), 47 deletions(-) delete mode 100755 dev/tools/rmphpclosingtag.sh mode change 100755 => 100644 htdocs/core/lib/functions2.lib.php mode change 100755 => 100644 htdocs/core/tpl/objectline_view.tpl.php mode change 100755 => 100644 htdocs/includes/swiftmailer/lib/swiftmailer_generate_mimes_config.php mode change 100755 => 100644 htdocs/modulebuilder/template/scripts/myobject.php diff --git a/dev/resources/iso-normes/sample_FEC_file.txt b/dev/resources/iso-normes/sample_FEC_file.txt index 5ca795af5c2..8ca50c92617 100644 --- a/dev/resources/iso-normes/sample_FEC_file.txt +++ b/dev/resources/iso-normes/sample_FEC_file.txt @@ -1,4 +1,4 @@ -JOURNALCODE JOURNALLIB ECRITURENUM ECRITUREDATE COMPTENUM COMPTELIB COMPAUXNUM COMPAUXLIB PIECEREF PIECEDATE ECRITURELIB DEBIT CREDIT ECRITURELET DATELET VALIDDATE MONTANTDEVISE IDEVISE +JOURNALCODE JOURNALLIB ECRITURENUM ECRITUREDATE COMPTENUM COMPTELIB COMPAUXNUM COMPAUXLIB PIECEREF PIECEDATE ECRITURELIB DEBIT CREDIT ECRITURELET DATELET VALIDDATE MONTANTDEVISE IDEVISE Banque Banque 17293 20170109 401PPRO PUBLI-PROV L08 20170109 PPRO domiciliation 1TR 187,20 0,00 20170109 Banque Banque 17293 20170109 5121CRA CR AGRICOLE L08 20170109 PPRO domiciliation 1TR 0,00 187,20 20170109 Banque Banque 17295 20170109 401ORPA ORANGE PARIS Report 20170109 ORPA adsl par 12 96,00 0,00 20170109 diff --git a/dev/tools/rmphpclosingtag.sh b/dev/tools/rmphpclosingtag.sh deleted file mode 100755 index ec755bc399b..00000000000 --- a/dev/tools/rmphpclosingtag.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/bin/bash -# vim:ft=sh:ts=3:sts=3:sw=3:et: - -### -# Strips the closing php tag `?>` and any following blank lines from the -# end of any PHP file in the current working directory and sub-directories. Files -# with non-whitespace characters following the closing tag will not be affected. -# -# Author: Bryan C. Geraghty -# Date: 2009-10-28 -# Source: http://bryan.ravensight.org/2010/07/remove-php-closing-tag/ -## - -FILES=$(pcregrep -rnM --include='^.*\.php$' '^\?\>(?=([\s\n]+)?$(?!\n))' .); - -for MATCH in $FILES; -do - FILE=`echo $MATCH | awk -F ':' '{print $1}'`; - TARGET=`echo $MATCH | awk -F ':' '{print $2}'`; - LINE_COUNT=`wc -l $FILE | awk -F " " '{print $1}'`; - echo "Removing lines ${TARGET} through ${LINE_COUNT} from file $FILE..."; - sed -i "${TARGET},${LINE_COUNT}d" $FILE; -done; diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php index a47cecf1453..cddeff27651 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage.php @@ -34,12 +34,24 @@ require_once DOL_DOCUMENT_ROOT . '/accountancy/class/lettering.class.php'; require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; -$page = GETPOST ( "page" ); -$sortorder = GETPOST ( "sortorder" ); -$search_year = GETPOST ( "search_year" ); -$sortfield = GETPOST ( "sortfield" ); -$action = GETPOST ( 'action', 'alpha' ); +$action=GETPOST('action','aZ09'); +$massaction=GETPOST('massaction','alpha'); +$show_files=GETPOST('show_files','int'); +$confirm=GETPOST('confirm','alpha'); +$toselect = GETPOST('toselect', 'array'); +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if ($sortorder == "") $sortorder = "ASC"; +if ($sortfield == "") $sortfield = "bk.rowid"; + +$search_year = GETPOST ( "search_year" ); // Security check $socid = GETPOST("socid",'int'); @@ -48,20 +60,17 @@ $socid = GETPOST("socid",'int'); $object = new Societe($db); $object->id = $socid; $object->fetch($socid); + + $form = new Form($db); - $BookKeeping = new lettering($db); - -if ($sortorder == "") $sortorder = "ASC"; -if ($sortfield == "") $sortfield = "bk.rowid"; - -$offset = $conf->liste_limit * $page; - $formaccounting = new FormAccounting($db); + /* * Action */ + if ($action == 'lettering') { $result = $BookKeeping->updatelettrage($_POST['ids']); diff --git a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php index f5e30ed77af..7dfb7067a31 100644 --- a/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php +++ b/htdocs/accountancy/bookkeeping/thirdparty_lettrage_supplier.php @@ -36,11 +36,24 @@ require_once DOL_DOCUMENT_ROOT . '/societe/class/societe.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/company.lib.php'; -$page = GETPOST ( "page" ); -$sortorder = GETPOST ( "sortorder" ); +$action=GETPOST('action','aZ09'); +$massaction=GETPOST('massaction','alpha'); +$show_files=GETPOST('show_files','int'); +$confirm=GETPOST('confirm','alpha'); +$toselect = GETPOST('toselect', 'array'); + +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST("sortfield",'alpha'); +$sortorder = GETPOST("sortorder",'alpha'); +$page = GETPOST("page",'int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; +$pageprev = $page - 1; +$pagenext = $page + 1; +if ($sortorder == "") $sortorder = "ASC"; +if ($sortfield == "") $sortfield = "bk.rowid"; + $search_year = GETPOST ( "search_year" ); -$sortfield = GETPOST ( "sortfield" ); -$action = GETPOST ( 'action', 'alpha' ); // Security check @@ -50,17 +63,12 @@ $socid = GETPOST("socid",'int'); $object = new Societe($db); $object->id = $socid; $object->fetch($socid); + $form = new Form($db); - $BookKeeping = new lettering($db); - -if ($sortorder == "") $sortorder = "ASC"; -if ($sortfield == "") $sortfield = "bk.rowid"; - -$offset = $conf->liste_limit * $page; - $formaccounting = new FormAccounting($db); + /* * Action */ diff --git a/htdocs/core/lib/functions2.lib.php b/htdocs/core/lib/functions2.lib.php old mode 100755 new mode 100644 diff --git a/htdocs/core/tpl/objectline_view.tpl.php b/htdocs/core/tpl/objectline_view.tpl.php old mode 100755 new mode 100644 diff --git a/htdocs/includes/swiftmailer/lib/swiftmailer_generate_mimes_config.php b/htdocs/includes/swiftmailer/lib/swiftmailer_generate_mimes_config.php old mode 100755 new mode 100644 diff --git a/htdocs/modulebuilder/template/scripts/myobject.php b/htdocs/modulebuilder/template/scripts/myobject.php old mode 100755 new mode 100644 From fbca2442120f5e26fac40bc72a323958bd56950b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 7 Jul 2017 23:19:15 +0200 Subject: [PATCH 252/515] Fix must go back to next version --- htdocs/install/step5.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index 81700c14824..28594c0e6c4 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -41,11 +41,15 @@ $action=GETPOST('action', 'alpha'); // Define targetversion used to update MAIN_VERSION_LAST_INSTALL for first install // or MAIN_VERSION_LAST_UPGRADE for upgrade. -$targetversion=DOL_VERSION; // It it's last upgrade +$targetversion=DOL_VERSION; // If it's latest upgrade if (! empty($action) && preg_match('/upgrade/i', $action)) // If it's an old upgrade { $tmp=explode('_', $action, 2); - if ($tmp[0]=='upgrade' && ! empty($tmp[1])) $targetversion=$tmp[1]; + if ($tmp[0]=='upgrade') + { + //if (! empty($tmp[1])) $targetversion=$tmp[1]; + $targetversion=$versionto; + } } $langs->load("admin"); From e1ba69eee02949c8e05cbaa9e9d10a28e1bee034 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 00:19:30 +0200 Subject: [PATCH 253/515] Fix edit of automatic event should keep its type. --- htdocs/comm/action/card.php | 11 +++++++++-- htdocs/comm/action/listactions.php | 8 +++++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php index 5e38a85898e..14ab91a2f31 100644 --- a/htdocs/comm/action/card.php +++ b/htdocs/comm/action/card.php @@ -955,8 +955,15 @@ if ($id > 0) // Type of event if (! empty($conf->global->AGENDA_USE_EVENT_TYPE)) { - print ''.$langs->trans("Type").''; - $formactions->select_type_actions(GETPOST("actioncode")?GETPOST("actioncode"):$object->type_code, "actioncode","systemauto"); + print ''.$langs->trans("Type").''; + if ($object->type_code != 'AC_OTH_AUTO') + { + $formactions->select_type_actions(GETPOST("actioncode")?GETPOST("actioncode"):$object->type_code, "actioncode","systemauto"); + } + else + { + print ''.$langs->trans("Action".$object->type_code); + } print ''; } diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index 55f73575f78..9cb14454cd5 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -347,11 +347,13 @@ if ($resql) if ($user->rights->agenda->myactions->create || $user->rights->agenda->allactions->create) { - $newparam.='&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$year; + $tmpforcreatebutton=dol_getdate(dol_now(), true); + + $newparam.='&month='.str_pad($month, 2, "0", STR_PAD_LEFT).'&year='.$tmpforcreatebutton['year']; //$param='month='.$monthshown.'&year='.$year; $hourminsec='100000'; - $link = ''; + $link = ''; $link.= $langs->trans("NewAction"); $link.= ''; } @@ -527,7 +529,7 @@ if ($resql) // Status/Percent $datep=$db->jdate($obj->datep); - print ''.$actionstatic->LibStatut($obj->percent,3,1,$datep).''; + print ''.$actionstatic->LibStatut($obj->percent,3,0,$datep).''; print ''; From a9468ad84aea3abbd9752bd1521cc50630be467d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 00:42:55 +0200 Subject: [PATCH 254/515] Look and feel v6 --- htdocs/adherents/subscription/card.php | 40 +++++++++++++------------- htdocs/adherents/subscription/info.php | 14 ++++++++- htdocs/adherents/type.php | 29 ++++++++++--------- htdocs/langs/en_US/products.lang | 4 +-- htdocs/product/reassortlot.php | 26 +++++------------ 5 files changed, 57 insertions(+), 56 deletions(-) diff --git a/htdocs/adherents/subscription/card.php b/htdocs/adherents/subscription/card.php index 5cb10e31e6d..3faa45d7d84 100644 --- a/htdocs/adherents/subscription/card.php +++ b/htdocs/adherents/subscription/card.php @@ -187,7 +187,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') print ""; print ""; print "fk_bank."\">"; - + dol_fiche_head($head, 'general', $langs->trans("Subscription"), 0, 'payment'); $linkback = ''.$langs->trans("BackToList").''; @@ -199,7 +199,7 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') print ''.$langs->trans("Ref").''; print ''; print $form->showrefnav($object, 'rowid', $linkback, 1); - print ''; + print ''; // Member $adh->ref=$adh->getFullName($langs); @@ -248,15 +248,15 @@ if ($user->rights->adherent->cotisation->creer && $action == 'edit') } print ''; - + dol_fiche_end(); - + print '
'; print ''; print '       '; print ''; print '
'; - + print ''; print "\n"; } @@ -274,7 +274,7 @@ if ($rowid && $action != 'edit') $head = subscription_prepare_head($object); - dol_fiche_head($head, 'general', $langs->trans("Subscription"), '', 'payment'); + dol_fiche_head($head, 'general', $langs->trans("Subscription"), -1, 'payment'); // Confirmation to delete subscription if ($action == 'delete') @@ -292,13 +292,13 @@ if ($rowid && $action != 'edit') $linkback = ''.$langs->trans("BackToList").''; dol_banner_tab($object, 'rowid', $linkback, 1); - + print '
'; - + print '
'; - + print ''; - + // Member $adh->ref=$adh->getFullName($langs); print ''; @@ -349,7 +349,7 @@ if ($rowid && $action != 'edit') print "
\n"; print '
'; - + print ''; dol_fiche_end(); @@ -379,11 +379,11 @@ if ($rowid && $action != 'edit') } print '
'; - - + + print '
'; print ''; // ancre - + // Documents generes /* $filename = dol_sanitizeFileName($object->ref); @@ -391,18 +391,18 @@ if ($rowid && $action != 'edit') $urlsource = $_SERVER['PHP_SELF'] . '?facid=' . $object->id; $genallowed = $user->rights->facture->creer; $delallowed = $user->rights->facture->supprimer; - + print $formfile->showdocuments('facture', $filename, $filedir, $urlsource, $genallowed, $delallowed, $object->modelpdf, 1, 0, 0, 28, 0, '', '', '', $soc->default_lang); $somethingshown = $formfile->numoffiles; */ // Show links to link elements //$linktoelem = $form->showLinkToObjectBlock($object, null, array('subscription')); $somethingshown = $form->showLinkedObjectBlock($object, ''); - + // Show links to link elements /*$linktoelem = $form->showLinkToObjectBlock($object,array('order')); if ($linktoelem) print ($somethingshown?'':'
').$linktoelem; - + // Link for paypal payment /* if (! empty($conf->paypal->enabled) && $object->statut != 0) { @@ -411,15 +411,15 @@ if ($rowid && $action != 'edit') } */ print '
'; - + // List of actions on element /* include_once DOL_DOCUMENT_ROOT . '/core/class/html.formactions.class.php'; $formactions = new FormActions($db); $somethingshown = $formactions->showactions($object, 'invoice', $socid); */ - - print '
'; + + print '
'; } diff --git a/htdocs/adherents/subscription/info.php b/htdocs/adherents/subscription/info.php index 5c5799ec2a5..c83771d22ff 100644 --- a/htdocs/adherents/subscription/info.php +++ b/htdocs/adherents/subscription/info.php @@ -53,7 +53,17 @@ $result = $object->fetch($rowid); $head = subscription_prepare_head($object); -dol_fiche_head($head, 'info', $langs->trans("Subscription"), '', 'payment'); +dol_fiche_head($head, 'info', $langs->trans("Subscription"), -1, 'payment'); + +$linkback = ''.$langs->trans("BackToList").''; + +dol_banner_tab($object, 'rowid', $linkback, 1); + +print '
'; + +print '
'; + +print '
'; $object->info($rowid); @@ -64,5 +74,7 @@ print ''; print '
'; +dol_fiche_end(); + llxFooter(); $db->close(); diff --git a/htdocs/adherents/type.php b/htdocs/adherents/type.php index f54c89ffeba..a7b9fd7d3e8 100644 --- a/htdocs/adherents/type.php +++ b/htdocs/adherents/type.php @@ -347,8 +347,9 @@ if ($rowid > 0) /* - * Hotbar + * Buttons */ + print '
'; // Edit @@ -482,18 +483,8 @@ if ($rowid > 0) print '
'; print ''."\n"; - print ''; - print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Nature"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); - print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); - print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); - print "\n"; - // Lignes des champs de filtre - print ''; + print ''; print ''; @@ -516,6 +507,16 @@ if ($rowid > 0) print "\n"; + print ''; + print_liste_field_titre($langs->trans("Name")." / ".$langs->trans("Company"),$_SERVER["PHP_SELF"],"d.lastname",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Login"),$_SERVER["PHP_SELF"],"d.login",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Nature"),$_SERVER["PHP_SELF"],"d.morphy",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("EMail"),$_SERVER["PHP_SELF"],"d.email",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"d.statut,d.datefin",$param,"","",$sortfield,$sortorder); + print_liste_field_titre($langs->trans("EndSubscription"),$_SERVER["PHP_SELF"],"d.datefin",$param,"",'align="center"',$sortfield,$sortorder); + print_liste_field_titre($langs->trans("Action"),$_SERVER["PHP_SELF"],"",$param,"",'width="60" align="center"',$sortfield,$sortorder); + print "\n"; + while ($i < $num && $i < $conf->liste_limit) { $objp = $db->fetch_object($resql); @@ -645,9 +646,9 @@ if ($rowid > 0) print '
'; print '
'; - print ''; + print ''; - print ''; + print ''; print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + } + + print '
'.$langs->trans("Ref").''.$object->id.'
'.$langs->trans("Ref").''.$object->id.'
'.$langs->trans("Label").'
'.$langs->trans("Label").'
'.$langs->trans("SubscriptionRequired").''; print $form->selectyesno("subscription",$object->subscription,1); diff --git a/htdocs/langs/en_US/products.lang b/htdocs/langs/en_US/products.lang index 3c47b188972..f33968e0ff9 100644 --- a/htdocs/langs/en_US/products.lang +++ b/htdocs/langs/en_US/products.lang @@ -26,8 +26,8 @@ ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Product for purchase only -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase ServicesOnSaleOnly=Services for sale only ServicesOnPurchaseOnly=Services for purchase only diff --git a/htdocs/product/reassortlot.php b/htdocs/product/reassortlot.php index 1d45e93590c..d3694e039eb 100644 --- a/htdocs/product/reassortlot.php +++ b/htdocs/product/reassortlot.php @@ -232,7 +232,7 @@ if ($resql) $moreforfilter.=''; } //$moreforfilter.=$langs->trans("StockTooLow").' '; - + if (! empty($moreforfilter)) { print '
'; @@ -257,7 +257,7 @@ if ($resql) print '
'; print ''; - + // Lignes des champs de filtre print ''; print '\n"; - + $product_static=new Product($db); $warehousetmp=new Entrepot($db); while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); - + // Multilangs if (! empty($conf->global->MAIN_MULTILANGS)) // si l'option est active { @@ -335,20 +335,20 @@ if ($resql) $product_static->label = $objp->label; $product_static->type=$objp->fk_product_type; $product_static->entity=$objp->entity; - + $warehousetmp->id=$objp->fk_entrepot; $warehousetmp->ref=$objp->warehouse_ref; $warehousetmp->label=$objp->warehouse_ref; $warehousetmp->fk_parent=$objp->warehouse_parent; print ''; - + // Ref print ''; - + // Label print ''; @@ -391,18 +391,6 @@ if ($resql) print ''; print ''; - if ($num > $conf->liste_limit) - { - if ($sref || $snom || $sall || GETPOST('search')) - { - print_barre_liste('', $page, "reassort.php", "&sref=".$sref."&snom=".$snom."&sall=".$sall."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); - } - else - { - print_barre_liste('', $page, "reassort.php", "&sref=$sref&snom=$snom&fourn_id=$fourn_id".(isset($type)?"&type=$type":"")."&tosell=".$tosell."&tobuy=".$tobuy, $sortfield, $sortorder,'',$num, 0, ''); - } - } - $db->free($resql); } From 8d1c8e2da730ece975a3cabfa1dec843ac0adc57 Mon Sep 17 00:00:00 2001 From: AlainRnet Date: Sat, 8 Jul 2017 08:09:02 +0200 Subject: [PATCH 255/515] Update main.lang StatusInterInvoiced missing and I don't know its wording. --- htdocs/langs/en_US/main.lang | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 8b1c0df7f40..383cc807afe 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -439,6 +439,7 @@ Reporting=Reporting Reportings=Reporting Draft=Draft Drafts=Drafts +StatusInterInvoiced= Validated=Validated Opened=Open New=New @@ -835,4 +836,4 @@ SearchIntoInterventions=Interventions SearchIntoContracts=Contracts SearchIntoCustomerShipments=Customer shipments SearchIntoExpenseReports=Expense reports -SearchIntoLeaves=Leaves \ No newline at end of file +SearchIntoLeaves=Leaves From 2ea7f38d38d9cf48b1e223320ff0b7011c9c9b26 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 12:48:17 +0200 Subject: [PATCH 256/515] Fix migration of version that is not a final version --- htdocs/core/lib/functions.lib.php | 2 +- htdocs/install/check.php | 2 +- htdocs/install/step4.php | 6 ++++-- htdocs/install/step5.php | 4 ++-- htdocs/install/upgrade.php | 2 +- htdocs/install/upgrade2.php | 2 +- 6 files changed, 10 insertions(+), 8 deletions(-) diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 54388fdd701..ce4f498869c 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -429,7 +429,7 @@ function GETPOST($paramname, $check='', $method=0, $filter=NULL, $options=NULL) break; case 'aZ09': $out=trim($out); - if (preg_match('/[^a-z0-9_\-]+/i',$out)) $out=''; + if (preg_match('/[^a-z0-9_\-\.]+/i',$out)) $out=''; break; case 'array': if (! is_array($out) || empty($out)) $out=array(); diff --git a/htdocs/install/check.php b/htdocs/install/check.php index bc7082b8d9d..1bcc6fadaff 100644 --- a/htdocs/install/check.php +++ b/htdocs/install/check.php @@ -62,7 +62,7 @@ pHeader('',''); // No next step for navigation buttons. Next step is defined //print "
\n"; //print $langs->trans("InstallEasy")."

\n"; -print '

'.$langs->trans("MiscellaneousChecks").":

\n"; +print '

Database '.$langs->trans("MiscellaneousChecks").":

\n"; // Check browser $useragent=$_SERVER['HTTP_USER_AGENT']; diff --git a/htdocs/install/step4.php b/htdocs/install/step4.php index 740a45a9063..54d985597bc 100644 --- a/htdocs/install/step4.php +++ b/htdocs/install/step4.php @@ -69,7 +69,9 @@ if (! is_writable($conffile)) } -print '
'.$langs->trans("LastStepDesc").'

'; +print '

Database '.$langs->trans("DolibarrAdminLogin").'

'; + +print $langs->trans("LastStepDesc").'

'; print '
'; @@ -304,14 +304,14 @@ if ($resql) print_liste_field_titre($langs->trans("Status").' ('.$langs->trans("Buy").')',$_SERVER["PHP_SELF"], "p.tobuy","",$param,'align="right"',$sortfield,$sortorder); print_liste_field_titre(''); print "
'; print $product_static->getNomUrl(1,'',16); //if ($objp->stock_theorique < $objp->seuil_stock_alerte) print ' '.img_warning($langs->trans("StockTooLow")); print ''.$objp->label.'
'; @@ -78,7 +80,7 @@ $db=getDoliDBInstance($conf->db->type,$conf->db->host,$conf->db->user,$conf->db- if ($db->ok) { - print ''; print ''; diff --git a/htdocs/install/step5.php b/htdocs/install/step5.php index 28594c0e6c4..4afe2e4a722 100644 --- a/htdocs/install/step5.php +++ b/htdocs/install/step5.php @@ -47,8 +47,8 @@ if (! empty($action) && preg_match('/upgrade/i', $action)) // If it's an old upg $tmp=explode('_', $action, 2); if ($tmp[0]=='upgrade') { - //if (! empty($tmp[1])) $targetversion=$tmp[1]; - $targetversion=$versionto; + if (! empty($tmp[1])) $targetversion=$tmp[1]; // if $action = 'upgrade_6.0.0-beta', we use '6.0.0-beta' + else $targetversion=DOL_VERSION; // if $action = 'upgrade', we use DOL_VERSION } } diff --git a/htdocs/install/upgrade.php b/htdocs/install/upgrade.php index e7cb6f46d71..edd6463482f 100644 --- a/htdocs/install/upgrade.php +++ b/htdocs/install/upgrade.php @@ -106,7 +106,7 @@ if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09 { $actiondone=1; - print '

'.$langs->trans("DatabaseMigration").'

'; + print '

Database '.$langs->trans("DatabaseMigration").'

'; print '
'.$langs->trans("DolibarrAdminLogin").' :'; + print '
'.$langs->trans("Login").' :'; print '
'.$langs->trans("Password").' :'; print '
'; $error=0; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 79b6df8d14f..2c032ffa7c0 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -106,7 +106,7 @@ pHeader('','step5',GETPOST('action','aZ09')?GETPOST('action','aZ09'):'upgrade',' if (! GETPOST('action','aZ09') || preg_match('/upgrade/i',GETPOST('action','aZ09'))) { - print '

'.$langs->trans('DataMigration').'

'; + print '

Database '.$langs->trans('DataMigration').'

'; print '
'; From 49689fc56fd8eb46b8af7e5308daf0ebbc8dee14 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 14:30:16 +0200 Subject: [PATCH 257/515] Fix bad extension --- .../modulebuilder/template/core/modules/modMyModule.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index 8b283d1d695..a7bad8fb43c 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -94,7 +94,7 @@ class modMyModule extends DolibarrModules 'barcode' => 0, // Set this to 1 if module has its own barcode directory (core/modules/barcode) 'models' => 0, // Set this to 1 if module has its own models directory (core/modules/xxx) 'css' => array('/mymodule/css/mymodule.css.php'), // Set this to relative path of css file if module has its own css file - 'js' => array('/mymodule/js/mymodule.js'), // Set this to relative path of js file if module must load a js on all pages + 'js' => array('/mymodule/js/mymodule.js.php'), // Set this to relative path of js file if module must load a js on all pages 'hooks' => array('hookcontext1','hookcontext2') // Set here all hooks context managed by module. You can also set hook context 'all' ); From 9f486716c1fcc7689a8029f5ec4ec333521e92eb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 14:56:43 +0200 Subject: [PATCH 258/515] Fix phpcs --- .../fourn/class/fournisseur.product.class.php | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/htdocs/fourn/class/fournisseur.product.class.php b/htdocs/fourn/class/fournisseur.product.class.php index bcbaf18e9f5..b31aa221c8d 100644 --- a/htdocs/fourn/class/fournisseur.product.class.php +++ b/htdocs/fourn/class/fournisseur.product.class.php @@ -71,7 +71,7 @@ class ProductFournisseur extends Product var $fk_supplier_price_expression; var $supplier_reputation; // reputation of supplier - var $reputations=array(); // list of available supplier reputations + var $reputations=array(); // list of available supplier reputations /** * Constructor @@ -81,7 +81,7 @@ class ProductFournisseur extends Product function __construct($db) { global $langs; - + $this->db = $db; $langs->load("suppliers"); $this->reputations= array('-1'=>'', 'FAVORITE'=>$langs->trans('Favorite'),'NOTTHGOOD'=>$langs->trans('NotTheGoodQualitySupplier'), 'DONOTORDER'=>$langs->trans('DoNotOrderThisProductToThisSupplier')); @@ -134,9 +134,9 @@ class ProductFournisseur extends Product function remove_product_fournisseur_price($rowid) { global $conf, $user; - + $error=0; - + $this->db->begin(); // Call trigger @@ -236,7 +236,7 @@ class ProductFournisseur extends Product $sql.= " info_bits = ".$newnpr.","; $sql.= " charges = ".$charges.","; // deprecated $sql.= " delivery_time_days = ".($delivery_time_days != '' ? $delivery_time_days : 'null').","; - $sql.= " supplier_reputation = ".(empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'"); + $sql.= " supplier_reputation = ".(empty($supplier_reputation) ? 'NULL' : "'".$this->db->escape($supplier_reputation)."'"); $sql.= " WHERE rowid = ".$this->product_fourn_price_id; // TODO Add price_base_type and price_ttc @@ -271,7 +271,7 @@ class ProductFournisseur extends Product else { dol_syslog(get_class($this) . '::update_buyprice without knowing id of line, so we delete from company, quantity and supplier_ref and insert again', LOG_DEBUG); - + // Delete price for this quantity $sql = "DELETE FROM " . MAIN_DB_PREFIX . "product_fournisseur_price"; $sql .= " WHERE fk_soc = " . $fourn->id . " AND ref_fourn = '" . $this->db->escape($ref_fourn) . "' AND quantity = " . $qty . " AND entity = " . $conf->entity; @@ -299,9 +299,9 @@ class ProductFournisseur extends Product $sql .= $delivery_time_days . ","; $sql .= (empty($supplier_reputation) ? 'NULL' : "'" . $this->db->escape($supplier_reputation) . "'"); $sql .= ")"; - + $idinserted = 0; - + $resql = $this->db->query($sql); if ($resql) { $idinserted = $this->db->last_insert_id(MAIN_DB_PREFIX . "product_fournisseur_price"); @@ -309,7 +309,7 @@ class ProductFournisseur extends Product else { $error++; } - + if (! $error && ! empty($conf->global->PRODUCT_PRICE_SUPPLIER_NO_LOG)) { // Add record into log table $sql = "INSERT INTO " . MAIN_DB_PREFIX . "product_fournisseur_price_log("; @@ -320,20 +320,20 @@ class ProductFournisseur extends Product $sql .= " " . price2num($buyprice) . ","; $sql .= " " . $qty; $sql .= ")"; - + $resql = $this->db->query($sql); if (! $resql) { $error++; } } - + if (! $error) { // Call trigger $result = $this->call_trigger('SUPPLIER_PRODUCT_BUYPRICE_CREATE', $user); if ($result < 0) $error++; // End call triggers - + if (empty($error)) { $this->db->commit(); return $idinserted; @@ -398,7 +398,7 @@ class ProductFournisseur extends Product $this->fk_supplier_price_expression = $obj->fk_supplier_price_expression; $this->supplier_reputation = $obj->supplier_reputation; - if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) + if (empty($ignore_expression) && !empty($this->fk_supplier_price_expression)) { $priceparser = new PriceParser($this->db); $price_result = $priceparser->parseProductSupplier($this->fk_product, $this->fk_supplier_price_expression, $this->fourn_qty, $this->fourn_tva_tx); @@ -700,10 +700,10 @@ class ProductFournisseur extends Product * Display price of product * * @param int $showunitprice Show "Unit price" into output string - * @param int $showsuptitl Show "Supplier" into output string + * @param int $showsuptitle Show "Supplier" into output string * @param int $maxlen Max length of name * @param integer $notooltip 1=Disable tooltip - * @param array $productFournList list of ProductFournisseur objects + * @param array $productFournList list of ProductFournisseur objects * to display in table format. * @return string String with supplier price */ From 4f75b6d6566d43880a8f1240d178a1c29d7c9c6c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 14:58:19 +0200 Subject: [PATCH 259/515] Fix phpcs --- htdocs/accountancy/class/lettering.class.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index f6101f2ccf4..70d7a88c55b 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -31,9 +31,15 @@ include_once DOL_DOCUMENT_ROOT."/core/lib/date.lib.php"; /** * Class lettering */ -class lettering extends BookKeeping { - - public function LettrageTiers($socid){ +class lettering extends BookKeeping +{ + /** + * lettrageTiers + * + * @param int $socid Thirdparty id + * @return void + */ + public function lettrageTiers($socid) { $db = $this->db; From 8db4e91888e9c8fd9850ed64ffc0e409ad6179bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 15:43:36 +0200 Subject: [PATCH 260/515] Debug modulebuilder --- htdocs/core/class/doleditor.class.php | 6 +- htdocs/core/class/interfaces.class.php | 2 +- htdocs/langs/en_US/modulebuilder.lang | 4 +- htdocs/modulebuilder/index.php | 113 +++++++++++++----- htdocs/modulebuilder/template/admin/about.php | 3 +- htdocs/modulebuilder/template/admin/setup.php | 3 +- .../modulebuilder/template/class/MyObject.txt | 2 +- .../template/core/boxes/mybox.php | 3 +- .../core/modules/modMyModule.class.php | 2 +- .../template/core/tpl/mytemplate.tpl.php | 3 +- ..._99_modMyModule_MyModuleTriggers.class.php | 3 +- .../modulebuilder/template/myobject_card.php | 2 +- .../modulebuilder/template/myobject_list.php | 2 +- .../template/scripts/myobject.php | 2 +- htdocs/modulebuilder/template/sql/data.sql | 3 +- .../test/phpunit/MyModuleFunctionalTest.php | 6 +- .../template/test/phpunit/MyObjectTest.php | 4 +- 17 files changed, 109 insertions(+), 54 deletions(-) diff --git a/htdocs/core/class/doleditor.class.php b/htdocs/core/class/doleditor.class.php index a7e404383ea..9258e2b145d 100644 --- a/htdocs/core/class/doleditor.class.php +++ b/htdocs/core/class/doleditor.class.php @@ -58,7 +58,7 @@ class DolEditor * 'Out:name' share toolbar into the div called 'name' * @param boolean $toolbarstartexpanded Bar is visible or not at start * @param int $uselocalbrowser Enabled to add links to local object with local browser. If false, only external images can be added in content. - * @param int $okforextendededitor True=Allow usage of extended editor tool (like fckeditor) + * @param int $okforextendededitor True=Allow usage of extended editor tool (like fckeditor). If false, use simple textarea. * @param int $rows Size of rows for textarea tool * @param string $cols Size of cols for textarea tool (textarea number of cols '70' or percent 'x%') * @param int $readonly 0=Read/Edit, 1=Read only @@ -100,7 +100,7 @@ class DolEditor $this->editor->Height = $height; if (! empty($width)) $this->editor->Width = $width; $this->editor->ToolbarSet = $shorttoolbarname; // Profile of this toolbar set is deinfed into theme/mytheme/ckeditor/config.js - $this->editor->Config['AutoDetectLanguage'] = 'true'; + $this->editor->Config['AutoDetectLanguage'] = 'true'; // Language of user (browser) $this->editor->Config['ToolbarLocation'] = $toolbarlocation ? $toolbarlocation : 'In'; $this->editor->Config['ToolbarStartExpanded'] = $toolbarstartexpanded; @@ -196,7 +196,7 @@ class DolEditor htmlEncodeOutput :'.$htmlencode_force.', allowedContent :'.($disallowAnyContent?'false':'true').', extraAllowedContent : \'\', - fullPage : '.($fullpage?'true':'false').', + fullPage : '.($fullpage?'true':'false').', toolbar: \''.$this->toolbarname.'\', toolbarStartupExpanded: '.($this->toolbarstartexpanded ? 'true' : 'false').', width: '.($this->width ? '\''.$this->width.'\'' : '\'\'').', diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php index 625b30e3ac2..8262e315540 100644 --- a/htdocs/core/class/interfaces.class.php +++ b/htdocs/core/class/interfaces.class.php @@ -335,7 +335,7 @@ class Interfaces $triggers[$j]['iscoreorexternal'] = $iscoreorexternal[$key]; $triggers[$j]['version'] = $objMod->getVersion(); $triggers[$j]['status'] = img_picto($langs->trans("Active"),'tick'); - if ($disabledbyname > 0 || $disabledbymodule > 1) $triggers[$j]['status'] = " "; + if ($disabledbyname > 0 || $disabledbymodule > 1) $triggers[$j]['status'] = ''; $text =''.$langs->trans("Description").':
'; $text.=$objMod->getDesc().'
'; diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 9eb910da360..8fab0a7b07f 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -15,7 +15,7 @@ ModuleBuilderDescspecifications=You can enter here a long text to describe the s ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. ModuleBuilderDeschooks=This tab is dedicated to hooks. ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. @@ -24,7 +24,7 @@ EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files relat DangerZone=Danger zone BuildPackage=Build package/documentation BuildDocumentation=Build documentation -ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live) +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 8ea54b78454..4037b727ee4 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -1,7 +1,5 @@ - * Copyright (C) 2004-2017 Laurent Destailleur - * Copyright (C) 2005-2010 Regis Houssin +/* Copyright (C) 2004-2017 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,6 +22,7 @@ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $langs->load("admin"); $langs->load("modulebuilder"); @@ -31,17 +30,20 @@ $langs->load("other"); $action=GETPOST('action','aZ09'); $confirm=GETPOST('confirm','alpha'); + $module=GETPOST('module','alpha'); $tab=GETPOST('tab','aZ09'); $tabobj=GETPOST('tabobj','alpha'); if (empty($module)) $module='initmodule'; if (empty($tab)) $tab='description'; if (empty($tabobj)) $tabobj='newobject'; +$file=GETPOST('file','alpha'); $modulename=dol_sanitizeFileName(GETPOST('modulename','alpha')); $objectname=dol_sanitizeFileName(GETPOST('objectname','alpha')); // Security check +if (empty($conf->modulebuilder->enabled)) accessforbidden('ModuleBuilderNotAllowed'); if (! $user->admin && empty($conf->global->MODULEBUILDER_FOREVERYONE)) accessforbidden('ModuleBuilderNotAllowed'); @@ -373,6 +375,29 @@ if ($dirins && $action == 'generatepackage') } } +if ($action == 'savefile') +{ + $pathoftrigger=dol_buildpath($file, 0); + $pathoftriggerbackup=dol_buildpath($file.'.back', 0); + + dol_move($pathoftrigger, $pathoftriggerbackup, 0, 1, 0, 0); + + $content = GETPOST('triggerfilecontent'); + + // Save file on disk + $newmask = 0; + + file_put_contents($pathoftrigger, $content); + if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; + if (empty($newmask)) // This should no happen + { + $newmask='0664'; + } + + @chmod($pathoftrigger, octdec($newmask)); +} + + /* * View @@ -568,7 +593,8 @@ elseif (! empty($module)) $modulelowercase=strtolower($module); - $modulestatusinfo=img_info('').' '.$langs->trans("ModuleIsNotActive"); + $urltomodulesetup=''.$langs->trans('Home').'-'.$langs->trans("Setup").'-'.$langs->trans("Modules").''; + $modulestatusinfo=img_info('').' '.$langs->trans("ModuleIsNotActive", $urltomodulesetup); if (! empty($conf->$module->enabled)) { $modulestatusinfo=img_warning().' '.$langs->trans("ModuleIsLive"); @@ -882,33 +908,62 @@ elseif (! empty($module)) $interfaces = new Interfaces($db); $triggers = $interfaces->getTriggersList(array('/'.strtolower($module).'/core/triggers')); - print '
'; - print '
- - - - - - '; - - $var=True; - foreach ($triggers as $trigger) + if ($action != 'editfile' || empty($file)) { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } + print '
'; + print '
'.$langs->trans("File").''.$langs->trans("Active").' 
'.$trigger['picto'].''.$trigger['relpath'].''.$trigger['status'].''; - $text=$trigger['info']; - $text.="
\n".$langs->trans("File").":
\n".$trigger['relpath']; - //$text.="\n".$langs->trans("ExternalModule",$trigger['isocreorexternal']); - print $form->textwithpicto('', $text); - print '
+ + + + + + + '; - print '
'.$langs->trans("File").''.$langs->trans("Active").'  
'; - print '
'; + $var=True; + foreach ($triggers as $trigger) + { + print '
'.$trigger['picto'].''.$trigger['relpath'].''.(empty($trigger['status'])?$langs->trans("No"):$trigger['status']).''; + $text=$trigger['info']; + $text.="
\n".$langs->trans("File").":
\n".$trigger['relpath']; + //$text.="\n".$langs->trans("ExternalModule",$trigger['isocreorexternal']); + print $form->textwithpicto('', $text); + print '
'; + print ''.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + print '
'; + } + else + { + $pathoftrigger=dol_buildpath($file, 0); + + $content = file_get_contents($pathoftrigger); + + // New module + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + + $doleditor=new DolEditor('triggerfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '90%'); + print $doleditor->Create(1, '', false); + print '
'; + print ''; + print '
'; + + print '
'; + } } if ($tab == 'widgets') diff --git a/htdocs/modulebuilder/template/admin/about.php b/htdocs/modulebuilder/template/admin/about.php index 43194ad23e9..ac21d2810e0 100644 --- a/htdocs/modulebuilder/template/admin/about.php +++ b/htdocs/modulebuilder/template/admin/about.php @@ -1,5 +1,6 @@ + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/admin/setup.php b/htdocs/modulebuilder/template/admin/setup.php index 79d761b3297..d32bd0a1723 100644 --- a/htdocs/modulebuilder/template/admin/setup.php +++ b/htdocs/modulebuilder/template/admin/setup.php @@ -1,5 +1,6 @@ + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/class/MyObject.txt b/htdocs/modulebuilder/template/class/MyObject.txt index e86e7cdf5c6..35eb3529698 100644 --- a/htdocs/modulebuilder/template/class/MyObject.txt +++ b/htdocs/modulebuilder/template/class/MyObject.txt @@ -1,2 +1,2 @@ # DO NOT DELETE THIS FILE MANUALLY -# If this file exists, it means the class and file for object MyOjbect was generated by ModuleBuilder. Use ModuleBuilder if you want to delete object. \ No newline at end of file +# If this file exists, it means the class and file for object MyOjbect was generated by ModuleBuilder. So prefer to use ModuleBuilder if you want to delete object. \ No newline at end of file diff --git a/htdocs/modulebuilder/template/core/boxes/mybox.php b/htdocs/modulebuilder/template/core/boxes/mybox.php index a02d041130d..3b3fedcca08 100644 --- a/htdocs/modulebuilder/template/core/boxes/mybox.php +++ b/htdocs/modulebuilder/template/core/boxes/mybox.php @@ -1,5 +1,6 @@ + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index a7bad8fb43c..33c52d58bea 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2017 Laurent Destailleur * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/modulebuilder/template/core/tpl/mytemplate.tpl.php b/htdocs/modulebuilder/template/core/tpl/mytemplate.tpl.php index 206494c50f9..9d399c44e85 100644 --- a/htdocs/modulebuilder/template/core/tpl/mytemplate.tpl.php +++ b/htdocs/modulebuilder/template/core/tpl/mytemplate.tpl.php @@ -1,6 +1,5 @@ - * Copyright (C) +/* Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php index 0140e1cc2b9..2db00687df5 100644 --- a/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php +++ b/htdocs/modulebuilder/template/core/triggers/interface_99_modMyModule_MyModuleTriggers.class.php @@ -1,6 +1,5 @@ - * Copyright (C) +/* Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 62739e2a0a1..6d0c76248f4 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2017 Laurent Destailleur * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index a578a683131..2e655578235 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2007-2017 Laurent Destailleur * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/modulebuilder/template/scripts/myobject.php b/htdocs/modulebuilder/template/scripts/myobject.php index af381b0bfae..f83a808a0b9 100644 --- a/htdocs/modulebuilder/template/scripts/myobject.php +++ b/htdocs/modulebuilder/template/scripts/myobject.php @@ -1,6 +1,6 @@ #!/usr/bin/env php +/* Copyright (C) 2007-2017 Laurent Destailleur * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software; you can redistribute it and/or modify diff --git a/htdocs/modulebuilder/template/sql/data.sql b/htdocs/modulebuilder/template/sql/data.sql index 82266dc08b3..1bcc30cb1fd 100644 --- a/htdocs/modulebuilder/template/sql/data.sql +++ b/htdocs/modulebuilder/template/sql/data.sql @@ -1,5 +1,4 @@ --- --- Copyright (C) +-- Copyright (C) ---Put here your own copyright and developer email--- -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by diff --git a/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php b/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php index 41dc9891af7..547b48a32af 100644 --- a/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php +++ b/htdocs/modulebuilder/template/test/phpunit/MyModuleFunctionalTest.php @@ -1,6 +1,6 @@ - * Copyright (C) +/* Copyright (C) 2007-2017 Laurent Destailleur + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -83,7 +83,7 @@ class MyModuleFunctionalTest extends \PHPUnit_Extensions_Selenium2TestCase * Helper function to select links by href * * @param string $value Href - * @return mixed Helper string + * @return mixed Helper string */ protected function byHref($value) { diff --git a/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php b/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php index 37a65323fda..f2ea5b9934b 100644 --- a/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php +++ b/htdocs/modulebuilder/template/test/phpunit/MyObjectTest.php @@ -1,6 +1,6 @@ - * Copyright (C) +/* Copyright (C) 2007-2017 Laurent Destailleur + * Copyright (C) ---Put here your own copyright and developer email--- * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by From cf6745b1ae2f9c67cdfdcee9aaeb64d9e093d8fb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 16:52:10 +0200 Subject: [PATCH 261/515] Debug module builder --- htdocs/core/class/interfaces.class.php | 2 + htdocs/core/modules/DolibarrModules.class.php | 52 ++-- htdocs/langs/en_US/main.lang | 5 +- htdocs/modulebuilder/index.php | 280 +++++++++++------- .../modulebuilder/template/SPECIFICATIONS.md | 1 + .../modulebuilder/template/myobject_card.php | 24 +- .../modulebuilder/template/myobject_list.php | 25 +- 7 files changed, 243 insertions(+), 146 deletions(-) create mode 100644 htdocs/modulebuilder/template/SPECIFICATIONS.md diff --git a/htdocs/core/class/interfaces.class.php b/htdocs/core/class/interfaces.class.php index 8262e315540..d7dce8613db 100644 --- a/htdocs/core/class/interfaces.class.php +++ b/htdocs/core/class/interfaces.class.php @@ -262,6 +262,8 @@ class Interfaces { if (is_readable($newdir.'/'.$file) && preg_match('/^interface_([0-9]+)_([^_]+)_(.+)\.class\.php/',$file,$reg)) { + if (preg_match('/\.back$/',$file)) continue; + $part1=$reg[1]; $part2=$reg[2]; $part3=$reg[3]; diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index 32ad3283d44..71f834a56d7 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -617,7 +617,8 @@ class DolibarrModules // Can not be abstract, because we need to insta * Gives the long description of a module. First check README-la_LA.md then README.md * If not markdown files found, it return translated value of the key ->descriptionlong. * - * @return string Long description of a module + * @param int $checkonly + * @return string Long description of a module from README of from property. */ function getDescLong() { @@ -627,25 +628,9 @@ class DolibarrModules // Can not be abstract, because we need to insta include_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; include_once DOL_DOCUMENT_ROOT.'/core/lib/geturl.lib.php'; - $filefound= false; + $pathoffile = $this->getDescLongReadmeFound(); - // Define path to file README.md. - // First check README-la_LA.md then README.md - $pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$langs->defaultlang.'.md', 0); - if (dol_is_file($pathoffile)) - { - $filefound = true; - } - if (! $filefound) - { - $pathoffile = dol_buildpath(strtolower($this->name).'/README.md', 0); - if (dol_is_file($pathoffile)) - { - $filefound = true; - } - } - - if ($filefound) // Mostly for external modules + if ($pathoffile) // Mostly for external modules { $content = file_get_contents($pathoffile); @@ -683,6 +668,35 @@ class DolibarrModules // Can not be abstract, because we need to insta return $content; } + /** + * Return path of file if a README file was found. + * + * @return string Path of file if a README file was found. + */ + function getDescLongReadmeFound() + { + $filefound= false; + + // Define path to file README.md. + // First check README-la_LA.md then README.md + $pathoffile = dol_buildpath(strtolower($this->name).'/README-'.$langs->defaultlang.'.md', 0); + if (dol_is_file($pathoffile)) + { + $filefound = true; + } + if (! $filefound) + { + $pathoffile = dol_buildpath(strtolower($this->name).'/README.md', 0); + if (dol_is_file($pathoffile)) + { + $filefound = true; + } + } + + return ($filefound?$pathoffile:''); + } + + /** * Gives the changelog. First check ChangeLog-la_LA.md then ChangeLog.md * diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 8b1c0df7f40..58028423a35 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -519,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 4037b727ee4..2547b893055 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -20,6 +20,8 @@ * \brief Home page for module builder module */ +if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check anti CSRF attack test + require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; @@ -30,6 +32,7 @@ $langs->load("other"); $action=GETPOST('action','aZ09'); $confirm=GETPOST('confirm','alpha'); +$cancel=GETPOST('cancel','alpha'); $module=GETPOST('module','alpha'); $tab=GETPOST('tab','aZ09'); @@ -375,26 +378,42 @@ if ($dirins && $action == 'generatepackage') } } -if ($action == 'savefile') + +// Save file +if ($action == 'savefile' && empty($cancel)) { - $pathoftrigger=dol_buildpath($file, 0); - $pathoftriggerbackup=dol_buildpath($file.'.back', 0); + $relofcustom = basename($dirins); - dol_move($pathoftrigger, $pathoftriggerbackup, 0, 1, 0, 0); - - $content = GETPOST('triggerfilecontent'); - - // Save file on disk - $newmask = 0; - - file_put_contents($pathoftrigger, $content); - if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; - if (empty($newmask)) // This should no happen + if ($relofcustom) { - $newmask='0664'; - } + // Check that relative path ($file) start with name 'custom' + if (! preg_match('/^'.$relofcustom.'/', $file)) $file=$relofcustom.'/'.$file; - @chmod($pathoftrigger, octdec($newmask)); + $pathoffile=dol_buildpath($file, 0); + $pathoffilebackup=dol_buildpath($file.'.back', 0); + + // Save old version + if (dol_is_file($pathoffile)) + { + dol_move($pathoffile, $pathoffilebackup, 0, 1, 0, 0); + } + + $content = GETPOST('editfilecontent'); + + // Save file on disk + $newmask = 0; + + file_put_contents($pathoffile, $content); + if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; + if (empty($newmask)) // This should no happen + { + $newmask='0664'; + } + + @chmod($pathoffile, octdec($newmask)); + + setEventMessages($langs->trans("FileSaved"), null); + } } @@ -438,7 +457,7 @@ if (!empty($conf->modulebuilder->enabled) && $mainmenu == 'modulebuilder') // En if (dol_is_file($fullname.'/'.$FILEFLAG)) { // Get real name of module (MyModule instead of mymodule) - $descriptorfiles = dol_dir_list($fullname.'/core/modules/', 'files', 0, 'mod.*\.class\.php'); + $descriptorfiles = dol_dir_list($fullname.'/core/modules/', 'files', 0, 'mod.*\.class\.php$'); $modulenamewithcase=''; foreach($descriptorfiles as $descriptorcursor) { @@ -654,80 +673,155 @@ elseif (! empty($module)) if ($tab == 'description') { $pathtofile = $modulelowercase.'/core/modules/mod'.$module.'.class.php'; + $pathtofilereadme = $modulelowercase.'/README.md'; - print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.'
'; - print '
'; + if ($action != 'editfile' || empty($file)) + { + print ' '.$langs->trans("DescriptorFile").' : '.$pathtofile.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; - print '
'; - print '
'; + print ' '.$langs->trans("ReadmeFile").' : '.$pathtofilereadme.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; - print ''; - print ''; + print '
'; + print '
'; - print ''; + print_fiche_titre($langs->trans("DescriptorFile")); - print ''; + print '
'; + print '
'; - print '
'; + print '
'; - print $langs->trans("Parameter"); - print ''; - print $langs->trans("Value"); - print '
'; - print $langs->trans("Numero"); - print ' ('.$langs->trans("SeeHere").')'; - print ''; - print $moduleobj->numero; - print '
'; - print $langs->trans("Name"); - print ''; - print $moduleobj->getName(); - print '
'; - print $langs->trans("Version"); - print ''; - print $moduleobj->getVersion(); - print '
'; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print ''; + print ''; - print '
'; + print $langs->trans("Parameter"); + print ''; + print $langs->trans("Value"); + print '
'; - print $langs->trans("Family"); - //print "
'crm','financial','hr','projects','products','ecm','technic','interface','other'"; - print '
'; - print $moduleobj->family; - print '
'; + print $langs->trans("Numero"); + print ' ('.$langs->trans("SeeHere").')'; + print ''; + print $moduleobj->numero; + print '
'; - print $langs->trans("EditorName"); - print ''; - print $moduleobj->editor_name; - print '
'; + print $langs->trans("Name"); + print ''; + print $moduleobj->getName(); + print '
'; - print $langs->trans("EditorUrl"); - print ''; - print $moduleobj->editor_url; - print '
'; + print $langs->trans("Version"); + print ''; + print $moduleobj->getVersion(); + print '
'; - print $langs->trans("Description"); - print ''; - print $moduleobj->getDesc(); - print '
'; + print $langs->trans("Family"); + //print "
'crm','financial','hr','projects','products','ecm','technic','interface','other'"; + print '
'; + print $moduleobj->family; + print '
'; - print $langs->trans("DescriptionLong"); - print ''; - print $moduleobj->getDescLong(); - print '
'; + print $langs->trans("EditorName"); + print ''; + print $moduleobj->editor_name; + print '
'; + print ''; + print $langs->trans("EditorUrl"); + print ''; + print $moduleobj->editor_url; + print ''; - print '
'; + print ''; + print $langs->trans("Description"); + print ''; + print $moduleobj->getDesc(); + print ''; + + print ''; + + + print '

'; + + + print_fiche_titre($langs->trans("ReadmeFile")); + + print '
'; + print '
'; + + print $moduleobj->getDescLong(); + + print '
'; + } + else + { + $fullpathoffile=dol_buildpath($file, 0); + + $content = file_get_contents($fullpathoffile); + + // New module + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + + $doleditor=new DolEditor('editfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '99%'); + print $doleditor->Create(1, '', false); + print '
'; + print '
'; + print ''; + print '   '; + print ''; + print '
'; + + print '
'; + } } if ($tab == 'specifications') { - print $langs->trans("FeatureNotYetAvailable"); + $pathtofile = $modulelowercase.'/SPECIFICATIONS.md'; + if ($action != 'editfile' || empty($file)) + { + print ' '.$langs->trans("SpecificationFile").' : '.$pathtofile.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + } + else + { + $fullpathoffile=dol_buildpath($file, 0); + + $content = file_get_contents($fullpathoffile); + + // New module + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + + $doleditor=new DolEditor('editfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '99%'); + print $doleditor->Create(1, '', false); + print '
'; + print '
'; + print ''; + print '   '; + print ''; + print '
'; + + print '
'; + } } if ($tab == 'objects') @@ -910,43 +1004,20 @@ elseif (! empty($module)) if ($action != 'editfile' || empty($file)) { - print '
'; - print ' - - - - - - - '; - - $var=True; foreach ($triggers as $trigger) { - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - } + $pathtofile = $trigger['relpath']; - print '
'.$langs->trans("File").''.$langs->trans("Active").'  
'.$trigger['picto'].''.$trigger['relpath'].''.(empty($trigger['status'])?$langs->trans("No"):$trigger['status']).''; - $text=$trigger['info']; - $text.="
\n".$langs->trans("File").":
\n".$trigger['relpath']; - //$text.="\n".$langs->trans("ExternalModule",$trigger['isocreorexternal']); - print $form->textwithpicto('', $text); - print '
'; - print ''.img_picto($langs->trans("Edit"), 'edit').''; - print '
'; - print '
'; + print ' '.$langs->trans("TriggerFile").' : '.$pathtofile.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + } } else { - $pathoftrigger=dol_buildpath($file, 0); + $fullpathoffile=dol_buildpath($file, 0); - $content = file_get_contents($pathoftrigger); + $content = file_get_contents($fullpathoffile); // New module print '
'; @@ -956,10 +1027,13 @@ elseif (! empty($module)) print ''; print ''; - $doleditor=new DolEditor('triggerfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '90%'); + $doleditor=new DolEditor('editfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '99%'); print $doleditor->Create(1, '', false); + print '
'; print '
'; print ''; + print '   '; + print ''; print '
'; print '
'; diff --git a/htdocs/modulebuilder/template/SPECIFICATIONS.md b/htdocs/modulebuilder/template/SPECIFICATIONS.md new file mode 100644 index 00000000000..7b1711cf514 --- /dev/null +++ b/htdocs/modulebuilder/template/SPECIFICATIONS.md @@ -0,0 +1 @@ +# SPECIFICATIONS OF MODULE MYMODULE FOR DOLIBARR ERP CRM \ No newline at end of file diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 6d0c76248f4..73f00abc89f 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -23,17 +23,19 @@ * Put here some comments */ -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) // Load Dolibarr environment $res=0; diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 2e655578235..28624dc9fc2 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -23,17 +23,20 @@ * Put here some comments */ -//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); -//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); -//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); -//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); -//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test -//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data -//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test -//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu -//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php -//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library -//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) +//if (! defined('NOREQUIREUSER')) define('NOREQUIREUSER','1'); +//if (! defined('NOREQUIREDB')) define('NOREQUIREDB','1'); +//if (! defined('NOREQUIRESOC')) define('NOREQUIRESOC','1'); +//if (! defined('NOREQUIRETRAN')) define('NOREQUIRETRAN','1'); +//if (! defined('NOSCANGETFORINJECTION')) define('NOSCANGETFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); // Do not check anti CSRF attack test +//if (! defined('NOCSRFCHECK')) define('NOCSRFCHECK','1'); // Do not check anti CSRF attack test +//if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); // Do not check style html tag into posted data +//if (! defined('NOTOKENRENEWAL')) define('NOTOKENRENEWAL','1'); // Do not check anti POST attack test +//if (! defined('NOREQUIREMENU')) define('NOREQUIREMENU','1'); // If there is no need to load and show top and left menu +//if (! defined('NOREQUIREHTML')) define('NOREQUIREHTML','1'); // If we don't need to load the html.form.class.php +//if (! defined('NOREQUIREAJAX')) define('NOREQUIREAJAX','1'); // Do not load ajax.lib.php library +//if (! defined("NOLOGIN")) define("NOLOGIN",'1'); // If this page is public (can be called outside logged session) + // Load Dolibarr environment $res=0; From ba3b6b6aa5d372d41869eb0559d3e8bbfb64d561 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 17:57:35 +0200 Subject: [PATCH 262/515] Better support of vat with code in expense report --- htdocs/commande/class/commande.class.php | 8 +- htdocs/core/lib/functions.lib.php | 2 +- htdocs/expensereport/card.php | 442 +++++++++--------- .../class/expensereport.class.php | 107 +++-- 4 files changed, 308 insertions(+), 251 deletions(-) diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 40e258a8e82..c326efa7e49 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -1360,10 +1360,10 @@ class Commande extends CommonOrder $this->line->vat_src_code=$vat_src_code; $this->line->tva_tx=$txtva; - $this->line->localtax1_tx=$txlocaltax1; - $this->line->localtax2_tx=$txlocaltax2; - $this->line->localtax1_type = $localtaxes_type[0]; - $this->line->localtax2_type = $localtaxes_type[2]; + $this->line->localtax1_tx=$localtaxes_type[1]; + $this->line->localtax2_tx=$localtaxes_type[3]; + $this->line->localtax1_type=$localtaxes_type[0]; + $this->line->localtax2_type=$localtaxes_type[2]; $this->line->fk_product=$fk_product; $this->line->product_type=$product_type; $this->line->fk_remise_except=$fk_remise_except; diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php index 5c3d78aa0ee..a12e4c18ba4 100644 --- a/htdocs/core/lib/functions.lib.php +++ b/htdocs/core/lib/functions.lib.php @@ -3892,7 +3892,7 @@ function getTaxesFromId($vatrowid) * @param Societe $buyer Company object * @param Societe $seller Company object * @param int $firstparamisid 1 if first param is id into table (use this if you can) - * @return array array(localtax_type1(1-6/0 if not found), rate localtax1, localtax_type1, rate localtax2, accountancycodecust, accountancycodesupp) + * @return array array(localtax_type1(1-6/0 if not found), rate localtax1, localtax_type2, rate localtax2, accountancycodecust, accountancycodesupp) */ function getLocalTaxesFromRate($vatrate, $local, $buyer, $seller, $firstparamisid=0) { diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index 596636c74b0..951659a2b59 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -122,7 +122,7 @@ if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'e if (empty($reshook)) { - if ($cancel) + if ($cancel) { $action=''; $fk_projet=''; @@ -155,7 +155,7 @@ if (empty($reshook)) { // Because createFromClone modifies the object, we must clone it so that we can restore it later $orig = clone $object; - + $result=$object->createFromClone($socid); if ($result > 0) { @@ -171,7 +171,7 @@ if (empty($reshook)) } } } - + if ($action == 'confirm_delete' && GETPOST("confirm") == "yes" && $id > 0 && $user->rights->expensereport->supprimer) { $object = new ExpenseReport($db); @@ -187,20 +187,20 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == 'add' && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); - + $object->date_debut = $date_start; $object->date_fin = $date_end; - + $object->fk_user_author = GETPOST('fk_user_author','int'); if (! ($object->fk_user_author > 0)) $object->fk_user_author = $user->id; - + $fuser=new User($db); $fuser->fetch($object->fk_user_author); - + $object->fk_statut = 1; $object->fk_c_paiement = GETPOST('fk_c_paiement','int'); $object->fk_user_validator = GETPOST('fk_user_validator','int'); @@ -212,20 +212,20 @@ if (empty($reshook)) $ret = $extrafields->setOptionalsFromPost($extralabels, $object); if ($ret < 0) $error++; } - + if ($object->periode_existe($fuser,$object->date_debut,$object->date_fin)) { $error++; setEventMessages($langs->trans("ErrorDoubleDeclaration"), null, 'errors'); $action='create'; } - + if (! $error) { $db->begin(); - + $id = $object->create($user); - + if ($id > 0) { $db->commit(); @@ -240,25 +240,25 @@ if (empty($reshook)) } } } - + if ($action == 'update' && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); - + $object->date_debut = $date_start; $object->date_fin = $date_end; - + if($object->fk_statut < 3) { $object->fk_user_validator = GETPOST('fk_user_validator','int'); } - + $object->fk_c_paiement = GETPOST('fk_c_paiement','int'); $object->note_public = GETPOST('note_public'); $object->note_private = GETPOST('note_private'); $object->fk_user_modif = $user->id; - + $result = $object->update($user); if ($result > 0) { @@ -270,14 +270,14 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == 'update_extras') { // Fill array 'array_options' with data from update form $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute')); if ($ret < 0) $error++; - + if (! $error) { // Actions on extra fields (by external module or standard code) @@ -293,17 +293,17 @@ if (empty($reshook)) } else if ($reshook < 0) $error++; } - + if ($error) $action = 'edit_extras'; } - + if ($action == "confirm_validate" && GETPOST("confirm") == "yes" && $id > 0 && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); $result = $object->setValidate($user); - + if ($result > 0) { // Define output language @@ -319,51 +319,51 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0 && $object->fk_user_validator > 0) { $langs->load("mails"); - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_validator); $emailTo = $destinataire->email; - + // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_author); $emailFrom = $expediteur->email; - + if ($emailTo && $emailFrom) { $filename=array(); $filedir=array(); $mimetype=array(); - + // SUBJECT $subject = $langs->trans("ExpenseReportWaitingForApproval"); - + // CONTENT $link = $urlwithroot.'/expensereport/card.php?id='.$object->id; $message = $langs->trans("ExpenseReportWaitingForApprovalMessage", $expediteur->getFullName($langs), get_date_range($object->date_debut,$object->date_fin,'',$langs), $link); - + // Rebuild pdf /* $object->setDocModel($user,""); $resultPDF = expensereport_pdf_create($db,$id,'',"",$langs); - + if($resultPDF): // ATTACHMENT array_push($filename,dol_sanitizeFileName($object->ref).".pdf"); array_push($filedir,$conf->expensereport->dir_output . "/" . dol_sanitizeFileName($object->ref) . "/" . dol_sanitizeFileName($object->ref).".pdf"); array_push($mimetype,"application/pdf"); */ - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename); - + if ($mailfile) { // SEND @@ -408,13 +408,13 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == "confirm_save_from_refuse" && GETPOST("confirm") == "yes" && $id > 0 && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); $result = $object->set_save_from_refuse($user); - + if ($result > 0) { // Define output language @@ -430,35 +430,35 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { if (! empty($conf->global->DEPLACEMENT_TO_CLEAN)) // TODO Translate this so we can remove condition { // Send mail - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_validator); $emailTo = $destinataire->email; - + if ($emailTo) { // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_author); $emailFrom = $expediteur->email; - + // SUBJECT $subject = "' ERP - Note de frais à re-approuver"; - + // CONTENT $dateRefusEx = explode(" ",$object->date_refuse); - + $message = "Bonjour {$destinataire->firstname},\n\n"; $message.= "Le {$dateRefusEx[0]} à {$dateRefusEx[1]} vous avez refusé d'approuver la note de frais \"{$object->ref}\". Vous aviez émis le motif suivant : {$object->detail_refuse}\n\n"; $message.= "L'auteur vient de modifier la note de frais, veuillez trouver la nouvelle version en pièce jointe.\n"; @@ -466,11 +466,11 @@ if (empty($reshook)) $message.= "- Période : du {$object->date_debut} au {$object->date_fin}\n"; $message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n"; $message.= "Bien cordialement,\n' SI"; - + // Génération du pdf avant attachement $object->setDocModel($user,""); $resultPDF = expensereport_pdf_create($db,$object,'',"",$langs); - + if($resultPDF) { // ATTACHMENT @@ -478,10 +478,10 @@ if (empty($reshook)) array_push($filename,dol_sanitizeFileName($object->ref).".pdf"); array_push($filedir,$conf->expensereport->dir_output . "/" . dol_sanitizeFileName($object->ref) . "/" . dol_sanitizeFileName($object->ref_number).".pdf"); array_push($mimetype,"application/pdf"); - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename); - + if (! $mailfile->error) { // SEND @@ -512,15 +512,15 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + // Approve if ($action == "confirm_approve" && GETPOST("confirm") == "yes" && $id > 0 && $user->rights->expensereport->approve) { $object = new ExpenseReport($db); $object->fetch($id); - + $result = $object->setApproved($user); - + if ($result > 0) { // Define output language @@ -536,44 +536,44 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { if (! empty($conf->global->DEPLACEMENT_TO_CLEAN)) // TODO Translate this so we can remove condition { // Send mail - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_author); $emailTo = $destinataire->email; - + // CC $emailCC = $conf->global->NDF_CC_EMAILS; - + // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_valid); $emailFrom = $expediteur->email; - + // SUBJECT $subject = "' ERP - Note de frais validée"; - + // CONTENT $message = "Bonjour {$destinataire->firstname},\n\n"; $message.= "Votre note de frais \"{$object->ref}\" vient d'être approuvé!\n"; $message.= "- Approbateur : {$expediteur->firstname} {$expediteur->lastname}\n"; $message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n"; $message.= "Bien cordialement,\n' SI"; - + // Génération du pdf avant attachement $object->setDocModel($user,""); $resultPDF = expensereport_pdf_create($db,$object,'',"",$langs); - + if($resultPDF): // ATTACHMENT $filename=array(); $filedir=array(); $mimetype=array(); @@ -586,12 +586,12 @@ if (empty($reshook)) ".pdf" ); array_push($mimetype,"application/pdf"); - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message,$filedir,$mimetype,$filename,$emailCC); - + if(!$mailfile->error): - + // SEND $result=$mailfile->sendfile(); if ($result): @@ -601,7 +601,7 @@ if (empty($reshook)) else: setEventMessages($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo), null, 'errors'); endif; - + else: setEventMessages($langs->trans("ErrorFailedToSendMail",$emailFrom,$emailTo), null, 'errors'); endif; @@ -617,14 +617,14 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == "confirm_refuse" && GETPOST('confirm')=="yes" && $id > 0 && $user->rights->expensereport->approve) { $object = new ExpenseReport($db); $object->fetch($id); - + $result = $object->setDeny($user,GETPOST('detail_refuse')); - + if ($result > 0) { // Define output language @@ -640,30 +640,30 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { if (! empty($conf->global->DEPLACEMENT_TO_CLEAN)) // TODO Translate this so we can remove condition { // Send mail - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_author); $emailTo = $destinataire->email; - + // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_refuse); $emailFrom = $expediteur->email; - + // SUBJECT $subject = "' ERP - Note de frais refusée"; - + // CONTENT $message = "Bonjour {$destinataire->firstname},\n\n"; $message.= "Votre note de frais \"{$object->ref}\" vient d'être refusée.\n"; @@ -671,10 +671,10 @@ if (empty($reshook)) $message.= "- Motif de refus : {$_POST['detail_refuse']}\n"; $message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n"; $message.= "Bien cordialement,\n' SI"; - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message); - + if(!$mailfile->error) { // SEND @@ -698,17 +698,17 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + //var_dump($user->id == $object->fk_user_validator);exit; if ($action == "confirm_cancel" && GETPOST('confirm')=="yes" && GETPOST('detail_cancel') && $id > 0 && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); - + if ($user->id == $object->fk_user_valid || $user->id == $object->fk_user_author) { $result = $object->set_cancel($user,GETPOST('detail_cancel')); - + if ($result > 0) { // Define output language @@ -724,30 +724,30 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { if (! empty($conf->global->DEPLACEMENT_TO_CLEAN)) // TODO Translate this so we can remove condition { // Send mail - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_author); $emailTo = $destinataire->email; - + // FROM $expediteur = new User($db); $expediteur->fetch($object->fk_user_cancel); $emailFrom = $expediteur->email; - + // SUBJECT $subject = "' ERP - Note de frais annulée"; - + // CONTENT $message = "Bonjour {$destinataire->firstname},\n\n"; $message.= "Votre note de frais \"{$object->ref}\" vient d'être annulée.\n"; @@ -755,10 +755,10 @@ if (empty($reshook)) $message.= "- Motif d'annulation : {$_POST['detail_cancel']}\n"; $message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n"; $message.= "Bien cordialement,\n' SI"; - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message); - + if(!$mailfile->error) { // SEND @@ -791,7 +791,7 @@ if (empty($reshook)) setEventMessages($langs->transnoentitiesnoconv("OnlyOwnerCanCancel"), '', 'errors'); // Should not happened } } - + if ($action == "confirm_brouillonner" && GETPOST('confirm')=="yes" && $id > 0 && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); @@ -799,7 +799,7 @@ if (empty($reshook)) if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) { $result = $object->setStatut(0); - + if ($result > 0) { // Define output language @@ -815,11 +815,11 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id); @@ -835,14 +835,14 @@ if (empty($reshook)) setEventMessages("NOT_AUTHOR", '', 'errors'); } } - + if ($action == 'set_paid' && $id > 0 && $user->rights->expensereport->to_paid) { $object = new ExpenseReport($db); $object->fetch($id); - + $result = $object->set_paid($id, $user); - + if ($result > 0) { // Define output language @@ -858,50 +858,50 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + if ($result > 0) { if (! empty($conf->global->DEPLACEMENT_TO_CLEAN)) // TODO Translate this so we can remove condition { // Send mail - + // TO $destinataire = new User($db); $destinataire->fetch($object->fk_user_author); $emailTo = $destinataire->email; - + // FROM $expediteur = new User($db); $expediteur->fetch($user->id); $emailFrom = $expediteur->email; - + // SUBJECT $subject = "'ERP - Note de frais payée"; - + // CONTENT $message = "Bonjour {$destinataire->firstname},\n\n"; $message.= "Votre note de frais \"{$object->ref}\" vient d'être payée.\n"; $message.= "- Payeur : {$expediteur->firstname} {$expediteur->lastname}\n"; $message.= "- Lien : {$dolibarr_main_url_root}/expensereport/card.php?id={$object->id}\n\n"; $message.= "Bien cordialement,\n' SI"; - + // Generate pdf before attachment $object->setDocModel($user,""); $resultPDF = expensereport_pdf_create($db,$object,'',"",$langs); - + // PREPARE SEND $mailfile = new CMailFile($subject,$emailTo,$emailFrom,$message); - + if(!$mailfile->error): - + // SEND $result=$mailfile->sendfile(); if ($result): - + // Retour if($result): Header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id); @@ -909,11 +909,11 @@ if (empty($reshook)) else: dol_print_error($db); endif; - + else: dol_print_error($db,$acct->error); endif; - + else: $mesg="Impossible d'envoyer l'email."; setEventMessages($mesg, null, 'errors'); @@ -926,49 +926,50 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == "addline" && $user->rights->expensereport->creer) { $error = 0; - + $db->begin(); - + $object_ligne = new ExpenseReportLine($db); - - $vatrate = GETPOST('vatrate'); + + $vatrate = GETPOST('vatrate','alpha'); // May be 8.5* (8.5NPROM) + $object_ligne->comments = GETPOST('comments'); $qty = GETPOST('qty','int'); if (empty($qty)) $qty=1; $object_ligne->qty = $qty; - + $up=price2num(GETPOST('value_unit'),'MU'); $object_ligne->value_unit = $up; - + $object_ligne->date = $date; - + $object_ligne->fk_c_type_fees = GETPOST('fk_c_type_fees'); - + // if VAT is not used in Dolibarr, set VAT rate to 0 because VAT rate is necessary. if (empty($vatrate)) $vatrate = "0.000"; $object_ligne->vatrate = price2num($vatrate); - + $object_ligne->fk_projet = $fk_projet; - - + + if (! GETPOST('fk_c_type_fees') > 0) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); $action=''; } - + if ($vatrate < 0 || $vatrate == '') { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("VAT")), null, 'errors'); $action=''; } - + /* Projects are never required. To force them, check module forceproject if ($conf->projet->enabled) { @@ -978,7 +979,7 @@ if (empty($reshook)) setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Project")), null, 'errors'); } }*/ - + // Si aucune date n'est rentrée if (empty($object_ligne->date) || $object_ligne->date=="--") { @@ -991,21 +992,42 @@ if (empty($reshook)) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("PriceUTTC")), null, 'errors'); } - + // S'il y'a eu au moins une erreur if (! $error) { $object_ligne->fk_expensereport = $_POST['fk_expensereport']; - + $type = 0; // TODO What if service ? - $seller = ''; // seller is unknown - $tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller); - + + // We don't know seller and buyer for expense reports + $seller = $mysoc; + $buyer = new Societe($db); + + $localtaxes_type=getLocalTaxesFromRate($vatrate,0,$buyer,$seller); + + // Clean vat code + $vat_src_code=''; + + if (preg_match('/\((.*)\)/', $vatrate, $reg)) + { + $vat_src_code = $reg[1]; + $vatrate = preg_replace('/\s*\(.*\)/', '', $vatrate); // Remove code into vatrate. + } + $vatrate = preg_replace('/\*/','',$vatrate); + + $tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller, $localtaxes_type); + + $object_ligne->vat_src_code = $vat_src_code; $object_ligne->vatrate = price2num($vatrate); $object_ligne->total_ttc = $tmp[2]; $object_ligne->total_ht = $tmp[0]; $object_ligne->total_tva = $tmp[1]; - + $object_ligne->localtax1_tx = $localtaxes_type[1]; + $object_ligne->localtax2_tx = $localtaxes_type[3]; + $object_ligne->localtax1_type = $localtaxes_type[0]; + $object_ligne->localtax2_type = $localtaxes_type[2]; + $result = $object_ligne->insert(); if ($result > 0) { @@ -1019,20 +1041,20 @@ if (empty($reshook)) $db->rollback(); } } - + $action=''; } - + if ($action == 'confirm_delete_line' && GETPOST("confirm") == "yes" && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); - + $object_ligne = new ExpenseReportLine($db); $object_ligne->fetch(GETPOST("rowid")); $total_ht = $object_ligne->total_ht; $total_tva = $object_ligne->total_tva; - + $result=$object->deleteline(GETPOST("rowid"), $user); if ($result >= 0) { @@ -1051,11 +1073,11 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + $object->update_totaux_del($object_ligne->total_ht,$object_ligne->total_tva); header("Location: ".$_SERVER["PHP_SELF"]."?id=".$_GET['id']); exit; @@ -1065,12 +1087,12 @@ if (empty($reshook)) setEventMessages($object->error, $object->errors, 'errors'); } } - + if ($action == "updateligne" && $user->rights->expensereport->creer) { $object = new ExpenseReport($db); $object->fetch($id); - + $rowid = $_POST['rowid']; $type_fees_id = GETPOST('fk_c_type_fees'); $projet_id = $fk_projet; @@ -1082,7 +1104,7 @@ if (empty($reshook)) // if VAT is not used in Dolibarr, set VAT rate to 0 because VAT rate is necessary. if (empty($vatrate)) $vatrate = "0.000"; $vatrate = price2num($vatrate); - + if (! GETPOST('fk_c_type_fees') > 0) { $error++; @@ -1095,7 +1117,7 @@ if (empty($reshook)) setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Vat")), null, 'errors'); $action=''; } - + if (! $error) { // TODO Use update method of ExpenseReportLine @@ -1117,13 +1139,13 @@ if (empty($reshook)) } $model=$object->modelpdf; $ret = $object->fetch($id); // Reload to get new records - + $object->generateDocument($model, $outputlangs, $hidedetails, $hidedesc, $hideref); } } - + $result = $object->recalculer($id); - + header("Location: ".$_SERVER["PHP_SELF"]."?id=".$id); exit; } @@ -1133,8 +1155,8 @@ if (empty($reshook)) } } } - - + + /* * Generate or regenerate the PDF document */ @@ -1142,12 +1164,12 @@ if (empty($reshook)) { $depl = new ExpenseReport($db, 0, $_GET['id']); $depl->fetch($id); - + if ($_REQUEST['model']) { $depl->setDocModel($user, $_REQUEST['model']); } - + $outputlangs = $langs; if (! empty($_REQUEST['lang_id'])) { @@ -1161,7 +1183,7 @@ if (empty($reshook)) $action=''; } } - + // Remove file in doc form else if ($action == 'remove_file') { @@ -1169,9 +1191,9 @@ if (empty($reshook)) if ($object->fetch($id)) { require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; - + $object->fetch_thirdparty(); - + $langs->load("other"); $upload_dir = $conf->expensereport->dir_output; $file = $upload_dir . '/' . GETPOST('file'); @@ -1210,7 +1232,7 @@ if ($action == 'create') print ''; print ''; - + // Date start print ''; print ''; @@ -1218,7 +1240,7 @@ if ($action == 'create') $form->select_date($date_start?$date_start:-1,'date_debut',0,0,0,'',1,1); print ''; print ''; - + // Date end print ''; print ''; @@ -1226,7 +1248,7 @@ if ($action == 'create') $form->select_date($date_end?$date_end:-1,'date_fin',0,0,0,'',1,1); print ''; print ''; - + print ''; print ''; print ''; print ''; - + print ''; print ''; print ''; print ''; - + // Payment mode if (! empty($conf->global->EXPENSEREPORT_ASK_PAYMENTMODE_ON_CREATION)) { @@ -1294,7 +1316,7 @@ if ($action == 'create') if (empty($reshook) && ! empty($extrafields->attribute_label)) { print $object->showOptionals($extrafields, 'edit'); } - + print ''; print '
'.$langs->trans("DateStart").'
'.$langs->trans("DateEnd").'
'.$langs->trans("User").''; @@ -1238,7 +1260,7 @@ if ($action == 'create') print $s; print '
'.$langs->trans("VALIDATOR").''; @@ -1255,7 +1277,7 @@ if ($action == 'create') } print '
'; @@ -1314,7 +1336,7 @@ else $result = $object->fetch($id, $ref); $res = $object->fetch_optionals($object->id, $extralabels); - + if ($result > 0) { if (! in_array($object->fk_user_author, $user->getAllChildIds(1))) @@ -1365,7 +1387,7 @@ else $userfee->fetch($object->fk_user_author); print $userfee->getNomUrl(-1); print ''; - + // Ref print ''.$langs->trans("Ref").''; print $form->showrefnav($object, 'ref', $linkback, 1, 'ref', 'ref', ''); @@ -1460,7 +1482,7 @@ else // Paiement incomplet. On demande si motif = escompte ou autre $formconfirm = $form->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $object->id, $langs->trans('CloneExpenseReport'), $langs->trans('ConfirmCloneExpenseReport', $object->ref), 'confirm_clone', $formquestion, 'yes', 1); } - + if ($action == 'save') { $formconfirm=$form->form_confirm($_SERVER["PHP_SELF"]."?id=".$id,$langs->trans("SaveTrip"),$langs->trans("ConfirmSaveTrip"),"confirm_validate","","",1); @@ -1510,13 +1532,13 @@ else // Print form confirm print $formconfirm; - - + + // Expense report card - + $linkback = ''.$langs->trans("BackToList").''; - - + + $morehtmlref='
'; /* // Ref customer @@ -1557,15 +1579,15 @@ else } }*/ $morehtmlref.='
'; - - + + dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref); - - + + print '
'; print '
'; print '
'; - + print ''; // Author @@ -1580,7 +1602,7 @@ else print $userauthor->getNomUrl(-1); } print ''; - + print ''; print ''; print '"; print ''; - + print ''; print ''; print ''; print ''; - + print ''; print ''; print ''; @@ -1638,7 +1660,7 @@ else $userfee=new User($db); $userfee->fetch($object->fk_user_validator); print $userfee->getNomUrl(-1); - if (empty($userfee->email) || ! isValidEmail($userfee->email)) + if (empty($userfee->email) || ! isValidEmail($userfee->email)) { $langs->load("errors"); print img_warning($langs->trans("ErrorBadEMail", $userfee->email)); @@ -1658,7 +1680,7 @@ else print $userfee->getNomUrl(-1); } print ''; - + print ''; print ''; print ''; @@ -1680,7 +1702,7 @@ else print $userapp->getNomUrl(-1); } print ''; - + print ''; print ''; print ''; @@ -1696,7 +1718,7 @@ else $userfee->fetch($object->fk_user_refuse); print $userfee->getNomUrl(-1); print ''; - + print ''; print ''; print '
'.$langs->trans("Period").''; @@ -1607,12 +1629,12 @@ else if($object->fk_statut==6) $rowspan+=2; print "
'.$langs->trans("AmountVAT").''.price($object->total_tva).'
'.$langs->trans("AmountTTC").''.price($object->total_ttc).'
'.$langs->trans("MOTIF_CANCEL").''.$object->detail_cancel.'
'.$langs->trans("DateApprove").''.dol_print_date($object->date_approve,'dayhour').'
'.$langs->trans("DATE_REFUS").''.dol_print_date($object->date_refuse,'dayhour'); @@ -1725,14 +1747,14 @@ else // Other attributes $cols = 3; include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php'; - + print '
'; print '
'; print '
'; print '
'; //print '
'; - + // List of payments $sql = "SELECT p.rowid, p.num_payment, p.datep as dp, p.amount,"; $sql.= "c.code as type_code,c.libelle as payment_type"; @@ -1744,7 +1766,7 @@ else $sql.= " AND e.entity = ".$conf->entity; $sql.= " AND p.fk_typepayment = c.id"; $sql.= " ORDER BY dp"; - + $resql = $db->query($sql); if ($resql) { @@ -1758,7 +1780,7 @@ else print ''.$langs->trans("Amount").''; print ' '; print ''; - + $var=True; while ($i < $num) { @@ -1774,14 +1796,14 @@ else $totalpaid += $objp->amount; $i++; } - + if ($object->paid == 0) { print "".$langs->trans("AlreadyPaid")." :".price($totalpaid)."\n"; print "".$langs->trans("AmountExpected")." :".price($object->total_ttc)."\n"; - + $remaintopay = $object->total_ttc - $totalpaid; - + print "".$langs->trans("RemainderToPay")." :"; print ''.price($remaintopay)."\n"; } @@ -1791,14 +1813,14 @@ else else { dol_print_error($db); - } - + } + print '
'; print '
'; print '
'; - + print '

'; - + print '
'; // Fetch Lines of current expense report @@ -1815,17 +1837,17 @@ else $actiontouse='updateligne'; if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline') $actiontouse='addline'; - + print '
'; print ''; print ''; print ''; print ''; - - + + print '
'; print ''; - + $resql = $db->query($sql); if ($resql) { @@ -1885,7 +1907,7 @@ else print ''; print ''; print ''; - + if ($action != 'editline') { print ''; @@ -1906,7 +1928,7 @@ else print ''; } - + print ''; } @@ -1914,7 +1936,7 @@ else { //modif ligne!!!!! print ''; - + print ''; // Select date @@ -1929,7 +1951,7 @@ else $formproject->select_projects(-1, $objp->fk_projet,'fk_projet', 0, 0, 1, 1); print ''; } - + // Select type print ''; // Unit price @@ -1960,7 +1984,7 @@ else print ''; print ''; } - + print ''; print ''; - + print ''; print ''; - + // Select date print ''; } - + // Select type print ''; // Unit price @@ -2048,13 +2072,13 @@ else } print ''; - + print ''; } // Fin si c'est payé/validé print '
'.vatrate($objp->vatrate,true).''.price($objp->value_unit).''.$objp->qty.''.price($objp->total_ht).'
'; select_type_fees_id($objp->type_fees_code,'fk_c_type_fees'); @@ -1942,7 +1964,9 @@ else // VAT print ''; - print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$objp->vatrate), $mysoc, ''); + $seller=$mysoc; + $buyer=new Societe($db); + print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$objp->vatrate), $seller, $buyer, 0, 0, '', false, 1); print ''.$langs->trans('AmountHT').''.$langs->trans('AmountTTC').''; print ''; print ''; @@ -1996,11 +2020,11 @@ else print '
'; $form->select_date($date?$date:-1,'date'); @@ -2013,7 +2037,7 @@ else $formproject->select_projects(-1, $fk_projet, 'fk_projet', 0, 0, 1, 1); print ''; select_type_fees_id($fk_c_type_fees,'fk_c_type_fees',1); @@ -2028,7 +2052,7 @@ else print ''; $defaultvat=-1; if (! empty($conf->global->EXPENSEREPORT_NO_DEFAULT_VAT)) $conf->global->MAIN_VAT_DEFAULT_IF_AUTODETECT_FAILS = 'none'; - print $form->load_tva('vatrate', ($vatrate!=''?$vatrate:$defaultvat), $mysoc, '', 0, 0, '', false); + print $form->load_tva('vatrate', ($vatrate!=''?$vatrate:$defaultvat), $mysoc, '', 0, 0, '', false, 1); print '
'; print '
'; - + print '
'; } else @@ -2167,15 +2191,15 @@ if ($action != 'create' && $action != 'edit') } } - + // If status is Appoved // -------------------- - + if ($user->rights->expensereport->approve && $object->fk_statut == 5) { print ''; } - + // If bank module is used if ($user->rights->expensereport->to_paid && ! empty($conf->banque->enabled) && $object->fk_statut == 5) { @@ -2189,8 +2213,8 @@ if ($action != 'create' && $action != 'edit') print ''; } } - - // If bank module is not used + + // If bank module is not used if (($user->rights->expensereport->to_paid || empty($conf->banque->enabled)) && $object->fk_statut == 5) { //if ((round($remaintopay) == 0 || empty($conf->banque->enabled)) && $object->paid == 0) @@ -2199,26 +2223,26 @@ if ($action != 'create' && $action != 'edit') print '"; } } - + if ($user->rights->expensereport->creer && ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid) && $object->fk_statut == 5) { // Cancel print ''; } - + // TODO Replace this. It should be SetUnpaid and should go back to status unpaid not canceled. if (($user->rights->expensereport->approve || $user->rights->expensereport->to_paid) && $object->fk_statut == 6) { // Cancel print ''; } - + // Clone if ($user->rights->expensereport->creer) { print ''; } - - /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ + + /* If draft, validated, cancel, and user can create, he can always delete its card before it is approved */ if ($user->rights->expensereport->creer && $user->id == $object->fk_user_author && $object->fk_statut <= 4) { // Delete @@ -2269,7 +2293,7 @@ if ($action != 'create' && $action != 'edit' && ($id || $ref)) $object->fetch_thirdparty(); $result = $object->add_object_linked('fichinter', GETPOST('LinkedFichinter')); } - + // Show links to link elements $linktoelements=array(); if (! empty($conf->global->EXPENSES_LINK_TO_INTERVENTION)) diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index e3970ab6b93..2bf9144dce2 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -37,9 +37,9 @@ class ExpenseReport extends CommonObject var $picto = 'trip'; var $lignes=array(); - + public $date_debut; - + public $date_fin; var $fk_user_validator; @@ -65,7 +65,7 @@ class ExpenseReport extends CommonObject // Update var $date_modif; var $fk_user_modif; - + // Refus var $date_refuse; var $detail_refuse; @@ -128,7 +128,7 @@ class ExpenseReport extends CommonObject $fuserid = $this->fk_user_author; // Note fk_user_author is not the 'author' but the guy the expense report is for. if (empty($fuserid)) $fuserid = $user->id; - + $this->db->begin(); $sql = "INSERT INTO ".MAIN_DB_PREFIX.$this->table_element." ("; @@ -235,35 +235,35 @@ class ExpenseReport extends CommonObject function createFromClone($socid=0) { global $user,$hookmanager; - + $error=0; - + $this->context['createfromclone'] = 'createfromclone'; - + $this->db->begin(); - + // get extrafields so they will be clone foreach($this->lines as $line) //$line->fetch_optionals($line->rowid); - + // Load source object $objFrom = clone $this; - + $this->id=0; $this->ref = ''; $this->statut=0; - + // Clear fields $this->fk_user_author = $user->id; // Note fk_user_author is not the 'author' but the guy the expense report is for. $this->fk_user_valid = ''; $this->date_create = ''; $this->date_creation = ''; $this->date_validation = ''; - + // Create clone $result=$this->create($user); if ($result < 0) $error++; - + if (! $error) { // Hook of thirdparty module @@ -274,15 +274,15 @@ class ExpenseReport extends CommonObject $reshook=$hookmanager->executeHooks('createFrom',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks if ($reshook < 0) $error++; } - + // Call trigger $result=$this->call_trigger('EXPENSEREPORT_CLONE',$user); if ($result < 0) $error++; // End call triggers } - + unset($this->context['createfromclone']); - + // End if (! $error) { @@ -295,8 +295,8 @@ class ExpenseReport extends CommonObject return -1; } } - - + + /** * update * @@ -399,7 +399,7 @@ class ExpenseReport extends CommonObject $this->fk_user_refuse = $obj->fk_user_refuse; $this->fk_user_cancel = $obj->fk_user_cancel; $this->fk_user_approve = $obj->fk_user_approve; - + $user_author = new User($this->db); if ($this->fk_user_author > 0) $user_author->fetch($this->fk_user_author); @@ -588,7 +588,7 @@ class ExpenseReport extends CommonObject $auser->fetch($obj->fk_user_approve); $this->user_approve = $auser; } - + } $this->db->free($resql); } @@ -1000,7 +1000,7 @@ class ExpenseReport extends CommonObject $sql.= ", ref_number_int = ".$ref_number_int; } $sql.= ' WHERE rowid = '.$this->id; - + $resql=$this->db->query($sql); if ($resql) { @@ -1215,7 +1215,7 @@ class ExpenseReport extends CommonObject $sql = 'SELECT MAX(de.ref_number_int) as max'; $sql.= ' FROM '.MAIN_DB_PREFIX.$this->table_element.' de'; - + $result = $this->db->query($sql); if($this->db->num_rows($result) > 0): @@ -1359,7 +1359,7 @@ class ExpenseReport extends CommonObject * @param int $rowid Line to edit * @param int $type_fees_id Type payment * @param int $projet_id Project id - * @param double $vatrate Vat rate + * @param double $vatrate Vat rate. Can be '8.5* (8.5NPROM...)' * @param string $comments Description * @param real $qty Qty * @param double $value_unit Value init @@ -1369,14 +1369,34 @@ class ExpenseReport extends CommonObject */ function updateline($rowid, $type_fees_id, $projet_id, $vatrate, $comments, $qty, $value_unit, $date, $expensereport_id) { - global $user; + global $user, $mysoc; if ($this->fk_statut==0 || $this->fk_statut==99) { $this->db->begin(); + $type = 0; // TODO What if type is service ? + + // We don't know seller and buyer for expense reports + $seller = $mysoc; + $buyer = new Societe($this->db); + + $localtaxes_type=getLocalTaxesFromRate($vatrate,0,$buyer,$seller); + + // Clean vat code + $vat_src_code=''; + + if (preg_match('/\((.*)\)/', $vatrate, $reg)) + { + $vat_src_code = $reg[1]; + $vatrate = preg_replace('/\s*\(.*\)/', '', $vatrate); // Remove code into vatrate. + } + $vatrate = preg_replace('/\*/','',$vatrate); + + $tmp = calcul_price_total($qty, $value_unit, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type, $seller, $localtaxes_type); + // calcul de tous les totaux de la ligne - $total_ttc = price2num($qty*$value_unit, 'MT'); + //$total_ttc = price2num($qty*$value_unit, 'MT'); $tx_tva = $vatrate / 100; $tx_tva = $tx_tva + 1; @@ -1386,6 +1406,9 @@ class ExpenseReport extends CommonObject // fin calculs $ligne = new ExpenseReportLine($this->db); + + $ligne->rowid = $rowid; + $ligne->comments = $comments; $ligne->qty = $qty; $ligne->value_unit = $value_unit; @@ -1395,11 +1418,21 @@ class ExpenseReport extends CommonObject $ligne->fk_c_type_fees = $type_fees_id; $ligne->fk_projet = $projet_id; - $ligne->total_ht = $total_ht; - $ligne->total_tva = $total_tva; - $ligne->total_ttc = $total_ttc; - $ligne->vatrate = price2num($vatrate); - $ligne->rowid = $rowid; + //$ligne->total_ht = $total_ht; + //$ligne->total_tva = $total_tva; + //$ligne->total_ttc = $total_ttc; + //$ligne->vatrate = price2num($vatrate); + + $ligne->vat_src_code = $vat_src_code; + $ligne->vatrate = price2num($vatrate); + $ligne->total_ttc = $tmp[2]; + $ligne->total_ht = $tmp[0]; + $ligne->total_tva = $tmp[1]; + $ligne->localtax1_tx = $localtaxes_type[1]; + $ligne->localtax2_tx = $localtaxes_type[3]; + $ligne->localtax1_type = $localtaxes_type[0]; + $ligne->localtax2_type = $localtaxes_type[2]; + // Select des infos sur le type fees $sql = "SELECT c.code as code_type_fees, c.label as libelle_type_fees"; @@ -1540,7 +1573,7 @@ class ExpenseReport extends CommonObject $sql.= " FROM ".MAIN_DB_PREFIX."usergroup_user as ugu, ".MAIN_DB_PREFIX."usergroup_rights as ur, ".MAIN_DB_PREFIX."rights_def as rd"; $sql.= " WHERE ugu.fk_usergroup = ur.fk_usergroup AND ur.fk_id = rd.id and rd.module = 'expensereport' AND rd.perms = 'approve'"; // Permission 'Approve'; //print $sql; - + dol_syslog(get_class($this)."::fetch_users_approver_expensereport sql=".$sql); $result = $this->db->query($sql); if($result) @@ -1679,7 +1712,7 @@ class ExpenseReport extends CommonObject $now=dol_now(); $userchildids = $user->getAllChildIds(1); - + $sql = "SELECT ex.rowid, ex.date_valid"; $sql.= " FROM ".MAIN_DB_PREFIX."expensereport as ex"; if ($option == 'toapprove') $sql.= " WHERE ex.fk_statut = 2"; @@ -1711,7 +1744,7 @@ class ExpenseReport extends CommonObject while ($obj=$this->db->fetch_object($resql)) { $response->nbtodo++; - + if ($option == 'toapprove') { if ($this->db->jdate($obj->date_valid) < ($now - $conf->expensereport->approve->warning_delay)) { @@ -1735,7 +1768,7 @@ class ExpenseReport extends CommonObject return -1; } } - + /** * Return if an expense report is late or not * @@ -1745,11 +1778,11 @@ class ExpenseReport extends CommonObject public function hasDelay($option) { global $conf; - + //Only valid members if ($option == 'toapprove' && $this->status != 2) return false; if ($option == 'topay' && $this->status != 5) return false; - + $now = dol_now(); if ($option == 'toapprove') { @@ -1757,7 +1790,7 @@ class ExpenseReport extends CommonObject } else return ($this->datevalid?$this->datevalid:$this->date_valid) < ($now - $conf->expensereport->payment->warning_delay); - } + } } From f32b27e8bdb37fbe0b29f32fc75b7644fc1cc9c0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 18:50:58 +0200 Subject: [PATCH 263/515] Better management of vat with code --- htdocs/expensereport/card.php | 28 +++++++------------ .../class/expensereport.class.php | 7 +++-- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php index aec09b5ee23..504ad47fa77 100644 --- a/htdocs/expensereport/card.php +++ b/htdocs/expensereport/card.php @@ -1080,11 +1080,10 @@ if (empty($reshook)) // if VAT is not used in Dolibarr, set VAT rate to 0 because VAT rate is necessary. if (empty($vatrate)) $vatrate = "0.000"; - $object_ligne->vatrate = price2num($vatrate); $object_ligne->fk_projet = $fk_projet; - if (! GETPOST('fk_c_type_fees') > 0) + if (! (GETPOST('fk_c_type_fees') > 0)) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Type")), null, 'errors'); @@ -1949,7 +1948,7 @@ else // Fetch Lines of current expense report $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,'; - $sql.= ' fde.tva_tx as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; + $sql.= ' fde.tva_tx as vatrate, fde.vat_src_code, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; $sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,'; $sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref'; $sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde'; @@ -2028,7 +2027,7 @@ else // print ''.$langs->trans("TF_".strtoupper(empty($objp->type_fees_libelle)?'OTHER':$objp->type_fees_libelle)).''; print ''.($langs->trans(($objp->type_fees_code)) == $objp->type_fees_code ? $objp->type_fees_libelle : $langs->trans(($objp->type_fees_code))).''; print ''.$objp->comments.''; - print ''.vatrate($objp->vatrate,true).''; + print ''.vatrate($objp->vatrate.($objp->vat_src_code?' ('.$objp->vat_src_code.')':''),true).''; print ''.price($objp->value_unit).''; print ''.$objp->qty.''; @@ -2082,24 +2081,25 @@ else // Add comments print ''; - print ''; + print ''; print ''; // VAT print ''; $seller=$mysoc; $buyer=new Societe($db); - print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$objp->vatrate), $seller, $buyer, 0, 0, '', false, 1); + $selectedvat=(GETPOST("vatrate",'alpha')?GETPOST("vatrate",'alpha'):$objp->vatrate.($objp->vat_src_code?' ('.$objp->vat_src_code.')':'')); + print $form->load_tva('vatrate', $selectedvat, $seller, $buyer, 0, 0, '', false, 1); print ''; // Unit price print ''; - print ''; + print ''; print ''; // Quantity print ''; - print ''; + print ''; // We must be able to enter decimal qty print ''; if ($action != 'editline') @@ -2120,13 +2120,6 @@ else $db->free($resql); } - else - { - /* print ''; - print ''; - print '
'.$langs->trans("AucuneLigne").'
';*/ - } - //print '
'; // Add a line if (($object->fk_statut==0 || $object->fk_statut==99) && $action != 'editline' && $user->rights->expensereport->creer) @@ -2143,7 +2136,6 @@ else print ''; print ''; - print ''; print ''; @@ -2180,12 +2172,12 @@ else // Unit price print ''; - print ''; + print ''; print ''; // Quantity print ''; - print ''; + print ''; // We must be able to enter decimal qty print ''; if ($action != 'editline') diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index 00076a0e189..a91b1e83dc1 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -2058,7 +2058,7 @@ class ExpenseReportLine function fetch($rowid) { $sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,'; - $sql.= ' fde.tva_tx as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; + $sql.= ' fde.tva_tx as vatrate, fde.vat_src_code, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,'; $sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,'; $sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref'; $sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde'; @@ -2087,6 +2087,7 @@ class ExpenseReportLine $this->projet_ref = $objp->projet_ref; $this->projet_title = $objp->projet_title; $this->vatrate = $objp->vatrate; + $this->vat_src_code = $objp->vat_src_code; $this->total_ht = $objp->total_ht; $this->total_tva = $objp->total_tva; $this->total_ttc = $objp->total_ttc; @@ -2121,11 +2122,12 @@ class ExpenseReportLine $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'expensereport_det'; $sql.= ' (fk_expensereport, fk_c_type_fees, fk_projet,'; - $sql.= ' tva_tx, comments, qty, value_unit, total_ht, total_tva, total_ttc, date)'; + $sql.= ' tva_tx, vat_src_code, comments, qty, value_unit, total_ht, total_tva, total_ttc, date)'; $sql.= " VALUES (".$this->fk_expensereport.","; $sql.= " ".$this->fk_c_type_fees.","; $sql.= " ".($this->fk_projet>0?$this->fk_projet:'null').","; $sql.= " ".$this->vatrate.","; + $sql.= " '".$this->db->escape($this->vat_src_code)."',"; $sql.= " '".$this->db->escape($this->comments)."',"; $sql.= " ".$this->qty.","; $sql.= " ".$this->value_unit.","; @@ -2196,6 +2198,7 @@ class ExpenseReportLine $sql.= ",total_tva=".$this->total_tva.""; $sql.= ",total_ttc=".$this->total_ttc.""; $sql.= ",tva_tx=".$this->vatrate; + $sql.= ",vat_src_code='".$this->db->escape($this->vat_src_code)."'"; if ($this->fk_c_type_fees) $sql.= ",fk_c_type_fees=".$this->fk_c_type_fees; else $sql.= ",fk_c_type_fees=null"; if ($this->fk_projet) $sql.= ",fk_projet=".$this->fk_projet; From 00e1fab1af1dc1870815f3e3f652c4ba0a2e1c30 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 19:01:09 +0200 Subject: [PATCH 264/515] Fix bad var --- htdocs/categories/class/categorie.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index d0e6cd94851..db3364ff04d 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -1179,7 +1179,7 @@ class Categorie extends CommonObject return 1; } } - dol_syslog(get_class($this)."::already_exists no category with same name=".$this->label." and same parent ".$this->fk_parent.": rowid=".$obj[0]." current_id=".$this->id, LOG_DEBUG); + dol_syslog(get_class($this)."::already_exists no category with same name=".$this->label." and same parent ".$this->fk_parent." than category id=".$this->id, LOG_DEBUG); return 0; } else From 8a9c38114f0cf47e2d5614c4dcf76c6fc8b9a691 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 19:05:51 +0200 Subject: [PATCH 265/515] Fix bug reported by scrutinizer --- htdocs/commande/class/commande.class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/htdocs/commande/class/commande.class.php b/htdocs/commande/class/commande.class.php index 30d91294c86..b93e399871c 100644 --- a/htdocs/commande/class/commande.class.php +++ b/htdocs/commande/class/commande.class.php @@ -3372,14 +3372,14 @@ class Commande extends CommonOrder * Return clicable link of object (with eventually picto) * * @param int $withpicto Add picto into link - * @param int $option Where point the link (0=> main card, 1,2 => shipment) + * @param string $option Where point the link (0=> main card, 1,2 => shipment, 'nolink'=>No link) * @param int $max Max length to show * @param int $short ??? * @param int $notooltip 1=Disable tooltip * @param int $save_lastsearch_value -1=Auto, 0=No save of lastsearch_values when clicking, 1=Save lastsearch_values whenclicking * @return string String with URL */ - function getNomUrl($withpicto=0, $option=0, $max=0, $short=0, $notooltip=0, $save_lastsearch_value=-1) + function getNomUrl($withpicto=0, $option='', $max=0, $short=0, $notooltip=0, $save_lastsearch_value=-1) { global $conf, $langs, $user; @@ -3387,7 +3387,7 @@ class Commande extends CommonOrder $result=''; - if (! empty($conf->expedition->enabled) && ($option == 1 || $option == 2)) $url = DOL_URL_ROOT.'/expedition/shipment.php?id='.$this->id; + if (! empty($conf->expedition->enabled) && ($option == '1' || $option == '2')) $url = DOL_URL_ROOT.'/expedition/shipment.php?id='.$this->id; else $url = DOL_URL_ROOT.'/commande/card.php?id='.$this->id; if ($option !== 'nolink') From a562e5a91929b315f0d12da1049709cd5caf5b4e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 20:52:53 +0200 Subject: [PATCH 266/515] Maxi debug of accountancy ledger page. --- htdocs/accountancy/bookkeeping/card.php | 214 +++++++++++++----- htdocs/accountancy/bookkeeping/list.php | 22 +- .../accountancy/class/bookkeeping.class.php | 11 +- .../journal/expensereportsjournal.php | 4 +- .../accountancy/journal/purchasesjournal.php | 6 +- htdocs/accountancy/journal/sellsjournal.php | 6 +- .../install/mysql/migration/5.0.0-6.0.0.sql | 18 +- .../tables/llx_accounting_bookkeeping.sql | 8 +- .../tables/llx_accounting_bookkeeping_tmp.sql | 10 +- htdocs/langs/en_US/accountancy.lang | 2 +- test/phpunit/CodingSqlTest.php | 4 + 11 files changed, 218 insertions(+), 87 deletions(-) diff --git a/htdocs/accountancy/bookkeeping/card.php b/htdocs/accountancy/bookkeeping/card.php index 9be65e7261a..c6d84ec9b57 100644 --- a/htdocs/accountancy/bookkeeping/card.php +++ b/htdocs/accountancy/bookkeeping/card.php @@ -2,6 +2,7 @@ /* Copyright (C) 2013-2017 Olivier Geffroy * Copyright (C) 2013-2017 Florian Henry * Copyright (C) 2013-2017 Alexandre Spangaro + * Copyright (C) 2017 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,13 +17,14 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ + /** * \file htdocs/accountancy/bookkeeping/card.php * \ingroup Advanced accountancy * \brief Page to show book-entry */ -require '../../main.inc.php'; +require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/core/lib/accounting.lib.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; @@ -38,7 +40,7 @@ if ($user->societe_id > 0) { accessforbidden(); } $action = GETPOST('action','aZ09'); -$mode = GETPOST('mode'); +$mode = GETPOST('mode','aZ09'); // '' or 'tmp' $piece_num = GETPOST("piece_num"); $mesg = ''; @@ -53,15 +55,18 @@ $label_operation= GETPOST('label_operation'); $debit = price2num(GETPOST('debit')); $credit = price2num(GETPOST('credit')); -$save = GETPOST('save'); -if (! empty($save)) { - $action = 'add'; -} -$update = GETPOST('update'); -if (! empty($update)) { - $action = 'confirm_update'; -} +$save = GETPOST('save','alpha'); +if (! empty($save)) $action = 'add'; +$update = GETPOST('update','alpha'); +if (! empty($update)) $action = 'confirm_update'; + $object = new BookKeeping($db); + + +/* + * Actions + */ + if ($action == "confirm_update") { $error = 0; @@ -98,7 +103,14 @@ if ($action == "confirm_update") { if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } + + $debit = 0; + $credit = 0; + $action = ''; } } @@ -108,7 +120,7 @@ if ($action == "confirm_update") { else if ($action == "add") { $error = 0; - if ((floatval($debit) != 0.0) && (floatval($credit) != 0.0)) { + if (empty($debit) && empty($credit)) { setEventMessages($langs->trans('ErrorDebitCredit'), null, 'errors'); $error ++; } @@ -144,7 +156,14 @@ else if ($action == "add") { if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } + + $debit = 0; + $credit = 0; + $action = ''; } } @@ -172,6 +191,11 @@ else if ($action == "confirm_create") { $book = new BookKeeping($db); + if (! GETPOST('code_journal') || GETPOST('code_journal') == '-1') { + setEventMessages($langs->trans('ErrorFieldRequired', $langs->transnoentitiesnoconv("Journal")), null, 'errors'); + $action='create'; + $error++; + } if (! GETPOST('next_num_mvt')) { setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("NumPiece")), null, 'errors'); @@ -196,7 +220,10 @@ else if ($action == "confirm_create") { if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } $action = 'update'; $id=$book->id; $piece_num = $book->piece_num; @@ -210,39 +237,43 @@ if ($action == 'setdate') { if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } $action = ''; } } if ($action == 'setjournal') { $journaldoc = trim(GETPOST('code_journal')); - if (!empty($journaldoc)) { - $journaldoc='\''.$journaldoc.'\''; - } $result = $object->updateByMvt($piece_num,'code_journal',$journaldoc,$mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } $action = ''; } } if ($action == 'setdocref') { $refdoc = trim(GETPOST('doc_ref')); - if (!empty($refdoc)) { - $refdoc='\''.$refdoc.'\''; - } - $result = $object->updateByMvt(doc_ref,'code_journal',$refdoc,$mode); + $result = $object->updateByMvt($piece_num,'doc_ref',$refdoc,$mode); if ($result < 0) { setEventMessages($object->error, $object->errors, 'errors'); } else { - setEventMessages($langs->trans('Saved'), null, 'mesgs'); + if ($mode != '_tmp') + { + setEventMessages($langs->trans('Saved'), null, 'mesgs'); + } $action = ''; } } +// Validate transaction if ($action == 'valid') { $result = $object->transformTransaction(0,$piece_num); if ($result < 0) { @@ -253,14 +284,17 @@ if ($action == 'valid') { } } + /* * View */ -llxHeader(); + $html = new Form($db); $formaccounting = new FormAccounting($db); $accountjournal = new AccountingJournal($db); +llxHeader('', $langs->trans("CreateMvts")); + // Confirmation to delete the command if ($action == 'delete') { $formconfirm = $html->formconfirm($_SERVER["PHP_SELF"] . '?id=' . $id.'&mode='. $mode, $langs->trans('DeleteMvt'), $langs->trans('ConfirmDeleteMvt'), 'confirm_delete', '', 0, 1); @@ -300,7 +334,7 @@ if ($action == 'create') { print ''; print '' . $langs->trans("Codejournal") . ''; - print '' . $formaccounting->select_journal(GETPOST('code_journal'),'code_journal',0,0,array(),1,1) . ''; + print '' . $formaccounting->select_journal(GETPOST('code_journal'),'code_journal',0,1,array(),1,1) . ''; print ''; print ''; @@ -328,29 +362,45 @@ if ($action == 'create') { if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); } + if (! empty($book->piece_num)) { - print load_fiche_titre($langs->trans("UpdateMvts"), '' . $langs->trans('BackToList') . ''); + $backlink = '' . $langs->trans('BackToList') . ''; - dol_fiche_head(); + print load_fiche_titre($langs->trans("UpdateMvts"), $backlink); + $head=array(); + $h=0; + $head[$h][0] = $_SERVER['PHP_SELF'].'?piece_num='.$book->piece_num.($mode?'&mode='.$mode:''); + $head[$h][1] = $langs->trans("Transaction"); + $head[$h][2] = 'transaction'; + $h++; + + dol_fiche_head($head, 'transaction', '', -1); + + + //dol_banner_tab($book, '', $backlink); + + + print '
'; print '
'; + print '
'; - print ''; + print '
'; // account movement - print ''; + print ''; print ''; print ''; print ''; // date - print ''; print ''; //journal - print ''; print ''; //docref - print ''; print ''; - //doctype - print ''; - print ''; - print ''; - print ''; + print '
' . $langs->trans("NumMvts") . '' . $book->piece_num . '
'; + print '
'; print ''; if ($action != 'editdate') - print 'piece_num .'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('SetDate'),1).''; + print ''; print '
'; print $langs->trans('Docdate'); print 'piece_num .'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('SetDate'),1).'
'; print '
'; if ($action == 'editdate') { @@ -361,18 +411,18 @@ if ($action == 'create') { $form->select_date($book->doc_date ? $book->doc_date : - 1, 'doc_date', '', '', '', "setdate"); print ''; print ''; - } else { - print $book->doc_date ? dol_print_date($book->doc_date, 'daytext') : ' '; + } else { + print $book->doc_date ? dol_print_date($book->doc_date, 'daytext') : ' '; } print '
'; + print '
'; print ''; if ($action != 'editjournal') - print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).''; + print ''; print '
'; print $langs->trans('Codejournal'); print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).'
'; print '
'; if ($action == 'editjournal') { @@ -389,12 +439,12 @@ if ($action == 'create') { print '
'; + print '
'; print ''; if ($action != 'editdocref') - print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).''; + print ''; print '
'; print $langs->trans('Docref'); print 'piece_num.'&mode='. $mode .'">'.img_edit($langs->transnoentitiesnoconv('Edit'),1).'
'; print '
'; if ($action == 'editdocref') { @@ -410,21 +460,25 @@ if ($action == 'create') { } print '
' . $langs->trans("Doctype") . '' . $book->doc_type . '
'; print '
'; print '
'; + print '
'; print ''; + // Doc type + print ''; + print ''; + print ''; + print ''; + // Validate - print ''; + /* + print ''; print ''; print ''; print ''; + */ + // check data - print ''; - print ''; /* + print ''; + print ''; if ($book->doc_type == 'customer_invoice') { $sqlmid = 'SELECT rowid as ref'; @@ -457,14 +513,19 @@ if ($action == 'create') { } else dol_print_error($db); } - */ print ''; + print ''; + */ print "
' . $langs->trans("Doctype") . '' . $book->doc_type . '
' . $langs->trans("Status") . ''; if (empty($book->validated)) { @@ -438,10 +492,12 @@ if ($action == 'create') { } print '
' . $langs->trans("Control") . '
' . $langs->trans("Control") . '' . $ref .'
\n"; - print '
'; + print '
'; + print ''; + print '
'; + print '
'; + $result = $book->fetchAllPerMvt($piece_num, $mode); if ($result < 0) { setEventMessages($book->error, $book->errors, 'errors'); @@ -490,11 +551,11 @@ if ($action == 'create') { print ''; print_liste_field_titre($langs->trans("AccountAccountingShort")); - print_liste_field_titre($langs->trans("Subledger_account")); + print_liste_field_titre($langs->trans("SubledgerAccount")); print_liste_field_titre($langs->trans("Labelcompte")); - print_liste_field_titre($langs->trans("Labeloperation")); - print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="center"'); - print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="center"'); + print_liste_field_titre($langs->trans("Label")); + print_liste_field_titre($langs->trans("Debit"), "", "", "", "", 'align="right"'); + print_liste_field_titre($langs->trans("Credit"), "", "", "", "", 'align="right"'); print_liste_field_titre($langs->trans("Action"), "", "", "", "", 'width="60" align="center"'); print "\n"; @@ -509,7 +570,16 @@ if ($action == 'create') { print $formaccounting->select_account($line->numero_compte, 'account_number', 0, array (), 1, 1, ''); print ''; print ''; - print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1); + // TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not + // use setup of keypress to select thirdparty and this hang browser on large database. + if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) + { + print $formaccounting->select_auxaccount($line->subledger_account, 'subledger_account', 1); + } + else + { + print ''; + } print ''; print ''; print ''; @@ -528,10 +598,14 @@ if ($action == 'create') { print '' . price($line->credit) . ''; print ''; - print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; + print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; print img_edit(); - print ' '; - print 'id . '&piece_num=' . $line->piece_num . '&mode='.$mode.'">'; + print '  '; + + $actiontodelete='detele'; + if ($mode == '_tmp') $actiontodelete='confirm_delete'; + + print ''; print img_delete(); print ''; @@ -551,19 +625,37 @@ if ($action == 'create') { print $formaccounting->select_account($account_number, 'account_number', 0, array (), 1, 1, ''); print ''; print ''; - print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1); + // TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not + // use setup of keypress to select thirdparty and this hang browser on large database. + if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) + { + print $formaccounting->select_auxaccount($subledger_account, 'subledger_account', 1); + } + else + { + print ''; + } print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; print ''; print ''; } print ''; - if ($mode=='_tmp' && $total_debit == $total_credit && $action=='') { + + if ($mode=='_tmp' && $action=='') + { print '
'; - print ''.$langs->trans("ValidTransaction").''; + if ($total_debit == $total_credit) + { + print ''.$langs->trans("ValidTransaction").''; + } + else + { + print ''.$langs->trans("ValidTransaction").''; + } print "
"; } print ''; diff --git a/htdocs/accountancy/bookkeeping/list.php b/htdocs/accountancy/bookkeeping/list.php index 6f994eb1110..114b765e658 100644 --- a/htdocs/accountancy/bookkeeping/list.php +++ b/htdocs/accountancy/bookkeeping/list.php @@ -399,11 +399,29 @@ print ''; print ''; print '
'; print $langs->trans('From'); -print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1); +// TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not +// use setup of keypress to select thirdparty and this hang browser on large database. +if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) +{ + print $formaccounting->select_auxaccount($search_accountancy_aux_code_start, 'search_accountancy_aux_code_start', 1); +} +else +{ + print ''; +} print '
'; print '
'; print $langs->trans('to'); -print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1); +// TODO For the moment we keep a fre input text instead of a combo. The select_auxaccount has problem because it does not +// use setup of keypress to select thirdparty and this hang browser on large database. +if (! empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) +{ + print $formaccounting->select_auxaccount($search_accountancy_aux_code_end, 'search_accountancy_aux_code_end', 1); +} +else +{ + print ''; +} print '
'; print ''; print ''; diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 20780e72508..5c5fb022de9 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -430,6 +430,9 @@ class BookKeeping extends CommonObject if (empty($this->debit)) $this->debit = 0; if (empty($this->credit)) $this->credit = 0; + $this->debit = price2num($this->debit, 'MT'); + $this->credit = price2num($this->credit, 'MT'); + $now = dol_now(); if (empty($this->date_create)) { $this->date_create = $now; @@ -999,6 +1002,9 @@ class BookKeeping extends CommonObject $this->piece_num = trim($this->piece_num); } + $this->debit = price2num($this->debit, 'MT'); + $this->credit = price2num($this->credit, 'MT'); + // Check parameters // Put here code to add a control on parameters values @@ -1069,9 +1075,10 @@ class BookKeeping extends CommonObject public function updateByMvt($piece_num='', $field='', $value='', $mode='') { $this->db->begin(); $sql = "UPDATE " . MAIN_DB_PREFIX . $this->table_element . $mode . " as ab"; - $sql .= ' SET ab.' . $field . '=' . $value; + $sql .= ' SET ab.' . $field . '=' . (is_numeric($value)?$value:"'".$value."'"); $sql .= ' WHERE ab.piece_num=' . $piece_num ; $resql = $this->db->query($sql); + if (! $resql) { $error ++; $this->errors[] = 'Error ' . $this->db->lasterror(); @@ -1576,6 +1583,7 @@ class BookKeeping extends CommonObject $this->db->rollback(); return - 1; } + /* $sql = "DELETE FROM "; $sql .= " FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "accounting_account as aa ON aa.account_number = ab.numero_compte"; @@ -1584,6 +1592,7 @@ class BookKeeping extends CommonObject $sql .= " AND asy.rowid = " . $pcgver; $sql .= " AND ab.entity IN (" . getEntity('accountancy') . ")"; $sql .= " ORDER BY account_number ASC"; + */ } /** diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 8d6f8ca4dcd..e0341b5fa9c 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -106,7 +106,7 @@ $sql .= " AND er.entity IN (" . getEntity('expensereport', 0) . ")"; // We don' if ($date_start && $date_end) $sql .= " AND er.date_debut >= '" . $db->idate($date_start) . "' AND er.date_debut <= '" . $db->idate($date_end) . "'"; if ($in_bookkeeping == 'yes') - $sql .= " AND (er.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='expense_report') )"; + $sql .= " AND er.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')"; $sql .= " ORDER BY er.date_debut"; dol_syslog('accountancy/journal/expensereportsjournal.php:: $sql=' . $sql); @@ -595,7 +595,7 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print ""; - print "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("subledger_account") . ""; + print "" . $userstatic->getNomUrl(0, 'user', 16) . ' - ' . $langs->trans("SubledgerAccount") . ""; print '' . ($mt < 0 ? - price(- $mt) : '') . ""; print '' . ($mt >= 0 ? price($mt) : '') . ""; print ""; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index d95df1c26df..c4091018f16 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -110,7 +110,7 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { if ($date_start && $date_end) $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'"; if ($in_bookkeeping == 'yes') - $sql .= " AND (f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice') )"; + $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')"; $sql .= " ORDER BY f.datef"; dol_syslog('accountancy/journal/purchasesjournal.php:: $sql=' . $sql); @@ -226,7 +226,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->thirdparty_code = $companystatic->code_fournisseur; $bookkeeping->subledger_account = $tabcompany[$key]['code_compta_fournisseur']; $bookkeeping->subledger_label = ''; // TODO To complete - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("subledger_account"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("SubledgerAccount"); $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; @@ -629,7 +629,7 @@ if (empty($action) || $action == 'view') { } else print $accountoshow; print ""; - print "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("subledger_account") . ""; + print "" . $companystatic->getNomUrl(0, 'supplier', 16) . ' - ' . $invoicestatic->refsupplier . ' - ' . $langs->trans("SubledgerAccount") . ""; // print "" . $langs->trans("ThirdParty"); // print ' (' . $companystatic->getNomUrl(0, 'supplier', 16) . ')'; // print ""; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 5060397fc6a..59b4a82cbde 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -116,7 +116,7 @@ $sql .= " AND fd.product_type IN (0,1)"; if ($date_start && $date_end) $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'"; if ($in_bookkeeping == 'yes') - $sql .= " AND (f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice') )"; + $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; $sql .= " ORDER BY f.datef"; dol_syslog('accountancy/journal/sellsjournal.php', LOG_DEBUG); @@ -243,7 +243,7 @@ if ($action == 'writebookkeeping') { $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; $bookkeeping->subledger_label = ''; // TODO To complete $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; - $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("subledger_account"); + $bookkeeping->label_operation = dol_trunc($companystatic->name, 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount"); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'D' : 'C'; $bookkeeping->debit = ($mt >= 0) ? $mt : 0; @@ -589,7 +589,7 @@ if (empty($action) || $action == 'view') { // print "" . $langs->trans("ThirdParty"); // print ' (' . $companystatic->getNomUrl(0, 'customer', 16) . ')'; print ''; - print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("subledger_account") . ""; + print "" . $companystatic->getNomUrl(0, 'customer', 16) . ' - ' . $invoicestatic->ref . ' - ' . $langs->trans("SubledgerAccount") . ""; print "" . ($mt >= 0 ? price($mt) : '') . ""; print "" . ($mt < 0 ? price(- $mt) : '') . ""; print ""; diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index c72d7a7ec34..8e4785ab4d9 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -246,6 +246,7 @@ ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_lettering datetime AFTER ALTER TABLE llx_accounting_bookkeeping ADD COLUMN journal_label varchar(255) AFTER code_journal; ALTER TABLE llx_accounting_bookkeeping ADD COLUMN date_validated datetime AFTER validated; +DROP TABLE llx_accounting_bookkeeping_tmp; CREATE TABLE llx_accounting_bookkeeping_tmp ( rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY, @@ -258,14 +259,14 @@ CREATE TABLE llx_accounting_bookkeeping_tmp thirdparty_code varchar(32), -- Third party code (customer or supplier) when record is saved (may help debug) subledger_account varchar(32), -- FEC:CompAuxNum | account number of subledger account subledger_label varchar(255), -- FEC:CompAuxLib | label of subledger account - numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number + numero_compte varchar(32), -- FEC:CompteNum | account number label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account label_operation varchar(255), -- FEC:EcritureLib | label of the operation - debit numeric(24,8) NOT NULL, -- FEC:Debit - credit numeric(24,8) NOT NULL, -- FEC:Credit - montant numeric(24,8) NOT NULL, -- FEC:Montant (Not necessary) + debit double(24,8) NOT NULL, -- FEC:Debit + credit double(24,8) NOT NULL, -- FEC:Credit + montant double(24,8) NOT NULL, -- FEC:Montant (Not necessary) sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) - multicurrency_amount numeric(24,8), -- FEC:Montantdevise + multicurrency_amount double(24,8), -- FEC:Montantdevise multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet @@ -286,6 +287,13 @@ ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_ ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_numero_compte (numero_compte); ALTER TABLE llx_accounting_bookkeeping_tmp ADD INDEX idx_accounting_bookkeeping_code_journal (code_journal); + +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN debit double(24,8); +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN credit double(24,8); +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN montant double(24,8); +ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN multicurrency_amount double(24,8); + + ALTER TABLE llx_paiementfourn ADD COLUMN model_pdf varchar(255); insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expensereport',201); diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql index ad1160c356d..f33db4be484 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping.sql @@ -32,11 +32,11 @@ CREATE TABLE llx_accounting_bookkeeping numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account label_operation varchar(255), -- FEC:EcritureLib | label of the operation - debit double NOT NULL, -- FEC:Debit - credit double NOT NULL, -- FEC:Credit - montant double NOT NULL, -- FEC:Montant (Not necessary) + debit double(24,8) NOT NULL, -- FEC:Debit + credit double(24,8) NOT NULL, -- FEC:Credit + montant double(24,8) NOT NULL, -- FEC:Montant (Not necessary) sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) - multicurrency_amount double, -- FEC:Montantdevise + multicurrency_amount double(24,8), -- FEC:Montantdevise multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet diff --git a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql index 79954769cef..9ead8c6c6ba 100644 --- a/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql +++ b/htdocs/install/mysql/tables/llx_accounting_bookkeeping_tmp.sql @@ -29,14 +29,14 @@ CREATE TABLE llx_accounting_bookkeeping_tmp thirdparty_code varchar(32), -- Third party code (customer or supplier) when record is saved (may help debug) subledger_account varchar(32), -- FEC:CompAuxNum | account number of subledger account subledger_label varchar(255), -- FEC:CompAuxLib | label of subledger account - numero_compte varchar(32) NOT NULL, -- FEC:CompteNum | account number + numero_compte varchar(32), -- FEC:CompteNum | account number label_compte varchar(255) NOT NULL, -- FEC:CompteLib | label of account label_operation varchar(255), -- FEC:EcritureLib | label of the operation - debit numeric(24,8) NOT NULL, -- FEC:Debit - credit numeric(24,8) NOT NULL, -- FEC:Credit - montant numeric(24,8) NOT NULL, -- FEC:Montant (Not necessary) + debit double(24,8) NOT NULL, -- FEC:Debit + credit double(24,8) NOT NULL, -- FEC:Credit + montant double(24,8) NOT NULL, -- FEC:Montant (Not necessary) sens varchar(1) DEFAULT NULL, -- FEC:Sens (Not necessary) - multicurrency_amount numeric(24,8), -- FEC:Montantdevise + multicurrency_amount double(24,8), -- FEC:Montantdevise multicurrency_code varchar(255), -- FEC:Idevise lettering_code varchar(255), -- FEC:EcritureLet date_lettering datetime, -- FEC:DateLet diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 87555ef5158..8307fdcebf3 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -63,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -80,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance diff --git a/test/phpunit/CodingSqlTest.php b/test/phpunit/CodingSqlTest.php index d158b71fc2e..0b29b29240d 100644 --- a/test/phpunit/CodingSqlTest.php +++ b/test/phpunit/CodingSqlTest.php @@ -176,6 +176,10 @@ class CodingSqlTest extends PHPUnit_Framework_TestCase print __METHOD__." Result for checking we don't have 'ON DELETE CASCADE' = ".$result."\n"; $this->assertTrue($result===false, 'Found ON DELETE CASCADE into '.$file.'. Bad.'); + $result=strpos($filecontent,'NUMERIC('); + print __METHOD__." Result for checking we don't have 'NUMERIC(' = ".$result."\n"; + $this->assertTrue($result===false, 'Found NUMERIC( into '.$file.'. Bad.'); + if ($dir == DOL_DOCUMENT_ROOT.'/install/mysql/migration') { // Test for migration files only From d2232833592cd4391e1dbf8b25fa0799ab0d68e0 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 20:59:53 +0200 Subject: [PATCH 267/515] Fix phpcs --- htdocs/core/modules/DolibarrModules.class.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/htdocs/core/modules/DolibarrModules.class.php b/htdocs/core/modules/DolibarrModules.class.php index 71f834a56d7..98bd412abc2 100644 --- a/htdocs/core/modules/DolibarrModules.class.php +++ b/htdocs/core/modules/DolibarrModules.class.php @@ -617,8 +617,7 @@ class DolibarrModules // Can not be abstract, because we need to insta * Gives the long description of a module. First check README-la_LA.md then README.md * If not markdown files found, it return translated value of the key ->descriptionlong. * - * @param int $checkonly - * @return string Long description of a module from README of from property. + * @return string Long description of a module from README.md of from property. */ function getDescLong() { From 45d8fbb19e3626b21eaee22e2f2f3a862a6c2ba7 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 21:39:48 +0200 Subject: [PATCH 268/515] Fix gravatar --- htdocs/core/class/html.form.class.php | 4 +++- htdocs/expensereport/class/expensereport.class.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php index e291277d8e4..ab64fad57dc 100644 --- a/htdocs/core/class/html.form.class.php +++ b/htdocs/core/class/html.form.class.php @@ -6098,7 +6098,9 @@ class Form */ global $dolibarr_main_url_root; $ret.=''; - $ret.='Gravatar avatar'; // gravatar need md5 hash + //$defaultimg=urlencode(dol_buildpath($nophoto,3)); + $defaultimg='mm'; + $ret.='Gravatar avatar'; // gravatar need md5 hash } else { diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php index a91b1e83dc1..2251149c25a 100644 --- a/htdocs/expensereport/class/expensereport.class.php +++ b/htdocs/expensereport/class/expensereport.class.php @@ -620,7 +620,7 @@ class ExpenseReport extends CommonObject $sql.= " f.tms as date_modification,"; $sql.= " f.date_valid as datev,"; $sql.= " f.date_approve as datea,"; - $sql.= " f.fk_user_author as fk_user_creation,"; + //$sql.= " f.fk_user_author as fk_user_creation,"; // This is not user of creation but user the expense is for. $sql.= " f.fk_user_modif as fk_user_modification,"; $sql.= " f.fk_user_valid,"; $sql.= " f.fk_user_approve"; From 7b6e60077a51205a62e6801a6187da7c1ae0b196 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 21:53:28 +0200 Subject: [PATCH 269/515] FIX id of user not saved when making a payment of expense report --- .../class/paymentexpensereport.class.php | 18 +++++++++--------- htdocs/expensereport/payment/payment.php | 6 +++--- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/htdocs/expensereport/class/paymentexpensereport.class.php b/htdocs/expensereport/class/paymentexpensereport.class.php index 9fc8c7627dd..e2f7536d86c 100644 --- a/htdocs/expensereport/class/paymentexpensereport.class.php +++ b/htdocs/expensereport/class/paymentexpensereport.class.php @@ -479,7 +479,7 @@ class PaymentExpenseReport extends CommonObject $total=$this->total; if ($mode == 'payment_expensereport') $amount=$total; - + // Insert payment into llx_bank $bank_line_id = $acc->addline( $this->datepaid, @@ -516,25 +516,25 @@ class PaymentExpenseReport extends CommonObject dol_print_error($this->db); } } - + // Add link 'user' in bank_url between user and bank transaction if (! $error) { - foreach ($this->amounts as $key => $value) // We should have always same third party but we loop in case of. + foreach ($this->amounts as $key => $value) // We should have always same user but we loop in case of. { if ($mode == 'payment_expensereport') { - $er = new ExpenseReport($this->db); - $er->fetch($key); - $er->fetch_user($er->fk_user_author); + $fuser = new User($this->db); + $fuser->fetch($key); + $result=$acc->add_url_line( $bank_line_id, - $er->user->id, + $fuser->id, DOL_URL_ROOT.'/user/card.php?id=', - $er->user->getFullName($langs), + $fuser->getFullName($langs), 'user' ); - if ($result <= 0) + if ($result <= 0) { $this->error=$this->db->lasterror(); dol_syslog(get_class($this).'::addPaymentToBank '.$this->error); diff --git a/htdocs/expensereport/payment/payment.php b/htdocs/expensereport/payment/payment.php index ebcc1056fe4..91839006b2f 100644 --- a/htdocs/expensereport/payment/payment.php +++ b/htdocs/expensereport/payment/payment.php @@ -78,7 +78,7 @@ if ($action == 'add_payment') setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentities("AccountToDebit")), null, 'errors'); $error++; } - + if (! $error) { $paymentid = 0; @@ -176,7 +176,7 @@ if (GETPOST("action") == 'create') print ''; print ''; print ''; - + dol_fiche_head(); print ''; @@ -225,7 +225,7 @@ if (GETPOST("action") == 'create') $form->select_comptes(isset($_POST["accountid"])?$_POST["accountid"]:$expensereport->accountid, "accountid", 0, '',1); // Show open bank account list print ''; } - + // Number print ''; @@ -213,7 +213,7 @@ $listofnotifiedevents=$notificationtrigger->getListOfManagedEvents(); $var=true; foreach($listofnotifiedevents as $notifiedevent) { - + $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder'); diff --git a/htdocs/bookmarks/bookmarks.lib.php b/htdocs/bookmarks/bookmarks.lib.php index 8f8295f0e53..eca126697cc 100644 --- a/htdocs/bookmarks/bookmarks.lib.php +++ b/htdocs/bookmarks/bookmarks.lib.php @@ -53,11 +53,13 @@ function printBookmarksList($aDb, $aLangs) // No urlencode, all param $url will be urlencoded later if ($sortfield) $tmpurl.=($tmpurl?'&':'').'sortfield='.$sortfield; if ($sortorder) $tmpurl.=($tmpurl?'&':'').'sortorder='.$sortorder; - foreach($_POST as $key => $val) + if (is_array($_POST)) { - if (preg_match('/^search_/', $key) && $val != '') $tmpurl.=($tmpurl?'&':'').$key.'='.$val; + foreach($_POST as $key => $val) + { + if (preg_match('/^search_/', $key) && $val != '') $tmpurl.=($tmpurl?'&':'').$key.'='.$val; + } } - $url.=($tmpurl?'?'.$tmpurl:''); } diff --git a/htdocs/comm/action/index.php b/htdocs/comm/action/index.php index 76a53924ad5..9e293e09799 100644 --- a/htdocs/comm/action/index.php +++ b/htdocs/comm/action/index.php @@ -129,10 +129,13 @@ $hookmanager->initHooks(array('agenda')); if (GETPOST("viewlist") || $action == 'show_list') { $param=''; - foreach($_POST as $key => $val) + if (is_array($_POST)) { - if ($key=='token') continue; - $param.='&'.$key.'='.urlencode($val); + foreach($_POST as $key => $val) + { + if ($key=='token') continue; + $param.='&'.$key.'='.urlencode($val); + } } //print $param; header("Location: ".DOL_URL_ROOT.'/comm/action/listactions.php?'.$param); @@ -142,10 +145,13 @@ if (GETPOST("viewlist") || $action == 'show_list') if (GETPOST("viewperuser") || $action == 'show_peruser') { $param=''; - foreach($_POST as $key => $val) + if (is_array($_POST)) { - if ($key=='token') continue; - $param.='&'.$key.'='.urlencode($val); + foreach($_POST as $key => $val) + { + if ($key=='token') continue; + $param.='&'.$key.'='.urlencode($val); + } } //print $param; header("Location: ".DOL_URL_ROOT.'/comm/action/peruser.php?'.$param); diff --git a/htdocs/comm/action/listactions.php b/htdocs/comm/action/listactions.php index 9cb14454cd5..9e0d1530e85 100644 --- a/htdocs/comm/action/listactions.php +++ b/htdocs/comm/action/listactions.php @@ -120,10 +120,13 @@ $hookmanager->initHooks(array('agendalist')); if (GETPOST("viewcal") || GETPOST("viewweek") || GETPOST("viewday")) { $param=''; - foreach($_POST as $key => $val) - { - $param.='&'.$key.'='.urlencode($val); - } + if (is_array($_POST)) + { + foreach($_POST as $key => $val) + { + $param.='&'.$key.'='.urlencode($val); + } + } //print $param; header("Location: ".DOL_URL_ROOT.'/comm/action/index.php?'.$param); exit; diff --git a/htdocs/core/actions_setmoduleoptions.inc.php b/htdocs/core/actions_setmoduleoptions.inc.php index 03b33b19eb1..b8ae96cb920 100644 --- a/htdocs/core/actions_setmoduleoptions.inc.php +++ b/htdocs/core/actions_setmoduleoptions.inc.php @@ -32,16 +32,19 @@ if ($action == 'setModuleOptions') $db->begin(); // Process common param fields - foreach($_POST as $key => $val) + if (is_array($_POST)) { - if (preg_match('/^param(\d*)$/', $key, $reg)) // Works for POST['param'], POST['param1'], POST['param2'], ... + foreach($_POST as $key => $val) { - $param=GETPOST("param".$reg[1],'alpha'); - $value=GETPOST("value".$reg[1],'alpha'); - if ($param) + if (preg_match('/^param(\d*)$/', $key, $reg)) // Works for POST['param'], POST['param1'], POST['param2'], ... { - $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); - if (! $res > 0) $error++; + $param=GETPOST("param".$reg[1],'alpha'); + $value=GETPOST("value".$reg[1],'alpha'); + if ($param) + { + $res = dolibarr_set_const($db,$param,$value,'chaine',0,'',$conf->entity); + if (! $res > 0) $error++; + } } } } diff --git a/htdocs/install/step1.php b/htdocs/install/step1.php index a0fdc22a015..a8d17388d41 100644 --- a/htdocs/install/step1.php +++ b/htdocs/install/step1.php @@ -345,11 +345,14 @@ if (! $error && $db->connected) if (! $error && $db->connected && $action == "set") { umask(0); - foreach($_POST as $key => $value) + if (is_array($_POST)) { - if (! preg_match('/^db_pass/i', $key)) { - dolibarr_install_syslog("step1: choice for " . $key . " = " . $value); - } + foreach($_POST as $key => $value) + { + if (! preg_match('/^db_pass/i', $key)) { + dolibarr_install_syslog("step1: choice for " . $key . " = " . $value); + } + } } // Show title of step diff --git a/htdocs/main.inc.php b/htdocs/main.inc.php index b5f88def445..1edc67d582f 100644 --- a/htdocs/main.inc.php +++ b/htdocs/main.inc.php @@ -1498,10 +1498,12 @@ function top_menu($head, $title='', $target='', $disablejs=0, $disablehead=0, $a { $qs=dol_escape_htmltag($_SERVER["QUERY_STRING"]); - foreach($_POST as $key=>$value) { - if ($key!=='action' && !is_array($value)) $qs.='&'.$key.'='.urlencode($value); - } - + if (is_array($_POST)) + { + foreach($_POST as $key=>$value) { + if ($key!=='action' && !is_array($value)) $qs.='&'.$key.'='.urlencode($value); + } + } $qs.=(($qs && $morequerystring)?'&':'').$morequerystring; $text =''; //$text.= img_picto(":".$langs->trans("PrintContentArea"), 'printer_top.png', 'class="printer"'); diff --git a/htdocs/projet/activity/perday.php b/htdocs/projet/activity/perday.php index 9cda69560d5..908767afe32 100644 --- a/htdocs/projet/activity/perday.php +++ b/htdocs/projet/activity/perday.php @@ -200,22 +200,25 @@ if ($action == 'addtime' && $user->rights->projet->lire) { $timespent_duration=array(); - foreach($_POST as $key => $time) + if (is_array($_POST)) { - if (intval($time) > 0) + foreach($_POST as $key => $time) { - // Hours or minutes of duration - if (preg_match("/([0-9]+)duration(hour|min)/",$key,$matches)) + if (intval($time) > 0) { - $id = $matches[1]; - if ($id > 0) - { - // We store HOURS in seconds - if($matches[2]=='hour') $timespent_duration[$id] += $time*60*60; + // Hours or minutes of duration + if (preg_match("/([0-9]+)duration(hour|min)/",$key,$matches)) + { + $id = $matches[1]; + if ($id > 0) + { + // We store HOURS in seconds + if($matches[2]=='hour') $timespent_duration[$id] += $time*60*60; - // We store MINUTES in seconds - if($matches[2]=='min') $timespent_duration[$id] += $time*60; - } + // We store MINUTES in seconds + if($matches[2]=='min') $timespent_duration[$id] += $time*60; + } + } } } } diff --git a/htdocs/theme/eldy/ckeditor/config.js b/htdocs/theme/eldy/ckeditor/config.js index eabd0c58bd3..e4a86a37293 100644 --- a/htdocs/theme/eldy/ckeditor/config.js +++ b/htdocs/theme/eldy/ckeditor/config.js @@ -25,7 +25,10 @@ CKEDITOR.editorConfig = function( config ) config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)'; //config.contentsCss = '/css/mysitestyles.css'; config.image_previewText=' '; // Must no be empty - + //config.autoParagraph = false; + //config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd'; // See also rules on this.dataProcessor.writer.setRules + //config.forcePasteAsPlainText = true; + config.toolbar_Full = [ ['Templates','NewPage'], diff --git a/htdocs/theme/md/ckeditor/config.js b/htdocs/theme/md/ckeditor/config.js index 6f1bbe7fb30..a6508e62a88 100644 --- a/htdocs/theme/md/ckeditor/config.js +++ b/htdocs/theme/md/ckeditor/config.js @@ -25,7 +25,10 @@ CKEDITOR.editorConfig = function( config ) config.dialog_backgroundCoverColor = 'rgb(255, 254, 253)'; //config.contentsCss = '/css/mysitestyles.css'; config.image_previewText=' '; // Must no be empty - + //config.autoParagraph = false; + //config.removeFormatTags = 'b,big,code,del,dfn,em,font,i,ins,kbd'; // See also rules on this.dataProcessor.writer.setRules + //config.forcePasteAsPlainText = true; + config.toolbar_Full = [ ['Templates','NewPage'], From 3c576dcf21e5bfeaa610a8bdb06457e33a0a214b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 20:57:45 +0200 Subject: [PATCH 277/515] Fix bad name of tables --- htdocs/admin/websites.php | 28 +++++++++---------- .../install/mysql/migration/5.0.0-6.0.0.sql | 25 +++++++++++++++++ .../mysql/tables/llx_website_pages.key.sql | 4 +-- .../mysql/tables/llx_website_pages.sql | 2 +- htdocs/websites/index.php | 3 +- 5 files changed, 44 insertions(+), 18 deletions(-) diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php index 0336a2533c0..3b894536d04 100644 --- a/htdocs/admin/websites.php +++ b/htdocs/admin/websites.php @@ -1,5 +1,5 @@ +/* Copyright (C) 2004-2017 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -48,15 +48,15 @@ $acts[1] = "disable"; $actl[0] = img_picto($langs->trans("Disabled"),'switch_off'); $actl[1] = img_picto($langs->trans("Activated"),'switch_on'); -$listoffset=GETPOST('listoffset'); -$listlimit=GETPOST('listlimit')>0?GETPOST('listlimit'):1000; $status = 1; -$sortfield = GETPOST("sortfield",'alpha'); -$sortorder = GETPOST("sortorder",'alpha'); -$page = GETPOST("page",'int'); -if ($page == -1 || $page == null) { $page = 0 ; } -$offset = $listlimit * $page ; +// Load variable for pagination +$limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; +$sortfield = GETPOST('sortfield','alpha'); +$sortorder = GETPOST('sortorder','alpha'); +$page = GETPOST('page','int'); +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 +$offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -118,7 +118,7 @@ $elementList = array(); $sourceList=array(); // Actions add or modify an entry into a dictionary -if (GETPOST('actionadd') || GETPOST('actionmodify')) +if (GETPOST('actionadd','alpha') || GETPOST('actionmodify','alpha')) { $listfield=explode(',',$tabfield[$id]); $listfieldinsert=explode(',',$tabfieldinsert[$id]); @@ -138,7 +138,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) } // Si verif ok et action add, on ajoute la ligne - if ($ok && GETPOST('actionadd')) + if ($ok && GETPOST('actionadd','alpha')) { if ($tabrowid[$id]) { @@ -200,7 +200,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) } // Si verif ok et action modify, on modifie la ligne - if ($ok && GETPOST('actionmodify')) + if ($ok && GETPOST('actionmodify','alpha')) { if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } else { $rowidcol="rowid"; } @@ -252,7 +252,7 @@ if (GETPOST('actionadd') || GETPOST('actionmodify')) //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition } -if (GETPOST('actioncancel')) +if (GETPOST('actioncancel','alpha')) { //$_GET["id"]=GETPOST('id', 'int'); // Force affichage dictionnaire en cours d'edition } @@ -412,11 +412,11 @@ if ($id) $obj = new stdClass(); // If data was already input, we define them in obj to populate input fields. - if (GETPOST('actionadd')) + if (GETPOST('actionadd','alpha')) { foreach ($fieldlist as $key=>$val) { - if (GETPOST($val)) + if (GETPOST($val,'alpha')) $obj->$val=GETPOST($val); } } diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 8e4785ab4d9..ec3a945bb09 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -495,6 +495,31 @@ ALTER TABLE llx_usergroup_rights DROP INDEX fk_usergroup; ALTER TABLE llx_usergroup_rights ADD UNIQUE INDEX uk_usergroup_rights (entity, fk_usergroup, fk_id); ALTER TABLE llx_usergroup_rights ADD CONSTRAINT fk_usergroup_rights_fk_usergroup FOREIGN KEY (fk_usergroup) REFERENCES llx_usergroup (rowid); +-- For new module website + +CREATE TABLE llx_website_pages +( + rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, + fk_website integer NOT NULL, + pageurl varchar(16) NOT NULL, + title varchar(255), + description varchar(255), + keywords varchar(255), + content mediumtext, -- text is not enough in size + status integer, + fk_user_create integer, + fk_user_modif integer, + date_creation datetime, + tms timestamp +) ENGINE=innodb; + +ALTER TABLE llx_website_pages ADD UNIQUE INDEX uk_website_pages_url (fk_website,pageurl); + +ALTER TABLE llx_website_pages ADD CONSTRAINT fk_website_pages_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); + + +-- For new module blockedlog + CREATE TABLE llx_blockedlog ( rowid integer AUTO_INCREMENT PRIMARY KEY, diff --git a/htdocs/install/mysql/tables/llx_website_pages.key.sql b/htdocs/install/mysql/tables/llx_website_pages.key.sql index 095dffabc95..00b9439d18b 100644 --- a/htdocs/install/mysql/tables/llx_website_pages.key.sql +++ b/htdocs/install/mysql/tables/llx_website_pages.key.sql @@ -16,7 +16,7 @@ -- -- =========================================================================== -ALTER TABLE llx_website_page ADD UNIQUE INDEX uk_website_page_url (fk_website,pageurl); +ALTER TABLE llx_website_pages ADD UNIQUE INDEX uk_website_pages_url (fk_website,pageurl); -ALTER TABLE llx_website_page ADD CONSTRAINT fk_website_page_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); +ALTER TABLE llx_website_pages ADD CONSTRAINT fk_website_pages_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); diff --git a/htdocs/install/mysql/tables/llx_website_pages.sql b/htdocs/install/mysql/tables/llx_website_pages.sql index 69b6c417528..d45d8f06f56 100644 --- a/htdocs/install/mysql/tables/llx_website_pages.sql +++ b/htdocs/install/mysql/tables/llx_website_pages.sql @@ -17,7 +17,7 @@ -- ======================================================================== -CREATE TABLE llx_website_page +CREATE TABLE llx_website_pages ( rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, fk_website integer NOT NULL, diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index a5c2ae4e046..d27737dd3b2 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -458,7 +458,8 @@ if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage if (! is_link(dol_osencode($pathtomediasinwebsite))) { dol_syslog("Create symlink for ".$pathtomedias." into name ".$pathtomediasinwebsite); - symlink($pathtomedias, $pathtomediasinwebsite); + dol_mkdir(dirname($pathtomediasinwebsite)); // To be sure dir for website exists + $result = symlink($pathtomedias, $pathtomediasinwebsite); } /*if (GETPOST('savevirtualhost') && $object->virtualhost != GETPOST('previewsite')) From a92effa6221b7e5f92d4764e06c7318801ad3586 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 21:16:09 +0200 Subject: [PATCH 278/515] Fix clean test --- test/phpunit/RestAPIDocumentTest.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/test/phpunit/RestAPIDocumentTest.php b/test/phpunit/RestAPIDocumentTest.php index b60a7e9e833..7eb485ffbab 100644 --- a/test/phpunit/RestAPIDocumentTest.php +++ b/test/phpunit/RestAPIDocumentTest.php @@ -144,11 +144,11 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase echo __METHOD__.' Request POST url='.$url."\n"; - + // Send to non existant directory - + dol_delete_dir_recursive(DOL_DATA_ROOT.'/medias/tmpphpunit'); - + //$data = '{ "filename": "mynewfile.txt", "modulepart": "medias", "ref": "", "subdir": "mysubdir1/mysubdir2", "filecontent": "content text", "fileencoding": "" }'; $data = array( 'filename'=>"mynewfile.txt", @@ -158,7 +158,7 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase 'filecontent'=>"content text", 'fileencoding'=>"" ); - + $result = getURLContent($url, 'POST', $data, 1); echo __METHOD__.' Result for sending document: '.var_export($result, true)."\n"; echo __METHOD__.' curl_error_no: '.$result['curl_error_no']."\n"; @@ -166,11 +166,11 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase $this->assertNotNull($object, 'Parsing of json result must no be null'); $this->assertEquals('401', $object['error']['code']); - + // Send to existant directory - + dol_mkdir(DOL_DATA_ROOT.'/medias/tmpphpunit/tmpphpunit2'); - + $data = array( 'filename'=>"mynewfile.txt", 'modulepart'=>"medias", @@ -187,5 +187,7 @@ class RestAPIDocumentTest extends PHPUnit_Framework_TestCase $this->assertNotNull($object2, 'Parsing of json result must no be null'); $this->assertEquals($result2['curl_error_no'], ''); $this->assertEquals($result2['content'], 'true'); + + dol_delete_dir_recursive(DOL_DATA_ROOT.'/medias/tmpphpunit'); } } From fd89535037c041038fd4b70c7bede6685e215e46 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 22:30:19 +0200 Subject: [PATCH 279/515] Debug module website --- htdocs/admin/websites.php | 16 ++-------------- htdocs/theme/eldy/ckeditor/config.js | 1 + htdocs/theme/md/ckeditor/config.js | 1 + htdocs/websites/index.php | 5 ++++- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php index 3b894536d04..9a12441fbb3 100644 --- a/htdocs/admin/websites.php +++ b/htdocs/admin/websites.php @@ -63,9 +63,6 @@ $pagenext = $page + 1; // Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array of hook context $hookmanager->initHooks(array('admin')); -// This page is a generic page to edit dictionaries -// Put here declaration of dictionaries properties - // Name of SQL tables of dictionaries $tabname=array(); $tabname[1] = MAIN_DB_PREFIX."website"; @@ -341,7 +338,7 @@ if ($action == 'delete') //var_dump($elementList); /* - * Show a dictionary + * Show website list */ if ($id) { @@ -447,8 +444,7 @@ if ($id) - // List of available values in database - dol_syslog("htdocs/admin/dict", LOG_DEBUG); + // List of websites in database $resql=$db->query($sql); if ($resql) { @@ -465,14 +461,6 @@ if ($id) print '
'.$langs->trans('Numero'); print ' ('.$langs->trans("ChequeOrTransferNumber").')'; From 65ea0fc2b44e1e96df58c613693483512c07f0f4 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 8 Jul 2017 22:16:35 +0200 Subject: [PATCH 270/515] FIX value of user id filled to 0 in llx_bank_url when recording an expense report. --- htdocs/install/mysql/migration/repair.sql | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index 6ff7356847f..5e888399d9c 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -306,6 +306,14 @@ DELETE FROM llx_c_shipment_mode where code IN (select code from tmp_c_shipment_m drop table tmp_c_shipment_mode; +-- Restore id of user on link for payment of expense report +drop table tmp_bank_url_expense_user; +create table tmp_bank_url_expense_user (select e.fk_user_author, bu2.fk_bank from llx_expensereport as e, llx_bank_url as bu2 where bu2.url_id = e.rowid and bu2.type = 'payment_expensereport'); +update llx_bank_url as bu set url_id = (select e.fk_user_author from tmp_bank_url_expense_user as e where e.fk_bank = bu.fk_bank) where bu.url_id = 0 and bu.type ='user'; +drop table tmp_bank_url_expense_user; + + + -- Clean product prices --delete from llx_product_price where date_price between '2017-04-20 06:51:00' and '2017-04-20 06:51:05'; -- Set product prices into llx_product with last price into llx_product_prices From 13d6664ab499ac66f036388fd8f6a7924e9876ca Mon Sep 17 00:00:00 2001 From: fappels Date: Sun, 9 Jul 2017 12:47:51 +0200 Subject: [PATCH 271/515] Fix delete product from product card --- htdocs/product/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/product/card.php b/htdocs/product/card.php index 3266d02f2f4..0a6c9052b91 100644 --- a/htdocs/product/card.php +++ b/htdocs/product/card.php @@ -561,7 +561,7 @@ if (empty($reshook)) { if (($object->type == Product::TYPE_PRODUCT && $user->rights->produit->supprimer) || ($object->type == Product::TYPE_SERVICE && $user->rights->service->supprimer)) { - $result = $object->delete(DolibarrApiAccess::$user); + $result = $object->delete($user); } if ($result > 0) From f166c96ed5a5065c1fffedaefadee8b5eb972c8f Mon Sep 17 00:00:00 2001 From: Maxime Kohlhaas Date: Sun, 9 Jul 2017 13:09:17 +0200 Subject: [PATCH 272/515] Fix : script to migrate photo path --- scripts/product/migrate_picture_path.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/product/migrate_picture_path.php b/scripts/product/migrate_picture_path.php index f8624ebc040..98a5c4d51bc 100755 --- a/scripts/product/migrate_picture_path.php +++ b/scripts/product/migrate_picture_path.php @@ -104,7 +104,7 @@ function migrate_product_photospath($product) global $conf; $dir = $conf->product->multidir_output[$product->entity]; - $origin = $dir .'/'. get_exdir($product->id,2) . $product->id ."/photos"; + $origin = $dir .'/'. get_exdir($product->id,2,0,0,$product,'product') . $product->id ."/photos"; $destin = $dir.'/'.dol_sanitizeFileName($product->ref); $error = 0; From 9fc17d89882d33329fcb35c8cf6947332b480660 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 13:43:23 +0200 Subject: [PATCH 273/515] Translation --- dev/translation/erp_comparison_translation.txt | 3 +++ htdocs/langs/en_US/admin.lang | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/dev/translation/erp_comparison_translation.txt b/dev/translation/erp_comparison_translation.txt index fb96c17e3f9..c99a5f4cc1c 100644 --- a/dev/translation/erp_comparison_translation.txt +++ b/dev/translation/erp_comparison_translation.txt @@ -12,3 +12,6 @@ Balance ?? Net profit Subledger account Subledger account ?? +Proposal ?? Quotation Proposal is ok but proposition looks better (proposal is for a detailed proposition). We can say also "business proposition or business proposal". + Indian are using "Quotation". + diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index e4fd5a7b253..5d25e654a06 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -535,8 +535,6 @@ Module1120Name=Supplier commercial proposal Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration -Module1400Name=Accounting -Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories From aa66676b7dec99e517c5073c83197218c52cfa32 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 15:15:23 +0200 Subject: [PATCH 274/515] Quick hack to solve missing alias name on doc. --- htdocs/core/lib/pdf.lib.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php index 614379a2900..19063ae79c2 100644 --- a/htdocs/core/lib/pdf.lib.php +++ b/htdocs/core/lib/pdf.lib.php @@ -345,16 +345,18 @@ function pdfGetHeightForHtmlContent(&$pdf, $htmlcontent) * @param Societe|Contact $thirdparty Contact or thirdparty * @param Translate $outputlangs Output language * @param int $includealias 1=Include alias name after name - * @return string + * @return string String with name of thirdparty (+ alias if requested) */ function pdfBuildThirdpartyName($thirdparty, Translate $outputlangs, $includealias=0) { + global $conf; + // Recipient name $socname = ''; if ($thirdparty instanceof Societe) { $socname .= $thirdparty->name; - if ($includealias && !empty($thirdparty->name_alias)) { + if (($includealias || ! empty($conf->global->PDF_INCLUDE_ALIAS_IN_THIRDPARTY_NAME)) && !empty($thirdparty->name_alias)) { $socname .= "\n".$thirdparty->name_alias; } } elseif ($thirdparty instanceof Contact) { From e3943155f3bfe169359dd3ce84bce0fa28223e09 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 19:32:35 +0200 Subject: [PATCH 275/515] Sync transifex --- dev/translation/strip_language_file.php | 4 +- htdocs/fourn/facture/card.php | 1 - htdocs/langs/ar_SA/accountancy.lang | 6 +- htdocs/langs/ar_SA/admin.lang | 4 +- htdocs/langs/ar_SA/agenda.lang | 13 +- htdocs/langs/ar_SA/banks.lang | 5 + htdocs/langs/ar_SA/bills.lang | 28 +- htdocs/langs/ar_SA/bookmarks.lang | 2 + htdocs/langs/ar_SA/boxes.lang | 2 + htdocs/langs/ar_SA/categories.lang | 1 + htdocs/langs/ar_SA/commercial.lang | 1 + htdocs/langs/ar_SA/companies.lang | 23 +- htdocs/langs/ar_SA/contracts.lang | 2 + htdocs/langs/ar_SA/exports.lang | 6 + htdocs/langs/ar_SA/hrm.lang | 2 +- htdocs/langs/ar_SA/install.lang | 1 + htdocs/langs/ar_SA/link.lang | 4 +- htdocs/langs/ar_SA/loan.lang | 2 + htdocs/langs/ar_SA/mails.lang | 4 + htdocs/langs/ar_SA/main.lang | 6 +- htdocs/langs/ar_SA/members.lang | 8 +- htdocs/langs/ar_SA/modulebuilder.lang | 40 +++ htdocs/langs/ar_SA/other.lang | 1 + htdocs/langs/ar_SA/paybox.lang | 1 + htdocs/langs/ar_SA/paypal.lang | 10 +- htdocs/langs/ar_SA/products.lang | 41 ++- htdocs/langs/ar_SA/propal.lang | 4 +- htdocs/langs/ar_SA/resource.lang | 5 + htdocs/langs/ar_SA/salaries.lang | 5 +- htdocs/langs/ar_SA/sendings.lang | 9 +- htdocs/langs/ar_SA/stocks.lang | 60 +++- htdocs/langs/ar_SA/stripe.lang | 42 +++ htdocs/langs/ar_SA/supplier_proposal.lang | 6 +- htdocs/langs/ar_SA/suppliers.lang | 2 + htdocs/langs/ar_SA/trips.lang | 5 +- htdocs/langs/ar_SA/users.lang | 4 +- htdocs/langs/ar_SA/website.lang | 13 +- htdocs/langs/ar_SA/withdrawals.lang | 3 +- htdocs/langs/bg_BG/accountancy.lang | 6 +- htdocs/langs/bg_BG/admin.lang | 4 +- htdocs/langs/bg_BG/agenda.lang | 13 +- htdocs/langs/bg_BG/banks.lang | 5 + htdocs/langs/bg_BG/bills.lang | 28 +- htdocs/langs/bg_BG/bookmarks.lang | 2 + htdocs/langs/bg_BG/boxes.lang | 2 + htdocs/langs/bg_BG/cashdesk.lang | 2 +- htdocs/langs/bg_BG/categories.lang | 1 + htdocs/langs/bg_BG/commercial.lang | 1 + htdocs/langs/bg_BG/companies.lang | 23 +- htdocs/langs/bg_BG/contracts.lang | 2 + htdocs/langs/bg_BG/exports.lang | 6 + htdocs/langs/bg_BG/install.lang | 1 + htdocs/langs/bg_BG/loan.lang | 4 +- htdocs/langs/bg_BG/mails.lang | 4 + htdocs/langs/bg_BG/main.lang | 6 +- htdocs/langs/bg_BG/members.lang | 14 +- htdocs/langs/bg_BG/modulebuilder.lang | 40 +++ htdocs/langs/bg_BG/other.lang | 1 + htdocs/langs/bg_BG/paybox.lang | 1 + htdocs/langs/bg_BG/paypal.lang | 10 +- htdocs/langs/bg_BG/products.lang | 41 ++- htdocs/langs/bg_BG/propal.lang | 4 +- htdocs/langs/bg_BG/resource.lang | 5 + htdocs/langs/bg_BG/salaries.lang | 5 +- htdocs/langs/bg_BG/sendings.lang | 9 +- htdocs/langs/bg_BG/stocks.lang | 60 +++- htdocs/langs/bg_BG/stripe.lang | 42 +++ htdocs/langs/bg_BG/supplier_proposal.lang | 6 +- htdocs/langs/bg_BG/suppliers.lang | 2 + htdocs/langs/bg_BG/trips.lang | 5 +- htdocs/langs/bg_BG/users.lang | 4 +- htdocs/langs/bg_BG/website.lang | 13 +- htdocs/langs/bg_BG/withdrawals.lang | 3 +- htdocs/langs/bn_BD/accountancy.lang | 6 +- htdocs/langs/bn_BD/admin.lang | 4 +- htdocs/langs/bn_BD/agenda.lang | 13 +- htdocs/langs/bn_BD/banks.lang | 5 + htdocs/langs/bn_BD/bookmarks.lang | 2 + htdocs/langs/bn_BD/boxes.lang | 2 + htdocs/langs/bn_BD/categories.lang | 1 + htdocs/langs/bn_BD/commercial.lang | 3 +- htdocs/langs/bn_BD/companies.lang | 21 +- htdocs/langs/bn_BD/contracts.lang | 2 + htdocs/langs/bn_BD/exports.lang | 6 + htdocs/langs/bn_BD/holiday.lang | 2 +- htdocs/langs/bn_BD/install.lang | 1 + htdocs/langs/bn_BD/link.lang | 1 + htdocs/langs/bn_BD/loan.lang | 2 + htdocs/langs/bn_BD/mails.lang | 10 +- htdocs/langs/bn_BD/main.lang | 10 +- htdocs/langs/bn_BD/members.lang | 2 + htdocs/langs/bn_BD/modulebuilder.lang | 40 +++ htdocs/langs/bn_BD/other.lang | 1 + htdocs/langs/bn_BD/paybox.lang | 1 + htdocs/langs/bn_BD/paypal.lang | 10 +- htdocs/langs/bn_BD/products.lang | 41 ++- htdocs/langs/bn_BD/propal.lang | 2 +- htdocs/langs/bn_BD/resource.lang | 5 + htdocs/langs/bn_BD/salaries.lang | 5 +- htdocs/langs/bn_BD/sendings.lang | 9 +- htdocs/langs/bn_BD/stocks.lang | 60 +++- htdocs/langs/bn_BD/stripe.lang | 42 +++ htdocs/langs/bn_BD/supplier_proposal.lang | 6 +- htdocs/langs/bn_BD/suppliers.lang | 2 + htdocs/langs/bn_BD/trips.lang | 5 +- htdocs/langs/bn_BD/users.lang | 4 +- htdocs/langs/bn_BD/website.lang | 11 +- htdocs/langs/bn_BD/withdrawals.lang | 3 +- htdocs/langs/bs_BA/accountancy.lang | 20 +- htdocs/langs/bs_BA/admin.lang | 6 +- htdocs/langs/bs_BA/agenda.lang | 17 +- htdocs/langs/bs_BA/bills.lang | 48 ++-- htdocs/langs/bs_BA/bookmarks.lang | 2 + htdocs/langs/bs_BA/boxes.lang | 114 ++++---- htdocs/langs/bs_BA/categories.lang | 1 + htdocs/langs/bs_BA/commercial.lang | 1 + htdocs/langs/bs_BA/donations.lang | 2 +- htdocs/langs/bs_BA/exports.lang | 6 + htdocs/langs/bs_BA/holiday.lang | 2 +- htdocs/langs/bs_BA/interventions.lang | 2 +- htdocs/langs/bs_BA/link.lang | 1 + htdocs/langs/bs_BA/loan.lang | 2 + htdocs/langs/bs_BA/mails.lang | 4 + htdocs/langs/bs_BA/main.lang | 6 +- htdocs/langs/bs_BA/modulebuilder.lang | 40 +++ htdocs/langs/bs_BA/multicurrency.lang | 18 ++ htdocs/langs/bs_BA/opensurvey.lang | 4 +- htdocs/langs/bs_BA/other.lang | 1 + htdocs/langs/bs_BA/paybox.lang | 3 +- htdocs/langs/bs_BA/paypal.lang | 10 +- htdocs/langs/bs_BA/productbatch.lang | 4 +- htdocs/langs/bs_BA/products.lang | 14 +- htdocs/langs/bs_BA/salaries.lang | 5 +- htdocs/langs/bs_BA/sendings.lang | 9 +- htdocs/langs/bs_BA/stocks.lang | 2 +- htdocs/langs/bs_BA/stripe.lang | 42 +++ htdocs/langs/bs_BA/suppliers.lang | 1 + htdocs/langs/bs_BA/website.lang | 13 +- htdocs/langs/ca_ES/accountancy.lang | 6 +- htdocs/langs/ca_ES/admin.lang | 4 +- htdocs/langs/ca_ES/agenda.lang | 7 +- htdocs/langs/ca_ES/banks.lang | 5 + htdocs/langs/ca_ES/bills.lang | 6 +- htdocs/langs/ca_ES/bookmarks.lang | 2 + htdocs/langs/ca_ES/boxes.lang | 2 + htdocs/langs/ca_ES/categories.lang | 1 + htdocs/langs/ca_ES/commercial.lang | 1 + htdocs/langs/ca_ES/companies.lang | 23 +- htdocs/langs/ca_ES/deliveries.lang | 2 +- htdocs/langs/ca_ES/errors.lang | 2 +- htdocs/langs/ca_ES/exports.lang | 6 + htdocs/langs/ca_ES/holiday.lang | 2 +- htdocs/langs/ca_ES/install.lang | 3 +- htdocs/langs/ca_ES/loan.lang | 2 + htdocs/langs/ca_ES/mails.lang | 6 +- htdocs/langs/ca_ES/main.lang | 6 +- htdocs/langs/ca_ES/modulebuilder.lang | 40 +++ htdocs/langs/ca_ES/multicurrency.lang | 18 ++ htdocs/langs/ca_ES/other.lang | 1 + htdocs/langs/ca_ES/paybox.lang | 1 + htdocs/langs/ca_ES/paypal.lang | 10 +- htdocs/langs/ca_ES/products.lang | 109 +++++--- htdocs/langs/ca_ES/propal.lang | 6 +- htdocs/langs/ca_ES/salaries.lang | 3 +- htdocs/langs/ca_ES/sendings.lang | 9 +- htdocs/langs/ca_ES/stocks.lang | 2 +- htdocs/langs/ca_ES/stripe.lang | 42 +++ htdocs/langs/ca_ES/supplier_proposal.lang | 6 +- htdocs/langs/ca_ES/suppliers.lang | 2 + htdocs/langs/ca_ES/trips.lang | 5 +- htdocs/langs/ca_ES/users.lang | 4 +- htdocs/langs/ca_ES/website.lang | 11 +- htdocs/langs/ca_ES/withdrawals.lang | 9 +- htdocs/langs/cs_CZ/accountancy.lang | 6 +- htdocs/langs/cs_CZ/admin.lang | 4 +- htdocs/langs/cs_CZ/agenda.lang | 55 ++-- htdocs/langs/cs_CZ/banks.lang | 5 + htdocs/langs/cs_CZ/bills.lang | 268 +++++++++--------- htdocs/langs/cs_CZ/bookmarks.lang | 2 + htdocs/langs/cs_CZ/boxes.lang | 2 + htdocs/langs/cs_CZ/categories.lang | 3 +- htdocs/langs/cs_CZ/commercial.lang | 3 +- htdocs/langs/cs_CZ/companies.lang | 7 +- htdocs/langs/cs_CZ/contracts.lang | 2 + htdocs/langs/cs_CZ/cron.lang | 6 +- htdocs/langs/cs_CZ/donations.lang | 4 +- htdocs/langs/cs_CZ/exports.lang | 6 + htdocs/langs/cs_CZ/install.lang | 1 + htdocs/langs/cs_CZ/interventions.lang | 54 ++-- htdocs/langs/cs_CZ/loan.lang | 2 + htdocs/langs/cs_CZ/mails.lang | 8 +- htdocs/langs/cs_CZ/main.lang | 6 +- htdocs/langs/cs_CZ/members.lang | 62 ++-- htdocs/langs/cs_CZ/modulebuilder.lang | 40 +++ htdocs/langs/cs_CZ/multicurrency.lang | 18 ++ htdocs/langs/cs_CZ/oauth.lang | 54 ++-- htdocs/langs/cs_CZ/opensurvey.lang | 2 +- htdocs/langs/cs_CZ/orders.lang | 54 ++-- htdocs/langs/cs_CZ/other.lang | 1 + htdocs/langs/cs_CZ/paybox.lang | 1 + htdocs/langs/cs_CZ/paypal.lang | 10 +- htdocs/langs/cs_CZ/printing.lang | 16 +- htdocs/langs/cs_CZ/products.lang | 161 ++++++----- htdocs/langs/cs_CZ/propal.lang | 2 +- htdocs/langs/cs_CZ/receiptprinter.lang | 78 +++--- htdocs/langs/cs_CZ/resource.lang | 7 +- htdocs/langs/cs_CZ/salaries.lang | 13 +- htdocs/langs/cs_CZ/sendings.lang | 9 +- htdocs/langs/cs_CZ/sms.lang | 12 +- htdocs/langs/cs_CZ/stocks.lang | 130 ++++++--- htdocs/langs/cs_CZ/stripe.lang | 42 +++ htdocs/langs/cs_CZ/supplier_proposal.lang | 90 +++--- htdocs/langs/cs_CZ/suppliers.lang | 2 + htdocs/langs/cs_CZ/trips.lang | 7 +- htdocs/langs/cs_CZ/users.lang | 36 +-- htdocs/langs/cs_CZ/website.lang | 57 ++-- htdocs/langs/cs_CZ/withdrawals.lang | 97 +++---- htdocs/langs/cs_CZ/workflow.lang | 16 +- htdocs/langs/da_DK/accountancy.lang | 6 +- htdocs/langs/da_DK/admin.lang | 4 +- htdocs/langs/da_DK/agenda.lang | 13 +- htdocs/langs/da_DK/banks.lang | 5 + htdocs/langs/da_DK/bills.lang | 28 +- htdocs/langs/da_DK/bookmarks.lang | 2 + htdocs/langs/da_DK/boxes.lang | 2 + htdocs/langs/da_DK/categories.lang | 1 + htdocs/langs/da_DK/commercial.lang | 1 + htdocs/langs/da_DK/companies.lang | 23 +- htdocs/langs/da_DK/contracts.lang | 2 + htdocs/langs/da_DK/exports.lang | 6 + htdocs/langs/da_DK/install.lang | 1 + htdocs/langs/da_DK/link.lang | 1 + htdocs/langs/da_DK/loan.lang | 2 + htdocs/langs/da_DK/mails.lang | 4 + htdocs/langs/da_DK/main.lang | 6 +- htdocs/langs/da_DK/members.lang | 4 +- htdocs/langs/da_DK/modulebuilder.lang | 40 +++ htdocs/langs/da_DK/other.lang | 1 + htdocs/langs/da_DK/paybox.lang | 1 + htdocs/langs/da_DK/paypal.lang | 10 +- htdocs/langs/da_DK/products.lang | 41 ++- htdocs/langs/da_DK/propal.lang | 4 +- htdocs/langs/da_DK/resource.lang | 5 + htdocs/langs/da_DK/salaries.lang | 5 +- htdocs/langs/da_DK/sendings.lang | 9 +- htdocs/langs/da_DK/stocks.lang | 60 +++- htdocs/langs/da_DK/stripe.lang | 42 +++ htdocs/langs/da_DK/supplier_proposal.lang | 6 +- htdocs/langs/da_DK/suppliers.lang | 2 + htdocs/langs/da_DK/trips.lang | 5 +- htdocs/langs/da_DK/users.lang | 4 +- htdocs/langs/da_DK/website.lang | 13 +- htdocs/langs/da_DK/withdrawals.lang | 3 +- htdocs/langs/de_AT/banks.lang | 2 + htdocs/langs/de_AT/bills.lang | 7 +- htdocs/langs/de_AT/bookmarks.lang | 3 +- htdocs/langs/de_AT/commercial.lang | 2 - htdocs/langs/de_AT/companies.lang | 1 + htdocs/langs/de_AT/compta.lang | 1 - htdocs/langs/de_AT/contracts.lang | 14 +- htdocs/langs/de_AT/donations.lang | 2 + htdocs/langs/de_AT/mails.lang | 1 + htdocs/langs/de_AT/members.lang | 2 + htdocs/langs/de_AT/oauth.lang | 3 - htdocs/langs/de_AT/orders.lang | 2 + htdocs/langs/de_AT/paypal.lang | 1 - htdocs/langs/de_AT/printing.lang | 2 - htdocs/langs/de_AT/products.lang | 6 + htdocs/langs/de_AT/propal.lang | 1 + htdocs/langs/de_AT/sendings.lang | 2 + htdocs/langs/de_AT/sms.lang | 2 + htdocs/langs/de_AT/supplier_proposal.lang | 3 + htdocs/langs/de_AT/users.lang | 1 - htdocs/langs/de_CH/agenda.lang | 3 + htdocs/langs/de_CH/banks.lang | 8 + htdocs/langs/de_CH/bills.lang | 10 + htdocs/langs/de_CH/commercial.lang | 3 +- htdocs/langs/de_CH/companies.lang | 9 + htdocs/langs/de_CH/contracts.lang | 5 +- htdocs/langs/de_CH/ecm.lang | 15 + htdocs/langs/de_CH/help.lang | 4 + htdocs/langs/de_CH/hrm.lang | 1 - htdocs/langs/de_CH/install.lang | 4 +- htdocs/langs/de_CH/mails.lang | 1 - htdocs/langs/de_CH/members.lang | 2 +- htdocs/langs/de_CH/opensurvey.lang | 1 + htdocs/langs/de_CH/paybox.lang | 3 + htdocs/langs/de_CH/productbatch.lang | 3 +- htdocs/langs/de_CH/products.lang | 1 + htdocs/langs/de_CH/propal.lang | 4 + htdocs/langs/de_CH/resource.lang | 1 + htdocs/langs/de_CH/salaries.lang | 3 - htdocs/langs/de_CH/sendings.lang | 1 - htdocs/langs/de_CH/sms.lang | 1 + htdocs/langs/de_CH/stocks.lang | 3 +- htdocs/langs/de_CH/stripe.lang | 2 + htdocs/langs/de_CH/supplier_proposal.lang | 1 + htdocs/langs/de_CH/suppliers.lang | 3 + htdocs/langs/de_CH/trips.lang | 1 - htdocs/langs/de_CH/users.lang | 1 - htdocs/langs/de_CH/website.lang | 1 - htdocs/langs/de_DE/accountancy.lang | 6 +- htdocs/langs/de_DE/admin.lang | 78 +++--- htdocs/langs/de_DE/agenda.lang | 7 +- htdocs/langs/de_DE/banks.lang | 2 +- htdocs/langs/de_DE/bills.lang | 6 +- htdocs/langs/de_DE/boxes.lang | 2 +- htdocs/langs/de_DE/categories.lang | 4 +- htdocs/langs/de_DE/companies.lang | 2 +- htdocs/langs/de_DE/compta.lang | 6 +- htdocs/langs/de_DE/contracts.lang | 4 +- htdocs/langs/de_DE/cron.lang | 14 +- htdocs/langs/de_DE/deliveries.lang | 6 +- htdocs/langs/de_DE/errors.lang | 14 +- htdocs/langs/de_DE/loan.lang | 16 +- htdocs/langs/de_DE/mailmanspip.lang | 4 +- htdocs/langs/de_DE/mails.lang | 6 +- htdocs/langs/de_DE/main.lang | 6 +- htdocs/langs/de_DE/modulebuilder.lang | 40 +++ htdocs/langs/de_DE/multicurrency.lang | 18 ++ htdocs/langs/de_DE/oauth.lang | 40 +-- htdocs/langs/de_DE/orders.lang | 24 +- htdocs/langs/de_DE/other.lang | 1 + htdocs/langs/de_DE/paybox.lang | 1 + htdocs/langs/de_DE/printing.lang | 2 +- htdocs/langs/de_DE/productbatch.lang | 2 +- htdocs/langs/de_DE/products.lang | 14 +- htdocs/langs/de_DE/projects.lang | 30 +- htdocs/langs/de_DE/propal.lang | 8 +- htdocs/langs/de_DE/resource.lang | 5 + htdocs/langs/de_DE/salaries.lang | 3 +- htdocs/langs/de_DE/stocks.lang | 32 +-- htdocs/langs/de_DE/stripe.lang | 42 +++ htdocs/langs/de_DE/supplier_proposal.lang | 14 +- htdocs/langs/de_DE/suppliers.lang | 12 +- htdocs/langs/de_DE/trips.lang | 41 +-- htdocs/langs/de_DE/website.lang | 11 +- htdocs/langs/de_DE/withdrawals.lang | 31 +- htdocs/langs/de_DE/workflow.lang | 2 +- htdocs/langs/el_GR/accountancy.lang | 6 +- htdocs/langs/el_GR/admin.lang | 8 +- htdocs/langs/el_GR/agenda.lang | 13 +- htdocs/langs/el_GR/banks.lang | 13 +- htdocs/langs/el_GR/bills.lang | 12 +- htdocs/langs/el_GR/bookmarks.lang | 2 + htdocs/langs/el_GR/boxes.lang | 2 + htdocs/langs/el_GR/categories.lang | 1 + htdocs/langs/el_GR/commercial.lang | 1 + htdocs/langs/el_GR/companies.lang | 9 +- htdocs/langs/el_GR/contracts.lang | 2 + htdocs/langs/el_GR/donations.lang | 2 +- htdocs/langs/el_GR/errors.lang | 2 +- htdocs/langs/el_GR/exports.lang | 6 + htdocs/langs/el_GR/install.lang | 1 + htdocs/langs/el_GR/interventions.lang | 2 +- htdocs/langs/el_GR/loan.lang | 2 + htdocs/langs/el_GR/mails.lang | 4 + htdocs/langs/el_GR/main.lang | 8 +- htdocs/langs/el_GR/members.lang | 18 +- htdocs/langs/el_GR/modulebuilder.lang | 40 +++ htdocs/langs/el_GR/multicurrency.lang | 18 ++ htdocs/langs/el_GR/oauth.lang | 10 +- htdocs/langs/el_GR/other.lang | 1 + htdocs/langs/el_GR/paybox.lang | 1 + htdocs/langs/el_GR/paypal.lang | 10 +- htdocs/langs/el_GR/printing.lang | 6 +- htdocs/langs/el_GR/products.lang | 43 ++- htdocs/langs/el_GR/propal.lang | 4 +- htdocs/langs/el_GR/receiptprinter.lang | 2 +- htdocs/langs/el_GR/resource.lang | 5 + htdocs/langs/el_GR/salaries.lang | 5 +- htdocs/langs/el_GR/sendings.lang | 9 +- htdocs/langs/el_GR/stocks.lang | 60 +++- htdocs/langs/el_GR/stripe.lang | 42 +++ htdocs/langs/el_GR/supplier_proposal.lang | 6 +- htdocs/langs/el_GR/suppliers.lang | 2 + htdocs/langs/el_GR/trips.lang | 5 +- htdocs/langs/el_GR/users.lang | 20 +- htdocs/langs/el_GR/website.lang | 33 ++- htdocs/langs/el_GR/withdrawals.lang | 3 +- htdocs/langs/en_AU/bills.lang | 1 - htdocs/langs/en_AU/oauth.lang | 3 - htdocs/langs/en_AU/printing.lang | 2 - htdocs/langs/en_CA/oauth.lang | 3 - htdocs/langs/en_CA/printing.lang | 2 - htdocs/langs/en_GB/accountancy.lang | 136 +++++++++ htdocs/langs/en_GB/admin.lang | 3 + htdocs/langs/en_GB/bills.lang | 1 - htdocs/langs/en_GB/bookmarks.lang | 3 + htdocs/langs/en_GB/cashdesk.lang | 9 + htdocs/langs/en_GB/oauth.lang | 3 - htdocs/langs/en_GB/printing.lang | 1 - htdocs/langs/en_GB/trips.lang | 1 - htdocs/langs/en_GB/users.lang | 2 - htdocs/langs/en_GB/website.lang | 3 - htdocs/langs/en_GB/withdrawals.lang | 1 - htdocs/langs/en_IN/admin.lang | 15 + htdocs/langs/en_IN/agenda.lang | 6 + htdocs/langs/en_IN/bills.lang | 2 + htdocs/langs/en_IN/boxes.lang | 6 + htdocs/langs/en_IN/commercial.lang | 2 + htdocs/langs/en_IN/companies.lang | 4 + htdocs/langs/en_IN/compta.lang | 2 + htdocs/langs/en_IN/ecm.lang | 2 + htdocs/langs/en_IN/install.lang | 2 + htdocs/langs/en_IN/main.lang | 21 +- htdocs/langs/en_IN/oauth.lang | 3 - htdocs/langs/en_IN/other.lang | 5 + htdocs/langs/en_IN/printing.lang | 2 - htdocs/langs/en_IN/projects.lang | 2 + htdocs/langs/en_IN/propal.lang | 21 ++ htdocs/langs/en_IN/supplier_proposal.lang | 4 + htdocs/langs/en_US/accountancy.lang | 3 - htdocs/langs/es_AR/oauth.lang | 3 - htdocs/langs/es_AR/printing.lang | 2 - htdocs/langs/es_BO/oauth.lang | 3 - htdocs/langs/es_BO/printing.lang | 2 - htdocs/langs/es_CL/accountancy.lang | 8 + htdocs/langs/es_CL/admin.lang | 14 +- htdocs/langs/es_CL/bookmarks.lang | 11 + htdocs/langs/es_CL/companies.lang | 27 +- htdocs/langs/es_CL/compta.lang | 1 + htdocs/langs/es_CL/main.lang | 1 + htdocs/langs/es_CL/members.lang | 1 - htdocs/langs/es_CL/oauth.lang | 3 - htdocs/langs/es_CL/printing.lang | 2 - htdocs/langs/es_CL/propal.lang | 12 + htdocs/langs/es_CL/stocks.lang | 2 + htdocs/langs/es_CL/workflow.lang | 10 + htdocs/langs/es_CO/banks.lang | 1 + htdocs/langs/es_CO/bills.lang | 2 +- htdocs/langs/es_CO/companies.lang | 1 - htdocs/langs/es_CO/compta.lang | 1 - htdocs/langs/es_CO/members.lang | 1 - htdocs/langs/es_CO/oauth.lang | 3 - htdocs/langs/es_CO/printing.lang | 2 - htdocs/langs/es_CO/salaries.lang | 3 - htdocs/langs/es_CO/stocks.lang | 2 + htdocs/langs/es_DO/oauth.lang | 3 - htdocs/langs/es_DO/printing.lang | 2 - htdocs/langs/es_EC/main.lang | 1 + htdocs/langs/es_EC/oauth.lang | 3 - htdocs/langs/es_EC/printing.lang | 2 - htdocs/langs/es_ES/accountancy.lang | 62 ++-- htdocs/langs/es_ES/admin.lang | 78 +++--- htdocs/langs/es_ES/agenda.lang | 11 +- htdocs/langs/es_ES/banks.lang | 5 + htdocs/langs/es_ES/bookmarks.lang | 2 + htdocs/langs/es_ES/boxes.lang | 2 + htdocs/langs/es_ES/categories.lang | 1 + htdocs/langs/es_ES/commercial.lang | 1 + htdocs/langs/es_ES/companies.lang | 21 +- htdocs/langs/es_ES/compta.lang | 8 +- htdocs/langs/es_ES/contracts.lang | 2 + htdocs/langs/es_ES/cron.lang | 16 +- htdocs/langs/es_ES/errors.lang | 20 +- htdocs/langs/es_ES/exports.lang | 8 +- htdocs/langs/es_ES/hrm.lang | 4 +- htdocs/langs/es_ES/install.lang | 3 +- htdocs/langs/es_ES/interventions.lang | 2 +- htdocs/langs/es_ES/loan.lang | 2 + htdocs/langs/es_ES/mails.lang | 6 +- htdocs/langs/es_ES/main.lang | 40 +-- htdocs/langs/es_ES/members.lang | 6 +- htdocs/langs/es_ES/modulebuilder.lang | 40 +++ htdocs/langs/es_ES/multicurrency.lang | 18 ++ htdocs/langs/es_ES/other.lang | 55 ++-- htdocs/langs/es_ES/paybox.lang | 1 + htdocs/langs/es_ES/paypal.lang | 10 +- htdocs/langs/es_ES/products.lang | 39 ++- htdocs/langs/es_ES/projects.lang | 22 +- htdocs/langs/es_ES/propal.lang | 2 +- htdocs/langs/es_ES/resource.lang | 5 + htdocs/langs/es_ES/salaries.lang | 3 +- htdocs/langs/es_ES/sendings.lang | 1 - htdocs/langs/es_ES/stocks.lang | 56 +++- htdocs/langs/es_ES/stripe.lang | 42 +++ htdocs/langs/es_ES/supplier_proposal.lang | 2 +- htdocs/langs/es_ES/suppliers.lang | 2 + htdocs/langs/es_ES/trips.lang | 3 +- htdocs/langs/es_ES/website.lang | 11 +- htdocs/langs/es_ES/withdrawals.lang | 3 +- htdocs/langs/es_MX/admin.lang | 5 +- htdocs/langs/es_MX/agenda.lang | 1 - htdocs/langs/es_MX/banks.lang | 2 + htdocs/langs/es_MX/bills.lang | 1 + htdocs/langs/es_MX/companies.lang | 4 +- htdocs/langs/es_MX/compta.lang | 1 - htdocs/langs/es_MX/main.lang | 1 - htdocs/langs/es_MX/members.lang | 1 - htdocs/langs/es_MX/oauth.lang | 3 - htdocs/langs/es_MX/products.lang | 1 + htdocs/langs/es_MX/propal.lang | 1 + htdocs/langs/es_MX/stocks.lang | 3 + htdocs/langs/es_PA/oauth.lang | 3 - htdocs/langs/es_PA/printing.lang | 2 - htdocs/langs/es_PE/accountancy.lang | 27 ++ htdocs/langs/es_PE/bills.lang | 1 - htdocs/langs/es_PE/oauth.lang | 3 - htdocs/langs/es_PE/printing.lang | 2 - htdocs/langs/es_PY/oauth.lang | 3 - htdocs/langs/es_PY/printing.lang | 2 - htdocs/langs/es_VE/banks.lang | 3 + htdocs/langs/es_VE/bills.lang | 1 + htdocs/langs/es_VE/bookmarks.lang | 4 +- htdocs/langs/es_VE/companies.lang | 3 +- htdocs/langs/es_VE/members.lang | 3 + htdocs/langs/es_VE/oauth.lang | 3 - htdocs/langs/es_VE/products.lang | 1 + htdocs/langs/es_VE/propal.lang | 2 + htdocs/langs/es_VE/stocks.lang | 2 + htdocs/langs/es_VE/supplier_proposal.lang | 3 + htdocs/langs/et_EE/accountancy.lang | 6 +- htdocs/langs/et_EE/admin.lang | 4 +- htdocs/langs/et_EE/agenda.lang | 13 +- htdocs/langs/et_EE/banks.lang | 5 + htdocs/langs/et_EE/bills.lang | 28 +- htdocs/langs/et_EE/bookmarks.lang | 2 + htdocs/langs/et_EE/boxes.lang | 2 + htdocs/langs/et_EE/categories.lang | 1 + htdocs/langs/et_EE/commercial.lang | 1 + htdocs/langs/et_EE/companies.lang | 23 +- htdocs/langs/et_EE/contracts.lang | 2 + htdocs/langs/et_EE/exports.lang | 6 + htdocs/langs/et_EE/holiday.lang | 2 +- htdocs/langs/et_EE/install.lang | 1 + htdocs/langs/et_EE/link.lang | 1 + htdocs/langs/et_EE/loan.lang | 2 + htdocs/langs/et_EE/mails.lang | 10 +- htdocs/langs/et_EE/main.lang | 6 +- htdocs/langs/et_EE/margins.lang | 2 +- htdocs/langs/et_EE/members.lang | 6 +- htdocs/langs/et_EE/modulebuilder.lang | 40 +++ htdocs/langs/et_EE/other.lang | 1 + htdocs/langs/et_EE/paybox.lang | 1 + htdocs/langs/et_EE/paypal.lang | 10 +- htdocs/langs/et_EE/products.lang | 41 ++- htdocs/langs/et_EE/propal.lang | 4 +- htdocs/langs/et_EE/resource.lang | 5 + htdocs/langs/et_EE/salaries.lang | 5 +- htdocs/langs/et_EE/sendings.lang | 9 +- htdocs/langs/et_EE/stocks.lang | 60 +++- htdocs/langs/et_EE/stripe.lang | 42 +++ htdocs/langs/et_EE/supplier_proposal.lang | 6 +- htdocs/langs/et_EE/suppliers.lang | 2 + htdocs/langs/et_EE/trips.lang | 5 +- htdocs/langs/et_EE/users.lang | 4 +- htdocs/langs/et_EE/website.lang | 13 +- htdocs/langs/et_EE/withdrawals.lang | 3 +- htdocs/langs/eu_ES/accountancy.lang | 6 +- htdocs/langs/eu_ES/admin.lang | 4 +- htdocs/langs/eu_ES/agenda.lang | 13 +- htdocs/langs/eu_ES/banks.lang | 9 +- htdocs/langs/eu_ES/bills.lang | 28 +- htdocs/langs/eu_ES/bookmarks.lang | 6 +- htdocs/langs/eu_ES/boxes.lang | 2 + htdocs/langs/eu_ES/categories.lang | 3 +- htdocs/langs/eu_ES/commercial.lang | 3 +- htdocs/langs/eu_ES/companies.lang | 23 +- htdocs/langs/eu_ES/contracts.lang | 2 + htdocs/langs/eu_ES/exports.lang | 6 + htdocs/langs/eu_ES/holiday.lang | 2 +- htdocs/langs/eu_ES/install.lang | 1 + htdocs/langs/eu_ES/loan.lang | 2 + htdocs/langs/eu_ES/mails.lang | 10 +- htdocs/langs/eu_ES/main.lang | 6 +- htdocs/langs/eu_ES/margins.lang | 4 +- htdocs/langs/eu_ES/members.lang | 2 + htdocs/langs/eu_ES/modulebuilder.lang | 40 +++ htdocs/langs/eu_ES/other.lang | 1 + htdocs/langs/eu_ES/paybox.lang | 1 + htdocs/langs/eu_ES/paypal.lang | 10 +- htdocs/langs/eu_ES/products.lang | 41 ++- htdocs/langs/eu_ES/propal.lang | 4 +- htdocs/langs/eu_ES/resource.lang | 5 + htdocs/langs/eu_ES/salaries.lang | 5 +- htdocs/langs/eu_ES/sendings.lang | 9 +- htdocs/langs/eu_ES/stocks.lang | 60 +++- htdocs/langs/eu_ES/stripe.lang | 42 +++ htdocs/langs/eu_ES/supplier_proposal.lang | 6 +- htdocs/langs/eu_ES/suppliers.lang | 2 + htdocs/langs/eu_ES/trips.lang | 5 +- htdocs/langs/eu_ES/users.lang | 4 +- htdocs/langs/eu_ES/website.lang | 13 +- htdocs/langs/eu_ES/withdrawals.lang | 3 +- htdocs/langs/fa_IR/accountancy.lang | 6 +- htdocs/langs/fa_IR/admin.lang | 4 +- htdocs/langs/fa_IR/agenda.lang | 13 +- htdocs/langs/fa_IR/banks.lang | 9 +- htdocs/langs/fa_IR/bills.lang | 28 +- htdocs/langs/fa_IR/bookmarks.lang | 6 +- htdocs/langs/fa_IR/boxes.lang | 2 + htdocs/langs/fa_IR/categories.lang | 3 +- htdocs/langs/fa_IR/commercial.lang | 3 +- htdocs/langs/fa_IR/companies.lang | 23 +- htdocs/langs/fa_IR/contracts.lang | 2 + htdocs/langs/fa_IR/exports.lang | 6 + htdocs/langs/fa_IR/holiday.lang | 2 +- htdocs/langs/fa_IR/install.lang | 1 + htdocs/langs/fa_IR/loan.lang | 2 + htdocs/langs/fa_IR/mails.lang | 10 +- htdocs/langs/fa_IR/main.lang | 6 +- htdocs/langs/fa_IR/margins.lang | 2 +- htdocs/langs/fa_IR/members.lang | 2 + htdocs/langs/fa_IR/modulebuilder.lang | 40 +++ htdocs/langs/fa_IR/other.lang | 1 + htdocs/langs/fa_IR/paybox.lang | 1 + htdocs/langs/fa_IR/paypal.lang | 10 +- htdocs/langs/fa_IR/products.lang | 41 ++- htdocs/langs/fa_IR/propal.lang | 4 +- htdocs/langs/fa_IR/resource.lang | 5 + htdocs/langs/fa_IR/salaries.lang | 5 +- htdocs/langs/fa_IR/sendings.lang | 9 +- htdocs/langs/fa_IR/stocks.lang | 60 +++- htdocs/langs/fa_IR/stripe.lang | 42 +++ htdocs/langs/fa_IR/supplier_proposal.lang | 6 +- htdocs/langs/fa_IR/suppliers.lang | 2 + htdocs/langs/fa_IR/trips.lang | 5 +- htdocs/langs/fa_IR/users.lang | 4 +- htdocs/langs/fa_IR/website.lang | 13 +- htdocs/langs/fa_IR/withdrawals.lang | 3 +- htdocs/langs/fi_FI/accountancy.lang | 6 +- htdocs/langs/fi_FI/admin.lang | 4 +- htdocs/langs/fi_FI/agenda.lang | 15 +- htdocs/langs/fi_FI/banks.lang | 75 ++--- htdocs/langs/fi_FI/bills.lang | 48 ++-- htdocs/langs/fi_FI/bookmarks.lang | 8 +- htdocs/langs/fi_FI/boxes.lang | 2 + htdocs/langs/fi_FI/cashdesk.lang | 10 +- htdocs/langs/fi_FI/categories.lang | 5 +- htdocs/langs/fi_FI/commercial.lang | 41 +-- htdocs/langs/fi_FI/companies.lang | 137 ++++----- htdocs/langs/fi_FI/contracts.lang | 8 +- htdocs/langs/fi_FI/deliveries.lang | 24 +- htdocs/langs/fi_FI/dict.lang | 54 ++-- htdocs/langs/fi_FI/ecm.lang | 72 ++--- htdocs/langs/fi_FI/exports.lang | 6 + htdocs/langs/fi_FI/externalsite.lang | 2 +- htdocs/langs/fi_FI/ftp.lang | 6 +- htdocs/langs/fi_FI/help.lang | 6 +- htdocs/langs/fi_FI/holiday.lang | 2 +- htdocs/langs/fi_FI/hrm.lang | 24 +- htdocs/langs/fi_FI/incoterm.lang | 4 +- htdocs/langs/fi_FI/install.lang | 1 + htdocs/langs/fi_FI/link.lang | 19 +- htdocs/langs/fi_FI/loan.lang | 54 ++-- htdocs/langs/fi_FI/mails.lang | 10 +- htdocs/langs/fi_FI/main.lang | 6 +- htdocs/langs/fi_FI/margins.lang | 10 +- htdocs/langs/fi_FI/members.lang | 10 +- htdocs/langs/fi_FI/modulebuilder.lang | 40 +++ htdocs/langs/fi_FI/opensurvey.lang | 84 +++--- htdocs/langs/fi_FI/orders.lang | 206 +++++++------- htdocs/langs/fi_FI/other.lang | 1 + htdocs/langs/fi_FI/paybox.lang | 15 +- htdocs/langs/fi_FI/paypal.lang | 10 +- htdocs/langs/fi_FI/products.lang | 41 ++- htdocs/langs/fi_FI/propal.lang | 100 +++---- htdocs/langs/fi_FI/receiptprinter.lang | 80 +++--- htdocs/langs/fi_FI/resource.lang | 5 + htdocs/langs/fi_FI/salaries.lang | 27 +- htdocs/langs/fi_FI/sendings.lang | 49 ++-- htdocs/langs/fi_FI/sms.lang | 4 +- htdocs/langs/fi_FI/stocks.lang | 60 +++- htdocs/langs/fi_FI/stripe.lang | 42 +++ htdocs/langs/fi_FI/supplier_proposal.lang | 12 +- htdocs/langs/fi_FI/suppliers.lang | 76 ++--- htdocs/langs/fi_FI/trips.lang | 11 +- htdocs/langs/fi_FI/users.lang | 4 +- htdocs/langs/fi_FI/website.lang | 13 +- htdocs/langs/fi_FI/withdrawals.lang | 3 +- htdocs/langs/fr_BE/bills.lang | 5 - htdocs/langs/fr_BE/companies.lang | 1 + htdocs/langs/fr_BE/oauth.lang | 3 - htdocs/langs/fr_BE/printing.lang | 2 - htdocs/langs/fr_CA/accountancy.lang | 2 - htdocs/langs/fr_CA/admin.lang | 8 +- htdocs/langs/fr_CA/agenda.lang | 2 + htdocs/langs/fr_CA/banks.lang | 5 + htdocs/langs/fr_CA/bills.lang | 2 +- htdocs/langs/fr_CA/bookmarks.lang | 5 + htdocs/langs/fr_CA/boxes.lang | 6 +- htdocs/langs/fr_CA/categories.lang | 1 + htdocs/langs/fr_CA/commercial.lang | 1 + htdocs/langs/fr_CA/compta.lang | 1 - htdocs/langs/fr_CA/contracts.lang | 2 + htdocs/langs/fr_CA/cron.lang | 1 - htdocs/langs/fr_CA/dict.lang | 83 ++++++ htdocs/langs/fr_CA/errors.lang | 2 +- htdocs/langs/fr_CA/externalsite.lang | 4 + htdocs/langs/fr_CA/ftp.lang | 11 + htdocs/langs/fr_CA/help.lang | 23 ++ htdocs/langs/fr_CA/hrm.lang | 12 + htdocs/langs/fr_CA/incoterm.lang | 2 + htdocs/langs/fr_CA/install.lang | 1 + htdocs/langs/fr_CA/languages.lang | 51 ++++ htdocs/langs/fr_CA/link.lang | 6 + htdocs/langs/fr_CA/loan.lang | 41 +++ htdocs/langs/fr_CA/mailmanspip.lang | 23 ++ htdocs/langs/fr_CA/mails.lang | 4 + htdocs/langs/fr_CA/main.lang | 21 +- htdocs/langs/fr_CA/members.lang | 3 + htdocs/langs/fr_CA/modulebuilder.lang | 9 + htdocs/langs/fr_CA/multicurrency.lang | 13 + htdocs/langs/fr_CA/other.lang | 7 - htdocs/langs/fr_CA/paypal.lang | 26 ++ htdocs/langs/fr_CA/productbatch.lang | 19 ++ htdocs/langs/fr_CA/products.lang | 11 +- htdocs/langs/fr_CA/propal.lang | 1 + htdocs/langs/fr_CA/receiptprinter.lang | 34 +++ htdocs/langs/fr_CA/resource.lang | 1 + htdocs/langs/fr_CA/salaries.lang | 2 - htdocs/langs/fr_CA/stocks.lang | 29 ++ htdocs/langs/fr_CA/stripe.lang | 15 + htdocs/langs/fr_CA/supplier_proposal.lang | 1 + htdocs/langs/fr_CA/suppliers.lang | 2 + htdocs/langs/fr_CA/trips.lang | 1 + htdocs/langs/fr_CA/website.lang | 3 - htdocs/langs/fr_CA/withdrawals.lang | 1 + htdocs/langs/fr_CH/oauth.lang | 3 - htdocs/langs/fr_CH/printing.lang | 2 - htdocs/langs/fr_FR/accountancy.lang | 64 +++-- htdocs/langs/fr_FR/admin.lang | 56 ++-- htdocs/langs/fr_FR/agenda.lang | 9 +- htdocs/langs/fr_FR/banks.lang | 7 +- htdocs/langs/fr_FR/bills.lang | 4 +- htdocs/langs/fr_FR/bookmarks.lang | 6 +- htdocs/langs/fr_FR/boxes.lang | 2 + htdocs/langs/fr_FR/categories.lang | 1 + htdocs/langs/fr_FR/commercial.lang | 1 + htdocs/langs/fr_FR/companies.lang | 2 +- htdocs/langs/fr_FR/compta.lang | 8 +- htdocs/langs/fr_FR/contracts.lang | 2 + htdocs/langs/fr_FR/cron.lang | 14 +- htdocs/langs/fr_FR/errors.lang | 20 +- htdocs/langs/fr_FR/install.lang | 1 + htdocs/langs/fr_FR/loan.lang | 2 + htdocs/langs/fr_FR/mails.lang | 10 +- htdocs/langs/fr_FR/main.lang | 32 ++- htdocs/langs/fr_FR/margins.lang | 2 +- htdocs/langs/fr_FR/members.lang | 13 +- htdocs/langs/fr_FR/modulebuilder.lang | 40 +++ htdocs/langs/fr_FR/multicurrency.lang | 18 ++ htdocs/langs/fr_FR/other.lang | 35 +-- htdocs/langs/fr_FR/paybox.lang | 1 + htdocs/langs/fr_FR/paypal.lang | 10 +- htdocs/langs/fr_FR/products.lang | 41 ++- htdocs/langs/fr_FR/projects.lang | 12 +- htdocs/langs/fr_FR/propal.lang | 2 +- htdocs/langs/fr_FR/resource.lang | 5 + htdocs/langs/fr_FR/salaries.lang | 9 +- htdocs/langs/fr_FR/sendings.lang | 3 +- htdocs/langs/fr_FR/stocks.lang | 60 +++- htdocs/langs/fr_FR/stripe.lang | 42 +++ htdocs/langs/fr_FR/supplier_proposal.lang | 2 +- htdocs/langs/fr_FR/suppliers.lang | 5 +- htdocs/langs/fr_FR/trips.lang | 3 +- htdocs/langs/fr_FR/users.lang | 4 +- htdocs/langs/fr_FR/website.lang | 11 +- htdocs/langs/fr_FR/withdrawals.lang | 3 +- htdocs/langs/he_IL/accountancy.lang | 6 +- htdocs/langs/he_IL/admin.lang | 4 +- htdocs/langs/he_IL/agenda.lang | 13 +- htdocs/langs/he_IL/banks.lang | 9 +- htdocs/langs/he_IL/bills.lang | 28 +- htdocs/langs/he_IL/bookmarks.lang | 6 +- htdocs/langs/he_IL/boxes.lang | 2 + htdocs/langs/he_IL/categories.lang | 5 +- htdocs/langs/he_IL/commercial.lang | 3 +- htdocs/langs/he_IL/companies.lang | 23 +- htdocs/langs/he_IL/contracts.lang | 2 + htdocs/langs/he_IL/exports.lang | 6 + htdocs/langs/he_IL/holiday.lang | 2 +- htdocs/langs/he_IL/install.lang | 1 + htdocs/langs/he_IL/link.lang | 1 + htdocs/langs/he_IL/loan.lang | 2 + htdocs/langs/he_IL/mails.lang | 10 +- htdocs/langs/he_IL/main.lang | 6 +- htdocs/langs/he_IL/margins.lang | 2 +- htdocs/langs/he_IL/members.lang | 2 + htdocs/langs/he_IL/modulebuilder.lang | 40 +++ htdocs/langs/he_IL/other.lang | 1 + htdocs/langs/he_IL/paybox.lang | 1 + htdocs/langs/he_IL/paypal.lang | 10 +- htdocs/langs/he_IL/products.lang | 41 ++- htdocs/langs/he_IL/propal.lang | 4 +- htdocs/langs/he_IL/resource.lang | 5 + htdocs/langs/he_IL/salaries.lang | 5 +- htdocs/langs/he_IL/sendings.lang | 9 +- htdocs/langs/he_IL/stocks.lang | 60 +++- htdocs/langs/he_IL/stripe.lang | 42 +++ htdocs/langs/he_IL/supplier_proposal.lang | 6 +- htdocs/langs/he_IL/suppliers.lang | 2 + htdocs/langs/he_IL/trips.lang | 5 +- htdocs/langs/he_IL/users.lang | 4 +- htdocs/langs/he_IL/website.lang | 11 +- htdocs/langs/he_IL/withdrawals.lang | 3 +- htdocs/langs/hr_HR/accountancy.lang | 6 +- htdocs/langs/hr_HR/admin.lang | 4 +- htdocs/langs/hr_HR/agenda.lang | 13 +- htdocs/langs/hr_HR/banks.lang | 9 +- htdocs/langs/hr_HR/bills.lang | 28 +- htdocs/langs/hr_HR/bookmarks.lang | 6 +- htdocs/langs/hr_HR/boxes.lang | 2 + htdocs/langs/hr_HR/categories.lang | 3 +- htdocs/langs/hr_HR/commercial.lang | 3 +- htdocs/langs/hr_HR/companies.lang | 23 +- htdocs/langs/hr_HR/contracts.lang | 16 +- htdocs/langs/hr_HR/donations.lang | 2 +- htdocs/langs/hr_HR/exports.lang | 6 + htdocs/langs/hr_HR/help.lang | 2 +- htdocs/langs/hr_HR/holiday.lang | 2 +- htdocs/langs/hr_HR/hrm.lang | 2 +- htdocs/langs/hr_HR/install.lang | 1 + htdocs/langs/hr_HR/loan.lang | 2 + htdocs/langs/hr_HR/mails.lang | 10 +- htdocs/langs/hr_HR/main.lang | 6 +- htdocs/langs/hr_HR/margins.lang | 2 +- htdocs/langs/hr_HR/members.lang | 2 + htdocs/langs/hr_HR/modulebuilder.lang | 40 +++ htdocs/langs/hr_HR/other.lang | 1 + htdocs/langs/hr_HR/paybox.lang | 1 + htdocs/langs/hr_HR/paypal.lang | 12 +- htdocs/langs/hr_HR/products.lang | 41 ++- htdocs/langs/hr_HR/propal.lang | 4 +- htdocs/langs/hr_HR/resource.lang | 5 + htdocs/langs/hr_HR/salaries.lang | 5 +- htdocs/langs/hr_HR/sendings.lang | 9 +- htdocs/langs/hr_HR/sms.lang | 2 +- htdocs/langs/hr_HR/stocks.lang | 60 +++- htdocs/langs/hr_HR/stripe.lang | 42 +++ htdocs/langs/hr_HR/supplier_proposal.lang | 6 +- htdocs/langs/hr_HR/suppliers.lang | 2 + htdocs/langs/hr_HR/trips.lang | 5 +- htdocs/langs/hr_HR/users.lang | 4 +- htdocs/langs/hr_HR/website.lang | 11 +- htdocs/langs/hr_HR/withdrawals.lang | 3 +- htdocs/langs/hu_HU/accountancy.lang | 6 +- htdocs/langs/hu_HU/admin.lang | 4 +- htdocs/langs/hu_HU/agenda.lang | 13 +- htdocs/langs/hu_HU/banks.lang | 9 +- htdocs/langs/hu_HU/bills.lang | 32 +-- htdocs/langs/hu_HU/bookmarks.lang | 6 +- htdocs/langs/hu_HU/boxes.lang | 2 + htdocs/langs/hu_HU/categories.lang | 5 +- htdocs/langs/hu_HU/commercial.lang | 33 +-- htdocs/langs/hu_HU/companies.lang | 23 +- htdocs/langs/hu_HU/contracts.lang | 2 + htdocs/langs/hu_HU/exports.lang | 6 + htdocs/langs/hu_HU/externalsite.lang | 6 +- htdocs/langs/hu_HU/ftp.lang | 6 +- htdocs/langs/hu_HU/help.lang | 6 +- htdocs/langs/hu_HU/holiday.lang | 2 +- htdocs/langs/hu_HU/install.lang | 1 + htdocs/langs/hu_HU/languages.lang | 12 +- htdocs/langs/hu_HU/ldap.lang | 4 +- htdocs/langs/hu_HU/loan.lang | 2 + htdocs/langs/hu_HU/mails.lang | 10 +- htdocs/langs/hu_HU/main.lang | 6 +- htdocs/langs/hu_HU/margins.lang | 2 +- htdocs/langs/hu_HU/members.lang | 20 +- htdocs/langs/hu_HU/modulebuilder.lang | 40 +++ htdocs/langs/hu_HU/multicurrency.lang | 18 ++ htdocs/langs/hu_HU/orders.lang | 88 +++--- htdocs/langs/hu_HU/other.lang | 1 + htdocs/langs/hu_HU/paybox.lang | 29 +- htdocs/langs/hu_HU/paypal.lang | 10 +- htdocs/langs/hu_HU/products.lang | 41 ++- htdocs/langs/hu_HU/propal.lang | 4 +- htdocs/langs/hu_HU/resource.lang | 5 + htdocs/langs/hu_HU/salaries.lang | 5 +- htdocs/langs/hu_HU/sendings.lang | 9 +- htdocs/langs/hu_HU/stocks.lang | 70 ++++- htdocs/langs/hu_HU/stripe.lang | 42 +++ htdocs/langs/hu_HU/supplier_proposal.lang | 6 +- htdocs/langs/hu_HU/suppliers.lang | 2 + htdocs/langs/hu_HU/trips.lang | 5 +- htdocs/langs/hu_HU/users.lang | 4 +- htdocs/langs/hu_HU/website.lang | 11 +- htdocs/langs/hu_HU/withdrawals.lang | 3 +- htdocs/langs/id_ID/accountancy.lang | 6 +- htdocs/langs/id_ID/admin.lang | 4 +- htdocs/langs/id_ID/agenda.lang | 13 +- htdocs/langs/id_ID/banks.lang | 9 +- htdocs/langs/id_ID/bills.lang | 28 +- htdocs/langs/id_ID/bookmarks.lang | 6 +- htdocs/langs/id_ID/boxes.lang | 2 + htdocs/langs/id_ID/categories.lang | 3 +- htdocs/langs/id_ID/commercial.lang | 3 +- htdocs/langs/id_ID/companies.lang | 23 +- htdocs/langs/id_ID/contracts.lang | 2 + htdocs/langs/id_ID/exports.lang | 6 + htdocs/langs/id_ID/holiday.lang | 2 +- htdocs/langs/id_ID/install.lang | 1 + htdocs/langs/id_ID/loan.lang | 2 + htdocs/langs/id_ID/mails.lang | 10 +- htdocs/langs/id_ID/main.lang | 6 +- htdocs/langs/id_ID/margins.lang | 4 +- htdocs/langs/id_ID/members.lang | 2 + htdocs/langs/id_ID/modulebuilder.lang | 40 +++ htdocs/langs/id_ID/other.lang | 1 + htdocs/langs/id_ID/paybox.lang | 1 + htdocs/langs/id_ID/paypal.lang | 10 +- htdocs/langs/id_ID/products.lang | 41 ++- htdocs/langs/id_ID/propal.lang | 4 +- htdocs/langs/id_ID/resource.lang | 5 + htdocs/langs/id_ID/salaries.lang | 5 +- htdocs/langs/id_ID/sendings.lang | 9 +- htdocs/langs/id_ID/stocks.lang | 60 +++- htdocs/langs/id_ID/stripe.lang | 42 +++ htdocs/langs/id_ID/supplier_proposal.lang | 6 +- htdocs/langs/id_ID/suppliers.lang | 2 + htdocs/langs/id_ID/trips.lang | 5 +- htdocs/langs/id_ID/users.lang | 4 +- htdocs/langs/id_ID/website.lang | 11 +- htdocs/langs/id_ID/withdrawals.lang | 3 +- htdocs/langs/is_IS/accountancy.lang | 6 +- htdocs/langs/is_IS/admin.lang | 4 +- htdocs/langs/is_IS/agenda.lang | 13 +- htdocs/langs/is_IS/banks.lang | 9 +- htdocs/langs/is_IS/bills.lang | 28 +- htdocs/langs/is_IS/bookmarks.lang | 6 +- htdocs/langs/is_IS/boxes.lang | 2 + htdocs/langs/is_IS/categories.lang | 5 +- htdocs/langs/is_IS/commercial.lang | 3 +- htdocs/langs/is_IS/companies.lang | 23 +- htdocs/langs/is_IS/contracts.lang | 2 + htdocs/langs/is_IS/exports.lang | 6 + htdocs/langs/is_IS/holiday.lang | 2 +- htdocs/langs/is_IS/install.lang | 1 + htdocs/langs/is_IS/link.lang | 1 + htdocs/langs/is_IS/loan.lang | 2 + htdocs/langs/is_IS/mails.lang | 10 +- htdocs/langs/is_IS/main.lang | 6 +- htdocs/langs/is_IS/margins.lang | 2 +- htdocs/langs/is_IS/members.lang | 8 +- htdocs/langs/is_IS/modulebuilder.lang | 40 +++ htdocs/langs/is_IS/other.lang | 1 + htdocs/langs/is_IS/paybox.lang | 1 + htdocs/langs/is_IS/paypal.lang | 10 +- htdocs/langs/is_IS/products.lang | 41 ++- htdocs/langs/is_IS/propal.lang | 4 +- htdocs/langs/is_IS/resource.lang | 5 + htdocs/langs/is_IS/salaries.lang | 5 +- htdocs/langs/is_IS/sendings.lang | 9 +- htdocs/langs/is_IS/stocks.lang | 60 +++- htdocs/langs/is_IS/stripe.lang | 42 +++ htdocs/langs/is_IS/supplier_proposal.lang | 6 +- htdocs/langs/is_IS/suppliers.lang | 2 + htdocs/langs/is_IS/trips.lang | 5 +- htdocs/langs/is_IS/users.lang | 4 +- htdocs/langs/is_IS/website.lang | 11 +- htdocs/langs/is_IS/withdrawals.lang | 3 +- htdocs/langs/it_IT/accountancy.lang | 28 +- htdocs/langs/it_IT/admin.lang | 6 +- htdocs/langs/it_IT/agenda.lang | 14 +- htdocs/langs/it_IT/bills.lang | 114 ++++---- htdocs/langs/it_IT/bookmarks.lang | 8 +- htdocs/langs/it_IT/boxes.lang | 16 +- htdocs/langs/it_IT/cashdesk.lang | 2 +- htdocs/langs/it_IT/categories.lang | 17 +- htdocs/langs/it_IT/commercial.lang | 11 +- htdocs/langs/it_IT/companies.lang | 43 +-- htdocs/langs/it_IT/contracts.lang | 18 +- htdocs/langs/it_IT/deliveries.lang | 8 +- htdocs/langs/it_IT/errors.lang | 2 +- htdocs/langs/it_IT/exports.lang | 11 + htdocs/langs/it_IT/holiday.lang | 2 +- htdocs/langs/it_IT/install.lang | 11 +- htdocs/langs/it_IT/interventions.lang | 15 +- htdocs/langs/it_IT/loan.lang | 3 + htdocs/langs/it_IT/mails.lang | 10 +- htdocs/langs/it_IT/main.lang | 6 +- htdocs/langs/it_IT/margins.lang | 2 +- htdocs/langs/it_IT/members.lang | 12 +- htdocs/langs/it_IT/modulebuilder.lang | 40 +++ htdocs/langs/it_IT/multicurrency.lang | 18 ++ htdocs/langs/it_IT/oauth.lang | 9 +- htdocs/langs/it_IT/orders.lang | 24 +- htdocs/langs/it_IT/other.lang | 1 + htdocs/langs/it_IT/paybox.lang | 1 + htdocs/langs/it_IT/paypal.lang | 10 +- htdocs/langs/it_IT/printing.lang | 8 +- htdocs/langs/it_IT/productbatch.lang | 8 +- htdocs/langs/it_IT/products.lang | 63 +++-- htdocs/langs/it_IT/propal.lang | 2 +- htdocs/langs/it_IT/resource.lang | 9 +- htdocs/langs/it_IT/salaries.lang | 5 +- htdocs/langs/it_IT/sendings.lang | 29 +- htdocs/langs/it_IT/stocks.lang | 82 ++++-- htdocs/langs/it_IT/stripe.lang | 42 +++ htdocs/langs/it_IT/supplier_proposal.lang | 6 +- htdocs/langs/it_IT/suppliers.lang | 2 + htdocs/langs/it_IT/trips.lang | 57 ++-- htdocs/langs/it_IT/users.lang | 4 +- htdocs/langs/it_IT/website.lang | 11 +- htdocs/langs/it_IT/withdrawals.lang | 7 +- htdocs/langs/ja_JP/accountancy.lang | 6 +- htdocs/langs/ja_JP/admin.lang | 4 +- htdocs/langs/ja_JP/agenda.lang | 14 +- htdocs/langs/ja_JP/banks.lang | 9 +- htdocs/langs/ja_JP/bills.lang | 28 +- htdocs/langs/ja_JP/bookmarks.lang | 8 +- htdocs/langs/ja_JP/boxes.lang | 2 + htdocs/langs/ja_JP/categories.lang | 5 +- htdocs/langs/ja_JP/commercial.lang | 3 +- htdocs/langs/ja_JP/companies.lang | 37 +-- htdocs/langs/ja_JP/contracts.lang | 2 + htdocs/langs/ja_JP/dict.lang | 60 ++-- htdocs/langs/ja_JP/exports.lang | 13 +- htdocs/langs/ja_JP/externalsite.lang | 4 +- htdocs/langs/ja_JP/ftp.lang | 6 +- htdocs/langs/ja_JP/help.lang | 6 +- htdocs/langs/ja_JP/holiday.lang | 2 +- htdocs/langs/ja_JP/hrm.lang | 26 +- htdocs/langs/ja_JP/incoterm.lang | 6 +- htdocs/langs/ja_JP/install.lang | 1 + htdocs/langs/ja_JP/interventions.lang | 1 + htdocs/langs/ja_JP/link.lang | 2 +- htdocs/langs/ja_JP/loan.lang | 3 + htdocs/langs/ja_JP/mails.lang | 10 +- htdocs/langs/ja_JP/main.lang | 6 +- htdocs/langs/ja_JP/margins.lang | 2 +- htdocs/langs/ja_JP/members.lang | 2 + htdocs/langs/ja_JP/modulebuilder.lang | 40 +++ htdocs/langs/ja_JP/other.lang | 1 + htdocs/langs/ja_JP/paybox.lang | 15 +- htdocs/langs/ja_JP/paypal.lang | 10 +- htdocs/langs/ja_JP/printing.lang | 12 +- htdocs/langs/ja_JP/products.lang | 41 ++- htdocs/langs/ja_JP/propal.lang | 4 +- htdocs/langs/ja_JP/resource.lang | 5 + htdocs/langs/ja_JP/salaries.lang | 5 +- htdocs/langs/ja_JP/sendings.lang | 9 +- htdocs/langs/ja_JP/sms.lang | 4 +- htdocs/langs/ja_JP/stocks.lang | 60 +++- htdocs/langs/ja_JP/stripe.lang | 42 +++ htdocs/langs/ja_JP/supplier_proposal.lang | 6 +- htdocs/langs/ja_JP/suppliers.lang | 2 + htdocs/langs/ja_JP/trips.lang | 27 +- htdocs/langs/ja_JP/users.lang | 4 +- htdocs/langs/ja_JP/website.lang | 11 +- htdocs/langs/ja_JP/withdrawals.lang | 3 +- htdocs/langs/ka_GE/accountancy.lang | 6 +- htdocs/langs/ka_GE/admin.lang | 4 +- htdocs/langs/ka_GE/agenda.lang | 14 +- htdocs/langs/ka_GE/banks.lang | 9 +- htdocs/langs/ka_GE/bills.lang | 28 +- htdocs/langs/ka_GE/bookmarks.lang | 6 +- htdocs/langs/ka_GE/boxes.lang | 2 + htdocs/langs/ka_GE/cashdesk.lang | 2 +- htdocs/langs/ka_GE/categories.lang | 3 +- htdocs/langs/ka_GE/commercial.lang | 3 +- htdocs/langs/ka_GE/companies.lang | 23 +- htdocs/langs/ka_GE/contracts.lang | 2 + htdocs/langs/ka_GE/exports.lang | 13 +- htdocs/langs/ka_GE/holiday.lang | 2 +- htdocs/langs/ka_GE/install.lang | 1 + htdocs/langs/ka_GE/interventions.lang | 1 + htdocs/langs/ka_GE/languages.lang | 5 + htdocs/langs/ka_GE/link.lang | 1 + htdocs/langs/ka_GE/loan.lang | 3 + htdocs/langs/ka_GE/mails.lang | 10 +- htdocs/langs/ka_GE/main.lang | 6 +- htdocs/langs/ka_GE/margins.lang | 2 +- htdocs/langs/ka_GE/members.lang | 2 + htdocs/langs/ka_GE/modulebuilder.lang | 40 +++ htdocs/langs/ka_GE/oauth.lang | 10 +- htdocs/langs/ka_GE/other.lang | 1 + htdocs/langs/ka_GE/paybox.lang | 1 + htdocs/langs/ka_GE/paypal.lang | 10 +- htdocs/langs/ka_GE/printing.lang | 2 +- htdocs/langs/ka_GE/products.lang | 41 ++- htdocs/langs/ka_GE/propal.lang | 4 +- htdocs/langs/ka_GE/resource.lang | 5 + htdocs/langs/ka_GE/salaries.lang | 5 +- htdocs/langs/ka_GE/sendings.lang | 9 +- htdocs/langs/ka_GE/stocks.lang | 60 +++- htdocs/langs/ka_GE/stripe.lang | 42 +++ htdocs/langs/ka_GE/supplier_proposal.lang | 6 +- htdocs/langs/ka_GE/suppliers.lang | 2 + htdocs/langs/ka_GE/trips.lang | 27 +- htdocs/langs/ka_GE/users.lang | 4 +- htdocs/langs/ka_GE/website.lang | 11 +- htdocs/langs/ka_GE/withdrawals.lang | 3 +- htdocs/langs/km_KH/accountancy.lang | 6 +- htdocs/langs/km_KH/admin.lang | 4 +- htdocs/langs/km_KH/agenda.lang | 14 +- htdocs/langs/km_KH/banks.lang | 9 +- htdocs/langs/km_KH/bills.lang | 28 +- htdocs/langs/km_KH/bookmarks.lang | 6 +- htdocs/langs/km_KH/boxes.lang | 2 + htdocs/langs/km_KH/cashdesk.lang | 2 +- htdocs/langs/km_KH/categories.lang | 1 + htdocs/langs/km_KH/commercial.lang | 3 +- htdocs/langs/km_KH/companies.lang | 23 +- htdocs/langs/km_KH/contracts.lang | 2 + htdocs/langs/km_KH/exports.lang | 13 +- htdocs/langs/km_KH/holiday.lang | 2 +- htdocs/langs/km_KH/install.lang | 1 + htdocs/langs/km_KH/interventions.lang | 1 + htdocs/langs/km_KH/languages.lang | 5 + htdocs/langs/km_KH/loan.lang | 3 + htdocs/langs/km_KH/mails.lang | 10 +- htdocs/langs/km_KH/main.lang | 6 +- htdocs/langs/km_KH/margins.lang | 2 +- htdocs/langs/km_KH/members.lang | 2 + htdocs/langs/km_KH/modulebuilder.lang | 40 +++ htdocs/langs/km_KH/oauth.lang | 9 +- htdocs/langs/km_KH/other.lang | 1 + htdocs/langs/km_KH/paybox.lang | 1 + htdocs/langs/km_KH/paypal.lang | 10 +- htdocs/langs/km_KH/printing.lang | 2 +- htdocs/langs/km_KH/products.lang | 41 ++- htdocs/langs/km_KH/propal.lang | 4 +- htdocs/langs/km_KH/resource.lang | 5 + htdocs/langs/km_KH/salaries.lang | 3 +- htdocs/langs/km_KH/sendings.lang | 9 +- htdocs/langs/km_KH/stocks.lang | 60 +++- htdocs/langs/km_KH/stripe.lang | 42 +++ htdocs/langs/km_KH/supplier_proposal.lang | 6 +- htdocs/langs/km_KH/suppliers.lang | 2 + htdocs/langs/km_KH/trips.lang | 27 +- htdocs/langs/km_KH/users.lang | 4 +- htdocs/langs/km_KH/website.lang | 11 +- htdocs/langs/km_KH/withdrawals.lang | 3 +- htdocs/langs/kn_IN/accountancy.lang | 6 +- htdocs/langs/kn_IN/admin.lang | 4 +- htdocs/langs/kn_IN/agenda.lang | 14 +- htdocs/langs/kn_IN/banks.lang | 9 +- htdocs/langs/kn_IN/bills.lang | 28 +- htdocs/langs/kn_IN/bookmarks.lang | 6 +- htdocs/langs/kn_IN/boxes.lang | 2 + htdocs/langs/kn_IN/cashdesk.lang | 6 +- htdocs/langs/kn_IN/categories.lang | 3 +- htdocs/langs/kn_IN/commercial.lang | 3 +- htdocs/langs/kn_IN/companies.lang | 23 +- htdocs/langs/kn_IN/contracts.lang | 2 + htdocs/langs/kn_IN/exports.lang | 13 +- htdocs/langs/kn_IN/holiday.lang | 2 +- htdocs/langs/kn_IN/install.lang | 1 + htdocs/langs/kn_IN/interventions.lang | 1 + htdocs/langs/kn_IN/languages.lang | 5 + htdocs/langs/kn_IN/link.lang | 1 + htdocs/langs/kn_IN/loan.lang | 3 + htdocs/langs/kn_IN/mails.lang | 10 +- htdocs/langs/kn_IN/main.lang | 6 +- htdocs/langs/kn_IN/margins.lang | 2 +- htdocs/langs/kn_IN/members.lang | 2 + htdocs/langs/kn_IN/modulebuilder.lang | 40 +++ htdocs/langs/kn_IN/oauth.lang | 10 +- htdocs/langs/kn_IN/other.lang | 1 + htdocs/langs/kn_IN/paybox.lang | 1 + htdocs/langs/kn_IN/paypal.lang | 10 +- htdocs/langs/kn_IN/printing.lang | 4 +- htdocs/langs/kn_IN/products.lang | 41 ++- htdocs/langs/kn_IN/propal.lang | 4 +- htdocs/langs/kn_IN/resource.lang | 5 + htdocs/langs/kn_IN/salaries.lang | 5 +- htdocs/langs/kn_IN/sendings.lang | 9 +- htdocs/langs/kn_IN/stocks.lang | 60 +++- htdocs/langs/kn_IN/stripe.lang | 42 +++ htdocs/langs/kn_IN/supplier_proposal.lang | 6 +- htdocs/langs/kn_IN/suppliers.lang | 2 + htdocs/langs/kn_IN/trips.lang | 27 +- htdocs/langs/kn_IN/users.lang | 4 +- htdocs/langs/kn_IN/website.lang | 11 +- htdocs/langs/kn_IN/withdrawals.lang | 3 +- htdocs/langs/ko_KR/accountancy.lang | 6 +- htdocs/langs/ko_KR/admin.lang | 4 +- htdocs/langs/ko_KR/agenda.lang | 14 +- htdocs/langs/ko_KR/banks.lang | 9 +- htdocs/langs/ko_KR/bills.lang | 28 +- htdocs/langs/ko_KR/bookmarks.lang | 6 +- htdocs/langs/ko_KR/boxes.lang | 2 + htdocs/langs/ko_KR/cashdesk.lang | 2 +- htdocs/langs/ko_KR/categories.lang | 3 +- htdocs/langs/ko_KR/commercial.lang | 3 +- htdocs/langs/ko_KR/companies.lang | 23 +- htdocs/langs/ko_KR/contracts.lang | 2 + htdocs/langs/ko_KR/exports.lang | 13 +- htdocs/langs/ko_KR/holiday.lang | 2 +- htdocs/langs/ko_KR/install.lang | 1 + htdocs/langs/ko_KR/interventions.lang | 1 + htdocs/langs/ko_KR/languages.lang | 5 + htdocs/langs/ko_KR/link.lang | 1 + htdocs/langs/ko_KR/loan.lang | 3 + htdocs/langs/ko_KR/mails.lang | 10 +- htdocs/langs/ko_KR/main.lang | 6 +- htdocs/langs/ko_KR/margins.lang | 2 +- htdocs/langs/ko_KR/members.lang | 2 + htdocs/langs/ko_KR/modulebuilder.lang | 40 +++ htdocs/langs/ko_KR/oauth.lang | 10 +- htdocs/langs/ko_KR/other.lang | 1 + htdocs/langs/ko_KR/paybox.lang | 1 + htdocs/langs/ko_KR/paypal.lang | 10 +- htdocs/langs/ko_KR/printing.lang | 2 +- htdocs/langs/ko_KR/products.lang | 41 ++- htdocs/langs/ko_KR/propal.lang | 4 +- htdocs/langs/ko_KR/resource.lang | 5 + htdocs/langs/ko_KR/salaries.lang | 5 +- htdocs/langs/ko_KR/sendings.lang | 9 +- htdocs/langs/ko_KR/stocks.lang | 60 +++- htdocs/langs/ko_KR/stripe.lang | 42 +++ htdocs/langs/ko_KR/supplier_proposal.lang | 6 +- htdocs/langs/ko_KR/suppliers.lang | 2 + htdocs/langs/ko_KR/trips.lang | 27 +- htdocs/langs/ko_KR/users.lang | 4 +- htdocs/langs/ko_KR/website.lang | 11 +- htdocs/langs/ko_KR/withdrawals.lang | 3 +- htdocs/langs/lo_LA/accountancy.lang | 6 +- htdocs/langs/lo_LA/admin.lang | 4 +- htdocs/langs/lo_LA/agenda.lang | 14 +- htdocs/langs/lo_LA/banks.lang | 9 +- htdocs/langs/lo_LA/bills.lang | 28 +- htdocs/langs/lo_LA/bookmarks.lang | 6 +- htdocs/langs/lo_LA/boxes.lang | 2 + htdocs/langs/lo_LA/cashdesk.lang | 2 +- htdocs/langs/lo_LA/categories.lang | 3 +- htdocs/langs/lo_LA/commercial.lang | 3 +- htdocs/langs/lo_LA/companies.lang | 23 +- htdocs/langs/lo_LA/contracts.lang | 2 + htdocs/langs/lo_LA/exports.lang | 13 +- htdocs/langs/lo_LA/holiday.lang | 2 +- htdocs/langs/lo_LA/install.lang | 1 + htdocs/langs/lo_LA/interventions.lang | 1 + htdocs/langs/lo_LA/languages.lang | 5 + htdocs/langs/lo_LA/link.lang | 1 + htdocs/langs/lo_LA/loan.lang | 3 + htdocs/langs/lo_LA/mails.lang | 10 +- htdocs/langs/lo_LA/main.lang | 6 +- htdocs/langs/lo_LA/margins.lang | 2 +- htdocs/langs/lo_LA/members.lang | 2 + htdocs/langs/lo_LA/modulebuilder.lang | 40 +++ htdocs/langs/lo_LA/oauth.lang | 10 +- htdocs/langs/lo_LA/other.lang | 1 + htdocs/langs/lo_LA/paybox.lang | 1 + htdocs/langs/lo_LA/paypal.lang | 10 +- htdocs/langs/lo_LA/printing.lang | 4 +- htdocs/langs/lo_LA/products.lang | 41 ++- htdocs/langs/lo_LA/propal.lang | 4 +- htdocs/langs/lo_LA/resource.lang | 5 + htdocs/langs/lo_LA/salaries.lang | 5 +- htdocs/langs/lo_LA/sendings.lang | 9 +- htdocs/langs/lo_LA/stocks.lang | 60 +++- htdocs/langs/lo_LA/stripe.lang | 42 +++ htdocs/langs/lo_LA/supplier_proposal.lang | 6 +- htdocs/langs/lo_LA/suppliers.lang | 2 + htdocs/langs/lo_LA/trips.lang | 27 +- htdocs/langs/lo_LA/users.lang | 4 +- htdocs/langs/lo_LA/website.lang | 11 +- htdocs/langs/lo_LA/withdrawals.lang | 3 +- htdocs/langs/lt_LT/accountancy.lang | 6 +- htdocs/langs/lt_LT/admin.lang | 4 +- htdocs/langs/lt_LT/agenda.lang | 14 +- htdocs/langs/lt_LT/banks.lang | 7 +- htdocs/langs/lt_LT/bills.lang | 28 +- htdocs/langs/lt_LT/bookmarks.lang | 6 +- htdocs/langs/lt_LT/boxes.lang | 2 + htdocs/langs/lt_LT/cashdesk.lang | 2 +- htdocs/langs/lt_LT/categories.lang | 5 +- htdocs/langs/lt_LT/commercial.lang | 3 +- htdocs/langs/lt_LT/companies.lang | 21 +- htdocs/langs/lt_LT/contracts.lang | 2 + htdocs/langs/lt_LT/exports.lang | 13 +- htdocs/langs/lt_LT/holiday.lang | 2 +- htdocs/langs/lt_LT/install.lang | 1 + htdocs/langs/lt_LT/interventions.lang | 1 + htdocs/langs/lt_LT/languages.lang | 5 + htdocs/langs/lt_LT/loan.lang | 3 + htdocs/langs/lt_LT/mails.lang | 10 +- htdocs/langs/lt_LT/main.lang | 6 +- htdocs/langs/lt_LT/margins.lang | 2 +- htdocs/langs/lt_LT/members.lang | 12 +- htdocs/langs/lt_LT/modulebuilder.lang | 40 +++ htdocs/langs/lt_LT/oauth.lang | 10 +- htdocs/langs/lt_LT/other.lang | 1 + htdocs/langs/lt_LT/paybox.lang | 1 + htdocs/langs/lt_LT/paypal.lang | 10 +- htdocs/langs/lt_LT/printing.lang | 16 +- htdocs/langs/lt_LT/products.lang | 41 ++- htdocs/langs/lt_LT/propal.lang | 2 +- htdocs/langs/lt_LT/resource.lang | 5 + htdocs/langs/lt_LT/salaries.lang | 5 +- htdocs/langs/lt_LT/sendings.lang | 9 +- htdocs/langs/lt_LT/stocks.lang | 60 +++- htdocs/langs/lt_LT/stripe.lang | 42 +++ htdocs/langs/lt_LT/supplier_proposal.lang | 6 +- htdocs/langs/lt_LT/suppliers.lang | 2 + htdocs/langs/lt_LT/trips.lang | 27 +- htdocs/langs/lt_LT/users.lang | 4 +- htdocs/langs/lt_LT/website.lang | 13 +- htdocs/langs/lt_LT/withdrawals.lang | 3 +- htdocs/langs/lv_LV/accountancy.lang | 30 +- htdocs/langs/lv_LV/admin.lang | 98 +++---- htdocs/langs/lv_LV/agenda.lang | 14 +- htdocs/langs/lv_LV/banks.lang | 21 +- htdocs/langs/lv_LV/bills.lang | 44 +-- htdocs/langs/lv_LV/bookmarks.lang | 6 +- htdocs/langs/lv_LV/boxes.lang | 2 + htdocs/langs/lv_LV/cashdesk.lang | 4 +- htdocs/langs/lv_LV/categories.lang | 9 +- htdocs/langs/lv_LV/commercial.lang | 3 +- htdocs/langs/lv_LV/companies.lang | 25 +- htdocs/langs/lv_LV/compta.lang | 2 +- htdocs/langs/lv_LV/contracts.lang | 2 + htdocs/langs/lv_LV/errors.lang | 2 +- htdocs/langs/lv_LV/exports.lang | 13 +- htdocs/langs/lv_LV/holiday.lang | 6 +- htdocs/langs/lv_LV/install.lang | 1 + htdocs/langs/lv_LV/interventions.lang | 1 + htdocs/langs/lv_LV/languages.lang | 5 + htdocs/langs/lv_LV/ldap.lang | 2 +- htdocs/langs/lv_LV/loan.lang | 3 + htdocs/langs/lv_LV/mails.lang | 10 +- htdocs/langs/lv_LV/main.lang | 50 ++-- htdocs/langs/lv_LV/margins.lang | 2 +- htdocs/langs/lv_LV/members.lang | 14 +- htdocs/langs/lv_LV/modulebuilder.lang | 40 +++ htdocs/langs/lv_LV/multicurrency.lang | 18 ++ htdocs/langs/lv_LV/oauth.lang | 10 +- htdocs/langs/lv_LV/orders.lang | 2 +- htdocs/langs/lv_LV/other.lang | 13 +- htdocs/langs/lv_LV/paybox.lang | 1 + htdocs/langs/lv_LV/paypal.lang | 10 +- htdocs/langs/lv_LV/printing.lang | 2 +- htdocs/langs/lv_LV/products.lang | 47 +++- htdocs/langs/lv_LV/projects.lang | 2 +- htdocs/langs/lv_LV/propal.lang | 4 +- htdocs/langs/lv_LV/receiptprinter.lang | 2 +- htdocs/langs/lv_LV/resource.lang | 5 + htdocs/langs/lv_LV/salaries.lang | 9 +- htdocs/langs/lv_LV/sendings.lang | 9 +- htdocs/langs/lv_LV/stocks.lang | 66 ++++- htdocs/langs/lv_LV/stripe.lang | 42 +++ htdocs/langs/lv_LV/supplier_proposal.lang | 6 +- htdocs/langs/lv_LV/suppliers.lang | 2 + htdocs/langs/lv_LV/trips.lang | 27 +- htdocs/langs/lv_LV/users.lang | 8 +- htdocs/langs/lv_LV/website.lang | 19 +- htdocs/langs/lv_LV/withdrawals.lang | 3 +- htdocs/langs/lv_LV/workflow.lang | 4 +- htdocs/langs/mk_MK/accountancy.lang | 6 +- htdocs/langs/mk_MK/admin.lang | 4 +- htdocs/langs/mk_MK/agenda.lang | 14 +- htdocs/langs/mk_MK/banks.lang | 9 +- htdocs/langs/mk_MK/bills.lang | 28 +- htdocs/langs/mk_MK/bookmarks.lang | 6 +- htdocs/langs/mk_MK/boxes.lang | 2 + htdocs/langs/mk_MK/cashdesk.lang | 2 +- htdocs/langs/mk_MK/categories.lang | 1 + htdocs/langs/mk_MK/commercial.lang | 3 +- htdocs/langs/mk_MK/companies.lang | 23 +- htdocs/langs/mk_MK/contracts.lang | 2 + htdocs/langs/mk_MK/exports.lang | 13 +- htdocs/langs/mk_MK/holiday.lang | 2 +- htdocs/langs/mk_MK/install.lang | 1 + htdocs/langs/mk_MK/interventions.lang | 1 + htdocs/langs/mk_MK/languages.lang | 5 + htdocs/langs/mk_MK/loan.lang | 3 + htdocs/langs/mk_MK/mails.lang | 10 +- htdocs/langs/mk_MK/main.lang | 6 +- htdocs/langs/mk_MK/margins.lang | 2 +- htdocs/langs/mk_MK/members.lang | 2 + htdocs/langs/mk_MK/modulebuilder.lang | 40 +++ htdocs/langs/mk_MK/oauth.lang | 9 +- htdocs/langs/mk_MK/other.lang | 1 + htdocs/langs/mk_MK/paybox.lang | 1 + htdocs/langs/mk_MK/paypal.lang | 10 +- htdocs/langs/mk_MK/printing.lang | 2 +- htdocs/langs/mk_MK/products.lang | 41 ++- htdocs/langs/mk_MK/propal.lang | 4 +- htdocs/langs/mk_MK/resource.lang | 5 + htdocs/langs/mk_MK/salaries.lang | 3 +- htdocs/langs/mk_MK/sendings.lang | 9 +- htdocs/langs/mk_MK/stocks.lang | 60 +++- htdocs/langs/mk_MK/stripe.lang | 42 +++ htdocs/langs/mk_MK/supplier_proposal.lang | 6 +- htdocs/langs/mk_MK/suppliers.lang | 2 + htdocs/langs/mk_MK/trips.lang | 27 +- htdocs/langs/mk_MK/users.lang | 4 +- htdocs/langs/mk_MK/website.lang | 11 +- htdocs/langs/mk_MK/withdrawals.lang | 3 +- htdocs/langs/mn_MN/accountancy.lang | 6 +- htdocs/langs/mn_MN/admin.lang | 4 +- htdocs/langs/mn_MN/agenda.lang | 14 +- htdocs/langs/mn_MN/banks.lang | 9 +- htdocs/langs/mn_MN/bills.lang | 28 +- htdocs/langs/mn_MN/bookmarks.lang | 6 +- htdocs/langs/mn_MN/boxes.lang | 2 + htdocs/langs/mn_MN/cashdesk.lang | 2 +- htdocs/langs/mn_MN/categories.lang | 3 +- htdocs/langs/mn_MN/commercial.lang | 3 +- htdocs/langs/mn_MN/companies.lang | 23 +- htdocs/langs/mn_MN/contracts.lang | 2 + htdocs/langs/mn_MN/exports.lang | 13 +- htdocs/langs/mn_MN/holiday.lang | 2 +- htdocs/langs/mn_MN/install.lang | 1 + htdocs/langs/mn_MN/interventions.lang | 1 + htdocs/langs/mn_MN/languages.lang | 5 + htdocs/langs/mn_MN/link.lang | 1 + htdocs/langs/mn_MN/loan.lang | 3 + htdocs/langs/mn_MN/mails.lang | 10 +- htdocs/langs/mn_MN/main.lang | 6 +- htdocs/langs/mn_MN/margins.lang | 2 +- htdocs/langs/mn_MN/members.lang | 2 + htdocs/langs/mn_MN/modulebuilder.lang | 40 +++ htdocs/langs/mn_MN/oauth.lang | 10 +- htdocs/langs/mn_MN/other.lang | 1 + htdocs/langs/mn_MN/paybox.lang | 1 + htdocs/langs/mn_MN/paypal.lang | 10 +- htdocs/langs/mn_MN/printing.lang | 2 +- htdocs/langs/mn_MN/products.lang | 41 ++- htdocs/langs/mn_MN/propal.lang | 4 +- htdocs/langs/mn_MN/resource.lang | 5 + htdocs/langs/mn_MN/salaries.lang | 5 +- htdocs/langs/mn_MN/sendings.lang | 9 +- htdocs/langs/mn_MN/stocks.lang | 60 +++- htdocs/langs/mn_MN/stripe.lang | 42 +++ htdocs/langs/mn_MN/supplier_proposal.lang | 6 +- htdocs/langs/mn_MN/suppliers.lang | 2 + htdocs/langs/mn_MN/trips.lang | 27 +- htdocs/langs/mn_MN/users.lang | 4 +- htdocs/langs/mn_MN/website.lang | 11 +- htdocs/langs/mn_MN/withdrawals.lang | 3 +- htdocs/langs/nb_NO/accountancy.lang | 6 +- htdocs/langs/nb_NO/admin.lang | 4 +- htdocs/langs/nb_NO/agenda.lang | 7 +- htdocs/langs/nb_NO/cashdesk.lang | 2 +- htdocs/langs/nb_NO/categories.lang | 1 + htdocs/langs/nb_NO/companies.lang | 23 +- htdocs/langs/nb_NO/holiday.lang | 2 +- htdocs/langs/nb_NO/install.lang | 1 + htdocs/langs/nb_NO/interventions.lang | 2 +- htdocs/langs/nb_NO/main.lang | 6 +- htdocs/langs/nb_NO/members.lang | 12 +- htdocs/langs/nb_NO/modulebuilder.lang | 36 ++- htdocs/langs/nb_NO/oauth.lang | 6 +- htdocs/langs/nb_NO/orders.lang | 4 +- htdocs/langs/nb_NO/other.lang | 1 + htdocs/langs/nb_NO/paybox.lang | 1 + htdocs/langs/nb_NO/printing.lang | 2 +- htdocs/langs/nb_NO/products.lang | 10 +- htdocs/langs/nb_NO/propal.lang | 6 +- htdocs/langs/nb_NO/salaries.lang | 3 +- htdocs/langs/nb_NO/stocks.lang | 2 +- htdocs/langs/nb_NO/supplier_proposal.lang | 6 +- htdocs/langs/nb_NO/suppliers.lang | 4 +- htdocs/langs/nb_NO/website.lang | 9 +- htdocs/langs/nb_NO/withdrawals.lang | 11 +- htdocs/langs/nl_BE/admin.lang | 2 - htdocs/langs/nl_BE/agenda.lang | 15 + htdocs/langs/nl_BE/banks.lang | 1 + htdocs/langs/nl_BE/bills.lang | 14 +- htdocs/langs/nl_BE/bookmarks.lang | 12 + htdocs/langs/nl_BE/boxes.lang | 2 + htdocs/langs/nl_BE/cashdesk.lang | 7 + htdocs/langs/nl_BE/categories.lang | 63 +++++ htdocs/langs/nl_BE/commercial.lang | 10 + htdocs/langs/nl_BE/companies.lang | 23 ++ htdocs/langs/nl_BE/hrm.lang | 3 - htdocs/langs/nl_BE/install.lang | 1 - htdocs/langs/nl_BE/mails.lang | 1 - htdocs/langs/nl_BE/margins.lang | 4 + htdocs/langs/nl_BE/members.lang | 2 + htdocs/langs/nl_BE/printing.lang | 7 +- htdocs/langs/nl_BE/products.lang | 2 - htdocs/langs/nl_BE/projects.lang | 7 + htdocs/langs/nl_BE/propal.lang | 12 + htdocs/langs/nl_BE/resource.lang | 2 + htdocs/langs/nl_BE/salaries.lang | 5 + htdocs/langs/nl_BE/sendings.lang | 16 ++ htdocs/langs/nl_BE/sms.lang | 7 + htdocs/langs/nl_BE/stocks.lang | 4 + htdocs/langs/nl_BE/users.lang | 17 ++ htdocs/langs/nl_BE/website.lang | 22 ++ htdocs/langs/nl_BE/workflow.lang | 8 + htdocs/langs/nl_NL/accountancy.lang | 18 +- htdocs/langs/nl_NL/admin.lang | 36 +-- htdocs/langs/nl_NL/agenda.lang | 7 +- htdocs/langs/nl_NL/banks.lang | 27 +- htdocs/langs/nl_NL/bills.lang | 76 ++--- htdocs/langs/nl_NL/bookmarks.lang | 8 +- htdocs/langs/nl_NL/boxes.lang | 20 +- htdocs/langs/nl_NL/cashdesk.lang | 2 +- htdocs/langs/nl_NL/categories.lang | 3 +- htdocs/langs/nl_NL/commercial.lang | 3 +- htdocs/langs/nl_NL/companies.lang | 27 +- htdocs/langs/nl_NL/contracts.lang | 2 + htdocs/langs/nl_NL/exports.lang | 13 +- htdocs/langs/nl_NL/help.lang | 2 +- htdocs/langs/nl_NL/holiday.lang | 2 +- htdocs/langs/nl_NL/hrm.lang | 6 +- htdocs/langs/nl_NL/install.lang | 13 +- htdocs/langs/nl_NL/interventions.lang | 1 + htdocs/langs/nl_NL/languages.lang | 5 + htdocs/langs/nl_NL/ldap.lang | 8 +- htdocs/langs/nl_NL/loan.lang | 3 + htdocs/langs/nl_NL/mails.lang | 10 +- htdocs/langs/nl_NL/main.lang | 66 ++--- htdocs/langs/nl_NL/margins.lang | 2 +- htdocs/langs/nl_NL/members.lang | 8 +- htdocs/langs/nl_NL/modulebuilder.lang | 40 +++ htdocs/langs/nl_NL/oauth.lang | 10 +- htdocs/langs/nl_NL/other.lang | 3 +- htdocs/langs/nl_NL/paybox.lang | 1 + htdocs/langs/nl_NL/paypal.lang | 10 +- htdocs/langs/nl_NL/printing.lang | 10 +- htdocs/langs/nl_NL/products.lang | 41 ++- htdocs/langs/nl_NL/propal.lang | 4 +- htdocs/langs/nl_NL/resource.lang | 5 + htdocs/langs/nl_NL/salaries.lang | 5 +- htdocs/langs/nl_NL/sendings.lang | 9 +- htdocs/langs/nl_NL/stocks.lang | 60 +++- htdocs/langs/nl_NL/stripe.lang | 42 +++ htdocs/langs/nl_NL/supplier_proposal.lang | 6 +- htdocs/langs/nl_NL/suppliers.lang | 2 + htdocs/langs/nl_NL/trips.lang | 27 +- htdocs/langs/nl_NL/users.lang | 6 +- htdocs/langs/nl_NL/website.lang | 11 +- htdocs/langs/nl_NL/withdrawals.lang | 3 +- htdocs/langs/nl_NL/workflow.lang | 2 +- htdocs/langs/pl_PL/accountancy.lang | 6 +- htdocs/langs/pl_PL/admin.lang | 4 +- htdocs/langs/pl_PL/agenda.lang | 14 +- htdocs/langs/pl_PL/banks.lang | 23 +- htdocs/langs/pl_PL/bills.lang | 86 +++--- htdocs/langs/pl_PL/bookmarks.lang | 8 +- htdocs/langs/pl_PL/boxes.lang | 18 +- htdocs/langs/pl_PL/cashdesk.lang | 4 +- htdocs/langs/pl_PL/categories.lang | 9 +- htdocs/langs/pl_PL/commercial.lang | 13 +- htdocs/langs/pl_PL/companies.lang | 51 ++-- htdocs/langs/pl_PL/contracts.lang | 18 +- htdocs/langs/pl_PL/deliveries.lang | 12 +- htdocs/langs/pl_PL/dict.lang | 2 +- htdocs/langs/pl_PL/donations.lang | 10 +- htdocs/langs/pl_PL/ecm.lang | 4 +- htdocs/langs/pl_PL/exports.lang | 31 +- htdocs/langs/pl_PL/ftp.lang | 4 +- htdocs/langs/pl_PL/holiday.lang | 2 +- htdocs/langs/pl_PL/hrm.lang | 4 +- htdocs/langs/pl_PL/install.lang | 3 +- htdocs/langs/pl_PL/interventions.lang | 1 + htdocs/langs/pl_PL/languages.lang | 7 +- htdocs/langs/pl_PL/ldap.lang | 6 +- htdocs/langs/pl_PL/link.lang | 4 +- htdocs/langs/pl_PL/loan.lang | 3 + htdocs/langs/pl_PL/mails.lang | 12 +- htdocs/langs/pl_PL/main.lang | 6 +- htdocs/langs/pl_PL/margins.lang | 2 +- htdocs/langs/pl_PL/members.lang | 92 +++--- htdocs/langs/pl_PL/modulebuilder.lang | 40 +++ htdocs/langs/pl_PL/multicurrency.lang | 18 ++ htdocs/langs/pl_PL/oauth.lang | 18 +- htdocs/langs/pl_PL/opensurvey.lang | 2 +- htdocs/langs/pl_PL/other.lang | 1 + htdocs/langs/pl_PL/paybox.lang | 1 + htdocs/langs/pl_PL/paypal.lang | 30 +- htdocs/langs/pl_PL/printing.lang | 12 +- htdocs/langs/pl_PL/products.lang | 95 ++++--- htdocs/langs/pl_PL/propal.lang | 14 +- htdocs/langs/pl_PL/resource.lang | 5 + htdocs/langs/pl_PL/salaries.lang | 5 +- htdocs/langs/pl_PL/sendings.lang | 9 +- htdocs/langs/pl_PL/sms.lang | 42 +-- htdocs/langs/pl_PL/stocks.lang | 80 +++++- htdocs/langs/pl_PL/stripe.lang | 42 +++ htdocs/langs/pl_PL/supplier_proposal.lang | 6 +- htdocs/langs/pl_PL/suppliers.lang | 4 +- htdocs/langs/pl_PL/trips.lang | 27 +- htdocs/langs/pl_PL/users.lang | 16 +- htdocs/langs/pl_PL/website.lang | 31 +- htdocs/langs/pl_PL/withdrawals.lang | 3 +- htdocs/langs/pt_BR/admin.lang | 6 +- htdocs/langs/pt_BR/agenda.lang | 23 +- htdocs/langs/pt_BR/banks.lang | 7 +- htdocs/langs/pt_BR/bills.lang | 13 +- htdocs/langs/pt_BR/bookmarks.lang | 3 +- htdocs/langs/pt_BR/cashdesk.lang | 1 - htdocs/langs/pt_BR/categories.lang | 5 +- htdocs/langs/pt_BR/commercial.lang | 8 +- htdocs/langs/pt_BR/companies.lang | 10 +- htdocs/langs/pt_BR/compta.lang | 2 - htdocs/langs/pt_BR/contracts.lang | 22 +- htdocs/langs/pt_BR/deliveries.lang | 8 +- htdocs/langs/pt_BR/dict.lang | 1 - htdocs/langs/pt_BR/ecm.lang | 8 +- htdocs/langs/pt_BR/exports.lang | 4 - htdocs/langs/pt_BR/holiday.lang | 10 +- htdocs/langs/pt_BR/install.lang | 2 +- htdocs/langs/pt_BR/interventions.lang | 2 + htdocs/langs/pt_BR/loan.lang | 7 +- htdocs/langs/pt_BR/mails.lang | 3 +- htdocs/langs/pt_BR/main.lang | 22 +- htdocs/langs/pt_BR/margins.lang | 1 - htdocs/langs/pt_BR/members.lang | 16 +- htdocs/langs/pt_BR/oauth.lang | 4 +- htdocs/langs/pt_BR/orders.lang | 31 ++ htdocs/langs/pt_BR/other.lang | 7 - htdocs/langs/pt_BR/paybox.lang | 3 +- htdocs/langs/pt_BR/printing.lang | 2 - htdocs/langs/pt_BR/productbatch.lang | 5 +- htdocs/langs/pt_BR/products.lang | 9 +- htdocs/langs/pt_BR/projects.lang | 1 - htdocs/langs/pt_BR/propal.lang | 2 + htdocs/langs/pt_BR/resource.lang | 1 - htdocs/langs/pt_BR/salaries.lang | 1 - htdocs/langs/pt_BR/sendings.lang | 4 - htdocs/langs/pt_BR/stocks.lang | 9 +- htdocs/langs/pt_BR/stripe.lang | 3 + htdocs/langs/pt_BR/supplier_proposal.lang | 3 + htdocs/langs/pt_BR/suppliers.lang | 2 + htdocs/langs/pt_BR/trips.lang | 3 +- htdocs/langs/pt_BR/users.lang | 7 +- htdocs/langs/pt_BR/website.lang | 4 - htdocs/langs/pt_BR/withdrawals.lang | 1 - htdocs/langs/pt_BR/workflow.lang | 2 - htdocs/langs/pt_PT/accountancy.lang | 66 +++-- htdocs/langs/pt_PT/admin.lang | 216 +++++++------- htdocs/langs/pt_PT/agenda.lang | 156 ++++++----- htdocs/langs/pt_PT/banks.lang | 29 +- htdocs/langs/pt_PT/bills.lang | 6 +- htdocs/langs/pt_PT/cashdesk.lang | 14 +- htdocs/langs/pt_PT/categories.lang | 109 ++++---- htdocs/langs/pt_PT/commercial.lang | 65 ++--- htdocs/langs/pt_PT/companies.lang | 90 +++--- htdocs/langs/pt_PT/compta.lang | 4 +- htdocs/langs/pt_PT/contracts.lang | 148 +++++----- htdocs/langs/pt_PT/cron.lang | 2 +- htdocs/langs/pt_PT/deliveries.lang | 28 +- htdocs/langs/pt_PT/dict.lang | 2 +- htdocs/langs/pt_PT/ecm.lang | 46 +-- htdocs/langs/pt_PT/errors.lang | 2 +- htdocs/langs/pt_PT/exports.lang | 39 ++- htdocs/langs/pt_PT/externalsite.lang | 2 +- htdocs/langs/pt_PT/ftp.lang | 4 +- htdocs/langs/pt_PT/help.lang | 2 +- htdocs/langs/pt_PT/holiday.lang | 132 ++++----- htdocs/langs/pt_PT/hrm.lang | 8 +- htdocs/langs/pt_PT/install.lang | 19 +- htdocs/langs/pt_PT/interventions.lang | 9 +- htdocs/langs/pt_PT/languages.lang | 5 + htdocs/langs/pt_PT/ldap.lang | 8 +- htdocs/langs/pt_PT/link.lang | 2 +- htdocs/langs/pt_PT/loan.lang | 3 + htdocs/langs/pt_PT/mails.lang | 12 +- htdocs/langs/pt_PT/main.lang | 306 ++++++++++---------- htdocs/langs/pt_PT/margins.lang | 8 +- htdocs/langs/pt_PT/members.lang | 42 +-- htdocs/langs/pt_PT/modulebuilder.lang | 40 +++ htdocs/langs/pt_PT/multicurrency.lang | 18 ++ htdocs/langs/pt_PT/oauth.lang | 37 +-- htdocs/langs/pt_PT/opensurvey.lang | 50 ++-- htdocs/langs/pt_PT/orders.lang | 206 +++++++------- htdocs/langs/pt_PT/other.lang | 83 +++--- htdocs/langs/pt_PT/paybox.lang | 11 +- htdocs/langs/pt_PT/paypal.lang | 20 +- htdocs/langs/pt_PT/printing.lang | 38 +-- htdocs/langs/pt_PT/productbatch.lang | 26 +- htdocs/langs/pt_PT/products.lang | 49 +++- htdocs/langs/pt_PT/projects.lang | 2 +- htdocs/langs/pt_PT/propal.lang | 36 +-- htdocs/langs/pt_PT/resource.lang | 17 +- htdocs/langs/pt_PT/salaries.lang | 13 +- htdocs/langs/pt_PT/sendings.lang | 13 +- htdocs/langs/pt_PT/sms.lang | 6 +- htdocs/langs/pt_PT/stocks.lang | 62 +++- htdocs/langs/pt_PT/stripe.lang | 42 +++ htdocs/langs/pt_PT/supplier_proposal.lang | 12 +- htdocs/langs/pt_PT/suppliers.lang | 2 + htdocs/langs/pt_PT/trips.lang | 31 +- htdocs/langs/pt_PT/users.lang | 48 ++-- htdocs/langs/pt_PT/website.lang | 13 +- htdocs/langs/pt_PT/withdrawals.lang | 3 +- htdocs/langs/pt_PT/workflow.lang | 24 +- htdocs/langs/ro_RO/accountancy.lang | 326 +++++++++++----------- htdocs/langs/ro_RO/admin.lang | 234 ++++++++-------- htdocs/langs/ro_RO/agenda.lang | 22 +- htdocs/langs/ro_RO/banks.lang | 7 +- htdocs/langs/ro_RO/bills.lang | 26 +- htdocs/langs/ro_RO/bookmarks.lang | 6 +- htdocs/langs/ro_RO/boxes.lang | 2 + htdocs/langs/ro_RO/cashdesk.lang | 4 +- htdocs/langs/ro_RO/categories.lang | 15 +- htdocs/langs/ro_RO/commercial.lang | 7 +- htdocs/langs/ro_RO/companies.lang | 21 +- htdocs/langs/ro_RO/contracts.lang | 16 +- htdocs/langs/ro_RO/deliveries.lang | 8 +- htdocs/langs/ro_RO/ecm.lang | 4 +- htdocs/langs/ro_RO/exports.lang | 13 +- htdocs/langs/ro_RO/help.lang | 2 +- htdocs/langs/ro_RO/holiday.lang | 2 +- htdocs/langs/ro_RO/hrm.lang | 2 +- htdocs/langs/ro_RO/install.lang | 1 + htdocs/langs/ro_RO/interventions.lang | 17 +- htdocs/langs/ro_RO/languages.lang | 5 + htdocs/langs/ro_RO/loan.lang | 3 + htdocs/langs/ro_RO/mailmanspip.lang | 8 +- htdocs/langs/ro_RO/mails.lang | 10 +- htdocs/langs/ro_RO/main.lang | 8 +- htdocs/langs/ro_RO/margins.lang | 2 +- htdocs/langs/ro_RO/members.lang | 14 +- htdocs/langs/ro_RO/modulebuilder.lang | 40 +++ htdocs/langs/ro_RO/oauth.lang | 10 +- htdocs/langs/ro_RO/other.lang | 1 + htdocs/langs/ro_RO/paypal.lang | 10 +- htdocs/langs/ro_RO/printing.lang | 6 +- htdocs/langs/ro_RO/productbatch.lang | 8 +- htdocs/langs/ro_RO/products.lang | 41 ++- htdocs/langs/ro_RO/propal.lang | 2 +- htdocs/langs/ro_RO/resource.lang | 5 + htdocs/langs/ro_RO/salaries.lang | 5 +- htdocs/langs/ro_RO/sendings.lang | 9 +- htdocs/langs/ro_RO/stocks.lang | 60 +++- htdocs/langs/ro_RO/stripe.lang | 42 +++ htdocs/langs/ro_RO/supplier_proposal.lang | 6 +- htdocs/langs/ro_RO/suppliers.lang | 2 + htdocs/langs/ro_RO/trips.lang | 27 +- htdocs/langs/ro_RO/users.lang | 4 +- htdocs/langs/ro_RO/website.lang | 11 +- htdocs/langs/ro_RO/withdrawals.lang | 3 +- htdocs/langs/ru_RU/accountancy.lang | 6 +- htdocs/langs/ru_RU/admin.lang | 4 +- htdocs/langs/ru_RU/agenda.lang | 14 +- htdocs/langs/ru_RU/banks.lang | 9 +- htdocs/langs/ru_RU/bills.lang | 28 +- htdocs/langs/ru_RU/bookmarks.lang | 6 +- htdocs/langs/ru_RU/boxes.lang | 2 + htdocs/langs/ru_RU/categories.lang | 3 +- htdocs/langs/ru_RU/commercial.lang | 3 +- htdocs/langs/ru_RU/companies.lang | 31 +- htdocs/langs/ru_RU/contracts.lang | 2 + htdocs/langs/ru_RU/exports.lang | 13 +- htdocs/langs/ru_RU/holiday.lang | 2 +- htdocs/langs/ru_RU/install.lang | 1 + htdocs/langs/ru_RU/interventions.lang | 1 + htdocs/langs/ru_RU/languages.lang | 5 + htdocs/langs/ru_RU/loan.lang | 3 + htdocs/langs/ru_RU/mails.lang | 10 +- htdocs/langs/ru_RU/main.lang | 6 +- htdocs/langs/ru_RU/margins.lang | 2 +- htdocs/langs/ru_RU/members.lang | 12 +- htdocs/langs/ru_RU/modulebuilder.lang | 36 ++- htdocs/langs/ru_RU/oauth.lang | 10 +- htdocs/langs/ru_RU/other.lang | 1 + htdocs/langs/ru_RU/paybox.lang | 1 + htdocs/langs/ru_RU/paypal.lang | 10 +- htdocs/langs/ru_RU/printing.lang | 10 +- htdocs/langs/ru_RU/products.lang | 41 ++- htdocs/langs/ru_RU/propal.lang | 4 +- htdocs/langs/ru_RU/resource.lang | 5 + htdocs/langs/ru_RU/salaries.lang | 5 +- htdocs/langs/ru_RU/sendings.lang | 9 +- htdocs/langs/ru_RU/stocks.lang | 60 +++- htdocs/langs/ru_RU/supplier_proposal.lang | 8 +- htdocs/langs/ru_RU/suppliers.lang | 2 + htdocs/langs/ru_RU/trips.lang | 5 +- htdocs/langs/ru_RU/users.lang | 4 +- htdocs/langs/ru_RU/website.lang | 13 +- htdocs/langs/ru_RU/withdrawals.lang | 3 +- htdocs/langs/sk_SK/accountancy.lang | 6 +- htdocs/langs/sk_SK/admin.lang | 4 +- htdocs/langs/sk_SK/agenda.lang | 14 +- htdocs/langs/sk_SK/banks.lang | 7 +- htdocs/langs/sk_SK/bills.lang | 28 +- htdocs/langs/sk_SK/bookmarks.lang | 6 +- htdocs/langs/sk_SK/boxes.lang | 2 + htdocs/langs/sk_SK/cashdesk.lang | 2 +- htdocs/langs/sk_SK/categories.lang | 7 +- htdocs/langs/sk_SK/commercial.lang | 3 +- htdocs/langs/sk_SK/companies.lang | 23 +- htdocs/langs/sk_SK/contracts.lang | 16 +- htdocs/langs/sk_SK/exports.lang | 19 +- htdocs/langs/sk_SK/holiday.lang | 2 +- htdocs/langs/sk_SK/install.lang | 1 + htdocs/langs/sk_SK/interventions.lang | 1 + htdocs/langs/sk_SK/languages.lang | 5 + htdocs/langs/sk_SK/link.lang | 1 + htdocs/langs/sk_SK/loan.lang | 3 + htdocs/langs/sk_SK/mails.lang | 10 +- htdocs/langs/sk_SK/main.lang | 6 +- htdocs/langs/sk_SK/margins.lang | 2 +- htdocs/langs/sk_SK/members.lang | 6 +- htdocs/langs/sk_SK/modulebuilder.lang | 40 +++ htdocs/langs/sk_SK/oauth.lang | 10 +- htdocs/langs/sk_SK/other.lang | 1 + htdocs/langs/sk_SK/paybox.lang | 1 + htdocs/langs/sk_SK/paypal.lang | 10 +- htdocs/langs/sk_SK/printing.lang | 20 +- htdocs/langs/sk_SK/products.lang | 41 ++- htdocs/langs/sk_SK/propal.lang | 4 +- htdocs/langs/sk_SK/resource.lang | 5 + htdocs/langs/sk_SK/salaries.lang | 13 +- htdocs/langs/sk_SK/sendings.lang | 9 +- htdocs/langs/sk_SK/sms.lang | 2 +- htdocs/langs/sk_SK/stocks.lang | 60 +++- htdocs/langs/sk_SK/stripe.lang | 42 +++ htdocs/langs/sk_SK/supplier_proposal.lang | 6 +- htdocs/langs/sk_SK/suppliers.lang | 2 + htdocs/langs/sk_SK/trips.lang | 27 +- htdocs/langs/sk_SK/users.lang | 4 +- htdocs/langs/sk_SK/website.lang | 57 ++-- htdocs/langs/sk_SK/withdrawals.lang | 3 +- htdocs/langs/sl_SI/accountancy.lang | 6 +- htdocs/langs/sl_SI/admin.lang | 4 +- htdocs/langs/sl_SI/agenda.lang | 14 +- htdocs/langs/sl_SI/banks.lang | 5 + htdocs/langs/sl_SI/bills.lang | 28 +- htdocs/langs/sl_SI/bookmarks.lang | 6 +- htdocs/langs/sl_SI/boxes.lang | 2 + htdocs/langs/sl_SI/cashdesk.lang | 2 +- htdocs/langs/sl_SI/categories.lang | 3 +- htdocs/langs/sl_SI/commercial.lang | 3 +- htdocs/langs/sl_SI/companies.lang | 21 +- htdocs/langs/sl_SI/contracts.lang | 2 + htdocs/langs/sl_SI/exports.lang | 13 +- htdocs/langs/sl_SI/holiday.lang | 2 +- htdocs/langs/sl_SI/install.lang | 1 + htdocs/langs/sl_SI/interventions.lang | 1 + htdocs/langs/sl_SI/languages.lang | 5 + htdocs/langs/sl_SI/loan.lang | 3 + htdocs/langs/sl_SI/mails.lang | 10 +- htdocs/langs/sl_SI/main.lang | 6 +- htdocs/langs/sl_SI/margins.lang | 2 +- htdocs/langs/sl_SI/members.lang | 16 +- htdocs/langs/sl_SI/modulebuilder.lang | 40 +++ htdocs/langs/sl_SI/oauth.lang | 10 +- htdocs/langs/sl_SI/other.lang | 1 + htdocs/langs/sl_SI/paybox.lang | 1 + htdocs/langs/sl_SI/paypal.lang | 10 +- htdocs/langs/sl_SI/printing.lang | 24 +- htdocs/langs/sl_SI/products.lang | 41 ++- htdocs/langs/sl_SI/resource.lang | 5 + htdocs/langs/sl_SI/salaries.lang | 5 +- htdocs/langs/sl_SI/sendings.lang | 9 +- htdocs/langs/sl_SI/stocks.lang | 60 +++- htdocs/langs/sl_SI/stripe.lang | 42 +++ htdocs/langs/sl_SI/supplier_proposal.lang | 6 +- htdocs/langs/sl_SI/suppliers.lang | 2 + htdocs/langs/sl_SI/trips.lang | 27 +- htdocs/langs/sl_SI/users.lang | 4 +- htdocs/langs/sl_SI/website.lang | 11 +- htdocs/langs/sl_SI/withdrawals.lang | 3 +- htdocs/langs/sq_AL/accountancy.lang | 6 +- htdocs/langs/sq_AL/admin.lang | 4 +- htdocs/langs/sq_AL/agenda.lang | 16 +- htdocs/langs/sq_AL/banks.lang | 9 +- htdocs/langs/sq_AL/bills.lang | 28 +- htdocs/langs/sq_AL/bookmarks.lang | 6 +- htdocs/langs/sq_AL/boxes.lang | 2 + htdocs/langs/sq_AL/cashdesk.lang | 2 +- htdocs/langs/sq_AL/categories.lang | 3 +- htdocs/langs/sq_AL/commercial.lang | 3 +- htdocs/langs/sq_AL/companies.lang | 23 +- htdocs/langs/sq_AL/contracts.lang | 2 + htdocs/langs/sq_AL/deliveries.lang | 2 +- htdocs/langs/sq_AL/exports.lang | 13 +- htdocs/langs/sq_AL/holiday.lang | 2 +- htdocs/langs/sq_AL/hrm.lang | 2 +- htdocs/langs/sq_AL/install.lang | 1 + htdocs/langs/sq_AL/interventions.lang | 1 + htdocs/langs/sq_AL/languages.lang | 7 +- htdocs/langs/sq_AL/link.lang | 1 + htdocs/langs/sq_AL/loan.lang | 3 + htdocs/langs/sq_AL/mails.lang | 10 +- htdocs/langs/sq_AL/main.lang | 6 +- htdocs/langs/sq_AL/margins.lang | 2 +- htdocs/langs/sq_AL/members.lang | 2 + htdocs/langs/sq_AL/modulebuilder.lang | 40 +++ htdocs/langs/sq_AL/oauth.lang | 10 +- htdocs/langs/sq_AL/other.lang | 1 + htdocs/langs/sq_AL/paybox.lang | 1 + htdocs/langs/sq_AL/paypal.lang | 12 +- htdocs/langs/sq_AL/printing.lang | 4 +- htdocs/langs/sq_AL/products.lang | 41 ++- htdocs/langs/sq_AL/propal.lang | 4 +- htdocs/langs/sq_AL/resource.lang | 5 + htdocs/langs/sq_AL/salaries.lang | 5 +- htdocs/langs/sq_AL/sendings.lang | 13 +- htdocs/langs/sq_AL/stocks.lang | 60 +++- htdocs/langs/sq_AL/stripe.lang | 42 +++ htdocs/langs/sq_AL/supplier_proposal.lang | 6 +- htdocs/langs/sq_AL/suppliers.lang | 2 + htdocs/langs/sq_AL/trips.lang | 29 +- htdocs/langs/sq_AL/users.lang | 4 +- htdocs/langs/sq_AL/website.lang | 11 +- htdocs/langs/sq_AL/withdrawals.lang | 3 +- htdocs/langs/sr_RS/accountancy.lang | 6 +- htdocs/langs/sr_RS/admin.lang | 4 +- htdocs/langs/sr_RS/agenda.lang | 14 +- htdocs/langs/sr_RS/banks.lang | 9 +- htdocs/langs/sr_RS/bills.lang | 28 +- htdocs/langs/sr_RS/bookmarks.lang | 6 +- htdocs/langs/sr_RS/boxes.lang | 2 + htdocs/langs/sr_RS/cashdesk.lang | 2 +- htdocs/langs/sr_RS/categories.lang | 3 +- htdocs/langs/sr_RS/commercial.lang | 3 +- htdocs/langs/sr_RS/companies.lang | 23 +- htdocs/langs/sr_RS/contracts.lang | 2 + htdocs/langs/sr_RS/exports.lang | 13 +- htdocs/langs/sr_RS/holiday.lang | 2 +- htdocs/langs/sr_RS/install.lang | 1 + htdocs/langs/sr_RS/interventions.lang | 1 + htdocs/langs/sr_RS/languages.lang | 5 + htdocs/langs/sr_RS/loan.lang | 3 + htdocs/langs/sr_RS/mails.lang | 10 +- htdocs/langs/sr_RS/main.lang | 6 +- htdocs/langs/sr_RS/margins.lang | 2 +- htdocs/langs/sr_RS/members.lang | 8 +- htdocs/langs/sr_RS/other.lang | 1 + htdocs/langs/sr_RS/paybox.lang | 1 + htdocs/langs/sr_RS/paypal.lang | 10 +- htdocs/langs/sr_RS/printing.lang | 6 +- htdocs/langs/sr_RS/products.lang | 41 ++- htdocs/langs/sr_RS/propal.lang | 4 +- htdocs/langs/sr_RS/resource.lang | 5 + htdocs/langs/sr_RS/salaries.lang | 5 +- htdocs/langs/sr_RS/sendings.lang | 9 +- htdocs/langs/sr_RS/stocks.lang | 60 +++- htdocs/langs/sr_RS/suppliers.lang | 2 + htdocs/langs/sr_RS/trips.lang | 27 +- htdocs/langs/sr_RS/users.lang | 4 +- htdocs/langs/sr_RS/withdrawals.lang | 3 +- htdocs/langs/sv_SE/accountancy.lang | 6 +- htdocs/langs/sv_SE/admin.lang | 4 +- htdocs/langs/sv_SE/agenda.lang | 14 +- htdocs/langs/sv_SE/banks.lang | 9 +- htdocs/langs/sv_SE/bills.lang | 28 +- htdocs/langs/sv_SE/bookmarks.lang | 6 +- htdocs/langs/sv_SE/boxes.lang | 2 + htdocs/langs/sv_SE/cashdesk.lang | 2 +- htdocs/langs/sv_SE/categories.lang | 5 +- htdocs/langs/sv_SE/commercial.lang | 3 +- htdocs/langs/sv_SE/companies.lang | 23 +- htdocs/langs/sv_SE/contracts.lang | 2 + htdocs/langs/sv_SE/exports.lang | 13 +- htdocs/langs/sv_SE/holiday.lang | 2 +- htdocs/langs/sv_SE/install.lang | 1 + htdocs/langs/sv_SE/interventions.lang | 1 + htdocs/langs/sv_SE/languages.lang | 5 + htdocs/langs/sv_SE/loan.lang | 3 + htdocs/langs/sv_SE/mails.lang | 10 +- htdocs/langs/sv_SE/main.lang | 6 +- htdocs/langs/sv_SE/margins.lang | 2 +- htdocs/langs/sv_SE/members.lang | 8 +- htdocs/langs/sv_SE/modulebuilder.lang | 40 +++ htdocs/langs/sv_SE/oauth.lang | 10 +- htdocs/langs/sv_SE/other.lang | 1 + htdocs/langs/sv_SE/paybox.lang | 1 + htdocs/langs/sv_SE/paypal.lang | 10 +- htdocs/langs/sv_SE/printing.lang | 10 +- htdocs/langs/sv_SE/products.lang | 41 ++- htdocs/langs/sv_SE/propal.lang | 4 +- htdocs/langs/sv_SE/resource.lang | 5 + htdocs/langs/sv_SE/salaries.lang | 5 +- htdocs/langs/sv_SE/sendings.lang | 9 +- htdocs/langs/sv_SE/stocks.lang | 60 +++- htdocs/langs/sv_SE/stripe.lang | 42 +++ htdocs/langs/sv_SE/supplier_proposal.lang | 6 +- htdocs/langs/sv_SE/suppliers.lang | 2 + htdocs/langs/sv_SE/trips.lang | 27 +- htdocs/langs/sv_SE/users.lang | 4 +- htdocs/langs/sv_SE/website.lang | 13 +- htdocs/langs/sv_SE/withdrawals.lang | 3 +- htdocs/langs/sw_SW/accountancy.lang | 6 +- htdocs/langs/sw_SW/admin.lang | 4 +- htdocs/langs/sw_SW/agenda.lang | 14 +- htdocs/langs/sw_SW/banks.lang | 9 +- htdocs/langs/sw_SW/bills.lang | 28 +- htdocs/langs/sw_SW/bookmarks.lang | 6 +- htdocs/langs/sw_SW/boxes.lang | 2 + htdocs/langs/sw_SW/cashdesk.lang | 2 +- htdocs/langs/sw_SW/categories.lang | 3 +- htdocs/langs/sw_SW/commercial.lang | 3 +- htdocs/langs/sw_SW/companies.lang | 23 +- htdocs/langs/sw_SW/contracts.lang | 2 + htdocs/langs/sw_SW/exports.lang | 13 +- htdocs/langs/sw_SW/holiday.lang | 2 +- htdocs/langs/sw_SW/install.lang | 1 + htdocs/langs/sw_SW/interventions.lang | 1 + htdocs/langs/sw_SW/languages.lang | 5 + htdocs/langs/sw_SW/link.lang | 1 + htdocs/langs/sw_SW/loan.lang | 3 + htdocs/langs/sw_SW/mails.lang | 10 +- htdocs/langs/sw_SW/main.lang | 6 +- htdocs/langs/sw_SW/margins.lang | 2 +- htdocs/langs/sw_SW/members.lang | 2 + htdocs/langs/sw_SW/other.lang | 1 + htdocs/langs/sw_SW/paybox.lang | 1 + htdocs/langs/sw_SW/paypal.lang | 10 +- htdocs/langs/sw_SW/printing.lang | 2 +- htdocs/langs/sw_SW/products.lang | 41 ++- htdocs/langs/sw_SW/propal.lang | 4 +- htdocs/langs/sw_SW/resource.lang | 5 + htdocs/langs/sw_SW/salaries.lang | 5 +- htdocs/langs/sw_SW/sendings.lang | 9 +- htdocs/langs/sw_SW/stocks.lang | 60 +++- htdocs/langs/sw_SW/suppliers.lang | 2 + htdocs/langs/sw_SW/trips.lang | 27 +- htdocs/langs/sw_SW/users.lang | 4 +- htdocs/langs/sw_SW/withdrawals.lang | 3 +- htdocs/langs/th_TH/accountancy.lang | 6 +- htdocs/langs/th_TH/admin.lang | 6 +- htdocs/langs/th_TH/agenda.lang | 14 +- htdocs/langs/th_TH/banks.lang | 9 +- htdocs/langs/th_TH/bills.lang | 28 +- htdocs/langs/th_TH/bookmarks.lang | 6 +- htdocs/langs/th_TH/boxes.lang | 4 +- htdocs/langs/th_TH/cashdesk.lang | 2 +- htdocs/langs/th_TH/categories.lang | 7 +- htdocs/langs/th_TH/commercial.lang | 7 +- htdocs/langs/th_TH/companies.lang | 31 +- htdocs/langs/th_TH/contracts.lang | 2 + htdocs/langs/th_TH/exports.lang | 13 +- htdocs/langs/th_TH/holiday.lang | 2 +- htdocs/langs/th_TH/install.lang | 1 + htdocs/langs/th_TH/interventions.lang | 1 + htdocs/langs/th_TH/languages.lang | 5 + htdocs/langs/th_TH/loan.lang | 3 + htdocs/langs/th_TH/mails.lang | 10 +- htdocs/langs/th_TH/main.lang | 6 +- htdocs/langs/th_TH/margins.lang | 2 +- htdocs/langs/th_TH/members.lang | 2 + htdocs/langs/th_TH/modulebuilder.lang | 40 +++ htdocs/langs/th_TH/multicurrency.lang | 18 ++ htdocs/langs/th_TH/oauth.lang | 10 +- htdocs/langs/th_TH/other.lang | 1 + htdocs/langs/th_TH/paybox.lang | 1 + htdocs/langs/th_TH/paypal.lang | 10 +- htdocs/langs/th_TH/printing.lang | 6 +- htdocs/langs/th_TH/products.lang | 41 ++- htdocs/langs/th_TH/propal.lang | 4 +- htdocs/langs/th_TH/resource.lang | 5 + htdocs/langs/th_TH/salaries.lang | 5 +- htdocs/langs/th_TH/sendings.lang | 9 +- htdocs/langs/th_TH/stocks.lang | 60 +++- htdocs/langs/th_TH/stripe.lang | 42 +++ htdocs/langs/th_TH/supplier_proposal.lang | 6 +- htdocs/langs/th_TH/suppliers.lang | 2 + htdocs/langs/th_TH/trips.lang | 27 +- htdocs/langs/th_TH/users.lang | 4 +- htdocs/langs/th_TH/website.lang | 13 +- htdocs/langs/th_TH/withdrawals.lang | 3 +- htdocs/langs/tr_TR/accountancy.lang | 8 +- htdocs/langs/tr_TR/admin.lang | 90 +++--- htdocs/langs/tr_TR/agenda.lang | 14 +- htdocs/langs/tr_TR/banks.lang | 7 +- htdocs/langs/tr_TR/bills.lang | 30 +- htdocs/langs/tr_TR/bookmarks.lang | 6 +- htdocs/langs/tr_TR/boxes.lang | 16 +- htdocs/langs/tr_TR/cashdesk.lang | 2 +- htdocs/langs/tr_TR/categories.lang | 1 + htdocs/langs/tr_TR/commercial.lang | 3 +- htdocs/langs/tr_TR/companies.lang | 43 +-- htdocs/langs/tr_TR/compta.lang | 2 +- htdocs/langs/tr_TR/contracts.lang | 2 + htdocs/langs/tr_TR/exports.lang | 13 +- htdocs/langs/tr_TR/holiday.lang | 2 +- htdocs/langs/tr_TR/install.lang | 1 + htdocs/langs/tr_TR/interventions.lang | 1 + htdocs/langs/tr_TR/languages.lang | 5 + htdocs/langs/tr_TR/loan.lang | 3 + htdocs/langs/tr_TR/mails.lang | 10 +- htdocs/langs/tr_TR/main.lang | 110 ++++---- htdocs/langs/tr_TR/margins.lang | 2 +- htdocs/langs/tr_TR/members.lang | 12 +- htdocs/langs/tr_TR/modulebuilder.lang | 40 +++ htdocs/langs/tr_TR/multicurrency.lang | 18 ++ htdocs/langs/tr_TR/oauth.lang | 16 +- htdocs/langs/tr_TR/other.lang | 1 + htdocs/langs/tr_TR/paybox.lang | 1 + htdocs/langs/tr_TR/paypal.lang | 12 +- htdocs/langs/tr_TR/printing.lang | 2 +- htdocs/langs/tr_TR/productbatch.lang | 4 +- htdocs/langs/tr_TR/products.lang | 41 ++- htdocs/langs/tr_TR/propal.lang | 10 +- htdocs/langs/tr_TR/resource.lang | 5 + htdocs/langs/tr_TR/salaries.lang | 5 +- htdocs/langs/tr_TR/sendings.lang | 9 +- htdocs/langs/tr_TR/stocks.lang | 60 +++- htdocs/langs/tr_TR/stripe.lang | 42 +++ htdocs/langs/tr_TR/supplier_proposal.lang | 16 +- htdocs/langs/tr_TR/suppliers.lang | 10 +- htdocs/langs/tr_TR/trips.lang | 27 +- htdocs/langs/tr_TR/users.lang | 4 +- htdocs/langs/tr_TR/website.lang | 11 +- htdocs/langs/tr_TR/withdrawals.lang | 3 +- htdocs/langs/tr_TR/workflow.lang | 6 +- htdocs/langs/uk_UA/accountancy.lang | 6 +- htdocs/langs/uk_UA/admin.lang | 4 +- htdocs/langs/uk_UA/agenda.lang | 14 +- htdocs/langs/uk_UA/banks.lang | 9 +- htdocs/langs/uk_UA/bills.lang | 28 +- htdocs/langs/uk_UA/bookmarks.lang | 6 +- htdocs/langs/uk_UA/boxes.lang | 2 + htdocs/langs/uk_UA/cashdesk.lang | 4 +- htdocs/langs/uk_UA/categories.lang | 3 +- htdocs/langs/uk_UA/commercial.lang | 3 +- htdocs/langs/uk_UA/companies.lang | 23 +- htdocs/langs/uk_UA/contracts.lang | 2 + htdocs/langs/uk_UA/exports.lang | 13 +- htdocs/langs/uk_UA/holiday.lang | 2 +- htdocs/langs/uk_UA/install.lang | 1 + htdocs/langs/uk_UA/interventions.lang | 1 + htdocs/langs/uk_UA/languages.lang | 5 + htdocs/langs/uk_UA/link.lang | 1 + htdocs/langs/uk_UA/loan.lang | 3 + htdocs/langs/uk_UA/mails.lang | 10 +- htdocs/langs/uk_UA/main.lang | 6 +- htdocs/langs/uk_UA/margins.lang | 2 +- htdocs/langs/uk_UA/members.lang | 2 + htdocs/langs/uk_UA/modulebuilder.lang | 40 +++ htdocs/langs/uk_UA/oauth.lang | 10 +- htdocs/langs/uk_UA/other.lang | 1 + htdocs/langs/uk_UA/paybox.lang | 1 + htdocs/langs/uk_UA/paypal.lang | 10 +- htdocs/langs/uk_UA/printing.lang | 2 +- htdocs/langs/uk_UA/products.lang | 41 ++- htdocs/langs/uk_UA/propal.lang | 4 +- htdocs/langs/uk_UA/resource.lang | 5 + htdocs/langs/uk_UA/salaries.lang | 5 +- htdocs/langs/uk_UA/sendings.lang | 9 +- htdocs/langs/uk_UA/stocks.lang | 60 +++- htdocs/langs/uk_UA/stripe.lang | 42 +++ htdocs/langs/uk_UA/supplier_proposal.lang | 6 +- htdocs/langs/uk_UA/suppliers.lang | 2 + htdocs/langs/uk_UA/trips.lang | 27 +- htdocs/langs/uk_UA/users.lang | 4 +- htdocs/langs/uk_UA/website.lang | 11 +- htdocs/langs/uk_UA/withdrawals.lang | 3 +- htdocs/langs/uz_UZ/accountancy.lang | 6 +- htdocs/langs/uz_UZ/admin.lang | 4 +- htdocs/langs/uz_UZ/agenda.lang | 14 +- htdocs/langs/uz_UZ/banks.lang | 9 +- htdocs/langs/uz_UZ/bills.lang | 28 +- htdocs/langs/uz_UZ/bookmarks.lang | 6 +- htdocs/langs/uz_UZ/boxes.lang | 2 + htdocs/langs/uz_UZ/cashdesk.lang | 2 +- htdocs/langs/uz_UZ/categories.lang | 3 +- htdocs/langs/uz_UZ/commercial.lang | 3 +- htdocs/langs/uz_UZ/companies.lang | 23 +- htdocs/langs/uz_UZ/contracts.lang | 2 + htdocs/langs/uz_UZ/exports.lang | 13 +- htdocs/langs/uz_UZ/holiday.lang | 2 +- htdocs/langs/uz_UZ/install.lang | 1 + htdocs/langs/uz_UZ/interventions.lang | 1 + htdocs/langs/uz_UZ/languages.lang | 5 + htdocs/langs/uz_UZ/link.lang | 1 + htdocs/langs/uz_UZ/loan.lang | 3 + htdocs/langs/uz_UZ/mails.lang | 10 +- htdocs/langs/uz_UZ/main.lang | 6 +- htdocs/langs/uz_UZ/margins.lang | 2 +- htdocs/langs/uz_UZ/members.lang | 2 + htdocs/langs/uz_UZ/other.lang | 1 + htdocs/langs/uz_UZ/paybox.lang | 1 + htdocs/langs/uz_UZ/paypal.lang | 10 +- htdocs/langs/uz_UZ/printing.lang | 2 +- htdocs/langs/uz_UZ/products.lang | 41 ++- htdocs/langs/uz_UZ/propal.lang | 4 +- htdocs/langs/uz_UZ/resource.lang | 5 + htdocs/langs/uz_UZ/salaries.lang | 5 +- htdocs/langs/uz_UZ/sendings.lang | 9 +- htdocs/langs/uz_UZ/stocks.lang | 60 +++- htdocs/langs/uz_UZ/suppliers.lang | 2 + htdocs/langs/uz_UZ/trips.lang | 27 +- htdocs/langs/uz_UZ/users.lang | 4 +- htdocs/langs/uz_UZ/withdrawals.lang | 3 +- htdocs/langs/vi_VN/accountancy.lang | 6 +- htdocs/langs/vi_VN/admin.lang | 4 +- htdocs/langs/vi_VN/agenda.lang | 34 ++- htdocs/langs/vi_VN/banks.lang | 9 +- htdocs/langs/vi_VN/bills.lang | 28 +- htdocs/langs/vi_VN/bookmarks.lang | 10 +- htdocs/langs/vi_VN/boxes.lang | 2 + htdocs/langs/vi_VN/cashdesk.lang | 2 +- htdocs/langs/vi_VN/categories.lang | 49 ++-- htdocs/langs/vi_VN/commercial.lang | 3 +- htdocs/langs/vi_VN/companies.lang | 23 +- htdocs/langs/vi_VN/contracts.lang | 2 + htdocs/langs/vi_VN/exports.lang | 13 +- htdocs/langs/vi_VN/holiday.lang | 2 +- htdocs/langs/vi_VN/hrm.lang | 24 +- htdocs/langs/vi_VN/install.lang | 1 + htdocs/langs/vi_VN/interventions.lang | 1 + htdocs/langs/vi_VN/languages.lang | 5 + htdocs/langs/vi_VN/link.lang | 1 + htdocs/langs/vi_VN/loan.lang | 15 +- htdocs/langs/vi_VN/mails.lang | 10 +- htdocs/langs/vi_VN/main.lang | 6 +- htdocs/langs/vi_VN/margins.lang | 2 +- htdocs/langs/vi_VN/members.lang | 12 +- htdocs/langs/vi_VN/modulebuilder.lang | 40 +++ htdocs/langs/vi_VN/oauth.lang | 10 +- htdocs/langs/vi_VN/other.lang | 1 + htdocs/langs/vi_VN/paybox.lang | 1 + htdocs/langs/vi_VN/paypal.lang | 10 +- htdocs/langs/vi_VN/printing.lang | 10 +- htdocs/langs/vi_VN/products.lang | 41 ++- htdocs/langs/vi_VN/propal.lang | 4 +- htdocs/langs/vi_VN/resource.lang | 5 + htdocs/langs/vi_VN/salaries.lang | 5 +- htdocs/langs/vi_VN/sendings.lang | 9 +- htdocs/langs/vi_VN/stocks.lang | 60 +++- htdocs/langs/vi_VN/stripe.lang | 42 +++ htdocs/langs/vi_VN/supplier_proposal.lang | 6 +- htdocs/langs/vi_VN/suppliers.lang | 2 + htdocs/langs/vi_VN/trips.lang | 27 +- htdocs/langs/vi_VN/users.lang | 4 +- htdocs/langs/vi_VN/website.lang | 13 +- htdocs/langs/vi_VN/withdrawals.lang | 3 +- htdocs/langs/vi_VN/workflow.lang | 16 +- htdocs/langs/zh_CN/accountancy.lang | 6 +- htdocs/langs/zh_CN/admin.lang | 4 +- htdocs/langs/zh_CN/agenda.lang | 16 +- htdocs/langs/zh_CN/banks.lang | 9 +- htdocs/langs/zh_CN/bills.lang | 28 +- htdocs/langs/zh_CN/bookmarks.lang | 6 +- htdocs/langs/zh_CN/boxes.lang | 2 + htdocs/langs/zh_CN/cashdesk.lang | 2 +- htdocs/langs/zh_CN/categories.lang | 3 +- htdocs/langs/zh_CN/commercial.lang | 3 +- htdocs/langs/zh_CN/companies.lang | 23 +- htdocs/langs/zh_CN/contracts.lang | 20 +- htdocs/langs/zh_CN/donations.lang | 2 +- htdocs/langs/zh_CN/exports.lang | 19 +- htdocs/langs/zh_CN/help.lang | 4 +- htdocs/langs/zh_CN/holiday.lang | 2 +- htdocs/langs/zh_CN/hrm.lang | 2 +- htdocs/langs/zh_CN/install.lang | 1 + htdocs/langs/zh_CN/interventions.lang | 1 + htdocs/langs/zh_CN/languages.lang | 5 + htdocs/langs/zh_CN/loan.lang | 3 + htdocs/langs/zh_CN/mails.lang | 12 +- htdocs/langs/zh_CN/main.lang | 6 +- htdocs/langs/zh_CN/margins.lang | 2 +- htdocs/langs/zh_CN/members.lang | 20 +- htdocs/langs/zh_CN/modulebuilder.lang | 40 +++ htdocs/langs/zh_CN/multicurrency.lang | 18 ++ htdocs/langs/zh_CN/oauth.lang | 12 +- htdocs/langs/zh_CN/other.lang | 1 + htdocs/langs/zh_CN/paybox.lang | 1 + htdocs/langs/zh_CN/paypal.lang | 12 +- htdocs/langs/zh_CN/printing.lang | 4 +- htdocs/langs/zh_CN/products.lang | 41 ++- htdocs/langs/zh_CN/propal.lang | 4 +- htdocs/langs/zh_CN/resource.lang | 5 + htdocs/langs/zh_CN/salaries.lang | 5 +- htdocs/langs/zh_CN/sendings.lang | 9 +- htdocs/langs/zh_CN/sms.lang | 2 +- htdocs/langs/zh_CN/stocks.lang | 60 +++- htdocs/langs/zh_CN/stripe.lang | 42 +++ htdocs/langs/zh_CN/supplier_proposal.lang | 6 +- htdocs/langs/zh_CN/suppliers.lang | 2 + htdocs/langs/zh_CN/trips.lang | 27 +- htdocs/langs/zh_CN/users.lang | 6 +- htdocs/langs/zh_CN/website.lang | 11 +- htdocs/langs/zh_CN/withdrawals.lang | 3 +- htdocs/langs/zh_TW/accountancy.lang | 6 +- htdocs/langs/zh_TW/admin.lang | 4 +- htdocs/langs/zh_TW/agenda.lang | 14 +- htdocs/langs/zh_TW/banks.lang | 9 +- htdocs/langs/zh_TW/bills.lang | 28 +- htdocs/langs/zh_TW/bookmarks.lang | 6 +- htdocs/langs/zh_TW/boxes.lang | 2 + htdocs/langs/zh_TW/cashdesk.lang | 2 +- htdocs/langs/zh_TW/categories.lang | 5 +- htdocs/langs/zh_TW/commercial.lang | 3 +- htdocs/langs/zh_TW/companies.lang | 23 +- htdocs/langs/zh_TW/contracts.lang | 2 + htdocs/langs/zh_TW/exports.lang | 13 +- htdocs/langs/zh_TW/holiday.lang | 2 +- htdocs/langs/zh_TW/install.lang | 1 + htdocs/langs/zh_TW/interventions.lang | 1 + htdocs/langs/zh_TW/languages.lang | 5 + htdocs/langs/zh_TW/link.lang | 1 + htdocs/langs/zh_TW/loan.lang | 3 + htdocs/langs/zh_TW/mails.lang | 10 +- htdocs/langs/zh_TW/main.lang | 6 +- htdocs/langs/zh_TW/margins.lang | 2 +- htdocs/langs/zh_TW/members.lang | 8 +- htdocs/langs/zh_TW/modulebuilder.lang | 40 +++ htdocs/langs/zh_TW/oauth.lang | 10 +- htdocs/langs/zh_TW/other.lang | 1 + htdocs/langs/zh_TW/paybox.lang | 1 + htdocs/langs/zh_TW/paypal.lang | 10 +- htdocs/langs/zh_TW/printing.lang | 12 +- htdocs/langs/zh_TW/products.lang | 41 ++- htdocs/langs/zh_TW/propal.lang | 4 +- htdocs/langs/zh_TW/resource.lang | 5 + htdocs/langs/zh_TW/salaries.lang | 5 +- htdocs/langs/zh_TW/sendings.lang | 9 +- htdocs/langs/zh_TW/stocks.lang | 60 +++- htdocs/langs/zh_TW/stripe.lang | 42 +++ htdocs/langs/zh_TW/supplier_proposal.lang | 6 +- htdocs/langs/zh_TW/suppliers.lang | 2 + htdocs/langs/zh_TW/trips.lang | 27 +- htdocs/langs/zh_TW/users.lang | 4 +- htdocs/langs/zh_TW/website.lang | 13 +- htdocs/langs/zh_TW/withdrawals.lang | 3 +- 2300 files changed, 20840 insertions(+), 8910 deletions(-) create mode 100644 htdocs/langs/ar_SA/modulebuilder.lang create mode 100644 htdocs/langs/ar_SA/stripe.lang create mode 100644 htdocs/langs/bg_BG/modulebuilder.lang create mode 100644 htdocs/langs/bg_BG/stripe.lang create mode 100644 htdocs/langs/bn_BD/modulebuilder.lang create mode 100644 htdocs/langs/bn_BD/stripe.lang create mode 100644 htdocs/langs/bs_BA/modulebuilder.lang create mode 100644 htdocs/langs/bs_BA/multicurrency.lang create mode 100644 htdocs/langs/bs_BA/stripe.lang create mode 100644 htdocs/langs/ca_ES/modulebuilder.lang create mode 100644 htdocs/langs/ca_ES/multicurrency.lang create mode 100644 htdocs/langs/ca_ES/stripe.lang create mode 100644 htdocs/langs/cs_CZ/modulebuilder.lang create mode 100644 htdocs/langs/cs_CZ/multicurrency.lang create mode 100644 htdocs/langs/cs_CZ/stripe.lang create mode 100644 htdocs/langs/da_DK/modulebuilder.lang create mode 100644 htdocs/langs/da_DK/stripe.lang create mode 100644 htdocs/langs/de_AT/donations.lang delete mode 100644 htdocs/langs/de_AT/oauth.lang delete mode 100644 htdocs/langs/de_AT/printing.lang create mode 100644 htdocs/langs/de_AT/sms.lang create mode 100644 htdocs/langs/de_AT/supplier_proposal.lang delete mode 100644 htdocs/langs/de_CH/salaries.lang create mode 100644 htdocs/langs/de_CH/stripe.lang create mode 100644 htdocs/langs/de_DE/modulebuilder.lang create mode 100644 htdocs/langs/de_DE/multicurrency.lang create mode 100644 htdocs/langs/de_DE/stripe.lang create mode 100644 htdocs/langs/el_GR/modulebuilder.lang create mode 100644 htdocs/langs/el_GR/multicurrency.lang create mode 100644 htdocs/langs/el_GR/stripe.lang delete mode 100644 htdocs/langs/en_AU/oauth.lang delete mode 100644 htdocs/langs/en_AU/printing.lang delete mode 100644 htdocs/langs/en_CA/oauth.lang delete mode 100644 htdocs/langs/en_CA/printing.lang create mode 100644 htdocs/langs/en_GB/accountancy.lang create mode 100644 htdocs/langs/en_GB/bookmarks.lang create mode 100644 htdocs/langs/en_GB/cashdesk.lang delete mode 100644 htdocs/langs/en_GB/oauth.lang create mode 100644 htdocs/langs/en_IN/agenda.lang create mode 100644 htdocs/langs/en_IN/bills.lang create mode 100644 htdocs/langs/en_IN/boxes.lang create mode 100644 htdocs/langs/en_IN/commercial.lang create mode 100644 htdocs/langs/en_IN/companies.lang create mode 100644 htdocs/langs/en_IN/compta.lang create mode 100644 htdocs/langs/en_IN/ecm.lang create mode 100644 htdocs/langs/en_IN/install.lang delete mode 100644 htdocs/langs/en_IN/oauth.lang create mode 100644 htdocs/langs/en_IN/other.lang delete mode 100644 htdocs/langs/en_IN/printing.lang create mode 100644 htdocs/langs/en_IN/projects.lang create mode 100644 htdocs/langs/en_IN/propal.lang create mode 100644 htdocs/langs/en_IN/supplier_proposal.lang delete mode 100644 htdocs/langs/es_AR/oauth.lang delete mode 100644 htdocs/langs/es_AR/printing.lang delete mode 100644 htdocs/langs/es_BO/oauth.lang delete mode 100644 htdocs/langs/es_BO/printing.lang create mode 100644 htdocs/langs/es_CL/bookmarks.lang delete mode 100644 htdocs/langs/es_CL/oauth.lang delete mode 100644 htdocs/langs/es_CL/printing.lang create mode 100644 htdocs/langs/es_CL/stocks.lang delete mode 100644 htdocs/langs/es_CO/oauth.lang delete mode 100644 htdocs/langs/es_CO/printing.lang delete mode 100644 htdocs/langs/es_CO/salaries.lang create mode 100644 htdocs/langs/es_CO/stocks.lang delete mode 100644 htdocs/langs/es_DO/oauth.lang delete mode 100644 htdocs/langs/es_DO/printing.lang delete mode 100644 htdocs/langs/es_EC/oauth.lang delete mode 100644 htdocs/langs/es_EC/printing.lang create mode 100644 htdocs/langs/es_ES/modulebuilder.lang create mode 100644 htdocs/langs/es_ES/multicurrency.lang create mode 100644 htdocs/langs/es_ES/stripe.lang delete mode 100644 htdocs/langs/es_MX/oauth.lang delete mode 100644 htdocs/langs/es_PA/oauth.lang delete mode 100644 htdocs/langs/es_PA/printing.lang delete mode 100644 htdocs/langs/es_PE/oauth.lang delete mode 100644 htdocs/langs/es_PE/printing.lang delete mode 100644 htdocs/langs/es_PY/oauth.lang delete mode 100644 htdocs/langs/es_PY/printing.lang create mode 100644 htdocs/langs/es_VE/banks.lang create mode 100644 htdocs/langs/es_VE/members.lang delete mode 100644 htdocs/langs/es_VE/oauth.lang create mode 100644 htdocs/langs/es_VE/propal.lang create mode 100644 htdocs/langs/es_VE/stocks.lang create mode 100644 htdocs/langs/et_EE/modulebuilder.lang create mode 100644 htdocs/langs/et_EE/stripe.lang create mode 100644 htdocs/langs/eu_ES/modulebuilder.lang create mode 100644 htdocs/langs/eu_ES/stripe.lang create mode 100644 htdocs/langs/fa_IR/modulebuilder.lang create mode 100644 htdocs/langs/fa_IR/stripe.lang create mode 100644 htdocs/langs/fi_FI/modulebuilder.lang create mode 100644 htdocs/langs/fi_FI/stripe.lang delete mode 100644 htdocs/langs/fr_BE/oauth.lang delete mode 100644 htdocs/langs/fr_BE/printing.lang create mode 100644 htdocs/langs/fr_CA/bookmarks.lang create mode 100644 htdocs/langs/fr_CA/dict.lang create mode 100644 htdocs/langs/fr_CA/externalsite.lang create mode 100644 htdocs/langs/fr_CA/ftp.lang create mode 100644 htdocs/langs/fr_CA/help.lang create mode 100644 htdocs/langs/fr_CA/hrm.lang create mode 100644 htdocs/langs/fr_CA/incoterm.lang create mode 100644 htdocs/langs/fr_CA/languages.lang create mode 100644 htdocs/langs/fr_CA/link.lang create mode 100644 htdocs/langs/fr_CA/loan.lang create mode 100644 htdocs/langs/fr_CA/mailmanspip.lang create mode 100644 htdocs/langs/fr_CA/modulebuilder.lang create mode 100644 htdocs/langs/fr_CA/multicurrency.lang create mode 100644 htdocs/langs/fr_CA/paypal.lang create mode 100644 htdocs/langs/fr_CA/productbatch.lang create mode 100644 htdocs/langs/fr_CA/receiptprinter.lang create mode 100644 htdocs/langs/fr_CA/stripe.lang delete mode 100644 htdocs/langs/fr_CH/oauth.lang delete mode 100644 htdocs/langs/fr_CH/printing.lang create mode 100644 htdocs/langs/fr_FR/modulebuilder.lang create mode 100644 htdocs/langs/fr_FR/multicurrency.lang create mode 100644 htdocs/langs/fr_FR/stripe.lang create mode 100644 htdocs/langs/he_IL/modulebuilder.lang create mode 100644 htdocs/langs/he_IL/stripe.lang create mode 100644 htdocs/langs/hr_HR/modulebuilder.lang create mode 100644 htdocs/langs/hr_HR/stripe.lang create mode 100644 htdocs/langs/hu_HU/modulebuilder.lang create mode 100644 htdocs/langs/hu_HU/multicurrency.lang create mode 100644 htdocs/langs/hu_HU/stripe.lang create mode 100644 htdocs/langs/id_ID/modulebuilder.lang create mode 100644 htdocs/langs/id_ID/stripe.lang create mode 100644 htdocs/langs/is_IS/modulebuilder.lang create mode 100644 htdocs/langs/is_IS/stripe.lang create mode 100644 htdocs/langs/it_IT/modulebuilder.lang create mode 100644 htdocs/langs/it_IT/multicurrency.lang create mode 100644 htdocs/langs/it_IT/stripe.lang create mode 100644 htdocs/langs/ja_JP/modulebuilder.lang create mode 100644 htdocs/langs/ja_JP/stripe.lang create mode 100644 htdocs/langs/ka_GE/modulebuilder.lang create mode 100644 htdocs/langs/ka_GE/stripe.lang create mode 100644 htdocs/langs/km_KH/modulebuilder.lang create mode 100644 htdocs/langs/km_KH/stripe.lang create mode 100644 htdocs/langs/kn_IN/modulebuilder.lang create mode 100644 htdocs/langs/kn_IN/stripe.lang create mode 100644 htdocs/langs/ko_KR/modulebuilder.lang create mode 100644 htdocs/langs/ko_KR/stripe.lang create mode 100644 htdocs/langs/lo_LA/modulebuilder.lang create mode 100644 htdocs/langs/lo_LA/stripe.lang create mode 100644 htdocs/langs/lt_LT/modulebuilder.lang create mode 100644 htdocs/langs/lt_LT/stripe.lang create mode 100644 htdocs/langs/lv_LV/modulebuilder.lang create mode 100644 htdocs/langs/lv_LV/multicurrency.lang create mode 100644 htdocs/langs/lv_LV/stripe.lang create mode 100644 htdocs/langs/mk_MK/modulebuilder.lang create mode 100644 htdocs/langs/mk_MK/stripe.lang create mode 100644 htdocs/langs/mn_MN/modulebuilder.lang create mode 100644 htdocs/langs/mn_MN/stripe.lang create mode 100644 htdocs/langs/nl_BE/boxes.lang create mode 100644 htdocs/langs/nl_BE/commercial.lang create mode 100644 htdocs/langs/nl_BE/members.lang create mode 100644 htdocs/langs/nl_BE/projects.lang create mode 100644 htdocs/langs/nl_BE/resource.lang create mode 100644 htdocs/langs/nl_BE/salaries.lang create mode 100644 htdocs/langs/nl_BE/stocks.lang create mode 100644 htdocs/langs/nl_BE/users.lang create mode 100644 htdocs/langs/nl_BE/website.lang create mode 100644 htdocs/langs/nl_BE/workflow.lang create mode 100644 htdocs/langs/nl_NL/modulebuilder.lang create mode 100644 htdocs/langs/nl_NL/stripe.lang create mode 100644 htdocs/langs/pl_PL/modulebuilder.lang create mode 100644 htdocs/langs/pl_PL/multicurrency.lang create mode 100644 htdocs/langs/pl_PL/stripe.lang create mode 100644 htdocs/langs/pt_BR/stripe.lang create mode 100644 htdocs/langs/pt_PT/modulebuilder.lang create mode 100644 htdocs/langs/pt_PT/multicurrency.lang create mode 100644 htdocs/langs/pt_PT/stripe.lang create mode 100644 htdocs/langs/ro_RO/modulebuilder.lang create mode 100644 htdocs/langs/ro_RO/stripe.lang create mode 100644 htdocs/langs/sk_SK/modulebuilder.lang create mode 100644 htdocs/langs/sk_SK/stripe.lang create mode 100644 htdocs/langs/sl_SI/modulebuilder.lang create mode 100644 htdocs/langs/sl_SI/stripe.lang create mode 100644 htdocs/langs/sq_AL/modulebuilder.lang create mode 100644 htdocs/langs/sq_AL/stripe.lang create mode 100644 htdocs/langs/sv_SE/modulebuilder.lang create mode 100644 htdocs/langs/sv_SE/stripe.lang create mode 100644 htdocs/langs/th_TH/modulebuilder.lang create mode 100644 htdocs/langs/th_TH/multicurrency.lang create mode 100644 htdocs/langs/th_TH/stripe.lang create mode 100644 htdocs/langs/tr_TR/modulebuilder.lang create mode 100644 htdocs/langs/tr_TR/multicurrency.lang create mode 100644 htdocs/langs/tr_TR/stripe.lang create mode 100644 htdocs/langs/uk_UA/modulebuilder.lang create mode 100644 htdocs/langs/uk_UA/stripe.lang create mode 100644 htdocs/langs/vi_VN/modulebuilder.lang create mode 100644 htdocs/langs/vi_VN/stripe.lang create mode 100644 htdocs/langs/zh_CN/modulebuilder.lang create mode 100644 htdocs/langs/zh_CN/multicurrency.lang create mode 100644 htdocs/langs/zh_CN/stripe.lang create mode 100644 htdocs/langs/zh_TW/modulebuilder.lang create mode 100644 htdocs/langs/zh_TW/stripe.lang diff --git a/dev/translation/strip_language_file.php b/dev/translation/strip_language_file.php index 647b571c788..92233d71b98 100755 --- a/dev/translation/strip_language_file.php +++ b/dev/translation/strip_language_file.php @@ -303,6 +303,8 @@ foreach($filesToProcess as $fileToProcess) // ----- Process output now ----- + //print "Found primary key = ".$key."\n"; + // Key not in other file if (in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/',$key) || preg_match('/^FormatHour/',$key)) { @@ -321,7 +323,7 @@ foreach($filesToProcess as $fileToProcess) || in_array($key, $arrayofkeytoalwayskeep) || preg_match('/^FormatDate/',$key) || preg_match('/^FormatHour/',$key) ) { - //print "Key $key differs so we add it into new secondary language (line: $cnt).\n"; + //print "Key $key differs (aSecondary=".$aSecondary[$key].", aPrimary=".$aPrimary[$key].", aEnglish=".$aEnglish[$key].") so we add it into new secondary language (line: $cnt).\n"; fwrite($oh, $key."=".(empty($aSecondary[$key])?$aPrimary[$key]:$aSecondary[$key])."\n"); } } diff --git a/htdocs/fourn/facture/card.php b/htdocs/fourn/facture/card.php index f0a0985a82c..ba26a4117fd 100644 --- a/htdocs/fourn/facture/card.php +++ b/htdocs/fourn/facture/card.php @@ -2756,7 +2756,6 @@ else } } print ''; - print '
'; if ($action != 'edit') { diff --git a/htdocs/langs/ar_SA/accountancy.lang b/htdocs/langs/ar_SA/accountancy.lang index 7e3daf418cc..0d632261a5d 100644 --- a/htdocs/langs/ar_SA/accountancy.lang +++ b/htdocs/langs/ar_SA/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=إضافة حساب محاسبي AccountAccounting=حساب محاسبي AccountAccountingShort=حساب SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=مبيعات AccountingJournalType3=مشتريات AccountingJournalType4=بنك +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=صادرات Export=تصدير +ExportDraftJournal=Export draft journal Modelcsv=نموذج التصدير OptionsDeactivatedForThisExportModel=تم الغاء الخيارات لنموذج التصدير هذا Selectmodelcsv=تحديد نموذج للتصدير diff --git a/htdocs/langs/ar_SA/admin.lang b/htdocs/langs/ar_SA/admin.lang index 652a819b883..9d7b2dad978 100644 --- a/htdocs/langs/ar_SA/admin.lang +++ b/htdocs/langs/ar_SA/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=اقتراح تجاري طلب المورد والأسعار Module1200Name=فرس النبي Module1200Desc=فرس النبي التكامل Module1400Name=المحاسبة -Module1400Desc=المحاسبة الإدارية (ضعف الأحزاب) +Module1400Desc=Accounting management (double entries) Module1520Name=الجيل ثيقة Module1520Desc=الجيل ثيقة الإلكتروني الشامل Module1780Name=الكلمات / فئات @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=باي بال Module50200Desc=وحدة لتقديم على صفحة الدفع عبر الإنترنت عن طريق بطاقة الائتمان مع بايبال Module50400Name=المحاسبة (متقدم) -Module50400Desc=المحاسبة الإدارية (الأحزاب مزدوجة) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=(يجب أن تكون الطابعة مرئية من الخادم، ويجب أن تكون الكؤوس تركيبها على الخادم) الطباعة مباشرة (دون فتح المستندات) باستخدام واجهة الكؤوس IPP. Module55000Name=استطلاع للرأي، أو مسح التصويت diff --git a/htdocs/langs/ar_SA/agenda.lang b/htdocs/langs/ar_SA/agenda.lang index b627fa1e334..6caff8ab90b 100644 --- a/htdocs/langs/ar_SA/agenda.lang +++ b/htdocs/langs/ar_SA/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=تم حذف %s من الفاتورة InvoicePaidInDolibarr=تغيير فاتورة%s لدفع InvoiceCanceledInDolibarr=فاتورة%s إلغاء MemberValidatedInDolibarr=عضو%s التأكد من صلاحيتها +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=عضو٪ الصورة حذفها MemberSubscriptionAddedInDolibarr=وأضاف الاشتراك لعضو٪ الصورة ShipmentValidatedInDolibarr=شحنة%s التأكد من صلاحيتها -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=شحنة٪ الصورة حذفها OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=تم توثيق %s من الطلب @@ -74,13 +75,17 @@ InterventionSentByEMail=التدخل%s إرسالها عن طريق البريد ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=تاريخ البدء DateActionEnd=تاريخ النهاية AgendaUrlOptions1=يمكنك أيضا إضافة المعايير التالية لترشيح النتائج: -AgendaUrlOptions2=تسجيل الدخول =٪ s إلى تقييد الإخراج إلى الإجراءات التي أنشأتها أو المخصصة للمستخدم%s. AgendaUrlOptions3=وجينا =٪ s إلى تقييد الإخراج إلى الإجراءات التي يملكها%s المستخدم. -AgendaUrlOptions4=logint=logint=%s لتقييد الانتاج للإجراءات المناطة للمستخدم %s +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=مشروع = PROJECT_ID لتقييد الإخراج إلى الإجراءات المرتبطة PROJECT_ID المشروع. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/ar_SA/banks.lang b/htdocs/langs/ar_SA/banks.lang index 99a7b732e8b..c056dcbdedb 100644 --- a/htdocs/langs/ar_SA/banks.lang +++ b/htdocs/langs/ar_SA/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=رقم المعاملات BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=تحقق عاد والفواتير فتح BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ar_SA/bills.lang b/htdocs/langs/ar_SA/bills.lang index ea2eed2e298..e56aff37ced 100644 --- a/htdocs/langs/ar_SA/bills.lang +++ b/htdocs/langs/ar_SA/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=فاتورة موحدة InvoiceStandardAsk=فاتورة موحدة InvoiceStandardDesc=هذا النوع من الفاتورة هي فاتورة عام. -InvoiceDeposit=إيداع فاتورة -InvoiceDepositAsk=إيداع فاتورة -InvoiceDepositDesc=هذا النوع من الفاتورة يتم فيه ايداع وقد وردت. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma الفاتورة InvoiceProFormaAsk=الفاتورة الأولية InvoiceProFormaDesc=Proforma الفاتورة هو صورة حقيقية فاتورة المحاسبة ولكن ليس له قيمة. @@ -62,7 +62,7 @@ PaymentsBack=عودة المدفوعات paymentInInvoiceCurrency=in invoices currency PaidBack=تسديدها DeletePayment=حذف الدفع -ConfirmDeletePayment=هل أنت متأكد من أنك تريد حذف هذا المبلغ؟ +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=الموردين والمدفوعات ReceivedPayments=تلقت مدفوعات @@ -115,7 +115,7 @@ BillStatus=حالة الفاتورة StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=مشروع (لا بد من التحقق من صحة) BillStatusPaid=دفع -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=وتحول إلى خصم BillStatusCanceled=المهجورة BillStatusValidated=مصادق عليه (لا بد من دفعها) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=دفعت (جزئيا) BillShortStatusDraft=مسودة BillShortStatusPaid=دفع BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=تجهيز +BillShortStatusConverted=دفع BillShortStatusCanceled=المهجورة BillShortStatusValidated=صادق BillShortStatusStarted=بدأت @@ -198,12 +198,12 @@ ShowBill=وتظهر الفاتورة ShowInvoice=وتظهر الفاتورة ShowInvoiceReplace=وتظهر استبدال الفاتورة ShowInvoiceAvoir=وتظهر المذكرة الائتمان -ShowInvoiceDeposit=وتبين أن تودع الفاتورة +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=وتظهر الدفع AlreadyPaid=دفعت بالفعل AlreadyPaidBack=دفعت بالفعل العودة -AlreadyPaidNoCreditNotesNoDeposits=دفعت بالفعل (بدون تلاحظ الائتمان والودائع) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=المهجورة RemainderToPay=تبقى بدون أجر RemainderToTake=المتبقي لاتخاذ @@ -270,10 +270,10 @@ RelativeDiscount=الخصم النسبي GlobalDiscount=خصم العالمية CreditNote=علما الائتمان CreditNotes=ويلاحظ الائتمان -Deposit=إيداع -Deposits=الودائع +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=خصم من دائن %s -DiscountFromDeposit=المدفوعات من فاتورة %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=هذا النوع من الائتمان يمكن استخدامها على الفاتورة قبل المصادقة CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=تصنيف لا يمكن إزالة الدف ExpectedToPay=من المتوقع الدفع CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=سيولي هذا الدفع -ClosePaidInvoicesAutomatically=تصنيف "مدفوع" كل مستوى، حالة أو الفواتير استبدال دفعت بالكامل. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=تصنيف "مدفوع" كل الملاحظات الائتمان تدفع بالكامل مرة أخرى. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=كل فاتورة مع عدم وجود لا تزال لدفع ستغلق تلقائيا إلى "فياض" الوضع. @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=نموذج فاتورة Crabe. نموذج الفاتورة كاملة (دعم الخيار الضريبة على القيمة المضافة ، والخصومات ، وشروط الدفع ، والشعار ، الخ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=عودة عدد مع الشكل syymm NNNN عن الفواتير القياسية و٪ syymm-NNNN لتلاحظ الائتمان حيث هو YY العام٪، مم هو الشهر وnnnn هو تسلسل مع أي انقطاع وعدم العودة إلى 0 -MarsNumRefModelDesc1=عودة عدد مع الشكل syymm NNNN عن الفواتير القياسية٪،٪ syymm-NNNN عن الفواتير استبدال،٪ syymm-NNNN لفواتير الودائع و٪ syymm-NNNN لتلاحظ الائتمان حيث هو YY العام، مم هو الشهر وnnnn هو تسلسل مع عدم وجود كسر وعدم العودة إلى 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=وهناك مشروع قانون بدءا من دولار ويوجد بالفعل syymm لا تتفق مع هذا النموذج من التسلسل. إزالة أو تغيير تسميتها لتصبح لتفعيل هذه الوحدة. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=ممثل العميل متابعة فاتورة TypeContact_facture_external_BILLING=الزبون فاتورة الاتصال diff --git a/htdocs/langs/ar_SA/bookmarks.lang b/htdocs/langs/ar_SA/bookmarks.lang index b49ab822086..5f134f35dd2 100644 --- a/htdocs/langs/ar_SA/bookmarks.lang +++ b/htdocs/langs/ar_SA/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=أضف هذه الصفحة إلى المفضلة Bookmark=احفظ Bookmarks=العناوين +ListOfBookmarks=قائمة العناوين +EditBookmarks=List/edit bookmarks NewBookmark=إشارة مرجعية جديدة ShowBookmark=وتظهر علامة OpenANewWindow=فتح نافذة جديدة diff --git a/htdocs/langs/ar_SA/boxes.lang b/htdocs/langs/ar_SA/boxes.lang index 9bac5c3be97..4414cf91ddc 100644 --- a/htdocs/langs/ar_SA/boxes.lang +++ b/htdocs/langs/ar_SA/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=المعلومات RSS BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=أوامر العملاء ForProposals=اقتراحات LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ar_SA/categories.lang b/htdocs/langs/ar_SA/categories.lang index f87883ec498..8142df23e47 100644 --- a/htdocs/langs/ar_SA/categories.lang +++ b/htdocs/langs/ar_SA/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=العلامة / الفئة Rubriques=الكلمات / فئات +RubriquesTransactions=Tags/Categories of transactions categories=علامات / فئات NoCategoryYet=أي علامة / فئة من هذا النوع تم إنشاؤها In=في diff --git a/htdocs/langs/ar_SA/commercial.lang b/htdocs/langs/ar_SA/commercial.lang index 75a92932d18..7d95ba54e83 100644 --- a/htdocs/langs/ar_SA/commercial.lang +++ b/htdocs/langs/ar_SA/commercial.lang @@ -19,6 +19,7 @@ ShowTask=وتظهر هذه المهمة ShowAction=وتظهر العمل ActionsReport=تقرير الأعمال ThirdPartiesOfSaleRepresentative=Thirdparties مع مندوب مبيعات +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=ممثل مبيعات SalesRepresentatives=مندوبي المبيعات SalesRepresentativeFollowUp=ممثل مبيعات (متابعة) diff --git a/htdocs/langs/ar_SA/companies.lang b/htdocs/langs/ar_SA/companies.lang index 36e0622e971..e4752b6a8e8 100644 --- a/htdocs/langs/ar_SA/companies.lang +++ b/htdocs/langs/ar_SA/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=فرد جديد NewCompany=الشركة الجديدة (آفاق ، والعملاء ، والموردين) NewThirdParty=طرف ثالث جديد (آفاق ، والعملاء ، والموردين) CreateDolibarrThirdPartySupplier=إنشاء طرف ثالث (المورد) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=إنشاء طرف ثالث CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=مجال التنقيب IdThirdParty=هوية الطرف الثالث @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=العملاء ThirdPartyCustomersWithIdProf12=الزبائن ٪ أو ٪ ق ق ThirdPartySuppliers=الموردين ThirdPartyType=طرف ثالث من نوع -Company/Fundation=الشركة / المؤسسة Individual=فرد ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=الشركة الأم @@ -78,10 +77,10 @@ VATIsNotUsed=ضريبة القيمة المضافة لا يستخدم CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=اقتراحات +OverAllOrders=أوامر +OverAllInvoices=فواتير +OverAllSupplierProposals=طلبات الأسعار ##### Local Taxes ##### LocalTax1IsUsed=استخدام الضرائب الثانية LocalTax1IsUsedES= يتم استخدام الطاقة المتجددة @@ -237,6 +236,12 @@ ProfId3TN=الأستاذ عيد 3 (قانون جمارك) ProfId4TN=الأستاذ عيد 4 (حظر) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=الأستاذ رقم 1 (OGRN) ProfId2RU=الأستاذ رقم 2 (INN) ProfId3RU=الأستاذ رقم 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=الخصم النسبي CustomerAbsoluteDiscountShort=مطلق الخصم CompanyHasRelativeDiscount=هذا العميل قد خصم ٪ ق ٪ ٪ CompanyHasNoRelativeDiscount=هذا العميل ليس لديها النسبية خصم افتراضي -CompanyHasAbsoluteDiscount=هذا الزبون لا يزال خصم القروض ل%s ق ٪ +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=ولا يزال هذا العميل الائتمانية ويلاحظ السابقة أو ودائع ل%s ق ٪ CompanyHasNoAbsoluteDiscount=هذا العميل ليس الخصم الائتمان المتاح CustomerAbsoluteDiscountAllUsers=خصومات المطلقة (الممنوحة من جميع المستخدمين) @@ -390,7 +395,7 @@ ListCustomersShort=قائمة العملاء ThirdPartiesArea=أطراف ثالثة، ومنطقة الاتصال LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=مجموع الأطراف الثالثة فريدة من نوعها -InActivity=Opened +InActivity=فتح ActivityCeased=مغلق ThirdPartyIsClosed=Third party is closed ProductsIntoElements=قائمة المنتجات / الخدمات إلى %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=العميل / المورد مدونة مجانية. هذ ManagingDirectors=مدير (ق) اسم (CEO، مدير، رئيس ...) MergeOriginThirdparty=تكرار طرف ثالث (طرف ثالث كنت ترغب في حذف) MergeThirdparties=دمج أطراف ثالثة -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=تم دمج Thirdparties SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/ar_SA/contracts.lang b/htdocs/langs/ar_SA/contracts.lang index f862b5aefb3..3ce8d4df182 100644 --- a/htdocs/langs/ar_SA/contracts.lang +++ b/htdocs/langs/ar_SA/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=تحتوي هذه القائمة على الخدم StandardContractsTemplate=قالب العقود القياسية ContactNameAndSignature=ل٪ الصورة والاسم والتوقيع: OnlyLinesWithTypeServiceAreUsed=خطوط الوحيدة مع نوع "الخدمة" سيتم استنساخ. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=ممثل مبيعات توقيع العقد diff --git a/htdocs/langs/ar_SA/exports.lang b/htdocs/langs/ar_SA/exports.lang index 85088720e89..45323170e75 100644 --- a/htdocs/langs/ar_SA/exports.lang +++ b/htdocs/langs/ar_SA/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY، YYYYMM، YYYYMMDD: فلاتر لسنة واحدة / شه ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=إذا كنت ترغب في تصفية على بعض القيم، قيم الإدخال فقط هنا. FilteredFields=الحقول التي تمت تصفيتها diff --git a/htdocs/langs/ar_SA/hrm.lang b/htdocs/langs/ar_SA/hrm.lang index e6197274735..3f19613ca88 100644 --- a/htdocs/langs/ar_SA/hrm.lang +++ b/htdocs/langs/ar_SA/hrm.lang @@ -9,7 +9,7 @@ ConfirmDeleteEstablishment=Are-you sure to delete this establishment? OpenEtablishment=فتح وثيقة CloseEtablishment=إنشاء وثيقة # Dictionary -DictionaryDepartment=شؤون الموظفين - الأقسام +DictionaryDepartment=شؤون الموظفين - الأقسام DictionaryFunction=شؤون الموظفين - الوظائف # Module Employees=الموظفين diff --git a/htdocs/langs/ar_SA/install.lang b/htdocs/langs/ar_SA/install.lang index 0a3bc9ff8ed..0f64b05b43a 100644 --- a/htdocs/langs/ar_SA/install.lang +++ b/htdocs/langs/ar_SA/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=استخدام معالج الإعداد DoliWamp ، حت KeepDefaultValuesDeb=يمكنك استخدام معالج الإعداد Dolibarr من أوبونتو أو حزمة ديبيان ، لذلك القيم المقترحة هنا هي الأمثل بالفعل. يجب أن تكتمل إلا كلمة السر للمالك قاعدة البيانات لإنشاء. تغيير معلمات أخرى إلا إذا كنت تعرف ما تفعله. KeepDefaultValuesMamp=استخدام معالج الإعداد DoliMamp ، حتى القيم المقترحة هنا بالفعل الأمثل. تغييرها إلا إذا كنت تعرف ما تفعله. KeepDefaultValuesProxmox=يمكنك استخدام معالج إعداد Dolibarr من الأجهزة الظاهرية Proxmox، بحيث يتم تحسين بالفعل القيم المقترحة هنا. تغييرها إلا إذا كنت تعرف ما تفعله. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ar_SA/link.lang b/htdocs/langs/ar_SA/link.lang index 6d558f11612..0b6753d1b92 100644 --- a/htdocs/langs/ar_SA/link.lang +++ b/htdocs/langs/ar_SA/link.lang @@ -2,9 +2,9 @@ LinkANewFile=ربط ملف جديد/ وثيقة LinkedFiles=الملفات والمستندات المرتبطة NoLinkFound=لا روابط مسجلة -LinkComplete= تم ربط الملف بنجاح +LinkComplete=تم ربط الملف بنجاح ErrorFileNotLinked=لا يمكن ربط الملف -LinkRemoved=تم إزالة الارتباط %s +LinkRemoved=تم إزالة الارتباط %s ErrorFailedToDeleteLink= فشل في إزالة رابط ' %s ' ErrorFailedToUpdateLink= فشل تحديث رابط %s URLToLink=URL لربط diff --git a/htdocs/langs/ar_SA/loan.lang b/htdocs/langs/ar_SA/loan.lang index 49af31e0bba..1a3b7c89876 100644 --- a/htdocs/langs/ar_SA/loan.lang +++ b/htdocs/langs/ar_SA/loan.lang @@ -44,8 +44,10 @@ GoToInterest=٪ S سوف تذهب نحو الفائدة GoToPrincipal=٪ S سوف تذهب نحو PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=التكوين للقرض وحدة LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ar_SA/mails.lang b/htdocs/langs/ar_SA/mails.lang index a95c8282d72..5ed6a2b43db 100644 --- a/htdocs/langs/ar_SA/mails.lang +++ b/htdocs/langs/ar_SA/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=خط المستندات في ملف ٪ diff --git a/htdocs/langs/ar_SA/main.lang b/htdocs/langs/ar_SA/main.lang index cfdf0efd5b5..93456670297 100644 --- a/htdocs/langs/ar_SA/main.lang +++ b/htdocs/langs/ar_SA/main.lang @@ -72,8 +72,10 @@ SeeHere=انظر هنا Apply=تطبيق BackgroundColorByDefault=لون الخلفية الافتراضية FileRenamed=The file was successfully renamed -FileUploaded=تم تحميل الملف بنجاح FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=تم تحميل الملف بنجاح +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=يتم اختيار ملف لمرفق ولكن لم تحميلها بعد. انقر على "إرفاق ملف" لهذا الغرض. NbOfEntries=ملحوظة من إدخالات GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=مجموع RE TotalLT2ES=مجموع IRPF HT=صافي من الضريبة TTC=شركة الضرائب +INCT=Inc. all taxes VAT=ضريبة المبيعات VATs=ضرائب المبيعات LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=أكتوبر MonthShort11=نوفمبر MonthShort12=ديسمبر AttachedFiles=الملفات والمستندات المرفقة -FileTransferComplete=تم تحميل الملف بنجاح DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/ar_SA/members.lang b/htdocs/langs/ar_SA/members.lang index 27163003777..da01745f84f 100644 --- a/htdocs/langs/ar_SA/members.lang +++ b/htdocs/langs/ar_SA/members.lang @@ -41,10 +41,10 @@ MemberType=عضو نوع MemberTypeId=عضو نوع معرف MemberTypeLabel=عضو نوع العلامة MembersTypes=أعضاء أنواع -MemberStatusDraft=مشروع (لا بد من التحقق من صحة) +MemberStatusDraft=مشروع (يجب التحقق من صحة) MemberStatusDraftShort=مسودة MemberStatusActive=صادق (تنتظر الاكتتاب) -MemberStatusActiveShort=صادق +MemberStatusActiveShort=التحقق من صحة MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=انتهى MemberStatusPaid=الاكتتاب حتى الآن @@ -90,8 +90,9 @@ PublicMemberList=عضو في لائحة عامة BlankSubscriptionForm=استمارة الاشتراك BlankSubscriptionFormDesc=يمكن أن توفر لك Dolibarr URL العام للسماح للزوار خارجي لطرح للاكتتاب للمؤسسة. إذا تم تمكين وحدة الدفع عبر الإنترنت، سيتم أيضا نموذج الدفع سيتم توفيرها تلقائيا. EnablePublicSubscriptionForm=تمكين الجمهور لصناعة السيارات في شكل اكتتاب +ForceMemberType=Force the member type ExportDataset_member_1=واشتراكات الأعضاء -ImportDataset_member_1=الأعضاء +ImportDataset_member_1=أعضاء LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions String=سلسلة @@ -150,6 +151,7 @@ MembersByTownDesc=هذه الشاشة تظهر لك إحصاءات عن أفرا MembersStatisticsDesc=اختيار الإحصاءات التي ترغب في قراءتها ... MenuMembersStats=إحصائيات LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=طبيعة Public=معلومات علنية NewMemberbyWeb=وأضاف عضو جديد. تنتظر الموافقة diff --git a/htdocs/langs/ar_SA/modulebuilder.lang b/htdocs/langs/ar_SA/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/ar_SA/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ar_SA/other.lang b/htdocs/langs/ar_SA/other.lang index cceb260f27d..cd0c8f45437 100644 --- a/htdocs/langs/ar_SA/other.lang +++ b/htdocs/langs/ar_SA/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=كجم WeightUnitg=ز WeightUnitmg=مغلم WeightUnitpound=جنيه +WeightUnitounce=أوقية Length=طول LengthUnitm=م LengthUnitdm=مارك ألماني diff --git a/htdocs/langs/ar_SA/paybox.lang b/htdocs/langs/ar_SA/paybox.lang index 2f6327e0adf..eb9436ae7fd 100644 --- a/htdocs/langs/ar_SA/paybox.lang +++ b/htdocs/langs/ar_SA/paybox.lang @@ -11,6 +11,7 @@ YourEMail=البريد الالكتروني لتأكيد الدفع Creditor=الدائن PaymentCode=دفع رمز PayBoxDoPayment=على الدفع +ToPay=هل لدفع YouWillBeRedirectedOnPayBox=سوف يتم نقلك على تأمين Paybox لك صفحة لإدخال معلومات بطاقة الائتمان Continue=التالي ToOfferALinkForOnlinePayment=عنوان دفع %s diff --git a/htdocs/langs/ar_SA/paypal.lang b/htdocs/langs/ar_SA/paypal.lang index 3a7a6cbe214..10c4d54ae2a 100644 --- a/htdocs/langs/ar_SA/paypal.lang +++ b/htdocs/langs/ar_SA/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=هذا هو معرف من الصفقة: %s PAYPAL_ADD_PAYMENT_URL=إضافة رابط الدفع باي بال عند إرسال مستند عبر البريد PredefinedMailContentLink=يمكنك النقر على الرابط أدناه آمن لجعل الدفع (باي بال) إذا لم تكن قد فعلت ذلك. ٪ الصورة YouAreCurrentlyInSandboxMode=أنت حاليا في وضع "رمل" -NewPaypalPaymentReceived=جديد بال تلقى الدفع -NewPaypalPaymentFailed=جديد باي بال الدفع حاول ولكنه فشل +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=البريد الإلكتروني لتحذير بعد دفع (النجاح أو لا) ReturnURLAfterPayment=العودة URL بعد دفع -ValidationOfPaypalPaymentFailed=التحقق من باي بال دفع فشل -PaypalConfirmPaymentPageWasCalledButFailed=دفع صفحة تأكيد لباي بال كان يسمى من قبل باي بال ولكن فشل تأكيد +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=فشل استدعاء API SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=فشل استدعاء API DoExpressCheckoutPayment. DetailedErrorMessage=رسالة خطأ مفصلة ShortErrorMessage=رسالة خطأ قصيرة ErrorCode=رمز الخطأ ErrorSeverityCode=خطأ خطورة مدونة +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ar_SA/products.lang b/htdocs/langs/ar_SA/products.lang index 022eb3ff929..1a6890bcead 100644 --- a/htdocs/langs/ar_SA/products.lang +++ b/htdocs/langs/ar_SA/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=المنتج أو الخدمة ProductsAndServices=المنتجات والخدمات ProductsOrServices=منتجات أو خدمات -ProductsOnSell=المنتجات للبيع أو للشراء -ProductsNotOnSell=المنتج ليس للبيع ولا للشراء +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=المنتجات للبيع والشراء -ServicesOnSell=خدمات للبيع أو للشراء -ServicesNotOnSell=الخدمات ليس للبيع +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=خدمات للبيع والشراء LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=متر مربع m3=متر مكعب liter=لتر l=L +unitP=Piece +unitSET=Set +unitS=الثاني +unitH=ساعة +unitD=يوم +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=قالب المرجع المنتج ServiceCodeModel=قالب المرجع الخدمة CurrentProductPrice=السعر الحالي @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=٪٪ الاختلاف على الصورة٪ PercentDiscountOver=٪٪ خصم أكثر من٪ الصورة +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=إنتاج ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=المنتج الفرعي MinSupplierPrice=الحد الأدنى لسعر المورد MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=التكوين سعر ديناميكي -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=المتغيرات العالمية VariableToUpdate=Variable to update GlobalVariableUpdaters=updaters متغير العالمية +GlobalVariableUpdaterType0=البيانات JSON +GlobalVariableUpdaterHelp0=يوزع البيانات JSON من URL محددة، تحدد قيمة الموقع من القيمة ذات الصلة، +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=بيانات خدمة ويب +GlobalVariableUpdaterHelp1=يوزع بيانات خدمة ويب من URL المحدد، NS يحدد مساحة الاسم، تحدد قيمة الموقع من القيمة ذات الصلة، يجب أن تحتوي على بيانات البيانات لإرسال والطريقة هي الطريقة WS الدعوة +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=تحديث الفاصل الزمني (دقائق) LastUpdated=Latest update CorrectlyUpdated=تحديثها بشكل صحيح @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ar_SA/propal.lang b/htdocs/langs/ar_SA/propal.lang index 6cf677af780..dec35bde005 100644 --- a/htdocs/langs/ar_SA/propal.lang +++ b/htdocs/langs/ar_SA/propal.lang @@ -3,7 +3,7 @@ Proposals=مقترحات تجارية Proposal=اقتراح التجارية ProposalShort=اقتراح ProposalsDraft=مقترحات مشاريع تجارية -ProposalsOpened=افتتح مقترحات تجارية +ProposalsOpened=مقترحات التجارية المفتوحة Prop=مقترحات تجارية CommercialProposal=اقتراح التجارية ProposalCard=اقتراح بطاقة @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=المبلغ في الشهر (بعد خصم الضر NbOfProposals=عدد من المقترحات والتجاري ShowPropal=وتظهر اقتراح PropalsDraft=المسودات -PropalsOpened=Opened +PropalsOpened=فتح PropalStatusDraft=مشروع (لا بد من التحقق من صحة) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=وقعت (لمشروع القانون) diff --git a/htdocs/langs/ar_SA/resource.lang b/htdocs/langs/ar_SA/resource.lang index 174543b9b62..ea416f6cbca 100644 --- a/htdocs/langs/ar_SA/resource.lang +++ b/htdocs/langs/ar_SA/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=الموارد حذف بنجاح DictionaryResourceType=نوع الموارد SelectResource=حدد الموارد + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=مصادر diff --git a/htdocs/langs/ar_SA/salaries.lang b/htdocs/langs/ar_SA/salaries.lang index 487b94c4aa2..8a066b643c6 100644 --- a/htdocs/langs/ar_SA/salaries.lang +++ b/htdocs/langs/ar_SA/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=كود المحاسبة لدفع رواتب -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=كود المحاسبة للدفع المالي +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=الراتب Salaries=الرواتب NewSalaryPayment=دفع الرواتب جديد diff --git a/htdocs/langs/ar_SA/sendings.lang b/htdocs/langs/ar_SA/sendings.lang index 48523d950b4..6878c05d0f7 100644 --- a/htdocs/langs/ar_SA/sendings.lang +++ b/htdocs/langs/ar_SA/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=ورقة الشحن ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=وثيقة نموذج بسيط DocumentModelMerou=Mérou A5 نموذج WarningNoQtyLeftToSend=تحذير ، لا تنتظر أن المنتجات المشحونة. StatsOnShipmentsOnlyValidated=الإحصاءات التي أجريت على شحنات التحقق من صحة فقط. التاريخ الذي يستخدم هو تاريخ المصادقة على شحنة (تاريخ التسليم مسوى لا يعرف دائما). @@ -51,10 +50,10 @@ ActionsOnShipping=الأحداث على شحنة LinkToTrackYourPackage=رابط لتتبع الحزمة الخاصة بك ShipmentCreationIsDoneFromOrder=لحظة، ويتم إنشاء لشحنة جديدة من أجل بطاقة. ShipmentLine=خط الشحن -ProductQtyInCustomersOrdersRunning=كمية المنتج إلى أوامر العملاء فتح -ProductQtyInSuppliersOrdersRunning=كمية المنتج إلى أوامر الموردين افتتح -ProductQtyInShipmentAlreadySent=كمية المنتج من فتح النظام العميل ارسلت بالفعل -ProductQtyInSuppliersShipmentAlreadyRecevied=كمية المنتج من فتح المورد النظام وردت بالفعل +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=لا يوجد منتج للسفينة وجدت في مستودع٪ الصورة. الأسهم الصحيح أو العودة إلى اختيار مستودع آخر. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ar_SA/stocks.lang b/htdocs/langs/ar_SA/stocks.lang index f2abd926ebc..8348a9221f8 100644 --- a/htdocs/langs/ar_SA/stocks.lang +++ b/htdocs/langs/ar_SA/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=تسمية الحركة NumberOfUnit=عدد الوحدات UnitPurchaseValue=وحدة سعر الشراء StockTooLow=الاسهم منخفضة جدا -StockLowerThanLimit=الأسهم أقل من الحد في حالة تأهب +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=القيمة PMPValue=المتوسط المرجح لسعر PMPValueShort=الواب @@ -53,7 +53,7 @@ IndependantSubProductStock=الأسهم المنتجات والأوراق الم QtyDispatched=ارسال كمية QtyDispatchedShort=أرسل الكمية QtyToDispatchShort=الكمية إلى إيفاد -OrderDispatch=ارسال الأسهم +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=حكم لالتلقائي انخفاض إدارة المخزون (النقص اليدوي من الممكن دائما، حتى إذا تم تنشيط قاعدة الانخفاض التلقائي) RuleForStockManagementIncrease=حكم لآلية الزيادة إدارة المخزون (زيادة اليدوية هي دائما ممكنة، حتى إذا تم تنشيط زيادة قاعدة تلقائية) DeStockOnBill=خفض مخزونات حقيقية على فواتير الزبائن / الائتمان التحقق من صحة الملاحظات @@ -62,16 +62,19 @@ DeStockOnShipment=انخفاض أسهم حقيقي على التحقق من صح DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=زيادة المخزون الحقيقي في فواتير الموردين / الائتمان التحقق من صحة الملاحظات ReStockOnValidateOrder=زيادة مخزونات حقيقية على استحسان أوامر الموردين -ReStockOnDispatchOrder=زيادة مخزونات دليل حقيقي على إيفاد في المستودعات ، وبعد تلقي أمر المورد +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=أمر لم يتم بعد أو لا أكثر من ذلك الوضع الذي يسمح بإرسال من المنتجات في مخازن المخزون. -StockDiffPhysicTeoric=تفسير الفرق بين المخزون المادي والنظري +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=لا توجد منتجات محددة سلفا لهذا الكائن. لذلك لا إرسال في المخزون المطلوب. DispatchVerb=إيفاد StockLimitShort=الحد الأقصى لتنبيه StockLimit=حد الأسهم للتنبيه PhysicalStock=المخزون المادي RealStock=الحقيقية للاسهم +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=الأسهم الافتراضية +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=معرف مخزن DescWareHouse=وصف المخزن LieuWareHouse=المكان مخزن @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=كمية من الناتج٪ الصورة في الأو NbOfProductAfterPeriod=كمية من الناتج٪ الصورة في الأوراق المالية بعد الفترة المختارة (>٪ ق) MassMovement=حركة جماهيرية SelectProductInAndOutWareHouse=حدد المنتج، والكمية، ومستودع مصدر ومستودع الهدف، ثم انقر فوق "٪ الصورة". حالما يتم ذلك لجميع الحركات المطلوبة، انقر على "٪ الصورة". -RecordMovement=سجل TRANSFERT +RecordMovement=Record transfer ReceivingForSameOrder=إيصالات لهذا النظام StockMovementRecorded=تحركات الأسهم سجلت RuleForStockAvailability=القواعد المتعلقة بمتطلبات الأسهم @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=تحرير +inventoryValidate=التحقق من صحة +inventoryDraft=على التوالي +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=إنشاء +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=فئة فلتر +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=إضافة +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=حذف الخط +RegulateStock=Regulate Stock +ListInventory=قائمة diff --git a/htdocs/langs/ar_SA/stripe.lang b/htdocs/langs/ar_SA/stripe.lang new file mode 100644 index 00000000000..ce47c48c5d7 --- /dev/null +++ b/htdocs/langs/ar_SA/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=فيما يلي عناوين المواقع المتاحة لعرض هذه الصفحة زبون لتسديد دفعة Dolibarr على الأجسام +PaymentForm=شكل الدفع +WelcomeOnPaymentPage=ونحن نرحب على خدمة الدفع عبر الإنترنت +ThisScreenAllowsYouToPay=تتيح لك هذه الشاشة إجراء الدفع الإلكتروني إلى ٪ s. +ThisIsInformationOnPayment=هذه هي المعلومات عن الدفع للقيام +ToComplete=لإكمال +YourEMail=البريد الالكتروني لتأكيد الدفع +STRIPE_PAYONLINE_SENDEMAIL=البريد الإلكتروني لتحذير بعد دفع (النجاح أو لا) +Creditor=الدائن +PaymentCode=دفع رمز +StripeDoPayment=على الدفع +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=التالى +ToOfferALinkForOnlinePayment=عنوان دفع %s +ToOfferALinkForOnlinePaymentOnOrder=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للأمر +ToOfferALinkForOnlinePaymentOnInvoice=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للفاتورة +ToOfferALinkForOnlinePaymentOnContractLine=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم للحصول على عقد خط +ToOfferALinkForOnlinePaymentOnFreeAmount=عنوان لتقديم المستندات ٪ الدفع الإلكتروني واجهة المستخدم لمبلغ حرة +ToOfferALinkForOnlinePaymentOnMemberSubscription=عنوان الموقع لتقديم الدفع عبر الإنترنت %s واجهة المستخدم للاشتراك عضو +YouCanAddTagOnUrl=You can also add url parameter &tag=يمكنك أيضا إضافة رابط المعلم = & علامة على أي من قيمة تلك عنوان (مطلوب فقط لدفع الحر) الخاصة بك لإضافة تعليق دفع الوسم. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=هذه الصفحة يؤكد أنه قد تم تسجيلها دفعتك. شكرا لك. +YourPaymentHasNotBeenRecorded=يمكنك دفع لم يسجل وتم إلغاء الصفقة. شكرا لك. +AccountParameter=حساب المعلمات +UsageParameter=استخدام المعلمات +InformationToFindParameters=مساعدة للعثور على معلومات حسابك %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=اسم البائع +CSSUrlForPaymentForm=عزيزي ورقة النمط المغلق للنموذج الدفع +MessageOK=رسالة على الصفحة التحقق من صحة الدفع عودة +MessageKO=رسالة في إلغاء دفع الصفحة عودة +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ar_SA/supplier_proposal.lang b/htdocs/langs/ar_SA/supplier_proposal.lang index 1f6b4fd2432..35a23e31f5a 100644 --- a/htdocs/langs/ar_SA/supplier_proposal.lang +++ b/htdocs/langs/ar_SA/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=العثور على الطلب DraftRequests=مشروع طلبات SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=طلبات السعر المفتوحة SupplierProposalArea=منطقة مقترحات المورد SupplierProposalShort=اقتراح المورد SupplierProposals=مقترحات المورد @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=حذف الطلب ValidateAsk=التحقق من صحة الطلب SupplierProposalStatusDraft=مشروع (يجب التحقق من صحة) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=التحقق من صحة (طلب مفتوح) SupplierProposalStatusClosed=مغلق SupplierProposalStatusSigned=قبلت SupplierProposalStatusNotSigned=رفض @@ -47,7 +47,7 @@ CommercialAsk=طلب السعر DefaultModelSupplierProposalCreate=إنشاء نموذج افتراضي DefaultModelSupplierProposalToBill=القالب الافتراضي عند إغلاق طلب السعر (مقبول) DefaultModelSupplierProposalClosed=القالب الافتراضي عند إغلاق طلب السعر (رفض) -ListOfSupplierProposal=قائمة الطلبات اقتراح المورد +ListOfSupplierProposals=قائمة الطلبات اقتراح المورد ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ar_SA/suppliers.lang b/htdocs/langs/ar_SA/suppliers.lang index 2aa7623ee43..beacb7d434b 100644 --- a/htdocs/langs/ar_SA/suppliers.lang +++ b/htdocs/langs/ar_SA/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=بعض المنتجات الفرعية التي لا تعرف السعر AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=أسعار المورد ReferenceSupplierIsAlreadyAssociatedWithAProduct=ويرتبط هذا المورد بالفعل مرجع مع مرجع : %s NoRecordedSuppliers=لم تسجل الموردين SupplierPayment=المورد الدفع @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=أسعار المورد diff --git a/htdocs/langs/ar_SA/trips.lang b/htdocs/langs/ar_SA/trips.lang index 9288e1cfee2..b703aba2052 100644 --- a/htdocs/langs/ar_SA/trips.lang +++ b/htdocs/langs/ar_SA/trips.lang @@ -12,7 +12,7 @@ ListOfFees=قائمة الرسوم TypeFees=Types of fees ShowTrip=عرض تقرير حساب NewTrip=تقرير حساب جديد -CompanyVisited=الشركة / المؤسسة زارت +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=كم المبلغ أو DeleteTrip=حذف تقرير حساب ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=تاريخ التحقق من الصحة DATE_CANCEL=تاريخ الإلغاء DATE_PAIEMENT=تاريخ الدفع BROUILLONNER=إعادة فتح +ExpenseReportRef=Ref. expense report ValidateAndSubmit=التحقق من صحة ويقدم للموافقة عليها ValidatedWaitingApproval=التحقق من صحة (في انتظار الموافقة) NOT_AUTHOR=أنت لست صاحب هذا التقرير حساب. إلغاء العملية. @@ -87,5 +88,5 @@ NoTripsToExportCSV=أي تقرير نفقة لتصدير لهذه الفترة. ExpenseReportPayment=دفع تقرير حساب ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=تقارير النفقات لدفع -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ar_SA/users.lang b/htdocs/langs/ar_SA/users.lang index 06ba944c695..3412e066858 100644 --- a/htdocs/langs/ar_SA/users.lang +++ b/htdocs/langs/ar_SA/users.lang @@ -66,8 +66,8 @@ InternalUser=المستخدم الداخلي ExportDataset_user_1=Dolibarr مستخدمي وممتلكاتهم DomainUser=النطاق المستخدم ق ٪ Reactivate=تنشيط -CreateInternalUserDesc=هذا النموذج يسمح لك بإنشاء مستخدم داخلية لشركتك / المؤسسة. لإنشاء مستخدم خارجي (عميل أو مورد، ...)، استخدم زر 'إنشاء Dolibarr المستخدم من بطاقة الاتصال طرف ثالث. -InternalExternalDesc=داخلي المستخدم المستخدم الذي يشكل جزءا من الشركة / المؤسسة.
مستخدم خارجي هو عميل أو مورد أو غيرها.

وفي كلتا الحالتين ، ويحدد الحقوق على أذونات Dolibarr ، كما يمكن للمستخدم خارجي له قائمة من مدير المستخدم الداخلي (انظر الصفحة الرئيسية -- إعداد -- عرض) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=منح إذن لأن الموروث من واحد من المستخدم. Inherited=موروث UserWillBeInternalUser=وسوف يكون المستخدم إنشاء مستخدم داخلية (لأنه لا يرتبط طرف ثالث خاص) diff --git a/htdocs/langs/ar_SA/website.lang b/htdocs/langs/ar_SA/website.lang index 6197580711f..2dffe244283 100644 --- a/htdocs/langs/ar_SA/website.lang +++ b/htdocs/langs/ar_SA/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=رمز WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ar_SA/withdrawals.lang b/htdocs/langs/ar_SA/withdrawals.lang index 7f8abe748d5..0ce49ef2268 100644 --- a/htdocs/langs/ar_SA/withdrawals.lang +++ b/htdocs/langs/ar_SA/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=سحب المبلغ WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=فاتورة العميل في أي طريقة الدفع "سحب" تنتظر. على 'سحب' تبويبة على فاتورة بطاقة لتقديم الطلب. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=مسؤولة المستخدم WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=أسباب الرفض RefusedInvoicing=رفض الفواتير NoInvoiceRefused=لا تهمة الرفض InvoiceRefused=رفضت فاتورة (اشحن الرفض للعملاء) +StatusDebitCredit=Status debit/credit StatusWaiting=انتظار StatusTrans=أحال StatusCredited=الفضل diff --git a/htdocs/langs/bg_BG/accountancy.lang b/htdocs/langs/bg_BG/accountancy.lang index 963e270fef1..d611bd0e6df 100644 --- a/htdocs/langs/bg_BG/accountancy.lang +++ b/htdocs/langs/bg_BG/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Сметка SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Номер на част TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Банка +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/bg_BG/admin.lang b/htdocs/langs/bg_BG/admin.lang index ec3f94ae075..e0b34499dbd 100644 --- a/htdocs/langs/bg_BG/admin.lang +++ b/htdocs/langs/bg_BG/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Богомолка Module1200Desc=Mantis интеграция Module1400Name=Счетоводство -Module1400Desc=Управление на счетоводство (двойни страни) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Модул предлага онлайн страница на плащане с кредитна карта с Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/bg_BG/agenda.lang b/htdocs/langs/bg_BG/agenda.lang index 3b5adf2c51f..56ced7bbba4 100644 --- a/htdocs/langs/bg_BG/agenda.lang +++ b/htdocs/langs/bg_BG/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Фактура %s изтрита InvoicePaidInDolibarr=Фактура %s е променена на платена InvoiceCanceledInDolibarr=Фактура %s е отказана MemberValidatedInDolibarr=Член %s е валидиран +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Член %s е изтрит MemberSubscriptionAddedInDolibarr=Абонамет за член %s е добавен ShipmentValidatedInDolibarr=Доставка %s е валидирана -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Доставка %s е изтрита OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Поръчка %s валидирани @@ -74,13 +75,17 @@ InterventionSentByEMail=Намеса %s изпратена по електрон ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Начална дата DateActionEnd=Крайна дата AgendaUrlOptions1=Можете да добавите и следните параметри, за да филтрирате изход: -AgendaUrlOptions2=login=%s за да ограничи показването до действия създадени от или определени на потребител %s. AgendaUrlOptions3=logina=%s за да ограничи показването до действия притежавани от потребител %s. -AgendaUrlOptions4=logint = %s да се ограничи производството на действията, засегнати на потребителските %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID за да ограничи показването до действия свързани с проект PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/bg_BG/banks.lang b/htdocs/langs/bg_BG/banks.lang index 3579fb1df98..dfddebc56e3 100644 --- a/htdocs/langs/bg_BG/banks.lang +++ b/htdocs/langs/bg_BG/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Върнат Чек и отворена фак BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/bg_BG/bills.lang b/htdocs/langs/bg_BG/bills.lang index 0de800722f3..3f39229ae38 100644 --- a/htdocs/langs/bg_BG/bills.lang +++ b/htdocs/langs/bg_BG/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Стандартна фактура InvoiceStandardAsk=Стандартна фактура InvoiceStandardDesc=Тази фактурата е фактура от най-общ вид. -InvoiceDeposit=Депозитна фактура -InvoiceDepositAsk=Депозитна фактура -InvoiceDepositDesc=Този вид на фактура е когато е получен депозит. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Проформа фактура InvoiceProFormaAsk=Проформа фактура InvoiceProFormaDesc=Проформа фактура е първообраз на една истинска фактура, но няма счетоводна стойност. @@ -62,7 +62,7 @@ PaymentsBack=Обратни плащания paymentInInvoiceCurrency=in invoices currency PaidBack=Платено обратно DeletePayment=Изтрий плащане -ConfirmDeletePayment=Сигурен ли сте, че искате да изтриете това плащане? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Плащания към доставчици ReceivedPayments=Получени плащания @@ -115,7 +115,7 @@ BillStatus=Статус на фактурата StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Чернова (трябва да се валидира) BillStatusPaid=Платена -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Платена (готова за окончателна фактура) BillStatusCanceled=Изоставена BillStatusValidated=Валидирана (трябва да се плати) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Платена (частично) BillShortStatusDraft=Чернова BillShortStatusPaid=Платена BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Обработена +BillShortStatusConverted=Платена BillShortStatusCanceled=Изоставена BillShortStatusValidated=Валидирана BillShortStatusStarted=Започната @@ -198,12 +198,12 @@ ShowBill=Покажи фактура ShowInvoice=Покажи фактура ShowInvoiceReplace=Покажи заменяща фактура ShowInvoiceAvoir=Покажи кредитно известие -ShowInvoiceDeposit=Покажи депозитна фактура +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Покажи плащане AlreadyPaid=Вече е платена AlreadyPaidBack=Вече е платена обратно -AlreadyPaidNoCreditNotesNoDeposits=Вече е платена (без кредитни известия и депозити) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Изоставен RemainderToPay=Неплатен остатък RemainderToTake=Остатъчна сума за взимане @@ -270,10 +270,10 @@ RelativeDiscount=Относителна отстъпка GlobalDiscount=Глобална отстъпка CreditNote=Кредитно известие CreditNotes=Кредитни известия -Deposit=Депозит -Deposits=Депозити +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Отстъпка от кредитно известие %s -DiscountFromDeposit=Плащания от депозитна фактура %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Този вид кредит може да се използва по фактура преди нейното валидиране CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Не може да се премахне п ExpectedToPay=Очаквано плащане CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Плаща от това плащане -ClosePaidInvoicesAutomatically=Класифицирай "Платени" всички стандартни, ситуирани или заменящи фактури изцяло платени. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Класифицирай "Платени" всички кредитни известия изцяло обратно платени. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Всички фактура без остатък за плащане, ще бъдат затворени автоматично със статус "Платени". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Фактурен PDF шаблон. Пълен шаблон за фактура (препоръчителен шаблон) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Върнете номер с формат %syymm-nnnn за стандартни фактури и %syymm-nnnn за кредитни известия, където уу е година, mm е месец и NNNN е последователност, без прекъсване и без 0 -MarsNumRefModelDesc1=Върнете номер с формат %syymm-nnnn за стандартни фактури, %syymm-nnnn за заменящи фактури, %syymm-nnnn за кредитни известия и %syymm-nnnn за кредитни известия, където уу е година, mm е месец и NNNN е последователност, без прекъсване и без 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Документ започващ с $syymm вече съществува и не е съвместим с този модел на последователност. Извадете го или го преименувайте за да се активира този модул. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Представител свързан с продажна фактура TypeContact_facture_external_BILLING=Контакт по продажна фактура diff --git a/htdocs/langs/bg_BG/bookmarks.lang b/htdocs/langs/bg_BG/bookmarks.lang index 81d61de7e91..102d8e6b722 100644 --- a/htdocs/langs/bg_BG/bookmarks.lang +++ b/htdocs/langs/bg_BG/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Добавяне на тази страница към отметките Bookmark=Отметка Bookmarks=Отметки +ListOfBookmarks=Списък с отметки +EditBookmarks=List/edit bookmarks NewBookmark=Нова отметка ShowBookmark=Показване на отметката OpenANewWindow=Отваряне в нов прозорец diff --git a/htdocs/langs/bg_BG/boxes.lang b/htdocs/langs/bg_BG/boxes.lang index cfce064ae57..87e3b8086d7 100644 --- a/htdocs/langs/bg_BG/boxes.lang +++ b/htdocs/langs/bg_BG/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss информация BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Клиентски поръчки ForProposals=Предложения LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/bg_BG/cashdesk.lang b/htdocs/langs/bg_BG/cashdesk.lang index d0152b6645e..df0bd291455 100644 --- a/htdocs/langs/bg_BG/cashdesk.lang +++ b/htdocs/langs/bg_BG/cashdesk.lang @@ -30,5 +30,5 @@ ShowCompany=Покажи фирмата ShowStock=Покажи склад DeleteArticle=Кликнете, за да се премахне тази статия FilterRefOrLabelOrBC=Търсене (Номер/Заглавие) -UserNeedPermissionToEditStockToUsePos=Запитвате за намаляване на стоки при създаване на фактура, така че потребителя използващ ТП трябва да е с привилегии да редактира стоки. +UserNeedPermissionToEditStockToUsePos=Запитвате за намаляване на стоки при създаване на фактура, така че потребителя използващ ТП трябва да е с привилегии да редактира стоки. DolibarrReceiptPrinter=Dolibarr принтер за квитанции diff --git a/htdocs/langs/bg_BG/categories.lang b/htdocs/langs/bg_BG/categories.lang index 777d0f64920..5ccd6ad0a34 100644 --- a/htdocs/langs/bg_BG/categories.lang +++ b/htdocs/langs/bg_BG/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Етикет/Категория Rubriques=Етикети/Категории +RubriquesTransactions=Tags/Categories of transactions categories=етикети/категории NoCategoryYet=Няма етикет/категория създаден от този тип In=В diff --git a/htdocs/langs/bg_BG/commercial.lang b/htdocs/langs/bg_BG/commercial.lang index 7b61f73e782..48090164484 100644 --- a/htdocs/langs/bg_BG/commercial.lang +++ b/htdocs/langs/bg_BG/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Покажи задача ShowAction=Покажи събитие ActionsReport=доклад от събитие ThirdPartiesOfSaleRepresentative=Контрагенти с търговски представител +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Търговски представител SalesRepresentatives=Търговски представители SalesRepresentativeFollowUp=Търговски представител (продължение) diff --git a/htdocs/langs/bg_BG/companies.lang b/htdocs/langs/bg_BG/companies.lang index 99b4ff95f32..afec41ea169 100644 --- a/htdocs/langs/bg_BG/companies.lang +++ b/htdocs/langs/bg_BG/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Ново физическо лице NewCompany=Нова фирма (потенциален, клиент, доставчик) NewThirdParty=Нов контрагент (потенциален, клиент, доставчик) CreateDolibarrThirdPartySupplier=Създаване на контрагент (доставчик) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Създаване контрагент CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Област потенциални IdThirdParty=ID на контрагент @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Клиенти ThirdPartyCustomersWithIdProf12=Клиентите с %s или %s ThirdPartySuppliers=Доставчици ThirdPartyType=Вид на контрагент -Company/Fundation=Фирма/Организация Individual=Частно лице ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Фирма майка @@ -78,10 +77,10 @@ VATIsNotUsed=ДДС не се използва CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Предложения +OverAllOrders=Поръчки +OverAllInvoices=Фактури +OverAllSupplierProposals=Запитвания за цени ##### Local Taxes ##### LocalTax1IsUsed=Използване на втора такса LocalTax1IsUsedES= RE се използва @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Относителна отстъпка CustomerAbsoluteDiscountShort=Абсолютна отстъпка CompanyHasRelativeDiscount=Този клиент има по подразбиране отстъпка %s%% CompanyHasNoRelativeDiscount=Този клиент няма относителна отстъпка по подразбиране -CompanyHasAbsoluteDiscount=Този клиент все още има кредити за отстъпка или депозити за %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Този клиент все още има кредити за %s %s CompanyHasNoAbsoluteDiscount=Този клиент не разполага с наличен кредит за отстъпка CustomerAbsoluteDiscountAllUsers=Абсолютни отстъпки (предоставена от всички потребители) @@ -390,7 +395,7 @@ ListCustomersShort=Списък на клиенти ThirdPartiesArea=Контрагенти и контакти LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Общо уникални контрагенти -InActivity=Отворен +InActivity=Отворено ActivityCeased=Затворен ThirdPartyIsClosed=Third party is closed ProductsIntoElements=Списък на продуктите/услугите в %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Кодът е безплатен. Този код мож ManagingDirectors=Име на управител(и) (гл. изп. директор, директор, президент...) MergeOriginThirdparty=Дублиращ контрагент (контрагентът, който искате да изтриете) MergeThirdparties=Сливане на контрагенти -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Контрагентите бяха обединени SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/bg_BG/contracts.lang b/htdocs/langs/bg_BG/contracts.lang index b58bc408a22..005607e9dc6 100644 --- a/htdocs/langs/bg_BG/contracts.lang +++ b/htdocs/langs/bg_BG/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Стандартен шаблон за договори ContactNameAndSignature=За %s, име и подпис: OnlyLinesWithTypeServiceAreUsed=Само линии с тип "Услуга" ще бъдат клонирани. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Търговски представител подписване на договора diff --git a/htdocs/langs/bg_BG/exports.lang b/htdocs/langs/bg_BG/exports.lang index 453d0f8b84b..8ced9342b21 100644 --- a/htdocs/langs/bg_BG/exports.lang +++ b/htdocs/langs/bg_BG/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Ако желаете на филтрирате по някои стойности, просто въведете стойностите тук. FilteredFields=Филтрирани полета diff --git a/htdocs/langs/bg_BG/install.lang b/htdocs/langs/bg_BG/install.lang index 23200112659..629bf7f4657 100644 --- a/htdocs/langs/bg_BG/install.lang +++ b/htdocs/langs/bg_BG/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Вие използвате помощника за нас KeepDefaultValuesDeb=Вие използвате помощника за настройка на Dolibarr от пакет за Linux (Ubuntu, Debian, Fedora ...), така че стойностите, предложени тук вече са оптимизирани. Само създаването на парола на собственика на базата данни трябва да бъде завършена. Променяйте други параметри, само ако знаете какво правите. KeepDefaultValuesMamp=Вие използвате помощника за настройка на Dolibarr от DoliMamp, така че стойностите, предложени тук вече са оптимизирани. Променете ги само ако знаете какво правите. KeepDefaultValuesProxmox=Вие използвате помощника за настройка на Dolibarr от Proxmox виртуална машина, така че стойностите, предложени тук вече са оптимизирани. Променете ги само ако знаете какво правите. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/bg_BG/loan.lang b/htdocs/langs/bg_BG/loan.lang index 3f9bd48099b..6e01b77ac6f 100644 --- a/htdocs/langs/bg_BG/loan.lang +++ b/htdocs/langs/bg_BG/loan.lang @@ -29,7 +29,7 @@ ShowMeCalculationsAndAmortization=Покажате ми изчисленията MortgagePaymentInformation=Информация за Плащане на Ипотека DownPayment=Вноска DownPaymentDesc=The down payment = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05) -InterestRateDesc=Лихвената тарифа = Годишният лихвен процент разделен на 100 +InterestRateDesc=Лихвената тарифа = Годишният лихвен процент разделен на 100 MonthlyFactorDesc=The monthly factor = The result of the following formula MonthlyInterestRateDesc=Месечната лихвена тарифа = Годишната лихвена тарифа разделена на 12 (за 12-те месеца в година) MonthTermDesc=The month term of the loan in months = The number of years you've taken the loan out for times 12 @@ -44,8 +44,10 @@ GoToInterest=%s ще върви към ЛИХВАТА GoToPrincipal=%s ще върви към ГЛАВНИЦАТА YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Конфигурация на модула заем LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/bg_BG/mails.lang b/htdocs/langs/bg_BG/mails.lang index fb9e9a37f31..3f174d92ed0 100644 --- a/htdocs/langs/bg_BG/mails.lang +++ b/htdocs/langs/bg_BG/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s във файла diff --git a/htdocs/langs/bg_BG/main.lang b/htdocs/langs/bg_BG/main.lang index fa6c4510953..936912cb884 100644 --- a/htdocs/langs/bg_BG/main.lang +++ b/htdocs/langs/bg_BG/main.lang @@ -72,8 +72,10 @@ SeeHere=Вижте тук Apply=Приложи BackgroundColorByDefault=Стандартен цвят на фона FileRenamed=The file was successfully renamed -FileUploaded=Файлът е качен успешно FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Файлът е качен успешно +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Файлът е избран за прикачване, но все още не е качен. Кликнете върху "Прикачи файл". NbOfEntries=Брой записи GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Общо RE TotalLT2ES=Общо IRPF HT=Без данък TTC=С данък +INCT=Inc. all taxes VAT=Данък продажби VATs=Данъци продажби LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Окт MonthShort11=Ное MonthShort12=Дек AttachedFiles=Прикачени файлове и документи -FileTransferComplete=Файлът е качен успешно DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/bg_BG/members.lang b/htdocs/langs/bg_BG/members.lang index a9f375b0ea7..46a7e71ea22 100644 --- a/htdocs/langs/bg_BG/members.lang +++ b/htdocs/langs/bg_BG/members.lang @@ -41,10 +41,10 @@ MemberType=Тип член MemberTypeId=ID на тип член MemberTypeLabel=Етикет на тип член MembersTypes=Типове членове -MemberStatusDraft=Кандидат (трябва да бъде приет) -MemberStatusDraftShort=Кандидат +MemberStatusDraft=Чернова (нуждае се да бъде валидирана) +MemberStatusDraftShort=Чернова MemberStatusActive=Приет (изчаква се плащане на чл. внос) -MemberStatusActiveShort=Приет +MemberStatusActiveShort=Валидирано MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Неплатен чл. внос MemberStatusPaid=Платен чл. внос @@ -61,7 +61,7 @@ NewSubscription=Нов членски внос NewSubscriptionDesc=Тази форма ви позволява да записвате абонамента си като нов член на организацията. Ако искате да подновите абонамента си (ако вече сте член), моля свържете се с ръководството на организацията по имейл %s. Subscription=Членски внос Subscriptions=Членски внос -SubscriptionLate=Със закъснение +SubscriptionLate=Закъснели SubscriptionNotReceived=Никога не е плащан членски внос ListOfSubscriptions=Списък на членския внос SendCardByMail=Изпращане на карта по имейл @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Не са зададени типове членове. NewMemberType=Нов тип член WelcomeEMail=E-mail за приветствие SubscriptionRequired=Изисква се членски внос -DeleteType=Изтриване +DeleteType=Изтрий VoteAllowed=Гласуването е позволено Physical=Реален Moral=Морален @@ -90,6 +90,7 @@ PublicMemberList=Публичен списък с членове BlankSubscriptionForm=Публична автоматична форма за абонамент BlankSubscriptionFormDesc=Dolibarr може да ви осигури публичен URL адрес, за да се даде възможност за външни посетители, за да поиска да се абонирате за фондацията. Ако е включен модул за онлайн плащане, плащане форма също ще бъдат автоматично. EnablePublicSubscriptionForm=Разрешаване на публичната автоматична форма за абонамент +ForceMemberType=Force the member type ExportDataset_member_1=Членове и членски внос ImportDataset_member_1=Членове LastMembersModified=Latest %s modified members @@ -150,7 +151,8 @@ MembersByTownDesc=Този екран показва статистически MembersStatisticsDesc=Изберете статистически данни, които искате да прочетете ... MenuMembersStats=Статистика LastMemberDate=Latest member date -Nature=Естество +LatestSubscriptionDate=Latest subscription date +Nature=Същност Public=Информацията е публичнна NewMemberbyWeb=Новия член е добавен. Очаква се одобрение NewMemberForm=Форма за нов член diff --git a/htdocs/langs/bg_BG/modulebuilder.lang b/htdocs/langs/bg_BG/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/bg_BG/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/bg_BG/other.lang b/htdocs/langs/bg_BG/other.lang index 47a6d21ead8..48253542cba 100644 --- a/htdocs/langs/bg_BG/other.lang +++ b/htdocs/langs/bg_BG/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=кг WeightUnitg=гр WeightUnitmg=мг WeightUnitpound=паунд +WeightUnitounce=унция Length=Дължина LengthUnitm=м LengthUnitdm=дм diff --git a/htdocs/langs/bg_BG/paybox.lang b/htdocs/langs/bg_BG/paybox.lang index ca63366ec09..2d69a816bef 100644 --- a/htdocs/langs/bg_BG/paybox.lang +++ b/htdocs/langs/bg_BG/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Имейл за да получите потвърждение на п Creditor=Кредитор PaymentCode=Плащане код PayBoxDoPayment=Отидете на плащане +ToPay=Направете плащане YouWillBeRedirectedOnPayBox=Вие ще бъдете пренасочени на защитена Paybox страница за въвеждане на информация за кредитни карти Continue=До ToOfferALinkForOnlinePayment=URL за %s плащане diff --git a/htdocs/langs/bg_BG/paypal.lang b/htdocs/langs/bg_BG/paypal.lang index e44883e2f19..b39457ca696 100644 --- a/htdocs/langs/bg_BG/paypal.lang +++ b/htdocs/langs/bg_BG/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Това е номер на сделката: %s PAYPAL_ADD_PAYMENT_URL=Добавяне на URL адреса на Paypal плащане, когато ви изпрати документа по пощата PredefinedMailContentLink=Можете да кликнете върху сигурна връзка по-долу, за да направите плащане чрез PayPal \n\n %s \n\n YouAreCurrentlyInSandboxMode=В момента сте в режим "пясък" -NewPaypalPaymentReceived=Ново Paypal заплащане е получено -NewPaypalPaymentFailed=Ново Paypal заплащане беше опитано, но е неуспешно +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=Имейл за предупреждаване след заплащане (успешно или не) ReturnURLAfterPayment=Връщане на URL след заплащане -ValidationOfPaypalPaymentFailed=Валидацията на Paypal заплащане е неуспешна -PaypalConfirmPaymentPageWasCalledButFailed=Страницата за потвърждаване на Paypal е била заявена от Paypal, но потвърждаването е неуспешно +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Подробно съобщение за грешка ShortErrorMessage=Short Error Message ErrorCode=Код грешка ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bg_BG/products.lang b/htdocs/langs/bg_BG/products.lang index c9f3863330b..072f4e89f93 100644 --- a/htdocs/langs/bg_BG/products.lang +++ b/htdocs/langs/bg_BG/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Продукт или Услуга ProductsAndServices=Продукти и Услуги ProductsOrServices=Продукти или Услуги -ProductsOnSell=Продукт за продажба или покупка -ProductsNotOnSell=Продукт нито за продажба нито за покупка +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Продукти за продажба или покупка -ServicesOnSell=Услуги за продажба или покупка -ServicesNotOnSell=Услуги не за продажба +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Услуги за продажба или покупка LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=м² m3=м³ liter=литър l=Л +unitP=Piece +unitSET=Set +unitS=Секунда +unitH=Час +unitD=Ден +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Продуктов реф. шаблон ServiceCodeModel=Реф. шаблон на услуга CurrentProductPrice=Текуща цена @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% вариация около %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Произвеждане ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Под-продукт MinSupplierPrice=Минимална цена на доставчика MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Конфигурация на динамична цена -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Глобални променливи VariableToUpdate=Variable to update GlobalVariableUpdaters=Обновители на глобални променливи +GlobalVariableUpdaterType0=JSON информация +GlobalVariableUpdaterHelp0=Обработва JSON информация от URL, СТОЙНОСТ определя мястото на съответната стойност, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService информация +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Обновяване на интервал (минути) LastUpdated=Latest update CorrectlyUpdated=Правилно обновени @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/bg_BG/propal.lang b/htdocs/langs/bg_BG/propal.lang index c3bdab93fab..b69167cc24d 100644 --- a/htdocs/langs/bg_BG/propal.lang +++ b/htdocs/langs/bg_BG/propal.lang @@ -3,7 +3,7 @@ Proposals=Търговски предложения Proposal=Търговско предложение ProposalShort=Предложение ProposalsDraft=Проектът на търговски предложения -ProposalsOpened=Отворените търговски предложения +ProposalsOpened=Отваряне на търговски предложения Prop=Търговски предложения CommercialProposal=Търговско предложение ProposalCard=Предложение карта @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Сума от месец (нетно от данъц NbOfProposals=Брой на търговски предложения ShowPropal=Покажи предложение PropalsDraft=Чернови -PropalsOpened=Отворен +PropalsOpened=Отворено PropalStatusDraft=Проект (трябва да бъдат валидирани) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Подписано (нужди фактуриране) diff --git a/htdocs/langs/bg_BG/resource.lang b/htdocs/langs/bg_BG/resource.lang index a1fff296c33..6e187b8709a 100644 --- a/htdocs/langs/bg_BG/resource.lang +++ b/htdocs/langs/bg_BG/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Ресурсът е успешно изтрит DictionaryResourceType=Тип на ресурси SelectResource=Избиране на ресурс + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Ресурси diff --git a/htdocs/langs/bg_BG/salaries.lang b/htdocs/langs/bg_BG/salaries.lang index 7c8c02543ac..8685a8aed71 100644 --- a/htdocs/langs/bg_BG/salaries.lang +++ b/htdocs/langs/bg_BG/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Счетоводен код за заплащания на заплати -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Счетоводен код за финансова такса +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Заплата Salaries=Заплати NewSalaryPayment=Ново заплащане на заплата diff --git a/htdocs/langs/bg_BG/sendings.lang b/htdocs/langs/bg_BG/sendings.lang index 9933582beec..28a5c73ab0c 100644 --- a/htdocs/langs/bg_BG/sendings.lang +++ b/htdocs/langs/bg_BG/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Лист на изпращане ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Обикновено документ модел DocumentModelMerou=Merou A5 модел WarningNoQtyLeftToSend=Внимание, няма продукти, които чакат да бъдат изпратени. StatsOnShipmentsOnlyValidated=Статистики водени само на валидирани пратки. Използваната дата е датата на валидация на пратката (планираната дата на доставка не се знае винаги) @@ -51,10 +50,10 @@ ActionsOnShipping=Събития на пратка LinkToTrackYourPackage=Линк за проследяване на вашия пакет ShipmentCreationIsDoneFromOrder=За момента се извършва от картата с цел създаване на нова пратка. ShipmentLine=Линия на пратка -ProductQtyInCustomersOrdersRunning=Количество на продукт в отворени клиентски поръчки -ProductQtyInSuppliersOrdersRunning=Количество на продукт в отворени поръчки към доставчик -ProductQtyInShipmentAlreadySent=Количество на продукт от отворени клиентски поръчки, които вече са изпратени -ProductQtyInSuppliersShipmentAlreadyRecevied=Количество на продукт от отворени поръчки към доставчик, които вече са получени +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Няма намерен продукт за изпращане в склад %s. Поправете стоковата и се върнете обратно, за да изберете друг склад. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/bg_BG/stocks.lang b/htdocs/langs/bg_BG/stocks.lang index 82c0e9ac974..bdd22080a3d 100644 --- a/htdocs/langs/bg_BG/stocks.lang +++ b/htdocs/langs/bg_BG/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Етикет на движението NumberOfUnit=Брой единици UnitPurchaseValue=Единична покупна цена StockTooLow=Наличността е твърде малка -StockLowerThanLimit=Наличност по малка от границата за предупреждение +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Стойност PMPValue=Средна цена PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Брой изпратени QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Намаляване реалните запаси на клиентите фактури / кредитни известия за валидиране @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Увеличаване на реалните запаси на доставчици фактури / кредитни известия за валидиране ReStockOnValidateOrder=Увеличаване на реалните запаси на доставчиците поръчки апробиране -ReStockOnDispatchOrder=Увеличаване на реалните запаси на ръководство за експедиция в складове, след доставчика за получаване на +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Поръчка все още не е или не повече статут, който позволява изпращането на продукти на склад складове. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Няма предварително определени продукти за този обект. Така че не се изисква експедиция в състав. DispatchVerb=Изпращане StockLimitShort=Количество за предупреждение StockLimit=Минимално количество за предупреждение PhysicalStock=Факт. наличност RealStock=Реална наличност +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Вирт. наличност +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id на склад DescWareHouse=Описание на склад LieuWareHouse=Локализация на склад @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Редактиране +inventoryValidate=Валидирано +inventoryDraft=Работи +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Филтър по категория +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Добави +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Изтриване на линия +RegulateStock=Regulate Stock +ListInventory=Списък diff --git a/htdocs/langs/bg_BG/stripe.lang b/htdocs/langs/bg_BG/stripe.lang new file mode 100644 index 00000000000..53ce9946863 --- /dev/null +++ b/htdocs/langs/bg_BG/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Следните интернет адреси са на разположение, за да предложи на клиента да направи плащане по Dolibarr обекти +PaymentForm=Формуляра за плащане +WelcomeOnPaymentPage=Добре дошли на нашия онлайн платежни услуги +ThisScreenAllowsYouToPay=Този екран ви позволи да направите онлайн плащане на %s. +ThisIsInformationOnPayment=Това е информация за плащане, за да се направи +ToComplete=За да завършите +YourEMail=Имейл за да получите потвърждение на плащането +STRIPE_PAYONLINE_SENDEMAIL=Имейл за предупреждаване след заплащане (успешно или не) +Creditor=Кредитор +PaymentCode=Плащане код +StripeDoPayment=Отидете на плащане +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Следващ +ToOfferALinkForOnlinePayment=URL за %s плащане +ToOfferALinkForOnlinePaymentOnOrder=URL адрес, за да предложи на потребителя %s онлайн интерфейс плащане за поръчка на клиента +ToOfferALinkForOnlinePaymentOnInvoice=URL да предложи %s онлайн интерфейс ползвател на платежни за клиента фактура +ToOfferALinkForOnlinePaymentOnContractLine=URL да предложи %s онлайн интерфейс ползвател на платежни за договор линия +ToOfferALinkForOnlinePaymentOnFreeAmount=URL да предложи %s онлайн интерфейс ползвател на платежни за безплатен сума +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL да предложи %s онлайн интерфейс ползвател на платежни за член абонамент +YouCanAddTagOnUrl=Можете също да добавите URL параметър и етикет = стойност на която и да е от тези URL (задължително само за безплатно плащане), за да добавите свой ​​собствен етикет за коментар на плащане. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Тази страница потвърждава, че плащането е било записано. Благодаря. +YourPaymentHasNotBeenRecorded=Плащането не е записана и сделката е била анулирана. Благодаря. +AccountParameter=Отчитат параметри +UsageParameter=Употреба параметри +InformationToFindParameters=Помощ ", за да намерите информация за %s сметка +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Име на продавача +CSSUrlForPaymentForm=CSS URL стил лист за плащане форма +MessageOK=Съобщение на валидирана страница плащане връщане +MessageKO=Съобщение за анулиране страница плащане връщане +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bg_BG/supplier_proposal.lang b/htdocs/langs/bg_BG/supplier_proposal.lang index 2ab88745e37..cf751a310bd 100644 --- a/htdocs/langs/bg_BG/supplier_proposal.lang +++ b/htdocs/langs/bg_BG/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Намиране на запитване DraftRequests=Чернови на запитвания SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Отваряне на запитване за цена SupplierProposalArea=Зона предложения от доставчици SupplierProposalShort=Предложение от доставчик SupplierProposals=Предложения доставчици @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Изтриване на запитване ValidateAsk=Валидиране на запитване SupplierProposalStatusDraft=Чернова (нуждае се да бъде валидирана) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Валидирано (запитването е отворено) SupplierProposalStatusClosed=Затворено SupplierProposalStatusSigned=Прието SupplierProposalStatusNotSigned=Отказано @@ -47,7 +47,7 @@ CommercialAsk=Запитване за цена DefaultModelSupplierProposalCreate=Създаване на модел по подразбиране DefaultModelSupplierProposalToBill=Шаблон по подразбиране, когато се затваря запитване за цена (прието) DefaultModelSupplierProposalClosed=Шаблон по подразбиране, когато се затваря запитване за цена (отказано) -ListOfSupplierProposal=Списък на запитвания за цени към доставчици +ListOfSupplierProposals=Списък на запитвания за цени към доставчици ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/bg_BG/suppliers.lang b/htdocs/langs/bg_BG/suppliers.lang index a174831024d..52a2cfe00c8 100644 --- a/htdocs/langs/bg_BG/suppliers.lang +++ b/htdocs/langs/bg_BG/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Някои под-продукти нямата определена цена AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Доставни цени ReferenceSupplierIsAlreadyAssociatedWithAProduct=Този референтен доставчик вече е свързана с референтното: %s NoRecordedSuppliers=Не регистриран доставчик SupplierPayment=Доставчика на платежни услуги @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Доставни цени diff --git a/htdocs/langs/bg_BG/trips.lang b/htdocs/langs/bg_BG/trips.lang index 0a4af4cf2ff..5cfaccff8c2 100644 --- a/htdocs/langs/bg_BG/trips.lang +++ b/htdocs/langs/bg_BG/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Списък на такси TypeFees=Types of fees ShowTrip=Показване на доклад за разходи NewTrip=Нов доклад за разходи -CompanyVisited=Фирмата/организацията е посетена +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Сума или км DeleteTrip=Изтриване на доклад за разходи ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Дата на валидиране DATE_CANCEL=Дата на отказване DATE_PAIEMENT=Дата на плащане BROUILLONNER=Отваряне отново +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Валидиране и изпращане за одобрение ValidatedWaitingApproval=Валидиран (очаква одобрение) NOT_AUTHOR=Не сте автор на този доклад за разходи. Операцията е отказана. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Няма доклад за разходи за експорт ExpenseReportPayment=Плащане на доклад за разходи ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Доклади за разходи за плащане -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/bg_BG/users.lang b/htdocs/langs/bg_BG/users.lang index e6bbdcf4f7b..78ae3272326 100644 --- a/htdocs/langs/bg_BG/users.lang +++ b/htdocs/langs/bg_BG/users.lang @@ -66,8 +66,8 @@ InternalUser=Вътрешен потребител ExportDataset_user_1=Потребители на системата и свойства DomainUser=Домейн потребител %s Reactivate=Ре-активирайте -CreateInternalUserDesc=Тази форма позволява да създадете потребител вътрешен за фирмата/организацията. За създаване на външен потребител (клиент, доставчик, ...), използвайте бутон 'Създай потребител' от контактната карта на контрагента. -InternalExternalDesc=Вътрешен потребител е потребител, който е част от вашата фирма/организация.
Външен потребител е клиент, доставчик или друг.

И в двата случая с разрешения се определят правата в системата. Също така външнте потребители могат да имат друг изглед на менюто (вижте Начало - Настройка - Екран) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Предоставени права поради наследяването им от права за група потребители. Inherited=Наследено UserWillBeInternalUser=Създаденият потребителят ще бъде вътрешен потребител (тъй като не е свързан с определен контрагент) diff --git a/htdocs/langs/bg_BG/website.lang b/htdocs/langs/bg_BG/website.lang index 6197580711f..12f66a3cee3 100644 --- a/htdocs/langs/bg_BG/website.lang +++ b/htdocs/langs/bg_BG/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Код WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/bg_BG/withdrawals.lang b/htdocs/langs/bg_BG/withdrawals.lang index d20edf9ac13..2ac1407d6e6 100644 --- a/htdocs/langs/bg_BG/withdrawals.lang +++ b/htdocs/langs/bg_BG/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Сума за оттегляне WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Нито един клиент фактура в режим на плащане "се оттегли" чака. Отидете на раздела "Теглене" във фактурата карта, за да отправят искане. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Отговорност на потребителя WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Причина за отхвърляне RefusedInvoicing=Фактуриране отхвърлянето NoInvoiceRefused=Не зареждайте отхвърляне InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Чакане StatusTrans=Предавани StatusCredited=Кредитира diff --git a/htdocs/langs/bn_BD/accountancy.lang b/htdocs/langs/bn_BD/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/bn_BD/accountancy.lang +++ b/htdocs/langs/bn_BD/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/bn_BD/admin.lang b/htdocs/langs/bn_BD/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/bn_BD/admin.lang +++ b/htdocs/langs/bn_BD/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/bn_BD/agenda.lang b/htdocs/langs/bn_BD/agenda.lang index 617b330e34d..58d94a3672b 100644 --- a/htdocs/langs/bn_BD/agenda.lang +++ b/htdocs/langs/bn_BD/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/bn_BD/banks.lang b/htdocs/langs/bn_BD/banks.lang index f0c41d5d5bf..191d30e1585 100644 --- a/htdocs/langs/bn_BD/banks.lang +++ b/htdocs/langs/bn_BD/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/bn_BD/bookmarks.lang b/htdocs/langs/bn_BD/bookmarks.lang index e529130e1bc..cac3dd66bc1 100644 --- a/htdocs/langs/bn_BD/bookmarks.lang +++ b/htdocs/langs/bn_BD/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Add this page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window diff --git a/htdocs/langs/bn_BD/boxes.lang b/htdocs/langs/bn_BD/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/bn_BD/boxes.lang +++ b/htdocs/langs/bn_BD/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/bn_BD/categories.lang b/htdocs/langs/bn_BD/categories.lang index 1615697ed9d..721f6779124 100644 --- a/htdocs/langs/bn_BD/categories.lang +++ b/htdocs/langs/bn_BD/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In diff --git a/htdocs/langs/bn_BD/commercial.lang b/htdocs/langs/bn_BD/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/bn_BD/commercial.lang +++ b/htdocs/langs/bn_BD/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/bn_BD/companies.lang b/htdocs/langs/bn_BD/companies.lang index 1b7efa3c14e..1fa7850c7ed 100644 --- a/htdocs/langs/bn_BD/companies.lang +++ b/htdocs/langs/bn_BD/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/bn_BD/contracts.lang b/htdocs/langs/bn_BD/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/bn_BD/contracts.lang +++ b/htdocs/langs/bn_BD/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/bn_BD/exports.lang b/htdocs/langs/bn_BD/exports.lang index 8bc4a40a682..148f40b56f0 100644 --- a/htdocs/langs/bn_BD/exports.lang +++ b/htdocs/langs/bn_BD/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/bn_BD/holiday.lang b/htdocs/langs/bn_BD/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/bn_BD/holiday.lang +++ b/htdocs/langs/bn_BD/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/bn_BD/install.lang b/htdocs/langs/bn_BD/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/bn_BD/install.lang +++ b/htdocs/langs/bn_BD/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/bn_BD/link.lang b/htdocs/langs/bn_BD/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/bn_BD/link.lang +++ b/htdocs/langs/bn_BD/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/bn_BD/loan.lang b/htdocs/langs/bn_BD/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/bn_BD/loan.lang +++ b/htdocs/langs/bn_BD/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/bn_BD/mails.lang b/htdocs/langs/bn_BD/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/bn_BD/mails.lang +++ b/htdocs/langs/bn_BD/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/bn_BD/main.lang b/htdocs/langs/bn_BD/main.lang index d7dde34acbb..31a9ef8f2af 100644 --- a/htdocs/langs/bn_BD/main.lang +++ b/htdocs/langs/bn_BD/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -439,14 +442,14 @@ Reportings=Reporting Draft=Draft Drafts=Drafts Validated=Validated -Opened=Open +Opened=Opened New=New Discount=Discount Unknown=Unknown General=General Size=Size Received=Received -Paid=Paid +Paid=Processed Topic=Subject ByCompanies=By third parties ByUsers=By users @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/bn_BD/members.lang b/htdocs/langs/bn_BD/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/bn_BD/members.lang +++ b/htdocs/langs/bn_BD/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/bn_BD/modulebuilder.lang b/htdocs/langs/bn_BD/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/bn_BD/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/bn_BD/other.lang b/htdocs/langs/bn_BD/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/bn_BD/other.lang +++ b/htdocs/langs/bn_BD/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/bn_BD/paybox.lang b/htdocs/langs/bn_BD/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/bn_BD/paybox.lang +++ b/htdocs/langs/bn_BD/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/bn_BD/paypal.lang b/htdocs/langs/bn_BD/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/bn_BD/paypal.lang +++ b/htdocs/langs/bn_BD/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bn_BD/products.lang b/htdocs/langs/bn_BD/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/bn_BD/products.lang +++ b/htdocs/langs/bn_BD/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/bn_BD/propal.lang b/htdocs/langs/bn_BD/propal.lang index a14d25ce779..e1df85f8775 100644 --- a/htdocs/langs/bn_BD/propal.lang +++ b/htdocs/langs/bn_BD/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card diff --git a/htdocs/langs/bn_BD/resource.lang b/htdocs/langs/bn_BD/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/bn_BD/resource.lang +++ b/htdocs/langs/bn_BD/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/bn_BD/salaries.lang b/htdocs/langs/bn_BD/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/bn_BD/salaries.lang +++ b/htdocs/langs/bn_BD/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/bn_BD/sendings.lang b/htdocs/langs/bn_BD/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/bn_BD/sendings.lang +++ b/htdocs/langs/bn_BD/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/bn_BD/stocks.lang b/htdocs/langs/bn_BD/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/bn_BD/stocks.lang +++ b/htdocs/langs/bn_BD/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/bn_BD/stripe.lang b/htdocs/langs/bn_BD/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/bn_BD/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bn_BD/supplier_proposal.lang b/htdocs/langs/bn_BD/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/bn_BD/supplier_proposal.lang +++ b/htdocs/langs/bn_BD/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/bn_BD/suppliers.lang b/htdocs/langs/bn_BD/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/bn_BD/suppliers.lang +++ b/htdocs/langs/bn_BD/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/bn_BD/trips.lang b/htdocs/langs/bn_BD/trips.lang index 844111f2c87..a63bb66c164 100644 --- a/htdocs/langs/bn_BD/trips.lang +++ b/htdocs/langs/bn_BD/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/bn_BD/users.lang b/htdocs/langs/bn_BD/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/bn_BD/users.lang +++ b/htdocs/langs/bn_BD/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/bn_BD/website.lang b/htdocs/langs/bn_BD/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/bn_BD/website.lang +++ b/htdocs/langs/bn_BD/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/bn_BD/withdrawals.lang b/htdocs/langs/bn_BD/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/bn_BD/withdrawals.lang +++ b/htdocs/langs/bn_BD/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/bs_BA/accountancy.lang b/htdocs/langs/bs_BA/accountancy.lang index 1fe2d5d28c5..530cd0e073b 100644 --- a/htdocs/langs/bs_BA/accountancy.lang +++ b/htdocs/langs/bs_BA/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Dodaj računovodstveni račun AccountAccounting=Računovodstveni račun AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Predloženi računovodstveni račun @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modifikacija transakcije +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -96,8 +97,8 @@ Ventilate=Bind LineId=Id line Processing=Processing EndProcessing=Process terminated. -SelectedLines=Selected lines -Lineofinvoice=Line of invoice +SelectedLines=Odabrani redovi +Lineofinvoice=Red fakture LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account @@ -116,11 +117,11 @@ ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account -ACCOUNTING_SELL_JOURNAL=Sell journal -ACCOUNTING_PURCHASE_JOURNAL=Purchase journal -ACCOUNTING_MISCELLANEOUS_JOURNAL=Miscellaneous journal -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal -ACCOUNTING_SOCIAL_JOURNAL=Social journal +ACCOUNTING_SELL_JOURNAL=Dnevnik prodaje +ACCOUNTING_PURCHASE_JOURNAL=Dnevnik nabavki +ACCOUNTING_MISCELLANEOUS_JOURNAL=Dnevnik raznih stavki +ACCOUNTING_EXPENSEREPORT_JOURNAL=Dnevnik troškova +ACCOUNTING_SOCIAL_JOURNAL=Dnevnik doprinosa ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Izvozi Export=Izvoz +ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su onemogućene Selectmodelcsv=Odaberi model izvoza diff --git a/htdocs/langs/bs_BA/admin.lang b/htdocs/langs/bs_BA/admin.lang index e116e82843b..1c4673e173f 100644 --- a/htdocs/langs/bs_BA/admin.lang +++ b/htdocs/langs/bs_BA/admin.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - admin -Foundation=Fondacija +Foundation=Fondacijae Version=Verzija VersionProgram=Verzija programa VersionLastInstall=Prvobitno instalirana verzija @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Računovodstvo -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/bs_BA/agenda.lang b/htdocs/langs/bs_BA/agenda.lang index ddbc58fea32..47b44b831a9 100644 --- a/htdocs/langs/bs_BA/agenda.lang +++ b/htdocs/langs/bs_BA/agenda.lang @@ -6,9 +6,9 @@ TMenuAgenda=Agenda Agendas=Agende LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by -ActionsOwnedByShort=Owner +ActionsOwnedByShort=Vlasnik AffectedTo=Dodijeljeno korisniku -Event=Event +Event=Događaj Events=Događaji EventsNb=Broj događaja ListOfActions=Lista događaja @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Faktura %s obrisana InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Narudžba %s potvrđena @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervencija %s poslana putem e-maila ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Datum početka DateActionEnd=Datum završetka AgendaUrlOptions1=Također možete dodati sljedeće parametre za filtriranje prikazanog: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s ​​da se ograniči prikaz na akcije dodijeljene korisniku %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/bs_BA/bills.lang b/htdocs/langs/bs_BA/bills.lang index 7653062f4a3..2f4576863bf 100644 --- a/htdocs/langs/bs_BA/bills.lang +++ b/htdocs/langs/bs_BA/bills.lang @@ -162,14 +162,14 @@ DraftBills=Uzorak faktura CustomersDraftInvoices=Nacrti faktura kupcima SuppliersDraftInvoices=Nacrti faktura dobavljačima Unpaid=Neplaćeno -ConfirmDeleteBill=Are you sure you want to delete this invoice? +ConfirmDeleteBill=Da li ste sigurni da želite obrisati ovu fakturu? ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? +ConfirmUnvalidateBill=Da li ste sigurni da želite promijeniti status fakture %s u nacrtu? ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? ConfirmCancelBill=Are you sure you want to cancel invoice %s? ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? +ConfirmClassifyPaidPartiallyQuestion=Ova faktura nije potpuno plaćena. Koji su razlozi da zatvorite ovu fakturu? ConfirmClassifyPaidPartiallyReasonAvoir=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I regularise the VAT with a credit note. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I accept to lose the VAT on this discount. ConfirmClassifyPaidPartiallyReasonDiscountVat=Remaining unpaid (%s %s) is a discount granted because payment was made before term. I recover the VAT on this discount without a credit note. @@ -184,26 +184,26 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ovaj izbor se koristi kada ConfirmClassifyPaidPartiallyReasonOtherDesc=Koristite ovaj izbor ako bilo koji drugi ne odgovara, naprimjer u sljedećoj situaciji:
- plaćanje nije izvršeno jer su neki proizvodi vraćeni
- iznos je bio reklamiran, jer nije obračunat popust
U svim slučajevima, iznos koji je reklamiran mora biti ispravljen u računovodstvenom sistemu kreiranjem knjižne obavijesti. ConfirmClassifyAbandonReasonOther=Ostalo ConfirmClassifyAbandonReasonOtherDesc=Ovaj izbor se koristi u svim drugih slučajevima. Naprimjer, zbog toga sto planiranje kreirati zamjensku fakturu. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmCustomerPayment=Da li odobravate unos ovo plaćanja za %s %s? +ConfirmSupplierPayment=Da li odobravate unos ovo plaćanja za %s %s? +ConfirmValidatePayment=Da li ste sigurni da želite odobriti ovo plaćanje? Poslije toga neće biti moguće izmjene ovog plaćanja. ValidateBill=Potvrdi fakturu UnvalidateBill=Otkaži potvrdu fakture NumberOfBills=Broj faktura NumberOfBillsByMonth=Broj faktura po mjesecu AmountOfBills=Iznos faktura AmountOfBillsByMonthHT=Iznos faktura po mjesecu (bez PDV-a) -ShowSocialContribution=Show social/fiscal tax +ShowSocialContribution=Pokaži doprinose i poreze ShowBill=Prikaži fakturu ShowInvoice=Prikaži fakturu ShowInvoiceReplace=Prikaži zamjensku fakturu ShowInvoiceAvoir=Prikaži dobropis -ShowInvoiceDeposit=Show down payment invoice +ShowInvoiceDeposit=Pokaži avansne fakture ShowInvoiceSituation=Show situation invoice ShowPayment=Prikaži uplatu AlreadyPaid=Već plaćeno AlreadyPaidBack=Već izvršen povrat uplate -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) +AlreadyPaidNoCreditNotesNoDeposits=Već plaćeno (bez KO i avansa) Abandoned=Otkazano RemainderToPay=Ostalo neplaćeno RemainderToTake=Ostatak iznosa za naplatu @@ -213,7 +213,7 @@ AmountExpected=Iznos za potraživati ExcessReceived=Višak primljen EscompteOffered=Popust ponuđen (uplata prije roka) EscompteOfferedShort=Popust -SendBillRef=Submission of invoice %s +SendBillRef=Slanje fakture %s SendReminderBillRef=Submission of invoice %s (reminder) StandingOrders=Direct debit orders StandingOrder=Nalog za plaćanje @@ -241,13 +241,13 @@ SetMode=Postaviti način plaćanja SetRevenuStamp=Set revenue stamp Billed=Fakturisano RecurringInvoices=Recurring invoices -RepeatableInvoice=Template invoice -RepeatableInvoices=Template invoices -Repeatable=Template -Repeatables=Templates -ChangeIntoRepeatableInvoice=Convert into template invoice -CreateRepeatableInvoice=Create template invoice -CreateFromRepeatableInvoice=Create from template invoice +RepeatableInvoice=Šablonska faktura +RepeatableInvoices=Šablonske fakture +Repeatable=Šablon +Repeatables=Šabloni +ChangeIntoRepeatableInvoice=Pretvori u šablonsku fakturu +CreateRepeatableInvoice=Napravi šablonsku fakturu +CreateFromRepeatableInvoice=Napravi od šablonske fakture CustomersInvoicesAndInvoiceLines=Fakture kupaca i tekstovi faktura CustomersInvoicesAndPayments=Faktura kupaca i uplate ExportDataset_invoice_1=Lista faktura kupaca i tekstovi faktura @@ -260,7 +260,7 @@ ReductionsShort=Sniž. Discounts=Popusti AddDiscount=Kreiraj popust AddRelativeDiscount=Ustvarite relativno popust -EditRelativeDiscount=Edit relative discount +EditRelativeDiscount=Uredi relativni popust AddGlobalDiscount=Dodaj popust EditGlobalDiscounts=Uredi absolutne popuste AddCreditNote=Ustvari dobropis @@ -270,20 +270,20 @@ RelativeDiscount=Relativni popust GlobalDiscount=Globalni popust CreditNote=Dobropis CreditNotes=Dobropisi -Deposit=Down payment -Deposits=Down payments +Deposit=Akontacija +Deposits=Akontacije DiscountFromCreditNote=Popust z dobropisa %s -DiscountFromDeposit=Down payments from invoice %s +DiscountFromDeposit=Akontacije po računu %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ova vrsta kredita može se koristiti na fakturi prije potvrde -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=Faktura mora biti potvrđena da bi se koristio ova vrsta kredita NewGlobalDiscount=Nov fiksni popust NewRelativeDiscount=Nov relativni popust NoteReason=Bilješka/Razlog ReasonDiscount=Razlog DiscountOfferedBy=Odobreno od strane -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=ostalo popusta +DiscountAlreadyCounted=Popusti već iskorišteni BillAddress=Adresa fakture HelpEscompte=Ovaj popust je odobren za kupca jer je isplata izvršena prije roka. HelpAbandonBadCustomer=Ovaj iznos je otkazan (kupac je loš kupac) i smatra se kao potencijalni gubitak. diff --git a/htdocs/langs/bs_BA/bookmarks.lang b/htdocs/langs/bs_BA/bookmarks.lang index 23ba0707f22..f087d1ffcaf 100644 --- a/htdocs/langs/bs_BA/bookmarks.lang +++ b/htdocs/langs/bs_BA/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Dodaj ovu stranicu u bookmark Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=Lista bookmark-a +EditBookmarks=Prikaži/uredi favorite NewBookmark=Novi bookmark ShowBookmark=Prikaži bookmark OpenANewWindow=Otvori u novom prozoru diff --git a/htdocs/langs/bs_BA/boxes.lang b/htdocs/langs/bs_BA/boxes.lang index a847b2474cd..781966a4d63 100644 --- a/htdocs/langs/bs_BA/boxes.lang +++ b/htdocs/langs/bs_BA/boxes.lang @@ -1,67 +1,67 @@ # Dolibarr language file - Source file is en_US - boxes -BoxLoginInformation=Login information +BoxLoginInformation=Podaci o prijavi BoxLastRssInfos=Rss informacije -BoxLastProducts=Latest %s products/services -BoxProductsAlertStock=Stock alerts for products -BoxLastProductsInContract=Latest %s contracted products/services -BoxLastSupplierBills=Latest supplier invoices -BoxLastCustomerBills=Latest customer invoices -BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices -BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices -BoxLastProposals=Latest commercial proposals -BoxLastProspects=Latest modified prospects -BoxLastCustomers=Latest modified customers -BoxLastSuppliers=Latest modified suppliers -BoxLastCustomerOrders=Latest customer orders -BoxLastActions=Latest actions -BoxLastContracts=Latest contracts -BoxLastContacts=Latest contacts/addresses -BoxLastMembers=Latest members -BoxFicheInter=Latest interventions -BoxCurrentAccounts=Open accounts balance -BoxTitleLastRssInfos=Latest %s news from %s -BoxTitleLastProducts=Latest %s modified products/services +BoxLastProducts=Posljednjih %s proizvoda/usluga +BoxProductsAlertStock=Upozorenja zaliha proizvoda +BoxLastProductsInContract=Posljednjih %s ugovorenih proizvoda/usluga +BoxLastSupplierBills=Najnovije fakture dobavljača +BoxLastCustomerBills=Najnovije fakture kupaca +BoxOldestUnpaidCustomerBills=Najstarije nenaplaćene fakture kupaca +BoxOldestUnpaidSupplierBills=Najstarije naplaćene fakture dobavljačima +BoxLastProposals=Najnovije ponude +BoxLastProspects=Posljednji izmijenjeni prospekti +BoxLastCustomers=Posljednji izmijenjeni kupci +BoxLastSuppliers=Posljednji izmijenjeni dobavljači +BoxLastCustomerOrders=Najnovije narudžbe kupaca +BoxLastActions=Posljednje akcije +BoxLastContracts=Najnoviji ugovori +BoxLastContacts=Najnoviji kontakti/adrese +BoxLastMembers=Najnoviji članovi +BoxFicheInter=Posljednje intervencije +BoxCurrentAccounts=Trenutna stanja računa +BoxTitleLastRssInfos=Posljednjih %s novosti od %s +BoxTitleLastProducts=Posljednjih %s izmijenjenih proizvoda/usluga BoxTitleProductsAlertStock=Upozorenje za proizvode u zalihama -BoxTitleLastSuppliers=Latest %s recorded suppliers -BoxTitleLastModifiedSuppliers=Latest %s modified suppliers -BoxTitleLastModifiedCustomers=Latest %s modified customers -BoxTitleLastCustomersOrProspects=Latest %s customers or prospects +BoxTitleLastSuppliers=Posljednjih %s unesenih dobavljača +BoxTitleLastModifiedSuppliers=Posljednjih %s izmijenjenih dobavljača +BoxTitleLastModifiedCustomers=Posljednjih %s izmijenjenih kupaca +BoxTitleLastCustomersOrProspects=Posljednjih %s kupaca ili prospekata BoxTitleLastCustomerBills=Posljednjih %s faktura kupaca BoxTitleLastSupplierBills=Posljednjih %s faktura dobavljača -BoxTitleLastModifiedProspects=Latest %s modified prospects -BoxTitleLastModifiedMembers=Latest %s members -BoxTitleLastFicheInter=Latest %s modified interventions -BoxTitleOldestUnpaidCustomerBills=Oldest %s unpaid customer invoices -BoxTitleOldestUnpaidSupplierBills=Oldest %s unpaid supplier invoices -BoxTitleCurrentAccounts=Open accounts balances -BoxTitleLastModifiedContacts=Latest %s modified contacts/addresses -BoxMyLastBookmarks=My latest %s bookmarks +BoxTitleLastModifiedProspects=Posljednjih %s izmijenjenih prospekata +BoxTitleLastModifiedMembers=Najnovijih %s članova +BoxTitleLastFicheInter=Posljednjih %s izmijenjenih intervencija +BoxTitleOldestUnpaidCustomerBills=Najstarijih %s nenaplaćenih faktura kupaca +BoxTitleOldestUnpaidSupplierBills=Najstarijih %s neplaćenih faktura dobavljačima +BoxTitleCurrentAccounts=Trenutno otvoreni računi +BoxTitleLastModifiedContacts=Posljednjih %s izmijenjenih kontakata/adresa +BoxMyLastBookmarks=Mojih posljednjih %s favorita BoxOldestExpiredServices=Najstarije aktivne zastarjele usluge -BoxLastExpiredServices=Latest %s oldest contacts with active expired services -BoxTitleLastActionsToDo=Latest %s actions to do -BoxTitleLastContracts=Latest %s modified contracts -BoxTitleLastModifiedDonations=Latest %s modified donations -BoxTitleLastModifiedExpenses=Latest %s modified expense reports +BoxLastExpiredServices=Posljednjih %s najstarijih ugovora sa aktivni zastarjelim uslugama +BoxTitleLastActionsToDo=Posljednjih %s akcija za uraditi +BoxTitleLastContracts=Posljednjih %s izmijenjenih ugovora +BoxTitleLastModifiedDonations=Posljednjih %s izmijenjenih donacija +BoxTitleLastModifiedExpenses=Posljednjih %s izmijenjenih troškovnika BoxGlobalActivity=Globalne aktivnosti (fakture, prijedlozi, narudžbe) -BoxGoodCustomers=Good customers -BoxTitleGoodCustomers=%s Good customers -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s -LastRefreshDate=Latest refresh date +BoxGoodCustomers=Dobar kupac +BoxTitleGoodCustomers=%s dobrih kupaca +FailedToRefreshDataInfoNotUpToDate=Greška pri osvježavanju RSS toka. Datum posljednjeg uspješnog osvježenja: %s +LastRefreshDate=Posljednji datum ažuriranja NoRecordedBookmarks=Nema definisanih bookmark-a. ClickToAdd=Klikni ovdje za dodavanje. NoRecordedCustomers=Nema zapisanih kupaca NoRecordedContacts=Nema zapisanih kontakata NoActionsToDo=Nema akcija za uraditi -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Nema unesenih narudžbi od kupaca NoRecordedProposals=Nema zapisanih prijedloga -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices -NoModifiedSupplierBills=No recorded supplier invoices +NoRecordedInvoices=Nema unesenih faktura kupcima +NoUnpaidCustomerBills=Nema nenaplaćenih faktura od kupaca +NoUnpaidSupplierBills=Nema neplaćenih faktura dobavljačima +NoModifiedSupplierBills=Nema unesenih faktura dobavljača NoRecordedProducts=Nema zapisanih proizvoda/usluga -NoRecordedProspects=No recorded prospects +NoRecordedProspects=Nema unesenih prospekata NoContractedProducts=Nema ugovorenih proizvoda/usluga -NoRecordedContracts=Nema zapisanih kontakata +NoRecordedContracts=Nema unesenih ugovora NoRecordedInterventions=Nema zapisanih intervencija BoxLatestSupplierOrders=Najnovije narudžbe dobavljaču NoSupplierOrder=Nema zapisanih narudžbi dobavljaču @@ -73,14 +73,14 @@ BoxProposalsPerMonth=Prijedlozi po mjesecu NoTooLowStockProducts=Nema proizvoda ispod granice za upozorenje BoxProductDistribution=Distribucija proizvoda/usluga BoxProductDistributionFor=Distribucija %s za %s -BoxTitleLastModifiedSupplierBills=Latest %s modified supplier bills -BoxTitleLatestModifiedSupplierOrders=Latest %s modified supplier orders -BoxTitleLastModifiedCustomerBills=Latest %s modified customer bills -BoxTitleLastModifiedCustomerOrders=Latest %s modified customer orders -BoxTitleLastModifiedPropals=Latest %s modified propals +BoxTitleLastModifiedSupplierBills=Posljednjih %s izmijenjenih faktura dobavljača +BoxTitleLatestModifiedSupplierOrders=Posljednjih %s izmijenjenih narudžbi dobavljačima +BoxTitleLastModifiedCustomerBills=Posljednjih %s izmijenjenih faktura kupcima +BoxTitleLastModifiedCustomerOrders=Posljednjih %s izmijenjenih narudžbi od kupaca +BoxTitleLastModifiedPropals=Posljednjih %s izmjenjenih prijedloga ForCustomersInvoices=Fakture kupaca ForCustomersOrders=Narudžbe kupaca ForProposals=Prijedlozi -LastXMonthRolling=The latest %s month rolling -ChooseBoxToAdd=Add widget to your dashboard -BoxAdded=Widget was added in your dashboard +LastXMonthRolling=Posljednje %s mjesečne plate +ChooseBoxToAdd=Dodaj kutijicu na vašu nadzornu ploču +BoxAdded=Kutijica je dodana na vašu nadzornu ploču diff --git a/htdocs/langs/bs_BA/categories.lang b/htdocs/langs/bs_BA/categories.lang index c9eb96b11ff..c381b807afe 100644 --- a/htdocs/langs/bs_BA/categories.lang +++ b/htdocs/langs/bs_BA/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=U diff --git a/htdocs/langs/bs_BA/commercial.lang b/htdocs/langs/bs_BA/commercial.lang index 9b408e895bb..7fa3801665c 100644 --- a/htdocs/langs/bs_BA/commercial.lang +++ b/htdocs/langs/bs_BA/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Show task ShowAction=Show event ActionsReport=Events report ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/bs_BA/donations.lang b/htdocs/langs/bs_BA/donations.lang index 5117950b57b..ce91a6a7586 100644 --- a/htdocs/langs/bs_BA/donations.lang +++ b/htdocs/langs/bs_BA/donations.lang @@ -21,7 +21,7 @@ DonationDatePayment=Datum uplate ValidPromess=Potvrdi obećanje DonationReceipt=Priznanica za donaciju DonationsModels=Modeli dokumenata za priznanicu donacije -LastModifiedDonations=Latest %s modified donations +LastModifiedDonations=Posljednjih %s izmijenjenih donacija DonationRecipient=Primalac donacije IConfirmDonationReception=Primalac potvrđuje prijem, kao donacija, slijedeći iznos MinimumAmount=Minimum amount is %s diff --git a/htdocs/langs/bs_BA/exports.lang b/htdocs/langs/bs_BA/exports.lang index 8bc4a40a682..148f40b56f0 100644 --- a/htdocs/langs/bs_BA/exports.lang +++ b/htdocs/langs/bs_BA/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/bs_BA/holiday.lang b/htdocs/langs/bs_BA/holiday.lang index 1d45a3e7aff..864895fed9c 100644 --- a/htdocs/langs/bs_BA/holiday.lang +++ b/htdocs/langs/bs_BA/holiday.lang @@ -23,7 +23,7 @@ DelayToRequestCP=Leave requests must be made at least %s day(s) before th MenuConfCP=Balance of leaves SoldeCPUser=Leaves balance is %s days. ErrorEndDateCP=Datum završetka mora biti poslije datuma početka. -ErrorSQLCreateCP=Desila se SQL greška prilikom kreiranja: +ErrorSQLCreateCP=Desila se SQL greška prilikom kreiranja: ErrorIDFicheCP=An error has occurred, the leave request does not exist. ReturnCP=Vrati se na prethodnu stranicu ErrorUserViewCP=You are not authorized to read this leave request. diff --git a/htdocs/langs/bs_BA/interventions.lang b/htdocs/langs/bs_BA/interventions.lang index 4fb6afb8b16..52e1e53c407 100644 --- a/htdocs/langs/bs_BA/interventions.lang +++ b/htdocs/langs/bs_BA/interventions.lang @@ -40,7 +40,7 @@ InterventionSentByEMail=Intervencija %s poslana putem e-maila InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions -LastModifiedInterventions=Latest %s modified interventions +LastModifiedInterventions=Posljednjih %s izmijenjenih intervencija FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Kontakt kupca za kontrolu diff --git a/htdocs/langs/bs_BA/link.lang b/htdocs/langs/bs_BA/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/bs_BA/link.lang +++ b/htdocs/langs/bs_BA/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/bs_BA/loan.lang b/htdocs/langs/bs_BA/loan.lang index 68416d1a60f..221115f9311 100644 --- a/htdocs/langs/bs_BA/loan.lang +++ b/htdocs/langs/bs_BA/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/bs_BA/mails.lang b/htdocs/langs/bs_BA/mails.lang index b66f78f86dc..ee381bf34ee 100644 --- a/htdocs/langs/bs_BA/mails.lang +++ b/htdocs/langs/bs_BA/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linija %s u fajlu diff --git a/htdocs/langs/bs_BA/main.lang b/htdocs/langs/bs_BA/main.lang index 3032b1b7582..253e7b82ca9 100644 --- a/htdocs/langs/bs_BA/main.lang +++ b/htdocs/langs/bs_BA/main.lang @@ -72,8 +72,10 @@ SeeHere=Pogledaj ovdje Apply=Primijeniti BackgroundColorByDefault=Osnovna boja pozadine FileRenamed=Datoteka je uspješno preimenovana -FileUploaded=Datoteka je uspješno postavljena FileGenerated=Datoteka je uspješno generirana +FileSaved=The file was successfully saved +FileUploaded=Datoteka je uspješno postavljena +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Datoteka je odabrana za prilog ali nije još postavljena. Kliknite na "Dodaj datoteku" da bi ste to uradili. NbOfEntries=Broj unosa GoToWikiHelpPage=Pročitajte online pomoć (neophodan pristup internetu) @@ -358,6 +360,7 @@ TotalLT1ES=Ukupno RE TotalLT2ES=Ukupno IRPF HT=Neto porez TTC=Uklj. porez +INCT=Inc. all taxes VAT=Porez na promet VATs=PDV LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=dec AttachedFiles=Priložene datoteke i dokumenti -FileTransferComplete=Datoteka je uspješno postavljena DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS diff --git a/htdocs/langs/bs_BA/modulebuilder.lang b/htdocs/langs/bs_BA/modulebuilder.lang new file mode 100644 index 00000000000..4cae99aea55 --- /dev/null +++ b/htdocs/langs/bs_BA/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Ova kartica za određena za definiranje stavki menija koje daje vaš modul. +ModuleBuilderDescpermissions=Ova kartica je određena za definiranje novih dozvola koje želite dati s vašim modulom. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/bs_BA/multicurrency.lang b/htdocs/langs/bs_BA/multicurrency.lang new file mode 100644 index 00000000000..de75ec8b646 --- /dev/null +++ b/htdocs/langs/bs_BA/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Iznos za plaćanje, orig. valuta diff --git a/htdocs/langs/bs_BA/opensurvey.lang b/htdocs/langs/bs_BA/opensurvey.lang index a1046030172..bee7773f918 100644 --- a/htdocs/langs/bs_BA/opensurvey.lang +++ b/htdocs/langs/bs_BA/opensurvey.lang @@ -21,7 +21,7 @@ TheBestChoices=The best choices currently are with=with OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. CommentsOfVoters=Comments of voters -ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) +ConfirmRemovalOfPoll=Da li ste sigurni da želite ukloniti ovu anketu (i sve glasove) RemovePoll=Remove poll UrlForSurvey=URL to communicate to get a direct access to poll PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: @@ -33,7 +33,7 @@ PourContreList=List (empty/for/against) AddNewColumn=Add new column TitleChoice=Choice label ExportSpreadsheet=Export result spreadsheet -ExpireDate=Limit date +ExpireDate=Datum ograničenja NbOfSurveys=Number of polls NbOfVoters=Nb of voters SurveyResults=Results diff --git a/htdocs/langs/bs_BA/other.lang b/htdocs/langs/bs_BA/other.lang index 195c8948d3b..0f2d133132d 100644 --- a/htdocs/langs/bs_BA/other.lang +++ b/htdocs/langs/bs_BA/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/bs_BA/paybox.lang b/htdocs/langs/bs_BA/paybox.lang index c0cb8e649f0..635c9b26d40 100644 --- a/htdocs/langs/bs_BA/paybox.lang +++ b/htdocs/langs/bs_BA/paybox.lang @@ -11,8 +11,9 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Izvrši plaćanje YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information -Continue=Next +Continue=Sljedeće ToOfferALinkForOnlinePayment=URL for %s payment ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice diff --git a/htdocs/langs/bs_BA/paypal.lang b/htdocs/langs/bs_BA/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/bs_BA/paypal.lang +++ b/htdocs/langs/bs_BA/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bs_BA/productbatch.lang b/htdocs/langs/bs_BA/productbatch.lang index e62c925da00..1ee1a09d8cd 100644 --- a/htdocs/langs/bs_BA/productbatch.lang +++ b/htdocs/langs/bs_BA/productbatch.lang @@ -2,8 +2,8 @@ ManageLotSerial=Use lot/serial number ProductStatusOnBatch=Yes (lot/serial required) ProductStatusNotOnBatch=No (lot/serial not used) -ProductStatusOnBatchShort=Yes -ProductStatusNotOnBatchShort=No +ProductStatusOnBatchShort=Da +ProductStatusNotOnBatchShort=Ne Batch=Lot/Serial atleast1batchfield=Eat-by date or Sell-by date or Lot/Serial number batch_number=Lot/Serial number diff --git a/htdocs/langs/bs_BA/products.lang b/htdocs/langs/bs_BA/products.lang index 2c82f2f134b..28b7e0bceb6 100644 --- a/htdocs/langs/bs_BA/products.lang +++ b/htdocs/langs/bs_BA/products.lang @@ -26,14 +26,14 @@ ProductOrService=Proizvod ili usluga ProductsAndServices=Proizvodi i usluge ProductsOrServices=Proizvodi ili usluge ProductsOnSaleOnly=Products for sale only -ProductsOnPurchaseOnly=Product for purchase only -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase ServicesOnSaleOnly=Services for sale only ServicesOnPurchaseOnly=Services for purchase only ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase -LastModifiedProductsAndServices=Latest %s modified products/services +LastModifiedProductsAndServices=Posljednjih %s izmijenjenih proizvoda/usluga LastRecordedProducts=Latest %s recorded products LastRecordedServices=Latest %s recorded services CardProduct0=Product card @@ -247,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated diff --git a/htdocs/langs/bs_BA/salaries.lang b/htdocs/langs/bs_BA/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/bs_BA/salaries.lang +++ b/htdocs/langs/bs_BA/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/bs_BA/sendings.lang b/htdocs/langs/bs_BA/sendings.lang index 4d70784a2b6..6e1694dcc83 100644 --- a/htdocs/langs/bs_BA/sendings.lang +++ b/htdocs/langs/bs_BA/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Jednostavni model dokumenta DocumentModelMerou=Model dokumenta Merou A5 WarningNoQtyLeftToSend=Upozorenje, nema proizvoda na čekanju za slanje StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Događaji na pošiljki LinkToTrackYourPackage=Link za praćenje paketa ShipmentCreationIsDoneFromOrder=U ovom trenutku, nova pošiljka se kreira sa kartice narudžbe ShipmentLine=Tekst pošiljke -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/bs_BA/stocks.lang b/htdocs/langs/bs_BA/stocks.lang index 301ddce8641..9ad58b1a62b 100644 --- a/htdocs/langs/bs_BA/stocks.lang +++ b/htdocs/langs/bs_BA/stocks.lang @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Otpremljena količina QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Otpremanje zaliha +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation diff --git a/htdocs/langs/bs_BA/stripe.lang b/htdocs/langs/bs_BA/stripe.lang new file mode 100644 index 00000000000..fba31857f2f --- /dev/null +++ b/htdocs/langs/bs_BA/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Sljedeće +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/bs_BA/suppliers.lang b/htdocs/langs/bs_BA/suppliers.lang index 5503303e717..edc7bc4000f 100644 --- a/htdocs/langs/bs_BA/suppliers.lang +++ b/htdocs/langs/bs_BA/suppliers.lang @@ -43,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/bs_BA/website.lang b/htdocs/langs/bs_BA/website.lang index 6197580711f..c438cb78f6f 100644 --- a/htdocs/langs/bs_BA/website.lang +++ b/htdocs/langs/bs_BA/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kod WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ca_ES/accountancy.lang b/htdocs/langs/ca_ES/accountancy.lang index 85f24e647c1..ca34ed5443d 100644 --- a/htdocs/langs/ca_ES/accountancy.lang +++ b/htdocs/langs/ca_ES/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Visió general de quantitat de línies ja comptabil OtherInfo=Altra informació DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Àrea de comptabilitat AccountancyAreaDescIntro=L'ús del mòdul de comptabilitat es realitza en diverses etapes: @@ -62,7 +63,6 @@ Addanaccount=Afegir un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Compte comptable suggerit @@ -79,6 +79,7 @@ SuppliersVentilation=Comptabilització de factura de proveïdor ExpenseReportsVentilation=Comptabilització d'informes de despeses CreateMvts=Crea una nova transacció UpdateMvts=Modificació d'una transacció +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Compte saldo @@ -142,6 +143,7 @@ NumPiece=Número de peça TransactionNumShort=Número de transacció AccountingCategory=Grups comptes contables GroupByAccountAccounting=Agrupar per compte comptable +ByAccounts=By accounts NotMatch=No definit DeleteMvt=Delete Ledger lines DelYear=Any a eliminar @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Vendes AccountingJournalType3=Compres AccountingJournalType4=Banc +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exportacions Export=Exporta +ExportDraftJournal=Export draft journal Modelcsv=Model d'exportació OptionsDeactivatedForThisExportModel=Per aquest model d'exportació les opcions estan desactivades Selectmodelcsv=Selecciona un model d'exportació diff --git a/htdocs/langs/ca_ES/admin.lang b/htdocs/langs/ca_ES/admin.lang index c5738bf9e2e..47ede739dae 100644 --- a/htdocs/langs/ca_ES/admin.lang +++ b/htdocs/langs/ca_ES/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Sol·licitud pressupost i preus a proveïdor Module1200Name=Mantis Module1200Desc=Interface amb el sistema de seguiment d'incidències Mantis Module1400Name=Comptabilitat experta -Module1400Desc=Gestió experta de la comptabilitat (doble partida) +Module1400Desc=Accounting management (double entries) Module1520Name=Generar document Module1520Desc=Generació de documents de correu massiu Module1780Name=Etiquetes @@ -585,7 +585,7 @@ Module50100Desc=Mòdul Terminal Punt Venda (TPV) Module50200Name=Paypal Module50200Desc=Mòdul per a proporcionar un pagament en línia amb targeta de crèdit mitjançant Paypal Module50400Name=Comptabilitat (avançat) -Module50400Desc=Gestió experta de la comptabilitat (doble partida) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=L'impressió directa (sense obrir els documents) utilitza l'interfície Cups IPP (L'impressora té que ser visible pel servidor i CUPS té que estar instal·lat en el servidor) Module55000Name=Enquesta o votació diff --git a/htdocs/langs/ca_ES/agenda.lang b/htdocs/langs/ca_ES/agenda.lang index 0e2f931a2dc..30254d7226f 100644 --- a/htdocs/langs/ca_ES/agenda.lang +++ b/htdocs/langs/ca_ES/agenda.lang @@ -75,14 +75,17 @@ InterventionSentByEMail=Intervenció %s enviada per email ProposalDeleted=Pressupost esborrat OrderDeleted=Comanda esborrada InvoiceDeleted=Factura esborrada +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### AgendaModelModule=Plantilles de documents per esdeveniments DateActionStart=Data d'inici DateActionEnd=Data finalització AgendaUrlOptions1=Podeu també afegir aquests paràmetres al filtre de sortida: -AgendaUrlOptions2=login=%s per a restringir insercions a accions creades o realitzades per l'usuari %s. AgendaUrlOptions3=logina=%s ​​per a restringir insercions a les accions creades per l'usuari %s. -AgendaUrlOptions4=logint=%s per a restringir insercions a accions que afectin a l'usuari %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID per a restringir la sortida d'accions associades al projecta PROJECT_ID. AgendaShowBirthdayEvents=Mostra aniversaris dels contactes AgendaHideBirthdayEvents=Oculta aniversaris dels contactes diff --git a/htdocs/langs/ca_ES/banks.lang b/htdocs/langs/ca_ES/banks.lang index 5acc86cf634..c73774003f7 100644 --- a/htdocs/langs/ca_ES/banks.lang +++ b/htdocs/langs/ca_ES/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Està segur de voler eliminar l'enllaç entre el regis ListBankTransactions=Llistat de registres bancaris IdTransaction=Id de transacció BankTransactions=Registres bancaris +BankTransaction=Registre bancari ListTransactions=Llistat registres ListTransactionsByCategory=Llistat registres/categoria TransactionsToConciliate=Registres a conciliar @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Xec retornat i factures reobertes BankAccountModelModule=Plantilles de documents per comptes bancaris DocumentModelSepaMandate=Plantilla per a mandat SEPA. Vàlid només per a països europeus de la CEE. DocumentModelBan=Plantilla per imprimir una pàgina amb informació BAN +NewVariousPayment=Nou pagament varis +VariousPayment=Pagament varis +VariousPayments=Pagaments varis +ShowVariousPayment=Mostra el pagament varis diff --git a/htdocs/langs/ca_ES/bills.lang b/htdocs/langs/ca_ES/bills.lang index 25a9f5465bd..a1aa5c412d1 100644 --- a/htdocs/langs/ca_ES/bills.lang +++ b/htdocs/langs/ca_ES/bills.lang @@ -304,7 +304,7 @@ InvoiceNotChecked=Cap factura pendent està seleccionada CloneInvoice=Clonar factura ConfirmCloneInvoice=Vols clonar aquesta factura %s? DisabledBecauseReplacedInvoice=Acció desactivada perquè és una factura reemplaçada -DescTaxAndDividendsArea=Aquesta àrea presenta un resum de tots els pagaments fets per a despeses especials. Aquí només s'inclouen registres amb pagament durant l'any fixat. +DescTaxAndDividendsArea=Aquesta àrea presenta un resum de tots els pagaments fets per a despeses especials. Aquí només s'inclouen registres amb pagament durant l'any fixat. NbOfPayments=Nº de pagaments SplitDiscount=Dividir el dte. en dos ConfirmSplitDiscount=Estàs segur que vols dividir aquest descompte de %s %s en 2 descomptes més baixos? @@ -464,7 +464,7 @@ PDFCrevetteDescription=Plantilla Crevette per factures PDF. Una plantilla de fac TerreNumRefModelDesc1=Retorna el nombre sota el format %syymm-nnnn per a les factures i %syymm-nnnn per als abonaments on yy és l'any, mm. el mes i nnnn un comptador seqüencial sense ruptura i sense permanència a 0 MarsNumRefModelDesc1=Retorna el nombre sota el format %syymm-nnnn per a les factures, %syymm-nnnn per a les factures rectificatives, %syymm-nnnn per a les factures de dipòsit i %syymm-nnnn pels abonaments on yy és l'any, mm el mes i nnnn un comptador seqüencial sense ruptura i sense retorn a 0 TerreNumRefModelError=Ja hi ha una factura amb $syymm i no és compatible amb aquest model de seqüència. Elimineu o renómbrela per poder activar aquest mòdul -CactusNumRefModelDesc1=Retorna un numero amb format %syymm-nnnn per a factures estàndard, %syymm-nnnn per a notes de crèdit i %syymm-nnnn per a factures de dipòsits anticipats a on yy es l'any, mm és el mes i nnnn és una seqüència sense ruptura i sense retorn a 0 +CactusNumRefModelDesc1=Retorna un numero amb format %syymm-nnnn per a factures estàndard, %syymm-nnnn per a notes de crèdit i %syymm-nnnn per a factures de dipòsits anticipats a on yy es l'any, mm és el mes i nnnn és una seqüència sense ruptura i sense retorn a 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Agent comercial del seguiment factura a client TypeContact_facture_external_BILLING=Contacte client facturació @@ -503,4 +503,4 @@ ToCreateARecurringInvoiceGeneAuto=Si necessites tenir cada factura generada auto DeleteRepeatableInvoice=Elimina la factura recurrent ConfirmDeleteRepeatableInvoice=Vols eliminar la plantilla de factura? CreateOneBillByThird=Crea una factura per tercer (per la resta, una factura per comanda) -BillCreated=%s càrrec(s) creats +BillCreated=%s càrrec(s) creats diff --git a/htdocs/langs/ca_ES/bookmarks.lang b/htdocs/langs/ca_ES/bookmarks.lang index 6c6b935daad..2d2f6243223 100644 --- a/htdocs/langs/ca_ES/bookmarks.lang +++ b/htdocs/langs/ca_ES/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Afegeix aquesta pàgina als marcadors Bookmark=Marcador Bookmarks=Marcadors +ListOfBookmarks=Llista de marcadors +EditBookmarks=Llista/edita els marcadors NewBookmark=Nou marcador ShowBookmark=Mostra marcador OpenANewWindow=Obre una nova finestra diff --git a/htdocs/langs/ca_ES/boxes.lang b/htdocs/langs/ca_ES/boxes.lang index 4d2b23c9db2..cfb78cb1457 100644 --- a/htdocs/langs/ca_ES/boxes.lang +++ b/htdocs/langs/ca_ES/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Informació de inici de sessió BoxLastRssInfos=Informació RSS BoxLastProducts=Últims %s productes/serveis BoxProductsAlertStock=Alertes d'estoc per a productes @@ -82,3 +83,4 @@ ForCustomersOrders=Comandes de clients ForProposals=Pressupostos LastXMonthRolling=Els últims %s mesos consecutius ChooseBoxToAdd=Afegeix el panell a la teva taula de control +BoxAdded=S'ha afegit el panell a la teva taula de control diff --git a/htdocs/langs/ca_ES/categories.lang b/htdocs/langs/ca_ES/categories.lang index e1f9f6f3d61..3df8410cbbf 100644 --- a/htdocs/langs/ca_ES/categories.lang +++ b/htdocs/langs/ca_ES/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Etiqueta Rubriques=Etiquetes +RubriquesTransactions=Etiquetes de transaccions categories=etiquetes NoCategoryYet=No s'ha creat cap etiqueta d'aquest tipus In=En diff --git a/htdocs/langs/ca_ES/commercial.lang b/htdocs/langs/ca_ES/commercial.lang index 814c1093b6e..289fcfd9696 100644 --- a/htdocs/langs/ca_ES/commercial.lang +++ b/htdocs/langs/ca_ES/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Veure tasca ShowAction=Veure esdeveniment ActionsReport=Informe d'esdeveniments ThirdPartiesOfSaleRepresentative=Tercers amb agent comercial +SaleRepresentativesOfThirdParty=Agents comercials del tercer SalesRepresentative=Agent comercial SalesRepresentatives=Agents comercials SalesRepresentativeFollowUp=Agent comercial (seguiment) diff --git a/htdocs/langs/ca_ES/companies.lang b/htdocs/langs/ca_ES/companies.lang index 6401f1b4a7a..aec84193bcd 100644 --- a/htdocs/langs/ca_ES/companies.lang +++ b/htdocs/langs/ca_ES/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nou particular NewCompany=Nova empresa (client potencial, client, proveïdor) NewThirdParty=Nou tercer (client potencial, client, proveïdor) CreateDolibarrThirdPartySupplier=Crea un tercer (proveïdor) -CreateThirdPartyOnly=Crea un tercer +CreateThirdPartyOnly=Crea tercer CreateThirdPartyAndContact=Crea un tercer + un contacte fill ProspectionArea=Àrea de pressupostos IdThirdParty=ID tercer @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clients ThirdPartyCustomersWithIdProf12=Clients amb %s o %s ThirdPartySuppliers=Proveïdors ThirdPartyType=Tipus de tercer -Company/Fundation=Empresa/Entitat Individual=Particular ToCreateContactWithSameName=Es crearà un contacte/adreça automàticament amb la mateixa informació que el tercer d'acord amb el propi tercer. En la majoria de casos, fins i tot si el tercer és una persona física, la creació d'un sol tercer ja és suficient. ParentCompany=Seu Central @@ -78,10 +77,10 @@ VATIsNotUsed=No subjecte a IVA CopyAddressFromSoc=Omple l'adreça amb l'adreça del tercer ThirdpartyNotCustomerNotSupplierSoNoRef=Tercer ni client ni proveïdor, no hi ha objectes vinculats disponibles PaymentBankAccount=Compte bancari de pagament -OverAllProposals=Pressupostos total -OverAllOrders=Comandes total -OverAllInvoices=Factures total -OverAllSupplierProposals=Total price requests +OverAllProposals=Pressupostos +OverAllOrders=Comandes +OverAllInvoices=Factures +OverAllSupplierProposals=Peticions de preu ##### Local Taxes ##### LocalTax1IsUsed=Utilitza segon impost LocalTax1IsUsedES= Subjecte a RE @@ -237,6 +236,12 @@ ProfId3TN=CNAE ProfId4TN=CCC ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=CIF/NIF ProfId2RU=Núm. seguretat social ProfId3RU=CNAE @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Descompte relatiu CustomerAbsoluteDiscountShort=Descompte fixe CompanyHasRelativeDiscount=Aquest client té un descompte per defecte de %s%% CompanyHasNoRelativeDiscount=Aquest client no té descomptes relatius per defecte -CompanyHasAbsoluteDiscount=Aquest client té %s %s descomptes disponibles (descomptes, bestretes...) +CompanyHasAbsoluteDiscount=Aquest client té descomptes disponibles (notes de crèdit o bestretes) per %s %s CompanyHasCreditNote=Aquest client encara té abonaments per %s %s CompanyHasNoAbsoluteDiscount=Aquest client no té més descomptes fixos disponibles CustomerAbsoluteDiscountAllUsers=Descomptes fixos en curs (acordat per tots els usuaris) @@ -390,7 +395,7 @@ ListCustomersShort=Llistat de clients ThirdPartiesArea=Àrea de tercers i contactes LastModifiedThirdParties=Últims %s tercers modificats UniqueThirdParties=Total de tercers únics -InActivity=Obert +InActivity=Actiu ActivityCeased=Tancat ThirdPartyIsClosed=Tercer està tancat ProductsIntoElements=Llistat de productes/serveis en %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Codi de client/proveïdor lliure sense verificació. Pot ManagingDirectors=Nom del gerent(s) (CEO, director, president ...) MergeOriginThirdparty=Duplicar tercer (tercer que vols eliminar) MergeThirdparties=Fusionar tercers -ConfirmMergeThirdparties=Estàs segur que vols fusionar aquest tercer amb l'actual? Tots els objectes relacionats (factures, comandes, ...) serán mogudes al tercer actual i el duplicat serà esborrat. +ConfirmMergeThirdparties=Estàs segur que vols fusionar aquest tercer amb l'actual? Tots els objectes relacionats (factures, comandes, ...) seran traslladats al tercer actual, i l'anterior duplicat serà esborrat. ThirdpartiesMergeSuccess=Els tercers han sigut fusionats SaleRepresentativeLogin=Nom d'usuari de l'agent comercial SaleRepresentativeFirstname=Nom de l'agent comercial diff --git a/htdocs/langs/ca_ES/deliveries.lang b/htdocs/langs/ca_ES/deliveries.lang index 93ad3165c72..30b75552453 100644 --- a/htdocs/langs/ca_ES/deliveries.lang +++ b/htdocs/langs/ca_ES/deliveries.lang @@ -8,7 +8,7 @@ CreateDeliveryOrder=Genera el rebut d'entrega DeliveryStateSaved=Estat d'entrega desat SetDeliveryDate=Indica la data d'enviament ValidateDeliveryReceipt=Valida el rebut d'entrega -ValidateDeliveryReceiptConfirm=Estàs segur que vols validar aquest rebut d'entrega? +ValidateDeliveryReceiptConfirm=Estàs segur que vols validar aquest rebut d'entrega? DeleteDeliveryReceipt=Elimina el rebut d'entrega DeleteDeliveryReceiptConfirm=Estàs segur que vols eliminar el rebut d'entrega %s? DeliveryMethod=Mètode d'enviament diff --git a/htdocs/langs/ca_ES/errors.lang b/htdocs/langs/ca_ES/errors.lang index 3d5fa68b252..d21594a7dc6 100644 --- a/htdocs/langs/ca_ES/errors.lang +++ b/htdocs/langs/ca_ES/errors.lang @@ -190,7 +190,7 @@ ErrorUserNotAssignedToTask=L'usuari ha d'estar assignat a la tasca per poder int ErrorTaskAlreadyAssigned=La tasca també està assignada a l'usuari ErrorModuleFileSeemsToHaveAWrongFormat=Pareix que el mòdul té un format incorrecte. ErrorFilenameDosNotMatchDolibarrPackageRules=El nom de l'arxiu del mòdul (%s) no coincideix amb la sintaxi del nom esperat: %s -ErrorDuplicateTrigger=Error, nom de disparador %s duplicat. Ja es troba carregat des de %s. +ErrorDuplicateTrigger=Error, nom de disparador %s duplicat. Ja es troba carregat des de %s. ErrorNoWarehouseDefined=Error, no hi ha magatzems definits. ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. diff --git a/htdocs/langs/ca_ES/exports.lang b/htdocs/langs/ca_ES/exports.lang index 7e68d514168..1ad1177dc3a 100644 --- a/htdocs/langs/ca_ES/exports.lang +++ b/htdocs/langs/ca_ES/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=AAAA, AAAAMM, AAAAMMDD: filtres per any/mes/dia
AAAA+AAAA, A ExportNumericFilter=NNNNN filtra per un valor
NNNNN+NNNNN filtra sobre un rang de valors
< NNNN filtra per valors menors
> NNNNN filtra per valors majors ImportFromLine=Importa començant des del número de línia EndAtLineNb=Final en el número de línia +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Per exemple, defineix aquest valor a 3 per excloure les 2 primeres línies KeepEmptyToGoToEndOfFile=Deixa aquest camp buit per anar al final del fitxer +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Usuaris (empleats o no) i propietats +ComputedField=Computed field ## filters SelectFilterFields=Si vol aplicar un filtre sobre alguns valors, introduïu-los aquí. FilteredFields=Camps filtrats diff --git a/htdocs/langs/ca_ES/holiday.lang b/htdocs/langs/ca_ES/holiday.lang index 2da405f3cf3..d7a5dce2622 100644 --- a/htdocs/langs/ca_ES/holiday.lang +++ b/htdocs/langs/ca_ES/holiday.lang @@ -96,7 +96,7 @@ HolidaysToValidateAlertSolde=L'usuari que ha realitzat la sol·licitud de dies l HolidaysValidated=Dies lliures retribuïts valids HolidaysValidatedBody=La seva sol·licitud de dies lliures retribuïts des de el %s al %s ha sigut validada. HolidaysRefused=Dies lliures retribuïts denegats -HolidaysRefusedBody=La seva sol·licitud de dies lliures retribuïts des de el %s al %s ha sigut denegada per el següent motiu: +HolidaysRefusedBody=La seva sol·licitud de dies lliures retribuïts des de el %s al %s ha sigut denegada per el següent motiu: HolidaysCanceled=Dies lliures retribuïts cancel·lats HolidaysCanceledBody=La seva solicitud de dies lliures retribuïts del %s al %s ha sigut cancel·lada. FollowedByACounter=1: Aquest tipus de dia lliure necessita el seguiment d'un comptador. El comptador s'incrementa manualment o automàticament i quan hi ha una petició de dia lliure validada, el comptador es decrementa.
0: No seguit per un comptador. diff --git a/htdocs/langs/ca_ES/install.lang b/htdocs/langs/ca_ES/install.lang index e58e367c467..5602ff160e7 100644 --- a/htdocs/langs/ca_ES/install.lang +++ b/htdocs/langs/ca_ES/install.lang @@ -132,12 +132,13 @@ MigrationFinished=Acabada l'actualització LastStepDesc=Últim pas: Indiqueu aquí el compte i la contrasenya del primer usuari que fareu servir per connectar-se a l'aplicació. No perdi aquests identificadors, és el compte que permet administrar la resta. ActivateModule=Activació del mòdul %s ShowEditTechnicalParameters=Premi aquí per veure/editar els paràmetres tècnics (mode expert) -WarningUpgrade=Atenció:\nVas fer una còpia de seguretat de la base de dades abans?\nAixò és altament recomanable: per exemple, degut a alguns problemes dels sistemes de base de dades (per exemple mysql versió 5.5.40/41/42/43), alguna dada o taules poden perdre's durant aquest procés, així doncs és molt recomanable tenir un bolcat de la teva base de dades abans de començar la migració.\n\nClica OK per a començar el procés de migració.... +WarningUpgrade=Atenció:\nVas fer una còpia de seguretat de la base de dades abans?\nAixò és altament recomanable: per exemple, degut a alguns problemes dels sistemes de base de dades (per exemple mysql versió 5.5.40/41/42/43), alguna dada o taules poden perdre's durant aquest procés, així doncs és molt recomanable tenir un bolcat de la teva base de dades abans de començar la migració.\n\nClica OK per a començar el procés de migració.... ErrorDatabaseVersionForbiddenForMigration=La versió de la seva base de dades és %s. Aquesta te un error crític i es poden perdre dades si es fa un canvi a l'estructura de la base de dades i per fer l'actualització necessita fer aquests canvis. Per aquesta raó, la migració no es permetrà fins que s'actualitzi la seva base de dades a una versió estable i/o superior (llista de versions afectades: %s) KeepDefaultValuesWamp=Estàs utilitzant l'assistent d'instal·lació de DoliWamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent. KeepDefaultValuesDeb=Estàs utilitzant l'assistent d'instal·lació Dolibarr d'un paquet Linux (Ubuntu, Debian, Fedora...) amb els valors proposats més òptims. Només cal completar la contrasenya del propietari de la base de dades a crear. Canvia els altres paràmetres només si estàs segur del que estàs fent. KeepDefaultValuesMamp=Estàs utilitzant l'assistent d'instal·lació de DoliMamp amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent. KeepDefaultValuesProxmox=Estàs utilitzant l'assistent d'instal·lació de Dolibarr des d'una màquina virtual Proxmox amb els valors proposats més òptims. Canvia'ls només si estàs segur del que estàs fent. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ca_ES/loan.lang b/htdocs/langs/ca_ES/loan.lang index 786cd6b095d..5e9c5bbb647 100644 --- a/htdocs/langs/ca_ES/loan.lang +++ b/htdocs/langs/ca_ES/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s es destinaran a INTERÈS GoToPrincipal=%s es destinaran a PRINCIPAL YouWillSpend=Gastaràs %s en l'any %s ListLoanAssociatedProject=Llistat de prèstecs associats al projecte +AddLoan=Create loan # Admin ConfigLoan=Configuració del mòdul de préstecs LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable del capital per defecte LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compte comptable per al interès per defecte LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Compte comptable de l'assegurança per defecte +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ca_ES/mails.lang b/htdocs/langs/ca_ES/mails.lang index b425ee9c2fb..74856b642f5 100644 --- a/htdocs/langs/ca_ES/mails.lang +++ b/htdocs/langs/ca_ES/mails.lang @@ -64,7 +64,7 @@ DateSending=Data enviament SentTo=Enviat a %s MailingStatusRead=Llegit YourMailUnsubcribeOK=El correu electrònic %s és correcta desuscribe. -ActivateCheckReadKey=Clau utilitzada per encriptar la URL utilitzada per les característiques de "Lector" i "Desubscriu" +ActivateCheckReadKey=Clau utilitzada per encriptar la URL utilitzada per les característiques de "Lector" i "Desubscriu" EMailSentToNRecipients=E-Mail enviat a %s destinataris. EMailSentForNElements=E-Mail enviat per %s elements. XTargetsAdded=%s destinataris agregats a la llista @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contacte amb filtres de client MailingModuleDescContactsByCompanyCategory=Contactes per categoria de tercer MailingModuleDescContactsByCategory=Contactes per categories MailingModuleDescContactsByFunction=Contactes per càrrec +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Usuaris amb correus electrònics +MailingModuleDescThirdPartiesByCategories=Tercers (per categories) # Libelle des modules de liste de destinataires mailing LineInFile=Línea %s en archiu diff --git a/htdocs/langs/ca_ES/main.lang b/htdocs/langs/ca_ES/main.lang index 77f929e7d0d..363c9cddd79 100644 --- a/htdocs/langs/ca_ES/main.lang +++ b/htdocs/langs/ca_ES/main.lang @@ -72,8 +72,10 @@ SeeHere=Mira aquí Apply=Aplicar BackgroundColorByDefault=Color de fons FileRenamed=L'arxiu s'ha renombrat correctament -FileUploaded=L'arxiu s'ha carregat correctament FileGenerated=L'arxiu ha estat generat correctament +FileSaved=The file was successfully saved +FileUploaded=L'arxiu s'ha carregat correctament +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Un arxiu ha estat seleccionat per adjuntar, però encara no ha estat pujat. Feu clic a "Adjuntar aquest arxiu" per a això. NbOfEntries=Nº d'entrades GoToWikiHelpPage=Llegeix l'ajuda online (cal tenir accés a internet) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Sense IVA TTC=IVA inclòs +INCT=Inc. all taxes VAT=IVA VATs=IVAs LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=oct. MonthShort11=nov. MonthShort12=des. AttachedFiles=Arxius i documents adjunts -FileTransferComplete=s'ha transferit correctament l'arxiu DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/ca_ES/modulebuilder.lang b/htdocs/langs/ca_ES/modulebuilder.lang new file mode 100644 index 00000000000..fe2e816c133 --- /dev/null +++ b/htdocs/langs/ca_ES/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=Nou mòdul +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Mòdul inicialitzat +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ca_ES/multicurrency.lang b/htdocs/langs/ca_ES/multicurrency.lang new file mode 100644 index 00000000000..ac9450ce42f --- /dev/null +++ b/htdocs/langs/ca_ES/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi moneda +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=Clau API +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Monedes utilitzades +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Import de pagament, moneda original diff --git a/htdocs/langs/ca_ES/other.lang b/htdocs/langs/ca_ES/other.lang index 76e61d80865..2ffc6728c4f 100644 --- a/htdocs/langs/ca_ES/other.lang +++ b/htdocs/langs/ca_ES/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=lliura +WeightUnitounce=unça Length=Longitud LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/ca_ES/paybox.lang b/htdocs/langs/ca_ES/paybox.lang index 6e2f5c52733..9ff30dce43f 100644 --- a/htdocs/langs/ca_ES/paybox.lang +++ b/htdocs/langs/ca_ES/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail de confirmació de pagament Creditor=Beneficiari PaymentCode=Codi de pagament PayBoxDoPayment=Continua el pagament amb targeta +ToPay=Emetre pagament YouWillBeRedirectedOnPayBox=Serà redirigit a la pàgina segura de PayBox per indicar la seva targeta de crèdit Continue=Continuar ToOfferALinkForOnlinePayment=URL de pagament %s diff --git a/htdocs/langs/ca_ES/paypal.lang b/htdocs/langs/ca_ES/paypal.lang index 86a3c6dc11e..953d99fae5b 100644 --- a/htdocs/langs/ca_ES/paypal.lang +++ b/htdocs/langs/ca_ES/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Identificador de la transacció: %s PAYPAL_ADD_PAYMENT_URL=Afegir la url del pagament Paypal en enviar un document per e-mail PredefinedMailContentLink=Podeu fer clic a l'enllaç assegurança de sota per realitzar el seu pagament a través de PayPal\n\n%s\n\n YouAreCurrentlyInSandboxMode=Actualment es troba en mode "sandbox" -NewPaypalPaymentReceived=Nou pagament Paypal rebut -NewPaypalPaymentFailed=Nou intent de pagament Paypal sense èxit +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-Mail a avisar en cas de pagament (amb èxit o no) ReturnURLAfterPayment=URL de retorn després del pagament -ValidationOfPaypalPaymentFailed=La validació del pagament Paypal ha fallat -PaypalConfirmPaymentPageWasCalledButFailed=La pàgina de configuració de pagament per Paypal ha sigut trucada per Paypal per la confirmació ha fallat +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=Ha fallat la crida a l'API SetExpressCheckout. DoExpressCheckoutPaymentAPICallFailed=Ha fallat la crida a l'API DoExpressCheckoutPayment. DetailedErrorMessage=Missatge d'error detallat ShortErrorMessage=Missatge d'error curt ErrorCode=Codi d'error ErrorSeverityCode=Codi sever d'error +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ca_ES/products.lang b/htdocs/langs/ca_ES/products.lang index 5ebd8a862e7..4edd95060dc 100644 --- a/htdocs/langs/ca_ES/products.lang +++ b/htdocs/langs/ca_ES/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Codi comptable (venda) ProductOrService=Producte o servei ProductsAndServices=Productes i serveis ProductsOrServices=Productes o serveis -ProductsOnSell=Producte de venda o de compra -ProductsNotOnSell=Producte ni de venda ni de compra +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Productes de venda i de compra -ServicesOnSell=Serveis de venda o de compra -ServicesNotOnSell=Serveis fora de venda +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Serveis en venda o de compra LastModifiedProductsAndServices=Últims %s productes/serveis modificats LastRecordedProducts=Últims %s productes registrats @@ -60,7 +62,7 @@ SellingPrice=Preu de venda SellingPriceHT=PVP sense IVA SellingPriceTTC=PVP amb IVA CostPriceDescription=Aquest preu (net d'impostos) es pot utilitzar per acumular l'import mitjà del cost del producte per l'empresa. Pot ser qualsevol preu calculat per tu mateix, per exemple amb el preu mitjà de compra més el cost mitjà de producció i distribució. -CostPriceUsage=This value could be used for margin calculation. +CostPriceUsage=Aquest valor pot utilitzar-se per al càlcul de marges SoldAmount=Import venut PurchasedAmount=Import comprat NewPrice=Nou preu @@ -101,7 +103,7 @@ IfZeroItIsNotUsedByVirtualProduct=Si 0, aquest producte no està sent utilitzat Translation=Traducció KeywordFilter=Filtre per clau CategoryFilter=Filtre per categoria -ProductToAddSearch=Cercar productes a adjuntar +ProductToAddSearch=Cerca productes a afegir NoMatchFound=No s'han trobat resultats ListOfProductsServices=Llista de productes/serveis ProductAssociationList=Llista de productes/serveis que són components d'aquest producte/paquet virtual @@ -142,7 +144,7 @@ ConfirmCloneProduct=Estàs segur que vols clonar el producte o servei %s? CloneContentProduct=Clonar només la informació general del producte/servei ClonePricesProduct=Clonar la informació general i els preus CloneCompositionProduct=Clonar productes/serveis compostos -CloneCombinationsProduct=Clone product variants +CloneCombinationsProduct=Clonar variants de producte ProductIsUsed=Aquest producte és utilitzat NewRefForClone=Ref. del nou producte/servei SellingPrices=Preus de venda @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litre l=L +unitP=Peça +unitSET=Set +unitS=Segon +unitH=Hora +unitD=Dia +unitKG=Kilogram +unitG=Gram +unitM=Metre +unitLM=Linear meter +unitM2=Metre quadrat +unitM3=Metre cúbic +unitL=Litre ProductCodeModel=Model de ref. del producte ServiceCodeModel=Model de ref. del servei CurrentProductPrice=Preu actual @@ -186,6 +200,7 @@ MultipriceRules=Regles de nivell de preu UseMultipriceRules=Utilitza les regles de preu per nivell (definit en la configuració del mòdul de productes) per autocalcular preus dels altres nivells en funció del primer nivell PercentVariationOver=%% variació sobre %s PercentDiscountOver=%% descompte sobre %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Fabricar ProductsMultiPrice=Productes i preus per cada nivell de preu @@ -232,12 +247,18 @@ ComposedProduct=Sub-producte MinSupplierPrice=Preu mínim de proveïdor MinCustomerPrice=Preu de client mínim DynamicPriceConfiguration=Configuració de preu dinàmic -DynamicPriceDesc=En la fitxa de producte, amb aquest mòdul activat, podràs definir funcions matemàtiques per calcular els preus de Client o Proveïdor. Cada funció pot utilitzar tots els operadors matemàtics, algunes constants i variables. Pots definir aquí les variables que vulgui i si la variable necessita una actualització automàtica, la URL externa a utilitzar per demanar a Dolibarr la actualització automàtica del valor. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Afegeix variable AddUpdater=Afegeix actualitzador GlobalVariables=Variables globals VariableToUpdate=Variable per actualitzar GlobalVariableUpdaters=Actualitzacions de variables globals +GlobalVariableUpdaterType0=Dades JSON +GlobalVariableUpdaterHelp0=Analitza dades JSON des de l'URL especificada, el valor especifica l'ubicació de valor rellevant +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Dades WebService +GlobalVariableUpdaterHelp1=Analitza dades WebService de l'URL especificada, NS especifica el namespace, VALUE especifica l'ubicació del valor pertinent, DATA conter les dades a enviar i METHOD és el mètode WS a trucar +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval d'actualizació (minuts) LastUpdated=Última actualització CorrectlyUpdated=Actualitzat correctament @@ -259,41 +280,47 @@ VolumeUnits=Unitat de volum SizeUnits=Unitat de tamany DeleteProductBuyPrice=Elimina preu de compra ConfirmDeleteProductBuyPrice=Esteu segur de voler eliminar aquest preu de compra? -SubProduct=Sub product +SubProduct=Subproducte +ProductSheet=Fulla de producte +ServiceSheet=Fulla de servei #Attributes -VariantAttributes=Variant attributes -ProductAttributes=Variant attributes for products -ProductAttributeName=Variant attribute %s -ProductAttribute=Variant attribute -ProductAttributeDeleteDialog=Are you sure you want to delete this attribute? All values will be deleted -ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" with reference "%s" of this attribute? -ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? -ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object +VariantAttributes=Atributs de variants +ProductAttributes=Atributs de variants per a productes +ProductAttributeName=Atribut %s +ProductAttribute=Atribut de variant +ProductAttributeDeleteDialog=Estàs segur de voler eliminar aquest atribut? Tots els valors seran esborrats +ProductAttributeValueDeleteDialog=Està segur d'eliminar el valor "%s" amb referència "%s" d'aquest atribut? +ProductCombinationDeleteDialog=Està segur d'eliminar la variant del producte "%s"? +ProductCombinationAlreadyUsed=Ha ocorregut un error al eliminar la variant. Comprovi que no siga utilitzada per algun objecte ProductCombinations=Variants -HideProductCombinations=Hide products variant in the products selector +PropagateVariant=Propagate variants +HideProductCombinations=Ocultar les variants en el selector de productes ProductCombination=Variant -NewProductCombination=New variant -EditProductCombination=Editing variant -ProductCombinationGenerator=Variants generator -Features=Features -PriceImpact=Price impact -WeightImpact=Weight impact +NewProductCombination=Nova variant +EditProductCombination=Editant variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination +ProductCombinationGenerator=Generador de variants +Features=Funcionalitats +PriceImpact=Impacte en el preu +WeightImpact=Impacte en el pes NewProductAttribute=Nou atribut -NewProductAttributeValue=New attribute value -ErrorCreatingProductAttributeValue=There was an error while creating the attribute value. It could be because there is already an existing value with that reference -ProductCombinationGeneratorWarning=If you continue, before generating new variants, all previous ones will be DELETED. Already existing ones will be updated with the new values -TooMuchCombinationsWarning=Generating lots of variants may result in high CPU, memory usage and Dolibarr not able to create them. Enabling the option "%s" may help reduce memory usage. -DoNotRemovePreviousCombinations=Do not remove previous variants -UsePercentageVariations=Use percentage variations -PercentageVariation=Percentage variation -ErrorDeletingGeneratedProducts=There was an error while trying to delete existing product variants -NbOfDifferentValues=Nb of different values -NbProducts=Nb. of products -ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? -CloneDestinationReference=Destination product reference -ErrorCopyProductCombinations=There was an error while copying the product variants -ErrorDestinationProductNotFound=Destination product not found -ErrorProductCombinationNotFound=Product variant not found +NewProductAttributeValue=Nou valor de l'atribut +ErrorCreatingProductAttributeValue=Ha ocorregut un error al crear el valor de l'atribut. Això pot ser perque ja no existeixca un valor amb aquesta referència +ProductCombinationGeneratorWarning=Si continua, abans de generar noves variants, totes les anteriors seran ELIMINADES. Les ja existents s'actualitzaran amb els nous valors +TooMuchCombinationsWarning=Generar una gran quantitat de variants pot donar lloc a un ús de CPU alta, ús de memòria i que Dolibarr no siga capaç de crearles. Habilitar l'opció "%s" pot ajudar a reduir l'ús de memòria. +DoNotRemovePreviousCombinations=No borrar variants prèvies +UsePercentageVariations=Utilitzar variants percentuals +PercentageVariation=Variant percentual +ErrorDeletingGeneratedProducts=S'ha produït un error al intentar eliminar les variants existents +NbOfDifferentValues=Nº de valors diferents +NbProducts=Nº de productes +ParentProduct=Producte pare +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? +CloneDestinationReference=Referència del producte destí +ErrorCopyProductCombinations=S'ha produït un error al copiar les variants de producte +ErrorDestinationProductNotFound=No s'ha trobat el producte de destí +ErrorProductCombinationNotFound=Variant de producte no trobada diff --git a/htdocs/langs/ca_ES/propal.lang b/htdocs/langs/ca_ES/propal.lang index 5391f847879..9735681b3de 100644 --- a/htdocs/langs/ca_ES/propal.lang +++ b/htdocs/langs/ca_ES/propal.lang @@ -18,7 +18,7 @@ ConfirmValidateProp=Estàs segur que vols validar aquesta proposta comercial sot LastPropals=Últims %s pressupostos LastModifiedProposals=Últims %s pressupostos modificats AllPropals=Tots els pressupostos -SearchAProposal=Cercar un pressupost +SearchAProposal=Cerca un pressupost NoProposal=Sense pressupost ProposalsStatistics=Estadístiques de pressupostos NumberOfProposalsByMonth=Número per mes @@ -26,9 +26,9 @@ AmountOfProposalsByMonthHT=Import per mes (Sense IVA) NbOfProposals=Número pressupostos ShowPropal=Veure pressupost PropalsDraft=Esborranys -PropalsOpened=Obert +PropalsOpened=Actiu PropalStatusDraft=Esborrany (a validar) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Validat (pressupost obert) PropalStatusSigned=Signat (a facturar) PropalStatusNotSigned=No signat (tancat) PropalStatusBilled=Facturat diff --git a/htdocs/langs/ca_ES/salaries.lang b/htdocs/langs/ca_ES/salaries.lang index 9c0f2863005..937de3dea2e 100644 --- a/htdocs/langs/ca_ES/salaries.lang +++ b/htdocs/langs/ca_ES/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable per defecte per a pagament de salaris +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable per defecte per a despeses de personal Salary=Sou Salaries=Sous diff --git a/htdocs/langs/ca_ES/sendings.lang b/htdocs/langs/ca_ES/sendings.lang index 56c38826483..aa094084731 100644 --- a/htdocs/langs/ca_ES/sendings.lang +++ b/htdocs/langs/ca_ES/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Nota d'entrga ConfirmDeleteSending=Estàs segur que vols eliminar aquest enviament? ConfirmValidateSending=Estàs segur que vols validar aquest enviament amb referència %s? ConfirmCancelSending=Estàs segur que vols cancelar aquest enviament? -DocumentModelSimple=Model simple DocumentModelMerou=Model Merou A5 WarningNoQtyLeftToSend=Alerta, cap producte en espera d'enviament. StatsOnShipmentsOnlyValidated=Estadístiques realitzades únicament sobre les expedicions validades @@ -51,10 +50,10 @@ ActionsOnShipping=Events sobre l'expedició LinkToTrackYourPackage=Enllaç per al seguiment del seu paquet ShipmentCreationIsDoneFromOrder=De moment, la creació d'una nova expedició es realitza des de la fitxa de comanda. ShipmentLine=Línia d'expedició -ProductQtyInCustomersOrdersRunning=Quantitat de comandes de clients obertes -ProductQtyInSuppliersOrdersRunning=Quantitat de comandes a proveïdors obertes -ProductQtyInShipmentAlreadySent=Quantitat de productes de comandes de client obertes i enviades -ProductQtyInSuppliersShipmentAlreadyRecevied=Quantitat de comandes a proveïdors ja rebudes +ProductQtyInCustomersOrdersRunning=Quantitat de producte en comandes de clients obertes +ProductQtyInSuppliersOrdersRunning=Quantitat de producte en comandes de proveïdors obertes +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Quantitat de producte des de comandes de proveïdor obertes ja rebudes NoProductToShipFoundIntoStock=No s'ha trobat el producte per enviar en el magatzem %s. Corregeix l'estoc o torna enrera per triar un altre magatzem. WeightVolShort=Pes/Vol. ValidateOrderFirstBeforeShipment=S'ha de validar la comanda abans de fer expedicions. diff --git a/htdocs/langs/ca_ES/stocks.lang b/htdocs/langs/ca_ES/stocks.lang index 06def4d849e..5cbb392ecd6 100644 --- a/htdocs/langs/ca_ES/stocks.lang +++ b/htdocs/langs/ca_ES/stocks.lang @@ -53,7 +53,7 @@ IndependantSubProductStock=Estoc del producte i estoc del subproducte són indep QtyDispatched=Quantitat desglossada QtyDispatchedShort=Quant. rebuda QtyToDispatchShort=Quant. a enviar -OrderDispatch=Recepció d'estocs +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Regla per la reducció automàtica d'estoc (la reducció manual sempre és possible, excepte si hi ha una regla de reducció automàtica activada) RuleForStockManagementIncrease=Regla per l'increment automàtic d'estoc (l'increment manual sempre és possible, excepte si hi ha una regla d'increment automàtica activada) DeStockOnBill=Decrementar els estocs físics sobre les factures/abonaments a clients diff --git a/htdocs/langs/ca_ES/stripe.lang b/htdocs/langs/ca_ES/stripe.lang new file mode 100644 index 00000000000..89446f0705f --- /dev/null +++ b/htdocs/langs/ca_ES/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Les següents URL estan disponibles per a permetre a un client fer un cobrament en objectes de Dolibarr +PaymentForm=Formulari de pagament +WelcomeOnPaymentPage=Benvingut als nostres serveis de pagament en línia +ThisScreenAllowsYouToPay=Aquesta pantalla li permet fer el seu pagament en línia destinat a %s. +ThisIsInformationOnPayment=Aquí està la informació sobre el pagament a realitzar +ToComplete=A completar +YourEMail=E-mail de confirmació de pagament +STRIPE_PAYONLINE_SENDEMAIL=E-Mail a avisar en cas de pagament (amb èxit o no) +Creditor=Beneficiari +PaymentCode=Codi de pagament +StripeDoPayment=Continua el pagament amb targeta +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Continuar +ToOfferALinkForOnlinePayment=URL de pagament %s +ToOfferALinkForOnlinePaymentOnOrder=URL que ofereix una interfície de cobrament en línia %s basada en l'import d'una comanda de client +ToOfferALinkForOnlinePaymentOnInvoice=URL que ofereix una interfície de cobrament en línia %s basada en l'import d'una factura a client +ToOfferALinkForOnlinePaymentOnContractLine=URL que ofereix una interfície de pagament en línia %s basada en l'import d'una línia de contracte +ToOfferALinkForOnlinePaymentOnFreeAmount=URL que ofereix una interfície de pagament en línia %s basada en un impport llíure +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL que ofereix una interfície de pagament en línia %s per una quota de soci +YouCanAddTagOnUrl=També pot afegir el paràmetre url &tag=value per a qualsevol d'aquestes adreces (obligatori només per al pagament lliure) per veure el seu propi codi de comentari de pagament. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Aquesta pàgina confirma que el pagament s'ha registrat correctament. Gràcies. +YourPaymentHasNotBeenRecorded=El pagament no ha estat registrat i la transacció ha estat anul·lada. Gràcies. +AccountParameter=Paràmetres del compte +UsageParameter=Paràmetres d'ús +InformationToFindParameters=Informació per trobar la seva configuració de compte %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nom del venedor +CSSUrlForPaymentForm=Url del full d'estil CSS per al formulari de pagament +MessageOK=Missatge a la pàgina de retorn de pagament confirmat +MessageKO=Missatge a la pàgina de retorn de pagament cancel·lat +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ca_ES/supplier_proposal.lang b/htdocs/langs/ca_ES/supplier_proposal.lang index 73d7b8f0f0d..4974d7ded78 100644 --- a/htdocs/langs/ca_ES/supplier_proposal.lang +++ b/htdocs/langs/ca_ES/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Busca una petició DraftRequests=Peticions esborrany SupplierProposalsDraft=Pressupost de proveïdor esborrany LastModifiedRequests=Últimes %s peticions de preu modificades -RequestsOpened=Opened price requests +RequestsOpened=Obre una petició de preu SupplierProposalArea=Àrea de pressupostos de proveïdor SupplierProposalShort=Pressupost de proveïdor SupplierProposals=Pressupost de proveïdor @@ -23,7 +23,7 @@ ConfirmValidateAsk=Estàs segur que vols validar aquest preu de sol·licitud sot DeleteAsk=Elimina la petició ValidateAsk=Validar petició SupplierProposalStatusDraft=Esborrany (a validar) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validada (petició oberta) SupplierProposalStatusClosed=Tancat SupplierProposalStatusSigned=Acceptat SupplierProposalStatusNotSigned=Rebutjat @@ -47,7 +47,7 @@ CommercialAsk=Petició de preu DefaultModelSupplierProposalCreate=Model de creació per defecte DefaultModelSupplierProposalToBill=Model per defecte en tancar una petició de preu (acceptada) DefaultModelSupplierProposalClosed=Model per defecte en tancar una petició de preu (rebutjada) -ListOfSupplierProposal=Llistat de peticions de preu a proveïdor +ListOfSupplierProposals=Llistat de peticions de preu a proveïdor ListSupplierProposalsAssociatedProject=Llista de pressupostos de proveïdor associats al projecte SupplierProposalsToClose=Pressupostos de proveïdor a tancar SupplierProposalsToProcess=Pressupostos de proveïdor a processar diff --git a/htdocs/langs/ca_ES/suppliers.lang b/htdocs/langs/ca_ES/suppliers.lang index 1246758dfe4..3d994816200 100644 --- a/htdocs/langs/ca_ES/suppliers.lang +++ b/htdocs/langs/ca_ES/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total dels preus de venda de subproductes SomeSubProductHaveNoPrices=Alguns subproductes no tenen preus definits AddSupplierPrice=Afegeix preu de compra ChangeSupplierPrice=Canvia el preu de compra +SupplierPrices=Preus de proveïdor ReferenceSupplierIsAlreadyAssociatedWithAProduct=Aquesta referència de proveïdor ja està associada a la referència: %s NoRecordedSuppliers=Sense proveïdors registrats SupplierPayment=Pagament a proveïdor @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Qualitat incorrecte ReputationForThisProduct=Reputació BuyerName=Nom del comprador AllProductServicePrices=Tots els preus de producte / servei +BuyingPriceNumShort=Preus de proveïdor diff --git a/htdocs/langs/ca_ES/trips.lang b/htdocs/langs/ca_ES/trips.lang index edad7afd817..ccb84bdda26 100644 --- a/htdocs/langs/ca_ES/trips.lang +++ b/htdocs/langs/ca_ES/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Llistat notes de honoraris TypeFees=Tipus de despeses ShowTrip=Mostra l'informe de despeses NewTrip=Nou informe de despeses -CompanyVisited=Empresa/entitat visitada +CompanyVisited=Empresa/organització visitada FeesKilometersOrAmout=Import o quilòmetres DeleteTrip=Eliminar informe de despeses ConfirmDeleteTrip=Estàs segur que vols eliminar aquest informe de despeses? @@ -70,6 +70,7 @@ DATE_SAVE=Data de validació DATE_CANCEL=Data de cancelació DATE_PAIEMENT=Data de pagament BROUILLONNER=Reobrir +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validar i sotmetre a aprovació ValidatedWaitingApproval=Validat (pendent d'aprovació) NOT_AUTHOR=No ets l'autor d'aquest informe de despeses. L'operació s'ha cancelat. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No hi ha informe de despeses per exportar en aquest període ExpenseReportPayment=Informe de despeses pagades ExpenseReportsToApprove=Informes de despeses per aprovar ExpenseReportsToPay=Informes de despeses a pagar -CloneExpenseReport=Clona el informe de despeses +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Estàs segur de voler clonar aquest informe de despeses ? diff --git a/htdocs/langs/ca_ES/users.lang b/htdocs/langs/ca_ES/users.lang index 58cad7db8ff..dcd49b2e7d9 100644 --- a/htdocs/langs/ca_ES/users.lang +++ b/htdocs/langs/ca_ES/users.lang @@ -66,8 +66,8 @@ InternalUser=Usuari intern ExportDataset_user_1=Usuaris Dolibarr i propietats DomainUser=Usuari de domini Reactivate=Reactivar -CreateInternalUserDesc=Aquest formulari li permet crear un usuari intern de la seva empresa/entitat. Per crear un usuari extern (clients, proveïdors, ...), utilitzeu el botó 'Crear usuari de Dolibarr' a la fitxa de contacte del tercer. -InternalExternalDesc=Un usuari intern és un usuari que pertany a la teva empresa/entitat.
Un usuariextern és un usuari client, proveïdor o un altre.

En els 2 casos, els permisos d'usuari defineixen els drets d'accés, però l'usuari extern pot a més tenir un gestor de menús diferent a l'usuari intern (vegeu Inici - Configuració - Entorn) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=El permís es concedeix ja que ho hereta d'un grup al qual pertany l'usuari. Inherited=Heretat UserWillBeInternalUser=L'usuari creat serà un usuari intern (ja que no està lligat a un tercer en particular) diff --git a/htdocs/langs/ca_ES/website.lang b/htdocs/langs/ca_ES/website.lang index a12ff633d07..dcf3374c874 100644 --- a/htdocs/langs/ca_ES/website.lang +++ b/htdocs/langs/ca_ES/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Estàs segur de voler elimiar aquesta pàgina web? També s WEBSITE_PAGENAME=Nom/alies de pàgina WEBSITE_CSS_URL=URL del fitxer CSS extern WEBSITE_CSS_INLINE=Contingut CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Llibreria Media EditCss=Edita estil/CSS EditMenu=Edita menú @@ -14,8 +15,9 @@ EditPageContent=Edita contingut Website=Lloc web Webpage=Pàgina web AddPage=Afegeix pàgina +HomePage=Home Page PreviewOfSiteNotYetAvailable=La previsualització del teu lloc web %s encara no està disponible. Primer has d'afegir una pàgina. -RequestedPageHasNoContentYet=La pàgina solicitada amb id %s encara no té contingut o el fitxer cau .tpl.php s'ha eliminat. Edita el contingut de la pàgina per solucionar-ho. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=La pàgina '%s' del lloc web %s s'ha eliminat PageAdded=Pàgina '%s' afegida ViewSiteInNewTab=Mostra el lloc en una nova pestanya @@ -23,6 +25,7 @@ ViewPageInNewTab=Mostra la pàgina en una nova pestanya SetAsHomePage=Indica com a Pàgina principal RealURL=URL real ViewWebsiteInProduction=Mostra la pàgina web utilitzant les URLs d'inici -SetHereVirtualHost=Si pots posar, sobre el teu servidor web, un "host" virtual dedicat amb un directori arrel sobre %s, defineix aquí el nom del host virtual. Així la vista pot ser feta utilitzant també l'accés directe al servidor web i no només utilitzant el servidor Dolibarr. -PreviewSiteServedByWebServer=Vista %s a una nova llengüeta. La %s serà servida per un servidor web extern (tal com Apache, Nginx, IIS). Deus instal·lar i posar en marxa aquest servidor abans.
URL de %s servit per un servidor extern:
%s -PreviewSiteServedByDolibarr=Vista %s a una nova llengüeta. La %s serà servida per un servidor Dolibarr, d'aquesta manera no hi ha necessitat d'instal·lar cap servidor web extra (tal com Apache, Nginx, IIS).
L'inconvenient és que l'URL de les pàgines estan emprant trajectòries del teu Dolibarr.
URL del %s servit per Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ca_ES/withdrawals.lang b/htdocs/langs/ca_ES/withdrawals.lang index 83455a5ed7b..723dd04967a 100644 --- a/htdocs/langs/ca_ES/withdrawals.lang +++ b/htdocs/langs/ca_ES/withdrawals.lang @@ -17,14 +17,14 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factura de client amb pagament per domic InvoiceWaitingWithdraw=Factura esperant per domiciliació bancària AmountToWithdraw=Import a domiciliar WithdrawsRefused=Domiciliació bancària refusada -NoInvoiceToWithdraw=Cap factura a client amb mode de pagament 'Domiciliació' en espera. Anar a la pestanya 'Domiciliació' a la fitxa de la factura per fer una petició. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Usuari responsable de les domiciliacions WithdrawalsSetup=Configuració del pagament mitjançant domiciliació bancària WithdrawStatistics=Estadístiques del pagament mitjançant domiciliació bancària WithdrawRejectStatistics=Configuració del rebutj de pagament per domiciliació bancària LastWithdrawalReceipt=Últims %s rebuts domiciliats MakeWithdrawRequest=Fer una petició de pagament per domiciliació bancària -WithdrawRequestsDone=%s direct debit payment requests recorded +WithdrawRequestsDone=%s domiciliacions registrades ThirdPartyBankCode=Codi banc del tercer NoInvoiceCouldBeWithdrawed=No s'ha domiciliat cap factura. Assegureu-vos que les factures són d'empreses amb les dades de comptes bancaris correctes. ClassCredited=Classificar com "Abonada" @@ -41,6 +41,7 @@ RefusedReason=Motiu de devolució RefusedInvoicing=Facturació de la devolució NoInvoiceRefused=No facturar la devolució InvoiceRefused=Factura rebutjada (Carregar les despeses al client) +StatusDebitCredit=Status debit/credit StatusWaiting=En espera StatusTrans=Enviada StatusCredited=Abonada @@ -77,8 +78,8 @@ RUM=UMR RUMLong=Referència de mandat única (UMR) RUMWillBeGenerated=Número UMR serà generat un cop la informació del compte bancària està salvada WithdrawMode=Modo de domiciliació bancària (FRST o RECUR) -WithdrawRequestAmount=Amount of Direct debit request: -WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. +WithdrawRequestAmount=Import de la domiciliació +WithdrawRequestErrorNilAmount=No és possible crear una domiciliació sense import SepaMandate=Mandat de domiciliació bancària SEPA SepaMandateShort=Mandat SEPA PleaseReturnMandate=Si us plau retorna aquest formulari de mandat per correu a %s o per mail a diff --git a/htdocs/langs/cs_CZ/accountancy.lang b/htdocs/langs/cs_CZ/accountancy.lang index 28a0a58805e..7746d579ab6 100644 --- a/htdocs/langs/cs_CZ/accountancy.lang +++ b/htdocs/langs/cs_CZ/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Přehled množství linek již vázán na účetnic OtherInfo=Jiná informace DeleteCptCategory=Odebrat účtování účet ze skupiny ConfirmDeleteCptCategory=Jste si jisti, že chcete odstranit tento účetní účet ze skupiny účetního účtu? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Oblast účetnictví AccountancyAreaDescIntro=Využití evidence modulu se provádí v několika kroku: @@ -62,7 +63,6 @@ Addanaccount=Přidat účetní účet AccountAccounting=Účetní účet AccountAccountingShort=Účet SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Zobrazit účetní deník AccountAccountingSuggest=Účetní účet navrhl @@ -79,6 +79,7 @@ SuppliersVentilation=Dodavatelská faktura je závazná ExpenseReportsVentilation=Náklady zpráva vázání CreateMvts=Vytvořit novou transakci UpdateMvts=Modifikace transakce +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Zůstatek na účtu @@ -142,6 +143,7 @@ NumPiece=počet kusů TransactionNumShort=Num. transakce AccountingCategory=Skupiny účetnictví účtů GroupByAccountAccounting=Skupina účetním účtu +ByAccounts=By accounts NotMatch=Nenastaveno DeleteMvt=Delete Ledger lines DelYear=Odstrannění roku @@ -214,12 +216,14 @@ AccountingJournalType1=Různé operace AccountingJournalType2=Odbyt AccountingJournalType3=Nákupy AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Má-new ErrorAccountingJournalIsAlreadyUse=Tento deník se již používá ## Export Exports=Exporty Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model exportu OptionsDeactivatedForThisExportModel=Možnosti pro tento exportní model jsou deaktivovány Selectmodelcsv=Vyberte způsob exportu diff --git a/htdocs/langs/cs_CZ/admin.lang b/htdocs/langs/cs_CZ/admin.lang index 816a6e4ef38..0e27050ee19 100644 --- a/htdocs/langs/cs_CZ/admin.lang +++ b/htdocs/langs/cs_CZ/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Požadavek dodavatel obchodní návrh a ceny Module1200Name=Mantis Module1200Desc=Mantis integrace Module1400Name=Účetnictví -Module1400Desc=Vedení účetnictví (dvojité strany) +Module1400Desc=Accounting management (double entries) Module1520Name=Dokument Generation Module1520Desc=Hromadná pošta generování dokumentů Module1780Name=Tagy/Kategorie @@ -585,7 +585,7 @@ Module50100Desc=Bod prodejního modulu (POS). Module50200Name=Paypal Module50200Desc=Modul nabídnout on-line platby kreditní kartou stránku s Paypal Module50400Name=Účetnictví (pokročilé) -Module50400Desc=Manažerské účetnictví (dvojité strany) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Přímý tisk (bez otevření dokumentů) pomocí poháry IPP rozhraní (tiskárna musí být viditelné ze serveru, a CUPS musí být installe na serveru). Module55000Name=Anketa, průzkum nebo hlasování diff --git a/htdocs/langs/cs_CZ/agenda.lang b/htdocs/langs/cs_CZ/agenda.lang index f05251a30d6..3865906450f 100644 --- a/htdocs/langs/cs_CZ/agenda.lang +++ b/htdocs/langs/cs_CZ/agenda.lang @@ -13,7 +13,7 @@ Events=Události EventsNb=Počet událostí ListOfActions=Seznam událostí Location=Umístění -ToUserOfGroup=To any user in group +ToUserOfGroup=Každému uživateli ve skupině EventOnFullDay=Událost pro celý den (y) MenuToDoActions=Všechny neúplné události MenuDoneActions=Všechny ukončené události @@ -28,14 +28,14 @@ ViewCal=Měsíční zobrazení ViewDay=Denní zobrazení ViewWeek=Týdenní zobrazení ViewPerUser=Zobrazení za uživatele -ViewPerType=Per type view +ViewPerType=Per view typu AutoActions= Automatické naplnění -AgendaAutoActionDesc= Define here events for which you want Dolibarr to create automatically an event in agenda. If nothing is checked, only manual actions will be included in logged and visible into agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. +AgendaAutoActionDesc= Definujte zde události, pro které chcete vytvořit automaticky událost v programu. Pokud není ve výchozím nastavení zaškrtnuta, budou zahrnuty pouze manuální akce v agendě. Automatické sledování obchodních činností provedených na objektech (validace, změna stavu), nebudou uloženy. AgendaSetupOtherDesc= Tato stránka poskytuje možnosti, jak povolit export vašich akcí do externího kalendáře (Thunderbird, Google kalendář, ...) AgendaExtSitesDesc=Tato stránka umožňuje deklarovat externí zdroje kalendářů pro možnost vidět své akce v agendách programu. ActionsEvents=Události, pro které Dolibarr vytvoří akci v programu automaticky ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created +NewCompanyToDolibarr=Subjekt %s vytvořen ContractValidatedInDolibarr=Kontrakt %s ověřen PropalClosedSignedInDolibarr=Nabídka %s podepsána PropalClosedRefusedInDolibarr=Nabídka %s odmítnuta @@ -48,14 +48,15 @@ InvoiceDeleteDolibarr=Faktura %s smazána InvoicePaidInDolibarr=Faktura %s změněna na zaplacenou InvoiceCanceledInDolibarr=Faktura %s zrušena MemberValidatedInDolibarr=Uživatel %s ověřen -MemberResiliatedInDolibarr=Member %s terminated +MemberModifiedInDolibarr=Uživatel %s upraven +MemberResiliatedInDolibarr=Členské %s ukončeno MemberDeletedInDolibarr=Uživatel %s smazán MemberSubscriptionAddedInDolibarr=Předplatné pro člena %s přidáno ShipmentValidatedInDolibarr=Doprava %s ověřena -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Zásilka %s klasifikováno účtoval +ShipmentUnClassifyCloseddInDolibarr=Zásilka %s klasifikováno znovuotevření ShipmentDeletedInDolibarr=Doprava %s odstraněna -OrderCreatedInDolibarr=Order %s created +OrderCreatedInDolibarr=Objednat %s vytvořil OrderValidatedInDolibarr=Objednávka %s ověřena OrderDeliveredInDolibarr=Objednávka %s označena jako dodaná OrderCanceledInDolibarr=Objednávka %s zrušena @@ -71,19 +72,23 @@ SupplierInvoiceSentByEMail=Dodavatelská faktura %s zaslána e-mailem ShippingSentByEMail=Zásilka %s zaslána na e-mail ShippingValidated= Zásilka %s ověřena InterventionSentByEMail=Intervenceí %s zaslána e-mailem -ProposalDeleted=Proposal deleted -OrderDeleted=Order deleted -InvoiceDeleted=Invoice deleted +ProposalDeleted=Návrh odstraněn +OrderDeleted=Příkaz odstraněn +InvoiceDeleted=faktura smazána +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Datum zahájení DateActionEnd=Datum ukončení AgendaUrlOptions1=Můžete také přidat následující parametry filtrování výstupu: -AgendaUrlOptions2=login=%s omezuje výstup do akcí vytvořených nebo přiřazených uživateli %s. AgendaUrlOptions3=logina=%s omezuje výstup na akce vlastněné uživatelem %s. -AgendaUrlOptions4=logint = %s omezit výstup na akce přiřazených uživatelských %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=projekt=PROJECT_ID omezit výstup na akce spojené s projektem PROJECT_ID. -AgendaShowBirthdayEvents=Show birthdays of contacts -AgendaHideBirthdayEvents=Hide birthdays of contacts +AgendaShowBirthdayEvents=Zobrazit narozeniny kontaktů +AgendaHideBirthdayEvents=Skrýt narozeniny kontaktů Busy=Zaneprázdněný ExportDataset_event1=Seznam agendy událostí DefaultWorkingDays=Výchozí pracovní dny se pohybují v týdnu. (Příklad: 1-5, 1-6) @@ -96,17 +101,17 @@ ExtSitesNbOfAgenda=Počet kalendářů AgendaExtNb=Kalendář nb %s ExtSiteUrlAgenda=URL pro přístup *.iCal souboru ExtSiteNoLabel=Nepodepsáno -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range +VisibleTimeRange=Viditelný časový rozsah +VisibleDaysRange=Rozsah viditelné dny AddEvent=Vytvořit událost MyAvailability=Moje dostupnost ActionType=Typ události DateActionBegin=Datum zahájení události -CloneAction=Clone event -ConfirmCloneEvent=Are you sure you want to clone the event %s? -RepeatEvent=Repeat event -EveryWeek=Every week -EveryMonth=Every month -DayOfMonth=Day of month -DayOfWeek=Day of week -DateStartPlusOne=Date start + 1 hour +CloneAction=Klonovat událost +ConfirmCloneEvent=Jste si jisti, že chcete naklonovat událost %s ? +RepeatEvent=Opakujte akci +EveryWeek=Každý týden +EveryMonth=Každý měsíc +DayOfMonth=Den v měsíci +DayOfWeek=Den v týdnu +DateStartPlusOne=Datum zahájení + 1 hodina diff --git a/htdocs/langs/cs_CZ/banks.lang b/htdocs/langs/cs_CZ/banks.lang index 3eca7a45711..aeaa58c12e3 100644 --- a/htdocs/langs/cs_CZ/banks.lang +++ b/htdocs/langs/cs_CZ/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID transakce BankTransactions=Bank entries +BankTransaction=Bankovní transakce ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New různé platební +VariousPayment=Různé platební +VariousPayments=různé platby +ShowVariousPayment=Ukazují různé platby diff --git a/htdocs/langs/cs_CZ/bills.lang b/htdocs/langs/cs_CZ/bills.lang index a8a7c66f627..af1f08a705b 100644 --- a/htdocs/langs/cs_CZ/bills.lang +++ b/htdocs/langs/cs_CZ/bills.lang @@ -1,17 +1,17 @@ # Dolibarr language file - Source file is en_US - bills Bill=Faktura Bills=Faktury -BillsCustomers=Customer invoices +BillsCustomers=faktury zákazníků BillsCustomer=Faktura zákazníka -BillsSuppliers=Supplier invoices +BillsSuppliers=Dodavatelské faktury BillsCustomersUnpaid=Nezaplacené faktury zákazníků -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Nezaplacené faktury zákazníků na %s BillsSuppliersUnpaid=Nezaplacené faktury dodavatelů -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Nezaplacené faktury dodavatele pro %s BillsLate=Opožděné platby BillsStatistics=Statistiky zákaznických faktur BillsStatisticsSuppliers=Statistiky dodavatelských faktur -DisabledBecauseNotErasable=Disabled because cannot be erased +DisabledBecauseNotErasable=Zakázáno, protože nelze odstranit InvoiceStandard=Standardní faktura InvoiceStandardAsk=Standardní faktura InvoiceStandardDesc=Tento druh faktury je obyčejná faktura. @@ -41,7 +41,7 @@ ConsumedBy=Spotřebované NotConsumed=Nebylo spotřebováno NoReplacableInvoice=Žádné faktury k výměně NoInvoiceToCorrect=Źádné faktury k opravě -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Byl zdrojem jednoho nebo několika dobropisy CardBill=Karta faktury PredefinedInvoices=Předdefinované faktury Invoice=Faktura @@ -59,11 +59,11 @@ PaymentBack=Vrácení platby CustomerInvoicePaymentBack=Vrácení platby Payments=Platby PaymentsBack=Vrácení plateb -paymentInInvoiceCurrency=in invoices currency +paymentInInvoiceCurrency=V faktur měně PaidBack=Navrácené DeletePayment=Odstranit platby ConfirmDeletePayment=Jste si jisti, že chcete smazat tuto platbu? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReduc=Chcete převést tento %s do absolutního slevou?
částka bude tak možné uložit mezi všemi slevy a mohl by být použit jako sleva na současný nebo budoucí faktury pro tohoto zákazníka. SupplierPayments=Platby dodavatelům ReceivedPayments=Přijaté platby ReceivedCustomersPayments=Platby přijaté od zákazníků @@ -75,11 +75,11 @@ PaymentsAlreadyDone=Provedené platby PaymentsBackAlreadyDone=Provedené platby zpět PaymentRule=Pravidlo platby PaymentMode=Typ platby -PaymentTypeDC=Debit/Credit Card +PaymentTypeDC=Debetní / kreditní karty PaymentTypePP=PayPal -IdPaymentMode=Payment type (id) -CodePaymentMode=Payment type (code) -LabelPaymentMode=Payment type (label) +IdPaymentMode=typ platby (id) +CodePaymentMode=typ platby (kód) +LabelPaymentMode=Způsob platby (označení) PaymentModeShort=Typ platby PaymentTerm=Termín platby PaymentConditions=Platební podmínky @@ -103,36 +103,36 @@ SearchACustomerInvoice=Hledat zákaznickou fakturu SearchASupplierInvoice=Hledat dodavatelskou fakturu CancelBill=Storno faktury SendRemindByMail=Poslat upomínku e-mailem -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=zadat platbu +DoPaymentBack=Vraťte platbu ConvertToReduc=Převod do budoucí slevy -ConvertExcessReceivedToReduc=Convert excess received into future discount +ConvertExcessReceivedToReduc=Převést přebytek dostal do budoucnosti slevou EnterPaymentReceivedFromCustomer=Zadejte platbu obdrženoou od zákazníka EnterPaymentDueToCustomer=Provést platbu pro zákazníka DisabledBecauseRemainderToPayIsZero=Zakázáno, protože zbývající nezaplacená částka je nula PriceBase=Základní cena BillStatus=Stav faktury -StatusOfGeneratedInvoices=Status of generated invoices +StatusOfGeneratedInvoices=Status vygenerovaných faktur BillStatusDraft=Návrh (musí být ověřeno) BillStatusPaid=Placeno -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Náhrada kreditu nebo převod na slevu BillStatusConverted=Placeno (připraveno na závěrečné faktuře) BillStatusCanceled=Opuštěno BillStatusValidated=Ověřeno (je třeba uhradit) BillStatusStarted=Začínáme BillStatusNotPaid=Nezaplaceno -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=nevrací BillStatusClosedUnpaid=Uzavřeno (neuhrazené) BillStatusClosedPaidPartially=Placeno (částečně) BillShortStatusDraft=Návrh BillShortStatusPaid=Placeno -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Zpracované +BillShortStatusPaidBackOrConverted=Vrácení nebo převedeny +BillShortStatusConverted=Placeno BillShortStatusCanceled=Opuštěno BillShortStatusValidated=Ověřeno BillShortStatusStarted=Začínáme BillShortStatusNotPaid=Nezaplaceno -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=nevrací BillShortStatusClosedUnpaid=Zavřeno BillShortStatusClosedPaidPartially=Placeno (částečně) PaymentStatusToValidShort=Chcete-li ověřit @@ -148,28 +148,28 @@ ErrorCantCancelIfReplacementInvoiceNotValidated=Chyba, nelze zrušit, pokud fakt BillFrom=Z BillTo=Na ActionsOnBill=Akce na faktuře -RecurringInvoiceTemplate=Template/Recurring invoice -NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified for generation. -FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. -NotARecurringInvoiceTemplate=Not a recurring template invoice +RecurringInvoiceTemplate=Template / Opakovaná faktura +NoQualifiedRecurringInvoiceTemplateFound=Žádné opakující se šablona faktury kvalifikoval generaci. +FoundXQualifiedRecurringInvoiceTemplate=Nalezeno %s opakující šablony fakturu (y) schválené pro generaci. +NotARecurringInvoiceTemplate=Nejedná se o opakující se šablona faktury NewBill=Nová faktura -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Nejnovější %s faktury +LastCustomersBills=Poslední faktury %s zákazníků +LastSuppliersBills=Poslední %s dodavatelé faktury AllBills=Všechny faktury OtherBills=Ostatní faktury DraftBills=Návrhy faktury -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Návrh zákaznické faktury +SuppliersDraftInvoices=Návrh dodavatelské faktury Unpaid=Nezaplaceno -ConfirmDeleteBill=Are you sure you want to delete this invoice? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? +ConfirmDeleteBill=Jste si jisti, že chcete smazat tuto fakturu? +ConfirmValidateBill=Opravdu chcete tuto fakturu ověřit pomocí odkazu %s ? +ConfirmUnvalidateBill=Jste si jisti, že chcete změnit fakturu %s do stavu návrhu? +ConfirmClassifyPaidBill=Jste si jisti, že chcete změnit fakturu %s do stavu uhrazeno? +ConfirmCancelBill=Jste si jisti, že chcete zrušit fakturu %s? +ConfirmCancelBillQuestion=Proč chcete klasifikovat fakturu jako 'opuštěnou' ? +ConfirmClassifyPaidPartially=Jste si jisti, že chcete změnit fakturu %s do stavu uhrazeno? +ConfirmClassifyPaidPartiallyQuestion=Tato faktura nebyla zaplacena úplně. Z jakých důvodů chcete uzavřít tuto fakturu? ConfirmClassifyPaidPartiallyReasonAvoir=Zbývající neuhrazené (%s %s), je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Opravte částku DPH dobropisem. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Zbývající neuhrazené (%s %s), je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Souhlasím se ztrátou DPH z této slevy. ConfirmClassifyPaidPartiallyReasonDiscountVat=Zbývající neuhrazené (%s %s), je poskytnutá sleva, protože platba byla provedena před termínem splatnosti. Vrátím zpět DPH na této slevě bez dobropisu @@ -184,22 +184,22 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Tato volba se používá k ConfirmClassifyPaidPartiallyReasonOtherDesc=Použijte tuto volbu, pokud se všechny ostatní nehodí, například v následujících situacích:
- Platba není kompletní, protože některé výrobky byly vráceny
- Nárokovaná částka je příliš důležitá, protože sleva nebyla uplatněna
Ve všech případech, kdy se částka liší od nárokované, musí být provedena oprava v systému evidence vytvořením dobropisu. ConfirmClassifyAbandonReasonOther=Ostatní ConfirmClassifyAbandonReasonOtherDesc=Tato volba se používá ve všech ostatních případech. Například proto, že máte v plánu vytvořit nahrazující fakturu. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmCustomerPayment=Potvrdíte tento vstup platby pro %s %s? +ConfirmSupplierPayment=Potvrdíte tento vstup platby pro %s %s? +ConfirmValidatePayment=Jste si jisti, že chcete ověřit tuto platbu? Po ověření platby už nebudete moci provést žádnou změnu. ValidateBill=Ověřit fakturu UnvalidateBill=Neověřit fakturu NumberOfBills=Nb faktur NumberOfBillsByMonth=Nb faktury měsíce AmountOfBills=Částka faktur AmountOfBillsByMonthHT=Čýstka faktur měsíčně (bez daně) -ShowSocialContribution=Show social/fiscal tax +ShowSocialContribution=Ukázat společenský / fiskální daň ShowBill=Zobrazit fakturu ShowInvoice=Zobrazit fakturu ShowInvoiceReplace=Zobrazit opravenou fakturu ShowInvoiceAvoir=Zobrazit dobropis ShowInvoiceDeposit=Zobrazit zálohovou fakturu -ShowInvoiceSituation=Show situation invoice +ShowInvoiceSituation=Show situace faktura ShowPayment=Zobrazit platbu AlreadyPaid=Již zaplacené AlreadyPaidBack=Již vrácené platby @@ -207,7 +207,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Již zaplacené (bez dobropisů a vkladů) Abandoned=Opuštěné RemainderToPay=Zbývající nezaplacené RemainderToTake=Zbývající částku, která se -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Zbývající částku vrátit Rest=Čeká AmountExpected=Nárokovaná částka ExcessReceived=Přeplatek obdržel @@ -215,8 +215,8 @@ EscompteOffered=Nabídnutá sleva (platba před termínem) EscompteOfferedShort=Sleva SendBillRef=Předložení faktury %s SendReminderBillRef=Předložení faktury %s (upomínka) -StandingOrders=Direct debit orders -StandingOrder=Direct debit order +StandingOrders=příkazy k inkasu +StandingOrder=Trvalý příkaz NoDraftBills=Žádné návrhy faktury NoOtherDraftBills=Žádné jiné návrhy faktury NoDraftInvoices=Žádné návrhy faktury @@ -226,11 +226,11 @@ RemainderToBill=Zbývající část k placení SendBillByMail=Poslat e-mailem fakturu SendReminderBillByMail=Poslat upozornění e-mailem RelatedCommercialProposals=Související obchodní návrhy -RelatedRecurringCustomerInvoices=Related recurring customer invoices +RelatedRecurringCustomerInvoices=Související opakující faktury zákazníků MenuToValid=Platné DateMaxPayment=Platba musí proběhnout do DateInvoice=Fakturační datum -DatePointOfTax=Point of tax +DatePointOfTax=Bod daně NoInvoice=Žádná faktura ClassifyBill=Klasifikovat fakturu SupplierBillsToPay=Nezaplacené faktury dodavatelů @@ -238,9 +238,9 @@ CustomerBillsUnpaid=Nezaplacené faktury zákazníků NonPercuRecuperable=Nevratná SetConditions=Nastavení platebních podmínek SetMode=Nastavit platební režim -SetRevenuStamp=Set revenue stamp +SetRevenuStamp=Sada razítko příjmy Billed=Účtováno -RecurringInvoices=Recurring invoices +RecurringInvoices=opakující faktury RepeatableInvoice=Šablona faktury RepeatableInvoices=Šablony faktur Repeatable=Šablona @@ -270,27 +270,27 @@ RelativeDiscount=Relativní sleva GlobalDiscount=Globální sleva CreditNote=Dobropis CreditNotes=Dobropisy -Deposit=Vklad -Deposits=Vklady +Deposit=Záloha +Deposits=Zálohy DiscountFromCreditNote=Sleva z %s dobropisu -DiscountFromDeposit=Platby z %s zze zálohové faktury -DiscountFromExcessReceived=Payments from excess received of invoice %s +DiscountFromDeposit=Zálohy plateb od vystavení faktury %s +DiscountFromExcessReceived=Platby z přebytku přijaté faktury %s AbsoluteDiscountUse=Tento druh úvěru je možné použít na faktuře před jeho ověřením -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=Faktura musí být ověřena, aby používaly tento druh úvěrů NewGlobalDiscount=Nová absolutní sleva NewRelativeDiscount=Nová relativní sleva NoteReason=Poznámka/důvod ReasonDiscount=Důvod DiscountOfferedBy=Poskytnuté -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=slevy +DiscountAlreadyCounted=Slevy již spotřebována BillAddress=Účetní adresa HelpEscompte=Tato sleva je sleva poskytnuta zákazníkovi, protože jeho platba byla provedena před termínem splatnosti. HelpAbandonBadCustomer=Tato částka byla opuštěna (zákazník řekl, aby byl špatný zákazník) a je považována za výjimečně volnou. HelpAbandonOther=Tato částka byla opuštěna, protože došlo k chybě (například špatný zákazník nebo faktura nahrazena jinou) -IdSocialContribution=Social/fiscal tax payment id +IdSocialContribution=Sociální / fiskální odvod id PaymentId=ID platby -PaymentRef=Payment ref. +PaymentRef=Platba ref. InvoiceId=ID faktury InvoiceRef=Faktura čj. InvoiceDateCreation=Datum vytvoření faktury @@ -302,15 +302,15 @@ RemoveDiscount=Odebrat slevu WatermarkOnDraftBill=Vodoznak k návrhům faktur (prázdný, pokud není nic vloženo) InvoiceNotChecked=Není vybrána žádná faktura CloneInvoice=Kopírovat fakturu -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Jste si jisti, že chcete kopírovat tuto fakturu %s ? DisabledBecauseReplacedInvoice=Akce zakázána, protože faktura byla nahrazena -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here. +DescTaxAndDividendsArea=Tato oblast představuje souhrn všech plateb za zvláštní výdaje. Nahrávat pouze s platbou v průběhu stanoveného období jsou zde zahrnuty. NbOfPayments=Nějaké platby SplitDiscount=Rozdělit slevu na dvě -ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into 2 lower discounts? +ConfirmSplitDiscount=Jste si jisti, že chcete rozdělit tuto slevu ve výši %s %s do 2 nižších slev? TypeAmountOfEachNewDiscount=Vstupní hodnota pro každou ze dvou částí: TotalOfTwoDiscountMustEqualsOriginal=Celkem dvě nové slevy musí být rovny původní částce slevy. -ConfirmRemoveDiscount=Are you sure you want to remove this discount? +ConfirmRemoveDiscount=Jste si jisti, že chcete odstranit tuto slevu? RelatedBill=Související faktura RelatedBills=Související faktury RelatedCustomerInvoices=Související faktury zákazníka @@ -318,79 +318,79 @@ RelatedSupplierInvoices=Související faktury dodavatele LatestRelatedBill=Nejnovější související faktura WarningBillExist=Varování, jedna nebo více faktur již existují MergingPDFTool=Nástroj pro spojení PDF -AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice -PaymentOnDifferentThirdBills=Allow payments on different thirdparties bills but same parent company -PaymentNote=Payment note -ListOfPreviousSituationInvoices=List of previous situation invoices -ListOfNextSituationInvoices=List of next situation invoices -FrequencyPer_d=Every %s days -FrequencyPer_m=Every %s months -FrequencyPer_y=Every %s years -toolTipFrequency=Examples:
Set 7, Day: give a new invoice every 7 days
Set 3, Month: give a new invoice every 3 month -NextDateToExecution=Date for next invoice generation -DateLastGeneration=Date of latest generation -MaxPeriodNumber=Max nb of invoice generation -NbOfGenerationDone=Nb of invoice generation already done -MaxGenerationReached=Maximum nb of generations reached -InvoiceAutoValidate=Validate invoices automatically -GeneratedFromRecurringInvoice=Generated from template recurring invoice %s -DateIsNotEnough=Date not reached yet -InvoiceGeneratedFromTemplate=Invoice %s generated from recurring template invoice %s -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +AmountPaymentDistributedOnInvoice=Výše platby distribuován na faktuře +PaymentOnDifferentThirdBills=Povolit platby na různých subjektů účty, ale stejnou mateřskou společností +PaymentNote=platba poznámka +ListOfPreviousSituationInvoices=Seznam předchozí situace faktur +ListOfNextSituationInvoices=Seznam dalších situace faktur +FrequencyPer_d=Každých %s dny +FrequencyPer_m=Každých %s měsíce +FrequencyPer_y=Každých %s let +toolTipFrequency=Příklady:
Sada 7, den : dát novou fakturu každých 7 dní
Sada 3 měsíce : dát novou fakturu každé 3 měsíce +NextDateToExecution=Datum pro příští generaci faktury +DateLastGeneration=Datum poslední generace +MaxPeriodNumber=Max nb faktury generace +NbOfGenerationDone=Nb faktury generace už skončil +MaxGenerationReached=Maximální nb generací dosáhl +InvoiceAutoValidate=Ověřovat faktury automaticky +GeneratedFromRecurringInvoice=Generován z šablony opakující faktury %s +DateIsNotEnough=Datum ještě nebylo dosaženo +InvoiceGeneratedFromTemplate=Faktura %s generována z opakující se šablona faktury %s +WarningInvoiceDateInFuture=Varování je datum vystavení faktury je vyšší než aktuální datum +WarningInvoiceDateTooFarInFuture=Varování je datum vystavení faktury je příliš daleko od aktuálního data # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Splatné k datu přijetí +PaymentConditionRECEP=Splatné k datu přijetí PaymentConditionShort30D=30 dnů PaymentCondition30D=30 dnů -PaymentConditionShort30DENDMONTH=30 days of month-end -PaymentCondition30DENDMONTH=Within 30 days following the end of the month +PaymentConditionShort30DENDMONTH=30 dnů po konci měsíce +PaymentCondition30DENDMONTH=Do 30 dnů po skončení měsíce, PaymentConditionShort60D=60 dnů PaymentCondition60D=60 dnů -PaymentConditionShort60DENDMONTH=60 days of month-end -PaymentCondition60DENDMONTH=Within 60 days following the end of the month +PaymentConditionShort60DENDMONTH=60 dní konci měsíce +PaymentCondition60DENDMONTH=Do 60 dnů od konce měsíce PaymentConditionShortPT_DELIVERY=Dodání PaymentConditionPT_DELIVERY=Na dobírku PaymentConditionShortPT_ORDER=Pořadí PaymentConditionPT_ORDER=Na objednávku PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% předem, 50%% při dodání -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month +PaymentConditionShort10D=10 dní +PaymentCondition10D=10 dní +PaymentConditionShort10DENDMONTH=10 dní konci měsíce +PaymentCondition10DENDMONTH=Do 10 dnů po skončení měsíce, +PaymentConditionShort14D=14 dní +PaymentCondition14D=14 dní +PaymentConditionShort14DENDMONTH=14 dní konci měsíce +PaymentCondition14DENDMONTH=Do 14 dnů po skončení měsíce, FixAmount=Pevné množství VarAmount=Variabilní částka (%% celk.) # PaymentType PaymentTypeVIR=Bankovní převod PaymentTypeShortVIR=Bankovní převod -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Platba inkasem platební příkaz +PaymentTypeShortPRE=Debetní platební příkaz PaymentTypeLIQ=Hotovost PaymentTypeShortLIQ=Hotovost PaymentTypeCB=Kreditní karta PaymentTypeShortCB=Kreditní karta PaymentTypeCHQ=Kontrola PaymentTypeShortCHQ=Kontrola -PaymentTypeTIP=TIP (Documents against Payment) -PaymentTypeShortTIP=TIP Payment +PaymentTypeTIP=TIP (Documents za úplatu) +PaymentTypeShortTIP=TIP Platba PaymentTypeVAD=On line platba PaymentTypeShortVAD=On line platby -PaymentTypeTRA=Bank draft +PaymentTypeTRA=šek PaymentTypeShortTRA=Návrh -PaymentTypeFAC=Factor -PaymentTypeShortFAC=Factor +PaymentTypeFAC=Faktor +PaymentTypeShortFAC=Faktor BankDetails=Bankovní spojení BankCode=Kód banky DeskCode=Desk kód BankAccountNumber=Číslo účtu BankAccountNumberKey=Klíč -Residence=Direct debit +Residence=Inkaso IBANNumber=IBAN IBAN=IBAN BIC=BIC/SWIFT @@ -399,8 +399,8 @@ ExtraInfos=Extra informace RegulatedOn=Regulovány ChequeNumber=Zkontrolujte N ° ChequeOrTransferNumber=Kontrola/převod č. -ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer transmitter +ChequeBordereau=Kontrola rozvrh +ChequeMaker=Zkontrolujte převod ChequeBank=Šek z banky CheckBank=Kontrola (šek) NetToBePaid=Částka má být zaplacena @@ -431,40 +431,40 @@ ChequesReceipts=Kontroly příjmů ChequesArea=Kontroly oblasti depozit ChequeDeposits=Kontroly vkladů Cheques=Kontroly -DepositId=Id deposit -NbCheque=Number of checks -CreditNoteConvertedIntoDiscount=This %s has been converted into %s +DepositId=id vklad +NbCheque=Počet kontrol +CreditNoteConvertedIntoDiscount=Tento %s byl převeden na %s UsBillingContactAsIncoiveRecipientIfExist=Použijte zákaznickou fakturační kontaktní adresu namísto adresy třetích stran jako příjemce pro faktury ShowUnpaidAll=Zobrazit všechny neuhrazené faktury ShowUnpaidLateOnly=Zobrazit jen pozdní neuhrazené faktury PaymentInvoiceRef=Platba faktury %s ValidateInvoice=Ověřit fakturu -ValidateInvoices=Validate invoices +ValidateInvoices=ověřovat faktury Cash=Hotovost Reported=Zpožděný DisabledBecausePayments=Není možné, protože jsou zde některé platby CantRemovePaymentWithOneInvoicePaid=Nelze odstranit platbu protože je k dispozici alespoň jedna faktura označená jako zaplacená ExpectedToPay=Očekávaná platba -CantRemoveConciliatedPayment=Can't remove conciliated payment +CantRemoveConciliatedPayment=Není možné odstranit smířil platby PayedByThisPayment=Uhrazeno touto platbou -ClosePaidInvoicesAutomatically=Označit jako "Placeno" všechny standardní situace nebo náhradní faktury v plné výši. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Označit jako "Placeno" všechny dobropisy zcela splaceny. -ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. +ClosePaidContributionsAutomatically=Klasifikovat „Paid“ všechny sociální nebo fiskální příspěvky v plné výši. AllCompletelyPayedInvoiceWillBeClosed=Všechny faktury s žádnými dalšími platbami bude automaticky uzavřeny ve stavu "Placené". ToMakePayment=Zaplatit ToMakePaymentBack=Vrátit ListOfYourUnpaidInvoices=Seznam nezaplacených faktur NoteListOfYourUnpaidInvoices=Poznámka: Tento seznam obsahuje pouze faktury pro třetí strany které jsou propojeny na obchodního zástupce. RevenueStamp=Kolek -YouMustCreateInvoiceFromThird=This option is only available when creating invoice from tab "customer" of third party -YouMustCreateInvoiceFromSupplierThird=This option is only available when creating invoice from tab "supplier" of third party -YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice first and convert it to "template" to create a new template invoice +YouMustCreateInvoiceFromThird=Tato možnost je dostupná pouze při vytváření faktury ze záložky "zákazníka" z subjektu +YouMustCreateInvoiceFromSupplierThird=Tato možnost je k dispozici pouze při vytváření faktury na kartě „dodavatele“ subjektu +YouMustCreateStandardInvoiceFirstDesc=Musíte nejprve vytvořit standardní fakturu a převést ji do „šablony“ pro vytvoření nové šablony faktury PDFCrabeDescription= PDF šablona faktur Crabe. Kompletní šablona faktury (doporučená šablona) -PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices +PDFCrevetteDescription=Faktura PDF šablony Crevette. Kompletní fakturu šablona pro situace faktur TerreNumRefModelDesc1=Vrátí číslo ve formátu %s yymm-nnnn pro standardní faktury a %s yymm-nnnn pro dobropisy, kde yy je rok, mm je měsíc a nnnn je sekvence bez přerušení a bez návratu k 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Vrátí číslo s formát %syymm-nnnn pro standardní faktury, %syymm-nnnn náhradních faktur, %syymm-nnnn pro akontace faktur a %syymm-nnnn pro dobropisy, kde yy je rok, MM měsíc a nnnn je sekvence bez přestávky a ne vrátí do polohy 0 TerreNumRefModelError=Účet počínaje $syymm již existuje a není kompatibilní s tímto modelem sekvence. Vyjměte ji nebo přejmenujte jej aktivací tohoto modulu. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Vrátí číslo s formát %syymm-nnnn pro standardní faktury, %syymm-nnnn pro dobropisy a %syymm-nnnn pro akontace faktur, kde yy je rok, mm je měsíc a nnnn je sekvence bez přestávky, a ne návrat k 0 ° C ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Zástupce následující zákaznické faktury TypeContact_facture_external_BILLING=Fakturační kontakt zákazníka @@ -484,23 +484,23 @@ SituationAmount=Částka situace faktury (netto) SituationDeduction=Situace odčítání ModifyAllLines=Změnit všechny řádky CreateNextSituationInvoice=Vytvořit další situaci -NotLastInCycle=This invoice is not the latest in cycle and must not be modified. +NotLastInCycle=Tato faktura není poslední v cyklu, a nesmí být změněna. DisabledBecauseNotLastInCycle=Další situace již existuje. DisabledBecauseFinal=Tato situace je konečné. CantBeLessThanMinPercent=Pokrok nemůže být menší, než je jeho hodnota v předchozí situaci. NoSituations=Žádné otevřené situace InvoiceSituationLast=Závěrečná a hlavní faktura -PDFCrevetteSituationNumber=Situation N°%s -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT +PDFCrevetteSituationNumber=Situace č %s +PDFCrevetteSituationInvoiceLineDecompte=Situace faktura - COUNT PDFCrevetteSituationInvoiceTitle=Situace faktury -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s -TotalSituationInvoice=Total situation -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line -updatePriceNextInvoiceErrorUpdateline=Error : update price on invoice line : %s -ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. -ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. -ToCreateARecurringInvoiceGeneAuto=If you need to have such invoices generated automatically, ask you administrator to enable and setup module %s. Note that both method (manual and automatic) can be used together with no risk of duplication. -DeleteRepeatableInvoice=Delete template invoice -ConfirmDeleteRepeatableInvoice=Are your sure you want to delete the template invoice? -CreateOneBillByThird=Create one invoice per third party (otherwise, one invoice per order) -BillCreated=%s bill(s) created +PDFCrevetteSituationInvoiceLine=Situace č %s: Inv. Č %s na %s +TotalSituationInvoice=celková situace +invoiceLineProgressError=Faktura pokrok linka nemůže být větší než nebo rovna další faktury řádku +updatePriceNextInvoiceErrorUpdateline=Chyba: aktualizace cen na faktuře řádku: %s +ToCreateARecurringInvoice=Chcete-li vytvořit opakující faktury pro tuto smlouvu, nejprve vytvořit tento návrh fakturu, pak převést jej do šablony faktury a definovat frekvenci pro generování budoucích fakturách. +ToCreateARecurringInvoiceGene=S cílem vytvořit budoucí faktury pravidelně ručně, stačí jít nabídce %s - %s - %s . +ToCreateARecurringInvoiceGeneAuto=Potřebujete-li mít takové faktury generované automaticky, zeptejte se svého správce povolit a instalační modul %s . Všimněte si, že obě metody (manuální a automatické) mohou být použity společně s žádným rizikem duplikace. +DeleteRepeatableInvoice=Odstranit šablonu faktury +ConfirmDeleteRepeatableInvoice=Jsou vaše jisti, že chcete smazat šablonu faktury? +CreateOneBillByThird=Vytvořte jednu fakturu za subjekt (jinak, jedna faktura na objednávku) +BillCreated=%s bill (y) vytvořený diff --git a/htdocs/langs/cs_CZ/bookmarks.lang b/htdocs/langs/cs_CZ/bookmarks.lang index 3636ad82e2a..56668b429d5 100644 --- a/htdocs/langs/cs_CZ/bookmarks.lang +++ b/htdocs/langs/cs_CZ/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Přidat stránku do záložek Bookmark=Záložka Bookmarks=Záložky +ListOfBookmarks=Seznam záložek +EditBookmarks=List / upravit záložky NewBookmark=Nová záložka ShowBookmark=Zobrazit záložku OpenANewWindow=Otevření nového okna diff --git a/htdocs/langs/cs_CZ/boxes.lang b/htdocs/langs/cs_CZ/boxes.lang index add9e639f1b..19ab9f63a89 100644 --- a/htdocs/langs/cs_CZ/boxes.lang +++ b/htdocs/langs/cs_CZ/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=přihlašovací údaje BoxLastRssInfos=Rss informace BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Zákaznické objednávky ForProposals=Nabídky LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget byla přidána v přístrojové desce diff --git a/htdocs/langs/cs_CZ/categories.lang b/htdocs/langs/cs_CZ/categories.lang index 85bb68d858e..7795c721afb 100644 --- a/htdocs/langs/cs_CZ/categories.lang +++ b/htdocs/langs/cs_CZ/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Kategorie Rubriques=Tagy/Kategorie +RubriquesTransactions=Tagy/kategorie transakcí categories=tagy/kategorie NoCategoryYet=Žádný tag/kategorie tohoto typu nebyla vytvořena In=V @@ -69,7 +70,7 @@ ThisCategoryHasNoProject=This category does not contain any project. CategId=ID tagu/kategorie CatSupList=Seznam tagů/kategorií dodavatelů CatCusList=Seznam tagů/kategorií zákazníků/cílů -CatProdList=Seznam tagů/kategorií produktů +CatProdList=Seznam tagů/kategorií produktů CatMemberList=Seznam tagů/kategorií uživatelů CatContactList=Seznam kontaktů tagů/kategorií CatSupLinks=Spojení mezi dodavateli a tagy/kategoriemi diff --git a/htdocs/langs/cs_CZ/commercial.lang b/htdocs/langs/cs_CZ/commercial.lang index 24d011189bb..4501813aa3e 100644 --- a/htdocs/langs/cs_CZ/commercial.lang +++ b/htdocs/langs/cs_CZ/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Zobrazit úkol ShowAction=Zobrazit akce ActionsReport=Zpráva událostí ThirdPartiesOfSaleRepresentative=Třetí strany s obchodním zástupcem +SaleRepresentativesOfThirdParty=Obchodní zástupci třetích stran SalesRepresentative=Obchodní zástupce SalesRepresentatives=Obchodní zástupci SalesRepresentativeFollowUp=Obchodní zástupce (pokračování) @@ -59,7 +60,7 @@ ActionAC_CLO=Zavřít ActionAC_EMAILING=Poslat hromadný email ActionAC_COM=Poslat objednávky zákazníka e-mailem ActionAC_SHIP=Poslat přepravu na mail -ActionAC_SUP_ORD=Poslat objednávku dodavatele e-mailem +ActionAC_SUP_ORD=Poslat objednávku dodavatele e-mailem ActionAC_SUP_INV=Poslat dodavatelské faktury e-mailem ActionAC_OTH=Ostatní ActionAC_OTH_AUTO=Automaticky vložené události diff --git a/htdocs/langs/cs_CZ/companies.lang b/htdocs/langs/cs_CZ/companies.lang index f730f325f24..1bbbdc797c3 100644 --- a/htdocs/langs/cs_CZ/companies.lang +++ b/htdocs/langs/cs_CZ/companies.lang @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Zákazníci ThirdPartyCustomersWithIdProf12=Zákazníci s %s nebo %s ThirdPartySuppliers=Dodavatelé ThirdPartyType=Typ třetí strany -Company/Fundation=Společnosti/Nadace Individual=Soukromá osoba ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Mateřská společnost @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) diff --git a/htdocs/langs/cs_CZ/contracts.lang b/htdocs/langs/cs_CZ/contracts.lang index 21c7d9545f1..2875cad2d13 100644 --- a/htdocs/langs/cs_CZ/contracts.lang +++ b/htdocs/langs/cs_CZ/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Tento seznam obsahuje pouze služby smluv pro tře StandardContractsTemplate=Šablony standardních smluv ContactNameAndSignature=Pro %s, jméno a podpis: OnlyLinesWithTypeServiceAreUsed=Pouze řádky s typem "Služby" budou zkopírovány. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Obchodní zástupce podepsal smlouvu diff --git a/htdocs/langs/cs_CZ/cron.lang b/htdocs/langs/cs_CZ/cron.lang index 6c989cb6158..ef3d10390dd 100644 --- a/htdocs/langs/cs_CZ/cron.lang +++ b/htdocs/langs/cs_CZ/cron.lang @@ -11,7 +11,7 @@ URLToLaunchCronJobs=URL ke kontrole a spuštění úlohy v případě potřeby OrToLaunchASpecificJob=Nebo zkontrolovat a zahájit konkrétní práci KeyForCronAccess=Bezpečnostní klíč URL spuštění úlohy FileToLaunchCronJobs=Příkazový řádek pro spuštění úlohy -CronExplainHowToRunUnix=Na Unixových systémech by jste měli použít následující položku crontab ke spuštění příkazového řádku každých 5 minut +CronExplainHowToRunUnix=Na Unixových systémech by jste měli použít následující položku crontab ke spuštění příkazového řádku každých 5 minut CronExplainHowToRunWin=Na Microsoft Windows systémech můžete použít naplánováné nástroje úloh ke spuštění příkazového řádku každých 5 minut CronMethodDoesNotExists=Třída %s neobsahuje žádné metody %s # Menu @@ -47,7 +47,7 @@ JobFinished=Práce zahájena a dokončena #Page card CronAdd= Přidat práci CronEvery=Vykonat práci každý -CronObject=Vytvoření Instance/objektu +CronObject=Vytvoření Instance/objektu CronArgs=Parametry CronSaveSucess=Úspěšně uloženo CronNote=Komentář @@ -63,7 +63,7 @@ CronClassFileHelp=The relative path and file name to load (path is relative to w CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef -CronCommandHelp=Spustit příkazový řádek. +CronCommandHelp=Spustit příkazový řádek. CronCreateJob=Vytvořit novou naplánovanou úlohu CronFrom=Z # Info diff --git a/htdocs/langs/cs_CZ/donations.lang b/htdocs/langs/cs_CZ/donations.lang index 045614d2c74..21055164973 100644 --- a/htdocs/langs/cs_CZ/donations.lang +++ b/htdocs/langs/cs_CZ/donations.lang @@ -6,7 +6,7 @@ Donor=Dárce AddDonation=Vytvořit dar NewDonation=Nový dar DeleteADonation=Odstranit dar -ConfirmDeleteADonation=Are you sure you want to delete this donation? +ConfirmDeleteADonation=Opravdu chcete tento dar smazat? ShowDonation=Zobrazit dar PublicDonation=Veřejný dar DonationsArea=Oblast darů @@ -21,7 +21,7 @@ DonationDatePayment=Datum platby ValidPromess=Ověřit příslib DonationReceipt=Příjem daru DonationsModels=Modelové dokumenty pro darování příjmů -LastModifiedDonations=Latest %s modified donations +LastModifiedDonations=Poslední modifikované dary %s DonationRecipient=Příjemce daru IConfirmDonationReception=Příjemce deklaruje příjem jako dar v hodnotě následující částky MinimumAmount=Minimální částka je %s diff --git a/htdocs/langs/cs_CZ/exports.lang b/htdocs/langs/cs_CZ/exports.lang index ebbf286b69c..dd87a56d899 100644 --- a/htdocs/langs/cs_CZ/exports.lang +++ b/htdocs/langs/cs_CZ/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Čísla import linka (od - do) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select kolona (y) použít jako primární klíč pro pokus o aktualizaci +UpdateNotYetSupportedForThisImport=Aktualizace pro tento typ importu není podporována (pouze vložte) +NoUpdateAttempt=Žádný pokus aktualizace byla provedena, pouze vložit +ImportDataset_user_1=Uživatelé (zaměstnanci nebo ne) a vlastnosti +ComputedField=Computed field ## filters SelectFilterFields=Chcete-li filtrovat některé hodnoty, stačí zadat hodnoty zde. FilteredFields=Filtrované pole diff --git a/htdocs/langs/cs_CZ/install.lang b/htdocs/langs/cs_CZ/install.lang index f2cda6499d6..c8f7f47dcc1 100644 --- a/htdocs/langs/cs_CZ/install.lang +++ b/htdocs/langs/cs_CZ/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Používáte instalaci Dolibarr pomocí DoliWamp, tedy tyt KeepDefaultValuesDeb=Používáte instalaci Dolibarr z Linux-ového balíčku (Ubuntu, Debian, Fedora ...), takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Vyplňte pouze heslo vlastníka databáze. Ostatní parametry měňte jen pokud skutečně víte co děláte. KeepDefaultValuesMamp=Používáte instalaci Dolibarr pomocí DoliMamp, takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Parametry měňte jen pokud skutečně víte co děláte. KeepDefaultValuesProxmox=Používáte instalaci Dolibarr pomocí Proxmox, takže tyto hodnoty jsou již optimalizovány pro Váš stroj. Parametry měňte jen pokud skutečně víte co děláte. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/cs_CZ/interventions.lang b/htdocs/langs/cs_CZ/interventions.lang index e4e204962f1..fcfc5b4de6f 100644 --- a/htdocs/langs/cs_CZ/interventions.lang +++ b/htdocs/langs/cs_CZ/interventions.lang @@ -6,7 +6,7 @@ NewIntervention=Nová intervence AddIntervention=Vytvořit intervenci ListOfInterventions=Seznam intervencí ActionsOnFicheInter=Akce zaměřené na intervenci -LastInterventions=Latest %s interventions +LastInterventions=Nejnovější %s intervence AllInterventions=Všechny intervence CreateDraftIntervention=Vytvořte návrh InterventionContact=Kontakt intervence @@ -14,19 +14,19 @@ DeleteIntervention=Odstranit intervenci ValidateIntervention=Ověřit intervenci ModifyIntervention=Upravit intervenci DeleteInterventionLine=Odstranit intervenční linku -CloneIntervention=Clone intervention -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? +CloneIntervention=Clone intervence +ConfirmDeleteIntervention=Jste si jisti, že chcete smazat tuto intervenci? +ConfirmValidateIntervention=Jste si jisti, že chcete ověřit tuto intervenci pod názvem %s? +ConfirmModifyIntervention=Jste si jisti, že chcete změnit tuto intervenci? +ConfirmDeleteInterventionLine=Jste si jisti, že chcete smazat tento řádek intervence? +ConfirmCloneIntervention=Jste si jisti, že chcete naklonovat tento zásah? NameAndSignatureOfInternalContact=Jméno a podpis intervence: NameAndSignatureOfExternalContact=Jméno a podpis objednavatele: DocumentModelStandard=Standardní model dokumentů pro intervence InterventionCardsAndInterventionLines=Intervence a řádky intervencí InterventionClassifyBilled=Klasifikovat jako "účtované" InterventionClassifyUnBilled=Klasifikovat jako "Neúčtované" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=Klasifikovat „Done“ StatusInterInvoiced=Účtováno ShowIntervention=Zobrazit intervenci SendInterventionRef=Předložení intervenčního %s @@ -38,27 +38,27 @@ InterventionClassifiedBilledInDolibarr=Intervenční %s nastavena jako zaúčtov InterventionClassifiedUnbilledInDolibarr=Intervence %s nastavená jako nezaúčtovaná InterventionSentByEMail=Intervence %s odeslána e-mailem InterventionDeletedInDolibarr=Intervence %s odstraněna -InterventionsArea=Interventions area -DraftFichinter=Draft interventions -LastModifiedInterventions=Latest %s modified interventions -FichinterToProcess=Interventions to process +InterventionsArea=Oblast intervencí +DraftFichinter=Návrhy intervence +LastModifiedInterventions=Poslední %s modifikované intervence +FichinterToProcess=Zpracovávané intervence ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=V návaznosti kontakt se zákazníkem # Modele numérotation -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=Tisk také řádky typu „produktu“ (nejen služby) na intervenční karty PrintProductsOnFichinterDetails=intervence generované z objednávek -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders -InterventionStatistics=Statistics of interventions -NbOfinterventions=Nb of intervention cards -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation) +UseServicesDurationOnFichinter=Doba použití služby pro zásahy generovaných z objednávek +InterventionStatistics=Statistiky intervencí +NbOfinterventions=Nb intervenčních karet +NumberOfInterventionsByMonth=Nb intervenčních karet měsíce (datum schválení) ##### Exports ##### -InterId=Intervention id -InterRef=Intervention ref. -InterDateCreation=Date creation intervention -InterDuration=Duration intervention -InterStatus=Status intervention -InterNote=Note intervention -InterLineId=Line id intervention -InterLineDate=Line date intervention -InterLineDuration=Line duration intervention -InterLineDesc=Line description intervention +InterId=intervence id +InterRef=Intervence ref. +InterDateCreation=Datum vytvoření intervence +InterDuration=doba trvání intervence +InterStatus=stav intervence +InterNote=Poznámka intervence +InterLineId=Linka ID intervence +InterLineDate=Řádek data intervence +InterLineDuration=Linka trvání intervence +InterLineDesc=Linka popis intervence diff --git a/htdocs/langs/cs_CZ/loan.lang b/htdocs/langs/cs_CZ/loan.lang index e9b9168d4cb..c30a6e8e5b2 100644 --- a/htdocs/langs/cs_CZ/loan.lang +++ b/htdocs/langs/cs_CZ/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s půjde na ZÁJEM GoToPrincipal=%s půjde na HLAVNÍCH YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=vytvoření úvěru # Admin ConfigLoan=Konfigurace modulu úvěru LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/cs_CZ/mails.lang b/htdocs/langs/cs_CZ/mails.lang index 6a684a83272..501de7f5cc4 100644 --- a/htdocs/langs/cs_CZ/mails.lang +++ b/htdocs/langs/cs_CZ/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emaily ze souboru +MailingModuleDescEmailsFromUser=Emaily zadávané uživatelem +MailingModuleDescDolibarrUsers=Uživatelé s e-maily +MailingModuleDescThirdPartiesByCategories=Subjekty (podle kategorií) # Libelle des modules de liste de destinataires mailing LineInFile=Řádek %s v souboru @@ -106,7 +110,7 @@ IdRecord=ID záznamu DeliveryReceipt=Delivery Ack. YouCanUseCommaSeparatorForSeveralRecipients=Můžete použít čárkový oddělovač pro zadání více příjemců. TagCheckMail=Sledování mailů aktivováno -TagUnsubscribe=Link pro odhlášení +TagUnsubscribe=Link pro odhlášení TagSignature=Podpis zasílání uživateli EMailRecipient=E-mail příjemce TagMailtoEmail=Recipient EMail (including html "mailto:" link) @@ -120,7 +124,7 @@ AddNewNotification=Aktivace cíle pro nové e-mailové upozornění ListOfActiveNotifications=List all active targets for email notification ListOfNotificationsDone=Vypsat všechny odeslané e.mailové oznámení MailSendSetupIs=Konfigurace odesílání e-maiů byla nastavena tak, aby '%s'. Tento režim nelze použít k odesílání hromadných e-mailů. -MailSendSetupIs2=Nejprve je nutné jít s admin účtem, do nabídky%sHome - Nastavení - e-maily%s pro změnu parametru "%s" do režimu použít "%s". V tomto režimu, můžete zadat nastavení serveru SMTP vašeho poskytovatele služeb internetu a používat hromadnou e-mailovou funkci. +MailSendSetupIs2=Nejprve je nutné jít s admin účtem, do nabídky%sHome - Nastavení - e-maily%s pro změnu parametru "%s" do režimu použít "%s". V tomto režimu, můžete zadat nastavení serveru SMTP vašeho poskytovatele služeb internetu a používat hromadnou e-mailovou funkci. MailSendSetupIs3=Pokud máte nějaké otázky o tom, jak nastavit SMTP server, můžete se zeptat na%s, nebo si prostudujte dokumentaci vašeho poskytovatele. \nPoznámka: V současné době bohužel většina serverů nasazuje služby pro filtrování nevyžádané pošty a různé způsoby ověřování odesilatele. Bez detailnějších znalostí a nastavení vašeho SMTP serveru se vám bude vracet většina zpráv jako nedoručené. YouCanAlsoUseSupervisorKeyword=Můžete také přidat klíčové slovo__SUPERVISOREMAIL__a e-mail byl odeslán na vedoucího uživatele (funguje pouze v případě že e-mail je definován pro tento orgán dohledu) NbOfTargetedContacts=Aktuální počet cílených kontaktních e-mailů diff --git a/htdocs/langs/cs_CZ/main.lang b/htdocs/langs/cs_CZ/main.lang index f0428f9b514..b4ddbeac2f9 100644 --- a/htdocs/langs/cs_CZ/main.lang +++ b/htdocs/langs/cs_CZ/main.lang @@ -72,8 +72,10 @@ SeeHere=Nahlédněte zde Apply=Aplikovat BackgroundColorByDefault=Výchozí barva pozadí FileRenamed=Soubor byl úspěšně přejmenován -FileUploaded=Soubor byl úspěšně nahrán FileGenerated=Soubor byl úspěšně vygenerován +FileSaved=The file was successfully saved +FileUploaded=Soubor byl úspěšně nahrán +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Soubor vybrán pro připojení, ale ještě nebyl nahrán. Klikněte na "Přiložit soubor". NbOfEntries=Počet záznamů GoToWikiHelpPage=Přečtěte si online nápovědu (přístup k internetu je potřeba) @@ -358,6 +360,7 @@ TotalLT1ES=Celkem RE TotalLT2ES=Celkem IRPF HT=Po odečtení daně TTC=Inc daň +INCT=Inc. all taxes VAT=Daň z obratu VATs=Daň z prodeje LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Říj. MonthShort11=List. MonthShort12=Pros. AttachedFiles=Přiložené soubory a dokumenty -FileTransferComplete=Soubor byl úspěšně nahrán DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/cs_CZ/members.lang b/htdocs/langs/cs_CZ/members.lang index f0b107b24a7..a9278e6359f 100644 --- a/htdocs/langs/cs_CZ/members.lang +++ b/htdocs/langs/cs_CZ/members.lang @@ -6,14 +6,14 @@ Member=Člen Members=Členové ShowMember=Zobrazit členskou kartu UserNotLinkedToMember=Uživatel není spojena s členem -ThirdpartyNotLinkedToMember=Third-party not linked to a member +ThirdpartyNotLinkedToMember=Subjekty nejsou spojeny s členy MembersTickets=Členové Vstupenky FundationMembers=Členy Nadace ListOfValidatedPublicMembers=Seznam potvrzených veřejné členy ErrorThisMemberIsNotPublic=Tento člen je neveřejný ErrorMemberIsAlreadyLinkedToThisThirdParty=Další člen (jméno: %s, login: %s) je již spojena s třetími stranami %s. Odstraňte tento odkaz jako první, protože třetí strana nemůže být spojována pouze člen (a vice versa). ErrorUserPermissionAllowsToLinksToItselfOnly=Z bezpečnostních důvodů musí být uděleno oprávnění k úpravám, aby všichni uživatelé mohli spojit člena uživatele, která není vaše. -ThisIsContentOfYourCard=Hi.

This is a remind of the information we get about you. Feel free to contact us if something looks wrong.

+ThisIsContentOfYourCard=Dobrý den.

Je to připomenutí informace kterou dostaneme o vás. Neváhejte nás kontaktovat, pokud něco vypadá špatně.
CardContent=Obsah vaší členskou kartu SetLinkToUser=Odkaz na uživateli Dolibarr SetLinkToThirdParty=Odkaz na Dolibarr třetí osobě @@ -23,13 +23,13 @@ MembersListToValid=Seznam návrhů členů (má být ověřen) MembersListValid=Seznam platných členů MembersListUpToDate=Seznam platných členů s aktuální předplatné MembersListNotUpToDate=Seznam platných členů s předplatným zastaralé -MembersListResiliated=List of terminated members +MembersListResiliated=Seznam ukončených členů MembersListQualified=Seznam kvalifikovaných členů MenuMembersToValidate=Návrhy členů MenuMembersValidated=Ověřené členů MenuMembersUpToDate=Aktuální členy MenuMembersNotUpToDate=Neaktuální členů -MenuMembersResiliated=Terminated members +MenuMembersResiliated=Ukončené členové MembersWithSubscriptionToReceive=Členové s předplatným dostávat DateSubscription=Vstupní data DateEndSubscription=Zasílání novinek datum ukončení @@ -41,18 +41,18 @@ MemberType=Členské typ MemberTypeId=Členské typ id MemberTypeLabel=Člen typový štítek MembersTypes=Členové typy -MemberStatusDraft=Návrh (musí být ověřena) +MemberStatusDraft=Návrh (musí být ověřen) MemberStatusDraftShort=Návrh MemberStatusActive=Ověřené (čeká předplatné) -MemberStatusActiveShort=Ověřené -MemberStatusActiveLate=Subscription expired +MemberStatusActiveShort=Ověřeno +MemberStatusActiveLate=předplatné vypršelo MemberStatusActiveLateShort=Vypršela MemberStatusPaid=Zasílání novinek aktuální MemberStatusPaidShort=Až do dnešního dne -MemberStatusResiliated=Terminated member -MemberStatusResiliatedShort=Terminated +MemberStatusResiliated=zakončený členem +MemberStatusResiliatedShort=ukončený MembersStatusToValid=Návrhy členů -MembersStatusResiliated=Terminated members +MembersStatusResiliated=Ukončené členové NewCotisation=Nový příspěvek PaymentSubscription=Nový příspěvek platba SubscriptionEndDate=Předplatné je datum ukončení @@ -65,7 +65,7 @@ SubscriptionLate=Pozdě SubscriptionNotReceived=Vstupní nikdy nedostal ListOfSubscriptions=Seznam předplatné SendCardByMail=Poslat kartu e-mailem -AddMember=Create member +AddMember=Vytvořit člena NoTypeDefinedGoToSetup=Žádný člen definovány typy. Jdi na menu "Členové typy" NewMemberType=Nový člen typu WelcomeEMail=Vítejte e-mail @@ -76,31 +76,32 @@ Physical=Fyzikální Moral=Morální MorPhy=Morální / Fyzikální Reenable=Znovu povolit -ResiliateMember=Terminate a member -ConfirmResiliateMember=Are you sure you want to terminate this member? +ResiliateMember=Ukončit člena +ConfirmResiliateMember=Jste si jisti, že chcete ukončit tyto členy? DeleteMember=Odstranění člena -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his subscriptions)? +ConfirmDeleteMember=Jste si jisti, že chcete odstranit tohoto člena (Odstranění kontaktu budou smazány všechny své odběry)? DeleteSubscription=Odstranění předplatné -ConfirmDeleteSubscription=Are you sure you want to delete this subscription? +ConfirmDeleteSubscription=Jste si jisti, že chcete smazat tento odběr? Filehtpasswd=htpasswd souboru ValidateMember=Ověření člena -ConfirmValidateMember=Are you sure you want to validate this member? +ConfirmValidateMember=Jste si jisti, že chcete ověřit tohoto člena? FollowingLinksArePublic=Následující odkazy jsou otevřené stránky nejsou chráněny žádným povolením Dolibarr. Oni nejsou formátované stránky, pokud jako v příkladu ukázat, jak do seznamu členy databázi. PublicMemberList=Veřejný seznam členů BlankSubscriptionForm=Veřejné auto-přihlášku, BlankSubscriptionFormDesc=Dolibarr vám může poskytnout veřejnou adresu URL, aby externí návštěvníky požádat přihlásit k odběru nadaci. Je-li on-line platební modul je povolen, bude platba forma také poskytovány automaticky. EnablePublicSubscriptionForm=Povolit veřejné auto-přihlašovací formulář +ForceMemberType=Vynutit typ uživatele ExportDataset_member_1=Členové a předplatné ImportDataset_member_1=Členové -LastMembersModified=Latest %s modified members -LastSubscriptionsModified=Latest %s modified subscriptions +LastMembersModified=Poslední %s upravený členy +LastSubscriptionsModified=Poslední %s modifikované odběry String=Řetěz Text=Text Int=Int DateAndTime=Datum a čas PublicMemberCard=Členské veřejné karta -SubscriptionNotRecorded=Subscription not recorded -AddSubscription=Create subscription +SubscriptionNotRecorded=Předplatné nezaznamenává +AddSubscription=Vytvořit odběr ShowSubscription=Zobrazit předplatné SendAnEMailToMember=Poslat e-mail Informace o členovi DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Předmět e-mailu obdržel v případě auto-nápis host @@ -127,8 +128,8 @@ NoThirdPartyAssociatedToMember=Žádná třetí strana spojené s tímto členem MembersAndSubscriptions= Členové a předplatné MoreActions=Doplňující akce na záznam MoreActionsOnSubscription=Doplňující akce, navrhl ve výchozím nastavení při nahrávání předplatné -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionBankDirect=Vytvořte přímý záznam na bankovním účtu +MoreActionBankViaInvoice=Vytvoření faktury a platby na bankovní účet MoreActionInvoiceOnly=Vytvořte fakturu bez zaplacení LinkToGeneratedPages=Vytvořit vizitek LinkToGeneratedPagesDesc=Tato obrazovka umožňuje vytvářet PDF soubory s vizitkami všech vašich členů nebo konkrétního člena. @@ -136,12 +137,12 @@ DocForAllMembersCards=Vytvořit vizitky pro všechny členy DocForOneMemberCards=Vytvořit vizitky pro konkrétní člena DocForLabels=Vytvořit adresy listy SubscriptionPayment=Zasílání novinek platba -LastSubscriptionDate=Latest subscription date -LastSubscriptionAmount=Latest subscription amount +LastSubscriptionDate=Poslední datum odběru +LastSubscriptionAmount=Množství posledního odběru MembersStatisticsByCountries=Členové Statistiky podle země MembersStatisticsByState=Členové statistika stát / provincie MembersStatisticsByTown=Členové statistika podle města -MembersStatisticsByRegion=Members statistics by region +MembersStatisticsByRegion=Členové statistiky podle krajů NbOfMembers=Počet členů NoValidatedMemberYet=Žádné ověřené členy nalezeno MembersByCountryDesc=Tato obrazovka vám ukáže statistiku členů jednotlivých zemích. Grafika však závisí na Google on-line služby grafu a je k dispozici pouze v případě, je připojení k internetu funguje. @@ -149,7 +150,8 @@ MembersByStateDesc=Tato obrazovka vám ukáže statistiku členů podle státu / MembersByTownDesc=Tato obrazovka vám ukáže statistiku členům města. MembersStatisticsDesc=Zvolte statistik, které chcete číst ... MenuMembersStats=Statistika -LastMemberDate=Latest member date +LastMemberDate=Nejzazší datum člen +LatestSubscriptionDate=Poslední datum odběru Nature=Příroda Public=Informace jsou veřejné NewMemberbyWeb=Nový uživatel přidán. Čeká na schválení @@ -163,9 +165,9 @@ CanEditAmount=Návštěvník si může vybrat / upravit výši svého upsaného MEMBER_NEWFORM_PAYONLINE=Přejít na integrované on-line platební stránky ByProperties=Charakteristikami MembersStatisticsByProperties=Členové statistiky dle charakteristik -MembersByNature=This screen show you statistics on members by nature. -MembersByRegion=This screen show you statistics on members by region. +MembersByNature=Tato obrazovka ukáže statistiky o členy z důvodu povahy. +MembersByRegion=Tato obrazovka ukáže statistiky o členům regionu. VATToUseForSubscriptions=Sazba DPH se má použít pro předplatné NoVatOnSubscription=Ne TVA za upsaný vlastní kapitál -MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com) -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s +MEMBER_PAYONLINE_SENDEMAIL=Email pouze pro e-mailové upozornění, když Dolibarr obdrží potvrzení o ověřenou platby za úpis (příklad: paymentdone@example.com) +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkt slouží k odběru linku do faktury: %s diff --git a/htdocs/langs/cs_CZ/modulebuilder.lang b/htdocs/langs/cs_CZ/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/cs_CZ/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/cs_CZ/multicurrency.lang b/htdocs/langs/cs_CZ/multicurrency.lang new file mode 100644 index 00000000000..6e9c9ccbe6c --- /dev/null +++ b/htdocs/langs/cs_CZ/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Výše platby, původní měna diff --git a/htdocs/langs/cs_CZ/oauth.lang b/htdocs/langs/cs_CZ/oauth.lang index cafca379f6f..c0df3b2dd22 100644 --- a/htdocs/langs/cs_CZ/oauth.lang +++ b/htdocs/langs/cs_CZ/oauth.lang @@ -1,30 +1,30 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=Oauth Configuration -OAuthServices=OAuth services -ManualTokenGeneration=Manual token generation -TokenManager=Token manager -IsTokenGenerated=Is token generated ? -NoAccessToken=No access token saved into local database -HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider -TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: -ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token -OAUTH_GOOGLE_NAME=Oauth Google service -OAUTH_GOOGLE_ID=Oauth Google Id +ConfigOAuth=Konfigurace Oauth +OAuthServices=Služby OAuth +ManualTokenGeneration=Ruční generování tokenů +TokenManager=Správce tokenů +IsTokenGenerated=Je token generován? +NoAccessToken=Žádný přístupový token uložený v místní databázi +HasAccessToken=Token byl generován a uložen do lokální databáze +NewTokenStored=Token přijat a uložen +ToCheckDeleteTokenOnProvider=Klikněte zde pro kontrolu / odstranění oprávnění uloženého zprostředkovatelem %s OAuth +TokenDeleted=Token byl smazán +RequestAccess=Kliknutím sem můžete požádat/obnovit přístup a obdržet nový token, který chcete uložit +DeleteAccess=Klikněte zde pro smazání tokenu +UseTheFollowingUrlAsRedirectURI=Při vytváření pověření u poskytovatele OAuth použijte následující adresu URL jako URI přesměrování: +ListOfSupportedOauthProviders=Zadejte zde pověření poskytnuté poskytovatelem OAuth2. Zde jsou zobrazena pouze podporovaní poskytovatelé OAuth2. Toto nastavení mohou používat jiné moduly, které potřebují ověření OAuth2. +OAuthSetupForLogin=Page pro vygenerování tokenu OAuth +SeePreviousTab=Viz předchozí tabulka +OAuthIDSecret=OAuth ID a tajemství +TOKEN_REFRESH=Token obnovit přítomnost +TOKEN_EXPIRED=Token vypršel +TOKEN_EXPIRE_AT=Token vyprší na +TOKEN_DELETE=Odstranění uloženého tokenu +OAUTH_GOOGLE_NAME=O službě Google Oauth +OAUTH_GOOGLE_ID=ID Google Oauth OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Go on this page then "Credentials" to create Oauth credentials -OAUTH_GITHUB_NAME=Oauth GitHub service -OAUTH_GITHUB_ID=Oauth GitHub Id +OAUTH_GOOGLE_DESC=Přejděte na tuto stránku a poté na "pověření" pro vytvoření pověření Oauth +OAUTH_GITHUB_NAME=Služba Oauth GitHub +OAUTH_GITHUB_ID=ID Oauth GitHub OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Go on this page then "Register a new application" to create Oauth credentials +OAUTH_GITHUB_DESC=Přejděte na tuto stránku a pak na "Registrace nové aplikace" pro vytvoření pověření Oauth diff --git a/htdocs/langs/cs_CZ/opensurvey.lang b/htdocs/langs/cs_CZ/opensurvey.lang index 2992e6bb253..a967466d860 100644 --- a/htdocs/langs/cs_CZ/opensurvey.lang +++ b/htdocs/langs/cs_CZ/opensurvey.lang @@ -55,5 +55,5 @@ ErrorOpenSurveyFillFirstSection=Nemůžete naplnit první část hlasování, kt ErrorOpenSurveyOneChoice=Zadejte alespoň jednu možnost ErrorInsertingComment=Došlo k chybě při vkládání vašeho komentáře MoreChoices=Zadejte více možností pro hlasující -SurveyExpiredInfo=The poll has been closed or voting delay has expired. +SurveyExpiredInfo=Doba hlasování pro tuto anketu vypršela. EmailSomeoneVoted=%s vyplnilo řádek.\nMůžete si najít své hlasování v odkazu: \n%s diff --git a/htdocs/langs/cs_CZ/orders.lang b/htdocs/langs/cs_CZ/orders.lang index f6ae06fb6a7..4dc2cc05b3a 100644 --- a/htdocs/langs/cs_CZ/orders.lang +++ b/htdocs/langs/cs_CZ/orders.lang @@ -19,7 +19,7 @@ CustomerOrder=Zákaznická objednávka CustomersOrders=Objednávky zákazníků CustomersOrdersRunning=Aktuální objednávky zákazníků CustomersOrdersAndOrdersLines=Objednávky zákazníků a řádky objednávky -OrdersDeliveredToBill=Customer orders delivered to bill +OrdersDeliveredToBill=objednávky zákazníků dodávány na účet OrdersToBill=Objednávky zákazníků dodávány OrdersInProcess=Probíhající zákaznické objednávka OrdersToProcess=Zákaznické objednávky ke zpracování @@ -39,7 +39,7 @@ StatusOrderRefusedShort=Odmítnuto StatusOrderBilledShort=Účtováno StatusOrderToProcessShort=Ve zpracování StatusOrderReceivedPartiallyShort=Částečně obdržené -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=obdržel produkty StatusOrderCanceled=Zrušený StatusOrderDraft=Návrh (musí být ověřena) StatusOrderValidated=Ověřené @@ -51,7 +51,7 @@ StatusOrderApproved=Schválený StatusOrderRefused=Odmítnutý StatusOrderBilled=Účtováno StatusOrderReceivedPartially=Částečně uložen -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Všechny produkty obdržely ShippingExist=Zásilka existuje QtyOrdered=Objednáno množství ProductQtyInDraft=Množství produktů do návrhů objednávek @@ -67,18 +67,18 @@ ValidateOrder=Potvrzení objednávky UnvalidateOrder=Nepotvrdit objednávku DeleteOrder=Smazat objednávku CancelOrder=Zrušení objednávky -OrderReopened= Order %s Reopened +OrderReopened= Objednat %s znovu otevřen AddOrder=Vytvořit objednávku AddToDraftOrders=Přidat k návrhu objednávky ShowOrder=Zobrazit objednávku OrdersOpened=Objednávky ve zpracování NoDraftOrders=Žádné návrhy objednávky -NoOrder=No order -NoSupplierOrder=No supplier order -LastOrders=Latest %s customer orders -LastCustomerOrders=Latest %s customer orders -LastSupplierOrders=Latest %s supplier orders -LastModifiedOrders=Latest %s modified orders +NoOrder=Žádná objednávka +NoSupplierOrder=Žádný dodavatel objednávka +LastOrders=Poslední objednávky %s zákazníků +LastCustomerOrders=Poslední objednávky %s zákazníků +LastSupplierOrders=Poslední %s dodavatelské objednávky +LastModifiedOrders=Poslední %s modifikované objednávky AllOrders=Všechny objednávky NbOfOrders=Počet objednávek OrdersStatistics=Statistiky objednávek @@ -87,21 +87,21 @@ NumberOfOrdersByMonth=Počet objednávek měsíčně AmountOfOrdersByMonthHT=Množství objednávek měsíčně (bez daně) ListOfOrders=Seznam objednávek CloseOrder=Zavřená objednávka -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. -ConfirmDeleteOrder=Are you sure you want to delete this order? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +ConfirmCloseOrder=Jste si jisti, že chcete nastavit tuto objednávku na dodanou? Jakmile je objednávka doručena, může být nastavena na zaúčtovanou. +ConfirmDeleteOrder=Jste si jisti, že chcete odstranit tuto objednávku? +ConfirmValidateOrder=Opravdu chcete tuto objednávku ověřit pod jménem %s ? +ConfirmUnvalidateOrder=Jste si jisti, že chcete obnovit objednávku %s do stavu návrhu? +ConfirmCancelOrder=Jste si jisti, že chcete zrušit tuto objednávku? +ConfirmMakeOrder=Jste si jisti, že chcete potvrdit tuto objednávku na %s? GenerateBill=Vytvořit fakturu ClassifyShipped=Klasifikovat jako dodáno DraftOrders=Návrh objednávky -DraftSuppliersOrders=Draft suppliers orders +DraftSuppliersOrders=Návrhy dodavatelé objednávky OnProcessOrders=Objednávka v procesu RefOrder=Ref. objednávka -RefCustomerOrder=Ref. order for customer -RefOrderSupplier=Ref. order for supplier -RefOrderSupplierShort=Ref. order supplier +RefCustomerOrder=Ref. Objednat pro zákazníka +RefOrderSupplier=Ref. Aby dodavatele +RefOrderSupplierShort=Ref. dodavatel objednávka SendOrderByMail=Objednávku zašlete mailem ActionsOnOrder=Události objednávek NoArticleOfTypeProduct=Žádný článek typu 'produkt', takže není dopravován článek pro tuto objednávku @@ -110,13 +110,13 @@ AuthorRequest=Požadavek autora UserWithApproveOrderGrant=Uživateli poskytnuté povolení "schválit objednávky". PaymentOrderRef=Platba objednávky %s CloneOrder=Zkopírování objednávky -ConfirmCloneOrder=Are you sure you want to clone this order %s? +ConfirmCloneOrder=Jste si jisti, že chcete klonovat tento příkaz %s ? DispatchSupplierOrder=Příjem %s dodavatelských objednávek FirstApprovalAlreadyDone=První schválení již učiněno -SecondApprovalAlreadyDone=Second approval already done -SupplierOrderReceivedInDolibarr=Supplier order %s received %s -SupplierOrderSubmitedInDolibarr=Supplier order %s submited -SupplierOrderClassifiedBilled=Supplier order %s set billed +SecondApprovalAlreadyDone=Druhý schválení již učinili +SupplierOrderReceivedInDolibarr=Dodavatel pořadí %s obdržel %s +SupplierOrderSubmitedInDolibarr=Dodavatel pořadí %s odeslán +SupplierOrderClassifiedBilled=Dodavatel pořadí %s set účtoval ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Zástupce následující-up, zákaznické objednávky TypeContact_commande_internal_SHIPPING=Zástupce následující-up dopravy @@ -150,5 +150,5 @@ OrderCreated=Vaše objednávky byly vytvořeny OrderFail=Došlo k chybě během vytváření objednávky CreateOrders=Vytvoření objednávky ToBillSeveralOrderSelectCustomer=Chcete-li vytvořit fakturu z několika řádů, klikněte nejprve na zákazníka, pak zvolte "%s". -CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received. -SetShippingMode=Set shipping mode +CloseReceivedSupplierOrdersAutomatically=V blízkosti, aby se „%s“ automaticky, pokud jsou přijaty všechny výrobky. +SetShippingMode=Nastavení režimu dopravy diff --git a/htdocs/langs/cs_CZ/other.lang b/htdocs/langs/cs_CZ/other.lang index 68acf5ad4e8..f81530dc14d 100644 --- a/htdocs/langs/cs_CZ/other.lang +++ b/htdocs/langs/cs_CZ/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=libra +WeightUnitounce=unce Length=Délka LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/cs_CZ/paybox.lang b/htdocs/langs/cs_CZ/paybox.lang index 43059020699..a00f9078393 100644 --- a/htdocs/langs/cs_CZ/paybox.lang +++ b/htdocs/langs/cs_CZ/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail pro potvrzení platby Creditor=Věřitel PaymentCode=Platební kód PayBoxDoPayment=Jít na platbu +ToPay=Proveďte platbu YouWillBeRedirectedOnPayBox=Budete přesměrováni na zabezpečené stránky Paybox pro vstupní informace o kreditní kartě Continue=Další ToOfferALinkForOnlinePayment=URL pro %s platby diff --git a/htdocs/langs/cs_CZ/paypal.lang b/htdocs/langs/cs_CZ/paypal.lang index ca8eaad3c21..2acb2019a8c 100644 --- a/htdocs/langs/cs_CZ/paypal.lang +++ b/htdocs/langs/cs_CZ/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Toto je id transakce: %s PAYPAL_ADD_PAYMENT_URL=Přidat URL platby PayPal při odeslání dokumentu e-mailem PredefinedMailContentLink=Můžete kliknout na níže uvedený odkaz pro bezpečné provedení platby (PayPal), pokud jste tak již neudělal dříve. \n\n %s \n\n YouAreCurrentlyInSandboxMode=Platby jsou v současné době v testovacím režimu "sandbox" -NewPaypalPaymentReceived=Nové přijaté PayPal platby -NewPaypalPaymentFailed=Nová PayPal platba neprošla +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=Upozorňující e-mail po platbě (úspěch nebo zamítnutí) ReturnURLAfterPayment=Návratová URL po platbě -ValidationOfPaypalPaymentFailed=Ověření platby PayPal selhalo -PaypalConfirmPaymentPageWasCalledButFailed=Potvrzovací stránka platby byla volána přes PayPal, ale potvrzení selhalo +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/cs_CZ/printing.lang b/htdocs/langs/cs_CZ/printing.lang index e45ee919a71..6df6d791abd 100644 --- a/htdocs/langs/cs_CZ/printing.lang +++ b/htdocs/langs/cs_CZ/printing.lang @@ -3,20 +3,20 @@ Module64000Name=Přímý tisk Module64000Desc=Povolit Direct Printing System PrintingSetup=Nastavit systém přímého tisku PrintingDesc=Tento modul přidá tlačítko Tisk pro odesílání dokumentů přímo na tiskárnu (bez otevření dokumentu do aplikace) s různými moduly. -MenuDirectPrinting=Direct Printing jobs -DirectPrint=Direct print +MenuDirectPrinting=Přímých pracovních míst Tisk +DirectPrint=Přímý tisk PrintingDriverDesc=Konfigurace proměnných pro tiskový ovladač. ListDrivers=Výpis ovladačů PrintTestDesc=Výpis tiskáren FileWasSentToPrinter=Soubor %s byl odeslán na tiskárnu NoActivePrintingModuleFound=Žádný aktivní modul pro tisk dokumentu PleaseSelectaDriverfromList=Prosím vyberte ovladač ze seznamu. -PleaseConfigureDriverfromList=Please configure the selected driver from list. +PleaseConfigureDriverfromList=Konfigurace prosím vybraný ovladač ze seznamu. SetupDriver=Nastavení ovladače TargetedPrinter=Cílová tiskárna UserConf=Nastavení pro uživatele -PRINTGCP_INFO=Google OAuth API setup -PRINTGCP_AUTHLINK=Authentication +PRINTGCP_INFO=Nastavení Google OAuth API +PRINTGCP_AUTHLINK=ověření pravosti PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=Tento ovladač umožňuje odesílat dokumenty přímo k tiskárně s Google Cloud Print. GCP_Name=Název @@ -44,8 +44,8 @@ IPP_Color=Barva IPP_Device=Zařízení IPP_Media=Tisková média IPP_Supported=Typ médií -DirectPrintingJobsDesc=This page lists printing jobs found for available printers. -GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +DirectPrintingJobsDesc=Tato strana vypíše tiskové úlohy nalezeny dostupné tiskárny. +GoogleAuthNotConfigured=Nastavení Google OAuth nedělá. Povolit modul OAuth a nastavit Google ID / Secret. +GoogleAuthConfigured=Google OAuth pověření byly nalezeny v nastavení modulu OAuth. PrintingDriverDescprintgcp=Konfigurace proměnných pro ovladač tisku přes Google Cloud Print. PrintTestDescprintgcp=Seznam tiskáren pro Google Cloud Print. diff --git a/htdocs/langs/cs_CZ/products.lang b/htdocs/langs/cs_CZ/products.lang index 54c7299336d..8a8986fa75c 100644 --- a/htdocs/langs/cs_CZ/products.lang +++ b/htdocs/langs/cs_CZ/products.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Produkt čj. ProductLabel=Štítek produktu -ProductLabelTranslated=Translated product label -ProductDescriptionTranslated=Translated product description -ProductNoteTranslated=Translated product note +ProductLabelTranslated=Přeložený štítek produktu +ProductDescriptionTranslated=Přeložený popis produktu +ProductNoteTranslated=Přeložená poznámka k produktu ProductServiceCard=Karta produktů/služeb TMenuProducts=Produkty TMenuServices=Služby @@ -20,20 +20,22 @@ ProductVatMassChange=Hromadná změna DPH ProductVatMassChangeDesc=Tuto stránku lze použít k úpravě sazby DPH definované u produktů nebo služeb z jedné do druhé hodnoty. Varování: Tato změna se provádí ve všech databázích!!. MassBarcodeInit=Hromadný čárový kód inicializace MassBarcodeInitDesc=Tato stránka může být použita k inicializaci čárového kódu na objekty, které nemají definovaný čárový kód. Zkontrolujte před touto akcí, zda je nastavení modulu čárového kódu kompletní. -ProductAccountancyBuyCode=Accountancy code (purchase) -ProductAccountancySellCode=Accountancy code (sale) +ProductAccountancyBuyCode=Účetní kód (nákup) +ProductAccountancySellCode=Účetní kód (prodej) ProductOrService=Produkt nebo služba ProductsAndServices=Produkty a služby ProductsOrServices=Výrobky nebo služby -ProductsOnSell=Produkt k prodeji nebo k nákupu -ProductsNotOnSell=Výrobek není k prodeji a není pro nákup +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produkty pro prodej a pro nákup -ServicesOnSell=Služby k prodeji nebo k nákupu -ServicesNotOnSell=Služby, které nejsou na prodej +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Služby pro prodej a pro nákup -LastModifiedProductsAndServices=Latest %s modified products/services -LastRecordedProducts=Latest %s recorded products -LastRecordedServices=Latest %s recorded services +LastModifiedProductsAndServices=Poslední %s modifikované produkty/služby +LastRecordedProducts=Poslední zaznamenané %s produkty +LastRecordedServices=Poslední zaznamenané %s služby CardProduct0=Karta produktu CardProduct1=Servisní karta Stock=Zásoba @@ -52,17 +54,17 @@ ProductStatusOnBuy=Pro nákup ProductStatusNotOnBuy=Nelze zakoupit ProductStatusOnBuyShort=Pro nákup ProductStatusNotOnBuyShort=Nelze zakoupit -UpdateVAT=Update vat -UpdateDefaultPrice=Update default price -UpdateLevelPrices=Update prices for each level +UpdateVAT=Aktualizace DPH +UpdateDefaultPrice=Aktualizace výchozí ceny +UpdateLevelPrices=Aktualizovat ceny pro každou úroveň AppliedPricesFrom=Aplikované ceny od SellingPrice=Prodejní cena SellingPriceHT=Prodejní cena (bez DPH) SellingPriceTTC=Prodejní cena (vč. DPH) -CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost. -CostPriceUsage=This value could be used for margin calculation. -SoldAmount=Sold amount -PurchasedAmount=Purchased amount +CostPriceDescription=Tato cena (bez daně), může být použita k ukládání průměrné ceny tohoto produktu ve vaší společnosti. Může to být jakákoliv cena, kterou spočítat sami, například od průměrné nákupní ceny plus průměrné výrobní a distribuční náklady. +CostPriceUsage=Tato hodnota může být použita pro výpočet marže. +SoldAmount=Prodat množství +PurchasedAmount=Zakoupená částka NewPrice=Nová cena MinPrice=Min. prodejní cena CantBeLessThanMinPrice=Prodejní cena nesmí být nižší než minimální povolená pro tento produkt (%s bez daně). Toto hlášení se může také zobrazí, pokud zadáte příliš důležitou slevu. @@ -80,7 +82,7 @@ ProductsArea=Oblast produktu ServicesArea=Poskytování služeb v oblasti ListOfStockMovements=Seznam skladových pohybů BuyingPrice=Nákupní cena -PriceForEachProduct=Products with specific prices +PriceForEachProduct=Produkty se specifickými cenami SupplierCard=Karta dodavatele PriceRemoved=Cena odstraněny BarCode=Čárový kód @@ -91,11 +93,11 @@ NoteNotVisibleOnBill=Poznámka (není vidět na návrzích faktury, ...) ServiceLimitedDuration=Je-li výrobek službou s omezeným trváním: MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment) MultiPricesNumPrices=Počet cen -AssociatedProductsAbility=Activate the feature to manage virtual products +AssociatedProductsAbility=Aktivovat funkci pro správu virtuálních produktů AssociatedProducts=Virtuální produkt AssociatedProductsNumber=Počet výrobků tvořících tento virtuální produkt ParentProductsNumber=Počet výchozích balení výrobku -ParentProducts=Parent products +ParentProducts=Hlavní produkty IfZeroItIsNotAVirtualProduct=Pokud je 0, tento produkt není virtuální produkt IfZeroItIsNotUsedByVirtualProduct=Je-li 0, je tento výrobek není používán žádným virtuální produkt Translation=Překlad @@ -103,7 +105,7 @@ KeywordFilter=Filtr klíčového slova CategoryFilter=Filtr kategorie ProductToAddSearch=Hledat produkt pro přidání NoMatchFound=Shoda nenalezena -ListOfProductsServices=List of products/services +ListOfProductsServices=Seznam produktů/služeb ProductAssociationList=Seznam produktů/služeb, které jsou součástí tohoto virtuálního produktu/balíčku ProductParentList=Seznam virtuálních produktů / služeb s tímto produktem jako součást ErrorAssociationIsFatherOfThis=Jedním z vybraného produktu je rodič s aktuálním produktem @@ -129,7 +131,7 @@ PredefinedProductsAndServicesToSell=Předdefinované produkty/služby na prodej PredefinedProductsToPurchase=Předdefinovaný produkt k nákupu PredefinedServicesToPurchase=Předdefinované služby pro nákup PredefinedProductsAndServicesToPurchase=Předdefinované produkty/služby pro nákup -NotPredefinedProducts=Not predefined products/services +NotPredefinedProducts=Nejsou předdefinované produkty/služby GenerateThumb=Vytvořit náhled ServiceNb=Servisní # %s ListProductServiceByPopularity=Seznam produktů/služeb podle oblíbenosti @@ -138,15 +140,15 @@ ListServiceByPopularity=Seznam služeb podle oblíbenosti Finished=Výrobce produktu RowMaterial=Surovina CloneProduct=Kopírovat produkt nebo službu -ConfirmCloneProduct=Are you sure you want to clone product or service %s? +ConfirmCloneProduct=Jste si jisti, že chcete kopírovat produkt nebo službu %s? CloneContentProduct=Kopírovat všechny hlavní informace o produktu/službě ClonePricesProduct=Kopírovat hlavní informace a ceny CloneCompositionProduct=Kopírování balení zboží/služby -CloneCombinationsProduct=Clone product variants +CloneCombinationsProduct=Kopírovat varianty produktu ProductIsUsed=Tento produkt se používá NewRefForClone=Ref. nového produktu/služby -SellingPrices=Selling prices -BuyingPrices=Buying prices +SellingPrices=Prodejní ceny +BuyingPrices=Nákupní ceny CustomerPrices=Zákaznické ceny SuppliersPrices=Dodavatelské ceny SuppliersPricesOfProductsOrServices=Dodavatelské ceny (výrobků či služeb) @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litr l=L +unitP=Piece +unitSET=Set +unitS=Druhý +unitH=Hodina +unitD=Den +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Ref šablona produktu ServiceCodeModel=Ref šablona služby CurrentProductPrice=Aktuální cena @@ -182,16 +196,17 @@ AlwaysUseNewPrice=Vždy používejte aktuální cenu produktu/služby AlwaysUseFixedPrice=Použijte pevnou cenu PriceByQuantity=Různé ceny podle množství PriceByQuantityRange=Množstevní rozsah -MultipriceRules=Price segment rules +MultipriceRules=Pravidla segmentu cen UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment -PercentVariationOver=%% variation over %s -PercentDiscountOver=%% discount over %s +PercentVariationOver=%% variace přes %s +PercentDiscountOver=%% sleva na %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Vyrobit -ProductsMultiPrice=Products and prices for each price segment +ProductsMultiPrice=Produkty a ceny pro jednotlivé cenové kategorie ProductsOrServiceMultiPrice=Zákaznické ceny (z výrobků nebo služeb, multi-ceny) -ProductSellByQuarterHT=Products turnover quarterly before tax -ServiceSellByQuarterHT=Services turnover quarterly before tax +ProductSellByQuarterHT=Čtvrtletní obrat zboží před zdaněním +ServiceSellByQuarterHT=Čtvrtletní obrat sluižeb před zdaněním Quarter1=I. čtvrtletí Quarter2=II čtvrtletí Quarter3=III čtvrtletí @@ -203,18 +218,18 @@ PrintsheetForOneBarCode=Vytiskněte několik štítků pro jeden čárový kód BuildPageToPrint=Generování stránky pro tisk FillBarCodeTypeAndValueManually=Zadat typ čárového kódu a hodnotu ručně. FillBarCodeTypeAndValueFromProduct=Zadat typ čárového kódu a hodnoty z čárového kódu produktu. -FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. +FillBarCodeTypeAndValueFromThirdParty=Zadat typ čárového kódu a hodnoty z čárového kódu třetí strany. DefinitionOfBarCodeForProductNotComplete=Definice typu nebo hodnoty čárového kódu není kompletní pro produkt %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s. +DefinitionOfBarCodeForThirdpartyNotComplete=Definice typu nebo hodnoty čárového kódu není kompletní pro třetí stranu %s. BarCodeDataForProduct=Čárový kód informace o výrobku %s : -BarCodeDataForThirdparty=Barcode information of third party %s : -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) -PriceByCustomer=Different prices for each customer -PriceCatalogue=A single sell price per product/service -PricingRule=Rules for sell prices +BarCodeDataForThirdparty=Čárový kód informace o třetí straně %s : +ResetBarcodeForAllRecords=Definovat hodnotu čárového kódu pro všechny záznamy (tato akce také obnoví hodnotu čárového kódu již definovanou s novými hodnotami) +PriceByCustomer=Různé ceny pro každého zákazníka +PriceCatalogue=Unikátní cena pro produkt/službu +PricingRule=Pravidla pro zákaznických ceny AddCustomerPrice=Přidejte cenu pro zákazníka ForceUpdateChildPriceSoc=Nastavit stejné ceny pro dceřiné společnosti zákazníka -PriceByCustomerLog=Log of previous customer prices +PriceByCustomerLog=Protokol o cenách předchozího zákazníka MinimumPriceLimit=Minimální cena nesmí být nižší než %s MinimumRecommendedPrice=Minimální doporučená cena je: %s PriceExpressionEditor=Editor cenových výrazů @@ -230,39 +245,47 @@ DefaultPrice=Výchozí cena ComposedProductIncDecStock=Zvýšit/snížit zásoby na výchozí změny ComposedProduct=Subprodukt MinSupplierPrice=Minimální dodavatelská cena -MinCustomerPrice=Minimum customer price +MinCustomerPrice=Minimální zákaznická cena DynamicPriceConfiguration=Dynamická konfigurace cen -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. -AddVariable=Add Variable -AddUpdater=Add Updater +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +AddVariable=Přidat proměnnou +AddUpdater=Přidat Update GlobalVariables=Globální proměnné -VariableToUpdate=Variable to update +VariableToUpdate=Aktualizovat proměnnou GlobalVariableUpdaters=Aktualizace globálních proměnných +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Analyzuje JSON data ze zadané adresy URL, VALUE určuje umístění příslušné hodnoty +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Analyzuje Webservice data ze zadané adresy URL, NS specifikuje jmenný prostor, VALUE určuje umístění příslušné hodnoty, DATA by měla obsahovat data odesílat a METHOD je volání metody WS +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval aktualizace (minuty) -LastUpdated=Latest update +LastUpdated=Poslední aktualizace CorrectlyUpdated=Správně aktualizováno PropalMergePdfProductActualFile=Soubory používají k přidání do PDF Azur template are/is PropalMergePdfProductChooseFile=Vyberte soubory PDF -IncludingProductWithTag=Including product/service with tag -DefaultPriceRealPriceMayDependOnCustomer=Default price, real price may depend on customer -WarningSelectOneDocument=Please select at least one document +IncludingProductWithTag=Včetně produktu/služby s tagem +DefaultPriceRealPriceMayDependOnCustomer=Výchozí cena, skutečná cena může záviset na zákazníkovi +WarningSelectOneDocument=Vyberte alespoň jeden dokument DefaultUnitToShow=Jednotka -NbOfQtyInProposals=Qty in proposals -ClinkOnALinkOfColumn=Click on a link of column %s to get a detailed view... -TranslatedLabel=Translated label -TranslatedDescription=Translated description -TranslatedNote=Translated notes -ProductWeight=Weight for 1 product -ProductVolume=Volume for 1 product -WeightUnits=Weight unit -VolumeUnits=Volume unit -SizeUnits=Size unit -DeleteProductBuyPrice=Delete buying price -ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? -SubProduct=Sub product +NbOfQtyInProposals=Množství v návrzích +ClinkOnALinkOfColumn=Kliknout na odkaz sloupce %s získat detailní pohled ... +TranslatedLabel=Přeložený štítek +TranslatedDescription=Přeložený popis +TranslatedNote=Přeložené poznámky +ProductWeight=Hmotnost 1 produkt +ProductVolume=Svazek 1 produkt +WeightUnits=Jednotka hmotnosti +VolumeUnits=objem jednotka +SizeUnits=Jednotková velikost +DeleteProductBuyPrice=Smazat nákupní ceny +ConfirmDeleteProductBuyPrice=Jste si jisti, že chcete smazat tuto nákupní cenu? +SubProduct=Sub produkt +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes -VariantAttributes=Variant attributes +VariantAttributes=Atributy variant ProductAttributes=Variant attributes for products ProductAttributeName=Variant attribute %s ProductAttribute=Variant attribute @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/cs_CZ/propal.lang b/htdocs/langs/cs_CZ/propal.lang index 0eb263bf88f..f3160730740 100644 --- a/htdocs/langs/cs_CZ/propal.lang +++ b/htdocs/langs/cs_CZ/propal.lang @@ -3,7 +3,7 @@ Proposals=Obchodní nabídky Proposal=Obchodní nabídka ProposalShort=Nabídka ProposalsDraft=Navrhnout obchodní nabídky -ProposalsOpened=Otevřené obchodní nabídky +ProposalsOpened=Otevřené obchodní návrhy Prop=Obchodní nabídky CommercialProposal=Obchodní nabídka ProposalCard=Karta obchodních nabídek diff --git a/htdocs/langs/cs_CZ/receiptprinter.lang b/htdocs/langs/cs_CZ/receiptprinter.lang index 756461488cc..a5fb0a175b0 100644 --- a/htdocs/langs/cs_CZ/receiptprinter.lang +++ b/htdocs/langs/cs_CZ/receiptprinter.lang @@ -1,44 +1,44 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Setup of module ReceiptPrinter -PrinterAdded=Printer %s added -PrinterUpdated=Printer %s updated -PrinterDeleted=Printer %s deleted -TestSentToPrinter=Test Sent To Printer %s -ReceiptPrinter=Receipt printers -ReceiptPrinterDesc=Setup of receipt printers -ReceiptPrinterTemplateDesc=Setup of Templates -ReceiptPrinterTypeDesc=Description of Receipt Printer's type -ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile -ListPrinters=List of Printers -SetupReceiptTemplate=Template Setup +ReceiptPrinterSetup=Nastavení modulu účtenek +PrinterAdded=%s tiskárna přidána +PrinterUpdated=%s tiskárna aktualizováno +PrinterDeleted=%s tiskárny smazána +TestSentToPrinter=Test Odeslané do tiskárny %s +ReceiptPrinter=účtenek +ReceiptPrinterDesc=Nastavení tiskárny účtenek +ReceiptPrinterTemplateDesc=Nastavení šablon +ReceiptPrinterTypeDesc=Popis typu tiskárna účtenek je +ReceiptPrinterProfileDesc=Popis profilu tiskárna účtenek je +ListPrinters=Seznam tiskáren +SetupReceiptTemplate=Nastavení šablony CONNECTOR_DUMMY=Dummy Printer -CONNECTOR_NETWORK_PRINT=Network Printer -CONNECTOR_FILE_PRINT=Local Printer -CONNECTOR_WINDOWS_PRINT=Local Windows Printer -CONNECTOR_DUMMY_HELP=Fake Printer for test, does nothing -CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 -CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 +CONNECTOR_NETWORK_PRINT=Síťová tiskárna +CONNECTOR_FILE_PRINT=místní tiskárna +CONNECTOR_WINDOWS_PRINT=Místní tiskárna Windows +CONNECTOR_DUMMY_HELP=Fake tiskárna pro zkoušku, nedělá nic +CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x: 9100 +CONNECTOR_FILE_PRINT_HELP=/Dev/usb/lp0,/dev/usb/LP1 CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer -PROFILE_DEFAULT=Default Profile -PROFILE_SIMPLE=Simple Profile +PROFILE_DEFAULT=Výchozí profil +PROFILE_SIMPLE=Zjednodušený profil PROFILE_EPOSTEP=Epos Tep Profile -PROFILE_P822D=P822D Profile -PROFILE_STAR=Star Profile -PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers -PROFILE_SIMPLE_HELP=Simple Profile No Graphics +PROFILE_P822D=P822D Profil +PROFILE_STAR=Star profil +PROFILE_DEFAULT_HELP=Výchozí profil vhodný pro tiskárny Epson +PROFILE_SIMPLE_HELP=Zjednodušený profil bez grafiky PROFILE_EPOSTEP_HELP=Epos Tep Profile Help -PROFILE_P822D_HELP=P822D Profile No Graphics -PROFILE_STAR_HELP=Star Profile -DOL_ALIGN_LEFT=Left align text -DOL_ALIGN_CENTER=Center text -DOL_ALIGN_RIGHT=Right align text -DOL_USE_FONT_A=Use font A of printer -DOL_USE_FONT_B=Use font B of printer -DOL_USE_FONT_C=Use font C of printer -DOL_PRINT_BARCODE=Print barcode -DOL_PRINT_BARCODE_CUSTOMER_ID=Print barcode customer id -DOL_CUT_PAPER_FULL=Cut ticket completely -DOL_CUT_PAPER_PARTIAL=Cut ticket partially -DOL_OPEN_DRAWER=Open cash drawer -DOL_ACTIVATE_BUZZER=Activate buzzer -DOL_PRINT_QRCODE=Print QR Code +PROFILE_P822D_HELP=P822D Profil bez grafiky +PROFILE_STAR_HELP=Star profil +DOL_ALIGN_LEFT=Doleva zarovnat +DOL_ALIGN_CENTER=Text na střed +DOL_ALIGN_RIGHT=Text doprava +DOL_USE_FONT_A=Použít písma A tiskárny +DOL_USE_FONT_B=Použít písma B tiskárny +DOL_USE_FONT_C=Použít písma C tiskárny +DOL_PRINT_BARCODE=tisk čárových kódů +DOL_PRINT_BARCODE_CUSTOMER_ID=Tisk čárového kódu ID zákazníka +DOL_CUT_PAPER_FULL=Komplet odříznutí lístku +DOL_CUT_PAPER_PARTIAL=částečně střih jízdenka +DOL_OPEN_DRAWER=Otevřená zásuvka na peníze +DOL_ACTIVATE_BUZZER=aktivovat bzučák +DOL_PRINT_QRCODE=Tisknout QR Code diff --git a/htdocs/langs/cs_CZ/resource.lang b/htdocs/langs/cs_CZ/resource.lang index 68f7d4040e0..c5043871a8c 100644 --- a/htdocs/langs/cs_CZ/resource.lang +++ b/htdocs/langs/cs_CZ/resource.lang @@ -16,7 +16,7 @@ ResourceFormLabel_description=Popis zdroje ResourcesLinkedToElement=Zdroje propojené s prvkem -ShowResource=Show resource +ShowResource=Zobrazit zdroj ResourceElementPage=Prvky zdrojů ResourceCreatedWithSuccess=Zdroj úspěšně vytvořen @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Zdroj úspěšně odstraněn DictionaryResourceType=Typy zdrojů SelectResource=Výběr zdroje + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Zdroje diff --git a/htdocs/langs/cs_CZ/salaries.lang b/htdocs/langs/cs_CZ/salaries.lang index d9b53d9346c..4f47be51d88 100644 --- a/htdocs/langs/cs_CZ/salaries.lang +++ b/htdocs/langs/cs_CZ/salaries.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kód pro platby mezd v účetnictví -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Kód pro finanční poplatek v účetnictví +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovací účet ve výchozím nastavení personálních nákladů Salary=Mzda Salaries=Mzdy NewSalaryPayment=Nová platba mzdy SalaryPayment=Platba mzdy SalariesPayments=Platby mezd ShowSalaryPayment=Ukázat platbu mzdy -THM=Average hourly rate -TJM=Average daily rate +THM=Průměrná hodinová sazba +TJM=Průměrná denní sazba CurrentSalary=Současná mzda -THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently as information only and is not used for any calculation +THMDescription=Tato hodnota může být použita pro výpočet nákladů času spotřebovaného na projektu zadaného uživatele, pokud je použit modul projektu +TJMDescription=Tato hodnota je v současné době pouze jako informace a nebyla využita k výpočtu diff --git a/htdocs/langs/cs_CZ/sendings.lang b/htdocs/langs/cs_CZ/sendings.lang index 0581949deaa..900ae1a4cf6 100644 --- a/htdocs/langs/cs_CZ/sendings.lang +++ b/htdocs/langs/cs_CZ/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Zásilkový list ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Jednoduchý vzor dokladu DocumentModelMerou=Merou A5 modelu WarningNoQtyLeftToSend=Varování: žádné zboží nečeká na dopravu StatsOnShipmentsOnlyValidated=Statistiky vedené pouze na ověřené zásilky. Datum použití je datum schválení zásilky (plánované datum dodání není vždy známo). @@ -51,10 +50,10 @@ ActionsOnShipping=Události zásilky LinkToTrackYourPackage=Odkaz pro sledování balíku ShipmentCreationIsDoneFromOrder=Pro tuto chvíli, je vytvoření nové zásilky provedeno z objednávkové karty. ShipmentLine=Řádek zásilky -ProductQtyInCustomersOrdersRunning=Množství výrobku do otevřených objednávek zákazníků -ProductQtyInSuppliersOrdersRunning=Množství výrobku do otevřených dodavatelů zakázek -ProductQtyInShipmentAlreadySent=Množství již odeslaných produktů z objednávek zákazníka -ProductQtyInSuppliersShipmentAlreadyRecevied=Množství již dodaných produktů z otevřených dodavatelských objednávek +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/cs_CZ/sms.lang b/htdocs/langs/cs_CZ/sms.lang index 17e5917b4ed..e5d815e62e5 100644 --- a/htdocs/langs/cs_CZ/sms.lang +++ b/htdocs/langs/cs_CZ/sms.lang @@ -3,7 +3,7 @@ Sms=SMS SmsSetup=Nastavení SMS SmsDesc=Tato stránka umožňuje definovat GLOBALS možnosti na SMS funkce SmsCard=SMS Card -AllSms=Všechny SMS campains +AllSms=Všechny SMS kampaně SmsTargets=Cíle SmsRecipients=Cíle SmsRecipient=Cíl @@ -14,10 +14,10 @@ SmsTopic=Téma SMS SmsText=Zpráva SmsMessage=SMS zprávy ShowSms=Zobrazit SMS -ListOfSms=Seznam SMS campains -NewSms=Nová SMS ke kampani +ListOfSms=Seznam SMS kampaní +NewSms=Nová SMS kampaň EditSms=Úprava zpráv SMS -ResetSms=New odeslání +ResetSms=Nové odeslání DeleteSms=Odstranit Sms ke kampani DeleteASms=Odebrat Sms ke kampani PreviewSms=Previuw SMS @@ -38,7 +38,7 @@ SmsStatusNotSent=Neposlal SmsSuccessfulySent=Sms správně poslal (od %s %s do) ErrorSmsRecipientIsEmpty=Počet cíle je prázdný WarningNoSmsAdded=Žádné nové telefonní číslo přidat do seznamu cílů -ConfirmValidSms=Do you confirm validation of this campain? +ConfirmValidSms=Můžete potvrdit ověření této kampaně? NbOfUniqueSms=Nb dof jedinečná telefonní čísla NbOfSms=Nbre čísel PHON ThisIsATestMessage=Toto je testovací zpráva @@ -46,6 +46,6 @@ SendSms=Pošlete SMS ve tvaru SmsInfoCharRemain=Nb zbývajících znaků SmsInfoNumero= (Mezinárodním formátu, tj.: 33899701761) DelayBeforeSending=Prodleva před odesláním (minuty) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleSenderFound=Žádný odesilatel k dispozici. Zkontrolujte nastavení vašeho poskytovatele SMS. SmsNoPossibleRecipientFound=Žádný cíl k dispozici. Zkontrolujte nastavení poskytovatele služeb SMS. diff --git a/htdocs/langs/cs_CZ/stocks.lang b/htdocs/langs/cs_CZ/stocks.lang index 45f6c4a1252..d143f7c7f74 100644 --- a/htdocs/langs/cs_CZ/stocks.lang +++ b/htdocs/langs/cs_CZ/stocks.lang @@ -2,7 +2,7 @@ WarehouseCard=Karta skladiště Warehouse=Skladiště Warehouses=Skladiště -ParentWarehouse=Parent warehouse +ParentWarehouse=Parent sklad NewWarehouse=Nové skladiště/skladová oblast WarehouseEdit=Upravit skladiště MenuNewWarehouse=Nové skladiště @@ -15,54 +15,54 @@ CancelSending=Zrušit zasílání DeleteSending=Smazat odeslání Stock=Sklad Stocks=Sklady -StocksByLotSerial=Stocks by lot/serial +StocksByLotSerial=Sklad množství/série LotSerial=Lots/Serials LotSerialList=List of lot/serials Movements=Pohyby ErrorWarehouseRefRequired=Referenční jméno skladiště je povinné ListOfWarehouses=Seznam skladišť ListOfStockMovements=Seznam skladových pohybů -StockMovementForId=Movement ID %d -ListMouvementStockProject=List of stock movements associated to project +StockMovementForId=Hnutí ID %d +ListMouvementStockProject=Seznam pohybů zásob spojené s projektem StocksArea=Oblast skladišť Location=Umístění LocationSummary=Krátký název umístění NumberOfDifferentProducts=Počet různých výrobků NumberOfProducts=Celkový počet produktů -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=poslední pohyb +LastMovements=Poslední pohyby Units=Jednotky Unit=Jednotka StockCorrection=Správný sklad -StockTransfer=Transfer stock -MassStockTransferShort=Mass stock transfer -StockMovement=Stock movement -StockMovements=Stock movements +StockTransfer=Přenos zásob +MassStockTransferShort=Přenos hmoty stock +StockMovement=Skladování +StockMovements=pohybů zásob LabelMovement=Štítek pohybu NumberOfUnit=Počet jednotek UnitPurchaseValue=Jednotková kupní cena StockTooLow=Stav skladu je nízký -StockLowerThanLimit=Stav skladu je nižší než bod výstrahy +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Hodnota PMPValue=Vážená průměrná cena PMPValueShort=WAP EnhancedValueOfWarehouses=Hodnota skladišť UserWarehouseAutoCreate=Vytvořte skladiště automaticky při vytváření uživatele -AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product +AllowAddLimitStockByWarehouse=Umožňují přidat hranice a požadované zboží za pár (výrobek, sklad) namísto na produkt IndependantSubProductStock=Sklady produktů a subproduktů jsou nezávislé QtyDispatched=Množství odesláno QtyDispatchedShort=Odeslané množství QtyToDispatchShort=Odesílané množství -OrderDispatch=Skladový dispečink -RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) -RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) +OrderDispatch=Goods Receptions +RuleForStockManagementDecrease=Pravidlo pro automatické snížení řízení zásob (manuální pokles je vždy možné, i když je aktivováno automatické pravidlo poklesu) +RuleForStockManagementIncrease=Pravidlo pro automatické zvýšení řízení zásob (manuální zvýšení je vždy možné, i když je aktivováno automatické zvýšení pravidlo) DeStockOnBill=Pokles reálných zásob na zákaznických fakturách/dobropisech validace DeStockOnValidateOrder=Pokles reálné zásoby na objednávky zákazníků validace -DeStockOnShipment=Decrease real stocks on shipping validation -DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed +DeStockOnShipment=Pokles reálné zásoby na odeslání potvrzení +DeStockOnShipmentOnClosing=Snížit skutečné zásoby na klasifikaci doprava zavřeno ReStockOnBill=Zvýšení reálné zásoby na dodavatele faktur/dobropisů validace ReStockOnValidateOrder=Zvýšení reálné zásoby na dodavatele objednávek schválení -ReStockOnDispatchOrder=Zvýšení reálné zásoby na ruční dispečinku do skladů poté, co dodavatel objedná zasílání +ReStockOnDispatchOrder=Zvýšení skutečné zásoby na ručním odesláním do skladu poté, co dodavatel přijetí objednávky zboží OrderStatusNotReadyToDispatch=Objednávka ještě není, nebo nastavení statusu, který umožňuje zasílání výrobků na skladě. StockDiffPhysicTeoric=Vysvětlení rozdílu mezi fyzickým a teoretickým skladem NoPredefinedProductToDispatch=Žádné předdefinované produkty pro tento objekt. Takže není třeba odesílání na skladě. @@ -71,7 +71,10 @@ StockLimitShort=Limit pro upozornění StockLimit=Skladový limit pro upozornění PhysicalStock=Fyzický sklad RealStock=Skutečný sklad +RealStockDesc=Fyzická nebo skutečné populace populace v současné době máte na svých vnitřních skladů / stanovišť. +RealStockWillAutomaticallyWhen=Skutečný fond se automaticky změní podle tohoto pravidla (viz nastavení stock modul tento stav změnit): VirtualStock=Virtuální sklad +VirtualStockDesc=Virtuální fond je fond dostanete jednou všechny otevření nevyřízené akce, které mají vliv na akcie bude uzavřen (dodavatel pořadí přijatých zákaznických objednávek dodáno, ...) IdWarehouse=ID skladu DescWareHouse=Popis skladiště LieuWareHouse=Lokalizace skladiště @@ -80,19 +83,19 @@ WarehousesAndProductsBatchDetail=Skladiště a výrobky (s detaily na množství AverageUnitPricePMPShort=Vážený průměr cen vstupů AverageUnitPricePMP=Vážený průměr cen vstupů SellPriceMin=Prodejní jednotka Cena -EstimatedStockValueSellShort=Value for sell -EstimatedStockValueSell=Value for sell +EstimatedStockValueSellShort=Hodnota k prodeji +EstimatedStockValueSell=Hodnota k prodeji EstimatedStockValueShort=Vstupní hodnota zásob EstimatedStockValue=Vstupní hodnota zásob DeleteAWarehouse=Odstranění skladiště -ConfirmDeleteWarehouse=Are you sure you want to delete the warehouse %s? +ConfirmDeleteWarehouse=Jste si jisti, že chcete vymazat sklad %s ? PersonalStock=Osobní sklad %s ThisWarehouseIsPersonalStock=Tento sklad představuje osobní zásobu %s %s SelectWarehouseForStockDecrease=Zvolte skladiště pro použití snížení zásob SelectWarehouseForStockIncrease=Zvolte skladiště pro zvýšení stavu zásob NoStockAction=Žádné akce ve skladu -DesiredStock=Desired optimal stock -DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature. +DesiredStock=Požadované optimální zásoby +DesiredStockDesc=Tato částka bude hodnota použitá k vyplnění zásoby podle funkce doplnění. StockToBuy=Chcete-li objednat Replenishment=Naplnění ReplenishmentOrders=Doplňování objednávky @@ -109,37 +112,84 @@ AlertOnly= Pouze upozornění WarehouseForStockDecrease=Skladiště %s budou použity pro snížení skladu WarehouseForStockIncrease=Skladiště %s budou použity pro zvýšení stavu zásob ForThisWarehouse=Z tohoto skladiště -ReplenishmentStatusDesc=This is a list of all products with a stock lower than desired stock (or lower than alert value if checkbox "alert only" is checked). Using the checkbox, you can create supplier orders to fill the difference. -ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here. +ReplenishmentStatusDesc=Toto je seznam všech produktů s nižší než požadovanou zásobou skladem (nebo nižší než hodnota výstrahy, pokud je pole "pouze upozornění" zaškrtnuto), a doporučuje vám vytvořit dodavatelské objednávky pro doplnění rozdílu. +ReplenishmentOrdersDesc=Toto je seznam všech otevřených dodavatelských objednávek, včetně předem stanovených výrobků. Jen otevřené objednávky s předdefinovanými produkty, které mohou mít vliv na zásoby, jsou zde viditelné. Replenishments=Splátky NbOfProductBeforePeriod=Množství produktů %s na skladě, než zvolené období (< %s) NbOfProductAfterPeriod=Množství produktů %s na skladě po zvolené období (> %s) MassMovement=Hromadný pohyb SelectProductInAndOutWareHouse=Vyberte produkt, množství, zdrojový sklad a cílový sklad, pak klikněte na "%s". Jakmile se tak stane pro všechny požadované pohyby, klikněte na "%s". -RecordMovement=Záznam převodu +RecordMovement=Record transfer ReceivingForSameOrder=Příjmy pro tuto objednávku StockMovementRecorded=Zaznamenány pohyby zásob RuleForStockAvailability=Pravidla o požadavcích na skladě -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change) -StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) -StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) +StockMustBeEnoughForInvoice=Úroveň zásob musí být dostatečně přidat produkt / službu fakturovat (kontrola se provádí na současnou reálnou skladě při přidání řádku do faktury, co je pravidlo pro automatickou změnu populace) +StockMustBeEnoughForOrder=Úroveň zásob musí být dostatečně přidat produkt / službu na objednávku (kontrola se provádí na současnou reálnou skladě při přidání řádku do pořádku, co je pravidlo pro automatickou změnu populace) +StockMustBeEnoughForShipment= Úroveň zásob musí být dostatečně přidat výrobek / službu přepravy (kontrola se provádí na současnou reálnou skladě při přidání řádku do zásilky, co je pravidlo pro automatickou změnu populace) MovementLabel=Štítek pohybu InventoryCode=Kód pohybu nebo zásob IsInPackage=Obsažené v zásilce -WarehouseAllowNegativeTransfer=Stock can be negative -qtyToTranferIsNotEnough=You don't have enough stock from your source warehouse +WarehouseAllowNegativeTransfer=Sklad může být negativní +qtyToTranferIsNotEnough=Nemáte dostatek akcií ze zdrojového skladu ShowWarehouse=Ukázat skladiště MovementCorrectStock=Sklad obsahuje korekci pro produkt %s MovementTransferStock=Přenos skladových produktů %s do jiného skladiště InventoryCodeShort=Inventární/pohybový kód NoPendingReceptionOnSupplierOrder=Nečeká na příjem kvůli otevřené dodavatelské objednávce ThisSerialAlreadyExistWithDifferentDate=Toto množství/sériové číslo (%s) už ale s odlišnou spotřebou nebo datem prodeje existuje (found %s ale zadáte %s). -OpenAll=Open for all actions -OpenInternal=Open only for internal actions -UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception -OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated -ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created -ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated -ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted -AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +OpenAll=Otevřený pro všechny akce +OpenInternal=Otevřít pouze pro vnitřní akce +UseDispatchStatus=Použijte stav odeslání (schvalovat / odpadu) pro produktových řad Na dodavatel objednávky příjmu +OptionMULTIPRICESIsOn=Option „několik cen za segmentu“ svítí. To znamená, že výrobek má několik prodejní cenu, takže hodnota k prodeji nelze vypočítat +ProductStockWarehouseCreated=Sklad limit pro pohotovosti a požadovanou optimální stock vytvořen správně +ProductStockWarehouseUpdated=Sklad limit pro pohotovosti a požadovanou optimální stock správně aktualizována +ProductStockWarehouseDeleted=Sklad limit pro pohotovosti a požadovanou optimální stock správně smazána +AddNewProductStockWarehouse=Nastavit nový limit pro pohotovosti a požadovanou optimální zásoby +AddStockLocationLine=Snížit množství klepnutím přidat další sklad pro tento produkt +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Úprava +inventoryValidate=Ověřeno +inventoryDraft=Běží +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Vytvořit +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filtr kategorie +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Přidat +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Odstranění řádku +RegulateStock=Regulate Stock +ListInventory=Seznam diff --git a/htdocs/langs/cs_CZ/stripe.lang b/htdocs/langs/cs_CZ/stripe.lang new file mode 100644 index 00000000000..faf5e34475a --- /dev/null +++ b/htdocs/langs/cs_CZ/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Přes URL jsou k dispozici nabízené stránky, které zákazníkovi umožní provést platbu na Dolibarr objektech +PaymentForm=Formulář platby +WelcomeOnPaymentPage=Vítáme Vás na naší on-line platební službě +ThisScreenAllowsYouToPay=Tato obrazovka vám umožní provést on-line platbu %s. +ThisIsInformationOnPayment=Jsou zde informace o provedené platbě +ToComplete=Chcete-li dokončit +YourEMail=E-mail pro potvrzení platby +STRIPE_PAYONLINE_SENDEMAIL=Upozorňující e-mail po platbě (úspěch nebo zamítnutí) +Creditor=Věřitel +PaymentCode=Platební kód +StripeDoPayment=Jít na platbu +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Další +ToOfferALinkForOnlinePayment=URL pro %s platby +ToOfferALinkForOnlinePaymentOnOrder=URL nabízí %s on-line platební uživatelské rozhraní pro objednávky zákazníka +ToOfferALinkForOnlinePaymentOnInvoice=URL nabízí %s on-line platební uživatelské rozhraní pro zákaznické faktury +ToOfferALinkForOnlinePaymentOnContractLine=URL nabízí %s on-line platební uživatelské rozhraní pro řádky smluv +ToOfferALinkForOnlinePaymentOnFreeAmount=URL nabízí %s on-line platební uživatelské rozhraní pro volnou částku +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL nabízí %s on-line platební uživatelské rozhraní pro členské předplatné +YouCanAddTagOnUrl=Můžete také přidat parametr URL &tag = hodnota na některou z těchto URL (nutné pouze pro volné platby) a přidat vlastní komentář platby. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Tato stránka potvrzuje, že platba byla zaznamenána. Děkuju. +YourPaymentHasNotBeenRecorded=Vaše platba nebyla zaznamenána a transakce byla zrušena. Děkuju. +AccountParameter=Parametry účtu +UsageParameter=Použité parametry +InformationToFindParameters=Pomozte najít %s informace o účtu +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Název dodavatele +CSSUrlForPaymentForm=CSS styly url platebního formuláře +MessageOK=Návratová stránka se zprávou o schválení platby +MessageKO=Návratová stránka se zprávou o zrušení platby +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/cs_CZ/supplier_proposal.lang b/htdocs/langs/cs_CZ/supplier_proposal.lang index c3949dea731..7761ccf8ce6 100644 --- a/htdocs/langs/cs_CZ/supplier_proposal.lang +++ b/htdocs/langs/cs_CZ/supplier_proposal.lang @@ -1,55 +1,55 @@ # Dolibarr language file - Source file is en_US - supplier_proposal -SupplierProposal=Supplier commercial proposals -supplier_proposalDESC=Manage price requests to suppliers -SupplierProposalNew=New request -CommRequest=Price request -CommRequests=Price requests -SearchRequest=Find a request -DraftRequests=Draft requests -SupplierProposalsDraft=Draft supplier proposals -LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests -SupplierProposalArea=Supplier proposals area -SupplierProposalShort=Supplier proposal -SupplierProposals=Supplier proposals -SupplierProposalsShort=Supplier proposals -NewAskPrice=New price request -ShowSupplierProposal=Show price request -AddSupplierProposal=Create a price request -SupplierProposalRefFourn=Supplier ref +SupplierProposal=Komerční návrhy dodavatele +supplier_proposalDESC=Správa žádostí o ceny k dodavatelům +SupplierProposalNew=Nová žádost +CommRequest=Cenový požadavek +CommRequests=Cenové požadavky +SearchRequest=Najít požadavek +DraftRequests=Návrhy žádosti +SupplierProposalsDraft=Koncept návrhu dodavatele +LastModifiedRequests=Poslední %s modifikované cenové požadavky +RequestsOpened=Otevřené cenové požadavky +SupplierProposalArea=Oblast návrhů dodavatele +SupplierProposalShort=Návrh dodavatele +SupplierProposals=Návrhy dodavatele +SupplierProposalsShort=Návrhy dodavatele +NewAskPrice=Nový cenový poožadavek +ShowSupplierProposal=Zobrazit cenový požadavek +AddSupplierProposal=Vytvoření cenového požadavku +SupplierProposalRefFourn=dodavatel ref SupplierProposalDate=Termín dodání -SupplierProposalRefFournNotice=Before closing to "Accepted", think to grasp suppliers references. -ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? -DeleteAsk=Delete request -ValidateAsk=Validate request +SupplierProposalRefFournNotice=Před uzavřením se „Akceptovaným“, myslí, že pochopil dodavatele reference. +ConfirmValidateAsk=Jste si jisti, že chcete ověřit tento cenový požadavek pod jménem %s ? +DeleteAsk=Odstranit žádost +ValidateAsk=Ověření požadavku SupplierProposalStatusDraft=Návrh (musí být ověřen) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validované (požadavek je otevřen) SupplierProposalStatusClosed=Zavřeno -SupplierProposalStatusSigned=Accepted +SupplierProposalStatusSigned=Přijato SupplierProposalStatusNotSigned=Odmítnuto SupplierProposalStatusDraftShort=Návrh SupplierProposalStatusValidatedShort=Ověřeno SupplierProposalStatusClosedShort=Zavřeno -SupplierProposalStatusSignedShort=Accepted +SupplierProposalStatusSignedShort=Přijato SupplierProposalStatusNotSignedShort=Odmítnuto -CopyAskFrom=Create price request by copying existing a request -CreateEmptyAsk=Create blank request -CloneAsk=Clone price request -ConfirmCloneAsk=Are you sure you want to clone the price request %s? -ConfirmReOpenAsk=Are you sure you want to open back the price request %s? -SendAskByMail=Send price request by mail -SendAskRef=Sending the price request %s -SupplierProposalCard=Request card -ConfirmDeleteAsk=Are you sure you want to delete this price request %s? -ActionsOnSupplierProposal=Events on price request -DocModelAuroreDescription=A complete request model (logo...) -CommercialAsk=Price request +CopyAskFrom=Vytvoření cenového požadavku zkopírováním stávající žádosti +CreateEmptyAsk=Vytvořit prázdný požadavek +CloneAsk=Klonovat cenový požadavek +ConfirmCloneAsk=Jste si jisti, že chcete naklonovat požadavek na cenu %s ? +ConfirmReOpenAsk=Jste si jisti, že chcete otevřít zpět žádost o cenu %s ? +SendAskByMail=Poslat cenový požadavek mailem +SendAskRef=Zaslání cenového požadavku %s +SupplierProposalCard=žádost o kartu +ConfirmDeleteAsk=Opravdu chcete tuto cenovou žádost %s smazat? +ActionsOnSupplierProposal=Události cenových požadavků +DocModelAuroreDescription=Kompletní model, žádost (logo ...) +CommercialAsk=Cenový požadavek DefaultModelSupplierProposalCreate=Tvorba z výchozí šablony -DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) -DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests -ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project -SupplierProposalsToClose=Supplier proposals to close -SupplierProposalsToProcess=Supplier proposals to process -LastSupplierProposals=Latest %s price requests -AllPriceRequests=All requests +DefaultModelSupplierProposalToBill=Výchozí šablona při zavírání cenového požadavku (vzat v potaz) +DefaultModelSupplierProposalClosed=Výchozí šablona při zavírání cenového požadavku (zamítnuto) +ListOfSupplierProposals=Seznam dodavatelských žádostí o návrh +ListSupplierProposalsAssociatedProject=Seznamy dodavatelských návrhů spojené s projektem +SupplierProposalsToClose=Uzavřený návrh dodavatele +SupplierProposalsToProcess=Návrh dodavatele ve zpracování +LastSupplierProposals=Poslední žádosti %s cena +AllPriceRequests=Všechny žádosti diff --git a/htdocs/langs/cs_CZ/suppliers.lang b/htdocs/langs/cs_CZ/suppliers.lang index 81251edd8ac..6ab9cd5b02b 100644 --- a/htdocs/langs/cs_CZ/suppliers.lang +++ b/htdocs/langs/cs_CZ/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Některé vedlejší produkty nemají stanovené žádné ceny AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Dodavatelské ceny ReferenceSupplierIsAlreadyAssociatedWithAProduct=Tato referenční dodavatel je již spojeno s odkazem: %s NoRecordedSuppliers=Žádní zaznamenaní dodavatelé SupplierPayment=Platba dodavatele @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Dodavatelské ceny diff --git a/htdocs/langs/cs_CZ/trips.lang b/htdocs/langs/cs_CZ/trips.lang index bec2b0607b4..f9020a5e506 100644 --- a/htdocs/langs/cs_CZ/trips.lang +++ b/htdocs/langs/cs_CZ/trips.lang @@ -9,10 +9,10 @@ TripCard=Karta zpráv výdajů AddTrip=Vytvoření zprávy o výdajích ListOfTrips=Seznam vyúčtování výdajů ListOfFees=Sazebník poplatků -TypeFees=Types of fees +TypeFees=Druhy poplatků ShowTrip=Show expense report NewTrip=Nová zpráva výdaje -CompanyVisited=Firma/nadace navštívena +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Množství nebo kilometrů DeleteTrip=Smazat zprávy o výdajích ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Datum schválení DATE_CANCEL=Datum přerušení DATE_PAIEMENT=Datum platby BROUILLONNER=Znovu otevřeno +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Kontrola a odeslání schválení ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=Nejste autorem této zprávy výdajů. Operace zrušena. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Žádná zpráva o výdajích na export pro toto období. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/cs_CZ/users.lang b/htdocs/langs/cs_CZ/users.lang index 49359f39815..9b5652d8907 100644 --- a/htdocs/langs/cs_CZ/users.lang +++ b/htdocs/langs/cs_CZ/users.lang @@ -8,7 +8,7 @@ EditPassword=Upravit heslo SendNewPassword=Vytvořit a zaslat heslo ReinitPassword=Vytvořit heslo PasswordChangedTo=Heslo změněno na: %s -SubjectNewPassword=Your new password for %s +SubjectNewPassword=Vaše nové heslo pro %s GroupRights=Skupina oprávnění UserRights=Uživatelská oprávnění UserGUISetup=Nastavení uživatelského zobrazení @@ -19,12 +19,12 @@ DeleteAUser=Vymazat uživatele EnableAUser=Povolit uživatele DeleteGroup=Vymazat DeleteAGroup=Smazat skupinu -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Jste si jisti, že chcete zakázat uživatele %s ? +ConfirmDeleteUser=Jste si jisti, že chcete smazat uživatele %s ? +ConfirmDeleteGroup=Jste si jisti, že chcete smazat skupinu %s ? +ConfirmEnableUser=Jste si jisti, že chcete povolit uživatele %s? +ConfirmReinitPassword=Jste si jisti, že chcete vytvořit nové heslo pro uživatele %s ? +ConfirmSendNewPassword=Jste si jisti, že chcete vytvořit a odeslat nové heslo uživateli %s? NewUser=Nový uživatel CreateUser=Vytvořit uživatele LoginNotDefined=Přihlášení není definováno. @@ -45,8 +45,8 @@ RemoveFromGroup=Odstranit ze skupiny PasswordChangedAndSentTo=Heslo změněno a poslán na %s. PasswordChangeRequestSent=Žádost o změnu hesla %s zaslána na %s. MenuUsersAndGroups=Uživatelé a skupiny -LastGroupsCreated=Latest %s created groups -LastUsersCreated=Latest %s users created +LastGroupsCreated=Posledních %s vytvořených skupin +LastUsersCreated=Posledních %s vytvořených uživatelů ShowGroup=Zobrazit skupinu ShowUser=Zobrazit uživatele NonAffectedUsers=Nepřiřazení uživatelé @@ -66,7 +66,7 @@ InternalUser=Interní uživatel ExportDataset_user_1=Uživatelé Dolibarr a jejich vlastnosti DomainUser=Doménový uživatel %s Reactivate=Reaktivace -CreateInternalUserDesc=Tento formulář vám umožní vytvořit interního uživateli Vaší společnosti/nadace. Pro vytvoření externího uživatele (zákazník, dodavatel, ...), použijte tlačítko 'Vytvořit uživatele' z karty kontaktu třetí strany. +CreateInternalUserDesc=Tento formulář vám umožní vytvořit interního uživateli Vaší společnosti / nadace. Pro vytvoření externího uživatele (zákazník, dodavatel, ...), použijte tlačítko 'Vytvořit uživatele Dolibarr' z karty kontaktu třetí strany. InternalExternalDesc=Interní uživatel je uživatel, který je součástí vaší firmy / nadace.
Externí uživatel je zákazník, dodavatel nebo jiný.

V obou případech se oprávněními definují práva na Dolibarr. Externí uživatel navíc může mít jinou nabídku menu než-li interní (viz Domů - Nastavení - Zobrazení) PermissionInheritedFromAGroup=Povolení uděleno, neboť je zděděno z některé uživatelské skupiny. Inherited=Zděděný @@ -82,9 +82,9 @@ UserDeleted=Uživatel %s odstraněn NewGroupCreated=Skupina %s vytvořena GroupModified=Skupina %s upravena GroupDeleted=Skupina %s odstraněna -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? +ConfirmCreateContact=Jste si jisti, že chcete vytvořit účet Dolibarr k tomuto kontaktu? +ConfirmCreateLogin=Jste si jisti, že chcete vytvořit účet Dolibarr pro tohoto člena? +ConfirmCreateThirdParty=Jste si jisti, že chcete vytvořit subjekt k tomuto členu? LoginToCreate=K vytvoření je potřeba se přihlásit NameToCreate=Název třetí strany k vytvoření YourRole=Vaše role @@ -98,8 +98,8 @@ OpenIDURL=OpenID URL LoginUsingOpenID=Použijte OpenID pro přihlášení WeeklyHours=Týdenní hodiny ColorUser=Barva uživatele -DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accountancy code -UserLogoff=User logout -UserLogged=User logged -DateEmployment=Date of Employment +DisabledInMonoUserMode=Zakázán v režimu údržby +UserAccountancyCode=účetnictví kód User +UserLogoff=odhlášení uživatele +UserLogged=přihlášený uživatel +DateEmployment=Datum zaměstnanost diff --git a/htdocs/langs/cs_CZ/website.lang b/htdocs/langs/cs_CZ/website.lang index 6197580711f..78a904e30f7 100644 --- a/htdocs/langs/cs_CZ/website.lang +++ b/htdocs/langs/cs_CZ/website.lang @@ -1,28 +1,31 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. -DeleteWebsite=Delete website -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. -WEBSITE_PAGENAME=Page name/alias -WEBSITE_CSS_URL=URL of external CSS file -WEBSITE_CSS_INLINE=CSS content -MediaFiles=Media library -EditCss=Edit Style/CSS -EditMenu=Edit menu -EditPageMeta=Edit Meta -EditPageContent=Edit Content -Website=Web site -Webpage=Web page -AddPage=Add page -PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added -ViewSiteInNewTab=View site in new tab -ViewPageInNewTab=View page in new tab -SetAsHomePage=Set as Home page -RealURL=Real URL -ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +Shortname=Kód +WebsiteSetupDesc=Vytvořte zde tolik vstupů jako množství různých webových stránek, které potřebujete. Pak přejděte do nabídky webové stránky na jejich editaci. +DeleteWebsite=Odstranit web +ConfirmDeleteWebsite=Jste si jisti, že chcete smazat tuto webovou stránku? Všechny stránky a obsah budou odstraněny. +WEBSITE_PAGENAME=Název stránky / alias +WEBSITE_CSS_URL=URL externího souboru CSS +WEBSITE_CSS_INLINE=obsah CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +MediaFiles=knihovna multimédií +EditCss=Editace Style / CSS +EditMenu=Úprava menu +EditPageMeta=Editovat Meta +EditPageContent=Editovat obsah +Website=Webová stránka +Webpage=webová stránka +AddPage=Přidat stránku +HomePage=Home Page +PreviewOfSiteNotYetAvailable=Ukázky vaše webové stránky %s ještě nejsou k dispozici. Musíte nejprve přidat stránku. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. +PageDeleted=Strana ‚%s‘ z webové stránky %s odstraněny +PageAdded=Stránka ‚%s‘ přidána +ViewSiteInNewTab=Zobrazit stránku v nové záložce +ViewPageInNewTab=Zobrazit stránku v nové kartě +SetAsHomePage=Nastavit jako domovskou stránku +RealURL=real URL +ViewWebsiteInProduction=Pohled webové stránky s použitím domácí adresy URL +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/cs_CZ/withdrawals.lang b/htdocs/langs/cs_CZ/withdrawals.lang index 23de262bd58..6db579978be 100644 --- a/htdocs/langs/cs_CZ/withdrawals.lang +++ b/htdocs/langs/cs_CZ/withdrawals.lang @@ -1,30 +1,30 @@ # Dolibarr language file - Source file is en_US - withdrawals -CustomersStandingOrdersArea=Direct debit payment orders area -SuppliersStandingOrdersArea=Direct credit payment orders area -StandingOrders=Direct debit payment orders -StandingOrder=Direct debit payment order -NewStandingOrder=New direct debit order +CustomersStandingOrdersArea=Plocha trvalých příkazů zákazníků +SuppliersStandingOrdersArea=Direct kreditní platební příkazy area +StandingOrders=Inkasní příkazy k úhradě +StandingOrder=Platba inkasem platební příkaz +NewStandingOrder=Nový příkaz k inkasu StandingOrderToProcess=Ve zpracování -WithdrawalsReceipts=Direct debit orders -WithdrawalReceipt=Direct debit order -LastWithdrawalReceipts=Latest %s direct debit files -WithdrawalsLines=Direct debit order lines -RequestStandingOrderToTreat=Request for direct debit payment order to process -RequestStandingOrderTreated=Request for direct debit payment order processed +WithdrawalsReceipts=příkazy k inkasu +WithdrawalReceipt=Trvalý příkaz +LastWithdrawalReceipts=Poslední %s soubory inkasní +WithdrawalsLines=Řádky výběrů +RequestStandingOrderToTreat=Žádost o inkasní platby, abychom mohli zpracovat +RequestStandingOrderTreated=Žádost o zpracované trvalé příkazy NotPossibleForThisStatusOfWithdrawReceiptORLine=Není to možné. Výběrový status musí být nastaven na 'připsání' před prohlášením odmítnutí na konkrétních řádcích. -NbOfInvoiceToWithdraw=Nb. of invoice with direct debit order -NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information -InvoiceWaitingWithdraw=Invoice waiting for direct debit +NbOfInvoiceToWithdraw=Nb. faktury s příkazu k inkasu +NbOfInvoiceToWithdrawWithInfo=Nb. zákaznické faktury s inkasní příkazy k úhradě s definovanými údaje o bankovním účtu +InvoiceWaitingWithdraw=Faktura čeká na inkaso AmountToWithdraw=Částka výběru -WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Žádné zákaznické faktury v režimu platby "výběr"nečekají. Přejděte na "výběrovou" tabulku na kartě faktury a vytvořte požadavek +WithdrawsRefused=Přímé inkaso odmítnuto +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odpovědný uživatel -WithdrawalsSetup=Direct debit payment setup -WithdrawStatistics=Direct debit payment statistics -WithdrawRejectStatistics=Direct debit payment reject statistics -LastWithdrawalReceipt=Latest %s direct debit receipts -MakeWithdrawRequest=Make a direct debit payment request -WithdrawRequestsDone=%s direct debit payment requests recorded +WithdrawalsSetup=setup platba Platba inkasem +WithdrawStatistics=Statistika platební inkasem +WithdrawRejectStatistics=Inkasní platba odmítnout statistik +LastWithdrawalReceipt=Poslední %s přímého inkasa debetní +MakeWithdrawRequest=Vytvořit požadavek výběru +WithdrawRequestsDone=%s přímé žádosti o debetní platební zaznamenán ThirdPartyBankCode=Bankovní kód třetí strany NoInvoiceCouldBeWithdrawed=Neúspěšný výběr z faktur. Zkontrolujte, že faktury jsou na firmy s platným BAN. ClassCredited=Označit přidání kreditu @@ -41,6 +41,7 @@ RefusedReason=Důvod odmítnutí RefusedInvoicing=Fakturace odmítnutí NoInvoiceRefused=Neúčtovat odmítnutí InvoiceRefused=Faktura odmítnuta (Účtujte odmítnutí k zákazníkovi) +StatusDebitCredit=Stav debetní / kreditní StatusWaiting=Čekání StatusTrans=odesláno StatusCredited=Připsání @@ -48,7 +49,7 @@ StatusRefused=Odmítnutí StatusMotif0=Nespecifikovaný StatusMotif1=Nedostatek finančních prostředků StatusMotif2=Žádost o napadení -StatusMotif3=No direct debit payment order +StatusMotif3=No platební příkaz k inkasu StatusMotif4=Objednávka zákazníka StatusMotif5=RIB nepoužitelný StatusMotif6=Účet bez rovnováhy @@ -63,43 +64,43 @@ NotifyCredit=Výběr kreditu NumeroNationalEmetter=Národní převodní číslo WithBankUsingRIB=U bankovních účtů pomocí RIB WithBankUsingBANBIC=U bankovních účtů pomocí IBAN/BIC/SWIFT -BankToReceiveWithdraw=Bank account to receive direct debit +BankToReceiveWithdraw=Bankovní účet pro příjem inkaso CreditDate=Kredit na WithdrawalFileNotCapable=Nelze generovat soubor výběru příjmu pro vaši zemi %s (Vaše země není podporována) ShowWithdraw=Zobrazit výběr IfInvoiceNeedOnWithdrawPaymentWontBeClosed=Nicméně, pokud faktura má alespoň jednu dosud nezpracovanou platbu z výběru, nebude nastavena jako placená pro povolení řízení výběru. -DoStandingOrdersBeforePayments=This tab allows you to request a direct debit payment order. Once done, go into menu Bank->Direct Debit orders to manage the direct debit payment order. When payment order is closed, payment on invoice will be automatically recorded, and invoice closed if remainder to pay is null. +DoStandingOrdersBeforePayments=Tato karta vám umožňuje požádat o trvalý příkaz. Jakmile to bude hotové,jděte do menu Bankovní údaje-> Výběry pro zřízení trvalého příkazu. Když je trvalý příkazu hotov, platba na faktuře bude automaticky zaznamenána a faktura uzavřena, pokud zbývající částka k placení je nula. WithdrawalFile=Soubor výběru SetToStatusSent=Nastavte na stav "Odeslaný soubor" ThisWillAlsoAddPaymentOnInvoice=To se bude vztahovat i platby faktur a bude klasifikováno jako "Placeno" StatisticsByLineStatus=Statistika podle stavu řádků RUM=UMR -RUMLong=Unique Mandate Reference -RUMWillBeGenerated=UMR number will be generated once bank account information are saved -WithdrawMode=Direct debit mode (FRST or RECUR) -WithdrawRequestAmount=Amount of Direct debit request: -WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. +RUMLong=Unikátní Mandát Referenční +RUMWillBeGenerated=UMR číslo se vygenerují údaje o bankovním účtu jsou uloženy +WithdrawMode=Režim přímé inkaso (FRST nebo opakovat) +WithdrawRequestAmount=Množství přání inkasa +WithdrawRequestErrorNilAmount=Nelze vytvořit inkasa Žádost o prázdnou hodnotu. SepaMandate=SEPA Direct Debit Mandate -SepaMandateShort=SEPA Mandate -PleaseReturnMandate=Please return this mandate form by email to %s or by mail to -SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. -CreditorIdentifier=Creditor Identifier -CreditorName=Creditor’s Name -SEPAFillForm=(B) Please complete all the fields marked * +SepaMandateShort=SEPA Mandát +PleaseReturnMandate=Prosím, vraťte tento mandát formulář poštou na adresu %s nebo poštou na adresu +SEPALegalText=Podpisem tohoto mandátu formuláře opravňujete (A) %s zaslat instrukce do své banky, aby vrub vašeho účtu a (b) vaše banka k tíži účtu v souladu s pokyny od %s. Jako součást svých práv, máte nárok na vrácení peněz od banky v souladu s podmínkami a podmínkami vaší smlouvy se svou bankou. Náhrada musí být uplatněna nejpozději do 8 týdnů od data, kdy byl váš účet odepsána. Vaše práva týkající se výše uvedeného pověření jsou vysvětleny v prohlášení, které můžete získat od své banky. +CreditorIdentifier=věřitel Identifier +CreditorName=Jméno věřitele +SEPAFillForm=(B) Vyplňte prosím všechna pole označená * SEPAFormYourName=Vaše jméno -SEPAFormYourBAN=Your Bank Account Name (IBAN) -SEPAFormYourBIC=Your Bank Identifier Code (BIC) -SEPAFrstOrRecur=Type of payment -ModeRECUR=Reccurent payment -ModeFRST=One-off payment -PleaseCheckOne=Please check one only +SEPAFormYourBAN=Vaše banka Název účtu (IBAN) +SEPAFormYourBIC=Váš identifikační kód banky (BIC) +SEPAFrstOrRecur=Způsob platby +ModeRECUR=Reccurent platba +ModeFRST=Jednorázová platba +PleaseCheckOne=Zkontrolujte prosím jen jeden ### Notifications -InfoCreditSubject=Payment of direct debit payment order %s by the bank -InfoCreditMessage=The direct debit payment order %s has been paid by the bank
Data of payment: %s -InfoTransSubject=Transmission of direct debit payment order %s to bank -InfoTransMessage=The direct debit payment order %s has been sent to bank by %s %s.

+InfoCreditSubject=Placení inkasní příkaz k úhradě %s bankou +InfoCreditMessage=Trvalý příkaz %s byl vyplacen bankou
Údaje o platbě: %s +InfoTransSubject=Přenos inkasní příkaz k úhradě do banky %s +InfoTransMessage=Inkaso platební příkaz %s byla odeslána do banky by %s %s.
InfoTransData=Částka: %s
Metoda: %s
Datum: %s -InfoRejectSubject=Direct debit payment order refused -InfoRejectMessage=Hello,

the direct debit payment order of invoice %s related to the company %s, with an amount of %s has been refused by the bank.

--
%s +InfoRejectSubject=Přímá platební příkaz k inkasu odmítl +InfoRejectMessage=Dobrý den,

inkasní příkaz k úhradě faktury %s související s %s společnosti, s takovým množstvím %s byla zamítnuta bankou
-.
%s ModeWarning=Volba pro reálný režim nebyl nastaven, můžeme zastavit tuto simulaci diff --git a/htdocs/langs/cs_CZ/workflow.lang b/htdocs/langs/cs_CZ/workflow.lang index 0cc983f4960..fed3a5e4205 100644 --- a/htdocs/langs/cs_CZ/workflow.lang +++ b/htdocs/langs/cs_CZ/workflow.lang @@ -1,15 +1,15 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Nastavení workflow modulu WorkflowDesc=Tento modul je určen k úpravě chování automatických akcí, v aplikaci. Ve výchozím nastavení workflow je otevřen (uděláte něco, co chcete). Můžete aktivovat automatické akce, které jsou zajímavé. -ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. +ThereIsNoWorkflowToModify=Workflow zde není nastaven, můžete upravit modul pokud ho chcete aktivovat. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Vytvoření objednávky zákazníka automaticky po podepsání komerčního návrhu -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu až po podpisu obchodní návrh +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou faktury poté, co smlouva byla ověřena +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automaticky vytvoří zákaznickou fakturu za objednávku zákazníka je uzavřen descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Označit propojený zdrojový návrh jako zaúčtovaný, když je objednávka zákazníka nastavena jako placená descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtované, když jsou zákaznické faktury nastaveny jako placené descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Označit propojenou zdrojovou objednávku zákazníka(ů) jako zaúčtovanou, když je ověřená zákaznická faktura -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Klasifikovat propojený zdroj návrh účtovaný když je zákazník faktury ověřen +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Klasifikovat propojený zdroj rozkaz dodáván, když je zásilka ověřena a množství dodáno je stejný jako v pořadí +AutomaticCreation=Automatická tvorba +AutomaticClassification=Automatická klasifikace diff --git a/htdocs/langs/da_DK/accountancy.lang b/htdocs/langs/da_DK/accountancy.lang index de519af0d19..e23601db728 100644 --- a/htdocs/langs/da_DK/accountancy.lang +++ b/htdocs/langs/da_DK/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Tilføj en regnskabsmæssig konto AccountAccounting=Regnskabsmæssig konto AccountAccountingShort=Konto SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Salg AccountingJournalType3=Køb AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksporter Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Eksportmodul OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Vælg en eksportmodel diff --git a/htdocs/langs/da_DK/admin.lang b/htdocs/langs/da_DK/admin.lang index b1d7bc816a3..ab491d6cfc9 100644 --- a/htdocs/langs/da_DK/admin.lang +++ b/htdocs/langs/da_DK/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Regnskabsmæssig ekspert -Module1400Desc=Regnskabsmæssig forvaltning for eksperter (dobbelt parterne) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul til at tilbyde en online betaling side med kreditkort med Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Regnskabsmæssig forvaltning for eksperter (dobbelt parterne) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/da_DK/agenda.lang b/htdocs/langs/da_DK/agenda.lang index 1d93b0a8e3f..9a6be522f77 100644 --- a/htdocs/langs/da_DK/agenda.lang +++ b/htdocs/langs/da_DK/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Bestil valideret @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s sendt via e-mail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Startdato DateActionEnd=Slutdato AgendaUrlOptions1=Du kan også tilføje følgende parametre til at filtrere output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=logint= %s for at begrænse produktionen til aktioner påvirket til brugeren %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/da_DK/banks.lang b/htdocs/langs/da_DK/banks.lang index 0ccdf116b97..497d363346f 100644 --- a/htdocs/langs/da_DK/banks.lang +++ b/htdocs/langs/da_DK/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaktions-id BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/da_DK/bills.lang b/htdocs/langs/da_DK/bills.lang index 0646513f469..4a54b435151 100644 --- a/htdocs/langs/da_DK/bills.lang +++ b/htdocs/langs/da_DK/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard faktura InvoiceStandardAsk=Standard faktura InvoiceStandardDesc=Denne form for faktura er den fælles faktura. -InvoiceDeposit=Indbetaling faktura -InvoiceDepositAsk=Indbetaling faktura -InvoiceDepositDesc=Denne form for fakturaen er gjort, når en indbetaling er modtaget. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma faktura InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma fakturaen er et billede af en ægte faktura, men har ingen regnskabspool værdi. @@ -62,7 +62,7 @@ PaymentsBack=Betalinger tilbage paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Slet betaling -ConfirmDeletePayment=Er du sikker på du vil slette denne betaling? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Leverandører betalinger ReceivedPayments=Modtaget betalinger @@ -115,7 +115,7 @@ BillStatus=Faktura status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Udkast (skal valideres) BillStatusPaid=Betales -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Omdannes til discount BillStatusCanceled=Abandoned BillStatusValidated=Valideret (der skal betales) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Betales (delvis) BillShortStatusDraft=Udkast BillShortStatusPaid=Betales BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Forarbejdede +BillShortStatusConverted=Betales BillShortStatusCanceled=Abandoned BillShortStatusValidated=Valideret BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Vis faktura ShowInvoice=Vis faktura ShowInvoiceReplace=Vis erstatning faktura ShowInvoiceAvoir=Vis kreditnota -ShowInvoiceDeposit=Vis depositum faktura +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Vis betaling AlreadyPaid=Allerede betales AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Allerede betalt (uden kreditter og indlån) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Opgives RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relativ rabat GlobalDiscount=Global rabat CreditNote=Credit note CreditNotes=Credit noter -Deposit=Indbetaling -Deposits=Indlån +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount fra kreditnota %s -DiscountFromDeposit=Betalinger fra depositum faktura %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Denne form for kredit kan bruges på faktura før dens validering CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Kan ikke fjerne betaling, da der er mindst p ExpectedToPay=Forventet betaling CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Betales af denne betaling -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Alle faktura uden mangler at betale, vil automatisk blive lukket for status "betales". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Faktura model Crabe. En fuldstændig faktura model (Support moms option, rabatter, betalinger betingelser, logo, etc. ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Et lovforslag, der begynder med $ syymm allerede eksisterer og er ikke kompatible med denne model af sekvensinformation. Fjern den eller omdøbe den til at aktivere dette modul. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Repræsentant opfølgning kundefaktura TypeContact_facture_external_BILLING=Kundefaktura kontakt diff --git a/htdocs/langs/da_DK/bookmarks.lang b/htdocs/langs/da_DK/bookmarks.lang index e42d74616e1..629194fff9e 100644 --- a/htdocs/langs/da_DK/bookmarks.lang +++ b/htdocs/langs/da_DK/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Tilføj denne side til bogmærker Bookmark=Bookmark Bookmarks=Bogmærker +ListOfBookmarks=Liste over bogmærker +EditBookmarks=List/edit bookmarks NewBookmark=Nyt bogmærke ShowBookmark=Vis bogmærke OpenANewWindow=Åbn et nyt vindue diff --git a/htdocs/langs/da_DK/boxes.lang b/htdocs/langs/da_DK/boxes.lang index 76ad192c0a0..31e5264300c 100644 --- a/htdocs/langs/da_DK/boxes.lang +++ b/htdocs/langs/da_DK/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss oplysninger BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Forslag LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/da_DK/categories.lang b/htdocs/langs/da_DK/categories.lang index 7bb290243fa..b334fe5a255 100644 --- a/htdocs/langs/da_DK/categories.lang +++ b/htdocs/langs/da_DK/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=I diff --git a/htdocs/langs/da_DK/commercial.lang b/htdocs/langs/da_DK/commercial.lang index a4bc71fde28..ee8dbd6cab9 100644 --- a/htdocs/langs/da_DK/commercial.lang +++ b/htdocs/langs/da_DK/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Vis opgave ShowAction=Vis aktion ActionsReport=Aktioner rapport ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Salg repræsentant SalesRepresentatives=Salgsrepræsentanter SalesRepresentativeFollowUp=Salg repræsentant (opfølgning) diff --git a/htdocs/langs/da_DK/companies.lang b/htdocs/langs/da_DK/companies.lang index e6f58e8a60f..fc90e560fd2 100644 --- a/htdocs/langs/da_DK/companies.lang +++ b/htdocs/langs/da_DK/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Ny privatperson NewCompany=Nye firma (emne, kunde, leverandør) NewThirdParty=Ny tredjepart (emne, kunde, leverandør) CreateDolibarrThirdPartySupplier=Opret en trediepart (leverandør) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospektering område IdThirdParty=Id tredjepart @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kunder ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s ThirdPartySuppliers=Leverandører ThirdPartyType=Tredjepart type -Company/Fundation=Company / Foundation Individual=Privatperson ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Moderselskab @@ -78,10 +77,10 @@ VATIsNotUsed=Moms, der ikke anvendes CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Forslag +OverAllOrders=Ordrer +OverAllInvoices=Fakturaer +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE bruges @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativ rabat CustomerAbsoluteDiscountShort=Absolut rabat CompanyHasRelativeDiscount=Denne kunde har en rabat på %s%% CompanyHasNoRelativeDiscount=Denne kunde har ingen relativ discount som standard -CompanyHasAbsoluteDiscount=Denne kunde har stadig discount kreditter for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Denne kunde har stadig kreditnotaer for %s %s CompanyHasNoAbsoluteDiscount=Denne kunde har ingen rabat kreditter til rådighed CustomerAbsoluteDiscountAllUsers=Absolut rabatter (ydet af alle brugere) @@ -390,7 +395,7 @@ ListCustomersShort=Liste over kunder ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Samlet unikke tredjeparter -InActivity=Åbnet +InActivity=Åbent ActivityCeased=Lukket ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kunde / leverandør-koden er ledig. Denne kode kan til en ManagingDirectors=Leder(e) navne (CEO, direktør, chef...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/da_DK/contracts.lang b/htdocs/langs/da_DK/contracts.lang index 1c4f5014d90..74842bbb7d4 100644 --- a/htdocs/langs/da_DK/contracts.lang +++ b/htdocs/langs/da_DK/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Salg repræsentant, der underskriver kontrakt diff --git a/htdocs/langs/da_DK/exports.lang b/htdocs/langs/da_DK/exports.lang index 0c15d860b56..c8de103865b 100644 --- a/htdocs/langs/da_DK/exports.lang +++ b/htdocs/langs/da_DK/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/da_DK/install.lang b/htdocs/langs/da_DK/install.lang index fdfb618b7e9..a33a1a1c66a 100644 --- a/htdocs/langs/da_DK/install.lang +++ b/htdocs/langs/da_DK/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Du bruger DoliWamp opsætningsguiden, så værdier foresl KeepDefaultValuesDeb=Du bruger Dolibarr opsætningsguiden fra en Ubuntu eller Debian-pakke, så værdier, der foreslås her, er allerede optimeret. Kun den password i databasen ejeren for at oprette skal udfyldes. Ændre andre parametre kun hvis du ved hvad du gør. KeepDefaultValuesMamp=Du bruger DoliMamp opsætningsguiden, så værdier foreslås her allerede er optimeret. Ændre dem kun, hvis du ved hvad du gør. KeepDefaultValuesProxmox=Du bruger Dolibarr opsætningsguiden fra en Proxmox virtual appliance, så værdier, der foreslås her, allerede er optimeret. Skift dem kun hvis du ved hvad du gør. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/da_DK/link.lang b/htdocs/langs/da_DK/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/da_DK/link.lang +++ b/htdocs/langs/da_DK/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/da_DK/loan.lang b/htdocs/langs/da_DK/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/da_DK/loan.lang +++ b/htdocs/langs/da_DK/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/da_DK/mails.lang b/htdocs/langs/da_DK/mails.lang index 25e799f54bc..db644a558e2 100644 --- a/htdocs/langs/da_DK/mails.lang +++ b/htdocs/langs/da_DK/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s filtjenester diff --git a/htdocs/langs/da_DK/main.lang b/htdocs/langs/da_DK/main.lang index aa4c661f05d..9e2ad417d07 100644 --- a/htdocs/langs/da_DK/main.lang +++ b/htdocs/langs/da_DK/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Standard baggrundsfarve FileRenamed=The file was successfully renamed -FileUploaded=Filen blev uploadet FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Filen blev uploadet +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=En fil er valgt for udlæg, men endnu ikke var uploadet. Klik på "Vedhæft fil" for dette. NbOfEntries=Nb af tilmeldinger GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Efter skat TTC=Inc. moms +INCT=Inc. all taxes VAT=Moms VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=oktober MonthShort11=nov MonthShort12=dec AttachedFiles=Vedhæftede filer og dokumenter -FileTransferComplete=Fil blev uploadet successfuly DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD HH: SS diff --git a/htdocs/langs/da_DK/members.lang b/htdocs/langs/da_DK/members.lang index 896afaf7841..3153792ca15 100644 --- a/htdocs/langs/da_DK/members.lang +++ b/htdocs/langs/da_DK/members.lang @@ -42,7 +42,7 @@ MemberTypeId=Medlem type id MemberTypeLabel=Medlem type label MembersTypes=Medlemmer typer MemberStatusDraft=Udkast (skal valideres) -MemberStatusDraftShort=At validere +MemberStatusDraftShort=Udkast til MemberStatusActive=Valideret (venter abonnement) MemberStatusActiveShort=Valideret MemberStatusActiveLate=Subscription expired @@ -90,6 +90,7 @@ PublicMemberList=Offentlige medlem liste BlankSubscriptionForm=Subscription form BlankSubscriptionFormDesc=Dolibarr kan give dig en offentlig webadresse for at give eksterne besøgende til at anmode om abonnere på fundamentet. Hvis en online betaling modulet er aktiveret, vil en betaling form også udleveres automatisk. EnablePublicSubscriptionForm=Aktiver offentlige auto-tegningsblanket +ForceMemberType=Force the member type ExportDataset_member_1=Medlemmer og abonnementer ImportDataset_member_1=Medlemmer LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Denne skærm viser dig statistikker over medlemmer af byen. MembersStatisticsDesc=Vælg statistikker, du ønsker at læse ... MenuMembersStats=Statistik LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Natur Public=Information er offentlige NewMemberbyWeb=Nyt medlem tilføjet. Afventer godkendelse diff --git a/htdocs/langs/da_DK/modulebuilder.lang b/htdocs/langs/da_DK/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/da_DK/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/da_DK/other.lang b/htdocs/langs/da_DK/other.lang index a39ee5c599a..4a54f5c58aa 100644 --- a/htdocs/langs/da_DK/other.lang +++ b/htdocs/langs/da_DK/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pund +WeightUnitounce=unse Length=Længde LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/da_DK/paybox.lang b/htdocs/langs/da_DK/paybox.lang index e82802423f9..708732cb1b8 100644 --- a/htdocs/langs/da_DK/paybox.lang +++ b/htdocs/langs/da_DK/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail til bekræftelse af betaling, Creditor=Kreditor PaymentCode=Betaling kode PayBoxDoPayment=Go om betaling +ToPay=Må betaling YouWillBeRedirectedOnPayBox=Du bliver omdirigeret om sikret Paybox siden til input du kreditkort informationer Continue=Næste ToOfferALinkForOnlinePayment=URL til %s betaling diff --git a/htdocs/langs/da_DK/paypal.lang b/htdocs/langs/da_DK/paypal.lang index 3abffca0767..20542904932 100644 --- a/htdocs/langs/da_DK/paypal.lang +++ b/htdocs/langs/da_DK/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Dette er id af transaktionen: %s PAYPAL_ADD_PAYMENT_URL=Tilsæt url Paypal betaling, når du sender et dokument med posten PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Du er i øjeblikket i "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/da_DK/products.lang b/htdocs/langs/da_DK/products.lang index 43dfd0f4c1b..c5e54b84bd7 100644 --- a/htdocs/langs/da_DK/products.lang +++ b/htdocs/langs/da_DK/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produkt eller tjeneste ProductsAndServices=Produkter og services ProductsOrServices=Produkter eller tjenesteydelser -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Anden +unitH=Time +unitD=Dag +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Nuværende pris @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/da_DK/propal.lang b/htdocs/langs/da_DK/propal.lang index 7923e1ff553..1fa1c8210db 100644 --- a/htdocs/langs/da_DK/propal.lang +++ b/htdocs/langs/da_DK/propal.lang @@ -3,7 +3,7 @@ Proposals=Kommerciel forslag Proposal=Kommerciel forslag ProposalShort=Forslag ProposalsDraft=Udkast til kommercielle forslag -ProposalsOpened=Åbnet kommercielle forslag +ProposalsOpened=Open commercial proposals Prop=Kommerciel forslag CommercialProposal=Kommerciel forslag ProposalCard=Forslag kort @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Beløb af måneden (efter skat) NbOfProposals=Antal kommercielle forslag ShowPropal=Vis forslag PropalsDraft=Drafts -PropalsOpened=Åbnet +PropalsOpened=Åbent PropalStatusDraft=Udkast (skal valideres) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Underskrevet (til bill) diff --git a/htdocs/langs/da_DK/resource.lang b/htdocs/langs/da_DK/resource.lang index c8637971a63..233877bf88a 100644 --- a/htdocs/langs/da_DK/resource.lang +++ b/htdocs/langs/da_DK/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Ressourcer diff --git a/htdocs/langs/da_DK/salaries.lang b/htdocs/langs/da_DK/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/da_DK/salaries.lang +++ b/htdocs/langs/da_DK/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/da_DK/sendings.lang b/htdocs/langs/da_DK/sendings.lang index 6e142ed6aa9..8e044d846f2 100644 --- a/htdocs/langs/da_DK/sendings.lang +++ b/htdocs/langs/da_DK/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simpelt dokument model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Advarsel, ikke produkter som venter på at blive afsendt. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Arrangementer på forsendelse LinkToTrackYourPackage=Link til at spore din pakke ShipmentCreationIsDoneFromOrder=For øjeblikket er skabelsen af ​​en ny forsendelse udført af ordrekortet. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/da_DK/stocks.lang b/htdocs/langs/da_DK/stocks.lang index 2224a922cdd..452e03895e9 100644 --- a/htdocs/langs/da_DK/stocks.lang +++ b/htdocs/langs/da_DK/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Antal enheder UnitPurchaseValue=Unit purchase price StockTooLow=Stock for lavt -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Værdi PMPValue=Værdi PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Afsendte mængde QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Bestil lastfordelingen +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Fraførsel reelle bestande på fakturaer / kreditnotaer @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Forhøjelse reelle bestande på fakturaer / kreditnotaer ReStockOnValidateOrder=Forhøjelse reelle bestande om ordrer noter -ReStockOnDispatchOrder=Øge den reelle bestande på manuel ekspedition i pakhuse, efter at leverandøren ordremodtagelse +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Ordren er endnu ikke eller ikke mere en status, der tillader forsendelse af varer på lager lagre. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Ingen foruddefinerede produkter for dette objekt. Så ingen ekspedition på lager er påkrævet. DispatchVerb=Forsendelse StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Fysiske lager RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual lager +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id lager DescWareHouse=Beskrivelse lager LieuWareHouse=Lokalisering lager @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Redigér +inventoryValidate=Valideret +inventoryDraft=Kørsel +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Opret +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategori filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Tilføj +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Slet linie +RegulateStock=Regulate Stock +ListInventory=Liste diff --git a/htdocs/langs/da_DK/stripe.lang b/htdocs/langs/da_DK/stripe.lang new file mode 100644 index 00000000000..8afa75400a6 --- /dev/null +++ b/htdocs/langs/da_DK/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Følgende webadresser findes til at tilbyde en side til en kunde for at foretage en indbetaling på Dolibarr objekter +PaymentForm=Betaling form +WelcomeOnPaymentPage=Velkommen på vores online betalingstjenesten +ThisScreenAllowsYouToPay=Dette skærmbillede giver dig mulighed for at foretage en online-betaling til %s. +ThisIsInformationOnPayment=Dette er informationer om betaling for at gøre +ToComplete=For at fuldføre +YourEMail=E-mail til bekræftelse af betaling, +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Kreditor +PaymentCode=Betaling kode +StripeDoPayment=Go om betaling +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Næste +ToOfferALinkForOnlinePayment=URL til %s betaling +ToOfferALinkForOnlinePaymentOnOrder=URL til at tilbyde en %s online betaling brugergrænseflade til en ordre +ToOfferALinkForOnlinePaymentOnInvoice=URL til at tilbyde en %s online betaling brugergrænseflade til en faktura +ToOfferALinkForOnlinePaymentOnContractLine=URL til at tilbyde en %s online betaling brugergrænseflade til en kontrakt linje +ToOfferALinkForOnlinePaymentOnFreeAmount=URL til at tilbyde en %s online betaling brugergrænseflade til et frit beløb +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL til at tilbyde en %s online betaling brugergrænseflade til et medlem abonnement +YouCanAddTagOnUrl=Du kan også tilføje webadresseparameter & tag= værdi til nogen af disse URL (kræves kun for fri betaling) for at tilføje din egen betaling kommentere tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Denne side bekræfter, at din betaling er registreret. Tak. +YourPaymentHasNotBeenRecorded=Du betalingen ikke er blevet registreret, og transaktionen er blevet aflyst. Tak. +AccountParameter=Konto parametre +UsageParameter=Usage parametre +InformationToFindParameters=Hjælp til at finde din %s kontooplysninger +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Navn på leverandør +CSSUrlForPaymentForm=CSS stylesheet url til indbetalingskort +MessageOK=Besked på validerede betaling tilbage side +MessageKO=Besked om annulleret betaling tilbage side +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/da_DK/supplier_proposal.lang b/htdocs/langs/da_DK/supplier_proposal.lang index 4a0429d6039..25da57a463e 100644 --- a/htdocs/langs/da_DK/supplier_proposal.lang +++ b/htdocs/langs/da_DK/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Udkast (skal valideres) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Lukket SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Afviste @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/da_DK/suppliers.lang b/htdocs/langs/da_DK/suppliers.lang index c6f8538422f..8276499187b 100644 --- a/htdocs/langs/da_DK/suppliers.lang +++ b/htdocs/langs/da_DK/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Nogle underprodukter har ingen pris defineret AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Denne henvisning leverandøren er allerede forbundet med en reference: %s NoRecordedSuppliers=Nr. leverandører registreres SupplierPayment=Leverandør betaling @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/da_DK/trips.lang b/htdocs/langs/da_DK/trips.lang index 99b9b351e51..074590c4a94 100644 --- a/htdocs/langs/da_DK/trips.lang +++ b/htdocs/langs/da_DK/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Liste over gebyrer TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company / fundament besøgte +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Beløb eller kilometer DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Validering dato DATE_CANCEL=Cancelation date DATE_PAIEMENT=Betalingsdato BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/da_DK/users.lang b/htdocs/langs/da_DK/users.lang index b75ce3c0726..a346cb701b9 100644 --- a/htdocs/langs/da_DK/users.lang +++ b/htdocs/langs/da_DK/users.lang @@ -66,8 +66,8 @@ InternalUser=Intern bruger ExportDataset_user_1=Dolibarr brugere og egenskaber DomainUser=Domænebruger %s Reactivate=Genaktiver -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=En intern bruger er en bruger, der er en del af din virksomhed / fundament.
En ekstern bruger er en kunde, leverandør eller andre.

I begge tilfælde permissions definerer rettigheder på Dolibarr, også eksterne bruger kan have en anden menu manager end intern bruger (Se Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Tilladelse gives, fordi arvet fra en af en brugers gruppe. Inherited=Arvelige UserWillBeInternalUser=Oprettet brugeren vil blive en intern bruger (fordi der ikke er knyttet til en bestemt tredjepart) diff --git a/htdocs/langs/da_DK/website.lang b/htdocs/langs/da_DK/website.lang index 6197580711f..a18865b0f91 100644 --- a/htdocs/langs/da_DK/website.lang +++ b/htdocs/langs/da_DK/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kode WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/da_DK/withdrawals.lang b/htdocs/langs/da_DK/withdrawals.lang index 616f5ff1337..350daa0deda 100644 --- a/htdocs/langs/da_DK/withdrawals.lang +++ b/htdocs/langs/da_DK/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Beløb til at trække WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nr. kundens faktura i betalingssystemer mode "trække" venter. Gå på 'Træk' fane på faktura-kort til at fremsætte en anmodning. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ansvarlig bruger WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Årsag til afvisning RefusedInvoicing=Fakturering afvisningen NoInvoiceRefused=Oplad ikke afvisning InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Venter StatusTrans=Transmitteret StatusCredited=Krediteres diff --git a/htdocs/langs/de_AT/banks.lang b/htdocs/langs/de_AT/banks.lang index 436ba439ea6..c622e923b38 100644 --- a/htdocs/langs/de_AT/banks.lang +++ b/htdocs/langs/de_AT/banks.lang @@ -14,6 +14,7 @@ EndBankBalance=Abschlusssaldo CurrentBalance=derezitige Bilanz FutureBalance=zukünftiger Bilanz ShowAllTimeBalance=Eröffnungsbilanz +RIB=Kontonummer AccountStatementShort=Kontenauszug AccountStatements=Kontoauszug LastAccountStatements=letzter Kontoauszug @@ -24,6 +25,7 @@ BankType0=Sparkonto\n BankType2=Kassa Account=Kontonummer IncludeClosedAccount=Geschlossene konten miteinbeziehen +StatusAccountClosed=geschlossen WithdrawalPayment=Widerrufsrecht Zahlung ShowCheckReceipt=Zeige überprüfen Einzahlungsbeleg Graph=Grafik diff --git a/htdocs/langs/de_AT/bills.lang b/htdocs/langs/de_AT/bills.lang index b11695fed5b..efe705d7f09 100644 --- a/htdocs/langs/de_AT/bills.lang +++ b/htdocs/langs/de_AT/bills.lang @@ -1,19 +1,18 @@ # Dolibarr language file - Source file is en_US - bills DisabledBecauseNotErasable=Deaktiviert, weil es nicht gelöscht werden kann InvoiceStandardDesc=Dies ist die übliche Rechnungsart. -InvoiceDeposit=Anzahlung -InvoiceDepositAsk=Anzahlung -InvoiceDepositDesc=Diese Art der Rechnung wird ausgestellt, wenn eine Anzahlung eingegangen ist. InvoiceProForma=Proformarechnung InvoiceProFormaAsk=Proformarechnung InvoiceProFormaDesc=Proformarechnung entspricht dem Wert der echten Rechnung, wird aber nicht verbucht. InvoiceReplacementDesc=Ersatzrechnung wird verwendet um eine Rechnung, die niemals bezahlt wurde, zu stornieren.

Beachte: Nur Rechnungen ohne Bezahlung können storniert werden. Wenn die stornierte Rechnung noch nicht geschlossen is, wird sie automatisch geschlossen und als 'storniert' markiert. ConsumedBy=Consumed von CardBill=Rechnungskarte -ConfirmDeletePayment=Are you sure you want to delete this payment ? +BillShortStatusValidated=Bestätigt +BillShortStatusClosedUnpaid=geschlossen ValidateBill=Validate Rechnung NewRelativeDiscount=Neue relative Rabatt RelatedBill=Verwandte Rechnung +PaymentTypeShortTRA=Entwurf IBANNumber=IBAN BICNumber=BIC/SWIFT LawApplicationPart2=Die Ware bleibt Eigentum der diff --git a/htdocs/langs/de_AT/bookmarks.lang b/htdocs/langs/de_AT/bookmarks.lang index 1a11ea47624..bb158fd8d23 100644 --- a/htdocs/langs/de_AT/bookmarks.lang +++ b/htdocs/langs/de_AT/bookmarks.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - bookmarks -AddThisPageToBookmarks=Fügen Sie diese Seite zu Lesezeichen NewBookmark=neues Lesezeichen ShowBookmark=zeige Lesezeichen OpenANewWindow=öffne neues Fenster @@ -10,4 +9,6 @@ BookmarkTitle=Lesezeichen-Titel UrlOrLink=URL oder Link CreateBookmark=erzeuge Lesezeichen SetHereATitleForLink=Titel für Lesezeichen erstellen +UseAnExternalHttpLinkOrRelativeDolibarrLink=Verwende eine externe http oder eine relative Dolibarr URL +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Wählen Sie, ob die verknüpfte Seite in einem neuen Fenster geöffnet werden soll oder nicht BookmarksManagement=Bookmarks-Verwaltung diff --git a/htdocs/langs/de_AT/commercial.lang b/htdocs/langs/de_AT/commercial.lang index a91da78c54e..faa2201f08a 100644 --- a/htdocs/langs/de_AT/commercial.lang +++ b/htdocs/langs/de_AT/commercial.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - commercial AddAction=erstelle Termin -ActionOnCompany=Aufgabe zu dieser Organisation -ActionOnContact=Aufgabe zu diesem Kontakt SendPropalRef=Sende Offert %s ActionAffectedTo=Termin zugwiesen von ActionAC_PROP=Offert senden diff --git a/htdocs/langs/de_AT/companies.lang b/htdocs/langs/de_AT/companies.lang index 43fef4a51e8..ac0018979e8 100644 --- a/htdocs/langs/de_AT/companies.lang +++ b/htdocs/langs/de_AT/companies.lang @@ -13,3 +13,4 @@ CustomerCodeShort=Kunden-Code CapitalOf=Hauptstadt von %s NorProspectNorCustomer=Weder Lead noch Kunde OthersNotLinkedToThirdParty=Andere, nicht mit einem Partner verknüpfte +ActivityCeased=geschlossen diff --git a/htdocs/langs/de_AT/compta.lang b/htdocs/langs/de_AT/compta.lang index 3a18e7f06f9..e4d47e6fe2b 100644 --- a/htdocs/langs/de_AT/compta.lang +++ b/htdocs/langs/de_AT/compta.lang @@ -7,7 +7,6 @@ VATReceived=Eingehobene MwSt. VATToCollect=Einzuhebende MwSt. VATSummary=MwSt. Zahllast VATCollected=Eingehobene MwSt. -ToPay=To pay MenuSpecialExpenses=Steuern, Sozialbeiträge und Dividenden AnnualSummaryDueDebtMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus%sForderungen-Verbindlichkeiten%s meldet Kameralistik. AnnualSummaryInputOutputMode=Die Jahresbilanz der Einnahmen/Ausgaben im Modus %sEinkünfte-Ausgaben%s meldet Ist-Besteuerung. diff --git a/htdocs/langs/de_AT/contracts.lang b/htdocs/langs/de_AT/contracts.lang index eefb70ad2a0..369f0aaec0d 100644 --- a/htdocs/langs/de_AT/contracts.lang +++ b/htdocs/langs/de_AT/contracts.lang @@ -1,6 +1,19 @@ # Dolibarr language file - Source file is en_US - contracts +ContractsArea=Vertragsgebiet +ContractStatusValidated=Bestätigt ServiceStatusNotLate=Läuft (nicht abgelaufen) ServiceStatusNotLateShort=Läuft +ServiceStatusLateShort=abgelaufen +ServiceStatusClosed=geschlossen +MenuServices=Dienstleistung +MenuInactiveServices=Dienstleistung inaktiv +MenuRunningServices=Laufende Services +MenuExpiredServices=Dienstleistung abgelaufen +NewContract=neuer Vertrag +AddContract=Erstelle Vertrag +DeleteAContract=lösche Vertrag +CloseAContract=beende Vertrag +ConfirmDeleteAContract=Sind Sie sicher, dass Sie diesen Vertrag und alle Dienstleistungen löschen wollen? ListOfInactiveServices=Liste inaktiver Services ListOfExpiredServices=Liste abgelaufener Services ListOfClosedServices=Liste geschlossener Services @@ -15,4 +28,3 @@ BoardRunningServices=Abgelaufene, aktive Services ServiceStatus=Service-Status CloseRefusedBecauseOneServiceActive=Schließen nicht möglich, es existieren noch aktive Services DeleteContractLine=Lösche Vertragsposition -ConfirmMoveToAnotherContractQuestion=Bitte wählen Sie einen bestehenden Vertrag (desselben Partners) für die Verschiebung des Services: diff --git a/htdocs/langs/de_AT/donations.lang b/htdocs/langs/de_AT/donations.lang new file mode 100644 index 00000000000..08123a62a76 --- /dev/null +++ b/htdocs/langs/de_AT/donations.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - donations +DonationStatusPromiseValidatedShort=Bestätigt diff --git a/htdocs/langs/de_AT/mails.lang b/htdocs/langs/de_AT/mails.lang index f933cd2c9b5..73d9bd548c3 100644 --- a/htdocs/langs/de_AT/mails.lang +++ b/htdocs/langs/de_AT/mails.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - mails ResetMailing=E-Mail-Kampagne erneut senden +MailingStatusValidated=Bestätigt CloneEMailing=E-Mail-Kampagne duplizieren CloneContent=Nachricht duplizieren MailingArea=E-Mail-Kampagnenübersicht diff --git a/htdocs/langs/de_AT/members.lang b/htdocs/langs/de_AT/members.lang index c4883e154c9..a7bb5fc170e 100644 --- a/htdocs/langs/de_AT/members.lang +++ b/htdocs/langs/de_AT/members.lang @@ -8,6 +8,8 @@ EndSubscription=Abonnementende SubscriptionId=Abonnement ID MemberId=Mitglieds ID MemberTypeId=Mitgliedsart ID +MemberStatusDraftShort=Entwurf +MemberStatusActiveLateShort=abgelaufen SubscriptionEndDate=Abonnementauslaufdatum SubscriptionLate=Versätet NewMemberType=Neues Mitgliedsrt diff --git a/htdocs/langs/de_AT/oauth.lang b/htdocs/langs/de_AT/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/de_AT/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/de_AT/orders.lang b/htdocs/langs/de_AT/orders.lang index 953b812eaf2..2e11a5c151e 100644 --- a/htdocs/langs/de_AT/orders.lang +++ b/htdocs/langs/de_AT/orders.lang @@ -2,6 +2,8 @@ OrderLine=Bestellposition OrderToProcess=Zu bearbeitende Bestellung OrdersInProcess=Bestellunen in Bearbeitung +StatusOrderValidatedShort=Bestätigt +StatusOrderValidated=Bestätigt StatusOrderOnProcess=In Arbeit RefOrder=Bestellung Nr. AuthorRequest=Authorenrechte beantragen diff --git a/htdocs/langs/de_AT/paypal.lang b/htdocs/langs/de_AT/paypal.lang index 341fdf56696..005fb9b112c 100644 --- a/htdocs/langs/de_AT/paypal.lang +++ b/htdocs/langs/de_AT/paypal.lang @@ -7,7 +7,6 @@ PAYPAL_API_USER=API Benutzername PAYPAL_API_PASSWORD=API Passwort PAYPAL_API_SIGNATURE=API Unterschrift PaypalModeOnlyPaypal=nur PayPal -PAYPAL_CSS_URL=optionale Url eines CSS style sheets auf der Payment-Seite ThisIsTransactionId=Dies ist id Geschäftsart: %s PAYPAL_ADD_PAYMENT_URL=Fügen Sie die URL der Paypal Zahlung, wenn Sie ein Dokument per E-Mail senden YouAreCurrentlyInSandboxMode=Sie befinden sich derzeit im "Sandkasten-Modus" diff --git a/htdocs/langs/de_AT/printing.lang b/htdocs/langs/de_AT/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/de_AT/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/de_AT/products.lang b/htdocs/langs/de_AT/products.lang index d634475f9f5..9b23a8fba00 100644 --- a/htdocs/langs/de_AT/products.lang +++ b/htdocs/langs/de_AT/products.lang @@ -1,6 +1,9 @@ # Dolibarr language file - Source file is en_US - products ProductRef=Artikel Nr. +TMenuProducts=Produkte und Services +TMenuServices=Dienstleistung Products=Produkte und Services +Services=Dienstleistung OnSell=Verfügbar OnBuy=Gekaufte NotOnSell=Aufgelassen @@ -16,13 +19,16 @@ SellingPriceHT=Verkaufspreis (netto) SellingPriceTTC=Verkaufspreis (brutto) MinPrice=Preisuntergrenze CantBeLessThanMinPrice=Der aktuelle Verkaufspreis unterschreitet die Preisuntergrenze dieses Produkts (%s ohne MwSt.) +ContractStatusClosed=geschlossen NoMatchFound=Keine Treffer gefunden ProductAssociationList=Liste der verknüpften Produkte/Services: Name des Produkts/des Service (Stückzahl) DeleteProduct=Produkt/Service löschen ConfirmDeleteProduct=Möchten Sie dieses Produkt/Service wirklich löschen? ProductDeleted=Produkt/Service "%s" aus der Datenbank gelöscht. ExportDataset_produit_1=Produkte und Services +ExportDataset_service_1=Dienstleistung ImportDataset_produit_1=Produkte und Services +ImportDataset_service_1=Dienstleistung QtyMin=Mindestabnahme PriceQtyMin=Gesamtpreis Mindestabnahme ListProductServiceByPopularity=Liste der Produkte/Services nach Beliebtheit diff --git a/htdocs/langs/de_AT/propal.lang b/htdocs/langs/de_AT/propal.lang index b27b8037171..530f0748d11 100644 --- a/htdocs/langs/de_AT/propal.lang +++ b/htdocs/langs/de_AT/propal.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - propal PropalsDraft=Entwurf PropalStatusSigned=Unterzeichnet (auf Rechnung) +PropalStatusClosedShort=geschlossen RefProposal=Angebots Nr. DatePropal=Datum des Angebots DateEndPropal=Ablauf der Bindefrist diff --git a/htdocs/langs/de_AT/sendings.lang b/htdocs/langs/de_AT/sendings.lang index 4f17f4ce667..c39fcda1909 100644 --- a/htdocs/langs/de_AT/sendings.lang +++ b/htdocs/langs/de_AT/sendings.lang @@ -1,3 +1,5 @@ # Dolibarr language file - Source file is en_US - sendings +Sendings=Sendungen Shipments=Sendungen +StatusSendingValidatedShort=Bestätigt DateReceived=Datum des Warenerhalts diff --git a/htdocs/langs/de_AT/sms.lang b/htdocs/langs/de_AT/sms.lang new file mode 100644 index 00000000000..5c591816ea1 --- /dev/null +++ b/htdocs/langs/de_AT/sms.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - sms +SmsStatusValidated=Bestätigt diff --git a/htdocs/langs/de_AT/supplier_proposal.lang b/htdocs/langs/de_AT/supplier_proposal.lang new file mode 100644 index 00000000000..859f35107c7 --- /dev/null +++ b/htdocs/langs/de_AT/supplier_proposal.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - supplier_proposal +SupplierProposalStatusClosed=geschlossen +SupplierProposalStatusClosedShort=geschlossen diff --git a/htdocs/langs/de_AT/users.lang b/htdocs/langs/de_AT/users.lang index 6148c64939e..24b0c80c5b1 100644 --- a/htdocs/langs/de_AT/users.lang +++ b/htdocs/langs/de_AT/users.lang @@ -4,4 +4,3 @@ PasswordChangedAndSentTo=Passwort geändert und an %s gesandt. PasswordChangeRequestSent=Antrag auf eine Änderung das Passworts für %s an %s gesandt. LinkedToDolibarrUser=Mit Systembenutzer verknüpfen LinkedToDolibarrThirdParty=Mit Partner verknüpfen -InternalExternalDesc=Ein interner Benutzer ist Teil Ihres Unternehmens/Ihrer Stiftung.
Ein externer Benutzer ist ein Kunde, Lieferant oder Anderes.

In beiden Fällen können Sie die Berechtigungen definieren - externe Benutzer können zudem auch einen andere Menüverwaltung als interne Benutzer haben (siehe Home - Einstellungen - Anzeige) diff --git a/htdocs/langs/de_CH/agenda.lang b/htdocs/langs/de_CH/agenda.lang index c160c92206a..e2a0bfdcccd 100644 --- a/htdocs/langs/de_CH/agenda.lang +++ b/htdocs/langs/de_CH/agenda.lang @@ -1,7 +1,10 @@ # Dolibarr language file - Source file is en_US - agenda +Agenda=Terminplanung ToUserOfGroup=Für alle Benutzer in der Gruppe MenuDoneActions=Alle abgeschl. Termine MenuDoneMyActions=Meine abgeschl. Termine +ViewCal=Kalenderansicht +ViewPerUser=Benutzeransicht ViewPerType=Ansicht pro Typ AgendaAutoActionDesc=Definieren Sie hier Ereignisse für die Dolibarr einen Kalendereintrag erstellen soll. Ist nichts aktviert, umfasst der Terminkalender nur manuell eingetragene Termine. Automatisch generierte Aktionen die durch Module erstellt werden (Freigabe, Statuswechsel,...), werden nicht im Kalender gespeichert. ShipmentValidatedInDolibarr=Versand %s in Dolibarr geprüft diff --git a/htdocs/langs/de_CH/banks.lang b/htdocs/langs/de_CH/banks.lang index 577b4090302..63f1a32091a 100644 --- a/htdocs/langs/de_CH/banks.lang +++ b/htdocs/langs/de_CH/banks.lang @@ -1,8 +1,16 @@ # Dolibarr language file - Source file is en_US - banks +MenuBankCash=Finanzen +FinancialAccount=Finanzkonto +BankAccounts=Kontenübersicht +AccountRef=Konto-Referenz +CashAccount=Kasse AllTime=Vom start +Reconciliation=Zahlungsabgleich +RIB=Kontonummer AccountType=Kontoart AccountCard=Konto-Karte Conciliable=Ausgleichsfähig +StatusAccountOpened=Offen SupplierInvoicePayment=Lieferantenzahlung WithdrawalPayment=Entnahme Zahlung BankTransfers=Kontentransfer diff --git a/htdocs/langs/de_CH/bills.lang b/htdocs/langs/de_CH/bills.lang index 36416d8d12a..794c312c86d 100644 --- a/htdocs/langs/de_CH/bills.lang +++ b/htdocs/langs/de_CH/bills.lang @@ -52,12 +52,17 @@ ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Der offene Zahlbetrag ( %s %s ConfirmClassifyPaidPartiallyReasonBadCustomer=Kundenverschulden SendBillRef=Einreichung der Rechnung %s SendReminderBillRef=Einreichung von Rechnung %s (Erinnerung) +NoOtherDraftBills=Keine Rechnungsentwürfe Anderer RelatedRecurringCustomerInvoices=Verknüpfte wiederkehrende Kundenrechnung DateMaxPayment=Zahlung fällig bis SupplierBillsToPay=Offene Lieferantenrechnungen Reduction=Ermässigung Reductions=Ermässigungen AbsoluteDiscountUse=Diese Art von Krediten verwendet werden kann auf der Rechnung vor der Validierung +PaymentRef=Zahlungsreferenz +SplitDiscount=Split Rabatt in zwei +TypeAmountOfEachNewDiscount=Input für jeden der zwei Teile: +TotalOfTwoDiscountMustEqualsOriginal=Insgesamt zwei neue Rabatt muss gleich zu den ursprünglichen Betrag Rabatt. AmountPaymentDistributedOnInvoice=Zahlungsbetrag auf Rechnungen verteilen PaymentOnDifferentThirdBills=Erlaube Zahlungen an andere Partner, aber mit gleicher übergeordnetem Unternehmung FrequencyPer_d=Alle %s Tage @@ -74,11 +79,16 @@ PaymentCondition60DENDMONTH=60 Tage ab Monatsende PaymentTypeShortTRA=Entwurf PaymentTypeShortFAC=Nachnahme ExtraInfos=Zusatzinformationen +PrettyLittleSentence=Nehmen Sie die Höhe der Zahlungen, die aufgrund von Schecks, die in meinem Namen als Mitglied eines Accounting Association, die von der Steuerverwaltung. IntracommunityVATNumber=Innergemeinschaftliche MwSt-Nummer VATIsNotUsedForInvoice=* Nicht für MwSt-art-CGI-293B NoteListOfYourUnpaidInvoices=Bitte beachten: Diese Liste enthält nur Rechnungen an Geschäftspartner, bei denen Sie als Vertreter angegeben sind. YouMustCreateStandardInvoiceFirstDesc=Sie müssen zuerst eine Standardrechnung Erstellen und diese dann in eine Rechnungsvorlage umwandeln +InvoiceFirstSituationAsk=Erste Situation Rechnung +InvoiceSituation=Situation Rechnung SituationAmount=Situation Rechnungsbetrag (ohne MwSt.) +CreateNextSituationInvoice=Erstelle nächsten Position +DisabledBecauseNotLastInCycle=Der folgende Situation ist bereits vorhanden. PDFCrevetteSituationInvoiceTitle=Situation Rechnung invoiceLineProgressError=Rechnungszeile Fortschritt kann nicht grösser oder gleich der nächsten Rechnungszeile sein updatePriceNextInvoiceErrorUpdateline=Fehler: Aktualisiere Preis auf Rechnungszeile: %s diff --git a/htdocs/langs/de_CH/commercial.lang b/htdocs/langs/de_CH/commercial.lang index 61171f44fec..4946724e38d 100644 --- a/htdocs/langs/de_CH/commercial.lang +++ b/htdocs/langs/de_CH/commercial.lang @@ -1,9 +1,8 @@ # Dolibarr language file - Source file is en_US - commercial CommercialArea=Vertriebs - Übersicht +CardAction=Ereignisse Übersicht ActionOnCompany=Verknüpfte Firma TaskRDVWith=Treffen mit %s -ThirdPartiesOfSaleRepresentative=Geschäftspartner mit Vertriebsmitarbeiter -LastDoneTasks=%s zuletzt erledigte Aufgaben ActionAC_RDV=Treffen ActionAC_INT=Eingriff vor Ort ActionAC_CLO=Schliessen diff --git a/htdocs/langs/de_CH/companies.lang b/htdocs/langs/de_CH/companies.lang index a927d99f576..ae8eb5be5ba 100644 --- a/htdocs/langs/de_CH/companies.lang +++ b/htdocs/langs/de_CH/companies.lang @@ -3,6 +3,7 @@ SelectThirdParty=Wähle einen Geschäftspartner MenuNewThirdParty=Neuer Geschäftspartner NewThirdParty=Neuer Geschäftspartner (Leads, Kunden, Lieferanten) CreateDolibarrThirdPartySupplier=Neuen Geschäftspartner erstellen (Lieferant) +CreateThirdPartyOnly=Geschäftspartner erstellen IdThirdParty=Geschäftspartner ID IdCompany=Unternehmens ID IdContact=Kontakt ID @@ -19,6 +20,7 @@ No_Email=Keine E-Mail-Kampagnen VATIsUsed=MwSt.-pflichtig VATIsNotUsed=Nicht MwSt-pflichtig ThirdpartyNotCustomerNotSupplierSoNoRef=Adresse ist weder Kunde noch Lieferant, keine Objekte zum Verknüpfen verfügbar +OverAllSupplierProposals=Generelle Preisanfragen LocalTax1IsUsed=Zweite Steuer verwenden LocalTax2IsUsed=Dritte Steuer nutzen WrongCustomerCode=Kunden-Code ungültig @@ -60,6 +62,11 @@ ProfId3PT=Prof Id 3 (Commercial Record-Nummer) ProfId4PT=Prof Id 4 (Konservatorium) ProfId2TN=Prof Id 2 (Geschäftsjahr matricule) ProfId3TN=Prof Id 3 (Douane-Code) +ProfId2US=Id. Prof. 6 +ProfId3US=Id. Prof. 6 +ProfId4US=Id. Prof. 6 +ProfId5US=Id. Prof. 6 +ProfId6US=Id. Prof. 6 ProfId1RU=Prof ID 1 (OGRN) VATIntra=Umsatzsteuer-Identifikationsnummer VATIntraShort=MwSt.-Nr. @@ -92,6 +99,7 @@ TE_GROUP=Grossunternehmen ContactNotLinkedToCompany=Kontakt keinem Geschäftspartner zugeordnet DolibarrLogin=Dolibarr Benutzername ImportDataset_company_4=Geschäftspartner / Aussendienstmitarbeiter (Auswirkung Aussendienstmitarbeiter an Unternehmen) +ConfirmDeleteFile=Sind Sie sicher dass Sie diese Datei löschen möchten? AllocateCommercial=Vertriebsmitarbeiter zuweisen Organization=Organisation FiscalMonthStart=Ab Monat des Geschäftsjahres @@ -99,6 +107,7 @@ YouMustAssignUserMailFirst=Um E-Mail Benachrichtigungen für diesen Benutzer hin YouMustCreateContactFirst=Sie müssen erst E-Mail-Kontakte beim Geschäftspartner anlegen, um E-Mail-Benachrichtigungen hinzufügen zu können. ThirdPartiesArea=Geschäftspartner- und Kontaktbereich LastModifiedThirdParties=Letzte %s bearbeitete Geschäftspartner +InActivity=Offen OutstandingBillReached=Kreditlimit erreicht MergeOriginThirdparty=Geschäftspartner duplizieren (Geschäftspartner, den Sie löschen möchten) MergeThirdparties=Zusammenführen von Geschäftspartnern diff --git a/htdocs/langs/de_CH/contracts.lang b/htdocs/langs/de_CH/contracts.lang index f7e73d50b41..a62584b630a 100644 --- a/htdocs/langs/de_CH/contracts.lang +++ b/htdocs/langs/de_CH/contracts.lang @@ -3,15 +3,14 @@ ContractCard=Vertragskarte ShowContractOfService=Zeige Vertrag zu Leistung Closing=Schliessen CloseAContract=Schliessen eines Vertrages -ConfirmCloseContract=Dies schliesst auch alle verbundenen Leistungen (aktiv oder nicht). Sind sie sicher, dass Sie den Vertrag schliessen möchten? -ConfirmCloseService=Möchten Sie dieses Service wirklich mit Datum %s schliessen? +RefContract=Vertragsnummer ListOfClosedServices=Liste der geschlossenen Services LastModifiedServices=%s zuletzt bearbeitete Leistungen +DateStartPlanned=Geplanter Beginn DateEndPlanned=Geplantes Ende DateStartRealShort=Beginn eff. DateEndRealShort=Ende eff. CloseService=Leistung schliessen CloseRefusedBecauseOneServiceActive=Schliessen nicht möglich, es existieren noch aktive Leistungen CloseAllContracts=schliesse alle Vertragsleistungen -ConfirmMoveToAnotherContractQuestion=Bitte wählen Sie einen bestehenden Vertrag (desselben Geschäftspartners) für die Verschiebung der Leistungen: NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen an Geschäftspartner, bei denen Sie als Vertreter angegeben sind. diff --git a/htdocs/langs/de_CH/ecm.lang b/htdocs/langs/de_CH/ecm.lang index b7a4defbdae..216b5c7111e 100644 --- a/htdocs/langs/de_CH/ecm.lang +++ b/htdocs/langs/de_CH/ecm.lang @@ -1,2 +1,17 @@ # Dolibarr language file - Source file is en_US - ecm +ECMNbOfDocs=Anzahl der Dokumente im Verzeichnis +ECMSectionManual=Manuelle Ordner +ECMSectionAuto=Automatische Ordner +ECMSectionsManual=Manuelle Hierarchie +ECMSectionsAuto=Automatische Hierarchie +ECMNbOfFilesInDir=Anzahl der Dateien in Ordner +ECMNbOfSubDir=Anzahl der Unterordner +ECMAreaDesc=Das EDM (Elektronisches Dokumenten Management)-System erlaubt Ihnen Speichern, Teilen und rasches Auffinden von allen Dokumenten im Dolibarr. +ECMAreaDesc2=* In den automatischen Verzeichnissen werden die vom System erzeugeten Dokumente abgelegt.
* Die manuellen Verzeichnisse können Sie selbst verwalten und zusätzliche nicht direkt zuordenbare Dokument hinterlegen. +ECMSectionWasRemoved=Der Ordner %s wurde gelöscht. +ECMSearchByKeywords=Suche nach Stichwörter +ECMSectionOfDocuments=Dokumentenordner +ECMDocsBySocialContributions=Verlinke Dokumente zu Sozialabgaben oder Steuerinformationen ECMDocsByThirdParties=Mit Geschäftspartnern verknüpfte Dokumente +ECMDocsByInterventions=Mit Eingriffen verknüpfte Dokumente +DirNotSynchronizedSyncFirst=Dieses Verzeichnis scheint ausserhalb des ECM Moduls erstellt oder verändert worden zu sein. Sie müssten auf den "Refresh"-Button klicken um den Inhalt der Festplatte mit der Datenbank zu synchronisieren. diff --git a/htdocs/langs/de_CH/help.lang b/htdocs/langs/de_CH/help.lang index 06e97c2934e..82480e7b0e3 100644 --- a/htdocs/langs/de_CH/help.lang +++ b/htdocs/langs/de_CH/help.lang @@ -1,3 +1,7 @@ # Dolibarr language file - Source file is en_US - help +CommunitySupport=Forum/Wiki-Unterstützung +DolibarrHelpCenter=Hilfe-und Supportcenter +ToGoBackToDolibarr=Klicken Sie hier um zum System zurückzukehren TypeHelpOnly=Ausschliesslich Hilfe +TypeHelpDevForm=Hilfe, Entwicklung & Bildung ToGetHelpGoOnSparkAngels2=Gelegentlich ist zum Zeitpunkt Ihrer Suche vielleicht kein Geschäftspartner verfügbar. Denken Sie daran, den Filter auf "Alle verfügbaren" zu setzen. So können Sie mehr Anfragen stellen. diff --git a/htdocs/langs/de_CH/hrm.lang b/htdocs/langs/de_CH/hrm.lang index 58d3f8f00e6..e295e893346 100644 --- a/htdocs/langs/de_CH/hrm.lang +++ b/htdocs/langs/de_CH/hrm.lang @@ -3,7 +3,6 @@ Establishments=Betriebe Establishment=Betrieb NewEstablishment=Neuer Betrieb DeleteEstablishment=Betrieb löschen -ConfirmDeleteEstablishment=Sind Sie sicher, dass Sie diesen Betrieb löschen wollen? OpenEtablishment=Betrieb wählen CloseEtablishment=Betrieb schliessen DictionaryDepartment=Personalverwaltung - Abteilungsliste diff --git a/htdocs/langs/de_CH/install.lang b/htdocs/langs/de_CH/install.lang index 2be735a8057..62f8d43b58c 100644 --- a/htdocs/langs/de_CH/install.lang +++ b/htdocs/langs/de_CH/install.lang @@ -7,8 +7,10 @@ AdminLoginCreatedSuccessfuly=Das dolibarr-Administratorkonto '%s' wurde e DirectoryRecommendation=Es empfiehlt sich die Verwendung eines Ordners ausserhalb Ihres Webverzeichnisses. ChooseYourSetupMode=Wählen Sie Ihre Installationsart und klicken Sie anschliessend auf "Start"... CorrectProblemAndReloadPage=Bitte beheben Sie das Problem und klicken Sie anschliessend auf F5 um die Seite neu zu laden. -WarningUpgrade=Warnung: \nHaben Sie zuerst eine Sicherungskopie der Datenbank gemacht ? \nAufgrund der Probleme im Datenbanksystem (zB MySQL Version 5.5.40/41/42/43 ) , viele Daten oder Tabellen können während der Migration verloren gehen, so ist es sehr empfehlenswert, vor dem Starten des Migrationsprozesses, eine vollständige Sicherung Ihrer Datenbank zu haben.\n\nKlicken Sie auf OK , um die Migration zu starten ErrorDatabaseVersionForbiddenForMigration=Die Version Ihres Datenbankmanager ist %s.\nDies ist einen kritischer Bug welcher zu Datenverlust führen kann, wenn Sie die Struktur der Datenbank wie vom Migrationsprozess erforderlich ändern. Aus diesem Grund, ist die Migration nicht erlaubt bevor der Datenbankmanager auf eine später Version aktualisiert wurde (Liste betroffer Versionen %s ) +KeepDefaultValuesWamp=Sie verwenden den DoliWamp-Installationsassistent, entsprechend sind die hier vorgeschlagenen Werte bereits optimiert. Ändern Sie diese nur wenn Sie wissen was Sie tun. +KeepDefaultValuesDeb=Sie verwenden den dolibarr-Installationsassistenten auf einem Ubuntu oder Debian-Paket, entsprechend sind die hier vorgeschlagenen Werte bereits optimiert. Sie müssen lediglich das Passwort des anzulegenden Datenbankbenutzers angeben. Ändern Sie die übrigen Parameter nur, wenn Sie wissen was Sie tun. +KeepDefaultValuesMamp=Sie verwenden den DoliMamp-Installationsassistent, entsprechend sind die hier vorgeschlagenen Werte bereits optimiert. Ändern Sie diese nur wenn Sie wissen was Sie tun. MigrationContractsEmptyDatesUpdateSuccess=Korrektur der undefinierten Vertragsdaten erfolgreich MigrationContractsIncoherentCreationDateUpdateSuccess=Korrektur ungültiger Vertragserstellungsdaten erfolgreich ErrorFoundDuringMigration=Fehler wurden beim Migrationsprozess entdeckt, daher ist der nächste Schritt nicht verfügbar. Um den Fehler zu ignorieren können sie hier klicken, aber Anwendungen oder manche Funktionen können eventuell nicht richtig funktionieren solange der Fehler nicht behoben wurde. diff --git a/htdocs/langs/de_CH/mails.lang b/htdocs/langs/de_CH/mails.lang index 848911c67c8..cf3788bc3a3 100644 --- a/htdocs/langs/de_CH/mails.lang +++ b/htdocs/langs/de_CH/mails.lang @@ -11,7 +11,6 @@ NbOfCompaniesContacts=Einzigartige Geschäftspartner-Kontakte EMailRecipient=E-Mailadresses des Empfängers TagMailtoEmail=Empfänger E-Mail (Inklusive html "mailto:" link) NoNotificationsWillBeSent=Für dieses Ereignis und diesen Geschäftspartner sind keine Benachrichtigungen geplant -AddNewNotification=Neues E-Mail-Beachrichtigungsziel aktivieren MailSendSetupIs2=Sie müssen zuerst mit einem Admin-Konto im Menü %sStart - Einstellungen - EMails%s den Parameter '%s' auf den Modus '%s' ändern. Dann können Sie die Daten des SMTP-Servers von Ihrem Internetdienstanbieter eingeben und die E-Mail-Kampagnen-Funktion nutzen. MailAdvTargetRecipients=Empfänger (Erweiterte Selektion) AdvTgtSearchIntHelp=Intervall verwenden um den Zahlenwert auszuwählen diff --git a/htdocs/langs/de_CH/members.lang b/htdocs/langs/de_CH/members.lang index d96c757fdec..73f9ee9b008 100644 --- a/htdocs/langs/de_CH/members.lang +++ b/htdocs/langs/de_CH/members.lang @@ -20,6 +20,7 @@ SubscriptionId=Abo-ID MemberId=Mitgliedernummer MemberType=Mitgliederart MembersTypes=Mitgliederarten +MemberStatusDraft=Entwürfe (benötigen Bestätigung) MemberStatusDraftShort=Entwurf Subscriptions=Abonnemente ListOfSubscriptions=Liste der Abonnemente @@ -27,7 +28,6 @@ SendCardByMail=Karte per E-Mail senden NewMemberType=Neue Mitgliederart WelcomeEMail=Begrüssungsemail SubscriptionRequired=Abonnement notwendig -DeleteType=Löschen VoteAllowed=Abstimmen erlaubt ShowSubscription=Abonnement anzeigen SendAnEMailToMember=Informationsemail dem Mitglied senden diff --git a/htdocs/langs/de_CH/opensurvey.lang b/htdocs/langs/de_CH/opensurvey.lang index b0346e71a41..a6a6beb20bc 100644 --- a/htdocs/langs/de_CH/opensurvey.lang +++ b/htdocs/langs/de_CH/opensurvey.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - opensurvey ToReceiveEMailForEachVote=EMail für jede Stimme erhalten CheckBox=Einfache Checkbox +YouAreInivitedToVote=Du bist eingeladen, Deine Stimme abzugeben SelectDayDesc=Für jeden ausgewählen Tag kann man die Besprechungszeiten im folgenden Format auswählen:
- leer,
- "8h", "8H" oder "8:00" für eine Besprechungs-Startzeit,
- "8-11", "8h-11h", "8H-11H" oder "8:00-11:00" für eine Besprechungs-Start und -Endzeit,
- "8h15-11h15", "8H15-11H15" oder "8:15-11:15" für das Gleiche aber mit Minuten. SurveyExpiredInfo=Diese Umfrage ist abgelaufen oder wurde beendet. diff --git a/htdocs/langs/de_CH/paybox.lang b/htdocs/langs/de_CH/paybox.lang index d06c8b83e99..2faea1b7aae 100644 --- a/htdocs/langs/de_CH/paybox.lang +++ b/htdocs/langs/de_CH/paybox.lang @@ -1,4 +1,7 @@ # Dolibarr language file - Source file is en_US - paybox +ThisIsInformationOnPayment=Informationen zu der vorzunehmenden Zahlunge +YourPaymentHasBeenRecorded=Hiermit Bestätigen wir die Zahlung ausgeführt wurde. Vielen Dank. YourPaymentHasNotBeenRecorded=Die Zahlung wurde abgebrochen und nicht ausgeführt. Vielen Dank. +PAYBOX_CGI_URL_V2=Url für das Paybox Zahlungsmodul "CGI Modul" MessageKO=Nachrichtenseite für abgebrochene Zahlung PAYBOX_PAYONLINE_SENDEMAIL=Status-Email nach einer Zahlung (erfolgreich oder nicht) diff --git a/htdocs/langs/de_CH/productbatch.lang b/htdocs/langs/de_CH/productbatch.lang index 8e7a51377bd..c6213692c0b 100644 --- a/htdocs/langs/de_CH/productbatch.lang +++ b/htdocs/langs/de_CH/productbatch.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - productbatch Batch=Chg / Serie +EatByDate=Verzehren-bis-Datum +SellByDate=Verkaufen-bis-Datum DetailBatchNumber=Chg / Serie Details printBatch=Chg / Serie: %s AddDispatchBatchLine=Fügen Sie eine Zeile für Haltbarkeit Dispatching -WhenProductBatchModuleOnOptionAreForced=Wenn das Modul Lot/Seriennr eingeschaltet ist, wird der Modus für Lagerbestands-Erhöhungen / -Senkungen auf die letzte Auswahl festgelegt und kann nicht geändert werden. Andere Optionen können nach Wunsch eingestellt werden. diff --git a/htdocs/langs/de_CH/products.lang b/htdocs/langs/de_CH/products.lang index 079698f2ee9..108767ba85f 100644 --- a/htdocs/langs/de_CH/products.lang +++ b/htdocs/langs/de_CH/products.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - products +Reference=Referenz ProductVatMassChange=MwSt-Massenänderung LastRecordedProducts=%s zuletzt erfasste Produkte CardProduct0=Produkt-Karte diff --git a/htdocs/langs/de_CH/propal.lang b/htdocs/langs/de_CH/propal.lang index 4f6c135a728..340b40282f5 100644 --- a/htdocs/langs/de_CH/propal.lang +++ b/htdocs/langs/de_CH/propal.lang @@ -1,8 +1,12 @@ # Dolibarr language file - Source file is en_US - propal ProposalCard=Angebotskarte +LastPropals=%s neueste Angebote +PropalsOpened=Offen PropalsToClose=Zu schliessende Angebote DefaultProposalDurationValidity=Standardmässige Gültigkeitsdatuer (Tage) UseCustomerContactAsPropalRecipientIfExist=Falls vorhanden die Adresse des Kundenkontakts statt des Geschäftspartners verwenden +AvailabilityPeriod=Verfügbarkeitszeitraum +SetAvailability=Verfügbarkeitszeitraum definieren TypeContact_propal_external_CUSTOMER=Kundenkontakt für Angebot DefaultModelPropalToBill=Standard-Template, wenn Sie ein Angebot schliessen wollen (zur Verrechung) DefaultModelPropalClosed=Standard-Template, wenn sie ein Angebot schliessen wollen (ohne Rechnung) diff --git a/htdocs/langs/de_CH/resource.lang b/htdocs/langs/de_CH/resource.lang index 4c3fe4d2c12..62393eeac60 100644 --- a/htdocs/langs/de_CH/resource.lang +++ b/htdocs/langs/de_CH/resource.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - resource +ResourceCard=Ressourcen-Karte ShowResource=Resource anzeigen diff --git a/htdocs/langs/de_CH/salaries.lang b/htdocs/langs/de_CH/salaries.lang deleted file mode 100644 index c0cd5b0f4ce..00000000000 --- a/htdocs/langs/de_CH/salaries.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchhaltungs-Konto für die Zahlung der Löhne/Gehälter -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard Buchhaltungs-Konto für Finanzaufwendungen diff --git a/htdocs/langs/de_CH/sendings.lang b/htdocs/langs/de_CH/sendings.lang index 179022603c9..8b084d38bbe 100644 --- a/htdocs/langs/de_CH/sendings.lang +++ b/htdocs/langs/de_CH/sendings.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - sendings RefSending=Versand Nr. SendingCard=Auslieferungen -ConfirmCancelSending=Möchten Sie diese Lieferung wirklich wirklich stornieren? StatsOnShipmentsOnlyValidated=Versandstatistik (nur Freigegebene). Das Datum ist das der Freigabe (geplantes Lieferdatum ist nicht immer bekannt). DocumentModelTyphon=Vollständig Dokumentvorlage für die Lieferungscheine (Logo, ...) SumOfProductVolumes=Summe der Produktevolumen diff --git a/htdocs/langs/de_CH/sms.lang b/htdocs/langs/de_CH/sms.lang index 668e0fbe663..b5420e86808 100644 --- a/htdocs/langs/de_CH/sms.lang +++ b/htdocs/langs/de_CH/sms.lang @@ -1,3 +1,4 @@ # Dolibarr language file - Source file is en_US - sms SmsSuccessfulySent=SMS korekkte gesendet (von %s an %s) +ConfirmValidSms=Freigabe dieser Kampagne? SmsNoPossibleSenderFound=Kein Absender verfügbar. Prüfen Sie die Einstellungen Ihres SMS Anbieters. diff --git a/htdocs/langs/de_CH/stocks.lang b/htdocs/langs/de_CH/stocks.lang index 2e3d323e9b5..5fd4332b3a6 100644 --- a/htdocs/langs/de_CH/stocks.lang +++ b/htdocs/langs/de_CH/stocks.lang @@ -3,9 +3,7 @@ WarehouseCard=Warenlagerkarte CancelSending=Lieferung abbrechen StockTransfer=Lagerumbuchung MassStockTransferShort=Massen Lagerumbuchungen -StockLowerThanLimit=Bestand unterhalb des Sicherungsbestandes DeStockOnShipmentOnClosing=Verringere echten Bestände bei Lieferbestätigung -ReStockOnDispatchOrder=Reale Bestände auf manuelle Dispatching in Hallen, nach Erhalt Lieferanten bestellen StockLimitShort=Alarmschwelle StockLimit=Sicherungsbestand für autom. Benachrichtigung AverageUnitPricePMP=Gewichteter Durchschnittpreis bei Erwerb @@ -15,3 +13,4 @@ UseVirtualStockByDefault=Nutze theoretische Lagerbestände anstatt des physische ReplenishmentOrdersDesc=Das ist eine Liste aller offenen Lieferantenbestellungen inklusive vordefinierter Produkte. Nur geöffnete Bestellungen mit vordefinierten Produkten, sofern es den Lagerbestand betrifft, sind hier sichtbar. ThisSerialAlreadyExistWithDifferentDate=Diese Charge- / Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) OpenAll=Für alle Aktionen freigeben +inventoryDraft=Läuft diff --git a/htdocs/langs/de_CH/stripe.lang b/htdocs/langs/de_CH/stripe.lang new file mode 100644 index 00000000000..f4f450d3d92 --- /dev/null +++ b/htdocs/langs/de_CH/stripe.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - stripe +STRIPE_PAYONLINE_SENDEMAIL=Status-Email nach einer Zahlung (erfolgreich oder nicht) diff --git a/htdocs/langs/de_CH/supplier_proposal.lang b/htdocs/langs/de_CH/supplier_proposal.lang index fc7401b6c91..937b05e65fb 100644 --- a/htdocs/langs/de_CH/supplier_proposal.lang +++ b/htdocs/langs/de_CH/supplier_proposal.lang @@ -5,6 +5,7 @@ CommRequest=Generelle Preisanfrage CommRequests=Generelle Preisanfragen SearchRequest=Anfragen finden DraftRequests=Entwürfe Preisanfragen +RequestsOpened=Offene Preisanfragen SupplierProposalShort=Angebot Lieferant SupplierProposals=Angebote Lieferant SupplierProposalsShort=Angebote Lieferant diff --git a/htdocs/langs/de_CH/suppliers.lang b/htdocs/langs/de_CH/suppliers.lang index 2fb177df550..f29080cd177 100644 --- a/htdocs/langs/de_CH/suppliers.lang +++ b/htdocs/langs/de_CH/suppliers.lang @@ -1,6 +1,9 @@ # Dolibarr language file - Source file is en_US - suppliers TotalBuyingPriceMinShort=Summe der Einkaufspreise der Unterprodukte +SupplierPrices=Lieferanten Preise +RefSupplierShort=Ref . Lieferant SupplierReputation=Lieferantenbewertung DoNotOrderThisProductToThisSupplier=Nicht bestellen NotTheGoodQualitySupplier=Falsche Menge ReputationForThisProduct=Bewertung +BuyingPriceNumShort=Lieferanten Preise diff --git a/htdocs/langs/de_CH/trips.lang b/htdocs/langs/de_CH/trips.lang index 72e22a5d755..08438f665f9 100644 --- a/htdocs/langs/de_CH/trips.lang +++ b/htdocs/langs/de_CH/trips.lang @@ -6,7 +6,6 @@ ListOfTrips=Liste Reise- und Spesenabrechnungen TypeFees=Spesen- und Kostenarten ShowTrip=Spesenreport anzeigen NewTrip=neue Reisekostenabrechnung -CompanyVisited=Besuchte Firma/Stiftung ListTripsAndExpenses=Liste Reise- und Spesenabrechnungen ExpenseReportWaitingForApproval=Eine neue Reisekostenabrechnung ist zur Genehmigung vorgelegt worden AnyOtherInThisListCanValidate=Zu informierende Person für die Bestätigung diff --git a/htdocs/langs/de_CH/users.lang b/htdocs/langs/de_CH/users.lang index 32cb98fe650..d7a2044a4d7 100644 --- a/htdocs/langs/de_CH/users.lang +++ b/htdocs/langs/de_CH/users.lang @@ -6,7 +6,6 @@ LastUsersCreated=%s neueste Benutzer LinkToCompanyContact=Mit Geschäftspartner/Kontakt verknüpfen LinkedToDolibarrThirdParty=Mit Geschäftspartner verknüpft CreateDolibarrThirdParty=Neuen Geschäftspartner erstellen -CreateInternalUserDesc=Dieses Formular erlaubt Ihnen das Anlegen eines unternehmensinternen Benutzers. Zum Anlegen eines externen Benutzers (Kunden, Lieferanten, ...), verwenden Sie bitte die 'Benutzer erstellen'-Schaltfläche in der Kontaktkarte des jeweiligen Geschäftspartner-Kontakts. PermissionInheritedFromAGroup=Berechtigung durch eine Gruppenzugehörigkeit gererbt. UserWillBeInternalUser=Erstellter Benutzer ist intern (mit keinem bestimmten Geschäftspartner verknüpft) UserWillBeExternalUser=Erstellter Benutzer ist extern (mit einem bestimmten Geschäftspartner verknüpft) diff --git a/htdocs/langs/de_CH/website.lang b/htdocs/langs/de_CH/website.lang index 44135bb92c7..8cb306077f0 100644 --- a/htdocs/langs/de_CH/website.lang +++ b/htdocs/langs/de_CH/website.lang @@ -6,7 +6,6 @@ WEBSITE_CSS_URL=URL zu externer CSS Datei EditPageMeta=Metadaten bearbeiten Website=Website PreviewOfSiteNotYetAvailable=Vorschau des Webauftritt %s noch nicht verfügbar. Sie müssen zuerst eine Seite hinzufügen. -RequestedPageHasNoContentYet=Die Seite mit ID %s hat noch keinen Inhalt, oder die Cachedatei .tpl.php wurde gelöscht. Editieren sie die Seite um das Problem zu lösen. PageDeleted=Seite '%s' des Webauftritt %s gelöscht PageAdded=Seite '%s' hinzugefügt ViewSiteInNewTab=Webauftritt in neuem Tab anzeigen diff --git a/htdocs/langs/de_DE/accountancy.lang b/htdocs/langs/de_DE/accountancy.lang index 04106060d16..50b4b65b560 100644 --- a/htdocs/langs/de_DE/accountancy.lang +++ b/htdocs/langs/de_DE/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Übersicht über die Anzahl der bereits an ein Buch OtherInfo=Zusatzinformationen DeleteCptCategory=Buchhaltungskonto aus Gruppe entfernen ConfirmDeleteCptCategory=Soll dieses Buchhaltungskonto wirklich aus der Gruppe entfernt werden? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Buchhaltung AccountancyAreaDescIntro=Die Verwendung des Buchhaltungsmoduls erfolgt in mehreren Schritten: @@ -62,7 +63,6 @@ Addanaccount=Fügen Sie ein Buchhaltungskonto hinzu AccountAccounting=Buchhaltungskonto AccountAccountingShort=Konto SubledgerAccount=Nebenbuch Konto -subledger_account=Nebenbuch Konto ShowAccountingAccount=Buchhaltungskonten anzeigen ShowAccountingJournal=Buchhaltungsjournal anzeigen AccountAccountingSuggest=Buchhaltungskonto Vorschlag @@ -79,6 +79,7 @@ SuppliersVentilation=Lieferantenrechnungen zusammenfügen ExpenseReportsVentilation=Spesenabrechnung Zuordnung CreateMvts=Neue Transaktion erstellen UpdateMvts=Änderung einer Transaktion +ValidTransaction=Validate transaction WriteBookKeeping=Buchungen ins Hauptbuch übernehmen Bookkeeping=Hauptbuch AccountBalance=Saldo Sachkonto @@ -142,6 +143,7 @@ NumPiece=Teilenummer TransactionNumShort=Anz. Buchungen AccountingCategory=Gruppen Buchungskonten GroupByAccountAccounting=Gruppieren nach Buchhaltungskonto +ByAccounts=By accounts NotMatch=undefiniert DeleteMvt=Zeilen im Hauptbuch löschen DelYear=Jahr zu entfernen @@ -214,12 +216,14 @@ AccountingJournalType1=Verschiedene Aktionen AccountingJournalType2=Verkauf AccountingJournalType3=Einkauf AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Hat neue ErrorAccountingJournalIsAlreadyUse=Dieses Journal wird bereits verwendet ## Export Exports=Exporte Export=Exportieren +ExportDraftJournal=Export draft journal Modelcsv=Exportmodell OptionsDeactivatedForThisExportModel=Für dieses Exportmodell sind die Einstellungen deaktiviert Selectmodelcsv=Wählen Sie ein Exportmodell diff --git a/htdocs/langs/de_DE/admin.lang b/htdocs/langs/de_DE/admin.lang index 7beccc23d52..e177e7a544d 100644 --- a/htdocs/langs/de_DE/admin.lang +++ b/htdocs/langs/de_DE/admin.lang @@ -123,8 +123,8 @@ PHPTZ=Zeitzone der PHP-Version DaylingSavingTime=Sommerzeit (Benutzer) CurrentHour=PHP-Zeit (Server) CurrentSessionTimeOut=Aktuelle Session timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. +YouCanEditPHPTZ=Um eine andere PHP-Zeitzone zu setzen (nicht erforderlich), können Sie eine .htaccess-Datei mit einer Zeile wie "SetEnv TZ Europe / Paris" erstellen. +HoursOnThisPageAreOnServerTZ=Warnung: Im Gegensatz zu anderen Darstellungen, sind Stunden auf dieser Seite nicht in Ihrer lokalen Zeitzone, sondern in der Zeitzone des Servers. Box=Box Boxes=Boxen MaxNbOfLinesForBoxes=Maximale Zeilenanzahl in Boxen\n @@ -190,7 +190,7 @@ FeatureAvailableOnlyOnStable=Diese Funktion steht nur in offiziellen stabilen Ve Rights=Berechtigungen BoxesDesc=Boxen sind auf einigen Seiten angezeigte Informationsbereiche. Sie können die Anzeige einer Box einstellen, indem Sie auf die Zielseite klicken und 'Aktivieren' wählen. Zum Ausblenden einer Box klicken Sie einfach auf den Papierkorb. OnlyActiveElementsAreShown=Nur Elemente aus aktiven Module werden angezeigt. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Die Module bestimmen, welche Funktionalität in Dolibarr verfügbar ist. Manche Module erfordern zusätzlich Berechtigungen die Benutzern zugewiesen werden muss, nachdem das Modul aktiviert wurde. \nKlicken Sie auf die Schaltfläche on/off, um ein Modul/Anwendung zu aktivieren. ModulesMarketPlaceDesc=Sie finden weitere Module auf externen Web-Sites... ModulesDeployDesc=Wenn die Rechte Ihres Dateisystems es zulassen, können Sie mit diesem Werkzeug ein externes Modul installieren. Es wird dann im Reiter %s erscheinen. ModulesMarketPlaces=Suche externe Module ... @@ -214,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Datenbankpasswort in der Konfigurationsdatei ver InstrucToEncodePass=Um das Kennwort in der Konfigurationsdatei conf.php verschlüsselt zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="...";
durch
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=Um das Kennwort unverschlüsselt (im Klartext) in der Konfigurationsdatei conf.php zu speichern, ersetzen Sie die Zeile
$dolibarr_main_db_pass="crypted:...";
durch
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=PDF-Dokumentschutz aktivieren (Die Aktivierung ist nicht empfohlen, weil dadurch die Stapelerzeugung von PDFs nicht mehr funktioniert) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFilesDesc=Die Aktivierung des PDF-Dokumentschutzes erhält die Lesbarkeit und Druckfähigkeit des Dokuments, Bearbeitung und Kopien sind jedoch nicht mehr möglich. Bitte beachten Sie, dass nach Aktivierung dieser Funktion auch die Stapelverarbeitung von PDF-Dokumenten (z.B. alle offenen Rechnungen zusammenführen) nicht mehr funktioniert. Feature=Funktion DolibarrLicense=Lizenz Developpers=Entwickler/Mitwirkende @@ -308,12 +308,12 @@ LastActivationIP=IP der letzten Aktivierung UpdateServerOffline=Update-Server offline WithCounter=Zähler verwalten GenericMaskCodes=Sie können ein beliebiges Numerierungsschema wählen. Dieses Schema könnte z.B. so aussehen:
{000000} steht für eine 6-stellige Nummer, die sich bei jedem neuen %s automatisch erhöht. Wählen Sie die Anzahl der Nullen je nach gewünschter Nummernlänge. Der Zähler füllt sich automatisch bis zum linken Ende mit Nullen um das gewünschte Format abzubilden.
{000000+000} führt zu einem ähnlichen Ergebnis, allerdings mit einem Wertsprung in Höhe des Werts rechts des Pluszeichens, der beim ersten %s angewandt wird.
{000000@x} wie zuvor, jedoch stellt sich der Zähler bei Erreichen des Monats x (zwischen 1 und 12) automatisch auf 0 zurück. Ist diese Option gewählt und x hat den Wert 2 oder höher, ist die Folge {mm}{yy} or {mm}{yyyy} ebenfalls erforderlich.
{dd} Tag (01 bis 31).
{mm} Monat (01 bis 12).
{yy}, {yyyy} or {y} Jahreszahl 1-, 2- oder 4-stellig.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
+GenericMaskCodes2={cccc} der Kunden-Code mit n Zeichen
{cccc000} der Kunden-Code mit n Zeichen, gefolgt von dem den zu dem Kunden zugeordneten Partner ID. Dieser Zähler wird gleichzeitig mit dem Globalen Zähler zurückgesetzt.
{tttt} Die Partner ID mit n Zeichen (siehe unter Einstellungen->Stammdaten->Arten von Partnern). Wenn diese Option aktiv ist, wird für jede Partnerart ein separater Zähler geführt.
GenericMaskCodes3=Alle anderen Zeichen in der Maske bleiben.
Leerzeichen sind nicht zulässig.
-GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
+GenericMaskCodes4a=Beispiel auf der 99. %s des Partners DieFirma, mit Datum 2007-01-31:
GenericMaskCodes4b=Beispiel für Partner erstellt am 2007-03-01:
GenericMaskCodes4c=Beispiel für ein Produkt erstellt am 2007-03-01:
-GenericMaskCodes5=ABC{yy}{mm}-{000000} will give ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX will give 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} will give IN0701-0099-A if the type of company is 'Responsable Inscripto' with code for type that is 'A_RI' +GenericMaskCodes5=ABC{yy}{mm}-{000000} ergibt ABC0701-000099
{0000+100@1}-ZZZ/{dd}/XXX ergibt 0199-ZZZ/31/XXX
IN{yy}{mm}-{0000}-{t} ergibt IN0701-0099-A falls die Partnerart 'Responsable Inscripto' ist und der Typcode 'A_RI' ist GenericNumRefModelDesc=Liefert eine anpassbare Nummer nach vordefiniertem Schema ServerAvailableOnIPOrPort=Server ist verfügbar unter der Adresse %s auf Port %s ServerNotAvailableOnIPOrPort=Server nicht verfügbar unter Adresse %s auf Port %s @@ -433,16 +433,16 @@ ClickToShowDescription=Klicke um die Beschreibung zu sehen DependsOn=Diese Modul benötigt die folgenden Module RequiredBy=Diese Modul wird durch folgende Module verwendet TheKeyIsTheNameOfHtmlField=Das ist der Name des HTML Feldes. Sie benötigen HTML Kenntnisse um den Namen des Feldes aus der HTML Seite zu ermitteln. -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: -PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s -PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s +PageUrlForDefaultValues=Hier muss die relative URL der Seite eingegeben werden. Wenn Parameter in der URL angegeben werden, dann werden alle Vorgabewerte auf den gleichen Wert gesetzt. Beispiele: +PageUrlForDefaultValuesCreate=
um neue Partner zu erstellen ist es %s +PageUrlForDefaultValuesList=
Für die Seite die die Partner auflstet ist es %s EnableDefaultValues=Persönliche Standardwerte erlauben -EnableOverwriteTranslation=Enable usage of overwrote translation +EnableOverwriteTranslation=Aktiviere die Verwendung von übersteuerten Übersetzungen GoIntoTranslationMenuToChangeThis=Eine Übersetzung wurde für diesen Schlüssel gefunden, um die Übersetzung anzupassen, gehen Sie in Menü "Home->Setup->Überseztungen" -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +WarningSettingSortOrder=Warnung: Änderung an der Standardsortierreihenfolge können zu Fehlern führen, falls das betreffende Feld nicht vohanden ist. Falls dies passiert, entfernen sie das betreffende Feld oder stellen die den Defaultwert wieder her. Field=Feld ProductDocumentTemplates=Dokumentvorlagen zur Erstellung von Produktdokumenten -FreeLegalTextOnExpenseReports=Free legal text on expense reports +FreeLegalTextOnExpenseReports=Freier Rechtstext auf Spesenabrechnungen WatermarkOnDraftExpenseReports=Wasserzeichen auf Entwurf von Ausgabenbelegen # Modules Module0Name=Benutzer und Gruppen @@ -466,7 +466,7 @@ Module30Desc=Rechnungs- und Gutschriftsverwaltung für Kunden. Rechnungsverwaltu Module40Name=Lieferanten Module40Desc=Lieferantenverwaltung und Einkauf (Bestellungen und Rechnungen) Module42Name=Systemprotokoll -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Protokollierungsdienste (Syslog). Diese Logs dienen der Fehlersuche/Analyse. Module49Name=Bearbeiter Module49Desc=Editorverwaltung Module50Name=Produkte @@ -521,8 +521,8 @@ Module410Name=Webkalender Module410Desc=Webkalenderintegration Module500Name=Sonderausgaben Module500Desc=Verwalten von speziellen Ausgaben (Steuern, Sozialabgaben, Dividenden) -Module510Name=Payment of employee wages -Module510Desc=Record and follow payment of your employee wages +Module510Name=Lohnzahlungen +Module510Desc=Verwaltung der Angestellten-Löhne und -Zahlungen Module520Name=Darlehen Module520Desc=Verwaltung von Darlehen Module600Name=Benachrichtigungen @@ -536,7 +536,7 @@ Module1120Desc=Anfordern von Lieferanten-Angeboten und Preise Module1200Name=Mantis Module1200Desc=Mantis-Integration Module1400Name=Buchhaltung -Module1400Desc=Buchhaltung für Experten (doppelte Buchhaltung) +Module1400Desc=Accounting management (double entries) Module1520Name=Dokumente erstellen Module1520Desc= Mailings Dokumente erstellen Module1780Name=Kategorien/#tags @@ -565,9 +565,9 @@ Module2900Desc=GeoIP Maxmind Konvertierung Module3100Name=Skype Module3100Desc=Skype-Button zu Karten von Benutzer-/Partner-/Kontakt-/Mitglieder-Karten hinzufügen Module3200Name=Unveränderbare Logs -Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. +Module3200Desc=Aktivierung der Protokollierung bestimmter Geschäftsvorgänge im unveränderbaren Log. Ereignisse werden in Echtzeit archiviert. Das Log ist eine Tabelle von verknüpften Ereignissen, welches gelesen und exportiert werden kann. Dieses Modul ist für manche Länder zwingend aktiviert. Module4000Name=PV -Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) +Module4000Desc=Personalverwaltung Module5000Name=Mandantenfähigkeit Module5000Desc=Ermöglicht Ihnen die Verwaltung mehrerer Firmen Module6000Name=Workflow @@ -585,7 +585,7 @@ Module50100Desc=Modul Point of Sale (POS)\n Module50200Name=Paypal Module50200Desc=Mit diesem Modul können Sie via PayPal Online Kreditkartenzahlungen entgegennehmen Module50400Name=Buchhaltung (erweitert) -Module50400Desc=Buchhaltung für Experten (doppelte Buchhaltung) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direktdruck (ohne die Dokumente zu öffnen) mittels CUPS IPP (Drucker muss vom Server aus sichtbar sein und auf dem Server muss CUPS installiert sein) Module55000Name=Befragung, Umfrage oder Abstimmung @@ -615,7 +615,7 @@ Permission32=Produkte/Leistungen erstellen/bearbeiten Permission34=Produkte/Leistungen löschen Permission36=Projekte/Leistungen exportieren Permission38=Produkte exportieren -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission41=Projekte und Aufgaben lesen (Geteilte Projekte und Projekte in denen ich Kontakt bin). Es kann auch Zeitaufwand auf zugewiesenen Aufgaben oder via Hierarchie gebucht werden. Permission42=Erstellen und Ändern von Projekten (geteilte Projekte und solche, in denen ich Kontakt bin). Kann auch Aufgaben erstellen und Benutzer dem Projekt und den Aufgaben zuweisen. Permission44=Projekte und Aufgaben löschen (gemeinsame Projekte und Projekte in welchen ich Ansprechpartner bin) Permission45=Projekte exportieren @@ -997,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Verzögerungstoleranz (in Tagen) vor Benachrichtigung Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Verzögerungstoleranz (in Tagen) vor der Benachrichtigung über einzulösende Schecks Delays_MAIN_DELAY_EXPENSEREPORTS=Toleranz in Tagen vor der Benachrichtigung zur Genehmigung einer Spesenabrechnung SetupDescription1=Die Einstellungsübersicht dient zum initialen Einrichten before mit der Verwendung von Dolibarr begonnen wird. -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : -SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). -SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. +SetupDescription2=Die zwei notwendigen Einstellungen sind die ersten beiden Zeilen im Einstellungsmenü auf der linken Seite: %s Einstellungsseite und die Einstellungsseite %s. +SetupDescription3=Parameter im Menü %s -> %s sind notwendig, da die eingeben Daten für Dolibarr-Anzeigen und zum Einstellen des Standardverhaltens der Software notwendig sind (z.B. für länderabhängige Funktionen). +SetupDescription4=Parameter im Menü %s-> %s sind notwenig, da Dolibarr ein modulares monolithisches ERP/CRM-System ist. Neue Funktionen werden für jedes aktivierte Modul zum Menü hinzugefügt. SetupDescription5=Andere Einträge verwalten optionale Parameter. LogEvents=Protokollierte Ereignisse Audit=Protokoll @@ -1015,7 +1015,7 @@ BrowserOS=Betriebssystem des Browsers ListOfSecurityEvents=Liste der sicherheitsrelevanten Ereignisse SecurityEventsPurged=Security-Ereignisse gelöscht LogEventDesc=Hier können Sie die Protokollierungseinstellungen für sicherheitsrelevante Ereignisse anpassen. Administratoren können die entsprechenden Inhalte unter Systemwerkzeuge-Protokoll einsehen. Achtung: Diese Funktion kann zu erhöhtem Datenaufkommen in der Datenbank führen. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +AreaForAdminOnly=Einstellungen können nur durch
Administratoren
verändert werden. SystemInfoDesc=Verschiedene systemrelevante, technische Informationen - Lesemodus und nur für Administratoren sichtbar. SystemAreaForAdminOnly=Dieser Bereich steht ausschließlich Administratoren zur Verfügung. Keine der Benutzerberechtigungen kann dies ändern. CompanyFundationDesc=Tragen Sie hier alle Informationen zum Unternehmen ein, das Sie verwalten möchten (Zum Bearbeiten auf den Button "Bearbeiten" oder "Speichern" am Schluss der Seite klicken) @@ -1107,12 +1107,12 @@ CurrentTranslationString=Aktuelle Übersetzung WarningAtLeastKeyOrTranslationRequired=Es sind mindestens ein Suchkriterium erforderlich für eine Schlüssel- oder Übersetzungszeichenfolge NewTranslationStringToShow=Neue Übersetzungen anzeigen OriginalValueWas=Original-Übersetzung überschrieben. Der frühere Wert war:

%s -TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files -TotalNumberOfActivatedModules=Activated application/modules: %s / %s +TransKeyWithoutOriginalValue=Sie haben den Überstzungsschlüssel '%s' erstellt, der in keiner Sprachdatei existiert. +TotalNumberOfActivatedModules=Aktivierte Anwendungen/Module: %s / %s YouMustEnableOneModule=Sie müssen mindestens 1 Modul aktivieren ClassNotFoundIntoPathWarning=Klasse %s nicht innerhalb PHP-Pfad gefunden YesInSummer=Ja im Sommer -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Hinweis: Nur die folgenden Module sind für externe Nutzer verfügbar (unabhängig von der Berechtigung dieser Benutzer), und das auch nur, wenn die Rechte zugeteilt wurden: SuhosinSessionEncrypt=Sitzungsspeicher durch Suhosin verschlüsselt ConditionIsCurrently=Einstellung ist aktuell %s YouUseBestDriver=Sie verwenden den Treiber %s, dies ist derzeit der beste verfügbare. @@ -1158,14 +1158,14 @@ CompanyIdProfChecker=Regeln für Identifikationsnummern MustBeUnique=Muss es eindeutig sein ? MustBeMandatory=Erforderlich zur Anlage von Partnern ? MustBeInvoiceMandatory=Erforderlich, um Rechnungen freizugeben ? -TechnicalServicesProvided=Technical services provided +TechnicalServicesProvided=Technische Unterstützung durch ##### Webcal setup ##### WebCalUrlForVCalExport=Ein Eportlink für das Format %s findet sich unter folgendem Link: %s ##### Invoices ##### BillsSetup=Rechnungsmoduleinstellungen BillsNumberingModule=Rechnungs- und Gutschriftsnumerierungsmodul BillsPDFModules=PDF-Rechnungsvorlagen -PaymentsPDFModules=Payment documents models +PaymentsPDFModules=Zahlungsvorlagen CreditNote=Gutschrift CreditNotes=Gutschriften ForceInvoiceDate=Rechnungsdatum ist zwingend Freigabedatum @@ -1363,8 +1363,8 @@ CacheByClient=Vom Browser zwischengespeichert CompressionOfResources=Komprimierung von HTTP Antworten CompressionOfResourcesDesc=Zum Beispiel mit der Apache Anweisung "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Automatische Erkennung mit den aktuellen Browsern nicht möglich -DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. -DefaultCreateForm=Default values for new objects +DefaultValuesDesc=Hier können Vorgabewerte für neue Einträge und/oder Standardfilter und Sortierreihenfolgen definiert werden. +DefaultCreateForm=Vorgabewerte für neue Einträge DefaultSearchFilters=Standard Suchfilter DefaultSortOrder=Standardsortierreihenfolge DefaultFocus=Standardfokusfeld @@ -1502,7 +1502,7 @@ SupposedToBeInvoiceDate=Rechnungsdatum verwendet Buy=Kaufen Sell=Verkaufen InvoiceDateUsed=Rechnungsdatum verwendet -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Für Ihr Unternehmen wurde keine USt.-Verwendung definiert (Start->Einstellungen->Unternehmen/Stiftung), entsprechend stehen in der Konfiguration keine USt.-Optionen zur Verfügung. AccountancyCode=Kontierungs-Code AccountancyCodeSell=Verkaufskonto-Code AccountancyCodeBuy=Einkaufskonto-Code @@ -1520,7 +1520,7 @@ AGENDA_NOTIFICATION_SOUND=Aktiviere Tonbenachrichtigung AGENDA_SHOW_LINKED_OBJECT=Verknüpfte Objekte in Agenda anzeigen ##### Clicktodial ##### ClickToDialSetup=Click-to-Dial Moduleinstellungen -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialUrlDesc=URL, die bei einem Klick auf das Telefonsymbol aufgerufen werden soll. In dieser URL können die folgenden Tags verwendet werden:
__PHONETO__ Telefonnummer des Angerufenen
__PHONEFROM__ Telefonnummer des Anrufers (Ihre)
__LOGIN__ Ihren Benutzernamen für Click-to-Dial (siehe Benutzerdaten)
__PASS__ Ihr Click-to-Dial-Passwort (siehe Benutzerdaten). ClickToDialDesc=Dieses Modul fügt ein Symbol nach Telefonnummern ein. Durch einen Klick auf dieses Symbol kann Dolibarr z.B. durch ein SIP System eine Telefonanlage anweisen, diese Telefonnummer zu wählen. ClickToDialUseTelLink=Nur einen Link "Tel:" bei Telefonnummern verwenden ClickToDialUseTelLinkDesc=Benutzen Sie diese Methode, wenn Ihre Benutzer ein Software-Telefon oder ein Interface für ein Telefon auf demselben Computer wie der Browser installiert haben. Dieses Telefon/Interface wird aufgerufen, wenn Sie auf einen Link klicken, der mit "tel:" beginnt. Wenn Sie eine vollständige Server-Lösung nutzen wollen (ohne lokale Software-Installation), wählen Sie hier "Nein" und füllen das nächste Feld. @@ -1549,7 +1549,7 @@ EndPointIs=SOAP-Clients müssen ihre Anfragen an den Dolibarr Endpunkt verfügba ApiSetup=Modul API - Einstellungen ApiDesc=Wenn dieses Modul aktiviert ist, wird Dolibarr zum REST Server für diverse web services. ApiProductionMode=Echtbetrieb aktivieren (dadurch wird ein Cache für Service-Management aktiviert) -ApiExporerIs=You can explore and test the APIs at URL +ApiExporerIs=Sie können das API unter dieser URL anschauen/testen OnlyActiveElementsAreExposed=Nur Elemente aus aktiven Modulen sind ungeschützt ApiKey=Schlüssel für API WarningAPIExplorerDisabled=Der API-Explorer wurde deaktiviert. Der API-Explorer ist nicht notwendig um die API-Dienste zu bieten. Es ist ein Werkzeug für Entwickler zu finden / Test-REST-APIs. Wenn Sie dieses Tool benötigen, gehen Sie in Setup von Modul-API REST um es zu aktivieren. @@ -1620,12 +1620,12 @@ BackupDumpWizard=Assistenten zum erstellen der Datenbank-Backup Dump-Datei SomethingMakeInstallFromWebNotPossible=Die Installation von dem externen Modul ist aus folgenden Gründen vom Web-Interface nicht möglich: SomethingMakeInstallFromWebNotPossible2=Aus diesem Grund wird die Prozess hier beschriebenen Upgrade ist nur manuelle Schritte ein privilegierter Benutzer tun kann. InstallModuleFromWebHasBeenDisabledByFile=Installieren von externen Modul aus der Anwendung wurde von Ihrem Administrator deaktiviert. \nSie müssen ihn bitten, die Datei%s zu entfernen, um diese Funktion zu ermöglichen. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Um ein externes Modul zu erstellen oder installieren, müssen die Dateien im Verzeichnis %s gespeichert werden. Damit dieses Verzeichnis durch Dolibarr verwendet wird, muss in den Einstellungen conf/conf.php die folgenden beiden Zeilen hinzugefügt werden:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Zeilen hervorheben bei Mouseover HighlightLinesColor=Farbe der Zeile hervorheben, wenn die Maus darüberfährt (leer lassen, um den Effekt zu deaktivieren) TextTitleColor=Farbe des Seitenkopfs LinkColor=Farbe für Hyperlinks -PressF5AfterChangingThis=Press CTRL+F5 on keyboard or clear your browser cache after changing this value to have it effective +PressF5AfterChangingThis=Drücken Sie CTRL+F5 auf der Tastatur oder löschen Sie Ihren Browser-Cache, nachdem dem Sie diesen Wert geändert haben, damit die Änderung wirksam wird NotSupportedByAllThemes=Funktioniert mit dem Standard-Designvorlagen: wird möglicherweise nicht von externen Designvorlagen unterstützt BackgroundColor=Hintergrundfarbe TopMenuBackgroundColor=Hintergrundfarbe für Hauptmenü @@ -1697,10 +1697,10 @@ SamePriceAlsoForSharedCompanies=Wenn Sie das Mehrfirmenmodul mit der Einstellung ModuleEnabledAdminMustCheckRights=Das Modul wurde aktiviert. Rechte wurden nur Admin-Benutzern gewährt. Wenn nötig, müssen Sie anderen Benutzern oder Gruppen Rechte manuell zuweisen. UserHasNoPermissions=Dieser Benutzer hat keine Rechte TypeCdr=Verwenden Sie „Nein“, wenn das Datum der Zahlungsfrist ist das Rechnungsdatum plus ein Delta in Tagen (Delta ist die „Anzahl der Tage“)
Use „Am Ende des Monats“, wenn nach dem Delta das Datum muss bis zum Ende des Monats erhöht werden (+ ein „Offset“ optional Tage)
„Aktueller/ Nächster“, um das Datum der Zahlungsfrist verwenden ist der erste n-ten Tag des Monats nach (N ist in der „Anzahl der Tage“ Feld gespeichert) -BaseCurrency=Reference currency of the company (go into setup of company to change this) +BaseCurrency=Basiswährung des Unternehmens (Kann in den Unternehmenseinstellungen verändert werden) WarningNoteModuleInvoiceForFrenchLaw=Dieses Modul %s erfüllt die Französische Gesetzgebung (Loi Finance 2016). WarningNoteModulePOSForFrenchLaw=Modul %s entspricht der französischen Gesetzgebung (Loi Finance 2016) weil das Modul "Unveränderbare Logs" automatisch aktiviert wird. -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. +WarningInstallationMayBecomeNotCompliantWithLaw=Sie versuchen das externe Modul %s zu installieren. Mit der Aktivierung eines externen Moduls vertrauen sie dem Herausgeber des Moduls und sind sicher, dass das System weiterhin die Gesetze Ihres Landes (%s) erfüllt. Falls das Modul Funktionalität bietet die in Ihrem Land nicht erlaubt sind, dann sind Sie Verantwortlich dass diese nicht genutzt werden. ##### Resource #### ResourceSetup=Konfiguration des Modul Ressourcen UseSearchToSelectResource=Verwende ein Suchformular um eine Ressource zu wählen (eher als eine Dropdown-Liste) zu wählen. diff --git a/htdocs/langs/de_DE/agenda.lang b/htdocs/langs/de_DE/agenda.lang index b3dc983996a..849f102f4ae 100644 --- a/htdocs/langs/de_DE/agenda.lang +++ b/htdocs/langs/de_DE/agenda.lang @@ -75,14 +75,17 @@ InterventionSentByEMail=Serviceauftrag %s gesendet via E-Mail ProposalDeleted=Angebot gelöscht OrderDeleted=Bestellung gelöscht InvoiceDeleted=Rechnung gelöscht +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### AgendaModelModule=Dokumentvorlagen für Ereignisse DateActionStart=Beginnt DateActionEnd=Endet AgendaUrlOptions1=Sie können die Ausgabe über folgende Parameter filtern: -AgendaUrlOptions2=login=%s begrenzt die Ausgabe auf den Benutzer %s erstellte oder zugewiesene Ereignissen ein. AgendaUrlOptions3=logina=%s begrenzt die Ausgabe auf den Benutzer %s erstellte Ereignissen. -AgendaUrlOptions4=logint=%s begrenzt die Ausgabe auf den Benutzer %s zugewiesene Ereignissen. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID begrenzt die Ausgabe auf die dem Projekte PROJECT_ID zugewiesene Ereignissen. AgendaShowBirthdayEvents=Geburtstage von Kontakten anzeigen AgendaHideBirthdayEvents=Geburtstage von Kontakten nicht anzeigen diff --git a/htdocs/langs/de_DE/banks.lang b/htdocs/langs/de_DE/banks.lang index 6dfca4eef1b..3dd77ed9f33 100644 --- a/htdocs/langs/de_DE/banks.lang +++ b/htdocs/langs/de_DE/banks.lang @@ -94,7 +94,7 @@ Reconciled=ausgelichen NotReconciled=nicht ausgeglichen CustomerInvoicePayment=Kundenzahlung SupplierInvoicePayment=Lieferanten-Zahlung -SubscriptionPayment=Beitragszahlung +SubscriptionPayment=Beitragszahlung WithdrawalPayment=Lastschriftzahlung SocialContributionPayment=Zahlung von Sozialabgaben/Steuern BankTransfer=Kontentransfer diff --git a/htdocs/langs/de_DE/bills.lang b/htdocs/langs/de_DE/bills.lang index d792244d8d8..3f43f357b20 100644 --- a/htdocs/langs/de_DE/bills.lang +++ b/htdocs/langs/de_DE/bills.lang @@ -29,7 +29,7 @@ InvoiceAvoirAsk=Gutschrift zur Rechnungskorrektur InvoiceAvoirDesc=Eine Gutschrift ist eine negative Rechnung zur Begleichung von Wertdifferenzen zwischen Rechnungssummen und Zahlungseingängen (Zuviel bezahlt oder mangelhafte Lieferung). invoiceAvoirWithLines=Neue Gutschrift mit den Positionen der Ursprungs-Rechnung invoiceAvoirWithPaymentRestAmount=Gutschrift über den Restbetrag der Originalrechnung erstellen -invoiceAvoirLineWithPaymentRestAmount=Gutschrift über den Restbetrag der Originalrechnung +invoiceAvoirLineWithPaymentRestAmount=Gutschrift über den Restbetrag der Originalrechnung ReplaceInvoice=Ersetze Rechnung %s ReplacementInvoice=Ersatzrechnung ReplacedByInvoice=Ersetzt durch Rechnung %s @@ -214,7 +214,7 @@ ExcessReceived=Erhaltener Überschuss EscompteOffered=Rabatt angeboten (Skonto) EscompteOfferedShort=Rabatt SendBillRef=Im Anhang Ihre Rechnung %s -SendReminderBillRef=Erinnerung für unsere Rechnung %s +SendReminderBillRef=Erinnerung für unsere Rechnung %s StandingOrders=Lastschriften StandingOrder=Lastschrift NoDraftBills=Keine Rechnungsentwürfe @@ -416,7 +416,7 @@ PaymentByTransferOnThisBankAccount=Zahlung per Überweisung auf folgendes Konto VATIsNotUsedForInvoice=* Nicht für USt-art-CGI-293B LawApplicationPart1=Durch die Anwendung des Gesetzes 80,335 von 12/05/80 LawApplicationPart2=Die Ware bleibt Eigentum -LawApplicationPart3=des Verkäufers bis zur vollständigen Bezahlung +LawApplicationPart3=des Verkäufers bis zur vollständigen Bezahlung LawApplicationPart4=des Preises. LimitedLiabilityCompanyCapital=SARL mit einem Kapital von UseLine=Übernehmen diff --git a/htdocs/langs/de_DE/boxes.lang b/htdocs/langs/de_DE/boxes.lang index c37a67ea7d5..ffc468290d1 100644 --- a/htdocs/langs/de_DE/boxes.lang +++ b/htdocs/langs/de_DE/boxes.lang @@ -18,7 +18,7 @@ BoxLastContracts=Neueste Verträge BoxLastContacts=Neueste Kontakte/Adressen BoxLastMembers=Neueste Mitglieder BoxFicheInter=Neueste Serviceaufträge -BoxCurrentAccounts=Saldo offene Konten +BoxCurrentAccounts=Saldo offene Konten BoxTitleLastRssInfos=%s neueste Neuigkeiten von %s BoxTitleLastProducts=%s zuletzt veränderte Produkte/Leistungen BoxTitleProductsAlertStock=Lagerbestands-Warnungen diff --git a/htdocs/langs/de_DE/categories.lang b/htdocs/langs/de_DE/categories.lang index 60e534f406e..70b5c33b19a 100644 --- a/htdocs/langs/de_DE/categories.lang +++ b/htdocs/langs/de_DE/categories.lang @@ -36,8 +36,8 @@ MemberIsInCategories=Dieses Mitglied ist folgenden Mitglieder- Kategorien/#tags ContactIsInCategories=Dieser Kontakt ist folgenden Kontakte- Kategorien/#tags verknüpft ProductHasNoCategory=Dieses Produkt/Leistung ist keiner Kategorie zugewiesen. CompanyHasNoCategory=Der Partner ist in keinen Tags/Kategorien -MemberHasNoCategory= Dieses Mitglied ist keiner Kategorie zugewiesen. -ContactHasNoCategory= Dieser Kontakt ist keiner Kategorie zugewiesen. +MemberHasNoCategory=Dieses Mitglied ist keiner Kategorie zugewiesen. +ContactHasNoCategory=Dieser Kontakt ist keiner Kategorie zugewiesen. ProjectHasNoCategory=Dieses Projekt ist keiner Kategorie oder Suchwörtern zugewiesen. ClassifyInCategory=Kategorie/#tag hinzufügen NotCategorized=ohne Zuordnung diff --git a/htdocs/langs/de_DE/companies.lang b/htdocs/langs/de_DE/companies.lang index 383e613d27e..afa8bfe1af2 100644 --- a/htdocs/langs/de_DE/companies.lang +++ b/htdocs/langs/de_DE/companies.lang @@ -307,7 +307,7 @@ ContactsAllShort=Alle (Kein Filter) ContactType=Kontaktart ContactForOrders=Bestellungskontakt ContactForOrdersOrShipments=Kontakt für den Auftrag oder die Lieferung -ContactForProposals=Angebotskontakt +ContactForProposals=Angebotskontakt ContactForContracts=Vertragskontakt ContactForInvoices=Rechnungskontakt NoContactForAnyOrder=Kein Kontakt für Bestellungen definiert diff --git a/htdocs/langs/de_DE/compta.lang b/htdocs/langs/de_DE/compta.lang index ab2b2312722..d8c0a533eb9 100644 --- a/htdocs/langs/de_DE/compta.lang +++ b/htdocs/langs/de_DE/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Standard Buchhaltungs-Konto für die Erhebung der Mw ACCOUNTING_VAT_BUY_ACCOUNT=Standard Buchhaltungs-Konto für Vorsteuer - Ust bei Einkäufen (wird verwendet, wenn nicht unter Einstellungen->Stammdaten USt.-Sätze definiert) ACCOUNTING_VAT_PAY_ACCOUNT=Standard-Aufwandskonto, um MwSt zu bezahlen ACCOUNTING_ACCOUNT_CUSTOMER=Standard Buchhaltungskonto für Kunden/Debitoren (wenn nicht beim Partner definiert) -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Kunden-Partnerkarte definiert wurde ACCOUNTING_ACCOUNT_SUPPLIER=Standard Buchhaltungskonto für Lieferanten/Kreditoren (wenn nicht beim Lieferanten definiert) -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Buchhaltungskonten die auf der Partnerkarte definiert wurden werden für die Nebenbücher verwendet, dieses für das Hauptbuch oder als Vorgabewert für Nebenbücher falls kein Buchhaltungskonto auf der Lieferanten-Partnerkarte definiert wurde CloneTax=Dupliziere Sozialabgabe/Steuersatz ConfirmCloneTax=Bestätigen Sie die Duplizierung der Steuer-/Sozialabgaben-Zahlung CloneTaxForNextMonth=Für nächsten Monat duplizieren @@ -208,4 +208,4 @@ ImportDataset_tax_contrib=Sozialabgaben/Steuern ImportDataset_tax_vat=USt.-Zahlungen ErrorBankAccountNotFound=Fehler: Bankkonto nicht gefunden FiscalPeriod=Buchhaltungs Periode -ListSocialContributionAssociatedProject=List of social contributions associated with the project +ListSocialContributionAssociatedProject=Liste der Sozialabgaben für dieses Projekt diff --git a/htdocs/langs/de_DE/contracts.lang b/htdocs/langs/de_DE/contracts.lang index c15654ab9f9..478f87efe17 100644 --- a/htdocs/langs/de_DE/contracts.lang +++ b/htdocs/langs/de_DE/contracts.lang @@ -79,8 +79,8 @@ NoExpiredServices=Keine abgelaufen aktiven Dienste ListOfServicesToExpireWithDuration=Liste der Leistungen die in %s Tagen ablaufen ListOfServicesToExpireWithDurationNeg=Liste der Services die seit mehr als %s Tagen abgelaufen sind ListOfServicesToExpire=Liste der Services die ablaufen -NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen an Partner, bei denen Sie als Vertreter angegeben sind. -StandardContractsTemplate=Standard Vertragsschablone +NoteListOfYourExpiredServices=Diese Liste enthält nur Leistungen an Partner, bei denen Sie als Vertreter angegeben sind. +StandardContractsTemplate=Standard Vertragsschablone ContactNameAndSignature=Für %s, Name und Unterschrift OnlyLinesWithTypeServiceAreUsed=Nur die Zeile der Kategorie "Service" wird kopiert. CloneContract=Dupliziere Vertrag diff --git a/htdocs/langs/de_DE/cron.lang b/htdocs/langs/de_DE/cron.lang index fbce22048e1..ea9aff286d3 100644 --- a/htdocs/langs/de_DE/cron.lang +++ b/htdocs/langs/de_DE/cron.lang @@ -25,7 +25,7 @@ CronDelete=cronjobs löschen CronConfirmDelete=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt löschen möchten? CronExecute=Geplanter Auftrag jetzt ausführen CronConfirmExecute=Sind Sie sicher, dass Sie diese geplante Aufträge jetzt ausführen möchten? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronInfo=Das Modul "Cron-Jobs" erlaubt es Aufgaben zu bestimmten Zeitpunkten auszuführen. Die Aufgaben können auch manuell gestartet werden. CronTask=Job CronNone=Keine CronDtStart=nicht vor @@ -58,11 +58,11 @@ CronStatusInactiveBtn=Deaktivieren CronTaskInactive=Dieser Job ist deaktiviert CronId=ID CronClassFile=Dateiname mit Klasse -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php -CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product -CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth -CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef +CronModuleHelp=Name des Dolibarr Modul (funktioniert auch für externe Dolibarr Module).
Um zum Beispiel die Funktion fetch des Dolibarr Objektes Produkt /htdocs/product/class/product.class.php aufzurufen, ist der Wert des Modul product. +CronClassFileHelp=Der relative Pfad (Relativ zum Webserver Rootverzeichnis) und Dateiname zum laden.
Um zum Beispiel die Funktion fetch der Dolibarr Produkt Klasse /htdocs/product/class/product.class.php aufzurufen, ist der Name der Datei product.class.php +CronObjectHelp=Der Klassennamen zu laden.
Um zum Beispiel die Funktion fetch der Dolibarr Produkt Klasse /htdocs/product/class/product.class.php aufzurufen, ist die Klassendatei Produkt- +CronMethodHelp=Die Objektmethode, die aufgerufen werden soll.
Um zum Beispiel die Methode fetch des Dolibarr Produkt Objektes /htdocs/product/class/product.class.php aufzurufen, ist der Methoden-Wert fetch +CronArgsHelp=Das Methodenargument.
Um zum Beispiel die Methode fetch des Dolibarr Produkt Objektes /htdocs/product/class/product.class.php aufzurufen, ist der Input-Parameter-Wert 0, ProductRef CronCommandHelp=Die auszuführende System-Kommandozeile CronCreateJob=Erstelle neuen cronjob CronFrom=Von @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Gehen Sie in Menü "Start - Module Hilfsprogramm JobDisabled=Aufgabe deaktiviert MakeLocalDatabaseDumpShort=lokales Datenbankbackup MakeLocalDatabaseDump=erstelle einen lokalen Datenbankdump -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. +WarningCronDelayed=Bitte beachten: Aus Leistungsgründen können Ihre Jobs um bis zu %s Stunden verzögert werden, unabhängig vom nächsten Ausführungstermin. diff --git a/htdocs/langs/de_DE/deliveries.lang b/htdocs/langs/de_DE/deliveries.lang index 8d5fdfd568d..d26a639e2b9 100644 --- a/htdocs/langs/de_DE/deliveries.lang +++ b/htdocs/langs/de_DE/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Lieferung DeliveryRef=Fer. Lieferung -DeliveryCard=Receipt card +DeliveryCard=Empfangsbeleg DeliveryOrder=Lieferschein DeliveryDate=Liefertermin -CreateDeliveryOrder=Generate delivery receipt +CreateDeliveryOrder=Zustellbeleg erzeugen DeliveryStateSaved=Lieferstatus gespeichert. SetDeliveryDate=Liefertermin setzen ValidateDeliveryReceipt=Lieferschein freigeben ValidateDeliveryReceiptConfirm=Sind Sie sicher, dass Sie diesen Lieferschein bestätigen wollen? DeleteDeliveryReceipt=Lieferschein löschen -DeleteDeliveryReceiptConfirm=Möchten Sie diesen Lieferschein %s wirklich löschen? +DeleteDeliveryReceiptConfirm=Möchten Sie den Lieferschein %s wirklich löschen? DeliveryMethod=Versandart TrackingNumber=Tracking Nummer DeliveryNotValidated=Lieferung nicht validiert diff --git a/htdocs/langs/de_DE/errors.lang b/htdocs/langs/de_DE/errors.lang index 693f4989ce6..349a4449acb 100644 --- a/htdocs/langs/de_DE/errors.lang +++ b/htdocs/langs/de_DE/errors.lang @@ -18,7 +18,7 @@ ErrorFailToCreateFile=Fehler beim Erstellen der Datei '%s'. ErrorFailToRenameDir=Fehler beim Umbenennen des Verzeichnisses '%s' in '%s'. ErrorFailToCreateDir=Fehler beim Erstellen des Verzeichnisses '%s'. ErrorFailToDeleteDir=Fehler beim Löschen des Verzeichnisses '%s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. +ErrorFailToMakeReplacementInto=Fehler beim erstellen des Ersatzes in Datei '%s'. ErrorFailToGenerateFile=Konnte Datei '%s' nicht erstellen. ErrorThisContactIsAlreadyDefinedAsThisType=Dieser Kontakt ist bereits als Kontakt dieses Typs definiert. ErrorCashAccountAcceptsOnlyCashMoney=Dies ist ein Bargeldkonto (Kasse) und akzeptiert deshalb nur Bargeldtransaktionen. @@ -133,7 +133,7 @@ ErrorPHPNeedModule=Fehler, Ihr PHP muss das Modul %s installiert haben um ErrorOpenIDSetupNotComplete=Sie haben im Dolibarr Konfigurationsfile eingestellt, dass die Anmeldung mit OpenID möglich ist, aber die URL zum OpenID Service ist noch nicht in %s definiert. ErrorWarehouseMustDiffers=Quell- und Ziel-Lager müssen unterschiedlich sein ErrorBadFormat=Falsches Format! -ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Error, this member is not yet linked to any third party. Link member to an existing third party or create a new third party before creating subscription with invoice. +ErrorMemberNotLinkedToAThirpartyLinkOrCreateFirst=Fehler: Dieses Mitglied ist noch nicht mit einem Partner verbunden. Verknüpfen Sie das Mitglied zuerst mit einem vorhandenen Partner oder legen Sie einen neuen an, bevor Sie ein Abonnement mit Rechnung erstellen. ErrorThereIsSomeDeliveries=Fehler: Es sind noch Auslieferungen zu diesen Versand vorhanden. Löschen deshalb nicht möglich. ErrorCantDeletePaymentReconciliated=Eine Zahlung, deren Bank-Transaktion schon abgeglichen wurde, kann nicht gelöscht werden ErrorCantDeletePaymentSharedWithPayedInvoice=Eine Zahlung, die zu mindestens einer als bezahlt markierten Rechnung gehört, kann nicht entfernt werden @@ -179,11 +179,11 @@ ErrorStockIsNotEnoughToAddProductOnOrder=Nicht genug Bestand von Produkt %s, um ErrorStockIsNotEnoughToAddProductOnInvoice=Nicht genug Bestand von Produkt %s, um es einer neuen Rechnung zuzufügen. ErrorStockIsNotEnoughToAddProductOnShipment=Nicht genug Bestand von Produkt %s, um es einer neuen Sendung zuzufügen. ErrorStockIsNotEnoughToAddProductOnProposal=Nicht genug Bestand von Produkt %s, um es einem neuen Angebot zuzufügen. -ErrorFailedToLoadLoginFileForMode=Failed to get the login key for mode '%s'. +ErrorFailedToLoadLoginFileForMode=Konnte Loginschlüssel für Modul '%s' nicht ermitteln. ErrorModuleNotFound=Datei des Modul nicht gefunden. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorFieldAccountNotDefinedForBankLine=Buchhaltungskonto nicht definiert für Quellzeile %s(%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Buchhaltungskonto für Rechnung %s (%s) ist undefiniert +ErrorFieldAccountNotDefinedForLine=Buchhaltungskonto nicht definiert für Zeile (%s) ErrorBankStatementNameMustFollowRegex=Fehler - Name des Kontoauszugs muss dieser Syntax folgen: %s ErrorPhpMailDelivery=Vergewissern Sie sich, dass Sie nicht zu viele Adressaten nutzen und der Inhalt Ihrer Mail nicht nach Spam aussieht. Bitten Sie Ihren Administrator, die Firewall- und Server-Logs zu prüfen, um detailliertere Informationen zu bekommen. ErrorUserNotAssignedToTask=Benutzer muss der Aufgabe zugeteilt sein, um Zeiten erfassen zu können. @@ -192,7 +192,7 @@ ErrorModuleFileSeemsToHaveAWrongFormat=Das Modul-Paket scheint ein falsches Form ErrorFilenameDosNotMatchDolibarrPackageRules=Der Name des Modul-Pakets (%s) entspricht nicht der erwarteten Syntax: %s ErrorDuplicateTrigger=Fehler, doppelter Triggername %s. Schon geladen durch %s. ErrorNoWarehouseDefined=Fehler, keine Warenlager definiert. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. +ErrorBadLinkSourceSetButBadValueForRef=Der Link ist ungültig. Die Quelle für die Zahlung ist definiert, aber die Referenz ist ungültig. ErrorTooManyErrorsProcessStopped=Zu viele Fehler, Verarbeitung abgebrochen. # Warnings diff --git a/htdocs/langs/de_DE/loan.lang b/htdocs/langs/de_DE/loan.lang index 429e7b45dbe..dc5d779447e 100644 --- a/htdocs/langs/de_DE/loan.lang +++ b/htdocs/langs/de_DE/loan.lang @@ -10,9 +10,9 @@ LoanCapital=Kapital Insurance=Versicherung Interest=Zins Nbterms=Anzahl der Bedingungen -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest +LoanAccountancyCapitalCode=Buchhaltungskonto Kapital +LoanAccountancyInsuranceCode=Buchhaltungskonto Versicherung +LoanAccountancyInterestCode=Buchhaltungskonto Zinsen ConfirmDeleteLoan=Bestätigen Sie das Löschen dieses Kredites LoanDeleted=Kredit erfolgreich gelöscht ConfirmPayLoan=Bestätigen Sie das Löschen dieses Kredites @@ -43,9 +43,11 @@ LoanCalcDesc=Mit diesem Hypothek Rechner kann die monatliche Belastung, b GoToInterest=%s wird in Richtung ZINSEN gehen GoToPrincipal=%s wird in Richtung HAUPT gehen YouWillSpend=Sie werden %s im Jahr %s bezahlen -ListLoanAssociatedProject=List of loan associated with the project +ListLoanAssociatedProject=Liste der Darlehen in dem Projekt +AddLoan=Darlehen erstellen # Admin ConfigLoan=Konfiguration des Modul Kredite -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Standard-Buchhaltungskonto Kapital +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Standard-Buchhaltungskonto Zinsen +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Standard-Buchhaltungskonto Versicherung +CreateCalcSchedule=Fälligkeit des Darlehens erstellen/bearbeiten diff --git a/htdocs/langs/de_DE/mailmanspip.lang b/htdocs/langs/de_DE/mailmanspip.lang index 234549e4e46..b204c1051d6 100644 --- a/htdocs/langs/de_DE/mailmanspip.lang +++ b/htdocs/langs/de_DE/mailmanspip.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - mailmanspip MailmanSpipSetup=Konfiguration Mailman und SPIP Modul MailmanTitle=Mailman Mailingliste System -TestSubscribe=Zum Testen von Mailman Abonnement Anmeldung Listen +TestSubscribe=Zum Testen von Mailman Abonnement Anmeldung Listen TestUnSubscribe=Zum Testen von Mailman Abonnement Abmeldung Listen MailmanCreationSuccess=Einschreibetest wurde erfolgreich durchgeführt MailmanDeletionSuccess=Abmeldetest wurde erfolgreich durchgeführt @@ -22,6 +22,6 @@ AddIntoSpipError=Fehler beim anfügen des Benutzers in SPIP DeleteIntoSpip=Von SPIP entfernen DeleteIntoSpipConfirmation=Sind Sie sicher, dass Sie dieses Mitglied von SPIP entfernen wollen? DeleteIntoSpipError=Fehler zu unterdrücken des Benutzers von SPIP -SPIPConnectionFailed=Fehler beim Verbinden mit SPIP +SPIPConnectionFailed=Fehler beim Verbinden mit SPIP SuccessToAddToMailmanList=%s erfolgreich zur Mailingliste %s oder der SPIP Datenbank hinzugefügt SuccessToRemoveToMailmanList=%s erfolgreich aus der Mailingliste %s oder der SPIP Datenbank ausgetragen diff --git a/htdocs/langs/de_DE/mails.lang b/htdocs/langs/de_DE/mails.lang index c9a30838b02..b8727621269 100644 --- a/htdocs/langs/de_DE/mails.lang +++ b/htdocs/langs/de_DE/mails.lang @@ -95,7 +95,7 @@ NbOfCompaniesContacts=Einzigartige Partnerkontakte MailNoChangePossible=Die Empfängerliste einer freigegebenen E-Mail Kampagne kann nicht mehr geändert werden SearchAMailing=Suche E-Mail Kampagne SendMailing=E-Mail Kampagne versenden -SendMail=sende E-Mail +SendMail=sende E-Mail SentBy=Gesendet von MailingNeedCommand=Aus Sicherheitsgründen sollten E-Mails von der Kommandozeile aus versandt werden. Bitten Sie Ihren Server Administrator um die Ausführung des folgenden Befehls, um den Versand an alle Empfänger zu starten: MailingNeedCommand2=Sie können den Versand jedoch auch online starten, indem Sie den Parameter MAILING_LIMIT_SENDBYWEB auf den Wert der pro Sitzung gleichzeitig zu versendenden Mails setzen. Die entsprechenden Einstellungen finden Sie unter Übersicht-Einstellungen-Andere. @@ -113,7 +113,7 @@ TagCheckMail=Öffnen der Mail verfolgen TagUnsubscribe=Abmelde Link TagSignature=Signatur des Absenders EMailRecipient=Empfänger E-Mail -TagMailtoEmail= Empfängers E-Mail (beinhaltet html "mailto:" link) +TagMailtoEmail=Empfängers E-Mail (beinhaltet html "mailto:" link) NoEmailSentBadSenderOrRecipientEmail=Kein E-Mail gesendet. Ungültige Absender oder Empfänger Adresse. Benutzerprofil kontrollieren. # Module Notifications Notifications=Benachrichtigungen @@ -140,7 +140,7 @@ AdvTgtSearchDtHelp=Intervall verwenden um ein Datum auszuwählen AdvTgtStartDt=Startdatum AdvTgtEndDt=Enddatum AdvTgtTypeOfIncudeHelp=Empfänger EMail des Partners und EMail des Kontakt des Partners, oder einfach nur Partner-EMail oder einfach nur Kontakt EMail -AdvTgtTypeOfIncude=Empfänger +AdvTgtTypeOfIncude=Empfänger AdvTgtContactHelp=Verwenden Sie nur, wenn Ihr Zielkontakt unter den "Typ des E-Mail-Empfänger" AddAll=Alle hinzufügen RemoveAll=Alle Entfernen diff --git a/htdocs/langs/de_DE/main.lang b/htdocs/langs/de_DE/main.lang index b905f184f29..3ec7de61727 100644 --- a/htdocs/langs/de_DE/main.lang +++ b/htdocs/langs/de_DE/main.lang @@ -72,8 +72,10 @@ SeeHere=Sehen Sie hier Apply=Übernehmen BackgroundColorByDefault=Standard-Hintergrundfarbe FileRenamed=Datei wurde erfolgreich unbenannt -FileUploaded=Datei wurde erfolgreich hochgeladen FileGenerated=Die Datei wurde erfolgreich erstellt +FileSaved=The file was successfully saved +FileUploaded=Datei wurde erfolgreich hochgeladen +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Ein Dateianhang wurde gewählt aber noch nicht hochgeladen. Klicken Sie auf "Datei anhängen" um den Vorgang zu starten. NbOfEntries=Anzahl der Einträge GoToWikiHelpPage=Onlinehilfe lesen (Internetzugang notwendig) @@ -358,6 +360,7 @@ TotalLT1ES=Summe RE TotalLT2ES=Summe IRPF HT=Netto TTC=Brutto +INCT=Inc. all taxes VAT=USt. VATs=Mehrwertsteuern LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Okt MonthShort11=Nov MonthShort12=Dez AttachedFiles=Angehängte Dateien und Dokumente -FileTransferComplete=Datei wurde erfolgreich hochgeladen DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS diff --git a/htdocs/langs/de_DE/modulebuilder.lang b/htdocs/langs/de_DE/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/de_DE/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/de_DE/multicurrency.lang b/htdocs/langs/de_DE/multicurrency.lang new file mode 100644 index 00000000000..c830c05dd40 --- /dev/null +++ b/htdocs/langs/de_DE/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Mehrfachwährungen +ErrorAddRateFail=Fehler in hinzugefügtem Währungskurs +ErrorAddCurrencyFail=Fehler in hinzugefügter Währung +ErrorDeleteCurrencyFail=Fehler, konnte Daten nicht löschen +multicurrency_syncronize_error=Synchronisationsfehler: %s +multicurrency_useOriginTx=Wenn ein Objekt anhand eines anderen Erstellt wird, den Währungskurs des Originals beibehalten (Ansonsten wird der aktuelle Währungskurs verwendet) +CurrencyLayerAccount=Währungslayer API +CurrencyLayerAccount_help_to_synchronize=Erstellen Sie ein Konto auf ihrer Webseite um die Funktionalität nutzen zu können.
Erhalten sie ihren API key
Bei Gratisaccounts kann die Währungsquelle nicht verändert werden (USD Standard
Wenn ihre Basiswährung nicht USD ist, kann die Alternative Währungsquelle zum übersteuern der Hauptwährung verwendet werden

Sie sind auf 1000 Synchronisationen pro Monat begrenzt +multicurrency_appId=API key +multicurrency_appCurrencySource=Währungsquelle +multicurrency_alternateCurrencySource= Alternative Währungsquelle +CurrenciesUsed=Verwendete Währungen +CurrenciesUsed_help_to_add=Währungen und Währungskurse erfassen, die Sie für Angebote, Bestellungen, etc. benötigen +rate=Währungskurs +MulticurrencyReceived=Erhalten, Originalwährung +MulticurrencyRemainderToTake=Verbleibender Betrag, Originalwährung +MulticurrencyPaymentAmount=Zahlungsbetrag, Originalwährung diff --git a/htdocs/langs/de_DE/oauth.lang b/htdocs/langs/de_DE/oauth.lang index a3b49e54ea8..2bf7bef3c70 100644 --- a/htdocs/langs/de_DE/oauth.lang +++ b/htdocs/langs/de_DE/oauth.lang @@ -1,30 +1,30 @@ # Dolibarr language file - Source file is en_US - oauth -ConfigOAuth=Oauth Konfiguration -OAuthServices=OAuth services -ManualTokenGeneration=Manual token generation -TokenManager=Token manager -IsTokenGenerated=Is token generated ? +ConfigOAuth=OAuth Konfiguration +OAuthServices=OAuth Dienste +ManualTokenGeneration=Manuelle Token Generation +TokenManager=Token-Manager +IsTokenGenerated=Ist der Token generiert? NoAccessToken=Kein Zugriffstoken in der lokalen Datenbank gespeichert HasAccessToken=Ein Token wurde erstellt und in der lokalen Datenbank gespeichert -NewTokenStored=Token received and saved -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider +NewTokenStored=Token empfangen und gespeichert +ToCheckDeleteTokenOnProvider=Klicke hier um prüfen/entfernen Authentifizierung gespeichert durch den OAuth Anbieter %s TokenDeleted=Token gelöscht -RequestAccess=Hier klcien, um Zugriff anzufordern/zu verlängern und einen neuen Token zu bekommen. +RequestAccess=Hier klicken, um Zugang anzufordern/verlängern und neue Token zu speichern DeleteAccess=Hier klicken, um das Token zu löschen UseTheFollowingUrlAsRedirectURI=Benutzen Sie diese URL zur Weiterleitung, wenn Sie die Anmeldedaten Ihres OAuth Anbieters erstellen. ListOfSupportedOauthProviders=Hier Anmeldedaten Ihres OAuth2 Anbieters eintragen. Nur OAuth2 Anbieter werden hier angezeigt. Diese Einstellungen können von anderen Module genutzt werden, die OAuth2 Authentifizierung benötigen. -OAuthSetupForLogin=Page to generate an OAuth token -SeePreviousTab=See previous tab -OAuthIDSecret=OAuth ID and Secret +OAuthSetupForLogin=Seite um einen OAuth-Token zu erzeugen +SeePreviousTab=Siehe vorherigen Registerkarte +OAuthIDSecret=OAuth-ID und Secret TOKEN_REFRESH=Aktualisierung des Tokens vorhanden -TOKEN_EXPIRED=Token expired +TOKEN_EXPIRED=Token abgelaufen TOKEN_EXPIRE_AT=Token läuft ab am TOKEN_DELETE=Lösche gespeicherten Token -OAUTH_GOOGLE_NAME=Oauth Google service -OAUTH_GOOGLE_ID=Oauth Google Id -OAUTH_GOOGLE_SECRET=Oauth Google Secret -OAUTH_GOOGLE_DESC=Go on this page then "Credentials" to create Oauth credentials -OAUTH_GITHUB_NAME=Oauth GitHub service -OAUTH_GITHUB_ID=Oauth GitHub Id -OAUTH_GITHUB_SECRET=Oauth GitHub Secret -OAUTH_GITHUB_DESC=Go on this page then "Register a new application" to create Oauth credentials +OAUTH_GOOGLE_NAME=Google API OAuth +OAUTH_GOOGLE_ID=Google OpenID OAuth +OAUTH_GOOGLE_SECRET=Google Secret OAuth +OAUTH_GOOGLE_DESC=Gehen Sie auf diese Seite und dann die „Autorisierung“ Google OAuth-Anmeldeinformationen zu erstellen +OAUTH_GITHUB_NAME=Oauth GitHub Dienst +OAUTH_GITHUB_ID=Github Client-ID OAuth +OAUTH_GITHUB_SECRET=Github Client-Secret OAuth +OAUTH_GITHUB_DESC=Gehen Sie auf diese Seite dann „eine neue Anwendung registrieren“ Oauth Github Berechtigungsnachweise erstellen diff --git a/htdocs/langs/de_DE/orders.lang b/htdocs/langs/de_DE/orders.lang index 74f72c165a4..79ab3bcd62a 100644 --- a/htdocs/langs/de_DE/orders.lang +++ b/htdocs/langs/de_DE/orders.lang @@ -19,7 +19,7 @@ CustomerOrder=Kundenauftrag CustomersOrders=Kundenaufträge CustomersOrdersRunning=Aktuelle Kundenaufträge CustomersOrdersAndOrdersLines=Kundenaufträge und Auftragspositionen -OrdersDeliveredToBill=Customer orders delivered to bill +OrdersDeliveredToBill=Kundenbestellungen geliefert zu verrechnen OrdersToBill=Gelieferte Kundenaufträge OrdersInProcess=Kundenaufträge in Bearbeitung OrdersToProcess=Zu bearbeitende Kundenaufträge @@ -39,7 +39,7 @@ StatusOrderRefusedShort=Abgelehnt StatusOrderBilledShort=Verrechnet StatusOrderToProcessShort=Zu bearbeiten StatusOrderReceivedPartiallyShort=Teilweise erhalten -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=Produkte erhalten StatusOrderCanceled=Storniert StatusOrderDraft=Entwurf (freizugeben) StatusOrderValidated=Freigegeben @@ -51,7 +51,7 @@ StatusOrderApproved=Bestellung genehmigt StatusOrderRefused=Abgelehnt StatusOrderBilled=Verrechnet StatusOrderReceivedPartially=Teilweise erhalten -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Alle Produkte erhalten ShippingExist=Eine Lieferung ist vorhanden QtyOrdered=Bestellmenge ProductQtyInDraft=Produktmenge in Bestellentwurf @@ -87,12 +87,12 @@ NumberOfOrdersByMonth=Anzahl der Bestellungen pro Monat AmountOfOrdersByMonthHT=Anzahl der Aufträge pro Monat (nach Steuern) ListOfOrders=Liste Aufträge CloseOrder=Bestellung schließen -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. +ConfirmCloseOrder=Möchten Sie diese Bestellung wirklich auf "geliefert" setzen? Sobald eine Bestellung geliefert ist, kann sie auf "berechnet" gesetzt werden. ConfirmDeleteOrder=Möchten Sie diese Bestellung wirklich löschen? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +ConfirmValidateOrder=Möchten Sie diese Bestellung wirklich unter dem Namen %s freigeben? +ConfirmUnvalidateOrder=Sind Sie sicher, dass Sie die Bestellung %s wieder in den Entwurfstatus versetzen möchten? +ConfirmCancelOrder=Möchten Sie diese Bestellung wirklich stornieren? +ConfirmMakeOrder=Bestätigen Sie, dass Sie diese Bestellung am %s aufgegeben haben? GenerateBill=Erzeuge Rechnung ClassifyShipped=Als geliefert markieren DraftOrders=Entwürfe @@ -101,7 +101,7 @@ OnProcessOrders=Bestellungen in Bearbeitung RefOrder=Bestell-Nr. RefCustomerOrder=Kunden-BestellNr. RefOrderSupplier=Lieferanten-BestellNr. -RefOrderSupplierShort=Ref. order supplier +RefOrderSupplierShort=Lieferanten-BestellNr. SendOrderByMail=Bestellung per Post versenden ActionsOnOrder=Ereignisse zu dieser Bestellung NoArticleOfTypeProduct=Keine Artikel vom Typ 'Produkt' und deshalb keine Versandkostenposition @@ -110,7 +110,7 @@ AuthorRequest=Autor/Anforderer UserWithApproveOrderGrant=Benutzer mit Berechtigung zur 'Bestellfreigabe' PaymentOrderRef=Zahlung zur Bestellung %s CloneOrder=Bestellung duplizieren -ConfirmCloneOrder=Are you sure you want to clone this order %s? +ConfirmCloneOrder=Möchten Sie die Bestellung %s wirklich duplizieren? DispatchSupplierOrder=Lieferantenbestellung %s erhalten FirstApprovalAlreadyDone=1. Bestätigung bereits erledigt SecondApprovalAlreadyDone=2. Bestätigung bereits erledigt @@ -150,5 +150,5 @@ OrderCreated=Ihre Bestellungen wurden erstellt OrderFail=Ein Fehler trat beim erstellen der Bestellungen auf CreateOrders=Erzeuge Bestellungen ToBillSeveralOrderSelectCustomer=Um eine Rechnung für verschiedene Bestellungen zu erstellen, klicken Sie erst auf Kunde und wählen Sie dann "%s". -CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received. -SetShippingMode=Set shipping mode +CloseReceivedSupplierOrdersAutomatically=Schließe die Bestellung nach „%s“ automatisch, wenn alle Produkte empfangen wurden. +SetShippingMode=Setze die Versandart diff --git a/htdocs/langs/de_DE/other.lang b/htdocs/langs/de_DE/other.lang index 1b98e1d9e73..aac0ae3d320 100644 --- a/htdocs/langs/de_DE/other.lang +++ b/htdocs/langs/de_DE/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=Pfund +WeightUnitounce=Unze Length=Länge LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/de_DE/paybox.lang b/htdocs/langs/de_DE/paybox.lang index e296b3939e5..d7193a68702 100644 --- a/htdocs/langs/de_DE/paybox.lang +++ b/htdocs/langs/de_DE/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-Mail-Adresse für die Zahlungsbestätigung Creditor=Zahlungsempfänger PaymentCode=Zahlungscode PayBoxDoPayment=Jetzt bezahlen +ToPay=Zahlung tätigen YouWillBeRedirectedOnPayBox=Zur Eingabe Ihrer Kreditkartendaten werden Sie an eine sichere Bezahlseite weitergeleitet. Continue=Fortfahren ToOfferALinkForOnlinePayment=URL für %s Zahlung diff --git a/htdocs/langs/de_DE/printing.lang b/htdocs/langs/de_DE/printing.lang index c5f7fbea77e..67cf0ae68ed 100644 --- a/htdocs/langs/de_DE/printing.lang +++ b/htdocs/langs/de_DE/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Druckermedium IPP_Supported=Medientyp DirectPrintingJobsDesc=Diese Seite zeigt Druckjobs für verfügbar Drucker. GoogleAuthNotConfigured=Google OAuth Einrichtung nicht vorhanden. Aktivieren Sie das Modul OAuth und geben eine Google ID/einen Schlüssel an. -GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth Anmeldedaten wurden in der Einrichtung des Moduls OAuth gefunden. PrintingDriverDescprintgcp=Konfigurationsvariablen für Google Cloud Print PrintTestDescprintgcp=Druckerliste für Google-Coud Druck diff --git a/htdocs/langs/de_DE/productbatch.lang b/htdocs/langs/de_DE/productbatch.lang index 7c025c1e53a..fbabfa72ed7 100644 --- a/htdocs/langs/de_DE/productbatch.lang +++ b/htdocs/langs/de_DE/productbatch.lang @@ -17,7 +17,7 @@ printEatby=Verzehren bis: %s printSellby=Verkaufen bis: %s printQty=Menge: %d AddDispatchBatchLine=Fügen Sie eine Zeile für Haltbarkeit Versendung -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic increase/decrease stock mode is forced to shipping validate and manual dispatching for reception and can't be edited. Other options can be defined as you want. +WhenProductBatchModuleOnOptionAreForced=Wenn das Modul Lot/Serien-Nr. eingeschaltet ist, wird der Modus für Lagerbestands-Erhöhungen / -Senkungen auf die letzte Auswahl festgelegt und kann nicht geändert werden. Andere Optionen können nach Wunsch eingestellt werden. ProductDoesNotUseBatchSerial=Dieses Produkt verwendet keine Lose oder Seriennummern ProductLotSetup=Verwaltung von Modul Charge / Seriennummern ShowCurrentStockOfLot=Warenbestand anzeigen für Produkt/Charge diff --git a/htdocs/langs/de_DE/products.lang b/htdocs/langs/de_DE/products.lang index 90b6ff23c17..bcc49517004 100644 --- a/htdocs/langs/de_DE/products.lang +++ b/htdocs/langs/de_DE/products.lang @@ -26,8 +26,8 @@ ProductOrService=Produkt oder Leistung ProductsAndServices=Produkte und Leistungen ProductsOrServices=Produkte oder Leistungen ProductsOnSaleOnly=Produkte nur für den Verkauf -ProductsOnPurchaseOnly=Produkte nur für den Einkauf -ProductsNotOnSell=Produkte weder für Ein- noch Verkauf +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produkte für Ein- und Verkauf ServicesOnSaleOnly=Leistungen nur für den Verkauf ServicesOnPurchaseOnly=Leistungen nur für den Einkauf @@ -247,12 +247,18 @@ ComposedProduct=Teilprodukt MinSupplierPrice=Minimaler Einkaufspreis MinCustomerPrice=Minimum Kundenpreis DynamicPriceConfiguration=Dynamische Preis Konfiguration -DynamicPriceDesc=Wenn dieses Modul aktiviert ist, können Sie auf der Produktekarte mathematische Funktionen nutzen, um Kunden- oder Lieferantenpreise zu berechnen. Sie können dazu alle mathematische Funktionen und einige Konstanten und Variablen nutzen. Sie können einer Variable eine externe URL mitgeben, mit der der Wert der Variablen automatisch aktualisiert werden kann. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Variable hinzufügen AddUpdater=Updater hinzufügen GlobalVariables=Globale Variablen VariableToUpdate=Variable, die aktualisiert wird GlobalVariableUpdaters=Globale Variablen aktualisieren +GlobalVariableUpdaterType0=JSON Daten +GlobalVariableUpdaterHelp0=Analysiert JSON-Daten von angegebener URL, VALUE gibt den Speicherort des entsprechenden Wertes, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService-Daten +GlobalVariableUpdaterHelp1=Analysiert WebService Daten aus angegebenen URL, NS gibt den Namespace, VALUE gibt den Speicherort der entsprechende Wert sollte DATA die Daten enthalten, zu senden und Methode ist der Aufruf von WS-Methode +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update-Intervall (Minuten) LastUpdated=Zuletzt aktualisiert CorrectlyUpdated=erfolgreich aktualisiert @@ -288,7 +294,7 @@ ProductAttributeValueDeleteDialog=Sind Sie sicher, dass Sie den Wert „%s“ mi ProductCombinationDeleteDialog=Sind Sie sicher, dass Sie die Variante von diesem Produkt „%s“ löschen möchten? ProductCombinationAlreadyUsed=Es ist ein Fehler während dem löschen der Variante aufgetreten. Stellen Sie sicher, dass es nicht durch ein anderes Objekt verwendet wird . ProductCombinations=Varianten -PropagateVariant=Propagate variants +PropagateVariant=Varianten verteilen HideProductCombinations=Ausblenden von Produkt-Varianten in den Produktauswahl-Listen ProductCombination=Variante NewProductCombination=Neue Variante diff --git a/htdocs/langs/de_DE/projects.lang b/htdocs/langs/de_DE/projects.lang index 15e0635f7a9..8695105ae86 100644 --- a/htdocs/langs/de_DE/projects.lang +++ b/htdocs/langs/de_DE/projects.lang @@ -9,8 +9,8 @@ ProjectsArea=Projektübersicht ProjectStatus=Projekt Status SharedProject=Jeder PrivateProject=Projektkontakte -ProjectsImContactFor=Projects I'm explicitely a contact of -AllAllowedProjects=All project I can read (mine + public) +ProjectsImContactFor=Projekte bei denen ich ein direkter Kontakt bin +AllAllowedProjects=Alle Projekte die ich sehen kann (Eigene + Öffentliche) AllProjects=Alle Projekte MyProjectsDesc=Diese Ansicht zeigt nur Projekte, bei welchen Sie als Kontakt (unabhängig vom Typ) hinzugefügt sind. ProjectsPublicDesc=Diese Ansicht zeigt alle Projekte, für die Sie zum Lesen berechtigt sind. @@ -26,7 +26,7 @@ TasksDesc=Diese Ansicht zeigt alle Projekte und Aufgaben (Ihre Benutzerberechtig AllTaskVisibleButEditIfYouAreAssigned=Alle Aufgaben dieser Projekte sind sichtbar, aber Sie können nur auf ihnen zugewiesenen Aufgaben Zeit erfassen. Weisen Sie sich die Aufgabe zu, wenn sie Zeiten erfassen müssen. OnlyYourTaskAreVisible=Nur Ihnen zugewiesene Aufgaben sind sichtbar. Weisen Sie sich die Aufgabe zu, wenn Sie Zeiten auf der Aufgabe erfassen müssen. ImportDatasetTasks=Aufgaben der Projekte -ProjectCategories=Project tags/categories +ProjectCategories=Projektkategorien/Tags NewProject=Neues Projekt AddProject=Projekt erstellen DeleteAProject=Löschen eines Projekts @@ -41,7 +41,7 @@ ShowProject=Zeige Projekt SetProject=Projekt setzen NoProject=Kein Projekt definiert oder keine Rechte NbOfProjects=Anzahl der Projekte -NbOfTasks=Nb of tasks +NbOfTasks=Anzahl Aufgaben TimeSpent=Zeitaufwand TimeSpentByYou=Ihr Zeitaufwand TimeSpentByUser=Zeitaufwand von Benutzer ausgegeben @@ -64,7 +64,7 @@ TaskDescription=Aufgaben-Beschreibung NewTask=Neue Aufgabe AddTask=Aufgabe erstellen AddTimeSpent=Erfassen verbrauchte Zeit -AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForDay=Zeitaufwand für diesen Tag/Aufgabe hier erfassen Activity=Tätigkeit Activities=Aufgaben/Tätigkeiten MyActivities=Meine Aufgaben/Tätigkeiten @@ -84,7 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Liste von Rechnungsvorlagen, die mit die ListSupplierOrdersAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenbestellungen ListSupplierInvoicesAssociatedProject=Liste der mit diesem Projekt verbundenen Lieferantenrechnungen ListContractAssociatedProject=Liste Verträge, die mit diesem Projekt verknüpft sind -ListShippingAssociatedProject=List of shippings associated with the project +ListShippingAssociatedProject=Liste der Lieferungen zu diesem Projekt ListFichinterAssociatedProject=Liste der Serviceaufträge, die mit diesem Projekt verknüpft sind ListExpenseReportsAssociatedProject=Liste Spesenabrechnungen, die mit diesem Projekt verknüpft sind ListDonationsAssociatedProject=Liste Spenden, die mit diesem Projekt verknüpft sind @@ -109,7 +109,7 @@ ConfirmReOpenAProject=Möchten Sie dieses Projekt wirklich wiedereröffnen? ProjectContact=Projekt Kontakte ActionsOnProject=Projektaktionen YouAreNotContactOfProject=Sie sind diesem privaten Projekt nicht als Kontakt zugeordnet. -UserIsNotContactOfProject=User is not a contact of this private project +UserIsNotContactOfProject=Benutzer ist kein Kontakt dieses privaten Projektes DeleteATimeSpent=Lösche einen Zeitaufwand ConfirmDeleteATimeSpent=Sind Sie sicher, dass diesen Zeitaufwand löschen wollen? DoNotShowMyTasksOnly=Zeige auch die Aufgaben der Anderen @@ -118,7 +118,7 @@ TaskRessourceLinks=Ressourcen ProjectsDedicatedToThisThirdParty=Mit diesem Partner verknüpfte Projekte NoTasks=Keine Aufgaben für dieses Projekt LinkedToAnotherCompany=Mit Partner verknüpft -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=Aufgabe ist keinem Benutzer zugeteilt. Verwenden Sie den Knopf '%s' um die Aufgabe jetzt zuzuweisen. ErrorTimeSpentIsEmpty=Zeitaufwand ist leer ThisWillAlsoRemoveTasks=Diese Aktion löscht ebenfalls alle Aufgaben zum Projekt (%s aktuelle Aufgaben) und alle Zeitaufwände. IfNeedToUseOhterObjectKeepEmpty=Wenn einige Zuordnungen (Rechnung, Bestellung, ...), einem Dritten gehören, müssen Sie erst alle mit dem Projekt verbinden, damit das Projekt auch Dritten zugänglich ist . @@ -169,30 +169,30 @@ FirstAddRessourceToAllocateTime=Benutzer eine Ressource pro Aufgabe zuordnen, um InputPerDay=Eingang pro Tag InputPerWeek=Eingang pro Woche InputPerAction=Eingang pro Aktion -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=Zeitaufwand für diese Aufgabe/Tag und Benutzer %s bereits aufgenommen ProjectsWithThisUserAsContact=Projekte mit diesem Anwender als Kontakt TasksWithThisUserAsContact=Aufgaben zugeordnet zu diesem Anwender ResourceNotAssignedToProject=Zugewiesen zu Projekt ResourceNotAssignedToTheTask=nicht der Aufgabe zugewiesen -TasksAssignedTo=Tasks assigned to +TasksAssignedTo=Aufgabe zugewiesen an AssignTaskToMe=Aufgabe mir selbst zuweisen -AssignTaskToUser=Assign task to %s -SelectTaskToAssign=Select task to assign... +AssignTaskToUser=Aufgabe an %s zuweisen +SelectTaskToAssign=Zuzuweisende Aufgabe auswählen... AssignTask=Zuweisen ProjectOverview=Projekt-Übersicht ManageTasks=Verwende Projekte um Aufgaben und Zeitaufwand zu verwalten ManageOpportunitiesStatus=Verwende Projekte um Leads und Chancen zu verwalten ProjectNbProjectByMonth=Anzahl der Projekte pro Monat -ProjectNbTaskByMonth=Nb of created tasks by month +ProjectNbTaskByMonth=Anzahl erstellter Projekte pro Monat ProjectOppAmountOfProjectsByMonth=Betrag der Verkaufschancen pro Monat ProjectWeightedOppAmountOfProjectsByMonth=gewichteter Betrag der Verkaufschancen pro Monat ProjectOpenedProjectByOppStatus=Offene Projekte/Verkaufschancen nach Status ProjectsStatistics=Statistik über Projekte und Leads -TasksStatistics=Statistics on project/lead tasks +TasksStatistics=Statistik über Projekte und Lead Aufgaben TaskAssignedToEnterTime=Aufgabe zugewiesen. Eingabe der Zeit zu diese Aufgabe sollte möglich sein. IdTaskTime=ID Zeit Aufgabe YouCanCompleteRef=Wenn Sie die Referenz mit Infromationen vervollständigen möchten (um diese als Suchfilter zu verwenden), wird empfohlen ein Trennzeichen einzusetzen, damit den Nummernkreis der zukünftigen Projekten weiterhin korrekt funktioniert. Zum Beispiel %s-ABC. Sie können aber auch in den Label Suchbegriffe hinzufügen. Ein bewährtes Verfahren besteht darin, ein dedizierter Feld einzufügen, bekannt unter dem Begriff ergänzenden Attributen. -OpenedProjectsByThirdparties=Open projects by third parties +OpenedProjectsByThirdparties=Offene Projekte nach Partner OnlyOpportunitiesShort=nur Verkaufschancen OpenedOpportunitiesShort=Offene Verkaufschancen NotAnOpportunityShort=keine Verkaufschance diff --git a/htdocs/langs/de_DE/propal.lang b/htdocs/langs/de_DE/propal.lang index de6266be5e6..583ec1ae81f 100644 --- a/htdocs/langs/de_DE/propal.lang +++ b/htdocs/langs/de_DE/propal.lang @@ -15,7 +15,7 @@ ValidateProp=Angebot freigeben AddProp=Angebot erstellen ConfirmDeleteProp=Möchten Sie dieses Angebot wirklich löschen? ConfirmValidateProp=Möchten Sie dieses Angebot wirklich unter dem Namen %s freigeben? -LastPropals=%s neueste Angebote +LastPropals=Neueste %s Angebote LastModifiedProposals=Letzte %s bearbeitete Angebote AllPropals=Alle Angebote SearchAProposal=Angebot suchen @@ -28,7 +28,7 @@ ShowPropal=Zeige Angebot PropalsDraft=Entwürfe PropalsOpened=Geöffnet PropalStatusDraft=Entwurf (freizugeben) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Freigegeben (Angebot wieder geöffnet) PropalStatusSigned=Unterzeichnet (ist zu verrechnen) PropalStatusNotSigned=Nicht unterzeichnet (geschlossen) PropalStatusBilled=Verrechnet @@ -60,8 +60,8 @@ ConfirmClonePropal=Sind Sie sicher, dass Sie dieses Angebot %s dupliziere ConfirmReOpenProp=Sind Sie sicher, dass Sie dieses Angebot %s wieder öffnen möchten ? ProposalsAndProposalsLines=Angebote und Positionen ProposalLine=Angebotsposition -AvailabilityPeriod=Verfügbarkeitszeitraum -SetAvailability=Verfügbarkeitszeitraum definieren +AvailabilityPeriod=Gültig bis +SetAvailability=Gültigkeitszeitraum definieren AfterOrder=nach Bestellung ##### Availability ##### AvailabilityTypeAV_NOW=Sofort diff --git a/htdocs/langs/de_DE/resource.lang b/htdocs/langs/de_DE/resource.lang index 64d9045cb9b..ff7243d2c77 100644 --- a/htdocs/langs/de_DE/resource.lang +++ b/htdocs/langs/de_DE/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Ressource erfolgreich gelöscht DictionaryResourceType=Ressourcen-Typ SelectResource=Ressource wählen + +IdResource=Resourcen ID +AssetNumber=Seriennummer +ResourceTypeCode=Ressourcen-Typ Code +ImportDataset_resource_1=Ressourcen diff --git a/htdocs/langs/de_DE/salaries.lang b/htdocs/langs/de_DE/salaries.lang index d0ef47dcafb..13be926dd27 100644 --- a/htdocs/langs/de_DE/salaries.lang +++ b/htdocs/langs/de_DE/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard Buchhaltungskonto für Löhne +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard Buchhaltungskonto für persönliche Aufwendungen Salary=Lohn Salaries=Löhne diff --git a/htdocs/langs/de_DE/stocks.lang b/htdocs/langs/de_DE/stocks.lang index 76c6d5e83d7..540d5ddaf8d 100644 --- a/htdocs/langs/de_DE/stocks.lang +++ b/htdocs/langs/de_DE/stocks.lang @@ -48,12 +48,12 @@ PMPValue=Gewichteter Warenwert PMPValueShort=DSWP EnhancedValueOfWarehouses=Lagerwert UserWarehouseAutoCreate=Beim Anlegen eines Benutzers automatisch neues Warenlager erstellen -AllowAddLimitStockByWarehouse=Allow to add limit and desired stock per couple (product, warehouse) instead of per product +AllowAddLimitStockByWarehouse=Ermöglicht es, Grenzwerte und erwünschten Lagerbestand pro Produkt+Warenlager zu definieren, anstelle nur pro Produkt IndependantSubProductStock=Produkt Lager und Unterprodukt Lager sind unabhängig QtyDispatched=Versandmenge QtyDispatchedShort=Menge versandt QtyToDispatchShort=Menge zu versenden -OrderDispatch=Bestellabwicklung +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Regel für automatische Verringerung der Bestände (manuelle Verringerung ist immer möglich, selbst wenn die automatische Verringerung aktiviert ist). RuleForStockManagementIncrease=Regel für automatische Erhöhung der Bestände (manuelle Erhöhung ist immer möglich, selbst wenn die automatische Erhöhung aktiviert ist). DeStockOnBill=Verringere reale Bestände bei Bestätigung von Rechnungen/Gutschriften @@ -71,10 +71,10 @@ StockLimitShort=Grenzwert für Alarm StockLimit=Mindestbestand vor Warnung PhysicalStock=Istbestand RealStock=Realer Lagerbestand -RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. -RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): +RealStockDesc=Physikalischer Lagerbestand ist die Stückzahl die aktuell in Ihren Warenlagern vorhanden ist. +RealStockWillAutomaticallyWhen=Der Lagerbestand wird automatisch anhand dieser Regeln angepasst (Siehe Lagermodul Setup): VirtualStock=Theoretisches Warenlager -VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) +VirtualStockDesc=Virtueller Lagerbestand ist der verbleibende Bestand nachdem alle geplanten Buchungen ausgeführt wurden. (Lagereingang aus Bestellungen, Lieferungen an Kunden, ...) IdWarehouse=Warenlager ID DescWareHouse=Beschreibung Warenlager LieuWareHouse=Standort Warenlager @@ -139,20 +139,20 @@ NoPendingReceptionOnSupplierOrder=Keine anstehenden Liefereingänge aufgrund off ThisSerialAlreadyExistWithDifferentDate=Diese Charge / Seriennummer (%s) ist bereits vorhanden, jedoch mit unterschiedlichen Haltbarkeits- oder Verfallsdatum. \n(Gefunden: %s Erfasst: %s) OpenAll=Verfügbar für alle Aktionen OpenInternal=Verfügbar für interne Aktionen -UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception +UseDispatchStatus=Empfangstatus (akzeptiert/abgelehnt) für Produktzeilen bei Lieferungseingang verwenden OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated -ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created -ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock correctly updated -ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted -AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock -AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +ProductStockWarehouseCreated=Bestandeswert für Benachrichtigung und erwünschtem optimalem Lagerbestand erstellt +ProductStockWarehouseUpdated=Bestandeswert für Benachrichtigung und erwünschtem optimalem Lagerbestand aktualisiert +ProductStockWarehouseDeleted=Bestandeswert für Benachrichtigung und erwünschtem optimalem Lagerbestand gelöscht +AddNewProductStockWarehouse=Neuen Grenzwert für Benachrichtigung und gewünschtem Lagerbestand setzen +AddStockLocationLine=Bestand abbuchen, dann klicken um einem anderen Warenlager für dieses Produkt zuweisen InventoryDate=Inventardatum NewInventory=Neues inventar inventorySetup = Inventar einrichten inventoryCreatePermission=Neue Inventur erstellen inventoryReadPermission=Inventar anzeigen inventoryWritePermission=Inventar aktualisieren -inventoryValidatePermission=Validate inventory +inventoryValidatePermission=Inventur freigeben inventoryTitle=Inventar inventoryListTitle=Inventuren inventoryListEmpty=Keine Inventarisierung in Arbeit @@ -170,9 +170,9 @@ inventoryWarningProductAlreadyExists=Dieses Produkt ist schon in der Liste SelectCategory=Kategoriefilter SelectFournisseur=Filter nach Lieferant inventoryOnDate=Inventur -INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_DISABLE_VIRTUAL=Lagerbestand für Komponenten bei Inventur eines zusammengesetzen Produktes nicht heruntersetzen INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found -INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Lagerbewegungen haben ein Inventurdatum inventoryChangePMPPermission=Allow to change PMP value for a product ColumnNewPMP=New unit PMP OnlyProdsInStock=Fügen sie kein Produkt ohne Bestand hinzu @@ -182,11 +182,11 @@ LastPA=Letzer Einstandpreis CurrentPA=Aktueller Einstandspreis RealQty=Echte Menge RealValue=Echter Wert -RegulatedQty=Regulated Qty +RegulatedQty=Gebuchte Menge AddInventoryProduct=Produkt zu Inventar hinzufügen AddProduct=Hinzufügen ApplyPMP=Apply PMP -FlushInventory=Flush inventory +FlushInventory=Inventur leeren ConfirmFlushInventory=Aktion wirklich ausführen? InventoryFlushed=Inventory flushed ExitEditMode=Exit edition diff --git a/htdocs/langs/de_DE/stripe.lang b/htdocs/langs/de_DE/stripe.lang new file mode 100644 index 00000000000..246bc654ad8 --- /dev/null +++ b/htdocs/langs/de_DE/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Strip Moduleeinstellungen +StripeDesc=Dieses Modul erlaubt die Annahme von Zahlungen über Stripe. Sie können damit Zahlungen zu Objekten innerhalb des Systems (Rechnungen, Bestellungen, ...) erfassen. +StripeOrCBDoPayment=Zahlen mit Kreditkarte oder Stripe +FollowingUrlAreAvailableToMakePayments=Für Kundenzahlungen stehen Ihnen die folgenden URLs zur Verfügung: +PaymentForm=Zahlungsformular +WelcomeOnPaymentPage=Willkommen auf unserer Online-Bezahlseite +ThisScreenAllowsYouToPay=Über dieses Fenster können Sie Online-Zahlungen an %s vornehmen. +ThisIsInformationOnPayment=Informationen zu der vorzunehmenden Zahlung +ToComplete=Vervollständigen +YourEMail=E-Mail-Adresse für die Zahlungsbestätigung +STRIPE_PAYONLINE_SENDEMAIL=Status-E-Mail nach einer Zahlung (erfolgreich oder nicht) +Creditor=Zahlungsempfänger +PaymentCode=Zahlungscode +StripeDoPayment=Jetzt bezahlen +YouWillBeRedirectedOnStripe=Zur Eingabe Ihrer Kreditkartendaten werden Sie auf die sichere Bezahlseite von Stripe weitergeleitet. +Continue=Nächster +ToOfferALinkForOnlinePayment=URL für %s Zahlung +ToOfferALinkForOnlinePaymentOnOrder=URL um Ihren Kunden eine %s Online-Bezahlseite für Bestellungen anzubieten +ToOfferALinkForOnlinePaymentOnInvoice=URL um Ihren Kunden eine %s Online-Bezahlseite für Rechnungen anzubieten +ToOfferALinkForOnlinePaymentOnContractLine=URL um Ihren Kunden eine %s Online-Bezahlseite für Vertragspositionen anzubieten +ToOfferALinkForOnlinePaymentOnFreeAmount=URL um Ihren Kunden eine %s Online-Bezahlseite für frei wählbare Beträge anzubieten +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL um Ihren Mitgliedern eine %s Online-Bezahlseite für Mitgliedsbeiträge +YouCanAddTagOnUrl=Sie können auch den URL-Parameter &tag=value an eine beliebige dieser URLs anhängen (erforderlich nur bei der freien Zahlung) um einen eigenen Zahlungskommentar hinzuzufügen. +SetupStripeToHavePaymentCreatedAutomatically=Richten Sie Stripe mit der URL %s ein, um nach Freigabe durch Stripe eine Zahlung anzulegen. +YourPaymentHasBeenRecorded=Hiermit Bestätigen wir, dass die Zahlung ausgeführt wurde. Vielen Dank. +YourPaymentHasNotBeenRecorded=Die Zahlung wurde nicht gespeichert und der Vorgang storniert. Vielen Dank. +AccountParameter=Konto Parameter +UsageParameter=Einsatzparameter +InformationToFindParameters=Hilfe für das Finden der %s Kontoinformationen +STRIPE_CGI_URL_V2=URL für das Stripe CGI Zahlungsmodul +VendorName=Name des Anbieters +CSSUrlForPaymentForm=CSS-Datei für das Zahlungsmodul +MessageOK=Nachrichtenseite für bestätigte Zahlung +MessageKO=Nachrichtenseite für stornierte Zahlung +NewStripePaymentReceived=Neue Stripezahlung erhalten +NewStripePaymentFailed=Neue Stripezahlung versucht, aber fehlgeschlagen +STRIPE_TEST_SECRET_KEY=Geheimer Testschlüssel +STRIPE_TEST_PUBLISHABLE_KEY=Öffentlicher Testschlüssel +STRIPE_LIVE_SECRET_KEY=Geheimer Produktivschlüssel +STRIPE_LIVE_PUBLISHABLE_KEY=Öffentlicher Produktivschlüssel +StripeLiveEnabled=Stripe live aktiviert (Nicht im Test/Sandbox Modus) diff --git a/htdocs/langs/de_DE/supplier_proposal.lang b/htdocs/langs/de_DE/supplier_proposal.lang index 3b056883969..fc8ab7b08cc 100644 --- a/htdocs/langs/de_DE/supplier_proposal.lang +++ b/htdocs/langs/de_DE/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Anfrage suchen DraftRequests=Anfrage erstellen SupplierProposalsDraft=Entwurf Lieferantenanfrage LastModifiedRequests=Letzte %s geänderte Preisanfragen -RequestsOpened=Opened price requests +RequestsOpened=offene Preisanfragen SupplierProposalArea=Bereich Lieferantenangebote SupplierProposalShort=Lieferanten Angebot SupplierProposals=Lieferanten Angebote @@ -18,12 +18,12 @@ ShowSupplierProposal=Presianfrage anzeigen AddSupplierProposal=Preisanfrage erstellen SupplierProposalRefFourn=Lieferantenreferenz SupplierProposalDate=Liefertermin -SupplierProposalRefFournNotice=Vor dem Schliessen und setzen des Status auf "Angenommen" sollten Sie die Lieferantenreferenz aufnehmen. -ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? +SupplierProposalRefFournNotice=Vor dem schließen mit "Freigeben", sollten Sie die Lieferanten-Nr. erfassen. +ConfirmValidateAsk=Möchten Sie diese Preisanfrage wirklich unter %s bestätigen? DeleteAsk=Anfrage löschen ValidateAsk=Anfrage freigeben SupplierProposalStatusDraft=Entwurf (muss noch überprüft werden) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Bestätigt (Anfrage ist offen) SupplierProposalStatusClosed=Geschlossen SupplierProposalStatusSigned=Bestätigt SupplierProposalStatusNotSigned=Abgelehnt @@ -36,7 +36,7 @@ CopyAskFrom=Preisanfrage durch Kopieren einer bestehenden Anfrage anlegen CreateEmptyAsk=Leere Anfrage anlegen CloneAsk=Preisanfrage duplizieren ConfirmCloneAsk=Möchten Sie diese Preisanfrage %s wirklich duplizieren? -ConfirmReOpenAsk=Sind Sie sicher, dass Sie diese Preisanfrage %s wieder öffnen möchten ? +ConfirmReOpenAsk=Möchten Sie diese Preisanfrage %s wirklich wieder öffnen? SendAskByMail=Preisanfrage per E-Mail versenden SendAskRef=Sende Preisanfrage %s SupplierProposalCard=Anfrage - Karte @@ -47,9 +47,9 @@ CommercialAsk=Preisanfrage DefaultModelSupplierProposalCreate=Erstellung eines Standard-Modells DefaultModelSupplierProposalToBill=Standardvorlage wenn eine Preisanfrage geschlossen wird (angenommen) DefaultModelSupplierProposalClosed=Standardvorlage wenn eine Preisanfrage geschlossen wird (abgelehnt) -ListOfSupplierProposal=Liste von Angebotsanfragen für Lieferanten +ListOfSupplierProposals=Liste von Angebotsanfragen für Lieferanten ListSupplierProposalsAssociatedProject=Liste der Zuliefererangebote, die mit diesem Projekt verknüpft sind SupplierProposalsToClose=zu schließende Lieferantenangebote SupplierProposalsToProcess=Lieferantenangebote in Bearbeitung -LastSupplierProposals=Latest %s price requests +LastSupplierProposals=Letzte %s Preisanfragen AllPriceRequests=Alle Anfragen diff --git a/htdocs/langs/de_DE/suppliers.lang b/htdocs/langs/de_DE/suppliers.lang index 77a9542bbec..c3f1870d2fe 100644 --- a/htdocs/langs/de_DE/suppliers.lang +++ b/htdocs/langs/de_DE/suppliers.lang @@ -14,20 +14,21 @@ TotalSellingPriceMinShort=Summe Unterprodukte Verkaufspreis SomeSubProductHaveNoPrices=Einige Unterprodukte haben keinen Preis AddSupplierPrice=Einkaufspreis anlegen ChangeSupplierPrice=Ändere Einkaufspreis +SupplierPrices=Lieferantenpreise ReferenceSupplierIsAlreadyAssociatedWithAProduct=Für dieses Produkt existiert bereits ein Lieferantenpreis vom gewählten Anbieter: %s NoRecordedSuppliers=Keine Lieferanten erfasst SupplierPayment=Lieferantenzahlung SuppliersArea=Lieferantenübersicht -RefSupplierShort=Ref . Lieferant +RefSupplierShort=Lieferant Nr. Availability=Verfügbarkeit ExportDataset_fournisseur_1=Lieferantenrechnungen und Positionen ExportDataset_fournisseur_2=Lieferantenrechnungen und Zahlungen ExportDataset_fournisseur_3=Lieferantenbestellungen und Auftragszeilen ApproveThisOrder=Bestellung bestätigen -ConfirmApproveThisOrder=Are you sure you want to approve order %s? +ConfirmApproveThisOrder=Möchten Sie diese Bestellung %s wirklich bestätigen? DenyingThisOrder=Bestellung ablehnen -ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? -ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? +ConfirmDenyingThisOrder=Möchten Sie diese Bestellung %s wirklich ablehnen? +ConfirmCancelThisOrder=Möchten Sie die Bestellung %s wirklich stornieren ? AddSupplierOrder=Lieferantenbestellung erstellen AddSupplierInvoice=Lieferantenrechnung erstellen ListOfSupplierProductForSupplier=Produkt- und Preisliste für Anbieter %s @@ -41,4 +42,5 @@ DoNotOrderThisProductToThisSupplier=Nicht sortieren NotTheGoodQualitySupplier=Ungültige Qualität ReputationForThisProduct=Reputation BuyerName=Käufer -AllProductServicePrices=All product / service prices +AllProductServicePrices=Alle Produkt/Leistung Preise +BuyingPriceNumShort=Lieferantenpreise diff --git a/htdocs/langs/de_DE/trips.lang b/htdocs/langs/de_DE/trips.lang index 940ca050f07..6a45e382fdb 100644 --- a/htdocs/langs/de_DE/trips.lang +++ b/htdocs/langs/de_DE/trips.lang @@ -15,23 +15,23 @@ NewTrip=neue Spesenabrechnung CompanyVisited=Besuchter Partner FeesKilometersOrAmout=Spesenbetrag bzw. Kilometergeld DeleteTrip=Spesenabrechnung löschen -ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ConfirmDeleteTrip=Sind Sie sicher, dass diese Spesenabrechnung löschen wollen? ListTripsAndExpenses=Aufstellung Spesenabrechnungen ListToApprove=Warten auf Bestätigung ExpensesArea=Spesenabrechnungen ClassifyRefunded=Als 'erstattet' markieren ExpenseReportWaitingForApproval=Eine neue Spesenabrechnung ist zur Genehmigung vorgelegt worden -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s -ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval -ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s -ExpenseReportApproved=An expense report was approved -ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s -ExpenseReportRefused=An expense report was refused -ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s -ExpenseReportCanceled=An expense report was canceled -ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s -ExpenseReportPaid=An expense report was paid -ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s +ExpenseReportWaitingForApprovalMessage=Ein neuer Spesenbericht wurde vorgelegt und wartet auf die Genehmigung.\n - Benutzer: %s\n - Zeitraum: %s\nKlicken Sie hier, um diesen freizugeben: %s +ExpenseReportWaitingForReApproval=Eine Spesenabrechnung ist zur erneuten Genehmigung vorgelegt worden +ExpenseReportWaitingForReApprovalMessage=Eine Spesenabrechnung wurde eingereicht und wartet darauf, un wartet auf erneute Freigabe.\nDie %s, Sie verweigerte die Freigabe der Spesenabrechnung aus folgenden Grunde: %s.\nEine neue Version wurde für Ihre Freigabe vorgeschlagen und wartet.\n - Benutzer: %s\n - Zeitraum: %s\nKlicken Sie hier, um diesen hier freizugeben: %s +ExpenseReportApproved=Eine Spesenabrechnung wurde genehmigt +ExpenseReportApprovedMessage=Der Spesenbericht %s wurde genehmigt.\n - Benutzer: %s\n - Genehmigt von: %s\nKlicken Sie hier, um die Spesenabrechnung zu zeigen: %s +ExpenseReportRefused=Eine Spesenabrechnung wurde abgelehnt +ExpenseReportRefusedMessage=Der Spesenbericht %s wurde abgelehnt.\n - Benutzer: %s\n - Refused von: %s\n - Motive für die Ablehnung: %s\nKlicken Sie hier, um die Spesenabrechnung zeigen: %s +ExpenseReportCanceled=Eine Spesenabrechnung wurde storniert +ExpenseReportCanceledMessage=Der Spesenbericht %s wurde abgebrochen.\n - Benutzer: %s\n - Storniert von: %s\n - Motive für die Stornierung: %s\nKlicken Sie hier, um die Spesenabrechnung zu zeigen: %s +ExpenseReportPaid=Eine Spesenabrechnung wurde ausbezahlt +ExpenseReportPaidMessage=Der Spesenbericht %s wurde bezahlt.\n - Benutzer: %s\n - Paid von: %s\nKlicken Sie hier, um die Spesenabrechnung anzuzeigen: %s TripId=Spesenabrechnung ID AnyOtherInThisListCanValidate=Person für die Validierung zu informieren . TripSociete=Partner @@ -70,22 +70,23 @@ DATE_SAVE=Freigabedatum DATE_CANCEL=Stornodatum DATE_PAIEMENT=Zahlungsdatum BROUILLONNER=entwerfen +ExpenseReportRef=Belegnummer Spesenabrechnung ValidateAndSubmit=Validieren und zur Genehmigung einreichen ValidatedWaitingApproval=Validiert (Wartet auf Genehmigung) NOT_AUTHOR=Sie sind nicht der Autor dieser Spesenabrechnung. Vorgang abgebrochen. -ConfirmRefuseTrip=Are you sure you want to deny this expense report? +ConfirmRefuseTrip=Möchten Sie diese Spesenabrechnung wirklich ablehnen? ValideTrip=Genehmigen Spesenabrechnung -ConfirmValideTrip=Are you sure you want to approve this expense report? +ConfirmValideTrip=Möchten Sie diese Spesenabrechnung wirklich genehmigen? PaidTrip=Spesenabrechnung bezahlen -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? -ConfirmCancelTrip=Are you sure you want to cancel this expense report? +ConfirmPaidTrip=Möchten Sie den Status dieser Spesenabrechnung auf "Bezahlt" ändern? +ConfirmCancelTrip=Möchten Sie diese Spesenabrechnung wirklich stornieren? BrouillonnerTrip=Status der Spesenabrechnung auf den Status "Entwurf" ändern -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? +ConfirmBrouillonnerTrip=Möchten Sie den Status dieser Spesenabrechnung wirklich auf "Entwurf" ändern? SaveTrip=Bestätige Spesenabrechnung -ConfirmSaveTrip=Are you sure you want to validate this expense report? +ConfirmSaveTrip=Möchten Sie den diese Spesenabrechnung wirklich bestätigen? NoTripsToExportCSV=Keine Spesenabrechnung für diesen Zeitraum zu exportieren. ExpenseReportPayment=Spesenabrechnung Zahlung ExpenseReportsToApprove=zu genehmigende Spesenabrechnungen ExpenseReportsToPay=zu zahlende Spesenabrechnungen -CloneExpenseReport=Clone expese report -ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? +CloneExpenseReport=Spesenabrechnung duplizieren +ConfirmCloneExpenseReport=Möchten Sie den diese Spesenabrechnung wirklich duplizieren? diff --git a/htdocs/langs/de_DE/website.lang b/htdocs/langs/de_DE/website.lang index a30750f9ab5..f4b3ef673ed 100644 --- a/htdocs/langs/de_DE/website.lang +++ b/htdocs/langs/de_DE/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Möchten Sie diese Website wirklich löschen? Alle Seiten i WEBSITE_PAGENAME=Seitenname/Alias WEBSITE_CSS_URL=URL der externen CSS-Datei WEBSITE_CSS_INLINE=CSS Inhalt +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Medienbibliothek EditCss=Style/CSS bearbeiten EditMenu=Menü bearbeiten @@ -14,8 +15,9 @@ EditPageContent=Inhalt bearbeiten Website=Webseite Webpage=Webseite AddPage=Seite hinzufügen +HomePage=Home Page PreviewOfSiteNotYetAvailable=Vorschau ihrer Webseite %s noch nicht Verfügbar. Zuerst muss eine Seite hinzugefügt werden. -RequestedPageHasNoContentYet=Die Seite mit id %s hat keinen Inhalt oder die Cachedatei .tpl.php wurde gelöscht. Editieren Sie den Inhalt der Seite um das Problem zu lösen. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Seite '%s' der Webseite %s entfernt PageAdded=Seite '%s' angefügt ViewSiteInNewTab=Webseite in neuen Tab anzeigen @@ -23,6 +25,7 @@ ViewPageInNewTab=Seite in neuem Tab anzeigen SetAsHomePage=Als Startseite festlegen RealURL=Echte URL ViewWebsiteInProduction=Anzeige der Webseite über die Startseite\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nüber die URL der Homepage -SetHereVirtualHost=Wenn Sie auf Ihrem Webserver einen dedizierten virtuellen Host mit dem Hauptverzeichnis %s einrichten können, geben Sie hier den virtuellen Host-Namen ein, so dass die Vorschau dann über den direkten Web-Server Zugriff funktioniert und nicht nur der Dolibarr Server benutzt werden kann. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Vorschau %s in neuem Tab.

%s wird durch einen externen Webserver (Wie Apache, Nginx, IIS) ausgeliefert. Dieser Server muss installiert sein. Verzeichnis
%s
als URL
%s durch den externen Webserver freigeben +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/de_DE/withdrawals.lang b/htdocs/langs/de_DE/withdrawals.lang index a7ade20d6d6..7bdf230b009 100644 --- a/htdocs/langs/de_DE/withdrawals.lang +++ b/htdocs/langs/de_DE/withdrawals.lang @@ -7,21 +7,21 @@ NewStandingOrder=Neue Bestellung mit Zahlart Lastschrift StandingOrderToProcess=Zu bearbeiten WithdrawalsReceipts=Lastschriften WithdrawalReceipt=Lastschrift -LastWithdrawalReceipts=Latest %s direct debit files -WithdrawalsLines=Direct debit order lines +LastWithdrawalReceipts=Letzte %s Abbuchungsbelege +WithdrawalsLines=Abbuchungszeilen RequestStandingOrderToTreat=Request for direct debit payment order to process RequestStandingOrderTreated=Request for direct debit payment order processed NotPossibleForThisStatusOfWithdrawReceiptORLine=Funktion nicht verfügbar. Der Status des Abbucher muss auf "durchgeführt" gesetzt sein bevor eine Erklärung für die Ablehnung eingetragen werden können. -NbOfInvoiceToWithdraw=Nb. of invoice with direct debit order +NbOfInvoiceToWithdraw=Anzahl einzuziehender Rechnungen NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment orders having defined bank account information InvoiceWaitingWithdraw=Rechnung wartet auf Lastschrifteinzug AmountToWithdraw=Abbuchungsbetrag -WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Keine Kundenrechnung mit Zahlungsart ""Abbuchung" im Wartezustand. Stellen Sie neue Anträge im 'Abbuchungs'-Tab der Rechnungskarte. +WithdrawsRefused=Lastschrift-Einzug abgelehnt +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Verantwortlicher Benutzer -WithdrawalsSetup=Direct debit payment setup +WithdrawalsSetup=Einstellungen für Lastschriftaufträge WithdrawStatistics=Direct debit payment statistics -WithdrawRejectStatistics=Direct debit payment reject statistics +WithdrawRejectStatistics=Statistik abgelehnter Lastschriftzahlungen LastWithdrawalReceipt=Latest %s direct debit receipts MakeWithdrawRequest=Make a direct debit payment request WithdrawRequestsDone=%s direct debit payment requests recorded @@ -41,6 +41,7 @@ RefusedReason=Ablehnungsgrund RefusedInvoicing=Ablehnung in Rechnung stellen NoInvoiceRefused=Ablehnung nicht in Rechnung stellen InvoiceRefused=Rechnung abgelehnt (Abweisung dem Kunden berechnen) +StatusDebitCredit=Status Debit/Kredit StatusWaiting=Wartend StatusTrans=Gesendet StatusCredited=Eingelöst @@ -63,7 +64,7 @@ NotifyCredit=Abbuchungsgutschrift NumeroNationalEmetter=Nat. Überweisernummer WithBankUsingRIB=Bankkonten mit RIB WithBankUsingBANBIC=Bankkonten mit IBAN/BIC -BankToReceiveWithdraw=Bank account to receive direct debit +BankToReceiveWithdraw=Bankkonto für erhaltene Lastschrift-Einzüge CreditDate=Am WithdrawalFileNotCapable=Abbuchungsformular für Ihr Land %s konnte nicht erstellt werden (Dieses Land wird nicht unterstützt). ShowWithdraw=Zeige Abbuchung @@ -77,25 +78,25 @@ RUM=UMR RUMLong=Unique Mandate Reference RUMWillBeGenerated=UMR number will be generated once bank account information are saved WithdrawMode=Direct debit mode (FRST or RECUR) -WithdrawRequestAmount=Amount of Direct debit request: +WithdrawRequestAmount=Lastschrifteinzug Einzugs Betrag: WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. SepaMandate=SEPA Direct Debit Mandate SepaMandateShort=SEPA-Mandate PleaseReturnMandate=Please return this mandate form by email to %s or by mail to SEPALegalText=By signing this mandate form, you authorize (A) %s to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with the instructions from %s. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights regarding the above mandate are explained in a statement that you can obtain from your bank. -CreditorIdentifier=Creditor Identifier +CreditorIdentifier=Kennung Kreditor CreditorName=Name Kreditor SEPAFillForm=(B) Bitte füllen Sie alle mit * markierten Felder aus SEPAFormYourName=Ihr Name -SEPAFormYourBAN=Your Bank Account Name (IBAN) -SEPAFormYourBIC=Your Bank Identifier Code (BIC) +SEPAFormYourBAN=Ihre Kontonummer (IBAN) +SEPAFormYourBIC=Ihre Bank Identifikation (BIC) SEPAFrstOrRecur=Zahlungsart -ModeRECUR=Reccurent payment +ModeRECUR=Wiederkehrende Zahlungen ModeFRST=Einmalzahlung -PleaseCheckOne=Please check one only +PleaseCheckOne=Bitte prüfen sie nur eine ### Notifications -InfoCreditSubject=Payment of direct debit payment order %s by the bank +InfoCreditSubject=Zahlung des Lastschrifteinzug %s an die Bank InfoCreditMessage=The direct debit payment order %s has been paid by the bank
Data of payment: %s InfoTransSubject=Transmission of direct debit payment order %s to bank InfoTransMessage=The direct debit payment order %s has been sent to bank by %s %s.

diff --git a/htdocs/langs/de_DE/workflow.lang b/htdocs/langs/de_DE/workflow.lang index f990eb5d3d3..25e3a46f029 100644 --- a/htdocs/langs/de_DE/workflow.lang +++ b/htdocs/langs/de_DE/workflow.lang @@ -10,6 +10,6 @@ descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Kennzeichne verknüpftes Angebot als i descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung als bezahlt markiert wird descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Kennzeichne verknüpfte Kundenaufträge als verrechnet, wenn die Kundenrechnung bestätigt wird descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Kennzeichne das verknüpfte Angebot als abgerechnet, wenn die Kundenrechnung erstellt wurde. -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Kennzeichne verknüpfte Aufträge als geliefert, wenn die Lieferung verbucht wurde und die Liefermenge der Bestellmenge entspricht AutomaticCreation=automatische Erstellung AutomaticClassification=Automatische Klassifikation diff --git a/htdocs/langs/el_GR/accountancy.lang b/htdocs/langs/el_GR/accountancy.lang index cde23e7a4ad..c258d991153 100644 --- a/htdocs/langs/el_GR/accountancy.lang +++ b/htdocs/langs/el_GR/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Προσθέστε ένα λογιστικό λογαριασμό AccountAccounting=Λογιστική λογαριασμού AccountAccountingShort=Λογαριασμός SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Δημιουργήστε μία νέα συναλλαγή UpdateMvts=Τροποποίηση συναλλαγής +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Πωλήσεις AccountingJournalType3=Αγορές AccountingJournalType4=Τράπεζα +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Εξαγωγές Export=Εξαγωγή +ExportDraftJournal=Export draft journal Modelcsv=Πρότυπο εξαγωγής OptionsDeactivatedForThisExportModel=Γι 'αυτό το μοντέλο εξαγωγών, οι επιλογές είναι απενεργοποιημένες Selectmodelcsv=Επιλέξτε ένα πρότυπο από την εξαγωγή diff --git a/htdocs/langs/el_GR/admin.lang b/htdocs/langs/el_GR/admin.lang index 0fcaa6d8b14..beb168bacfd 100644 --- a/htdocs/langs/el_GR/admin.lang +++ b/htdocs/langs/el_GR/admin.lang @@ -219,7 +219,7 @@ Feature=Χαρακτηριστικό DolibarrLicense=Άδεια χρήσης Developpers=Προγραμματιστές/συνεργάτες OfficialWebSite=Επίσημη ιστοσελίδα Dolibarr international -OfficialWebSiteLocal=Local web site (%s) +OfficialWebSiteLocal=Τοπική ιστοσελίδα (%s) OfficialWiki=Τεκμηρίωση Dolibarr στο Wiki OfficialDemo=Δοκιμαστική έκδοση Dolibarr OfficialMarketPlace=Επίσημη ιστοσελίδα για εξωτερικά modules/πρόσθετα @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Δημιουργία εγγράφων Module1520Desc=Δημιουργία εγγράφου για μαζικά mail Module1780Name=Ετικέτες/Κατηγορίες @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Ενότητα για να προσφέρει μια σε απευθείας σύνδεση σελίδα πληρωμής με πιστωτική κάρτα με Paypal Module50400Name=Λογιστική (για προχωρημένους) -Module50400Desc=Λογιστική διαχείριση (διπλά μέρη) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Απευθείας εκτύπωση (χωρίς να ανοίξετε τα έγγραφα) χρησιμοποιώντας Cups IPP διασύνδεση (Ο Εκτυπωτής πρέπει να είναι ορατός από τον server, και το CUPS πρέπει να έχει εγκατασταθεί στο server). Module55000Name=Δημοσκόπηση, έρευνα ή ψηφοφορία @@ -947,7 +947,7 @@ Host=Διακομιστής DriverType=Driver type SummarySystem=Σύνοψη πληροφοριών συστήματος SummaryConst=List of all Dolibarr setup parameters -MenuCompanySetup=Company/Organisation +MenuCompanySetup=Εταιρία/Οργανισμός DefaultMenuManager= Standard menu manager DefaultMenuSmartphoneManager=Smartphone menu manager Skin=Θέμα diff --git a/htdocs/langs/el_GR/agenda.lang b/htdocs/langs/el_GR/agenda.lang index b1b3983b9b1..b4af2918923 100644 --- a/htdocs/langs/el_GR/agenda.lang +++ b/htdocs/langs/el_GR/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Τιμολόγιο %s διαγράφεται InvoicePaidInDolibarr=Τιμολόγιο %s άλλαξε σε καταβληθεί InvoiceCanceledInDolibarr=Τιμολόγιο %s ακυρώθηκε MemberValidatedInDolibarr=Μέλος %s επικυρωθεί +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Μέλος %s διαγράφηκε MemberSubscriptionAddedInDolibarr=Συνδρομή για το μέλος %s προστέθηκε ShipmentValidatedInDolibarr=Η αποστολή %s επικυρώθηκε -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Η αποστολή %s διαγράφηκε OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Η παραγγελία %s επικυρώθηκε @@ -74,13 +75,17 @@ InterventionSentByEMail=Η παρέμβαση %s αποστέλλεται μέσ ProposalDeleted=Η προσφορά διαγράφηκε OrderDeleted=Η παραγγελία διαγράφηκε InvoiceDeleted=Το τιμολόγιο διαγράφηκε +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Ημερομηνία έναρξης DateActionEnd=Ημερομηνία λήξης AgendaUrlOptions1=Μπορείτε ακόμη να προσθέσετε τις ακόλουθες παραμέτρους για να φιλτράρετε τα αποτέλεσμα: -AgendaUrlOptions2=login=%s για να περιορίσουν την είσοδο σε ενέργειες που δημιουργούνται ή έχουν εκχωρηθεί στο χρήστη %s. AgendaUrlOptions3=logina=%s να περιορίσει την παραγωγή ενεργειών που ανήκουν στον χρήστη %s. -AgendaUrlOptions4=logint=%s για να περιορίσετε τα αποτελέσματα σε ενέργειες που αφορούν τον χρήστη%s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID να περιορίσει την παραγωγή της σε ενέργειες που σχετίζονται με το έργο PROJECT_ID. AgendaShowBirthdayEvents=Εμφάνιση γενεθλίων των επαφών AgendaHideBirthdayEvents=Απόκρυψη γενεθλίων των επαφών diff --git a/htdocs/langs/el_GR/banks.lang b/htdocs/langs/el_GR/banks.lang index 5ba3bd4406d..71a2a29c50f 100644 --- a/htdocs/langs/el_GR/banks.lang +++ b/htdocs/langs/el_GR/banks.lang @@ -66,21 +66,22 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID Συναλλαγής BankTransactions=Bank entries -ListTransactions=List entries -ListTransactionsByCategory=List entries/category +BankTransaction=Bank entry +ListTransactions=Λίστα εγγραφών +ListTransactionsByCategory=Λίστα εγγραφών./κατηγορία TransactionsToConciliate=Entries to reconcile Conciliable=Μπορεί να πραγματοποιηθεί Conciliate=Πραγματοποίηση Συναλλαγής Conciliation=Πραγματοποίηση Συναλλαγής ReconciliationLate=Reconciliation late IncludeClosedAccount=Συμπερίληψη Κλειστών Λογαριασμών -OnlyOpenedAccount=Μόνο Ανοιχτοί Λογαριασμοί +OnlyOpenedAccount=Μόνο ανοικτούς λογαριασμούς AccountToCredit=Πίστωση στον Λογαριασμό AccountToDebit=Χρέωση στον Λογαριασμό DisableConciliation=Απενεργοποίηση της ιδιότητας συμφωνία από αυτό τον λογαριασμό ConciliationDisabled=Η ιδιότητα συμφωνία απενεργοποιήθηκε. LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Ανοίξτε +StatusAccountOpened=Άνοιγμα StatusAccountClosed=Κλειστός AccountIdShort=Αριθμός LineRecord=Συναλλαγή @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Ελέγξτε την επιστροφή και BankAccountModelModule=Πρότυπα εγγράφων για τραπεζικούς λογαριασμούς DocumentModelSepaMandate=Πρότυπο SEPA. Χρήσιμο μόνο για κράτη μέλη της Ευρωζώνης. DocumentModelBan=Πρότυπο για εκτύπωση σελίδας με πληροφορίες BAN. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/el_GR/bills.lang b/htdocs/langs/el_GR/bills.lang index 2d4e2a07144..f5e07bc1753 100644 --- a/htdocs/langs/el_GR/bills.lang +++ b/htdocs/langs/el_GR/bills.lang @@ -9,7 +9,7 @@ BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s BillsSuppliersUnpaid=Ανεξόφλητα τιμολόγια προμηθευτή BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s BillsLate=Καθυστερημένες Πληρωμές -BillsStatistics=Στατιστικά για τα τιμολόγια των πελατών +BillsStatistics=Στατιστικά για τα τιμολόγια των πελατών BillsStatisticsSuppliers=Στατιστικά για τα τιμολόγια των προμηθευτών DisabledBecauseNotErasable=Απενεργοποιημένο επειδή δεν μπορεί να διαγραφή InvoiceStandard=Τυπικό Τιμολόγιο @@ -400,7 +400,7 @@ RegulatedOn=Ρυθμιζόμενη για ChequeNumber=Αριθμός Επιταγής ChequeOrTransferNumber=Αρ. Επιταγής/Μεταφοράς ChequeBordereau=Check schedule -ChequeMaker=Έλεγχος/Μεταφορά διαβιβαστής +ChequeMaker=Έλεγχος/Μεταφορά διαβιβαστής ChequeBank=Τράπεζα Επιταγής CheckBank=Επιταγή NetToBePaid=Φόρος προς πληρωμή @@ -431,7 +431,7 @@ ChequesReceipts=Αποδείξεις επιταγών ChequesArea=Περιοχή επιταγών κατάθεσης ChequeDeposits=Επιταγές κατάθεσης Cheques=Επιταγές -DepositId=Id Κατάθεση +DepositId=Id Κατάθεση NbCheque=Αριθμός επιταγών CreditNoteConvertedIntoDiscount=This %s has been converted into %s UsBillingContactAsIncoiveRecipientIfExist=Χρησιμοποιήστε πελάτη διεύθυνση επικοινωνίας χρέωσης αντί των Πελ./Προμ. διεύθυνση για τα τιμολόγια @@ -475,9 +475,9 @@ TypeContact_invoice_supplier_external_BILLING=Αντιπρόσωπος τιμο TypeContact_invoice_supplier_external_SHIPPING=Αντιπρόσωπος αποστολής προμηθευτή TypeContact_invoice_supplier_external_SERVICE=Αντιπρόσωπος υπηρεσίας προμηθευτή # Situation invoices -InvoiceFirstSituationAsk=Κατάσταση πρώτου τιμολογίου +InvoiceFirstSituationAsk=Κατάσταση πρώτου τιμολογίου InvoiceFirstSituationDesc=Η κατάσταση τιμολογίων συνδέονται με καταστάσεις που σχετίζονται σε πρόοδο, για παράδειγμα, της προόδου μιας κατασκευής. Κάθε κατάσταση είναι συνδεδεμένη με ένα τιμολόγιο. -InvoiceSituation=Κατάσταση τιμολογίου +InvoiceSituation=Κατάσταση τιμολογίου InvoiceSituationAsk=Τιμολόγιο που έπεται της κατάστασης InvoiceSituationDesc=Δημιουργία μιας νέας κατάστασης μετά από μια ήδη υπάρχουσα SituationAmount=Κατάσταση τιμολογίου ποσό (καθαρό) @@ -492,7 +492,7 @@ NoSituations=Δεν υπάρχουν ανοικτές καταστάσεις InvoiceSituationLast=Τελικό και γενικό τιμολόγιο PDFCrevetteSituationNumber=Κατάσταση N°%s PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT -PDFCrevetteSituationInvoiceTitle=Κατάσταση τιμολογίου +PDFCrevetteSituationInvoiceTitle=Κατάσταση τιμολογίου PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s TotalSituationInvoice=Συνολική κατάσταση invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line diff --git a/htdocs/langs/el_GR/bookmarks.lang b/htdocs/langs/el_GR/bookmarks.lang index 4c281613652..8bf96f92399 100644 --- a/htdocs/langs/el_GR/bookmarks.lang +++ b/htdocs/langs/el_GR/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Προσθέστε αυτή τη σελίδα στους σελιδοδείκτες Bookmark=Σελιδοδείκτης Bookmarks=Σελιδοδείκτες +ListOfBookmarks=Λίστα σελιδοδεικτών +EditBookmarks=List/edit bookmarks NewBookmark=Νέος σελιδοδείκτης ShowBookmark=Εμφάνιση σελιδοδείκτη OpenANewWindow=Άνοιγμα σε νέο παράθυρο diff --git a/htdocs/langs/el_GR/boxes.lang b/htdocs/langs/el_GR/boxes.lang index 1a895af0be2..edd92a06bcd 100644 --- a/htdocs/langs/el_GR/boxes.lang +++ b/htdocs/langs/el_GR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Πληροφορίες Rss BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Παραγγελίες πελατών ForProposals=Προσφορές LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/el_GR/categories.lang b/htdocs/langs/el_GR/categories.lang index 4da49b88614..b85e7869211 100644 --- a/htdocs/langs/el_GR/categories.lang +++ b/htdocs/langs/el_GR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Ετικέτα/Κατηγορία Rubriques=Ετικέτες/Κατηγορίες +RubriquesTransactions=Tags/Categories of transactions categories=Ετικέτες/Κατηγορίες NoCategoryYet=Δεν έχει δημιουργηθεί τέτοια ετικέτα/κατηγορία In=Μέσα diff --git a/htdocs/langs/el_GR/commercial.lang b/htdocs/langs/el_GR/commercial.lang index 751db45d14a..f4ec947a882 100644 --- a/htdocs/langs/el_GR/commercial.lang +++ b/htdocs/langs/el_GR/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Εμφάνιση Εργασίας ShowAction=Εμφάνιση Συμβάντος ActionsReport=Αναφορά Ενεργειών ThirdPartiesOfSaleRepresentative=Στοιχείο με τον αντιπρόσωπο πωλήσεων +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Αντιπρόσωπος πωλήσεων SalesRepresentatives=Αντιπρόσωποι πωλήσεων SalesRepresentativeFollowUp=Αντιπρόσωπο πωλήσεων (παρακολούθηση) diff --git a/htdocs/langs/el_GR/companies.lang b/htdocs/langs/el_GR/companies.lang index 5bb4073d895..4cf99cccf4b 100644 --- a/htdocs/langs/el_GR/companies.lang +++ b/htdocs/langs/el_GR/companies.lang @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Πελάτες ThirdPartyCustomersWithIdProf12=Πελάτες με %s ή %s ThirdPartySuppliers=Προμηθευτές ThirdPartyType=Τύπος Πελ./Προμ. -Company/Fundation=Εταιρία/Οργανισμός Individual=Ιδιώτης ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Γονική εταιρία @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Καθ Id 1 (OGRN) ProfId2RU=Καθ Id 2 (INN) ProfId3RU=Καθ Id 3 (KPP) @@ -403,7 +408,7 @@ ManagingDirectors=Διαχειριστής (ες) ονομασία (CEO, διε MergeOriginThirdparty=Διπλότυπο Πελ./Προμ. ( Πελ./Προμ. θέλετε να διαγραφεί) MergeThirdparties=Συγχώνευση Πελ./Προμ. ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. -ThirdpartiesMergeSuccess= Πελ./Προμ. έχουν συγχωνευθεί +ThirdpartiesMergeSuccess=Πελ./Προμ. έχουν συγχωνευθεί SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative SaleRepresentativeLastname=Last name of sales representative diff --git a/htdocs/langs/el_GR/contracts.lang b/htdocs/langs/el_GR/contracts.lang index e9af4279f1a..ba7835d6694 100644 --- a/htdocs/langs/el_GR/contracts.lang +++ b/htdocs/langs/el_GR/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Αυτή η λίστα περιέχει μόνο StandardContractsTemplate=Οι πρότυπες συμβάσεις ContactNameAndSignature=Για %s, το όνομα και η υπογραφή: OnlyLinesWithTypeServiceAreUsed=Μόνο εγγραφές τύπου "Υπηρεσία" θα αντιγραφούν. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Σύμβαση πώλησης υπογραφή εκπροσώπου diff --git a/htdocs/langs/el_GR/donations.lang b/htdocs/langs/el_GR/donations.lang index 06030fdbad4..dd1ef9822ac 100644 --- a/htdocs/langs/el_GR/donations.lang +++ b/htdocs/langs/el_GR/donations.lang @@ -16,7 +16,7 @@ DonationStatusPaid=Η δωρεά παραλήφθηκε DonationStatusPromiseNotValidatedShort=Προσχέδιο DonationStatusPromiseValidatedShort=Επικυρωμένη DonationStatusPaidShort=Ληφθήσα -DonationTitle=Παραλαβή Δωρεάς +DonationTitle=Παραλαβή Δωρεάς DonationDatePayment=Ημερομηνία πληρωμής ValidPromess=Επικύρωση υπόσχεσης DonationReceipt=Απόδειξη δωρεάς diff --git a/htdocs/langs/el_GR/errors.lang b/htdocs/langs/el_GR/errors.lang index 769da44986d..01bec9222fe 100644 --- a/htdocs/langs/el_GR/errors.lang +++ b/htdocs/langs/el_GR/errors.lang @@ -28,7 +28,7 @@ ErrorProdIdIsMandatory=Το %s είναι υποχρεωτικό ErrorBadCustomerCodeSyntax=Λάθος σύνταξη για τον κωδικό πελάτη ErrorBadBarCodeSyntax=Bad syntax for bar code. May be you set a bad barcode type or you defined a barcode mask for numbering that does not match value scanned. ErrorCustomerCodeRequired=Κωδικός πελάτη απαιτείτε -ErrorBarCodeRequired=Απαιτείται Bar code +ErrorBarCodeRequired=Απαιτείται Bar code ErrorCustomerCodeAlreadyUsed=Ο κωδικός πελάτη που έχει ήδη χρησιμοποιηθεί ErrorBarCodeAlreadyUsed=Το Bar code χρησιμοποιείται ήδη ErrorPrefixRequired=Απαιτείται Πρόθεμα diff --git a/htdocs/langs/el_GR/exports.lang b/htdocs/langs/el_GR/exports.lang index dbe15b414f1..41b183ee8cf 100644 --- a/htdocs/langs/el_GR/exports.lang +++ b/htdocs/langs/el_GR/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : φίλτρα ανά ένα έτος/μ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Η εισαγωγή ξεκινάει από τη γραμμή νούμερο EndAtLineNb=Τέλος στη γραμμή νούμερο +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Για παράδειγμα θέστε αυτή την τιμή σε 3 για να αποκλείσετε τις 2 πρώτες γραμμές KeepEmptyToGoToEndOfFile=Αφήστε αυτό το πεδίο κενό για να προσωρήσετε στο τέλος του αρχείου +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Αν θέλετε να φιλτράρετε ορισμένες τιμές, απλά εισάγετε τις τιμές εδώ. FilteredFields=Φιλτραρισμένα πεδία diff --git a/htdocs/langs/el_GR/install.lang b/htdocs/langs/el_GR/install.lang index 49b7e5c34f5..eddc83052b6 100644 --- a/htdocs/langs/el_GR/install.lang +++ b/htdocs/langs/el_GR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Χρησιμοποιείτε τον οδηγό εγκατ KeepDefaultValuesDeb=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από ένα πακέτο Linux (Ubuntu, Debian, Fedora...), οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Μόνο ο κωδικός του ιδιοκτήτη της βάσης δεδομένων που θα δημιουργηθεί πρέπει να συμπληρωθεί. Αλλάξτε τις υπόλοιπες παραμέτρους μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε. KeepDefaultValuesMamp=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από το DoliMamp, οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Αλλάξτε τις μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε. KeepDefaultValuesProxmox=Χρησιμοποιείτε τον οδηγό εγκατάστασης του Dolibarr από μία εικονική συσκευή Proxmox, οπότε οι προτεινόμενες ρυθμίσεις είναι ήδη προεπιλεγμένες. Αλλάξτε τις μόνο σε περίπτωση που γνωρίζετε ακριβώς τι κάνετε. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/el_GR/interventions.lang b/htdocs/langs/el_GR/interventions.lang index 66babfb9f62..78010ddf689 100644 --- a/htdocs/langs/el_GR/interventions.lang +++ b/htdocs/langs/el_GR/interventions.lang @@ -36,7 +36,7 @@ InterventionValidatedInDolibarr=Παρέμβαση %s επικυρώθηκε InterventionModifiedInDolibarr=Παρέμβαση %s τροποποιήθηκε InterventionClassifiedBilledInDolibarr=Σετ Παρέμβασης %s όπως τιμολογείται InterventionClassifiedUnbilledInDolibarr=Σετ Παρέμβαση %s ως μη τιμολογημένο -InterventionSentByEMail=Παρέμβαση %s αποστέλλετε με ηλεκτρονικό ταχυδρομείο +InterventionSentByEMail=Παρέμβαση %s αποστέλλετε με ηλεκτρονικό ταχυδρομείο InterventionDeletedInDolibarr=Παρέμβαση %s διαγράφετε InterventionsArea=Περιοχή παρεμβάσεων DraftFichinter=Πρόχειρες παρεμβάσεις diff --git a/htdocs/langs/el_GR/loan.lang b/htdocs/langs/el_GR/loan.lang index 4c5ee809a3b..c25a6583076 100644 --- a/htdocs/langs/el_GR/loan.lang +++ b/htdocs/langs/el_GR/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/el_GR/mails.lang b/htdocs/langs/el_GR/mails.lang index 0baf9be0051..8ad9a403d8f 100644 --- a/htdocs/langs/el_GR/mails.lang +++ b/htdocs/langs/el_GR/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Σειρά %s στο αρχείο diff --git a/htdocs/langs/el_GR/main.lang b/htdocs/langs/el_GR/main.lang index 1d08888e0e4..13a87b7aef0 100644 --- a/htdocs/langs/el_GR/main.lang +++ b/htdocs/langs/el_GR/main.lang @@ -72,8 +72,10 @@ SeeHere=Δείτε εδώ Apply=Εφαρμογή BackgroundColorByDefault=Προκαθορισμένο χρώμα φόντου FileRenamed=Το αρχείο μετονομάστηκε με επιτυχία -FileUploaded=Το αρχείο ανέβηκε με επιτυχία FileGenerated=Το αρχείο δημιουργήθηκε με επιτυχία +FileSaved=The file was successfully saved +FileUploaded=Το αρχείο ανέβηκε με επιτυχία +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Επιλέχθηκε ένα αρχείο για επισύναψη, αλλά δεν έχει μεταφερθεί ακόμη. Πατήστε στο "Επισύναψη Αρχείου". NbOfEntries=Πλήθος εγγραφών GoToWikiHelpPage=Online βοήθεια (απαιτείται σύνδεση στο internet) @@ -358,6 +360,7 @@ TotalLT1ES=Σύνολο RE TotalLT2ES=Σύνολο IRPF HT=χ. Φ.Π.Α TTC=με Φ.Π.Α +INCT=Inc. all taxes VAT=Φ.Π.Α VATs=Φόροι επί των πωλήσεων LT1ES=ΑΠΕ @@ -391,7 +394,7 @@ ActionRunningNotStarted=Δεν έχουν ξεκινήσει ActionRunningShort=Σε εξέλιξη ActionDoneShort=Ολοκληρωμένες ActionUncomplete=Μη ολοκληρωμένη -CompanyFoundation=Company/Organisation +CompanyFoundation=Εταιρία/Οργανισμός ContactsForCompany=Επαφές για αυτό το στοιχείο ContactsAddressesForCompany=Επαφές/Διευθύνσεις για αυτό το στοιχείο. AddressesForCompany=Διευθύνσεις για αυτό τον Πελ./Προμ. @@ -518,7 +521,6 @@ MonthShort10=Οκτ MonthShort11=Νοέ MonthShort12=Δεκ AttachedFiles=Επισυναπτόμενα αρχεία και έγγραφα -FileTransferComplete=Το αρχείο μεταφέρθηκε με επιτυχία DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/el_GR/members.lang b/htdocs/langs/el_GR/members.lang index 217c92300d7..edec31c36c8 100644 --- a/htdocs/langs/el_GR/members.lang +++ b/htdocs/langs/el_GR/members.lang @@ -41,14 +41,14 @@ MemberType=Τύπος μέλους MemberTypeId=Member type id MemberTypeLabel=Member type label MembersTypes=Members types -MemberStatusDraft=Draft (needs to be validated) -MemberStatusDraftShort=Προσχέδιο +MemberStatusDraft=Πρόχειρο (Χρειάζεται επικύρωση) +MemberStatusDraftShort=Πρόχειρο MemberStatusActive=Validated (waiting subscription) -MemberStatusActiveShort=Επικυρωμένη +MemberStatusActiveShort=Επικυρώθηκε MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Ληγμένη -MemberStatusPaid=Ενεργή συνδρομή -MemberStatusPaidShort=Ενεργή +MemberStatusPaid=Subscription up to date +MemberStatusPaidShort=Up to date MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated MembersStatusToValid=Draft members @@ -61,7 +61,7 @@ NewSubscription=New subscription NewSubscriptionDesc=Αυτή η φόρμα σας επιτρέπει να καταγράψετε την εγγραφή σας ως νέο μέλος του ιδρύματος. Αν θέλετε να ανανεώσετε τη συνδρομή σας (αν είναι ήδη μέλος), επικοινωνήστε με θεμέλιο του σκάφους, αντί μέσω e-mail %s. Subscription=Subscription Subscriptions=Subscriptions -SubscriptionLate=Καθυστερημένη +SubscriptionLate=Καθυστ. SubscriptionNotReceived=Subscription never received ListOfSubscriptions=List of subscriptions SendCardByMail=Send card by Email @@ -90,6 +90,7 @@ PublicMemberList=Λίστα δημόσιων μελών BlankSubscriptionForm=Subscription form BlankSubscriptionFormDesc=Dolibarr μπορεί να σας παρέχει μια δημόσια διεύθυνση URL για να επιτρέψουν σε εξωτερικούς επισκέπτες να ζητήσει να εγγραφεί στο ίδρυμα. Εάν μια ηλεκτρονική πληρωμή μονάδα είναι ενεργοποιημένη, μια μορφή πληρωμής θα πρέπει επίσης να παρέχονται αυτόματα. EnablePublicSubscriptionForm=Ενεργοποιήστε το κοινό αυτόματη συνδρομή μορφή +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Μέλη LastMembersModified=Τελευταία %s μέλη που τροποποιήθηκαν @@ -135,7 +136,7 @@ LinkToGeneratedPagesDesc=This screen allows you to generate PDF files with busin DocForAllMembersCards=Generate business cards for all members (Format for output actually setup : %s) DocForOneMemberCards=Generate business cards for a particular member (Format for output actually setup: %s) DocForLabels=Generate address sheets (Format for output actually setup: %s) -SubscriptionPayment=Subscription payment +SubscriptionPayment=Πληρωμή συνδρομής LastSubscriptionDate=Latest subscription date LastSubscriptionAmount=Latest subscription amount MembersStatisticsByCountries=Μέλη στατιστικές ανά χώρα @@ -150,7 +151,8 @@ MembersByTownDesc=Αυτή η οθόνη σας δείξει στατιστικ MembersStatisticsDesc=Επιλέξτε στατιστικά στοιχεία που θέλετε να διαβάσετε ... MenuMembersStats=Στατιστικά LastMemberDate=Latest member date -Nature=Φύση +LatestSubscriptionDate=Latest subscription date +Nature=Nature Public=Δημόσιο NewMemberbyWeb=Νέο μέλος πρόσθεσε. Εν αναμονή έγκρισης NewMemberForm=Νέα μορφή μέλος diff --git a/htdocs/langs/el_GR/modulebuilder.lang b/htdocs/langs/el_GR/modulebuilder.lang new file mode 100644 index 00000000000..19e5f19a1b0 --- /dev/null +++ b/htdocs/langs/el_GR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=Νέο Άρθρωμα +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Γράψε εδώ όλες τις γενικές πληροφορίες που περιγράφουν το άρθρωμα. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/el_GR/multicurrency.lang b/htdocs/langs/el_GR/multicurrency.lang new file mode 100644 index 00000000000..c733f753380 --- /dev/null +++ b/htdocs/langs/el_GR/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Σφάλμα συγχρονισμού:%s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Payment amount, original currency diff --git a/htdocs/langs/el_GR/oauth.lang b/htdocs/langs/el_GR/oauth.lang index d4179352224..cafca379f6f 100644 --- a/htdocs/langs/el_GR/oauth.lang +++ b/htdocs/langs/el_GR/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=Για έλεγχο/διαγραφή εξουσιοδότησης από %s προμηθευτή OAuth +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/el_GR/other.lang b/htdocs/langs/el_GR/other.lang index 36fdab4f121..f56d6867144 100644 --- a/htdocs/langs/el_GR/other.lang +++ b/htdocs/langs/el_GR/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=Λίβρες +WeightUnitounce=ουγκιά Length=Μήκος LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/el_GR/paybox.lang b/htdocs/langs/el_GR/paybox.lang index 2bda95a8fc8..45d395be3d2 100644 --- a/htdocs/langs/el_GR/paybox.lang +++ b/htdocs/langs/el_GR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail για να λάβετε επιβεβαίωση της πληρ Creditor=Πιστωτής PaymentCode=Κωδικός Πληρωμής PayBoxDoPayment=Μετάβαση στην πληρωμή +ToPay=Εισαγωγή Πληρωμής YouWillBeRedirectedOnPayBox=Θα μεταφερθείτε σε προστατευμένη σελίδα Paybox να εισάγετε τα στοιχεία της πιστωτικής σας κάρτας Continue=Επόμενη ToOfferALinkForOnlinePayment=URL για %s πληρωμής diff --git a/htdocs/langs/el_GR/paypal.lang b/htdocs/langs/el_GR/paypal.lang index ad9fb652167..a0ad0fabc0b 100644 --- a/htdocs/langs/el_GR/paypal.lang +++ b/htdocs/langs/el_GR/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Αυτό είναι id της συναλλαγής: %s%s
"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/el_GR/propal.lang b/htdocs/langs/el_GR/propal.lang index 69aeecce113..755f834b5fe 100644 --- a/htdocs/langs/el_GR/propal.lang +++ b/htdocs/langs/el_GR/propal.lang @@ -3,7 +3,7 @@ Proposals=Προσφορές Proposal=Προσφορά ProposalShort=Προσφορά ProposalsDraft=Σχέδιο Προσφοράς -ProposalsOpened=Άνοιγμα Προσφορών +ProposalsOpened=Open commercial proposals Prop=Προσφορές CommercialProposal=Προσφορά ProposalCard=Καρτέλα Προσφοράς @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Ποσό ανά μήνα (μετά από φόρου NbOfProposals=Αριθμός Προσφορών ShowPropal=Εμφάνιση Προσφοράς PropalsDraft=Σχέδιο -PropalsOpened=Ανοίξτε +PropalsOpened=Άνοιγμα PropalStatusDraft=Προσχέδιο (χρειάζεται επικύρωση) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Υπογραφή (ανάγκες χρέωσης) diff --git a/htdocs/langs/el_GR/receiptprinter.lang b/htdocs/langs/el_GR/receiptprinter.lang index bb5baf891bf..cea18f03cca 100644 --- a/htdocs/langs/el_GR/receiptprinter.lang +++ b/htdocs/langs/el_GR/receiptprinter.lang @@ -10,7 +10,7 @@ ReceiptPrinterTemplateDesc=Setup of Templates ReceiptPrinterTypeDesc=Description of Receipt Printer's type ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile ListPrinters=Λίστα εκτυπωτών. -SetupReceiptTemplate=Template Setup +SetupReceiptTemplate=Εγκατάσταση πρώτυπου CONNECTOR_DUMMY=Dummy Printer CONNECTOR_NETWORK_PRINT=Δικτυακός εκτυπωτής CONNECTOR_FILE_PRINT=Τοπικός εκτυπωτής diff --git a/htdocs/langs/el_GR/resource.lang b/htdocs/langs/el_GR/resource.lang index f5458a40302..ce4045dc723 100644 --- a/htdocs/langs/el_GR/resource.lang +++ b/htdocs/langs/el_GR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Ο Πόρος διαγράφηκε με επιτυ DictionaryResourceType=Το είδος των πόρων SelectResource=Επιλέξτε πόρο + +IdResource=Id resource +AssetNumber=Σειριακός αριθμός +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Πόροι diff --git a/htdocs/langs/el_GR/salaries.lang b/htdocs/langs/el_GR/salaries.lang index 526f666b245..ae7fa33641f 100644 --- a/htdocs/langs/el_GR/salaries.lang +++ b/htdocs/langs/el_GR/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Κωδικός Λογιστικής για τις πληρωμές των μισθών -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Κωδικός Λογιστικής για οικονομική επιβάρυνση +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Mισθός Salaries=Μισθοί NewSalaryPayment=Νέα μισθοδοσία diff --git a/htdocs/langs/el_GR/sendings.lang b/htdocs/langs/el_GR/sendings.lang index a7aead6a7ad..92a2a825d51 100644 --- a/htdocs/langs/el_GR/sendings.lang +++ b/htdocs/langs/el_GR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Φύλλο αποστολής ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Απλό μοντέλο έγγραφο DocumentModelMerou=Mérou A5 μοντέλο WarningNoQtyLeftToSend=Προσοχή, δεν υπάρχουν είδη που περιμένουν να σταλούν. StatsOnShipmentsOnlyValidated=Στατιστικά στοιχεία σχετικά με τις μεταφορές που πραγματοποιούνται μόνο επικυρωμένες. Χρησιμοποιείστε Ημερομηνία είναι η ημερομηνία της επικύρωσης της αποστολής (προγραμματισμένη ημερομηνία παράδοσης δεν είναι πάντα γνωστή). @@ -51,10 +50,10 @@ ActionsOnShipping=Εκδηλώσεις για την αποστολή LinkToTrackYourPackage=Σύνδεσμος για να παρακολουθείτε το πακέτο σας ShipmentCreationIsDoneFromOrder=Προς το παρόν, η δημιουργία μιας νέας αποστολής γίνεται από την κάρτα παραγγελίας. ShipmentLine=Σειρά αποστολής -ProductQtyInCustomersOrdersRunning=Ποσότητα προϊόντων σε ανοιχτές παραγγελίες πελατών -ProductQtyInSuppliersOrdersRunning=Ποσότητα προϊόντων σε ανοιχτές παραγγελίες προμηθευτών -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Ποσότητα προϊόντων από ανοιγμένες παραγγελίες του προμηθευτή που έχουν ήδη ληφθεί +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/el_GR/stocks.lang b/htdocs/langs/el_GR/stocks.lang index 8a8a964e2e7..2bad04330aa 100644 --- a/htdocs/langs/el_GR/stocks.lang +++ b/htdocs/langs/el_GR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Ετικέτα NumberOfUnit=Αριθμός μονάδων UnitPurchaseValue=Unit purchase price StockTooLow=Χρηματιστήριο πολύ χαμηλή -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Αξία PMPValue=Μέση σταθμική τιμή PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Το απόθεμα προϊόντος και από QtyDispatched=Ποσότητα αποστέλλονται QtyDispatchedShort=Απεσταλμένη ποσότητα QtyToDispatchShort=Ποσότητα για αποστολή -OrderDispatch=Χρηματιστήριο αποστολή +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Μείωση πραγματικών αποθεμάτων για τους πελάτες τιμολόγια / πιστωτικά επικύρωση σημειώσεις @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Αύξηση πραγματικού αποθέματα για τους προμηθευτές τιμολόγια / πιστωτικά επικύρωση σημειώσεις ReStockOnValidateOrder=Αύξηση πραγματικού αποθεμάτων σχετικά με τις παραγγελίες τους προμηθευτές επιδοκιμασίας -ReStockOnDispatchOrder=Αύξηση των αποθεμάτων σε πραγματικό εγχειρίδιο αποστολή σε αποθήκες, μετά από σειρά προμηθευτής που λαμβάνει +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Παραγγελία δεν έχει ακόμη ή όχι περισσότερο μια κατάσταση που επιτρέπει την αποστολή των προϊόντων σε αποθήκες αποθεμάτων. -StockDiffPhysicTeoric=Εξήγηση για τη διαφορά μεταξύ των φυσικών και θεωρητικών αποθεμάτων +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Δεν προκαθορισμένα προϊόντα για αυτό το αντικείμενο. Έτσι, δεν έχει αποστολή σε απόθεμα είναι απαραίτητη. DispatchVerb=Αποστολή StockLimitShort=Όριο για ειδοποιήσεις StockLimit=Όριο ειδοποιήσεων για το απόθεμα PhysicalStock=Φυσικό απόθεμα RealStock=Real Χρηματιστήριο +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Εικονική απόθεμα +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id αποθήκη DescWareHouse=Αποθήκη Περιγραφή LieuWareHouse=Αποθήκη Localisation @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Ποσότητα του προϊόντος %s σε απ NbOfProductAfterPeriod=Ποσότητα του προϊόντος %s σε απόθεμα πριν από την επιλεγμένη περίοδο (> %s) MassMovement=Μαζική μετακίνηση SelectProductInAndOutWareHouse=Επιλέξτε ένα προϊόν, ποσότητα, μια αποθήκη πηγή και μια αποθήκη στόχο, στη συνέχεια, κάντε κλικ στο "%s". Μόλις γίνει αυτό για όλες τις απαιτούμενες κινήσεις, κάντε κλικ στο "%s". -RecordMovement=Η εγγραφή μεταφέρθηκε +RecordMovement=Record transfer ReceivingForSameOrder=Αποδείξεις για αυτή την παραγγελία StockMovementRecorded=Οι κινήσεις των αποθεμάτων καταγράφονται RuleForStockAvailability=Κανόνες σχετικά με τις απαιτήσεις του αποθέματος @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Επεξεργασία +inventoryValidate=Επικυρώθηκε +inventoryDraft=Σε εξέλιξη +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Δημιουργία +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Φίλτρο κατηγορίας +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Προσθήκη +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Διαγραφή γραμμής +RegulateStock=Regulate Stock +ListInventory=Λίστα diff --git a/htdocs/langs/el_GR/stripe.lang b/htdocs/langs/el_GR/stripe.lang new file mode 100644 index 00000000000..f46a1b9ad46 --- /dev/null +++ b/htdocs/langs/el_GR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Μετά από τις διευθύνσεις URL είναι διαθέσιμοι να προσφέρουν μια σελίδα σε έναν πελάτη να προβεί σε πληρωμή σε Dolibarr αντικείμενα +PaymentForm=Έντυπο πληρωμής +WelcomeOnPaymentPage=Καλώς ήρθατε στην online υπηρεσία πληρωμών μας +ThisScreenAllowsYouToPay=Αυτή η οθόνη σας επιτρέπει να κάνετε μια online πληρωμή %s. +ThisIsInformationOnPayment=Πρόκειται για πληροφορίες σχετικά με την πληρωμή να γίνει +ToComplete=Για να ολοκληρώσετε +YourEMail=E-mail για να λάβετε επιβεβαίωση της πληρωμής +STRIPE_PAYONLINE_SENDEMAIL=Στείλτε e-mail προειδοποιήσεις μετά από πληρωμή (επιτυχία ή όχι) +Creditor=Πιστωτής +PaymentCode=Κωδικός Πληρωμής +StripeDoPayment=Μετάβαση στην πληρωμή +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Επόμενη +ToOfferALinkForOnlinePayment=URL για %s πληρωμής +ToOfferALinkForOnlinePaymentOnOrder=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για την παραγγελία +ToOfferALinkForOnlinePaymentOnInvoice=URL για να προσφέρει μια %s online διεπαφή χρήστη για την πληρωμή του τιμολογίου +ToOfferALinkForOnlinePaymentOnContractLine=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για μια γραμμή σύμβαση +ToOfferALinkForOnlinePaymentOnFreeAmount=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για ένα ελεύθερο ποσό +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL για να προσφέρει μια %s online διεπαφή χρήστη πληρωμή για μια συνδρομή μέλους +YouCanAddTagOnUrl=Μπορείτε επίσης να προσθέσετε την παράμετρο url & tag = αξία σε κανένα από αυτά τα URL (απαιτείται μόνο για την ελεύθερη πληρωμής) για να προσθέσετε το δικό σας σχόλιο ετικέτα πληρωμής. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Η σελίδα αυτή επιβεβαιώνει ότι η πληρωμή σας έχει καταγραφεί. Σας ευχαριστώ. +YourPaymentHasNotBeenRecorded=Η πληρωμή σας δεν έχει καταγραφεί και η συναλλαγή έχει ακυρωθεί. Σας ευχαριστώ. +AccountParameter=Παράμετροι λογαριασμού +UsageParameter=Παράμετροι χρήσης +InformationToFindParameters=Βοήθεια για να βρείτε %s τα στοιχεία του λογαριασμού σας +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Όνομα του πωλητή +CSSUrlForPaymentForm=Url CSS φύλλο στυλ για το έντυπο πληρωμής +MessageOK=Μήνυμα για την επικυρωμένη σελίδα επιστροφή πληρωμής +MessageKO=Μήνυμα για την ακύρωση σελίδα επιστροφή πληρωμής +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/el_GR/supplier_proposal.lang b/htdocs/langs/el_GR/supplier_proposal.lang index 9402af3af18..5d45cf202d0 100644 --- a/htdocs/langs/el_GR/supplier_proposal.lang +++ b/htdocs/langs/el_GR/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Αναζήτηση αιτήματος DraftRequests=Πρόχειρα αιτήματα SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Τελευταίες %s τροποποιημένες αιτήσεις τιμών -RequestsOpened=Opened price requests +RequestsOpened=Ανοιχτές αιτήσεις τιμών SupplierProposalArea=Περιοχή προτάσεων προμηθευτών SupplierProposalShort=Πρόταση προμηθευτή SupplierProposals=Προσφορές προμηθευτών @@ -23,7 +23,7 @@ ConfirmValidateAsk=Είστε σίγουροι ότι θέλετε να επικ DeleteAsk=Διαγραφή αίτησης ValidateAsk=Επικύρωση αίτησης SupplierProposalStatusDraft=Πρόχειρο (Χρειάζεται επικύρωση) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Επικυρωμένη (η αίτηση είναι ανοικτή) SupplierProposalStatusClosed=Κλειστό SupplierProposalStatusSigned=Αποδεκτή SupplierProposalStatusNotSigned=Απορρίφθηκε @@ -47,7 +47,7 @@ CommercialAsk=Αίτηση τιμής DefaultModelSupplierProposalCreate=Δημιουργία προεπιλεγμένων μοντέλων DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/el_GR/suppliers.lang b/htdocs/langs/el_GR/suppliers.lang index 5c8e126090d..3ac8ce6bd88 100644 --- a/htdocs/langs/el_GR/suppliers.lang +++ b/htdocs/langs/el_GR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Ορισμένα υπο-προϊόντα δεν έχουν καμία τιμή που να ορίζεται AddSupplierPrice=Προσθήκη τιμής αγοράς ChangeSupplierPrice=Αλλαγή τιμής αγοράς +SupplierPrices=Τιμές Προμηθευτών ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ο προμηθευτής αναφοράς έχει ήδη συσχετιστεί με μια αναφορά: %s NoRecordedSuppliers=Δεν υπάρχουν προμηθευτές SupplierPayment=Πληρωμή προμηθευτή @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Λάθος ποσότητα ReputationForThisProduct=Reputation BuyerName=Όνομα αγοραστή AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Τιμές Προμηθευτών diff --git a/htdocs/langs/el_GR/trips.lang b/htdocs/langs/el_GR/trips.lang index 0c8988c426b..ac58e5c9802 100644 --- a/htdocs/langs/el_GR/trips.lang +++ b/htdocs/langs/el_GR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Λίστα φόρων TypeFees=Types of fees ShowTrip=Εμφάνιση αναφοράς εξόδων NewTrip=Νέα αναφορά εξόδων -CompanyVisited=Έγινε επίσκεψη σε εταιρία/οργανισμό +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Σύνολο χλμ DeleteTrip=Διαγραφή αναφοράς εξόδων ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Ημερομηνία Επικύρωσης DATE_CANCEL=Ημερομηνία ακύρωσης DATE_PAIEMENT=Ημερομηνία πληρωμής BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Επικύρωση και υποβολή για έγκριση ValidatedWaitingApproval=Επικύρωση (αναμονή για έγκριση) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/el_GR/users.lang b/htdocs/langs/el_GR/users.lang index cc14b9414fa..b1c85192abb 100644 --- a/htdocs/langs/el_GR/users.lang +++ b/htdocs/langs/el_GR/users.lang @@ -19,12 +19,12 @@ DeleteAUser=Διαγραφή ενός χρήστη EnableAUser=Ενεργοποίηση ενός χρήστη DeleteGroup=Διαγραφή DeleteAGroup=Διαγραφή μιας ομάδας -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Είστε σίγουρος ότι θέλετε να απενεργοποιήσετε το χρήστη %s; +ConfirmDeleteUser=Είστε σίγουρος ότι θέλετε να διαγράψετε το χρήστη %s; +ConfirmDeleteGroup=Είστε σίγουρος ότι θέλετε να διαγράψετε την ομάδα %s; +ConfirmEnableUser=Είστε σίγουρος ότι θέλετε να ενεργοποιήσετε τον χρήστη %s; +ConfirmReinitPassword=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο κωδικό για τον χρήστη %s; +ConfirmSendNewPassword=Είστε σίγουρος ότι θέλετε να δημιουργήσετε και να αποστείλετε καινούριο κωδικό για τον χρήστη %s; NewUser=Νέος χρήστης CreateUser=Δημιουργία χρήστη LoginNotDefined=Το όνομα χρήστη δεν είναι καθορισμένο @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=Αυτή η φόρμα σας επιτρέπει να δημιουργήσετε ένα χρήστη στο εσωτερικό της εταιρείας / ίδρυμά σας. Για να δημιουργήσετε έναν εξωτερικό χρήστη (πελάτη, προμηθευτή, ...), χρησιμοποιήστε το κουμπί «Δημιουργία Dolibarr χρήστη από την κάρτα επαφής Πελ./Προμ. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Δημιουργήθηκε χρήστη θα είναι ένας εσωτερικός χρήστης (επειδή δεν συνδέεται με ένα συγκεκριμένο τρίτο μέρος) @@ -82,8 +82,8 @@ UserDeleted=User %s removed NewGroupCreated=Group %s created GroupModified=Ομάδα %s τροποποιημένη GroupDeleted=Group %s removed -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? +ConfirmCreateContact=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτή την επαφή; +ConfirmCreateLogin=Είστε σίγουρος ότι θέλετε να δημιουργήσετε καινούριο λογαριασμό Dolibarr γι΄ αυτό το μέλος; ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? LoginToCreate=Login to create NameToCreate=Name of third party to create diff --git a/htdocs/langs/el_GR/website.lang b/htdocs/langs/el_GR/website.lang index dcdd676dfdc..05e664122e3 100644 --- a/htdocs/langs/el_GR/website.lang +++ b/htdocs/langs/el_GR/website.lang @@ -6,23 +6,26 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=Περιεχόμενο CSS -MediaFiles=Media library +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +MediaFiles=Βιβλιοθήκη πολυμέσων EditCss=Edit Style/CSS EditMenu=Επεξεργασία μενού EditPageMeta=Edit Meta -EditPageContent=Edit Content -Website=Web site -Webpage=Web page -AddPage=Add page -PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added -ViewSiteInNewTab=View site in new tab -ViewPageInNewTab=View page in new tab -SetAsHomePage=Set as Home page +EditPageContent=Επεξεργασία περιεχομένου +Website=Ιστοτοπός +Webpage=Ιστοσελίδα +AddPage=Προσθήκη σελίδας +HomePage=Home Page +PreviewOfSiteNotYetAvailable=Η προεπισκόπιση της ιστοσελίδας σας %s δεν είναι δυνατή. Πρέπει πρώτα να προσθέσετε μια σελίδα. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. +PageDeleted=Η σελίδα '%s' από τον ιστότοπο %s διαγράφηκε +PageAdded=Η σελίδα '%s' προστέθηκς +ViewSiteInNewTab=Προβολή χώρου σε νέα καρτέλα +ViewPageInNewTab=Προβολή σελίδας σε νέα καρτέλα +SetAsHomePage=Ορισμός σαν αρχική σελίδα RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/el_GR/withdrawals.lang b/htdocs/langs/el_GR/withdrawals.lang index 330c2540ee6..43a2784b39d 100644 --- a/htdocs/langs/el_GR/withdrawals.lang +++ b/htdocs/langs/el_GR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Ποσό για την απόσυρση WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Δεν τιμολόγιο του πελάτη στη λειτουργία πληρωμής "αποσύρει" περιμένει. Πηγαίνετε στο "Ανάληψη" καρτέλα στο τιμολόγιο κάρτα για να υποβάλουν σχετική αίτηση. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Υπεύθυνος χρήστη WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Λόγος απόρριψης RefusedInvoicing=Χρέωσης για την απόρριψη NoInvoiceRefused=Μην φορτίζετε την απόρριψη InvoiceRefused=Τιμολόγιο απορρίφθηκε (Φορτίστε την απόρριψη στον πελάτη) +StatusDebitCredit=Status debit/credit StatusWaiting=Αναμονή StatusTrans=Απεσταλμένο StatusCredited=Πιστωθεί diff --git a/htdocs/langs/en_AU/bills.lang b/htdocs/langs/en_AU/bills.lang index 6174b75c61b..05d48a95c5f 100644 --- a/htdocs/langs/en_AU/bills.lang +++ b/htdocs/langs/en_AU/bills.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - bills -ConfirmDeletePayment=Are you sure you want to delete this payment ? PaymentTypeCHQ=Cheque PaymentTypeShortCHQ=Cheque BankCode=BSB diff --git a/htdocs/langs/en_AU/oauth.lang b/htdocs/langs/en_AU/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/en_AU/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/en_AU/printing.lang b/htdocs/langs/en_AU/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/en_AU/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/en_CA/oauth.lang b/htdocs/langs/en_CA/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/en_CA/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/en_CA/printing.lang b/htdocs/langs/en_CA/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/en_CA/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/en_GB/accountancy.lang b/htdocs/langs/en_GB/accountancy.lang new file mode 100644 index 00000000000..4f1dbace022 --- /dev/null +++ b/htdocs/langs/en_GB/accountancy.lang @@ -0,0 +1,136 @@ +# Dolibarr language file - Source file is en_US - accountancy +ACCOUNTING_EXPORT_PIECE=Export the number of pieces +ConfigAccountingExpert=Configuration for the financial expert module +Journalization=Journalisation +BackToChartofaccounts=Return to chart of accounts +OverviewOfAmountOfLinesNotBound=Overview of number of lines not linked to finance account +OverviewOfAmountOfLinesBound=Overview of number of lines already linked to finance account +DeleteCptCategory=Remove finance account from group +ConfirmDeleteCptCategory=Are you sure you want to remove this finance account from the account group? +AccountancyAreaDescIntro=Usage of the accountancy module is done in several steps: +AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting the correct default finance account when posting the journal (writing records in Journals and General ledger) +AccountancyAreaDescVat=STEP %s: Define finance accounts for each VAT Rate. For this, use the menu entry %s. +AccountancyAreaDescExpenseReport=STEP %s: Define default finance accounts for each type of expense report. For this, use the menu entry %s. +AccountancyAreaDescSal=STEP %s: Define default finance accounts for payment of salaries. For this, use the menu entry %s. +AccountancyAreaDescContrib=STEP %s: Define default finance accounts for special expenses (miscellaneous taxes). For this, use the menu entry %s. +AccountancyAreaDescDonation=STEP %s: Define default finance accounts for donations. For this, use the menu entry %s. +AccountancyAreaDescMisc=STEP %s: Define default finance accounts for miscellaneous transactions. For this, use the menu entry %s. +AccountancyAreaDescLoan=STEP %s: Define default finance accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescBank=STEP %s: Define finance accounts for each bank accounts. For this, go to the card of each finance account. You can start from page %s. +AccountancyAreaDescProd=STEP %s: Define finance accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescBind=STEP %s: Checking links between existing %s lines and finance account is done, so application will be able to journalise transactions in Ledger with one click. To complete missing links use the menu entry %s. +AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click button %s. +Addanaccount=Add a financial account +AccountAccounting=Financial Account +SubledgerAccount=Sub-ledger Account +ShowAccountingAccount=Show finance account +ShowAccountingJournal=Show finance journal +AccountAccountingSuggest=Suggested Financial Account +ProductsBinding=Product accounts +Ventilation=Link to accounts +CustomersVentilation=Linked Customer invoice +SuppliersVentilation=Linked Supplier Invoice +ExpenseReportsVentilation=Expense report links +UpdateMvts=Modify a transaction +WriteBookKeeping=Journalise transactions in Ledger +CAHTF=Total Supplier purchases before tax +InvoiceLines=Lines of invoices to link +InvoiceLinesDone=Linked lines of invoices +ExpenseReportLines=Lines of expense reports to link +ExpenseReportLinesDone=Linked lines of expense reports +IntoAccount=Link line with the Financial account +Ventilate=Link +EndProcessing=Process terminated +Lineofinvoice=Invoice line +NoAccountSelected=No finance account selected +VentilatedinAccount=Linked successfully to the financial account +NotVentilatedinAccount=Not linked to the financial account +XLineSuccessfullyBinded=%s products/services successfully linked to an account +XLineFailedToBeBinded=%s products/services were not linked to any finance account +ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to link shown by page (maximum recommended : 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin sorting the page "Links to do" by the most recent elements +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin sorting the page "Links done" by the most recent elements +ACCOUNTING_LENGTH_GACCOUNT=Length of the General Ledger accounts (If you set value to 6 here, the account '706' will appear as '706000' on screen) +ACCOUNTING_LENGTH_AACCOUNT=Length of the third party financial accounts (If you set value to 6 here, the account '401' will appear as '401000' on screen) +ACCOUNTING_MANAGE_ZERO=Allows different number of zeros at the end of a finance account. Needed by some countries (like Switzerland). Left off (default), you can set the 2 following parameters to ask application to add a virtual zero. +ACCOUNTING_SELL_JOURNAL=Sales journal +ACCOUNTING_MISCELLANEOUS_JOURNAL=General journal +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Financial Transfer account +ACCOUNTING_ACCOUNT_SUSPENSE=Suspense account +DONATION_ACCOUNTINGACCOUNT=Finance account to register donations +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Default purchases account (used if not defined in the product sheet) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Default sales account (used if not defined in the product sheet) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Default services purchase account (used if not defined in the service sheet) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Default services sales account (used if not defined in the service sheet) +Code_tiers=Third party +Labelcompte=Account name +Sens=Meaning +NumPiece=Item number +AccountingCategory=Finance account groups +GroupByAccountAccounting=Group by finance account +DelBookKeeping=Delete record in the Ledger +DescJournalOnlyBindedVisible=This is a view of records that are linked to product/service accounts and can be recorded into the Ledger. +FeeAccountNotDefined=Account for fees not defined +ThirdPartyAccount=Third party account +NumMvts=Transaction Number +ErrorDebitCredit=Debit and Credit fields cannot have values at the same time +AddCompteFromBK=Add finance accounts to the group +ReportThirdParty=List third party accounts +DescThirdPartyReport=View the list of the third party customers and suppliers and their financial accounts +ListAccounts=List of the financial accounts +Pcgsubtype=Sub-class of account +DescVentilCustomer=View the list of customer invoice lines linked (or not) to a product financial account +DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the links between your invoice lines and the finance account of your chart of accounts, with just one click of the button "%s". If account was not set on product/service cards or if you still have some lines not linked to any account, you will have to make a manual link from the menu "%s". +DescVentilDoneCustomer=View a detailed list of invoices, customers and their product financial account +DescVentilTodoCustomer=Link invoice lines not already linked with a product finance account +ChangeAccount=Change the product/service finance account for selected lines with the following finance account: +DescVentilSupplier=View a list of supplier invoice lines linked or not yet linked to a product finance account +DescVentilDoneSupplier=View a list of the lines of invoices, suppliers and their finance account +DescVentilTodoExpenseReport=Link expense report lines not already linked with a fee finance account +DescVentilExpenseReport=View here the list of expense report lines linked (or not) to a fee finance account +DescVentilExpenseReportMore=If you setup an account on the type of expense report lines, the application will be able to make all the links between your expense report lines and the finance account in your chart of accounts, with one click with the button "%s". If the account was not set in the fees dictionary or if you still have some lines not linked to any account, you will have to make a manual link from the menu "%s". +DescVentilDoneExpenseReport=View here the list of the lines of expense reports and their fees account +ValidateHistory=Link Automatically +AutomaticBindingDone=Automatic link done +ErrorAccountancyCodeIsAlreadyUse=Error, you cannot delete this finance account because it is used +MvtNotCorrectlyBalanced=Posting does not balance. Credit = %s. Debit = %s +FicheVentilation=Link card +GeneralLedgerIsWritten=Transactions are written to the Ledger +GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be processed. If there is no other error message, this is probably because they had already been processed. +NoNewRecordSaved=No new records processed +ListOfProductsWithoutAccountingAccount=List of products not linked to any finance account +ChangeBinding=Change the link +AddAccountFromBookKeepingWithNoCategories=Add account already used with no categories +CategoryDeleted=Category for the finance account has been removed +AccountingJournals=Finance journals +AccountingJournal=Finance journal +NewAccountingJournal=New finance journal +ShowAccoutingJournal=Show finance journal +AccountingJournalType1=Various operations +ErrorAccountingJournalIsAlreadyUse=This journal is already in use +Modelcsv_CEGID=Export towards CEGID Expert Accounting +Modelcsv_COALA=Export to Sage +Modelcsv_bob50=Export to Sage BOB 50 +Modelcsv_ciel=Export to Sage Ciel Compta or Compta Evolution +Modelcsv_quadratus=Export to Quadratus QuadraCompta +Modelcsv_ebp=Export to EBP +Modelcsv_cogilog=Export to Cogilog +Modelcsv_agiris=Export to Agiris (Test) +ChartofaccountsId=Chart of accounts ID +InitAccountancyDesc=This page can be used to initialise a finance account on products and services that do not have an account defined for sales and purchases. +DefaultBindingDesc=This page can be used to set a default account for linking transaction records about payments, salaries, donations, taxes and vat when no specific finance account had already been set. +OptionModeProductSell=Type of sale +OptionModeProductBuy=Type of purchase +OptionModeProductSellDesc=Show all products with finance accounts for sales. +OptionModeProductBuyDesc=Show all products with finance accounts for purchases. +CleanFixHistory=Remove accountancy code from lines that do not exist in charts of account +CleanHistory=Reset all links for selected year +ValueNotIntoChartOfAccount=This account does not exist in the chart of account +Range=Range of finance accounts +SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup were not done, please complete them +ErrorNoAccountingCategoryForThisCountry=No finance account group available for country %s (See Home - Setup - Dictionary) +ExportNotSupported=The export format is not supported on this page +BookeppingLineAlreayExists=Lines already exist in bookkeeping +Binded=Lines linked +ToBind=Lines to link +WarningReportNotReliable=Warning: This report is not based on the Ledger, so does not contain transactions modified manually in the Ledger. It will be replaced by a more complete report in a future version. diff --git a/htdocs/langs/en_GB/admin.lang b/htdocs/langs/en_GB/admin.lang index 7a5a4f3a4d8..5c56c9dd01f 100644 --- a/htdocs/langs/en_GB/admin.lang +++ b/htdocs/langs/en_GB/admin.lang @@ -32,8 +32,11 @@ ImportPostgreSqlDesc=To import a backup file, you must use the pg_restore comman FileNameToGenerate=File name to be generated\n CommandsToDisableForeignKeysForImportWarning=This is mandatory if you want to restore your sql dumps later ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Module330Desc=Bookmark management Permission300=Read barcodes Permission301=Create/modify barcodes Permission302=Delete barcodes +DictionaryAccountancyCategory=Finance account groups +DictionaryAccountancyJournal=Finance journals GenbarcodeLocation=Barcode generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode ToGenerateCodeDefineAutomaticRuleFirst=To be able to automatically generate codes, you must first set a rule to define the barcode number. diff --git a/htdocs/langs/en_GB/bills.lang b/htdocs/langs/en_GB/bills.lang index 60b6f51bc40..d89326427cb 100644 --- a/htdocs/langs/en_GB/bills.lang +++ b/htdocs/langs/en_GB/bills.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - bills InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

Note: Only an invoice with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. -ConfirmDeletePayment=Are you sure you want to delete this payment ? ErrorVATIntraNotConfigured=Intracommunitary VAT number not yet defined EscompteOffered=Dscnt.offered (pay.befor.term) PaymentTypeCHQ=Cheque diff --git a/htdocs/langs/en_GB/bookmarks.lang b/htdocs/langs/en_GB/bookmarks.lang new file mode 100644 index 00000000000..1fdbe1a117f --- /dev/null +++ b/htdocs/langs/en_GB/bookmarks.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - bookmarks +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window +BookmarksManagement=Manage Bookmarks diff --git a/htdocs/langs/en_GB/cashdesk.lang b/htdocs/langs/en_GB/cashdesk.lang new file mode 100644 index 00000000000..9ab826c7338 --- /dev/null +++ b/htdocs/langs/en_GB/cashdesk.lang @@ -0,0 +1,9 @@ +# Dolibarr language file - Source file is en_US - cashdesk +CashDeskBankCash=Cash on Hand Account +CashDeskBankCB=Card account +CashDeskBankCheque=Current account +NewSell=New sale +RestartSelling=Go back to sales +NoProductFound=No product found +NoArticle=No product +UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so users that use POS need to have permission to edit stock. diff --git a/htdocs/langs/en_GB/oauth.lang b/htdocs/langs/en_GB/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/en_GB/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/en_GB/printing.lang b/htdocs/langs/en_GB/printing.lang index 46edbef00e4..257c7849c29 100644 --- a/htdocs/langs/en_GB/printing.lang +++ b/htdocs/langs/en_GB/printing.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - printing IPP_Color=Colour -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/en_GB/trips.lang b/htdocs/langs/en_GB/trips.lang index 4b790783bd6..31e58b7f935 100644 --- a/htdocs/langs/en_GB/trips.lang +++ b/htdocs/langs/en_GB/trips.lang @@ -1,6 +1,5 @@ # Dolibarr language file - Source file is en_US - trips TripsAndExpensesStatistics=Expense report statistics -CompanyVisited=Company visited FeesKilometersOrAmout=Amount or Miles TripNDF=Information expense report TF_METRO=Tube diff --git a/htdocs/langs/en_GB/users.lang b/htdocs/langs/en_GB/users.lang index c8db0252aeb..e2ca89d6287 100644 --- a/htdocs/langs/en_GB/users.lang +++ b/htdocs/langs/en_GB/users.lang @@ -4,8 +4,6 @@ CreateGroup=Create a group RemoveFromGroup=Remove from a group NonAffectedUsers=Non-assigned users UsePersonalValue=Use a personal choice -CreateInternalUserDesc=This form allows you to create an internal user for your company. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company.
An external user is a customer, supplier or other organisation.

In both cases, permissions defines their rights on Dolibarr, also an external user can have a different menu manager than an internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted through inherited rights from one of the user groups. UserWillBeInternalUser=Created user will be an internal user (because they are not linked to a particular third party) UserWillBeExternalUser=Created user will be an external user (because they are linked to a particular third party) diff --git a/htdocs/langs/en_GB/website.lang b/htdocs/langs/en_GB/website.lang index e0d38a31529..3bed7990483 100644 --- a/htdocs/langs/en_GB/website.lang +++ b/htdocs/langs/en_GB/website.lang @@ -2,6 +2,3 @@ WebsiteSetupDesc=Create here as many entries for websites as you need. Then go into menu Websites to edit them. Website=Website PreviewOfSiteNotYetAvailable=Preview of your website %s is not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has no content yet or the cache file .tpl.php was removed. Edit the content of the page to solve this. -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, enter here the virtual hostname so the preview can be done using this direct web server access as well as using the Dolibarr server. -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by the Dolibarr server so it does not need an extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenience is that pages are using paths of your Dolibarr.
URL of %s served by Dolibarr:
%s diff --git a/htdocs/langs/en_GB/withdrawals.lang b/htdocs/langs/en_GB/withdrawals.lang index 406c0114459..3440cbbbe17 100644 --- a/htdocs/langs/en_GB/withdrawals.lang +++ b/htdocs/langs/en_GB/withdrawals.lang @@ -3,7 +3,6 @@ NotPossibleForThisStatusOfWithdrawReceiptORLine=Not yet possible. Payment status NbOfInvoiceToWithdraw=No. of invoices with direct debit orders NbOfInvoiceToWithdrawWithInfo=No. of customer invoices with direct debit payment orders having defined bank account information AmountToWithdraw=Amount to pay -NoInvoiceToWithdraw=No customer invoice in payment mode "payment" is waiting. Go to 'Payment' tab on invoice card to make a request. NoInvoiceCouldBeWithdrawed=No invoice paid successfully. Check that the invoice is on a company with a valid BAN. ClassCreditedConfirm=Are you sure you want to classify this Payment receipt as credited on your bank account? WithdrawalRefused=Payment refused diff --git a/htdocs/langs/en_IN/admin.lang b/htdocs/langs/en_IN/admin.lang index 1c53b65c99c..9e01f754dbe 100644 --- a/htdocs/langs/en_IN/admin.lang +++ b/htdocs/langs/en_IN/admin.lang @@ -2,3 +2,18 @@ AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir +Module20Name=Quotations +Module20Desc=Management of quotations +Permission21=Read quotations +Permission22=Create/modify quotations +Permission24=Validate quotations +Permission25=Send quotations +Permission26=Close quotations +Permission27=Delete quotations +Permission28=Export quotations +PropalSetup=Quotation module setup +ProposalsNumberingModules=Quotation numbering models +ProposalsPDFModules=Quotation documents models +FreeLegalTextOnProposal=Free text on quotations +WatermarkOnDraftProposal=Watermark on draft quotations (none if empty) +FCKeditorForProductDetails=WYSIWIG creation/edition of products details lines for all entities (quotations, orders, invoices, etc...). Warning: Using this option for this case is seriously not recommended as it can create problems with special characters and page formating when building PDF files. diff --git a/htdocs/langs/en_IN/agenda.lang b/htdocs/langs/en_IN/agenda.lang new file mode 100644 index 00000000000..20897c62f40 --- /dev/null +++ b/htdocs/langs/en_IN/agenda.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - agenda +PropalClosedSignedInDolibarr=Quotation %s signed +PropalClosedRefusedInDolibarr=Quotation %s refused +PropalValidatedInDolibarr=Quotation %s validated +PropalClassifiedBilledInDolibarr=Quotation %s classified billed +ProposalSentByEMail=Quotation %s sent by EMail diff --git a/htdocs/langs/en_IN/bills.lang b/htdocs/langs/en_IN/bills.lang new file mode 100644 index 00000000000..762ca939ebb --- /dev/null +++ b/htdocs/langs/en_IN/bills.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - bills +RelatedCommercialProposals=Related quotations diff --git a/htdocs/langs/en_IN/boxes.lang b/htdocs/langs/en_IN/boxes.lang new file mode 100644 index 00000000000..8cdaff7564e --- /dev/null +++ b/htdocs/langs/en_IN/boxes.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - boxes +BoxLastProposals=Latest quotations +BoxGlobalActivity=Global activity (invoices, quotations, orders) +NoRecordedProposals=No recorded quotation +BoxProposalsPerMonth=Quotations per month +ForProposals=Quotations diff --git a/htdocs/langs/en_IN/commercial.lang b/htdocs/langs/en_IN/commercial.lang new file mode 100644 index 00000000000..5f75e43defa --- /dev/null +++ b/htdocs/langs/en_IN/commercial.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - commercial +DraftPropals=Draft quotations diff --git a/htdocs/langs/en_IN/companies.lang b/htdocs/langs/en_IN/companies.lang new file mode 100644 index 00000000000..996e0e97ec7 --- /dev/null +++ b/htdocs/langs/en_IN/companies.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - companies +OverAllProposals=Quotations +ContactForProposals=Quotation's contact +NoContactForAnyProposal=This contact is not a contact for any quotation diff --git a/htdocs/langs/en_IN/compta.lang b/htdocs/langs/en_IN/compta.lang new file mode 100644 index 00000000000..6e6975592c2 --- /dev/null +++ b/htdocs/langs/en_IN/compta.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - compta +ProposalStats=Statistics on quotations diff --git a/htdocs/langs/en_IN/ecm.lang b/htdocs/langs/en_IN/ecm.lang new file mode 100644 index 00000000000..5df451bb632 --- /dev/null +++ b/htdocs/langs/en_IN/ecm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - ecm +ECMDocsByProposals=Documents linked to quotations diff --git a/htdocs/langs/en_IN/install.lang b/htdocs/langs/en_IN/install.lang new file mode 100644 index 00000000000..7384fe6fdc4 --- /dev/null +++ b/htdocs/langs/en_IN/install.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - install +MigrationProposal=Data migration for quotations diff --git a/htdocs/langs/en_IN/main.lang b/htdocs/langs/en_IN/main.lang index 2e691473326..80f13de139f 100644 --- a/htdocs/langs/en_IN/main.lang +++ b/htdocs/langs/en_IN/main.lang @@ -4,18 +4,23 @@ FONTFORPDF=helvetica FONTSIZEFORPDF=10 SeparatorDecimal=. SeparatorThousand=, -FormatDateShort=%m/%d/%Y -FormatDateShortInput=%m/%d/%Y -FormatDateShortJava=MM/dd/yyyy -FormatDateShortJavaInput=MM/dd/yyyy -FormatDateShortJQuery=mm/dd/yy -FormatDateShortJQueryInput=mm/dd/yy +FormatDateShort=%d/%m/%Y +FormatDateShortInput=%d/%m/%Y +FormatDateShortJava=dd/MM/yyyy +FormatDateShortJavaInput=dd/MM/yyyy +FormatDateShortJQuery=dd/mm/yy +FormatDateShortJQueryInput=dd/mm/yy FormatHourShortJQuery=HH:MI FormatHourShort=%I:%M %p FormatHourShortDuration=%H:%M FormatDateTextShort=%b %d, %Y FormatDateText=%B %d, %Y -FormatDateHourShort=%m/%d/%Y %I:%M %p -FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p +FormatDateHourShort=%d/%m/%Y %I:%M %p +FormatDateHourSecShort=%d/%m/%Y %I:%M:%S %p FormatDateHourTextShort=%b %d, %Y, %I:%M %p FormatDateHourText=%B %d, %Y, %I:%M %p +CommercialProposalsShort=Quotations +LinkToProposal=Link to quotation +LinkToSupplierProposal=Link to supplier quotation +SearchIntoCustomerProposals=Customer quotations +SearchIntoSupplierProposals=Supplier quotations diff --git a/htdocs/langs/en_IN/oauth.lang b/htdocs/langs/en_IN/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/en_IN/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/en_IN/other.lang b/htdocs/langs/en_IN/other.lang new file mode 100644 index 00000000000..47ee7b86fa1 --- /dev/null +++ b/htdocs/langs/en_IN/other.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - other +Notify_PROPAL_VALIDATE=Quotation validated +Notify_PROPAL_SENTBYMAIL=Quotation sent by mail +NumberOfProposals=Number of quotations +NumberOfUnitsProposals=Number of units on quotations diff --git a/htdocs/langs/en_IN/printing.lang b/htdocs/langs/en_IN/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/en_IN/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/en_IN/projects.lang b/htdocs/langs/en_IN/projects.lang new file mode 100644 index 00000000000..bece63d2190 --- /dev/null +++ b/htdocs/langs/en_IN/projects.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - projects +OppStatusPROPO=Quotation diff --git a/htdocs/langs/en_IN/propal.lang b/htdocs/langs/en_IN/propal.lang new file mode 100644 index 00000000000..716ccc53d3d --- /dev/null +++ b/htdocs/langs/en_IN/propal.lang @@ -0,0 +1,21 @@ +# Dolibarr language file - Source file is en_US - propal +Proposals=Quotations +Proposal=Quotation +ProposalShort=Quotation +ProposalsDraft=Draft quotations +ProposalsOpened=Open quotations +Prop=Quotations +CommercialProposal=Quotation +ProposalCard=Quotation card +NewProp=New quotation +NewPropal=New quotation +DeleteProp=Delete quotation +ValidateProp=Validate quotation +AddProp=Create quotation +LastPropals=Latest %s quotations +AllPropals=All quotations +SearchAProposal=Search a quotation +ShowPropal=Show quotation +ActionsOnPropal=Events on quotation +DatePropal=Date of quotation +ProposalLine=Quotation line diff --git a/htdocs/langs/en_IN/supplier_proposal.lang b/htdocs/langs/en_IN/supplier_proposal.lang new file mode 100644 index 00000000000..586c5d5ceb9 --- /dev/null +++ b/htdocs/langs/en_IN/supplier_proposal.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - supplier_proposal +SupplierProposals=Supplier quotations +SupplierProposalsShort=Supplier quotations +ListOfSupplierProposals=List of supplier quotation requests diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 8307fdcebf3..859fe1cca12 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -210,7 +210,6 @@ AccountingJournals=Accounting journals AccountingJournal=Accounting journal NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal -Code=Code Nature=Nature AccountingJournalType1=Various operation AccountingJournalType2=Sales @@ -221,8 +220,6 @@ AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Exports -Export=Export ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated diff --git a/htdocs/langs/es_AR/oauth.lang b/htdocs/langs/es_AR/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_AR/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_AR/printing.lang b/htdocs/langs/es_AR/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_AR/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_BO/oauth.lang b/htdocs/langs/es_BO/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_BO/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_BO/printing.lang b/htdocs/langs/es_BO/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_BO/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_CL/accountancy.lang b/htdocs/langs/es_CL/accountancy.lang index 7b3d42d1461..85917fc5e7a 100644 --- a/htdocs/langs/es_CL/accountancy.lang +++ b/htdocs/langs/es_CL/accountancy.lang @@ -3,10 +3,17 @@ ACCOUNTING_EXPORT_SEPARATORCSV=Separador de columna en archivo exportado ACCOUNTING_EXPORT_DATE=Formato de fecha en archivo exportado ACCOUNTING_EXPORT_PIECE=Número de pieza exportada ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportar con cuenta global +ACCOUNTING_EXPORT_LABEL=Etiqueta de exportación +ACCOUNTING_EXPORT_AMOUNT=Monto de exportación +ACCOUNTING_EXPORT_DEVISE=Moneda de exportación +Selectformat=Seleccione el formato para el archivo +ACCOUNTING_EXPORT_PREFIX_SPEC=Especifíque el prefijo para el nombre de archivo ConfigAccountingExpert=Configuración del módulo Contabilidad Experta +Journaux=Revistas JournalFinancial=Diarios financieras BackToChartofaccounts=Volver al gráfico de cuentas Chartofaccounts=Gráfico de cuentas +Selectchartofaccounts=Seleccione gráfico de cuentas activo Addanaccount=Agregar cuenta contable ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario misceláneo Code_tiers=Socio de Negocio @@ -21,3 +28,4 @@ ErrorAccountancyCodeIsAlreadyUse=No puede eliminar esta cuenta porque está sien OptionsDeactivatedForThisExportModel=Opciones desactivadas para este modelo de exportación Selectmodelcsv=Seleccione un modelo Modelcsv_normal=Exportación clasica +Modelcsv_CEGID=Exportación hacia CEGID Expert Comptabilité diff --git a/htdocs/langs/es_CL/admin.lang b/htdocs/langs/es_CL/admin.lang index 2a0da2ec1a3..87ab27f19fd 100644 --- a/htdocs/langs/es_CL/admin.lang +++ b/htdocs/langs/es_CL/admin.lang @@ -1,10 +1,22 @@ # Dolibarr language file - Source file is en_US - admin +VersionProgram=Versión del programa +VersionLastInstall=Versión de instalación inicial +VersionLastUpgrade=Actualización a versión más reciente +VersionUnknown=Desconocido +VersionRecommanded=Recomendado +SessionId=ID de sesión +SessionSaveHandler=Manejador para guardar sesiones +SessionSavePath=Localización de la sesión de almacenamiento +GUISetup=Visualización +SetupArea=Área de configuración +Space=Espacio AntiVirusCommandExample=Example for ClamWin: c:\\Progra~1\\ClamWin\\bin\\clamscan.exe
Example for ClamAv: /usr/bin/clamscan AntiVirusParamExample=Example for ClamWin: --database="C:\\Program Files (x86)\\ClamWin\\lib" +AllMenus=Todo +SetupShort=Configurar ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir Module20Name=Cotizaciones Module20Desc=Gestión de cotizaciones/propuestas comerciales -Module1400Name=Contabilidad Permission21=Consultar cotizaciones Permission22=Crear/modificar cotizaciones Permission24=Validar cotizaciones diff --git a/htdocs/langs/es_CL/bookmarks.lang b/htdocs/langs/es_CL/bookmarks.lang new file mode 100644 index 00000000000..8b386412649 --- /dev/null +++ b/htdocs/langs/es_CL/bookmarks.lang @@ -0,0 +1,11 @@ +# Dolibarr language file - Source file is en_US - bookmarks +AddThisPageToBookmarks=Agregar página actual a marcadores +ListOfBookmarks=Lista de marcadores +EditBookmarks=Listar/editar Marcadores +ShowBookmark=Mostrar marcador +OpenANewWindow=Abrir en nueva ventana +ReplaceWindow=Reemplazar ventana actual +BehaviourOnClick=Comportamiento cuando se selecciona una URL de marcador +SetHereATitleForLink=Establecer un título para el marcador +UseAnExternalHttpLinkOrRelativeDolibarrLink=Utilizar una URL http externa o una URL relativa de Dolibarr +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escoger si la página enlazada debe abrirse en una nueva ventana o no diff --git a/htdocs/langs/es_CL/companies.lang b/htdocs/langs/es_CL/companies.lang index ba5e8b7d802..99e988d7faf 100644 --- a/htdocs/langs/es_CL/companies.lang +++ b/htdocs/langs/es_CL/companies.lang @@ -1,4 +1,29 @@ # Dolibarr language file - Source file is en_US - companies -Prospect=Cliente +ErrorCompanyNameAlreadyExists=El nombre de la empresa %s ya existe. Elija otro. +ErrorSetACountryFirst=Establecer primero el país +SelectThirdParty=Seleccione un tercero +ConfirmDeleteCompany=¿Está seguro de que desea eliminar esta empresa y toda la información heredada? +DeleteContact=Eliminar un contacto/dirección +ConfirmDeleteContact=¿Está seguro de que desea eliminar este contacto y toda la información heredada? +MenuNewProspect=Nuevo prospecto +MenuNewPrivateIndividual=Nueva privada individual +NewCompany=Nueva empresa (prospecto, cliente, proveedor) +NewThirdParty=Nuevo tercero (prospecto, cliente, proveedor) +ProspectionArea=Área de Prospección +Call=Llamada +Town=Ciudad +Poste=Posición +VATIsUsed=Usa IVA +VATIsNotUsed=No usa IVA +CopyAddressFromSoc=Rellenar dirección con dirección de tercero +OverAllProposals=Cotizaciones +WrongCustomerCode=Código de cliente inválido +WrongSupplierCode=Código de proveedor inválido +ProfId1GB=Número de Registro +Prospect=Prospectar +CustomerCard=Tarjeta Cliente ContactForProposals=Contacto de cotizaciones NoContactForAnyProposal=Este contacto no es contacto de ninguna cotización +DolibarrLogin=Ingreso Dolibbarr +InActivity=Abierto +LeopardNumRefModelDesc=El código es libre. Este código se puede modificar en cualquier momento. diff --git a/htdocs/langs/es_CL/compta.lang b/htdocs/langs/es_CL/compta.lang index acda3729a75..efc65af3d5e 100644 --- a/htdocs/langs/es_CL/compta.lang +++ b/htdocs/langs/es_CL/compta.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - compta +Param=Configurar Debit=Débito Credit=Crédito ProposalStats=Estadísticas de cotizaciones diff --git a/htdocs/langs/es_CL/main.lang b/htdocs/langs/es_CL/main.lang index 7712ceff6ee..5be50db15c7 100644 --- a/htdocs/langs/es_CL/main.lang +++ b/htdocs/langs/es_CL/main.lang @@ -21,6 +21,7 @@ FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M Update=Actualizar NumberByMonth=Cantidad Mensual +Setup=Configurar Amount=Cantidad List=Lista CommercialProposalsShort=Cotizaciones diff --git a/htdocs/langs/es_CL/members.lang b/htdocs/langs/es_CL/members.lang index 374b07c0bd4..d3168fe634e 100644 --- a/htdocs/langs/es_CL/members.lang +++ b/htdocs/langs/es_CL/members.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - members MemberStatusDraft=Borrador (debe ser validado) -MemberStatusDraftShort=Borrador TurnoverOrBudget=Volumen de ventas (empresa) o Cotización (asociación o colectivo) diff --git a/htdocs/langs/es_CL/oauth.lang b/htdocs/langs/es_CL/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_CL/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_CL/printing.lang b/htdocs/langs/es_CL/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_CL/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_CL/propal.lang b/htdocs/langs/es_CL/propal.lang index 8e86c84c39e..480ac4fc14d 100644 --- a/htdocs/langs/es_CL/propal.lang +++ b/htdocs/langs/es_CL/propal.lang @@ -3,6 +3,7 @@ Proposals=Cotizaciones Proposal=Cotización ProposalShort=Cotización ProposalsDraft=Cotizaciones borrador +ProposalsOpened=Cotizaciones abiertas Prop=Cotizaciones CommercialProposal=Cotización ProposalCard=Ficha cotización @@ -11,14 +12,21 @@ NewPropal=Nueva cotización DeleteProp=Borrar Cotización ValidateProp=Validar cotización AddProp=Crear cotización +ConfirmDeleteProp=Está seguro que quiere borrar esta propuesta comercial? +ConfirmValidateProp=Está seguro que quiere validar esta propuesta comercial bajo el nombre%s? +LastPropals=Últimas %s propuestas +LastModifiedProposals=Últimas %s propuestas modificadas AllPropals=Todas las cotizacioness SearchAProposal=Buscar una cotización +NoProposal=Ninguna propuesta ProposalsStatistics=Estadísticas de cotizaciones NumberOfProposalsByMonth=Cantidad Mensual AmountOfProposalsByMonthHT=Cantidad mensual (IVA incluido) NbOfProposals=Número cotizaciones ShowPropal=Ver cotización +PropalsOpened=Abierto PropalStatusDraft=Borrador (debe ser validado) +PropalStatusValidated=Validado (propuesta está abierta) PropalStatusSigned=Firmado (necesita pago) PropalStatusBilled=Pagado PropalStatusBilledShort=Pagado @@ -31,6 +39,7 @@ SendPropalByMail=Enviar cotización por e-mail DatePropal=Fecha cotización DateEndPropal=Validar fecha de término ValidityDuration=Validar duración +SetAcceptedRefused=Establecer aceptado / rechazado ErrorPropalNotFound=%s cotizaciones no encontradas AddToDraftProposals=Añadir a cotización borrador NoDraftProposals=Sin cotizaciones borrador @@ -39,6 +48,8 @@ CreateEmptyPropal=Crear cotización vacía DefaultProposalDurationValidity=Validar duración de cotización (en días) UseCustomerContactAsPropalRecipientIfExist=Utilizar dirección contacto de seguimiento de cliente definido en vez de la dirección del tercero como destinatario de las cotizaciones ClonePropal=Clonar cotización +ConfirmClonePropal=¿Está seguro de que desea clonar la propuesta comercial %s? +ConfirmReOpenProp=¿Está seguro de que desea abrir de nuevo la propuesta comercial %s? ProposalsAndProposalsLines=Cotizaciones a clientes y líneas de cotizaciones ProposalLine=Línea de cotización AvailabilityPeriod=Retraso disponible @@ -53,3 +64,4 @@ DefaultModelPropalCreate=Creación de modelo por defecto DefaultModelPropalToBill=Modelo por defecto al cerrar una cotización (a facturar) DefaultModelPropalClosed=Modelo por defecto al cerrar una cotización (no facturado) ProposalCustomerSignature=Aprobación, timbre, fecha y firma +ProposalsStatisticsSuppliers=Estadísticas de propuestas de proveedores diff --git a/htdocs/langs/es_CL/stocks.lang b/htdocs/langs/es_CL/stocks.lang new file mode 100644 index 00000000000..79ecd4d8da4 --- /dev/null +++ b/htdocs/langs/es_CL/stocks.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - stocks +ListInventory=Lista diff --git a/htdocs/langs/es_CL/workflow.lang b/htdocs/langs/es_CL/workflow.lang index 3ecd63703b7..866f3929198 100644 --- a/htdocs/langs/es_CL/workflow.lang +++ b/htdocs/langs/es_CL/workflow.lang @@ -1,3 +1,13 @@ # Dolibarr language file - Source file is en_US - workflow +WorkflowSetup=Configuración del módulo de flujo de trabajo +WorkflowDesc=Este módulo está diseñado para modificar el comportamiento de las acciones automáticas en la aplicación. Por defecto, el flujo de trabajo está abierto (puede hacer las cosas en el orden que desee). Usted puede activar las acciones automáticas que le interesen. +ThereIsNoWorkflowToModify=No hay modificaciones de flujo de trabajo disponibles con los módulos activados. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Crear un pedido de cliente automáticamente a la firma de una cotización +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que una propuesta comercial es fimada +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de que un contrato es validado +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Crear automáticamente una factura de cliente después de cerrar una orden de cliente descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Clasificar como facturada la cotización cuando el pedido de cliente relacionado se clasifique como pagado +descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando la factura del cliente se establece a pago +descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Clasificar órden(es) fuente vinculadas del cliente a facturar cuando se valida la factura del cliente +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Clasificar propuesta de fuente vinculada a facturar cuando la factura del cliente es validada +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Clasificar orden de origen vinculado a enviar cuando un envío es validado y la cantidad enviada es la misma que en la orden diff --git a/htdocs/langs/es_CO/banks.lang b/htdocs/langs/es_CO/banks.lang index cdeaeb42c78..5fe75379d11 100644 --- a/htdocs/langs/es_CO/banks.lang +++ b/htdocs/langs/es_CO/banks.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - banks +StatusAccountOpened=Activo StatusAccountClosed=Cerrado diff --git a/htdocs/langs/es_CO/bills.lang b/htdocs/langs/es_CO/bills.lang index 146bc3e64e5..8179841b2e8 100644 --- a/htdocs/langs/es_CO/bills.lang +++ b/htdocs/langs/es_CO/bills.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - bills -ConfirmDeletePayment=Are you sure you want to delete this payment ? BillStatusPaid=Pagado BillStatusStarted=Empezado BillShortStatusPaid=Pagado +BillShortStatusConverted=Pagado BillShortStatusValidated=Validado BillShortStatusStarted=Empezado BillShortStatusClosedUnpaid=Cerrado diff --git a/htdocs/langs/es_CO/companies.lang b/htdocs/langs/es_CO/companies.lang index 1f820f38ab5..200e6ec442e 100644 --- a/htdocs/langs/es_CO/companies.lang +++ b/htdocs/langs/es_CO/companies.lang @@ -11,7 +11,6 @@ ProfId2CO=Identificación (CC, NIT, CE) ProfId3CO=CIIU VATIntra=NIT VATIntraShort=NIT -CompanyHasAbsoluteDiscount=Este cliente tiene %s %s descuentos disponibles (descuentos, anticipos...) CompanyHasCreditNote=Este cliente tiene %s %s anticipos disponibles NoContactForAnyProposal=Este contacto no es contacto de ningúna cotización VATIntraCheckDesc=El link %s permite consultar al servicio RUES el NIT. Se requiere acceso a internet para que el servicio funcione diff --git a/htdocs/langs/es_CO/compta.lang b/htdocs/langs/es_CO/compta.lang index f5efdaf4e01..006f13c57a0 100644 --- a/htdocs/langs/es_CO/compta.lang +++ b/htdocs/langs/es_CO/compta.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - compta Param=Configuración -ToPay=To pay ByThirdParties=Por empresa CodeNotDef=No definida diff --git a/htdocs/langs/es_CO/members.lang b/htdocs/langs/es_CO/members.lang index a193615bad5..7a4eb06e0d6 100644 --- a/htdocs/langs/es_CO/members.lang +++ b/htdocs/langs/es_CO/members.lang @@ -1,3 +1,2 @@ # Dolibarr language file - Source file is en_US - members -MemberStatusDraftShort=Borrador SubscriptionLate=Retraso diff --git a/htdocs/langs/es_CO/oauth.lang b/htdocs/langs/es_CO/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_CO/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_CO/printing.lang b/htdocs/langs/es_CO/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_CO/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_CO/salaries.lang b/htdocs/langs/es_CO/salaries.lang deleted file mode 100644 index 4e9dbf5efed..00000000000 --- a/htdocs/langs/es_CO/salaries.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Código contable para pagos de salarios -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Código contable para cargo financiero diff --git a/htdocs/langs/es_CO/stocks.lang b/htdocs/langs/es_CO/stocks.lang new file mode 100644 index 00000000000..28bb25658d0 --- /dev/null +++ b/htdocs/langs/es_CO/stocks.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - stocks +inventoryEdit=Editar diff --git a/htdocs/langs/es_DO/oauth.lang b/htdocs/langs/es_DO/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_DO/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_DO/printing.lang b/htdocs/langs/es_DO/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_DO/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_EC/main.lang b/htdocs/langs/es_EC/main.lang index 1602d6a7ffa..dc6e36a2483 100644 --- a/htdocs/langs/es_EC/main.lang +++ b/htdocs/langs/es_EC/main.lang @@ -19,3 +19,4 @@ FormatDateHourShort=%d/%m/%Y %H:%M FormatDateHourSecShort=%d/%m/%Y %H:%M:%S FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M +ErrorWrongHostParameter=Parámetro host incorrecto diff --git a/htdocs/langs/es_EC/oauth.lang b/htdocs/langs/es_EC/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_EC/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_EC/printing.lang b/htdocs/langs/es_EC/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_EC/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_ES/accountancy.lang b/htdocs/langs/es_ES/accountancy.lang index 5a7167903cd..5e0398a8660 100644 --- a/htdocs/langs/es_ES/accountancy.lang +++ b/htdocs/langs/es_ES/accountancy.lang @@ -28,29 +28,30 @@ OverviewOfAmountOfLinesBound=Ver la cantidad de líneas ligadas a cuentas contab OtherInfo=Otra información DeleteCptCategory=Eliminar la cuenta contable del grupo ConfirmDeleteCptCategory=¿Está seguro de querer eliminar esta cuenta contable del grupo de cuentas contables? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Área contabilidad AccountancyAreaDescIntro=El uso del módulo de contabilidad se realiza en varios pasos: AccountancyAreaDescActionOnce=Las siguientes acciones se ejecutan normalmente una sola vez, o una vez al año... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Los pasos siguientes deben hacerse para ahorrar tiempo en el futuro, sugiriendo la cuenta contable predeterminada correcta para realizar los diarios (escritura de los registros en los diarios y el Libro Mayor) AccountancyAreaDescActionFreq=Las siguientes acciones se ejecutan normalmente cada mes, semana o día en empresas muy grandes... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=PASO %s: Cree o compruebe el contenido de sus diarios desde el menu %s AccountancyAreaDescChartModel=PASO %s: Crear un modelo de plan general contable desde el menú %s AccountancyAreaDescChart=PASO %s: Crear o comprobar el contenido de su plan general contable desde el menú %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescVat=PASO %s: Defina las cuentas contables para cada tasa de IVA. Para ello puede usar el menú %s. +AccountancyAreaDescExpenseReport=PASO %s: Defina las cuentas contables para los informes de gastos. Para ello puede utilizar el menú %s. +AccountancyAreaDescSal=PASO %s: Defina las cuentas contables para los pagos de salarios. Para ello puede utilizar el menú %s. +AccountancyAreaDescContrib=PASO %s: Defina las cuentas contables de los gastos especiales (impuestos varios). Para ello puede utilizar el menú %s. +AccountancyAreaDescDonation=PASO %s: Defina las cuentas contables para las donaciones. Para ello puede utilizar el menú %s. +AccountancyAreaDescMisc=PASO %s: Defina las cuentas contables para registros varios. Para ello puede utilizar el menú %s. +AccountancyAreaDescLoan=PASO %s: Defina las cuentas contables para los préstamos. Para ello puede utilizar el menú %s.\n AccountancyAreaDescBank=PASO %s: Defina las cuentas contables para cada banco y cuentas financieras. Puede empezar desde la página %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=PASO %s: Defina las cuentas contables en sus productos. Para ello puede utilizar el menú %s. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. +AccountancyAreaDescBind=PASO %s: Compruebe que los enlaces entre las líneas %s existentes y las cuentas contables es correcta, para que la aplicación pueda registrar las transacciones en el Libro Mayor en un solo clic. Complete los enlaces que falten. Para ello, utilice la entrada de menú %s. +AccountancyAreaDescWriteRecords=PASO %s: Escribir las transacciones en el Libro Mayor. Para ello, entre en el menú %s, y haga clic en el botón %s. AccountancyAreaDescAnalyze=PASO %s: Añadir o editar transacciones existentes, generar informes y exportaciones. AccountancyAreaDescClosePeriod=PASO %s: Cerrar periodo, por lo que no podrá hacer modificaciones en un futuro. @@ -61,8 +62,7 @@ ChangeAndLoad=Cambiar y cargar Addanaccount=Añadir una cuenta contable AccountAccounting=Cuenta contable AccountAccountingShort=Cuenta -SubledgerAccount=Subledger Account -subledger_account=Subledger Account +SubledgerAccount=Subcuenta contable ShowAccountingAccount=Mostrar diario de cuentas ShowAccountingJournal=Mostrar diario contable AccountAccountingSuggest=Cuenta contable sugerida @@ -79,8 +79,9 @@ SuppliersVentilation=Contabilizar facturas de proveedores ExpenseReportsVentilation=Contabilizar informes de gastos CreateMvts=Crear nuevo movimiento UpdateMvts=Modificar transacción -WriteBookKeeping=Journalize transactions in Ledger -Bookkeeping=Ledger +ValidTransaction=Validate transaction +WriteBookKeeping=Registrar movimientos en el Libro Mayor +Bookkeeping=Libro Mayor AccountBalance=Saldo de la cuenta CAHTF=Total purchase supplier before tax @@ -142,17 +143,18 @@ NumPiece=Apunte TransactionNumShort=Núm. transacción AccountingCategory=Grupos cuentas contables GroupByAccountAccounting=Agrupar por cuenta contable +ByAccounts=By accounts NotMatch=No establecido -DeleteMvt=Delete Ledger lines +DeleteMvt=Eliminar líneas del Libro Mayor DelYear=Año a eliminar DelJournal=Diario a eliminar -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger -DelBookKeeping=Delete record of the Ledger +ConfirmDeleteMvt=Esto eliminará todas las lineas del Libro Mayor del año y/o de un diario específico. Se requiere al menos un criterio. +ConfirmDeleteMvtPartial=Esto borrará todas las líneas seleccionadas del Libro Mayor +DelBookKeeping=Eliminar los registros del Libro Mayor FinanceJournal=Diario financiero ExpenseReportsJournal=Diario informe de gastos DescFinanceJournal=El diario financiero incluye todos los tipos de pagos por cuenta bancaria -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=Esta es una vista de registros que están vinculados a una cuenta contable de productos/servicios y pueden ser registrados en el Libro Mayor. VATAccountNotDefined=Cuenta contable para IVA no definida ThirdpartyAccountNotDefined=Cuenta contable de tercero no definida ProductAccountNotDefined=Cuenta contable de producto no definida @@ -170,7 +172,7 @@ DescThirdPartyReport=Consulte aquí el listado de clientes y proveedores y sus c ListAccounts=Listado de cuentas contables Pcgtype=Tipo del plan -Pcgsubtype=Subclass of account +Pcgsubtype=Subcuenta TotalVente=Total facturación antes de impuestos TotalMarge=Total margen ventas @@ -194,9 +196,9 @@ AutomaticBindingDone=Vinculación automática finalizada ErrorAccountancyCodeIsAlreadyUse=Error, no puede eliminar esta cuenta ya que está siendo usada MvtNotCorrectlyBalanced=Movimiento descuadrado. Debe = %s. Haber = %s FicheVentilation=Ficha contable -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. -NoNewRecordSaved=No new record dispatched +GeneralLedgerIsWritten=Transacciones escritas en el Libro Mayor +GeneralLedgerSomeRecordWasNotRecorded=Algunas de las operaciones que no podrán registrarse. Si no hay un mensaje de error, es probable que ya estén contabilizadas +NoNewRecordSaved=No se guardaron nuevos registros ListOfProductsWithoutAccountingAccount=Listado de productos sin cuentas contables ChangeBinding=Cambiar la unión @@ -214,12 +216,14 @@ AccountingJournalType1=Operaciones varias AccountingJournalType2=Ventas AccountingJournalType3=Compras AccountingJournalType4=Banco +AccountingJournalType5=Expenses report AccountingJournalType9=Haber ErrorAccountingJournalIsAlreadyUse=Este diario ya esta siendo usado ## Export Exports=Exportaciones Export=Exportar +ExportDraftJournal=Export draft journal Modelcsv=Modelo de exportación OptionsDeactivatedForThisExportModel=Las opciones están desactivadas para este modelo de exportación Selectmodelcsv=Seleccione un modelo de exportación @@ -231,7 +235,7 @@ Modelcsv_ciel=Exportar hacia Sage Ciel Compta o Compta Evolution Modelcsv_quadratus=Exportar hacia Quadratus QuadraCompta Modelcsv_ebp=Exportar a EBP Modelcsv_cogilog=Eportar a Cogilog -Modelcsv_agiris=Export towards Agiris (Test) +Modelcsv_agiris=Exportar a Agiris (Test) ChartofaccountsId=Id plan contable ## Tools - Init accounting account on product / service @@ -256,12 +260,12 @@ Calculated=Calculado Formula=Fórmula ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +SomeMandatoryStepsOfSetupWereNotDone=Algunos pasos necesarios de la configuración no están realizados, por favor complételos. ErrorNoAccountingCategoryForThisCountry=No hay grupos contables disponibles para %s (Vea Inicio - Configuración - Diccionarios) ExportNotSupported=El formato de exportación configurado no es soportado en esta página BookeppingLineAlreayExists=Lineas ya existentes en la contabilidad -NoJournalDefined=No journal defined +NoJournalDefined=Sin diario definido Binded=Líneas contabilizadas ToBind=Líneas a contabilizar -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. +WarningReportNotReliable=Advertencia, este informe no se basa en el Libro mayor, por lo que no contiene modificaciones manualmente modificadas en el Libro mayor. Será reemplazado por un informe más completo en una próxima versión. diff --git a/htdocs/langs/es_ES/admin.lang b/htdocs/langs/es_ES/admin.lang index e07d374c999..92311441ec2 100644 --- a/htdocs/langs/es_ES/admin.lang +++ b/htdocs/langs/es_ES/admin.lang @@ -104,7 +104,7 @@ MenuIdParent=Id del menú padre DetailMenuIdParent=ID del menú padre (vacío para un menú superior) DetailPosition=Número de orden para la posición del menú AllMenus=Todos -NotConfigured=Module/Application not configured +NotConfigured=Módulo/Aplicación no configurado Active=Activo SetupShort=Config. OtherOptions=Otras opciones @@ -123,8 +123,8 @@ PHPTZ=Zona horaria Servidor PHP DaylingSavingTime=Horario de verano (usuario) CurrentHour=Hora PHP (servidor) CurrentSessionTimeOut=Timeout sesión actual -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" -HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. +YouCanEditPHPTZ=Para definir una zona horaria PHP diferente (no es necesario), pruebe a añadir un archivo .htacces con una línea como esta "SetEnvTZ Europe/Paris" +HoursOnThisPageAreOnServerTZ=Atención, al contrario de otras pantallas, las horas de esta página no se encuentran en su zona horaria local, sino en la zona horaria del servidor Box=Panel Boxes=Paneles MaxNbOfLinesForBoxes=Número máximo de líneas para paneles @@ -190,7 +190,7 @@ FeatureAvailableOnlyOnStable=Funcionaliad disponible únicamente en versiones of Rights=Permisos BoxesDesc=Los paneles son componentes que muestran algunos datos que pueden añadirse para personalizar algunas páginas. Puede elegir entre mostrar o no el panel mediante la selección de la página de destino y haciendo clic en 'Activar', o haciendo clic en la papelera para desactivarlo. OnlyActiveElementsAreShown=Sólo los elementos de módulos activados son mostrados. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Los módulos de Dolibarr definen qué funcionalidad está habilitada en el software. Algunos módulos requieren permisos que se deben conceder a los usuarios después de activar el módulo. Haga clic en el botón de encendido/apagado para activar un módulo/función. ModulesMarketPlaceDesc=Puede encontrar más módulos para descargar en sitios web externos en Internet ... ModulesDeployDesc=Si los permisos en su sistema de archivos lo permiten, puede utilizar esta herramienta para instalar un módulo externo. El módulo estará entonces visible en la pestaña %s. ModulesMarketPlaces=Buscar módulos externos... @@ -270,7 +270,7 @@ FeatureNotAvailableOnLinux=Funcionalidad no disponible en sistemas Unix. Pruebe SubmitTranslation=Si la traducción de este idioma no está completa o si encuentra errores, puede corregir esto editando los archivos en el directorio langs/%s y enviar su cambio a www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=Si la traducción de este idioma es incompleta o si encuentra errores, puede corregirlos mediante la edición de los archivos en el directorio langs/%s y el envío los cambios al foro www.dolibarr.es o a los desarrolladores en github.com/Dolibarr/dolibarr. ModuleSetup=Configuración del módulo -ModulesSetup=Modules/Application setup +ModulesSetup=Configuración de los módulos ModuleFamilyBase=Sistema ModuleFamilyCrm=Gestión de Relaciones con Clientes (CRM) ModuleFamilySrm=Gestión de Relaciones con Proveedores (SRM) @@ -303,7 +303,7 @@ CurrentVersion=Versión actual de Dolibarr CallUpdatePage=Ir a la página de actualización de la estructura de la base de datos y sus datos: %s. LastStableVersion=Última versión estable LastActivationDate=Última fecha de activación -LastActivationAuthor=Latest activation author +LastActivationAuthor=Último autor de activación LastActivationIP=Última IP activa UpdateServerOffline=Actualizar servidor offline WithCounter=Gestionar un contador @@ -384,12 +384,12 @@ ExtrafieldSelect = Lista de selección ExtrafieldSelectList = Lista desde una tabla ExtrafieldSeparator=Separador (No es un campo) ExtrafieldPassword=Contraseña -ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldRadio=Botón de selección excluyente ExtrafieldCheckBox=Casilla de verificación -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldCheckBoxFromList=Casilla de selección de tabla ExtrafieldLink=Objeto adjuntado ComputedFormula=Campo combinado -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ComputedFormulaDesc=Puede introducir aquí una fórmula utilizando otras propiedades de objeto o cualquier código PHP para obtener un valor calculado dinámico. Puede utilizar cualquier fórmula compatible con PHP, incluido el operador de condición "?" y los objetos globales siguientes: $db, $conf, $langs, $mysoc, $usuario, $object.
ATENCIÓN: Sólo algunas propiedades de $object pueden estar disponibles. Si necesita propiedades no cargadas, solo busque el objeto en su fórmula como en el segundo ejemplo.
Usando un campo computado significa que no puede ingresar ningún valor de la interfaz. Además, si hay un error de sintaxis, la fórmula puede devolver nada.

Ejemplo de fórmula:
$object->id <10?($Object-> id / 2, 2): ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Ejemlo de recarga de objeto
($reloadedobj = new Societe($db)) && ($reloadedobj->fetch ($obj->id?$Obj->id: ($obj->rowid?$ obj->rowid: $object->id) > 0))?$reloadedobj->array_options ['options_extrafieldkey'] * $ reloadedobj-> capital / 5: '-1'

Otro ejemplo de fórmula para forzar la carga del objeto y su objeto principal:
(($reloadedobj = new Task ($db)) && ($reloadedobj->fetch ($object-> id)> 0) && ($secondloadedobj = new Task ($db)) && ($secondloadedobj->fetch ($reloadedobj->fk_project)> 0))?$ secondloadedobj->ref: 'Parent proyect not found' ExtrafieldParamHelpselect=El listado de parámetros tiene que ser key,valor

por ejemplo:\\n
1,value1
2,value2
3,value3
...

Para tener una lista en funcion de atributos complementarios de lista:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Para tener la lista en función de otra:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... ExtrafieldParamHelpradio=El listado de parámetros tiene que ser key,valor

por ejemplo:\n
1,value1
2,value2
3,value3
... @@ -432,18 +432,18 @@ WarningPHPMail=ADVERTENCIA: Algunos proveedores de correo electrónico (como Yah ClickToShowDescription=Clic para ver la descripción DependsOn=Este módulo necesita los módulos RequiredBy=Este módulo es requerido por los módulos -TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. -PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: +TheKeyIsTheNameOfHtmlField=La clave es el nombre del campo HTML. es necesario tener conocimientos técnicos para leer el contenido de la página HTML para obtener el nombre clave de un campo. +PageUrlForDefaultValues=Debe introducir aquí la URL relativa de la página. Si incluye parámetros en URL, los valores predeterminados serán efectivos si todos los parámetros están configurados con el mismo valor. Ejemplos: PageUrlForDefaultValuesCreate=
Para que el formulario cree un nuevo tercero, es %s PageUrlForDefaultValuesList=
Para la página que lista terceros, es %s -EnableDefaultValues=Enable usage of personalized default values -EnableOverwriteTranslation=Enable usage of overwrote translation +EnableDefaultValues=Habilitar el uso de valores predeterminados personalizados +EnableOverwriteTranslation=Habilitar el uso de la traducción sobrescrita GoIntoTranslationMenuToChangeThis=Se ha encontrado una traducción para la clave con este código, por lo que para cambiar este valor, debe editarlo desde Inicio-Configuración-Traducción. -WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. +WarningSettingSortOrder=Atención, establecer un orden predeterminado puede resultar en un error técnico al pasar a la página de lista si un campo es un campo desconocido. Si experimenta un error de este tipo, vuelva a esta página para eliminar el orden predeterminado y restaurar el comportamiento predeterminado. Field=Campo -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports +ProductDocumentTemplates=Plantillas de documentos para generar documento de producto +FreeLegalTextOnExpenseReports=Texto libre legal en los informes de gastos +WatermarkOnDraftExpenseReports=Marca de agua en los informes de gastos # Modules Module0Name=Usuarios y grupos Module0Desc=Gestión de Usuarios / Empleados y grupos @@ -466,7 +466,7 @@ Module30Desc=Gestión de facturas y abonos a clientes. Gestión facturas de prov Module40Name=Proveedores Module40Desc=Gestión de proveedores Module42Name=Syslog -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Generación de logs (archivos, syslog,...). Dichos registros son para propósitos técnicos/de depuración. Module49Name=Editores Module49Desc=Gestión de editores Module50Name=Productos @@ -521,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Interfaz con el calendario Webcalendar Module500Name=Pagos especiales Module500Desc=Gestión de gastos especiales (impuestos, gastos sociales, dividendos) -Module510Name=Payment of employee wages -Module510Desc=Record and follow payment of your employee wages +Module510Name=Pago de salarios +Module510Desc=Registro y seguimiento del pago de los salarios de su empleado Module520Name=Crédito Module520Desc=Gestión de créditos Module600Name=Notificaciones @@ -536,7 +536,7 @@ Module1120Desc=Solicitud presupuesto y precios a proveedor Module1200Name=Mantis Module1200Desc=Interfaz con el sistema de seguimiento de incidencias Mantis Module1400Name=Contabilidad experta -Module1400Desc=Gestión experta de la contabilidad (doble partida) +Module1400Desc=Accounting management (double entries) Module1520Name=Generación Documento Module1520Desc=Generación de documentos de correo masivo Module1780Name=Etiquetas/Categorías @@ -564,10 +564,10 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacidades de conversión GeoIP Maxmind Module3100Name=Skype Module3100Desc=Añadir un botón Skype en las fichas de usuarios/terceros/contactos/miembros -Module3200Name=Non Reversible Logs -Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. +Module3200Name=Registros no reversibles +Module3200Desc=Activar el registro de algunos eventos empresariales en un registro no reversible. Los eventos se archivan en tiempo real. El registro es una tabla de sucesos encadenados que se pueden leer y exportar. Este módulo puede ser obligatorio en algunos países. Module4000Name=RRHH -Module4000Desc=Human resources management (mangement of department, employee contracts and feelings) +Module4000Desc=Departamento de Recursos Humanos (gestión del departamento, contratos de empleados) Module5000Name=Multi-empresa Module5000Desc=Permite gestionar varias empresas Module6000Name=Flujo de trabajo @@ -585,7 +585,7 @@ Module50100Desc=Módulo punto de venta (TPV) Module50200Name=Paypal Module50200Desc=Módulo para proporcionar un pago en línea con tarjeta de crédito mediante Paypal Module50400Name=Contabilidad (avanzada) -Module50400Desc=Gestión contable (doble partida) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=La impresión directa (sin abrir los documentos) usa el interfaz Cups IPP (La impresora debe ser visible por el servidor y CUPS debe estar instalado en el servidor) Module55000Name=Encuesta o Voto @@ -615,7 +615,7 @@ Permission32=Crear/modificar productos Permission34=Eliminar productos Permission36=Ver/gestionar los productos ocultos Permission38=Exportar productos -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission41=Leer proyectos y tareas (proyectos compartidos y proyectos de los que soy contacto). También puede introducir tiempos consumidos en tareas asignadas (Hojas de tiempo). Permission42=Crear/modificar proyectos (proyectos compartidos y proyectos de los que soy contacto). También puede crear tareas y asignar usuarios a proyectos y tareas Permission44=Eliminar proyectos y tareas (compartidos o soy contacto) Permission45=Exportar proyectos @@ -997,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerancia de retraso entes de la alerta (en días) s Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerancia de retraso entes de la alerta (en días) sobre cheques a ingresar Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerancia de retraso entes de la alerta (en días) sobre gastos a aprobar SetupDescription1=El área de configuración sirve para configurar los parámetros antes de empezar a usar Dolibarr -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : -SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). -SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. +SetupDescription2=Los dos pasos más importantes de configuración son los dos primeros en el menú de configuración de la izquierda: la página de configuración %s y la página de configuración %s: +SetupDescription3=Los parámetros del menú %s->%s son necesarios porque los datos definidos se utilizan en las pantallas de Dolibarr y para personalizar el comportamiento predeterminado del software (por ejemplo, para las características relacionadas con el país). +SetupDescription4=Los parámetros de configuración del menú %s -> %s son necesarios porque Dolibarr es un ERP/CRM una colección de varios módulos, todos más o menos independientes. Se añadirán nuevas funcionalidades a los menús por cada módulo que se active. SetupDescription5=Las otras entradas de configuración gestionan parámetros opcionales. LogEvents=Auditoría de la seguridad de eventos Audit=Auditoría @@ -1015,7 +1015,7 @@ BrowserOS=S.O. del navegador ListOfSecurityEvents=Listado de eventos de seguridad Dolibarr SecurityEventsPurged=Eventos de seguridad purgados LogEventDesc=Puede habilitar el registro de eventos de seguridad Dolibarr aquí. Los administradores pueden ver su contenido a través de menú Herramientas del sistema - Auditoría.Atención, esta característica puede consumir una gran cantidad de datos en la base de datos. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +AreaForAdminOnly=Los parámetros de configuración solamente pueden ser tratados por usuarios administrador SystemInfoDesc=La información del sistema es información técnica accesible solamente en solo lectura a los administradores. SystemAreaForAdminOnly=Esta área solo es accesible a los usuarios de tipo administradores. Ningún permiso Dolibarr permite extender el círculo de usuarios autorizados a esta área. CompanyFundationDesc=Edite en esta página toda la información conocida de la empresa o institución que necesita gestionar (Para ello haga click en el botón "Modificar" o "Grabar" a pie de página) @@ -1108,7 +1108,7 @@ WarningAtLeastKeyOrTranslationRequired=Se necesita un criterio de búsqueda al m NewTranslationStringToShow=Nueva cadena traducida a mostrar OriginalValueWas=La traducción original se ha sobreescrito. El valor original era:

%s TransKeyWithoutOriginalValue=Forzó una nueva traducción para la clave de traducción '%s' que no existe en ningún archivo de idioma -TotalNumberOfActivatedModules=Activated application/modules: %s / %s +TotalNumberOfActivatedModules=Número total de módulos activados: %s / %s YouMustEnableOneModule=Debe activar al menos un módulo. ClassNotFoundIntoPathWarning=No se ha encontrado la clase %s en su path PHP YesInSummer=Sí en verano @@ -1361,13 +1361,13 @@ CacheByServer=Caché mediante el servidor CacheByServerDesc=Por ejemplo utilizando la directiva Apache "ExpiresByType image/gif A2592000" CacheByClient=Caché mediante el navegador CompressionOfResources=Compresión de las respuestas HTTP -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=Por ejemplo, utilizando la directiva Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=La detección automática no es posible con el navegador actual DefaultValuesDesc=Puede definir/forzar aquí el valor predeterminado que desea obtener cuando cree un nuevo registro y/o defina filtros u ordenaciones en sus registros de listados. DefaultCreateForm=Valores por defecto para nuevos objetos DefaultSearchFilters=Filtros de búsqueda por defecto -DefaultSortOrder=Default sort orders -DefaultFocus=Default focus fields +DefaultSortOrder=Ordenaciones por defecto +DefaultFocus=Campos de enfoque predeterminados ##### Products ##### ProductSetup=Configuración del módulo Productos ServiceSetup=Configuración del módulo Servicios @@ -1520,7 +1520,7 @@ AGENDA_NOTIFICATION_SOUND=Activar sonido de notificación AGENDA_SHOW_LINKED_OBJECT=Mostrar el link en la agenda ##### Clicktodial ##### ClickToDialSetup=Configuración del módulo Click To Dial -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialUrlDesc=Url llamada cuando se hace clic en el icono de teléfono. En la URL, puede usar los tags
__PHONETO__ que se reemplazará con el número de teléfono de la persona a llamar
__PHONEFROM__ que será reemplazado por el número de teléfono de la persona que llama (suyo)
__LOGIN__ que se reemplazará con el login clicktodial (definido en la tarjeta de usuario)
__PASS__ que será Sustituido por la contraseña clicktodial (definida en la ficha de usuario). ClickToDialDesc=Este módulo permite hacer clicables los números de teléfono. Un clic en este icono hará que su teléfono llame al número de teléfono. Esto puede ser usado para llamar a un sistema de centralitas desde Dolibarr que puede llamar al número de teléfono en un sistema SIP, por ejemplo. ClickToDialUseTelLink=Utilice el enlace "tel:" que aparece en los números de teléfono ClickToDialUseTelLinkDesc=Utilice este método si los usuarios tienen un softphone o una interfaz de software instalado en mismo equipo que el navegador, y se llama al hacer clic en un enlace en el navegador que comienza con "tel:". Si necesita una solución de servidor completa (sin necesidad de instalación de software local), debe establecer este en "No" y rellenar siguiente campo. @@ -1620,7 +1620,7 @@ BackupDumpWizard=Asistente para crear una copia de seguridad de la base de datos SomethingMakeInstallFromWebNotPossible=No es posible la instalación de módulos externos desde la interfaz web por la siguiente razón: SomethingMakeInstallFromWebNotPossible2=Por esta razón, explicaremos aquí los pasos del proceso de actualización manual que puede realizar un usuario con privilegios. InstallModuleFromWebHasBeenDisabledByFile=La instalación de módulos externos desde la aplicación se encuentra desactivada por el administrador. Debe requerirle que elimine el archivo %s para habilitar esta funcionalidad. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=La instalación o construcción de un módulo externo desde la aplicación necesita guardar los archivos del módulo en el directorio %s. Para que este directorio sea procesado por Dolibarr, debe configurar su conf/conf.php para agregar las 2 líneas de directiva:
$dolibarr_main_url_root_alt = '/custom';
$dolibarr_main_document_root_alt = '%s/custom'; HighlightLinesOnMouseHover=Resaltar líneas de los listados cuando el ratón pasa por encima de ellas HighlightLinesColor=Resalta el color de la línea cuando el ratón pasa por encima (mantener vacío para no resaltar) TextTitleColor=Color para la página de título @@ -1638,7 +1638,7 @@ MinimumNoticePeriod=Período mínimo de notificación (Su solicitud de licencia NbAddedAutomatically=Número de días adicionales que se añaden automáticamente a los contadores de usuarios cada mes EnterAnyCode=Este campo contiene una referencia para identificar la línea. Introduzca cualquier valor de su elección, pero sin caracteres especiales. UnicodeCurrency=Ingrese aquí entre llaves, lista con número de byte que representa el símbolo de moneda. Por ejemplo: para $, introduzca [36] - para Brasil Real R$ [82,36] - para €, introduzca [8364] -ColorFormat=The RGB color is in HEX format, eg: FF0000 +ColorFormat=El color RGB es en formato HEX, ej: FF0000 PositionIntoComboList=Posición de la línea en listas de combo SellTaxRate=Tasa de IVA RecuperableOnly=Sí para el IVA "Non Perçue Récupérable" usados en algunas provincias en Francia. Mantenga el valor a "No" en los demás casos. @@ -1699,8 +1699,8 @@ UserHasNoPermissions=Este usuario no tiene permisos definidos TypeCdr=Use "Ninguno" si la fecha del plazo de pago es la fecha de factura más un delta en días (delta es el campo "Nº de días")
Use "A final de mes", si, después del delta, la fecha debe aumentarse para llegar al final del mes (+ opcional "Offset" en días)
Use "Actual/Siguiente" para tener la fecha del plazo de pago sea el primer N de cada mes (N se almacena en el campo "Nº de días") BaseCurrency=Moneda de referencia de la empresa (entrar en la configuración de la empresa para cambiar esto) WarningNoteModuleInvoiceForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. +WarningNoteModulePOSForFrenchLaw=Este módulo %s cumple con las leyes francesas (Loi Finance 2016) porque el módulo Non Reversible Logs se activa automáticamente. +WarningInstallationMayBecomeNotCompliantWithLaw=Intenta instalar el módulo %s, que es un módulo externo. Activar un módulo externo significa que confía en el editor del módulo, que está seguro de que este módulo no altera negativamente el comportamiento de su aplicación y que es compatible con las leyes de su país (%s). Si el módulo trae una característica no legal, usted se hace responsable del uso de un software no legal. ##### Resource #### ResourceSetup=Configuración del módulo Recursos UseSearchToSelectResource=Utilice un formulario de búsqueda para elegir un recurso (en lugar de una lista desplegable). diff --git a/htdocs/langs/es_ES/agenda.lang b/htdocs/langs/es_ES/agenda.lang index 8b8eb278012..e7df6331d73 100644 --- a/htdocs/langs/es_ES/agenda.lang +++ b/htdocs/langs/es_ES/agenda.lang @@ -48,11 +48,12 @@ InvoiceDeleteDolibarr=Factura %s eliminada InvoicePaidInDolibarr=Factura %s pasada a pagada InvoiceCanceledInDolibarr=Factura %s cancelada MemberValidatedInDolibarr=Miembro %s validado +MemberModifiedInDolibarr=Miembro %s modificado MemberResiliatedInDolibarr=Miembro %s terminado MemberDeletedInDolibarr=Miembro %s eliminado MemberSubscriptionAddedInDolibarr=Subscripción del miembro %s añadida ShipmentValidatedInDolibarr=Expedición %s validada -ShipmentClassifyClosedInDolibarr=Expedición %s clasificada como facturada +ShipmentClassifyClosedInDolibarr=Expedición %s clasificada como pagada ShipmentUnClassifyCloseddInDolibarr=Expedición %s clasificada como reabierta ShipmentDeletedInDolibarr=Expedición %s eliminada OrderCreatedInDolibarr=Pedido %s creado @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervención %s enviada por e-mail ProposalDeleted=Presupuesto eliminado OrderDeleted=Pedido eliminado InvoiceDeleted=Factura eliminada +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Plantillas de documentos para eventos DateActionStart=Fecha de inicio DateActionEnd=Fecha finalización AgendaUrlOptions1=Puede también añadir estos parámetros al filtro de salida: -AgendaUrlOptions2=login=%s para restringir inserciones a acciones creadas o asignadas al usuario %s. AgendaUrlOptions3=logina=%s para restringir inserciones a acciones creadas por el usuario %s. -AgendaUrlOptions4=logint=%s para restringir inserciones a acciones que afecten al usuario %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID para restringir inserciones a acciones asociadas al proyecto PROJECT_ID. AgendaShowBirthdayEvents=Mostrar cumpleaños de los contactos AgendaHideBirthdayEvents=Ocultar cumpleaños de los contactos diff --git a/htdocs/langs/es_ES/banks.lang b/htdocs/langs/es_ES/banks.lang index e0b3ba4abc3..2d81ed7a690 100644 --- a/htdocs/langs/es_ES/banks.lang +++ b/htdocs/langs/es_ES/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=¿Está seguro de querer eliminar el enlace entre el r ListBankTransactions=Listado de registros bancarios IdTransaction=Id de transacción BankTransactions=Registros bancarios +BankTransaction=Registro bancario ListTransactions=Listado registros ListTransactionsByCategory=Listado registros/categoría TransactionsToConciliate=Registros a conciliar @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque devuelto y facturas reabiertas BankAccountModelModule=Modelos de documentos para cuentas bancarias DocumentModelSepaMandate=Plantilla de mandato SEPA, usable únicamente para paises miembros de la UEE DocumentModelBan=Plantilla para imprimir una página con la información IBAN. +NewVariousPayment=Nuevo pago varios +VariousPayment=Pago varios +VariousPayments=Pagos varios +ShowVariousPayment=Mostrar pago varios diff --git a/htdocs/langs/es_ES/bookmarks.lang b/htdocs/langs/es_ES/bookmarks.lang index f83ba54a5a0..5f36bc612b6 100644 --- a/htdocs/langs/es_ES/bookmarks.lang +++ b/htdocs/langs/es_ES/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Añadir esta página a los marcadores Bookmark=Marcador Bookmarks=Marcadores +ListOfBookmarks=Listado de marcadores +EditBookmarks=Listar/editar marcadores NewBookmark=Nuevo marcador ShowBookmark=Mostrar marcadores OpenANewWindow=Abrir una nueva ventana diff --git a/htdocs/langs/es_ES/boxes.lang b/htdocs/langs/es_ES/boxes.lang index 971b8fa1b66..ff56f057967 100644 --- a/htdocs/langs/es_ES/boxes.lang +++ b/htdocs/langs/es_ES/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Información login BoxLastRssInfos=Hilos de información RSS BoxLastProducts=Últimos %s productos/servicios BoxProductsAlertStock=Alertas de stock para productos @@ -82,3 +83,4 @@ ForCustomersOrders=Pedidos de clientes ForProposals=Presupuestos LastXMonthRolling=Los últimos %s meses consecutivos ChooseBoxToAdd=Añadir panel a su tablero +BoxAdded=El widget fué agregado a su panel de control diff --git a/htdocs/langs/es_ES/categories.lang b/htdocs/langs/es_ES/categories.lang index baa948302fa..9d83ca86817 100644 --- a/htdocs/langs/es_ES/categories.lang +++ b/htdocs/langs/es_ES/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Etiqueta/Categoría Rubriques=Etiqueta/Categoría +RubriquesTransactions=Etiquetas/Categorías de transacciones categories=etiquetas/categorías NoCategoryYet=Ninguna etiqueta/categoría de este tipo creada In=En diff --git a/htdocs/langs/es_ES/commercial.lang b/htdocs/langs/es_ES/commercial.lang index 1928373ea6a..dc6ae6ee765 100644 --- a/htdocs/langs/es_ES/commercial.lang +++ b/htdocs/langs/es_ES/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Ver tarea ShowAction=Ver evento ActionsReport=Informe de eventos ThirdPartiesOfSaleRepresentative=Terceros cuyo representante de ventas es +SaleRepresentativesOfThirdParty=comercials del tercero SalesRepresentative=Comercial SalesRepresentatives=Comerciales SalesRepresentativeFollowUp=Comercial (seguimiento) diff --git a/htdocs/langs/es_ES/companies.lang b/htdocs/langs/es_ES/companies.lang index 423f9f3d10e..8b748076413 100644 --- a/htdocs/langs/es_ES/companies.lang +++ b/htdocs/langs/es_ES/companies.lang @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clientes ThirdPartyCustomersWithIdProf12=Clientes con %s ó %s ThirdPartySuppliers=Proveedores ThirdPartyType=Tipo de tercero -Company/Fundation=Empresa/asociación Individual=Particular ToCreateContactWithSameName=Creará automáticamente un contacto físico con la misma información. en la mayoría de casos. En la mayoría de los casos, incluso si el tercero es una persona física, la creación de un tercero por sí solo es suficiente. ParentCompany=Sede central @@ -78,10 +77,10 @@ VATIsNotUsed=No sujeto a IVA CopyAddressFromSoc=Copiar dirección de la empresa ThirdpartyNotCustomerNotSupplierSoNoRef=Tercero que no es cliente ni proveedor, sin objetos referenciados PaymentBankAccount=Cuenta bancaria de pago -OverAllProposals=Total presupuestos -OverAllOrders=Total pedidos -OverAllInvoices=Total facturas -OverAllSupplierProposals=Total presupuestos +OverAllProposals=Presupuestos +OverAllOrders=Pedidos +OverAllInvoices=Facturas +OverAllSupplierProposals=Presupuestos ##### Local Taxes ##### LocalTax1IsUsed=Usar segunda tasa LocalTax1IsUsedES= Sujeto a RE @@ -237,6 +236,12 @@ ProfId3TN=Código en aduana ProfId4TN=CCC ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=OGRN ProfId2RU=INN ProfId3RU=KPP @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Descuento relativo CustomerAbsoluteDiscountShort=Descuento fijo CompanyHasRelativeDiscount=Este cliente tiene un descuento por defecto de %s%% CompanyHasNoRelativeDiscount=Este cliente no tiene descuentos relativos por defecto -CompanyHasAbsoluteDiscount=Este cliente tiene %s %s en descuentos o anticipos disponibles +CompanyHasAbsoluteDiscount=Este cliente tiene %s %s en descuentos (abonos o anticipos) disponibles CompanyHasCreditNote=Este cliente tiene %s %s en anticipos disponibles CompanyHasNoAbsoluteDiscount=Este cliente no tiene más descuentos fijos disponibles CustomerAbsoluteDiscountAllUsers=Descuentos fijos en curso (acordado por todos los usuarios) @@ -390,7 +395,7 @@ ListCustomersShort=Listado de clientes ThirdPartiesArea=Área terceros y contactos LastModifiedThirdParties=Últimos %s terceros modificados UniqueThirdParties=Total de terceros únicos -InActivity=Abierto +InActivity=Activo ActivityCeased=Cerrado ThirdPartyIsClosed=El tercero está cerrado ProductsIntoElements=Lista de productos/servicios en %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Código de cliente/proveedor libre sin verificación. Pue ManagingDirectors=Administrador(es) (CEO, director, presidente, etc.) MergeOriginThirdparty=Tercero duplicado (tercero que debe eliminar) MergeThirdparties=Fusionar terceros -ConfirmMergeThirdparties=¿Está seguro de que quiere fusionar este tercero con el actual? Todos los objetos relacionados (facturas, pedidos, etc.) se moverán al tercero actual, por lo que será capaz de eliminar el duplicado. +ConfirmMergeThirdparties=¿Está seguro de que quiere fusionar este tercero con el actual? Todos los objetos relacionados (facturas, pedidos, etc.) se moverán al tercero actual, y el tercero será eliminado. ThirdpartiesMergeSuccess=Los terceros han sido fusionados SaleRepresentativeLogin=Inicio de sesión del comercial SaleRepresentativeFirstname=Nombre del comercial diff --git a/htdocs/langs/es_ES/compta.lang b/htdocs/langs/es_ES/compta.lang index 46ad0d6c4b5..76bf55ea0ec 100644 --- a/htdocs/langs/es_ES/compta.lang +++ b/htdocs/langs/es_ES/compta.lang @@ -190,10 +190,10 @@ AccountancyJournal=Código contable diario ACCOUNTING_VAT_SOLD_ACCOUNT=Cuenta contable por defecto para el IVA de ventas (usado si no se define en el diccionario de IVA) ACCOUNTING_VAT_BUY_ACCOUNT=Cuenta contable por defecto para el IVA de compras (usado si no se define en el diccionario de IVA) ACCOUNTING_VAT_PAY_ACCOUNT=Código contable por defecto para el pago de IVA -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER=Cuenta contable a usar para clientes +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero +ACCOUNTING_ACCOUNT_SUPPLIER=Cuenta contable a usar para proveedores +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Se utilizará una cuenta contable dedicada definida en la ficha de terceros para el relleno del Libro Mayor, o como valor predeterminado de la contabilidad del Libro Mayor si no se define una cuenta contable en la ficha del tercero CloneTax=Clonar una tasa social/fiscal ConfirmCloneTax=Confirmar la clonación de una tasa social/fiscal CloneTaxForNextMonth=Clonarla para el próximo mes diff --git a/htdocs/langs/es_ES/contracts.lang b/htdocs/langs/es_ES/contracts.lang index 98a8bc8d59e..40781876e4c 100644 --- a/htdocs/langs/es_ES/contracts.lang +++ b/htdocs/langs/es_ES/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Este listado contiene solamente los servicios de c StandardContractsTemplate=Modelo de contrato estandar ContactNameAndSignature=Para %s, nombre y firma: OnlyLinesWithTypeServiceAreUsed=Solo serán clonadas las líneas del tipo "Servicio" +CloneContract=Copiar contacto +ConfirmCloneContract=¿Está seguro de querer copiar el contrato %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Comercial firmante del contrato diff --git a/htdocs/langs/es_ES/cron.lang b/htdocs/langs/es_ES/cron.lang index 139b0f5df66..e9fffb99b60 100644 --- a/htdocs/langs/es_ES/cron.lang +++ b/htdocs/langs/es_ES/cron.lang @@ -25,7 +25,7 @@ CronDelete=Borrar tareas programadas CronConfirmDelete=¿Está seguro de querer eliminar esta tarea programada? CronExecute=Ejecutar tarea programada CronConfirmExecute=¿Está seguro de querer ejecutar esta tarea programada ahora? -CronInfo=Scheduled job module allows to schedule jobs to execute them automatically. Jobs can also be started manually. +CronInfo=Tareas programadas le permite ejecutar tareas que han sido programadas. Las tareas también pueden iniciarse manualmente. CronTask=Tarea CronNone=Ninguna CronDtStart=No antes de @@ -57,12 +57,12 @@ CronStatusActiveBtn=Activo CronStatusInactiveBtn=Inactivo CronTaskInactive=Esta tarea esta inactiva CronId=Id -CronClassFile=Filename with class -CronModuleHelp=Name of Dolibarr module directory (also work with external Dolibarr module).
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for module is product -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php -CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product -CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth -CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef +CronClassFile=Nombre de archivo con clase +CronModuleHelp=Nombre del directorio del módulo Dolibarr (también funciona con módulos externos).
Por ejemplo, para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del módulo es product +CronClassFileHelp=El nombre del archivo a cargar (la ruta es relativa al directorio raiz del servidor web).
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del nombre del archivo de la clase es product.class.php +CronObjectHelp=El nombre del objeto a cargar.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del nombre de la clase es Product +CronMethodHelp=El método del objeto a lanzar.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, el valor del método es fecth +CronArgsHelp=Los argumentos del método.
Por ejemplo para realizar un fetch del objeto Product /htdocs/product/class/product.class.php, los valores pueden ser 0, ProductRef CronCommandHelp=El comando en línea del sistema a ejecutar. CronCreateJob=Crear nueva tarea programada CronFrom=De @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Vaya al menú "Inicio - Utilidades administraci JobDisabled=Tarea desactivada MakeLocalDatabaseDumpShort=Copia local de la base de datos MakeLocalDatabaseDump=Crear una copia local de la base de datos -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. +WarningCronDelayed=Atención: para mejorar el rendimiento, cualquiera que sea la próxima fecha de ejecución de las tareas activas, sus tareas pueden retrasarse un máximo de %s horas antes de ejecutarse diff --git a/htdocs/langs/es_ES/errors.lang b/htdocs/langs/es_ES/errors.lang index cb42a47455c..0b170ca6342 100644 --- a/htdocs/langs/es_ES/errors.lang +++ b/htdocs/langs/es_ES/errors.lang @@ -18,8 +18,8 @@ ErrorFailToCreateFile=Error al crear el archivo '%s' ErrorFailToRenameDir=Error al renombrar el directorio '%s' a '%s'. ErrorFailToCreateDir=Error al crear el directorio '%s' ErrorFailToDeleteDir=Error al eliminar el directorio '%s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorFailToMakeReplacementInto=Error al realizar el reemplazo en el archivo '%s'. +ErrorFailToGenerateFile=Error al generar el archivo '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Este contacto ya está definido como contacto para este tipo. ErrorCashAccountAcceptsOnlyCashMoney=Esta cuenta bancaria es de tipo caja y sólo acepta pagos en efectivo. ErrorFromToAccountsMustDiffers=La cuenta origen y destino deben ser diferentes. @@ -44,7 +44,7 @@ ErrorFailedToWriteInDir=Imposible escribir en el directorio %s ErrorFoundBadEmailInFile=Encontrada sintaxis incorrecta en email en %s líneas en archivo (ejemplo linea %s con email=%s) ErrorUserCannotBeDelete=No puede eliminarse el usuario. Es posible que esté asociado a items de Dolibarr ErrorFieldsRequired=No se indicaron algunos campos obligatorios -ErrorSubjectIsRequired=The email topic is required +ErrorSubjectIsRequired=El asunto del e-mail es obligatorio ErrorFailedToCreateDir=Error en la creación de un directorio. Compruebe que el usuario del servidor Web tiene derechos de escritura en los directorios de documentos de Dolibarr. Si el parámetro safe_mode está activo en este PHP, Compruebe que los archivos php Dolibarr pertenecen al usuario del servidor Web. ErrorNoMailDefinedForThisUser=E-Mail no definido para este usuario ErrorFeatureNeedJavascript=Esta funcionalidad precisa de javascript activo para funcionar. Modifique en configuración->entorno. @@ -117,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=Las cantidades en las líneas de factur ErrorWebServerUserHasNotPermission=La cuenta de ejecución del servidor web %s no dispone de los permisos para esto ErrorNoActivatedBarcode=No hay activado ningún tipo de código de barras ErrUnzipFails=No se ha podido descomprimir el archivo %s con ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP +ErrNoZipEngine=En este PHP no hay motor para descomprimir el archivo %s ErrorFileMustBeADolibarrPackage=El archivo %s debe ser un paquete Dolibarr en formato zip ErrorModuleFileRequired=Debe seleccionar un archivo de módulo Dolibarr ErrorPhpCurlNotInstalled=La extensión PHP CURL no se encuentra instalada, es indispensable para dialogar con Paypal. @@ -168,7 +168,7 @@ ErrorGlobalVariableUpdater5=Sin variable global seleccionada ErrorFieldMustBeANumeric=El campo %s debe contener un valor numérico ErrorMandatoryParametersNotProvided=Los parámetro(s) obligatorio(s) no están todavía definidos ErrorOppStatusRequiredIfAmount=Ha indicado un importe estimado para esta oportunidad/lead. Debe indicar también su estado -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s +ErrorFailedToLoadModuleDescriptorForXXX=Error al cargar el descriptor de clase del módulo %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Definición incorrecta de la matriz de menú en el descriptor del módulo (valor incorrecto para la clave fk_menu) ErrorSavingChanges=Ha ocurrido un error al guardar los cambios ErrorWarehouseRequiredIntoShipmentLine=El almacén es obligatorio en la línea a enviar @@ -181,9 +181,9 @@ ErrorStockIsNotEnoughToAddProductOnShipment=No hay stock suficiente del producto ErrorStockIsNotEnoughToAddProductOnProposal=No hay stock suficiente del producto %s para añadirlo a un nuevo presupuesto. ErrorFailedToLoadLoginFileForMode=Error al obtener la clave de acceso para el modo '%s'. ErrorModuleNotFound=No se ha encontrado el archivo del módulo. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorFieldAccountNotDefinedForBankLine=Valor para la cuenta contable no indicada para la línea origen %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=Valor de la cuenta contable no indicado para la factura id %s (%s) +ErrorFieldAccountNotDefinedForLine=Valor para la cuenta contable no indicado para la línea (%s) ErrorBankStatementNameMustFollowRegex=Error, el nombre de estado de la cuenta bancaria debe seguir la siguiente regla de sintaxis %s ErrorPhpMailDelivery=Compruebe que no use un número demasiado alto de destinatarios y que su contenido de correo electrónico no sea similar a un Spam. Pida también a su administrador que verifique el cortafuegos y los archivos de los registros del servidor para obtener una información más completa. ErrorUserNotAssignedToTask=El usuario debe ser asignado a la tarea para que pueda ingresar tiempo consumido. @@ -192,8 +192,8 @@ ErrorModuleFileSeemsToHaveAWrongFormat=Parece que el módulo tiene un formato in ErrorFilenameDosNotMatchDolibarrPackageRules=El nombre del archivo del módulo (%s) no coincide coincide con la sintaxis del nombre esperado: %s ErrorDuplicateTrigger=Error, nombre de trigger %s duplicado. Ya se encuentra cargado desde %s ErrorNoWarehouseDefined=Error, no hay definidos almacenes. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorBadLinkSourceSetButBadValueForRef=El enlace que utiliza no es válido. Hay definido un 'origen para el pago, pero el valor de 'ref' no es válido. +ErrorTooManyErrorsProcessStopped=Demasiados errores. El proceso ha sido detenido # Warnings WarningPasswordSetWithNoAccount=Se fijó una contraseña para este miembro. Sin embargo, no se ha creado ninguna cuenta de usuario. Así que esta contraseña no se puede utilizar para acceder a Dolibarr. Puede ser utilizada por un módulo/interfaz externo, pero si no necesitar definir accesos de un miembro, puede desactivar la opción "Administrar un inicio de sesión para cada miembro" en la configuración del módulo miembros. Si necesita administrar un inicio de sesión, pero no necesita ninguna contraseña, puede dejar este campo vacío para evitar esta advertencia. Nota: También puede usarse el correo electrónico como inicio de sesión si el miembro está vinculada a un usuario. diff --git a/htdocs/langs/es_ES/exports.lang b/htdocs/langs/es_ES/exports.lang index 882a654002d..5b51848cd46 100644 --- a/htdocs/langs/es_ES/exports.lang +++ b/htdocs/langs/es_ES/exports.lang @@ -109,12 +109,18 @@ Separator=Separador Enclosure=Delimitador de campos SpecialCode=Código especial ExportStringFilter=%% permite reemplazar uno o más carácteres en el texto -ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtros por un año/mes/día
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtros entre un rango de años/meses/días
> YYYY, > YYYYMM, > YYYYMMDD : filtros en todos los años/meses/días siguientes
< YYYY, < YYYYMM, < YYYYMMDD : filtros en todos los años/meses/días anteriores +ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtros por un año/mes/día
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtros entre un rango de años/meses/días
> YYYY, > YYYYMM, > YYYYMMDD : filtros en todos los años/meses/días siguientes
< YYYY, < YYYYMM, < YYYYMMDD : filtros en todos los años/meses/días anteriores ExportNumericFilter=NNNNN filtros por un valor
NNNNN+NNNNN filtros por un rango de valores
< NNNNN filtros por valores bajos
> NNNNN filteros por valores altos ImportFromLine=Empezar la importación desde la línea nº EndAtLineNb=Terminar en la línea nº +ImportFromToLine=Importar números de línea (de - a) SetThisValueTo2ToExcludeFirstLine=Por ejemplo, indicar 3 para excluir las 2 primeras líneas KeepEmptyToGoToEndOfFile=Dejar este campo vacío para llegar al final del archivo +SelectPrimaryColumnsForUpdateAttempt=Seleccionar columna(s) para usar como clave principal en el intento de actualización +UpdateNotYetSupportedForThisImport=La actualización no es compatible con este tipo de importación (sólo inserciones) +NoUpdateAttempt=No se realizó ningún intento de actualización, sólo inserciones +ImportDataset_user_1=Usuarios (empleados o no) y sus propiedades +ComputedField=Campo combinado ## filters SelectFilterFields=Si quiere aplicar un filtro sobre algunos valores, introdúzcalos aquí. FilteredFields=Campos filtrados diff --git a/htdocs/langs/es_ES/hrm.lang b/htdocs/langs/es_ES/hrm.lang index e891862f8ec..e99e9fee8fb 100644 --- a/htdocs/langs/es_ES/hrm.lang +++ b/htdocs/langs/es_ES/hrm.lang @@ -9,8 +9,8 @@ ConfirmDeleteEstablishment=¿Está seguro de querer eliminar este establecimient OpenEtablishment=Abrir establecimiento CloseEtablishment=Cerrar establecimiento # Dictionary -DictionaryDepartment= R.R.H.H. Listado departamentos -DictionaryFunction= R.R.H.H. Listado funciones +DictionaryDepartment=R.R.H.H. Listado departamentos +DictionaryFunction=R.R.H.H. Listado funciones # Module Employees=Empleados Employee=Empleado diff --git a/htdocs/langs/es_ES/install.lang b/htdocs/langs/es_ES/install.lang index 6788b3ae8dd..ca340bcc6d1 100644 --- a/htdocs/langs/es_ES/install.lang +++ b/htdocs/langs/es_ES/install.lang @@ -132,12 +132,13 @@ MigrationFinished=Actualización terminada LastStepDesc=Último paso: Indique aquí la cuenta y la contraseña del primer usuario que usted utilizará para conectarse a la aplicación. No pierda estos identificadores, es la cuenta que permite administrar el resto. ActivateModule=Activación del módulo %s ShowEditTechnicalParameters=Pulse aquí para ver/editar los parámetros técnicos (modo experto) -WarningUpgrade=Advertencia: \\n¿Ha realizado una copia de seguridad de su base de datos antes? \\nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\\n\\nHaga clic en Aceptar para iniciar el proceso de actualización... +WarningUpgrade=Advertencia: \\\n¿Ha realizado una copia de seguridad de su base de datos antes? \\\nEsto es altamente recomendado: por ejemplo, debido a algunos errores en los sistemas de bases de datos (por ejemplo MySQL versión 5.5.40/41/42/43), algunos datos o tablas pueden perderse durante este proceso, por lo que es altamente recomendado tener un volcado completo de la base de datos antes de iniciar la actualización.\\\n\\\nHaga clic en Aceptar para iniciar el proceso de actualización... ErrorDatabaseVersionForbiddenForMigration=Su versión de base de datos es la %s. Tiene un error crítico que hace que pierda los datos si cambia la estructura de la base de datos, como esto es necesario para el proceso de actualización, este no se va a realizar hasta que actualice su base de datos a una versión mayor con el error subsanado (listado de versiones conocidas con este error: %s) KeepDefaultValuesWamp=Está utilizando el asistente de instalación DoliWamp, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello. KeepDefaultValuesDeb=Está utilizando el asistente de instalación Dolibarr de un paquete Linux (Ubuntu, Debian, Fedora...), los valores propuestos aquí están optimizados. Sólo será necesaria la contraseña del propietario de la base de datos a crear. Cambie la otra información sólamente si está seguro de ello. KeepDefaultValuesMamp=Está utilizando el asistente de instalación DoliMamp, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello. KeepDefaultValuesProxmox=Está utilizando el asistente de instalación Dolibarr desde una máquina virtual Proxmox, los valores propuestos aquí están optimizados. Cambielos solamente si está seguro de ello. +UpgradeExternalModule=Ejecutar proceso dedicado para actualizar módulos externos ######### # upgrade diff --git a/htdocs/langs/es_ES/interventions.lang b/htdocs/langs/es_ES/interventions.lang index 4ec5620c045..229b327db45 100644 --- a/htdocs/langs/es_ES/interventions.lang +++ b/htdocs/langs/es_ES/interventions.lang @@ -18,7 +18,7 @@ CloneIntervention=Cerrar intervención ConfirmDeleteIntervention=¿Está seguro de querer eliminar esta intervención? ConfirmValidateIntervention=¿Está seguro de querer validar esta intervención bajo la referencia %s? ConfirmModifyIntervention=¿Está seguro de querer modificar esta intervención? -ConfirmDeleteInterventionLine==¿Está seguro de querer eliminar esta linea? +ConfirmDeleteInterventionLine=¿Está seguro de querer eliminar esta linea? ConfirmCloneIntervention=¿Está seguro de querer clonar esta intervención? NameAndSignatureOfInternalContact=Nombre y firma del participante: NameAndSignatureOfExternalContact=Nombre y firma del cliente: diff --git a/htdocs/langs/es_ES/loan.lang b/htdocs/langs/es_ES/loan.lang index e86cec91bac..6b7fbf06d34 100644 --- a/htdocs/langs/es_ES/loan.lang +++ b/htdocs/langs/es_ES/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s se destinará al INTERÉS GoToPrincipal=%s se destinará al PRINCIPAL YouWillSpend=Pagará %s en el año %s ListLoanAssociatedProject=Listado de préstamos asociados al proyecto +AddLoan=Crear crédito # Admin ConfigLoan=Configuración del módulo préstamos LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Cuenta contable por defecto para el capital LOAN_ACCOUNTING_ACCOUNT_INTEREST=Cuenta contable por defecto para el interés LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Cuenta contable por defecto para el seguro +CreateCalcSchedule=Crear/Modificar vencimientos de préstamos diff --git a/htdocs/langs/es_ES/mails.lang b/htdocs/langs/es_ES/mails.lang index f5e0f0713b0..037fef91381 100644 --- a/htdocs/langs/es_ES/mails.lang +++ b/htdocs/langs/es_ES/mails.lang @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Filtro de contactos con tercero MailingModuleDescContactsByCompanyCategory=Contactos de terceros por categoría MailingModuleDescContactsByCategory=Contactos por categoría MailingModuleDescContactsByFunction=Contactos por posición +MailingModuleDescEmailsFromFile=E-mails de archivo +MailingModuleDescEmailsFromUser=E-mails enviados por usuario +MailingModuleDescDolibarrUsers=Usuarios con e-mails +MailingModuleDescThirdPartiesByCategories=Terceros (por categoría) # Libelle des modules de liste de destinataires mailing LineInFile=Línea %s en archivo @@ -123,7 +127,7 @@ MailSendSetupIs=La configuración de e-mailings está a '%s'. Este modo no puede MailSendSetupIs2=Antes debe, con una cuenta de administrador, en el menú %sInicio - Configuración - E-Mails%s, cambiar el parámetro '%s' para usar el modo '%s'. Con este modo puede configurar un servidor SMTP de su proveedor de servicios de internet. MailSendSetupIs3=Si tiene preguntas de como configurar su servidor SMTP, puede contactar con %s. YouCanAlsoUseSupervisorKeyword=Puede también añadir la etiqueta __SUPERVISOREMAIL__ para tener un e-mail enviado del supervisor al usuario (solamente funciona si un e-mail es definido para este supervisor) -NbOfTargetedContacts=Número actual de contactos destinariarios de e-mails +NbOfTargetedContacts=Número actual de contactos destinariarios de e-mails UseFormatFileEmailToTarget=Los ficheros importados deben tener el formato email;nombre;apellido;otros UseFormatInputEmailToTarget=Entra una cadena con el formato email;nombre;apellido;otros MailAdvTargetRecipients=Destinatarios (selección avanzada) diff --git a/htdocs/langs/es_ES/main.lang b/htdocs/langs/es_ES/main.lang index 6c2cb78990b..1a785c93704 100644 --- a/htdocs/langs/es_ES/main.lang +++ b/htdocs/langs/es_ES/main.lang @@ -72,8 +72,10 @@ SeeHere=Vea aquí Apply=Aplicar BackgroundColorByDefault=Color de fondo FileRenamed=El archivo ha sido renombrado correctamente -FileUploaded=El archivo se ha subido correctamente FileGenerated=el archivo ha sido generado correctamente +FileSaved=The file was successfully saved +FileUploaded=El archivo se ha subido correctamente +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Un archivo ha sido seleccionado para adjuntarlo, pero aún no se ha subido. Haga clic en "Adjuntar este archivo" para ello. NbOfEntries=Nº de entradas GoToWikiHelpPage=Leer la ayuda en línea (es necesario acceso a Internet ) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Sin IVA TTC=IVA incluido +INCT=Inc. all taxes VAT=IVA VATs=Tasas sobre ventas LT1ES=RE @@ -366,8 +369,8 @@ VATRate=Tasa IVA Average=Media Sum=Suma Delta=Diferencia -Module=Module/Application -Modules=Modules/Applications +Module=Módulo +Modules=Módulos Option=Opción List=Listado FullList=Listado completo @@ -518,7 +521,6 @@ MonthShort10=oct. MonthShort11=nov. MonthShort12=dic. AttachedFiles=Archivos y documentos adjuntos -FileTransferComplete=Se transfirió correctamente el archivo DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -612,8 +614,8 @@ PartialWoman=Parcial TotalWoman=Total NeverReceived=Nunca recibido Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanChangeValuesForThisListFromDictionarySetup=Puede cambiar estos valores en el menú Configuración->Diccionarios +YouCanChangeValuesForThisListFrom=Puede cambiar los valores de este listado desde el menú %s YouCanSetDefaultValueInModuleSetup=Puede establecer el valor predeterminado que se utiliza cuando se crea un nuevo registro en la configuración del módulo Color=Color Documents=Documentos @@ -649,7 +651,7 @@ FreeLineOfType=Entrada libre del tipo CloneMainAttributes=Clonar el objeto con estos atributos principales PDFMerge=Fusión PDF Merge=Fusión -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Modelo PDF estándard PrintContentArea=Mostrar página de impresión de la zona central MenuManager=Gestor de menú WarningYouAreInMaintenanceMode=Atención, está en modo mantenimiento, así que solamente el login %s está autorizado para utilizar la aplicación en este momento. @@ -716,7 +718,7 @@ from=de toward=hacia Access=Acceso SelectAction=Seleccione acción -SelectTargetUser=Select target user/employee +SelectTargetUser=Seleccionar usuario/empleado de destino HelpCopyToClipboard=Use Ctrl+C para copiar al portapapeles SaveUploadedFileWithMask=Guardar el archivo con el nombre "%s" (sino "%s") OriginFileName=Nombre del archivo origen @@ -727,7 +729,7 @@ ViewPrivateNote=Ver notas XMoreLines=%s línea(s) ocultas PublicUrl=URL pública AddBox=Añadir caja -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Seleccione un elemento y haga clic %s PrintFile=Imprimir Archivo %s ShowTransaction=Mostrar registro en la cuenta bancaria GoIntoSetupToChangeLogo=Vaya a Inicio->Configuración->Empresa/Institución para cambiar el logo o vaya a Inicio->Configuración->Entorno para ocultarlo @@ -743,8 +745,8 @@ Hello=Hola Sincerely=Atentamente DeleteLine=Eliminación de línea ConfirmDeleteLine=¿Está seguro de querer eliminar esta línea? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. +NoPDFAvailableForDocGenAmongChecked=Sin PDF disponibles para la generación de documentos entre los registros seleccionados +TooManyRecordForMassAction=Demasiados registros seleccionados para la acción masiva. La acción está restringida a un listado de %s registros. NoRecordSelected=Sin registros seleccionados MassFilesArea=Área de archivos generados por acciones masivas ShowTempMassFilesArea=Mostrar área de archivos generados por acciones masivas @@ -764,20 +766,20 @@ Calendar=Calendario GroupBy=Agrupado por... ViewFlatList=Ver lista plana RemoveString=Eliminar cadena '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Algunos idiomas pueden estar parcialmente traducidos o pueden contener errores. Si detecta algunos, puede arreglar los archivos de idiomas registrándose en http://transifex.com/projects/p/dolibarr/. DirectDownloadLink=Enlace de descarga directa Download=Descargar ActualizeCurrency=Actualizar el tipo de cambio Fiscalyear=Año fiscal ModuleBuilder=Módulo Builder -SetMultiCurrencyCode=Set currency +SetMultiCurrencyCode=Establecer moneda BulkActions=Acciones masivas -ClickToShowHelp=Click to show tooltip help -HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +ClickToShowHelp=Haga clic para mostrar la ayuda sobre herramientas +HR=RRHH +HRAndBank=RRHH y bancos +AutomaticallyCalculated=Calculado automáticamente +TitleSetToDraft=Devolver a borrador +ConfirmSetToDraft=¿Está seguro de querer devolver al estado Borrador? # Week day Monday=Lunes Tuesday=Martes diff --git a/htdocs/langs/es_ES/members.lang b/htdocs/langs/es_ES/members.lang index f7a5d316def..e9f47b42b80 100644 --- a/htdocs/langs/es_ES/members.lang +++ b/htdocs/langs/es_ES/members.lang @@ -42,12 +42,12 @@ MemberTypeId=ID tipo de miembro MemberTypeLabel=Etiqueta tipo de miembro MembersTypes=Tipos de miembros MemberStatusDraft=Borrador (a validar) -MemberStatusDraftShort=A validar +MemberStatusDraftShort=Borrador MemberStatusActive=Validado (en espera de afiliación) MemberStatusActiveShort=Validado MemberStatusActiveLate=Afiliación expirada MemberStatusActiveLateShort=No al día -MemberStatusPaid=Afiliación al día +MemberStatusPaid=Afiliaciones al día MemberStatusPaidShort=Al día MemberStatusResiliated=Miembro de baja MemberStatusResiliatedShort=De baja @@ -90,6 +90,7 @@ PublicMemberList=Listado público de miembros BlankSubscriptionForm=Formulario público de auto-inscripción BlankSubscriptionFormDesc=Dolibarr puede proporcionar una página pública para que los visitantes externos puedan solicitar afiliarse. Si se encuentra activo un módulo de pago en línea, se propondrá automáticamente un formulario de pago. EnablePublicSubscriptionForm=Activar el formulario público de auto-inscripción +ForceMemberType=Forzar el tipo de miembro ExportDataset_member_1=Miembros y afiliaciones ImportDataset_member_1=Miembros LastMembersModified=Últimos %s miembros modificados @@ -150,6 +151,7 @@ MembersByTownDesc=Esta pantalla presenta una estadística del número de miembro MembersStatisticsDesc=Elija las estadísticas que desea consultar... MenuMembersStats=Estadísticas LastMemberDate=Última fecha de miembro +LatestSubscriptionDate=Fecha de la última cotización Nature=Naturaleza Public=Información pública NewMemberbyWeb=Nuevo miembro añadido. En espera de validación diff --git a/htdocs/langs/es_ES/modulebuilder.lang b/htdocs/langs/es_ES/modulebuilder.lang new file mode 100644 index 00000000000..12876829546 --- /dev/null +++ b/htdocs/langs/es_ES/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Módulos generados/editables encontrados: %s (se detectan como editables cuando el archivo %s existe en la raíz del directorio del módulo). +NewModule=Nuevo módulo +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Módulo inicializado +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Introduzca aquí toda la información general que describa su módulo +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Esta pestaña está dedicada a definir entradas de menú proporcionadas por su módulo. +ModuleBuilderDescpermissions=Esta pestaña está dedicada a definir los nuevos permisos que desea proporcionar con su módulo. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=Esta pestaña está dedicada a los hooks. +ModuleBuilderDescwidgets=Esta pestaña está dedicada a administrar/crear widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Zona peligrosa +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=Este módulo ha sido activado. Cualquier cambio en él puede romper una característica activa actual. +DescriptionLong=Descripción larga +EditorName=Nombre del editor +EditorUrl=URL del editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/es_ES/multicurrency.lang b/htdocs/langs/es_ES/multicurrency.lang new file mode 100644 index 00000000000..a64bfa51b44 --- /dev/null +++ b/htdocs/langs/es_ES/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi moneda +ErrorAddRateFail=Error al añadir tasa +ErrorAddCurrencyFail=Error al añadir la divisa +ErrorDeleteCurrencyFail=Error al eliminar +multicurrency_syncronize_error=Error sincronización: %s +multicurrency_useOriginTx=Cuando un objeto se crea desde otro, mantiene la tasa original del objeto de origen (de lo contrario, utilice la nueva tasa conocida) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=Debe crear una cuenta en su sitio web para utilizar esta función.
Obtenga su clave API
Si utiliza una cuenta gratuita, no puede cambiar la divisa origen (USD por defecto)
. Pero si su divisa principal no es USD, puede usar la divisa origen alternativa para forzar su divisa principal.

Está limitado a 1000 sincronizaciones por mes +multicurrency_appId=Clave API +multicurrency_appCurrencySource=Divisa origen +multicurrency_alternateCurrencySource= Divisa origen alternativa +CurrenciesUsed=Divisas usadas +CurrenciesUsed_help_to_add=Añada las diferentes divisas y las tasas que necesite usar en sus presupuestos, pedidos, etc. +rate=tasa +MulticurrencyReceived=Recibido, divisa origen +MulticurrencyRemainderToTake=Cantidad restante, moneda original +MulticurrencyPaymentAmount=Importe total, divisa original diff --git a/htdocs/langs/es_ES/other.lang b/htdocs/langs/es_ES/other.lang index cd4ed4facc7..33379c66d60 100644 --- a/htdocs/langs/es_ES/other.lang +++ b/htdocs/langs/es_ES/other.lang @@ -9,18 +9,18 @@ BirthdayDate=Fecha de cumpleaños DateToBirth=Fecha de nacimiento BirthdayAlertOn=alerta aniversario activada BirthdayAlertOff=alerta aniversario desactivada -TransKey=Translation of the key TransKey -MonthOfInvoice=Month (number 1-12) of invoice date -TextMonthOfInvoice=Month (tex) of invoice date -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date -TextPreviousMonthOfInvoice=Previous month (text) of invoice date -NextMonthOfInvoice=Following month (number 1-12) of invoice date -TextNextMonthOfInvoice=Following month (text) of invoice date -ZipFileGeneratedInto=Zip file generated into %s. +TransKey=Traducción de la clave TransKey +MonthOfInvoice=Mes (numero 1-12) de la fecha de la factura +TextMonthOfInvoice=Mes (texto) de la fecha de la factura +PreviousMonthOfInvoice=Mes anterior (texto) de la fecha de la factura +TextPreviousMonthOfInvoice=Mes anterior (texto) de la fecha de la factura +NextMonthOfInvoice=Mes siguiente (número 1-12) de la fecha de la factura +TextNextMonthOfInvoice=Mes siguiente (texto) de la fecha de la factura +ZipFileGeneratedInto=Archivo zip generado en %s. -YearOfInvoice=Year of invoice date -PreviousYearOfInvoice=Previous year of invoice date -NextYearOfInvoice=Following year of invoice date +YearOfInvoice=Año de la fecha de la factura +PreviousYearOfInvoice=Año anterior de la fecha de la factura +NextYearOfInvoice=Mes siguiente de la fecha de la factura Notify_FICHINTER_ADD_CONTACT=Contacto añadido a intervención Notify_FICHINTER_VALIDATE=Validación ficha intervención @@ -74,14 +74,14 @@ PredefinedMailTestHtml=Esto es un e-mail de prueba(la palabra prueba debe PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nLe adjuntamos la factura __REF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendInvoiceReminder=Buenos días, __CONTACTCIVNAME__ \n\n Nos ponemos en contacto con usted ya que la factura __REF__ parece no estar pagada.\n\n Ante cualquier duda, consúltenos y será atendido a la mayor brevedad posible.\n\n __PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendProposal=__CONTACTCIVNAME__\n\nLe adjuntamos el presupuesto __PROPREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ -PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__\n\nYou will find here the price request __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ +PredefinedMailContentSendSupplierProposal=__CONTACTCIVNAME__ \n\nAquí encontrará la petición de presupuesto __REF__\n\n__PERSONALIZED__ Cordialmente\n\n __SIGNATURE__ PredefinedMailContentSendOrder=__CONTACTCIVNAME__\n\nLe adjuntamos el pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nLe adjuntamos nuestro pedido __ORDERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nLe adjuntamos la factura __REF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nLe adjuntamos el envío __SHIPPINGREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nLe adjuntamos la intervención __FICHINTERREF__\n\n__PERSONALIZED__Cordialmente\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=aa __PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr es un ERP/CRM para la gestión de negocios (profesionales o asociaciones), compuesto de módulos funcionales independientes y opcionales. Una demostración que incluya todos estos módulos no tiene sentido porque no utilizará todos los módulos. Además, tiene disponibles varios tipos de perfiles de demostración. ChooseYourDemoProfil=Elija el perfil de demostración que mejor se adapte a sus necesidades ... ChooseYourDemoProfilMore=... o construya su perfil
(modo de selección manual) @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=libra +WeightUnitounce=onza Length=Longitud LengthUnitm=m LengthUnitdm=dm @@ -160,20 +161,20 @@ AuthenticationDoesNotAllowSendNewPassword=El modo de autenticación es %s EnableGDLibraryDesc=Instale o active la libreria GD en su PHP para poder usar esta opción ProfIdShortDesc=Prof Id %s es una información dependiente del país del tercero.
Por ejemplo, para el país %s, és el código %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Statistics for sum of qty of products/services -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) -NumberOfProposals=Number of proposals -NumberOfCustomerOrders=Number of customer orders -NumberOfCustomerInvoices=Number of customer invoices -NumberOfSupplierProposals=Number of supplier proposals -NumberOfSupplierOrders=Number of supplier orders -NumberOfSupplierInvoices=Number of supplier invoices -NumberOfUnitsProposals=Number of units on proposals -NumberOfUnitsCustomerOrders=Number of units on customer orders -NumberOfUnitsCustomerInvoices=Number of units on customer invoices -NumberOfUnitsSupplierProposals=Number of units on supplier proposals -NumberOfUnitsSupplierOrders=Number of units on supplier orders -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices +StatsByNumberOfUnits=Estadísticas en número de unidades de producto/servicio +StatsByNumberOfEntities=Estadísticas en número de identidades referentes (nº de facturas o pedidos...) +NumberOfProposals=Número de pedidos +NumberOfCustomerOrders=Número de pedidos de clientes +NumberOfCustomerInvoices=Número de facturas a clientes +NumberOfSupplierProposals=Número de presupuestos de proveedores +NumberOfSupplierOrders=Número de facturas de proveedores +NumberOfSupplierInvoices=Número de facturas de proveedores +NumberOfUnitsProposals=Número de unidades en los presupuestos a clientes +NumberOfUnitsCustomerOrders=Número de unidades en los pedidos de clientes +NumberOfUnitsCustomerInvoices=Número de unidades en las facturas a clientes +NumberOfUnitsSupplierProposals=Número de unidades en los presupuestos de proveedores +NumberOfUnitsSupplierOrders=Número de unidades en las facturas de proveedores +NumberOfUnitsSupplierInvoices=Número de unidades en las facturas de proveedores EMailTextInterventionAddedContact=Se le ha asignado la intervención %s EMailTextInterventionValidated=Ficha intervención %s validada EMailTextInvoiceValidated=Factura %s validada diff --git a/htdocs/langs/es_ES/paybox.lang b/htdocs/langs/es_ES/paybox.lang index 67983004b5c..fe42bd275cc 100644 --- a/htdocs/langs/es_ES/paybox.lang +++ b/htdocs/langs/es_ES/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-Mail de confirmación de pago Creditor=Beneficiario PaymentCode=Código de pago PayBoxDoPayment=Continuar el pago con tarjeta +ToPay=Emitir pago YouWillBeRedirectedOnPayBox=Va a ser redirigido a la página segura de Paybox para indicar su tarjeta de crédito Continue=Continuar ToOfferALinkForOnlinePayment=URL de pago %s diff --git a/htdocs/langs/es_ES/paypal.lang b/htdocs/langs/es_ES/paypal.lang index bdce88362f8..a3d55ab6938 100644 --- a/htdocs/langs/es_ES/paypal.lang +++ b/htdocs/langs/es_ES/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Identificador de la transacción: %s PAYPAL_ADD_PAYMENT_URL=Añadir la url del pago Paypal al enviar un documento por e-mail PredefinedMailContentLink=Puede hacer clic en el enlace seguro de abajo para realizar su pago a través de PayPal\n\n%s\n\n YouAreCurrentlyInSandboxMode=Actualmente se encuentra en modo "sandbox" -NewPaypalPaymentReceived=Nuevo pago Paypal recibido -NewPaypalPaymentFailed=Nuevo intento de pago Paypal sin éxito +NewOnlinePaymentReceived=Nuevo pago en línea recibido +NewOnlinePaymentFailed=Nuevo pago en línea intentado pero ha fallado PAYPAL_PAYONLINE_SENDEMAIL=E-Mail a avisar en caso de pago (con éxito o no) ReturnURLAfterPayment=URL de retorno después del pago -ValidationOfPaypalPaymentFailed=La validación del pago Paypal ha fallado -PaypalConfirmPaymentPageWasCalledButFailed=La página de confirmación de pago para Paypal fue llamada por Paypal pero la confirmación falló +ValidationOfOnlinePaymentFailed=Ha fallado la validación del pago en línea +PaymentSystemConfirmPaymentPageWasCalledButFailed=La página de confirmación de pago fue llamada por el sistema de pago devolvió un error SetExpressCheckoutAPICallFailed=Llamada a la API SetExpressCheckout falló. DoExpressCheckoutPaymentAPICallFailed=Llamada a la API DoExpressCheckoutPayment falló. DetailedErrorMessage=Mensaje de error detallado ShortErrorMessage=Mensaje de error Corto ErrorCode=Código de error ErrorSeverityCode=Gravedad del Código de error +OnlinePaymentSystem=Sistema de pago online +PaypalLiveEnabled=Paypal en vivo habilitado (de lo contrario, modo prueba/sandbox) diff --git a/htdocs/langs/es_ES/products.lang b/htdocs/langs/es_ES/products.lang index 82656ea49cf..988204e125e 100644 --- a/htdocs/langs/es_ES/products.lang +++ b/htdocs/langs/es_ES/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Código contable ventas ProductOrService=Producto o servicio ProductsAndServices=Productos y servicios ProductsOrServices=Productos o servicios -ProductsOnSell=Producto a la venta o a la compra -ProductsNotOnSell=Producto ni a la venta ni a la compra +ProductsOnSaleOnly=Productos solo a la venta +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Productos en venta o en compra -ServicesOnSell=Servicios a la venta o en compra -ServicesNotOnSell=Servicios no a la venta +ServicesOnSaleOnly=Servicios solo a la venta +ServicesOnPurchaseOnly=Servicios solo en compra +ServicesNotOnSell=Servicios fuera de venta y de compra ServicesOnSellAndOnBuy=Servicios a la venta o en compra LastModifiedProductsAndServices=Últimos %s productos/servicios modificados LastRecordedProducts=Últimos %s productos registrados @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litro l=L +unitP=Pieza +unitSET=Establecer +unitS=Segundo +unitH=Hora +unitD=Día +unitKG=Kilogramo +unitG=Gramo +unitM=Metro +unitLM=Metro lineal +unitM2=Metro cuadrado +unitM3=Metro cúbico +unitL=Litro ProductCodeModel=Modelo de ref. de producto ServiceCodeModel=Modelo de ref. de servicio CurrentProductPrice=Precio actual @@ -186,6 +200,7 @@ MultipriceRules=Reglas para segmento de precios UseMultipriceRules=Use las reglas de segmentación de precios (definidas en la configuración de módulo de productos) para autocalcular los precios de todos los demás segmentos de acuerdo con el primer segmento PercentVariationOver=%% variación sobre %s PercentDiscountOver=%% descuento sobre %s +KeepEmptyForAutoCalculation=Manténgase vacío para que se calcule automáticamente el peso o volumen de productos ### composition fabrication Build=Fabricar ProductsMultiPrice=Productos y precios para cada segmento de precios @@ -232,12 +247,18 @@ ComposedProduct=Sub-producto MinSupplierPrice=Precio mínimo de proveedor MinCustomerPrice=precio mínimo a cliente DynamicPriceConfiguration=Configuración de precio dinámico -DynamicPriceDesc=Con este módulo activado, en la ficha del producto, debe ser capaz de establecer funciones matemáticas para calcular los precios a cliente o de proveedor. Puede utilizar todos los operadores matemáticos, algunas constantes y variables. Puede establecer aquí las variables que desee usar y si la variable necesita una actualización automática, la dirección URL externa a usar para actualizar automáticamente el valor. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Añadir variable AddUpdater=Añadir Actualizador GlobalVariables=Variables globales VariableToUpdate=Variable a actualizar GlobalVariableUpdaters=Actualizaciones de variables globales +GlobalVariableUpdaterType0=datos JSON +GlobalVariableUpdaterHelp0=Analiza datos JSON desde la URL especificada, el valor especifica la ubicación de valor relevante, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=datos WebService +GlobalVariableUpdaterHelp1=Analiza datos WebService de la URL especificada, NS especifica el namespace, VALUE especifica la ubicación del valor pertinente, DATA contiene los datos a enviar y METHOD es el método WS a llamar +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Intervalo de actualización (minutos) LastUpdated=Última actualización CorrectlyUpdated=Actualizado correctamente @@ -260,6 +281,8 @@ SizeUnits=Tamaño unitario DeleteProductBuyPrice=Eliminar precio de compra ConfirmDeleteProductBuyPrice=¿Está seguro de querer eliminar este precio de compra? SubProduct=Subproducto +ProductSheet=Hoja de producto +ServiceSheet=Hoja de servicio #Attributes VariantAttributes=Atributos de variantes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=¿Está seguro de querer eliminar el valor "%s ProductCombinationDeleteDialog=¿Está seguro de querer eliminar la variante del producto "%s"? ProductCombinationAlreadyUsed=Ha ocurrido un error al eliminar la variante. Compruebe que no sea usada por algún objeto ProductCombinations=Variantes +PropagateVariant=Propagar variantes HideProductCombinations=Ocultar las variantes en el selector de productos ProductCombination=Variante NewProductCombination=Nueva variante EditProductCombination=Editando variante +NewProductCombinations=Nuevas variantes +EditProductCombinations=Editando variantes +SelectCombination=Seleccione combinación ProductCombinationGenerator=Generador de variantes Features=Funciones PriceImpact=Impacto en el precio @@ -292,7 +319,7 @@ NbOfDifferentValues=Nº de valores diferentes NbProducts=Nº de productos ParentProduct=Producto padre HideChildProducts=Ocultar productos hijos -ConfirmCloneProductCombinations=¿Desea copiar toda la variante del producto al producto con la referencia dada? +ConfirmCloneProductCombinations=¿Desea copiar todas las variantes del producto al producto con la referencia dada? CloneDestinationReference=Referencia de producto de destino ErrorCopyProductCombinations=Se ha producido un error al copiar las variantes de producto ErrorDestinationProductNotFound=Producto destino no encontrado diff --git a/htdocs/langs/es_ES/projects.lang b/htdocs/langs/es_ES/projects.lang index d6dc9fc5f4a..0d75defe9e6 100644 --- a/htdocs/langs/es_ES/projects.lang +++ b/htdocs/langs/es_ES/projects.lang @@ -41,7 +41,7 @@ ShowProject=Ver proyecto SetProject=Definir proyecto NoProject=Ningún proyecto definido NbOfProjects=Nº de proyectos -NbOfTasks=Nb of tasks +NbOfTasks=Nº de tareas TimeSpent=Tiempo dedicado TimeSpentByYou=Tiempo dedicado por usted TimeSpentByUser=Tiempo dedicado por usuario @@ -64,7 +64,7 @@ TaskDescription=Descripción tarea NewTask=Nueva tarea AddTask=Crear tarea AddTimeSpent=Añadir tiempo dedicado -AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForDay=Añadir tiempos para este día/tarea Activity=Actividad Activities=Tareas/actividades MyActivities=Mis tareas/actividades @@ -84,7 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Listado de facturas predefinidas asociad ListSupplierOrdersAssociatedProject=Listado de pedidos a proveedor asociados al proyecto ListSupplierInvoicesAssociatedProject=Listado de facturas de proveedores asociadas al proyecto ListContractAssociatedProject=Listado de contratos asociados al proyecto -ListShippingAssociatedProject=List of shippings associated with the project +ListShippingAssociatedProject=Listado de envíos asociados a este proyecto ListFichinterAssociatedProject=Listado de intervenciones asociadas al proyecto ListExpenseReportsAssociatedProject=Listado de informes de gastos asociados al proyecto ListDonationsAssociatedProject=Listado de donaciones asociadas al proyecto @@ -109,7 +109,7 @@ ConfirmReOpenAProject=Está seguro de querer reabrir este proyecto? ProjectContact=Contactos proyecto ActionsOnProject=Eventos del proyecto YouAreNotContactOfProject=Usted no es contacto de este proyecto privado -UserIsNotContactOfProject=User is not a contact of this private project +UserIsNotContactOfProject=El usuario no es un contacto de este proyecto privado DeleteATimeSpent=Eliminación de tiempo dedicado ConfirmDeleteATimeSpent=¿Está seguro de querer eliminar este tiempo dedicado? DoNotShowMyTasksOnly=Ver también tareas no asignadas a mí @@ -118,7 +118,7 @@ TaskRessourceLinks=Recursos ProjectsDedicatedToThisThirdParty=Proyectos dedicados a este tercero NoTasks=Ninguna tarea para este proyecto LinkedToAnotherCompany=Enlazado a otra empresa -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=Tarea no asignada al usuario. Use el botón '%s' para asignar la tarea. ErrorTimeSpentIsEmpty=No se ha establecido el tiempo consumido ThisWillAlsoRemoveTasks=Esta operación también destruirá las tareas del proyecto (%s tareas) y sus tiempos dedicados. IfNeedToUseOhterObjectKeepEmpty=Si los elementos (factura, pedido, ...) pertenecen a un tercero que no és el seleccionado, debiendo estos estar ligados al proyecto a crear, déjelo vacío para permitir el proyecto a multi-terceros. @@ -169,30 +169,30 @@ FirstAddRessourceToAllocateTime=Asignar un usuario a la tarea para asignar tiemp InputPerDay=Entrada por día InputPerWeek=Entrada por semana InputPerAction=Entrada por acción -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=Tiempo dedicado ya registrado para esta tarea/día y usuario %s ProjectsWithThisUserAsContact=Proyectos con este usuario como contacto TasksWithThisUserAsContact=Tareas asignadas a este usuario ResourceNotAssignedToProject=No asignado al proyecto ResourceNotAssignedToTheTask=No asignado a la tarea TasksAssignedTo=Tareas asignadas a AssignTaskToMe=Asignarme tarea -AssignTaskToUser=Assign task to %s -SelectTaskToAssign=Select task to assign... +AssignTaskToUser=Asignar la tarea a %s +SelectTaskToAssign=Seleccione tarea a asignar... AssignTask=Asignar ProjectOverview=Resumen ManageTasks=Usar proyectos para seguir tareas y tiempos ManageOpportunitiesStatus=Usar proyectos para seguir leads/oportunidades ProjectNbProjectByMonth=Nº de proyectos creados por mes -ProjectNbTaskByMonth=Nb of created tasks by month +ProjectNbTaskByMonth=Nº de tareas creadas por mes ProjectOppAmountOfProjectsByMonth=Importe de oportunidades por mes ProjectWeightedOppAmountOfProjectsByMonth=Importe medio oportinidades por mes ProjectOpenedProjectByOppStatus=Proyectos/oportunidades abiertos por estado oportunidad ProjectsStatistics=Estadísticas de proyectos/leads -TasksStatistics=Statistics on project/lead tasks +TasksStatistics=Estadísticas sobre tareas de proyecto/oportunidad TaskAssignedToEnterTime=Tarea asignada. Debería poder introducir tiempos en esta tarea. IdTaskTime=Id YouCanCompleteRef=Si desea completar la referencia con alguna información (para usarlo como filtros de búsqueda), se recomienda añadir un caracter - para separarlo, la numeración automática seguirá funcionando correctamente para los próximos proyectos. Por ejemplo %s-ABC. También puede preferir añadir claves de búsqueda en la etiqueta. Pero la mejor práctica puede ser añadir un campo dedicado, también llamados atributos adicionales. -OpenedProjectsByThirdparties=Open projects by third parties +OpenedProjectsByThirdparties=Proyectos abiertos de terceros OnlyOpportunitiesShort=Solamente oportunidades OpenedOpportunitiesShort=Oportunidades abiertas NotAnOpportunityShort=No es una oportunidad diff --git a/htdocs/langs/es_ES/propal.lang b/htdocs/langs/es_ES/propal.lang index 3e6668aa196..923437a4754 100644 --- a/htdocs/langs/es_ES/propal.lang +++ b/htdocs/langs/es_ES/propal.lang @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Importe por mes (sin IVA) NbOfProposals=Número presupuestos ShowPropal=Ver presupuesto PropalsDraft=Borrador -PropalsOpened=Abierto +PropalsOpened=Activo PropalStatusDraft=Borrador (a validar) PropalStatusValidated=Validado (presupuesto abierto) PropalStatusSigned=Firmado (a facturar) diff --git a/htdocs/langs/es_ES/resource.lang b/htdocs/langs/es_ES/resource.lang index ce1556afee8..2f4732d7b90 100644 --- a/htdocs/langs/es_ES/resource.lang +++ b/htdocs/langs/es_ES/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Recurso eliminado correctamente DictionaryResourceType=Tipo de recursos SelectResource=Seleccionar recurso + +IdResource=Id recurso +AssetNumber=Número de serie +ResourceTypeCode=Código tipo recurso +ImportDataset_resource_1=Recursos diff --git a/htdocs/langs/es_ES/salaries.lang b/htdocs/langs/es_ES/salaries.lang index 941cce6e6ae..fe6c4de8ec2 100644 --- a/htdocs/langs/es_ES/salaries.lang +++ b/htdocs/langs/es_ES/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Código contable pago de salarios +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Código contable cargas financieras Salary=Salario Salaries=Salarios diff --git a/htdocs/langs/es_ES/sendings.lang b/htdocs/langs/es_ES/sendings.lang index e8897564912..b3f568055ce 100644 --- a/htdocs/langs/es_ES/sendings.lang +++ b/htdocs/langs/es_ES/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Nota de entrega ConfirmDeleteSending=¿Está seguro de querer eliminar esta expedición? ConfirmValidateSending=¿Está seguro de querer validar esta expedición con la referencia %s? ConfirmCancelSending=¿Está seguro de querer anular esta expedición? -DocumentModelSimple=Modelo simple DocumentModelMerou=Modelo Merou A5 WarningNoQtyLeftToSend=Alerta, ningún producto en espera de envío. StatsOnShipmentsOnlyValidated=Estadísticas realizadas únicamente sobre las expediciones validadas diff --git a/htdocs/langs/es_ES/stocks.lang b/htdocs/langs/es_ES/stocks.lang index 660ad65d02a..aa88a14edc0 100644 --- a/htdocs/langs/es_ES/stocks.lang +++ b/htdocs/langs/es_ES/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Etiqueta del movimiento NumberOfUnit=Número de piezas UnitPurchaseValue=Precio de compra unitario StockTooLow=Stock insuficiente -StockLowerThanLimit=El stock es menor que el límite de la alerta +StockLowerThanLimit=El stock es menor que el límite de la alerta (%s) EnhancedValue=Valor PMPValue=Valor (PMP) PMPValueShort=PMP @@ -53,7 +53,7 @@ IndependantSubProductStock=Stock del producto y stock del subproducto son indepe QtyDispatched=Cantidad recibida QtyDispatchedShort=Cant. recibida QtyToDispatchShort=Cant. a enviar -OrderDispatch=Recepción de stocks +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Regla para la reducción automática de stocks (la disminución manual es siempre posible, incluso si se activa una regla de reducción automática) RuleForStockManagementIncrease=Regla para el aumento automático de stocks (el aumento manual es siempre posible, incluso si se activa una regla de aumento automático) DeStockOnBill=Decrementar los stocks físicos sobre las facturas/abonos a clientes @@ -71,7 +71,10 @@ StockLimitShort=Límite para alerta StockLimit=Stock límite para alertas PhysicalStock=Stock físico RealStock=Stock real +RealStockDesc=El stock físico o real es la stock que tiene actualmente en sus almacenes internos. +RealStockWillAutomaticallyWhen=El stock real cambiará automáticamente de acuerdo con estas reglas (consulte la configuración del módulo de stock para cambiarlas): VirtualStock=Stock virtual +VirtualStockDesc=El stock virtual es el stock que obtendrá una vez que todas las acciones pendientes que afecten a las existencias serán cerradas (pedidos a proveedor del proveedor recibidos, pedidos de clientes enviados, ...) IdWarehouse=Id. almacén DescWareHouse=Descripción almacén LieuWareHouse=Localización almacén @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Cantidad del producto %s en stock antes del periodo sele NbOfProductAfterPeriod=Cantidad del producto %s en stock después del periodo seleccionado (> %s) MassMovement=Movimientos en masa SelectProductInAndOutWareHouse=Selecccione un producto, una cantidad, un almacén origen y un almacén destino, seguidamente haga clic "%s". Una vez seleccionados todos los movimientos, haga clic en "%s". -RecordMovement=Registrar transferencias +RecordMovement=Registrar transferencia ReceivingForSameOrder=Recepciones de este pedido StockMovementRecorded=Movimiento de stock registrado RuleForStockAvailability=Reglas de requerimiento de stock @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Límite stock para alertas y stock óptimo deseado ProductStockWarehouseDeleted=Límite stock para alertas y stock óptimo deseado eliminado correctamente AddNewProductStockWarehouse=Indicar nuevo límite para alertas y stock óptimo deseado AddStockLocationLine=Disminuya la cantidad, y a continuación, haga clic para agregar otro almacén para este producto +InventoryDate=Fecha inventario +NewInventory=Nuevo inventario +inventorySetup = Configuración inventario +inventoryCreatePermission=Crear nuevo inventario +inventoryReadPermission=Ver inventarios +inventoryWritePermission=Actualizar inventarios +inventoryValidatePermission=Validar inventario +inventoryTitle=Inventario +inventoryListTitle=Inventarios +inventoryListEmpty=Sin inventario en progreso +inventoryCreateDelete=Crear/Eliminar inventario +inventoryCreate=Crear nuevo +inventoryEdit=Modificar +inventoryValidate=Validado +inventoryDraft=En servicio +inventorySelectWarehouse=Selección de almacén +inventoryConfirmCreate=Crear +inventoryOfWarehouse=Inventario para el almacén: %s +inventoryErrorQtyAdd=Error: La cantidad es menor que cero +inventoryMvtStock=Por inventario +inventoryWarningProductAlreadyExists=Este producto ya se encuentra en el listado +SelectCategory=Filtro por categoría +SelectFournisseur=Filtro proveedor +inventoryOnDate=Inventario +INVENTORY_DISABLE_VIRTUAL=Permitir no destockar el producto hijo de un kit en el inventario +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Usar el precio de compra si no se puede encontrar el último precio de compra +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=El movimiento de stock tiene fecha de inventario +inventoryChangePMPPermission=Permitir cambiar el PMP de un producto +ColumnNewPMP=Nueva unidad PMP +OnlyProdsInStock=No añadir producto sin stock +TheoricalQty=Cant. teórica +TheoricalValue=Cant. teórica +LastPA=Último BP +CurrentPA=BP actual +RealQty=Cant. real +RealValue=Valor Real +RegulatedQty=Cant. Regulada +AddInventoryProduct=Añadir producto al inventario +AddProduct=Añadir +ApplyPMP=Aplicar PMP +FlushInventory=Invenario +ConfirmFlushInventory=¿Confirma esta acción? +InventoryFlushed=Inventario realizado +ExitEditMode=Salir +inventoryDeleteLine=Eliminación de línea +RegulateStock=Regular stock +ListInventory=Listado diff --git a/htdocs/langs/es_ES/stripe.lang b/htdocs/langs/es_ES/stripe.lang new file mode 100644 index 00000000000..1516b886931 --- /dev/null +++ b/htdocs/langs/es_ES/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Configuración del módulo Stripe +StripeDesc=Este módulo le ofrece páginas para permitir el pago a clientes mediante Stripe. Puede usarse para un pago libre o para un pago de un objeto en concreto de Dolibarr (factura, pedido...) +StripeOrCBDoPayment=Pagar con tarjeta de crédito o Stripe +FollowingUrlAreAvailableToMakePayments=Las siguientes URL están disponibles para permitir a un cliente efectuar un pago +PaymentForm=Formulario de pago +WelcomeOnPaymentPage=Bienvenido a nuestros servicios de pago en línea +ThisScreenAllowsYouToPay=Esta pantalla le permite hacer su pago en línea destinado a %s. +ThisIsInformationOnPayment=Aquí está la información sobre el pago a realizar +ToComplete=A completar +YourEMail=E-Mail de confirmación de pago +STRIPE_PAYONLINE_SENDEMAIL=E-Mail a avisar en caso de pago (con éxito o no) +Creditor=Beneficiario +PaymentCode=Código de pago +StripeDoPayment=Continuar el pago con tarjeta +YouWillBeRedirectedOnStripe=Se le redirigirá a la página de Stripe protegida para indicar la información de su tarjeta de crédito +Continue=Continuar +ToOfferALinkForOnlinePayment=URL de pago %s +ToOfferALinkForOnlinePaymentOnOrder=URL que ofrece una interfaz de pago en línea %s basada en el importe de un pedido de cliente +ToOfferALinkForOnlinePaymentOnInvoice=URL que ofrece una interfaz de pago en línea %s basada en el importe de una factura a client +ToOfferALinkForOnlinePaymentOnContractLine=URL que ofrece una interfaz de pago en línea %s basada en el importe de una línea de contrato +ToOfferALinkForOnlinePaymentOnFreeAmount=URL que ofrece una interfaz de pago en línea %s basada en un importe libre +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL que ofrece una interfaz de pago en línea %s basada en la cotización de un miembro +YouCanAddTagOnUrl=También puede añadir el parámetro url &tag=value para cualquiera de estas direcciones (obligatorio solamente para el pago libre) para ver su propio código de comentario de pago. +SetupStripeToHavePaymentCreatedAutomatically=Configure su Stripe con la url %s para crear un pago automáticament al validarse por Stripe. +YourPaymentHasBeenRecorded=Esta página confirma que su pago se ha registrado correctamente. Gracias. +YourPaymentHasNotBeenRecorded=Su pago no ha sido registrado y la transacción ha sido anulada. Gracias. +AccountParameter=Parámetros de la cuenta +UsageParameter=Parámetros de uso +InformationToFindParameters=Información para encontrar a su configuración de cuenta %s +STRIPE_CGI_URL_V2=URL CGI del módulo Stripe para el pago +VendorName=Nombre del vendedor +CSSUrlForPaymentForm=Url de la hoja de estilo CSS para el formulario de pago +MessageOK=Mensaje en la página de retorno de pago confirmado +MessageKO=Mensaje en la página de retorno de pago cancelado +NewStripePaymentReceived=Nuevo pago de Stripe recibido +NewStripePaymentFailed=Nuevo pago de Stripe intentado, pero ha fallado +STRIPE_TEST_SECRET_KEY=Clave secreta test +STRIPE_TEST_PUBLISHABLE_KEY=Clave de test publicable +STRIPE_LIVE_SECRET_KEY=Clave +STRIPE_LIVE_PUBLISHABLE_KEY=Clave publicable +StripeLiveEnabled=Stripe live activado (de lo contrario en modo test/sandbox) diff --git a/htdocs/langs/es_ES/supplier_proposal.lang b/htdocs/langs/es_ES/supplier_proposal.lang index 9f3ebb78cb2..c68a4323293 100644 --- a/htdocs/langs/es_ES/supplier_proposal.lang +++ b/htdocs/langs/es_ES/supplier_proposal.lang @@ -47,7 +47,7 @@ CommercialAsk=Presupuesto DefaultModelSupplierProposalCreate=Modelo por defecto DefaultModelSupplierProposalToBill=Modelo por defecto al cerrar un presupuesto (aceptado) DefaultModelSupplierProposalClosed=Modelo por defecto al cerrar un presupuesto (rechazado) -ListOfSupplierProposal=Listado de presupuestos de proveedores +ListOfSupplierProposals=Listado de presupuestos de proveedores ListSupplierProposalsAssociatedProject=Listado de presupuestos de proveedores asociados al proyecto SupplierProposalsToClose=Presupuestos de proveedor a cerrar SupplierProposalsToProcess=Presupuestos de proveedor a procesar diff --git a/htdocs/langs/es_ES/suppliers.lang b/htdocs/langs/es_ES/suppliers.lang index e3ab9118a42..4bc5f0539cc 100644 --- a/htdocs/langs/es_ES/suppliers.lang +++ b/htdocs/langs/es_ES/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total de los precios de venta de los subproductos SomeSubProductHaveNoPrices=Algunos subproductos no tienen precio definido AddSupplierPrice=Añadir precio de compra ChangeSupplierPrice=Cambiar precio de compra +SupplierPrices=Precios de proveedores ReferenceSupplierIsAlreadyAssociatedWithAProduct=Esta referencia de proveedor ya está asociada a la referencia: %s NoRecordedSuppliers=Sin proveedores registrados SupplierPayment=Pago a proveedor @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Mala calidad ReputationForThisProduct=Reputación BuyerName=Nombre del comprador AllProductServicePrices=Todos los precios de producto / servicio +BuyingPriceNumShort=Precios de proveedores diff --git a/htdocs/langs/es_ES/trips.lang b/htdocs/langs/es_ES/trips.lang index 2a03d3b4bf8..4ac80daadc6 100644 --- a/htdocs/langs/es_ES/trips.lang +++ b/htdocs/langs/es_ES/trips.lang @@ -70,6 +70,7 @@ DATE_SAVE=Fecha de validación DATE_CANCEL=Fecha cancelación DATE_PAIEMENT=Fecha de pago BROUILLONNER=Reabrir +ExpenseReportRef=Ref. informe de gasto ValidateAndSubmit=Validar y enviar para aprobar ValidatedWaitingApproval=Validado (en espera de aprobación) NOT_AUTHOR=No es el autor de este gasto. Operación cancelada. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Sin gastos a exportar para este periodo. ExpenseReportPayment=Informe de pagos de gastos ExpenseReportsToApprove=Informe de gastos a aprobar ExpenseReportsToPay=Informe de gastos a pagar -CloneExpenseReport=Cerrar informe de gastos +CloneExpenseReport=Copiar informe de gastos ConfirmCloneExpenseReport=¿Está seguro de querer eliminar este informe de gastos? diff --git a/htdocs/langs/es_ES/website.lang b/htdocs/langs/es_ES/website.lang index 030523ecee5..9962f07cf32 100644 --- a/htdocs/langs/es_ES/website.lang +++ b/htdocs/langs/es_ES/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=¿Está seguro de querer eliminar este sitio web? Todas las WEBSITE_PAGENAME=Nombre/alias página WEBSITE_CSS_URL=URL del fichero CSS externo WEBSITE_CSS_INLINE=Contenido CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Librería de medios EditCss=Editar Estilo/CSS EditMenu=Editar menu @@ -14,8 +15,9 @@ EditPageContent=Editar contenido Website=Sitio web Webpage=Página web AddPage=Añadir página +HomePage=Home Page PreviewOfSiteNotYetAvailable=Vista previa de su sitio web %s todavía no disponible. Debe de añadir primero una página. -RequestedPageHasNoContentYet=La página solicitada con id %s no tiene contenido o el archivo de cache .tlp.php ha sido eliminado. Edite el contenido de la página para solucionarlo +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Página '%s' del sitio web %s eliminada PageAdded=Página '%s' añadida ViewSiteInNewTab=Ver sitio en una pestaña nueva @@ -23,6 +25,7 @@ ViewPageInNewTab=Ver página en una pestaña nueva SetAsHomePage=Establecer como Página de inicio RealURL=URL Real ViewWebsiteInProduction=Ver sitio web usando la URL de inicio -SetHereVirtualHost=Si se puede establecer, en su servidor web, un servidor virtual dedicado con un directorio raíz en %s, indique aquí el nombre de host virtual para poder realizar la vista previa, se puede hacer también uso de este acceso al servidor web directo y no sólo usando el servidor Dolibarr. -PreviewSiteServedByWebServer=Vista previa de %s en una nueva pestaña. %s será servido por un servidor web externo (como Apache, Nginx, IIS). Antes debe instalar y configurar este servidor
URL de %s servido por el servidor externo:
%s -PreviewSiteServedByDolibarr=Vista previa de %s en una nueva pestaña. %s será servido por Dolivarr y no se necesitará un servidor web externo (como Apache, Nginx, IIS). El inconveniente será que las URL de las páginas usarán la ruta de su Dolibarr
URL de %s servido por el Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Vista previa de %s en una nueva pestaña.

%s será servido por un servidor web externo (como Apache, Nginx, IIS). Antes debe instalar y configurar este servidor URL de
%s
servido por el servidor externo:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/es_ES/withdrawals.lang b/htdocs/langs/es_ES/withdrawals.lang index 09c5c862b5f..2729174ab10 100644 --- a/htdocs/langs/es_ES/withdrawals.lang +++ b/htdocs/langs/es_ES/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Número de facturas en espera de domiciliación pa InvoiceWaitingWithdraw=Facturas en espera de domiciliación AmountToWithdraw=Cantidad a domiciliar WithdrawsRefused=Domiciliaciones devueltas -NoInvoiceToWithdraw=Ninguna factura a cliente con modo de pago 'Domiciliación' en espera. Ir a la pestaña 'Domiciliación' en la ficha de la factura para hacer una petición. +NoInvoiceToWithdraw=Ninguna factura a cliente con modo de pago 'Domiciliación' en espera. Ir a la pestaña '%s' en la ficha de la factura para hacer una petición. ResponsibleUser=Usuario responsable de las domiciliaciones WithdrawalsSetup=Configuración de las domiciliaciones WithdrawStatistics=Estadísticas de domiciliaciones @@ -41,6 +41,7 @@ RefusedReason=Motivo de devolución RefusedInvoicing=Facturación de la devolución NoInvoiceRefused=No facturar la devolución InvoiceRefused=Factura rechazada (Cargar los gastos al cliente) +StatusDebitCredit=Estado de débito/crédito StatusWaiting=En espera StatusTrans=Enviada StatusCredited=Abonada diff --git a/htdocs/langs/es_MX/admin.lang b/htdocs/langs/es_MX/admin.lang index e905c3490f7..7a5fd81233d 100644 --- a/htdocs/langs/es_MX/admin.lang +++ b/htdocs/langs/es_MX/admin.lang @@ -54,6 +54,7 @@ MenuIdParent=ID del menu padre DetailMenuIdParent=ID de menú padre (vacante para un menú principal) DetailPosition=Clasificar cantidad para definir posición del menú AllMenus=Todo +NotConfigured=Modulo/Aplicación no configurado SetupShort=Configuración OtherSetup=Otra configuración CurrentValueSeparatorThousand=Separador millar @@ -64,12 +65,14 @@ OSTZ=Servidor OS Zona Horaria PHPTZ=Servidor PHP Zona Horaria DaylingSavingTime=Hora de verano CurrentSessionTimeOut=Sesión actual pausada +PositionByDefault=Pedido por defecto Position=Puesto +MenusDesc=Administradores de menú establecen contenido de las dos barras de menú (horizontal y vertical) +MenusEditorDesc=El editorde menú te permite definir entradas personales de menú. Usalo cuidadosamente para evitar inestabilidad y permanente incapacidad de acceder a entradas del menú.
Algunos módulos agregan entradas de menú (en menú Todoprincipalmente). Si tu remueves algunas de estas entradas por error, tu puedes restaurarlas deshabilitando y rehabilitando el módulo. URL=Vínculo ExampleOfDirectoriesForModelGen=Examples of syntax:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir Module50Name=productos Module770Name=Reporte de gastos -Module1400Name=Contabilidad DictionaryCanton=Estado/Provincia Upgrade=Actualizar CompanyName=Nombre diff --git a/htdocs/langs/es_MX/agenda.lang b/htdocs/langs/es_MX/agenda.lang index d5c9363dbb4..53d212bf453 100644 --- a/htdocs/langs/es_MX/agenda.lang +++ b/htdocs/langs/es_MX/agenda.lang @@ -37,7 +37,6 @@ ShippingValidated=Envío %s validado InterventionSentByEMail=Intervención %s enviada por correo electrónico DateActionEnd=Fecha de finalización AgendaUrlOptions1=También puede agregar los siguientes parámetros para filtrar la salida: -AgendaUrlOptions2=login=%s para restringir la salida a acciones creadas por o asignadas al usuario %s AgendaUrlOptions3=logina=%s para restringir la salida a las acciones propiedad del usuario %s. AgendaUrlOptions4=logint=%s para restringir la salida a acciones asignadas al usuario %s. AgendaUrlOptionsProject=project=PROJECT_ID para restringir la salida a acciones asociadas al proyecto PROJECT_ID. diff --git a/htdocs/langs/es_MX/banks.lang b/htdocs/langs/es_MX/banks.lang index 389e2f15817..0d809e615c9 100644 --- a/htdocs/langs/es_MX/banks.lang +++ b/htdocs/langs/es_MX/banks.lang @@ -30,8 +30,10 @@ AccountCard=Ficha de cuenta DeleteAccount=Eliminar cuenta IdTransaction=ID de transacción Conciliable=Puede ser conciliado +OnlyOpenedAccount=Sólo las cuentas abiertas DisableConciliation=Desactivar función de conciliación para esta cuenta ConciliationDisabled=Característica conciliación deshabilitada +StatusAccountOpened=Abierta LineRecord=Transacción DateConciliating=Fecha de conciliación CustomerInvoicePayment=Pago de cliente diff --git a/htdocs/langs/es_MX/bills.lang b/htdocs/langs/es_MX/bills.lang index 5ce71ba2860..6ef8d008e85 100644 --- a/htdocs/langs/es_MX/bills.lang +++ b/htdocs/langs/es_MX/bills.lang @@ -5,6 +5,7 @@ PaymentAmount=Importe de pago BillStatusPaid=Pagado BillStatusStarted=Iniciado BillShortStatusPaid=Pagado +BillShortStatusConverted=Pagado BillShortStatusValidated=Validado BillShortStatusStarted=Iniciado BillShortStatusClosedUnpaid=Cerrada diff --git a/htdocs/langs/es_MX/companies.lang b/htdocs/langs/es_MX/companies.lang index cbb94b1a6f4..1550a99d48e 100644 --- a/htdocs/langs/es_MX/companies.lang +++ b/htdocs/langs/es_MX/companies.lang @@ -2,7 +2,9 @@ ErrorCompanyNameAlreadyExists=El nombre de la empresa %s ya existe. Elige uno diferente. ErrorSetACountryFirst=Ajusta primero el país SelectThirdParty=Selecciona un tercero +ConfirmDeleteCompany=¿Estás seguro que quieres borrar esta compañía y toda la información heredada? DeleteContact=Eliminar un contacto/dirección +ConfirmDeleteContact=¿Estás seguro que quieres borrar este contacto y toda la información heredada? CreateDolibarrThirdPartySupplier=Crear tercero (proveedor) IdThirdParty=ID de tercero IdCompany=ID de empresa @@ -89,7 +91,6 @@ CustomerRelativeDiscount=Descuento relativo del cliente CustomerAbsoluteDiscountShort=Descuento absoluto CompanyHasRelativeDiscount=Éste cliente tiene un descuento por defecto de %s%% CompanyHasNoRelativeDiscount=Este cliente no tiene ningún descuento relativo por defecto -CompanyHasAbsoluteDiscount=Este cliente aún tiene descuentos disponibles o abonos por %s %s CompanyHasCreditNote=Este cliente aún tiene notas de crédito por %s %s CompanyHasNoAbsoluteDiscount=Este cliente no tiene descuentos fijos disponibles CustomerAbsoluteDiscountAllUsers=Descuentos absolutos (otorgados por todos los usuarios) @@ -144,6 +145,7 @@ ListSuppliersShort=Lista de proveedores ListProspectsShort=Lista de clientes potenciales ListCustomersShort=Lista de clientes ThirdPartiesArea=Terceros y área de contacto +InActivity=Abierta MonkeyNumRefModelDesc=Devuelve un número con formato %syymm-nnnn para el código de cliente y %syymm-nnnn para código de proveedor donde yy es el año, mm el mes y nnnn una secuencia numérica sin ruptura y sin regresar a 0. LeopardNumRefModelDesc=El código es libre. Este código puede ser modificado en cualquier momento. ManagingDirectors=Administrador(es) (CEO, Director, Presidente...) diff --git a/htdocs/langs/es_MX/compta.lang b/htdocs/langs/es_MX/compta.lang index 66056ef65fc..9c1cd218356 100644 --- a/htdocs/langs/es_MX/compta.lang +++ b/htdocs/langs/es_MX/compta.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - compta Param=Configuración -ToPay=To pay PaymentSocialContribution=Pago de impuesto social/fiscal ByThirdParties=Por terceros diff --git a/htdocs/langs/es_MX/main.lang b/htdocs/langs/es_MX/main.lang index 8b4d41143de..e48ab931f18 100644 --- a/htdocs/langs/es_MX/main.lang +++ b/htdocs/langs/es_MX/main.lang @@ -155,7 +155,6 @@ MonthShort04=Abr MonthShort05=Mayo MonthShort08=Ago MonthShort12=Dic -FileTransferComplete=Archivo fue subido exitosamente DateFormatYYYYMM=MM-YYYY DateFormatYYYYMMDD=DD-MM-YYYY DateFormatYYYYMMDDHHMM=DD-MM-YYYY HH:SS diff --git a/htdocs/langs/es_MX/members.lang b/htdocs/langs/es_MX/members.lang index fab3f9372d5..585f0369074 100644 --- a/htdocs/langs/es_MX/members.lang +++ b/htdocs/langs/es_MX/members.lang @@ -1,4 +1,3 @@ # Dolibarr language file - Source file is en_US - members -MemberStatusDraftShort=Borrador SubscriptionLate=Tarde SubscriptionPayment=Pago de suscripción diff --git a/htdocs/langs/es_MX/oauth.lang b/htdocs/langs/es_MX/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_MX/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_MX/products.lang b/htdocs/langs/es_MX/products.lang index 03df96431b5..af22c89503a 100644 --- a/htdocs/langs/es_MX/products.lang +++ b/htdocs/langs/es_MX/products.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - products +TMenuProducts=productos Products=productos ContractStatusClosed=Cerrada ExportDataset_produit_1=productos diff --git a/htdocs/langs/es_MX/propal.lang b/htdocs/langs/es_MX/propal.lang index 1ca83ddaf67..c97cd12e452 100644 --- a/htdocs/langs/es_MX/propal.lang +++ b/htdocs/langs/es_MX/propal.lang @@ -2,4 +2,5 @@ Proposals=Propuestas comerciales Prop=Propuestas comerciales PropalsDraft=Borradores +PropalsOpened=Abierta PropalStatusClosedShort=Cerrada diff --git a/htdocs/langs/es_MX/stocks.lang b/htdocs/langs/es_MX/stocks.lang index a0ee5c66d16..07ee78f0dea 100644 --- a/htdocs/langs/es_MX/stocks.lang +++ b/htdocs/langs/es_MX/stocks.lang @@ -1,3 +1,6 @@ # Dolibarr language file - Source file is en_US - stocks Stock=stock Location=Ubicación +inventoryEdit=Editar +inventoryDeleteLine=Borrar línea +ListInventory=Lista diff --git a/htdocs/langs/es_PA/oauth.lang b/htdocs/langs/es_PA/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_PA/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_PA/printing.lang b/htdocs/langs/es_PA/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_PA/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_PE/accountancy.lang b/htdocs/langs/es_PE/accountancy.lang index 863353289bc..befa730a33c 100644 --- a/htdocs/langs/es_PE/accountancy.lang +++ b/htdocs/langs/es_PE/accountancy.lang @@ -12,6 +12,33 @@ ConfigAccountingExpert=Configuración del módulo experto en contabilidad Journaux=Revistas JournalFinancial=Revistas financieras BackToChartofaccounts=Retornar gráfico de cuentas +Selectchartofaccounts=Seleccione el plan de cuentas activo Addanaccount=Agregar una cuenta contable +Ventilation=Vinculación a cuentas +CustomersVentilation=Fijación de la factura del cliente +SuppliersVentilation=Factura de proveedores vinculados CreateMvts=Crear nueva transacción +UpdateMvts=Modificación de una transacción +WriteBookKeeping=Periodizar transacción en Libro Mayor +InvoiceLines=Líneas de facturas para enlazar +InvoiceLinesDone=Líneas de facturas vinculadas +IntoAccount=Vincular la línea con la cuenta de contabilidad +Ventilate=Vincular +Processing=Procesando +EndProcessing=Proceso finalizado. +Lineofinvoice=Línea de factura +VentilatedinAccount=Vinculado con éxito a la cuenta contable +NotVentilatedinAccount=No vinculado a la cuenta contable +ACCOUNTING_LIMIT_LIST_VENTILATION=Número de elementos a vincular mostrado por página (máximo recomendado: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Comienza la clasificación de la página "Vinculación a hacer" por los elementos más recientes +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Comienza la clasificación de la página "Encuadernación realizada" por los elementos más recientes +ACCOUNTING_LENGTH_DESCRIPTION=Truncar la descripción de los productos y servicios en los listados después de los caracteres x (mejor = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncar el formulario de descripción de la cuenta de producto y servicios en los listados después de los caracteres x (mejor = 50) +ACCOUNTING_LENGTH_GACCOUNT=Longitud de las cuentas de contabilidad general (si establece el valor a 6 aquí, la cuenta '706' aparecerá como '706000' en la pantalla) +ACCOUNTING_LENGTH_AACCOUNT=Longitud de las cuentas de cuentas de terceros (si establece el valor a 6 aquí, la cuenta '401' aparecerá como '401000' en la pantalla) +ACCOUNTING_SELL_JOURNAL=Diario de Venta +ACCOUNTING_PURCHASE_JOURNAL=Diario de Compra +ACCOUNTING_MISCELLANEOUS_JOURNAL=Diario diverso +ACCOUNTING_EXPENSEREPORT_JOURNAL=Informe de Gastos Diario +ACCOUNTING_SOCIAL_JOURNAL=Diario Social OptionsDeactivatedForThisExportModel=Para este modelo de exportación, las opciones están desactivadas diff --git a/htdocs/langs/es_PE/bills.lang b/htdocs/langs/es_PE/bills.lang index cbb0d6d1c89..adca33be66b 100644 --- a/htdocs/langs/es_PE/bills.lang +++ b/htdocs/langs/es_PE/bills.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - bills -ConfirmDeletePayment=Are you sure you want to delete this payment ? ErrorVATIntraNotConfigured=Número de IGV intracomunitario aún no configurado ConfirmClassifyPaidPartiallyReasonDiscountNoVat=El resto a pagar (%s %s) es un descuento acordado después de la factura. Acepto perder el IGV de este descuento AmountOfBillsByMonthHT=Importe de las facturas por mes (Sin IGV) diff --git a/htdocs/langs/es_PE/oauth.lang b/htdocs/langs/es_PE/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_PE/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_PE/printing.lang b/htdocs/langs/es_PE/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_PE/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_PY/oauth.lang b/htdocs/langs/es_PY/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_PY/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_PY/printing.lang b/htdocs/langs/es_PY/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/es_PY/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/es_VE/banks.lang b/htdocs/langs/es_VE/banks.lang new file mode 100644 index 00000000000..7037335c8cc --- /dev/null +++ b/htdocs/langs/es_VE/banks.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - banks +OnlyOpenedAccount=Sólo cuentas abiertas +StatusAccountOpened=Abierta diff --git a/htdocs/langs/es_VE/bills.lang b/htdocs/langs/es_VE/bills.lang index 9f955a6b8b6..8471b2384ea 100644 --- a/htdocs/langs/es_VE/bills.lang +++ b/htdocs/langs/es_VE/bills.lang @@ -2,6 +2,7 @@ BillsCustomersUnpaid=Facturas a clientes pendientes de cobro BillsSuppliersUnpaid=Facturas de proveedores pendientes de pago CreateCreditNote=Crear factura de abono +BillShortStatusConverted=Pagada ErrorVATIntraNotConfigured=IVA aún no configurado SupplierBillsToPay=Facturas de proveedores pendientes de pago CustomerBillsUnpaid=Facturas a clientes pendientes de cobro diff --git a/htdocs/langs/es_VE/bookmarks.lang b/htdocs/langs/es_VE/bookmarks.lang index a6bf3ea314f..85d921ba18f 100644 --- a/htdocs/langs/es_VE/bookmarks.lang +++ b/htdocs/langs/es_VE/bookmarks.lang @@ -1,11 +1,9 @@ # Dolibarr language file - Source file is en_US - bookmarks -AddThisPageToBookmarks=Añadir esta página a marcadores +ListOfBookmarks=Lista de marcadores NewBookmark=Nuevo favorito ShowBookmark=Mostrar marcador OpenANewWindow=Abra una nueva ventana ReplaceWindow=Reemplace ventana actual BookmarkTitle=Bookmark título -BehaviourOnClick=Comportamiento al hacer clic en una URL SetHereATitleForLink=Establezca un título para el marcador UseAnExternalHttpLinkOrRelativeDolibarrLink=Utilice una dirección URL http externo o una URL relativa Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Elija si una página abierta por enlace debe aparecer en la ventana actual o nuevo diff --git a/htdocs/langs/es_VE/companies.lang b/htdocs/langs/es_VE/companies.lang index cdac6575c15..3700267ad16 100644 --- a/htdocs/langs/es_VE/companies.lang +++ b/htdocs/langs/es_VE/companies.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - companies CountryIsInEEC=Venezuela +OverAllSupplierProposals=Solicitudes de precios LocalTax1IsUsed=Sujeto LocalTax2IsUsed=Sujeto ProfId1AT=Id prof. 1 (USt.-IdNr) @@ -19,10 +20,10 @@ ProfId2MX=Registro Patronal IVSS ProfId3MX=- VATIntra=RIF VATIntraShort=RIF -CompanyHasAbsoluteDiscount=Este cliente tiene %s %s descuentos disponibles (descuentos, anticipos...) CompanyHasCreditNote=Este cliente tiene %s %s anticipos disponibles VATIntraCheckDesc=El link %s permite consultar al SENIAT el RIF. Se requiere acceso a internet para que el servicio funcione VATIntraCheckURL=http://contribuyente.seniat.gob.ve/BuscaRif/BuscaRif.jsp VATIntraCheckableOnEUSite=Verificar en la web del SENIAT VATIntraManualCheck=Puede también realizar una verificación manual en la página del SENIAT %s ContactOthers=Otra +InActivity=Abierta diff --git a/htdocs/langs/es_VE/members.lang b/htdocs/langs/es_VE/members.lang new file mode 100644 index 00000000000..2140c44adb9 --- /dev/null +++ b/htdocs/langs/es_VE/members.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - members +MemberStatusDraftShort=A validar +MemberStatusActiveShort=Validada diff --git a/htdocs/langs/es_VE/oauth.lang b/htdocs/langs/es_VE/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/es_VE/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/es_VE/products.lang b/htdocs/langs/es_VE/products.lang index cc14b846594..d1dda54c0b9 100644 --- a/htdocs/langs/es_VE/products.lang +++ b/htdocs/langs/es_VE/products.lang @@ -1,2 +1,3 @@ # Dolibarr language file - Source file is en_US - products +TMenuProducts=Productos y servicios ProductStatusNotOnBuyShort=Fuera compra diff --git a/htdocs/langs/es_VE/propal.lang b/htdocs/langs/es_VE/propal.lang new file mode 100644 index 00000000000..f3e7695176c --- /dev/null +++ b/htdocs/langs/es_VE/propal.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - propal +PropalsOpened=Abierta diff --git a/htdocs/langs/es_VE/stocks.lang b/htdocs/langs/es_VE/stocks.lang new file mode 100644 index 00000000000..62683be674b --- /dev/null +++ b/htdocs/langs/es_VE/stocks.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - stocks +inventoryValidate=Validada diff --git a/htdocs/langs/es_VE/supplier_proposal.lang b/htdocs/langs/es_VE/supplier_proposal.lang index 57a05997e92..6c5d6ade6ce 100644 --- a/htdocs/langs/es_VE/supplier_proposal.lang +++ b/htdocs/langs/es_VE/supplier_proposal.lang @@ -8,6 +8,7 @@ SearchRequest=Encontrar una solicitud DraftRequests=Solicitudes en borrador SupplierProposalsDraft=Presupuestos a proveedor en borrador LastModifiedRequests=Últimas %s solicitudes de precios modificadas +RequestsOpened=Abrir solicitudes de precios SupplierProposalArea=Área de presupuestos de proveedores SupplierProposals=Presupuestos de proveedores SupplierProposalsShort=Presupuestos de proveedores @@ -19,6 +20,7 @@ SupplierProposalRefFournNotice=Antes de cerrar a "Aceptado", pensar para captar ConfirmValidateAsk=¿Seguro que deseas validar ésta solicitud de precio bajo el nombre %s? DeleteAsk=Borrar solicitud ValidateAsk=Validar solicitud +SupplierProposalStatusValidated=Validado (solicitud abierta) SupplierProposalStatusClosed=Cerrada SupplierProposalStatusSigned=Aceptada SupplierProposalStatusNotSigned=Devuelta @@ -41,6 +43,7 @@ DocModelAuroreDescription=Modelo completo de solicitud (logo...) CommercialAsk=Solicitud de precio DefaultModelSupplierProposalToBill=Plantilla por defecto cuando cierra una solicitud de precio (aceptada) DefaultModelSupplierProposalClosed=Plantilla por defecto cuando cierra una solicitud de precio (rechazada) +ListOfSupplierProposals=Lista de solicitudes de presupuestos a proveedores ListSupplierProposalsAssociatedProject=Lista de presupuestos a proveedor asociados con el proyecto SupplierProposalsToClose=Presupuestos a proveedor a cerrar SupplierProposalsToProcess=Presupuestos a proveedor a procesar diff --git a/htdocs/langs/et_EE/accountancy.lang b/htdocs/langs/et_EE/accountancy.lang index 003980a7165..e50968beac9 100644 --- a/htdocs/langs/et_EE/accountancy.lang +++ b/htdocs/langs/et_EE/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Konto SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Müügid AccountingJournalType3=Ostud AccountingJournalType4=Pank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksportimised Export=Eksport +ExportDraftJournal=Export draft journal Modelcsv=Eksportimise mudel OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Vali eksportimise mudel diff --git a/htdocs/langs/et_EE/admin.lang b/htdocs/langs/et_EE/admin.lang index 6c8228bd857..d41e513558d 100644 --- a/htdocs/langs/et_EE/admin.lang +++ b/htdocs/langs/et_EE/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantise integratsioon Module1400Name=Raamatupidamine -Module1400Desc=Raamatupidamise haldamine (topelt isikud) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Sildid/kategooriad @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Moodul, mis pakub online-makse võimalust krediitkaardiga Paypali abil Module50400Name=Accounting (advanced) -Module50400Desc=Raamatupidamise haldamine (topelt isikud) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/et_EE/agenda.lang b/htdocs/langs/et_EE/agenda.lang index a72ca6eb1c9..caa6874feb7 100644 --- a/htdocs/langs/et_EE/agenda.lang +++ b/htdocs/langs/et_EE/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Arve %s on kustutatud InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Tellimus %s on kinnitatud @@ -74,13 +75,17 @@ InterventionSentByEMail=Sekkumine %s on saadetud e-postiga ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Alguskuupäev DateActionEnd=Lõppkuupäev AgendaUrlOptions1=Otsingutulemuste piiramiseks võib kasutada ka järgmisi parameetreid: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s tagastab vastusena ainult kasutajale määratud tegevused %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/et_EE/banks.lang b/htdocs/langs/et_EE/banks.lang index 5515c8e1610..e1bdf4e567c 100644 --- a/htdocs/langs/et_EE/banks.lang +++ b/htdocs/langs/et_EE/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Tehingu ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/et_EE/bills.lang b/htdocs/langs/et_EE/bills.lang index 282591fcf34..5d33969c01b 100644 --- a/htdocs/langs/et_EE/bills.lang +++ b/htdocs/langs/et_EE/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standardne arve InvoiceStandardAsk=Standardne arve InvoiceStandardDesc=Selline arve on tavaline arve. -InvoiceDeposit=Ettemaksuarve -InvoiceDepositAsk=Ettemaksuarve -InvoiceDepositDesc=See arve vormistatakse siis, kui tagatisraha on laekunud. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma arve InvoiceProFormaAsk=Proforma arve InvoiceProFormaDesc=Proforma arve on õige arve kujuga, kuid ei oma raamatupidamislikku tähendust. @@ -62,7 +62,7 @@ PaymentsBack=Tagasimaksed paymentInInvoiceCurrency=in invoices currency PaidBack=Tagasi makstud DeletePayment=Kustuta makse -ConfirmDeletePayment=Kas oled täiesti kindel, et soovid selle makse kustutada? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Hankijate maksed ReceivedPayments=Laekunud maksed @@ -115,7 +115,7 @@ BillStatus=Arve staatus StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Mustand (kinnitada) BillStatusPaid=Makstud -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Makstud (valmis lõpparveks) BillStatusCanceled=Hüljatud BillStatusValidated=Kinnitatud (vajab maksmist) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Makstud (osaliselt) BillShortStatusDraft=Mustand BillShortStatusPaid=Makstud BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Töödeldud +BillShortStatusConverted=Makstud BillShortStatusCanceled=Hüljatud BillShortStatusValidated=Kinnitatud BillShortStatusStarted=Alustatud @@ -198,12 +198,12 @@ ShowBill=Näita arvet ShowInvoice=Näita arvet ShowInvoiceReplace=Näita asendusarvet ShowInvoiceAvoir=Näita kreeditarvet -ShowInvoiceDeposit=Näita ettemaksuarvet +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Näita makset AlreadyPaid=Juba makstud AlreadyPaidBack=Juba tagasi makstud -AlreadyPaidNoCreditNotesNoDeposits=Juba makstud (kreeditarvete ja deposiitideta) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Hüljatud RemainderToPay=Jäänud tasuda RemainderToTake=Jäänud laekuda @@ -270,10 +270,10 @@ RelativeDiscount=Protsentuaalne allahindlus GlobalDiscount=Üldine allahindlus CreditNote=Kreeditarve CreditNotes=Kreeditarved -Deposit=Hoius -Deposits=Hoiused +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Allahindlus kreeditarvelt %s -DiscountFromDeposit=Maksed ettemaksuarvelt %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Seda liiki krediiti saab kasutada arvel enne selle kinnitamist CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Ei saa makset eemaldada, kuna vähemalt üks ExpectedToPay=Oodatud makse CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Makstud selle maksega -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Liigita kõik täielikult tagasi makstud kreeditarved makstuks. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Kõik arved, mille kohta ei ole makstavat jääki, märgitakse makstuks. @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=PDF mall Crabe arvete jaoks. Täielik arve mall (soovitatav mall). PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Tagastab numbri formaadiga %syymm-nnnn tavaliste arvete jaoks ja %syymm-nnnn kreeditarvete jaoks, kus yy on aasta, mm on kuu ja nnnn on katkestusteta jada, mis ei lähe kunagi 0 tagasi. -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Arve algusega $syymm on juba olemas ja ei ole antud jada mudeliga ühtiv. Eemalda see või muuda selle nimi antud mooduli aktiveerimiseks. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Müügiesindaja järelkaja müügiarvele TypeContact_facture_external_BILLING=Müügiarve kontakt diff --git a/htdocs/langs/et_EE/bookmarks.lang b/htdocs/langs/et_EE/bookmarks.lang index e0084c3b4b7..29beffd5d60 100644 --- a/htdocs/langs/et_EE/bookmarks.lang +++ b/htdocs/langs/et_EE/bookmarks.lang @@ -2,6 +2,8 @@ AddThisPageToBookmarks=Lisa see leht järjehoidjatesse Bookmark=Järjehoidja Bookmarks=Järjehoidjad +ListOfBookmarks=Järjehoidjad +EditBookmarks=List/edit bookmarks NewBookmark=Uus järjehoidja ShowBookmark=Näita järjehoidjat OpenANewWindow=Ava uues aknas diff --git a/htdocs/langs/et_EE/boxes.lang b/htdocs/langs/et_EE/boxes.lang index 0e27d8de904..3cf060d6e7a 100644 --- a/htdocs/langs/et_EE/boxes.lang +++ b/htdocs/langs/et_EE/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS info BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Müügiarved ForProposals=Pakkumised LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/et_EE/categories.lang b/htdocs/langs/et_EE/categories.lang index 0045f15a43d..f32feaa031d 100644 --- a/htdocs/langs/et_EE/categories.lang +++ b/htdocs/langs/et_EE/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Silt/Kategooria Rubriques=Sildid/Kategooriad +RubriquesTransactions=Tags/Categories of transactions categories=sildid/kategooriad NoCategoryYet=No tag/category of this type created In=Kategoorias diff --git a/htdocs/langs/et_EE/commercial.lang b/htdocs/langs/et_EE/commercial.lang index d4ee9c736f3..4aef02088c6 100644 --- a/htdocs/langs/et_EE/commercial.lang +++ b/htdocs/langs/et_EE/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Näita ülesannet ShowAction=Näita tegevust ActionsReport=Tegevuste aruanne ThirdPartiesOfSaleRepresentative=Kolmandate isikute kohtumised müügiesindajaga +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Müügiesindaja SalesRepresentatives=Müügiesindajad SalesRepresentativeFollowUp=Müügiesindaja (järelkontroll) diff --git a/htdocs/langs/et_EE/companies.lang b/htdocs/langs/et_EE/companies.lang index 8d129612639..ca37c5a9d2c 100644 --- a/htdocs/langs/et_EE/companies.lang +++ b/htdocs/langs/et_EE/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Uus eraisik NewCompany=Uus ettevõte (pot klient, klient, hankija) NewThirdParty=Uus kolmas isik (pot klient, klient, hankija) CreateDolibarrThirdPartySupplier=Loo kolmas isik (hankija) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Uus kolmas isik CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Huviliste ala IdThirdParty=Kolmanda osapoole ID @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kliendid ThirdPartyCustomersWithIdProf12=Klient koos %s või %s ThirdPartySuppliers=Hankijad ThirdPartyType=Kolmanda isiku tüüp -Company/Fundation=Ettevõte/ühendus Individual=Eraisik ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Emaettevõte @@ -78,10 +77,10 @@ VATIsNotUsed=Käibemaksuta CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Pakkumised +OverAllOrders=Tellimused +OverAllInvoices=Arved +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Kasuta teist maksu LocalTax1IsUsedES= RE on kasutuses @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Protsentuaalne allahindlus CustomerAbsoluteDiscountShort=Summaline allahindlus CompanyHasRelativeDiscount=Sellel kliendil on vaikimisi allahindlus %s%% CompanyHasNoRelativeDiscount=Sellel kliendil pole vaikimisi allahindlust -CompanyHasAbsoluteDiscount=Kliendil on realiseerimata kreeditarveid või tagatisraha %s %s väärtuses +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Kliendil on kreeditarveid %s %s väärtuses CompanyHasNoAbsoluteDiscount=Kliendil pole allahindluse krediiti CustomerAbsoluteDiscountAllUsers=Summalised allahindlused (antud kõigi kasutajate poolt) @@ -390,7 +395,7 @@ ListCustomersShort=Klientide nimekiri ThirdPartiesArea=Kolmandate isikute ja kontaktide ala LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Kokku unikaalseid kolmandaid isikuid -InActivity=Avatud +InActivity=Ava ActivityCeased=Suletud ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kood on vaba, seda saab igal ajal muuta. ManagingDirectors=Haldaja(te) nimi (CEO, direktor, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/et_EE/contracts.lang b/htdocs/langs/et_EE/contracts.lang index af41e4d2165..e30b26c3415 100644 --- a/htdocs/langs/et_EE/contracts.lang +++ b/htdocs/langs/et_EE/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=See nimekiri sisaldab vaid nende lepingute teenuse StandardContractsTemplate=Tavapärane lepingu mall ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Lepingu allkirjastanud müügiesindaja diff --git a/htdocs/langs/et_EE/exports.lang b/htdocs/langs/et_EE/exports.lang index 930da0d3bd1..69b4e92183d 100644 --- a/htdocs/langs/et_EE/exports.lang +++ b/htdocs/langs/et_EE/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Kui soovid mõnede väärtuste põhjal filtreerida, siis sisesta nad siia. FilteredFields=Filtreeritav väl diff --git a/htdocs/langs/et_EE/holiday.lang b/htdocs/langs/et_EE/holiday.lang index 113c588e496..7ac414772f6 100644 --- a/htdocs/langs/et_EE/holiday.lang +++ b/htdocs/langs/et_EE/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Tühistatud RefuseCP=Keeldutud ValidatorCP=Heaks kiitja ListeCP=List of leaves -ReviewedByCP=Ülevaatav isik +ReviewedByCP=Will be approved by DescCP=Kirjeldus SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/et_EE/install.lang b/htdocs/langs/et_EE/install.lang index ff0da446c15..314ab09b0f3 100644 --- a/htdocs/langs/et_EE/install.lang +++ b/htdocs/langs/et_EE/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Kasutad DoliWampist pärit Dolibarri paigaldusabimeest, se KeepDefaultValuesDeb=Kasutad Linuxi (Ubuntu, Debian, Fedora, ...) pakist pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Pead sisestama vaid loodava andmebaasi omaniku parooli. Muuda teisi parameetreid vaid siis, kui tead täpselt, mida teed. KeepDefaultValuesMamp=Kasutad DoliMampist pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Muuda neid vaid siis, kui tead täpselt, mida teed. KeepDefaultValuesProxmox=Kasutad Proxmoxi virtuaalrakendusest pärit Dolibarri paigaldusabimeest, seega on siin pakutud väärtused juba optimeeritud. Muuda neid vaid siis, kui tead täpselt, mida teed. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/et_EE/link.lang b/htdocs/langs/et_EE/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/et_EE/link.lang +++ b/htdocs/langs/et_EE/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/et_EE/loan.lang b/htdocs/langs/et_EE/loan.lang index 68416d1a60f..221115f9311 100644 --- a/htdocs/langs/et_EE/loan.lang +++ b/htdocs/langs/et_EE/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/et_EE/mails.lang b/htdocs/langs/et_EE/mails.lang index 885c305e9c9..c159f03a979 100644 --- a/htdocs/langs/et_EE/mails.lang +++ b/htdocs/langs/et_EE/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Osaliselt saadetud MailingStatusSentCompletely=Täielikult saadetud MailingStatusError=Viga MailingStatusNotSent=Saatmata -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=E-postitus edukalt kinnitatud MailUnsubcribe=Tühista tellimus MailingStatusNotContact=Ära võta enam ühendust @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Rida %s failis @@ -116,8 +120,8 @@ Notifications=Teated NoNotificationsWillBeSent=Selle tegevuse ja ettevõttega ei ole plaanis saata ühtki e-kirja teadet ANotificationsWillBeSent=E-posti teel saadetakse 1 teade SomeNotificationsWillBeSent=E-posti teel saadetakse %s teadet -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Loetle kõik saadetud e-posti teated MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/et_EE/main.lang b/htdocs/langs/et_EE/main.lang index e348e17f27c..c872796e827 100644 --- a/htdocs/langs/et_EE/main.lang +++ b/htdocs/langs/et_EE/main.lang @@ -72,8 +72,10 @@ SeeHere=Vaata siia Apply=Rakenda BackgroundColorByDefault=Vaikimisi taustavärv FileRenamed=The file was successfully renamed -FileUploaded=Fail on edukalt üles laetud FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Fail on edukalt üles laetud +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Fail on valitud manustamiseks, kuid on veel üles laadimata. Klõpsa "Lisa fail" nupul selle lisamiseks. NbOfEntries=Kannete arv GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=RE kokk TotalLT2ES=IRPF kokku HT=Ilma maksudeta TTC=Koos maksudega +INCT=Inc. all taxes VAT=KM VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=det AttachedFiles=Manustatud failid ja dokumendid -FileTransferComplete=Faili üles laadimine õnnestus DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/et_EE/margins.lang b/htdocs/langs/et_EE/margins.lang index 87052863c9e..c948f07fd9c 100644 --- a/htdocs/langs/et_EE/margins.lang +++ b/htdocs/langs/et_EE/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/et_EE/members.lang b/htdocs/langs/et_EE/members.lang index 176469d5ec6..3a25ebbef46 100644 --- a/htdocs/langs/et_EE/members.lang +++ b/htdocs/langs/et_EE/members.lang @@ -25,7 +25,7 @@ MembersListUpToDate=Kinnitatud liikmed, kelle liikmemaks ei ole aegunud MembersListNotUpToDate=Kinnitatud liikmete nimekiri, kelle liikmemaks on aegunud MembersListResiliated=List of terminated members MembersListQualified=Kvalifitseeritud liikmete nimekiri -MenuMembersToValidate=Mustandi staatuses liikmed +MenuMembersToValidate=Liikmete mustand MenuMembersValidated=Kinnitatud liikmed MenuMembersUpToDate=Ajakohased liikmed MenuMembersNotUpToDate=Aegunud liikmed @@ -51,7 +51,7 @@ MemberStatusPaid=Liikmemaks ajakohane MemberStatusPaidShort=Ajakohane MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated -MembersStatusToValid=Liikmete mustandid +MembersStatusToValid=Liikmete mustand MembersStatusResiliated=Terminated members NewCotisation=Uus annetus PaymentSubscription=Uus annetuse makse @@ -90,6 +90,7 @@ PublicMemberList=Liikmete avalik nimekiri BlankSubscriptionForm=Avalik automaatse liikmemaksu vorm BlankSubscriptionFormDesc=Dolibarr võimaldab välistele külastajatele avaliku URLi kasutamist, et pakkuda ühenduse liikmeks astumise võimalust. Kui online maksemoodul on sisse lülitatud, siis pakutakse automaatselt lisaks maksmise vormi. EnablePublicSubscriptionForm=Lülita avalik automaatselt liikmeks astumise vorm sisse +ForceMemberType=Force the member type ExportDataset_member_1=Liikmed ja liikmelisus ImportDataset_member_1=Liikmed LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=See ekraan näitab liikmete statistikat linna alusel. MembersStatisticsDesc=Vali soovitud statistika... MenuMembersStats=Statistika LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Loomus Public=Informatsioon on avalik NewMemberbyWeb=Uus liige lisatud, ootab heaks kiitmist diff --git a/htdocs/langs/et_EE/modulebuilder.lang b/htdocs/langs/et_EE/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/et_EE/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/et_EE/other.lang b/htdocs/langs/et_EE/other.lang index e331e1cc65b..a348bf71cab 100644 --- a/htdocs/langs/et_EE/other.lang +++ b/htdocs/langs/et_EE/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=nael +WeightUnitounce=unts Length=Pikkus LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/et_EE/paybox.lang b/htdocs/langs/et_EE/paybox.lang index 205eca3c171..e0ebffa04a7 100644 --- a/htdocs/langs/et_EE/paybox.lang +++ b/htdocs/langs/et_EE/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-posti aadress makse kinnituse saamiseks Creditor=Kreeditor PaymentCode=Makse kood PayBoxDoPayment=Mine maksmisele +ToPay=Soorita makse YouWillBeRedirectedOnPayBox=Teid suunatakse turvalisele Payboxi lehele krediitkaardi info sisestamiseks Continue=Järgmine ToOfferALinkForOnlinePayment=Makse %s URL diff --git a/htdocs/langs/et_EE/paypal.lang b/htdocs/langs/et_EE/paypal.lang index d9604d208b3..e66c51e9d21 100644 --- a/htdocs/langs/et_EE/paypal.lang +++ b/htdocs/langs/et_EE/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=See on tehingu ID: %s PAYPAL_ADD_PAYMENT_URL=Lisa PayPali makse URL, kui dokument saadetakse postiga PredefinedMailContentLink=Kui makset ei ole veel sooritatud, võid klõpsata allpool asuval lingil makse sooritamiseks (PayPal).\n\n%s\n\n YouAreCurrentlyInSandboxMode=Kasutad hetkel "liivakasti" režiimi. -NewPaypalPaymentReceived=Uus PayPali makse vastu võetud -NewPaypalPaymentFailed=Üritati uut PayPali makset, kuid see ebaõnnestus +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-posti aadress pärast makset hoiatuse saatmiseks (õnnestus või mitte) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/et_EE/products.lang b/htdocs/langs/et_EE/products.lang index d7fd8621831..64e477a8cea 100644 --- a/htdocs/langs/et_EE/products.lang +++ b/htdocs/langs/et_EE/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Toode või teenus ProductsAndServices=Tooted ja teenused ProductsOrServices=Tooted või teenused -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Sekund +unitH=Tund +unitD=Päev +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Hetkehind @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Tooda ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON andmed +GlobalVariableUpdaterHelp0=Sõelu JSONi andmed määratletud URLilt, VALUE määrab ära seotud väärtuse asukoha +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService andmed +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Uuendamise intervall (minutities) LastUpdated=Latest update CorrectlyUpdated=Õigesti uuendatud @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/et_EE/propal.lang b/htdocs/langs/et_EE/propal.lang index e0199926c7e..49094c66a9a 100644 --- a/htdocs/langs/et_EE/propal.lang +++ b/htdocs/langs/et_EE/propal.lang @@ -3,7 +3,7 @@ Proposals=Pakkumised Proposal=Pakkumine ProposalShort=Pakkumine ProposalsDraft=Koosta pakkumiste mustandeid -ProposalsOpened=Avatud pakkumised +ProposalsOpened=Open commercial proposals Prop=Pakkumised CommercialProposal=Pakkumine ProposalCard=Pakkumise kaart @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Arv kuus (km-ta) NbOfProposals=Pakkumisi ShowPropal=Näita pakkumist PropalsDraft=Mustandid -PropalsOpened=Avatud +PropalsOpened=Ava PropalStatusDraft=Mustand (vajab kinnitamist) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Allkirjastatud (vaja arve esitada) diff --git a/htdocs/langs/et_EE/resource.lang b/htdocs/langs/et_EE/resource.lang index 13f362db03d..d9c1502ffda 100644 --- a/htdocs/langs/et_EE/resource.lang +++ b/htdocs/langs/et_EE/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Ressursid diff --git a/htdocs/langs/et_EE/salaries.lang b/htdocs/langs/et_EE/salaries.lang index 64b7fdf52d2..9c3315775c6 100644 --- a/htdocs/langs/et_EE/salaries.lang +++ b/htdocs/langs/et_EE/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Palk Salaries=Palgad NewSalaryPayment=Uus palga makse diff --git a/htdocs/langs/et_EE/sendings.lang b/htdocs/langs/et_EE/sendings.lang index 2f51037a10e..073467974c7 100644 --- a/htdocs/langs/et_EE/sendings.lang +++ b/htdocs/langs/et_EE/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Lihtsa dokumendi mudel DocumentModelMerou=Merou A5 mudel WarningNoQtyLeftToSend=Hoiatus: pole ühtki lähetamise ootel kaupa. StatsOnShipmentsOnlyValidated=Statistika põhineb vaid kinnitatud saadetistel. Kasutatavaks kuupäevaks on saadetise kinnitamise kuupäev (plaanitav kohaletoimetamise aeg ei ole alati teada). @@ -51,10 +50,10 @@ ActionsOnShipping=Saatmisel toimuvad tegevused LinkToTrackYourPackage=Paki jälgimise link ShipmentCreationIsDoneFromOrder=Praegu luuakse saadetised tellimuse kaardilt. ShipmentLine=Saadetise rida -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/et_EE/stocks.lang b/htdocs/langs/et_EE/stocks.lang index cb51cebf33f..da43af47099 100644 --- a/htdocs/langs/et_EE/stocks.lang +++ b/htdocs/langs/et_EE/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Liikumise silt NumberOfUnit=Ühikute arv UnitPurchaseValue=Ühiku ostuhind StockTooLow=Laojääk on liiga madal -StockLowerThanLimit=Laojääk on madalam kui hoiatuse piir +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Väärtus PMPValue=Kaalutud keskmine hind PMPValueShort=KKH @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Saadetud kogus QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Laojäägi saatmine +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Vähenda reaalset laojääki müügiarve/kreeditarve kinnitamisel @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Suurenda reaalset laojääki ostuarvete/kreeditarvete kinnitamisel ReStockOnValidateOrder=Suurenda reaalset laojääki ostutellimuste heaks kiitmisel -ReStockOnDispatchOrder=Suurenda reaalset laojääki käsitsi ladudesse saatmisel pärast ostutellimuse vastu võtmist +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Tellimus kas ei ole veel jõudnud või ei ole enam staatuses, mis lubab toodete lattu saatmist. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Selle objektiga ei ole seotud ettemääratud tooteid, seega ei ole vaja laojäägi saatmist. DispatchVerb=Saada StockLimitShort=Hoiatuse piir StockLimit=Koguse piir hoiatuseks PhysicalStock=Füüsiline laojääk RealStock=Reaalne laojääk +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuaalne laojääk +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Lao ID DescWareHouse=Lao kirjeldus LieuWareHouse=Lao lokaliseerimine @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Toote %s laojääk enne valitud perioodi (< %s) NbOfProductAfterPeriod=Toote %s laojääk pärast valitud perioodi (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Vali toode, kogus, lähteladu ja sihtladu, siis klõpsa "%s". Kui see on kõigi soovitud liikumiste jaoks tehtud, klõpsa "%s". -RecordMovement=Registreeri ülekanne +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Toimeta +inventoryValidate=Kinnitatud +inventoryDraft=Aktiivne +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Loo +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategooriate filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Lisa +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Kustuta rida +RegulateStock=Regulate Stock +ListInventory=Loend diff --git a/htdocs/langs/et_EE/stripe.lang b/htdocs/langs/et_EE/stripe.lang new file mode 100644 index 00000000000..cb0e0eb9827 --- /dev/null +++ b/htdocs/langs/et_EE/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Dolibarri objektide põhjal maksete sooritamiseks on klientidele pakkuda järgnevate lehtede URLid: +PaymentForm=Maksmise vorm +WelcomeOnPaymentPage=Tere tulemast meie online makseteenusesse +ThisScreenAllowsYouToPay=See ekraan võimaldab teil teha online-makseid üksusele %s. +ThisIsInformationOnPayment=See on makse sooritamise info +ToComplete=Lõpuni viia +YourEMail=E-posti aadress makse kinnituse saamiseks +STRIPE_PAYONLINE_SENDEMAIL=E-posti aadress pärast makset hoiatuse saatmiseks (õnnestus või mitte) +Creditor=Kreeditor +PaymentCode=Makse kood +StripeDoPayment=Mine maksmisele +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Järgmine +ToOfferALinkForOnlinePayment=Makse %s URL +ToOfferALinkForOnlinePaymentOnOrder=Müügitellimuse eest maksmiseks kasutatava %s online makseteenuse URL +ToOfferALinkForOnlinePaymentOnInvoice=Müügiarve eest maksmiseks kasutatava %s online makseteenuse URL +ToOfferALinkForOnlinePaymentOnContractLine=Lepingu rea eest maksmiseks kasutatava %s online makseteenuse URL +ToOfferALinkForOnlinePaymentOnFreeAmount=Vaba rea eest maksmiseks kasutatava %s online makseteenuse URL +ToOfferALinkForOnlinePaymentOnMemberSubscription=Liikmemaksu eest maksmiseks kasutatava %s online makseteenuse URL +YouCanAddTagOnUrl=Samuti võid lisa URL parameetri &tag=value igale nendest URLidest (nõutud vaid vaba makse jaoks) oma loodud makse kommentaari sildi jaoks. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=See lehekülg kinnitab, et makse on registreeritud. Täname! +YourPaymentHasNotBeenRecorded=Makset ei ole registreeritud ja tehing on tühistatud. Täname! +AccountParameter=Konto parameetrid +UsageParameter=Kasutamise parameetrid +InformationToFindParameters=Abi %s konto info leidmiseks +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Müüja nim +CSSUrlForPaymentForm=Maksmise vormi CSS stiililehtede URL +MessageOK=Kinnitatud makse lehel olev sõnum +MessageKO=Tühistatud makse lehel olev sõnum +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/et_EE/supplier_proposal.lang b/htdocs/langs/et_EE/supplier_proposal.lang index f9b05eb73fa..c43c38f5c25 100644 --- a/htdocs/langs/et_EE/supplier_proposal.lang +++ b/htdocs/langs/et_EE/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Mustand (vajab kinnitamist) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Suletud SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Keeldutud @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Vaikimisi mudeli loomine DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/et_EE/suppliers.lang b/htdocs/langs/et_EE/suppliers.lang index 59b14c66626..8eb63b04dc4 100644 --- a/htdocs/langs/et_EE/suppliers.lang +++ b/htdocs/langs/et_EE/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Mõnedel alatoodetel pole määratletud hinda AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=See hankija viide on juba seotud viitega: %s NoRecordedSuppliers=Ühtki hankijat pole salvestatud SupplierPayment=Hankija makse @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/et_EE/trips.lang b/htdocs/langs/et_EE/trips.lang index 013a5c3efc4..1751acaf6d1 100644 --- a/htdocs/langs/et_EE/trips.lang +++ b/htdocs/langs/et_EE/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List tasude TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Äriühingu/ühenduse külastas +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Summa või kilomeetrites DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Kinnitamise kuupäev DATE_CANCEL=Cancelation date DATE_PAIEMENT=Maksekuupäev BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/et_EE/users.lang b/htdocs/langs/et_EE/users.lang index d782755dbba..4c76cc68d74 100644 --- a/htdocs/langs/et_EE/users.lang +++ b/htdocs/langs/et_EE/users.lang @@ -66,8 +66,8 @@ InternalUser=Sisemine kasutaja ExportDataset_user_1=Dolibarr kasutajad ja omadused DomainUser=Domeeni kasutaja %s Reactivate=Aktiveeri uuesti -CreateInternalUserDesc=Antud vorm võimaldab organisatsioonisisese kasutaja loomist. Välise kasutaja (klient, hankija jne) loomiseks kasuta kolmanda isikuga seotud kontakti kaardilt nuppu 'Loo Dolibarri kasutaja'. -InternalExternalDesc=Sisemine kasutaja on kasutaja, kes on osa Sinu ettevõttest/ühendusest.
Väline kasutaja on klient, hankija või muu isik.

Mõlemal määratlevad kasutaja õigused tema ligipääsu, lisaks sellele võib välisel kasutajal olla sisemisest kasutajast erinev menüü töötleja (vt Kodu->Seadistamine->Kuva) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Õigus on antud, kuna see pärineb mõnest grupist, kuhu kasutaja kuulub Inherited=Päritud UserWillBeInternalUser=Loodav kasutaja on sisemine kasutaja (kuna ei ole seotud mõne kolmanda isikuga) diff --git a/htdocs/langs/et_EE/website.lang b/htdocs/langs/et_EE/website.lang index 6197580711f..bc746cfb616 100644 --- a/htdocs/langs/et_EE/website.lang +++ b/htdocs/langs/et_EE/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kood WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/et_EE/withdrawals.lang b/htdocs/langs/et_EE/withdrawals.lang index 4fb61d1141d..09dfc899e4d 100644 --- a/htdocs/langs/et_EE/withdrawals.lang +++ b/htdocs/langs/et_EE/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Väljamaksmise summa WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Pole ühtki müügiarvet, mis oleks maksestaatuses 'Väljamakse'. Mine müügiarve kaardile 'Väljamakse' nõudmise esitamiseks. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Vastutav kasutaja WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Keeldumise põhjus RefusedInvoicing=Keeldumise eest arve esitamine NoInvoiceRefused=Ära esita arvet keeldumise eest InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Ootel StatusTrans=Saadetud StatusCredited=Krediteeritud diff --git a/htdocs/langs/eu_ES/accountancy.lang b/htdocs/langs/eu_ES/accountancy.lang index bf77c5e5e7d..5946647eac8 100644 --- a/htdocs/langs/eu_ES/accountancy.lang +++ b/htdocs/langs/eu_ES/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/eu_ES/admin.lang b/htdocs/langs/eu_ES/admin.lang index 42a098c277f..7ad6e90e525 100644 --- a/htdocs/langs/eu_ES/admin.lang +++ b/htdocs/langs/eu_ES/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Kontabilitatea -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/eu_ES/agenda.lang b/htdocs/langs/eu_ES/agenda.lang index 2779b52bd11..85caa4ae8f9 100644 --- a/htdocs/langs/eu_ES/agenda.lang +++ b/htdocs/langs/eu_ES/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/eu_ES/banks.lang b/htdocs/langs/eu_ES/banks.lang index c976cd39643..6e8ca4df40f 100644 --- a/htdocs/langs/eu_ES/banks.lang +++ b/htdocs/langs/eu_ES/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Zenbakia LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/eu_ES/bills.lang b/htdocs/langs/eu_ES/bills.lang index d44f2f61f1a..73782407f3b 100644 --- a/htdocs/langs/eu_ES/bills.lang +++ b/htdocs/langs/eu_ES/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Ordainketa ezabatu -ConfirmDeletePayment=Ziur zaude ordainketa hay ezabatu nahi duzuna? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Hornitzaileei ordainketak ReceivedPayments=Jasotako ordainketak @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Faktura erakutsi ShowInvoice=Faktura erakutsi ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Ordainketa erakutsi AlreadyPaid=Jada ordainduta AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/eu_ES/bookmarks.lang b/htdocs/langs/eu_ES/bookmarks.lang index db4d1274d08..7a72cdd8c0b 100644 --- a/htdocs/langs/eu_ES/bookmarks.lang +++ b/htdocs/langs/eu_ES/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Orrialde hau laster-marketara gehitu +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Laster-marka Bookmarks=Laster-markak +ListOfBookmarks=Laster-marken zerrenda +EditBookmarks=List/edit bookmarks NewBookmark=Laster-marka berria ShowBookmark=Erakutsi laster-marka OpenANewWindow=Leiho berria irekia @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Leiho berria BookmarkTargetReplaceWindowShort=Oraingo leihoa BookmarkTitle=Laster-markaren izenburua UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Laster-marka sortu SetHereATitleForLink=Laster-markaren izenburua ezarri UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/eu_ES/boxes.lang b/htdocs/langs/eu_ES/boxes.lang index b06629ee51f..f0f74643a1a 100644 --- a/htdocs/langs/eu_ES/boxes.lang +++ b/htdocs/langs/eu_ES/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposamenak LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/eu_ES/categories.lang b/htdocs/langs/eu_ES/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/eu_ES/categories.lang +++ b/htdocs/langs/eu_ES/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/eu_ES/commercial.lang b/htdocs/langs/eu_ES/commercial.lang index 5657e29b042..938c1d94da1 100644 --- a/htdocs/langs/eu_ES/commercial.lang +++ b/htdocs/langs/eu_ES/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/eu_ES/companies.lang b/htdocs/langs/eu_ES/companies.lang index 7df6ad2b73b..f71b5fc49b9 100644 --- a/htdocs/langs/eu_ES/companies.lang +++ b/htdocs/langs/eu_ES/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Hornitzaileak ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposamenak +OverAllOrders=Orders +OverAllInvoices=Fakturak +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/eu_ES/contracts.lang b/htdocs/langs/eu_ES/contracts.lang index fef9aa8f7f9..0d8a1dd96be 100644 --- a/htdocs/langs/eu_ES/contracts.lang +++ b/htdocs/langs/eu_ES/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/eu_ES/exports.lang b/htdocs/langs/eu_ES/exports.lang index d38eb0fb56a..d138a62540d 100644 --- a/htdocs/langs/eu_ES/exports.lang +++ b/htdocs/langs/eu_ES/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/eu_ES/holiday.lang b/htdocs/langs/eu_ES/holiday.lang index 10e7c6344ee..244b6e0a323 100644 --- a/htdocs/langs/eu_ES/holiday.lang +++ b/htdocs/langs/eu_ES/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Deskribapena SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/eu_ES/install.lang b/htdocs/langs/eu_ES/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/eu_ES/install.lang +++ b/htdocs/langs/eu_ES/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/eu_ES/loan.lang b/htdocs/langs/eu_ES/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/eu_ES/loan.lang +++ b/htdocs/langs/eu_ES/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/eu_ES/mails.lang b/htdocs/langs/eu_ES/mails.lang index fc75ec1e053..cb3f27aa057 100644 --- a/htdocs/langs/eu_ES/mails.lang +++ b/htdocs/langs/eu_ES/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Jakinarazpenak NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/eu_ES/main.lang b/htdocs/langs/eu_ES/main.lang index e9ad3ac707a..53867790cd6 100644 --- a/htdocs/langs/eu_ES/main.lang +++ b/htdocs/langs/eu_ES/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Urr MonthShort11=Aza MonthShort12=Abe AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=UUUU-HH DateFormatYYYYMMDD=UUUU-HH-EE DateFormatYYYYMMDDHHMM=UUUU-HH-EE OO:SS diff --git a/htdocs/langs/eu_ES/margins.lang b/htdocs/langs/eu_ES/margins.lang index 64e1a87864d..62df6d644a4 100644 --- a/htdocs/langs/eu_ES/margins.lang +++ b/htdocs/langs/eu_ES/margins.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - marges Margin=Margin -Margins=Margins +Margins=Marjinak TotalMargin=Total Margin MarginOnProducts=Margin / Products MarginOnServices=Margin / Services @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/eu_ES/members.lang b/htdocs/langs/eu_ES/members.lang index 97413ad6208..32542f6a85f 100644 --- a/htdocs/langs/eu_ES/members.lang +++ b/htdocs/langs/eu_ES/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Kideak LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/eu_ES/modulebuilder.lang b/htdocs/langs/eu_ES/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/eu_ES/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/eu_ES/other.lang b/htdocs/langs/eu_ES/other.lang index b68133779e6..40f0204e1ac 100644 --- a/htdocs/langs/eu_ES/other.lang +++ b/htdocs/langs/eu_ES/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/eu_ES/paybox.lang b/htdocs/langs/eu_ES/paybox.lang index b218775ed0c..a5d21dd1b95 100644 --- a/htdocs/langs/eu_ES/paybox.lang +++ b/htdocs/langs/eu_ES/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Ordainketa egin YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Hurrengoa ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/eu_ES/paypal.lang b/htdocs/langs/eu_ES/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/eu_ES/paypal.lang +++ b/htdocs/langs/eu_ES/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/eu_ES/products.lang b/htdocs/langs/eu_ES/products.lang index e30308fed02..ba9c9dd8c3f 100644 --- a/htdocs/langs/eu_ES/products.lang +++ b/htdocs/langs/eu_ES/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/eu_ES/propal.lang b/htdocs/langs/eu_ES/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/eu_ES/propal.lang +++ b/htdocs/langs/eu_ES/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/eu_ES/resource.lang b/htdocs/langs/eu_ES/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/eu_ES/resource.lang +++ b/htdocs/langs/eu_ES/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/eu_ES/salaries.lang b/htdocs/langs/eu_ES/salaries.lang index ff7bebe2b46..634880bcd4b 100644 --- a/htdocs/langs/eu_ES/salaries.lang +++ b/htdocs/langs/eu_ES/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Soldata Salaries=Soldatak NewSalaryPayment=Soldata ordainketa berria diff --git a/htdocs/langs/eu_ES/sendings.lang b/htdocs/langs/eu_ES/sendings.lang index 6542a5145f5..3dbcd829c4a 100644 --- a/htdocs/langs/eu_ES/sendings.lang +++ b/htdocs/langs/eu_ES/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/eu_ES/stocks.lang b/htdocs/langs/eu_ES/stocks.lang index 1753a055c48..a8864573c33 100644 --- a/htdocs/langs/eu_ES/stocks.lang +++ b/htdocs/langs/eu_ES/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Balioa PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Editatu +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Gehitu +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/eu_ES/stripe.lang b/htdocs/langs/eu_ES/stripe.lang new file mode 100644 index 00000000000..b34a79d01ce --- /dev/null +++ b/htdocs/langs/eu_ES/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Hurrengoa +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/eu_ES/supplier_proposal.lang b/htdocs/langs/eu_ES/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/eu_ES/supplier_proposal.lang +++ b/htdocs/langs/eu_ES/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/eu_ES/suppliers.lang b/htdocs/langs/eu_ES/suppliers.lang index 099140ba012..a708c59fd8f 100644 --- a/htdocs/langs/eu_ES/suppliers.lang +++ b/htdocs/langs/eu_ES/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/eu_ES/trips.lang b/htdocs/langs/eu_ES/trips.lang index 9437ef13fd3..6462aa60d8e 100644 --- a/htdocs/langs/eu_ES/trips.lang +++ b/htdocs/langs/eu_ES/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Bisitatutako konpania/erakundea +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Ordainketa data BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/eu_ES/users.lang b/htdocs/langs/eu_ES/users.lang index 559c43e6e28..ac9242bbf65 100644 --- a/htdocs/langs/eu_ES/users.lang +++ b/htdocs/langs/eu_ES/users.lang @@ -66,8 +66,8 @@ InternalUser=Barneko erabiltzailea ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/eu_ES/website.lang b/htdocs/langs/eu_ES/website.lang index 6197580711f..252396603aa 100644 --- a/htdocs/langs/eu_ES/website.lang +++ b/htdocs/langs/eu_ES/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kodea WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/eu_ES/withdrawals.lang b/htdocs/langs/eu_ES/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/eu_ES/withdrawals.lang +++ b/htdocs/langs/eu_ES/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/fa_IR/accountancy.lang b/htdocs/langs/fa_IR/accountancy.lang index 7d6d08374eb..cf8fdb077dc 100644 --- a/htdocs/langs/fa_IR/accountancy.lang +++ b/htdocs/langs/fa_IR/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=اضافه کردن یک حساب حسابداری AccountAccounting=حساب حسابداری AccountAccountingShort=حساب SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=حساب حسابداری پیشنهاد شده @@ -79,6 +79,7 @@ SuppliersVentilation=شامل شدن با صورت حسابهای تامین ک ExpenseReportsVentilation=Expense report binding CreateMvts=ایجاد نقل و انتقال جدید UpdateMvts=ویرایش نقل و انتقال +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=فروش AccountingJournalType3=خرید AccountingJournalType4=بانک +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=صادرات Export=صادرات +ExportDraftJournal=Export draft journal Modelcsv=نوع صادرات OptionsDeactivatedForThisExportModel=برای این نوع صادرات، انتخاب ها غیر فعال شده است Selectmodelcsv=انتخاب مدل صادرات diff --git a/htdocs/langs/fa_IR/admin.lang b/htdocs/langs/fa_IR/admin.lang index c7819cd3426..04f0dacc180 100644 --- a/htdocs/langs/fa_IR/admin.lang +++ b/htdocs/langs/fa_IR/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=اخوندک Module1200Desc=ادغام آخوندک Module1400Name=حسابداری -Module1400Desc=مدیریت حسابداری (احزاب دو) +Module1400Desc=Accounting management (double entries) Module1520Name=ساخت سند Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=پی پال Module50200Desc=ماژول برای ارائه یک صفحه پرداخت آنلاین از طریق کارت اعتباری با پی پال Module50400Name=Accounting (advanced) -Module50400Desc=مدیریت حسابداری (احزاب دو) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/fa_IR/agenda.lang b/htdocs/langs/fa_IR/agenda.lang index ccaeda5443f..a9a4d5a0266 100644 --- a/htdocs/langs/fa_IR/agenda.lang +++ b/htdocs/langs/fa_IR/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=فاکتور٪ s را حذف InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=منظور از٪ s معتبر @@ -74,13 +75,17 @@ InterventionSentByEMail=مداخله٪ s ارسال با ایمیل ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=تاریخ شروع DateActionEnd=تاریخ پایان AgendaUrlOptions1=شما همچنین می توانید پارامترهای زیر برای فیلتر کردن خروجی اضافه: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint =٪ s را برای محدود کردن خروجی به اقدامات داده شده به کاربر از٪ s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/fa_IR/banks.lang b/htdocs/langs/fa_IR/banks.lang index 52a8d6d686d..bf584a664bd 100644 --- a/htdocs/langs/fa_IR/banks.lang +++ b/htdocs/langs/fa_IR/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID معامله BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=وفق دادن Conciliation=مصالحه ReconciliationLate=Reconciliation late IncludeClosedAccount=شامل حساب های بسته شده -OnlyOpenedAccount=حساب های تنها باز +OnlyOpenedAccount=Only open accounts AccountToCredit=حساب به اعتبار AccountToDebit=حساب به بدهی DisableConciliation=غیر فعال کردن ویژگی های آشتی برای این حساب ConciliationDisabled=از ویژگی های آشتی غیر فعال است LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=افتتاح شد +StatusAccountOpened=باز StatusAccountClosed=بسته شده AccountIdShort=شماره LineRecord=معامله @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/fa_IR/bills.lang b/htdocs/langs/fa_IR/bills.lang index 144082e94f2..aade7bffac1 100644 --- a/htdocs/langs/fa_IR/bills.lang +++ b/htdocs/langs/fa_IR/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=صورت حساب استاندارد InvoiceStandardAsk=صورت حساب استاندارد InvoiceStandardDesc=این نوع از فاکتور فاکتور معمول است. -InvoiceDeposit=صورت حساب سپرده -InvoiceDepositAsk=صورت حساب سپرده -InvoiceDepositDesc=این نوع از فاکتور انجام شده است زمانی که سپرده دریافت شده است. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=فاکتورمقدماتی InvoiceProFormaAsk=فاکتورمقدماتی InvoiceProFormaDesc=فاکتور را یک تصویر از یک فاکتور درست است اما هیچ ارزش حسابداری. @@ -62,7 +62,7 @@ PaymentsBack=پرداخت به عقب paymentInInvoiceCurrency=in invoices currency PaidBack=پرداخت به عقب DeletePayment=حذف پرداخت -ConfirmDeletePayment=آیا مطمئن هستید که می خواهید به حذف این پرداخت؟ +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=تولید کنندگان پرداخت ReceivedPayments=دریافت پرداخت @@ -115,7 +115,7 @@ BillStatus=وضعیت فاکتور StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=پیش نویس (نیاز به تایید می شود) BillStatusPaid=پرداخت -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=پرداخت (آماده برای فاکتور نهایی) BillStatusCanceled=متروک BillStatusValidated=اعتبار (نیاز به پرداخت می شود) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=پرداخت (تا حدی) BillShortStatusDraft=پیش نویس BillShortStatusPaid=پرداخت BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=پردازش +BillShortStatusConverted=پرداخت BillShortStatusCanceled=متروک BillShortStatusValidated=اعتبار BillShortStatusStarted=آغاز شده @@ -198,12 +198,12 @@ ShowBill=نمایش فاکتور ShowInvoice=نمایش فاکتور ShowInvoiceReplace=نمایش جایگزین فاکتور ShowInvoiceAvoir=نمایش توجه داشته باشید اعتباری -ShowInvoiceDeposit=نمایش فاکتور سپرده +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=نمایش پرداخت AlreadyPaid=در حال حاضر پرداخت می شود AlreadyPaidBack=در حال حاضر باز پرداخت -AlreadyPaidNoCreditNotesNoDeposits=در حال حاضر (بدون یادداشت های اعتباری و سپرده) پرداخت می شود +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=متروک RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=تخفیف نسبی GlobalDiscount=تخفیف سراسری CreditNote=توجه داشته باشید اعتباری CreditNotes=یادداشت های اعتباری -Deposit=سپرده -Deposits=سپرده ها +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=تخفیف از اعتبار توجه داشته باشید از٪ s -DiscountFromDeposit=پرداخت از سپرده فاکتور از٪ s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=این نوع از اعتبار را می توان در صورتحساب قبل از اعتبار آن استفاده می شود CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=آیا می توانم پرداخت را ح ExpectedToPay=پرداخت مورد انتظار CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=پرداخت شده توسط این پرداخت -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=طبقه بندی "پرداخت" تمام یادداشت های اعتباری به طور کامل دوباره پرداخت می شود. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=همه فاکتور بدون باقی می ماند به پرداخت به طور خودکار به وضعیت "پرداخت" بسته است. @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=فاکتور PDF قالب Crabe. قالب فاکتور کامل (قالب توصیه می شود) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=تعداد بازگشت با فرمت٪ syymm-NNNN برای فاکتورها استاندارد و٪ syymm-NNNN برای یادداشت های اعتباری که در آن YY سال است، میلی متر در ماه است و NNNN دنباله بدون استراحت و بدون بازگشت به 0 است -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=لایحه با $ شروع میشوند syymm حال حاضر وجود دارد و سازگار با این مدل توالی نیست. آن را حذف و یا تغییر نام آن را به این ماژول را فعال کنید. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=نماینده زیر تا صورتحساب مشتری TypeContact_facture_external_BILLING=تماس با فاکتور به مشتری diff --git a/htdocs/langs/fa_IR/bookmarks.lang b/htdocs/langs/fa_IR/bookmarks.lang index 86a79dc0990..79b0d175ede 100644 --- a/htdocs/langs/fa_IR/bookmarks.lang +++ b/htdocs/langs/fa_IR/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=اضافه کردن این صفحه به بوکمارک +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=عنوان Bookmarks=عنوان ها +ListOfBookmarks=فهرست عناوین +EditBookmarks=List/edit bookmarks NewBookmark=عنوان جدید ShowBookmark=نمایش عنوان OpenANewWindow=باز کردن یک پنجره جدید @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=پنجره جدید BookmarkTargetReplaceWindowShort=پنجره کنونی BookmarkTitle=تیتر عنوان UrlOrLink=یو ار ال -BehaviourOnClick=رفتار زمانی که یک URL کلیک +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=ایجاد عنوان SetHereATitleForLink=تنظیم یک عنوان برای نظر نشانه UseAnExternalHttpLinkOrRelativeDolibarrLink=استفاده از URL های http خارجی و یا یک URL Dolibarr نسبی diff --git a/htdocs/langs/fa_IR/boxes.lang b/htdocs/langs/fa_IR/boxes.lang index 1c7a22492b8..1063e9eb3a8 100644 --- a/htdocs/langs/fa_IR/boxes.lang +++ b/htdocs/langs/fa_IR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=اطلاعات آر اس اس BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=سفارشات مشتریان ForProposals=پیشنهادات LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/fa_IR/categories.lang b/htdocs/langs/fa_IR/categories.lang index 676beb26a90..0b9bcf3900b 100644 --- a/htdocs/langs/fa_IR/categories.lang +++ b/htdocs/langs/fa_IR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=به @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=این رده در حال حاضر با این کد ع ContentsVisibleByAllShort=مطالب توسط همه قابل مشاهده ContentsNotVisibleByAllShort=مطالب توسط همه قابل رویت نیست DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/fa_IR/commercial.lang b/htdocs/langs/fa_IR/commercial.lang index 626290d4d6a..334dcca68ff 100644 --- a/htdocs/langs/fa_IR/commercial.lang +++ b/htdocs/langs/fa_IR/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=نشست با٪ s ShowTask=نمایش کار ShowAction=نمایش رویداد ActionsReport=رویدادهای گزارش -ThirdPartiesOfSaleRepresentative=Thirdparties با نمایندگی فروش +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=نمایندگی فروش SalesRepresentatives=نمایندگان فروش SalesRepresentativeFollowUp=نماینده فروش (پیگیری) diff --git a/htdocs/langs/fa_IR/companies.lang b/htdocs/langs/fa_IR/companies.lang index 043f486baae..e5d6c0a48ff 100644 --- a/htdocs/langs/fa_IR/companies.lang +++ b/htdocs/langs/fa_IR/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=فردی خصوصی جدید NewCompany=شرکت جدید (چشم انداز، مشتری، عرضه کننده کالا) NewThirdParty=شخص ثالث جدید (چشم انداز، مشتری، عرضه کننده کالا) CreateDolibarrThirdPartySupplier=ایجاد یک حزب سوم (منبع) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=منطقه Prospection IdThirdParty=کد های شخص ثالث @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=مشتریان ThirdPartyCustomersWithIdProf12=مشتریان با٪ s یا٪ s ThirdPartySuppliers=تامین کنندگان ThirdPartyType=نوع شخص ثالث -Company/Fundation=شرکت / بنیاد Individual=فردی خصوصی ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=شرکت مادر @@ -78,10 +77,10 @@ VATIsNotUsed=مالیات بر ارزش افزوده استفاده نمی شو CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=پیشنهادات +OverAllOrders=سفارشات +OverAllInvoices=صورت حساب +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=استفاده از مالیات دوم LocalTax1IsUsedES= RE استفاده شده است @@ -237,6 +236,12 @@ ProfId3TN=پروفسور کد 3 (کد Douane) ProfId4TN=پروفسور کد 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=پروفسور شناسه 1 (OGRN) ProfId2RU=پروفسور کد 2 (INN) ProfId3RU=پروفسور کد 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=تخفیف نسبی CustomerAbsoluteDiscountShort=تخفیف مطلق CompanyHasRelativeDiscount=این مشتری است تخفیف به طور پیش فرض از٪ s٪٪ CompanyHasNoRelativeDiscount=این مشتری ندارد تخفیف نسبی به طور پیش فرض -CompanyHasAbsoluteDiscount=این مشتری هنوز اعتبارات تخفیف و یا سپرده برای٪ s٪ s را +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=این مشتری هنوز یادداشت های اعتباری برای٪ s٪ s را CompanyHasNoAbsoluteDiscount=این مشتری است هیچ اعتباری تخفیف در دسترس CustomerAbsoluteDiscountAllUsers=تخفیف مطلق (اعطا شده توسط همه کاربران) @@ -390,7 +395,7 @@ ListCustomersShort=فهرست مشتریان ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=مجموع اشخاص ثالث منحصر به فرد -InActivity=افتتاح شد +InActivity=باز ActivityCeased=بسته ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=کد آزاد است. این کد را می توان در ManagingDirectors=مدیر (بازدید کنندگان) نام (مدیر عامل شرکت، مدیر، رئيس جمهور ...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/fa_IR/contracts.lang b/htdocs/langs/fa_IR/contracts.lang index f20e759389b..48dd096cbd6 100644 --- a/htdocs/langs/fa_IR/contracts.lang +++ b/htdocs/langs/fa_IR/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=این لیست فقط شامل خدمات قرا StandardContractsTemplate=قراردادهای استاندارد قالب ContactNameAndSignature=برای٪ s، نام و امضا: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=نمایندگی فروش امضای قرارداد diff --git a/htdocs/langs/fa_IR/exports.lang b/htdocs/langs/fa_IR/exports.lang index 874eb0e366b..cdba6b862aa 100644 --- a/htdocs/langs/fa_IR/exports.lang +++ b/htdocs/langs/fa_IR/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=اگر می خواهید برای فیلتر کردن در برخی از ارزش ها، فقط مقادیر ورودی در اینجا. FilteredFields=رشته های فیلتر شده diff --git a/htdocs/langs/fa_IR/holiday.lang b/htdocs/langs/fa_IR/holiday.lang index faf326a3976..ab8d92aad13 100644 --- a/htdocs/langs/fa_IR/holiday.lang +++ b/htdocs/langs/fa_IR/holiday.lang @@ -16,7 +16,7 @@ CancelCP=لغو شد RefuseCP=رد ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=خواهد شد بررسی +ReviewedByCP=Will be approved by DescCP=توصیف SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/fa_IR/install.lang b/htdocs/langs/fa_IR/install.lang index b8804e08606..2dc950faccc 100644 --- a/htdocs/langs/fa_IR/install.lang +++ b/htdocs/langs/fa_IR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=شما با استفاده از جادوگر در راه KeepDefaultValuesDeb=شما با استفاده از جادوگر Dolibarr راه اندازی از یک بسته لینوکس (اوبونتو، دبیان، فدورا ...)، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تنها رمز صاحب پایگاه داده برای ایجاد باید پر شوند. تغییر پارامترهای دیگر تنها در صورتی شما می دانید آنچه شما انجام دهد. KeepDefaultValuesMamp=شما با استفاده از جادوگر در راه اندازی Dolibarr از DoliMamp، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تغییر آنها را تنها در صورتی شما می دانید آنچه شما انجام دهد. KeepDefaultValuesProxmox=شما با استفاده از جادوگر در راه اندازی Dolibarr از یک دستگاه مجازی بورس، بنابراین مقادیر ارائه شده در اینجا در حال حاضر بهینه شده است. تغییر آنها را تنها در صورتی شما می دانید آنچه شما انجام دهد. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/fa_IR/loan.lang b/htdocs/langs/fa_IR/loan.lang index 58bfbd94ebf..c6d6e62d52c 100644 --- a/htdocs/langs/fa_IR/loan.lang +++ b/htdocs/langs/fa_IR/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/fa_IR/mails.lang b/htdocs/langs/fa_IR/mails.lang index 486c03b1fd1..d1262520aac 100644 --- a/htdocs/langs/fa_IR/mails.lang +++ b/htdocs/langs/fa_IR/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=قسمتی های ارسال شده MailingStatusSentCompletely=به طور کامل ارسال شد MailingStatusError=خطا MailingStatusNotSent=ارسال نشده -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=ایمیل با موفقیت معتبر MailUnsubcribe=لغو اشتراک MailingStatusNotContact=آیا تماس نمی @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=خط٪ در فایل @@ -116,8 +120,8 @@ Notifications=اطلاعیه ها NoNotificationsWillBeSent=بدون اطلاعیه ها ایمیل ها برای این رویداد و شرکت برنامه ریزی ANotificationsWillBeSent=1 اطلاع رسانی خواهد شد از طریق ایمیل ارسال می شود SomeNotificationsWillBeSent=اطلاعیه٪ خواهد شد از طریق ایمیل ارسال می شود -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=لیست همه اطلاعیه ها ایمیل فرستاده شده MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/fa_IR/main.lang b/htdocs/langs/fa_IR/main.lang index 4d89cb3ed8b..d68747bc55c 100644 --- a/htdocs/langs/fa_IR/main.lang +++ b/htdocs/langs/fa_IR/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=درخواست BackgroundColorByDefault=رنگ به طور پیش فرض پس زمینه FileRenamed=The file was successfully renamed -FileUploaded=فایل با موفقیت آپلود شد FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=فایل با موفقیت آپلود شد +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=فایل برای پیوست انتخاب شده، اما هنوز ارسال نشده. بر روی "فایل ضمیمه" برای این کلیک کنید. NbOfEntries=Nb و از نوشته GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=مجموع RE TotalLT2ES=IRPF ها HT=خالص از مالیات TTC=مالیات بر شرکت +INCT=Inc. all taxes VAT=مالیات بر فروش کالا VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=اکتبر MonthShort11=نوامبر MonthShort12=دسامبر AttachedFiles=اسناد و فایل های پیوست شده -FileTransferComplete=فایل با موفقیت آپلود شد DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/fa_IR/margins.lang b/htdocs/langs/fa_IR/margins.lang index a5221d46cdf..1a76d6af681 100644 --- a/htdocs/langs/fa_IR/margins.lang +++ b/htdocs/langs/fa_IR/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/fa_IR/members.lang b/htdocs/langs/fa_IR/members.lang index 64cff7955d7..84506f17921 100644 --- a/htdocs/langs/fa_IR/members.lang +++ b/htdocs/langs/fa_IR/members.lang @@ -90,6 +90,7 @@ PublicMemberList=فهرست کاربران عمومی BlankSubscriptionForm=شکل خودکار اشتراک عمومی BlankSubscriptionFormDesc=Dolibarr می تواند به شما URL های عمومی ارائه اجازه می دهد تا بازدید کننده خارجی به درخواست برای عضویت در پایه و اساس. اگر یک ماژول پرداخت آنلاین فعال باشد، به صورت پرداخت نیز به صورت خودکار ارائه خواهند شد. EnablePublicSubscriptionForm=فعال کردن فرم خودکار اشتراک عمومی +ForceMemberType=Force the member type ExportDataset_member_1=کاربران و اشتراک ImportDataset_member_1=کاربران LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=این صفحه آمار در عضو های شهر شما نش MembersStatisticsDesc=را انتخاب کنید آمار شما می خواهید به عنوان خوانده شده ... MenuMembersStats=ارقام LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=طبیعت Public=اطلاعات عمومی NewMemberbyWeb=عضو جدید اضافه شده است. در انتظار تایید diff --git a/htdocs/langs/fa_IR/modulebuilder.lang b/htdocs/langs/fa_IR/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/fa_IR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/fa_IR/other.lang b/htdocs/langs/fa_IR/other.lang index a0b0810f346..4c2cd6caefe 100644 --- a/htdocs/langs/fa_IR/other.lang +++ b/htdocs/langs/fa_IR/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=کیلوگرم WeightUnitg=گرم WeightUnitmg=میلی گرم WeightUnitpound=پوند +WeightUnitounce=اونس Length=طول LengthUnitm=متر LengthUnitdm=دیابت diff --git a/htdocs/langs/fa_IR/paybox.lang b/htdocs/langs/fa_IR/paybox.lang index c9f47dc6d2e..8127e837774 100644 --- a/htdocs/langs/fa_IR/paybox.lang +++ b/htdocs/langs/fa_IR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=ایمیل برای دریافت تاییدیه پرداخت Creditor=بستانکار PaymentCode=کد های پرداخت PayBoxDoPayment=برو در پرداخت +ToPay=آیا پرداخت YouWillBeRedirectedOnPayBox=شما می توانید در صفحه خزانه امن برای ورودی هدایت می شوید اطلاعات کارت اعتباری شما Continue=بعد ToOfferALinkForOnlinePayment=URL برای٪ s پرداخت diff --git a/htdocs/langs/fa_IR/paypal.lang b/htdocs/langs/fa_IR/paypal.lang index ad5cd4e24f0..355c5171a4f 100644 --- a/htdocs/langs/fa_IR/paypal.lang +++ b/htdocs/langs/fa_IR/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=این شناسه از معامله است:٪ s PAYPAL_ADD_PAYMENT_URL=اضافه کردن آدرس از پرداخت پی پال زمانی که شما یک سند ارسال از طریق پست PredefinedMailContentLink=شما می توانید بر روی لینک زیر کلیک کنید امن به پرداخت خود را (پی پال) اگر آن را در حال حاضر انجام می شود. از٪ s YouAreCurrentlyInSandboxMode=شما در حال حاضر در "گودال ماسهبازی" حالت -NewPaypalPaymentReceived=پرداخت پی پال جدید دریافت -NewPaypalPaymentFailed=پرداخت جدید پی پال تلاش کردند اما موفق +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=ایمیل پس از پرداخت برای هشدار دادن به (موفقیت یا نه) ReturnURLAfterPayment=URL بازگشت پس از پرداخت -ValidationOfPaypalPaymentFailed=اعتبار سنجی پرداخت پی پال شکست خورده -PaypalConfirmPaymentPageWasCalledButFailed=صفحه تایید پرداخت پی پال توسط پی پال نامیده می شد اما به تایید شکست خورده +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/fa_IR/products.lang b/htdocs/langs/fa_IR/products.lang index 9f5976afe3c..d608d277db1 100644 --- a/htdocs/langs/fa_IR/products.lang +++ b/htdocs/langs/fa_IR/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=محصولات و خدمات ProductsAndServices=محصولات و خدمات ProductsOrServices=محصولات و خدمات -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=دوم +unitH=ساعت +unitD=روز +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=قالب کد عکس محصول ServiceCodeModel=قالب کد عکس خدمات CurrentProductPrice=قیمت کنونی @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=محصول ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/fa_IR/propal.lang b/htdocs/langs/fa_IR/propal.lang index 20ecb71efdb..9aa36a10cec 100644 --- a/htdocs/langs/fa_IR/propal.lang +++ b/htdocs/langs/fa_IR/propal.lang @@ -3,7 +3,7 @@ Proposals=طرح های تجاری Proposal=پیشنهاد تجاری ProposalShort=پیشنهاد ProposalsDraft=طرح تجاری پیش نویس -ProposalsOpened=طرح های تجاری افتتاح شد +ProposalsOpened=Open commercial proposals Prop=طرح های تجاری CommercialProposal=پیشنهاد تجاری ProposalCard=کارت های پیشنهادی @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=مقدار در ماه (خالص از مالیات) NbOfProposals=تعداد طرح های تجاری ShowPropal=نمایش پیشنهاد PropalsDraft=نوعی بازی چکرز -PropalsOpened=افتتاح شد +PropalsOpened=باز PropalStatusDraft=پیش نویس (نیاز به تایید می شود) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=امضا (نیازهای حسابداری و مدیریت) diff --git a/htdocs/langs/fa_IR/resource.lang b/htdocs/langs/fa_IR/resource.lang index 81f1447b353..d0cb5369e8b 100644 --- a/htdocs/langs/fa_IR/resource.lang +++ b/htdocs/langs/fa_IR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=منابع diff --git a/htdocs/langs/fa_IR/salaries.lang b/htdocs/langs/fa_IR/salaries.lang index 4130b9b78a0..eb488d53baf 100644 --- a/htdocs/langs/fa_IR/salaries.lang +++ b/htdocs/langs/fa_IR/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=حقوق Salaries=حقوق NewSalaryPayment=پرداخت حقوق و دستمزد جدید diff --git a/htdocs/langs/fa_IR/sendings.lang b/htdocs/langs/fa_IR/sendings.lang index d21ce3b64cc..ad001809a9f 100644 --- a/htdocs/langs/fa_IR/sendings.lang +++ b/htdocs/langs/fa_IR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=سند مدل ساده DocumentModelMerou=مدل Merou A5 WarningNoQtyLeftToSend=اخطار، محصولات در حال انتظار برای حمل شود. StatsOnShipmentsOnlyValidated=آمار انجام شده بر روی محموله تنها به اعتبار. تاریخ استفاده از تاریخ اعتبار از حمل و نقل (تاریخ تحویل برنامه ریزی همیشه شناخته نشده است) است. @@ -51,10 +50,10 @@ ActionsOnShipping=رویدادهای در حمل و نقل LinkToTrackYourPackage=لینک به پیگیری بسته بندی خود را ShipmentCreationIsDoneFromOrder=برای لحظه ای، ایجاد یک محموله های جدید از کارت منظور انجام می شود. ShipmentLine=خط حمل و نقل -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/fa_IR/stocks.lang b/htdocs/langs/fa_IR/stocks.lang index 4adca6e9c5b..c90346a346c 100644 --- a/htdocs/langs/fa_IR/stocks.lang +++ b/htdocs/langs/fa_IR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=برچسب جنبش NumberOfUnit=تعداد واحد UnitPurchaseValue=قیمت خرید واحد StockTooLow=سهام بیش از حد کم -StockLowerThanLimit=سهام کمتر از حد هشدار +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=ارزش PMPValue=قیمت به طور متوسط ​​وزنی PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=تعداد اعزام QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=اعزام سهام +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=کاهش سهام واقعی بر روی مشتریان اعتبار فاکتورها / یادداشت های اعتباری @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=افزایش سهام واقعی در تامین کنندگان فاکتورها / یادداشت های اعتباری اعتبار ReStockOnValidateOrder=افزایش سهام واقعی در سفارشات تامین کنندگان موافقت -ReStockOnDispatchOrder=افزایش سهام واقعی در اعزام کتابچه راهنمای کاربر به انبارها، بعد از دریافت سفارش کالا +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=منظور هنوز رتبهدهی نشده است و یا بیشتر یک وضعیت است که اجازه می دهد تا اعزام از محصولات در انبارها سهام. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=محصولات از پیش تعریف شده برای این شی. بنابراین بدون اعزام در انبار مورد نیاز است. DispatchVerb=اعزام StockLimitShort=محدود برای هشدار StockLimit=محدود سهام برای هشدار PhysicalStock=سهام فیزیکی RealStock=سهام و مستغلات +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=سهام مجازی +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=انبار شناسه DescWareHouse=شرح انبار LieuWareHouse=انبار محل @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=تعداد محصول٪ s را در انبار قبل ا NbOfProductAfterPeriod=تعداد محصول٪ s را در سهام بعد از دوره زمانی انتخاب شده (>٪ بازدید کنندگان) MassMovement=جنبش توده ای SelectProductInAndOutWareHouse=انتخاب محصول، مقدار، یک انبار منابع و انبار هدف، و سپس کلیک کنید "٪ s". به محض این که برای همه جنبش های مورد نیاز انجام می شود، بر روی "٪ s" را کلیک کنید. -RecordMovement=رکورد ی انتقال +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=جنبش های سهام ثبت شده RuleForStockAvailability=قوانین مورد نیاز سهام @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=ویرایش +inventoryValidate=اعتبار +inventoryDraft=در حال اجرا +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=ایجاد کردن +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=فیلتر گروه +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=اضافه کردن +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=حذف خط +RegulateStock=Regulate Stock +ListInventory=فهرست diff --git a/htdocs/langs/fa_IR/stripe.lang b/htdocs/langs/fa_IR/stripe.lang new file mode 100644 index 00000000000..692ed515997 --- /dev/null +++ b/htdocs/langs/fa_IR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=از آدرس های زیر در دسترس است به ارائه یک صفحه به مشتریان به پرداخت در اشیاء Dolibarr است +PaymentForm=فرم پرداخت +WelcomeOnPaymentPage=در سرویس پرداخت آنلاین ما خوش آمدید +ThisScreenAllowsYouToPay=این صفحه نمایش به شما اجازه ایجاد پرداخت آنلاین به٪ s. +ThisIsInformationOnPayment=این اطلاعات در پرداخت به انجام است +ToComplete=برای تکمیل +YourEMail=ایمیل برای دریافت تاییدیه پرداخت +STRIPE_PAYONLINE_SENDEMAIL=ایمیل پس از پرداخت برای هشدار دادن به (موفقیت یا نه) +Creditor=بستانکار +PaymentCode=کد های پرداخت +StripeDoPayment=برو در پرداخت +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=بعد +ToOfferALinkForOnlinePayment=URL برای٪ s پرداخت +ToOfferALinkForOnlinePaymentOnOrder=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای سفارش مشتری +ToOfferALinkForOnlinePaymentOnInvoice=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای صورتحساب مشتری +ToOfferALinkForOnlinePaymentOnContractLine=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای قرارداد خط +ToOfferALinkForOnlinePaymentOnFreeAmount=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای مقدار رایگان +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL برای ارائه٪ رابط کاربری پرداخت آنلاین برای به اشتراک عضو +YouCanAddTagOnUrl=شما همچنین می توانید پارامتر URL و برچسب = مقدار را به هر یک از این URL (فقط برای پرداخت رایگان مورد نیاز) برای اضافه کردن خود برچسب توضیحات پرداخت خود اضافه کنید. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=این صفحه تایید می کند که پرداخت شما ثبت شده است. متشکرم. +YourPaymentHasNotBeenRecorded=شما پرداخت ثبت شده است نیست و معامله لغو شده است. متشکرم. +AccountParameter=پارامترهای حساب +UsageParameter=پارامترهای طریقه استفاده +InformationToFindParameters=کمک برای پیدا کردن٪ شما اطلاعات حساب +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=نام فروشنده +CSSUrlForPaymentForm=آدرس شیوه نامه CSS برای فرم پرداخت +MessageOK=پیام در اعتبار صفحه بازگشت پرداخت +MessageKO=پیام در لغو صفحه بازگشت پرداخت +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/fa_IR/supplier_proposal.lang b/htdocs/langs/fa_IR/supplier_proposal.lang index 5f34841c171..1014864b809 100644 --- a/htdocs/langs/fa_IR/supplier_proposal.lang +++ b/htdocs/langs/fa_IR/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=پیش نویس (نیاز به تایید می شود) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=بسته SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=رد @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=ایجاد مدل پیش فرض DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/fa_IR/suppliers.lang b/htdocs/langs/fa_IR/suppliers.lang index 66ab317d2e9..a88c10582e0 100644 --- a/htdocs/langs/fa_IR/suppliers.lang +++ b/htdocs/langs/fa_IR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=برخی از زیر محصولات هیچ قیمت تعریف شده AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=این منبع مرجع در حال حاضر با یک مرجع در ارتباط است:٪ s را NoRecordedSuppliers=بدون تامین کنندگان ثبت SupplierPayment=پرداخت کننده @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/fa_IR/trips.lang b/htdocs/langs/fa_IR/trips.lang index 601a9f17ae0..878846b8bfa 100644 --- a/htdocs/langs/fa_IR/trips.lang +++ b/htdocs/langs/fa_IR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=فهرست هزینه ها TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=شرکت / بنیاد بازدید کردند +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=مقدار و یا کیلومتر DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=تاریخ اعتبار DATE_CANCEL=Cancelation date DATE_PAIEMENT=تاریخ پرداخت BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/fa_IR/users.lang b/htdocs/langs/fa_IR/users.lang index 77e395f4a9a..f95170cc390 100644 --- a/htdocs/langs/fa_IR/users.lang +++ b/htdocs/langs/fa_IR/users.lang @@ -66,8 +66,8 @@ InternalUser=کاربر داخلی ExportDataset_user_1=کاربران Dolibarr و خواص DomainUser=کاربر دامنه از٪ s Reactivate=دوباره فعال کردن -CreateInternalUserDesc=این فرم اجازه می دهد تا به شما برای ایجاد یک کاربر داخلی به شرکت شما / پایه. برای ایجاد یک کاربر خارجی (مشتریان، تامین کننده، ...)، با استفاده از دکمه "ایجاد کاربر Dolibarr 'از کارت تماس با شخص ثالث است. -InternalExternalDesc=داخلی یک کاربر است که بخشی از شرکت خود را / بنیاد است.
کاربر خارجی مشتری، عرضه کننده کالا یا دیگر است.

در هر دو مورد، مجوز حقوق در Dolibarr تعریف می کند، همچنین کاربر خارجی می تواند یک مدیر منو های مختلف از کاربر داخلی (صفحه اصلی - راه اندازی - نمایش) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=اجازه چرا که از یک گروه کاربر را به ارث برده. Inherited=به ارث برده UserWillBeInternalUser=کاربر های ایجاد شده خواهد بود داخلی (چون به شخص ثالث خاصی پیوند ندارد) diff --git a/htdocs/langs/fa_IR/website.lang b/htdocs/langs/fa_IR/website.lang index 6197580711f..2dffe244283 100644 --- a/htdocs/langs/fa_IR/website.lang +++ b/htdocs/langs/fa_IR/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=رمز WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/fa_IR/withdrawals.lang b/htdocs/langs/fa_IR/withdrawals.lang index 452781c07bf..a9bf7c231f4 100644 --- a/htdocs/langs/fa_IR/withdrawals.lang +++ b/htdocs/langs/fa_IR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=مقدار برای برداشت WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=بدون فاکتور مشتری در حالت پرداخت "برداشت" در انتظار است. برو در تب 'برداشت' در کارت فاکتور به درخواست. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=کاربر مسئول WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=دلیلی برای رد RefusedInvoicing=حسابداری رد NoInvoiceRefused=آیا رد اتهام نیست InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=انتظار StatusTrans=فرستاده StatusCredited=اعتبار diff --git a/htdocs/langs/fi_FI/accountancy.lang b/htdocs/langs/fi_FI/accountancy.lang index 4a0bf16d721..e0ad50e67e3 100644 --- a/htdocs/langs/fi_FI/accountancy.lang +++ b/htdocs/langs/fi_FI/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Kirjanpitoalue AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Tilin saldo @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Tuhottava vuosi @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Myynti AccountingJournalType3=Ostot AccountingJournalType4=Pankki +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/fi_FI/admin.lang b/htdocs/langs/fi_FI/admin.lang index c49fabf9780..6e19845dd24 100644 --- a/htdocs/langs/fi_FI/admin.lang +++ b/htdocs/langs/fi_FI/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis yhdentyminen Module1400Name=Kirjanpidon asiantuntija -Module1400Desc=Kirjanpidon hallinta asiantuntijoille (double osapuolet) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Moduuli tarjoaa online-maksu-sivulla luottokortilla PayPal Module50400Name=Accounting (advanced) -Module50400Desc=Kirjanpidon hallinta asiantuntijoille (double osapuolet) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/fi_FI/agenda.lang b/htdocs/langs/fi_FI/agenda.lang index d9f90163b7c..35361b50e2f 100644 --- a/htdocs/langs/fi_FI/agenda.lang +++ b/htdocs/langs/fi_FI/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Tilaa validoitava @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s lähetetään sähköpostilla ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Aloituspäivämäärä DateActionEnd=Lopetuspäivä AgendaUrlOptions1=Voit myös lisätä seuraavat parametrit suodattaa output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=logint= %s rajoittaa tuotannon toimet vaikuttavat käyttäjän %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts @@ -98,7 +103,7 @@ ExtSiteUrlAgenda=URL päästä. ICal-tiedostona ExtSiteNoLabel=Ei kuvausta VisibleTimeRange=Visible time range VisibleDaysRange=Visible days range -AddEvent=Create event +AddEvent=Luo tapahtuma MyAvailability=My availability ActionType=Event type DateActionBegin=Start event date diff --git a/htdocs/langs/fi_FI/banks.lang b/htdocs/langs/fi_FI/banks.lang index e669b038ad8..2e5de46bb4e 100644 --- a/htdocs/langs/fi_FI/banks.lang +++ b/htdocs/langs/fi_FI/banks.lang @@ -6,7 +6,7 @@ FinancialAccount=Tili BankAccount=Pankkitili BankAccounts=Pankkitilit ShowAccount=Näytä tili -AccountRef=Rahoitustase ref +AccountRef=Rahoitustase viite AccountLabel=Rahoitustase etiketti CashAccount=Käteistili CashAccounts=Käteistilit @@ -63,90 +63,95 @@ BankTransactionByCategories=Pankkitapahtumat luokittain BankTransactionForCategory=Pankkitapahtumat luokassa %s RemoveFromRubrique=Poista linkki kategoriaan RemoveFromRubriqueConfirm=Haluatko varamsti poistaa linkin tapahtuman ja luokan väliltä? -ListBankTransactions=List of bank entries +ListBankTransactions=Luettelo pankkitapahtumista IdTransaction=Tapahtumatunnus -BankTransactions=Bank entries -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +BankTransactions=Pankkitapahtumat +BankTransaction=Pankkimerkintä +ListTransactions=Luettelo tapahtumista +ListTransactionsByCategory=Luettelo tapahtumista / luokka +TransactionsToConciliate=Täsmäytettävät tapahtumat Conciliable=Conciliable Conciliate=Sovita Conciliation=Yhteensovita ReconciliationLate=Täsmäytys myöhässä IncludeClosedAccount=Sisällytä suljettu tilit -OnlyOpenedAccount=Vain avatut tilit +OnlyOpenedAccount=Only open accounts AccountToCredit=Luottotili AccountToDebit=Käteistili DisableConciliation=Poista sovittelu ominaisuus tämän tilin ConciliationDisabled=Sovittelukomitea ominaisuus pois päältä -LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Avattu +LinkedToAConciliatedTransaction=Linkitetty täsmäytettyyn tapahtumaan +StatusAccountOpened=Avoinna StatusAccountClosed=Suljettu AccountIdShort=Numero LineRecord=Tapahtuma -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Lisää merkintä +AddBankRecordLong=Lisää mernkintä manuaalisesti ConciliatedBy=Sovetteli DateConciliating=Sovittelupäivä -BankLineConciliated=Entry reconciled +BankLineConciliated=Merkintä täsmäytetty Reconciled=Täsmäytetty NotReconciled=Täsmäyttämätön CustomerInvoicePayment=Asiakasmaksu SupplierInvoicePayment=Toimittajan maksu SubscriptionPayment=Tilaus maksu WithdrawalPayment=Hyvitysmaksu -SocialContributionPayment=Social/fiscal tax payment +SocialContributionPayment=Social/fiscal veron maksu BankTransfer=Pankkisiirto BankTransfers=Pankkisiirrot MenuBankInternalTransfer=Sisäinen siirto -TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction) +TransferDesc=Siirto tililtä toiselle. Dolibarr luo molemmille tileille kirjaukset (debet lähdetilille ja kredit vastaanottavalle tilille) samalla summalla (ainoastaan etumerkki muuttuu). Päivämäärää ja nimikettä käytetään myös tässä tapahtumassa. TransferFrom=Mistä TransferTo=mihin TransferFromToDone=A siirtää %s %s %s% s on tallennettu. CheckTransmitter=Lähettäjä -ValidateCheckReceipt=Validate this check receipt? -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done? -DeleteCheckReceipt=Delete this check receipt? -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? +ValidateCheckReceipt=Vahvista tämä sekkikuitti? +ConfirmValidateCheckReceipt=Oletko varma, että haluat vahvistaa tämän? Muutokset eivät ole enää mahdollisia, vahvistamisen jälkeen? +DeleteCheckReceipt=Poista tämä shekkikuitti? +ConfirmDeleteCheckReceipt=Haluatko varmasti poistaa tämän sekkikuitin? BankChecks=Pankkisekit -BankChecksToReceipt=Checks awaiting deposit +BankChecksToReceipt=Talletusta odottavat shekit ShowCheckReceipt=Näytä tarkistaa Talletus kuitti NumberOfCheques=Nb Sekkien -DeleteTransaction=Delete entry -ConfirmDeleteTransaction=Are you sure you want to delete this entry? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +DeleteTransaction=Poista merkintä +ConfirmDeleteTransaction=Haluatko varmasti poistaa tämän merkinnän? +ThisWillAlsoDeleteBankRecord=Tämä poistaa myös luodun pankkimerkinnän BankMovements=Siirrot -PlannedTransactions=Planned entries +PlannedTransactions=Suunnitellut merkinnät Graph=Grafiikka -ExportDataset_banque_1=Bank entries and account statement +ExportDataset_banque_1=Pankkimerkinnät ja tiliotteet ExportDataset_banque_2=Talletuslomake TransactionOnTheOtherAccount=Tapahtuma toisella tilillä -PaymentNumberUpdateSucceeded=Payment number updated successfully +PaymentNumberUpdateSucceeded=Maksun numero päivitettiin onnistuneesti PaymentNumberUpdateFailed=Maksu numero ei voi päivittää -PaymentDateUpdateSucceeded=Payment date updated successfully +PaymentDateUpdateSucceeded=Maksun päivämäärä päivitettiin onnistuneesti PaymentDateUpdateFailed=Maksupäivä ei voi päivittää Transactions=Tapahtumat -BankTransactionLine=Bank entry +BankTransactionLine=Pankkimerkintä AllAccounts=Kaikki pankin/tilit BackToAccount=Takaisin tiliin ShowAllAccounts=Näytä kaikki tilit FutureTransaction=Tapahtuma on tulevaisuudessa. Ei soviteltavissa. SelectChequeTransactionAndGenerate=Valitse / suodattaa tarkastuksiin sisällyttää osaksi tarkastus talletuksen vastaanottamisesta ja klikkaa "Luo". -InputReceiptNumber=Choose the bank statement related with the conciliation. Use a sortable numeric value: YYYYMM or YYYYMMDD -EventualyAddCategory=Eventually, specify a category in which to classify the records -ToConciliate=To reconcile? -ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click +InputReceiptNumber=Valitse tämän täsmäytyksen tiliote. Käytä lajiteltavaa numeroarvoa: YYYYMM tai YYYYMMDD +EventualyAddCategory=Määritä luokka johon tiedot luokitellaan +ToConciliate=Täsmäytä? +ThenCheckLinesAndConciliate=Seuraavaksi valitse rivit tiliotteelta ja paina DefaultRIB=Oletun BAN AllRIB=Kaikki BAN LabelRIB=BAN tunnus NoBANRecord=Ei BAN tietuetta DeleteARib=Poista BAN tiedue -ConfirmDeleteRib=Are you sure you want to delete this BAN record? +ConfirmDeleteRib=Haluatko varmasti poistaa tämän BAN tiedon? RejectCheck=Shekki palautunut ConfirmRejectCheck=Haluatko varmasti merkitä tämän shekin hylätyksi? RejectCheckDate=Shekin palautumispäivä CheckRejected=Shekki palautunut CheckRejectedAndInvoicesReopened=Shekki palautunut ja lasku avautunut uudelleen -BankAccountModelModule=Document templates for bank accounts -DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. -DocumentModelBan=Template to print a page with BAN information. +BankAccountModelModule=Pankkitilien dokumenttimallit +DocumentModelSepaMandate=SEPA valtuuden malli. Käyttökelpoinen vain EEC alueen valtioissa +DocumentModelBan=BAN tiedon sisältävä tulostusmalli +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/fi_FI/bills.lang b/htdocs/langs/fi_FI/bills.lang index 6d5ef382ba6..62a4bdcf98a 100644 --- a/htdocs/langs/fi_FI/bills.lang +++ b/htdocs/langs/fi_FI/bills.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - bills Bill=Lasku Bills=Laskut -BillsCustomers=Customer invoices +BillsCustomers=Asiakkaiden laskut BillsCustomer=Asiakas lasku -BillsSuppliers=Supplier invoices -BillsCustomersUnpaid=Unpaid customer invoices +BillsSuppliers=Tavarantoimittajan laskut +BillsCustomersUnpaid=Asiakkaiden maksamattomat laskut BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s -BillsSuppliersUnpaid=Unpaid supplier invoices +BillsSuppliersUnpaid=Tavarantoimittajan maksamattomat laskut BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s BillsLate=Maksuviivästykset -BillsStatistics=Customers invoices statistics -BillsStatisticsSuppliers=Suppliers invoices statistics -DisabledBecauseNotErasable=Disabled because cannot be erased +BillsStatistics=Asiakkaiden laskujen tilastot +BillsStatisticsSuppliers=Tavarantoimittaja laskujen tilastot +DisabledBecauseNotErasable=Poistettu käytöstä koska ei voida poistaa InvoiceStandard=Oletuslasku InvoiceStandardAsk=Oletuslasku InvoiceStandardDesc=Tämä lasku on oletuslasku. -InvoiceDeposit=Talletuslasku -InvoiceDepositAsk=Talletus lasku -InvoiceDepositDesc=Tällainen lasku tehdään kun talletus on vastaanotettu. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma lasku InvoiceProFormaAsk=Proforma lasku InvoiceProFormaDesc=Proforma lasku on todellinen lasku, mutta sillä ei ole kirjanpidollista arvoa. InvoiceReplacement=Korvaava lasku InvoiceReplacementAsk=Laskun korvaava lasku -InvoiceReplacementDesc=Replacement invoice is used to cancel and replace completely an invoice with no payment already received.

Note: Only invoices with no payment on it can be replaced. If the invoice you replace is not yet closed, it will be automatically closed to 'abandoned'. +InvoiceReplacementDesc=Hyvityslasku käytetään peruuttamaan ja korvaamaan täysin lasku jonka maksua ei ole vielä saatu.

Huomaa: Vain lasku ilman maksua voidaan hyvittää. Jos sitä ei ole suljettu, se on automaattisesti suljettu "hylätyksi". InvoiceAvoir=Menoilmoitus InvoiceAvoirAsk=Menoilmoitus korjata laskun InvoiceAvoirDesc=Luoton merkintä on negatiivinen lasku käytetään ratkaista se, että lasku on määrä, joka on erilainen kuin määrä todella maksetaan (koska asiakas maksanut liikaa virheitä, tai ei maksanut kokonaan, koska hän palasi joitakin tuotteita esimerkiksi).

Huomautus: Alkuperäinen lasku on jo päättynyt ( "maksetaan" tai "maksetaan osittain"), jonka avulla luodaan menoilmoitus sitä. @@ -62,7 +62,7 @@ PaymentsBack=Maksut takaisin paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Poista maksu -ConfirmDeletePayment=Oletko varma, että haluat poistaa tämän maksutavan? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Tavarantoimittajat maksut ReceivedPayments=Vastaanotetut maksut @@ -115,7 +115,7 @@ BillStatus=Laskun tila StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Luonnos (on vahvistettu) BillStatusPaid=Maksetaan -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Muunnetaan edullisista BillStatusCanceled=Hylätty BillStatusValidated=Validoidut (on maksanut) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Maksanut (osittain) BillShortStatusDraft=Vedos BillShortStatusPaid=Maksetaan BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Jalostettu +BillShortStatusConverted=Maksetut BillShortStatusCanceled=Hylätty BillShortStatusValidated=Validoidut BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Näytä lasku ShowInvoice=Näytä lasku ShowInvoiceReplace=Näytä korvaa lasku ShowInvoiceAvoir=Näytä menoilmoitus -ShowInvoiceDeposit=Näytä tallettaa laskun +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Näytä maksu AlreadyPaid=Jo maksanut AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=On jo maksettu (ilman hyvityslasku ja talletukset) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Hylätyt RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -233,8 +233,8 @@ DateInvoice=Laskun päiväys DatePointOfTax=Point of tax NoInvoice=N: o lasku ClassifyBill=Luokittele lasku -SupplierBillsToPay=Unpaid supplier invoices -CustomerBillsUnpaid=Unpaid customer invoices +SupplierBillsToPay=Tavarantoimittajan maksamattomat laskut +CustomerBillsUnpaid=Asiakkaiden maksamattomat laskut NonPercuRecuperable=Ei-korvattaviksi SetConditions=Aseta maksuehdot SetMode=Aseta maksun tila @@ -270,10 +270,10 @@ RelativeDiscount=Suhteellinen edullisista GlobalDiscount=Global edullisista CreditNote=Menoilmoitus CreditNotes=Hyvityslaskuja -Deposit=Talletuslokero -Deposits=Talletukset +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Alennus menoilmoitus %s -DiscountFromDeposit=Maksut tallettaa laskun %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Tällainen luotto voidaan käyttää laskun ennen sen validointi CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Ei voi poistaa maksua koska siellä on ainak ExpectedToPay=Odotettu maksu CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Maksanut tämän maksun -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Kaikki lasku ilman jää maksaa automaattisesti suljettu tila "maksanut". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Laskun malli Crabe. Täydellinen laskun malli (Tuki alv vaihtoehto, alennukset, maksut edellytykset, logo, jne. ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill alkaen $ syymm jo olemassa, ja ei ole yhteensopiva tämän mallin järjestyksessä. Poistaa sen tai nimetä sen aktivoida tämän moduulin. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Edustaja seurantaan asiakkaan laskussa TypeContact_facture_external_BILLING=Asiakkaan lasku yhteystiedot diff --git a/htdocs/langs/fi_FI/bookmarks.lang b/htdocs/langs/fi_FI/bookmarks.lang index 5b4e2b6773e..bb44b9cb106 100644 --- a/htdocs/langs/fi_FI/bookmarks.lang +++ b/htdocs/langs/fi_FI/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Lisää tämä sivu kirjanmerkkeihin +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Lempparit Bookmarks=Kirjanmerkit +ListOfBookmarks=Luetteloosi +EditBookmarks=List/edit bookmarks NewBookmark=Uusi kirjanmerkki ShowBookmark=Näytä kirjanmerkki OpenANewWindow=Avaa uusi ikkuna @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=Uusi ikkuna BookmarkTargetReplaceWindowShort=Nykyinen ikkuna BookmarkTitle=Kirjanmerkin nimi UrlOrLink=URL -BehaviourOnClick=Käyttäytyminen klikkaa URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Luo kirjanmerkki SetHereATitleForLink=Aseta tässä otsikon kirjanmerkki UseAnExternalHttpLinkOrRelativeDolibarrLink=Käytä ulkoista http URL tai suhteellisen Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Valitse jos linkki täytyy avata uuteen ikkunaan BookmarksManagement=Kirjanmerkkien hallinta diff --git a/htdocs/langs/fi_FI/boxes.lang b/htdocs/langs/fi_FI/boxes.lang index f58d4b0a5b3..5e7e48491d7 100644 --- a/htdocs/langs/fi_FI/boxes.lang +++ b/htdocs/langs/fi_FI/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss tiedot BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Asiakkaiden tilaukset ForProposals=Ehdotukset LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/fi_FI/cashdesk.lang b/htdocs/langs/fi_FI/cashdesk.lang index b65402675dd..518e606ab96 100644 --- a/htdocs/langs/fi_FI/cashdesk.lang +++ b/htdocs/langs/fi_FI/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Ostoskori NewSell=Uusi myydä AddThisArticle=Lisää tämä artikkeli RestartSelling=Mene takaisin myydä -SellFinished=Sale complete +SellFinished=Myynti valmis PrintTicket=Tulosta lippu NoProductFound=Ei artikkeli löydetty ProductFound=Tuote löytyy @@ -25,10 +25,10 @@ Difference=Ero TotalTicket=Yhteensä lippu NoVAT=Ei arvonlisävero tämän myynnin Change=Ylimääräinen sai -BankToPay=Account for payment +BankToPay=Maksutili ShowCompany=Näytä yrityksen ShowStock=Näytä varasto DeleteArticle=Poista napsauttamalla tämän artikkelin -FilterRefOrLabelOrBC=Search (Ref/Label) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock. -DolibarrReceiptPrinter=Dolibarr Receipt Printer +FilterRefOrLabelOrBC=Etsi (Viite/Otsikko) +UserNeedPermissionToEditStockToUsePos=Haluat vähentää varastosaldoa laskun luonnin yhteydessä. POS käyttäjä tarvitsee oikeudet muokata varastoa. +DolibarrReceiptPrinter=Dolibarr kuittitulostin diff --git a/htdocs/langs/fi_FI/categories.lang b/htdocs/langs/fi_FI/categories.lang index 882d3cb76bd..f8f9fb10ab0 100644 --- a/htdocs/langs/fi_FI/categories.lang +++ b/htdocs/langs/fi_FI/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=Sisällä @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Tämä luokka on jo olemassa samassa paikassa ContentsVisibleByAllShort=Sisällys näkyviin kaikki ContentsNotVisibleByAllShort=Sisältö ei näy kaikissa DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=Täydentävät ominaisuudet CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/fi_FI/commercial.lang b/htdocs/langs/fi_FI/commercial.lang index 8deb7d596fd..b99d073fb90 100644 --- a/htdocs/langs/fi_FI/commercial.lang +++ b/htdocs/langs/fi_FI/commercial.lang @@ -5,39 +5,40 @@ Customer=Asiakas Customers=Asiakkaat Prospect=Mahdollisuus Prospects=Mahdollisuudet -DeleteAction=Delete an event -NewAction=New event -AddAction=Create event -AddAnAction=Create an event -AddActionRendezVous=Create a Rendez-vous event -ConfirmDeleteAction=Are you sure you want to delete this event? +DeleteAction=Poista tapahtuma +NewAction=Uusi tapahtuma +AddAction=Luo tapahtuma +AddAnAction=Luo tapahtuma +AddActionRendezVous=Luo kohtaamistapahtuma +ConfirmDeleteAction=Haluatko varmasti poistaa tämän tapahtuman CardAction=Tapahtumakortti -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Liittyvä yritys +ActionOnContact=Liittyvä yhteystieto TaskRDVWith=Tapaaminen %s kanssa ShowTask=Näytä tehtävä ShowAction=Näytä toiminta ActionsReport=Tapahtumaraportti -ThirdPartiesOfSaleRepresentative=Sidosryhmät myyntiedustajalla +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Myyntiedustaja SalesRepresentatives=Myyntiedustajat SalesRepresentativeFollowUp=Myyntiedustaja (follow-up) SalesRepresentativeSignature=Myyntiedustaja (allekirjoitus) -NoSalesRepresentativeAffected=Ei kohdistettua myyntiedustajaa +NoSalesRepresentativeAffected=Myyntiedustajaa ei ole kohdistettu ShowCustomer=Näytä asiakas ShowProspect=Näytä näköpiirissä ListOfProspects=Luettelo näkymät ListOfCustomers=Luettelo asiakkaille -LastDoneTasks=Latest %s completed actions -LastActionsToDo=Oldest %s not completed actions +LastDoneTasks=Viimeisimmät %s valmistuneet toiminnat +LastActionsToDo=Vanhimmat %s valmistumattomat toiminnat DoneAndToDoActions=Tehty ja tehdä tehtäviä DoneActions=Tehty toimia ToDoActions=Puutteellinen toimet -SendPropalRef=Submission of commercial proposal %s -SendOrderRef=Submission of order %s +SendPropalRef=Tarjouksen %s lähettäminen +SendOrderRef=Tilauksen %s lähettäminen StatusNotApplicable=Ei sovelleta -StatusActionToDo=Voit tehdä -StatusActionDone=Tehty +StatusActionToDo=Tehtävät +StatusActionDone=Valmis StatusActionInProcess=Työnalla TasksHistoryForThisContact=Kontaktin tapahtumat LastProspectDoNotContact=Älä ota yhteyttä @@ -49,10 +50,10 @@ ActionAffectedTo=Toiminta vaikuttaa ActionDoneBy=Toiminta tapahtuu ActionAC_TEL=Puhelinsoitto ActionAC_FAX=Lähetä faksi -ActionAC_PROP=Lähetä ehdotus +ActionAC_PROP=Lähetä tarjous sähköpostilla ActionAC_EMAIL=Lähetä sähköpostiviesti ActionAC_RDV=Kokoukset -ActionAC_INT=Intervention on site +ActionAC_INT=Väliintulo paikanpäällä ActionAC_FAC=Lähetä laskutustietosi ActionAC_REL=Lähetä laskutustilanteesi (muistutus) ActionAC_CLO=Sulje @@ -67,5 +68,5 @@ ActionAC_MANUAL=Manuaalisesti lisätyt tapahtumat ActionAC_AUTO=Automaalliset lisätyt tapahtumat Stats=Myyntitilastot StatusProsp=Mahdollisuuden tila -DraftPropals=Kaupallisten ehdotusten luonnos -NoLimit=No limit +DraftPropals=Tarjousluonnos +NoLimit=Rajoittamaton diff --git a/htdocs/langs/fi_FI/companies.lang b/htdocs/langs/fi_FI/companies.lang index 9981abce2eb..abf1bd484d7 100644 --- a/htdocs/langs/fi_FI/companies.lang +++ b/htdocs/langs/fi_FI/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Yrityksen nimi %s on jo olemassa. Valitse toinen. ErrorSetACountryFirst=Aseta ensin maa SelectThirdParty=Valitse kolmas osapuoli -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Haluatko varmasti poistaa tämän yrityksen ja kaikki siitä johdetut tiedot? DeleteContact=Poista yhteystieto -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Haluatko varmasti poistaa tämän yhteystiedon ja kaikki siitä johdetut tiedot? MenuNewThirdParty=Uusi kolmas osapuoli MenuNewCustomer=Uusi asiakas MenuNewProspect=Uusi mahdollisuus @@ -12,9 +12,9 @@ MenuNewSupplier=Uusi toimittaja MenuNewPrivateIndividual=Uusi yksityishenkilö NewCompany=Uusi yhtiö (mahdollisuus, asiakas, toimittaja) NewThirdParty=Uusi kolmas osapuoli (mahdollisuus, asiakas, toimittaja) -CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary -CreateThirdPartyAndContact=Create a third party + a child contact +CreateDolibarrThirdPartySupplier=Luo sidosryhmä (tavarantoimittaja) +CreateThirdPartyOnly=Luo sidosryhmä +CreateThirdPartyAndContact=Luo sidosryhmä + ala yhteystieto ProspectionArea=Uusien mahdollisuuksien alue IdThirdParty=Kolmannen osapuolen tunnus IdCompany=Yritystunnus @@ -24,8 +24,8 @@ ThirdPartyContacts=Kolmannen osapuolen yhteystiedot ThirdPartyContact=Kolmannen osapuolen yhteystiedot/osoitteet Company=Yritys CompanyName=Yrityksen nimi -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Lisänimi (tuotenimi, brändi, ...) +AliasNameShort=Lisänimi Companies=Yritykset CountryIsInEEC=Maa kuuluu EU:hun ThirdPartyName=Kolmannen osapuolen nimi @@ -38,9 +38,8 @@ ThirdPartyCustomersStats=Asiakkaat ThirdPartyCustomersWithIdProf12=Asiakkaat, joilla on %s tai %s ThirdPartySuppliers=Tavarantoimittajat ThirdPartyType=Kolmannen osapuolen tyyppi -Company/Fundation=Yritys / säätiö Individual=Yksityishenkilö -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. +ToCreateContactWithSameName=Luo automaattisesti yhteystiedot/osoitteen sidosryhmän tiedoilla sidosryhmän alaisuuteen. Yleensä, vaikka sidosryhmä olisi henkilö, pelkkä sidosryhmän luominen riittää. ParentCompany=Emoyhtiö Subsidiaries=Tytäryhtiöt ReportByCustomers=Raportti asiakkaiden mukaan @@ -49,11 +48,11 @@ CivilityCode=Siviilisääty RegisteredOffice=Kotipaikka Lastname=Sukunimi Firstname=Etunimi -PostOrFunction=Job position +PostOrFunction=Asema UserTitle=Titteli Address=Osoite State=Valtio / Lääni -StateShort=State +StateShort=Valtio Region=Alue Country=Maa CountryCode=Maakoodi @@ -61,12 +60,12 @@ CountryId=Maatunnus Phone=Puhelin PhoneShort=Puhelin Skype=Skype -Call=Call +Call=Soitto Chat=Chat PhonePro=Työpuhelin PhonePerso=Henkilökohtainen puhelin PhoneMobile=Matkapuhelin -No_Email=Refuse mass e-mailings +No_Email=Kiellä massa sähköpostit Fax=Faksi Zip=Postinumero Town=Postitoimipaikka @@ -75,24 +74,24 @@ Poste= Asema DefaultLang=Oletuskieli VATIsUsed=Arvonlisävero käytössä VATIsNotUsed=Arvonlisävero ei ole käytössä -CopyAddressFromSoc=Fill address with third party address -ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects -PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +CopyAddressFromSoc=Täytä osoite käyttäen sidosryhmän osoitetta +ThirdpartyNotCustomerNotSupplierSoNoRef=Sidosryhmä ei ole asiakas eikä tavarantoimittaja, refering objects ei ole saatavilla +PaymentBankAccount=Maksunt pankkitili +OverAllProposals=Ehdotukset +OverAllOrders=Tilaukset +OverAllInvoices=Laskut +OverAllSupplierProposals=Price requests ##### Local Taxes ##### -LocalTax1IsUsed=Use second tax +LocalTax1IsUsed=Käytä toista veroa LocalTax1IsUsedES= RE käytössä LocalTax1IsNotUsedES= RE ei käytössä -LocalTax2IsUsed=Use third tax +LocalTax2IsUsed=Käytä kolmatta veroa LocalTax2IsUsedES= IRPF käytössä LocalTax2IsNotUsedES= IRPF ei käytössä LocalTax1ES=RE LocalTax2ES=IRPF -TypeLocaltax1ES=RE Type -TypeLocaltax2ES=IRPF Type +TypeLocaltax1ES=RE tyyppi +TypeLocaltax2ES=IRPF Tyyppi WrongCustomerCode=Asiakastunnus vihreellinen WrongSupplierCode=Toimittajatunnus virheellinen CustomerCodeModel=Asiakastunnuksen malli @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Professori Id 1 (OGRN) ProfId2RU=Professori Id 2 (INN) ProfId3RU=Professori Id 3 (KPP) @@ -259,25 +264,25 @@ CustomerRelativeDiscountShort=Suhteellinen alennus CustomerAbsoluteDiscountShort=Absoluuttinen alennus CompanyHasRelativeDiscount=Tällä asiakkaalla on oletusalennus %s%% CompanyHasNoRelativeDiscount=Tällä asiakkaalla ei ole suhteellista alennusta oletuksena -CompanyHasAbsoluteDiscount=Tällä asiakkaalla on saatavia alennuksia tai talletuksia %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Tällä asiakkaalla on vielä luottomerkintöjä %s %s CompanyHasNoAbsoluteDiscount=Asiakkaalla ei ole alennuksia saatavilla CustomerAbsoluteDiscountAllUsers=Absoluuttinen alennuksia (myöntää kaikille käyttäjille) CustomerAbsoluteDiscountMy=Absoluuttinen alennuksia (myöntää itse) DiscountNone=Ei mitään Supplier=Toimittaja -AddContact=Create contact -AddContactAddress=Create contact/address +AddContact=Luo yhteystiedot +AddContactAddress=Luo yhteystiedot/osoite EditContact=Muokkaa yhteystiedot / osoite -EditContactAddress=Edit contact/address +EditContactAddress=Muokkaa yhteystietoa/osoite Contact=Yhteydenotto -ContactId=Contact id +ContactId=Yhteystiedon tunnus ContactsAddresses=Yhteystiedot / Osoitteet -FromContactName=Name: -NoContactDefinedForThirdParty=No contact defined for this third party +FromContactName=Nimi: +NoContactDefinedForThirdParty=Tälle sidosryhmälle ei ole määritetty yhteystietoja NoContactDefined=Ei yhteystietoja määritelty tämän kolmannen osapuolen DefaultContact=Oletus kontakti / osoite -AddThirdParty=Create third party +AddThirdParty=Luo sidosryhmä DeleteACompany=Poista yrityksen PersonalInformations=Henkilötiedot AccountancyCode=Accounting account @@ -294,24 +299,24 @@ ThisIsModuleRules=Tämä on säännöt tämän moduulin ProspectToContact=Esitetilaus yhteyttä CompanyDeleted=Yritys " %s" poistettu tietokannasta. ListOfContacts=Luettelo yhteystiedot -ListOfContactsAddresses=List of contacts/adresses +ListOfContactsAddresses=Yhteystietojen/osoitteiden luettelo ListOfThirdParties=Luettelo kolmansien osapuolten -ShowCompany=Show third party +ShowCompany=Näytä sidosryhmä ShowContact=Näytä yhteystiedot ContactsAllShort=Kaikki (N: o suodatin) ContactType=Yhteystiedot tyyppi ContactForOrders=Tilaukset yhteystiedot -ContactForOrdersOrShipments=Order's or shipment's contact +ContactForOrdersOrShipments=Tilauksen tai lähetyksen yhteystiedot ContactForProposals=Ehdotukset yhteystiedot ContactForContracts=Sopimukset yhteystiedot ContactForInvoices=Laskut yhteystiedot NoContactForAnyOrder=Tämä yhteyshenkilö ei ole yhteyttä mihinkään jotta -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment +NoContactForAnyOrderOrShipments=Tämä yhteystieto ei ole yhteystietona missään tilauksessa tai toimituksessa NoContactForAnyProposal=Tämä yhteys ei ole yhteyttä mihinkään kaupalliseen ehdotus NoContactForAnyContract=Tämä yhteys ei ole yhteyttä mihinkään sopimukseen NoContactForAnyInvoice=Tämä yhteys ei ole yhteyttä mihinkään lasku NewContact=Uusi yhteystieto -NewContactAddress=New contact/address +NewContactAddress=Uusi yhteystieto/osoite MyContacts=Omat yhteystiedot Capital=Pääkaupunki CapitalOf=Capital of %s @@ -324,7 +329,7 @@ VATIntraCheckableOnEUSite=Tarkista Intracomunnautary alv Euroopan komission Inte VATIntraManualCheck=You can also check manually from european web site www-sivuston %s ErrorVATCheckMS_UNAVAILABLE=Tarkista ole mahdollista. Tarkista palvelu ei toimiteta jäsenvaltion ( %s). NorProspectNorCustomer=Eikä näköpiirissä, eikä asiakkaan -JuridicalStatus=Legal form +JuridicalStatus=Yhtiömuoto Staff=Henkilökunta ProspectLevelShort=Mahdollinen ProspectLevel=Esitetilaus mahdollisten @@ -351,12 +356,12 @@ TE_PRIVATE=Yksityishenkilö TE_OTHER=Muu StatusProspect-1=Älä yhteyttä StatusProspect0=Älä koskaan yhteyttä -StatusProspect1=To be contacted +StatusProspect1=Yhteydenotto tehdään StatusProspect2=Yhteystiedot prosessi StatusProspect3=Yhteystiedot tehnyt ChangeDoNotContact=Muuta aseman Älä yhteyttä " ChangeNeverContacted=Muuta asema "ei koskaan ottanut yhteyttä" -ChangeToContact=Change status to 'To be contacted' +ChangeToContact=Muuta tilaksi 'Yhteydenotto tehdään' ChangeContactInProcess=Muuta status' Yhteystiedot prosessi " ChangeContactDone=Muuta status' Yhteystiedot tehnyt " ProspectsByStatus=Näkymät aseman @@ -365,47 +370,47 @@ ExportCardToFormat=Vienti kortin muodossa ContactNotLinkedToCompany=Yhteystiedot eivät liity minkään kolmannen osapuolen DolibarrLogin=Dolibarr sisäänkirjoittautumissivuksesi NoDolibarrAccess=N: o Dolibarr pääsy -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Sidosryhmät (Yritykset / säätiöt / ihmiset) ja ominaisuudet ExportDataset_company_2=Yhteystiedot ja ominaisuudet -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties -ImportDataset_company_2=Contacts/Addresses (of thirdparties or not) and attributes +ImportDataset_company_1=Sidosryhmät (Yritykset / säätiöt / ihmiset) ja ominaisuudet +ImportDataset_company_2=Yhteystiedot/Osoitteet (sidosryhmät tai ei) ja ominaisuudet ImportDataset_company_3=Pankkitiedot -ImportDataset_company_4=Third parties/Sales representatives (Affect sales representatives users to companies) +ImportDataset_company_4=Sidosryhmät/Myyntiedustajat (Vaikuttaa myyntiedustajien käyttäjiin yrityksissä) PriceLevel=Hintataso DeliveryAddress=Toimitusosoite AddAddress=Lisää osoite SupplierCategory=Toimittajan tuoteryhmä -JuridicalStatus200=Independent +JuridicalStatus200=Itsenäinen DeleteFile=Poista tiedosto ConfirmDeleteFile=Oletko varma, että haluat poistaa tämän tiedoston? -AllocateCommercial=Assigned to sales representative +AllocateCommercial=Liitä myyntiedustajaan Organization=Organisaatio FiscalYearInformation=Tiedot tilikauden FiscalMonthStart=Lähtölista kuukauden kuluessa tilikauden -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him. -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party +YouMustAssignUserMailFirst=Tälle käyttäjälle täytyy luoda sähköpostiosoite jotta sähköpostimuistutukset voidaan ottaa käyttöön +YouMustCreateContactFirst=Voidaksesi lisätä sähköposti muistutukset, täytyy ensin täyttää yhteystiedot sidosryhmän oikealla sähköpostiosoitteella ListSuppliersShort=Luettelo toimittajat ListProspectsShort=Luettelo näkymät ListCustomersShort=Luettelo asiakkaiden -ThirdPartiesArea=Third parties and contact area -LastModifiedThirdParties=Latest %s modified third parties +ThirdPartiesArea=Sidosryhmät ja yhteystiedot +LastModifiedThirdParties=Viimeisimmät %s muokattua sidosryhmää UniqueThirdParties=Yhteensä ainutlaatuinen kolmannen osapuolen -InActivity=Avattu +InActivity=Avoinna ActivityCeased=Kiinni -ThirdPartyIsClosed=Third party is closed -ProductsIntoElements=List of products/services into %s -CurrentOutstandingBill=Current outstanding bill -OutstandingBill=Max. for outstanding bill -OutstandingBillReached=Max. for outstanding bill reached +ThirdPartyIsClosed=Sidosryhmä on suljettu +ProductsIntoElements=Tuotteiden/palveluiden luettelo %s +CurrentOutstandingBill=Avoin lasku +OutstandingBill=Avointen laskujen enimmäismäärä +OutstandingBillReached=Avointen laskujen enimmäismäärä saavutettu MonkeyNumRefModelDesc=Paluu numero on muodossa %syymm-nnnn asiakkaan koodi ja %syymm-nnnn luovuttajalle koodi jos VV on vuosi, mm kuukausi ja nnnn on sarja ilman taukoa eikä palata 0. LeopardNumRefModelDesc=Asiakas / toimittaja-koodi on maksuton. Tämä koodi voidaan muuttaa milloin tahansa. -ManagingDirectors=Manager(s) name (CEO, director, president...) -MergeOriginThirdparty=Duplicate third party (third party you want to delete) -MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. -ThirdpartiesMergeSuccess=Thirdparties have been merged -SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative -ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. -NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code +ManagingDirectors=Johtajien nimet (TJ, johtaja, päällikkö...) +MergeOriginThirdparty=Monista sidosryhmä (sidosryhmä jonka haluat poistaa) +MergeThirdparties=Yhdistä sidosryhmät +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. +ThirdpartiesMergeSuccess=Sidosryhmät on yhdistetty +SaleRepresentativeLogin=Myyntiedustajan kirjautuminen +SaleRepresentativeFirstname=Myyntiedustajan etunimi +SaleRepresentativeLastname=Myyntiedustajan sukunimi +ErrorThirdpartiesMerge=Sidosryhmän poistossa tapahtui virhe. Tarkista virhe lokitiedostosta. Muutoksia ei tehty +NewCustomerSupplierCodeProposed=Uusi asiakkaan tai tavarantoimittajan koodi näyttäisi olevan duplikaatti diff --git a/htdocs/langs/fi_FI/contracts.lang b/htdocs/langs/fi_FI/contracts.lang index 646d1a5c1cb..ba98992da11 100644 --- a/htdocs/langs/fi_FI/contracts.lang +++ b/htdocs/langs/fi_FI/contracts.lang @@ -29,10 +29,10 @@ MenuExpiredServices=Lakkaa palvelut MenuClosedServices=Suljettu palvelut NewContract=Uusi sopimus NewContractSubscription=New contract/subscription -AddContract=Create contract +AddContract=Luo sopimus DeleteAContract=Poista sopimuksen CloseAContract=Sulje sopimuksen -ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? +ConfirmDeleteAContract=Haluatko varmasti poistaa tämän sopimuksen ja sillä olevat palvelut? ConfirmValidateContract=Are you sure you want to validate this contract under name %s? ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? ConfirmCloseService=Are you sure you want to close this service with date %s? @@ -50,7 +50,7 @@ ListOfClosedServices=Luettelo suljettu palvelut ListOfRunningServices=Luettelo käynnissä olevat palvelut NotActivatedServices=Ei aktivoitu palvelut (muun muassa validoitava sopimukset) BoardNotActivatedServices=Palvelut aktivoida kesken validoitava sopimukset -LastContracts=Latest %s contracts +LastContracts=Viimeisimmät %s sopimukset LastModifiedServices=Latest %s modified services ContractStartDate=Aloituspäivämäärä ContractEndDate=Lopetuspäivä @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Myyntiedustajaasi allekirjoittamalla sopimuksen diff --git a/htdocs/langs/fi_FI/deliveries.lang b/htdocs/langs/fi_FI/deliveries.lang index 819e209851c..c4fd257b2db 100644 --- a/htdocs/langs/fi_FI/deliveries.lang +++ b/htdocs/langs/fi_FI/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Toimitus -DeliveryRef=Ref Delivery -DeliveryCard=Receipt card +DeliveryRef=Toimitusviite +DeliveryCard=Kuittikortti DeliveryOrder=Toimitusvahvistus -DeliveryDate=Toimituspäivää -CreateDeliveryOrder=Generate delivery receipt -DeliveryStateSaved=Delivery state saved -SetDeliveryDate=Aseta meriliikenneyhtiön päivämäärä +DeliveryDate=Toimituspäivä +CreateDeliveryOrder=Luo toimituskuitti +DeliveryStateSaved=Toimituksen tila tallennettu +SetDeliveryDate=Aseta toimitus päivämäärä ValidateDeliveryReceipt=Validate toimituksen vastaanottamisen -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +ValidateDeliveryReceiptConfirm=Haluatko varmasti vahvistaa tämän toimituskuitin? DeleteDeliveryReceipt=Poista toimituskuitti -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeleteDeliveryReceiptConfirm=Haluatko varmasti poistaa toimituskuitin %s? DeliveryMethod=Toimitustapa TrackingNumber=Seurantanumero DeliveryNotValidated=Toimitus ei validoitu @@ -24,7 +24,7 @@ GoodStatusDeclaration=Ovat saaneet tavarat edellä hyvässä kunnossa, Deliverer=Deliverer: Sender=Sender Recipient=Edunsaajavaltiot -ErrorStockIsNotEnough=There's not enough stock -Shippable=Shippable -NonShippable=Not Shippable -ShowReceiving=Show delivery receipt +ErrorStockIsNotEnough=Varaston saldo ei riitä +Shippable=Toimitettavissa +NonShippable=Ei toimitettavissa +ShowReceiving=Näytä toimituskuitti diff --git a/htdocs/langs/fi_FI/dict.lang b/htdocs/langs/fi_FI/dict.lang index 364e1c96266..f6856ffd7ba 100644 --- a/htdocs/langs/fi_FI/dict.lang +++ b/htdocs/langs/fi_FI/dict.lang @@ -6,7 +6,7 @@ CountryES=Espanja CountryDE=Saksa CountryCH=Sveitsi CountryGB=Iso-Britannia -CountryUK=United Kingdom +CountryUK=Yhdistynyt kuningaskunta (UK) CountryIE=Irlanti CountryCN=Kiina CountryTN=Tunisia @@ -138,7 +138,7 @@ CountryLS=Lesotho CountryLR=Liberia CountryLY=Libyan CountryLI=Liechtenstein -CountryLT=Lithuania +CountryLT=Liettua CountryLU=Luxemburg CountryMO=Macao CountryMK=Makedonia, entinen Jugoslavian tehty @@ -252,7 +252,7 @@ CivilityMME=Mrs CivilityMR=Mr. CivilityMLE=Ms CivilityMTRE=Mestari -CivilityDR=Doctor +CivilityDR=Tohtori ##### Currencies ##### Currencyeuros=Euroa CurrencyAUD=Dollar AU @@ -289,10 +289,10 @@ CurrencyXOF=CFA-frangia BCEAO CurrencySingXOF=CFA: n frangin BCEAO CurrencyXPF=YKP Francs CurrencySingXPF=CFP-frangi -CurrencyCentSingEUR=cent +CurrencyCentSingEUR=sentti CurrencyCentINR=paisa CurrencyCentSingINR=paise -CurrencyThousandthSingTND=thousandth +CurrencyThousandthSingTND=tuhat #### Input reasons ##### DemandReasonTypeSRC_INTE=Internet DemandReasonTypeSRC_CAMP_MAIL=Tietoa kampanjasta @@ -301,27 +301,27 @@ DemandReasonTypeSRC_CAMP_PHO=Puhelin kampanja DemandReasonTypeSRC_CAMP_FAX=Fax kampanja DemandReasonTypeSRC_COMM=Kaupalliset yhteystiedot DemandReasonTypeSRC_SHOP=Kauppa Yhteystiedot -DemandReasonTypeSRC_WOM=Word of mouth -DemandReasonTypeSRC_PARTNER=Partner +DemandReasonTypeSRC_WOM=Suusanallisesti +DemandReasonTypeSRC_PARTNER=Kumppani DemandReasonTypeSRC_EMPLOYEE=Työntekijä -DemandReasonTypeSRC_SPONSORING=Sponsorship +DemandReasonTypeSRC_SPONSORING=Sponsorointisuhde #### Paper formats #### -PaperFormatEU4A0=Format 4A0 -PaperFormatEU2A0=Format 2A0 -PaperFormatEUA0=Format A0 -PaperFormatEUA1=Format A1 -PaperFormatEUA2=Format A2 -PaperFormatEUA3=Format A3 -PaperFormatEUA4=Format A4 -PaperFormatEUA5=Format A5 -PaperFormatEUA6=Format A6 -PaperFormatUSLETTER=Format Letter US -PaperFormatUSLEGAL=Format Legal US -PaperFormatUSEXECUTIVE=Format Executive US -PaperFormatUSLEDGER=Format Ledger/Tabloid -PaperFormatCAP1=Format P1 Canada -PaperFormatCAP2=Format P2 Canada -PaperFormatCAP3=Format P3 Canada -PaperFormatCAP4=Format P4 Canada -PaperFormatCAP5=Format P5 Canada -PaperFormatCAP6=Format P6 Canada +PaperFormatEU4A0=Muoto 4A0 +PaperFormatEU2A0=Muoto 2A0 +PaperFormatEUA0=Muoto A0 +PaperFormatEUA1=Muoto A1 +PaperFormatEUA2=Muoto A2 +PaperFormatEUA3=Muoto A3 +PaperFormatEUA4=Muoto A4 +PaperFormatEUA5=Muoto A5 +PaperFormatEUA6=Muoto A6 +PaperFormatUSLETTER=Muoto Kirje US +PaperFormatUSLEGAL=Muoto Legal US +PaperFormatUSEXECUTIVE=Muoto Executive US +PaperFormatUSLEDGER=Muoto Ledger/Tabloid +PaperFormatCAP1=Muoto P1 Kanada +PaperFormatCAP2=Muoto P2 Kanada +PaperFormatCAP3=Muoto P3 Kanada +PaperFormatCAP4=Muoto P4 Kanada +PaperFormatCAP5=Muoto P5 Kanada +PaperFormatCAP6=Muoto P6 Kanada diff --git a/htdocs/langs/fi_FI/ecm.lang b/htdocs/langs/fi_FI/ecm.lang index 9a763c24203..67922334484 100644 --- a/htdocs/langs/fi_FI/ecm.lang +++ b/htdocs/langs/fi_FI/ecm.lang @@ -1,44 +1,44 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=Nb asiakirjojen hakemisto -ECMSection=Directory -ECMSectionManual=Manuaalinen hakemistoon -ECMSectionAuto=Automaattinen hakemistoon -ECMSectionsManual=Manuaalinen hakemistoja -ECMSectionsAuto=Automaattinen hakemistoja +ECMNbOfDocs=Asiakirjojen määrä hakemistossa +ECMSection=Hakemisto +ECMSectionManual=Manuaalinen hakemisto +ECMSectionAuto=Automaattinen hakemisto +ECMSectionsManual=Manuaalinen hakemistopuu +ECMSectionsAuto=Automaattinen hakemistopuu ECMSections=Hakemistot ECMRoot=Juuri ECMNewSection=Uusi hakemisto -ECMAddSection=Lisää käsikirja hakemistoon +ECMAddSection=Lisää hakemisto ECMCreationDate=Luontipäivämäärä -ECMNbOfFilesInDir=Määrä tiedostoja hakemistossa -ECMNbOfSubDir=Useita osa-hakemistoja -ECMNbOfFilesInSubDir=Number of files in sub-directories -ECMCreationUser=Creator -ECMArea=EDM area -ECMAreaDesc=The EDM (Electronic Document Management) area allows you to save, share and search quickly all kind of documents in Dolibarr. -ECMAreaDesc2=* Automaattinen hakemistoja täyttyvät automaattisesti kun lisäät dokumentteja kortin osa.
* Manuaalinen hakemistojen avulla voidaan tallentaa asiakirjoja, joita ei ole sidottu tiettyyn osa. -ECMSectionWasRemoved=Hakemiston %s on poistettu. -ECMSearchByKeywords=Etsi avainsanoja -ECMSearchByEntity=Etsi objekti -ECMSectionOfDocuments=Hakemistot asiakirjoja +ECMNbOfFilesInDir=Tiedostojen määrä hakemistossa +ECMNbOfSubDir=Alihakemistojen määrä +ECMNbOfFilesInSubDir=Tiedostojen määrä alihakemistoissa +ECMCreationUser=Luoja +ECMArea=EDM alue +ECMAreaDesc=EDM (Sähköinen asiakirjanhallinta) alueella voi tallentaa, jakaa ja etsiä kaiken tyyppisiä dokumenttejä Dolibarrista. +ECMAreaDesc2=* Automaattiset hakemistot täyttyvät automaattisesti kun lisäät dokumentteja kortille.
* Manuaalisten hakemistojen avulla voidaan tallentaa asiakirjoja, joita ei ole sidottu tiettyyn osaan. +ECMSectionWasRemoved=Hakemisto %s on poistettu. +ECMSearchByKeywords=Etsi avainsanoilla +ECMSearchByEntity=Etsi objektilla +ECMSectionOfDocuments=Asiakirjahakemistot ECMTypeAuto=Automaattinen -ECMDocsBySocialContributions=Documents linked to social or fiscal taxes -ECMDocsByThirdParties=Asiakirjat liittyy kolmansien osapuolten -ECMDocsByProposals=Asiakirjat liittyvät ehdotukset -ECMDocsByOrders=Asiakirjat liittyvät asiakkaiden tilauksia -ECMDocsByContracts=Asiakirjat liittyvät sopimukset -ECMDocsByInvoices=Liittyvien asiakirjojen asiakkaille laskuja -ECMDocsByProducts=Asiakirjat liittyvät tuotteet -ECMDocsByProjects=Documents linked to projects -ECMDocsByUsers=Documents linked to users -ECMDocsByInterventions=Documents linked to interventions -ECMDocsByExpenseReports=Documents linked to expense reports -ECMNoDirectoryYet=Ei hakemiston luonut +ECMDocsBySocialContributions=Sosiaalisiin tai fiskaalisiin veroihin liitetyt asiakirjat +ECMDocsByThirdParties=Sidosryhmiin liitetyt asiakirjat +ECMDocsByProposals=Ehdotuksiin liittyvät asiakirjat +ECMDocsByOrders=Asiakkaiden tilauksiin liittyvät asiakirjat +ECMDocsByContracts=Sopimuksiin liittyvät asiakirjat +ECMDocsByInvoices=Asiakkaiden laskuihin liittyvät asiakirjat +ECMDocsByProducts=Tuotteisiin liittyvät asiakirjat +ECMDocsByProjects=Projekteihin liittyvät asiakirjat +ECMDocsByUsers=Käyttäjiin liittyvät asiakirjat +ECMDocsByInterventions=Väliintuloon liittyvät asiakirjat +ECMDocsByExpenseReports=Kuluraportteihin liittyvät asiakirjat +ECMNoDirectoryYet=Hakemistoa ei luotu ShowECMSection=Näytä hakemisto -DeleteSection=Poista hakemistosta -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? -ECMDirectoryForFiles=Suhteellinen hakemiston tiedostoja -CannotRemoveDirectoryContainsFiles=Poistetut ole mahdollista, koska se sisältää joitakin tiedostoja +DeleteSection=Poista hakemisto +ConfirmDeleteSection=Voitko vahvistaa hakemiston %s poiston? +ECMDirectoryForFiles=Tiedostojen suhteellinen hakemisto +CannotRemoveDirectoryContainsFiles=Poisto ei ole mahdollista, koska se sisältää tiedostoja ECMFileManager=Tiedostonhallinta -ECMSelectASection=Valitse hakemiston vasemmassa puu ... -DirNotSynchronizedSyncFirst=This directory seems to be created or modified outside ECM module. You must click on "Refresh" button first to synchronize disk and database to get content of this directory. +ECMSelectASection=Valitse hakemisto vasemmasta puusta ... +DirNotSynchronizedSyncFirst=Tämä hakemisto näyttää olevan luotu ECM modulin ulkopuolella. Paina "Refresh" ensin, jotta levy ja tietokanta synkronoituvat ja tähän hakemistoon tulee sisältöä. diff --git a/htdocs/langs/fi_FI/exports.lang b/htdocs/langs/fi_FI/exports.lang index c1432eb6385..ec57dece29f 100644 --- a/htdocs/langs/fi_FI/exports.lang +++ b/htdocs/langs/fi_FI/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/fi_FI/externalsite.lang b/htdocs/langs/fi_FI/externalsite.lang index 565918db18f..603e504cabe 100644 --- a/htdocs/langs/fi_FI/externalsite.lang +++ b/htdocs/langs/fi_FI/externalsite.lang @@ -2,4 +2,4 @@ ExternalSiteSetup=Setup linkki ulkoiseen sivustoon ExternalSiteURL=Ulkoisen sivuston osoite (URL) ExternalSiteModuleNotComplete=Ulkoisen sivuston Moduuli ei ole oikein konfiguroitu. -ExampleMyMenuEntry=My menu entry +ExampleMyMenuEntry=Omassa valikossa diff --git a/htdocs/langs/fi_FI/ftp.lang b/htdocs/langs/fi_FI/ftp.lang index f674447cae2..ea3b84ad187 100644 --- a/htdocs/langs/fi_FI/ftp.lang +++ b/htdocs/langs/fi_FI/ftp.lang @@ -9,6 +9,6 @@ FailedToConnectToFTPServer=Yhteyden muodostaminen epäonnistui FTP-palvelimen (p FailedToConnectToFTPServerWithCredentials=Epäonnistui kirjautua FTP-palvelimeen on määritelty / salasana FTPFailedToRemoveFile=Ole poistanut tiedoston %s. FTPFailedToRemoveDir=Ole poistanut hakemistoon %s (Tarkista oikeudet ja että hakemisto on tyhjä). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s +FTPPassiveMode=Passiivisena +ChooseAFTPEntryIntoMenu=Valitse FTP osoite valikosta +FailedToGetFile=Tiedostojen %s lataus epäonnistui diff --git a/htdocs/langs/fi_FI/help.lang b/htdocs/langs/fi_FI/help.lang index 85035507d08..8f0e787f74b 100644 --- a/htdocs/langs/fi_FI/help.lang +++ b/htdocs/langs/fi_FI/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Tuen lähde TypeSupportCommunauty=Yhteisössä (vapaa) TypeSupportCommercial=Kaupalliset TypeOfHelp=Tyyppi -NeedHelpCenter=Need help or support? +NeedHelpCenter=Tarvitsetko apua tai tukea? Efficiency=Tehokkuus TypeHelpOnly=Ohje vain TypeHelpDev=Ohje + kehittämisen @@ -22,5 +22,5 @@ ToGetHelpGoOnSparkAngels2=Joskus ei ole yhtiön käytettävissä tällä hetkell BackToHelpCenter=Muussa tapauksessa, klikkaa tästä ja mennä takaisin ohjekeskukseen kotisivu. LinkToGoldMember=Voit soittaa yksi valmentaja valittua on Dolibarr for your language ( %s) napsauttamalla hänen Widget (status ja enimmäishinta päivittyvät automaattisesti): PossibleLanguages=Tuetut kielet -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation -SeeOfficalSupport=For official Dolibarr support in your language:
%s +SubscribeToFoundation=Auta Dolibarr projektia, tilaa +SeeOfficalSupport=Virallinen Dolibarr tuki omalla kielellä:
%s diff --git a/htdocs/langs/fi_FI/holiday.lang b/htdocs/langs/fi_FI/holiday.lang index 0532515e60c..0c3ab97a166 100644 --- a/htdocs/langs/fi_FI/holiday.lang +++ b/htdocs/langs/fi_FI/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Peruttu RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Kuvaus SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/fi_FI/hrm.lang b/htdocs/langs/fi_FI/hrm.lang index c115f1f6291..7dd7e1b1a31 100644 --- a/htdocs/langs/fi_FI/hrm.lang +++ b/htdocs/langs/fi_FI/hrm.lang @@ -1,17 +1,17 @@ # Dolibarr language file - en_US - hrm # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service -Establishments=Establishments -Establishment=Establishment -NewEstablishment=New establishment -DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? -OpenEtablishment=Open establishment -CloseEtablishment=Close establishment +HRM_EMAIL_EXTERNAL_SERVICE=Sähköposti esto HRM ulkoinen palvelu +Establishments=Laitokset +Establishment=Laitos +NewEstablishment=Uusi laitos +DeleteEstablishment=Poista laitos +ConfirmDeleteEstablishment=Haluatko varmasti poistaa tämän laitoksen +OpenEtablishment=Avaa laitos +CloseEtablishment=Sulje laitos # Dictionary -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Function list +DictionaryDepartment=HRM - Osastolista +DictionaryFunction=HRM - Toimintolista # Module -Employees=Employees +Employees=Työntekijät Employee=Työntekijä -NewEmployee=New employee +NewEmployee=Uusi työntekijä diff --git a/htdocs/langs/fi_FI/incoterm.lang b/htdocs/langs/fi_FI/incoterm.lang index 7ff371e3a95..847faa62288 100644 --- a/htdocs/langs/fi_FI/incoterm.lang +++ b/htdocs/langs/fi_FI/incoterm.lang @@ -1,3 +1,3 @@ Module62000Name=Incoterm -Module62000Desc=Add features to manage Incoterm -IncotermLabel=Incoterms +Module62000Desc=Lisää Incoterm ominaisuuksia +IncotermLabel=Incoterm-ehdot diff --git a/htdocs/langs/fi_FI/install.lang b/htdocs/langs/fi_FI/install.lang index 5b3227ce108..786f51a9e15 100644 --- a/htdocs/langs/fi_FI/install.lang +++ b/htdocs/langs/fi_FI/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Voit käyttää DoliWamp ohjattua, joten arvojen suhteen t KeepDefaultValuesDeb=Voit käyttää Dolibarr ohjatun peräisin Ubuntu tai Debian-pakettien, joten ehdottamat arvot tässä on jo optimoitu. Vain salasanan tietokannan omistajan luoda on täytettävä. Muuta muut parametrit vain, jos tiedät mitä teet. KeepDefaultValuesMamp=Voit käyttää DoliMamp ohjattua, joten arvojen suhteen täällä on jo optimoitu. Muuttaa vain, jos tiedät mitä teet. KeepDefaultValuesProxmox=Käytät Dolibarr ohjatun päässä Proxmox virtuaalinen laite, joten ehdotetut arvot tässä on jo optimoitu. Muuta niitä vain, jos tiedät mitä teet. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/fi_FI/link.lang b/htdocs/langs/fi_FI/link.lang index 42c7555d469..e794e091a48 100644 --- a/htdocs/langs/fi_FI/link.lang +++ b/htdocs/langs/fi_FI/link.lang @@ -1,9 +1,10 @@ -LinkANewFile=Link a new file/document -LinkedFiles=Linked files and documents -NoLinkFound=No registered links -LinkComplete=The file has been linked successfully -ErrorFileNotLinked=The file could not be linked -LinkRemoved=The link %s has been removed -ErrorFailedToDeleteLink= Failed to remove link '%s' -ErrorFailedToUpdateLink= Failed to update link '%s' -URLToLink=URL to link +# Dolibarr language file - Source file is en_US - languages +LinkANewFile=Luo uusi linkki tiedostoon/dokumenttiin +LinkedFiles=Linkitetyt tiedostot ja dokumentit +NoLinkFound=Rekisteröityjä linkkejä ei ole +LinkComplete=Tiedosto on linkitetty onnistuneesti +ErrorFileNotLinked=Tiedostoa ei voitu linkittää +LinkRemoved=%s linkki on poistettu +ErrorFailedToDeleteLink= Linkin '%s' poisto ei onnistunut +ErrorFailedToUpdateLink= Linkin '%s' päivitys ei onnistunut +URLToLink=URL linkiksi diff --git a/htdocs/langs/fi_FI/loan.lang b/htdocs/langs/fi_FI/loan.lang index aab2ab86057..654957d68fa 100644 --- a/htdocs/langs/fi_FI/loan.lang +++ b/htdocs/langs/fi_FI/loan.lang @@ -1,31 +1,31 @@ # Dolibarr language file - Source file is en_US - loan -Loan=Loan -Loans=Loans -NewLoan=New Loan -ShowLoan=Show Loan -PaymentLoan=Loan payment -LoanPayment=Loan payment -ShowLoanPayment=Show Loan Payment +Loan=Laina +Loans=Lainat +NewLoan=Uusi laina +ShowLoan=Näytä laina +PaymentLoan=Lainan lyhennys +LoanPayment=Lainan lyhennys +ShowLoanPayment=Näyt lainanlyhennys LoanCapital=Pääkaupunki -Insurance=Insurance -Interest=Interest -Nbterms=Number of terms -LoanAccountancyCapitalCode=Accounting account capital -LoanAccountancyInsuranceCode=Accounting account insurance -LoanAccountancyInterestCode=Accounting account interest -ConfirmDeleteLoan=Confirm deleting this loan -LoanDeleted=Loan Deleted Successfully -ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Loan Paid +Insurance=Vakuutus +Interest=Korko +Nbterms=Kausien lukumäärä +LoanAccountancyCapitalCode=Kirjanpitotili pääoma +LoanAccountancyInsuranceCode=Kirjanpitotili vakuutukset +LoanAccountancyInterestCode=Kirjanpitotili korot +ConfirmDeleteLoan=Vahvista lainan poisto +LoanDeleted=Laina poistettu onnistuneesti +ConfirmPayLoan=Vahvista tämän lainan maksu +LoanPaid=Laina maksettu # Calc -LoanCalc=Bank Loans Calculator -PurchaseFinanceInfo=Purchase & Financing Information -SalePriceOfAsset=Sale Price of Asset -PercentageDown=Percentage Down -LengthOfMortgage=Duration of loan -AnnualInterestRate=Annual Interest Rate -ExplainCalculations=Explain Calculations -ShowMeCalculationsAndAmortization=Show me the calculations and amortization +LoanCalc=Pankkilainalaskin +PurchaseFinanceInfo=Osto & rahoitus tieto +SalePriceOfAsset=Jälleenmyyntihinta +PercentageDown=Prosentin lasku +LengthOfMortgage=Lainan kesto +AnnualInterestRate=Vuotuinen korko +ExplainCalculations=Selitä laskelmat +ShowMeCalculationsAndAmortization=Näytä laskelmat ja jaksotukset MortgagePaymentInformation=Mortgage Payment Information DownPayment=Down Payment DownPaymentDesc=The down payment = The price of the home multiplied by the percentage down divided by 100 (for 5% down becomes 5/100 or 0.05) @@ -43,9 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s -ListLoanAssociatedProject=List of loan associated with the project +ListLoanAssociatedProject=Tämän projektin lainat +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/fi_FI/mails.lang b/htdocs/langs/fi_FI/mails.lang index d309580e0ee..728a0b24ec8 100644 --- a/htdocs/langs/fi_FI/mails.lang +++ b/htdocs/langs/fi_FI/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Lähetetyt osittain MailingStatusSentCompletely=Lähetetyt täysin MailingStatusError=Virhe MailingStatusNotSent=Ei lähetetty -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Rivi %s tiedosto @@ -116,8 +120,8 @@ Notifications=Ilmoitukset NoNotificationsWillBeSent=Ei sähköposti-ilmoituksia on suunniteltu tähän tapahtumaan ja yritys ANotificationsWillBeSent=1 ilmoituksesta lähetetään sähköpostitse SomeNotificationsWillBeSent=%s ilmoitukset lähetetään sähköpostitse -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Listaa kaikki sähköposti-ilmoitukset lähetetään MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/fi_FI/main.lang b/htdocs/langs/fi_FI/main.lang index daba6808802..6ddbc02b3e5 100644 --- a/htdocs/langs/fi_FI/main.lang +++ b/htdocs/langs/fi_FI/main.lang @@ -72,8 +72,10 @@ SeeHere=Katso täältä Apply=Apply BackgroundColorByDefault=Default taustaväri FileRenamed=The file was successfully renamed -FileUploaded=Tiedosto on siirretty onnistuneesti FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Tiedosto on siirretty onnistuneesti +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Tiedosto on valittu liite mutta ei ollut vielä ladattu. Klikkaa "Liitä tiedosto" tätä. NbOfEntries=Huom Merkintöjen GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Yhteensä RE TotalLT2ES=Yhteensä IRPF HT=Veroton TTC=Sis. alv +INCT=Inc. all taxes VAT=Alv VATs=Myyntiverot LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=lokakuu MonthShort11=marraskuu MonthShort12=joulukuu AttachedFiles=Liitetyt tiedostot ja asiakirjat -FileTransferComplete=Tiedoston lataus onnistui DateFormatYYYYMM=VVVV-KK DateFormatYYYYMMDD=VVVV-KK-PP DateFormatYYYYMMDDHHMM=YYYY-KK-PP HH: SS diff --git a/htdocs/langs/fi_FI/margins.lang b/htdocs/langs/fi_FI/margins.lang index a7dc217581e..d4e86dc0c40 100644 --- a/htdocs/langs/fi_FI/margins.lang +++ b/htdocs/langs/fi_FI/margins.lang @@ -6,7 +6,7 @@ TotalMargin=Kate yhteensä MarginOnProducts=Kate / Tuotteet MarginOnServices=Kate / Palvelut MarginRate=Margin rate -MarkRate=Mark rate +MarkRate=Kateprosentti DisplayMarginRates=Display margin rates DisplayMarkRates=Display mark rates InputPrice=Input price @@ -23,9 +23,9 @@ ChooseProduct/Service=Valitse tuote tai palvelu ForceBuyingPriceIfNull=Force buying/cost price to selling price if not defined ForceBuyingPriceIfNullDetails=If buying/cost price not defined, and this option "ON", margin will be zero on line (buying/cost price = selling price), otherwise ("OFF"), marge will be equal to suggested default. MARGIN_METHODE_FOR_DISCOUNT=Margin method for global discounts -UseDiscountAsProduct=As a product -UseDiscountAsService=As a service -UseDiscountOnTotal=On subtotal +UseDiscountAsProduct=tuotteeksi +UseDiscountAsService=palveluksi +UseDiscountOnTotal=välisummasta MARGIN_METHODE_FOR_DISCOUNT_DETAILS=Defines if a global discount is treated as a product, a service, or only on subtotal for margin calculation. MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation MargeType1=Margin on Best supplier price @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/fi_FI/members.lang b/htdocs/langs/fi_FI/members.lang index 3c22ee5b42b..e9728bb0531 100644 --- a/htdocs/langs/fi_FI/members.lang +++ b/htdocs/langs/fi_FI/members.lang @@ -41,10 +41,10 @@ MemberType=Jäsen tyyppi MemberTypeId=Jäsen tyyppi id MemberTypeLabel=Jäsen tyyppi etiketti MembersTypes=Jäsenet tyypit -MemberStatusDraft=Luonnos (on vahvistettu) -MemberStatusDraftShort=Validoida +MemberStatusDraft=Luonnos (vaatii vahvistuksen) +MemberStatusDraftShort=Luonnos MemberStatusActive=Validoidut (odottaa tilaus) -MemberStatusActiveShort=Validoidut +MemberStatusActiveShort=Hyväksytty MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Lakkaa MemberStatusPaid=Tilaus ajan tasalla @@ -61,7 +61,7 @@ NewSubscription=Uusi tilaus NewSubscriptionDesc=Tämän lomakkeen avulla voit tallentaa tilauksen uutena jäsenenä säätiön. Jos haluat uudistaa tilauksen (jos on jo jäsen), ota yhteyttä säätiön hallituksen sijasta sähköpostitse %s. Subscription=Tilaus Subscriptions=Tilaukset -SubscriptionLate=Myöhäinen +SubscriptionLate=Myöhässä SubscriptionNotReceived=Tilaus koskaan saanut ListOfSubscriptions=Luettelo tilaukset SendCardByMail=Lähetä kortti @@ -90,6 +90,7 @@ PublicMemberList=Julkiset jäsenluetteloa BlankSubscriptionForm=Merkintälomake BlankSubscriptionFormDesc=Dolibarr voi tarjota sinulle julkista URL jotta ulkopuolisia vierailijoita pyytää tilata perusta. Jos online-maksu moduuli on käytössä, maksuvälineenä myös automaattisesti säädetään. EnablePublicSubscriptionForm=Ota yleisölle auto-merkintälomakkeen +ForceMemberType=Force the member type ExportDataset_member_1=Jäsenet ja tilaukset ImportDataset_member_1=Jäsenet LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Tämä ruutu näyttää tilastoja jäsenille kaupungin. MembersStatisticsDesc=Valitse tilastot haluat lukea ... MenuMembersStats=Tilasto LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Luonto Public=Tiedot ovat julkisia NewMemberbyWeb=Uusi jäsen. Odottaa hyväksyntää diff --git a/htdocs/langs/fi_FI/modulebuilder.lang b/htdocs/langs/fi_FI/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/fi_FI/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/fi_FI/opensurvey.lang b/htdocs/langs/fi_FI/opensurvey.lang index 9a3c8bb4a04..6713697180b 100644 --- a/htdocs/langs/fi_FI/opensurvey.lang +++ b/htdocs/langs/fi_FI/opensurvey.lang @@ -1,56 +1,56 @@ # Dolibarr language file - Source file is en_US - opensurvey -Survey=Poll -Surveys=Polls +Survey=Äänestys +Surveys=Äänestykset OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select type of poll... -NewSurvey=New poll -OpenSurveyArea=Polls area -AddACommentForPoll=You can add a comment into poll... -AddComment=Add comment -CreatePoll=Create poll -PollTitle=Poll title -ToReceiveEMailForEachVote=Receive an email for each vote -TypeDate=Type date +NewSurvey=Uusi äänestys +OpenSurveyArea=Äänestysalue +AddACommentForPoll=Voit lisätä kommentin äänestykseen +AddComment=Lisää kommentti +CreatePoll=Luo äänestys +PollTitle=Äänestyksen nimi +ToReceiveEMailForEachVote=Vastaanota sähköposti jokaisesta äänestyksestä +TypeDate=Päivämäärä TypeClassic=Type standard OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it -RemoveAllDays=Remove all days -CopyHoursOfFirstDay=Copy hours of first day -RemoveAllHours=Remove all hours -SelectedDays=Selected days -TheBestChoice=The best choice currently is -TheBestChoices=The best choices currently are -with=with +RemoveAllDays=Poista kaikki päivät +CopyHoursOfFirstDay=Kopio ensimmäisen päivän tunnit +RemoveAllHours=Poista kaikki tunnit +SelectedDays=Valitut päivät +TheBestChoice=Paras valinta on tällähetkellä +TheBestChoices=Parhaat vaihtoehdot tällähetkellä ovat +with=mukana OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. -CommentsOfVoters=Comments of voters -ConfirmRemovalOfPoll=Are you sure you want to remove this poll (and all votes) -RemovePoll=Remove poll -UrlForSurvey=URL to communicate to get a direct access to poll -PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: +CommentsOfVoters=Äänestäjien kommentit +ConfirmRemovalOfPoll=Haluatko varmasti poistaa tämän äänestyksen (ja kaikki annetut äänet) +RemovePoll=Poist äänestys +UrlForSurvey=URL osoite suoraan äänestykseen +PollOnChoice=Olet luomassa monivalintaista äänestystä. Syötä ensin kaikki äänestysvaihtoehdot äänestykseen: CreateSurveyDate=Create a date poll CreateSurveyStandard=Create a standard poll -CheckBox=Simple checkbox -YesNoList=List (empty/yes/no) -PourContreList=List (empty/for/against) -AddNewColumn=Add new column -TitleChoice=Choice label -ExportSpreadsheet=Export result spreadsheet -ExpireDate=Raja-päivämäärä +CheckBox=Yksinkertainen valinta +YesNoList=Lista (tyhjä/kyllä/ei) +PourContreList=Lista (tyhjä/puolesta/vastaan) +AddNewColumn=Lisää uusi sarake +TitleChoice=Valinnan otsikko +ExportSpreadsheet=Vie tulokset laskentataulukkoon +ExpireDate=Rajapäivä NbOfSurveys=Number of polls -NbOfVoters=Nb of voters -SurveyResults=Results -PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s. -5MoreChoices=5 more choices -Against=Against -YouAreInivitedToVote=You are invited to vote for this poll -VoteNameAlreadyExists=This name was already used for this poll -AddADate=Add a date -AddStartHour=Add start hour -AddEndHour=Add end hour -votes=vote(s) -NoCommentYet=No comments have been posted for this poll yet +NbOfVoters=Äänestäjiä kpl +SurveyResults=Tulokset +PollAdminDesc=Voit muuttaa kaikkia äänestysrivejä nappulasta "Muokka". Voit myös poistaa sarakkeen tai rivin %s. Voit myös lisätä uuden sarakkeen %s. +5MoreChoices=5 vaihtoehtoa lisää +Against=Vastaan +YouAreInivitedToVote=Olet kutsuttu äänestämään tähän äänestykseen +VoteNameAlreadyExists=Nimeä on jo käytetty tässä äänestyksessä +AddADate=Lisää päivämäärä +AddStartHour=Lisää aloitus tunti +AddEndHour=Lisää lopetus tunti +votes=Ääniä +NoCommentYet=Tässä äänestyksessä ei ole vielä kommentteja CanComment=Voters can comment in the poll CanSeeOthersVote=Voters can see other people's vote SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :
- empty,
- "8h", "8H" or "8:00" to give a meeting's start hour,
- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. -BackToCurrentMonth=Back to current month +BackToCurrentMonth=Takaisin nykyiseen kuukauteen ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation ErrorOpenSurveyOneChoice=Enter at least one choice ErrorInsertingComment=There was an error while inserting your comment diff --git a/htdocs/langs/fi_FI/orders.lang b/htdocs/langs/fi_FI/orders.lang index fbad93b50c1..67f1e9ab961 100644 --- a/htdocs/langs/fi_FI/orders.lang +++ b/htdocs/langs/fi_FI/orders.lang @@ -1,151 +1,151 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Asiakkaiden tilausten alueella -SuppliersOrdersArea=Toimittajien tilaukset alueella -OrderCard=Tilaa kortti -OrderId=Order Id -Order=Tilata +OrdersArea=Asiakkaiden tilausalue +SuppliersOrdersArea=Tavarantoimittajien tilausalue +OrderCard=Tilauskortti +OrderId=Tilausnumero +Order=Tilaus Orders=Tilaukset -OrderLine=Tilaa linja -OrderDate=Tilaa päivämäärä +OrderLine=Tilaus linja +OrderDate=Tilauspäivämäärä OrderDateShort=Tilauspäivä OrderToProcess=Jotta prosessi -NewOrder=Uusi järjestys -ToOrder=Tee jotta -MakeOrder=Tee jotta -SupplierOrder=Toimittaja jotta -SuppliersOrders=Toimittajien tilaukset -SuppliersOrdersRunning=Nykyinen toimittajien tilaukset -CustomerOrder=Asiakas jotta -CustomersOrders=Customer orders -CustomersOrdersRunning=Current customer orders -CustomersOrdersAndOrdersLines=Customer orders and order lines +NewOrder=Uusi tilaus +ToOrder=Tee tilaus +MakeOrder=Tee tilaus +SupplierOrder=Tavarantoimittajan tilaus +SuppliersOrders=Tavarantoimittajien tilaukset +SuppliersOrdersRunning=Nykyiset tavarantoimittajien tilaukset +CustomerOrder=Asiakastilaus +CustomersOrders=Asiakkaan tilaukset +CustomersOrdersRunning=Viimeisin asiakkaan tilaus +CustomersOrdersAndOrdersLines=Asiakkaan tilaukset ja tilauslinjat OrdersDeliveredToBill=Customer orders delivered to bill -OrdersToBill=Customer orders delivered -OrdersInProcess=Customer orders in process -OrdersToProcess=Customer orders to process -SuppliersOrdersToProcess=Supplier orders to process +OrdersToBill=Toimitetut asiakastilaukset +OrdersInProcess=Käsittelyssä olevat asiakastilaukset +OrdersToProcess=Käsittelyä odottavat asiakastilaukset +SuppliersOrdersToProcess=Käsittelyä odottavat tavarantoimittajan tilaukset StatusOrderCanceledShort=Peruutettu StatusOrderDraftShort=Vedos -StatusOrderValidatedShort=Validoidut -StatusOrderSentShort=Meneillään -StatusOrderSent=Shipment in process -StatusOrderOnProcessShort=Ordered -StatusOrderProcessedShort=Jalostettu -StatusOrderDelivered=Bill -StatusOrderDeliveredShort=Bill -StatusOrderToBillShort=Bill -StatusOrderApprovedShort=Hyväksyttiin -StatusOrderRefusedShort=Kieltäydytty -StatusOrderBilledShort=Laskutetun +StatusOrderValidatedShort=Hyväksytty +StatusOrderSentShort=Käsittelyssä +StatusOrderSent=Käsittelyssä olevat toimitukset +StatusOrderOnProcessShort=Tilattu +StatusOrderProcessedShort=Käsitelty +StatusOrderDelivered=Toimitettu +StatusOrderDeliveredShort=Toimitettu +StatusOrderToBillShort=Toimitettu +StatusOrderApprovedShort=Hyväksytty +StatusOrderRefusedShort=Hylätty +StatusOrderBilledShort=Laskutettu StatusOrderToProcessShort=Käsitellä -StatusOrderReceivedPartiallyShort=Osittain saanut -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedPartiallyShort=Osittain saapunut +StatusOrderReceivedAllShort=Vastaanotetut tuotteet StatusOrderCanceled=Peruutettu -StatusOrderDraft=Luonnos (on vahvistettu) -StatusOrderValidated=Validoidut -StatusOrderOnProcess=Ordered - Standby reception +StatusOrderDraft=Luonnos (vaatii vahvistuksen) +StatusOrderValidated=Hyväksytty +StatusOrderOnProcess=Tilattu - Odotaa vastaanottoa StatusOrderOnProcessWithValidation=Ordered - Standby reception or validation -StatusOrderProcessed=Jalostettu -StatusOrderToBill=Bill -StatusOrderApproved=Hyväksyttiin -StatusOrderRefused=Kieltäydytty +StatusOrderProcessed=Käsitelty +StatusOrderToBill=Toimitettu +StatusOrderApproved=Hyväksytty +StatusOrderRefused=Hylätty StatusOrderBilled=Laskutetun -StatusOrderReceivedPartially=Osittain saanut -StatusOrderReceivedAll=All products received -ShippingExist=Lähetys olemassa -QtyOrdered=Kpl velvoitti +StatusOrderReceivedPartially=Osittain saapunut +StatusOrderReceivedAll=Kaikki tuotteet vastaanotettu +ShippingExist=Lähetys on olemassa +QtyOrdered=Tilattu Kpl ProductQtyInDraft=Product quantity into draft orders ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered -MenuOrdersToBill=Tilaukset laskuttaa -MenuOrdersToBill2=Billable orders -ShipProduct=Laiva tuote -CreateOrder=Luo Tilaa -RefuseOrder=Jätteiden jotta -ApproveOrder=Approve order +MenuOrdersToBill=Toimitetut tilaukset +MenuOrdersToBill2=Laskutettavat tilaukset +ShipProduct=Toimita tuote +CreateOrder=Luo tilaus +RefuseOrder=Kiellä tilaus +ApproveOrder=Hyväksy tilaus Approve2Order=Approve order (second level) -ValidateOrder=Validate jotta -UnvalidateOrder=Unvalidate järjestys -DeleteOrder=Poista jotta +ValidateOrder=Hyväksy tilaus +UnvalidateOrder=Käsittele tilaus uudestaan +DeleteOrder=Poista tilaus CancelOrder=Peruuta tilaus OrderReopened= Order %s Reopened -AddOrder=Create order +AddOrder=Luo tilaus AddToDraftOrders=Add to draft order -ShowOrder=Näytä jotta +ShowOrder=Näytä tilaus OrdersOpened=Orders to process NoDraftOrders=No draft orders NoOrder=No order NoSupplierOrder=No supplier order -LastOrders=Latest %s customer orders -LastCustomerOrders=Latest %s customer orders +LastOrders=Viimeisimmät %s asiakastilaukset +LastCustomerOrders=Viimeisimmät %s asiakastilaukset LastSupplierOrders=Latest %s supplier orders -LastModifiedOrders=Latest %s modified orders +LastModifiedOrders=Viimeisimmät %s muokatut tilaukset AllOrders=Kaikki tilaukset -NbOfOrders=Määrä tilauksia -OrdersStatistics=Tilaukset tilastot -OrdersStatisticsSuppliers=Toimittaja tilaukset tilastot -NumberOfOrdersByMonth=Määrä tilauksia kuukausittain -AmountOfOrdersByMonthHT=Amount of orders by month (net of tax) -ListOfOrders=Luettelo tilaukset -CloseOrder=Sulje jotta -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. -ConfirmDeleteOrder=Are you sure you want to delete this order? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +NbOfOrders=Tilausten määrä +OrdersStatistics=Tilausten tilastot +OrdersStatisticsSuppliers=Tavarantoimittaja tilausten tilastot +NumberOfOrdersByMonth=Tilausmäärät kuukausittain +AmountOfOrdersByMonthHT=Tilausten summa kuukaudessa (net of tax) +ListOfOrders=Tilausluettelo +CloseOrder=Sulje tilaus +ConfirmCloseOrder=Haluatko varmasti asettaa tämän tilauksen toimitetuksi? Kun tilaus on asetettu toimitetuksi sen voi myös asettaa laskutetuksi +ConfirmDeleteOrder=Haluatko varmasti poistaa tämän tilauksen? +ConfirmValidateOrder=Haluatko varmasti vahvistaa tämän tilauksen nimelle %s? +ConfirmUnvalidateOrder=Haluatko varmasti palauttaa tilauksen %s luonnostilaan? +ConfirmCancelOrder=Haluatko varmasti perua tämän tilauksen? +ConfirmMakeOrder=Haluatko varmasti vahvistaa tekemäsi tilauksen %s? GenerateBill=Luo lasku -ClassifyShipped=Classify delivered -DraftOrders=Luonnos tilaukset +ClassifyShipped=Luokittele toimitetuksi +DraftOrders=Tilausluonnokset DraftSuppliersOrders=Draft suppliers orders -OnProcessOrders=Prosessissa tilaukset -RefOrder=Ref. tilata -RefCustomerOrder=Ref. order for customer +OnProcessOrders=Käsittelyssä olevat tilaukset +RefOrder=Tilausviite +RefCustomerOrder=Asiakkaan viite RefOrderSupplier=Ref. order for supplier RefOrderSupplierShort=Ref. order supplier -SendOrderByMail=Lähetä tilata postitse -ActionsOnOrder=Toimia, jotta -NoArticleOfTypeProduct=N: o artikkeli tyypin "tuote" niin ei shippable artikkeli tässä tilauksessa -OrderMode=Jotta menetelmä -AuthorRequest=Pyydä tekijä -UserWithApproveOrderGrant=Useres myönnetään "hyväksyä tilauksia" lupaa. -PaymentOrderRef=Maksutoimisto jotta %s -CloneOrder=Klooni jotta -ConfirmCloneOrder=Are you sure you want to clone this order %s? -DispatchSupplierOrder=Vastaanottaminen toimittaja järjestys %s +SendOrderByMail=Lähetä tilaus postitse +ActionsOnOrder=Tilauksen tapahtumat +NoArticleOfTypeProduct=Artikkelin tyypi ei ole "tuote" joten sitä ei voida toimittaa tässä tilauksessa +OrderMode=Tilaustapa +AuthorRequest=Pyydä tekijältä +UserWithApproveOrderGrant=Käyttäjille myönnetty oikeus "hyväksyä tilauksia" +PaymentOrderRef=Tilauksen %s maksu +CloneOrder=Luo vastaava tilaus +ConfirmCloneOrder=Haluatko varmasti luoda vastaavan tilauksen %s? +DispatchSupplierOrder=Tavarantoimittajan tilauksen %s vastaanotto FirstApprovalAlreadyDone=First approval already done SecondApprovalAlreadyDone=Second approval already done SupplierOrderReceivedInDolibarr=Supplier order %s received %s SupplierOrderSubmitedInDolibarr=Supplier order %s submited SupplierOrderClassifiedBilled=Supplier order %s set billed ##### Types de contacts ##### -TypeContact_commande_internal_SALESREPFOLL=Edustaja seurantaan asiakkaan tilauksen -TypeContact_commande_internal_SHIPPING=Edustaja seurantaan merenkulku -TypeContact_commande_external_BILLING=Asiakkaan lasku yhteystiedot -TypeContact_commande_external_SHIPPING=Asiakas merenkulku yhteystiedot +TypeContact_commande_internal_SALESREPFOLL=Edustaja seuraamaan asiakkaan tilausta +TypeContact_commande_internal_SHIPPING=Edustaja seuraamaan toimitusta +TypeContact_commande_external_BILLING=Yhteystiedot asiakkaan laskutukseen +TypeContact_commande_external_SHIPPING=Yhteystiedot asiakkaan toimitukseen TypeContact_commande_external_CUSTOMER=Asiakas ottaa yhteyttä seurantaan, jotta TypeContact_order_supplier_internal_SALESREPFOLL=Edustaja seurantaan toimittaja järjestys -TypeContact_order_supplier_internal_SHIPPING=Edustaja seurantaan merenkulku -TypeContact_order_supplier_external_BILLING=Toimittajan lasku yhteystiedot -TypeContact_order_supplier_external_SHIPPING=Toimittajan merenkulku yhteystiedot +TypeContact_order_supplier_internal_SHIPPING=Edustaja toimitus seurantaan +TypeContact_order_supplier_external_BILLING=Tavarantoimittajan lasku yhteystiedot +TypeContact_order_supplier_external_SHIPPING=Tavarantoimittajan toimitus yhteystiedot TypeContact_order_supplier_external_CUSTOMER=Toimittajan yhteystiedot seurantaan, jotta -Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constant COMMANDE_SUPPLIER_ADDON ole määritelty -Error_COMMANDE_ADDON_NotDefined=Constant COMMANDE_ADDON ole määritelty -Error_OrderNotChecked=No orders to invoice selected +Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Vakiota COMMANDE_SUPPLIER_ADDON ei ole määritelty +Error_COMMANDE_ADDON_NotDefined=Vakiota COMMANDE_ADDON ei ole määritelty +Error_OrderNotChecked=Yhtään tilausta ei ole valittuna laskulle # Order modes (how we receive order). Not the "why" are keys stored into dict.lang OrderByMail=Posti -OrderByFax=Faksin +OrderByFax=Faksi OrderByEMail=Sähköposti OrderByWWW=Online OrderByPhone=Puhelin # Documents models -PDFEinsteinDescription=Täydellinen jotta malli (logo. ..) -PDFEdisonDescription=Yksinkertainen, jotta malli +PDFEinsteinDescription=Täydellinen tilausmalli (logo. ..) +PDFEdisonDescription=Yksinkertainen tilausmalli PDFProformaDescription=A complete proforma invoice (logo…) -CreateInvoiceForThisCustomer=Bill orders -NoOrdersToInvoice=No orders billable +CreateInvoiceForThisCustomer=Laskuta tilaukset +NoOrdersToInvoice=Yhtään tilausta ei ole laskutettavaksi CloseProcessedOrdersAutomatically=Classify "Processed" all selected orders. OrderCreation=Order creation -Ordered=Ordered +Ordered=Tilattu OrderCreated=Your orders have been created OrderFail=An error happened during your orders creation CreateOrders=Create orders diff --git a/htdocs/langs/fi_FI/other.lang b/htdocs/langs/fi_FI/other.lang index 770c1702553..b7153b0af83 100644 --- a/htdocs/langs/fi_FI/other.lang +++ b/htdocs/langs/fi_FI/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=punta +WeightUnitounce=unssi Length=Pituus LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/fi_FI/paybox.lang b/htdocs/langs/fi_FI/paybox.lang index 615bda49ace..a4d5a5042ea 100644 --- a/htdocs/langs/fi_FI/paybox.lang +++ b/htdocs/langs/fi_FI/paybox.lang @@ -3,7 +3,7 @@ PayBoxSetup=PayBox moduulin asetukset PayBoxDesc=Tämä moduuli tarjota sivuja, jotta maksua Paybox asiakkaat. Tätä voidaan käyttää vapaa-maksun tai maksaa tietyn Dolibarr objektin (lasku-, tilaus-, ...) FollowingUrlAreAvailableToMakePayments=Seuraavat URL-osoitteet ovat käytettävissä tarjota sivu asiakas tehdä maksua Dolibarr esineitä PaymentForm=Maksu-muodossa -WelcomeOnPaymentPage=Tervetuloa online maksupalveluntarjoajan +WelcomeOnPaymentPage=Tervetuloa verkkomaksupalveluumme ThisScreenAllowsYouToPay=Tässä näytössä voit tehdä online-maksu %s. ThisIsInformationOnPayment=Tämä on informations maksua tehdä ToComplete=Saattamaan @@ -11,6 +11,7 @@ YourEMail=Sähköposti maksupyyntö vahvistus Creditor=Velkoja PaymentCode=Maksu-koodi PayBoxDoPayment=Mene maksu +ToPay=Ei maksua YouWillBeRedirectedOnPayBox=Sinut ohjataan on turvattu Paybox sivu tuloliittimeen voit luottokortin tiedot Continue=Seuraava ToOfferALinkForOnlinePayment=URL %s maksua @@ -31,9 +32,9 @@ VendorName=Nimi myyjä CSSUrlForPaymentForm=CSS-tyylisivu url maksun muodossa MessageOK=Viesti on validoitu maksun tuotto sivu MessageKO=Viesti on peruutettu maksun tuotto sivu -NewPayboxPaymentReceived=New Paybox payment received -NewPayboxPaymentFailed=New Paybox payment tried but failed -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed) -PAYBOX_PBX_SITE=Value for PBX SITE -PAYBOX_PBX_RANG=Value for PBX Rang -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID +NewPayboxPaymentReceived=Uusi Paybox maksu vastaanotettu +NewPayboxPaymentFailed=Uusi Paybox maksu epäonnistui +PAYBOX_PAYONLINE_SENDEMAIL=Sähköposti kuittaus mksun jälkeen (onnistunut tai epäonnistunut) +PAYBOX_PBX_SITE=PBX SITE arvo +PAYBOX_PBX_RANG=PBX Rang arvo +PAYBOX_PBX_IDENTIFIANT=PBX ID arvo diff --git a/htdocs/langs/fi_FI/paypal.lang b/htdocs/langs/fi_FI/paypal.lang index a7b5236d5b2..6d46d6b01a3 100644 --- a/htdocs/langs/fi_FI/paypal.lang +++ b/htdocs/langs/fi_FI/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Tämä on id liiketoimen: %s PAYPAL_ADD_PAYMENT_URL=Lisää URL Paypal-maksujärjestelmää, kun lähetät asiakirjan postitse PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Olet nyt "hiekkalaatikko"-tilassa -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/fi_FI/products.lang b/htdocs/langs/fi_FI/products.lang index a5c0d494bcd..179c05c4ba2 100644 --- a/htdocs/langs/fi_FI/products.lang +++ b/htdocs/langs/fi_FI/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Tuote tai palvelu ProductsAndServices=Tuotteet ja palvelut ProductsOrServices=Tuotteet tai palvelut -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Sekunti +unitH=H +unitD=Päivä +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Nykyinen hinta @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/fi_FI/propal.lang b/htdocs/langs/fi_FI/propal.lang index ace01a6760c..7838a26e5b6 100644 --- a/htdocs/langs/fi_FI/propal.lang +++ b/htdocs/langs/fi_FI/propal.lang @@ -1,34 +1,34 @@ # Dolibarr language file - Source file is en_US - propal -Proposals=Kaupalliset ehdotuksia -Proposal=Kaupalliset ehdotus -ProposalShort=Ehdotus -ProposalsDraft=Luonnos kaupallinen ehdotuksia -ProposalsOpened=Avoinna kaupallinen ehdotuksia -Prop=Kaupalliset ehdotuksia -CommercialProposal=Kaupalliset ehdotus -ProposalCard=Ehdotus kortti -NewProp=Uusia kaupallisia ehdotus -NewPropal=Uusi ehdotus +Proposals=Tarjoukset +Proposal=Tarjous +ProposalShort=Tarjous +ProposalsDraft=Tarjousluonnos +ProposalsOpened=Open commercial proposals +Prop=Tarjoukset +CommercialProposal=Tarjous +ProposalCard=Tarjous kortti +NewProp=Uusi tarjous +NewPropal=Uusi tarjous Prospect=Esitetilaus -DeleteProp=Poista kaupallinen ehdotus -ValidateProp=Validate kaupallinen ehdotus -AddProp=Create proposal -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? -LastPropals=Latest %s proposals -LastModifiedProposals=Latest %s modified proposals -AllPropals=Kaikki ehdotukset -SearchAProposal=Haku ehdotuksen -NoProposal=No proposal -ProposalsStatistics=Kaupalliset ehdotuksia tilastot +DeleteProp=Poista tarjous +ValidateProp=Vahvista tarjous +AddProp=Luo tarjous +ConfirmDeleteProp=Haluatko varmasti poistaa tämän tarjouksen? +ConfirmValidateProp=Haluatko varmasti vahvistaa tarjouksen %s? +LastPropals=Viimeisimmät %s tarjoukset +LastModifiedProposals=Viimeisimmät %s muokatut tarjoukset +AllPropals=Kaikki tarjoukset +SearchAProposal=Hae tarjousta +NoProposal=Ei tarjousta +ProposalsStatistics=Tarjoustilastot NumberOfProposalsByMonth=Lukumäärä kuukausittain AmountOfProposalsByMonthHT=Määrä kuukausittain (ilman veroja) -NbOfProposals=Numero kaupallisten ehdotuksia -ShowPropal=Näytä ehdotus +NbOfProposals=Tarjouksen numero +ShowPropal=Näytä tarjous PropalsDraft=Drafts -PropalsOpened=Avattu +PropalsOpened=Avoinna PropalStatusDraft=Luonnos (on vahvistettu) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Vahvistettu (tarjous on avattu) PropalStatusSigned=Allekirjoitettu (laskuttaa) PropalStatusNotSigned=Ei ole kirjautunut (suljettu) PropalStatusBilled=Laskutetun @@ -37,29 +37,29 @@ PropalStatusClosedShort=Suljettu PropalStatusSignedShort=Allekirjoitettu PropalStatusNotSignedShort=Ei ole kirjautunut PropalStatusBilledShort=Laskutetun -PropalsToClose=Kaupalliset ehdotuksia lähellä -PropalsToBill=Allekirjoitettu kaupallinen ehdotuksia bill -ListOfProposals=Luettelo kaupallisista ehdotuksia -ActionsOnPropal=Toimia, ehdotus -RefProposal=Kaupalliset ehdotus ref -SendPropalByMail=Lähetä kaupallinen ehdotus postitse -DatePropal=Päiväys Ehdotuksen +PropalsToClose=Suljettavat tarjoukset +PropalsToBill=Hyväksytyt tarjoukset laskutukseen +ListOfProposals=Tarjousluettelo +ActionsOnPropal=Tarjoustapahtumat +RefProposal=Tarjouksen viite +SendPropalByMail=Lähetä tarjous postitse +DatePropal=Tarjouspäivämäärä DateEndPropal=Päiväys loppuun voimassaoloaika ValidityDuration=Voimassaolo kesto -CloseAs=Set status to -SetAcceptedRefused=Set accepted/refused +CloseAs=Aseta tilaksi +SetAcceptedRefused=Aseta hyväksytty/hylätty ErrorPropalNotFound=Propal %s ei löydy -AddToDraftProposals=Add to draft proposal -NoDraftProposals=No draft proposals -CopyPropalFrom=Luo kaupallinen ehdotus kopioimalla olemassa olevan ehdotuksen -CreateEmptyPropal=Luo tyhjä kaupallinen ehdotuksia vierge tai luettelo tuotteet / palvelut -DefaultProposalDurationValidity=Oletus kaupallinen ehdotus voim. kesto (päivinä) +AddToDraftProposals=Lisää tarjousluonnos +NoDraftProposals=Ei tarjousluonnoksia +CopyPropalFrom=Luo tarjous kopioimalla olemassa oleva tarjous pohjaksi +CreateEmptyPropal=Luo tyhjä tarjous vierge tai luettelo tuotteet / palvelut +DefaultProposalDurationValidity=Tarjouksen oletus voimassaolo (päivinä) UseCustomerContactAsPropalRecipientIfExist=Käytä asiakkaan yhteystiedot, jos se on määritetty sijaan kolmannen osapuolen osoite ehdotus vastaanottajan osoite ClonePropal=Klooni kaupallinen ehdotus -ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +ConfirmClonePropal=Haluatko varmasti monistaa tarjouksen %s? +ConfirmReOpenProp=Haluatko varmasti avata uudestaan tarjouksen %s? ProposalsAndProposalsLines=Kaupalliset ehdotusta ja linjat -ProposalLine=Ehdotus linja +ProposalLine=Tarjousrivi AvailabilityPeriod=Saatavuus viive SetAvailability=Aseta saatavuus viive AfterOrder=tilauksesta @@ -70,13 +70,13 @@ AvailabilityTypeAV_2W=2 viikkoa AvailabilityTypeAV_3W=3 viikkoa AvailabilityTypeAV_1M=1 kuukausi ##### Types de contacts ##### -TypeContact_propal_internal_SALESREPFOLL=Edustaja seurantaan ehdotus +TypeContact_propal_internal_SALESREPFOLL=Edustaja seuraamaan tarjousta TypeContact_propal_external_BILLING=Asiakkaan lasku yhteystiedot -TypeContact_propal_external_CUSTOMER=Asiakas ottaa yhteyttä seurantaan ehdotus +TypeContact_propal_external_CUSTOMER=Asiakkaan yhteystiedot tarjouksen seurantaan # Document models -DocModelAzurDescription=Täydellinen ehdotus malli (logo. ..) -DefaultModelPropalCreate=Default model creation -DefaultModelPropalToBill=Default template when closing a business proposal (to be invoiced) -DefaultModelPropalClosed=Default template when closing a business proposal (unbilled) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature -ProposalsStatisticsSuppliers=Supplier proposals statistics +DocModelAzurDescription=Kokonainen tarjouspohja (logo...) +DefaultModelPropalCreate=Oletusmallin luonti +DefaultModelPropalToBill=Oletus pohja suljettavalle tarjoukselle (laskutukseen) +DefaultModelPropalClosed=Oletus pohja suljettavalla tarjoukselle (laskuttamaton) +ProposalCustomerSignature=Kirjallinen hyväksyntä, päivämäärä ja allekirjoitus +ProposalsStatisticsSuppliers=Tavarantoimittajan tarjousten tilastot diff --git a/htdocs/langs/fi_FI/receiptprinter.lang b/htdocs/langs/fi_FI/receiptprinter.lang index 756461488cc..af25ae9033d 100644 --- a/htdocs/langs/fi_FI/receiptprinter.lang +++ b/htdocs/langs/fi_FI/receiptprinter.lang @@ -1,44 +1,44 @@ # Dolibarr language file - Source file is en_US - receiptprinter -ReceiptPrinterSetup=Setup of module ReceiptPrinter -PrinterAdded=Printer %s added -PrinterUpdated=Printer %s updated -PrinterDeleted=Printer %s deleted -TestSentToPrinter=Test Sent To Printer %s -ReceiptPrinter=Receipt printers -ReceiptPrinterDesc=Setup of receipt printers -ReceiptPrinterTemplateDesc=Setup of Templates -ReceiptPrinterTypeDesc=Description of Receipt Printer's type -ReceiptPrinterProfileDesc=Description of Receipt Printer's Profile -ListPrinters=List of Printers -SetupReceiptTemplate=Template Setup -CONNECTOR_DUMMY=Dummy Printer -CONNECTOR_NETWORK_PRINT=Network Printer -CONNECTOR_FILE_PRINT=Local Printer -CONNECTOR_WINDOWS_PRINT=Local Windows Printer -CONNECTOR_DUMMY_HELP=Fake Printer for test, does nothing +ReceiptPrinterSetup=Kuittitulostin moduulin asetukset +PrinterAdded=Tulostint %s lisätty +PrinterUpdated=Tulostin %s päivitetty +PrinterDeleted=Tulostin %s poistettu +TestSentToPrinter=Tulostustesti tulostimelle %s +ReceiptPrinter=Kuittitulostimet +ReceiptPrinterDesc=Kuittitulostimien asetukset +ReceiptPrinterTemplateDesc=Tulostuspohjien asetukset +ReceiptPrinterTypeDesc=Kuittitulostimen tyypin kuvaus +ReceiptPrinterProfileDesc=Kuittitulostimen profiilin kuvaus +ListPrinters=Tulostinluettelo +SetupReceiptTemplate=Pohjien astukset +CONNECTOR_DUMMY=Dummy tulostin +CONNECTOR_NETWORK_PRINT=Verkkotulostin +CONNECTOR_FILE_PRINT=Paikallinen tulostin +CONNECTOR_WINDOWS_PRINT=Paikallinen Windows tulostin +CONNECTOR_DUMMY_HELP=Olematon tulostin testiä varten, ei tee mitään CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x:9100 CONNECTOR_FILE_PRINT_HELP=/dev/usb/lp0, /dev/usb/lp1 CONNECTOR_WINDOWS_PRINT_HELP=LPT1, COM1, smb://FooUser:secret@computername/workgroup/Receipt Printer -PROFILE_DEFAULT=Default Profile -PROFILE_SIMPLE=Simple Profile -PROFILE_EPOSTEP=Epos Tep Profile -PROFILE_P822D=P822D Profile -PROFILE_STAR=Star Profile -PROFILE_DEFAULT_HELP=Default Profile suitable for Epson printers -PROFILE_SIMPLE_HELP=Simple Profile No Graphics -PROFILE_EPOSTEP_HELP=Epos Tep Profile Help -PROFILE_P822D_HELP=P822D Profile No Graphics -PROFILE_STAR_HELP=Star Profile -DOL_ALIGN_LEFT=Left align text -DOL_ALIGN_CENTER=Center text -DOL_ALIGN_RIGHT=Right align text -DOL_USE_FONT_A=Use font A of printer -DOL_USE_FONT_B=Use font B of printer -DOL_USE_FONT_C=Use font C of printer -DOL_PRINT_BARCODE=Print barcode -DOL_PRINT_BARCODE_CUSTOMER_ID=Print barcode customer id -DOL_CUT_PAPER_FULL=Cut ticket completely -DOL_CUT_PAPER_PARTIAL=Cut ticket partially -DOL_OPEN_DRAWER=Open cash drawer -DOL_ACTIVATE_BUZZER=Activate buzzer -DOL_PRINT_QRCODE=Print QR Code +PROFILE_DEFAULT=Oletus profiili +PROFILE_SIMPLE=Yksinkertainen profiili +PROFILE_EPOSTEP=Epos Tep profiili +PROFILE_P822D=P822D profiili +PROFILE_STAR=Star profiili +PROFILE_DEFAULT_HELP=Epson tulostimiin sopiva oletusprofiili +PROFILE_SIMPLE_HELP=Yksinkertainen profiili ilman grafiikkaa +PROFILE_EPOSTEP_HELP=Epos Tep profiilin ohje +PROFILE_P822D_HELP=P822D profiili ilman grafiikkaa +PROFILE_STAR_HELP=Star profiili +DOL_ALIGN_LEFT=Vasemman reunan tasaus +DOL_ALIGN_CENTER=Keskitä teksti +DOL_ALIGN_RIGHT=Oikean reunan tasaus +DOL_USE_FONT_A=Käytä tulostimen A fonttia +DOL_USE_FONT_B=Käytä tulostimen B fonttia +DOL_USE_FONT_C=Käytä tulostimen C fonttia +DOL_PRINT_BARCODE=Tulosta viivakoodi +DOL_PRINT_BARCODE_CUSTOMER_ID=Tulosta asiakasnumero viivakoodina +DOL_CUT_PAPER_FULL=Leikkaa tuloste kokonaan +DOL_CUT_PAPER_PARTIAL=Leikkaa tuloste osittain +DOL_OPEN_DRAWER=Avaa kassalaatikko +DOL_ACTIVATE_BUZZER=Aktivoi buzzer +DOL_PRINT_QRCODE=Tulosta QR koodi diff --git a/htdocs/langs/fi_FI/resource.lang b/htdocs/langs/fi_FI/resource.lang index 60ce8a391b8..38ff0b8066a 100644 --- a/htdocs/langs/fi_FI/resource.lang +++ b/htdocs/langs/fi_FI/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resurssit diff --git a/htdocs/langs/fi_FI/salaries.lang b/htdocs/langs/fi_FI/salaries.lang index 68407482edb..e58fae86173 100644 --- a/htdocs/langs/fi_FI/salaries.lang +++ b/htdocs/langs/fi_FI/salaries.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge -Salary=Salary -Salaries=Salaries -NewSalaryPayment=New salary payment -SalaryPayment=Salary payment -SalariesPayments=Salaries payments -ShowSalaryPayment=Show salary payment -THM=Average hourly rate -TJM=Average daily rate -CurrentSalary=Current salary -THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently as information only and is not used for any calculation +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Oletus kirjanpitotili henkilöstökuluille +Salary=Palkka +Salaries=Palkat +NewSalaryPayment=Uusi palkanmaksu +SalaryPayment=Palkanmaksu +SalariesPayments=Palkkojen maksut +ShowSalaryPayment=Näytä palkanmaksu +THM=Keskimääräinen tuntipalkka +TJM=Keskimääräinen päiväpalkka +CurrentSalary=Nykyinen palkka +THMDescription=Jos projektimoduli on käytössä, tätä arvoa voi käyttää projektin aikakustannuksen laskemiseen käyttäjän syöttämien tuntien perusteella +TJMDescription=Tätä arvoa ei toistaiseksi käytetä laskentaan, se on olemassa vain tiedoksi diff --git a/htdocs/langs/fi_FI/sendings.lang b/htdocs/langs/fi_FI/sendings.lang index 47b9245bf07..b6792206426 100644 --- a/htdocs/langs/fi_FI/sendings.lang +++ b/htdocs/langs/fi_FI/sendings.lang @@ -1,31 +1,31 @@ # Dolibarr language file - Source file is en_US - sendings -RefSending=Ref. lähettäminen -Sending=Lähettävä -Sendings=Sendings +RefSending=Toimituksen viite +Sending=Lähetys +Sendings=Lähetykset AllSendings=All Shipments Shipment=Lähettävä Shipments=Toimitukset ShowSending=Show Shipments -Receivings=Delivery Receipts -SendingsArea=Sendings alueella -ListOfSendings=Luettelo sendings -SendingMethod=Lähetysvalinnat menetelmä -LastSendings=Latest %s shipments -StatisticsOfSendings=Tilastot sendings -NbOfSendings=Lukumäärä sendings +Receivings=Toimituskuittaukset +SendingsArea=Lähetys alue +ListOfSendings=Lista lähetyksistä +SendingMethod=Toimitustapa +LastSendings=Viimeisimmät %s toimitukset +StatisticsOfSendings=Toimitusten tilastot +NbOfSendings=Toimitusten lukumäärä NumberOfShipmentsByMonth=Number of shipments by month -SendingCard=Shipment card -NewSending=Uusi lähettäminen +SendingCard=Toimituskortti +NewSending=Uusi toimitus CreateShipment=Luo lähettäminen -QtyShipped=Kpl lähetysvuotta +QtyShipped=Kpl lähetetty QtyPreparedOrShipped=Qty prepared or shipped -QtyToShip=Kpl alusten -QtyReceived=Kpl saanut +QtyToShip=Kpl lähetettävänä +QtyReceived=Kpl saapunut QtyInOtherShipments=Qty in other shipments -KeepToShip=Remain to ship -OtherSendingsForSameOrder=Muut sendings tässä tilauksessa -SendingsAndReceivingForSameOrder=Shipments and receipts for this order -SendingsToValidate=Lähetysvalinnat validoida +KeepToShip=Lähettämättä +OtherSendingsForSameOrder=Tämän tilauksen muut toimitukset +SendingsAndReceivingForSameOrder=Tämän tilauksen toimitukset ja kuittaukset +SendingsToValidate=Toimitu StatusSendingCanceled=Peruttu StatusSendingDraft=Vedos StatusSendingValidated=Validoidut (tuotteet alukselle tai jo lähettänyt) @@ -37,11 +37,10 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Yksinkertaisen mallin DocumentModelMerou=Merou A5 malli WarningNoQtyLeftToSend=Varoitus, ei tuotteet odottavat lähettämistä. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). -DateDeliveryPlanned=Planned date of delivery +DateDeliveryPlanned=Suunniteltu toimituspäivä RefDeliveryReceipt=Ref delivery receipt StatusReceipt=Status delivery receipt DateReceived=Päivämäärä toimitus sai @@ -51,10 +50,10 @@ ActionsOnShipping=Tapahtumat lähetystä LinkToTrackYourPackage=Linkki seurata pakettisi ShipmentCreationIsDoneFromOrder=Tällä hetkellä uuden lähetys tehdään tilauksesta kortin. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/fi_FI/sms.lang b/htdocs/langs/fi_FI/sms.lang index a737d822dd9..5c3bac7ee70 100644 --- a/htdocs/langs/fi_FI/sms.lang +++ b/htdocs/langs/fi_FI/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=Ei lähetetty SmsSuccessfulySent=Sms oikein lähetetään (vuodesta %s ja %s) ErrorSmsRecipientIsEmpty=Määrä tavoite on tyhjä WarningNoSmsAdded=Ei uusia puhelinnumero lisätä kohde luetteloon -ConfirmValidSms=Do you confirm validation of this campain? +ConfirmValidSms=Haluatko vahvistaa tämän kampanjan hyväksytyksi? NbOfUniqueSms=Nb DOF ainutlaatuinen puhelinnumeroita NbOfSms=Nbre of phon numeroiden ThisIsATestMessage=Tämä on testi viesti @@ -46,6 +46,6 @@ SendSms=Lähetä tekstiviesti SmsInfoCharRemain=Nb jäljellä olevien merkkien SmsInfoNumero= (Muoto kansainvälinen eli +33899701761) DelayBeforeSending=Viive ennen lähettämistä (min) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleSenderFound=Lähettäjää ei ole saatavilla. Tarkista SMS asetukset. SmsNoPossibleRecipientFound=Ei tavoite käytettävissä. Tarkista asetukset oman SMS tarjoaja. diff --git a/htdocs/langs/fi_FI/stocks.lang b/htdocs/langs/fi_FI/stocks.lang index b2fc64fa585..37f8231590d 100644 --- a/htdocs/langs/fi_FI/stocks.lang +++ b/htdocs/langs/fi_FI/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Kappalemäärä UnitPurchaseValue=Unit purchase price StockTooLow=Kanta liian alhainen -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Value PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Määrä lähetysolosuhteita QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Tilaa lähetyskeskukset +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease todellinen varastot laskuista / hyvityslaskuja @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Lisäys todellinen varastot laskuista / hyvityslaskuja ReStockOnValidateOrder=Lisäys todellinen varastot tilaukset toteaa -ReStockOnDispatchOrder=Lisäys real varastot käsikirja lähettämistä osaksi varastot, kun toimittaja voidaan vastaanottaa +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Tilaa ei ole vielä tai enää asema, joka mahdollistaa lähettäminen varastossa olevista tuotteista varastoissa. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Ei ennalta tuotteet tämän objektin. Joten ei lähettämistä varastossa on. DispatchVerb=Lähettäminen StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Varasto RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual varastossa +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id-varasto DescWareHouse=Kuvaus varasto LieuWareHouse=Lokalisointi varasto @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Muokkaa +inventoryValidate=Hyväksytty +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Luokka suodatin +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Lisää +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Poista rivi +RegulateStock=Regulate Stock +ListInventory=Luettelo diff --git a/htdocs/langs/fi_FI/stripe.lang b/htdocs/langs/fi_FI/stripe.lang new file mode 100644 index 00000000000..198a446fdf7 --- /dev/null +++ b/htdocs/langs/fi_FI/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Seuraavat URL-osoitteet ovat käytettävissä tarjota sivu asiakas tehdä maksua Dolibarr esineitä +PaymentForm=Maksu-muodossa +WelcomeOnPaymentPage=Tervetuloa verkkomaksupalveluumme +ThisScreenAllowsYouToPay=Tässä näytössä voit tehdä online-maksu %s. +ThisIsInformationOnPayment=Tämä on informations maksua tehdä +ToComplete=Saattamaan +YourEMail=Sähköposti maksupyyntö vahvistus +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Velkoja +PaymentCode=Maksu-koodi +StripeDoPayment=Mene maksu +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Seuraava +ToOfferALinkForOnlinePayment=URL %s maksua +ToOfferALinkForOnlinePaymentOnOrder=URL tarjota %s online maksu käyttöliittymän tilauksen +ToOfferALinkForOnlinePaymentOnInvoice=URL tarjota %s online maksu käyttöliittymän lasku +ToOfferALinkForOnlinePaymentOnContractLine=URL tarjota %s online maksu käyttöliittymän sopimuksen linjan +ToOfferALinkForOnlinePaymentOnFreeAmount=URL tarjota %s online maksu käyttöliittymän vapaa määrä +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL tarjota %s online maksu käyttöliittymän jäsen tilaus +YouCanAddTagOnUrl=Voit myös lisätä URL-parametrin & tag= arvo mille tahansa niistä URL (vaaditaan ainoastaan ilmaiseksi maksu) lisätään oma maksu kommentoida tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Tämä sivu vahvistaa, että maksu on kirjattu. Kiitos. +YourPaymentHasNotBeenRecorded=Et maksua ei ole kirjattu, ja kauppa on peruutettu. Kiitos. +AccountParameter=Tilin parametrit +UsageParameter=Käyttöparametrien +InformationToFindParameters=Auta löytää %s tilitiedot +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nimi myyjä +CSSUrlForPaymentForm=CSS-tyylisivu url maksun muodossa +MessageOK=Viesti on validoitu maksun tuotto sivu +MessageKO=Viesti on peruutettu maksun tuotto sivu +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/fi_FI/supplier_proposal.lang b/htdocs/langs/fi_FI/supplier_proposal.lang index 7eea6f02e24..89c1ebd5b5e 100644 --- a/htdocs/langs/fi_FI/supplier_proposal.lang +++ b/htdocs/langs/fi_FI/supplier_proposal.lang @@ -8,11 +8,11 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal -SupplierProposals=Supplier proposals -SupplierProposalsShort=Supplier proposals +SupplierProposals=Tavarantoimittajan tarjoukset +SupplierProposalsShort=Tavarantoimittajan tarjoukset NewAskPrice=New price request ShowSupplierProposal=Show price request AddSupplierProposal=Create a price request @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Luonnos (on vahvistettu) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Suljettu SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -44,10 +44,10 @@ ConfirmDeleteAsk=Are you sure you want to delete this price request %s? ActionsOnSupplierProposal=Events on price request DocModelAuroreDescription=A complete request model (logo...) CommercialAsk=Price request -DefaultModelSupplierProposalCreate=Default model creation +DefaultModelSupplierProposalCreate=Oletusmallin luonti DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/fi_FI/suppliers.lang b/htdocs/langs/fi_FI/suppliers.lang index 93d4f4681e6..8fe66427ee9 100644 --- a/htdocs/langs/fi_FI/suppliers.lang +++ b/htdocs/langs/fi_FI/suppliers.lang @@ -1,44 +1,46 @@ # Dolibarr language file - Source file is en_US - suppliers Suppliers=Tavarantoimittajat SuppliersInvoice=Tavarantoimittajan lasku -ShowSupplierInvoice=Show Supplier Invoice -NewSupplier=Uudsi toimittaja +ShowSupplierInvoice=Näytä tavarantoimittajan lasku +NewSupplier=Uusi tavarantoimittaja History=Historia -ListOfSuppliers=Luettelo toimittajista -ShowSupplier=Näytä toimittaja +ListOfSuppliers=Tavarantoimittajien luettelo +ShowSupplier=Näytä tavarantoimittaja OrderDate=Tilauspäivä -BuyingPriceMin=Best buying price -BuyingPriceMinShort=Best buying price -TotalBuyingPriceMinShort=Total of subproducts buying prices -TotalSellingPriceMinShort=Total of subproducts selling prices -SomeSubProductHaveNoPrices=Some sub-products have no price defined -AddSupplierPrice=Add buying price -ChangeSupplierPrice=Change buying price -ReferenceSupplierIsAlreadyAssociatedWithAProduct=Tämä viittaus toimittaja on jo liitetty viite: %s -NoRecordedSuppliers=N: o toimittajat kirjataan -SupplierPayment=Toimittaja maksu -SuppliersArea=Tavarantoimittajat alueella -RefSupplierShort=Ref. toimittaja +BuyingPriceMin=Alhaisin ostohinta +BuyingPriceMinShort=Alhaisin ostohinta +TotalBuyingPriceMinShort=Alatuotteiden ostohinta yhteensä +TotalSellingPriceMinShort=Alatuotteiden myyntihinta yhteensä +SomeSubProductHaveNoPrices=Joidenkin alatuotteidin hintoja ei ole määritelty +AddSupplierPrice=Lisää ostohinta +ChangeSupplierPrice=Muuta ostohintaa +SupplierPrices=Supplier prices +ReferenceSupplierIsAlreadyAssociatedWithAProduct=Tämä tavarantoimittajan viite on jo liitetty viiteeseen: %s +NoRecordedSuppliers=Tavarantoimittajia ei ole kirjattu +SupplierPayment=Tavarantoimittajan maksu +SuppliersArea=Tavarantoimittaja alue +RefSupplierShort=Tavarantoimittajan viite Availability=Saatavuus -ExportDataset_fournisseur_1=Toimittajan laskujen luettelo ja laskut "linjat -ExportDataset_fournisseur_2=Toimittajan laskut ja maksut -ExportDataset_fournisseur_3=Supplier orders and order lines +ExportDataset_fournisseur_1=Lista tavarantoimittajan laskuista ja laskuriveistä +ExportDataset_fournisseur_2=Tavarantoimittajan laskut ja maksut +ExportDataset_fournisseur_3=Tavarantoimittajan tilaukset ja tilausrivit ApproveThisOrder=Hyväksy tämä tilaus -ConfirmApproveThisOrder=Are you sure you want to approve order %s? -DenyingThisOrder=Deny this order -ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? -ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? -AddSupplierOrder=Luo toimittaja jotta -AddSupplierInvoice=Luo toimittajan laskun -ListOfSupplierProductForSupplier=Luettelo tuotteista ja hinnoista toimittaja %s -SentToSuppliers=Sent to suppliers -ListOfSupplierOrders=List of supplier orders -MenuOrdersSupplierToBill=Supplier orders to invoice -NbDaysToDelivery=Delivery delay in days -DescNbDaysToDelivery=The biggest deliver delay of the products from this order -SupplierReputation=Supplier reputation -DoNotOrderThisProductToThisSupplier=Do not order -NotTheGoodQualitySupplier=Wrong quality -ReputationForThisProduct=Reputation -BuyerName=Buyer name -AllProductServicePrices=All product / service prices +ConfirmApproveThisOrder=Haluatko varmasti hyväksyä tilauksen %s? +DenyingThisOrder=Kiellä tämä tilaus +ConfirmDenyingThisOrder=Haluatko varmasti kieltää tilauksen %s? +ConfirmCancelThisOrder=Haluatko varmasti peruuttaa tilauksen %s? +AddSupplierOrder=Luo tavarantoimittajan tilaus +AddSupplierInvoice=Luo tavarantoimittajan lasku +ListOfSupplierProductForSupplier=Luettelo tavarantoimittajan %s tuotteista ja hinnoista +SentToSuppliers=Lähetetty tavarantoimittajille +ListOfSupplierOrders=Luettelo tavarantoimittajan tilauksista +MenuOrdersSupplierToBill=Tavarantoimittajan tilaukset laskulle +NbDaysToDelivery=Toimitusviive päivinä +DescNbDaysToDelivery=Suurin toimitusviive tällä tilauksella +SupplierReputation=Tavarantoimittajan maine +DoNotOrderThisProductToThisSupplier=Älä tilaa +NotTheGoodQualitySupplier=Väärä laatu +ReputationForThisProduct=Maine +BuyerName=Ostajan nimi +AllProductServicePrices=Kaikkien tuotteiden / palveluiden hinnat +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/fi_FI/trips.lang b/htdocs/langs/fi_FI/trips.lang index d7d46dcf947..deca661fd06 100644 --- a/htdocs/langs/fi_FI/trips.lang +++ b/htdocs/langs/fi_FI/trips.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - trips ExpenseReport=Expense report -ExpenseReports=Expense reports +ExpenseReports=Kuluraportit ShowExpenseReport=Show expense report -Trips=Expense reports +Trips=Kuluraportit TripsAndExpenses=Expenses reports TripsAndExpensesStatistics=Expense reports statistics TripCard=Expense report card @@ -12,7 +12,7 @@ ListOfFees=Luettelo palkkiot TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Yritys / säätiö vieraili +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Määrä tai kilometreinä DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -56,7 +56,7 @@ AucuneLigne=There is no expense report declared yet ModePaiement=Payment mode VALIDATOR=User responsible for approval -VALIDOR=Approved by +VALIDOR=Hyväksynyt AUTHOR=Recorded by AUTHORPAIEMENT=Paid by REFUSEUR=Denied by @@ -70,6 +70,7 @@ DATE_SAVE=Vahvistettu DATE_CANCEL=Cancelation date DATE_PAIEMENT=Maksupäivä BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/fi_FI/users.lang b/htdocs/langs/fi_FI/users.lang index 6fc433fb605..7ce6705a8cd 100644 --- a/htdocs/langs/fi_FI/users.lang +++ b/htdocs/langs/fi_FI/users.lang @@ -66,8 +66,8 @@ InternalUser=Sisäinen käyttäjä ExportDataset_user_1=Dolibarr käyttäjille ja ominaisuudet DomainUser=Domain käyttäjän %s Reactivate=Uudelleenaktivoi -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=Sisäinen käyttäjä on käyttäjä, joka on osa yrityksen / perusta.
Ulkoinen käyttäjä on asiakas, toimittaja tai muu.

Molemmissa tapauksissa, oikeudet määritellään oikeuksia Dolibarr myös ulkoinen käyttäjä voi olla eri valikosta johtaja kuin sisäinen käyttäjä (Katso etusivu - Asetukset - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Lupa myönnettiin, koska periytyy yhden käyttäjän ryhmä. Inherited=Peritty UserWillBeInternalUser=Luotu käyttäjä on sisäinen käyttäjä (koska ei liity erityistä kolmannelle osapuolelle) diff --git a/htdocs/langs/fi_FI/website.lang b/htdocs/langs/fi_FI/website.lang index 6197580711f..5467f426527 100644 --- a/htdocs/langs/fi_FI/website.lang +++ b/htdocs/langs/fi_FI/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Koodi WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/fi_FI/withdrawals.lang b/htdocs/langs/fi_FI/withdrawals.lang index 57d929dafe9..bfe1c285c7c 100644 --- a/htdocs/langs/fi_FI/withdrawals.lang +++ b/htdocs/langs/fi_FI/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Määrä peruuttaa WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Ei asiakasta laskun maksu mode "vetää" odottaa. Mene "Peruuta" välilehdessä laskun kortin pyytää. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Vastaava käyttäjä WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Hylkäämisen syy RefusedInvoicing=Laskutus hylkääminen NoInvoiceRefused=Älä lataa hylkäämisestä InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Odotus StatusTrans=Toimitettu StatusCredited=Hyvitetään diff --git a/htdocs/langs/fr_BE/bills.lang b/htdocs/langs/fr_BE/bills.lang index 28f69acb856..8fe53169113 100644 --- a/htdocs/langs/fr_BE/bills.lang +++ b/htdocs/langs/fr_BE/bills.lang @@ -1,9 +1,6 @@ # Dolibarr language file - Source file is en_US - bills BillsLate=Paiements en retard InvoiceStandardDesc=Ce type de facture est le type commun. -InvoiceDeposit=Facture d'accompte -InvoiceDepositAsk=Facture d'accompte -InvoiceDepositDesc=Ce type de facture est fait lorsqu'un accompte a été reçu. InvoiceProFormaDesc=Une facture proforma est l'image d'une vraie facture mais n'a pas de valeur comptable. InvoiceReplacementAsk=Facture de remplacement pour facture InvoiceReplacementDesc=Une facture de remplacement est utilisée pour annuler et remplacer complètement une facture pour laquelle aucun paiement n'a encore été reçu.

Note: Seules les factures sans paiement peuvent être remplacées. Si la facture que vous remplacez n'est pas encore clôturée, elle sera clôturée automatiquement et enregistrée comme 'abandonnée'. @@ -21,7 +18,6 @@ SupplierBills=factures fournisseurs Payment=Paiement Payments=Paiements DeletePayment=Supprimer paiement -ConfirmDeletePayment=Êtes-vous certain de vouloir supprimer ce paiement? SupplierPayments=Paiements fournisseurs ReceivedPayments=Paiements reçus ReceivedCustomersPayments=Paiements reçus de clients @@ -43,7 +39,6 @@ ErrorInvoiceAvoirMustBeNegative=Erreur, une facture de type Note de crédit doit ConfirmClassifyPaidPartiallyReasonAvoir=Le reste à payer (%s %s) est un trop facturé (car article retourné, oubli, escompte non défini...) régularisé par un crédit ConfirmClassifyPaidPartiallyReasonOtherDesc=Ce choix sera celui choisi dans tout autre cas, par exemple, dans les cas suivants:
- paiement partiel car une partie des produits a été retourné.
- trop réclamé suite à oubli d'une remise
Dans tous les cas, le trop réclamé doit être régularisé en compta et envers le client par un crédit. ShowInvoiceAvoir=Afficher note de crédit -AlreadyPaidNoCreditNotesNoDeposits=Déjà réglé (hors crédits et acomptes) EscompteOfferedShort=Ristourne Discounts=Ristournes AddDiscount=Créer ristourne diff --git a/htdocs/langs/fr_BE/companies.lang b/htdocs/langs/fr_BE/companies.lang index d57409f60cb..17e96e4539d 100644 --- a/htdocs/langs/fr_BE/companies.lang +++ b/htdocs/langs/fr_BE/companies.lang @@ -1,3 +1,4 @@ # Dolibarr language file - Source file is en_US - companies +OverAllProposals=Propales VATIntraCheck=Chèque PL_UNKNOWN=Inconnue diff --git a/htdocs/langs/fr_BE/oauth.lang b/htdocs/langs/fr_BE/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/fr_BE/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/fr_BE/printing.lang b/htdocs/langs/fr_BE/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/fr_BE/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/fr_CA/accountancy.lang b/htdocs/langs/fr_CA/accountancy.lang index 54ac9970ec1..045c2f24504 100644 --- a/htdocs/langs/fr_CA/accountancy.lang +++ b/htdocs/langs/fr_CA/accountancy.lang @@ -41,7 +41,6 @@ AccountancyAreaDescAnalyze=STEP %s: Ajoutez ou modifiez des transactions existan AccountancyAreaDescClosePeriod=STEP %s: période de fermeture afin que nous ne puissions faire aucune modification dans un futur. Selectchartofaccounts=Sélectionnez le plan des comptes actif SubledgerAccount=Compte Subledger -subledger_account=Compte Subledger ShowAccountingJournal=Afficher le journal comptable AccountAccountingSuggest=Compte comptable suggéré MenuVatAccounts=Comptes Vat @@ -55,7 +54,6 @@ SuppliersVentilation=Reliure de la facture du fournisseur ExpenseReportsVentilation=Rapport de dépenses liant CreateMvts=Créer une nouvelle transaction WriteBookKeeping=Journalize les transactions dans Ledger -Bookkeeping=Grand livre AccountBalance=Solde du compte CAHTF=Total achats fournisseur avant taxes TotalExpenseReport=Rapport de dépenses totales diff --git a/htdocs/langs/fr_CA/admin.lang b/htdocs/langs/fr_CA/admin.lang index 29fd8a5e339..2bacefb10cd 100644 --- a/htdocs/langs/fr_CA/admin.lang +++ b/htdocs/langs/fr_CA/admin.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - admin VersionLastInstall=Version d'installation initiale -VersionLastUpgrade=Dernière mise à jour de la version +VersionLastUpgrade=Version de la dernière mise à jour FileCheck=Vérificateur d'intégrité des fichiers FileCheckDesc=Cet outil vous permet de vérifier l'intégrité des fichiers et la configuration de votre application, en comparant chaque fichier avec les officiels. La valeur de certaines constantes d'installation peut également être vérifiée. Vous pouvez utiliser cet outil pour détecter si certains fichiers ont été modifiés par un pirate informatique par exemple. FileIntegrityIsStrictlyConformedWithReference=L'intégrité des fichiers est strictement conforme à la référence. @@ -15,6 +15,7 @@ FileCheckDolibarr=Vérifier l'intégrité des fichiers d'application AvailableOnlyOnPackagedVersions=Le fichier local pour la vérification de l'intégrité n'est disponible que lorsque l'application est installée à partir d'un paquet officiel XmlNotFound=Xml Integrity Fichier de l'application introuvable ConfirmPurgeSessions=Voulez-vous vraiment purger toutes les sessions? Cela déconnectera tous les utilisateurs (sauf vous). +WebUserGroup=Utilisateur/groupe du serveur Web UploadNewTemplate=Télécharger un nouveau modèle (s) SecurityFilesDesc=Définissez ici les options liées à la sécurité concernant le téléchargement de fichiers. DelaiedFullListToSelectCompany=Attendez que vous appuyez sur une touche avant de charger le contenu de la liste des combinaisons de tiers (cela peut augmenter les performances si vous avez un grand nombre de tiers, mais cela est moins pratique) @@ -26,7 +27,7 @@ NotConfigured=Module / Application non configuré HoursOnThisPageAreOnServerTZ=Avertissement, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais pour le fuseau horaire du serveur. MaxNbOfLinesForBoxes=Nombre maximum de lignes pour les widgets MenusDesc=Les gestionnaires de menu définissent le contenu des deux barres de menus (horizontales et verticales). -MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence.
Certains modules ajoutent des entrées de menu (dans le menu Tous principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en redéfinissant le module. +MenusEditorDesc=L'éditeur de menu vous permet de définir des entrées de menu personnalisées. Utilisez-le soigneusement pour éviter l'instabilité et les entrées de menu inaccessibles en permanence.
Certains modules ajoutent des entrées de menu (dans le menu Tous principalement). Si vous supprimez certaines de ces entrées par erreur, vous pouvez les restaurer en désactivant et en redéfinissant le module. PurgeAreaDesc=Cette page vous permet de supprimer tous les fichiers générés ou stockés par Dolibarr (fichiers temporaires ou tous les fichiers dans le répertoire %s). L'utilisation de cette fonctionnalité n'est pas nécessaire. Il est fourni en tant que solution de contournement pour les utilisateurs dont Dolibarr est hébergé par un fournisseur qui n'offre pas d'autorisations pour supprimer les fichiers générés par le serveur Web. PurgeDeleteLogFile=Supprimer le fichier journal %s défini pour le module Syslog (sans risque de perte de données) PurgeDeleteTemporaryFiles=Supprimez tous les fichiers temporaires (pas de risque de perte de données) @@ -36,7 +37,6 @@ ConfirmPurgeAuditEvents=Êtes-vous sûr de vouloir purger tous les événements IgnoreDuplicateRecords=Ignorer les erreurs d'enregistrement en double (INSERT IGNORE) FeatureAvailableOnlyOnStable=La fonctionnalité est uniquement disponible sur les versions officielles stables BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter pour personnaliser certaines pages. Vous pouvez choisir entre afficher le widget ou non en sélectionnant la page cible et en cliquant sur 'Activer', ou en cliquant sur la poubelle pour la désactiver. -ModulesDesc=Les modules Dolibarr définissent quelle application / fonctionnalité est activée dans le logiciel. Certaines applications / modules nécessitent des autorisations que vous devez accorder aux utilisateurs, après l'avoir activé. Cliquez sur le bouton activé / désactivé pour activer un module / application. ModulesMarketPlaceDesc=Vous pouvez trouver plus de modules à télécharger sur des sites Web externes sur Internet ... ModulesDeployDesc=Si les autorisations sur votre système de fichiers le permettent, vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible sur l'onglet %s. ModulesMarketPlaces=Trouver des modules externes ... @@ -157,6 +157,7 @@ Module20000Name=Gestion des demandes de congès Module20000Desc=Déclaration et suivi des congès des employés Module39000Name=Lot/Série du produit Module50100Desc=Module de point de vente (POS). +Module50400Desc=Gestion de la comptabilité (partie double) Module55000Name=Sondage, enquête ou vote Module55000Desc=Module pour faire des sondages en ligne, des enquêtes ou des votes (comme Doodle , Studs , Rdvz , ... ) Module63000Desc=Gérer les ressources (imprimantes, voitures, salles, ...) vous pouvez ensuite partager vos événements @@ -280,7 +281,6 @@ LDAPAdminDnExample=DN complet (ex: cn = admin, dc = exemple, dc = com ou cn = Ad LDAPFieldTitle=Poste CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image / gif A2592000" DefaultValuesDesc=Vous pouvez définir / forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et / ou défairez les filtres ou le tri lors de votre liste. -DefaultSearchFilters=Filtres de recherche par défaut DefaultSortOrder=Ordres de tri par défaut DefaultFocus=Champs de mise au point par défaut MergePropalProductCard=Activez dans le produit/service, l'option onglet de fichiers attachés pour fusionner le produit PDF le document à la proposition PDF azur si le produit/service est dans la proposition diff --git a/htdocs/langs/fr_CA/agenda.lang b/htdocs/langs/fr_CA/agenda.lang index ee94b6f276a..4e06b8dd1e1 100644 --- a/htdocs/langs/fr_CA/agenda.lang +++ b/htdocs/langs/fr_CA/agenda.lang @@ -5,6 +5,7 @@ NewCompanyToDolibarr=Le tiers %s a été créé PropalClassifiedBilledInDolibarr=Proposition %s classée facturée InvoicePaidInDolibarr=La facture %s a changé en payé MemberValidatedInDolibarr=Membre %s validé +MemberModifiedInDolibarr=Membre %s modifié MemberResiliatedInDolibarr=Membre %s terminé MemberDeletedInDolibarr=Membre %s supprimé MemberSubscriptionAddedInDolibarr=L'abonnement au membre %s a ajouté @@ -16,6 +17,7 @@ OrderDeliveredInDolibarr=Commande %s classée Délivrée ShippingSentByEMail=Bon expédition %s envoyé par EMail InterventionSentByEMail=Intervention %s envoyée par EMail ProposalDeleted=Proposition supprimée +AgendaModelModule=Modèles de document pour l'événement AgendaUrlOptionsProject=project=PROJECT_ID pour restreindre aux écévements associés au projet PROJECT_ID. AgendaShowBirthdayEvents=Afficher les dates d'anniversaire des contacts AgendaHideBirthdayEvents=Cacher les dates d'anniversaire des contacts diff --git a/htdocs/langs/fr_CA/banks.lang b/htdocs/langs/fr_CA/banks.lang index 09812367f1f..6a3fbaaa9c8 100644 --- a/htdocs/langs/fr_CA/banks.lang +++ b/htdocs/langs/fr_CA/banks.lang @@ -9,6 +9,7 @@ BankTransactionForCategory=Entrées bancaires pour la catégorie %s RemoveFromRubriqueConfirm=Êtes-vous sûr de vouloir supprimer le lien entre l'entrée et la catégorie? ListBankTransactions=Liste des entrées bancaires BankTransactions=Entrées bancaires +BankTransaction=Entrée de la banque ListTransactions=Entrées de la liste ListTransactionsByCategory=Liste des entrées / catégorie TransactionsToConciliate=Entrées à réconcilier @@ -50,3 +51,7 @@ CheckRejected=Chèque renvoyé CheckRejectedAndInvoicesReopened=Chèques retournés et factures rouvertes DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens en CEE seulement. DocumentModelBan=Modèle pour imprimer une page avec des informations BAN. +NewVariousPayment=Nouveau paiement varié +VariousPayment=Paiement varié +VariousPayments=Différents paiements +ShowVariousPayment=Afficher divers paiements diff --git a/htdocs/langs/fr_CA/bills.lang b/htdocs/langs/fr_CA/bills.lang index a26912adf0d..79d4b6f2355 100644 --- a/htdocs/langs/fr_CA/bills.lang +++ b/htdocs/langs/fr_CA/bills.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - bills BillsCustomersUnpaidForCompany=Les factures des clients non payées pour %s BillsSuppliersUnpaidForCompany=Factures fournisseurs non payées pour %s -DisabledBecauseNotErasable=Désactivé car il ne peut pas être effacé +DisabledBecauseNotErasable=Désactivé car ne peut pas être effacé InvoiceDepositDesc=Ce type de facture se fait lorsque l'acompte a été reçu. InvoiceHasAvoir=Était une source d'une ou de plusieurs notes de crédit PredefinedInvoices=Facture prédéfinie diff --git a/htdocs/langs/fr_CA/bookmarks.lang b/htdocs/langs/fr_CA/bookmarks.lang new file mode 100644 index 00000000000..d6bc510653c --- /dev/null +++ b/htdocs/langs/fr_CA/bookmarks.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - bookmarks +AddThisPageToBookmarks=Ajouter la page actuelle aux favoris +EditBookmarks=Liste / modifie les favoris +BehaviourOnClick=Comportement lorsqu'une URL de signet est sélectionnée +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choisissez si la page liée doit être ouverte dans une nouvelle fenêtre ou non diff --git a/htdocs/langs/fr_CA/boxes.lang b/htdocs/langs/fr_CA/boxes.lang index 85820c35db0..95b4ba5a5a3 100644 --- a/htdocs/langs/fr_CA/boxes.lang +++ b/htdocs/langs/fr_CA/boxes.lang @@ -1,12 +1,11 @@ # Dolibarr language file - Source file is en_US - boxes BoxLastProducts=%s derniers produits / services -BoxProductsAlertStock=Alertes stockées pour les produits +BoxProductsAlertStock=Alertes de stock pour les produits BoxLastProductsInContract=%s derniers produits / services sous contrat BoxLastSupplierBills=Dernières factures des fournisseurs BoxLastCustomerBills=Dernières factures client BoxOldestUnpaidCustomerBills=Les factures des clients non payées les plus anciennes BoxOldestUnpaidSupplierBills=Les plus anciennes factures fournisseurs non payées -BoxLastProspects=Dernières perspectives modifiées BoxLastCustomerOrders=Derniers commandes client BoxLastActions=Dernières actions BoxLastContacts=Derniers contacts / adresses @@ -20,7 +19,7 @@ BoxTitleLastModifiedCustomers=%s derniers clients modifiés BoxTitleLastCustomersOrProspects=%s derniers clients ou prospects BoxTitleLastCustomerBills=Dernières %s factures client BoxTitleLastSupplierBills=Dernières %s factures fournisseurs -BoxTitleLastModifiedProspects=%s dernières prospects modifiées +BoxTitleLastModifiedProspects=%s dernières prospects modifiés BoxTitleLastModifiedMembers=%s derniers membres BoxTitleLastFicheInter=%s dernières interventions modifiées BoxTitleCurrentAccounts=Soldes des comptes ouverts @@ -46,3 +45,4 @@ BoxTitleLastModifiedCustomerOrders=%s dernières commandes client modifiées BoxTitleLastModifiedPropals=%s dernières modifications proposées LastXMonthRolling=Le dernier roulement du mois de %s ChooseBoxToAdd=Ajouter un widget sur votre tableau de bord +BoxAdded=Le Widget a été ajouté dans votre tableau de bord diff --git a/htdocs/langs/fr_CA/categories.lang b/htdocs/langs/fr_CA/categories.lang index 97519cbf02f..f51033ab7e6 100644 --- a/htdocs/langs/fr_CA/categories.lang +++ b/htdocs/langs/fr_CA/categories.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - categories +RubriquesTransactions=Tags / Catégories de transactions MembersCategoriesArea=Espace tags/catégories de membres AccountsCategoriesArea=Étiquettes / catégories de comptes ProjectsCategoriesArea=Zone de tags / catégories de projets diff --git a/htdocs/langs/fr_CA/commercial.lang b/htdocs/langs/fr_CA/commercial.lang index c48270c9d6c..0f68fbd09db 100644 --- a/htdocs/langs/fr_CA/commercial.lang +++ b/htdocs/langs/fr_CA/commercial.lang @@ -5,6 +5,7 @@ ConfirmDeleteAction=Êtes-vous sûr de vouloir supprimer cet événement? ActionOnCompany=Société associée ActionOnContact=Contact connexe ThirdPartiesOfSaleRepresentative=Personnes tierces ayant un représentant commercial +SaleRepresentativesOfThirdParty=Représentants commerciaux de tiers LastDoneTasks=Dernières %s actions complétées LastActionsToDo=Le plus ancien %s actions non complétées ActionAC_OTH_AUTO=Événements insérés automatiquement diff --git a/htdocs/langs/fr_CA/compta.lang b/htdocs/langs/fr_CA/compta.lang index 825749e8b52..83c937e8801 100644 --- a/htdocs/langs/fr_CA/compta.lang +++ b/htdocs/langs/fr_CA/compta.lang @@ -12,7 +12,6 @@ VATPaid=TPS/TVH payée LT1PaidES=RE (TVQ) Payé LT1CustomerES=RE (TVQ) ventes VATCollected=TPS/TVH récupérée -ToPay=Saisir règlement SocialContribution=Charge sociale SocialContributions=Charges sociales SocialContributionsDeductibles=Taxes sociales ou fiscales déductibles diff --git a/htdocs/langs/fr_CA/contracts.lang b/htdocs/langs/fr_CA/contracts.lang index 7cf3e22ff17..b88b0b11aa3 100644 --- a/htdocs/langs/fr_CA/contracts.lang +++ b/htdocs/langs/fr_CA/contracts.lang @@ -60,6 +60,8 @@ ListOfServicesToExpire=Liste des services à expirer NoteListOfYourExpiredServices=Cette liste contient uniquement des services de contrats pour des tiers auxquels vous êtes lié en tant que représentant de vente. StandardContractsTemplate=Modèle de contrat standard OnlyLinesWithTypeServiceAreUsed=Seules les lignes avec le type "Service" seront clonées. +CloneContract=Contrat de clone +ConfirmCloneContract=Êtes-vous sûr de vouloir cloner le contrat %s? TypeContact_contrat_internal_SALESREPSIGN=Contrat de signature du représentant des ventes TypeContact_contrat_internal_SALESREPFOLL=Contrat de suivi du représentant des ventes TypeContact_contrat_external_BILLING=Contact client de facturation diff --git a/htdocs/langs/fr_CA/cron.lang b/htdocs/langs/fr_CA/cron.lang index ca52eea8053..874fe8a6b4b 100644 --- a/htdocs/langs/fr_CA/cron.lang +++ b/htdocs/langs/fr_CA/cron.lang @@ -35,7 +35,6 @@ CronSaveSucess=Sauvegarde réussie CronFieldMandatory=Les champs %s sont obligatoires CronErrEndDateStartDt=La date de fin ne peut pas être avant la date de début CronTaskInactive=Ce travail est désactivé -CronClassFile=Nom de fichier avec classe CronModuleHelp=Nom du répertoire du module Dolibarr (fonctionne également avec le module Dolibarr externe).
Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur du module est produit CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web).
Par exemple, appeler la méthode de récupération de Dolibarr Product object htdocs / product / class / product.class.php, la valeur du nom de fichier de classe est product / class / product.class .php CronObjectHelp=Le nom de l'objet à charger.
Pour appeler par exemple la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur du nom de fichier de classe est Produit diff --git a/htdocs/langs/fr_CA/dict.lang b/htdocs/langs/fr_CA/dict.lang new file mode 100644 index 00000000000..ff5761ddc02 --- /dev/null +++ b/htdocs/langs/fr_CA/dict.lang @@ -0,0 +1,83 @@ +# Dolibarr language file - Source file is en_US - dict +CountryBE=la Belgique +CountryGB=Grande Bretagne +CountryUS=États Unis +CountryTG=Aller +CountryCI=Côte d'Ivoiry +CountrySG=Singapour +CountryAT=L'Autriche +CountryBB=La Barbade +CountryBA=Bosnie Herzégovine +CountryBV=Île de Bouvet +CountryIO=Territoire britannique de l'océan Indien +CountryKY=Îles Caïmans +CountryCX=L'île de noël +CountryCC=Îles Cocos (Keeling) +CountryCD=Congo, République démocratique du +CountryCK=les Îles Cook +CountryEC=Équateur +CountrySV=Le Salvador +CountryGQ=Guinée Équatoriale +CountryER=Érythrée +CountryFK=les îles Falkland +CountryFO=Îles Féroé +CountryGF=Guinée Française +CountryTF=Territoires du Sud français +CountryGW=Guinée-Bissau +CountryGY=Guyane +CountryHM=Heard Island et McDonald +CountryVA=Saint-Siège (État de la Cité du Vatican) +CountryIQ=Irak +CountryKW=Koweit +CountryLR=Libéria +CountryLY=libyen +CountryMK=La Macédoine, l'ex-Yougoslave de +CountryNC=Nouvelle Calédonie +CountryNF=Île de Norfolk +CountryMP=Îles Mariannes du Nord +CountryPS=Territoire palestinien, occupé +CountryPG=Papouasie Nouvelle Guinée +CountryPN=Îles Pitcairn +CountryPM=Saint Pierre et Miquelon +CountryVC=Saint-Vincent-et-Grenadines +CountrySM=Saint Marin +CountrySC=les Seychelles +CountrySI=La Slovénie +CountrySB=Les îles Salomon +CountryGS=Géorgie du Sud et les îles Sandwich du Sud +CountrySJ=Svalbard et Jan Mayen +CountrySY=syrien +CountryTR=dinde +CountryTC=Îles Turques et Cailos +CountryUM=Îles mineures éloignées des États-Unis +CountryVG=Îles Vierges Britanniques +CountryVI=Îles Vierges américaines +CountryWF=Wallis et Futuna +CountryEH=Sahara occidental +CountryBL=Saint barthélemy +CivilityMME=Madame. +CivilityMR=M. +CivilityMLE=Mme. +CivilityMTRE=Maîtriser +CurrencySingEUR=euro +CurrencyFRF=Francs français +CurrencySingFRF=Franc français +CurrencyMUR=Ruptures de Maurice +CurrencySingMUR=Roupie Maurice +CurrencyNOK=Krones norvégiens +CurrencyTND=Darsiens tunisiens +CurrencyUSD=Dollars américains +CurrencySingUSD=Dollars américain +CurrencyCentINR=Paisa +CurrencyCentSingINR=Paise +CurrencyThousandthSingTND=millième +DemandReasonTypeSRC_INTE=l'Internet +DemandReasonTypeSRC_CAMP_MAIL=Campagne de diffusion +DemandReasonTypeSRC_CAMP_EMAIL=Campagne EMailing +DemandReasonTypeSRC_CAMP_PHO=Campagne téléphonique +DemandReasonTypeSRC_CAMP_FAX=Campagne de télécopie +DemandReasonTypeSRC_SHOP=Contact commercial +DemandReasonTypeSRC_SPONSORING=Parrainage +PaperFormatUSLETTER=Lettre de format US +PaperFormatUSLEGAL=Format juridique US +PaperFormatUSLEDGER=Format Ledger / Tabloid diff --git a/htdocs/langs/fr_CA/errors.lang b/htdocs/langs/fr_CA/errors.lang index 53013ba9bf6..6310221a578 100644 --- a/htdocs/langs/fr_CA/errors.lang +++ b/htdocs/langs/fr_CA/errors.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - errors NoErrorCommitIsDone=Aucune erreur, nous nous engageons -ErrorButCommitIsDone=Les erreurs trouvées, mais nous validons malgré cela +ErrorButCommitIsDone=Erreurs trouvées, mais nous validons malgré cela ErrorBadEMail=Le courriel %s n'est pas bon ErrorBadUrl=L'adresse Url %s n'est pas bonne ErrorBadValueForParamNotAString=Valeur incorrecte pour votre paramètre. Il ajoute généralement lorsque la traduction est manquante. diff --git a/htdocs/langs/fr_CA/externalsite.lang b/htdocs/langs/fr_CA/externalsite.lang new file mode 100644 index 00000000000..01d000d22e0 --- /dev/null +++ b/htdocs/langs/fr_CA/externalsite.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - externalsite +ExternalSiteSetup=Lien de configuration vers un site Web externe +ExternalSiteModuleNotComplete=Module ExternalSite n'a pas été configuré correctement. +ExampleMyMenuEntry=Entrée de mon menu diff --git a/htdocs/langs/fr_CA/ftp.lang b/htdocs/langs/fr_CA/ftp.lang new file mode 100644 index 00000000000..7b50188c38b --- /dev/null +++ b/htdocs/langs/fr_CA/ftp.lang @@ -0,0 +1,11 @@ +# Dolibarr language file - Source file is en_US - ftp +FTPClientSetup=Configuration du module client FTP +FTPArea=Zone FTP +FTPAreaDesc=Cet écran vous montre le contenu d'une vue du serveur FTP +SetupOfFTPClientModuleNotComplete=La configuration du module client FTP semble ne pas être complète +FailedToConnectToFTPServer=Impossible de se connecter au serveur FTP (serveur %s, port %s) +FailedToConnectToFTPServerWithCredentials=Échec de la connexion au serveur FTP avec login / mot de passe défini +FTPFailedToRemoveFile=Impossible d'enlever le fichier %s. +FTPFailedToRemoveDir=Impossible de supprimer le répertoire %s (Vérifiez les autorisations et ce répertoire est vide). +ChooseAFTPEntryIntoMenu=Choisissez une entrée FTP dans le menu ... +FailedToGetFile=Impossible d'obtenir des fichiers %s diff --git a/htdocs/langs/fr_CA/help.lang b/htdocs/langs/fr_CA/help.lang new file mode 100644 index 00000000000..99eb4ab0d71 --- /dev/null +++ b/htdocs/langs/fr_CA/help.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - help +CommunitySupport=Support du forum / Wiki +EMailSupport=Soutien des e-mails +RemoteControlSupport=Support en temps réel en ligne / à distance +OtherSupport=Autre support +ToSeeListOfAvailableRessources=Pour contacter / voir les ressources disponibles: +HelpCenter=Centre d'aide +DolibarrHelpCenter=Centre d'aide et de support Dolibarr +ToGoBackToDolibarr=Sinon, cliquez sur ici pour utiliser Dolibarr +TypeOfSupport=Source de soutien +TypeSupportCommunauty=Communauté (gratuite) +NeedHelpCenter=Besoin d'aide ou de soutien? +TypeHelpOnly=Aide seulement +TypeHelpDev=Aide + Développement +TypeHelpDevForm=Aide + Développement + Formation +ToGetHelpGoOnSparkAngels1=Certaines entreprises peuvent fournir un soutien en ligne rapide (parfois immédiat) et plus efficace en prenant le contrôle de votre ordinateur. Ces assistants peuvent être trouvés sur le site Web %s: +ToGetHelpGoOnSparkAngels3=Vous pouvez également consulter la liste de tous les entraîneurs disponibles pour Dolibarr, pour ce clic sur le bouton +ToGetHelpGoOnSparkAngels2=Parfois, il n'y a pas d'entreprise disponible au moment où vous faites votre recherche, alors pensez à changer le filtre pour rechercher "toutes les disponibilités". Vous pourrez envoyer plus de demandes. +BackToHelpCenter=Sinon, cliquez ici pour aller retour à la page d'accueil du Centre d'aide . +LinkToGoldMember=Vous pouvez appeler l'un des entraîneurs présélectionnés par Dolibarr pour votre langue (%s) en cliquant sur son Widget (l'état et le prix maximum sont automatiquement mis à jour): +PossibleLanguages=Langues prises en charge +SubscribeToFoundation=Aidez le projet Dolibarr, abonnez-vous à la fondation +SeeOfficalSupport=Pour le soutien officiel de Dolibarr dans votre langue:
%s diff --git a/htdocs/langs/fr_CA/hrm.lang b/htdocs/langs/fr_CA/hrm.lang new file mode 100644 index 00000000000..32d81a9624b --- /dev/null +++ b/htdocs/langs/fr_CA/hrm.lang @@ -0,0 +1,12 @@ +# Dolibarr language file - Source file is en_US - hrm +HRM_EMAIL_EXTERNAL_SERVICE=Email pour empêcher le service externe de GRH +Establishments=Établissements +Establishment=Établissement +ConfirmDeleteEstablishment=Êtes-vous sûr de supprimer cet établissement? +OpenEtablishment=Établissement ouvert +CloseEtablishment=Établissement proche +DictionaryDepartment=HRM - liste du département +DictionaryFunction=HRM - Liste des fonctions +Employees=Employés +Employee=Employé +NewEmployee=Nouvel employé diff --git a/htdocs/langs/fr_CA/incoterm.lang b/htdocs/langs/fr_CA/incoterm.lang new file mode 100644 index 00000000000..d982800ae3e --- /dev/null +++ b/htdocs/langs/fr_CA/incoterm.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - incoterm +Module62000Desc=Ajouter des fonctionnalités pour gérer Incoterm diff --git a/htdocs/langs/fr_CA/install.lang b/htdocs/langs/fr_CA/install.lang index cde4cbb1e6e..d3c32c49c4e 100644 --- a/htdocs/langs/fr_CA/install.lang +++ b/htdocs/langs/fr_CA/install.lang @@ -8,6 +8,7 @@ KeepDefaultValuesWamp=Comme vous utilisez l'assistant d'installation Dolibarr de KeepDefaultValuesDeb=Comme vous utilisez l'assistant d'installation Dolibarr depuis un paquet Linux ou BSD (Ubuntu, Debian, Fedora, …), les valeurs proposées aux paramètres sont déjà optimisées. Seul le mot de passe du propriétaire de la base de données à créer est à renseigner. Ne modifiez les autres informations qu'en connaissance de cause. KeepDefaultValuesMamp=Comme vous utilisez l'assistant d'installation Dolibarr depuis DoliMamp, les valeurs proposées aux paramètres sont déjà optimisées. Ne les modifiez qu'en connaissance de cause. KeepDefaultValuesProxmox=Comme vous utilisez l'assistant d'installation Dolibarr depuis une machine virtuelle Proxmox, les valeurs proposées aux paramètres sont déjà optimisées. Ne les modifiez qu'en connaissance de cause. +UpgradeExternalModule=Exécuter un processus de mise à niveau dédié des modules externes MigrationSuccessfullUpdate=Mise à niveau réussie MigrationContractsEmptyDatesUpdateSuccess=Contrat de correction de date d'emtpy effectué avec succès MigrationContractsIncoherentCreationDateUpdateSuccess=Correction mauvaise valeur de la date de création du contrat effectuée avec succès diff --git a/htdocs/langs/fr_CA/languages.lang b/htdocs/langs/fr_CA/languages.lang new file mode 100644 index 00000000000..3b014556d8d --- /dev/null +++ b/htdocs/langs/fr_CA/languages.lang @@ -0,0 +1,51 @@ +# Dolibarr language file - Source file is en_US - languages +Language_ar_AR=arabe +Language_ar_SA=arabe +Language_bn_BD=bengali +Language_bg_BG=bulgare +Language_ca_ES=catalan +Language_cs_CZ=tchèque +Language_da_DA=danois +Language_da_DK=danois +Language_de_DE=allemand +Language_el_GR=grec +Language_en_GB=Royaume Uni (Anglais) +Language_en_NZ=Anglais (Nouvelle-Zélande) +Language_en_US=États Unis (Anglais) +Language_es_CL=Espagnol (chili) +Language_es_EC=Espagnol (équateur) +Language_es_PE=Espagnol (Pérou) +Language_es_PR=Espagnol (Porto Rico) +Language_et_EE=estonien +Language_eu_ES=basque +Language_fa_IR=persan +Language_fi_FI=finlandais +Language_fr_FR=français +Language_fr_NC=Français (Nouvelle-Calédonie) +Language_fy_NL=frison +Language_he_IL=hébreu +Language_hr_HR=croate +Language_hu_HU=hongrois +Language_id_ID=indonésien +Language_is_IS=islandais +Language_it_IT=italien +Language_ka_GE=géorgien +Language_ko_KR=coréen +Language_lt_LT=lituanien +Language_lv_LV=letton +Language_mn_MN=mongol +Language_nb_NO=Norvégien (Bokmål) +Language_pl_PL=polonais +Language_ro_RO=roumain +Language_ru_RU=russe +Language_tr_TR=turc +Language_sl_SI=slovène +Language_sv_SV=suédois +Language_sv_SE=suédois +Language_sq_AL=albanais +Language_sr_RS=serbe +Language_th_TH=thaïlandais +Language_uk_UA=ukrainien +Language_vi_VN=vietnamien +Language_zh_CN=chinois +Language_zh_TW=Chinois (traditionnel) diff --git a/htdocs/langs/fr_CA/link.lang b/htdocs/langs/fr_CA/link.lang new file mode 100644 index 00000000000..8acd890c9a0 --- /dev/null +++ b/htdocs/langs/fr_CA/link.lang @@ -0,0 +1,6 @@ +# Dolibarr language file - Source file is en_US - link +LinkANewFile=Relier un nouveau fichier / document +NoLinkFound=Pas de liens enregistrés +LinkComplete=Le fichier a été lié avec succès +ErrorFailedToDeleteLink=Impossible d'enlever le lien '%s' +ErrorFailedToUpdateLink=Impossible de mettre à jour le lien '%s' diff --git a/htdocs/langs/fr_CA/loan.lang b/htdocs/langs/fr_CA/loan.lang new file mode 100644 index 00000000000..6d1ecb50f4a --- /dev/null +++ b/htdocs/langs/fr_CA/loan.lang @@ -0,0 +1,41 @@ +# Dolibarr language file - Source file is en_US - loan +Loans=Prêts +NewLoan=Nouveau prêt +ShowLoan=Afficher le prêt +PaymentLoan=Paiement de prêt +LoanPayment=Paiement de prêt +ShowLoanPayment=Afficher le paiement du prêt +LoanAccountancyCapitalCode=Capital comptable comptable +LoanAccountancyInsuranceCode=Assurance comptable comptable +LoanAccountancyInterestCode=Intérêt du compte comptable +ConfirmDeleteLoan=Confirmer la suppression de ce prêt +LoanDeleted=Prêt supprimé avec succès +ConfirmPayLoan=Confirmer classer payé ce prêt +LoanPaid=Prêt payé +LoanCalc=Calculatrice de prêts bancaires +PurchaseFinanceInfo=Informations sur l'achat et le financement +SalePriceOfAsset=Prix ​​de vente de l'actif +PercentageDown=Pourcentage en baisse +AnnualInterestRate=Taux d'intérêt annuel +ExplainCalculations=Expliquer les calculs +ShowMeCalculationsAndAmortization=Montrez-moi les calculs et l'amortissement +MortgagePaymentInformation=Information sur le paiement hypothécaire +DownPaymentDesc=Le paiement = Le prix de la maison multiplié par le pourcentage réduit divisé par 100 (pour 5% inférieur devient 5/100 ou 0.05) +InterestRateDesc=Le taux d'intérêt = Le pourcentage d'intérêt annuel divisé par 100 +MonthlyFactorDesc= facteur mensuel = Le résultat de la formule suivante +MonthlyInterestRateDesc=Le taux d'intérêt mensuel = Le taux d'intérêt annuel divisé par 12 (pour les 12 mois par an) +MonthTermDesc=Le terme mois du prêt en mois = Le nombre d'années où vous avez pris le prêt pour les périodes 12 +MonthlyPaymentDesc=Le paiement mensuel est calculé en utilisant la formule suivante +AmortizationPaymentDesc=La amortissement décompose la quantité de votre paiement mensuel vers l'intérêt de la banque, et combien coûte le remboursement du capital de votre prêt. +AmountFinanced=Montant Financé +AmortizationMonthlyPaymentOverYears=Amortissement pour paiement mensuel: %s sur %s années +Totalsforyear=Totaux pour l'année +LoanCalcDesc=Ce calculateur d'hypothèque peut être utilisé pour calculer les paiements mensuels d'un prêt, en fonction du montant emprunté, de la durée du prêt souhaité et du taux d'intérêt.
Ce calculateur comprend également PMI (Private Mortgage Assurance) pour les prêts dont moins de 20%% est mis en paiement. Les taxes sur la propriété de la ville et leurs effets sur le paiement mensuel total de l'hypothèque sont également pris en considération. +GoToInterest=%s ira vers INTÉRÊT +GoToPrincipal=%s ira vers PRINCIPAL +YouWillSpend=Vous passerez %s en année %s +AddLoan=Créer un prêt +ConfigLoan=Configuration du prêt du module +LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Capital de comptabilité par défaut +LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compter les intérêts du compte par défaut +LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Assurance compte comptable par défaut diff --git a/htdocs/langs/fr_CA/mailmanspip.lang b/htdocs/langs/fr_CA/mailmanspip.lang new file mode 100644 index 00000000000..33a56fac7c1 --- /dev/null +++ b/htdocs/langs/fr_CA/mailmanspip.lang @@ -0,0 +1,23 @@ +# Dolibarr language file - Source file is en_US - mailmanspip +MailmanTitle=Système de liste de diffusion de Mailman +TestSubscribe=Pour tester l'abonnement aux listes de Mailman +TestUnSubscribe=Pour tester la désabonnement des listes de Mailman +MailmanCreationSuccess=Le test d'abonnement a été exécuté avec succès +MailmanDeletionSuccess=Le test de désinscription a été exécuté avec succès +SynchroMailManEnabled=Une mise à jour Mailman sera effectuée +SynchroSpipEnabled=Une mise à jour Spip sera effectuée +DescADHERENT_MAILMAN_URL=URL pour les abonnements Mailman +DescADHERENT_MAILMAN_UNSUB_URL=URL pour les désinscriptions de Mailman +DescADHERENT_MAILMAN_LISTS=Liste (s) pour inscription automatique de nouveaux membres (séparés par une virgule) +SPIPTitle=Système de gestion de contenu SPIP +DescADHERENT_SPIP_DB=Nom de la base de données SPIP +DescADHERENT_SPIP_USER=Connexion à la base de données SPIP +DescADHERENT_SPIP_PASS=Mot de passe de la base de données SPIP +AddIntoSpipConfirmation=Êtes-vous sûr de vouloir ajouter ce membre dans SPIP? +AddIntoSpipError=Impossible d'ajouter l'utilisateur dans SPIP +DeleteIntoSpip=Supprimer de SPIP +DeleteIntoSpipConfirmation=Êtes-vous sûr de vouloir supprimer ce membre de SPIP? +DeleteIntoSpipError=Impossible de supprimer l'utilisateur de SPIP +SPIPConnectionFailed=Impossible de se connecter à SPIP +SuccessToAddToMailmanList=%s ajouté avec succès à la liste mailman %s ou à la base de données SPIP +SuccessToRemoveToMailmanList=%s supprimé avec succès de la liste mailman %s ou de la base de données SPIP diff --git a/htdocs/langs/fr_CA/mails.lang b/htdocs/langs/fr_CA/mails.lang index b17db32f75b..c5c822eed99 100644 --- a/htdocs/langs/fr_CA/mails.lang +++ b/htdocs/langs/fr_CA/mails.lang @@ -62,6 +62,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact avec les filtres clients MailingModuleDescContactsByCompanyCategory=Contacts par catégorie de tiers MailingModuleDescContactsByCategory=Contacts par catégories MailingModuleDescContactsByFunction=Contacts par poste +MailingModuleDescEmailsFromFile=Emails du fichier +MailingModuleDescEmailsFromUser=E-mail par utilisateur +MailingModuleDescDolibarrUsers=Utilisateurs avec e-mails +MailingModuleDescThirdPartiesByCategories=Les tiers (par catégories) LineInFile=Ligne %s dans le fichier RecipientSelectionModules=Demandes définies pour la sélection du destinataire MailSelectedRecipients=Récipiendaires sélectionnés diff --git a/htdocs/langs/fr_CA/main.lang b/htdocs/langs/fr_CA/main.lang index 15a815ae518..2374a56b0c6 100644 --- a/htdocs/langs/fr_CA/main.lang +++ b/htdocs/langs/fr_CA/main.lang @@ -54,9 +54,9 @@ DateEnd=Date de fin DateCreationShort=Création. rendez-vous amoureux DateLastModification=Dernière date de modification UserCreation=Utilisateur de la création -UserModification=Modification utilisateur -UserCreationShort=Création. utilisateur -UserModificationShort=Modif. utilisateur +UserModification=Utilisateur de modification +UserCreationShort=Util. création +UserModificationShort=Util. modification CurrencyRate=Taux de conversion monétaire UseLocalTax=Inclure taxe DefaultValues=Les valeurs par défaut @@ -72,7 +72,6 @@ AmountTTC=Montant (tx incl.) AmountVAT=Montant TPS/TVH MulticurrencyAlreadyPaid=Déjà payé, monnaie d'origine MulticurrencyRemainderToPay=Reste à payer, monnaie d'origine -MulticurrencyPaymentAmount=Montant du paiement, monnaie d'origine MulticurrencyAmountHT=Montant (net d'impôt), monnaie d'origine MulticurrencyAmountTTC=Montant (hors taxe), monnaie d'origine MulticurrencyAmountVAT=Montant de l'impôt, monnaie d'origine @@ -110,23 +109,16 @@ SendAcknowledgementByMail=Envoyer un email de confirmation EMail=Courriel ValueIsNotValid=La valeur n'est pas valide RecordsModified=%s enregistrement modifié -RecordsDeleted=%s enregistrement supprimé +RecordsDeleted=%s enregistrement(s) supprimé(s) CompleteOrNoMoreReceptionExpected=Complète ou rien de plus attendu YouCanChangeValuesForThisListFromDictionarySetup=Vous pouvez modifier les valeurs de cette liste dans le menu Configuration - Dictionnaires YouCanChangeValuesForThisListFrom=Vous pouvez modifier les valeurs de cette liste dans le menu %s YouCanSetDefaultValueInModuleSetup=Vous pouvez configurer la valeur par défaut utilisée lors de la création d'un nouvel enregistrement dans la configuration du module Layout=Disposition Screen=Écran -DocumentModelStandardPDF=Modèle PDF standard CoreErrorMessage=Désolé, une erreur s'est produite. Contactez votre administrateur système pour vérifier les journaux ou désactiver $ dolibarr_main_prod = 1 pour obtenir plus d'informations. -LinkTo=Lié à -LinkToProposal=Lien vers la proposition -LinkToInvoice=Lien vers la facture -LinkToSupplierOrder=Lien vers l'ordre du fournisseur -LinkToSupplierProposal=Lien vers la proposition du fournisseur -LinkToSupplierInvoice=Lien vers la facture du fournisseur -LinkToContract=Lien vers le contrat -LinkToIntervention=Lien vers l'intervention +LinkToProposal=Lier à une proposition +LinkToSupplierProposal=Lier à une proposition fournisseur SelectAction=Sélectionnez l'action SelectTargetUser=Sélectionnez l'utilisateur / employé cible SelectElementAndClick=Sélectionnez un élément et cliquez sur %s @@ -155,7 +147,6 @@ BulkActions=Actions en vrac ClickToShowHelp=Cliquez pour afficher l'aide sur les outils HR=HEURE HRAndBank=RH et Banque -AutomaticallyCalculated=Calculé automatiquement TitleSetToDraft=Retourner au brouillon ConfirmSetToDraft=Êtes-vous sûr de vouloir revenir à l'état du projet? SelectMailModel=Choisir modèle de courriel diff --git a/htdocs/langs/fr_CA/members.lang b/htdocs/langs/fr_CA/members.lang index c6578f71b34..675305b46f5 100644 --- a/htdocs/langs/fr_CA/members.lang +++ b/htdocs/langs/fr_CA/members.lang @@ -41,6 +41,7 @@ MemberType=Type de membre MemberTypeId=Id. De type membre MemberTypeLabel=Étiquette de type membre MembersTypes=Types de membres +MemberStatusDraftShort=Brouillon MemberStatusActive=Validé (en attente d'abonnement) MemberStatusActiveShort=Validée MemberStatusActiveLate=L'abonnement est expiré @@ -81,6 +82,7 @@ FollowingLinksArePublic=Les liens suivants sont des pages ouvertes non protégé BlankSubscriptionForm=Formulaire d'auto-abonnement public BlankSubscriptionFormDesc=Dolibarr peut vous fournir une URL publique permettant aux visiteurs externes de demander de s'abonner à la fondation. Si un module de paiement en ligne est activé, un formulaire de paiement sera automatiquement fourni. EnablePublicSubscriptionForm=Activer le formulaire d'auto-abonnement public +ForceMemberType=Forcer le type de membre ExportDataset_member_1=Membres et abonnements ImportDataset_member_1=Membres LastMembersModified=Derniers membres modifiés %s @@ -133,6 +135,7 @@ MembersByStateDesc=Cet écran vous montre des statistiques sur les membres par MembersByTownDesc=Cet écran vous montre des statistiques sur les membres par ville. MembersStatisticsDesc=Choisissez les statistiques que vous souhaitez lire ... LastMemberDate=Dernière date de membre +LatestSubscriptionDate=La dernière date d'abonnement Nature=La nature Public=L'information est publique NewMemberbyWeb=Nouveau membre ajouté. En attente d'approbation diff --git a/htdocs/langs/fr_CA/modulebuilder.lang b/htdocs/langs/fr_CA/modulebuilder.lang new file mode 100644 index 00000000000..9914ef82026 --- /dev/null +++ b/htdocs/langs/fr_CA/modulebuilder.lang @@ -0,0 +1,9 @@ +# Dolibarr language file - Source file is en_US - modulebuilder +ModuleBuilderDesc3=Des modules générés / modifiables ont été trouvés: %s (ils sont détectés comme modifiables lorsque le fichier %s existe dans le répertoire racine du module). +ModuleBuilderDescmenus=Cet onglet est dédié à définir les entrées de menu fournies par votre module. +ModuleBuilderDescpermissions=Cet onglet est dédié à définir les nouvelles autorisations que vous souhaitez fournir à votre module. +ModuleBuilderDeschooks=Cet onglet est dédié aux crochets. +ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion / création de widgets. +DangerZone=Zone dangereuse +ModuleIsLive=Ce module a été activé. Toute modification peut briser une caractéristique active actuelle. +DescriptionLong=Longue description diff --git a/htdocs/langs/fr_CA/multicurrency.lang b/htdocs/langs/fr_CA/multicurrency.lang new file mode 100644 index 00000000000..6082b9b76bb --- /dev/null +++ b/htdocs/langs/fr_CA/multicurrency.lang @@ -0,0 +1,13 @@ +# Dolibarr language file - Source file is en_US - multicurrency +ErrorAddRateFail=Erreur dans le taux ajouté +ErrorAddCurrencyFail=Erreur dans la monnaie ajoutée +ErrorDeleteCurrencyFail=Erreur de suppression d'échec +multicurrency_syncronize_error=Erreur de synchronisation: %s +multicurrency_useOriginTx=Lorsqu'un objet est créé à partir d'un autre, gardez le taux d'origine de l'objet source (sinon utilisez le nouveau taux connu) +CurrencyLayerAccount_help_to_synchronize=Vous devriez créer un compte sur leur site Web pour utiliser cette fonctionnalité
Obtenez votre clé API
Si vous utilisez un compte gratuit, vous ne pouvez pas modifier la source de devises(USD par défaut)
Mais si votre devise principale n'est pas USD, vous pouvez utiliser la source de devise alternative pour vous forcer la monnaie principale

Vous êtes limité À 1000 synchronisations par mois +multicurrency_appCurrencySource=Source de devises +multicurrency_alternateCurrencySource=Autre devise souce +CurrenciesUsed_help_to_add=Ajoutez les différentes devises et taux que vous devez utiliser sur propositions, commandes , etc. +MulticurrencyReceived=Reçu, monnaie d'origine +MulticurrencyRemainderToTake=Monnaie restante, monnaie d'origine +MulticurrencyPaymentAmount=Montant du paiement, monnaie d'origine diff --git a/htdocs/langs/fr_CA/other.lang b/htdocs/langs/fr_CA/other.lang index 48069cec6b2..ad976956a79 100644 --- a/htdocs/langs/fr_CA/other.lang +++ b/htdocs/langs/fr_CA/other.lang @@ -4,17 +4,11 @@ ToolsDesc=Tous les outils divers non inclus dans les autres entrées de menu son BirthdayDate=Date d'anniversaire BirthdayAlertOn=Alerte d'anniversaire active BirthdayAlertOff=Alerte d'anniversaire inactive -TransKey=Traduction de la clé TransKey -MonthOfInvoice=Mois (numéro 1-12) de la date de facturation -TextMonthOfInvoice=Mois (tex) de la date de facturation PreviousMonthOfInvoice=Mois précédent (numéro 1-12) de la date de facturation -TextPreviousMonthOfInvoice=Mois précédent (texte) de la date de facturation NextMonthOfInvoice=Le mois suivant (numéro 1-12) de la date de facturation TextNextMonthOfInvoice=Le mois suivant (texte) de la date de facturation ZipFileGeneratedInto=Fichier Zip généré dans %s. -YearOfInvoice=Année de la date de facturation PreviousYearOfInvoice=Année de facture précédente -NextYearOfInvoice=Année suivante de la date de facturation Notify_FICHINTER_ADD_CONTACT=Ajout de contact à Intervention Notify_FICHINTER_VALIDATE=Intervention validée Notify_FICHINTER_SENTBYMAIL=Intervention envoyée par courrier @@ -65,7 +59,6 @@ PredefinedMailContentSendSupplierOrder=__CONTACTCIVNAME__\n\nVous trouverez ici PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVous trouverez ici la facture __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVous trouverez ici la livraison __SHIPPINGREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVous trouverez ici l'intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ -PredefinedMailContentUser=Aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr est un ERP / CRM compact prenant en charge plusieurs modules métier. Une démonstration montrant tous les modules n'a aucun sens car ce scénario ne se produit jamais (plusieurs centaines disponibles). Ainsi, plusieurs profils de démonstration sont disponibles. ChooseYourDemoProfil=Choisissez le profil de démonstration qui correspond le mieux à vos besoins ... ChooseYourDemoProfilMore=... ou créez votre propre profil
(sélection du module manuel) diff --git a/htdocs/langs/fr_CA/paypal.lang b/htdocs/langs/fr_CA/paypal.lang new file mode 100644 index 00000000000..35b48670b28 --- /dev/null +++ b/htdocs/langs/fr_CA/paypal.lang @@ -0,0 +1,26 @@ +# Dolibarr language file - Source file is en_US - paypal +PaypalSetup=Configuration du module PayPal +PaypalDesc=Ce module offre des pages pour permettre le paiement sur PayPal par les clients. Cela peut être utilisé pour un paiement gratuit ou pour un paiement sur un objet Dolibarr particulier (facture, commande, ...) +PaypalOrCBDoPayment=Payer avec carte de crédit ou Paypal +PaypalDoPayment=Payer avec PayPal +PAYPAL_API_SANDBOX=Mode test / sandbox +PAYPAL_API_USER=Nom d'utilisateur de l'API +PAYPAL_API_PASSWORD=Mot de passe de l'API +PAYPAL_API_SIGNATURE=Signature de l'API +PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offre de paiement "intégral" (carte de crédit + Paypal) ou "Paypal" seulement +PaypalModeOnlyPaypal=PayPal uniquement +PAYPAL_CSS_URL=URL optionnelle de la feuille de style CSS sur la page de paiement +ThisIsTransactionId=Ceci est un identifiant de transaction: %s +PAYPAL_ADD_PAYMENT_URL=Ajoutez l'URL du paiement Paypal lorsque vous envoyez un document par mail +PredefinedMailContentLink=Vous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement (PayPal) si ce n'est pas déjà fait.\n\n%s\n\n +YouAreCurrentlyInSandboxMode=Vous êtes actuellement en mode "sandbox" +NewOnlinePaymentFailed=Nouveau paiement en ligne essayé mais échoué +PAYPAL_PAYONLINE_SENDEMAIL=EMail à avertir après un paiement (succès ou non) +ReturnURLAfterPayment=Retourner l'URL après le paiement +ValidationOfOnlinePaymentFailed=La validation du paiement en ligne a échoué +PaymentSystemConfirmPaymentPageWasCalledButFailed=La page de confirmation de paiement a été appelée par système de paiement renvoyé une erreur +SetExpressCheckoutAPICallFailed=L'appel de l'API SetExpressCheckout a échoué. +DoExpressCheckoutPaymentAPICallFailed=L'appel de l'API DoExpressCheckoutPayment a échoué. +ErrorCode=Code d'erreur +ErrorSeverityCode=Code de gravité des erreurs +PaypalLiveEnabled=Paypal activé en direct (autrement, mode test / sandbox) diff --git a/htdocs/langs/fr_CA/productbatch.lang b/htdocs/langs/fr_CA/productbatch.lang new file mode 100644 index 00000000000..1ea705a4abf --- /dev/null +++ b/htdocs/langs/fr_CA/productbatch.lang @@ -0,0 +1,19 @@ +# Dolibarr language file - Source file is en_US - productbatch +ManageLotSerial=Utilisation du lot / numéro de série +ProductStatusOnBatch=Oui (lot / série requise) +ProductStatusNotOnBatch=Non (lot / série non utilisé) +Batch=Lot / série +atleast1batchfield=Date de livraison ou date de vente ou Lot / Numéro de série +batch_number=Lot / numéro de série +BatchNumberShort=Lot / série +SellByDate=La date de péremption +DetailBatchNumber=Détails du lot / série +DetailBatchFormat=Lot / série: %s - Mangez par: %s - Vendre par: %s (Qté: %d) +printBatch=Lot / série: %s +printSellby=Vendre par: %s +AddDispatchBatchLine=Ajouter une ligne pour l'expédition de la durée de conservation +WhenProductBatchModuleOnOptionAreForced=Lorsque le module Lot / Serial est activé, le mode de mise à l'arrêt / diminution automatique est obligé de valider l'expédition et d'envoyer manuellement pour la réception et ne peut pas être modifié. D'autres options peuvent être définies comme vous le souhaitez. +ProductDoesNotUseBatchSerial=Ce produit n'utilise pas de lot / numéro de série +ProductLotSetup=Configuration du module lot / série +ShowCurrentStockOfLot=Afficher le stock actuel pour un produit / lot partiel +ShowLogOfMovementIfLot=Afficher le journal des mouvements pour deux produits / lot diff --git a/htdocs/langs/fr_CA/products.lang b/htdocs/langs/fr_CA/products.lang index ca4acd5f682..7f79a4edc76 100644 --- a/htdocs/langs/fr_CA/products.lang +++ b/htdocs/langs/fr_CA/products.lang @@ -15,8 +15,10 @@ ProductAccountancySellCode=Code de comptabilité (vente) ProductOrService=Produit et service ProductsAndServices=Produits et services ProductsOrServices=Produits ou services -ProductsNotOnSell=Produit non destiné à la vente et non à l'achat +ProductsOnSaleOnly=Produits à vendre seulement ProductsOnSellAndOnBuy=Produits à vendre et à acheter +ServicesOnSaleOnly=Services à vendre uniquement +ServicesOnPurchaseOnly=Services à l'achat uniquement ServicesNotOnSell=Services à vendre et non à l'achat ServicesOnSellAndOnBuy=Services à vendre et à vendre LastModifiedProductsAndServices=Derniers %s produits / services modifiés @@ -123,6 +125,7 @@ m=M lm=Lm m2=M² m3=M³ +unitSET=Ensemble ProductCodeModel=Modèle de ref. Produit ServiceCodeModel=Modèle de réparation de service CurrentProductPrice=Prix ​​actuel @@ -134,6 +137,7 @@ MultipriceRules=Règles du segment des prix UseMultipriceRules=Utiliser les règles de segment de prix (définies dans la configuration du module de produit) pour calculer automatiquement les prix de tous les autres segments selon le premier segment PercentVariationOver=%% variation par rapport à %s PercentDiscountOver=%% discount sur %s +KeepEmptyForAutoCalculation=Restez vide pour que ceci soit calculé automatiquement à partir du poids ou du volume de produits Build=Produire ProductsMultiPrice=Produits et prix pour chaque segment de prix ProductsOrServiceMultiPrice=Prix ​​clients (de produits ou de services, multi-prix) @@ -177,7 +181,6 @@ ComposedProduct=Sous-produit MinSupplierPrice=Prix ​​minimum fournisseur MinCustomerPrice=Prix ​​minimum du client DynamicPriceConfiguration=Configuration de prix dynamique -DynamicPriceDesc=Sur la carte produit, avec ce module activé, vous pouvez définir des fonctions mathématiques pour calculer les prix Client ou Fournisseur. Une telle fonction peut utiliser tous les opérateurs mathématiques, certaines constantes et variables. Vous pouvez définir ici les variables que vous voulez et si la variable nécessite une mise à jour automatique, l'URL externe à utiliser pour demander à Dolibarr de mettre à jour automatiquement la valeur. AddVariable=Ajouter une variable AddUpdater=Ajouter une mise à jour GlobalVariableUpdaters=Mises à jour variables globales @@ -192,14 +195,18 @@ ProductWeight=Poids pour 1 produit ProductVolume=Volume pour 1 produit DeleteProductBuyPrice=Supprimer le prix d'achat ConfirmDeleteProductBuyPrice=Êtes-vous sûr de vouloir supprimer ce prix d'achat? +ServiceSheet=Feuille de service ProductAttributeName=Attribut Variant %s ProductAttributeDeleteDialog=Êtes-vous sûr de vouloir supprimer cet attribut? Toutes les valeurs seront supprimées ProductAttributeValueDeleteDialog=Êtes-vous sûr de vouloir supprimer la valeur "%s" avec la référence "%s" de cet attribut? ProductCombinationDeleteDialog=Êtes-vous sûr de vouloir supprimer la variante du produit "%s"? ProductCombinationAlreadyUsed=Une erreur s'est produite lors de la suppression de la variante. Vérifiez qu'il ne soit utilisé dans aucun objet +PropagateVariant=Propager des variantes HideProductCombinations=Masquer la variante des produits dans le sélecteur de produits ProductCombination=Une variante EditProductCombination=Modification de la variante +EditProductCombinations=Modification des variantes +SelectCombination=Sélectionner la combinaison Features=Caractéristiques PriceImpact=Impact des prix NewProductAttributeValue=Nouvelle valeur d'attribut diff --git a/htdocs/langs/fr_CA/propal.lang b/htdocs/langs/fr_CA/propal.lang index fc289fe178d..85be96949d3 100644 --- a/htdocs/langs/fr_CA/propal.lang +++ b/htdocs/langs/fr_CA/propal.lang @@ -12,6 +12,7 @@ SearchAProposal=Rechercher une proposition NoProposal=Pas de propositions ProposalsStatistics=Statistiques de la proposition commerciale AmountOfProposalsByMonthHT=Montant par mois (net d'impôt) +PropalsOpened=Ouverte PropalStatusValidated=Validé (la proposition est ouverte) PropalStatusNotSigned=Non signée (close) PropalsToClose=Propositions commerciales à clôturer diff --git a/htdocs/langs/fr_CA/receiptprinter.lang b/htdocs/langs/fr_CA/receiptprinter.lang new file mode 100644 index 00000000000..0498a04f26f --- /dev/null +++ b/htdocs/langs/fr_CA/receiptprinter.lang @@ -0,0 +1,34 @@ +# Dolibarr language file - Source file is en_US - receiptprinter +ReceiptPrinterSetup=Installation du module ReceiptPrinter +PrinterAdded=L'imprimante %s a ajouté +PrinterUpdated=Imprimante %s mise à jour +PrinterDeleted=Imprimante %s supprimé +ReceiptPrinter=Imprimantes de réception +ReceiptPrinterDesc=Configuration des imprimantes de réception +ReceiptPrinterTemplateDesc=Configuration des modèles +ReceiptPrinterTypeDesc=Description du type d'imprimante de réception +ReceiptPrinterProfileDesc=Description du profil de l'imprimante de réception +SetupReceiptTemplate=Configuration du modèle +CONNECTOR_DUMMY=Imprimante fictive +CONNECTOR_WINDOWS_PRINT=Imprimante Windows locale +CONNECTOR_DUMMY_HELP=Imprimante fausse pour le test, ne fait rien +CONNECTOR_NETWORK_PRINT_HELP=10.x.x.x: 9100 +CONNECTOR_FILE_PRINT_HELP=/ Dev / usb / lp0, / dev / usb / lp1 +PROFILE_DEFAULT=Profil par défaut +PROFILE_SIMPLE=Profil simple +PROFILE_DEFAULT_HELP=Profil par défaut adapté aux imprimantes Epson +PROFILE_SIMPLE_HELP=Profil simple Pas de graphiques +PROFILE_EPOSTEP_HELP=Epos Tep Profile Aide +DOL_ALIGN_LEFT=Aligner le texte à gauche +DOL_ALIGN_CENTER=Texte du centre +DOL_ALIGN_RIGHT=Harmoniser le texte +DOL_USE_FONT_A=Utiliser la police A de l'imprimante +DOL_USE_FONT_B=Utiliser la police B de l'imprimante +DOL_USE_FONT_C=Utiliser la police C de l'imprimante +DOL_PRINT_BARCODE=Imprimer le code à barres +DOL_PRINT_BARCODE_CUSTOMER_ID=Imprime l'identifiant client du code à barres +DOL_CUT_PAPER_FULL=Couper le ticket complètement +DOL_CUT_PAPER_PARTIAL=Couper le ticket en partie +DOL_OPEN_DRAWER=Caj +DOL_ACTIVATE_BUZZER=Activer le sonnerie +DOL_PRINT_QRCODE=Code QR d'impression diff --git a/htdocs/langs/fr_CA/resource.lang b/htdocs/langs/fr_CA/resource.lang index 4d569759717..d61453effb4 100644 --- a/htdocs/langs/fr_CA/resource.lang +++ b/htdocs/langs/fr_CA/resource.lang @@ -15,3 +15,4 @@ ResourceLinkedWithSuccess=Ressources liées à la réussite ConfirmDeleteResource=Confirmer pour supprimer cette ressource DictionaryResourceType=Types de ressources SelectResource=Sélectionnez la ressource +IdResource=Ressource Id diff --git a/htdocs/langs/fr_CA/salaries.lang b/htdocs/langs/fr_CA/salaries.lang index effce5cd68f..95fb5badeab 100644 --- a/htdocs/langs/fr_CA/salaries.lang +++ b/htdocs/langs/fr_CA/salaries.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable par défaut pour les paiements de salaire SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les dépenses de personnel Salary=Salaires NewSalaryPayment=Nouveau paiement de salaire @@ -8,6 +7,5 @@ SalariesPayments=Paiements salaires ShowSalaryPayment=Afficher paiement de salaires THM=Taux horaire moyen TJM=Taux journalier moyen -CurrentSalary=Salaire actuel THMDescription=Cette valeur peut être utilisée pour calculer le coût du temps consommé sur un projet entré par les utilisateurs si le projet de module est utilisé TJMDescription=Cette valeur est actuellement à titre d'information seulement et ne sert pas à tout calcul diff --git a/htdocs/langs/fr_CA/stocks.lang b/htdocs/langs/fr_CA/stocks.lang index 9fe13bc4cb2..e09f4791145 100644 --- a/htdocs/langs/fr_CA/stocks.lang +++ b/htdocs/langs/fr_CA/stocks.lang @@ -47,7 +47,10 @@ NoPredefinedProductToDispatch=Aucun produit prédéfini pour cet objet. Donc, au DispatchVerb=Envoi StockLimitShort=Limite d'alerte StockLimit=Limite de stock pour l'alerte +RealStockDesc=Le stock physique ou réel est le stock que vous avez actuellement dans vos entrepôts / emplacements internes. +RealStockWillAutomaticallyWhen=Le stock réel changera automatiquement en fonction de ces règles (voir la configuration du module stock pour le modifier): VirtualStock=Stock virtuel +VirtualStockDesc=Le stock virtuel est le stock que vous obtiendrez une fois que toutes les actions ouvertes pendantes qui affectent les stocks seront fermées (commande fournisseur reçue, commande client expédiée, ...) IdWarehouse=Id entrepôt LieuWareHouse=Entrepôt de localisation WarehousesAndProductsBatchDetail=Entrepôts et produits (avec détail par lot / série) @@ -107,3 +110,29 @@ ProductStockWarehouseUpdated=La limite de stock pour l'alerte et le stock optima ProductStockWarehouseDeleted=La limite de stock pour l'alerte et le stock optimal souhaité sont correctement supprimés AddNewProductStockWarehouse=Définir une nouvelle limite pour l'alerte et le stock optimal souhaité AddStockLocationLine=Diminuez la quantité, puis cliquez pour ajouter un autre entrepôt pour ce produit +inventorySetup =Configuration de l'inventaire +inventoryReadPermission=Voir les stocks +inventoryWritePermission=Mise à jour des inventaires +inventoryListTitle=Stocks +inventoryCreateDelete=Créer / Supprimer l'inventaire +inventoryEdit=Éditer +inventoryValidate=Validée +inventoryDraft=Fonctionnement +inventorySelectWarehouse=Choix d'entrepôt +inventoryOfWarehouse=Inventaire pour entrepôt: %s +inventoryErrorQtyAdd=Erreur: une quantité est inférieure à zéro +SelectCategory=Filtre de catégorie +INVENTORY_DISABLE_VIRTUAL=Permettre au produit non déstocké d'un produit d'un kit d'inventaire +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utilisez le prix d'achat si aucun dernier prix d'achat ne peut être trouvé +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock fluctuation date de l'inventaire +inventoryChangePMPPermission=Autoriser à modifier la valeur PMP pour un produit +OnlyProdsInStock=Ne pas ajouter de produit sans stock +LastPA=Dernière BP +RealQty=Qté réelle +RegulatedQty=Qté réglementée +FlushInventory=Flush inventaire +ConfirmFlushInventory=Confirmez-vous cette action? +InventoryFlushed=Inventaire rincé +ExitEditMode=Édition de sortie +inventoryDeleteLine=Suppression de ligne +RegulateStock=Réglez Stock diff --git a/htdocs/langs/fr_CA/stripe.lang b/htdocs/langs/fr_CA/stripe.lang new file mode 100644 index 00000000000..21451a5a44e --- /dev/null +++ b/htdocs/langs/fr_CA/stripe.lang @@ -0,0 +1,15 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Configuration du module Stripe +StripeDesc=Ce module offre des pages pour permettre le paiement sur Stripe par les clients. Cela peut être utilisé pour un paiement gratuit ou pour un paiement sur un objet Dolibarr particulier (facture, commande, ...) +StripeOrCBDoPayment=Payer avec carte de crédit ou Stripe +STRIPE_PAYONLINE_SENDEMAIL=EMail à avertir après un paiement (succès ou non) +StripeDoPayment=Aller au paiement +YouWillBeRedirectedOnStripe=Vous serez redirigé sur la page Stripe sécurisée pour vous fournir des informations sur votre carte de crédit +SetupStripeToHavePaymentCreatedAutomatically=Configurez votre Stripe avec url %s pour que le paiement soit créé automatiquement lorsqu'il est validé par Stripe. +STRIPE_CGI_URL_V2=Url of Stripe CGI module de paiement +NewStripePaymentFailed=Le paiement New Stripe a essayé mais échoué +STRIPE_TEST_SECRET_KEY=Clé de test secrète +STRIPE_TEST_PUBLISHABLE_KEY=Clé de test publiable +STRIPE_LIVE_SECRET_KEY=Touche en direct secrète +STRIPE_LIVE_PUBLISHABLE_KEY=Touche dynamique publiable +StripeLiveEnabled=Stripe en direct activé (sinon mode test / sandbox) diff --git a/htdocs/langs/fr_CA/supplier_proposal.lang b/htdocs/langs/fr_CA/supplier_proposal.lang index f9a6b3caf48..aaecf84fb4b 100644 --- a/htdocs/langs/fr_CA/supplier_proposal.lang +++ b/htdocs/langs/fr_CA/supplier_proposal.lang @@ -35,6 +35,7 @@ DocModelAuroreDescription=Un modèle de demande complet (logo ...) DefaultModelSupplierProposalCreate=Création de modèle par défaut DefaultModelSupplierProposalToBill=Modèle par défaut lors de la clôture d'une demande de prix (acceptée) DefaultModelSupplierProposalClosed=Modèle par défaut lors de la clôture d'une demande de prix (refusée) +ListOfSupplierProposals=Liste des demandes de proposition de fournisseur ListSupplierProposalsAssociatedProject=Liste des propositions de fournisseurs associées au projet SupplierProposalsToClose=Propositions de fournisseurs à clôturer SupplierProposalsToProcess=Propositions de fournisseurs à traiter diff --git a/htdocs/langs/fr_CA/suppliers.lang b/htdocs/langs/fr_CA/suppliers.lang index 9ae6d3eb064..e0f84ac3812 100644 --- a/htdocs/langs/fr_CA/suppliers.lang +++ b/htdocs/langs/fr_CA/suppliers.lang @@ -5,6 +5,7 @@ ListOfSuppliers=Liste fournisseurs TotalBuyingPriceMinShort=Total de sous-produits par prix d'achat SomeSubProductHaveNoPrices=Certains sous-produits n'ont pas de prix défini ChangeSupplierPrice=Changer le prix d'achat +SupplierPrices=Prix ​​des fournisseurs ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ce fournisseur de référence est déjà associé à une référence : %s NoRecordedSuppliers=Aucun fournisseurs enregistrés SupplierPayment=Règlement fournisseur @@ -23,3 +24,4 @@ DescNbDaysToDelivery=Délai de livraison maximum pour les produits de cette comm DoNotOrderThisProductToThisSupplier=Ne commandez pas NotTheGoodQualitySupplier=Qualité incorrecte AllProductServicePrices=Tous les prix des produits / services +BuyingPriceNumShort=Prix ​​des fournisseurs diff --git a/htdocs/langs/fr_CA/trips.lang b/htdocs/langs/fr_CA/trips.lang index 3e2773793f2..a1745a3dc9a 100644 --- a/htdocs/langs/fr_CA/trips.lang +++ b/htdocs/langs/fr_CA/trips.lang @@ -48,6 +48,7 @@ DATE_REFUS=Déni de date DATE_CANCEL=Date d'annulation DATE_PAIEMENT=Date de règlement BROUILLONNER=Rouvrir +ExpenseReportRef=Réf. rapport de dépenses ValidateAndSubmit=Validez et soumettez pour approbation NOT_AUTHOR=Vous n'êtes pas l'auteur de ce rapport de dépenses. Fonctionnement annulé. ConfirmRefuseTrip=Êtes-vous sûr de vouloir refuser ce rapport de dépenses? diff --git a/htdocs/langs/fr_CA/website.lang b/htdocs/langs/fr_CA/website.lang index ca6168a235e..bfd090806e5 100644 --- a/htdocs/langs/fr_CA/website.lang +++ b/htdocs/langs/fr_CA/website.lang @@ -13,12 +13,9 @@ EditPageContent=Modifier le contenu Website=Site Internet Webpage=page web PreviewOfSiteNotYetAvailable=Aperçu de votre site web %s n'est pas encore disponible. Vous devez d'abord ajouter une page. -RequestedPageHasNoContentYet=La page demandée avec l'identifiant %s n'a pas encore de contenu ou le fichier cache .tpl.php a été supprimé. Modifier le contenu de la page pour résoudre ce problème. PageDeleted=Page '%s' du site %s supprimé PageAdded=La page '%s' a ajouté ViewSiteInNewTab=Afficher le site dans un nouvel onglet ViewPageInNewTab=Afficher la page dans un nouvel onglet ViewWebsiteInProduction=Afficher le site Web à l'aide d'URL d'accueil -SetHereVirtualHost=Si vous pouvez définir, sur votre serveur Web, un hôte virtuel dédié avec un répertoire racine sur %s, définissez ici le nom d'hôte virtuel afin que l'aperçu puisse être effectué également en utilisant cet accès direct au serveur Web et non seulement en utilisant Serveur Dolibarr. PreviewSiteServedByWebServer=Aperçu %s dans un nouvel onglet.

Le %s sera desservi par un serveur web externe (comme Apache, Nginx, IIS). Vous devez installer et configurer ce serveur avant de pointer vers le répertoire:
%s
URL desservie par un serveur externe:
%s -PreviewSiteServedByDolibarr=Aperçu %s dans un nouvel onglet.

%s sera desservi par le serveur Dolibarr afin qu'il ne soit pas nécessaire d'installer un serveur Web supplémentaire (comme Apache, Nginx, IIS).
L'inconvénient est cet URL Des pages ne sont pas conviviaux et commencent par le chemin de votre Dolibarr.
URL desservie par Dolibarr:
%s

Pour utiliser votre propre serveur Web externe pour desservir ce site Web Site, créez un hôte virtuel sur votre serveur Web qui pointe sur le répertoire
%s
puis entrez le nom de ce serveur virtuel et cliquez sur l'autre bouton de prévisualisation. diff --git a/htdocs/langs/fr_CA/withdrawals.lang b/htdocs/langs/fr_CA/withdrawals.lang index 923d547db91..e8be8c0a173 100644 --- a/htdocs/langs/fr_CA/withdrawals.lang +++ b/htdocs/langs/fr_CA/withdrawals.lang @@ -31,6 +31,7 @@ RefusedData=Date de rejet RefusedReason=Raison du rejet NoInvoiceRefused=Ne chargez pas le rejet InvoiceRefused=Facture refusée (Charge le rejet au client) +StatusDebitCredit=Statut de débit / crédit StatusWaiting=Attendre StatusTrans=Envoyé StatusCredited=Crédit diff --git a/htdocs/langs/fr_CH/oauth.lang b/htdocs/langs/fr_CH/oauth.lang deleted file mode 100644 index 6bc640c655b..00000000000 --- a/htdocs/langs/fr_CH/oauth.lang +++ /dev/null @@ -1,3 +0,0 @@ -# Dolibarr language file - Source file is en_US - oauth -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider diff --git a/htdocs/langs/fr_CH/printing.lang b/htdocs/langs/fr_CH/printing.lang deleted file mode 100644 index 0ed07f1f5d0..00000000000 --- a/htdocs/langs/fr_CH/printing.lang +++ /dev/null @@ -1,2 +0,0 @@ -# Dolibarr language file - Source file is en_US - printing -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. diff --git a/htdocs/langs/fr_FR/accountancy.lang b/htdocs/langs/fr_FR/accountancy.lang index 42dba8d01f3..7c1738a0ff9 100644 --- a/htdocs/langs/fr_FR/accountancy.lang +++ b/htdocs/langs/fr_FR/accountancy.lang @@ -28,32 +28,33 @@ OverviewOfAmountOfLinesBound=Vue d'ensemble du nombre de lignes liées à un com OtherInfo=Autre information DeleteCptCategory=Supprimer le code comptable du groupe ConfirmDeleteCptCategory=Êtes-vous sur de vouloir supprimer ce compte comptable du groupe comptable ? +AlreadyInGeneralLedger=Enregistrement déjà présent dans le grand livre AccountancyArea=Espace comptabilité AccountancyAreaDescIntro=L'utilisation du module de comptabilité se fait en plusieurs étapes: AccountancyAreaDescActionOnce=Les actions suivantes sont habituellement exécutées une seule fois, ou une fois par an ... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Les prochaines étapes doivent être faites pour vous faire gagner du temps à l'avenir en vous proposant le bon compte comptable par défaut lors de la ventilation (écrire des enregistrements dans les journaux et grand livre) AccountancyAreaDescActionFreq=Les actions suivantes sont habituellement exécutées chaque mois, semaine, ou jour pour les très grandes entreprises ... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s -AccountancyAreaDescChartModel=Etape %s: Créer un modèle de plan de compte depuis le menu %s -AccountancyAreaDescChart=Etape %s: Créer ou vérifier le contenu de votre plan de compte depuis le menu %s +AccountancyAreaDescJournalSetup=Étape %s : Créer ou vérifier le contenu de la liste des journaux depuis le menu %s +AccountancyAreaDescChartModel=Étape %s : Créer un modèle de plan de compte depuis le menu %s +AccountancyAreaDescChart=Étape %s : Créer ou vérifier le contenu de votre plan de compte depuis le menu %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. -AccountancyAreaDescBank=Etape %s: Définissez les comptes comptables de chaque compte bancaire ou financier. Vous pouvez commencer à partir de la page %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescVat=Étape %s : Définissez les comptes comptables de chaque taux de TVA utilisé. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescExpenseReport=Étape %s : Définissez les comptes comptables par défaut des dépenses des notes de frais. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescSal=Étape %s : Définissez les comptes comptables de paiements de salaires. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescContrib=Étape %s : Définissez les comptes comptables des dépenses spéciales (taxes diverses). Pour cela, suivez le menu suivant %s. +AccountancyAreaDescDonation=Étape %s : Définissez le compte comptable par défaut des dons. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescMisc=Étape %s : Définissez les comptes comptables par défaut. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescLoan=Étape %s : Définissez les comptes comptables par défaut des emprunts. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescBank=Étape %s : Définissez les comptes comptables de chaque compte bancaire ou financier. Vous pouvez commencer à partir de la page %s. +AccountancyAreaDescProd=Étape %s : Définissez les comptes comptables sur vos produits/services. Pour cela, suivez le menu suivant %s. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. -AccountancyAreaDescAnalyze=Etape %s: Ajouter ou modifier les opérations existantes et générer des rapports et des exportations. +AccountancyAreaDescBind=Étape %s : Vérifier que la liaison entre les %s lignes existantes et le compte comptable est faite, ainsi l'application sera capable d'inscrire les transaction dans le grand livre en un seul clic. Compléter les liaisons manquantes. Pour cela, suivez le menu suivant %s. +AccountancyAreaDescWriteRecords=Étape %s: Ecrire les transactions dans le grand livre. Pour cela, suivez le menu %s, et cliquer sur le bouton %s. +AccountancyAreaDescAnalyze=Étape %s : Ajouter ou modifier les opérations existantes et générer des rapports et des exportations. -AccountancyAreaDescClosePeriod=Etape %s: Fermer la période pour ne plus pouvoir faire de modification à l'avenir. +AccountancyAreaDescClosePeriod=Étape %s : Fermer la période pour ne plus pouvoir faire de modification à l'avenir. MenuAccountancy=Comptabilité Selectchartofaccounts=Sélectionnez le plan de compte actif @@ -61,8 +62,7 @@ ChangeAndLoad=Changer et charger Addanaccount=Ajouter un compte comptable AccountAccounting=Compte comptable AccountAccountingShort=Compte -SubledgerAccount=Subledger Account -subledger_account=Subledger Account +SubledgerAccount=Compte auxiliaire ShowAccountingAccount=Afficher le compte comptable ShowAccountingJournal=Afficher le journal AccountAccountingSuggest=Code comptable suggéré @@ -79,8 +79,9 @@ SuppliersVentilation=Liaison factures fournisseur ExpenseReportsVentilation=Liaison notes de frais CreateMvts=Créer nouvelle transaction UpdateMvts=Modification d'une transaction -WriteBookKeeping=Journalize transactions in Ledger -Bookkeeping=Ledger +ValidTransaction=Validate transaction +WriteBookKeeping=Inscrire les transactions dans le grand livre +Bookkeeping=Grand livre AccountBalance=Balance des comptes CAHTF=Total achat fournisseur HT @@ -142,17 +143,18 @@ NumPiece=Numéro de pièce TransactionNumShort=Num. transaction AccountingCategory=Groupes de comptes comptables GroupByAccountAccounting=Grouper par compte comptable +ByAccounts=Par compte comptable NotMatch=Non défini -DeleteMvt=Delete Ledger lines +DeleteMvt=Supprimer les lignes du grand livre DelYear=Année à supprimer DelJournal=Journal à supprimer -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger -DelBookKeeping=Delete record of the Ledger +ConfirmDeleteMvt=Cela supprimera toutes les lignes du grand livre pour l'année et/ou d'un journal spécifique. Un critère au moins est requis. +ConfirmDeleteMvtPartial=Cela supprimera la/les lignes sélectionnée(s) du grand livre +DelBookKeeping=Supprimer l'enregistrement du grand livre FinanceJournal=Journal de trésorerie ExpenseReportsJournal=Journal des notes de frais DescFinanceJournal=Journal de trésorerie comprenant tous les types de paiements par compte bancaire / caisse -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=Ceci est une vue des enregistrements qui sont liés à un compte comptable produits/services et qui peuvent être enregistrés dans le grand livre. VATAccountNotDefined=Compte de la TVA non défini ThirdpartyAccountNotDefined=Compte pour le tiers non défini ProductAccountNotDefined=Compte pour le produit non défini @@ -194,8 +196,8 @@ AutomaticBindingDone=Liaison automatique faite ErrorAccountancyCodeIsAlreadyUse=Erreur, vous ne pouvez pas détruire de compte comptable car il est utilisé MvtNotCorrectlyBalanced=Le mouvement n'est pas équilibré. Crédit = %s. Débit = %s FicheVentilation=Fiche lien -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. +GeneralLedgerIsWritten=Les transactions sont enregistrées dans le grand livre +GeneralLedgerSomeRecordWasNotRecorded=Certaines des opérations n'ont pu être enregistrées. S'il n'y a pas d'autres messages, c'est probablement car elles sont déjà enregistrées. NoNewRecordSaved=Pas de nouvelle ligne liée ListOfProductsWithoutAccountingAccount=Liste des produits non liés à un compte comptable ChangeBinding=Changer les liens @@ -214,12 +216,14 @@ AccountingJournalType1=Opérations Diverses AccountingJournalType2=Ventes AccountingJournalType3=Achats AccountingJournalType4=Banque +AccountingJournalType5=Note de frais AccountingJournalType9=A-nouveaux ErrorAccountingJournalIsAlreadyUse=Le journal est déjà utilisé ## Export Exports=Exports Export=Exporter +ExportDraftJournal=Exporter le brouillard Modelcsv=Modèle d'export OptionsDeactivatedForThisExportModel=Pour ce modèle d'export, les options sont désactivées Selectmodelcsv=Sélectionner un modèle d'export @@ -256,7 +260,7 @@ Calculated=Calculé Formula=Formule ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +SomeMandatoryStepsOfSetupWereNotDone=Certaines étapes obligatoires de la configuration n'ont pas été réalisées, merci de compléter cette dernière ErrorNoAccountingCategoryForThisCountry=Pas de catégories de regroupement comptable disponibles pour le pays %s (Voir Accueil - Configuration - Dictionnaires) ExportNotSupported=Le format de l'export n'est pas supporté par cette page BookeppingLineAlreayExists=Lignes dejà existantes dans le grand livre @@ -264,4 +268,4 @@ NoJournalDefined=Pas de journal défini Binded=Lignes liées ToBind=Lignes à lier -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. +WarningReportNotReliable=Attention : ce rapport n'est pas basé sur le grand livre et ne contient donc pas les écritures manuelles qui lui ont été ajoutées. Une fonctionnalité améliorée sera présente dans les prochaines versions. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index f639964e86c..fb1ac85b8a3 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -48,7 +48,7 @@ InternalUsers=Utilisateurs internes ExternalUsers=Utilisateurs externes GUISetup=Affichage SetupArea=Espace de configuration -UploadNewTemplate=Upload new template(s) +UploadNewTemplate=Télécharger un / des nouveau(x) modèle(s) FormToTestFileUploadForm=Formulaire de test d'envoi de fichier (selon options choisies) IfModuleEnabled=Rem: oui est effectif uniquement si le module %s est activé RemoveLock=Effacer le fichier %s s'il existe afin d'autoriser l'outil de mise à jour. @@ -124,7 +124,7 @@ DaylingSavingTime=Heure d'été CurrentHour=Heure PHP (serveur) CurrentSessionTimeOut=Délai expiration session actuelle YouCanEditPHPTZ=Pour définir un fuseau horaire PHP différent (non requis), vous pouvez essayer d'ajouter un fichier .htaccess avec une ligne comme celle-ci "SetEnv TZ Europe / Paris" -HoursOnThisPageAreOnServerTZ=Attention, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais dépendent du le fuseau horaire du serveur. +HoursOnThisPageAreOnServerTZ=Attention, contrairement à d'autres écrans, les heures sur cette page ne sont pas dans votre fuseau horaire local, mais dépendent du fuseau horaire du serveur. Box=Widget Boxes=Widgets MaxNbOfLinesForBoxes=Nombre maximum de lignes dans les widgets @@ -190,7 +190,7 @@ FeatureAvailableOnlyOnStable=Fonction disponible uniquement sur les versions off Rights=Permissions BoxesDesc=Les widgets sont des composants montrant des informations que vous pouvez ajouter à vos pages pour les personnaliser. Vous pouvez choisir de les afficher ou non en sélectionnant la page cible et en cliquant sur "Activer" ou "Désactiver". OnlyActiveElementsAreShown=Seuls les éléments en rapport avec un module actif sont présentés. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Les modules Dolibarr définissent quelle application / fonctionnalité est activée dans le logiciel. Certaines applications / modules nécessitent des autorisations que vous devez accorder aux utilisateurs, après l'avoir activé. Cliquez sur le bouton activé / désactivé pour activer un module / application. ModulesMarketPlaceDesc=D'autres modules/extensions sont disponibles en téléchargement sur des sites externes sur Internet... ModulesDeployDesc=Si les permissions de votre système de fichier le permettent , vous pouvez utiliser cet outil pour déployer un module externe. Le module sera alors visible dans l'onglet %s. ModulesMarketPlaces=Recherche de modules externes... @@ -303,8 +303,8 @@ CurrentVersion=Version actuelle de Dolibarr CallUpdatePage=Aller à la page de mise à jour de la structure et des données de la base : %s. LastStableVersion=Dernière version stable disponible LastActivationDate=Date de dernière activation -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP +LastActivationAuthor=Dernier auteur de l'activation +LastActivationIP=Dernière adresse IP d'activation UpdateServerOffline=Serveur de mise à jour hors ligne WithCounter=Gérer un compteur GenericMaskCodes=Vous pouvez saisir tout masque de numérotation. Dans ce masque, les balises suivantes peuvent être utilisées:
{000000} correspond à un numéro qui sera incrémenté à chaque %s. Mettre autant de zéro que la longueur désirée du compteur. Le compteur sera complété par des 0 à gauche afin d'avoir autant de zéro que dans le masque.
{000000+000} idem que précédemment mais un décalage correspondant au nombre à droite du + est appliqué dès la première %s.
{000000@x} idem que précédemment mais le compteur est remis à zéro le xème mois de l'année (x entre 1 et 12, ou 0 pour utiliser le mois de début d'exercice fiscal défini dans votre configuration, ou 99 pour remise à zéro chaque mois). Si cette option est utilisée et x vaut 2 ou plus, alors la séquence {yy}{mm} ou {yyyy}{mm} est obligatoire.
{dd} jour (01 à 31).
{mm} mois (01 à 12).
{yy}, {yyyy} ou {y} année sur 2, 4 ou 1 chiffres.
@@ -389,7 +389,7 @@ ExtrafieldCheckBox=Cases à cocher ExtrafieldCheckBoxFromList=Cases à cocher issues d'une table ExtrafieldLink=Lier à un objet ComputedFormula=Champ calculé -ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' +ComputedFormulaDesc=Vous pouvez entrer ici une formule utilisant les propriétés objet ou tout code PHP pour obtenir des valeurs dynamiques. Vous pouvez utiliser toute formule compatible PHP, incluant l'opérateur conditionnel "?", et les objets globaux : $db, $conf, $langs, $mysoc, $user, $object.
ATTENTION : Seulement quelques propriétés de l'objet $object pourraient être disponibles. Si vous avez besoin de propriétés non chargées, créez vous même une instance de l'objet dans votre formule, comme dans le deuxième exemple.
Utiliser un champs calculé signifie que vous ne pouvez pas entrer vous même toute valeur à partir de l'interface. Aussi, s'il y a une erreur de syntaxe, la formule pourrait ne rien retourner.

Exemple de formule:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Exemple pour recharger l'objet:
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé' ExtrafieldParamHelpselect=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
...

\nPour afficher une liste dépendant d'une autre liste attribut complémentaire:
1, valeur1|options_code_liste_parente:clé_parente
2,valeur2|option_Code_liste_parente:clé_parente

\nPour que la liste soit dépendante d'une autre liste:
1,valeur1|code_liste_parent:clef_parent
2,valeur2|code_liste_parent:clef_parent ExtrafieldParamHelpcheckbox=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... ExtrafieldParamHelpradio=La liste doit être de la forme clef,valeur

par exemple :
1,valeur1
2,valeur2
3,valeur3
... @@ -433,13 +433,13 @@ ClickToShowDescription=Cliquer pour afficher la description DependsOn=Ce module a besoin du(des) module(s) RequiredBy=Ce module est requis par le ou les module(s) TheKeyIsTheNameOfHtmlField=C'est le nom du champ HTML. Cela nécessite d'avoir des connaissances techniques pour lire le contenu de la page HTML et récupérer le nom d'un champ. -PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous indiquez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples: +PageUrlForDefaultValues=Vous devez entrer ici l'URL relative de la page. Si vous indiquez des paramètres dans l'URL, les valeurs par défaut seront effectives si tous les paramètres sont définis sur la même valeur. Exemples : PageUrlForDefaultValuesCreate=
Pour créer un nouveau tiers, c'est %s PageUrlForDefaultValuesList=
Pour la liste des tiers, c'est %s EnableDefaultValues=Autoriser l'enregistrement par défaut de valeurs personnalisées -EnableOverwriteTranslation=Activer la réécriture de traduction +EnableOverwriteTranslation=Activer la réécriture des traductions GoIntoTranslationMenuToChangeThis=Une traduction a été trouvée pour le code de cette valeur. Pour changer cette valeur, vous devez modifier le fichier depuis Accueil > Configuration > Traduction. -WarningSettingSortOrder=Attention, le réglage d'un tri par défaut peut entraîner une erreur technique lorsque le champ est inconnu dans le listing. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut. +WarningSettingSortOrder=Attention, le réglage d'un ordre de tri par défaut peut entraîner une erreur technique lorsque le champ est inconnu dans le listing. Si vous rencontrez une telle erreur, revenez à cette page pour supprimer l'ordre de tri par défaut et restaurer le comportement par défaut. Field=Champ ProductDocumentTemplates=Modèle de document pour la fiche produit FreeLegalTextOnExpenseReports=Mention complémentaire sur les notes de frais @@ -466,7 +466,7 @@ Module30Desc=Gestion des factures et avoirs clients. Gestion des factures fourni Module40Name=Fournisseurs Module40Desc=Gestion des fournisseurs et des achats (commandes et factures) Module42Name=Journaux et traces -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Systèmes de logs ( fichier, syslog,... ). De tels logs ont un but technique / de débogage. Module49Name=Éditeurs Module49Desc=Gestion des éditeurs Module50Name=Produits @@ -536,7 +536,7 @@ Module1120Desc=Demander des devis et tarifs aux fournisseurs Module1200Name=Mantis Module1200Desc=Interface avec le bug tracker Mantis Module1400Name=Comptabilité -Module1400Desc=Gestion de la comptabilité (partie double) +Module1400Desc=Comptabilité double partie Module1520Name=Génération de document Module1520Desc=Génération de documents de publipostages Module1780Name=Libellés/Catégories @@ -564,8 +564,8 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacités de conversion GeoIP Maxmind Module3100Name=Skype Module3100Desc=Ajouter un bouton Skype dans les fiches utilisateurs / tiers / contacts / adhérents -Module3200Name=Non Reversible Logs -Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. +Module3200Name=Logs non réversibles +Module3200Desc=Activez le journal de certains événements commerciaux dans un journal non réversible. Les événements sont archivés en temps réel. Le journal est un tableau d'événement chaînés qui peut ensuite être lu et exporté. Ce module pourrait être obligatoire pour certains pays. Module4000Name=GRH Module4000Desc=Gestion des ressources humaines (gestion du département, contrats des employés et appréciations) Module5000Name=Multi-société @@ -585,7 +585,7 @@ Module50100Desc=Module Caisse enregistreuse - Point de vente (POS) Module50200Name=Paypal Module50200Desc=Module permettant d'offrir en ligne une page de paiement par carte de crédit avec Paypal Module50400Name=Comptabilité (avancée) -Module50400Desc=Gestion de la comptabilité (doubles parties) +Module50400Desc=Comptabilité double partie Module54000Name=PrintIPP Module54000Desc=Impression directe (sans ouvrir les documents) en utilisant l'interface Cups IPP (l'imprimante doit être visible depuis le serveur, et CUPS doit être installé sur le serveur). Module55000Name=Sondage ou Vote @@ -615,7 +615,7 @@ Permission32=Créer/modifier les produits Permission34=Supprimer les produits Permission36=Voir/gérer les produits cachés Permission38=Exporter les produits -Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé par vous et votre supérieur hiérarchique sur les tâches auxquelles vous êtes assigné. +Permission41=Lire les projets et tâches (partagés ou dont vous êtes un contact). Permet la saisie de temps passé, par vous et votre supérieur hiérarchique, sur les tâches assignées. Permission42=Créer/modifier les projets (projets partagés et projets pour lesquels je suis contact). Permet aussi de créer des tâches et d'assigner des utilisateurs aux projets et tâches. Permission44=Supprimer les projets et tâches (partagés ou dont je suis contact) Permission45=Exporter les projets @@ -997,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolérance de retard avant alerte (en jours) sur cotis Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolérance de retard avant alerte (en jours) sur chèques à déposer Delays_MAIN_DELAY_EXPENSEREPORTS=Tolérance de retard avant alerte (en jours) sur les notes de frais à approuver SetupDescription1=L'espace configuration permet de réaliser le paramétrage afin de pouvoir commencer à utiliser l'application -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : -SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). -SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. +SetupDescription2=Les deux étapes obligatoires sont les deux étapes dans le menu de gauche. La page de configuration %s et la page de configuration %s : +SetupDescription3=Les paramètres dans le menu %s -> %s sont requis car les données définies sont utilisées dans l'affichage Dolibarr et pour personnaliser le comportement par défaut du logiciel (pour les fonctionnalités liées à un pays par exemple). +SetupDescription4=Les paramètres dans le menu %s -> %s sont requis car l'ERP/CRM Dolibarr est un ensemble de plusieurs modules/applications, tous plus ou moins indépendants les uns des autres. De nouvelles fonctionnalités seront ajoutées aux différents menus à chaque fois que vous activerez un nouveau module. SetupDescription5=Les autres entrées de configuration gèrent des paramètres facultatifs. LogEvents=Événements d'audit de sécurité Audit=Audit @@ -1015,7 +1015,7 @@ BrowserOS=OS du navigateur ListOfSecurityEvents=Liste des événements de sécurité Dolibarr SecurityEventsPurged=Evenement de sécurité purgés LogEventDesc=Vous pouvez activer ici, la journalisation des événements d'audit de sécurité. Cet historique est consultable par les administrateurs dans le menu Outils systèmes - Audit. Attention, cette fonctionnalité peut générer un gros volume de données. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +AreaForAdminOnly=Les paramètres d'installation ne peuvent être remplis que par les utilisateurs administrateurs uniquement. SystemInfoDesc=Les informations systèmes sont des informations techniques diverses accessibles en lecture seule aux administrateurs uniquement. SystemAreaForAdminOnly=Cet espace n'est accessible qu'aux utilisateurs de type administrateur. Aucune permission Dolibarr ne permet d'étendre le cercle des utilisateurs autorisés à cet espace. CompanyFundationDesc=Éditez sur cette page toutes les informations connues de la société ou de l'association que vous souhaitez gérer (Pour cela, cliquez sur les boutons "Modifier" ou "Sauvegarder" en bas de page) @@ -1108,7 +1108,7 @@ WarningAtLeastKeyOrTranslationRequired=Un critère de recherche est nécessaire NewTranslationStringToShow=Nouvelle traduction à afficher OriginalValueWas=La traduction d'origine est écrasée. La valeur initiale était:

%s TransKeyWithoutOriginalValue=Vous avez forcé une nouvelle traduction pour la clé de traduction '%s' qui n'existe dans aucun fichier de langue -TotalNumberOfActivatedModules=Modules activés : %s/%s +TotalNumberOfActivatedModules=Modules activés : %s / %s YouMustEnableOneModule=Vous devez activer au moins une fonctionnalité ClassNotFoundIntoPathWarning=La classe %s n'a pas été trouvée dans le chemin PHP YesInSummer=Oui en été @@ -1358,16 +1358,16 @@ FilesOfTypeNotCached=Fichiers de type %s non mis en cache par le serveur HTTP FilesOfTypeCompressed=Fichiers de type %s compressé par le serveur HTTP FilesOfTypeNotCompressed=Fichiers de type %s non compressé par le serveur HTTP CacheByServer=Cache par le serveur -CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" +CacheByServerDesc=Par exemple, en utilisant la directive Apache "ExpiresByType image/gif A2592000" CacheByClient=Cache par le navigateur CompressionOfResources=Compression des réponses HTTP CompressionOfResourcesDesc=Par exemple, en utilisant la directive Apache "AddOutputFilterByType DEFLATE" TestNotPossibleWithCurrentBrowsers=Une détection automatique n'est pas possible avec le navigateur courant DefaultValuesDesc=Vous pouvez définir/forcer ici la valeur par défaut que vous voulez obtenir lorsque vous créez un nouvel enregistrement, et/ou les filtres par défaut ou ordre de tri des listes. DefaultCreateForm=Valeurs par défaut pour les nouveaux objets -DefaultSearchFilters=Filtres par défaut -DefaultSortOrder=Tri des commandes par défaut -DefaultFocus=Default focus fields +DefaultSearchFilters=Filtres de recherche par défaut +DefaultSortOrder=Ordre de tri par défaut +DefaultFocus=Champs par défaut ayant le focus ##### Products ##### ProductSetup=Configuration du module Produits ServiceSetup=Configuration du module Services @@ -1520,7 +1520,7 @@ AGENDA_NOTIFICATION_SOUND=Activer les notifications sonores. AGENDA_SHOW_LINKED_OBJECT=Afficher l'objet lié dans la vue agenda ##### Clicktodial ##### ClickToDialSetup=Configuration du module Click To Dial -ClickToDialUrlDesc=URL appelée au clic sur l'icône téléphone. Dans l'URL, vous pouvez utiliser les tags
__PHONETO__ qui sera remplacée par le numéro de téléphone de la personne à appeler,
__PHONEFROM__ qui sera remplacée par le numéro de l'appelant (vous),
__LOGIN__ qui sera remplacée par l'identifiant d'accès de l'utilisateur à l'application d'appel (à définir sur la fiche utilisateur) et
__PASS__ qui sera remplacée par le mot de passe d'accès de l'utilisateur à l'application d'appel (également à définir sur la fiche utilisateur) +ClickToDialUrlDesc=URL appelée quand un clic sur l'icône téléphone est fait. Dans l'URL, vous pouvez utiliser les tags
__PHONETO__ qui sera remplacée par le numéro de téléphone de la personne à appeler
__PHONEFROM__ qui sera remplacée par le numéro de l'appelant (vous)
__LOGIN__ qui sera remplacée par l'identifiant d'accès de l'utilisateur à l'application d'appel (à définir sur la fiche utilisateur) et
__PASS__ qui sera remplacée par le mot de passe d'accès de l'utilisateur à l'application d'appel (également à définir sur la fiche utilisateur). ClickToDialDesc=Ce module permet de rendre un numéro de téléphone cliquable. Un clique sur cet icone fera votre téléphone appeler le numéro cliqué. Ce module peut être utilisé pour appeler un système de centre d'appel à partir de Dolibarr. ClickToDialUseTelLink=Utiliser un lien «Tel.» sur les numéros de téléphone ClickToDialUseTelLinkDesc=Utilisez cette méthode si vos utilisateurs ont un softphone ou une interface de logiciel installé sur un même ordinateur que le navigateur, et a appelé lorsque vous cliquez sur un lien dans votre navigateur qui commencent par "tel:". Si vous avez besoin d'une solution de serveur complet (pas besoin d'installation locale du logiciel), vous devez définir ce "Non" et remplissez champ suivant. @@ -1620,7 +1620,7 @@ BackupDumpWizard=Assistant de génération d'un fichier de sauvegarde de la base SomethingMakeInstallFromWebNotPossible=L'installation de module externe est impossible depuis l'interface web pour la raison suivante : SomethingMakeInstallFromWebNotPossible2=Pour cette raison, le processus de mise à jour décrit ici est uniquement une série de manipulations que seul un utilisateur ayant des droits privilégiés peut faire InstallModuleFromWebHasBeenDisabledByFile=L'installation de module externe depuis l'application a été désactivé par l'administrator. Vous devez lui demander de supprimer le fichier %s pour permettre cette fonctionnalité. -ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; +ConfFileMustContainCustom=Installer ou créer un module externe à partir de l'application nécessite de sauvegarder les fichiers du module dans le répertoire %s. Pour que ce répertoire soit reconnu par Dolibarr, vous devez paramétrer le fichier de configuration conf/conf.php en ajoutant les 2 lignes suivantes :
$dolibarr_main_url_root_alt='/custom'
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Mettez en surbrillance les lignes de la table lorsque la souris passe au-dessus HighlightLinesColor=Mettez en surbrillance les lignes de la table lorsque la souris passe au-dessus (garder vide pour ne pas avoir de surbrillance) TextTitleColor=Couleur du titre des pages @@ -1699,8 +1699,8 @@ UserHasNoPermissions=Cet utilisateur n'a pas de permission définie TypeCdr=Utilisez "Aucune" si la date du terme de paiement est la date de la facture plus un delta en jours (delta est le champ "Nb de jours")
Utilisez "À la fin du mois", si, après le delta, la date doit être augmentée pour atteindre la fin du mois (+ un «Offset» optionnel en jours)
Utilisez "Coutant/Suivant" pour que la date du terme de paiement soit la premier Nième jour du mois qui suit (N est stocké dans le champ "Nb de jours") BaseCurrency=Devise par défaut de votre société/institution (Voir Accueil > configuration > Société/Institution) WarningNoteModuleInvoiceForFrenchLaw=Ce module %s permet d'être conforme aux lois françaises (Loi Finance 2016 par exemple). -WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. -WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. +WarningNoteModulePOSForFrenchLaw=Le module %s est conforme à la législation française ( Loi Finance 2016 ) car les logs non réversibles sont automatiquement activés. +WarningInstallationMayBecomeNotCompliantWithLaw=Vous tentez d'installer le module %s qui est un module externe. L'activation d'un module externe signifie que vous faites confiance à l'éditeur du module et que vous êtes sûr que ce module ne modifie pas négativement le comportement de votre application et est conforme aux lois de votre pays (%s). Si le module apporte une fonctionnalité illégale, vous devenez responsable pour l'utilisation d'un logiciel illégal. ##### Resource #### ResourceSetup=Configuration du module Ressource UseSearchToSelectResource=Utilisez un champ avec auto-complétion pour choisir les ressources (plutôt qu'une liste déroulante). diff --git a/htdocs/langs/fr_FR/agenda.lang b/htdocs/langs/fr_FR/agenda.lang index c082d08711f..212abf31e25 100644 --- a/htdocs/langs/fr_FR/agenda.lang +++ b/htdocs/langs/fr_FR/agenda.lang @@ -48,6 +48,7 @@ InvoiceDeleteDolibarr=Facture %s supprimée InvoicePaidInDolibarr=Facture %s passée à payée InvoiceCanceledInDolibarr=Facture %s annulée MemberValidatedInDolibarr=Adhérent %s validé +MemberModifiedInDolibarr=Adhérent %s modifié MemberResiliatedInDolibarr=Adhérent %s résilié MemberDeletedInDolibarr=Adhérent %s supprimé MemberSubscriptionAddedInDolibarr=Souscription adhérent %s @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s envoyée par email ProposalDeleted=Proposition commerciale supprimée OrderDeleted=Commande supprimée InvoiceDeleted=Facture supprimée +PRODUCT_CREATEInDolibarr=Produit%s créé +PRODUCT_MODIFYInDolibarr=Produit%s modifié +PRODUCT_DELETEInDolibarr=Produit%ssupprimé ##### End agenda events ##### +AgendaModelModule=Modèle de document pour les événements DateActionStart=Date de début DateActionEnd=Date de fin AgendaUrlOptions1=Vous pouvez aussi ajouter les paramètres suivants pour filtrer les réponses : -AgendaUrlOptions2=login=%s pour limiter l'export aux actions créées par ou assignées à l'utilisateur %s. AgendaUrlOptions3=logina=%s pour limiter l'export aux actions dont l'utilisateur %s est propriétaire. -AgendaUrlOptions4=logint=%s pour limiter l'export aux actions affectées à l'utilisateur %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%spour limiter l'affichage aux actions assignées à l'utilisateur %s (propriétaire et autres). AgendaUrlOptionsProject=project=PROJECT_ID pour restreindre aux événements associés au projet PROJECT_ID. AgendaShowBirthdayEvents=Afficher les anniversaires de contacts AgendaHideBirthdayEvents=Masquer les anniversaires de contacts diff --git a/htdocs/langs/fr_FR/banks.lang b/htdocs/langs/fr_FR/banks.lang index 9eddf38672c..c28a15a6e16 100644 --- a/htdocs/langs/fr_FR/banks.lang +++ b/htdocs/langs/fr_FR/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Êtes-vous sûr de vouloir supprimer le lien entre la ListBankTransactions=Liste des écritures IdTransaction=Id écriture BankTransactions=Écritures bancaires +BankTransaction=Écriture bancaire ListTransactions=Liste écritures ListTransactionsByCategory=Liste écritures/catégories TransactionsToConciliate=Écritures à rapprocher @@ -74,7 +75,7 @@ Conciliate=Rapprocher Conciliation=Rapprochement ReconciliationLate=Rapprochement en retard IncludeClosedAccount=Inclure comptes fermés -OnlyOpenedAccount=Uniquement les comptes ouverts +OnlyOpenedAccount=Seulement les comptes ouverts AccountToCredit=Compte à créditer AccountToDebit=Compte à débiter DisableConciliation=Désactiver la fonction de rapprochement pour ce compte @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Chèque rejeté et factures réouvertes BankAccountModelModule=Modèles de documents pour les comptes bancaires DocumentModelSepaMandate=Modèle de mandat SEPA. Utile pour les pays européens de la CEE seulement. DocumentModelBan=Modèle pour imprimer une page avec des informations du compte bancaire. +NewVariousPayment=Nouveau paiement divers +VariousPayment=Paiement divers +VariousPayments=Paiements divers +ShowVariousPayment=Afficher les paiements divers diff --git a/htdocs/langs/fr_FR/bills.lang b/htdocs/langs/fr_FR/bills.lang index fa0159c2aa0..40602533bf9 100644 --- a/htdocs/langs/fr_FR/bills.lang +++ b/htdocs/langs/fr_FR/bills.lang @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Pour créer une facture modèle, vous deve PDFCrabeDescription=Modèle de facture PDF complet (modèle recommandé par défaut) PDFCrevetteDescription=Modèle de facture PDF Crevette (modèle complet pour les factures de situation) TerreNumRefModelDesc1=Renvoie le numéro sous la forme %syymm-nnnn pour les factures et factures de remplacement, %syymm-nnnn pour les avoirs et %syymm-nnnn pour les acomptes où yy est l'année, mm le mois et nnnn un compteur séquentiel sans rupture et sans remise à 0 -MarsNumRefModelDesc1=Renvoie une numérotation au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures d'acompte et %syymm-nnnn pour les factures d'avoir où yy est l'année, mm, le mois et nnnn un compteur sans rupture ni remise à zéro. +MarsNumRefModelDesc1=Renvoie une numérotation au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures de remplacement, %syymm-nnnn pour les factures d'acompte et %syymm-nnnn pour les factures d'avoir où yy est l'année, mm le mois et nnnn un compteur sans rupture ni retour à zéro. TerreNumRefModelError=Une facture commençant par $syymm existe déjà et est incompatible avec cet modèle de numérotation. Supprimez-la ou renommez-la pour activer ce module. -CactusNumRefModelDesc1=Renvoie un numéro au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures d'avoir et %syymm-nnnn pour les factures d'acompte où yy est l'année, mm le mois et nnnn un compteur sans rupture ni remise à 0. +CactusNumRefModelDesc1=Renvoie un numéro au format %syymm-nnnn pour les factures standards, %syymm-nnnn pour les factures d'avoir et %syymm-nnnn pour les factures d'acompte où yy est l'année, mm le mois et nnnn un compteur sans rupture ni retour à zéro. ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsable suivi facture client TypeContact_facture_external_BILLING=Contact client facturation diff --git a/htdocs/langs/fr_FR/bookmarks.lang b/htdocs/langs/fr_FR/bookmarks.lang index 1ad9f630310..513786aa1db 100644 --- a/htdocs/langs/fr_FR/bookmarks.lang +++ b/htdocs/langs/fr_FR/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Placer cette page dans les marques-pages +AddThisPageToBookmarks=Placer la page courante dans les marques-pages Bookmark=Marque-page Bookmarks=Marque-pages +ListOfBookmarks=Liste des marque-pages +EditBookmarks=Lister/modifier marques-pages NewBookmark=Nouveau marque-page ShowBookmark=Afficher marque-page OpenANewWindow=Ouvrir une nouvelle fenêtre @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Nouvelle fenêtre BookmarkTargetReplaceWindowShort=Fenêtre courante BookmarkTitle=Titre du marque-page UrlOrLink=URL -BehaviourOnClick=Comportement sur clic de l'URL +BehaviourOnClick=Comportement sur sélection de l'URL CreateBookmark=Créer marque-page SetHereATitleForLink=Saisir ici un titre pour le marque-page UseAnExternalHttpLinkOrRelativeDolibarrLink=Saisir une URL HTTP externe ou une URL Dolibarr relative diff --git a/htdocs/langs/fr_FR/boxes.lang b/htdocs/langs/fr_FR/boxes.lang index 1caae585191..99e058d2fdf 100644 --- a/htdocs/langs/fr_FR/boxes.lang +++ b/htdocs/langs/fr_FR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Informations de connexion BoxLastRssInfos=Flux d'information RSS BoxLastProducts=Les %s derniers produits/services enregistrés BoxProductsAlertStock=Produits en alerte de stock @@ -82,3 +83,4 @@ ForCustomersOrders=Commandes clients ForProposals=Propositions commerciales LastXMonthRolling=Les %s derniers mois tournant ChooseBoxToAdd=Ajouter le widget au tableau de bord +BoxAdded=Le widget a été ajouté dans votre tableau de bord diff --git a/htdocs/langs/fr_FR/categories.lang b/htdocs/langs/fr_FR/categories.lang index 256c8b40f68..10ab0fd65e4 100644 --- a/htdocs/langs/fr_FR/categories.lang +++ b/htdocs/langs/fr_FR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Catégorie Rubriques=Tags/Catégories +RubriquesTransactions=Tags/catégories des transactions categories=tags/catégories NoCategoryYet=Aucun tag/catégorie de ce type n'a été créé In=Dans diff --git a/htdocs/langs/fr_FR/commercial.lang b/htdocs/langs/fr_FR/commercial.lang index 4ed8514a953..bef770d044f 100644 --- a/htdocs/langs/fr_FR/commercial.lang +++ b/htdocs/langs/fr_FR/commercial.lang @@ -19,6 +19,7 @@ ShowTask=Afficher tâche ShowAction=Afficher événement ActionsReport=Rapport des événements ThirdPartiesOfSaleRepresentative=Tiers ayant pour commercial +SaleRepresentativesOfThirdParty=Commerciaux d'un tiers SalesRepresentative=Commercial SalesRepresentatives=Commerciaux SalesRepresentativeFollowUp=Commercial (suivi) diff --git a/htdocs/langs/fr_FR/companies.lang b/htdocs/langs/fr_FR/companies.lang index 4fc3580fa26..67ef632a010 100644 --- a/htdocs/langs/fr_FR/companies.lang +++ b/htdocs/langs/fr_FR/companies.lang @@ -236,7 +236,7 @@ ProfId3TN=Id. prof. 3 (Code en douane) ProfId4TN=Id. prof. 4 (BAN) ProfId5TN=- ProfId6TN=- -ProfId1US=Id prof +ProfId1US=Id professionnel ProfId2US=- ProfId3US=- ProfId4US=- diff --git a/htdocs/langs/fr_FR/compta.lang b/htdocs/langs/fr_FR/compta.lang index 590b468465f..ae51312a5f7 100644 --- a/htdocs/langs/fr_FR/compta.lang +++ b/htdocs/langs/fr_FR/compta.lang @@ -190,10 +190,10 @@ AccountancyJournal=Code journal comptabilité ACCOUNTING_VAT_SOLD_ACCOUNT=Compte comptable par défaut pour l'encaissement de TVA - TVA sur les ventes (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) ACCOUNTING_VAT_BUY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA - TVA sur les achats (utilisé si non défini au niveau de la configuration du dictionnaire de TVA) ACCOUNTING_VAT_PAY_ACCOUNT=Compte comptable par défaut pour le paiement de la TVA -ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined -ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER=Compte comptable utilisé pour le tiers client +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour l'affectation de comptes de Subledger, celui-ci pour le grand livre ou comme valeur par défaut de la comptabilité de Sous-compte si le compte dépendant d'un compte sur un tiers n'est pas défini +ACCOUNTING_ACCOUNT_SUPPLIER=Compte comptable utilisé pour le tiers fournisseur +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Le compte comptable dédié défini sur une carte tierce sera utilisé pour la comptabilisation de Subledger, celui-ci pour le grand livre général ou la valeur par défaut de la comptabilité de Sous-compte si le compte dédié d'accoutant du fournisseur sur un tiers n'est pas défini CloneTax=Cloner une charge sociale/fiscale ConfirmCloneTax=Confirmez le clone du paiement de charge sociale/fiscale CloneTaxForNextMonth=Cloner pour le mois suivant diff --git a/htdocs/langs/fr_FR/contracts.lang b/htdocs/langs/fr_FR/contracts.lang index 168879762c9..1a25fa2c691 100644 --- a/htdocs/langs/fr_FR/contracts.lang +++ b/htdocs/langs/fr_FR/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Cette list ne contient que les contrats de service StandardContractsTemplate=Modèle standard de contrats ContactNameAndSignature=Pour %s, nom et signature: OnlyLinesWithTypeServiceAreUsed=Seules les lignes de type "Service" seront clonées +CloneContract=Cloner le contrat +ConfirmCloneContract=Etes vous sûr de vouloir cloner le contrat %s ? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Commercial signataire du contrat diff --git a/htdocs/langs/fr_FR/cron.lang b/htdocs/langs/fr_FR/cron.lang index 355f1c2556f..fee4f308444 100644 --- a/htdocs/langs/fr_FR/cron.lang +++ b/htdocs/langs/fr_FR/cron.lang @@ -25,7 +25,7 @@ CronDelete=Effacer les travaux planifiés CronConfirmDelete=Êtes-vous sûr de vouloir supprimer ces travaux planifiées? CronExecute=Lancer la tache planifiée CronConfirmExecute=Etes-vous sûr que vous voulez exécuter ces travaux planifiées maintenant? -CronInfo=Les travaux planifiés permettent de planifier des tâches à exécuter automatiquement. Les travaux planifiés peuvent aussi être lancés manuellement. +CronInfo=Le module de taches planifiés permet de planifier des tâches à exécuter automatiquement. Les travaux planifiés peuvent aussi être lancés manuellement. CronTask=Travail planifié CronNone=Aucun(e) CronDtStart=Pas avant @@ -57,12 +57,12 @@ CronStatusActiveBtn=Activer CronStatusInactiveBtn=Désactiver CronTaskInactive=Cette tâche est désactivée CronId=Id -CronClassFile=Filename with class +CronClassFile=Nom de fichier avec classe CronModuleHelp=Nom du dossier du module dans Dolibarr (fonctionne aussi avec les modules externes).
Par exemple, pour appeler la méthode d'appel des produits Dolibarr /htdocs/product/class/product.class.php, la valeur du module est product. -CronClassFileHelp=The relative path and file name to load (path is relative to web server root directory).
For exemple to call the fetch method of Dolibarr Product object htdocs/product/class/product.class.php, the value for class file name is product/class/product.class.php -CronObjectHelp=The object name to load.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for class file name is Product -CronMethodHelp=The object method to launch.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for method is fecth -CronArgsHelp=The method arguments.
For exemple to call the fetch method of Dolibarr Product object /htdocs/product/class/product.class.php, the value for paramters can be 0, ProductRef +CronClassFileHelp=Le chemin relatif et le nom du fichier à charger (le chemin d'accès est relatif au répertoire racine du serveur Web).
Par exemple, appeler la méthode de récupération de Dolibarr Product object htdocs / product / class / product.class.php , la valeur du nom de fichier de classe est product / class / product.class .php +CronObjectHelp=Le nom de l'objet à charger.
Par exemple, appeler la méthode de récupération de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour le nom de fichier de classe est Produit +CronMethodHelp=La méthode objet à lancer.
Par exemple, appeler la méthode de récupération de Dolibarr Product object /htdocs/product/class/product.class.php, la valeur pour la méthode est fecth +CronArgsHelp=Les arguments de la méthode.
Par exemple, appeler la méthode d'extraction de l'objet de produit Dolibarr /htdocs/product/class/product.class.php, la valeur pour les paramètres peut être 0, ProductRef CronCommandHelp=La commande système a exécuter. CronCreateJob=Créer un nouveau travail planifié CronFrom=A partir du @@ -76,4 +76,4 @@ UseMenuModuleToolsToAddCronJobs=Aller à la page "Accueil - Outils administratio JobDisabled=Travail désactivé MakeLocalDatabaseDumpShort=Sauvegarde locale de base MakeLocalDatabaseDump=Créer une sauvegarde locale de la base -WarningCronDelayed=Attention, for performance purpose, whatever is next date of execution of enabled jobs, your jobs may be delayed to a maximum of %s hours, before being run. +WarningCronDelayed=Attention, à des fins de performance, quelle que soit la prochaine date d'exécution des travaux activés, vos travaux peuvent être retardés jusqu'à %s heures avant d'être exécutés. diff --git a/htdocs/langs/fr_FR/errors.lang b/htdocs/langs/fr_FR/errors.lang index 13c813f963a..09a0dac5a34 100644 --- a/htdocs/langs/fr_FR/errors.lang +++ b/htdocs/langs/fr_FR/errors.lang @@ -18,8 +18,8 @@ ErrorFailToCreateFile=Echec de la création du fichier '%s'. ErrorFailToRenameDir=Echec du renommage du répertoire '%s' en '%s'. ErrorFailToCreateDir=Echec de création du répertoire '%s'. ErrorFailToDeleteDir=Echec de la suppression du répertoire '%s'. -ErrorFailToMakeReplacementInto=Failed to make replacement into file '%s'. -ErrorFailToGenerateFile=Failed to generate file '%s'. +ErrorFailToMakeReplacementInto=Echec du remplacement dans le fichier '%s'. +ErrorFailToGenerateFile=Echec de génération du fichier '%s'. ErrorThisContactIsAlreadyDefinedAsThisType=Ce contact est déjà défini comme contact pour ce type. ErrorCashAccountAcceptsOnlyCashMoney=Ce compte bancaire est de type caisse et n'accepte que le mode de règlement de type espèce. ErrorFromToAccountsMustDiffers=Les comptes source et destination doivent être différents. @@ -44,7 +44,7 @@ ErrorFailedToWriteInDir=Impossible d'écrire dans le répertoire %s ErrorFoundBadEmailInFile=Syntaxe d'email incorrecte trouvée pour %s lignes dans le fichier (exemple ligne %s avec email=%s) ErrorUserCannotBeDelete=L'utilisateur ne peut pas être supprimé. Peut-être est-il associé à des éléments de Dolibarr. ErrorFieldsRequired=Des champs obligatoires n'ont pas été renseignés -ErrorSubjectIsRequired=The email topic is required +ErrorSubjectIsRequired=L'adresse email topic est requise ErrorFailedToCreateDir=Echec à la création d'un répertoire. Vérifiez que le user du serveur Web ait bien les droits d'écriture dans les répertoires documents de Dolibarr. Si le paramètre safe_mode a été activé sur ce PHP, vérifiez que les fichiers php dolibarr appartiennent à l'utilisateur du serveur Web. ErrorNoMailDefinedForThisUser=Email non défini pour cet utilisateur ErrorFeatureNeedJavascript=Cette fonctionnalité a besoin de javascript activé pour fonctionner. Modifiez dans configuration - affichage. @@ -117,7 +117,7 @@ ErrorQtyForCustomerInvoiceCantBeNegative=La quantité d'une ligne ne peut pas ê ErrorWebServerUserHasNotPermission=Le compte d'exécution du serveur web %s n'a pas les permissions pour cela ErrorNoActivatedBarcode=Aucun type de code-barres activé ErrUnzipFails=Impossible de décompresser le fichier %s avec ZipArchive -ErrNoZipEngine=No engine to zip/unzip %s file in this PHP +ErrNoZipEngine=Aucun outil pour zipper/dézipper le fichier %s dans cette version PHP ErrorFileMustBeADolibarrPackage=Le fichier doit être un package Dolibarr ErrorModuleFileRequired=Vous devez sélectionner un fichier package de module Dolibarr ErrorPhpCurlNotInstalled=L'extension PHP CURL n'est pas installée, ceci est indispensable pour dialoguer avec Paypal. @@ -168,7 +168,7 @@ ErrorGlobalVariableUpdater5=Pas de variable globale ErrorFieldMustBeANumeric=Le champ %s doit être un numérique ErrorMandatoryParametersNotProvided=Paramètre(s) obligatoire(s) non fournis ErrorOppStatusRequiredIfAmount=Vous avez fixé un montant estimé pour cette opportunité/affaire. Aussi, vous devez également entrer son statut -ErrorFailedToLoadModuleDescriptorForXXX=Failed to load module descriptor class for %s +ErrorFailedToLoadModuleDescriptorForXXX=Echec de chagement de la classe descripteur du module %s ErrorBadDefinitionOfMenuArrayInModuleDescriptor=Mauvaise définition du tableau Menu dans le descripteur de module (mauvaise valeur pour la clé fk_menu) ErrorSavingChanges=Une erreur est survenue lors de la sauvegarde des modifications ErrorWarehouseRequiredIntoShipmentLine=L'entrepôt est requis sur la ligne de l'expédition @@ -181,9 +181,9 @@ ErrorStockIsNotEnoughToAddProductOnShipment=Le stock du produit %s est insuffisa ErrorStockIsNotEnoughToAddProductOnProposal=Le stock du produit %s est insuffisant pour permettre un ajout dans une nouvelle proposition commerciale. ErrorFailedToLoadLoginFileForMode=Impossible d'obtenir la clé de connexion pour le mode « %s ». ErrorModuleNotFound=Fichier du module non trouvé. -ErrorFieldAccountNotDefinedForBankLine=Value for Accounting account not defined for source line id %s (%s) -ErrorFieldAccountNotDefinedForInvoiceLine=Value for Accounting account not defined for invoice id %s (%s) -ErrorFieldAccountNotDefinedForLine=Value for Accounting account not defined for the line (%s) +ErrorFieldAccountNotDefinedForBankLine=La valeur du compte comptable n'est pas définie pour l'id de la ligne source %s (%s) +ErrorFieldAccountNotDefinedForInvoiceLine=La valeur pour le compte comptable n'est pas définie pour l'id de facture %s (%s) +ErrorFieldAccountNotDefinedForLine=La valeur pour le compte comptable n'a pas été définie à la ligne (%s) ErrorBankStatementNameMustFollowRegex=Erreur, le nom de relevé bancaire doit suivre la règle de syntaxe suivante %s ErrorPhpMailDelivery=Assurez-vous que vous n'utilisez pas un nombre de destinataires trop élevé et que le contenu de votre message n'est pas similaire à du Spam. Demandez aussi à votre administrateur de vérifier le pare-feu et les journaux serveur pour une information plus complète. ErrorUserNotAssignedToTask=L'utilisateur doit être assigné à une tâche pour qu'il puisse entrer le temps consommé. @@ -192,8 +192,8 @@ ErrorModuleFileSeemsToHaveAWrongFormat=Le package du module semble avoir un mauv ErrorFilenameDosNotMatchDolibarrPackageRules=Le nom du package du module (%s) ne correspond pas à la syntaxe attendue: %s ErrorDuplicateTrigger=Erreur, doublon du trigger nommé %s. Déjà chargé à partir de %s. ErrorNoWarehouseDefined=Erreur, aucun entrepôts défini. -ErrorBadLinkSourceSetButBadValueForRef=The link you use is not valid. A 'source' for payment is defined, but value for 'ref' is not valid. -ErrorTooManyErrorsProcessStopped=Too many errors. Process was stopped. +ErrorBadLinkSourceSetButBadValueForRef=Le lien que vous utilisez n'est pas valide. Une 'source' pour le paiement est définie, mais la valeur pour 'ref' n'est pas valide. +ErrorTooManyErrorsProcessStopped=Trop d'erreurs, Le processus a été arrêté. # Warnings WarningPasswordSetWithNoAccount=Un mot de passe a été fixé pour cet adhérent. Cependant, aucun compte d'utilisateur n'a été créé. Donc, ce mot de passe est stocké, mais ne peut être utilisé pour accéder à Dolibarr. Il peut être utilisé par un module/interface externe, mais si vous n'avez pas besoin de définir ni login ni mot de passe pour un adhérent, vous pouvez désactiver l'option «Gérer un login pour chaque adhérent" depuis la configuration du module Adhérents. Si vous avez besoin de gérer un login, mais pas de mot de passe, vous pouvez laisser ce champ vide pour éviter cet avertissement. Remarque: L'email peut également être utilisé comme login si l'adhérent est lié à un utilisateur. diff --git a/htdocs/langs/fr_FR/install.lang b/htdocs/langs/fr_FR/install.lang index b032f361b01..4f2b0958b1f 100644 --- a/htdocs/langs/fr_FR/install.lang +++ b/htdocs/langs/fr_FR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Si vous utilisez l'installeur automatique DoliWamp, les do KeepDefaultValuesDeb=Vous utilisez l'assistant d'installation depuis un environnement Linux (Ubuntu, Debian, Fedor...). Les valeurs présentes ici sont pré-remplies. Seul le mot de passe d'accès du propriétaire de la base de données doit être renseigné. Les autres paramètres ne doivent être modifiés qu'en connaissance de cause. KeepDefaultValuesMamp=Vous utilisez l'assistant d'installation DoliMamp. Les valeurs présentes ici sont pré-remplies. Leur modification ne doit être effectuée qu'en connaissance de cause. KeepDefaultValuesProxmox=Vous utilisez l'assistant d'installation depuis une application Proxmox. Les valeurs présentes ici sont pré-remplies. Leur modification ne doit être effectuée qu'en connaissance de cause. +UpgradeExternalModule=Lancer le processus de mise à jour d'un module externe ######### # upgrade diff --git a/htdocs/langs/fr_FR/loan.lang b/htdocs/langs/fr_FR/loan.lang index ab44c50a328..11bcbd84f9b 100644 --- a/htdocs/langs/fr_FR/loan.lang +++ b/htdocs/langs/fr_FR/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s remboursera les intérêts GoToPrincipal=%s remboursera le principal (capital) YouWillSpend=Vous allez dépenser %s pour l'année %s ListLoanAssociatedProject=Liste des prêts associés au projet +AddLoan=Créer prêt # Admin ConfigLoan=Configuration du module Emprunt LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Compte comptable remboursement capital d'un emprunt par défaut LOAN_ACCOUNTING_ACCOUNT_INTEREST=Compte comptable paiement d'intérêt d'un emprunt par défaut LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Compte comptable paiement de l'assurance d'un emprunt par défaut +CreateCalcSchedule=Créer / Modifier échéancier de prêt diff --git a/htdocs/langs/fr_FR/mails.lang b/htdocs/langs/fr_FR/mails.lang index afd45b65c9d..425253b5430 100644 --- a/htdocs/langs/fr_FR/mails.lang +++ b/htdocs/langs/fr_FR/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Envoyé partiellement MailingStatusSentCompletely=Envoyé complètement MailingStatusError=Erreur MailingStatusNotSent=Non envoyé -MailSuccessfulySent=L'e-mail est prêt à être envoyé (de %s à %s) +MailSuccessfulySent=E-mail (de %s vers %s) accepté pour expédition MailingSuccessfullyValidated=Email validé MailUnsubcribe=Désinscription MailingStatusNotContact=Ne plus contacter @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact avec filtres des tiers MailingModuleDescContactsByCompanyCategory=Contacts/adresses par tags/catégorie de tiers MailingModuleDescContactsByCategory=Contacts par tags/catégories MailingModuleDescContactsByFunction=Contacts par poste/fonction +MailingModuleDescEmailsFromFile=E-mails à partir d'un fichier +MailingModuleDescEmailsFromUser=E-mails entrés par l'utilisateur +MailingModuleDescDolibarrUsers=Utilisateurs avec e-mail +MailingModuleDescThirdPartiesByCategories=Tiers (par catégories/tags) # Libelle des modules de liste de destinataires mailing LineInFile=Ligne %s du fichier @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=Aucune notification par email n'est prévue pour cet événement et société ANotificationsWillBeSent=1 notification va être envoyée par email SomeNotificationsWillBeSent=%s notifications vont être envoyées par email -AddNewNotification=Activer une nouvelle cible de notification email -ListOfActiveNotifications=Liste des cibles actives de notifications emails +AddNewNotification=Activer un nouveau couple cible/évènement pour notification email +ListOfActiveNotifications=Liste des cibles/évènements actifs pour notification par emails ListOfNotificationsDone=Liste des notifications emails envoyées MailSendSetupIs=La configuration d'envoi d'emails a été définir sur '%s'. Ce mode ne peut pas être utilisé pour envoyer des e-mailing en masse. MailSendSetupIs2=Vous devez d'abord aller, avec un compte d'administrateur, dans le menu %sAccueil - Configuration - EMails%s pour changer le paramètre '%s' pour utiliser le mode '%s'. Avec ce mode, vous pouvez accéder à la configuration du serveur SMTP fourni par votre fournisseur de services Internet et utiliser la fonction d'envoi d'email en masse. diff --git a/htdocs/langs/fr_FR/main.lang b/htdocs/langs/fr_FR/main.lang index e37d708fbbe..568fe6382b0 100644 --- a/htdocs/langs/fr_FR/main.lang +++ b/htdocs/langs/fr_FR/main.lang @@ -72,8 +72,10 @@ SeeHere=Regardez ici Apply=Appliquer BackgroundColorByDefault=Couleur de fond FileRenamed=Le fichier a été renommé avec succès -FileUploaded=Le fichier a été transféré avec succès FileGenerated=Le fichier a été généré avec succès +FileSaved=The file was successfully saved +FileUploaded=Le fichier a été transféré avec succès +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Un fichier a été sélectionné pour attachement mais n'a pas encore été uploadé. Cliquez sur "Joindre ce fichier" pour cela. NbOfEntries=Nb d'entrées GoToWikiHelpPage=Consulter l'aide (nécessite un accès internet) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=HT TTC=TTC +INCT=TTC VAT=TVA VATs=TVA LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct. MonthShort11=Nov. MonthShort12=Déc. AttachedFiles=Fichiers et documents joints -FileTransferComplete=Le fichier a été correctement transféré DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -613,7 +615,7 @@ TotalWoman=Totale NeverReceived=Jamais reçu Canceled=Annulé YouCanChangeValuesForThisListFromDictionarySetup=Les valeurs de cette liste sont modifiables depuis le menu Accueil > Configuration > Dictionnaires -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanChangeValuesForThisListFrom=Vous pouvez changer les valeurs de cette liste à partir du menu %s YouCanSetDefaultValueInModuleSetup=Vous pouvez définir la valeur par défaut utilisée lors de la création d'un nouvel enregistrement dans la configuration du module Color=Couleur Documents=Fichiers joints @@ -649,7 +651,7 @@ FreeLineOfType=Ligne libre de type CloneMainAttributes=Cloner l'objet avec ces attributs principaux PDFMerge=Fusion PDF Merge=Fusion -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Modèle PDF standard PrintContentArea=Afficher page d'impression de la zone centrale MenuManager=Gestionnaire de menu WarningYouAreInMaintenanceMode=Attention, vous êtes en mode maintenance, aussi seul l'utilisateur identifié par %s est autorisé à utiliser l'application en ce moment. @@ -716,7 +718,7 @@ from=de toward=vers Access=Accès SelectAction=Sélectionner l'action -SelectTargetUser=Select target user/employee +SelectTargetUser=Sélectionnez l'utilisateur/l'employé cible HelpCopyToClipboard=Utilisez Ctrl+C pour copier dans le presse-papier SaveUploadedFileWithMask=Sauver le fichier sur le serveur sous le nom "%s" (sinon "%s") OriginFileName=nom du fichier source @@ -727,7 +729,7 @@ ViewPrivateNote=Voir les notes XMoreLines=%s ligne(s) cachées PublicUrl=URL publique AddBox=Ajouter boite -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Sélectionnez un élément et cliquez %s PrintFile=Imprimer fichier %s ShowTransaction=Afficher l'écriture sur le compte bancaire GoIntoSetupToChangeLogo=Allez dans Accueil - Configuration - Société/institution pour changer le logo ou aller dans Accueil - Configuration - Affichage pour le cacher. @@ -743,8 +745,8 @@ Hello=Bonjour Sincerely=Sincèrement DeleteLine=Effacer ligne ConfirmDeleteLine=Êtes-vous sûr de vouloir supprimer cette ligne ? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. +NoPDFAvailableForDocGenAmongChecked=Aucun document PDF n'était disponible pour la génération de document parmi les enregistrements vérifiés +TooManyRecordForMassAction=Trop d'enregistrements sélectionnés pour l'action de masse. L'action est restreinte à une liste de %s enregistrements NoRecordSelected=Aucu enregistrement sélectionné MassFilesArea=Zone des fichiers générés en masse ShowTempMassFilesArea=Afficher la zone des fichiers générés en masse @@ -764,20 +766,20 @@ Calendar=Calendrier GroupBy=Grouper par... ViewFlatList=Voir vue liste RemoveString=Supprimer la chaine '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. +SomeTranslationAreUncomplete=Certains languages pourraient n'être que partiellement traduis, ou contenir des erreurs. Si vous en détectez, vous pouvez les corriger en vous enregistrant sur https://transifex.com/projects/p/dolibarr/ DirectDownloadLink=Lien de téléchargement direct Download=Téléchargement ActualizeCurrency=Mettre à jour le taux de devise Fiscalyear=Exercice fiscal ModuleBuilder=Générateur de Module -SetMultiCurrencyCode=Set currency +SetMultiCurrencyCode=Choisir la devise BulkActions=Actions de masse -ClickToShowHelp=Click to show tooltip help +ClickToShowHelp=Cliquez pour montrer l'info-bulle d'aide HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +HRAndBank=HR et banque +AutomaticallyCalculated=Calculé automatiquement +TitleSetToDraft=Retour à l'état de brouillon +ConfirmSetToDraft=Etes vous sûr de vouloir revenir à l'état Brouillon ? # Week day Monday=Lundi Tuesday=Mardi diff --git a/htdocs/langs/fr_FR/margins.lang b/htdocs/langs/fr_FR/margins.lang index 96bf3d99d7a..7c55055c781 100644 --- a/htdocs/langs/fr_FR/margins.lang +++ b/htdocs/langs/fr_FR/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Le taux doit être une valeure numérique markRateShouldBeLesserThan100=Le taux de marque doit être inférieur à 100 ShowMarginInfos=Afficher les infos de marges CheckMargins=Détails des marges -MarginPerSaleRepresentativeWarning=Les données de marge par utilisateur sont calculées en fonction du lien entre les tiers et l'utilisateur affecté en tant que commercial. Les tiers peuvent ne pas avoir de commercial ou en avoir plusieurs. De ce fait, certaines lignes du rapport peuvent ne pas être affichées ou l'être plusieurs fois. +MarginPerSaleRepresentativeWarning=Le rapport de la marge utilisateur utilise le lien entre les tiers et les représentants commerciaux pour calculer la marge de chaque représentant. Étant donné que certains tiers peuvent ne pas avoir de représentant de vente dédié et que certaines tiers peuvent être liés à plusieurs, certains montants peuvent ne pas être inclus dans ce rapport (s'il n'y a pas de représentant de vente), certains peuvent apparaître sur des lignes différentes (pour chaque représentant de vente). diff --git a/htdocs/langs/fr_FR/members.lang b/htdocs/langs/fr_FR/members.lang index 3f74da84dd4..b107fd0448f 100644 --- a/htdocs/langs/fr_FR/members.lang +++ b/htdocs/langs/fr_FR/members.lang @@ -26,7 +26,7 @@ MembersListNotUpToDate=Liste des adhérents valides non à jour d'adhésion MembersListResiliated=Liste des adhérents résiliés MembersListQualified=Liste des adhérents qualifiés MenuMembersToValidate=Adhérents brouillons -MenuMembersValidated=Adhérents valides +MenuMembersValidated=Adhérents validés MenuMembersUpToDate=Adhérents à jour MenuMembersNotUpToDate=Adhérents non à jour MenuMembersResiliated=Adhérents résiliés @@ -42,12 +42,12 @@ MemberTypeId=Id type adhérent MemberTypeLabel=Libellé du type adhérent MembersTypes=Types d'adhérents MemberStatusDraft=Brouillon (à valider) -MemberStatusDraftShort=Brouillon +MemberStatusDraftShort=Traite MemberStatusActive=Validé (attente cotisation) MemberStatusActiveShort=Validé MemberStatusActiveLate=Adhésion/cotisation expirée MemberStatusActiveLateShort=Non à jour -MemberStatusPaid=Adhésion à jour +MemberStatusPaid=Adhésions à jour MemberStatusPaidShort=A jour MemberStatusResiliated=Adhérent résilié MemberStatusResiliatedShort=Résilié @@ -90,7 +90,7 @@ PublicMemberList=Liste des membres publics BlankSubscriptionForm=Formulaire d'auto-inscription public BlankSubscriptionFormDesc=Dolibarr peut offrir une URL de page publique permettant de postuler à une adhésion pour les visiteurs externes. S'il existe un module de paiement en ligne, un formulaire de paiement sera également automatiquement proposé. EnablePublicSubscriptionForm=Activer le formulaire d'auto-inscription public -ForceMemberType=Forcer le type de membre +ForceMemberType=Forcer le type d'adhérent ExportDataset_member_1=Adhérents et adhésions ImportDataset_member_1=Adhérents LastMembersModified=Les %s derniers adhérents modifiés @@ -137,8 +137,8 @@ DocForAllMembersCards=Génération de cartes pour tous les adhérents DocForOneMemberCards=Génération de cartes pour un adhérent particulier DocForLabels=Génération d'étiquettes d'adresses SubscriptionPayment=Paiement cotisation -LastSubscriptionDate=Les dernières date de souscription -LastSubscriptionAmount=Les derniers montant de souscription +LastSubscriptionDate=Date de dernière adhésion +LastSubscriptionAmount=Montant dernière adhésion MembersStatisticsByCountries=Statistiques des membres par pays MembersStatisticsByState=Statistiques des membres par département/province/canton MembersStatisticsByTown=Statistiques des membres par ville @@ -151,6 +151,7 @@ MembersByTownDesc=Cet écran vous présente une vue statistique du nombre d'adh MembersStatisticsDesc=Choisissez les statistiques que vous désirez consulter... MenuMembersStats=Statistiques LastMemberDate=Date dernière adhésion +LatestSubscriptionDate=Date de dernière adhésion Nature=Nature Public=Informations publiques NewMemberbyWeb=Nouvel adhérent ajouté. En attente de validation diff --git a/htdocs/langs/fr_FR/modulebuilder.lang b/htdocs/langs/fr_FR/modulebuilder.lang new file mode 100644 index 00000000000..d12a7a0fa8a --- /dev/null +++ b/htdocs/langs/fr_FR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Modules générés/éditables trouvés %s (ils sont détectés comme éditables quand le fichier %s existse dans le répertoire racine du module). +NewModule=Nouveau module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialisé +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Entrez ici toutes les informations générales qui décrivent votre module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Cet onglet est dédié à la définition des entrées menu fournies par votre module. +ModuleBuilderDescpermissions=Cet onglet est dédié à la définition des nouvelles permissions dont vous voulez fournir avec votre module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=Cet onglet est dédié aux points d'accroche. +ModuleBuilderDescwidgets=Cet onglet est dédié à la gestion/construction de widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Zone de danger +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=Ce module a été activé. Tout changement sur lui pourrait casser une fonctionnalité actuellement activée. +DescriptionLong=Description longue +EditorName=Nom de l'éditeur +EditorUrl=URL de l'éditeur +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/fr_FR/multicurrency.lang b/htdocs/langs/fr_FR/multicurrency.lang new file mode 100644 index 00000000000..47830225a07 --- /dev/null +++ b/htdocs/langs/fr_FR/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi-devise +ErrorAddRateFail=Erreur lors de l'ajout du taux +ErrorAddCurrencyFail=Erreur lors de l'ajout de la devise +ErrorDeleteCurrencyFail=Erreur de suppression +multicurrency_syncronize_error=Erreur de synchronisation %s +multicurrency_useOriginTx=Quand un objet est créé à partir d'un autre, gardez le taux original de l'objet source ( ou alors, utilisez le nouveau taux connu ) +CurrencyLayerAccount=API CurrencyLayer +CurrencyLayerAccount_help_to_synchronize=Vous devez créer un compte sur leur site web pour pouvoir utiliser cette fonctionnalité.
Obtenez votre Clé API
Si vous utilisez un compte gratuit, vous ne pouvez pas changer la devise source(USD par défaut)
Mais si votre devise principale n'est pas USD, vous pouvez utiliser une devise source alternative pour forcer votre devise principale

Vous êtes limité à 1000 synchronisations par mois. +multicurrency_appId=Clé API +multicurrency_appCurrencySource=Devise source +multicurrency_alternateCurrencySource= Source de devise alternative +CurrenciesUsed=Devises utilisées +CurrenciesUsed_help_to_add=Ajoutez les différentes devises et taux dont vous avez besoin sur vos propositions commerciales,commandes, etc. +rate=taux +MulticurrencyReceived=Reçu, devise originale +MulticurrencyRemainderToTake=Montant restant, devise originale +MulticurrencyPaymentAmount=Montant du règlement (devise d'origine) diff --git a/htdocs/langs/fr_FR/other.lang b/htdocs/langs/fr_FR/other.lang index 5ee7db08209..5b160082aaf 100644 --- a/htdocs/langs/fr_FR/other.lang +++ b/htdocs/langs/fr_FR/other.lang @@ -9,18 +9,18 @@ BirthdayDate=Date anniversaire DateToBirth=Date de naissance BirthdayAlertOn=alerte anniversaire active BirthdayAlertOff=alerte anniversaire inactive -TransKey=Translation of the key TransKey -MonthOfInvoice=Month (number 1-12) of invoice date -TextMonthOfInvoice=Month (tex) of invoice date -PreviousMonthOfInvoice=Previous month (number 1-12) of invoice date -TextPreviousMonthOfInvoice=Previous month (text) of invoice date -NextMonthOfInvoice=Following month (number 1-12) of invoice date -TextNextMonthOfInvoice=Following month (text) of invoice date +TransKey=Traduction de la clé TransKey +MonthOfInvoice=Mois (numéro 1-12) de la date de facturation +TextMonthOfInvoice=Mois (tex) de la date de facturation +PreviousMonthOfInvoice=Mois précédent (numéro 1-12) la date de facturation +TextPreviousMonthOfInvoice=Mois précédent (texte) de la date de facturation +NextMonthOfInvoice=Le mois suivant (numéro 1-12) la date de facturation +TextNextMonthOfInvoice=Le mois suivant (texte) la date de facturation ZipFileGeneratedInto=Zip file generated into %s. -YearOfInvoice=Year of invoice date -PreviousYearOfInvoice=Previous year of invoice date -NextYearOfInvoice=Following year of invoice date +YearOfInvoice=Année de la date de facturation +PreviousYearOfInvoice=Année précédente de la date de facturation +NextYearOfInvoice=Année suivante de la date de facturation Notify_FICHINTER_ADD_CONTACT=Contact ajouté à l'intervention Notify_FICHINTER_VALIDATE=Validation fiche intervention @@ -81,7 +81,7 @@ PredefinedMailContentSendSupplierInvoice=__CONTACTCIVNAME__\n\nVous trouverez ci PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint le bon d'expédition __SHIPPINGREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nVeuillez trouver ci-joint la fiche d'intervention __FICHINTERREF__\n\n__PERSONALIZED__Cordialement\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ -PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ +PredefinedMailContentUser=Aa__PERSONALIZED__\n\n__SIGNATURE__ DemoDesc=Dolibarr est un logiciel de gestion proposant plusieurs modules métiers. Une démonstration qui inclut tous ces modules n'a pas de sens car ce cas n'existe jamais (plusieurs centaines de modules disponibles). Aussi, quelques profils type de démo sont disponibles. ChooseYourDemoProfil=Veuillez choisir le profil de démonstration qui correspond le mieux à votre activité… ChooseYourDemoProfilMore=...ou construisez votre propre profil
(sélection manuelle des modules) @@ -124,6 +124,7 @@ WeightUnitkg=Kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=livre +WeightUnitounce=once Length=Longueur LengthUnitm=m LengthUnitdm=dm @@ -161,19 +162,19 @@ EnableGDLibraryDesc=Vous devez activer ou installer la librairie GD avec votre P ProfIdShortDesc=Id prof. %s est une information qui dépend du pays du tiers.
Par exemple, pour le pays %s, il s'agit du code %s. DolibarrDemo=Démonstration de Dolibarr ERP/CRM StatsByNumberOfUnits=Statistiques de quantités de produits/services -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) +StatsByNumberOfEntities=Statistiques en nombre d'entités référantes (nb de factures, ou commandes...) NumberOfProposals=Nombre de propositions commerciales NumberOfCustomerOrders=Nombre de commandes clients NumberOfCustomerInvoices=Nombre de factures clients NumberOfSupplierProposals=Nombre de demandes de prix NumberOfSupplierOrders=Nombre de commandes fournisseurs NumberOfSupplierInvoices=Nombre de factures fournisseurs -NumberOfUnitsProposals=Quantités présentes sur les propositions commerciales -NumberOfUnitsCustomerOrders=Quantités présentes sur les commandes clients -NumberOfUnitsCustomerInvoices=Quantités présentes sur les factures fournisseurs -NumberOfUnitsSupplierProposals=Quantités présentes en demande de prix +NumberOfUnitsProposals=Quantités présentes dans les propositions commerciales +NumberOfUnitsCustomerOrders=Quantités présentes dans les commandes clients +NumberOfUnitsCustomerInvoices=Quantités présentes dans les factures fournisseurs +NumberOfUnitsSupplierProposals=Quantités présentes dans les demande de prix NumberOfUnitsSupplierOrders=Quantités présentes dans les commandes fournisseurs -NumberOfUnitsSupplierInvoices=Quantités présentes sur les factures fournisseurs +NumberOfUnitsSupplierInvoices=Quantités présentes dans les factures fournisseurs EMailTextInterventionAddedContact=Une nouvelle intervention %s vous a été assignée EMailTextInterventionValidated=La fiche intervention %s vous concernant a été validée. EMailTextInvoiceValidated=La facture %s vous concernant a été validée. diff --git a/htdocs/langs/fr_FR/paybox.lang b/htdocs/langs/fr_FR/paybox.lang index 00c36a5573f..93a548db77b 100644 --- a/htdocs/langs/fr_FR/paybox.lang +++ b/htdocs/langs/fr_FR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email de confirmation du paiement Creditor=Bénéficiaire PaymentCode=Code de paiement PayBoxDoPayment=Poursuivre le paiement par carte +ToPay=Saisir règlement YouWillBeRedirectedOnPayBox=Vous serez redirigé vers la page sécurisée Paybox de saisie de votre carte bancaire Continue=Continuer ToOfferALinkForOnlinePayment=URL de paiement %s diff --git a/htdocs/langs/fr_FR/paypal.lang b/htdocs/langs/fr_FR/paypal.lang index 58a5914cc6e..67b51b526ce 100644 --- a/htdocs/langs/fr_FR/paypal.lang +++ b/htdocs/langs/fr_FR/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Voici l'identifiant de la transaction: %s PAYPAL_ADD_PAYMENT_URL=Ajouter l'URL de paiement Paypal lors de l'envoi d'un document par email PredefinedMailContentLink=Vous pouvez cliquer sur le lien sécurisé ci-dessous pour effectuer votre paiement (Paypal) si ce dernier n'a pas encore été fait.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Vous êtes actuellement dans le mode "sandbox" -NewPaypalPaymentReceived=Nouveau paiement Paypal reçu -NewPaypalPaymentFailed=Nouveau paiement Paypal tenté mais en échec +NewOnlinePaymentReceived=Nouveau paiement en ligne reçu +NewOnlinePaymentFailed=Nouvelle tentative de paiement en ligne échouée PAYPAL_PAYONLINE_SENDEMAIL=Email à prévenir en cas de paiement (succès ou non) ReturnURLAfterPayment=URL de retour de paiement -ValidationOfPaypalPaymentFailed=Echéc de validation du paiement Paypal -PaypalConfirmPaymentPageWasCalledButFailed=La page de confirmation de paiement Paypal a été appelé par Paypal mais cette confirmation a échouée +ValidationOfOnlinePaymentFailed=Validation d'un paiement en ligne échouée +PaymentSystemConfirmPaymentPageWasCalledButFailed=La page de confirmation des paiements ayant été apellée par le système de paiement a retourné un erreur SetExpressCheckoutAPICallFailed=L'appel à l'API SetExpressCheckout a échoué. DoExpressCheckoutPaymentAPICallFailed=L'appel à l'API DoExpressCheckoutPayment a échoué. DetailedErrorMessage=Message d'erreur détaillé ShortErrorMessage=Message d'erreur court ErrorCode=Code erreur ErrorSeverityCode=Code d'erreur sévérité +OnlinePaymentSystem=Système de paiement en ligne +PaypalLiveEnabled=Paypal live activé ( différent du mode test/bac à sable ) diff --git a/htdocs/langs/fr_FR/products.lang b/htdocs/langs/fr_FR/products.lang index 25325d35a7f..410217cc15a 100644 --- a/htdocs/langs/fr_FR/products.lang +++ b/htdocs/langs/fr_FR/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Code comptable (vente) ProductOrService=Produit ou Service ProductsAndServices=Produits et Services ProductsOrServices=Produits ou Services -ProductsOnSell=Produit en vente ou en achat -ProductsNotOnSell=Produit hors vente et hors achat +ProductsOnSaleOnly=Uniquement produits en vente +ProductsOnPurchaseOnly=Produits seulement en achat +ProductsNotOnSell=Produits hors vente et hors achat ProductsOnSellAndOnBuy=Produits en vente et en achat -ServicesOnSell=Services en vente ou en achat -ServicesNotOnSell=Service hors vente +ServicesOnSaleOnly=Uniquement services en vente +ServicesOnPurchaseOnly=Uniquement services à acheter +ServicesNotOnSell=Services hors vente et hors achat ServicesOnSellAndOnBuy=Services en vente et en achat LastModifiedProductsAndServices=Les %s derniers produits/services modifiés LastRecordedProducts=Les %s derniers produits enregistrés @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litre l=L +unitP=Pièce +unitSET=Positionner +unitS=Seconde +unitH=Heure +unitD=Jour +unitKG=Kilogramme +unitG=Gramme +unitM=Mètre +unitLM=Mètre linéaire +unitM2=Mètre carré +unitM3=Mètre cube +unitL=Litre ProductCodeModel=Masque pour les produits ServiceCodeModel=Masque pour les services CurrentProductPrice=Prix actuel @@ -186,6 +200,7 @@ MultipriceRules=Règles du niveau de prix UseMultipriceRules=Utilisation des règles de niveau de prix (définies dans la configuration du module de produit) pour calculer automatiquement le prix de tous les autres niveaux en fonction de premier niveau PercentVariationOver=%% de variation sur %s PercentDiscountOver=%% de remis sur %s +KeepEmptyForAutoCalculation=Laisser vide pour un calcul automatique à partir des données de poids ou de volume des produits. ### composition fabrication Build=Fabriquer ProductsMultiPrice=Produits et prix pour chaque niveau de prix @@ -232,12 +247,18 @@ ComposedProduct=Sous-produits MinSupplierPrice=Prix minimum fournisseur MinCustomerPrice=Prix client minimum DynamicPriceConfiguration=Configuration du prix dynamique -DynamicPriceDesc=En activant ce module, vous serez en mesure de positionner des fonctions mathématiques pour calculer les prix Client ou Fournisseur dans la fiche produit. Ces fonctions peuvent utiliser tous les opérateurs mathématiques, des constantes et des variables. Vous pouvez positionner ici les variables que vous voulez, et si elles nécessitent une mise à jour automatique, l'URL externe à utiliser pour demander à Dolibarr de mettre à jour automatiquement leur valeur. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Ajouter une Variable AddUpdater=Ajouter URL de mise à jour GlobalVariables=Variables globales VariableToUpdate=Variable à mettre à jour GlobalVariableUpdaters=Mis à jour variable globale +GlobalVariableUpdaterType0=Données JSON +GlobalVariableUpdaterHelp0=Analyse les données JSON depuis l'URL spécifiée, VALUE indique l'emplacement de la valeur pertinente, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Données WebService +GlobalVariableUpdaterHelp1=Analyse les données de WebService pour l'URL spécifiée, NS spécifie l'espace de noms, VALUE indique l'emplacement de la valeur pertinente, DATA doit contenir les données à envoyer et METHOD est la méthode WS appelée +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Intervale de mise à jour (minutes) LastUpdated=Dernière mise à jour CorrectlyUpdated=Mise à jour avec succès @@ -260,6 +281,8 @@ SizeUnits=Unité de taille DeleteProductBuyPrice=Effacer le prix d'achat ConfirmDeleteProductBuyPrice=Êtes-vous sur de vouloir supprimer ce prix d'achat ? SubProduct=Sous-produit +ProductSheet=Fiche produit +ServiceSheet=Fiche service #Attributes VariantAttributes=Attributs de variante @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Êtes-vous sur de vouloir supprimer la valeur ProductCombinationDeleteDialog=Êtes-vous sur de vouloir supprimer la variante de ce produit "%s" ? ProductCombinationAlreadyUsed=Une erreur s'est produite lors de la suppression de la variante. Vérifiez qu'elle ne soit pas utilisée par un autre objet. ProductCombinations=Variantes +PropagateVariant=Propager les variantes HideProductCombinations=Cacher les variantes dans les listes de sélection des produits ProductCombination=Variante NewProductCombination=Nouvelle variante EditProductCombination=Editer les variantes +NewProductCombinations=Nouvelles variantes +EditProductCombinations=Editer combinaisons +SelectCombination=Sélectionnez combinaison ProductCombinationGenerator=Générateur de variantes Features=Fonctionnalités PriceImpact=Impact sur le prix @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=Une erreur s'est produite lors de la suppression NbOfDifferentValues=Nb de valeurs différentes NbProducts=Nb de produits ParentProduct=Produit parent -HideChildProducts=Cacher les produits fils -ConfirmCloneProductCombinations=Voulez-vous copier toutes les variantes de produit dans le produit ayant la référence donnée? +HideChildProducts=Cacher les variantes de produits +ConfirmCloneProductCombinations=Êtes-vous sur de vouloir copier les variantes du produits vers l'autre produit parent avec la référence donnée ? CloneDestinationReference=Destination du produit référence ErrorCopyProductCombinations=Une erreur s'est produite lors de la copie des variantes de produit ErrorDestinationProductNotFound=Produit destination non trouvé diff --git a/htdocs/langs/fr_FR/projects.lang b/htdocs/langs/fr_FR/projects.lang index 51f26eb28d8..ea54d6f967d 100644 --- a/htdocs/langs/fr_FR/projects.lang +++ b/htdocs/langs/fr_FR/projects.lang @@ -64,7 +64,7 @@ TaskDescription=Description de la tâche NewTask=Nouvelle tâche AddTask=Créer tâche AddTimeSpent=Saisir temps consommé -AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForDay=Ajoutez ici le temps passé pour cette journée/tâche Activity=Activité Activities=Tâches/activités MyActivities=Mes tâches/activités @@ -84,7 +84,7 @@ ListPredefinedInvoicesAssociatedProject=Liste des modèles de facture client ass ListSupplierOrdersAssociatedProject=Liste des commandes fournisseurs associées au projet ListSupplierInvoicesAssociatedProject=Liste des factures fournisseurs associées au projet ListContractAssociatedProject=Liste des contrats associés au projet -ListShippingAssociatedProject=List of shippings associated with the project +ListShippingAssociatedProject=Liste des expéditions associées avec le projet ListFichinterAssociatedProject=Liste des interventions associées au projet ListExpenseReportsAssociatedProject=Liste des notes de frais associées avec ce projet ListDonationsAssociatedProject=Liste des dons associés au projet @@ -109,7 +109,7 @@ ConfirmReOpenAProject=Êtes-vous sûr de vouloir rouvrir ce projet ? ProjectContact=Contacts projet ActionsOnProject=Événements sur le projet YouAreNotContactOfProject=Vous n'êtes pas contact de ce projet privé -UserIsNotContactOfProject=User is not a contact of this private project +UserIsNotContactOfProject=L'utilisateur n'est pas un contact/adresse de ce projet privé DeleteATimeSpent=Suppression du temps consommé ConfirmDeleteATimeSpent=Êtes-vous sûr de vouloir supprimer ce temps consommé ? DoNotShowMyTasksOnly=Voir aussi les tâches qui ne me sont pas affectées @@ -118,7 +118,7 @@ TaskRessourceLinks=Ressources ProjectsDedicatedToThisThirdParty=Projets dédiés à ce tiers NoTasks=Aucune tâche pour ce projet LinkedToAnotherCompany=Liés à autre société -TaskIsNotAssignedToUser=Task not assigned to user. Use button '%s' to assign task now. +TaskIsNotAssignedToUser=Tâche non assignée à l'utilisateur. Utilisez le bouton '%s' pour assigner la tâche maintenant. ErrorTimeSpentIsEmpty=Le temps consommé n'est pas renseigné ThisWillAlsoRemoveTasks=Cette opération détruira également les tâches du projet (%s tâches actuellement) et le suivi des consommés. IfNeedToUseOhterObjectKeepEmpty=Si des objets (facture, commande, ...), appartenant à un autre tiers que celui choisi, doivent être liés au projet à créer, laisser vide afin de laisser le projet multi-tiers. @@ -169,7 +169,7 @@ FirstAddRessourceToAllocateTime=Affecter un utilisateur pour saisir des temps InputPerDay=Saisie par jour InputPerWeek=Saisie par semaine InputPerAction=Saisie par action -TimeAlreadyRecorded=This is time spent already recorded for this task/day and user %s +TimeAlreadyRecorded=C'est le temps passé déjà enregistré pour cette tâche/jour et pour l'utilisateur %s ProjectsWithThisUserAsContact=Projets avec cet utilisateur comme contact TasksWithThisUserAsContact=Tâches assignées à cet utilisateur ResourceNotAssignedToProject=Non assigné à un projet @@ -188,7 +188,7 @@ ProjectOppAmountOfProjectsByMonth=Montant des opportunités par mois ProjectWeightedOppAmountOfProjectsByMonth=Montant pondéré des opportunités par mois ProjectOpenedProjectByOppStatus=Opportunités/affaires ouvertes par statut ProjectsStatistics=Statistics sur les projets -TasksStatistics=Statistics on project/lead tasks +TasksStatistics=Statistiques sur le projet/tâche principale TaskAssignedToEnterTime=Tâche assignée. La saisie de temps sur cette tâche devrait être possible. IdTaskTime=Id ligne de temps YouCanCompleteRef=SI vous souhaitez compléter la référence avec d'autres informations filtrables, il est recommandé d'ajouter le caractère - entre les données. La numérotation automatique sera alors fonctionnelle pour le prochain compteur. Par exemple %s-ABC. Il est également possible d'ajouter des mots-clés dans le libellé. Il est cependant recommandé d'utiliser un attribut supplémentaire ou extrafield. diff --git a/htdocs/langs/fr_FR/propal.lang b/htdocs/langs/fr_FR/propal.lang index 5ef18012673..f57692e0aa4 100644 --- a/htdocs/langs/fr_FR/propal.lang +++ b/htdocs/langs/fr_FR/propal.lang @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Montant par mois (HT) NbOfProposals=Nombre de propositions commerciales ShowPropal=Afficher proposition PropalsDraft=Brouillons -PropalsOpened=Ouverte +PropalsOpened=Ouvert PropalStatusDraft=Brouillon (à valider) PropalStatusValidated=Validée (proposition ouverte) PropalStatusSigned=Signée (à facturer) diff --git a/htdocs/langs/fr_FR/resource.lang b/htdocs/langs/fr_FR/resource.lang index c59071aac9a..05c91f0432a 100644 --- a/htdocs/langs/fr_FR/resource.lang +++ b/htdocs/langs/fr_FR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Ressource supprimée avec succès DictionaryResourceType=Type de ressource SelectResource=Sélectionner ressource + +IdResource=id ressource +AssetNumber=Numéro de série +ResourceTypeCode=Code de type de ressource +ImportDataset_resource_1=Ressources diff --git a/htdocs/langs/fr_FR/salaries.lang b/htdocs/langs/fr_FR/salaries.lang index 27e9e1b7416..b029df75429 100644 --- a/htdocs/langs/fr_FR/salaries.lang +++ b/htdocs/langs/fr_FR/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable par défaut pour les paiements des salaires +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Compte comptable salaires +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Compte comptable par défaut pour les charges de personnel Salary=Salaire Salaries=Salaires @@ -7,8 +8,8 @@ NewSalaryPayment=Nouveau règlement de salaire SalaryPayment=Règlement salaire SalariesPayments=Règlements des salaires ShowSalaryPayment=Afficher règlement de salaire -THM=Salaire horaire moyen -TJM=Salaire journalier moyen -CurrentSalary=Salaire courant +THM=Tarif horaire moyen +TJM=Tarif journalier moyen +CurrentSalary=Salaire actuel THMDescription=Cette valeur peut être utilisé pour calculer le coût horaire consommé dans un projet suivi par utilisateurs si le module projet est utilisé TJMDescription=Cette valeur est actuellement seulement une information et n'est utilisé pour aucun calcul diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang index 5c3974dc11c..ddea2403442 100644 --- a/htdocs/langs/fr_FR/sendings.lang +++ b/htdocs/langs/fr_FR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Fiche expédition ConfirmDeleteSending=Êtes-vous sûr de vouloir supprimer cette expédition ? ConfirmValidateSending=Êtes-vous sûr de vouloir valider cette expédition sous la référence %s? ConfirmCancelSending=Êtes-vous sûr de vouloir annuler cette expédition ? -DocumentModelSimple=Modèle simple DocumentModelMerou=Modèle Merou A5 WarningNoQtyLeftToSend=Alerte, aucun produit en attente d'expédition. StatsOnShipmentsOnlyValidated=Statistiques effectuées sur les expéditions validées uniquement. La date prise en compte est la date de validation (la date de prévision de livraison n'étant pas toujours renseignée). @@ -53,7 +52,7 @@ ShipmentCreationIsDoneFromOrder=Pour le moment, la création d'une nouvelle exp ShipmentLine=Ligne d'expédition ProductQtyInCustomersOrdersRunning=Quantité de produit en commandes client ouvertes ProductQtyInSuppliersOrdersRunning=Quantité de produit en commandes fournisseur ouvertes -ProductQtyInShipmentAlreadySent=Quantité du produit parmi les commandes clients déjà envoyées +ProductQtyInShipmentAlreadySent=Quantité de produit en commande client ouverte déjà expédiée ProductQtyInSuppliersShipmentAlreadyRecevied=Quantité de produit déjà reçu en commandes fournisseur ouvertes NoProductToShipFoundIntoStock=Aucun produit à expédier n'a été trouver dans l'entrepôt %s. Corrigez l'inventaire ou retourner choisir un autre entrepôt. WeightVolShort=Poids/vol. diff --git a/htdocs/langs/fr_FR/stocks.lang b/htdocs/langs/fr_FR/stocks.lang index 0c5e39e5d62..5fc0ccedec7 100644 --- a/htdocs/langs/fr_FR/stocks.lang +++ b/htdocs/langs/fr_FR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Libellé du mouvement NumberOfUnit=Nombre de pièces UnitPurchaseValue=Prix d'achat unitaire StockTooLow=Stock insuffisant -StockLowerThanLimit=Stock inférieur au seuil d'alerte +StockLowerThanLimit=Stock inférieur au stock d'alerte (%s) EnhancedValue=Valorisation PMPValue=Valorisation (PMP) PMPValueShort=PMP @@ -53,7 +53,7 @@ IndependantSubProductStock=Le stock du produit et le stock des sous-produits son QtyDispatched=Quantité ventilée QtyDispatchedShort=Qté ventilée QtyToDispatchShort=Qté à ventiler -OrderDispatch=Réception vers stocks +OrderDispatch=Réceptions de marchandise RuleForStockManagementDecrease=Règle de gestion des décrémentations automatiques de stock (la décrémentation manuelle est toujours possible, même si une décrémentation automatique est activée) RuleForStockManagementIncrease=Règle de gestion des incrémentations de stock (l'incrémentation manuelle est toujours possible, même si une incrémentation automatique est activée) DeStockOnBill=Décrémente les stocks physiques sur validation des factures/avoirs clients @@ -62,16 +62,19 @@ DeStockOnShipment=Décrémenter les stocks physiques sur validation des expédit DeStockOnShipmentOnClosing=Décrémenter les stocks réels au classement "clôturée" de l'expédition ReStockOnBill=Incrémente les stocks physiques sur validation des factures/avoirs fournisseurs ReStockOnValidateOrder=Incrémente les stocks physiques sur approbation des commandes fournisseurs -ReStockOnDispatchOrder=Incrémente les stocks physiques sur ventilation manuelle de la réception des commandes fournisseurs dans les entrepôts +ReStockOnDispatchOrder=Incrémente les stocks réels sur ventilation manuelle dans les entrepôts, après réception de la marchandise OrderStatusNotReadyToDispatch=La commande n'a pas encore ou n'a plus un statut permettant une ventilation en stock. -StockDiffPhysicTeoric=Raison écart stock physique-théorique +StockDiffPhysicTeoric=Explication de l'écart stock physique-théorique NoPredefinedProductToDispatch=Pas de produits prédéfinis dans cet objet. Aucune ventilation en stock n'est donc à faire. DispatchVerb=Ventiler StockLimitShort=Limite pour alerte StockLimit=Limite stock pour alerte PhysicalStock=Stock physique RealStock=Stock réel +RealStockDesc=Le stock physique ou réel est le stock présent dans les entrepôts. +RealStockWillAutomaticallyWhen=Le stock réel sera modifié selon ces règles (voir la configuration du module Stock) : VirtualStock=Stock théorique +VirtualStockDesc=Le stock virtuel est la quantité de produit en stock après que les opération affectant les stock sont terminées (réceptions de commandes fournisseurs, expéditions de commandes clients,...) IdWarehouse=Identifiant entrepôt DescWareHouse=Description entrepôt LieuWareHouse=Lieu entrepôt @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantité du produit %s en stock avant la périod NbOfProductAfterPeriod=Quantité du produit %s en stock après la période sélectionnée (> %s) MassMovement=Mouvement en masse SelectProductInAndOutWareHouse=Sélectionner un produit, une quantité à transférer, un entrepôt source et destination et cliquer sur "%s". Une fois tous les mouvements choisis, cliquer sur "%s". -RecordMovement=Enregistrer transfert +RecordMovement=Virement enregistré ReceivingForSameOrder=Réceptions pour cette commande StockMovementRecorded=Mouvement de stocks enregistré RuleForStockAvailability=Règles d'exigence sur les stocks @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Alerte de limite de stock et de stock désiré actu ProductStockWarehouseDeleted=Alerte de limite de stock et de stock désiré supprimée AddNewProductStockWarehouse=Définir la limite d'alerte et de stock désiré optimal AddStockLocationLine=Diminuer la quantité puis cliquer pour ajouter ce produit dans un autre entrepôt +InventoryDate=Date d'inventaire +NewInventory=Nouvel inventaire +inventorySetup = Paramétrage de l'inventaire +inventoryCreatePermission=Créer un nouvel inventaire +inventoryReadPermission=Voir les inventaires +inventoryWritePermission=Mettre à jour les inventaires +inventoryValidatePermission=Valider l'inventaire +inventoryTitle=Inventaire +inventoryListTitle=inventaires +inventoryListEmpty=Aucun inventaire en cours +inventoryCreateDelete=Créer/Supprimer l'inventaire +inventoryCreate=Créer un nouveau +inventoryEdit=Editer +inventoryValidate=Validé +inventoryDraft=En service +inventorySelectWarehouse=Chois de l'entrepôt +inventoryConfirmCreate=Créer +inventoryOfWarehouse=Enventaire pour l'entrepôt: %s +inventoryErrorQtyAdd=Erreur: une quantité est plus petite que zéro. +inventoryMvtStock=Par inventaire +inventoryWarningProductAlreadyExists=Ce produit est déjà dans la liste +SelectCategory=Filtre par catégorie +SelectFournisseur=Filtre fournisseur +inventoryOnDate=Inventaire +INVENTORY_DISABLE_VIRTUAL=Autoriser à ne pas déstocker les produits enfants d'un kit dans l'inventaire +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Utiliser le prix d'achat si aucun dernier prix d'achat n'a pu être trouvé +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Le mouvement de stock a une date d'inventaire +inventoryChangePMPPermission=Autoriser à changer la valeur PMP d'un produit +ColumnNewPMP=Nouvelle unité PMP +OnlyProdsInStock=N'ajoutez pas un produit sans stock +TheoricalQty=Quantité théorique +TheoricalValue=Quantité théorique +LastPA=Dernier BP +CurrentPA=BP actuel +RealQty=Quantité réelle +RealValue=Valeur réelle +RegulatedQty=Quantité régulée +AddInventoryProduct=Ajouter un produit à l'inventaire +AddProduct=Ajouter +ApplyPMP=Appliquer PMP +FlushInventory=Vider l'inventaire +ConfirmFlushInventory=Confirmez vous cette action ? +InventoryFlushed=Inventaire vidé +ExitEditMode=Quitter l'édition +inventoryDeleteLine=Effacer ligne +RegulateStock=Réguler le stock +ListInventory=Liste diff --git a/htdocs/langs/fr_FR/stripe.lang b/htdocs/langs/fr_FR/stripe.lang new file mode 100644 index 00000000000..6957ea4c1bf --- /dev/null +++ b/htdocs/langs/fr_FR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Configuration module Stripe +StripeDesc=Ce module offre des pages pour autoriser les paiements sur Stripe par les clients. Elles peuvent êtres utilisées pour un paiement libre ou un paiement sur un objet particulier de Dolibarr ( facture, commande, ... ) +StripeOrCBDoPayment=Payez avec une carte bancaire ou Stripe +FollowingUrlAreAvailableToMakePayments=Les URL suivantes sont disponibles pour permettre à un client de faire un paiement +PaymentForm=Formulaire de paiement +WelcomeOnPaymentPage=Bienvenue sur notre service de paiement en ligne +ThisScreenAllowsYouToPay=Cet écran vous permet de réaliser votre paiement en ligne à destination de %s. +ThisIsInformationOnPayment=Voici les informations sur le paiement à réaliser +ToComplete=À compléter +YourEMail=Email de confirmation du paiement +STRIPE_PAYONLINE_SENDEMAIL=Email à prévenir en cas de paiement (succès ou non) +Creditor=Bénéficiaire +PaymentCode=Code de paiement +StripeDoPayment=Poursuivre le paiement par carte +YouWillBeRedirectedOnStripe=Vous allez être redirigé vers la page sécurisée de Stripe pour insérer les informations de votre carte de crédit +Continue=Continuer +ToOfferALinkForOnlinePayment=URL de paiement %s +ToOfferALinkForOnlinePaymentOnOrder=URL offrant une interface de paiement en ligne %s sur la base du montant d'une commande client +ToOfferALinkForOnlinePaymentOnInvoice=URL offrant une interface de paiement en ligne %s sur la base du montant d'une facture client +ToOfferALinkForOnlinePaymentOnContractLine=URL offrant une interface de paiement en ligne %s sur la base du montant d'une ligne de contrat +ToOfferALinkForOnlinePaymentOnFreeAmount=URL offrant une interface de paiement en ligne %s pour un montant libre +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL offrant une interface de paiement en ligne %s sur la base d'une cotisation d'adhérent +YouCanAddTagOnUrl=Vous pouvez de plus ajouter le paramètre URL &tag=value à n'importe quelles de ces URL (obligatoire pour le paiement libre uniquement) pour ajouter votre propre "code commentaire" du paiement. +SetupStripeToHavePaymentCreatedAutomatically=Configurez votre URL Stripe à %s pour avoir le paiement créé automatiquement si validé. +YourPaymentHasBeenRecorded=Cette page confirme que votre paiement a bien été enregistré. Merci. +YourPaymentHasNotBeenRecorded=Votre paiement n'a pas été enregistré et la transaction a été annulée. +AccountParameter=Paramètres du compte +UsageParameter=Paramètres d'utilisation +InformationToFindParameters=Informations pour trouver vos paramètres de compte %s +STRIPE_CGI_URL_V2=URL du module CGI Stripe de paiement +VendorName=Nom du vendeur +CSSUrlForPaymentForm=URL feuille style css pour le formulaire de paiement +MessageOK=Message sur page de retour de paiement validé +MessageKO=Message sur page de retour de paiement annulé +NewStripePaymentReceived=Nouveau paiement Stripe reçu +NewStripePaymentFailed=Nouveau paiement Stripe tenté mais en échec +STRIPE_TEST_SECRET_KEY=Clé secrète de test +STRIPE_TEST_PUBLISHABLE_KEY=Clé plublique de test +STRIPE_LIVE_SECRET_KEY=Clé secrète live +STRIPE_LIVE_PUBLISHABLE_KEY=Clé plublique live +StripeLiveEnabled=Mode live activé (sinon mode test/bac a sable) diff --git a/htdocs/langs/fr_FR/supplier_proposal.lang b/htdocs/langs/fr_FR/supplier_proposal.lang index 764b094ae68..b39e834a3bc 100644 --- a/htdocs/langs/fr_FR/supplier_proposal.lang +++ b/htdocs/langs/fr_FR/supplier_proposal.lang @@ -47,7 +47,7 @@ CommercialAsk=Demande de prix DefaultModelSupplierProposalCreate=Création d'un modèle par défaut DefaultModelSupplierProposalToBill=Modèle par défaut lors de la fermeture d'une demande de prix (accepté) DefaultModelSupplierProposalClosed=Modèle par défaut lors de la fermeture d'une demande de prix (refusé) -ListOfSupplierProposal=Liste des demandes de propositions de fournisseur +ListOfSupplierProposals=Liste des demandes de propositions de fournisseur ListSupplierProposalsAssociatedProject=Liste des propositions commerciales fournisseurs liées à un projet SupplierProposalsToClose=Propositions commerciales fournisseurs à fermer SupplierProposalsToProcess=Propositions commerciales fournisseurs à traiter diff --git a/htdocs/langs/fr_FR/suppliers.lang b/htdocs/langs/fr_FR/suppliers.lang index 87e8fd0046f..bc930d6bc67 100644 --- a/htdocs/langs/fr_FR/suppliers.lang +++ b/htdocs/langs/fr_FR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total des prix de vente des sous-produits SomeSubProductHaveNoPrices=Certains sous-produits n'ont pas de prix définis AddSupplierPrice=Ajouter un prix d'achat ChangeSupplierPrice=Modifier un prix d'achat +SupplierPrices=Prix fournisseurs ReferenceSupplierIsAlreadyAssociatedWithAProduct=Cette référence fournisseur est déjà associée à la référence : %s NoRecordedSuppliers=Pas de fournisseur enregistré SupplierPayment=Paiement fournisseur @@ -41,5 +42,5 @@ DoNotOrderThisProductToThisSupplier=Ne pas commander NotTheGoodQualitySupplier=Mauvaise qualité ReputationForThisProduct=Réputation BuyerName=Nom de l'acheteur -SuppliersPaymentModel=Model liste des factures réglées par ce paiement -AllProductServicePrices=Tous les prix du produits / service \ No newline at end of file +AllProductServicePrices=Tous les prix du produits / service +BuyingPriceNumShort=Prix fournisseurs diff --git a/htdocs/langs/fr_FR/trips.lang b/htdocs/langs/fr_FR/trips.lang index 34a3d4fa747..2b1ed074c23 100644 --- a/htdocs/langs/fr_FR/trips.lang +++ b/htdocs/langs/fr_FR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Liste des notes de frais TypeFees=Types de déplacement et notes de frais ShowTrip=Afficher la note de frais NewTrip=Nouvelle note de frais -CompanyVisited=Société/institution visitée +CompanyVisited=Société/organisation visitée FeesKilometersOrAmout=Montant ou kilomètres DeleteTrip=Supprimer les notes de frais / déplacements ConfirmDeleteTrip=Êtes-vous sûr de vouloir supprimer cette note de frais ? @@ -70,6 +70,7 @@ DATE_SAVE=Date validation DATE_CANCEL=Date annulation DATE_PAIEMENT=Date de paiement BROUILLONNER=Réouvrir +ExpenseReportRef=Réf. note de frais ValidateAndSubmit=Valider et envoyer pour approbation ValidatedWaitingApproval=Validé (en attente d'approbation) NOT_AUTHOR=Vous n'êtes pas l'auteur de cette note de frais. Opération annulé. diff --git a/htdocs/langs/fr_FR/users.lang b/htdocs/langs/fr_FR/users.lang index 8c52f6ad29d..0d1180f28c9 100644 --- a/htdocs/langs/fr_FR/users.lang +++ b/htdocs/langs/fr_FR/users.lang @@ -66,8 +66,8 @@ InternalUser=Utilisateur interne ExportDataset_user_1=Utilisateurs Dolibarr et attributs DomainUser=Utilisateur du domaine %s Reactivate=Réactiver -CreateInternalUserDesc=Cet écran permet de créer un utilisateur interne à votre société/institution. Pour créer un utilisateur externe (client, fournisseur, ...), utilisez le bouton 'Créer utilisateur Dolibarr' qui se trouve sur la fiche du contact du tiers. -InternalExternalDesc=Un utilisateur interne est un utilisateur appartenant à votre société/institution.
Un utilisateur externe est un utilisateur client, fournisseur ou autre.

Dans les deux cas, les permissions utilisateurs définissent les droits d'accès mais l'utilisateur externe peut en plus avoir un gestionnaire de menu différent de l'utilisateur interne (Voir Accueil - Configuration - Affichage) +CreateInternalUserDesc=Ce formulaire permet de créer un utilisateur interne à votre société/institution. Pour créer un utilisateur externe (client, fournisseur, ...), utilisez le bouton 'Créer compte utilisateur' qui se trouve sur la fiche du contact du tiers. +InternalExternalDesc=Un utilisateur interne est un utilisateur qui fait partie de votre société/institution.
Un utilisateur externe est un compte utilisateur ouvert à un contact de tiers (client, fournisseur,...).

Dans les deux cas, les permissions déterminent les accès aux fonctionnalités de Dolibarr. Aussi, les utilisateurs externes peuvent avoir un interface différent des utilisateurs internes (Voir Accueil > configuration > Affichage) PermissionInheritedFromAGroup=La permission est accordée car héritée d'un groupe auquel appartient l'utilisateur. Inherited=Hérité UserWillBeInternalUser=L'utilisateur créé sera un utilisateur interne (car non lié à un tiers en particulier) diff --git a/htdocs/langs/fr_FR/website.lang b/htdocs/langs/fr_FR/website.lang index 61a0b1e1e8d..bf6e9fc4bbe 100644 --- a/htdocs/langs/fr_FR/website.lang +++ b/htdocs/langs/fr_FR/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Êtes-vous sûr de vouloir supprimer ce site web. Toutes le WEBSITE_PAGENAME=Nom/alias de la page WEBSITE_CSS_URL=URL du fichier de la feuille de style (CSS) externe WEBSITE_CSS_INLINE=Contenu de la feuille de style (CSS) +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Répertoire de médias EditCss=Modifier la feuille de style (CSS) EditMenu=Modifier menu @@ -14,8 +15,9 @@ EditPageContent=Modifier contenu Website=Site web Webpage=Page web AddPage=Ajouter une page +HomePage=Page d'accueil PreviewOfSiteNotYetAvailable=La prévisualisation de votre site web %s n'est pas disponible actuellement. Vous devez créer une première page. -RequestedPageHasNoContentYet=La page demandée d'id %s est vide ou le fichier cache .tpl.php a été supprimé. Modifiez le contenu de la page pour résoudre ce problème. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' du site web %s effacée PageAdded=Page '%s' ajouté ViewSiteInNewTab=Pré-visualiser le site dans un nouvel onglet @@ -23,6 +25,7 @@ ViewPageInNewTab=Pré-visualiser la page dans un nouvel onglet SetAsHomePage=Définir comme page d'accueil RealURL=URL réelle ViewWebsiteInProduction=Pré-visualiser le site web en utilisant l'URL de la page d'accueil -SetHereVirtualHost=Si vous pouvez définir, sur votre serveur web, un serveur virtuel dédié avec un répertoire racine sur %s, définir ici le nom de cet hôte virtuel ainsi la prévisualisation peut être faite en utilisant l'accès direct par le serveur web et pas seulement en utilisant le serveur Dolibarr. -PreviewSiteServedByWebServer=Preview %s in a new tab. Le %s sera servi par un serveur Web externe (comme Apache, Nginx, IIS). Vous devez installer et configurer ce serveur auparavant.
URL de %s desservie par le serveur externe:
%s -PreviewSiteServedByDolibarr=Aperçu %s dans un nouvel onglet. Le %s sera servi par le serveur Dolibarr donc aucun serveur Web supplémentaire (comme Apache, Nginx, IIS) ne doit être installé.
L'inconvénient est que l'URL de pages utilisent un chemin de votre Dolibarr.
URL de %s servie par Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Prévisualiser %s dans un nouvel onglet.

. Le %s sera servi par un serveur web externe ( comme Apache, Nginx, IIS ). Vous pouvez installer et configurer ce serveur avant de pointer sur le répertoire :
%s
URL servie par un serveur externe:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=Aucune page diff --git a/htdocs/langs/fr_FR/withdrawals.lang b/htdocs/langs/fr_FR/withdrawals.lang index 4b684330e3d..07c87c60b23 100644 --- a/htdocs/langs/fr_FR/withdrawals.lang +++ b/htdocs/langs/fr_FR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nombre de factures en attente de prélèvement pou InvoiceWaitingWithdraw=Factures en attente de prélèvement AmountToWithdraw=Somme à prélever WithdrawsRefused=Prélèvements rejetés -NoInvoiceToWithdraw=Aucune facture client en mode de paiement 'Prélèvement' n'a de demande de prélèvements en attente. Aller sur l'onglet 'Prélèvement' de la fiche facture pour faire une demande. +NoInvoiceToWithdraw=Aucune facture client avec 'Demande de débit direct' ouverte. Rendez vous sur l'onglet "%s" sur la carte de facture pour faire une demande. ResponsibleUser=Utilisateur responsable des prélèvements WithdrawalsSetup=Configuration des prélèvements WithdrawStatistics=Statistiques des prélèvements @@ -41,6 +41,7 @@ RefusedReason=Motif du rejet RefusedInvoicing=Facturation du rejet NoInvoiceRefused=Ne pas facturer le rejet InvoiceRefused=Facture refusée (Charges de rejet imputable au client) +StatusDebitCredit=Statut Débit/Crédit StatusWaiting=En attente StatusTrans=Transmise StatusCredited=Crédité diff --git a/htdocs/langs/he_IL/accountancy.lang b/htdocs/langs/he_IL/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/he_IL/accountancy.lang +++ b/htdocs/langs/he_IL/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/he_IL/admin.lang b/htdocs/langs/he_IL/admin.lang index de6406b1bf7..3032ace60b8 100644 --- a/htdocs/langs/he_IL/admin.lang +++ b/htdocs/langs/he_IL/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=גמל שלמה Module1200Desc=גמל שלמה אינטגרציה Module1400Name=חשבונאות -Module1400Desc=חשבונאות וניהול (צד כפולות) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=מודול להציע בדף התשלום באינטרנט באמצעות כרטיס אשראי עם Paypal Module50400Name=Accounting (advanced) -Module50400Desc=חשבונאות וניהול (צד כפולות) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/he_IL/agenda.lang b/htdocs/langs/he_IL/agenda.lang index 8f4ee3b6ddd..b12a78e5e59 100644 --- a/htdocs/langs/he_IL/agenda.lang +++ b/htdocs/langs/he_IL/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/he_IL/banks.lang b/htdocs/langs/he_IL/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/he_IL/banks.lang +++ b/htdocs/langs/he_IL/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/he_IL/bills.lang b/htdocs/langs/he_IL/bills.lang index 55338e46e0b..39f2206a8c3 100644 --- a/htdocs/langs/he_IL/bills.lang +++ b/htdocs/langs/he_IL/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=כתב זכויות CreditNotes=אשראי הערות -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/he_IL/bookmarks.lang b/htdocs/langs/he_IL/bookmarks.lang index 0584c28666f..87cea1e3437 100644 --- a/htdocs/langs/he_IL/bookmarks.lang +++ b/htdocs/langs/he_IL/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=הסימניות +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/he_IL/boxes.lang b/htdocs/langs/he_IL/boxes.lang index f17876b7f52..ef7371646a8 100644 --- a/htdocs/langs/he_IL/boxes.lang +++ b/htdocs/langs/he_IL/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=הצעות LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/he_IL/categories.lang b/htdocs/langs/he_IL/categories.lang index 1615697ed9d..794e5f2c486 100644 --- a/htdocs/langs/he_IL/categories.lang +++ b/htdocs/langs/he_IL/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=משלימים תכונות CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/he_IL/commercial.lang b/htdocs/langs/he_IL/commercial.lang index 4a14c705400..0f4c6c853af 100644 --- a/htdocs/langs/he_IL/commercial.lang +++ b/htdocs/langs/he_IL/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=פגישה עם %s ShowTask=הצג משימה ShowAction=הצג אירוע ActionsReport=דו"ח אירועים -ThirdPartiesOfSaleRepresentative=צד שלישי שייך לאיש מכירות +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=איש מכירות SalesRepresentatives=אנשי מכירות SalesRepresentativeFollowUp=אנשי מכירות (מעקב) diff --git a/htdocs/langs/he_IL/companies.lang b/htdocs/langs/he_IL/companies.lang index 1d5fa3da993..09cc13ae4db 100644 --- a/htdocs/langs/he_IL/companies.lang +++ b/htdocs/langs/he_IL/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=לקוחות ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=ספקים ThirdPartyType=Third party type -Company/Fundation=החברה / קרן Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=הצעות +OverAllOrders=Orders +OverAllInvoices=חשבוניות +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=רשימת לקוחות ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/he_IL/contracts.lang b/htdocs/langs/he_IL/contracts.lang index 93e97ab2d49..f901b9919d9 100644 --- a/htdocs/langs/he_IL/contracts.lang +++ b/htdocs/langs/he_IL/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/he_IL/exports.lang b/htdocs/langs/he_IL/exports.lang index 8bc4a40a682..148f40b56f0 100644 --- a/htdocs/langs/he_IL/exports.lang +++ b/htdocs/langs/he_IL/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/he_IL/holiday.lang b/htdocs/langs/he_IL/holiday.lang index c0bfa960e21..b7080440737 100644 --- a/htdocs/langs/he_IL/holiday.lang +++ b/htdocs/langs/he_IL/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=תאור SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/he_IL/install.lang b/htdocs/langs/he_IL/install.lang index 4b987087195..a1decca40be 100644 --- a/htdocs/langs/he_IL/install.lang +++ b/htdocs/langs/he_IL/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/he_IL/link.lang b/htdocs/langs/he_IL/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/he_IL/link.lang +++ b/htdocs/langs/he_IL/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/he_IL/loan.lang b/htdocs/langs/he_IL/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/he_IL/loan.lang +++ b/htdocs/langs/he_IL/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/he_IL/mails.lang b/htdocs/langs/he_IL/mails.lang index 1b55ea13034..5e36896a572 100644 --- a/htdocs/langs/he_IL/mails.lang +++ b/htdocs/langs/he_IL/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=הודעות NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/he_IL/main.lang b/htdocs/langs/he_IL/main.lang index 3d2bca74f3b..8639dddc42d 100644 --- a/htdocs/langs/he_IL/main.lang +++ b/htdocs/langs/he_IL/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/he_IL/margins.lang b/htdocs/langs/he_IL/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/he_IL/margins.lang +++ b/htdocs/langs/he_IL/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/he_IL/members.lang b/htdocs/langs/he_IL/members.lang index 9bc61ce6fc5..c591e1379dd 100644 --- a/htdocs/langs/he_IL/members.lang +++ b/htdocs/langs/he_IL/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=משתמשים LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/he_IL/modulebuilder.lang b/htdocs/langs/he_IL/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/he_IL/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/he_IL/other.lang b/htdocs/langs/he_IL/other.lang index 892ea707a92..be9c293e87a 100644 --- a/htdocs/langs/he_IL/other.lang +++ b/htdocs/langs/he_IL/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/he_IL/paybox.lang b/htdocs/langs/he_IL/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/he_IL/paybox.lang +++ b/htdocs/langs/he_IL/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/he_IL/paypal.lang b/htdocs/langs/he_IL/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/he_IL/paypal.lang +++ b/htdocs/langs/he_IL/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/he_IL/products.lang b/htdocs/langs/he_IL/products.lang index abc093b0803..b3c3c890c75 100644 --- a/htdocs/langs/he_IL/products.lang +++ b/htdocs/langs/he_IL/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/he_IL/propal.lang b/htdocs/langs/he_IL/propal.lang index 195ed1bb2ed..a89bbe8917d 100644 --- a/htdocs/langs/he_IL/propal.lang +++ b/htdocs/langs/he_IL/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/he_IL/resource.lang b/htdocs/langs/he_IL/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/he_IL/resource.lang +++ b/htdocs/langs/he_IL/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/he_IL/salaries.lang b/htdocs/langs/he_IL/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/he_IL/salaries.lang +++ b/htdocs/langs/he_IL/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/he_IL/sendings.lang b/htdocs/langs/he_IL/sendings.lang index 24f1739f2ee..0cbefd29ad9 100644 --- a/htdocs/langs/he_IL/sendings.lang +++ b/htdocs/langs/he_IL/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/he_IL/stocks.lang b/htdocs/langs/he_IL/stocks.lang index e906c245f8c..95af18efd9c 100644 --- a/htdocs/langs/he_IL/stocks.lang +++ b/htdocs/langs/he_IL/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=מחק את השורה +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/he_IL/stripe.lang b/htdocs/langs/he_IL/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/he_IL/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/he_IL/supplier_proposal.lang b/htdocs/langs/he_IL/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/he_IL/supplier_proposal.lang +++ b/htdocs/langs/he_IL/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/he_IL/suppliers.lang b/htdocs/langs/he_IL/suppliers.lang index 60b76686563..654f7b7a9ec 100644 --- a/htdocs/langs/he_IL/suppliers.lang +++ b/htdocs/langs/he_IL/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/he_IL/trips.lang b/htdocs/langs/he_IL/trips.lang index c9e438d1b67..45a9e997ce1 100644 --- a/htdocs/langs/he_IL/trips.lang +++ b/htdocs/langs/he_IL/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/he_IL/users.lang b/htdocs/langs/he_IL/users.lang index cf67b99c316..e0a22ef9c9d 100644 --- a/htdocs/langs/he_IL/users.lang +++ b/htdocs/langs/he_IL/users.lang @@ -66,8 +66,8 @@ InternalUser=פנימית המשתמש ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/he_IL/website.lang b/htdocs/langs/he_IL/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/he_IL/website.lang +++ b/htdocs/langs/he_IL/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/he_IL/withdrawals.lang b/htdocs/langs/he_IL/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/he_IL/withdrawals.lang +++ b/htdocs/langs/he_IL/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/hr_HR/accountancy.lang b/htdocs/langs/hr_HR/accountancy.lang index a51023fdbec..f48e84adf6f 100644 --- a/htdocs/langs/hr_HR/accountancy.lang +++ b/htdocs/langs/hr_HR/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Dodaj obračunski račun AccountAccounting=Obračunski račun AccountAccountingShort=Račun SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stanje računa @@ -142,6 +143,7 @@ NumPiece=Broj komada TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Nije postavljeno DeleteMvt=Delete Ledger lines DelYear=Godina za obrisati @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Prodaja AccountingJournalType3=Nabava AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/hr_HR/admin.lang b/htdocs/langs/hr_HR/admin.lang index ac249be826f..273fa4c4e16 100644 --- a/htdocs/langs/hr_HR/admin.lang +++ b/htdocs/langs/hr_HR/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Zahtjev za ponudom dobavljača s cijenama Module1200Name=Mantis Module1200Desc=Integracija Mantisa Module1400Name=Računovodstvo -Module1400Desc=Upravljanje računovodstvom ( dvostruke stranke ) +Module1400Desc=Accounting management (double entries) Module1520Name=Generiranje dokumenta Module1520Desc=Mass mail document generation Module1780Name=Kategorije @@ -585,7 +585,7 @@ Module50100Desc=Modul prodajnog mjesta (POS) Module50200Name=Paypal Module50200Desc=Modul za mogućnost online plaćanja kreditnom karticom putem PayPal-a Module50400Name=Računovodstvo (napredno) -Module50400Desc=Upravljanje računovodstvom ( dvostruke stranke ) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa, Upitnik ili Glasanje diff --git a/htdocs/langs/hr_HR/agenda.lang b/htdocs/langs/hr_HR/agenda.lang index 4616b3afc77..f36ace5412f 100644 --- a/htdocs/langs/hr_HR/agenda.lang +++ b/htdocs/langs/hr_HR/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Račun %s obrisan InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Isporuka %s je ovjerena -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Narudžba %s ovjerena @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervencija %s poslana putem e-pošte ProposalDeleted=Ponuda obrisana OrderDeleted=Narudžba obrisana InvoiceDeleted=Račun obrisan +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Datum početka DateActionEnd=Datum završetka AgendaUrlOptions1=Možete isto dodati sljedeće paramete za filtriranje prikazanog: -AgendaUrlOptions2=login=%s da se ograniči prikaz na akcije kreirane od ili dodjeljene korisniku %s. AgendaUrlOptions3=logina=%s da se ograniči prikaz na akcije u vlasništvu korisnika %s. -AgendaUrlOptions4=logint=%s da se ograniči prikaz na akcije dodijeljene korisniku %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID da se ograniči prikaz na akcije dodjeljene projektu PROJECT_ID. AgendaShowBirthdayEvents=Prikaži rođendane kontakata AgendaHideBirthdayEvents=Sakrij rođendane kontakata diff --git a/htdocs/langs/hr_HR/banks.lang b/htdocs/langs/hr_HR/banks.lang index c598ac33b84..56e12a1b1e6 100644 --- a/htdocs/langs/hr_HR/banks.lang +++ b/htdocs/langs/hr_HR/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID Transakcije BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Uskladi Conciliation=Usklađivanje ReconciliationLate=Reconciliation late IncludeClosedAccount=Uključujući i zatvorene račune -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Samo otvoreni računi AccountToCredit=Račun za kreditiranje AccountToDebit=Račun za terećenje DisableConciliation=Onemogući usklađivanje za ovaj račun ConciliationDisabled=Mogučnost usklađivanja je onemogućena LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Otvorena +StatusAccountOpened=Otvori StatusAccountClosed=Zatvoren AccountIdShort=Broj LineRecord=Transakcija @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček je vračen i računi su ponovo otvoreni BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/hr_HR/bills.lang b/htdocs/langs/hr_HR/bills.lang index 9f1b5c89abb..2b7c423e600 100644 --- a/htdocs/langs/hr_HR/bills.lang +++ b/htdocs/langs/hr_HR/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Onemogućeno jer ne može biti obrisano InvoiceStandard=Običan račun InvoiceStandardAsk=Običan račun InvoiceStandardDesc=Ovo je uobičajeni tip računa. -InvoiceDeposit=Račun za polog -InvoiceDepositAsk=Račun za polog -InvoiceDepositDesc=Ovakav račun ispostavlja se za primljeni polog. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Predračun InvoiceProFormaAsk=Predračun InvoiceProFormaDesc= Predračun je kopija pravog računa, ali nema knjigovodstvene vrijednosti. @@ -62,7 +62,7 @@ PaymentsBack=Povratna plaćanja paymentInInvoiceCurrency=po valuti računa PaidBack=Uplaćeno natrag DeletePayment=Izbriši plaćanje -ConfirmDeletePayment=Jeste li sigurni da želite izbrisati ovo plaćanje? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Plaćanja dobavljačima ReceivedPayments=Primljene uplate @@ -115,7 +115,7 @@ BillStatus=Stanje računa StatusOfGeneratedInvoices=Status generiranih računa BillStatusDraft=Skica (potrebno potvrditi) BillStatusPaid=Plaćeno -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Plaćeno (spremno za konačni račun) BillStatusCanceled=Napušteno BillStatusValidated=Ovjereno (potrebno platiti) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Plaćeno (djelomično) BillShortStatusDraft=Skica BillShortStatusPaid=Plaćeno BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Obrađeno +BillShortStatusConverted=Plaćeno BillShortStatusCanceled=Napušteno BillShortStatusValidated=Ovjereno BillShortStatusStarted=Započeto @@ -198,12 +198,12 @@ ShowBill=Prikaži račun ShowInvoice=Prikaži račun ShowInvoiceReplace=Prikaži zamjenski računa ShowInvoiceAvoir=Prikaži bonifikaciju -ShowInvoiceDeposit=Prikaži račun za polog +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Prikaži račun etape ShowPayment=Prikaži plaćanje AlreadyPaid=Plaćeno do sada AlreadyPaidBack=Povrati do sada -AlreadyPaidNoCreditNotesNoDeposits=Već plaćeno(bez bonifikacije i depozita) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Napušteno RemainderToPay=Preostali neplaćeni iznos RemainderToTake=Preostali iznos za primiti @@ -270,10 +270,10 @@ RelativeDiscount=Relativni popust GlobalDiscount=Opći popust CreditNote=Bonifikacija CreditNotes=Bonifikacija -Deposit=Polog -Deposits=Polozi +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Popust iz bonifikacije %s -DiscountFromDeposit=Plaćanja s računa za predujam %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ovaj kredit se može koristit na računu prije ovjere CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Plaćanje se ne može izbrisati obzirom da p ExpectedToPay=Očekivano plaćanje CantRemoveConciliatedPayment=Nije moguče uklanjanje usaglašenog plaćanja PayedByThisPayment=Plaćeno s ovom uplatom -ClosePaidInvoicesAutomatically=Obilježi kao "Plaćeno" kao standardno, etape ili zamjenski račun kompletno plaćen. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Klasificiraj "plaćene" bonifikacije kao plaćene u cjelosti. ClosePaidContributionsAutomatically=Označi "Plaćeno" sve društvene ili fiskalne kompletno plaćene doprinose. AllCompletelyPayedInvoiceWillBeClosed=Svi računi za plačanje bez ostatka biti će automatski zatvoreni s statusom "Plaćeno" @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Kako biste izradili novi predložak račun PDFCrabeDescription="Crabe" predložak PDF računa. Potpuni predložak računa (preporučeni) PDFCrevetteDescription=PDF račun prema Crevette predlošku. Kompletan predložak računa za etape TerreNumRefModelDesc1=Vraća broj u formatu %syymm-nnnn za standardne račune i %syymm-nnnn za odobrenja gdje je yy godina, mm je mjesec i nnnn je sljedni broj bez prekida i bez mogučnosti povratka na 0 -MarsNumRefModelDesc1=Vraća broj u formatu %syymm-nnnn za standardne račune, %syymm-nnnn za zamjenske račune, %syymm-nnnn za račune depozita, i %syymm-nnnn za odobrenja, gdje je yy godina, mm je mjesec i nnnn je sljedni broj bez prekida i bez mogučnosti povratka na 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Račun koji počinje s $syymm već postoji i nije kompatibilan s ovim modelom označivanja. Maknite ili promjenite kako biste aktivirali ovaj modul. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Predstavnik praćenja računa kupca TypeContact_facture_external_BILLING=Kontakt osoba za račun diff --git a/htdocs/langs/hr_HR/bookmarks.lang b/htdocs/langs/hr_HR/bookmarks.lang index a83d4bdf110..30bf7925c65 100644 --- a/htdocs/langs/hr_HR/bookmarks.lang +++ b/htdocs/langs/hr_HR/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Dodaj ovu stranicu u zabilješke +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Zabilješka Bookmarks=Zabilješke +ListOfBookmarks=Lista zabilješki +EditBookmarks=List/edit bookmarks NewBookmark=Nova zabilješka ShowBookmark=Prikaži zabilješku OpenANewWindow=Otvori novi prozor @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Novi prozor BookmarkTargetReplaceWindowShort=Trenutno prozor BookmarkTitle=Naziv zabilješke UrlOrLink=URL -BehaviourOnClick=Ponašanje kad se klikne na URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Kreiraj zabilješku SetHereATitleForLink=Postavi naslov za zabilješku UseAnExternalHttpLinkOrRelativeDolibarrLink=Koristi eksterni http URL ili relativni Dolibarr URL diff --git a/htdocs/langs/hr_HR/boxes.lang b/htdocs/langs/hr_HR/boxes.lang index c5b82fe268d..89cf06d5dc1 100644 --- a/htdocs/langs/hr_HR/boxes.lang +++ b/htdocs/langs/hr_HR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS Informacije BoxLastProducts=Zadnjih %s proizvoda/usluga BoxProductsAlertStock=Upozorenja stanja zaliha za proizvode @@ -82,3 +83,4 @@ ForCustomersOrders=Narudžbe kupaca ForProposals=Prijedlozi LastXMonthRolling=Zadnjih %s tekučih mjeseci ChooseBoxToAdd=Dodaj dodatak na kontrolnu ploču +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/hr_HR/categories.lang b/htdocs/langs/hr_HR/categories.lang index 2dc8967c819..5e7eba9f6f3 100644 --- a/htdocs/langs/hr_HR/categories.lang +++ b/htdocs/langs/hr_HR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Kategorija Rubriques=Kategorije +RubriquesTransactions=Tags/Categories of transactions categories=kategorije NoCategoryYet=Nije kreirana kategorija ovog tipa In=U @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Kategorija s ovom ref. već postoji ContentsVisibleByAllShort=Sadržaj vidljiv svima ContentsNotVisibleByAllShort=Sadržaj nije vidljiv svima DeleteCategory=Obriši kategoriju -ConfirmDeleteCategory=Jeste li sigurni da želite obrisati ovu kategoriju ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=Kategorija nije definirana SuppliersCategoryShort=Kategorija dobavljača CustomersCategoryShort=Kategorija kupaca diff --git a/htdocs/langs/hr_HR/commercial.lang b/htdocs/langs/hr_HR/commercial.lang index 44bd082a52d..3c01c891c95 100644 --- a/htdocs/langs/hr_HR/commercial.lang +++ b/htdocs/langs/hr_HR/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Sastanak sa %s ShowTask=Prikaži zadatak ShowAction=Prikaži događaj ActionsReport=Izvješće događaja -ThirdPartiesOfSaleRepresentative=Komitenti s prodajnim predstavnikom +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Prodajni predstavnik SalesRepresentatives=Prodajni predstavnici SalesRepresentativeFollowUp=Prodajni predstavnik (pratitelj) diff --git a/htdocs/langs/hr_HR/companies.lang b/htdocs/langs/hr_HR/companies.lang index 6d7da90553f..0d267bf057b 100644 --- a/htdocs/langs/hr_HR/companies.lang +++ b/htdocs/langs/hr_HR/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nova privatna osoba NewCompany=Nova tvrtka (potencijalni kupac, kupac, dobavljač) NewThirdParty=Novi komitent (potencijalni kupac, kupac, dobavljač) CreateDolibarrThirdPartySupplier=Kreiraj komitenta (dobavljač) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Kreiraj komitenta CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Sučelje Potencijalnih kupaca IdThirdParty=Komitent ID @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kupci ThirdPartyCustomersWithIdProf12=Kupci sa %s ili %s ThirdPartySuppliers=Dobavljači ThirdPartyType=Tip komitenta -Company/Fundation=Tvrtka/zaklada Individual=Privatna osoba ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Matična tvrtka @@ -78,10 +77,10 @@ VATIsNotUsed=Porez se ne korisit CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Komitent nije kupac niti dobavljač, nema raspoloživih upućenih objekata PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Ponude +OverAllOrders=Narudžbe +OverAllInvoices=Računi +OverAllSupplierProposals=Tražene cijene ##### Local Taxes ##### LocalTax1IsUsed=Koristi drugi dodatni porez LocalTax1IsUsedES= RE je korišten @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativni popust CustomerAbsoluteDiscountShort=Apsolutni popust CompanyHasRelativeDiscount=Ovaj kupac ima predefiniran popust od %s%% CompanyHasNoRelativeDiscount=Ovaj kupac nema predefiniran relativni popust -CompanyHasAbsoluteDiscount=Ovaj kupac još uvijek ima kreditni popust ili depozit za %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Ovaj kupac još uvijek ima odobrenje za %s %s CompanyHasNoAbsoluteDiscount=Ovaj kupac nema dostupan kreditni popust CustomerAbsoluteDiscountAllUsers=Apsolutni popusti (odobreni svim korisnicima) @@ -390,7 +395,7 @@ ListCustomersShort=Lista kupaca ThirdPartiesArea=Sučelje komitenata i kontakata LastModifiedThirdParties=Zadnjih %s izmjenjenih komitenata UniqueThirdParties=Ukupno jedinstvenih komitenata -InActivity=Otvorena +InActivity=Otvori ActivityCeased=Zatvoren ThirdPartyIsClosed=Third party is closed ProductsIntoElements=Popis proizvoda/usluga u %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Ova šifra je besplatne. Ova šifra se može modificirati ManagingDirectors=Ime vlasnika(ce) ( CEO, direktor, predsjednik uprave...) MergeOriginThirdparty=Dupliciran komitent (komitent koji želite obrisati) MergeThirdparties=Spoji komitente -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Komitenti su spojeni SaleRepresentativeLogin=Korisničko ime predstavnika SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/hr_HR/contracts.lang b/htdocs/langs/hr_HR/contracts.lang index 9c3525cba6d..7be61795fd6 100644 --- a/htdocs/langs/hr_HR/contracts.lang +++ b/htdocs/langs/hr_HR/contracts.lang @@ -32,13 +32,13 @@ NewContractSubscription=Novi ugovor/pretplata AddContract=Izradi ugovor DeleteAContract=Izbriši ugovor CloseAContract=Zatvori ugovor -ConfirmDeleteAContract=Jeste li sigurni da želite izbrisati ovaj ugovor sa svim njegovim uslugama -ConfirmValidateContract=Jeste li sigurni da želite ovjeriti ugovor pod imenom %s ? -ConfirmCloseContract=Ovo će završiti sve usluge(aktivne ili neaktivnje). Da li ste sigurni da želite zatvoriti ovaj ugovor? -ConfirmCloseService=Jeste li sigurni da želite završiti uslugu sa danom %s ? +ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? +ConfirmValidateContract=Are you sure you want to validate this contract under name %s? +ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? +ConfirmCloseService=Are you sure you want to close this service with date %s? ValidateAContract=Ovjeri ugovor ActivateService=Aktiviraj uslugu -ConfirmActivateService=Jeste li sigurni da želite aktiviratu uslugu sa danom %s ? +ConfirmActivateService=Are you sure you want to activate this service with date %s? RefContract=Referenca ugovora DateContract=Datum ugovora DateServiceActivate=Datum aktivacije usluge @@ -69,10 +69,10 @@ DraftContracts=Skica ugovora CloseRefusedBecauseOneServiceActive=Ugovori ne mogu biti zatvoreni jer postoji barem jedna aktivna usluga. CloseAllContracts=Zatvori sve linije ugovora DeleteContractLine=Izbriši linije ugovora -ConfirmDeleteContractLine=Jeste li sigurni da želite izbrisati ovu liniju ugovora? +ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Premjesti usluge u drugi ugovor ConfirmMoveToAnotherContract=Prihvaćam novi prikazani ugovor i potvrđujem da želim premjestit usluge u taj ugovor. -ConfirmMoveToAnotherContractQuestion=Odaberi u koji postojeći ugovor (od istog komitenta), želite preseliti usluge? +ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? PaymentRenewContractId=Obnovi liniju ugovora(broj %s) ExpiredSince=Datum isteka NoExpiredServices=Nema isteklih aktivnih usluga @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Ova lista sadrži samo usluge kontakata komitenata StandardContractsTemplate=Predložak uobičajenog ugovora ContactNameAndSignature=Za %s, ime i potpis OnlyLinesWithTypeServiceAreUsed=Samo stavke tipa "Usluga" biti će klonirane. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Predstavnik trgovca potpisuje ugovor diff --git a/htdocs/langs/hr_HR/donations.lang b/htdocs/langs/hr_HR/donations.lang index 20767ce61a9..5ff72579b1c 100644 --- a/htdocs/langs/hr_HR/donations.lang +++ b/htdocs/langs/hr_HR/donations.lang @@ -6,7 +6,7 @@ Donor=Donator AddDonation=Kreiraj donaciju NewDonation=Nova donacija DeleteADonation=Obriši donaciju -ConfirmDeleteADonation=Jeste li sigurni da želite obrisati ovu donaciju ? +ConfirmDeleteADonation=Are you sure you want to delete this donation? ShowDonation=Prikaži donaciju PublicDonation=Javna donacija DonationsArea=Sučelje donacija diff --git a/htdocs/langs/hr_HR/exports.lang b/htdocs/langs/hr_HR/exports.lang index 4e862efa5ba..abd5d73c9e6 100644 --- a/htdocs/langs/hr_HR/exports.lang +++ b/htdocs/langs/hr_HR/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/hr_HR/help.lang b/htdocs/langs/hr_HR/help.lang index 03aa3fc4f27..3532758cca9 100644 --- a/htdocs/langs/hr_HR/help.lang +++ b/htdocs/langs/hr_HR/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Izvor podrške TypeSupportCommunauty=Zajednica (besplatno) TypeSupportCommercial=Komercijalno TypeOfHelp=Tip -NeedHelpCenter=Trebate li pomoć ili podršku ? +NeedHelpCenter=Need help or support? Efficiency=Efikasnost TypeHelpOnly=Samo pomoć TypeHelpDev=Pomoć + Razvoj diff --git a/htdocs/langs/hr_HR/holiday.lang b/htdocs/langs/hr_HR/holiday.lang index 3a648d2f48f..93af8f829fc 100644 --- a/htdocs/langs/hr_HR/holiday.lang +++ b/htdocs/langs/hr_HR/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Poništeno RefuseCP=Odbijeno ValidatorCP=Odobrio ListeCP=Popis odsustva -ReviewedByCP=Biti će pregledano od +ReviewedByCP=Will be approved by DescCP=Opis SendRequestCP=Kreiraj zahtjev odsustva DelayToRequestCP=Zahtjev odsustva mora biti kreiran najmanje %s dan(a) prije. diff --git a/htdocs/langs/hr_HR/hrm.lang b/htdocs/langs/hr_HR/hrm.lang index 6ae14e763de..7bbc9740435 100644 --- a/htdocs/langs/hr_HR/hrm.lang +++ b/htdocs/langs/hr_HR/hrm.lang @@ -5,7 +5,7 @@ Establishments=Ustanove Establishment=Ustanova NewEstablishment=Nova ustanova DeleteEstablishment=Obriši ustanovu -ConfirmDeleteEstablishment=Jeste li sigurni da želite obrisati ustanovu ? +ConfirmDeleteEstablishment=Are-you sure to delete this establishment? OpenEtablishment=Otvori ustanovu CloseEtablishment=Zatvori ustanovu # Dictionary diff --git a/htdocs/langs/hr_HR/install.lang b/htdocs/langs/hr_HR/install.lang index 7ff7fb69817..66c9a3ad0e1 100644 --- a/htdocs/langs/hr_HR/install.lang +++ b/htdocs/langs/hr_HR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/hr_HR/loan.lang b/htdocs/langs/hr_HR/loan.lang index 623507ae95a..e7efe85f4dd 100644 --- a/htdocs/langs/hr_HR/loan.lang +++ b/htdocs/langs/hr_HR/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s će otići u KAMATU GoToPrincipal=%s će otići u GLAVNICU YouWillSpend=Potrošit ćete %s u %s godina ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Konfiguracija modula kredita LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/hr_HR/mails.lang b/htdocs/langs/hr_HR/mails.lang index 85410cde9b0..4d8e3ed8c93 100644 --- a/htdocs/langs/hr_HR/mails.lang +++ b/htdocs/langs/hr_HR/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Kompletno poslano MailingStatusError=Greška MailingStatusNotSent=Nije poslano -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Obavijesti NoNotificationsWillBeSent=Nema planiranih obavijesti za ovaj događaj i tvrtku ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/hr_HR/main.lang b/htdocs/langs/hr_HR/main.lang index 02cac8e8b43..e6aa43f8e71 100644 --- a/htdocs/langs/hr_HR/main.lang +++ b/htdocs/langs/hr_HR/main.lang @@ -72,8 +72,10 @@ SeeHere=Vidi ovdje Apply=Primjeni BackgroundColorByDefault=Zadana boja pozadine FileRenamed=Ime datoteke uspješno promijenjeno -FileUploaded=Datoteka je uspješno učitana FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Datoteka je uspješno učitana +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Datoteka je odabrana za prilogu ali nije još učitana. Klikni na "Priloži datoteku". NbOfEntries=Br. unosa GoToWikiHelpPage=Pročitajte Online pomoć ( potreban pristup Internetu) @@ -358,6 +360,7 @@ TotalLT1ES=Ukupno RE TotalLT2ES=Ukupno IRPF HT=Neto od poreza TTC=Uklj. porez +INCT=Inc. all taxes VAT=Prodajni porez VATs=Prodajni porezi LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Lis MonthShort11=Stu MonthShort12=Pro AttachedFiles=Priložene datoteke i dokumenti -FileTransferComplete=Datoteka je uspješno pohranjena DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/hr_HR/margins.lang b/htdocs/langs/hr_HR/margins.lang index 17fc35b2925..fd2448c31bc 100644 --- a/htdocs/langs/hr_HR/margins.lang +++ b/htdocs/langs/hr_HR/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Stopa mora biti brojčana vrijednost markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Prikaži infomacije o marži CheckMargins=Detalji marže -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/hr_HR/members.lang b/htdocs/langs/hr_HR/members.lang index a2146a7b007..3dce276a5b4 100644 --- a/htdocs/langs/hr_HR/members.lang +++ b/htdocs/langs/hr_HR/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Javni popis članova BlankSubscriptionForm=Javna pristupnica BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Omogući javnu pristupnicu +ForceMemberType=Force the member type ExportDataset_member_1=Članovi i pretplate ImportDataset_member_1=Članovi LastMembersModified=Zadnjih %s izmenjenih članova @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Odaberite statistiku koju želite vidjeti... MenuMembersStats=Statistika LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Vrsta Public=Informacije su javne NewMemberbyWeb=Novi član je dodan. Čeka odobrenje diff --git a/htdocs/langs/hr_HR/modulebuilder.lang b/htdocs/langs/hr_HR/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/hr_HR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/hr_HR/other.lang b/htdocs/langs/hr_HR/other.lang index 18169a54a4b..ae97363f5af 100644 --- a/htdocs/langs/hr_HR/other.lang +++ b/htdocs/langs/hr_HR/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/hr_HR/paybox.lang b/htdocs/langs/hr_HR/paybox.lang index 020d6827ad3..76b81843a0b 100644 --- a/htdocs/langs/hr_HR/paybox.lang +++ b/htdocs/langs/hr_HR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-pošta za prijem potvrde uplate Creditor=Kreditor PaymentCode=Kod plaćanja PayBoxDoPayment=Idi na plaćanje +ToPay=Izvrši plaćanje YouWillBeRedirectedOnPayBox=Biti ćete preusmjereni na sigurnu stranicu PayBox servisa gdje možete unijeti podatke o svojoj kreditnoj kartici Continue=Sljedeće ToOfferALinkForOnlinePayment=URL za %s plaćanje diff --git a/htdocs/langs/hr_HR/paypal.lang b/htdocs/langs/hr_HR/paypal.lang index b4b0476bafb..2c7d24aba02 100644 --- a/htdocs/langs/hr_HR/paypal.lang +++ b/htdocs/langs/hr_HR/paypal.lang @@ -11,20 +11,22 @@ PAYPAL_SSLVERSION=Curl SSL Verzija PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Ponuda plaćanja "integralna" (kreditna kartica+PayPal) ili samo PayPal PaypalModeIntegral=Integralno PaypalModeOnlyPaypal=Samo PayPal -PAYPAL_CSS_URL=Opcionalni URL do CSS stila na stranici naplate +PAYPAL_CSS_URL=Optionnal URL of CSS style sheet on payment page ThisIsTransactionId=Ovo je ID tranksakcije: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Trenutno ste u "sandbox" modu -NewPaypalPaymentReceived=Primljena nova PayPay uplata -NewPaypalPaymentFailed=PayPal uplata probana ali s greškom +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Povratni URL nakon uplate -ValidationOfPaypalPaymentFailed=Greška prilikom provjere PayPal uplate -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detaljna poruka greške ShortErrorMessage=Kratka poruka greške ErrorCode=Kod greške ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/hr_HR/products.lang b/htdocs/langs/hr_HR/products.lang index 4b43159a881..ad8c97da134 100644 --- a/htdocs/langs/hr_HR/products.lang +++ b/htdocs/langs/hr_HR/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Konto (prodaja) ProductOrService=Proizvod ili usluga ProductsAndServices=Proizvodi ili usluge ProductsOrServices=Proizvodi ili usluge -ProductsOnSell=Proizvod za prodaju ili za nabavu -ProductsNotOnSell=Proizvod nije za prodaju niti za nabavu +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Proizvoda za prodaju i za nabavu -ServicesOnSell=Usluge za prodaju ili za nabavu -ServicesNotOnSell=Usluga nije za prodaju +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Usluga za prodaju i za nabavu LastModifiedProductsAndServices=Zadnjih %s izmjenjenih proizvoda/usluga LastRecordedProducts=Zadnjih %s pohranjenih proizvoda @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litra l=L +unitP=Piece +unitSET=Set +unitS=Sekunda +unitH=Sat +unitD=Dan +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Predložak ref. proizvoda ServiceCodeModel=Predložak ref. usluge CurrentProductPrice=Trenutna cijena @@ -186,6 +200,7 @@ MultipriceRules=Pravila odjelnih cijena UseMultipriceRules=Koristite pravila odjelova cijena (definiranih u postavkama modula proizvoda) za automatski izračun cijena ostalih dijelova sukladno prema prvom dijelu PercentVariationOver=%% varijacija preko %s PercentDiscountOver=%% popust preko %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Proizvodi ProductsMultiPrice=Proizvodi i cijene za svaki cijenovni odjel @@ -232,12 +247,18 @@ ComposedProduct=Pod-proizvod MinSupplierPrice=Minimalna cijena dobavljača MinCustomerPrice=Minimalna cijena kupca DynamicPriceConfiguration=Dinamična konfiguracija cijene -DynamicPriceDesc=Na kartici proizvoda, s uključenim ovim modulom, u mogučnosti ste postaviti matematičke funkcije za izračun Prodajne i Nabavne cijene. Takva funkcija koristi sve matematičke operatore, konstante i varijable. Ovdje možete postaviti varijable koje želite da budu dostupne i ako se varijabla mora automatski mijenjati, vanjsku URL poveznicu za automatsku promjenu. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Dodaj varijablu AddUpdater=Dodaj promjenjivač GlobalVariables=Globalne varijable VariableToUpdate=Variabla za promjeniti GlobalVariableUpdaters=Globalne varijable promjene +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval promjene (minute) LastUpdated=Latest update CorrectlyUpdated=Ispravno promjenjeno @@ -260,6 +281,8 @@ SizeUnits=Jedinica veličine DeleteProductBuyPrice=Obriši nabavnu cijenu ConfirmDeleteProductBuyPrice=Jeste li sigurni da želite obrisati ovu nabavnu cijenu ? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/hr_HR/propal.lang b/htdocs/langs/hr_HR/propal.lang index f89b6109e7d..480dfcf74ac 100644 --- a/htdocs/langs/hr_HR/propal.lang +++ b/htdocs/langs/hr_HR/propal.lang @@ -3,7 +3,7 @@ Proposals=Ponude Proposal=Ponuda ProposalShort=Ponuda ProposalsDraft=Skice ponuda -ProposalsOpened=Otvorene trgovačke ponude +ProposalsOpened=Otvori ponude Prop=Ponude CommercialProposal=Ponuda ProposalCard=Kartica ponude @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Iznos po mjesecu (netto bez PDV-a) NbOfProposals=Broj ponuda ShowPropal=Prikaži ponudu PropalsDraft=Skice -PropalsOpened=Otvorena +PropalsOpened=Otvori PropalStatusDraft=Skica (potrebno ovjeriti) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Potpisana (za naplatu) diff --git a/htdocs/langs/hr_HR/resource.lang b/htdocs/langs/hr_HR/resource.lang index 484a5e4f674..1b85c37daf1 100644 --- a/htdocs/langs/hr_HR/resource.lang +++ b/htdocs/langs/hr_HR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Sredstvo uspješno obrisano DictionaryResourceType=Tipovi sredstava SelectResource=Odaberite sredstvo + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resursi diff --git a/htdocs/langs/hr_HR/salaries.lang b/htdocs/langs/hr_HR/salaries.lang index 5d636a9a698..068b6b0c7a7 100644 --- a/htdocs/langs/hr_HR/salaries.lang +++ b/htdocs/langs/hr_HR/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Konto za isplate plaća -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Konto za financijske isplate +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Plaća Salaries=Plaće NewSalaryPayment=Nova isplata plaće diff --git a/htdocs/langs/hr_HR/sendings.lang b/htdocs/langs/hr_HR/sendings.lang index 36e3dd56ce2..ded3c72952b 100644 --- a/htdocs/langs/hr_HR/sendings.lang +++ b/htdocs/langs/hr_HR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Otpremni list ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Jednostavan model dokumenta DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Upozorenje, nema prozvoda za isporuku. StatsOnShipmentsOnlyValidated=Statistika se vodi po otpremnicama koje su ovjerene. Korišteni datum je datum ovjere otpremnice (planirani datum isporuke nije uvjek poznat). @@ -51,10 +50,10 @@ ActionsOnShipping=Događaji na otpremnici LinkToTrackYourPackage=Poveznica za pračenje pošiljke ShipmentCreationIsDoneFromOrder=Trenutno, kreiranje nove otpremnice se radi iz kartice narudžbe. ShipmentLine=Stavka otpremnice -ProductQtyInCustomersOrdersRunning=Količina proizvoda u otvorenim narudžbama kupaca -ProductQtyInSuppliersOrdersRunning=Količina proizvoda u otvorenim narudžbama dobavljača -ProductQtyInShipmentAlreadySent=Količina proizvoda s otvorenih narudžba kupaca već poslano -ProductQtyInSuppliersShipmentAlreadyRecevied=Količina proizvoda s otvorenih narudžba dobavljača već primljeno +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Nije pronađen proizvod za isporuku u skladištu %s. Ispravite zalihe ili se vratite nazad i odaberite drugo skladište. WeightVolShort=Težina/Volumen ValidateOrderFirstBeforeShipment=Prvo morate ovjeriti narudžbu prije izrade otpremnice. diff --git a/htdocs/langs/hr_HR/sms.lang b/htdocs/langs/hr_HR/sms.lang index 61408278216..a3b2e6606d2 100644 --- a/htdocs/langs/hr_HR/sms.lang +++ b/htdocs/langs/hr_HR/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=Nije poslano SmsSuccessfulySent=SMS ispravno poslani (od %s do %s) ErrorSmsRecipientIsEmpty=Broj ciljeva je prazan WarningNoSmsAdded=Nema novih brojeva za dodavanje na ciljanu listu -ConfirmValidSms=Da li potvrđujete ovu kampanju ? +ConfirmValidSms=Do you confirm validation of this campain? NbOfUniqueSms=Br. DOF jedinstvenih tel. brojeva NbOfSms=Br. tel. brojeva ThisIsATestMessage=Ovo je test poruka diff --git a/htdocs/langs/hr_HR/stocks.lang b/htdocs/langs/hr_HR/stocks.lang index c8c8d6580e4..2af06a83180 100644 --- a/htdocs/langs/hr_HR/stocks.lang +++ b/htdocs/langs/hr_HR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Oznaka kretanja NumberOfUnit=Broj jedinica UnitPurchaseValue=Jed. nabavna cijena StockTooLow=Preniska zaliha -StockLowerThanLimit=Zaliha je niža od granice +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Vrijednost PMPValue=Procjenjena prosječna cijena PMPValueShort=PPC @@ -53,7 +53,7 @@ IndependantSubProductStock=Zaliha proizvoda i podproizvoda su nezavisne QtyDispatched=Otpremljena količina QtyDispatchedShort=Otpremljena količina QtyToDispatchShort=Količina za otpremu -OrderDispatch=Otprema zalihe +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Pravilo za automatsko smanjivanje zaliha (ručno smanjivanje je uvjek moguće iako je automatsko smanjivanje aktivirano) RuleForStockManagementIncrease=Pravilo za automatsko povečavanje zaliha (ručno povečavanje je uvjek moguće iako je automatsko povečavanje aktivirano) DeStockOnBill=Smanji stvarne zalihe kod potvrde računa kupaca/odobrenja @@ -62,16 +62,19 @@ DeStockOnShipment=Smanji stvarnu zaligu kod potvrde otpreme DeStockOnShipmentOnClosing=Smanji stvarnu zalihu kod zatvaranja slanja ReStockOnBill=Povečaj stvarnu zalihu kod potvrde računa dobavljača/odobrenja ReStockOnValidateOrder=Povečaj stvarnu zalihu kod potvrde narudžbe dobavljača -ReStockOnDispatchOrder=Povečaj stvarnu zalihu kod ručnog stavljanja na skladište, nakon primitka narudžbe dobavljača +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Narudžba nije stigla ili nema status koji dozvoljava stavljanje proizvoda na zalihu skladišta. -StockDiffPhysicTeoric=Objašnjenje za razliku između fizičke i teoretske zalihe +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nema predefiniranih proizvoda za ovaj objekt. Potrebno je staviti robu na zalihu. DispatchVerb=Otpremi StockLimitShort=Razina za obavijest StockLimit=Stanje zaliha za obavjest PhysicalStock=Fizička zaliha RealStock=Stvarna zaliha +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Umjetna zaliha +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=ID skladišta DescWareHouse=Opis skladišta LieuWareHouse=Lokalizacija skladišta @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Količina proizvoda %s na zalihi prije odabranog perioda NbOfProductAfterPeriod=Količina proizvoda %s na zalihi nakon odabranog perioda (> %s) MassMovement=Masovno kretanje SelectProductInAndOutWareHouse=Odaberite proizvod, količinu, izvorno skladište i odredišno skladište, onda kliknite "%s". Kada završite za sva potrebna kretanja, kliknite na "%s". -RecordMovement=Zabilježi prijenos +RecordMovement=Record transfer ReceivingForSameOrder=Primke za narudžbu StockMovementRecorded=Kretanja zaliha zabilježeno RuleForStockAvailability=Pravila potrebnih zaliha @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Uredi +inventoryValidate=Ovjereno +inventoryDraft=U tijeku +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filter po kategoriji +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Dodaj +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Obriši stavku +RegulateStock=Regulate Stock +ListInventory=Popis diff --git a/htdocs/langs/hr_HR/stripe.lang b/htdocs/langs/hr_HR/stripe.lang new file mode 100644 index 00000000000..e1561682253 --- /dev/null +++ b/htdocs/langs/hr_HR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Obrazac plaćanja +WelcomeOnPaymentPage=Dobro došli na naš servis online plaćanja +ThisScreenAllowsYouToPay=Ova stranica vam dozvoljava da vršite online plaćanje prema %s +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=Za završiti +YourEMail=E-pošta za prijem potvrde uplate +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Kreditor +PaymentCode=Kod plaćanja +StripeDoPayment=Idi na plaćanje +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Sljedeće +ToOfferALinkForOnlinePayment=URL za %s plaćanje +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Ova stranica potvrđuje da je vaše plaćanje pohranjeno. Hvala Vam. +YourPaymentHasNotBeenRecorded=Vaša uplata nije pohranjena i transakcija je otkazana. Hvala Vam. +AccountParameter=Parametri računa +UsageParameter=Parametri korištenja +InformationToFindParameters=Pomoć za pronalaženje podataka o računu %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Naziv pružatelja +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/hr_HR/supplier_proposal.lang b/htdocs/langs/hr_HR/supplier_proposal.lang index 9e7c99bdb5d..bd3513eddd2 100644 --- a/htdocs/langs/hr_HR/supplier_proposal.lang +++ b/htdocs/langs/hr_HR/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Pronađi zahtjev DraftRequests=Skica zahtjeva SupplierProposalsDraft=Skice ponuda dobavljača LastModifiedRequests=Zadnjih %s promjenjenih zahtjeva za cijenom -RequestsOpened=Opened price requests +RequestsOpened=Otvoreni zahtjevi SupplierProposalArea=Sučelje ponuda dobavljača SupplierProposalShort=Ponuda dobavljača SupplierProposals=Ponude dobavljača @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Obriši zahtjev ValidateAsk=Ovjeri zahtjev SupplierProposalStatusDraft=Skica (potrebna ovjera) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Ovjereno (zahtjev je otvoren) SupplierProposalStatusClosed=Zatvoreno SupplierProposalStatusSigned=Prihvačeno SupplierProposalStatusNotSigned=Odbijeno @@ -47,7 +47,7 @@ CommercialAsk=Zahtjev za cijenom DefaultModelSupplierProposalCreate=Izrada osnovnog modela DefaultModelSupplierProposalToBill=Osnovni predložak prilikom zatvaranja zahtjeva (prihvačeno) DefaultModelSupplierProposalClosed=Osnovni predložak prilikom zatvaranja zahtjeva (odbijeno) -ListOfSupplierProposal=Popis zahtjeva za ponudama dobavljača +ListOfSupplierProposals=Popis zahtjeva za ponudama dobavljača ListSupplierProposalsAssociatedProject=Popis ponuda dobavljača dodjeljenih projektu SupplierProposalsToClose=Ponude dobavljača za zatvaranje SupplierProposalsToProcess=Ponude dobavljača za obradu diff --git a/htdocs/langs/hr_HR/suppliers.lang b/htdocs/langs/hr_HR/suppliers.lang index b1bb4c6e7af..dcb2a537369 100644 --- a/htdocs/langs/hr_HR/suppliers.lang +++ b/htdocs/langs/hr_HR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Neki od pod proizvoda nemaju definiranu cijenu AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Cijena dobavljača ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ova ref. dobavljača već je povezana s ref.: %s NoRecordedSuppliers=Nema dobavljača SupplierPayment=Plaćanje dobavljača @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Loša kvaliteta ReputationForThisProduct=Reputacija BuyerName=Naziv kupca AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Cijena dobavljača diff --git a/htdocs/langs/hr_HR/trips.lang b/htdocs/langs/hr_HR/trips.lang index efcbc17d98e..5a5d309cb12 100644 --- a/htdocs/langs/hr_HR/trips.lang +++ b/htdocs/langs/hr_HR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Popis pristojbi TypeFees=Tipovi pristojbi ShowTrip=Prikaži izvještaj troška NewTrip=Novi izvještaj troška -CompanyVisited=Tvrtka/zaklada posječena +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Iznos ili kilometri DeleteTrip=Obriši izvještaj troška ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Datum ovjere DATE_CANCEL=Datum odustajanja DATE_PAIEMENT=Datum isplate BROUILLONNER=Ponovo otvori +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Ovjeri i predaj za odobrenje ValidatedWaitingApproval=Ovjereno (čeka odobrenje) NOT_AUTHOR=Vi niste autor izvještaja troška. Operacija je prekinuta. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Nema izvještaja troška za izvoz u ovom razdoblju. ExpenseReportPayment=Isplata izvještaja troška ExpenseReportsToApprove=Troškovi za odobrenje ExpenseReportsToPay=Troškovi za platiti -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/hr_HR/users.lang b/htdocs/langs/hr_HR/users.lang index 68872f8af82..57007c8cb5a 100644 --- a/htdocs/langs/hr_HR/users.lang +++ b/htdocs/langs/hr_HR/users.lang @@ -66,8 +66,8 @@ InternalUser=Interni korisnik ExportDataset_user_1=Korisnici i svojstva DomainUser=Korisnik na domeni %s Reactivate=Reaktiviraj -CreateInternalUserDesc=Ova forma omogućuje vam kreiranje internog korisnika u vašoj tvrtci/zakladi. Za kreiranje vanjskog korisnika (kupca, dobavljača, ...), koristite ovaj gumb 'Kreiraj Dolibarr korisnika' sa kartice kontakata komitenta. -InternalExternalDesc=Interni korisnik je korisnik koji je dio vaše tvrtke/zaklade.
Vanjski korisnik je kupac, dobavljač ili sl.

U oba slučaja, dozvole definiraju prava u Dolibarru, isto tako vanjski korisnik može imati drugačiji izbornik od internog korisnika ( vidi Naslovna - Podešavanje - Prikaz) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Dozvola odobrena jer je nasljeđeno od jedne od korisničkih grupa. Inherited=Nasljeđeno UserWillBeInternalUser=Kreirani korisnik će biti interni korisnik (jer nije vezan za određenog komitenta) diff --git a/htdocs/langs/hr_HR/website.lang b/htdocs/langs/hr_HR/website.lang index 92889fb3a1a..3f9e3fb04cf 100644 --- a/htdocs/langs/hr_HR/website.lang +++ b/htdocs/langs/hr_HR/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Jeste li sigurni da želite obrisati ovo web mjesto. Sve st WEBSITE_PAGENAME=Naziv stranice/alias WEBSITE_CSS_URL=URL vanjske CSS datoteke WEBSITE_CSS_INLINE=CSS sadržaj +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Mediji EditCss=Uredi stil/CSS EditMenu=Uredi izbornik @@ -14,8 +15,9 @@ EditPageContent=Uredi sadržaj Website=Website Webpage=Web page AddPage=Dodaj stranicu +HomePage=Home Page PreviewOfSiteNotYetAvailable=Pregled vašeg web mjesta %s nije još dostupan. Prvo morate dodati stranicu. -RequestedPageHasNoContentYet=Tražena stranica pod ID %s nema sadržaja ili je cache obrisan. Uredite sadržaj stranice da biste riješili problem. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Stranica %s od web lokacije %s je obrisana PageAdded=Stranica '%s' je dodana ViewSiteInNewTab=Pogledaj lokaciju u novom tabu @@ -23,6 +25,7 @@ ViewPageInNewTab=Pogledaj stranicu u novom tabu SetAsHomePage=Postavi kao početnu stranicu RealURL=Pravi URL ViewWebsiteInProduction=Pogledaj web lokaciju koristeći URL naslovnice -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/hr_HR/withdrawals.lang b/htdocs/langs/hr_HR/withdrawals.lang index d124bdf89c1..a00dfc6780f 100644 --- a/htdocs/langs/hr_HR/withdrawals.lang +++ b/htdocs/langs/hr_HR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Iznos za isplatu WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nema računa kupaca u načinu plaćanja "isplata" na čekanju. Idite na tab "Isplata" na kartici računa za kreiranje zahtjeva. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ovlaštena osoba WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Razlog odbijanja RefusedInvoicing=Naplati odbijanje NoInvoiceRefused=Nemoj naplatiti odbijanje InvoiceRefused=Račun odbijen (Naplati odbijanje kupcu) +StatusDebitCredit=Status debit/credit StatusWaiting=Čeka StatusTrans=Poslano StatusCredited=Kreditirano diff --git a/htdocs/langs/hu_HU/accountancy.lang b/htdocs/langs/hu_HU/accountancy.lang index 497b3bcce71..26d9bc44c53 100644 --- a/htdocs/langs/hu_HU/accountancy.lang +++ b/htdocs/langs/hu_HU/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Számla SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Eladások AccountingJournalType3=Beszerzések AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Export Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/hu_HU/admin.lang b/htdocs/langs/hu_HU/admin.lang index 2f228660c45..71fe5fa2d07 100644 --- a/htdocs/langs/hu_HU/admin.lang +++ b/htdocs/langs/hu_HU/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integráció Module1400Name=Számvitel -Module1400Desc=Számviteli menedzsment (dupla felek) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Címkék/kategóriák @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modult kínál online fizetési oldalra hitelkártya Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Számviteli menedzsment (dupla felek) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/hu_HU/agenda.lang b/htdocs/langs/hu_HU/agenda.lang index cc1cb860ff8..f796bf8cb7a 100644 --- a/htdocs/langs/hu_HU/agenda.lang +++ b/htdocs/langs/hu_HU/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=%s számla törölve InvoicePaidInDolibarr=%s számla fizetettre változott InvoiceCanceledInDolibarr=%s számla visszavonva MemberValidatedInDolibarr=%s tag jóváhagyva +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=A %s szállítás jóváhagyva -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=%s megrendelés érvényesítve @@ -74,13 +75,17 @@ InterventionSentByEMail=Beavatkozás %s postáztuk ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Indulási dátum DateActionEnd=Befejezési dátum AgendaUrlOptions1=Az alábbi paramétereket hozzá lehet adni a kimenet szűréséhez: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s kimenet szükítése a %s felhasználó érintő cselekvésekre. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Mutassa a születésnapokat a névjegyzékben AgendaHideBirthdayEvents=Rejtse el a születésnapokat a névjegyzékben diff --git a/htdocs/langs/hu_HU/banks.lang b/htdocs/langs/hu_HU/banks.lang index c3c7c1bb4be..4d67f6a88ac 100644 --- a/htdocs/langs/hu_HU/banks.lang +++ b/htdocs/langs/hu_HU/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Tranzakció ID azonosító BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Összeegyeztetni Conciliation=Egyeztetés ReconciliationLate=Reconciliation late IncludeClosedAccount=Közé zárt fiókok -OnlyOpenedAccount=Csak számlát nyitott +OnlyOpenedAccount=Csak nyitott számla egyenlegeket AccountToCredit=Jóváirandó számla AccountToDebit=Terhelendő számla DisableConciliation=Letiltása összehangolási funkció erre a számlára ConciliationDisabled=Megbékélés funkció tiltva LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Megnyitva +StatusAccountOpened=Nyitott StatusAccountClosed=Lezárt AccountIdShort=Szám LineRecord=Tranzakció @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Csekk visszatért és a számla újranyitott BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/hu_HU/bills.lang b/htdocs/langs/hu_HU/bills.lang index 02b38b87984..219bb5b4c3c 100644 --- a/htdocs/langs/hu_HU/bills.lang +++ b/htdocs/langs/hu_HU/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Ügyfél számlák BillsCustomer=Vásárlói számla BillsSuppliers=Beszállítói számlák BillsCustomersUnpaid=Nyiott vevőszámlák -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Fizetetlen vevői száma: %s BillsSuppliersUnpaid=Nyitott beszállítói számlák -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Fizetetlen beszállítói számla: %s BillsLate=Késedelmes fizetések BillsStatistics=Vevőszámla statisztika BillsStatisticsSuppliers=Beszállítói számlák statisztikája @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Normál számla InvoiceStandardAsk=Normál számla InvoiceStandardDesc=Ez a fajta számla az általános számla. -InvoiceDeposit=Befizetési számla -InvoiceDepositAsk=Befizetési számla -InvoiceDepositDesc=Ez a fajta számla készül, ha a befizetés érkezett. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma számla InvoiceProFormaAsk=Proforma számla InvoiceProFormaDesc=Proforma számla egy kép egy valódi számla, de nincs könyvelési értéke. @@ -62,7 +62,7 @@ PaymentsBack=Kifizetések vissza paymentInInvoiceCurrency=in invoices currency PaidBack=Visszafizetések DeletePayment=Fizetés törlése -ConfirmDeletePayment=Biztosan törölni kívánja ezt a fizetést? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Beszállítók kifizetések ReceivedPayments=Fogadott befizetések @@ -115,7 +115,7 @@ BillStatus=Számla állapota StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Tervezet (érvényesítés szükséges) BillStatusPaid=Fizetett -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Fizetett (készen a végszámlához) BillStatusCanceled=Elveszett BillStatusValidated=Hitelesített (ki kell fizetni) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Fizetett (részben) BillShortStatusDraft=Tervezet BillShortStatusPaid=Fizetett BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Feldolgozott +BillShortStatusConverted=Fizetett BillShortStatusCanceled=Elveszett BillShortStatusValidated=Hitelesítve BillShortStatusStarted=Indította @@ -198,12 +198,12 @@ ShowBill=Számla megjelenítése ShowInvoice=Számla megjelenítése ShowInvoiceReplace=Helyetesítő számla megjelenítése ShowInvoiceAvoir=Jóváírás mutatása -ShowInvoiceDeposit=Letéti számla mutatása +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Fizetés mutatása AlreadyPaid=Már kifizetett AlreadyPaidBack=Visszafizetés megtörtént -AlreadyPaidNoCreditNotesNoDeposits=Már kifizetett (hitel nélkül jegyzetek és betétek) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Elveszett RemainderToPay=Maradék egyenleg RemainderToTake=Fennmaradt átadandó összeg @@ -270,10 +270,10 @@ RelativeDiscount=Relatív kedvezmény GlobalDiscount=Globális kedvezmény CreditNote=Jóváírást CreditNotes=Jóváírások -Deposit=Betét -Deposits=Betétek +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Kedvezmény a jóváírásból %s -DiscountFromDeposit=Kifizetések a letéti számláról %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ez a fajta hitel felhasználható a számlán, mielőtt azok jóváhagyásra kerülnek CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Nem lehet eltávolítani a fizetést, hiszen ExpectedToPay=Várható fizetés CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Ezzel a fizetéssel fizetve -ClosePaidInvoicesAutomatically=Beállítás "Fizetett"-re, a kicserélt számla teljes kifizetés megtörtént. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Beállítás "Fizetett"-ként. Az összes jóváírás teljes kifizetése megtörtén. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Minden számla nélkül is fizetni fogják automatikusan bezárja az állapota "fizetni". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Számla PDF sablon Crabe. A teljes számla sablon (Sablon ajánlott) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A $syymm kezdődéssel már létezik számla, és nem kompatibilis ezzel a sorozat modellel. Töröld le vagy nevezd át, hogy aktiválja ezt a modult. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Reprezentatív vevőszámla nyomon követése TypeContact_facture_external_BILLING=Ügyfél számla Kapcsolat diff --git a/htdocs/langs/hu_HU/bookmarks.lang b/htdocs/langs/hu_HU/bookmarks.lang index 86f3a40c02a..9c399516a26 100644 --- a/htdocs/langs/hu_HU/bookmarks.lang +++ b/htdocs/langs/hu_HU/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Az oldal könyvjelzőkhöz adása +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Könyvjelző Bookmarks=Könyvjelzők +ListOfBookmarks=Könyvjelzők listája +EditBookmarks=List/edit bookmarks NewBookmark=Új könyvjelző ShowBookmark=Könyvjelző mutatása OpenANewWindow=Nyisson meg egy új ablakban @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Új ablak BookmarkTargetReplaceWindowShort=Aktuális ablak BookmarkTitle=Könyvjelzõ név UrlOrLink=URL elérési út -BehaviourOnClick=Viselkedés, ha egy URL elérési útra kattintott +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Könyvjelző lértehozása SetHereATitleForLink=Állítsa be a címet a könyvjelzőhöz UseAnExternalHttpLinkOrRelativeDolibarrLink=Használjon egy külső http URL-t vagy relatív URL Dolibarr diff --git a/htdocs/langs/hu_HU/boxes.lang b/htdocs/langs/hu_HU/boxes.lang index 50020bf8ddf..e125fdfb94e 100644 --- a/htdocs/langs/hu_HU/boxes.lang +++ b/htdocs/langs/hu_HU/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss Információk BoxLastProducts=Legutóbbi %s termékek/szolgáltatások BoxProductsAlertStock=Termék-készlet figyelmeztetések @@ -82,3 +83,4 @@ ForCustomersOrders=Ügyfél megrendelések ForProposals=Javaslatok LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/hu_HU/categories.lang b/htdocs/langs/hu_HU/categories.lang index d04045fb4f3..b5e44aac7ef 100644 --- a/htdocs/langs/hu_HU/categories.lang +++ b/htdocs/langs/hu_HU/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Címkék/kategóriák +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Ez a kategória ezzel a ref# -el már létezik ContentsVisibleByAllShort=Tartalom látható mindenki számára ContentsNotVisibleByAllShort=Tartalom nem látható mindenki számára DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=Kiegészítő tulajdonságok CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/hu_HU/commercial.lang b/htdocs/langs/hu_HU/commercial.lang index ca33686526e..31e37899055 100644 --- a/htdocs/langs/hu_HU/commercial.lang +++ b/htdocs/langs/hu_HU/commercial.lang @@ -1,8 +1,8 @@ # Dolibarr language file - Source file is en_US - commercial Commercial=Kereskedelem CommercialArea=Kereskedelemi terület -Customer=Ügyfél -Customers=Ügyfelek +Customer=Vevő +Customers=Vevők Prospect=Kilátás Prospects=Kilátások DeleteAction=Esemény törlése @@ -10,31 +10,32 @@ NewAction=Új esemény AddAction=Esemény létrehozása AddAnAction=Esemény létrehozása AddActionRendezVous=Találkozó ütemezése -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Biztosan törölni akarja ezt az eseményt? CardAction=Cselekvés kártya -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Kapcsolódó vállalkozás +ActionOnContact=Kapcsolódó kapcsolat TaskRDVWith=Találkozó %s -al ShowTask=Feladat mutatása ShowAction=Cselekvés mutatása ActionsReport=Cselekvés jelentés -ThirdPartiesOfSaleRepresentative=Partnerek értékesítővel +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Értékesítő SalesRepresentatives=Értékesítők -SalesRepresentativeFollowUp=Értékesítő (utólagos) +SalesRepresentativeFollowUp=Értékesítő (követés) SalesRepresentativeSignature=Értékesítő (aláírás) NoSalesRepresentativeAffected=Nincs érintett értékesítő -ShowCustomer=Ügyfél mutatása +ShowCustomer=Vevő mutatása ShowProspect=Kilátás mutatása ListOfProspects=Kilátások listája -ListOfCustomers=Ügyfelek listája -LastDoneTasks=Latest %s completed actions -LastActionsToDo=Oldest %s not completed actions +ListOfCustomers=Vevők listája +LastDoneTasks=Utolsó %s elkészült feladat +LastActionsToDo=Legrégebbi %s nem végrehajtott feladat DoneAndToDoActions=Végrehajtott és végrehajtásra váró feladatok DoneActions=Befejezett események ToDoActions=Befejezetlen események -SendPropalRef=Submission of commercial proposal %s -SendOrderRef=Submission of order %s +SendPropalRef=Kereskedelmi ajánlat küldése %s +SendOrderRef=Megrendelés küldése %s StatusNotApplicable=Nem alkalmazható StatusActionToDo=Tennivaló StatusActionDone=Kész @@ -53,11 +54,11 @@ ActionAC_PROP=Ajánlat küldése emailben ActionAC_EMAIL=Email küldése ActionAC_RDV=Találkozók ActionAC_INT=Helyszíni beavatkozás -ActionAC_FAC=Számla küldése ügyfélnek levélben -ActionAC_REL=Számla küldése ügyfélnek levélben (emlékeztető) +ActionAC_FAC=Számla küldése vevők levélben +ActionAC_REL=Számla küldése vevőnek levélben (emlékeztető) ActionAC_CLO=Bezár ActionAC_EMAILING=Tömeges email küldés -ActionAC_COM=Ügyfél rendelése elküldése levélben +ActionAC_COM=Vevő rendelésének elküldése levélben ActionAC_SHIP=Fuvarlevél küldése levélben ActionAC_SUP_ORD=Beszállítói rendelés elküldése levélben ActionAC_SUP_INV=Beszállítói számla elküldése levélben diff --git a/htdocs/langs/hu_HU/companies.lang b/htdocs/langs/hu_HU/companies.lang index 541e44320c3..2f269bd369a 100644 --- a/htdocs/langs/hu_HU/companies.lang +++ b/htdocs/langs/hu_HU/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Új magánszemély NewCompany=Új cég (jelentkező, vevő, szállító) NewThirdParty=Új partner (jelentkező, vevő, szállító) CreateDolibarrThirdPartySupplier=Parnter (szállító) létrehozása -CreateThirdPartyOnly=Harmadik fél létrehozása +CreateThirdPartyOnly=Parnter létrehozása (harmadik fél) CreateThirdPartyAndContact=Harmadik fél létrehozása + szülő kapcsolat ProspectionArea=Potenciális ​​terület IdThirdParty=Partner ID @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Vevők ThirdPartyCustomersWithIdProf12=Vevők %s vagy %s ThirdPartySuppliers=Beszállítók ThirdPartyType=Partner típusa -Company/Fundation=Cég / Alapítvány Individual=Magánszemély ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Anyavállalat @@ -78,10 +77,10 @@ VATIsNotUsed=ÁFÁ-t nem használandó CopyAddressFromSoc=Cím kitöltése a harmadik férl címével ThirdpartyNotCustomerNotSupplierSoNoRef=A harmadik fél nem vevő sem szállító, nincs elérhető hivatkozási objektum PaymentBankAccount=Fizetési bank számla -OverAllProposals=Kiajánlott összesen -OverAllOrders=Rendelés összesen -OverAllInvoices=Számlák összesen -OverAllSupplierProposals=Total price requests +OverAllProposals=Javaslatok +OverAllOrders=Megrendelések +OverAllInvoices=Számlák +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Másodlagos adó használata LocalTax1IsUsedES= RE használandó @@ -237,6 +236,12 @@ ProfId3TN=Szakma Id 3 (Douane kód) ProfId4TN=Szakma Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Szakma ID 1 (OGRN) ProfId2RU=Szakma ID 2 (INN) ProfId3RU=Szakma Id 3 (KKP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relatív kedvezmény CustomerAbsoluteDiscountShort=Abszolút kedvezmény CompanyHasRelativeDiscount=A vevő alapértelmezett kedvezménye %s%% CompanyHasNoRelativeDiscount=A vevő nem rendelkezik relatív kedvezménnyel alapértelmezésben -CompanyHasAbsoluteDiscount=A vevő továbbra is kedvezményt kap hitel vagy betét %s %s-ig +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Ez a vevő még hitellel rendelkezik %s %s-ig CompanyHasNoAbsoluteDiscount=A vevőnek nincs kedvezménye vagy hitele CustomerAbsoluteDiscountAllUsers=Abszolút kedvezmények (minden felhasználó által megadott) @@ -390,7 +395,7 @@ ListCustomersShort=Vevők listája ThirdPartiesArea=Partner és a szerződés helye LastModifiedThirdParties=Legutóbb %s változtatott harmadik felet UniqueThirdParties=Összes egyedi parnter -InActivity=Megnyitva +InActivity=Nyitott ActivityCeased=Lezárt ThirdPartyIsClosed=Harmadik fél lezárva ProductsIntoElements=Termékek / szolgáltatások listálya ide %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=A kód szabad. Ez a kód bármikor módosítható. ManagingDirectors=Vezető(k) neve (ügyvezető, elnök, igazgató) MergeOriginThirdparty=Duplikált partner (a partnert törlésre kerül) MergeThirdparties=Partnerek egyesítése -ConfirmMergeThirdparties=Biztos hogy egyesíteni szeretnéd ezt a harmadik félt az aktuális partnerrel? Minden kapcsolt objektum (számlák, megrendelések, ...) átkerülnek a jelenlegi harmadik félhez, így a másik törölhetővé válik. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Partnerek egyesítése megtörtént SaleRepresentativeLogin=Kereskedelmi képviselő bejelentkezés SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/hu_HU/contracts.lang b/htdocs/langs/hu_HU/contracts.lang index 7b462446a64..32c6f7c95b9 100644 --- a/htdocs/langs/hu_HU/contracts.lang +++ b/htdocs/langs/hu_HU/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Ez a lista csak azoknak a szerződéseknek a szolg StandardContractsTemplate=Általános szerződés minta ContactNameAndSignature=A %s-hez név és aláírás OnlyLinesWithTypeServiceAreUsed=Csak a "Service" szolgáltatás sorok lesznek klónozva. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Értékesítési képviselő a szerződés aláírásakor diff --git a/htdocs/langs/hu_HU/exports.lang b/htdocs/langs/hu_HU/exports.lang index 4d623ef66c4..b3595972aaf 100644 --- a/htdocs/langs/hu_HU/exports.lang +++ b/htdocs/langs/hu_HU/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/hu_HU/externalsite.lang b/htdocs/langs/hu_HU/externalsite.lang index 5905f248a2f..eff95943d10 100644 --- a/htdocs/langs/hu_HU/externalsite.lang +++ b/htdocs/langs/hu_HU/externalsite.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - externalsite -ExternalSiteSetup=Beállítás linket külső weboldal +ExternalSiteSetup=Külső weboldalra mutató link beállítása ExternalSiteURL=Külső oldal URL -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry +ExternalSiteModuleNotComplete=Az ExternalSite modul nincs megfelelően beállítva. +ExampleMyMenuEntry=A menüpontom diff --git a/htdocs/langs/hu_HU/ftp.lang b/htdocs/langs/hu_HU/ftp.lang index b7eb4a101d8..1395f5b23d0 100644 --- a/htdocs/langs/hu_HU/ftp.lang +++ b/htdocs/langs/hu_HU/ftp.lang @@ -9,6 +9,6 @@ FailedToConnectToFTPServer=Nem sikerült csatlakozni az FTP szerverhez (szerver FailedToConnectToFTPServerWithCredentials=Nem sikerült bejelentkezni FTP szerverre a megadott felhasználó névvel/jelszóval. FTPFailedToRemoveFile=Nem sikerült eltávolítani: %s. FTPFailedToRemoveDir=Nem sikerült eltávolítani %s (Engedélyek? Üres a könyvtár?). -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s +FTPPassiveMode=Passzív mód +ChooseAFTPEntryIntoMenu=Válasszon egy FTP kapcsolatot a menüben! +FailedToGetFile=Nem sikerült a %s fájlokat letölteni diff --git a/htdocs/langs/hu_HU/help.lang b/htdocs/langs/hu_HU/help.lang index 1cfda20aa17..d39238398c3 100644 --- a/htdocs/langs/hu_HU/help.lang +++ b/htdocs/langs/hu_HU/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Támogatás forrása TypeSupportCommunauty=Közösség (ingyenes) TypeSupportCommercial=Üzleti TypeOfHelp=Típus -NeedHelpCenter=Need help or support? +NeedHelpCenter=Segítségre vagy támogatásra van szüksége? Efficiency=Hatékonyság TypeHelpOnly=Csak segítség TypeHelpDev=Segítség és fejlesztés @@ -22,5 +22,5 @@ ToGetHelpGoOnSparkAngels2=Bizonyos esetekben nincs elérhető cég, változtassa BackToHelpCenter=Más esetben, kattintson ide, hogy visszatérjen a Segítség központ nyitólapjára. LinkToGoldMember=Hívhatja az egyik előre kiválasztott az ön nyelvén (%s) tudó Dolibarr oktatót ha erre a Widget-re kattint (álltapot és maximális ár autómatikusan frissül): PossibleLanguages=Támogatott nyelvek -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation -SeeOfficalSupport=For official Dolibarr support in your language:
%s +SubscribeToFoundation=Segítse a Dolibarr projektet, iratkozzon fel az alapítványhoz +SeeOfficalSupport=Hivatalos Dolibarr támogatás a saját nyelvén:
%s diff --git a/htdocs/langs/hu_HU/holiday.lang b/htdocs/langs/hu_HU/holiday.lang index fef078aba48..27ecc071b92 100644 --- a/htdocs/langs/hu_HU/holiday.lang +++ b/htdocs/langs/hu_HU/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Megszakítva RefuseCP=Megtagadta ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Leírás SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/hu_HU/install.lang b/htdocs/langs/hu_HU/install.lang index 25f2da00126..4080bc69214 100644 --- a/htdocs/langs/hu_HU/install.lang +++ b/htdocs/langs/hu_HU/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=A DoliWamp-ot használja a Dolibarr telepítéséhez, az i KeepDefaultValuesDeb=Linux csomagból (Ubuntun, Fedora vagy Debian, ...) használja a telepítési varázslót, az itt lévõ értékek már optimalizálva vannak. Csak az adatbázis tulajdonosnak kell jelszót megadni. Csak saját felelõsségre módosítsa ezeket az értékeket. KeepDefaultValuesMamp=A DoliMamp-ot használja a Dolibarr telepítéséhez, az itt lévõ értékek már optimalizálva vannak. Csak saját felelõsségre módosítsa ezeket. KeepDefaultValuesProxmox=Ön használja az Dolibarr Setup Wizard egy Proxmox virtuális készüléket, így az itt javasolt értékek már optimalizálva. Megváltoztatni őket, ha tudod, mit csinálsz. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/hu_HU/languages.lang b/htdocs/langs/hu_HU/languages.lang index 35bd2a9b336..8720b1c9118 100644 --- a/htdocs/langs/hu_HU/languages.lang +++ b/htdocs/langs/hu_HU/languages.lang @@ -12,7 +12,7 @@ Language_de_DE=Német Language_de_AT=Német (Ausztria) Language_de_CH=Német (Svájc) Language_el_GR=Görög -Language_el_CY=Greek (Cyprus) +Language_el_CY=Görög (Ciprus) Language_en_AU=Angol (Ausztrália) Language_en_CA=Angol (Kanada) Language_en_GB=Angol (Egyesült Királyság) @@ -27,10 +27,10 @@ Language_es_BO=Spanyol (Bolívia) Language_es_CL=Spanyol (Chile) Language_es_CO=Spanyol (Kolumbia) Language_es_DO=Spanyol (Dominikai Köztársaság) -Language_es_EC=Spanish (Ecuador) +Language_es_EC=Spanyol (Ecuador) Language_es_HN=Spanyol (Honduras) Language_es_MX=Spanyol (Mexikó) -Language_es_PA=Spanish (Panama) +Language_es_PA=Spanyol (Panama) Language_es_PY=Spanyol (Paraguay) Language_es_PE=Spanyol (Peru) Language_es_PR=Spanyol (Puerto Rico) @@ -44,7 +44,7 @@ Language_fr_CA=Francia (Kanada) Language_fr_CH=Francia (Svájc) Language_fr_FR=Francia Language_fr_NC=Francia (Új-Kaledónia) -Language_fy_NL=Frisian +Language_fy_NL=Fríz Language_he_IL=Héber Language_hr_HR=Horvát Language_hu_HU=Magyar @@ -54,13 +54,13 @@ Language_it_IT=Olasz Language_ja_JP=Japán Language_ka_GE=Grúz Language_km_KH=Khmer -Language_kn_IN=Kannada +Language_kn_IN=Kanada Language_ko_KR=Koreai Language_lo_LA=Laoszi Language_lt_LT=Litván Language_lv_LV=Lett Language_mk_MK=Macedóniai -Language_mn_MN=Mongolian +Language_mn_MN=Mongol Language_nb_NO=Norvég (Bokmål) Language_nl_BE=Holland (Belgium) Language_nl_NL=Holland (Hollandia) diff --git a/htdocs/langs/hu_HU/ldap.lang b/htdocs/langs/hu_HU/ldap.lang index 0ce69a04805..a1a1eafeb7b 100644 --- a/htdocs/langs/hu_HU/ldap.lang +++ b/htdocs/langs/hu_HU/ldap.lang @@ -13,8 +13,8 @@ LDAPUsers=Felhasználók az LDAP adatbázisban LDAPFieldStatus=Állapot LDAPFieldFirstSubscriptionDate=Első feliratkozási dátum LDAPFieldFirstSubscriptionAmount=Első feliratkozási mennyiség -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount +LDAPFieldLastSubscriptionDate=Utolsó feliratkozási dátum +LDAPFieldLastSubscriptionAmount=Utolsó feliratkozási mennyiség LDAPFieldSkype=Skype név LDAPFieldSkypeExample=Például: Skype név UserSynchronized=Felhasználó szinkronizálva diff --git a/htdocs/langs/hu_HU/loan.lang b/htdocs/langs/hu_HU/loan.lang index f4c301fd0b1..951a4faac9c 100644 --- a/htdocs/langs/hu_HU/loan.lang +++ b/htdocs/langs/hu_HU/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/hu_HU/mails.lang b/htdocs/langs/hu_HU/mails.lang index 530fb843029..c2fe4fcaf4e 100644 --- a/htdocs/langs/hu_HU/mails.lang +++ b/htdocs/langs/hu_HU/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Részben elküldve MailingStatusSentCompletely=Mindenkinek elküldve MailingStatusError=Hiba MailingStatusNotSent=Nincs elküldve -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Vonal %s fájlban @@ -116,8 +120,8 @@ Notifications=Értesítések NoNotificationsWillBeSent=Nincs e-mail értesítést terveznek erre az eseményre és vállalati ANotificationsWillBeSent=1 értesítést küldünk e-mailben SomeNotificationsWillBeSent=%s értesítést küldünk e-mailben -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista minden e-mail értesítést küldeni MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/hu_HU/main.lang b/htdocs/langs/hu_HU/main.lang index e72c33485a3..224a44673a6 100644 --- a/htdocs/langs/hu_HU/main.lang +++ b/htdocs/langs/hu_HU/main.lang @@ -72,8 +72,10 @@ SeeHere=Lásd itt Apply=Alkalmaz BackgroundColorByDefault=Alapértelmezett háttérszin FileRenamed=The file was successfully renamed -FileUploaded=A fájl sikeresen fel lett töltve FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=A fájl sikeresen fel lett töltve +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Egy fájl ki lett választva csatolásra, de még nincs feltöltve. Kattintson a "Fájl Csatolása" gombra. NbOfEntries=Bejegyzések száma GoToWikiHelpPage=Online súgó olvasása (Internet hozzáférés szükséges) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Nettó TTC=Bruttó +INCT=Inc. all taxes VAT=ÁFA VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=dec AttachedFiles=Csatolt fájlok és dokumentumok -FileTransferComplete=A fájl sikeresen fel lett töltve DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/hu_HU/margins.lang b/htdocs/langs/hu_HU/margins.lang index 73d6ab6763f..55244fe07f7 100644 --- a/htdocs/langs/hu_HU/margins.lang +++ b/htdocs/langs/hu_HU/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/hu_HU/members.lang b/htdocs/langs/hu_HU/members.lang index da9d3392176..c997a4712c4 100644 --- a/htdocs/langs/hu_HU/members.lang +++ b/htdocs/langs/hu_HU/members.lang @@ -41,10 +41,10 @@ MemberType=Tagság típusa MemberTypeId=Tagság típusa id MemberTypeLabel=Tagja címkéről MembersTypes=Tagok típusok -MemberStatusDraft=Tervezet (kell érvényesíteni) -MemberStatusDraftShort=Tervezet +MemberStatusDraft=Tervezet (hitelesítés szükséges) +MemberStatusDraftShort=Piszkozat MemberStatusActive=Jóváhagyott (várakozási előfizetés) -MemberStatusActiveShort=Hitelesítette +MemberStatusActiveShort=Hitelesítetve MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Lejárt MemberStatusPaid=Előfizetés naprakész @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Nem tagja típust nem definiál. Lépjen be a Setup - Tag NewMemberType=Új tag írja WelcomeEMail=Üdvözöljük az e-mail SubscriptionRequired=Előfizetés szükséges -DeleteType=Töröl +DeleteType=Törlés VoteAllowed=Szavazz megengedett Physical=Fizikai Moral=Erkölcsi @@ -90,11 +90,12 @@ PublicMemberList=Nyilvános lista tagja BlankSubscriptionForm=Nyilvános jegyzési ív auto- BlankSubscriptionFormDesc=Dolibarr lehet az Ön számára egy nyilvános URL-t, hogy külső látogatók kérni, iratkozz fel az alapítvány. Ha egy online fizetési modul engedélyezve van, a fizetési forma is automatikusan rendelkezésre kell bocsátani. EnablePublicSubscriptionForm=Engedélyezze a köz-auto jegyzési ív +ForceMemberType=Force the member type ExportDataset_member_1=Tagok és előfizetések ImportDataset_member_1=Tagok LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions -String=Húr +String=Szöveg Text=Szöveg Int=Int DateAndTime=Dátum és idő @@ -126,7 +127,7 @@ HTPasswordExport=htpassword fájl létrehozása NoThirdPartyAssociatedToMember=Harmadik félnek nem társult a tag MembersAndSubscriptions= A tagok és Subscriptions MoreActions=Kiegészítő fellépés a felvételi -MoreActionsOnSubscription=Complementary action, suggested by default when recording a subscription +MoreActionsOnSubscription=Kiegészítő tevékenység melyet alapértelmezettem ajánl fel a rendszer egy feliratkozás rögzítése során MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Hozzon létre egy számlát nem kell fizetni @@ -135,9 +136,9 @@ LinkToGeneratedPagesDesc=Ez a képernyő lehetővé teszi a PDF fájlok névjegy DocForAllMembersCards=Generálása névjegykártyák minden tagja számára (a kimeneti formátum tulajdonképpen setup: %s) DocForOneMemberCards=Generálása névjegykártyák egy adott tag (kimeneti formátum tulajdonképpen setup: %s) DocForLabels=Létrehoz cím lap (a kimeneti formátum tulajdonképpen setup: %s) -SubscriptionPayment=Előfizetés fizetés -LastSubscriptionDate=Latest subscription date -LastSubscriptionAmount=Latest subscription amount +SubscriptionPayment=Előfizetés kiegyenlítése +LastSubscriptionDate=Utolsó feliratkozási dátum +LastSubscriptionAmount=Utolsó feliratkozási mennyiség MembersStatisticsByCountries=Tagok statisztikája ország MembersStatisticsByState=Tagok statisztikája állam / tartomány MembersStatisticsByTown=Tagok statisztikája város @@ -150,6 +151,7 @@ MembersByTownDesc=Ez a képernyő megmutatja statisztikát tagok városban. MembersStatisticsDesc=Válassza ki a kívánt statisztikákat olvasni ... MenuMembersStats=Statisztika LastMemberDate=Latest member date +LatestSubscriptionDate=Utolsó feliratkozási dátum Nature=Természet Public=Információ nyilvánosak NewMemberbyWeb=Új tag hozzá. Jóváhagyásra váró diff --git a/htdocs/langs/hu_HU/modulebuilder.lang b/htdocs/langs/hu_HU/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/hu_HU/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/hu_HU/multicurrency.lang b/htdocs/langs/hu_HU/multicurrency.lang new file mode 100644 index 00000000000..b8ed714c199 --- /dev/null +++ b/htdocs/langs/hu_HU/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Payment amount, original currency diff --git a/htdocs/langs/hu_HU/orders.lang b/htdocs/langs/hu_HU/orders.lang index f3d46e783c7..10c3129a255 100644 --- a/htdocs/langs/hu_HU/orders.lang +++ b/htdocs/langs/hu_HU/orders.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Az ügyfelek megrendelései +OrdersArea=Vevők megrendelései SuppliersOrdersArea=Beszállítói rendelések OrderCard=Megrendelőlap OrderId=Megrendelés azonosító @@ -15,14 +15,14 @@ MakeOrder=Rendelés készítése SupplierOrder=Beszállítói megrendelés SuppliersOrders=Beszállítói megrendelések SuppliersOrdersRunning=Jelenlegi beszállító megrendelések -CustomerOrder=Ügyfél megrendelés -CustomersOrders=Ügyfél megrendelések -CustomersOrdersRunning=Jelenlegi ügyfél megrendelések -CustomersOrdersAndOrdersLines=Customer orders and order lines -OrdersDeliveredToBill=Customer orders delivered to bill -OrdersToBill=Kézbesített ügyfél megrendelések -OrdersInProcess=Folyamatban lévő ügyfél megrendelések -OrdersToProcess=Feldolgozandó ügyfél megrendelések +CustomerOrder=Vevői megrendelés +CustomersOrders=Vevők megrendelései +CustomersOrdersRunning=Jelenlegi vevő megrendelései +CustomersOrdersAndOrdersLines=Vevői megrendelések és megrendelés sorok +OrdersDeliveredToBill=Kézbesített számlázandó vevő megrendelések +OrdersToBill=Kézbesített vevő megrendelések +OrdersInProcess=Folyamatban lévő vevő megrendelések +OrdersToProcess=Feldolgozandó vevő megrendelések SuppliersOrdersToProcess=Feldolgozandó beszállítói megrendelések StatusOrderCanceledShort=Visszavonva StatusOrderDraftShort=Tervezet @@ -39,30 +39,30 @@ StatusOrderRefusedShort=Visszautasított StatusOrderBilledShort=Kiszámlázott StatusOrderToProcessShort=Feldolgozni StatusOrderReceivedPartiallyShort=Részben kiszállított -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=Beérkezett termékek StatusOrderCanceled=Visszavonva StatusOrderDraft=Tervezet (hitelesítés szükséges) StatusOrderValidated=Hitelesítetve StatusOrderOnProcess=Megrendelve - beérkezésre vár -StatusOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusOrderOnProcessWithValidation=Megrendelve - beérkezésre vagy jóváhagyásra vár StatusOrderProcessed=Feldolgozott StatusOrderToBill=Kézbesítve StatusOrderApproved=Jóváhagyott StatusOrderRefused=Visszautasított StatusOrderBilled=Kiszámlázott StatusOrderReceivedPartially=Részben kiszállított -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Összes termék beérkezett ShippingExist=A szállítmány létezik QtyOrdered=Megrendelt mennyiség -ProductQtyInDraft=Product quantity into draft orders -ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered +ProductQtyInDraft=Megrendelés mennyiséget tervezet megrendelésekhez ad +ProductQtyInDraftOrWaitingApproved=Megrendelés mennyiséget tervezet vagy jóváhagyott megrendelésekhez, még nem rendelt MenuOrdersToBill=Kézbesített megrendelések MenuOrdersToBill2=Számlázható megrendelések ShipProduct=Termék kiszállítása CreateOrder=Megrendelés készítése RefuseOrder=Megrendelés elutasítása ApproveOrder=Megrendelés jóváhagyása -Approve2Order=Approve order (second level) +Approve2Order=Megrendelés jóváhagyása (második szint) ValidateOrder=Megrendelés érvényesítése UnvalidateOrder=Érvényesítés törlése DeleteOrder=Megrendelés törlése @@ -75,10 +75,10 @@ OrdersOpened=Feldolgozandó megrendelések NoDraftOrders=Nincsenek megrendelés tervek NoOrder=Nincs megrendelés NoSupplierOrder=Nincs beszállítói megrendelés -LastOrders=Latest %s customer orders -LastCustomerOrders=Latest %s customer orders -LastSupplierOrders=Latest %s supplier orders -LastModifiedOrders=Latest %s modified orders +LastOrders=Utolsó %s vevői megrendelések +LastCustomerOrders=Utolsó %s vevői megrendelések +LastSupplierOrders=Legutóbbi %s vevői megrendelések +LastModifiedOrders=Utolsó %s módosított megrendelések AllOrders=Minden megrendelés NbOfOrders=Megrendelések száma OrdersStatistics=Rendelési statisztikák @@ -87,21 +87,21 @@ NumberOfOrdersByMonth=Megrendelések száma havonta AmountOfOrdersByMonthHT=Megrendelések összege havonta (nettó) ListOfOrders=Megrendelések listája CloseOrder=Megrendelés lezárása -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. -ConfirmDeleteOrder=Are you sure you want to delete this order? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +ConfirmCloseOrder=Biztosan kiszállítottként szeretné megjelölni ezt a rendelést? A kézbesített megrendeléseket számlázottként is meg lehet jelölni. +ConfirmDeleteOrder=Biztos benne, hogy törölni kívánja ezt a megrendelést? +ConfirmValidateOrder=Biztosan érvényesíteni szeretné ezt a megrendelést ezzel a számmal %s? +ConfirmUnvalidateOrder=Biztos vagy benne, hogy a %s megrendelést vissza akarja tervezetnek állítani? +ConfirmCancelOrder=Biztosan vissza akarja vonni ezt a megrendelést? +ConfirmMakeOrder=Biztosan megerősíti a %s számú megrendelést? GenerateBill=Számla generálása ClassifyShipped='Kézbesített'-ként megjelöl DraftOrders=Megrendelés tervezetek DraftSuppliersOrders=Beszállítói megrendelés tervek OnProcessOrders=Folyamatban lévő megrendelések RefOrder=Megrendelés ref. -RefCustomerOrder=Ref. order for customer -RefOrderSupplier=Ref. order for supplier -RefOrderSupplierShort=Ref. order supplier +RefCustomerOrder=Ügyfél megrendelés hiv. +RefOrderSupplier=Beszállítói megrendelés hiv. +RefOrderSupplierShort=Hiv. beszállítói megrendelés SendOrderByMail=A megrendelés elküldése levélben ActionsOnOrder=Megrendelés eseményei NoArticleOfTypeProduct=Nincs termék a megrendelésben, így nincs mit kiszállítani @@ -110,29 +110,29 @@ AuthorRequest=Készítette UserWithApproveOrderGrant='Megrendelés jóváhagyása' jogosultsággal rendelkező felhasználók PaymentOrderRef=%s megrendeléssel kapcsolatos fizetések CloneOrder=Megrendelés klónozása -ConfirmCloneOrder=Are you sure you want to clone this order %s? +ConfirmCloneOrder=Biztosan klónozni szeretné ezt a %s megrendelést? DispatchSupplierOrder=Beszállítói megrendelés %s fogadása -FirstApprovalAlreadyDone=First approval already done -SecondApprovalAlreadyDone=Second approval already done -SupplierOrderReceivedInDolibarr=Supplier order %s received %s -SupplierOrderSubmitedInDolibarr=Supplier order %s submited -SupplierOrderClassifiedBilled=Supplier order %s set billed +FirstApprovalAlreadyDone=Első jóváhagyás már elvégezve +SecondApprovalAlreadyDone=Másod jóváhagyás már elvégezve +SupplierOrderReceivedInDolibarr=Beszállítói megrendelés %s megérkezett %s +SupplierOrderSubmitedInDolibarr=Beszállítói megrendelés %s küldve +SupplierOrderClassifiedBilled=Beszállítói megrendelés %s számlázandóra állítva ##### Types de contacts ##### TypeContact_commande_internal_SALESREPFOLL=Reprezentatív nyomon követése az ügyfelek érdekében TypeContact_commande_internal_SHIPPING=Képviselő-up a következő hajózási -TypeContact_commande_external_BILLING=Ügyfél számlázási cím -TypeContact_commande_external_SHIPPING=Ügyfél szállítási cím -TypeContact_commande_external_CUSTOMER=Ügyfélkapcsolati nyomon követése érdekében -TypeContact_order_supplier_internal_SALESREPFOLL=Reprezentatív nyomon követése érdekében beszállító -TypeContact_order_supplier_internal_SHIPPING=Képviselő-up a következő hajózási +TypeContact_commande_external_BILLING=Vevő számlázási cím +TypeContact_commande_external_SHIPPING=Vevő szállítási cím +TypeContact_commande_external_CUSTOMER=Vevő megrendelés nyomon követési kapcsolat +TypeContact_order_supplier_internal_SALESREPFOLL=Képviselő nyomon követi a beszállító megrendelést +TypeContact_order_supplier_internal_SHIPPING=Képviselő nyomon követi a szállítást TypeContact_order_supplier_external_BILLING=Beszállító számlázási cím TypeContact_order_supplier_external_SHIPPING=Beszállító szállítási cím -TypeContact_order_supplier_external_CUSTOMER=Szállító érintkezés nyomon követése érdekében +TypeContact_order_supplier_external_CUSTOMER=Vevő kapcsolata megrendelés nyomon követése érdekében Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Állandó COMMANDE_SUPPLIER_ADDON nincs definiálva Error_COMMANDE_ADDON_NotDefined=Állandó COMMANDE_ADDON nincs definiálva Error_OrderNotChecked=Nincs megrendelés kiválasztva # Order modes (how we receive order). Not the "why" are keys stored into dict.lang -OrderByMail=Mail +OrderByMail=Levelezés OrderByFax=Fax OrderByEMail=E-mail OrderByWWW=Online @@ -143,12 +143,12 @@ PDFEdisonDescription=Egyszerű megrendelési sablon PDFProformaDescription=A teljes proforma számla sablon (logo, ..) CreateInvoiceForThisCustomer=Megrendelések számlázása NoOrdersToInvoice=Nincsenek számlázandó megrendelések -CloseProcessedOrdersAutomatically=Minden kijelölt megrendelés jelölése 'Feldolgozott'-nak +CloseProcessedOrdersAutomatically=Minden kijelölt megrendelés jelölése 'Feldolgozott'-nak. OrderCreation=Megrendelés készítés Ordered=Megrendelve OrderCreated=A megrendelései elkészültek OrderFail=Hiba történt a megrendelések készítése közben CreateOrders=Megrendelések készítése ToBillSeveralOrderSelectCustomer=Több megrendeléshez tartozó számla elkészítéséhez először kattintson a partnerre, majd válassza ki: "%s" -CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received. -SetShippingMode=Set shipping mode +CloseReceivedSupplierOrdersAutomatically=Zárja le a megrendelést erre "%s" automatikusan, ha az összes tétel megérkezett. +SetShippingMode=Szállítási mód beállítása diff --git a/htdocs/langs/hu_HU/other.lang b/htdocs/langs/hu_HU/other.lang index 612007188e9..f31707938d1 100644 --- a/htdocs/langs/hu_HU/other.lang +++ b/htdocs/langs/hu_HU/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=font +WeightUnitounce=uncia Length=Hossz LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/hu_HU/paybox.lang b/htdocs/langs/hu_HU/paybox.lang index 133122fda7b..03d1a4df6fa 100644 --- a/htdocs/langs/hu_HU/paybox.lang +++ b/htdocs/langs/hu_HU/paybox.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - paybox PayBoxSetup=PayBox modul beállítás PayBoxDesc=Ez a nodul lehetővé teszi az oldalak számára a Paybox-on keresztüli fizetést az ügyfelek számára. Ingyenes fizetési megoldás. -FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +FollowingUrlAreAvailableToMakePayments=Következő URL-ek elérhetők a vevő részére egy oldal felajánlásához a Dollibar objektumok kifizetéséhez PaymentForm=Fizetési ürlap WelcomeOnPaymentPage=Üdvözöljük az online fizetési oldalunkon ThisScreenAllowsYouToPay=Ez az oldal lehetővé teszi az online fizetést %s számára. @@ -11,16 +11,17 @@ YourEMail=Email a fizetés teljesítéséről Creditor=Hitelező PaymentCode=Fizetési kód PayBoxDoPayment=Tovább a fizetéshez +ToPay=Esedékes kiegyenlítés YouWillBeRedirectedOnPayBox=Át lesz irányítva egy biztonságos Paybox oldalra ahol megadhatja a bak/hitelkártya információit Continue=Következő ToOfferALinkForOnlinePayment=URL %s fizetés -ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for an order -ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for an invoice -ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line -ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount -ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription -YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. -SetupPayBoxToHavePaymentCreatedAutomatically=Setup your PayBox with url %s to have payment created automatically when validated by paybox. +ToOfferALinkForOnlinePaymentOnOrder=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői megrendeléshez +ToOfferALinkForOnlinePaymentOnInvoice=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői számlához +ToOfferALinkForOnlinePaymentOnContractLine=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői tétel sorhoz +ToOfferALinkForOnlinePaymentOnFreeAmount=URL egy %s online fizetési felhasználói csatolót ajánl egy ingyenes összeghez +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL egy %s online fizetési felhasználói csatolót ajánl egy tag feliratkozáshoz +YouCanAddTagOnUrl=Hozzáadhat URL paramétereket &tag=érték bármely ilyen URL (csak az ingyenes fizetéshez szükséges) a saját fizetési megjegyzés címke hozzáadásához. +SetupPayBoxToHavePaymentCreatedAutomatically=PayBox beállítása ezzel az url-el %s a fizetések automata létrehozásához a paybox érvényesítése után. YourPaymentHasBeenRecorded=Ez az oldal megerősíti, hogy a fizetési lett felvéve. Köszönöm. YourPaymentHasNotBeenRecorded=Ön fizetést nem került rögzítésre és az ügylet törlésre került. Köszönöm. AccountParameter=Számla paraméterek @@ -31,9 +32,9 @@ VendorName=Neve eladó CSSUrlForPaymentForm=CSS stíluslapot url fizetési forma MessageOK=Üzenet érvényesített fizetési vissza oldal MessageKO=Üzenet a törölt kifizetési visszatérés oldal -NewPayboxPaymentReceived=New Paybox payment received -NewPayboxPaymentFailed=New Paybox payment tried but failed -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed) -PAYBOX_PBX_SITE=Value for PBX SITE -PAYBOX_PBX_RANG=Value for PBX Rang -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID +NewPayboxPaymentReceived=Új Paybox fizetés érkezett +NewPayboxPaymentFailed=Új Paybox fizetést próbált, de nem sikerült +PAYBOX_PAYONLINE_SENDEMAIL=EMail figyelmeztetés a fizetés után (sikerül vagy nem sikerül) +PAYBOX_PBX_SITE=Érték erre: PBX SITE +PAYBOX_PBX_RANG=Érték erre: PBX Rang +PAYBOX_PBX_IDENTIFIANT=Érték erre: PBX ID diff --git a/htdocs/langs/hu_HU/paypal.lang b/htdocs/langs/hu_HU/paypal.lang index d57207a2640..4772d6a246a 100644 --- a/htdocs/langs/hu_HU/paypal.lang +++ b/htdocs/langs/hu_HU/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Ez a tranzakció id: %s PAYPAL_ADD_PAYMENT_URL=Add az url a Paypal fizetési amikor a dokumentumot postán PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Ön jelenleg a "sandbox" mód -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/hu_HU/products.lang b/htdocs/langs/hu_HU/products.lang index b39f23cfc4c..540c59f5c99 100644 --- a/htdocs/langs/hu_HU/products.lang +++ b/htdocs/langs/hu_HU/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Termék vagy Szolgáltatás ProductsAndServices=Termékek és Szolgáltatások ProductsOrServices=Termékek vagy Szolgáltatások -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Másoderc +unitH=Óra +unitD=Nap +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Termék ref sablon ServiceCodeModel=Szolgáltatás ref sablon CurrentProductPrice=Aktuális ár @@ -186,6 +200,7 @@ MultipriceRules=Árazási szabályok UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% változó ár %s fölött PercentDiscountOver=%% kedvezmény %s fölött +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Termékek és árak ár szegmensenként @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimális beszállítói ár MinCustomerPrice=Minimális végfelhasználói ár DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Globális változók VariableToUpdate=Variable to update GlobalVariableUpdaters=Globális változók frissítése +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Frissítési periódus (perc) LastUpdated=Latest update CorrectlyUpdated=Rendben frissítve @@ -260,6 +281,8 @@ SizeUnits=Méret egység DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/hu_HU/propal.lang b/htdocs/langs/hu_HU/propal.lang index 60e23ea3af3..62eadf4b4fd 100644 --- a/htdocs/langs/hu_HU/propal.lang +++ b/htdocs/langs/hu_HU/propal.lang @@ -3,7 +3,7 @@ Proposals=Üzleti ajánlatok Proposal=Üzleti ajánlat ProposalShort=Javaslat ProposalsDraft=Készítsen üzleti ajánlatot -ProposalsOpened=Megnyitotta a kereskedelmi javaslatok +ProposalsOpened=Open commercial proposals Prop=Üzleti ajánlatok CommercialProposal=Üzleti ajánlat ProposalCard=Javaslat kártya @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Összeg havonta (adózott) NbOfProposals=Száma a kereskedelmi javaslatok ShowPropal=Mutasd javaslat PropalsDraft=Piszkozatok -PropalsOpened=Megnyitva +PropalsOpened=Nyitott PropalStatusDraft=Tervezet (kell érvényesíteni) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Aláírt (szükséges számlázási) diff --git a/htdocs/langs/hu_HU/resource.lang b/htdocs/langs/hu_HU/resource.lang index e83bf66e481..027bcc6989d 100644 --- a/htdocs/langs/hu_HU/resource.lang +++ b/htdocs/langs/hu_HU/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Az erőforrás sikeresen törölve DictionaryResourceType=Erőforrás típusa SelectResource=Válasszon erőforrást + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Erőforrások diff --git a/htdocs/langs/hu_HU/salaries.lang b/htdocs/langs/hu_HU/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/hu_HU/salaries.lang +++ b/htdocs/langs/hu_HU/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/hu_HU/sendings.lang b/htdocs/langs/hu_HU/sendings.lang index a5b89a0c47a..9a3377b7c10 100644 --- a/htdocs/langs/hu_HU/sendings.lang +++ b/htdocs/langs/hu_HU/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Egyszerű dokumentum modell DocumentModelMerou=Merou A5 modell WarningNoQtyLeftToSend=Figyelem, nincs szállításra váró termék. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Események a szállítás LinkToTrackYourPackage=Link követni a csomagot ShipmentCreationIsDoneFromOrder=Ebben a pillanatban, létrejön egy új szállítmány kerül sor a sorrendben kártyát. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/hu_HU/stocks.lang b/htdocs/langs/hu_HU/stocks.lang index 8467b90a7e0..f38d047ec97 100644 --- a/htdocs/langs/hu_HU/stocks.lang +++ b/htdocs/langs/hu_HU/stocks.lang @@ -29,8 +29,8 @@ Location=Hely LocationSummary=Hely rövid neve NumberOfDifferentProducts=Termékek száma összesen NumberOfProducts=Termékek összesen -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Utolsó mozgatás +LastMovements=Utolsó mozgatások Units=Egységek Unit=Egység StockCorrection=Jelenlegi készlet @@ -42,7 +42,7 @@ LabelMovement=Mozgás címkéje NumberOfUnit=Egységek száma UnitPurchaseValue=Vételár StockTooLow=Készlet alacsony -StockLowerThanLimit=Készlet kisebb mint a figyelmeztetési határérték +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Érték PMPValue=Súlyozott átlagár PMPValueShort=SÁÉ @@ -53,7 +53,7 @@ IndependantSubProductStock=A termék és származtatott elemeinek készlete egym QtyDispatched=Mennyiség kiküldése QtyDispatchedShort=Kiadott mennyiség QtyToDispatchShort=Kiadásra vár -OrderDispatch=Készlet kiküldése +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Automatikus készletcsökkenés szabályának beállítása (a kézzel történő csökkentés továbbra is elérhető, az automatikus készletcsökkentés aktiválása esetén is) RuleForStockManagementIncrease=Automatikus készletnövelés szabályának beállítása (a kézzel történő növelés továbbra is elérhető, az automatikus készletnövelés aktiválása esetén is) DeStockOnBill=Tényleges készlet csökkentése számla/hitel jóváhagyásakor @@ -62,17 +62,20 @@ DeStockOnShipment=Tényleges készlet csökkentése kiszállítás jóváhagyás DeStockOnShipmentOnClosing=Csökkentse a valós készletet a "kiszállítás megtörtént" beállítása után ReStockOnBill=Tényleges készlet növelése számla/hitel jóváhagyásakor ReStockOnValidateOrder=Tényleges készlet növelése beszállítótól való rendelés jóváhagyásakor -ReStockOnDispatchOrder=Tényleges készlet növelése manuális raktárba való feladáskor miután a beszállítói rendelés beérkezett +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=A rendelés még nincs olyan állapotban, hogy kiküldhető legyen a raktárba. -StockDiffPhysicTeoric=Magyarázat a fizikai és elméleti készlet közötti különbségekről +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nincs előredefiniált termék ehhez az objektumhoz. Tehát nincs szükség raktárba küldésre. DispatchVerb=Kiküldés StockLimitShort=Figyelmeztetés küszöbértéke StockLimit=A készlet figyelmeztetési határértéke PhysicalStock=Fizikai készlet RealStock=Igazi készlet +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuális készlet -IdWarehouse=Raktár azon.# +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) +IdWarehouse=Raktár azon. DescWareHouse=Raktár leírás LieuWareHouse=Raktár helye WarehousesAndProducts=Raktárak és termékek @@ -85,7 +88,7 @@ EstimatedStockValueSell=Eladási érték EstimatedStockValueShort=Készlet becsült értéke EstimatedStockValue=Készlet becsült értéke DeleteAWarehouse=Raktár törlése -ConfirmDeleteWarehouse=Are you sure you want to delete the warehouse %s? +ConfirmDeleteWarehouse=Biztos törölni akarja a %s raktárat? PersonalStock=Személyes készlet %s ThisWarehouseIsPersonalStock=Ez a raktár %s %s személyes készletet képvisel SelectWarehouseForStockDecrease=Válassza ki melyik raktár készlete csökkenjen @@ -116,11 +119,11 @@ NbOfProductBeforePeriod=A %s termékből rendelkezésre álló mennyiség a kiv NbOfProductAfterPeriod=A %s termékből rendelkezésre álló mennyiség a kiválasztott periódusban (%s után) MassMovement=Tömeges mozgatás SelectProductInAndOutWareHouse=Válasszon egy terméket, a mennyiségét, egy származási raktárat valamint egy cél raktárat, majd kattintson az "%s"-ra. Amint minden szükséges mozgatással elkészült, kattintson a "%s"-ra. -RecordMovement=Mozgatás rögzítése +RecordMovement=Record transfer ReceivingForSameOrder=Megrendelés nyugtái StockMovementRecorded=Rögzített készletmozgások RuleForStockAvailability=A készlet tartásának szabályai -StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to invoice (check is done on current real stock when adding a line into invoice whatever is rule for automatic stock change) +StockMustBeEnoughForInvoice=A készletnek elegendőnek kell lennie a termék/szolgáltatás kiszámlázásához (ellenőrzés végrehajtva a jelenlegi tényleges készlettel, ha sort ad a számlához, bármely automatikus készlet változtató szabály mellett) StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) MovementLabel=Mozgás címkéje @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Szerkesztés +inventoryValidate=Hitelesítetve +inventoryDraft=Folyamatban +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Készít +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategória szűrés +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Hozzáadás +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Sor törlése +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/hu_HU/stripe.lang b/htdocs/langs/hu_HU/stripe.lang new file mode 100644 index 00000000000..aa5d00c2bb8 --- /dev/null +++ b/htdocs/langs/hu_HU/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Következő URL-ek elérhetők a vevő részére egy oldal felajánlásához a Dollibar objektumok kifizetéséhez +PaymentForm=Fizetési ürlap +WelcomeOnPaymentPage=Üdvözöljük az online fizetési oldalunkon +ThisScreenAllowsYouToPay=Ez az oldal lehetővé teszi az online fizetést %s számára. +ThisIsInformationOnPayment=Ez az információ a fizetendő tételről +ToComplete=Befejezni +YourEMail=Email a fizetés teljesítéséről +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Hitelező +PaymentCode=Fizetési kód +StripeDoPayment=Tovább a fizetéshez +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Következő +ToOfferALinkForOnlinePayment=URL %s fizetés +ToOfferALinkForOnlinePaymentOnOrder=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői megrendeléshez +ToOfferALinkForOnlinePaymentOnInvoice=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői számlához +ToOfferALinkForOnlinePaymentOnContractLine=URL egy %s online fizetési felhasználói csatolót ajánl egy vevői tétel sorhoz +ToOfferALinkForOnlinePaymentOnFreeAmount=URL egy %s online fizetési felhasználói csatolót ajánl egy ingyenes összeghez +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL egy %s online fizetési felhasználói csatolót ajánl egy tag feliratkozáshoz +YouCanAddTagOnUrl=Hozzáadhat URL paramétereket &tag=érték bármely ilyen URL (csak az ingyenes fizetéshez szükséges) a saját fizetési megjegyzés címke hozzáadásához. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Ez az oldal megerősíti, hogy a fizetési lett felvéve. Köszönöm. +YourPaymentHasNotBeenRecorded=Ön fizetést nem került rögzítésre és az ügylet törlésre került. Köszönöm. +AccountParameter=Számla paraméterek +UsageParameter=Használat paraméterek +InformationToFindParameters=Segíts, hogy megtaláld a %s fiókadatokat +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Neve eladó +CSSUrlForPaymentForm=CSS stíluslapot url fizetési forma +MessageOK=Üzenet érvényesített fizetési vissza oldal +MessageKO=Üzenet a törölt kifizetési visszatérés oldal +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/hu_HU/supplier_proposal.lang b/htdocs/langs/hu_HU/supplier_proposal.lang index 1759a4b7819..b84c9e3c7bb 100644 --- a/htdocs/langs/hu_HU/supplier_proposal.lang +++ b/htdocs/langs/hu_HU/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Beszállítói ajánlatok @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Tervezet (érvényesítés szükséges) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Lezárt SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Visszautasított @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/hu_HU/suppliers.lang b/htdocs/langs/hu_HU/suppliers.lang index 59725da83eb..61dad12de3d 100644 --- a/htdocs/langs/hu_HU/suppliers.lang +++ b/htdocs/langs/hu_HU/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Néhány altermékhez nincs ár megadva AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Beszállítói árak ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ez a beszállító már hozzá van rendelve van ehhez az azonosítóhoz: %s NoRecordedSuppliers=Nincs beszállító bejegyezve SupplierPayment=Beszállítói kifizetése @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Beszállítói árak diff --git a/htdocs/langs/hu_HU/trips.lang b/htdocs/langs/hu_HU/trips.lang index b31cebc831b..c0ca7cdf1c6 100644 --- a/htdocs/langs/hu_HU/trips.lang +++ b/htdocs/langs/hu_HU/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Költségek listája TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Látogatott Cég/alapítvány +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Kilóméterek száma DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Hitelesítés dátuma DATE_CANCEL=Cancelation date DATE_PAIEMENT=Fizetési határidő BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/hu_HU/users.lang b/htdocs/langs/hu_HU/users.lang index 28442085094..7a5f91bd095 100644 --- a/htdocs/langs/hu_HU/users.lang +++ b/htdocs/langs/hu_HU/users.lang @@ -66,8 +66,8 @@ InternalUser=Belső felahsználó ExportDataset_user_1=Dolibarr felhasználók és tulajdonságaik DomainUser=Domain felhasználók %s Reactivate=Újra aktiválás -CreateInternalUserDesc=Ezzel az űrlappal saját felhasználót hozhatsz létre a cégednek/alapítványodnak. Külső flehasználó létrehozásához (vevő, szállító, ...) használd a "Create Dolibarr user" űrlapot a partner kapcsolati kártyájánál. -InternalExternalDesc=A belső felhasználó része a cégnek/alapítványnak.
A külső felhasználó lehet ügyfél, beszállító vagy bármi egyéb.

Minden esetben az engedélyek adják a jogokat, és a külső felasználók használhatnak más megjelenésü interfészt +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Engedélyek megadva mert örökölte az egyik csoporttól. Inherited=Örökölve UserWillBeInternalUser=Létrehozta felhasználó lesz egy belső felhasználó (mivel nem kapcsolódik az adott harmadik fél) diff --git a/htdocs/langs/hu_HU/website.lang b/htdocs/langs/hu_HU/website.lang index 0c3e24b6be7..a08625214ee 100644 --- a/htdocs/langs/hu_HU/website.lang +++ b/htdocs/langs/hu_HU/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Biztos benne, hogy le akarja törölni a honlapot? Az össz WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/hu_HU/withdrawals.lang b/htdocs/langs/hu_HU/withdrawals.lang index 39366440f6d..71acf119f7c 100644 --- a/htdocs/langs/hu_HU/withdrawals.lang +++ b/htdocs/langs/hu_HU/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Visszavonási mennyiség WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Felelős felhasználó WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Az elutasítás indoka RefusedInvoicing=Billing elutasítása NoInvoiceRefused=Ne töltse az elutasítás InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Várakozás StatusTrans=Küldött StatusCredited=Jóváírt diff --git a/htdocs/langs/id_ID/accountancy.lang b/htdocs/langs/id_ID/accountancy.lang index f2b698ffa73..c39776372ae 100644 --- a/htdocs/langs/id_ID/accountancy.lang +++ b/htdocs/langs/id_ID/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Tambahkan sebuah akun akuntansi AccountAccounting=Akun akuntansi AccountAccountingShort=Akun SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Saldo akun @@ -142,6 +143,7 @@ NumPiece=Jumlah potongan TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Ekspor Export=Ekspor +ExportDraftJournal=Export draft journal Modelcsv=Model Ekspor OptionsDeactivatedForThisExportModel=Untuk model ekspor ini , opsi dinonaktifkan Selectmodelcsv=Pilih satu model Ekspor diff --git a/htdocs/langs/id_ID/admin.lang b/htdocs/langs/id_ID/admin.lang index d1a0ecc9941..6fbbdb0eced 100644 --- a/htdocs/langs/id_ID/admin.lang +++ b/htdocs/langs/id_ID/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Akunting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/id_ID/agenda.lang b/htdocs/langs/id_ID/agenda.lang index d3bf50cafd8..e7b55581691 100644 --- a/htdocs/langs/id_ID/agenda.lang +++ b/htdocs/langs/id_ID/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -74,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Tanggal mulai DateActionEnd=Tanggal Akhir AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/id_ID/banks.lang b/htdocs/langs/id_ID/banks.lang index 248362c6636..9a9c493bb49 100644 --- a/htdocs/langs/id_ID/banks.lang +++ b/htdocs/langs/id_ID/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Ditutup AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/id_ID/bills.lang b/htdocs/langs/id_ID/bills.lang index 98c2c4cb43f..90a2cc650e9 100644 --- a/htdocs/langs/id_ID/bills.lang +++ b/htdocs/langs/id_ID/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Tagihan standar InvoiceStandardAsk=Taghian standar InvoiceStandardDesc=Jenis tagihan ini adalah jenis tagihan yang sama. -InvoiceDeposit=Tagihan penyetoran / deposit -InvoiceDepositAsk=Tagihan penyetoran / deposit -InvoiceDepositDesc=Jenis tagihan ini akan selesai setelah penyetoran / deposit telah diterima. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Tagihan proforma InvoiceProFormaAsk=Tagihan Proforma InvoiceProFormaDesc=Tagihan Proforma adalah gambaran untuk tagihan sebenarnya tapi tidak mempunyai nilai akutansi. @@ -62,7 +62,7 @@ PaymentsBack=Pembayaran kembali paymentInInvoiceCurrency=in invoices currency PaidBack=Dibayar kembali DeletePayment=Hapus pembayaran -ConfirmDeletePayment=Anda yakin untuk menghapus pembayaran ini? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Semua pembayaran untuk semua pemasok / supplier ReceivedPayments=Semua pembayaran yang diterima @@ -115,7 +115,7 @@ BillStatus=Status tagihan StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Konsep (harus di validasi) BillStatusPaid=Dibayar -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Dibayar (bersedia untuk tagihan terakhir) BillStatusCanceled=Diabaikan BillStatusValidated=Sudah divalidasi (harus sudah dibayar) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Dibayar (sebagian / cicil) BillShortStatusDraft=Konsep BillShortStatusPaid=Dibayar BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Diproses +BillShortStatusConverted=Dibayar BillShortStatusCanceled=Diabaikan BillShortStatusValidated=Divalidasi BillShortStatusStarted=Dimulai @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Diabaikan RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Catatan kredit CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/id_ID/bookmarks.lang b/htdocs/langs/id_ID/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/id_ID/bookmarks.lang +++ b/htdocs/langs/id_ID/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/id_ID/boxes.lang b/htdocs/langs/id_ID/boxes.lang index 910bdf2f215..da92c5a0552 100644 --- a/htdocs/langs/id_ID/boxes.lang +++ b/htdocs/langs/id_ID/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposal LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/id_ID/categories.lang b/htdocs/langs/id_ID/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/id_ID/categories.lang +++ b/htdocs/langs/id_ID/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/id_ID/commercial.lang b/htdocs/langs/id_ID/commercial.lang index 7b77b971e63..34142333e92 100644 --- a/htdocs/langs/id_ID/commercial.lang +++ b/htdocs/langs/id_ID/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/id_ID/companies.lang b/htdocs/langs/id_ID/companies.lang index 1d759fba8f6..4f8fac3d8aa 100644 --- a/htdocs/langs/id_ID/companies.lang +++ b/htdocs/langs/id_ID/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=ID Pihak Ketiga @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Pemasok ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposal +OverAllOrders=Orders +OverAllInvoices=Nota +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Ditutup ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/id_ID/contracts.lang b/htdocs/langs/id_ID/contracts.lang index c27b2406fa0..b7d2cd6a472 100644 --- a/htdocs/langs/id_ID/contracts.lang +++ b/htdocs/langs/id_ID/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/id_ID/exports.lang b/htdocs/langs/id_ID/exports.lang index fdd9b346fe5..482e85299ac 100644 --- a/htdocs/langs/id_ID/exports.lang +++ b/htdocs/langs/id_ID/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/id_ID/holiday.lang b/htdocs/langs/id_ID/holiday.lang index 0dc3aca1ad5..2658e9ec469 100644 --- a/htdocs/langs/id_ID/holiday.lang +++ b/htdocs/langs/id_ID/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Dibatalkan RefuseCP=Ditolak ValidatorCP=Penyetuju ListeCP=Daftar yang Cuti -ReviewedByCP=Akan dicek oleh +ReviewedByCP=Will be approved by DescCP=Keterangan SendRequestCP=Buat permintaan cuti DelayToRequestCP=Permintaan cuti harus dilakukan setidaknya %s day(s) sebelum mereka. diff --git a/htdocs/langs/id_ID/install.lang b/htdocs/langs/id_ID/install.lang index b45b65d2c92..650d19c5c3b 100644 --- a/htdocs/langs/id_ID/install.lang +++ b/htdocs/langs/id_ID/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/id_ID/loan.lang b/htdocs/langs/id_ID/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/id_ID/loan.lang +++ b/htdocs/langs/id_ID/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/id_ID/mails.lang b/htdocs/langs/id_ID/mails.lang index 96622403e37..b3c7bd85011 100644 --- a/htdocs/langs/id_ID/mails.lang +++ b/htdocs/langs/id_ID/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifikasi NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/id_ID/main.lang b/htdocs/langs/id_ID/main.lang index 74921a43c4b..edb07272adb 100644 --- a/htdocs/langs/id_ID/main.lang +++ b/htdocs/langs/id_ID/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/id_ID/margins.lang b/htdocs/langs/id_ID/margins.lang index 64e1a87864d..08ef80f3fbf 100644 --- a/htdocs/langs/id_ID/margins.lang +++ b/htdocs/langs/id_ID/margins.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - marges Margin=Margin -Margins=Margins +Margins=Margin TotalMargin=Total Margin MarginOnProducts=Margin / Products MarginOnServices=Margin / Services @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/id_ID/members.lang b/htdocs/langs/id_ID/members.lang index 52ad0c996a0..e59538e913d 100644 --- a/htdocs/langs/id_ID/members.lang +++ b/htdocs/langs/id_ID/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Anggota LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/id_ID/modulebuilder.lang b/htdocs/langs/id_ID/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/id_ID/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/id_ID/other.lang b/htdocs/langs/id_ID/other.lang index fab58d6ceba..4b742a40a6e 100644 --- a/htdocs/langs/id_ID/other.lang +++ b/htdocs/langs/id_ID/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/id_ID/paybox.lang b/htdocs/langs/id_ID/paybox.lang index c0cb8e649f0..bac95e90b17 100644 --- a/htdocs/langs/id_ID/paybox.lang +++ b/htdocs/langs/id_ID/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Lakukan pembayaran YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/id_ID/paypal.lang b/htdocs/langs/id_ID/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/id_ID/paypal.lang +++ b/htdocs/langs/id_ID/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/id_ID/products.lang b/htdocs/langs/id_ID/products.lang index 902663038fa..a46980f7b95 100644 --- a/htdocs/langs/id_ID/products.lang +++ b/htdocs/langs/id_ID/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/id_ID/propal.lang b/htdocs/langs/id_ID/propal.lang index fe0d0b0fafc..8502ce5e775 100644 --- a/htdocs/langs/id_ID/propal.lang +++ b/htdocs/langs/id_ID/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Konsep (harus di validasi) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/id_ID/resource.lang b/htdocs/langs/id_ID/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/id_ID/resource.lang +++ b/htdocs/langs/id_ID/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/id_ID/salaries.lang b/htdocs/langs/id_ID/salaries.lang index bbf3eed9b46..1810ca6becf 100644 --- a/htdocs/langs/id_ID/salaries.lang +++ b/htdocs/langs/id_ID/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kode Akuntansi untuk pembayaran gaji -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=kode akuntansi untuk pembiayaan keuangan +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Gaji Salaries=Gaji NewSalaryPayment=Pembayaran Gaji Baru diff --git a/htdocs/langs/id_ID/sendings.lang b/htdocs/langs/id_ID/sendings.lang index 86ec6ed396a..350985e03dc 100644 --- a/htdocs/langs/id_ID/sendings.lang +++ b/htdocs/langs/id_ID/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/id_ID/stocks.lang b/htdocs/langs/id_ID/stocks.lang index 868b4583cd6..28361f9bd23 100644 --- a/htdocs/langs/id_ID/stocks.lang +++ b/htdocs/langs/id_ID/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Divalidasi +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Buat +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=Daftar diff --git a/htdocs/langs/id_ID/stripe.lang b/htdocs/langs/id_ID/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/id_ID/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/id_ID/supplier_proposal.lang b/htdocs/langs/id_ID/supplier_proposal.lang index aec117056e8..0656f8d34c0 100644 --- a/htdocs/langs/id_ID/supplier_proposal.lang +++ b/htdocs/langs/id_ID/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Konsep (harus di validasi) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Ditutup SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Ditolak @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/id_ID/suppliers.lang b/htdocs/langs/id_ID/suppliers.lang index 8d726b487b8..fbaab35d44c 100644 --- a/htdocs/langs/id_ID/suppliers.lang +++ b/htdocs/langs/id_ID/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=Tidak ada suplier tersimpan SupplierPayment=Pembayaran suplier @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/id_ID/trips.lang b/htdocs/langs/id_ID/trips.lang index 8b07872ba48..e7bec1376c1 100644 --- a/htdocs/langs/id_ID/trips.lang +++ b/htdocs/langs/id_ID/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Tanggal pembayaran BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/id_ID/users.lang b/htdocs/langs/id_ID/users.lang index 0be0c9f3401..2e02a7cd101 100644 --- a/htdocs/langs/id_ID/users.lang +++ b/htdocs/langs/id_ID/users.lang @@ -66,8 +66,8 @@ InternalUser=Pengguna internal ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/id_ID/website.lang b/htdocs/langs/id_ID/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/id_ID/website.lang +++ b/htdocs/langs/id_ID/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/id_ID/withdrawals.lang b/htdocs/langs/id_ID/withdrawals.lang index 3c4f1a53af9..ef6c4de1a57 100644 --- a/htdocs/langs/id_ID/withdrawals.lang +++ b/htdocs/langs/id_ID/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/is_IS/accountancy.lang b/htdocs/langs/is_IS/accountancy.lang index 5249dd2e7d0..1957b97071b 100644 --- a/htdocs/langs/is_IS/accountancy.lang +++ b/htdocs/langs/is_IS/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Velta AccountingJournalType3=Innkaup AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/is_IS/admin.lang b/htdocs/langs/is_IS/admin.lang index b6ec2e652a5..4f86f10e466 100644 --- a/htdocs/langs/is_IS/admin.lang +++ b/htdocs/langs/is_IS/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis sameining Module1400Name=Bókhald -Module1400Desc=Bókhald stjórnun (tvöfaldur aðila) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module til að bjóða upp á netinu greiðslu síðu með kreditkorti með Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Bókhald stjórnun (tvöfaldur aðila) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/is_IS/agenda.lang b/htdocs/langs/is_IS/agenda.lang index 145d3dbfea4..88c6bf4e4a9 100644 --- a/htdocs/langs/is_IS/agenda.lang +++ b/htdocs/langs/is_IS/agenda.lang @@ -48,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Panta %s staðfestar @@ -74,13 +75,17 @@ InterventionSentByEMail=Inngrip %s send með tölvupósti ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Upphafsdagur DateActionEnd=Lokadagur AgendaUrlOptions1=Þú getur einnig bætt við eftirfarandi breytur til að sía framleiðsla: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint = %s til að takmarka framleiðsla til aðgerða áhrif til notandi %s . +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/is_IS/banks.lang b/htdocs/langs/is_IS/banks.lang index 355b1f6a172..de9adb84a95 100644 --- a/htdocs/langs/is_IS/banks.lang +++ b/htdocs/langs/is_IS/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Færsla ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Samræmdu Conciliation=Sættir ReconciliationLate=Reconciliation late IncludeClosedAccount=Hafa loka reikningum -OnlyOpenedAccount=Aðeins opnað reikninga +OnlyOpenedAccount=Only open accounts AccountToCredit=Reikningur til að lána AccountToDebit=Reikning til skuldfærslu DisableConciliation=Slökkva á sáttum lögun fyrir þennan reikning ConciliationDisabled=Sættir lögun fatlaðra LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opnaður +StatusAccountOpened=Opnaðu StatusAccountClosed=Loka AccountIdShort=Fjöldi LineRecord=Færsla @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/is_IS/bills.lang b/htdocs/langs/is_IS/bills.lang index 2e8c458085b..7f4a8b56b1c 100644 --- a/htdocs/langs/is_IS/bills.lang +++ b/htdocs/langs/is_IS/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard Reikningar InvoiceStandardAsk=Standard Reikningar InvoiceStandardDesc=Þessi tegund reiknings er sameiginlegur reikningur. -InvoiceDeposit=Innborgun Reikningar -InvoiceDepositAsk=Innborgun Reikningar -InvoiceDepositDesc=Þessi tegund reiknings er gert þegar innborgun hefur verið móttekin. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma reikning InvoiceProFormaAsk=Proforma reikning InvoiceProFormaDesc=Proforma reikningur með mynd af a sannur reikning en hefur engar bókhalds gildi. @@ -62,7 +62,7 @@ PaymentsBack=Greiðslur til baka paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Eyða greiðslu -ConfirmDeletePayment=Ertu viss um að þú viljir eyða þessari greiðslu? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Birgjar greiðslur ReceivedPayments=Móttekin greiðslur @@ -115,7 +115,7 @@ BillStatus=Invoice stöðu StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Víxill (þarf að vera staðfest) BillStatusPaid=Greiddur -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Umreiknaðar í afslátt BillStatusCanceled=Yfirgefin BillStatusValidated=Staðfestar (þarf að vera greidd) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Greiddur (að hluta) BillShortStatusDraft=Víxill BillShortStatusPaid=Greiddur BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Afgreitt +BillShortStatusConverted=Greiddur BillShortStatusCanceled=Yfirgefin BillShortStatusValidated=Staðfestar BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Sýna reikning ShowInvoice=Sýna reikning ShowInvoiceReplace=Sýna skipta Reikningar ShowInvoiceAvoir=Sýna kredit athugið -ShowInvoiceDeposit=Sýna inná reikning +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Sýna greiðslu AlreadyPaid=Þegar greitt AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Þegar greitt (án seðla lána og innstæðna) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Yfirgefin RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Hlutfallsleg afsláttur GlobalDiscount=Global afsláttur CreditNote=Credit athugið CreditNotes=Credit athugasemdir -Deposit=Innborgun -Deposits=Innlán +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Afslátt af lánsfé athugið %s -DiscountFromDeposit=Greiðslur frá innborgun Reikningar %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Þess konar trúnaður er hægt að nota reikning fyrir staðfestingu þess CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Get ekki fjarlægt greiðslu þar er að min ExpectedToPay=Væntanlegur greiðslu CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Borgað af þessari greiðslu -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Allt Reikningar með ekki áfram að borga verður sjálfkrafa lokað til stöðu "borgað". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice líkan Crabe. A heill Reikningar líkan (styður VSK valkostur, afslætti, greiðslur skilyrði, merki, osfrv ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A frumvarpið hófst með $ syymm er til nú þegar og er ekki með þessari tegund af röð. Fjarlægja hana eða gefa henni nýtt heiti þess að virkja þessa einingu. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Fulltrúi eftirfarandi upp viðskiptavina Reikningar TypeContact_facture_external_BILLING=Viðskiptavinur Reikningar samband diff --git a/htdocs/langs/is_IS/bookmarks.lang b/htdocs/langs/is_IS/bookmarks.lang index 5f1e580f29a..aaa2f06334b 100644 --- a/htdocs/langs/is_IS/bookmarks.lang +++ b/htdocs/langs/is_IS/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Bæta síðunni við bókamerki +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bókamerki +ListOfBookmarks=Listi yfir bókamerki +EditBookmarks=List/edit bookmarks NewBookmark=Nýtt bókamerki ShowBookmark=Sýna bókamerki OpenANewWindow=Opna nýjan glugga @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Nýr gluggi BookmarkTargetReplaceWindowShort=Núverandi gluggi BookmarkTitle=Bókamerki titill UrlOrLink=URL -BehaviourOnClick=Hegðun þegar slóðin er smellt +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Búa til bókamerki SetHereATitleForLink=Setja inn titil fyrir bókamerkið UseAnExternalHttpLinkOrRelativeDolibarrLink=Notaðu utanáliggjandi http URL eða ættingja Dolibarr URL diff --git a/htdocs/langs/is_IS/boxes.lang b/htdocs/langs/is_IS/boxes.lang index 418d764be1b..e2ba7363fca 100644 --- a/htdocs/langs/is_IS/boxes.lang +++ b/htdocs/langs/is_IS/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss upplýsingar BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Tillögur LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/is_IS/categories.lang b/htdocs/langs/is_IS/categories.lang index fac5e2ef105..95ea43e0a84 100644 --- a/htdocs/langs/is_IS/categories.lang +++ b/htdocs/langs/is_IS/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=Í @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Þessi flokkur er þegar til með þessu tilv ContentsVisibleByAllShort=Efnisyfirlit sýnileg um alla ContentsNotVisibleByAllShort=Efnisyfirlit ekki sýnileg um alla DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=Fyllingar eiginleika CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/is_IS/commercial.lang b/htdocs/langs/is_IS/commercial.lang index 7a0f61ba77e..38fb3992d40 100644 --- a/htdocs/langs/is_IS/commercial.lang +++ b/htdocs/langs/is_IS/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Fundur með %s ShowTask=Sýna verkefni ShowAction=Sýna aðgerðir ActionsReport=Actions skýrslu -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sölufulltrúi SalesRepresentatives=Sölufulltrúi SalesRepresentativeFollowUp=Sölufulltrúi (eftirfylgni) diff --git a/htdocs/langs/is_IS/companies.lang b/htdocs/langs/is_IS/companies.lang index 8d88a603039..d3d35d33bef 100644 --- a/htdocs/langs/is_IS/companies.lang +++ b/htdocs/langs/is_IS/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New Einstaklingur NewCompany=Ný fyrirtæki (horfur, viðskiptavina, birgja) NewThirdParty=New þriðja aðila (horfur, viðskiptavina, birgja) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Auðkenni þriðja aðila @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Viðskiptavinir ThirdPartyCustomersWithIdProf12=Viðskiptavinur með %s eða %s ThirdPartySuppliers=Birgjar ThirdPartyType=Í þriðja aðila tegund -Company/Fundation=Fyrirtæki / Stofnun Individual=Einstaklingur ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Móðurfélag @@ -78,10 +77,10 @@ VATIsNotUsed=VSK er ekki notaður CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Tillögur +OverAllOrders=Pantanir +OverAllInvoices=Kvittanir +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= OR er notað @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (Bân) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Hlutfallsleg afsláttur CustomerAbsoluteDiscountShort=Alger afsláttur CompanyHasRelativeDiscount=Þessi viðskiptavinur hefur afslátt af %s %% CompanyHasNoRelativeDiscount=Þessi viðskiptavinur hefur ekki miðað afsláttur sjálfgefið -CompanyHasAbsoluteDiscount=Þessi viðskiptavinur er enn afslátt inneignir fyrir %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Þessi viðskiptavinur er enn kredit athugasemdum eða fyrri innstæður fyrir %s %s CompanyHasNoAbsoluteDiscount=Þessi viðskiptavinur hefur ekki afslátt inneign í boði CustomerAbsoluteDiscountAllUsers=Alger afsláttur (veitir alla notendur) @@ -390,7 +395,7 @@ ListCustomersShort=Listi yfir viðskiptavini ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Samtals einstaka þriðja aðila -InActivity=Opnaður +InActivity=Opnaðu ActivityCeased=Lokað ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Viðskiptavinur / birgir númerið er ókeypis. Þessi k ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/is_IS/contracts.lang b/htdocs/langs/is_IS/contracts.lang index f56d891ba3d..eb1ddbc3bfd 100644 --- a/htdocs/langs/is_IS/contracts.lang +++ b/htdocs/langs/is_IS/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sölufulltrúi undirrita samning diff --git a/htdocs/langs/is_IS/exports.lang b/htdocs/langs/is_IS/exports.lang index 518204bc5a9..8f8cecd36c5 100644 --- a/htdocs/langs/is_IS/exports.lang +++ b/htdocs/langs/is_IS/exports.lang @@ -113,8 +113,14 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+ ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields diff --git a/htdocs/langs/is_IS/holiday.lang b/htdocs/langs/is_IS/holiday.lang index 123a5fec4d8..5032b8de58f 100644 --- a/htdocs/langs/is_IS/holiday.lang +++ b/htdocs/langs/is_IS/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Hætt við RefuseCP=Neitaði ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Lýsing SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/is_IS/install.lang b/htdocs/langs/is_IS/install.lang index 3569851e7b3..bb5119260d1 100644 --- a/htdocs/langs/is_IS/install.lang +++ b/htdocs/langs/is_IS/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Þú notar Dolibarr skipulag töframaður frá DoliWamp, s KeepDefaultValuesDeb=Þú notar Dolibarr skipulag töframaður frá Ubuntu eða Debian pakka, þannig gildi lagt hér eru nú þegar bjartsýni. Aðeins lykilorð gagnagrunninum eigandi að búa verður að vera lokið. Breyta aðrar breytur aðeins ef þú veist hvað þú gerir. KeepDefaultValuesMamp=Þú notar Dolibarr skipulag töframaður frá DoliMamp, svo gildi lagt hér eru nú þegar bjartsýni. Breyta þeim aðeins ef þú veist hvað þú gerir. KeepDefaultValuesProxmox=Þú notar Dolibarr uppsetningarhjálpina frá Proxmox raunverulegur tæki, svo gildi lagt hér eru nú þegar bjartsýni. Breyta þeim aðeins ef þú veist hvað þú gerir. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/is_IS/link.lang b/htdocs/langs/is_IS/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/is_IS/link.lang +++ b/htdocs/langs/is_IS/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/is_IS/loan.lang b/htdocs/langs/is_IS/loan.lang index b45a70dff72..d00b11738be 100644 --- a/htdocs/langs/is_IS/loan.lang +++ b/htdocs/langs/is_IS/loan.lang @@ -44,8 +44,10 @@ GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/is_IS/mails.lang b/htdocs/langs/is_IS/mails.lang index ef9e96c2fbe..977c20259fc 100644 --- a/htdocs/langs/is_IS/mails.lang +++ b/htdocs/langs/is_IS/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Send hluta MailingStatusSentCompletely=Send fullkomlega MailingStatusError=Villa MailingStatusNotSent=Ekki send -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Lína %s í skrá @@ -116,8 +120,8 @@ Notifications=Tilkynningar NoNotificationsWillBeSent=Engar tilkynningar í tölvupósti er mjög spennandi fyrir þennan atburð og fyrirtæki ANotificationsWillBeSent=1 tilkynning verður send með tölvupósti SomeNotificationsWillBeSent=%s tilkynningar verða sendar í tölvupósti -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Sýna allar tilkynningar í tölvupósti sendi MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/is_IS/main.lang b/htdocs/langs/is_IS/main.lang index e1e180da766..e04359d8154 100644 --- a/htdocs/langs/is_IS/main.lang +++ b/htdocs/langs/is_IS/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default bakgrunnslit FileRenamed=The file was successfully renamed -FileUploaded=Skráin tókst að hlaða inn FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Skráin tókst að hlaða inn +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A-skrá er valin fyrir viðhengi en var ekki enn upp. Smelltu á "Hengja skrá" fyrir þessu. NbOfEntries=ATH færslna GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Samtals RE TotalLT2ES=Samtals IRPF HT=Frádregnum skatti TTC=Inc VSK +INCT=Inc. all taxes VAT=VSK VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Október MonthShort11=Nóvember MonthShort12=Desember AttachedFiles=Meðfylgjandi skrár og skjöl -FileTransferComplete=Skrá var upphlaðið successfuly DateFormatYYYYMM=ÁÁÁÁ-MM DateFormatYYYYMMDD=ÁÁÁÁ-MM-DD DateFormatYYYYMMDDHHMM=ÁÁÁÁ-MM-DD HH: SS diff --git a/htdocs/langs/is_IS/margins.lang b/htdocs/langs/is_IS/margins.lang index 76b9fb136d6..f3a5c207b1d 100644 --- a/htdocs/langs/is_IS/margins.lang +++ b/htdocs/langs/is_IS/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/is_IS/members.lang b/htdocs/langs/is_IS/members.lang index 35f56f7f9e9..cd41bbc49ad 100644 --- a/htdocs/langs/is_IS/members.lang +++ b/htdocs/langs/is_IS/members.lang @@ -3,7 +3,7 @@ MembersArea=Fundarstaður MemberCard=Aðildarríkin kort SubscriptionCard=Áskrift kort Member=Aðildarríkin -Members=Members +Members=Meðlimir ShowMember=Sýna meðlimur kort UserNotLinkedToMember=Notandi tengist ekki meðlimur ThirdpartyNotLinkedToMember=Third-party not linked to a member @@ -42,9 +42,9 @@ MemberTypeId=Aðildarríkin Auðkenni MemberTypeLabel=Aðildarríkin gerð merki MembersTypes=Members tegundir MemberStatusDraft=Víxill (þarf að vera staðfest) -MemberStatusDraftShort=Víxill +MemberStatusDraftShort=Drög MemberStatusActive=Staðfestar (bíður áskrift) -MemberStatusActiveShort=Staðfestar +MemberStatusActiveShort=Staðfest MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Útrunnið MemberStatusPaid=Áskrift upp til dagsetning @@ -90,6 +90,7 @@ PublicMemberList=Almenn listann yfir meðlimi BlankSubscriptionForm=Áskrift mynd BlankSubscriptionFormDesc=Dolibarr getur veitt þér almennings slóð til að leyfa utanaðkomandi gestir að biðja til að gerast áskrifandi að grunni. Ef netinu greiðslu mát er virkt, mun greiðsla mynd einnig sjálfkrafa veitt. EnablePublicSubscriptionForm=Virkja almenna sjálfvirka áskrift mynd +ForceMemberType=Force the member type ExportDataset_member_1=Notendur og áskrift ImportDataset_member_1=Meðlimir LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Þessi skjár sýnir þér tölfræði á meðlimum með bænu MembersStatisticsDesc=Veldu tölfræði sem þú vilt lesa ... MenuMembersStats=Tölfræði LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Náttúra Public=Upplýsingar eru almenningi NewMemberbyWeb=Nýr meðlimur bætt. Beðið eftir samþykki diff --git a/htdocs/langs/is_IS/modulebuilder.lang b/htdocs/langs/is_IS/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/is_IS/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/is_IS/other.lang b/htdocs/langs/is_IS/other.lang index 76ee678b253..e833def6b78 100644 --- a/htdocs/langs/is_IS/other.lang +++ b/htdocs/langs/is_IS/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pund +WeightUnitounce=eyri Length=Lengd LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/is_IS/paybox.lang b/htdocs/langs/is_IS/paybox.lang index 069dc9a707b..990d3cd582e 100644 --- a/htdocs/langs/is_IS/paybox.lang +++ b/htdocs/langs/is_IS/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Netfang til staðfestingar greiðslu Creditor=Lánveitandi PaymentCode=Greiðsla kóða PayBoxDoPayment=Fara á greiðslu +ToPay=Ekki greiðslu YouWillBeRedirectedOnPayBox=Þú verður vísað á að tryggja Paybox síðu til inntak þú upplýsingar um greiðslukort Continue=Næsti ToOfferALinkForOnlinePayment=Slóð fyrir %s greiðslu diff --git a/htdocs/langs/is_IS/paypal.lang b/htdocs/langs/is_IS/paypal.lang index 953cdfb258b..0724e9c5ef3 100644 --- a/htdocs/langs/is_IS/paypal.lang +++ b/htdocs/langs/is_IS/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Þetta er id viðskipta: %s PAYPAL_ADD_PAYMENT_URL=Bæta við slóð Paypal greiðslu þegar þú sendir skjal með pósti PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Þú ert nú í "sandkassi" háttur -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/is_IS/products.lang b/htdocs/langs/is_IS/products.lang index 9370400696b..b2aaf1a7093 100644 --- a/htdocs/langs/is_IS/products.lang +++ b/htdocs/langs/is_IS/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Vara eða þjónusta ProductsAndServices=Vörur og þjónusta ProductsOrServices=Vara eða þjónusta -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Klukkustund +unitD=Dagur +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Núverandi verð @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/is_IS/propal.lang b/htdocs/langs/is_IS/propal.lang index 5eaaa23a7c7..6c9569b9f13 100644 --- a/htdocs/langs/is_IS/propal.lang +++ b/htdocs/langs/is_IS/propal.lang @@ -3,7 +3,7 @@ Proposals=Auglýsing tillögur Proposal=Auglýsing tillögu ProposalShort=Tillaga ProposalsDraft=Drög að auglýsing tillögur -ProposalsOpened=Opnaður auglýsing tillögur +ProposalsOpened=Open commercial proposals Prop=Auglýsing tillögur CommercialProposal=Auglýsing tillögu ProposalCard=Tillaga kort @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Upphæð eftir mánuði (að frádregnum skatti) NbOfProposals=Fjöldi viðskipta tillögur ShowPropal=Sýna tillögu PropalsDraft=Drög -PropalsOpened=Opnaður +PropalsOpened=Opnaðu PropalStatusDraft=Víxill (þarf að vera staðfest) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Undirritað (þarf greiðanda) diff --git a/htdocs/langs/is_IS/resource.lang b/htdocs/langs/is_IS/resource.lang index 31f010e0bfc..66f27515858 100644 --- a/htdocs/langs/is_IS/resource.lang +++ b/htdocs/langs/is_IS/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Gagnagrunnur diff --git a/htdocs/langs/is_IS/salaries.lang b/htdocs/langs/is_IS/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/is_IS/salaries.lang +++ b/htdocs/langs/is_IS/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/is_IS/sendings.lang b/htdocs/langs/is_IS/sendings.lang index 1cd979bce3e..bc9160ade52 100644 --- a/htdocs/langs/is_IS/sendings.lang +++ b/htdocs/langs/is_IS/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Einföld skjal líkan DocumentModelMerou=Merou A5 líkan WarningNoQtyLeftToSend=Aðvörun, að engar vörur sem bíður sendar. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Viðburðir á sendingunni LinkToTrackYourPackage=Tengill til að fylgjast með pakka ShipmentCreationIsDoneFromOrder=Í augnablikinu er sköpun af a nýr sendingunni gert úr þeirri röð kortinu. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/is_IS/stocks.lang b/htdocs/langs/is_IS/stocks.lang index c0f4d3b6f99..530cb1cca54 100644 --- a/htdocs/langs/is_IS/stocks.lang +++ b/htdocs/langs/is_IS/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Fjöldi eininga UnitPurchaseValue=Unit purchase price StockTooLow=Stock of lágt -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Gildi PMPValue=Vegið meðalverð PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Magn send QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Kauphöll dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Minnka raunverulegur birgðir á viðskiptavini reikningum / kredit athugasemdir löggilding @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Auka raunverulegur birgðir birgja reikningum / kredit athugasemdir löggilding ReStockOnValidateOrder=Auka raunverulegur birgðir birgja pantanir approbation -ReStockOnDispatchOrder=Auka raunverulegur birgðir á handbók dispatching í vöruhús, eftir röð birgja sem fá +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Panta hefur ekki enn eða ekki meira stöðu sem gerir dispatching af vörum í vöruhús lager. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Engar fyrirfram skilgreindum vörum fyrir þennan hlut. Svo neitun dispatching til á lager er krafist. DispatchVerb=Senda StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Líkamleg lager RealStock=Real lager +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual Stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Auðkenni vörugeymsla DescWareHouse=Lýsing vörugeymsla LieuWareHouse=Staðsetning lager @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Breyta +inventoryValidate=Staðfest +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Flokkur sía +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Bæta við +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Eyða línu +RegulateStock=Regulate Stock +ListInventory=Listi diff --git a/htdocs/langs/is_IS/stripe.lang b/htdocs/langs/is_IS/stripe.lang new file mode 100644 index 00000000000..115822c807d --- /dev/null +++ b/htdocs/langs/is_IS/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Eftirfarandi vefslóðir eru að bjóða upp síðu til viðskiptavina til að framkvæma greiðslu á Dolibarr mótmæla +PaymentForm=Greiðsla mynd +WelcomeOnPaymentPage=Velkomin á netinu greiðsluþjónustu okkar +ThisScreenAllowsYouToPay=Þessi skjár leyfa þér að gera á netinu greiðslu til %s. +ThisIsInformationOnPayment=Þetta eru upplýsingar um greiðslu að gera +ToComplete=Til að ljúka +YourEMail=Netfang til staðfestingar greiðslu +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Lánveitandi +PaymentCode=Greiðsla kóða +StripeDoPayment=Fara á greiðslu +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Næsti +ToOfferALinkForOnlinePayment=Slóð fyrir %s greiðslu +ToOfferALinkForOnlinePaymentOnOrder=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir röð +ToOfferALinkForOnlinePaymentOnInvoice=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir reikning +ToOfferALinkForOnlinePaymentOnContractLine=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir samning línu +ToOfferALinkForOnlinePaymentOnFreeAmount=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir ókeypis upphæð +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL að bjóða upp á %s inni greiðslu notandi tengi fyrir aðild áskrift +YouCanAddTagOnUrl=Þú getur einnig bætt við url stika & tag = gildi til allir af þessir URL (einungis fyrir frjáls greiðslu) til að bæta tag þína eigin greiðslu athugasemd. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Þessi síða staðfestir að greiðsla hefur verið skráð. Þakka þér. +YourPaymentHasNotBeenRecorded=Þú greiðsla hefur ekki verið skráð og viðskipti hefur verið aflýst. Þakka þér. +AccountParameter=Skráningin breytur +UsageParameter=Notkun breytur +InformationToFindParameters=Hjálp til að finna %s upplýsingar reiknings þíns +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nafn seljanda +CSSUrlForPaymentForm=CSS stíll lak url fyrir formi greiðslu +MessageOK=Skilaboð á staðfest greiðslu aftur síðu +MessageKO=Skilaboð á niður greiðslu aftur síðu +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/is_IS/supplier_proposal.lang b/htdocs/langs/is_IS/supplier_proposal.lang index 226ea38d44e..6b330a7ecf1 100644 --- a/htdocs/langs/is_IS/supplier_proposal.lang +++ b/htdocs/langs/is_IS/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Víxill (þarf að vera staðfest) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Loka SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Neitaði @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/is_IS/suppliers.lang b/htdocs/langs/is_IS/suppliers.lang index 2f07434a8b9..055794e665a 100644 --- a/htdocs/langs/is_IS/suppliers.lang +++ b/htdocs/langs/is_IS/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Þessi tilvísun birgir er nú þegar tengt með tilvísun: %s NoRecordedSuppliers=Nei birgja skráð SupplierPayment=Birgir greiðslu @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/is_IS/trips.lang b/htdocs/langs/is_IS/trips.lang index 646baca6ff2..73e677346f6 100644 --- a/htdocs/langs/is_IS/trips.lang +++ b/htdocs/langs/is_IS/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Listi yfir gjöld TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Fyrirtæki / stofnun heimsótt +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Magn eða kílómetrar DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Löggilding dagur DATE_CANCEL=Cancelation date DATE_PAIEMENT=Gjalddagi BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. @@ -87,5 +88,5 @@ NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/is_IS/users.lang b/htdocs/langs/is_IS/users.lang index f6f65e57cd9..73ba97d8e22 100644 --- a/htdocs/langs/is_IS/users.lang +++ b/htdocs/langs/is_IS/users.lang @@ -66,8 +66,8 @@ InternalUser=Innri notandi ExportDataset_user_1=notendur Dolibarr og eignir DomainUser=Lén notanda %s Reactivate=Endurvekja -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=Innri notandi er notandi sem er hluti af þínu fyrirtæki / stofnun.
Ytri notandi er a viðskiptavinur, birgir eða öðrum.

Í báðum tilfellum, leyfi skilgreinir réttindi á Dolibarr, einnig ytri notendur geta haft mismunandi matseðill framkvæmdastjóri en innri notanda (Sjá Heim - Skipulag - Skoða) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Heimild veitt vegna þess að arfur frá einni í hópnum notanda. Inherited=Arf UserWillBeInternalUser=Búið notandi vilja vera innri notanda (vegna þess að ekki tengd við ákveðna þriðja aðila) diff --git a/htdocs/langs/is_IS/website.lang b/htdocs/langs/is_IS/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/is_IS/website.lang +++ b/htdocs/langs/is_IS/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/is_IS/withdrawals.lang b/htdocs/langs/is_IS/withdrawals.lang index 4ea40f154c5..53a4e87fbf7 100644 --- a/htdocs/langs/is_IS/withdrawals.lang +++ b/htdocs/langs/is_IS/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Upphæð til baka WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Enginn viðskiptavinur reikning í ham greiðslu "afturkalla" er í bið. Fara á flipanum 'Dragið' reikning kort til að leggja fram beiðni. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ábyrg notanda WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Ástæða fyrir höfnun RefusedInvoicing=Innheimta höfnun NoInvoiceRefused=Ekki hlaða höfnun InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Bíð StatusTrans=Senda StatusCredited=Trúnaður diff --git a/htdocs/langs/it_IT/accountancy.lang b/htdocs/langs/it_IT/accountancy.lang index 489b64b2282..5a25f74299a 100644 --- a/htdocs/langs/it_IT/accountancy.lang +++ b/htdocs/langs/it_IT/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Aggiungi un account di contabilità AccountAccounting=Account di contabilità AccountAccountingShort=Conto SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Account per contabilità suggerito @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Inserisci movimento UpdateMvts=Modifica di un movimento +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Saldo @@ -109,7 +110,7 @@ ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maxi ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION=Tronca la descrizione di prodotto & servizi negli elenchi dopo x caratteri (Consigliato = 50) ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) @@ -138,13 +139,14 @@ Code_tiers=Terza parte Labelcompte=Etichetta account Sens=Verso Codejournal=Giornale -NumPiece=Piece number +NumPiece=Numero del pezzo TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Non impostato DeleteMvt=Delete Ledger lines -DelYear=Year to delete +DelYear=Anno da cancellare DelJournal=Journal to delete ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger @@ -160,9 +162,9 @@ FeeAccountNotDefined=Account for fee not defined BankAccountNotDefined=Account for bank not defined CustomerInvoicePayment=Payment of invoice customer ThirdPartyAccount=Thirdparty account -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +NewAccountingMvt=Nuova transazione +NumMvts=Numero della transazione +ListeMvts=Lista dei movimenti ErrorDebitCredit=Debito e Credito non possono avere un valore contemporaneamente AddCompteFromBK=Add accounting accounts to the group ReportThirdParty=List third party account @@ -201,7 +203,7 @@ ListOfProductsWithoutAccountingAccount=List of products not bound to any account ChangeBinding=Change the binding ## Admin -ApplyMassCategories=Apply mass categories +ApplyMassCategories=Applica categorie di massa AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories CategoryDeleted=Category for the accounting account has been removed AccountingJournals=Accounting journals @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Vendite AccountingJournalType3=Acquisti AccountingJournalType4=Banca +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Esportazioni Export=Esportazione +ExportDraftJournal=Export draft journal Modelcsv=Modello di esportazione OptionsDeactivatedForThisExportModel=Per questo modello di esportazione, le opzioni sono disattivate Selectmodelcsv=Seleziona un modello di esportazione @@ -230,7 +234,7 @@ Modelcsv_bob50=Esportazione per Sage BOB 50 Modelcsv_ciel=Esportazione per Sage Ciel Compta o Compta Evolution Modelcsv_quadratus=Esportazione per Quadratus QuadraCompta Modelcsv_ebp=Esportazione per EBP -Modelcsv_cogilog=Export towards Cogilog +Modelcsv_cogilog=Esporta per Cogilog Modelcsv_agiris=Export towards Agiris (Test) ChartofaccountsId=Chart of accounts Id @@ -239,8 +243,8 @@ InitAccountancy=Inizializza contabilità InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. Options=Opzioni -OptionModeProductSell=Mode sales -OptionModeProductBuy=Mode purchases +OptionModeProductSell=Modalità vendita +OptionModeProductBuy=Modalità acquisto OptionModeProductSellDesc=Show all products with accounting account for sales. OptionModeProductBuyDesc=Show all products with accounting account for purchases. CleanFixHistory=Remove accountancy code from lines that not exists into charts of account @@ -258,7 +262,7 @@ Formula=Formula ## Error SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) -ExportNotSupported=The export format setuped is not supported into this page +ExportNotSupported=Il formato di esportazione configurato non è supportato in questa pagina BookeppingLineAlreayExists=Lines already existing into bookeeping NoJournalDefined=No journal defined Binded=Lines bound diff --git a/htdocs/langs/it_IT/admin.lang b/htdocs/langs/it_IT/admin.lang index 7a658ee1743..91618398a0e 100644 --- a/htdocs/langs/it_IT/admin.lang +++ b/htdocs/langs/it_IT/admin.lang @@ -308,7 +308,7 @@ LastActivationIP=Latest activation IP UpdateServerOffline=Update server offline WithCounter=Manage a counter GenericMaskCodes=Puoi inserire uno schema di numerazione. In questo schema, possono essere utilizzati i seguenti tag :
{000000} Corrisponde a un numero che sarà incrementato ad ogni aggiunta di %s. Inserisci il numero di zeri equivalente alla lunghezza desiderata per il contatore. Verranno aggiunti zeri a sinistra fino alla lunghezza impostata per il contatore.
{000000+000} Come il precedente, ma con un offset corrispondente al numero a destra del segno + che viene applicato al primo inserimento %s.
{000000@x} Come sopra, ma il contatore viene reimpostato a zero quando si raggiunge il mese x (x compreso tra 1 e 12). Se viene utilizzata questa opzione e x è maggiore o uguale a 2, diventa obbligatorio inserire anche la sequenza {yy}{mm} o {yyyy}{mm}.
{dd} giorno (da 01 a 31).
{mm} mese (da 01 a 12).
{yy} , {yyyy} o {y} anno con 2, 4 o 1 cifra.
-GenericMaskCodes2={cccc} the client code on n characters
{cccc000} the client code on n characters is followed by a counter dedicated for customer. This counter dedicated to customer is reset at same time than global counter.
{tttt} The code of third party type on n characters (see menu Home - Setup - Dictionary - Types of third parties). If you add this tag, the counter will be different for each type of third party.
+GenericMaskCodes2={cccc}il codice cliente di n caratteri
{cccc000} il codice cliente di n caratteri è seguito da un contatore dedicato per cliente. Questo contatore dedicato per i clienti è azzerato allo stesso tempo di quello globale.
{tttt} Il codice di terze parti composto da n caratteri (vedi menu Home - Impostazioni - dizionario - tipi di terze parti). Se aggiungi questa etichetta, il contatore sarà diverso per ogni tipo di terze parti
GenericMaskCodes3=Tutti gli altri caratteri nello schema rimarranno inalterati.
Gli spazi non sono ammessi.
GenericMaskCodes4a=Example on the 99th %s of the third party TheCompany, with date 2007-01-31:
GenericMaskCodes4b=Esempio : il 99esimo cliente/fornitore viene creato 31/01/2007:
@@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Integrazione Mantis Module1400Name=Contabilità avanzata -Module1400Desc=Gestione contabilità per esperti (partita doppia) +Module1400Desc=Accounting management (double entries) Module1520Name=Generazione dei documenti Module1520Desc=Mass mail document generation Module1780Name=Tag/categorie @@ -585,7 +585,7 @@ Module50100Desc=Modulo per la creazione di un punto vendita (POS) Module50200Name=Paypal Module50200Desc=Modulo per offrire il pagamento online con Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Stampa diretta (senza aprire i documenti) tramite l'interfaccia CUPS IPP (la stampante deve essere visibile dal server, e il server deve avere CUPS installato). Module55000Name=Sondaggio, Indagine o Votazione diff --git a/htdocs/langs/it_IT/agenda.lang b/htdocs/langs/it_IT/agenda.lang index 36af756d2f6..8ef00afbe60 100644 --- a/htdocs/langs/it_IT/agenda.lang +++ b/htdocs/langs/it_IT/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID evento Actions=Eventi Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agende LocalAgenda=Calendario interno ActionsOwnedBy=Evento amministrato da @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=La fattura %s è stata cancellata InvoicePaidInDolibarr=Fattura %s impostata come pagata InvoiceCanceledInDolibarr=Fattura %s annullata MemberValidatedInDolibarr=Membro %s convalidato +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Membro %s eliminato MemberSubscriptionAddedInDolibarr=Adesione membro %s aggiunta ShipmentValidatedInDolibarr=Spedizione %s convalidata -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Spedizione %s eliminata OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Ordine convalidato @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervento %s inviato via Email ProposalDeleted=Proposta cancellata OrderDeleted=Ordine cancellato InvoiceDeleted=Fattura cancellata +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Data di inizio DateActionEnd=Data di fine AgendaUrlOptions1=È inoltre possibile aggiungere i seguenti parametri ai filtri di output: -AgendaUrlOptions2=login = %s ​​per limitare l'uscita di azioni create da o assegnate all'utente %s. AgendaUrlOptions3=logina = %s per limitare l'output alle azioni amministrate dall'utente%s -AgendaUrlOptions4=logint = %s per limitare l'output alle azioni modificate dall'utente %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID per limitare l'output alle azioni associate al progetto PROJECT_ID. AgendaShowBirthdayEvents=Visualizza i compleanni dei contatti AgendaHideBirthdayEvents=Nascondi i compleanni dei contatti diff --git a/htdocs/langs/it_IT/bills.lang b/htdocs/langs/it_IT/bills.lang index 092c6ced017..163b0cf937c 100644 --- a/htdocs/langs/it_IT/bills.lang +++ b/htdocs/langs/it_IT/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Fatture attive BillsCustomer=Fattura attive BillsSuppliers=Fatture fornitori BillsCustomersUnpaid=Fatture attive non pagate -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Fatture attive non pagate per %s BillsSuppliersUnpaid=Fatture passive non pagate -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Fatture passive non pagate per %s BillsLate=Ritardi nei pagamenti BillsStatistics=Statistiche fatture attive BillsStatisticsSuppliers=Statistiche fatture passive @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabilitata perché impossibile da cancellare InvoiceStandard=Fattura Standard InvoiceStandardAsk=Fattura Standard InvoiceStandardDesc=Questo tipo di fattura è la fattura più comune. -InvoiceDeposit=Fattura d'acconto -InvoiceDepositAsk=Fattura d'acconto -InvoiceDepositDesc=Fattura emessa quando è stato ricevuto un acconto. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Fattura proforma InvoiceProFormaAsk=Fattura proforma InvoiceProFormaDesc=La fattura proforma è uguale ad una fattura vera, ma non ha valore contabile. @@ -41,7 +41,7 @@ ConsumedBy=Consumati da NotConsumed=Non consumato NoReplacableInvoice=Nessuna fattura sostituibile NoInvoiceToCorrect=Nessuna fattura da correggere -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Rettificata da una o più fatture CardBill=Scheda fattura PredefinedInvoices=Fatture predefinite Invoice=Fattura @@ -63,7 +63,7 @@ paymentInInvoiceCurrency=in invoices currency PaidBack=Rimborsato DeletePayment=Elimina pagamento ConfirmDeletePayment=Vuoi davvero cancellare questo pagamento? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReduc=Vuoi trasformare questa nota di credito in uno sconto assoluto?
L'importo di tale credito verrà salvato nello sconto assoluto del cliente e potrà essere utilizzato come sconto per una successiva fattura a questo cliente. SupplierPayments=Pagamenti fornitori ReceivedPayments=Pagamenti ricevuti ReceivedCustomersPayments=Pagamenti ricevuti dai clienti @@ -75,10 +75,10 @@ PaymentsAlreadyDone=Pagamenti già fatti PaymentsBackAlreadyDone=Rimborso già effettuato PaymentRule=Regola pagamento PaymentMode=Tipo di pagamento -PaymentTypeDC=Debit/Credit Card +PaymentTypeDC=Carta di Debito/Credito PaymentTypePP=PayPal IdPaymentMode=Tipo di pagamento (id) -CodePaymentMode=Payment type (code) +CodePaymentMode=Tipo di pagamento (codice) LabelPaymentMode=Tipo di pagamento (etichetta) PaymentModeShort=Tipo di pagamento PaymentTerm=Termine di pagamento @@ -103,10 +103,10 @@ SearchACustomerInvoice=Cerca una fattura attiva SearchASupplierInvoice=Cerca una fattura passiva CancelBill=Annulla una fattura SendRemindByMail=Promemoria tramite email -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Registra pagamento +DoPaymentBack=Emetti rimborso ConvertToReduc=Converti in futuro sconto -ConvertExcessReceivedToReduc=Convert excess received into future discount +ConvertExcessReceivedToReduc=Converti l'eccedenza ricevuta in un futuro sconto EnterPaymentReceivedFromCustomer=Inserisci il pagamento ricevuto dal cliente EnterPaymentDueToCustomer=Emettere il pagamento dovuto al cliente DisabledBecauseRemainderToPayIsZero=Disabilitato perché il restante da pagare vale zero @@ -115,24 +115,24 @@ BillStatus=Stato fattura StatusOfGeneratedInvoices=Stato delle fatture generate BillStatusDraft=Bozza (deve essere convalidata) BillStatusPaid=Pagata -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Conv. in sconto BillStatusCanceled=Annullata BillStatusValidated=Convalidata (deve essere pagata) BillStatusStarted=Iniziata BillStatusNotPaid=Non pagata -BillStatusNotRefunded=Not refunded +BillStatusNotRefunded=Non riborsata BillStatusClosedUnpaid=Chiusa (non pagata) BillStatusClosedPaidPartially=Pagata (in parte) BillShortStatusDraft=Bozza BillShortStatusPaid=Pagata -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Conv. in sconto +BillShortStatusPaidBackOrConverted=Rimborsata o convertita +BillShortStatusConverted=Pagato BillShortStatusCanceled=Abbandonata BillShortStatusValidated=Convalidata BillShortStatusStarted=Iniziata BillShortStatusNotPaid=Non pagata -BillShortStatusNotRefunded=Not refunded +BillShortStatusNotRefunded=Non riborsata BillShortStatusClosedUnpaid=Chiusa BillShortStatusClosedPaidPartially=Pagata (in parte) PaymentStatusToValidShort=Da convalidare @@ -153,14 +153,14 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Nuova fattura -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Ultime %s fatture +LastCustomersBills=Ultime %s fatture attive +LastSuppliersBills=Ultime %s fatture passive AllBills=Tutte le fatture OtherBills=Altre fatture DraftBills=Fatture in bozza -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Bozze di fatture attive +SuppliersDraftInvoices=Bozze di fatture passive Unpaid=Non pagato ConfirmDeleteBill=Vuoi davvero cancellare questa fattura? ConfirmValidateBill=Vuoi davvero convalidare questa fattura con riferimento %s? @@ -184,8 +184,8 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Questa scelta viene utiliz ConfirmClassifyPaidPartiallyReasonOtherDesc=Utilizzare questa scelta se tutte le altre opzioni sono inadeguate, per esempio:
- il pagamento non è completo, in quanto alcuni prodotti sono stati restituiti.
- l'importo richiesto è troppo oneroso per essere trasformato in uno sconto.
Per correttezza contabile dovrà essere emessa una nota di credito. ConfirmClassifyAbandonReasonOther=Altro ConfirmClassifyAbandonReasonOtherDesc=Questa scelta sarà utilizzata in tutti gli altri casi. Perché, ad esempio, si prevede di creare una fattura sostitutiva. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? +ConfirmCustomerPayment=Confermare riscossione per %s %s? +ConfirmSupplierPayment=Confermare riscossione per %s %s? ConfirmValidatePayment=Vuoi davvero convalidare questo pagamento? Una volta convalidato non si potranno più operare modifiche. ValidateBill=Convalida fattura UnvalidateBill=Invalida fattura @@ -198,16 +198,16 @@ ShowBill=Visualizza fattura ShowInvoice=Visualizza fattura ShowInvoiceReplace=Visualizza la fattura sostitutiva ShowInvoiceAvoir=Visualizza nota di credito -ShowInvoiceDeposit=Visualizza fattura d'acconto +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Mostra avanzamento lavori ShowPayment=Visualizza pagamento AlreadyPaid=Già pagato AlreadyPaidBack=Già rimborsato -AlreadyPaidNoCreditNotesNoDeposits=Già pagato (senza note di credito o depositi) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abbandonata RemainderToPay=Restante da pagare RemainderToTake=Restante da incassare -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Restante da rimborsare Rest=In attesa AmountExpected=Importo atteso ExcessReceived=Ricevuto in eccesso @@ -216,7 +216,7 @@ EscompteOfferedShort=Sconto SendBillRef=Invio della fattura %s SendReminderBillRef=Invio della fattura %s (promemoria) StandingOrders=Ordini di addebito diretto -StandingOrder=Direct debit order +StandingOrder=Ordine di addebito diretto NoDraftBills=Nessuna bozza di fatture NoOtherDraftBills=Nessun'altra bozza di fatture NoDraftInvoices=Nessuna fattura in bozza @@ -270,20 +270,20 @@ RelativeDiscount=Sconto relativo GlobalDiscount=Sconto assoluto CreditNote=Nota di credito CreditNotes=Note di credito -Deposit=Acconto -Deposits=Depositi +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Sconto da nota di credito per %s -DiscountFromDeposit=Pagamenti dalla fattura d'acconto %s -DiscountFromExcessReceived=Payments from excess received of invoice %s +DiscountFromDeposit=Down payments from invoice %s +DiscountFromExcessReceived=Pagamenti dall'eccedenza ricevuta per la fattura %s AbsoluteDiscountUse=Questo tipo di credito può essere utilizzato su fattura prima della sua convalida -CreditNoteDepositUse=Invoice must be validated to use this kind of credits +CreditNoteDepositUse=La fattura deve essere convalidata per l'utilizzo di questo credito NewGlobalDiscount=Nuovo sconto globale NewRelativeDiscount=Nuovo sconto relativo NoteReason=Note/Motivo ReasonDiscount=Motivo dello sconto DiscountOfferedBy=Sconto concesso da -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Sconto ancora disponibile +DiscountAlreadyCounted=Sconto già applicato BillAddress=Indirizzo di fatturazione HelpEscompte=Questo sconto è concesso al cliente perché il suo pagamento è stato effettuato prima del termine. HelpAbandonBadCustomer=Tale importo è stato abbandonato (cattivo cliente) ed è considerato come un abbandono imprevisto. @@ -302,15 +302,15 @@ RemoveDiscount=Eiminare sconto WatermarkOnDraftBill=Filigrana sulla bozza di fatture (se presente) InvoiceNotChecked=Fattura non selezionata CloneInvoice=Clona fattura -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Sei sicuro di voler clonare la fattura %s? DisabledBecauseReplacedInvoice=Disabilitata perché la fattura è stata sostituita -DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here. +DescTaxAndDividendsArea=Questa area riporta un riepilogo di tutti i pagamenti effettuati per spese straordinarie. Qui sono inclusi tutti i pagamenti registrati durante l'anno impostato. NbOfPayments=Numero pagamenti SplitDiscount=Dividi lo sconto in due -ConfirmSplitDiscount=Are you sure you want to split this discount of %s %s into 2 lower discounts? +ConfirmSplitDiscount=Vuoi davvero dividere questo sconto del %s %s in 2 sconti inferiori? TypeAmountOfEachNewDiscount=Importo in input per ognuna delle due parti: TotalOfTwoDiscountMustEqualsOriginal=Il totale di due nuovi sconti deve essere pari allo sconto originale. -ConfirmRemoveDiscount=Are you sure you want to remove this discount? +ConfirmRemoveDiscount=Vuoi davvero eliminare questo sconto? RelatedBill=Fattura correlata RelatedBills=Fatture correlate RelatedCustomerInvoices=Fatture attive correlate @@ -336,12 +336,12 @@ InvoiceAutoValidate=Convalida le fatture automaticamente GeneratedFromRecurringInvoice=Fattura ricorrente %s generata dal modello DateIsNotEnough=Data non ancora raggiunta InvoiceGeneratedFromTemplate=Fattura %s generata da modello ricorrente %s -WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date -WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date +WarningInvoiceDateInFuture=Attenzione, la data della fattura è successiva alla data odierna +WarningInvoiceDateTooFarInFuture=Attenzione, la data della fattura è troppo lontana dalla data odierna # PaymentConditions Statut=Stato -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Rimessa diretta +PaymentConditionRECEP=Al ricevimento della fattura PaymentConditionShort30D=a 30 giorni PaymentCondition30D=Pagamento a 30 giorni PaymentConditionShort30DENDMONTH=30 giorni fine mese @@ -356,21 +356,21 @@ PaymentConditionShortPT_ORDER=Ordine PaymentConditionPT_ORDER=Ordinato PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% all'ordine, 50%% alla consegna* -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days -PaymentConditionShort10DENDMONTH=10 days of month-end -PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days -PaymentConditionShort14DENDMONTH=14 days of month-end -PaymentCondition14DENDMONTH=Within 14 days following the end of the month +PaymentConditionShort10D=10 giorni +PaymentCondition10D=Pagamento a 10 giorni +PaymentConditionShort10DENDMONTH=10 giorni fine mese +PaymentCondition10DENDMONTH=Pagamento a 10 giorni fine mese +PaymentConditionShort14D=14 giorni +PaymentCondition14D=Pagamento a 14 giorni +PaymentConditionShort14DENDMONTH=14 giorni fine mese +PaymentCondition14DENDMONTH=Pagamento a 14 giorni fine mese FixAmount=Correggi importo VarAmount=Importo variabile (%% tot.) # PaymentType PaymentTypeVIR=Bonifico bancario PaymentTypeShortVIR=Bonifico bancario -PaymentTypePRE=Direct debit payment order -PaymentTypeShortPRE=Debit payment order +PaymentTypePRE=Domiciliazione bancaria +PaymentTypeShortPRE=Domicil. banc. PaymentTypeLIQ=Pagamento in contanti PaymentTypeShortLIQ=Contanti PaymentTypeCB=Carta di credito @@ -400,7 +400,7 @@ RegulatedOn=Regolamentato su ChequeNumber=Assegno N° ChequeOrTransferNumber=Assegno/Bonifico N° ChequeBordereau=Check schedule -ChequeMaker=Check/Transfer transmitter +ChequeMaker=Traente dell'assegno ChequeBank=Banca emittente CheckBank=Controllo NetToBePaid=Netto a pagare @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Impossibile rimuovere il pagamento. C'è alm ExpectedToPay=Pagamento previsto CantRemoveConciliatedPayment=Impossibile eliminare il pagamento conciliato PayedByThisPayment=Pagato con questo pagamento -ClosePaidInvoicesAutomatically=Classifica come "pagate" tutte le fatture standard, ad avanzamento lavori e le note di credito e di debito interamente saldate. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classifica come "Pagata" tutte le note di credito interamente rimborsate ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Tutte le fatture totalmente pagate saranno automaticamente chiuse allo stato "Pagato". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Per creare un nuovo modelo bisogna prima c PDFCrabeDescription=Modello di fattura Crabe. (Modello raccomandatoi) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Restituisce un numero nel formato %syymm-nnnn per le fatture, %syymm-nnnn per le note di credito e %syymm-nnnn per i versamenti, dove yy è l'anno, mm è il mese e nnnn è una sequenza progressiva, senza salti e che non si azzera. -MarsNumRefModelDesc1=Restituisce un numero nel formato: %syymm-nnnn per le fatture standard, %syymm-nnnn per le fatture sostitutive, %syymm-nnnn per le fatture d'acconto e %syymm-nnnn per le note di credito dove yy è l'anno, mm è il mese e nnnn è una sequenza di numeri senza salti e che non si azzera +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Un altro modello di numerazione con sequenza $ syymm è già esistente e non è compatibile con questo modello. Rimuovere o rinominare per attivare questo modulo. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsabile pagamenti clienti TypeContact_facture_external_BILLING=Contatto fatturazioni clienti diff --git a/htdocs/langs/it_IT/bookmarks.lang b/htdocs/langs/it_IT/bookmarks.lang index 256f2cd1e13..3fc1631c394 100644 --- a/htdocs/langs/it_IT/bookmarks.lang +++ b/htdocs/langs/it_IT/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Aggiungi segnalibro per questa pagina +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Segnalibro Bookmarks=Segnalibri +ListOfBookmarks=Elenco segnalibri +EditBookmarks=List/edit bookmarks NewBookmark=Nuovo segnalibro ShowBookmark=Visualizza segnalibro OpenANewWindow=Apri una nuova finestra @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=Nuova finestra BookmarkTargetReplaceWindowShort=Finestra corrente BookmarkTitle=Titolo segnalibro UrlOrLink=URL -BehaviourOnClick=Comportamento quando si clicca su un indirizzo +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Crea segnalibro SetHereATitleForLink=Dai un titolo al segnalibro UseAnExternalHttpLinkOrRelativeDolibarrLink=Usa un indirizzo http esterno o uno relativo a Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Scegli se la pagina collegata deve essera aperta in nua nuova finestra oppure no +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Scegli se la pagina collegata deve essera aperta in una nuova finestra oppure no BookmarksManagement=Gestione segnalibri diff --git a/htdocs/langs/it_IT/boxes.lang b/htdocs/langs/it_IT/boxes.lang index 6faa2f9f1ee..b53b306c9fe 100644 --- a/htdocs/langs/it_IT/boxes.lang +++ b/htdocs/langs/it_IT/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Informazioni RSS BoxLastProducts=Ultimi %s prodotti/servizi BoxProductsAlertStock=Avvisi per le scorte di prodotti @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Ultimi %s ordini fornitore BoxTitleLastModifiedSuppliers=Ultimi %s fornitori modificati BoxTitleLastModifiedCustomers=Ultimi %s clienti modificati BoxTitleLastCustomersOrProspects=Ultimi %s clienti o potenziali clienti -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Ultime %s fatture attive +BoxTitleLastSupplierBills=Ultime %s fatture passive BoxTitleLastModifiedProspects=Ultimi %s clienti potenziali modificati BoxTitleLastModifiedMembers=Ultimi %s membri BoxTitleLastFicheInter=Ultimi %s interventi modificati @@ -51,12 +52,12 @@ ClickToAdd=Clicca qui per aggiungere NoRecordedCustomers=Nessun cliente registrato NoRecordedContacts=Nessun contatto registrato NoActionsToDo=Nessuna azione da fare -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Nessun ordine cliente registrato NoRecordedProposals=Nessuna proposta registrata -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices -NoModifiedSupplierBills=No recorded supplier invoices +NoRecordedInvoices=Nessuna fattura attiva registrata +NoUnpaidCustomerBills=Nessuna fattura attiva non pagata +NoUnpaidSupplierBills=Nessuna fattura passiva non pagata +NoModifiedSupplierBills=Nessuna fattura fornitore registrata NoRecordedProducts=Nessun prodotto/servizio registrato NoRecordedProspects=Nessun potenziale cliente registrato NoContractedProducts=Nessun prodotto/servizio a contratto @@ -82,3 +83,4 @@ ForCustomersOrders=Ordini dei clienti ForProposals=Proposte LastXMonthRolling=Ultimi %s mesi ChooseBoxToAdd=Aggiungi widget alla dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/it_IT/cashdesk.lang b/htdocs/langs/it_IT/cashdesk.lang index 20476c290a9..322a8323e00 100644 --- a/htdocs/langs/it_IT/cashdesk.lang +++ b/htdocs/langs/it_IT/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Differenza TotalTicket=Totale del biglietto NoVAT=L'IVA non si applica alla vendita Change=Merce in eccesso ricevuta -BankToPay=Usa conto +BankToPay=Account for payment ShowCompany=Mostra società ShowStock=Mostra magazzino DeleteArticle=Clicca per rimuovere l'articolo diff --git a/htdocs/langs/it_IT/categories.lang b/htdocs/langs/it_IT/categories.lang index 9cbc9eba484..11ba7caea27 100644 --- a/htdocs/langs/it_IT/categories.lang +++ b/htdocs/langs/it_IT/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Categoria Rubriques=Tag/Categorie +RubriquesTransactions=Tags/Categories of transactions categories=tag/categorie NoCategoryYet=Nessuna tag/categoria di questo tipo creata In=In @@ -14,7 +15,7 @@ CustomersCategoriesArea=Area tag/categorie clienti MembersCategoriesArea=Area tag/categorie membri ContactsCategoriesArea=Area tag/categorie contatti AccountsCategoriesArea=Area tag/categorie conti -ProjectsCategoriesArea=Projects tags/categories area +ProjectsCategoriesArea=Area tag/categorie progetti SubCats=Sub-categorie CatList=Lista delle tag/categorie NewCategory=Nuova tag/categoria @@ -34,17 +35,17 @@ CompanyIsInSuppliersCategories=Il soggetto terzo è collegato alle seguenti tag/ MemberIsInCategories=Il membro è collegato alle seguenti tag/categorie membri ContactIsInCategories=Il contatto appartiene alle seguenti tag/categorie ProductHasNoCategory=Questo prodotto/servizio non è collegato ad alcuna tag/categoria -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=Questo soggetto terzo non è collegato ad alcuna tag/categoria MemberHasNoCategory=Questo membro non è collegato ad alcuna tag/categoria ContactHasNoCategory=Questo contatto non è collegato ad alcuna tag/categoria -ProjectHasNoCategory=This project is not in any tags/categories +ProjectHasNoCategory=Questo progetto non è collegato ad alcuna tag/categoria ClassifyInCategory=Aggiungi a tag/categoria NotCategorized=Senza etichetta/categoria CategoryExistsAtSameLevel=Questa categoria esiste già allo stesso livello ContentsVisibleByAllShort=Contenuti visibili a tutti ContentsNotVisibleByAllShort=Contenuti non visibili a tutti DeleteCategory=Elimina tag/categoria -ConfirmDeleteCategory=Vuoi davvero eliminare questa tag/categoria? +ConfirmDeleteCategory=Vuoi davvero eliminare questo tag/categoria? NoCategoriesDefined=Nessuna tag/categoria definita SuppliersCategoryShort=Tag/categoria fornitori CustomersCategoryShort=Tag/categoria clienti @@ -58,24 +59,24 @@ ProductsCategoriesShort=Tag/categorie prodotti MembersCategoriesShort=Tag/categorie membri ContactCategoriesShort=Tag/categorie contatti AccountsCategoriesShort=Conti di tag/categorie -ProjectsCategoriesShort=Projects tags/categories +ProjectsCategoriesShort=Tag/categoria progetti ThisCategoryHasNoProduct=Questa categoria non contiene alcun prodotto ThisCategoryHasNoSupplier=Questa categoria non contiene alcun fornitore ThisCategoryHasNoCustomer=Questa categoria non contiene alcun cliente ThisCategoryHasNoMember=Questa categoria non contiene alcun membro ThisCategoryHasNoContact=Questa categoria non contiene contatti ThisCategoryHasNoAccount=Non ci sono conti collegati a questa categoria -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoProject=Questa categoria non contiene alcun progetto. CategId=ID Tag/categoria CatSupList=Lista delle tag/categorie fornitori CatCusList=Lista delle tag/categorie clienti -CatProdList=Lista delle tag/categorie prodotti +CatProdList=Elenco delle tag/categorie prodotti CatMemberList=Lista delle tag/categorie membri CatContactList=Lista delle tag/categorie contatti CatSupLinks=Collegamenti tra fornitori e tag/categorie CatCusLinks=Collegamenti tra clienti e tag/categorie CatProdLinks=Collegamenti tra prodotti/servizi e tag/categorie -CatProJectLinks=Links between projects and tags/categories +CatProJectLinks=Collegamenti tra progetti e tag/categorie DeleteFromCat=Elimina dalla tag/categoria ExtraFieldsCategories=Campi extra CategoriesSetup=Impostazioni Tag/categorie diff --git a/htdocs/langs/it_IT/commercial.lang b/htdocs/langs/it_IT/commercial.lang index f779036d367..604a0b58ff6 100644 --- a/htdocs/langs/it_IT/commercial.lang +++ b/htdocs/langs/it_IT/commercial.lang @@ -10,15 +10,16 @@ NewAction=Nuovo evento AddAction=Crea evento AddAnAction=Crea un evento AddActionRendezVous=Crea un appuntamento -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Vuoi davvero eliminare questo evento? CardAction=Scheda Azione/compito -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Azienda collegata +ActionOnContact=Contatto collegato TaskRDVWith=Incontro con %s ShowTask=Visualizza compito ShowAction=Visualizza azione ActionsReport=Prospetto azioni -ThirdPartiesOfSaleRepresentative=Terze parti con responsabile commerciale +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Venditore SalesRepresentatives=Venditori SalesRepresentativeFollowUp=Venditore (di follow-up) @@ -28,7 +29,7 @@ ShowCustomer=Visualizza cliente ShowProspect=Visualizza cliente potenziale ListOfProspects=Elenco dei clienti potenziali ListOfCustomers=Elenco dei clienti -LastDoneTasks=Latest %s completed actions +LastDoneTasks=Ultime %s azioni completate LastActionsToDo=Le %s più vecchie azioni non completate DoneAndToDoActions=Azioni fatte o da fare DoneActions=Azioni fatte diff --git a/htdocs/langs/it_IT/companies.lang b/htdocs/langs/it_IT/companies.lang index b462d79b6cd..aa94d240815 100644 --- a/htdocs/langs/it_IT/companies.lang +++ b/htdocs/langs/it_IT/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=La società %s esiste già. Scegli un altro nome. ErrorSetACountryFirst=Imposta prima il paese SelectThirdParty=Seleziona un soggetto terzo -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Vuoi davvero cancellare questa società e tutte le informazioni relative? DeleteContact=Elimina un contatto/indirizzo -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Vuoi davvero eliminare questo contatto e tutte le informazioni connesse? MenuNewThirdParty=Nuovo soggetto terzo MenuNewCustomer=Nuovo cliente MenuNewProspect=Nuovo cliente potenziale @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clienti ThirdPartyCustomersWithIdProf12=Clienti con %s o %s ThirdPartySuppliers=Fornitori ThirdPartyType=Tipo di soggetto terzo -Company/Fundation=Società/Fondazione Individual=Privato ToCreateContactWithSameName=Sarà creato automaticamente un contatto/indirizzo con le stesse informazione del soggetto terzo. Nella maggior parte dei casi, anche se il soggetto terzo è una persona fisica, creare solo la terza parte è sufficiente. ParentCompany=Società madre @@ -75,13 +74,13 @@ Poste= Posizione DefaultLang=Lingua predefinita VATIsUsed=L'IVA viene utilizzata VATIsNotUsed=L'IVA non viene utilizzata -CopyAddressFromSoc=Fill address with third party address +CopyAddressFromSoc=Compila l'indirizzo con l'indirizzo del soggetto terzo ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposte +OverAllOrders=Ordini +OverAllInvoices=Fatture +OverAllSupplierProposals=Richieste quotazioni ##### Local Taxes ##### LocalTax1IsUsed=Usa la seconda tassa LocalTax1IsUsedES= RE previsto @@ -104,7 +103,7 @@ ProfId2Short=R.E.A. ProfId3Short=Iscr. trib. ProfId4Short=C.F. ProfId5Short=Id Prof. 5 -ProfId6Short=Prof. id 6 +ProfId6Short=Id prof. 6 ProfId1=C.C.I.A.A. ProfId2=R.E.A. ProfId3=Iscr. trib. @@ -195,8 +194,8 @@ ProfId3IN=- ProfId4IN=- ProfId5IN=- ProfId6IN=- -ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) -ProfId2LU=Id. prof. 2 (Business permit) +ProfId1LU=Id. prof. 1 (R.C.S. Lussemburgo) +ProfId2LU=Id. prof. 2 (Permesso d'affari) ProfId3LU=- ProfId4LU=- ProfId5LU=- @@ -205,7 +204,7 @@ ProfId1MA=RC ProfId2MA=Patente ProfId3MA=SE ProfId4MA=CNSS -ProfId5MA=Id. prof. 5 (I.C.E.) +ProfId5MA=Id prof. 5 (I.C.E.) ProfId6MA=- ProfId1MX=RFC ProfId2MX=R. P. IMSS @@ -237,6 +236,12 @@ ProfId3TN=Douane code ProfId4TN=RIB ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=OGRN ProfId2RU=INN ProfId3RU=KPP @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Sconto relativo CustomerAbsoluteDiscountShort=Sconto assoluto CompanyHasRelativeDiscount=Il cliente ha uno sconto del %s%% CompanyHasNoRelativeDiscount=Il cliente non ha alcuno sconto relativo impostato -CompanyHasAbsoluteDiscount=Il cliente ha ancora uno sconto assoluto per %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Il cliente ha ancora note di credito per %s %s CompanyHasNoAbsoluteDiscount=Il cliente non ha disponibile alcuno sconto assoluto per credito CustomerAbsoluteDiscountAllUsers=Sconti assoluti (concessi a tutti gli utenti) @@ -365,9 +370,9 @@ ExportCardToFormat=Esportazione scheda nel formato ContactNotLinkedToCompany=Contatto non collegato ad alcuna società DolibarrLogin=Dolibarr login NoDolibarrAccess=Senza accesso a Dolibarr -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Terze parti (Aziende/fondazioni/persone fisiche) e proprietà ExportDataset_company_2=Contatti e attributi -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ImportDataset_company_1=Terze parti (Aziende/fondazioni/persone fisiche) e proprietà ImportDataset_company_2=Contatti/Indirizzi (per terze parti e non) e attributi ImportDataset_company_3=Informazioni bancarie ImportDataset_company_4=Third parties/Sales representatives (Affect sales representatives users to companies) @@ -396,16 +401,16 @@ ThirdPartyIsClosed=Third party is closed ProductsIntoElements=Elenco dei prodotti/servizi in %s CurrentOutstandingBill=Fatture scadute OutstandingBill=Max. fattura in sospeso -OutstandingBillReached=Max. for outstanding bill reached +OutstandingBillReached=Raggiunto il massimo numero di fatture scadute MonkeyNumRefModelDesc=Restituisce un numero con formato %syymm-nnnn per codice cliente e %syymm-nnnn per il fornitore, in cui yy è l'anno, mm è il mese e nnnn è una sequenza progressiva che non ritorna a 0. LeopardNumRefModelDesc=Codice cliente/fornitore libero. Questo codice può essere modificato in qualsiasi momento. ManagingDirectors=Nome Manager(s) (CEO, direttore, presidente...) MergeOriginThirdparty=Duplica soggetto terzo (soggetto terzo che stai eliminando) MergeThirdparties=Unisci soggetti terzi -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=I soggetti terzi sono stati uniti SaleRepresentativeLogin=Login del rappresentante commerciale -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeFirstname=Nome del commerciale +SaleRepresentativeLastname=Cognome del commerciale ErrorThirdpartiesMerge=Si è verificato un errore durante l'eliminazione dei soggetti terzi. Per ulteriori dettagli controlla il log. Le modifiche sono state annullate. NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code diff --git a/htdocs/langs/it_IT/contracts.lang b/htdocs/langs/it_IT/contracts.lang index 663a5183388..95d7392f885 100644 --- a/htdocs/langs/it_IT/contracts.lang +++ b/htdocs/langs/it_IT/contracts.lang @@ -14,7 +14,7 @@ ServiceStatusNotLateShort=Non scaduto ServiceStatusLate=Attivo, scaduto ServiceStatusLateShort=Scaduto ServiceStatusClosed=Chiuso -ShowContractOfService=Show contract of service +ShowContractOfService=Mostra i servizi del contratto Contracts=Contratti ContractsSubscriptions=Contratto/sottoscrizione ContractsAndLine=Contratti e righe di contratto @@ -32,13 +32,13 @@ NewContractSubscription=Nuovo contratto/sottoscrizione AddContract=Crea contratto DeleteAContract=Eliminazione di un contratto CloseAContract=Chiudere un contratto -ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? -ConfirmCloseService=Are you sure you want to close this service with date %s? +ConfirmDeleteAContract=Vuoi davvero eliminare questo contratto e tutti i suoi servizi? +ConfirmValidateContract=Vuoi davvero convalidare questo contratto con il nome %s? +ConfirmCloseContract=Questo chiuderà tutti i servizi (attivi e non attivi). Vuoi davvero chiudere questo contratto? +ConfirmCloseService=Vuoi davvero chiude questo servizio con la data %s? ValidateAContract=Convalidare un contratto ActivateService=Attiva il servizio -ConfirmActivateService=Are you sure you want to activate this service with date %s? +ConfirmActivateService=Vuoi davvero attivare il servizio con la data %s? RefContract=Referimento del contratto DateContract=Data contratto DateServiceActivate=Data di attivazione del servizio @@ -69,10 +69,10 @@ DraftContracts=Bozze contratti CloseRefusedBecauseOneServiceActive=Il contratto non può essere chiuso in quanto vi è almeno un servizio attivo CloseAllContracts=Chiudere tutti i contratti DeleteContractLine=Eliminazione di una riga di contratto -ConfirmDeleteContractLine=Are you sure you want to delete this contract line? +ConfirmDeleteContractLine=Vuoi davvero eliminare questa riga di contratto? MoveToAnotherContract=Sposta in un altro contratto ConfirmMoveToAnotherContract=Confermi di voler passare questo servizio al nuovo contratto scelto? -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? +ConfirmMoveToAnotherContractQuestion=Seleziona in quale contratto esistente (dello stesso soggetto terzo) vuoi spostare questi servizi? PaymentRenewContractId=Rinnova riga di contratto (numero %s) ExpiredSince=Scaduto il NoExpiredServices=Non ci sono servizi scaduti attivi @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Questa lista contiene i servizi relativi a contrat StandardContractsTemplate=Template standard per i contratti ContactNameAndSignature=Per %s, nome e firma: OnlyLinesWithTypeServiceAreUsed=Verranno clonate solo le righe di tipo "servizio" +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Contatto interno per la firma del contratto diff --git a/htdocs/langs/it_IT/deliveries.lang b/htdocs/langs/it_IT/deliveries.lang index f32c7315d19..b80bd3ba0eb 100644 --- a/htdocs/langs/it_IT/deliveries.lang +++ b/htdocs/langs/it_IT/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Consegna DeliveryRef=Rif. consegna -DeliveryCard=Receipt card +DeliveryCard=Scheda ricevuta di consegna DeliveryOrder=Ordine di consegna DeliveryDate=Data di consegna -CreateDeliveryOrder=Generate delivery receipt +CreateDeliveryOrder=Genera la ricevuta di consegna DeliveryStateSaved=Stato di consegna salvato SetDeliveryDate=Imposta la data di spedizione ValidateDeliveryReceipt=Convalida la ricevuta di consegna -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +ValidateDeliveryReceiptConfirm=Vuoi davvero convalidare la ricevuta di consegna? DeleteDeliveryReceipt=Eliminare ricevuta di consegna -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeleteDeliveryReceiptConfirm=Vuoi davvero eliminare la ricevuta di consegna %s? DeliveryMethod=Metodo di consegna TrackingNumber=Numero di tracking DeliveryNotValidated=Consegna non convalidata diff --git a/htdocs/langs/it_IT/errors.lang b/htdocs/langs/it_IT/errors.lang index 2c1abe058d3..7f6d02f4920 100644 --- a/htdocs/langs/it_IT/errors.lang +++ b/htdocs/langs/it_IT/errors.lang @@ -98,7 +98,7 @@ ErrorDeleteNotPossibleLineIsConsolidated=Impossibile cancellare il record perch ErrorProdIdAlreadyExist=%s è già assegnato ErrorFailedToSendPassword=Impossibile inviare la password ErrorFailedToLoadRSSFile=Impossibile ottenere feed RSS. Se i messaggi di errore non forniscono informazioni sufficienti, prova ad ativare il debug con MAIN_SIMPLEXMLLOAD_DEBUG. -ErrorForbidden=Access denied.
You try to access to a page, area or feature of a disabled module or without being in an authenticated session or that is not allowed to your user. +ErrorForbidden=Accesso negato.
Cerchi di accedere a una pagina, area o funzionalità di un modulo disabilitato o senza essere in una sessione autenticata o che non è consentita all'utente. ErrorForbidden2=L'autorizzazione all'accesso per questi dati può essere impostata dall'amministratore di Dolibarr tramite il menu %s - %s. ErrorForbidden3=Sembra che Dolibarr non venga utilizzato tramite una sessione autenticata. Dai un'occhiata alla documentazione di installazione Dolibarr per sapere come gestire le autenticazioni (htaccess, mod_auth o altri...). ErrorNoImagickReadimage=La funzione Imagick_readimage non è stata trovato nel PHP. L'anteprima non è disponibile. Gli amministratori possono disattivare questa scheda dal menu Impostazioni - Schermo diff --git a/htdocs/langs/it_IT/exports.lang b/htdocs/langs/it_IT/exports.lang index f201c343aef..2d7637fa7ad 100644 --- a/htdocs/langs/it_IT/exports.lang +++ b/htdocs/langs/it_IT/exports.lang @@ -113,10 +113,21 @@ ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtra per un anno/mese/giorno
YYYY ExportNumericFilter='NNNNN' filtra per un solo valore
'NNNNN+NNNNN' filtra su un range di valori
'>NNNNN' filtra per valori inferiori
'>NNNNN' filtra per valori superiori ImportFromLine=Importa a partire dalla riga numero EndAtLineNb=Numero dell'ultima riga +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Per esempio: imposta questo valore a 3 per escludere le prime 2 righe KeepEmptyToGoToEndOfFile=Lascia il campo vuoto per andare alla fine del file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Se vuoi filtrare su qualche valore, inserisci qui il valore. FilteredFields=Campi filtrati FilteredFieldsValues=Valore per il filtro FormatControlRule=Controllo del formato +## imports updates +KeysToUseForUpdates=Chiave da utilizzare per l'aggiornamento dei dati +NbInsert=Numero di righe inserite: %s +NbUpdate=Numero di righe aggiornate: %s +MultipleRecordFoundWithTheseFilters=Righe multiple sono state trovate con questi filtri: %s diff --git a/htdocs/langs/it_IT/holiday.lang b/htdocs/langs/it_IT/holiday.lang index 724097b216e..223f52d7b66 100644 --- a/htdocs/langs/it_IT/holiday.lang +++ b/htdocs/langs/it_IT/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Cancellato RefuseCP=Rifiutato ValidatorCP=Approvato da ListeCP=Elenco delle assenze -ReviewedByCP=Sarà valutata da +ReviewedByCP=Will be approved by DescCP=Descrizione SendRequestCP=Inserisci richiesta di assenza DelayToRequestCP=Le richieste devono essere inserite almeno %s giorni prima dell'inizio. diff --git a/htdocs/langs/it_IT/install.lang b/htdocs/langs/it_IT/install.lang index 99f5fe55d00..9df8c739036 100644 --- a/htdocs/langs/it_IT/install.lang +++ b/htdocs/langs/it_IT/install.lang @@ -11,14 +11,14 @@ PHPSupportSessions=PHP supporta le sessioni. PHPSupportPOSTGETOk=PHP supporta le variabili GET e POST. PHPSupportPOSTGETKo=È possibile che l'installazione di PHP non supporti le variabili POST e/o GET. Controlla il parametro variables_order nel file php.ini. PHPSupportGD=PHP con supporto grafico GD. -PHPSupportCurl=This PHP support Curl. +PHPSupportCurl=Questo PHP support cURL. PHPSupportUTF8=PHP supporta le funzioni UTF-8. PHPMemoryOK=La memoria massima per la sessione è fissata dal PHP a %s. Dovrebbe essere sufficiente. PHPMemoryTooLow=La memoria massima per la sessione è fissata dal PHP a %s byte. Cambia il file php.ini per impostare il parametro memory_limit ad almeno %s byte. Recheck=Clicca qui per ripetere i controlli ErrorPHPDoesNotSupportSessions=La tua installazione di PHP non supporta le sessioni. Dolibarr non può funzionare senza. Risolvere questo problema prima di installare Dolibarr. ErrorPHPDoesNotSupportGD=La tua installazione di PHP non supporta la funzione grafica GD. Non sarà disponibile alcun grafico. -ErrorPHPDoesNotSupportCurl=Your PHP installation does not support Curl. +ErrorPHPDoesNotSupportCurl=L'attuale installazione di PHP non supporta cURL. ErrorPHPDoesNotSupportUTF8=L'installazione di PHP non supporta funzioni UTF-8. Dolibarr non può funzionare correttamente.Risolvere questo problema prima di installare Dolibarr. ErrorDirDoesNotExists=La directory %s non esiste. ErrorGoBackAndCorrectParameters=Torna indietro e correggi i parametri sbagliati. @@ -87,7 +87,7 @@ DirectoryRecommendation=Si raccomanda l'utilizzo di una directory al di fuori de LoginAlreadyExists=Esiste già DolibarrAdminLogin=Login dell'amministratore di Dolibarr AdminLoginAlreadyExists=L'account amministratore %s esiste già. -FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. +FailedToCreateAdminLogin=Impossibile creare l'account amministratore di Dolibarr. WarningRemoveInstallDir=Attenzione, per motivi di sicurezza, una volta completata l'installazione o l'aggiornamento, rimuovere la directory install o rinominarla install.lock, al fine di evitarne un uso malevolo. FunctionNotAvailableInThisPHP=Non disponibile su questa installazione di PHP ChoosedMigrateScript=Scegli script di migrazione @@ -132,12 +132,13 @@ MigrationFinished=Migrazione completata LastStepDesc=Ultimo passo: Indicare qui login e password che si prevede di utilizzare per la connessione al software. Non dimenticare questi dati perché è l'unico account in grado di amminsitrare tutti gli altri. ActivateModule=Attiva modulo %s ShowEditTechnicalParameters=Clicca qui per mostrare/modificare i parametri avanzati (modalità esperti) -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process... +WarningUpgrade=Attenzione:\nHai già fatto un backup del database?\nTi raccomando di eseguire un backup prima di procedere. A causa di alcuni bugs nei sistemi database (ad esempio nella versione mysql 5.5.40/41/42/43), alcuni dati o tabelle potrebbero andare persi durante il processo. Pertanto ti suggerisco fortemente di effettuare un dump completo del tuo database prima di iniziare la migrazione.\n\nClicca OK per iniziare il processo di migrazione... ErrorDatabaseVersionForbiddenForMigration=La tua versione del database è %s. Essa soffre di un bug critico se si cambia la struttura del database, come è richiesto dal processo di migrazione. Per questa ragione non sarà consentita la migrazione fino a quando non verrà aggiornato il database a una versione stabile più recente (elenco delle versioni probleematiche: %s) KeepDefaultValuesWamp=Si sta utilizzando la configurazione guidata DoliWamp, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai. KeepDefaultValuesDeb=Si sta utilizzando la configurazione guidata di un pacchetto (Debian, Ubuntu o simili), quindi i valori proposti sono già ottimizzati. Basta inserire la password per la creazione del database. Modifica gli altri parametri solo se sai quello che fai. KeepDefaultValuesMamp=Si sta utilizzando la configurazione guidata DoliMamp, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai. KeepDefaultValuesProxmox=Si sta utilizzando la configurazione guidata di una virtual appliance Proxmox, quindi i valori proposti sono già ottimizzati. Modifica i parametri solo se sai quello che fai. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade @@ -175,7 +176,7 @@ MigrationReopeningContracts=Apri contratto chiuso per errore MigrationReopenThisContract=Riapri contratto %s MigrationReopenedContractsNumber=%s contratti modificati MigrationReopeningContractsNothingToUpdate=Nessun contratto chiuso da aprire -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationBankTransfertsUpdate=Aggiorna i collegamenti tra registrazione e trasferimento bancario MigrationBankTransfertsNothingToUpdate=Tutti i link sono aggiornati MigrationShipmentOrderMatching=Migrazione ordini di spedizione MigrationDeliveryOrderMatching=Aggiornamento ordini di spedizione diff --git a/htdocs/langs/it_IT/interventions.lang b/htdocs/langs/it_IT/interventions.lang index 8c39a5c260e..0c23b5cff27 100644 --- a/htdocs/langs/it_IT/interventions.lang +++ b/htdocs/langs/it_IT/interventions.lang @@ -15,18 +15,18 @@ ValidateIntervention=Convalida intervento ModifyIntervention=Modificare intervento DeleteInterventionLine=Elimina riga di intervento CloneIntervention=Copia intervento -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? +ConfirmDeleteIntervention=Vuoi davvero eliminare questo intervento? +ConfirmValidateIntervention=Vuoi davvero convalidare questo intervento con il riferimento %s? +ConfirmModifyIntervention=Vuoi davvero modificare questo intervento? +ConfirmDeleteInterventionLine=Vuoi davvero eliminare questa riga di intervento? +ConfirmCloneIntervention=Vuoi davvero clonare questo intervento? NameAndSignatureOfInternalContact=Nome e firma del partecipante: NameAndSignatureOfExternalContact=Nome e firma del cliente: DocumentModelStandard=Modello documento standard per gli interventi InterventionCardsAndInterventionLines=Interventi e righe degli interventi InterventionClassifyBilled=Classifica come "Fatturato" InterventionClassifyUnBilled=Classifica come "Non fatturato" -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=Classifica "Eseguito" StatusInterInvoiced=Fatturato ShowIntervention=Mostra intervento SendInterventionRef=Invio di intervento %s @@ -39,8 +39,9 @@ InterventionClassifiedUnbilledInDolibarr=Intervento %s classificato come non fat InterventionSentByEMail=Intervento %s inviato via email InterventionDeletedInDolibarr=Intervento %s eliminato InterventionsArea=Zona dell'intervento -DraftFichinter=Draft interventions +DraftFichinter=Interventi in bozza LastModifiedInterventions=Ultimi %s interventi modificati +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Contatto di follow-up del cliente # Modele numérotation diff --git a/htdocs/langs/it_IT/loan.lang b/htdocs/langs/it_IT/loan.lang index 25ac28a4d30..9114e0cd352 100644 --- a/htdocs/langs/it_IT/loan.lang +++ b/htdocs/langs/it_IT/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=Spenderete %s in %s anni +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configurazione del modulo prestiti LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/it_IT/mails.lang b/htdocs/langs/it_IT/mails.lang index e7d0d918ffc..8ac9f136bd1 100644 --- a/htdocs/langs/it_IT/mails.lang +++ b/htdocs/langs/it_IT/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Inviato parzialmente MailingStatusSentCompletely=Inviato completamente MailingStatusError=Errore MailingStatusNotSent=Non inviato -MailSuccessfulySent=Email accettata con successo per la consegna (da %s a %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing validata con successo MailUnsubcribe=Cancella sottoscrizione MailingStatusNotContact=Non contattare più @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Riga %s nel file @@ -116,8 +120,8 @@ Notifications=Notifiche NoNotificationsWillBeSent=Non sono previste notifiche per questo evento o società ANotificationsWillBeSent=Verrà inviata una notifica via email SomeNotificationsWillBeSent=%s notifiche saranno inviate via email -AddNewNotification=Attiva una nuova richiesta di notifica via email -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Elenco delle notifiche spedite per email MailSendSetupIs=La configurazione della posta elettronica di invio è stata impostata alla modalità '%s'. Questa modalità non può essere utilizzata per inviare mail di massa. MailSendSetupIs2=Con un account da amministratore è necessario cliccare su %sHome -> Setup -> EMails%s e modificare il parametro '%s' per usare la modalità '%s'. Con questa modalità è possibile inserire i dati del server SMTP di elezione e usare Il "Mass Emailing" diff --git a/htdocs/langs/it_IT/main.lang b/htdocs/langs/it_IT/main.lang index 901e485d434..510682bf199 100644 --- a/htdocs/langs/it_IT/main.lang +++ b/htdocs/langs/it_IT/main.lang @@ -72,8 +72,10 @@ SeeHere=Vedi qui Apply=Applica BackgroundColorByDefault=Colore di sfondo predefinito FileRenamed=Il file è stato rinominato con successo -FileUploaded=Il file è stato caricato con successo FileGenerated=Il file è stato generato con successo +FileSaved=The file was successfully saved +FileUploaded=Il file è stato caricato con successo +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Il file selezionato per l'upload non è stato ancora caricato. Clicca su Allega file per farlo NbOfEntries=Numero di voci GoToWikiHelpPage=Leggi l'aiuto online (è richiesto un collegamento internet) @@ -358,6 +360,7 @@ TotalLT1ES=Totale RE TotalLT2ES=Totale IRPF HT=Al netto delle imposte TTC=IVA inclusa +INCT=Inc. all taxes VAT=IVA VATs=IVA LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=ott MonthShort11=nov MonthShort12=dic AttachedFiles=File e documenti allegati -FileTransferComplete=Upload concluso con successo DateFormatYYYYMM=AAAA-MM DateFormatYYYYMMDD=AAAA-MM-GG DateFormatYYYYMMDDHHMM=AAAA-MM-GG HH:MM diff --git a/htdocs/langs/it_IT/margins.lang b/htdocs/langs/it_IT/margins.lang index c2230f6b3d0..5ffcbae69c5 100644 --- a/htdocs/langs/it_IT/margins.lang +++ b/htdocs/langs/it_IT/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Il rapporto deve essere un numero markRateShouldBeLesserThan100=Il rapporto deve essere inferiore a 100 ShowMarginInfos=Mostra informazioni sui margini CheckMargins=Dettagli dei margini -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/it_IT/members.lang b/htdocs/langs/it_IT/members.lang index 856e93d8947..fe0c65a8ca1 100644 --- a/htdocs/langs/it_IT/members.lang +++ b/htdocs/langs/it_IT/members.lang @@ -41,8 +41,8 @@ MemberType=Tipo membro MemberTypeId=Id membro MemberTypeLabel=Etichetta tipo membro MembersTypes=Tipi di membro -MemberStatusDraft=Candidato (da convalidare) -MemberStatusDraftShort=Candidato +MemberStatusDraft=Bozza (deve essere convalidata) +MemberStatusDraftShort=Bozza MemberStatusActive=Convalidato (in attesa del pagamento) MemberStatusActiveShort=Convalidato MemberStatusActiveLate=Subscription expired @@ -51,7 +51,7 @@ MemberStatusPaid=Adesione aggiornata MemberStatusPaidShort=Aggiornata MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated -MembersStatusToValid=Candidati da convalidare +MembersStatusToValid=Membri da convalidare MembersStatusResiliated=Terminated members NewCotisation=Nuovo contributo PaymentSubscription=Nuovo contributo di pagamento @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Nessun tipo di membro definito. Vai su impostazioni - Tip NewMemberType=Nuovo tipo di membro WelcomeEMail=Email di benvenuto SubscriptionRequired=E' richiesta l'adesione -DeleteType=Elimina tipo +DeleteType=Elimina VoteAllowed=E' permesso il voto Physical=Fisica Moral=Giuridica @@ -90,11 +90,12 @@ PublicMemberList=Elenco pubblico dei membri BlankSubscriptionForm=Modulo di adesione vuoto BlankSubscriptionFormDesc=Dolibarr può fornire un URL pubblico per permettere ai visitatori esterni di richiedere l'adesione alla fondazione. Se è attivo un modulo di pagamento online, le informazioni per il pagamento saranno fornite automaticamente. EnablePublicSubscriptionForm=Abilita modulo di adesione pubblico +ForceMemberType=Force the member type ExportDataset_member_1=Membri e adesioni ImportDataset_member_1=Membri LastMembersModified=ultimi %s membri modificati LastSubscriptionsModified=Ultime %s adesioni modificate -String=String +String=Stringa Text=Testo Int=Intero DateAndTime=Data e ora @@ -150,6 +151,7 @@ MembersByTownDesc=Questa schermata mostra le statistiche sui membri per città. MembersStatisticsDesc=Scegli quali statistiche visualizzare... MenuMembersStats=Statistiche LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Natura Public=Pubblico NewMemberbyWeb=Nuovo membro aggiunto. In attesa di approvazione diff --git a/htdocs/langs/it_IT/modulebuilder.lang b/htdocs/langs/it_IT/modulebuilder.lang new file mode 100644 index 00000000000..395196b55bc --- /dev/null +++ b/htdocs/langs/it_IT/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Moduli generati/modificabili trovati: %s (vengono rilevati come modificabili quando il file %sesiste nella directory principale del modulo). +NewModule=Nuovo modulo +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Modulo inizializzato +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Inserisci qui le informazioni generali che descrivono il modulo +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Questa scheda è dedicata a definire le voci di menu fornite dal tuo modulo +ModuleBuilderDescpermissions=Questa scheda è dedicata a definire le nuove autorizzazione che vuoi fornire con il modulo +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=Questo modulo è stato attivato. Qualsiasi sua modifica può interrompere una funzionalità attiva. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/it_IT/multicurrency.lang b/htdocs/langs/it_IT/multicurrency.lang new file mode 100644 index 00000000000..b8ed714c199 --- /dev/null +++ b/htdocs/langs/it_IT/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Payment amount, original currency diff --git a/htdocs/langs/it_IT/oauth.lang b/htdocs/langs/it_IT/oauth.lang index 159442f9f7d..43d5ccb0c28 100644 --- a/htdocs/langs/it_IT/oauth.lang +++ b/htdocs/langs/it_IT/oauth.lang @@ -2,15 +2,20 @@ ConfigOAuth=Configurazione Oauth OAuthServices=OAuth services ManualTokenGeneration=Generazione manuale del token +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=Nessun token per l'accesso è salvato nel database locale HasAccessToken=Un token è stato generato e salvato nel database locale -NewTokenStored=Token ricevuto e salvato -ToCheckDeleteTokenOnProvider=Per controllare/eliminare l'autorizzazione salvata da %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token eliminato RequestAccess=Click qui per richiedere/rinnovare l'accesso e ricevere un nuovo token da salvare DeleteAccess=Click qui per eliminare il token UseTheFollowingUrlAsRedirectURI=Usa il seguente indirizzo come Redirect URI quando crei le credenziali sul tuo provider OAuth: ListOfSupportedOauthProviders=Inserisci qui le credenziali fornite dal tuo provider OAuth. Vengono visualizzati solo i provider supportati. Questa configurazione può essere usata ache dagli altri moduli che necessitano di autenticazione OAuth2. +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token scaduto TOKEN_EXPIRE_AT=Il token sade il diff --git a/htdocs/langs/it_IT/orders.lang b/htdocs/langs/it_IT/orders.lang index 11f8ff53aff..672c4dfcdf2 100644 --- a/htdocs/langs/it_IT/orders.lang +++ b/htdocs/langs/it_IT/orders.lang @@ -39,7 +39,7 @@ StatusOrderRefusedShort=Rifiutato StatusOrderBilledShort=Pagato StatusOrderToProcessShort=Da lavorare StatusOrderReceivedPartiallyShort=Ricevuto parz. -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=Ricevuto compl. StatusOrderCanceled=Annullato StatusOrderDraft=Bozza (deve essere convalidata) StatusOrderValidated=Convalidato @@ -51,7 +51,7 @@ StatusOrderApproved=Approvato StatusOrderRefused=Rifiutato StatusOrderBilled=Pagato StatusOrderReceivedPartially=Ricevuto parzialmente -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Ricevuto completamente ShippingExist=Esiste una spedizione QtyOrdered=Quantità ordinata ProductQtyInDraft=Quantità di prodotto in bozza di ordini @@ -87,12 +87,12 @@ NumberOfOrdersByMonth=Numero di ordini per mese AmountOfOrdersByMonthHT=Importo ordini per mese (al netto delle imposte) ListOfOrders=Elenco degli ordini CloseOrder=Chiudi ordine -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. -ConfirmDeleteOrder=Are you sure you want to delete this order? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +ConfirmCloseOrder=Vuoi davvero chiudere questo ordine? Una volta chiuso, un ordine può solo essere fatturato. +ConfirmDeleteOrder=Vuoi davvero cancellare questo ordine? +ConfirmValidateOrder=Vuoi davvero convalidare questo ordine come %s? +ConfirmUnvalidateOrder=Vuoi davvero riportare l'ordine %s allo stato di bozza? +ConfirmCancelOrder=Vuoi davvero annullare questo ordine? +ConfirmMakeOrder=Vuoi davvero confermare di aver creato questo ordine su %s? GenerateBill=Genera fattura ClassifyShipped=Classifica come spedito DraftOrders=Bozze di ordini @@ -101,7 +101,7 @@ OnProcessOrders=Ordini in lavorazione RefOrder=Rif. ordine RefCustomerOrder=Rif. fornitore RefOrderSupplier=Rif. fornitore -RefOrderSupplierShort=Ref. order supplier +RefOrderSupplierShort=Rif. ordine forn. SendOrderByMail=Invia ordine via email ActionsOnOrder=Azioni all'ordine NoArticleOfTypeProduct=Non ci sono articoli definiti "prodotto" quindi non ci sono articoli da spedire @@ -110,7 +110,7 @@ AuthorRequest=Autore della richiesta UserWithApproveOrderGrant=Utente autorizzato ad approvare ordini PaymentOrderRef=Riferimento pagamento ordine %s CloneOrder=Clona ordine -ConfirmCloneOrder=Are you sure you want to clone this order %s? +ConfirmCloneOrder=Vuoi davvero clonare l'ordine %s? DispatchSupplierOrder=Ricezione ordine fornitore %s FirstApprovalAlreadyDone=First approval already done SecondApprovalAlreadyDone=Second approval already done @@ -150,5 +150,5 @@ OrderCreated=I tuoi ordini sono stati creati OrderFail=C'è stato un errore durante la creazione del tuo ordine CreateOrders=Crea ordini ToBillSeveralOrderSelectCustomer=Per creare una fattura per ordini multipli, clicca prima sul cliente, poi scegli "%s". -CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received. -SetShippingMode=Set shipping mode +CloseReceivedSupplierOrdersAutomatically=Chiudi automaticamente l'ordine come "%s" se tutti i prodotti sono stati ricevuti. +SetShippingMode=Imposta il metodo di spedizione diff --git a/htdocs/langs/it_IT/other.lang b/htdocs/langs/it_IT/other.lang index 11f987cbd8e..94bc2f70965 100644 --- a/htdocs/langs/it_IT/other.lang +++ b/htdocs/langs/it_IT/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=oncia Length=Lunghezza LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/it_IT/paybox.lang b/htdocs/langs/it_IT/paybox.lang index 7ca875fd1f8..cfecff62139 100644 --- a/htdocs/langs/it_IT/paybox.lang +++ b/htdocs/langs/it_IT/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email per la conferma del pagamento Creditor=Creditore PaymentCode=Codice pagamento PayBoxDoPayment=Vai al pagamento +ToPay=Registra pagamento YouWillBeRedirectedOnPayBox=Verrai reindirizzato alla pagina sicura di Paybox per inserire le informazioni della carta di credito. Continue=Successivo ToOfferALinkForOnlinePayment=URL per il pagamento %s diff --git a/htdocs/langs/it_IT/paypal.lang b/htdocs/langs/it_IT/paypal.lang index d275cf08970..73075d226d9 100644 --- a/htdocs/langs/it_IT/paypal.lang +++ b/htdocs/langs/it_IT/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=L'id di transazione è: %s PAYPAL_ADD_PAYMENT_URL=Aggiungere l'URL di pagamento Paypal quando si invia un documento per posta PredefinedMailContentLink=Per completare il pagamento PayPal, puoi cliccare sul link qui sotto.\n\n%s YouAreCurrentlyInSandboxMode=Attualmente sei in modalità sandbox -NewPaypalPaymentReceived=Nuovo pagamento Paypal ricevuto -NewPaypalPaymentFailed=Nuovo pagamento Paypal tentato ma fallito +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=Email di avviso dopo un pagamento (a buon fine o no) ReturnURLAfterPayment=URL di ritorno dopo il pagamento -ValidationOfPaypalPaymentFailed=Conferma del pagamento fallito di Paypal -PaypalConfirmPaymentPageWasCalledButFailed=La pagina di conferma del pagamento è stata interrogata da Paypal ma la conferma è fallita. +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Messaggio di Errore dettagliato ShortErrorMessage=Messaggio di errore breve ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/it_IT/printing.lang b/htdocs/langs/it_IT/printing.lang index 2b8bafd7d0b..6197ea2aafd 100644 --- a/htdocs/langs/it_IT/printing.lang +++ b/htdocs/langs/it_IT/printing.lang @@ -3,7 +3,7 @@ Module64000Name=Stampa diretta Module64000Desc=Abilita il sistema di stampa diretta PrintingSetup=Impostazioni del sistema di stampa diretta PrintingDesc=Questo modulo aggiunge un pulsante per la stampa diretta dei documenti (senza aprire il pdf) usando vari moduli. -MenuDirectPrinting=Direct Printing jobs +MenuDirectPrinting=Processi di stampa diretta DirectPrint=Stampa diretta PrintingDriverDesc=Credenziali per i driver di stampa ListDrivers=Lista dei driver @@ -44,8 +44,8 @@ IPP_Color=A colori IPP_Device=Periferica IPP_Media=Supporto IPP_Supported=Tipo di supporto -DirectPrintingJobsDesc=This page lists printing jobs found for available printers. +DirectPrintingJobsDesc=Questa pagina elenca i processi di stampa attivi per le stampanti disponibili. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Credenziali per la stampa con Google Cloud Print. PrintTestDescprintgcp=Lista delle stampanti Google Cloud Print. diff --git a/htdocs/langs/it_IT/productbatch.lang b/htdocs/langs/it_IT/productbatch.lang index 6a8d5ab3241..6ba45e7245c 100644 --- a/htdocs/langs/it_IT/productbatch.lang +++ b/htdocs/langs/it_IT/productbatch.lang @@ -17,8 +17,8 @@ printEatby=Consumare entro: %s printSellby=Da vendere entro: %s printQty=Quantità: %d AddDispatchBatchLine=Aggiungi una riga per la durata a scaffale -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic increase/decrease stock mode is forced to shipping validate and manual dispatching for reception and can't be edited. Other options can be defined as you want. +WhenProductBatchModuleOnOptionAreForced=Con il modulo lotto/numero di serie attivo, la modalità di incremento/riduzione delle scorte è bloccata sull'ultima scelta effettuata e non può essere modificata. Le altre opzioni possono essere configurate a piacimento. ProductDoesNotUseBatchSerial=Questo prodotto non usa lotto/numero di serie -ProductLotSetup=Setup of module lot/serial -ShowCurrentStockOfLot=Show current stock for couple product/lot -ShowLogOfMovementIfLot=Show log of movements for couple product/lot +ProductLotSetup=Configurazione del modulo lotto/numero di serie +ShowCurrentStockOfLot=Mostra la scorta disponibile per la coppia prodotto/lotto +ShowLogOfMovementIfLot=Mostra il log dei movimenti per la coppia prodotto/lotto diff --git a/htdocs/langs/it_IT/products.lang b/htdocs/langs/it_IT/products.lang index bb9cd4f3252..38d7712c294 100644 --- a/htdocs/langs/it_IT/products.lang +++ b/htdocs/langs/it_IT/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Codice contabile (vendita) ProductOrService=Prodotto o servizio ProductsAndServices=Prodotti e Servizi ProductsOrServices=Prodotti o servizi -ProductsOnSell=Prodotto per la vendita o per l'acquisto -ProductsNotOnSell=Prodotto non in vendita e non per l'acquisto +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Prodotti in vendita e acquistabili -ServicesOnSell=Servizi in vendita o acquistabili -ServicesNotOnSell=Servizi non in vendita e non acquistabili +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Servizi in vendita e acquistabili LastModifiedProductsAndServices=Ultimi %s prodotti/servizi modificati LastRecordedProducts=Ultimi %s prodotti registrati @@ -59,8 +61,8 @@ AppliedPricesFrom=Prezzi applicati a partire da SellingPrice=Prezzo di vendita SellingPriceHT=Prezzo di vendita (al netto delle imposte) SellingPriceTTC=Prezzo di vendita (inclusa IVA) -CostPriceDescription=This price (net of tax) can be used to store the average amount this product cost to your company. It may be any price you calculate yourself, for example from the average buying price plus average production and distribution cost. -CostPriceUsage=This value could be used for margin calculation. +CostPriceDescription=Questo prezzo (al netto delle tasse) può essere utilizzato per memorizzare il costo medio del prodotto per l'azienda. Può essere un prezzo calcolato allo scopo, per esempio come il prezzo medio di acquisto più il costo medio di produzione e distribuzione. +CostPriceUsage=Questo valore può essere utilizzato per il calcolo del margine. SoldAmount=Quantità venduta PurchasedAmount=Quantità acquistata NewPrice=Nuovo prezzo @@ -89,7 +91,7 @@ SetDefaultBarcodeType=Imposta tipo di codice a barre BarcodeValue=Valore codice a barre NoteNotVisibleOnBill=Nota (non visibile su fatture, proposte ...) ServiceLimitedDuration=Se il prodotto è un servizio di durata limitata: -MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment) +MultiPricesAbility=Diversi livelli di prezzo per prodotto/servizio (ogni livello è riferito ad un cliente) MultiPricesNumPrices=Numero di prezzi per il multi-prezzi AssociatedProductsAbility=Attiva la funzione per gestire i prodotti virtuali AssociatedProducts=Prodotti associati @@ -142,7 +144,7 @@ ConfirmCloneProduct=Vuoi davvero clonare il prodotto / servizio %s ? CloneContentProduct=Clona tutte le principali informazioni del prodotto/servizio ClonePricesProduct=Clona principali informazioni e prezzi CloneCompositionProduct=Clona prodotto / servizio pacchetto -CloneCombinationsProduct=Clone product variants +CloneCombinationsProduct=Clona varianti di prodotto ProductIsUsed=Questo prodotto è in uso NewRefForClone=Rif. del nuovo prodotto/servizio SellingPrices=Prezzi di vendita @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litro l=L +unitP=Piece +unitSET=Set +unitS=Secondo +unitH=Ora +unitD=Giorno +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Template di rif. prodotto ServiceCodeModel=Template di rif. servizio CurrentProductPrice=Prezzo corrente @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produci ProductsMultiPrice=Products and prices for each price segment @@ -203,12 +218,12 @@ PrintsheetForOneBarCode=Stampa più etichette per singolo codice a barre BuildPageToPrint=Genera pagina da stampare FillBarCodeTypeAndValueManually=Riempi il tipo di codice a barre e il valore manualmente FillBarCodeTypeAndValueFromProduct=Riempi il tipo di codice a barre e valore dal codice a barre del prodotto -FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. +FillBarCodeTypeAndValueFromThirdParty=Riempi il tipo di codice a barre e il valore da un codice a barre di terze parti DefinitionOfBarCodeForProductNotComplete=La definizione del tipo o del valore del codice a barre non è completa per il prodotto %s. -DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s. +DefinitionOfBarCodeForThirdpartyNotComplete=La definizione del tipo o valore del codice a barre non è completa per la terza parte %s. BarCodeDataForProduct=Informazioni codice a barre del prodotto %s : -BarCodeDataForThirdparty=Barcode information of third party %s : -ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) +BarCodeDataForThirdparty=Informazioni codice a barre della terza parte %s : +ResetBarcodeForAllRecords=Definisci il valore del codice a barre per tutti quelli inseriti (questo resetta anche i valori già definiti dei codice a barre con nuovi valori) PriceByCustomer=Prezzi diversi in base al cliente PriceCatalogue=Prezzo singolo di vendita per prodotto/servizio PricingRule=Reogle dei prezzi di vendita @@ -232,14 +247,20 @@ ComposedProduct=Sottoprodotto MinSupplierPrice=Prezzo fornitore minimo MinCustomerPrice=Minimo prezzo di vendita DynamicPriceConfiguration=Configurazione dinamica dei prezzi -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Variabili globali -VariableToUpdate=Variable to update +VariableToUpdate=Variabile da aggiornare GlobalVariableUpdaters=Aggiornamento variabili globali +GlobalVariableUpdaterType0=Dati JSON +GlobalVariableUpdaterHelp0=Esegue il parsing dei dati JSON da uno specifico indirizzo URL, VALUE (valore) specifica la posizione di valori rilevanti +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Dati del WebService +GlobalVariableUpdaterHelp1=Effettua il parsing dei dati del WebService da uno specifico indirizzo URL.\nNS: il namespace\nVALUE: la posizione di dati rilevanti\nDATA: contiene i dati da inviare\nMETHOD: il metodo WS da richiamare +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Frequenza di aggiornamento (in minuti) -LastUpdated=Latest update +LastUpdated=Ultimo aggiornamento CorrectlyUpdated=Aggiornato correttamente PropalMergePdfProductActualFile=I file utilizzano per aggiungere in PDF Azzurra sono / è PropalMergePdfProductChooseFile=Selezionare i file PDF @@ -259,7 +280,9 @@ VolumeUnits=Unità di volume SizeUnits=Unità di misura DeleteProductBuyPrice=Cancella prezzo di acquisto ConfirmDeleteProductBuyPrice=Vuoi davvero eliminare questo prezzo di acquisto? -SubProduct=Sub product +SubProduct=Sottoprodotto +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/it_IT/propal.lang b/htdocs/langs/it_IT/propal.lang index e94794c1ec8..d29182243c0 100644 --- a/htdocs/langs/it_IT/propal.lang +++ b/htdocs/langs/it_IT/propal.lang @@ -28,7 +28,7 @@ ShowPropal=Visualizza proposta PropalsDraft=Bozze PropalsOpened=Aperto PropalStatusDraft=Bozza (deve essere convalidata) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Convalidata (proposta aperta) PropalStatusSigned=Firmata (da fatturare) PropalStatusNotSigned=Non firmata (chiuso) PropalStatusBilled=Fatturata diff --git a/htdocs/langs/it_IT/resource.lang b/htdocs/langs/it_IT/resource.lang index c0b3a6f6446..a75d8df6242 100644 --- a/htdocs/langs/it_IT/resource.lang +++ b/htdocs/langs/it_IT/resource.lang @@ -20,8 +20,8 @@ ShowResource=Mostra risorsa ResourceElementPage=Risorse dell'elemento ResourceCreatedWithSuccess=Risorsa creata con successo -RessourceLineSuccessfullyDeleted=Resource line successfully deleted -RessourceLineSuccessfullyUpdated=Resource line successfully updated +RessourceLineSuccessfullyDeleted=Riga di risorsa eliminata correttamente +RessourceLineSuccessfullyUpdated=Riga di risorsa aggiornata correttamente ResourceLinkedWithSuccess=Risorsa collegata con successo ConfirmDeleteResource=Conferma l'eliminazione di questa risorsa @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Risorsa eliminata con successo DictionaryResourceType=Tipo di risorse SelectResource=Seleziona risorsa + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Risorse diff --git a/htdocs/langs/it_IT/salaries.lang b/htdocs/langs/it_IT/salaries.lang index 3efc73ad837..a85e06ebc55 100644 --- a/htdocs/langs/it_IT/salaries.lang +++ b/htdocs/langs/it_IT/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Codice di contabilità per i pagamenti dei salari -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Codice di contabilità per oneri finanziari +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Stipendio Salaries=Stipendi NewSalaryPayment=Nuovo pagamento stipendio diff --git a/htdocs/langs/it_IT/sendings.lang b/htdocs/langs/it_IT/sendings.lang index fc587287d56..eed3a3d3255 100644 --- a/htdocs/langs/it_IT/sendings.lang +++ b/htdocs/langs/it_IT/sendings.lang @@ -10,7 +10,7 @@ Receivings=Ricevuta di consegna SendingsArea=Sezione spedizioni ListOfSendings=Elenco delle spedizioni SendingMethod=Metodo di invio -LastSendings=Latest %s shipments +LastSendings=Ultime %s spedizioni StatisticsOfSendings=Statistiche spedizioni NbOfSendings=Numero di spedizioni NumberOfShipmentsByMonth=Numero di spedizioni per mese @@ -18,13 +18,13 @@ SendingCard=Scheda spedizione NewSending=Nuova spedizione CreateShipment=Crea una spedizione QtyShipped=Quantità spedita -QtyPreparedOrShipped=Qty prepared or shipped +QtyPreparedOrShipped=Q.ta preparata o spedita QtyToShip=Quantità da spedire QtyReceived=Quantità ricevuta -QtyInOtherShipments=Qty in other shipments +QtyInOtherShipments=Q.ta in altre spedizioni KeepToShip=Ancora da spedire OtherSendingsForSameOrder=Altre Spedizioni per questo ordine -SendingsAndReceivingForSameOrder=Shipments and receipts for this order +SendingsAndReceivingForSameOrder=Spedizioni e ricezioni per questo ordini SendingsToValidate=Spedizione da convalidare StatusSendingCanceled=Annullato StatusSendingDraft=Bozza @@ -35,15 +35,14 @@ StatusSendingValidatedShort=Convalidata StatusSendingProcessedShort=Processato SendingSheet=Documento di spedizione ConfirmDeleteSending=Sei sicuro di voler eliminare questa spedizione? -ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? -ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Modello semplice di documento +ConfirmValidateSending=Sei sicuro di voler convalidare questa spedizioni con il riferimento %s? +ConfirmCancelSending=Sei sicuro di voler eliminar questa spedizione? DocumentModelMerou=Merou modello A5 WarningNoQtyLeftToSend=Attenzione, non sono rimasti prodotti per la spedizione. StatsOnShipmentsOnlyValidated=Statistiche calcolate solo sulle spedizioni convalidate. La data è quella di conferma spedizione (la data di consegna prevista non è sempre conosciuta). DateDeliveryPlanned=Data prevista di consegna -RefDeliveryReceipt=Ref delivery receipt -StatusReceipt=Status delivery receipt +RefDeliveryReceipt=Rif. ricevuta di consegna +StatusReceipt=Stato ricevuta di consegna DateReceived=Data di consegna ricevuto SendShippingByEMail=Invia spedizione via EMail SendShippingRef=Invio della spedizione %s @@ -51,13 +50,13 @@ ActionsOnShipping=Acions sulla spedizione LinkToTrackYourPackage=Link a monitorare il tuo pacchetto ShipmentCreationIsDoneFromOrder=Per il momento, la creazione di una nuova spedizione viene effettuata dalla scheda dell'ordine. ShipmentLine=Filiera di spedizione -ProductQtyInCustomersOrdersRunning=Quantità di prodotti in ordini clienti aperti -ProductQtyInSuppliersOrdersRunning=Quantità di prodotti in ordini fornitori aperti -ProductQtyInShipmentAlreadySent=Quantità di prodotti da ordini clienti aperti già spediti -ProductQtyInSuppliersShipmentAlreadyRecevied=Quantità di prodotti da ordini fornitori aperti già ricevuti +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Nessun prodotto da spedire presente all'interno del magazzino %s -WeightVolShort=Weight/Vol. -ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. +WeightVolShort=Peso/Vol. +ValidateOrderFirstBeforeShipment=È necessario convalidare l'ordine prima di poterlo spedire # Sending methods # ModelDocument diff --git a/htdocs/langs/it_IT/stocks.lang b/htdocs/langs/it_IT/stocks.lang index f0fa48ccc0f..b329e2f683d 100644 --- a/htdocs/langs/it_IT/stocks.lang +++ b/htdocs/langs/it_IT/stocks.lang @@ -2,7 +2,7 @@ WarehouseCard=Scheda Magazzino Warehouse=Magazzino Warehouses=Magazzini -ParentWarehouse=Parent warehouse +ParentWarehouse=Magazzino principale NewWarehouse=Nuovo magazzino/deposito WarehouseEdit=Modifica magazzino MenuNewWarehouse=Nuovo Magazzino @@ -23,18 +23,18 @@ ErrorWarehouseRefRequired=Riferimento magazzino mancante ListOfWarehouses=Elenco magazzini ListOfStockMovements=Elenco movimenti delle scorte StockMovementForId=Movement ID %d -ListMouvementStockProject=List of stock movements associated to project +ListMouvementStockProject=Elenco dei movimenti delle scorte associati al progetto StocksArea=Area magazzino e scorte Location=Ubicazione LocationSummary=Ubicazione abbreviata NumberOfDifferentProducts=Numero di differenti prodotti NumberOfProducts=Numero totale prodotti -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Ultimo movimento +LastMovements=Ultimi movimenti Units=Unità Unit=Unità StockCorrection=Variazione manuale scorte -StockTransfer=Transfer stock +StockTransfer=Trasferimento scorte MassStockTransferShort=Trasferimento di massa magazzino StockMovement=Movimento scorte StockMovements=Movimenti scorte @@ -42,7 +42,7 @@ LabelMovement=Etichetta del movimento NumberOfUnit=Numero di unità UnitPurchaseValue=Prezzo unitario StockTooLow=Scorte insufficienti -StockLowerThanLimit=Magazzino sotto la soglia di allerta +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Incremento valore PMPValue=Media ponderata prezzi PMPValueShort=MPP @@ -53,7 +53,7 @@ IndependantSubProductStock=Le scorte del prodotto e del sottoprodotto sono indip QtyDispatched=Quantità ricevuta QtyDispatchedShort=Q.ta ricevuta QtyToDispatchShort=Q.ta da ricevere -OrderDispatch=Ricezione dell'ordine +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Regola per la gestione delle scorte automatica diminuzione (la diminuzione manuale è sempre possibile, anche se si attiva una regola automatica diminuzione) RuleForStockManagementIncrease=Regola per aumento automatico la gestione delle scorte (l'aumento manuale è sempre possibile, anche se si attiva una regola automatica incremento) DeStockOnBill=Riduci scorte effettive all'emissione della fattura/nota di credito @@ -62,16 +62,19 @@ DeStockOnShipment=Diminuire stock reali sulla validazione di spedizione DeStockOnShipmentOnClosing=Diminuire stock reali alla chiusura della spedizione ReStockOnBill=Incrementa scorte effettive alla fattura/nota di credito ReStockOnValidateOrder=Aumenta scorte effettive alla convalida dell'ordine -ReStockOnDispatchOrder=Incrementa scorte effettive alla consegna manuale in magazzino, dopo il ricevimento dell'ordine fornitore +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Lo stato dell'ordine non ne consente la spedizione dei prodotti a magazzino. -StockDiffPhysicTeoric=Motivo della differenza tra scorte effettive e teoriche +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Per l'oggetto non ci sono prodotti predefiniti. Quindi non è necessario alterare le scorte. DispatchVerb=Spedizione StockLimitShort=Limite per segnalazioni StockLimit=Limite minimo scorte (per gli avvisi) PhysicalStock=Scorte fisiche RealStock=Scorte reali +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Scorte virtuali +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id magazzino DescWareHouse=Descrizione magazzino LieuWareHouse=Ubicazione magazzino @@ -92,15 +95,15 @@ SelectWarehouseForStockDecrease=Scegli magazzino da utilizzare per la riduzione SelectWarehouseForStockIncrease=Scegli magazzino da utilizzare per l'aumento delle scorte NoStockAction=Nessuna azione su queste scorte DesiredStock=Scorte ottimali desiderate -DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature. +DesiredStockDesc=Questa quantità sarà il valore utilizzato per rifornire il magazzino mediante la funzione di rifornimento. StockToBuy=Da ordinare Replenishment=Rifornimento ReplenishmentOrders=Ordini di rifornimento -VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical + current orders) may differ +VirtualDiffersFromPhysical=In relazione alle opzioni di incremento/riduzione, le scorte fisiche e quelle virtuali (fisiche - ordini clienti + ordini fornitori) potrebbero differire UseVirtualStockByDefault=Utilizza scorte virtuali come default, invece delle scorte fisiche, per la funzione di rifornimento UseVirtualStock=Usa scorte virtuale UsePhysicalStock=Usa giacenza fisica -CurentSelectionMode=Current selection mode +CurentSelectionMode=Modalità di selezione corrente CurentlyUsingVirtualStock=Giacenza virtuale CurentlyUsingPhysicalStock=Giacenza fisica RuleForStockReplenishment=Regola per il rifornimento delle scorte @@ -110,13 +113,13 @@ WarehouseForStockDecrease=Il magazzino %s sarà usato per la diminuzione WarehouseForStockIncrease=Il magazzino %s sarà usato per l'aumento delle scorte ForThisWarehouse=Per questo magazzino ReplenishmentStatusDesc=Questa è una lista di tutti i prodotti con una giacenza inferiore a quella desiderata (o inferiore al valore di allarme se la casella "solo allarme" è selezionata). Utilizzando la casella di controllo, è possibile creare ordini fornitori per colmare la differenza. -ReplenishmentOrdersDesc=This is a list of all open supplier orders including predefined products. Only open orders with predefined products, so orders that may affect stocks, are visible here. +ReplenishmentOrdersDesc=Questa è una lista di tutti gli ordini ai fornitori aperti che includono prodotti predefiniti. Vengono visualizzati solo gli ordini aperti comprendenti prodotti predefiniti, e che possono quindi influire sulle scorte. Replenishments=Rifornimento NbOfProductBeforePeriod=Quantità del prodotto %s in magazzino prima del periodo selezionato (< %s) NbOfProductAfterPeriod=Quantità del prodotto %s in magazzino dopo il periodo selezionato (< %s) MassMovement=Movimentazione di massa SelectProductInAndOutWareHouse=Seleziona un prodotto, una quantità, un magazzino di origine ed uno di destinazione, poi clicca "%s". Una volta terminato, per tutte le movimentazioni da effettuare, clicca su "%s". -RecordMovement=Registra trasferimento +RecordMovement=Record transfer ReceivingForSameOrder=Ricevuta per questo ordine StockMovementRecorded=Movimentazione di scorte registrata RuleForStockAvailability=Regole sulla fornitura delle scorte @@ -134,8 +137,8 @@ MovementTransferStock=Trasferisci scorte del prodotto %s in un altro magazzino InventoryCodeShort=Codice di inventario o di spostamento NoPendingReceptionOnSupplierOrder=No pending reception due to open supplier order ThisSerialAlreadyExistWithDifferentDate=Questo lotto/numero seriale (%s) esiste già con una differente data di scadenza o di validità (trovata %s, inserita %s ) -OpenAll=Open for all actions -OpenInternal=Open only for internal actions +OpenAll=Aperto per tutte le azioni +OpenInternal=Aperto per le azioni interne UseDispatchStatus=Use a dispatch status (approve/refuse) for product lines on supplier order reception OptionMULTIPRICESIsOn=Option "several prices per segment" is on. It means a product has several selling price so value for sell can't be calculated ProductStockWarehouseCreated=Stock limit for alert and desired optimal stock correctly created @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Modifica +inventoryValidate=Convalidato +inventoryDraft=In corso +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Crea +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filtro categoria +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Aggiungi +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Elimina riga +RegulateStock=Regulate Stock +ListInventory=Elenco diff --git a/htdocs/langs/it_IT/stripe.lang b/htdocs/langs/it_IT/stripe.lang new file mode 100644 index 00000000000..bf322a73308 --- /dev/null +++ b/htdocs/langs/it_IT/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Puoi utilizzare i seguenti indirizzi per permettere ai clienti di effettuare pagamenti su Dolibarr +PaymentForm=Forma di pagamento +WelcomeOnPaymentPage=Benvenuti sul nostro servizio di pagamento online +ThisScreenAllowsYouToPay=Questa schermata consente di effettuare un pagamento online su %s. +ThisIsInformationOnPayment=Informazioni sul pagamento da effettuare +ToComplete=Per completare +YourEMail=Email per la conferma del pagamento +STRIPE_PAYONLINE_SENDEMAIL=Email di avviso dopo un pagamento (a buon fine o no) +Creditor=Creditore +PaymentCode=Codice pagamento +StripeDoPayment=Vai al pagamento +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Successivo +ToOfferALinkForOnlinePayment=URL per il pagamento %s +ToOfferALinkForOnlinePaymentOnOrder=URL per il pagamento %s di un ordine +ToOfferALinkForOnlinePaymentOnInvoice=URL per il pagamento %s di una fattura +ToOfferALinkForOnlinePaymentOnContractLine=URL per il pagamento %s di una riga di contratto +ToOfferALinkForOnlinePaymentOnFreeAmount=URL per il pagamento %s di un importo +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL per il pagamento %s dell'adesione di un membro +YouCanAddTagOnUrl=Puoi anche aggiungere a qualunque di questi url il parametro &tag=value (richiesto solo per il pagamento gratuito) per aggiungere una tag con un tuo commento. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Il pagamento è stato registrato. Grazie. +YourPaymentHasNotBeenRecorded=Il pagamento non è stato registrato e la transazione è stata annullata. Grazie. +AccountParameter=Dati account +UsageParameter=Parametri d'uso +InformationToFindParameters=Aiuto per trovare informazioni sul tuo account %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nome del venditore +CSSUrlForPaymentForm=URL del foglio di stile CSS per il modulo di pagamento +MessageOK=Messaggio sulla pagina di pagamento convalidato +MessageKO=Messaggio sulla pagina di pagamento annullato +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/it_IT/supplier_proposal.lang b/htdocs/langs/it_IT/supplier_proposal.lang index 39c753e7919..aa2dc75fa29 100644 --- a/htdocs/langs/it_IT/supplier_proposal.lang +++ b/htdocs/langs/it_IT/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Cerca quotazione DraftRequests=Quotazioni in bozza SupplierProposalsDraft=Bozza di proposta fornitore LastModifiedRequests=Ultime %s richieste di quotazione modificate -RequestsOpened=Opened price requests +RequestsOpened=Apri richieste di quotazione SupplierProposalArea=Area proposte commerciali fornitori SupplierProposalShort=Proposta fornitore SupplierProposals=Proposte Fornitore @@ -23,7 +23,7 @@ ConfirmValidateAsk=Vuoi davvero convalidare la richiesta di quotazione con il no DeleteAsk=Elimina richiesta ValidateAsk=Convalida richiesta SupplierProposalStatusDraft=Bozza (deve essere convalidata) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Convalidata (quotazione aperta) SupplierProposalStatusClosed=Chiusa SupplierProposalStatusSigned=Accettata SupplierProposalStatusNotSigned=Rifiutata @@ -47,7 +47,7 @@ CommercialAsk=Richiesta quotazione DefaultModelSupplierProposalCreate=Creazione del modello predefinito DefaultModelSupplierProposalToBill=Template predefinito quando si chiude una richiesta di quotazione (accettata) DefaultModelSupplierProposalClosed=Template predefinito quando si chiude una richiesta di quotazione (rifiutata) -ListOfSupplierProposal=Elenco delle richieste di quotazione ai fornitori +ListOfSupplierProposals=Elenco delle richieste di quotazione ai fornitori ListSupplierProposalsAssociatedProject=Elenco delle richieste di quotazione fornitori associate al progetto SupplierProposalsToClose=Proposta fornitore da elaborare SupplierProposalsToProcess=Proposta fornitori da elaborare diff --git a/htdocs/langs/it_IT/suppliers.lang b/htdocs/langs/it_IT/suppliers.lang index 682d735afa4..028312f3463 100644 --- a/htdocs/langs/it_IT/suppliers.lang +++ b/htdocs/langs/it_IT/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Totale dei prezzi di vendita dei sotto-prodotti SomeSubProductHaveNoPrices=Per alcuni sottoprodotti non è stato definito un prezzo AddSupplierPrice=Aggiungi prezzo di acquisto ChangeSupplierPrice=Cambia prezzo di acquisto +SupplierPrices=Prezzi di acquisto ReferenceSupplierIsAlreadyAssociatedWithAProduct=Il fornitore di riferimento è già associato a un prodotto: %s NoRecordedSuppliers=Non ci sono fornitori registrati SupplierPayment=Pagamento fornitore @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Cattiva qualità ReputationForThisProduct=Reputazione BuyerName=Nome acquirente AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Prezzi di acquisto diff --git a/htdocs/langs/it_IT/trips.lang b/htdocs/langs/it_IT/trips.lang index b8dbd9ea871..b70c83e206b 100644 --- a/htdocs/langs/it_IT/trips.lang +++ b/htdocs/langs/it_IT/trips.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - trips ExpenseReport=Nota spese ExpenseReports=Note spese -ShowExpenseReport=Show expense report +ShowExpenseReport=Mostra note spese Trips=Note spese TripsAndExpenses=Note spese TripsAndExpensesStatistics=Statistiche note spese @@ -9,19 +9,29 @@ TripCard=Scheda nota spese AddTrip=Crea nota spese ListOfTrips=Lista delle note spese ListOfFees=Elenco delle tariffe -TypeFees=Types of fees -ShowTrip=Show expense report +TypeFees=Tipi di imposte +ShowTrip=Mostra note spese NewTrip=Nuova nota spese -CompanyVisited=Società/Fondazione visitata +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Tariffa kilometrica o importo DeleteTrip=Elimina nota spese -ConfirmDeleteTrip=Are you sure you want to delete this expense report? +ConfirmDeleteTrip=Vuoi davvero eliminare questa nota spese? ListTripsAndExpenses=Lista delle note spese ListToApprove=In attesa di approvazione ExpensesArea=Area note spese ClassifyRefunded=Classifica come "Rimborsata" ExpenseReportWaitingForApproval=È stata inserita una nuova nota spese da approvare ExpenseReportWaitingForApprovalMessage=È stata inserita una nuova nota spese da approvare.\n- Utente: %s\n- Periodo: %s\nClicca qui per approvarla: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=ID nota spese AnyOtherInThisListCanValidate=Persona da informare per la convalida TripSociete=Informazioni azienda @@ -48,9 +58,9 @@ ModePaiement=Modalità di pagamento VALIDATOR=Utente responsabile per l'approvazione VALIDOR=Approvata da AUTHOR=Registrata da -AUTHORPAIEMENT=Paid by +AUTHORPAIEMENT=Pagata da REFUSEUR=Rifiutata da -CANCEL_USER=Deleted by +CANCEL_USER=Cancellata da MOTIF_REFUS=Motivo MOTIF_CANCEL=Motivo @@ -59,31 +69,24 @@ DATE_REFUS=Rifiutata in data DATE_SAVE=Convalidata in data DATE_CANCEL=Eliminata in data DATE_PAIEMENT=Liquidata in data - BROUILLONNER=Riapri +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Convalida e proponi per l'approvazione -ValidatedWaitingApproval=Validated (waiting for approval) - +ValidatedWaitingApproval=Convalidata (in attesa di approvazione) NOT_AUTHOR=Non sei l'autore di questa nota spese. Operazione annullata. - -ConfirmRefuseTrip=Are you sure you want to deny this expense report? - +ConfirmRefuseTrip=Vuoi davvero rifiutare questa nota spese? ValideTrip=Approva la nota spese -ConfirmValideTrip=Are you sure you want to approve this expense report? - +ConfirmValideTrip=Vuoi davvero approvare questa nota spese? PaidTrip=Liquida una nota spese -ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - -ConfirmCancelTrip=Are you sure you want to cancel this expense report? - -BrouillonnerTrip=Move back expense report to status "Draft" -ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - +ConfirmPaidTrip=Vuoi davvero modificare lo stato di questa nota spese in "liquidata"? +ConfirmCancelTrip=Vuoi davvero eliminare questa nota spese? +BrouillonnerTrip=Riporta la nota spese allo stato di "bozza" +ConfirmBrouillonnerTrip=Vuoi davvero riportare questa nota spese allo stato "bozza"? SaveTrip=Convalida la nota spese -ConfirmSaveTrip=Are you sure you want to validate this expense report? - +ConfirmSaveTrip=Vuoi davvero convalidare questa nota spese? NoTripsToExportCSV=Nessuna nota spese da esportare per il periodo -ExpenseReportPayment=Expense report payment - +ExpenseReportPayment=Pagamento nota spese ExpenseReportsToApprove=Note spese da approvare -ExpenseReportsToPay=Expense reports to pay +ExpenseReportsToPay=Note spese da pagare +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Vuoi davvero clonare questa nota spese? diff --git a/htdocs/langs/it_IT/users.lang b/htdocs/langs/it_IT/users.lang index e8997d87703..2be37952b74 100644 --- a/htdocs/langs/it_IT/users.lang +++ b/htdocs/langs/it_IT/users.lang @@ -66,8 +66,8 @@ InternalUser=Utente interno ExportDataset_user_1=Utenti e proprietà di Dolibarr DomainUser=Utente di dominio %s Reactivate=Riattiva -CreateInternalUserDesc=Questo modulo ti permette di creare un utente interno alla tua azienda/fondazione. Per creare un utente esterno (clienti, fornitori, .. ) utilizza il bottone 'Crea utente' nella scheda soggetti terzi. -InternalExternalDesc=Un utente interno è un utente che fa parte della vostra Azienda/Fondazione.
Un utente esterno è un cliente, un fornitore o altro.

In entrambi i casi, le autorizzazioni definiscono i diritti all'interno di Dolibarr. Ad un utente esterno si può assegnare un gestore dei menu diverso (vedi Home - Impostazioni - Visualizzazione). +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Autorizzazioni ereditate dall'appartenenza al gruppo. Inherited=Ereditato UserWillBeInternalUser=L'utente sarà un utente interno (in quanto non collegato a un soggetto terzo) diff --git a/htdocs/langs/it_IT/website.lang b/htdocs/langs/it_IT/website.lang index 02ca20cb31f..c352320dfcf 100644 --- a/htdocs/langs/it_IT/website.lang +++ b/htdocs/langs/it_IT/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Sei sicuro di vole cancellare questo sito web? Anche tutte WEBSITE_PAGENAME=Titolo/alias della pagina WEBSITE_CSS_URL=Indirizzo URL del file CSS esterno WEBSITE_CSS_INLINE=Codice CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Libreria media EditCss=Modifica stile/CSS EditMenu=Modifica menu @@ -14,8 +15,9 @@ EditPageContent=Modifica contenuti Website=Sito web Webpage=Web page AddPage=Aggiungi pagina +HomePage=Home Page PreviewOfSiteNotYetAvailable=L'anteprima del sito %s non è ancora disponibile. Devi prima aggiungere almeno una pagina. -RequestedPageHasNoContentYet=La pagina con id %s richiesta è ancora vuota o il file di cache .tpl.php è stato eliminato. Per risolvere il problema puoi modificare il contenuto della pagina. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Pagina '%s' del sito %s cancellata PageAdded=Pagina '%s' aggiunta ViewSiteInNewTab=Visualizza sito in una nuova scheda @@ -23,6 +25,7 @@ ViewPageInNewTab=Visualizza pagina in una nuova scheda SetAsHomePage=Imposta come homepage RealURL=Indirizzo URL vero ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/it_IT/withdrawals.lang b/htdocs/langs/it_IT/withdrawals.lang index 3137c31fafd..e8bf3bbfaf1 100644 --- a/htdocs/langs/it_IT/withdrawals.lang +++ b/htdocs/langs/it_IT/withdrawals.lang @@ -2,11 +2,11 @@ CustomersStandingOrdersArea=Direct debit payment orders area SuppliersStandingOrdersArea=Direct credit payment orders area StandingOrders=Direct debit payment orders -StandingOrder=Direct debit payment order +StandingOrder=Domiciliazione bancaria NewStandingOrder=New direct debit order StandingOrderToProcess=Da processare WithdrawalsReceipts=Ordini di addebito diretto -WithdrawalReceipt=Direct debit order +WithdrawalReceipt=Ordine di addebito diretto LastWithdrawalReceipts=Latest %s direct debit files WithdrawalsLines=Direct debit order lines RequestStandingOrderToTreat=Request for direct debit payment order to process @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Importo da prelevare WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Non ci sono fatture attive in attesa con modalità di pagamento "domiciliazione". +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Utente responsabile WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Motivo del rifiuto RefusedInvoicing=Fatturazione rifiutata NoInvoiceRefused=Non ricaricare il rifiuto InvoiceRefused=Fattura rifiutata (Addebitare il costo al cliente) +StatusDebitCredit=Status debit/credit StatusWaiting=In attesa StatusTrans=Trasmesso StatusCredited=Accreditato diff --git a/htdocs/langs/ja_JP/accountancy.lang b/htdocs/langs/ja_JP/accountancy.lang index 7d0d21f1255..be989d84b1e 100644 --- a/htdocs/langs/ja_JP/accountancy.lang +++ b/htdocs/langs/ja_JP/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=販売 AccountingJournalType3=購入 AccountingJournalType4=バンク +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/ja_JP/admin.lang b/htdocs/langs/ja_JP/admin.lang index ad4015ee27e..7c9ac4da083 100644 --- a/htdocs/langs/ja_JP/admin.lang +++ b/htdocs/langs/ja_JP/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=カマキリ Module1200Desc=カマキリの統合 Module1400Name=会計 -Module1400Desc=会計管理(二者) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=ペイパル Module50200Desc=Paypalとクレジットカードによるオンライン決済のページを提供するモジュール Module50400Name=Accounting (advanced) -Module50400Desc=会計管理(二者) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/ja_JP/agenda.lang b/htdocs/langs/ja_JP/agenda.lang index 0b440e083f0..7dc852ff688 100644 --- a/htdocs/langs/ja_JP/agenda.lang +++ b/htdocs/langs/ja_JP/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=イベント Agenda=議題 +TMenuAgenda=議題 Agendas=アジェンダ LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=注文%sは、検証 @@ -73,13 +75,17 @@ InterventionSentByEMail=電子メールで送信介入%s ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=開始日 DateActionEnd=終了日 AgendaUrlOptions1=また、出力をフィルタリングするには、次のパラメータを追加することができます。 -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=ユーザー%sに影響を受けたアクションに出力を制限するlogint = %s。 +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/ja_JP/banks.lang b/htdocs/langs/ja_JP/banks.lang index 77d477b49e5..8c3b589249b 100644 --- a/htdocs/langs/ja_JP/banks.lang +++ b/htdocs/langs/ja_JP/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=トランザクションID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=調整する Conciliation=和解 ReconciliationLate=Reconciliation late IncludeClosedAccount=閉じたアカウントを含める -OnlyOpenedAccount=唯一開かれたアカウント +OnlyOpenedAccount=Only open accounts AccountToCredit=クレジットのアカウント AccountToDebit=振替にアカウント DisableConciliation=このアカウントのための調整機能を無効にする ConciliationDisabled=和解の機能が無効になって LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=開かれた +StatusAccountOpened=開く StatusAccountClosed=閉じ AccountIdShort=数 LineRecord=トランザクション @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ja_JP/bills.lang b/htdocs/langs/ja_JP/bills.lang index 7a066164acb..6a8c56531e6 100644 --- a/htdocs/langs/ja_JP/bills.lang +++ b/htdocs/langs/ja_JP/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=標準の請求書 InvoiceStandardAsk=標準の請求書 InvoiceStandardDesc=請求書のこの種の一般的な請求書です。 -InvoiceDeposit=預金請求書 -InvoiceDepositAsk=預金請求書 -InvoiceDepositDesc=預金を受信したときに請求書この種のが行われます。 +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=見積送り状 InvoiceProFormaAsk=見積送り状 InvoiceProFormaDesc=プロフォーマインボイスは、請求書のイメージですが、どんな会計の値を持っていません。 @@ -62,7 +62,7 @@ PaymentsBack=背中の支払い paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=支払いを削除します。 -ConfirmDeletePayment=この支払いを削除してもよろしいですか? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=仕入先の支払 ReceivedPayments=受け取った支払い @@ -115,7 +115,7 @@ BillStatus=請求書の状況 StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=ドラフト(検証する必要があります) BillStatusPaid=有料 -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=(最終的な請求書の準備ができて)支払わ BillStatusCanceled=放棄された BillStatusValidated=(お支払いする必要があります)を検証 @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=有料(一部) BillShortStatusDraft=ドラフト BillShortStatusPaid=有料 BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=処理 +BillShortStatusConverted=有料 BillShortStatusCanceled=放棄された BillShortStatusValidated=検証 BillShortStatusStarted=開始 @@ -198,12 +198,12 @@ ShowBill=請求書を表示する ShowInvoice=請求書を表示する ShowInvoiceReplace=請求書を交換見せる ShowInvoiceAvoir=クレジットメモを表示する -ShowInvoiceDeposit=預金請求書を表示する +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=支払を表示する AlreadyPaid=既に支払わ AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=すでに支払った(クレジットメモ、預金なし) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=放棄された RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=相対的な割引 GlobalDiscount=グローバル割引 CreditNote=クレジットメモ CreditNotes=クレジットメモ -Deposit=預金 -Deposits=預金 +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=クレジットノート%sから割引 -DiscountFromDeposit=預金請求書%sからの支払い +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=クレジットこの種のは、その検証の前に請求書に使用することができます CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=支払った分類少なくとも一つの ExpectedToPay=予想される支払い CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=この支払によって支払った -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=を持たないすべての請求書は自動的にステータスが "支払った"に閉鎖され支払うことに残っています。 @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=請求書PDFテンプレートのカニ。完全な請求書テンプレート(テンプレートをおすすめ) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=$ syymm始まる法案はすでに存在し、シーケンスのこのモデルと互換性がありません。それを削除するか、このモジュールを有効にするために名前を変更します。 -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=代表的なフォローアップ顧客の請求書 TypeContact_facture_external_BILLING=顧客の請求書の連絡先 diff --git a/htdocs/langs/ja_JP/bookmarks.lang b/htdocs/langs/ja_JP/bookmarks.lang index 7f03dc2bb3a..6eeaf88107c 100644 --- a/htdocs/langs/ja_JP/bookmarks.lang +++ b/htdocs/langs/ja_JP/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=このページのブックマークに追加する +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=ブックマーク Bookmarks=ブックマーク +ListOfBookmarks=ブックマークのリスト +EditBookmarks=List/edit bookmarks NewBookmark=新しいブックマーク ShowBookmark=ブックマークを表示 OpenANewWindow=新しいウィンドウを開きます @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=新しいウィンドウ BookmarkTargetReplaceWindowShort=現在のウィンドウ BookmarkTitle=ブックマークのタイトル UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=ブックマークを作成します。 SetHereATitleForLink=ブックマークのタイトルを設定する UseAnExternalHttpLinkOrRelativeDolibarrLink=外部のhttp URLまたは相対DolibarrのURLを使用して、 -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=リンクで開いたページを、新しいウィンドウまたは現在のものに表示するかどうかを選択します BookmarksManagement=ブックマークの管理 diff --git a/htdocs/langs/ja_JP/boxes.lang b/htdocs/langs/ja_JP/boxes.lang index be819d394ae..fd49403ac41 100644 --- a/htdocs/langs/ja_JP/boxes.lang +++ b/htdocs/langs/ja_JP/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS情報 BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=提案 LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ja_JP/categories.lang b/htdocs/langs/ja_JP/categories.lang index ae2c59852f7..a5a2a1e6e5a 100644 --- a/htdocs/langs/ja_JP/categories.lang +++ b/htdocs/langs/ja_JP/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=で @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=このカテゴリには、このrefで既に存在し ContentsVisibleByAllShort=すべてから見える内容 ContentsNotVisibleByAllShort=すべてでは表示されない内容 DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=補完的な属性 CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/ja_JP/commercial.lang b/htdocs/langs/ja_JP/commercial.lang index 4564ab559c8..49355ddf7bb 100644 --- a/htdocs/langs/ja_JP/commercial.lang +++ b/htdocs/langs/ja_JP/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=%sとの会談 ShowTask=タスクを表示する ShowAction=イベントを表示 ActionsReport=イベントレポート -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=営業担当者 SalesRepresentatives=営業担当者 SalesRepresentativeFollowUp=営業担当者(フォローアップ) diff --git a/htdocs/langs/ja_JP/companies.lang b/htdocs/langs/ja_JP/companies.lang index 415ccd56d8e..74c17b2546d 100644 --- a/htdocs/langs/ja_JP/companies.lang +++ b/htdocs/langs/ja_JP/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=会社名%sはすでに存在しています。別のいずれかを選択します。 ErrorSetACountryFirst=始めに国を設定する SelectThirdParty=サードパーティを選択します。 -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=この会社と継承されたすべての情報を削除してもよろしいですか? DeleteContact=連絡先を削除 -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=この連絡先と継承されたすべての情報を削除してもよろしいですか? MenuNewThirdParty=新しいサードパーティ MenuNewCustomer=新しい顧客 MenuNewProspect=新しい見通し @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=新しい民間の個々の NewCompany=新会社(見通し、顧客、サプラ​​イヤー) NewThirdParty=新しいサードパーティ(見込み客、顧客、サプラ​​イヤー) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospectionエリア IdThirdParty=IDサードパーティ @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=お客さま ThirdPartyCustomersWithIdProf12=%s %sまたはお持ちのお客様 ThirdPartySuppliers=サプライヤー ThirdPartyType=サードパーティ製のタイプ -Company/Fundation=会社/財団 Individual=私人 ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=親会社 @@ -49,7 +48,7 @@ CivilityCode=礼儀正しさコード RegisteredOffice=登録事務所 Lastname=姓 Firstname=ファーストネーム -PostOrFunction=Job position +PostOrFunction=職位 UserTitle=タイトル Address=アドレス State=州/地方 @@ -66,7 +65,7 @@ Chat=Chat PhonePro=教授の携帯電話 PhonePerso=PERS。電話 PhoneMobile=携帯電話 -No_Email=Refuse mass e-mailings +No_Email=大量のメールを拒否 Fax=ファックス Zip=郵便番号 Town=シティ @@ -78,10 +77,10 @@ VATIsNotUsed=付加価値税(VAT)は使用されていません CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=提案 +OverAllOrders=受注 +OverAllInvoices=請求書 +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= REが使用されます @@ -110,7 +109,7 @@ ProfId2=プロのID 2 ProfId3=プロのID 3 ProfId4=プロのID 4 ProfId5=プロのID 5 -ProfId6=Professional ID 6 +ProfId6=プロのID 6 ProfId1AR=教授はID 1(CUIT / CUIL) ProfId2AR=教授はID 2(Revenu獣) ProfId3AR=- @@ -136,8 +135,8 @@ ProfId4BE=- ProfId5BE=- ProfId6BE=- ProfId1BR=- -ProfId2BR=IE (Inscricao Estadual) -ProfId3BR=IM (Inscricao Municipal) +ProfId2BR=IE (国家登録) +ProfId3BR=IM (市営登録) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS @@ -237,6 +236,12 @@ ProfId3TN=教授はID 3(Douaneコード) ProfId4TN=教授はID 4(BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=教授はID 1(OGRN) ProfId2RU=教授はID 2(INN) ProfId3RU=教授はID 3(KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=相対的な割引 CustomerAbsoluteDiscountShort=絶対的な割引 CompanyHasRelativeDiscount=この顧客は%sの%%デフォルトの割引を持っている CompanyHasNoRelativeDiscount=この顧客は、デフォルトではなく相対的な割引がありません -CompanyHasAbsoluteDiscount=この顧客はまだ%s %sの割引クレジットや定期預金を持っている +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=この顧客はまだ%s %sのためにクレジットノートを持っている CompanyHasNoAbsoluteDiscount=この顧客は、使用可能な割引クレジットを持っていません CustomerAbsoluteDiscountAllUsers=絶対的な割引(すべてのユーザーによって付与された) @@ -390,7 +395,7 @@ ListCustomersShort=顧客リスト ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=ユニークな第三者の合計 -InActivity=開かれた +InActivity=開く ActivityCeased=閉じた ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=顧客/サプライヤーコードは無料です。こ ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/ja_JP/contracts.lang b/htdocs/langs/ja_JP/contracts.lang index b7d4361ad04..f92d0eeca56 100644 --- a/htdocs/langs/ja_JP/contracts.lang +++ b/htdocs/langs/ja_JP/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=営業担当者の署名の契約 diff --git a/htdocs/langs/ja_JP/dict.lang b/htdocs/langs/ja_JP/dict.lang index bb26f019d9a..74af111e23c 100644 --- a/htdocs/langs/ja_JP/dict.lang +++ b/htdocs/langs/ja_JP/dict.lang @@ -6,7 +6,7 @@ CountryES=スペイン CountryDE=ドイツ CountryCH=スイス CountryGB=イギリス -CountryUK=United Kingdom +CountryUK=イギリス CountryIE=アイルランド CountryCN=中国 CountryTN=チュニジア @@ -138,7 +138,7 @@ CountryLS=レソト CountryLR=リベリア CountryLY=リビアの CountryLI=リヒテンシュタイン -CountryLT=Lithuania +CountryLT=リトアニア CountryLU=ルクセンブルグ CountryMO=マカオ CountryMK=マケドニア、旧ユーゴスラビア @@ -252,7 +252,7 @@ CivilityMME=ミセス CivilityMR=氏 CivilityMLE=さん CivilityMTRE=マスタ -CivilityDR=Doctor +CivilityDR=医師 ##### Currencies ##### Currencyeuros=ユーロ CurrencyAUD=AUドル @@ -289,10 +289,10 @@ CurrencyXOF=CFAフランBCEAO CurrencySingXOF=CFAフランBCEAO CurrencyXPF=CFPフラン CurrencySingXPF=CFPフラン -CurrencyCentSingEUR=cent -CurrencyCentINR=paisa -CurrencyCentSingINR=paise -CurrencyThousandthSingTND=thousandth +CurrencyCentSingEUR=セント +CurrencyCentINR=パイサ +CurrencyCentSingINR=パイサ(複数) +CurrencyThousandthSingTND=ミリーム #### Input reasons ##### DemandReasonTypeSRC_INTE=インターネット DemandReasonTypeSRC_CAMP_MAIL=メーリングキャンペーン @@ -301,27 +301,27 @@ DemandReasonTypeSRC_CAMP_PHO=電話のキャンペーン DemandReasonTypeSRC_CAMP_FAX=ファックスキャンペーン DemandReasonTypeSRC_COMM=商業的接触 DemandReasonTypeSRC_SHOP=店の連絡先 -DemandReasonTypeSRC_WOM=Word of mouth -DemandReasonTypeSRC_PARTNER=Partner -DemandReasonTypeSRC_EMPLOYEE=Employee -DemandReasonTypeSRC_SPONSORING=Sponsorship +DemandReasonTypeSRC_WOM=口頭 +DemandReasonTypeSRC_PARTNER=パートナー +DemandReasonTypeSRC_EMPLOYEE=従業員 +DemandReasonTypeSRC_SPONSORING=後援 #### Paper formats #### -PaperFormatEU4A0=Format 4A0 -PaperFormatEU2A0=Format 2A0 -PaperFormatEUA0=Format A0 -PaperFormatEUA1=Format A1 -PaperFormatEUA2=Format A2 -PaperFormatEUA3=Format A3 -PaperFormatEUA4=Format A4 -PaperFormatEUA5=Format A5 -PaperFormatEUA6=Format A6 -PaperFormatUSLETTER=Format Letter US -PaperFormatUSLEGAL=Format Legal US -PaperFormatUSEXECUTIVE=Format Executive US -PaperFormatUSLEDGER=Format Ledger/Tabloid -PaperFormatCAP1=Format P1 Canada -PaperFormatCAP2=Format P2 Canada -PaperFormatCAP3=Format P3 Canada -PaperFormatCAP4=Format P4 Canada -PaperFormatCAP5=Format P5 Canada -PaperFormatCAP6=Format P6 Canada +PaperFormatEU4A0=4A0 用紙 +PaperFormatEU2A0=2A0 用紙 +PaperFormatEUA0=A0 用紙 +PaperFormatEUA1=A1 用紙 +PaperFormatEUA2=A2 用紙 +PaperFormatEUA3=A3 用紙 +PaperFormatEUA4=A4 用紙 +PaperFormatEUA5=A5 用紙 +PaperFormatEUA6=A6 用紙 +PaperFormatUSLETTER=レターサイズ用紙 +PaperFormatUSLEGAL=リーガルサイズ用紙 +PaperFormatUSEXECUTIVE=エグゼクティヴサイズ用紙 +PaperFormatUSLEDGER=リーガル/タブロイド用紙 +PaperFormatCAP1=P1 カナダ用紙 +PaperFormatCAP2=P2 カナダ用紙 +PaperFormatCAP3=P3 カナダ用紙 +PaperFormatCAP4=P4 カナダ用紙 +PaperFormatCAP5=P5 カナダ用紙 +PaperFormatCAP6=P6 カナダ用紙 diff --git a/htdocs/langs/ja_JP/exports.lang b/htdocs/langs/ja_JP/exports.lang index f9aedfca760..ecba7b05694 100644 --- a/htdocs/langs/ja_JP/exports.lang +++ b/htdocs/langs/ja_JP/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/ja_JP/externalsite.lang b/htdocs/langs/ja_JP/externalsite.lang index 55413c5e256..429769e901f 100644 --- a/htdocs/langs/ja_JP/externalsite.lang +++ b/htdocs/langs/ja_JP/externalsite.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - externalsite ExternalSiteSetup=外部ウェブサイトへのリンクを設定 ExternalSiteURL=外部サイトのURL -ExternalSiteModuleNotComplete=Module ExternalSite was not configured properly. -ExampleMyMenuEntry=My menu entry +ExternalSiteModuleNotComplete=モジュールExternalSite(外部サイト)が正しく構成されていませんでした。 +ExampleMyMenuEntry=私のメニューエントリ diff --git a/htdocs/langs/ja_JP/ftp.lang b/htdocs/langs/ja_JP/ftp.lang index 6ced337da6f..33acf25565a 100644 --- a/htdocs/langs/ja_JP/ftp.lang +++ b/htdocs/langs/ja_JP/ftp.lang @@ -9,6 +9,6 @@ FailedToConnectToFTPServer=サーバー(サーバー%s、ポート%s)のFTP FailedToConnectToFTPServerWithCredentials=定義されたログイン/パスワードでFTPサーバーにログインに失敗しました FTPFailedToRemoveFile=ファイルの%sを削除できませんでした。 FTPFailedToRemoveDir=(アクセス権を確認し、そのディレクトリが空の)ディレクトリの%sを削除できませんでした。 -FTPPassiveMode=Passive mode -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s +FTPPassiveMode=パッシブモード +ChooseAFTPEntryIntoMenu=メニューのFTPエントリを選択... +FailedToGetFile=ファイル%sの取得に失敗しました diff --git a/htdocs/langs/ja_JP/help.lang b/htdocs/langs/ja_JP/help.lang index dbeebd3c16f..b6f23e109dc 100644 --- a/htdocs/langs/ja_JP/help.lang +++ b/htdocs/langs/ja_JP/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=サポートのソース TypeSupportCommunauty=コミュニティ(無料) TypeSupportCommercial=コマーシャル TypeOfHelp=タイプ -NeedHelpCenter=Need help or support? +NeedHelpCenter=ヘルプやサポートが必要ですか? Efficiency=効率性 TypeHelpOnly=唯一の助け TypeHelpDev=+の開発を支援 @@ -22,5 +22,5 @@ ToGetHelpGoOnSparkAngels2=時には、あなたの検索を行い、現​​時 BackToHelpCenter=それ以外の場合は、移動するには、ここをクリックしてセンターのホームページを助けるために戻って 。 LinkToGoldMember=あなたは彼のウィジェット(ステータスおよび最大価格が自動的に更新されます)をクリックして言語(%s)にDolibarrによって事前に選択コーチのいずれかを呼び出すことができます。 PossibleLanguages=サポートされる言語 -SubscribeToFoundation=Help Dolibarr project, subscribe to the foundation -SeeOfficalSupport=For official Dolibarr support in your language:
%s +SubscribeToFoundation=Dolibarrプロジェクトの支援、財団への加入 +SeeOfficalSupport=お使いの言語での公式Dolibarrサポート:
%s diff --git a/htdocs/langs/ja_JP/holiday.lang b/htdocs/langs/ja_JP/holiday.lang index 41964b5ee9a..5d06071437d 100644 --- a/htdocs/langs/ja_JP/holiday.lang +++ b/htdocs/langs/ja_JP/holiday.lang @@ -16,7 +16,7 @@ CancelCP=キャンセル RefuseCP=拒否 ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=説明 SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/ja_JP/hrm.lang b/htdocs/langs/ja_JP/hrm.lang index 3889c73dbbb..24862c4ff07 100644 --- a/htdocs/langs/ja_JP/hrm.lang +++ b/htdocs/langs/ja_JP/hrm.lang @@ -1,17 +1,17 @@ # Dolibarr language file - en_US - hrm # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service -Establishments=Establishments -Establishment=Establishment -NewEstablishment=New establishment -DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? -OpenEtablishment=Open establishment -CloseEtablishment=Close establishment +HRM_EMAIL_EXTERNAL_SERVICE=HRM外部サービスを防止するためのメール +Establishments=事業所 +Establishment=事業所 +NewEstablishment=新しい事業所 +DeleteEstablishment=事業所を削除 +ConfirmDeleteEstablishment=この事業所を削除してもよろしいですか? +OpenEtablishment=事業所を開く +CloseEtablishment=事業所を閉じる # Dictionary -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Function list +DictionaryDepartment=HRM - 部門リスト +DictionaryFunction=HRM - 職能リスト # Module -Employees=Employees -Employee=Employee -NewEmployee=New employee +Employees=従業員 +Employee=従業員 +NewEmployee=新しい従業員 diff --git a/htdocs/langs/ja_JP/incoterm.lang b/htdocs/langs/ja_JP/incoterm.lang index 7ff371e3a95..dc4c473efa9 100644 --- a/htdocs/langs/ja_JP/incoterm.lang +++ b/htdocs/langs/ja_JP/incoterm.lang @@ -1,3 +1,3 @@ -Module62000Name=Incoterm -Module62000Desc=Add features to manage Incoterm -IncotermLabel=Incoterms +Module62000Name=インコターム +Module62000Desc=インコタームを管理する機能を追加 +IncotermLabel=インコタームズ diff --git a/htdocs/langs/ja_JP/install.lang b/htdocs/langs/ja_JP/install.lang index a92cf96be36..2b7e0da9f7a 100644 --- a/htdocs/langs/ja_JP/install.lang +++ b/htdocs/langs/ja_JP/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=あなたがDoliWampからDolibarrセットアップ·ウ KeepDefaultValuesDeb=あなたは、Linuxパッケージ(Ubuntuのは、Debian、Fedoraの...)からDolibarrセットアップ·ウィザードを使用するので、ここで提案値がすでに最適化されています。作成するデータベースの所有者のパスワードのみを完了する必要があります。あなたは何をすべきか分かっている場合にのみ、他のパラメータを変更します。 KeepDefaultValuesMamp=あなたがDoliMampからDolibarrのセットアップウィザードを使用して、ここで提案するので、値がすでに最適化されています。あなたは何をすべきか分かっている場合にのみ、それらを変更してください。 KeepDefaultValuesProxmox=あなたがProxmox仮想アプライアンスからDolibarrのセットアップウィザードを使用して、ここで提案するので、値がすでに最適化されています。あなたは何をすべきか分かっている場合にのみ、それらを変更してください。 +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ja_JP/interventions.lang b/htdocs/langs/ja_JP/interventions.lang index 8b7df68179a..705cfe7fd9a 100644 --- a/htdocs/langs/ja_JP/interventions.lang +++ b/htdocs/langs/ja_JP/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=フォローアップ顧客との接触 # Modele numérotation diff --git a/htdocs/langs/ja_JP/link.lang b/htdocs/langs/ja_JP/link.lang index 40197062a5f..51c5d766fc4 100644 --- a/htdocs/langs/ja_JP/link.lang +++ b/htdocs/langs/ja_JP/link.lang @@ -7,4 +7,4 @@ ErrorFileNotLinked=ファイルをリンクできませんでした LinkRemoved=リンク %s が削除されました ErrorFailedToDeleteLink= リンク '%s' を削除できませんでした ErrorFailedToUpdateLink= リンク '%s' を更新できませんでした -URLToLink=URL to link +URLToLink=リンクの URL diff --git a/htdocs/langs/ja_JP/loan.lang b/htdocs/langs/ja_JP/loan.lang index 4a1e4368865..7db594c715e 100644 --- a/htdocs/langs/ja_JP/loan.lang +++ b/htdocs/langs/ja_JP/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ja_JP/mails.lang b/htdocs/langs/ja_JP/mails.lang index fb874f940fa..a8c6133a79e 100644 --- a/htdocs/langs/ja_JP/mails.lang +++ b/htdocs/langs/ja_JP/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=partialy送信 MailingStatusSentCompletely=完全に送信 MailingStatusError=エラーが発生 MailingStatusNotSent=送信されません -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=ファイル内の行%s @@ -116,8 +120,8 @@ Notifications=通知 NoNotificationsWillBeSent=いいえ電子メール通知は、このイベントや会社のために計画されていません ANotificationsWillBeSent=1通知は電子メールで送信されます。 SomeNotificationsWillBeSent=%s通知は電子メールで送信されます。 -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=送信されたすべての電子メール通知を一覧表示します。 MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/ja_JP/main.lang b/htdocs/langs/ja_JP/main.lang index 2bfabf12f5c..cec9b26293f 100644 --- a/htdocs/langs/ja_JP/main.lang +++ b/htdocs/langs/ja_JP/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=デフォルトの背景色 FileRenamed=The file was successfully renamed -FileUploaded=ファイルが正常にアップロードされました FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=ファイルが正常にアップロードされました +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=ファイルが添付ファイルが選択されているが、まだアップロードされませんでした。このために "添付ファイル"をクリックしてください。 NbOfEntries=エントリのNb GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=合計RE TotalLT2ES=合計IRPF HT=税引き TTC=税込 +INCT=Inc. all taxes VAT=売上税 VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=10月 MonthShort11=11月 MonthShort12=12月 AttachedFiles=添付ファイルとドキュメント -FileTransferComplete=ファイルがアップロードされたsuccessfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/ja_JP/margins.lang b/htdocs/langs/ja_JP/margins.lang index 3e55463a2f2..cc544fcccad 100644 --- a/htdocs/langs/ja_JP/margins.lang +++ b/htdocs/langs/ja_JP/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ja_JP/members.lang b/htdocs/langs/ja_JP/members.lang index 52d764e9289..5da3a16550a 100644 --- a/htdocs/langs/ja_JP/members.lang +++ b/htdocs/langs/ja_JP/members.lang @@ -90,6 +90,7 @@ PublicMemberList=公共のメンバーリスト BlankSubscriptionForm=公共の自動購読フォーム BlankSubscriptionFormDesc=Dolibarrは、外部の訪問者は基礎を購読するように依頼できるようにするためにあなたの公開URLを提供することができます。オンライン決済モジュールが有効になっている場合は、お支払いフォームも自動的に提供されます。 EnablePublicSubscriptionForm=公共の自動購読フォームを有効にする +ForceMemberType=Force the member type ExportDataset_member_1=メンバーとサブスクリプション ImportDataset_member_1=メンバー LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=この画面には、町でメンバーの統計情報を表 MembersStatisticsDesc=読みたい統計を選択... MenuMembersStats=統計 LastMemberDate=Latest member date +LatestSubscriptionDate=最後のサブスクリプションの日付 Nature=自然 Public=情報が公開されている NewMemberbyWeb=新しいメンバーが追加されました。承認を待っている diff --git a/htdocs/langs/ja_JP/modulebuilder.lang b/htdocs/langs/ja_JP/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/ja_JP/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ja_JP/other.lang b/htdocs/langs/ja_JP/other.lang index ef87e73d04a..c850750651f 100644 --- a/htdocs/langs/ja_JP/other.lang +++ b/htdocs/langs/ja_JP/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=キロ WeightUnitg=グラム WeightUnitmg=ミリグラム WeightUnitpound=ポンド +WeightUnitounce=オンス Length=長さ LengthUnitm=メートル LengthUnitdm=DM diff --git a/htdocs/langs/ja_JP/paybox.lang b/htdocs/langs/ja_JP/paybox.lang index 9433d12e877..b7777723ca5 100644 --- a/htdocs/langs/ja_JP/paybox.lang +++ b/htdocs/langs/ja_JP/paybox.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - paybox -PayBoxSetup=切符売り場のモジュールのセットアップ +PayBoxSetup=PayBoxモジュールのセットアップ PayBoxDesc=このモジュールは、上の支払いを可能にするためにページを提供して切符売り場の顧客によって。これはフリーの支払いのためにまたは特定のDolibarrオブジェクトの支払いに用いることができる(請求書、発注、...) FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払いをするために顧客にページを提供するために利用可能です PaymentForm=支払い形態 @@ -11,6 +11,7 @@ YourEMail=入金確認を受信する電子メール Creditor=債権者 PaymentCode=支払いコード PayBoxDoPayment=支払いに行く +ToPay=支払いを行う YouWillBeRedirectedOnPayBox=あなたが入力するクレジットカード情報をセキュリティで保護された切符売り場のページにリダイレクトされます。 Continue=次の ToOfferALinkForOnlinePayment=%s支払いのURL @@ -31,9 +32,9 @@ VendorName=ベンダーの名前 CSSUrlForPaymentForm=支払いフォームのCSSスタイルシートのURL MessageOK=検証済みペイメントの戻りページでメッセージ MessageKO=キャンセル支払い戻りページでメッセージ -NewPayboxPaymentReceived=New Paybox payment received -NewPayboxPaymentFailed=New Paybox payment tried but failed -PAYBOX_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or failed) -PAYBOX_PBX_SITE=Value for PBX SITE -PAYBOX_PBX_RANG=Value for PBX Rang -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID +NewPayboxPaymentReceived=新しいPaybox支払を受け取りました +NewPayboxPaymentFailed=新しいPaybox支払を試みましたが失敗しました +PAYBOX_PAYONLINE_SENDEMAIL=支払の後に通知のメール (成功または失敗) +PAYBOX_PBX_SITE=PBX SITEの値 +PAYBOX_PBX_RANG=PBX Rangの値 +PAYBOX_PBX_IDENTIFIANT=PBX IDの値 diff --git a/htdocs/langs/ja_JP/paypal.lang b/htdocs/langs/ja_JP/paypal.lang index 0070fa291f7..7fb88a662a0 100644 --- a/htdocs/langs/ja_JP/paypal.lang +++ b/htdocs/langs/ja_JP/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=%s:これは、トランザクションのIDです PAYPAL_ADD_PAYMENT_URL=郵送で文書を送信するときにPayPalの支払いのURLを追加します。 PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=あなたは "サンドボックス"モードで現在 -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ja_JP/printing.lang b/htdocs/langs/ja_JP/printing.lang index d6cf49bd525..9e14a24c6d5 100644 --- a/htdocs/langs/ja_JP/printing.lang +++ b/htdocs/langs/ja_JP/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=の名前 GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -28,9 +28,9 @@ GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server -PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_PORT=ポート +PRINTIPP_USER=ログイン +PRINTIPP_PASSWORD=パスワード NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,12 +40,12 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=カラー IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/ja_JP/products.lang b/htdocs/langs/ja_JP/products.lang index 7ca23dc64d6..3c26e4f239f 100644 --- a/htdocs/langs/ja_JP/products.lang +++ b/htdocs/langs/ja_JP/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=製品やサービス ProductsAndServices=製品とサービス ProductsOrServices=製品またはサービス -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=2番目の +unitH=時間 +unitD=日 +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=現行価格 @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ja_JP/propal.lang b/htdocs/langs/ja_JP/propal.lang index c676a08333d..fdbfa32a8d3 100644 --- a/htdocs/langs/ja_JP/propal.lang +++ b/htdocs/langs/ja_JP/propal.lang @@ -3,7 +3,7 @@ Proposals=商用の提案 Proposal=商業的提案 ProposalShort=提案 ProposalsDraft=ドラフト商業の提案 -ProposalsOpened=オープンした商業提案 +ProposalsOpened=Open commercial proposals Prop=商用の提案 CommercialProposal=商業的提案 ProposalCard=提案カード @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=月別額(税引後) NbOfProposals=商業的提案の数 ShowPropal=提案を示す PropalsDraft=ドラフト -PropalsOpened=開かれた +PropalsOpened=開く PropalStatusDraft=ドラフト(検証する必要があります) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=(要請求)署名 diff --git a/htdocs/langs/ja_JP/resource.lang b/htdocs/langs/ja_JP/resource.lang index 8e25a0fa893..38bac9cfab5 100644 --- a/htdocs/langs/ja_JP/resource.lang +++ b/htdocs/langs/ja_JP/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=資源 diff --git a/htdocs/langs/ja_JP/salaries.lang b/htdocs/langs/ja_JP/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/ja_JP/salaries.lang +++ b/htdocs/langs/ja_JP/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/ja_JP/sendings.lang b/htdocs/langs/ja_JP/sendings.lang index 6c0fd3c9dad..75648f355ef 100644 --- a/htdocs/langs/ja_JP/sendings.lang +++ b/htdocs/langs/ja_JP/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=簡単な文書モデル DocumentModelMerou=メロウA5モデル WarningNoQtyLeftToSend=警告は、出荷されるのを待っていない製品。 StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=出荷のイベント LinkToTrackYourPackage=あなたのパッケージを追跡するためのリンク ShipmentCreationIsDoneFromOrder=現時点では、新たな出荷の作成は、注文カードから行われます。 ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ja_JP/sms.lang b/htdocs/langs/ja_JP/sms.lang index ea362be1326..99188f935f2 100644 --- a/htdocs/langs/ja_JP/sms.lang +++ b/htdocs/langs/ja_JP/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=送信されません SmsSuccessfulySent=正しく送信されたSMS(%sへ%sから) ErrorSmsRecipientIsEmpty=ターゲットの数が空である WarningNoSmsAdded=ターゲットリストに追加する新しい電話番号なし -ConfirmValidSms=Do you confirm validation of this campain? +ConfirmValidSms=このキャンペーンの検証を確認しますか? NbOfUniqueSms=Nbの自由度のユニークな電話番号 NbOfSms=ホン番号のNbre ThisIsATestMessage=これはテストメッセージです。 @@ -46,6 +46,6 @@ SendSms=SMSを送信 SmsInfoCharRemain=残りの文字のNb SmsInfoNumero= (フォーマット国際例:33899701761) DelayBeforeSending=送信する前に、遅延時間(分) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleSenderFound=有効な送信者はありません。 SMSプロバイダの設定を確認してください。 SmsNoPossibleRecipientFound=利用可能なターゲットはありません。 SMSプロバイダの設定を確認してください。 diff --git a/htdocs/langs/ja_JP/stocks.lang b/htdocs/langs/ja_JP/stocks.lang index 512c886bb7d..a1e3bb27883 100644 --- a/htdocs/langs/ja_JP/stocks.lang +++ b/htdocs/langs/ja_JP/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=ユニット数 UnitPurchaseValue=Unit purchase price StockTooLow=低すぎると株式 -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=値 PMPValue=加重平均価格 PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=数量派遣 QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=派遣株式 +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=お客様の請求書/クレジットメモの検証で本物の株式を減少させる @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=仕入先請求書/クレジットメモの検証で本物の株式を増加させる ReStockOnValidateOrder=サプライヤの注文賛同上の実際の株式を増加させる -ReStockOnDispatchOrder=サプライヤーの順序が受信した後、倉庫に派遣マニュアルに本物の株式を増加させる +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=ご注文はまだないか、またはこれ以上の在庫倉庫の製品の派遣ができますステータスを持っていません。 -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=このオブジェクト用に事前定義された製品がありません。そうは在庫に派遣する必要はありません。 DispatchVerb=派遣 StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=物理的な在庫 RealStock=実在庫 +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=仮想在庫 +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=イド倉庫 DescWareHouse=説明倉庫 LieuWareHouse=ローカリゼーション倉庫 @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=編集 +inventoryValidate=検証 +inventoryDraft=ランニング +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=カテゴリフィルタ +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=加える +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=行を削除します +RegulateStock=Regulate Stock +ListInventory=リスト diff --git a/htdocs/langs/ja_JP/stripe.lang b/htdocs/langs/ja_JP/stripe.lang new file mode 100644 index 00000000000..9dacafc10ef --- /dev/null +++ b/htdocs/langs/ja_JP/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=以下のURLはDolibarrオブジェクト上で支払いをするために顧客にページを提供するために利用可能です +PaymentForm=支払い形態 +WelcomeOnPaymentPage=ようこそ私たちのオンライン決済サービスについて +ThisScreenAllowsYouToPay=この画面では、%sにオンライン決済を行うことができます。 +ThisIsInformationOnPayment=これは、実行する支払いに関する情報です。 +ToComplete=完了する +YourEMail=入金確認を受信する電子メール +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=債権者 +PaymentCode=支払いコード +StripeDoPayment=支払いに行く +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=次の +ToOfferALinkForOnlinePayment=%s支払いのURL +ToOfferALinkForOnlinePaymentOnOrder=顧客の注文のための%sオンライン決済のユーザインタフェースを提供するためのURL +ToOfferALinkForOnlinePaymentOnInvoice=顧客の請求書の%sオンライン決済のユーザインタフェースを提供するためのURL +ToOfferALinkForOnlinePaymentOnContractLine=契約回線の%sオンライン決済のユーザインタフェースを提供するためのURL +ToOfferALinkForOnlinePaymentOnFreeAmount=空き容量のため夜中オンライン決済のユーザインタフェースを提供するためのURL +ToOfferALinkForOnlinePaymentOnMemberSubscription=メンバーのサブスクリプションの%sオンライン決済のユーザインタフェースを提供するためのURL +YouCanAddTagOnUrl=また、独自の支払いコメントタグを追加するには、それらのURL(無料支払のためにのみ必要)のいずれかにurlパラメータ·タグ= 値を追加することできます。 +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=このページでは、あなたの支払が記録されていることを確認します。ありがとうございます。 +YourPaymentHasNotBeenRecorded=あなたの支払は記録されていないトランザクションがキャンセルされました。ありがとうございます。 +AccountParameter=アカウントのパラメータ +UsageParameter=使用パラメータ +InformationToFindParameters=あなたの%sアカウント情報を見つけるのを助ける +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=ベンダーの名前 +CSSUrlForPaymentForm=支払いフォームのCSSスタイルシートのURL +MessageOK=検証済みペイメントの戻りページでメッセージ +MessageKO=キャンセル支払い戻りページでメッセージ +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ja_JP/supplier_proposal.lang b/htdocs/langs/ja_JP/supplier_proposal.lang index a29800152a7..4a81d8708e8 100644 --- a/htdocs/langs/ja_JP/supplier_proposal.lang +++ b/htdocs/langs/ja_JP/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=ドラフト(検証する必要があります) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=閉じた SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=拒否 @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ja_JP/suppliers.lang b/htdocs/langs/ja_JP/suppliers.lang index 8637a8c890d..03d94bc0fb7 100644 --- a/htdocs/langs/ja_JP/suppliers.lang +++ b/htdocs/langs/ja_JP/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=このリファレンス·サプライヤーは、すでに参照に関連付けられています。%s NoRecordedSuppliers=記録されていないサプライヤーません SupplierPayment=サプライヤーの支払い @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/ja_JP/trips.lang b/htdocs/langs/ja_JP/trips.lang index 987072cfeda..04f5a739e05 100644 --- a/htdocs/langs/ja_JP/trips.lang +++ b/htdocs/langs/ja_JP/trips.lang @@ -12,7 +12,7 @@ ListOfFees=手数料のリスト TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=会社概要/基礎を訪問 +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=量またはキロ DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=検証日 DATE_CANCEL=Cancelation date DATE_PAIEMENT=支払期日 - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ja_JP/users.lang b/htdocs/langs/ja_JP/users.lang index 1b44581bb4d..26c4c8d2eb2 100644 --- a/htdocs/langs/ja_JP/users.lang +++ b/htdocs/langs/ja_JP/users.lang @@ -66,8 +66,8 @@ InternalUser=内部ユーザ ExportDataset_user_1=Dolibarrのユーザーとプロパティ DomainUser=ドメインユーザー%s Reactivate=再アクティブ化 -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=内部ユーザは、あなたの会社/基礎の一部であるユーザーです。
外部ユーザーは顧客、サプライヤーまたは他のです。

両方のケースでは、権限も、Dolibarrの権限を定義する外部ユーザー(ホームを参照してください - セットアップ - ディスプレイ)は、内部ユーザーとは異なるメニューマネージャを持つことができます +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=ユーザーのグループのいずれかから継承されたので、許可が付与されます。 Inherited=継承された UserWillBeInternalUser=(特定の第三者にリンクされていないため)作成したユーザーは、内部ユーザーになります diff --git a/htdocs/langs/ja_JP/website.lang b/htdocs/langs/ja_JP/website.lang index 7c7ccd80741..408fce2ec28 100644 --- a/htdocs/langs/ja_JP/website.lang +++ b/htdocs/langs/ja_JP/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=ウェブサイト Webpage=Web page AddPage=ページの追加 +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=ホームページに設定する RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ja_JP/withdrawals.lang b/htdocs/langs/ja_JP/withdrawals.lang index 1c4dccb2103..df7acdb76f5 100644 --- a/htdocs/langs/ja_JP/withdrawals.lang +++ b/htdocs/langs/ja_JP/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=撤回する金額 WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=支払いモード "撤退"には顧客の請求書が待っているされていません。要求を行うために請求書、カードの "引き出し"タブをクリックしてください。 +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=担当ユーザー WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=拒否理由 RefusedInvoicing=拒絶反応を請求 NoInvoiceRefused=拒絶反応を充電しないでください InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=待っている StatusTrans=送信 StatusCredited=クレジット diff --git a/htdocs/langs/ka_GE/accountancy.lang b/htdocs/langs/ka_GE/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/ka_GE/accountancy.lang +++ b/htdocs/langs/ka_GE/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/ka_GE/admin.lang b/htdocs/langs/ka_GE/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/ka_GE/admin.lang +++ b/htdocs/langs/ka_GE/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/ka_GE/agenda.lang b/htdocs/langs/ka_GE/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/ka_GE/agenda.lang +++ b/htdocs/langs/ka_GE/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/ka_GE/banks.lang b/htdocs/langs/ka_GE/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/ka_GE/banks.lang +++ b/htdocs/langs/ka_GE/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ka_GE/bills.lang b/htdocs/langs/ka_GE/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/ka_GE/bills.lang +++ b/htdocs/langs/ka_GE/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/ka_GE/bookmarks.lang b/htdocs/langs/ka_GE/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/ka_GE/bookmarks.lang +++ b/htdocs/langs/ka_GE/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/ka_GE/boxes.lang b/htdocs/langs/ka_GE/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/ka_GE/boxes.lang +++ b/htdocs/langs/ka_GE/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ka_GE/cashdesk.lang b/htdocs/langs/ka_GE/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/ka_GE/cashdesk.lang +++ b/htdocs/langs/ka_GE/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/ka_GE/categories.lang b/htdocs/langs/ka_GE/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/ka_GE/categories.lang +++ b/htdocs/langs/ka_GE/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/ka_GE/commercial.lang b/htdocs/langs/ka_GE/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/ka_GE/commercial.lang +++ b/htdocs/langs/ka_GE/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/ka_GE/companies.lang b/htdocs/langs/ka_GE/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/ka_GE/companies.lang +++ b/htdocs/langs/ka_GE/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/ka_GE/contracts.lang b/htdocs/langs/ka_GE/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/ka_GE/contracts.lang +++ b/htdocs/langs/ka_GE/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/ka_GE/exports.lang b/htdocs/langs/ka_GE/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/ka_GE/exports.lang +++ b/htdocs/langs/ka_GE/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/ka_GE/holiday.lang b/htdocs/langs/ka_GE/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/ka_GE/holiday.lang +++ b/htdocs/langs/ka_GE/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/ka_GE/install.lang b/htdocs/langs/ka_GE/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/ka_GE/install.lang +++ b/htdocs/langs/ka_GE/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ka_GE/interventions.lang b/htdocs/langs/ka_GE/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/ka_GE/interventions.lang +++ b/htdocs/langs/ka_GE/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/ka_GE/languages.lang b/htdocs/langs/ka_GE/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/ka_GE/languages.lang +++ b/htdocs/langs/ka_GE/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/ka_GE/link.lang b/htdocs/langs/ka_GE/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/ka_GE/link.lang +++ b/htdocs/langs/ka_GE/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/ka_GE/loan.lang b/htdocs/langs/ka_GE/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/ka_GE/loan.lang +++ b/htdocs/langs/ka_GE/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ka_GE/mails.lang b/htdocs/langs/ka_GE/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/ka_GE/mails.lang +++ b/htdocs/langs/ka_GE/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/ka_GE/main.lang b/htdocs/langs/ka_GE/main.lang index d7dde34acbb..3401829afa2 100644 --- a/htdocs/langs/ka_GE/main.lang +++ b/htdocs/langs/ka_GE/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/ka_GE/margins.lang b/htdocs/langs/ka_GE/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/ka_GE/margins.lang +++ b/htdocs/langs/ka_GE/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ka_GE/members.lang b/htdocs/langs/ka_GE/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/ka_GE/members.lang +++ b/htdocs/langs/ka_GE/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/ka_GE/modulebuilder.lang b/htdocs/langs/ka_GE/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/ka_GE/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ka_GE/oauth.lang b/htdocs/langs/ka_GE/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/ka_GE/oauth.lang +++ b/htdocs/langs/ka_GE/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/ka_GE/other.lang b/htdocs/langs/ka_GE/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/ka_GE/other.lang +++ b/htdocs/langs/ka_GE/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/ka_GE/paybox.lang b/htdocs/langs/ka_GE/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/ka_GE/paybox.lang +++ b/htdocs/langs/ka_GE/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/ka_GE/paypal.lang b/htdocs/langs/ka_GE/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/ka_GE/paypal.lang +++ b/htdocs/langs/ka_GE/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ka_GE/printing.lang b/htdocs/langs/ka_GE/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/ka_GE/printing.lang +++ b/htdocs/langs/ka_GE/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/ka_GE/products.lang b/htdocs/langs/ka_GE/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/ka_GE/products.lang +++ b/htdocs/langs/ka_GE/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ka_GE/propal.lang b/htdocs/langs/ka_GE/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/ka_GE/propal.lang +++ b/htdocs/langs/ka_GE/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/ka_GE/resource.lang b/htdocs/langs/ka_GE/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/ka_GE/resource.lang +++ b/htdocs/langs/ka_GE/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/ka_GE/salaries.lang b/htdocs/langs/ka_GE/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/ka_GE/salaries.lang +++ b/htdocs/langs/ka_GE/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/ka_GE/sendings.lang b/htdocs/langs/ka_GE/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/ka_GE/sendings.lang +++ b/htdocs/langs/ka_GE/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ka_GE/stocks.lang b/htdocs/langs/ka_GE/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/ka_GE/stocks.lang +++ b/htdocs/langs/ka_GE/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/ka_GE/stripe.lang b/htdocs/langs/ka_GE/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/ka_GE/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ka_GE/supplier_proposal.lang b/htdocs/langs/ka_GE/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/ka_GE/supplier_proposal.lang +++ b/htdocs/langs/ka_GE/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ka_GE/suppliers.lang b/htdocs/langs/ka_GE/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/ka_GE/suppliers.lang +++ b/htdocs/langs/ka_GE/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/ka_GE/trips.lang b/htdocs/langs/ka_GE/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/ka_GE/trips.lang +++ b/htdocs/langs/ka_GE/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ka_GE/users.lang b/htdocs/langs/ka_GE/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/ka_GE/users.lang +++ b/htdocs/langs/ka_GE/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/ka_GE/website.lang b/htdocs/langs/ka_GE/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/ka_GE/website.lang +++ b/htdocs/langs/ka_GE/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ka_GE/withdrawals.lang b/htdocs/langs/ka_GE/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/ka_GE/withdrawals.lang +++ b/htdocs/langs/ka_GE/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/km_KH/accountancy.lang b/htdocs/langs/km_KH/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/km_KH/accountancy.lang +++ b/htdocs/langs/km_KH/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/km_KH/admin.lang b/htdocs/langs/km_KH/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/km_KH/admin.lang +++ b/htdocs/langs/km_KH/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/km_KH/agenda.lang b/htdocs/langs/km_KH/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/km_KH/agenda.lang +++ b/htdocs/langs/km_KH/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/km_KH/banks.lang b/htdocs/langs/km_KH/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/km_KH/banks.lang +++ b/htdocs/langs/km_KH/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/km_KH/bills.lang b/htdocs/langs/km_KH/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/km_KH/bills.lang +++ b/htdocs/langs/km_KH/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/km_KH/bookmarks.lang b/htdocs/langs/km_KH/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/km_KH/bookmarks.lang +++ b/htdocs/langs/km_KH/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/km_KH/boxes.lang b/htdocs/langs/km_KH/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/km_KH/boxes.lang +++ b/htdocs/langs/km_KH/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/km_KH/cashdesk.lang b/htdocs/langs/km_KH/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/km_KH/cashdesk.lang +++ b/htdocs/langs/km_KH/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/km_KH/categories.lang b/htdocs/langs/km_KH/categories.lang index bb5370bf21f..41e5f4e4c13 100644 --- a/htdocs/langs/km_KH/categories.lang +++ b/htdocs/langs/km_KH/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In diff --git a/htdocs/langs/km_KH/commercial.lang b/htdocs/langs/km_KH/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/km_KH/commercial.lang +++ b/htdocs/langs/km_KH/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/km_KH/companies.lang b/htdocs/langs/km_KH/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/km_KH/companies.lang +++ b/htdocs/langs/km_KH/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/km_KH/contracts.lang b/htdocs/langs/km_KH/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/km_KH/contracts.lang +++ b/htdocs/langs/km_KH/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/km_KH/exports.lang b/htdocs/langs/km_KH/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/km_KH/exports.lang +++ b/htdocs/langs/km_KH/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/km_KH/holiday.lang b/htdocs/langs/km_KH/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/km_KH/holiday.lang +++ b/htdocs/langs/km_KH/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/km_KH/install.lang b/htdocs/langs/km_KH/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/km_KH/install.lang +++ b/htdocs/langs/km_KH/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/km_KH/interventions.lang b/htdocs/langs/km_KH/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/km_KH/interventions.lang +++ b/htdocs/langs/km_KH/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/km_KH/languages.lang b/htdocs/langs/km_KH/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/km_KH/languages.lang +++ b/htdocs/langs/km_KH/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/km_KH/loan.lang b/htdocs/langs/km_KH/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/km_KH/loan.lang +++ b/htdocs/langs/km_KH/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/km_KH/mails.lang b/htdocs/langs/km_KH/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/km_KH/mails.lang +++ b/htdocs/langs/km_KH/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/km_KH/main.lang b/htdocs/langs/km_KH/main.lang index 9bcf62f836a..247568767e1 100644 --- a/htdocs/langs/km_KH/main.lang +++ b/htdocs/langs/km_KH/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/km_KH/margins.lang b/htdocs/langs/km_KH/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/km_KH/margins.lang +++ b/htdocs/langs/km_KH/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/km_KH/members.lang b/htdocs/langs/km_KH/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/km_KH/members.lang +++ b/htdocs/langs/km_KH/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/km_KH/modulebuilder.lang b/htdocs/langs/km_KH/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/km_KH/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/km_KH/oauth.lang b/htdocs/langs/km_KH/oauth.lang index f4df2dc3dda..cafca379f6f 100644 --- a/htdocs/langs/km_KH/oauth.lang +++ b/htdocs/langs/km_KH/oauth.lang @@ -2,15 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/km_KH/other.lang b/htdocs/langs/km_KH/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/km_KH/other.lang +++ b/htdocs/langs/km_KH/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/km_KH/paybox.lang b/htdocs/langs/km_KH/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/km_KH/paybox.lang +++ b/htdocs/langs/km_KH/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/km_KH/paypal.lang b/htdocs/langs/km_KH/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/km_KH/paypal.lang +++ b/htdocs/langs/km_KH/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/km_KH/printing.lang b/htdocs/langs/km_KH/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/km_KH/printing.lang +++ b/htdocs/langs/km_KH/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/km_KH/products.lang b/htdocs/langs/km_KH/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/km_KH/products.lang +++ b/htdocs/langs/km_KH/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/km_KH/propal.lang b/htdocs/langs/km_KH/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/km_KH/propal.lang +++ b/htdocs/langs/km_KH/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/km_KH/resource.lang b/htdocs/langs/km_KH/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/km_KH/resource.lang +++ b/htdocs/langs/km_KH/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/km_KH/salaries.lang b/htdocs/langs/km_KH/salaries.lang index 5fedb79823d..522bf0a65d7 100644 --- a/htdocs/langs/km_KH/salaries.lang +++ b/htdocs/langs/km_KH/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account by default for salaries payments +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/km_KH/sendings.lang b/htdocs/langs/km_KH/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/km_KH/sendings.lang +++ b/htdocs/langs/km_KH/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/km_KH/stocks.lang b/htdocs/langs/km_KH/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/km_KH/stocks.lang +++ b/htdocs/langs/km_KH/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/km_KH/stripe.lang b/htdocs/langs/km_KH/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/km_KH/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/km_KH/supplier_proposal.lang b/htdocs/langs/km_KH/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/km_KH/supplier_proposal.lang +++ b/htdocs/langs/km_KH/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/km_KH/suppliers.lang b/htdocs/langs/km_KH/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/km_KH/suppliers.lang +++ b/htdocs/langs/km_KH/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/km_KH/trips.lang b/htdocs/langs/km_KH/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/km_KH/trips.lang +++ b/htdocs/langs/km_KH/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/km_KH/users.lang b/htdocs/langs/km_KH/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/km_KH/users.lang +++ b/htdocs/langs/km_KH/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/km_KH/website.lang b/htdocs/langs/km_KH/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/km_KH/website.lang +++ b/htdocs/langs/km_KH/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/km_KH/withdrawals.lang b/htdocs/langs/km_KH/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/km_KH/withdrawals.lang +++ b/htdocs/langs/km_KH/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/kn_IN/accountancy.lang b/htdocs/langs/kn_IN/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/kn_IN/accountancy.lang +++ b/htdocs/langs/kn_IN/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/kn_IN/admin.lang b/htdocs/langs/kn_IN/admin.lang index 25e356fda32..517c98b5717 100644 --- a/htdocs/langs/kn_IN/admin.lang +++ b/htdocs/langs/kn_IN/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/kn_IN/agenda.lang b/htdocs/langs/kn_IN/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/kn_IN/agenda.lang +++ b/htdocs/langs/kn_IN/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/kn_IN/banks.lang b/htdocs/langs/kn_IN/banks.lang index e59f652700c..e0f9cba8719 100644 --- a/htdocs/langs/kn_IN/banks.lang +++ b/htdocs/langs/kn_IN/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=ತೆರೆಯಲಾಗಿದೆ StatusAccountClosed=ಮುಚ್ಚಲಾಗಿದೆ AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/kn_IN/bills.lang b/htdocs/langs/kn_IN/bills.lang index 47c950e211a..bb0539153ec 100644 --- a/htdocs/langs/kn_IN/bills.lang +++ b/htdocs/langs/kn_IN/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=ಸಾಪೇಕ್ಷ ರಿಯಾಯಿತಿ GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/kn_IN/bookmarks.lang b/htdocs/langs/kn_IN/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/kn_IN/bookmarks.lang +++ b/htdocs/langs/kn_IN/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/kn_IN/boxes.lang b/htdocs/langs/kn_IN/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/kn_IN/boxes.lang +++ b/htdocs/langs/kn_IN/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/kn_IN/cashdesk.lang b/htdocs/langs/kn_IN/cashdesk.lang index 69db60c0cc3..457b57bd1aa 100644 --- a/htdocs/langs/kn_IN/cashdesk.lang +++ b/htdocs/langs/kn_IN/cashdesk.lang @@ -9,7 +9,7 @@ CashdeskShowServices=Selling services CashDeskProducts=Products CashDeskStock=Stock CashDeskOn=on -CashDeskThirdParty=Third party +CashDeskThirdParty=ಮೂರನೇ ಪಾರ್ಟಿ ShoppingCart=Shopping cart NewSell=New sell AddThisArticle=Add this article @@ -25,8 +25,8 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account -ShowCompany=Show company +BankToPay=Account for payment +ShowCompany=ಸಂಸ್ಥೆಯನ್ನು ತೋರಿಸಿ ShowStock=Show warehouse DeleteArticle=Click to remove this article FilterRefOrLabelOrBC=Search (Ref/Label) diff --git a/htdocs/langs/kn_IN/categories.lang b/htdocs/langs/kn_IN/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/kn_IN/categories.lang +++ b/htdocs/langs/kn_IN/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/kn_IN/commercial.lang b/htdocs/langs/kn_IN/commercial.lang index 7fdda555286..fd403c0b80b 100644 --- a/htdocs/langs/kn_IN/commercial.lang +++ b/htdocs/langs/kn_IN/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/kn_IN/companies.lang b/htdocs/langs/kn_IN/companies.lang index 1a61011e726..4cb1d0a2318 100644 --- a/htdocs/langs/kn_IN/companies.lang +++ b/htdocs/langs/kn_IN/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=ಹೊಸ ಖಾಸಗಿ ವ್ಯಕ್ತಿ NewCompany=ಹೊಸ ಕಂಪನಿ (ನಿರೀಕ್ಷಿತ, ಗ್ರಾಹಕ, ಪೂರೈಕೆದಾರ) NewThirdParty=ಹೊಸ ತೃತೀಯ (ನಿರೀಕ್ಷಿತ, ಗ್ರಾಹಕ, ಪೂರೈಕೆದಾರ) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection ಪ್ರದೇಶ IdThirdParty=ತೃತೀಯ ಪಕ್ಷದ ಗುರುತು @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=ಗ್ರಾಹಕರು ThirdPartyCustomersWithIdProf12=%s ಅಥವಾ %s ಇರುವ ಗ್ರಾಹಕರು ThirdPartySuppliers=ಪೂರೈಕೆದಾರರು ThirdPartyType=ತೃತೀಯ ಮಾದರಿ -Company/Fundation=ಕಂಪನಿ / ಫೌಂಡೇಶನ್ Individual=ಖಾಸಗಿ ವ್ಯಕ್ತಿ ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=ಪೋಷಕ ಸಂಸ್ಥೆ @@ -78,10 +77,10 @@ VATIsNotUsed=ವ್ಯಾಟ್ ಬಳಸಲಾಗುವುದಿಲ್ಲ CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE ಬಳಸಲಾಗುತ್ತದೆ @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=ಸಾಪೇಕ್ಷ ರಿಯಾಯಿತಿ CustomerAbsoluteDiscountShort=ಪರಮ ರಿಯಾಯಿತಿ CompanyHasRelativeDiscount=ಈ ಗ್ರಾಹಕರಿಗೆ %s%% ರಿಯಾಯಿತಿ ಪೂರ್ವನಿಗದಿಯಾಗಿದೆ. CompanyHasNoRelativeDiscount=ಈ ಗ್ರಾಹಕರಿಗೆ ಯಾವುದೇ ಸಾಪೇಕ್ಷ ರಿಯಾಯಿತಿ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿಲ್ಲ -CompanyHasAbsoluteDiscount=ಈ ಗ್ರಾಹಕ ಇನ್ನೂ %s%s ರಿಯಾಯಿತಿ ವಿನಾಯಿತಿಗಳನ್ನು ಅಥವಾ ಠೇವಣಿಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=ಈ ಗ್ರಾಹಕ ಇನ್ನೂ %s%sರಷ್ಟಕ್ಕೆ ಸಾಲದ ಟಿಪ್ಪಣಿಯನ್ನು ಹೊಂದಿದ್ದಾರೆ. CompanyHasNoAbsoluteDiscount=ಈ ಗ್ರಾಹಕ ಯಾವುದೇ ರಿಯಾಯಿತಿ ಕ್ರೆಡಿಟ್ ಹೊಂದಿಲ್ಲ CustomerAbsoluteDiscountAllUsers=ಪರಮ ರಿಯಾಯಿತಿಗಳು (ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಂದ ಮಂಜೂರಾದ) @@ -390,7 +395,7 @@ ListCustomersShort=ಗ್ರಾಹಕರ ಪಟ್ಟಿ ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=ಒಟ್ಟು ಅನನ್ಯ ಮೂರನೇ ಪಾರ್ಟಿಗಳು -InActivity=Opened +InActivity=ತೆರೆಯಲಾಗಿದೆ ActivityCeased=ಮುಚ್ಚಲಾಗಿದೆ ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=ಕೋಡ್ ಉಚಿತ. ಈ ಕೋಡ್ ManagingDirectors=ಮ್ಯಾನೇಜರ್ (ಗಳು) ಹೆಸರು (ಸಿಇಒ, ನಿರ್ದೇಶಕ, ಅಧ್ಯಕ್ಷ ...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/kn_IN/contracts.lang b/htdocs/langs/kn_IN/contracts.lang index ea662478fb1..67728ee78df 100644 --- a/htdocs/langs/kn_IN/contracts.lang +++ b/htdocs/langs/kn_IN/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/kn_IN/exports.lang b/htdocs/langs/kn_IN/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/kn_IN/exports.lang +++ b/htdocs/langs/kn_IN/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/kn_IN/holiday.lang b/htdocs/langs/kn_IN/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/kn_IN/holiday.lang +++ b/htdocs/langs/kn_IN/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/kn_IN/install.lang b/htdocs/langs/kn_IN/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/kn_IN/install.lang +++ b/htdocs/langs/kn_IN/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/kn_IN/interventions.lang b/htdocs/langs/kn_IN/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/kn_IN/interventions.lang +++ b/htdocs/langs/kn_IN/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/kn_IN/languages.lang b/htdocs/langs/kn_IN/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/kn_IN/languages.lang +++ b/htdocs/langs/kn_IN/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/kn_IN/link.lang b/htdocs/langs/kn_IN/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/kn_IN/link.lang +++ b/htdocs/langs/kn_IN/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/kn_IN/loan.lang b/htdocs/langs/kn_IN/loan.lang index 8b932e389ce..690837df72a 100644 --- a/htdocs/langs/kn_IN/loan.lang +++ b/htdocs/langs/kn_IN/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/kn_IN/mails.lang b/htdocs/langs/kn_IN/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/kn_IN/mails.lang +++ b/htdocs/langs/kn_IN/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/kn_IN/main.lang b/htdocs/langs/kn_IN/main.lang index 6c858333c20..a82fe088a1c 100644 --- a/htdocs/langs/kn_IN/main.lang +++ b/htdocs/langs/kn_IN/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/kn_IN/margins.lang b/htdocs/langs/kn_IN/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/kn_IN/margins.lang +++ b/htdocs/langs/kn_IN/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/kn_IN/members.lang b/htdocs/langs/kn_IN/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/kn_IN/members.lang +++ b/htdocs/langs/kn_IN/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/kn_IN/modulebuilder.lang b/htdocs/langs/kn_IN/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/kn_IN/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/kn_IN/oauth.lang b/htdocs/langs/kn_IN/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/kn_IN/oauth.lang +++ b/htdocs/langs/kn_IN/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/kn_IN/other.lang b/htdocs/langs/kn_IN/other.lang index 8c8701310e6..96501a9e5a9 100644 --- a/htdocs/langs/kn_IN/other.lang +++ b/htdocs/langs/kn_IN/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/kn_IN/paybox.lang b/htdocs/langs/kn_IN/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/kn_IN/paybox.lang +++ b/htdocs/langs/kn_IN/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/kn_IN/paypal.lang b/htdocs/langs/kn_IN/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/kn_IN/paypal.lang +++ b/htdocs/langs/kn_IN/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/kn_IN/printing.lang b/htdocs/langs/kn_IN/printing.lang index d6cf49bd525..517d9222279 100644 --- a/htdocs/langs/kn_IN/printing.lang +++ b/htdocs/langs/kn_IN/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=ಹೆಸರು GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/kn_IN/products.lang b/htdocs/langs/kn_IN/products.lang index 3b55100096f..405a2882db3 100644 --- a/htdocs/langs/kn_IN/products.lang +++ b/htdocs/langs/kn_IN/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/kn_IN/propal.lang b/htdocs/langs/kn_IN/propal.lang index f3f43108b0e..4c23e93a991 100644 --- a/htdocs/langs/kn_IN/propal.lang +++ b/htdocs/langs/kn_IN/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=ತೆರೆಯಲಾಗಿದೆ PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/kn_IN/resource.lang b/htdocs/langs/kn_IN/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/kn_IN/resource.lang +++ b/htdocs/langs/kn_IN/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/kn_IN/salaries.lang b/htdocs/langs/kn_IN/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/kn_IN/salaries.lang +++ b/htdocs/langs/kn_IN/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/kn_IN/sendings.lang b/htdocs/langs/kn_IN/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/kn_IN/sendings.lang +++ b/htdocs/langs/kn_IN/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/kn_IN/stocks.lang b/htdocs/langs/kn_IN/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/kn_IN/stocks.lang +++ b/htdocs/langs/kn_IN/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/kn_IN/stripe.lang b/htdocs/langs/kn_IN/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/kn_IN/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/kn_IN/supplier_proposal.lang b/htdocs/langs/kn_IN/supplier_proposal.lang index 946d35deb47..72ce5acdcb1 100644 --- a/htdocs/langs/kn_IN/supplier_proposal.lang +++ b/htdocs/langs/kn_IN/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=ಮುಚ್ಚಲಾಗಿದೆ SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/kn_IN/suppliers.lang b/htdocs/langs/kn_IN/suppliers.lang index 5048602b038..50da995533f 100644 --- a/htdocs/langs/kn_IN/suppliers.lang +++ b/htdocs/langs/kn_IN/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/kn_IN/trips.lang b/htdocs/langs/kn_IN/trips.lang index d9b66715f04..0f871145e48 100644 --- a/htdocs/langs/kn_IN/trips.lang +++ b/htdocs/langs/kn_IN/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/kn_IN/users.lang b/htdocs/langs/kn_IN/users.lang index 845a673b97d..f18618b25dd 100644 --- a/htdocs/langs/kn_IN/users.lang +++ b/htdocs/langs/kn_IN/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/kn_IN/website.lang b/htdocs/langs/kn_IN/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/kn_IN/website.lang +++ b/htdocs/langs/kn_IN/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/kn_IN/withdrawals.lang b/htdocs/langs/kn_IN/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/kn_IN/withdrawals.lang +++ b/htdocs/langs/kn_IN/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/ko_KR/accountancy.lang b/htdocs/langs/ko_KR/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/ko_KR/accountancy.lang +++ b/htdocs/langs/ko_KR/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/ko_KR/admin.lang b/htdocs/langs/ko_KR/admin.lang index 9c6d314a6d2..82d41d46e0c 100644 --- a/htdocs/langs/ko_KR/admin.lang +++ b/htdocs/langs/ko_KR/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/ko_KR/agenda.lang b/htdocs/langs/ko_KR/agenda.lang index f4c99170f9b..590d83470ff 100644 --- a/htdocs/langs/ko_KR/agenda.lang +++ b/htdocs/langs/ko_KR/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=이벤트 Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/ko_KR/banks.lang b/htdocs/langs/ko_KR/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/ko_KR/banks.lang +++ b/htdocs/langs/ko_KR/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ko_KR/bills.lang b/htdocs/langs/ko_KR/bills.lang index e594f653145..a2054db4162 100644 --- a/htdocs/langs/ko_KR/bills.lang +++ b/htdocs/langs/ko_KR/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/ko_KR/bookmarks.lang b/htdocs/langs/ko_KR/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/ko_KR/bookmarks.lang +++ b/htdocs/langs/ko_KR/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/ko_KR/boxes.lang b/htdocs/langs/ko_KR/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/ko_KR/boxes.lang +++ b/htdocs/langs/ko_KR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ko_KR/cashdesk.lang b/htdocs/langs/ko_KR/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/ko_KR/cashdesk.lang +++ b/htdocs/langs/ko_KR/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/ko_KR/categories.lang b/htdocs/langs/ko_KR/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/ko_KR/categories.lang +++ b/htdocs/langs/ko_KR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/ko_KR/commercial.lang b/htdocs/langs/ko_KR/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/ko_KR/commercial.lang +++ b/htdocs/langs/ko_KR/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/ko_KR/companies.lang b/htdocs/langs/ko_KR/companies.lang index 6d16fa5ae5c..bc6efa00c66 100644 --- a/htdocs/langs/ko_KR/companies.lang +++ b/htdocs/langs/ko_KR/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/ko_KR/contracts.lang b/htdocs/langs/ko_KR/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/ko_KR/contracts.lang +++ b/htdocs/langs/ko_KR/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/ko_KR/exports.lang b/htdocs/langs/ko_KR/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/ko_KR/exports.lang +++ b/htdocs/langs/ko_KR/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/ko_KR/holiday.lang b/htdocs/langs/ko_KR/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/ko_KR/holiday.lang +++ b/htdocs/langs/ko_KR/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/ko_KR/install.lang b/htdocs/langs/ko_KR/install.lang index 3d86a7ec388..da9171dd0c3 100644 --- a/htdocs/langs/ko_KR/install.lang +++ b/htdocs/langs/ko_KR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ko_KR/interventions.lang b/htdocs/langs/ko_KR/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/ko_KR/interventions.lang +++ b/htdocs/langs/ko_KR/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/ko_KR/languages.lang b/htdocs/langs/ko_KR/languages.lang index cf20a0024fa..be159847b45 100644 --- a/htdocs/langs/ko_KR/languages.lang +++ b/htdocs/langs/ko_KR/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=독일의 Language_de_AT=독일어 (오스트리아) Language_de_CH=German (Switzerland) Language_el_GR=그리스의 +Language_el_CY=Greek (Cyprus) Language_en_AU=영어 (호주) Language_en_CA=English (Canada) Language_en_GB=영어 (영국) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=스페인어 (온두라스) Language_es_MX=스페인어 (멕시코) +Language_es_PA=Spanish (Panama) Language_es_PY=스페인어 (파라과이) Language_es_PE=스페인어 (페루) Language_es_PR=스페인어 (푸에르토 리코) @@ -50,12 +53,14 @@ Language_is_IS=아이슬란드의 Language_it_IT=이탈리아의 Language_ja_JP=일본의 Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=한국의 Language_lo_LA=Lao Language_lt_LT=Lietuviešu Language_lv_LV=라트비아의 Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=노르웨이어 (보크 말) Language_nl_BE=네덜란드 (벨기에) Language_nl_NL=네덜란드 (네덜란드) diff --git a/htdocs/langs/ko_KR/link.lang b/htdocs/langs/ko_KR/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/ko_KR/link.lang +++ b/htdocs/langs/ko_KR/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/ko_KR/loan.lang b/htdocs/langs/ko_KR/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/ko_KR/loan.lang +++ b/htdocs/langs/ko_KR/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ko_KR/mails.lang b/htdocs/langs/ko_KR/mails.lang index dcb8c0f38fd..18e9f42486f 100644 --- a/htdocs/langs/ko_KR/mails.lang +++ b/htdocs/langs/ko_KR/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=오류 MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/ko_KR/main.lang b/htdocs/langs/ko_KR/main.lang index 2e8a395da7a..19047551ce0 100644 --- a/htdocs/langs/ko_KR/main.lang +++ b/htdocs/langs/ko_KR/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=기본 배경 FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=첨부할 파일을 선택했지만 바로 업로드할 수는 없습니다. 업로드하려면 "파일 첨부"를 클릭하십시오. NbOfEntries=엔트리 Nb GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/ko_KR/margins.lang b/htdocs/langs/ko_KR/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/ko_KR/margins.lang +++ b/htdocs/langs/ko_KR/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ko_KR/members.lang b/htdocs/langs/ko_KR/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/ko_KR/members.lang +++ b/htdocs/langs/ko_KR/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/ko_KR/modulebuilder.lang b/htdocs/langs/ko_KR/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/ko_KR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ko_KR/oauth.lang b/htdocs/langs/ko_KR/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/ko_KR/oauth.lang +++ b/htdocs/langs/ko_KR/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/ko_KR/other.lang b/htdocs/langs/ko_KR/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/ko_KR/other.lang +++ b/htdocs/langs/ko_KR/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/ko_KR/paybox.lang b/htdocs/langs/ko_KR/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/ko_KR/paybox.lang +++ b/htdocs/langs/ko_KR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/ko_KR/paypal.lang b/htdocs/langs/ko_KR/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/ko_KR/paypal.lang +++ b/htdocs/langs/ko_KR/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ko_KR/printing.lang b/htdocs/langs/ko_KR/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/ko_KR/printing.lang +++ b/htdocs/langs/ko_KR/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/ko_KR/products.lang b/htdocs/langs/ko_KR/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/ko_KR/products.lang +++ b/htdocs/langs/ko_KR/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ko_KR/propal.lang b/htdocs/langs/ko_KR/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/ko_KR/propal.lang +++ b/htdocs/langs/ko_KR/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/ko_KR/resource.lang b/htdocs/langs/ko_KR/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/ko_KR/resource.lang +++ b/htdocs/langs/ko_KR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/ko_KR/salaries.lang b/htdocs/langs/ko_KR/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/ko_KR/salaries.lang +++ b/htdocs/langs/ko_KR/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/ko_KR/sendings.lang b/htdocs/langs/ko_KR/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/ko_KR/sendings.lang +++ b/htdocs/langs/ko_KR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ko_KR/stocks.lang b/htdocs/langs/ko_KR/stocks.lang index 49f97e37bfc..449643a77c4 100644 --- a/htdocs/langs/ko_KR/stocks.lang +++ b/htdocs/langs/ko_KR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/ko_KR/stripe.lang b/htdocs/langs/ko_KR/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/ko_KR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ko_KR/supplier_proposal.lang b/htdocs/langs/ko_KR/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/ko_KR/supplier_proposal.lang +++ b/htdocs/langs/ko_KR/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ko_KR/suppliers.lang b/htdocs/langs/ko_KR/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/ko_KR/suppliers.lang +++ b/htdocs/langs/ko_KR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/ko_KR/trips.lang b/htdocs/langs/ko_KR/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/ko_KR/trips.lang +++ b/htdocs/langs/ko_KR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ko_KR/users.lang b/htdocs/langs/ko_KR/users.lang index 66d1968e905..5c003890bed 100644 --- a/htdocs/langs/ko_KR/users.lang +++ b/htdocs/langs/ko_KR/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/ko_KR/website.lang b/htdocs/langs/ko_KR/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/ko_KR/website.lang +++ b/htdocs/langs/ko_KR/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ko_KR/withdrawals.lang b/htdocs/langs/ko_KR/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/ko_KR/withdrawals.lang +++ b/htdocs/langs/ko_KR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/lo_LA/accountancy.lang b/htdocs/langs/lo_LA/accountancy.lang index 9ba6ee06140..0f8c1607cf7 100644 --- a/htdocs/langs/lo_LA/accountancy.lang +++ b/htdocs/langs/lo_LA/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=ບັນຊີ SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=ທະນາຄານ +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=ສົ່ງອອກ +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/lo_LA/admin.lang b/htdocs/langs/lo_LA/admin.lang index 1252bc1dcc2..8e9ac20478d 100644 --- a/htdocs/langs/lo_LA/admin.lang +++ b/htdocs/langs/lo_LA/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=ບັນ​ຊີ -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/lo_LA/agenda.lang b/htdocs/langs/lo_LA/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/lo_LA/agenda.lang +++ b/htdocs/langs/lo_LA/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/lo_LA/banks.lang b/htdocs/langs/lo_LA/banks.lang index 78cb6164f2a..0bf0174048f 100644 --- a/htdocs/langs/lo_LA/banks.lang +++ b/htdocs/langs/lo_LA/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/lo_LA/bills.lang b/htdocs/langs/lo_LA/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/lo_LA/bills.lang +++ b/htdocs/langs/lo_LA/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/lo_LA/bookmarks.lang b/htdocs/langs/lo_LA/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/lo_LA/bookmarks.lang +++ b/htdocs/langs/lo_LA/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/lo_LA/boxes.lang b/htdocs/langs/lo_LA/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/lo_LA/boxes.lang +++ b/htdocs/langs/lo_LA/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/lo_LA/cashdesk.lang b/htdocs/langs/lo_LA/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/lo_LA/cashdesk.lang +++ b/htdocs/langs/lo_LA/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/lo_LA/categories.lang b/htdocs/langs/lo_LA/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/lo_LA/categories.lang +++ b/htdocs/langs/lo_LA/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/lo_LA/commercial.lang b/htdocs/langs/lo_LA/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/lo_LA/commercial.lang +++ b/htdocs/langs/lo_LA/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/lo_LA/companies.lang b/htdocs/langs/lo_LA/companies.lang index 0be3c783cc9..6fb5a741472 100644 --- a/htdocs/langs/lo_LA/companies.lang +++ b/htdocs/langs/lo_LA/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/lo_LA/contracts.lang b/htdocs/langs/lo_LA/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/lo_LA/contracts.lang +++ b/htdocs/langs/lo_LA/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/lo_LA/exports.lang b/htdocs/langs/lo_LA/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/lo_LA/exports.lang +++ b/htdocs/langs/lo_LA/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/lo_LA/holiday.lang b/htdocs/langs/lo_LA/holiday.lang index 6b8fef0b171..c35d4c9ea62 100644 --- a/htdocs/langs/lo_LA/holiday.lang +++ b/htdocs/langs/lo_LA/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/lo_LA/install.lang b/htdocs/langs/lo_LA/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/lo_LA/install.lang +++ b/htdocs/langs/lo_LA/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/lo_LA/interventions.lang b/htdocs/langs/lo_LA/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/lo_LA/interventions.lang +++ b/htdocs/langs/lo_LA/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/lo_LA/languages.lang b/htdocs/langs/lo_LA/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/lo_LA/languages.lang +++ b/htdocs/langs/lo_LA/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/lo_LA/link.lang b/htdocs/langs/lo_LA/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/lo_LA/link.lang +++ b/htdocs/langs/lo_LA/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/lo_LA/loan.lang b/htdocs/langs/lo_LA/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/lo_LA/loan.lang +++ b/htdocs/langs/lo_LA/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/lo_LA/mails.lang b/htdocs/langs/lo_LA/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/lo_LA/mails.lang +++ b/htdocs/langs/lo_LA/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/lo_LA/main.lang b/htdocs/langs/lo_LA/main.lang index 2f42675b2e4..27c35edadea 100644 --- a/htdocs/langs/lo_LA/main.lang +++ b/htdocs/langs/lo_LA/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/lo_LA/margins.lang b/htdocs/langs/lo_LA/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/lo_LA/margins.lang +++ b/htdocs/langs/lo_LA/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/lo_LA/members.lang b/htdocs/langs/lo_LA/members.lang index 7825c94bf2b..6a1c18b2a56 100644 --- a/htdocs/langs/lo_LA/members.lang +++ b/htdocs/langs/lo_LA/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/lo_LA/modulebuilder.lang b/htdocs/langs/lo_LA/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/lo_LA/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/lo_LA/oauth.lang b/htdocs/langs/lo_LA/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/lo_LA/oauth.lang +++ b/htdocs/langs/lo_LA/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/lo_LA/other.lang b/htdocs/langs/lo_LA/other.lang index 84b1fa38edc..2463c4d436c 100644 --- a/htdocs/langs/lo_LA/other.lang +++ b/htdocs/langs/lo_LA/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/lo_LA/paybox.lang b/htdocs/langs/lo_LA/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/lo_LA/paybox.lang +++ b/htdocs/langs/lo_LA/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/lo_LA/paypal.lang b/htdocs/langs/lo_LA/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/lo_LA/paypal.lang +++ b/htdocs/langs/lo_LA/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lo_LA/printing.lang b/htdocs/langs/lo_LA/printing.lang index d6cf49bd525..8bb312838fc 100644 --- a/htdocs/langs/lo_LA/printing.lang +++ b/htdocs/langs/lo_LA/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=ຊື່ GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/lo_LA/products.lang b/htdocs/langs/lo_LA/products.lang index 36c8c57a65e..2c02e2be6a6 100644 --- a/htdocs/langs/lo_LA/products.lang +++ b/htdocs/langs/lo_LA/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/lo_LA/propal.lang b/htdocs/langs/lo_LA/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/lo_LA/propal.lang +++ b/htdocs/langs/lo_LA/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/lo_LA/resource.lang b/htdocs/langs/lo_LA/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/lo_LA/resource.lang +++ b/htdocs/langs/lo_LA/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/lo_LA/salaries.lang b/htdocs/langs/lo_LA/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/lo_LA/salaries.lang +++ b/htdocs/langs/lo_LA/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/lo_LA/sendings.lang b/htdocs/langs/lo_LA/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/lo_LA/sendings.lang +++ b/htdocs/langs/lo_LA/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/lo_LA/stocks.lang b/htdocs/langs/lo_LA/stocks.lang index 1db49b8d8dd..b9f04e614a9 100644 --- a/htdocs/langs/lo_LA/stocks.lang +++ b/htdocs/langs/lo_LA/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=ສ້າງ +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=ລາຍການ diff --git a/htdocs/langs/lo_LA/stripe.lang b/htdocs/langs/lo_LA/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/lo_LA/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lo_LA/supplier_proposal.lang b/htdocs/langs/lo_LA/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/lo_LA/supplier_proposal.lang +++ b/htdocs/langs/lo_LA/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/lo_LA/suppliers.lang b/htdocs/langs/lo_LA/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/lo_LA/suppliers.lang +++ b/htdocs/langs/lo_LA/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/lo_LA/trips.lang b/htdocs/langs/lo_LA/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/lo_LA/trips.lang +++ b/htdocs/langs/lo_LA/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/lo_LA/users.lang b/htdocs/langs/lo_LA/users.lang index 52e86969e00..c8567a49c23 100644 --- a/htdocs/langs/lo_LA/users.lang +++ b/htdocs/langs/lo_LA/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/lo_LA/website.lang b/htdocs/langs/lo_LA/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/lo_LA/website.lang +++ b/htdocs/langs/lo_LA/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/lo_LA/withdrawals.lang b/htdocs/langs/lo_LA/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/lo_LA/withdrawals.lang +++ b/htdocs/langs/lo_LA/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/lt_LT/accountancy.lang b/htdocs/langs/lt_LT/accountancy.lang index 468919c7b6d..470d34a045e 100644 --- a/htdocs/langs/lt_LT/accountancy.lang +++ b/htdocs/langs/lt_LT/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Pridėti apskaitos sąskaitą AccountAccounting=Apskaitos sąskaita AccountAccountingShort=Sąskaita SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Pardavimai AccountingJournalType3=Pirkimai AccountingJournalType4=Bankas +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksportas Export=Eksportas +ExportDraftJournal=Export draft journal Modelcsv=Eksporto modelis OptionsDeactivatedForThisExportModel=Šiam eksporto modeliui opcijos išjungtos Selectmodelcsv=Pasirinkite eksporto modelį diff --git a/htdocs/langs/lt_LT/admin.lang b/htdocs/langs/lt_LT/admin.lang index 694a3c5edec..3b9efdaa0fb 100644 --- a/htdocs/langs/lt_LT/admin.lang +++ b/htdocs/langs/lt_LT/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Prašyti tiekėjo komercinio pasiūlymo ir kainų Module1200Name=Mantis Module1200Desc=Mančio integracija Module1400Name=Apskaita -Module1400Desc=Apskaitos valdymas (dvivietės šalys) +Module1400Desc=Accounting management (double entries) Module1520Name=Dokumento generavimas Module1520Desc=Masinis pašto dokumentų generavimas Module1780Name=Žymės / Kategorijos @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=PayPal Module50200Desc=Modulis siūlo internetinio mokėjimo kreditine kortele per PayPal puslapį Module50400Name=Apskaita (Išankstinė) -Module50400Desc=Apskaitos tvarkymas (sudvejintas) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/lt_LT/agenda.lang b/htdocs/langs/lt_LT/agenda.lang index 25f6ce83f56..e1fed8a780d 100644 --- a/htdocs/langs/lt_LT/agenda.lang +++ b/htdocs/langs/lt_LT/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID įvykis Actions=Įvykiai Agenda=Operacijų sąrašas +TMenuAgenda=Operacijų sąrašas Agendas=Operacijų sąrašai LocalAgenda=Vidinis kalendorius ActionsOwnedBy=Įvykio savininkas @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Sąskaita-faktūra %s ištrinta InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Siunta %s patvirtinta -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Užsakymas %s pripažintas galiojančiu @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervencija %s išsiųsta EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Pradžios data DateActionEnd=Pabaigos data AgendaUrlOptions1=Taip pat galite pridėti šiuos parametrus išvesties filtravimui: -AgendaUrlOptions2=login=%s uždrausti išvestis veiksmų sukurtų ar priskirtų vartotojui %s išvestis. AgendaUrlOptions3=logina=%s uždrausti vartotojo veiksmų išvestis %s. -AgendaUrlOptions4=logint =%s ​​apriboti išvedimą veiksmais, priskirtais vartotojui %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=projektas=PROJECT_ID uždrausti veiksmų asocijuotų su projektu PROJECT_ID išvestis. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/lt_LT/banks.lang b/htdocs/langs/lt_LT/banks.lang index 8a129e47d00..7c59dc96619 100644 --- a/htdocs/langs/lt_LT/banks.lang +++ b/htdocs/langs/lt_LT/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Operacijos ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,7 +75,7 @@ Conciliate=Suderinti Conciliation=Suderinimas ReconciliationLate=Reconciliation late IncludeClosedAccount=Įtraukti uždarytas sąskaitas -OnlyOpenedAccount=Tik atidarytas sąskaitas +OnlyOpenedAccount=Tik atidarytos sąskaitos AccountToCredit=Kredituoti sąskaitą AccountToDebit=Debetuoti sąskaitą DisableConciliation=Išjungti suderinimo funkciją šiai sąskaitai @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Čekis grąžintas ir sąskaita iš naujo atida BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/lt_LT/bills.lang b/htdocs/langs/lt_LT/bills.lang index 949f6b5aa51..3755569a0fb 100644 --- a/htdocs/langs/lt_LT/bills.lang +++ b/htdocs/langs/lt_LT/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standartinė sąskaita-faktūra InvoiceStandardAsk=Standartinė sąskaita-faktūra InvoiceStandardDesc=Šio tipo sąskaita-faktūra yra bendra sąskaita-faktūra. -InvoiceDeposit=Depozito sąskaita-faktūra -InvoiceDepositAsk=Depozito sąskaita-faktūra -InvoiceDepositDesc=Ši sąskaita-faktūra įvykdyta, kada depozitas gautas. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Išankstinė (proforma) sąskaita-faktūra InvoiceProFormaAsk=išankstinė (proforma) sąskaita-faktūra InvoiceProFormaDesc=Išankstinė sąskaita-faktūra yra tikros sąskaitos forma, bet neatvaizduojama realioje apskaitoje. @@ -62,7 +62,7 @@ PaymentsBack=Mokėjimai atgal (grąžinimai) paymentInInvoiceCurrency=in invoices currency PaidBack=Sumokėta atgal (grąžinta) DeletePayment=Ištrinti mokėjimą -ConfirmDeletePayment=Ar tikrai norite ištrinti šį mokėjimą ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Tiekėjų mokėjimai ReceivedPayments=Gauti mokėjimai @@ -115,7 +115,7 @@ BillStatus=Sąskaitos-faktūros būklė StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Projektas (turi būti pripažintas galiojančiu) BillStatusPaid=Apmokėtas -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Apmokėtas (paruoštas galutinei sąskaitai-faktūrai) BillStatusCanceled=Neįvykęs BillStatusValidated=Pripažintas galiojančiu (turi būti apmokėtas) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Dalinai apmokėta BillShortStatusDraft=Projektas BillShortStatusPaid=Apmokėta BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Apdorota +BillShortStatusConverted=Apmokėtas BillShortStatusCanceled=Neįvykusi BillShortStatusValidated=Pripažinta galiojančia BillShortStatusStarted=Pradėta @@ -198,12 +198,12 @@ ShowBill=Rodyti sąskaitą-faktūrą ShowInvoice=Rodyti sąskaitą-faktūrą ShowInvoiceReplace=Rodyti pakeičiančią sąskaitą-faktūrą ShowInvoiceAvoir=Rodyti kreditinę sąskaitą -ShowInvoiceDeposit=Rodyti depozito sąskaitą-faktūrą +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Rodyti mokėjimą AlreadyPaid=Jau apmokėta AlreadyPaidBack=Mokėjimas jau grąžintas -AlreadyPaidNoCreditNotesNoDeposits=Jau apmokėta (be kreditinių sąskaitų ir depozitų) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Neįvykusi RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Susijusi nuolaida GlobalDiscount=Visuotinė nuolaida CreditNote=Kreditinė sąskaita CreditNotes=Kreditinės sąskaitos -Deposit=Depozitas -Deposits=Depozitai +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Nuolaida kreditinei sąskaitai %s -DiscountFromDeposit=Mokėjimai iš depozito sąskaitos-faktūros %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ši kredito rūšis gali būti naudojama sąskaitai-faktūrai prieš ją pripažįstant galiojančia CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Negalima pašalinti mokėjimo, nuo tada kai ExpectedToPay=Laukiamas mokėjimas CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Sumokėta šiuo mokėjimu -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Priskirtii "Apmokėta" visas pilnai grąžintas kreditines sąskaitas. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Visos sąskaitos-faktūros, neturinčios neapmokėto likučio bus automatiškai uždarytos ir perkeltos į "Apmokėta". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Sąskaitos-faktūros PDF šablonas Crabe. Pilnas sąskaitos-faktūros šablonas (rekomenduojamas Šablonas) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Grąžinimo numeris formatu %syymm-nnnn standartinėms sąskaitoms-faktūroms ir %syymm-nnnn kreditinėms sąskaitoms, kur yy yra metai, mm mėnuo ir nnnn yra seka be pertrūkių ir be grįžimo į 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Sąskaita, prasidedanti $syymm, jau egzistuoja ir yra nesuderinama su šiuo sekos modeliu. Pašalinkite ją arba pakeiskite jį, kad aktyvuoti šį modulį. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Atstovas šiai kliento sąskaitai-faktūrai TypeContact_facture_external_BILLING=Kliento sąskaitos-faktūros kontaktas diff --git a/htdocs/langs/lt_LT/bookmarks.lang b/htdocs/langs/lt_LT/bookmarks.lang index 86446f6fd39..3b2187c4123 100644 --- a/htdocs/langs/lt_LT/bookmarks.lang +++ b/htdocs/langs/lt_LT/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Pridėti šį puslapį į žymeklių sąrašą +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Žymėti Bookmarks=Žymekliai +ListOfBookmarks=Žymeklių sąrašas +EditBookmarks=List/edit bookmarks NewBookmark=Naujas žymeklis ShowBookmark=Rodyti žymeklį OpenANewWindow=Atidaryti naują langą @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Naujas langas BookmarkTargetReplaceWindowShort=Dabartinis langas BookmarkTitle=Žymeklio pavadinimas UrlOrLink=URL -BehaviourOnClick=Elgsena, kai paspaudžiamas URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Sukurti žymeklį SetHereATitleForLink=Nustatykite žymeklio pavadinimą UseAnExternalHttpLinkOrRelativeDolibarrLink=Naudoti išorinį http URL arba susijusį Dolibarr URL diff --git a/htdocs/langs/lt_LT/boxes.lang b/htdocs/langs/lt_LT/boxes.lang index 94b35129cfd..3906fec67f0 100644 --- a/htdocs/langs/lt_LT/boxes.lang +++ b/htdocs/langs/lt_LT/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss informacija BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Klientų užsakymai ForProposals=Pasiūlymai LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/lt_LT/cashdesk.lang b/htdocs/langs/lt_LT/cashdesk.lang index 6ea132b6b9e..f714455e7f2 100644 --- a/htdocs/langs/lt_LT/cashdesk.lang +++ b/htdocs/langs/lt_LT/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Skirtumas TotalTicket=Visas bilietas NoVAT=Šiam pardavimui nėra PVM Change=Gautas perviršis -BankToPay=Įrašyti į sąskaitą +BankToPay=Account for payment ShowCompany=Rodyti įmonę ShowStock=Rodyti sandėlį DeleteArticle=Spustelėkite pašalinti šį straipsnį diff --git a/htdocs/langs/lt_LT/categories.lang b/htdocs/langs/lt_LT/categories.lang index eeb53dede55..ec7e8feeef2 100644 --- a/htdocs/langs/lt_LT/categories.lang +++ b/htdocs/langs/lt_LT/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category -Rubriques=Tags/Categories +Rubriques=Žymės / Kategorijos +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=Į @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Ši kategorija jau egzistuoja su šia nuoroda ContentsVisibleByAllShort=Turinys matomas visiems ContentsNotVisibleByAllShort=Turinys nėra matomos visiems DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/lt_LT/commercial.lang b/htdocs/langs/lt_LT/commercial.lang index ff8b18235e4..99866670f0e 100644 --- a/htdocs/langs/lt_LT/commercial.lang +++ b/htdocs/langs/lt_LT/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Susitikimas su %s ShowTask=Rodyti užduotį ShowAction=Rodyti įvykį ActionsReport=Įvykių ataskaita -ThirdPartiesOfSaleRepresentative=Trečiosios šalys su pardavimų atstovais +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Pardavimų atstovas SalesRepresentatives=Pardavimo atstovai SalesRepresentativeFollowUp=Pardavimų atstovas (tęsinys) diff --git a/htdocs/langs/lt_LT/companies.lang b/htdocs/langs/lt_LT/companies.lang index bfcfb68884a..da70c73a205 100644 --- a/htdocs/langs/lt_LT/companies.lang +++ b/htdocs/langs/lt_LT/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Naujas privatus asmuo NewCompany=Nauja įmonė (planas, klientas, tiekėjas) NewThirdParty=Naujas trečioji šalis (planas, klientas, tiekėjas) CreateDolibarrThirdPartySupplier=Sukurti trečiąją šalį (tiekėją) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Sukurti trečią šalį CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Numatoma sritis IdThirdParty=Trečiosios šalies ID @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Klientai ThirdPartyCustomersWithIdProf12=Klientai su %s arba %s ThirdPartySuppliers=Tiekėjai ThirdPartyType=Trečioji šalis tipas -Company/Fundation=Įmonė/Organizacija Individual=Privatus asmuo ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Motininė įmonė @@ -78,10 +77,10 @@ VATIsNotUsed=PVM nenaudojamas CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Pasiūlymai +OverAllOrders=Užsakymai +OverAllInvoices=Sąskaitos-faktūros +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Naudokite antrą mokestį LocalTax1IsUsedES= RE naudojamas @@ -237,6 +236,12 @@ ProfId3TN=Prof ID 3 (Douane code) ProfId4TN=Prof ID 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof ID 1 (OGRN) ProfId2RU=Prof ID 2 (INN) ProfId3RU=Prof ID 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Santykinė nuolaida CustomerAbsoluteDiscountShort=Absoliuti nuolaida CompanyHasRelativeDiscount=Šis klientas turi nuolaidą pagal nutylėjimą %s%% CompanyHasNoRelativeDiscount=Šis klientas neturi santykinės nuolaidos pagal nutylėjimą -CompanyHasAbsoluteDiscount=Šis klientas dar turi nuolaidos kreditų ar depozitų už %s%s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Šis klientas dar turi kreditinių sąskaitų %s %s CompanyHasNoAbsoluteDiscount=Šis klientas neturi nuolaidų kreditų CustomerAbsoluteDiscountAllUsers=Absoliutinės nuolaidos (skiriama visiems vartotojams) @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kodas yra nemokamas. Šis kodas gali būti modifikuotas b ManagingDirectors=Vadovo (-ų) pareigos (Vykdantysis direktorius (CEO), direktorius, prezidentas ...) MergeOriginThirdparty=Dubliuoti trečiąją šalį (trečiąją šalį, kurią norite ištrinti) MergeThirdparties=Sujungti trečiąsias šalis -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Trečiosios šalys buvo sujungtos SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/lt_LT/contracts.lang b/htdocs/langs/lt_LT/contracts.lang index 3dd2d435fd9..11c77c05510 100644 --- a/htdocs/langs/lt_LT/contracts.lang +++ b/htdocs/langs/lt_LT/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Šiame sąraše yra tik paslaugos sutarčių treč StandardContractsTemplate=Standartinės sutarties forma ContactNameAndSignature=%s, vardas ir parašas: OnlyLinesWithTypeServiceAreUsed=Padauginamos tik "Service" tipo eilutės +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Pardavimų atstovas pasirašantis sutartį diff --git a/htdocs/langs/lt_LT/exports.lang b/htdocs/langs/lt_LT/exports.lang index 5514b5b41ab..6196682ae0a 100644 --- a/htdocs/langs/lt_LT/exports.lang +++ b/htdocs/langs/lt_LT/exports.lang @@ -110,13 +110,24 @@ Enclosure=Priedas SpecialCode=Specialusis kodas ExportStringFilter=%% leidžia pakeisti vieną ar daugiau simbolių tekste ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtruoja paeiliui metai/mėnuo/diena
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtruoja diapazone metai/mėnesiai/dienos
> YYYY, > YYYYMM, > YYYYMMDD : filtruoja visus sekančius metai/mėnesiai/dienos
< YYYY, < YYYYMM, < YYYYMMDD : filtruoja visus ankstesnius metai/mėnesiai/dienos -ExportNumericFilter='NNNNN' filtruos pagal vieną reikšmę
'NNNNN+NNNNN' filtruos diapazono reikšmes
'>NNNNN' filtruos mažesnes reikšmes
'>NNNNN' filtruos didesnes reikšmes. +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Jei norite filtruoti pagal kai kokias reikšmes, įveskite reikšmes čia. FilteredFields=Atfiltruoti laukeliai FilteredFieldsValues=Reikšmės filtravimui FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/lt_LT/holiday.lang b/htdocs/langs/lt_LT/holiday.lang index fa7334e1353..6c50e9b3d59 100644 --- a/htdocs/langs/lt_LT/holiday.lang +++ b/htdocs/langs/lt_LT/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Atšauktas RefuseCP=Atmestas ValidatorCP=Tvirtintojas/aprobatorius ListeCP=List of leaves -ReviewedByCP=Bus peržiūrėtas +ReviewedByCP=Will be approved by DescCP=Aprašymas SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/lt_LT/install.lang b/htdocs/langs/lt_LT/install.lang index 67db0f80d0b..179207609b6 100644 --- a/htdocs/langs/lt_LT/install.lang +++ b/htdocs/langs/lt_LT/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Jūs naudojate Dolibarr nustatymų vedlį iš DoliWamp, to KeepDefaultValuesDeb=Naudojate Dolibarr vedlį iš Linux paketo (Ubuntu, Debian, Fedora ...), todėl čia siūlomos reikšmės jau yra optimizuotos. Tik duomenų bazės savininko slaptažodis turi būti pilnai sukurtas. Keiskite kitus parametrus tik jei tikrai žinote, ką darote. KeepDefaultValuesMamp=Naudojate Dolibarr vedlį iš DoliMamp, todėl čia siūlomos reikšmės jau yra optimizuotos. Keiskite juos tik jei tikrai žinote, ką darote. KeepDefaultValuesProxmox=Naudojate Dolibarr vedlį iš Proxmox virtualaus prietaiso, todėl čia siūlomos reikšmės jau yra optimizuotos. keiskite juos tik jei tikrai žinote, ką darote. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/lt_LT/interventions.lang b/htdocs/langs/lt_LT/interventions.lang index 1e0b457569e..5dc2ff3ca32 100644 --- a/htdocs/langs/lt_LT/interventions.lang +++ b/htdocs/langs/lt_LT/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Sekantis kiento kontaktas # Modele numérotation diff --git a/htdocs/langs/lt_LT/languages.lang b/htdocs/langs/lt_LT/languages.lang index 6fcbede78d3..a852b3d54da 100644 --- a/htdocs/langs/lt_LT/languages.lang +++ b/htdocs/langs/lt_LT/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Vokietijos Language_de_AT=Vokiečių (Austrija) Language_de_CH=German (Switzerland) Language_el_GR=Graikų +Language_el_CY=Greek (Cyprus) Language_en_AU=Anglų (Australija) Language_en_CA=English (Canada) Language_en_GB=Anglų (Jungtinė Karalystė) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Ispanų (Čilė) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Ispanų (Hondūras) Language_es_MX=Ispanų (Meksika) +Language_es_PA=Spanish (Panama) Language_es_PY=Ispanų (Paragvajus) Language_es_PE=Ispanų (Peru) Language_es_PR=Ispanų (Puerto Rikas) @@ -50,12 +53,14 @@ Language_is_IS=Islandų Language_it_IT=Italijos Language_ja_JP=Japonijos Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korėjiečių Language_lo_LA=Lao Language_lt_LT=Lietuvos Language_lv_LV=Latvijos Language_mk_MK=Makedonijos +Language_mn_MN=Mongolian Language_nb_NO=Norvegų (knyginė) Language_nl_BE=Olandų (Belgija) Language_nl_NL=Olandų (Nyderlandai) diff --git a/htdocs/langs/lt_LT/loan.lang b/htdocs/langs/lt_LT/loan.lang index 13cc8940242..7b3cb047933 100644 --- a/htdocs/langs/lt_LT/loan.lang +++ b/htdocs/langs/lt_LT/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s skiriama PALŪKANOMS GoToPrincipal=%s skiriama PASKOLOS GRĄŽINIMUI YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Paskolos modulio konfigūracija LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/lt_LT/mails.lang b/htdocs/langs/lt_LT/mails.lang index 4dc58be2aa7..d7c9bceab54 100644 --- a/htdocs/langs/lt_LT/mails.lang +++ b/htdocs/langs/lt_LT/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Išsiųsta dalinai MailingStatusSentCompletely=Išsiųsta pilnai MailingStatusError=Klaida MailingStatusNotSent=Neišsiųsta -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=E-paštas sėkmingai patvirtintas MailUnsubcribe=Atsisakyti pasirašymo MailingStatusNotContact=Daugiau nesikreipti @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Failo eilutė %s @@ -116,8 +120,8 @@ Notifications=Pranešimai NoNotificationsWillBeSent=Nėra numatytų e-pašto pranešimų šiam įvykiui ir įmonei ANotificationsWillBeSent=1 pranešimas bus išsiųstas e-paštu SomeNotificationsWillBeSent=%s pranešimai bus siunčiami e-paštu -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Visų išsiųstų e-pašto pranešimų sąrašas MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/lt_LT/main.lang b/htdocs/langs/lt_LT/main.lang index ca2af29824f..fee452d039b 100644 --- a/htdocs/langs/lt_LT/main.lang +++ b/htdocs/langs/lt_LT/main.lang @@ -72,8 +72,10 @@ SeeHere=Žiūrėkite čia Apply=Taikyti BackgroundColorByDefault=Fono spalva pagal nutylėjimą FileRenamed=The file was successfully renamed -FileUploaded=Failas buvo sėkmingai įkeltas FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Failas buvo sėkmingai įkeltas +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Failas prikabinimui pasirinktas, bet dar nebuvo įkeltas. Paspauskite tam "Pridėti failą". NbOfEntries=Įrašų skaičius GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Iš viso RE TotalLT2ES=Iš viso IRPF HT=Atskaityta mokesčių TTC=Įtraukta mokesčių +INCT=Inc. all taxes VAT=Pardavimo mokestis VATs=Pardavimų mokesčiai LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Spa MonthShort11=Lap MonthShort12=Grd AttachedFiles=Prikabinti failus ir dokumentus -FileTransferComplete=Failas buvo įkeltas sėkmingai DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/lt_LT/margins.lang b/htdocs/langs/lt_LT/margins.lang index 94b4f9b1831..bca85b94ec6 100644 --- a/htdocs/langs/lt_LT/margins.lang +++ b/htdocs/langs/lt_LT/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/lt_LT/members.lang b/htdocs/langs/lt_LT/members.lang index 8a2e5cf80ae..b46e1501596 100644 --- a/htdocs/langs/lt_LT/members.lang +++ b/htdocs/langs/lt_LT/members.lang @@ -25,8 +25,8 @@ MembersListUpToDate=Patvirtintų galiojančių narių su atnaujintu pasirašymu MembersListNotUpToDate=Patvirtintų galiojančių narių su pasenusiu pasirašymu sąrašas MembersListResiliated=List of terminated members MembersListQualified=Slaptų narių sąrašas (qualified) -MenuMembersToValidate=Numatomi nariai -MenuMembersValidated=Patvirtinti galiojantys nariai +MenuMembersToValidate=Projektiniai nariai +MenuMembersValidated=Patvirtinti nariai MenuMembersUpToDate=Atnaujinti nariai MenuMembersNotUpToDate=Pasenę nariai MenuMembersResiliated=Terminated members @@ -44,11 +44,11 @@ MembersTypes=Narių tipai MemberStatusDraft=Projektas (turi būti patvirtintas) MemberStatusDraftShort=Projektas MemberStatusActive=Patvirtintas (laukiama pasirašymo) -MemberStatusActiveShort=Patvirtintas +MemberStatusActiveShort=Galiojantis MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Pasibaigęs MemberStatusPaid=Pasirašymas atnaujintas -MemberStatusPaidShort=Atnaujintas +MemberStatusPaidShort=Atnaujinta MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated MembersStatusToValid=Projektiniai nariai @@ -90,6 +90,7 @@ PublicMemberList=Viešų narių sąrašas BlankSubscriptionForm=Viešo auto pasirašymo forma BlankSubscriptionFormDesc=Dolibarr gali suteikti Jums viešą URL ir leisti išorinius lankytojus pateikti užklausimus dėl pasirašymo į organizaciją. Jei mokėjimo internetu modulis įjungtas, mokėjimo forma bus pateikiama automatiškai. EnablePublicSubscriptionForm=Įjungti viešą auto pasirašymo formą +ForceMemberType=Force the member type ExportDataset_member_1=Nariai ir pasirašymai ImportDataset_member_1=Nariai LastMembersModified=Latest %s modified members @@ -150,7 +151,8 @@ MembersByTownDesc=Šis ekranas rodo narių statistiką pagal miestus MembersStatisticsDesc=Pasirinkite statistiką, kurią norite skaityti MenuMembersStats=Statistika LastMemberDate=Latest member date -Nature=Kilmė +LatestSubscriptionDate=Latest subscription date +Nature=Prigimtis Public=Informacija yra vieša NewMemberbyWeb=Naujas narys pridėtas. Laukiama patvirtinimo NewMemberForm=Naujo nario forma diff --git a/htdocs/langs/lt_LT/modulebuilder.lang b/htdocs/langs/lt_LT/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/lt_LT/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/lt_LT/oauth.lang b/htdocs/langs/lt_LT/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/lt_LT/oauth.lang +++ b/htdocs/langs/lt_LT/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/lt_LT/other.lang b/htdocs/langs/lt_LT/other.lang index eff7ebeab4d..1646697e34c 100644 --- a/htdocs/langs/lt_LT/other.lang +++ b/htdocs/langs/lt_LT/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=svaras +WeightUnitounce=uncija Length=Ilgis LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/lt_LT/paybox.lang b/htdocs/langs/lt_LT/paybox.lang index f8491b6297c..4c7bf82b36a 100644 --- a/htdocs/langs/lt_LT/paybox.lang +++ b/htdocs/langs/lt_LT/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-paštas mokėjimo patvirtinimo gavimui Creditor=Kreditorius PaymentCode=Mokėjimo kodas PayBoxDoPayment=Eiti į mokėjimą +ToPay=Atlikti mokėjimą YouWillBeRedirectedOnPayBox=Būsite nukreipti į saugų Paybox puslapį kredito kortelės informacijos įvedimui Continue=Kitas ToOfferALinkForOnlinePayment=URL %s mokėjimui diff --git a/htdocs/langs/lt_LT/paypal.lang b/htdocs/langs/lt_LT/paypal.lang index 8c639259308..8403aff52aa 100644 --- a/htdocs/langs/lt_LT/paypal.lang +++ b/htdocs/langs/lt_LT/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Tai operacijos ID: %s PAYPAL_ADD_PAYMENT_URL=Pridėti PayPal mokėjimo URL, kai siunčiate dokumentą paštu PredefinedMailContentLink=Jūs galite spustelėti ant saugios nuorodos žemiau, kad atlikti mokėjimą (PayPal), jei tai dar nėra padaryta.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Jūs šiuo metu esate "smėlio dėžės" režime (sandbox) -NewPaypalPaymentReceived=Gautas naujas Paypal mokėjimas -NewPaypalPaymentFailed=Bandyta atlikti naują PayPal mokėjimą, bet nepavyko +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-paštas įspėjimui po mokėjimo (sėkmingas ar ne) ReturnURLAfterPayment=Grįžti į URL po apmokėjimo -ValidationOfPaypalPaymentFailed=Nepavykusio PayPal mokėjimo patvirtinimas -PaypalConfirmPaymentPageWasCalledButFailed=PayPal mokėjimo patvirtinimo puslapis buvo iškviestas Paypal, bet patvirtinimas nepavyko +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lt_LT/printing.lang b/htdocs/langs/lt_LT/printing.lang index 5c5decbb9e3..688a7172e70 100644 --- a/htdocs/langs/lt_LT/printing.lang +++ b/htdocs/langs/lt_LT/printing.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=Direct Printing -Module64000Desc=Enable Direct Printing System +Module64000Name=Tiesioginis spausdinimas +Module64000Desc=Įjungti tiesioginio spausdinimo sistemą PrintingSetup=Setup of Direct Printing System PrintingDesc=This module adds a Print button to send documents directly to a printer (without opening document into an application) with various module. MenuDirectPrinting=Direct Printing jobs @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=Pavadinimas/vardas GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -28,9 +28,9 @@ GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server -PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_PORT=Prievadas (port) +PRINTIPP_USER=Prisijungimas +PRINTIPP_PASSWORD=Slaptažodis NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,12 +40,12 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Spalva IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/lt_LT/products.lang b/htdocs/langs/lt_LT/products.lang index 0169e75851b..07e4f15bb86 100644 --- a/htdocs/langs/lt_LT/products.lang +++ b/htdocs/langs/lt_LT/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produktas ar Paslauga ProductsAndServices=Produktai ir Paslaugos ProductsOrServices=Produktai ar Paslaugos -ProductsOnSell=Produktas pardavimui arba pirkimui -ProductsNotOnSell=Produktas ne pardavimui ir ne pirkimui +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Paslaugos pardavimui arba pirkimui -ServicesNotOnSell=Paslaugos ne pardavimui +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Sekundė +unitH=Valanda +unitD=Diena +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Produkto šablono nuoroda ServiceCodeModel=Paslaugos šablono nuoroda CurrentProductPrice=Dabartinė kaina @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Gaminti ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/lt_LT/propal.lang b/htdocs/langs/lt_LT/propal.lang index 53df03b5932..d9ee04805d0 100644 --- a/htdocs/langs/lt_LT/propal.lang +++ b/htdocs/langs/lt_LT/propal.lang @@ -3,7 +3,7 @@ Proposals=Komerciniai pasiūlymai Proposal=Komercinis pasiūlymas ProposalShort=Pasiūlymas ProposalsDraft=Komercinių pasiūlymų projektai -ProposalsOpened=Atidaryti komerciniai pasiūlymai +ProposalsOpened=Open commercial proposals Prop=Komerciniai pasiūlymai CommercialProposal=Komercinis pasiūlymas ProposalCard=Pasiūlymo kortelė diff --git a/htdocs/langs/lt_LT/resource.lang b/htdocs/langs/lt_LT/resource.lang index 3311e93fd7d..ce186eadedd 100644 --- a/htdocs/langs/lt_LT/resource.lang +++ b/htdocs/langs/lt_LT/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resursas sėkmingai panaikintas DictionaryResourceType=Resursų tipas SelectResource=Pasirinkti resursą + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Ištekliai diff --git a/htdocs/langs/lt_LT/salaries.lang b/htdocs/langs/lt_LT/salaries.lang index 9f8ca851f05..23c736cc4e7 100644 --- a/htdocs/langs/lt_LT/salaries.lang +++ b/htdocs/langs/lt_LT/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Atlyginimas Salaries=Atlyginimai NewSalaryPayment=Naujas atlyginimo mokėjimas diff --git a/htdocs/langs/lt_LT/sendings.lang b/htdocs/langs/lt_LT/sendings.lang index e343a76a21f..b3e6634374a 100644 --- a/htdocs/langs/lt_LT/sendings.lang +++ b/htdocs/langs/lt_LT/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Paprastas dokumento modelis DocumentModelMerou=Merou A5 modelis WarningNoQtyLeftToSend=Įspėjimas, nėra produktų, laukiančių išsiuntimo StatsOnShipmentsOnlyValidated=Tik patvirtintas siuntas parodanti statistika. Naudojama data yra siuntos patvirtinimo data (suplanuota pristatymo data yra ne visada žinoma). @@ -51,10 +50,10 @@ ActionsOnShipping=Siuntų įvykiai LinkToTrackYourPackage=Nuoroda sekti Jūsų siuntos kelią ShipmentCreationIsDoneFromOrder=Šiuo metu, naujos siuntos sukūrimas atliktas iš užsakymo kortelės. ShipmentLine=Siuntimo eilutė -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/lt_LT/stocks.lang b/htdocs/langs/lt_LT/stocks.lang index 3c6dd908bd7..d451eea80ce 100644 --- a/htdocs/langs/lt_LT/stocks.lang +++ b/htdocs/langs/lt_LT/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Judėjimo etiketė NumberOfUnit=Vienetų skaičius UnitPurchaseValue=Vieneto įsigijimo kaina StockTooLow=Atsargų per mažai -StockLowerThanLimit=Atsargų mažiau nei kritinė riba +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Reikšmė PMPValue=Vidutinė svertinė kaina PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Kiekis išsiųstas QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Atsargos siunčiamos +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Mažinti realių atsargų klientų sąskaitų-faktūrų/kreditinių sąskaitų patvirtinimuose @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Padidinti realių atsargų tiekėjams sąskaitos / kreditinės pastabos patvirtinimo ReStockOnValidateOrder=Padidinti realias atsargas tiekėjų užsakymų patvirtinime -ReStockOnDispatchOrder=Padidinti realias atsargas, rankiniu būdu atliekant išsiuntimą į sandėlius, gavus tiekėjo užsakymą +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Užsakymas dar neturi arba jau nebeturi statuso, kuris leidžia išsiųsti produktus į atsargų sandėlius. -StockDiffPhysicTeoric=Skirtumo tarp fizinių ir teorinių atsargų sandėlyje paaiškinimas +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nėra iš anksto nustatytų produktų šiam objektui. Atsargų siuntimas nėra reikalingas DispatchVerb=Išsiuntimas StockLimitShort=Riba perspėjimui StockLimit=Sandėlio riba perspėjimui PhysicalStock=Fizinės atsargos RealStock=Realios atsargos +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtualios atsargos +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Sandėlio ID DescWareHouse=Sandėlio aprašymas LieuWareHouse=Sandėlio vieta @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Produkto %s kiekis atsargose iki pasirinkto periodo (< % NbOfProductAfterPeriod=Produkto %s kiekis sandėlyje po pasirinkto periodo (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Pasirinkite produktą, kiekį, sandėlį šaltinį ir galutinį sandėlį, tada spauskite "%s". Kai tai bus padaryta visiems reikiamiems judėjimams, spauskite "%s". -RecordMovement=Įrašyti perdavimą +RecordMovement=Record transfer ReceivingForSameOrder=Įplaukos už šį užsakymą StockMovementRecorded=Įrašyti atsargų judėjimai RuleForStockAvailability=Atsargų reikalavimų taisyklės @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Redaguoti +inventoryValidate=Galiojantis +inventoryDraft=Veikia +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Sukurti +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategorijų filtras +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Pridėti +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Ištrinti eilutę +RegulateStock=Regulate Stock +ListInventory=Sąrašas diff --git a/htdocs/langs/lt_LT/stripe.lang b/htdocs/langs/lt_LT/stripe.lang new file mode 100644 index 00000000000..de2a1fc9d33 --- /dev/null +++ b/htdocs/langs/lt_LT/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Sekantys URL siūlo puslapį klientui Dolibarr objektų mokėjimui +PaymentForm=Mokėjimo forma +WelcomeOnPaymentPage=Sveiki atvykę į mūsų interneto mokėjimo paslaugą +ThisScreenAllowsYouToPay=Šis ekranas leidžia atlikti internetinį mokėjimą į %s +ThisIsInformationOnPayment=Tai informacija apie reikalingą atlikti mokėjimą +ToComplete=Užbaigti +YourEMail=E-paštas mokėjimo patvirtinimo gavimui +STRIPE_PAYONLINE_SENDEMAIL=E-paštas įspėjimui po mokėjimo (sėkmingas ar ne) +Creditor=Kreditorius +PaymentCode=Mokėjimo kodas +StripeDoPayment=Eiti į mokėjimą +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Kitas +ToOfferALinkForOnlinePayment=URL %s mokėjimui +ToOfferALinkForOnlinePaymentOnOrder=URL siūlo %s interneto mokėjimui vartotojo sąsają kliento užsakymui +ToOfferALinkForOnlinePaymentOnInvoice=URL siūlo %s interneto mokėjimui vartotojo sąsają kliento sąskaitai-faktūrai +ToOfferALinkForOnlinePaymentOnContractLine=URL siūlo %s interneto mokėjimui vartotojo sąsają sutarties eilutei. +ToOfferALinkForOnlinePaymentOnFreeAmount=URL siūlo %s interneto mokėjimui vartotojo sąsaja nemokamam kiekiui. +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL pasiūlymui %s interneto mokėjimui vartotojo sąsają nario pasirašymui. +YouCanAddTagOnUrl=Taip pat galite pridėti URL parametrą &tag=value į bet kurį URL (reikalingas tik nemokamam mokėjimui) pridėti nuosavo mokėjimo komentaro žymę. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Šis puslapis patvirtina, kad jūsų mokėjimas buvo užregistruotas. Ačiū. +YourPaymentHasNotBeenRecorded=Mokėjimas nebuvo įregistruotas ir operacija buvo atšaukta. Ačiū. +AccountParameter=Sąskaitos parametrai +UsageParameter=Naudojimo parametrai +InformationToFindParameters=Padėti rasti savo %s sąskaitos informaciją +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Paravėjo vardas +CSSUrlForPaymentForm=CSS stiliaus lapo URL mokėjimo formai +MessageOK=Pranešimas patvirtinto mokėjimo grąžinimo puslapyje +MessageKO=Pranešimas atšaukto mokėjimo grąžinimo puslapyje +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lt_LT/supplier_proposal.lang b/htdocs/langs/lt_LT/supplier_proposal.lang index 634e34696af..795a01fc35c 100644 --- a/htdocs/langs/lt_LT/supplier_proposal.lang +++ b/htdocs/langs/lt_LT/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Projektas (turi būti patvirtintas) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Uždaryta SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Atmestas @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Modelio sukūrimas pagal nutylėjimą DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/lt_LT/suppliers.lang b/htdocs/langs/lt_LT/suppliers.lang index 717aea623da..480e2d79aa1 100644 --- a/htdocs/langs/lt_LT/suppliers.lang +++ b/htdocs/langs/lt_LT/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Kai kurie subproduktai neturi apibrėžtos kainos AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Šis nuorodytas tiekėjas jau yra susietas su nuoroda: %s NoRecordedSuppliers=Nėra įrašytų tiekėjų SupplierPayment=Tiekėjo mokėjimas @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/lt_LT/trips.lang b/htdocs/langs/lt_LT/trips.lang index 0fbae8a690e..3ad4bfe1e81 100644 --- a/htdocs/langs/lt_LT/trips.lang +++ b/htdocs/langs/lt_LT/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Įmokų sąrašas TypeFees=Types of fees ShowTrip=Rodyti išlaidų ataskaitą NewTrip=Nauja išlaidų ataskaita -CompanyVisited=Aplankyta įmonė/organizacija +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Suma arba Kilometrai DeleteTrip=Ištrinti išlaidų ataskaitą ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Laukiama patvirtinimo ExpensesArea=Išlaidų ataskaitų sritis ClassifyRefunded=Klasifikuoti "Grąžinta" ExpenseReportWaitingForApproval=Nauja išlaidų ataskaita buvo pateikta patvirtinimui -ExpenseReportWaitingForApprovalMessage=Nauja išlaidų ataskaita buvo pateikta ir laukia patvirtinimo.\n- Vartotojas: %s\n- Laikotarpis:%s \nSpauskite čia norėdami patvirtinti: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Išlaidų ataskaitos ID AnyOtherInThisListCanValidate=Asmuo informuojamas patvirtinimui. TripSociete=Informacijos įmonė @@ -59,31 +69,24 @@ DATE_REFUS=Atmetimo data DATE_SAVE=Patvirtinimo data DATE_CANCEL=Nutraukimo data DATE_PAIEMENT=Mokėjimo data - BROUILLONNER=Atidaryti iš naujo +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Įvertinti ir pateikti tvirtinimui ValidatedWaitingApproval=Pripažintas (laukia patvirtinimo) - NOT_AUTHOR=Jūs nesate šios išlaidų ataskaitos autorius. Operacija nutraukta. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Patvirtinti išlaidų ataskaitą ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Apmokėti išlaidų ataskaitą ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Grąžinti išlaidų ataskaitos būklę į "Projektas" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Patvirtinti išlaidų ataskaitą ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=Už šį laikotarpį nėra išlaidų ataskaitų eksportui ExpenseReportPayment=Išlaidų apmokėjimų ataskaita - ExpenseReportsToApprove=Išlaidų ataskaitos patvirtinimui ExpenseReportsToPay=Apmokėti išlaidų ataskaitą +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/lt_LT/users.lang b/htdocs/langs/lt_LT/users.lang index 4af781a0ec6..52525930267 100644 --- a/htdocs/langs/lt_LT/users.lang +++ b/htdocs/langs/lt_LT/users.lang @@ -66,8 +66,8 @@ InternalUser=Vidinis vartotojas ExportDataset_user_1=Dolibarr vartotojai ir savybės DomainUser=Domeno Vartotojas %s Reactivate=Atgaivinti -CreateInternalUserDesc=Ši forma leidžia sukurti Jūsų įmonės vidinį vartotoją. Norėdami sukurti išorinį vartotoją (klientą, tiekėją, ...), naudokite "Sukurti Dolibarr vartotoją" per trečių šalių kontaktų kortelių meniu. -InternalExternalDesc=Vidinis vartotojas yra vartotojas, kuris yra Jūsų įmonės/ organizacijos dalis.
Išorinis vartotojas yra klientas, tiekėjas ar kitas.

Abiem atvejais leidimai apibrėžia teises Dolibarr, taip pat išorinis vartotojas gali turėti skirtingą meniu valdiklį, negu vidinis vartotojas (žr. Pagrindinis-Nustatymai-Ekranas) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Leidimas suteiktas, nes paveldėtas iš vieno grupės vartotojų Inherited=Paveldėtas UserWillBeInternalUser=Sukurtas vartotojas bus vidinis vartotojas (nes nėra susietas su konkrečia trečiąja šalimi) diff --git a/htdocs/langs/lt_LT/website.lang b/htdocs/langs/lt_LT/website.lang index 6197580711f..82e2a0f4b54 100644 --- a/htdocs/langs/lt_LT/website.lang +++ b/htdocs/langs/lt_LT/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kodas WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/lt_LT/withdrawals.lang b/htdocs/langs/lt_LT/withdrawals.lang index defb189bf56..542ebf67cc8 100644 --- a/htdocs/langs/lt_LT/withdrawals.lang +++ b/htdocs/langs/lt_LT/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Išėmimo suma WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nėra laukiančios kliento sąskaitos-faktūros mokėjimo režime "Išėmimas". Eiti į "Išėmimas" sąskaitos-faktūros kortelėje ir pateikti prašymą. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Atsakingas vartotojas WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Atmetimo priežastis RefusedInvoicing=Atmetimo apmokestinimas NoInvoiceRefused=Neapmokestinti atmetimo InvoiceRefused=Sąskaita-faktūra atmesta (apmokestinti kliento atmetimą) +StatusDebitCredit=Status debit/credit StatusWaiting=Laukiama StatusTrans=Išsiųsta StatusCredited=Kreditas diff --git a/htdocs/langs/lv_LV/accountancy.lang b/htdocs/langs/lv_LV/accountancy.lang index 115020e1028..8d1e501c208 100644 --- a/htdocs/langs/lv_LV/accountancy.lang +++ b/htdocs/langs/lv_LV/accountancy.lang @@ -8,8 +8,8 @@ ACCOUNTING_EXPORT_AMOUNT=Export amount ACCOUNTING_EXPORT_DEVISE=Export currency Selectformat=Select the format for the file ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name -ThisService=This service -ThisProduct=This product +ThisService=Šis pakalpojums +ThisProduct=Šis produkts DefaultForService=Default for service DefaultForProduct=Default for product CantSuggest=Can't suggest @@ -25,9 +25,10 @@ AssignDedicatedAccountingAccount=New account to assign InvoiceLabel=Invoice label OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information +OtherInfo=Cita informācija DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -61,14 +62,13 @@ ChangeAndLoad=Change and load Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Konts -SubledgerAccount=Subledger Account -subledger_account=Subledger Account -ShowAccountingAccount=Show accounting account +SubledgerAccount=Apakšuzņēmēja konts +ShowAccountingAccount=Rādīt grāmatvedības kontu ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts +MenuDefaultAccounts=Noklusētie konti +MenuVatAccounts=PVN konti +MenuTaxAccounts=Nodokļu konti MenuExpenseReportAccounts=Expense report accounts MenuLoanAccounts=Loan accounts MenuProductsAccounts=Product accounts @@ -77,8 +77,9 @@ Ventilation=Binding to accounts CustomersVentilation=Customer invoice binding SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction +CreateMvts=Izveidot jaunu darījumu UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Konta bilance @@ -138,10 +139,11 @@ Code_tiers=Trešās personas Labelcompte=Konta nosaukums Sens=Sens Codejournal=Žurnāls -NumPiece=Piece number +NumPiece=Gabala numurs TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Nav iestatīts DeleteMvt=Delete Ledger lines DelYear=Gads kurš jādzēš @@ -210,16 +212,18 @@ NewAccountingJournal=New accounting journal ShowAccoutingJournal=Show accounting journal Code=Kods Nature=Daba -AccountingJournalType1=Various operation +AccountingJournalType1=Dažādas darbības AccountingJournalType2=Pārdošanas AccountingJournalType3=Purchases AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksports Export=Eksportēt +ExportDraftJournal=Export draft journal Modelcsv=Eksporta modulis OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export @@ -244,7 +248,7 @@ OptionModeProductBuy=Mode purchases OptionModeProductSellDesc=Show all products with accounting account for sales. OptionModeProductBuyDesc=Show all products with accounting account for purchases. CleanFixHistory=Remove accountancy code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year +CleanHistory=Atiestatīt visas saistītās vērtības izvēlētajam gadam WithoutValidAccount=Without valid dedicated account WithValidAccount=With valid dedicated account diff --git a/htdocs/langs/lv_LV/admin.lang b/htdocs/langs/lv_LV/admin.lang index e10b81e721c..382280d4ebf 100644 --- a/htdocs/langs/lv_LV/admin.lang +++ b/htdocs/langs/lv_LV/admin.lang @@ -2,8 +2,8 @@ Foundation=Organizācija Version=Versija VersionProgram=Programmas versija -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Sākotnējās instalētā versija +VersionLastUpgrade=Jaunākās versijas jauninājums VersionExperimental=Eksperimentāls VersionDevelopment=Attīstība VersionUnknown=Nezināms @@ -19,28 +19,28 @@ LocalSignature=Embedded local signature (less reliable) RemoteSignature=Remote distant signature (more reliable) FilesMissing=Trūkstošie faili FilesUpdated=Atjaunotie faili -FilesModified=Modified Files -FilesAdded=Added Files +FilesModified=Modificētie faili +FilesAdded=Pievienotie faili FileCheckDolibarr=Pārbaudīt aplikācijas failu veselumu AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package XmlNotFound=Xml Integrity File of application not found SessionId=Sesijas ID SessionSaveHandler=Handler, lai saglabātu sesijas -SessionSavePath=Atmiņas sesija lokalizācija +SessionSavePath=Uzglabāšanas sesijas lokalizācija PurgeSessions=Iztīrīt sesijas ConfirmPurgeSessions=Vai jūs tiešām vēlaties iztīrītu visas sesijas? Tas atvienos katru lietotāju (izņemot sevi). NoSessionListWithThisHandler=Saglabāt sesija apdarinātājs konfigurēts jūsu PHP neļauj uzskaitīt visas darbojošās sesijas. LockNewSessions=Bloķēt jaunas sesijas -ConfirmLockNewSessions=Vai jūs tiešām vēlaties, lai ierobežotu jebkuru jaunu Dolibarr savienojumu ar sevi. Tikai lietotājs %s varēs pieslēgties pēc tam. +ConfirmLockNewSessions=Vai jūs tiešām vēlaties, ierobežot jebkuru jaunu Dolibarr savienojumu. Pēc tam varēs pieslēgties tikai lietotājs%s. UnlockNewSessions=Noņemt savienojuma bloķēšanu YourSession=Jūsu sesija Sessions=Lietotāju sesija WebUserGroup=Web servera lietotājs/grupa -NoSessionFound=Jūsu PHP, šķiet, neļauj uzskaitīt aktīvās sesijas. Directory izmanto, lai saglabātu sesijas (%s) var būt aizsargāta (piemēram, pēc OS atļaujas vai PHP direktīvu open_basedir). +NoSessionFound=Jūsu PHP, šķiet, neļauj uzskaitīt aktīvās sesijas. Katalogs, ko izmanto sesiju saglabāšanai (%s), var būt aizsargāts (piemēram, ar OS atļaujām vai PHP direktīvu open_basedir). DBStoringCharset=Datu bāzes kodējuma datu uzglabāšanai DBSortingCharset=Datu bāzes rakstzīmju kopa, lai kārtotu datus WarningModuleNotActive=Modulim %s ir jābūt aktivizētam -WarningOnlyPermissionOfActivatedModules=Tikai atļaujas, kas saistīti ar aktīviem moduļi tiek parādīts šeit. Jūs varat aktivizēt citus moduļus Home->Setup->moduļi lapā. +WarningOnlyPermissionOfActivatedModules=Tikai atļaujas, kas saistīti ar aktīviem moduļi tiek parādīts šeit. Jūs varat aktivizēt citus moduļus Mājās->Iestatījumi->moduļi lapā. DolibarrSetup=Dolibarr instalēšana vai atjaunināšana InternalUser=Iekšējais lietotājs ExternalUser=Ārējais lietotājs @@ -104,7 +104,7 @@ MenuIdParent=Mātes izvēlne ID DetailMenuIdParent=ID vecāku izvēlnē (tukšs top izvēlnē) DetailPosition=Šķirot skaits definēt izvēlnes novietojumu AllMenus=Viss -NotConfigured=Module/Application not configured +NotConfigured=Modulis / aplikācija nav konfigurēta Active=Aktīvs SetupShort=Iestatījumi OtherOptions=Citas iespējas @@ -125,9 +125,9 @@ CurrentHour=PHP laiks (servera) CurrentSessionTimeOut=Pašreizējais sesijas taimauts YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. -Box=Widget -Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets +Box=Logrīks +Boxes=Logrīki +MaxNbOfLinesForBoxes=Maksimālais logrīku līniju skaits PositionByDefault=Noklusējuma secība Position=Pozīcija MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). @@ -193,7 +193,7 @@ OnlyActiveElementsAreShown=Tikai elementus no iespējotu moduļi%s
. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Atrast papildus moduļus ... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore ir oficiālā mājaslapa Dolibarr ERP / CRM papildus moduļiem DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) @@ -214,7 +214,7 @@ MainDbPasswordFileConfEncrypted=Datubāzes paroli šifrēti conf.php (aktivēt i InstrucToEncodePass=To have password encoded into the conf.php file, replace the line
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; ProtectAndEncryptPdfFiles=Ģenerēto PDF failu aizsardzība (aktivizēta NAV ieteicama, masveida pdf veidošanai) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFilesDesc=Aizsardzība PDF dokumentu saglabā to pieejamu lasīt un izdrukāt ar jebkuru PDF pārlūkprogrammu. Tomēr, rediģēšana un kopēšana nav iespējams vairs. Ņemiet vērā, ka, izmantojot šo funkciju veidojot kopējos apvienotos pdf nedarbojas (piemēram, neapmaksātiem rēķiniem). Feature=Iespēja DolibarrLicense=Licence Developpers=Izstrādātāji/ziedotāji @@ -227,7 +227,7 @@ OfficialWebHostingService=Referenced web hosting services (Cloud hosting) ReferencedPreferredPartners=Preferred Partners OtherResources=Other resources ExternalResources=External resources -SocialNetworks=Social Networks +SocialNetworks=Sociālie tīkli ForDocumentationSeeWiki=Par lietotāju vai attīstītājs dokumentācijas (Doc, FAQ ...),
ieskatieties uz Dolibarr Wiki:
%s ForAnswersSeeForum=Attiecībā uz jebkuru citu jautājumu / palīdzēt, jūs varat izmantot Dolibarr forumu:
%s HelpCenterDesc1=Šī sadaļa var palīdzēt jums, lai saņemtu palīdzības dienesta atbalstu Dolibarr programmai. @@ -237,11 +237,11 @@ MeasuringUnit=Mērvienības LeftMargin=Left margin TopMargin=Top margin PaperSize=Paper type -Orientation=Orientation +Orientation=Orientācija SpaceX=Space X SpaceY=Space Y -FontSize=Font size -Content=Content +FontSize=Fonta izmērs +Content=Saturs NoticePeriod=Notice period NewByMonth=New by month Emails=E-pasti @@ -259,7 +259,7 @@ MAIN_MAIL_SENDMODE=Metode ko izmantot sūtot e-pastus MAIN_MAIL_SMTPS_ID=SMTP ID ja autentificēšana nepieciešama MAIN_MAIL_SMTPS_PW=SMTP parole ja autentificēšanās nepieciešama MAIN_MAIL_EMAIL_TLS= Izmantot TLS (SSL) šifrēšanu -MAIN_MAIL_EMAIL_STARTTLS= Use TLS (STARTTLS) encrypt +MAIN_MAIL_EMAIL_STARTTLS= Izmantot TLS (SSL) šifrēšanu MAIN_DISABLE_ALL_SMS=Atslēgt visas SMS sūtīšanas (izmēģinājuma nolūkā vai demo) MAIN_SMS_SENDMODE=Izmantojamā metode SMS sūtīšanai MAIN_MAIL_SMS_FROM=Noklusētais sūtītāja tālruņa numurs SMS sūtīšanai @@ -270,7 +270,7 @@ FeatureNotAvailableOnLinux=Iezīme nav pieejams Unix, piemēram, sistēmas. Pār SubmitTranslation=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit your change to www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Moduļa iestatīšana -ModulesSetup=Modules/Application setup +ModulesSetup=Moduļu/Aplikāciju iestatīšana ModuleFamilyBase=Sistēma ModuleFamilyCrm=Klientu pārvaldība (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -287,16 +287,16 @@ ModuleFamilyInterface=Interfaces with external systems MenuHandlers=Izvēlnes manipulatori MenuAdmin=Izvēlnes redaktors DoNotUseInProduction=Neizmantot produkcijā -ThisIsProcessToFollow=This is steps to process: +ThisIsProcessToFollow=Šie ir soļi, kas jāipilda: ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: StepNb=Solis %s FindPackageFromWebSite=Atrast paku, kas nodrošina iespēju, kura jums ir nepieciešama (piemēram oficiālajā tīmekļa vietnē %s). DownloadPackageFromWebSite=Lejupielādēt arhīvu (piem. no oficialās mājas lapas %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +UnpackPackageInDolibarrRoot=Atarhivēt paku Dolibarr servera direktorijā, kas paredzēta Dolibarr: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
+SetupIsReadyForUse=Moduļa izvietošana ir pabeigta. Tomēr jums ir jāiespējo un jāiestata modulis jūsu programmā, dodoties uz lapu, lai mainītu moduļu iestatījumus: %s. +NotExistsDirect=Alternatīva saknes direktorijs nav definēta.
+InfDirAlt=Kopš 3 versijas, ir iespējams noteikt alternatīvu sakne directory.Tas ļauj jums saglabāt, tajā pašā vietā, papildinājumus un pielāgotas veidnes.
Jums tikai jāizveido direktoriju Dolibarr saknē (piemēram: custom).
InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. YouCanSubmitFile=For this step, you can send package using this tool: Select module file CurrentVersion=Dolibarr pašreizējā versija @@ -382,10 +382,10 @@ ExtrafieldMail = E-pasts ExtrafieldUrl = Url ExtrafieldSelect = Izvēlēties sarakstu ExtrafieldSelectList = Izvēlieties kādu no tabulas -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Atdalītājs (nevis lauks) ExtrafieldPassword=Parole -ExtrafieldRadio=Radio buttons (on choice only) -ExtrafieldCheckBox=Checkboxes +ExtrafieldRadio=Radio pogas (tikai izvēlei) +ExtrafieldCheckBox=Izvēles rūtiņas ExtrafieldCheckBoxFromList=Checkboxes from table ExtrafieldLink=Link to an object ComputedFormula=Computed field @@ -416,7 +416,7 @@ EraseAllCurrentBarCode=Dzēst visas svītrkodu vērtības ConfirmEraseAllCurrentBarCode=Vai tiešām vēlaties dzēst visas svītrkodu vērtības ? AllBarcodeReset=Visas svītrkodu vērtības dzēstas NoBarcodeNumberingTemplateDefined=No numbering barcode template enabled into barcode module setup. -EnableFileCache=Enable file cache +EnableFileCache=Iespējot faila kešu ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). NoDetails=No more details in footer DisplayCompanyInfo=Rādīt uzņēmuma adresi @@ -429,7 +429,7 @@ ModuleCompanyCodeDigitaria=Grāmatvedība kods ir atkarīgs no trešās personas Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description +ClickToShowDescription=Noklikšķiniet, lai parādītu aprakstu DependsOn=This module need the module(s) RequiredBy=This module is required by module(s) TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. @@ -446,7 +446,7 @@ FreeLegalTextOnExpenseReports=Free legal text on expense reports WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Lietotāji un grupas -Module0Desc=Users / Employees and Groups management +Module0Desc=Lietotāju / Darbinieku un Grupu vadība Module1Name=Trešās personas Module1Desc=Uzņēmumu un kontaktinformācijas vadība (klientu, perspektīvu ...) Module2Name=Tirdzniecība @@ -466,7 +466,7 @@ Module30Desc=Rēķinu un kredītu piezīmi vadību klientiem. Rēķinu pārvald Module40Name=Piegādātāji Module40Desc=Piegādātājs vadības un iepirkuma (rīkojumi un rēķini) Module42Name=Logfaili -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Žurnalēšana (fails, syslog, ...). Šādi žurnāli ir paredzēti tehniskiem / atkļūdošanas nolūkiem. Module49Name=Redaktors Module49Desc=Redaktora vadība Module50Name=Produkti @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Dievlūdzējs Module1200Desc=Mantis integrācija Module1400Name=Grāmatvedība -Module1400Desc=Grāmatvedības vadība (dubultā partijas) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -547,8 +547,8 @@ Module2200Name=Dinamiskas cenas Module2200Desc=Enable the usage of math expressions for prices Module2300Name=Cron Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2400Name=Pasākumi / darba kārtība +Module2400Desc=Sekojiet notikušiem un gaidāmiem notikumiem. Ļaujiet programmai reģistrēt automātiskus notikumus izsekošanas nolūkos vai ierakstiet manuāli notikumus vai sarunas. Module2500Name=Elektroniskā satura pārvaldība Module2500Desc=Saglabāt un nošārēt dokumentus Module2600Name=API/Web services (SOAP server) @@ -585,10 +585,10 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modulis piedāvā tiešsaistes maksājumu lapā ar kredītkarti ar Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). -Module55000Name=Poll, Survey or Vote +Module55000Name=Aptauja vai balsojums Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) Module59000Name=Malas Module59000Desc=Moduli, lai pārvaldītu peļņu @@ -615,8 +615,8 @@ Permission32=Izveidot / mainīt produktus Permission34=Dzēst produktus Permission36=Skatīt/vadīt slēptos produktus Permission38=Eksportēt produktus -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Lasīt projektus un uzdevumus (kopējais projekts un projekti, ar kuriem esmu kontaktējies). Var arī ievadīt patērēto laiku man piešķirtajiem uzdevumiem (laika kontrolsaraksts) +Permission42=Izveidot / modificēt projektus (kopējais projekts un projekti, ar kuriem esmu kontaktējies). Var arī izveidot uzdevumus un piešķirt lietotājus projektam un uzdevumiem Permission44=Dzēst projektus (dalīta projekts un projektu es esmu kontaktpersonai) Permission45=Eksportēt projektus Permission61=Lasīt intervences @@ -859,7 +859,7 @@ DictionaryPaymentModes=Payment modes DictionaryTypeContact=Kontaktu/Adrešu veidi DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Papīra formāts -DictionaryFormatCards=Cards formats +DictionaryFormatCards=Kartes formāti DictionaryFees=Types of fees DictionarySendingMethods=Piegādes veidi DictionaryStaff=Personāls @@ -875,7 +875,7 @@ DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Iestatījumi saglabāti -SetupNotSaved=Setup not saved +SetupNotSaved=Iestatīšana nav saglabāta BackToModuleList=Atpakaļ uz moduļu sarakstu BackToDictionaryList=Atpakaļ uz vārdnīcu sarakstu VATManagement=PVN Vadība @@ -923,7 +923,7 @@ Offset=Kompensācija AlwaysActive=Vienmēr aktīvs Upgrade=Atjaunināt MenuUpgrade=Atjaunināt / Paplašināt -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Izvietot / instalēt ārējo moduli WebServer=Tīmekļa serveris DocumentRootServer=Web servera saknes direktorija DataRootServer=Datu failu direktorija @@ -947,7 +947,7 @@ Host=Serveris DriverType=Draivera veids SummarySystem=Sistēmas informācijas kopsavilkums SummaryConst=Sarakstu ar visiem Dolibarr uzstādīšanas parametriem -MenuCompanySetup=Company/Organisation +MenuCompanySetup=Uzņēmums/Organizācija DefaultMenuManager= Standarta izvēlnes menedžeris DefaultMenuSmartphoneManager=Viedtālruņa izvēlnes vadība Skin=Izskats @@ -958,13 +958,13 @@ DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Dienas ziņa MessageLogin=Iežurnalēšanās lapas paziņojums LoginPage=Login page -BackgroundImageLogin=Background image +BackgroundImageLogin=Fona attēls PermanentLeftSearchForm=Pastāvīgā meklēšanas forma kreisajā izvēlnē DefaultLanguage=Noklusējuma izmantošanas valoda (valodas kods) EnableMultilangInterface=Iespējot daudzvalodu interfeisu EnableShowLogo=Rādīt logotipu kreisajā izvēlnē -CompanyInfo=Company/organisation information -CompanyIds=Company/organisation identities +CompanyInfo=Uzņēmuma/organizācijas informācija +CompanyIds=Uzņēmuma/organizācijas identitātes CompanyName=Nosaukums CompanyAddress=Adrese CompanyZip=Pasta indekss @@ -1676,8 +1676,8 @@ AllPublishers=Visi izdevēji UnknownPublishers=Nezināmi izdevēji AddRemoveTabs=Add or remove tabs AddDictionaries=Pievienot vārdnīcas -AddBoxes=Add widgets -AddSheduledJobs=Add scheduled jobs +AddBoxes=Pievienot logrīkus +AddSheduledJobs=Pievienot plānotos darbus AddHooks=Add hooks AddTriggers=Add triggers AddMenus=Pievienot izvēlnes @@ -1694,7 +1694,7 @@ activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is miss CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. LandingPage=Landing page SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. +ModuleEnabledAdminMustCheckRights=Modulis ir aktivizēts. Atļaujas aktivizētajam modulim (-iem) tika piešķirtas tikai administratoru lietotājiem. Nepieciešamības gadījumā Jums vajadzēs piešķirt tiesības citiem lietotājiem vai grupām manuāli. UserHasNoPermissions=This user has no permission defined TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") BaseCurrency=Reference currency of the company (go into setup of company to change this) diff --git a/htdocs/langs/lv_LV/agenda.lang b/htdocs/langs/lv_LV/agenda.lang index ee6a0b6b4f6..167c8c185ac 100644 --- a/htdocs/langs/lv_LV/agenda.lang +++ b/htdocs/langs/lv_LV/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=Notikuma ID Actions=Notikumi Agenda=Darba kārtība +TMenuAgenda=Darba kārtība Agendas=Darba kārtības LocalAgenda=Iekšējais kalendārs ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Rēķins %s dzēsts InvoicePaidInDolibarr=Rēķimi %s nomainīti uz apmaksātiem InvoiceCanceledInDolibarr=Rēķini %s atcelti MemberValidatedInDolibarr=Dalībnieks %s apstiprināts +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Dalībnieks %s dzēsts MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Sūtījums %s apstiprināts -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Sūtījums %s dzēsts OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Pasūtījums %s pārbaudīts @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Piedāvājums dzēsts OrderDeleted=Pasūtījums dzēsts InvoiceDeleted=Rēķins dzēsts +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Sākuma datums DateActionEnd=Beigu datums AgendaUrlOptions1=Jūs varat pievienot arī šādus parametrus, lai filtrētu produkciju: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint = %s ierobežot izejas darbībām piešķirto lietotāja %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Rādīt kontaktu dzimšanas dienas AgendaHideBirthdayEvents=Slēpt kontaktu dzimšanas dienas diff --git a/htdocs/langs/lv_LV/banks.lang b/htdocs/langs/lv_LV/banks.lang index f2e3c6ecc3a..ec4d9158cdf 100644 --- a/htdocs/langs/lv_LV/banks.lang +++ b/htdocs/langs/lv_LV/banks.lang @@ -59,13 +59,14 @@ AccountCard=Konta kartiņa DeleteAccount=Dzēst kontu ConfirmDeleteAccount=Vai tiešām vēlaties dzēst šo kontu? Account=Konts -BankTransactionByCategories=Bank entries by categories +BankTransactionByCategories=Bankas darījumi pa sadaļām BankTransactionForCategory=Bank entries for category %s RemoveFromRubrique=Noņemt saiti ar sadaļu -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? +RemoveFromRubriqueConfirm=Vai esat pārliecināts, ka vēlaties noņemt saiti starp darījumu un kategoriju? ListBankTransactions=List of bank entries IdTransaction=Darījuma ID BankTransactions=Bank entries +BankTransaction=Bankas darījums ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,7 +75,7 @@ Conciliate=Samierināt Conciliation=Samierināšanās ReconciliationLate=Reconciliation late IncludeClosedAccount=Iekļaut slēgti konti -OnlyOpenedAccount=Tikai atvērtiem kontiem +OnlyOpenedAccount=Tikai atvērtie konti AccountToCredit=Konts, lai kredītu AccountToDebit=Konta norakstīt DisableConciliation=Atslēgt izlīguma funkciju šim kontam @@ -98,7 +99,7 @@ WithdrawalPayment=Izstāšanās maksājums SocialContributionPayment=Social/fiscal tax payment BankTransfer=Bankas pārskaitījums BankTransfers=Bankas pārskaitījumi -MenuBankInternalTransfer=Internal transfer +MenuBankInternalTransfer=Iekšējā pārsūtīšana TransferDesc=Transfer from one account to another one, Dolibarr will write two record (a debit in source account and a credit in target account. The same amount (except sign), label and date will be used for this transaction) TransferFrom=No TransferTo=Kam @@ -114,11 +115,11 @@ ShowCheckReceipt=Rādīt pārbaude depozīta saņemšanu NumberOfCheques=Pārbaužu skaits DeleteTransaction=Dzēst ierakstu ConfirmDeleteTransaction=Vai tiešām vēlaties dzēst šo ierakstu? -ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry +ThisWillAlsoDeleteBankRecord=Tas arī izdzēš izveidotos bankas darījumus BankMovements=Kustība -PlannedTransactions=Planned entries +PlannedTransactions=Plānotie darījumi Graph=Grafiks -ExportDataset_banque_1=Bank entries and account statement +ExportDataset_banque_1=Banku darījumi un konta izraksts ExportDataset_banque_2=Deposit slip TransactionOnTheOtherAccount=Pārskaitījums uz otru kontu PaymentNumberUpdateSucceeded=Maksājuma numurs veiksmīgi atjaunots @@ -126,7 +127,7 @@ PaymentNumberUpdateFailed=Maksājumu numuru nevar atjaunināt PaymentDateUpdateSucceeded=Maksājuma datums veiksmīgi atjaunots PaymentDateUpdateFailed=Maksājuma datumu nevar atjaunināt Transactions=Darījumi -BankTransactionLine=Bank entry +BankTransactionLine=Bankas darījums AllAccounts=Visas bankas/naudas konti BackToAccount=Atpakaļ uz kontu ShowAllAccounts=Parādīt visiem kontiem @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/lv_LV/bills.lang b/htdocs/langs/lv_LV/bills.lang index 93faa24e20a..1b272e8dc40 100644 --- a/htdocs/langs/lv_LV/bills.lang +++ b/htdocs/langs/lv_LV/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Klienta rēķini BillsCustomer=Klienta rēķins BillsSuppliers=Piegādātāju rēķini BillsCustomersUnpaid=Neapmaksātie klienta rēķini -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Neapmaksātie klientu rēķini %s BillsSuppliersUnpaid=Neapmaksātie piegādātāja rēķini -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Neapmaksātie piegādātāja -u rēķini %s BillsLate=Kavētie maksājumi BillsStatistics=Klientu rēķinu statistika BillsStatisticsSuppliers=Piegādātāju rēķinu statistika @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Bloķēts, jo nevar izdzēst InvoiceStandard=Standarta rēķins InvoiceStandardAsk=Standarta rēķins InvoiceStandardDesc=Šis rēķins veids ir kopīgs rēķins. -InvoiceDeposit=Depozīta rēķins -InvoiceDepositAsk=Depozīta rēķins -InvoiceDepositDesc=Šis rēķins veida tiek darīts, kad depozīts ir saņemts. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Formāta rēķins InvoiceProFormaAsk=Formāta rēķins InvoiceProFormaDesc=Formāta rēķins ir attēls patiesu rēķina, bet nav nekādas grāmatvedības uzskaites vērtības. @@ -103,8 +103,8 @@ SearchACustomerInvoice=Meklēt klienta rēķinu SearchASupplierInvoice=Meklēt piegādātāja rēķinu CancelBill=Atcelt rēķinu SendRemindByMail=Sūtīt atgādinājumu izmantojot e-pastu -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Ievadiet maksājumu +DoPaymentBack=Ievadiet atmaksu ConvertToReduc=Pārvērst nākotnes atlaidē ConvertExcessReceivedToReduc=Convert excess received into future discount EnterPaymentReceivedFromCustomer=Ievadiet saņemto naudas summu no klienta @@ -115,7 +115,7 @@ BillStatus=Rēķina statuss StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Melnraksts (jāapstiprina) BillStatusPaid=Apmaksāts -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Apmaksātais (gatavas pēdējo rēķinu) BillStatusCanceled=Pamests BillStatusValidated=Apstiprināts (jāapmaksā) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Samaksāts (daļēji) BillShortStatusDraft=Melnraksts BillShortStatusPaid=Apmaksāts BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Apstrādāts +BillShortStatusConverted=Apmaksāts BillShortStatusCanceled=Pamests BillShortStatusValidated=Pārbaudīts BillShortStatusStarted=Sākts @@ -153,7 +153,7 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Jauns rēķins -LastBills=Latest %s invoices +LastBills=Pēdējie %s rēķini LastCustomersBills=Latest %s customer invoices LastSuppliersBills=Latest %s supplier invoices AllBills=Visi rēķini @@ -198,12 +198,12 @@ ShowBill=Rādīt rēķinu ShowInvoice=Rādīt rēķinu ShowInvoiceReplace=Rādīt aizstājošo rēķinu ShowInvoiceAvoir=Rādīt kredīta piezīmi -ShowInvoiceDeposit=Rādīt depozīta rēķinu +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Rādīt maksājumu AlreadyPaid=Jau samaksāts AlreadyPaidBack=Jau atgriezta nauda -AlreadyPaidNoCreditNotesNoDeposits=Jau samaksāts (bez kredīta piezīmes un noguldījumiem) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Pamests RemainderToPay=Neapmaksāts RemainderToTake=Atlikusī summa, kas jāsaņem @@ -270,10 +270,10 @@ RelativeDiscount=Relatīva atlaide GlobalDiscount=Globālā atlaide CreditNote=Kredīta piezīme CreditNotes=Kredīta piezīmes -Deposit=Noguldījums -Deposits=Noguldījumi +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Atlaide no kredīta piezīmes %s -DiscountFromDeposit=Maksājumi no noguldījuma rēķina %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Šis kredīta veids var izmantot rēķinā pirms tās apstiprināšanas CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -356,12 +356,12 @@ PaymentConditionShortPT_ORDER=Pasūtījums PaymentConditionPT_ORDER=Pēc pasūtījuma PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% priekšapmaksa, 50%% piegādes laikā -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days +PaymentConditionShort10D=10 dienas +PaymentCondition10D=10 dienas PaymentConditionShort10DENDMONTH=10 days of month-end PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days +PaymentConditionShort14D=14 dienas +PaymentCondition14D=14 dienas PaymentConditionShort14DENDMONTH=14 days of month-end PaymentCondition14DENDMONTH=Within 14 days following the end of the month FixAmount=Noteikt daudzumu @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Nevar dzēst maksājumu, jo eksistē kaut vi ExpectedToPay=Gaidāmais maksājums CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Samaksāts ar šo maksājumu -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Visi rēķini, kas ir apmaksāti pilnībā automātiski tiks aizvērti ar statusu "Samaksāts". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Rēķina PDF paraugs. Pilnākais rēķina paraugs (vēlamais paraugs) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Rēķinu sākot ar syymm $ jau pastāv un nav saderīgs ar šo modeli secību. Noņemt to vai pārdēvēt to aktivizētu šo moduli. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Pārstāvis šādi-up klientu rēķinu TypeContact_facture_external_BILLING=Klienta rēķina kontakts diff --git a/htdocs/langs/lv_LV/bookmarks.lang b/htdocs/langs/lv_LV/bookmarks.lang index 6613276caa9..04b76439849 100644 --- a/htdocs/langs/lv_LV/bookmarks.lang +++ b/htdocs/langs/lv_LV/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Pievienot šo lapu grāmatzīmēm +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Grāmatzīme Bookmarks=Grāmatzīmes +ListOfBookmarks=Saraksts grāmatzīmes +EditBookmarks=List/edit bookmarks NewBookmark=Jauna grāmatzīme ShowBookmark=Rādīt grāmatzīmi OpenANewWindow=Atvērt jaunu logu @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Jauns logs BookmarkTargetReplaceWindowShort=Pašreizējais logs BookmarkTitle=Grāmatzīme titulu UrlOrLink=URL -BehaviourOnClick=Uzvedība kad URL ir noklikšķinājuši +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Izveidot grāmatzīmi SetHereATitleForLink=Uzstādīt grāmatzīmes nosaukumu UseAnExternalHttpLinkOrRelativeDolibarrLink=Izmantojiet ārējo http URL vai relatīvo Dolibarr URL diff --git a/htdocs/langs/lv_LV/boxes.lang b/htdocs/langs/lv_LV/boxes.lang index c3e603b567d..254e4242516 100644 --- a/htdocs/langs/lv_LV/boxes.lang +++ b/htdocs/langs/lv_LV/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS informācija BoxLastProducts=Pēdējie %s produkti/pakalpojumi BoxProductsAlertStock=Produktu krājumu brīdinājums @@ -82,3 +83,4 @@ ForCustomersOrders=Klientu pasūtījumi ForProposals=Priekšlikumi LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/lv_LV/cashdesk.lang b/htdocs/langs/lv_LV/cashdesk.lang index db3d61905b1..fe486073f3d 100644 --- a/htdocs/langs/lv_LV/cashdesk.lang +++ b/htdocs/langs/lv_LV/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Iepirkumu grozs NewSell=Jauna pārdošana AddThisArticle=Pievienot šo preci RestartSelling=Iet atpakaļ uz pārdošanu -SellFinished=Sale complete +SellFinished=Pārdošana pabeigta PrintTicket=Drukāt biļeti NoProductFound=Raksts nav atrasts ProductFound=Produkts atrasts @@ -25,7 +25,7 @@ Difference=Atšķirība TotalTicket=Kopējā biļete NoVAT=Nav PVN šo pārdošanu Change=Excess saņemti -BankToPay=Uzlādes konts +BankToPay=Account for payment ShowCompany=Rādīt uzņēmumu ShowStock=Rādīt noliktavu DeleteArticle=Klikšķiniet, lai izņemtu šo rakstu diff --git a/htdocs/langs/lv_LV/categories.lang b/htdocs/langs/lv_LV/categories.lang index 26eb7aa8fcd..fbdd6259519 100644 --- a/htdocs/langs/lv_LV/categories.lang +++ b/htdocs/langs/lv_LV/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Etiķete/Sadaļa Rubriques=Etiķetes/Sadaļas +RubriquesTransactions=Tags/Categories of transactions categories=etiķetes/sadaļas NoCategoryYet=Nav šī veida etiķetes/sadaļas izveidotas In=Uz @@ -33,7 +34,7 @@ CompanyIsInCustomersCategories=This third party is linked to following customers CompanyIsInSuppliersCategories=This third party is linked to following suppliers tags/categories MemberIsInCategories=This member is linked to following members tags/categories ContactIsInCategories=This contact is linked to following contacts tags/categories -ProductHasNoCategory=This product/service is not in any tags/categories +ProductHasNoCategory=Šī prece/pakalpijums nav nevienā sadaļā CompanyHasNoCategory=This third party is not in any tags/categories MemberHasNoCategory=This member is not in any tags/categories ContactHasNoCategory=This contact is not in any tags/categories @@ -63,9 +64,9 @@ ThisCategoryHasNoProduct=Šī sadaļā nav produktu. ThisCategoryHasNoSupplier=Šajā sadaļā nav neviena piegādātāja. ThisCategoryHasNoCustomer=Šī sadaļa nesatur klientu. ThisCategoryHasNoMember=Šajā sadaļaā nav neviena dalībnieka. -ThisCategoryHasNoContact=Šajā kategorijā nav nekādu kontaktu. -ThisCategoryHasNoAccount=This category does not contain any account. -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoContact=Šajā kategorijā nav kontaktu. +ThisCategoryHasNoAccount=Šī sadaļā nav neviena konta. +ThisCategoryHasNoProject=Šī sadaļa nesatur nevienu projektu. CategId=Tag/category id CatSupList=List of supplier tags/categories CatCusList=List of customer/prospect tags/categories diff --git a/htdocs/langs/lv_LV/commercial.lang b/htdocs/langs/lv_LV/commercial.lang index 7f36d077cfc..df518020808 100644 --- a/htdocs/langs/lv_LV/commercial.lang +++ b/htdocs/langs/lv_LV/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Tikšanās ar %s ShowTask=Rādīt uzdevumu ShowAction=Rādīt notikumu ActionsReport=Notikumu ziņojumi -ThirdPartiesOfSaleRepresentative=Trešās puses ar tirdzniecības pārstāvi +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Pārdošanas pārstāvis SalesRepresentatives=Tirdzniecības pārstāvji SalesRepresentativeFollowUp=Tirdzniecības pārstāvis (pēcpārbaude) diff --git a/htdocs/langs/lv_LV/companies.lang b/htdocs/langs/lv_LV/companies.lang index dc341de1e32..bf7cc39111d 100644 --- a/htdocs/langs/lv_LV/companies.lang +++ b/htdocs/langs/lv_LV/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Jauna privātpersona NewCompany=Jauns uzņēmums (perspektīva, klients, piegādātājs) NewThirdParty=Jauna trešā persona (perspektīva, klients, piegādātājs) CreateDolibarrThirdPartySupplier=Izveidot trešo pusi (pegādātjs) -CreateThirdPartyOnly=Izveidot trešo pusi +CreateThirdPartyOnly=Izveidot trešo personu CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Apzināšanas lauks IdThirdParty=Trešās personas Id @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Klienti ThirdPartyCustomersWithIdProf12=Klienti ar %s vai %s ThirdPartySuppliers=Piegādātāji ThirdPartyType=Trešās puses tips -Company/Fundation=Kompānija / Nodibinājums Individual=Privātpersona ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Mātes uzņēmums @@ -78,10 +77,10 @@ VATIsNotUsed=PVN netiek izmantots CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Priekšlikumi +OverAllOrders=Pasūtījumi +OverAllInvoices=Pavadzīmes +OverAllSupplierProposals=Cenas pieprasījumi ##### Local Taxes ##### LocalTax1IsUsed=Pielietot otru nodokli LocalTax1IsUsedES= Tiek izmantots RE @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane kods) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof ID 1 (BIN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relatīvā atlaide CustomerAbsoluteDiscountShort=Absolūtā atlaide CompanyHasRelativeDiscount=Šim klientam ir pastāvīgā atlaide %s%% CompanyHasNoRelativeDiscount=Šim klientam nav relatīvā atlaide pēc noklusējuma -CompanyHasAbsoluteDiscount=Šim klientam vēl ir atlaides kredīti vai iemaksas uz %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Šim klientam joprojām ir kredīta piezīmes %s %s CompanyHasNoAbsoluteDiscount=Šim klientam nav pieejams atlaižu kredīts CustomerAbsoluteDiscountAllUsers=Absolūtais atlaides (ko piešķir visiem lietotājiem) @@ -402,10 +407,10 @@ LeopardNumRefModelDesc=Kods ir bez maksas. Šo kodu var mainīt jebkurā laikā. ManagingDirectors=Menedžera(u) vārds (CEO, direktors, prezidents...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeFirstname=Tirdzniecības pārstāvja vārds +SaleRepresentativeLastname=Tirdzniecības pārstāvja uzvārds ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code diff --git a/htdocs/langs/lv_LV/compta.lang b/htdocs/langs/lv_LV/compta.lang index 41682eb4b3f..d5cab732627 100644 --- a/htdocs/langs/lv_LV/compta.lang +++ b/htdocs/langs/lv_LV/compta.lang @@ -206,6 +206,6 @@ BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Based on the t LinkedFichinter=Link to an intervention ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments -ErrorBankAccountNotFound=Error: Bank account not found +ErrorBankAccountNotFound=Kļūda: Bankas konts nav atrasts FiscalPeriod=Accounting period ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/lv_LV/contracts.lang b/htdocs/langs/lv_LV/contracts.lang index 367cdc0c996..c7c8b89b6e5 100644 --- a/htdocs/langs/lv_LV/contracts.lang +++ b/htdocs/langs/lv_LV/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Šajā sarakstā ir tikai pakalpojumu līgumi par StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Klonēt līgumu +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Tirdzniecības pārstāvis, parakstot līgumu, diff --git a/htdocs/langs/lv_LV/errors.lang b/htdocs/langs/lv_LV/errors.lang index 8e3808f142e..d37684bde85 100644 --- a/htdocs/langs/lv_LV/errors.lang +++ b/htdocs/langs/lv_LV/errors.lang @@ -44,7 +44,7 @@ ErrorFailedToWriteInDir=Neizdevās ierakstīt direktorijā %s ErrorFoundBadEmailInFile=Atrasts nepareiza e-pasta sintakse %s līnijām failā (piemērs line %s ar e-pasta = %s) ErrorUserCannotBeDelete=User cannot be deleted. May be it is associated to Dolibarr entities. ErrorFieldsRequired=Daži nepieciešamie lauki netika aizpildīti. -ErrorSubjectIsRequired=The email topic is required +ErrorSubjectIsRequired=E-pasta tēma ir nepieciešama ErrorFailedToCreateDir=Neizdevās izveidot direktoriju. Pārbaudiet, vai Web servera lietotājam ir tiesības rakstīt uz Dolibarr dokumentus direktorijā. Ja parametrs safe_mode ir iespējots uz šo PHP, pārbaudiet, Dolibarr php faili pieder web servera lietotājam (vai grupa). ErrorNoMailDefinedForThisUser=Nav definēts e-pasts šim lietotājam ErrorFeatureNeedJavascript=Šai funkcijai ir nepieciešams aktivizēt javascript. Mainīt to var iestatījumi - attēlojums. diff --git a/htdocs/langs/lv_LV/exports.lang b/htdocs/langs/lv_LV/exports.lang index 28246d3d1e9..d10838ac5ae 100644 --- a/htdocs/langs/lv_LV/exports.lang +++ b/htdocs/langs/lv_LV/exports.lang @@ -110,13 +110,24 @@ Enclosure=Iežogojums SpecialCode=Speciāls kods ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Ja jūs vēlaties filtrēt dažas vērtības, vienkārši ievadi vērtības šeit. FilteredFields=Filtrētie lauki FilteredFieldsValues=Cenas filtru FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/lv_LV/holiday.lang b/htdocs/langs/lv_LV/holiday.lang index ec868f3c6cc..41d289ce155 100644 --- a/htdocs/langs/lv_LV/holiday.lang +++ b/htdocs/langs/lv_LV/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Atcelts RefuseCP=Atteikts ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Būs jāpārskata +ReviewedByCP=Will be approved by DescCP=Apraksts SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. @@ -76,8 +76,8 @@ BoxTitleLastLeaveRequests=Latest %s modified leave requests HolidaysMonthlyUpdate=Ikmēneša atjauninājums ManualUpdate=Manuāla aktualizēšana HolidaysCancelation=Leave request cancelation -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name +EmployeeLastname=Darbinieka uzvārds +EmployeeFirstname=Darbinieka vārds TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed ## Configuration du Module ## diff --git a/htdocs/langs/lv_LV/install.lang b/htdocs/langs/lv_LV/install.lang index 04a2175d8bd..dd9baea4794 100644 --- a/htdocs/langs/lv_LV/install.lang +++ b/htdocs/langs/lv_LV/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Jūs izmantojat Dolibarr iestatīšanas vedni no DoliWamp, KeepDefaultValuesDeb=Jūs izmantojat Dolibarr iestatīšanas vedni no Linux paketi (Ubuntu, Debian, Fedora ...), tāpēc vērtības ierosinātās šeit jau ir optimizēta. Tikai datu bāzes īpašnieks, lai izveidotu paroli jāpabeidz. Mainītu citus parametrus tikai tad, ja jūs zināt, ko jūs darāt. KeepDefaultValuesMamp=Jūs izmantojat Dolibarr iestatīšanas vedni no DoliMamp, tāpēc vērtības ierosinātās šeit jau ir optimizēta. Mainīt tikai tad, ja jūs zināt, ko jūs darāt. KeepDefaultValuesProxmox=Jūs izmantojat Dolibarr iestatīšanas vedni no Proxmox virtuālās ierīces, tāpēc vērtības ierosinātās šeit jau ir optimizēta. Mainīt tikai tad, ja jūs zināt, ko jūs darāt. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/lv_LV/interventions.lang b/htdocs/langs/lv_LV/interventions.lang index f9395e3e48d..d6bb01554c5 100644 --- a/htdocs/langs/lv_LV/interventions.lang +++ b/htdocs/langs/lv_LV/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Šādi-up klientu kontaktu # Modele numérotation diff --git a/htdocs/langs/lv_LV/languages.lang b/htdocs/langs/lv_LV/languages.lang index 5e51cf31677..841c7da1ebb 100644 --- a/htdocs/langs/lv_LV/languages.lang +++ b/htdocs/langs/lv_LV/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Vācu Language_de_AT=Vācu (Austrija) Language_de_CH=Vācu (Šveice) Language_el_GR=Grieķu +Language_el_CY=Greek (Cyprus) Language_en_AU=Angļu (Austrālija) Language_en_CA=Angļu (Kanāda) Language_en_GB=Angļu (Apvienotā Karaliste) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spāņu (Ķīle) Language_es_CO=Spanish (Colombia) Language_es_DO=Spāņu (Dominikānas Republika) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spāņu (Hondurasa) Language_es_MX=Spāņu (Meksika) +Language_es_PA=Spanish (Panama) Language_es_PY=Spāņu (Paragvaja) Language_es_PE=Spāņu (Peru) Language_es_PR=Spāņu (Puertoriko) @@ -50,12 +53,14 @@ Language_is_IS=Islandiešu Language_it_IT=Itāļu Language_ja_JP=Japāņu Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korejiešu Language_lo_LA=Lao Language_lt_LT=Lietuviešu Language_lv_LV=Latviešu Language_mk_MK=Maķedoniešu +Language_mn_MN=Mongolian Language_nb_NO=Norvēģu (bukmols) Language_nl_BE=Holandiešu (Beļģijas) Language_nl_NL=Holandiešu (Nīderlandes) diff --git a/htdocs/langs/lv_LV/ldap.lang b/htdocs/langs/lv_LV/ldap.lang index ac32722465a..69363e84a58 100644 --- a/htdocs/langs/lv_LV/ldap.lang +++ b/htdocs/langs/lv_LV/ldap.lang @@ -13,7 +13,7 @@ LDAPUsers=Lietotāji LDAP datu bāzē LDAPFieldStatus=Statuss LDAPFieldFirstSubscriptionDate=Pirmais abonēšanas datumu LDAPFieldFirstSubscriptionAmount=Pirmais parakstīšanās summu -LDAPFieldLastSubscriptionDate=Latest subscription date +LDAPFieldLastSubscriptionDate=Jaunākais piereģistrēšanās datums LDAPFieldLastSubscriptionAmount=Latest subscription amount LDAPFieldSkype=Skype id LDAPFieldSkypeExample=Piemērs : skypeNosaukums diff --git a/htdocs/langs/lv_LV/loan.lang b/htdocs/langs/lv_LV/loan.lang index b06dcb42ce4..56e07af099c 100644 --- a/htdocs/langs/lv_LV/loan.lang +++ b/htdocs/langs/lv_LV/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/lv_LV/mails.lang b/htdocs/langs/lv_LV/mails.lang index ca0443729f2..7b5542f0cc1 100644 --- a/htdocs/langs/lv_LV/mails.lang +++ b/htdocs/langs/lv_LV/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Nosūtīts daļēji MailingStatusSentCompletely=Nosūtīta pilnīgi MailingStatusError=Kļūda MailingStatusNotSent=Nav nosūtīts -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Pasta vēstuļu sūtīšanas veiksmīgi apstiprināti MailUnsubcribe=Atrakstīties MailingStatusNotContact=Nesazināties @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s failā @@ -116,8 +120,8 @@ Notifications=Paziņojumi NoNotificationsWillBeSent=Nav e-pasta paziņojumi ir plānota šī notikuma, un uzņēmums ANotificationsWillBeSent=1 paziņojums tiks nosūtīts pa e-pastu SomeNotificationsWillBeSent=%s paziņojumi tiks nosūtīti pa e-pastu -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Uzskaitīt visus e-pasta nosūtītās paziņojumus MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/lv_LV/main.lang b/htdocs/langs/lv_LV/main.lang index fa2167ea8bf..1e469c4c447 100644 --- a/htdocs/langs/lv_LV/main.lang +++ b/htdocs/langs/lv_LV/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Pielietot BackgroundColorByDefault=Noklusējuma fona krāsu FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Fails ir izvēlēts pielikumam, bet vēl nav augšupielādēti. Noklikšķiniet uz "Pievienot failu", lai to pievienotu. NbOfEntries=Ierakstu sk GoToWikiHelpPage=Lasīt tiešsaistes palīdzību (nepieciešams interneta piekļuve) @@ -165,7 +167,7 @@ Go=Iet Run=Palaist CopyOf=Kopija Show=Rādīt -Hide=Hide +Hide=Paslēpt ShowCardHere=Rādīt kartiņu Search=Meklēšana SearchOf=Meklēšana @@ -257,8 +259,8 @@ DateApprove=Approving date DateApprove2=Approving date (second approval) UserCreation=Creation user UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user +UserCreationShort=Izveidot lietotāju +UserModificationShort=Labot lietotāju DurationYear=gads DurationMonth=mēnesis DurationWeek=nedēļa @@ -293,7 +295,7 @@ MonthOfDay=Mēneša laikā no dienas HourShort=H MinuteShort=mn Rate=Likme -CurrencyRate=Currency conversion rate +CurrencyRate=Valūtas konvertēšanas likme UseLocalTax=Ar PVN Bytes=Baiti KiloBytes=Kilobaiti @@ -329,7 +331,7 @@ AmountTTC=Summa (ar PVN) AmountVAT=Nodokļa summa MulticurrencyAlreadyPaid=Already payed, original currency MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency +MulticurrencyPaymentAmount=Maksājuma summa, oriģinālajā valūtā MulticurrencyAmountHT=Amount (net of tax), original currency MulticurrencyAmountTTC=Amount (inc. of tax), original currency MulticurrencyAmountVAT=Amount tax, original currency @@ -358,6 +360,7 @@ TotalLT1ES=Kopējais RE TotalLT2ES=Kopējais IRPF HT=Bez PVN TTC=Ar PVN +INCT=Inc. all taxes VAT=PVN VATs=Sales taxes LT1ES=RE @@ -367,7 +370,7 @@ Average=Vidējais Sum=Summa Delta=Delta Module=Module/Application -Modules=Modules/Applications +Modules=Moduļi/lietojumprogrammas Option=Iespējas List=Saraksts FullList=Pilns saraksts @@ -391,7 +394,7 @@ ActionRunningNotStarted=Jāsāk ActionRunningShort=Procesā ActionDoneShort=Pabeigts ActionUncomplete=Nepabeigts -CompanyFoundation=Company/Organisation +CompanyFoundation=Kompānija/Organizācija ContactsForCompany=Šīs trešās personas kontakti ContactsAddressesForCompany=Kontakti / adreses par šīs trešās personas AddressesForCompany=Šīs trešās puses adreses @@ -518,7 +521,6 @@ MonthShort10=Okt MonthShort11=Nov MonthShort12=Dec AttachedFiles=Pievienotie faili un dokumenti -FileTransferComplete=Fails tika augšupielādēts veiksmīgi DateFormatYYYYMM=MM.YYYY DateFormatYYYYMMDD=DD.MM.YYYY DateFormatYYYYMMDDHHMM=DD.MM.YYYY HH:SS @@ -527,7 +529,7 @@ ReportPeriod=Atskaites periods ReportDescription=Apraksts Report=Ziņojums Keyword=Atslēgas vārdi -Origin=Origin +Origin=Izcelsme Legend=Leģenda Fill=Aizpildīt Reset=Nodzēst @@ -635,7 +637,7 @@ DisabledModules=Bloķētie moduļi For=Kam ForCustomer=Klientam Signature=Paraksts -DateOfSignature=Date of signature +DateOfSignature=Parakstīšanas datums HidePassword=Rādīt komandu ar slēptu paroli UnHidePassword=Parādīt komandu bez paroles Root=Sakne @@ -683,11 +685,11 @@ SetLinkToAnotherThirdParty=Saite uz citu trešo personu LinkTo=Saite uz LinkToProposal=Link to proposal LinkToOrder=Link to order -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract +LinkToInvoice=Saite uz rēķinu +LinkToSupplierOrder=Saite uz piegādātāja pasūtījumu +LinkToSupplierProposal=Saite uz piegādātāja piedāvājumu +LinkToSupplierInvoice=Saite uz piegādātāja rēķinu +LinkToContract=Saite uz līgumu LinkToIntervention=Link to intervention CreateDraft=Izveidot melnrakstu SetToDraft=Atpakaļ uz melnrakstu @@ -703,14 +705,14 @@ ByDay=Pēc dienas BySalesRepresentative=Pēc tirdzniecības pārstāvja LinkedToSpecificUsers=Saistītas ar noteiktu lietotāja kontaktu NoResults=Nav rezultātu -AdminTools=Admin tools +AdminTools=Administratora rīki SystemTools=Sistēmas rīki ModulesSystemTools=Moduļi instrumenti Test=Pārbaude Element=Elements NoPhotoYet=Nav bildes -Dashboard=Dashboard -MyDashboard=My dashboard +Dashboard=Informācijas panelis +MyDashboard=Informācijas panelis Deductible=Pašrisks from=no toward=uz @@ -742,7 +744,7 @@ Mandatory=Mandatory Hello=Hello Sincerely=Sincerely DeleteLine=Delete line -ConfirmDeleteLine=Are you sure you want to delete this line? +ConfirmDeleteLine=Vai Jūs tiešām vēlaties izdzēst šo līniju? NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. NoRecordSelected=No record selected @@ -765,18 +767,18 @@ GroupBy=Kārtot pēc... ViewFlatList=View flat list RemoveString=Remove string '%s' SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download +DirectDownloadLink=Tiešā lejupielādes saite +Download=Lejupielādēt ActualizeCurrency=Update currency rate Fiscalyear=Fiskālais gads ModuleBuilder=Module Builder -SetMultiCurrencyCode=Set currency +SetMultiCurrencyCode=Iestatīt valūtu BulkActions=Bulk actions ClickToShowHelp=Click to show tooltip help HR=HR HRAndBank=HR and Bank AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft +TitleSetToDraft=Atgriezties uz melnrakstu ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day Monday=Pirmdiena diff --git a/htdocs/langs/lv_LV/margins.lang b/htdocs/langs/lv_LV/margins.lang index d4dd4c4092d..a9e91e5f4a1 100644 --- a/htdocs/langs/lv_LV/margins.lang +++ b/htdocs/langs/lv_LV/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/lv_LV/members.lang b/htdocs/langs/lv_LV/members.lang index f0fcac81487..ddfe7296945 100644 --- a/htdocs/langs/lv_LV/members.lang +++ b/htdocs/langs/lv_LV/members.lang @@ -26,7 +26,7 @@ MembersListNotUpToDate=Saraksts derīgiem locekļiem ar abonementu novecojis MembersListResiliated=List of terminated members MembersListQualified=Saraksts kvalificētiem locekļiem MenuMembersToValidate=Projektu dalībnieki -MenuMembersValidated=Apstiprinātas biedri +MenuMembersValidated=Apstiprināti biedri MenuMembersUpToDate=Aktuālie dalībnieki MenuMembersNotUpToDate=Novecojušie dalībnieki MenuMembersResiliated=Terminated members @@ -41,10 +41,10 @@ MemberType=Dalībnieka veids MemberTypeId=Dalībnieka veida id MemberTypeLabel=Dalībnieka veida nosaukums MembersTypes=Dalībnieku veidi -MemberStatusDraft=Projekts (ir jāapstiprina) -MemberStatusDraftShort=Projekts +MemberStatusDraft=Melnraksts (jāapstiprina) +MemberStatusDraftShort=Melnraksts MemberStatusActive=Validēta (gaidīšanas abonements) -MemberStatusActiveShort=Apstiprināts +MemberStatusActiveShort=Validated MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Beidzies MemberStatusPaid=Abonēšana atjaunināta @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Neviens dalībnieka veids nav definēts. Iet uz izvēlnes NewMemberType=Jauns dalībnieka veids WelcomeEMail=Welcome e-pastu SubscriptionRequired=Abonēšanas nepieciešams -DeleteType=Izdzēst +DeleteType=Dzēst VoteAllowed=Balsot atļauts Physical=Fizisks Moral=Morāls @@ -90,6 +90,7 @@ PublicMemberList=Sabiedrības Biedru saraksts BlankSubscriptionForm=Publiskā auto-abonēšanas veidlapu BlankSubscriptionFormDesc=Dolibarr var sniegt jums publisku URL, kas ļauj ārējiem apmeklētājiem lūgt parakstīties uz pamatnes. Ja tiešsaistes maksājumu modulis tiek aktivizēta, maksājuma forma tiks automātiski sniegta. EnablePublicSubscriptionForm=Ļautu valsts auto-abonēšanas veidlapu +ForceMemberType=Force the member type ExportDataset_member_1=Dalībnieki un abonēšana ImportDataset_member_1=Dalībnieki LastMembersModified=Latest %s modified members @@ -136,7 +137,7 @@ DocForAllMembersCards=Izveidot vizītkartes visiem dalībniekiem DocForOneMemberCards=Izveidot vizītkartes kādā konkrētā dalībnieka DocForLabels=Izveidot adrešu lapas SubscriptionPayment=Abonēšanas maksa -LastSubscriptionDate=Latest subscription date +LastSubscriptionDate=Jaunākais piereģistrēšanās datums LastSubscriptionAmount=Latest subscription amount MembersStatisticsByCountries=Dalībnieku statistika pa valstīm MembersStatisticsByState=Dalībnieku statistika pēc štatiem/provincēm @@ -150,6 +151,7 @@ MembersByTownDesc=Šis ekrāns parādīs statistiku par biedriem ar pilsētu. MembersStatisticsDesc=Izvēlieties statistiku vēlaties izlasīt ... MenuMembersStats=Statistika LastMemberDate=Latest member date +LatestSubscriptionDate=Jaunākais piereģistrēšanās datums Nature=Daba Public=Informācija ir publiska NewMemberbyWeb=Jauns dalībnieks pievienots. Gaida apstiprinājumu diff --git a/htdocs/langs/lv_LV/modulebuilder.lang b/htdocs/langs/lv_LV/modulebuilder.lang new file mode 100644 index 00000000000..dafba2e6298 --- /dev/null +++ b/htdocs/langs/lv_LV/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=Jauns modulis +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Modulis inicializēts +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=Šī cilne ir paredzēta, lai pārvaldītu/veidotu logrīkus. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Bīstamā zona +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Apraksts +EditorName=Redaktora vārds +EditorUrl=Rediģētāja URL +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/lv_LV/multicurrency.lang b/htdocs/langs/lv_LV/multicurrency.lang new file mode 100644 index 00000000000..72288839de0 --- /dev/null +++ b/htdocs/langs/lv_LV/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi valūta +ErrorAddRateFail=Pievienotās likmes kļūda +ErrorAddCurrencyFail=Pievienotajā valūtā radusies kļūda +ErrorDeleteCurrencyFail=Kļūda dzēšot +multicurrency_syncronize_error=Sinhronizācijas kļūda: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API atslēga +multicurrency_appCurrencySource=Valūtas avots +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Izmantotās valūtas +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=likme +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Atlikušā summa, oriģinālā valūtā +MulticurrencyPaymentAmount=Maksājuma summa, oriģinālajā valūtā diff --git a/htdocs/langs/lv_LV/oauth.lang b/htdocs/langs/lv_LV/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/lv_LV/oauth.lang +++ b/htdocs/langs/lv_LV/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/lv_LV/orders.lang b/htdocs/langs/lv_LV/orders.lang index 4126eed0fc7..3ba7a5616d1 100644 --- a/htdocs/langs/lv_LV/orders.lang +++ b/htdocs/langs/lv_LV/orders.lang @@ -73,7 +73,7 @@ AddToDraftOrders=Pievienot rīkojuma projektu ShowOrder=Rādīt pasūtījumu OrdersOpened=Orders to process NoDraftOrders=Nav projektu pasūtījumi -NoOrder=No order +NoOrder=Nav pasūtījuma NoSupplierOrder=No supplier order LastOrders=Latest %s customer orders LastCustomerOrders=Latest %s customer orders diff --git a/htdocs/langs/lv_LV/other.lang b/htdocs/langs/lv_LV/other.lang index 8c7f7ce2be7..87fc0b60778 100644 --- a/htdocs/langs/lv_LV/other.lang +++ b/htdocs/langs/lv_LV/other.lang @@ -18,7 +18,7 @@ NextMonthOfInvoice=Following month (number 1-12) of invoice date TextNextMonthOfInvoice=Following month (text) of invoice date ZipFileGeneratedInto=Zip file generated into %s. -YearOfInvoice=Year of invoice date +YearOfInvoice=Rēķina datums PreviousYearOfInvoice=Previous year of invoice date NextYearOfInvoice=Following year of invoice date @@ -108,7 +108,7 @@ ClosedByLogin=Lietotājs, kurš slēdzis FileWasRemoved=Fails %s tika dzēsts DirWasRemoved=Katalogs %s tika dzēsts FeatureNotYetAvailable=Feature not yet available in the current version -FeaturesSupported=Supported features +FeaturesSupported=Atbalstītās funkcijas Width=Platums Height=Augstums Depth=Dziļums @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=gr WeightUnitmg=mg WeightUnitpound=mārciņa +WeightUnitounce=unce Length=Garums LengthUnitm=m LengthUnitdm=dm @@ -162,12 +163,12 @@ ProfIdShortDesc=Prof ID %s ir informācija, atkarībā no trešās puses DolibarrDemo=Dolibarr ERP/CRM demo StatsByNumberOfUnits=Statistics for sum of qty of products/services StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) -NumberOfProposals=Number of proposals -NumberOfCustomerOrders=Number of customer orders -NumberOfCustomerInvoices=Number of customer invoices +NumberOfProposals=Priekšlikumu skaits +NumberOfCustomerOrders=Klientu pasūtījumu skaits +NumberOfCustomerInvoices=Klientu rēķinu skaits NumberOfSupplierProposals=Number of supplier proposals NumberOfSupplierOrders=Number of supplier orders -NumberOfSupplierInvoices=Number of supplier invoices +NumberOfSupplierInvoices=Piegādātāju rēķinu skaits NumberOfUnitsProposals=Number of units on proposals NumberOfUnitsCustomerOrders=Number of units on customer orders NumberOfUnitsCustomerInvoices=Number of units on customer invoices diff --git a/htdocs/langs/lv_LV/paybox.lang b/htdocs/langs/lv_LV/paybox.lang index 8b2c571bca4..b27c193b369 100644 --- a/htdocs/langs/lv_LV/paybox.lang +++ b/htdocs/langs/lv_LV/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Nosūtīt saņemt maksājuma apstiprinājumu Creditor=Kreditors PaymentCode=Maksājuma kods PayBoxDoPayment=Iet uz maksājumu +ToPay=Apmaksāt YouWillBeRedirectedOnPayBox=Jums tiks novirzīts uz drošu Paybox lapā, lai ievadi kredītkartes informāciju Continue=Nākamais ToOfferALinkForOnlinePayment=URL %s maksājumu diff --git a/htdocs/langs/lv_LV/paypal.lang b/htdocs/langs/lv_LV/paypal.lang index 567e18c288f..49b317ae82d 100644 --- a/htdocs/langs/lv_LV/paypal.lang +++ b/htdocs/langs/lv_LV/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Tas ir id darījuma: %s PAYPAL_ADD_PAYMENT_URL=Pievieno url Paypal maksājumu, kad jūs sūtīt dokumentu pa pastu PredefinedMailContentLink=Jūs varat noklikšķināt uz drošu saites zemāk, lai padarītu jūsu maksājumu (PayPal), ja tas jau nav izdarīts. \n\n %s \n\n YouAreCurrentlyInSandboxMode=Jūs pašlaik esat "smilšu" režīmā -NewPaypalPaymentReceived=Jauns Paypal maksājums saņemts -NewPaypalPaymentFailed=Jauns Paypal maksājumu mēģināju, bet neizdevās +NewOnlinePaymentReceived=Saņemts jauns tiešsaistes maksājums +NewOnlinePaymentFailed=Jauns tiešsaistes maksājums tika izmēģināts, bet neizdevās PAYPAL_PAYONLINE_SENDEMAIL=E-pastu, lai brīdinātu pēc maksājuma (veiksme vai ne) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Paypal rēķina apmaksas pārbaude neizdevās -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Neveiksmīgs tiešsaistes maksājumu apstiprinājums +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Kļūdas kods ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Tiešsaistes maksājumu sistēma +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lv_LV/printing.lang b/htdocs/langs/lv_LV/printing.lang index 2067ec0c08f..713828361d5 100644 --- a/htdocs/langs/lv_LV/printing.lang +++ b/htdocs/langs/lv_LV/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/lv_LV/products.lang b/htdocs/langs/lv_LV/products.lang index ff5ca9c3e61..1fcb9a2ed6c 100644 --- a/htdocs/langs/lv_LV/products.lang +++ b/htdocs/langs/lv_LV/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produkts vai pakalpojums ProductsAndServices=Produkti un pakalpojumi ProductsOrServices=Produkti vai pakalpojumi -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Produkti pārdošanai +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Pakalpojums nav domāts pārdošanai +ServicesOnSaleOnly=Pakalpojumi pārdošanai +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litrs l=L +unitP=Gabals +unitSET=Set +unitS=Sekunde +unitH=Stunda +unitD=Diena +unitKG=Kilograms +unitG=Grams +unitM=Metrs +unitLM=Linear meter +unitM2=Square meter +unitM3=Kubikmetrs +unitL=Litrs ProductCodeModel=Produkta art. paraugs ServiceCodeModel=Pakalpojuma art. paraugs CurrentProductPrice=Pašreizējā cena @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Ražot ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Apakš produkts MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimālā klienta cena DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. -AddVariable=Add Variable +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +AddVariable=Pievienot mainīgo AddUpdater=Pievienot Atjaunotāju GlobalVariables=Global variables -VariableToUpdate=Variable to update +VariableToUpdate=Mainīgais kas jāatjauno GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Atjaunošanās intervāls (minūtes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Izmēra vienība DeleteProductBuyPrice=Dzēst pirkšanas cenu ConfirmDeleteProductBuyPrice=Vai tiešām vēlaties dzēst pirkšanas cenu? SubProduct=Sub product +ProductSheet=Produkta lapa +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,12 +294,16 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator -Features=Features +Features=Iespējas PriceImpact=Price impact WeightImpact=Weight impact NewProductAttribute=Jauns atribūts @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/lv_LV/projects.lang b/htdocs/langs/lv_LV/projects.lang index 7218c550c1c..66f82417d20 100644 --- a/htdocs/langs/lv_LV/projects.lang +++ b/htdocs/langs/lv_LV/projects.lang @@ -64,7 +64,7 @@ TaskDescription=Uzdevuma apraksts NewTask=Jauns uzdevums AddTask=Izveidot uzdevumu AddTimeSpent=Create time spent -AddHereTimeSpentForDay=Add here time spent for this day/task +AddHereTimeSpentForDay=Pievienot šeit pavadīto laiku šodienai/uzdevumam Activity=Aktivitāte Activities=Uzdevumi/aktivitātes MyActivities=Mani uzdevumi / aktivitātes diff --git a/htdocs/langs/lv_LV/propal.lang b/htdocs/langs/lv_LV/propal.lang index 346f9bd06f1..fc34a8593e0 100644 --- a/htdocs/langs/lv_LV/propal.lang +++ b/htdocs/langs/lv_LV/propal.lang @@ -3,7 +3,7 @@ Proposals=Komerciālie priekšlikumi Proposal=Komerciālais priekšlikums ProposalShort=Priekšlikums ProposalsDraft=Sagatave komerciālajiem priekšlikumiem -ProposalsOpened=Atvērtie komerciālie priekšlikumi +ProposalsOpened=Open commercial proposals Prop=Komerciālie priekšlikumi CommercialProposal=Komerciālais priekšlikums ProposalCard=Priekšlikuma kartiņa @@ -15,7 +15,7 @@ ValidateProp=Apstiprināt komerciālo priekšlikumu AddProp=Izveidot piedāvājumu ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? -LastPropals=Latest %s proposals +LastPropals=Pēdējie %s priekšlikumi LastModifiedProposals=Latest %s modified proposals AllPropals=Visi priekšlikumi SearchAProposal=Meklēt priekšlikumu diff --git a/htdocs/langs/lv_LV/receiptprinter.lang b/htdocs/langs/lv_LV/receiptprinter.lang index 2a8d04bc1aa..1b15c1bfce5 100644 --- a/htdocs/langs/lv_LV/receiptprinter.lang +++ b/htdocs/langs/lv_LV/receiptprinter.lang @@ -4,7 +4,7 @@ PrinterAdded=Printer %s added PrinterUpdated=Printer %s updated PrinterDeleted=Printeris %s dzēsts TestSentToPrinter=Test Sent To Printer %s -ReceiptPrinter=Receipt printers +ReceiptPrinter=Čeku printeri ReceiptPrinterDesc=Setup of receipt printers ReceiptPrinterTemplateDesc=Setup of Templates ReceiptPrinterTypeDesc=Description of Receipt Printer's type diff --git a/htdocs/langs/lv_LV/resource.lang b/htdocs/langs/lv_LV/resource.lang index ce217944e4d..f230757fff1 100644 --- a/htdocs/langs/lv_LV/resource.lang +++ b/htdocs/langs/lv_LV/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resurss veiksmīgi dzēsts DictionaryResourceType=Resursa veids SelectResource=Izvēlēties resursu + +IdResource=Id resource +AssetNumber=Sērijas numurs +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resursi diff --git a/htdocs/langs/lv_LV/salaries.lang b/htdocs/langs/lv_LV/salaries.lang index 0ff37140251..1b67a696f56 100644 --- a/htdocs/langs/lv_LV/salaries.lang +++ b/htdocs/langs/lv_LV/salaries.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Alga Salaries=Algas NewSalaryPayment=Jauna algas izmaksa SalaryPayment=Algas maksājums SalariesPayments=Algu maksājumi ShowSalaryPayment=Rādīt algu maksājumus -THM=Average hourly rate -TJM=Average daily rate +THM=Vidējā stundas cena +TJM=Vidējā dienas likme CurrentSalary=Current salary THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used TJMDescription=This value is currently as information only and is not used for any calculation diff --git a/htdocs/langs/lv_LV/sendings.lang b/htdocs/langs/lv_LV/sendings.lang index 1074d049005..7a8eacd5b02 100644 --- a/htdocs/langs/lv_LV/sendings.lang +++ b/htdocs/langs/lv_LV/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Vai tiešām vēlaties dzēst šo sūtījumu? ConfirmValidateSending=Vai jūs tiešām vēlaties apstiprināt šo sūtījumu ar atsauci %s? ConfirmCancelSending=Vai esat pārliecināts, ka vēlaties atcelt šo sūtījumu? -DocumentModelSimple=Vienkāršs dokumenta paraugs DocumentModelMerou=Merou A5 modelis WarningNoQtyLeftToSend=Uzmanību, nav produktu kuri gaida nosūtīšanu. StatsOnShipmentsOnlyValidated=Statistika veikti uz sūtījumiem tikai apstiprinātiem. Lietots datums ir datums apstiprināšanu sūtījuma (ēvelēti piegādes datums ir ne vienmēr ir zināms). @@ -51,10 +50,10 @@ ActionsOnShipping=Notikumi sūtījumu LinkToTrackYourPackage=Saite uz izsekot savu paketi ShipmentCreationIsDoneFromOrder=Izveidot jaunu sūtījumu var no pasūtījuma kartiņas. ShipmentLine=Sūtījumu līnija -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/lv_LV/stocks.lang b/htdocs/langs/lv_LV/stocks.lang index 7f07b706f1e..bff91796b60 100644 --- a/htdocs/langs/lv_LV/stocks.lang +++ b/htdocs/langs/lv_LV/stocks.lang @@ -29,20 +29,20 @@ Location=Vieta LocationSummary=Īsais atrašanās vietas nosaukums NumberOfDifferentProducts=Dažādu produktu skaits NumberOfProducts=Kopējais produktu skaits -LastMovement=Latest movement -LastMovements=Latest movements +LastMovement=Pēdējā pārvietošana +LastMovements=Pēdējās pārvietošanas Units=Vienības Unit=Vienība StockCorrection=Labot krājumus StockTransfer=Transfer stock -MassStockTransferShort=Mass stock transfer +MassStockTransferShort=Masveida krājumu pārvietošana StockMovement=Krājumu pārvietošana StockMovements=Krājumu pārvietošanas LabelMovement=Kustību nosaukums NumberOfUnit=Vienību skaits UnitPurchaseValue=Vienības iepirkuma cena StockTooLow=Krājumi pārāk maz -StockLowerThanLimit=Krājumi mazāki par atļauto apjomu +StockLowerThanLimit=Krājumi mazāki par atļauto apjomu (%s) EnhancedValue=Vērtība PMPValue=Vidējā svērtā cena PMPValueShort=VSC @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Nosūtītais daudzums QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Krājumu nosūtīšana +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Samazināt nekustamā krājumi uz klientu rēķinu / kredīta piezīmes apstiprināšanu @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Palielināt nekustamā krājumus piegādātāju rēķinu / kredīta piezīmes apstiprināšanu ReStockOnValidateOrder=Palielināt nekustamā krājumi piegādātājiem pasūtījumu aprobācijai -ReStockOnDispatchOrder=Palielināt reālās par rokasgrāmatas krājumus dispečervadības uz noliktavās, pēc tam, kad piegādātājs, lai saņemšanas +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Lai vēl nav vai vairs statusu, kas ļauj sūtījumiem produktu krājumu noliktavās. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nav iepriekš produktu šo objektu. Līdz ar to nav nosūtot noliktavā ir nepieciešama. DispatchVerb=Nosūtīšana StockLimitShort=Brīdinājuma limits StockLimit=Krājumu brīdinājuma limits PhysicalStock=Fiziskie krājumi RealStock=Rālie krājumi +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuālie krājumi +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id noliktava DescWareHouse=Apraksts noliktava LieuWareHouse=Lokālā noliktava @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Produktu daudzums %s noliktavā pirms izvēlētā period NbOfProductAfterPeriod=Daudzums produktu %s krājumā pēc izvēlētā perioda (> %s) MassMovement=Masveida pārvietošana SelectProductInAndOutWareHouse=Izvēlieties produktu, daudzumu, avota noliktavu un mērķa noliktavu, tad noklikšķiniet uz "%s". Kad tas ir izdarīts visām nepieciešamajām kustībām, noklikšķiniet uz "%s". -RecordMovement=Ierakstīt transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Krājumu pārvietošana saglabāta RuleForStockAvailability=Noteikumi krājumu nepieciešamībai @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventāra datums +NewInventory=Jauns inventārs +inventorySetup = Inventāra iestatīšana +inventoryCreatePermission=Izveidot jaunu inventāru +inventoryReadPermission=Skatīt krājumus +inventoryWritePermission=Atjaunināt krājumus +inventoryValidatePermission=Pārbaudīt inventāru +inventoryTitle=Inventārs +inventoryListTitle=Inventāri +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Izveidot/Dzēst inventāru +inventoryCreate=Izveidot jaunu +inventoryEdit=Labot +inventoryValidate=Validated +inventoryDraft=Darbojas +inventorySelectWarehouse=Noliktavas izvēle +inventoryConfirmCreate=Izveidot +inventoryOfWarehouse=Noliktavas inventārs : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=Pēc inventāra +inventoryWarningProductAlreadyExists=Šis produkts jau ir iekļauts sarakstā +SelectCategory=Sadaļu filtrs +SelectFournisseur=Supplier filter +inventoryOnDate=Inventārs +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Krājumu kustība ar inventāra datums +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Nepievienojiet produktu bez krājuma +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Reālais daudzums +RealValue=Reālā vērtība +RegulatedQty=Regulēts daudzums +AddInventoryProduct=Pievienot produktu inventāram +AddProduct=Pievienot +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Vai jūs apstiprināt šo darbību? +InventoryFlushed=Inventory flushed +ExitEditMode=Iziet no labošanas +inventoryDeleteLine=Delete line +RegulateStock=Regulēt krājumus +ListInventory=Saraksts diff --git a/htdocs/langs/lv_LV/stripe.lang b/htdocs/langs/lv_LV/stripe.lang new file mode 100644 index 00000000000..b26da57e679 --- /dev/null +++ b/htdocs/langs/lv_LV/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Maksājiet ar kredītkarti vai joslu +FollowingUrlAreAvailableToMakePayments=Pēc URL ir pieejami, lai piedāvātu lapu, lai klients varētu veikt maksājumu par Dolibarr objektiem +PaymentForm=Maksājuma formu +WelcomeOnPaymentPage=Laipni lūdzam mūsu tiešsaistes maksājumu pakalpojumu +ThisScreenAllowsYouToPay=Šis ekrāns ļauj jums veikt tiešsaistes maksājumu %s. +ThisIsInformationOnPayment=Šī ir informācija par maksājumu, kas darīt +ToComplete=Lai pabeigtu +YourEMail=Nosūtīt saņemt maksājuma apstiprinājumu +STRIPE_PAYONLINE_SENDEMAIL=E-pastu, lai brīdinātu pēc maksājuma (veiksme vai ne) +Creditor=Kreditors +PaymentCode=Maksājuma kods +StripeDoPayment=Iet uz maksājumu +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Nākamais +ToOfferALinkForOnlinePayment=URL %s maksājumu +ToOfferALinkForOnlinePaymentOnOrder=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu klienta pasūtījuma +ToOfferALinkForOnlinePaymentOnInvoice=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu klientu rēķina +ToOfferALinkForOnlinePaymentOnContractLine=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu līguma līnijas +ToOfferALinkForOnlinePaymentOnFreeAmount=URL piedāvāt %s tiešsaistes maksājumu lietotāja saskarni par brīvu summu +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL piedāvāt %s tiešsaistes maksājumu lietotāja interfeisu locekli abonementu +YouCanAddTagOnUrl=Jūs varat arī pievienot url parametrs & Tag = vērtība, kādu no šiem URL (nepieciešams tikai bezmaksas samaksu), lai pievienotu savu maksājumu komentāru tagu. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Šajā lapā apliecina, ka jūsu maksājums ir reģistrēts. Paldies. +YourPaymentHasNotBeenRecorded=Jūs maksājums nav reģistrēts, un darījums tika atcelts. Paldies. +AccountParameter=Konta parametri +UsageParameter=Izmantošanas parametri +InformationToFindParameters=Palīdzēt atrast savu %s konta informāciju +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nosaukums pārdevējam +CSSUrlForPaymentForm=CSS stila lapas url maksājuma formu +MessageOK=Ziņu kopā ar apstiprinātu maksājuma atgriešanās lapā +MessageKO=Ziņa par atcelto maksājumu atgriešanās lapā +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Slepena testa atslēga +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/lv_LV/supplier_proposal.lang b/htdocs/langs/lv_LV/supplier_proposal.lang index 93de6ba9e01..d7695e8a439 100644 --- a/htdocs/langs/lv_LV/supplier_proposal.lang +++ b/htdocs/langs/lv_LV/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Atrast pieprasījumu DraftRequests=Pieprasījuma melnraksts SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Atvērt cenas pieprasījumu SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Dzēst pieprasījumu ValidateAsk=Apstiprināt pieprasījumu SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Slēgts SupplierProposalStatusSigned=Apstiprināts SupplierProposalStatusNotSigned=Atteikts @@ -47,7 +47,7 @@ CommercialAsk=Cenas pieprasījums DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/lv_LV/suppliers.lang b/htdocs/langs/lv_LV/suppliers.lang index 24787d58eab..2f12e5a911b 100644 --- a/htdocs/langs/lv_LV/suppliers.lang +++ b/htdocs/langs/lv_LV/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Dažiem apakšproduktiem nav norādītas cenas AddSupplierPrice=Pievienot pirkšanas cenu ChangeSupplierPrice=Mainīt piegādātāja cenu +SupplierPrices=Piegādātāja cenas ReferenceSupplierIsAlreadyAssociatedWithAProduct=Šī atsauce piegādātājam jau ir saistīta ar atsauci: %s NoRecordedSuppliers=Nav reģistrētu piegādātāju SupplierPayment=Piegādātājs maksājums @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Nepareizs daudzums ReputationForThisProduct=Reputācija BuyerName=Pircēja vārds AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Piegādātāja cenas diff --git a/htdocs/langs/lv_LV/trips.lang b/htdocs/langs/lv_LV/trips.lang index c091b0bef9b..3cc9de2ec40 100644 --- a/htdocs/langs/lv_LV/trips.lang +++ b/htdocs/langs/lv_LV/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Saraksts maksu TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Kompānija / organizācija apmeklēta +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Summa vai kilometri DeleteTrip=Delete expense report ConfirmDeleteTrip=Vai tiešām vēlaties dzēst šo izdevumu atskaiti ? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Maksājuma datums - BROUILLONNER=Atvērt pa jaunu +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Vai jūs tiešām vēlaties bloķēt šo izdevumu pārskatu? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/lv_LV/users.lang b/htdocs/langs/lv_LV/users.lang index f2621392af4..11e17a6bf89 100644 --- a/htdocs/langs/lv_LV/users.lang +++ b/htdocs/langs/lv_LV/users.lang @@ -66,8 +66,8 @@ InternalUser=Iekšējais lietotājs ExportDataset_user_1=Dolibarr lietotājus un īpašības DomainUser=Domēna lietotājs %s Reactivate=Aktivizēt -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=Iekšējā lietotājs ir lietotājs, kas ir daļa no jūsu uzņēmuma / nodibinājums.
Ārējais lietotājs ir klients, piegādātājs vai otru.

Abos gadījumos atļaujas noteiktas tiesības uz Dolibarr, arī ārējā lietotājs var būt dažādas izvēlnes vadītājs nekā iekšējo lietotāju (skatīt Home - Setup - displejs) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Atļauja piešķirta, jo mantojis no viena lietotāja grupai. Inherited=Iedzimta UserWillBeInternalUser=Izveidots lietotājs būs iekšējā lietotāja (jo nav saistīta ar konkrētu trešajai personai) @@ -100,6 +100,6 @@ WeeklyHours=Nedēļas stundas ColorUser=Lietotāja krāsa DisabledInMonoUserMode=Disabled in maintenance mode UserAccountancyCode=User accountancy code -UserLogoff=User logout -UserLogged=User logged +UserLogoff=Lietotājs atslēdzies +UserLogged=Lietotājs pieteicies DateEmployment=Darba uzsākšanas datums diff --git a/htdocs/langs/lv_LV/website.lang b/htdocs/langs/lv_LV/website.lang index c545706dcc6..ce462832cae 100644 --- a/htdocs/langs/lv_LV/website.lang +++ b/htdocs/langs/lv_LV/website.lang @@ -6,23 +6,26 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS -EditMenu=Edit menu +EditMenu=Labot izvēlni EditPageMeta=Edit Meta -EditPageContent=Edit Content +EditPageContent=Labot saturu Website=Mājas lapa -Webpage=Web page +Webpage=Mājas lapa AddPage=Pievienot lapu +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added +PageAdded=Lapa '%s' pievienota ViewSiteInNewTab=View site in new tab ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/lv_LV/withdrawals.lang b/htdocs/langs/lv_LV/withdrawals.lang index 038c9a2b742..bf08ced72a4 100644 --- a/htdocs/langs/lv_LV/withdrawals.lang +++ b/htdocs/langs/lv_LV/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Summa atsaukt WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Neviens klients rēķins maksājuma režīmā, "izņemt" gaida. Iet uz "atsaukt" tab par rēķinu karti, lai padarītu pieprasījumu. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Atbildīgais lietotājs WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Noraidījuma iemesls RefusedInvoicing=Rēķinu noraidījumu NoInvoiceRefused=Nav maksas noraidīšanu InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Statuss debets/kredīts StatusWaiting=Gaidīšana StatusTrans=Sūtīt StatusCredited=Apmaksātie diff --git a/htdocs/langs/lv_LV/workflow.lang b/htdocs/langs/lv_LV/workflow.lang index 441e490a77f..46365804464 100644 --- a/htdocs/langs/lv_LV/workflow.lang +++ b/htdocs/langs/lv_LV/workflow.lang @@ -4,7 +4,7 @@ WorkflowDesc=This module is designed to modify the behaviour of automatic action ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automātiski izveidot klienta rēķinu pēc līguma apstiprināšanas descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Klasificēt saistīta avota priekšlikumu Jāmaksā, ja klientu rīkojumu ir iestatīts uz apmaksātu descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Klasificēt saistīts avots klienta pasūtījumu (s) Jāmaksā, ja klients rēķins ir iestatīts uz apmaksātu @@ -12,4 +12,4 @@ descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Klasificēt saistīta avota kl descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +AutomaticClassification=Automātiskā klasifikācija diff --git a/htdocs/langs/mk_MK/accountancy.lang b/htdocs/langs/mk_MK/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/mk_MK/accountancy.lang +++ b/htdocs/langs/mk_MK/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/mk_MK/admin.lang b/htdocs/langs/mk_MK/admin.lang index ffc92b65536..85d4503b8ae 100644 --- a/htdocs/langs/mk_MK/admin.lang +++ b/htdocs/langs/mk_MK/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/mk_MK/agenda.lang b/htdocs/langs/mk_MK/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/mk_MK/agenda.lang +++ b/htdocs/langs/mk_MK/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/mk_MK/banks.lang b/htdocs/langs/mk_MK/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/mk_MK/banks.lang +++ b/htdocs/langs/mk_MK/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/mk_MK/bills.lang b/htdocs/langs/mk_MK/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/mk_MK/bills.lang +++ b/htdocs/langs/mk_MK/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/mk_MK/bookmarks.lang b/htdocs/langs/mk_MK/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/mk_MK/bookmarks.lang +++ b/htdocs/langs/mk_MK/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/mk_MK/boxes.lang b/htdocs/langs/mk_MK/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/mk_MK/boxes.lang +++ b/htdocs/langs/mk_MK/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/mk_MK/cashdesk.lang b/htdocs/langs/mk_MK/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/mk_MK/cashdesk.lang +++ b/htdocs/langs/mk_MK/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/mk_MK/categories.lang b/htdocs/langs/mk_MK/categories.lang index 1615697ed9d..721f6779124 100644 --- a/htdocs/langs/mk_MK/categories.lang +++ b/htdocs/langs/mk_MK/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In diff --git a/htdocs/langs/mk_MK/commercial.lang b/htdocs/langs/mk_MK/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/mk_MK/commercial.lang +++ b/htdocs/langs/mk_MK/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/mk_MK/companies.lang b/htdocs/langs/mk_MK/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/mk_MK/companies.lang +++ b/htdocs/langs/mk_MK/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/mk_MK/contracts.lang b/htdocs/langs/mk_MK/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/mk_MK/contracts.lang +++ b/htdocs/langs/mk_MK/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/mk_MK/exports.lang b/htdocs/langs/mk_MK/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/mk_MK/exports.lang +++ b/htdocs/langs/mk_MK/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/mk_MK/holiday.lang b/htdocs/langs/mk_MK/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/mk_MK/holiday.lang +++ b/htdocs/langs/mk_MK/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/mk_MK/install.lang b/htdocs/langs/mk_MK/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/mk_MK/install.lang +++ b/htdocs/langs/mk_MK/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/mk_MK/interventions.lang b/htdocs/langs/mk_MK/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/mk_MK/interventions.lang +++ b/htdocs/langs/mk_MK/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/mk_MK/languages.lang b/htdocs/langs/mk_MK/languages.lang index b9800c3b2e6..12d9f6e26ba 100644 --- a/htdocs/langs/mk_MK/languages.lang +++ b/htdocs/langs/mk_MK/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Германски Language_de_AT=Германски (Австрија) Language_de_CH=German (Switzerland) Language_el_GR=Грчкиот +Language_el_CY=Greek (Cyprus) Language_en_AU=Англиски (Австралија) Language_en_CA=English (Canada) Language_en_GB=Англиски (Велика Британија) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Шпански (Хондурас) Language_es_MX=Шпански (Мексико) +Language_es_PA=Spanish (Panama) Language_es_PY=Шпански (Парагвај) Language_es_PE=Шпански (Перу) Language_es_PR=Шпански (Порто Рико) @@ -50,12 +53,14 @@ Language_is_IS=Исландски Language_it_IT=Италијански Language_ja_JP=Јапонски Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Кореја Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Летонски Language_mk_MK=Македонски +Language_mn_MN=Mongolian Language_nb_NO=Норвешки (бокмал) Language_nl_BE=Холанѓаните (Белгија) Language_nl_NL=Холанѓаните (Холандија) diff --git a/htdocs/langs/mk_MK/loan.lang b/htdocs/langs/mk_MK/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/mk_MK/loan.lang +++ b/htdocs/langs/mk_MK/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/mk_MK/mails.lang b/htdocs/langs/mk_MK/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/mk_MK/mails.lang +++ b/htdocs/langs/mk_MK/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/mk_MK/main.lang b/htdocs/langs/mk_MK/main.lang index 49a6e4064e1..a923ae109a4 100644 --- a/htdocs/langs/mk_MK/main.lang +++ b/htdocs/langs/mk_MK/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/mk_MK/margins.lang b/htdocs/langs/mk_MK/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/mk_MK/margins.lang +++ b/htdocs/langs/mk_MK/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/mk_MK/members.lang b/htdocs/langs/mk_MK/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/mk_MK/members.lang +++ b/htdocs/langs/mk_MK/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/mk_MK/modulebuilder.lang b/htdocs/langs/mk_MK/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/mk_MK/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/mk_MK/oauth.lang b/htdocs/langs/mk_MK/oauth.lang index f4df2dc3dda..cafca379f6f 100644 --- a/htdocs/langs/mk_MK/oauth.lang +++ b/htdocs/langs/mk_MK/oauth.lang @@ -2,15 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/mk_MK/other.lang b/htdocs/langs/mk_MK/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/mk_MK/other.lang +++ b/htdocs/langs/mk_MK/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/mk_MK/paybox.lang b/htdocs/langs/mk_MK/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/mk_MK/paybox.lang +++ b/htdocs/langs/mk_MK/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/mk_MK/paypal.lang b/htdocs/langs/mk_MK/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/mk_MK/paypal.lang +++ b/htdocs/langs/mk_MK/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/mk_MK/printing.lang b/htdocs/langs/mk_MK/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/mk_MK/printing.lang +++ b/htdocs/langs/mk_MK/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/mk_MK/products.lang b/htdocs/langs/mk_MK/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/mk_MK/products.lang +++ b/htdocs/langs/mk_MK/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/mk_MK/propal.lang b/htdocs/langs/mk_MK/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/mk_MK/propal.lang +++ b/htdocs/langs/mk_MK/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/mk_MK/resource.lang b/htdocs/langs/mk_MK/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/mk_MK/resource.lang +++ b/htdocs/langs/mk_MK/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/mk_MK/salaries.lang b/htdocs/langs/mk_MK/salaries.lang index 68407482edb..08fd2c5a451 100644 --- a/htdocs/langs/mk_MK/salaries.lang +++ b/htdocs/langs/mk_MK/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge Salary=Salary Salaries=Salaries diff --git a/htdocs/langs/mk_MK/sendings.lang b/htdocs/langs/mk_MK/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/mk_MK/sendings.lang +++ b/htdocs/langs/mk_MK/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/mk_MK/stocks.lang b/htdocs/langs/mk_MK/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/mk_MK/stocks.lang +++ b/htdocs/langs/mk_MK/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/mk_MK/stripe.lang b/htdocs/langs/mk_MK/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/mk_MK/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/mk_MK/supplier_proposal.lang b/htdocs/langs/mk_MK/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/mk_MK/supplier_proposal.lang +++ b/htdocs/langs/mk_MK/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/mk_MK/suppliers.lang b/htdocs/langs/mk_MK/suppliers.lang index 3f72a4d8d1e..b72877dc726 100644 --- a/htdocs/langs/mk_MK/suppliers.lang +++ b/htdocs/langs/mk_MK/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/mk_MK/trips.lang b/htdocs/langs/mk_MK/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/mk_MK/trips.lang +++ b/htdocs/langs/mk_MK/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/mk_MK/users.lang b/htdocs/langs/mk_MK/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/mk_MK/users.lang +++ b/htdocs/langs/mk_MK/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/mk_MK/website.lang b/htdocs/langs/mk_MK/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/mk_MK/website.lang +++ b/htdocs/langs/mk_MK/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/mk_MK/withdrawals.lang b/htdocs/langs/mk_MK/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/mk_MK/withdrawals.lang +++ b/htdocs/langs/mk_MK/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/mn_MN/accountancy.lang b/htdocs/langs/mn_MN/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/mn_MN/accountancy.lang +++ b/htdocs/langs/mn_MN/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/mn_MN/admin.lang b/htdocs/langs/mn_MN/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/mn_MN/admin.lang +++ b/htdocs/langs/mn_MN/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/mn_MN/agenda.lang b/htdocs/langs/mn_MN/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/mn_MN/agenda.lang +++ b/htdocs/langs/mn_MN/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/mn_MN/banks.lang b/htdocs/langs/mn_MN/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/mn_MN/banks.lang +++ b/htdocs/langs/mn_MN/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/mn_MN/bills.lang b/htdocs/langs/mn_MN/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/mn_MN/bills.lang +++ b/htdocs/langs/mn_MN/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/mn_MN/bookmarks.lang b/htdocs/langs/mn_MN/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/mn_MN/bookmarks.lang +++ b/htdocs/langs/mn_MN/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/mn_MN/boxes.lang b/htdocs/langs/mn_MN/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/mn_MN/boxes.lang +++ b/htdocs/langs/mn_MN/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/mn_MN/cashdesk.lang b/htdocs/langs/mn_MN/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/mn_MN/cashdesk.lang +++ b/htdocs/langs/mn_MN/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/mn_MN/categories.lang b/htdocs/langs/mn_MN/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/mn_MN/categories.lang +++ b/htdocs/langs/mn_MN/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/mn_MN/commercial.lang b/htdocs/langs/mn_MN/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/mn_MN/commercial.lang +++ b/htdocs/langs/mn_MN/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/mn_MN/companies.lang b/htdocs/langs/mn_MN/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/mn_MN/companies.lang +++ b/htdocs/langs/mn_MN/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/mn_MN/contracts.lang b/htdocs/langs/mn_MN/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/mn_MN/contracts.lang +++ b/htdocs/langs/mn_MN/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/mn_MN/exports.lang b/htdocs/langs/mn_MN/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/mn_MN/exports.lang +++ b/htdocs/langs/mn_MN/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/mn_MN/holiday.lang b/htdocs/langs/mn_MN/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/mn_MN/holiday.lang +++ b/htdocs/langs/mn_MN/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/mn_MN/install.lang b/htdocs/langs/mn_MN/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/mn_MN/install.lang +++ b/htdocs/langs/mn_MN/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/mn_MN/interventions.lang b/htdocs/langs/mn_MN/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/mn_MN/interventions.lang +++ b/htdocs/langs/mn_MN/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/mn_MN/languages.lang b/htdocs/langs/mn_MN/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/mn_MN/languages.lang +++ b/htdocs/langs/mn_MN/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/mn_MN/link.lang b/htdocs/langs/mn_MN/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/mn_MN/link.lang +++ b/htdocs/langs/mn_MN/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/mn_MN/loan.lang b/htdocs/langs/mn_MN/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/mn_MN/loan.lang +++ b/htdocs/langs/mn_MN/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/mn_MN/mails.lang b/htdocs/langs/mn_MN/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/mn_MN/mails.lang +++ b/htdocs/langs/mn_MN/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/mn_MN/main.lang b/htdocs/langs/mn_MN/main.lang index b1718bc40eb..751e9d530c6 100644 --- a/htdocs/langs/mn_MN/main.lang +++ b/htdocs/langs/mn_MN/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/mn_MN/margins.lang b/htdocs/langs/mn_MN/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/mn_MN/margins.lang +++ b/htdocs/langs/mn_MN/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/mn_MN/members.lang b/htdocs/langs/mn_MN/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/mn_MN/members.lang +++ b/htdocs/langs/mn_MN/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/mn_MN/modulebuilder.lang b/htdocs/langs/mn_MN/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/mn_MN/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/mn_MN/oauth.lang b/htdocs/langs/mn_MN/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/mn_MN/oauth.lang +++ b/htdocs/langs/mn_MN/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/mn_MN/other.lang b/htdocs/langs/mn_MN/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/mn_MN/other.lang +++ b/htdocs/langs/mn_MN/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/mn_MN/paybox.lang b/htdocs/langs/mn_MN/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/mn_MN/paybox.lang +++ b/htdocs/langs/mn_MN/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/mn_MN/paypal.lang b/htdocs/langs/mn_MN/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/mn_MN/paypal.lang +++ b/htdocs/langs/mn_MN/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/mn_MN/printing.lang b/htdocs/langs/mn_MN/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/mn_MN/printing.lang +++ b/htdocs/langs/mn_MN/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/mn_MN/products.lang b/htdocs/langs/mn_MN/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/mn_MN/products.lang +++ b/htdocs/langs/mn_MN/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/mn_MN/propal.lang b/htdocs/langs/mn_MN/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/mn_MN/propal.lang +++ b/htdocs/langs/mn_MN/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/mn_MN/resource.lang b/htdocs/langs/mn_MN/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/mn_MN/resource.lang +++ b/htdocs/langs/mn_MN/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/mn_MN/salaries.lang b/htdocs/langs/mn_MN/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/mn_MN/salaries.lang +++ b/htdocs/langs/mn_MN/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/mn_MN/sendings.lang b/htdocs/langs/mn_MN/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/mn_MN/sendings.lang +++ b/htdocs/langs/mn_MN/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/mn_MN/stocks.lang b/htdocs/langs/mn_MN/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/mn_MN/stocks.lang +++ b/htdocs/langs/mn_MN/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/mn_MN/stripe.lang b/htdocs/langs/mn_MN/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/mn_MN/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/mn_MN/supplier_proposal.lang b/htdocs/langs/mn_MN/supplier_proposal.lang index 61b031459b0..dc3eae23672 100644 --- a/htdocs/langs/mn_MN/supplier_proposal.lang +++ b/htdocs/langs/mn_MN/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Closed SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/mn_MN/suppliers.lang b/htdocs/langs/mn_MN/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/mn_MN/suppliers.lang +++ b/htdocs/langs/mn_MN/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/mn_MN/trips.lang b/htdocs/langs/mn_MN/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/mn_MN/trips.lang +++ b/htdocs/langs/mn_MN/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/mn_MN/users.lang b/htdocs/langs/mn_MN/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/mn_MN/users.lang +++ b/htdocs/langs/mn_MN/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/mn_MN/website.lang b/htdocs/langs/mn_MN/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/mn_MN/website.lang +++ b/htdocs/langs/mn_MN/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/mn_MN/withdrawals.lang b/htdocs/langs/mn_MN/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/mn_MN/withdrawals.lang +++ b/htdocs/langs/mn_MN/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/nb_NO/accountancy.lang b/htdocs/langs/nb_NO/accountancy.lang index c08c6733062..bca435a960d 100644 --- a/htdocs/langs/nb_NO/accountancy.lang +++ b/htdocs/langs/nb_NO/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Oversikt over antall linjer som allerede er bundet OtherInfo=Annen informasjon DeleteCptCategory=Fjern regnskapskonto fra gruppe ConfirmDeleteCptCategory=Er du sikker på at du vil fjerne denne regnskapskontoen fra gruppen? +AlreadyInGeneralLedger=Allerede journalført i hovedbøker AccountancyArea=Område for regnskap AccountancyAreaDescIntro=Bruk av regnskapsmodulen er gjort i flere skritt: @@ -62,7 +63,6 @@ Addanaccount=Legg til regnskapskonto AccountAccounting=Regnskapskonto AccountAccountingShort=Konto SubledgerAccount=Konto i sub-hovedbok -subledger_account=Konto i sub-hovedbok ShowAccountingAccount=Vis regnskapskonto ShowAccountingJournal=Vis regnskapsjournal AccountAccountingSuggest=Foreslått regnskapskonto @@ -79,6 +79,7 @@ SuppliersVentilation=Binding av leverandørfakturaer ExpenseReportsVentilation=Utgiftsrapport-binding CreateMvts=Opprett ny transaksjon UpdateMvts=Endre en transaksjon +ValidTransaction=Validate transaction WriteBookKeeping=Før transaksjoner inn i hovedboken Bookkeeping=Hovedbok AccountBalance=Kontobalanse @@ -142,6 +143,7 @@ NumPiece=Del nummer TransactionNumShort=Transaksjonsnummer AccountingCategory=Regnskapskonto-grupper GroupByAccountAccounting=Grupper etter regnskapskonto +ByAccounts=Etter kontoer NotMatch=Ikke valgt DeleteMvt=Slett linjer fra hovedboken DelYear=År som skal slettes @@ -214,12 +216,14 @@ AccountingJournalType1=Ulike operasjoner AccountingJournalType2=Salg AccountingJournalType3=Innkjøp AccountingJournalType4=Bank +AccountingJournalType5=Utgiftsrapporter AccountingJournalType9=Har nye ErrorAccountingJournalIsAlreadyUse=Denne journalen er allerede i bruk ## Export Exports=Eksporter Export=Eksport +ExportDraftJournal=Eksporter utkastjournal Modelcsv=Eksportmodell OptionsDeactivatedForThisExportModel=For denne eksportmodellen er opsjoner deaktivert Selectmodelcsv=Velg eksportmodell diff --git a/htdocs/langs/nb_NO/admin.lang b/htdocs/langs/nb_NO/admin.lang index 1d10f9ae053..484e41f90b7 100644 --- a/htdocs/langs/nb_NO/admin.lang +++ b/htdocs/langs/nb_NO/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Forespør leverandørtilbud og tilbud Module1200Name=Mantis Module1200Desc=Mantisintegrasjon Module1400Name=Regnskap -Module1400Desc=Behandling av regnskapssopplysninger for eksperter (double parties) +Module1400Desc=Regnskapsstyring (dobbeltoppføringer) Module1520Name=Dokumentgenerering Module1520Desc=Masse-epost dokumentgenerering Module1780Name=Merker/kategorier @@ -585,7 +585,7 @@ Module50100Desc=Salgssted-modul (POS). Module50200Name=Paypal Module50200Desc=Modul for å tilby onlinebetaling Paypal Module50400Name=Regnskap (avansert) -Module50400Desc=Regnskapshåndtering (doble parter) +Module50400Desc=Regnskapsstyring (dobbeltoppføringer) Module54000Name=PrintIPP Module54000Desc=Direkteutskrift (uten å åpne dokumentet)ved hjelp av CUPS IPP inteface (Skriveren må være synlig for serveren, og CUPS må være installert på serveren) Module55000Name=Meningsmåling, undersøkelse eller avstemming diff --git a/htdocs/langs/nb_NO/agenda.lang b/htdocs/langs/nb_NO/agenda.lang index 879be9bcce2..7a7e16b4ed4 100644 --- a/htdocs/langs/nb_NO/agenda.lang +++ b/htdocs/langs/nb_NO/agenda.lang @@ -75,14 +75,17 @@ InterventionSentByEMail=Intervensjon %s sendt på epost ProposalDeleted=Tilbud slettet OrderDeleted=Ordre slettet InvoiceDeleted=Faktura slettet +PRODUCT_CREATEInDolibarr=Vare%s opprettet +PRODUCT_MODIFYInDolibarr=Vare %s endret +PRODUCT_DELETEInDolibarr=Vare %s slettet ##### End agenda events ##### AgendaModelModule=Dokumentmaler for hendelse DateActionStart=Startdato DateActionEnd=Sluttdato AgendaUrlOptions1=Du kan også bruke følgende parametere til å filtrere listen: -AgendaUrlOptions2=login=%s for å begrense resultat til hendelse som er opprettet av eller tildelt bruker%s. AgendaUrlOptions3=logina=%s for å begrense resultat til hendelser eiet av en bruker %s. -AgendaUrlOptions4=logint=%s for å begrense resultat til handlinger relatert til bruker %s. +AgendaUrlOptionsNotAdmin=logina=%s for å begrense utdata til handlinger som ikke eies av brukeren %s. +AgendaUrlOptions4=logint=%s for å begrense utdata til handlinger som er tildelt brukeren %s (eier og andre). AgendaUrlOptionsProject=project=PROJECT_ID for å begrense resultat til handlinger som er knyttet til prosjektet PROJECT_ID. AgendaShowBirthdayEvents=Vis kontakters fødselsdager AgendaHideBirthdayEvents=Skjul kontakters fødselsdager diff --git a/htdocs/langs/nb_NO/cashdesk.lang b/htdocs/langs/nb_NO/cashdesk.lang index ddea8c0f59d..c641997e701 100644 --- a/htdocs/langs/nb_NO/cashdesk.lang +++ b/htdocs/langs/nb_NO/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Forskjell TotalTicket=Totalt kvittering NoVAT=Ingen mva for dette salget Change=For mye mottatt -BankToPay=Debiteringskonto +BankToPay=Kontor for betaling ShowCompany=Vis selskap ShowStock=Vis lager DeleteArticle=Klikk for å fjerne denne artikkelen diff --git a/htdocs/langs/nb_NO/categories.lang b/htdocs/langs/nb_NO/categories.lang index 7f1c9c539fd..0c69ba93c1f 100644 --- a/htdocs/langs/nb_NO/categories.lang +++ b/htdocs/langs/nb_NO/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Merke/Kategori Rubriques=Merker/Kategorier +RubriquesTransactions=Etiketter/Kategorier av transaksjoner categories=merker/kategorier NoCategoryYet=Ingen merker/kategorier av denne typen er opprettet In=I diff --git a/htdocs/langs/nb_NO/companies.lang b/htdocs/langs/nb_NO/companies.lang index be5ef0d2df3..9545d2c527e 100644 --- a/htdocs/langs/nb_NO/companies.lang +++ b/htdocs/langs/nb_NO/companies.lang @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kunder ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s ThirdPartySuppliers=Leverandører ThirdPartyType=Type tredjepart -Company/Fundation=Firma/Organisasjon Individual=Privatperson ToCreateContactWithSameName=Vil opprette en kontakt/adresse med samme informasjon som tredjeparten, under tredjeparten, automatisk. I de fleste tilfeller, selv om tredjeparten er en privatperson, vil det være nok å opprette en tredjepart ParentCompany=Morselskap @@ -78,10 +77,10 @@ VATIsNotUsed=MVA skal ikke beregnes CopyAddressFromSoc=Fyll inn adressen med tredjepartsadressen ThirdpartyNotCustomerNotSupplierSoNoRef=Tredjeparts verken kunde eller leverandør, ingen tilgjengelige henvisende objekter PaymentBankAccount=Bankkonto betaling -OverAllProposals=Totalt antall tilbud -OverAllOrders=Totalt antall ordre -OverAllInvoices=Totalt antall fakturaer -OverAllSupplierProposals=Total price requests +OverAllProposals=Tilbud +OverAllOrders=Ordre +OverAllInvoices=Fakturaer +OverAllSupplierProposals=Prisforespørsel ##### Local Taxes ##### LocalTax1IsUsed=Bruk avgift 2 LocalTax1IsUsedES= RE brukes @@ -205,7 +204,7 @@ ProfId1MA=Prof ID 1 (RC) ProfId2MA=Prof ID 2 (patent) ProfId3MA=Prof ID 3 (IF) ProfId4MA=Prof ID 4 (CNSS) -ProfId5MA=Id. prof. 5 (I.C.E.) +ProfId5MA=Prof ID 5 (I.C.E.) ProfId6MA=- ProfId1MX=Prof ID 1 (RFC). ProfId2MX=Prof ID 2 (R.. P. IMSS) @@ -237,6 +236,12 @@ ProfId3TN=Prof ID 3 (Douane code) ProfId4TN=Prof ID 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof ID +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof ID 1 (OGRN) ProfId2RU=Prof ID 2 (INN) ProfId3RU=Prof ID 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativ rabatt CustomerAbsoluteDiscountShort=Absolutt rabatt CompanyHasRelativeDiscount=Denne kunden har en rabatt på %s%% CompanyHasNoRelativeDiscount=Denne kunden har ingen relative rabatter angitt -CompanyHasAbsoluteDiscount=Denne kunden har fortsatt en kreditrabatt på %s %s +CompanyHasAbsoluteDiscount=Denne kunden har tilgjengelige prisavslag (kreditnotaer eller tidligere innbetalinger) for %s%s CompanyHasCreditNote=Denne kunden har fortsatt kreditnotaer for %s %s CompanyHasNoAbsoluteDiscount=Denne kunden har ingen rabatt tilgjengelig CustomerAbsoluteDiscountAllUsers=Absolutte rabatter (innrømmet av alle brukere) @@ -390,7 +395,7 @@ ListCustomersShort=Liste over kunder ThirdPartiesArea=Tredjepart og kontaktområde LastModifiedThirdParties=Siste %s endrede tredjeparter UniqueThirdParties=Totalt antall unike tredjeparter -InActivity=Åpnet +InActivity=Åpent ActivityCeased=Stengt ThirdPartyIsClosed=Tredjepart er stengt ProductsIntoElements=Liste over varer/tjenester i %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Fri kode. Denne koden kan endres når som helst. ManagingDirectors=(E) navn (CEO, direktør, president ...) MergeOriginThirdparty=Dupliser tredjepart (tredjepart du vil slette) MergeThirdparties=Flett tredjeparter -ConfirmMergeThirdparties=Er du sikker på at du vil slå sammen denne tredjeparten med den nåværende? Alle koblede objekter (fakturaer, bestillinger, ...) vil bli flyttet til nåværenede tredjepart, slik at du vil være i stand til å slette den dupliserte. +ConfirmMergeThirdparties=Er du sikker på at du vil slå sammen denne tredjeparten med den nåværende? Alle koblede objekter (fakturaer, ordre, ...) blir flyttet til nåværende tredjepart, og tredjeparten blir slettet. ThirdpartiesMergeSuccess=Tredjepartene er blitt flettet SaleRepresentativeLogin=Innlogging for salgsrepresentant SaleRepresentativeFirstname=Selgers fornavn diff --git a/htdocs/langs/nb_NO/holiday.lang b/htdocs/langs/nb_NO/holiday.lang index dc1a130e915..4ad1a070227 100644 --- a/htdocs/langs/nb_NO/holiday.lang +++ b/htdocs/langs/nb_NO/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Kansellert RefuseCP=Nektet ValidatorCP=Godkjenner ListeCP=Liste over ferier -ReviewedByCP=Vil bli gjennomgått av +ReviewedByCP=Vil bli godkjent av DescCP=Beskrivelse SendRequestCP=Opprett feriesøknad DelayToRequestCP=Søknader må opprettes minst %s dag(er) før ferien skal starte diff --git a/htdocs/langs/nb_NO/install.lang b/htdocs/langs/nb_NO/install.lang index b1944e6e134..3fa40e57b51 100644 --- a/htdocs/langs/nb_NO/install.lang +++ b/htdocs/langs/nb_NO/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Du bruker Dolibarrs konfigureringsveiviser fra DoliWamp, s KeepDefaultValuesDeb=Du bruker Dolibarrs konfigureringsveiviser fra en Linux-pakke (Ubuntu, Debian, Fedora ...), så verdiene foreslått her, er allerede optimalisert. Bare passordet til databaseeieren må fylles ut. Endre andre parametere bare hvis du vet hva du gjør. KeepDefaultValuesMamp=Du bruker Dolibarrs konfigureringsveiviser fra DoliMamp, så verdiene foreslått her, er allerede optimalisert. Endre dem bare hvis du vet hva du gjør. KeepDefaultValuesProxmox=Du bruker Dolibarrs konfigureringsveiviser fra en Proxmox virtual appliance, så verdiene foreslått her, er allerede optimalisert. Endre dem bare hvis du vet hva du gjør. +UpgradeExternalModule=Kjør dedikert oppgradering av eksterne moduler ######### # upgrade diff --git a/htdocs/langs/nb_NO/interventions.lang b/htdocs/langs/nb_NO/interventions.lang index 74f40a02384..538b0c811a9 100644 --- a/htdocs/langs/nb_NO/interventions.lang +++ b/htdocs/langs/nb_NO/interventions.lang @@ -41,7 +41,7 @@ InterventionDeletedInDolibarr=Intervensjon %s ble slettet InterventionsArea=Område for intervensjoner DraftFichinter=Intervensjonskladder LastModifiedInterventions=Siste %s endrede intervensjoner -FichinterToProcess=Interventions to process +FichinterToProcess=Intervensjoner å prosessere ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Ansvarlig for kundeoppfølging # Modele numérotation diff --git a/htdocs/langs/nb_NO/main.lang b/htdocs/langs/nb_NO/main.lang index dc801db39b0..c408291cbbd 100644 --- a/htdocs/langs/nb_NO/main.lang +++ b/htdocs/langs/nb_NO/main.lang @@ -72,8 +72,10 @@ SeeHere=Se her Apply=Legg til BackgroundColorByDefault=Standard bakgrunnsfarge FileRenamed=Filen har fått nytt navn -FileUploaded=Opplastningen var vellykket FileGenerated=Filen ble opprettet +FileSaved=The file was successfully saved +FileUploaded=Opplastningen var vellykket +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=En fil er valgt som vedlegg, men er ennå ikke lastet opp. Klikk på "Legg ved fil" for dette. NbOfEntries=Antall oppføringer GoToWikiHelpPage=Les online-hjelp (Du må være tilknyttet internett) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Eksl. MVA TTC=Inkl. MVA +INCT=Inkl. alle avgifter VAT=MVA VATs=Salgsavgifter LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=des AttachedFiles=Vedlagte filer og dokumenter -FileTransferComplete=Filen ble lastet opp! DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD TT:SS diff --git a/htdocs/langs/nb_NO/members.lang b/htdocs/langs/nb_NO/members.lang index 2df9fd7efad..ba8cab8150d 100644 --- a/htdocs/langs/nb_NO/members.lang +++ b/htdocs/langs/nb_NO/members.lang @@ -41,8 +41,8 @@ MemberType=Medlemstype MemberTypeId=Medlemstype-ID MemberTypeLabel=Medlemstype etikett MembersTypes=Medlemstyper -MemberStatusDraft=Utkastl (må valideres) -MemberStatusDraftShort=Utkast +MemberStatusDraft=Kladd (må valideres) +MemberStatusDraftShort=Kladd MemberStatusActive=Validert (venter abonnement) MemberStatusActiveShort=Validert MemberStatusActiveLate=Abonnement utgått @@ -90,6 +90,7 @@ PublicMemberList=Offentlig medlemsliste BlankSubscriptionForm=Offentlig tegningsblankett BlankSubscriptionFormDesc=Dolibarr kan gi deg en offentlig URL for å la eksterne besøkende å be om å abonnere på organisasjonen. Dersom en modul for online betaling er aktivert, vil et betalingsskjema også automatisk bli gitt. EnablePublicSubscriptionForm=Aktiver det offentlige auto-abonnement skjemaet +ForceMemberType=Tving medlemstype ExportDataset_member_1=Medlemmer og abonnementer ImportDataset_member_1=Medlemmer LastMembersModified=Siste %s endrede medlemmer @@ -127,8 +128,8 @@ NoThirdPartyAssociatedToMember=Ingen tredjepart knyttet til dette medlemmet MembersAndSubscriptions= Medlemmer og Abonnementer MoreActions=Komplementære tiltak ved opprettelse MoreActionsOnSubscription=Supplerende tiltak, foreslått som standard når du tar opp et abonnement -MoreActionBankDirect=Create a direct entry on bank account -MoreActionBankViaInvoice=Create an invoice, and a payment on bank account +MoreActionBankDirect=Opprett en direkteføring på bankkonto +MoreActionBankViaInvoice=Opprett en faktura, og en betaling på bankkonto MoreActionInvoiceOnly=Lag en faktura uten betaling LinkToGeneratedPages=Generer besøkskort LinkToGeneratedPagesDesc=I dette skjermbildet kan du generere PDF-filer med visittkort for alle medlemmer eller et enkelt medlem. @@ -149,7 +150,8 @@ MembersByStateDesc=Denne skjermen viser deg statistikk over medlemmer etter omr MembersByTownDesc=Denne skjermen viser deg statistikk over medlemmer etter by. MembersStatisticsDesc=Velg statistikk du ønsker å lese ... MenuMembersStats=Statistikk -LastMemberDate=Latest member date +LastMemberDate=Siste medlemsdato +LatestSubscriptionDate=Siste abonnementsdato Nature=Natur Public=Informasjon er offentlig NewMemberbyWeb=Nytt medlem lagt til. Venter på godkjenning diff --git a/htdocs/langs/nb_NO/modulebuilder.lang b/htdocs/langs/nb_NO/modulebuilder.lang index 9b5a9f6ff9a..bb45721bb24 100644 --- a/htdocs/langs/nb_NO/modulebuilder.lang +++ b/htdocs/langs/nb_NO/modulebuilder.lang @@ -1,24 +1,40 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=Disse verktøyene gir deg verktøy til å bygge eller redigere din egen modul. -EnterNameOfModuleDesc=Skriv inn navnet på modulen uten bruk av mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) -ModuleBuilderDesc2=Sti hvor modulene er generert/redigert (første alternative katalog definert i %s): %s +ModuleBuilderDesc=Disse verktøyene må kun brukes av erfarne brukere eller utviklere. Det gir deg et verktøy til å bygge eller redigere din egen modul (Dokumentasjon for alternativ manuell utvikling er her ). +EnterNameOfModuleDesc=Skriv inn navnet på modulen/applikasjonen du vil opprette, uten mellomrom. Bruk stor bokstav til å skille ord (For eksempel: MyModule, EcommerceForShop, SyncWithMySystem ...) +EnterNameOfObjectDesc=Skriv inn navnet på objektet som skal opprettes, uten å bruke mellomrom. Bruk store bokstaver til å skille ord (For eksempel: MittObjeKt, Student, Lærer ...) +ModuleBuilderDesc2=Sti hvor moduler genereres/redigeres (første alternative katalog definert i %s): %s ModuleBuilderDesc3=Genererte / redigerbare moduler funnet: %s (de oppdages som redigerbare når filen %s eksisterer i roten av modulkatalogen). NewModule=Ny modul -ModuleKey=Nøkkel for ny modul +NewObject=Nytt objekt +ModuleKey=Modulnøkkel +ObjectKey=Objektnøkkel ModuleInitialized=Modul initialisert +FilesForObjectInitialized=Filer for nytt objekt initialisert ModuleBuilderDescdescription=Her skriver du inn all generell informasjon som beskriver modulen din -ModuleBuilderDescobjects=Definer de nye objektene du vil administrere med modulen din her. En side for å liste dem og en side for å opprette/redigere/vise et kort vil bli generert. +ModuleBuilderDescspecifications=Du kan skrive inn en lang tekst for å beskrive spesifikasjonene til modulen din, som ikke allerede er strukturert i andre faner. Da har du plass til utviklingsregler. Også dette tekstinnholdet vil bli inkludert i den genererte dokumentasjonen (se siste faneblad). +ModuleBuilderDescobjects=Definer de objektene du vil administrere med modulen din her. En sql-fil, en side for å liste dem, en for å opprette/redigere/vise et kort og en API, vil bli generert. ModuleBuilderDescmenus=Denne fanen er dedikert for å definere menyoppføringer som tilbys av modulen din. ModuleBuilderDescpermissions=Denne fanener dedikert til å definere de nye tillatelsene du vil gi med modulen din. -ModuleBuilderDesctriggers=Dette er visningen av utløsere som tilbys av modulen din. Hvis du vil inkludere kode som kjøres når en forretningsaktivitet er startet, kan du redigere denne filen med din IDE. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. ModuleBuilderDeschooks=Denne fanen er til kroker. ModuleBuilderDescwidgets=Denne fanen er for å administrere/bygge widgeter. -ModuleBuilderDescbuildpackage=Du kan generere en "klar til å distribuere" pakkefil (en normalisert .zip-fil) av modulen din her. Bare klikk på knappen for å få modulpakkefilen din. -ModuleBuilderDescdangerzone=Du kan slette modulen din. ADVARSEL: Alle filer i modulen vil gå tapt! +ModuleBuilderDescbuildpackage=Her kan du generere en "klar til å distribuere" pakkefil (en normalisert .zip-fil) av modulen din og en "klar til å distribuere" dokumentasjonsfil. Klikk på knappen for å bygge pakken eller dokumentasjonsfilen. +EnterNameOfModuleToDeleteDesc=Du kan slette modulen din. ADVARSEL: Alle filer i modulen, men også strukturerte data og dokumentasjon, vil definitivt gå tapt! +EnterNameOfObjectToDeleteDesc=Du kan slette et objekt. ADVARSEL: Alle filer relatert til objekt går tapt! DangerZone=Faresone -BuildPackage=Bygg pakke -ModuleIsNotActive=Denne modulen er ikke aktivert ennå (gå inn i Home-Setup-modulen for å aktivere) +BuildPackage=Bygg pakke/dokumentasjon +BuildDocumentation=Bygg dokumentasjon +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) ModuleIsLive=Denne modulen er blitt aktivert. Enhver endring på den kan ødelegge en gjeldende aktiv funksjon. DescriptionLong=Lang beskrivelse EditorName=Navn på editor EditorUrl=URL til editor +DescriptorFile=Beskrivelsesfil av modulen +ClassFile=Fil for PHP-klasse +ApiClassFile=Fil for PHP API-klasse +PageForList=PHP -side for liste over poster +PageForCreateEditView=PHP-side for å lage/redigere/vise en post +PathToModulePackage=Sti til zip-fil av modul/applikasjonspakke +PathToModuleDocumentation=Sti til fil med modul/applikasjonsdokumentasjon +SpaceOrSpecialCharAreNotAllowed=Mellomrom eller spesialtegn er ikke tillatt. +FileNotYetGenerated=Filen er ikke generert ennå diff --git a/htdocs/langs/nb_NO/oauth.lang b/htdocs/langs/nb_NO/oauth.lang index 5be463dd345..5c9e65e3ad9 100644 --- a/htdocs/langs/nb_NO/oauth.lang +++ b/htdocs/langs/nb_NO/oauth.lang @@ -7,15 +7,15 @@ IsTokenGenerated=Er nøkkel generert? NoAccessToken=Ingen adgangsnøkkel lagret i lokal database HasAccessToken=En nøkkel ble generert og lagret i lokal database NewTokenStored=Nøkkel mottatt og lagret -ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider +ToCheckDeleteTokenOnProvider=Klikk her for å hake av/slette autorisasjon lagret av %s OAuth-leverandør TokenDeleted=Nøkkel slettet RequestAccess=Klikk her for forespørsel/fornyet adgang og motta ny nøkkel DeleteAccess=Klikk her for å slette nøkkel UseTheFollowingUrlAsRedirectURI=Bruk følgende URL som redirect-URL når du lager din legitimasjon hos din OAuth tilbyder ListOfSupportedOauthProviders=Legg inn opplysninger fra din OAuth2-leverandør. Kun supporterte OAuth2-leverandører vises her. Dette oppsettet kan bli brukt av andre moduler som trenger OAuth2-autentisering -OAuthSetupForLogin=Page to generate an OAuth token +OAuthSetupForLogin=Side for å generere en OAuth-nøkkel SeePreviousTab=Se forrige fane -OAuthIDSecret=OAuth ID and Secret +OAuthIDSecret=OAuth ID og hemmelig spørsmål TOKEN_REFRESH=Nøkkeloppfriskning tilstede TOKEN_EXPIRED=Nøkkel utgått TOKEN_EXPIRE_AT=Nøkkel utgår diff --git a/htdocs/langs/nb_NO/orders.lang b/htdocs/langs/nb_NO/orders.lang index b6545b6aa7b..c22da7525b1 100644 --- a/htdocs/langs/nb_NO/orders.lang +++ b/htdocs/langs/nb_NO/orders.lang @@ -39,7 +39,7 @@ StatusOrderRefusedShort=Avvist StatusOrderBilledShort=Fakturert StatusOrderToProcessShort=Til behandling StatusOrderReceivedPartiallyShort=Delvis mottatt -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=Varer mottatt StatusOrderCanceled=Kansellert StatusOrderDraft=Kladd (trenger validering) StatusOrderValidated=Validert @@ -51,7 +51,7 @@ StatusOrderApproved=Godkjent StatusOrderRefused=Avvist StatusOrderBilled=Fakturert StatusOrderReceivedPartially=Delvis mottatt -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Alle varer mottatt ShippingExist=En forsendelse eksisterer QtyOrdered=Antall bestilt ProductQtyInDraft=Varemengde i ordrekladder diff --git a/htdocs/langs/nb_NO/other.lang b/htdocs/langs/nb_NO/other.lang index 3b38f4f1368..69f73268e4e 100644 --- a/htdocs/langs/nb_NO/other.lang +++ b/htdocs/langs/nb_NO/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pund +WeightUnitounce=unse Length=Lengde LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/nb_NO/paybox.lang b/htdocs/langs/nb_NO/paybox.lang index 3293f225916..22bd249f2e7 100644 --- a/htdocs/langs/nb_NO/paybox.lang +++ b/htdocs/langs/nb_NO/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-post for betalingsbekreftelsen Creditor=Kreditor PaymentCode=Betalingskode PayBoxDoPayment=Gå til betaling +ToPay=Utfør betaling YouWillBeRedirectedOnPayBox=Du vil bli omdirigert til den sikrede Paybox siden for innlegging av kredittkortinformasjon Continue=Neste ToOfferALinkForOnlinePayment=URL for %s betaling diff --git a/htdocs/langs/nb_NO/printing.lang b/htdocs/langs/nb_NO/printing.lang index 0ede88ea5b1..6b74a29aa5c 100644 --- a/htdocs/langs/nb_NO/printing.lang +++ b/htdocs/langs/nb_NO/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Skriver media IPP_Supported=Mediatype DirectPrintingJobsDesc=Denne siden viser utskriftsjobber funnet for tilgjengelige skrivere. GoogleAuthNotConfigured=Google OAuth oppsett ikke utført. Aktiver modulen OAuth og sett opp Google ID/Secret. -GoogleAuthConfigured=Google OAuth legitimasjon funnet i oppsettet i modulen OAuth. +GoogleAuthConfigured=Google OAuth legitimasjon ble funnet i oppsettet av OAuth-modulen . PrintingDriverDescprintgcp=Konfigurasjonsvariabler for drivere til Google Cloud Print. PrintTestDescprintgcp=Liste over skrivere for Google Cloud Print. diff --git a/htdocs/langs/nb_NO/products.lang b/htdocs/langs/nb_NO/products.lang index 84b062ee40c..43574e8ea05 100644 --- a/htdocs/langs/nb_NO/products.lang +++ b/htdocs/langs/nb_NO/products.lang @@ -27,7 +27,7 @@ ProductsAndServices=Varer og tjenester ProductsOrServices=Varer eller tjenester ProductsOnSaleOnly=Varer kun til salgs ProductsOnPurchaseOnly=Varer kun for kjøp -ProductsNotOnSell=Vare ikke for salg og ikke for innkjøp +ProductsNotOnSell=Varer som ikke er til salgs og ikke for kjøp ProductsOnSellAndOnBuy=Varer for kjøp og salg ServicesOnSaleOnly=Tjenester kun til salgs ServicesOnPurchaseOnly=Tjenester kun for kjøp @@ -247,12 +247,18 @@ ComposedProduct=Sub-vare MinSupplierPrice=Minste leverandørpris MinCustomerPrice=Laveste kundepris DynamicPriceConfiguration=Dynamisk pris-konfigurering -DynamicPriceDesc=På produktkort , med denne modulen aktivert, vil du kunne sette matematiske funksjoner for å beregne kunde- eller leverandørpriser. En slik funksjon kan bruke alle matematiske operatorer , noen konstanter og variabler. Du kan legge inn de variablene du ønsker, og hvis variablene trenger automatisk oppdatering, mot en ekstern nettadresse, kan Dolibarr utføre dette. +DynamicPriceDesc=På varekortet, med denne modulen aktivert, kan du sette matematiske funksjoner for å beregne kunde- eller leverandørpriser. En slik funksjon kan bruke alle matematiske operatører, noen konstanter og variabler. Du kan angi variablene du vil kunne bruke, og hvis variabelen trenger en automatisk oppdatering, må du sette den eksterne nettadressen som brukes til å spørre Dolibarr for å oppdatere verdien automatisk. AddVariable=Legg til variabel AddUpdater=Velg oppdaterer GlobalVariables=Globale variabler VariableToUpdate=Variabel å oppdatere GlobalVariableUpdaters=Oppdatering av globale variabler +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parser JSON data fra angitt URL, VALUE spesifiserer lokasjonen til relevant verdi. +GlobalVariableUpdaterHelpFormat0=Format for forespørsel {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parser WebService-data fra angitt URL, NS spesifiserer navnerom, VERDI angir plasseringen av relevant verdi, DATA inneholder data som skal sendes og METHOD kaller WS-metode +GlobalVariableUpdaterHelpFormat1=Format for forespørsel er {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Oppdateringsintervall (minutter) LastUpdated=Siste oppdatering CorrectlyUpdated=Korrekt oppdatert diff --git a/htdocs/langs/nb_NO/propal.lang b/htdocs/langs/nb_NO/propal.lang index 12d324924bb..7d25b39d51d 100644 --- a/htdocs/langs/nb_NO/propal.lang +++ b/htdocs/langs/nb_NO/propal.lang @@ -3,7 +3,7 @@ Proposals=Tilbud Proposal=Tilbud ProposalShort=Tilbud ProposalsDraft=Tilbudskladder -ProposalsOpened=Åpnede tilbud +ProposalsOpened=Åpne tilbud Prop=Tilbud CommercialProposal=Tilbud ProposalCard=Tilbudskort @@ -26,9 +26,9 @@ AmountOfProposalsByMonthHT=Tilbudsbeløp pr måned (eksl. MVA) NbOfProposals=Antall tilbud ShowPropal=Vis tilbud PropalsDraft=Kladder -PropalsOpened=Åpnet +PropalsOpened=Åpent PropalStatusDraft=Kladd (trenger validering) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Validert (tilbud er åpnet) PropalStatusSigned=Akseptert(kan faktureres) PropalStatusNotSigned=Ikke akseptert(lukket) PropalStatusBilled=Fakturert diff --git a/htdocs/langs/nb_NO/salaries.lang b/htdocs/langs/nb_NO/salaries.lang index 14aa9102326..1d30a89950f 100644 --- a/htdocs/langs/nb_NO/salaries.lang +++ b/htdocs/langs/nb_NO/salaries.lang @@ -1,5 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Standard regnskapskonto for lønnsutbetalinger +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Regnskapskonto brukt til tredjepartsbrukere +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedikert regnskapskonto definert på brukerkort vil bli brukt til Subledger-regnskap, dette for hovedboken eller som standardverdi for Subledger-regnskap hvis dedikert bruker-regnskapskonto på bruker ikke er definert SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standard regnskapskonto for personalutgifter Salary=Lønn Salaries=Lønn diff --git a/htdocs/langs/nb_NO/stocks.lang b/htdocs/langs/nb_NO/stocks.lang index 8fa1e554d85..62583b68653 100644 --- a/htdocs/langs/nb_NO/stocks.lang +++ b/htdocs/langs/nb_NO/stocks.lang @@ -53,7 +53,7 @@ IndependantSubProductStock=Varelager og sub-varelager er uavhengig av hverandre QtyDispatched=Antall sendt QtyDispatchedShort=Mengde utsendt QtyToDispatchShort=Mengde for utsendelse -OrderDispatch=Lagerutsending +OrderDispatch=Varemottak RuleForStockManagementDecrease=Regel for automatisk lagerreduksjon (manuell reduksjon er alltid mulig, selv om automatisk reduksjon er aktivert) RuleForStockManagementIncrease=Regel for automatisk lagerøkning (manuell økning er alltid mulig, selv om automatisk økning er aktivert) DeStockOnBill=Reduser virkelig beholdning ut fra faktura/kreditnota diff --git a/htdocs/langs/nb_NO/supplier_proposal.lang b/htdocs/langs/nb_NO/supplier_proposal.lang index f1c9df0c25e..00e41bcbb68 100644 --- a/htdocs/langs/nb_NO/supplier_proposal.lang +++ b/htdocs/langs/nb_NO/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Finn en forspørsel DraftRequests=Forespørsel-kladder SupplierProposalsDraft=Leverandørtilbud-maler LastModifiedRequests=Siste %s endrede prisforespørsler -RequestsOpened=Opened price requests +RequestsOpened=Åpne prisforespørsler SupplierProposalArea=Område for leverandørtilbud SupplierProposalShort=Leverandørtilbud SupplierProposals=Leverandørtilbud @@ -23,7 +23,7 @@ ConfirmValidateAsk=Er du sikker på at du vil validere prisforespørsel %s Dette aliaset brukes også til å smi en SEO-URL når nettstedet leses fra en virtuell vert for en webserver (som Apacke, Nginx, ...). Bruk knappen " %s " for å redigere dette aliaset. MediaFiles=Mediabibliotek EditCss=Endre stil/CSS EditMenu=Rediger meny @@ -14,8 +15,9 @@ EditPageContent=Rediger innhold Website=Webside Webpage=Webside AddPage=Legg til side +HomePage=Hjemmeside PreviewOfSiteNotYetAvailable=Forhåndsvisning av websiden din %s er ikke tilgjengelig enda. Du må først legge til en side. -RequestedPageHasNoContentYet=Forespurt side med id %s har ikke innhold ennå, eller cache fil .tpl.php ble fjernet. Rediger innholdet på siden for å løse dette. +RequestedPageHasNoContentYet=Forespurt side med id %s har ikke noe innhold enda, eller cachefilen .tpl.php ble fjernet. Rediger innhold på siden for å løse dette. PageDeleted=Siden '%s' på webside %s slettet PageAdded=Side '%s' lagt til ViewSiteInNewTab=Vis webside i ny fane @@ -23,6 +25,7 @@ ViewPageInNewTab=Vis side i ny fane SetAsHomePage=Sett som startside RealURL=Virkelig URL ViewWebsiteInProduction=Vis webside ved hjelp av hjemme-URL -SetHereVirtualHost=Hvis du kan sette opp en dedikert virtuell vert med en rotkatalog på %s på webserveren din, kan du definere det virtuelle vertsnavnet her, slik at forhåndsvisningen også kan gjøres ved hjelp av denne direkte webserver-adgangen og ikke bare ved bruk av Dolibarr serveren. +SetHereVirtualHost=Hvis du kan opprette, på din webserver (Apache, Nginx, ...), en dedikert Virtual Host med PHP aktivert og en Root-katalog på %s
og skriv deretter inn det virtuelle vertsnavnet du har opprettet, slik at forhåndsvisningen kan gjøres også ved hjelp av denne direkte webservertilgangen, og ikke bare ved hjelp av Dolibarr-serveren. PreviewSiteServedByWebServer=Forhåndsvis %s i en ny fane.

%s vil bli kjørt på en ekstern webserver (som Apache, Nginx, IIS). Du må installere og sette opp denne serveren før du peker på katalogen:
%s
URL til ekstern server:
%s -PreviewSiteServedByDolibarr=Forhåndsvisning %s i en ny fane.

%s vil bli kjørt av Dolibarr-serveren, slik at det ikke trengs noen ekstra webserver (som Apache, Nginx, IIS).
Bakdelen er at nettadressen til sidene er ikke brukervennlige og starter med banen til Dolibarr.
URL kjørt av Dolibarr:
%s

For å bruke din egen eksterne webserver til å betjene denne websiden, opprett en virtuell vert på webserveren din som peker på katalogen
%s
og skriv deretter inn navnet på denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen. +PreviewSiteServedByDolibarr=Forhåndsvis%s i en ny fane.

%s vil bli servet av Dolibarr-serveren, slik at det ikke trengs noen ekstra webserver (som Apache, Nginx, IIS) som skal installeres.
Nettadressene til sidene er ikke brukervennlige og starter med banen til Dolibarr.
URL servet av Dolibarr:
%s

For å bruke din egen eksterne webserver til å betjene denne websiden , opprett en virtuell vert på webserveren din som peker på katalogen
%s
og skriv deretter inn navnet på denne virtuelle serveren og klikk på den andre forhåndsvisningsknappen. +NoPageYet=Ingen sider ennå diff --git a/htdocs/langs/nb_NO/withdrawals.lang b/htdocs/langs/nb_NO/withdrawals.lang index 0aca4764afc..f25e4dc65fd 100644 --- a/htdocs/langs/nb_NO/withdrawals.lang +++ b/htdocs/langs/nb_NO/withdrawals.lang @@ -17,14 +17,14 @@ NbOfInvoiceToWithdrawWithInfo=Antall kundefakturaer med direktedebetsordre som h InvoiceWaitingWithdraw=Faktura som venter på direktedebet AmountToWithdraw=Beløp å tilbakekalle WithdrawsRefused=Direktedebet avvist -NoInvoiceToWithdraw=Ingen kundefakturaer er i "Tilbakekallings"-modus. Gå til "Tilbakekallinger" på fakturakortet for å lage en forespørsel. +NoInvoiceToWithdraw=Ingen kundefaktura med åpne 'Debetforespørsler' venter. Gå til fanen '%s' på fakturakortet for å gjøre en forespørsel. ResponsibleUser=Ansvarlig bruker WithdrawalsSetup=Oppsett av direktedebetsbetalinger WithdrawStatistics=Statistikk over direktedebetsbetalinger WithdrawRejectStatistics=Statistikk over avviste direktedebetsbetalinger LastWithdrawalReceipt=Siste %s direktedebetskvitteringer -MakeWithdrawRequest=Make a direct debit payment request -WithdrawRequestsDone=%s direct debit payment requests recorded +MakeWithdrawRequest=Foreta en direktedebet betalingsforespørsel +WithdrawRequestsDone=%s direktedebet-betalingforespørsler registrert ThirdPartyBankCode=Tredjepartens bankkonto NoInvoiceCouldBeWithdrawed=Ingen faktura tilbakekalt. Sjekk at faktura er på firmaer med gyldig BAN. ClassCredited=Klassifiser som kreditert @@ -41,6 +41,7 @@ RefusedReason=Årsak til avslag RefusedInvoicing=Belast tilbakekallingen NoInvoiceRefused=Ikke belast tilbakekallingen InvoiceRefused=Faktura avvist (Kunden skal belastes for avvisningen) +StatusDebitCredit=Status debet/kreditt StatusWaiting=Venter StatusTrans=Sendt StatusCredited=Kreditert @@ -77,8 +78,8 @@ RUM=UMR RUMLong=Unik Mandat Referanse RUMWillBeGenerated=UMR.nummer vil bli generert når bankkonto-informasjon er lagret WithdrawMode=Direktedebetsmodus (FRST eller RECUR) -WithdrawRequestAmount=Amount of Direct debit request: -WithdrawRequestErrorNilAmount=Unable to create direct debit request for empty amount. +WithdrawRequestAmount=Antall direktedebet-betalingforespørsler +WithdrawRequestErrorNilAmount=Kan ikke opprette en tom direktedebet-betalingforespørsel SepaMandate=SEPA Direktedebet mandat SepaMandateShort=SEPA-Mandat PleaseReturnMandate=Vennligst returner dette mandatskjemaet via epost til %s eller med post til diff --git a/htdocs/langs/nl_BE/admin.lang b/htdocs/langs/nl_BE/admin.lang index 1c513e99f4a..f402913fdb4 100644 --- a/htdocs/langs/nl_BE/admin.lang +++ b/htdocs/langs/nl_BE/admin.lang @@ -1,12 +1,10 @@ # Dolibarr language file - Source file is en_US - admin VersionLastInstall=Versie van eerste installatie -VersionLastUpgrade=Laatste versie upgrade MaxNbOfLinesForBoxes=Max aantal lijnen voor widgets PurgeDeleteTemporaryFiles=Verwijder alle tijdelijke bestanden (geen risico op verlies van gegevens) PurgeNothingToDelete=Geen map of bestanden om te verwijderen. IgnoreDuplicateRecords=Negeer fouten van dubbele tabelregels (INSERT negeren) ModulesMarketPlaces=Meer modules... -BoxesAvailable=Beschikbare widgets BoxesActivated=Geactiveerde widgets SubmitTranslationENUS=Als de vertaling voor deze taal niet volledig is of een fout bevat, dan kunt u dit corrigeren door het bewuste taalbestand in de map Langs/%s te wijzigen en de wijzigingen op het Dolibarr forum te delen met anderen: www.dolibarr.org. ModuleFamilyHr=Personeelszaken (HR) diff --git a/htdocs/langs/nl_BE/agenda.lang b/htdocs/langs/nl_BE/agenda.lang index ecaa716eaaa..735635dca65 100644 --- a/htdocs/langs/nl_BE/agenda.lang +++ b/htdocs/langs/nl_BE/agenda.lang @@ -1,2 +1,17 @@ # Dolibarr language file - Source file is en_US - agenda +ToUserOfGroup=Aan elke gebruiker in groep ViewPerType=Overzicht per type +AgendaAutoActionDesc=Stel hier de gebeurtenissen in waarvoor u wilt dat Dolibarr automatische een afspraak in de agenda creëert. Als er niets is aangevinkt (standaard), zullen alleen handmatige acties worden opgenomen in de agenda. Automatische tracking van acties zullen niet bewaard worden. +NewCompanyToDolibarr=Derde %s aangemaakt +ContractValidatedInDolibarr=Contract %s goedgekeurd +MemberModifiedInDolibarr=Lid %s werd aangepast +MemberResiliatedInDolibarr=Lid %s verwijderd +ShipmentValidatedInDolibarr=Shipment %s goedgekeurd +ShipmentClassifyClosedInDolibarr=Verzending %s werd geclassificeerd als gefactureerd +ShipmentUnClassifyCloseddInDolibarr=Verzending %s werd geclassificieerd als opnieuw geopend +ShipmentDeletedInDolibarr=Shipment %s gewist +ProposalDeleted=Offerte verwijderd +AgendaModelModule=Document sjablonen voor een gebeurtenis +AgendaShowBirthdayEvents=Toon verjaardagen van contacten +AgendaHideBirthdayEvents=Verberg verjaardagen van contacten +ConfirmCloneEvent=Weet u zeker als u event %s wilt klonen? diff --git a/htdocs/langs/nl_BE/banks.lang b/htdocs/langs/nl_BE/banks.lang index b78b8e6ef18..76e0c7e5b6b 100644 --- a/htdocs/langs/nl_BE/banks.lang +++ b/htdocs/langs/nl_BE/banks.lang @@ -1,3 +1,4 @@ # Dolibarr language file - Source file is en_US - banks +BankChecksToReceipt=Te innen cheques RejectCheckDate=Datum de cheque was teruggekeerd CheckRejectedAndInvoicesReopened=Teruggekeerde cheque en factuur heropend diff --git a/htdocs/langs/nl_BE/bills.lang b/htdocs/langs/nl_BE/bills.lang index 9dc442ac8f1..bd9d90ee090 100644 --- a/htdocs/langs/nl_BE/bills.lang +++ b/htdocs/langs/nl_BE/bills.lang @@ -1,14 +1,20 @@ # Dolibarr language file - Source file is en_US - bills -BillsCustomers=Klant facturen -BillsSuppliers=Leverancier facturen +BillsCustomers=Klantfacturen +BillsCustomer=Klantfactuur +BillsCustomersUnpaid=Onbetaalde klantfacturen +BillsCustomersUnpaidForCompany=Onbetaalde afnemersfacturen voor %s +BillsSuppliersUnpaidForCompany=Onbetaalde leveranciersfacturen voor %s DisabledBecauseNotErasable=Niet mogelijk omdat het niet kan worden gewist IdPaymentMode=Betalingsmanier (id) LabelPaymentMode=Betalingsmanier (label) PaymentModeShort=Betalingsmanier CreateCreditNote=Aanmaak krediet nota +DoPayment=Doe een betaling +DoPaymentBack=Doe een terugbetaling StatusOfGeneratedInvoices=Lijst van genereerde facturen BillStatusDraft=Conceptfactuur (moet worden gevalideerd) BillShortStatusClosedUnpaid=Afgesloten +AmountOfBillsByMonthHT=Factuurbedrag per maand (ex BTW) ShowInvoiceSituation=Toon situatie factuur RemainderToBill=Nog te factureren DateMaxPayment=Te betalen vóór @@ -37,11 +43,7 @@ ChequeMaker=Cheque / Transfer uitvoerder DepositId=Id storting ShowUnpaidAll=Bekijk alle onbetaalde facturen CantRemoveConciliatedPayment=Kan een gedane betaling niet verwijderen -MarsNumRefModelDesc1=Geeft een getal terug in de vorm van %syymm-nnnn voor standaard facturen, %syymm-nnnn voor vervangingsfacturen, %syymm-nnnn voor betalingsfacturen en %syymm-nnnn voor kredietnota's waar yy is jaar, mm is maand en nnnn is een volgnummer zonder onderbreking en die niet terug op 0 komt. TypeContact_facture_external_BILLING=Klant contact NotLastInCycle=Deze factuur is niet de laatste in de rij en mag niet worden aangepast. -PDFCrevetteSituationNumber=Situatie N°%s PDFCrevetteSituationInvoiceLineDecompte=Situatie factuur - AANTAL -PDFCrevetteSituationInvoiceLine=Situatie N°%s : Fact. N°%s op %s -TotalSituationInvoice=Totaal situatie updatePriceNextInvoiceErrorUpdateline=Fout : pas de prijs aan op factuurlijn : %s diff --git a/htdocs/langs/nl_BE/bookmarks.lang b/htdocs/langs/nl_BE/bookmarks.lang index edc9aedcf2e..e5aebdb9da1 100644 --- a/htdocs/langs/nl_BE/bookmarks.lang +++ b/htdocs/langs/nl_BE/bookmarks.lang @@ -1,2 +1,14 @@ # Dolibarr language file - Source file is en_US - bookmarks +AddThisPageToBookmarks=Voeg huidige pagina toe aan de bladwijzers +Bookmark=Bladwijzer +Bookmarks=Bladwijzers +ListOfBookmarks=Lijst van bladwijzers +EditBookmarks=Bladwijzers oplijsten/bewerken +NewBookmark=Nieuwe bladwijzer +ShowBookmark=Toon bladwijzer +BookmarkTitle=Bladwijzer titel +BehaviourOnClick=Gedrag wanneer een bladwijzer URL geselecteerd is +CreateBookmark=Bladwijzer aanmaken +SetHereATitleForLink=Stel hier een titel voor de bladwijzer in ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Kies indien gekoppelde pagina moet worden geopend in een nieuw venster of niet +BookmarksManagement=Bladwijzerbeheer diff --git a/htdocs/langs/nl_BE/boxes.lang b/htdocs/langs/nl_BE/boxes.lang new file mode 100644 index 00000000000..b0177314277 --- /dev/null +++ b/htdocs/langs/nl_BE/boxes.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - boxes +BoxProductsAlertStock=Alarm producten voorraad diff --git a/htdocs/langs/nl_BE/cashdesk.lang b/htdocs/langs/nl_BE/cashdesk.lang index 71480b735d5..feb57377839 100644 --- a/htdocs/langs/nl_BE/cashdesk.lang +++ b/htdocs/langs/nl_BE/cashdesk.lang @@ -1,2 +1,9 @@ # Dolibarr language file - Source file is en_US - cashdesk +CashDeskBankCheque=Bankrekening (cheque) +CashdeskShowServices=Verkoop van diensten +SellFinished=Verkoop afgerond +BankToPay=Betalingsaccount +ShowCompany=Toon bedrijf +ShowStock=Toon magazijn +UserNeedPermissionToEditStockToUsePos=U vraagt ​​om de stock te verminderen bij de aanmaak van een factuur, dus de gebruiker die POS gebruikt moet rechten hebben om stock te bewerken. DolibarrReceiptPrinter=Dolibarr Ontvangsten Printer diff --git a/htdocs/langs/nl_BE/categories.lang b/htdocs/langs/nl_BE/categories.lang index 8039995fdd0..d7a7d0b59a1 100644 --- a/htdocs/langs/nl_BE/categories.lang +++ b/htdocs/langs/nl_BE/categories.lang @@ -1,2 +1,65 @@ # Dolibarr language file - Source file is en_US - categories +Rubrique=Tag/Categorie +Rubriques=Tags/Categorieën +RubriquesTransactions=Tags/Categorieën van transacties +categories=tags/categorieën +NoCategoryYet=Geen tag/categorie van dit type gemaakt +AddIn=Toevoegen in +CategoriesArea=Tags/Categorieën omgeving +CustomersCategoriesArea=Klanten tags/categorieën omgeving +MembersCategoriesArea=Leden tags/categorieën omgeving +ContactsCategoriesArea=Contacten tags/categorieën omgeving +AccountsCategoriesArea=Accounts tags/categorieën omgeving +ProjectsCategoriesArea=Projecten tags/categorieën omgeving +CatList=Lijst van tags/categorieën +NewCategory=Nieuwe tag/categorie +ModifCat=Tag/categorie wijzigen +CatCreated=Tag/categorie aangemaakt +CreateCat=Maak tag/categorie +CreateThisCat=Maak deze tag/categorie +FoundCats=Gevonden tags/categorieën +ImpossibleAddCat=Onmogelijk om de tag/categorie %s toe te voegen +ObjectAlreadyLinkedToCategory=Het element is al gekoppeld met deze tag/categorie. +ProductIsInCategories=Product/dienst is gekoppeld met volgende tags/categorieën +CompanyIsInCustomersCategories=Deze derde is gekoppeld met volgende klanten/prospects tags/categorieën +CompanyIsInSuppliersCategories=Deze derde is gekoppeld met volgende leveranciers tags/categorieën +MemberIsInCategories=Dit lid is gekoppeld met volgende leden tags/categorieën +ContactIsInCategories=Dit contact is gekoppeld met volgende contacten tags/categorieën +ProductHasNoCategory=Dit product/dienst staat niet in tags/categorieën +CompanyHasNoCategory=Deze derde staat niet in tags/categorieën +MemberHasNoCategory=Dit lid staat in geen tags/categorieën +ContactHasNoCategory=Dit contact staat in geen tags/categorieën +ProjectHasNoCategory=Dit project staat in geen enkele tags/categorieën +ClassifyInCategory=Toevoegen aan tag/categorie +NotCategorized=Zonder tag/categorie +DeleteCategory=Tag/Categorie verwijderen +ConfirmDeleteCategory=Weet u zeker dat u deze tag/categorie wilt verwijderen? +NoCategoriesDefined=Geen tag/categorie gedefinieerd +SuppliersCategoryShort=Leveranciers tag/categorie +CustomersCategoryShort=Klanten tag/categorie +ProductsCategoryShort=Producten tag/categorie +MembersCategoryShort=Leden tag/categorie +SuppliersCategoriesShort=Leveranciers tags/categorieën +CustomersCategoriesShort=Klanten tags/categorieën ProspectsCategoriesShort=Vooruitzicht labels/categorien +CustomersProspectsCategoriesShort=Afnemers/Prosp. categorieën +ProductsCategoriesShort=Producten tags/categorieën +MembersCategoriesShort=Leden tags/categorieën +ContactCategoriesShort=Contacten tags/categorieën +AccountsCategoriesShort=Accounts tags/categorieën +ProjectsCategoriesShort=Projecten tags/categorieën +ThisCategoryHasNoAccount=Deze categorie bevat geen account. +ThisCategoryHasNoProject=Deze categorie bevat geen project. +CategId=Tag/categorie id +CatSupList=Lijst van leverancier tags/categorieën +CatProdList=Lijst van producten tags/categorieën +CatMemberList=Lijst van leden tags/categorieën +CatContactList=Lijst van contact tags/categorieën +CatSupLinks=Koppelingen tussen leveranciers en tags/categorieën +CatCusLinks=Koppelingen tussen klanten/prospects en tags/categorieën +CatProdLinks=Koppelingen tussen producten/diensten en tags/categorieën +CatProJectLinks=Koppelingen tussen projecten en tags/categorieën +DeleteFromCat=Verwijderen uit tags/categorie +CategoriesSetup=Tags/categorieën instellingen +CategorieRecursiv=Automatische koppeling met bovenliggende tag/categorie +CategorieRecursivHelp=Indien geactiveerd zal het product ook gekoppeld worden met de bovenliggende categorie wanneer een subcategorie toegevoegd wordt. diff --git a/htdocs/langs/nl_BE/commercial.lang b/htdocs/langs/nl_BE/commercial.lang new file mode 100644 index 00000000000..12d460f06bc --- /dev/null +++ b/htdocs/langs/nl_BE/commercial.lang @@ -0,0 +1,10 @@ +# Dolibarr language file - Source file is en_US - commercial +ConfirmDeleteAction=Bent u zeker dat u dit event wil verwijderen? +ActionOnCompany=Gerelateerd bedrijf +ActionOnContact=Gerelateerd contact +ThirdPartiesOfSaleRepresentative=Derden met vertegenwoordiger +SaleRepresentativesOfThirdParty=Vertegenwoordigers van derden +LastDoneTasks=Laatste %s gedane acties +LastActionsToDo=Oudste %s onvoltooide acties +ActionAC_FAC=Stuur factuur per e-mail +ActionAC_REL=Stuur factuur per e-mail (herinnering) diff --git a/htdocs/langs/nl_BE/companies.lang b/htdocs/langs/nl_BE/companies.lang index 989b17320a9..07662093a14 100644 --- a/htdocs/langs/nl_BE/companies.lang +++ b/htdocs/langs/nl_BE/companies.lang @@ -1,7 +1,13 @@ # Dolibarr language file - Source file is en_US - companies +ConfirmDeleteCompany=Weet u zeker dat u dit bedrijf en alle geërfde gegevens wilt verwijderen? +ConfirmDeleteContact=Weet u zeker dat u deze contactpersoon en alle geërfde gegevens wilt verwijderen ? +ToCreateContactWithSameName=Maakt automatisch een contact/adres met dezelfde informatie als de derde onder de derde. In de meeste gevallen is het voldoende om een derde partij aan te maken. RegisteredOffice=Maarschappelijke zetel +PostOrFunction=Functie StateShort=Staat PhoneShort=Telefoonnummer +No_Email=Geen globale e-mailings sturen +CopyAddressFromSoc=Vul derde partij adres in LocalTax1IsUsed=Gebruik tweede BTW LocalTax2IsUsed=Gebruik derde BTW LocalTax2ES=Personenbelasting @@ -11,13 +17,16 @@ ProfId2AR=Prof Id 2 (Inkomsten voor belastingen) ProfId3CH=Prof id 1 (Federaal nummer) ProfId2ES=Prof Id 2 (INSZ-nummer) ProfId2MA=Id prof. 2 (Patent) +ProfId5MA=Id prof. 5 (C.I.C.E.) ProfId3MX=Prof Id 3 (Professioneel Charter) ProfId2PT=Prof. id 2 (INSZ-nummer) ProfId3PT=Prof. Id 3 (Commerciële fiche aantal) ProfId2TN=Prof. id 2 (Fiscale inschrijving) +CompanyHasAbsoluteDiscount=Deze afnemer heeft nog een kortingstegoed van %s %s CompanyHasCreditNote=Deze afnemer heeft nog creditnota's of eerdere stortingen voor %s %s CustomerAbsoluteDiscountAllUsers=Openstaand kortingsbedrag (toegekend aan alle gebruikers) CustomerAbsoluteDiscountMy=Mijn openstaand kortingsbedrag (toegekend aan uzelf) +FromContactName=Naam: CustomerCodeShort=Klant code SupplierCodeShort=Leverancier code ContactForOrders=Contactpersoon opdrachten @@ -26,10 +35,24 @@ ContactForContracts=Contactpersoon contracten ContactForInvoices=Contactpersoon facturen ErrorVATCheckMS_UNAVAILABLE=Controle niet mogelijk. Controledienst wordt niet verleend door lidstaat (%s). ContactOthers=Ander +StatusProspect1=Contact opnemen StatusProspect2=Contact lopende +ChangeToContact=Status veranderen naar 'Contact opnemen' +ExportDataset_company_1=Derde partijen (Bedrijf/stichting/fysieke personen) en eigenschappen +ImportDataset_company_1=Derde partijen (Bedrijven/stichtingen/fysieke mensen) en eigenschappen ImportDataset_company_4=Derde partij/Verkoopsverantwoordelijke (Affecteert verkoopsverantwoordelijke gebruikers naar bedrijven) +JuridicalStatus200=Onafhankelijk +AllocateCommercial=Toegewezen aan de verkoopsverantwoordelijke +YouMustCreateContactFirst=U dient voor de Klant eerst contactpersonen met een e-mailadres in te stellen, voordat u kennisgevingen per e-mail kunt sturen. +LastModifiedThirdParties=Laatste %s bewerkte derde partijen +ThirdPartyIsClosed=Derde partij is gesloten ProductsIntoElements=Lijst van producten/diensten in %s +OutstandingBillReached=Maximum bereikt voor openstaande rekening MergeOriginThirdparty=Kopieer derde partij (derde partij die je wil verwijderen) MergeThirdparties=Voeg derde partijen samen +ConfirmMergeThirdparties=Bent u zeker dat u deze derde partij wil samenvoegen met de huidige? Alle gekoppelde objecten (facturen, orders, ...) worden verplaatst naar de huidige derde partij zodat u de gedupliceerde kan verwijderen. ThirdpartiesMergeSuccess=Derde partijen werden samen gevoegd. +SaleRepresentativeLogin=Login van de verkoopsverantwoordelijke +SaleRepresentativeFirstname=Voornaam van de verkoopsverantwoordelijke +SaleRepresentativeLastname=Familienaam van de verkoopsverantwoordelijke ErrorThirdpartiesMerge=Er was een fout tijdens het verwijderen van derde partijen. controleer het logboek. Aanpassingen werden teruggezet. diff --git a/htdocs/langs/nl_BE/hrm.lang b/htdocs/langs/nl_BE/hrm.lang index a6bba2596c8..db7fdd34570 100644 --- a/htdocs/langs/nl_BE/hrm.lang +++ b/htdocs/langs/nl_BE/hrm.lang @@ -4,10 +4,7 @@ Establishments=Inrichtingen Establishment=Inrichting NewEstablishment=Nieuwe inrichting DeleteEstablishment=Verwijderen inrichting -ConfirmDeleteEstablishment=Weet U zeker dat U deze inrichting wilt verwijderen ? OpenEtablishment=Open inrichting CloseEtablishment=Sluit inrichting DictionaryDepartment=HRM - afdelingen lijst DictionaryFunction=HRM - Functielijst -Employees=Werknemers -NewEmployee=Nieuwe werknemer diff --git a/htdocs/langs/nl_BE/install.lang b/htdocs/langs/nl_BE/install.lang index d68a385e8d3..88a29bb1687 100644 --- a/htdocs/langs/nl_BE/install.lang +++ b/htdocs/langs/nl_BE/install.lang @@ -1,7 +1,6 @@ # Dolibarr language file - Source file is en_US - install LastStepDesc=Laatste stap: Definieer hier de login en het wachtwoord die u wilt gebruiken om verbinding te maken software. Niet los dit als het is de rekening voor alle anderen te beheren. ShowEditTechnicalParameters=Klik hier om verder gevorderde parameters te zien of aan te passen. (expert instellingen) -WarningUpgrade=Opgelet:\nHeb je een database backup uitgevoerd ?\nDit wordt ten zeerste aanbevolen: wegens fouten in de database systemen (vb mysql version 5.5.40/41/42/43), kunnen bepaalde gegevens verloren gaan tijdens dit proces, voer daarom eerst een complete dump uit van je database voor je start met de migratie opdracht.\n\nKlik op OK om de migratie te starten... ErrorDatabaseVersionForbiddenForMigration=Uw database versie is %s en heeft een kritieke bug die gegevensverlies veroorzaakt als je structuur verandering uitvoert op uw database, welke gedaan worden door het migratieproces. Voor deze reden, zal de migratie niet worden toegestaan ​​totdat u uw database upgrade naar een hogere versie (lijst van gekende versies met bug: %s). MigrationDeliveryAddress=Werk de afleveringsadressen voor verzending bij MigrationCategorieAssociation=Overzetten van categoriën diff --git a/htdocs/langs/nl_BE/mails.lang b/htdocs/langs/nl_BE/mails.lang index 76be83cdd13..5f2d186478a 100644 --- a/htdocs/langs/nl_BE/mails.lang +++ b/htdocs/langs/nl_BE/mails.lang @@ -7,4 +7,3 @@ NbIgnored=Nr genegeerd NbSent=Nr verstuurd SearchAMailing=Zoek een E-mailing SendMailing=Verzend E-mailing -AddNewNotification=Activeer een niewe e-mail notificatie doel diff --git a/htdocs/langs/nl_BE/margins.lang b/htdocs/langs/nl_BE/margins.lang index f4e94f8fb97..099b7f5037c 100644 --- a/htdocs/langs/nl_BE/margins.lang +++ b/htdocs/langs/nl_BE/margins.lang @@ -1,5 +1,9 @@ # Dolibarr language file - Source file is en_US - margins +MarginOnProducts=Marge / Producten ForceBuyingPriceIfNull=Gebruik de koop/kost prijs als verkoopsprijs indien niet gedefinieerd ForceBuyingPriceIfNullDetails=Indien koop/kost prijs niet gedefinieerd is, en deze optie is "ON", dan zal de marge nul zijn op deze lijn (koop/kost prijs = verkoopsprijs), anderzijds ("OFF"), marge zal gelijk zijn aan het gesuggereerde voorstel. +UseDiscountAsProduct=Als een product MargeType3=Marge op kostprijs MarginTypeDesc=* Marge op de beste koop prijs = Verkoopsprijs - Beste gedefinieerde leveranciersprijs op productkaart
* Marge op de gewogen gemiddelde prijs (WAP) = Verkoopsprijs - Gewogen gemiddelde prijs van het product (WAP) of de beste leveranciersprijs indien WAP nog niet gedefinieerd werd
* Marge op kost prijs = Verkoopsprijs - kost prijs gedefinieerd op product kaart of WAP indien kost prijs niet gedefinieerd was, of beste leveranciersprijs indien WAP nog niet gedefinieerd is +AgentContactType=Contacttype van commercieel medewerker +CheckMargins=Marges detail diff --git a/htdocs/langs/nl_BE/members.lang b/htdocs/langs/nl_BE/members.lang new file mode 100644 index 00000000000..89979e6cc3a --- /dev/null +++ b/htdocs/langs/nl_BE/members.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - members +MemberStatusDraft=Conceptfactuur (moet worden gevalideerd) diff --git a/htdocs/langs/nl_BE/printing.lang b/htdocs/langs/nl_BE/printing.lang index 3b6adab293d..c155650e201 100644 --- a/htdocs/langs/nl_BE/printing.lang +++ b/htdocs/langs/nl_BE/printing.lang @@ -1,10 +1,15 @@ # Dolibarr language file - Source file is en_US - printing +MenuDirectPrinting=Direct Printing opdrachten ListDrivers=Lijst van beschikbare drivers PrintTestDesc=Beschikbare printers NoActivePrintingModuleFound=Geen actieve module om af te drukken TargetedPrinter=Doelprinter +PRINTGCP_INFO=Google OAuth API instellingen +PRINTGCP_AUTHLINK=Authentificatie GCP_State=Printer Status GCP_connectionStatus=Online Status PRINTIPP_PASSWORD=Paswoord NoDefaultPrinterDefined=Geen standaard printer gevonden -IPP_Color=Kleur +DirectPrintingJobsDesc=Deze pagina toont afdrukopdrachten voor de beschikbare printers. +GoogleAuthNotConfigured=Google OAuth instellen is nog niet voltooid. Activeer de OAuth module en geef een Google ID/Secret in. +GoogleAuthConfigured=Google OAuth gegevens werden in de instellingen van de OAuth module teruggevonden. diff --git a/htdocs/langs/nl_BE/products.lang b/htdocs/langs/nl_BE/products.lang index 4701b644959..f1b2a5d1cda 100644 --- a/htdocs/langs/nl_BE/products.lang +++ b/htdocs/langs/nl_BE/products.lang @@ -1,7 +1,5 @@ # Dolibarr language file - Source file is en_US - products Reference=Artikelcode -ProductsNotOnSell=Niet beschikbaar voor verkoop -ServicesNotOnSell=Geen diensten vatbaar voor verkoop OnSell=Te koop OnBuy=Te koop NotOnSell=Niet meer beschikbaar diff --git a/htdocs/langs/nl_BE/projects.lang b/htdocs/langs/nl_BE/projects.lang new file mode 100644 index 00000000000..40da898a82d --- /dev/null +++ b/htdocs/langs/nl_BE/projects.lang @@ -0,0 +1,7 @@ +# Dolibarr language file - Source file is en_US - projects +ProjectsArea=Project Omgeving +ConfirmDeleteAProject=Weet u zeker dat u dit project wilt verwijderen? +ConfirmDeleteATask=Weet u zeker dat u deze taak wilt verwijderen? +OpenedProjects=Open projecten +OpenedTasks=Open taken +ListOrdersAssociatedProject=Lijst van klantbestellingen die aan dit project gekoppeld zijn diff --git a/htdocs/langs/nl_BE/propal.lang b/htdocs/langs/nl_BE/propal.lang index 93c1c0f9a90..d5a2f87d7d9 100644 --- a/htdocs/langs/nl_BE/propal.lang +++ b/htdocs/langs/nl_BE/propal.lang @@ -1,5 +1,17 @@ # Dolibarr language file - Source file is en_US - propal +ProposalsOpened=Openstaande offertes +ConfirmDeleteProp=Weet u zeker dat u deze offerte wilt verwijderen? +ConfirmValidateProp=Weet u zeker dat u deze offerte met naam %s wilt valideren? +LastPropals=Laatste %s offertes +LastModifiedProposals=Laatste %s gewijzigde offertes +NoProposal=Geen offerte +PropalStatusValidated=Gevalideerd (offerte staat open) +CloseAs=Zet de status op +SetAcceptedRefused=Zet op goedgekeurd/geweigerd CreateEmptyPropal=Creëer een lege offerte uit de lijst van producten / diensten +ConfirmClonePropal=Weet u zeker dat u deze offerte %s wilt klonen? +ConfirmReOpenProp=Weet u zeker dat u offerte %s opnieuw wil openen? TypeContact_propal_internal_SALESREPFOLL=Vertegenwoordiger die de offerte opvolgt TypeContact_propal_external_BILLING=Contactpersoon afnemersfactuur ProposalCustomerSignature=Stempel, datum en handtekening met vermelding "Voor Akkoord" +ProposalsStatisticsSuppliers=Leveranciersoffertes statistieken diff --git a/htdocs/langs/nl_BE/resource.lang b/htdocs/langs/nl_BE/resource.lang new file mode 100644 index 00000000000..90f278fc062 --- /dev/null +++ b/htdocs/langs/nl_BE/resource.lang @@ -0,0 +1,2 @@ +# Dolibarr language file - Source file is en_US - resource +ShowResource=Toon resource diff --git a/htdocs/langs/nl_BE/salaries.lang b/htdocs/langs/nl_BE/salaries.lang new file mode 100644 index 00000000000..a25b727b4d0 --- /dev/null +++ b/htdocs/langs/nl_BE/salaries.lang @@ -0,0 +1,5 @@ +# Dolibarr language file - Source file is en_US - salaries +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Standaard boekhoudkundige code voor persoonlijke uitgaves +THM=Gemiddelde uurprijs +TJM=Gemiddelde dagprijs +CurrentSalary=Huidig salaris diff --git a/htdocs/langs/nl_BE/sendings.lang b/htdocs/langs/nl_BE/sendings.lang index 88ff5ba645d..9057b72a087 100644 --- a/htdocs/langs/nl_BE/sendings.lang +++ b/htdocs/langs/nl_BE/sendings.lang @@ -1,4 +1,20 @@ # Dolibarr language file - Source file is en_US - sendings ShowSending=Toon Verzendingen +Receivings=Ontvangstbevestingen +LastSendings=Laatste %s verzendingen +QtyPreparedOrShipped=Aantal voorbereid of verzonden +QtyInOtherShipments=Aantal in andere verzendingen +SendingsAndReceivingForSameOrder=Verzendingen en ontvangstbevestigingen van deze bestelling +ConfirmDeleteSending=Weet u zeker dat u deze verzending wilt verwijderen? +ConfirmValidateSending=Weet u zeker dat u deze verzending met referentie %s wilt valideren? +ConfirmCancelSending=Weet u zeker dat u deze verzending wilt annuleren? DateDeliveryPlanned=Verwachte leveringsdatum +RefDeliveryReceipt=Referentie ontvangstbevestiging +StatusReceipt=Status ontvangstbevestiging ActionsOnShipping=Events i.v.m. verzending +ProductQtyInCustomersOrdersRunning=Hoeveelheid producten in geopende klant bestellingen +ProductQtyInSuppliersOrdersRunning=Hoeveelheid producten in geopende leveranciersbestellingen +ProductQtyInSuppliersShipmentAlreadyRecevied=Ontvangen hoeveelheid producten uit geopende leveranciersbestelling +NoProductToShipFoundIntoStock=Geen product om te verzenden gevonden in magazijn %s. Werk stock bij of ga terug en kies een ander magazijn. +WeightVolShort=Gewicht/Volume +ValidateOrderFirstBeforeShipment=U moet eerst de bestelling valideren voor u een verzending kan aanmaken. diff --git a/htdocs/langs/nl_BE/sms.lang b/htdocs/langs/nl_BE/sms.lang index 2dc43871418..e443a7fdf39 100644 --- a/htdocs/langs/nl_BE/sms.lang +++ b/htdocs/langs/nl_BE/sms.lang @@ -1,2 +1,9 @@ # Dolibarr language file - Source file is en_US - sms +SmsDesc=Op deze pagina kunt u de globals opties van de SMS-functies instellen. +PrepareSms=Sms voorbereiden +ValidSms=Sms valideren +ApproveSms=Sms goedkeuren +SmsStatusSentPartialy=Gedeeltelijk verzonden +SmsStatusSentCompletely=Volledig verzonden +ConfirmValidSms=Bevestigt u de validatie van deze campagne? SmsNoPossibleSenderFound=Geen doel beschikbaar. Controleer instellingen van uw SMS-aanbieder. diff --git a/htdocs/langs/nl_BE/stocks.lang b/htdocs/langs/nl_BE/stocks.lang new file mode 100644 index 00000000000..2606eb29f32 --- /dev/null +++ b/htdocs/langs/nl_BE/stocks.lang @@ -0,0 +1,4 @@ +# Dolibarr language file - Source file is en_US - stocks +inventoryDraft=Actief +inventoryConfirmCreate=Aanmaken +inventoryDeleteLine=Verwijder lijn diff --git a/htdocs/langs/nl_BE/users.lang b/htdocs/langs/nl_BE/users.lang new file mode 100644 index 00000000000..eaa36c46745 --- /dev/null +++ b/htdocs/langs/nl_BE/users.lang @@ -0,0 +1,17 @@ +# Dolibarr language file - Source file is en_US - users +ConfirmDisableUser=Weet u zeker dat u de toegang voor gebruiker %s wilt uitschakelen? +ConfirmDeleteUser=Weet u zeker dat u gebruiker %s wilt verwijderen? +ConfirmDeleteGroup=Weet u zeker dat u groep %s wilt verwijderen? +ConfirmEnableUser=Weet u zeker dat u gebruiker %s wilt activeren? +ConfirmReinitPassword=Weet u zeker dat u voor gebruiker %s een nieuw wachtwoord wilt genereren? +ConfirmSendNewPassword=Weet u zeker dat u een nieuw wachtwoord wilt genereren en verzenden voor gebruiker %s? +LastGroupsCreated=Laatste %s gemaakte groepen +LastUsersCreated=Laatste %s gemaakte gebruikers +CreateDolibarrThirdParty=Maak Derden +CreateInternalUserDesc=Met dit formulier kan u een gebruiker intern in uw bedrijf/organisatie aanmaken. Gebruik de knop 'Nieuwe Dolibarr gebruiker' van de derde partij contactkaart om een externe gebruiker (klant, leverancier, ...) aan te maken. +InternalExternalDesc=Een interne gebruiker is een gebruiker die deel uitmaakt van uw bedrijf/organisatie.
Een externe gebruiker is een afnemer, leverancier of andere.

In beide gevallen kunnen de rechten binnen Dolibarr ingesteld worden. Ook kan een externe gebruiker over een ander menuverwerker beschikken dan een interne gebruiker (Zie Home->Instellingen->Scherm) +ConfirmCreateContact=Weet u zeker dat u een Dolibarr account wilt maken voor deze contactpersoon? +ConfirmCreateThirdParty=Weet u zeker dat u een 'derde' wilt maken voor dit lid? +UserAccountancyCode=Gebruiker accountancy code +UserLogoff=Gebruiker logout +DateEmployment=Datum van tewerkstelling diff --git a/htdocs/langs/nl_BE/website.lang b/htdocs/langs/nl_BE/website.lang new file mode 100644 index 00000000000..e5a6d431895 --- /dev/null +++ b/htdocs/langs/nl_BE/website.lang @@ -0,0 +1,22 @@ +# Dolibarr language file - Source file is en_US - website +DeleteWebsite=Verwijder website +ConfirmDeleteWebsite=Weet u zeker dat u deze website wilt verwijderen? Alle pagina's en inhoud worden ook verwijderd. +WEBSITE_PAGENAME=Paginanaam/alias +WEBSITE_CSS_URL=URL van extern CSS bestand +WEBSITE_CSS_INLINE=CSS inhoud +MediaFiles=Mediabibliotheek +EditCss=Bewerk Stijl/CSS +EditMenu=Bewerk menu +EditPageMeta=Meta bewerken +EditPageContent=Inhoud aanpassen +Website=Website +Webpage=Webpagina +AddPage=Pagina toevoegen +PreviewOfSiteNotYetAvailable=De voorvertoning van uw website %s is nog niet beschikbaar. U moet eerst een pagina toevoegen. +PageDeleted=Pagina '%s' van website %s werd verwijderd +PageAdded=Pagina '%s' werd toegevoegd +ViewSiteInNewTab=Bekijk de site in een nieuwe tab +ViewPageInNewTab=Bekijk de pagina in een nieuwe tab +SetAsHomePage=Zet als Homepagina +RealURL=Echte URL +ViewWebsiteInProduction=Bekijk website via de home URL's diff --git a/htdocs/langs/nl_BE/workflow.lang b/htdocs/langs/nl_BE/workflow.lang new file mode 100644 index 00000000000..073abe6e3d2 --- /dev/null +++ b/htdocs/langs/nl_BE/workflow.lang @@ -0,0 +1,8 @@ +# Dolibarr language file - Source file is en_US - workflow +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na tekenen van een offerte +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na validatie van een contract +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Maak automatisch een klantenfactuur na sluiten van een klantenbestelling +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificeer de gekoppelde offerte als gefactureerd wanneer de klantenfactuur gevalideerd werd +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificeer de gekoppelde bestelling als verzonden bij validatie van een verzending waarbij de verzonden hoeveelheid gelijk is aan de hoeveelheid van de bestelling +AutomaticCreation=Automatische aanmaak +AutomaticClassification=Automatische classificatie diff --git a/htdocs/langs/nl_NL/accountancy.lang b/htdocs/langs/nl_NL/accountancy.lang index e9b1ede8897..3470cc232f5 100644 --- a/htdocs/langs/nl_NL/accountancy.lang +++ b/htdocs/langs/nl_NL/accountancy.lang @@ -4,10 +4,10 @@ ACCOUNTING_EXPORT_DATE=Datumnotatie voor exportbestand ACCOUNTING_EXPORT_PIECE=Export the number of piece ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Export with global account ACCOUNTING_EXPORT_LABEL=Export label -ACCOUNTING_EXPORT_AMOUNT=Export amount -ACCOUNTING_EXPORT_DEVISE=Export currency -Selectformat=Select the format for the file -ACCOUNTING_EXPORT_PREFIX_SPEC=Specify the prefix for the file name +ACCOUNTING_EXPORT_AMOUNT=Export bedrag +ACCOUNTING_EXPORT_DEVISE=Export valuta +Selectformat=Selecteer het formaat van het bestand +ACCOUNTING_EXPORT_PREFIX_SPEC=Specificeer de prefix voor de bestandsnaam ThisService=This service ThisProduct=This product DefaultForService=Default for service @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,14 +216,16 @@ AccountingJournalType1=Various operation AccountingJournalType2=Verkopen AccountingJournalType3=Aankopen AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export -Exports=Export +Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Export model -OptionsDeactivatedForThisExportModel=For this export model, options are deactivated +OptionsDeactivatedForThisExportModel=Voor dit export model zijn de opties uitgezet Selectmodelcsv=Selecteer een export model Modelcsv_normal=Klassieke export Modelcsv_CEGID=Export towards CEGID Expert Comptabilité diff --git a/htdocs/langs/nl_NL/admin.lang b/htdocs/langs/nl_NL/admin.lang index 4e03bc776b3..a791cac6924 100644 --- a/htdocs/langs/nl_NL/admin.lang +++ b/htdocs/langs/nl_NL/admin.lang @@ -2,8 +2,8 @@ Foundation=Stichting Version=Versie VersionProgram=Programmaversie -VersionLastInstall=Initial install version -VersionLastUpgrade=Latest version upgrade +VersionLastInstall=Initiële installatie versie +VersionLastUpgrade=Laatste versie upgrade VersionExperimental=Experimenteel VersionDevelopment=Ontwikkeling VersionUnknown=Onbekend @@ -28,7 +28,7 @@ SessionId=Sessie-ID SessionSaveHandler=Wijze van sessieopslag SessionSavePath=Sessie opslaglocatie PurgeSessions=Verwijderen van sessies -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +ConfirmPurgeSessions=Wilt u werkelijk alle sessies sluiten? Dit wil elke gebruikerssessie afbreken (behalve uzelf). NoSessionListWithThisHandler=De waarde van 'save session handler' ingesteld in uw PHP instellingen staat het niet toe een lijst van alle lopende sessies weer te geven. LockNewSessions=Blokkeer nieuwe sessies ConfirmLockNewSessions=Weet u zeker dat u alle sessies wilt beperken tot uzelf? Alleen de gebruiker %s kan dan nog met Dolibarr verbinden. @@ -104,7 +104,7 @@ MenuIdParent=ID van het bovenliggende menu DetailMenuIdParent=ID van het bovenliggend menu (0 voor een hoogste menu) DetailPosition=Sorteren aantal te definiëren menupositie AllMenus=Alle -NotConfigured=Module/Application not configured +NotConfigured=Module/applicatie niet geconfigureerd Active=Actief SetupShort=Instellingen OtherOptions=Overige opties @@ -127,7 +127,7 @@ YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to a HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets -MaxNbOfLinesForBoxes=Max number of lines for widgets +MaxNbOfLinesForBoxes=Maximaal aantal regels voor widgets PositionByDefault=Standaardvolgorde Position=Positie MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). @@ -191,16 +191,16 @@ Rights=Rechten BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. OnlyActiveElementsAreShown=Alleen elementen van ingeschakelde modules worden getoond. ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. -ModulesMarketPlaceDesc=You can find more modules to download on external websites on the Internet... +ModulesMarketPlaceDesc=U kunt meer modules downloaden van externe website op het internet... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Vind externe modules... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, de officiële markt voor externe Dolibarr ERP / CRM modules DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) WebSiteDesc=Reference websites to find more modules... URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated +BoxesAvailable=Beschikbare widgets +BoxesActivated=Widgets geactiveerd ActivateOn=Activeren op ActiveOn=Geactiveerd op SourceFile=Bronbestand @@ -227,7 +227,7 @@ OfficialWebHostingService=Verwezen web hosting diensten (Cloud hosting) ReferencedPreferredPartners=Preferred Partners OtherResources=Other resources ExternalResources=External resources -SocialNetworks=Social Networks +SocialNetworks=Sociale netwerken ForDocumentationSeeWiki=Documentatie voor gebruikers of ontwikkelaars kunt u inzien door
te kijken op de Dolibarr Wiki-pagina's:
%s ForAnswersSeeForum=Voor alle andere vragen / hulp, kunt u gebruik maken van het Dolibarr forum:
%s HelpCenterDesc1=Dit scherm kan u helpen om ondersteuning voor Dolibarr te krijgen. @@ -431,7 +431,7 @@ UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher tha WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description DependsOn=This module need the module(s) -RequiredBy=This module is required by module(s) +RequiredBy=Deze module is vereist bij module(s) TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s @@ -446,7 +446,7 @@ FreeLegalTextOnExpenseReports=Free legal text on expense reports WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Gebruikers & groepen -Module0Desc=Users / Employees and Groups management +Module0Desc=Groepenbeheer gebruikers/werknemers Module1Name=Beheer derde partijen Module1Desc=Beheer van derde partijen (klanten, leveranciers en contactpersonen). Ook kunt u hier sjabloondocumenten uploaden. Module2Name=Commercieel @@ -536,7 +536,7 @@ Module1120Desc=Leverancier verzoek commerciële voorstel en prijzen Module1200Name=Mantis Module1200Desc=Mantis integratie Module1400Name=Boekhouden -Module1400Desc=Boekhoudkundig beheer van deskundigen (dubbel partijen) +Module1400Desc=Accounting management (double entries) Module1520Name=Documenten genereren Module1520Desc=Massa mail document generen Module1780Name=Labels/Categorien @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module om een ​​online betaling pagina te bieden per credit card met Paypal Module50400Name=Boekhouding -Module50400Desc=Boekhoudkundig beheer +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (zonder het openen van de documenten) met behulp van Cups IPP-interface (Printer moet zichtbaar zijn vanaf de server zijn, en CUPS moet geinstalleerd zijn op de server). Module55000Name=Poll, Onderzoek of Stemmen @@ -875,7 +875,7 @@ DictionaryProspectStatus=Prospection status DictionaryHolidayTypes=Types of leaves DictionaryOpportunityStatus=Opportunity status for project/lead SetupSaved=Instellingen opgeslagen -SetupNotSaved=Setup not saved +SetupNotSaved=Installatie niet opgeslagen BackToModuleList=Terug naar moduleoverzicht BackToDictionaryList=Terug naar de woordenboeken lijst VATManagement=BTW-beheer @@ -958,7 +958,7 @@ DefaultMaxSizeShortList=Default max length for short lists (ie in customer card) MessageOfDay=Bericht van de dag MessageLogin=Bericht op inlogpagina LoginPage=Login page -BackgroundImageLogin=Background image +BackgroundImageLogin=Achtergrond afbeelding PermanentLeftSearchForm=Permanent zoekformulier in linker menu DefaultLanguage=Standaard te gebruiken taal (taal-code) EnableMultilangInterface=Inschakelen meertalige interface @@ -1165,7 +1165,7 @@ WebCalUrlForVCalExport=Een exportlink naar het %s formaat is beschikbaar BillsSetup=Facturenmodule instellen BillsNumberingModule=Nummeringsmodule voor facturen en creditnota's BillsPDFModules=Factuur documentsjablonen -PaymentsPDFModules=Payment documents models +PaymentsPDFModules=Modellen betaal documenten CreditNote=Creditnota CreditNotes=Creditnota's ForceInvoiceDate=Forceer factuurdatum naar validatiedatum @@ -1365,7 +1365,7 @@ CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilt TestNotPossibleWithCurrentBrowsers=Automatische detectie niet mogelijk DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. DefaultCreateForm=Default values for new objects -DefaultSearchFilters=Default search filters +DefaultSearchFilters=Standaard zoekfilters DefaultSortOrder=Default sort orders DefaultFocus=Default focus fields ##### Products ##### diff --git a/htdocs/langs/nl_NL/agenda.lang b/htdocs/langs/nl_NL/agenda.lang index 8c67e47823a..0adef288727 100644 --- a/htdocs/langs/nl_NL/agenda.lang +++ b/htdocs/langs/nl_NL/agenda.lang @@ -75,14 +75,17 @@ InterventionSentByEMail=Interventie %s via mail verzonden ProposalDeleted=Voorstel verwijderd OrderDeleted=Bestelling verwijderd InvoiceDeleted=Factuur verwijderd +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### AgendaModelModule=Document sjablonen voor evenement DateActionStart=Startdatum DateActionEnd=Einddatum AgendaUrlOptions1=U kunt ook de volgende parameters gebruiken om te filteren: -AgendaUrlOptions2=login=%s om uitvoer van acties gecreëerd door, toegewezen aan of gedaan door gebruiker %s te beperken. AgendaUrlOptions3=login=%s om uitvoer van acties gedaan door gebruiker %s te beperken. -AgendaUrlOptions4=login=%s om uitvoer van acties toegewezen aan gebruiker %s te beperken. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID om uitvoer van acties toegewezen aan project PROJECT_ID. AgendaShowBirthdayEvents=Verjaardagen van contacten weergeven AgendaHideBirthdayEvents=Verjaardagen van contacten verbergen diff --git a/htdocs/langs/nl_NL/banks.lang b/htdocs/langs/nl_NL/banks.lang index c3b7b53bee9..fbd4a48cece 100644 --- a/htdocs/langs/nl_NL/banks.lang +++ b/htdocs/langs/nl_NL/banks.lang @@ -57,38 +57,39 @@ BankType2=Kasrekening AccountsArea=Rekeningenoverzicht AccountCard=Rekeningdetailkaart DeleteAccount=Rekening verwijderen -ConfirmDeleteAccount=Are you sure you want to delete this account? +ConfirmDeleteAccount=Weet u deze dat u dit account wilt verwijderen? Account=Rekening -BankTransactionByCategories=Bank entries by categories +BankTransactionByCategories=Bankregels op categorie BankTransactionForCategory=Bank entries for category %s RemoveFromRubrique=Verwijder link met categorie -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? +RemoveFromRubriqueConfirm=Weet u zeker dat u de link tussen het item en de categorie wilt wissen? ListBankTransactions=List of bank entries IdTransaction=Transactie ID BankTransactions=Bank entries -ListTransactions=List entries -ListTransactionsByCategory=List entries/category -TransactionsToConciliate=Entries to reconcile +BankTransaction=Bank entry +ListTransactions=Lijst items +ListTransactionsByCategory=Lijst items/categorie +TransactionsToConciliate=Items af te stemmen Conciliable=Kunnen worden afgestemd Conciliate=Afstemmen Conciliation=Afstemming ReconciliationLate=Reconciliation late IncludeClosedAccount=Inclusief opgeheven rekeningen -OnlyOpenedAccount=Alleen open rekeningen +OnlyOpenedAccount=Alleen open accounts AccountToCredit=Te crediteren rekening AccountToDebit=Te debiteren rekening DisableConciliation=Afstemming van deze rekening uitschakelen ConciliationDisabled=Afstemming voor deze rekening is uitgeschakeld LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Geopend +StatusAccountOpened=Open StatusAccountClosed=Opgeheven AccountIdShort=Aantal LineRecord=Transactie -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Item toevoegen +AddBankRecordLong=Item handmatig toevoegen ConciliatedBy=Afgestemd door DateConciliating=Afgestemd op -BankLineConciliated=Entry reconciled +BankLineConciliated=Item afgestemd Reconciled=Reconciled NotReconciled=Not reconciled CustomerInvoicePayment=Afnemersbetaling @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Cheque teruggekeerd en facturen heropend BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/nl_NL/bills.lang b/htdocs/langs/nl_NL/bills.lang index 7a6b9980f8f..c645c34eea9 100644 --- a/htdocs/langs/nl_NL/bills.lang +++ b/htdocs/langs/nl_NL/bills.lang @@ -5,9 +5,9 @@ BillsCustomers=Klantenfactuur BillsCustomer=Afnemersfactuur BillsSuppliers=Leveranciersfacturen BillsCustomersUnpaid=Onbetaalde klant facturen -BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s +BillsCustomersUnpaidForCompany=Onbetaalde klant facturen voor %s BillsSuppliersUnpaid=Onbetaalde leveranciersfacturen -BillsSuppliersUnpaidForCompany=Unpaid supplier invoices for %s +BillsSuppliersUnpaidForCompany=Onbetaalde leveranciers facturen voor %s BillsLate=Betalingsachterstand BillsStatistics=Statistieken afnemersfacturen BillsStatisticsSuppliers=Statistieken leveranciersfacturen @@ -41,7 +41,7 @@ ConsumedBy=Verbruikt door NotConsumed=Niet verbruikt NoReplacableInvoice=Geen verwisselbare facturen NoInvoiceToCorrect=Geen te corrigeren factuur -InvoiceHasAvoir=Was source of one or several credit notes +InvoiceHasAvoir=Is een factuur van een of meerdere kredietnota's. CardBill=Factuurdetails PredefinedInvoices=Voorgedefinieerde Facturen Invoice=Factuur @@ -63,7 +63,7 @@ paymentInInvoiceCurrency=Factuur valuta PaidBack=Terugbetaald DeletePayment=Betaling verwijderen ConfirmDeletePayment=Weet u zeker dat u deze betaling wilt verwijderen? -ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. +ConfirmConvertToReduc=Will u deze %s converteren naar een absolute korting?
Het bedrag zal worden verspreid over alle kortingen en kan worden gebruikt als een korting voor een bestaande of toekomstige factuur voor deze klant. SupplierPayments=Leveranciersbetalingen ReceivedPayments=Ontvangen betalingen ReceivedCustomersPayments=Ontvangen betalingen van afnemers @@ -103,8 +103,8 @@ SearchACustomerInvoice=Zoek een afnemersfactuur SearchASupplierInvoice=Zoek een leveranciersfactuur CancelBill=Verwijder factuur SendRemindByMail=E-mail een herinnering -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Geef betaling in +DoPaymentBack=Geef terugstorting in ConvertToReduc=Omzetten in een toekomstige korting ConvertExcessReceivedToReduc=Convert excess received into future discount EnterPaymentReceivedFromCustomer=Voer een ontvangen betaling van afnemer in @@ -115,7 +115,7 @@ BillStatus=Factuurstatus StatusOfGeneratedInvoices=Status van gegenereerde facturen BillStatusDraft=Concept (moet worden gevalideerd) BillStatusPaid=Betaald -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Teruggestort of omgezet in korting BillStatusConverted=Omgezet in korting BillStatusCanceled=Verlaten BillStatusValidated=Gevalideerd (moet worden betaald) @@ -126,8 +126,8 @@ BillStatusClosedUnpaid=Gesloten (onbetaald) BillStatusClosedPaidPartially=Betaald (gedeeltelijk) BillShortStatusDraft=Concept BillShortStatusPaid=Betaald -BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Verwerkte +BillShortStatusPaidBackOrConverted=Teruggestort of omgezet +BillShortStatusConverted=Betaald BillShortStatusCanceled=Verlaten BillShortStatusValidated=Gevalideerd BillShortStatusStarted=Gestart @@ -151,19 +151,19 @@ ActionsOnBill=Acties op factuur RecurringInvoiceTemplate=Sjabloon / Terugkerende factuur NoQualifiedRecurringInvoiceTemplateFound=Geen geschikte sjablonen gevonden voor terugkerende facturen FoundXQualifiedRecurringInvoiceTemplate=%s geschikte sjablonen gevonden voor terugkerende factu(u)r(en) -NotARecurringInvoiceTemplate=Not a recurring template invoice +NotARecurringInvoiceTemplate=Is geen template voor een herhalingsfactuur NewBill=Nieuwe factuur -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Laatste %s facturen +LastCustomersBills=Laatste %s klant facturen +LastSuppliersBills=Laatste %s leveranciersfacturen AllBills=Alle facturen OtherBills=Andere facturen DraftBills=conceptfacturen -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Klant conceptfacturen +SuppliersDraftInvoices=Leverancier conceptfacturen Unpaid=Onbetaalde ConfirmDeleteBill=Weet u zeker dat u deze factuur wilt verwijderen? -ConfirmValidateBill=Weet u zeker dat u factuur met referentie %s wilt verwijderen? +ConfirmValidateBill=Weet u zeker dat u factuur met referentie %s wilt valideren? ConfirmUnvalidateBill=Weet u zeker dat u de status van factuur %s wilt wijzigen naar klad? ConfirmClassifyPaidBill=Weet u zeker dat u de status van factuur %s wilt wijzigen naar betaald? ConfirmCancelBill=Weet u zeker dat u factuur %s wilt annuleren? @@ -207,7 +207,7 @@ AlreadyPaidNoCreditNotesNoDeposits=Reeds betaald (zonder creditnota's en stortin Abandoned=Verlaten RemainderToPay=Resterend onbetaald RemainderToTake=Resterende bedrag over te nemen -RemainderToPayBack=Remaining amount to refund +RemainderToPayBack=Resterende bedrag terug te storten Rest=Hangende AmountExpected=Gevorderde bedrag ExcessReceived=Overbetaling @@ -282,8 +282,8 @@ NewRelativeDiscount=Nieuwe relatiekorting NoteReason=Notitie / Reden ReasonDiscount=Reden DiscountOfferedBy=Verleend door -DiscountStillRemaining=Discounts available -DiscountAlreadyCounted=Discounts already consumed +DiscountStillRemaining=Beschikbare kortingen +DiscountAlreadyCounted=Reeds gebruikte kortingen BillAddress=Factuuradres HelpEscompte=Deze korting wordt toegekend aan de afnemer omdat de betaling werd gemaakt ruim voor de termijn. HelpAbandonBadCustomer=Dit bedrag is verlaten (afnemer beschouwt als slechte betaler) en wordt beschouwd als een buitengewoon verlies. @@ -321,14 +321,14 @@ MergingPDFTool=Samenvoeging PDF-tool AmountPaymentDistributedOnInvoice=Te betalen bedrag verdeeld over de factuur PaymentOnDifferentThirdBills=Betalingen toestaan van verschillende derden met hetzelfde moeder bedrijf PaymentNote=Betalingsopmerking -ListOfPreviousSituationInvoices=List of previous situation invoices -ListOfNextSituationInvoices=List of next situation invoices +ListOfPreviousSituationInvoices=Lijst van vorige situatie facturen +ListOfNextSituationInvoices=Lijst van volgende situatie facturen FrequencyPer_d=Elke %s dagen FrequencyPer_m=Elke %s maanden FrequencyPer_y=Elke %s jaar toolTipFrequency=Examples:
Set 7, Day: give a new invoice every 7 days
Set 3, Month: give a new invoice every 3 month -NextDateToExecution=Date for next invoice generation -DateLastGeneration=Date of latest generation +NextDateToExecution=Datum voor aanmaak nieuwe factuur +DateLastGeneration=Aanmaakdatum laatste factuur MaxPeriodNumber=Max nb of invoice generation NbOfGenerationDone=Nb of invoice generation already done MaxGenerationReached=Maximum nb of generations reached @@ -340,8 +340,8 @@ WarningInvoiceDateInFuture=Warning, the invoice date is higher than current date WarningInvoiceDateTooFarInFuture=Warning, the invoice date is too far from current date # PaymentConditions Statut=Status -PaymentConditionShortRECEP=Due Upon Receipt -PaymentConditionRECEP=Due Upon Receipt +PaymentConditionShortRECEP=Vervalt bij ontvangst +PaymentConditionRECEP=Vervalt bij ontvangst PaymentConditionShort30D=30 dagen PaymentCondition30D=30 dagen PaymentConditionShort30DENDMONTH=30 dagen na einde van de maand @@ -356,12 +356,12 @@ PaymentConditionShortPT_ORDER=Order PaymentConditionPT_ORDER=Bij bestelling PaymentConditionShortPT_5050=50-50 PaymentConditionPT_5050=50%% voorschot, 50%% bij levering -PaymentConditionShort10D=10 days -PaymentCondition10D=10 days +PaymentConditionShort10D=10 dagen +PaymentCondition10D=10 dagen PaymentConditionShort10DENDMONTH=10 days of month-end PaymentCondition10DENDMONTH=Within 10 days following the end of the month -PaymentConditionShort14D=14 days -PaymentCondition14D=14 days +PaymentConditionShort14D=14 dagen +PaymentCondition14D=14 dagen PaymentConditionShort14DENDMONTH=14 days of month-end PaymentCondition14DENDMONTH=Within 14 days following the end of the month FixAmount=Vast bedrag @@ -433,7 +433,7 @@ ChequeDeposits=Cheques deposito's Cheques=Cheques DepositId=ID storting NbCheque=Aantal cheques -CreditNoteConvertedIntoDiscount=This %s has been converted into %s +CreditNoteConvertedIntoDiscount=Deze %s is geconverteerd naar %s UsBillingContactAsIncoiveRecipientIfExist=Gebruik afnemersfacturatiecontactadres in plaats van derde adres als ontvanger voor de facturen ShowUnpaidAll=Bekijk alle onbetaalde ShowUnpaidLateOnly=Toon alleen onbetaalde te late facturen @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Verwijder onmogelijk wanneer er minstens een ExpectedToPay=Verwachte betaling CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Betaald door deze betaling -ClosePaidInvoicesAutomatically=Classeer standaard, situatie of vervang facturen naar status "Betaald". +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classeer terugbetaalde creditnotas automatisch naar status "Betaald". ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Alle betaalde facturen zullen automatisch worden gesloten naar status "Betaald". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Maak eerst een standaard factuur en conver PDFCrabeDescription=Model van complete factuur (Beheert de mogelijkheid van de BTW-heffingsbelasting, de keuze van de regels display, logo, etc) PDFCrevetteDescription=Factuur PDF-sjabloon 'Crevette'. Een compleet sjabloon voor facturen TerreNumRefModelDesc1=Geeft een getal in de vorm van %syymm-nnnn voor standaard facturen en %syymm-nnnn voor creditnota's, met yy voor jaar, mm voor maand en nnnn als opeenvolgende getallenreeks die niet terug op 0 komt -MarsNumRefModelDesc1=Geeft een getal in de vorm van %syymm-nnnn voor standaard facturen, %syymm-nnnn voor vervangende facturen, %syymm-nnnn voor stortende facturen en %syymm-nnnn voor creditnota's, met yy voor jaar, mm voor maand en nnnn als opeenvolgende getallenreeks die niet terug op 0 komt. +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Een wetsvoorstel te beginnen met $ syymm bestaat al en is niet compatibel met dit model van de reeks. Verwijderen of hernoemen naar deze module te activeren. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Verantwoordelijke toezicht afnemersfactuur TypeContact_facture_external_BILLING=Afnemersfactureringscontact @@ -490,12 +490,12 @@ DisabledBecauseFinal=Deze situatie is definitief. CantBeLessThanMinPercent=De voortgang kan niet kleiner zijn dan de waarde in de voorgaande situatie. NoSituations=Geen open situaties InvoiceSituationLast=Finale en algemene factuur -PDFCrevetteSituationNumber=Situation N°%s -PDFCrevetteSituationInvoiceLineDecompte=Situation invoice - COUNT +PDFCrevetteSituationNumber=Situatie N°%s +PDFCrevetteSituationInvoiceLineDecompte=Situatie factuur - COUNT PDFCrevetteSituationInvoiceTitle=Situatie factuur -PDFCrevetteSituationInvoiceLine=Situation N°%s : Inv. N°%s on %s -TotalSituationInvoice=Total situation -invoiceLineProgressError=Invoice line progress can't be greater than or equal to the next invoice line +PDFCrevetteSituationInvoiceLine=Situatie N°%s : Fact. N°%s op %s +TotalSituationInvoice=Totaal situatie +invoiceLineProgressError=Factuurregel voortgang mag niet groter zijn dan of gelijk zijn aan de volgende facturregel updatePriceNextInvoiceErrorUpdateline=Fout: verander de prijs op regel %s ToCreateARecurringInvoice=To create a recurring invoice for this contract, first create this draft invoice, then convert it into an invoice template and define the frequency for generation of future invoices. ToCreateARecurringInvoiceGene=To generate future invoices regularly and manually, just go on menu %s - %s - %s. diff --git a/htdocs/langs/nl_NL/bookmarks.lang b/htdocs/langs/nl_NL/bookmarks.lang index 14ca05a963a..3e7b7ad1df1 100644 --- a/htdocs/langs/nl_NL/bookmarks.lang +++ b/htdocs/langs/nl_NL/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Voeg deze webpagina toe aan de internetfavorieten +AddThisPageToBookmarks=Huidige pagina als favoriet opslaan Bookmark=Internetfavoriet Bookmarks=Internetfavorieten +ListOfBookmarks=Internetfavourietenlijst +EditBookmarks=Overzicht/bewerk favorieten NewBookmark=Nieuwe weblink ShowBookmark=Toon weblink OpenANewWindow=Open een nieuw venster @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=Nieuw venster BookmarkTargetReplaceWindowShort=Huidig venster BookmarkTitle=Titel van de weblink UrlOrLink=URL -BehaviourOnClick=Gedrag bij het klikken op deze URL +BehaviourOnClick=Gedrag als een favoriete URL is geselecteerd CreateBookmark=Maak weblink SetHereATitleForLink=Stel hier een titel voor de weblink in UseAnExternalHttpLinkOrRelativeDolibarrLink=Gebruik een externe HTTP URL of een relatieve Dolibarr URL -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Kies of een gelinkte pagina in een nieuw venster moet worden geopend of niet BookmarksManagement=Internetfavorietenbeheer diff --git a/htdocs/langs/nl_NL/boxes.lang b/htdocs/langs/nl_NL/boxes.lang index 51662525382..48d13efdb61 100644 --- a/htdocs/langs/nl_NL/boxes.lang +++ b/htdocs/langs/nl_NL/boxes.lang @@ -1,9 +1,10 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login informatie BoxLastRssInfos=RSS informatie -BoxLastProducts=Latest %s products/services +BoxLastProducts=Laatste %s producten/diensten BoxProductsAlertStock=Stock alerts for products BoxLastProductsInContract=Latest %s contracted products/services -BoxLastSupplierBills=Latest supplier invoices +BoxLastSupplierBills=Laatste leveranciersfacturen BoxLastCustomerBills=Latest customer invoices BoxOldestUnpaidCustomerBills=Oldest unpaid customer invoices BoxOldestUnpaidSupplierBills=Oldest unpaid supplier invoices @@ -11,9 +12,9 @@ BoxLastProposals=Latest commercial proposals BoxLastProspects=Latest modified prospects BoxLastCustomers=Latest modified customers BoxLastSuppliers=Latest modified suppliers -BoxLastCustomerOrders=Latest customer orders -BoxLastActions=Latest actions -BoxLastContracts=Latest contracts +BoxLastCustomerOrders=Laatste klantenorders +BoxLastActions=Laatste acties +BoxLastContracts=Laatste contracten BoxLastContacts=Latest contacts/addresses BoxLastMembers=Latest members BoxFicheInter=Latest interventions @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers BoxTitleLastModifiedSuppliers=Latest %s modified suppliers BoxTitleLastModifiedCustomers=Latest %s modified customers BoxTitleLastCustomersOrProspects=Latest %s customers or prospects -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Laatste %s klant facturen +BoxTitleLastSupplierBills=Laatste %s leveranciersfacturen BoxTitleLastModifiedProspects=Latest %s modified prospects BoxTitleLastModifiedMembers=Latest %s members BoxTitleLastFicheInter=Latest %s modified interventions @@ -42,7 +43,7 @@ BoxTitleLastContracts=Latest %s modified contracts BoxTitleLastModifiedDonations=Latest %s modified donations BoxTitleLastModifiedExpenses=Latest %s modified expense reports BoxGlobalActivity=Globale activiteit (facturen, offertes, bestellingen) -BoxGoodCustomers=Good customers +BoxGoodCustomers=Goede klanten BoxTitleGoodCustomers=%s Good customers FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s LastRefreshDate=Latest refresh date @@ -55,7 +56,7 @@ NoRecordedOrders=No recorded customer orders NoRecordedProposals=Geen geregistreerde offertes NoRecordedInvoices=No recorded customer invoices NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices +NoUnpaidSupplierBills=Geen onbetaalde leveranciersfacturen NoModifiedSupplierBills=No recorded supplier invoices NoRecordedProducts=Geen geregistreerde producten / diensten NoRecordedProspects=Geen geregistreerde prospecten @@ -82,3 +83,4 @@ ForCustomersOrders=Klantenbestellingen ForProposals=Zakelijke voorstellen / Offertes LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/nl_NL/cashdesk.lang b/htdocs/langs/nl_NL/cashdesk.lang index ff9ff5b10be..fd290c53b7f 100644 --- a/htdocs/langs/nl_NL/cashdesk.lang +++ b/htdocs/langs/nl_NL/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Verschil TotalTicket=Totale ticketprijs NoVAT=Geen btw voor deze verkoop Change=Teveel ontvangen -BankToPay=Laad Account +BankToPay=Account for payment ShowCompany=Show Company ShowStock=Tonen magazijn DeleteArticle=Klik om dit artikel te verwijderen diff --git a/htdocs/langs/nl_NL/categories.lang b/htdocs/langs/nl_NL/categories.lang index d79f996bda7..392199e53ca 100644 --- a/htdocs/langs/nl_NL/categories.lang +++ b/htdocs/langs/nl_NL/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag / Categorie Rubriques=Tags / Categorieën +RubriquesTransactions=Tags/Categories of transactions categories=tags / categorieën NoCategoryYet=Geen tag / categorie van dit type gemaakt In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Deze categorie bestaat al op hetzelfde niveau ContentsVisibleByAllShort=Inhoud zichtbaar voor iedereen ContentsNotVisibleByAllShort=Inhoud is niet zichtbaar voor iedereen DeleteCategory=Delete tag / categorie -ConfirmDeleteCategory=Weet je zeker dat je deze tag / categorie wilt verwijderen? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=Geen tag / categorie gedefinieerd SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/nl_NL/commercial.lang b/htdocs/langs/nl_NL/commercial.lang index 2c99ab5d25c..96922045052 100644 --- a/htdocs/langs/nl_NL/commercial.lang +++ b/htdocs/langs/nl_NL/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Vergadering met %s ShowTask=Toon taak ShowAction=Toon actie ActionsReport=Actiesverslag -ThirdPartiesOfSaleRepresentative=Derden met verkoopsvertegenwoordiger +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Vertegenwoordiger SalesRepresentatives=Vertegenwoordigers SalesRepresentativeFollowUp=Vertegenwoordiger (opvolging) diff --git a/htdocs/langs/nl_NL/companies.lang b/htdocs/langs/nl_NL/companies.lang index 0c0d8aca2cd..7f06d80ddd7 100644 --- a/htdocs/langs/nl_NL/companies.lang +++ b/htdocs/langs/nl_NL/companies.lang @@ -13,8 +13,8 @@ MenuNewPrivateIndividual=Nieuwe particulier NewCompany=Nieuwe bedrijf (prospect, afnemer, leverancier) NewThirdParty=Nieuwe Klant (prospect, afnemer, leverancier) CreateDolibarrThirdPartySupplier=Creëer een relatie (leverancier) -CreateThirdPartyOnly=Create thirdpary -CreateThirdPartyAndContact=Create a third party + a child contact +CreateThirdPartyOnly=Nieuwe relatie +CreateThirdPartyAndContact=Creëer nieuwe klant + nieuw contact ProspectionArea=Prospectenoverzicht IdThirdParty=ID Klant IdCompany=ID bedrijf @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Klanten ThirdPartyCustomersWithIdProf12=Afnemers met %s of %s ThirdPartySuppliers=Leveranciers ThirdPartyType=Type Klant -Company/Fundation=Bedrijf / stichting Individual=Particulier ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Moedermaatschappij @@ -78,10 +77,10 @@ VATIsNotUsed=BTW wordt niet gebruikt CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Zakelijke voorstellen / Offertes +OverAllOrders=Orders +OverAllInvoices=Facturen +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Gebruik tweede belasting LocalTax1IsUsedES= RE wordt gebruikt @@ -237,6 +236,12 @@ ProfId3TN=Prof. Id 3 (Douane code) ProfId4TN=Prof. id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Kortingspercentage CustomerAbsoluteDiscountShort=Kortingsbedrag CompanyHasRelativeDiscount=Voor deze afnemer geldt een kortingspercentage van %s%% CompanyHasNoRelativeDiscount=Voor deze afnemer geldt geen kortingspercentage -CompanyHasAbsoluteDiscount=Deze afnemer heeft nog een kortingstegoed van %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Deze afnemer heeft nog creditnota's of eerder stortingen voor %s %s CompanyHasNoAbsoluteDiscount=Voor deze afnemer is geen kortingsbedrag ingesteld CustomerAbsoluteDiscountAllUsers=Openstaande kortingsbedrag (toegekend aan alle gebruikers) @@ -324,7 +329,7 @@ VATIntraCheckableOnEUSite=Controleer de Intracommunautaire BTW op de website van VATIntraManualCheck=U kunt ook handmatig controleren via de Europese website %s ErrorVATCheckMS_UNAVAILABLE=Controle niet mogelijk. Controleerdienst wordt niet verleend door lidstaat (%s). NorProspectNorCustomer=Noch prospect, noch afnemer -JuridicalStatus=Legal form +JuridicalStatus=Juridische status Staff=Personeel ProspectLevelShort=Potentieel ProspectLevel=Prospectpotentieel @@ -390,7 +395,7 @@ ListCustomersShort=Afnemersoverzicht ThirdPartiesArea=Relaties en contactpersonen LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Totaal aantal unieke derde partijen -InActivity=Geopend +InActivity=Open ActivityCeased=Gesloten ThirdPartyIsClosed=Third party is closed ProductsIntoElements=Lijst producten/diensten in %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Afnemers- / leverancierscode is vrij. Deze code kan te al ManagingDirectors=Manager(s) Naam (CEO, directeur, voorzitter ...) MergeOriginThirdparty=Dupliceren third party (third party die u wilt verwijderen) MergeThirdparties=Samenvoegen third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Third parties zijn samengevoegd SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/nl_NL/contracts.lang b/htdocs/langs/nl_NL/contracts.lang index 03c004e03a5..523a11a77e9 100644 --- a/htdocs/langs/nl_NL/contracts.lang +++ b/htdocs/langs/nl_NL/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Deze lijst bevat alleen de diensten van contracten StandardContractsTemplate=Standaard contracten sjabloon ContactNameAndSignature=Voor %s, naam en handtekening: OnlyLinesWithTypeServiceAreUsed=Alleen lijnen met type "Service" zullen worden gekloond. +CloneContract=Dupliceer contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Vertegenwoordiger ondertekening contract diff --git a/htdocs/langs/nl_NL/exports.lang b/htdocs/langs/nl_NL/exports.lang index 6456f42dacc..0af7113c6a6 100644 --- a/htdocs/langs/nl_NL/exports.lang +++ b/htdocs/langs/nl_NL/exports.lang @@ -110,13 +110,24 @@ Enclosure=Insluitingsteken SpecialCode=Speciale code ExportStringFilter=%% laat het vervangen toe van één of meer tekens in de tekst ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtert met één jaar/maand/dag
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD: filtert over een reeks van jaren/maanden/dagen
> YYYY,> YYYYMM, > YYYYMMDD: filtert op alle volgende jaren/maanden/dagen
< YYYY, 'NNNNN+NNNNN' filtert over een bereik van waarden
'>NNNNN' filtert door lagere waarden
'>NNNNN' filtert door hogere waarden +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Vul hier de waarden in waarop je wil filteren. FilteredFields=Gefilterde velden FilteredFieldsValues=Waarde voor filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/nl_NL/help.lang b/htdocs/langs/nl_NL/help.lang index 31fa0062dd0..fa6c66d5a8e 100644 --- a/htdocs/langs/nl_NL/help.lang +++ b/htdocs/langs/nl_NL/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Ondersteuningsbron TypeSupportCommunauty=Gemeenschap (gratis) TypeSupportCommercial=Commercieel (betaald) TypeOfHelp=Soort -NeedHelpCenter=Need help or support? +NeedHelpCenter=Hulp of support nodig? Efficiency=Efficiëntie TypeHelpOnly=Alleen Hulp TypeHelpDev=Hulp & Ontwikkeling diff --git a/htdocs/langs/nl_NL/holiday.lang b/htdocs/langs/nl_NL/holiday.lang index bba9af03b44..dd9942207fc 100644 --- a/htdocs/langs/nl_NL/holiday.lang +++ b/htdocs/langs/nl_NL/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Geannuleerd RefuseCP=Geweigerd ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Beschrijving SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/nl_NL/hrm.lang b/htdocs/langs/nl_NL/hrm.lang index fe794a85263..5c831ef537a 100644 --- a/htdocs/langs/nl_NL/hrm.lang +++ b/htdocs/langs/nl_NL/hrm.lang @@ -9,9 +9,9 @@ ConfirmDeleteEstablishment=Are-you sure to delete this establishment? OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary -DictionaryDepartment=HRM - Department list +DictionaryDepartment=HRM - Afdelingslijst DictionaryFunction=HRM - Function list # Module -Employees=Employees +Employees=Werknemers Employee=Werknemer -NewEmployee=New employee +NewEmployee=Nieuwe werknemer diff --git a/htdocs/langs/nl_NL/install.lang b/htdocs/langs/nl_NL/install.lang index 8e79ac6ac6e..8bc5d4c5533 100644 --- a/htdocs/langs/nl_NL/install.lang +++ b/htdocs/langs/nl_NL/install.lang @@ -11,7 +11,7 @@ PHPSupportSessions=Deze PHP installatie ondersteund sessies. PHPSupportPOSTGETOk=Deze PHP installatie ondersteund POST en GET. PHPSupportPOSTGETKo=Mogelijk ondersteund uw PHP installatie geen POST en / of GET variabelen. Controleer deze instelling variables_order in php.ini. PHPSupportGD=Deze PHP installatie ondersteund GD grafische functies. -PHPSupportCurl=This PHP support Curl. +PHPSupportCurl=PHP ondersteunt Curl. PHPSupportUTF8=Deze PHP installatie ondersteund UTF8 functies. PHPMemoryOK=Het maximale sessiegeheugen van deze PHP installatie is ingesteld op %s. Dit zou genoeg moeten zijn. PHPMemoryTooLow=Het maximale sessiegeheugen van deze PHP installatie is ingesteld op %s bytes. Dit zou te weinig kunnen zijn. Verander uw php.ini om de memory_limit instelling op minimaal %s bytes te zetten. @@ -77,7 +77,7 @@ SetupEnd=Einde van de installatie SystemIsInstalled=De installatie is voltooid SystemIsUpgraded=Dolibarr is succesvol bijgewerkt. YouNeedToPersonalizeSetup=U dient Dolibarr naar eigen behoefte in te richten (uiterlijk, functionaliteit, etc). Volgt u om dit te doen de onderstaande link: -AdminLoginCreatedSuccessfuly=Dolibarr administrator login '%s' created successfully. +AdminLoginCreatedSuccessfuly=Dolibarr beheerdersaccount '%s' succesvol gecreëerd. GoToDolibarr=Ga naar Dolibarr GoToSetupArea=Ga naar Dolibarr (instellingsomgeving) MigrationNotFinished=De versie van uw database is niet helemaal actueel, daarom moet u de upgrade opnieuw uitvoeren. @@ -87,7 +87,7 @@ DirectoryRecommendation=Aanbevolen wordt een map te gebruiken buiten uw webpagin LoginAlreadyExists=Bestaat al DolibarrAdminLogin=Login van de Dolibarr beheerder AdminLoginAlreadyExists=Het beheerdersaccount '%s' bestaat al. -FailedToCreateAdminLogin=Failed to create Dolibarr administrator account. +FailedToCreateAdminLogin=Aanmaken Dolibarr administrator account niet geslaagd. WarningRemoveInstallDir=Waarschuwing, om veiligheidsredenen, dient u de install map na de installatie of upgrade te verwijderen of maak een bestand genaamd install.lock aan in de Dolibarr root map. FunctionNotAvailableInThisPHP=Niet beschikbaar in deze PHP installatie ChoosedMigrateScript=Kies het migratiescript @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=U gebruikt de Dolibarr installatiewizard van DoliWamp, dus KeepDefaultValuesDeb=U gebruikt de Dolibarr installatiewizard uit een Ubuntu of Debian pakket, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Alleen het wachtwoord van de te creëren database-eigenaar moeten worden ingevuld. Wijzig de andere waarden alleen als u weet wat u doet. KeepDefaultValuesMamp=U gebruikt de Dolibarr installatiewizard van DoliMamp, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Wijzig ze alleen wanneer u weet wat u doet. KeepDefaultValuesProxmox=U gebruikt de Dolibarr installatiewizard van een Proxmox virtueel systeem, dus de hier voorgestelde waarden zijn al geoptimaliseerd. Wijzig ze alleen wanneer u weet wat u doet. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade @@ -147,7 +148,7 @@ MigrationSupplierOrder=Gegevensmigratie van orders van leveranciers MigrationProposal=Gegevensmigratie van zakelijke voorstellen MigrationInvoice=Gegevensmigratie van afnemersfacturen MigrationContract=Gegevensmigratie van contracten -MigrationSuccessfullUpdate=Upgrade successfull +MigrationSuccessfullUpdate=Dolibarr is succesvol bijgewerkt. MigrationUpdateFailed=Upgrade mislukt MigrationRelationshipTables=Gegevensmigratie van de relatietabellen (%s) MigrationPaymentsUpdate=Correctie betalingsgegevens @@ -169,13 +170,13 @@ MigrationContractsInvalidDateFix=Correcte contract %s (Contract datum=%s, Start MigrationContractsInvalidDatesNumber=%s contracten bijgewerkt MigrationContractsInvalidDatesNothingToUpdate=Geen datum met ongeldige waarde om te corrigeren MigrationContractsIncoherentCreationDateUpdate=Ongeldige waarde contractcreatiedatum correctie -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully +MigrationContractsIncoherentCreationDateUpdateSuccess=Ongeldige contractcreatie datumcorrectie succesvol uitgevoerd MigrationContractsIncoherentCreationDateNothingToUpdate=Geen ongeldige waarde voor contractcreatiedatum om te corrigeren MigrationReopeningContracts=Open contracten gesloten door een fout MigrationReopenThisContract=Contract %s heropenen MigrationReopenedContractsNumber=%s contracten bijgewerkt MigrationReopeningContractsNothingToUpdate=Geen gesloten contracten om te openen -MigrationBankTransfertsUpdate=Update links between bank entry and a bank transfer +MigrationBankTransfertsUpdate=Werk de links tussen banktransacties en bankovermakingen bij MigrationBankTransfertsNothingToUpdate=Alle links zijn actueel MigrationShipmentOrderMatching=Verzendingsbon bijwerking MigrationDeliveryOrderMatching=Ontvangstbon bijwerking diff --git a/htdocs/langs/nl_NL/interventions.lang b/htdocs/langs/nl_NL/interventions.lang index 5bacb8f019b..4b9c6cd1d1b 100644 --- a/htdocs/langs/nl_NL/interventions.lang +++ b/htdocs/langs/nl_NL/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Interventie %s verwijderd InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Nabehandeling afnemerscontact # Modele numérotation diff --git a/htdocs/langs/nl_NL/languages.lang b/htdocs/langs/nl_NL/languages.lang index 8316ae6a287..4fec029e567 100644 --- a/htdocs/langs/nl_NL/languages.lang +++ b/htdocs/langs/nl_NL/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Duits Language_de_AT=Duits (Oostenrijk) Language_de_CH=Duits (Zwitserland) Language_el_GR=Grieks +Language_el_CY=Greek (Cyprus) Language_en_AU=Engels (Australië) Language_en_CA=Engels (Canada) Language_en_GB=Engels (Groot Brittannië) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spaans (Chili) Language_es_CO=Spanish (Colombia) Language_es_DO=Spaans (Dominicaanse Republiek) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spaans (Honduras) Language_es_MX=Spaans (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spaans (Paraguay) Language_es_PE=Spaans (Peru) Language_es_PR=Spaans (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=IJslands Language_it_IT=Italiaans Language_ja_JP=Japans Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Koreaans Language_lo_LA=Laotiaans Language_lt_LT=Litouws Language_lv_LV=Lets Language_mk_MK=Macedonisch +Language_mn_MN=Mongolian Language_nb_NO=Noors (Bokmål) Language_nl_BE=Nederlands (België) Language_nl_NL=Nederlands (Nederland) diff --git a/htdocs/langs/nl_NL/ldap.lang b/htdocs/langs/nl_NL/ldap.lang index 3cacd8d5f7b..89a418e55c0 100644 --- a/htdocs/langs/nl_NL/ldap.lang +++ b/htdocs/langs/nl_NL/ldap.lang @@ -13,10 +13,10 @@ LDAPUsers=Gebruikers in LDAP database LDAPFieldStatus=Status LDAPFieldFirstSubscriptionDate=Eerste inschrijvingsdatum LDAPFieldFirstSubscriptionAmount=Eerste inschrijvingsbedrag -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount -LDAPFieldSkype=Skype id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldLastSubscriptionDate=Laatste abonnementsdatum +LDAPFieldLastSubscriptionAmount=Laatste aantal abonnementen +LDAPFieldSkype=Skype account +LDAPFieldSkypeExample=Bijvoorbeeld: Skypenaam UserSynchronized=Gebruiker gesynchroniseerd GroupSynchronized=Groep gesynchroniseerd MemberSynchronized=Lidmaatschap gesynchroniseerd diff --git a/htdocs/langs/nl_NL/loan.lang b/htdocs/langs/nl_NL/loan.lang index b8f18d15415..76171af425b 100644 --- a/htdocs/langs/nl_NL/loan.lang +++ b/htdocs/langs/nl_NL/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/nl_NL/mails.lang b/htdocs/langs/nl_NL/mails.lang index 4e2ef1a8822..2dfa14b8a27 100644 --- a/htdocs/langs/nl_NL/mails.lang +++ b/htdocs/langs/nl_NL/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Gedeeltelijk verzonden MailingStatusSentCompletely=Volledig verzonden MailingStatusError=Fout MailingStatusNotSent=Niet verzonden -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Emailing succesvol gevalideerd MailUnsubcribe=Uitschrijven MailingStatusNotContact=Niet meer contacten @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Regel %s in bestand @@ -116,8 +120,8 @@ Notifications=Kennisgevingen NoNotificationsWillBeSent=Er staan geen e-mailkennisgevingen gepland voor dit evenement en bedrijf ANotificationsWillBeSent=1 kennisgeving zal per e-mail worden verzonden SomeNotificationsWillBeSent=%s kennisgevingen zullen per e-mail worden verzonden -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Toon een lijst van alle verzonden kennisgevingen MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/nl_NL/main.lang b/htdocs/langs/nl_NL/main.lang index f8ecd5293a9..d305994114c 100644 --- a/htdocs/langs/nl_NL/main.lang +++ b/htdocs/langs/nl_NL/main.lang @@ -28,8 +28,8 @@ NoTemplateDefined=No template defined for this email type AvailableVariables=Available substitution variables NoTranslation=Geen vertaling NoRecordFound=Geen item gevonden -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NoRecordDeleted=Geen record verwijderd +NotEnoughDataYet=Niet genoeg data NoError=Geen fout Error=Fout Errors=Fouten @@ -72,8 +72,10 @@ SeeHere=Zie hier Apply=Toepassen BackgroundColorByDefault=Standaard achtergrondkleur FileRenamed=The file was successfully renamed +FileGenerated=Het bestand is succesvol aangemaakt +FileSaved=The file was successfully saved FileUploaded=Het bestand is geüpload -FileGenerated=The file was successfully generated +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Een bestand is geselecteerd als bijlage, maar is nog niet geüploadet. Klik hiervoor op "Bevestig dit bestand". NbOfEntries=Aantal invoeringen GoToWikiHelpPage=Lees de online hulptekst (internettoegang vereist) @@ -88,7 +90,7 @@ Undefined=Ongedefineerd PasswordForgotten=Wachtwoord vergeten? SeeAbove=Zie hierboven HomeArea=Home -LastConnexion=Latest connection +LastConnexion=Laatste connectie PreviousConnexion=Laatste keer ingelogd PreviousValue=Previous value ConnectedOnMultiCompany=Aangesloten bij Meervoudig bedrijf @@ -130,7 +132,7 @@ Activate=Activeren Activated=Geactiveerd Closed=Gesloten Closed2=Gesloten -NotClosed=Not closed +NotClosed=Niet gesloten Enabled=Ingeschakeld Deprecated=Deprecated Disable=Uitschakelen @@ -146,7 +148,7 @@ Confirm=Bevestig ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? Delete=Wissen Remove=Verwijderen -Resiliate=Terminate +Resiliate=Afbreken Cancel=Annuleren Modify=Wijzigen Edit=Bewerken @@ -165,7 +167,7 @@ Go=Ga Run=Run CopyOf=Kopie van Show=Tonen -Hide=Hide +Hide=Verberg ShowCardHere=Kaart tonen Search=Zoeken SearchOf=Zoeken @@ -232,7 +234,7 @@ Now=Nu HourStart=Start uur Date=Datum DateAndHour=Datum en uur -DateToday=Today's date +DateToday=Huidige datum DateReference=Reference date DateStart=Begindatum DateEnd=Einddatum @@ -257,8 +259,8 @@ DateApprove=Goedkeurings datum DateApprove2=Goedkeurings datum (tweede goedkeuring) UserCreation=Creation user UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user +UserCreationShort=Gebruiker aanmaken +UserModificationShort=Gebruiker wijzigen DurationYear=jaar DurationMonth=maand DurationWeek=week @@ -317,7 +319,7 @@ UnitPriceHT=Eenheidsprijs (netto) UnitPriceTTC=Eenheidsprijs (bruto) PriceU=E.P. PriceUHT=EP (netto) -PriceUHTCurrency=U.P (currency) +PriceUHTCurrency=Valuta PriceUTTC=U.P. (inc. belasting) Amount=Hoeveelheid AmountInvoice=Factuurbedrag @@ -348,7 +350,7 @@ TotalHTShortCurrency=Total (net in currency) TotalTTCShort=Totaal incl. BTW TotalHT=Totaal excl. BTW TotalHTforthispage=Totaal (na belastingen) voor deze pagina -Totalforthispage=Total for this page +Totalforthispage=Totaal voor deze pagina TotalTTC=Totaal (incl. BTW) TotalTTCToYourCredit=Totaal (incl. BTW) op uw krediet TotalVAT=Totaal BTW @@ -358,6 +360,7 @@ TotalLT1ES=Totaal RE TotalLT2ES=Totaal IRPF HT=Exclusief BTW TTC=Inclusief BTW +INCT=Inc. all taxes VAT=BTW VATs=BTW LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=dec AttachedFiles=Bijgevoegde bestanden en documenten -FileTransferComplete=Het bestand is succesvol geupload DateFormatYYYYMM=JJJJ-MM DateFormatYYYYMMDD=JJJJ-MM-DD DateFormatYYYYMMDDHHMM=JJJJ-MM-DD HH: SS @@ -527,7 +529,7 @@ ReportPeriod=Periode-analyse ReportDescription=Omschrijving Report=Verslag Keyword=Keyword -Origin=Origin +Origin=Origineel Legend=Legende Fill=Invullen Reset=Reset @@ -592,8 +594,8 @@ GoBack=Ga terug CanBeModifiedIfOk=Kan worden gewijzigd indien geldig CanBeModifiedIfKo=Kan worden gewijzigd indien ongeldig ValueIsValid=Prijs is geldig -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully +ValueIsNotValid=Waarde is niet geldig +RecordCreatedSuccessfully=Record succesvol aangemaakt RecordModifiedSuccessfully=Tabelregel succesvol gewijzigd RecordsModified=%s record modified RecordsDeleted=%s record deleted @@ -630,12 +632,12 @@ CurrentTheme=Actuele thema CurrentMenuManager=Huidige menu manager Browser=Browser Layout=Layout -Screen=Screen +Screen=Scherm DisabledModules=Uitgeschakelde modules For=Voor ForCustomer=Voor de afnemer Signature=Handtekening -DateOfSignature=Date of signature +DateOfSignature=Datum van ondertekening HidePassword=Toon opdracht met verborgen wachtwoord UnHidePassword=Toon opdracht met zichtbaar wachtwoord Root=Root @@ -649,7 +651,7 @@ FreeLineOfType=Vrije ingave van type CloneMainAttributes=Kloon het object met de belangrijkste kenmerken PDFMerge=Voeg PDF samen Merge=Samenvoegen -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Standaard PDF sjabloon PrintContentArea=Toon printervriendelijke pagina MenuManager=Standaard menuverwerker WarningYouAreInMaintenanceMode=Let op, u bevind zich in de onderhoudmodus, dus alleen de login %s is gemachtigd om de applicatie op dit moment te gebruiken. @@ -680,14 +682,14 @@ NewAttribute=Nieuwe attribuut AttributeCode=Attribuut code URLPhoto=Url van foto / logo SetLinkToAnotherThirdParty=Link naar een andere derde -LinkTo=Link to -LinkToProposal=Link to proposal +LinkTo=Link naar +LinkToProposal=Link naar offerte LinkToOrder=gekoppeld aan bestelling -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract +LinkToInvoice=Link naar factuur +LinkToSupplierOrder=Link naar order leverancier +LinkToSupplierProposal=Link naar offerte leverancier +LinkToSupplierInvoice=Link naar factuur leverancier +LinkToContract=Link naar contract LinkToIntervention=Link to intervention CreateDraft=Maak een ontwerp SetToDraft=Terug naar ontwerp @@ -710,7 +712,7 @@ Test=Test Element=Element NoPhotoYet=Nog geen fotos beschikbaar Dashboard=Dashboard -MyDashboard=My dashboard +MyDashboard=Mijn dashboard Deductible=Aftrekbaar from=van toward=richting @@ -745,7 +747,7 @@ DeleteLine=Verwijderen regel ConfirmDeleteLine=Are you sure you want to delete this line? NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. -NoRecordSelected=No record selected +NoRecordSelected=Geen record geselecteerd MassFilesArea=Area for files built by mass actions ShowTempMassFilesArea=Show area of files built by mass actions RelatedObjects=Related Objects @@ -754,14 +756,14 @@ Progress=Voortgang ClickHere=Klik hier FrontOffice=Front office BackOffice=Back office -View=View +View=Bekijk Export=Export Exports=Export ExportFilteredList=Export filtered list -ExportList=Export list +ExportList=Exporteer lijst Miscellaneous=Diversen Calendar=Kalender -GroupBy=Group by... +GroupBy=Sorteer op ViewFlatList=View flat list RemoveString=Remove string '%s' SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. @@ -775,7 +777,7 @@ BulkActions=Bulk actions ClickToShowHelp=Click to show tooltip help HR=HR HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated +AutomaticallyCalculated=Automatisch berekend TitleSetToDraft=Go back to draft ConfirmSetToDraft=Are you sure you want to go back to Draft status ? # Week day diff --git a/htdocs/langs/nl_NL/margins.lang b/htdocs/langs/nl_NL/margins.lang index cc9d0ce9432..c35d4847fc4 100644 --- a/htdocs/langs/nl_NL/margins.lang +++ b/htdocs/langs/nl_NL/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Tarief moet een numerieke waarde zijn markRateShouldBeLesserThan100=Markeer tarief moet lager zijn dan 100 zijn ShowMarginInfos=Toon marge info CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/nl_NL/members.lang b/htdocs/langs/nl_NL/members.lang index 1f8bd107720..ff473a02e98 100644 --- a/htdocs/langs/nl_NL/members.lang +++ b/htdocs/langs/nl_NL/members.lang @@ -42,7 +42,7 @@ MemberTypeId=Lidtype id MemberTypeLabel=Lidtype label MembersTypes=Ledentypes MemberStatusDraft=Concept (moet worden gevalideerd) -MemberStatusDraftShort=Concept +MemberStatusDraftShort=Ontwerp MemberStatusActive=Gevalideerd (wachtend op abonnement) MemberStatusActiveShort=Gevalideerd MemberStatusActiveLate=Subscription expired @@ -90,6 +90,7 @@ PublicMemberList=Publieke ledenlijst BlankSubscriptionForm=Inschrijvingsformulier BlankSubscriptionFormDesc=Dolibarr kan u een openbare URL, zodat externe bezoekers te vragen in te schrijven op de stichting. Als een online betaling module is ingeschakeld, wordt een betalingsformulier ook automatisch worden verstrekt. EnablePublicSubscriptionForm=Schakel de openbare auto-inschrijfformulier +ForceMemberType=Force the member type ExportDataset_member_1=Leden en abonnementen ImportDataset_member_1=Leden LastMembersModified=Latest %s modified members @@ -136,8 +137,8 @@ DocForAllMembersCards=Genereer visitekaartjes voor alle leden (Formaat voor de u DocForOneMemberCards=Genereer visitekaartjes voor een bepaald lid (Format voor de uitvoer zoals ingesteld: %s) DocForLabels=Genereer adresvellen (formaat voor de uitvoer zoals ingesteld: %s) SubscriptionPayment=Betaling van abonnement -LastSubscriptionDate=Latest subscription date -LastSubscriptionAmount=Latest subscription amount +LastSubscriptionDate=Laatste abonnementsdatum +LastSubscriptionAmount=Laatste abonnementsaantal MembersStatisticsByCountries=Leden statistieken per land MembersStatisticsByState=Leden statistieken per staat / provincie MembersStatisticsByTown=Leden van de statistieken per gemeente @@ -150,6 +151,7 @@ MembersByTownDesc=Dit scherm tonen statistieken over de leden per gemeente. MembersStatisticsDesc=Kies de statistieken die u wilt lezen ... MenuMembersStats=Statistiek LastMemberDate=Latest member date +LatestSubscriptionDate=Laatste abonnementsdatum Nature=Natuur Public=Informatie zijn openbaar (no = prive) NewMemberbyWeb=Nieuw lid toegevoegd. In afwachting van goedkeuring diff --git a/htdocs/langs/nl_NL/modulebuilder.lang b/htdocs/langs/nl_NL/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/nl_NL/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/nl_NL/oauth.lang b/htdocs/langs/nl_NL/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/nl_NL/oauth.lang +++ b/htdocs/langs/nl_NL/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/nl_NL/other.lang b/htdocs/langs/nl_NL/other.lang index 399d30b445d..41a57243a4b 100644 --- a/htdocs/langs/nl_NL/other.lang +++ b/htdocs/langs/nl_NL/other.lang @@ -5,7 +5,7 @@ Tools=Gereedschap TMenuTools=Gereedschap ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.

All the tools can be reached in the left menu. Birthday=Verjaardag -BirthdayDate=Birthday date +BirthdayDate=Geboorte datum DateToBirth=Geboortedatum BirthdayAlertOn=Verjaardagskennisgeving actief BirthdayAlertOff=Verjaardagskennisgeving inactief @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pond +WeightUnitounce=ons Length=Lengte LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/nl_NL/paybox.lang b/htdocs/langs/nl_NL/paybox.lang index e061fad2b33..5c21684217b 100644 --- a/htdocs/langs/nl_NL/paybox.lang +++ b/htdocs/langs/nl_NL/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail om betalingsbevestiging te ontvangen Creditor=Crediteur PaymentCode=Betalingscode PayBoxDoPayment=Ga naar betaling +ToPay=Doe een betaling YouWillBeRedirectedOnPayBox=U wordt doorverwezen naar een beveiligde Paybox pagina om uw credit card informatie in te voeren Continue=Volgende ToOfferALinkForOnlinePayment=URL voor %s betaling diff --git a/htdocs/langs/nl_NL/paypal.lang b/htdocs/langs/nl_NL/paypal.lang index 164b4f8c47d..87fcf75519f 100644 --- a/htdocs/langs/nl_NL/paypal.lang +++ b/htdocs/langs/nl_NL/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Dit is id van de transactie: %s PAYPAL_ADD_PAYMENT_URL=Voeg de url van Paypal betaling wanneer u een document verzendt via e-mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=U bevindt zich momenteel in de "sandbox"-modus -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/nl_NL/printing.lang b/htdocs/langs/nl_NL/printing.lang index d6cf49bd525..6d971c72329 100644 --- a/htdocs/langs/nl_NL/printing.lang +++ b/htdocs/langs/nl_NL/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=Achternaam GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -28,9 +28,9 @@ GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server -PRINTIPP_PORT=Port +PRINTIPP_PORT=Poort PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_PASSWORD=Wachtwoord NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,12 +40,12 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Kleur IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/nl_NL/products.lang b/htdocs/langs/nl_NL/products.lang index e630eca5031..e6df5e21308 100644 --- a/htdocs/langs/nl_NL/products.lang +++ b/htdocs/langs/nl_NL/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product of Dienst ProductsAndServices=Producten en Diensten ProductsOrServices=Producten of diensten -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Producten voor verkoop en aankoop -ServicesOnSell=Diensten voor verkoop of aankoop -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Diensten voor verkoop en aankoop LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Seconde +unitH=Uur +unitD=Dag +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Productcode sjabloon ServiceCodeModel=Diensten ref template CurrentProductPrice=Huidige prijs @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produceer ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum leverancier prijs MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamische prijs configuratie -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Globale variabelen VariableToUpdate=Variable to update GlobalVariableUpdaters=Globale variabele aanpassers +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Ontleedt JSON gegevens van opgegeven URL, VALUE bepaalt de locatie van de relevante waarde, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService gegevens +GlobalVariableUpdaterHelp1=Ontleedt WebService gegevens van opgegeven URL, NS geeft de namespace, VALUE bepaalt de locatie van de relevante waarde, DATA moeten de te sturen gegevens bevatten en de METHOD is de te roepen WS methode +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update-interval (minuten) LastUpdated=Latest update CorrectlyUpdated=Correct bijgewerkt @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/nl_NL/propal.lang b/htdocs/langs/nl_NL/propal.lang index e32cd4cf50b..50bdf38cfbc 100644 --- a/htdocs/langs/nl_NL/propal.lang +++ b/htdocs/langs/nl_NL/propal.lang @@ -3,7 +3,7 @@ Proposals=Offertes Proposal=Offerte ProposalShort=Offerte ProposalsDraft=Conceptofferte -ProposalsOpened=Geopende offertes +ProposalsOpened=Geen open commerciële voorstellen Prop=Offertes CommercialProposal=Offerte ProposalCard=Offertedetailkaart @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Bedrag per maand (exclusief belastingen) NbOfProposals=Aantal offertes ShowPropal=Toon offerte PropalsDraft=Concepten -PropalsOpened=Geopend +PropalsOpened=Open PropalStatusDraft=Concept (moet worden gevalideerd) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Ondertekend (te factureren) diff --git a/htdocs/langs/nl_NL/resource.lang b/htdocs/langs/nl_NL/resource.lang index e335742eb47..cc32f42c846 100644 --- a/htdocs/langs/nl_NL/resource.lang +++ b/htdocs/langs/nl_NL/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource met succes verwijderd DictionaryResourceType=Type resources SelectResource=Kies resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/nl_NL/salaries.lang b/htdocs/langs/nl_NL/salaries.lang index b49166f5c35..c5d0831b07c 100644 --- a/htdocs/langs/nl_NL/salaries.lang +++ b/htdocs/langs/nl_NL/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Boekhoudkundige code voor salarissen betalingen -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=boekhoudkundige code voor financiële last +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salaris Salaries=Salarissen NewSalaryPayment=Nieuwe salarisbetaling diff --git a/htdocs/langs/nl_NL/sendings.lang b/htdocs/langs/nl_NL/sendings.lang index 423dbfc60f5..c6680df2d21 100644 --- a/htdocs/langs/nl_NL/sendings.lang +++ b/htdocs/langs/nl_NL/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Verzendings blad ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Eenvoudig documentmodel DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Waarschuwing, geen producten die op verzending wachten. StatsOnShipmentsOnlyValidated=Statistiek op verzendingen die bevestigd zijn. Datum is de datum van bevestiging van de verzending (geplande leverdatum is niet altijd bekend). @@ -51,10 +50,10 @@ ActionsOnShipping=Acions op verzendkosten LinkToTrackYourPackage=Link naar uw pakket ShipmentCreationIsDoneFromOrder=Op dit moment, is oprichting van een nieuwe zending gedaan van de volgorde kaart. ShipmentLine=Verzendingslijn -ProductQtyInCustomersOrdersRunning=Hoeveelheid producte in geopende klant bestellingen -ProductQtyInSuppliersOrdersRunning=Hoeveelheid producten in geopende leveranciers bestellingen -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Hoeveelheid producte uit geopende leverancier bestelling reeds ontvangen +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/nl_NL/stocks.lang b/htdocs/langs/nl_NL/stocks.lang index 1546dc8a067..6f069d9bb8a 100644 --- a/htdocs/langs/nl_NL/stocks.lang +++ b/htdocs/langs/nl_NL/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Bewegingslabel NumberOfUnit=Aantal eenheden UnitPurchaseValue=Eenheidsprijs StockTooLow=Voorraad te laag -StockLowerThanLimit=Voorraad onder waarschuwingsgrens +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Waardering PMPValue=Waardering (PMP) PMPValueShort=Waarde @@ -53,7 +53,7 @@ IndependantSubProductStock=Product voorraad en subproduct voorraad zijn onafhank QtyDispatched=Hoeveelheid verzonden QtyDispatchedShort=Aantal verzonden QtyToDispatchShort=Aantal te verzenden -OrderDispatch=Voorraadverzending +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Verlaag de echte voorraad na het valideren van afnemersfacturen / creditnota's @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Verhoog de echte voorraad na het valideren van leveranciersfacturen / creditnota's ReStockOnValidateOrder=Verhoog de echte voorraad na het valideren van leveranciersopdrachten -ReStockOnDispatchOrder=Verhoog de echte voorraad na het handmatig verzenden naar magazijnen, nadat de leveranciersopdracht ontvangst +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Opdracht heeft nog geen, of niet langer, een status die het verzenden van producten naar een magazijn toestaat. -StockDiffPhysicTeoric=Reden voor het verschil tussen de feitelijke en theoretische voorraad +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Geen vooraf ingestelde producten voor dit object. Daarom is verzending in voorraad niet vereist. DispatchVerb=Verzending StockLimitShort=Alarm limiet StockLimit=Alarm voorraadlimiet PhysicalStock=Fysieke voorraad RealStock=Werkelijke voorraad +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuele voorraad +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Magazijn-ID DescWareHouse=Beschrijving magazijn LieuWareHouse=Localisatie magazijn @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Aantal op voorraad van product %s voor de gekozen period NbOfProductAfterPeriod=Aantal op voorraad van product %s na de gekozen periode (<%s) MassMovement=Volledige verplaatsing SelectProductInAndOutWareHouse=Kies een product, een aantal, een van-magazijn, een naar-magazijn, en klik "%s". Als alle nodige bewegingen zijn aangeduid, klik op "%s". -RecordMovement=Kaart overbrengen +RecordMovement=Record transfer ReceivingForSameOrder=Ontvangsten voor deze bestelling StockMovementRecorded=Geregistreerde voorraadbewegingen RuleForStockAvailability=Regels op voorraad vereisten @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Bewerken +inventoryValidate=Gevalideerd +inventoryDraft=Lopende +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Categorie filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Toevoegen +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Verwijderen regel +RegulateStock=Regulate Stock +ListInventory=Lijstoverzicht diff --git a/htdocs/langs/nl_NL/stripe.lang b/htdocs/langs/nl_NL/stripe.lang new file mode 100644 index 00000000000..c9db2b6d970 --- /dev/null +++ b/htdocs/langs/nl_NL/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=De volgende URL's zijn beschikbaar om een pagina te bieden aan afnemers voor het doen van een betaling van Dolibarr objecten +PaymentForm=Betalingsformulier +WelcomeOnPaymentPage=Welkom bij onze online betalingsdienst +ThisScreenAllowsYouToPay=Dit scherm staat u toe om een online betaling te doen aan %s +ThisIsInformationOnPayment=Informatie over de nog uit te voeren betalingen +ToComplete=Nog te doen +YourEMail=E-mail om betalingsbevestiging te ontvangen +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Crediteur +PaymentCode=Betalingscode +StripeDoPayment=Ga naar betaling +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Volgende +ToOfferALinkForOnlinePayment=URL voor %s betaling +ToOfferALinkForOnlinePaymentOnOrder=URL om een %s online betalingsgebruikersinterface aan te bieden voor een order +ToOfferALinkForOnlinePaymentOnInvoice=URL om een %s online betalingsgebruikersinterface aan te bieden voor een factuur +ToOfferALinkForOnlinePaymentOnContractLine=URL om een %s online betalingsgebruikersinterface aan te bieden voor een contractregel +ToOfferALinkForOnlinePaymentOnFreeAmount=URL om een %s online betalingsgebruikersinterface aan te bieden voor een donatie +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL om een %s online betalingsgebruikersinterface aan te bieden voor een ledenabonnement +YouCanAddTagOnUrl=U kunt ook een URL (GET) parameter &tag=waarde toevoegen aan elk van deze URL's (enkel nodig voor een donatie) om deze van uw eigen betalingscommentaar te voorzien +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Deze pagina bevestigd dat uw betaling succesvol in geregistreerd. Dank u. +YourPaymentHasNotBeenRecorded=Uw betaling is niet geregistreerd en de transactie is geannuleerd. Dank u. +AccountParameter=Accountwaarden +UsageParameter=Met gebruik van de waarden +InformationToFindParameters=Hulp om uw %s accountinformatie te vinden +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Verkopersnaam +CSSUrlForPaymentForm=URL van het CSS-stijlbestand voor het betalingsformulier +MessageOK=Bericht opde bevestigingspagina van een gevalideerde betaling +MessageKO=Bericht op de bevestigingspagina van een geannuleerde betaling +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/nl_NL/supplier_proposal.lang b/htdocs/langs/nl_NL/supplier_proposal.lang index 0e140415f98..86d11d2cbdd 100644 --- a/htdocs/langs/nl_NL/supplier_proposal.lang +++ b/htdocs/langs/nl_NL/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Leveranciersoffertes @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Concept (moet worden gevalideerd) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Gesloten SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Geweigerd @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Standaard model aanmaken DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/nl_NL/suppliers.lang b/htdocs/langs/nl_NL/suppliers.lang index b180484aba5..0c8fb103f58 100644 --- a/htdocs/langs/nl_NL/suppliers.lang +++ b/htdocs/langs/nl_NL/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Sommige sub-producten hebben geen prijs ingevuld AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Deze leveranciersreferentie is al in verband met de referentie: %s NoRecordedSuppliers=Geen leveranciers geregistreerd SupplierPayment=Leveranciersbetaling @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/nl_NL/trips.lang b/htdocs/langs/nl_NL/trips.lang index df844a0c4ab..dfbb6bd1b60 100644 --- a/htdocs/langs/nl_NL/trips.lang +++ b/htdocs/langs/nl_NL/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Vergoedingenlijst TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Bedrijf / stichting bezocht +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Kilometerskosten DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validatiedatum DATE_CANCEL=Cancelation date DATE_PAIEMENT=Betaaldatum - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/nl_NL/users.lang b/htdocs/langs/nl_NL/users.lang index b39b5cf1e1e..f05935cf066 100644 --- a/htdocs/langs/nl_NL/users.lang +++ b/htdocs/langs/nl_NL/users.lang @@ -59,15 +59,15 @@ LinkedToDolibarrMember=Link Lidmaatschap LinkedToDolibarrUser=Gebruiker link Dolibarr LinkedToDolibarrThirdParty=Link derden Dolibarr CreateDolibarrLogin=Maak Dolibarr account -CreateDolibarrThirdParty=Maak Derden +CreateDolibarrThirdParty=Creëer nieuwe klant LoginAccountDisableInDolibarr=Account uitgeschakeld in Dolibarr. UsePersonalValue=Gebruik persoonlijke waarde InternalUser=Interne gebruiker ExportDataset_user_1=Dolibarr's gebruikers en eigenschappen DomainUser=Domeingebruikersaccount %s Reactivate=Reactiveren -CreateInternalUserDesc=Met dit formulier kunt u een gebruiker intern in uw bedrijf / stichting te creëren. Om een ​​externe gebruiker (klant, leverancier, ...), gebruik dan de knop te maken 'Nieuwe Dolibarr gebruiker' van klanten contactkaart. -InternalExternalDesc=Een interne gebruiker is een gebruiker die deel uitmaakt van uw bedrijf.
Een externe gebruiker is een afnemer, leverancier of andere.

In beide gevallen kunnen de rechten binnen Dolibarr ingesteld worden. Ook kan een externe gebruiker over een ander menuverwerker beschikken dan een interne gebruiker (Zie Home->Instellingen->Scherm) +CreateInternalUserDesc=Dit fomulier maakt het mogelijk om een interne gebruiker aan uw bedrijf / organisatie toe te voegen. Om een externe gebruiker (klant, leverancier, ...) toe te voegen gebruik de 'Maak Dolibarr account' knop in de contactpersonen kaart. +InternalExternalDesc=Een interne gebruiker is een gebruiker die onderdeel uitmaakt van uw bedrijf / organisatie.
\nEen externe gebruiker is een klant, leverancier of andere 3de partij.

In beide gevallen definiëren permissies de rechten in Dolibarr. Tevens kunnen externe gebruikers een andere menu manager hebben dan interne gebruikers. (Kijk bij Home - Instellingen - Menu's) PermissionInheritedFromAGroup=Toestemming verleend, omdat geërfd van een bepaalde gebruikersgroep. Inherited=Overgeërfd UserWillBeInternalUser=Gemaakt gebruiker een interne gebruiker te zijn (want niet gekoppeld aan een bepaalde derde partij) diff --git a/htdocs/langs/nl_NL/website.lang b/htdocs/langs/nl_NL/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/nl_NL/website.lang +++ b/htdocs/langs/nl_NL/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/nl_NL/withdrawals.lang b/htdocs/langs/nl_NL/withdrawals.lang index 1e5c2eac0d7..bbf4ca9c0c1 100644 --- a/htdocs/langs/nl_NL/withdrawals.lang +++ b/htdocs/langs/nl_NL/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Bedrag in te trekken WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Geen afnemersfactuur in betalingsmodus "Intrekking" is wachtende. Ga naar het tabblad "Intrekking" op de factuurkaart om een verzoek te creëren. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Verantwoordelijke gebruiker WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reden voor afwijzing RefusedInvoicing=Facturering van de afwijzing NoInvoiceRefused=Factureer de afwijzing niet InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Wachtend StatusTrans=Verzonden StatusCredited=Gecrediteerd diff --git a/htdocs/langs/nl_NL/workflow.lang b/htdocs/langs/nl_NL/workflow.lang index cbaef50174f..6405711430a 100644 --- a/htdocs/langs/nl_NL/workflow.lang +++ b/htdocs/langs/nl_NL/workflow.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - workflow WorkflowSetup=Workflow module setup -WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. +WorkflowDesc=Deze module is ontworpen om het gedrag van automatische acties aan te passen. Standaard is de workflow open (u kunt dingen doen in de volgorde die u wilt). U kunt automatische acties activeren indien u wenst. ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed diff --git a/htdocs/langs/pl_PL/accountancy.lang b/htdocs/langs/pl_PL/accountancy.lang index 52677424e4e..c533b579080 100644 --- a/htdocs/langs/pl_PL/accountancy.lang +++ b/htdocs/langs/pl_PL/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Obszar księgowości AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Dodaj konto księgowe AccountAccounting=Konto księgowe AccountAccountingShort=Konto SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Powiązania do faktury dostawcy ExpenseReportsVentilation=Expense report binding CreateMvts=Utwórz nową transakcję UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Bilans konta @@ -142,6 +143,7 @@ NumPiece=ilość sztuk TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sprzedaż AccountingJournalType3=Zakupy AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Eksporty Export=Eksport +ExportDraftJournal=Export draft journal Modelcsv=Model eksportu OptionsDeactivatedForThisExportModel=Dla tego modelu eksportu opcje są wyłączone Selectmodelcsv=Wybierz model eksportu diff --git a/htdocs/langs/pl_PL/admin.lang b/htdocs/langs/pl_PL/admin.lang index e3cd4ac1dea..9f85b9ae8be 100644 --- a/htdocs/langs/pl_PL/admin.lang +++ b/htdocs/langs/pl_PL/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Dostawca komercyjnych i wniosek propozycja ceny Module1200Name=Mantis Module1200Desc=Integracja Mantis Module1400Name=Księgowość -Module1400Desc=Zarządzanie księgowością (podwójne strony) +Module1400Desc=Accounting management (double entries) Module1520Name=Generowanie dokumentu Module1520Desc=Dokument poczty masowej generacji Module1780Name=Tagi / Kategorie @@ -585,7 +585,7 @@ Module50100Desc=Punkty sprzedaży (POS) Module50200Name=Paypal Module50200Desc=Moduł oferujący płatność online za pomocą karty kredytowej z Paypal Module50400Name=Rachunkowość (zaawansowane) -Module50400Desc=Rachunkowości zarządczej (podwójne strony) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Druk bezpośredni (bez otwierania dokumentów) za pomocą interfejsu Puchary IPP (drukarki muszą być widoczne z serwera, a CUPS musi być installé na serwerze). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/pl_PL/agenda.lang b/htdocs/langs/pl_PL/agenda.lang index d562a57c0cf..3910e5e00bc 100644 --- a/htdocs/langs/pl_PL/agenda.lang +++ b/htdocs/langs/pl_PL/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID zdarzenia Actions=Wydarzenia Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendy LocalAgenda=Kalendarz wewnętrzny ActionsOwnedBy=Wydarzenie własnością @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Usunięcie faktury %s InvoicePaidInDolibarr=Faktura% s zmieniła się zwrócić InvoiceCanceledInDolibarr=Faktura% s anulowana MemberValidatedInDolibarr=% S potwierdzone państwa +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Użytkownik usunął% MemberSubscriptionAddedInDolibarr=Zapisy na członka% s dodany ShipmentValidatedInDolibarr=Przesyłka %s potwierdzona -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Przesyłka% s usunięte OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Zatwierdzenie zamówienia %s @@ -73,13 +75,17 @@ InterventionSentByEMail=Interwencja %s wysłana mailem ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Data rozpoczęcia DateActionEnd=Data zakończenia AgendaUrlOptions1=Możesz także dodać następujące parametry do filtr wyjściowy: -AgendaUrlOptions2=login=%s aby ograniczyć wyjścia do działań stworzonych lub przypisanych do użytkownika %s. AgendaUrlOptions3=logina =%s, aby ograniczyć wyjścia do działań będących własnością użytkownika %s. -AgendaUrlOptions4=logint=%s aby ograniczyć wyjścia do działań przypisanych do użytkownika %s +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=projekt=PROJECT_ID by ograniczyć wyjścia do działań związanych z projektem PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/pl_PL/banks.lang b/htdocs/langs/pl_PL/banks.lang index e22aa91fd65..c236438363b 100644 --- a/htdocs/langs/pl_PL/banks.lang +++ b/htdocs/langs/pl_PL/banks.lang @@ -66,34 +66,35 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Identyfikator transakcji BankTransactions=Bank entries -ListTransactions=List entries +BankTransaction=Bank entry +ListTransactions=Lista wpisów ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile Conciliable=Może być rekoncyliowane -Conciliate=Ugłaskać +Conciliate=Uzgodnienie sald Conciliation=Rekoncyliacja ReconciliationLate=Reconciliation late IncludeClosedAccount=Dołącz zamknięte rachunki -OnlyOpenedAccount=Tylko otworzyła rachunek +OnlyOpenedAccount=Tylko otwarte konta AccountToCredit=Konto do kredytów AccountToDebit=Konto do obciążania DisableConciliation=Wyłącz funkcję rekoncyliacji dla tego konta ConciliationDisabled=Funkcja rekoncyliacji wyłączona LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Otwierany +StatusAccountOpened=Otwarte StatusAccountClosed=Zamknięte AccountIdShort=Liczba LineRecord=Transakcja -AddBankRecord=Add entry -AddBankRecordLong=Add entry manually +AddBankRecord=Dodaj wpis +AddBankRecordLong=Dodaj wpis ręcznie ConciliatedBy=Rekoncyliowany przez DateConciliating=Data rekoncyliacji BankLineConciliated=Entry reconciled Reconciled=Reconciled NotReconciled=Not reconciled CustomerInvoicePayment=Płatności klienta -SupplierInvoicePayment=Płatności dostawcy -SubscriptionPayment=Płatność Subskrypcja +SupplierInvoicePayment=Płatność dostawcy +SubscriptionPayment=Zaplanowana płatność WithdrawalPayment=Wycofana płatność SocialContributionPayment=Płatność za ZUS/podatek BankTransfer=Przelew bankowy @@ -112,7 +113,7 @@ BankChecks=Czeki bankowe BankChecksToReceipt=Checks awaiting deposit ShowCheckReceipt=Pokaż sprawdzić otrzymania wpłaty NumberOfCheques=Nr czeku -DeleteTransaction=Delete entry +DeleteTransaction=Usuń wpis ConfirmDeleteTransaction=Are you sure you want to delete this entry? ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry BankMovements=Ruchy @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Czek zwrócony i faktura ponownie otwarta BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/pl_PL/bills.lang b/htdocs/langs/pl_PL/bills.lang index 4bfd3aa7ca9..f4ba9b429fa 100644 --- a/htdocs/langs/pl_PL/bills.lang +++ b/htdocs/langs/pl_PL/bills.lang @@ -3,7 +3,7 @@ Bill=Faktura Bills=Faktury BillsCustomers=Faktury klienta BillsCustomer=Faktura klienta -BillsSuppliers=Faktury dostawców +BillsSuppliers=Faktury dostawcy BillsCustomersUnpaid=Niezapłacone faktury klienta BillsCustomersUnpaidForCompany=Unpaid customer invoices for %s BillsSuppliersUnpaid=Niezapłacone faktury dostawcy @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standardowa faktura InvoiceStandardAsk=Standardowa faktura InvoiceStandardDesc=Tego rodzaju faktura jest powszechną fakturą. -InvoiceDeposit=Depozyt faktury -InvoiceDepositAsk=Depozyt faktury -InvoiceDepositDesc=Tego rodzaju faktura jest wystawiana, gdy została dana zaliczka/zadatek +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma faktury InvoiceProFormaAsk=Proforma faktury InvoiceProFormaDesc=Faktura proforma jest obrazem prawdziwej faktury, ale nie ma jeszcze wartości księgowych. @@ -62,7 +62,7 @@ PaymentsBack=Zwroty płatności paymentInInvoiceCurrency=in invoices currency PaidBack=Spłacona DeletePayment=Usuń płatności -ConfirmDeletePayment=Czy na pewno chcesz usunąć tę płatność? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Płatności dostawców ReceivedPayments=Otrzymane płatności @@ -103,11 +103,11 @@ SearchACustomerInvoice=Szukaj faktury klienta SearchASupplierInvoice=Szukaj faktury dostawcy CancelBill=Anulowanie faktury SendRemindByMail=Wyślij przypomnienie / ponaglenie mailem -DoPayment=Enter payment -DoPaymentBack=Enter refund +DoPayment=Wprowadź płatność +DoPaymentBack=Wprowadź zwrot ConvertToReduc=Zamień na przyszły rabat ConvertExcessReceivedToReduc=Convert excess received into future discount -EnterPaymentReceivedFromCustomer=Wprowadź płatności otrzymane od klienta +EnterPaymentReceivedFromCustomer=Wprowadź płatność otrzymaną od klienta EnterPaymentDueToCustomer=Dokonaj płatności dla klienta DisabledBecauseRemainderToPayIsZero=Nieaktywne, ponieważ upływająca nieopłacona kwota wynosi zero PriceBase=Cena podstawowa @@ -115,7 +115,7 @@ BillStatus=Status faktury StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Projekt (musi zostać zatwierdzone) BillStatusPaid=Płatność -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Płatność (gotowe do finalnej faktury) BillStatusCanceled=Opuszczony BillStatusValidated=Zatwierdzona (trzeba zapłacić) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Opłacone (częściowo) BillShortStatusDraft=Szkic BillShortStatusPaid=Płatność BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Przetworzone +BillShortStatusConverted=Płatność BillShortStatusCanceled=Opuszczone BillShortStatusValidated=Zatwierdzone BillShortStatusStarted=Rozpoczęcie @@ -153,23 +153,23 @@ NoQualifiedRecurringInvoiceTemplateFound=No recurring template invoice qualified FoundXQualifiedRecurringInvoiceTemplate=Found %s recurring template invoice(s) qualified for generation. NotARecurringInvoiceTemplate=Not a recurring template invoice NewBill=Nowa faktura -LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastBills=Ostatnie %s faktur +LastCustomersBills=Ostatnie %s faktur klienta +LastSuppliersBills=Ostatnie %s faktur dostawcy AllBills=Wszystkie faktury OtherBills=Inne faktury DraftBills=Projekt faktur -CustomersDraftInvoices=Customer draft invoices -SuppliersDraftInvoices=Supplier draft invoices +CustomersDraftInvoices=Szkic faktur klienta +SuppliersDraftInvoices=Szkic faktur dostawcy Unpaid=Należne wpłaty -ConfirmDeleteBill=Are you sure you want to delete this invoice? -ConfirmValidateBill=Are you sure you want to validate this invoice with reference %s? -ConfirmUnvalidateBill=Are you sure you want to change invoice %s to draft status? -ConfirmClassifyPaidBill=Are you sure you want to change invoice %s to status paid? -ConfirmCancelBill=Are you sure you want to cancel invoice %s? -ConfirmCancelBillQuestion=Why do you want to classify this invoice 'abandoned'? -ConfirmClassifyPaidPartially=Are you sure you want to change invoice %s to status paid? -ConfirmClassifyPaidPartiallyQuestion=This invoice has not been paid completely. What are reasons for you to close this invoice? +ConfirmDeleteBill=Czy jesteś pewien, że chcesz usunąć tą fakturę? +ConfirmValidateBill=Czy jesteś pewien, że chcesz zatwierdzić tą fakturę z numerem %s? +ConfirmUnvalidateBill=Czy jesteś pewien, że chcesz przenieść fakturę %s do statusu szkicu? +ConfirmClassifyPaidBill=Czy jesteś pewien, że chcesz zmienić status faktury %s na zapłaconą? +ConfirmCancelBill=Czy jesteś pewien, że chcesz anulować fakturę %s? +ConfirmCancelBillQuestion=Dlaczego chcesz sklasyfikować tę fakturę „opuszczonych”? +ConfirmClassifyPaidPartially=Czy jesteś pewien, że chcesz zmienić status faktury %s na zapłaconą? +ConfirmClassifyPaidPartiallyQuestion=Ta faktura nie została zapłacona w całości. Jaka jest przyczyna, że chcesz zamknąć tą fakturę? ConfirmClassifyPaidPartiallyReasonAvoir=Upływającym nieopłaconym (%s %s) jest przyznana zniżka, ponieważ płatność została dokonana przed terminem. Uregulowano podatku VAT do faktury korygującej. ConfirmClassifyPaidPartiallyReasonDiscountNoVat=Upływające nieopłacone (%s %s) jest przyznana zniżka, ponieważ płatność została dokonana przed terminem. Akceptuję stracić VAT na tej zniżce. ConfirmClassifyPaidPartiallyReasonDiscountVat=Upływające nieopłacone (% s% s) mają przyznaną zniżkę, ponieważ płatność została dokonana przed terminem. Odzyskano VAT od tej zniżki bez noty kredytowej. @@ -184,9 +184,9 @@ ConfirmClassifyPaidPartiallyReasonProductReturnedDesc=Ten wybór jest używany, ConfirmClassifyPaidPartiallyReasonOtherDesc=Użyj tego wyboru, jeśli wszystkie inne nie odpowiadać, na przykład w następującej sytuacji:
- Opłaty nie są kompletne, ponieważ niektóre produkty zostały wysłane z powrotem
- Kwota zbyt ważne, gdyż twierdził, rabat został zapomniany
We wszystkich przypadkach kwota ponad twierdził musi być rozwiązany w księgowości system poprzez stworzenie kredytu notatkę. ConfirmClassifyAbandonReasonOther=Inny ConfirmClassifyAbandonReasonOtherDesc=Wybór ten będzie używany we wszystkich innych przypadkach. Na przykład wówczas. gdy planujesz utworzyć fakturę zastępującą. -ConfirmCustomerPayment=Do you confirm this payment input for %s %s? -ConfirmSupplierPayment=Do you confirm this payment input for %s %s? -ConfirmValidatePayment=Are you sure you want to validate this payment? No change can be made once payment is validated. +ConfirmCustomerPayment=Potwierdzasz wprowadzenie płatności dla %s %s? +ConfirmSupplierPayment=Potwierdzasz wprowadzenie płatności dla %s %s? +ConfirmValidatePayment=Czy jesteś pewny, że chcesz zatwierdzić tą płatność? Nie będzie można wprowadzić zmian po zatwierdzeniu płatności. ValidateBill=Zatwierdź fakturę UnvalidateBill=Niepotwierdzona faktura NumberOfBills=Ilość faktur @@ -198,12 +198,12 @@ ShowBill=Pokaż fakturę ShowInvoice=Pokaż fakturę ShowInvoiceReplace=Pokaż faktury zastępcze ShowInvoiceAvoir=Pokaż notę kredytową -ShowInvoiceDeposit=Pokaż złożeniu faktury +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Pokaż płatności AlreadyPaid=Zapłacono AlreadyPaidBack=Zwrócono -AlreadyPaidNoCreditNotesNoDeposits=Zapłacono (bez not kredytowych i depozytów) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Porzucone RemainderToPay=Nieopłacone RemainderToTake=Pozostała kwota do podjęcia @@ -259,26 +259,26 @@ Reductions=Rabaty ReductionsShort=Zniżka Discounts=Zniżki AddDiscount=Stwórz zniżkę -AddRelativeDiscount=Tworzenie względnej zniżki -EditRelativeDiscount=Edycja względną zniżki +AddRelativeDiscount=Utwórz powiązaną zniżkę +EditRelativeDiscount=Edytuj powiązaną zniżkę AddGlobalDiscount=Dodaj zniżki EditGlobalDiscounts=Edytuj bezwzględne zniżki AddCreditNote=Tworzenie noty kredytowej ShowDiscount=Pokaż zniżki ShowReduc=Pokaż odliczenia -RelativeDiscount=Względna zniżki +RelativeDiscount=Powiązana zniżka GlobalDiscount=Globalne zniżki CreditNote=Nota kredytowa CreditNotes=Noty kredytowe -Deposit=Depozyt -Deposits=Depozyty +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Rabat od kredytu pamiętać %s -DiscountFromDeposit=Płatności z depozytu faktury %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Tego rodzaju kredyt może być użyta na fakturze przed jej zatwierdzeniem CreditNoteDepositUse=Invoice must be validated to use this kind of credits NewGlobalDiscount=Nowe zniżki -NewRelativeDiscount=Nowe zniżki w stosunku +NewRelativeDiscount=Nowa powiązana zniżka NoteReason=Uwaga / Reason ReasonDiscount=Powód DiscountOfferedBy=Przyznane przez @@ -302,7 +302,7 @@ RemoveDiscount=Usuń zniżki WatermarkOnDraftBill=Znak wodny na szkicu faktury (brak jeżeli pusty) InvoiceNotChecked=Nie wybrano faktury CloneInvoice=Powiel fakturę -ConfirmCloneInvoice=Are you sure you want to clone this invoice %s? +ConfirmCloneInvoice=Czy jesteś pewien, że chcesz powielić tą fakturę %s? DisabledBecauseReplacedInvoice=Działania wyłączone, ponieważ na fakturze została zastąpiona DescTaxAndDividendsArea=This area presents a summary of all payments made for special expenses. Only record with payment during the fixed year are included here. NbOfPayments=Ilość płatności @@ -311,11 +311,11 @@ ConfirmSplitDiscount=Are you sure you want to split this discount of %s % TypeAmountOfEachNewDiscount=Wejście kwoty dla każdego z dwóch części: TotalOfTwoDiscountMustEqualsOriginal=Suma dwóch nowych rabatu musi być równa kwocie pierwotnego zniżki. ConfirmRemoveDiscount=Are you sure you want to remove this discount? -RelatedBill=Podobne faktury -RelatedBills=Faktur związanych +RelatedBill=Powiązana faktura +RelatedBills=Powiązane faktury RelatedCustomerInvoices=Powiązane z: faktury klienta RelatedSupplierInvoices=Pozwiązane z: faktura dostawca -LatestRelatedBill=Ostatnie pokrewne faktury +LatestRelatedBill=Ostatnie powiązane faktury WarningBillExist=Ostrzeżenie, jedna lub więcej faktur istnieje MergingPDFTool=Narzędzie do dzielenia PDF AmountPaymentDistributedOnInvoice=Payment amount distributed on invoice @@ -382,7 +382,7 @@ PaymentTypeShortTIP=TIP Payment PaymentTypeVAD=Płatności on-line PaymentTypeShortVAD=Płatności on-line PaymentTypeTRA=Bank draft -PaymentTypeShortTRA=Projekt +PaymentTypeShortTRA=Szkic PaymentTypeFAC=Współczynnik PaymentTypeShortFAC=Współczynnik BankDetails=Szczegóły banku @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Nie można usunąć płatności, ponieważ i ExpectedToPay=Oczekuje płatności CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Wypłacana przez płatność -ClosePaidInvoicesAutomatically=Sklasyfikować jako "Zapłacone" wszystkie standardowe faktury lub duplikaty faktur wpłacone w całości. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Klasyfikująsubstancje "Paid" wszystkie noty kredytowe w całości zwrócona. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Wszystkie faktury bez kwoty do zapłaty zostaną automatycznie zamknięte i oznaczone statusem "Zapłacono" @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Faktura Crabe modelu. Pełna faktura modelu (VAT Wsparcie opcji, rabaty, warunki płatności, logo, itp. ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Zwróć numer w formacie %srrmm-nnnn dla standardowych faktur i %srrmm-nnnn dla not kredytowych, gdzie rr oznacza rok, mm to miesiąc, a nnnn to kolejny niepowtarzalny numer rozpoczynający się od 0 -MarsNumRefModelDesc1=Zwraca numer w formacie %srrmm-nnnn dla standardowych faktur, %srrmm-nnnn dla duplikatow faktur, %srrmm-nnnn dla faktur zaliczkowych i %srrmm-nnnn dla not kredytowych, gdzie rr to rok, mm to miesiąc, a nnnn to kolejny niepowtarzalny numer rozpoczynający się od 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Rachunek zaczynające się od $ syymm już istnieje i nie jest kompatybilne z tym modelem sekwencji. Usuń go lub zmienić jego nazwę, aby włączyć ten moduł. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Przedstawiciela w ślad za klienta faktura TypeContact_facture_external_BILLING=kontakt faktury klienta diff --git a/htdocs/langs/pl_PL/bookmarks.lang b/htdocs/langs/pl_PL/bookmarks.lang index 0fce90044ba..e9669fb8f97 100644 --- a/htdocs/langs/pl_PL/bookmarks.lang +++ b/htdocs/langs/pl_PL/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Dodaj tę stronę do zakładek +AddThisPageToBookmarks=Dodaj obecną stronę do zakładek Bookmark=Zakładka Bookmarks=Zakładki +ListOfBookmarks=Lista zakładek +EditBookmarks=Pokaż/edytuj zakładki NewBookmark=Nowa zakładka ShowBookmark=Pokaż zakładki OpenANewWindow=Otwórz nowe okno @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=Nowe okno BookmarkTargetReplaceWindowShort=Aktualne okno BookmarkTitle=Tytuł zakładki UrlOrLink=URL -BehaviourOnClick=Zachowaj po kliknięciu na adres URL +BehaviourOnClick=Zachowanie gdy wybrana jest zakładka URL CreateBookmark=Stwórz zakładkę SetHereATitleForLink=Zdefiniuj nazwę zakładki UseAnExternalHttpLinkOrRelativeDolibarrLink=Użyj zewnętrznego adresu http lub względnego adresu URL Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Wybierz czy podlinkowana strona ma się otworzyć w nowym oknie czy nie BookmarksManagement=Zarządzanie zakładkami diff --git a/htdocs/langs/pl_PL/boxes.lang b/htdocs/langs/pl_PL/boxes.lang index 42bb705b371..ed177a428a8 100644 --- a/htdocs/langs/pl_PL/boxes.lang +++ b/htdocs/langs/pl_PL/boxes.lang @@ -1,13 +1,14 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Informacje Rss BoxLastProducts=Ostatnie %s produktów/usług -BoxProductsAlertStock=Stock alerts for products +BoxProductsAlertStock=Alarm zapasu dla artykułów BoxLastProductsInContract=Latest %s contracted products/services BoxLastSupplierBills=Ostatnie faktury dostawców BoxLastCustomerBills=Ostatnie faktury klientów BoxOldestUnpaidCustomerBills=Najstarsze niezapłacone faktury klientów BoxOldestUnpaidSupplierBills=Najstarsze niezapłacone faktury dostawców -BoxLastProposals=Latest commercial proposals +BoxLastProposals=Ostatnie propozycje handlowe BoxLastProspects=Ostatnio zmodyfikowane perspektywy BoxLastCustomers=Ostatni modyfikowani klienci BoxLastSuppliers=Ostatni modyfikowani dostawcy @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Latest %s recorded suppliers BoxTitleLastModifiedSuppliers=Ostatnie %s modyfikowanych dostawców BoxTitleLastModifiedCustomers=Ostatnie %s modyfikowanych klientów BoxTitleLastCustomersOrProspects=Ostatnich %s klientów lub potencjalnych klientów -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=Ostatnie %s faktur klienta +BoxTitleLastSupplierBills=Ostatnie %s faktur dostawcy BoxTitleLastModifiedProspects=Ostatnich %s zmodyfikowanych perspektyw BoxTitleLastModifiedMembers=Ostatnich %s członków BoxTitleLastFicheInter=Latest %s modified interventions @@ -34,7 +35,7 @@ BoxTitleOldestUnpaidCustomerBills=Najstarszych %s niezapłaconych faktur klienta BoxTitleOldestUnpaidSupplierBills=Najstarszych %s niezapłaconych faktur dostawcy BoxTitleCurrentAccounts=Bilans otwartych kont BoxTitleLastModifiedContacts=Ostatnich %s zmodyfikowanych kontaktów/adresów -BoxMyLastBookmarks=My latest %s bookmarks +BoxMyLastBookmarks=Moje ostatnie %s zakładek BoxOldestExpiredServices=Najstarsze aktywne przeterminowane usługi BoxLastExpiredServices=Ostanich %s najstarszych kontaktów z aktywnymi upływającymi usługami BoxTitleLastActionsToDo=Ostatnich %s zadań do zrobienia @@ -44,7 +45,7 @@ BoxTitleLastModifiedExpenses=Ostatnich %s zmodyfikowanych raportów kosztów BoxGlobalActivity=Globalna aktywność (faktury, wnioski, zamówienia) BoxGoodCustomers=Good customers BoxTitleGoodCustomers=%s Good customers -FailedToRefreshDataInfoNotUpToDate=Failed to refresh RSS flux. Latest successfull refresh date: %s +FailedToRefreshDataInfoNotUpToDate=Nie udało się odświeżyć kanału RSS. Data ostatniego udanego odświeżenia: %s LastRefreshDate=Data ostatniego odświeżenia NoRecordedBookmarks=Brak zdefiniowanych zakładek ClickToAdd=Kliknij tutaj, aby dodać. @@ -54,8 +55,8 @@ NoActionsToDo=Brak działań do wykonania NoRecordedOrders=No recorded customer orders NoRecordedProposals=Brak zarejestrowanych wniosków NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices +NoUnpaidCustomerBills=Brak niezapłaconych faktur klientów +NoUnpaidSupplierBills=Brak niezapłaconych faktur dostawców NoModifiedSupplierBills=No recorded supplier invoices NoRecordedProducts=Brak zarejestrowanych produktów / usług NoRecordedProspects=Brak potencjalnyc klientów @@ -82,3 +83,4 @@ ForCustomersOrders=Zamówienia klientów ForProposals=Oferty LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Dodaj widget do swojej tablicy... +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/pl_PL/cashdesk.lang b/htdocs/langs/pl_PL/cashdesk.lang index a107092d1ff..2783b9658c5 100644 --- a/htdocs/langs/pl_PL/cashdesk.lang +++ b/htdocs/langs/pl_PL/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Koszyk NewSell=Nowa tranzakcja AddThisArticle=Dodaj ten artykuł RestartSelling=Wróć na sprzedaż -SellFinished=Sale complete +SellFinished=Sprzedaż zakończona PrintTicket=Bilet do druku NoProductFound=Artykuł nie znaleziony ProductFound=Znaleziono produkt @@ -25,7 +25,7 @@ Difference=Różnica TotalTicket=Podsumowanie całkowity NoVAT=bez podatku VAT dla tej sprzedaży Change=Nadwyżka otrzymana -BankToPay=Należności konta +BankToPay=Konto dla płatności ShowCompany=Pokaż firmę ShowStock=Pokaż magazyn DeleteArticle=Kliknij, aby usunąć ten artykuł diff --git a/htdocs/langs/pl_PL/categories.lang b/htdocs/langs/pl_PL/categories.lang index 997071f8495..043287426b8 100644 --- a/htdocs/langs/pl_PL/categories.lang +++ b/htdocs/langs/pl_PL/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag / Kategoria Rubriques=Tagi / Kategorie +RubriquesTransactions=Tags/Categories of transactions categories=tagi/kategorie NoCategoryYet=Dla tego typu nie utworzono tagu/kategorii In=W @@ -32,7 +33,7 @@ ProductIsInCategories=Produkt/usuługa odnosi się do następujących tagów/kat CompanyIsInCustomersCategories=Ten kontrahent jest związany z następującymi kleintami/tagami rozwoju/kategoriami CompanyIsInSuppliersCategories=Ten kontahent jest skojarzony z następującymi tagami/kategoriami dostawców MemberIsInCategories=Ten członek jest skojarzony z następującymi tagami/kategoriami członków -ContactIsInCategories=ten kontakt odnosi się do następujących tagów/kategorii kontaktów +ContactIsInCategories=Ten kontakt odnosi się do następujących tagów/kategorii kontaktów ProductHasNoCategory=Ten produkt/usługa nie jest w żadnym tagu/kategorii CompanyHasNoCategory=This third party is not in any tags/categories MemberHasNoCategory=Ten członek nie jest w żadnym tagu/kategorii @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Ta kategoria już istnieje w tym samym miejscu ContentsVisibleByAllShort=Zawartość widoczna przez wszystkich ContentsNotVisibleByAllShort=Treść nie jest widoczna dla wszystkich DeleteCategory=Usuń tag/kategorię -ConfirmDeleteCategory=Czy na pewno chcesz usunąć ten tag/kategorię? +ConfirmDeleteCategory=Czy jesteś pewien, że chcesz usunąć ten tag/kategorię? NoCategoriesDefined=Nie zdefiniowano tagu/kategorii SuppliersCategoryShort=Tag/kategoria dostawców CustomersCategoryShort=Tag/kategoria klientów @@ -72,9 +73,9 @@ CatCusList=Lista klientów / perspektywa tagów / kategorii CatProdList=Lista tagów/kategorii produktów CatMemberList=Lista tagów/kategorii członków CatContactList=Lista tagów/kategorii kontaktu -CatSupLinks=Powiązania między dostawcami i tagów / kategorii +CatSupLinks=Powiązania między dostawcami i tagami/kategoriami CatCusLinks=Powiązania między klientami / perspektyw i tagów / kategorii -CatProdLinks=Powiązania między produktów / usług oraz tagów / kategorii +CatProdLinks=Powiązania między produktami/usługami i tagami/kategoriami CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Usuń z tagów/kategorii ExtraFieldsCategories=Atrybuty uzupełniające diff --git a/htdocs/langs/pl_PL/commercial.lang b/htdocs/langs/pl_PL/commercial.lang index 52a54c40848..f73738a08e4 100644 --- a/htdocs/langs/pl_PL/commercial.lang +++ b/htdocs/langs/pl_PL/commercial.lang @@ -10,15 +10,16 @@ NewAction=Nowe zdarzenie AddAction=Utwórz wydarzenie AddAnAction=Utwórz wydarzenie AddActionRendezVous=Stwórz umówione spotkanie -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Czy jesteś pewien, że chcesz usunąć to wydarzenie? CardAction=Karta wydarzenia -ActionOnCompany=Related company -ActionOnContact=Related contact +ActionOnCompany=Powiązane firmy +ActionOnContact=Powiązany kontakt TaskRDVWith=Spotkanie z %s ShowTask=Pokaż zadanie ShowAction=Pokaż działania ActionsReport=Działania raport -ThirdPartiesOfSaleRepresentative=Zamówienia z przedstawicielem handlowym +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Przedstawiciel handlowy SalesRepresentatives=Przedstawiciele handlowi SalesRepresentativeFollowUp=Przedstawiciel handlowy (kontynuacja) @@ -28,8 +29,8 @@ ShowCustomer=Pokaż klienta ShowProspect=Pokaż potencjalnych ListOfProspects=Lista potencjalnych ListOfCustomers=Lista klientów -LastDoneTasks=Latest %s completed actions -LastActionsToDo=Oldest %s not completed actions +LastDoneTasks=Ostatnie %s zakończone akcje +LastActionsToDo=Najstarsze %s niezakończone akcje DoneAndToDoActions=Wydarzenia wykonane i do zrobienia DoneActions=Wykonane działania ToDoActions=Niekompletne wydarzenie diff --git a/htdocs/langs/pl_PL/companies.lang b/htdocs/langs/pl_PL/companies.lang index f9ace0a92cf..642af48f182 100644 --- a/htdocs/langs/pl_PL/companies.lang +++ b/htdocs/langs/pl_PL/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Nazwa firmy %s już istnieje. Wybierz inną. ErrorSetACountryFirst=Najpierw wybierz kraj SelectThirdParty=Wybierz kontrahenta -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Czy jesteś pewien, ze chcesz usunąć tą firmę i wszystkie zawarte informacje? DeleteContact=Usuń kontakt/adres -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Czy jesteś pewien, ze chcesz usunąć ten kontakt i wszystkie zawarte informacje? MenuNewThirdParty=Nowy kontrahent MenuNewCustomer=Nowy klient MenuNewProspect=Nowy potencjalny klient @@ -13,8 +13,8 @@ MenuNewPrivateIndividual=Nowa osoba prywatna NewCompany=Nowa firma (potencjalny klient, klient, dostawca) NewThirdParty=Nowy kontrahent (potencjalny klient, klient, dostawca) CreateDolibarrThirdPartySupplier=Wprowadź podmiot zewnętrzny (dostawca) -CreateThirdPartyOnly=Create thirdpary -CreateThirdPartyAndContact=Create a third party + a child contact +CreateThirdPartyOnly=Utwórz kontrahenta +CreateThirdPartyAndContact=Utwórz kontrahenta i potomny kontakt ProspectionArea=Obszar potencjalnych klientów IdThirdParty=ID kontrahenta IdCompany=ID Firmy @@ -38,9 +38,8 @@ ThirdPartyCustomersStats=Klienci ThirdPartyCustomersWithIdProf12=Klienci z %s lub %s ThirdPartySuppliers=Dostawcy ThirdPartyType=Typ kontrahenta -Company/Fundation=Firma / Fundacja Individual=Osoba prywatna -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. +ToCreateContactWithSameName=Utworzy automatycznie kontakt/adres z takimi samymi informacjami jak dane kontrahenta. Najczęściej jeżeli twój kontrahent jest osobą fizyczną, wystarczy utworzenie samego kontrahenta. ParentCompany=Firma macierzysta Subsidiaries=Oddziały ReportByCustomers=Raport wg klientów @@ -66,7 +65,7 @@ Chat=Czat PhonePro=Telefonu służbowy PhonePerso=Telefon prywatny PhoneMobile=Telefon komórkowy -No_Email=Refuse mass e-mailings +No_Email=Odrzuć masowe mailingi Fax=Faks Zip=Kod pocztowy Town=Miasto @@ -77,11 +76,11 @@ VATIsUsed=Jest płatnikiem VAT VATIsNotUsed=Nie jest płatnikiem VAT CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects -PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +PaymentBankAccount=Konto bankowe dla płatności +OverAllProposals=Propozycje +OverAllOrders=Zamówienia +OverAllInvoices=Faktury +OverAllSupplierProposals=Zapytania o cenę ##### Local Taxes ##### LocalTax1IsUsed=Użyj drugiego podatku LocalTax1IsUsedES= RE jest używany @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof ID 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Względny rabat CustomerAbsoluteDiscountShort=Bezwzględny rabat CompanyHasRelativeDiscount=Ten klient ma standardowy rabat %s%% CompanyHasNoRelativeDiscount=Ten klient domyślnie nie posiada względnego rabatu -CompanyHasAbsoluteDiscount=Ten klient nadal posiada punkty rabatowe lub depozyty dla %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Ten klient nadal posiada noty kredytowe dla %s %s CompanyHasNoAbsoluteDiscount=Ten klient nie posiada punktów rabatowych CustomerAbsoluteDiscountAllUsers=Bezwzględne rabaty (przyznawane przez wszystkich użytkowników) @@ -296,7 +301,7 @@ CompanyDeleted=Firma " %s" usunięta z bazy danych. ListOfContacts=Lista kontaktów/adresów ListOfContactsAddresses=Lista kontaktów/adresów ListOfThirdParties=Lista kontrahentów -ShowCompany=Show third party +ShowCompany=Pokaż kontrahentów ShowContact=Pokaż kontakt ContactsAllShort=Wszystkie (bez filtra) ContactType=Typ kontaktu @@ -365,9 +370,9 @@ ExportCardToFormat=Eksport karty do formatu ContactNotLinkedToCompany=Kontakt nie połączony z żadnym kontrahentem DolibarrLogin=Dolibarr login NoDolibarrAccess=Brak dostępu do Dolibarr -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Kontrahenci (Firmy/Fundacje/Osoby fizyczne) i ich ustawienia ExportDataset_company_2=Kontakty i właściwości -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ImportDataset_company_1=Kontrahenci (Firmy/Fundacje/Osoby fizyczne) i ich ustawienia ImportDataset_company_2=Kontakty/Adresy (Kontrahentów lub nie) i atrybuty ImportDataset_company_3=Szczegóły banku ImportDataset_company_4=Efektywność sprzedaży przedstawicieli Handlowych ds. Kontrahentów. @@ -382,7 +387,7 @@ AllocateCommercial=Przypisać do przedstawiciela Organization=Organizacja FiscalYearInformation=Informacje dotyczące roku podatkowego FiscalMonthStart=Pierwszy miesiąc roku podatkowego -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him. +YouMustAssignUserMailFirst=Musisz w pierwszej kolejności dodać adres email dla tego użytkownika aby udostępnić powiadomienia email dla niego. YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party ListSuppliersShort=Lista dostawców ListProspectsShort=Lista potencjalnych klientów @@ -390,9 +395,9 @@ ListCustomersShort=Lista klientów ThirdPartiesArea=Zamówienie i konktakt LastModifiedThirdParties=Ostatnich %s modyfikowanych kontrahentów UniqueThirdParties=Łącznie unikatowych kontrahentów -InActivity=Otwierany +InActivity=Otwarte ActivityCeased=Zamknięte -ThirdPartyIsClosed=Third party is closed +ThirdPartyIsClosed=Kontrahent jest zamknięty ProductsIntoElements=Lista produktów/usług w %s CurrentOutstandingBill=Biężący, niezapłacony rachunek OutstandingBill=Maksymalna kwota niezapłaconego rachunku @@ -402,10 +407,10 @@ LeopardNumRefModelDesc=Dowolny kod Klienta / Dostawcy. Ten kod może być modyfi ManagingDirectors=Funkcja(e) managera (prezes, dyrektor generalny...) MergeOriginThirdparty=Duplikuj kontrahenta (kontrahenta, którego chcesz usunąć) MergeThirdparties=Scal kontrahentów -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Kontrahenci zostali scaleni -SaleRepresentativeLogin=Login of sales representative -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeLogin=Login przedstawiciela handlowego +SaleRepresentativeFirstname=Imię przedstawiciela handlowego +SaleRepresentativeLastname=Nazwisko przedstawiciela handlowego ErrorThirdpartiesMerge=Wystąpił błąd podczas usuwania kontrahenta. Sprawdź logi. Zmiany zostały cofnięte. NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code diff --git a/htdocs/langs/pl_PL/contracts.lang b/htdocs/langs/pl_PL/contracts.lang index d9e9270d4bd..3a457ed0d3e 100644 --- a/htdocs/langs/pl_PL/contracts.lang +++ b/htdocs/langs/pl_PL/contracts.lang @@ -21,7 +21,7 @@ ContractsAndLine=Kontrakty i pozycje kontraktów Contract=Kontrakt ContractLine=Pozycja kontraktu Closing=Zamknięte -NoContracts=Nr umowy +NoContracts=Brak kontraktów MenuServices=Usługi MenuInactiveServices=Nieaktywne usługi MenuRunningServices=Uruchomione usługi @@ -32,13 +32,13 @@ NewContractSubscription=Nowa umowa/subskrypcja AddContract=Stwórz kontrakt DeleteAContract=Usuń kontrakt CloseAContract=Zamknij kontrakt -ConfirmDeleteAContract=Czy na pewno chcesz usunąć ten kontrakt i wszystkie jego usługi? -ConfirmValidateContract=Czy na pewno chcesz potwierdzić tą umowę pod nazwą %s? -ConfirmCloseContract=Spowoduje to zamknięcie wszystkich usług (aktywnych lub nie). Czy na pewno chcesz zamknąć ten kontrakt? -ConfirmCloseService=Czy na pewno chcesz zamknąć tą usługę z datą %s? +ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? +ConfirmValidateContract=Are you sure you want to validate this contract under name %s? +ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? +ConfirmCloseService=Are you sure you want to close this service with date %s? ValidateAContract=Potwierdź kontrakt ActivateService=Aktywacja usługi -ConfirmActivateService=Czy na pewno chcesz, aby uaktywnić tę usługę z datą %s? +ConfirmActivateService=Are you sure you want to activate this service with date %s? RefContract=Numer umowy DateContract=Data kontraktu DateServiceActivate=Data aktywacji usługi @@ -69,10 +69,10 @@ DraftContracts=Szkice kontaktów CloseRefusedBecauseOneServiceActive=Umowa nie może zostać zamknięty, gdyż istnieje co najmniej jeden serwis otwarty na nim CloseAllContracts=Zamknij wszystkie pozycje kontraktu DeleteContractLine=Usuń pozycję z kontraktu -ConfirmDeleteContractLine=Czy na pewno chcesz usunąć tę pozycję z kontraktu? +ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Przenieś usługi do innego kontraktu. ConfirmMoveToAnotherContract=Wybrałem nowy kontrakt docelowy i potwierdzam chęć przesunięcia tego serwicu do tego kontaktu. -ConfirmMoveToAnotherContractQuestion=Wybierz, w którym istniejące umowy (na tej stronie), które chcesz przenieść tę usługę? +ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? PaymentRenewContractId=Odnowienie umowy linii (liczba %s) ExpiredSince=Data ważności NoExpiredServices=Bark wygasłych aktywnych usług @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Ta lista zawiera tylko usługi umów na rzecz osó StandardContractsTemplate=Szablon standardowych kontraktów ContactNameAndSignature=Dla% s, nazwisko i podpis: OnlyLinesWithTypeServiceAreUsed=Tylko linie z typu "usługi" będzie przebity. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Podpisanie umowy sprzedaży diff --git a/htdocs/langs/pl_PL/deliveries.lang b/htdocs/langs/pl_PL/deliveries.lang index cfd231cb4b6..c7c237ba404 100644 --- a/htdocs/langs/pl_PL/deliveries.lang +++ b/htdocs/langs/pl_PL/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Dostawa -DeliveryRef=Ref Delivery -DeliveryCard=Receipt card +DeliveryRef=Numer referencyjny dostawy +DeliveryCard=Karta przyjęcia DeliveryOrder=Zamówienie dostawy DeliveryDate=Data dostawy -CreateDeliveryOrder=Generate delivery receipt +CreateDeliveryOrder=Generuj przyjęcie dostawy DeliveryStateSaved=Stan dostawy zapisany SetDeliveryDate=Ustaw datę wysyłki ValidateDeliveryReceipt=Potwierdzenie otrzymania dostawy -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +ValidateDeliveryReceiptConfirm=Czy jesteś pewny, że chcesz zatwierdzić to przyjęcie dostawy? DeleteDeliveryReceipt=Usuń potwierdzenia dostarczenia -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeleteDeliveryReceiptConfirm=Czy jesteś pewien, że chcesz usunąć przyjęcie dostawy %s? DeliveryMethod=Metoda dostawy TrackingNumber=Numer przesyłki DeliveryNotValidated=Dostawa nie zatwierdzona @@ -27,4 +27,4 @@ Recipient=Odbiorca ErrorStockIsNotEnough=Brak wystarczającego zapasu w magazynie Shippable=Możliwa wysyłka NonShippable=Nie do wysyłki -ShowReceiving=Show delivery receipt +ShowReceiving=Pokaż przyjęte dostawy diff --git a/htdocs/langs/pl_PL/dict.lang b/htdocs/langs/pl_PL/dict.lang index ddfbdbefba3..87f75e9709f 100644 --- a/htdocs/langs/pl_PL/dict.lang +++ b/htdocs/langs/pl_PL/dict.lang @@ -138,7 +138,7 @@ CountryLS=Lesoto CountryLR=Liberia CountryLY=Libijska CountryLI=Lichtenstein -CountryLT=Lithuania +CountryLT=Litwa CountryLU=Luksemburg CountryMO=Makau CountryMK=Macedonia diff --git a/htdocs/langs/pl_PL/donations.lang b/htdocs/langs/pl_PL/donations.lang index 92e91ca1215..74c207490d5 100644 --- a/htdocs/langs/pl_PL/donations.lang +++ b/htdocs/langs/pl_PL/donations.lang @@ -6,23 +6,23 @@ Donor=Darczyńca AddDonation=Tworzenie darowizny NewDonation=Nowa darowizna DeleteADonation=Usuń darowiznę -ConfirmDeleteADonation=Are you sure you want to delete this donation? +ConfirmDeleteADonation=Czy jesteś pewien, że chcesz usunąć tą dotację? ShowDonation=Pokaż darowizny PublicDonation=Publiczna dotacja DonationsArea=Obszar dotacji DonationStatusPromiseNotValidated=Projekt obietnicy -DonationStatusPromiseValidated=Zatwierdzona obietnicy +DonationStatusPromiseValidated=Zatwierdzona obietnica DonationStatusPaid=Darowizna otrzymana DonationStatusPromiseNotValidatedShort=Szkic DonationStatusPromiseValidatedShort=Zatwierdzona -DonationStatusPaidShort=Odebrane +DonationStatusPaidShort=Odebrano DonationTitle=Otrzymanie darowizny DonationDatePayment=Data płatności ValidPromess=Sprawdź obietnicy DonationReceipt=Otrzymanie darowizny DonationsModels=Dokumenty modeli oddawania wpływy -LastModifiedDonations=Ostatnich %s zmodyfikowanych dotacji -DonationRecipient=Darowizna odbiorca +LastModifiedDonations=Ostatnie %s zmodyfikowanych dotacji +DonationRecipient=Darowizna odebrana IConfirmDonationReception=Odbiorca deklarują odbiór, jako darowiznę, następującej kwoty MinimumAmount=Minimalna kwota to %s FreeTextOnDonations=Dowolny tekst do wyświetlenia w stopce diff --git a/htdocs/langs/pl_PL/ecm.lang b/htdocs/langs/pl_PL/ecm.lang index afbfd79b5a1..3c28051bc90 100644 --- a/htdocs/langs/pl_PL/ecm.lang +++ b/htdocs/langs/pl_PL/ecm.lang @@ -32,11 +32,11 @@ ECMDocsByProducts=Dokumenty powiązane z produktami ECMDocsByProjects=Dokumenty powiązane z projektami ECMDocsByUsers=Dokumenty powiązane z użytkownikami ECMDocsByInterventions=Dokumenty powiązane z interwencjami -ECMDocsByExpenseReports=Documents linked to expense reports +ECMDocsByExpenseReports=Dokumenty dołączone do raportów kosztowych ECMNoDirectoryYet=Brak utworzonego katalogu ShowECMSection=Pokaż katalog DeleteSection=Usuń katalog -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Czy możesz potwierdzić usunięcie katalogu %s? ECMDirectoryForFiles=Pokrewny katalog dla plików CannotRemoveDirectoryContainsFiles=Usunięcie nie możliwe, ponieważ zawiera on pewne pliki ECMFileManager=Menedżer plików diff --git a/htdocs/langs/pl_PL/exports.lang b/htdocs/langs/pl_PL/exports.lang index 2fd9c9a2428..00691647d92 100644 --- a/htdocs/langs/pl_PL/exports.lang +++ b/htdocs/langs/pl_PL/exports.lang @@ -13,7 +13,7 @@ NotImportedFields=Obszary plik przywożonych źródła nie SaveExportModel=Zapisz ten profil eksportu jeśli masz zamiar ponownie go użyć... SaveImportModel=Zapisz ten profil eksportu jeśli masz zamiar ponownie go użyć... ExportModelName=Nazwa profilu eksportowego -ExportModelSaved=Eksport profil zapisany pod nazwą %s. +ExportModelSaved=Eksportuj profil zapisany pod nazwą %s ExportableFields=Wywóz pola ExportedFields=Eksportowane pola ImportModelName=Importuj nazwę profilu @@ -36,7 +36,7 @@ FormatedExportDesc2=Pierwszym krokiem jest wybór predefiniowanego zbioru danych FormatedExportDesc3=Kiedy dane do eksportu sa zaznaczone, możesz zdefinować format pliku wyjściowego, do któego chcesz eksportować dane Sheet=Arkusz NoImportableData=Nr przywozowe danych (bez modułu z definicji pozwalają na import danych) -FileSuccessfullyBuilt=File generated +FileSuccessfullyBuilt=Wygenerowano plik SQLUsedForExport=Zapytanie SQL wykorzystywane do budowania pliku eksportu LineId=Identyfikator linii LineLabel=Etykieta linii @@ -89,7 +89,7 @@ YouCanUseImportIdToFindRecord=You can find all imported record in your database NbOfLinesOK=Liczba linii bez błędów i żadnych ostrzeżeń: %s. NbOfLinesImported=Liczba linii zaimportowany: %s. DataComeFromNoWhere=Wartości, aby dodać pochodzi z nigdzie w pliku źródłowym. -DataComeFromFileFieldNb=Wartości, aby dodać pochodzi z %s numer pola w pliku źródłowym. +DataComeFromFileFieldNb=Wartość do dodania pochodzi z pola numer %s w pliku źródłowym. DataComeFromIdFoundFromRef=Wartość, która pochodzi z %s numer dziedzinie pliku źródłowego zostaną wykorzystane w celu znalezienia id rodzica obiektu do użytkowania (So %s objet że ma ref. Od pliku źródłowego musi istnieć w Dolibarr). DataComeFromIdFoundFromCodeId=Kod, który pochodzi z numeru pola% s w pliku źródłowym zostaną wykorzystane, aby znaleźć identyfikator obiektu nadrzędnego w użyciu (Tak Kod z pliku źródłowego musi istnieje w słowniku% s). Zauważ, że jeśli wiesz, id, można również użyć go do pliku źródłowego zamiast kodu. Import powinien pracować w obu przypadkach. DataIsInsertedInto=Dane pochodzące z pliku źródłowego zostaną wstawione w następujące pola: @@ -110,13 +110,24 @@ Enclosure=Ogrodzenie SpecialCode=Specjalny kod ExportStringFilter=%% Umożliwia zastąpienie jednego lub więcej znaków w tekście ExportDateFilter=YYYY, RRRRMM, RRRRMMDD: filtry o rok / miesiąc / dzień
RR + YYYY, RRRRMM + RRRRMM, RRRRMMDD + RRRRMMDD: Filtry ponad szeregu lat / miesięcy / dni
> YYYY> RRRRMM,> yyyymmdd: filtry na wszystkich kolejnych lat / miesięcy / dni
Filtry "NNNNN + NNNNN" ponad zakres wartości
"> NNNNN" filtry według niższej wartości
"> NNNNN" filtry według wyższych wartości -ImportFromLine=Import starting from line number -EndAtLineNb=End at line number -SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines -KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values +ImportFromLine=Import rozpocznij od linii numer +EndAtLineNb=Zakończ na linii numer +ImportFromToLine=Importu linie numer (do - do) +SetThisValueTo2ToExcludeFirstLine=Przykładowo ustawa wartość na 3, aby wykluczyć 2 pierwsze linie +KeepEmptyToGoToEndOfFile=Pozostaw to pole puste, aby przejść na koniec pliku +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Użytkownicy (pracownicy lub nie) i ustawienia +ComputedField=Computed field ## filters -SelectFilterFields=Jeśli chcesz filtrować niektóre wartości, wartości po prostu wejść tutaj. +SelectFilterFields=Jeśli chcesz filtrować po jakiś wartościach, po po prostu podaj wartości tutaj. FilteredFields=Filtrowane pola -FilteredFieldsValues=Wart filtru +FilteredFieldsValues=Wartość dla filtra FormatControlRule=Zasada kontroli formatu +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=ilość wprowadzonych linii: %s +NbUpdate=Ilość zaktualizowanych linii: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/pl_PL/ftp.lang b/htdocs/langs/pl_PL/ftp.lang index ffaa22e553b..6142d4b1928 100644 --- a/htdocs/langs/pl_PL/ftp.lang +++ b/htdocs/langs/pl_PL/ftp.lang @@ -2,12 +2,12 @@ FTPClientSetup=Konfiguracja modułu klienta FTP NewFTPClient=Konfiguracja nowego połączenia FTP FTPArea=Obszar FTP -FTPAreaDesc=Ten ekran pokazuje zawartość serwera FTP w celu +FTPAreaDesc=Ten ekran pokazuje zawartość widoku serwera FTP SetupOfFTPClientModuleNotComplete=Konfiguracja modułu klienta FTP wydaje się być niekompletna FTPFeatureNotSupportedByYourPHP=PHP nie obsługuje funkcji FTP FailedToConnectToFTPServer=Nie udało się połączyć z serwerem FTP (%s serwera, %s port) FailedToConnectToFTPServerWithCredentials=Nie udało się zalogować do serwera FTP ze zdefiniowanym użytkownikiem/hasłem -FTPFailedToRemoveFile=Nie udało się usunąć pliku %s. +FTPFailedToRemoveFile=Nie udało się usunąć pliku %s. FTPFailedToRemoveDir=Nie udało się usunąć katalogu %s (Sprawdź uprawnienia i czy katalog jest pusty) FTPPassiveMode=Tryb pasywny ChooseAFTPEntryIntoMenu=Wybierz pozycję FTP w menu... diff --git a/htdocs/langs/pl_PL/holiday.lang b/htdocs/langs/pl_PL/holiday.lang index 53816dde284..938cc92e965 100644 --- a/htdocs/langs/pl_PL/holiday.lang +++ b/htdocs/langs/pl_PL/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Odwołany RefuseCP=Odmówił ValidatorCP=Approbator ListeCP=Lista urlopów -ReviewedByCP=Zostanie rozpatrzony przez +ReviewedByCP=Will be approved by DescCP=Opis SendRequestCP=Tworzenie wniosku urlopowego DelayToRequestCP=Zostawić wnioski muszą być wykonane co ​​najmniej% s dzień (dni) przed nimi. diff --git a/htdocs/langs/pl_PL/hrm.lang b/htdocs/langs/pl_PL/hrm.lang index d1f43fa807c..4d702bb81fa 100644 --- a/htdocs/langs/pl_PL/hrm.lang +++ b/htdocs/langs/pl_PL/hrm.lang @@ -5,12 +5,12 @@ Establishments=Kierujących Establishment=Kierownictwo NewEstablishment=Nowe kierownictwo DeleteEstablishment=Usuń kierownictwo -ConfirmDeleteEstablishment=Jesteś pewien, że chcesz usunąć to kierownictwo? +ConfirmDeleteEstablishment=Czy na pewno chcesz usunąć to przedsiębiorstwo? OpenEtablishment=Otwórz kierownictwo CloseEtablishment=Zakończ kierownictwo # Dictionary DictionaryDepartment=HR - Lisa departamentów -DictionaryFunction=HR - lista funkcji +DictionaryFunction=HR - Lista funkcji # Module Employees=Zatrudnionych Employee=Pracownik diff --git a/htdocs/langs/pl_PL/install.lang b/htdocs/langs/pl_PL/install.lang index 205f7763e28..3c4d9236bf1 100644 --- a/htdocs/langs/pl_PL/install.lang +++ b/htdocs/langs/pl_PL/install.lang @@ -135,9 +135,10 @@ ShowEditTechnicalParameters=Kliknij tutaj, aby pokazać / edytować zaawansowane WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process... ErrorDatabaseVersionForbiddenForMigration=Twoja wersja bazy danych to %s. Ma krytyczną lukę utraty danych jeśli się zmieni struktury na bazie danych, tak jak jest to wymagane podczas procesu migracji. Z tego powodu migracje nie zostaną dopuszczone dopóki nie ulepszysz bazy danych do wyższej wersji (lista znanych wersji z lukami: %s) KeepDefaultValuesWamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. -KeepDefaultValuesDeb=Uzywasz kreatora instalacji dla Linuxa (Ubutu, Debian, Fedora..), więc zaproponowane wartości są zoptymalizowane. Tylko hasło właściciela bazy danych do stworzenia musi być kompletne. Inne parametry zmieniaj TYLKO jeśli wiesz co robisz. +KeepDefaultValuesDeb=Używasz kreatora instalacji Dolibarr z pakietu Linux (Ubutu, Debian, Fedora..), więc zaproponowane wartości są zoptymalizowane. Musisz stworzyć tylko hasło dla właściciela bazy danych. Inne parametry zmieniaj tylko jeśli wiesz co robisz. KeepDefaultValuesMamp=Używasz kreatora instalacji, więc zaproponowane wartości są zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. KeepDefaultValuesProxmox=Możesz skorzystać z kreatora konfiguracji Dolibarr z urządzeniem wirtualnym Proxmox, więc wartości zaproponowane tutaj są już zoptymalizowane. Zmieniaj je tylko jeśli wiesz co robisz. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/pl_PL/interventions.lang b/htdocs/langs/pl_PL/interventions.lang index f484a96ac3c..8bff320d9d6 100644 --- a/htdocs/langs/pl_PL/interventions.lang +++ b/htdocs/langs/pl_PL/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Interwencja %s usunięta InterventionsArea=Obszar interwencji DraftFichinter=Szkic interwencji LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=W ślad za kontakt z klientem # Modele numérotation diff --git a/htdocs/langs/pl_PL/languages.lang b/htdocs/langs/pl_PL/languages.lang index 87eccf9c6e3..6b6e28e4bed 100644 --- a/htdocs/langs/pl_PL/languages.lang +++ b/htdocs/langs/pl_PL/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Niemiecki Language_de_AT=Niemiecki (Austria) Language_de_CH=Niemiecki (Szwajcaria) Language_el_GR=Grecki +Language_el_CY=Grecki (Cypr) Language_en_AU=Angielski (Australia) Language_en_CA=Angielski (Kanada) Language_en_GB=Angielski (Zjednoczone Królestwo) @@ -26,12 +27,14 @@ Language_es_BO=Hiszpański (Boliwia) Language_es_CL=Hiszpański (Chile) Language_es_CO=Hiszpański (Kolumbia) Language_es_DO=Hiszpański (Dominikana) +Language_es_EC=Hiszpański (Ewkador) Language_es_HN=Hiszpański (Honduras) Language_es_MX=Hiszpański (Meksyk) +Language_es_PA=Hiszpański (Panama) Language_es_PY=Hiszpański (Paragwaj) Language_es_PE=Hiszpański (Peru) Language_es_PR=Hiszpański (Portoryko) -Language_es_VE=Spanish (Venezuela) +Language_es_VE=Hiszpański (Wenezuela) Language_et_EE=Estoński Language_eu_ES=Baskijski Language_fa_IR=Perski @@ -50,12 +53,14 @@ Language_is_IS=Islandzki Language_it_IT=Włoski Language_ja_JP=Japoński Language_ka_GE=Gruziński +Language_km_KH=Khmerski Language_kn_IN=Kannara Language_ko_KR=Koreański Language_lo_LA=Laotański Language_lt_LT=Litewski Language_lv_LV=Łotewski Language_mk_MK=Macedoński +Language_mn_MN=Mongolski Language_nb_NO=Norweski (Bokmål) Language_nl_BE=Holenderski (Belgia) Language_nl_NL=Holenderski (Holandia) diff --git a/htdocs/langs/pl_PL/ldap.lang b/htdocs/langs/pl_PL/ldap.lang index 0d27d367ccc..3d91e15b691 100644 --- a/htdocs/langs/pl_PL/ldap.lang +++ b/htdocs/langs/pl_PL/ldap.lang @@ -13,10 +13,10 @@ LDAPUsers=Użytkowników w bazie danych LDAP LDAPFieldStatus=Stan LDAPFieldFirstSubscriptionDate=Pierwsze subskrypcji daty LDAPFieldFirstSubscriptionAmount=Pierwsza subskrypcja kwoty -LDAPFieldLastSubscriptionDate=Latest subscription date +LDAPFieldLastSubscriptionDate=Data ostatniej subskrypcji LDAPFieldLastSubscriptionAmount=Latest subscription amount -LDAPFieldSkype=Skype id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldSkype=ID Skype +LDAPFieldSkypeExample=Przykład: nazwaSkype UserSynchronized=Użytkownik zsynchronizowany GroupSynchronized=Grupa zsynchronizowana MemberSynchronized=Państwa zsynchronizowane diff --git a/htdocs/langs/pl_PL/link.lang b/htdocs/langs/pl_PL/link.lang index 36d910509b7..4da60227bfa 100644 --- a/htdocs/langs/pl_PL/link.lang +++ b/htdocs/langs/pl_PL/link.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - languages LinkANewFile=Podepnij nowy plik/dokument -LinkedFiles=Podepnij pliki i dokumenty +LinkedFiles=Podpięte pliki i dokumenty NoLinkFound=Brak zarejestrowanych linków LinkComplete=Plik został podlinkowany poprawnie ErrorFileNotLinked=Plik nie mógł zostać podlinkowany LinkRemoved=Link %s został usunięty ErrorFailedToDeleteLink= Niemożna usunąc linku '%s' ErrorFailedToUpdateLink= Niemożna uaktualnić linku '%s' -URLToLink=Adres URL do połączenia +URLToLink=Adres URL linka diff --git a/htdocs/langs/pl_PL/loan.lang b/htdocs/langs/pl_PL/loan.lang index 6dcd3c9e12b..34c2b635182 100644 --- a/htdocs/langs/pl_PL/loan.lang +++ b/htdocs/langs/pl_PL/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=% s zostanie przeznaczona INTERESÓW GoToPrincipal=% s zostanie przeznaczona PODSTAWOWA YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Konfiguracja modułu kredytu LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/pl_PL/mails.lang b/htdocs/langs/pl_PL/mails.lang index 3672b44bbed..115d4131d4a 100644 --- a/htdocs/langs/pl_PL/mails.lang +++ b/htdocs/langs/pl_PL/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Wysłane częściowo MailingStatusSentCompletely=Wysłane całkowicie MailingStatusError=Błąd MailingStatusNotSent=Nie wysłano -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Mailing pomyślnie zweryfikowany MailUnsubcribe=Wypisz MailingStatusNotContact=Nie kontaktuj się więcej @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linia w pliku %s @@ -116,12 +120,12 @@ Notifications=Powiadomienia NoNotificationsWillBeSent=Brak planowanych powiadomień mailowych dla tego wydarzenia i firmy ANotificationsWillBeSent=1 zgłoszenie zostanie wysłane pocztą elektroniczną SomeNotificationsWillBeSent=%s powiadomienia będą wysyłane przez e-mail -AddNewNotification=Aktywuj nowy cel powiadomienia e-mail -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista wszystkich powiadomień wysłanych maili MailSendSetupIs=Konfiguracja poczty e-mail wysyłającego musi być połączone z '% s'. Tryb ten może być wykorzystywany do wysyłania masowego wysyłania. MailSendSetupIs2=Najpierw trzeba przejść, z konta administratora, w menu% sHome - Ustawienia - e-maile% s, aby zmienić parametr '% s' na tryb '% s' używać. W tym trybie można wprowadzić ustawienia serwera SMTP dostarczonych przez usługodawcę internetowego i używać funkcji e-maila Mszę św. -MailSendSetupIs3=Jeśli masz jakieś pytania na temat jak skonfigurować serwer SMTP, możesz poprosić o% s. +MailSendSetupIs3=Jeśli masz jakieś pytania na temat konfiguracji serwera SMTP, możesz zapytać %s. YouCanAlsoUseSupervisorKeyword=Możesz również dodać __SUPERVISOREMAIL__ słów kluczowych posiadania e-mail są wysyłane do opiekuna użytkownika (działa tylko wtedy, gdy e-mail jest określona w tym przełożonego) NbOfTargetedContacts=Aktualna liczba ukierunkowanych maili kontaktowych UseFormatFileEmailToTarget=Imported file must have format email;name;firstname;other diff --git a/htdocs/langs/pl_PL/main.lang b/htdocs/langs/pl_PL/main.lang index 249acebddcf..59ab6f9a956 100644 --- a/htdocs/langs/pl_PL/main.lang +++ b/htdocs/langs/pl_PL/main.lang @@ -72,8 +72,10 @@ SeeHere=Zobacz tutaj Apply=Zastosuj BackgroundColorByDefault=domyślny kolor tła FileRenamed=The file was successfully renamed -FileUploaded=Plik został pomyślnie przesłany FileGenerated=Plik został wygenerowany pomyślnie +FileSaved=The file was successfully saved +FileUploaded=Plik został pomyślnie przesłany +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Wybrano pliku do zamontowaia, ale jeszcze nie wysłano. W tym celu wybierz opcję "dołącz plik". NbOfEntries=Liczba wejść GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Razem RE TotalLT2ES=Razem IRPF HT=Bez VAT TTC= z VAT +INCT=Inc. all taxes VAT=Stawka VAT VATs=Podatek od sprzedaży LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=paź MonthShort11=lis MonthShort12=gru AttachedFiles=Dołączone pliki i dokumenty -FileTransferComplete=Plik został przesłany poprawnie DateFormatYYYYMM=RRRR-MM DateFormatYYYYMMDD=RRRR-MM-DD DateFormatYYYYMMDDHHMM=RRRR-MM-DD GG: SS diff --git a/htdocs/langs/pl_PL/margins.lang b/htdocs/langs/pl_PL/margins.lang index 3ccf8d1e0cb..b8e47920189 100644 --- a/htdocs/langs/pl_PL/margins.lang +++ b/htdocs/langs/pl_PL/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Stawka musi być wartością liczbową markRateShouldBeLesserThan100=Stopa znak powinien być niższy niż 100 ShowMarginInfos=Pokaż informacje o marżę CheckMargins=Szczegóły marż -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/pl_PL/members.lang b/htdocs/langs/pl_PL/members.lang index 53fb5bf1c65..c0829646949 100644 --- a/htdocs/langs/pl_PL/members.lang +++ b/htdocs/langs/pl_PL/members.lang @@ -2,75 +2,75 @@ MembersArea=Strefa MemberCard=Państwa karty SubscriptionCard=Subskrypcja karty -Member=Państwa +Member=Członek Members=Członkowie -ShowMember=Pokaż Państwa karty +ShowMember=Pokaż kartę członka UserNotLinkedToMember=Użytkownik nie wiąże się z członkiem ThirdpartyNotLinkedToMember=Innej firmy nie związane z członkiem MembersTickets=Członkowie Bilety -FundationMembers=Fundacja użytkowników +FundationMembers=Członkowie fundacji ListOfValidatedPublicMembers=Wykaz zatwierdzonych publicznej użytkowników -ErrorThisMemberIsNotPublic=Członek ten nie jest publicznie dostępna +ErrorThisMemberIsNotPublic=Ten członek nie jest publiczny ErrorMemberIsAlreadyLinkedToThisThirdParty=Inny członek (nazwa: %s, zaloguj się: %s) jest już związany z osobą trzecią %s. Usunięcie tego linku pierwsze, ponieważ jedna trzecia strona nie może być powiązana tylko z członkiem (i odwrotnie). ErrorUserPermissionAllowsToLinksToItselfOnly=Ze względów bezpieczeństwa, musisz być przyznane uprawnienia do edycji wszystkich użytkowników, aby można było powiązać członka do użytkownika, który nie jest twoje. ThisIsContentOfYourCard=Hi.

This is a remind of the information we get about you. Feel free to contact us if something looks wrong.

CardContent=Treść Twojej karty członka -SetLinkToUser=Link do Dolibarr użytkownika +SetLinkToUser=Link do użytkownika Dolibarr SetLinkToThirdParty=Link do Dolibarr trzeciej MembersCards=Członkowie wydruku karty MembersList=Lista członków -MembersListToValid=Lista członków projektu (być weryfikowane) +MembersListToValid=Lista szkiców członków (do zatwierdzenia) MembersListValid=Wykaz ważnych członków -MembersListUpToDate=Wykaz ważnych członków aktualne subskrypcji -MembersListNotUpToDate=Wykaz ważnych członków z subskrypcji nieaktualne +MembersListUpToDate=Lista zatwierdzonych członków z ważną datą subskrypcji +MembersListNotUpToDate=Lista zatwierdzonych członków z nieważną datą subskrypcji MembersListResiliated=List of terminated members MembersListQualified=Lista członków wykwalifikowanych -MenuMembersToValidate=Projekt użytkowników -MenuMembersValidated=Zatwierdzona użytkowników -MenuMembersUpToDate=Aktualnych członków -MenuMembersNotUpToDate=Nieaktualne użytkowników -MenuMembersResiliated=Terminated members +MenuMembersToValidate=Projekt członków +MenuMembersValidated=Zatwierdzeni członkowie +MenuMembersUpToDate=Aktualni członkowie +MenuMembersNotUpToDate=Nieaktualni człokowie +MenuMembersResiliated=członkowie zakończone MembersWithSubscriptionToReceive=Użytkownicy z subskrypcji otrzymują -DateSubscription=Subskrypcja daty -DateEndSubscription=Data zakończenia subskrypcji +DateSubscription=Data subskrypcji +DateEndSubscription=Data końca subskrypcji EndSubscription=Koniec subskrypcji -SubscriptionId=Subskrypcja id -MemberId=Państwa id +SubscriptionId=ID subskrypcji +MemberId=ID członka NewMember=Nowy członek -MemberType=Państwa typ -MemberTypeId=Państwa typu identyfikatora -MemberTypeLabel=Państwa typu etykiety -MembersTypes=Członkowie typy -MemberStatusDraft=Projekt (musi zostać zatwierdzone) -MemberStatusDraftShort=Aby potwierdzić -MemberStatusActive=Zatwierdzona (oczekujących subskrypcji) -MemberStatusActiveShort=Zatwierdzona +MemberType=Typ członka +MemberTypeId=ID typu członka +MemberTypeLabel=Etykieta typu członka +MembersTypes=Typy członków +MemberStatusDraft=Projekt (do zatwierdzonia) +MemberStatusDraftShort=Projekt +MemberStatusActive=Zatwierdzony (oczekuje subskrypcji) +MemberStatusActiveShort=Zatwierdzony MemberStatusActiveLate=Subscription expired -MemberStatusActiveLateShort=Minął +MemberStatusActiveLateShort=Wygasł MemberStatusPaid=Subskrypcja aktualne MemberStatusPaidShort=Aktualne MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated -MembersStatusToValid=Projekt użytkowników -MembersStatusResiliated=Terminated members +MembersStatusToValid=Projekt członków +MembersStatusResiliated=członkowie zakończone NewCotisation=Nowe Wkład PaymentSubscription=Nowy wkład płatności SubscriptionEndDate=Data zakończenia subskrypcji -MembersTypeSetup=Członkowie typu instalacji +MembersTypeSetup=Ustawienie typu członka NewSubscription=Nowa subskrypcja NewSubscriptionDesc=Ta forma pozwala na nagrywanie abonament jako nowy członek fundacji. Jeśli chcesz odnowić subskrypcję (jeśli jest już członkiem), prosimy o kontakt z Rady Fundacji zamiast e-mailem %s. Subscription=Subskrypcja Subscriptions=Subskrypcje SubscriptionLate=Późno -SubscriptionNotReceived=Subskrypcja nigdy nie otrzymały +SubscriptionNotReceived=Subskrypcja nigdy nieotrzymana ListOfSubscriptions=Lista subskrypcji -SendCardByMail=Wyślij kartę -AddMember=Tworzenie elementu +SendCardByMail=Wyślij kartę przez email +AddMember=Utwórz członka NoTypeDefinedGoToSetup=Żaden członek typów zdefiniowanych. Przejdź do konfiguracji - Członkowie typy -NewMemberType=Nowy członek typu -WelcomeEMail=Zapraszamy e-mail -SubscriptionRequired=Subskrypcja wymagane -DeleteType=Usunąć +NewMemberType=Nowy typ członka +WelcomeEMail=Email powitalny +SubscriptionRequired=Subskrypcja wymagana +DeleteType=Usuń VoteAllowed=Głosowanie dozwolone Physical=Fizyczne Moral=Moralny @@ -79,29 +79,30 @@ Reenable=Ponownym włączeniu ResiliateMember=Terminate a member ConfirmResiliateMember=Are you sure you want to terminate this member? DeleteMember=Usuń członka -ConfirmDeleteMember=Are you sure you want to delete this member (Deleting a member will delete all his subscriptions)? -DeleteSubscription=Usuwanie subskrypcji -ConfirmDeleteSubscription=Are you sure you want to delete this subscription? +ConfirmDeleteMember=Czy jesteś pewien, ze chcesz usunąć tego członka (Usunięcie członka spowoduje usunięcie wszystkich jego subskrypcji)? +DeleteSubscription=Usuń subskrypcję +ConfirmDeleteSubscription=Czy jesteś pewien, że chcesz usunąć tą subskrypcję? Filehtpasswd=htpasswd plik ValidateMember=Validate członkiem -ConfirmValidateMember=Are you sure you want to validate this member? +ConfirmValidateMember=Czy jesteś pewien, że chcesz zatwierdzić tego członka? FollowingLinksArePublic=Poniższe linki są otwarte strony nie są chronione przez jakiekolwiek Dolibarr zgody. Nie są one sformtowany strony, pod warunkiem, jako przykład pokazuje jak lista użytkowników bazy danych. PublicMemberList=Publicznego liście członków BlankSubscriptionForm=Formularz subskrypcji BlankSubscriptionFormDesc=Dolibarr może zapewnić publiczny adres URL, aby osoby z zewnątrz, aby zapytać zapisać się do fundacji. Jeśli moduł płatności on-line jest włączona, forma płatności zostanie również automatycznie dostarczane. EnablePublicSubscriptionForm=Umożliwić społeczeństwu auto subskrypcji formularz +ForceMemberType=Force the member type ExportDataset_member_1=Członkowie i abonamentów -ImportDataset_member_1=Użytkownicy +ImportDataset_member_1=Członkowie LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions -String=String +String=Ciąg znaków Text=Tekst Int=Int. DateAndTime=Data i czas PublicMemberCard=Państwa publiczne karty SubscriptionNotRecorded=Subscription not recorded AddSubscription=Tworzenie subskrypcji -ShowSubscription=Pokaż subskrypcji +ShowSubscription=Pokaż sybskrypcje SendAnEMailToMember=Wyślij e-mail informacji na członka DescADHERENT_AUTOREGISTER_NOTIF_MAIL_SUBJECT=Temat wiadomości e-mail otrzymane w przypadku automatycznego napisem gość DescADHERENT_AUTOREGISTER_NOTIF_MAIL=E-mail otrzymane w przypadku automatycznego napisem gość @@ -135,8 +136,8 @@ LinkToGeneratedPagesDesc=Ekran ten umożliwia generowanie plików PDF z wizytów DocForAllMembersCards=Generowanie wizytówek dla wszystkich członków (Format wyjściowy rzeczywiście setup: %s) DocForOneMemberCards=Generowanie wizytówki dla danego użytkownika (Format wyjściowy rzeczywiście setup: %s) DocForLabels=Generowanie arkuszy adres (Format wyjściowy rzeczywiście setup: %s) -SubscriptionPayment=Płatność Subskrypcja -LastSubscriptionDate=Latest subscription date +SubscriptionPayment=Zaplanowana płatność +LastSubscriptionDate=Data ostatniej subskrypcji LastSubscriptionAmount=Latest subscription amount MembersStatisticsByCountries=Użytkownicy statystyki według kraju MembersStatisticsByState=Użytkownicy statystyki na State / Province @@ -150,6 +151,7 @@ MembersByTownDesc=Ten ekran pokaże statystyki członkom przez miasto. MembersStatisticsDesc=Wybierz statystyki chcesz czytać ... MenuMembersStats=Statystyka LastMemberDate=Latest member date +LatestSubscriptionDate=Data ostatniej subskrypcji Nature=Natura Public=Informacje są publiczne NewMemberbyWeb=Nowy członek dodaje. Oczekuje na zatwierdzenie diff --git a/htdocs/langs/pl_PL/modulebuilder.lang b/htdocs/langs/pl_PL/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/pl_PL/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/pl_PL/multicurrency.lang b/htdocs/langs/pl_PL/multicurrency.lang new file mode 100644 index 00000000000..e8112c3d680 --- /dev/null +++ b/htdocs/langs/pl_PL/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Kwota płatności, oryginalna waluta diff --git a/htdocs/langs/pl_PL/oauth.lang b/htdocs/langs/pl_PL/oauth.lang index af64b116f7a..3ae3f9be30e 100644 --- a/htdocs/langs/pl_PL/oauth.lang +++ b/htdocs/langs/pl_PL/oauth.lang @@ -1,21 +1,25 @@ # Dolibarr language file - Source file is en_US - oauth ConfigOAuth=Konfiguracja Oauth OAuthServices=OAuth services -ManualTokenGeneration=Manual token generation +ManualTokenGeneration=Ręczne generowanie tokena +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=Brak tokenu zapisanego w lokalnej bazie danych HasAccessToken=Token wygenerowano i zapisano w lokalnej bazie danych -NewTokenStored=Token odebrano i zapisano -ToCheckDeleteTokenOnProvider=Aby sprawdzić / usuń zezwolenia uratował% s dostawcy OAuth +NewTokenStored=Token odebrany i zapisany +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token usunięto RequestAccess=Kliknij tutaj w celu wysłania zapotrzebowania/odnowienia dostępu i otrzymania nowego tokena. DeleteAccess=Kliknuj tutaj, aby usunąć token UseTheFollowingUrlAsRedirectURI=Użyj następującego adresu URL jako Przekierowanie URI podczas tworzenia poświadczeń dostawcy OAuth: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= -TOKEN_REFRESH=Token Refresh Present +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret +TOKEN_REFRESH=Reklamowe Odśwież Present TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token +TOKEN_EXPIRE_AT=Token wygaśnie za +TOKEN_DELETE=Usuń zachowany token OAUTH_GOOGLE_NAME=Oauth Google service OAUTH_GOOGLE_ID=Oauth Google Id OAUTH_GOOGLE_SECRET=Oauth Google Secret diff --git a/htdocs/langs/pl_PL/opensurvey.lang b/htdocs/langs/pl_PL/opensurvey.lang index 481c1f43a6a..1fc27d98057 100644 --- a/htdocs/langs/pl_PL/opensurvey.lang +++ b/htdocs/langs/pl_PL/opensurvey.lang @@ -54,6 +54,6 @@ BackToCurrentMonth=Powrót do bieżącego miesiąca ErrorOpenSurveyFillFirstSection=Nie zapełnione pierwszą część tworzenia ankiecie ErrorOpenSurveyOneChoice=Wprowadź co najmniej jeden wybór ErrorInsertingComment=Wystąpił błąd podczas wstawiania komentarz -MoreChoices=Wprowadź więcej możliwości dla wyborców +MoreChoices=Wprowadź więcej możliwości dla głosujących SurveyExpiredInfo=The poll has been closed or voting delay has expired. EmailSomeoneVoted=% S napełnił linię. Możesz znaleźć ankietę na link:% s diff --git a/htdocs/langs/pl_PL/other.lang b/htdocs/langs/pl_PL/other.lang index c7fdc7eecfe..21250e9b65e 100644 --- a/htdocs/langs/pl_PL/other.lang +++ b/htdocs/langs/pl_PL/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=funt +WeightUnitounce=uncja Length=Długość LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/pl_PL/paybox.lang b/htdocs/langs/pl_PL/paybox.lang index cc2c738c37b..e20e7bf55bc 100644 --- a/htdocs/langs/pl_PL/paybox.lang +++ b/htdocs/langs/pl_PL/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail by otrzymać potwierdzenie zapłaty Creditor=Wierzyciel PaymentCode=Kod płatności PayBoxDoPayment=Przejdź do płatności +ToPay=Wykonaj płatność YouWillBeRedirectedOnPayBox=Zostaniesz przekierowany na zabezpieczoną stronę Paybox bys mógł podać informację z karty kredytowej. Continue=Dalej ToOfferALinkForOnlinePayment=URL %s płatności diff --git a/htdocs/langs/pl_PL/paypal.lang b/htdocs/langs/pl_PL/paypal.lang index be71f6540db..1b11053c831 100644 --- a/htdocs/langs/pl_PL/paypal.lang +++ b/htdocs/langs/pl_PL/paypal.lang @@ -1,30 +1,32 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=PayPal konfiguracji modułu -PaypalDesc=Ta oferta moduł stron, umożliwiających płatności w systemie PayPal przez klientów. Może to być wykorzystywane do bezpłatnego opłatę lub wpłaty na konkretnego obiektu Dolibarr (faktura, zamówienie, ...) +PaypalDesc=Ten moduł oferuję stronę pozwalającą na płatności w systemie PayPal przez klientów. Moduł może być wykorzystany do bezpłatnych płatności lub do płatności za określone obiekty Dolibarr (faktury, zamówienie itp.) PaypalOrCBDoPayment=Zapłać kartą kredytową lub poprzez system Paypal PaypalDoPayment=Zapłać z PayPal PAYPAL_API_SANDBOX=Tryb testu / sandbox PAYPAL_API_USER=API użytkownika PAYPAL_API_PASSWORD=API hasło PAYPAL_API_SIGNATURE=Podpis API -PAYPAL_SSLVERSION=Curl SSL Version +PAYPAL_SSLVERSION=Wersja Curl SSL PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferta płatności "integralnej" (Karta kredytowa+Paypal) lub tylko "Paypal" PaypalModeIntegral=Integralny PaypalModeOnlyPaypal=Tylko PayPal -PAYPAL_CSS_URL=Optionnal URL of CSS style sheet on payment page +PAYPAL_CSS_URL=Opcjonalny adres URL arkusza stylów CSS na stronie płatności ThisIsTransactionId=Jest to id transakcji: %s -PAYPAL_ADD_PAYMENT_URL=Dodaj url płatności PayPal podczas wysyłania dokumentów pocztą -PredefinedMailContentLink=Możesz kliknąć na obrazek poniżej bezpiecznego aby dokonać płatności (PayPal), jeśli nie jest już zrobione. % S -YouAreCurrentlyInSandboxMode=Jesteś obecnie w trybie "sandbox" -NewPaypalPaymentReceived=Otrzymał nowe Paypal zapłata -NewPaypalPaymentFailed=Nowe Paypal zapłata próbował, ale nie -PAYPAL_PAYONLINE_SENDEMAIL=Napisz e-mail, aby ostrzec po płatności (sukces lub nie) -ReturnURLAfterPayment=Powrót URL po dokonaniu płatności -ValidationOfPaypalPaymentFailed=Walidacja Paypal płatności zawiodły -PaypalConfirmPaymentPageWasCalledButFailed=Strona potwierdzenia płatności za Paypal został nazwany przez Paypal, ale potwierdzenie nie udało -SetExpressCheckoutAPICallFailed=Połączenie poprzez SetExpressCheckout API nie powiodło się -DoExpressCheckoutPaymentAPICallFailed=Połączenie poprzez DoExpressCheckoutPayment API nie powiodło się. +PAYPAL_ADD_PAYMENT_URL=Dodaj link do płatności PayPal podczas wysyłania dokumentów za pośrednictwem email +PredefinedMailContentLink=Możesz kliknąć na bezpieczny link poniżej aby dokonać płatności (PayPal), jeśli nie jest jeszcze wykonana.\n\n%s\n\n +YouAreCurrentlyInSandboxMode=Jesteś obecnie w trybie "sandbox" +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed +PAYPAL_PAYONLINE_SENDEMAIL=Napisz e-mail, aby poinformować po płatności (sukces lub nie) +ReturnURLAfterPayment=Zwróć adres URL po dokonaniu płatności +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error +SetExpressCheckoutAPICallFailed=Wywołanie API poprzez SetExpressCheckout nie powiodło się +DoExpressCheckoutPaymentAPICallFailed=Wywołanie API poprzez DoExpressCheckoutPayment nie powiodło się. DetailedErrorMessage=Szczegółowa informacja o błędzie ShortErrorMessage=Krotka informacja o błędzie ErrorCode=Kod błędu ErrorSeverityCode=Kod ważności błędu +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/pl_PL/printing.lang b/htdocs/langs/pl_PL/printing.lang index 3aeccf5d1ef..76dd6a3581a 100644 --- a/htdocs/langs/pl_PL/printing.lang +++ b/htdocs/langs/pl_PL/printing.lang @@ -34,10 +34,10 @@ PRINTIPP_PASSWORD=Hasło NoDefaultPrinterDefined=Nie zdefiniowano drukarki domyślnej DefaultPrinter=Drukarka domyślna Printer=Drukarka -IPP_Uri=Drukarka Uri +IPP_Uri=URI drukarki IPP_Name=Nazwa drukarki IPP_State=Stan drukarki -IPP_State_reason=Powodem państwa +IPP_State_reason=powodem stan IPP_State_reason1=Reason1 państwowe IPP_BW=Czarno-Biały IPP_Color=Kolor @@ -45,7 +45,7 @@ IPP_Device=Urządzenie IPP_Media=Nośnik drukarki IPP_Supported=Typ nośnika DirectPrintingJobsDesc=Ta strona pokazuje listę zadań wydruku dla dostępnych drukarek. -GoogleAuthNotConfigured=Ustawienia Google OAuth nie zrobił. Włącz moduł OAuth i ustawić Google ID / tajemnica. -GoogleAuthConfigured=Poświadczenia Google OAuth znaleźć w konfiguracji modułu OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthNotConfigured=Ustawienia Google OAuth nie skończone. Włącz moduł OAuth i ustawić Google ID/Secret. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Zmienne konfiguracyjne dla sterownika drukowania Google Cloud Print. +PrintTestDescprintgcp=Lista drukarek dla Google Cloud Print. diff --git a/htdocs/langs/pl_PL/products.lang b/htdocs/langs/pl_PL/products.lang index 88d3ef02645..418ee96b2b0 100644 --- a/htdocs/langs/pl_PL/products.lang +++ b/htdocs/langs/pl_PL/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produkt lub usługa ProductsAndServices=Produkty i usługi ProductsOrServices=Produkty lub Usługi -ProductsOnSell=Produkt na sprzedaż lub do zakupu -ProductsNotOnSell=Produkt nie na sprzedaż i nie do zakupu +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produkty na sprzedaż i do zakupu -ServicesOnSell=Usługi na sprzedaż lub do zakupu -ServicesNotOnSell=Usługi nie na sprzedaż +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Usługi na sprzedaż i do zakupu LastModifiedProductsAndServices=Ostatnich %s modyfikowanych produktów/usług LastRecordedProducts=Latest %s recorded products @@ -68,26 +70,26 @@ MinPrice=Minimalna cena sprzedaży CantBeLessThanMinPrice=Cena sprzedaży nie może być niższa niż minimalna dopuszczalna dla tego produktu (%s bez podatku). Ten komunikat może się również pojawić po wpisaniu zbyt wysokiego rabatu. ContractStatusClosed=Zamknięte ErrorProductAlreadyExists=Produkt o numerze referencyjnym %s już istnieje. -ErrorProductBadRefOrLabel=Błędna wartość referencyjna lub etykieta. -ErrorProductClone=Podczas próby sklonowania produktu lub usługi wystąpił problem. +ErrorProductBadRefOrLabel=Błędna wartość referencji lub etykiety +ErrorProductClone=Podczas próby powielenia produktu lub usługi wystąpił problem. ErrorPriceCantBeLowerThanMinPrice=Błąd, cena nie może być niższa niż cena minimalna. Suppliers=Dostawcy SupplierRef=Nr referencyjny dostawcy produktu ShowProduct=Pokaż produkt ShowService=Pokaż usługę -ProductsAndServicesArea=Strefa produktów i usług -ProductsArea=Strefa produktów -ServicesArea=Strefa usług +ProductsAndServicesArea=Obszar produktów i usług +ProductsArea=Obszar produktu +ServicesArea=Obszar usług ListOfStockMovements=Wykaz przesunięć magazynowych BuyingPrice=Cena zakupu PriceForEachProduct=Produkt z konkretną ceną SupplierCard=Karta dostawcy PriceRemoved=Cena usunięta -BarCode=Kody kreskowe +BarCode=Kod kreskowy BarcodeType=Typ kodu kreskowego SetDefaultBarcodeType=Ustaw typ kodu kreskowego BarcodeValue=Wartość kodu kreskowego -NoteNotVisibleOnBill=Uwaga (nie widoczna na fakturach, ofertach...) +NoteNotVisibleOnBill=Notatka (nie widoczna na fakturach, ofertach...) ServiceLimitedDuration=Jeśli produkt jest usługą z ograniczonym czasem trwania: MultiPricesAbility=Several segment of prices per product/service (each customer is in one segment) MultiPricesNumPrices=Ilość cen @@ -104,24 +106,24 @@ CategoryFilter=Filtr kategorii ProductToAddSearch=Szukaj produktu do dodania NoMatchFound=Nie znaleziono odpowiednika ListOfProductsServices=List of products/services -ProductAssociationList=Lista produktów/usłu, które są częścią virtualnego produktu/pakietu -ProductParentList=Lista wirtualnych produktów / usług z tym produktem jako komponentem -ErrorAssociationIsFatherOfThis=Jeden z wybranych produktów jest nadrzędny dla produktu bierzącego -DeleteProduct=Usuń produkt / usługę -ConfirmDeleteProduct=Czy na pewno chcesz usunąć ten produkt / usługę? -ProductDeleted=Produktu / usługa " %s" został usunięty z bazy danych. +ProductAssociationList=Lista produktów/usług, które są częścią wirtualnego produktu/pakietu +ProductParentList=Lista wirtualnych produktów/usług z tym produktem jako komponentem +ErrorAssociationIsFatherOfThis=Jeden z wybranych produktów jest nadrzędny dla produktu bieżącego +DeleteProduct=Usuń produkt/usługę +ConfirmDeleteProduct=Czy na pewno chcesz usunąć ten produkt/usługę? +ProductDeleted=Produktu/usługa " %s" został usunięty z bazy danych ExportDataset_produit_1=Produkty ExportDataset_service_1=Usługi ImportDataset_produit_1=Produkty ImportDataset_service_1=Usługi -DeleteProductLine=Usuń linię produktów -ConfirmDeleteProductLine=Czy na pewno chcesz usunąć tę linię produktów? +DeleteProductLine=Usuń linię produktu +ConfirmDeleteProductLine=Czy na pewno chcesz usunąć tę linię produktu? ProductSpecial=Specjalne QtyMin=Ilość minimalna PriceQtyMin=Cena tej min. Ilości (bez rabatu) -VATRateForSupplierProduct=Stawka VAT (dla tego dostawcy / produktu) +VATRateForSupplierProduct=Stawka VAT (dla tego dostawcy/produktu) DiscountQtyMin=Domyślny rabat dla ilości -NoPriceDefinedForThisSupplier=Brak określonej ceny / ilości dla tego dostawcy / produktu +NoPriceDefinedForThisSupplier=Brak określonej ceny/ilości dla tego dostawcy/produktu NoSupplierPriceDefinedForThisProduct=Nie jest określona cena / ilość dostawcy dla tego produktu PredefinedProductsToSell=Predefiniowane sprzedawać produkty PredefinedServicesToSell=Predefiniowane sprzedawać usługi @@ -132,19 +134,19 @@ PredefinedProductsAndServicesToPurchase=Predefiniowane produkty / usługi do puc NotPredefinedProducts=Not predefined products/services GenerateThumb=Wygeneruj miniaturkę ServiceNb=Usługa #%s -ListProductServiceByPopularity=Wykaz produktów / usług ze względu na popularność +ListProductServiceByPopularity=Lista produktów/usług ze względu na popularność ListProductByPopularity=Wykaz produktów ze względu na popularność ListServiceByPopularity=Wykaz usług ze względu na popularność Finished=Produkty wytwarzane RowMaterial=Surowiec CloneProduct=Duplikuj produkt lub usługę ConfirmCloneProduct=Are you sure you want to clone product or service %s? -CloneContentProduct=Sklonuj wszystkie główne informacje dot. produktu / usługi -ClonePricesProduct=Clone główne informacje i ceny +CloneContentProduct=Powiel wszystkie główne informacje produkcie/usłudze +ClonePricesProduct=Powiel główne informacje i ceny CloneCompositionProduct=Powiel pakiet pruduktu/usługi CloneCombinationsProduct=Clone product variants ProductIsUsed=Ten produkt jest używany -NewRefForClone=Ref. nowych produktów / usług +NewRefForClone=Referencja nowego produktu/usługi SellingPrices=Cena sprzedaży BuyingPrices=Cena zakupu CustomerPrices=Ceny klienta @@ -175,10 +177,22 @@ m2=m² m3=m³ liter=litr l=l +unitP=Piece +unitSET=Set +unitS=Sekund +unitH=Godzina +unitD=Dzień +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Szablon numeru referencyjnego dla produktu ServiceCodeModel=Szablon numeru referencyjnego dla usługi CurrentProductPrice=Aktualna cena -AlwaysUseNewPrice=Zawsze używaj aktualnej ceny produktu / usługi +AlwaysUseNewPrice=Zawsze używaj aktualnej ceny produktu/usługi AlwaysUseFixedPrice=Zastosuj stałą cenę PriceByQuantity=Różne ceny według ilości PriceByQuantityRange=Zakres ilości @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% Zmiany na% s PercentDiscountOver=%% Rabatu na% s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produkcja ProductsMultiPrice=Products and prices for each price segment @@ -197,16 +212,16 @@ Quarter2=2-i Kwartał Quarter3=3-i Kwartał Quarter4=4-y Kwartał BarCodePrintsheet=Drukuj kod kreskowy -PageToGenerateBarCodeSheets=Za pomocą tego narzędzia można drukować arkusze naklejek z kodami kreskowymi. Wybierz format strony naklejki, rodzaj kodu kreskowego i wartości kodu kreskowego, a następnie kliknij w przycisk% s. +PageToGenerateBarCodeSheets=Za pomocą tego narzędzia można drukować arkusze naklejek z kodami kreskowymi. Wybierz format naklejki, rodzaj kodu kreskowego i wartość kodu kreskowego, a następnie kliknij %s NumberOfStickers=Ilość naklejek do wydrukowania na stronie -PrintsheetForOneBarCode=Wydrukuj kilka naklejek na jednym kodzie kreskowym +PrintsheetForOneBarCode=Wydrukuj kilka naklejek dla kodu kreskowego BuildPageToPrint=Generowanie strony do druku FillBarCodeTypeAndValueManually=Wypełnij typ kodu kreskowego i wartość ręcznie. FillBarCodeTypeAndValueFromProduct=Wypełnij typ kodu kreskowego i wartości z kodu kreskowego produktu. FillBarCodeTypeAndValueFromThirdParty=Fill barcode type and value from barcode of a third party. -DefinitionOfBarCodeForProductNotComplete=Określenie rodzaju i wartości kodu kreskowego nie kompletnego o produkt% s. +DefinitionOfBarCodeForProductNotComplete=Definicja rodzaju i wartości kodu kreskowego jest niekompletna dla artykułu %s DefinitionOfBarCodeForThirdpartyNotComplete=Definition of type or value of bar code non complete for third party %s. -BarCodeDataForProduct=Informacje o kod kreskowy produktu% s: +BarCodeDataForProduct=Informacje o kodzie kreskowym produktu %s: BarCodeDataForThirdparty=Barcode information of third party %s : ResetBarcodeForAllRecords=Define barcode value for all record (this will also reset barcode value already defined with new values) PriceByCustomer=Different prices for each customer @@ -216,7 +231,7 @@ AddCustomerPrice=Dodaj cenę dla klienta ForceUpdateChildPriceSoc=Ustaw sama cena na zależnych klientów PriceByCustomerLog=Stwórz log z wcześniejszymi cenami dla klienta MinimumPriceLimit=Cena minimalna nie może być niższa niż %s -MinimumRecommendedPrice=Cena minimalna zalecana jest:% s +MinimumRecommendedPrice=Minimalna zalecana cena minimalna: %s PriceExpressionEditor=Edytor Cena wyraz PriceExpressionSelected=Wybrany wyraz cena PriceExpressionEditorHelp1="Cena = 2 + 2" lub "2 + 2" dla ustalenia ceny. Użyj; oddzielić wyrażeń @@ -232,12 +247,18 @@ ComposedProduct=Pod-Produkt MinSupplierPrice=Cena minimalna dostawca MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamiczna konfiguracja cena -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Zmienne globalne VariableToUpdate=Variable to update GlobalVariableUpdaters=Globalne zmienne updaters +GlobalVariableUpdaterType0=Danych JSON +GlobalVariableUpdaterHelp0=Analizuje dane JSON z określonego adresu URL, wartość określa położenie odpowiedniej wartości, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Dane WebService +GlobalVariableUpdaterHelp1=Przetwarza dane WebService z określonego adresu URL, NS określa przestrzeń nazw, wartość określa położenie odpowiedniej wartości, dane powinny zawierać dane do wysyłania i metoda jest wywołanie metody WS +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Aktualizacja co (min) LastUpdated=Latest update CorrectlyUpdated=Poprawnie zaktualizowane @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/pl_PL/propal.lang b/htdocs/langs/pl_PL/propal.lang index ed2fc40e7c7..68c5625c49d 100644 --- a/htdocs/langs/pl_PL/propal.lang +++ b/htdocs/langs/pl_PL/propal.lang @@ -3,7 +3,7 @@ Proposals=Oferty handlowe Proposal=Oferta handlowa ProposalShort=Oferta ProposalsDraft=Szkic ofert handlowych -ProposalsOpened=Czynny propozycji +ProposalsOpened=Otwarte oferty handlowe Prop=Oferty handlowe CommercialProposal=Oferta handlowa ProposalCard=Karta oferty @@ -26,16 +26,16 @@ AmountOfProposalsByMonthHT=Kwota w miesiącu (po odliczeniu podatku) NbOfProposals=Liczba ofert handlowych ShowPropal=Pokaż oferty PropalsDraft=Szkice -PropalsOpened=Otwierany +PropalsOpened=Otwarte PropalStatusDraft=Szkic (musi zostać zatwierdzony) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Podpisano (do rachunku) PropalStatusNotSigned=Nie podpisały (zamknięte) -PropalStatusBilled=Billed +PropalStatusBilled=zapowiadane PropalStatusDraftShort=Szkic PropalStatusClosedShort=Zamknięte -PropalStatusSignedShort=Podpisano -PropalStatusNotSignedShort=Nie podpisała +PropalStatusSignedShort=Podpisany +PropalStatusNotSignedShort=Niepodpisany PropalStatusBilledShort=Billed PropalsToClose=Oferty handlowe do zamknięcia PropalsToBill=Przypisano ofertę handlową do rachunku @@ -64,14 +64,14 @@ AvailabilityPeriod=Opóźnienie w dostępności SetAvailability=Ustaw opóźnienie w dostępności AfterOrder=od zamówienia ##### Availability ##### -AvailabilityTypeAV_NOW=Natychmiastowy +AvailabilityTypeAV_NOW=Natychmiastowo AvailabilityTypeAV_1W=1 tydzień AvailabilityTypeAV_2W=2 tygodnie AvailabilityTypeAV_3W=3 tygodnie AvailabilityTypeAV_1M=1 miesiąc ##### Types de contacts ##### TypeContact_propal_internal_SALESREPFOLL=Przedstawiciela w ślad za wniosek -TypeContact_propal_external_BILLING=kontakt faktury klienta +TypeContact_propal_external_BILLING=Kontakt do klienta w sprawie faktury TypeContact_propal_external_CUSTOMER=kontakt klienta w ślad za wniosek # Document models DocModelAzurDescription=Kompletny wniosek modelu (logo. ..) diff --git a/htdocs/langs/pl_PL/resource.lang b/htdocs/langs/pl_PL/resource.lang index 46e470ec682..e088be54d2d 100644 --- a/htdocs/langs/pl_PL/resource.lang +++ b/htdocs/langs/pl_PL/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Zasoby usunięte poprawnie DictionaryResourceType=Typ zasobów SelectResource=Wybierz zasoby + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Zasoby diff --git a/htdocs/langs/pl_PL/salaries.lang b/htdocs/langs/pl_PL/salaries.lang index ba85a71d279..bc93a2efe44 100644 --- a/htdocs/langs/pl_PL/salaries.lang +++ b/htdocs/langs/pl_PL/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kod rachunkowości dla wypłat -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Kod rachunkowości dla obciązeń finansowych +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Wypłata Salaries=Wypłaty NewSalaryPayment=Nowa wypłata diff --git a/htdocs/langs/pl_PL/sendings.lang b/htdocs/langs/pl_PL/sendings.lang index c7a402a9190..5f5a8da5118 100644 --- a/htdocs/langs/pl_PL/sendings.lang +++ b/htdocs/langs/pl_PL/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Arkusz wysyłki ConfirmDeleteSending=Czy na pewno usunąć tą wysyłkę? ConfirmValidateSending=Czy potwierdzić tą wysyłkę z numerem referencyjnym %s? ConfirmCancelSending=Czy anulować tą wysyłkę? -DocumentModelSimple=Model prostego dokumentu DocumentModelMerou=Model Merou A5 WarningNoQtyLeftToSend=Ostrzeżenie nie produktów oczekujących na wysłanie. StatsOnShipmentsOnlyValidated=Statystyki prowadzone w sprawie przesyłania tylko potwierdzone. Data używany jest data uprawomocnienia przesyłki (planowanym terminem dostawy nie zawsze jest znana). @@ -51,10 +50,10 @@ ActionsOnShipping=Zdarzenia na wysyłce LinkToTrackYourPackage=Link do strony śledzenia twojej paczki ShipmentCreationIsDoneFromOrder=Na ta chwilę, tworzenie nowej wysyłki jest możliwe z karty zamówienia. ShipmentLine=Linia Przesyłka -ProductQtyInCustomersOrdersRunning=Ilość produktów w otwartych zamówieniach klientów -ProductQtyInSuppliersOrdersRunning=Ilość produktów w otwartych zamówieniach dostawców -ProductQtyInShipmentAlreadySent=Ilość produktów już wysłanych z zamówień klientów -ProductQtyInSuppliersShipmentAlreadyRecevied=Ilość produktów już odebranych z zamówień dostawców +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Nie znaleziono produktu do wysyłki w magazynie %s. Popraw zapasy lub cofnij się i wybierz inny magazyn WeightVolShort=Waga/Volumen ValidateOrderFirstBeforeShipment=W pierwszej kolejności musisz zatwierdzić zamówienie, aby mieć możliwość utworzenia wysyłki. diff --git a/htdocs/langs/pl_PL/sms.lang b/htdocs/langs/pl_PL/sms.lang index 3157f726d4a..159623cac61 100644 --- a/htdocs/langs/pl_PL/sms.lang +++ b/htdocs/langs/pl_PL/sms.lang @@ -2,41 +2,41 @@ Sms=Sms SmsSetup=Konfiguracja SMS SmsDesc=Ta strona pozwala na zdefiniowanie globals opcje SMS funkcji -SmsCard=SMS karty -AllSms=Wszystko SMS campains +SmsCard=Karta SMS +AllSms=Wszystkie kampanie SMS SmsTargets=Cele SmsRecipients=Cele SmsRecipient=Cel SmsTitle=Opis SmsFrom=Nadawca SmsTo=Cel -SmsTopic=Wątek SMS +SmsTopic=Temat SMS SmsText=Wiadomość SmsMessage=Wiadomość SMS ShowSms=Pokaż Sms -ListOfSms=Lista SMS campains -NewSms=Nowy SMS cele kampanii -EditSms=Edit Sms +ListOfSms=Lista kampanii SMS +NewSms=Nowa kampania SMS +EditSms=Edytuj SMS ResetSms=Nowe wysyłanie -DeleteSms=Usuń Sms cele kampanii -DeleteASms=Usuwanie sms cele kampanii -PreviewSms=Previuw Sms -PrepareSms=Przygotuj sms +DeleteSms=Skasuj kampanie SMS +DeleteASms=Usuń kampanie SMS +PreviewSms=Przeglądaj SMS +PrepareSms=Przygotuj SMS CreateSms=Utwórz SMS -SmsResult=Wynik wysyłaniu SMS-ów -TestSms=Test Sms -ValidSms=Weryfikacja sms -ApproveSms=Zatwierdza sms +SmsResult=Wynik wysyłania SMS +TestSms=Testuj SMS +ValidSms=Zatwierdź SMS +ApproveSms=Zaakceptuj SMS SmsStatusDraft=Projekt SmsStatusValidated=Zatwierdzone SmsStatusApproved=Zatwierdzony -SmsStatusSent=Wysłane -SmsStatusSentPartialy=Wysłane częściowo -SmsStatusSentCompletely=Wysłane całkowicie +SmsStatusSent=Wyślij +SmsStatusSentPartialy=Wyślij częściowo +SmsStatusSentCompletely=Wyślij całkowicie SmsStatusError=Błąd SmsStatusNotSent=Nie wysłał -SmsSuccessfulySent=Sms poprawnie wysłany (z %s do %s) -ErrorSmsRecipientIsEmpty=Liczba celem jest pusty +SmsSuccessfulySent=SMS poprawnie wysłany (z %s do %s) +ErrorSmsRecipientIsEmpty=Numer odbiorcy jest pusty WarningNoSmsAdded=Nie nowy numer telefonu, aby dodać do listy docelowej ConfirmValidSms=Do you confirm validation of this campain? NbOfUniqueSms=Nb dof unikatowe numery telefonów @@ -45,7 +45,7 @@ ThisIsATestMessage=To jest wiadomość testowa SendSms=Wyślij SMS SmsInfoCharRemain=Nb z pozostałych znaków SmsInfoNumero= (W formacie międzynarodowym np.: +33899701761) -DelayBeforeSending=Opóźnienie przed wysłaniem (minuty) +DelayBeforeSending=Opóźnienie przed wysłaniem (w minutach) SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. -SmsNoPossibleRecipientFound=Żaden cel nie dostępne. Sprawdź konfigurację dostawcy SMS. +SmsNoPossibleRecipientFound=Odbiorca niedostępny. Sprawdź konfigurację dostawcy SMS. diff --git a/htdocs/langs/pl_PL/stocks.lang b/htdocs/langs/pl_PL/stocks.lang index db078319271..e2bbb0fbb65 100644 --- a/htdocs/langs/pl_PL/stocks.lang +++ b/htdocs/langs/pl_PL/stocks.lang @@ -15,7 +15,7 @@ CancelSending=Anuluj wysyłanie DeleteSending=Usuń wysyłanie Stock=Stan Stocks=Stany -StocksByLotSerial=Zapasy wg. lotu/nr seryjnego +StocksByLotSerial=Zapasy według lotu/nr seryjnego LotSerial=Lots/Serials LotSerialList=List of lot/serials Movements=Ruchy @@ -42,7 +42,7 @@ LabelMovement=Etykieta Ruch NumberOfUnit=Liczba jednostek UnitPurchaseValue=Jednostkowa cena nabycia StockTooLow=Zbyt niski zapas -StockLowerThanLimit=Zapas mniejszy niż alarm o zbyt niskim zapasie +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Wartość PMPValue=Wartość PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Produkt akcji i subproduct akcji są niezależne QtyDispatched=Ilość wysyłanych QtyDispatchedShort=Ilość wysyłanych QtyToDispatchShort=Ilość wysyłką -OrderDispatch=Postanowienie wysyłkowe +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Zasady dla automatycznego zarządzania zmniejszeniem zapasu (ręczne zmniejszenie jest zawsze możliwe, nawet gdy automatyczne reguły są aktywne) RuleForStockManagementIncrease=Zasady dla automatycznego zarządzania zwiększaniem zapasu (ręczne zwiększenie jest zawsze możliwe, nawet gdy automatyczne reguły są aktywne) DeStockOnBill=Zmniejsz realne zapasy magazynu po potwierdzeniu faktur / not kredytowych @@ -62,20 +62,23 @@ DeStockOnShipment=Zmniejsz realne zapasy magazynu po potwierdzeniu wysyłki DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Zwiększ realne zapasy magazynu po potwierdzeniu faktur / not kredytowych ReStockOnValidateOrder=Zwiększ realne zapasy magazynu po potwierdzeniu zamówień dostawców -ReStockOnDispatchOrder=Zwiększ realne zapasy w magazynach przy manualnym wysłaniu po odebraniu zamówienia przez dostawcę +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Zamówienie nie jest jeszcze lub nie więcej status, który umożliwia wysyłanie produktów w magazynach czas. -StockDiffPhysicTeoric=Wyjaśnienie różnicy między fizycznym i wirtualnym stanem +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nie gotowych produktów dla tego obiektu. Więc nie w czas wysyłki jest wymagane. DispatchVerb=Wysyłka StockLimitShort=Limit zapasu przy którym wystąpi alarm StockLimit=Limit zapasu przy którym wystąpi alarm PhysicalStock=Fizyczne stany RealStock=Realny magazyn +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Wirtualny zapas +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Identyfikator magazynu -DescWareHouse=Opis składu -LieuWareHouse=Lokalizacja hurtowni -WarehousesAndProducts=Magazyny i produktów +DescWareHouse=Opis magazynu +LieuWareHouse=Lokalizacja magazynu +WarehousesAndProducts=Magazyny i produkty WarehousesAndProductsBatchDetail=Magazyny i produkty (z detalami na lot / serial) AverageUnitPricePMPShort=Średnia cena wejścia AverageUnitPricePMP=Średnia cena wejścia @@ -88,8 +91,8 @@ DeleteAWarehouse=Usuń magazyn ConfirmDeleteWarehouse=Are you sure you want to delete the warehouse %s? PersonalStock=Osobowych %s czas ThisWarehouseIsPersonalStock=Tym składzie przedstawia osobiste zasobów %s %s -SelectWarehouseForStockDecrease=Wybierz magazyn użyć do zmniejszenia czas -SelectWarehouseForStockIncrease=Wybierz magazyn użyć do zwiększenia czas +SelectWarehouseForStockDecrease=Wybierz magazyn do zmniejszenia zapasu +SelectWarehouseForStockIncrease=Wybierz magazyn do zwiększenia zapasu NoStockAction=Brak akcji stock DesiredStock=Pożądany zapas DesiredStockDesc=This stock amount will be the value used to fill the stock by replenishment feature. @@ -98,11 +101,11 @@ Replenishment=Uzupełnianie ReplenishmentOrders=Zamówień towarów VirtualDiffersFromPhysical=According to increase/decrease stock options, physical stock and virtual stock (physical + current orders) may differ UseVirtualStockByDefault=Użyj wirtualnej akcji domyślnie, zamiast fizycznego magazynie, do uzupełniania funkcji -UseVirtualStock=Użyj wirtualnej akcji +UseVirtualStock=Użyj wirtualnego zapasu UsePhysicalStock=Użyj fizycznej akcji CurentSelectionMode=Current selection mode -CurentlyUsingVirtualStock=Wirtualny Zdjęcie -CurentlyUsingPhysicalStock=Zdjęcie fizyczny +CurentlyUsingVirtualStock=Wirtualny zapas +CurentlyUsingPhysicalStock=Fizyczny zapas RuleForStockReplenishment=Reguła dla uzupełnienia zapasów SelectProductWithNotNullQty=Wybierz co najmniej jeden produkt z st not null i dostawcy AlertOnly= Tylko alarmy @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Ilość produktów w magazynie% s przed wybrany okres (< NbOfProductAfterPeriod=Ilość produktów w magazynie% s po wybraniu okres (>% s) MassMovement=Masowe przesunięcie SelectProductInAndOutWareHouse=Wybierz produkt, ilość, magazyn źródłowy i docelowy magazyn, a następnie kliknij przycisk "% s". Po wykonaniu tych wszystkich wymaganych ruchów, kliknij na "% s". -RecordMovement=Rekord transfert +RecordMovement=Record transfer ReceivingForSameOrder=Wpływy do tego celu StockMovementRecorded=Zbiory zapisane ruchy RuleForStockAvailability=Zasady dotyczące dostępności zapasu @@ -124,7 +127,7 @@ StockMustBeEnoughForInvoice=Stock level must be enough to add product/service to StockMustBeEnoughForOrder=Stock level must be enough to add product/service to order (check is done on current real stock when adding a line into order whatever is rule for automatic stock change) StockMustBeEnoughForShipment= Stock level must be enough to add product/service to shipment (check is done on current real stock when adding a line into shipment whatever is rule for automatic stock change) MovementLabel=Etykieta ruchu -InventoryCode=Kod inwentaryzacji +InventoryCode=Ruch lub kod inwentaryzacji IsInPackage=Zawarte w pakiecie WarehouseAllowNegativeTransfer=Zapas nie może być ujemny qtyToTranferIsNotEnough=You don't have enough stock from your source warehouse @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edycja +inventoryValidate=Zatwierdzony +inventoryDraft=Działa +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Utwórz +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filtr kategorii +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Dodać +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Usuń linię +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/pl_PL/stripe.lang b/htdocs/langs/pl_PL/stripe.lang new file mode 100644 index 00000000000..37f855e1354 --- /dev/null +++ b/htdocs/langs/pl_PL/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Nastepujące adresy są dostępne dla klienta, by mógł dokonać płatności za faktury zamówienia +PaymentForm=Forma płatności +WelcomeOnPaymentPage=Witamy w naszej usłudze płatności online +ThisScreenAllowsYouToPay=Ten ekran pozwala na dokonanie płatności on-line do %s. +ThisIsInformationOnPayment=To jest informacja o płatności do zrobienia +ToComplete=Aby zakończyć +YourEMail=E-mail by otrzymać potwierdzenie zapłaty +STRIPE_PAYONLINE_SENDEMAIL=Napisz e-mail, aby poinformować po płatności (sukces lub nie) +Creditor=Wierzyciel +PaymentCode=Kod płatności +StripeDoPayment=Przejdź do płatności +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Dalej +ToOfferALinkForOnlinePayment=URL %s płatności +ToOfferALinkForOnlinePaymentOnOrder=URL zaoferowania %s płatności online interfejsu użytkownika za zamówienie +ToOfferALinkForOnlinePaymentOnInvoice=URL zaoferowania %s płatności online interfejsu użytkownika za fakture +ToOfferALinkForOnlinePaymentOnContractLine=URL zaoferowania płatności online %s interfejsu użytkownika do umowy +ToOfferALinkForOnlinePaymentOnFreeAmount=URL zaoferowania płatności online %s interfejsu użytkownika w celu utworzenia dowolnej kwoty. +ToOfferALinkForOnlinePaymentOnMemberSubscription=Adres URL do zaoferowania płatności online %s interfejs użytkownika jest członkiem subskrypcji +YouCanAddTagOnUrl=Możesz również dodać parametr & url = wartość tagu do żadnej z tych adresów URL (wymagany tylko dla bezpłatnych), aby dodać swój komentarz płatności tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Ta strona potwierdza, że ​​płatność została wprowadzona. Dziękuję. +YourPaymentHasNotBeenRecorded=Twoja płatność nie została wprowadzona i transakcja została anulowana. Dziękuję. +AccountParameter=Parametry konta +UsageParameter=Parametry serwera +InformationToFindParameters=Pomóż znaleźć %s informacje o koncie +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nazwa dostawcy +CSSUrlForPaymentForm=Styl CSS arkuszy dla form płatności +MessageOK=Wiadomość dla zatwierdzonych stron. Powrót do płatności +MessageKO=Wiadomość dla odwołanych stron. Powrót do płatności +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/pl_PL/supplier_proposal.lang b/htdocs/langs/pl_PL/supplier_proposal.lang index 269c1473c2f..32dc595f31d 100644 --- a/htdocs/langs/pl_PL/supplier_proposal.lang +++ b/htdocs/langs/pl_PL/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Znajdź zapytanie DraftRequests=Projekt zapytania SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Ostatnie %s zapytań o cenę -RequestsOpened=Opened price requests +RequestsOpened=Otwórz zapytanie o cenę SupplierProposalArea=Obszar ofert dostawcy SupplierProposalShort=Oferta dostawcy SupplierProposals=Oferty dostawcy @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Usuń zapytanie ValidateAsk=Zatwierdź zapytanie SupplierProposalStatusDraft=Szkic (musi być zatwierdzony) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Zatwierdzony (zapytanie jest otwarte) SupplierProposalStatusClosed=Zamknięte SupplierProposalStatusSigned=Zaakceptowane SupplierProposalStatusNotSigned=Odrzucony @@ -47,7 +47,7 @@ CommercialAsk=Zapytanie o cenę DefaultModelSupplierProposalCreate=Tworzenie modelu domyślnego DefaultModelSupplierProposalToBill=Domyślny szablon podczas zamykania zapytania o cenę (przyjęte) DefaultModelSupplierProposalClosed=Domyślny szablon podczas zamykania zapytania o cenę (odmówienie) -ListOfSupplierProposal=Lista wniosków wniosku dostawca +ListOfSupplierProposals=Lista wniosków wniosku dostawca ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/pl_PL/suppliers.lang b/htdocs/langs/pl_PL/suppliers.lang index 7a5a8312c49..814a0c36f09 100644 --- a/htdocs/langs/pl_PL/suppliers.lang +++ b/htdocs/langs/pl_PL/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Niektóre podprodukty nie mają zdefiniowanych cen AddSupplierPrice=Dodaj cenę zakupu ChangeSupplierPrice=Zmień cenę zakupu +SupplierPrices=Ceny dostawcy ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ten dostawca jest już powiązany z referencją: %s NoRecordedSuppliers=Nie zarejestrowano żadnych dostawców SupplierPayment=Płatność dostawcy @@ -32,7 +33,7 @@ AddSupplierOrder=Stwórz zamówienie dla dostawcy AddSupplierInvoice=Stwórz fakturę dostawcy ListOfSupplierProductForSupplier=Wykaz produktów i cen dostawcy %s SentToSuppliers=Wysyłane do dostawców -ListOfSupplierOrders=Lista zleceń dostawca +ListOfSupplierOrders=Lista zamówień dostawców MenuOrdersSupplierToBill=Zamówienia dostawca do faktury NbDaysToDelivery=Opóźnienie dostawy w dniach DescNbDaysToDelivery=Największe opóźnienie dostawy wśród produktów z tego zamówienia @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Zła jakość ReputationForThisProduct=Reputation BuyerName=Nazwa kupującego AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Ceny dostawcy diff --git a/htdocs/langs/pl_PL/trips.lang b/htdocs/langs/pl_PL/trips.lang index 0ce139baba6..e398803a178 100644 --- a/htdocs/langs/pl_PL/trips.lang +++ b/htdocs/langs/pl_PL/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Wykaz opłat TypeFees=Types of fees ShowTrip=Pokaż raport kosztowy NewTrip=Nowy raport kosztów -CompanyVisited=Firm / fundacji odwiedzonych +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Kwota lub kilometry DeleteTrip=Usuń raport kosztów ConfirmDeleteTrip=Czy usunąć ten raport kosztów? @@ -21,7 +21,17 @@ ListToApprove=Czeka na zaakceptowanie ExpensesArea=Obszar raportów kosztowych ClassifyRefunded=Zakfalifikowano do refundacji. ExpenseReportWaitingForApproval=Nowy raport kosztów został wysłany do zakaceptowania -ExpenseReportWaitingForApprovalMessage=Nowy raport kosztów został wysłany i czeka na zaakceptowanie.\n- Użytkownik: %s\n- Czas: %s\nKliknij tutaj aby sprawdzić: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=ID raportu kosztowego AnyOtherInThisListCanValidate=Osoba do informowania o jej potwierdzenie. TripSociete=Informacje o firmie @@ -59,31 +69,24 @@ DATE_REFUS=Data odmowy DATE_SAVE=Data zatwierdzenia DATE_CANCEL=Data anulowania DATE_PAIEMENT=Data płatności - BROUILLONNER=Otworzyć na nowo +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Zatwierdź i wyślij do zaakceptowania ValidatedWaitingApproval=Zatwierdzony (czeka na zaakceptowanie) - NOT_AUTHOR=Nie jesteś autorem tego raportu kosztowego. Operacja anulowana. - ConfirmRefuseTrip=Czy odrzucić ten raport kosztów? - ValideTrip=Zatwierdzić raport wydatków ConfirmValideTrip=Czy zaakceptować ten raport kosztów? - PaidTrip=Zapłać raport wydatków ConfirmPaidTrip=Czy zmienić status tego raportu kosztów na "Zapłacone"? - ConfirmCancelTrip=Czy anulować ten raport kosztów? - BrouillonnerTrip=Cofnij raport kosztów do statusu "Szkic" ConfirmBrouillonnerTrip=Czy zmienić status tego raportu kosztów na "Szkic"? - SaveTrip=Weryfikacja raportu wydatków ConfirmSaveTrip=Czy zatwierdzić ten raport kosztów? - NoTripsToExportCSV=Brak raportu kosztowego to eksportowania za ten okres czasu. ExpenseReportPayment=Płatność Raport wydatek - ExpenseReportsToApprove=Raporty kosztów do zaakceptowania ExpenseReportsToPay=Raporty kosztowe do zapłaty +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/pl_PL/users.lang b/htdocs/langs/pl_PL/users.lang index 248202753e8..368a4496299 100644 --- a/htdocs/langs/pl_PL/users.lang +++ b/htdocs/langs/pl_PL/users.lang @@ -66,8 +66,8 @@ InternalUser=Wewnętrzny użytkownik ExportDataset_user_1=Dolibarr Użytkownicy i właściwości DomainUser=Domena użytkownika %s Reactivate=Przywraca -CreateInternalUserDesc=Ten formularz pozwala na stworzenie użytkownika wewnętrznego dla twojej firmy/fundacji. Aby utworzyć użytkownika zewnętrznego (klient, dostawca itp.) użyj opcji "Utwórz użytkownika Dolibarr" z karty "Kontrahent" -InternalExternalDesc=Wewnętrzny użytkownik jest użytkownikiem, który jest częścią Twojej firmy / fundacji.
Zewnętrzny użytkownik jest klientem, dostawcą lub innym kontrahentem.

W obu przypadkach uprawnienia określają prawa dostępu do Dolibarr; także zewnętrzny użytkownik może mieć inne menu niż użytkownik wewnętrzny (patrz Strona Główna - Konfiguracja - Wyświetlanie) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Zezwolenie udzielone ponieważ odziedziczył od jednego z użytkowników grupy. Inherited=Odziedziczone UserWillBeInternalUser=Utworzony użytkownik będzie wewnętrzny użytkownik (ponieważ nie związane z konkretnym trzeciej) @@ -75,10 +75,10 @@ UserWillBeExternalUser=Utworzony użytkownik będzie zewnętrzny użytkownik (po IdPhoneCaller=ID dzwoniącego telefonu NewUserCreated=Użytkownik %s tworzone NewUserPassword=Zmiana hasła dla %s -EventUserModified=Użytkownik %s zmodyfikowane -UserDisabled=Użytkownik %s osób niepełnosprawnych +EventUserModified=Użytkownik %s zmodyfikowany +UserDisabled=Użytkownik %s wyłączony UserEnabled=Użytkownik %s aktywowany -UserDeleted=Użytkownik %s usunięto +UserDeleted=Użytkownik %s usunięty NewGroupCreated=Grupa %s utworzona GroupModified=Grupa% s zmodyfikowano GroupDeleted=Grupa %s usunięta @@ -92,12 +92,12 @@ YourQuotaOfUsersIsReached=Limitu aktywnych użytkowników został osiągnięty! NbOfUsers=Ilośc użytkowników DontDowngradeSuperAdmin=Tylko superadmin niższej wersji superadmin HierarchicalResponsible=Kierownik -HierarchicView=Hierarchiczny widok +HierarchicView=Widok hierarchiczny UseTypeFieldToChange=Użyj pola do zmiany Rodzaj OpenIDURL=Adres URL OpenID LoginUsingOpenID=Użyj do logowania OpenID -WeeklyHours=Tygodniowy czas -ColorUser=Kolor użytkownik +WeeklyHours=Godzin tygodniowo +ColorUser=Kolor użytkownika DisabledInMonoUserMode=Disabled in maintenance mode UserAccountancyCode=User accountancy code UserLogoff=User logout diff --git a/htdocs/langs/pl_PL/website.lang b/htdocs/langs/pl_PL/website.lang index 0c5d53db69f..45c4d486172 100644 --- a/htdocs/langs/pl_PL/website.lang +++ b/htdocs/langs/pl_PL/website.lang @@ -4,25 +4,28 @@ WebsiteSetupDesc=Stwórz tyle stron ile potrzebujesz. Następnie przejść do me DeleteWebsite=Skasuj stronę ConfirmDeleteWebsite=Jesteś pewny że chcesz skasować stronę? Całą jej zawartość zostanie usunięta. WEBSITE_PAGENAME=Nazwa strony -WEBSITE_CSS_URL=URL of external CSS file -WEBSITE_CSS_INLINE=CSS content -MediaFiles=Media library -EditCss=Edit Style/CSS +WEBSITE_CSS_URL=URL zewnętrznego pliku CSS +WEBSITE_CSS_INLINE=Zawartość CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +MediaFiles=Biblioteka mediów +EditCss=Edytuj Style/CSS EditMenu=Edytuj Menu EditPageMeta=Edytuj koniec EditPageContent=Edytuj zawartość Website=Strona WWW -Webpage=Web page +Webpage=Strona internetowa AddPage=Dodaj stronę +HomePage=Home Page PreviewOfSiteNotYetAvailable=Podgląd twojej strony %s nie jest jeszcze dostępny. Musisz najpierw dodać stronę. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added -ViewSiteInNewTab=View site in new tab -ViewPageInNewTab=View page in new tab -SetAsHomePage=Set as Home page +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. +PageDeleted=Strona %s portalu %s usunięta +PageAdded=Strona '%s' dodana +ViewSiteInNewTab=Zobacz stronę w nowej zakładce +ViewPageInNewTab=Zobacz stronę w nowej zakładce +SetAsHomePage=Ustaw jako stronę domową RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/pl_PL/withdrawals.lang b/htdocs/langs/pl_PL/withdrawals.lang index e21820435fa..1283b566429 100644 --- a/htdocs/langs/pl_PL/withdrawals.lang +++ b/htdocs/langs/pl_PL/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Kwota do wycofania WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nr klienta zapłaty faktury w trybie "wycofania" czeka. Idź na "Wypłata" kartę na fakturze kartę do złożenia wniosku. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odpowiedzialny użytkownika WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Powodem odrzucenia RefusedInvoicing=Rozliczeniowych odrzucenia NoInvoiceRefused=Nie za odrzucenie InvoiceRefused=Faktura odmówił (Naładuj odrzucenie do klienta) +StatusDebitCredit=Status debit/credit StatusWaiting=Czekanie StatusTrans=Przekazywane StatusCredited=Dobro diff --git a/htdocs/langs/pt_BR/admin.lang b/htdocs/langs/pt_BR/admin.lang index c5e2eefe797..20a0659c631 100644 --- a/htdocs/langs/pt_BR/admin.lang +++ b/htdocs/langs/pt_BR/admin.lang @@ -396,7 +396,6 @@ Module770Desc=Gestão e reivindicação de relatórios de despesas (transporte, Module1120Name=Fornecedor - proposta comercial Module1120Desc=Pedido fornecedor - proposta comercial e preços Module1200Desc=Integração Mantis -Module1400Desc=Gestor de Contabilidade (duas partes) Module1520Name=Geração de Documentos Module1520Desc=Geração de documentos via e-mail em massa Module1780Name=Categorias @@ -417,6 +416,7 @@ Module2660Desc=Habilitar o webservices do Dolibarr (pode ser usado para empurrar Module2700Desc=Usar serviço online do Gravatar (www.gravatar.com) para mostrar foto de usuários/membros (achado pelos emails deles). Precisa de acesso a internet Module2900Desc=Capacidade de conversão com o GeoIP Maxmind Module3100Desc=Adicionar um botão Skype nos cartões dos usuários / terceiros / contatos membros +Module4000Name=RH Module5000Name=Multi-Empresas Module5000Desc=Permite gerenciar várias empresas Module6000Name=Fluxo de Trabalho @@ -429,7 +429,6 @@ Module50000Desc=Módulo para oferecer pagamento online via cartão de crédito c Module50100Name=Ponto de Vendas Module50100Desc=Módulo ponto de vendas (PDV) Module50200Desc=Módulo que oferece pagamento online via cartão de crédito com Paypal -Module50400Desc=Gestão de Contabilidade (partes duplas) Module54000Name=ImprimirIPP Module54000Desc=Imprima via Cups IPP Module55000Name=Pesquisa Aberta @@ -1235,8 +1234,6 @@ ProjectsModelModule=Modelo de documento de relatório de projeto TasksNumberingModules=Modelo de numeração de tarefas TaskModelModule=Modelo de numeração de relatório de tarefas UseSearchToSelectProject=Use campos de completação automática para escolher projeto (em vez de usar uma caixa de lista) -AccountingPeriods=Períodos de contabilidade -AccountingPeriodCard=Período de contabilidade NewFiscalYear=Novo período de contabilidade OpenFiscalYear=Período da contabilidade em aberto CloseFiscalYear=Período da contabilidade fechada @@ -1310,7 +1307,6 @@ AddRemoveTabs=Adicionar ou remover abas AddHooks=Adicionar ganchos AddTriggers=Adicionar disparadores AddModels=Adicionar temas de documentos ou de numeração -AddSubstitutions=Adicionar substituições de chaves DetectionNotPossible=Não foi possível a detecção ListOfAvailableAPIs=Lista de API's disponíveis activateModuleDependNotSatisfied=O módulo "%s" depende do módulo "%s" que está faltando, assim o módulo "%1$s" pode não funcionar corretamente. Favor instalar o módulo "%2$s" ou desabilitar o módulo "%1$s" se você deseja estar livre de qualquer surpresa. diff --git a/htdocs/langs/pt_BR/agenda.lang b/htdocs/langs/pt_BR/agenda.lang index 654fd5ff0b0..443ef01f3a2 100644 --- a/htdocs/langs/pt_BR/agenda.lang +++ b/htdocs/langs/pt_BR/agenda.lang @@ -1,18 +1,15 @@ # Dolibarr language file - Source file is en_US - agenda -Actions=Eventos +TMenuAgenda=Agenda Eletrônica LocalAgenda=Calendário local ActionsOwnedBy=Evento de propriedade do -ActionsOwnedByShort=Proprietário ListOfActions=Lista de eventos ToUserOfGroup=Para qualquer usuário no grupo EventOnFullDay=Evento no(s) dia(s) todo -MenuToDoActions=Todos os eventos incompletos MenuToDoMyActions=Meus eventos incompletos MenuDoneMyActions=Meus eventos terminados ListOfEvents=Lista de eventos Dolibarr ActionsAskedBy=Eventos relatados pelo ActionsDoneBy=Eventos feito por -ActionAssignedTo=Evento atribuído a ViewCal=Ver Mês ViewDay=Ver dia ViewWeek=ver semana @@ -23,11 +20,24 @@ AgendaSetupOtherDesc=Essa página fornece a opção de exportar seus eventos Dol AgendaExtSitesDesc=Essa página permite declarar calendários externos para serem visto nos eventos da agenda Dolibarr. ActionsEvents=Eventos no qual Dolibarr cria uma ação na agenda automáticamente. NewCompanyToDolibarr=Terceiro %s criados +ContractValidatedInDolibarr=Contrato %s validado +PropalClosedSignedInDolibarr=Proposta %s assinada +PropalClosedRefusedInDolibarr=Proposta %s declinada PropalValidatedInDolibarr=Orçamento %s validado +PropalClassifiedBilledInDolibarr=Proposta %s classificada faturada InvoiceValidatedInDolibarr=Fatura %s validada InvoiceValidatedInDolibarrFromPos=Fatura %s validada no POS InvoiceBackToDraftInDolibarr=Fatura %s voltou para o status de rascunho InvoiceDeleteDolibarr=Fatura %s deletada +InvoicePaidInDolibarr=Fatura %s marcada paga +InvoiceCanceledInDolibarr=Fatura %s cancelada +MemberValidatedInDolibarr=Membro %s validado +MemberResiliatedInDolibarr=Membro %s finalizado +MemberDeletedInDolibarr=Membro %s cancelado +MemberSubscriptionAddedInDolibarr=Inscrição do membo %s adicionada +ShipmentValidatedInDolibarr=Envio %s validado +ShipmentDeletedInDolibarr=Envio %s cancelado +OrderCreatedInDolibarr=Pedido %s criado OrderValidatedInDolibarr=Pedido %s validado OrderDeliveredInDolibarr=Ordem %s classificadas entregues OrderCanceledInDolibarr=Pedido %s cancelado @@ -46,12 +56,9 @@ InterventionSentByEMail=Intervenção %s enviado por e-mail ProposalDeleted=Proposta excluída OrderDeleted=Pedido excluído InvoiceDeleted=Fatura excluída -DateActionStart=Data de início DateActionEnd=Data de término AgendaUrlOptions1=Você também pode adicionar os seguintes parâmetros nos filtros de saída: -AgendaUrlOptions2=login=%s para restringir a saída para ações criada por, atribuída para ou feito pelo usuário %s. AgendaUrlOptions3=logina=%s para restringir a saída para ações criada pelo usuário %s. -AgendaUrlOptions4=logint=%s para restringir a saída para ações atribuídas para o usuário %s. AgendaUrlOptionsProject=project=PROJECT_ID para restringir a saida de açoes associadas ao projeto PROJECT_ID. AgendaShowBirthdayEvents=Mostrar datas de nascimento dos contatos AgendaHideBirthdayEvents=Ocultar datas de nascimento dos contatos @@ -62,9 +69,7 @@ ExtSitesEnableThisTool=Mostrar calendários externos na agenda AgendaExtNb=Calendário núm %s ExtSiteUrlAgenda=URL para acessar arquivos .ical ExtSiteNoLabel=Sem descrição -VisibleTimeRange=Intervalo de tempo visível VisibleDaysRange=Intervalo de dias visíveis -AddEvent=Criar evento MyAvailability=Minha disponibilidade DateActionBegin=Iniciar a data do evento CloneAction=Evento Clone diff --git a/htdocs/langs/pt_BR/banks.lang b/htdocs/langs/pt_BR/banks.lang index d7f6b5fef65..99cc33f8ca1 100644 --- a/htdocs/langs/pt_BR/banks.lang +++ b/htdocs/langs/pt_BR/banks.lang @@ -40,7 +40,6 @@ BankType0=Conta poupança BankType1=Conta corrente BankType2=Conta caixa AccountsArea=Área das contas -AccountCard=Ficha da conta DeleteAccount=Excluir conta ConfirmDeleteAccount=Tem certeza que deseja deletar esta conta? BankTransactionByCategories=Transações bancárias por categorias @@ -50,6 +49,7 @@ RemoveFromRubriqueConfirm=Tem certeza que deseja remover a ligação entre a tra ListBankTransactions=Lista de transações bancárias IdTransaction=ID da transação BankTransactions=Transações bancárias +BankTransaction=Entrada no banco ListTransactions=Listar transações ListTransactionsByCategory=Listar transações/categorias TransactionsToConciliate=Transações a reconciliar @@ -64,6 +64,7 @@ AccountToDebit=Conta para débito DisableConciliation=Desativar função de reconciliação dessa conta ConciliationDisabled=Função de reconciliação desativada LinkedToAConciliatedTransaction=Ligado a uma entrada conciliada +StatusAccountOpened=Aberto StatusAccountClosed=Inativa LineRecord=Transação AddBankRecord=Adicionar transação @@ -120,3 +121,7 @@ CheckRejectedAndInvoicesReopened=Cheque devolvido e faturas reabertas BankAccountModelModule=Temas de documentos para as contas bancárias. DocumentModelSepaMandate=Tema do mandato SEPA. Útil somente para os países europeus na Comunidade Europeia. DocumentModelBan=Tema para imprimir a página com a informação BAN. +NewVariousPayment=Novo pagamento variado +VariousPayment=Vários pagamentos +VariousPayments=Vários pagamentos +ShowVariousPayment=Mostrar vários pagamentos diff --git a/htdocs/langs/pt_BR/bills.lang b/htdocs/langs/pt_BR/bills.lang index 8de71f62d6b..433bcf2db8d 100644 --- a/htdocs/langs/pt_BR/bills.lang +++ b/htdocs/langs/pt_BR/bills.lang @@ -12,9 +12,6 @@ DisabledBecauseNotErasable=Desativada já que não pode ser apagada InvoiceStandard=Fatura padrão InvoiceStandardAsk=Fatura padrão InvoiceStandardDesc=Esse tipo de fatura é a fatura comum. -InvoiceDeposit=Fatura de depósito -InvoiceDepositAsk=Fatura de depósito -InvoiceDepositDesc=Esse tipo de fatura é feito quando um depósito é recebido. InvoiceProForma=Fatura pro-forma InvoiceProFormaAsk=Fatura pro-forma InvoiceProFormaDesc=Fatura pro-forma é uma imagem verdadeira de fatura porem não tem valor contábil. @@ -55,7 +52,7 @@ PaymentsBack=Reembolsos de pagamentos paymentInInvoiceCurrency=na moeda das faturas PaidBack=Reembolso pago DeletePayment=Deletar pagamento -ConfirmDeletePayment=Você tem certeza que deseja deletar esse pagamento? +ConfirmDeletePayment=Você tem certeza que deseja excluir este pagamento? SupplierPayments=Pagamentos a fornecedores ReceivedCustomersPayments=Pagamentos recebidos de cliente PayedSuppliersPayments=Pagamentos pago ao fornecedores @@ -103,7 +100,6 @@ BillStatusNotPaid=Não pago BillStatusClosedUnpaid=Fechado (não pago) BillStatusClosedPaidPartially=Pago (parcialmente) BillShortStatusPaid=Pago -BillShortStatusConverted=Processado BillShortStatusCanceled=Abandonado BillShortStatusValidated=Validado BillShortStatusStarted=Iniciado @@ -167,12 +163,10 @@ ShowBill=Mostrar fatura ShowInvoice=Mostrar fatura ShowInvoiceReplace=Mostrar fatura de substituição ShowInvoiceAvoir=Mostrar nota de crédito -ShowInvoiceDeposit=Mostrar fatura de depósito ShowInvoiceSituation=Exibir a situação da fatura ShowPayment=Mostrar pagamento AlreadyPaid=Já está pago AlreadyPaidBack=Já está estornado -AlreadyPaidNoCreditNotesNoDeposits=Já está pago (sem notas de crédito e depósitos) RemainderToPay=Restante para pagar RemainderToTake=Restante para pegar Rest=Pedente @@ -229,7 +223,6 @@ GlobalDiscount=Desconto global CreditNote=Nota de crédito CreditNotes=Notas de crédito DiscountFromCreditNote=Desconto de nota de crédito %s -DiscountFromDeposit=Pagamentos de fatura de depósito %s AbsoluteDiscountUse=Esse tipo de crédito pode ser usado na fatura antes da validação CreditNoteDepositUse=A fatura deve ser validada para utilizar este tipo de crédito NewGlobalDiscount=Novo desconto fixo @@ -300,8 +293,6 @@ PaymentTypePRE=Pedido com pagamento em Débito direto PaymentTypeShortPRE=Pedido com pagamento por débito PaymentTypeLIQ=Dinheiro PaymentTypeShortLIQ=Dinheiro -PaymentTypeCB=Cartão de crédito -PaymentTypeShortCB=Cartão de crédito PaymentTypeTIP=TIP (Documentos contra Pagamento) PaymentTypeShortTIP=Pagamento TIP PaymentTypeVAD=Pagamento online @@ -362,7 +353,6 @@ DisabledBecausePayments=Não é possivel devido alguns pagamentos CantRemovePaymentWithOneInvoicePaid=Não posso remover pagamento ao menos que o última fatura sejá classificada como pago ExpectedToPay=Esperando pagamento CantRemoveConciliatedPayment=Não pode remover a conciliação de pagamento -ClosePaidInvoicesAutomatically=Classificar "pago" todos padão or substituir faturas inteiramente pago. ClosePaidCreditNotesAutomatically=Classificar "pago" todas notas de crédito inteiramente pago de volta. ClosePaidContributionsAutomatically=Classificar como "Pagas" todas as contribuições sociais ou fiscais quitadas. AllCompletelyPayedInvoiceWillBeClosed=Todas faturas sem permanencia para pagar será automaticamente fechada com status "pago". @@ -375,7 +365,6 @@ YouMustCreateStandardInvoiceFirstDesc=Você deve criar antes uma fatura padrão PDFCrabeDescription=Template PDF de fatura Caranguejo. Um completo template de fatura (template recomendado) PDFCrevetteDescription=Tema Crevette para fatura em PDF. Um tema completo para a situação das faturas TerreNumRefModelDesc1=Retorna número com formato %syymm-nnnn para padrão de faturas e %syymm-nnnn para notas de crédito onde yy é ano, mm é mês e nnnn é uma sequência numérica sem quebra e sem retorno para 0 -MarsNumRefModelDesc1=Retorna número com formato %syymm-nnnn para padrão de faturas, %syymm-nnnn para faturas substituidas, %syymm-nnnn para crédito de notas e %syymm-nnnn para notas de créditos onde yy é ano, mm é mês e nnnn é uma sequência sem quebra e sem retorno a 0 TerreNumRefModelError=Uma conta começa com %syymm já existe e não é compatível com esse modelo de sequência. Remova ou renomeie ele para ativar esse módulo. TypeContact_facture_internal_SALESREPFOLL=Representativo seguindo de fatura de cliente TypeContact_facture_external_BILLING=Contato de fatura de cliente diff --git a/htdocs/langs/pt_BR/bookmarks.lang b/htdocs/langs/pt_BR/bookmarks.lang index 3e6878d9de8..4fd7b981f71 100644 --- a/htdocs/langs/pt_BR/bookmarks.lang +++ b/htdocs/langs/pt_BR/bookmarks.lang @@ -1,9 +1,8 @@ # Dolibarr language file - Source file is en_US - bookmarks -AddThisPageToBookmarks=Adicionar essa página aos marcadores +ListOfBookmarks=Lista de marcadores OpenANewWindow=Abrir uma nova janela ReplaceWindow=Substituir atual janela BookmarkTargetReplaceWindowShort=Atual janela -BehaviourOnClick=Comportamento quando a URL é clicada SetHereATitleForLink=Colocar título para o marcador UseAnExternalHttpLinkOrRelativeDolibarrLink=Usar uma URL externa ou uma URL do Dolibarr ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Escolha se página vinculada deve abrir em uma nova janela ou não diff --git a/htdocs/langs/pt_BR/cashdesk.lang b/htdocs/langs/pt_BR/cashdesk.lang index 2a6394332a4..c6e98cebd8e 100644 --- a/htdocs/langs/pt_BR/cashdesk.lang +++ b/htdocs/langs/pt_BR/cashdesk.lang @@ -10,7 +10,6 @@ PrintTicket=Imprimir tíquete TotalTicket=Total do tíquite NoVAT=Nenhum ICMS para essa venda Change=Excesso recebido -BankToPay=Cobrar conta ShowCompany=Mostar empresa DeleteArticle=Clique para remover esse artigo FilterRefOrLabelOrBC=Procurar (Ref/Rótulo) diff --git a/htdocs/langs/pt_BR/categories.lang b/htdocs/langs/pt_BR/categories.lang index f7d3809ed58..04e0fb49582 100644 --- a/htdocs/langs/pt_BR/categories.lang +++ b/htdocs/langs/pt_BR/categories.lang @@ -12,7 +12,6 @@ MembersCategoriesArea=Área tags / categorias de Membros ContactsCategoriesArea=Área tags / categorias de Contatos AccountsCategoriesArea=Tags/categorias da área de Contas ProjectsCategoriesArea=Projetos area de tags/categorias -SubCats=Subcategorias CatList=Lista de tags/categorias NewCategory=Nova tag/categoria ModifCat=Modificar tag/categoria @@ -22,6 +21,7 @@ CreateThisCat=Criar esta tag/categoria NoSubCat=Nenhuma subcategoria. FoundCats=Encontrada tags / categorias ImpossibleAddCat=Impossível associar a tag/categoria %s +WasAddedSuccessfully=Foi adicionado com êxito. ObjectAlreadyLinkedToCategory=Elemento já está ligada a esta tag / categoria. ProductIsInCategories=Produto / serviço está ligada à seguintes tags / categorias CompanyIsInCustomersCategories=Este Terceiro está vinculado às seguintes tags/categorias de Clientes/Prospects @@ -35,6 +35,7 @@ ContactHasNoCategory=Este contato não está em nenhum tags / categorias ProjectHasNoCategory=Este projeto nao esta em nenhuma tag/categoria ClassifyInCategory=Adicionar para tag / categoria NotCategorized=Sem tag / categoria +CategoryExistsAtSameLevel=Esta categoria já existe na mesma localização ContentsVisibleByAllShort=Conteúdo visivel por todos ContentsNotVisibleByAllShort=Conteúdo não visivel por todos DeleteCategory=Excluir tag / categoria @@ -47,6 +48,7 @@ MembersCategoryShort=Membros tag / categoria SuppliersCategoriesShort=Fornecedores tags / categorias CustomersCategoriesShort=Clientes tags / categorias ProspectsCategoriesShort=Tag/categoria Prospecção +CustomersProspectsCategoriesShort=Cat. Clientes/Potenciais ProductsCategoriesShort=Produtos tags / categorias MembersCategoriesShort=Tag / categorias de Membros ContactCategoriesShort=Contatos tags / categorias @@ -57,7 +59,6 @@ ThisCategoryHasNoSupplier=Esta categoria não contém a nenhum fornecedor. ThisCategoryHasNoCustomer=Esta categoria não contém a nenhum cliente. ThisCategoryHasNoMember=Esta categoria nao contem nenhum membro. ThisCategoryHasNoContact=Esta categoria nao contem nenhum contato. -ThisCategoryHasNoAccount=Esta categoria não contém nenhuma conta. ThisCategoryHasNoProject=Esta categoria nao contem nenhum projeto. CategId=ID Tag / categoria CatSupList=Lista de fornecedores tags / categorias diff --git a/htdocs/langs/pt_BR/commercial.lang b/htdocs/langs/pt_BR/commercial.lang index 1b2cd595c3b..1b565c3d549 100644 --- a/htdocs/langs/pt_BR/commercial.lang +++ b/htdocs/langs/pt_BR/commercial.lang @@ -2,18 +2,15 @@ CommercialArea=Departamento comercial Prospects=Prospectos de cliente DeleteAction=Excluir um evento -NewAction=Novo evento AddAction=Adicionar evento AddAnAction=Adicionar um evento AddActionRendezVous=Criar um evento de reunião ConfirmDeleteAction=Tem certeza que quer deleitaar este evento ? CardAction=Ficha de evento -ActionOnCompany=Empresa relacionada ActionOnContact=Contato relacionado ShowTask=Mostrar tarefa ShowAction=Mostrar evento ActionsReport=Relatório de eventos -ThirdPartiesOfSaleRepresentative=Terceiros com representação comercial SalesRepresentative=Representante comercial SalesRepresentatives=Representantes comerciais SalesRepresentativeFollowUp=Representante comercial (seguindo) @@ -23,7 +20,7 @@ ShowCustomer=Mostrar cliente ShowProspect=Mostrar prospecto de cliente ListOfProspects=Lista de prospectos de cliente ListOfCustomers=Lista de clientes -LastDoneTasks=Últimas %s tarefas concluídas +LastDoneTasks=Últimas %s ações completadas LastActionsToDo=%s ações não concluídas mais antigas DoneAndToDoActions=Concluída e para fazer eventos DoneActions=Eventos concluídos @@ -40,10 +37,8 @@ LastProspectContactDone=Contato feito ActionAffectedTo=Evento atribuído para ActionDoneBy=Evento feito por ActionAC_TEL=Chamada telefônica -ActionAC_FAX=Enviar fax ActionAC_PROP=Enviar proposta por correio ActionAC_EMAIL=Enviar e-mail -ActionAC_RDV=Reuniões ActionAC_INT=Intervenção no lugar ActionAC_FAC=Enviar fatura de cliente por correio ActionAC_REL=Enviar fatura de cliente por correio (lembrete) @@ -56,4 +51,3 @@ ActionAC_OTH=Outros Stats=Estatísticas de vendas StatusProsp=Status de prospecto de cliente DraftPropals=Minutas de orçamentos -NoLimit=Sem limite diff --git a/htdocs/langs/pt_BR/companies.lang b/htdocs/langs/pt_BR/companies.lang index 6073684e4c9..a1f7459ea0c 100644 --- a/htdocs/langs/pt_BR/companies.lang +++ b/htdocs/langs/pt_BR/companies.lang @@ -12,6 +12,7 @@ MenuNewPrivateIndividual=Novo particular NewCompany=Nova empresa (prospecto de cliente, cliente, fornecedor) NewThirdParty=Novo terceiro (prospecto de cliente, cliente, fornecedor) CreateDolibarrThirdPartySupplier=Criar um terceiro (fornecedor) +CreateThirdPartyOnly=Adicionar terceiro CreateThirdPartyAndContact=Criar um terceiro + um contato interno ProspectionArea=Área de prospecção IdThirdParty=ID do terceiro @@ -58,6 +59,8 @@ VATIsNotUsed=Não sujeito a ICMS CopyAddressFromSoc=Preencher o endereço com os dados do terceiro ThirdpartyNotCustomerNotSupplierSoNoRef=Terceiro sem ser cliente ou fornecedor, nenhum objeto de referência disponível PaymentBankAccount=Pagamento conta bancária +OverAllOrders=Pedidos +OverAllSupplierProposals=Solicitações de preço LocalTax1IsUsed=Utilizar segundo imposto LocalTax1IsUsedES=É usado RE LocalTax1IsNotUsedES=Não é usado RE @@ -86,8 +89,6 @@ ProfId1AT=Prof Id 1 (ICMS) ProfId2AT=Prof Id 2 (Inscrição Estadual) ProfId3AT=Prof Id 3 (Inscrição Municipal) ProfId1BE=Prof Id 1 (Número profissional) -ProfId2BR=IE (Inscrição Estadual) -ProfId3BR=IM (Inscrição Municipal) ProfId4BR=CNPJ/CPF ProfId3CH=Prof Id 1 (Número federal) ProfId4CH=Prof Id 2 (Número gravado comercial) @@ -103,13 +104,11 @@ VATIntraShort=Núm ICMS VATIntraSyntaxIsValid=Sintaxe é válida ProspectCustomer=Possível cliente / Cliente Prospect=Prospecto de cliente -CustomerCard=Ficha do cliente CustomerRelativeDiscount=Desconto relativo do cliente CustomerRelativeDiscountShort=Desconto relativo CustomerAbsoluteDiscountShort=Desconto fixo CompanyHasRelativeDiscount=Esse cliente tem um desconto padrão de %s%% CompanyHasNoRelativeDiscount=Esse cliente não tem desconto relativo por padrão -CompanyHasAbsoluteDiscount=Este cliente ainda tem desconto de créditos ou depósitos por %s %s CompanyHasCreditNote=Esse cliente ainda tem notas de crédito por %s %s CompanyHasNoAbsoluteDiscount=Esse cliente não tem desconto de crédito disponível CustomerAbsoluteDiscountAllUsers=Desconto fixo (concedido para todos usuários) @@ -122,7 +121,6 @@ EditContactAddress=Editar contato/endereço Contact=Contato ContactId=ID do contato ContactsAddresses=Contatos/Endereços -FromContactName=Nome: NoContactDefinedForThirdParty=Nenhum contato foi definido para esse terceiro NoContactDefined=Sem contato definido DefaultContact=Contato/endereço padrão @@ -219,6 +217,7 @@ ListProspectsShort=Lista de prospectos de cliente ThirdPartiesArea=Área de terceiros LastModifiedThirdParties=Últimos %s terceiros modificados UniqueThirdParties=Total de terceiros +InActivity=Aberto ActivityCeased=Inativo ProductsIntoElements=Lista de produtos/serviços em %s CurrentOutstandingBill=Notas aberta correntes @@ -229,7 +228,6 @@ LeopardNumRefModelDesc=O código é livre. Esse código pode ser modificado a qu ManagingDirectors=Nome do Representante(CEO,Diretor,Presidente...) MergeOriginThirdparty=Duplicar terceiros (terceiros que deseja excluir) MergeThirdparties=Mesclar terceiros -ConfirmMergeThirdparties=Você tem certeza que deseja mesclar este terceiro ao atual? Todos os objetos conectados (faturas, pedidos, etc.) serão movidos para o terceiro atual. Desta forma você será capaz de excluir o que estiver duplicado. ThirdpartiesMergeSuccess=Terceiros foram mesclados SaleRepresentativeLogin=Login para o representante de vendas ErrorThirdpartiesMerge=Houve um erro ao excluir os terceiros. Por favor, verifique o log. As alterações foram revertidas. diff --git a/htdocs/langs/pt_BR/compta.lang b/htdocs/langs/pt_BR/compta.lang index 392d95470e4..50b3e52e91a 100644 --- a/htdocs/langs/pt_BR/compta.lang +++ b/htdocs/langs/pt_BR/compta.lang @@ -34,7 +34,6 @@ LT2SupplierES=IRPF de compras LT1CustomerES=RE vendas LT1SupplierES=RE compras VATCollected=ICMS recuperado -ToPay=A pagar SocialContribution=Contribuição fiscal ou social SocialContributions=Encargos sociais e fiscais SocialContributionsDeductibles=Contribuições fiscais ou sociais dedutíveis @@ -163,4 +162,3 @@ BasedOnTwoFirstLettersOfVATNumberBeingTheSameAsYourCompanyCountry=Com base nas d LinkedFichinter=Vincular a uma intervenção ImportDataset_tax_contrib=Contribuições fiscais/sociais ErrorBankAccountNotFound=Erro: conta bancária não encontrada -FiscalPeriod=Período de contabilidade diff --git a/htdocs/langs/pt_BR/contracts.lang b/htdocs/langs/pt_BR/contracts.lang index 3ab455d7835..8e8d44596f5 100644 --- a/htdocs/langs/pt_BR/contracts.lang +++ b/htdocs/langs/pt_BR/contracts.lang @@ -1,8 +1,4 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Área de contratos -ListOfContracts=Lista de contratos -AllContracts=Todos os contratos -ContractCard=Ficha do contrato ContractStatusNotRunning=Fora de vigência ServiceStatusInitial=Fora de vigência ServiceStatusRunning=Em vigência @@ -12,29 +8,18 @@ ServiceStatusLate=Em vigência, vencido ServiceStatusLateShort=Vencido ServiceStatusClosed=Encerrado ShowContractOfService=Mostrar contrato de serviço -Contracts=Contratos ContractsSubscriptions=Contratos ContractLine=Linha contrato Closing=Fechando -NoContracts=Sem contratos -MenuInactiveServices=Serviços inativos MenuRunningServices=Serviços em vigência MenuExpiredServices=Serviços vencidos -MenuClosedServices=Serviços fechados -NewContract=Novo contrato -NewContractSubscription=Novo contrato/subscrição -AddContract=Criar contrato -DeleteAContract=Eliminar um contrato -CloseAContract=Fechar um contrato ConfirmDeleteAContract=Você tem certeza que deseja excluir este contrato e todos os seus serviços? ConfirmValidateContract=Você tem certeza que deseja validar este contrato sob o mesmo nome %s? ConfirmCloseContract=Isto fechará todos os serviços (ativos ou não). Você tem certeza que deseja fechar este contrato? ConfirmCloseService=Você tem certeza que deseja fechar este serviço com a data %s? -ActivateService=Ativar o serviço +ValidateAContract=Confirmar um contrato ConfirmActivateService=Você tem certeza que deseja ativar este serviço com a data %s? RefContract=Referencia contrato -DateContract=Data do contrato -DateServiceActivate=Data de ativação do serviço ListOfInactiveServices=Lista servicos inativos ListOfExpiredServices=Lista servicos ativos vencidos ListOfRunningServices=Lista de Serviços Ativos @@ -44,7 +29,6 @@ LastContracts=Últimos %s contratos LastModifiedServices=Últimos %s serviços modificados ContractStartDate=Data de início ContractEndDate=Data de encerramento -DateStartPlanned=Data de início prevista DateStartPlannedShort=Data Inicio Prevista DateEndPlanned=Data Prevista Fim do Serviço DateEndPlannedShort=Data Fim Prevista @@ -61,7 +45,9 @@ CloseAllContracts=Fechar Todos os Contratos DeleteContractLine=Eliminar a linha do contrato ConfirmDeleteContractLine=Você tem certeza que deseja excluir esta linha do contrato? MoveToAnotherContract=Mover o serviço a outro contrato deste Fornecedor. +ConfirmMoveToAnotherContract=Escolhi o contrato e confirmo o alterar de serviço ao presente contrato. ConfirmMoveToAnotherContractQuestion=Escolher para qual contrato existente (do mesmo terceiro) você deseja mover este serviço. +PaymentRenewContractId=Renovação do Serviço (Numero %s) NoExpiredServices=Nao tem servicos ativos vencidos ListOfServicesToExpireWithDuration=Lista de servicos a vencer em %s dias ListOfServicesToExpireWithDurationNeg=Lista de serviços expirados a mais de %s dias @@ -70,6 +56,8 @@ NoteListOfYourExpiredServices=Esta lista contém apenas contratos de serviços d StandardContractsTemplate=Modelo de contratos simples ContactNameAndSignature=Para %s, nome e assinatura: OnlyLinesWithTypeServiceAreUsed=Somente as linhas com o tipo de "serviço" será clonado. +TypeContact_contrat_internal_SALESREPSIGN=Comercial assinante do contrato +TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimento do contrato TypeContact_contrat_external_BILLING=Contato cliente de faturação do contrato TypeContact_contrat_external_CUSTOMER=Contato cliente seguimento do contrato TypeContact_contrat_external_SALESREPSIGN=Contato cliente assinante do contrato diff --git a/htdocs/langs/pt_BR/deliveries.lang b/htdocs/langs/pt_BR/deliveries.lang index c1c0010ee18..083399c4e58 100644 --- a/htdocs/langs/pt_BR/deliveries.lang +++ b/htdocs/langs/pt_BR/deliveries.lang @@ -1,11 +1,8 @@ # Dolibarr language file - Source file is en_US - deliveries -Delivery=Entrega DeliveryRef=Ref. entrega -DeliveryCard=Ficha de entrega -DeliveryOrder=Ordem de entrega -DeliveryDate=Data da entrega -CreateDeliveryOrder=Gerar ordem de entrega DeliveryStateSaved=Estado de entrega salvo +SetDeliveryDate=Indicar a Data de Envio +ValidateDeliveryReceipt=Confirmar a Nota de Entrega ValidateDeliveryReceiptConfirm=Você tem certeza que deseja validar este comprovante de entrega? DeleteDeliveryReceipt=Excluir recibo de entrega DeleteDeliveryReceiptConfirm=Você tem certeza que deseja excluir o comprovante de entrega %s? @@ -14,6 +11,7 @@ TrackingNumber=Número de rastreamento StatusDeliveryValidated=Recebida GoodStatusDeclaration=Recebi a mercadorias acima em bom estado, Sender=Remetente +ErrorStockIsNotEnough=Não existe estoque suficiente Shippable=Disponivel para envio NonShippable=Não disponivel para envio ShowReceiving=Mostrar recibo de entrega diff --git a/htdocs/langs/pt_BR/dict.lang b/htdocs/langs/pt_BR/dict.lang index b82198fbf97..b1eae1f0bf5 100644 --- a/htdocs/langs/pt_BR/dict.lang +++ b/htdocs/langs/pt_BR/dict.lang @@ -27,7 +27,6 @@ CountryIR=Irã CountryKR=Coreia do Sul CountryKG=Quirguistão CountryLA=Laos -CountryLT=Lituânia CountryMK=Macedônia, antiga República iugoslava da CountryMW=Maláui CountryML=Máli diff --git a/htdocs/langs/pt_BR/ecm.lang b/htdocs/langs/pt_BR/ecm.lang index 5ad21433a6b..e40eda7271b 100644 --- a/htdocs/langs/pt_BR/ecm.lang +++ b/htdocs/langs/pt_BR/ecm.lang @@ -1,9 +1,5 @@ # Dolibarr language file - Source file is en_US - ecm ECMNbOfDocs=Nr. de documentos -ECMSectionManual=Pasta manual -ECMSectionAuto=Pasta automática -ECMSectionsManual=Pastas manuais -ECMSectionsAuto=Pastas automáticas ECMNewSection=Criar pasta ECMAddSection=Adicionar pasta ECMCreationDate=Data criação @@ -11,11 +7,12 @@ ECMNbOfFilesInDir=Número de arquivos na pasta ECMNbOfSubDir=Número de subpastas ECMNbOfFilesInSubDir=Numero de arquivos nos subpastas ECMCreationUser=Criado por +ECMArea=Área GED ECMAreaDesc=O GED (Gestão Eletrônica de Documentos) permite salvar, compartilhar e pesquisar rapidamente todos os tipos de documentos contidos no Dolibarr. ECMAreaDesc2=* As pastas automáticas são geradas automaticamente quando algum arquivo é adicionado a algum ficheiro do sistema.
* As pastas manuais podem ser usados ​​para guardar documentos sem ligação a um cadastro do sistema. +ECMSectionWasRemoved=A pasta %s foi eliminada ECMSearchByKeywords=Busca usando palavras chave ECMSearchByEntity=Busca por objeto -ECMSectionOfDocuments=Pastas de documentos ECMDocsBySocialContributions=Documentos ligados a impostos sociais ou fiscais ECMDocsByThirdParties=Documentos associados a fornecedores ECMDocsByProposals=Documentos associados a orçamentos @@ -23,6 +20,7 @@ ECMDocsByInvoices=Documentos associados a faturas do cliente ECMDocsByProjects=Documentos associados a projetos ECMDocsByUsers=Documentos relacionados a usuários ECMDocsByInterventions=Documentos ligados a intervenções +ECMDocsByExpenseReports=Documentos vinculados a relatórios de despesas ShowECMSection=Exibir pasta DeleteSection=Apagar pasta ConfirmDeleteSection=Por favor confirmar a remocao do diretorio %s? diff --git a/htdocs/langs/pt_BR/exports.lang b/htdocs/langs/pt_BR/exports.lang index dac42587447..a01d9a1fc62 100644 --- a/htdocs/langs/pt_BR/exports.lang +++ b/htdocs/langs/pt_BR/exports.lang @@ -85,12 +85,8 @@ Enclosure=Recinto SpecialCode=Código especial ExportStringFilter=Permite substituir um ou mais caracteres no texto ExportDateFilter=AAAA, AAAAMM, AAAAMMDD : filtros por um ano / mês / dia
AAAA+AAAA, AAAAMM+AAAAMM, AAAAMMDD+AAAAMMDD : filtros mais de uma gama de ano / mês / dia inicial
> AAAA, > AAAAMM, > AAAAMMDD : filtros em todos seguindo anos / meses / dias
< AAAA, < AAAAMM, < AAAAMMDD : filtros em todos os anos / meses / dias anteriores -ExportNumericFilter=filtros "NNNNN" por um valor
filtros "NNNNN + NNNNN 'mais de uma faixa de valores
'> NNNNN' filtros por valores mais baixos
'> NNNNN' filtros por valores mais elevados ImportFromLine=Importar iniciando da linha número -EndAtLineNb=Terminar na linha número SetThisValueTo2ToExcludeFirstLine=Por exemplo, coloque 3 para este valor para excluir as 2 primeiras linhas KeepEmptyToGoToEndOfFile=Manter este campo em branco para ir até o fim do arquivo SelectFilterFields=Se você deseja filtrar alguns valores, apenas os valores de entrada aqui. -FilteredFields=Campos filtrados FilteredFieldsValues=Valor para o filtro -FormatControlRule=Regra de controle de formato diff --git a/htdocs/langs/pt_BR/holiday.lang b/htdocs/langs/pt_BR/holiday.lang index 1ba33b79912..9f39557e934 100644 --- a/htdocs/langs/pt_BR/holiday.lang +++ b/htdocs/langs/pt_BR/holiday.lang @@ -1,21 +1,19 @@ # Dolibarr language file - Source file is en_US - holiday +HRM=RH MenuReportMonth=Relatório mensal MenuAddCP=Nova solicitação de licença NotActiveModCP=Você deve ativar o módulo Gestão de solicitações de licença para visualizar esta página. AddCP=Fazer uma solicitação de licença DateFinCP=Data de término ToReviewCP=Aguardando aprovação -ApprovedCP=Aprovado -CancelCP=Cancelado RefuseCP=Negado -ValidatorCP=Aprovador ListeCP=Lista de licenças -ReviewedByCP=Será revisada por SendRequestCP=Criar solicitação de licença DelayToRequestCP=Solicitações devem ser feitas pelo menos %s dias (s) antes. MenuConfCP=Saldo de folgas SoldeCPUser=O saldo de folgas é de %s dias. ErrorEndDateCP=Você deve selecionar uma data final posterior à data inicial. +ErrorSQLCreateCP=Ocorreu um erro de SQL durante a criação: ErrorIDFicheCP=Ocorreu um erro, a solicitação de licença não existe. ReturnCP=Retorne à página anterior ErrorUserViewCP=Você não está autorizado a ler este pedido de licença. @@ -40,7 +38,6 @@ TitleRefuseCP=Recusar a solicitação de licença ConfirmRefuseCP=Quer mesmo recusar a solicitação de licença? NoMotifRefuseCP=Você deve escolher um motivo para recusar a solicitação. TitleCancelCP=Cancelar a solicitação de licença -ConfirmCancelCP=Tem certeza de que deseja cancelar o pedido de licença? DetailRefusCP=Motivo da recusa DateRefusCP=Data da recusa DateCancelCP=Data do cancelamento @@ -59,13 +56,10 @@ alreadyCPexist=Um pedido de licença já foi feito sobre este período. FirstDayOfHoliday=Primeiro dia de folga LastDayOfHoliday=Último dia de folga BoxTitleLastLeaveRequests=Últimas %s solicitações de licença modificadas -HolidaysMonthlyUpdate=Atualização mensal -ManualUpdate=Atualização manual HolidaysCancelation=Cancelamento da solicitação de licença TypeWasDisabledOrRemoved=A licença do tipo (id %s) foi desabilitada ou removida LastUpdateCP=Última atualização automática de fixação de licenças MonthOfLastMonthlyUpdate=Mês da última atualização automática de fixação de licenças -UpdateConfCPOK=Atualizado com sucesso. Module27130Name=Gestão de solicitações de licença Module27130Desc=Gestão de solicitações de licença ErrorMailNotSend=Ocorreu um erro durante o envio de e-mail: diff --git a/htdocs/langs/pt_BR/install.lang b/htdocs/langs/pt_BR/install.lang index f1f5b1dae55..cda864bb22a 100644 --- a/htdocs/langs/pt_BR/install.lang +++ b/htdocs/langs/pt_BR/install.lang @@ -140,7 +140,7 @@ MigrationContractsIncoherentCreationDateNothingToUpdate=Sem valor incorreto na d MigrationReopeningContracts=Abrir contrato fechado por erro MigrationReopenThisContract=Reabrir contrato %s MigrationReopeningContractsNothingToUpdate=Sem contratos encerrados para abrir -MigrationBankTransfertsUpdate=Atualizar links entre transação bancária e transferência bancária +MigrationBankTransfertsUpdate=Atualizar ligações entre a entrada do banco e uma transferência bancária MigrationBankTransfertsNothingToUpdate=Todas as ligações são até a data MigrationShipmentOrderMatching=Remetentes receberam atualização MigrationDeliveryOrderMatching=Entrega receberam atualização diff --git a/htdocs/langs/pt_BR/interventions.lang b/htdocs/langs/pt_BR/interventions.lang index c242eede393..4edd957cbd0 100644 --- a/htdocs/langs/pt_BR/interventions.lang +++ b/htdocs/langs/pt_BR/interventions.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - interventions +InterventionCard=Ficha de Intervenção AddIntervention=Criar Intervenção ActionsOnFicheInter=Açoes na intervençao LastInterventions=Últimas %s intervenções @@ -12,6 +13,7 @@ ConfirmDeleteInterventionLine=Você tem certeza que deseja excluir esta linha de ConfirmCloneIntervention=Você tem certeza que deseja clonar esta intervenção? InterventionClassifyBilled=Classificar "Faturado" InterventionClassifyUnBilled=Classificar "à faturar" +InterventionClassifyDone=Classificar "Feito" StatusInterInvoiced=Faturado ShowIntervention=Mostrar intervençao SendInterventionRef=Apresentação de intervenção %s diff --git a/htdocs/langs/pt_BR/loan.lang b/htdocs/langs/pt_BR/loan.lang index 10e65fe5092..cddd78288b4 100644 --- a/htdocs/langs/pt_BR/loan.lang +++ b/htdocs/langs/pt_BR/loan.lang @@ -2,11 +2,9 @@ NewLoan=Novo empréstimo ShowLoan=Mostrar empréstimo PaymentLoan=Pagamento de empréstimo +LoanPayment=Pagamento de empréstimo ShowLoanPayment=Mostrar pagamento de empréstimo Interest=Juro -LoanAccountancyCapitalCode=Código Contábil Capital -LoanAccountancyInsuranceCode=Código Contábil Seguro -LoanAccountancyInterestCode=Código Contábil Juros ConfirmDeleteLoan=Confirme a exclusão deste empréstimo LoanDeleted=Empréstimo excluído com sucesso ConfirmPayLoan=Confirmar este empréstimo como pago @@ -34,6 +32,3 @@ LoanCalcDesc=Esta calculadora de hipoteca pode ser usada para mostrar os GoToInterest=%s será destinado a JUROS GoToPrincipal=%s será destinado ao PRINCIPAL YouWillSpend=Você gastará %s no ano de %s -LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Código Contábil Capital por padrão -LOAN_ACCOUNTING_ACCOUNT_INTEREST=Código Contábil Juros por padrão -LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Código Contábil Seguros por padrão diff --git a/htdocs/langs/pt_BR/mails.lang b/htdocs/langs/pt_BR/mails.lang index cfd022f516a..ca3fe238d96 100644 --- a/htdocs/langs/pt_BR/mails.lang +++ b/htdocs/langs/pt_BR/mails.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - mails +MailCard=Ficha de Mailing MailRecipients=Dsetinatarios MailRecipient=Destinatário MailTitle=Descrição @@ -62,8 +63,6 @@ TagSignature=Assinatura do remetente EMailRecipient=E-mail destinatario TagMailtoEmail=Destinatário do E-mail (incluindo o link HTML "mailto:") NoEmailSentBadSenderOrRecipientEmail=Nenhum e-mail enviado. Bad remetente ou destinatário de e-mail. Verifique perfil de usuário. -AddNewNotification=Ativar uma nova notificação email para alvo -ListOfActiveNotifications=Lista de todos os destinatários para a notificação por e-mail ListOfNotificationsDone=Listar todas as notificações de e-mail enviadas MailSendSetupIs=Configuração do envio de e-mails foi configurado a '%s'. Este modo não pode ser usado para envios de massa de e-mails. MailSendSetupIs2=Voçê precisa primeiramente acessar com uma conta de Administrador o menu %sInicio - Configurações - EMails%s para mudar o parametro '%s' para usar o modo '%s'. Neste modo voçê pode entrar a configuração do servidor SMTP fornecido pelo seu Provedor de Acesso a Internet e usar a funcionalidade de envios de massa de EMails. diff --git a/htdocs/langs/pt_BR/main.lang b/htdocs/langs/pt_BR/main.lang index a95c5c4eac5..71ab24a7b03 100644 --- a/htdocs/langs/pt_BR/main.lang +++ b/htdocs/langs/pt_BR/main.lang @@ -21,7 +21,6 @@ FormatDateHourTextShort=%d %b, %Y, %I:%M %p FormatDateHourText=%d %B, %Y, %I:%M %p DatabaseConnection=Login à Base de Dados NoTemplateDefined=Nenhum tema definido para este tipo de e-mail -AvailableVariables=Variáveis de substituição disponíveis NoRecordFound=Nenhum registro encontrado NoRecordDeleted=Nenhum registro foi deletado NotEnoughDataYet=Sem dados suficientes @@ -51,8 +50,8 @@ SeeAlso=Ver tambem %s SeeHere=veja aqui BackgroundColorByDefault=Cor do fundo padrão FileRenamed=O arquivo foi renomeado com sucesso -FileUploaded=O arquivo foi carregado com sucesso FileGenerated=O arquivo foi gerado com sucesso +FileUploaded=O arquivo foi carregado com sucesso FileWasNotUploaded=O arquivo foi selecionado, mas nao foi ainda enviado. Clique no "Anexar arquivo" para proceder. NbOfEntries=Nr. de entradas GoToWikiHelpPage=Ler a ajuda online (necessário acesso a Internet) @@ -63,7 +62,6 @@ DolibarrInHttpAuthenticationSoPasswordUseless=Modo de autenticação do Dolibarr PasswordForgotten=Esqueceu a senha? SeeAbove=Mencionar anteriormente PreviousConnexion=último login -PreviousValue=Valor anterior ConnectedOnMultiCompany=Conectado no ambiente AuthenticationMode=Modo de Autenticação RequestedUrl=URL solicitada @@ -72,7 +70,6 @@ RequestLastAccessInError=Últimos erros de acesso ao banco de dados ReturnCodeLastAccessInError=Código de retorno do último erro de acesso ao banco de dados InformationLastAccessInError=Informação do último erro de acesso ao banco de dados InformationToHelpDiagnose=Esta informação pode ser útil para fins de diagnóstico -TechnicalID=ID Técnico PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitários a %s Decimais. NoFilter=Nenhum filtro WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerância. @@ -91,7 +88,6 @@ Disable=Desativar Disabled=Desativado AddLink=Adicionar link RemoveLink=Remover o link -AddToDraft=Adicionar ao rascunho Update=Modificar CloseBox=Remover o widget do seu painel de controle ConfirmSendCardByMail=Você realmente quer enviar o conteúdo deste cartão por e-mail para %s? @@ -131,8 +127,6 @@ Connection=Login Now=Agora HourStart=Comece hora DateAndHour=Data e hora -DateToday=Data de hoje -DateReference=Data de referência DateEnd=Data de término DateCreationShort=Data Criação DateModification=Data Modificação @@ -189,7 +183,6 @@ TotalHTShortCurrency=Total (líquido na moeda) TotalTTCShort=Total (incl. taxas) TotalHT=Valor TotalHTforthispage=Total (sem impostos) desta pagina -Totalforthispage=Total para esta página TotalTTC=Total TotalVAT=Total do ICMS TotalLT1=Total taxa 2 @@ -226,7 +219,6 @@ Category=Tag / categoria to=para ApprovedBy2=Aprovado pelo (segunda aprovação) Opened=Aberto -Topic=Assunto ByUsers=Por usuário LateDesc=O atraso na definição se o registro é tardio ou não, depende da sua configuração. Peça ao seu Administrador para alterar o atraso no menu Início - Configuração - Alertas. DeletePicture=Apagar foto @@ -247,9 +239,7 @@ MonthShort09=Set MonthShort10=Out MonthShort12=Dez AttachedFiles=Arquivos e Documentos Anexos -FileTransferComplete=Foi transferido corretamente o Arquivo ReportPeriod=Periodo de Análise -Keyword=Palavra-chave Fill=Preencher Reset=Resetar File=Arquivo @@ -257,7 +247,6 @@ Files=Arquivos AmountInCurrency=Valores Apresentados em %s NbOfThirdParties=Numero de Fornecedores NbOfObjects=Numero de Objetos -NbOfObjectReferers=Número de itens relacionados Referers=Itens correlatos Uncheck=Desmarque Entities=Entidadees @@ -287,7 +276,6 @@ CurrentUserLanguage=Idioma atual CurrentTheme=Tema atual CurrentMenuManager=Administração do menu atual DisabledModules=Módulos desativados -DateOfSignature=Data da assinatura HidePassword=Mostrar comando com senha oculta UnHidePassword=Mostrar comando real com a senha visivel AddFile=Adicionar arquivo @@ -353,7 +341,6 @@ GoIntoSetupToChangeLogo=Vá para casa - Configuração - Empresa de mudar logoti Denied=Negado Gender=Gênero ViewList=Exibição de lista -Mandatory=Obrigatório Sincerely=Sinceramente DeleteLine=Apagar linha ConfirmDeleteLine=Você tem certeza que deseja excluir esta linha? @@ -366,8 +353,6 @@ FrontOffice=Frente do escritório BackOffice=Fundo do escritório View=Visão Exports=Exportações -ExportFilteredList=Exportar lista filtrada -ExportList=Exportar lista Miscellaneous=Variados Calendar=Calendário GroupBy=Agrupar por @@ -378,16 +363,11 @@ SaturdayMin=Sab SelectMailModel=Escolha um modelo de e-mail SetRef=Escolher referência Select2ResultFoundUseArrows=Alguns resultados encontrados. Use as setas para selecionar. -Select2NotFound=Nenhum resultado encontrado Select2Enter=Forneça -Select2MoreCharacter=ou mais caracteres -Select2MoreCharacters=ou mais caracteres Select2LoadingMoreResults=Carregando mais resultados... Select2SearchInProgress=Busca em andamento... -SearchIntoThirdparties=Terceiros SearchIntoContacts=Contatos SearchIntoUsers=Usuários -SearchIntoProductsOrServices=Produtos ou serviços SearchIntoCustomerInvoices=Faturas a clientes SearchIntoSupplierInvoices=Faturas de fornecedores SearchIntoCustomerOrders=Pedidos de clientes diff --git a/htdocs/langs/pt_BR/margins.lang b/htdocs/langs/pt_BR/margins.lang index a3d74fa8b54..dccb194f19a 100644 --- a/htdocs/langs/pt_BR/margins.lang +++ b/htdocs/langs/pt_BR/margins.lang @@ -26,4 +26,3 @@ rateMustBeNumeric=Rata deve ser um valor numerico markRateShouldBeLesserThan100=Rata marcada teria que ser menor do que 100 ShowMarginInfos=Mostrar informações sobre margens CheckMargins=Detalhes das margens -MarginPerSaleRepresentativeWarning=O relatório de margem por usuário utilizar a ligação entre terceiros e representantes de venda para calcular a margem de cada usuário. Porque alguns terceiros não pode ser ligado a qualquer representante venda e alguns terceiros pode estar ligado a vários usuários, algumas margens podem não aparecer nestes relatório ou pode aparecer em várias linhas diferentes. diff --git a/htdocs/langs/pt_BR/members.lang b/htdocs/langs/pt_BR/members.lang index 4cd63795762..78de603f722 100644 --- a/htdocs/langs/pt_BR/members.lang +++ b/htdocs/langs/pt_BR/members.lang @@ -3,7 +3,6 @@ MembersArea=Área de associados MemberCard=Ficha de associado SubscriptionCard=Ficha de filiação Member=Associado -Members=Associados ShowMember=Exibir ficha do associado UserNotLinkedToMember=Usuário não vinculado a um associado ThirdpartyNotLinkedToMember=Fornecedores não ligados a um membro @@ -13,6 +12,7 @@ ErrorMemberIsAlreadyLinkedToThisThirdParty=Outro membro já está vinculado a u ErrorUserPermissionAllowsToLinksToItselfOnly=Por razões de segurança, você deve ter permissões para editar todos os usuários sejam capazes de ligar um membro a um usuário que não é seu. CardContent=Conteúdo da sua ficha de membro SetLinkToThirdParty=Link para um fornecedor Dolibarr +MembersCards=Cartões de Membros MembersListUpToDate=Lista dos Membros válidos ao día de adesão MembersListNotUpToDate=Lista dos Membros válidos não ao día de adesão MembersListResiliated=Lista de membros encerrados @@ -24,8 +24,9 @@ DateEndSubscription=data final filiação EndSubscription=fim filiação SubscriptionId=Id adesão MemberId=Id adesão -MemberStatusDraft=rascunho (a Confirmar) -MemberStatusActiveLateShort=não à día +MemberStatusDraft=Minuta (requer confirmação) +MemberStatusDraftShort=Minuta +MemberStatusActiveLateShort=Vencido MemberStatusPaid=Assinatura em dia MemberStatusPaidShort=Até à data MemberStatusResiliated=Membro encerrado @@ -35,11 +36,13 @@ PaymentSubscription=Subscrição de Pagamento SubscriptionEndDate=data final filiação NewSubscriptionDesc=Este formulário permite que você grave a sua assinatura como um novo membro da fundação. Se você quiser renovar a sua assinatura (se já for membro), por favor, entre em contato com Conselho de Fundadores não por e-mail. Subscriptions=Filiações -SubscriptionLate=Em Atraso +SubscriptionLate=Atraso SubscriptionNotReceived=filiação não recibida ListOfSubscriptions=Lista de Filiações +SendCardByMail=Enviar ficha por E-mail AddMember=Criar membro NoTypeDefinedGoToSetup=nenhum tipo de membro definido. ir a configuração -> Tipos de Membros +DeleteType=Excluir Physical=Físico MorPhy=Moral/Físico Reenable=Reativar @@ -57,13 +60,17 @@ EnablePublicSubscriptionForm=Habilite a forma pública auto-assinatura ExportDataset_member_1=Membros e Filiações LastMembersModified=Últimos %s membros modificados LastSubscriptionsModified=Últimas %s subscrições modificadas +PublicMemberCard=Ficha pública membro SubscriptionNotRecorded=Subscrição não registrada AddSubscription=Criar subscripção DescADHERENT_AUTOREGISTER_MAIL_SUBJECT=Assunto do email em caso de inscrição automática DescADHERENT_AUTOREGISTER_MAIL=Email a enviar em caso de convite para inscrição automática DescADHERENT_ETIQUETTE_TEXT=Texto impresso em folhas de endereço de membros DescADHERENT_CARD_TYPE=Formato da página fichas +DescADHERENT_CARD_HEADER_TEXT=Texto a imprimir na parte superior do cartão de membro +DescADHERENT_CARD_TEXT=Texto a imprimir ao cartão de membro DescADHERENT_CARD_TEXT_RIGHT=Texto impresso em cartões de membros (alinhar à direita) +DescADHERENT_CARD_FOOTER_TEXT=Texto a imprimir na parte inferior do cartão de membro HTPasswordExport=geração Arquivo htpassword NoThirdPartyAssociatedToMember=nenhum Fornecedor associado a este membro MembersAndSubscriptions=Membros e Subscrições @@ -72,7 +79,6 @@ MoreActionsOnSubscription=Ação complementar, sugerido por padrão durante a gr LinkToGeneratedPages=Gerar cartões de visitas LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com cartões de visita para todos os seus membros ou um membro particular. DocForAllMembersCards=Gerar cartões de visita para todos os membros -DocForOneMemberCards=Gerar cartões de visita para um determinado membro DocForLabels=Gerar folhas de endereço MembersStatisticsByRegion=Membros por região estatísticas NoValidatedMemberYet=Nenhum membro validados encontrado diff --git a/htdocs/langs/pt_BR/oauth.lang b/htdocs/langs/pt_BR/oauth.lang index 91db5870617..90aaec44e07 100644 --- a/htdocs/langs/pt_BR/oauth.lang +++ b/htdocs/langs/pt_BR/oauth.lang @@ -3,8 +3,6 @@ ConfigOAuth=Configuração Oauth ManualTokenGeneration=Geração manual do token NoAccessToken=Nenhum token de acesso guardado na base de dados local HasAccessToken=Um token foi gerado e salvo no banco de dados local -NewTokenStored=Token recebido e salvo -ToCheckDeleteTokenOnProvider=Para verificar/apagar autorização salva pelo provedor OAuth %s TokenDeleted=Token excluído RequestAccess=Clique aqui para solicitar/renovar o acesso e receber um novo token para salvar DeleteAccess=Clique aqui para apagar o token @@ -12,7 +10,7 @@ UseTheFollowingUrlAsRedirectURI=Utilize o seguinte URL como o URI de redireciona ListOfSupportedOauthProviders=Forneça aqui a credencial fornecida pelo seu provedor OAuth2. Apenas provedores OAuth2 suportados estão visíveis aqui. Esta configuração talvez seja usada por outros módulos que necessitem de autenticação OAuth2. TOKEN_REFRESH=Token Atualizar Presente TOKEN_EXPIRED=Token vencido -TOKEN_EXPIRE_AT=Token expirar no +TOKEN_EXPIRE_AT=Token expira no TOKEN_DELETE=Excluir token salvo OAUTH_GOOGLE_NAME=Serviço Google Oauth OAUTH_GOOGLE_ID=ID do Google Oauth diff --git a/htdocs/langs/pt_BR/orders.lang b/htdocs/langs/pt_BR/orders.lang index 376677a88a5..945b5865124 100644 --- a/htdocs/langs/pt_BR/orders.lang +++ b/htdocs/langs/pt_BR/orders.lang @@ -1,9 +1,20 @@ # Dolibarr language file - Source file is en_US - orders OrdersArea=Área de Pedidos de Clientes +SuppliersOrdersArea=Área de Pedidos a Fornecedores +OrderCard=Ficha Pedido OrderId=ID Pedido +Order=Pedido +Orders=Pedidos OrderLine=Linha de Comando +OrderDate=Data Pedido OrderDateShort=Data do pedido OrderToProcess=Pedido a processar +NewOrder=Novo Pedido +ToOrder=Realizar Pedido +MakeOrder=Realizar Pedido +SupplierOrder=Pedido a Fornecedor +SuppliersOrders=Pedidos a Fornecedores +SuppliersOrdersRunning=Pedidos a Fornecedores em Curso CustomerOrder=Pedido de Cliente CustomersOrders=Pedidos de clientes CustomersOrdersRunning=Pedidos dos clientes atuais @@ -24,16 +35,23 @@ StatusOrderOnProcess=Pedido - Aguardando Recebimento StatusOrderOnProcessWithValidation=Ordenada - recepção Standby ou validação StatusOrderToBill=A Faturar ShippingExist=Existe envio +QtyOrdered=Quant. Pedida ProductQtyInDraft=Quantidade do produto em projetos de ordens ProductQtyInDraftOrWaitingApproved=Quantidade do produto em projecto ou ordens aprovadas, ainda não ordenou MenuOrdersToBill=Pedidos por Faturar MenuOrdersToBill2=Ordens faturáveis +CreateOrder=Criar Pedido +RefuseOrder=Rejeitar o Pedido ApproveOrder=Aprovar pedidos Approve2Order=Aprovar pedido (segundo nível) +ValidateOrder=Confirmar o Pedido UnvalidateOrder=Desaprovar pedido +DeleteOrder=Eliminar o pedido +CancelOrder=Anular o Pedido OrderReopened=Pedido %s Reaberto AddOrder=Criar ordem AddToDraftOrders=Adicionar a projeto de pedido +ShowOrder=Mostrar Pedido OrdersOpened=Pedidos a processar NoDraftOrders=Não há projetos de pedidos NoOrder=Sem pedidos @@ -42,7 +60,14 @@ LastOrders=Últimos %s pedidos de cliente LastCustomerOrders=Últimos %s pedidos de cliente LastSupplierOrders=Últimos %s pedidos a fornecedores LastModifiedOrders=Últimos %s pedidos modificados +AllOrders=Todos os Pedidos +NbOfOrders=Número de Pedidos +OrdersStatistics=Estatísticas de pedidos +OrdersStatisticsSuppliers=Estatísticas de Pedidos a Fornecedores +NumberOfOrdersByMonth=Número de Pedidos por Mês AmountOfOrdersByMonthHT=Numero de pedidos por mes (sem impostos) +ListOfOrders=Lista de Pedidos +CloseOrder=Fechar Pedido ConfirmCloseOrder=Você tem certeza que deseja definir este pedido como entregue? Uma vez entregue o pedido, o mesmo pode ser definido como cobrado. ConfirmDeleteOrder=Você tem certeza que deseja excluir este pedido? ConfirmValidateOrder=Você tem certeza que deseja validar este pedido sob o nome %s? @@ -51,13 +76,19 @@ ConfirmCancelOrder=Você tem certeza que deseja cancelar este pedido? ConfirmMakeOrder=Você tem certeza que deseja confirmar que fez este pedido em %s? GenerateBill=Faturar ClassifyShipped=Clasificar entregue +DraftOrders=Rascunhos de Pedidos DraftSuppliersOrders=Rascunho de pedidos para fornecedor +OnProcessOrders=Pedidos em Processo +RefOrder=Ref. Pedido RefCustomerOrder=Ref. pedido por cliente RefOrderSupplier=Ref. ordem por fonecedor RefOrderSupplierShort=Ref. Encomendar fornecedor +SendOrderByMail=Enviar pedido por e-mail ActionsOnOrder=Ações sobre o pedido NoArticleOfTypeProduct=Não existe artigos de tipo 'produto' e por tanto expedidos neste pedido +OrderMode=Método de pedido UserWithApproveOrderGrant=Usuários autorizados a aprovar os pedidos. +PaymentOrderRef=Pagamento de Pedido %s CloneOrder=Copiar o Pedido ConfirmCloneOrder=Você tem certeza que deseja clonar este pedido, o %s? DispatchSupplierOrder=Receber pedido de fornecedor %s diff --git a/htdocs/langs/pt_BR/other.lang b/htdocs/langs/pt_BR/other.lang index 82594ede742..317a0c490cc 100644 --- a/htdocs/langs/pt_BR/other.lang +++ b/htdocs/langs/pt_BR/other.lang @@ -3,7 +3,6 @@ SecurityCode=Código de segurança Tools=Ferramentas ToolsDesc=Todas as diversas ferramentas não incluídas em outras entradas de menu estão aqui coligidas.

Todas as ferramentas podem ser acessadas a partir do menu esquerdo. Birthday=Aniversário -BirthdayDate=Data de nascimento DateToBirth=Data de nascimento BirthdayAlertOn=Alerta de aniversário ativo BirthdayAlertOff=Alerta de aniversário desativado @@ -40,7 +39,6 @@ Notify_MEMBER_SUBSCRIPTION=Membro inscrito Notify_MEMBER_RESILIATE=Membro encerrado Notify_MEMBER_DELETE=Membro apagado Notify_PROJECT_CREATE=criação de projeto -Notify_TASK_CREATE=Tarefa criada Notify_TASK_MODIFY=Tarefa alterada Notify_TASK_DELETE=Tarefa excluída SeeModuleSetup=Veja configuração do módulo %s @@ -78,7 +76,6 @@ ClosedByLogin=Login usuario que fechou FileWasRemoved=o Arquivo foi eliminado DirWasRemoved=a pasta foi eliminado FeatureNotYetAvailable=Funcionalidade ainda não disponível na versão atual -FeaturesSupported=Funcionalidades suportadas Left=Esquerda Right=Direita WeightUnitton=tonelada @@ -122,10 +119,6 @@ YouMustClickToChange=Voce tem que clickar no seguinte atalho para validar a sua ForgetIfNothing=Se voce nao pediu esta mudanca, simplismente esquece deste email. Suas credenciais estao seguras. IfAmountHigherThan=Se a quantia mais elevada do que %s SourcesRepository=Repositório de fontes -Chart=Gráfico LibraryUsed=Biblioteca usada -LibraryVersion=Versão da biblioteca NoExportableData=não existe dados exportáveis (sem módulos com dados exportáveis gastodos, necessitam de permissões) WebsiteSetup=Configuração do módulo website -WEBSITE_PAGEURL=URL da página -WEBSITE_KEYWORDS=Palavras-chave diff --git a/htdocs/langs/pt_BR/paybox.lang b/htdocs/langs/pt_BR/paybox.lang index 383d49a131f..be992ac98b7 100644 --- a/htdocs/langs/pt_BR/paybox.lang +++ b/htdocs/langs/pt_BR/paybox.lang @@ -7,6 +7,7 @@ ThisScreenAllowsYouToPay=Esta página lhe permite fazer seu pagamento on-line de ThisIsInformationOnPayment=Aqui está a informação sobre o pagamento a realizar Creditor=Beneficiário PayBoxDoPayment=Continuar o pagamento com cartão +ToPay=Realizar pagamento YouWillBeRedirectedOnPayBox=Va a ser redirecionado a a página segura de Paybox para indicar seu cartão de crédito ToOfferALinkForOnlinePayment=URL para %s pagamento ToOfferALinkForOnlinePaymentOnOrder=URL que oferece uma interface de pagamento on-line %s baseada no valor de un pedido de cliente @@ -29,6 +30,4 @@ MessageKO=Mensagem na página de retorno de pagamento cancelado NewPayboxPaymentReceived=Novo pagamento recebido Paybox NewPayboxPaymentFailed=Novo pagamento Paybox tentou, mas não conseguiu PAYBOX_PAYONLINE_SENDEMAIL=Aviso por e-mail depois de um pagamento (sucesso ou falha) -PAYBOX_PBX_SITE=Valor para PBX SITE -PAYBOX_PBX_RANG=Valor para PBX Rang PAYBOX_PBX_IDENTIFIANT=Valor para PBX ID diff --git a/htdocs/langs/pt_BR/printing.lang b/htdocs/langs/pt_BR/printing.lang index bd46819e35b..32cd79be7c9 100644 --- a/htdocs/langs/pt_BR/printing.lang +++ b/htdocs/langs/pt_BR/printing.lang @@ -14,7 +14,6 @@ SetupDriver=Configuração de Driver TargetedPrinter=Impressora em questão UserConf=Configuração por usuário PRINTGCP_INFO=Configuração API do Google OAuth -PRINTGCP_AUTHLINK=Autenticação PrintGCPDesc=Este driver permite enviar documentos diretamente para uma impressora com o Google Cloud Print. GCP_displayName=Nome De Exibição GCP_Id=ID da impressora @@ -34,6 +33,5 @@ IPP_Media=Mídia da impressora IPP_Supported=Tipo de mídia DirectPrintingJobsDesc=Esta página lista os trabalhos de impressão encontrado para impressoras disponíveis. GoogleAuthNotConfigured=Configuração do Google OAuth não feito. Ativar módulo OAuth e definir um GoogleID/Secret. -GoogleAuthConfigured=Credenciais Google OAuth encontrado na configuração do módulo OAuth. PrintingDriverDescprintgcp=Configuração das variáveis para o driver de impressão do Google Cloud Print. PrintTestDescprintgcp=Lista de Impressoras para Google Cloud Print. diff --git a/htdocs/langs/pt_BR/productbatch.lang b/htdocs/langs/pt_BR/productbatch.lang index 0e2abcbcd04..9dc840a4524 100644 --- a/htdocs/langs/pt_BR/productbatch.lang +++ b/htdocs/langs/pt_BR/productbatch.lang @@ -2,12 +2,11 @@ ManageLotSerial=Use lote / número de série ProductStatusOnBatch=Sim (lote / série necessário) ProductStatusNotOnBatch=Não (lote / série não utilizado) -Batch=Lote / Serial +Batch=Lote / Série atleast1batchfield=Compra prazo de validade ou data de venda ou Lote / Número de série batch_number=Lote / Número de série BatchNumberShort=Lote / Serial EatByDate=Compra-por data -SellByDate=Data de venda DetailBatchNumber=Detalhes Lote / Serial DetailBatchFormat=Lote / Serial: %s - Compra-por: %s - Venda por: %s (Qtde: %d) printBatch=Lote / Serial: %s @@ -15,7 +14,7 @@ printEatby=Compra-por: %s printSellby=Venda-por: %s printQty=Qtde: %d AddDispatchBatchLine=Adicione uma linha para Shelf Life expedição -WhenProductBatchModuleOnOptionAreForced=Quando o módulo Lote / Serial estiver ligado, aumentar / diminuir modo estoque é forçado a última opção e não pode ser editado. Outras opções podem ser definidas como você quer. +WhenProductBatchModuleOnOptionAreForced=Quando o módulo Lote / Série está ativado, o modo automático de aumento / diminuição do estoque é forçado a enviar e o envio manual para recepção e não pode ser editado. Outras opções podem ser definidas como você deseja. ProductDoesNotUseBatchSerial=Este produto não utiliza Lote / número de série ProductLotSetup=Configuração do módulo lote/nº de série ShowCurrentStockOfLot=Exibir o estoque atual para o produto/lote diff --git a/htdocs/langs/pt_BR/products.lang b/htdocs/langs/pt_BR/products.lang index 0fdd0ce8344..70d56b61d7d 100644 --- a/htdocs/langs/pt_BR/products.lang +++ b/htdocs/langs/pt_BR/products.lang @@ -15,13 +15,13 @@ MassBarcodeInit=Inicialização de código de barras. MassBarcodeInitDesc=Esta página pode ser usado para inicializar um código de barras em objetos que não têm código de barras definidas. Verifique antes que a instalação do módulo de código de barras é completa. ProductAccountancyBuyCode=Código contábil (para compras) ProductAccountancySellCode=Código contábil (venda) -ProductsNotOnSell=Produto que não se vende nem se compra ProductsOnSellAndOnBuy=Produtos para venda e para compra -ServicesNotOnSell=Serviços não vendidos ServicesOnSellAndOnBuy=Serviços para venda e compra LastModifiedProductsAndServices=Últimos %s produtos/serviços modificados LastRecordedProducts=Últimos %s produtos gravados LastRecordedServices=Últimos %s serviços gravados +CardProduct0=Ficha do Produto +CardProduct1=Ficha do Serviço OnSell=Vende-se OnBuy=Para compra NotOnSell=Não se vende @@ -101,6 +101,7 @@ ShortLabel=Etiqueta curta set=conjunto se=conjunto meter=medidor +unitD=Día ProductCodeModel=Modelo de ref. de produto ServiceCodeModel=Modelo de ref. de serviço AlwaysUseNewPrice=Usar sempre preço atual do produto/serviço @@ -155,12 +156,14 @@ ComposedProduct=Sub-produto MinSupplierPrice=Preço mínimo fornecedor MinCustomerPrice=Preço de cliente mínimo DynamicPriceConfiguration=Configuração de preço dinâmico -DynamicPriceDesc=Com este módulo habilitado, na ficha do Produto, você poderá definir função matemática para calcular o preço ao cliente ou fornecedor. Esta função poderá usar todos os operadores matemáticos, algumas constantes e variáveis. Você pode definir aqui as variáveis e se a mesma precisa de atualização automática, a URL externa que o Dolibarr usará para consultar e atualizar automaticamente o valor da variável. AddVariable=Adicionar Variável AddUpdater=Adicionar atualizador GlobalVariables=As variáveis ​​globais VariableToUpdate=Variável para atualizar GlobalVariableUpdaters=Updaters variáveis ​​globais +GlobalVariableUpdaterHelp0=Analisa os dados JSON de URL especificada, valor especifica a localização de valor relevante, +GlobalVariableUpdaterType1=Dados WebService +GlobalVariableUpdaterHelp1=Analisa os dados WebService de URL especificada, NS especifica o namespace, valor especifica a localização de valor relevante, os dados devem conter os dados para enviar e método é o método chamando WS PropalMergePdfProductActualFile=Usar arquivos para adicionar em PDF Azur são / é PropalMergePdfProductChooseFile=Selecione os arquivos PDF IncludingProductWithTag=Incluindo produto/serviço com tag diff --git a/htdocs/langs/pt_BR/projects.lang b/htdocs/langs/pt_BR/projects.lang index fbe1965a978..fdd6a78c26e 100644 --- a/htdocs/langs/pt_BR/projects.lang +++ b/htdocs/langs/pt_BR/projects.lang @@ -112,7 +112,6 @@ DocumentModelBeluga=Modelo de projeto para visão geral objetos ligados DocumentModelBaleine=Modelo de relatório do Projeto para tarefas PlannedWorkload=carga horária planejada PlannedWorkloadShort=Carga de trabalho -ProjectReferers=Itens relacionados ProjectMustBeValidatedFirst=O projeto tem que primeiramente ser validado FirstAddRessourceToAllocateTime=Atribuir o recurso de um usuário à tarefa para alocação do tempo InputPerDay=Entrada por dia diff --git a/htdocs/langs/pt_BR/propal.lang b/htdocs/langs/pt_BR/propal.lang index bb3ae47ef10..1e451132e38 100644 --- a/htdocs/langs/pt_BR/propal.lang +++ b/htdocs/langs/pt_BR/propal.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - propal +ProposalsOpened=Propostas comerciais abertas ProposalCard=Cartao de proposta AddProp=Criar proposta ConfirmDeleteProp=Tem certeza que quer apagar esta proposta comercial? @@ -7,6 +8,7 @@ LastPropals=Últimas %s propostas LastModifiedProposals=Últimas %s propostas modificadas NoProposal=Sem propostas AmountOfProposalsByMonthHT=Valor por Mês (sem ICMS) +PropalsOpened=Aberto PropalStatusSigned=Assinado (A Faturar) PropalStatusNotSigned=Sem Assinar (Encerrado) PropalStatusBilled=Faturado diff --git a/htdocs/langs/pt_BR/resource.lang b/htdocs/langs/pt_BR/resource.lang index 3d3af7d0028..9916c0f1bc2 100644 --- a/htdocs/langs/pt_BR/resource.lang +++ b/htdocs/langs/pt_BR/resource.lang @@ -5,7 +5,6 @@ NoResourceLinked=Nenhum recurso vinculado ResourceCard=Cartao recursos AddResource=Criar recurso ResourcesLinkedToElement=Recursos vinculados ao elemento -ShowResource=Mostrar recurso ResourceElementPage=Elemento recursos ResourceCreatedWithSuccess=Recurso criado com sucesso RessourceLineSuccessfullyDeleted=Linha de Recursos excluído com sucesso diff --git a/htdocs/langs/pt_BR/salaries.lang b/htdocs/langs/pt_BR/salaries.lang index c74c6709d1f..74ecebc9e39 100644 --- a/htdocs/langs/pt_BR/salaries.lang +++ b/htdocs/langs/pt_BR/salaries.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Conta da Contabilidade padrão para pagamentos de salário SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta da Contabilidade padrão para despesas pessoais NewSalaryPayment=Novo pagamento de salário SalaryPayment=Pagamento de salário diff --git a/htdocs/langs/pt_BR/sendings.lang b/htdocs/langs/pt_BR/sendings.lang index 895b129808d..8110ae95b74 100644 --- a/htdocs/langs/pt_BR/sendings.lang +++ b/htdocs/langs/pt_BR/sendings.lang @@ -24,10 +24,6 @@ ActionsOnShipping=Eventos no envio LinkToTrackYourPackage=Atalho para rastreamento do pacote ShipmentCreationIsDoneFromOrder=No momento a criaçao de um novo envio e feito da ficha de pedido. ShipmentLine=Linha de envio -ProductQtyInCustomersOrdersRunning=Quantidade do produto em aberto ordens clientes -ProductQtyInSuppliersOrdersRunning=Quantidade do produto em ordens abertas fornecedores -ProductQtyInShipmentAlreadySent=Quantidade do produto da ordem do cliente abriu já foi enviado -ProductQtyInSuppliersShipmentAlreadyRecevied=Quantidade do produto a partir da ordem fornecedor abriu já recebeu NoProductToShipFoundIntoStock=Nenhum produto para enviar encontrado em armazém %s. Estoque correto ou voltar para escolher outro armazém. WeightVolShort=Peso/Vol. ValidateOrderFirstBeforeShipment=Você deve primeiro, antes de fazer as remessas, confirmar o pedido. diff --git a/htdocs/langs/pt_BR/stocks.lang b/htdocs/langs/pt_BR/stocks.lang index afbf3a0d70b..f2645735c6d 100644 --- a/htdocs/langs/pt_BR/stocks.lang +++ b/htdocs/langs/pt_BR/stocks.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Ficha do armazém Warehouse=Armazém NewWarehouse=Novo armazém / setor de armazenagem MenuNewWarehouse=Novo armazém @@ -29,14 +28,12 @@ StockMovements=Movimentações de estoque LabelMovement=Rótulo para a movimentação UnitPurchaseValue=Preço unitário de compra StockTooLow=Estoque muito baixo -StockLowerThanLimit=Estoque mais baixo do que o limite de alerta EnhancedValueOfWarehouses=Valor de estoques UserWarehouseAutoCreate=Criar existencias automaticamente na criação de um usuário IndependantSubProductStock=Estoque de produtos e estoque subproduto são independentes QtyDispatched=Quantidade despachada QtyDispatchedShort=Qtde despachada QtyToDispatchShort=Qtde a despachar -OrderDispatch=Recepção de estoques RuleForStockManagementDecrease=Regra para baixa automática de estoque ( baixa manual é sempre possível, independente se existe regra de baixa automática ativada) RuleForStockManagementIncrease=Regra para entrada automática de estoque ( entrada manual é sempre possível, independente se existe regra de entrada automática ativada) DeStockOnBill=Diminuir ações reais em clientes validação facturas / notas de crédito @@ -45,9 +42,7 @@ DeStockOnShipment=Diminuir o estoque real na validação do envio DeStockOnShipmentOnClosing=Baixa real no estoque ao classificar o embarque como fechado ReStockOnBill=Incrementar os estoques físicos sobre as faturas/recibos ReStockOnValidateOrder=Incrementar os estoques físicos sobre os pedidos -ReStockOnDispatchOrder=Aumentar os estoques reais no envio manual para armazenamento, depois de receber ordem fornecedor OrderStatusNotReadyToDispatch=Não tem ordem ainda não ou nato tem um status que permite envio de produtos em para armazenamento. -StockDiffPhysicTeoric=Explicação para a diferença entre o estoque físico e teórico NoPredefinedProductToDispatch=Não há produtos pré-definidos para este objeto. Portanto, não envio em estoque é necessária. DispatchVerb=Despachar StockLimitShort=Limite para alerta @@ -98,7 +93,6 @@ NbOfProductBeforePeriod=Quantidade de produtos em estoque antes do período sele NbOfProductAfterPeriod=Quantidade de produtos em estoque período selecionado depois MassMovement=Movimentações em massa SelectProductInAndOutWareHouse=Selecione um produto, uma quantidade, um armazém de origem e um armazém de destino e clique em "% s". Uma vez feito isso para todos os movimentos necessários, clique em "% s". -RecordMovement=Gravar a transferência ReceivingForSameOrder=Recibos para este fim StockMovementRecorded=Movimentações de estoque registradas RuleForStockAvailability=Regras sobre os requisitos de ações @@ -121,3 +115,6 @@ ProductStockWarehouseCreated=Limite de estoque para alerta e estoque ótimo dese ProductStockWarehouseUpdated=Limite de estoque para alerta e estoque ótimo desejado corretamente atualizados ProductStockWarehouseDeleted=Limite de estoque para alerta e estoque ótimo desejado corretamente excluídos AddNewProductStockWarehouse=Definir novo limite para alerta e estoque ótimo desejado +inventoryDraft=Em vigência +SelectCategory=Filtro por categoria +inventoryDeleteLine=Apagar linha diff --git a/htdocs/langs/pt_BR/stripe.lang b/htdocs/langs/pt_BR/stripe.lang new file mode 100644 index 00000000000..ba5d5563605 --- /dev/null +++ b/htdocs/langs/pt_BR/stripe.lang @@ -0,0 +1,3 @@ +# Dolibarr language file - Source file is en_US - stripe +STRIPE_PAYONLINE_SENDEMAIL=Endereço e-mail para aviso apos o pagamento (positivo ou nao) +StripeDoPayment=Continuar o pagamento com cartão diff --git a/htdocs/langs/pt_BR/supplier_proposal.lang b/htdocs/langs/pt_BR/supplier_proposal.lang index 82e3b298c05..7f2e80b0c10 100644 --- a/htdocs/langs/pt_BR/supplier_proposal.lang +++ b/htdocs/langs/pt_BR/supplier_proposal.lang @@ -8,6 +8,7 @@ SearchRequest=Procurar uma solicitação DraftRequests=Minutas de solicitação SupplierProposalsDraft=Minutas de propostas a fornecedor LastModifiedRequests=Últimas %s solicitações de preço modificadas +RequestsOpened=Solicitações de preço em aberto SupplierProposalArea=Área de propostas a fornecedor SupplierProposalShort=Proposta a fornecedor SupplierProposals=Propostas a fornecedor @@ -22,6 +23,7 @@ ConfirmValidateAsk=Você tem certeza que deseja validar esta solicitação de pr DeleteAsk=Excluir solicitação ValidateAsk=Validar solicitação SupplierProposalStatusDraft=Minuta (requer confirmação) +SupplierProposalStatusValidated=Confirmada (a solicitação está aberta) SupplierProposalStatusClosed=Fechada SupplierProposalStatusSigned=Aceita SupplierProposalStatusNotSigned=Recusada @@ -44,6 +46,7 @@ CommercialAsk=Solicitação de preço DefaultModelSupplierProposalCreate=Criação de modelo padrão DefaultModelSupplierProposalToBill=Tema padrão quando fechando uma solicitação de preço (aceita) DefaultModelSupplierProposalClosed=Tema padrão quando fechando uma solicitação de preço (recusada) +ListOfSupplierProposals=Lista de solicitações de proposta a fornecedor ListSupplierProposalsAssociatedProject=Lista de propostas de fornecedores associadas ao projeto SupplierProposalsToClose=Propostas a fornecedor a encerrar SupplierProposalsToProcess=Propostas a fornecedor a tratar diff --git a/htdocs/langs/pt_BR/suppliers.lang b/htdocs/langs/pt_BR/suppliers.lang index 53be113f8b5..c771aa93c7a 100644 --- a/htdocs/langs/pt_BR/suppliers.lang +++ b/htdocs/langs/pt_BR/suppliers.lang @@ -8,6 +8,7 @@ TotalSellingPriceMinShort=Total de preços de venda de sub-produtos SomeSubProductHaveNoPrices=Algums dos sub-produtos nao tem um preco definido AddSupplierPrice=Adicionar preço de compra ChangeSupplierPrice=Modificar preço de compra +SupplierPrices=Fornecedor preços ReferenceSupplierIsAlreadyAssociatedWithAProduct=Esta referencia de fornecedor ja esta asociada com a referenca: %s Availability=Entrega ExportDataset_fournisseur_1=Faturas de Fornecedores e Linhas de Fatura @@ -28,3 +29,4 @@ DoNotOrderThisProductToThisSupplier=Não pedir NotTheGoodQualitySupplier=Qualidade inadequada ReputationForThisProduct=Reputação BuyerName=Nome do comprador +BuyingPriceNumShort=Fornecedor preços diff --git a/htdocs/langs/pt_BR/trips.lang b/htdocs/langs/pt_BR/trips.lang index 6886bab20b0..1f2cbc356fc 100644 --- a/htdocs/langs/pt_BR/trips.lang +++ b/htdocs/langs/pt_BR/trips.lang @@ -1,10 +1,12 @@ # Dolibarr language file - Source file is en_US - trips ExpenseReports=Os relatórios de despesas +ShowExpenseReport=Mostrar relatório de despesas Trips=Os relatórios de despesas TripsAndExpenses=Relatórios de despesas TripsAndExpensesStatistics=Estatísticas de relatórios de despesas TripCard=Despesa de cartão de relatório AddTrip=Criar relatório de despesas +TypeFees=Tipos de benefício ShowTrip=Mostrar relatório de despesas FeesKilometersOrAmout=Quantidade de quilômetros DeleteTrip=Excluir relatório de despesas @@ -13,7 +15,6 @@ ListToApprove=Esperando aprovação ExpensesArea=Área de relatórios de despesas ClassifyRefunded=Classificar 'Rembolsado' ExpenseReportWaitingForApproval=Um novo relatório de despesas foi apresentada para aprovação -ExpenseReportWaitingForApprovalMessage=Um novo relatório de despesas foi apresentado e está aguardando aprovação.\n - Usuário: %s \n - Período: %s \n Clique aqui para autenticar: %s TripId=Id relatório de despesas TripSociete=Informações da empresa TripNDF=Informações relatório de despesas diff --git a/htdocs/langs/pt_BR/users.lang b/htdocs/langs/pt_BR/users.lang index d0087d2d529..2bbe849f675 100644 --- a/htdocs/langs/pt_BR/users.lang +++ b/htdocs/langs/pt_BR/users.lang @@ -32,7 +32,7 @@ SuperAdministratorDesc=Administrador geral DefaultRights=Permissões por Padrao DefaultRightsDesc=Defina aqui padrão permissões que são concedidas automaticamente para um novo usuário criado (Vá em fichas de usuário para alterar as permissões de um usuário existente). DolibarrUsers=Usuário Dolibarr -LastName=Sobrenome +LastName=Último nome FirstName=Primeiro nome ListOfGroups=Lista de grupos NewGroup=Novo grupo @@ -59,8 +59,8 @@ CreateDolibarrThirdParty=Criar um fornecedor LoginAccountDisableInDolibarr=A conta está desativada no Dolibarr ExportDataset_user_1=Usuários e Atributos DomainUser=Usuário de Domínio -CreateInternalUserDesc=Este formulario permite criar um usuario interno a sua compania/fundação. Para criar um usuario externo (cliente, fornecedor, ...), use o botão 'Criar usuario Dolibarr' da ficha de contatos dos terceiro.. -InternalExternalDesc=Um usuário interno é um usuário que pertence à sua Empresa/Instituição.
Um usuário externo é um usuário cliente, fornecedor ou outro.

Nos 2 casos, as permissões de Usuários definem os direitos de acesso, mas o usuário externo pode além disso ter um gerente de menus diferente do usuário interno (ver Inicio - configuração - visualização) +CreateInternalUserDesc=Este formulário permite que você crie um usuário interno para sua empresa / organização. Para criar um utilizador externo (cliente, fornecedor, ...), utilize o botão 'Criar Novo Contato' a partir da página de Terceiros > Contatos. +InternalExternalDesc=Um usuário interno é um usuário que faz parte de sua empresa / organização.
Um usuário externo é um cliente, um fornecedor ou outros.

Em ambos os casos, as permissões definem direitos no Dolibarr, também o usuário externo pode ter um gerenciador de menu diferente do usuário interno (Ver Início - Configuração - Aparência) PermissionInheritedFromAGroup=A permissão dá-se já que o herda de um grupo ao qual pertence o usuário. UserWillBeInternalUser=Usuario criado sera um usuario interno (porque nao esta conectado a um particular terceiro) UserWillBeExternalUser=Usuario criado sera um usuario externo (porque esta conectado a um particular terceiro) @@ -87,7 +87,6 @@ UseTypeFieldToChange=Use campo Tipo para mudar OpenIDURL=URL do OpenID LoginUsingOpenID=Usar o OpenID para efetuar o login ColorUser=Cor do usuario -DisabledInMonoUserMode=Desativado no modo de manutenção UserAccountancyCode=Código de contabilidade do usuário UserLogoff=Usuário desconetado UserLogged=Usuário Conectado diff --git a/htdocs/langs/pt_BR/website.lang b/htdocs/langs/pt_BR/website.lang index f474d2017ec..7d24c29d493 100644 --- a/htdocs/langs/pt_BR/website.lang +++ b/htdocs/langs/pt_BR/website.lang @@ -11,13 +11,9 @@ EditPageMeta=Editar Meta Website=Web Site Webpage=Página na web PreviewOfSiteNotYetAvailable=A Pré-visualização do seu website %s ainda não está disponível. Primeiro você deverá adicionar uma página. -RequestedPageHasNoContentYet=A página com id %s ainda não está disponível ou o arquivo .tpl.php em cache foi removido. Edite o conteúdo da página para resolver isso. PageDeleted=Página '%s' do website %s foi deletada ViewSiteInNewTab=Visualizar site numa nova aba ViewPageInNewTab=Visualizar página numa nova aba SetAsHomePage=Definir com Página Inicial RealURL=URL real ViewWebsiteInProduction=Visualizar website usando origem URLs -SetHereVirtualHost=Se você puder definir, no seu servidor web, uma hospedagem virtual dedicada com um diretório raíz em %s, defina aqui o nome do servidor virtual para que a visualização também possa ser feita usando o acesso direto a este servidor web e não apenas o uso do servidor Dolibarr. -PreviewSiteServedByWebServer=Visualizar %s em uma nova aba. A %s responderá em um servidor web externo (como Apache, Nginx, IIS). Você deve primeiramente instalar e configurar este servidor.
URL do %s que responde em um servidor externo:
%s -PreviewSiteServedByDolibarr=Visualizar %s em uma nova aba. A %s responderá em um servidor Dolibarr de forma a não precisar qualquer servidor web extra (como Apache, Nginx, IIS) a ser instalado.
O inconveniente é que a URL das páginas estarão usando o caminho do seu Dolibarr.
URL do %s hospedado pelo Dolibarr:
%s diff --git a/htdocs/langs/pt_BR/withdrawals.lang b/htdocs/langs/pt_BR/withdrawals.lang index 712fbc298e5..db8952385bc 100644 --- a/htdocs/langs/pt_BR/withdrawals.lang +++ b/htdocs/langs/pt_BR/withdrawals.lang @@ -14,7 +14,6 @@ NbOfInvoiceToWithdraw=Nº da fatura com pedido por Débito direto NbOfInvoiceToWithdrawWithInfo=Nº da fatura do cliente com pedidos para pagamento por Débito direto com informação bancária definida InvoiceWaitingWithdraw=Fatura aguardando o Débito direto WithdrawsRefused=Débito direto recusado -NoInvoiceToWithdraw=Nenhuma fatura a cliente com modo de pagamento 'Débito Directo' em espera. Ir ao separador 'Débito Directo' na ficha da fatura para fazer um pedido. ResponsibleUser=Usuário Responsável dos Débitos Diretos WithdrawStatistics=Estatísticas do pagamento por Débito direto WithdrawRejectStatistics=Estatísticas de recusa do pagamento por Débito direto diff --git a/htdocs/langs/pt_BR/workflow.lang b/htdocs/langs/pt_BR/workflow.lang index 5bfae1d7762..6082a00813b 100644 --- a/htdocs/langs/pt_BR/workflow.lang +++ b/htdocs/langs/pt_BR/workflow.lang @@ -1,5 +1,4 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Configuração do módulo de Fluxo de Trabalho WorkflowDesc=Este módulo é concebido para modificar o comportamento das ações automáticas para aplicação. Por padrão, o fluxo de trabalho está aberto (você pode fazer as coisas na ordem que você quiser). Você pode ativar as ações automáticas que você está interessado. ThereIsNoWorkflowToModify=Não há alterações do fluxo de trabalho disponíveis com os módulos ativados. descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma ordem de cliente depois de uma proposta comercial é assinado @@ -10,4 +9,3 @@ descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada ao b descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique os pedido do cliente vinculado as fonte(s) das faturas quando a fatura do cliente ainda não foi paga descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique os pedidos do cliente vinculado as fonte(s) das faturas quando a fatura do cliente for paga. descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar proposta fonte ligada a construir quando fatura do cliente é validado -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar o pedido da origem conectado à remessa como remessa validada e a quantidade remetida é a mesma do pedido diff --git a/htdocs/langs/pt_PT/accountancy.lang b/htdocs/langs/pt_PT/accountancy.lang index b10124ac9a9..6c15becac1f 100644 --- a/htdocs/langs/pt_PT/accountancy.lang +++ b/htdocs/langs/pt_PT/accountancy.lang @@ -1,5 +1,5 @@ # Dolibarr language file - en_US - Accounting Expert -ACCOUNTING_EXPORT_SEPARATORCSV=Separador de coluna para o ficheiro exportado +ACCOUNTING_EXPORT_SEPARATORCSV=Separador de coluna para o ficheiro exportadocc ACCOUNTING_EXPORT_DATE=Formato da data para o ficheiro exportado ACCOUNTING_EXPORT_PIECE=Exportar a referência da peça ACCOUNTING_EXPORT_GLOBAL_ACCOUNT=Exportar com a conta global @@ -28,29 +28,30 @@ OverviewOfAmountOfLinesBound=Visão geral da quantidade de linhas já vinculadas OtherInfo=Outra informação DeleteCptCategory=Remover conta contabilistica do grupo ConfirmDeleteCptCategory=Tem a certeza que deseja remover esta conta contabilística deste grupo? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Área de contabilidade AccountancyAreaDescIntro=O uso do módulo de contabilidade é feito em várias etapas: AccountancyAreaDescActionOnce=As seguintes ações são geralmente executadas apenas uma vez, ou uma vez por ano ... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) +AccountancyAreaDescActionOnceBis=Os próximos passos devem ser efetuados para economizar tempo no futuro, sugerindo-lhe a conta contabilística padrão correta quando estiver a ser feito um registo no Livro Razão e nos Diários. AccountancyAreaDescActionFreq=As seguintes ações são normalmente executadas a cada mês, semana ou dia para grandes empresas... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s +AccountancyAreaDescJournalSetup=PASSO %s: Crie o verifique o conteúdo do sua lista de diários a partir do menu %s AccountancyAreaDescChartModel=PASSO %s: Crie um modelo de gráfico de conta no menu %s AccountancyAreaDescChart=PASSO %s: Criar or verificar conteúdo do seu gráfico de conta no menu %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. +AccountancyAreaDescVat=PASSO %s: Defina a conta contabilística para cada taxa de IVA. Para tal pode usar a entrada %s do menu. +AccountancyAreaDescExpenseReport=PASSO %s: Defina a conta contabilística para o relatório de despesa. Para tal pode usar a entrada do menu %s. +AccountancyAreaDescSal=PASSO %s: Defina a conta contabilística para o pagamento de salários. Para tal pode usar a entrada do menu %s. +AccountancyAreaDescContrib=PASSO %s: Defina a conta contabilística para despesas especiais (outros impostos). Para tal pode usar a entrada do menu %s. +AccountancyAreaDescDonation=PASSO %s: Defina a conta contabilística para donativos. Para tal pode usar a entrada do menu %s. +AccountancyAreaDescMisc=PASSO %s: Defina a conta contabilística para transações diversas. Para tal pode usar a entrada %s do menu. +AccountancyAreaDescLoan=PASSO %s: Defina a conta contabilística para empréstimos. Para tal pode usar a entrada do menu %s. AccountancyAreaDescBank=PASSO %s: Defina a conta contabilística para cada conta bancária e financeira. Para tal vá à ficha de cada conta bancária ou financeira. Comece na página %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescProd=PASSO %s: Defina a contas contabilística para os seus produtos. Para tal pode usar a entrada %s do menu. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. +AccountancyAreaDescBind=PASSO %s: Verifique a ligação entre as linhas %s existentes e a conta contabilística foi efetuada, de forma a que a aplicação possa registar as transações no Livro Razão num só clique. Complete ligações que faltam. Para tal, utilize a entrada do menu %s. +AccountancyAreaDescWriteRecords=PASSO %s: Registar transações no Livro Razão. Para esse efeito, vá ao menu %s e clique no botão %s. AccountancyAreaDescAnalyze=PASSO %s: Adicionar ou editar transações e gerar relatórios e ficheiros a exportar. AccountancyAreaDescClosePeriod=PASSO %s: Fechar período para que não seja possível modificar no futuro. @@ -61,9 +62,8 @@ ChangeAndLoad=Mudar e carregar Addanaccount=Adicione uma conta contabilística AccountAccounting=Conta contabilística AccountAccountingShort=Conta -SubledgerAccount=Subledger Account -subledger_account=Subledger Account -ShowAccountingAccount=Show accounting account +SubledgerAccount=Conta do Livro Auxiliar +ShowAccountingAccount=Mostrar conta contabilística ShowAccountingJournal=Mostrar diário contabilistico AccountAccountingSuggest=Conta contabilística sugerida MenuDefaultAccounts=Contas padrão @@ -79,8 +79,9 @@ SuppliersVentilation=Fornecedor de ligação factura ExpenseReportsVentilation=Vinculação do relatório de despesas CreateMvts=Criar nova transação UpdateMvts=Modificação de uma transação -WriteBookKeeping=Journalize transactions in Ledger -Bookkeeping=Ledger +ValidTransaction=Validate transaction +WriteBookKeeping=Registar transações no Livro Razão +Bookkeeping=Livro Razão AccountBalance=Saldo da conta CAHTF=Total de compras em fornecedores sem impostos @@ -142,17 +143,18 @@ NumPiece=Número da peça TransactionNumShort=Núm. de transação AccountingCategory=Grupos de contas contabilísticas GroupByAccountAccounting=Agrupar por conta contabilística +ByAccounts=By accounts NotMatch=Não configurado -DeleteMvt=Delete Ledger lines +DeleteMvt=Eliminar as linhas do Livro Razão DelYear=Ano a apagar DelJournal=Diário a apagar -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger -DelBookKeeping=Delete record of the Ledger +ConfirmDeleteMvt=Isto irá apagar todas as linhas do Livro Razão para o ano atual e/ou de um diário específico. Pelo menos um critério é necessário. +ConfirmDeleteMvtPartial=Isto irá apagar a(s) linha(s) selecionada(s) do livro razão +DelBookKeeping=Eliminar entrada do Livro Razão FinanceJournal=Diário financeiro ExpenseReportsJournal=Diário de relatórios de despesas DescFinanceJournal=Diário financeiro incluindo todos os tipos de pagamentos por conta bancária -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=Esta é uma visão de registos que estão vinculados a um conta de contabilidade de produtos/serviços e pode ser registada no Livro Razão. VATAccountNotDefined=Conta para efeitos de IVA não definido ThirdpartyAccountNotDefined=Conta para terceiros não definido ProductAccountNotDefined=Conta para o produto não definido @@ -170,7 +172,7 @@ DescThirdPartyReport=Consulte aqui a lista de clientes e fornecedores e as suas ListAccounts=Lista de contas contabilísticas Pcgtype=Classe de conta -Pcgsubtype=Subclass of account +Pcgsubtype=Sub-classe de conta TotalVente=Total de volume de negócios sem impostos TotalMarge=Margem total de vendas @@ -194,9 +196,9 @@ AutomaticBindingDone=Vinculação automática efetuada ErrorAccountancyCodeIsAlreadyUse=Erro, não pode apagar esta conta contabilística porque está a ser utilizada MvtNotCorrectlyBalanced=O movimento não foi balanceado corretamente. Crédito = %s. Débito = %s FicheVentilation=Cartão de vinculação -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. -NoNewRecordSaved=No new record dispatched +GeneralLedgerIsWritten=As transações são escritas no Livro Razão +GeneralLedgerSomeRecordWasNotRecorded=Algumas das transações não puderam ser gravadas. Se não existir outra mensagem de erro, então é provável que as transações já tenham sido gravadas. +NoNewRecordSaved=Nenhum registo novo guardado ListOfProductsWithoutAccountingAccount=Lista de produtos não vinculados a qualquer conta contabilística ChangeBinding=Alterar vinculação @@ -214,12 +216,14 @@ AccountingJournalType1=Várias operações AccountingJournalType2=Vendas AccountingJournalType3=Compras AccountingJournalType4=Banco +AccountingJournalType5=Expenses report AccountingJournalType9=Contém novo ErrorAccountingJournalIsAlreadyUse=Este diário já está a ser utilizado ## Export Exports=Exportados Export=Exportar +ExportDraftJournal=Export draft journal Modelcsv=Modelo de exportação OptionsDeactivatedForThisExportModel=Para este modelo de exportação, as opções estão desativadas Selectmodelcsv=Selecione um modelo de exportação @@ -231,7 +235,7 @@ Modelcsv_ciel=Exportar relativamente a Sage Ciel Compta ou Compta Evolution Modelcsv_quadratus=Exportar relativamente a Quadratus QuadraCompta Modelcsv_ebp=Exportar relativamente a EBP Modelcsv_cogilog=Exportar relativamente a Cogilog -Modelcsv_agiris=Export towards Agiris (Test) +Modelcsv_agiris=Exportar para Agiris (Teste) ChartofaccountsId=ID de plano de contas ## Tools - Init accounting account on product / service @@ -256,12 +260,12 @@ Calculated=Calculado Formula=Fórmula ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them +SomeMandatoryStepsOfSetupWereNotDone=Não foram efetuados alguns passos obrigatórios da configuração, por favor complete-os ErrorNoAccountingCategoryForThisCountry=Não existe grupo de conta contabilística disponível para o país %s (Consulte Inicio -> Configuração -> Dicionários) ExportNotSupported=O formato de exportação configurado não é suportado nesta página BookeppingLineAlreayExists=Linhas já existente em contabilidade -NoJournalDefined=No journal defined +NoJournalDefined=Nenhum diário definido Binded=Linhas vinculadas ToBind=Linhas a vincular -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. +WarningReportNotReliable=Aviso: este relatório não é baseado no livro razão, por isso não contém transações que foram modificadas manualmente no livro razão. O relatório será substituído por uma versão mais completa do mesmo numa próxima versão. diff --git a/htdocs/langs/pt_PT/admin.lang b/htdocs/langs/pt_PT/admin.lang index 3b44d6044de..94cf0df051f 100644 --- a/htdocs/langs/pt_PT/admin.lang +++ b/htdocs/langs/pt_PT/admin.lang @@ -10,19 +10,19 @@ VersionUnknown=Desconhecida VersionRecommanded=Recomendada FileCheck=Verificador da integridade dos ficheiros FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. -FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. -FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. -FileIntegritySomeFilesWereRemovedOrModified=Files integrity check has failed. Some files were modified, removed or added. -GlobalChecksum=Global checksum +FileIntegrityIsStrictlyConformedWithReference=A integridade dos ficheiros é ajusta-se rigorosamente conforme a referência. +FileIntegrityIsOkButFilesWereAdded=A verificação da integridade dos arquivos passou, no entanto, alguns arquivos novos foram adicionados. +FileIntegritySomeFilesWereRemovedOrModified=A verificação da integridade dos ficheiros falhou. Alguns ficheiros foram modificados, removidos ou adicionados. +GlobalChecksum=Checksum global MakeIntegrityAnalysisFrom=Make integrity analysis of application files from -LocalSignature=Embedded local signature (less reliable) -RemoteSignature=Remote distant signature (more reliable) +LocalSignature=Assinatura local embutida (menos segura) +RemoteSignature=Assinatura remota (mais segura) FilesMissing=Ficheiros em falta FilesUpdated=Ficheiros atualizados -FilesModified=Modified Files -FilesAdded=Added Files +FilesModified=Ficheiros modificados +FilesAdded=Ficheiros adiocionados FileCheckDolibarr=Verficar a integridade dos ficheiros de aplicação -AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package +AvailableOnlyOnPackagedVersions=O ficheiro local utilizado na verificação de integridade só está disponível quando a aplicação é instalada a partir de um pacote oficial XmlNotFound=Ficheiro XML de integridade da aplicação não encontrado SessionId=Id. da Sessão SessionSaveHandler=Utilizador para guardar as sessões @@ -48,7 +48,7 @@ InternalUsers=Utilizadores internos ExternalUsers=Utilizadores externos GUISetup=Exibir SetupArea=Área de configuração -UploadNewTemplate=Upload new template(s) +UploadNewTemplate=Carregar novo(s) modelo(s) FormToTestFileUploadForm=Formulário para testar o envio de ficheiro (de acordo com a configuração) IfModuleEnabled=Nota: sim, só é eficaz se módulo %s estiver ativado RemoveLock=Se este existir, remova o ficheiro %s para permitir a utilização da ferramenta de atualização. @@ -69,7 +69,7 @@ DelaiedFullListToSelectCompany=Esperar até que introduza valores no campo antes DelaiedFullListToSelectContact=Esperar até que introduza valores no campo antes de carregar a lista de contactos (isto pode aumentar a performance se você tiver um elevado número de contactos, mas é menos conveniente) NumberOfKeyToSearch=Número de carateres para acionar a procura: %s NotAvailableWhenAjaxDisabled=Não está disponível quando o Ajax está desativado -AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party +AllowToSelectProjectFromOtherCompany=No documento de um terceiro, pode escolher um projeto associado a outro terceiro JavascriptDisabled=JavaScript desativado UsePreviewTabs=Utilizar separadores de pré-visualização ShowPreview=Mostrar pré-visualização @@ -123,7 +123,7 @@ PHPTZ=Fuso Horário do servidor do PHP DaylingSavingTime=Horário de verão CurrentHour=Hora do PHP (servidor) CurrentSessionTimeOut=Sessão atual expirou -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=Para definir um fuso horário diferente do PHP (não é necessário), você pode tentar adicionar um ficheiro .htaccess contendo uma linha como esta "SetEnv TZ Europe/Paris" HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgets @@ -143,7 +143,7 @@ PurgeAreaDesc=Esta página permite-lhe eliminar todos os ficheiros gerados ou ar PurgeDeleteLogFile=Eliminar o ficheiro de registo %s definido para o módulo Syslog (sem risco de perda de dados) PurgeDeleteTemporaryFiles=Eliminar todos os ficheiros temporários (sem risco de perder os dados) PurgeDeleteTemporaryFilesShort=Eliminar ficheiros temporários -PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros na diretoria %s. Não só os ficheiros temporários mas também as cópias de segurança da base de dados, ficheiros anexados aos elementos (como faturas, terceiros, ...) e enviados para o módulo GED serão eliminados. +PurgeDeleteAllFilesInDocumentsDir=Eliminar todos os ficheiros na diretoria %s. Não só os ficheiros temporários mas também as cópias de segurança da base de dados, ficheiros anexados aos elementos (como faturas, terceiros, ...) e enviados para o módulo GCE serão eliminados. PurgeRunNow=Limpar agora PurgeNothingToDelete=Nenhuma diretoria ou ficheiros para eliminar. PurgeNDirectoriesDeleted=%s ficheiros ou diretorias eliminadas. @@ -186,15 +186,15 @@ EncodeBinariesInHexa=Codificar os campos binários em hexadecimal IgnoreDuplicateRecords=Ignorar erros de registos duplicados (INSERT IGNORE) AutoDetectLang=Autodeteção (navegador) FeatureDisabledInDemo=Opção desativada em demo -FeatureAvailableOnlyOnStable=Feature only available on official stable versions +FeatureAvailableOnlyOnStable=Funcionalidade apenas disponível em versões estáveis ​​oficiais Rights=Permissões BoxesDesc=Widgets são componentes que mostram alguma informação, os quais pode adicionar a algumas páginas. Pode escolher entre mostrar a widget ou não selecionando a página alvo e clicar em 'Ativar', ou clicando no caixote do lixo para a desativar. OnlyActiveElementsAreShown=Só são mostrados os elementos de módulos ativos. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Os módulos Dolibarr definem as funcionalidades que estão ativas no programa. Alguns módulos requerem permissões de utilizadores, depois de serem ativados. Clique no botão on/off para ativar o módulo/funcionalidade. ModulesMarketPlaceDesc=Pode encontrar mais módulos para descarregar noutros sites da internet... -ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. +ModulesDeployDesc=Se as permissões no seu sistema de ficheiros o permitir, você pode usar esta ferramenta para implementar um módulo externo. O módulo será então visível no separador %s. ModulesMarketPlaces=Procurar módulos externos... -GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. +GoModuleSetupArea=Para implementar/instalar um novo módulo, vá para a área de configuração do Módulo em %s. DoliStoreDesc=DoliStore, o mercado oficial para módulos externos Dolibarr ERP/CRM DoliPartnersDesc=Lista de empresas que desenvolvem módulos ou funcionalidades personalizadas (Nota: qualquer pessoa com experiência em programação PHP pode proporcionar o desenvolvimento personalizado para um projeto open source) WebSiteDesc=Indique sites de referência para encontrar mais módulos... @@ -234,16 +234,16 @@ HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte para HelpCenterDesc2=Alguns destes serviços só estão disponíveis em inglês. CurrentMenuHandler=Gestor de menu atual MeasuringUnit=Unidade de medição -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation -SpaceX=Space X -SpaceY=Space Y -FontSize=Font size -Content=Content +LeftMargin=Margem esquerda +TopMargin=Margem superior +PaperSize=Tipo de papel +Orientation=Orientação +SpaceX=Espaço X +SpaceY=Espaço Y +FontSize=Tamanho da letra +Content=Conteúdo NoticePeriod=Período de aviso -NewByMonth=New by month +NewByMonth=Novo por mês Emails=Emails EMailsSetup=Configuração de emails EMailsDesc=Esta página permite substituir os parâmetros PHP relacionados com o envio de emails. Na maioria dos casos em sistemas operativos Unix/Linux, os parâmetros PHP estão correctos e esta página é inútil. @@ -264,7 +264,7 @@ MAIN_DISABLE_ALL_SMS=Desative todos os envios de SMS (para fins de teste ou demo MAIN_SMS_SENDMODE=Método a usar para enviar SMS MAIN_MAIL_SMS_FROM=Número de telefone predefinido do remetente para envio de SMS MAIN_MAIL_DEFAULT_FROMTYPE=E-mail do remetente por predefinição para os envios manuais (E-mail do Utilizador ou da Empresa) -UserEmail=User email +UserEmail=Email do utilizador CompanyEmail=E-mail da empresa FeatureNotAvailableOnLinux=Funcionalidade não disponivel em sistemas Unix. Teste parâmetros sendmail localmente. SubmitTranslation=Se a tradução para esta lingua não estiver completa ou se encontrar erros, pode corrigi-los editando os ficheiros no diretório langs/%s e submetendo-os em www.transifex.com/dolibarr-association/dolibarr/ @@ -281,7 +281,7 @@ ModuleFamilyOther=Outro ModuleFamilyTechnic=Ferramentas multi-módulos ModuleFamilyExperimental=Módulos testes ModuleFamilyFinancial=Módulos financeiros (Contabilidade/Tesouraria) -ModuleFamilyECM=Gestão de conteúdo electrónico (ECM) +ModuleFamilyECM=Gestão de conteúdo empresarial (GCE) ModuleFamilyPortal=Websites e outras aplicações de interface de utilizador ModuleFamilyInterface=Interfaces com sistemas externos MenuHandlers=Gestores de menu @@ -302,11 +302,11 @@ YouCanSubmitFile=Para este passo, pode enviar o pacote utilizando esta ferrament CurrentVersion=Versão atual do Dolibarr CallUpdatePage=Vá à página que atualiza a estrutura e dados da base de dados: %s. LastStableVersion=Última versão estável -LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author -LastActivationIP=Latest activation IP +LastActivationDate=Última data de ativação +LastActivationAuthor=Autor mais recente de ativação +LastActivationIP=Último IP ativo UpdateServerOffline=Atualizar servidor offline -WithCounter=Manage a counter +WithCounter=Gerir um contador GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:
{000000} corresponde a um número que se incrementa em cada um de %s. Introduza um número de zeros idêntico ao comprimento do número que deseja mostrar. O contador completar-se-á a partir de zeros pela esquerda de forma a ter tantos zeros como a máscara.
{000000+000} igual ao anterior, com uma compensação em algarismos correspondente ao número à direita do sinal + que é aplicada a partir do primeiro %s.
{000000@x} igual ao anterior, mas o contador volta a zero quando se chega ao mês x (x entre 1 e 12, 0 para usar o primeiros meses do mês fiscal definido na sua configuração, 99 para voltar a zero todos os meses). Se esta opção se utiliza e x é igual ou superior a 2, então a sequência {yy}{mm} ou {yyyy}{mm} também é necessária.
{dd} días (01 a 31).
{mm} mês (01 a 12).
{yy}, {yyyy} ou {y} ano formatado em 2, 4 ou 1 algarismos.
GenericMaskCodes2={cccc} o código do cliente em N caracteres
{cccc000} o código de cliente em N caracteres, seguido de um contador dedicado ao cliente. Este contador é reiniciado ao mesmo tempo que o contador global.
{tttt} O código do tipo de terceiro em N caracteres (ver dicionário->Tipos de terceiros).
GenericMaskCodes3=Quaisquer outros caracteres na máscara não sofrerão alterações.
Não são permitidos espaços.
@@ -329,12 +329,12 @@ UseACacheDelay= Atraso, em segundos, para o caching de exportação (0 ou em bra DisableLinkToHelpCenter=Ocultar hiperligação "Precisa de ajuda ou apoio" na página de inicio de sessão DisableLinkToHelp=Ocultar a hiperligação para a ajuda on-line "%s" AddCRIfTooLong=Não há envolvimento automático, por isso, se estiver fora de linha da página de documentos, por ser demasiado longo, deve adicionar um parágrafo, "Enter", na área de texto. -ConfirmPurge=De certeza que quer executar esta limpeza?
Isto eliminará definitivamente todos os seus ficheiros de dados sem forma de os recuperar (ficheiros GED, ficheiros anexados) +ConfirmPurge=De certeza que quer executar esta limpeza?
Isto eliminará definitivamente todos os seus ficheiros de dados sem forma de os recuperar (ficheiros GCE, ficheiros anexados) MinLength=Comprimento mínimo LanguageFilesCachedIntoShmopSharedMemory=Ficheiros .lang carregados na memória partilhada ExamplesWithCurrentSetup=Exemplos com a configuração atual ListOfDirectories=Lista de diretórios com modelos OpenDocument -ListOfDirectoriesForModelGenODT=Lista de diretórios que contêm ficheiros template com formato OpenDocument.

Digite aqui o caminho completo dos diretórios.
Adicione um "Enter" entre cada diratório.
Para adicionar um diretório do módulo GED, adicione aqui DOL_DATA_ROOT/ecm/seudiretorio.

Ficheiros nesses diretórios têm de acabar com .odt ou .ods. +ListOfDirectoriesForModelGenODT=Lista de diretórios que contêm ficheiros template com formato OpenDocument.

Digite aqui o caminho completo dos diretórios.
Adicione um "Enter" entre cada diratório.
Para adicionar um diretório do módulo GCE, adicione aqui DOL_DATA_ROOT/ecm/seudiretorio.

Ficheiros nesses diretórios têm de acabar com .odt ou .ods. NumberOfModelFilesFound=Número de ficheiros de modelos ODT/ODS encontrados nesses diretórios ExampleOfDirectoriesForModelGen=Exemplos de sintaxe:
c:\\mydir
/home/mydir
DOL_DATA_ROOT/ecm/ecmdir FollowingSubstitutionKeysCanBeUsed=
Para saber como criar os seus modelos de documentos ODT, antes de armazená-los nestes diretórios, leia a documentação no wiki: @@ -384,11 +384,11 @@ ExtrafieldSelect = Lista de selecção ExtrafieldSelectList = Selecionar da tabela ExtrafieldSeparator=Separador (não um campo) ExtrafieldPassword=Palavra Passe -ExtrafieldRadio=Radio buttons (on choice only) +ExtrafieldRadio=Radio buttons (apenas em escolha múltipla) ExtrafieldCheckBox=Caixas de marcação ExtrafieldCheckBoxFromList=Caixas de marcação da tabela ExtrafieldLink=Vincular a um objeto -ComputedFormula=Computed field +ComputedFormula=Campo calculado ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=A lista de parâmetros tem seguir o seguinte esquema chave,valor

por exemplo:
1,value1
2,value2
3,value3
...

Para que a lista dependa noutra lista de atributos complementares:
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Para que a lista dependa doutra lista:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=A lista de parâmetros tem de seguir o seguinte esquema chave,valor

por exemplo:
1,value1
2,value2
3,value3
... @@ -417,33 +417,33 @@ ConfirmEraseAllCurrentBarCode=Tem certeza de que deseja apagar todos os códigos AllBarcodeReset=Todos os códigos de barras foram removidos NoBarcodeNumberingTemplateDefined=Nenhum modelo de numeração de códigos de barras ativo na configuração do módulo "Código de barras". EnableFileCache=Ativar cache de ficheiros -ShowDetailsInPDFPageFoot=Add more details into footer of PDF files, like your company address, or manager names (to complete professional ids, company capital and VAT number). +ShowDetailsInPDFPageFoot=Adicionar mais detalhes no rodapé dos ficheiros PDF, como a morada da sua empresa, ou nomes de gerente (para completar IDs profissionais, capital da empresa e número de IVA). NoDetails=Sem mais detalhes no rodapé DisplayCompanyInfo=Exibir morada da empresa -DisplayCompanyManagers=Display manager names +DisplayCompanyManagers=Mostrar nomes dos gestores DisplayCompanyInfoAndManagers=Exibir a morada da empresa e menus de gestor EnableAndSetupModuleCron=If you want to have this recurring invoice beeing generated automatically, module *%s* must be enabled and correctly setup. Otherwise, generation of invoices must be done manually from this template with button *Create*. Note that even if you enabled automatic generation, you can still safely launch manual generation. Duplicates generation for same period are not possible. ModuleCompanyCodeAquarium=Devolve um código contabilístico composto de:
%s seguido do código do terceiro (fornecedor) para o código contabilístico de fornecedor,,
%s seguido do código do terceiro (cliente) para o código contabilístico do cliente. ModuleCompanyCodePanicum=Devolve um código contabilistico vazio. ModuleCompanyCodeDigitaria=O código contabilístico depende do código do terceiro. O código é composto pelo caractere "C" na primeira posição seguido dos 5 primeiros caracteres do código do terceiro. Use3StepsApproval=By default, Purchase Orders need to be created and approved by 2 different users (one step/user to create and one step/user to approve. Note that if user has both permission to create and approve, one step/user will be enough). You can ask with this option to introduce a third step/user approval, if amount is higher than a dedicated value (so 3 steps will be necessary: 1=validation, 2=first approval and 3=second approval if amount is enough).
Set this to empty if one approval (2 steps) is enough, set it to a very low value (0.1) if a second approval (3 steps) is always required. -UseDoubleApproval=Use a 3 steps approval when amount (without tax) is higher than... +UseDoubleApproval=Utilizar uma aprovação de 3 etapas quando o valor (sem impostos) for superior a... WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). -ClickToShowDescription=Click to show description -DependsOn=This module need the module(s) +ClickToShowDescription=Clique para mostrar a descrição +DependsOn=Este módulo depende do(s) módulo(s) RequiredBy=This module is required by module(s) TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s -EnableDefaultValues=Enable usage of personalized default values -EnableOverwriteTranslation=Enable usage of overwrote translation +EnableDefaultValues=Permitir o uso de valores predefinidos personalizados +EnableOverwriteTranslation=Permitir o uso da tradução substituída GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Campo -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports -WatermarkOnDraftExpenseReports=Watermark on draft expense reports +ProductDocumentTemplates=Modelos de documento para gerar documento do produto +FreeLegalTextOnExpenseReports=Texto legal livre nos relatórios de despesas +WatermarkOnDraftExpenseReports=Marca d'água nos rascunhos de relatórios de despesa # Modules Module0Name=Utilizadores e grupos Module0Desc=Gestão de Utilizadores / Funcionários e Grupos @@ -536,7 +536,7 @@ Module1120Desc=Pedir orçamentos e preços de fornecedores Module1200Name=Mantis Module1200Desc=Integração com Mantis Module1400Name=Contabilidade -Module1400Desc=Gestão de contabilidade (dupla posição) +Module1400Desc=Accounting management (double entries) Module1520Name=Criação de documentos Module1520Desc=Produção do documento da emails em massa Module1780Name=Etiquetas/Categorias @@ -564,9 +564,9 @@ Module2900Name=GeoIPMaxmind Module2900Desc=Capacidades de conversões GeoIP Maxmind Module3100Name=Skype Module3100Desc=Adicionar um botão Skype nas fichas dos usuários/terceiros/contactos/membros -Module3200Name=Non Reversible Logs +Module3200Name=Registos irreversíveis Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. -Module4000Name=RH +Module4000Name=GRH Module4000Desc=Gestão de recursos humanos (gestão do departamento, contactos do funcionário e sentimentos) Module5000Name=Multiempresa Module5000Desc=Permite-lhe gerir várias empresas @@ -585,7 +585,7 @@ Module50100Desc=Modúlo de ponto de vendas (POS). Module50200Name=Paypal Module50200Desc=Módulo que disponibiliza uma página de pagamento online por cartão de crédito com Paypal Module50400Name=Contabilidade (avançada) -Module50400Desc=Gestão de contabilidade (dupla posição) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=impressão direta (sem abrir os documentos) usando a interface Cups IPP (A impressora deve ser visível a partir do servidor, e o CUPS deve estar instalado no servidor). Module55000Name=Votação ou Questionário @@ -595,7 +595,7 @@ Module59000Desc=Módulo para gerir margens Module60000Name=Comissões Module60000Desc=Módulo para gerir comissões Module63000Name=Recursos -Module63000Desc=Manage resources (printers, cars, room, ...) you can then share into events +Module63000Desc=Gerir recursos (impressoras, carros, ...) que pode partilhar em eventos Permission11=Consultar facturas de clientes Permission12=Criar/Modificar faturas de clientes Permission13=Invalidar faturas de clientes @@ -615,7 +615,7 @@ Permission32=Criar/Modificar produtos Permission34=Eliminar produtos Permission36=Ver/Gerir produtos ocultos Permission38=Exportar produtos -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) +Permission41=Consultar projetos e tarefas (projetos partilhados e projetos nos quais sou contacto). Permite também introduzir tempo consumido em tarefas atribuídas (folha de tempo) Permission42=Criar/modificar projetos (projetos partilhados e projetos nos quais sou contacto). Permite também criar tarefas e atribuir utilizadores a projetos e tarefas Permission44=Eliminar projectos (projetos partilhados e projetos dos quais sou contacto) Permission45=Exportar projetos @@ -804,7 +804,7 @@ Permission1236=Exportar faturas, atributos e pagamentos de fornecedores Permission1237=Exportar encomendas a fornecedores e os seus detalhes Permission1251=Executar importações em massa de dados externos para a bases de dados (data load) Permission1321=Exportar faturas, atributos e cobranças de clientes -Permission1322=Reopen a paid bill +Permission1322=Reabrir uma fatura paga Permission1421=Exportar faturas e atributos de clientes Permission20001=Consultar pedidos de licença (seu e dos seus subordinados) Permission20002=Criar/Modificar os seus pedidos de licença @@ -838,10 +838,10 @@ Permission55002=Criar/Modificar votações Permission59001=Consultar margens comerciais Permission59002=Definir margens comerciais Permission59003=Consultar as margens de todos os utilizadores -Permission63001=Read resources -Permission63002=Create/modify resources -Permission63003=Delete resources -Permission63004=Link resources to agenda events +Permission63001=Consultar recursos +Permission63002=Criar/modificar recursos +Permission63003=Eliminar recursos +Permission63004=Associar recursos a eventos da agenda DictionaryCompanyType=Tipos de terceiros DictionaryCompanyJuridicalType=Formulários legais de terceiros DictionaryProspectLevel=Nível de potencial da prospeção @@ -859,7 +859,7 @@ DictionaryPaymentModes=Métodos de pagamento DictionaryTypeContact=Tipos de contacto/endereço DictionaryEcotaxe=Ecotax (WEEE) DictionaryPaperFormat=Formatos de Papel -DictionaryFormatCards=Cards formats +DictionaryFormatCards=Formatos das fichas DictionaryFees=Tipos de taxas DictionarySendingMethods=Métodos de expedição DictionaryStaff=Empregados @@ -875,7 +875,7 @@ DictionaryProspectStatus=Estado da prospeção DictionaryHolidayTypes=Tipos de licença DictionaryOpportunityStatus=Estado da oportunidade para o projeto/lead SetupSaved=Configuração guardada -SetupNotSaved=Setup not saved +SetupNotSaved=A configuração não foi guardada BackToModuleList=Voltar à lista de módulos BackToDictionaryList=Voltar à lista de dicionários VATManagement=Gestão de IVA @@ -918,7 +918,7 @@ LabelUsedByDefault=Etiqueta que será utilizada por defeito se não for encontra LabelOnDocuments=Etiqueta sobre documentos NbOfDays=Nº de Dias AtEndOfMonth=No fim de mês -CurrentNext=Current/Next +CurrentNext=Atual/Seguinte Offset=Desvio AlwaysActive=Sempre ativo Upgrade=Atualização @@ -982,7 +982,7 @@ Alerts=Alertas DelaysOfToleranceBeforeWarning=Prazos de tolerância antes de notificação DelaysOfToleranceDesc=Esta janela permite configurar os prazos de tolerância antes da emissão de um alerta no ecrã, com o símbolo %s, sobre cada elemento em atraso. Delays_MAIN_DELAY_ACTIONS_TODO=Tolerância de atraso (em dias) antes da emissão de um alerta para eventos planeados (eventos da agenda) que não estejam terminados -Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Delay tolerance (in days) before alert on project not closed in time +Delays_MAIN_DELAY_PROJECT_TO_CLOSE=Tolerância de atraso (em dias) antes da emissão de um alerta para projetos não fechados dentro da data limite Delays_MAIN_DELAY_TASKS_TODO=Tolerância de atraso (em dias) antes da emissão de alertas para tarefas planeadas (tarefas de projeto) ainda não concluídas Delays_MAIN_DELAY_ORDERS_TO_PROCESS=Tolerância de atraso (em dias) antes da emissão de um alerta para encomendas de cleintes não processadas Delays_MAIN_DELAY_SUPPLIER_ORDERS_TO_PROCESS=Tolerância de atraso (em dias) antes da emissão de um alerta para encomendas a fornecedor não processadas @@ -997,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Tolerância de atraso (em dias) antes da emissão de u Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Tolerância de atraso (em dias) antes da emissão de um alerta para depósitos em cheques, por efetuar Delays_MAIN_DELAY_EXPENSEREPORTS=Atraso de tolerância (em dias) antes da emissão de um alerta para relatórios de despesas por aprovar SetupDescription1=A área de configuração é para parâmetros de configuração iniciais, antes do primeiro uso do Dolibarr -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : -SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). -SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. +SetupDescription2=Os passos de configuração mais importantes são as duas primeiras entradas no menu de configuração à esquerda: a página de configuração de %s e a página de configuração %s +SetupDescription3=Os parâmetros no menu %s -> %s são de preenchimento obrigatório, isto porque estes dados são utilizados em várias páginas do Dolibarr e personalizam o comportamento do software (para funcionalidades relacionadas com o país, por exemplo). +SetupDescription4=Os parâmetros no menu %s -> %s são de preenchimento obrigatório, isto porque o Dolibarr não é um CRM/ERP monolítico mas sim uma coleção de vários módulos interdependentes. Novas funcionalidades serão adicionadas aos menus por cada módulo que ative. SetupDescription5=Outros itens do menu, gerir parâmetros opcionais. LogEvents=Eventos de auditoria da segurança Audit=Auditoria @@ -1097,16 +1097,16 @@ PathToDocuments=Caminhos de acesso a documentos PathDirectory=Diretório SendmailOptionMayHurtBuggedMTA=Funcionalidade para enviar e-mails usando o método "PHP mail direct" irá gerar uma mensagem de correio que poderá não ser lida corretamente por alguns servidores de e-mail. O resultado será que alguns e-mails não poderão ser lidos por utilizadores que usem essas plataformas com problemas. Isto é o caso de alguns fornecedores de Internet (Ex: MEO em Portugal). Este problema não está relacionado com o Dolibarr nem o PHP, mas sim com o servidor de correio que recebe os e-mails. No entanto, você pode adicionar a opção MAIN_FIX_FOR_BUGGED_MTA a 1 na configuração de forma contornar esta questão. No entanto, você pode ter problemas com outros servidores que respeitam estritamente o padrão SMTP. A outra solução (recomendada) é usar o método "SMTP socket library" que não traz desvantagens. TranslationSetup=Configuração da tradução -TranslationKeySearch=Search a translation key or string -TranslationOverwriteKey=Overwrite a translation string +TranslationKeySearch=Procurar uma chave ou texto de tradução +TranslationOverwriteKey=Modificar o texto de uma tradução TranslationDesc=Como definir o idioma exibido:
* Systemwide: menu Início -> Configuração -> Aspeto
* Por utilizador: Configuração do aspeto por utilizador aba do cartão do utilizador (clique no nome de utlizador, localizado no topo do ecrã). TranslationOverwriteDesc=Você pode substituir as traduções na seguinte tabela. Escolha o seu idioma na caixa de seleção "%s", insira a chave tradução rm "%s" e sua nova tradução em "%s" -TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use -TranslationString=Translation string -CurrentTranslationString=Current translation string -WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least for key or translation string -NewTranslationStringToShow=New translation string to show -OriginalValueWas=The original translation is overwritten. Original value was:

%s +TranslationOverwriteDesc2=Você pode utilizar o outro separador para ajudá-lo a saber a chave de tradução que tem de usar +TranslationString=Texto de tradução +CurrentTranslationString=Texto de tradução atual +WarningAtLeastKeyOrTranslationRequired=É necessário pelo menos um critério de pesquisa para a chave ou texto de tradução +NewTranslationStringToShow=Novo texto de tradução a exibir +OriginalValueWas=A tradução original foi alterada. O valor original era:

%s TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files TotalNumberOfActivatedModules=Aplicação/módulos ativados: %s / %s YouMustEnableOneModule=Deve ativar, pelo menos, 1 módulo @@ -1141,15 +1141,15 @@ DisableForgetPasswordLinkOnLogonPage=Não mostrar a hiperligação "Esqueceu-se UsersSetup=Configuração do módulo "Utilizadores" UserMailRequired=O email é obrigatório para poder criar um novo utilizador ##### HRM setup ##### -HRMSetup=Configuração do módulo "Gestão de Recursos Humanos" +HRMSetup=Configuração do módulo "GRH" ##### Company setup ##### CompanySetup=Configuração do módulo "Empresas" CompanyCodeChecker=Módulo para criação e verificação dos códigos de terceiros (clientes ou fornecedores) AccountCodeManager=Módulo para criação dos códigos contabilísticos (clientes ou fornecedores) NotificationsDesc=O funcionalidade "Notificações por email" permite que você envie mensagens automáticas para alguns eventos Dolibarr. Os destinatários das notificações podem ser definidos: -NotificationsDescUser=* per users, one user at time. -NotificationsDescContact=* per third parties contacts (customers or suppliers), one contact at time. -NotificationsDescGlobal=* or by setting global target emails in module setup page. +NotificationsDescUser=* por utilizador, um utilizador de cada vez +NotificationsDescContact=* por contactos de terceiros (clientes ou fornecedores), um contacto de cada vez +NotificationsDescGlobal=* ou definindo o recipiente de emails global no página de configuração do módulo ModelModules=Documentos modelos DocumentModelOdt=Crie documentos a partir dos modelos OpenDocuments (ficheiros .ODT ou .ODS para o KOffice, OpenOffice, TextEdit,...) WatermarkOnDraft=Marca d'água no documento rascunho @@ -1165,7 +1165,7 @@ WebCalUrlForVCalExport=Uma hiperligação de exportação para o formato %s 100 000), você pode aumentar a velocidade, definindo a constante PRODUCT_DONOTSEARCH_ANYWHERE para 1 em Configuração -> Outros. A pesquisa será então limitada ao início da sequência de caracteres. UseSearchToSelectProduct=Aguardar até que seja preenchido parte do campo antes de carregar o conteúdo da lista de produtos (isto pode aumentar o desempenho se você tiver um grande número de produtos, mas é menos conveniente) @@ -1458,12 +1458,12 @@ OSCommerceTestKo1=A ligação ao servidor '%s' foi efetuada com sucesso, no enta OSCommerceTestKo2=A ligação ao servidor '%s' através do utilizador '%s' não foi possível. ##### Stock ##### StockSetup=Configuração do módulo "Armazém" -IfYouUsePointOfSaleCheckModule=If you use a Point of Sale module (POS module provided by default or another external module), this setup may be ignored by your Point Of Sale module. Most point of sales modules are designed to create immediatly an invoice and decrease stock by default whatever are options here. So, if you need or not to have a stock decrease when registering a sell from your Point Of Sale, check also your POS module set up. +IfYouUsePointOfSaleCheckModule=Se você utiliza um módulo de Ponto de Venda (o módulo POS/PDV fornecido por defeito ou outro módulo externo), esta configuração pode ser ignorada pelo seu módulo de Ponto de Venda. A maioria dos módulos de pontos de venda são desenhados para criar imediatamente uma fatura e diminuir o stock por defeito, qualquer que seja a opção aqui. Se você precisar ou não ter uma diminuição de stock ao registar uma venda no seu ponto de venda, verifique também a configuração do seu módulo POS/PDV. ##### Menu ##### MenuDeleted=Menu eliminado Menus=Menus TreeMenuPersonalized=Menus personalizados -NotTopTreeMenuPersonalized=Personalized menus not linked to a top menu entry +NotTopTreeMenuPersonalized=Menus personalizados não ligados a uma entrada do menu no topo NewMenu=Novo menu Menu=Seleção do menu MenuHandler=Gestor de menus @@ -1514,13 +1514,13 @@ AGENDA_USE_EVENT_TYPE=Usar tipos de eventos (gerido através do menu Configuraç AGENDA_USE_EVENT_TYPE_DEFAULT=Definir este valor automaticamente como o valor predefinido para o campo tipo de evento, no formulário de criação de evento AGENDA_DEFAULT_FILTER_TYPE=Definir automaticamente este tipo de evento no filtro de pesquisa da vista agenda AGENDA_DEFAULT_FILTER_STATUS=Definido automaticamente este estado para eventos no filtro de pesquisa da vista agenda -AGENDA_DEFAULT_VIEW=Qual é a aba que você deseja abrir por defeito quando seleciona o menu "Agenda" -AGENDA_NOTIFICATION=Enable event notification on user browsers when event date is reached (each user is able to refuse this from the browser confirmation question) -AGENDA_NOTIFICATION_SOUND=Enable sound notification -AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view +AGENDA_DEFAULT_VIEW=Qual é o separador que você deseja abrir por defeito quando seleciona o menu "Agenda" +AGENDA_NOTIFICATION=Ative a notificação de eventos nos navegadores dos utilizadores quando a data do evento for atingida (no entanto cada utilizador pode notificações no seu navegador) +AGENDA_NOTIFICATION_SOUND=Ativar notificação sonora +AGENDA_SHOW_LINKED_OBJECT=Mostrar o objeto associado na vista de agenda ##### Clicktodial ##### ClickToDialSetup=Configuração do módulo "Click To Dial" -ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). +ClickToDialUrlDesc=Uma chamada é efetuada quando o icon é clicado. No URL pode usar as tags:
__PHONETO__ que será substituída pelo número do destinatário
__PHONEFROM__ que será substituída pelo número do remetente
__LOGIN__ que será substituída pelo nome de utilizador da sua conta ClickToDial (definido no seu cartão de utilizador)
__PASS__ que será substituída pela palavra-passe da sua conta ClickToDial (definida no seu cartão de utilizador). ClickToDialDesc=Este módulo torna os números de telefone clicáveis. Um clique neste ícone fará com que o seu telefone ligue para o número de telefone. Isto pode ser usado para chamar um sistema de call-center a partir do Dolibarr que por sua vez pode ligar ao número de telefone num sistema SIP, por exemplo. ClickToDialUseTelLink=Usar apenas um link "tel:" em números de telefone ClickToDialUseTelLinkDesc=Utilize este método se os utilizadores têm um softphone ou uma interface de software instalado no mesmo computador que o navegador e efetua uma chamada quando você clica em links que começam com "tel:". Se você precisa de uma solução de servidor (sem necessidade de instalação de software local), você deve definir este como "Não" e preencher o próximo campo. @@ -1586,14 +1586,14 @@ TaskModelModule=Modelo de documento dos relatórios de tarefasl UseSearchToSelectProject=Usar campos de preenchimento automático para escolher o projeto (em vez de usar uma lista de seleção) ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period +AccountingPeriods=Períodos de contabilidade +AccountingPeriodCard=Período de contabilidade NewFiscalYear=Novo período contabilístico OpenFiscalYear=Abrir período contabilístico CloseFiscalYear=Fechar período contabilístico DeleteFiscalYear=Eliminar período contabilístico ConfirmDeleteFiscalYear=Tem certeza que deseja eliminar este período contábilistico? -ShowFiscalYear=Show accounting period +ShowFiscalYear=Mostrar período de contabilidade AlwaysEditable=Pode ser sempre editado MAIN_APPLICATION_TITLE=Forçar o nome visível da aplicação (aviso: definir o seu próprio nome aqui pode quebrar a funcionalidade de preenchimento automático de credenciais de inicio de sessão ao usar a aplicação DoliDroid para telemovel) NbMajMin=Número máximo de caracteres maiúsculos @@ -1610,11 +1610,11 @@ ExpenseReportsSetup=Configuração do módulo "Relatórios de Despesas" TemplatePDFExpenseReports=Modelos de documentos para a produção de relatórios de despesa NoModueToManageStockIncrease=Não foi ativado nenhum módulo capaz de efetuar a gestão automática do acréscimo de stock. O acrescimo de stock será efetuado manualmente. YouMayFindNotificationsFeaturesIntoModuleNotification=Poderá encontrar as opções das notificações por email ao ativar e configurar o módulo "Notificação". -ListOfNotificationsPerUser=List of notifications per user* -ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** +ListOfNotificationsPerUser=Lista de notificações por utilizador* +ListOfNotificationsPerUserOrContact=Lista de notificações por utilizador* ou por contact** ListOfFixedNotifications=Lista de notificações fixas -GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Vá à aba "Notificações" de um terceiro para adicionar ou remover as notificações de contactos/endereços +GoOntoUserCardToAddMore=Vá ao separador "Notificações" de um utilizador para adicionar ou remover notificações +GoOntoContactCardToAddMore=Vá ao separador "Notificações" de um terceiro para adicionar ou remover as notificações de contactos/endereços Threshold=Limite BackupDumpWizard=Assistente para construir o ficheiro dump de backup da base de dados SomethingMakeInstallFromWebNotPossible=Instalação do módulo externo não é possível a partir da interface web pelo seguinte motivo: @@ -1629,7 +1629,7 @@ PressF5AfterChangingThis=Pressione CTRL+F5 no teclado ou limpe a cache do navega NotSupportedByAllThemes=Funciona com os temas predefinidos, pode não ser suportado por temas externos BackgroundColor=Cor de fundo TopMenuBackgroundColor=Cor de fundo para o menu no topo -TopMenuDisableImages=Hide images in Top menu +TopMenuDisableImages=Ocultar imagens no menu do topo LeftMenuBackgroundColor=Cor de fundo para o menu à esquerda BackgroundTableTitleColor=A cor do fundo para a linha de título das tabelas BackgroundTableLineOddColor=A cor do fundo para as linhas ímpares da tabela @@ -1651,7 +1651,7 @@ FixTZ=Corrigir Fuso Horário FillFixTZOnlyIfRequired=Exemplo: +2 (preencha somente se experienciar problemas) ExpectedChecksum=Checksum esperado CurrentChecksum=Checksum atual -ForcedConstants=Required constant values +ForcedConstants=Valores de constantes necessários MailToSendProposal=Orçamento para cliente a enviar MailToSendOrder=Para enviar a encomenda do cliente por e-mail MailToSendInvoice=Para enviar a fatura do cliente por e-mail @@ -1660,7 +1660,7 @@ MailToSendIntervention=Para enviar a intervenção por e-mail MailToSendSupplierRequestForQuotation=Para enviar a solicitação de cotação ao fornecedor por e-mail MailToSendSupplierOrder=Para enviar a encomenda ao fornecedor por e-mail MailToSendSupplierInvoice=Para enviar a fatura emitida pelo fornecedor por e-mail -MailToSendContract=To send a contract +MailToSendContract=Para enviar um contrato MailToThirdparty=Para enviar e-mail a partir da página dos terceiros ByDefaultInList=Mostrar por padrão na vista de lista YouUseLastStableVersion=Você possui a última versão estável @@ -1678,31 +1678,31 @@ AddRemoveTabs=Adicionar ou remover separadores AddDictionaries=Adicionar dicionários AddBoxes=Adicionar widgets AddSheduledJobs=Adicionar trabalhos agendados -AddHooks=Add hooks -AddTriggers=Add triggers +AddHooks=Adicionar hooks +AddTriggers=Adicionar acionadores AddMenus=Adicionar menus AddPermissions=Adicionar permissões AddExportProfiles=Adicionar perfis de exportação AddImportProfiles=Adicionar perfis de importação AddOtherPagesOrServices=Adicionar outras páginas ou serviços AddModels=Adicionar modelos de documento ou numeração -AddSubstitutions=Add keys substitutions +AddSubstitutions=Adicionar substituições de chaves DetectionNotPossible=Deteção não é possível UrlToGetKeyToUseAPIs=Url to get token to use API (once token has been received it is saved on database user table and must be provided on each API call) ListOfAvailableAPIs=Lista de APIs disponíveis activateModuleDependNotSatisfied=Module "%s" depends on module "%s" that is missing, so module "%1$s" may not work correclty. Please install module "%2$s" or disable module "%1$s" if you want to be safe from any surprise CommandIsNotInsideAllowedCommands=The command you try to run is not inside list of allowed commands defined into parameter $dolibarr_main_restrict_os_commands into conf.php file. LandingPage=Página Inicial -SamePriceAlsoForSharedCompanies=If you use a multicompany module, with the choice "Single price", price will be also the same for all companies if products are shared between environments -ModuleEnabledAdminMustCheckRights=Module has been activated. Permissions for activated module(s) were given to admin users only. You may need to grant permissions to other users or groups manually if necessary. -UserHasNoPermissions=This user has no permission defined +SamePriceAlsoForSharedCompanies=Se utiliza a opção multi-empresa, com a escolha de "Preço único", o preço será igual em todas as empresas, se o produto for partilhado entre as empresas +ModuleEnabledAdminMustCheckRights=O módulo foi ativado. As permissões para o(s) módulo(s) ativado(s) foram adicionadas apenas aos utilizadores administradores. Talvez seja necessário conceder permissões para outros utilizadores ou grupos manualmente. +UserHasNoPermissions=Este utilizador não tem permissões definidas TypeCdr=Use "None" if the date of payment term is date of invoice plus a delta in days (delta is field "Nb of days")
Use "At end of month", if, after delta, the date must be increased to reach the end of month (+ an optional "Offset" in days)
Use "Current/Next" to have payment term date being the first Nth of the month (N is stored into field "Nb of days") BaseCurrency=Reference currency of the company (go into setup of company to change this) WarningNoteModuleInvoiceForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016). WarningNoteModulePOSForFrenchLaw=This module %s is compliant with french laws (Loi Finance 2016) because module Non Reversible Logs is automatically activated. WarningInstallationMayBecomeNotCompliantWithLaw=You try to install the module %s that is an external module. Activating an external module means you trust the publisher of the module and you are sure that this module does not alterate negatively the behavior of your application and is compliant with laws of your country (%s). If the module bring a non legal feature, you become responsible for the use of a non legal software. ##### Resource #### -ResourceSetup=Configuration du module Resource -UseSearchToSelectResource=Use a search form to choose a resource (rather than a drop-down list). -DisabledResourceLinkUser=Disabled resource link to user -DisabledResourceLinkContact=Disabled resource link to contact +ResourceSetup=Configuração do módulo Recursos +UseSearchToSelectResource=Utilizar um formulário de pesquisa para escolher um recurso (em vez de uma lista) +DisabledResourceLinkUser=Desativar o link do recurso para o utilizador +DisabledResourceLinkContact=Desativar o link do recurso para o contacto diff --git a/htdocs/langs/pt_PT/agenda.lang b/htdocs/langs/pt_PT/agenda.lang index 0b421514607..ca806a2a61e 100644 --- a/htdocs/langs/pt_PT/agenda.lang +++ b/htdocs/langs/pt_PT/agenda.lang @@ -1,111 +1,117 @@ # Dolibarr language file - Source file is en_US - agenda IdAgenda=ID do evento -Actions=Acções +Actions=Eventos Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Calendário interno -ActionsOwnedBy=Event owned by -ActionsOwnedByShort=Propietario -AffectedTo=Afecta o +ActionsOwnedBy=Evento de +ActionsOwnedByShort=Proprietário +AffectedTo=Atribuído a Event=Evento Events=Eventos EventsNb=Número de eventos ListOfActions=Lista de Eventos Location=Localização -ToUserOfGroup=To any user in group -EventOnFullDay=Evento para todo o dia -MenuToDoActions=Acções a fazer +ToUserOfGroup=Para qualquer utilizador no grupo +EventOnFullDay=Evento para todo(s) o(s) dia(s) +MenuToDoActions=Todos os eventos incompletos MenuDoneActions=Todos os eventos terminados MenuToDoMyActions=Os meus eventos incompletos MenuDoneMyActions=Os meus eventos terminados -ListOfEvents=Lista de eventos (Calendário interno) -ActionsAskedBy=Os meus eventos reportados +ListOfEvents=Lista de eventos (calendário interno) +ActionsAskedBy=Eventos reportados por ActionsToDoBy=Eventos atribuídos a ActionsDoneBy=Eventos realizados por -ActionAssignedTo=Acção assignada a -ViewCal=Ver Calendário -ViewDay=Modo de exibição Dia -ViewWeek=Vista da semana -ViewPerUser=Per user view -ViewPerType=Per type view +ActionAssignedTo=Evento atribuído a +ViewCal=Vista mensal +ViewDay=Vista diária +ViewWeek=Vista semanal +ViewPerUser=Vista por utilizador +ViewPerType=Vista por tipo AutoActions= Preenchimento automático -AgendaAutoActionDesc= Define here events for which you want Dolibarr to create automatically an event in agenda. If nothing is checked, only manual actions will be included in logged and visible into agenda. Automatic tracking of business actions done on objects (validation, status change) will not be saved. -AgendaSetupOtherDesc= Esta página fornece opções para permitir a exportação dos seus eventos no Dolibarr para um calendário externo (Thunderbird, calendário Google, ...) +AgendaAutoActionDesc= Defina aqui os eventos para os quais deseja que o Dolibarr crie automaticamente um evento na agenda. Se não for seleccionada nenhuma opção, apenas as acções manuais serão incluídas na agenda. Seguimento automático de ações empresariais efetuadas em objetos (validação, mudanças de estado) não será guardado. +AgendaSetupOtherDesc= Esta página fornece opções para permitir a exportação dos seus eventos do Dolibarr para um calendário externo (Thunderbird, calendário Google, ...) AgendaExtSitesDesc=Esta página permite declarar as fontes externas de calendários para ver os seus eventos na agenda do Dolibarr. ActionsEvents=Eventos em que o Dolibarr criará uma acção em agenda automáticamente ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created -ContractValidatedInDolibarr=Contract %s validated -PropalClosedSignedInDolibarr=Proposal %s signed -PropalClosedRefusedInDolibarr=Proposal %s refused -PropalValidatedInDolibarr=Proposta Validada -PropalClassifiedBilledInDolibarr=Proposal %s classified billed -InvoiceValidatedInDolibarr=Factura Validada -InvoiceValidatedInDolibarrFromPos=Invoice %s validated from POS -InvoiceBackToDraftInDolibarr=Factura %s voltou ao estado de rascunho -InvoiceDeleteDolibarr=Fatura %s apagada -InvoicePaidInDolibarr=Invoice %s changed to paid -InvoiceCanceledInDolibarr=Invoice %s canceled -MemberValidatedInDolibarr=Member %s validated -MemberResiliatedInDolibarr=Member %s terminated -MemberDeletedInDolibarr=Member %s deleted -MemberSubscriptionAddedInDolibarr=Subscription for member %s added -ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened -ShipmentDeletedInDolibarr=Shipment %s deleted -OrderCreatedInDolibarr=Order %s created -OrderValidatedInDolibarr=Encomenda %s validada -OrderDeliveredInDolibarr=Order %s classified delivered -OrderCanceledInDolibarr=Encomenda %s cancelada -OrderBilledInDolibarr=Order %s classified billed -OrderApprovedInDolibarr=Encomenda %s aprovada -OrderRefusedInDolibarr=Encomenda %s recusada -OrderBackToDraftInDolibarr=Encomenda %s voltou ao estado de rascunho -ProposalSentByEMail=Proposta a cliente %s enviada por e-mail -OrderSentByEMail=Encomenda de cliente %s enviada por email -InvoiceSentByEMail=Factura de cliente %s enviada por e-mail -SupplierOrderSentByEMail=Encomenda a fornecedor %s enviada por email -SupplierInvoiceSentByEMail=Factura de fornecedor %s enviada por e-mail -ShippingSentByEMail=Shipment %s sent by EMail -ShippingValidated= Shipment %s validated -InterventionSentByEMail=Intervenção %s enviada por Mensagem Eletrónica -ProposalDeleted=Proposal deleted -OrderDeleted=Order deleted -InvoiceDeleted=Invoice deleted +NewCompanyToDolibarr=Terceiro %s, criado +ContractValidatedInDolibarr=Contrato %s, validado +PropalClosedSignedInDolibarr=Orçamento %s, assinado +PropalClosedRefusedInDolibarr=Orçamento %s, recusado +PropalValidatedInDolibarr=Orçamento %s, validado +PropalClassifiedBilledInDolibarr=Orçamento %s, classificado como faturado +InvoiceValidatedInDolibarr=Factura %s, validada +InvoiceValidatedInDolibarrFromPos=Fatura %s, validada a partir do ponto de venda +InvoiceBackToDraftInDolibarr=Fatura %s, voltou ao estado de rascunho +InvoiceDeleteDolibarr=Fatura %s, apagada +InvoicePaidInDolibarr=Fatura %s, paga +InvoiceCanceledInDolibarr=Fatura %s, cancelada +MemberValidatedInDolibarr=Membro %s, validado +MemberModifiedInDolibarr=Membro %s modificado +MemberResiliatedInDolibarr=Membro %s, terminado +MemberDeletedInDolibarr=Membro %s, eliminado +MemberSubscriptionAddedInDolibarr=Subscrição do membro %s, adicionada +ShipmentValidatedInDolibarr=Expedição %s, validada +ShipmentClassifyClosedInDolibarr=Expedição %s, classificada como faturada +ShipmentUnClassifyCloseddInDolibarr=Expedição %s, classificada como re-aberta +ShipmentDeletedInDolibarr=Expedição %s, eliminada +OrderCreatedInDolibarr=Encomenda %s, criada +OrderValidatedInDolibarr=Encomenda %s, validada +OrderDeliveredInDolibarr=Encomenda %s, classificada como entregue +OrderCanceledInDolibarr=Encomenda %s, cancelada +OrderBilledInDolibarr=Encomenda %s, classificada como faturada +OrderApprovedInDolibarr=Encomenda %s, aprovada +OrderRefusedInDolibarr=Encomenda %s, recusada +OrderBackToDraftInDolibarr=Encomenda %s, voltou ao estado de rascunho +ProposalSentByEMail=Orçamento para cliente, %s, enviado por email +OrderSentByEMail=Encomenda de cliente, %s, enviada por email +InvoiceSentByEMail=Fatura de cliente, %s, enviada por email +SupplierOrderSentByEMail=Encomenda a fornecedor, %s, enviada por email +SupplierInvoiceSentByEMail=Fatura de fornecedor, %s, enviada por email +ShippingSentByEMail=Expedição %s, enviada por email +ShippingValidated= Expedição %s, validada +InterventionSentByEMail=Intervenção %s, enviada por email +ProposalDeleted=Orçamento eliminado +OrderDeleted=Encomenda eliminada +InvoiceDeleted=Fatura eliminada +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### -DateActionStart=Data de Início -DateActionEnd=Data Fim +AgendaModelModule=Modelos de documento para o evento +DateActionStart=Data de início +DateActionEnd=Data de fim AgendaUrlOptions1=Também pode adicionar os seguintes parâmetros de filtro de saída: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. -AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s para restringir a produção para as acções para o utilizador afectado %s. -AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. +AgendaUrlOptions3=logina=%s para restringir a produção para as acções criadas pelo utilizador %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). +AgendaUrlOptionsProject=project=PROJECT_ID para restringir a produção para as acções associadas ao projeto PROJECT_ID. AgendaShowBirthdayEvents=Mostrar aniversários dos contactos AgendaHideBirthdayEvents=Ocultar aniversários dos contactos Busy=Ocupado ExportDataset_event1=Lista de eventos da agenda -DefaultWorkingDays=Default working days range in week (Example: 1-5, 1-6) -DefaultWorkingHours=Default working hours in day (Example: 9-18) +DefaultWorkingDays=Intervalo pré-definido de dias de trabalho na semana (Exemplo: 1-5, 1-6) +DefaultWorkingHours=Horas de trabalho pré-definidas no dia (Exemplo: 9-18) # External Sites ical ExportCal=Exportar calendário ExtSites=Importar calendários externos -ExtSitesEnableThisTool=Show external calendars (defined into global setup) into agenda. Does not affect external calendars defined by users. +ExtSitesEnableThisTool=Mostrar calendários externos (definidos na configuração global) na agenda. Não afeta os calendários externos definidos pelos utilizadores. ExtSitesNbOfAgenda=Número de calendários AgendaExtNb=Calendário nb %s -ExtSiteUrlAgenda=URL para aceder. Ficheiro iCal +ExtSiteUrlAgenda=URL para aceder ao ficheiro .ical ExtSiteNoLabel=Sem Descrição -VisibleTimeRange=Visible time range -VisibleDaysRange=Visible days range -AddEvent=Create event -MyAvailability=My availability +VisibleTimeRange=Intervalo de tempo visível +VisibleDaysRange=Intervalo de dias visível +AddEvent=Criar evento +MyAvailability=A minha disponibilidade ActionType=Tipo de evento -DateActionBegin=Start event date -CloneAction=Clone event -ConfirmCloneEvent=Are you sure you want to clone the event %s? -RepeatEvent=Repeat event +DateActionBegin=Data de início do evento +CloneAction=Clonar evento +ConfirmCloneEvent=Tem a certeza que quer clonar o evento %s? +RepeatEvent=Repetir evento EveryWeek=Semanalmente EveryMonth=Mensalmente DayOfMonth=Dia do mês DayOfWeek=Dia da semana -DateStartPlusOne=Date start + 1 hour +DateStartPlusOne=Data de início +1 hora diff --git a/htdocs/langs/pt_PT/banks.lang b/htdocs/langs/pt_PT/banks.lang index 36c274408d8..7aeaa4c56df 100644 --- a/htdocs/langs/pt_PT/banks.lang +++ b/htdocs/langs/pt_PT/banks.lang @@ -32,7 +32,7 @@ SwiftValid=BIC/SWIFT valid SwiftVNotalid=BIC/SWIFT not valid IbanValid=BAN valid IbanNotValid=BAN not valid -StandingOrders=Encomendas de Débito Direto +StandingOrders=Encomendas de débito direto StandingOrder=Encomenda de Débito Direto AccountStatement=Extracto AccountStatementShort=Extracto @@ -55,17 +55,18 @@ BankType0=Conta bancária a prazo BankType1=Conta bancária corrente BankType2=Conta Caixa/efectivo AccountsArea=Área Contas -AccountCard=Ficha Conta +AccountCard=Ficha da conta DeleteAccount=Apagar Conta ConfirmDeleteAccount=Tem a certeza que deseja eliminar esta conta? Account=Conta BankTransactionByCategories=Entradas bancárias por categorias BankTransactionForCategory=Entradas bancárias por categoria %s RemoveFromRubrique=Eliminar link com rubrica -RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry and the category? +RemoveFromRubriqueConfirm=Tem a certeza que deseja remover a ligação entre a entrada e a categoria? ListBankTransactions=Lista das entradas bancárias IdTransaction=Id de transacção BankTransactions=Entradas bancárias +BankTransaction=Entrada bancária ListTransactions=Lista de entradas ListTransactionsByCategory=Lista de entradas/categorias TransactionsToConciliate=Entradas para reconciliar @@ -74,13 +75,13 @@ Conciliate=Conciliar Conciliation=Conciliação ReconciliationLate=Reconciliation late IncludeClosedAccount=Incluir Contas fechadas -OnlyOpenedAccount=Somente Contas abertas +OnlyOpenedAccount=Apenas contas abertas AccountToCredit=Conta de crédito AccountToDebit=Conta de débito DisableConciliation=Desactivar a função de Conciliação para esta Conta ConciliationDisabled=Função de Conciliação desactivada LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Aberto +StatusAccountOpened=Abrir StatusAccountClosed=Fechada AccountIdShort=Número LineRecord=Registo @@ -95,7 +96,7 @@ CustomerInvoicePayment=Pagamento de cliente SupplierInvoicePayment=Pagamento a Fornecedor SubscriptionPayment=Pagamento Assinatura WithdrawalPayment=Pagamento de retirada -SocialContributionPayment=Social/fiscal tax payment +SocialContributionPayment=Pagamento da taxa social/fiscal BankTransfer=Transferência bancária BankTransfers=Transferencias bancarias MenuBankInternalTransfer=Internal transfer @@ -104,16 +105,16 @@ TransferFrom=De TransferTo=Para TransferFromToDone=A transferência de %s para %s de %s %s foi criado. CheckTransmitter=Emissor -ValidateCheckReceipt=Validate this check receipt? -ConfirmValidateCheckReceipt=Are you sure you want to validate this check receipt, no change will be possible once this is done? -DeleteCheckReceipt=Delete this check receipt? -ConfirmDeleteCheckReceipt=Are you sure you want to delete this check receipt? +ValidateCheckReceipt=Validar este recibo do cheque? +ConfirmValidateCheckReceipt=Tem a certeza que deseja validar este recibo do cheque (não será possível alterar depois de validado)? +DeleteCheckReceipt=Eliminar este recibo do cheque? +ConfirmDeleteCheckReceipt=Tem a certeza que deseja eliminar este recibo do cheque? BankChecks=Cheques -BankChecksToReceipt=Checks awaiting deposit +BankChecksToReceipt=Cheques a aguardar depósito ShowCheckReceipt=Mostrar recibo de depósito NumberOfCheques=Nº de cheques DeleteTransaction=Eliminar entrada -ConfirmDeleteTransaction=Are you sure you want to delete this entry? +ConfirmDeleteTransaction=Tem a certeza que deseja eliminar esta entrada? ThisWillAlsoDeleteBankRecord=This will also delete generated bank entry BankMovements=Movimentos PlannedTransactions=Entradas planeadas @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/pt_PT/bills.lang b/htdocs/langs/pt_PT/bills.lang index 853457b9f74..77cb4e12570 100644 --- a/htdocs/langs/pt_PT/bills.lang +++ b/htdocs/langs/pt_PT/bills.lang @@ -75,7 +75,7 @@ PaymentsAlreadyDone=Pagamentos já efetuados PaymentsBackAlreadyDone=Reembolso de pagamentos já efetuados PaymentRule=Estado do Pagamento PaymentMode=Tipo de Pagamento -PaymentTypeDC=Debit/Credit Card +PaymentTypeDC=Cartão de débito/crédito PaymentTypePP=PayPal IdPaymentMode=Payment type (id) CodePaymentMode=Payment type (code) @@ -373,8 +373,8 @@ PaymentTypePRE=Direct debit payment order PaymentTypeShortPRE=Debit payment order PaymentTypeLIQ=Espécies PaymentTypeShortLIQ=Espécies -PaymentTypeCB=Cartão -PaymentTypeShortCB=Cartão +PaymentTypeCB=Cartão de crédito +PaymentTypeShortCB=Cartão de crédito PaymentTypeCHQ=Cheque PaymentTypeShortCHQ=Cheque PaymentTypeTIP=TIP (Documents against Payment) diff --git a/htdocs/langs/pt_PT/cashdesk.lang b/htdocs/langs/pt_PT/cashdesk.lang index dc8c6d729cc..fb9a4bb4eac 100644 --- a/htdocs/langs/pt_PT/cashdesk.lang +++ b/htdocs/langs/pt_PT/cashdesk.lang @@ -11,24 +11,24 @@ CashDeskStock=Stock CashDeskOn=em CashDeskThirdParty=Terceiro ShoppingCart=Carrinho de compras -NewSell=​​Nova Venda +NewSell=​​Nova venda AddThisArticle=Adicionar este artigo RestartSelling=Voltar para vendas -SellFinished=Sale complete -PrintTicket=Imprimir Recibo +SellFinished=Venda efetuada +PrintTicket=Imprimir recibo NoProductFound=Nenhum artigo encontrado ProductFound=produto encontrado NoArticle=Nenhum artigo Identification=Identificação Article=Artigo Difference=Diferença -TotalTicket=Total do Recibo +TotalTicket=Total do recibo NoVAT=Sem IVA para esta venda Change=Troco -BankToPay=Conta corrente +BankToPay=Conta para pagamento ShowCompany=Mostrar empresa ShowStock=Mostrar armazém DeleteArticle=Clique para remover este artigo FilterRefOrLabelOrBC=Procurar (Ref/Etiqueta) -UserNeedPermissionToEditStockToUsePos=You ask to decrease stock on invoice creation, so user that use POS need to have permission to edit stock. -DolibarrReceiptPrinter=Dolibarr Receipt Printer +UserNeedPermissionToEditStockToUsePos=Você pede para diminuir o stock ao criar a fatura, para que o utilizador que use o Ponto de Venda necessite de permissão para editar o stock. +DolibarrReceiptPrinter=Impressora de Recibos Dolibarr diff --git a/htdocs/langs/pt_PT/categories.lang b/htdocs/langs/pt_PT/categories.lang index f4eff812332..5835c06ffcb 100644 --- a/htdocs/langs/pt_PT/categories.lang +++ b/htdocs/langs/pt_PT/categories.lang @@ -1,21 +1,22 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Etiqueta/Categoria Rubriques=Etiquetas/Categorias -categories=Etiquetas/Categorias -NoCategoryYet=No tag/category of this type created +RubriquesTransactions=Etiquetas/Categorias de transações +categories=etiquetas/categorias +NoCategoryYet=Nenhuma etiqueta/categoria deste tipo foi criada In=em AddIn=Adicionar em modify=Modificar Classify=Classificar -CategoriesArea=Área de Etiquetas/Categorias -ProductsCategoriesArea=Área de etiquetas/categorias Produtos/Serviços -SuppliersCategoriesArea=Suppliers tags/categories area -CustomersCategoriesArea=Customers tags/categories area -MembersCategoriesArea=Members tags/categories area -ContactsCategoriesArea=Contacts tags/categories area -AccountsCategoriesArea=Accounts tags/categories area -ProjectsCategoriesArea=Projects tags/categories area -SubCats=Sub-Categorias +CategoriesArea=Área de etiquetas/categorias +ProductsCategoriesArea=Área de etiquetas/categorias de produtos/serviços +SuppliersCategoriesArea=Área de etiquetas/categorias de fornecedores +CustomersCategoriesArea=Área de etiquetas/categorias de clientes +MembersCategoriesArea=Área de etiquetas/categorias de membros +ContactsCategoriesArea=Área de etiquetas/categorias de contactos +AccountsCategoriesArea=Área de etiquetas/categorias de contas +ProjectsCategoriesArea=Área de etiquetas/categorias de projetos +SubCats=Subcategorias CatList=Lista de etiquetas/categorias NewCategory=Nova etiqueta/categoria ModifCat=Modificar etiqueta/categoria @@ -26,61 +27,61 @@ NoSubCat=Esta categoria não contem Nenhuma subcategoria. SubCatOf=Subcategoria FoundCats=Etiquetas/categorias encontradas ImpossibleAddCat=Não é possível adicionar a etiqueta/categoria %s -WasAddedSuccessfully=Foi adicionado com êxito. -ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category. -ProductIsInCategories=Product/service is linked to following tags/categories -CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories -CompanyIsInSuppliersCategories=This third party is linked to following suppliers tags/categories -MemberIsInCategories=This member is linked to following members tags/categories -ContactIsInCategories=This contact is linked to following contacts tags/categories -ProductHasNoCategory=This product/service is not in any tags/categories -CompanyHasNoCategory=This third party is not in any tags/categories -MemberHasNoCategory=This member is not in any tags/categories -ContactHasNoCategory=This contact is not in any tags/categories -ProjectHasNoCategory=This project is not in any tags/categories +WasAddedSuccessfully=%s foi adicionado com sucesso. +ObjectAlreadyLinkedToCategory=O elemento já se encontra associado a esta etiqueta/categoria. +ProductIsInCategories=O produto/serviço está associado às seguintes etiquetas/categorias +CompanyIsInCustomersCategories=O terceiro está associado às seguintes etiquetas/categorias de clientes/prospecções +CompanyIsInSuppliersCategories=O terceiro está associado às seguintes etiquetas/categorias de fornecedores +MemberIsInCategories=O terceiro está associado às seguintes etiquetas/categorias de membros +ContactIsInCategories=Este contacto está associado às seguintes etiquetas/categorias de contactos +ProductHasNoCategory=Este produto/serviço não se encontra associado a quaisquer etiquetas/categorias +CompanyHasNoCategory=Este terceiro não se encontra associado a quaisquer etiquetas/categorias +MemberHasNoCategory=Este membro não se encontra associado a quaisquer etiquetas/categorias +ContactHasNoCategory=Este contacto não está em nenhuma etiqueta/categoria +ProjectHasNoCategory=Este projeto não se encontra em nenhuma etiqueta/categoria ClassifyInCategory=Adicionar à etiqueta/categoria NotCategorized=Sem etiqueta/categoria -CategoryExistsAtSameLevel=Esta categoria já existe na mesma localização +CategoryExistsAtSameLevel=Esta categoria já existe com referência idêntica ContentsVisibleByAllShort=Conteúdo visível por todos ContentsNotVisibleByAllShort=Conteúdo não visível por todos DeleteCategory=Eliminar etiqueta/categoria -ConfirmDeleteCategory=Are you sure you want to delete this tag/category? -NoCategoriesDefined=No tag/category defined -SuppliersCategoryShort=Suppliers tag/category -CustomersCategoryShort=Customers tag/category -ProductsCategoryShort=Products tag/category -MembersCategoryShort=Members tag/category -SuppliersCategoriesShort=Suppliers tags/categories -CustomersCategoriesShort=Customers tags/categories -ProspectsCategoriesShort=Prospects tags/categories -CustomersProspectsCategoriesShort=Cat. Clientes/Potenciais -ProductsCategoriesShort=Products tags/categories -MembersCategoriesShort=Members tags/categories -ContactCategoriesShort=Contacts tags/categories -AccountsCategoriesShort=Accounts tags/categories -ProjectsCategoriesShort=Projects tags/categories +ConfirmDeleteCategory=Tem a certeza que quer eliminar esta etiqueta/categoria? +NoCategoriesDefined=Sem etiqueta/categoria definida +SuppliersCategoryShort=Etiquetas/categorias de fornecedores +CustomersCategoryShort=Etiquetas/categorias de clientes +ProductsCategoryShort=Etiquetas/categorias de produtos +MembersCategoryShort=Etiquetas/categorias de membros +SuppliersCategoriesShort=Etiquetas/catego. fornecedores +CustomersCategoriesShort=Etiquetas/catego. de clientes +ProspectsCategoriesShort=Etiquetas/categorias de prospecções +CustomersProspectsCategoriesShort=Eti./cat. clientes/prospecções +ProductsCategoriesShort=Etiquetas/categorias de produtos +MembersCategoriesShort=Etiquetas/categorias de membros +ContactCategoriesShort=Etiquetas/Catego. de Contactos +AccountsCategoriesShort=Etiquetas/Categorias de contas +ProjectsCategoriesShort=Etiquetas/Categorias de projetos ThisCategoryHasNoProduct=Esta categoria não contem nenhum produto. ThisCategoryHasNoSupplier=Esta categoria não contem a nenhum fornecedor. ThisCategoryHasNoCustomer=Esta categoria não contem a nenhum cliente. ThisCategoryHasNoMember=Esta categoria não contém nenhum membro. ThisCategoryHasNoContact=Esta categoria não contém qualquer contato. -ThisCategoryHasNoAccount=This category does not contain any account. +ThisCategoryHasNoAccount=Esta categoria não contém nenhuma conta. ThisCategoryHasNoProject=Esta categoria não contem qualquer projeto. -CategId=Tag/category id -CatSupList=List of supplier tags/categories -CatCusList=List of customer/prospect tags/categories -CatProdList=List of products tags/categories -CatMemberList=List of members tags/categories -CatContactList=List of contact tags/categories -CatSupLinks=Links between suppliers and tags/categories -CatCusLinks=Links between customers/prospects and tags/categories -CatProdLinks=Links between products/services and tags/categories +CategId=ID de etiqueta/categoria +CatSupList=Lista de etiquetas/categorias de fornecedores +CatCusList=Lista de etiquetas/categorias de clientes/prospecções +CatProdList=Lista de etiquetas/categorias de produtos +CatMemberList=Lista de etiquetas/categorias de membros +CatContactList=Lista de etiquetas/categorias de contactos +CatSupLinks=Ligações entre fornecedores e etiquetas/categorias +CatCusLinks=Ligações entre clientes/prospecções e etiquetas/categorias +CatProdLinks=Ligações entre produtos/serviços e etiquetas/categorias CatProJectLinks=Ligações entre os projetos e etiquetas/categorias -DeleteFromCat=Remove from tags/category +DeleteFromCat=Remover das etiquetas/categoria ExtraFieldsCategories=Atributos Complementares -CategoriesSetup=Tags/categories setup -CategorieRecursiv=Link with parent tag/category automatically -CategorieRecursivHelp=Se ativado, o produto também irá estar ligado à categoria fonte quando adicionar a uma subcategoria +CategoriesSetup=Configuração de etiquetas/categorias +CategorieRecursiv=Ligar com a etiqueta/categoria pai automaticamente +CategorieRecursivHelp=Se ativado, o produto também irá estar associado à categoria fonte quando adicionar a uma subcategoria AddProductServiceIntoCategory=Adicioanr o produto/serviço seguinte -ShowCategory=Show tag/category +ShowCategory=Mostrar etiqueta/categoria ByDefaultInList=Por predefinição na lista diff --git a/htdocs/langs/pt_PT/commercial.lang b/htdocs/langs/pt_PT/commercial.lang index f18a3088848..79530e65dc0 100644 --- a/htdocs/langs/pt_PT/commercial.lang +++ b/htdocs/langs/pt_PT/commercial.lang @@ -5,36 +5,37 @@ Customer=Cliente Customers=Clientes Prospect=Cliente Potencial Prospects=Clientes Potenciais -DeleteAction=Delete an event -NewAction=New event -AddAction=Create event -AddAnAction=Create an event -AddActionRendezVous=Create a Rendez-vous event -ConfirmDeleteAction=Are you sure you want to delete this event? -CardAction=Ficha da Acção -ActionOnCompany=Related company -ActionOnContact=Related contact +DeleteAction=Eliminar um evento +NewAction=Novo evento +AddAction=Criar evento +AddAnAction=Criar um evento +AddActionRendezVous=Marcar um encontro +ConfirmDeleteAction=Tem a certeza que quer eliminar este evento? +CardAction=Ficha do evento +ActionOnCompany=Empresa relacionada +ActionOnContact=Contacto relacionado TaskRDVWith=Reunião com %s ShowTask=Ver tarefa ShowAction=Ver acção ActionsReport=Relatório de acções ThirdPartiesOfSaleRepresentative=Terceiros com representante de vendas -SalesRepresentative=Commercial -SalesRepresentatives=Comerciais -SalesRepresentativeFollowUp=Comercial (seguimento) -SalesRepresentativeSignature=Comercial (assinatura) -NoSalesRepresentativeAffected=Nenhum comercial afectado +SaleRepresentativesOfThirdParty=Representantes de vendas do terceiro +SalesRepresentative=Representante de vendas +SalesRepresentatives=Representantes de vendas +SalesRepresentativeFollowUp=Representante de vendas (seguimento) +SalesRepresentativeSignature=Representante de vendas (assinatura) +NoSalesRepresentativeAffected=Nenhum representante de vendas atribuído ShowCustomer=Ver cliente ShowProspect=Ver clientes potenciais ListOfProspects=Lista de Clientes Potenciais ListOfCustomers=Lista de Clientes -LastDoneTasks=Latest %s completed actions -LastActionsToDo=Oldest %s not completed actions +LastDoneTasks=As %s últimas ações completas +LastActionsToDo=As %s mais antigas ações não concluídas DoneAndToDoActions=Lista de acções realizadas ou a realizar DoneActions=Lista de acções realizadas ToDoActions=Lista de acções incompletas -SendPropalRef=Submission of commercial proposal %s -SendOrderRef=Submission of order %s +SendPropalRef=Submissão da proposta comercial %s +SendOrderRef=Submissão da encomenda %s StatusNotApplicable=Não aplicável StatusActionToDo=A realizar StatusActionDone=Realizado @@ -48,24 +49,24 @@ LastProspectContactDone=Clientes potenciais contactados ActionAffectedTo=Acção assignada a ActionDoneBy=Acção realizada por ActionAC_TEL=Chamada telefónica -ActionAC_FAX=Envío Fax +ActionAC_FAX=Enviar fax ActionAC_PROP=Envío orçamento por correio -ActionAC_EMAIL=Envio E-Mail -ActionAC_RDV=Reunião -ActionAC_INT=Intervention on site -ActionAC_FAC=Envío factura por correio +ActionAC_EMAIL=Enviar email +ActionAC_RDV=Reuniões +ActionAC_INT=Intervenção no local +ActionAC_FAC=Enviar fatura do cliente por correio ActionAC_REL=Lembrete factura por correio ActionAC_CLO=Fechar -ActionAC_EMAILING=Envío mailing massivo -ActionAC_COM=Envío pedido por correio -ActionAC_SHIP=Enviar envio por correio -ActionAC_SUP_ORD=Enviar por e-mail para fornecedor -ActionAC_SUP_INV=Enviar fatura do fornecedor por e-mail +ActionAC_EMAILING=Enviar email em massa +ActionAC_COM=Enviar encomenda de cliente por email +ActionAC_SHIP=Enviar expedição por correio +ActionAC_SUP_ORD=Enviar encomenda a fornecedor por correio +ActionAC_SUP_INV=Enviar fatura do fornecedor por correio ActionAC_OTH=Outro ActionAC_OTH_AUTO=Eventos inseridos automaticamente ActionAC_MANUAL=Eventos inseridos manualmente ActionAC_AUTO=Eventos inseridos automaticamente -Stats=Estatisticas de Venda -StatusProsp=Estado Prospect -DraftPropals=Elaborar propostas comerciais -NoLimit=No limit +Stats=Estatísticas de venda +StatusProsp=Estado da prospeção +DraftPropals=Orçamentos em rascunho +NoLimit=Sem limite diff --git a/htdocs/langs/pt_PT/companies.lang b/htdocs/langs/pt_PT/companies.lang index bdb37320deb..d059171fe66 100644 --- a/htdocs/langs/pt_PT/companies.lang +++ b/htdocs/langs/pt_PT/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=O nome da empresa %s já existe. Escolha outro. ErrorSetACountryFirst=Defina primeiro o país SelectThirdParty=Selecione um terceiro -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Deseja eliminar esta empresa e toda a sua informação? DeleteContact=Eliminar um contacto/morada -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Deseja eliminar este contacto e toda a sua informação? MenuNewThirdParty=Novo Terceiro MenuNewCustomer=Novo Cliente MenuNewProspect=Novo Potencial Cliente @@ -14,7 +14,7 @@ NewCompany=Nova Empresa (Cliente Potencial, Cliente, Fornecedor) NewThirdParty=Novo Terceiro (Cliente Potencial, Cliente, Fornecedor) CreateDolibarrThirdPartySupplier=Criar entidade (fornecedor) CreateThirdPartyOnly=Criar terceiro -CreateThirdPartyAndContact=Create a third party + a child contact +CreateThirdPartyAndContact=Criar um terceiro e um dos seus contactos ProspectionArea=Área de prospeção IdThirdParty=ID Terceiro IdCompany=Id Empresa @@ -24,8 +24,8 @@ ThirdPartyContacts=Contactos de Terceiros ThirdPartyContact=Contacto de Terceiro Company=Empresa CompanyName=Razão social -AliasNames=Alias name (commercial, trademark, ...) -AliasNameShort=Alias name +AliasNames=Pseudónimo (comercial, marca registada, ...) +AliasNameShort=Pseudónimo Companies=Empresas CountryIsInEEC=País da Comunidade Económica Europeia ThirdPartyName=Nome de terceiros @@ -39,7 +39,7 @@ ThirdPartyCustomersWithIdProf12=Clientes com %s ó %s ThirdPartySuppliers=Fornecedores ThirdPartyType=Tipo de Terceiro Individual=Particular -ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. +ToCreateContactWithSameName=Isto irá criar automaticamente um contacto/morada com a mesma informação do terceiro. Na maioria dos casos, mesmo que o terceiro seja uma pessoa física, criar um terceiro apenas é suficiente. ParentCompany=Casa mãe Subsidiaries=Subsidiárias ReportByCustomers=Relatório por cliente @@ -48,11 +48,11 @@ CivilityCode=Código cortesía RegisteredOffice=Domicilio social Lastname=Apelidos Firstname=Primeiro Nome -PostOrFunction=Posição de trabalho +PostOrFunction=Posto de trabalho UserTitle=Título Address=Direcção State=Distrito -StateShort=State +StateShort=Estado Region=Região Country=País CountryCode=Código país @@ -62,10 +62,10 @@ PhoneShort=Telefone Skype=Skype Call=Chamada Chat=Chat -PhonePro=Telef. Trabalho +PhonePro=Telef. Profissional PhonePerso=Telef. particular PhoneMobile=Telemovel -No_Email=Refuse mass e-mailings +No_Email=Recusar e-mails em massa. Fax=Fax Zip=Código postal Town=Concelho @@ -74,9 +74,9 @@ Poste= Posição DefaultLang=Língua por omissão VATIsUsed=Sujeito a IVA VATIsNotUsed=Não Sujeito a IVA -CopyAddressFromSoc=Fill address with third party address -ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects -PaymentBankAccount=Payment bank account +CopyAddressFromSoc=Preencha a morada com a morada do terceiro +ThirdpartyNotCustomerNotSupplierSoNoRef=O terceiro não é cliente nem fornecedor, não contém qualquer objeto de referência +PaymentBankAccount=Conta bancária de pagamentos OverAllProposals=Orçamentos OverAllOrders=Encomendas OverAllInvoices=Faturas @@ -90,8 +90,8 @@ LocalTax2IsUsedES= IRPF é usado LocalTax2IsNotUsedES= IRPF não é usada LocalTax1ES=RE LocalTax2ES=IRPF -TypeLocaltax1ES=RE Type -TypeLocaltax2ES=IRPF Type +TypeLocaltax1ES=Tipo RE +TypeLocaltax2ES=Tipo IRPF WrongCustomerCode=Código cliente incorrecto WrongSupplierCode=Código fornecedor incorrecto CustomerCodeModel=Modelo de código cliente @@ -103,7 +103,7 @@ ProfId2Short=Prof. id 2 ProfId3Short=Prof. id 3 ProfId4Short=Prof. id 4 ProfId5Short=Prof ID 5 -ProfId6Short=Prof. id 6 +ProfId6Short=ID Profissional 6 ProfId1=ID profesional 1 ProfId2=ID profesional 2 ProfId3=ID profesional 3 @@ -135,8 +135,8 @@ ProfId4BE=- ProfId5BE=- ProfId6BE=- ProfId1BR=- -ProfId2BR=IE (Inscricao Estadual) -ProfId3BR=IM (Inscricao Municipal) +ProfId2BR=IE (Inscrição Estadual) +ProfId3BR=IM (Inscrição Municipal) ProfId4BR=CPF #ProfId5BR=CNAE #ProfId6BR=INSS @@ -194,8 +194,8 @@ ProfId3IN=Prof ID 3 ProfId4IN=Prof Id 4 ProfId5IN=Prof Id 5 ProfId6IN=- -ProfId1LU=Id. prof. 1 (R.C.S. Luxembourg) -ProfId2LU=Id. prof. 2 (Business permit) +ProfId1LU=ID Profissional 1 +ProfId2LU=ID Profissional 2 ProfId3LU=- ProfId4LU=- ProfId5LU=- @@ -204,7 +204,7 @@ ProfId1MA=Id prof. 1 (RC) ProfId2MA=Id prof. 2 (Patente) ProfId3MA=Id prof. 3 (IF) ProfId4MA=Id prof. 4 (CNSS) -ProfId5MA=Id. prof. 5 (I.C.E.) +ProfId5MA=ID Profissional 5 ProfId6MA=- ProfId1MX=Prof Id 1 (RFC). ProfId2MX=Prof Id 2 (R.. P. IMSS) @@ -236,7 +236,7 @@ ProfId3TN=Código na Alfandega ProfId4TN=CCC ProfId5TN=- ProfId6TN=- -ProfId1US=Prof Id +ProfId1US=ID Profissional ProfId2US=- ProfId3US=- ProfId4US=- @@ -257,14 +257,14 @@ VATIntraShort=CNPJ VATIntraSyntaxIsValid=Sintaxe Válida ProspectCustomer=Cliente Potencial/Cliente Prospect=Cliente Potencial -CustomerCard=Ficha de Cliente +CustomerCard=Ficha do cliente Customer=Cliente CustomerRelativeDiscount=Desconto Cliente Relativo CustomerRelativeDiscountShort=Desconto Relativo CustomerAbsoluteDiscountShort=Desconto Fixo CompanyHasRelativeDiscount=Este cliente tem um desconto por defeito de %s%% CompanyHasNoRelativeDiscount=Este cliente não tem descontos relativos por defeito -CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s +CompanyHasAbsoluteDiscount=Este cliente ainda tem créditos de desconto ou depósitos para %s %s CompanyHasCreditNote=Este cliente ainda tem notas de crédito para %s %s CompanyHasNoAbsoluteDiscount=Este cliente não tem mas descontos fixos disponiveis CustomerAbsoluteDiscountAllUsers=Descontos fixos em curso (acordado por todos os Utilizadores) @@ -276,9 +276,9 @@ AddContactAddress=Novo contacto/morada EditContact=Editar contato / endereço EditContactAddress=Editar contactos/endereços Contact=Contacto -ContactId=Contact id +ContactId=ID de contacto ContactsAddresses=Contato / Endereços -FromContactName=Name: +FromContactName=Nome: NoContactDefinedForThirdParty=Não existem contactos definidos para este terceiro NoContactDefined=Nenhum contacto definido para este terceiro DefaultContact=Contacto por Defeito @@ -306,12 +306,12 @@ ShowContact=Mostrar Contacto ContactsAllShort=Todos (sem filtro) ContactType=Tipo de Contacto ContactForOrders=Contacto para Pedidos -ContactForOrdersOrShipments=Order's or shipment's contact +ContactForOrdersOrShipments=Contacto da encomenda ou da expedição ContactForProposals=Contacto de Orçamentos ContactForContracts=Contacto de Contratos ContactForInvoices=Contacto de Facturas NoContactForAnyOrder=Este contacto não é contacto de nenhum pedido -NoContactForAnyOrderOrShipments=This contact is not a contact for any order or shipment +NoContactForAnyOrderOrShipments=Este contacto não é um contacto para qualquer encomenda ou expedição NoContactForAnyProposal=Este contacto não é contacto de nenhum orçamento NoContactForAnyContract=Este contacto não é contacto de nenhum contrato NoContactForAnyInvoice=Este contacto não é contacto de nenhuma factura @@ -329,7 +329,7 @@ VATIntraCheckableOnEUSite=Verificar na web da Comissão Europeia VATIntraManualCheck=Pode também realizar uma verificação manual na web europea %s ErrorVATCheckMS_UNAVAILABLE=Verificação Impossivel. O serviço de verificação não é prestado pelo país membro (%s). NorProspectNorCustomer=Nem Cliente, Nem Cliente Potencial -JuridicalStatus=Legal form +JuridicalStatus=Forma jurídica Staff=Empregados ProspectLevelShort=Cli. Potenc. ProspectLevel=Cliente Potencial @@ -370,9 +370,9 @@ ExportCardToFormat=Exportar ficha para o formato ContactNotLinkedToCompany=Contacto não vinculado a um Terceiro DolibarrLogin=Dolibarr - Iniciar Sessão NoDolibarrAccess=Sem Acesso -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Terceiros (empresas/fundações/pessoas físicas) e propriedades ExportDataset_company_2=Contactos de Terceiro e Atributos -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ImportDataset_company_1=Terceiros (empresas/fundações/pessoas físicas) e propriedades ImportDataset_company_2=Contatos/Moradas (de terceiros ou não) e atributos ImportDataset_company_3=Dados bancários ImportDataset_company_4=Terceiros/Representantes de vendas (afetar utilizadores representantes de vendas a terceiros) @@ -387,30 +387,30 @@ AllocateCommercial=Atribuído a representante de vendas Organization=Organismo FiscalYearInformation=Informação do Ano Fiscal FiscalMonthStart=Mês de Inicio do Exercício -YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him. -YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party +YouMustAssignUserMailFirst=Você deve adicionar um e-mail a este utilizador de forma a permitir que este receba notificações por e-mail. +YouMustCreateContactFirst=Para adicionar a funcionalidade de notificações por e-mail, você deve definir contactos com e-mails válidos para o terceiro. ListSuppliersShort=Lista de fornecedores ListProspectsShort=Lista das perspectivas ListCustomersShort=Lista de clientes ThirdPartiesArea=Terceiros e árrea de contacto -LastModifiedThirdParties=Latest %s modified third parties +LastModifiedThirdParties=Os últimos %s terceiros modificados UniqueThirdParties=Total de originais terceiros InActivity=Abrir ActivityCeased=Fechado -ThirdPartyIsClosed=Third party is closed -ProductsIntoElements=List of products/services into %s -CurrentOutstandingBill=Current outstanding bill -OutstandingBill=Max. for outstanding bill -OutstandingBillReached=Max. for outstanding bill reached +ThirdPartyIsClosed=O terceiro encontra-se fechado +ProductsIntoElements=Lista de produto /serviços em %s +CurrentOutstandingBill=Risco alcançado +OutstandingBill=Montante máximo para faturas pendentes +OutstandingBillReached=Montante máximo para faturas pendente foi alcançado MonkeyNumRefModelDesc=Devolve um número baixo o formato %syymm-nnnn para os códigos de clientes e %syymm-nnnn para os códigos dos Fornecedores, donde yy é o ano, mm o mês e nnnn um contador sequêncial sem ruptura e sem Voltar a 0. LeopardNumRefModelDesc=Código de cliente/fornecedor livre sem verificação. pode ser modificado em qualquer momento. ManagingDirectors=Nome Diretor(es) (DE, diretor, presidente ...) -MergeOriginThirdparty=Duplicate third party (third party you want to delete) -MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. -ThirdpartiesMergeSuccess=Thirdparties have been merged +MergeOriginThirdparty=Terceiro duplicado (terceiro que deseja eliminar) +MergeThirdparties=Gerir terceiros +ConfirmMergeThirdparties=Tem a certeza que pretende fundir este terceiro com o atual? Todos os objetos ligados a este serão movidos para o terceiro atual e depois o anterior será eliminado. +ThirdpartiesMergeSuccess=Os terceiros foram fundidos SaleRepresentativeLogin=Nome de utilizador do representante de vendas SaleRepresentativeFirstname=Primeiro nome do representante de vendas SaleRepresentativeLastname=Último nome do representante de vendas -ErrorThirdpartiesMerge=There was an error when deleting the thirdparties. Please check the log. Changes have been reverted. -NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code +ErrorThirdpartiesMerge=Ocorreu um erro ao eliminar os terceiros. As alterações foram revertidas. +NewCustomerSupplierCodeProposed=O código do cliente ou fornecedor sugerido encontra-se duplicado diff --git a/htdocs/langs/pt_PT/compta.lang b/htdocs/langs/pt_PT/compta.lang index 4fa138590c4..48bb4322512 100644 --- a/htdocs/langs/pt_PT/compta.lang +++ b/htdocs/langs/pt_PT/compta.lang @@ -62,7 +62,7 @@ AccountancyTreasuryArea=Área Contabilidade/Tesouraria NewPayment=Novo Pagamento Payments=Pagamentos PaymentCustomerInvoice=Cobrança factura a cliente -PaymentSocialContribution=Social/fiscal tax payment +PaymentSocialContribution=Pagamento da taxa social/fiscal PaymentVat=Pagamento IVA ListPayment=Lista de pagamentos ListOfCustomerPayments=Lista de pagamentos de clientes @@ -207,5 +207,5 @@ LinkedFichinter=Link to an intervention ImportDataset_tax_contrib=Social/fiscal taxes ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Error: Bank account not found -FiscalPeriod=Accounting period +FiscalPeriod=Período de contabilidade ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/pt_PT/contracts.lang b/htdocs/langs/pt_PT/contracts.lang index 2dccd7e61d4..f28bf0a5d06 100644 --- a/htdocs/langs/pt_PT/contracts.lang +++ b/htdocs/langs/pt_PT/contracts.lang @@ -1,92 +1,94 @@ # Dolibarr language file - Source file is en_US - contracts -ContractsArea=Área contractos -ListOfContracts=Lista de contractos -AllContracts=Todos os contractos -ContractCard=Ficha contrato -ContractStatusNotRunning=Fora de serviço +ContractsArea=Área de contratos +ListOfContracts=Lista de contratos +AllContracts=Todos os contratos +ContractCard=Ficha do contrato +ContractStatusNotRunning=Inativo ContractStatusDraft=Rascunho ContractStatusValidated=Validado ContractStatusClosed=Fechado -ServiceStatusInitial=Inactivo -ServiceStatusRunning=Em serviço -ServiceStatusNotLate=Correndo, não terminou -ServiceStatusNotLateShort=Não terminou -ServiceStatusLate=Em serviço, expirado +ServiceStatusInitial=Inativo +ServiceStatusRunning=Ativo +ServiceStatusNotLate=Ativo, não expirou +ServiceStatusNotLateShort=Não expirou +ServiceStatusLate=Ativo, expirado ServiceStatusLateShort=Expirado ServiceStatusClosed=Fechado -ShowContractOfService=Show contract of service -Contracts=contractos +ShowContractOfService=Mostrar contrato do serviço +Contracts=Contratos ContractsSubscriptions=Contractos/Subscrições ContractsAndLine=Contratos e linha de contratos Contract=Contrato -ContractLine=Contract line -Closing=Closing -NoContracts=Sem contractos +ContractLine=Linha de contrato +Closing=Encerramento +NoContracts=Sem contratos MenuServices=Serviços -MenuInactiveServices=Serviços Inactivos -MenuRunningServices=Serviços Activos -MenuExpiredServices=Serviços Expirados -MenuClosedServices=Serviços Fechados -NewContract=Novo Contrato -NewContractSubscription=New contract/subscription -AddContract=Create contract -DeleteAContract=Eliminar um Contrato -CloseAContract=Fechar um Contrato -ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? -ConfirmValidateContract=Are you sure you want to validate this contract under name %s? -ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? -ConfirmCloseService=Are you sure you want to close this service with date %s? -ValidateAContract=Confirmar um contrato -ActivateService=Activar o serviço -ConfirmActivateService=Are you sure you want to activate this service with date %s? -RefContract=referência de contrato -DateContract=Data contrato -DateServiceActivate=Data Activação do serviço +MenuInactiveServices=Serviços inativos +MenuRunningServices=Serviços ativos +MenuExpiredServices=Serviços expirados +MenuClosedServices=Serviços fechados +NewContract=Novo contrato +NewContractSubscription=Novo contrato/subscrição +AddContract=Criar contrato +DeleteAContract=Eliminar um contrato +CloseAContract=Fechar um contrato +ConfirmDeleteAContract=Tem certeza que deseja eliminar este contrato e todos os seus serviços? +ConfirmValidateContract=Tem a certeza que pretende validar este contrato com o nome %s? +ConfirmCloseContract=Isto irá fechar todos os serviços (ativos ou não). Tem a certeza que pretende fechar este contrato? +ConfirmCloseService=Tem a certeza que pretende fechar este serviço com a data %s? +ValidateAContract=Validar um contrato +ActivateService=Ativar o serviço +ConfirmActivateService=Tem a certeza que pretende ativar este serviço com a data %s? +RefContract=Referência do contrato +DateContract=Data do contrato +DateServiceActivate=Data de ativação do serviço ShowContract=Mostrar contrato ListOfServices=Lista de serviços -ListOfInactiveServices=Lista de serviços não activa -ListOfExpiredServices=Lista de serviços activos expirados +ListOfInactiveServices=Lista de serviços não activos +ListOfExpiredServices=Lista de serviços ativos expirados ListOfClosedServices=Lista de serviços fechados -ListOfRunningServices=Lista de serviços activos -NotActivatedServices=Serviços não activados (com os contractos validados) -BoardNotActivatedServices=Serviços a activar com os contractos validados -LastContracts=Latest %s contracts -LastModifiedServices=Latest %s modified services -ContractStartDate=Data inicio -ContractEndDate=Data finalização -DateStartPlanned=Data prevista de colocação em serviço -DateStartPlannedShort=Data inicio prevista -DateEndPlanned=Data prevista fim do serviço -DateEndPlannedShort=Data fim prevista -DateStartReal=Data real colocação em serviço -DateStartRealShort=Data inicio -DateEndReal=Data real fim do serviço -DateEndRealShort=Data real finalização -CloseService=Finalizar serviço -BoardRunningServices=Serviços activos expirados +ListOfRunningServices=Lista de serviços ativos +NotActivatedServices=Serviços inativos (em contractos validados) +BoardNotActivatedServices=Serviços a ativar (em contratos validados) +LastContracts=Os últimos %s contratos +LastModifiedServices=Os últimos %s serviços modificados +ContractStartDate=Data de inicio +ContractEndDate=Data de finalização +DateStartPlanned=Data de início prevista +DateStartPlannedShort=Data de início prevista +DateEndPlanned=Data de término prevista +DateEndPlannedShort=Data de término prevista +DateStartReal=Data de início real +DateStartRealShort=Data de início real +DateEndReal=Data de término real +DateEndRealShort=Data de término real +CloseService=Fechar serviço +BoardRunningServices=Serviços ativos expirados ServiceStatus=Estado do serviço -DraftContracts=Contractos rascunho -CloseRefusedBecauseOneServiceActive=O contrato não pode ser fechado já que contem ao menos um serviço aberto. -CloseAllContracts=Fechar todos os contractos -DeleteContractLine=Apagar uma linha contrato -ConfirmDeleteContractLine=Are you sure you want to delete this contract line? -MoveToAnotherContract=Mover o serviço a outro contrato deste Terceiro. -ConfirmMoveToAnotherContract=Escolhi o contrato e confirmo o alterar de serviço ao presente contrato. -ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? -PaymentRenewContractId=Renovação do Serviço (Numero %s) +DraftContracts=Contratos rascunho +CloseRefusedBecauseOneServiceActive=O contrato não pode ser fechado porque contém pelo menos um serviço aberto. +CloseAllContracts=Fechar todos os contratos +DeleteContractLine=Eliminar uma linha do contrato +ConfirmDeleteContractLine=Tem a certeza que deseja eliminar esta linha do contrato? +MoveToAnotherContract=Mover o serviço para outro contrato. +ConfirmMoveToAnotherContract=Eu escolhi um novo contrato alvo e confirme que quero mover este serviço para este contrato. +ConfirmMoveToAnotherContractQuestion=Para qual contrato (do mesmo terceiro) deseja mover este serviço? +PaymentRenewContractId=Renovar a linha do contrato (número %s) ExpiredSince=Expirado desde -NoExpiredServices=Nenhum serviço activo expirou -ListOfServicesToExpireWithDuration=Lista de Serviços para expirar em% s dias +NoExpiredServices=Nenhum serviço ativo expirado +ListOfServicesToExpireWithDuration=Lista de serviços a expirar em %s dias ListOfServicesToExpireWithDurationNeg=Lista de Serviços expirados há mais de %s dias -ListOfServicesToExpire=Lista de Serviços para expirar -NoteListOfYourExpiredServices=Esta lista contém apenas os serviços de contratos de terceiros aos quais está ligado como representante de vendas. -StandardContractsTemplate=Standard contracts template -ContactNameAndSignature=For %s, name and signature: -OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +ListOfServicesToExpire=Lista de serviços a expirar +NoteListOfYourExpiredServices=Esta lista contém apenas os serviços de contratos de terceiros aos quais está associado como representante de vendas. +StandardContractsTemplate=Modelos de contratos padrão +ContactNameAndSignature=Nome e assinatura para %s: +OnlyLinesWithTypeServiceAreUsed=Apenas linhas do tipo "Serviço" irão ser clonadas. +CloneContract=Clonar contrato +ConfirmCloneContract=Tem a certeza que pretende clonar o contrato %s? ##### Types de contacts ##### -TypeContact_contrat_internal_SALESREPSIGN=Comercial assinante do contrato -TypeContact_contrat_internal_SALESREPFOLL=Comercial seguimento do contrato -TypeContact_contrat_external_BILLING=Contacto cliente de facturação do contrato -TypeContact_contrat_external_CUSTOMER=Contacto cliente seguimento do contrato +TypeContact_contrat_internal_SALESREPSIGN=Representante de vendas assinante do contrato +TypeContact_contrat_internal_SALESREPFOLL=Representante de vendas que dá seguimento ao contrato +TypeContact_contrat_external_BILLING=Contacto do cliente responsável pela facturação do contrato +TypeContact_contrat_external_CUSTOMER=Contacto do cliente responsável pelo seguimento do contrato TypeContact_contrat_external_SALESREPSIGN=Contacto cliente assinante do contrato diff --git a/htdocs/langs/pt_PT/cron.lang b/htdocs/langs/pt_PT/cron.lang index 7338c883140..d9e60cdeba8 100644 --- a/htdocs/langs/pt_PT/cron.lang +++ b/htdocs/langs/pt_PT/cron.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - cron # About page # Right -Permission23101 = Ler trabalho agendado +Permission23101 = Ler trabalho agendadocar Permission23102 = Criar/atualizar trabalho agendado Permission23103 = Apagar Trabalho Agendado Permission23104 = Executar Trabalho Agendado diff --git a/htdocs/langs/pt_PT/deliveries.lang b/htdocs/langs/pt_PT/deliveries.lang index acaf364df5c..e9e4a5d8ed2 100644 --- a/htdocs/langs/pt_PT/deliveries.lang +++ b/htdocs/langs/pt_PT/deliveries.lang @@ -1,17 +1,17 @@ # Dolibarr language file - Source file is en_US - deliveries -Delivery=Envio -DeliveryRef=Ref Delivery -DeliveryCard=Receipt card -DeliveryOrder=Ordem de Envio -DeliveryDate=Data de Envio -CreateDeliveryOrder=Generate delivery receipt -DeliveryStateSaved=Delivery state saved -SetDeliveryDate=Indicar a Data de Envio -ValidateDeliveryReceipt=Confirmar a Nota de Entrega -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +Delivery=Entrega +DeliveryRef=Ref. de entrega +DeliveryCard=Ficha da nota de receção +DeliveryOrder=Ordem de entrega +DeliveryDate=Data da entrega +CreateDeliveryOrder=Gerar recibo de entrega +DeliveryStateSaved=Estado da entrega guardado +SetDeliveryDate=Definir data de envio +ValidateDeliveryReceipt=Validar recibo de entrega +ValidateDeliveryReceiptConfirm=Tem certeza que deseja validar este recibo de entrega? DeleteDeliveryReceipt=Eliminar recibo de entrega -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? -DeliveryMethod=Método de Envio +DeleteDeliveryReceiptConfirm=Tem a certeza que pretende eliminar este recibo de entrega %s? +DeliveryMethod=Método de envio TrackingNumber=Nº de tracking DeliveryNotValidated=Entrega não validada StatusDeliveryCanceled=Cancelada @@ -24,7 +24,7 @@ GoodStatusDeclaration=Recebi a mercadoria em bom estado, Deliverer=Destinatário: Sender=Origem Recipient=Destinatário -ErrorStockIsNotEnough=Não existe estoque suficiente +ErrorStockIsNotEnough=Não existe stock suficiente Shippable= Transportável NonShippable=Não Transportável -ShowReceiving=Show delivery receipt +ShowReceiving=Mostrar recibo da entrega diff --git a/htdocs/langs/pt_PT/dict.lang b/htdocs/langs/pt_PT/dict.lang index 6b2736654a5..5c9df1492ff 100644 --- a/htdocs/langs/pt_PT/dict.lang +++ b/htdocs/langs/pt_PT/dict.lang @@ -138,7 +138,7 @@ CountryLS=Lesoto CountryLR=Libéria CountryLY=Líbia CountryLI=Lichtenstein -CountryLT=Lithuania +CountryLT=Lituânia CountryLU=Luxemburgo CountryMO=Macau CountryMK=Macedónia, antiga República Jugoslava da diff --git a/htdocs/langs/pt_PT/ecm.lang b/htdocs/langs/pt_PT/ecm.lang index 3ef54de4670..64f2ec4f122 100644 --- a/htdocs/langs/pt_PT/ecm.lang +++ b/htdocs/langs/pt_PT/ecm.lang @@ -1,28 +1,28 @@ # Dolibarr language file - Source file is en_US - ecm -ECMNbOfDocs=Nº de Documentos +ECMNbOfDocs=Nº de documentos na pasta ECMSection=Pasta -ECMSectionManual=Pasta Manual -ECMSectionAuto=Pasta Automática -ECMSectionsManual=Pastas Manuais -ECMSectionsAuto=Pastas Automáticas +ECMSectionManual=Pasta manual +ECMSectionAuto=Pasta automática +ECMSectionsManual=Pastas manuais +ECMSectionsAuto=Pastas automáticas ECMSections=Pastas ECMRoot=Raíz -ECMNewSection=Nova Pasta Manual -ECMAddSection=Adicionar Pasta Manual -ECMCreationDate=Data Criação -ECMNbOfFilesInDir=Número de Ficheiros na Pasta -ECMNbOfSubDir=Número de Subpastas +ECMNewSection=Nova pasta manual +ECMAddSection=Adicionar pasta manual +ECMCreationDate=Data de criação +ECMNbOfFilesInDir=Número de ficheiros na pasta +ECMNbOfSubDir=Número de sub-pastas ECMNbOfFilesInSubDir=Número de ficheiros em sub-pastas ECMCreationUser=Criador -ECMArea=Área GED -ECMAreaDesc=A área GED (Gestão Electrónica de Documentos) permite guardar, partilhar e pesquisar rapidamente todo o tipo de documentos no Dolibarr. -ECMAreaDesc2=Pode criar pastas manuais e adicionar os documentos
as pastas automáticas são preenchidas automáticamente além de um documento numa ficha. -ECMSectionWasRemoved=A pasta %s foi eliminada -ECMSearchByKeywords=Procurar por Palavras Chave -ECMSearchByEntity=Procurar por Objecto -ECMSectionOfDocuments=Pastas de Documentos +ECMArea=Área ECM +ECMAreaDesc=A área ECM (Gestão de conteúdo electrónico) permite guardar, partilhar e pesquisar rapidamente todo o tipo de documentos no Dolibarr. +ECMAreaDesc2=* As diretorias automáticas são preenchidas automaticamente ao adicionar documentos a partir de uma ficha de um elemento.
* As diretorias manuais podem ser utlizadas para guardar documentos não associados a um elemento específico. +ECMSectionWasRemoved=A pasta %s foi eliminada. +ECMSearchByKeywords=Procurar por palavras-chave +ECMSearchByEntity=Procurar por objecto +ECMSectionOfDocuments=Pastas de documentos ECMTypeAuto=Automático -ECMDocsBySocialContributions=Documents linked to social or fiscal taxes +ECMDocsBySocialContributions=Documentos associados com os impostos fiscais ou sociais ECMDocsByThirdParties=Documentos associados a terceiros ECMDocsByProposals=Documentos associcados a orçamentos ECMDocsByOrders=Documentos associados a pedidos @@ -30,15 +30,15 @@ ECMDocsByContracts=Documentos associados a contratos ECMDocsByInvoices=Documentos associados a faturas ECMDocsByProducts=Documentos associados a produtos ECMDocsByProjects=Documentos associados a projectos -ECMDocsByUsers=Documents linked to users -ECMDocsByInterventions=Documents linked to interventions -ECMDocsByExpenseReports=Documents linked to expense reports +ECMDocsByUsers=Documentos associados a utilizadores +ECMDocsByInterventions=Documentos associados a intervenções +ECMDocsByExpenseReports=Documentos associados a relatórios de despesas ECMNoDirectoryYet=Nenhuma pasta criada ShowECMSection=Mostrar Pasta DeleteSection=Apagar Pasta -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Pode confirmar que deseja eliminar a pasta %s? ECMDirectoryForFiles=Pasta relativa para ficheiros CannotRemoveDirectoryContainsFiles=Não se pode eliminar porque contem ficheiros ECMFileManager=Explorador de Ficheiros ECMSelectASection=Seleccione uma pasta na árvore da esquerda -DirNotSynchronizedSyncFirst=Esta pasta parece ter sido criada ou modificada fora módulo GED. Deve clicar em "Actualizar" para sincronizar o disco e a base de dados para obter o conteúdo desta pasta. +DirNotSynchronizedSyncFirst=Esta diretoria parece ter sido criada ou modificada fora do módulo GCE. Deve clicar em "Atualizar" para sincronizar o disco e a base de dados para obter o conteúdo desta diretoria. diff --git a/htdocs/langs/pt_PT/errors.lang b/htdocs/langs/pt_PT/errors.lang index 055b4c07850..43c7c31bda7 100644 --- a/htdocs/langs/pt_PT/errors.lang +++ b/htdocs/langs/pt_PT/errors.lang @@ -208,7 +208,7 @@ WarningLockFileDoesNotExists=Warning, once setup is finished, you must disable i WarningUntilDirRemoved=Esta alerta seguirá activa mientras a pasta exista (alerta visivel para Os Utilizadores admin somente). WarningCloseAlways=Warning, closing is done even if amount differs between source and target elements. Enable this feature with caution. WarningUsingThisBoxSlowDown=Warning, using this box slow down seriously all pages showing the box. -WarningClickToDialUserSetupNotComplete=Setup of ClickToDial information for your user are not complete (see tab ClickToDial onto your user card). +WarningClickToDialUserSetupNotComplete=A configuração das informações ClickToDial do seu utilizador não está completa (consulte o separador ClickToDial no sua ficha de utilizador). WarningFeatureDisabledWithDisplayOptimizedForBlindNoJs=Feature disabled when display setup is optimized for blind person or text browsers. WarningPaymentDateLowerThanInvoiceDate=Payment date (%s) is earlier than invoice date (%s) for invoice %s. WarningTooManyDataPleaseUseMoreFilters=Too many data (more than %s lines). Please use more filters or set the constant %s to a higher limit. diff --git a/htdocs/langs/pt_PT/exports.lang b/htdocs/langs/pt_PT/exports.lang index 7a256889181..a86557e89fb 100644 --- a/htdocs/langs/pt_PT/exports.lang +++ b/htdocs/langs/pt_PT/exports.lang @@ -36,10 +36,10 @@ FormatedExportDesc2=O primeiro passo consiste em escolher um dos conjuntos de da FormatedExportDesc3=Uma vez seleccionados os dados, é possível escolher o formato do ficheiro de exportação gerado. Sheet=Folha NoImportableData=Não existe tipo de dados importável (não existe nenhum módulo com definições de dados importável activado) -FileSuccessfullyBuilt=File generated +FileSuccessfullyBuilt=Ficheiro gerado SQLUsedForExport=Pedido de SQL usada para construir exportação arquivo LineId=Id da linha -LineLabel=Label of line +LineLabel=Etiqueta da linha LineDescription=Descrição da linha LineUnitPrice=Preço por unidade de linha LineVATRate=Taxa de IVA de linha @@ -70,7 +70,7 @@ FieldSource=Campo da Fonte NbOfSourceLines=Número de linhas no arquivo de origem NowClickToTestTheImport=Verifique os parâmetros de importação que você definiu. Se eles estiverem correctos, clique no botão "%s" para iniciar uma simulação do processo de importação (dados não serão alterados em seu banco de dados, é apenas uma simulação para o momento) ... RunSimulateImportFile=Inicie a simulação de importação -FieldNeedSource=This field requires data from the source file +FieldNeedSource=Este campo requer dados do ficheiro fonte SomeMandatoryFieldHaveNoSource=Alguns campos obrigatórios não têm nenhuma fonte de dados de arquivo InformationOnSourceFile=Informações sobre a fonte de arquivo InformationOnTargetTables=Informações sobre os campos de destino @@ -78,11 +78,11 @@ SelectAtLeastOneField=Mudar de campo pelo menos uma fonte na coluna de campos pa SelectFormat=Escolha esse formato de arquivo de importação RunImportFile=Lançamento arquivo de importação NowClickToRunTheImport=Verifique o resultado da simulação de importação. Se tudo estiver ok, o lançamento de importação definitiva. -DataLoadedWithId=All data will be loaded with the following import id: %s +DataLoadedWithId=Todos os dados serão carregados com o seguinte ID de importação: %s ErrorMissingMandatoryValue=Dados obrigatórios estão vazios no arquivo de origem para %s campo. TooMuchErrors=Há ainda outra fonte %s linhas com erros, mas a produção tem sido limitada. TooMuchWarnings=Há ainda outra fonte %s linhas com os avisos, mas a produção tem sido limitada. -EmptyLine=linha em branco (serão descartadas) +EmptyLine=Linha em branco (serão descartadas) CorrectErrorBeforeRunningImport=Primeiro, você deve corrigir todos os erros antes de executar a importação definitiva. FileWasImported=O arquivo foi importado com %s número. YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. @@ -98,7 +98,7 @@ DataCodeIDSourceIsInsertedInto=O ID da linha foi encontrado o pai a partir do c SourceRequired=Valor dos dados é obrigatória SourceExample=Exemplo de valores de dados possíveis ExampleAnyRefFoundIntoElement=Qualquer ref encontrado para %s elemento -ExampleAnyCodeOrIdFoundIntoDictionary=Any code (or id) found into dictionary %s +ExampleAnyCodeOrIdFoundIntoDictionary=Qualquer código (ou ID) encontrado no dicionário %s CSVFormatDesc=Comma Separated Value formato de arquivo (. Csv).
Este é um formato de arquivo texto onde os campos são separados por separador [%s]. Se o separador é encontrado dentro de um conteúdo do campo, o campo é arredondado por volta de carácter [%s]. Caractere de escape para fugir personagem redonda é [%s]. Excel95FormatDesc=Excel file format (.xls)
This is native Excel 95 format (BIFF5). Excel2007FormatDesc=Excel file format (.xlsx)
This is native Excel 2007 format (SpreadsheetML). @@ -106,17 +106,28 @@ TsvFormatDesc=Tab Separated Value file format (.tsv)
This is a text fi ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). CsvOptions=Opções CSV Separator=Separador -Enclosure=Enclosure +Enclosure=Invólucro SpecialCode=Código Especial -ExportStringFilter=%% allows replacing one or more characters in the text +ExportStringFilter=%% permite a substituição de um ou mais caracteres no texto ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values -ImportFromLine=Import starting from line number -EndAtLineNb=End at line number +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values +ImportFromLine=Importar a partir da linha número +EndAtLineNb=Terminar na linha número +ImportFromToLine=Importar as linhas número (de - a) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Selecione a(s) coluna(s) para usar como chave primária para a tentativa de atualização +UpdateNotYetSupportedForThisImport=Atualização não é suportada para este tipo de importação (apenas inserção) +NoUpdateAttempt=Não foi realizada nenhuma tentativa de atualização, apenas de inserção +ImportDataset_user_1=Utilizadores e propriedades +ComputedField=Campo calculado ## filters -SelectFilterFields=If you want to filter on some values, just input values here. -FilteredFields=Filtered fields +SelectFilterFields=Se quiser filtrar alguns valores, basta inserir os valores aqui. +FilteredFields=Campos filtrados FilteredFieldsValues=Valor para filtrar -FormatControlRule=Format control rule +FormatControlRule=Regra de controle de formato +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Número de linhas inseridas: %s +NbUpdate=Número de linhas atualizadas: %s +MultipleRecordFoundWithTheseFilters=Foram encontrados vários registos com esses filtros: %s diff --git a/htdocs/langs/pt_PT/externalsite.lang b/htdocs/langs/pt_PT/externalsite.lang index 6795e54c6a0..87f941f8e43 100644 --- a/htdocs/langs/pt_PT/externalsite.lang +++ b/htdocs/langs/pt_PT/externalsite.lang @@ -2,4 +2,4 @@ ExternalSiteSetup=Configurar ligação com site externo ExternalSiteURL=URL do site externo ExternalSiteModuleNotComplete=O módulo Site Externo não está configurado correctamente. -ExampleMyMenuEntry=My menu entry +ExampleMyMenuEntry=Minha entrada de menu diff --git a/htdocs/langs/pt_PT/ftp.lang b/htdocs/langs/pt_PT/ftp.lang index 5345b8bd8ae..99dcd89649f 100644 --- a/htdocs/langs/pt_PT/ftp.lang +++ b/htdocs/langs/pt_PT/ftp.lang @@ -10,5 +10,5 @@ FailedToConnectToFTPServerWithCredentials=Não foi possível iniciar a sessão n FTPFailedToRemoveFile=Falha ao remover o ficheiro: %s. FTPFailedToRemoveDir=Não foi possível ao remover a diretoria: %s (Verifique as permissões e se a diretoria está sem dados). FTPPassiveMode=Modo passivo -ChooseAFTPEntryIntoMenu=Choose a FTP entry into menu... -FailedToGetFile=Failed to get files %s +ChooseAFTPEntryIntoMenu=Escolha uma entrada de FTP no menu... +FailedToGetFile=Falha a obter os ficheiros%s diff --git a/htdocs/langs/pt_PT/help.lang b/htdocs/langs/pt_PT/help.lang index 9809eb259a8..089f50134bb 100644 --- a/htdocs/langs/pt_PT/help.lang +++ b/htdocs/langs/pt_PT/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Fonte de apoio TypeSupportCommunauty=Comunidade (grátis) TypeSupportCommercial=Comercial TypeOfHelp=Tipo -NeedHelpCenter=Precisa de ajuda ou apoio? +NeedHelpCenter=Precisa de ajuda ou suporte? Efficiency=Eficiência TypeHelpOnly=Ajuda só TypeHelpDev=Ajuda + Desenvolvimento diff --git a/htdocs/langs/pt_PT/holiday.lang b/htdocs/langs/pt_PT/holiday.lang index a44d0d23823..8dd97e3e31a 100644 --- a/htdocs/langs/pt_PT/holiday.lang +++ b/htdocs/langs/pt_PT/holiday.lang @@ -1,9 +1,9 @@ # Dolibarr language file - Source file is en_US - holiday -HRM=RH +HRM=GRH Holidays=Licenças CPTitreMenu=Licenças MenuReportMonth=Comunicado mensal -MenuAddCP=New leave request +MenuAddCP=Novo pedido de licença NotActiveModCP=Deve ativar o módulo de Licenças para ver esta página. AddCP=Efetue um pedido de licença DateDebCP=Data de início @@ -11,49 +11,49 @@ DateFinCP=Data de fim DateCreateCP=Data de criação DraftCP=Rascunho ToReviewCP=Aguarda aprovação -ApprovedCP=Aprovada -CancelCP=Cancelada -RefuseCP=Recusada -ValidatorCP=Autorizada por -ListeCP=Lista de Licenças -ReviewedByCP=Será revista por +ApprovedCP=Aprovado +CancelCP=Cancelado +RefuseCP=Recusou +ValidatorCP=Aprovador +ListeCP=Lista de pedidos de licença +ReviewedByCP=Será aprovado por DescCP=Descrição -SendRequestCP=Criar requisição de licença +SendRequestCP=Criar pedido de licença DelayToRequestCP=Os pedidos de licença devem ser efetuados com pelo menos %s dia(s) de antecedência. -MenuConfCP=Balance of leaves -SoldeCPUser=Balanço de folgas é %s dias -ErrorEndDateCP=You must select an end date greater than the start date. -ErrorSQLCreateCP=Ocorreu um erro de SQL durante a criação: -ErrorIDFicheCP=Um erro ocorreu, a requisição de folga não existe +MenuConfCP=Fazer o balanço das licenças +SoldeCPUser=Balanço das licenças é %s dias +ErrorEndDateCP=Você deve selecionar uma data de fim maior do que a data de início. +ErrorSQLCreateCP=Ocorreu um erro SQL durante a criação: +ErrorIDFicheCP=Ocorreu um erro, o pedido de licença não existe. ReturnCP=Voltar à página anterior -ErrorUserViewCP=Não está autorizado a ler esta requisição de folga -InfosWorkflowCP=Information Workflow +ErrorUserViewCP=Você não está autorizado a consultar este pedido de licença. +InfosWorkflowCP=Informação do fluxo de trabalho RequestByCP=Pedido por -TitreRequestCP=Folga requirida -NbUseDaysCP=Numero de dias de férias consumido +TitreRequestCP=Pedido de licença +NbUseDaysCP=Número de dias de férias consumidos EditCP=Editar -DeleteCP=Apagar +DeleteCP=Eliminar ActionRefuseCP=Recusar ActionCancelCP=Cancelar StatutCP=Estado -TitleDeleteCP=apagar a requisição de folga -ConfirmDeleteCP=confirme que quer apagar requisição -ErrorCantDeleteCP=Erro não tem direitos para apagar reuisição -CantCreateCP=Não tem direitos para criar requisição de folgas -InvalidValidatorCP=Deve escolher um aprovador para as suas requisições -NoDateDebut=Seleccione a data de início. -NoDateFin=Seleccione a data de fim. -ErrorDureeCP=A sua requisição não contempla dias obráveis -TitleValidCP=Aprove a requisição -ConfirmValidCP=tem a certeza que quer aprovar? +TitleDeleteCP=Eliminar o pedido de licença +ConfirmDeleteCP=Tem a certeza que deseja eliminar este pedido de licença? +ErrorCantDeleteCP=Erro, você não tem permissão para eliminar este pedido de licença. +CantCreateCP=Você não tem permissão para fazer pedidos de licença. +InvalidValidatorCP=Deve escolher um aprovador para os seus pedidos de licença +NoDateDebut=Deve escolher uma data de início. +NoDateFin=Deve escolher uma data de fim. +ErrorDureeCP=O seu pedido de licença não contém dias úteis. +TitleValidCP=Aprovar o pedido de licença +ConfirmValidCP=Tem certeza de que deseja aprovar o pedido de licença? DateValidCP=Data aprovada -TitleToValidCP=Envie requisição -ConfirmToValidCP=tem a certeza que quer enviar requisição? -TitleRefuseCP=Recuse a requisição -ConfirmRefuseCP=Tem a certeza que quer recusar a requisição? +TitleToValidCP=Enviar pedido de licença +ConfirmToValidCP=Tem certeza de que deseja enviar o pedido de licença? +TitleRefuseCP=Recusar o pedido de licença +ConfirmRefuseCP=Tem certeza de que deseja recusar o pedido de licença? NoMotifRefuseCP=Deve indicar um motivo para recusar o pedido. -TitleCancelCP=Cancel a requisição -ConfirmCancelCP=Tem a certeza que quer cancelar a requisição? +TitleCancelCP=Cancelar o pedido de licença +ConfirmCancelCP=Tem certeza de que deseja cancelar o pedido de licença? DetailRefusCP=Razão para a rejeiçao DateRefusCP=Data de rejeição DateCancelCP=Data de cancelamento @@ -63,42 +63,42 @@ MotifCP=Motivo UserCP=Utilizador ErrorAddEventToUserCP=An error occurred while adding the exceptional leave. AddEventToUserOkCP=The addition of the exceptional leave has been completed. -MenuLogCP=View change logs +MenuLogCP=Ver os registos de alteração LogCP=Registo de actualizações de dias disponíveis ActionByCP=Realizado por UserUpdateCP=Para o utilizador -PrevSoldeCP=Previous Balance -NewSoldeCP=New Balance -alreadyCPexist=Uma requisição existe para esse período +PrevSoldeCP=Balanço prévio +NewSoldeCP=Novo balanço +alreadyCPexist=Um pedido de licença já foi feito para esse período. FirstDayOfHoliday=Primeiro dia de férias -LastDayOfHoliday=Ultimo dia de férias -BoxTitleLastLeaveRequests=Latest %s modified leave requests -HolidaysMonthlyUpdate=Actualização Mensal -ManualUpdate=Actualização Manual -HolidaysCancelation=Leave request cancelation -EmployeeLastname=Employee last name -EmployeeFirstname=Employee first name -TypeWasDisabledOrRemoved=Leave type (id %s) was disabled or removed +LastDayOfHoliday=Último dia de férias +BoxTitleLastLeaveRequests=Os últimos %s pedidos de licença modificados +HolidaysMonthlyUpdate=Atualização mensal +ManualUpdate=Atualização manual +HolidaysCancelation=Cancelamento do pedido de licença +EmployeeLastname=Último nome do funcionário +EmployeeFirstname=Primeiro do nome do funcionário +TypeWasDisabledOrRemoved=O tipo de licença (ID %s) foi desativado ou removido ## Configuration du Module ## -LastUpdateCP=Latest automatic update of leaves allocation -MonthOfLastMonthlyUpdate=Month of latest automatic update of leaves allocation -UpdateConfCPOK=Updated successfully. -Module27130Name= Management of leave requests -Module27130Desc= Management of leave requests -ErrorMailNotSend=An error occurred while sending email: +LastUpdateCP=As últimas atualizações automáticas de alocação de licenças +MonthOfLastMonthlyUpdate=Mês das últimas atualizações automáticas de alocação de licenças +UpdateConfCPOK=Atualizado com sucesso. +Module27130Name= Gestão de pedidos de licença +Module27130Desc= Gestão de pedidos de licença +ErrorMailNotSend=Ocorreu um erro ao enviar e-mail: NoticePeriod=Período de aviso #Messages -HolidaysToValidate=Validate leave requests -HolidaysToValidateBody=Below is a leave request to validate -HolidaysToValidateDelay=This leave request will take place within a period of less than %s days. -HolidaysToValidateAlertSolde=The user who made this leave reques do not have enough available days. -HolidaysValidated=Validated leave requests -HolidaysValidatedBody=Your leave request for %s to %s has been validated. -HolidaysRefused=Request denied -HolidaysRefusedBody=Your leave request for %s to %s has been denied for the following reason : -HolidaysCanceled=Canceled leaved request -HolidaysCanceledBody=Your leave request for %s to %s has been canceled. -FollowedByACounter=1: This type of leave need to be followed by a counter. Counter is incremented manually or automatically and when a leave request is validated, counter is decremented.
0: Not followed by a counter. -NoLeaveWithCounterDefined=There is no leave types defined that need to be followed by a counter -GoIntoDictionaryHolidayTypes=Go into Home - Setup - Dictionaries - Type of leaves to setup the different types of leaves. +HolidaysToValidate=Validar pedidos de licença +HolidaysToValidateBody=Abaixo encontra-se um pedido de licença por validar +HolidaysToValidateDelay=Este pedido de licença ocorrerá dentro de um período inferior a %s dias. +HolidaysToValidateAlertSolde=O utilizador que fez este pedido de licença não tem dias disponíveis suficientes. +HolidaysValidated=Pedidos de licença validados +HolidaysValidatedBody=O seu pedido de licença para o período de %s a %s foi validado. +HolidaysRefused=Pedido negado +HolidaysRefusedBody=O seu pedido de licença para o período de %s a %s foi negado pela seguinte razão: +HolidaysCanceled=Pedido de licença cancelado +HolidaysCanceledBody=O seu pedido de licença para o período de %s a %s foi cancelado. +FollowedByACounter=1: Este tipo de licença precisa ser seguido por um contador. O contador é incrementado manualmente ou automaticamente, quando um pedido de licença é validado o contador é diminuído.
0: Não seguido por um contador. +NoLeaveWithCounterDefined=Não há tipos de licença definidos que precisam ser seguidos por um contador +GoIntoDictionaryHolidayTypes=Entre em Início - Configuração - Dicionários - Tipo de licenças para configurar os diferentes tipos de licença. diff --git a/htdocs/langs/pt_PT/hrm.lang b/htdocs/langs/pt_PT/hrm.lang index 81396606e6c..9728633be5a 100644 --- a/htdocs/langs/pt_PT/hrm.lang +++ b/htdocs/langs/pt_PT/hrm.lang @@ -1,16 +1,16 @@ # Dolibarr language file - en_US - hrm # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service +HRM_EMAIL_EXTERNAL_SERVICE=Email do serviço externo de GRH Establishments=Estabelecimento Establishment=Estabelecimento NewEstablishment=Novo estabelecimento DeleteEstablishment=Eliminar estabelecimento -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? +ConfirmDeleteEstablishment=Tem a certeza que deseja eliminar este estabelecimento? OpenEtablishment=Abrir estabelecimento CloseEtablishment=Fechar estabelecimento # Dictionary -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Function list +DictionaryDepartment=GRH - Lista departamentos +DictionaryFunction=GRH - Lista de funções # Module Employees=Funcionários Employee=Funcionário diff --git a/htdocs/langs/pt_PT/install.lang b/htdocs/langs/pt_PT/install.lang index 98884c20370..f21444ba3b9 100644 --- a/htdocs/langs/pt_PT/install.lang +++ b/htdocs/langs/pt_PT/install.lang @@ -11,7 +11,7 @@ PHPSupportSessions=Este PHP suporta sessões. PHPSupportPOSTGETOk=Este PHP suporta variáveis GET e POST. PHPSupportPOSTGETKo=É possível que a sua configuração PHP não suporte as variáveis POST e/ou GET. Verifique o seu parâmetro variables_order no php.ini PHPSupportGD=Este PHP suporta funções gráficas GD . -PHPSupportCurl=This PHP support Curl. +PHPSupportCurl=Esta versão do PHP suporta Curl. PHPSupportUTF8=Este PHP suporte funções UTF8. PHPMemoryOK=A sua memória máxima da sessão PHP está definida para %s. Isto deverá ser suficiente. PHPMemoryTooLow=A sua memória máxima da sessão PHP está definida para %s bytes. Isto deve ser muito baixo. Altere o seu php.ini para definir o parâmetro memory_limit para pelo menos %s bytes. @@ -132,12 +132,13 @@ MigrationFinished=Migração terminada LastStepDesc=Último passo: Defina aqui o login ea senha que você planeja usar para se conectar ao software. Não perca isso, pois é a conta para administrar todos os outros. ActivateModule=Ative o módulo %s ShowEditTechnicalParameters=Clique aqui para mostrar/editar os parâmetros avançados (modo avançado) -WarningUpgrade=Warning:\nDid your run a database backup first?\nThis is highly recommanded: for example, due to some bugs into databases systems (for example mysql version 5.5.40/41/42/43), some data or tables may be lost during this process, so it is highly recommanded to have a complete dump of your database before starting migration.\n\nClick OK to start migration process... -ErrorDatabaseVersionForbiddenForMigration=Your database version is %s. It has a critical bug making data loss if you make structure change on your database, like it is required by the migration process. For his reason, migration will not be allowed until you upgrade your database to a higher fixed version (list of known bugged version: %s) +WarningUpgrade=Aviso:\nEfetuou previamente uma cópia de segurança da base-de-dados?\nIsto é altamente recomendado: por exemplo, no caso de existirem falhas nos sistemas de base-de-dados (na versão 5.5.40/41/42/43 do MySQL), alguns dados ou tabelas poderão perder-se durante este processo, daí recomenda-se que faça uma cópia completa da sua base-de-dados antes de iniciar o processo de migração.\nClique em OK para iniciar o processo de migração... +ErrorDatabaseVersionForbiddenForMigration=A sua versão da base-de-dados é %s. Esta versão possui um erro que poderá resultar em perda de dados se efetuar uma alteração da estrutura, como é efetuada durante o processo de migração. Como tal, a migração não será possível de efetuar enquanto a versão da base-de-dados for atualizada (lista de versões que contêm erros: %s) KeepDefaultValuesWamp=Você usa o DoliWamp Setup Wizard, para valores propostos aqui já estão otimizados. Alterá-los apenas se souber o que você faz. KeepDefaultValuesDeb=Você pode usar o assistente de configuração Dolibarr de um Ubuntu ou um pacote Debian, então os valores propostos aqui já estão otimizados. Apenas a senha do proprietário do banco de dados para criar tem de ser concluída. Alterar parâmetros outros apenas se você sabe o que fazer. KeepDefaultValuesMamp=Você usa o DoliMamp Setup Wizard, para valores propostos aqui já estão otimizados. Alterá-los apenas se souber o que você faz. KeepDefaultValuesProxmox=Você usa o assistente de configuração Dolibarr de um appliance virtual Proxmox, para valores propostos aqui já são otimizados. Alterá-los apenas se você sabe o que fazer. +UpgradeExternalModule=Corra o processo de atualização dedicado dos módulos externos ######### # upgrade @@ -161,7 +162,7 @@ MigrationContractsLineCreation=Criar uma linha de contrato contrato ref %s MigrationContractsNothingToUpdate=Não há mais coisas para fazer MigrationContractsFieldDontExist=Campo fk_facture não existe mais. Nada a fazer. MigrationContractsEmptyDatesUpdate=Contrato vazio data correcção -MigrationContractsEmptyDatesUpdateSuccess=Contract emtpy date correction done successfully +MigrationContractsEmptyDatesUpdateSuccess=A correção de datas por preencher em contratos existentes foi efetuada com sucesso MigrationContractsEmptyDatesNothingToUpdate=Nenhum contrato vazio com data para corrigir MigrationContractsEmptyCreationDatesNothingToUpdate=Nenhum contrato data de criação para corrigir MigrationContractsInvalidDatesUpdate=Data inválida, valor do contracto em correcção @@ -169,7 +170,7 @@ MigrationContractsInvalidDateFix=Contracto correcto %s (Data do contracto MigrationContractsInvalidDatesNumber=%s contratos modificados MigrationContractsInvalidDatesNothingToUpdate=Data inválida com valor negativo para corrigir MigrationContractsIncoherentCreationDateUpdate=Valor errado,correcção, data de criação de contrato -MigrationContractsIncoherentCreationDateUpdateSuccess=Bad value contract creation date correction done successfully +MigrationContractsIncoherentCreationDateUpdateSuccess=A correção de datas de criação de contratos contendo maus valores foi efetuada com sucesso MigrationContractsIncoherentCreationDateNothingToUpdate=Erro no contrato, data de criação ou valor para corrigir MigrationReopeningContracts=Abrir contrato fechado pelo erro MigrationReopenThisContract=Reabra contrato %s @@ -189,10 +190,10 @@ MigrationProjectTaskTime=Atualização do tempo despendido em segundos MigrationActioncommElement=Atualizar os dados nas ações MigrationPaymentMode=A migração de dados para o modo de pagamento MigrationCategorieAssociation=Migração de categorias -MigrationEvents=Migration of events to add event owner into assignement table -MigrationRemiseEntity=Update entity field value of llx_societe_remise -MigrationRemiseExceptEntity=Update entity field value of llx_societe_remise_except +MigrationEvents=Migração dos eventos de forma a adicionar o criador do evento à tabela de atribuições +MigrationRemiseEntity=Atualize o valor do campo entity da tabela llx_societe_remise +MigrationRemiseExceptEntity=Atualize o valor do campo entity da tabela llx_societe_remise_except MigrationReloadModule=Recarregar módulo %s ShowNotAvailableOptions=Mostrar opções indisponíveis HideNotAvailableOptions=Ocultar opções indisponíveis -ErrorFoundDuringMigration=Error were reported during migration process so next step is not available. To ignore errors, you can click here, but application or some features may not work correctly until fixed. +ErrorFoundDuringMigration=Não pode proceder ao próximo passo porque foram reportados erros durante o processo de migração. Para ignorar os erros, pode clicar aqui, mas a aplicação ou algumas funcionalidades desta poderão não funcionar corretamente. diff --git a/htdocs/langs/pt_PT/interventions.lang b/htdocs/langs/pt_PT/interventions.lang index fb57059c65e..1af0b5560f4 100644 --- a/htdocs/langs/pt_PT/interventions.lang +++ b/htdocs/langs/pt_PT/interventions.lang @@ -1,7 +1,7 @@ # Dolibarr language file - Source file is en_US - interventions Intervention=Intervenção Interventions=Intervenções -InterventionCard=Ficha de Intervenção +InterventionCard=Ficha de intervenção NewIntervention=Nova Intervenção AddIntervention=Create intervention ListOfInterventions=Lista de Intervenções @@ -41,15 +41,16 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Contacto do cliente do seguimiento da intervenção # Modele numérotation -PrintProductsOnFichinter=Print also lines of type "product" (not only services) on intervention card +PrintProductsOnFichinter=Imprimir também linhas do tipo "produto" (não apenas serviços) na ficha de intervenção PrintProductsOnFichinterDetails=interventions generated from orders UseServicesDurationOnFichinter=Use services duration for interventions generated from orders InterventionStatistics=Statistics of interventions -NbOfinterventions=Nb of intervention cards -NumberOfInterventionsByMonth=Nb of intervention cards by month (date of validation) +NbOfinterventions=Número de fichas de intervenção +NumberOfInterventionsByMonth=Número de fcihas de intervenção por mês (data de validação) ##### Exports ##### InterId=Intervention id InterRef=Intervention ref. diff --git a/htdocs/langs/pt_PT/languages.lang b/htdocs/langs/pt_PT/languages.lang index 4482f8fb8e4..70e42f56cd6 100644 --- a/htdocs/langs/pt_PT/languages.lang +++ b/htdocs/langs/pt_PT/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Alemão Language_de_AT=Alemão (Áustria) Language_de_CH=Alemão (Suíça) Language_el_GR=Grego +Language_el_CY=Grego (Chipre) Language_en_AU=Inglês (Austrália) Language_en_CA=Inglês (Canadá) Language_en_GB=Inglês (Reino Unido) @@ -26,8 +27,10 @@ Language_es_BO=Espanhol (Bolívia) Language_es_CL=Espanhol (Chile) Language_es_CO=Espanhol (Colombia) Language_es_DO=Espanhol (República Dominicana) +Language_es_EC=Espanhol (Equador) Language_es_HN=Espanhol (Honduras) Language_es_MX=Espanhol (México) +Language_es_PA=Espanhol (Panamá) Language_es_PY=Espanhol (Paraguai) Language_es_PE=Espanhol (Peru) Language_es_PR=Espanhol (Porto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Islandês Language_it_IT=Italiano Language_ja_JP=Japonês Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Canarês Language_ko_KR=Coreano Language_lo_LA=Laociano Language_lt_LT=Lituano Language_lv_LV=Letão Language_mk_MK=Macedónio +Language_mn_MN=Mongol Language_nb_NO=Norueguês (Bokmål) Language_nl_BE=Holandês (Bélgica) Language_nl_NL=Holandês (Países Baixos) diff --git a/htdocs/langs/pt_PT/ldap.lang b/htdocs/langs/pt_PT/ldap.lang index 22afadff2ee..977ec51631c 100644 --- a/htdocs/langs/pt_PT/ldap.lang +++ b/htdocs/langs/pt_PT/ldap.lang @@ -13,10 +13,10 @@ LDAPUsers=Utilizadores na base de dados LDAP LDAPFieldStatus=Estatuto LDAPFieldFirstSubscriptionDate=Data primeira adesão LDAPFieldFirstSubscriptionAmount=Montante primeira adesão -LDAPFieldLastSubscriptionDate=Latest subscription date -LDAPFieldLastSubscriptionAmount=Latest subscription amount -LDAPFieldSkype=Skype id -LDAPFieldSkypeExample=Example : skypeName +LDAPFieldLastSubscriptionDate=Data da última subscrição +LDAPFieldLastSubscriptionAmount=Montante da última subscrição +LDAPFieldSkype=ID Skype +LDAPFieldSkypeExample=Exemplo: skypeName UserSynchronized=Utilizador sincronizado GroupSynchronized=Grupo sincronizado MemberSynchronized=Membro sincronizado diff --git a/htdocs/langs/pt_PT/link.lang b/htdocs/langs/pt_PT/link.lang index ea73bdf08b6..27875af027a 100644 --- a/htdocs/langs/pt_PT/link.lang +++ b/htdocs/langs/pt_PT/link.lang @@ -7,4 +7,4 @@ ErrorFileNotLinked=Os ficheiros não puderam ser ligados LinkRemoved=A ligação %s foi removida ErrorFailedToDeleteLink= falhou a remoção da ligação '%s' ErrorFailedToUpdateLink= Falha na atualização de ligação '%s' -URLToLink=URL to link +URLToLink=URL para hiperligação diff --git a/htdocs/langs/pt_PT/loan.lang b/htdocs/langs/pt_PT/loan.lang index 2d76ab12753..92320ffdbbc 100644 --- a/htdocs/langs/pt_PT/loan.lang +++ b/htdocs/langs/pt_PT/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuração do módulo de empréstimo LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/pt_PT/mails.lang b/htdocs/langs/pt_PT/mails.lang index 36fa413d9f6..74041c31530 100644 --- a/htdocs/langs/pt_PT/mails.lang +++ b/htdocs/langs/pt_PT/mails.lang @@ -3,7 +3,7 @@ Mailing=Mailing EMailing=Mailing EMailings=Mailings AllEMailings=Todos os E-Mailings -MailCard=Ficha de Mailing +MailCard=Ficha de Emailing MailRecipients=Destinatários MailRecipient=Destinatario MailTitle=Titulo @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Enviado Parcialmente MailingStatusSentCompletely=Enviado Completamente MailingStatusError=Erro MailingStatusNotSent=Não Enviado -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Mailing validado com sucesso MailUnsubcribe=Cancelar Subscrição MailingStatusNotContact=Não efectuar mais contatos @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linha %s em Ficheiro @@ -116,8 +120,8 @@ Notifications=Notificações NoNotificationsWillBeSent=Nenhuma notificação por e-mail está prevista para este evento e empresa ANotificationsWillBeSent=1 notificação vai a ser enviada por e-mail SomeNotificationsWillBeSent=%s Notificações vão ser enviadas por e-mail -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista de todas as notificações de e-mail enviado MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/pt_PT/main.lang b/htdocs/langs/pt_PT/main.lang index a3f3d656336..b83a36f0fa2 100644 --- a/htdocs/langs/pt_PT/main.lang +++ b/htdocs/langs/pt_PT/main.lang @@ -24,12 +24,12 @@ FormatDateHourSecShort=%m/%d/%Y %I:%M:%S %p FormatDateHourTextShort=%d %b %Y %H:%M FormatDateHourText=%d %B %Y %H:%M DatabaseConnection=Conexão à Base de Dados -NoTemplateDefined=No template defined for this email type -AvailableVariables=Available substitution variables +NoTemplateDefined=Nenhum modelo definido para este tipo de e-mail +AvailableVariables=Variáveis de substituição disponíveis NoTranslation=Sem tradução NoRecordFound=Nenhum foi encontrado nenhum registo -NoRecordDeleted=No record deleted -NotEnoughDataYet=Not enough data +NoRecordDeleted=Nenhum registo eliminado +NotEnoughDataYet=Não existe dados suficientes NoError=Nenhum erro Error=Erro Errors=Erros @@ -37,13 +37,13 @@ ErrorFieldRequired=O campo '%s' é obrigatório ErrorFieldFormat=O campo '%s' tem um valor incorrecto ErrorFileDoesNotExists=O Ficheiro %s não existe ErrorFailedToOpenFile=Impossível abrir o fichero %s -ErrorCanNotCreateDir=Cannot create dir %s -ErrorCanNotReadDir=Cannot read dir %s +ErrorCanNotCreateDir=Não foi possível criar a pasta %s +ErrorCanNotReadDir=Não foi possível ler a pasta %s ErrorConstantNotDefined=Parâmetro %s não definido ErrorUnknown=Erro desconhecido ErrorSQL=Erro de SQL ErrorLogoFileNotFound=O ficheiro logo '%s' não se encontra -ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this +ErrorGoToGlobalSetup=Vá à configuração 'Empresa/Organização' para corrigir este problema ErrorGoToModuleSetup=Ir á configuração do módulo para corrigir ErrorFailedToSendMail=Erro ao envio do e-mail (emissor=%s, destinatário=%s) ErrorFileNotUploaded=Não foi possivel transferir o ficheiro @@ -60,56 +60,58 @@ ErrorSomeErrorWereFoundRollbackIsDone=Encontraram-se alguns erros. Modificaçõe ErrorConfigParameterNotDefined=O parâmetro %s não está definido ao fichero de configuração Dolibarr conf.php. ErrorCantLoadUserFromDolibarrDatabase=Impossivel encontrar o utilizador %s na base de dados do Dolibarr. ErrorNoVATRateDefinedForSellerCountry=Erro, nenhum tipo de IVA definido para o país '%s'. -ErrorNoSocialContributionForSellerCountry=Error, no social/fiscal taxes type defined for country '%s'. +ErrorNoSocialContributionForSellerCountry=Erro, nenhum tipo de contribuição social definida para o país %s. ErrorFailedToSaveFile=Erro, o registo do ficheiro falhou. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page -NotAuthorized=You are not authorized to do that. +ErrorCannotAddThisParentWarehouse=Está a tentar adicionar um armazém pai que já é filho do armazém atual +MaxNbOfRecordPerPage=Número máximo de registos por página +NotAuthorized=Não tem permissão para efetuar essa operação SetDate=Definir data SelectDate=Seleccionar uma data SeeAlso=Ver também %s SeeHere=Veja aqui Apply=Aplicar BackgroundColorByDefault=Cor de fundo por omissão -FileRenamed=The file was successfully renamed +FileRenamed=O ficheiro foi renomeado com sucesso +FileGenerated=O ficheiro foi gerado com sucesso +FileSaved=The file was successfully saved FileUploaded=O ficheiro foi enviado com sucesso -FileGenerated=The file was successfully generated +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Um ficheiro foi seleccionada para ser anexado, mas ainda não foi carregado. Clique em 'Adicionar este Ficheiro' para anexar. NbOfEntries=Nº de entradas -GoToWikiHelpPage=Read online help (Internet access needed) +GoToWikiHelpPage=Consultar ajuda online (necessita de acesso à Internet) GoToHelpPage=Ir para páginas de ajuda RecordSaved=Registo Guardado RecordDeleted=registro apagado LevelOfFeature=Nivel de funções NotDefined=Não Definida -DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr authentication mode is set to %s in configuration file conf.php.
This means that the password database is external to Dolibarr, so changing this field may have no effect. +DolibarrInHttpAuthenticationSoPasswordUseless=O modo de autenticação do Dolibarr está definido a %s no ficheiro de configuração conf.php.
Isto significa que a base-de-dados de palavras-passe é externa ao Dolibarr, por isso alterar o valor deste campo poderá não surtir qualquer efeito. Administrator=Administrador Undefined=Não Definido -PasswordForgotten=Password forgotten? +PasswordForgotten=Esqueceu-se da sua palavra-passe? SeeAbove=Ver acima HomeArea=Área Principal -LastConnexion=Latest connection +LastConnexion=Ultima conexão PreviousConnexion=Ligação Anterior -PreviousValue=Previous value +PreviousValue=Valor anterior ConnectedOnMultiCompany=Conectado sobre entidade ConnectedSince=Conectado desde -AuthenticationMode=Authentication mode -RequestedUrl=Requested URL +AuthenticationMode=Modo de autenticação +RequestedUrl=URL solicitado DatabaseTypeManager=Gestor do tipo de base de dados -RequestLastAccessInError=Latest database access request error -ReturnCodeLastAccessInError=Return code for latest database access request error -InformationLastAccessInError=Information for latest database access request error +RequestLastAccessInError=O último pedido incorreto de acesso à base de dados +ReturnCodeLastAccessInError=Retornar o código para o último pedido incorreto de acesso à base de dados +InformationLastAccessInError=Informação sobre o último pedido incorreto de acesso à base de dados DolibarrHasDetectedError=O Dolibarr detectou um erro técnico -InformationToHelpDiagnose=This information can be useful for diagnostic purposes +InformationToHelpDiagnose=Esta informação pode ser útil para diagnosticar problemas MoreInformation=Mais Informação TechnicalInformation=Informação técnica -TechnicalID=Technical ID +TechnicalID=ID Técnico NotePublic=Nota (pública) NotePrivate=Nota (privada) PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar a precisão dos preços unitarios a %s Decimais. DoTest=Teste ToFilter=Filtrar -NoFilter=No filter +NoFilter=Sem filtro WarningYouHaveAtLeastOneTaskLate=Atenção, tem um elemento a menos que passou a data de tolerencia. yes=Sim Yes=Sim @@ -120,7 +122,7 @@ Home=Inicio Help=Ajuda OnlineHelp=Ajuda On-line PageWiki=Página Wiki -MediaBrowser=Media browser +MediaBrowser=Navegador de média Always=Sempre Never=Nunca Under=Baixo @@ -130,30 +132,30 @@ Activate=Activar Activated=Activado Closed=Fechado Closed2=Fechado -NotClosed=Not closed +NotClosed=Não fechado Enabled=Activado Deprecated=Obsoleto Disable=Desactivar Disabled=Desactivado Add=Adicionar AddLink=Adicionar hiperligação -RemoveLink=Remove link -AddToDraft=Add to draft +RemoveLink=Remover hiperligação +AddToDraft=Adicionar ao rascunho Update=Atualizar Close=Fechar -CloseBox=Remove widget from your dashboard +CloseBox=Remover widget do painel Confirm=Confirmar -ConfirmSendCardByMail=Do you really want to send content of this card by mail to %s? +ConfirmSendCardByMail=Deseja enviar o conteúdo desta ficha por email para %s? Delete=Apagar Remove=Remover -Resiliate=Terminate +Resiliate=Cancelar Cancel=Cancelar Modify=Modificar Edit=Editar Validate=Validar ValidateAndApprove=Validar e Aprovar ToValidate=Para validar -NotValidated=Not validated +NotValidated=Não validado Save=Guardar SaveAs=Guardar Como TestConnection=Teste a ligação @@ -165,7 +167,7 @@ Go=Avançar Run=continuar CopyOf=Cópia de Show=Mostrar -Hide=Hide +Hide=Ocultar ShowCardHere=Mostrar ficha Search=Procurar SearchOf=Procurar @@ -208,8 +210,8 @@ Info=Registo de Eventos Family=Familia Description=Descrição Designation=Designação -Model=Doc template -DefaultModel=Default doc template +Model=Modelo de documento +DefaultModel=Modelo de documento predefinido Action=Evento About=Sobre Number=Número @@ -229,18 +231,18 @@ Next=Seguinte Cards=Fichas Card=Ficha Now=Ahora -HourStart=Start hour +HourStart=Hora de inicio Date=Data DateAndHour=Data e Hora -DateToday=Today's date -DateReference=Reference date +DateToday=Data de hoje +DateReference=Data de referência DateStart=Data de início DateEnd=Data de fim DateCreation=Data de Criação -DateCreationShort=Creat. date +DateCreationShort=Data de criação DateModification=Data de Modificação DateModificationShort=Data de Modif. -DateLastModification=Latest modification date +DateLastModification=A última data de alteração DateValidation=Data de Validação DateClosing=Data de Encerramento DateDue=Data de Vencimento @@ -255,10 +257,10 @@ DateBuild=Data da geração do Relatório DatePayment=Data de pagamento DateApprove=Data de aprovação DateApprove2=Data de aprovação (segunda aprovação) -UserCreation=Creation user -UserModification=Modification user -UserCreationShort=Creat. user -UserModificationShort=Modif. user +UserCreation=Utilizador que criou +UserModification=Utilizador que modificou +UserCreationShort=Utilizador que criou +UserModificationShort=Utilizador que modif. DurationYear=Ano DurationMonth=Mês DurationWeek=Semana @@ -293,7 +295,7 @@ MonthOfDay=Dia do mês HourShort=H MinuteShort=mn Rate=Tipo -CurrencyRate=Currency conversion rate +CurrencyRate=Taxa de conversão da moeda UseLocalTax=IVA incluído Bytes=Bytes KiloBytes=Kilobytes @@ -310,15 +312,15 @@ Copy=Copiar Paste=Colar Default=Predefinição DefaultValue=Valor Predefinido -DefaultValues=Default values +DefaultValues=Valores predefinidos Price=Preço UnitPrice=Preço Unitário UnitPriceHT=Preço Base (base) UnitPriceTTC=Preço Unitário PriceU=P.U. PriceUHT=P.U. (base) -PriceUHTCurrency=U.P (currency) -PriceUTTC=U.P. (inc. tax) +PriceUHTCurrency=P.U. (moeda) +PriceUTTC=P.U. (inc. impostos) Amount=Montante AmountInvoice=Montante da Fatura AmountPayment=Montante do Pagamento @@ -327,12 +329,12 @@ AmountTTCShort=Montante (IVA inc.) AmountHT=Montante (base) AmountTTC=Montante (IVA inc.) AmountVAT=Montante do IVA -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency -MulticurrencyAmountHT=Amount (net of tax), original currency -MulticurrencyAmountTTC=Amount (inc. of tax), original currency -MulticurrencyAmountVAT=Amount tax, original currency +MulticurrencyAlreadyPaid=Montante pago, moeda original +MulticurrencyRemainderToPay=Montante por pagar, moeda original +MulticurrencyPaymentAmount=Montante do pagamento, moeda original +MulticurrencyAmountHT=Montante (líquidos de impostos), moeda original +MulticurrencyAmountTTC=Montante (incl. impostos), moeda original +MulticurrencyAmountVAT=Montante de imposto, moeda original AmountLT1=Valor do IVA 2 AmountLT2=Valor do IVA 3 AmountLT1ES=Montante RE @@ -344,11 +346,11 @@ Percentage=Percentagem Total=Total SubTotal=Subtotal TotalHTShort=Montante base -TotalHTShortCurrency=Total (net in currency) +TotalHTShortCurrency=Total (líquido em moeda) TotalTTCShort=Total (IVA inc.) TotalHT=Total TotalHTforthispage=Total (liquido de imposto) para esta página -Totalforthispage=Total for this page +Totalforthispage=Total para esta página TotalTTC=Total (IVA inc.) TotalTTCToYourCredit=Total a crédito TotalVAT=Total do IVA @@ -358,6 +360,7 @@ TotalLT1ES=Total de RE TotalLT2ES=Total IRPF HT=Sem IVA TTC=IVA incluido +INCT=Inc. all taxes VAT=IVA VATs=Impostos das vendas LT1ES=RE @@ -366,8 +369,8 @@ VATRate=Taxa IVA Average=Média Sum=Soma Delta=Divergencia -Module=Module/Application -Modules=Modules/Applications +Module=Módulo/Aplicação +Modules=Módulos/Aplicações Option=Opção List=Lista FullList=Lista Completa @@ -388,7 +391,7 @@ ActionsToDoShort=A realizar ActionsDoneShort=Realizadas ActionNotApplicable=Não aplicável ActionRunningNotStarted=Não Iniciado -ActionRunningShort=In progress +ActionRunningShort=Em progresso ActionDoneShort=Terminado ActionUncomplete=Incompleta CompanyFoundation=Empresa/Organização @@ -400,7 +403,7 @@ ActionsOnMember=Eventos sobre este membro NActionsLate=%s em atraso RequestAlreadyDone=O pedido já foi realizado anteriormente Filter=Filtro -FilterOnInto=Search criteria '%s' into fields %s +FilterOnInto=Critério de pesquisa '%s' para os campos %s RemoveFilter=Remover filtro ChartGenerated=Gráficos gerados ChartNotGenerated=Gráfico não gerado @@ -409,9 +412,9 @@ Generate=Gerar Duration=Duração TotalDuration=Duração total Summary=Resumo -DolibarrStateBoard=Database statistics -DolibarrWorkBoard=Open items dashboard -NoOpenedElementToProcess=No opened element to process +DolibarrStateBoard=Estatísticas da base-de-dados +DolibarrWorkBoard=Abrir painel de itens +NoOpenedElementToProcess=Nenhum elemento aberto para processar Available=Disponível NotYetAvailable=Ainda não disponivel NotAvailable=Não disponivel @@ -429,7 +432,7 @@ Quantity=quantidade Qty=Quant. ChangedBy=Modificado por ApprovedBy=Aprovado por -ApprovedBy2=Approved by (second approval) +ApprovedBy2=Aprovado por (segunda aprovação) Approved=Aprovado Refused=Recusado ReCalculate=Recalcular @@ -447,7 +450,7 @@ General=General Size=Tamanho Received=Recebido Paid=Pago -Topic=Subject +Topic=Assunto ByCompanies=Por empresa ByUsers=Por utilizador Links=Links @@ -458,9 +461,9 @@ NextStep=Passo Seguinte Datas=Dados None=Nenhum NoneF=Nenhuma -NoneOrSeveral=None or several +NoneOrSeveral=Nenhum ou vários Late=Atraso -LateDesc=Delay to define if a record is late or not depends on your setup. Ask your admin to change delay from menu Home - Setup - Alerts. +LateDesc=O tempo de atraso predefinido que define se um determinado registo está atrasado ou não depende da configuração do sistema. Peça ao seu administrador do sistema para alterar o tempo de atraso predefinido. Photo=Foto Photos=Fotos AddPhoto=Adicionar foto @@ -468,7 +471,7 @@ DeletePicture=Apagar Imagem ConfirmDeletePicture=Confirmar eliminação da imagem? Login=Iniciar Sessão CurrentLogin=Sessão atual -EnterLoginDetail=Enter login details +EnterLoginDetail=Introduza os detalhes de inicio de sessão January=Janeiro February=Fevereiro March=Março @@ -518,7 +521,6 @@ MonthShort10=Out. MonthShort11=Nov. MonthShort12=Dez. AttachedFiles=Ficheiros e Documentos Anexos -FileTransferComplete=Foi transferido correctamente o Ficheiro DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS @@ -526,8 +528,8 @@ ReportName=Nome do Relatório ReportPeriod=Periodo de análise ReportDescription=Descrição Report=Relatório -Keyword=Keyword -Origin=Origin +Keyword=Palavra-chave +Origin=Origem Legend=Legenda Fill=preencher Reset=restabelecer @@ -543,8 +545,8 @@ FindBug=Sinalizar um bug NbOfThirdParties=Numero de Terceiros NbOfLines=Numeros de Linhas NbOfObjects=Numero de Objectos -NbOfObjectReferers=Number of related items -Referers=Related items +NbOfObjectReferers=Número de itens relacionados +Referers=Itens relacionados TotalQuantity=Quantidade Total DateFromTo=De %s a %s DateFrom=A partir de %s @@ -592,29 +594,29 @@ GoBack=Voltar CanBeModifiedIfOk=Pode ser modificado se for válido CanBeModifiedIfKo=Pode ser modificado senão for válido ValueIsValid=Valor Válido -ValueIsNotValid=Value is not valid -RecordCreatedSuccessfully=Record created successfully +ValueIsNotValid=O valor não é válido +RecordCreatedSuccessfully=Registo criado com sucesso RecordModifiedSuccessfully=Registo modificado com êxito -RecordsModified=%s record modified -RecordsDeleted=%s record deleted +RecordsModified=%s registos modificados +RecordsDeleted=%s registos eliminados AutomaticCode=Criação automática de código FeatureDisabled=Função Desactivada -MoveBox=Move widget +MoveBox=Mover widget Offered=Oferta NotEnoughPermissions=Não tem permissões para efectuar esta acção SessionName=Nome Sessão Method=Método Receive=Recepção -CompleteOrNoMoreReceptionExpected=Complete or nothing more expected -ExpectedValue=Expected Value +CompleteOrNoMoreReceptionExpected=Complete ou nada mais é esperado +ExpectedValue=Valor esperado CurrentValue=Valor actual PartialWoman=Parcial TotalWoman=Total NeverReceived=Nunca Recebido Canceled=Cancelado -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s -YouCanSetDefaultValueInModuleSetup=You can set the default value used when creating a new record into module setup +YouCanChangeValuesForThisListFromDictionarySetup=Pode alterar estes valores para esta lista a partir do menu Configuração -> Dicionários +YouCanChangeValuesForThisListFrom=Pode alterar os valores desta lista a partir do menu %s +YouCanSetDefaultValueInModuleSetup=Você pode predefinir o valou a usar na criação de um novo registo na configuração de módulos. Color=Cor Documents=Documentos Documents2=Documentos @@ -629,13 +631,13 @@ CurrentUserLanguage=Idioma Actual CurrentTheme=Tema Actual CurrentMenuManager=Gestor de menu atual Browser=Browser -Layout=Layout -Screen=Screen +Layout=Disposição +Screen=Ecrã DisabledModules=Módulos Desactivados For=Para ForCustomer=Para cliente Signature=Assinatura -DateOfSignature=Date of signature +DateOfSignature=Data da assinatura HidePassword=Esconder password UnHidePassword=Mostrar caracteres da password Root=Raíz @@ -649,13 +651,13 @@ FreeLineOfType=Entrada livre do tipo CloneMainAttributes=Copiar objeto com os seus atributos principais PDFMerge=PDF Merge Merge=Junção -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Modelo PDF padrão PrintContentArea=Visualizar página para impressão área de conteúdo principal MenuManager=Gestão do menu WarningYouAreInMaintenanceMode=Atenção, você está em um modo de manutenção, tão somente %s login é permitido o uso de aplicativos no momento. CoreErrorTitle=Erro de sistema -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. -CreditCard=cartões de crédito +CoreErrorMessage=Ocorreu um erro. Contacte o seu administrador do sistema de forma a que este proceda à análise do relatórios ou desative a opção $dolibarr_main_prod=1 para obter mais informação. +CreditCard=Cartão de crédito FieldsWithAreMandatory=Os campos com %s são obrigatórios FieldsWithIsForPublic=Os campos com %s são mostrados na lista pública dos membros. Se você não quer isso, verificar o "caixa" do público. AccordingToGeoIPDatabase=(De acordo com GeoIP conversão) @@ -664,7 +666,7 @@ NotSupported=Não é suportado RequiredField=Campo obrigatório Result=Resultado ToTest=Teste -ValidateBefore=O cartão deve ser validado antes de usar este recurso +ValidateBefore=O cartão deve ser validado antes de usar esta funcionalidade Visibility=Visibilidade Private=Privado Hidden=Oculto @@ -680,15 +682,15 @@ NewAttribute=Novo atributo AttributeCode=Código de atributo URLPhoto=Url da foto / logotipo SetLinkToAnotherThirdParty=Link para um terceiro -LinkTo=Link to -LinkToProposal=Link to proposal +LinkTo=Associar a +LinkToProposal=Associar a orçamento LinkToOrder=Hiperligação para encomendar -LinkToInvoice=Link to invoice -LinkToSupplierOrder=Link to supplier order -LinkToSupplierProposal=Link to supplier proposal -LinkToSupplierInvoice=Link to supplier invoice -LinkToContract=Link to contract -LinkToIntervention=Link to intervention +LinkToInvoice=Associar a fatura +LinkToSupplierOrder=Associar a encomenda ao fornecedor +LinkToSupplierProposal=Associar a orçamento do fornecedor +LinkToSupplierInvoice=Associar a fatura do fornecedor +LinkToContract=Associar a contrato +LinkToIntervention=Associar a intervenção CreateDraft=Criar Rascunho SetToDraft=Voltar para o rascunho ClickToEdit=Clique para editar @@ -703,20 +705,20 @@ ByDay=Por dia BySalesRepresentative=Por representante de vendas LinkedToSpecificUsers=Associado ao contacto de um utilizador NoResults=Sem resultados -AdminTools=Admin tools +AdminTools=Ferramentas de administrador SystemTools=Ferramentas do sistema ModulesSystemTools=Módulos de ferramentas Test=Teste Element=Elemento NoPhotoYet=Sem imagem disponível ainda -Dashboard=Dashboard -MyDashboard=My dashboard +Dashboard=Painel +MyDashboard=O meu painel Deductible=Dedutível from=Emissor toward=relativamente a Access=Acesso -SelectAction=Select action -SelectTargetUser=Select target user/employee +SelectAction=Selecione a ação +SelectTargetUser=Selecione o utilizador/empregado alvo HelpCopyToClipboard=Use Ctrl+C para copiar SaveUploadedFileWithMask=Guardar o ficheiro no servidor com o nome "%s" (caso contrário "%s") OriginFileName=Nome do ficheiro original @@ -727,57 +729,57 @@ ViewPrivateNote=Ver notas XMoreLines=%s linhas(s) ocultas PublicUrl=URL público AddBox=Adicionar Caixa -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Selecione um elemento e clique em %s PrintFile=Imprimir Ficheiro %s -ShowTransaction=Show entry on bank account +ShowTransaction=Mostrar transação GoIntoSetupToChangeLogo=Vá Início - Configurar - Empresa para alterar o logótipo ou vá a Início - Configurar - Exibir para ocultar. Deny=Negar Denied=Negada ListOfTemplates=Lista de modelos -Gender=Gender +Gender=Género Genderman=Homem Genderwoman=Mulher ViewList=Ver Lista -Mandatory=Mandatory +Mandatory=Obrigatório Hello=Olá -Sincerely=Sincerely +Sincerely=Atenciosamente DeleteLine=Apagar a linha -ConfirmDeleteLine=Are you sure you want to delete this line? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. -NoRecordSelected=No record selected -MassFilesArea=Area for files built by mass actions -ShowTempMassFilesArea=Show area of files built by mass actions -RelatedObjects=Related Objects +ConfirmDeleteLine=Tem a certeza que deseja eliminar esta linha? +NoPDFAvailableForDocGenAmongChecked=Não existia documento PDF disponível para a geração de documentos entre os registos assinalados +TooManyRecordForMassAction=Foram selecionados demasiados registos para a ação em massa. Esta ação está restringida a um número máximo de %s registos. +NoRecordSelected=Nenhum registo selecionado +MassFilesArea=Área para os ficheiros criados através de ações em massa +ShowTempMassFilesArea=Mostrar área para os ficheiros criados através de ações em massa +RelatedObjects=Objetos relacionados ClassifyBilled=Classificar Facturado Progress=Progresso ClickHere=Clique aqui FrontOffice=Front office BackOffice=Back office -View=View +View=Vista Export=Exportar Exports=Exportados -ExportFilteredList=Export filtered list -ExportList=Export list +ExportFilteredList=Exportar lista filtrada +ExportList=Exportar lista Miscellaneous=Diversos Calendar=Calendario -GroupBy=Group by... -ViewFlatList=View flat list -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate +GroupBy=Agrupar por... +ViewFlatList=Vista de lista +RemoveString=Remover texto '%s' +SomeTranslationAreUncomplete=Algumas línguas podem estar apenas parcialmente traduzidas ou podem conter erros. Se detetar erros de tradução, pode ajudar na melhoria da tradução registando-se em https://transifex.com/projects/p/dolibarr/. +DirectDownloadLink=Link para descarregar diretamente +Download=Descarregar +ActualizeCurrency=Atualizar taxa de conversão da moeda Fiscalyear=Ano Fiscal -ModuleBuilder=Module Builder -SetMultiCurrencyCode=Set currency -BulkActions=Bulk actions -ClickToShowHelp=Click to show tooltip help -HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +ModuleBuilder=Construtor de módulos +SetMultiCurrencyCode=Definir moeda +BulkActions=Ações em massa +ClickToShowHelp=Clique para mostrar o balão de ajuda +HR=RH +HRAndBank=RH e Banco +AutomaticallyCalculated=Calculado automaticamente +TitleSetToDraft=Repôr para rascunho +ConfirmSetToDraft=Tem a certeza que pretende repôr para o estado de Rascunho? # Week day Monday=Segunda-feira Tuesday=Terça-feira @@ -807,31 +809,31 @@ ShortThursday=Qui ShortFriday=Sex ShortSaturday=Sab ShortSunday=Dom -SelectMailModel=Select email template -SetRef=Set ref -Select2ResultFoundUseArrows=Some results found. Use arrows to select. -Select2NotFound=No result found -Select2Enter=Enter -Select2MoreCharacter=or more character -Select2MoreCharacters=or more characters -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
-Select2LoadingMoreResults=Loading more results... -Select2SearchInProgress=Search in progress... -SearchIntoThirdparties=Thirdparties +SelectMailModel=Selecione o modelo de email +SetRef=Definir referência +Select2ResultFoundUseArrows=Foram encontrados alguns resultados. Utilize as setas para selecionar o desejado. +Select2NotFound=Nenhum resultado encontrado +Select2Enter=Introduza +Select2MoreCharacter=ou mais caracteres +Select2MoreCharacters=ou mais caracteres +Select2MoreCharactersMore=\nSintaxe de pesquisa:
| OR(alb)
*Qualquer caracter(a*b)
^Começar com (^ab)
$ Terminar com (ab$)
+Select2LoadingMoreResults=A carregar mais resultados... +Select2SearchInProgress=Pesquisa em progresso... +SearchIntoThirdparties=Terceiros SearchIntoContacts=Contactos SearchIntoMembers=Membros SearchIntoUsers=Utilizadores -SearchIntoProductsOrServices=Products or services +SearchIntoProductsOrServices=Produtos ou serviços SearchIntoProjects=Projetos SearchIntoTasks=Tarefas SearchIntoCustomerInvoices=Faturas de Clientes SearchIntoSupplierInvoices=Faturas de Fornecedores SearchIntoCustomerOrders=Encomendas de clientes -SearchIntoSupplierOrders=Supplier orders -SearchIntoCustomerProposals=Customer proposals -SearchIntoSupplierProposals=Supplier proposals +SearchIntoSupplierOrders=Encomendas a fornecedores +SearchIntoCustomerProposals=Orçamentos +SearchIntoSupplierProposals=Orçamentos de fornecedores SearchIntoInterventions=Intervenções SearchIntoContracts=contractos -SearchIntoCustomerShipments=Customer shipments +SearchIntoCustomerShipments=Expedições do cliente SearchIntoExpenseReports=Relatórios de despesas SearchIntoLeaves=Licenças diff --git a/htdocs/langs/pt_PT/margins.lang b/htdocs/langs/pt_PT/margins.lang index f91c1790cc4..a026018cac8 100644 --- a/htdocs/langs/pt_PT/margins.lang +++ b/htdocs/langs/pt_PT/margins.lang @@ -15,7 +15,7 @@ margesSetup=Profit margins management setup MarginDetails=Detalhes da margem ProductMargins=Margens do produto CustomerMargins=Margens do cliente -SalesRepresentativeMargins=Sales representative margins +SalesRepresentativeMargins=Margens de representantes de vendas UserMargins=User margins ProductService=Produto ou Serviço AllProducts=Todos os produtos e serviços @@ -31,14 +31,14 @@ MARGIN_TYPE=Buying/Cost price suggested by default for margin calculation MargeType1=Margin on Best supplier price MargeType2=Margin on Weighted Average Price (WAP) MargeType3=Margin on Cost Price -MarginTypeDesc=* Margin on best buying price = Selling price - Best supplier price defined on product card
* Margin on Weighted Average Price (WAP) = Selling price - Product Weighted Average Price (WAP) or best supplier price if WAP not yet defined
* Margin on Cost price = Selling price - Cost price defined on product card or WAP if cost price not defined, or best supplier price if WAP not yet defined +MarginTypeDesc=* Margem no melhor preço de compra = Preço de venda - Melhor preço de fornecedor definido na ficha de produto
* Margem no preço médio ponderado (WAP) = Preço de venda - Preço médio ponderado do produto (PMP) ou melhor preço do fornecedor se PMP ainda não estiver definido
* Margem no preço de custo = Preço de venda - Preço de custo definido na ficha de produto ou PMP se o preço de custo não estiver definido ou o melhor preço do fornecedor se o PMP ainda não estiver definido CostPrice=Preço de custo UnitCharges=Custos unitários Charges=Custos AgentContactType=Tipo de contacto usado para comissionamento -AgentContactTypeDetails=Define what contact type (linked on invoices) will be used for margin report per sale representative +AgentContactTypeDetails=Defina que tipo de contacto (associado em faturas) será usado no relatório de margens, por representante de vendas rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/pt_PT/members.lang b/htdocs/langs/pt_PT/members.lang index 8a739554dc2..d7bc09bb795 100644 --- a/htdocs/langs/pt_PT/members.lang +++ b/htdocs/langs/pt_PT/members.lang @@ -1,10 +1,10 @@ # Dolibarr language file - Source file is en_US - members MembersArea=Área de Membros -MemberCard=Ficha membro -SubscriptionCard=Ficha de Subscrição +MemberCard=Ficha de membro +SubscriptionCard=Ficha de subscrição Member=Membro Members=Membros -ShowMember=Mostrar ficha membro +ShowMember=Mostrar ficha de membro UserNotLinkedToMember=Utilizador não vinculado a um membro ThirdpartyNotLinkedToMember=Terceiro não está associado a um membro MembersTickets=Etiquetas Membros @@ -17,7 +17,7 @@ ThisIsContentOfYourCard=Hi.

This is a remind of the information we get ab CardContent=Conteúdo do seu cartão de membro SetLinkToUser=Link para um usuário Dolibarr SetLinkToThirdParty=Link para uma Dolibarr terceiro -MembersCards=Cartões de Membros +MembersCards=Cartões de negócio dos membros MembersList=Lista de Membros MembersListToValid=Lista de Membros rascunho (a Confirmar) MembersListValid=Lista de Membros validados @@ -42,12 +42,12 @@ MemberTypeId=ID tipo de membro MemberTypeLabel=Etiqueta tipo de membro MembersTypes=Tipos de Membros MemberStatusDraft=Rascunho (a Confirmar) -MemberStatusDraftShort=A Confirmar +MemberStatusDraftShort=Rascunho MemberStatusActive=Validado (em espera de filiação ) MemberStatusActiveShort=Validado MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Não actualizada -MemberStatusPaid=Subscrição em dia +MemberStatusPaid=Subscrições em dia MemberStatusPaidShort=Em dia MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated @@ -64,13 +64,13 @@ Subscriptions=Filicações SubscriptionLate=Em atraso SubscriptionNotReceived=Filiação não recebida ListOfSubscriptions=Lista de Filicações -SendCardByMail=Enviar ficha +SendCardByMail=Enviar ficha por email AddMember=Create member NoTypeDefinedGoToSetup=Nenhum tipo de membro definido. ir a configuração -> Tipos de Membros NewMemberType=Novo tipo de membro WelcomeEMail=E-mail SubscriptionRequired=Sujeito a cotação -DeleteType=Eliminar +DeleteType=Apagar VoteAllowed=Voto autorizado Physical=Pessoa Singular Moral=Pessoa Coletiva @@ -90,15 +90,16 @@ PublicMemberList=Lista pública de Membros BlankSubscriptionForm=Formulario de incrição BlankSubscriptionFormDesc=Dolibarr pode fornecer uma URL pública para permitir que os visitantes externos para pedir para se inscrever na fundação. Se um módulo de pagamento on-line está ativado, uma forma de pagamento também será fornecida automaticamente. EnablePublicSubscriptionForm=Habilite o formulário de inscrição auto-público +ForceMemberType=Force the member type ExportDataset_member_1=Membros e Filicações ImportDataset_member_1=Membros LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions -String=Cadeia +String=Sequencia de caracteres Text=Texto largo Int=Numérico DateAndTime=data e hora -PublicMemberCard=Ficha pública membro +PublicMemberCard=Ficha pública do membro SubscriptionNotRecorded=Subscription not recorded AddSubscription=Create subscription ShowSubscription=Mostrar filiação @@ -116,11 +117,11 @@ DescADHERENT_MAIL_RESIL=E-mail de baixa DescADHERENT_MAIL_FROM=E-mail emissor para os e-mails automáticos DescADHERENT_ETIQUETTE_TYPE=Formato etiquetas DescADHERENT_ETIQUETTE_TEXT=Texto impresso na folhas de endereços dos membros -DescADHERENT_CARD_TYPE=Formato de cartões de página -DescADHERENT_CARD_HEADER_TEXT=Texto a imprimir na parte superior do cartão de membro -DescADHERENT_CARD_TEXT=Texto a imprimir ao cartão de membro -DescADHERENT_CARD_TEXT_RIGHT=Texto impresso em cartões de membro (alinhar à direita) -DescADHERENT_CARD_FOOTER_TEXT=Texto a imprimir na parte inferior do cartão de membro +DescADHERENT_CARD_TYPE=Formato da página de cartões +DescADHERENT_CARD_HEADER_TEXT=Texto a imprimir na parte superior dos cartões de membro +DescADHERENT_CARD_TEXT=Texto a imprimir na ficha de membro (alinhado à esquerda) +DescADHERENT_CARD_TEXT_RIGHT=Texto impresso nos cartões de membro (alinhado à direita) +DescADHERENT_CARD_FOOTER_TEXT=Texto a imprimir na parte inferior dos cartões de membro ShowTypeCard=Ver tipo '%s' HTPasswordExport=geração Ficheiro htpassword NoThirdPartyAssociatedToMember=nenhum Terceiro asociado a este membro @@ -130,14 +131,14 @@ MoreActionsOnSubscription=Ação complementar, sugerido por defeito durante a gr MoreActionBankDirect=Create a direct entry on bank account MoreActionBankViaInvoice=Create an invoice, and a payment on bank account MoreActionInvoiceOnly=Criar uma fatura sem pagamento -LinkToGeneratedPages=Gera cartões de visita +LinkToGeneratedPages=Gerar cartões de visita LinkToGeneratedPagesDesc=Esta tela permite gerar arquivos PDF com os cartões de negócio para todos os seus membros ou de um membro particular. -DocForAllMembersCards=Gerar cartões de visita para todos os membros (Formato de saída realmente configuração: %s) -DocForOneMemberCards=Gerar cartões de visita para um determinado membro (Formato de saída realmente configuração: %s) +DocForAllMembersCards=Gerar cartões de negócio para todos os membros +DocForOneMemberCards=Gerar cartões de visita para um determinado membro DocForLabels=Gerar folhas de endereço (Formato de saída realmente configuração: %s) SubscriptionPayment=Pagamento Assinatura -LastSubscriptionDate=Latest subscription date -LastSubscriptionAmount=Latest subscription amount +LastSubscriptionDate=Data da última subscrição +LastSubscriptionAmount=Montante da última subscrição MembersStatisticsByCountries=Membros estatísticas por país MembersStatisticsByState=Membros estatísticas por estado / província MembersStatisticsByTown=Membros estatísticas por cidade @@ -150,6 +151,7 @@ MembersByTownDesc=Esta tela mostrará estatísticas sobre membros por cidade. MembersStatisticsDesc=Escolha as estatísticas que você deseja ler ... MenuMembersStats=Estatística LastMemberDate=Latest member date +LatestSubscriptionDate=Data da última subscrição Nature=Natureza Public=As informações são públicas NewMemberbyWeb=Novo membro acrescentou. Aguardando aprovação diff --git a/htdocs/langs/pt_PT/modulebuilder.lang b/htdocs/langs/pt_PT/modulebuilder.lang new file mode 100644 index 00000000000..d13b09b2001 --- /dev/null +++ b/htdocs/langs/pt_PT/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Módulos gerados/editáveis ​​encontrados: %s (são detectados como editáveis ​​quando o ficheiro %s existe na diretoria raiz do módulo). +NewModule=Novo módulo +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Módulo inicializado +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Introduza aqui todas as informações gerais que descrevem o seu módulo +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Este separador é dedicado para definir entradas de menu fornecidas pelo seu módulo. +ModuleBuilderDescpermissions=Este separador é dedicado para definir as novas permissões que deseja fornecer com o seu módulo. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=Este separador é dedicado para hooks. +ModuleBuilderDescwidgets=Este separador é dedicado para gerir/criar widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Zona de perigo +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=Este módulo foi ativado. Qualquer alteração pode causar problemas numa característica ativa atual. +DescriptionLong=Descrição longa +EditorName=Nome do editor +EditorUrl=URL do editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/pt_PT/multicurrency.lang b/htdocs/langs/pt_PT/multicurrency.lang new file mode 100644 index 00000000000..61993d2ca36 --- /dev/null +++ b/htdocs/langs/pt_PT/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi moeda +ErrorAddRateFail=Erro na taxa adicionada +ErrorAddCurrencyFail=Erro na moeda adicionada +ErrorDeleteCurrencyFail=Erro na eliminação +multicurrency_syncronize_error=Erro de sincronização: %s +multicurrency_useOriginTx=Quando um objeto é criado a partir de outro, mantenha a taxa original do objeto de origem (caso contrário use a nova taxa conhecida) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=Você deve criar uma conta no site para usar esta funcionalidade
Obtenha sua chave da API
Se você usar uma conta gratuita, não pode alterar a fonte de moeda (USD por defeito)
Mas se a sua moeda principal não for o USD, você pode usar uma fonte de moeda alternativa para forçar sua moeda principal

Você está limitado a 1000 sincronizações por mês +multicurrency_appId=Chave da API +multicurrency_appCurrencySource=Fonte da moeda +multicurrency_alternateCurrencySource= Fonte da moeda alternativa +CurrenciesUsed=Moedas usadas +CurrenciesUsed_help_to_add=Adicione as diferentes moedas e taxas que você necessita de usar nos seus orçamentos, encomendas, etc. +rate=taxa +MulticurrencyReceived=Recebido, moeda original +MulticurrencyRemainderToTake=Montante restante, moeda original +MulticurrencyPaymentAmount=Montante do pagamento, moeda original diff --git a/htdocs/langs/pt_PT/oauth.lang b/htdocs/langs/pt_PT/oauth.lang index fa22fbe77c5..3b04dfbcfe5 100644 --- a/htdocs/langs/pt_PT/oauth.lang +++ b/htdocs/langs/pt_PT/oauth.lang @@ -1,24 +1,29 @@ # Dolibarr language file - Source file is en_US - oauth ConfigOAuth=Configuração de Oauth OAuthServices=Serviços OAuth -ManualTokenGeneration=Manual token generation -NoAccessToken=No access token saved into local database -HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider -TokenDeleted=Token deleted -RequestAccess=Click here to request/renew access and receive a new token to save -DeleteAccess=Click here to delete token -UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: -ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_REFRESH=Token Refresh Present -TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token +ManualTokenGeneration=Geração manual de token +TokenManager=Gestor de token +IsTokenGenerated=O token foi gerado? +NoAccessToken=Nenhum token de acesso guardado na base-de-dados local +HasAccessToken=Um token foi gerado e guardado na base-de-dados local +NewTokenStored=Token recebido e guardado +ToCheckDeleteTokenOnProvider=Clique aqui para verificar/eliminar a autorização guardada por %s fornecedor de OAuth +TokenDeleted=Token eliminado +RequestAccess=Clique aqui para solicitar/renovar o acesso e receber um novo token para guardar +DeleteAccess=Clique aqui para eliminar o token +UseTheFollowingUrlAsRedirectURI=Use o seguinte URL como o URI de Redirecionamento ao criar sua credencial no seu fornecedor OAuth: +ListOfSupportedOauthProviders=Digite aqui a credencial fornecida pelo seu fornecedor OAuth2. Somente os fornecedores OAuth2 suportados são visíveis aqui. Esta configuração pode ser usada por outros módulos que precisam de autenticação OAuth2. +OAuthSetupForLogin=Página para gerar um token OAuth +SeePreviousTab=Veja o separador anterior +OAuthIDSecret=ID OAuth e Segredo +TOKEN_REFRESH=Token Refresh presente +TOKEN_EXPIRED=O token expirou +TOKEN_EXPIRE_AT=O token expirará em +TOKEN_DELETE=Eliminar token guardado OAUTH_GOOGLE_NAME=Serviço Oauth Google -OAUTH_GOOGLE_ID=Id. Oauth Google +OAUTH_GOOGLE_ID=ID Oauth Google OAUTH_GOOGLE_SECRET=Segredo Oauth Google -OAUTH_GOOGLE_DESC=Go on this page then "Credentials" to create Oauth credentials +OAUTH_GOOGLE_DESC=Vá a esta página e depois "Credenciais" para criar credenciais Oauth OAUTH_GITHUB_NAME=Serviço Oauth GitHub OAUTH_GITHUB_ID=Id. Oauth GitHub OAUTH_GITHUB_SECRET=Segredo Oauth GitHub diff --git a/htdocs/langs/pt_PT/opensurvey.lang b/htdocs/langs/pt_PT/opensurvey.lang index 42f603e05df..3d9c67ff18b 100644 --- a/htdocs/langs/pt_PT/opensurvey.lang +++ b/htdocs/langs/pt_PT/opensurvey.lang @@ -1,47 +1,47 @@ # Dolibarr language file - Source file is en_US - opensurvey -Survey=Poll -Surveys=Polls -OrganizeYourMeetingEasily=Organize your meetings and polls easily. First select type of poll... -NewSurvey=New poll -OpenSurveyArea=Polls area -AddACommentForPoll=You can add a comment into poll... +Survey=Inquérito +Surveys=Inquéritos +OrganizeYourMeetingEasily=Organize suas reuniões e inquéritos facilmente. Primeiro selecione o tipo inquérito... +NewSurvey=Novo inquérito +OpenSurveyArea=Área de inquéritos +AddACommentForPoll=Pode adicionar um comentário ao inquérito... AddComment=Adicionar comentário CreatePoll=Criar votação PollTitle=Título da Votação -ToReceiveEMailForEachVote=Receive an email for each vote +ToReceiveEMailForEachVote=Receber um email por cada voto TypeDate=Tipo de data TypeClassic=Tipo padrão -OpenSurveyStep2=Select your dates amoung the free days (grey). The selected days are green. You can unselect a day previously selected by clicking again on it +OpenSurveyStep2=Selecione as suas datas entre os dias grátis (cinza). Os dias selecionados são verdes. Você pode desmarcar um dia selecionado anteriormente clicando novamente nele. RemoveAllDays=Remover todos os dias -CopyHoursOfFirstDay=Copy hours of first day -RemoveAllHours=Remove all hours +CopyHoursOfFirstDay=Copiar horas do primeiro dia +RemoveAllHours=Remover todas as horas SelectedDays=Dias selecionados TheBestChoice=A melhor opção é atualmente TheBestChoices=As melhores opções atualmente são with=com -OpenSurveyHowTo=If you agree to vote in this poll, you have to give your name, choose the values that fit best for you and validate with the plus button at the end of the line. +OpenSurveyHowTo=Se você concordar em participar neste inquérito, você deve dar o seu nome, escolher os valores que melhor se adequam a si e valide com o botão mais no final da linha. CommentsOfVoters=Comentários dos votantes ConfirmRemovalOfPoll=Tem certeza que deseja remover esta votação (e todos os votos) RemovePoll=Remover votação -UrlForSurvey=URL to communicate to get a direct access to poll -PollOnChoice=You are creating a poll to make a multi-choice for a poll. First enter all possible choices for your poll: -CreateSurveyDate=Create a date poll -CreateSurveyStandard=Create a standard poll +UrlForSurvey=URL para publicar o acesso direto ao inquérito +PollOnChoice=Para criar uma opção de escolha múltipla no seu inquérito, insira primeiro todas as opções possíveis para o seu inquérito: +CreateSurveyDate=Criar um inquérito de datas +CreateSurveyStandard=Criar um inquérito padrão CheckBox=Caixa de Verificação YesNoList=Lista (vazia/sim/não) PourContreList=Lista (vazio/a favor/contra) AddNewColumn=Adicionar nova coluna -TitleChoice=Choice label +TitleChoice=Etiqueta de escolha ExportSpreadsheet=Exportar resultados para uma folha de cálculo ExpireDate=Data Limite -NbOfSurveys=Number of polls +NbOfSurveys=Número de inquéritos NbOfVoters=N.º de Eleitores SurveyResults=Resultados -PollAdminDesc=You are allowed to change all vote lines of this poll with button "Edit". You can, as well, remove a column or a line with %s. You can also add a new column with %s. +PollAdminDesc=Você tem permissão para alterar todas as linhas de votação deste inquérito com o botão "Editar". Você pode também remover uma coluna ou uma linha com %s. E pode adicionar uma nova coluna com %s. 5MoreChoices=Mais 5 opções Against=Contra YouAreInivitedToVote=Foi convidado a votar nesta votação -VoteNameAlreadyExists=This name was already used for this poll +VoteNameAlreadyExists=Este nome já foi utilizado neste inquérito AddADate=Adicionar uma data AddStartHour=Adicionar hora de início AddEndHour=Adicionar hora de fim @@ -49,11 +49,11 @@ votes=Voto(s) NoCommentYet=Ainda não foi escrito qualquer comentário para esta votação CanComment=Os eleitores podem comentar na votação CanSeeOthersVote=Os eleitores podem ver voto de outras pessoas -SelectDayDesc=For each selected day, you can choose, or not, meeting hours in the following format :
- empty,
- "8h", "8H" or "8:00" to give a meeting's start hour,
- "8-11", "8h-11h", "8H-11H" or "8:00-11:00" to give a meeting's start and end hour,
- "8h15-11h15", "8H15-11H15" or "8:15-11:15" for the same thing but with minutes. +SelectDayDesc=Para cada dia selecionado, você pode escolher, ou não, as horas de reunião no seguinte formato:
- vazio,
- "8h", "8H" ou "8:00" para dar uma hora de início da reunião,
- "8-11", "8h-11h", "8H-11H" ou "8: 00-11: 00" para dar uma hora de início e fim de uma reunião,
- "8h15-11h15", " 8H15-11H15 "ou" 8: 15-11: 15 "para a mesma coisa, mas com minutos. BackToCurrentMonth=Voltar para o mês atual -ErrorOpenSurveyFillFirstSection=You haven't filled the first section of the poll creation +ErrorOpenSurveyFillFirstSection=Você não preencheu a primeira secção da criação do inquérito ErrorOpenSurveyOneChoice=Introduza pelo menos uma opção -ErrorInsertingComment=There was an error while inserting your comment -MoreChoices=Enter more choices for the voters -SurveyExpiredInfo=The poll has been closed or voting delay has expired. -EmailSomeoneVoted=%s has filled a line.\nYou can find your poll at the link: \n%s +ErrorInsertingComment=Ocorreu um erro ao inserir o seu comentário +MoreChoices=Insira mais escolhas para os inquiridos +SurveyExpiredInfo=O inquérito foi encerrado ou o prazo de votação expirou. +EmailSomeoneVoted=%s preencheu uma linha.\nVocê pode encontrar o seu inquérito através da hiperligação:\n%s diff --git a/htdocs/langs/pt_PT/orders.lang b/htdocs/langs/pt_PT/orders.lang index 81e1b8bd889..c255f5f6df2 100644 --- a/htdocs/langs/pt_PT/orders.lang +++ b/htdocs/langs/pt_PT/orders.lang @@ -1,29 +1,29 @@ # Dolibarr language file - Source file is en_US - orders -OrdersArea=Area de Pedidos de clientes -SuppliersOrdersArea=Área de Pedidos a Fornecedores -OrderCard=Ficha Pedido -OrderId=Id da Encomenda -Order=Pedido -Orders=Pedidos -OrderLine=Ordem linha -OrderDate=Data Pedido -OrderDateShort=Data Pedido -OrderToProcess=Para iniciar o processo -NewOrder=Novo Pedido -ToOrder=Realizar Pedido -MakeOrder=Realizar Pedido -SupplierOrder=Pedido a Fornecedor -SuppliersOrders=Pedidos a Fornecedores -SuppliersOrdersRunning=Pedidos a Fornecedores em Curso -CustomerOrder=Pedido do Cliente -CustomersOrders=Customer orders -CustomersOrdersRunning=Current customer orders -CustomersOrdersAndOrdersLines=Customer orders and order lines -OrdersDeliveredToBill=Customer orders delivered to bill -OrdersToBill=Customer orders delivered -OrdersInProcess=Customer orders in process -OrdersToProcess=Customer orders to process -SuppliersOrdersToProcess=Supplier orders to process +OrdersArea=Área de encomendas de clientes +SuppliersOrdersArea=Área de encomendas a fornecedores +OrderCard=Ficha da encomenda +OrderId=Id da encomenda +Order=Encomenda +Orders=Encomendas +OrderLine=Linha da encomenda +OrderDate=Data da encomenda +OrderDateShort=Data de encomenda +OrderToProcess=Encomenda a processar +NewOrder=Nova encomenda +ToOrder=Efetuar encomenda +MakeOrder=Efetuar encomenda +SupplierOrder=Encomenda a fornecedor +SuppliersOrders=Encomendas a fornecedores +SuppliersOrdersRunning=Encomendas a fornecedores atuais +CustomerOrder=Encomenda de cliente +CustomersOrders=Encomendas de clientes +CustomersOrdersRunning=Encomendas de clientes atuais +CustomersOrdersAndOrdersLines=Encomendas de clientes e linhas de encomenda +OrdersDeliveredToBill=Encomendas de clientes entregues por faturar +OrdersToBill=Encomendas de clientes entregues +OrdersInProcess=Encomendas de clientes em processo +OrdersToProcess=Encomendas de clientes por processar +SuppliersOrdersToProcess=Encomendas a fornecedores por processar StatusOrderCanceledShort=Anulado StatusOrderDraftShort=Rascunho StatusOrderValidatedShort=Validado @@ -39,98 +39,98 @@ StatusOrderRefusedShort=Reprovado StatusOrderBilledShort=Faturado StatusOrderToProcessShort=A Processar StatusOrderReceivedPartiallyShort=Recebido Parcialmente -StatusOrderReceivedAllShort=Products received +StatusOrderReceivedAllShort=Produtos recebidos StatusOrderCanceled=Anulado StatusOrderDraft=Rascunho (a Confirmar) StatusOrderValidated=Validado -StatusOrderOnProcess=Ordered - Standby reception -StatusOrderOnProcessWithValidation=Ordered - Standby reception or validation +StatusOrderOnProcess=Encomendado - Aguarda a receção +StatusOrderOnProcessWithValidation=Encomendada - Aguarde a receção e validação StatusOrderProcessed=Processado StatusOrderToBill=A Facturar StatusOrderApproved=Aprovado StatusOrderRefused=Reprovado StatusOrderBilled=Faturado StatusOrderReceivedPartially=Recebido Parcialmente -StatusOrderReceivedAll=All products received +StatusOrderReceivedAll=Todos os produtos foram recebidos ShippingExist=Um existe um envio -QtyOrdered=Quant. Pedida -ProductQtyInDraft=Product quantity into draft orders -ProductQtyInDraftOrWaitingApproved=Product quantity into draft or approved orders, not yet ordered -MenuOrdersToBill=Pedidos por Facturar -MenuOrdersToBill2=Billable orders +QtyOrdered=Quant. encomendada +ProductQtyInDraft=Quantidade de produto em rascunhos de encomendas +ProductQtyInDraftOrWaitingApproved=Quantidade de produto em rascunhos de encomendas ou encomendas aprovadas, ainda por encomendar +MenuOrdersToBill=Encomendas entregues +MenuOrdersToBill2=Encomendas por faturar ShipProduct=Enviar Produto -CreateOrder=Criar Pedido -RefuseOrder=Rejeitar o Pedido -ApproveOrder=Approve order -Approve2Order=Approve order (second level) -ValidateOrder=Confirmar o Pedido -UnvalidateOrder=Pedido inválido -DeleteOrder=Eliminar o pedido -CancelOrder=Anular o Pedido -OrderReopened= Order %s Reopened -AddOrder=Create order -AddToDraftOrders=Add to draft order -ShowOrder=Mostrar Pedido -OrdersOpened=Encomendas para processar -NoDraftOrders=No draft orders -NoOrder=No order -NoSupplierOrder=No supplier order -LastOrders=Latest %s customer orders -LastCustomerOrders=Latest %s customer orders -LastSupplierOrders=Latest %s supplier orders -LastModifiedOrders=Latest %s modified orders -AllOrders=Todos os Pedidos -NbOfOrders=Número de Pedidos -OrdersStatistics=Estatísticas de pedidos -OrdersStatisticsSuppliers=Estatísticas de Pedidos a Fornecedores -NumberOfOrdersByMonth=Número de Pedidos por Mês -AmountOfOrdersByMonthHT=Amount of orders by month (net of tax) -ListOfOrders=Lista de Pedidos -CloseOrder=Fechar Pedido -ConfirmCloseOrder=Are you sure you want to set this order to deliverd? Once an order is delivered, it can be set to billed. -ConfirmDeleteOrder=Are you sure you want to delete this order? -ConfirmValidateOrder=Are you sure you want to validate this order under name %s? -ConfirmUnvalidateOrder=Are you sure you want to restore order %s to draft status? -ConfirmCancelOrder=Are you sure you want to cancel this order? -ConfirmMakeOrder=Are you sure you want to confirm you made this order on %s? +CreateOrder=Criar encomenda +RefuseOrder=Rejeitar encomenda +ApproveOrder=Aprovar encomenda +Approve2Order=Aprove a encomenda (segundo nível) +ValidateOrder=Validar encomenda +UnvalidateOrder=Invalidar encomenda +DeleteOrder=Eliminar encomenda +CancelOrder=Cancelar encomenda +OrderReopened= A encomenda %s foi reaberta +AddOrder=Criar encomenda +AddToDraftOrders=Adicionar à encomenda rascunho +ShowOrder=Mostrar encomenda +OrdersOpened=Encomendas por processar +NoDraftOrders=Sem encomendas rascunho +NoOrder=Sem encomenda +NoSupplierOrder=Se encomenda a fornecedor +LastOrders=%s últimas encomendas de clientes +LastCustomerOrders=%s últimas encomendas de clientes +LastSupplierOrders=%s últimas encomendas a fornecedores +LastModifiedOrders=%s últimas encomendas de clientes modificadas +AllOrders=Todos as encomendas +NbOfOrders=Número de encomendas +OrdersStatistics=Estatísticas de encomendas +OrdersStatisticsSuppliers=Estatísticas de encomendas a fornecedores +NumberOfOrdersByMonth=Número de encomendas por mês +AmountOfOrdersByMonthHT=Quantia originada de encomendas, por mês (líquido) +ListOfOrders=Lista de encomendas +CloseOrder=Fechar encomenda +ConfirmCloseOrder=Tem a certeza que quer sinalizar esta encomenda como entregue? Assim que uma encomenda foi entregue pode ser sinalizada com faturada. +ConfirmDeleteOrder=Tem a certeza que deseja eliminar esta encomenda? +ConfirmValidateOrder=Tem a certeza que pretende validar esta encomenda sob o nome %s? +ConfirmUnvalidateOrder=Tem a certeza que quer restaurar a encomenda %s para estado de rascunho? +ConfirmCancelOrder=Tem a certeza que deseja cancelar esta encomenda? +ConfirmMakeOrder=Tem a certeza que deseja confirmar que efetuou esta encomenda a %s? GenerateBill=Facturar ClassifyShipped=Classificar como entregue -DraftOrders=Rascunhos de Pedidos -DraftSuppliersOrders=Draft suppliers orders -OnProcessOrders=Pedidos em Processo -RefOrder=Ref. Pedido -RefCustomerOrder=Ref. order for customer -RefOrderSupplier=Ref. order for supplier -RefOrderSupplierShort=Ref. order supplier -SendOrderByMail=Enviar pedido por e-mail -ActionsOnOrder=Acções sobre o pedido -NoArticleOfTypeProduct=Não existe artigos de tipo 'produto' e por tanto expedidos em este pedido -OrderMode=Método de pedido +DraftOrders=Rascunhos de encomendas +DraftSuppliersOrders=Rascunhos de encomendas a fornecedores +OnProcessOrders=Encomendas em processo +RefOrder=Ref. da encomenda +RefCustomerOrder=Ref. da encomenda para o cliente +RefOrderSupplier=Ref. de encomenda a fornecedor +RefOrderSupplierShort=Ref. encomenda a fornecedor +SendOrderByMail=Enviar encomenda por email +ActionsOnOrder=Acções sobre a encomenda +NoArticleOfTypeProduct=Não existe artigos de tipo 'produto' e portanto não há artigos expedidos para esta encomenda +OrderMode=Método de encomenda AuthorRequest=Autor/Solicitante UserWithApproveOrderGrant=Utilizadores autorizados a aprovar os pedidos. -PaymentOrderRef=Pagamento de Pedido %s -CloneOrder=Copiar pedido -ConfirmCloneOrder=Are you sure you want to clone this order %s? -DispatchSupplierOrder=Para receber %s fornecedor -FirstApprovalAlreadyDone=First approval already done -SecondApprovalAlreadyDone=Second approval already done -SupplierOrderReceivedInDolibarr=Supplier order %s received %s -SupplierOrderSubmitedInDolibarr=Supplier order %s submited -SupplierOrderClassifiedBilled=Supplier order %s set billed +PaymentOrderRef=Pagamento da encomenda %s +CloneOrder=Clonar encomenda +ConfirmCloneOrder=Tem a certeza que pretende clonar a encomenda %s? +DispatchSupplierOrder=A receber a encomenda a fornecedor, %s +FirstApprovalAlreadyDone=A primeira aprovação já foi efetuada +SecondApprovalAlreadyDone=A segunda aprovação já foi efetuada +SupplierOrderReceivedInDolibarr=A encomenda a fornecedor, %s, foi recebida %s +SupplierOrderSubmitedInDolibarr=A encomenda a fornecedor, %s, foi submetida +SupplierOrderClassifiedBilled=A encomenda a fornecedor, %s, foi faturada ##### Types de contacts ##### -TypeContact_commande_internal_SALESREPFOLL=Representante ordem do cliente seguimento +TypeContact_commande_internal_SALESREPFOLL=Representante que está a dar seguimento à encomenda do cliente TypeContact_commande_internal_SHIPPING=Representante transporte seguimento TypeContact_commande_external_BILLING=Contacto na factura do Cliente TypeContact_commande_external_SHIPPING=Contato com o transporte do cliente -TypeContact_commande_external_CUSTOMER=Atendimento ao cliente seguinte ordem-up -TypeContact_order_supplier_internal_SALESREPFOLL=Representante para fornecedor seguimento +TypeContact_commande_external_CUSTOMER=Contacto do cliente que está a dar seguimento à encomenda +TypeContact_order_supplier_internal_SALESREPFOLL=Representante que está a dar seguimento à encomenda ao fornecedor TypeContact_order_supplier_internal_SHIPPING=Representante transporte seguimento TypeContact_order_supplier_external_BILLING=Fornecedor Contactar com factura TypeContact_order_supplier_external_SHIPPING=Fornecedor Contactar com transporte -TypeContact_order_supplier_external_CUSTOMER=Fornecedor Contactar com a seguinte ordem-up +TypeContact_order_supplier_external_CUSTOMER=Contacto do fornecedor que está a dar seguimento à encomenda Error_COMMANDE_SUPPLIER_ADDON_NotDefined=Constante COMMANDE_SUPPLIER_ADDON não definida Error_COMMANDE_ADDON_NotDefined=Constante COMMANDE_ADDON não definida -Error_OrderNotChecked=No orders to invoice selected +Error_OrderNotChecked=Nenhuma encomenda para faturar selecionada # Order modes (how we receive order). Not the "why" are keys stored into dict.lang OrderByMail=Correio OrderByFax=Fax @@ -138,17 +138,17 @@ OrderByEMail=EMail OrderByWWW=On-line OrderByPhone=Telefone # Documents models -PDFEinsteinDescription=Modelo de orçamento completo (logo...) -PDFEdisonDescription=Um modelo simples ordem -PDFProformaDescription=A complete proforma invoice (logo…) -CreateInvoiceForThisCustomer=Bill orders -NoOrdersToInvoice=Sem encomendas para faturar -CloseProcessedOrdersAutomatically=Classificar todas as encomendas seleccionadas como "Processadas" -OrderCreation=Order creation +PDFEinsteinDescription=Modelo de encomenda completo (logo...) +PDFEdisonDescription=Um modelo simples de encomenda +PDFProformaDescription=Uma fatura proforma completa (logo…) +CreateInvoiceForThisCustomer=Faturar encomendas +NoOrdersToInvoice=Sem encomendas por faturar +CloseProcessedOrdersAutomatically=Classificar todas as encomendas selecionadas como "Processadas". +OrderCreation=Criação de encomenda Ordered=Encomendado OrderCreated=As suas encomendas foram criadas OrderFail=Ocorreu um erro durante a criação das suas encomendas CreateOrders=Criar encomendas -ToBillSeveralOrderSelectCustomer=To create an invoice for several orders, click first onto customer, then choose "%s". -CloseReceivedSupplierOrdersAutomatically=Close order to "%s" automatically if all products are received. -SetShippingMode=Set shipping mode +ToBillSeveralOrderSelectCustomer=Para criar uma fatura para várias encomendas, clique primeiro num cliente e depois selecione "%s". +CloseReceivedSupplierOrdersAutomatically=Fechar encomenda para "%s" automaticamente, se todos os produtos tiverem sido recebidos. +SetShippingMode=Defina o método de expedição diff --git a/htdocs/langs/pt_PT/other.lang b/htdocs/langs/pt_PT/other.lang index 75f0feb81e6..d853565d140 100644 --- a/htdocs/langs/pt_PT/other.lang +++ b/htdocs/langs/pt_PT/other.lang @@ -3,9 +3,9 @@ SecurityCode=Código segurança NumberingShort=N° Tools=Utilidades TMenuTools=Ferramentas -ToolsDesc=All miscellaneous tools not included in other menu entries are collected here.

All the tools can be reached in the left menu. +ToolsDesc=Todas as ferramentas diversas não incluídas noutras entradas de menu são apresentadas aqui.

Todas as ferramentas podem ser alcançadas no menu à esquerda. Birthday=Aniversario -BirthdayDate=Birthday date +BirthdayDate=Data de nascimento DateToBirth=Data de Nascimento BirthdayAlertOn=Alerta de aniversário activo BirthdayAlertOff=Alerta aniversário inativo @@ -22,13 +22,13 @@ YearOfInvoice=Year of invoice date PreviousYearOfInvoice=Previous year of invoice date NextYearOfInvoice=Following year of invoice date -Notify_FICHINTER_ADD_CONTACT=Added contact to Intervention +Notify_FICHINTER_ADD_CONTACT=Adicionado contato à intervenção Notify_FICHINTER_VALIDATE=Validação Ficha Intervenção Notify_FICHINTER_SENTBYMAIL=Intervenções enviadas por correio Notify_ORDER_VALIDATE=Pedido do cliente validado Notify_ORDER_SENTBYMAIL=Pedido do cliente enviado pelo correio Notify_ORDER_SUPPLIER_SENTBYMAIL=Para fornecedor enviada por correio -Notify_ORDER_SUPPLIER_VALIDATE=Supplier order recorded +Notify_ORDER_SUPPLIER_VALIDATE=Encomenda a fornecedor registada Notify_ORDER_SUPPLIER_APPROVE=Fornecedor fim aprovado Notify_ORDER_SUPPLIER_REFUSE=Fornecedor fim recusado Notify_PROPAL_VALIDATE=Proposta do cliente validada @@ -56,19 +56,19 @@ Notify_SHIPPING_SENTBYMAIL=Envio por correio Notify_MEMBER_VALIDATE=Membro validado Notify_MEMBER_MODIFY=Membro modificado Notify_MEMBER_SUBSCRIPTION=Membro subscrito -Notify_MEMBER_RESILIATE=Member terminated +Notify_MEMBER_RESILIATE=Membro anulado Notify_MEMBER_DELETE=Membro excluído Notify_PROJECT_CREATE=Criação do projeto -Notify_TASK_CREATE=Task created -Notify_TASK_MODIFY=Task modified -Notify_TASK_DELETE=Task deleted +Notify_TASK_CREATE=Tarefa criada +Notify_TASK_MODIFY=Tarefa modificada +Notify_TASK_DELETE=Tarefa eliminada SeeModuleSetup=See setup of module %s NbOfAttachedFiles=Número Ficheiros/Documentos anexos TotalSizeOfAttachedFiles=Tamanho Total dos Ficheiros/Documentos anexos MaxSize=Tamanho Máximo AttachANewFile=Adicionar Novo Ficheiro/documento LinkedObject=Objecto adjudicado -NbOfActiveNotifications=Number of notifications (nb of recipient emails) +NbOfActiveNotifications=Número de notificações PredefinedMailTest=Este é um email de teste. \\ NO duas linhas são separadas por um enter. PredefinedMailTestHtml=Este é um email de teste (o teste de palavra deve ser em negrito).
As duas linhas são separadas por um enter. PredefinedMailContentSendInvoice=__CONTACTCIVNAME__\n\nYou will find here the invoice __REF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ @@ -82,15 +82,15 @@ PredefinedMailContentSendShipping=__CONTACTCIVNAME__\n\nYou will find here the s PredefinedMailContentSendFichInter=__CONTACTCIVNAME__\n\nYou will find here the intervention __FICHINTERREF__\n\n__PERSONALIZED__Sincerely\n\n__SIGNATURE__ PredefinedMailContentThirdparty=__CONTACTCIVNAME__\n\n__PERSONALIZED__\n\n__SIGNATURE__ PredefinedMailContentUser=aa__PERSONALIZED__\n\n__SIGNATURE__ -DemoDesc=Dolibarr is a compact ERP/CRM supporting several business modules. A demo showcasing all modules makes no sense as this scenario never occurs (several hundred available). So, several demo profiles are available. -ChooseYourDemoProfil=Choose the demo profile that best suits your needs... +DemoDesc=O Dolibarr é um ERP/CRM compacto que suporta vários módulos de negócios. Uma demonstração mostrando todos os módulos não faz sentido porque esse cenário nunca ocorre (várias centenas disponíveis). Assim, vários perfis de demonstração estão disponíveis. +ChooseYourDemoProfil=Escolha o perfil de demonstração que melhor se adequa às suas necessidades ... ChooseYourDemoProfilMore=...or build your own profile
(manual module selection) DemoFundation=Gestão de Membros de uma associação DemoFundation2=Gestão de Membros e tesouraria de uma associação -DemoCompanyServiceOnly=Company or freelance selling service only +DemoCompanyServiceOnly=Empresa ou serviço de freelancer apenas DemoCompanyShopWithCashDesk=Gestão de uma loja com Caixa -DemoCompanyProductAndStocks=Company selling products with a shop -DemoCompanyAll=Company with multiple activities (all main modules) +DemoCompanyProductAndStocks=Empresa que vende produtos com uma loja +DemoCompanyAll=Empresa com múltiplas atividades (todos os módulos principais) CreatedBy=Criado por %s ModifiedBy=Modificado por %s ValidatedBy=Validado por %s @@ -107,8 +107,8 @@ CanceledByLogin=User login who canceled ClosedByLogin=User login who closed FileWasRemoved=o Ficheiro foi eliminado DirWasRemoved=A pasta foi eliminada -FeatureNotYetAvailable=Feature not yet available in the current version -FeaturesSupported=Supported features +FeatureNotYetAvailable=O funcionalidade ainda não se encontra disponível na versão atual +FeaturesSupported=Funcionalidades suportadas Width=Largura Height=Altura Depth=Fundo @@ -119,11 +119,12 @@ Right=Direito CalculatedWeight=Peso calculado CalculatedVolume=Volume calculado Weight=Peso -WeightUnitton=tonne +WeightUnitton=Toneladas WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=libra +WeightUnitounce=onça Length=Comprimento LengthUnitm=m LengthUnitdm=dm @@ -140,7 +141,7 @@ Volume=Volume VolumeUnitm3=m³ VolumeUnitdm3=dm³ (L) VolumeUnitcm3=cm³ (ml) -VolumeUnitmm3=mm³ (µl) +VolumeUnitmm3=mm³ (μl) VolumeUnitfoot3=ft³ VolumeUnitinch3=in³ VolumeUnitounce=onça @@ -156,25 +157,25 @@ SizeUnitpoint=ponto BugTracker=Incidencias SendNewPasswordDesc=This form allows you to request a new password. It will be sent to your email address.
Change will become effective once you click on the confirmation link in the email.
Check your inbox. BackToLoginPage=Voltar à página de iniciar a sessão -AuthenticationDoesNotAllowSendNewPassword=Authentication mode is %s.
In this mode, Dolibarr can't know nor change your password.
Contact your system administrator if you want to change your password. -EnableGDLibraryDesc=Install or enable GD library on your PHP installation to use this option. +AuthenticationDoesNotAllowSendNewPassword=O modo de autenticação é %s.
Neste modo, o Dolibarr não sabe nem consegue alterar a sua senha.
Entre em contato com o administrador do sistema se quiser alterar a sua senha. +EnableGDLibraryDesc=Instale ou ative a biblioteca GD na instalação do PHP para usar esta opção. ProfIdShortDesc=Prof Id %s é uma informação dePendente do país do Terceiro.
Por Exemplo, para o país %s, é o código %s. DolibarrDemo=Demo de Dolibarr ERP/CRM -StatsByNumberOfUnits=Statistics for sum of qty of products/services -StatsByNumberOfEntities=Statistics in number of referring entities (nb of invoice, or order...) -NumberOfProposals=Number of proposals -NumberOfCustomerOrders=Number of customer orders -NumberOfCustomerInvoices=Number of customer invoices -NumberOfSupplierProposals=Number of supplier proposals -NumberOfSupplierOrders=Number of supplier orders -NumberOfSupplierInvoices=Number of supplier invoices -NumberOfUnitsProposals=Number of units on proposals -NumberOfUnitsCustomerOrders=Number of units on customer orders -NumberOfUnitsCustomerInvoices=Number of units on customer invoices -NumberOfUnitsSupplierProposals=Number of units on supplier proposals -NumberOfUnitsSupplierOrders=Number of units on supplier orders -NumberOfUnitsSupplierInvoices=Number of units on supplier invoices -EMailTextInterventionAddedContact=A newintervention %s has been assigned to you. +StatsByNumberOfUnits=Estatísticas para o somatório da quantidade de produtos/serviços +StatsByNumberOfEntities=Estatísticas em número de entidades referentes (número de fatura, ou ordem...) +NumberOfProposals=Número de orçamentos +NumberOfCustomerOrders=Número de encomendas de clientes +NumberOfCustomerInvoices=Número de faturas de clientes +NumberOfSupplierProposals=Número de orçamentos de fornecedores +NumberOfSupplierOrders=Número de encomendas a fornecedores +NumberOfSupplierInvoices=Número de faturas de fornecedores +NumberOfUnitsProposals=Número de unidades em orçamentos +NumberOfUnitsCustomerOrders=Número de unidades em encomendas de clientes +NumberOfUnitsCustomerInvoices=Número de unidades em faturas de clientes +NumberOfUnitsSupplierProposals=Número de unidades em orçamentos de fornecedores +NumberOfUnitsSupplierOrders=Número de unidades em encomendas a fornecedores +NumberOfUnitsSupplierInvoices=Número de unidades nas faturas de fornecedores +EMailTextInterventionAddedContact=Foi atribuída uma nova intervenção, %s, a si. EMailTextInterventionValidated=Intervenção %s validados EMailTextInvoiceValidated=Factura %s validados EMailTextProposalValidated=O %s proposta foi validada. @@ -205,7 +206,7 @@ StartUpload=Iniciar upload CancelUpload=Cancelar upload FileIsTooBig=Arquivos muito grandes PleaseBePatient=Por favor, aguarde... -RequestToResetPasswordReceived=A request to change your Dolibarr password has been received +RequestToResetPasswordReceived=Foi recebida uma solicitação para a alteração da sua senha Dolibarr NewKeyIs=Estas são as suas novas credenciais para efectuar login NewKeyWillBe=Your new key to login to software will be ClickHereToGoTo=Clique aqui para ir para %s @@ -213,18 +214,18 @@ YouMustClickToChange=You must however first click on the following link to valid ForgetIfNothing=If you didn't request this change, just forget this email. Your credentials are kept safe. IfAmountHigherThan=If amount higher than %s SourcesRepository=Repositório para fontes -Chart=Chart +Chart=Gráfico ##### Export ##### ExportsArea=Área de Exportações AvailableFormats=Formatos disponiveis LibraryUsed=Livraria Utilizada -LibraryVersion=Library version +LibraryVersion=Versão da biblioteca ExportableDatas=Dados exportaveis NoExportableData=Não existem dados exportaveis (sem módulos com dados exportaveis , o necessitam de permissões) ##### External sites ##### -WebsiteSetup=Setup of module website -WEBSITE_PAGEURL=URL of page +WebsiteSetup=Configuração do módulo Website +WEBSITE_PAGEURL=URL da página WEBSITE_TITLE=Título WEBSITE_DESCRIPTION=Descrição -WEBSITE_KEYWORDS=Keywords +WEBSITE_KEYWORDS=Palavras-chave diff --git a/htdocs/langs/pt_PT/paybox.lang b/htdocs/langs/pt_PT/paybox.lang index 041eccfd71c..7cd76e3a349 100644 --- a/htdocs/langs/pt_PT/paybox.lang +++ b/htdocs/langs/pt_PT/paybox.lang @@ -11,7 +11,8 @@ YourEMail=E-Mail de confirmação de pagamento Creditor=Beneficiario PaymentCode=Código de pagamento PayBoxDoPayment=Continuar pagamento com cartão -YouWillBeRedirectedOnPayBox=Você será redirecionado para a página Paybox não se esqueça de indicar o seu cartão de crédito +ToPay=Emitir pagamento +YouWillBeRedirectedOnPayBox=Você será redirecionado para a página Paybox não se esqueça de introduzir a informação do seu cartão de crédito Continue=Continuar ToOfferALinkForOnlinePayment=URL para o pagamento %s ToOfferALinkForOnlinePaymentOnOrder=URL que fornece pagamento on-line interface% s com base no valor de um pedido de venda @@ -32,8 +33,8 @@ CSSUrlForPaymentForm=CSS url folha de estilo para forma de pagamento MessageOK=Mensagem na página validado o pagamento de retorno MessageKO=Mensagem na página de pagamento cancelado retorno NewPayboxPaymentReceived=Novo pagamento Paybox recebido -NewPayboxPaymentFailed=New Paybox payment tried but failed +NewPayboxPaymentFailed=Nova tentativa de pagamento Paybox falhou PAYBOX_PAYONLINE_SENDEMAIL=E-mail de notificação após um pagamento (sucesso ou falha) -PAYBOX_PBX_SITE=Value for PBX SITE -PAYBOX_PBX_RANG=Value for PBX Rang -PAYBOX_PBX_IDENTIFIANT=Value for PBX ID +PAYBOX_PBX_SITE=Valor para PBX SITE +PAYBOX_PBX_RANG=Valor para PBX Rang +PAYBOX_PBX_IDENTIFIANT=Valor para ID de PBX diff --git a/htdocs/langs/pt_PT/paypal.lang b/htdocs/langs/pt_PT/paypal.lang index 2c6e5b4d750..37022a5594f 100644 --- a/htdocs/langs/pt_PT/paypal.lang +++ b/htdocs/langs/pt_PT/paypal.lang @@ -1,30 +1,32 @@ # Dolibarr language file - Source file is en_US - paypal PaypalSetup=Configuração do módulo do PayPal PaypalDesc=Esta oferta módulo de páginas para permitir o pagamento em PayPal pelos clientes. Isto pode ser utilizado para um pagamento livre ou para um pagamento por um objecto Dolibarr particular (factura, ordem, ...) -PaypalOrCBDoPayment=Pague com cartão de crédito ou Paypal +PaypalOrCBDoPayment=Pagar com cartão de crédito ou Paypal PaypalDoPayment=Pague com Paypal PAYPAL_API_SANDBOX=Modo de teste / sandbox PAYPAL_API_USER=Nome de utilizador API PAYPAL_API_PASSWORD=Senha API PAYPAL_API_SIGNATURE=Assinatura API -PAYPAL_SSLVERSION=Curl SSL Version +PAYPAL_SSLVERSION=Versão do Curl SSL PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Oferta de pagamento "integral" (Cartão de Crédito + Paypal) ou apenas "Paypal" PaypalModeIntegral=Integral PaypalModeOnlyPaypal=Apenas Paypal -PAYPAL_CSS_URL=Optionnal URL of CSS style sheet on payment page +PAYPAL_CSS_URL=URL opcional da folha de estilo CSS na página de pagamento ThisIsTransactionId=Esta é id. da transação: %s PAYPAL_ADD_PAYMENT_URL=Adicionar o url de pagamento Paypal quando enviar um documento por correio eletrónico PredefinedMailContentLink=Pode clicar na hiperligação segura abaixo para efetuar o seu pagamento (Paypal), se este ainda não tiver sido efetuado.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Atualmente, está no modo de "sandbox" -NewPaypalPaymentReceived=Novo pagamento Paypal recebido -NewPaypalPaymentFailed=No pagamento Paypal tentado, mas falhou +NewOnlinePaymentReceived=Novo pagamento online recebido +NewOnlinePaymentFailed=Novo pagamento em linha tentado, mas falhado PAYPAL_PAYONLINE_SENDEMAIL=Correio eletrónico para avisar depois de um pagamento (bem sucedido ou não) ReturnURLAfterPayment=URL de retorno depois do pagamento -ValidationOfPaypalPaymentFailed=Validação do pagamento Paypal falhou -PaypalConfirmPaymentPageWasCalledButFailed=A página de confirmação do pagamento para o Paypal foi evocada pela Paypal, mas a confirmação falhou -SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. -DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. +ValidationOfOnlinePaymentFailed=Falha na validação do pagamento online +PaymentSystemConfirmPaymentPageWasCalledButFailed=A página de confirmação de pagamento foi chamada pelo sistema de pagamento mas retornou um erro +SetExpressCheckoutAPICallFailed=Chamada à API SetExpressCheckout falhou. +DoExpressCheckoutPaymentAPICallFailed=Chamada à API DoExpressCheckoutPayment falhou. DetailedErrorMessage=Mensagem de Erro Detalhada ShortErrorMessage=Mensagem de Erro Abreviada ErrorCode=Código de Erro ErrorSeverityCode=Código de Severidade do Erro +OnlinePaymentSystem=Sistema de pagamento online +PaypalLiveEnabled=Paypal ativado (caso contrário, este encontra-se em modo teste) diff --git a/htdocs/langs/pt_PT/printing.lang b/htdocs/langs/pt_PT/printing.lang index 1b7ebe6e61f..f40c89783df 100644 --- a/htdocs/langs/pt_PT/printing.lang +++ b/htdocs/langs/pt_PT/printing.lang @@ -2,31 +2,31 @@ Module64000Name=Impressão Direta Module64000Desc=Ativar Sistema de impressão Direta PrintingSetup=Configurar o Sistema de Impressão Direta -PrintingDesc=This module adds a Print button to send documents directly to a printer (without opening document into an application) with various module. -MenuDirectPrinting=Direct Printing jobs -DirectPrint=Direct print +PrintingDesc=Este módulo adiciona um botão Imprimir para enviar documentos diretamente para uma impressora (sem abrir documento numa aplicação à parte) com vários módulos. +MenuDirectPrinting=Trabalhos de impressão direta +DirectPrint=Impressão direta PrintingDriverDesc=Variáveis da configuração para o controlador de impressão. ListDrivers=Lista de Controladores PrintTestDesc=Lista de Impressoras. FileWasSentToPrinter=O ficheiro %s foi enviado para a inpressora NoActivePrintingModuleFound=Nenhum módulo ativo para imprimir o documento PleaseSelectaDriverfromList=Por favor, selecione um controlador da lista. -PleaseConfigureDriverfromList=Please configure the selected driver from list. -SetupDriver=Driver setup +PleaseConfigureDriverfromList=Configure o driver selecionado na lista. +SetupDriver=Configuração da driver TargetedPrinter=Impressora alvo -UserConf=Setup per user -PRINTGCP_INFO=Google OAuth API setup -PRINTGCP_AUTHLINK=Authentication -PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token +UserConf=Configuração por utilizador +PRINTGCP_INFO=Configuração da API do Google OAuth +PRINTGCP_AUTHLINK=Autenticação +PRINTGCP_TOKEN_ACCESS=Token OAuth do Google Cloud Print PrintGCPDesc=Este controlador permite-lhe enviar documentos diretamente para uma impressora com a Impressão na Nuvem da Google. GCP_Name=Nome GCP_displayName=Exibir Nome GCP_Id=Id. da Impressora GCP_OwnerName=Nome do Fabricante GCP_State=Estado da Impressora -GCP_connectionStatus=Online State +GCP_connectionStatus=Estado Online GCP_Type=Tipo de Impressora -PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. +PrintIPPDesc=Este driver permite enviar documentos diretamente para uma impressora. Requer um sistema Linux com o CUPS instalado. PRINTIPP_HOST=Servidor de Impressão PRINTIPP_PORT=Porta PRINTIPP_USER=Iniciar Sessão @@ -34,7 +34,7 @@ PRINTIPP_PASSWORD=Senha NoDefaultPrinterDefined=Não foi definida nenhuma impressora predefinda DefaultPrinter=Impressora Predefinida Printer=Impressora -IPP_Uri=Printer Uri +IPP_Uri=Uri da impressora IPP_Name=Nome da Impressora IPP_State=Estado da Impressora IPP_State_reason=Razão do Estado @@ -42,10 +42,10 @@ IPP_State_reason1=Razão do Estado 1 IPP_BW=BW IPP_Color=Cor IPP_Device=Dispositivo -IPP_Media=Printer media -IPP_Supported=Type of media -DirectPrintingJobsDesc=This page lists printing jobs found for available printers. -GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +IPP_Media=Média da impressora +IPP_Supported=Tipo de média +DirectPrintingJobsDesc=Esta página lista os trabalhos de impressão encontrados para as impressoras disponíveis. +GoogleAuthNotConfigured=A configuração do Google OAuth não foi efetuada. Ative o módulo OAuth e defina um ID/Segredo do Google. +GoogleAuthConfigured=As credenciais do Google OAuth foram encontradas na configuração do módulo OAuth. +PrintingDriverDescprintgcp=Variáveis ​​de configuração para o driver de impressão do Google Cloud Print. +PrintTestDescprintgcp=Lista de Impressoras para a Impressão na Nuvem da Google diff --git a/htdocs/langs/pt_PT/productbatch.lang b/htdocs/langs/pt_PT/productbatch.lang index 29e03030c23..e5b9c544e05 100644 --- a/htdocs/langs/pt_PT/productbatch.lang +++ b/htdocs/langs/pt_PT/productbatch.lang @@ -5,20 +5,20 @@ ProductStatusNotOnBatch=Não (não é necessário lote/número de série) ProductStatusOnBatchShort=Sim ProductStatusNotOnBatchShort=Não Batch=Lote/Nr. de Série -atleast1batchfield=Eat-by date or Sell-by date or Lot/Serial number +atleast1batchfield=Data de validade ou Data de venda ou Lote/Número de Série batch_number=Lote/Número de série BatchNumberShort=Lote/Nr. de Série -EatByDate=Eat-by date -SellByDate=Sell-by date +EatByDate=Data de validade +SellByDate=Data de venda DetailBatchNumber=Detalhes de Lote/Nr. de Série -DetailBatchFormat=Lot/Serial: %s - Eat by: %s - Sell by: %s (Qty : %d) +DetailBatchFormat=Lote/Número de Série: %s - Data de validade:%s - Data de venda:%s (Qtd: %d) printBatch=Lote/Nr. de Série: %s -printEatby=Eat-by: %s -printSellby=Sell-by: %s -printQty=Qt.: %d -AddDispatchBatchLine=Add a line for Shelf Life dispatching -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic increase/decrease stock mode is forced to shipping validate and manual dispatching for reception and can't be edited. Other options can be defined as you want. -ProductDoesNotUseBatchSerial=This product does not use lot/serial number -ProductLotSetup=Setup of module lot/serial -ShowCurrentStockOfLot=Show current stock for couple product/lot -ShowLogOfMovementIfLot=Show log of movements for couple product/lot +printEatby=Data de validade: %s +printSellby=Data de venda: %s +printQty=Qtd.: %d +AddDispatchBatchLine=Adicionar uma linha para o apuramento por data de validade +WhenProductBatchModuleOnOptionAreForced=Quando o módulo Lote/Número de Série estiver ativo, o modo automático de aumento/diminuição de stock é forçado para validação de expedições e despacho manual da recepção de produtos e não pode ser editado. Outras opções podem ser definidas como você desejar. +ProductDoesNotUseBatchSerial=Este produto não usa lote/número de série +ProductLotSetup=Configuração do módulo Lote/Número de Série +ShowCurrentStockOfLot=Mostrar o stock atual para o par produto/lote +ShowLogOfMovementIfLot=Mostrar registo de movimentos para cada par produto/lote diff --git a/htdocs/langs/pt_PT/products.lang b/htdocs/langs/pt_PT/products.lang index 1e88a18047c..68ad6256b2a 100644 --- a/htdocs/langs/pt_PT/products.lang +++ b/htdocs/langs/pt_PT/products.lang @@ -4,7 +4,7 @@ ProductLabel=Produto rótulo ProductLabelTranslated=Translated product label ProductDescriptionTranslated=Translated product description ProductNoteTranslated=Translated product note -ProductServiceCard=Ficha Produto/Serviço +ProductServiceCard=Ficha de produto/serviço TMenuProducts=Produtos TMenuServices=Serviços Products=Produtos @@ -25,17 +25,19 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produto ou Serviço ProductsAndServices=Produtos e Serviços ProductsOrServices=Produtos ou Serviços -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produtos para compra e venda -ServicesOnSell=Serviços para compra ou venda -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Serviços para compra e venda LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products LastRecordedServices=Latest %s recorded services -CardProduct0=Ficha do Produto -CardProduct1=Ficha do Serviço +CardProduct0=Ficha de Produto +CardProduct1=Ficha de Serviço Stock=Stock Stocks=Stocks Movements=Movimentos @@ -81,7 +83,7 @@ ServicesArea=Área de Serviços ListOfStockMovements=Lista de movimentos de stock BuyingPrice=Preço de compra PriceForEachProduct=Products with specific prices -SupplierCard=Ficha fornecedor +SupplierCard=Ficha de fornecedor PriceRemoved=Preço eliminado BarCode=Código de barras BarcodeType=Tipo de código de barras @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litro l=L +unitP=Piece +unitSET=Set +unitS=Segundo +unitH=Hora +unitD=Dia +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Preço atual @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Variáveis globais VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=Dados JSON +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Intervalo de atualização (minutos) LastUpdated=Latest update CorrectlyUpdated=Corretamente atualizado @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/pt_PT/projects.lang b/htdocs/langs/pt_PT/projects.lang index d1b6fb71060..84153e51a80 100644 --- a/htdocs/langs/pt_PT/projects.lang +++ b/htdocs/langs/pt_PT/projects.lang @@ -163,7 +163,7 @@ DocumentModelBeluga=Project template for linked objects overview DocumentModelBaleine=Project report template for tasks PlannedWorkload=Carga de trabalho planeada PlannedWorkloadShort=Workload -ProjectReferers=Related items +ProjectReferers=Itens relacionados ProjectMustBeValidatedFirst=Primeiro deve validar o projeto FirstAddRessourceToAllocateTime=Assign a user resource to task to allocate time InputPerDay=Input per day diff --git a/htdocs/langs/pt_PT/propal.lang b/htdocs/langs/pt_PT/propal.lang index d19cf3638b9..44f573f7712 100644 --- a/htdocs/langs/pt_PT/propal.lang +++ b/htdocs/langs/pt_PT/propal.lang @@ -3,32 +3,32 @@ Proposals=Orçamentos Proposal=Orçamento ProposalShort=Proposta ProposalsDraft=Orçamentos Rascunho -ProposalsOpened=Orçamentos Abertos +ProposalsOpened=Orçamentos a clientes abertos Prop=Orçamentos CommercialProposal=Orçamento -ProposalCard=Cartão de Proposta +ProposalCard=Ficha do orçamento NewProp=Novo Orçamento NewPropal=Novo Orçamento Prospect=Cliente Potencial DeleteProp=Eliminar Orçamento ValidateProp=Confirmar Orçamento -AddProp=Create proposal -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? -LastPropals=Latest %s proposals -LastModifiedProposals=Latest %s modified proposals +AddProp=Criar orçamento +ConfirmDeleteProp=Tem a certeza que pretende eliminar este orçamento? +ConfirmValidateProp=Tem certeza de que deseja validar este orçamento com o nome %s? +LastPropals=Os últimos %s orçamentos +LastModifiedProposals=Os últimos %s orçamentos modificados AllPropals=Todos Os Orçamentos SearchAProposal=Procurar um Orçamento -NoProposal=No proposal +NoProposal=Nenhum orçamento ProposalsStatistics=Estatísticas de Orçamentos NumberOfProposalsByMonth=Número por Mês AmountOfProposalsByMonthHT=Montante por Mês (sem IVA) NbOfProposals=Número Orçamentos ShowPropal=Ver Orçamento PropalsDraft=Rascunho -PropalsOpened=Aberto +PropalsOpened=Abrir PropalStatusDraft=Rascunho (a Confirmar) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Validado (o orçamento está aberto) PropalStatusSigned=Assinado (a facturar) PropalStatusNotSigned=Sem Assinar (Fechado) PropalStatusBilled=Facturado @@ -46,18 +46,18 @@ SendPropalByMail=Enviar Orçamento por E-mail DatePropal=Data da proposta DateEndPropal=Válido até ValidityDuration=Duração da Validade -CloseAs=Set status to -SetAcceptedRefused=Set accepted/refused +CloseAs=Definir estado como +SetAcceptedRefused=Definir aceite/recusado ErrorPropalNotFound=Orçamento %s Inexistente -AddToDraftProposals=Add to draft proposal -NoDraftProposals=No draft proposals +AddToDraftProposals=Adicionar ao orçamento em rascunho +NoDraftProposals=Sem orçamentos em rascunho CopyPropalFrom=Criar orçamento por Cópia de um existente CreateEmptyPropal=Criar orçamento desde a Lista de produtos predefinidos DefaultProposalDurationValidity=Prazo de validade por defeito (em días) UseCustomerContactAsPropalRecipientIfExist=Utilizar morada contacto de seguimiento de cliente definido em vez da morada do Terceiro como destinatario dos Orçamentos ClonePropal=Copiar Proposta Comercial -ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +ConfirmClonePropal=Tem a certeza de que deseja clonar o orçamento %s? +ConfirmReOpenProp=Tem a certeza de que deseja reabrir or orçamento %s? ProposalsAndProposalsLines=Proposta comercial e linhas ProposalLine=Proposta linha AvailabilityPeriod=Disponibilidade atraso @@ -78,5 +78,5 @@ DocModelAzurDescription=Modelo de orçamento completo (logo...) DefaultModelPropalCreate=Criação do modelo padrão DefaultModelPropalToBill=Modelo padrão ao fechar uma proposta de negócio (a facturar) DefaultModelPropalClosed=Modelo padrão ao fechar uma proposta de negócio (não faturada) -ProposalCustomerSignature=Written acceptance, company stamp, date and signature -ProposalsStatisticsSuppliers=Supplier proposals statistics +ProposalCustomerSignature=Aceitação escrita, carimbo da empresa, data e assinatura +ProposalsStatisticsSuppliers=Estatísticas dos orçamentos dos fornecedores diff --git a/htdocs/langs/pt_PT/resource.lang b/htdocs/langs/pt_PT/resource.lang index b83c467ab76..b5980757000 100644 --- a/htdocs/langs/pt_PT/resource.lang +++ b/htdocs/langs/pt_PT/resource.lang @@ -8,7 +8,7 @@ NoResourceLinked=Nenhum recurso interligado ResourcePageIndex=Lista de recursos ResourceSingular=Recurso -ResourceCard=Cartão de recurso +ResourceCard=Ficha do recurso AddResource=Crie um recurso ResourceFormLabel_ref=Nome do recurso ResourceType=Tipo de recurso @@ -16,16 +16,21 @@ ResourceFormLabel_description=Descrição do recurso ResourcesLinkedToElement=Recursos interligados ao elemento -ShowResource=Show resource +ShowResource=Mostrar recurso ResourceElementPage=Recursos do elemento -ResourceCreatedWithSuccess=Resource successfully created -RessourceLineSuccessfullyDeleted=Resource line successfully deleted -RessourceLineSuccessfullyUpdated=Resource line successfully updated -ResourceLinkedWithSuccess=Resource linked with success +ResourceCreatedWithSuccess=Linha do recurso criada com sucesso +RessourceLineSuccessfullyDeleted=Linha do recurso eliminada com sucesso +RessourceLineSuccessfullyUpdated=Linha do recurso atualizada com sucesso +ResourceLinkedWithSuccess=Recurso associado com sucesso ConfirmDeleteResource=Confirme para apagar este recurso RessourceSuccessfullyDeleted=Recurso apagado com sucesso DictionaryResourceType=Tipo de recursos SelectResource=Selecione o recurso + +IdResource=ID do recurso +AssetNumber=Número de série +ResourceTypeCode=Código do tipo de recurso +ImportDataset_resource_1=Recursos diff --git a/htdocs/langs/pt_PT/salaries.lang b/htdocs/langs/pt_PT/salaries.lang index 86481dff18b..9ab76143e37 100644 --- a/htdocs/langs/pt_PT/salaries.lang +++ b/htdocs/langs/pt_PT/salaries.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Código da contabilidade para pagamentos de salário -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Código da contabilidade para movimentos financeiros +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Conta contabilística usada por defeito para despesas de pessoal Salary=Salário Salaries=Salários NewSalaryPayment=Novo Pagamento de Salário SalaryPayment=Pagamento de Salário SalariesPayments=Pagamentos de Salários ShowSalaryPayment=Mostrar pagamento de salário -THM=Average hourly rate -TJM=Average daily rate +THM=Taxa horária média +TJM=Taxa diária média CurrentSalary=Salário atual -THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently as information only and is not used for any calculation +THMDescription=Esse valor pode ser usado para calcular o custo do tempo consumido num projeto inserido pelos utilizadores, isto no caso de o módulo Projetos estiver a ser utilizado +TJMDescription=Esse valor é atualmente serve apenas como informação e não é utilizado em qualquer cálculo diff --git a/htdocs/langs/pt_PT/sendings.lang b/htdocs/langs/pt_PT/sendings.lang index 9a0543e29ee..bc94468abf1 100644 --- a/htdocs/langs/pt_PT/sendings.lang +++ b/htdocs/langs/pt_PT/sendings.lang @@ -14,7 +14,7 @@ LastSendings=Latest %s shipments StatisticsOfSendings=Estatísticas de Envios NbOfSendings=Número de Envios NumberOfShipmentsByMonth=Número de envios por mês -SendingCard=Shipment card +SendingCard=Ficha da expedição NewSending=Novo Envio CreateShipment=Criar Envio QtyShipped=Quant. Enviada @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Modelo Simples DocumentModelMerou=Mérou modelo A5 WarningNoQtyLeftToSend=Atenção, não existe qualquer produto à espera de ser enviado. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -49,12 +48,12 @@ SendShippingByEMail=Efectuar envio por e-mail SendShippingRef=Submission of shipment %s ActionsOnShipping=Eventos em embarque LinkToTrackYourPackage=Link para acompanhar o seu pacote -ShipmentCreationIsDoneFromOrder=A criação de uma nova remessa é efectuada a partir da encomenda. +ShipmentCreationIsDoneFromOrder=Para já, a criação de uma nova expedição é efectuada a partir da ficha de encomenda. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/pt_PT/sms.lang b/htdocs/langs/pt_PT/sms.lang index 3435a87984b..c284e3cd517 100644 --- a/htdocs/langs/pt_PT/sms.lang +++ b/htdocs/langs/pt_PT/sms.lang @@ -2,7 +2,7 @@ Sms=Sms SmsSetup=Sms configuração SmsDesc=Esta página permite que você defina opções globais de SMS ou características -SmsCard=SMS cartão +SmsCard=Ficha de SMS AllSms=Todos Campanhas SMS SmsTargets=Metas SmsRecipients=Metas @@ -38,7 +38,7 @@ SmsStatusNotSent=Não enviou SmsSuccessfulySent=Sms enviada corretamente (de %s a %s) ErrorSmsRecipientIsEmpty=Número de destino está vazio WarningNoSmsAdded=Novo número de telefone para adicionar à lista de alvos -ConfirmValidSms=Do you confirm validation of this campain? +ConfirmValidSms=Confirma a validação desta campanha? NbOfUniqueSms=Nb DOF únicos números de telefone NbOfSms=Nbre de números phon ThisIsATestMessage=Esta é uma mensagem de teste @@ -46,6 +46,6 @@ SendSms=Enviar SMS SmsInfoCharRemain=N º de caracteres restantes SmsInfoNumero= (Formato internacional exemplo: +33899701761) DelayBeforeSending=Atraso antes de enviar (minutos) -SmsNoPossibleSenderFound=No sender available. Check setup of your SMS provider. +SmsNoPossibleSenderFound=Nenhum operador disponível. Verifique a configuração do seu serviço SMS. SmsNoPossibleRecipientFound=Nenhum alvo disponível. Verifique a configuração do seu provedor de SMS. diff --git a/htdocs/langs/pt_PT/stocks.lang b/htdocs/langs/pt_PT/stocks.lang index 5630b4d42c8..12c7e0c6577 100644 --- a/htdocs/langs/pt_PT/stocks.lang +++ b/htdocs/langs/pt_PT/stocks.lang @@ -1,5 +1,5 @@ # Dolibarr language file - Source file is en_US - stocks -WarehouseCard=Ficha Armazem +WarehouseCard=Ficha do armazém Warehouse=Armazem Warehouses=Armazéns ParentWarehouse=Parent warehouse @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Número de peças UnitPurchaseValue=Preço de compra Unitário StockTooLow=Stock insuficiente -StockLowerThanLimit=Stock menor do que o limite de alerta +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Valor PMPValue=Valor (PMP) PMPValueShort=PMP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantidade desagregada QtyDispatchedShort=Qt. despachada QtyToDispatchShort=Qt. a despachar -OrderDispatch=Recepção de stocks +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrementar os stocks físicos sobre as facturas/recibos @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Incrementar os stocks físicos sobre as facturas/recibos ReStockOnValidateOrder=Incrementar os stocks físicos sobre os pedidos -ReStockOnDispatchOrder=Aumentar o stock real de manual de expedição em armazéns, após receber ordem de fornecedor +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Pedido não está pronto para despacho. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Não há produtos pré-definidos para este objeto. Portanto, não despachando em stock é exigido. DispatchVerb=Expedição StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Stock físico RealStock=Stock real +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Stock virtual +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id. armazem DescWareHouse=Descrição armazem LieuWareHouse=Localização armazem @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Editar +inventoryValidate=Validado +inventoryDraft=Em Serviço +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Criar +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filtro por categoría +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Adicionar +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Apagar a linha +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/pt_PT/stripe.lang b/htdocs/langs/pt_PT/stripe.lang new file mode 100644 index 00000000000..459d4e69fe3 --- /dev/null +++ b/htdocs/langs/pt_PT/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Configuração do módulo Stripe +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pagar com cartão de crédito ou Stripe +FollowingUrlAreAvailableToMakePayments=As seguintes URL estão disponiveis para permitir a um cliente efectuar um pagamento +PaymentForm=Forma de pagamento +WelcomeOnPaymentPage=Bem-vindo aos nossos serviços de pagamento online +ThisScreenAllowsYouToPay=Esta tela permite que você faça o seu pagamento online destinado a %s. +ThisIsInformationOnPayment=Aqui estão as informações de pagamento para fazer +ToComplete=A completar +YourEMail=E-Mail de confirmação de pagamento +STRIPE_PAYONLINE_SENDEMAIL=Correio eletrónico para avisar depois de um pagamento (bem sucedido ou não) +Creditor=Beneficiario +PaymentCode=Código de pagamento +StripeDoPayment=Continuar pagamento com cartão +YouWillBeRedirectedOnStripe=Você será redirecionado para uma página segura do Stripe de forma a inserir as informações do seu cartão de crédito +Continue=Continuar +ToOfferALinkForOnlinePayment=URL para o pagamento %s +ToOfferALinkForOnlinePaymentOnOrder=URL que fornece pagamento on-line interface% s com base no valor de um pedido de venda +ToOfferALinkForOnlinePaymentOnInvoice=URL que fornece pagamento on-line interface% s com base no valor de um projeto de lei +ToOfferALinkForOnlinePaymentOnContractLine=URL que fornece linha de pagamento interface% com base na quantidade de uma linha de contrato +ToOfferALinkForOnlinePaymentOnFreeAmount=URL que fornece pagamento on-line %s interface baseada numa quantidade livre +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL para oferecer uma interface on-line %s pagamento de uma subscrição de membro +YouCanAddTagOnUrl=Você também pode adicionar o parâmetro url &tag=value para o endereço (exigida apenas para o pagamento livre) para ver o seu código próprio, observação do pagamento. +SetupStripeToHavePaymentCreatedAutomatically=Configure o seu Stripe através do URL %s para que tenha os pagamentos criados automaticamente quando estes forem validades pelo Stripe. +YourPaymentHasBeenRecorded=Esta página confirma que o pagamento tenha sido gravada. Obrigado. +YourPaymentHasNotBeenRecorded=Você o pagamento não tenha sido gravada e transação foi cancelada. Obrigado. +AccountParameter=Conta parâmetros +UsageParameter=Parâmetros de uso +InformationToFindParameters=Ajuda para encontrar informações de sua conta %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Nome do fornecedor +CSSUrlForPaymentForm=CSS url folha de estilo para forma de pagamento +MessageOK=Mensagem na página validado o pagamento de retorno +MessageKO=Mensagem na página de pagamento cancelado retorno +NewStripePaymentReceived=Novo pagamento Stripe recebido +NewStripePaymentFailed=Nova tentativa de pagamento Stripo, mas falhou +STRIPE_TEST_SECRET_KEY=Chave de teste secreta +STRIPE_TEST_PUBLISHABLE_KEY=Chave de teste publicável +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/pt_PT/supplier_proposal.lang b/htdocs/langs/pt_PT/supplier_proposal.lang index 82fe49a342b..7951a5147f7 100644 --- a/htdocs/langs/pt_PT/supplier_proposal.lang +++ b/htdocs/langs/pt_PT/supplier_proposal.lang @@ -8,11 +8,11 @@ SearchRequest=Encontrar um pedido DraftRequests=Pedidos rascunho SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Abrir pedidos de preço SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal -SupplierProposals=Supplier proposals -SupplierProposalsShort=Supplier proposals +SupplierProposals=Orçamentos de fornecedores +SupplierProposalsShort=Orçamentos de fornecedores NewAskPrice=Novo pedido de preço ShowSupplierProposal=Show price request AddSupplierProposal=Create a price request @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Eliminar pedido ValidateAsk=Validar pedido SupplierProposalStatusDraft=Rascunho (a Confirmar) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Fechado SupplierProposalStatusSigned=Aceite SupplierProposalStatusNotSigned=Recusado @@ -39,7 +39,7 @@ ConfirmCloneAsk=Are you sure you want to clone the price request %s? ConfirmReOpenAsk=Are you sure you want to open back the price request %s? SendAskByMail=Send price request by mail SendAskRef=Sending the price request %s -SupplierProposalCard=Request card +SupplierProposalCard=Ficha do orçamento do fornecedor ConfirmDeleteAsk=Are you sure you want to delete this price request %s? ActionsOnSupplierProposal=Events on price request DocModelAuroreDescription=A complete request model (logo...) @@ -47,7 +47,7 @@ CommercialAsk=Pedido de preço DefaultModelSupplierProposalCreate=Criação do modelo padrão DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/pt_PT/suppliers.lang b/htdocs/langs/pt_PT/suppliers.lang index 41b427fc33b..26f46cc7961 100644 --- a/htdocs/langs/pt_PT/suppliers.lang +++ b/htdocs/langs/pt_PT/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Alguns sub-produtos não têm preço definido AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Este fornecedor de referência já está associado com uma referência: %s NoRecordedSuppliers=Sem Fornecedores Registados SupplierPayment=Pagamento a Fornecedor @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/pt_PT/trips.lang b/htdocs/langs/pt_PT/trips.lang index e8935754500..80648f6b0e1 100644 --- a/htdocs/langs/pt_PT/trips.lang +++ b/htdocs/langs/pt_PT/trips.lang @@ -5,14 +5,14 @@ ShowExpenseReport=Show expense report Trips=Relatórios de Despesas TripsAndExpenses=Relatório de Despesas TripsAndExpensesStatistics=Estatísticas dos Relatórios de Despesas -TripCard=Expense report card +TripCard=Ficha do relatório de despesa AddTrip=Create expense report ListOfTrips=Lista de relatórios de despesas ListOfFees=Lista de Taxas -TypeFees=Types of fees +TypeFees=Tipos de taxas ShowTrip=Show expense report NewTrip=Novo relatório de despesas -CompanyVisited=Empresa/Instituição Visitada +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Quantidade de Quilómetros DeleteTrip=Apagar relatório de despesas ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=A aguardar aprovação ExpensesArea=Expense reports area ClassifyRefunded=Classificar 'Reembolsado' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Pessoa para informar para validação. TripSociete=Informação da Empresa @@ -59,31 +69,24 @@ DATE_REFUS=Negada em DATE_SAVE=Data da validação DATE_CANCEL=Data do cancelamento DATE_PAIEMENT=Data de pagamento - BROUILLONNER=Reabrir +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validar e submeter para aprovação ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Aprovar relatório de despesas ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pagar um relatório de despesas ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validar relatório de despesas ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=nenhum relatório de despesas para exportar para este período. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/pt_PT/users.lang b/htdocs/langs/pt_PT/users.lang index adae4ff27ca..8cf3cc3e664 100644 --- a/htdocs/langs/pt_PT/users.lang +++ b/htdocs/langs/pt_PT/users.lang @@ -1,14 +1,14 @@ # Dolibarr language file - Source file is en_US - users -HRMArea=Área HRM -UserCard=Ficha de Utilizador -GroupCard=Ficha de Grupo +HRMArea=Área GRH +UserCard=Ficha do utilizador +GroupCard=Ficha do grupo Permission=Permissão Permissions=Permissões EditPassword=Editar Palavra-passe SendNewPassword=Regenerar e Enviar a Palavra-passe ReinitPassword=Regenerar Palavra-passe PasswordChangedTo=Palavra-passe alterada em: %s -SubjectNewPassword=Your new password for %s +SubjectNewPassword=A sua nova palavra-passa para %s GroupRights=Permissões de Grupo UserRights=Permissões de Utilizador UserGUISetup=Interface Utilizador @@ -19,15 +19,15 @@ DeleteAUser=Apagar um Utilizador EnableAUser=Ativar um Utilizador DeleteGroup=Apagar DeleteAGroup=Apagar um Grupo -ConfirmDisableUser=Are you sure you want to disable user %s? -ConfirmDeleteUser=Are you sure you want to delete user %s? -ConfirmDeleteGroup=Are you sure you want to delete group %s? -ConfirmEnableUser=Are you sure you want to enable user %s? -ConfirmReinitPassword=Are you sure you want to generate a new password for user %s? -ConfirmSendNewPassword=Are you sure you want to generate and send new password for user %s? +ConfirmDisableUser=Tem a certeza que pretende desativar o utilizador %s? +ConfirmDeleteUser=Tem a certeza que pretende eliminar o utilizador %s? +ConfirmDeleteGroup=Tem a certeza que pretende eliminar o grupo de utilizadores %s? +ConfirmEnableUser=Tem a certeza que pretende ativar o utilizador %s? +ConfirmReinitPassword=Tem a certeza que pretende gerar uma nova palavra-passe para o utilizador %s? +ConfirmSendNewPassword=Tem a certeza que pretende gerar uma nova palavra-passe e enviá-la para o utilizador %s? NewUser=Novo Utilizador CreateUser=Criar Utilizador -LoginNotDefined=Os dados de sessão não estão definidos +LoginNotDefined=Os dados da sessão não estão definidos. NameNotDefined=O nome não está definido. ListOfUsers=Lista de Utilizadores SuperAdministrator=Administrador Avançado @@ -45,8 +45,8 @@ RemoveFromGroup=Apagar Grupo PasswordChangedAndSentTo=Palavra-passe alterada e enviada para %s. PasswordChangeRequestSent=Pedido para alterar a palavra-passe para %s enviada para %s. MenuUsersAndGroups=Utilizadores e Grupos -LastGroupsCreated=Latest %s created groups -LastUsersCreated=Latest %s users created +LastGroupsCreated=Os últimos %s grupos criados +LastUsersCreated=Os últimos %s utilizadores criados ShowGroup=Mostrar Grupo ShowUser=Mostrar Utilizador NonAffectedUsers=Utilizadores não atribuídos @@ -66,8 +66,8 @@ InternalUser=Utilizador Interno ExportDataset_user_1=Utilizadores e Propriedades do Dolibarr DomainUser=Utilizador de Domínio %s Reactivate=Reativar -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=Um utilizador interno é um utilizador que pertenece à sua Empresa/Instituição.
Um utilizador externo é um utilizador cliente, fornecedor ou outro.

Nos 2 casos, as permissões de utilizadores definem os direitos de acesso, mas o utilizador externo pode além disso ter um gestor de menus diferente do utilizador interno (ver Inicio - configuração - visualização) +CreateInternalUserDesc=Este formulário permite que você crie um utilizador interno para a sua empresa/organização. Para criar um utilizador externo (cliente, fornecedor; terceiro), utilize o botão "Criar utilizador Dolibarr" a partir da ficha de contacto do terceiro. +InternalExternalDesc=Um utilizador interno é um utilizador que faz parte da sua empresa/organização.
Um utilizador externo é um cliente, fornecedor ou outro (terceiro).

Em ambos casos, as permissões definem direitos no Dolibarr, e utilizadores externos podem ter um gestor de menu distinto do utilizador interno (Consulte: Início - Configuração - Interface) PermissionInheritedFromAGroup=A permissão dá-se já que o herda de um grupo ao qual pertenece o utilizador. Inherited=Herdado UserWillBeInternalUser=O utilizador criado irá ser um utilizador interno (porque não está interligado com um terceiro em particular) @@ -82,10 +82,10 @@ UserDeleted=Utilizador %s Removido NewGroupCreated=Grupo %s Criado GroupModified=Grupo %s modificado GroupDeleted=Grupo %s Removido -ConfirmCreateContact=Are you sure you want to create a Dolibarr account for this contact? -ConfirmCreateLogin=Are you sure you want to create a Dolibarr account for this member? -ConfirmCreateThirdParty=Are you sure you want to create a third party for this member? -LoginToCreate=Iniciar a sessão para Criar +ConfirmCreateContact=Tem a certeza que pretende criar uma conta Dolibarr para este contacto? +ConfirmCreateLogin=Tem a certeza que pretende criar uma conta Dolibarr para este membro? +ConfirmCreateThirdParty=Tem a certeza que pretende criar um terceiro para este membro? +LoginToCreate=Iniciar a sessão para criar NameToCreate=Nome do Terceiro a Criar YourRole=As suas funções YourQuotaOfUsersIsReached=A sua quota de utilizadores ativos foi atingida! @@ -98,8 +98,8 @@ OpenIDURL=URL de OpenID LoginUsingOpenID=Utilizar OpenID para iniciar a sessão WeeklyHours=Horas semanais ColorUser=Cor do utilizador -DisabledInMonoUserMode=Disabled in maintenance mode -UserAccountancyCode=User accountancy code -UserLogoff=User logout -UserLogged=User logged -DateEmployment=Date of Employment +DisabledInMonoUserMode=Desativado no modo de manutenção +UserAccountancyCode=Código de contabilidade do utilizador +UserLogoff=Terminar sessão do utilizador +UserLogged=Utilizador conectado +DateEmployment=Data de contratação diff --git a/htdocs/langs/pt_PT/website.lang b/htdocs/langs/pt_PT/website.lang index 17844ea822a..8cfea3ca740 100644 --- a/htdocs/langs/pt_PT/website.lang +++ b/htdocs/langs/pt_PT/website.lang @@ -6,16 +6,18 @@ ConfirmDeleteWebsite=Tem a certeza que deseja eliminar este site da Web. Também WEBSITE_PAGENAME=Nome/pseudonimo da página WEBSITE_CSS_URL=URL do ficheiro CSS externo WEBSITE_CSS_INLINE=Conteúdo de CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Bliblioteca de Multimedia EditCss=Editar Estilo/CSS EditMenu=Editar Menu EditPageMeta=Editar Metadados EditPageContent=Editar Conteúdo Website=Site da Web -Webpage=Web page +Webpage=Página Web AddPage=Adicionar página +HomePage=Home Page PreviewOfSiteNotYetAvailable=A pré-visualização do seu site da Web %s ainda mão está disponível. Deve adicionar primeiro uma página. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Página '%s' do site da Web %s eliminada PageAdded=Página '%s' adicionada ViewSiteInNewTab=Ver site no novo separador @@ -23,6 +25,7 @@ ViewPageInNewTab=Ver página no novo separador SetAsHomePage=Definir como página Inicial RealURL=URL Real ViewWebsiteInProduction=Ver site no utilizando URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Pré-visualizar %s num separador novo.

O %s será servido por um servidor web externo (como Apache, Nginx, IIS). Você deve instalar e configurar este servidor antes para apontar para a diretoria:
%s
URL servido por servidor externo:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/pt_PT/withdrawals.lang b/htdocs/langs/pt_PT/withdrawals.lang index 68e79c29e0d..51e48588c9b 100644 --- a/htdocs/langs/pt_PT/withdrawals.lang +++ b/htdocs/langs/pt_PT/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Quantidade a Levantar WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nenhuma factura a cliente com modo de pagamento 'Débito Directo' em espera. Ir ao separador 'Débito Directo' na ficha da factura para fazer um pedido. +NoInvoiceToWithdraw=Não existe nenhuma fatura à espera com 'Pedidos de débito direto' abertos. Vá ao separador '%s' na ficha da fatura para fazer um pedido. ResponsibleUser=Utilizador Responsável dos Débitos Directos WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Motivo da rejeição RefusedInvoicing=Faturamento da rejeição NoInvoiceRefused=Sem factura Cliente, rejeitada InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Espera StatusTrans=Transmitido StatusCredited=Creditado diff --git a/htdocs/langs/pt_PT/workflow.lang b/htdocs/langs/pt_PT/workflow.lang index 51dc6fefdf6..9e8879670c5 100644 --- a/htdocs/langs/pt_PT/workflow.lang +++ b/htdocs/langs/pt_PT/workflow.lang @@ -1,15 +1,15 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Configuração do módulo de Ritmo de Trabalho -WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. -ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed -descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique a fonte ligada como prposta a cobrança quando a ordem do cliente for definida como paga +WorkflowSetup=Configuração do módulo de Fluxo de Trabalho +WorkflowDesc=Este módulo foi projetado para modificar o comportamento das ações automáticas na aplicação. Por defeito, o fluxo de trabalho é aberto (você pode fazer as coisas na ordem que deseja). Você pode ativar as ações automáticas do seu interesse. +ThereIsNoWorkflowToModify=Não há modificações de fluxo de trabalho disponíveis para os módulos ativados. +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Criar automaticamente uma encomenda para o cliente após a assinatura de um orçamento de cliente +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a assinatura de um orçamento de cliente +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após a validação de um contrato +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Criar automaticamente uma fatura de cliente após o encerramento de uma encomenda de cliente +descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Classifique a fonte ligada como proposta a cobrança quando a ordem do cliente for definida como paga descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada como cobrado quando a ordem(s) do cliente for definida como paga descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Classifique a fonte ligada a ordem(s) de clientes quando a fatura de cliente for validada -descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classificar o orçamento fonte associado como faturado quando a fatura de cliente é validada +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classificar a encomenda fonte associada como enviada quando uma expedição é validada e a quantidade enviada é a mesma que está estipulada na encomenda fonte +AutomaticCreation=Criação automática +AutomaticClassification=Classificação automática diff --git a/htdocs/langs/ro_RO/accountancy.lang b/htdocs/langs/ro_RO/accountancy.lang index 4c6f707faec..0a3c0a8f276 100644 --- a/htdocs/langs/ro_RO/accountancy.lang +++ b/htdocs/langs/ro_RO/accountancy.lang @@ -8,128 +8,129 @@ ACCOUNTING_EXPORT_AMOUNT=Export valoare ACCOUNTING_EXPORT_DEVISE=Export moneda Selectformat=Select the format for the file ACCOUNTING_EXPORT_PREFIX_SPEC=Specificati prefixul pentru numele fisierului -ThisService=This service -ThisProduct=This product -DefaultForService=Default for service -DefaultForProduct=Default for product -CantSuggest=Can't suggest -AccountancySetupDoneFromAccountancyMenu=Most setup of the accountancy is done from the menu %s +ThisService=Acest serviciu +ThisProduct=Acest produs +DefaultForService=Implicit pentru serviciu +DefaultForProduct=Implicit pentru produs +CantSuggest=Nu pot sugera +AccountancySetupDoneFromAccountancyMenu=Cele mai multe configurări ale contabilității se fac din meniul %s ConfigAccountingExpert=Configurare modul expert contabil -Journalization=Journalization +Journalization=Inregistrari contabile Journaux=Jurnale JournalFinancial=Jurnale financiare BackToChartofaccounts=Înapoi la planul de conturi Chartofaccounts=Plan de conturi -CurrentDedicatedAccountingAccount=Current dedicated account -AssignDedicatedAccountingAccount=New account to assign -InvoiceLabel=Invoice label -OverviewOfAmountOfLinesNotBound=Overview of amount of lines not bound to accounting account -OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accounting account -OtherInfo=Other information -DeleteCptCategory=Remove accounting account from group -ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +CurrentDedicatedAccountingAccount=Cont curent dedicat +AssignDedicatedAccountingAccount=Cont nou pentru alocare +InvoiceLabel=Etichetă de factură +OverviewOfAmountOfLinesNotBound=Prezentare generală a valorii liniilor care nu sunt asociate unui cont contabil +OverviewOfAmountOfLinesBound=Prezentare generală a valorii liniilor deja asociate unui cont contabil +OtherInfo=Alte informații +DeleteCptCategory=Eliminați contul contabil din grup +ConfirmDeleteCptCategory=Sigur doriți să eliminați acest cont contabil din grupul de cont contabil? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Contabilitate -AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: -AccountancyAreaDescActionOnce=The following actions are usually executed one time only, or once per year... -AccountancyAreaDescActionOnceBis=Next steps should be done to save you time in future by suggesting you the correct default accounting account when making the journalization (writing record in Journals and General ledger) -AccountancyAreaDescActionFreq=The following actions are usually executed every month, week or day for very large companies... +AccountancyAreaDescIntro=Utilizarea modulului de contabilitate se face în mai multe etape: +AccountancyAreaDescActionOnce=Următoarele acțiuni sunt executate de obicei doar o singură dată sau o dată pe an ... +AccountancyAreaDescActionOnceBis=Următorii pași trebuie făcuți pentru a vă economisi timpul în viitor prin sugerarea contului contabil implicit corect atunci când efectuați jurnalizarea (scrierea înregistrărilor în Jurnale și în registrul Cartea Mare). +AccountancyAreaDescActionFreq=Următoarele acțiuni sunt executate de obicei în fiecare lună, săptămână sau zi pentru companii foarte mari ... -AccountancyAreaDescJournalSetup=STEP %s: Create or check content of your journal list from menu %s -AccountancyAreaDescChartModel=STEP %s: Create a model of chart of account from menu %s -AccountancyAreaDescChart=STEP %s: Create or check content of your chart of account from menu %s +AccountancyAreaDescJournalSetup=PASUL %s: Creați sau verificați conținutul jurnalului din meniu %s +AccountancyAreaDescChartModel=PASUL %s: Creați un model de plan de cont din meniul %s +AccountancyAreaDescChart=PASUL %s: Creați sau verificați conținutul planului dvs. de conturi din meniul %s -AccountancyAreaDescVat=STEP %s: Define accounting accounts for each VAT Rates. For this, use the menu entry %s. -AccountancyAreaDescExpenseReport=STEP %s: Define default accounting accounts for each type of expense report. For this, use the menu entry %s. -AccountancyAreaDescSal=STEP %s: Define default accounting accounts for payment of salaries. For this, use the menu entry %s. -AccountancyAreaDescContrib=STEP %s: Define default accounting accounts for special expences (miscellaneous taxes). For this, use the menu entry %s. -AccountancyAreaDescDonation=STEP %s: Define default accounting accounts for donation. For this, use the menu entry %s. -AccountancyAreaDescMisc=STEP %s: Define default accounting accounts for miscellaneous transactions. For this, use the menu entry %s. -AccountancyAreaDescLoan=STEP %s: Define default accounting accounts for loans. For this, use the menu entry %s. -AccountancyAreaDescBank=STEP %s: Define accounting accounts for each bank and financial accounts. For this, go on the card of each financial account. You can start from page %s. -AccountancyAreaDescProd=STEP %s: Define accounting accounts on your products/services. For this, use the menu entry %s. +AccountancyAreaDescVat=PASUL %s: Definirea conturilor contabile pentru fiecare TVA. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescExpenseReport=PASUL %s: Definiți conturile contabile implicite pentru fiecare tip de raport de cheltuieli. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescSal=PASUL %s: Definirea conturilor contabile implicite pentru plata salariilor. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescContrib=PASUL %s: Definiți conturile implicite de contabilitate pentru cheltuieli speciale (taxe diverse). Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescDonation=PASUL %s: Definirea conturilor contabile implicite pentru donații. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescMisc=PASUL %s: Definirea conturilor contabile implicite pentru diverse tranzacții. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescLoan=PASUL %s: Definiți conturile contabile implicite pentru împrumuturi. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescBank=PASUL %s: Definirea conturilor contabile pentru fiecare bancă și conturi financiare. Pentru aceasta, mergeți pe cardul fiecărui cont financiar. Puteți începe de la pagina %s. +AccountancyAreaDescProd=STEP %s: Definirea conturilor contabile pentru produsele / serviciile dvs. Pentru aceasta, utilizați intrarea din meniu %s. -AccountancyAreaDescBind=STEP %s: Check the binding between existing %s lines and accounting account is done, so application will be able to journalize transactions in Ledger in one click. Complete missing bindings. For this, use the menu entry %s. -AccountancyAreaDescWriteRecords=STEP %s: Write transactions into the Ledger. For this, go into menu %s, and click into button %s. -AccountancyAreaDescAnalyze=STEP %s: Add or edit existing transactions and generate reports and exports. +AccountancyAreaDescBind=PASUL %s: Verificați daca asocierea între liniile %s existente și contul contabil este factuta, astfel încât aplicația să poate scrie tranzacțiile în Cartea Mare cu un singur clic. Completați asocierile lipsă. Pentru aceasta, utilizați intrarea din meniu %s. +AccountancyAreaDescWriteRecords=PASUL %s: Scrieti tranzactii in Cartea Mare. Pentru aceasta, accesați meniul %s , apoi faceți clic pe butonul %s . +AccountancyAreaDescAnalyze=PAS %s: Adăugați sau modificați tranzacțiile existente și generați rapoarte și exporturi. -AccountancyAreaDescClosePeriod=STEP %s: Close period so we can't make modification in a future. +AccountancyAreaDescClosePeriod=PASUL %s: Inchideți perioada, astfel încât să nu putem modifica în viitor. MenuAccountancy=Contabilitate -Selectchartofaccounts=Select active chart of accounts -ChangeAndLoad=Change and load -Addanaccount=Add un cont contabil +Selectchartofaccounts=Selectați schema activă de conturi +ChangeAndLoad=Schimbați și încărcați +Addanaccount=Adauga un cont contabil AccountAccounting=Cont contabil AccountAccountingShort=Cont -SubledgerAccount=Subledger Account -subledger_account=Subledger Account -ShowAccountingAccount=Show accounting account -ShowAccountingJournal=Show accounting journal -AccountAccountingSuggest=Accounting account suggested -MenuDefaultAccounts=Default accounts -MenuVatAccounts=Vat accounts -MenuTaxAccounts=Tax accounts -MenuExpenseReportAccounts=Expense report accounts -MenuLoanAccounts=Loan accounts -MenuProductsAccounts=Product accounts -ProductsBinding=Products accounts -Ventilation=Binding to accounts -CustomersVentilation=Customer invoice binding -SuppliersVentilation=Supplier invoice binding -ExpenseReportsVentilation=Expense report binding -CreateMvts=Create new transaction -UpdateMvts=Modification of a transaction -WriteBookKeeping=Journalize transactions in Ledger -Bookkeeping=Ledger +SubledgerAccount=Contul contabil +ShowAccountingAccount=Afișați contul contabil +ShowAccountingJournal=Arătați jurnalul contabil +AccountAccountingSuggest=Conturi contabile sugerate +MenuDefaultAccounts=Conturi implicite +MenuVatAccounts=Conturi de TVA +MenuTaxAccounts=Conturi pentru taxe +MenuExpenseReportAccounts=Conturi de rapoarte de cheltuieli +MenuLoanAccounts=Conturi de împrumut +MenuProductsAccounts=Conturi de produs +ProductsBinding=Conturi de produse +Ventilation=Asocierea la conturi +CustomersVentilation=Asocierea facturii cu clientul +SuppliersVentilation=Asocierea facturii cu furnizorul +ExpenseReportsVentilation=Raportul de cheltuieli obligatoriu +CreateMvts=Creați o nouă tranzacție +UpdateMvts=Modificarea unei tranzacții +ValidTransaction=Validate transaction +WriteBookKeeping=Introducerea tranzactiilor in Jurnalul Cartea mare +Bookkeeping=Cartea mare AccountBalance=Sold cont CAHTF=Total purchase supplier before tax -TotalExpenseReport=Total expense report -InvoiceLines=Lines of invoices to bind -InvoiceLinesDone=Bound lines of invoices -ExpenseReportLines=Lines of expense reports to bind -ExpenseReportLinesDone=Bound lines of expense reports -IntoAccount=Bind line with the accounting account +TotalExpenseReport=Raportul total al cheltuielilor +InvoiceLines=Linii de facturi de asociat +InvoiceLinesDone=Asociaza liniile facturii +ExpenseReportLines=Linii de rapoarte de cheltuieli de asociat +ExpenseReportLinesDone=Linii asociate de rapoarte de cheltuieli +IntoAccount=Asociaza linia cu contul contabil -Ventilate=Bind -LineId=Id line +Ventilate=Asociaza +LineId=Id-ul liniei Processing=Procesează EndProcessing=Proces finalizat SelectedLines=Linii selectate Lineofinvoice=Linia facturii -LineOfExpenseReport=Line of expense report -NoAccountSelected=No accounting account selected -VentilatedinAccount=Binded successfully to the accounting account -NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account -XLineFailedToBeBinded=%s products/services were not bound to any accounting account +LineOfExpenseReport=Linia de raport de cheltuieli +NoAccountSelected=Nu a fost selectat niciun cont contabil +VentilatedinAccount=Asociat cu succes la contul de contabilitate +NotVentilatedinAccount=Nu este asociat cu contul contabil +XLineSuccessfullyBinded=%s produse / servicii asociate cu succes unui cont contabil +XLineFailedToBeBinded=Produsele / serviciile %s nu au fost asociate niciunui cont contabil -ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) -ACCOUNTING_LIST_SORT_VENTILATION_TODO=Begin the sorting of the page "Binding to do" by the most recent elements -ACCOUNTING_LIST_SORT_VENTILATION_DONE=Begin the sorting of the page "Binding done" by the most recent elements +ACCOUNTING_LIMIT_LIST_VENTILATION=Numărul de elemente de asociat afișate pe pagină (maxim recomandat: 50) +ACCOUNTING_LIST_SORT_VENTILATION_TODO=Începeți sortarea paginii "Asocieri de făcut" după cele mai recente elemente +ACCOUNTING_LIST_SORT_VENTILATION_DONE=Începeți sortarea paginii "Asocieri făcute" după cele mai recente elemente -ACCOUNTING_LENGTH_DESCRIPTION=Truncate product & services description in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Truncate product & services account description form in listings after x chars (Best = 50) -ACCOUNTING_LENGTH_GACCOUNT=Length of the general accounting accounts (If you set value to 6 here, the account '706' will appear like '706000' on screen) -ACCOUNTING_LENGTH_AACCOUNT=Length of the third party accounting accounts (If you set value to 6 here, the account '401' will appear like '401000' on screen) -ACCOUNTING_MANAGE_ZERO=Allow to manage different number of zero at the end of an accounting account. Needed by some countries (like switzerland). If keep to off (default), you can set the 2 following parameters to ask application to add virtual zero. -BANK_DISABLE_DIRECT_INPUT=Disable direct recording of transaction in bank account +ACCOUNTING_LENGTH_DESCRIPTION=Tăiați descrierea produselor și serviciilor în înregistrări după x caractere (Best = 50) +ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT=Tăiați formularul de descriere a contului de produse și servicii în înregistrări după x caractere (Best = 50) +ACCOUNTING_LENGTH_GACCOUNT=Lungimea conturilor contabile generale (Dacă setați valoarea la 6 aici, contul "706" va apărea pe ecran ca "706000") +ACCOUNTING_LENGTH_AACCOUNT=Lungimea conturilor contabile ale terțelor părți (dacă ați setat valoarea la 6 aici, contul "401" va apărea ca "401000" pe ecran) +ACCOUNTING_MANAGE_ZERO=Permiteți gestionarea unui număr diferit de zero la sfârșitul unui cont contabil. Necesar anumitor țări (cum ar fi Elveția). Dacă se ține inchis (implicit), puteți seta următorii 2 parametri pentru a cere aplicației să adauge zero virutal. +BANK_DISABLE_DIRECT_INPUT=Dezactivați înregistrarea directă a tranzacției în contul bancar ACCOUNTING_SELL_JOURNAL=Jurnal vânzări ACCOUNTING_PURCHASE_JOURNAL=Jurnal cumpărări ACCOUNTING_MISCELLANEOUS_JOURNAL=Journal Diverse -ACCOUNTING_EXPENSEREPORT_JOURNAL=Expense report journal +ACCOUNTING_EXPENSEREPORT_JOURNAL=Jurnalul raportului de cheltuieli ACCOUNTING_SOCIAL_JOURNAL=Jurnal Asigurări Sociale -ACCOUNTING_ACCOUNT_TRANSFER_CASH=Accounting account of transfer -ACCOUNTING_ACCOUNT_SUSPENSE=Accounting account of wait -DONATION_ACCOUNTINGACCOUNT=Accounting account to register donations +ACCOUNTING_ACCOUNT_TRANSFER_CASH=Contul contabil al transferului +ACCOUNTING_ACCOUNT_SUSPENSE=Contul contabil de așteptare +DONATION_ACCOUNTINGACCOUNT=Contul contabil pentru a înregistra donații -ACCOUNTING_PRODUCT_BUY_ACCOUNT=Accounting account by default for bought products (used if not defined in the product sheet) -ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Accounting account by default for the sold products (used if not defined in the product sheet) -ACCOUNTING_SERVICE_BUY_ACCOUNT=Accounting account by default for the bought services (used if not defined in the service sheet) -ACCOUNTING_SERVICE_SOLD_ACCOUNT=Accounting account by default for the sold services (used if not defined in the service sheet) +ACCOUNTING_PRODUCT_BUY_ACCOUNT=Cont contabil implicit pentru produsele achiziționate (utilizate dacă nu este definit în fișa produsului) +ACCOUNTING_PRODUCT_SOLD_ACCOUNT=Cont contabil implicit pentru produsele vândute (utilizate dacă nu este definit în fișa produsului) +ACCOUNTING_SERVICE_BUY_ACCOUNT=Contul contabil implicit pentru serviciile cumpărate (utilizat dacă nu este definit în fișa serviciului) +ACCOUNTING_SERVICE_SOLD_ACCOUNT=Contul contabil implicit pentru serviciile vândute (utilizat dacă nu este definit în fișa de servicii) Doctype=Tipul documentului Docdate=Data @@ -139,87 +140,90 @@ Labelcompte=Etichetă cont Sens=Sens Codejournal=Journal NumPiece=Număr nota contabila -TransactionNumShort=Num. transaction -AccountingCategory=Accounting account groups -GroupByAccountAccounting=Group by accounting account -NotMatch=Not Set -DeleteMvt=Delete Ledger lines -DelYear=Year to delete -DelJournal=Journal to delete -ConfirmDeleteMvt=This will delete all lines of the Ledger for year and/or from a specific journal. At least one criteria is required. -ConfirmDeleteMvtPartial=This will delete the selected line(s) of the Ledger -DelBookKeeping=Delete record of the Ledger +TransactionNumShort=Numărul tranzacţiei +AccountingCategory=Grupuri conturi contabile +GroupByAccountAccounting=Grupează după contul contabil +ByAccounts=By accounts +NotMatch=Nu este setat +DeleteMvt=Ștergeți liniile din Cartea Mare +DelYear=Anul pentru ștergere +DelJournal=Jurnalul de șters +ConfirmDeleteMvt=Aceasta va șterge toate liniile din Cartea Mare pentru anul și / sau dintr-un anumit jurnal. Este necesar cel puțin un criteriu. +ConfirmDeleteMvtPartial=Aceasta va șterge linia (liniile) selectate ale Cărții Mari +DelBookKeeping=Ștergeți înregistrarea Cărții Mari FinanceJournal=Jurnal Bancă -ExpenseReportsJournal=Expense reports journal -DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. -VATAccountNotDefined=Account for VAT not defined -ThirdpartyAccountNotDefined=Account for third party not defined -ProductAccountNotDefined=Account for product not defined -FeeAccountNotDefined=Account for fee not defined -BankAccountNotDefined=Account for bank not defined +ExpenseReportsJournal=Jurnalul rapoartelor de cheltuieli +DescFinanceJournal=Jurnal de finanțe, care include toate tipurile de plăți prin cont bancar +DescJournalOnlyBindedVisible=Aceasta este o vizualizare a înregistrării care este asociata contului contabil de produse / servicii și poate fi înregistrată în Cartea Mare. +VATAccountNotDefined=Contul de TVA nu a fost definit +ThirdpartyAccountNotDefined=Contul pentru o terță parte nu este definit +ProductAccountNotDefined=Contul pentru produs nu este definit +FeeAccountNotDefined=Contul pentru taxă nu este definit +BankAccountNotDefined=Contul pentru bancă nu este definit CustomerInvoicePayment=Incasare factura client ThirdPartyAccount=Cont terţi -NewAccountingMvt=New transaction -NumMvts=Numero of transaction -ListeMvts=List of movements +NewAccountingMvt=Tranzacție nouă +NumMvts=Numărul tranzacției +ListeMvts=Lista mișcărilor ErrorDebitCredit=Debitul și creditul nu pot avea o valoare, în același timp, -AddCompteFromBK=Add accounting accounts to the group -ReportThirdParty=List third party account -DescThirdPartyReport=Consult here the list of the third party customers and suppliers and their accounting accounts +AddCompteFromBK=Adăugați conturi contabile grupului +ReportThirdParty=Listează contul terță parte +DescThirdPartyReport=Consultați aici lista clienților și furnizorilor terță parte și a conturile lor contabile ListAccounts=Lista conturilor contabile Pcgtype=Clasa contului -Pcgsubtype=Subclass of account +Pcgsubtype=Subclasa contului -TotalVente=Total turnover before tax +TotalVente=Cifra de afaceri totală înainte de impozitare TotalMarge=Total Marje vânzări -DescVentilCustomer=Consult here the list of customer invoice lines bound (or not) to a product accounting account -DescVentilMore=In most cases, if you use predefined products or services and you set the account number on the product/service card, the application will be able to make all the binding between your invoice lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on product/service cards or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneCustomer=Consult here the list of the lines of invoices customers and their product accounting account -DescVentilTodoCustomer=Bind invoice lines not already bound with a product accounting account -ChangeAccount=Change the product/service accounting account for selected lines with the following accounting account: +DescVentilCustomer=Consultați aici lista liniilor de facturare pentru clienți asociate (sau nu) contului contabil al produsului +DescVentilMore=În majoritatea cazurilor, dacă utilizați produse sau servicii predefinite și setați numărul contului de pe cardul de produs / serviciu, aplicația va putea să facă toate asocierile dintre liniile dvs. de facturare și contul contabil al planului dvs. de conturi, doar printr-un un clic pe butonul "%s" . Dacă contul nu a fost setat pe carduri de produs / serviciu sau dacă aveți încă anumite linii care nu sunt asociate nici unui cont, va trebui să faceți o asociere manuală din meniul " %s". +DescVentilDoneCustomer=Consultați aici lista liniilor de facturare pentru clienți și a contului contabil al produselor lor +DescVentilTodoCustomer=Ascoiază linii de facturare care nu sunt deja legate de contul contabil al produsului +ChangeAccount=Modificați contul contabil al produsului / serviciului pentru liniile selectate cu următorul cont contabil: Vide=- -DescVentilSupplier=Consult here the list of supplier invoice lines bound or not yet bound to a product accounting account +DescVentilSupplier=Consultați aici lista liniilor de facturare a furnizorilor asociate sau nu încă unui cont contabil de produs DescVentilDoneSupplier=Consultati aici lista liniilor de facturi furnizor și conturile lor contabile -DescVentilTodoExpenseReport=Bind expense report lines not already bound with a fee accounting account -DescVentilExpenseReport=Consult here the list of expense report lines bound (or not) to a fee accounting account -DescVentilExpenseReportMore=If you setup accounting account on type of expense report lines, the application will be able to make all the binding between your expense report lines and the accounting account of your chart of accounts, just in one click with the button "%s". If account was not set on fees dictionary or if you still has some lines not bound to any account, you will have to make a manual binding from the menu "%s". -DescVentilDoneExpenseReport=Consult here the list of the lines of expenses reports and their fees accounting account +DescVentilTodoExpenseReport=Linii de raportare a cheltuielilor care nu sunt deja asociate unui cont contabile de taxe +DescVentilExpenseReport=Consultați aici lista liniilor de raportare a cheltuielilor asociate (sau nu) unui cont contabile de taxe +DescVentilExpenseReportMore=Dacă configurați contul contabil pe linii de raportare a tipurilor de cheltuieli, aplicația va putea face asocierea între liniile dvs. de raportare a cheltuielilor și contul contabil al planului dvs. de conturi, printr-un singur clic cu butonul "%s" . În cazul în care contul nu a fost stabilit în dicționarul de taxe sau dacă aveți încă anumite linii care nu sunt asociate niciunui cont, va trebui să faceți o asociere manuală din meniul " %s ". +DescVentilDoneExpenseReport=Consultați aici lista liniilor rapoartelor privind cheltuielile și contul contabil a taxelor lor -ValidateHistory=Bind Automatically -AutomaticBindingDone=Automatic binding done +ValidateHistory=Asociază automat +AutomaticBindingDone=Asociere automată făcută ErrorAccountancyCodeIsAlreadyUse=Eroare, nu puteți șterge acest cont contabil, deoarece este folosit MvtNotCorrectlyBalanced=Miscare incorect efectuata . Credit = %s. Debit = %s -FicheVentilation=Binding card -GeneralLedgerIsWritten=Transactions are written in the Ledger -GeneralLedgerSomeRecordWasNotRecorded=Some of the transactions could not be dispatched. If there is no other error message, this is probably because they were already dispatched. -NoNewRecordSaved=No new record dispatched -ListOfProductsWithoutAccountingAccount=List of products not bound to any accounting account -ChangeBinding=Change the binding +FicheVentilation=Card asociat +GeneralLedgerIsWritten=Tranzacțiile sunt scrise în Cartea Mare +GeneralLedgerSomeRecordWasNotRecorded=Unele tranzacții nu au putut fi expediate. Dacă nu există niciun alt mesaj de eroare, probabil că acestea au fost expediate. +NoNewRecordSaved=Nu s-au trimis noi înregistrări +ListOfProductsWithoutAccountingAccount=Lista produselor care nu sunt asociate unui cont contabil +ChangeBinding=Schimbați asocierea ## Admin ApplyMassCategories=Aplica categorii bulk -AddAccountFromBookKeepingWithNoCategories=Add acccount already used with no categories -CategoryDeleted=Category for the accounting account has been removed -AccountingJournals=Accounting journals -AccountingJournal=Accounting journal -NewAccountingJournal=New accounting journal -ShowAccoutingJournal=Show accounting journal +AddAccountFromBookKeepingWithNoCategories=Adăugați contul deja utilizat fără categorii +CategoryDeleted=Categoria pentru contul contabil a fost eliminată +AccountingJournals=Jurnalele contabile +AccountingJournal=Jurnalul contabil +NewAccountingJournal=Jurnal contabil nou +ShowAccoutingJournal=Arătați jurnalul contabil Code=Cod Nature=Personalitate juridică -AccountingJournalType1=Various operation +AccountingJournalType1=Diverse operațiuni AccountingJournalType2=Vânzări AccountingJournalType3=Achiziţii AccountingJournalType4=Banca -AccountingJournalType9=Has-new -ErrorAccountingJournalIsAlreadyUse=This journal is already use +AccountingJournalType5=Expenses report +AccountingJournalType9=Are nou +ErrorAccountingJournalIsAlreadyUse=Acest jurnal este deja folosit ## Export Exports=Exporturi Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model export OptionsDeactivatedForThisExportModel=Pentru acest model de export, optiunile sunt dezactivate Selectmodelcsv=Selectează un model de export @@ -230,25 +234,25 @@ Modelcsv_bob50=Export către Sage BOB 50 Modelcsv_ciel=Export către Sage Ciel Compta sau Compta Evolution Modelcsv_quadratus=Export către Quadratus QuadraCompta Modelcsv_ebp=Export către EBP -Modelcsv_cogilog=Export towards Cogilog -Modelcsv_agiris=Export towards Agiris (Test) -ChartofaccountsId=Chart of accounts Id +Modelcsv_cogilog=Export către Cogilog +Modelcsv_agiris=Export către Agiris (Test) +ChartofaccountsId=Id-ul listei de conturi ## Tools - Init accounting account on product / service InitAccountancy=Init contabilitate -InitAccountancyDesc=This page can be used to initialize an accounting account on products and services that does not have accountancy account defined for sales and purchases. -DefaultBindingDesc=This page can be used to set a default account to use to link transactions record about payment salaries, donation, taxes and vat when no specific accounting account were already set. +InitAccountancyDesc=Această pagină poate fi utilizată pentru a iniția un cont contabil pentru produse și servicii care nu au un cont contabil definit pentru vânzări și achiziții. +DefaultBindingDesc=Această pagină poate fi utilizată pentru a seta un cont implicit care să fie folosit pentru a lega înregistrarea tranzacțiilor cu privire la salariile de plată, donațiile, impozitele și taxe atunci când nu a fost deja stabilit niciun cont contabil. Options=Opţiuni OptionModeProductSell=Mod vanzari OptionModeProductBuy=Mod cumparari -OptionModeProductSellDesc=Show all products with accounting account for sales. -OptionModeProductBuyDesc=Show all products with accounting account for purchases. -CleanFixHistory=Remove accountancy code from lines that not exists into charts of account -CleanHistory=Reset all bindings for selected year +OptionModeProductSellDesc=Afișați toate produsele ce au cont contabil pentru vânzări. +OptionModeProductBuyDesc=Afișați toate produsele ce au cont contabil pentru achiziții. +CleanFixHistory=Eliminați codul de contabilitate din liniile care nu există în planurile de cont. +CleanHistory=Resetați toate asocierile pentru anul selectat -WithoutValidAccount=Without valid dedicated account -WithValidAccount=With valid dedicated account -ValueNotIntoChartOfAccount=This value of accounting account does not exist into chart of account +WithoutValidAccount=Fără un cont dedicat valabil +WithValidAccount=Cu un cont dedicat valabil +ValueNotIntoChartOfAccount=Această valoare a contului contabil nu există în planul de conturi ## Dictionary Range=Rang cont contabil @@ -256,12 +260,12 @@ Calculated=Calculat Formula=Formula ## Error -SomeMandatoryStepsOfSetupWereNotDone=Some mandatory steps of setup was not done, please complete them -ErrorNoAccountingCategoryForThisCountry=No accounting account group available for country %s (See Home - Setup - Dictionaries) +SomeMandatoryStepsOfSetupWereNotDone=Câțiva pași obligatorii de configurare nu au fost făcuți, vă rugăm să-i completați +ErrorNoAccountingCategoryForThisCountry=Nu există un grup de conturi contabile disponibil pentru țara %s (Consultați Acasă - Configurare - Dicționare) ExportNotSupported=Formatul exportat nu este suportat in aceasta pagina -BookeppingLineAlreayExists=Lines already existing into bookeeping -NoJournalDefined=No journal defined -Binded=Lines bound -ToBind=Lines to bind +BookeppingLineAlreayExists=Linii deja existente în contabilitate +NoJournalDefined=Nici un jurnal nu a fost definit +Binded=Linii asociate +ToBind=Linii de asociat -WarningReportNotReliable=Warning, this report is not based on the Ledger, so does not contains transaction modified manualy in the Ledger. It will be replaced by a more complete report in a next version. +WarningReportNotReliable=Atenție, acest raport nu se bazează pe Cartea Mare, deci nu conține tranzacția modificată manual în Cartea Mare. Acesta va fi înlocuit cu un raport mai complet în următoarea versiune. diff --git a/htdocs/langs/ro_RO/admin.lang b/htdocs/langs/ro_RO/admin.lang index 66416440fd3..cd1e45a44ed 100644 --- a/htdocs/langs/ro_RO/admin.lang +++ b/htdocs/langs/ro_RO/admin.lang @@ -8,7 +8,7 @@ VersionExperimental=Experimental VersionDevelopment=Dezvoltare VersionUnknown=Necunoscut VersionRecommanded=Recomandat -FileCheck=Files integrity checker +FileCheck=Cercetarea integrității fișierelor FileCheckDesc=This tool allows you to check the integrity of files and setup of your application, comparing each files with the official ones. Value of some setup constants may also be checked. You can use this tool to detect if some files were modified by a hacker for example. FileIntegrityIsStrictlyConformedWithReference=Files integrity is strictly conformed with the reference. FileIntegrityIsOkButFilesWereAdded=Files integrity check has passed, however some new files were added. @@ -21,14 +21,14 @@ FilesMissing= Fișiere Lipsa FilesUpdated= Fișiere Actualizate FilesModified=Modified Files FilesAdded=Added Files -FileCheckDolibarr=Check integrity of application files +FileCheckDolibarr=Verificați integritatea fișierelor de aplicații AvailableOnlyOnPackagedVersions=The local file for integrity checking is only available when application is installed from an official package -XmlNotFound=Xml Integrity File of application not found +XmlNotFound=Xml Integritatea fișierului de aplicație nu a fost găsit SessionId=ID Sesiune SessionSaveHandler=Handler pentru a salva sesiunile SessionSavePath=Storage sesiune localizare PurgeSessions=Goleşte sesiunile -ConfirmPurgeSessions=Do you really want to purge all sessions? This will disconnect every user (except yourself). +ConfirmPurgeSessions=Chiar vrei să ștergi toate sesiunile? Acest lucru va deconecta fiecare utilizator (cu excepția dvs.). NoSessionListWithThisHandler=Salvaţi sesiunea de manipulare configurat în PHP nu vă permite pentru a lista toate sesiunile de rulare. LockNewSessions=Blocare conexiuni noi ConfirmLockNewSessions=Sunteţi sigur că doriţi să restricţionaţi oricare noău conexiune Dolibarr pentru tine. Numai utilizatorul %s va fi capabil să se conecteze după aceea. @@ -65,8 +65,8 @@ ErrorCodeCantContainZero=Codul nu poate conţine valoarea 0 DisableJavascript=Dezactivează funcţiile JavaScript si Ajax (Recomandat pentru persoanele oarbe sau browserele text ) UseSearchToSelectCompanyTooltip= De asemenea, dacă aveți un număr mare de terţi (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului. UseSearchToSelectContactTooltip=De asemenea, dacă aveți un număr mare de terţi (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului. -DelaiedFullListToSelectCompany=Wait you press a key before loading content of thirdparties combo list (This may increase performance if you have a large number of thirdparties, but it is less convenient) -DelaiedFullListToSelectContact=Wait you press a key before loading content of contact combo list (This may increase performance if you have a large number of contact, but it is less convenient) +DelaiedFullListToSelectCompany=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo a terților (Aceasta poate crește performanța dacă aveți un număr mare de terțe părți, dar este mai puțin convenabil) +DelaiedFullListToSelectContact=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo de contacte (Aceasta poate crește performanța dacă aveți un număr mare de contacte, dar este mai puțin convenabil) NumberOfKeyToSearch=Nr caractere pentru a declanşa căutare: %s NotAvailableWhenAjaxDisabled=Nu este disponibil, atunci când Ajax cu handicap AllowToSelectProjectFromOtherCompany=On document of a third party, can choose a project linked to another third party @@ -86,7 +86,7 @@ Mask=Masca NextValue=Următoarea valoare NextValueForInvoices=Urmatoarea valoare (facturi) NextValueForCreditNotes=Urmatoarea valoare (credit note) -NextValueForDeposit=Next value (down payment) +NextValueForDeposit=Valoarea următoare (plata în avans) NextValueForReplacements=Urmatoarea valoare(înlocuiri) MustBeLowerThanPHPLimit=Notă: PHP limitează fiecare upload ladimensiunea de %s %s chiar dacă valoarea acestui parametru este NoMaxSizeByPHPLimit=Notă: Nicio limită setată în configuraţia dvs. PHP @@ -104,7 +104,7 @@ MenuIdParent=ID Meniu părinte DetailMenuIdParent=ID-ul meniului părinte (0 pentru top meniu ) DetailPosition=Sortează numărul meniu pentru a defini poziţia AllMenus=Toate -NotConfigured=Module/Application not configured +NotConfigured=Modulul / aplicația nu a fost configurată Active=Activ SetupShort=Setări OtherOptions=Alte opţiuni @@ -123,15 +123,15 @@ PHPTZ=Time Zone Server PHP DaylingSavingTime=Ora de vară (utilizator) CurrentHour=Timp PHP (server) CurrentSessionTimeOut=Sesiunea curentă timeout -YouCanEditPHPTZ=To set a different PHP timezone (not required), you can try to add a file .htaccess with a line like this "SetEnv TZ Europe/Paris" +YouCanEditPHPTZ=Pentru a seta un alt fus orar PHP (nu este necesar), puteți încerca să adăugați un fișier .htaccess cu o linie precum "SetEnv TZ Europe / Paris" HoursOnThisPageAreOnServerTZ=Warning, in contrary of other screens, hours on this page are not in your local timezone, but for the timezone of the server. Box=Widget Boxes=Widgeturi MaxNbOfLinesForBoxes=Număr maxim de linii pentru widgeturi PositionByDefault=Poziţia implicită Position=Poziţie -MenusDesc=Menu managers set content of the two menu bars (horizontal and vertical). -MenusEditorDesc=The menu editor allows you to define custom menu entries. Use it carefully to avoid instability and permanently unreachable menu entries.
Some modules add menu entries (in menu All mostly). If you remove some of these entries by mistake, you can restore them disabling and reenabling the module. +MenusDesc=Managerii de meniuri au stabilit conținutul celor două bare de meniu (orizontală și verticală). +MenusEditorDesc=Editorul de meniuri vă permite să definiți intrări personalizate din meniu. Utilizați-l cu grijă pentru a evita instabilitatea și intrările de meniuri care nu pot fi accesate permanent. Unele module adaugă meniuri (mai ales în meniul Toate ). Dacă eliminați din greșeală unele dintre aceste intrări, le puteți restabili dezactivând și activând din nou modulul. MenuForUsers=Meniu pentru utilizatori LangFile=Fişiere. Lang System=Sistem @@ -139,8 +139,8 @@ SystemInfo=Informaţii Sistem SystemToolsArea=Instrumente Sistem SystemToolsAreaDesc=Această zonă oferă funcţionalităţi de administrare. Folositi meniul pentru a alege funcţionalitatea pe care o căutaţi. Purge=Curăţenie -PurgeAreaDesc=This page allows you to delete all files generated or stored by Dolibarr (temporary files or all files in %s directory). Using this feature is not necessary. It is provided as a workaround for users whose Dolibarr is hosted by a provider that does not offer permissions to delete files generated by the web server. -PurgeDeleteLogFile=Delete log file %s defined for Syslog module (no risk of losing data) +PurgeAreaDesc=Această pagină vă permite să ștergeți toate fișierele generate sau stocate de Dolibarr (fișiere temporare sau toate fișierele din directorul %s ). Utilizarea acestei funcții nu este necesară. Este oferit ca soluție pentru utilizatorii al căror Dolibarr este găzduit de un furnizor care nu oferă permisiuni de ștergere a fișierelor generate de serverul web. +PurgeDeleteLogFile=Ștergeți fișierul de jurnal %s definit pentru modulul Syslog (fără riscul pierderii datelor) PurgeDeleteTemporaryFiles=Ştergere toate fişierele temporare (fără riscul de a pierde date) PurgeDeleteTemporaryFilesShort=Sterge fisiere temporare PurgeDeleteAllFilesInDocumentsDir=Ştergeţi toate fişierele în directorul %s. Fisiere temporare, dar de asemenea, fişierele ataşate la elemente (terţe părţi, facturi, ...) şi a trimis în modul ECM vor fi şterse. @@ -148,7 +148,7 @@ PurgeRunNow=Elimină acum PurgeNothingToDelete=Nici un director sau fișier de șters. PurgeNDirectoriesDeleted= %s fişiere sau directoare şterse. PurgeAuditEvents=Elimină toate evenimentele de securitate -ConfirmPurgeAuditEvents=Are you sure you want to purge all security events? All security logs will be deleted, no other data will be removed. +ConfirmPurgeAuditEvents=Sigur doriți să eliminați toate evenimentele de securitate? Toate jurnalele de securitate vor fi șterse, nu vor fi eliminate alte date. GenerateBackup=Generează backup Backup=Backup Restore=Restaurare @@ -183,24 +183,24 @@ ExtendedInsert=Instrucşiunea Extended INSERT NoLockBeforeInsert=Nu există instrucţiunea LOCK în jurul INSERT DelayedInsert=Insert cu întărziere EncodeBinariesInHexa=Codifică date binar în hexazecimal -IgnoreDuplicateRecords=Ignore errors of duplicate record (INSERT IGNORE) +IgnoreDuplicateRecords=Ignorați erorile de înregistrare duplicat (INSERT IGNORE) AutoDetectLang=Autodetect (browser limbă) FeatureDisabledInDemo=Funcţonalitate dezactivată în demo FeatureAvailableOnlyOnStable=Feature only available on official stable versions Rights=Permisiuni -BoxesDesc=Widgets are components showing some information that you can add to personalize some pages. You can choose between showing the widget or not by selecting target page and clicking 'Activate', or by clicking the dustbin to disable it. +BoxesDesc=Widgeturile sunt componente care prezintă unele informații pe care le puteți adăuga pentru a personaliza unele pagini. Aveți posibilitatea să alegeți între afișarea widget-ului sau nu, selectând pagina țintă și făcând clic pe "Activare" sau făcând clic pe coșul de gunoi pentru a-l dezactiva. OnlyActiveElementsAreShown=Numai elementele din module activate sunt afişate. -ModulesDesc=Dolibarr modules define which application/feature is enabled in software. Some application/modules require permissions you must grant to users, after activating it. Click on button on/off to enable a module/application. +ModulesDesc=Modulele Dolibarr definesc ce aplicație / caracteristică este activată în software. Unele aplicații / module necesită permisiuni pe care trebuie să le acordați utilizatorilor, după activarea acestora. Faceți clic pe butonul On / Off pentru a activa un modul / aplicație. ModulesMarketPlaceDesc=Puteți descărca mai multe module de pe site-uri externe de pe Internet ... ModulesDeployDesc=If permissions on your file system allows it, you can use this tool to deploy an external module. The module wil then be visible on the tab %s. -ModulesMarketPlaces=Find external modules... +ModulesMarketPlaces=Găsiți module externe ... GoModuleSetupArea=To deploy/install a new module, go onto the Module setup area at %s. DoliStoreDesc=DoliStore, market place oficial pentru module externe Dolibarr ERP / CRM -DoliPartnersDesc=List of companies providing custom developed modules or features (Note: anyone experienced in PHP programming can provide custom development for an open source project) +DoliPartnersDesc=Lista companiilor care oferă module sau caracteristici dezvoltate personalizate (Notă: oricine are experiență în programarea PHP poate oferi dezvoltare personalizată pentru un proiect open source) WebSiteDesc=Site-uri web de referință pentru a găsi mai multe module ... URL=Link -BoxesAvailable=Widgets available -BoxesActivated=Widgets activated +BoxesAvailable=Widgeturi disponibile +BoxesActivated=Widgeturile activate ActivateOn=Activaţi pe ActiveOn=Activat pe SourceFile=Fişier sursă @@ -212,9 +212,9 @@ Passwords=Parolele DoNotStoreClearPassword=Nu stoca parole în mod clar în baza de date MainDbPasswordFileConfEncrypted=Baza de date parola criptat în conf.php InstrucToEncodePass=Pentru a fi parola codificată în dosarul conf.php, înlocuiţi linia
$dolibarr_main_db_pass="...";
by
$dolibarr_main_db_pass="crypted:%s"; -InstrucToClearPass=To have password decoded (clear) into the conf.php file, replace the line
$dolibarr_main_db_pass="crypted:...";
by
$dolibarr_main_db_pass="%s"; +InstrucToClearPass=Pentru a avea o parolă decodificată în fișierul conf.php , înlocuiți linia
$dolibarr_main_db_pass = "cripted:...";
cu
$ dolibarr_main_db_pass = "%s";
ProtectAndEncryptPdfFiles=Protecţie a generat pdf (nu recommandd, pauzele de masă PDF Generation) -ProtectAndEncryptPdfFilesDesc=Protection of a PDF document keeps it available to read and print with any PDF browser. However, editing and copying is not possible anymore. Note that using this feature makes building of a global merged PDFs not working. +ProtectAndEncryptPdfFilesDesc=Protecția unui document PDF îi permite să fie citit și imprimat cu orice browser PDF. Cu toate acestea, editarea și copierea nu mai sunt posibile. Rețineți că utilizarea acestei funcții face nefunctională construirea unui fișier PDF global . Feature=Funcţionalitate DolibarrLicense=Licenţa Developpers=Dezvoltatori / colaboratori @@ -225,7 +225,7 @@ OfficialDemo=Dolibarr demo online OfficialMarketPlace=Oficial loc pe piaţă pentru modulelor externe / addons OfficialWebHostingService=Referinţă Servicii de web hosting (Cloud hosting) ReferencedPreferredPartners=Parteneri preferati -OtherResources=Other resources +OtherResources=Alte resurse ExternalResources=External resources SocialNetworks=Social Networks ForDocumentationSeeWiki=Pentru utilizator sau developer documentaţia (doc, FAQs ...),
aruncăm o privire la Dolibarr Wiki:
%s @@ -270,7 +270,7 @@ FeatureNotAvailableOnLinux=Caracteristicã nu sunt disponibile pe Unix, cum ar f SubmitTranslation=Dacă traducerea este incompletă sau găsiți erori, puteți corecta prin editarea fișierului în directorul langs/%s și trimite schimbările la www.transifex.com/dolibarr-association/dolibarr/ SubmitTranslationENUS=If translation for this language is not complete or you find errors, you can correct this by editing files into directory langs/%s and submit modified files on dolibarr.org/forum or for developers on github.com/Dolibarr/dolibarr. ModuleSetup=Configurare Modul -ModulesSetup=Modules/Application setup +ModulesSetup=Configurare Module / Aplicație ModuleFamilyBase=Sistem ModuleFamilyCrm=Clientul Ressource Management (CRM) ModuleFamilySrm=Supplier Relation Management (SRM) @@ -287,20 +287,20 @@ ModuleFamilyInterface=Interfaces with external systems MenuHandlers=Manager Meniu MenuAdmin=Editor Meniu DoNotUseInProduction=Nu utilizaţi în producţie -ThisIsProcessToFollow=This is steps to process: -ThisIsAlternativeProcessToFollow=This is an alternative setup to process manually: +ThisIsProcessToFollow=Acestia sunt pasii proiectului: +ThisIsAlternativeProcessToFollow=Aceasta este o configurare alternativă de procesare manuală: StepNb=Pasul %s FindPackageFromWebSite=Găsiţi un pachet care ofera facilitate dorit (de exemplu, pe site-ul web %s). -DownloadPackageFromWebSite=Download package (for example from official web site %s). -UnpackPackageInDolibarrRoot=Unpack the packaged files into server directory dedicated to Dolibarr: %s +DownloadPackageFromWebSite=Descărcați pachetul (de exemplu de pe site-ul web oficial %s). +UnpackPackageInDolibarrRoot=Despachetați fișierele arhivate în directorul server dedicat Dolibarr: %s UnpackPackageInModulesRoot=To deploy/install an external module, unpack the packaged files into the server directory dedicated to modules: %s -SetupIsReadyForUse=Module deployment is finished. You must however enable and setup the module in your application by going on the page to setup modules: %s. -NotExistsDirect=The alternative root directory is not defined to an existing directory.
-InfDirAlt=Since version 3, it is possible to define an alternative root directory. This allows you to store, into a dedicated directory, plug-ins and custom templates.
Just create a directory at the root of Dolibarr (eg: custom).
-InfDirExample=
Then declare it in the file conf.php
$dolibarr_main_url_root_alt='http://myserver/custom'
$dolibarr_main_document_root_alt='/path/of/dolibarr/htdocs/custom'
If these lines are commented with "#", to enable them, just uncomment by removing the "#" character. +SetupIsReadyForUse=Implementarea modulului a fost terminată. Cu toate acestea, trebuie să activați și să configurați modulul în aplicație, accesând pagina pentru configurarea modulelor: %s . +NotExistsDirect=Directorul rădăcină alternativ nu este atribuit unui director existent.
+InfDirAlt=De la versiunea 3, este posibil să se definească un director rădăcină alternativ. Acest lucru vă permite să stocați, într-un director dedicat, plug-in-uri și șabloane personalizate.
Doar creați un director in rădăcina Dolibarr (de exemplu: personalizat).
+InfDirExample=
Apoi declarați în fișierul conf.php
$dolibarr_main_url_root_alt='http://myserver/personalizat'
\n$dolibarr_main_document_root_alt'/path/of/ dolibarr/htdocs/personalizat'
Dacă aceste linii sunt comentate cu"#", pentru a le activa, trebuie doar să scoateti comentariul prin eliminarea caracterului "# ". YouCanSubmitFile=La acest pas, puteți trimite pachetul utilizand acest instrument: Selectați modulul fișier CurrentVersion=Dolibarr versiunea curentă -CallUpdatePage=Go to the page that updates the database structure and data: %s. +CallUpdatePage=Accesați pagina care actualizează structura și datele bazei de date: %s. LastStableVersion=Ultima versiune stabilă LastActivationDate=Latest activation date LastActivationAuthor=Latest activation author @@ -329,7 +329,7 @@ UseACacheDelay= Întârziere pentru caching de export de răspuns în câteva se DisableLinkToHelpCenter=Ascundere link-ul "Aveţi nevoie de ajutor sau sprijin" de la pagina de login DisableLinkToHelp=Ascunde link-ul Ajutor Online "%s" AddCRIfTooLong=Nu exista un ambalaj, aşa că, dacă este linia de documente pe pagină, pentru că prea mult timp, trebuie să adăugaţi-vă revine transportului în textarea. -ConfirmPurge=Are you sure you want to execute this purge?
This will delete definitely all your data files with no way to restore them (ECM files, attached files...). +ConfirmPurge=Sigur doriți să executați această curatare?
Aceasta va șterge definitiv toate fișierele de date, fără a le putea restabili (fișiere ECM, fișiere atașate ...). MinLength=Lungimea minimă LanguageFilesCachedIntoShmopSharedMemory=Fişierele .lang încărcate în memorie partajata ExamplesWithCurrentSetup=Exemple cu care rulează curent setup @@ -364,7 +364,7 @@ UrlGenerationParameters=Parametrii pentru a asigura URL-uri SecurityTokenIsUnique=Utilizaţi un unic parametru securekey pentru fiecare URL EnterRefToBuildUrl=Introduceţi de referinţă pentru %s obiect GetSecuredUrl=Obţineţi URL-ul calculat -ButtonHideUnauthorized=Hide buttons to non admin users for unauthorized actions instead of showing greyed disabled buttons +ButtonHideUnauthorized=Ascundeți butoanele pentru utilizatorii care nu sunt administratori pentru acțiuni neautorizate, în loc să apară butoane dezactivate în culoarea gri. OldVATRates=Vechea rată TVA NewVATRates=Noua rată TVA PriceBaseTypeToChange=Modifică la prețuri cu valoarea de referință de bază definit pe @@ -375,18 +375,18 @@ Int=Întreg Float=Float DateAndTime=Data şi ora Unique=Unic -Boolean=Boolean (one checkbox) +Boolean=Boolean (o casetă de selectare) ExtrafieldPhone = Telefon ExtrafieldPrice = Preţ ExtrafieldMail = Email ExtrafieldUrl = Url ExtrafieldSelect = Select Listă ExtrafieldSelectList = Select din tabel -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Separator (nu un câmp) ExtrafieldPassword=Parolă -ExtrafieldRadio=Radio buttons (on choice only) -ExtrafieldCheckBox=Checkboxes -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldRadio=Butoane radio (numai la alegere) +ExtrafieldCheckBox=Casetele de selectare +ExtrafieldCheckBoxFromList=Căsuțele de selectare din tabel ExtrafieldLink=Link către un obiect ComputedFormula=Computed field ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' @@ -396,9 +396,9 @@ ExtrafieldParamHelpradio=Lista de parametri trebuie să fie de tip cheie, valoa ExtrafieldParamHelpsellist=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list:
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelpchkbxlst=Parameters list comes from a table
Syntax : table_name:label_field:id_field::filter
Example : c_typent:libelle:id::filter

filter can be a simple test (eg active=1) to display only active value
You can also use $ID$ in filter witch is the current id of current object
To do a SELECT in filter use $SEL$
if you want to filter on extrafields use syntax extra.fieldcode=... (where field code is the code of extrafield)

In order to have the list depending on another complementary attribute list :
c_typent:libelle:id:options_parent_list_code|parent_column:filter

In order to have the list depending on another list:
c_typent:libelle:id:parent_list_code|parent_column:filter ExtrafieldParamHelplink=Parameters must be ObjectName:Classpath
Syntax : ObjectName:Classpath
Example : Societe:societe/class/societe.class.php -LibraryToBuildPDF=Library used for PDF generation +LibraryToBuildPDF=Bibliotecă utilizată pentru generarea PDF-urilor WarningUsingFPDF=Atenție: conf.php contine Directiva dolibarr_pdf_force_fpdf = 1. Acest lucru înseamnă că utilizați biblioteca FPDF pentru a genera fișiere PDF. Această bibliotecă este vechi și nu suportă o mulțime de caracteristici (Unicode, transparența imagine, cu litere chirilice, limbi arabe și asiatice, ...), astfel încât este posibil să apară erori în timpul generație PDF.
Pentru a rezolva acest lucru și au un suport complet de generare PDF, vă rugăm să descărcați biblioteca TCPDF , atunci comentariu sau elimina linia $ dolibarr_pdf_force_fpdf = 1, și se adaugă în schimb $ dolibarr_lib_TCPDF_PATH = 'path_to_TCPDF_dir' -LocalTaxDesc=Some countries apply 2 or 3 taxes on each invoice line. If this is the case, choose type for second and third tax and its rate. Possible type are:
1 : local tax apply on products and services without vat (localtax is calculated on amount without tax)
2 : local tax apply on products and services including vat (localtax is calculated on amount + main tax)
3 : local tax apply on products without vat (localtax is calculated on amount without tax)
4 : local tax apply on products including vat (localtax is calculated on amount + main vat)
5 : local tax apply on services without vat (localtax is calculated on amount without tax)
6 : local tax apply on services including vat (localtax is calculated on amount + tax) +LocalTaxDesc=Unele țări aplică 2 sau 3 taxe pe fiecare linie de facturare. Dacă este cazul, alegeți tipul pentru al doilea și al treilea impozit și rata sa. Tipul posibil sunt: ​​
1: taxa locală se aplică produselor și serviciilor fără TVA (taxa locala se calculează pe valoare fără taxă)
2: taxa locală se aplică produselor și serviciilor, inclusiv TVA (taxa locala se calculează în funcție de valoare+ taxa principala )
3: taxa locală se aplică produselor fără TVA (taxa locala se calculează în funcție de valoare fără taxa)
4: taxa locală se aplică produselor care includ tva (taxa locala se calculează în funcție de valoare+ tva principală)
5: taxa locala se aplică serviciilor fără TVA (taxa locala se calculează pe valoarea fără taxă)
6: taxa locală se aplică serviciilor, inclusiv TVA (taxa locala se calculează pe valoare+ taxă) SMS=SMS LinkToTestClickToDial=Introduceți un număr de telefon pentru a afișa un link de test ClickToDial Url pentru utilizatorul%s RefreshPhoneLink=Refresh link @@ -410,10 +410,10 @@ ValueOverwrittenByUserSetup=Atenție, această valoare poate fi suprascrisă de ExternalModule=Modul extern - instalat în directorul %s BarcodeInitForThirdparties=Init cod de bare în masă pentru terţi BarcodeInitForProductsOrServices=Init sau reset cod de bare în masă pentru produse şi servicii -CurrentlyNWithoutBarCode=Currently, you have %s record on %s %s without barcode defined. +CurrentlyNWithoutBarCode=În prezent, aveti %s inregistrari pe %s %s fără cod de bare definit. InitEmptyBarCode=Valoare inițializare pentru următoarele %s înregistrări goale EraseAllCurrentBarCode=Ștergeți toate valorile curente de coduri de bare -ConfirmEraseAllCurrentBarCode=Are you sure you want to erase all current barcode values? +ConfirmEraseAllCurrentBarCode=Sigur doriți să ștergeți toate valorile actuale ale codurilor de bare? AllBarcodeReset=Toate valorile codurilor de bare au fost eliminate NoBarcodeNumberingTemplateDefined=Niciun model numeric de cod de bare disponibil in configurarea modulului cod de bare EnableFileCache=Enable file cache @@ -446,7 +446,7 @@ FreeLegalTextOnExpenseReports=Free legal text on expense reports WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Utilizatori & grupuri -Module0Desc=Users / Employees and Groups management +Module0Desc=Managementul Utilizatorilor/Angajaților și Grupurilor Module1Name=Terţi Module1Desc=Managementul terţilor (societăţi, particulari) şi contactelor Module2Name=Comercial @@ -466,7 +466,7 @@ Module30Desc=Facturi şi note de credit "de management pentru clienţi. Facturi Module40Name=Furnizori Module40Desc=Managementul Furnizorilor şi aprovizionării (comenzi si facturi) Module42Name=Loguri -Module42Desc=Logging facilities (file, syslog, ...). Such logs are for technical/debug purposes. +Module42Desc=Facilități de înregistrare (fișier, syslog, ...). Aceste jurnale sunt pentru scopuri tehnice / de depanare. Module49Name=Editori Module49Desc=Managementul Editorilor Module50Name=Produse @@ -521,8 +521,8 @@ Module410Name=Webcalendar Module410Desc=Webcalendar integrare Module500Name=Cheltuieli speciale Module500Desc=Managementul cheltuielilor speciale (impozite, taxe sociale sau fiscale, dividende) -Module510Name=Payment of employee wages -Module510Desc=Record and follow payment of your employee wages +Module510Name=Plata salariilor angajaților +Module510Desc=Înregistrați și urmați plata salariilor angajaților dvs. Module520Name=Credit Module520Desc=Gestionarea creditelor Module600Name=Notificări @@ -532,13 +532,13 @@ Module700Desc=MAnagementul Donaţiilor Module770Name=Rapoarte Cheltuieli Module770Desc=Managementul rapoartelor de cheltuieli (transport, masă, ...) Module1120Name=Ofertă Comercială Furnizor -Module1120Desc=Request supplier commercial proposal and prices +Module1120Desc=Cereti oferta comerciala si preturile furnizorului Module1200Name=Mantis Module1200Desc=Mantis integrare Module1400Name=Contabilitate -Module1400Desc=Management Contabilitate de gestiune (partidă dublă) +Module1400Desc=Accounting management (double entries) Module1520Name=Generare Document -Module1520Desc=Mass mail document generation +Module1520Desc=Generarea de documente de poștă electronică in masa Module1780Name=Tag-uri / Categorii Module1780Desc=Creați etichete/categorii (produse, clienti, furnizori, contacte sau membri) Module2000Name=Fckeditor @@ -546,9 +546,9 @@ Module2000Desc=Permite modificarea unor zone din text folosind un editor avansat Module2200Name=Preţuri dinamice Module2200Desc=Activați utilizarea expresii matematice pentru prețuri Module2300Name=Cron -Module2300Desc=Scheduled job management -Module2400Name=Events/Agenda -Module2400Desc=Follow done and upcoming events. Let application logs automatic events for tracking purposes or record manual events or rendez-vous. +Module2300Desc=Gestionarea planificată a activitatilor +Module2400Name=Evenimente / Agenda +Module2400Desc=Urmăriți evenimentele efectuate și cele viitoare. Lăsați aplicațiile să înregistreze evenimente automate în scopuri de urmărire sau să înregistreze manual evenimente sau întâlniri. Module2500Name=Electronic Content Management Module2500Desc=Salvaţi şi partaja documente Module2600Name=API/Web services (SOAP server) @@ -563,7 +563,7 @@ Module2800Desc=FTP Client Module2900Name=GeoIPMaxmind Module2900Desc=GeoIP conversii Maxmind capacităţile Module3100Name=Skype -Module3100Desc=Add a Skype button into users / third parties / contacts / members cards +Module3100Desc=Adăugați un buton Skype la utilizatori / terțe parti / contacte / membri Module3200Name=Non Reversible Logs Module3200Desc=Activate log of some business events into a non reversible log. Events are archived in real-time. The log is a table of chained event that can be then read and exported. This module may be mandatory for some countries. Module4000Name=HRM @@ -577,7 +577,7 @@ Module10000Desc=Create public websites with a WYSIWG editor. Just setup your web Module20000Name=Managementul cererilor de concedii Module20000Desc=Declară şi urmăreşte cererile de concedii ale angajaţilor Module39000Name=Lot Produs -Module39000Desc=Lot or serial number, eat-by and sell-by date management on products +Module39000Desc=Lotul sau numărul de serie, consumul de date manuale și vânzări pe produse Module50000Name=Paybox Module50000Desc=Modul de a oferi o pagina de plata online prin card de credit cu Paybox Module50100Name=Punct de Vanzare @@ -585,11 +585,11 @@ Module50100Desc=Modulul Punct de vânzări (POS) Module50200Name=PayPal Module50200Desc=Modul de a oferi o pagina de plata online prin card de credit cu Paypal Module50400Name=Contabilitate (avansat) -Module50400Desc=Management Contabilitate (partidă dublă) +Module50400Desc=Accounting management (double entries) Module54000Name=Print lP IPrinter Module54000Desc=Imprimare directă (fără a deschide documentele) folosind interfața CUPS IPP (imprimanta trebuie să fie vizibilă de pe server și CUPS trebuie să fie instalat pe server). -Module55000Name=Poll, Survey or Vote -Module55000Desc=Module to make online polls, surveys or votes (like Doodle, Studs, Rdvz, ...) +Module55000Name=Sondaj, supraveghere sau vot +Module55000Desc=Modulul pentru a face sondaje online, supravegheri sau voturi (cum ar fi Doodle, Studs, Rdvz, ...) Module59000Name=Marje Module59000Desc=Modul management marje Module60000Name=Comisioane @@ -615,8 +615,8 @@ Permission32=Creare / Modificare produse / servicii Permission34=Ştergere produse / servicii Permission36=Exportul de produse / servicii Permission38=Exportul de produse -Permission41=Read projects and tasks (shared project and projects i'm contact for). Can also enter time consumed, for me or my hierarchy, on assigned tasks (Timesheet) -Permission42=Create/modify projects (shared project and projects i'm contact for). Can also create tasks and assign users to project and tasks +Permission41=Citeste proiectele și sarcinile (proiect comun și proiecte pentru care eu sunt persoana de contact). Se poate intoduce, de asemenea, timpul consumat cu sarcinile atribuite (Timesheet), pentru mine sau pentru ierarhia mea, +Permission42=Creați / modificați proiecte (proiecte și proiecte comune pentru care sunt persoana de contact). De asemenea, se pot crea sarcini și atribui proiecte și sarcini utilizatorilor. Permission44=Ştergere proiecte Permission45=Export proiecte Permission61=Citeşte intervenţii @@ -663,17 +663,17 @@ Permission142=Creați/modificați toate proiectele și sarcinile (inclusiv proie Permission144=Şterge toate proiectele și sarcinile (inclusiv proiectele private pentru care nu sunt persoană de contact) Permission146=Citiţi cu furnizorii Permission147=Citeşte stats -Permission151=Read direct debit payment orders +Permission151=Citiți comenzile de plată prin debitare directă Permission152=Creați/modificați un ordin de plată prin debit direct Permission153=Trimite/transmite ordine de plată prin debit direct -Permission154=Record Credits/Rejects of direct debit payment orders +Permission154=Inregistreaza creditarea / respingerea ordinelor de plată prin debitare directă Permission161=Citește contracte / abonamente Permission162=Creare / modificare contracte / abonamente Permission163=Activează un serviciu / abonament al unui contract Permission164=Dezactivarea unui serviciu / abonament al unui contract Permission165=Ștergeți contracte / abonamente Permission167=Export Contracte -Permission171=Read trips and expenses (yours and your subordinates) +Permission171=Citiți delegatiile și cheltuielile (ale dvs. și ale subordonaților dvs.) Permission172=Creare / Modificare ordin de deplasare şi cheltuieli Permission173=Ştergere ordin de deplasare şi cheltuieli Permission174=Citeşte toate ordinele de deplasare şi cheltuieli @@ -719,7 +719,7 @@ PermissionAdvanced253=Crearea / modificarea utilizatorii interni / externi şi p Permission254=Ştergere sau dezactiva alţi utilizatori Permission255=Creaţi / modifica propriile informaţii de utilizator Permission256=Modificare propria parolă -Permission262=Extend access to all third parties (not only third parties that user is a sale representative).
Not effective for external users (always limited to themselves for proposals, orders, invoices, contracts, etc).
Not effective for projects (only rules on project permissions, visibility and assignement matters). +Permission262=Extindeți accesul la toate părțile terțe (nu numai terțelor părți al căror utilizator este un reprezentant de vânzari).
Nu este utilizabil pentru utilizatorii externi (doar pentru uz intern, pentru propuneri, ordine, facturi, contracte etc.).
Nu este utilizabil pentru proiecte (doar reguli privind permisiunile de proiect, aspecte de vizibilitate și de atribuire). Permission271=Citeşte CA Permission272=Citeşte facturi Permission273=Problema facturilor @@ -758,8 +758,8 @@ Permission517=Export salarii Permission520=Citeşte credite Permission522=Creare/modificare credite Permission524=Şterge credite -Permission525=Access loan calculator -Permission527=Export loans +Permission525=Accesați calculatorul de credite +Permission527=Imprumuturi externe Permission531=Citeşte servicii Permission532=Creare / Modificare servicii Permission534=Ştergere servicii @@ -768,10 +768,10 @@ Permission538=Exportul de servicii Permission701=Citiţi donaţii Permission702=Creare / Modificare donaţii Permission703=Ştergere donaţii -Permission771=Read expense reports (yours and your subordinates) +Permission771=Citiți rapoartele de cheltuieli (ale dvs. și ale subordonaților dvs.) Permission772=Creare / Modificare Raport Cheltuieli Permission773=Șterge rapoarte de cheltuieli -Permission774=Read all expense reports (even for user not subordinates) +Permission774=Citiți toate rapoartele de cheltuieli (chiar și pentru utilizatorii care nu sunt subordonații dvs.) Permission775=Aproba rapoarte de cheltuieli Permission776=Plăste rapoarte de cheltuieli Permission779=Export Rapoarte Cheltuieli @@ -792,7 +792,7 @@ Permission1185=Aprobaţi furnizor ordinelor Permission1186=Comanda furnizor ordinelor Permission1187=Confirmarea de primire de furnizor de comenzi Permission1188=Inchide furnizor ordinelor -Permission1190=Approve (second approval) supplier orders +Permission1190=Aprobați comenzile furnizorilor (a doua aprobare) Permission1201=Obţineţi rezultatul unui export Permission1202=Creare / Modificare de export Permission1231=Citeşte facturile furnizor @@ -866,9 +866,9 @@ DictionaryStaff=Efectiv DictionaryAvailability=Livrare întârziere DictionaryOrderMethods=Metode de comandă DictionarySource=Originea ofertei / comenzi -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Grupuri conturi contabile DictionaryAccountancysystem=Model pentru plan de conturi -DictionaryAccountancyJournal=Accounting journals +DictionaryAccountancyJournal=Jurnalele contabile DictionaryEMailTemplates=Șabloane e-mailuri DictionaryUnits=Unităţi DictionaryProspectStatus=Prospection status @@ -879,7 +879,7 @@ SetupNotSaved=Setup not saved BackToModuleList=Inapoi la lista de module BackToDictionaryList=Inapoi la lista de dicţionare VATManagement=TVA-ul de management -VATIsUsedDesc=By default when creating prospects, invoices, orders etc the VAT rate follows the active standard rule:
If the seller is not subjected to VAT, then VAT defaults to 0. End of rule.
If the (selling country= buying country), then the VAT by default equals the VAT of the product in the selling country. End of rule.
If seller and buyer are both in the European Community and goods are transport products (car, ship, plane), the default VAT is 0 ( The VAT should be paid by the buyer to the customoffice of his country and not to the seller). End of rule.
If seller and buyer are both in the European Community and the buyer is not a company, then the VAT by defaults to the VAT of the product sold. End of rule.
If seller and buyer are both in the European Community and the buyer is a company, then the VAT is 0 by default . End of rule.
In any othe case the proposed default is VAT=0. End of rule. +VATIsUsedDesc=În mod implicit, când se creează perspective, facturi, comenzi etc., rata TVA respectă regula standard activă:
Dacă vânzătorul nu este supus TVA, valoarea TVA este implicit 0. Sfârșitul regulii.
Dacă (țara de vânzare = tara de cumpărare), atunci TVA-ul este implicit egal cu TVA-ul produsului în țara de vânzare. Sfârșitul regulii.
Dacă vânzătorul și cumpărătorul sunt ambele în Comunitatea Europeană, iar bunurile sunt produse de transport (mașină, navă, avion), TVA-ul implicit este 0 (TVA trebuie plătit de cumpărător la vama țării sale și nu la vânzător). Sfârșitul regulii.
Dacă vânzătorul și cumpărătorul sunt ambele în Comunitatea Europeană, iar cumpărătorul nu este o companie, atunci TVA-ul este implicit TVA-ul produsului vândut. Sfârșitul regulii.
Dacă vânzătorul și cumpărătorul sunt ambii în Comunitatea Europeană, iar cumpărătorul este o companie, atunci TVA este 0 în mod prestabilit. Sfârșitul regulii.
În orice alt caz, valoarea implicită propusă este TVA = 0. Sfârșitul regulii. VATIsNotUsedDesc=În mod implicit propuse de TVA este 0, care poate fi utilizat pentru cazuri ca asociaţiile, persoane fizice ou firme mici. VATIsUsedExampleFR=În Franţa, aceasta înseamnă societăţilor sau organizaţiilor care au un real sistemului fiscal (Simplified reale sau normale de real). Un sistem în care TVA-ul este declarat. VATIsNotUsedExampleFR=În Franţa, înseamnă că asociaţiile care nu sunt declarate de TVA sau de companii, organizaţii sau profesiilor liberale care au ales de micro-întreprindere sistemului fiscal (TVA în franciză) şi a plătit o franciza de TVA, fără nici o declaraţie de TVA. Această opţiune va afişa de referinţă "nu se aplică TVA - art-293B din CGI" pe facturi. @@ -923,7 +923,7 @@ Offset=Decalaj AlwaysActive=Întotdeauna activ Upgrade=Upgrade MenuUpgrade=Upgrade / Extinde -AddExtensionThemeModuleOrOther=Deploy/install external module +AddExtensionThemeModuleOrOther=Implementați / instalați modulul extern WebServer=Server Web DocumentRootServer=Server Web este directorul rădăcină DataRootServer=Directorul de fişiere de date @@ -947,7 +947,7 @@ Host=Server DriverType=Driver de tip SummarySystem=Sistemul de informaţii rezumat SummaryConst=Lista tuturor Dolibarr setarea parametrilor -MenuCompanySetup=Company/Organisation +MenuCompanySetup=Companie / Organizație DefaultMenuManager= Manager meniul Standard DefaultMenuSmartphoneManager=Manager meniul Smartphone Skin=Tema vizuală @@ -963,8 +963,8 @@ PermanentLeftSearchForm=Formular de căutare permanent in meniu din stânga DefaultLanguage=Limba folosita implicit (cod limba) EnableMultilangInterface=Activaţi multilingv interfaţă EnableShowLogo=Afişare logo în meniul stânga -CompanyInfo=Company/organisation information -CompanyIds=Company/organisation identities +CompanyInfo=Informații despre companie / organizație +CompanyIds=Identitatea companiei / organizației CompanyName=Nume CompanyAddress=Adresă CompanyZip=Zip @@ -997,9 +997,9 @@ Delays_MAIN_DELAY_MEMBERS=Toleranta întârziere (în zile) înainte de alertă Delays_MAIN_DELAY_CHEQUES_TO_DEPOSIT=Toleranta întârziere (în zile) înainte de alertă pentru cecuri de depozit pentru a face Delays_MAIN_DELAY_EXPENSEREPORTS=Tolerance delay (in days) before alert for expense reports to approve SetupDescription1=\nZona de configurare este pentru parametrii de configurare inițiali înainte de a începe să se utilizeze Dolibarr. -SetupDescription2=The two mandatory setup steps are the first two in the setup menu on the left: %s setup page and %s setup page : -SetupDescription3=Parameters in menu %s -> %s are required because defined data are used on Dolibarr screens and to customize the default behavior of the software (for country-related features for example). -SetupDescription4=Parameters in menu %s -> %s are required because Dolibarr ERP/CRM is a collection of several modules/applications, all more or less independent. New features will be added to menus for every module you will activate. +SetupDescription2=Cele două etape obligatorii de configurare sunt primele două din meniul de configurare din stânga: pagina de configurare %s și pagina de configurare %s: +SetupDescription3=Parametrii din meniul %s -> %s sunt necesari deoarece datele definite sunt folosite pe ecranele Dolibarr și pentru a personaliza comportamentul implicit al software-ului (de exemplu, pentru caracteristicile legate de țară). +SetupDescription4=Parametrii din meniul %s -> %s sunt necesari, deoarece Dolibarr ERP / CRM este o colecție de mai multe module / aplicații, toate mai mult sau mai puțin independente. Noile caracteristici vor fi adăugate în meniuri pentru fiecare modul pe care îl veți activa. SetupDescription5=Alte meniul intrări gestiona parametri opţionali. LogEvents=Audit de securitate evenimente Audit=Audit @@ -1015,7 +1015,7 @@ BrowserOS=Browser OS ListOfSecurityEvents=Lista de evenimente Dolibarr de securitate SecurityEventsPurged=Evenimentelor de securitate epurate LogEventDesc=Puteţi activa jurnalul de evenimente de securitate Dolibarr aici. Administratorii pot vedea apoi conţinutul său prin meniul System Tools - Audit. Atenţie, această caracteristică poate consuma o cantitate mare de date în baza de date. -AreaForAdminOnly=Setup parameters can be set by administrator users only. +AreaForAdminOnly=Parametrii de configurare pot fi setați numai de utilizatorii administratori . SystemInfoDesc=Sistemul de informare este diverse informaţii tehnice ai citit doar în modul şi vizibil doar pentru administratori. SystemAreaForAdminOnly=Această zonă este disponibil numai pentru utilizatorii de administrator. Nici una din Dolibarr permisiunile pot reduce această limită. CompanyFundationDesc=Editați pe această pagină toate informațiile cunoscute ale companiei sau fundației pe care trebuie să o gestionați (Pentru aceasta, faceți clic pe "Modificare" sau "Salvare", butonul din partea de jos a paginii) @@ -1031,15 +1031,15 @@ TriggerDisabledAsModuleDisabled=Declanşările în acest dosar sunt dezactivate TriggerAlwaysActive=Declanşările în acest dosar sunt întotdeauna activ, ce sunt activate Dolibarr module. TriggerActiveAsModuleActive=Declanşările în acest dosar sunt active ca modul %s este activată. GeneratedPasswordDesc=Definiţi aici regulă care doriţi să-l utilizaţi pentru a genera o parolă nouă, dacă vă întrebaţi de a avea auto generate parola -DictionaryDesc=Insert all reference data. You can add your values to the default. -ConstDesc=This page allows you to edit all other parameters not available in previous pages. These are mostly reserved parameters for developers or advanced troubleshooting. For a list of options check here. +DictionaryDesc=Introduceți toate datele de referință. Puteți adăuga valorile dvs. la valorile implicite. +ConstDesc=Această pagină vă permite să editați toți ceilalți parametri care nu sunt disponibili în paginile anterioare. Acestia sunt în principal parametrii rezervați pentru dezvoltatori sau soluții avansate de depanare. Pentru o listă de opțiuni verificați aici . MiscellaneousDesc=Toți ceilalți parametri legați de securitate sunt definiți aici. LimitsSetup=Limitele / Precizie LimitsDesc=Puteţi defini limitele, preciziile şi optimizarile utilizate de către Dolibarr aici MAIN_MAX_DECIMALS_UNIT=Zecimale max pentru preturi unitare MAIN_MAX_DECIMALS_TOT=Zecimale max pentru preturi totale MAIN_MAX_DECIMALS_SHOWN=Zecimale max pentru preţurile afişate pe ecran (Adăugaţi ... după acest număr, dacă doriţi să vezi ... când numărul este trunchiat atunci când sunt afişate pe ecran) -MAIN_ROUNDING_RULE_TOT=Step of rounding range (for countries where rounding is done on something else than base 10. For example, put 0.05 if rounding is done by 0.05 steps) +MAIN_ROUNDING_RULE_TOT=Pasul de interval de rotunjire (pentru țările în care rotunjirea se face in altceva decât baza 10. De exemplu, puneți 0,05 dacă rotunjirea se face in trepte de 0,05) UnitPriceOfProduct=preţul unitar net al unui produs TotalPriceAfterRounding=Pret total (net / TVA / inclusiv fiscale) după rotunjirea ParameterActiveForNextInputOnly=Parametru de eficient pentru următoarea intrare numai @@ -1047,14 +1047,14 @@ NoEventOrNoAuditSetup=Nici un eveniment de securitate a fost înregistrată înc NoEventFoundWithCriteria=Nici un eveniment de securitate a fost găsit pentru o astfel de criterii de căutare. SeeLocalSendMailSetup=Vedeţi-vă locale sendmail setup BackupDesc=Pentru a face o copie de siguranţă completă de Dolibarr, trebuie să: -BackupDesc2=Save content of documents directory (%s) that contains all uploaded and generated files (So it includes all dump files generated at step 1). -BackupDesc3=Save content of your database (%s) into a dump file. For this, you can use following assistant. +BackupDesc2=Salvați conținutul directorului de documente ( %s) care conține toate fișierele încărcate și generate (Deci include toate fișierele dump generate la pasul 1). +BackupDesc3=Salvați conținutul bazei dvs. de date ( %s) într-un fișier dump. Pentru aceasta, puteți utiliza următorul asistent. BackupDescX=Arhivat directorul trebuie să fie depozitate într-un loc sigur. BackupDescY=Generate de fişier de imagine memorie trebuie să fie depozitate într-un loc sigur. BackupPHPWarning=Backupul nu poate fi garantat cu această metodă. Preferă una precedent RestoreDesc=Pentru a restabili o Dolibarr de rezervă, trebuie să: -RestoreDesc2=Restore archive file (zip file for example) of documents directory to extract tree of files in documents directory of a new Dolibarr installation or into this current documents directoy (%s). -RestoreDesc3=Restore the data, from a backup dump file, into the database of the new Dolibarr installation or into the database of this current installation (%s). Warning, once restore is finished, you must use a login/password, that existed when backup was made, to connect again. To restore a backup database into this current installation, you can follow this assistant. +RestoreDesc2=Restaurați fișierul arhivă (de exemplu fișierul zip) din directorul de documente pentru a extrage arborele fișierelor in directorul de documente al unei noi instalări Dolibarr sau în acest director curent de documente ( %s). +RestoreDesc3=Restaurați datele, dintr-un fișier de memorie de rezervă, în baza de date a noii instalări Dolibarr sau în baza de date a instalării curente ( %s). Avertisment, odată ce restaurarea este terminată, trebuie să utilizați o autentificare/parolă, care a existat atunci când a fost efectuată copia de rezervă, pentru a vă conecta din nou. Pentru a restaura o bază de date de rezervă în această instalare curentă, puteți urmari acest asistent. RestoreMySQL=MySQL import ForcedToByAModule= Această regulă este obligat la %s către un activat modulul PreviousDumpFiles=Disponibil dump de rezervă fişiere de baze de date @@ -1079,8 +1079,8 @@ MAIN_PROXY_PASS=Parolă pentru a utiliza server proxy DefineHereComplementaryAttributes=Definiţi aici toate atributele, care nu sunt deja disponibile în mod implicit, şi că doriţi să fie sprijinite pentru %s. ExtraFields=Atribute complementare ExtraFieldsLines=Atribute complementare (linii) -ExtraFieldsSupplierOrdersLines=Complementary attributes (order lines) -ExtraFieldsSupplierInvoicesLines=Complementary attributes (invoice lines) +ExtraFieldsSupplierOrdersLines=Atribute complementare (linii de comandă) +ExtraFieldsSupplierInvoicesLines=Atribute complementare (linii de facturare) ExtraFieldsThirdParties=Atribute complementare ( terţi) ExtraFieldsContacts=Atribute complementare (contact/addresă ) ExtraFieldsMember=Atribute complementare (membri) @@ -1099,7 +1099,7 @@ SendmailOptionMayHurtBuggedMTA=Functionalitate pentru a trimite mesaje utilizân TranslationSetup=Configurarea traducerii TranslationKeySearch=Search a translation key or string TranslationOverwriteKey=Overwrite a translation string -TranslationDesc=How to set displayed application language :
* Systemwide: menu Home - Setup - Display
* Per user: User display setup tab of user card (click on username at the top of the screen). +TranslationDesc=Cum se configureaza limbajul de aplicație afișat:
* Sistem: meniu Acasă - Configurare - Afișare
Per utilizator: Configurare afișare utilizator Tab-ul cardului utilizatorului (apasati pe numele de utilizator din partea de sus a ecranului). TranslationOverwriteDesc=You can also override strings filling the following table. Choose your language from "%s" dropdown, insert the translation key string into "%s" and your new translation into "%s" TranslationOverwriteDesc2=You can use the other tab to help you know translation key to use TranslationString=Translation string @@ -1108,11 +1108,11 @@ WarningAtLeastKeyOrTranslationRequired=A search criteria is required at least fo NewTranslationStringToShow=New translation string to show OriginalValueWas=The original translation is overwritten. Original value was:

%s TransKeyWithoutOriginalValue=You forced a new translation for the translation key '%s' that does not exists in any language files -TotalNumberOfActivatedModules=Activated application/modules: %s / %s +TotalNumberOfActivatedModules=Aplicație / module activate: %s / %s YouMustEnableOneModule=Trebuie activat cel puţin 1 modul ClassNotFoundIntoPathWarning=Clasa %s negăsită în calea PHP YesInSummer=Da în vară -OnlyFollowingModulesAreOpenedToExternalUsers=Note, only following modules are opened to external users (whatever are permission of such users) and only if permissions were granted: +OnlyFollowingModulesAreOpenedToExternalUsers=Rețineți, numai următoarele module sunt deschise utilizatorilor externi (indiferent de permisiunea unor astfel de utilizatori) și numai dacă au fost acordate permisiuni: SuhosinSessionEncrypt=Stocarea sesiune criptată prin Suhosin ConditionIsCurrently=Condiția este momentan %s YouUseBestDriver=Utilizaţi driverul %s care este cel mai bun driver disponibil acum. @@ -1377,7 +1377,7 @@ ViewProductDescInFormAbility=Vizualizare descrierile de produs, în forme (de al MergePropalProductCard=Activate in product/service Attached Files tab an option to merge product PDF document to proposal PDF azur if product/service is in the proposal ViewProductDescInThirdpartyLanguageAbility=Vizualizarea descrierii produsului in limba terței părți. UseSearchToSelectProductTooltip=De asemenea, dacă aveți un număr mare produse (> 100 000), puteți crește viteza prin setarea constantei COMPANY_DONOTSEARCH_ANYWHERE la 1 la Setup->Other. Căutarea va fi limitată la începutul șirului. -UseSearchToSelectProduct=Wait you press a key before loading content of product combo list (This may increase performance if you have a large number of products, but it is less convenient) +UseSearchToSelectProduct=Așteptați să apăsați o cheie înainte de a încărca conținutul listei combo de produse (aceasta poate crește performanța dacă aveți un număr mare de produse, dar este mai puțin convenabil) SetDefaultBarcodeTypeProducts=Implicit tip de cod de bare de a utiliza pentru produse SetDefaultBarcodeTypeThirdParties=Implicit tip de cod de bare de a utiliza pentru terţi UseUnits=Define a unit of measure for Quantity during order, proposal or invoice lines edition @@ -1411,7 +1411,7 @@ BarcodeDescC39=Coduri de bare de tip C39 BarcodeDescC128=Coduri de bare de tip C128 BarcodeDescDATAMATRIX=Barcode of type Datamatrix BarcodeDescQRCODE=Barcode of type QR code -GenbarcodeLocation=Bar code generation command line tool (used by internal engine for some bar code types). Must be compatible with "genbarcode".
For example: /usr/local/bin/genbarcode +GenbarcodeLocation=Instrument pentru linia de comandă de generare de coduri de bare (utilizat de motorul intern pentru anumite tipuri de coduri de bare). Trebuie să fie compatibil cu "genbarcode".
De exemplu: / usr / local / bin / genbarcode BarcodeInternalEngine=Motor intern BarCodeNumberManager=Manager pentru autodefinire numere coduri bare ##### Prelevements ##### @@ -1435,7 +1435,7 @@ SendingsSetup=Trimiterea de modul de configurare SendingsReceiptModel=Trimiterea primirea model SendingsNumberingModules=Trimiteri de numerotare module SendingsAbility=Foi de transport suport pentru livrările către clienți. -NoNeedForDeliveryReceipts=In most cases, shipping sheets are used both as sheets for customer deliveries (list of products to send) and sheets that is received and signed by customer. So product deliveries receipts is a duplicated feature and is rarely activated. +NoNeedForDeliveryReceipts=În majoritatea cazurilor, foile de expediere sunt utilizate atât ca foi pentru livrările clienților (lista de produse care trebuie trimise), cât și pentru foile care sunt primite și semnate de către client. Prin urmare, chitanțele livrărilor de produse reprezintă o caracteristică dublă și sunt rareori activate. FreeLegalTextOnShippings=Text liber pe livrari ##### Deliveries ##### DeliveryOrderNumberingModules=Produse livrările primirea modul de numerotare @@ -1450,7 +1450,7 @@ FCKeditorForProduct=WYSIWIG crearea / editie a produselor / serviciilor "descrie FCKeditorForProductDetails=WYSIWIG creare / editare detalii linii de produse pentru toate entităţile (propuneri, comenzilor, facturilor, etc ..) Atenţie: Folosind această opţiune nu este recommanda deoarece astfel pot apare probleme la caracterele speciale şi paginare atunci când se creaza fişiere PDF. FCKeditorForMailing= WYSIWIG crearea / ediţie de mailing FCKeditorForUserSignature=Creare/editare WYSIWIG a semnăturii utilizatorilor -FCKeditorForMail=WYSIWIG creation/edition for all mail (except Tools->eMailing) +FCKeditorForMail=Crearea / editarea WYSIWIG pentru toate e-mailurile (cu excepția Tools-> eMailing) ##### OSCommerce 1 ##### OSCommerceErrorConnectOkButWrongDatabase=Conexiunii la baza de date a reusit, dar nu arata a fi o bază de date OSCommerce (cheie %s nu a fost găsit în tabelul %s). OSCommerceTestOk=Conectarea la server ' %s' pe bază de date " %s" cu utilizatorul " %s" de succes. @@ -1502,7 +1502,7 @@ SupposedToBeInvoiceDate=Data facturii utilizat Buy=Cumpăra Sell=Vinde InvoiceDateUsed=Data facturii utilizat -YourCompanyDoesNotUseVAT=Your company has been defined to not use VAT (Home - Setup - Company/Organisation), so there is no VAT options to setup. +YourCompanyDoesNotUseVAT=Compania dvs. a fost definită să nu utilizeze TVA (Acasa- Configurare- Scoeitate/ Organizatie), astfel încât nu există opțiuni de TVA pentru configurare. AccountancyCode=Codul de Contabilitate AccountancyCodeSell=Cont vânzare. cod AccountancyCodeBuy=Cont cumpărare. cod @@ -1521,7 +1521,7 @@ AGENDA_SHOW_LINKED_OBJECT=Show linked object into agenda view ##### Clicktodial ##### ClickToDialSetup=Click pentru a Dial modul setup ClickToDialUrlDesc=Url called when a click on phone picto is done. In URL, you can use tags
__PHONETO__ that will be replaced with the phone number of person to call
__PHONEFROM__ that will be replaced with phone number of calling person (yours)
__LOGIN__ that will be replaced with clicktodial login (defined on user card)
__PASS__ that will be replaced with clicktodial password (defined on user card). -ClickToDialDesc=This module allows to make phone numbers clickable. A click on this icon will call make your phone to call the phone number. This can be used to call a call center system from Dolibarr that can call the phone number on a SIP system for example. +ClickToDialDesc=Acest modul permite efectuarea de clicuri pentru numere de telefon. Dacă faceți clic pe această pictogramă, telefonul dvs. va apela numărul de telefon. Acest lucru poate fi folosit pentru a apela un sistem de call center de la Dolibarr care poate apela numărul de telefon dintr-un sistem SIP, de exemplu. ClickToDialUseTelLink=Use just a link "tel:" on phone numbers ClickToDialUseTelLinkDesc=Use this method if your users have a softphone or a software interface installed on same computer than the browser, and called when you click on a link in your browser that start with "tel:". If you need a full server solution (no need of local software installation), you must set this to "No" and fill next field. ##### Point Of Sales (CashDesk) ##### @@ -1531,10 +1531,10 @@ CashDeskThirdPartyForSell=Terț generic implicit utilizat pentru vânzări CashDeskBankAccountForSell=Case de cont pentru a utiliza pentru vinde CashDeskBankAccountForCheque= Cont pentru a utiliza pentru a primi plăţi prin cec CashDeskBankAccountForCB= Cont pentru a folosi pentru a primi plăţi în numerar de carduri de credit -CashDeskDoNotDecreaseStock=Disable stock decrease when a sell is done from Point of Sale (if "no", stock decrease is done for each sell done from POS, whatever is option set into module Stock). +CashDeskDoNotDecreaseStock=Dezactivați scăderea stocului atunci când o vânzare se face de la punctul de vânzare (dacă "nu", scaderea stocului se face pentru fiecare vânzare făcută din POS, indiferent de opțiunea stabilită în modulul Stoc). CashDeskIdWareHouse=Forţează și limitează depozitul să folosească scăderea stocului StockDecreaseForPointOfSaleDisabled=Scădere stoc de la Point of Sale dezactivat -StockDecreaseForPointOfSaleDisabledbyBatch=Stock decrease in POS is not compatible with lot management +StockDecreaseForPointOfSaleDisabledbyBatch=Scăderea stocului în POS nu este compatibilă cu gestionarea lotului CashDeskYouDidNotDisableStockDecease=Nu ai dezactivați scăderea de stocului atunci când se face o vinzare de la Point Of Sale. Astfel, este necesar un depozit. ##### Bookmark ##### BookmarkSetup=Bookmark modul de configurare @@ -1569,7 +1569,7 @@ SuppliersSetup=Furnizorul modul de configurare SuppliersCommandModel=Finalizarea şablon de ordine furnizorul (logo. ..) SuppliersInvoiceModel=Model complet de factura furnizorului (logo. ..) SuppliersInvoiceNumberingModel=Modele numerotaţie al facturilor furnizori -IfSetToYesDontForgetPermission=If set to yes, don't forget to provide permissions to groups or users allowed for the second approval +IfSetToYesDontForgetPermission=Dacă este setat la da, nu uitați să furnizați permisiuni grupurilor sau utilizatorilor cărora li se permite a doua aprobare ##### GeoIPMaxmind ##### GeoIPMaxmindSetup=GeoIP Maxmind modul de configurare PathToGeoIPMaxmindCountryDataFile=Calea către fișierul care conține Maxmind tranlatarea IP la țară.
Examples:
/usr/local/share/GeoIP/GeoIP.dat
/usr/share/GeoIP/GeoIP.dat @@ -1588,11 +1588,11 @@ UseSearchToSelectProject=Use autocompletion fields to choose project (instead of ##### Fiscal Year ##### AccountingPeriods=Accounting periods AccountingPeriodCard=Accounting period -NewFiscalYear=New accounting period -OpenFiscalYear=Open accounting period -CloseFiscalYear=Close accounting period -DeleteFiscalYear=Delete accounting period -ConfirmDeleteFiscalYear=Are you sure to delete this accounting period? +NewFiscalYear=Perioadă contabilă nouă  +OpenFiscalYear=Deschide perioada contabilă +CloseFiscalYear=Închide perioada contabila +DeleteFiscalYear=Ștergeți perioada contabilă +ConfirmDeleteFiscalYear=Sigur doriți să ștergeți această perioadă contabila? ShowFiscalYear=Show accounting period AlwaysEditable=Permite a fi editat mereu MAIN_APPLICATION_TITLE=Forțează numele vizibil al aplicare (avertisment: setarea propriul nume aici poate duce la eliminarea facilitaţii de conectare automată atunci când se utilizează aplicația mobilă DoliDroid) @@ -1606,19 +1606,19 @@ SortOrder=Ordine sortare Format=Format TypePaymentDesc=0:Tip plata Client, 1:Tip plata Furnizor, 2:Ambele tipuri plata Client sau Furnizor IncludePath=Include calea (definita in variabila %s) -ExpenseReportsSetup=Setup of module Expense Reports -TemplatePDFExpenseReports=Document templates to generate expense report document -NoModueToManageStockIncrease=No module able to manage automatic stock increase has been activated. Stock increase will be done on manual input only. -YouMayFindNotificationsFeaturesIntoModuleNotification=You may find options for EMail notifications by enabling and configuring the module "Notification". +ExpenseReportsSetup=Configurarea modului rapoartelor de cheltuieli +TemplatePDFExpenseReports=Șabloane de documente pentru a genera un document de raportare a cheltuielilor +NoModueToManageStockIncrease=Nu a fost activat niciun modul capabil să gestioneze creșterea stocului automat. Creșterea stocurilor se va face doar prin introducere manuală. +YouMayFindNotificationsFeaturesIntoModuleNotification=Puteți găsi opțiuni pentru notificările EMail activând și configurand modulul "Notificare". ListOfNotificationsPerUser=List of notifications per user* ListOfNotificationsPerUserOrContact=List of notifications per user* or per contact** -ListOfFixedNotifications=List of fixed notifications +ListOfFixedNotifications=Lista notificărilor fixe GoOntoUserCardToAddMore=Go on the tab "Notifications" of a user to add or remove notifications for users -GoOntoContactCardToAddMore=Go on the tab "Notifications" of a third party to add or remove notifications for contacts/addresses +GoOntoContactCardToAddMore=Mergeți în fila "Notificări" a unei terțe părți pentru a adăuga sau elimina notificări pentru contacte / adrese Threshold=Prag -BackupDumpWizard=Wizard to build database backup dump file -SomethingMakeInstallFromWebNotPossible=Installation of external module is not possible from the web interface for the following reason: -SomethingMakeInstallFromWebNotPossible2=For this reason, process to upgrade described here is only manual steps a privileged user can do. +BackupDumpWizard=Expertul pentru a crea un fișier de bază de date de rezervă pentru baza de date +SomethingMakeInstallFromWebNotPossible=Instalarea modulului extern nu este posibilă din interfața web din următorul motiv: +SomethingMakeInstallFromWebNotPossible2=Din acest motiv, procesul de actualizare descris aici este doar un pas manual pe care îl poate face un utilizator privilegiat. InstallModuleFromWebHasBeenDisabledByFile=Install of external module from application has been disabled by your administrator. You must ask him to remove the file %s to allow this feature. ConfFileMustContainCustom=Installing or building an external module from application need to save the module files into directory %s. To have this directory processed by Dolibarr, you must setup your conf/conf.php to add the 2 directive lines:
$dolibarr_main_url_root_alt='/custom';
$dolibarr_main_document_root_alt='%s/custom'; HighlightLinesOnMouseHover=Highlight table lines when mouse move passes over diff --git a/htdocs/langs/ro_RO/agenda.lang b/htdocs/langs/ro_RO/agenda.lang index ca9487bff01..12ed2f0c42f 100644 --- a/htdocs/langs/ro_RO/agenda.lang +++ b/htdocs/langs/ro_RO/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID eveniment Actions=Evenimente Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agende LocalAgenda=Calendar intern ActionsOwnedBy=Evenimentul lui @@ -34,7 +35,7 @@ AgendaSetupOtherDesc= Această pagină permite configurarea unor opțiuni pentru AgendaExtSitesDesc=Această pagină vă permite să declaraţi sursele externe de calendare pentru a vedea evenimentele lor în agenda Dolibarr. ActionsEvents=Evenimente pentru care Dolibarr va crea o acţiune în agendă în mod automat ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created +NewCompanyToDolibarr=Terța parte %s a fost creată ContractValidatedInDolibarr=Contract %s validat PropalClosedSignedInDolibarr=Oferta %s semnată PropalClosedRefusedInDolibarr=Oferta %s refuzată @@ -47,14 +48,15 @@ InvoiceDeleteDolibarr=Factura %s ştearsă InvoicePaidInDolibarr=Factura %s schimbată la plată InvoiceCanceledInDolibarr=Factura %s anulată MemberValidatedInDolibarr=Membru %s validat -MemberResiliatedInDolibarr=Member %s terminated +MemberModifiedInDolibarr=Membrul %s modificat +MemberResiliatedInDolibarr=Membru %s terminat MemberDeletedInDolibarr=Membru %s şters MemberSubscriptionAddedInDolibarr=Înscrierea pentru membrul %s adăugat ShipmentValidatedInDolibarr=Livrarea %s validata -ShipmentClassifyClosedInDolibarr=Livrarea %s clasificată facturată -ShipmentUnClassifyCloseddInDolibarr=Livrarea %s clasificată redeschisa +ShipmentClassifyClosedInDolibarr=Expediere %s clasificată facturată +ShipmentUnClassifyCloseddInDolibarr=Expediere %s clasificată redeschisă ShipmentDeletedInDolibarr=Livrare %s ştearsă -OrderCreatedInDolibarr=Order %s created +OrderCreatedInDolibarr=Comanda %s a fost creată OrderValidatedInDolibarr=Comanda %s validată OrderDeliveredInDolibarr=Comanda livrată %s clasificată OrderCanceledInDolibarr=Comanda %s anulată @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervenţia %s trimisă prin e-mail ProposalDeleted=Ofertă ştearsă OrderDeleted=Comandă ştearsă InvoiceDeleted=Factură ştearsă +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Șabloane de documente pentru eveniment DateActionStart=Data începerii DateActionEnd=Data terminării AgendaUrlOptions1=Puteţi, de asemenea, să adăugaţi următorii parametri pentru filtrarea rezultatelor: -AgendaUrlOptions2=login=%s ​​pentru a limita exportul de acțiuni create de, sau atribuite utilizatorului%s. AgendaUrlOptions3=logind=%s ​​pentru a limita exportul de acțiuni deţinute de utilizatorul %s -AgendaUrlOptions4=logint=% s ​​pentru a limita exportul de acțiuni atribuite utilizatorului % s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID pentru a limita exportul de acțiuni asociate la proiectul PROJECT_ID. AgendaShowBirthdayEvents=Afişează ziua de naştere a contactelor AgendaHideBirthdayEvents=Ascunde ziua de naştere a contactelor @@ -102,7 +108,7 @@ MyAvailability=Disponibilitatea mea ActionType=Tip Eveniment DateActionBegin=Dată începere eveniment CloneAction=Clonează eveniment -ConfirmCloneEvent=Are you sure you want to clone the event %s? +ConfirmCloneEvent=Sigur doriți să clonați evenimentul %s? RepeatEvent=Repeta eveniment EveryWeek=Fiecare săptămână EveryMonth=Fiecare lună diff --git a/htdocs/langs/ro_RO/banks.lang b/htdocs/langs/ro_RO/banks.lang index ce964a1bb6a..c773d87f386 100644 --- a/htdocs/langs/ro_RO/banks.lang +++ b/htdocs/langs/ro_RO/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID-ul tranzacţiei BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,7 +75,7 @@ Conciliate=Deconteaza Conciliation=Conciliere ReconciliationLate=Reconciliation late IncludeClosedAccount=Includeţi conturile închise -OnlyOpenedAccount=Numai conturile deschise +OnlyOpenedAccount=Numai conturile deschise AccountToCredit=Cont de credit AccountToDebit=Cont de debit DisableConciliation=Dezactivaţi reconcilierea pentru acest cont @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Cec returnat si facturi redeschise BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ro_RO/bills.lang b/htdocs/langs/ro_RO/bills.lang index c06f5c0d0ff..e87b23754bf 100644 --- a/htdocs/langs/ro_RO/bills.lang +++ b/htdocs/langs/ro_RO/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Dezactivat pentru ca nu poate fi sters InvoiceStandard=Factură Standard InvoiceStandardAsk=Factură Standard InvoiceStandardDesc=Acest tip de factură este factura comună. -InvoiceDeposit=Factură De Avans -InvoiceDepositAsk=Factură De Avans -InvoiceDepositDesc=Acest tip de factură se face în cazul în care un avans a fost încasat. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Factură Proformă InvoiceProFormaAsk=Factură Proformă InvoiceProFormaDesc=Factura Proformă este o imagine a adevăratei facturi, dar nu are nici o valoare contabilă. @@ -115,7 +115,7 @@ BillStatus=Status Factura StatusOfGeneratedInvoices=Status factură generată BillStatusDraft=Schiţă (de validat) BillStatusPaid=Plătite -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Plătită ( gata pentru factura finală) BillStatusCanceled=Abandonate BillStatusValidated=Validate (de plată) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Platite (parţial) BillShortStatusDraft=Schiţă BillShortStatusPaid=Platite BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Prelucrate +BillShortStatusConverted=Plătite BillShortStatusCanceled=Abandonată BillShortStatusValidated=Validată BillShortStatusStarted=Începută @@ -198,12 +198,12 @@ ShowBill=Afisează factura ShowInvoice=Afisează factura ShowInvoiceReplace=Afisează factura de înlocuire ShowInvoiceAvoir=Afisează nota de credit -ShowInvoiceDeposit=Afisează factura de avans +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Afişează factura de situaţie ShowPayment=Afisează plata AlreadyPaid=Deja platite AlreadyPaidBack=Deja rambursată -AlreadyPaidNoCreditNotesNoDeposits=Deja plătite (fără note de credit şi avans) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandonată RemainderToPay=Rest de plată RemainderToTake=Rest de încasat @@ -270,10 +270,10 @@ RelativeDiscount=Discount relativ GlobalDiscount=Discount Global CreditNote=Nota de credit CreditNotes=Note de credit -Deposit=Avans -Deposits=Avansuri +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Reducere de la nota de credit %s -DiscountFromDeposit=Plăţi efectuate din factura de avans%s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Acest tip de credit poate fi utilizat pe factură înainte de validarea acesteia CreditNoteDepositUse=Factura trebuie validată pentru a utiliza acest tip de credite @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Nu se poate elimina plata deoarece există c ExpectedToPay=Plată prevăzută CantRemoveConciliatedPayment=Nu se poate şterge o plată reconciliată PayedByThisPayment=Achitat cu aceasta plată -ClosePaidInvoicesAutomatically=Clasează "Platită" toate facturile standard, de situatie sau de înlocuire în întregime platite. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Clasează "Platite" toate notele de credit rambursate în întregime ClosePaidContributionsAutomatically=Închide toate contribuţiile sociale sau fiscale plătite integral AllCompletelyPayedInvoiceWillBeClosed=Toate facturile cu rest de plată zero vor fi închise automat cu statusul "Plătită". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Intai se poate crea o factură standard si PDFCrabeDescription=Şablon PDF Factura Crabe . Un șablon factură complet (format recomandat) PDFCrevetteDescription=Model factură PDF Crevette. Un model complet pentru factura de situaţie TerreNumRefModelDesc1=Returnează numărul sub forma %syymm-nnnn pentru facturile standard și %syymm-nnnn pentru notele de credit unde yy este anul, mm este luna și nnnn este o secvenţă fără nici o pauză și fără revenire la 0 -MarsNumRefModelDesc1=Returnează numărul cu format %syymm-nnnn pentru facturi standard, %syymm-nnnn pentru facturi de înlocuire, %syymm-nnnn pentru facturi de avans si %syymm-nnnn pentru note de credit, unde yy este anul, mm este luna și nnnn este o secvenţă fără nici o pauză și fără revenire la 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=O factură începând cu $syymm există deja și nu este compatibilă cu acest model de numerotaţie. Ştergeţi sau redenumiți pentru a activa acest modul. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Responsabil urmarire factură client TypeContact_facture_external_BILLING=Contact facturare client diff --git a/htdocs/langs/ro_RO/bookmarks.lang b/htdocs/langs/ro_RO/bookmarks.lang index b8e1ff1870c..70f76865d1b 100644 --- a/htdocs/langs/ro_RO/bookmarks.lang +++ b/htdocs/langs/ro_RO/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Adăugaţi această pagină la bookmark-uri +AddThisPageToBookmarks=Adăugați pagina curentă în marcaje Bookmark=Bookmark Bookmarks=Bookmark-uri +ListOfBookmarks=Lista de semne de carte +EditBookmarks=Afișați / editați marcajele NewBookmark=Bookmark nou ShowBookmark=Arată bookmark OpenANewWindow=Deschide o fereastră nouă @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Fereastră nouă BookmarkTargetReplaceWindowShort=Fereastră curentă BookmarkTitle=Titlu bookmark UrlOrLink=URL -BehaviourOnClick=Comportament la click URL +BehaviourOnClick=Comportament atunci când este selectată o adresă URL de marcaj CreateBookmark=Creaţi bookmark SetHereATitleForLink=Setaţi un titlu pentru bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Folosiţi un URL http extern sau URL relativ diff --git a/htdocs/langs/ro_RO/boxes.lang b/htdocs/langs/ro_RO/boxes.lang index c042b97d48f..c645bbcbbb6 100644 --- a/htdocs/langs/ro_RO/boxes.lang +++ b/htdocs/langs/ro_RO/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss informaţii BoxLastProducts=Ultimele %s produse/ servicii BoxProductsAlertStock=Alere Stoc pentru produse @@ -82,3 +83,4 @@ ForCustomersOrders=Comenzi clienți ForProposals=Oferte LastXMonthRolling=Rulaj ultimele %s luni ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ro_RO/cashdesk.lang b/htdocs/langs/ro_RO/cashdesk.lang index b7b47fbe5c1..261d107c4ea 100644 --- a/htdocs/langs/ro_RO/cashdesk.lang +++ b/htdocs/langs/ro_RO/cashdesk.lang @@ -14,7 +14,7 @@ ShoppingCart=Cosul de cumparaturi NewSell=Vânzare nouă AddThisArticle=Adauga acest articol RestartSelling=Du-te inapoi la vânzare -SellFinished=Sale complete +SellFinished=Vanzare completa PrintTicket=Print bon NoProductFound=Niciun articol gasit ProductFound=produs găsit @@ -25,7 +25,7 @@ Difference=Diferenţă TotalTicket=Total bon NoVAT=Fără TVA pentru această vânzare Change=Primit în plus -BankToPay=Comision cont +BankToPay=Contul de plată ShowCompany=Afişare companie ShowStock=Arată depozit DeleteArticle=Faceţi clic pentru a elimina acest articol diff --git a/htdocs/langs/ro_RO/categories.lang b/htdocs/langs/ro_RO/categories.lang index 3a23e2fc559..6ae1795fb36 100644 --- a/htdocs/langs/ro_RO/categories.lang +++ b/htdocs/langs/ro_RO/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag / Categorie Rubriques=Tag-uri / Categorii +RubriquesTransactions=Etichete / Categorii de tranzacții categories=tag-uri / categorii NoCategoryYet=Niciun tag/categorie de acest tip creată In=În @@ -14,7 +15,7 @@ CustomersCategoriesArea=Tag-uri / categorii Clienții MembersCategoriesArea=Tag-uri / categorii Membri ContactsCategoriesArea=Tag-uri / Categorii Contacte AccountsCategoriesArea=Tag-uri / Categorii Contabilitate -ProjectsCategoriesArea=Projects tags/categories area +ProjectsCategoriesArea=Zona etichetelor / categoriilor de proiecte SubCats=Subcategorii CatList=Lista Tag-uri / Categorii NewCategory=Tag / categorie noua @@ -34,17 +35,17 @@ CompanyIsInSuppliersCategories=Acest partener este asociat cu următoarele tag-u MemberIsInCategories=Acest menbru este asociat cu următoarele tag-uri/ categorii membri ContactIsInCategories=Acest contact este asociat cu următoarele tag-uri/ categorii contacte ProductHasNoCategory=Acest produs / serviciu nu este în niciun tag/ categorie -CompanyHasNoCategory=This third party is not in any tags/categories +CompanyHasNoCategory=Această terță parte nu se află în nicio etichetă / categorie MemberHasNoCategory=Acest membru nu este asociat cu tag-uri/ categorii ContactHasNoCategory=Acest contact nu este în niciun tag/ categorie -ProjectHasNoCategory=This project is not in any tags/categories +ProjectHasNoCategory=Acest proiect nu se află în nicio etichetă / categorie ClassifyInCategory=Adauga la tag / categorie NotCategorized=Fără tag / categorie CategoryExistsAtSameLevel=Această categorie există deja cu această referinţă ContentsVisibleByAllShort=Conţinut vizibil de către toţi ContentsNotVisibleByAllShort=Conţinutul nu va fi vizibil pentru toţi DeleteCategory=Ştergere tag / categorie -ConfirmDeleteCategory=Sigur se şterge acest tag/ categorie? +ConfirmDeleteCategory=Sigur doriți să ștergeți această etichetă / categorie? NoCategoriesDefined=Niciun tag / categorie definită SuppliersCategoryShort=Tag / categorie Furnizori CustomersCategoryShort=Tag / categorie Clienții @@ -58,14 +59,14 @@ ProductsCategoriesShort=Tag-uri / categorii Produse MembersCategoriesShort=Tag-uri / categorii Membri ContactCategoriesShort=Tag-uri / Categorii Contacte AccountsCategoriesShort=Tag-uri / Categorii Contabilitate -ProjectsCategoriesShort=Projects tags/categories +ProjectsCategoriesShort=Etichete / categorii de proiecte ThisCategoryHasNoProduct=Această categorie nu conţine nici un produs. ThisCategoryHasNoSupplier=Această categorie nu conţine nici un furnizor. ThisCategoryHasNoCustomer=Această categorie nu conţine nici un client. ThisCategoryHasNoMember=Această categorie nu conţine nici un membru. ThisCategoryHasNoContact=Această categorie nu conţine nici un contact ThisCategoryHasNoAccount=Această categorie nu conţine nici un cont -ThisCategoryHasNoProject=This category does not contain any project. +ThisCategoryHasNoProject=Această categorie nu conține niciun proiect. CategId=Id Tag / Categorie CatSupList=Lista Tag-uri / Categorii furnizori CatCusList=Lista Categorii/ taguri clienţi / prospecte @@ -75,7 +76,7 @@ CatContactList=Lista Tag-uri / Categorii Contacte CatSupLinks=Legături dintre furnizori si taguri/categorii CatCusLinks=Legături dintre clienti/prospecti si taguri/categorii CatProdLinks=Legături dintre produse/servicii si ftaguri/categorii -CatProJectLinks=Links between projects and tags/categories +CatProJectLinks=Legături între proiecte și etichete / categorii DeleteFromCat=Elimina din tag-uri / categoriii ExtraFieldsCategories=Atribute complementare CategoriesSetup=Configurare Tag-uri / categorii diff --git a/htdocs/langs/ro_RO/commercial.lang b/htdocs/langs/ro_RO/commercial.lang index ea620ecd806..8c5ef7332bb 100644 --- a/htdocs/langs/ro_RO/commercial.lang +++ b/htdocs/langs/ro_RO/commercial.lang @@ -10,7 +10,7 @@ NewAction=Eveniment nou AddAction=Creare eveniment AddAnAction=Crează un eveniment AddActionRendezVous=Crează un eveniment întălnire -ConfirmDeleteAction=Are you sure you want to delete this event? +ConfirmDeleteAction=Sigur doriți să ștergeți acest eveniment? CardAction=Fişă Eveniment ActionOnCompany=Societate afiliată ActionOnContact=Contact afiliat @@ -18,7 +18,8 @@ TaskRDVWith=Întâlnire cu %s ShowTask=Arată sarcină ShowAction=Arată acţiune ActionsReport=Raport Evenimente -ThirdPartiesOfSaleRepresentative=Partener cu reprezentanţi vînzări +ThirdPartiesOfSaleRepresentative=Terțe părți cu reprezentant de vânzări +SaleRepresentativesOfThirdParty=Reprezentanți de vânzări ai unei terțe părți SalesRepresentative=Reprezentant vînzări SalesRepresentatives=Reprezentanţi vânzări SalesRepresentativeFollowUp=Reprezentant vânzări (follow-up) @@ -28,7 +29,7 @@ ShowCustomer=Afişează client ShowProspect=Afişează prospect ListOfProspects=Lista prospecţi ListOfCustomers=Lista clienţi -LastDoneTasks=Latest %s completed actions +LastDoneTasks=Ultimele acțiuni finalizate %s LastActionsToDo=Cele mai vechi %s acţiuni nefinalizate DoneAndToDoActions=Lista evenimentelor finalizate sau de realizat DoneActions=Lista evenimentelor finalizate diff --git a/htdocs/langs/ro_RO/companies.lang b/htdocs/langs/ro_RO/companies.lang index d442e21181f..94021b220d0 100644 --- a/htdocs/langs/ro_RO/companies.lang +++ b/htdocs/langs/ro_RO/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Particular nou NewCompany=Societate nouă (prospect, client, furnizor) NewThirdParty=Terţ nou (prospect, client, furnizor) CreateDolibarrThirdPartySupplier=Creare terţ ( furnizor) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Creare terţ CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospecte IdThirdParty=ID Terţ @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Clienţi ThirdPartyCustomersWithIdProf12=Clienţii cu %s sau %s ThirdPartySuppliers=Furnizori ThirdPartyType=Tip de terţi -Company/Fundation=Societate / Fundaţie Individual=Persoană privată ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Societatea-mamă @@ -78,10 +77,10 @@ VATIsNotUsed=Nu utilizează TVA-ul CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Terţii nu sunt clienţi sau furnizori, nu sunt obiecte asociate disponibile PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Oferte +OverAllOrders=Comenzi +OverAllInvoices=Facturi +OverAllSupplierProposals=Cereri Preţ ##### Local Taxes ##### LocalTax1IsUsed=Utilizează taxa secundă LocalTax1IsUsedES= RE este utilizat @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane cod) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof. Id-ul 1 (OGRN) ProfId2RU=Prof. Id-ul 2 (DCI) ProfId3RU=Prof. ID 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Discount Relativ CustomerAbsoluteDiscountShort=Discount Absolut CompanyHasRelativeDiscount=Acest client are un discount de %s%% CompanyHasNoRelativeDiscount=Acest client nu are nici un discount în mod implicit -CompanyHasAbsoluteDiscount=Acest client are încă discounturi de credite sau depozite pentru %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Acest client are încă note de credit pentru %s %s CompanyHasNoAbsoluteDiscount=Acest client nu are nici o reducere de credit disponibil CustomerAbsoluteDiscountAllUsers=Discount Absolut în curs (acordate pentru toţi utilizatorii) @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Codul este liber fîrî verificare. Acest cod poate fi mo ManagingDirectors=Nume Manager(i) nume (CEO, director, preşedinte...) MergeOriginThirdparty=Duplica terț (terț dorit să-l ștergeți) MergeThirdparties=Imbina terti -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Tertii au fost imbinati SaleRepresentativeLogin=Autentificare reprezentant vânzări SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/ro_RO/contracts.lang b/htdocs/langs/ro_RO/contracts.lang index 8841589e23c..7410e875c4a 100644 --- a/htdocs/langs/ro_RO/contracts.lang +++ b/htdocs/langs/ro_RO/contracts.lang @@ -32,13 +32,13 @@ NewContractSubscription=Contract / Abonament nou AddContract=Crează contract DeleteAContract=Şterge contract CloseAContract=Închide contract -ConfirmDeleteAContract=Sigur doriţi să ştergeţi acest contract şi toate serviciile sale? -ConfirmValidateContract=Sigur doriţi să validaţi acest contract %s? -ConfirmCloseContract=Acest lucru se va închide toate serviciile (active sau nu). Sigur vreţi să închideţi acest contract? -ConfirmCloseService=Sigur vreţi să închideţi acest serviciu cu data %s ? +ConfirmDeleteAContract=Sigur doriți să ștergeți acest contract și toate serviciile acestuia? +ConfirmValidateContract=Sigur doriți să validați acest contract sub numele %s ? +ConfirmCloseContract=Aceasta va închide toate serviciile (active sau nu). Sigur doriți să încheiați acest contract? +ConfirmCloseService=Sigur doriți să închideți acest serviciu cu data %s? ValidateAContract=Validează contract ActivateService=Activeazăserviciul -ConfirmActivateService=Sigur doriţi să activaţi acest serviciu cu data%s ? +ConfirmActivateService=Sigur doriți să activați acest serviciu cu data %s? RefContract=Referinţă contract DateContract=Data Contract DateServiceActivate=Data activare Serviciu @@ -69,10 +69,10 @@ DraftContracts=Contracte schiţă CloseRefusedBecauseOneServiceActive=Contractul nu poate fi închis după cum există cel puţin un serviciu deschis pe ea CloseAllContracts=Închide toateliniile de contracte DeleteContractLine=Şterge o linie de contract -ConfirmDeleteContractLine=Sigur doriţi să ştergeţi această linie de contract ? +ConfirmDeleteContractLine=Sigur doriți să ștergeți această linie de contract? MoveToAnotherContract=Mută serviciu într-un alt contract. ConfirmMoveToAnotherContract=Am ales nou contract țintă și confirm mutarea acestui serviciu în acest contract. -ConfirmMoveToAnotherContractQuestion=Alegeţi, contractul existent (cu acelaşi terţ), în care doriţi să mutaţi acest serviciu ? +ConfirmMoveToAnotherContractQuestion=Alegeți în ce contract existent (de la aceeași terță parte) doriți să mutați acest serviciu? PaymentRenewContractId=Reînnoiţi linie contract (numărul %s) ExpiredSince=Data expirării NoExpiredServices=Nu expirate servicii active @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Această listă conține numai serviciile pentru t StandardContractsTemplate=Model standard Contracte ContactNameAndSignature=Pentru %s nume şi semnătura: OnlyLinesWithTypeServiceAreUsed=Numai liniile cu tipul "Service" va fi clonat. +CloneContract=Clonare contract +ConfirmCloneContract=Sunteți sigur că doriți să clonați contractul %s ? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Reprezentant vanzari de semnare a contractului diff --git a/htdocs/langs/ro_RO/deliveries.lang b/htdocs/langs/ro_RO/deliveries.lang index 57d31918719..685c01a06d3 100644 --- a/htdocs/langs/ro_RO/deliveries.lang +++ b/htdocs/langs/ro_RO/deliveries.lang @@ -1,16 +1,16 @@ # Dolibarr language file - Source file is en_US - deliveries Delivery=Livrare DeliveryRef=Ref Livrare -DeliveryCard=Receipt card +DeliveryCard=Chitanta card DeliveryOrder=Ordin de livrare DeliveryDate=Data de livrare -CreateDeliveryOrder=Generate delivery receipt +CreateDeliveryOrder=Generați chitanța de livrare DeliveryStateSaved=Stare livrare salvata SetDeliveryDate=Setaţi data de expediere ValidateDeliveryReceipt=Validare recepţie livrare -ValidateDeliveryReceiptConfirm=Are you sure you want to validate this delivery receipt? +ValidateDeliveryReceiptConfirm=Sigur doriți să validați această chitanță de livrare? DeleteDeliveryReceipt=Ştergeţi recepţie livrare -DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt %s? +DeleteDeliveryReceiptConfirm=Sigur doriți să ștergeți chitanța de livrare %s ? DeliveryMethod=Metoda de livrare TrackingNumber=Număr de urmărire DeliveryNotValidated=Livrare nevalidată diff --git a/htdocs/langs/ro_RO/ecm.lang b/htdocs/langs/ro_RO/ecm.lang index d0a756e8667..abbb54efbfb 100644 --- a/htdocs/langs/ro_RO/ecm.lang +++ b/htdocs/langs/ro_RO/ecm.lang @@ -32,11 +32,11 @@ ECMDocsByProducts=Documente legate de produse ECMDocsByProjects=Documente legate de proiecte ECMDocsByUsers=Documente legate de utilizatori ECMDocsByInterventions=Documente legate de interventii -ECMDocsByExpenseReports=Documents linked to expense reports +ECMDocsByExpenseReports=Documente legate de rapoartele de cheltuieli ECMNoDirectoryYet=Niciun directorul creat ShowECMSection=Arată director DeleteSection=Elimină director -ConfirmDeleteSection=Can you confirm you want to delete the directory %s? +ConfirmDeleteSection=Puteți confirma că doriți să ștergeți directorul %s? ECMDirectoryForFiles=Director relativ pentru fişierele CannotRemoveDirectoryContainsFiles=Ştergerea nu este posibilă deoarece conţine câteva fişiere ECMFileManager=Manager Fişiere diff --git a/htdocs/langs/ro_RO/exports.lang b/htdocs/langs/ro_RO/exports.lang index 1af949b865f..f97b305a462 100644 --- a/htdocs/langs/ro_RO/exports.lang +++ b/htdocs/langs/ro_RO/exports.lang @@ -110,13 +110,24 @@ Enclosure=Închidere SpecialCode=Cod special ExportStringFilter=%% permite înlocuirea unuia sau mai multor caractere in text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtrează după un an/lună/zi
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtrează peste un rang de ani/luni/zile
> YYYY, > YYYYMM, > YYYYMMDD : filtrează pe toţi următorii ani/luni/zile
< YYYY, < YYYYMM, < YYYYMMDD : filtrează pe toşi precedenţii ani/luni/zile -ExportNumericFilter='NNNNN' filtrează după o valoare
'NNNNN+NNNNN' filtrează peste un rang de valori
'>NNNNN' filtrează după valori mai mici
'>NNNNN' filtrează după valori mai mari +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Dacă doriți să filtrați pe anumite valori, doar introduceţi valorile aici. FilteredFields=Câmpuri filtrate FilteredFieldsValues=Valoare pentru filtru FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/ro_RO/help.lang b/htdocs/langs/ro_RO/help.lang index b086dcd017f..5e9a579d4a9 100644 --- a/htdocs/langs/ro_RO/help.lang +++ b/htdocs/langs/ro_RO/help.lang @@ -11,7 +11,7 @@ TypeOfSupport=Sursa suport TypeSupportCommunauty=Comunitate (gratuit) TypeSupportCommercial=Comercial TypeOfHelp=Tip -NeedHelpCenter=Need help or support? +NeedHelpCenter=Aveți nevoie de ajutor sau sprijin? Efficiency=Eficienţa TypeHelpOnly=Numai Ajutor TypeHelpDev=Ajutor + Dezvoltare diff --git a/htdocs/langs/ro_RO/holiday.lang b/htdocs/langs/ro_RO/holiday.lang index 175ba09177d..12138405a2b 100644 --- a/htdocs/langs/ro_RO/holiday.lang +++ b/htdocs/langs/ro_RO/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Şters RefuseCP=Refuzat ValidatorCP=Aprobator ListeCP=Listă cereri de concedii -ReviewedByCP=Va fi aprobat de +ReviewedByCP=Will be approved by DescCP=Descriere SendRequestCP=Crează o cerere de concediu DelayToRequestCP=Cererile pentru concediu trebuiesc făcute cu cel puţin %s zi(le) înainte. diff --git a/htdocs/langs/ro_RO/hrm.lang b/htdocs/langs/ro_RO/hrm.lang index 0ea5732e09c..ee3feae040c 100644 --- a/htdocs/langs/ro_RO/hrm.lang +++ b/htdocs/langs/ro_RO/hrm.lang @@ -5,7 +5,7 @@ Establishments=Sedii Establishment=Sediu NewEstablishment=Sediu nou DeleteEstablishment=Sterge Sediu -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? +ConfirmDeleteEstablishment=Sunteți sigur că doriti ștergerea acestei unităti? OpenEtablishment=Deschide Sediu CloseEtablishment=Inchide Sediu # Dictionary diff --git a/htdocs/langs/ro_RO/install.lang b/htdocs/langs/ro_RO/install.lang index 172636436ab..c41ed97922b 100644 --- a/htdocs/langs/ro_RO/install.lang +++ b/htdocs/langs/ro_RO/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Puteţi utiliza expertul de configurare de la Dolibarr Dol KeepDefaultValuesDeb=Puteţi utiliza expertul de configurare Dolibarr dintr-un pachet Linux (Ubuntu, Debian, Fedora ...), astfel încât valorile propuse aici sunt deja optimizate. Numai parola proprietarul bazei de date pentru a crea trebuie să fie completate. Modificarea alţi parametri numai dacă ştii ce faci. KeepDefaultValuesMamp=Puteţi utiliza expertul de configurare de la Dolibarr DoliMamp, astfel încât valorile propuse aici sunt deja optimizate. Schimbaţi-le numai daca stii ce faci. KeepDefaultValuesProxmox=Puteţi utiliza expertul de configurare Dolibarr de la un aparat Proxmox virtuale, astfel încât valorile propuse aici sunt deja optimizate. Schimbaţi-le numai daca stii ce faci. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ro_RO/interventions.lang b/htdocs/langs/ro_RO/interventions.lang index 3db8f07d951..072d76aa556 100644 --- a/htdocs/langs/ro_RO/interventions.lang +++ b/htdocs/langs/ro_RO/interventions.lang @@ -14,19 +14,19 @@ DeleteIntervention=Şterge intervenţie ValidateIntervention=Validează intervenţie ModifyIntervention=Modifică intervenţie DeleteInterventionLine=Şterge intervenţie -CloneIntervention=Clone intervention -ConfirmDeleteIntervention=Are you sure you want to delete this intervention? -ConfirmValidateIntervention=Are you sure you want to validate this intervention under name %s? -ConfirmModifyIntervention=Are you sure you want to modify this intervention? -ConfirmDeleteInterventionLine=Are you sure you want to delete this intervention line? -ConfirmCloneIntervention=Are you sure you want to clone this intervention? +CloneIntervention=Clonarea intervenției +ConfirmDeleteIntervention=Sigur doriți să ștergeți această intervenție? +ConfirmValidateIntervention=Sigur doriți să validați această intervenție sub numele %s ? +ConfirmModifyIntervention=Sigur doriți să modificați această intervenție? +ConfirmDeleteInterventionLine=Sigur doriți să ștergeți această linie de intervenție? +ConfirmCloneIntervention=Sigur doriți să clonați această intervenție? NameAndSignatureOfInternalContact=Nume şi semnătură celui ce a intervenit: NameAndSignatureOfExternalContact=Nume şi semnătură client: DocumentModelStandard=Model standard document de intervenţii InterventionCardsAndInterventionLines=Intervenţii şi linii ale intervenţiilor InterventionClassifyBilled=Clasează Facturat InterventionClassifyUnBilled=Clasează Nefacturat -InterventionClassifyDone=Classify "Done" +InterventionClassifyDone=Clasificați "Efectuat" StatusInterInvoiced=Facturat ShowIntervention=Afişează intervenţie SendInterventionRef=Trimiterea intervenţiei %s @@ -41,12 +41,13 @@ InterventionDeletedInDolibarr=Intervenţia %s ştearsă InterventionsArea=Intervenţii DraftFichinter=Intervenții schita LastModifiedInterventions=Ultimele %s intervenţii modificate +FichinterToProcess=Intervenții la proces ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Contact client urmărire intervenţie # Modele numérotation PrintProductsOnFichinter=Printează si liniile de tip ''produs''( nu numai serviciile) pe fişa intervenţiei PrintProductsOnFichinterDetails=intervenții generate din comenzi -UseServicesDurationOnFichinter=Use services duration for interventions generated from orders +UseServicesDurationOnFichinter=Utilizați durata serviciilor pentru intervențiile generate din comenzi InterventionStatistics=Statistici intervenţii NbOfinterventions=Numar Fişe intervenţie NumberOfInterventionsByMonth=Numarul Fişelor intervenţie pe luna(data validare) diff --git a/htdocs/langs/ro_RO/languages.lang b/htdocs/langs/ro_RO/languages.lang index 2ca4027688a..b452f4268c8 100644 --- a/htdocs/langs/ro_RO/languages.lang +++ b/htdocs/langs/ro_RO/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Germană Language_de_AT=Germană (Austria) Language_de_CH=Germană (Elveţia) Language_el_GR=Greacă +Language_el_CY=Greacă (Cipru) Language_en_AU=Engleză (Australia) Language_en_CA=Engleză (Canada) Language_en_GB=Engleză (Marea Britanie) @@ -26,8 +27,10 @@ Language_es_BO=Spaniolă (Bolivia) Language_es_CL=Spaniolă (Chile) Language_es_CO=Spaniolă (Columbia) Language_es_DO=Spaniolă (Republica Dominicană) +Language_es_EC=Spaniolă (Ecuador) Language_es_HN=Spaniolă (Honduras) Language_es_MX=Spaniolă (Mexic) +Language_es_PA=Spaniolă (Panama) Language_es_PY=Spaniolă (Paraguay) Language_es_PE=Spaniolă (Peru) Language_es_PR=Spaniolă (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Islandeză Language_it_IT=Italiană Language_ja_JP=Japoneză Language_ka_GE=Georgiana +Language_km_KH=khmeră Language_kn_IN=Kannada Language_ko_KR=Coreeană Language_lo_LA=Laoţiană Language_lt_LT=Lituanian Language_lv_LV=Letonă Language_mk_MK=Macedonean +Language_mn_MN=mongoleză Language_nb_NO=Norvegiană (Bokmål) Language_nl_BE=Olandeză (Belgia) Language_nl_NL=Olandeză (Olanda) diff --git a/htdocs/langs/ro_RO/loan.lang b/htdocs/langs/ro_RO/loan.lang index 08cdbc2d000..5a124beee2e 100644 --- a/htdocs/langs/ro_RO/loan.lang +++ b/htdocs/langs/ro_RO/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ro_RO/mailmanspip.lang b/htdocs/langs/ro_RO/mailmanspip.lang index 1fd9b5e9508..c528c3ac648 100644 --- a/htdocs/langs/ro_RO/mailmanspip.lang +++ b/htdocs/langs/ro_RO/mailmanspip.lang @@ -3,8 +3,8 @@ MailmanSpipSetup=Setare Modul Mailman şi SPIP MailmanTitle=Sistem mailing list Mailman TestSubscribe=Pentru testare inscriere la listele Mailman TestUnSubscribe=Pentru testarea dezabonarii la listele Mailman -MailmanCreationSuccess=Subscription test was executed successfully -MailmanDeletionSuccess=Unsubscription test was executed successfully +MailmanCreationSuccess=Testul de abonare a fost executat cu succes +MailmanDeletionSuccess=Testul de dezabonare a fost executat cu succes SynchroMailManEnabled=O actualizare Mailman a fost realizată SynchroSpipEnabled=O actualizare Spip a fost realizată DescADHERENT_MAILMAN_ADMINPW=Parolă administrator Mailman @@ -23,5 +23,5 @@ DeleteIntoSpip=Înlătură din SPIP DeleteIntoSpipConfirmation=Sunteti sigur ca doriti stergerea acestui membru din SPIP ? DeleteIntoSpipError=Esec la stergere utilizator din SPIP SPIPConnectionFailed=Eşuare la conectatrea SPIP -SuccessToAddToMailmanList=%s successfully added to mailman list %s or SPIP database -SuccessToRemoveToMailmanList=%s successfully removed from mailman list %s or SPIP database +SuccessToAddToMailmanList=%s a fost adăugată cu succes la lista de posta %s sau la baza de date SPIP +SuccessToRemoveToMailmanList=%s eliminat cu succes de pe lista de posta %s sau baza de date SPIP diff --git a/htdocs/langs/ro_RO/mails.lang b/htdocs/langs/ro_RO/mails.lang index 2d1eaf7dd6d..70e0f046205 100644 --- a/htdocs/langs/ro_RO/mails.lang +++ b/htdocs/langs/ro_RO/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Trimis parţial MailingStatusSentCompletely=Trimis complet MailingStatusError=Eroare MailingStatusNotSent=Nu trimis -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMail validat cu succes MailUnsubcribe=Dezabonare MailingStatusNotContact=Nu mă mai contacta @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linia %s în fişierul @@ -116,8 +120,8 @@ Notifications=Anunturi NoNotificationsWillBeSent=Nu notificări prin email sunt planificate pentru acest eveniment şi a companiei ANotificationsWillBeSent=1 notificarea va fi trimis prin e-mail SomeNotificationsWillBeSent=%s notificări vor fi trimise prin e-mail -AddNewNotification=Activaţi un nou target email notificari -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista toate notificările e-mail trimis MailSendSetupIs=Configurarea trimiterii e-mail a fost de configurat la '%s'. Acest mod nu poate fi utilizat pentru a trimite email-uri în masă. MailSendSetupIs2=Trebuie mai întâi să mergi, cu un cont de administrator, în meniu%sHome - Setup - EMails%s pentru a schimba parametrul '%s' de utilizare în modul '%s'. Cu acest mod, puteți introduce configurarea serverului SMTP furnizat de furnizorul de servicii Internet și de a folosi facilitatea Mass email . diff --git a/htdocs/langs/ro_RO/main.lang b/htdocs/langs/ro_RO/main.lang index 7d2a3ac264d..663251bb5e9 100644 --- a/htdocs/langs/ro_RO/main.lang +++ b/htdocs/langs/ro_RO/main.lang @@ -72,8 +72,10 @@ SeeHere=Vezi aici Apply=Aplică BackgroundColorByDefault=Culoarea de fundal implicită FileRenamed=The file was successfully renamed -FileUploaded=Fişierul a fost încărcat cu succes FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Fişierul a fost încărcat cu succes +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Un fișier este selectat pentru atașament, dar nu a fost încă încărcat. Clic pe "Ataşează fișier" pentru aceasta. NbOfEntries=Nr intrări GoToWikiHelpPage=Citeşte ajutorul online (Acces la Internet necesar) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net fără tva TTC=Inc. taxe +INCT=Inc. all taxes VAT=TVA VATs=Taxe Vanzari LT1ES=RE @@ -391,7 +394,7 @@ ActionRunningNotStarted=De realizat ActionRunningShort=In progress ActionDoneShort=Terminat ActionUncomplete=Incomplet -CompanyFoundation=Company/Organisation +CompanyFoundation=Companie / Organizație ContactsForCompany=Contacte pentru aceast terţ ContactsAddressesForCompany=Contacte pentru aceast terţ AddressesForCompany=Adrese pentru acest terţ @@ -518,7 +521,6 @@ MonthShort10=oct MonthShort11=nov MonthShort12=dec AttachedFiles=Fişiere şi documente ataşate -FileTransferComplete=Fişierul a fost încărcat cu succes DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/ro_RO/margins.lang b/htdocs/langs/ro_RO/margins.lang index 72a1d17dd87..61fb6148505 100644 --- a/htdocs/langs/ro_RO/margins.lang +++ b/htdocs/langs/ro_RO/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rata trebuie să fie numerică markRateShouldBeLesserThan100=Rata mîrcii trebuie să fie mai mica de 100 ShowMarginInfos=Arată informaţii marjă CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ro_RO/members.lang b/htdocs/langs/ro_RO/members.lang index 65f7879b4ec..19d2b6f56c4 100644 --- a/htdocs/langs/ro_RO/members.lang +++ b/htdocs/langs/ro_RO/members.lang @@ -41,13 +41,13 @@ MemberType=Tip Membru MemberTypeId=ID Tip Membru MemberTypeLabel=Etichetă Tip Membru MembersTypes=Tipuri Membri -MemberStatusDraft=Schiţă(trebuie să fie validat) -MemberStatusDraftShort=Schiţă +MemberStatusDraft=Schiţă (cererea tebuie validata) +MemberStatusDraftShort=Draft MemberStatusActive=Validat (în aşteptareacotizatiei) -MemberStatusActiveShort=Validat +MemberStatusActiveShort=Validată MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Expirat -MemberStatusPaid=Adeziuni la zi +MemberStatusPaid=Cotiaţia la zi MemberStatusPaidShort=La zi MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated @@ -61,13 +61,13 @@ NewSubscription=Adeziune Nouă NewSubscriptionDesc=Acest formular vă permite să înregistraţi ca un membru nou al Fundaţiei. Dacă doriţi să reînnoiţi adeziunea dumneavoastră (dacă sunteţi deja membru), vă rugăm să contactaţi conducerea Fundaţiei prin e-mail %s . Subscription=Cotizaţie Subscriptions=Cotizaţii -SubscriptionLate=Întârziate +SubscriptionLate=Întârziat SubscriptionNotReceived=Cotizaţie neîncasată ListOfSubscriptions=Lista cotizaţii SendCardByMail=Trimite fişa pe email AddMember=Creare membru NoTypeDefinedGoToSetup=Niciun tip de membru definit. Du-te la meniul "Tipuri Membri" -NewMemberType=Tip nou Membru +NewMemberType=Tip Membru nou WelcomeEMail=Email de bun venit SubscriptionRequired=Necxesită Cotizaţie DeleteType=Şterge @@ -90,6 +90,7 @@ PublicMemberList=Lista Membri publici BlankSubscriptionForm=Formular public de autosubscriere BlankSubscriptionFormDesc=Dolibarr poate oferi un URL publicului pentru a permite vizitatorilor externi pentru a cere să se înscrie la fundaţie. Dacă un modul de plata online este activat, un formular de plată va fi, de asemenea, oferit automat. EnablePublicSubscriptionForm=Activează formularul de înscriere publică +ForceMemberType=Force the member type ExportDataset_member_1=Membrii şi adeziuni ImportDataset_member_1=Membri LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Acest ecran vă arată statisticile cu privire la membrii dup MembersStatisticsDesc=Alege statisticile pe care doriţi să le citiţi ... MenuMembersStats=Statistici LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Personalitate juridică Public=Profil public NewMemberbyWeb=Membru nou adăugat. În aşteptarea validării diff --git a/htdocs/langs/ro_RO/modulebuilder.lang b/htdocs/langs/ro_RO/modulebuilder.lang new file mode 100644 index 00000000000..ae8f074fbe1 --- /dev/null +++ b/htdocs/langs/ro_RO/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Modele generate / modificate găsite: %s (acestea sunt detectate ca fiind editabile atunci când fișierul %s există în directorul modulului). +NewModule=Modul nou +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Modulul a fost inițializat +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Introduceți aici toate informațiile generale care descriu modulul dvs. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=Această filă este dedicată definirii intrărilor de meniuri furnizate de modulul dvs. +ModuleBuilderDescpermissions=Această filă este dedicată definirii noilor permisiuni pe care doriți să le furnizați împreună cu modulul. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=Acest modul a fost activat. Orice modificare asupra lui poate denatura o caracteristică activă curentă. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ro_RO/oauth.lang b/htdocs/langs/ro_RO/oauth.lang index 46e01b9d971..4ed6c11a116 100644 --- a/htdocs/langs/ro_RO/oauth.lang +++ b/htdocs/langs/ro_RO/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Configurare Autentificare OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=Nicun token de acces salvat în baza de date locală HasAccessToken=Un token a fost generat și salvat în baza de date locală -NewTokenStored=Token primit si salvat -ToCheckDeleteTokenOnProvider=Pentru a verifica / șterge autorizarile salvate de furnizorul Aut %s +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token sters RequestAccess=Faceți clic aici pentru a solicita / reînnoi accesul și a primi un nou token pentru salvare DeleteAccess=Click aici pentru a șterge token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/ro_RO/other.lang b/htdocs/langs/ro_RO/other.lang index bcb29ececd8..cebad68e770 100644 --- a/htdocs/langs/ro_RO/other.lang +++ b/htdocs/langs/ro_RO/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=livră +WeightUnitounce=uncie Length=Lungime LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/ro_RO/paypal.lang b/htdocs/langs/ro_RO/paypal.lang index 1270904f6d7..ede9f9f6f38 100644 --- a/htdocs/langs/ro_RO/paypal.lang +++ b/htdocs/langs/ro_RO/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Acesta este ID-ul de tranzacţie: %s PAYPAL_ADD_PAYMENT_URL=Adăugaţi URL-ul de plată Paypal atunci când trimiteţi un document prin e-mail PredefinedMailContentLink=Puteţi da click pe linkul securizat de mai jos pentru a face plata (PayPal), în cazul în care acesta nu este deja făcută. ⏎\n⏎\n% s ⏎\n⏎\n YouAreCurrentlyInSandboxMode=Sunteţi în prezent în "sandbox" modul de -NewPaypalPaymentReceived=O plată nouă Paypal primită -NewPaypalPaymentFailed=O plată nouă Paypal încercată dar eşuată +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-mail pentru avertizare după o plată (realizată sau nu) ReturnURLAfterPayment=URL-ul return după plată -ValidationOfPaypalPaymentFailed=Validarea Paypal plată eşuată -PaypalConfirmPaymentPageWasCalledButFailed=Pagina confirmare plata pentru Paypal a aplelată de Paypal dar confirmarea a eşuat +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=Apel API SetExpressCheckout eșuat.. DoExpressCheckoutPaymentAPICallFailed=Apel API DoExpressCheckoutPayment eșuat. DetailedErrorMessage=Mesaj eroare detaliat ShortErrorMessage=Mesaj eroare scurt ErrorCode=Cod de eroare ErrorSeverityCode=Cod Severitate eroare +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ro_RO/printing.lang b/htdocs/langs/ro_RO/printing.lang index df5b1dacbb0..6717de5e3cf 100644 --- a/htdocs/langs/ro_RO/printing.lang +++ b/htdocs/langs/ro_RO/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Imprimanta Media IPP_Supported=Tip Media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Configurare variabile pentru driverul imprimanta Google Cloud Print. +PrintTestDescprintgcp=Lista imprimantelor pentru Google Cloud Print diff --git a/htdocs/langs/ro_RO/productbatch.lang b/htdocs/langs/ro_RO/productbatch.lang index 5190867b918..5e97abb6c07 100644 --- a/htdocs/langs/ro_RO/productbatch.lang +++ b/htdocs/langs/ro_RO/productbatch.lang @@ -17,8 +17,8 @@ printEatby=Expiră : %s printSellby=Vanzare: %s printQty=Cant: %d AddDispatchBatchLine=Adauga o linie pentru Perioada de valabilitate expediere -WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic increase/decrease stock mode is forced to shipping validate and manual dispatching for reception and can't be edited. Other options can be defined as you want. +WhenProductBatchModuleOnOptionAreForced=Când modulul Lot / Serial este activat, modul automat de creștere / micșorare a stocului este forțat să expedieze expedierea și expedierea manuală pentru recepție și nu poate fi editat. Alte opțiuni pot fi definite așa cum doriți. ProductDoesNotUseBatchSerial=Acest produs nu foloseste numarul de lot / serie -ProductLotSetup=Setup of module lot/serial -ShowCurrentStockOfLot=Show current stock for couple product/lot -ShowLogOfMovementIfLot=Show log of movements for couple product/lot +ProductLotSetup=Configurarea lotului / serial modulului +ShowCurrentStockOfLot=Afișați stocul curent pentru cuplu de produs / lot +ShowLogOfMovementIfLot=Afișați jurnalul mișcărilor pentru cuplu de produs / lot diff --git a/htdocs/langs/ro_RO/products.lang b/htdocs/langs/ro_RO/products.lang index b253d655b66..1d7ba608574 100644 --- a/htdocs/langs/ro_RO/products.lang +++ b/htdocs/langs/ro_RO/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produs sau serviciu ProductsAndServices=Produse si Servicii ProductsOrServices=Produse sau servicii -ProductsOnSell=Produs supus vânzării sau cumpărării -ProductsNotOnSell=Produse nesupuse vânzării sau cumpărării +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produse supuse vânzării sau cumpărării -ServicesOnSell=Servicii supuse vânzării sau cumpărării -ServicesNotOnSell=Servicii inactive +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Servicii supuse vânzării sau cumpărării LastModifiedProductsAndServices=Ultimele %s produse/ servicii modificate LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litru l=L +unitP=Piece +unitSET=Set +unitS=Secundă +unitH=Oră +unitD=Zi +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Model ref Produs ServiceCodeModel=Model ref Serviciu CurrentProductPrice=Preţ curent @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-produs MinSupplierPrice=Preţ minim furnizor MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ro_RO/propal.lang b/htdocs/langs/ro_RO/propal.lang index c259bc7060e..37549fd5589 100644 --- a/htdocs/langs/ro_RO/propal.lang +++ b/htdocs/langs/ro_RO/propal.lang @@ -3,7 +3,7 @@ Proposals=Oferte Comerciale Proposal=Ofertă Comercială ProposalShort=Ofertă ProposalsDraft=Oferte Comerciale schiţă -ProposalsOpened=Oferte comerciale deschise +ProposalsOpened=Open commercial proposals Prop=Oferte Comerciale CommercialProposal=Ofertă Comercială ProposalCard=Fişă Ofertă diff --git a/htdocs/langs/ro_RO/resource.lang b/htdocs/langs/ro_RO/resource.lang index 564cf3a4aa9..aa92869c01d 100644 --- a/htdocs/langs/ro_RO/resource.lang +++ b/htdocs/langs/ro_RO/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resursă ştearsă DictionaryResourceType=Tipuri resurse SelectResource=Selectează resursa + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resurse diff --git a/htdocs/langs/ro_RO/salaries.lang b/htdocs/langs/ro_RO/salaries.lang index 2128edad3f6..677fe77b39a 100644 --- a/htdocs/langs/ro_RO/salaries.lang +++ b/htdocs/langs/ro_RO/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Cont contabil pentru plata salariilor -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Cont contabil pentru cheltuieli financiare +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salariu Salaries=Salarii NewSalaryPayment=Plata noua salariu diff --git a/htdocs/langs/ro_RO/sendings.lang b/htdocs/langs/ro_RO/sendings.lang index 1c90ae5d5e1..7685b46d068 100644 --- a/htdocs/langs/ro_RO/sendings.lang +++ b/htdocs/langs/ro_RO/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Aviz expediere ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Model simplu DocumentModelMerou=Model Merou A5 WarningNoQtyLeftToSend=Atenţie, nu sunt produse care aşteaptă să fie expediate. StatsOnShipmentsOnlyValidated=Statisticil ectuate privind numai livrările validate. Data folosită este data validării livrării (data de livrare planificată nu este întotdeauna cunoscută). @@ -51,10 +50,10 @@ ActionsOnShipping=Evenimente pe livrare LinkToTrackYourPackage=Link pentru a urmări pachetul dvs ShipmentCreationIsDoneFromOrder=Pentru moment, crearea unei noi livrări se face din fişa comenzii. ShipmentLine=Linie de livrare -ProductQtyInCustomersOrdersRunning=Cantitate produs in comenzile clientilor deschise -ProductQtyInSuppliersOrdersRunning=Cantitate produs in comenzile furnizorilor deschise -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Cantitate produs din comenzile furnizorilor deschise deja primite +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ro_RO/stocks.lang b/htdocs/langs/ro_RO/stocks.lang index 963416d0452..43f2810acbf 100644 --- a/htdocs/langs/ro_RO/stocks.lang +++ b/htdocs/langs/ro_RO/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Etichetă transfer NumberOfUnit=Număr unităţi UnitPurchaseValue=Preţ unitar cumpărare StockTooLow=Stoc insuficient -StockLowerThanLimit=Stoc mai mic decat alerta limita +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Valoric PMPValue=Valoric PMP PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Stocul de produse și stocul de subproduse sunt indep QtyDispatched=Cantitate dipecerizată QtyDispatchedShort=Cant Expediate QtyToDispatchShort=Cant de expediat -OrderDispatch=Dispecerizare Stoc +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Descreşterea stocului fizic bazată pe validarea facturilor / note de credit @@ -62,16 +62,19 @@ DeStockOnShipment=Descreşte stocul fizic bazat pe validarea livrarilor DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Creşterea stocului fizic bazată pe validarea facturilor / note de credit ReStockOnValidateOrder=Creşterea stocului fizic bazată pe aprobarea comenzilor furnizor -ReStockOnDispatchOrder=Creşterea stocului fizic bazată pe dispecerizarea manuală , dupa recepţia comenzii +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Comanda nu mai este sau nu mai are un statut care să permită dipecerizarea produselor în depozit -StockDiffPhysicTeoric=Explicatie pentru diferenţa dintre stocul fizic şi cel teoretic +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nu sunt produse predefinite pentru acest obiect. Deci, nici o dispecerizare în stoc necesară. DispatchVerb=Dispecerizează StockLimitShort=Limita pentru alerta StockLimit=Stoc limită pentru alerta PhysicalStock=Stoc Fizic RealStock=Stoc Real +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Stoc Virtual +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=ID depozit DescWareHouse=Descriere depozit LieuWareHouse=Localizare depozit @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Cantitatea de produs %s în stoc înainte de perioada se NbOfProductAfterPeriod=Cantitatea de produs %s în stoc după perioada selectată (> %s) MassMovement=Mişcare în masă SelectProductInAndOutWareHouse=Selectați un produs, o cantitate, un depozit sursă și un depozit țintă, apoi faceți clic pe"%s". Odată făcut acest lucru pentru toate transferurile cerute, faceți clic pe "%s". -RecordMovement=Înregistrare transfer +RecordMovement=Record transfer ReceivingForSameOrder=Recepţii pentru această comandă StockMovementRecorded=Mişcări stoc înregistrate RuleForStockAvailability=Reguli pentru cereri stoc @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Editare +inventoryValidate=Validată +inventoryDraft=În service +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Crează +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Categorie filtru +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Adaugă +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Şterge linie +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/ro_RO/stripe.lang b/htdocs/langs/ro_RO/stripe.lang new file mode 100644 index 00000000000..08a834fa9ce --- /dev/null +++ b/htdocs/langs/ro_RO/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Modul de configurare a Stripe +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Plătiți cu cardul de credit sau Stripe +FollowingUrlAreAvailableToMakePayments=Ca urmare a URL-uri sunt disponibile pentru a oferi o pagină de la un client pentru a face o plată pe Dolibarr obiecte +PaymentForm=Formă de plată +WelcomeOnPaymentPage=Bine ati venit la serviciul de plată online +ThisScreenAllowsYouToPay=Acest ecran vă permite de a face o plată online pentru %s. +ThisIsInformationOnPayment=Acest lucru este de informatii cu privire la plata de a face +ToComplete=Pentru a completa +YourEMail=E-mail de confirmare de plată +STRIPE_PAYONLINE_SENDEMAIL=E-mail pentru avertizare după o plată (realizată sau nu) +Creditor=Creditor +PaymentCode=Cod Plata +StripeDoPayment=Du-te la plată +YouWillBeRedirectedOnStripe=Veți fi redirecționat pe pagina Stripe securizată pentru a vă introduce informațiile despre cardul de credit +Continue=Următor +ToOfferALinkForOnlinePayment=URL-ul pentru plata %s +ToOfferALinkForOnlinePaymentOnOrder=URL-ul pentru a oferi un %s plata online pentru o interfaţă de utilizator pentru +ToOfferALinkForOnlinePaymentOnInvoice=URL-ul pentru a oferi un %s interfaţă de utilizator pentru plata online pentru o factura client. +ToOfferALinkForOnlinePaymentOnContractLine=URL-ul pentru a oferi un %s plata online interfaţă cu utilizatorul pentru un contract de linie +ToOfferALinkForOnlinePaymentOnFreeAmount=URL-ul pentru a oferi un %s plata online interfaţă de utilizator pentru o suma de liber +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL-ul pentru a oferi o plată %s interfata online pentru un abonament de membru +YouCanAddTagOnUrl=Puteţi, de asemenea, să adăugaţi URL-ul parametru & tag= valoarea la oricare dintre aceste URL-ul (necesar doar pentru liber de plată) pentru a adăuga propriul plată comentariu tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Această pagină confirmă faptul că plata dvs. a fost înregistrată. Mulţumesc. +YourPaymentHasNotBeenRecorded=Sunteţi de plată nu a fost înregistrată şi pe tranzacţie a fost anulată. Mulţumesc. +AccountParameter=Parametri Cont +UsageParameter=Utilizarea parametrilor +InformationToFindParameters=Ajutor pentru a găsi informaţiile dvs. de cont %s +STRIPE_CGI_URL_V2=Adresa URL a modulului CGI Stripe pentru plată +VendorName=Numele vânzătorului +CSSUrlForPaymentForm=CSS foaie de URL-ul de stil pentru forma de plată +MessageOK=Mesaj de pe pagina de întoarcere a platii validate +MessageKO=Mesaj de pe pagina anulat schimbul de plată +NewStripePaymentReceived=Plata noua Stripe incasata +NewStripePaymentFailed=Plata noua Stripe incercata dar esuata +STRIPE_TEST_SECRET_KEY=Cheie de testare secreta +STRIPE_TEST_PUBLISHABLE_KEY=Cheia de test publicabilă +STRIPE_LIVE_SECRET_KEY=Cheie secreta de actiune +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ro_RO/supplier_proposal.lang b/htdocs/langs/ro_RO/supplier_proposal.lang index 4ddfe4a033d..d1e493241df 100644 --- a/htdocs/langs/ro_RO/supplier_proposal.lang +++ b/htdocs/langs/ro_RO/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Cauta o cerere DraftRequests=Cereri schiţă SupplierProposalsDraft=Ofertă Furnizor Schiţă LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Deschide Cereri Preţ SupplierProposalArea=Oferte Furnizori SupplierProposalShort=Oferta Furnizor SupplierProposals=Oferte Furnizori @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Şterge cerere ValidateAsk=Validează cererre SupplierProposalStatusDraft=Schiţă (cererea tebuie validata) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validata(cererea este deschisa) SupplierProposalStatusClosed=Închis SupplierProposalStatusSigned=Acceptat SupplierProposalStatusNotSigned=Refuzat @@ -47,7 +47,7 @@ CommercialAsk=Cerere Preţ DefaultModelSupplierProposalCreate=Crează model implicit DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ro_RO/suppliers.lang b/htdocs/langs/ro_RO/suppliers.lang index 8b239203f85..41bd050fb44 100644 --- a/htdocs/langs/ro_RO/suppliers.lang +++ b/htdocs/langs/ro_RO/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Unele sub-produse nu au un preț definit AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Preţuri furnizor ReferenceSupplierIsAlreadyAssociatedWithAProduct=Acest furnizor este deja asociat cu referinta: % s NoRecordedSuppliers=Niciun furnizor înregistrat SupplierPayment=Plată Furnizor @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Preţuri furnizor diff --git a/htdocs/langs/ro_RO/trips.lang b/htdocs/langs/ro_RO/trips.lang index 2563605ec94..0b127c16b79 100644 --- a/htdocs/langs/ro_RO/trips.lang +++ b/htdocs/langs/ro_RO/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Lista note cheltuieli TypeFees=Tipuri taxe ShowTrip=Show expense report NewTrip= Raport de cheltuieli nou -CompanyVisited=Societatea / Instituţia vizitată +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Valoarea sau km DeleteTrip=Șterge raport de cheltuieli ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=În așteptare pentru aprobare ExpensesArea=Rapoarte de cheltuieli ClassifyRefunded=Clasează "Rambursată" ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=ID Raport de cheltuieli AnyOtherInThisListCanValidate=Persoana de informare pentru validare. TripSociete=Informații companie @@ -59,31 +69,24 @@ DATE_REFUS=Dată respingere DATE_SAVE=Dată validare DATE_CANCEL=Data anulare DATE_PAIEMENT=Data Plata - BROUILLONNER=Redeschide +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validareaza și trimite pentru aprobare ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=Tu nu esti autorul acestui raport de cheltuieli. Operatiune anulata. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Aproba raport de cheltuieli ConfirmValideTrip=Sunteți sigur că doriți să aprobaţi acest raport de cheltuieli? - PaidTrip=Plăste un raport de cheltuieli ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Sunteți sigur că doriți să anulaţi acest raport de cheltuieli? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Valideaza raport de cheltuieli ConfirmSaveTrip=Sunteți sigur că doriți să validaţi acest raport de cheltuieli? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Plata Raport cheltuieli - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ro_RO/users.lang b/htdocs/langs/ro_RO/users.lang index 0d9c5c5be2e..0ff361ff12d 100644 --- a/htdocs/langs/ro_RO/users.lang +++ b/htdocs/langs/ro_RO/users.lang @@ -66,8 +66,8 @@ InternalUser=Interne de utilizator ExportDataset_user_1=Dolibarr utilizatorii şi proprietăţi DomainUser=Domeniu utilizatorul %s Reactivate=Reactivaţi -CreateInternalUserDesc=Acest formular va permite sa creaţi un utilizator intern al companiei/ fundaţiei dvs . Pentru a crea un utilizator extern (client, furnizor, ...), folosiţi butonul "Creaţi utilizator Dolibarr " din cardul contact al terţului. -InternalExternalDesc=Un utilizator intern este un utilizator care este parte a firmei dvs. / Fundaţia.
Un utilizator extern este un client, furnizor sau de altă parte.

În ambele cazuri, permissions defineşte drepturile pe Dolibarr, externe, de asemenea, utilizatorul poate avea un alt administrator de meniu decât utilizator intern (a se vedea Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permisiunea acordată deoarece moştenită de la un utilizator al unui grup. Inherited=Moştenit UserWillBeInternalUser=De utilizator creat va fi un utilizator intern (pentru că nu este legată de o parte terţă) diff --git a/htdocs/langs/ro_RO/website.lang b/htdocs/langs/ro_RO/website.lang index ef2d11978b1..d7d1b8ec9bf 100644 --- a/htdocs/langs/ro_RO/website.lang +++ b/htdocs/langs/ro_RO/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Pagina nume/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=Conţinutul CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit meniu @@ -14,8 +15,9 @@ EditPageContent=Editare continut Website=Web site Webpage=Web page AddPage=Add pagina +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Pagina '%s' adaugata ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Seteaza ca pagina Home RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ro_RO/withdrawals.lang b/htdocs/langs/ro_RO/withdrawals.lang index fc3970a7e79..b72c5bbd49f 100644 --- a/htdocs/langs/ro_RO/withdrawals.lang +++ b/htdocs/langs/ro_RO/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Suma de a se retrage WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nici un client nu facturii de plată, în modul de "retragere" este în aşteptare. Du-te la "Retrageţi fila" pe factura cardul pentru a face o cerere. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsabil de utilizator WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Motivul respingerii RefusedInvoicing=Facturare respingerea NoInvoiceRefused=Nu încărcaţi respingerea InvoiceRefused=Factura refuzată (Încărcați refuzul la client) +StatusDebitCredit=Status debit/credit StatusWaiting=Aşteptare StatusTrans=Trimis StatusCredited=Creditate diff --git a/htdocs/langs/ru_RU/accountancy.lang b/htdocs/langs/ru_RU/accountancy.lang index 47149e160ea..92ef9dd4cfb 100644 --- a/htdocs/langs/ru_RU/accountancy.lang +++ b/htdocs/langs/ru_RU/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Добавить бухгалтерский счёт AccountAccounting=Бухгалтерский счёт AccountAccountingShort=Бухгалтерский счёт SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Продажи AccountingJournalType3=Покупки AccountingJournalType4=Банк +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Экспорт Export=Экспорт +ExportDraftJournal=Export draft journal Modelcsv=Модель экспорта OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Выбрать модель экспорта diff --git a/htdocs/langs/ru_RU/admin.lang b/htdocs/langs/ru_RU/admin.lang index 343d31eef0b..eb17529dffd 100644 --- a/htdocs/langs/ru_RU/admin.lang +++ b/htdocs/langs/ru_RU/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Запросить у поставщика коммерческо Module1200Name=Mantis Module1200Desc=Интеграция с Mantis Module1400Name=Бухгалтерия -Module1400Desc=Управление бухгалтерией (двойная бухгалтерия) +Module1400Desc=Accounting management (double entries) Module1520Name=Создание документов Module1520Desc=Mass mail document generation Module1780Name=Теги/Категории @@ -585,7 +585,7 @@ Module50100Desc=Модуль точки продаж (POS). Module50200Name=Paypal Module50200Desc=Модуль предлагает страницу онлайн-оплаты кредитной картой с помощью Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Бухгалтерия управления для экспертов (двойная сторон) +Module50400Desc=Accounting management (double entries) Module54000Name=Модуль PrintIPP Module54000Desc=Прямая печать (без открытия документа) использует интерфейс Cups IPP (Принтер должен быть доступен с сервера, и система печати CUPS должна быть установлена на сервере). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/ru_RU/agenda.lang b/htdocs/langs/ru_RU/agenda.lang index 085da15af2a..edc17a47fe0 100644 --- a/htdocs/langs/ru_RU/agenda.lang +++ b/htdocs/langs/ru_RU/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID события Actions=События Agenda=Повестка дня +TMenuAgenda=Повестка дня Agendas=Повестка дня LocalAgenda=Внутренний календарь ActionsOwnedBy=Событие принадлежит @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Счёт %s удален InvoicePaidInDolibarr=Счёт %s оплачен InvoiceCanceledInDolibarr=Счёт %s отменён MemberValidatedInDolibarr=Участник %s подтверждён +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Участник %s удалён MemberSubscriptionAddedInDolibarr=Подписка участника %s добавлена ShipmentValidatedInDolibarr=Отправка %s подтверждена -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Отправка %s удалена OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Заказ %s проверен @@ -73,13 +75,17 @@ InterventionSentByEMail=Посредничество %s отправлено п ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Начальная дата DateActionEnd=Конечная дата AgendaUrlOptions1=Можно также добавить следующие параметры для фильтрации вывода: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=logint= %s ограничить выход на действия пользователя, пострадавших %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/ru_RU/banks.lang b/htdocs/langs/ru_RU/banks.lang index b8f5fd5414c..b247839b57d 100644 --- a/htdocs/langs/ru_RU/banks.lang +++ b/htdocs/langs/ru_RU/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID транзакции BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Согласительной Conciliation=Согласительная ReconciliationLate=Reconciliation late IncludeClosedAccount=Включите закрытые счета -OnlyOpenedAccount=Только открыли счета +OnlyOpenedAccount=Only open accounts AccountToCredit=Счета к кредитам AccountToDebit=Счет дебетовать DisableConciliation=Отключите функцию примирения для этой учетной записи ConciliationDisabled=Согласительный функция отключена LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Открыты +StatusAccountOpened=Открытые StatusAccountClosed=Закрытые AccountIdShort=Количество LineRecord=Транзакция @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/ru_RU/bills.lang b/htdocs/langs/ru_RU/bills.lang index 869f56db695..dfd4ef1c77b 100644 --- a/htdocs/langs/ru_RU/bills.lang +++ b/htdocs/langs/ru_RU/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Стандартный счёт InvoiceStandardAsk=Стандартный счёт InvoiceStandardDesc=Такой вид счёта является общим. -InvoiceDeposit=Счета-фактура на взнос -InvoiceDepositAsk=Счета-фактура на взнос -InvoiceDepositDesc=Этот вид счета-фактуры оформляется при получении взноса. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Формальный счёт InvoiceProFormaAsk=Формальный счёт InvoiceProFormaDesc=Формальный счёт является образом оригинального счёта, но не имеет бухгалтерской учетной записи. @@ -62,7 +62,7 @@ PaymentsBack=Возвраты платежа paymentInInvoiceCurrency=in invoices currency PaidBack=Возврат платежа DeletePayment=Удалить платеж -ConfirmDeletePayment=Вы уверены, что хотите удалить этот платеж? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Платежи Поставщикам ReceivedPayments=Полученные платежи @@ -115,7 +115,7 @@ BillStatus=Статус счета-фактуры StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Проект (должен быть подтвержден) BillStatusPaid=Оплачен -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Преобразован в скидку BillStatusCanceled=Аннулирован BillStatusValidated=Подтвержден (необходимо оплатить) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Оплачен (частично) BillShortStatusDraft=Проект BillShortStatusPaid=Оплачен BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Обработан +BillShortStatusConverted=Оплачено BillShortStatusCanceled=Аннулирован BillShortStatusValidated=Подтвержден BillShortStatusStarted=Начат @@ -198,12 +198,12 @@ ShowBill=Показать счет-фактуру ShowInvoice=Показать счет-фактуру ShowInvoiceReplace=Показать заменяющий счет-фактуру ShowInvoiceAvoir=Показать кредитое авизо -ShowInvoiceDeposit=Показать счет-фактуру на взнос +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Показать платеж AlreadyPaid=Уже оплачен AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Уже оплачен (без кредитовых авизо и взносов) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Брошен RemainderToPay=Оставить неоплаченным RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Относительная скидка GlobalDiscount=Глобальная скидка CreditNote=Кредитовое авизо CreditNotes=Кредитовое авизо -Deposit=Взнос -Deposits=Взносы +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Скидка из кредитового авизо %s -DiscountFromDeposit=Платежи с депозитного счета-фактуры %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Такой тип кредита может быть использован по счету-фактуре до его подтверждения CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Не удается удалить опла ExpectedToPay=Ожидаемые платежи CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Оплачен этим платежом -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Все счета, без остатка к оплате будут автоматически закрыты со статусом "Оплачен". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Шаблон Счета-фактуры Crabe. Полный шаблон (вспомогательные опции НДС, скидки, условия платежей, логотип и т.д. ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Функция возвращает номер в формате %syymm-nnnn для стандартных счетов и %syymm-nnnn для кредитных авизо, где yy год, mm месяц и nnnn является непрерывной последовательностью и не возвращает 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Документ, начинающийся с $syymm, уже существует и не совместим с этой моделью последовательности. Удалите или переименуйте его, чтобы активировать этот модуль. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Четко отследить счет-фактуру Покупателю TypeContact_facture_external_BILLING=обратитесь в отдел счетов-фактур Покупателям diff --git a/htdocs/langs/ru_RU/bookmarks.lang b/htdocs/langs/ru_RU/bookmarks.lang index 67ba2be97ef..510b8838a73 100644 --- a/htdocs/langs/ru_RU/bookmarks.lang +++ b/htdocs/langs/ru_RU/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Добавить эту страницу в закладки +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Закладка Bookmarks=Закладки +ListOfBookmarks=Список закладок +EditBookmarks=List/edit bookmarks NewBookmark=Новая закладка ShowBookmark=Показать закладку OpenANewWindow=Открыть новое окно @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Новое окно BookmarkTargetReplaceWindowShort=Текущее окно BookmarkTitle=Название закладки UrlOrLink=URL -BehaviourOnClick=Поведение при нажатии на ссылку +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Создать закладку SetHereATitleForLink=Установите название для закладки UseAnExternalHttpLinkOrRelativeDolibarrLink=Используйте внешний HTTP URL или относительный Dolibarr URL diff --git a/htdocs/langs/ru_RU/boxes.lang b/htdocs/langs/ru_RU/boxes.lang index ee6f27b91f8..202359feba5 100644 --- a/htdocs/langs/ru_RU/boxes.lang +++ b/htdocs/langs/ru_RU/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Информация RSS BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Заказы клиентов ForProposals=Предложения LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/ru_RU/categories.lang b/htdocs/langs/ru_RU/categories.lang index 7c07084897b..11670831552 100644 --- a/htdocs/langs/ru_RU/categories.lang +++ b/htdocs/langs/ru_RU/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Тег/Категория Rubriques=Теги/Категории +RubriquesTransactions=Tags/Categories of transactions categories=теги/категории NoCategoryYet=Нет созданных тегов/категорий данного типа In=В @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Категория к таким кодом уже с ContentsVisibleByAllShort=Содержимое доступно всем ContentsNotVisibleByAllShort=Содержание не доступно всем DeleteCategory=Удалить тег/категорию -ConfirmDeleteCategory=Вы точно хотите удалить этот тег/категорию? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=Не задан тег/категория SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/ru_RU/commercial.lang b/htdocs/langs/ru_RU/commercial.lang index 20f8487a408..9a7a8dd4769 100644 --- a/htdocs/langs/ru_RU/commercial.lang +++ b/htdocs/langs/ru_RU/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Встреча с %s ShowTask=Показать задачу ShowAction=Показать действий ActionsReport=Действия доклад -ThirdPartiesOfSaleRepresentative=Контрагенты с торговым представителем +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Торговый представитель SalesRepresentatives=Торговые представители SalesRepresentativeFollowUp=Представитель по продажам (последующих) diff --git a/htdocs/langs/ru_RU/companies.lang b/htdocs/langs/ru_RU/companies.lang index fbb74804e84..4c5c12664e3 100644 --- a/htdocs/langs/ru_RU/companies.lang +++ b/htdocs/langs/ru_RU/companies.lang @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Заказчики ThirdPartyCustomersWithIdProf12=Покупатели с %s или %s ThirdPartySuppliers=Поставщики ThirdPartyType=Тип контрагента -Company/Fundation=Организация Individual=Физическое лицо ToCreateContactWithSameName=Будет автоматически создан контакт/адрес с той информацией которая связывает контрагента с контрагентом. В большинстве случаев, даже если контрагент является физическим лицом, достаточно создать одного контрагента. ParentCompany=Материнская компания @@ -78,10 +77,10 @@ VATIsNotUsed=НДС не используется CopyAddressFromSoc=Заполнить адрес из адреса контрагента ThirdpartyNotCustomerNotSupplierSoNoRef=Контрагенты не имеющие клиентов или связей, пустые контрагенты PaymentBankAccount=Банковские реквизиты -OverAllProposals=Общее количество предложений -OverAllOrders=Общее количество заказов -OverAllInvoices=Общее количество счетов -OverAllSupplierProposals=Total price requests +OverAllProposals=Предложения +OverAllOrders=Заказы +OverAllInvoices=Счета +OverAllSupplierProposals=Запросы цены ##### Local Taxes ##### LocalTax1IsUsed=Использовать второй налог LocalTax1IsUsedES= RE используется @@ -89,7 +88,7 @@ LocalTax1IsNotUsedES= RE не используется LocalTax2IsUsed=Использовать третий налог LocalTax2IsUsedES= IRPF используется LocalTax2IsNotUsedES= IRPF не используется -LocalTax1ES=Повторно +LocalTax1ES=RE LocalTax2ES=IRPF TypeLocaltax1ES=Тип налога RE TypeLocaltax2ES=Тип налога IRPF @@ -232,11 +231,17 @@ ProfId4SN=- ProfId5SN=- ProfId6SN=- ProfId1TN=Проф Id 1 (RC) -ProfId2TN=Проф Id 2 (Финансовый matricule) +ProfId2TN=Проф Id 2 (Финансовая матрица) ProfId3TN=Проф ID 3 (Douane код) ProfId4TN=Проф Id 4 (БАН) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (ОГРН) ProfId2RU=Prof Id 2 (ИНН) ProfId3RU=Prof Id 3 (КПП) @@ -259,8 +264,8 @@ CustomerRelativeDiscountShort=Относительная скидка CustomerAbsoluteDiscountShort=Абсолютная скидка CompanyHasRelativeDiscount=Этот покупатель имеет скидку по умолчанию %s%% CompanyHasNoRelativeDiscount=Этот клиент не имеет относительной скидки по умолчанию -CompanyHasAbsoluteDiscount=Этот клиент все еще имеет дисконтный кредит за %s %s -CompanyHasCreditNote=Этот клиент все еще имеет кредитовые авизо или предыдущие взносы за %s %s +CompanyHasAbsoluteDiscount=Этому клиенту доступна скидка (кредитный лимит или авансовый платеж) за %s %s +CompanyHasCreditNote=Этот клиент все еще имеет кредитный лимит или авансовый платеж за %s %s CompanyHasNoAbsoluteDiscount=Этот клиент не имеет дисконтный кредит CustomerAbsoluteDiscountAllUsers=Абсолютная скидка (предоставляется всеми пользователями) CustomerAbsoluteDiscountMy=Абсолютная скидка (предоставляется вами) @@ -390,7 +395,7 @@ ListCustomersShort=Список покупателей ThirdPartiesArea=Область контрагентов и контактов LastModifiedThirdParties=Недавно изменено %s контрагентов UniqueThirdParties=Всего уникальных контрагентов -InActivity=Открыты +InActivity=Открытые ActivityCeased=Закрыто ThirdPartyIsClosed=Закрывшиеся контрагенты ProductsIntoElements=Список товаров/услуг в %s @@ -402,10 +407,10 @@ LeopardNumRefModelDesc=Код покупателю/поставщику не п ManagingDirectors=Имя управляющего или управляющих (Коммерческого директора, директора, президента...) MergeOriginThirdparty=Копия контрагента (контрагент которого вы хотите удалить) MergeThirdparties=Объединить контрагентов -ConfirmMergeThirdparties=Объединить этих контрагентов в одного? Все связанные объекты (счета, заказы, ...) будут перемещены к текущему контрагенту и можно будет удалить дубликаты. +ConfirmMergeThirdparties=Вы хотите объединить этого контрагента с текущим? Все связанные объекты (счета, заказы, ...) будут перемещены к текущему контрагенту, затем контрагент будет удален. ThirdpartiesMergeSuccess=Контрагенты объединены SaleRepresentativeLogin=Логин торгового представителя -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeFirstname=Имя торгового представителя +SaleRepresentativeLastname=Фамилия торгового представителя ErrorThirdpartiesMerge=При удалении контрагента возникла ошибка. Пожалуйста проверьте технические отчеты. Изменения отменены. NewCustomerSupplierCodeProposed=Код нового клиента или поставщика дублируется. diff --git a/htdocs/langs/ru_RU/contracts.lang b/htdocs/langs/ru_RU/contracts.lang index 6234a370dbc..6cb26799777 100644 --- a/htdocs/langs/ru_RU/contracts.lang +++ b/htdocs/langs/ru_RU/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Этот список содержит тольк StandardContractsTemplate=Стандартный шаблон контракта ContactNameAndSignature=Для %s, имя и подпись OnlyLinesWithTypeServiceAreUsed=Только строки с типом "Услуга" могут быть клонированы. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Торговый представитель подписания контракта diff --git a/htdocs/langs/ru_RU/exports.lang b/htdocs/langs/ru_RU/exports.lang index e551ac0a80d..172747a721b 100644 --- a/htdocs/langs/ru_RU/exports.lang +++ b/htdocs/langs/ru_RU/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Значение для фильтрации FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/ru_RU/holiday.lang b/htdocs/langs/ru_RU/holiday.lang index e117a2c6e5d..79a5d0c720d 100644 --- a/htdocs/langs/ru_RU/holiday.lang +++ b/htdocs/langs/ru_RU/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Отменено RefuseCP=Отказано ValidatorCP=Утвердивший ListeCP=Список отпусков -ReviewedByCP=Проверит +ReviewedByCP=Will be approved by DescCP=Описание SendRequestCP=Создать заявление на отпуск DelayToRequestCP=Заявления об отпуске могут создаваться не ранее чем через %s (дней) diff --git a/htdocs/langs/ru_RU/install.lang b/htdocs/langs/ru_RU/install.lang index 5bed5714b3c..0b4676019e7 100644 --- a/htdocs/langs/ru_RU/install.lang +++ b/htdocs/langs/ru_RU/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Вы можете использовать мастер н KeepDefaultValuesDeb=Du bruker Dolibarr konfigurasjonsveiviseren fra en Ubuntu eller Debian-pakke, så verdiene foreslått her allerede er optimalisert. Bare passordet til databasen eieren til å opprette må fullføres. Endre andre parametere bare hvis du vet hva du gjør. KeepDefaultValuesMamp=Вы можете использовать мастер настройки DoliMamp, поэтому ценности предлагаемого здесь уже оптимизирован. Изменить их только, если вы знаете, что вы делаете. KeepDefaultValuesProxmox=Вы можете использовать мастер установки из Dolibarr прибор Proxmox виртуальные, поэтому значения предлагаемых здесь уже оптимизированы. Изменение их, только если вы знаете, что вы делаете. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/ru_RU/interventions.lang b/htdocs/langs/ru_RU/interventions.lang index 7e362818494..779b7811843 100644 --- a/htdocs/langs/ru_RU/interventions.lang +++ b/htdocs/langs/ru_RU/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Посредничество %s удалено InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=После деятельность заказчика контакт # Modele numérotation diff --git a/htdocs/langs/ru_RU/languages.lang b/htdocs/langs/ru_RU/languages.lang index 5a94a2144a9..654b2079813 100644 --- a/htdocs/langs/ru_RU/languages.lang +++ b/htdocs/langs/ru_RU/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Немецкий Language_de_AT=Немецкий (Австрия) Language_de_CH=Немецкий (Швейцария) Language_el_GR=Греческий +Language_el_CY=Greek (Cyprus) Language_en_AU=Английский (Австралия) Language_en_CA=Английский (Канада) Language_en_GB=Английский (Великобритания) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Испанский (Чили) Language_es_CO=Spanish (Colombia) Language_es_DO=Испанский (Доминиканская Республика) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Испанский (Гондурас) Language_es_MX=Испанский (Мексика) +Language_es_PA=Spanish (Panama) Language_es_PY=Испанский (Парагвай) Language_es_PE=Испанский (Перу) Language_es_PR=Испанский (Пуэрто-Рико) @@ -50,12 +53,14 @@ Language_is_IS=Исландский Language_it_IT=Итальянский Language_ja_JP=Японский Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Корейский Language_lo_LA=Лаосский Language_lt_LT=Литовский Language_lv_LV=Латышский Language_mk_MK=Македонский +Language_mn_MN=Mongolian Language_nb_NO=Норвежский (Букмол) Language_nl_BE=Голландский (Бельгия) Language_nl_NL=Голландский (Нидерланды) diff --git a/htdocs/langs/ru_RU/loan.lang b/htdocs/langs/ru_RU/loan.lang index a87ee2f8c29..193c08535b8 100644 --- a/htdocs/langs/ru_RU/loan.lang +++ b/htdocs/langs/ru_RU/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Настройка модуля Ссуды LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/ru_RU/mails.lang b/htdocs/langs/ru_RU/mails.lang index 6a1f3a68005..3cd5a97c6e8 100644 --- a/htdocs/langs/ru_RU/mails.lang +++ b/htdocs/langs/ru_RU/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Отправлено частично MailingStatusSentCompletely=Отправлено полностью MailingStatusError=Ошибка MailingStatusNotSent=Не отправлено -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Электронная почта успешно подтверждена MailUnsubcribe=Отказаться от рассылки MailingStatusNotContact=Не писать @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Линия %s в файл @@ -116,8 +120,8 @@ Notifications=Уведомления NoNotificationsWillBeSent=Нет электронной почте уведомления, планируется к этому мероприятию и компании ANotificationsWillBeSent=1 уведомление будет отправлено по электронной почте SomeNotificationsWillBeSent=%s уведомления будут отправлены по электронной почте -AddNewNotification=Включить новое задание на уведомление по электронной почте -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Список всех уведомлений по электронной почте отправлено MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/ru_RU/main.lang b/htdocs/langs/ru_RU/main.lang index 19a24fa80f6..42ea246c7d2 100644 --- a/htdocs/langs/ru_RU/main.lang +++ b/htdocs/langs/ru_RU/main.lang @@ -72,8 +72,10 @@ SeeHere=Посмотрите сюда Apply=Применить BackgroundColorByDefault=Цвет фона по умолчанию FileRenamed=Файл успешно переименован -FileUploaded=Файл успешно загружен FileGenerated=Файл успешно создан +FileSaved=The file was successfully saved +FileUploaded=Файл успешно загружен +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Файл выбран как вложение, но пока не загружен. Для этого нажмите "Вложить файл". NbOfEntries=Кол-во записей GoToWikiHelpPage=Читать интернет-справку (необходим доступ к Интернету) @@ -358,6 +360,7 @@ TotalLT1ES=Всего RE TotalLT2ES=Всего IRPF HT=Без налога TTC=Вкл-я налог +INCT=Inc. all taxes VAT=НДС VATs=Торговые сборы LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=окт MonthShort11=ноя MonthShort12=дек AttachedFiles=Присоединенные файлы и документы -FileTransferComplete=Файл был успешно загружен DateFormatYYYYMM=ГГГГ-ММ DateFormatYYYYMMDD=ГГГГ-ММ-ДД DateFormatYYYYMMDDHHMM=ГГГГ-ММ-ДД ЧЧ:СС diff --git a/htdocs/langs/ru_RU/margins.lang b/htdocs/langs/ru_RU/margins.lang index 88927b87560..c24913486e3 100644 --- a/htdocs/langs/ru_RU/margins.lang +++ b/htdocs/langs/ru_RU/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Ставка должна быть числом markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Показать инф-цию о наценке CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/ru_RU/members.lang b/htdocs/langs/ru_RU/members.lang index 5fb39e6617e..670af90e235 100644 --- a/htdocs/langs/ru_RU/members.lang +++ b/htdocs/langs/ru_RU/members.lang @@ -42,9 +42,9 @@ MemberTypeId=ID типа участника MemberTypeLabel=Член тип этикетки MembersTypes=Типы участников MemberStatusDraft=Проект (должно быть подтверждено) -MemberStatusDraftShort=Чтобы проверить +MemberStatusDraftShort=Проект MemberStatusActive=Удостоверенная (ожидания по подписке) -MemberStatusActiveShort=Подтвержденные +MemberStatusActiveShort=Утверждена MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Истек MemberStatusPaid=Подписка до даты @@ -67,7 +67,7 @@ ListOfSubscriptions=Список подписчиков SendCardByMail=Отправить карту AddMember=Создать участника NoTypeDefinedGoToSetup=Ни один из членов определенных типов. Переход к установке - членов типов -NewMemberType=Новый член типа +NewMemberType=Новый тип участника WelcomeEMail=Приветственное Email-письмо SubscriptionRequired=Подписка требуется DeleteType=Удалить @@ -90,11 +90,12 @@ PublicMemberList=Общественная член списка BlankSubscriptionForm=Форма подписки BlankSubscriptionFormDesc=Dolibarr может предоставить вам на общедоступный ресурс, чтобы позволить внешним посетителям попросить, чтобы подписаться на фундамент. Если модуль онлайн оплаты включена, форма оплаты будет автоматически предоставляется. EnablePublicSubscriptionForm=Включить общественных авто-форму подписки +ForceMemberType=Force the member type ExportDataset_member_1=Члены и подписки -ImportDataset_member_1=Члены +ImportDataset_member_1=Участники LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions -String=String +String=Строка Text=Текст Int=Межд DateAndTime=Дата и время @@ -150,6 +151,7 @@ MembersByTownDesc=Этот экран покажет вам статистику MembersStatisticsDesc=Выберите статистику вы хотите прочитать ... MenuMembersStats=Статистика LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Природа Public=Информационные общественности (нет = частных) NewMemberbyWeb=Новый участник добавил. В ожидании утверждения diff --git a/htdocs/langs/ru_RU/modulebuilder.lang b/htdocs/langs/ru_RU/modulebuilder.lang index a8fc8164ae8..e4812fa4e79 100644 --- a/htdocs/langs/ru_RU/modulebuilder.lang +++ b/htdocs/langs/ru_RU/modulebuilder.lang @@ -1,24 +1,40 @@ # Dolibarr language file - Source file is en_US - loan -ModuleBuilderDesc=This tools give you utilites to build or edit your own module. -EnterNameOfModuleDesc=Enter name of the module to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) -ModuleBuilderDesc2=Path were modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). NewModule=New module -ModuleKey=Key for new module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized ModuleBuilderDescdescription=Enter here all general information that describe your module -ModuleBuilderDescobjects=Define here the new objects you want to manage with your module. A page to list them and a page to create/edit/view a card will be generated. +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. -ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file with your IDE. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. ModuleBuilderDeschooks=This tab is dedicated to hooks. ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. -ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module. Just click on button to get your module package file. -ModuleBuilderDescdangerzone=You can delete your module. WARNING: All files of module will be definetly lost ! +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! DangerZone=Danger zone -BuildPackage=Build package -ModuleIsNotActive=This module was not activated yet (go into Home-Setup-Module to make it live) +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) ModuleIsLive=This module has been activated. Any change on it may break a current active feature. DescriptionLong=Long description EditorName=Name of editor EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/ru_RU/oauth.lang b/htdocs/langs/ru_RU/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/ru_RU/oauth.lang +++ b/htdocs/langs/ru_RU/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/ru_RU/other.lang b/htdocs/langs/ru_RU/other.lang index 9e04daa2f8f..cdbcdd1d9e3 100644 --- a/htdocs/langs/ru_RU/other.lang +++ b/htdocs/langs/ru_RU/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=кг WeightUnitg=G WeightUnitmg=мг WeightUnitpound=фунт +WeightUnitounce=унция Length=Lengde LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/ru_RU/paybox.lang b/htdocs/langs/ru_RU/paybox.lang index 5fd1eaf8463..a85848e2873 100644 --- a/htdocs/langs/ru_RU/paybox.lang +++ b/htdocs/langs/ru_RU/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Электронная почта для подтверждения о Creditor=Кредитор PaymentCode=Код платежа PayBoxDoPayment=Перейти к оплате +ToPay=Совершить платеж YouWillBeRedirectedOnPayBox=Вы будете перенаправлены по обеспеченным Paybox страницу для ввода данных кредитной карточки Continue=Далее ToOfferALinkForOnlinePayment=URL-адрес для оплаты %s diff --git a/htdocs/langs/ru_RU/paypal.lang b/htdocs/langs/ru_RU/paypal.lang index cc2d1cdc981..6d61d7e6b49 100644 --- a/htdocs/langs/ru_RU/paypal.lang +++ b/htdocs/langs/ru_RU/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Это идентификатор транзакции: % PAYPAL_ADD_PAYMENT_URL=Добавить адрес Paypal оплата при отправке документа по почте PredefinedMailContentLink=Вы можете нажать на защищённую ссылку нижи для совершения платежа (PayPal), если вы ещё его не производили.\n\n%s\n YouAreCurrentlyInSandboxMode=В настоящее время вы в режиме "песочницы" -NewPaypalPaymentReceived=Получен новый платёж Paypal -NewPaypalPaymentFailed=Попытка нового Paypal платежа не удалась +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=Адрес электронной почты, куда будут высылаться уведомления о платежах (успешных или нет) ReturnURLAfterPayment=Ссылка, куда будет возвращаться пользователь после оплаты -ValidationOfPaypalPaymentFailed=Проверка платежа Paypal не удалась -PaypalConfirmPaymentPageWasCalledButFailed=Вызвана страница подтверждения платежа Paypal, но подтверждение от Paypal не поулчено. +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/ru_RU/printing.lang b/htdocs/langs/ru_RU/printing.lang index 1c967aea894..d61b5073a16 100644 --- a/htdocs/langs/ru_RU/printing.lang +++ b/htdocs/langs/ru_RU/printing.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=Direct Printing -Module64000Desc=Enable Direct Printing System +Module64000Name=Прямая печать +Module64000Desc=Включить систему прямой печати PrintingSetup=Настройки системы прямой печати PrintingDesc=Этот модуль добавляет кнопку Печать для отправки документа напрямую на принтер (без открытия документа в приложении) MenuDirectPrinting=Direct Printing jobs @@ -46,6 +46,6 @@ IPP_Media=Носитель IPP_Supported=Тип носителя DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Настройки для драйвера сервиса Google Cloud Print +PrintTestDescprintgcp=Список принтеров для сервиса Google Cloud Print diff --git a/htdocs/langs/ru_RU/products.lang b/htdocs/langs/ru_RU/products.lang index 375102352f6..2dc7122e025 100644 --- a/htdocs/langs/ru_RU/products.lang +++ b/htdocs/langs/ru_RU/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Товар или Услуга ProductsAndServices=Товары и Услуги ProductsOrServices=Товары или Услуги -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Товар для продажи и покупки -ServicesOnSell=Услуга для покупки или для продажи -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Услуга для продажи и покупки LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Второй +unitH=Час +unitD=День +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Ссылка на шаблон товара ServiceCodeModel=Ссылка на шаблон услуги CurrentProductPrice=Текущая цена @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Произведено ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Под-товар MinSupplierPrice=Минимальная цена поставщика MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Настройка динамического ценообразования -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Глобальные переменные VariableToUpdate=Variable to update GlobalVariableUpdaters=Обновители глобальных переменных +GlobalVariableUpdaterType0=Данные JSON +GlobalVariableUpdaterHelp0=Анализирует данные JSON из указанной ссылки, VALUE определяет местоположение соответствующего значения, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Данные модуля WebService +GlobalVariableUpdaterHelp1=Анализирует данные модуля WebService из указанной ссылки, NS задаёт пространство имён, VALUE определяет местоположение соответствующего значения, DATA должно содержать данные для отправки и METHOD вызова метода WS +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Интервал обновления (в минутах) LastUpdated=Latest update CorrectlyUpdated=Правильно обновлено @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/ru_RU/propal.lang b/htdocs/langs/ru_RU/propal.lang index 112f28d1ba5..8dffcce465d 100644 --- a/htdocs/langs/ru_RU/propal.lang +++ b/htdocs/langs/ru_RU/propal.lang @@ -3,7 +3,7 @@ Proposals=Коммерческие предложения Proposal=Коммерческое предложение ProposalShort=Предложение ProposalsDraft=Проект коммерческого предложения -ProposalsOpened=Открытие коммерческих предложений +ProposalsOpened=Открытые коммерческие предложения Prop=Коммерческие предложения CommercialProposal=Коммерческое предложение ProposalCard=Карточка предложения @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Сумма в месяц (за вычетом нал NbOfProposals=Количество коммерческих предложений ShowPropal=Показать предложение PropalsDraft=Черновики -PropalsOpened=Открыты +PropalsOpened=Открытые PropalStatusDraft=Проект (должно быть подтверждено) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Подпись (в законопроекте) diff --git a/htdocs/langs/ru_RU/resource.lang b/htdocs/langs/ru_RU/resource.lang index a16f9be1d12..2f07ce24a0c 100644 --- a/htdocs/langs/ru_RU/resource.lang +++ b/htdocs/langs/ru_RU/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Ресурс успешно удалён DictionaryResourceType=Тип ресурсов SelectResource=Выберете ресурс + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Ресурсы diff --git a/htdocs/langs/ru_RU/salaries.lang b/htdocs/langs/ru_RU/salaries.lang index b8e57d32292..ccfdece0180 100644 --- a/htdocs/langs/ru_RU/salaries.lang +++ b/htdocs/langs/ru_RU/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Бухгалтерский код для выплат зарплаты -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Бухгалтерский код для финансовых выплат +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Зарплата Salaries=Зарплаты NewSalaryPayment=Новая выплата зарплаты diff --git a/htdocs/langs/ru_RU/sendings.lang b/htdocs/langs/ru_RU/sendings.lang index 5470ccd1e78..c49565b0793 100644 --- a/htdocs/langs/ru_RU/sendings.lang +++ b/htdocs/langs/ru_RU/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Лист поставки ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Простая модель документа DocumentModelMerou=Модель A5 WarningNoQtyLeftToSend=Внимание, нет товаров ожидающих отправки. StatsOnShipmentsOnlyValidated=Статистика собирается только на утверждённые поставки. Используемая дата - дата утверждения поставки (планируемая дата доставки не всегда известна) @@ -51,10 +50,10 @@ ActionsOnShipping=События поставки LinkToTrackYourPackage=Ссылка на номер для отслеживания посылки ShipmentCreationIsDoneFromOrder=На данный момент, создание новой поставки закончено из карточки заказа. ShipmentLine=Линия поставки -ProductQtyInCustomersOrdersRunning=Количество товара в открытых заказах клиента -ProductQtyInSuppliersOrdersRunning=Количество товара в открытых заказах поставщика -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Количество товара из открытого заказа поставщика уже получено. +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/ru_RU/stocks.lang b/htdocs/langs/ru_RU/stocks.lang index c7a62bb6072..805f21822f4 100644 --- a/htdocs/langs/ru_RU/stocks.lang +++ b/htdocs/langs/ru_RU/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Отметка о перемещении NumberOfUnit=Количество единиц UnitPurchaseValue=Себестоимость единицы StockTooLow=Фондовый слишком низкими -StockLowerThanLimit=Остаток меньше предельно допустимого +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Значение PMPValue=Значение PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Запас товара на складе и запа QtyDispatched=Количество направил QtyDispatchedShort=Кол-во отправлено QtyToDispatchShort=Кол-во на отправку -OrderDispatch=Приказ диспетчерского +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Снижение реальных запасов на счета / кредитных нот @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Увеличение реальных запасов на счета / кредитных нот ReStockOnValidateOrder=Увеличение реальных запасов по заказам записки -ReStockOnDispatchOrder=Увеличение реальных запасов на ручной посылаем в склады, после получения заказа поставщиком +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Заказ еще не или не более статуса, который позволяет отправку товаров на складе склады. -StockDiffPhysicTeoric=Объяснение разницы между физическим и теоретическими запасами на складе +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Нет предопределенного продуктов для данного объекта. Так что не диспетчеризации в акции не требуется. DispatchVerb=Отправка StockLimitShort=Граница предупреждения StockLimit=Граница предупреждения о запасе на складе PhysicalStock=Физическая запас RealStock=Real фондовая +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Виртуальный запас +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Идентификатор склад DescWareHouse=Описание склада LieuWareHouse=Локализация склад @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Количество продукта %s в остатк NbOfProductAfterPeriod=Количество продукта %s в остатке на конец выбранного периода (< %s) MassMovement=Массовое перемещение SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Получатели заказа StockMovementRecorded=Перемещения остатков записаны RuleForStockAvailability=Правила и требования к запасу на складе @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Редактировать +inventoryValidate=Утверждена +inventoryDraft=В работе +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Создать +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Категория фильтр +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Добавить +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Удалить строки +RegulateStock=Regulate Stock +ListInventory=Список diff --git a/htdocs/langs/ru_RU/supplier_proposal.lang b/htdocs/langs/ru_RU/supplier_proposal.lang index 7cdd3f63d85..befb8a4ea20 100644 --- a/htdocs/langs/ru_RU/supplier_proposal.lang +++ b/htdocs/langs/ru_RU/supplier_proposal.lang @@ -3,12 +3,12 @@ SupplierProposal=Supplier commercial proposals supplier_proposalDESC=Manage price requests to suppliers SupplierProposalNew=New request CommRequest=Price request -CommRequests=Price requests +CommRequests=Запросы цены SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Предложения поставщику @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Проект (должно быть подтверждено) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Закрыты SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Отклонено @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Создание модели по умолчанию DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/ru_RU/suppliers.lang b/htdocs/langs/ru_RU/suppliers.lang index 8fe818f1dec..349038f0f99 100644 --- a/htdocs/langs/ru_RU/suppliers.lang +++ b/htdocs/langs/ru_RU/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Для субтоваров товаров не указана цена AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Цены поставщиков ReferenceSupplierIsAlreadyAssociatedWithAProduct=Эта ссылка поставщиком уже связан с ссылкой: %s NoRecordedSuppliers=Нет зарегистрированных поставщиков SupplierPayment=Оплаты поставщика @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Цены поставщиков diff --git a/htdocs/langs/ru_RU/trips.lang b/htdocs/langs/ru_RU/trips.lang index 7f4dbf15eb3..f2cf4593436 100644 --- a/htdocs/langs/ru_RU/trips.lang +++ b/htdocs/langs/ru_RU/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Список сборов TypeFees=Types of fees ShowTrip=Show expense report NewTrip=Новый отчёт о затртатах -CompanyVisited=Посещенная организация +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Сумма или километры DeleteTrip=Удалить отчёт о затратах ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -70,6 +70,7 @@ DATE_SAVE=Дата проверки DATE_CANCEL=Дата отмены DATE_PAIEMENT=Дата платежа BROUILLONNER=Открыть заново +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Проверить и отправить запрос на утверждение ValidatedWaitingApproval=Validated (waiting for approval) NOT_AUTHOR=Вы не автор этого отчёта о затратах. Операция отменена. @@ -87,5 +88,5 @@ NoTripsToExportCSV=Нет отчёта о затратах за этот пер ExpenseReportPayment=Expense report payment ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay -CloneExpenseReport=Clone expese report +CloneExpenseReport=Clone expense report ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/ru_RU/users.lang b/htdocs/langs/ru_RU/users.lang index 4a752f3f53f..b95fab7c300 100644 --- a/htdocs/langs/ru_RU/users.lang +++ b/htdocs/langs/ru_RU/users.lang @@ -66,8 +66,8 @@ InternalUser=Внутренний пользователь ExportDataset_user_1=Dolibarr пользователей и свойства DomainUser=Домен пользователя %s Reactivate=Возобновить -CreateInternalUserDesc=Эта форма позволяет вам создать внутреннего пользователя для вашей компании/фонда. Для создания внешнего пользователя (клиент, поставщик) используйте кнопку "Создать пользователя Dolibarr" из карточки контрагента. -InternalExternalDesc=Внутреннего пользователя является пользователем, который является частью вашей компании / Фонд.
Внешний пользователь клиента, поставщика или другого.

В обоих случаях разрешение определяет права на Dolibarr, а также внешних пользователей могут иметь разные меню менеджера, чем внутреннего пользователя (См. Главная - Настройки - дисплей) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Разрешение предоставляется, поскольку унаследовал от одного из пользователей в группы. Inherited=Унаследованный UserWillBeInternalUser=Созданный пользователь будет внутреннего пользователя (потому что не связаны с определенным третьим лицам) diff --git a/htdocs/langs/ru_RU/website.lang b/htdocs/langs/ru_RU/website.lang index 6197580711f..12f66a3cee3 100644 --- a/htdocs/langs/ru_RU/website.lang +++ b/htdocs/langs/ru_RU/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Код WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/ru_RU/withdrawals.lang b/htdocs/langs/ru_RU/withdrawals.lang index aee438538f9..d0a62bc4f4e 100644 --- a/htdocs/langs/ru_RU/withdrawals.lang +++ b/htdocs/langs/ru_RU/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Сумма снятия WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Нет счета клиента в оплате режиме "отозвать" ждет. Переход на "Вывод 'вкладки на счету карточки сделать запрос. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ответственный пользователь WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Причина для отказа RefusedInvoicing=Счета отказ NoInvoiceRefused=Не заряжайте отказ InvoiceRefused=Счёт отклонён (отказ платежа клиентом) +StatusDebitCredit=Status debit/credit StatusWaiting=Ожидание StatusTrans=Передающиеся StatusCredited=Кредитоваться diff --git a/htdocs/langs/sk_SK/accountancy.lang b/htdocs/langs/sk_SK/accountancy.lang index 0bbbf93b74d..28b30b5cdb7 100644 --- a/htdocs/langs/sk_SK/accountancy.lang +++ b/htdocs/langs/sk_SK/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Účet SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Priradenie dodávateľskej faktúry ExpenseReportsVentilation=Expense report binding CreateMvts=Vytvoriť novú tranzakciu UpdateMvts=Upraviť tranzakciu +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stav účtu @@ -142,6 +143,7 @@ NumPiece=Číslo kusu TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Nenastavené DeleteMvt=Delete Ledger lines DelYear=Rok na zmazanie @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Predaje AccountingJournalType3=Platby AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/sk_SK/admin.lang b/htdocs/langs/sk_SK/admin.lang index 56a8bdeb85b..bfdb0d8d480 100644 --- a/htdocs/langs/sk_SK/admin.lang +++ b/htdocs/langs/sk_SK/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Vyžiadať dodávateľskú obchodnú ponuku a ceny Module1200Name=Mantis Module1200Desc=Mantis integrácia Module1400Name=Účtovníctvo -Module1400Desc=Vedenie účtovníctva (dvojité strany) +Module1400Desc=Accounting management (double entries) Module1520Name=Generovanie dokumentov Module1520Desc=Masové emailové generovanie dokumentov Module1780Name=Štítky / Kategórie @@ -585,7 +585,7 @@ Module50100Desc=Modul predajné miesta ( POS ) Module50200Name=Paypal Module50200Desc=Modul ponúknuť on-line platby kreditnou kartou stránku s Paypal Module50400Name=Učtovníctvo (pokročilé) -Module50400Desc=Vedenie účtovníctva (dvojité strany) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa, Dotazník, Hlasovanie diff --git a/htdocs/langs/sk_SK/agenda.lang b/htdocs/langs/sk_SK/agenda.lang index d53dd52394f..0653833e2eb 100644 --- a/htdocs/langs/sk_SK/agenda.lang +++ b/htdocs/langs/sk_SK/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID udalosti Actions=Udalosti Agenda=Program rokovania +TMenuAgenda=Program rokovania Agendas=Program LocalAgenda=Interný kalendár ActionsOwnedBy=Udalosť vytvorená: @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Faktúra %s zmazaná InvoicePaidInDolibarr=Faktúra %s označená ako zaplatená InvoiceCanceledInDolibarr=Faktúra %s zrušená MemberValidatedInDolibarr=Užívateľ %s overený +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Užívateľ %s zrušený MemberDeletedInDolibarr=Užívateľ %s zmazaný MemberSubscriptionAddedInDolibarr=Predplatné pre užívateľa %s pridané ShipmentValidatedInDolibarr=Zásielka %s overená -ShipmentClassifyClosedInDolibarr=Zásielka %s označená ako faktúrovaná -ShipmentUnClassifyCloseddInDolibarr=Zásielka %s označená ako znovuotvorená +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Zásielka %s zmazaná OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Objednať %s overená @@ -73,13 +75,17 @@ InterventionSentByEMail=Zákrok %s odoslaný E-mailom ProposalDeleted=Ponuka zmazaná OrderDeleted=Objednávka zmazaná InvoiceDeleted=Faktúra zmazaná +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Dátum začatia DateActionEnd=Dátum ukončenia AgendaUrlOptions1=Môžete tiež pridať nasledujúce parametre filtrovania výstupu: -AgendaUrlOptions2=login=%s pre obmedzenie výstupu akciám vytvoreným alebo prideleným užívateľom %s. AgendaUrlOptions3=logina=%s pre obmedzenie výstupu akciam ktoré vlastní užívateľ %s. -AgendaUrlOptions4=logint = %s obmedziť výstup na akcie priradených užívateľských %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID pre obmedzenie výstupu akciam prideleným projektu PROJECT_ID. AgendaShowBirthdayEvents=Zobraziť narodeniny kontaktov AgendaHideBirthdayEvents=Skryť naroodeniny kontaktov diff --git a/htdocs/langs/sk_SK/banks.lang b/htdocs/langs/sk_SK/banks.lang index 968dc0c90ca..18a122998b9 100644 --- a/htdocs/langs/sk_SK/banks.lang +++ b/htdocs/langs/sk_SK/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID transakcie BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -80,7 +81,7 @@ AccountToDebit=Účet na vrub DisableConciliation=Zakázať zmierenie funkciu pre tento účet ConciliationDisabled=Odsúhlasenie funkcia vypnutá LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Otvorené +StatusAccountOpened=Otvorení StatusAccountClosed=Zatvorené AccountIdShort=Číslo LineRecord=Transakcie @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Šek vrátený a faktúra znova otvorená BankAccountModelModule=Šablóny dokumentov pre bankové účty DocumentModelSepaMandate=Šablóny SEPA. Užitočné iba pre krajiny v EEC DocumentModelBan=Šablóna pre tlač strany s BAN informáciami +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sk_SK/bills.lang b/htdocs/langs/sk_SK/bills.lang index 1cbc4b74637..3c50d388a96 100644 --- a/htdocs/langs/sk_SK/bills.lang +++ b/htdocs/langs/sk_SK/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Vypnuté lebo nemôze byť zmazané InvoiceStandard=Štandardné faktúra InvoiceStandardAsk=Štandardné faktúra InvoiceStandardDesc=Tento druh faktúry je spoločná faktúra. -InvoiceDeposit=Zálohové faktúry -InvoiceDepositAsk=Zálohové faktúry -InvoiceDepositDesc=Tento druh faktúry sa deje, keď je záloha bola prijatá. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma faktúra InvoiceProFormaAsk=Proforma faktúra InvoiceProFormaDesc=Proforma faktúra je obraz skutočnej faktúry, ale nemá evidencia hodnotu. @@ -62,7 +62,7 @@ PaymentsBack=Platby späť paymentInInvoiceCurrency=in invoices currency PaidBack=Platené späť DeletePayment=Odstrániť platby -ConfirmDeletePayment=Ste si istí, že chcete zmazať túto platbu? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Dodávatelia platby ReceivedPayments=Prijaté platby @@ -115,7 +115,7 @@ BillStatus=Stav faktúry StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Návrh (musí byť overená) BillStatusPaid=Platený -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Platená (pripravená pre záverečné faktúre) BillStatusCanceled=Opustený BillStatusValidated=Overené (potrebné venovať) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Platené (čiastočne) BillShortStatusDraft=Návrh BillShortStatusPaid=Platený BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Spracované +BillShortStatusConverted=Platený BillShortStatusCanceled=Opustený BillShortStatusValidated=Overené BillShortStatusStarted=Začíname @@ -198,12 +198,12 @@ ShowBill=Zobraziť faktúru ShowInvoice=Zobraziť faktúru ShowInvoiceReplace=Zobraziť výmene faktúru ShowInvoiceAvoir=Zobraziť dobropis -ShowInvoiceDeposit=Zobraziť zálohovú faktúru +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Zobraziť platbu AlreadyPaid=Už zaplatené AlreadyPaidBack=Už vráti -AlreadyPaidNoCreditNotesNoDeposits=Už zaplatená (bez dobropisov a vklady) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Opustený RemainderToPay=Zostávajúce nezaplatené RemainderToTake=Zostávajúce suma na prebratie @@ -270,10 +270,10 @@ RelativeDiscount=Relatívna zľava GlobalDiscount=Globálne zľava CreditNote=Dobropis CreditNotes=Dobropisy -Deposit=Záloha -Deposits=Vklady +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Zľava z %s dobropisu -DiscountFromDeposit=Platby z %s zálohovú faktúru +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Tento druh úveru je možné použiť na faktúre pred jeho overenie CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Predpokladaný platba CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Zaplatené touto platbou -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Bill počnúc $ syymm už existuje a nie je kompatibilný s týmto modelom sekvencie. Vyberte ju a premenujte ho na aktiváciu tohto modulu. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Zástupca nasledujúce-up zákazník faktúru TypeContact_facture_external_BILLING=Zákazník faktúra kontakt diff --git a/htdocs/langs/sk_SK/bookmarks.lang b/htdocs/langs/sk_SK/bookmarks.lang index c31ec837ee0..815387d2dd0 100644 --- a/htdocs/langs/sk_SK/bookmarks.lang +++ b/htdocs/langs/sk_SK/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Pridať stránku do záložiek +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Záložka Bookmarks=Záložky +ListOfBookmarks=Zoznam záložiek +EditBookmarks=List/edit bookmarks NewBookmark=Nová záložka ShowBookmark=Zobraziť záložku OpenANewWindow=Otvorenie nového okna @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Aktuálne okno BookmarkTitle=Záložka titul UrlOrLink=URL -BehaviourOnClick=Správanie pri kliknutí na URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Vytvoriť záložku SetHereATitleForLink=Nastavte názov pre záložku UseAnExternalHttpLinkOrRelativeDolibarrLink=Použite externú http adresu URL alebo relatívnu adresu URL Dolibarr diff --git a/htdocs/langs/sk_SK/boxes.lang b/htdocs/langs/sk_SK/boxes.lang index e27f00cb7db..7a81eacb5ce 100644 --- a/htdocs/langs/sk_SK/boxes.lang +++ b/htdocs/langs/sk_SK/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss informácie BoxLastProducts=Najnovšie %s produkty/služby BoxProductsAlertStock=Upozornenia skladu pre produkt @@ -82,3 +83,4 @@ ForCustomersOrders=Zákazníci objednávky ForProposals=Návrhy LastXMonthRolling=Posledný %s mesiac postupu ChooseBoxToAdd=Pridať blok na nástenku +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sk_SK/cashdesk.lang b/htdocs/langs/sk_SK/cashdesk.lang index c6e63000bfb..d25ddfaba61 100644 --- a/htdocs/langs/sk_SK/cashdesk.lang +++ b/htdocs/langs/sk_SK/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Rozdiel TotalTicket=Celkom vstupeniek NoVAT=Bez DPH pre tento predaj Change=Nadbytok obdržal -BankToPay=Úverové konto +BankToPay=Account for payment ShowCompany=Zobraziť spoločnosť ShowStock=Zobraziť skladu DeleteArticle=Kliknutím odstránite tento článok diff --git a/htdocs/langs/sk_SK/categories.lang b/htdocs/langs/sk_SK/categories.lang index e299e423d2d..87d1a04d11b 100644 --- a/htdocs/langs/sk_SK/categories.lang +++ b/htdocs/langs/sk_SK/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category -Rubriques=Tags/Categories +Rubriques=Štítky / Kategórie +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=V @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Táto kategória už existuje s týmto čj ContentsVisibleByAllShort=Obsah viditeľné všetkými ContentsNotVisibleByAllShort=Obsah nie je vidieť všetci DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=Doplnkové atribúty CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/sk_SK/commercial.lang b/htdocs/langs/sk_SK/commercial.lang index df7be4a9b5c..4f3f652660e 100644 --- a/htdocs/langs/sk_SK/commercial.lang +++ b/htdocs/langs/sk_SK/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Stretnutie s %s ShowTask=Zobraziť úloha ShowAction=Zobraziť akcie ActionsReport=Udalosti správu -ThirdPartiesOfSaleRepresentative=Thirdparties s obchodným zástupcom +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Obchodný zástupca SalesRepresentatives=Obchodní zástupcovia SalesRepresentativeFollowUp=Obchodný zástupca (pokračovanie) diff --git a/htdocs/langs/sk_SK/companies.lang b/htdocs/langs/sk_SK/companies.lang index 6e3749b17a4..3de2b6ad3eb 100644 --- a/htdocs/langs/sk_SK/companies.lang +++ b/htdocs/langs/sk_SK/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nová súkromná osoba NewCompany=Nová spoločnosť (vyhliadka, zákazník, dodávateľ) NewThirdParty=Nový tretia strana (vyhliadka, zákazník, dodávateľ) CreateDolibarrThirdPartySupplier=Vytvoriť tretiu stranu (dodávateľa) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Vytvoriť tretiu stranu CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospekcia plochy IdThirdParty=Id treťou stranou @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Zákazníci ThirdPartyCustomersWithIdProf12=Zákazníci s %s alebo %s ThirdPartySuppliers=Dodávatelia ThirdPartyType=Tretí typ vyhľadávajúci večierky -Company/Fundation=Spoločnosti / Nadácia Individual=Súkromná osoba ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Materská spoločnosť @@ -78,10 +77,10 @@ VATIsNotUsed=DPH sa nepoužíva CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Návrhy +OverAllOrders=Objednávky +OverAllInvoices=Faktúry +OverAllSupplierProposals=Cenové požiadávky ##### Local Taxes ##### LocalTax1IsUsed=Použitie druhej dane LocalTax1IsUsedES= RE sa používa @@ -237,6 +236,12 @@ ProfId3TN=Prof ID 3 (Douane kód) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof ID 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relatívna zľava CustomerAbsoluteDiscountShort=Absolútna zľava CompanyHasRelativeDiscount=Tento zákazník má predvolenú zľavu %s%% CompanyHasNoRelativeDiscount=Tento zákazník nemá relatívnej zľavu v predvolenom nastavení -CompanyHasAbsoluteDiscount=Tento zákazník má ešte zľavu úveru alebo zálohy na %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Tento zákazník má stále dobropisy pre %s %s CompanyHasNoAbsoluteDiscount=Tento zákazník nemá diskontné úver k dispozícii CustomerAbsoluteDiscountAllUsers=Absolútna zľavy (udelená všetkým užívateľom) @@ -390,7 +395,7 @@ ListCustomersShort=Zoznam zákazníkov ThirdPartiesArea=Oblasť tretích strán a kontaktov LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Celkom jedinečné tretích strán -InActivity=Otvorené +InActivity=Otvorení ActivityCeased=Zatvorené ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kód je zadarmo. Tento kód je možné kedykoľvek zmeni ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sk_SK/contracts.lang b/htdocs/langs/sk_SK/contracts.lang index ec92729ec98..97c06c1430a 100644 --- a/htdocs/langs/sk_SK/contracts.lang +++ b/htdocs/langs/sk_SK/contracts.lang @@ -32,13 +32,13 @@ NewContractSubscription=Nová zmluva/predplatné AddContract=Vytvoriť zmluvu DeleteAContract=Odstránenie zmluvu CloseAContract=Zavrieť zmluvu -ConfirmDeleteAContract=Ste si istí, že chcete zmazať túto zmluvu a všetky jeho služby? -ConfirmValidateContract=Ste si istí, že chcete overiť túto zmluvu pod názvom %s? -ConfirmCloseContract=Tým sa uzavrie všetky služby (aktívne alebo nie). Ste si istí, že chcete ukončiť túto zmluvu? -ConfirmCloseService=Ste si istí, že chcete ukončiť túto službu s dátumom %s? +ConfirmDeleteAContract=Are you sure you want to delete this contract and all its services? +ConfirmValidateContract=Are you sure you want to validate this contract under name %s? +ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? +ConfirmCloseService=Are you sure you want to close this service with date %s? ValidateAContract=Overenie zmluvu ActivateService=Aktivácia služby -ConfirmActivateService=Ste si istí, že chcete aktivovať túto službu s dátumom %s? +ConfirmActivateService=Are you sure you want to activate this service with date %s? RefContract=Zmluva referencie DateContract=Dátum zmluvy DateServiceActivate=Aktivácia služby Dátum @@ -69,10 +69,10 @@ DraftContracts=Koncepty zmluvy CloseRefusedBecauseOneServiceActive=Zmluva nemôže byť uzavretý Tam je aspoň jedna otvorená služba na neho CloseAllContracts=Zatvorte všetky zmluvné linky DeleteContractLine=Odstránenie riadka zmluvy -ConfirmDeleteContractLine=Ste si istí, že chcete zmazať túto riadku zmluvy? +ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=Presuňte službu do inej zmluve. ConfirmMoveToAnotherContract=Vybral som novú cieľovú zmluvy, a potvrdzujem, že chcete presunúť túto službu do tohto zmluvného vzťahu. -ConfirmMoveToAnotherContractQuestion=Vyberte by existujúce zmluvy (z tej istej tretej osobe), ktorú chcete presunúť túto službu? +ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? PaymentRenewContractId=Obnoviť zmluvu línia (číslo %s) ExpiredSince=Dátum spotreby NoExpiredServices=Žiadne skončila aktívnej služby @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Tento zoznam obsahuje iba služby zmlúv pre treti StandardContractsTemplate=Šablóna štandardnej zmluvy ContactNameAndSignature=Pre %s, meno a podpis: OnlyLinesWithTypeServiceAreUsed=Iba riadky označené ako "Služba" budú skopírované +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Obchodný zástupca podpise zmluvy diff --git a/htdocs/langs/sk_SK/exports.lang b/htdocs/langs/sk_SK/exports.lang index ebd9f9ff533..5aebec14a4c 100644 --- a/htdocs/langs/sk_SK/exports.lang +++ b/htdocs/langs/sk_SK/exports.lang @@ -26,8 +26,6 @@ FieldTitle=Polia názov NowClickToGenerateToBuildExportFile=Teraz vyberte formát súboru v poli so zoznamom a kliknite na "Vytvoriť" stavať súbor exportu ... AvailableFormats=Dostupné formáty LibraryShort=Knižnica -LibraryUsed=Knižnica používa -LibraryVersion=Verzia Step=Krok FormatedImport=Import assistant FormatedImportDesc1=This area allows to import personalized data, using an assistant to help you in process without technical knowledge. @@ -87,7 +85,7 @@ TooMuchWarnings=Tam je ešte %s ďalšie zdrojové riadky s varovaním, a EmptyLine=Prázdny riadok (budú odstránené) CorrectErrorBeforeRunningImport=Najprv je nutné opraviť všetky chyby pred spustením trvalému dovozu. FileWasImported=Súbor bol importovaný s číslom %s. -YouCanUseImportIdToFindRecord=Nájdete tu všetky importované záznamy v databáze filtrovaním poľa import_key = "%s". +YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. NbOfLinesOK=Počet riadkov bez chýb a bez varovania: %s. NbOfLinesImported=Počet riadkov úspešne importovaných: %s. DataComeFromNoWhere=Hodnota vložiť pochádza z ničoho nič v zdrojovom súbore. @@ -105,20 +103,31 @@ CSVFormatDesc=Hodnoty oddelené čiarkami formát súboru (. Csv).
J Excel95FormatDesc=Excel formát súboru (. Xls)
Toto je natívny formát programu Excel 95 (BIFF5). Excel2007FormatDesc=Excel formát súboru (. Xlsx)
Toto je natívny formát programu Excel 2007 (SpreadsheetML). TsvFormatDesc=Tab Hodnoty oddelené formát súboru (. TSV)
Jedná sa o textový formát súboru, kde sú polia oddelené tabulátorom [Tab]. -ExportFieldAutomaticallyAdded=Terénne %s bol automaticky pridaný. Bude vám vyhnúť sa majú podobné trate, ktoré budú považované za duplicitné záznamy (s toto pole pridané, budú všetky riadky vlastniť id a bude sa líšiť). +ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). CsvOptions=Csv možnosti Separator=Oddeľovač Enclosure=Príloha SpecialCode=Špeciálny kód ExportStringFilter=%% umožňuje nahradenie jedného alebo viac znakov v texte ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtre podľa jedného rok/mesiac/deň
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtre cez hodnotu roky/mesiace/dni
> YYYY, > YYYYMM, > YYYYMMDD : filtre na nasledujúce roky/mesiace/dni
< YYYY, < YYYYMM, < YYYYMMDD : filtre na predchádzajúce roky/mesiace/dni -ExportNumericFilter='NNNNN' filtre podľa hodnoty
'NNNNN+NNNNN' filtre cez rozsah hodnôt
'>NNNNN' filtre podľa najnižšej hodnoty
'>NNNNN' filtre podľa najvyššej +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import začína od riadka číslo EndAtLineNb=Číslo konca riadka +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Napríklad, nastavte túto hodnotu na 3 pre vynechanie prvých 2 riadkov KeepEmptyToGoToEndOfFile=Nechajte tento riadok prázdny pre skok na koniec dokumentu +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Ak chcete filtrovať niektoré hodnoty, stačí zadať hodnoty tu. FilteredFields=Filtrované polia FilteredFieldsValues=Hodnota za filtrom FormatControlRule=Nastavte kontrolné pravidlo +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sk_SK/holiday.lang b/htdocs/langs/sk_SK/holiday.lang index 31691d35d02..d981c5a1b2e 100644 --- a/htdocs/langs/sk_SK/holiday.lang +++ b/htdocs/langs/sk_SK/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Zrušený RefuseCP=Odmietol ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Bude preskúmaná +ReviewedByCP=Will be approved by DescCP=Popis SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/sk_SK/install.lang b/htdocs/langs/sk_SK/install.lang index 3b151509786..18f6746d025 100644 --- a/htdocs/langs/sk_SK/install.lang +++ b/htdocs/langs/sk_SK/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Používate Dolibarr inštalátor z DoliWamp čiže hodnot KeepDefaultValuesDeb=Používate Dolibarr inštalátor z Linux balíčka (Ubuntu, Debian, Fedora...), čiže hodnoty sú už optimalizované. Iba nastavenia hesla databáze su potrebné. Ostatné parametrezmente iba v prípade, že viete čo robíte. KeepDefaultValuesMamp=Používate Dolibarr inštalátor z DoliMamp čiže hodnoty sú už optimalizované. Zmenite ich iba v prípade, že viete čo robíte. KeepDefaultValuesProxmox=Používate Dolibarr inštalátor z Proxmox čiže hodnoty sú už optimalizované. Zmenite ich iba v prípade, že viete čo robíte. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sk_SK/interventions.lang b/htdocs/langs/sk_SK/interventions.lang index 4872b311ffb..29eded4f3d5 100644 --- a/htdocs/langs/sk_SK/interventions.lang +++ b/htdocs/langs/sk_SK/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Zásah %s odstránený InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Najnovšie %s upravené zásahy +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=V nadväznosti kontakt so zákazníkom # Modele numérotation diff --git a/htdocs/langs/sk_SK/languages.lang b/htdocs/langs/sk_SK/languages.lang index 2831aabf612..066cf3268e1 100644 --- a/htdocs/langs/sk_SK/languages.lang +++ b/htdocs/langs/sk_SK/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Nemčina Language_de_AT=Nemčina (Rakúsko) Language_de_CH=Nemčina (Švajčiarsko) Language_el_GR=Grék +Language_el_CY=Greek (Cyprus) Language_en_AU=Angličtina (Austrália) Language_en_CA=Angličtina (Kanada) Language_en_GB=Angličtina (Veľká Británia) @@ -26,8 +27,10 @@ Language_es_BO=Španělština (Bolívia) Language_es_CL=Španielčina (Chile) Language_es_CO=Španielčina (Kolumbia) Language_es_DO=Španielčina (Dominikánska Republika) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Španielčina (Honduras) Language_es_MX=Španielčina (Mexiko) +Language_es_PA=Spanish (Panama) Language_es_PY=Španielčina (Paraguaj) Language_es_PE=Španielčina (Peru) Language_es_PR=Španielčina (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Islandský Language_it_IT=Taliančina Language_ja_JP=Japonština Language_ka_GE=Gruzínčina +Language_km_KH=Khmer Language_kn_IN=Kannadština Language_ko_KR=Kórejčina Language_lo_LA=Laoština Language_lt_LT=Litovský Language_lv_LV=Lotyština Language_mk_MK=Macedónsky +Language_mn_MN=Mongolian Language_nb_NO=Nórčina (Bokmål) Language_nl_BE=Holanďština (Belgicko) Language_nl_NL=Holandština (Holandsko) diff --git a/htdocs/langs/sk_SK/link.lang b/htdocs/langs/sk_SK/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/sk_SK/link.lang +++ b/htdocs/langs/sk_SK/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/sk_SK/loan.lang b/htdocs/langs/sk_SK/loan.lang index e6a12bc092b..f267da5524b 100644 --- a/htdocs/langs/sk_SK/loan.lang +++ b/htdocs/langs/sk_SK/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sk_SK/mails.lang b/htdocs/langs/sk_SK/mails.lang index ebc1a5b2900..71a098f9944 100644 --- a/htdocs/langs/sk_SK/mails.lang +++ b/htdocs/langs/sk_SK/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Odoslané čiastočne MailingStatusSentCompletely=Odoslané úplne MailingStatusError=Chyba MailingStatusNotSent=Neposlal -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=E-mailom úspešne overená MailUnsubcribe=Odhlásiť MailingStatusNotContact=Nedotýkajte sa už @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linka %s v súbore @@ -116,8 +120,8 @@ Notifications=Upozornenie NoNotificationsWillBeSent=Žiadne oznámenia e-mailom sú naplánované pre túto udalosť a spoločnosť ANotificationsWillBeSent=1 bude zaslaný e-mailom SomeNotificationsWillBeSent=%s oznámenia bude zaslané e-mailom -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Vypísať všetky e-maily odosielané oznámenia MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/sk_SK/main.lang b/htdocs/langs/sk_SK/main.lang index e16ed9ff52d..d5ae6bd5a1e 100644 --- a/htdocs/langs/sk_SK/main.lang +++ b/htdocs/langs/sk_SK/main.lang @@ -72,8 +72,10 @@ SeeHere=Viď tu Apply=Platiť BackgroundColorByDefault=Predvolené farba pozadia FileRenamed=The file was successfully renamed -FileUploaded=Súbor sa úspešne nahral FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Súbor sa úspešne nahral +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Súbor vybraný pre pripojenie, ale ešte nebol nahraný. Kliknite na "Priložiť súbor" za to. NbOfEntries=Nb záznamov GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Celkom RE TotalLT2ES=Celkom IRPF HT=Po odpočítaní dane TTC=Inc daň +INCT=Inc. all taxes VAT=Daň z obratu VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=október MonthShort11=november MonthShort12=decembra AttachedFiles=Priložené súbory a dokumenty -FileTransferComplete=Súbor bol úspešne nahraný DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH: SS diff --git a/htdocs/langs/sk_SK/margins.lang b/htdocs/langs/sk_SK/margins.lang index 92cda82858c..461d45ea0cf 100644 --- a/htdocs/langs/sk_SK/margins.lang +++ b/htdocs/langs/sk_SK/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sk_SK/members.lang b/htdocs/langs/sk_SK/members.lang index cf66b353aff..7155d5f4e16 100644 --- a/htdocs/langs/sk_SK/members.lang +++ b/htdocs/langs/sk_SK/members.lang @@ -70,7 +70,7 @@ NoTypeDefinedGoToSetup=Žiadny člen definované typy. Choď na menu "Člen NewMemberType=Nový člen typu WelcomeEMail=Vitajte e-mail SubscriptionRequired=Predplatné vyžadovalo -DeleteType=Vymazať +DeleteType=Odstrániť VoteAllowed=Hlasovať povolená Physical=Fyzikálne Moral=Morálna @@ -90,6 +90,7 @@ PublicMemberList=Verejný zoznam členov BlankSubscriptionForm=Verejné auto-prihlášku, BlankSubscriptionFormDesc=Dolibarr vám môže poskytnúť verejnú adresu URL, aby externí návštevníkov požiadať prihlásiť k odberu nadáciu. Je-li on-line platobný modul je povolený, bude platba forma tiež poskytované automaticky. EnablePublicSubscriptionForm=Povoliť verejné auto-prihlasovací formulár +ForceMemberType=Force the member type ExportDataset_member_1=Členovia a predplatné ImportDataset_member_1=Členovia LastMembersModified=Naposledy %s modifikovaní používatelia @@ -135,7 +136,7 @@ LinkToGeneratedPagesDesc=Táto obrazovka umožňuje vytvárať PDF súbory s viz DocForAllMembersCards=Vytvoriť vizitky pre všetkých členov DocForOneMemberCards=Vytvoriť vizitky pre konkrétny člena DocForLabels=Vytvoriť adresy listy -SubscriptionPayment=Zasielanie noviniek platba +SubscriptionPayment=Odberatelská platba LastSubscriptionDate=Latest subscription date LastSubscriptionAmount=Latest subscription amount MembersStatisticsByCountries=Členovia Štatistiky podľa krajiny @@ -150,6 +151,7 @@ MembersByTownDesc=Táto obrazovka vám ukáže štatistiku členom mesta. MembersStatisticsDesc=Zvoľte štatistík, ktoré chcete čítať ... MenuMembersStats=Štatistika LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Príroda Public=Informácie sú verejné NewMemberbyWeb=Nový užívateľ pridaný. Čaká na schválenie diff --git a/htdocs/langs/sk_SK/modulebuilder.lang b/htdocs/langs/sk_SK/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/sk_SK/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/sk_SK/oauth.lang b/htdocs/langs/sk_SK/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/sk_SK/oauth.lang +++ b/htdocs/langs/sk_SK/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/sk_SK/other.lang b/htdocs/langs/sk_SK/other.lang index 89dd366e930..9c989b9df04 100644 --- a/htdocs/langs/sk_SK/other.lang +++ b/htdocs/langs/sk_SK/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=libra +WeightUnitounce=unca Length=Dĺžka LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sk_SK/paybox.lang b/htdocs/langs/sk_SK/paybox.lang index 0f90dd5aa01..98194cd9879 100644 --- a/htdocs/langs/sk_SK/paybox.lang +++ b/htdocs/langs/sk_SK/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-mail obdržať potvrdenie platby Creditor=Veriteľ PaymentCode=Platobné kód PayBoxDoPayment=Ísť na zaplatenie +ToPay=Do platbu YouWillBeRedirectedOnPayBox=Budete presmerovaný na zabezpečené stránky Paybox vstupné vás informácie o kreditnej karte Continue=Ďalšie ToOfferALinkForOnlinePayment=URL pre %s platby diff --git a/htdocs/langs/sk_SK/paypal.lang b/htdocs/langs/sk_SK/paypal.lang index a1bdd77fead..9842cd63afa 100644 --- a/htdocs/langs/sk_SK/paypal.lang +++ b/htdocs/langs/sk_SK/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=To je id transakcie: %s PAYPAL_ADD_PAYMENT_URL=Pridať URL Paypal platby pri odoslaní dokumentu e-mailom PredefinedMailContentLink=Môžete kliknúť na nižšie uvedený odkaz bezpečné vykonať platbu (PayPal), ak sa tak už nebolo urobené. \n\n %s \n\n YouAreCurrentlyInSandboxMode=Tie sú v súčasnej dobe v "sandbox" módu -NewPaypalPaymentReceived=Nový Paypal prijaté platby -NewPaypalPaymentFailed=Nový Paypal platobný snažil sa ale prepadal +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-mail upozorniť po platbe (úspech alebo nie) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sk_SK/printing.lang b/htdocs/langs/sk_SK/printing.lang index d6cf49bd525..099c8501db6 100644 --- a/htdocs/langs/sk_SK/printing.lang +++ b/htdocs/langs/sk_SK/printing.lang @@ -8,7 +8,7 @@ DirectPrint=Direct print PrintingDriverDesc=Configuration variables for printing driver. ListDrivers=List of drivers PrintTestDesc=List of Printers. -FileWasSentToPrinter=File %s was sent to printer +FileWasSentToPrinter=Súbor %s bol odoslaný na tlač NoActivePrintingModuleFound=No active module to print document PleaseSelectaDriverfromList=Please select a driver from list. PleaseConfigureDriverfromList=Please configure the selected driver from list. @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=Názov GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -27,25 +27,25 @@ GCP_State=Printer State GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. -PRINTIPP_HOST=Print server +PRINTIPP_HOST=Tlačový server PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password -NoDefaultPrinterDefined=No default printer defined -DefaultPrinter=Default printer -Printer=Printer +PRINTIPP_USER=Prihlasovacie meno +PRINTIPP_PASSWORD=Heslo +NoDefaultPrinterDefined=Nie je nastavená predvolená tlačiareň +DefaultPrinter=Predvolená tlačiareň +Printer=Tlačiareň IPP_Uri=Printer Uri IPP_Name=Printer Name IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Farba IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/sk_SK/products.lang b/htdocs/langs/sk_SK/products.lang index 6905ba7d843..a5003fe35d8 100644 --- a/htdocs/langs/sk_SK/products.lang +++ b/htdocs/langs/sk_SK/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Účtovný kód (predaj) ProductOrService=Produkt alebo služba ProductsAndServices=Produkty a služby ProductsOrServices=Produkty alebo služby -ProductsOnSell=Produkt na predaj alebo kúpu -ProductsNotOnSell=Produkt nie je na predaj alebo kúpu +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produkt na predaj a kúpu -ServicesOnSell=Služba na predaj alebo kúpu -ServicesNotOnSell=Služba nie je na predaj +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Služba na predaj a kúpu LastModifiedProductsAndServices=Naposledy %s upravené produkty/služby LastRecordedProducts=Naposledy %s uložené produkty @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Druhý +unitH=Hodina +unitD=Deň +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Referenčná šablóna produktu ServiceCodeModel=Referenčná šablóna služby CurrentProductPrice=Aktuálna cena @@ -186,6 +200,7 @@ MultipriceRules=Pravidlá cenových oblastí UseMultipriceRules=Použit cenové oblasti ( definované v nastavenia produktového modulu ) pre automatický výpočet ceny ostatných oblastí podľa prvej oblasti. PercentVariationOver=%% zmena cez %s PercentDiscountOver=%% zľava cez %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Vyrobiť ProductsMultiPrice=Produkty a ceny pre každú cenovú oblasť @@ -232,12 +247,18 @@ ComposedProduct=Pod-produkt MinSupplierPrice=Minimálna dodávateľská cena MinCustomerPrice=Minimálna zákaznícka cena DynamicPriceConfiguration=Nastavenie dynamickej ceny -DynamicPriceDesc=S tímto modulom zapnutým by ste mali mať možnosť nastaviť matematické funkcie pre výpočet Zákazníckej alebo Dodávateľskej ceny na karte produktu. Tu môžete nastaviť premenné ktoré chcete aby Dolibarr automaticky aktualizoval +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Pridať premennú AddUpdater=Pridať aktualizátor GlobalVariables=Globálna premenná VariableToUpdate=Premenná pre úpravu GlobalVariableUpdaters=Upravovač globálnej premennej +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Upraviť interval (minúty) LastUpdated=Latest update CorrectlyUpdated=Správne upravené @@ -260,6 +281,8 @@ SizeUnits=Jednotka veľkosti DeleteProductBuyPrice=Zmazat nákupnú cenu ConfirmDeleteProductBuyPrice=Určite chcete zmazať túto nákupnú cenu ? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sk_SK/propal.lang b/htdocs/langs/sk_SK/propal.lang index dd16d67b4a2..7270e5c3e26 100644 --- a/htdocs/langs/sk_SK/propal.lang +++ b/htdocs/langs/sk_SK/propal.lang @@ -3,7 +3,7 @@ Proposals=Komerčné návrhy Proposal=Komerčné návrh ProposalShort=Návrh ProposalsDraft=Navrhnúť obchodné návrhy -ProposalsOpened=Otvorené obchodné návrhy +ProposalsOpened=Otvoriť komerčnú ponuku Prop=Komerčné návrhy CommercialProposal=Komerčné návrh ProposalCard=Návrh karty @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Suma, o mesiac (bez DPH) NbOfProposals=Počet obchodných návrhov ShowPropal=Zobraziť návrhu PropalsDraft=Dáma -PropalsOpened=Otvorené +PropalsOpened=Otvorení PropalStatusDraft=Návrh (musí byť overená) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Podpis (potreby fakturácia) diff --git a/htdocs/langs/sk_SK/resource.lang b/htdocs/langs/sk_SK/resource.lang index 214d0b66aa6..192eac5c50c 100644 --- a/htdocs/langs/sk_SK/resource.lang +++ b/htdocs/langs/sk_SK/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Zdroj úspešne zmazaný DictionaryResourceType=Typ zdroja SelectResource=Vybrať zdroj + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Zdroje diff --git a/htdocs/langs/sk_SK/salaries.lang b/htdocs/langs/sk_SK/salaries.lang index 752af88f226..ed207112a4a 100644 --- a/htdocs/langs/sk_SK/salaries.lang +++ b/htdocs/langs/sk_SK/salaries.lang @@ -1,14 +1,15 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Účtovný kód pre výplatu miezd -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Účtovný kód pre zrážky +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Základný účtovný účet pre osobný rozvoj Salary=Mzda Salaries=Mzdy NewSalaryPayment=Nová výplata mzdy SalaryPayment=Výplata mzdy SalariesPayments=Výplaty miezd ShowSalaryPayment=Ukázať výplatu mzdy -THM=Average hourly rate -TJM=Average daily rate +THM=Priemerná hodinová mzda +TJM=priemerná denná mzda CurrentSalary=Súčasná mzda -THMDescription=This value may be used to calculate cost of time consumed on a project entered by users if module project is used -TJMDescription=This value is currently as information only and is not used for any calculation +THMDescription=Táto hodnota môže byť použitá pre výpočet ceny času stráveného na projekte užívateľom ak modul Projekt je použitý +TJMDescription=Táto hoidnota je iba informačná a nie je použitá pre kalkulácie diff --git a/htdocs/langs/sk_SK/sendings.lang b/htdocs/langs/sk_SK/sendings.lang index 967c1255fe5..158086a4eee 100644 --- a/htdocs/langs/sk_SK/sendings.lang +++ b/htdocs/langs/sk_SK/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Zásielkový hárok ConfirmDeleteSending=Určite chcete zmazať túto zásielku ? ConfirmValidateSending=Určite chcete overiť túto zásielku s odkazom %s? ConfirmCancelSending=Určite chcete zrušiť túto zásielku ? -DocumentModelSimple=Jednoduché Vzor dokladu DocumentModelMerou=Mero A5 modelu WarningNoQtyLeftToSend=Varovanie: žiadny tovar majú byť dodané. StatsOnShipmentsOnlyValidated=Štatistiky vykonaná na zásielky iba overených. Dátum použité je dátum schválenia zásielky (plánovaný dátum dodania nie je vždy známe). @@ -51,10 +50,10 @@ ActionsOnShipping=Udalosti na zásielky LinkToTrackYourPackage=Odkaz pre sledovanie balíkov ShipmentCreationIsDoneFromOrder=Pre túto chvíľu, je vytvorenie novej zásielky vykonať z objednávky karty. ShipmentLine=Zásielka linka -ProductQtyInCustomersOrdersRunning=Quantita produktu pre otvorené zákaznícke objednávky -ProductQtyInSuppliersOrdersRunning=Quantita produktu pre otvorené dodávatelské objednávky -ProductQtyInShipmentAlreadySent=Quantita produktu z otvorených odoslaných zákazníckych objednávok -ProductQtyInSuppliersShipmentAlreadyRecevied=Quantita produktu z otvorených prijatých dodávatelských objednávok +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Produkt na odoslanie nenájdený v sklade %s. Upravte zásoby alebo chodte späť a vyberte iný sklad. WeightVolShort=Váha/Objem ValidateOrderFirstBeforeShipment=Najprv musíte overiť objednávku pred vytvorením zásielky. diff --git a/htdocs/langs/sk_SK/sms.lang b/htdocs/langs/sk_SK/sms.lang index cda868dae11..5fdc5b7002b 100644 --- a/htdocs/langs/sk_SK/sms.lang +++ b/htdocs/langs/sk_SK/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=Neposlal SmsSuccessfulySent=Sms správne poslal (od %s %s do) ErrorSmsRecipientIsEmpty=Počet cieľa je prázdny WarningNoSmsAdded=Žiadne nové telefónne číslo pridať do zoznamu cieľov -ConfirmValidSms=Myslíte si potvrdiť overenie tejto kampani o? +ConfirmValidSms=Potvrdzujete overenie tejto prevádzkovej doby ? NbOfUniqueSms=Nb dof jedinečná telefónne čísla NbOfSms=Nbre čísel phono ThisIsATestMessage=Toto je testovacia správa diff --git a/htdocs/langs/sk_SK/stocks.lang b/htdocs/langs/sk_SK/stocks.lang index a5d08dbb5b5..850e849632f 100644 --- a/htdocs/langs/sk_SK/stocks.lang +++ b/htdocs/langs/sk_SK/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Pohyb štítok NumberOfUnit=Počet jednotiek UnitPurchaseValue=Jednotková kúpna cena StockTooLow=Stock príliš nízka -StockLowerThanLimit=Stock nižší ako hranica výstrahy +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Hodnota PMPValue=Vážená priemerná cena PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Zásoby produktu a podriadeného produktu sú nezávi QtyDispatched=Množstvo odoslané QtyDispatchedShort=Odoslané množstvo QtyToDispatchShort=Množstvo na odoslanie -OrderDispatch=Stock dispečing +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Pravidlo pre automatické znižovanie zásob ( manuálne znižovanie je vždy možné aj ked automatické znižovanie je aktivované ) RuleForStockManagementIncrease=Pravidlo pre automatické zvyšovanie zásob ( manuálne zvýšenie zásob je vždy možné aj ked automatické zvyšovanie je aktivované ) DeStockOnBill=Pokles reálnej zásoby na zákazníkov faktúr / dobropisov validácia @@ -62,16 +62,19 @@ DeStockOnShipment=Znížiť skutočné zásoby po overení odoslania DeStockOnShipmentOnClosing=Znížiť skutočné zásoby pri označení zásielky ako uzatvorené ReStockOnBill=Zvýšenie reálnej zásoby na dodávateľa faktúr / dobropisov validácia ReStockOnValidateOrder=Zvýšenie reálnej zásoby na dodávateľa objednávok kolaudáciu -ReStockOnDispatchOrder=Zvýšenie reálnej zásoby na ručné dispečingu do skladov, potom, čo sa s dodávateľmi účelom obdržania +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Rád má ešte nie je, alebo viac postavenie, ktoré umožňuje zasielanie výrobkov na sklade skladoch. -StockDiffPhysicTeoric=Vysvetlenie rozdieľu medzi aktuálnym a teoretickým stavom zásob +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Žiadne preddefinované produkty pre tento objekt. Takže žiadne dispečing skladom je nutná. DispatchVerb=Odoslanie StockLimitShort=Limit pre výstrahu StockLimit=Limit zásob pre výstrahu PhysicalStock=Fyzický kapitál RealStock=Skutočné Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuálny sklad +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id sklad DescWareHouse=Popis sklad LieuWareHouse=Lokalizácia sklad @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Množstvo produktov %s na sklade, než zvolené obdobie NbOfProductAfterPeriod=Množstvo produktov %s na sklade po zvolené obdobie (> %s) MassMovement=Hromadný pohyb SelectProductInAndOutWareHouse=Vyberte si produkt, množstvo, zdrojový sklad a cieľový sklad, potom kliknite na "%s". Akonáhle sa tak stane pre všetky požadované pohyby, kliknite na "%s". -RecordMovement=Záznam transfert +RecordMovement=Record transfer ReceivingForSameOrder=Bločky tejto objednávky StockMovementRecorded=Zaznamenané pohyby zásob RuleForStockAvailability=Pravidlá skladových požiadaviek @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Limit zásob pre upozornenie a optimálne požadova ProductStockWarehouseDeleted=Limit zásob pre upozornenie a optimálne požadované zásoby správne zmazané AddNewProductStockWarehouse=Zadajte nový limit pre upozornenie a optimálne požadované zásoby AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Upraviť +inventoryValidate=Overené +inventoryDraft=Beh +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategórie filtra +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Pridať +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Odstránenie riadka +RegulateStock=Regulate Stock +ListInventory=Zoznam diff --git a/htdocs/langs/sk_SK/stripe.lang b/htdocs/langs/sk_SK/stripe.lang new file mode 100644 index 00000000000..71136766b12 --- /dev/null +++ b/htdocs/langs/sk_SK/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Nasledovné adresy URL sú k dispozícii ponúknuť stránky na zákazníka, aby platbu na Dolibarr objektov +PaymentForm=Platba formulár +WelcomeOnPaymentPage=Vítame Vás na našej on-line platobné služby +ThisScreenAllowsYouToPay=Táto obrazovka vám umožní vykonať on-line platbu %s. +ThisIsInformationOnPayment=Sú to informácie o platbe robiť +ToComplete=Ak chcete dokončiť +YourEMail=E-mail obdržať potvrdenie platby +STRIPE_PAYONLINE_SENDEMAIL=E-mail upozorniť po platbe (úspech alebo nie) +Creditor=Veriteľ +PaymentCode=Platobné kód +StripeDoPayment=Ísť na zaplatenie +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Ďalšie +ToOfferALinkForOnlinePayment=URL pre %s platby +ToOfferALinkForOnlinePaymentOnOrder=URL ponúknuť %s on-line platobný užívateľské rozhranie pre objednávky zákazníka +ToOfferALinkForOnlinePaymentOnInvoice=URL ponúknuť %s on-line platobný užívateľské rozhranie pre zákazníka faktúry +ToOfferALinkForOnlinePaymentOnContractLine=URL ponúknuť %s on-line platobný užívateľské rozhranie pre zmluvy linky +ToOfferALinkForOnlinePaymentOnFreeAmount=URL ponúknuť %s on-line platobný užívateľské rozhranie pre voľný čiastku +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL ponúknuť %s on-line platobný užívateľské rozhranie pre členské predplatné +YouCanAddTagOnUrl=Môžete tiež pridať parameter URL & tag = hodnota na niektorú z týchto URL (nutné iba pre voľný platby) pridať vlastný komentár platobnej tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Táto stránka potvrdzuje, že platba bola zaznamenaná. Ďakujem. +YourPaymentHasNotBeenRecorded=Vaša platba nebola zaznamenaná a transakcia bola zrušená. Ďakujem. +AccountParameter=Parametre účtu +UsageParameter=Používanie parametrov +InformationToFindParameters=Pomôžte nájsť %s informácie o účte +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Názov dodávateľa +CSSUrlForPaymentForm=CSS štýlov url platobného formulára +MessageOK=Správa o overených strane platobnej návrate +MessageKO=Správa o zrušení strane platobnej návrate +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sk_SK/supplier_proposal.lang b/htdocs/langs/sk_SK/supplier_proposal.lang index aa3ec673180..5bb704c22a0 100644 --- a/htdocs/langs/sk_SK/supplier_proposal.lang +++ b/htdocs/langs/sk_SK/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Nájsť požiadávku DraftRequests=Návrh požiadávky SupplierProposalsDraft=Návrh dodávatelskej ponuky LastModifiedRequests=Najnovšie %s upravené cenové požiadavky -RequestsOpened=Opened price requests +RequestsOpened=Otvorené cenoé požiadávky SupplierProposalArea=Oblasť dodávateľských ponúk SupplierProposalShort=Dodávatelská ponuka SupplierProposals=Dodávatelské ponuky @@ -23,7 +23,7 @@ ConfirmValidateAsk=Určite chcete overiť túto cenovú požiadávku pod menom < DeleteAsk=Zmazať požiadávku ValidateAsk=Overiť požiadávku SupplierProposalStatusDraft=Návrh (musí byť overená) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Overené ( žiadosť je otvorená ) SupplierProposalStatusClosed=Zatvorené SupplierProposalStatusSigned=Akceptované SupplierProposalStatusNotSigned=Odmietol @@ -47,7 +47,7 @@ CommercialAsk=Cenová požiadavka DefaultModelSupplierProposalCreate=Predvolené model, tvorba DefaultModelSupplierProposalToBill=Základná šablóna pri uzatváraní cenovej požiadávky ( akceptovaná ) DefaultModelSupplierProposalClosed=Základná šablóna pri uzatváraní cenovej požiadávky ( odmietnutá ) -ListOfSupplierProposal=Zoznam žiadostí o dodávatelskú ponuku +ListOfSupplierProposals=Zoznam žiadostí o dodávatelskú ponuku ListSupplierProposalsAssociatedProject=Zoznam dodávatelských ponúk spojených s projektom SupplierProposalsToClose=Dodávatelská ponuka na zavretie SupplierProposalsToProcess=Dodávatelská ponuka na spracovanie diff --git a/htdocs/langs/sk_SK/suppliers.lang b/htdocs/langs/sk_SK/suppliers.lang index e057be022f6..e623999db01 100644 --- a/htdocs/langs/sk_SK/suppliers.lang +++ b/htdocs/langs/sk_SK/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Celková predajná cena podprodukrov SomeSubProductHaveNoPrices=Niektoré podradené výrobky nemajú určenú cenu. AddSupplierPrice=Pridať nákupnú cenu ChangeSupplierPrice=Zmeniť nákupnú cenu +SupplierPrices=Dodávateľská cena ReferenceSupplierIsAlreadyAssociatedWithAProduct=Tento odkaz Dodávateľ je už spojená s odkazom: %s NoRecordedSuppliers=Žiadni zaznamenaní dodávatelia SupplierPayment=Dodávateľská platba @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Zlý počet ReputationForThisProduct=Reputácia BuyerName=Meno kupcu AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Dodávateľská cena diff --git a/htdocs/langs/sk_SK/trips.lang b/htdocs/langs/sk_SK/trips.lang index e5d3cd9e225..124e632ba94 100644 --- a/htdocs/langs/sk_SK/trips.lang +++ b/htdocs/langs/sk_SK/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Sadzobník poplatkov TypeFees=Poplatky ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Firma / nadácie navštívil +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Množstvo alebo kilometrov DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Dátum overenia DATE_CANCEL=Cancelation date DATE_PAIEMENT=Dátum platby - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sk_SK/users.lang b/htdocs/langs/sk_SK/users.lang index ef63862aeb7..2da1b0ce8bc 100644 --- a/htdocs/langs/sk_SK/users.lang +++ b/htdocs/langs/sk_SK/users.lang @@ -66,8 +66,8 @@ InternalUser=Interný užívateľ ExportDataset_user_1=Užívatelia a vlastnosti Dolibarr DomainUser=Užívateľ domény %s Reactivate=Reaktivácia -CreateInternalUserDesc=Tento formulár umožňuje vytvoriť užívateľa, ktorý je interný z hľadiska Vašej organizácie. Ak chcete vytvoriť externého užívateľa (zákazník, dodávateľ, ...), použite tlačidlo "Vytvoriť užívateľa Dolibarr" na kontaktnej karte tretej strany. -InternalExternalDesc=Interný užívateľ je užívateľ, ktorý je súčasťou vašej firme / nadácie.
Externý užívateľ je zákazník, dodávateľ alebo iný.

V oboch prípadoch oprávnenia definuje práva na Dolibarr tiež externé užívateľ môže mať inú ponuku než správcu interného užívateľa (pozri Domov - Nastavenie - Zobrazenie) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Povolenie udelené, pretože dedia z jednej zo skupiny užívateľov. Inherited=Zdedený UserWillBeInternalUser=Vytvorený užívateľ bude interný užívateľ (pretože nie je spojený s určitou treťou stranou) diff --git a/htdocs/langs/sk_SK/website.lang b/htdocs/langs/sk_SK/website.lang index 6197580711f..0a4272f5da0 100644 --- a/htdocs/langs/sk_SK/website.lang +++ b/htdocs/langs/sk_SK/website.lang @@ -1,28 +1,31 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code -WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. -DeleteWebsite=Delete website -ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. -WEBSITE_PAGENAME=Page name/alias -WEBSITE_CSS_URL=URL of external CSS file -WEBSITE_CSS_INLINE=CSS content -MediaFiles=Media library -EditCss=Edit Style/CSS -EditMenu=Edit menu -EditPageMeta=Edit Meta -EditPageContent=Edit Content -Website=Web site -Webpage=Web page -AddPage=Add page -PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. -PageDeleted=Page '%s' of website %s deleted -PageAdded=Page '%s' added -ViewSiteInNewTab=View site in new tab -ViewPageInNewTab=View page in new tab -SetAsHomePage=Set as Home page -RealURL=Real URL -ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +Shortname=Kód +WebsiteSetupDesc=Tu vytvorte toľko riadkov kolko rôzných webstránok potrebujete. Potom choďte do menu Webstránky pre ich upravovanie. +DeleteWebsite=Zmazať webstránku +ConfirmDeleteWebsite=Určite chcete zmazať túto web stránku. Všetky podstránka a obsah budú zmazané tiež. +WEBSITE_PAGENAME=Meno stránky +WEBSITE_CSS_URL=URL alebo externý CSS dokument +WEBSITE_CSS_INLINE=Obsah CSS +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. +MediaFiles=Knižnica médií +EditCss=Upraviť štýl/CSS +EditMenu=Upraviť menu +EditPageMeta=Upraviť Meta +EditPageContent=Upraviť obsah +Website=Web stránka +Webpage=Web stránka +AddPage=Pridať stránku +HomePage=Home Page +PreviewOfSiteNotYetAvailable=Náhľad webstránky %s nie je dostupný. Najprv musíte pridať stránk. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. +PageDeleted=Stránka '%s' web stránky %s zmazaná +PageAdded=Stránka '%s' pridaná +ViewSiteInNewTab=Zobraziť web stránku na novej karte +ViewPageInNewTab=Zobraziť stránku na novej karte +SetAsHomePage=Nastaviť ako domovskú stránku +RealURL=Skutočná URL +ViewWebsiteInProduction=Zobraziť web stránku použitím domovskej URL +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/sk_SK/withdrawals.lang b/htdocs/langs/sk_SK/withdrawals.lang index ba1f35f731f..c9892e627d5 100644 --- a/htdocs/langs/sk_SK/withdrawals.lang +++ b/htdocs/langs/sk_SK/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Suma, ktorá má zrušiť WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Žiadny zákazník faktúru na platbu režime "stiahnuť" čaká. Prejdite na "odstúpiť" kartu na faktúre karty podať žiadosť. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Zodpovedný užívateľ WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Dôvod odmietnutia RefusedInvoicing=Fakturácia odmietnutie NoInvoiceRefused=Nenabíjajte odmietnutie InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Čakanie StatusTrans=Odoslané StatusCredited=Pripísania diff --git a/htdocs/langs/sl_SI/accountancy.lang b/htdocs/langs/sl_SI/accountancy.lang index df8fa63f7f3..25fbdf7bb69 100644 --- a/htdocs/langs/sl_SI/accountancy.lang +++ b/htdocs/langs/sl_SI/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Dodaj računovodskega račun AccountAccounting=Računovodstvo račun AccountAccountingShort=Račun SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Prodaja AccountingJournalType3=Nabava AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Izvoz Export=Izvoz +ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ta izvozni model so opcije deaktivirane Selectmodelcsv=Izberite model izvoza diff --git a/htdocs/langs/sl_SI/admin.lang b/htdocs/langs/sl_SI/admin.lang index 9d90b068978..d237c070f90 100644 --- a/htdocs/langs/sl_SI/admin.lang +++ b/htdocs/langs/sl_SI/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Zahteva za komercialno ponudbo in cene dobavitelja Module1200Name=Mantis Module1200Desc=Mantis integracija Module1400Name=Računovodstvo -Module1400Desc=Upravljanje računovodstva (dvostavno) +Module1400Desc=Accounting management (double entries) Module1520Name=Generiranje dokumenta Module1520Desc=Generiranje dokumenta za masovno pošto Module1780Name=Značke/kategorije @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul za omogočanje strani za spletno plačevanje s kreditno kartico - Paypal Module50400Name=Računovodstvo (napredno) -Module50400Desc=Upravljanje računovodstva (dvostavno) +Module50400Desc=Accounting management (double entries) Module54000Name=Tiskanje IPP Module54000Desc=Direktno tiskanje (brez odpiranja dokumenta) z uporabo Cups IPP vmesnika (tiskalnik mora biti viden na strežniku in nameščen mora biti CUPS ). Module55000Name=Izberi, oceni ali glasuj diff --git a/htdocs/langs/sl_SI/agenda.lang b/htdocs/langs/sl_SI/agenda.lang index 326d3c738fa..1d194c6f5b9 100644 --- a/htdocs/langs/sl_SI/agenda.lang +++ b/htdocs/langs/sl_SI/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID dogodka Actions=Dogodki Agenda=Urnik +TMenuAgenda=Urnik Agendas=Urniki LocalAgenda=Notranji koledar ActionsOwnedBy=Zasebni dogodek od @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Račun %s izbrisan InvoicePaidInDolibarr=Račun %s spremenjen v 'plačano' InvoiceCanceledInDolibarr=Račun %s preklican MemberValidatedInDolibarr=Član %s potrjen +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Član %s izbrisan MemberSubscriptionAddedInDolibarr=Naročnina za člana %s dodana ShipmentValidatedInDolibarr=Pošiljka %s potrjena -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Pošiljka %s izbrisana OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Potrjeno naročilo %s @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervencija %s poslana po E-pošti ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Začetni datum DateActionEnd=Končni datum AgendaUrlOptions1=V filtriran izhod lahko dodate tudi naslednje parametre: -AgendaUrlOptions2=login=%s za omejitev izhoda na aktivnosti, ki se nanašajo, ali jih je naredil uporabnik %s. AgendaUrlOptions3=logina=%s za omejitev izhoda na aktivnosti v lasti uporabnika %s. -AgendaUrlOptions4=logint=%s za omejitev izhoda na aktivnosti, ki se nanašajo na uporabnika %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=projekt=PROJECT_ID za omejitev izhoda na aktivnosti povezane s projektomPROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/sl_SI/banks.lang b/htdocs/langs/sl_SI/banks.lang index 46e514cbfa4..a010eb3befb 100644 --- a/htdocs/langs/sl_SI/banks.lang +++ b/htdocs/langs/sl_SI/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID transakcije BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Vrnjen ček in ponovno odprti računi BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sl_SI/bills.lang b/htdocs/langs/sl_SI/bills.lang index f0d1e77f086..97f147e4da1 100644 --- a/htdocs/langs/sl_SI/bills.lang +++ b/htdocs/langs/sl_SI/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standardni račun InvoiceStandardAsk=Standardni račun InvoiceStandardDesc=Ta vrsta računa je običajni račun. -InvoiceDeposit=Avansni račun -InvoiceDepositAsk=Avansni račun -InvoiceDepositDesc=Ta vrsta računa se izdela, ko je prejet avans. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Predračun InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun izgleda enako kot račun, vendar nima računovodske vrednosti. @@ -62,7 +62,7 @@ PaymentsBack=Vrnitev plačil paymentInInvoiceCurrency=in invoices currency PaidBack=Vrnjeno plačilo DeletePayment=Brisanje plačila -ConfirmDeletePayment=Ali zares želite zbrisati to plačilo ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Plačila dobaviteljem ReceivedPayments=Prejeta plačila @@ -115,7 +115,7 @@ BillStatus=Status računa StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Osnutek (potrebna potrditev) BillStatusPaid=Plačano -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Spremenjeno v popust BillStatusCanceled=Opuščeno BillStatusValidated=Potrjeno (potrebno plačilo) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Plačano (delno) BillShortStatusDraft=Osnutek BillShortStatusPaid=Plačano BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Spremenjeno +BillShortStatusConverted=Plačan BillShortStatusCanceled=Opuščeno BillShortStatusValidated=Potrjeno BillShortStatusStarted=Začeto @@ -198,12 +198,12 @@ ShowBill=Prikaži račun ShowInvoice=Prikaži račun ShowInvoiceReplace=Prikaži nadomestni račun ShowInvoiceAvoir=Prikaži dobropis -ShowInvoiceDeposit=Prikaži avansni račun +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Prikaži plačilo AlreadyPaid=Že plačano AlreadyPaidBack=Že vrnjeno plačilo -AlreadyPaidNoCreditNotesNoDeposits=Že plačano (brez dobropisa in avansa) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Opuščeno RemainderToPay=Neplačan preostanek RemainderToTake=Preostanek vrednosti za odtegljaj @@ -270,10 +270,10 @@ RelativeDiscount=Relativni popust GlobalDiscount=Globalni popust CreditNote=Dobropis CreditNotes=Dobropisi -Deposit=Avans -Deposits=Avansi +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Popust z dobropisa %s -DiscountFromDeposit=Plačilo z računa za avans %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Ta način dobropisa se lahko uporabi na računu pred njegovo potrditvijo CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Brisanje plačila ni možno, ker je vsaj en ExpectedToPay=Pričakovano plačilo CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Plačano s tem plačilom -ClosePaidInvoicesAutomatically=Označi s "Plačano" vse standardne, situacijske ali nadomestne račune, ki so bili v celoti plačani. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Označi s "Plačano" vse dobropise, ki so bili v celoti vrnjeni. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Vsi računi, ki nimajo neplačanih preostankov, bodo avtomatsko zaključeni v status "Plačano". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Predloga računa Crabe. Predloga kompletnega računa (Podpora DDV opcije, popusti, pogoji plačila, logo, itd...) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Predlaga številko v formatu %syymm-nnnn za standardne račune in %syymm-nnnn za dobropise kjer je yy leto, mm mesec in nnnn zaporedna številka brez presledkov in večja od 0 -MarsNumRefModelDesc1=Ponudi številko v formatu %syymm-nnnn za standardne račune, %syymm-nnnn za nadomestne račune, %syymm-nnnn za avnsne račune in %syymm-nnnn za dobropise, kjer je yy leto, mm mesec in nnnn brez presledkov in brez vračila na 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Račun z začetkom $syymm že obstaja in ni kompatibilen s tem modelom zaporedja. Odstranite ga ali ga preimenujte za aktiviranje tega modula. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Predstavnik za sledenje računa kupcu TypeContact_facture_external_BILLING=Kontakt za račun kupcu diff --git a/htdocs/langs/sl_SI/bookmarks.lang b/htdocs/langs/sl_SI/bookmarks.lang index 65c97c7c7bd..f30b7b19294 100644 --- a/htdocs/langs/sl_SI/bookmarks.lang +++ b/htdocs/langs/sl_SI/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Dodaj to stran med zaznamke +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Zaznamek Bookmarks=Zaznamki +ListOfBookmarks=Seznam zaznamkov +EditBookmarks=List/edit bookmarks NewBookmark=Nov zaznamek ShowBookmark=Prikaži zaznamek OpenANewWindow=Odpri novo okno @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Novo okno BookmarkTargetReplaceWindowShort=Trenutno okno BookmarkTitle=Zaznamuj naslov UrlOrLink=URL -BehaviourOnClick=Postopek po kliku na URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Kreiraj zaznamek SetHereATitleForLink=Nastavi naziv zaznamka UseAnExternalHttpLinkOrRelativeDolibarrLink=Uporabi zunanji http URL ali odvisni Dolibarr URL diff --git a/htdocs/langs/sl_SI/boxes.lang b/htdocs/langs/sl_SI/boxes.lang index e6313df1d58..0a52bd252cd 100644 --- a/htdocs/langs/sl_SI/boxes.lang +++ b/htdocs/langs/sl_SI/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss informacija BoxLastProducts=Najnovejši %s proizvodi/storitve BoxProductsAlertStock=Opozorila na zalogah @@ -82,3 +83,4 @@ ForCustomersOrders=Naročila kupcev ForProposals=Ponudbe LastXMonthRolling=Zadnji %s tekoči meseci ChooseBoxToAdd=Dodaj vključnik na nadzorno ploščo +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sl_SI/cashdesk.lang b/htdocs/langs/sl_SI/cashdesk.lang index 3dcce19dca7..f2080a4f20f 100644 --- a/htdocs/langs/sl_SI/cashdesk.lang +++ b/htdocs/langs/sl_SI/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Razlika TotalTicket=Skupaj račun NoVAT=Prodaja brez DDV Change=Prejeta razlika -BankToPay=Bremenitev računa +BankToPay=Account for payment ShowCompany=Prikaži podjetje ShowStock=Prikaži skladišče DeleteArticle=Kliknite za izbris tega artikla diff --git a/htdocs/langs/sl_SI/categories.lang b/htdocs/langs/sl_SI/categories.lang index cf7d66dc343..d9012cc7a4c 100644 --- a/htdocs/langs/sl_SI/categories.lang +++ b/htdocs/langs/sl_SI/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Značka/kategorija Rubriques=Značke/kategorije +RubriquesTransactions=Tags/Categories of transactions categories=značke/kategorije NoCategoryYet=Ni kreirana nobena značka/kategorija te vrste In=V @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Kategorija s to referenco že obstaja ContentsVisibleByAllShort=Vsebina vidna vsem ContentsNotVisibleByAllShort=Vsebina ni vidna vsem DeleteCategory=Briši značko/kategorijo -ConfirmDeleteCategory=Ali zares želite izbrisati to značko/kategorijo? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=Ni določena nobena značka/kategorija SuppliersCategoryShort=Dobavitelji značka/kategorija CustomersCategoryShort=Stranke značka/kategorija diff --git a/htdocs/langs/sl_SI/commercial.lang b/htdocs/langs/sl_SI/commercial.lang index 888691ac1dd..dbb4506be1f 100644 --- a/htdocs/langs/sl_SI/commercial.lang +++ b/htdocs/langs/sl_SI/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Sestanek z %s ShowTask=Prikaži naloge ShowAction=Prikaži aktivnosti ActionsReport=Poročilo o aktivnostih -ThirdPartiesOfSaleRepresentative=Partnerji s prodajnimi predstavniki +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Prodajni predstavnik SalesRepresentatives=Prodajni predstavniki SalesRepresentativeFollowUp=Prodajni predstavnik (nadaljevanje) diff --git a/htdocs/langs/sl_SI/companies.lang b/htdocs/langs/sl_SI/companies.lang index a68f81e5c65..1837e63c914 100644 --- a/htdocs/langs/sl_SI/companies.lang +++ b/htdocs/langs/sl_SI/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nov posameznik NewCompany=Novo podjetje (možna stranka, kupec, dobavitelj) NewThirdParty=Nov partner (možna stranka, kupec, dobavitelj) CreateDolibarrThirdPartySupplier=Kreiraj partnerja (dobavitelj) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Ustvari partnerja CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Področje možnih strank IdThirdParty=ID partnerja @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kupci ThirdPartyCustomersWithIdProf12=Kupci z %s ali %s ThirdPartySuppliers=Dobavitelji ThirdPartyType=Vrsta partnerja -Company/Fundation=Podjetje/osnovni podatki Individual=Posameznik ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Lastniško podjetje @@ -78,10 +77,10 @@ VATIsNotUsed=Ni davčni zavezanec CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Ponudbe +OverAllOrders=Naročila +OverAllInvoices=Računi +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Uporabi drugi davek LocalTax1IsUsedES= RE je uporabljen @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN== ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof ID 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativni popust CustomerAbsoluteDiscountShort=Absolutni popust CompanyHasRelativeDiscount=Temu kupcu pripada popust v višini %s%% CompanyHasNoRelativeDiscount=Ta kupec nima odobrenega relativnega popusta -CompanyHasAbsoluteDiscount=Ta kupec ima popust v znesku %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Ta kupec ima dobropis ali depozit v višini %s %s CompanyHasNoAbsoluteDiscount=Ta kupec nima diskontnega kredita CustomerAbsoluteDiscountAllUsers=Absolutni popust (odobren od vseh uporabnikov) @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Koda kupca / dobavitelja po želji. Lahko jo kadarkoli sp ManagingDirectors=Ime direktorja(ev) (CEO, direktor, predsednik...) MergeOriginThirdparty=Podvojen partner (partner, ki ga želite zbrisati) MergeThirdparties=Združi partnerje -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Partnerja sta bila združena SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sl_SI/contracts.lang b/htdocs/langs/sl_SI/contracts.lang index 2bc995ae6ee..ebfb2eaec6b 100644 --- a/htdocs/langs/sl_SI/contracts.lang +++ b/htdocs/langs/sl_SI/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Ta seznam vsebuje samo storitve po pogodbah s part StandardContractsTemplate=Predloga standardnih pogodb ContactNameAndSignature=Za %s, ime in podpis: OnlyLinesWithTypeServiceAreUsed=Klonirane bodo samo vrstice tipa "Servis" +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Podpisnik pogodbe diff --git a/htdocs/langs/sl_SI/exports.lang b/htdocs/langs/sl_SI/exports.lang index 56b0e86f8bf..8e22e77d2a9 100644 --- a/htdocs/langs/sl_SI/exports.lang +++ b/htdocs/langs/sl_SI/exports.lang @@ -110,13 +110,24 @@ Enclosure=Priloga SpecialCode=Posebna koda ExportStringFilter=%% dovoljuje zamenjavo enega ali več znakov v besedilu ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtrira po enem letu/mesecu/dnevu
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtrira po območju let/mesecev/dni
> YYYY, > YYYYMM, > YYYYMMDD : filtrira po vseh letih/mesecih/dnevih
< YYYY, < YYYYMM, < YYYYMMDD : filtrira po vseh prejšnjih letih/mesecih/dnevih -ExportNumericFilter='NNNNN' filtrira po eni vrednosti
'NNNNN+NNNNN' filtrira po območju vrednosti
'>NNNNN' filtrira po nižjih vrednostih
'>NNNNN' filtrira po višjih vrednostih +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Če želite filtrirati po nekaterih vrednostih, jih vnesite tukaj FilteredFields=Filtrirana polja FilteredFieldsValues=Vrednost za filter FormatControlRule=Pravilo za kontrolo formata +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sl_SI/holiday.lang b/htdocs/langs/sl_SI/holiday.lang index fad0dc11101..831e30f9248 100644 --- a/htdocs/langs/sl_SI/holiday.lang +++ b/htdocs/langs/sl_SI/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Preklicano RefuseCP=Zavrnjeno ValidatorCP=Odobril ListeCP=Seznam dopustov -ReviewedByCP=Pregledal +ReviewedByCP=Will be approved by DescCP=Opis SendRequestCP=Ustvari zahtevek za dopust DelayToRequestCP=Zahtevek za dopust mora biti vložen vsaj %s dan(dni) prej. diff --git a/htdocs/langs/sl_SI/install.lang b/htdocs/langs/sl_SI/install.lang index f4d980363f9..9787eb98bf6 100644 --- a/htdocs/langs/sl_SI/install.lang +++ b/htdocs/langs/sl_SI/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Za namestitev Dolibarr uporabljate čarovnika DoliWamp, za KeepDefaultValuesDeb=Za namestitev Dolibarr uporabljate čarovnika iz paketov, podobnih Ubuntu ali Debian, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete. KeepDefaultValuesMamp=Za namestitev Dolibarr uporabljate čarovnika DoliMamp, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete. KeepDefaultValuesProxmox=Za namestitev Dolibarr uporabljate čarovnika Proxmox virtual appliance, zato so predlagane vrednosti že optimizirane. Spremenite jih le, če veste kaj počnete. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sl_SI/interventions.lang b/htdocs/langs/sl_SI/interventions.lang index 411c9b70a00..f7f37c5363e 100644 --- a/htdocs/langs/sl_SI/interventions.lang +++ b/htdocs/langs/sl_SI/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervencija %s je izbrisana InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Zadnje %s spremenjene intervencije +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Kontakt za nadaljnjo obravnavo pri kupcu # Modele numérotation diff --git a/htdocs/langs/sl_SI/languages.lang b/htdocs/langs/sl_SI/languages.lang index d1999d6eea8..c32d9a5065e 100644 --- a/htdocs/langs/sl_SI/languages.lang +++ b/htdocs/langs/sl_SI/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Nemščina Language_de_AT=Nemščina (Avstrija) Language_de_CH=Nemščina (Švica) Language_el_GR=Grščina +Language_el_CY=Greek (Cyprus) Language_en_AU=Angleščina (Avstralija) Language_en_CA=Angleščina (Kanada) Language_en_GB=Angleščina (Združeno kraljestvo) @@ -26,8 +27,10 @@ Language_es_BO=Španščina (Bolivija) Language_es_CL=Španščina (Čile) Language_es_CO=Španščina (Kolumbija) Language_es_DO=Španščina (Dominikanska republika) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Španščina (Honduras) Language_es_MX=Španščina (Mehika) +Language_es_PA=Spanish (Panama) Language_es_PY=Španski (Paragvaj) Language_es_PE=Španski (Peru) Language_es_PR=Španščina (Portoriko) @@ -50,12 +53,14 @@ Language_is_IS=Islandščina Language_it_IT=Italijanščina Language_ja_JP=Japonščina Language_ka_GE=Gruzijščina +Language_km_KH=Khmer Language_kn_IN=Kannadščina Language_ko_KR=Korejski Language_lo_LA=Laoščina Language_lt_LT=Litovska Language_lv_LV=Latvijski Language_mk_MK=Makedonski +Language_mn_MN=Mongolian Language_nb_NO=Norveščina (Bokmål) Language_nl_BE=Nizozemščina (Belgija) Language_nl_NL=Nizozemščina (Nizozemska) diff --git a/htdocs/langs/sl_SI/loan.lang b/htdocs/langs/sl_SI/loan.lang index ccea5b245b0..6f8507be44a 100644 --- a/htdocs/langs/sl_SI/loan.lang +++ b/htdocs/langs/sl_SI/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sl_SI/mails.lang b/htdocs/langs/sl_SI/mails.lang index 5f170b58fb4..1c9cdd5b887 100644 --- a/htdocs/langs/sl_SI/mails.lang +++ b/htdocs/langs/sl_SI/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Delno poslano MailingStatusSentCompletely=Poslano v celoti MailingStatusError=Napaka MailingStatusNotSent=Ni poslano -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=E-pošiljanje uspešno potrjeno MailUnsubcribe=Odjava MailingStatusNotContact=Ne kontaktiraj več @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=%s vrstica v datoteki @@ -116,8 +120,8 @@ Notifications=Obvestila NoNotificationsWillBeSent=Za ta dogodek in podjetje niso predvidena obvestila po e-pošti ANotificationsWillBeSent=1 obvestilo bo poslano z e-pošto SomeNotificationsWillBeSent=%s obvestil bo poslanih z e-pošto -AddNewNotification=Aktiviraj nov cilj za e-poštno obvestilo -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Seznam vseh poslanih e-poštnih obvestil MailSendSetupIs=Konfiguracij pošiljanja e-pošte je bila nastavljena na '%s'. Ta način ne more biti uporabljen za masovno pošiljanje. MailSendSetupIs2=Najprej morate kot administrator preko menija %sDomov - Nastavitve - E-pošta%s spremeniti parameter '%s' za uporabo načina '%s'. V tem načinu lahko odprete nastavitve SMTP strežnika, ki vam jih omogoča vaš spletni oprerater in uporabite masovno pošiljanje. diff --git a/htdocs/langs/sl_SI/main.lang b/htdocs/langs/sl_SI/main.lang index e7bc7f7da7f..ac156270f24 100644 --- a/htdocs/langs/sl_SI/main.lang +++ b/htdocs/langs/sl_SI/main.lang @@ -72,8 +72,10 @@ SeeHere=Glej tukaj Apply=Uporabi BackgroundColorByDefault=Privzeta barva ozadja FileRenamed=The file was successfully renamed -FileUploaded=Datoteka je bila uspešno naložena FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Datoteka je bila uspešno naložena +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Izbrana je bila datoteka za prilogo, vendar še ni dodana. Kliknite na "Pripni datoteko". NbOfEntries=Število vpisov GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Skupaj RE TotalLT2ES=Skupaj IRPF HT=Brez DDV TTC=Z DDV +INCT=Inc. all taxes VAT=DDV VATs=Prodajni davki LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=okt MonthShort11=nov MonthShort12=dec AttachedFiles=Pripete datoteke in dokumenti -FileTransferComplete=Datoteka je bila uspešno naložena DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/sl_SI/margins.lang b/htdocs/langs/sl_SI/margins.lang index 8b58d5c7431..0c1447cfe6e 100644 --- a/htdocs/langs/sl_SI/margins.lang +++ b/htdocs/langs/sl_SI/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Stopnja mora biti numerična vrednost markRateShouldBeLesserThan100=Označena vrednost mora biti manjša od 100 ShowMarginInfos=Prikaži informacije o marži CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sl_SI/members.lang b/htdocs/langs/sl_SI/members.lang index 439d0c32740..c5b9bff6980 100644 --- a/htdocs/langs/sl_SI/members.lang +++ b/htdocs/langs/sl_SI/members.lang @@ -25,8 +25,8 @@ MembersListUpToDate=Seznam potrjenih članov s posodobljeno članarino MembersListNotUpToDate=Seznam potrjenih članov s pretečeno članarino MembersListResiliated=List of terminated members MembersListQualified=Seznam kvalificiranih članov -MenuMembersToValidate=Predlagano članstvo -MenuMembersValidated=Potrjeno članstvo +MenuMembersToValidate=Predlagani člani +MenuMembersValidated=Potrjeni člani MenuMembersUpToDate=Posodobljeno članstvo MenuMembersNotUpToDate=Pretečeno članstvo MenuMembersResiliated=Terminated members @@ -41,17 +41,17 @@ MemberType=Tip člana MemberTypeId=ID tipa člana MemberTypeLabel=Naziv tipa člana MembersTypes=Tipi članov -MemberStatusDraft=Predlagan (potrebna je potrditev) -MemberStatusDraftShort=Predlagan +MemberStatusDraft=Osnutek (potrebno potrditi) +MemberStatusDraftShort=Osnutek MemberStatusActive=Potrjen (čaka vpis) MemberStatusActiveShort=Potrjen MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Pretečen -MemberStatusPaid=Posodobljena članarina -MemberStatusPaidShort=Posodobljen +MemberStatusPaid=Posodobljene članarine +MemberStatusPaidShort=Posodobljene MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated -MembersStatusToValid=Predlagan član +MembersStatusToValid=Predlagani člani MembersStatusResiliated=Terminated members NewCotisation=Nov prispevek PaymentSubscription=Plačilo novega prispevka @@ -90,6 +90,7 @@ PublicMemberList=Javni seznam članov BlankSubscriptionForm=Obrazec za vpis BlankSubscriptionFormDesc=Dolibarr vam lahko zagotovi javni URL, ki omogoča zunanjim obiskovalcem vlogo za vpis v združenje. Če je omogočen modul plačil, bo avtomatsko posredovan obrazec za plačilo. EnablePublicSubscriptionForm=Omogoči javni obrazec za avtomatski vpis +ForceMemberType=Force the member type ExportDataset_member_1=Člani in naročnine ImportDataset_member_1=Člani LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Na tem zaslonu je prikazana statistika članov po mestih. MembersStatisticsDesc=Izberite statistiko, ki jo želite prebrati... MenuMembersStats=Statistika LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Narava Public=Informacija je javna (ne=zasebno) NewMemberbyWeb=Dodan je nov član. Čaka potrditev. diff --git a/htdocs/langs/sl_SI/modulebuilder.lang b/htdocs/langs/sl_SI/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/sl_SI/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/sl_SI/oauth.lang b/htdocs/langs/sl_SI/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/sl_SI/oauth.lang +++ b/htdocs/langs/sl_SI/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/sl_SI/other.lang b/htdocs/langs/sl_SI/other.lang index bc2d5c993cc..75294be8f09 100644 --- a/htdocs/langs/sl_SI/other.lang +++ b/htdocs/langs/sl_SI/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=funt +WeightUnitounce=unča Length=Dolžina LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sl_SI/paybox.lang b/htdocs/langs/sl_SI/paybox.lang index 32c630d39bf..2d86fca5b34 100644 --- a/htdocs/langs/sl_SI/paybox.lang +++ b/htdocs/langs/sl_SI/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-pošta za potrditev plačila Creditor=Upnik PaymentCode=Koda plačila PayBoxDoPayment=Plačila v postopku +ToPay=Izvrši plačilo YouWillBeRedirectedOnPayBox=Preusmerjeni boste na varno Paybox stran za vnos podatkov o vaši kreditni kartici Continue=Naslednji ToOfferALinkForOnlinePayment=URL za %s plačila diff --git a/htdocs/langs/sl_SI/paypal.lang b/htdocs/langs/sl_SI/paypal.lang index b403846b049..07b8f3bb944 100644 --- a/htdocs/langs/sl_SI/paypal.lang +++ b/htdocs/langs/sl_SI/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=To je ID transakcije: %s PAYPAL_ADD_PAYMENT_URL=Pri pošiljanju dokumenta po pošti dodaj url Paypal plačila PredefinedMailContentLink=Za izvedbo vašega plačila (PayPal)lahko kliknete na spodnjo varno povezavo, če plačilo še ni bilo izvršeno.\n\n%s\n\n YouAreCurrentlyInSandboxMode=Trenutno ste v "peskovniku" načinu -NewPaypalPaymentReceived=Novo Paypal plačilo prejeto -NewPaypalPaymentFailed=Zavrnjen poskus novega Paypal plačila +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=E-poštno opozorilo po plačilu (uspešno ali ne) ReturnURLAfterPayment=URL za vrnitev po izvedenem plačilu -ValidationOfPaypalPaymentFailed=Potrditev neuspešnega Paypal plačila -PaypalConfirmPaymentPageWasCalledButFailed=Zahtevana je bila potrditvena stran Paypal za potrditev plačila, vendar potrditev ni uspela +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sl_SI/printing.lang b/htdocs/langs/sl_SI/printing.lang index 525b5938f41..86065df6ef5 100644 --- a/htdocs/langs/sl_SI/printing.lang +++ b/htdocs/langs/sl_SI/printing.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=Direct Printing -Module64000Desc=Enable Direct Printing System +Module64000Name=Direktno tiskanje +Module64000Desc=Omogoči sistem direktnega tiskanja PrintingSetup=Nastavitev sistema za direktno tiskanje PrintingDesc=Ta modul doda gumb za direktno pošiljanje dokumenta na tiskalnik (brez odpiranja dokumenta v aplikaciji) v različnih modulih. MenuDirectPrinting=Direct Printing jobs @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=Priimek GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -27,25 +27,25 @@ GCP_State=Printer State GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. -PRINTIPP_HOST=Print server -PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password -NoDefaultPrinterDefined=No default printer defined -DefaultPrinter=Default printer -Printer=Printer +PRINTIPP_HOST=Tiskalniški strežnik +PRINTIPP_PORT=Vrata +PRINTIPP_USER=Uporabniško ime +PRINTIPP_PASSWORD=Geslo +NoDefaultPrinterDefined=Ni izbran privzet tiskalnik +DefaultPrinter=Privzet tiskalnik +Printer=Tiskalnik IPP_Uri=Printer Uri IPP_Name=Printer Name IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Barva IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/sl_SI/products.lang b/htdocs/langs/sl_SI/products.lang index c108fe669e6..2b777cbdc60 100644 --- a/htdocs/langs/sl_SI/products.lang +++ b/htdocs/langs/sl_SI/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Proizvod ali storitev ProductsAndServices=Proizvodi in storitve ProductsOrServices=Proizvodi ali storitve -ProductsOnSell=Proizvodi za prodajo ali nabavo -ProductsNotOnSell=Proizvodi niti za prodajo, niti za nakup +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Proizvodi za prodajo ali nabavo -ServicesOnSell=Storitve za prodajo ali za nakup -ServicesNotOnSell=Storitve, ki niso naprodaj +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Storitve za prodajo ali za nabavo LastModifiedProductsAndServices=Zadnji %s spremenjeni produkti/storitve LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=l +unitP=Piece +unitSET=Set +unitS=Sekunda +unitH=Ura +unitD=Dan +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Predloga za referenco proizvoda ServiceCodeModel=Predloga za referenco storitve CurrentProductPrice=Trenutna cena @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Proizvodnja ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Pod-proizvod MinSupplierPrice=Najnižja cena dobavitelja MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dimnamična konfiguracija cene -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Globalne spremenljivke VariableToUpdate=Variable to update GlobalVariableUpdaters=Posodobitve globalnih spremenljivk +GlobalVariableUpdaterType0=JSON podatki +GlobalVariableUpdaterHelp0=Razčleni JSON podatke iz specifičnega URL, VALUE določa lokacijo ustrezne vrednosti, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=Podatki spletnih storitev +GlobalVariableUpdaterHelp1=Razčleni podatke spletnih storitve iz specifičnega URL, NS doliča prostor za ime, VALUE določa lokacijo ustreznih podatkov, DATA mora vsebovati podatke za pošiljanje in METHOD je metoda za WS klicanje +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval posodobitve (minute) LastUpdated=Latest update CorrectlyUpdated=Pravilno posodobljeno @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sl_SI/resource.lang b/htdocs/langs/sl_SI/resource.lang index 8cb0c8b513b..45be48122e2 100644 --- a/htdocs/langs/sl_SI/resource.lang +++ b/htdocs/langs/sl_SI/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Viri diff --git a/htdocs/langs/sl_SI/salaries.lang b/htdocs/langs/sl_SI/salaries.lang index 5ed921b6232..f706435cd09 100644 --- a/htdocs/langs/sl_SI/salaries.lang +++ b/htdocs/langs/sl_SI/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Računovodska koda za izplačilo plač -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Računovodska koda za finančno bremenitev +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Plača Salaries=Plače NewSalaryPayment=Novo izplačilo plače diff --git a/htdocs/langs/sl_SI/sendings.lang b/htdocs/langs/sl_SI/sendings.lang index 7d2129a8380..72c17e279b5 100644 --- a/htdocs/langs/sl_SI/sendings.lang +++ b/htdocs/langs/sl_SI/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Enostaven vzorec dokumenta DocumentModelMerou=Vzorec dokumenta Merou A5 WarningNoQtyLeftToSend=Pozor, noben proizvod ne čaka na pošiljanje. StatsOnShipmentsOnlyValidated=Statistika na osnovi potrjenih pošiljk. Uporabljen je datum potrditve pošiljanja (planiran datum dobave ni vedno znan) @@ -51,10 +50,10 @@ ActionsOnShipping=Aktivnosti v zvezi z odpremnico LinkToTrackYourPackage=Povezave za sledenje vaše pošiljke ShipmentCreationIsDoneFromOrder=Za trenutek je oblikovanje nove pošiljke opravi od naročila kartice. ShipmentLine=Vrstica na odpremnici -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/sl_SI/stocks.lang b/htdocs/langs/sl_SI/stocks.lang index 69c7ce1b964..f8fadd3612a 100644 --- a/htdocs/langs/sl_SI/stocks.lang +++ b/htdocs/langs/sl_SI/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Označitev premika NumberOfUnit=Število enot UnitPurchaseValue=Nabavna cena enote StockTooLow=Zaloga je prenizka -StockLowerThanLimit=Zaloga je nižja od opozorilne vrednosti +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Vrednost PMPValue=Uravnotežena povprečna cena PMPValueShort=UPC @@ -53,7 +53,7 @@ IndependantSubProductStock=Zaloga proizvodov in zaloga komponent sta neodvisni QtyDispatched=Odposlana količina QtyDispatchedShort=Odposlana količina QtyToDispatchShort=Količina za odpošiljanje -OrderDispatch=Dobavljena naročila +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Zmanjšanje dejanske zaloge po potrditvi fakture/dobropisa (pozor, v tej verziji se zaloga spremeni samo v skladišču številka 1) @@ -62,16 +62,19 @@ DeStockOnShipment=Zmanjšanje dejanske zaloge po potrditvi odpreme DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Povečanje dejanske zaloge po potrditvi fakture/dobropisa (pozor, v tej verziji se zaloga spremeni samo v skladišču številka 1) ReStockOnValidateOrder=Povečanje dejanske zaloge po potrditvi naročila (pozor, v tej verziji se zaloga spremeni samo v skladišču številka 1) -ReStockOnDispatchOrder=Povečanje dejanske zaloge po ročnem vnosu v skladišče, po prejemu naročila od dobavitelja +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Naročilo še nima ali nima več statusa, ki omogoča odpremo proizvoda iz skladišča. -StockDiffPhysicTeoric=Razlaga razlike med knjižno in dejansko zalogo +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Za ta objekt ni preddefiniranih proizvodov. Zato ni potrebna odprema iz skladišča. DispatchVerb=Odprema StockLimitShort=Omejitev za opozorilo StockLimit=Omejitev zaloge za opozorilo PhysicalStock=Fizična zaloga RealStock=Dejanska zaloga +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtualna zaloga +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=ID skladišča DescWareHouse=Opis skladišča LieuWareHouse=Lokalizacija skladišča @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Količina proizvoda %s na zalogi pred izbranim obdobjem NbOfProductAfterPeriod=Količina proizvoda %s na zalogi po izbranem obdobju (> %s) MassMovement=Masovni premik SelectProductInAndOutWareHouse=Izberi proizvod, količino, izvorno skladišče in ciljno skladišče, nato klikni "%s". Ko je to narejeno za vse zahtevane premike, klikni na "%s". -RecordMovement=Zapis prenešen +RecordMovement=Record transfer ReceivingForSameOrder=Prevzem tega naročila StockMovementRecorded=Zapisan premik zaloge RuleForStockAvailability=Pravila za zahtevane zaloge @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Uredi +inventoryValidate=Potrjen +inventoryDraft=V obdelavi +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Ustvari +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filter kategorij +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Dodaj +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Izbriši vrstico +RegulateStock=Regulate Stock +ListInventory=Seznam diff --git a/htdocs/langs/sl_SI/stripe.lang b/htdocs/langs/sl_SI/stripe.lang new file mode 100644 index 00000000000..ff31e6869d0 --- /dev/null +++ b/htdocs/langs/sl_SI/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Naslednji URL naslovi so na voljo kupcem za izvedbo plačil Dolibarr postavk +PaymentForm=Obrazec za plačilo +WelcomeOnPaymentPage=Dobrodošli v naši storitvi online plačil +ThisScreenAllowsYouToPay=Ta zaslon omogoča online plačilo za %s. +ThisIsInformationOnPayment=To je informacija o potrebnem plačilu +ToComplete=Za dokončanje +YourEMail=E-pošta za potrditev plačila +STRIPE_PAYONLINE_SENDEMAIL=E-poštno opozorilo po plačilu (uspešno ali ne) +Creditor=Upnik +PaymentCode=Koda plačila +StripeDoPayment=Plačila v postopku +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Naslednji +ToOfferALinkForOnlinePayment=URL za %s plačila +ToOfferALinkForOnlinePaymentOnOrder=URL naslov s ponudbo %s vmesnika za online plačila naročil +ToOfferALinkForOnlinePaymentOnInvoice=URL naslov s ponudbo %s vmesnika za online plačila računov +ToOfferALinkForOnlinePaymentOnContractLine=URL naslov s ponudbo %s vmesnika za online plačila po pogodbi +ToOfferALinkForOnlinePaymentOnFreeAmount=URL naslov s ponudbo %s vmesnika za online plačila poljubnih zneskov +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL naslov s ponudbo %s vmesnika za online plačila članarin +YouCanAddTagOnUrl=Vsakemu od teh URL naslovov lahko tudi dodate url parameter &tag=vrednost (zahtevano samo pri poljubnih plačilih) s komentarjem vašega plačila. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Ta stran potrjuje, da je bilo vaše plačilo sprejeto. Hvala. +YourPaymentHasNotBeenRecorded=Vaše plačilo ni bilo sprejeto in prenos je bil preklican. Hvala. +AccountParameter=Parametri računa +UsageParameter=Parametri uporabe +InformationToFindParameters=Pomoč pri iskanju informacij računa %s +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Ime prodajalca +CSSUrlForPaymentForm=url CSS vzorca obrazca plačila +MessageOK=Sporočilo na strani za potrditev plačila +MessageKO=Sporočilo na strani za preklic plačila +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sl_SI/supplier_proposal.lang b/htdocs/langs/sl_SI/supplier_proposal.lang index 9f9d579fb32..a4139457700 100644 --- a/htdocs/langs/sl_SI/supplier_proposal.lang +++ b/htdocs/langs/sl_SI/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Ponudbe dobavitelja @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Osnutek (potrebno potrditi) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Zaključeno SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Zavrnjeno @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Ustvarjanje privzetega modela DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/sl_SI/suppliers.lang b/htdocs/langs/sl_SI/suppliers.lang index 2610bf0e263..7fcf716e3da 100644 --- a/htdocs/langs/sl_SI/suppliers.lang +++ b/htdocs/langs/sl_SI/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Nekateri pod-proizvodi nimajo določenih cen AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Cene dobavitelja ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ta referenčni dobavitelj je že povezan z referenco: %s NoRecordedSuppliers=Ni vnesenih dobaviteljev SupplierPayment=Plačilo dobavitelju @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Cene dobavitelja diff --git a/htdocs/langs/sl_SI/trips.lang b/htdocs/langs/sl_SI/trips.lang index 39afe4fd449..f1de66ec24f 100644 --- a/htdocs/langs/sl_SI/trips.lang +++ b/htdocs/langs/sl_SI/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Seznam stroškov TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Obiskano podjetje/ustanova +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Količina kilometrov DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Označi kot "Povrnjeno" ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Datum potrditve DATE_CANCEL=Cancelation date DATE_PAIEMENT=Datum plačila - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sl_SI/users.lang b/htdocs/langs/sl_SI/users.lang index 200ecbedea2..d8551f53068 100644 --- a/htdocs/langs/sl_SI/users.lang +++ b/htdocs/langs/sl_SI/users.lang @@ -66,8 +66,8 @@ InternalUser=Interni uporabnik ExportDataset_user_1=Uporabniki Dolibarrja in značilnosti DomainUser=Uporabnik domene %s Reactivate=Ponovno aktiviraj -CreateInternalUserDesc=Ta obrazec omogoča kreiranje internega uporabnika v vašem podjetju/ustanovi. Za kreiranje zunanjega uporabnika (kupec, dobavitelj, ...), uporabite gumb 'Kreiraj Dolibarr uporabnika' na kartici kontakta pri partnerju. -InternalExternalDesc=Interni uporabnik je uporabnik, ki je zaposlen v vašem podjetju/ustanovi.
Zunanji uporabnik je kupec, dobavitelj, ali kdo drug.

V obeh primerih se lahko definirajo pravice za uporabo Dolibarrja, zunanji uporabnik ima lahko drugačno menijsko strukturo, kot interni uporabnik (Glejte Domov - Nastavitev - Prikaz) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Dovoljenje dodeljeno zaradi podedovanja od druge uporabniške skupine. Inherited=Podedovan UserWillBeInternalUser=Kreiran uporabnik bo interni uporabnik (ker ni povezan z določenim partnerjem) diff --git a/htdocs/langs/sl_SI/website.lang b/htdocs/langs/sl_SI/website.lang index 6976a582038..b44e52d459e 100644 --- a/htdocs/langs/sl_SI/website.lang +++ b/htdocs/langs/sl_SI/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Ali ste prepričani, da želite izbrisati to spletno starn. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/sl_SI/withdrawals.lang b/htdocs/langs/sl_SI/withdrawals.lang index 592a566c482..37c345789fe 100644 --- a/htdocs/langs/sl_SI/withdrawals.lang +++ b/htdocs/langs/sl_SI/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Vrednost za nakazilo WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Ni čakajočih plačil kupcev v načinu "nakazilo". Za izdelavo zahtevka pojdite na jeziček 'Nakazilo' na kartici računa. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odgovorni uporabnik WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Razlog za zavrnitev RefusedInvoicing=Zaračunavanje zavrnitev NoInvoiceRefused=Ne zaračunaj zavrnitve InvoiceRefused=Zavrnjen račun (zaračunati zavrnitev stranki) +StatusDebitCredit=Status debit/credit StatusWaiting=Na čakanju StatusTrans=Prenešeno StatusCredited=Odobreno diff --git a/htdocs/langs/sq_AL/accountancy.lang b/htdocs/langs/sq_AL/accountancy.lang index a63c99dacf1..1e586283ee1 100644 --- a/htdocs/langs/sq_AL/accountancy.lang +++ b/htdocs/langs/sq_AL/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/sq_AL/admin.lang b/htdocs/langs/sq_AL/admin.lang index 15406423955..a30a9ce25f2 100644 --- a/htdocs/langs/sq_AL/admin.lang +++ b/htdocs/langs/sq_AL/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/sq_AL/agenda.lang b/htdocs/langs/sq_AL/agenda.lang index 494dd4edbfd..17f8067bad9 100644 --- a/htdocs/langs/sq_AL/agenda.lang +++ b/htdocs/langs/sq_AL/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -11,7 +12,7 @@ Event=Event Events=Events EventsNb=Number of events ListOfActions=List of events -Location=Location +Location=Vendndodhja ToUserOfGroup=To any user in group EventOnFullDay=Event on all day(s) MenuToDoActions=All incomplete events @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/sq_AL/banks.lang b/htdocs/langs/sq_AL/banks.lang index 42382ff9d77..92881fba45a 100644 --- a/htdocs/langs/sq_AL/banks.lang +++ b/htdocs/langs/sq_AL/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Hapur StatusAccountClosed=Mbyllur AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sq_AL/bills.lang b/htdocs/langs/sq_AL/bills.lang index 176155532a5..810686d3c7d 100644 --- a/htdocs/langs/sq_AL/bills.lang +++ b/htdocs/langs/sq_AL/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/sq_AL/bookmarks.lang b/htdocs/langs/sq_AL/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/sq_AL/bookmarks.lang +++ b/htdocs/langs/sq_AL/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/sq_AL/boxes.lang b/htdocs/langs/sq_AL/boxes.lang index 54ef5f48de3..5c8cd88666e 100644 --- a/htdocs/langs/sq_AL/boxes.lang +++ b/htdocs/langs/sq_AL/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sq_AL/cashdesk.lang b/htdocs/langs/sq_AL/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/sq_AL/cashdesk.lang +++ b/htdocs/langs/sq_AL/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/sq_AL/categories.lang b/htdocs/langs/sq_AL/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/sq_AL/categories.lang +++ b/htdocs/langs/sq_AL/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/sq_AL/commercial.lang b/htdocs/langs/sq_AL/commercial.lang index 832d8f1a555..eaa4b69e60b 100644 --- a/htdocs/langs/sq_AL/commercial.lang +++ b/htdocs/langs/sq_AL/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/sq_AL/companies.lang b/htdocs/langs/sq_AL/companies.lang index e93e8ee6fbe..91500259424 100644 --- a/htdocs/langs/sq_AL/companies.lang +++ b/htdocs/langs/sq_AL/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Furnitorët ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=Nuk përdoret T.V.SH CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Faturat +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Hapur ActivityCeased=Mbyllur ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sq_AL/contracts.lang b/htdocs/langs/sq_AL/contracts.lang index f047797d28f..f923bc7d83f 100644 --- a/htdocs/langs/sq_AL/contracts.lang +++ b/htdocs/langs/sq_AL/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/sq_AL/deliveries.lang b/htdocs/langs/sq_AL/deliveries.lang index 03eba3d636b..49f39405766 100644 --- a/htdocs/langs/sq_AL/deliveries.lang +++ b/htdocs/langs/sq_AL/deliveries.lang @@ -14,7 +14,7 @@ DeleteDeliveryReceiptConfirm=Are you sure you want to delete delivery receipt YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sq_AL/holiday.lang b/htdocs/langs/sq_AL/holiday.lang index 400ba054946..b373d4d7852 100644 --- a/htdocs/langs/sq_AL/holiday.lang +++ b/htdocs/langs/sq_AL/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Anulluar RefuseCP=Refuzuar ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Përshkrimi SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/sq_AL/hrm.lang b/htdocs/langs/sq_AL/hrm.lang index 770e2102a68..60c902e3659 100644 --- a/htdocs/langs/sq_AL/hrm.lang +++ b/htdocs/langs/sq_AL/hrm.lang @@ -5,7 +5,7 @@ Establishments=Establishments Establishment=Establishment NewEstablishment=New establishment DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are-you sure to delete this establishment ? +ConfirmDeleteEstablishment=Are-you sure to delete this establishment? OpenEtablishment=Open establishment CloseEtablishment=Close establishment # Dictionary diff --git a/htdocs/langs/sq_AL/install.lang b/htdocs/langs/sq_AL/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/sq_AL/install.lang +++ b/htdocs/langs/sq_AL/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sq_AL/interventions.lang b/htdocs/langs/sq_AL/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/sq_AL/interventions.lang +++ b/htdocs/langs/sq_AL/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/sq_AL/languages.lang b/htdocs/langs/sq_AL/languages.lang index 884f9048666..592f17ce821 100644 --- a/htdocs/langs/sq_AL/languages.lang +++ b/htdocs/langs/sq_AL/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -20,14 +21,16 @@ Language_en_NZ=English (New Zealand) Language_en_SA=English (Saudi Arabia) Language_en_US=English (United States) Language_en_ZA=English (South Africa) -Language_es_ES=Spanish +Language_es_ES=Spanjisht Language_es_AR=Spanish (Argentina) Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/sq_AL/link.lang b/htdocs/langs/sq_AL/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/sq_AL/link.lang +++ b/htdocs/langs/sq_AL/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/sq_AL/loan.lang b/htdocs/langs/sq_AL/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/sq_AL/loan.lang +++ b/htdocs/langs/sq_AL/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sq_AL/mails.lang b/htdocs/langs/sq_AL/mails.lang index 636c68bb17f..dd1cbad7e19 100644 --- a/htdocs/langs/sq_AL/mails.lang +++ b/htdocs/langs/sq_AL/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Gabim MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/sq_AL/main.lang b/htdocs/langs/sq_AL/main.lang index d486ef50274..5e4a47c8902 100644 --- a/htdocs/langs/sq_AL/main.lang +++ b/htdocs/langs/sq_AL/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/sq_AL/margins.lang b/htdocs/langs/sq_AL/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/sq_AL/margins.lang +++ b/htdocs/langs/sq_AL/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sq_AL/members.lang b/htdocs/langs/sq_AL/members.lang index 800c5752db9..b65036e06a0 100644 --- a/htdocs/langs/sq_AL/members.lang +++ b/htdocs/langs/sq_AL/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/sq_AL/modulebuilder.lang b/htdocs/langs/sq_AL/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/sq_AL/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/sq_AL/oauth.lang b/htdocs/langs/sq_AL/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/sq_AL/oauth.lang +++ b/htdocs/langs/sq_AL/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/sq_AL/other.lang b/htdocs/langs/sq_AL/other.lang index 22b216a0816..1b0b6a5894b 100644 --- a/htdocs/langs/sq_AL/other.lang +++ b/htdocs/langs/sq_AL/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sq_AL/paybox.lang b/htdocs/langs/sq_AL/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/sq_AL/paybox.lang +++ b/htdocs/langs/sq_AL/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/sq_AL/paypal.lang b/htdocs/langs/sq_AL/paypal.lang index 4cd71693ebf..d1e43ae0b8a 100644 --- a/htdocs/langs/sq_AL/paypal.lang +++ b/htdocs/langs/sq_AL/paypal.lang @@ -7,7 +7,7 @@ PAYPAL_API_SANDBOX=Mode test/sandbox PAYPAL_API_USER=API username PAYPAL_API_PASSWORD=API password PAYPAL_API_SIGNATURE=API signature -PAYPAL_SSLVERSION=Curl SSL Version +PAYPAL_SSLVERSION=Versioni Curl SSL PAYPAL_API_INTEGRAL_OR_PAYPALONLY=Offer payment "integral" (Credit card+Paypal) or "Paypal" only PaypalModeIntegral=Integral PaypalModeOnlyPaypal=PayPal only @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sq_AL/printing.lang b/htdocs/langs/sq_AL/printing.lang index d6cf49bd525..3294ae83e1c 100644 --- a/htdocs/langs/sq_AL/printing.lang +++ b/htdocs/langs/sq_AL/printing.lang @@ -30,7 +30,7 @@ PrintIPPDesc=This driver allow to send documents directly to a printer. It requi PRINTIPP_HOST=Print server PRINTIPP_PORT=Port PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_PASSWORD=Fjalëkalimi NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/sq_AL/products.lang b/htdocs/langs/sq_AL/products.lang index b9e3984cf90..a855239b30a 100644 --- a/htdocs/langs/sq_AL/products.lang +++ b/htdocs/langs/sq_AL/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sq_AL/propal.lang b/htdocs/langs/sq_AL/propal.lang index 3565c9007be..0e3dbc1fb23 100644 --- a/htdocs/langs/sq_AL/propal.lang +++ b/htdocs/langs/sq_AL/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Hapur PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/sq_AL/resource.lang b/htdocs/langs/sq_AL/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/sq_AL/resource.lang +++ b/htdocs/langs/sq_AL/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/sq_AL/salaries.lang b/htdocs/langs/sq_AL/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/sq_AL/salaries.lang +++ b/htdocs/langs/sq_AL/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/sq_AL/sendings.lang b/htdocs/langs/sq_AL/sendings.lang index 9dcbe02e0bf..428e3c5ade6 100644 --- a/htdocs/langs/sq_AL/sendings.lang +++ b/htdocs/langs/sq_AL/sendings.lang @@ -26,7 +26,7 @@ KeepToShip=Remain to ship OtherSendingsForSameOrder=Other shipments for this order SendingsAndReceivingForSameOrder=Shipments and receipts for this order SendingsToValidate=Shipments to validate -StatusSendingCanceled=Canceled +StatusSendingCanceled=Anulluar StatusSendingDraft=Draft StatusSendingValidated=Validated (products to ship or already shipped) StatusSendingProcessed=Processed @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,12 +50,12 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. -WeightVolShort=Weight/Vol. +WeightVolShort=Peshë/Vëll ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. # Sending methods diff --git a/htdocs/langs/sq_AL/stocks.lang b/htdocs/langs/sq_AL/stocks.lang index 22491899e66..f6c1e8aedb7 100644 --- a/htdocs/langs/sq_AL/stocks.lang +++ b/htdocs/langs/sq_AL/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/sq_AL/stripe.lang b/htdocs/langs/sq_AL/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/sq_AL/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sq_AL/supplier_proposal.lang b/htdocs/langs/sq_AL/supplier_proposal.lang index 08e4fa03a10..bffb9692bd9 100644 --- a/htdocs/langs/sq_AL/supplier_proposal.lang +++ b/htdocs/langs/sq_AL/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Draft (needs to be validated) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Mbyllur SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refuzuar @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/sq_AL/suppliers.lang b/htdocs/langs/sq_AL/suppliers.lang index b59e28bf105..544cd1b7592 100644 --- a/htdocs/langs/sq_AL/suppliers.lang +++ b/htdocs/langs/sq_AL/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Emri i blerësit AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/sq_AL/trips.lang b/htdocs/langs/sq_AL/trips.lang index f4642cdba6c..4bdbbcf447d 100644 --- a/htdocs/langs/sq_AL/trips.lang +++ b/htdocs/langs/sq_AL/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -29,7 +39,7 @@ TripNDF=Informations expense report PDFStandardExpenseReports=Standard template to generate a PDF document for expense report ExpenseReportLine=Expense report line TF_OTHER=Tjetër -TF_TRIP=Transportation +TF_TRIP=Transport TF_LUNCH=Lunch TF_METRO=Metro TF_TRAIN=Train @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sq_AL/users.lang b/htdocs/langs/sq_AL/users.lang index e5e17cbef89..d02348c3d88 100644 --- a/htdocs/langs/sq_AL/users.lang +++ b/htdocs/langs/sq_AL/users.lang @@ -66,8 +66,8 @@ InternalUser=Përdorues i brendshëm ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/sq_AL/website.lang b/htdocs/langs/sq_AL/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/sq_AL/website.lang +++ b/htdocs/langs/sq_AL/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/sq_AL/withdrawals.lang b/htdocs/langs/sq_AL/withdrawals.lang index e5a405b1647..d9e877e2dec 100644 --- a/htdocs/langs/sq_AL/withdrawals.lang +++ b/htdocs/langs/sq_AL/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Dërguar StatusCredited=Credited diff --git a/htdocs/langs/sr_RS/accountancy.lang b/htdocs/langs/sr_RS/accountancy.lang index 37c63ff56f5..412d0307859 100644 --- a/htdocs/langs/sr_RS/accountancy.lang +++ b/htdocs/langs/sr_RS/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Dodaj računovodstveni nalog AccountAccounting=Računovodstveni nalog AccountAccountingShort=Račun SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Stanje računa @@ -142,6 +143,7 @@ NumPiece=Deo broj TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Prodaje AccountingJournalType3=Nabavke AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Izvozi Export=Izvoz +ExportDraftJournal=Export draft journal Modelcsv=Model izvoza OptionsDeactivatedForThisExportModel=Za ovaj model izvoza, opcije su deaktivirane Selectmodelcsv=Izaberite model izvoza diff --git a/htdocs/langs/sr_RS/admin.lang b/htdocs/langs/sr_RS/admin.lang index a36197cc8d3..98d86dc62d9 100644 --- a/htdocs/langs/sr_RS/admin.lang +++ b/htdocs/langs/sr_RS/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Anketa ili Glasanje diff --git a/htdocs/langs/sr_RS/agenda.lang b/htdocs/langs/sr_RS/agenda.lang index 568e6f048b1..cac11cfe6e4 100644 --- a/htdocs/langs/sr_RS/agenda.lang +++ b/htdocs/langs/sr_RS/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID događaj Actions=Događaji Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agende LocalAgenda=Interni kalendar ActionsOwnedBy=Događaj u vlasništvu @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Faktura %s je obrisana InvoicePaidInDolibarr=Račun %s je promenjen u plaćen InvoiceCanceledInDolibarr=Račun %s je otkazan MemberValidatedInDolibarr=Član %s je potvrđen +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Član %s je obrisan MemberSubscriptionAddedInDolibarr=Pretplata za člana %s je dodata ShipmentValidatedInDolibarr=Isporuka %s je potvrđena -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Isporuka %s je obrisana OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Račun %s je potvrđen @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervencija %s poslata mejlo ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Početak DateActionEnd=Kraj AgendaUrlOptions1=Možete dodati i sledeće parametre da filtrirate rezultat: -AgendaUrlOptions2=prijava=%s da se zabrani izlaz akcija kreiranih ili dodeljenih korisniku %s. AgendaUrlOptions3=logina=%s da se zabrani izlaz akcijama čiji je vlasnik korisnik %s. -AgendaUrlOptions4=logint=%s da se zabrani izlaz akcijama koje su dodeljene korisniku %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID da se zabrani izlaz akcijama povezanim sa projektom PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/sr_RS/banks.lang b/htdocs/langs/sr_RS/banks.lang index 4c3c8c314ed..549c5fa073e 100644 --- a/htdocs/langs/sr_RS/banks.lang +++ b/htdocs/langs/sr_RS/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=ID transakcije BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Poravnati Conciliation=Poravnanje ReconciliationLate=Reconciliation late IncludeClosedAccount=Uključi zatvorene račune -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Samo otvoreni računi AccountToCredit=Kreditni račun AccountToDebit=Debitni račun DisableConciliation=Onemogući poravnanje za ovaj račun ConciliationDisabled=Opcija poravnanja onemogućena LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Otvoreno StatusAccountClosed=Zatvoreno AccountIdShort=Broj LineRecord=Transakcija @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Ček vraćen i faktura ponovo otvorena BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sr_RS/bills.lang b/htdocs/langs/sr_RS/bills.lang index 8c9b239ad55..347f5de446c 100644 --- a/htdocs/langs/sr_RS/bills.lang +++ b/htdocs/langs/sr_RS/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standardni račun InvoiceStandardAsk=Standardni račun InvoiceStandardDesc=Ovaj tip računa je uobičajen -InvoiceDeposit=Avansni račun -InvoiceDepositAsk=Avansni račun -InvoiceDepositDesc=Ovaj tip računa se koristi kada je registrovana pretplata +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Predračun InvoiceProFormaAsk=Predračun InvoiceProFormaDesc=Predračun je neobavezujući dokument koji ima sve karakteristike računa. @@ -62,7 +62,7 @@ PaymentsBack=Refundiranja paymentInInvoiceCurrency=in invoices currency PaidBack=Refundirano DeletePayment=Obriši plaćanje -ConfirmDeletePayment=Da li ste sigurni da želite da obrišete ovo plaćanje? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Plaćanja dobavljačima ReceivedPayments=Primljene uplate @@ -115,7 +115,7 @@ BillStatus=Status računa StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Nacrt (treba da se potvrdi) BillStatusPaid=Plaćeno -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Plaćeno (spremno za konačni račun) BillStatusCanceled=Napušteno BillStatusValidated=Potvrdjeno (potrebno izvršiti plaćanje) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Plaćeno (delimično) BillShortStatusDraft=Nacrt BillShortStatusPaid=Plaćeno BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Obradjeno +BillShortStatusConverted=Plaćeno BillShortStatusCanceled=Napušteno BillShortStatusValidated=Potvrdjeno BillShortStatusStarted=Započeto @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Vraća broj u formatu %syymm-nnnn za standardne fakture, %syymm-nnnn za fakture zamene, %syymm-nnnn za fakture depozita i %syymm-nnnn za kreditne note, gde je yy godina, mm mesec i nnnn broj u nizu bez vraćanja na 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/sr_RS/bookmarks.lang b/htdocs/langs/sr_RS/bookmarks.lang index acf0dfcf29a..8f05467ddd2 100644 --- a/htdocs/langs/sr_RS/bookmarks.lang +++ b/htdocs/langs/sr_RS/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Dodaj ovu stranicu u markere +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Marker Bookmarks=Markeri +ListOfBookmarks=Lista markera +EditBookmarks=List/edit bookmarks NewBookmark=Novi marker ShowBookmark=Prikaži marker OpenANewWindow=Otvori novi prozor @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Novi prozor BookmarkTargetReplaceWindowShort=Trenutni prozor BookmarkTitle=Naslov markera UrlOrLink=URL -BehaviourOnClick=Ponašanje kada se klikne URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Kreiraj marker SetHereATitleForLink=Postavi naslov markera UseAnExternalHttpLinkOrRelativeDolibarrLink=Koristi eksterni http URL ili relativni Dolibarr URL diff --git a/htdocs/langs/sr_RS/boxes.lang b/htdocs/langs/sr_RS/boxes.lang index aa7923870ed..b8ab942f07f 100644 --- a/htdocs/langs/sr_RS/boxes.lang +++ b/htdocs/langs/sr_RS/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss Informacija BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Narudžbine klijenata ForProposals=Ponude LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sr_RS/cashdesk.lang b/htdocs/langs/sr_RS/cashdesk.lang index f0b6820ede1..183c3c07852 100644 --- a/htdocs/langs/sr_RS/cashdesk.lang +++ b/htdocs/langs/sr_RS/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Razlika TotalTicket=Ukupna karta NoVAT=Nema PIB za ovu prodaju Change=VIšak primljen -BankToPay=Naplati račun +BankToPay=Account for payment ShowCompany=Prikaži firmu ShowStock=Prikaži magacin DeleteArticle=Kliknite da uklonite ovaj atikal diff --git a/htdocs/langs/sr_RS/categories.lang b/htdocs/langs/sr_RS/categories.lang index d2f0a1a3cce..611b53e0c3d 100644 --- a/htdocs/langs/sr_RS/categories.lang +++ b/htdocs/langs/sr_RS/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Naziv/Kategorija Rubriques=Naziv/Kategorije +RubriquesTransactions=Tags/Categories of transactions categories=nazivi/kategorije NoCategoryYet=Naziv/kategorija nije kreirana za ovaj tip In=U @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Ova kategorija već postoji za ovu referencu ContentsVisibleByAllShort=Sadržaji vidljivi svima ContentsNotVisibleByAllShort=Sadržaji koji nisu vidljivi svima DeleteCategory=Obriši naziv/kategoriju -ConfirmDeleteCategory=Da li ste sigurni da želite da obrišete ovaj naziv/kategoriju? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=Nema definisanog naziva/kategorije SuppliersCategoryShort=Nazv/kategorija dobavljača CustomersCategoryShort=Naziv/kategorija kupca diff --git a/htdocs/langs/sr_RS/commercial.lang b/htdocs/langs/sr_RS/commercial.lang index 7cdc773107a..7aadda1f61d 100644 --- a/htdocs/langs/sr_RS/commercial.lang +++ b/htdocs/langs/sr_RS/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Sastanak sa %s ShowTask=Prikaži zadatak ShowAction=Prikaži događaj ActionsReport=Izveštaj događaja -ThirdPartiesOfSaleRepresentative=Subjekt sa predstvanikom prodaje +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Predstavnik prodaje SalesRepresentatives=Predstavnici prodaje SalesRepresentativeFollowUp=Predstavnik prodaja (kratak opis) diff --git a/htdocs/langs/sr_RS/companies.lang b/htdocs/langs/sr_RS/companies.lang index f2b53f00446..d7ed4a88f01 100644 --- a/htdocs/langs/sr_RS/companies.lang +++ b/htdocs/langs/sr_RS/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Novo fizičko lice NewCompany=Nova kompanija (kandidat, klijent, dobavljač) NewThirdParty=Novi subjekt (kandidat, klijent, dobavljač) CreateDolibarrThirdPartySupplier=Kreiraj subjekt (dobavljača) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Kreiraj subjekt CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Oblast istraživanja IdThirdParty=Id subjekta @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Klijenti ThirdPartyCustomersWithIdProf12=Klijenti sa %s ili %s ThirdPartySuppliers=Dobavljači ThirdPartyType=Tip subjekta -Company/Fundation=Kompanija/Fondacija Individual=Fizičko lice ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Osnovna kompanija @@ -78,10 +77,10 @@ VATIsNotUsed=Van PDV-a CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Ponude +OverAllOrders=Narudžbine +OverAllInvoices=Invoices +OverAllSupplierProposals=Zahtevi za cenu ##### Local Taxes ##### LocalTax1IsUsed=Koristi drugu taksu LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativni popust CustomerAbsoluteDiscountShort=Apsolutni popust CompanyHasRelativeDiscount=Klijent ima default popust od %s%% CompanyHasNoRelativeDiscount=Klijent nema default relativni popust -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Apsolutni popusti (odobreni od svih korisnika) @@ -390,7 +395,7 @@ ListCustomersShort=Lista klijenata ThirdPartiesArea=Subjekti i obast kontakta LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Ukupno jedinstvenih subjekata -InActivity=Opened +InActivity=Otvoreno ActivityCeased=Zatvoreno ThirdPartyIsClosed=Third party is closed ProductsIntoElements=Lista proizvoda/usluga u %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Ime menadžera (CEO, direktor, predsednik...) MergeOriginThirdparty=Duplirani subjekt (subjekt kojeg želite obrisati) MergeThirdparties=Spoji subjekte -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Subjekti su spojeni SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sr_RS/contracts.lang b/htdocs/langs/sr_RS/contracts.lang index 6e9596181e0..f56f625e59d 100644 --- a/htdocs/langs/sr_RS/contracts.lang +++ b/htdocs/langs/sr_RS/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Ova lista sadrži samo usluge ugovora subjekata za StandardContractsTemplate=Standardni template ugovora ContactNameAndSignature=Za %s, ime i potpis: OnlyLinesWithTypeServiceAreUsed=Samo linije sa tipom "Usluga" će biti duplirane +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Agent prodaje koji potpisuje ugovor diff --git a/htdocs/langs/sr_RS/exports.lang b/htdocs/langs/sr_RS/exports.lang index 2fbe59d22fb..9c7639b5556 100644 --- a/htdocs/langs/sr_RS/exports.lang +++ b/htdocs/langs/sr_RS/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Posebni kod ExportStringFilter=%% omogućava zamenu jednog ili više karaktera u tekstu ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filtrira po godini/mesecu/danu
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filtrira po periodugodina/meseci/dana
> YYYY, > YYYYMM, > YYYYMMDD : filtrira po svim narednim godinama/msecima/danima
< YYYY, < YYYYMM, < YYYYMMDD : filtrira po svim prethodnim godinama/mesecima/danima -ExportNumericFilter='NNNNN' filtrira po jednoj vrednosti
'NNNNN+NNNNN' filtrira po rasponu vrednosti
'>NNNNN' filtrira po nižim vrednostima
'>NNNNN' filtrira po višim vrednostima +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Uvoz počinje od linije broj EndAtLineNb=Završi na boju linije +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Na primer, spotavi ovu vrednost na 3 da isključite prva 2 reda KeepEmptyToGoToEndOfFile=Ostavite prazno kako bi otišlo do kraja fajla +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Ukoliko želite da filtrirate po nekim vrednostima unesite ih ovde. FilteredFields=Filtrirana polja FilteredFieldsValues=Vrednost za filtriranje FormatControlRule=Pravilo za kontrolu formata +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sr_RS/holiday.lang b/htdocs/langs/sr_RS/holiday.lang index c9dc7f7746a..46995d3ac00 100644 --- a/htdocs/langs/sr_RS/holiday.lang +++ b/htdocs/langs/sr_RS/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Otkazan RefuseCP=Odbijen ValidatorCP=Odobrava ListeCP=Lista odsustva -ReviewedByCP=Revidiraće +ReviewedByCP=Will be approved by DescCP=Opis SendRequestCP=Kreiraj zahtev za odsustvo DelayToRequestCP=Zahtevi za odsustvo moraju biti kreirani makar %s dan(a) pre odsustva. diff --git a/htdocs/langs/sr_RS/install.lang b/htdocs/langs/sr_RS/install.lang index a12fd22db0b..654f6b84a4e 100644 --- a/htdocs/langs/sr_RS/install.lang +++ b/htdocs/langs/sr_RS/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Koristite Dolibarr čarobnjaka za instalaciju iz DoliWamp- KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sr_RS/interventions.lang b/htdocs/langs/sr_RS/interventions.lang index 90c0259ff34..1299ac05e72 100644 --- a/htdocs/langs/sr_RS/interventions.lang +++ b/htdocs/langs/sr_RS/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervencija %s je obrisana InterventionsArea=Intervencije DraftFichinter=Draft intervencije LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Kontakt klijenta koji prat intervenciju # Modele numérotation diff --git a/htdocs/langs/sr_RS/languages.lang b/htdocs/langs/sr_RS/languages.lang index 48cd98a807f..9bf5a30b443 100644 --- a/htdocs/langs/sr_RS/languages.lang +++ b/htdocs/langs/sr_RS/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Nemački Language_de_AT=Nemački (Austrija) Language_de_CH=Nemački (Švajcarska) Language_el_GR=Grčki +Language_el_CY=Greek (Cyprus) Language_en_AU=Engleski (Australija) Language_en_CA=Engleski (Kanada) Language_en_GB=Engleski (UK) @@ -26,8 +27,10 @@ Language_es_BO=Španski (Bolivija) Language_es_CL=Špnski (Čile) Language_es_CO=Španski (Kolumbija) Language_es_DO=Španski (Dominikanska Republika) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Španski (Honduras) Language_es_MX=Španski (Meksiko) +Language_es_PA=Spanish (Panama) Language_es_PY=Španski (Paragvaj) Language_es_PE=Španski (Peru) Language_es_PR=Španski (Porto Riko) @@ -50,12 +53,14 @@ Language_is_IS=Islanđanski Language_it_IT=Italijanski Language_ja_JP=Japanski Language_ka_GE=Gruzijski +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Koreanski Language_lo_LA=Lao Language_lt_LT=Litvanski Language_lv_LV=Litvanski Language_mk_MK=Makedonski +Language_mn_MN=Mongolian Language_nb_NO=Norveški (Bokmal) Language_nl_BE=Holandski (Belgija) Language_nl_NL=Holandski (Holandija) diff --git a/htdocs/langs/sr_RS/loan.lang b/htdocs/langs/sr_RS/loan.lang index 3e8f6cf410b..16ded967a18 100644 --- a/htdocs/langs/sr_RS/loan.lang +++ b/htdocs/langs/sr_RS/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s odlazi na KAMATU GoToPrincipal=%s odlazi na GLAVNICU YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Konfiguracija modula Krediti LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sr_RS/mails.lang b/htdocs/langs/sr_RS/mails.lang index 365e05c4195..0a0115c937e 100644 --- a/htdocs/langs/sr_RS/mails.lang +++ b/htdocs/langs/sr_RS/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Delimično poslat MailingStatusSentCompletely=Potpuno poslat MailingStatusError=Greška MailingStatusNotSent=Nije poslat -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Emailing uspešno odobren MailUnsubcribe=Otkaži MailingStatusNotContact=Ne kontaktirati više @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Linija %s u fajlu @@ -116,8 +120,8 @@ Notifications=Obaveštenja NoNotificationsWillBeSent=Nema planiranih obaveštenja za ovaj događaj i kompaniju ANotificationsWillBeSent=1 obaveštenje će biti poslato mailom SomeNotificationsWillBeSent=%s obaveštenja će biti poslato mailom -AddNewNotification=Aktiviraj novi target za email obaveštenja -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista svih poslatih obaveštenja MailSendSetupIs=Konfiguracija slanja mailova je podešena na "%s". Ovaj mod ne može slati masovne mailove. MailSendSetupIs2=Prvo morate sa admin nalogom otvoriti meni %sHome - Setup - EMails%s da biste promenili parametar '%s' i prešli u mod '%s'. U ovom modu, možete uneti podešavanja SMTP servera Vašeg provajdera i koristiti funkcionalnost masovnog emailinga. diff --git a/htdocs/langs/sr_RS/main.lang b/htdocs/langs/sr_RS/main.lang index 9344892419a..bcc5247a078 100644 --- a/htdocs/langs/sr_RS/main.lang +++ b/htdocs/langs/sr_RS/main.lang @@ -72,8 +72,10 @@ SeeHere=Pogledaj ovde Apply=Apply BackgroundColorByDefault=Default boja pozadine FileRenamed=The file was successfully renamed -FileUploaded=Fajl je uspešno uploadovan FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Fajl je uspešno uploadovan +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Fajl je selektiran za prilog, ali još uvek nije uploadovan. Klikni na "Priloži fajl". NbOfEntries=Br linija GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Ukupno RE TotalLT2ES=Ukupno IRPF HT=Neto TTC=Bruto +INCT=Inc. all taxes VAT=Porez na promet VATs=Porezi prodaje LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Okt MonthShort11=Nov MonthShort12=Dec AttachedFiles=Fajlovi i dokumenti u prilogu -FileTransferComplete=Fajl je uspešno sačuvan DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/sr_RS/margins.lang b/htdocs/langs/sr_RS/margins.lang index 3f4fa46d631..80e0af92c59 100644 --- a/htdocs/langs/sr_RS/margins.lang +++ b/htdocs/langs/sr_RS/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Stopa mora biti numerička markRateShouldBeLesserThan100=Stopa marže mora biti niža od 100 ShowMarginInfos=Prikaži informacije marže CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sr_RS/members.lang b/htdocs/langs/sr_RS/members.lang index a79a9dd120f..b845e769a34 100644 --- a/htdocs/langs/sr_RS/members.lang +++ b/htdocs/langs/sr_RS/members.lang @@ -41,10 +41,10 @@ MemberType=Tip člana MemberTypeId=ID tipa člana MemberTypeLabel=Naziv tipa člana MembersTypes=Tipovi članova -MemberStatusDraft=Draft (čeka potvrdu) -MemberStatusDraftShort=Draft +MemberStatusDraft=Nacrt (čeka na odobrenje) +MemberStatusDraftShort=Nacrt MemberStatusActive=Potvrđen (čeka pretplatu) -MemberStatusActiveShort=Odobren +MemberStatusActiveShort=Potvrđen MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Istekla MemberStatusPaid=Pretplata je ažurna @@ -90,6 +90,7 @@ PublicMemberList=Javna lista članova BlankSubscriptionForm=Javna forma za samostalnu pretplatu BlankSubscriptionFormDesc=Dolibar Vam može obezbediti javni URL koji će omogućiti eksternim posetiocima da zatraže članstvo u fondaciji. Ukoliko je aktiviran modul za online uplate, forma za uplatu može biti automatski dostupna na strani. EnablePublicSubscriptionForm=Aktiviraj javnu formu za samostalnu pretplatu +ForceMemberType=Force the member type ExportDataset_member_1=Članovi i pretplate ImportDataset_member_1=Članovi LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Ovaj ekran pokazuje statistike članova po gradu. MembersStatisticsDesc=Izaberite statistike koje želite da konsultujete... MenuMembersStats=Statistike LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Priroda Public=Javne informacije NewMemberbyWeb=Novi član je dodat. Čeka se odobrenje. diff --git a/htdocs/langs/sr_RS/other.lang b/htdocs/langs/sr_RS/other.lang index e81a263aef4..7d618cde2d9 100644 --- a/htdocs/langs/sr_RS/other.lang +++ b/htdocs/langs/sr_RS/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=funta +WeightUnitounce=unca Length=Dužina LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sr_RS/paybox.lang b/htdocs/langs/sr_RS/paybox.lang index 8df3d477886..d68c03f2fe1 100644 --- a/htdocs/langs/sr_RS/paybox.lang +++ b/htdocs/langs/sr_RS/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email za potvrdu uplate Creditor=Kreditor PaymentCode=Kod uplate PayBoxDoPayment=Izvrši plaćanje +ToPay=Izvrši plaćanje YouWillBeRedirectedOnPayBox=Bićete redrektovani na sigurnu Paybox stranu kako biste uneli informacije Vaše kreditne kartice Continue=Dalje ToOfferALinkForOnlinePayment=URL za %s uplatu diff --git a/htdocs/langs/sr_RS/paypal.lang b/htdocs/langs/sr_RS/paypal.lang index 6765de1100c..aa124949703 100644 --- a/htdocs/langs/sr_RS/paypal.lang +++ b/htdocs/langs/sr_RS/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Ovo je ID transakcije: %s PAYPAL_ADD_PAYMENT_URL=Ubaci URL PayPal uplate prilikom slanja dokumenta putem mail-a PredefinedMailContentLink=Možete kliknuti na secure link ispod da biste izvršili uplatu putem PayPal-a (ukoliko to još niste učinili).\n\n%s\n\n YouAreCurrentlyInSandboxMode=Trenutno ste u "sandbox" modu -NewPaypalPaymentReceived=Nova Paypal uplata je primljena -NewPaypalPaymentFailed=Novi pokušaj uplate Paypal-om nije uspeo +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=Email obaveštenja nakon uplate (uspešne ili ne) ReturnURLAfterPayment=Povratni URL posle plaćanja -ValidationOfPaypalPaymentFailed=Potvrda neuspešne Paypal uplate -PaypalConfirmPaymentPageWasCalledButFailed=Paypal strana za konfirmaciju uplate je pozvana, ali je konfirmacija neuspela +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=Greška u pozivu SetExpressCheckout API. DoExpressCheckoutPaymentAPICallFailed=Greška u pozivu DoExpressCheckoutPayment API. DetailedErrorMessage=Detaljna poruka greške ShortErrorMessage=Kratka poruka greške ErrorCode=Kod greške ErrorSeverityCode=Kod ozbiljnosti greške +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sr_RS/printing.lang b/htdocs/langs/sr_RS/printing.lang index 0a8f4c05e5d..c97f124d6bb 100644 --- a/htdocs/langs/sr_RS/printing.lang +++ b/htdocs/langs/sr_RS/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=Ova strana lista zadatke štampanja za sve dostupne štampače GoogleAuthNotConfigured=Google OAuth podešavanje nije završeno. Aktivirajte modul OAuth i podesite Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials pronađeni u podešavanjima modula OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Opcije driver-a štampača Google Cloud Print. +PrintTestDescprintgcp=Lista štampača za Google Cloud Print. diff --git a/htdocs/langs/sr_RS/products.lang b/htdocs/langs/sr_RS/products.lang index 13eafff510d..f2cf5daa5ed 100644 --- a/htdocs/langs/sr_RS/products.lang +++ b/htdocs/langs/sr_RS/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Proizvod ili Usluga ProductsAndServices=Proizvodi i Usluge ProductsOrServices=Proizvodi ili Usluge -ProductsOnSell=Proizvod za prodaju ili kupovinu -ProductsNotOnSell=Proizvod koji nije za prodaju ni kupovinu +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Proizvodi za prodaju i nabavku -ServicesOnSell=Usluga za prodaju ili kupovinu -ServicesNotOnSell=Usluge koje nisu za prodaju +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Usluge za prodaju i nabavku LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litar l=L +unitP=Piece +unitSET=Set +unitS=Sekund +unitH=Sat +unitD=Dan +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Template ref. proizvoda ServiceCodeModel=Template ref. usluge CurrentProductPrice=Trenutna cena @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% varijacija od %s PercentDiscountOver=%% popust od %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Napravi ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Pod-proizvod MinSupplierPrice=Minimalna cena dobavljača MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dinamička konfiguracija cene -DynamicPriceDesc=Na kartici proizvoda, kada je ovaj modul omogućen, trebalo bi da možete matematički da proračunate prodajnu ili nabavnu cenu. Ovakva funkcija koristi sve matematičke operacije, neka konstante i varijable. Ovde možete postaviti promenljive koje želiteda budu dostupne, čak i ako one treba da se ažuriraju, koristeći eksterni URL možete upitati Dolibarr da automatski ažurira vrednost. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Dodaj promenljivu AddUpdater=Dodaj ažuriranje GlobalVariables=Globalne promenljive VariableToUpdate=Promenljiva za ažuriranje GlobalVariableUpdaters=Ažuriranje globalnih promenljivih +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Čita JSON podatke sa naznačenog URL-a, VALUE označava lokaciju vrednosti, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Čita WebService podatke sa naznačenog URL-a. NS označava namespace, VALUE označava lokaciju vrednosti, DATA označava podatke za slanje i METHOD je pozvana WS metoda +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Interval ažuriranja (minuti) LastUpdated=Latest update CorrectlyUpdated=Uspešno ažurirano @@ -260,6 +281,8 @@ SizeUnits=jedinica veličine DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sr_RS/propal.lang b/htdocs/langs/sr_RS/propal.lang index 7b80739a53d..a079269e23f 100644 --- a/htdocs/langs/sr_RS/propal.lang +++ b/htdocs/langs/sr_RS/propal.lang @@ -3,7 +3,7 @@ Proposals=Komercijalne ponude Proposal=Komercijalna ponuda ProposalShort=Ponuda ProposalsDraft=Nacrt komercijalne ponude -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Otvorene komercijalne ponude Prop=Komercijalne ponude CommercialProposal=Komercijaln ponuda ProposalCard=Kartica ponude @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Svota po mesecu (neto) NbOfProposals=Broj komercijalnih ponuda ShowPropal=Prikaži ponudu PropalsDraft=Nacrt -PropalsOpened=Opened +PropalsOpened=Otvoreno PropalStatusDraft=Nacrt (čeka odobrenje) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Potpisana (za naplatu) diff --git a/htdocs/langs/sr_RS/resource.lang b/htdocs/langs/sr_RS/resource.lang index a9ad09d7b06..a05554eb1b1 100644 --- a/htdocs/langs/sr_RS/resource.lang +++ b/htdocs/langs/sr_RS/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resurs uspešno obrisan DictionaryResourceType=Tip resursa SelectResource=Izbor resursa + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resursi diff --git a/htdocs/langs/sr_RS/salaries.lang b/htdocs/langs/sr_RS/salaries.lang index 7d4cdee42fe..d533d1ae429 100644 --- a/htdocs/langs/sr_RS/salaries.lang +++ b/htdocs/langs/sr_RS/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Računovodstveni kod za isplate zarada -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Računovodstveni kod za finansijske troškove +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Plata Salaries=Plate NewSalaryPayment=Nova isplata zarade diff --git a/htdocs/langs/sr_RS/sendings.lang b/htdocs/langs/sr_RS/sendings.lang index 70aac2d80ec..66ef81af969 100644 --- a/htdocs/langs/sr_RS/sendings.lang +++ b/htdocs/langs/sr_RS/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Ulica isporuke ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Jednostavan model dokumenta DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Upozorenje, nema proizvoda koji čekaju na isporuku. StatsOnShipmentsOnlyValidated=Statistike se vrše samo na potvrđenim isporukama. Datum koji se koristi je datum potvrde isporuke (planirani datum isporuke nije uvek poznat) @@ -51,10 +50,10 @@ ActionsOnShipping=Događaji na isporuci LinkToTrackYourPackage=Link za praćenje Vašeg paketa ShipmentCreationIsDoneFromOrder=Trenutno se kreacije nove isporuke radi sa kartice narudžbine. ShipmentLine=Linija isporuke -ProductQtyInCustomersOrdersRunning=Količina proizvoda u otvorenim narudžbinama klijenta -ProductQtyInSuppliersOrdersRunning=Količina proizvoda u otvorenim dobavljačevim narudžbinama -ProductQtyInShipmentAlreadySent=Količina proizvoda u već poslatim otvorenim narudžbinama klijenta -ProductQtyInSuppliersShipmentAlreadyRecevied=Količina proizvoda u već primljenim otvorenim dobavljačevim narudžbinama +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Nema proizvoda za isporuku u magacin %s. Ispravite zalihu ili izaberite drugi magacin. WeightVolShort=Težina/Zapr. ValidateOrderFirstBeforeShipment=Morate prvo potvrditi porudžbinu pre nego omogućite formiranje isporuke. diff --git a/htdocs/langs/sr_RS/stocks.lang b/htdocs/langs/sr_RS/stocks.lang index 7c1dd34dee2..3c8b497028e 100644 --- a/htdocs/langs/sr_RS/stocks.lang +++ b/htdocs/langs/sr_RS/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Naziv prometa NumberOfUnit=Broj jedinica UnitPurchaseValue=Kupovna cena jedinice StockTooLow=Zalihe su premale -StockLowerThanLimit=Zaliha je niža od limita alertiranja +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Vrednost PMPValue=Prosecna cena PMPValueShort=PC @@ -53,7 +53,7 @@ IndependantSubProductStock=Zaliha proizvoda i pod-proizvoda su nezavisne QtyDispatched=Raspoređena količina QtyDispatchedShort=Raspodeljena kol. QtyToDispatchShort=Kol. za raspodelu -OrderDispatch=Raspodela zalihe +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Pravila za automatsko smanjivanje zaliha (ručno smanjivanje je uvek moguće, čak i kada je automatsko pravilo aktivirano) RuleForStockManagementIncrease=Pravila za automatsko uvećanje zaliha (ručno uvećanje je uvek moguće, čak i kada je automatsko pravilo aktivirano) DeStockOnBill=Smanji realne zalihe nakon potvrde računa/kreditne note klijenta @@ -62,16 +62,19 @@ DeStockOnShipment=Smanji realne zalihe nakon potvrde računa/kreditne note dobav DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Povećaj realne zalihe nakon potvrde računa/kreditne note dobavljača ReStockOnValidateOrder=Povećaj realne zalihe nakon potvrde narudžbine dobavljača -ReStockOnDispatchOrder=Povećaj realne zalihe nakon ručne raspodele po magacinima, nakon prijema narudžbine dobavljača +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Narudžbina nema status koji omogućava otpremu proizvoda u magacin. -StockDiffPhysicTeoric=Objašnjenje razlike fizičke i teoretske zalihe +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Nema predefinisanih proizvoda za ovaj objekat. Stoga otprema u zalihu nije potrebna. DispatchVerb=Raspodela StockLimitShort=Limit za alertiranje StockLimit=Limit zalihe za alertiranje PhysicalStock=Fizička zaliha RealStock=Realna zaliha +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Fiktivna zaliha +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id magacina DescWareHouse=Opis magacina LieuWareHouse=Lokacija magacina @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Količina proizvoda %s u zalihama pre selektiranog perio NbOfProductAfterPeriod=Količina proizvoda %s u zalihama posle selektiranog perioda (> %s) MassMovement=Masivni promet SelectProductInAndOutWareHouse=Izaberite proizvod, količinu, izvorni magacin, ciljani magacin i kliknite "%s". Kada su sva kretanja izvršena, kliknite "%s". -RecordMovement=Snimi transfer +RecordMovement=Record transfer ReceivingForSameOrder=Prijemnice za ovu narudžbinu StockMovementRecorded=Snimljeni prometi zalihe RuleForStockAvailability=Pravila na zahtevima zaliha @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Izmeni +inventoryValidate=Potvrđen +inventoryDraft=Aktivan +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Kreiraj +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Filter po kategoriji +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Dodaj +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Obriši red +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/sr_RS/suppliers.lang b/htdocs/langs/sr_RS/suppliers.lang index 07a3040908d..998f2424845 100644 --- a/htdocs/langs/sr_RS/suppliers.lang +++ b/htdocs/langs/sr_RS/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Neki od pod-proizvoda nemaju definisanu cenu AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Cene dobavljača ReferenceSupplierIsAlreadyAssociatedWithAProduct=Ovaj dobavljač je već vezan za referencu: %s NoRecordedSuppliers=Nema sačuvanih dobavljača SupplierPayment=Uplata dobavljača @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Cene dobavljača diff --git a/htdocs/langs/sr_RS/trips.lang b/htdocs/langs/sr_RS/trips.lang index b2e9557e2c8..5995cb40f7c 100644 --- a/htdocs/langs/sr_RS/trips.lang +++ b/htdocs/langs/sr_RS/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Lista honorara TypeFees=Types of fees ShowTrip=Prikaži trošak NewTrip=Novi trošak -CompanyVisited=Kompanija/fundacija koja je posećena +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Broj kilometara DeleteTrip=Obriši trošak ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Čeka na odobrenje ExpensesArea=Oblast troškova ClassifyRefunded=Označi kao "Refundirano" ExpenseReportWaitingForApproval=Novi trošak je poslat na odobrenje -ExpenseReportWaitingForApprovalMessage=Napravljen je novi zahtev koji čeka na odobrenje.\n- Korisnik %s\n- Period: %s\nKliknite ovde da potvrdite: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=ID troška AnyOtherInThisListCanValidate=Osoba koju treba obavestiti za odobrenje. TripSociete=Informacije kompanije @@ -59,31 +69,24 @@ DATE_REFUS=Datum odbijanja DATE_SAVE=Datum odobrenja DATE_CANCEL=Datum otkazivanja DATE_PAIEMENT=Datum isplate - BROUILLONNER=Ponovo Otvoreno +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Potvrdi i pošalji na odobrenje ValidatedWaitingApproval=Potvrđeno (čeka odobrenje) - NOT_AUTHOR=Vi niste autor ovog troška. Operacija je otkazana. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Odobri trošak ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Isplati trošak ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Vrati trošak u status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Odobri trošak ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=Nema troškova za ovaj period. ExpenseReportPayment=Isplata troška - ExpenseReportsToApprove=Izveštaj trškova za odobrenje ExpenseReportsToPay=Troškovi zaisplatu +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sr_RS/users.lang b/htdocs/langs/sr_RS/users.lang index 305d26e405c..fed49ae1203 100644 --- a/htdocs/langs/sr_RS/users.lang +++ b/htdocs/langs/sr_RS/users.lang @@ -66,8 +66,8 @@ InternalUser=Interni korsnik ExportDataset_user_1=Korisnici Dolibarr-a i parametri DomainUser=Korisnik domena %s Reactivate=Reaktiviraj -CreateInternalUserDesc=Ova forma omogućava kreiranje korisnika u okviru Vaše kompanije/fondacije. Da biste kreirali spoljnog korisnika (klijenta, dobavljača, ...), koristite dugme "Kreiraj Dolibarr korisnika" iz kartice kontakta subjekta. -InternalExternalDesc=Interni korisnik je korisnik koji je deo Vaše kompanije/fondacije.
An Eksterni korisnik je klijent, dobavljač i sl.

U oba slučaja, prava su definisana u Dolibarr-u, a eksterni korisnik može imati drugačiji meni nego interni korisnik (Home - Podešavanja - Prikaz) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Prava su dodeljena jer su nasleđena od jedne od korisnikovih grupa. Inherited=Nasleđeno UserWillBeInternalUser=Kreirani korisnik će biti interni korisnik (jer nije vezan za određeni subjekat) diff --git a/htdocs/langs/sr_RS/withdrawals.lang b/htdocs/langs/sr_RS/withdrawals.lang index 18222f6a67c..135a271471d 100644 --- a/htdocs/langs/sr_RS/withdrawals.lang +++ b/htdocs/langs/sr_RS/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Svota za podizanje WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Nema faktura klijenata u modu "podizanje" na čekanju. Otvorite tab "Podizanja" na kartici fakture da biste kreirali zahtev. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Odgovorni korisnik WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Razlog odbijanja RefusedInvoicing=Naplata odbijanja NoInvoiceRefused=Ne naplatiti odbijanje InvoiceRefused=Račun odbijen (naplati odbijanje klijentu) +StatusDebitCredit=Status debit/credit StatusWaiting=Na čekanju StatusTrans=Poslat StatusCredited=Kreditirano diff --git a/htdocs/langs/sv_SE/accountancy.lang b/htdocs/langs/sv_SE/accountancy.lang index 8b3bd4d73be..75401e85380 100644 --- a/htdocs/langs/sv_SE/accountancy.lang +++ b/htdocs/langs/sv_SE/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Lägg till ett redovisningskonto AccountAccounting=Redovisningskonto AccountAccountingShort=Konto SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Försäljning AccountingJournalType3=Inköp AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Export Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Modell av export OptionsDeactivatedForThisExportModel=För denna exportmodell är tillval inaktiverade Selectmodelcsv=Välj en modell av export diff --git a/htdocs/langs/sv_SE/admin.lang b/htdocs/langs/sv_SE/admin.lang index 6b0aeb6aeda..290488de7ac 100644 --- a/htdocs/langs/sv_SE/admin.lang +++ b/htdocs/langs/sv_SE/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Begär leverantör kommersiella förslag och priser Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Bokföring -Module1400Desc=Bokföring och redovisning (dubbel part) +Module1400Desc=Accounting management (double entries) Module1520Name=Dokument Generation Module1520Desc=Mass post dokumentgenerering Module1780Name=Taggar/Kategorier @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Modul för att erbjuda en online-betalning sidan med kreditkort med Paypal Module50400Name=Redovisning (avancerad) -Module50400Desc=Bokföring och redovisning (dubbla parter) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direktutskrift (utan att öppna dokumenten) använder Cups IPP-gränssnitt (skrivare måste vara synlig från servern, och CUPS måste vara installerad på servern). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/sv_SE/agenda.lang b/htdocs/langs/sv_SE/agenda.lang index 6dc91c637cb..402ec67a647 100644 --- a/htdocs/langs/sv_SE/agenda.lang +++ b/htdocs/langs/sv_SE/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID händelse Actions=Åtgärder Agenda=Agenda +TMenuAgenda=Agenda Agendas=Dagordningar LocalAgenda=Intern kalender ActionsOwnedBy=Händelse som ägs av @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Faktura %s raderas InvoicePaidInDolibarr=Faktura %s ändrades till betald InvoiceCanceledInDolibarr=Faktura %s annulleras MemberValidatedInDolibarr=Medlem %s validerade +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Medlem %s raderad MemberSubscriptionAddedInDolibarr=Teckning av medlem %s tillades ShipmentValidatedInDolibarr=Leverans %s validerad -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Frakten %s raderad OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Beställ %s validerade @@ -73,13 +75,17 @@ InterventionSentByEMail=Ärende %s skickat per epost ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Startdatum DateActionEnd=Slutdatum AgendaUrlOptions1=Du kan också lägga till följande parametrar för att filtrera utgång: -AgendaUrlOptions2=login=%s för att begränsa utdata till händelser skapade av eller tilldelade användare %s. AgendaUrlOptions3=Logina =%s ​​att begränsa produktionen till åtgärder som ägs av en användare%s. -AgendaUrlOptions4=logint = %s att begränsa produktionen till handlande påverkade användarnas %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=projekt = PROJECT_ID att begränsa produktionen till åtgärder i samband med projektet PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/sv_SE/banks.lang b/htdocs/langs/sv_SE/banks.lang index c8069f091be..301a03b89de 100644 --- a/htdocs/langs/sv_SE/banks.lang +++ b/htdocs/langs/sv_SE/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaktions-ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Avstämning ReconciliationLate=Reconciliation late IncludeClosedAccount=Inkludera stängda konton -OnlyOpenedAccount=Endast öppnat konton +OnlyOpenedAccount=Enbart öppna konton AccountToCredit=Hänsyn till kreditinstitut AccountToDebit=Konto att debitera DisableConciliation=Inaktivera försoning för den här kontot ConciliationDisabled=Avstämning inaktiverad LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Öppnad +StatusAccountOpened=Öppen StatusAccountClosed=Stängt AccountIdShort=Antal LineRecord=Transaktion @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sv_SE/bills.lang b/htdocs/langs/sv_SE/bills.lang index ac210e0d4bd..572b13773f6 100644 --- a/htdocs/langs/sv_SE/bills.lang +++ b/htdocs/langs/sv_SE/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard faktura InvoiceStandardAsk=Standard faktura InvoiceStandardDesc=Denna typ av faktura är den gemensamma fakturan. -InvoiceDeposit=Insättning faktura -InvoiceDepositAsk=Insättning faktura -InvoiceDepositDesc=Denna typ av faktura sker när en insättning har mottagits. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma faktura InvoiceProFormaAsk=Proforma faktura InvoiceProFormaDesc=Proforma faktura är en bild av en sann faktura men har ingen bokföring värde. @@ -62,7 +62,7 @@ PaymentsBack=Betalningar tillbaka paymentInInvoiceCurrency=in invoices currency PaidBack=Återbetald DeletePayment=Radera betalning -ConfirmDeletePayment=Är du säker på att du vill ta bort denna betalning? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Leverantörer betalningar ReceivedPayments=Mottagna betalningar @@ -115,7 +115,7 @@ BillStatus=Faktura status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Utkast (måste valideras) BillStatusPaid=Betald -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Omräknat i rabatt BillStatusCanceled=Övergiven BillStatusValidated=Validerad (måste betalas) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Betald (delvis) BillShortStatusDraft=Utkast BillShortStatusPaid=Betald BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Bearbetad +BillShortStatusConverted=Betald BillShortStatusCanceled=Övergiven BillShortStatusValidated=Validerad BillShortStatusStarted=Började @@ -198,12 +198,12 @@ ShowBill=Visa faktura ShowInvoice=Visa faktura ShowInvoiceReplace=Visa ersätter faktura ShowInvoiceAvoir=Visa kreditnota -ShowInvoiceDeposit=Visa insättning faktura +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Visa betalning AlreadyPaid=Redan betalats ut AlreadyPaidBack=Redan återbetald -AlreadyPaidNoCreditNotesNoDeposits=Redan betalats (utan kreditnotor och inlåning) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Övergiven RemainderToPay=Återstående obetalt RemainderToTake=Återstående belopp att ta @@ -270,10 +270,10 @@ RelativeDiscount=Relativ rabatt GlobalDiscount=Global rabatt CreditNote=Kreditnota CreditNotes=Kreditnotor -Deposit=Insättning -Deposits=Inlåning +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Rabatt från kreditnota %s -DiscountFromDeposit=Betalningar från %s insättning faktura +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Denna typ av krediter kan användas på fakturan innan validering CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Kan inte ta bort betalning eftersom det inte ExpectedToPay=Förväntad utbetalning CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Betalas av denna betalning -ClosePaidInvoicesAutomatically=Klassificera "Betald" alla standard-, löpande och ersättningsfakturor som är fullständigt betalda. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Beteckna "Betalda" alla fullständigt återbetalda kreditnotor. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Alla fakturor utan återstående att betala kommer automatiskt stängd för status "betald". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Faktura modell Crabe. En fullständig faktura modell (Stöd moms alternativet, rabatter, betalningar villkor, logotyp, etc. ..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Återger nummer med formatet %syymm-nnnn för standardfakturor och %syymm-NNNN för kreditnotor där yy är året, mm månaden och nnnn är en sekvens med ingen paus och ingen återgång till 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Ett lagförslag som börjar med $ syymm finns redan och är inte förenligt med denna modell för sekvens. Ta bort den eller byta namn på den för att aktivera denna modul. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representanten uppföljning kundfaktura TypeContact_facture_external_BILLING=Kundfaktura kontakt diff --git a/htdocs/langs/sv_SE/bookmarks.lang b/htdocs/langs/sv_SE/bookmarks.lang index d1d98a0923c..5e32d8f5e05 100644 --- a/htdocs/langs/sv_SE/bookmarks.lang +++ b/htdocs/langs/sv_SE/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Lägg till sidan som bokmärke +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bokmärke Bookmarks=Bokmärken +ListOfBookmarks=Listan över bokmärken +EditBookmarks=List/edit bookmarks NewBookmark=Nytt bokmärke ShowBookmark=Visa bokmärke OpenANewWindow=Öppna ett nytt fönster @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Nytt fönster BookmarkTargetReplaceWindowShort=Nuvarande fönster BookmarkTitle=Bokmärk titel UrlOrLink=URL -BehaviourOnClick=Beteende när en URL är klickad på +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Skapa bokmärke SetHereATitleForLink=Ange en titel för bokmärket UseAnExternalHttpLinkOrRelativeDolibarrLink=Använd en extern http URL eller en relativ Dolibarr URL diff --git a/htdocs/langs/sv_SE/boxes.lang b/htdocs/langs/sv_SE/boxes.lang index 2d55b2d703f..9d576668385 100644 --- a/htdocs/langs/sv_SE/boxes.lang +++ b/htdocs/langs/sv_SE/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS-information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Kund beställningar ForProposals=Förslag LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sv_SE/cashdesk.lang b/htdocs/langs/sv_SE/cashdesk.lang index aa07ed93674..15bc54ee3a1 100644 --- a/htdocs/langs/sv_SE/cashdesk.lang +++ b/htdocs/langs/sv_SE/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Skillnaden TotalTicket=Totalt biljett NoVAT=Ingen moms för denna försäljning Change=Överskott mottagna -BankToPay=KONTO +BankToPay=Account for payment ShowCompany=Visar företaget ShowStock=Visar lagret DeleteArticle=Klicka här för att ta bort den här artikeln diff --git a/htdocs/langs/sv_SE/categories.lang b/htdocs/langs/sv_SE/categories.lang index 3155d7a8be7..fccb656f5bc 100644 --- a/htdocs/langs/sv_SE/categories.lang +++ b/htdocs/langs/sv_SE/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category -Rubriques=Tags/Categories +Rubriques=Taggar/Kategorier +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=I @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=Denna kategori finns redan med denna ref ContentsVisibleByAllShort=Innehållsförteckning synlig för alla ContentsNotVisibleByAllShort=Innehåll inte synlig för alla DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/sv_SE/commercial.lang b/htdocs/langs/sv_SE/commercial.lang index 4d83dc88d5d..5bbe987392d 100644 --- a/htdocs/langs/sv_SE/commercial.lang +++ b/htdocs/langs/sv_SE/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Möte med %s ShowTask=Visa uppgift ShowAction=Visa åtgärder ActionsReport=Åtgärder rapport -ThirdPartiesOfSaleRepresentative=Tredje parter med säljare +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Säljare SalesRepresentatives=Säljare SalesRepresentativeFollowUp=Försäljare (uppföljning) diff --git a/htdocs/langs/sv_SE/companies.lang b/htdocs/langs/sv_SE/companies.lang index 659c82fe210..cc8c345b022 100644 --- a/htdocs/langs/sv_SE/companies.lang +++ b/htdocs/langs/sv_SE/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Nya privatperson NewCompany=Nytt företag (möjlig kund, kund, leverantör) NewThirdParty=Ny tredje part (möjlig kund, kund, leverantör) CreateDolibarrThirdPartySupplier=Skapa tredje part (leverantör) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Skapa tredje part CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospektering område IdThirdParty=Id tredje part @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Kunder ThirdPartyCustomersWithIdProf12=Kunder med %s eller %s ThirdPartySuppliers=Leverantörer ThirdPartyType=Tredje part typ -Company/Fundation=Företag / stiftelse Individual=Privatperson ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Moderbolaget @@ -78,10 +77,10 @@ VATIsNotUsed=Moms används inte CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Förslag +OverAllOrders=Beställningar +OverAllInvoices=Fakturor +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Använda andra skatte LocalTax1IsUsedES= RE används @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane kod) ProfId4TN=Prof Id 4 (förbud) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relativ rabatt CustomerAbsoluteDiscountShort=Absolut rabatt CompanyHasRelativeDiscount=Denna kund har en rabatt på %s%% CompanyHasNoRelativeDiscount=Denna kund har ingen relativ rabatt som standard -CompanyHasAbsoluteDiscount=Denna kund har fortfarande rabatter eller insättningar för %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Denna kund har fortfarande kreditnotor för %s %s CompanyHasNoAbsoluteDiscount=Denna kund har inga rabatttillgodohavanden CustomerAbsoluteDiscountAllUsers=Absolut rabatter (beviljat av alla användare) @@ -390,7 +395,7 @@ ListCustomersShort=Lista över kunder ThirdPartiesArea=Tredje part och kontaktyta LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Totalt unika tredje part -InActivity=Öppnad +InActivity=Öppen ActivityCeased=Stängt ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Kund / leverantör-nummer är ledig. Denna kod kan ändra ManagingDirectors=Företagledares namn (vd, direktör, ordförande ...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sv_SE/contracts.lang b/htdocs/langs/sv_SE/contracts.lang index 34589798380..02f20862c35 100644 --- a/htdocs/langs/sv_SE/contracts.lang +++ b/htdocs/langs/sv_SE/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Denna förteckning omfattar endast tjänster från StandardContractsTemplate=Standardkontrakt mall ContactNameAndSignature=För %s, namn och underskrift: OnlyLinesWithTypeServiceAreUsed=Endast rader med typ "Service" kommer att klonas. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Säljare som tecknar avtal diff --git a/htdocs/langs/sv_SE/exports.lang b/htdocs/langs/sv_SE/exports.lang index 962ae7a7ada..e1e158aa0d8 100644 --- a/htdocs/langs/sv_SE/exports.lang +++ b/htdocs/langs/sv_SE/exports.lang @@ -110,13 +110,24 @@ Enclosure=Inneslutning SpecialCode=Specialkod ExportStringFilter=%% Tillåter ersätta ett eller flera tecken i texten ExportDateFilter=ÅÅÅÅ, ÅÅÅÅMM, ÅÅÅÅMMDD: filter efter ett år / månad / dag
ÅÅÅÅ + ÅÅÅÅ, ÅÅÅÅMM + ÅÅÅÅMM, ÅÅÅÅMMDD + ÅÅÅÅMMDD: filter över en rad år / månader / dagar
> ÅÅÅÅ,> ÅÅÅÅMM,> ÅÅÅÅMMDD: filter på alla följande år / månader / dagar
<ÅÅÅÅ, <ÅÅÅÅMM, <ÅÅÅÅMMDD: filter på alla tidigare år / månader / dagar -ExportNumericFilter='NNNNN "filter med en värde
'NNNNN + NNNNN' filter över ett intervall av värden
"> NNNNN" filter med lägre värden
"> NNNNN" filter med högre värden +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Om du vill filtrera på vissa värderingar, fyll i ingångsvärden här. FilteredFields=Filtrerad fält FilteredFieldsValues=Värde för filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sv_SE/holiday.lang b/htdocs/langs/sv_SE/holiday.lang index 29c4011fcce..4721c67e045 100644 --- a/htdocs/langs/sv_SE/holiday.lang +++ b/htdocs/langs/sv_SE/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Annullerad RefuseCP=Refused ValidatorCP=Approbator ListeCP=Lista över blad -ReviewedByCP=Kommer att granskas av +ReviewedByCP=Will be approved by DescCP=Beskrivning SendRequestCP=Skapa permission begäran DelayToRequestCP=Lämna begäran måste göras minst %s dag (ar) före dem. diff --git a/htdocs/langs/sv_SE/install.lang b/htdocs/langs/sv_SE/install.lang index 4d9978ccb26..2f908fa6051 100644 --- a/htdocs/langs/sv_SE/install.lang +++ b/htdocs/langs/sv_SE/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Du använder Dolibarr inställningsguiden från DoliWamp, KeepDefaultValuesDeb=Du använder Dolibarr inställningsguiden från en Ubuntu eller Debian, så värden som här föreslås är redan optimerade. Endast lösenord i databasen ägaren för att skapa måste fyllas. Ändra andra parametrar om du vet vad du gör. KeepDefaultValuesMamp=Du använder Dolibarr inställningsguiden från DoliMamp, värden så som här föreslås är redan optimerade. Ändra dem bara om du vet vad du gör. KeepDefaultValuesProxmox=Du använder Dolibarr inställningsguiden från en Proxmox virtuell apparat, så som föreslås här är redan optimerade. Ändra dem bara om du vet vad du gör. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sv_SE/interventions.lang b/htdocs/langs/sv_SE/interventions.lang index 07791bb154c..8101ed96614 100644 --- a/htdocs/langs/sv_SE/interventions.lang +++ b/htdocs/langs/sv_SE/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Ingrepp %s raderad InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Uppföljning kundkontakt # Modele numérotation diff --git a/htdocs/langs/sv_SE/languages.lang b/htdocs/langs/sv_SE/languages.lang index e7c0e4fd37c..f21717ee76c 100644 --- a/htdocs/langs/sv_SE/languages.lang +++ b/htdocs/langs/sv_SE/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Tyska Language_de_AT=Tyska (Österrike) Language_de_CH=Tyska (Schweiz) Language_el_GR=Grekiska +Language_el_CY=Greek (Cyprus) Language_en_AU=Engelska (Australien) Language_en_CA=Engelska (Kanada) Language_en_GB=Engelska (Storbritannien) @@ -26,8 +27,10 @@ Language_es_BO=Spanska (Bilivia) Language_es_CL=Spanska (Chile) Language_es_CO=Spanska (Colombia) Language_es_DO=Spanska (Dominikanska republiken) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanska (Honduras) Language_es_MX=Spanska (Mexiko) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanska (Paraguay) Language_es_PE=Spanska (Peru) Language_es_PR=Spanska (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Isländska Language_it_IT=Italienska Language_ja_JP=Japanska Language_ka_GE=Gregorianska +Language_km_KH=Khmer Language_kn_IN=Kanadensiska Language_ko_KR=Koreanska Language_lo_LA=Laoitiska Language_lt_LT=Litauiska Language_lv_LV=Lettländska Language_mk_MK=Makedonska +Language_mn_MN=Mongolian Language_nb_NO=Norska (bokmål) Language_nl_BE=Holländska (Belgien) Language_nl_NL=Nederländska (Nederländerna) diff --git a/htdocs/langs/sv_SE/loan.lang b/htdocs/langs/sv_SE/loan.lang index a06f616b927..c2cd6712825 100644 --- a/htdocs/langs/sv_SE/loan.lang +++ b/htdocs/langs/sv_SE/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sv_SE/mails.lang b/htdocs/langs/sv_SE/mails.lang index 61f4c6b3419..5b519150dc7 100644 --- a/htdocs/langs/sv_SE/mails.lang +++ b/htdocs/langs/sv_SE/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Skickat delvis MailingStatusSentCompletely=Skickade helt MailingStatusError=Fel MailingStatusNotSent=Skickas inte -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=E-post validerades MailUnsubcribe=Avanmälan MailingStatusNotContact=Kontakta inte längre @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s i filen @@ -116,8 +120,8 @@ Notifications=Anmälningar NoNotificationsWillBeSent=Inga e-postmeddelanden planeras för detta evenemang och företag ANotificationsWillBeSent=En anmälan kommer att skickas via e-post SomeNotificationsWillBeSent=%s anmälningar kommer att skickas via e-post -AddNewNotification=Aktivera ett nytt mål e-postmeddelande -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Lista alla e-postmeddelanden skickas MailSendSetupIs=Konfiguration av e-post att skicka har ställts in till "% s". Detta läge kan inte användas för att skicka massutskick. MailSendSetupIs2=Du måste först gå, med ett administratörskonto, i meny% Shome - Setup - e-post% s för att ändra parameter '% s' för att använda läget "% s". Med det här läget kan du ange inställningar för SMTP-servern från din internetleverantör och använda Mass mejla funktionen. diff --git a/htdocs/langs/sv_SE/main.lang b/htdocs/langs/sv_SE/main.lang index 4f243484bdc..8b3e5c261ca 100644 --- a/htdocs/langs/sv_SE/main.lang +++ b/htdocs/langs/sv_SE/main.lang @@ -72,8 +72,10 @@ SeeHere=Se hänvisning Apply=Tillämpa BackgroundColorByDefault=Standard bakgrundsfärg FileRenamed=The file was successfully renamed -FileUploaded=Filen har laddats upp FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Filen har laddats upp +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=En fil är vald att bifogas, men har ännu inte laddats upp. Klicka på 'Bifoga fil' för detta. NbOfEntries=Antal värden GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Totalt RE TotalLT2ES=Totalt IRPF HT=Netto efter skatt TTC=Inkl. moms +INCT=Inc. all taxes VAT=Moms VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Okt MonthShort11=Nov MonthShort12=Dec AttachedFiles=Bifogade filer och dokument -FileTransferComplete=Filen laddades upp DateFormatYYYYMM=ÅÅÅÅ-MM DateFormatYYYYMMDD=ÅÅÅÅ-MM-DD DateFormatYYYYMMDDHHMM=ÅÅÅÅ-MM-DD HH:SS diff --git a/htdocs/langs/sv_SE/margins.lang b/htdocs/langs/sv_SE/margins.lang index cff43d25c5f..b0c581fcd42 100644 --- a/htdocs/langs/sv_SE/margins.lang +++ b/htdocs/langs/sv_SE/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Betyg måste vara ett numeriskt värde markRateShouldBeLesserThan100=Mark takt bör vara lägre än 100 ShowMarginInfos=Visa marginal information CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sv_SE/members.lang b/htdocs/langs/sv_SE/members.lang index a50041f81ba..6dd83ba6dd8 100644 --- a/htdocs/langs/sv_SE/members.lang +++ b/htdocs/langs/sv_SE/members.lang @@ -42,9 +42,9 @@ MemberTypeId=Medlem typ id MemberTypeLabel=Medlem etikett MembersTypes=Medlemmar typer MemberStatusDraft=Utkast (måste valideras) -MemberStatusDraftShort=Förslag +MemberStatusDraftShort=Utkast MemberStatusActive=Validerad (väntar prenumeration) -MemberStatusActiveShort=Validerad +MemberStatusActiveShort=Validerade MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Utgångna MemberStatusPaid=Prenumeration aktuell @@ -90,6 +90,7 @@ PublicMemberList=Offentliga medlemslista BlankSubscriptionForm=Anmälningssedel BlankSubscriptionFormDesc=Dolibarr kan ge dig en offentlig URL till tillåta externa besökare att be att prenumerera på stiftelsen. Om en online-betalning modulen är aktiverad, kommer en inbetalningskort även lämnas ut automatiskt. EnablePublicSubscriptionForm=Aktivera offentliga auto-anmälningssedel +ForceMemberType=Force the member type ExportDataset_member_1=Medlemmar och prenumerationer ImportDataset_member_1=Medlemmar LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=Denna skärm visar statistik om medlemmar med stan. MembersStatisticsDesc=Välj statistik du vill läsa ... MenuMembersStats=Statistik LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Naturen Public=Information är offentliga NewMemberbyWeb=Ny ledamot till. Väntar på godkännande @@ -168,4 +170,4 @@ MembersByRegion=This screen show you statistics on members by region. VATToUseForSubscriptions=Moms-sats för prenumeration NoVatOnSubscription=Ingen moms för prenumeration MEMBER_PAYONLINE_SENDEMAIL=Email to use for email warning when Dolibarr receive a confirmation of a validated payment for a subscription (Example: paymentdone@example.com) -ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Produkten används för beställnings linje i fakturan: %s +ADHERENT_PRODUCT_ID_FOR_SUBSCRIPTIONS=Product used for subscription line into invoice: %s diff --git a/htdocs/langs/sv_SE/modulebuilder.lang b/htdocs/langs/sv_SE/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/sv_SE/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/sv_SE/oauth.lang b/htdocs/langs/sv_SE/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/sv_SE/oauth.lang +++ b/htdocs/langs/sv_SE/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/sv_SE/other.lang b/htdocs/langs/sv_SE/other.lang index 896818bf966..0f19e535c4a 100644 --- a/htdocs/langs/sv_SE/other.lang +++ b/htdocs/langs/sv_SE/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pund +WeightUnitounce=uns Length=Längd LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sv_SE/paybox.lang b/htdocs/langs/sv_SE/paybox.lang index 0b1d96cef0a..27658270ab2 100644 --- a/htdocs/langs/sv_SE/paybox.lang +++ b/htdocs/langs/sv_SE/paybox.lang @@ -11,6 +11,7 @@ YourEMail=E-post för betalning bekräftelse Creditor=Borgenär PaymentCode=Betalning kod PayBoxDoPayment=Gå mot betalning +ToPay=Gör betalning YouWillBeRedirectedOnPayBox=Du kommer att omdirigeras på säkrade Paybox sida för att mata dig kreditkortsinformation Continue=Nästa ToOfferALinkForOnlinePayment=URL för %s betalning diff --git a/htdocs/langs/sv_SE/paypal.lang b/htdocs/langs/sv_SE/paypal.lang index 57dbae97957..b1b105c9010 100644 --- a/htdocs/langs/sv_SE/paypal.lang +++ b/htdocs/langs/sv_SE/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=Detta är id transaktion: %s PAYPAL_ADD_PAYMENT_URL=Lägg till URL Paypal betalning när du skickar ett dokument per post PredefinedMailContentLink=Du kan klicka på den säkra länken nedan för att göra din betalning (PayPal), om det inte redan är gjort.\n\n %s\n\n YouAreCurrentlyInSandboxMode=Du är för närvarande i "sandlåda"-läget -NewPaypalPaymentReceived=Nya Paypal mottagen betalning -NewPaypalPaymentFailed=Nya Paypal betalning försökt men misslyckats +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail att varna efter en betalning (framgång eller ej) ReturnURLAfterPayment=Återgå URL efter betalning -ValidationOfPaypalPaymentFailed=Validering av Paypal betalning misslyckades -PaypalConfirmPaymentPageWasCalledButFailed=Betalning bekräftelsesidan för Paypal kallades av Paypal utan bekräftelse misslyckades +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sv_SE/printing.lang b/htdocs/langs/sv_SE/printing.lang index bfbd9555751..7a1335160fb 100644 --- a/htdocs/langs/sv_SE/printing.lang +++ b/htdocs/langs/sv_SE/printing.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - printing -Module64000Name=Direct Printing -Module64000Desc=Enable Direct Printing System +Module64000Name=Direkt utskrift +Module64000Desc=Aktivera System för Direkt Utskrift PrintingSetup=Inställningar av System för Direkt Utskrift PrintingDesc=Denna modul lägger till en Utskrift-knapp i diverse moduler för att skicka dokument direkt till en skrivare (utan att öppna dokumentet i någon tillämpning). MenuDirectPrinting=Direct Printing jobs @@ -46,6 +46,6 @@ IPP_Media=Utskriftmedia IPP_Supported=Papperstyp DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=Konfigurationsvariabler för skrivardrivrutin Google Cloud Print. +PrintTestDescprintgcp=Lista över skrivare för Google Cloud Print. diff --git a/htdocs/langs/sv_SE/products.lang b/htdocs/langs/sv_SE/products.lang index c23860e5d65..e905dc8578a 100644 --- a/htdocs/langs/sv_SE/products.lang +++ b/htdocs/langs/sv_SE/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Produkt eller tjänst ProductsAndServices=Produkter och tjänster ProductsOrServices=Produkter eller tjänster -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Produkter till försäljning och inköp -ServicesOnSell=Tjänster till försäljning eller inköp -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Tjänster till försäljning och inköp LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Sekund +unitH=Timme +unitD=Dag +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Produktmall, ref. ServiceCodeModel=Tjänstmall, ref. CurrentProductPrice=Nuvarande pris @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Tillverka ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sv_SE/propal.lang b/htdocs/langs/sv_SE/propal.lang index 4175e240a18..c5079a8e914 100644 --- a/htdocs/langs/sv_SE/propal.lang +++ b/htdocs/langs/sv_SE/propal.lang @@ -3,7 +3,7 @@ Proposals=Kommersiella förslag Proposal=Kommersiella förslag ProposalShort=Förslag ProposalsDraft=Utkast till kommersiella förslag -ProposalsOpened=Öppnade kommersiella förslag +ProposalsOpened=Open commercial proposals Prop=Kommersiella förslag CommercialProposal=Kommersiella förslag ProposalCard=Förslaget kortet @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Belopp per månad (efter skatt) NbOfProposals=Antal kommersiella förslag ShowPropal=Visa förslag PropalsDraft=Utkast -PropalsOpened=Öppnad +PropalsOpened=Öppen PropalStatusDraft=Utkast (måste valideras) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Undertecknats (behov fakturering) diff --git a/htdocs/langs/sv_SE/resource.lang b/htdocs/langs/sv_SE/resource.lang index 96cc274c9ed..e12be95b42d 100644 --- a/htdocs/langs/sv_SE/resource.lang +++ b/htdocs/langs/sv_SE/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resurs tagits bort DictionaryResourceType=Typ av resurser SelectResource=Välj resurs + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resurser diff --git a/htdocs/langs/sv_SE/salaries.lang b/htdocs/langs/sv_SE/salaries.lang index 8e59e0b8e28..bac8110de86 100644 --- a/htdocs/langs/sv_SE/salaries.lang +++ b/htdocs/langs/sv_SE/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Bokförings kod för löne utbetalningar -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Bokförings kod för finansiell kostnad +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Lön Salaries=Löner NewSalaryPayment=Ny löneutbetalning diff --git a/htdocs/langs/sv_SE/sendings.lang b/htdocs/langs/sv_SE/sendings.lang index f3dc6c9d1da..9fa65f39ff1 100644 --- a/htdocs/langs/sv_SE/sendings.lang +++ b/htdocs/langs/sv_SE/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Packsedel ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Enkel förlagan DocumentModelMerou=Merou A5-modellen WarningNoQtyLeftToSend=Varning, att inga produkter väntar sändas. StatsOnShipmentsOnlyValidated=Statistik utförda på försändelser endast valideras. Datum som används är datum för godkännandet av leveransen (planerat leveransdatum är inte alltid känt). @@ -51,10 +50,10 @@ ActionsOnShipping=Evenemang på leverans LinkToTrackYourPackage=Länk till spåra ditt paket ShipmentCreationIsDoneFromOrder=För närvarande är skapandet av en ny leverans sker från ordern kortet. ShipmentLine=Transport linje -ProductQtyInCustomersOrdersRunning=Produktkvantitet till öppnade kundorder -ProductQtyInSuppliersOrdersRunning=Produktkvantitet till öppnade leverantörsorder -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Produktkvantitet från öppnade leverantörsorder är redan skickade +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/sv_SE/stocks.lang b/htdocs/langs/sv_SE/stocks.lang index 8704d1ce7a5..f92714d3b05 100644 --- a/htdocs/langs/sv_SE/stocks.lang +++ b/htdocs/langs/sv_SE/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Etikett för förändring NumberOfUnit=Antal enheter UnitPurchaseValue=Inköpspris per enhet StockTooLow=Lager för lågt -StockLowerThanLimit=Lager under larmgräns +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Värde PMPValue=Vägda genomsnittliga priset PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Sänd kvantitet QtyDispatchedShort=Antal skickade QtyToDispatchShort=Antal att skicka -OrderDispatch=Stock avsändning +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Minska befintligt lager vid validering av kundfakturor / kreditnotor @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Öka befintligt lager vid validering av leverantörsfakturor / kreditnotor ReStockOnValidateOrder=Öka befintligt lager vid godkänd leverantörsorder -ReStockOnDispatchOrder=Öka befintligt lager vid manuell sändning till lager, efter mottagande av leverantörsorder +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Beställningen har ännu inte / inte längre status som tillåter sändning av produkter till lager. -StockDiffPhysicTeoric=Förklaring för skillnad mellan verkligt och beräknat lagersaldo +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Inga fördefinierade produkter för det här objektet. Så ingen sändning till lager krävs. DispatchVerb=Sändning StockLimitShort=Gräns ​​för varning StockLimit=Stock gräns för larm PhysicalStock=Fysisk lager RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtuellt lager +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id lager DescWareHouse=Beskrivning lager LieuWareHouse=Lokalisering lager @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Antal av produkt %s i lager före vald period (< %s) NbOfProductAfterPeriod=Antal av produkt %s i lager efter vald period (> %s) MassMovement=Massrörelse SelectProductInAndOutWareHouse=Välj produkt, antal, ursprungslager och mållager och klicka "%s". När det är gjort för alla lageröverföringar klicka på "%s". -RecordMovement=Spela in överföring +RecordMovement=Record transfer ReceivingForSameOrder=Kvitton för denna beställning StockMovementRecorded=Sparade lageröverföringar RuleForStockAvailability=Regler om krav på lagerhållning @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Redigera +inventoryValidate=Validerade +inventoryDraft=Löpande +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Skapa +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategori filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Lägg till +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Radera rad +RegulateStock=Regulate Stock +ListInventory=Lista diff --git a/htdocs/langs/sv_SE/stripe.lang b/htdocs/langs/sv_SE/stripe.lang new file mode 100644 index 00000000000..348241cdeeb --- /dev/null +++ b/htdocs/langs/sv_SE/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Följande webbadresser finns att erbjuda en sida till en kund att göra en förskottsbetalning Dolibarr objekt +PaymentForm=Inbetalningskort +WelcomeOnPaymentPage=Välkommen till vår online betalningssystem +ThisScreenAllowsYouToPay=Denna skärm tillåter dig att göra en online-betalning till %s. +ThisIsInformationOnPayment=Detta är information om betalning för att göra +ToComplete=För att komplettera +YourEMail=E-post för betalning bekräftelse +STRIPE_PAYONLINE_SENDEMAIL=EMail att varna efter en betalning (framgång eller ej) +Creditor=Borgenär +PaymentCode=Betalning kod +StripeDoPayment=Gå mot betalning +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Nästa +ToOfferALinkForOnlinePayment=URL för %s betalning +ToOfferALinkForOnlinePaymentOnOrder=URL för att erbjuda en %s online gränssnitt betalning användare för en ordning +ToOfferALinkForOnlinePaymentOnInvoice=URL för att erbjuda en %s online gränssnitt betalning användare för en faktura +ToOfferALinkForOnlinePaymentOnContractLine=URL för att erbjuda en %s online gränssnitt betalning användare för ett kontrakt linje +ToOfferALinkForOnlinePaymentOnFreeAmount=URL för att erbjuda en %s online gränssnitt betalning användare för en fri belopp +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL för att erbjuda en %s online gränssnitt betalning användare för en medlem prenumeration +YouCanAddTagOnUrl=Du kan också lägga till url parameter &tag = värde för någon av dessa URL (krävs endast för gratis betalning) för att lägga till din egen kommentar tagg betalning. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Den här sidan bekräftar att din betalning har registrerats. Tack. +YourPaymentHasNotBeenRecorded=Din betalning inte har registrerats och transaktionen har avbrutits. Tack. +AccountParameter=Tagen parametrar +UsageParameter=Användning parametrar +InformationToFindParameters=Hjälp att hitta din %s kontoinformation +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Namn på leverantör +CSSUrlForPaymentForm=CSS-formatmall URL för inbetalningskort +MessageOK=Meddelande på validerade betalning återvänder sida +MessageKO=Meddelande om avbokning betalning återvänder sida +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sv_SE/supplier_proposal.lang b/htdocs/langs/sv_SE/supplier_proposal.lang index 07dcf45c675..9f25a8e1530 100644 --- a/htdocs/langs/sv_SE/supplier_proposal.lang +++ b/htdocs/langs/sv_SE/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Utkast (måste valideras) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Stängt SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Skapa standardmodell DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/sv_SE/suppliers.lang b/htdocs/langs/sv_SE/suppliers.lang index 7e1bdba4bd4..5893cd7ed9e 100644 --- a/htdocs/langs/sv_SE/suppliers.lang +++ b/htdocs/langs/sv_SE/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Vissa under produkter har inget pris definierat AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=Denna hänvisning leverantör är redan kopplad till en referens: %s NoRecordedSuppliers=Inga leverantörer registreras SupplierPayment=Leverantör betalning @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/sv_SE/trips.lang b/htdocs/langs/sv_SE/trips.lang index 42ac872759e..0b7a4a0963f 100644 --- a/htdocs/langs/sv_SE/trips.lang +++ b/htdocs/langs/sv_SE/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Prislista för TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Företag / stiftelse besökt +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Belopp eller kilometer DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Klassificerad 'Återbetalas' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Attestdatum DATE_CANCEL=Cancelation date DATE_PAIEMENT=Betalningsdag - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sv_SE/users.lang b/htdocs/langs/sv_SE/users.lang index 214d29a79f6..8727af74039 100644 --- a/htdocs/langs/sv_SE/users.lang +++ b/htdocs/langs/sv_SE/users.lang @@ -66,8 +66,8 @@ InternalUser=Intern användare ExportDataset_user_1=Dolibarr-användarnas behov och egenskaper DomainUser=Domän användare %s Reactivate=Återaktivera -CreateInternalUserDesc=Detta formulär tillåter dig att skapa en användare internt på ditt företag / stiftelse. För att skapa en extern användare (kund, leverantör, ...) använder du knappen "Skapa Dolibarr användare" från tredje parts kontaktkort. -InternalExternalDesc=En intern användare är en användare som är en del av ert företag / stiftelse.
En extern användare är en kund, leverantör eller annan.

I båda fallen definierar behörigheter rättigheter Dolibarr, även externa användare kan ha en annan meny manager än interna användare (Se startsida - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Tillstånd beviljas, eftersom ärvt från en av en användares grupp. Inherited=Ärvda UserWillBeInternalUser=Skapad användare kommer att vara en intern användare (eftersom inte kopplade till en viss tredje part) diff --git a/htdocs/langs/sv_SE/website.lang b/htdocs/langs/sv_SE/website.lang index 6197580711f..c438cb78f6f 100644 --- a/htdocs/langs/sv_SE/website.lang +++ b/htdocs/langs/sv_SE/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Kod WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/sv_SE/withdrawals.lang b/htdocs/langs/sv_SE/withdrawals.lang index 750f3120cc2..53c3b6fe386 100644 --- a/htdocs/langs/sv_SE/withdrawals.lang +++ b/htdocs/langs/sv_SE/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Belopp att dra tillbaka WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Ingen kund faktura betalning läge "tillbaka" väntar. Gå på "Uttag"-fliken på faktura kort att göra en förfrågan. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Ansvarig användare WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Orsak till avslag RefusedInvoicing=Fakturering avslaget NoInvoiceRefused=Ladda inte avslaget InvoiceRefused=Faktura vägrade (Ladda avslag till kunden) +StatusDebitCredit=Status debit/credit StatusWaiting=Väntar StatusTrans=Överförs StatusCredited=Krediteras diff --git a/htdocs/langs/sw_SW/accountancy.lang b/htdocs/langs/sw_SW/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/sw_SW/accountancy.lang +++ b/htdocs/langs/sw_SW/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/sw_SW/admin.lang b/htdocs/langs/sw_SW/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/sw_SW/admin.lang +++ b/htdocs/langs/sw_SW/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/sw_SW/agenda.lang b/htdocs/langs/sw_SW/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/sw_SW/agenda.lang +++ b/htdocs/langs/sw_SW/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/sw_SW/banks.lang b/htdocs/langs/sw_SW/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/sw_SW/banks.lang +++ b/htdocs/langs/sw_SW/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/sw_SW/bills.lang b/htdocs/langs/sw_SW/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/sw_SW/bills.lang +++ b/htdocs/langs/sw_SW/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/sw_SW/bookmarks.lang b/htdocs/langs/sw_SW/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/sw_SW/bookmarks.lang +++ b/htdocs/langs/sw_SW/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/sw_SW/boxes.lang b/htdocs/langs/sw_SW/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/sw_SW/boxes.lang +++ b/htdocs/langs/sw_SW/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/sw_SW/cashdesk.lang b/htdocs/langs/sw_SW/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/sw_SW/cashdesk.lang +++ b/htdocs/langs/sw_SW/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/sw_SW/categories.lang b/htdocs/langs/sw_SW/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/sw_SW/categories.lang +++ b/htdocs/langs/sw_SW/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/sw_SW/commercial.lang b/htdocs/langs/sw_SW/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/sw_SW/commercial.lang +++ b/htdocs/langs/sw_SW/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/sw_SW/companies.lang b/htdocs/langs/sw_SW/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/sw_SW/companies.lang +++ b/htdocs/langs/sw_SW/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/sw_SW/contracts.lang b/htdocs/langs/sw_SW/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/sw_SW/contracts.lang +++ b/htdocs/langs/sw_SW/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/sw_SW/exports.lang b/htdocs/langs/sw_SW/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/sw_SW/exports.lang +++ b/htdocs/langs/sw_SW/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/sw_SW/holiday.lang b/htdocs/langs/sw_SW/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/sw_SW/holiday.lang +++ b/htdocs/langs/sw_SW/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/sw_SW/install.lang b/htdocs/langs/sw_SW/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/sw_SW/install.lang +++ b/htdocs/langs/sw_SW/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/sw_SW/interventions.lang b/htdocs/langs/sw_SW/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/sw_SW/interventions.lang +++ b/htdocs/langs/sw_SW/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/sw_SW/languages.lang b/htdocs/langs/sw_SW/languages.lang index 3a1a6a6c5dc..5468905bff6 100644 --- a/htdocs/langs/sw_SW/languages.lang +++ b/htdocs/langs/sw_SW/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Ujerumani Language_de_AT=Ujerumani (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Kigiriki +Language_el_CY=Greek (Cyprus) Language_en_AU=Kiingereza (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Kihispania (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Kihispania (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Kihispania (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Kiaislandi Language_it_IT=Italia Language_ja_JP=Japan Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korea Language_lo_LA=Lao Language_lt_LT=Kilithuania Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norway (Bokmål) Language_nl_BE=Uholanzi (Ubelgiji) Language_nl_NL=Kiholanzi (Uholanzi) diff --git a/htdocs/langs/sw_SW/link.lang b/htdocs/langs/sw_SW/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/sw_SW/link.lang +++ b/htdocs/langs/sw_SW/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/sw_SW/loan.lang b/htdocs/langs/sw_SW/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/sw_SW/loan.lang +++ b/htdocs/langs/sw_SW/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/sw_SW/mails.lang b/htdocs/langs/sw_SW/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/sw_SW/mails.lang +++ b/htdocs/langs/sw_SW/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/sw_SW/main.lang b/htdocs/langs/sw_SW/main.lang index d7dde34acbb..3401829afa2 100644 --- a/htdocs/langs/sw_SW/main.lang +++ b/htdocs/langs/sw_SW/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/sw_SW/margins.lang b/htdocs/langs/sw_SW/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/sw_SW/margins.lang +++ b/htdocs/langs/sw_SW/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/sw_SW/members.lang b/htdocs/langs/sw_SW/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/sw_SW/members.lang +++ b/htdocs/langs/sw_SW/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/sw_SW/other.lang b/htdocs/langs/sw_SW/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/sw_SW/other.lang +++ b/htdocs/langs/sw_SW/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/sw_SW/paybox.lang b/htdocs/langs/sw_SW/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/sw_SW/paybox.lang +++ b/htdocs/langs/sw_SW/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/sw_SW/paypal.lang b/htdocs/langs/sw_SW/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/sw_SW/paypal.lang +++ b/htdocs/langs/sw_SW/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/sw_SW/printing.lang b/htdocs/langs/sw_SW/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/sw_SW/printing.lang +++ b/htdocs/langs/sw_SW/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/sw_SW/products.lang b/htdocs/langs/sw_SW/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/sw_SW/products.lang +++ b/htdocs/langs/sw_SW/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/sw_SW/propal.lang b/htdocs/langs/sw_SW/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/sw_SW/propal.lang +++ b/htdocs/langs/sw_SW/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/sw_SW/resource.lang b/htdocs/langs/sw_SW/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/sw_SW/resource.lang +++ b/htdocs/langs/sw_SW/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/sw_SW/salaries.lang b/htdocs/langs/sw_SW/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/sw_SW/salaries.lang +++ b/htdocs/langs/sw_SW/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/sw_SW/sendings.lang b/htdocs/langs/sw_SW/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/sw_SW/sendings.lang +++ b/htdocs/langs/sw_SW/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/sw_SW/stocks.lang b/htdocs/langs/sw_SW/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/sw_SW/stocks.lang +++ b/htdocs/langs/sw_SW/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/sw_SW/suppliers.lang b/htdocs/langs/sw_SW/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/sw_SW/suppliers.lang +++ b/htdocs/langs/sw_SW/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/sw_SW/trips.lang b/htdocs/langs/sw_SW/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/sw_SW/trips.lang +++ b/htdocs/langs/sw_SW/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/sw_SW/users.lang b/htdocs/langs/sw_SW/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/sw_SW/users.lang +++ b/htdocs/langs/sw_SW/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/sw_SW/withdrawals.lang b/htdocs/langs/sw_SW/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/sw_SW/withdrawals.lang +++ b/htdocs/langs/sw_SW/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/th_TH/accountancy.lang b/htdocs/langs/th_TH/accountancy.lang index 8b2bbbbe6f0..873a6ed9982 100644 --- a/htdocs/langs/th_TH/accountancy.lang +++ b/htdocs/langs/th_TH/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=เพิ่มบัญชีบัญชี AccountAccounting=บัญชีการบัญชี AccountAccountingShort=บัญชี SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=ขาย AccountingJournalType3=การสั่งซื้อสินค้า AccountingJournalType4=ธนาคาร +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=การส่งออก Export=ส่งออก +ExportDraftJournal=Export draft journal Modelcsv=รูปแบบของการส่งออก OptionsDeactivatedForThisExportModel=สำหรับรูปแบบการส่งออกนี้ตัวเลือกที่จะปิดการใช้งาน Selectmodelcsv=เลือกรูปแบบของการส่งออก diff --git a/htdocs/langs/th_TH/admin.lang b/htdocs/langs/th_TH/admin.lang index 476a622c632..4b9dac420bb 100644 --- a/htdocs/langs/th_TH/admin.lang +++ b/htdocs/langs/th_TH/admin.lang @@ -448,7 +448,7 @@ WatermarkOnDraftExpenseReports=Watermark on draft expense reports Module0Name=และกลุ่มผู้ใช้ Module0Desc=Users / Employees and Groups management Module1Name=บุคคลที่สาม -Module1Desc=บริษัท และการจัดการรายชื่อผู้ติดต่อ (ลูกค้ากลุ่มเป้าหมาย ... ) +Module1Desc=บริษัท และการจัดการรายชื่อผู้ติดต่อ (ลูกค้ากลุ่มเป้าหมาย ... )\n Module2Name=เชิงพาณิชย์ Module2Desc=การจัดการเชิงพาณิชย์ Module10Name=การบัญชี @@ -536,7 +536,7 @@ Module1120Desc=ขอข้อเสนอในเชิงพาณิชย Module1200Name=ตั๊กแตนตำข้าว Module1200Desc=บูรณาการตั๊กแตนตำข้าว Module1400Name=การบัญชี -Module1400Desc=การจัดการการบัญชี (ฝ่ายคู่) +Module1400Desc=Accounting management (double entries) Module1520Name=การสร้างเอกสาร Module1520Desc=สร้างเอกสารอีเมล์จำนวนมาก Module1780Name=แท็ก / หมวดหมู่ @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=โมดูลที่จะนำเสนอหน้าการชำระเงินออนไลน์ผ่านบัตรเครดิตกับ Paypal Module50400Name=บัญชี (ขั้นสูง) -Module50400Desc=การจัดการการบัญชี (ฝ่ายคู่) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=พิมพ์โดยตรง (โดยไม่ต้องเปิดเอกสาร) โดยใช้อินเตอร์เฟซถ้วยไอพีพี (เครื่องพิมพ์จะต้องมองเห็นจากเซิร์ฟเวอร์และ CUPS จะต้อง installe บนเซิร์ฟเวอร์) Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/th_TH/agenda.lang b/htdocs/langs/th_TH/agenda.lang index 7d37f736406..2048e2d65ab 100644 --- a/htdocs/langs/th_TH/agenda.lang +++ b/htdocs/langs/th_TH/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=รหัสเหตุการณ์ Actions=เหตุการณ์ที่เกิดขึ้น Agenda=ระเบียบวาระการประชุม +TMenuAgenda=ระเบียบวาระการประชุม Agendas=วาระ LocalAgenda=ปฏิทินภายใน ActionsOwnedBy=เหตุการณ์ที่เป็นเจ้าของโดย @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=ใบแจ้งหนี้% s ลบ InvoicePaidInDolibarr=ใบแจ้งหนี้% s เปลี่ยนไปจ่าย InvoiceCanceledInDolibarr=ใบแจ้งหนี้% s ยกเลิก MemberValidatedInDolibarr=สมาชิก s% ผ่านการตรวจสอบ +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=สมาชิก s% ลบ MemberSubscriptionAddedInDolibarr=สมัครสมาชิกสำหรับสมาชิก% s เพิ่ม ShipmentValidatedInDolibarr=% s การตรวจสอบการจัดส่ง -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=% s การจัดส่งที่ถูกลบ OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=สั่งซื้อ% s ตรวจสอบ @@ -73,13 +75,17 @@ InterventionSentByEMail=การแทรกแซง% s ส่งทางอ ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=วันที่เริ่มต้น DateActionEnd=วันที่สิ้นสุด AgendaUrlOptions1=นอกจากนี้คุณยังสามารถเพิ่มพารามิเตอร์ต่อไปนี้เพื่อกรองเอาท์พุท: -AgendaUrlOptions2=เข้าสู่ระบบ =% s ​​ที่จะ จำกัด การส่งออกไปยังที่สร้างขึ้นโดยการกระทำหรือได้รับมอบหมายให้ผู้ใช้% s AgendaUrlOptions3=Logina =% s ​​ที่จะ จำกัด การส่งออกไปยังการดำเนินการที่เป็นเจ้าของโดยผู้ใช้% s -AgendaUrlOptions4=logint =% s ​​ที่จะ จำกัด การส่งออกไปยังการดำเนินการกำหนดให้ผู้ใช้% s +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=โครงการ = PROJECT_ID ที่จะ จำกัด การส่งออกไปยังการดำเนินการที่เกี่ยวข้องกับโครงการ PROJECT_ID AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/th_TH/banks.lang b/htdocs/langs/th_TH/banks.lang index 3828dc011a5..a9cac62a41a 100644 --- a/htdocs/langs/th_TH/banks.lang +++ b/htdocs/langs/th_TH/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=รหัสธุรกรรม BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=คืนดี Conciliation=การประนีประนอม ReconciliationLate=Reconciliation late IncludeClosedAccount=รวมบัญชีปิด -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=เปิดเฉพาะบัญชี AccountToCredit=บัญชีเครดิต AccountToDebit=บัญชีเดบิต DisableConciliation=ปิดใช้งานคุณลักษณะการปรองดองสำหรับบัญชีนี้ ConciliationDisabled=คุณลักษณะสมานฉันท์ปิดการใช้งาน LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=เปิด StatusAccountClosed=ปิด AccountIdShort=จำนวน LineRecord=การซื้อขาย @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/th_TH/bills.lang b/htdocs/langs/th_TH/bills.lang index d9596808d70..2fbf362d83f 100644 --- a/htdocs/langs/th_TH/bills.lang +++ b/htdocs/langs/th_TH/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=ใบแจ้งหนี้มาตรฐาน InvoiceStandardAsk=ใบแจ้งหนี้มาตรฐาน InvoiceStandardDesc=ชนิดของใบแจ้งหนี้นี้เป็นใบแจ้งหนี้ที่พบบ่อย -InvoiceDeposit=ใบแจ้งหนี้เงินฝาก -InvoiceDepositAsk=ใบแจ้งหนี้เงินฝาก -InvoiceDepositDesc=ชนิดของใบแจ้งหนี้นี้จะกระทำเมื่อเงินฝากที่ได้รับ +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=ใบแจ้งหนี้ Proforma InvoiceProFormaAsk=ใบแจ้งหนี้ Proforma InvoiceProFormaDesc=ใบแจ้งหนี้ Proforma คือภาพของใบแจ้งหนี้ที่แท้จริง แต่มีค่าไม่มีบัญชี @@ -62,7 +62,7 @@ PaymentsBack=การชำระเงินกลับ paymentInInvoiceCurrency=in invoices currency PaidBack=จ่ายคืน DeletePayment=ลบการชำระเงิน -ConfirmDeletePayment=คุณแน่ใจหรือว่าต้องการลบการชำระเงินนี้? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=การชำระเงินที่ผู้ซื้อผู้ขาย ReceivedPayments=การชำระเงินที่ได้รับ @@ -115,7 +115,7 @@ BillStatus=สถานะใบแจ้งหนี้ StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=ร่าง (จะต้องมีการตรวจสอบ) BillStatusPaid=ต้องจ่าย -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=การชำระเงิน (พร้อมสำหรับใบแจ้งหนี้สุดท้าย) BillStatusCanceled=ถูกปล่อยปละละเลย BillStatusValidated=การตรวจสอบ (จะต้องมีการจ่าย) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=การชำระเงิน (บางส่ BillShortStatusDraft=ร่าง BillShortStatusPaid=ต้องจ่าย BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=การประมวลผล +BillShortStatusConverted=ต้องจ่าย BillShortStatusCanceled=ถูกปล่อยปละละเลย BillShortStatusValidated=ผ่านการตรวจสอบ BillShortStatusStarted=เริ่มต้น @@ -198,12 +198,12 @@ ShowBill=แสดงใบแจ้งหนี้ ShowInvoice=แสดงใบแจ้งหนี้ ShowInvoiceReplace=แสดงการเปลี่ยนใบแจ้งหนี้ ShowInvoiceAvoir=แสดงใบลดหนี้ -ShowInvoiceDeposit=แสดงใบแจ้งหนี้การฝากเงิน +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=แสดงการชำระเงิน AlreadyPaid=จ่ายเงินไปแล้ว AlreadyPaidBack=จ่ายเงินไปแล้วกลับมา -AlreadyPaidNoCreditNotesNoDeposits=จ่ายเงินไปแล้ว (โดยไม่ต้องบันทึกสินเชื่อและเงินฝาก) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=ถูกปล่อยปละละเลย RemainderToPay=ที่เหลือยังไม่ได้ชำระ RemainderToTake=เงินส่วนที่เหลือจะใช้ @@ -270,10 +270,10 @@ RelativeDiscount=ส่วนลดญาติ GlobalDiscount=ลดราคาทั่วโลก CreditNote=ใบลดหนี้ CreditNotes=บันทึกเครดิต -Deposit=เงินฝาก -Deposits=เงินฝาก +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=ส่วนลดจากใบลดหนี้% s -DiscountFromDeposit=การชำระเงินจากใบแจ้งหนี้เงินฝาก% s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=ชนิดของเครดิตนี้สามารถใช้ในใบแจ้งหนี้ก่อนการตรวจสอบของ CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=ไม่สามารถลบการ ExpectedToPay=การชำระเงินที่คาดว่าจะ CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=การชำระเงินโดยการชำระเงินนี้ -ClosePaidInvoicesAutomatically=จำแนก "ชำระเงิน" ทุกมาตรฐานสถานการณ์หรือการเปลี่ยนใบแจ้งหนี้การชำระเงินทั้งหมด +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=จำแนก "ชำระเงิน" ทั้งหมดบันทึกเครดิตการชำระเงินทั้งหมดกลับ ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=ใบแจ้งหนี้ทั้งหมดที่มียังคงไม่มีที่จะจ่ายจะปิดโดยอัตโนมัติเพื่อให้สถานะ "ชำระเงิน" @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=ใบแจ้งหนี้แม่แบบ PDF Crabe แม่แบบใบแจ้งหนี้ฉบับสมบูรณ์ (แนะนำ Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=จำนวนกลับมาพร้อมกับรูปแบบ% syymm-nnnn สำหรับใบแจ้งหนี้และมาตรฐาน% syymm-nnnn สำหรับการบันทึกเครดิตที่ yy เป็นปีเป็นเดือนมิลลิเมตรและ nnnn เป็นลำดับที่มีการหยุดพักและกลับไปที่ 0 ไม่มี -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=เริ่มต้นด้วยการเรียกเก็บเงิน $ syymm มีอยู่แล้วและไม่ได้เข้ากันได้กับรูปแบบของลำดับนี้ ลบหรือเปลี่ยนชื่อเพื่อเปิดใช้งานโมดูลนี้ -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=แทนใบแจ้งหนี้ของลูกค้าต่อไปนี้ขึ้น TypeContact_facture_external_BILLING=ติดต่อใบแจ้งหนี้ของลูกค้า diff --git a/htdocs/langs/th_TH/bookmarks.lang b/htdocs/langs/th_TH/bookmarks.lang index 32a477f5bda..3653a1ec346 100644 --- a/htdocs/langs/th_TH/bookmarks.lang +++ b/htdocs/langs/th_TH/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=เพิ่มหน้านี้ในที่คั่นหน้า +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=ที่คั่นหนังสือ Bookmarks=ที่คั่นหน้า +ListOfBookmarks=รายการบุ๊คมาร์ค +EditBookmarks=List/edit bookmarks NewBookmark=ที่คั่นหน้าใหม่ ShowBookmark=แสดงที่คั่นหน้า OpenANewWindow=เปิดหน้าต่างใหม่ @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=หน้าต่างใหม่ BookmarkTargetReplaceWindowShort=หน้าต่างปัจจุบัน BookmarkTitle=ชื่อ Bookmark UrlOrLink=URL -BehaviourOnClick=พฤติกรรมเมื่อมีการคลิก URL +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=สร้างที่คั่นหน้า SetHereATitleForLink=ตั้งชื่อสำหรับบุ๊คมาร์ค UseAnExternalHttpLinkOrRelativeDolibarrLink=ใช้ URL ที่ http ภายนอกหรือ URL Dolibarr ญาติ diff --git a/htdocs/langs/th_TH/boxes.lang b/htdocs/langs/th_TH/boxes.lang index a69f2a13819..2acdb96c25d 100644 --- a/htdocs/langs/th_TH/boxes.lang +++ b/htdocs/langs/th_TH/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=ข้อมูล Rss BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -58,7 +59,7 @@ NoUnpaidCustomerBills=No unpaid customer invoices NoUnpaidSupplierBills=No unpaid supplier invoices NoModifiedSupplierBills=No recorded supplier invoices NoRecordedProducts=ไม่มีสินค้าบันทึก / บริการ -NoRecordedProspects=ไม่มีโอกาสที่บันทึกไว้ +NoRecordedProspects=ไม่มีลูกค้าเป้าหมายที่บันทึกไว้ NoContractedProducts=ผลิตภัณฑ์ / บริการไม่มีการทำสัญญา NoRecordedContracts=ไม่มีสัญญาบันทึก NoRecordedInterventions=ไม่มีการแทรกแซงที่บันทึกไว้ @@ -82,3 +83,4 @@ ForCustomersOrders=คำสั่งซื้อของลูกค้า ForProposals=ข้อเสนอ LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/th_TH/cashdesk.lang b/htdocs/langs/th_TH/cashdesk.lang index 8a8f1e2295a..589abbb8085 100644 --- a/htdocs/langs/th_TH/cashdesk.lang +++ b/htdocs/langs/th_TH/cashdesk.lang @@ -25,7 +25,7 @@ Difference=ข้อแตกต่าง TotalTicket=ตั๋วทั้งหมด NoVAT=ภาษีมูลค่าเพิ่มสำหรับการขายนี้ไม่มี Change=ส่วนเกินที่ได้รับ -BankToPay=บัญชีค่าใช้จ่าย +BankToPay=Account for payment ShowCompany=แสดง บริษัท ShowStock=แสดงคลังสินค้า DeleteArticle=คลิกเพื่อลบบทความนี้ diff --git a/htdocs/langs/th_TH/categories.lang b/htdocs/langs/th_TH/categories.lang index 8368a40da79..d14468635c5 100644 --- a/htdocs/langs/th_TH/categories.lang +++ b/htdocs/langs/th_TH/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag / หมวดหมู่ Rubriques=แท็ก / หมวดหมู่ +RubriquesTransactions=Tags/Categories of transactions categories=แท็ก / ประเภท NoCategoryYet=ไม่มีแท็ก / หมวดหมู่ของประเภทนี้สร้างขึ้น In=ใน @@ -29,7 +30,7 @@ ImpossibleAddCat=Impossible to add the tag/category %s WasAddedSuccessfully=% s ถูกเพิ่มเรียบร้อยแล้ว ObjectAlreadyLinkedToCategory=องค์ประกอบที่มีการเชื่อมโยงกับแท็กนี้ / หมวดหมู่ ProductIsInCategories=สินค้า / บริการที่มีการเชื่อมโยงต่อไปนี้แท็ก / ประเภท -CompanyIsInCustomersCategories=นี้บุคคลที่สามมีการเชื่อมโยงต่อไปนี้ลูกค้าเป้าหมาย / แท็ก / ประเภท +CompanyIsInCustomersCategories=บุคคลที่สามนี้มีการเชื่อมโยงต่อกับ ลูกค้า / ลูกค้าเป้าหมาย แท็ก / ประเภท นี้ CompanyIsInSuppliersCategories=นี้บุคคลที่สามมีการเชื่อมโยงต่อไปนี้ซัพพลายเออร์แท็ก / ประเภท MemberIsInCategories=สมาชิกนี้จะถูกเชื่อมโยงกับสมาชิกต่อไปนี้แท็ก / ประเภท ContactIsInCategories=ติดต่อนี้มีการเชื่อมโยงต่อไปนี้แท็กรายชื่อ / ประเภท @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=ประเภทนี้มีอยู่แล้ ContentsVisibleByAllShort=เนื้อหาที่มองเห็นได้โดยทั้งหมด ContentsNotVisibleByAllShort=ไม่สามารถมองเห็นเนื้อหาโดยทั้งหมด DeleteCategory=ลบแท็ก / หมวดหมู่ -ConfirmDeleteCategory=คุณแน่ใจหรือว่าต้องการลบแท็กนี้ / หมวดหมู่ +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=ไม่มีแท็ก / หมวดหมู่ที่กำหนดไว้ SuppliersCategoryShort=แท็กผู้จัดจำหน่าย / หมวดหมู่ CustomersCategoryShort=ลูกค้าแท็ก / หมวดหมู่ @@ -73,7 +74,7 @@ CatProdList=รายการของแท็ก / ผลิตภัณฑ CatMemberList=รายชื่อสมาชิกแท็ก / ประเภท CatContactList=รายการของแท็กติดต่อ / ประเภท CatSupLinks=การเชื่อมโยงระหว่างซัพพลายเออร์และแท็ก / ประเภท -CatCusLinks=การเชื่อมโยงระหว่างลูกค้า / ลูกค้าและแท็ก / ประเภท +CatCusLinks=การเชื่อมโยงระหว่างลูกค้า / ลูกค้าเป้าหมาย และ แท็ก / ประเภท CatProdLinks=การเชื่อมโยงระหว่างผลิตภัณฑ์ / บริการและแท็ก / ประเภท CatProJectLinks=Links between projects and tags/categories DeleteFromCat=ลบออกจากแท็ก / หมวดหมู่ diff --git a/htdocs/langs/th_TH/commercial.lang b/htdocs/langs/th_TH/commercial.lang index 64d0118d37f..35a09019ef7 100644 --- a/htdocs/langs/th_TH/commercial.lang +++ b/htdocs/langs/th_TH/commercial.lang @@ -4,7 +4,7 @@ CommercialArea=พื้นที่เชิงพาณิชย์ Customer=ลูกค้า Customers=ลูกค้า Prospect=โอกาส -Prospects=อนาคต +Prospects=ลูกค้าเป้าหมาย DeleteAction=Delete an event NewAction=New event AddAction=สร้างกิจกรรม @@ -18,7 +18,8 @@ TaskRDVWith=การประชุมกับ% s ShowTask=แสดงงาน ShowAction=เหตุการณ์ที่แสดง ActionsReport=รายงานเหตุการณ์ -ThirdPartiesOfSaleRepresentative=Thirdparties ตัวแทนจำหน่าย +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=ตัวแทนขาย SalesRepresentatives=พนักงานขาย SalesRepresentativeFollowUp=ตัวแทนขาย (ติดตาม) @@ -26,7 +27,7 @@ SalesRepresentativeSignature=ตัวแทนขาย (ลายเซ็น) NoSalesRepresentativeAffected=ไม่มีตัวแทนขายโดยเฉพาะอย่างยิ่งที่ได้รับมอบหมาย ShowCustomer=แสดงลูกค้า ShowProspect=แสดงความคาดหวัง -ListOfProspects=รายชื่อของลูกค้า +ListOfProspects=รายชื่อลูกค้าเป้าหมาย ListOfCustomers=รายชื่อของลูกค้า LastDoneTasks=Latest %s completed actions LastActionsToDo=Oldest %s not completed actions diff --git a/htdocs/langs/th_TH/companies.lang b/htdocs/langs/th_TH/companies.lang index 84838772af3..a84dd5deaed 100644 --- a/htdocs/langs/th_TH/companies.lang +++ b/htdocs/langs/th_TH/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=ใหม่เอกชน NewCompany=บริษัท ใหม่ (โอกาสลูกค้าซัพพลายเออร์) NewThirdParty=บุคคลที่สามใหม่ (โอกาสลูกค้าซัพพลายเออร์) CreateDolibarrThirdPartySupplier=สร้างบุคคลที่สาม (ซัพพลายเออร์) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=สร้างของบุคคลที่สาม CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=พื้นที่ prospection IdThirdParty=Id ของบุคคลที่สาม @@ -31,14 +31,13 @@ CountryIsInEEC=ประเทศที่อยู่ภายในประ ThirdPartyName=ชื่อของบุคคลที่สาม ThirdParty=บุคคลที่สาม ThirdParties=บุคคลที่สาม -ThirdPartyProspects=อนาคต -ThirdPartyProspectsStats=อนาคต +ThirdPartyProspects=ลูกค้าเป้าหมาย +ThirdPartyProspectsStats=ลูกค้าเป้าหมาย ThirdPartyCustomers=ลูกค้า ThirdPartyCustomersStats=ลูกค้า ThirdPartyCustomersWithIdProf12=ลูกค้าที่มี% s% s หรือ ThirdPartySuppliers=ซัพพลายเออร์ ThirdPartyType=ประเภทของบุคคลที่สาม -Company/Fundation=บริษัท / มูลนิธิ Individual=เอกชน ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=บริษัท แม่ @@ -78,10 +77,10 @@ VATIsNotUsed=ภาษีมูลค่าเพิ่มที่ไม่ไ CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=ข้อเสนอ +OverAllOrders=คำสั่งซื้อ +OverAllInvoices=ใบแจ้งหนี้ +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=ใช้ภาษีที่สอง LocalTax1IsUsedES= RE ถูกนำมาใช้ @@ -237,6 +236,12 @@ ProfId3TN=ศหมายเลข 3 (รหัส Douane) ProfId4TN=ศหมายเลข 4 (บ้าน) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=ศหมายเลข 1 (OGRN) ProfId2RU=ศหมายเลข 2 (INN) ProfId3RU=ศหมายเลข 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=ส่วนลดญาติ CustomerAbsoluteDiscountShort=ส่วนลดแอบโซลูท CompanyHasRelativeDiscount=ลูกค้ารายนี้มีส่วนลดเริ่มต้นของ% s %% CompanyHasNoRelativeDiscount=ลูกค้ารายนี้ไม่เคยมีใครส่วนลดญาติโดยค่าเริ่มต้น -CompanyHasAbsoluteDiscount=ลูกค้ารายนี้ยังคงมีเครดิตส่วนลดหรือเงินฝากสำหรับ% s% s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=ลูกค้ารายนี้ยังคงมีการบันทึกเครดิตสำหรับ% s% s CompanyHasNoAbsoluteDiscount=ลูกค้ารายนี้มีเครดิตส่วนลดไม่มี CustomerAbsoluteDiscountAllUsers=ส่วนลดแอบโซลูท (ที่ได้รับจากผู้ใช้ทั้งหมด) @@ -359,7 +364,7 @@ ChangeNeverContacted=สถานะเปลี่ยนไปไม่เค ChangeToContact=Change status to 'To be contacted' ChangeContactInProcess=เปลี่ยนสถานะเป็น 'ติดต่อในกระบวนการ' ChangeContactDone=สถานะเปลี่ยนไปติดต่อทำ ' -ProspectsByStatus=อนาคตตามสถานะ +ProspectsByStatus=ลูกค้าเป้าหมายตามสถานะ NoParentCompany=ไม่ ExportCardToFormat=การ์ดส่งออกไปยังรูปแบบ ContactNotLinkedToCompany=ติดต่อไม่ได้เชื่อมโยงกับบุคคลที่สาม @@ -385,12 +390,12 @@ FiscalMonthStart=เริ่มต้นเดือนของปีงบป YouMustAssignUserMailFirst=You must create email for this user first to be able to add emails notifications for him. YouMustCreateContactFirst=To be able to add email notifications, you must first define contacts with valid emails for the third party ListSuppliersShort=รายชื่อของซัพพลายเออร์ -ListProspectsShort=รายชื่อของลูกค้า +ListProspectsShort=รายชื่อลูกค้าเป้าหมาย ListCustomersShort=รายชื่อของลูกค้า ThirdPartiesArea=บุคคลที่สามและพื้นที่ติดต่อ LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=รวมของบุคคลที่สามที่ไม่ซ้ำกัน -InActivity=Opened +InActivity=เปิด ActivityCeased=ปิด ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=รหัสที่เป็นอิสระ รห ManagingDirectors=ผู้จัดการ (s) ชื่อ (ซีอีโอผู้อำนวยการประธาน ... ) MergeOriginThirdparty=ซ้ำของบุคคลที่สาม (บุคคลที่สามต้องการลบ) MergeThirdparties=ผสานบุคคลที่สาม -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties ได้รับการรวม SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/th_TH/contracts.lang b/htdocs/langs/th_TH/contracts.lang index 28f262cb8d5..4d63380c1be 100644 --- a/htdocs/langs/th_TH/contracts.lang +++ b/htdocs/langs/th_TH/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=รายการนี​​้มีเฉพ StandardContractsTemplate=แม่แบบสัญญามาตรฐาน ContactNameAndSignature=สำหรับ% s, ชื่อและลายเซ็น: OnlyLinesWithTypeServiceAreUsed=สายเท่านั้นที่มีประเภท "บริการ" จะถูกโคลน +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=ขายสัญญาลงนามตัวแทน diff --git a/htdocs/langs/th_TH/exports.lang b/htdocs/langs/th_TH/exports.lang index 2d08774a0f7..69d2d903ca0 100644 --- a/htdocs/langs/th_TH/exports.lang +++ b/htdocs/langs/th_TH/exports.lang @@ -110,13 +110,24 @@ Enclosure=สวน SpecialCode=รหัสพิเศษ ExportStringFilter=%% ช่วยให้แทนที่ตัวอักษรหนึ่งหรือมากกว่าหนึ่งในข้อความ ExportDateFilter=ปปปป YYYYMM, YYYYMMDD: กรองโดยหนึ่งปี / เดือน / วัน
ปปปปปปปป +, YYYYMM + YYYYMM, YYYYMMDD + YYYYMMDD: กรองในช่วงปี / เดือน / วัน
> ปปปป> YYYYMM> YYYYMMDD: กรองต่อไปนี้ในทุกปี / เดือน / วัน
<ปปปป 'nnnnn + nnnnn' ตัวกรองในช่วงของค่า
'> nnnnn' ตัวกรองโดยค่าที่ต่ำกว่า
'> nnnnn' ตัวกรองโดยค่าที่สูงขึ้น +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=หากคุณต้องการที่จะกรองบางค่าเพียงค่าที่ป้อนเข้าที่นี่ FilteredFields=สาขากรอง FilteredFieldsValues=ราคากรอง FormatControlRule=รูปแบบการปกครองควบคุม +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/th_TH/holiday.lang b/htdocs/langs/th_TH/holiday.lang index cca9cd986e9..c3571c93fa2 100644 --- a/htdocs/langs/th_TH/holiday.lang +++ b/htdocs/langs/th_TH/holiday.lang @@ -16,7 +16,7 @@ CancelCP=ยกเลิก RefuseCP=ปฏิเสธ ValidatorCP=Approbator ListeCP=รายการของใบ -ReviewedByCP=จะถูกตรวจสอบโดย +ReviewedByCP=Will be approved by DescCP=ลักษณะ SendRequestCP=สร้างการร้องขอลา DelayToRequestCP=ออกจากการร้องขอจะต้องทำอย่างน้อย% s วัน (s) ก่อนหน้าพวกเขา diff --git a/htdocs/langs/th_TH/install.lang b/htdocs/langs/th_TH/install.lang index 86c3d923c0a..a00733703ff 100644 --- a/htdocs/langs/th_TH/install.lang +++ b/htdocs/langs/th_TH/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=คุณสามารถใช้ตัวช่วย KeepDefaultValuesDeb=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จากแพคเกจลินุกซ์ (Ubuntu, Debian, Fedora ... ) ดังนั้นค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เฉพาะรหัสผ่านของเจ้าของฐานข้อมูลเพื่อสร้างจะต้องเสร็จสิ้น เปลี่ยนพารามิเตอร์อื่น ๆ เท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ KeepDefaultValuesMamp=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จาก DoliMamp ดังนั้นค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เปลี่ยนพวกเขาเท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ KeepDefaultValuesProxmox=คุณสามารถใช้ตัวช่วยสร้างการติดตั้ง Dolibarr จาก Proxmox เสมือนเครื่องเพื่อให้ค่าที่นำเสนอในที่นี้จะดีที่สุดแล้ว เปลี่ยนพวกเขาเท่านั้นถ้าคุณรู้ว่าสิ่งที่คุณทำ +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/th_TH/interventions.lang b/htdocs/langs/th_TH/interventions.lang index 9985b10948e..a94fce0066b 100644 --- a/htdocs/langs/th_TH/interventions.lang +++ b/htdocs/langs/th_TH/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=s แทรกแซง% ลบ InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=ติดตามการติดต่อกับลูกค้า # Modele numérotation diff --git a/htdocs/langs/th_TH/languages.lang b/htdocs/langs/th_TH/languages.lang index 4f0c60bf814..5da21848f7e 100644 --- a/htdocs/langs/th_TH/languages.lang +++ b/htdocs/langs/th_TH/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=เยอรมัน Language_de_AT=เยอรมัน (ออสเตรีย) Language_de_CH=ภาษาเยอรมัน Language_el_GR=กรีก +Language_el_CY=Greek (Cyprus) Language_en_AU=ภาษาอังกฤษ (ออสเตรเลีย) Language_en_CA=ภาษาอังกฤษ (แคนาดา) Language_en_GB=อังกฤษ (สหราชอาณาจักร) @@ -26,8 +27,10 @@ Language_es_BO=สเปน (โบลิเวีย) Language_es_CL=สเปน (ชิลี) Language_es_CO=สเปน (โคลอมเบีย) Language_es_DO=ภาษาสเปน +Language_es_EC=Spanish (Ecuador) Language_es_HN=สเปน (ฮอนดูรัส) Language_es_MX=สเปน (เม็กซิโก) +Language_es_PA=Spanish (Panama) Language_es_PY=สเปน (ปารากวัย) Language_es_PE=เสปน (เปรู) Language_es_PR=สเปน (เปอร์โตริโก) @@ -50,12 +53,14 @@ Language_is_IS=ไอซ์แลนด์ Language_it_IT=อิตาลี Language_ja_JP=ญี่ปุ่น Language_ka_GE=จอร์เจีย +Language_km_KH=Khmer Language_kn_IN=นาดา Language_ko_KR=เกาหลี Language_lo_LA=ลาว Language_lt_LT=ภาษาลิธัวเนีย Language_lv_LV=ลัตเวีย Language_mk_MK=มาซิโดเนีย +Language_mn_MN=Mongolian Language_nb_NO=นอร์เวย์ (บ็อกมัล) Language_nl_BE=ดัตช์ (เบลเยี่ยม) Language_nl_NL=ดัตช์ (เนเธอร์แลนด์) diff --git a/htdocs/langs/th_TH/loan.lang b/htdocs/langs/th_TH/loan.lang index b931ca51c05..bec33d91ae5 100644 --- a/htdocs/langs/th_TH/loan.lang +++ b/htdocs/langs/th_TH/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=% s จะไปสู่​​ความสนใจ GoToPrincipal=% s จะไปต่อที่สำคัญ YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=การกำหนดค่าของเงินให้กู้ยืมโมดูล LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/th_TH/mails.lang b/htdocs/langs/th_TH/mails.lang index eb1d2afde4e..96df7eb6a30 100644 --- a/htdocs/langs/th_TH/mails.lang +++ b/htdocs/langs/th_TH/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=ส่ง partialy MailingStatusSentCompletely=ส่งสมบูรณ์ MailingStatusError=ความผิดพลาด MailingStatusNotSent=ส่งไม่ได้ -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=ตรวจสอบการส่งอีเมลที่ประสบความสำเร็จ MailUnsubcribe=ยกเลิก MailingStatusNotContact=ไม่ติดต่ออีกต่อไป @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=สาย% s ในแฟ้ม @@ -116,8 +120,8 @@ Notifications=การแจ้งเตือน NoNotificationsWillBeSent=ไม่มีการแจ้งเตือนอีเมลที่มีการวางแผนสำหรับเหตุการณ์และ บริษัท นี้ ANotificationsWillBeSent=1 การแจ้งเตือนจะถูกส่งไปทางอีเมล SomeNotificationsWillBeSent=% s การแจ้งเตือนจะถูกส่งไปทางอีเมล -AddNewNotification=เปิดใช้งานเป้าหมายการแจ้งเตือนอีเมลใหม่ -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=รายการทั้งหมดแจ้งเตือนอีเมลที่ส่ง MailSendSetupIs=การกำหนดค่าของการส่งอีเมล์ที่ได้รับการติดตั้งเพื่อ '% s' โหมดนี้ไม่สามารถใช้ในการส่งการส่งอีเมลมวล MailSendSetupIs2=ก่อนอื่นคุณต้องไปกับบัญชีผู้ดูแลระบบลงไปในเมนู% sHome - การติดตั้ง - อีเมล์% s จะเปลี่ยนพารามิเตอร์ '% s' เพื่อใช้โหมด '% s' ด้วยโหมดนี้คุณสามารถเข้าสู่การตั้งค่าของเซิร์ฟเวอร์ที่ให้บริการโดยผู้ให้บริการอินเทอร์เน็ตของคุณและใช้คุณลักษณะการส่งอีเมลมวล diff --git a/htdocs/langs/th_TH/main.lang b/htdocs/langs/th_TH/main.lang index eaa24193396..97657f0c292 100644 --- a/htdocs/langs/th_TH/main.lang +++ b/htdocs/langs/th_TH/main.lang @@ -72,8 +72,10 @@ SeeHere=ดูที่นี่ Apply=ใช้ BackgroundColorByDefault=สีพื้นหลังเริ่มต้น FileRenamed=The file was successfully renamed -FileUploaded=ไฟล์อัพโหลดประสบความสำเร็จ FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=ไฟล์อัพโหลดประสบความสำเร็จ +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=ไฟล์ที่ถูกเลือกสำหรับสิ่งที่แนบมา แต่ยังไม่ได้อัปโหลดยัง คลิกที่ "แนบไฟล์" สำหรับเรื่องนี้ NbOfEntries=nb ของรายการ GoToWikiHelpPage=อ่านความช่วยเหลือออนไลน์ (อินเทอร์เน็ตจำเป็น) @@ -358,6 +360,7 @@ TotalLT1ES=RE รวม TotalLT2ES=IRPF รวม HT=สุทธิจากภาษี TTC=อิงค์ภาษี +INCT=Inc. all taxes VAT=ภาษีการขาย VATs=ภาษีขาย LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=ตุลาคม MonthShort11=พฤศจิกายน MonthShort12=ธันวาคม AttachedFiles=ไฟล์ที่แนบมาและเอกสาร -FileTransferComplete=ไฟล์อัพโหลด successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/th_TH/margins.lang b/htdocs/langs/th_TH/margins.lang index 01fd23e2d10..d436bad8ac6 100644 --- a/htdocs/langs/th_TH/margins.lang +++ b/htdocs/langs/th_TH/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=อัตราจะต้องเป็นค่าตั markRateShouldBeLesserThan100=อัตรามาร์คควรจะต่ำกว่า 100 ShowMarginInfos=แสดงขอบข่าวสาร CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/th_TH/members.lang b/htdocs/langs/th_TH/members.lang index 45145459d38..6e8ff81448f 100644 --- a/htdocs/langs/th_TH/members.lang +++ b/htdocs/langs/th_TH/members.lang @@ -90,6 +90,7 @@ PublicMemberList=รายชื่อสมาชิกสาธารณะ BlankSubscriptionForm=ใบจองซื้อรถยนต์สาธารณะ BlankSubscriptionFormDesc=Dolibarr สามารถให้คุณ URL ที่สาธารณะเพื่อให้ผู้เข้าชมภายนอกเพื่อขอสมัครเป็นสมาชิกมูลนิธิ ถ้าโมดูลการชำระเงินออนไลน์มีการใช้งานรูปแบบการชำระเงินจะได้รับการให้โดยอัตโนมัติ EnablePublicSubscriptionForm=เปิดใช้งานรูปแบบการสมัครสมาชิกอัตโนมัติสาธารณะ +ForceMemberType=Force the member type ExportDataset_member_1=และการสมัครสมาชิก ImportDataset_member_1=สมาชิก LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=แสดงหน้าจอนี้คุณสถิต MembersStatisticsDesc=เลือกสถิติที่คุณต้องการอ่าน ... MenuMembersStats=สถิติ LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=ธรรมชาติ Public=ข้อมูลเป็นสาธารณะ NewMemberbyWeb=สมาชิกใหม่ที่เพิ่ม รอการอนุมัติ diff --git a/htdocs/langs/th_TH/modulebuilder.lang b/htdocs/langs/th_TH/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/th_TH/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/th_TH/multicurrency.lang b/htdocs/langs/th_TH/multicurrency.lang new file mode 100644 index 00000000000..b8ed714c199 --- /dev/null +++ b/htdocs/langs/th_TH/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Payment amount, original currency diff --git a/htdocs/langs/th_TH/oauth.lang b/htdocs/langs/th_TH/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/th_TH/oauth.lang +++ b/htdocs/langs/th_TH/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/th_TH/other.lang b/htdocs/langs/th_TH/other.lang index 7d99ded2d77..0f68d12f808 100644 --- a/htdocs/langs/th_TH/other.lang +++ b/htdocs/langs/th_TH/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=กก. WeightUnitg=ก. WeightUnitmg=มก. WeightUnitpound=ปอนด์ +WeightUnitounce=ออนซ์ Length=ความยาว LengthUnitm=ม. LengthUnitdm=DM diff --git a/htdocs/langs/th_TH/paybox.lang b/htdocs/langs/th_TH/paybox.lang index d223c3343ae..1308e65514d 100644 --- a/htdocs/langs/th_TH/paybox.lang +++ b/htdocs/langs/th_TH/paybox.lang @@ -11,6 +11,7 @@ YourEMail=ส่งอีเมล์ถึงจะได้รับการ Creditor=เจ้าหนี้ PaymentCode=รหัสการชำระเงิน PayBoxDoPayment=ไปในการชำระเงิน +ToPay=การชำระเงินทำ YouWillBeRedirectedOnPayBox=คุณจะถูกเปลี่ยนเส้นทางในหน้า Paybox การรักษาความปลอดภัยในการป้อนข้อมูลบัตรเครดิต Continue=ถัดไป ToOfferALinkForOnlinePayment=สำหรับการชำระเงิน URL% s diff --git a/htdocs/langs/th_TH/paypal.lang b/htdocs/langs/th_TH/paypal.lang index b67896bdd8e..93b78087ee9 100644 --- a/htdocs/langs/th_TH/paypal.lang +++ b/htdocs/langs/th_TH/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=นี่คือรหัสของรายการ PAYPAL_ADD_PAYMENT_URL=เพิ่ม URL ของการชำระเงิน Paypal เมื่อคุณส่งเอกสารทางไปรษณีย์ PredefinedMailContentLink=คุณสามารถคลิกที่ลิงค์ด้านล่างเพื่อความปลอดภัยในการชำระเงินของคุณ (PayPal) หากยังไม่ได้ทำมาแล้ว % s YouAreCurrentlyInSandboxMode=คุณกำลังอยู่ใน "ทราย" โหมด -NewPaypalPaymentReceived=ใหม่การชำระเงินที่ได้รับ Paypal -NewPaypalPaymentFailed=การชำระเงิน Paypal ใหม่พยายาม แต่ล้มเหลว +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=อีเมลเตือนหลังจากการชำระเงิน (ประสบความสำเร็จหรือไม่) ReturnURLAfterPayment=URL ที่กลับมาหลังจากการชำระเงิน -ValidationOfPaypalPaymentFailed=การตรวจสอบการชำระเงิน Paypal ล้มเหลว -PaypalConfirmPaymentPageWasCalledButFailed=หน้ายืนยันการชำระเงินสำหรับ Paypal ถูกเรียกโดย Paypal แต่ไม่ยืนยัน +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/th_TH/printing.lang b/htdocs/langs/th_TH/printing.lang index 468dc4869bf..f4b6380706b 100644 --- a/htdocs/langs/th_TH/printing.lang +++ b/htdocs/langs/th_TH/printing.lang @@ -46,6 +46,6 @@ IPP_Media=สื่อเครื่องพิมพ์ IPP_Supported=ประเภทของสื่อ DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. -PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. -PrintTestDescprintgcp=List of Printers for Google Cloud Print. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. +PrintingDriverDescprintgcp=ตัวแปรการกำหนดค่าสำหรับการพิมพ์คนขับของ Google Cloud Print +PrintTestDescprintgcp=รายการสำหรับเครื่องพิมพ์ของ Google Cloud Print diff --git a/htdocs/langs/th_TH/products.lang b/htdocs/langs/th_TH/products.lang index 7848e487c3c..b7738205c3c 100644 --- a/htdocs/langs/th_TH/products.lang +++ b/htdocs/langs/th_TH/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=สินค้าหรือบริการ ProductsAndServices=สินค้าและบริการ ProductsOrServices=ผลิตภัณฑ์หรือบริการ -ProductsOnSell=สินค้าเพื่อขายหรือให้ซื้อ -ProductsNotOnSell=สินค้าไม่ขายและไม่ได้สำหรับการซื้อ +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=ผลิตภัณฑ์สำหรับการขายและการซื้อ -ServicesOnSell=บริการเพื่อขายหรือให้ซื้อ -ServicesNotOnSell=บริการไม่ได้สำหรับการขาย +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=บริการสำหรับการขายและการซื้อ LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=ตารางเมตร m3=ลูกบาศก์เมตร liter=ลิตร l=L +unitP=Piece +unitSET=Set +unitS=ที่สอง +unitH=ชั่วโมง +unitD=วัน +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=แม่แบบสินค้าอ้างอิง ServiceCodeModel=แม่แบบอ้างอิงบริการ CurrentProductPrice=ราคาปัจจุบัน @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=ก่อ ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=สินค้าย่อย MinSupplierPrice=ผู้จัดจำหน่ายราคาขั้นต่ำ MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=การกำหนดค่าราคาแบบไดนามิก -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=ตัวแปรทั่วโลก VariableToUpdate=Variable to update GlobalVariableUpdaters=อัพเดทตัวแปรทั่วโลก +GlobalVariableUpdaterType0=ข้อมูล JSON +GlobalVariableUpdaterHelp0=แยกวิเคราะห์ข้อมูล JSON จาก URL ที่ระบุมูลค่าระบุตำแหน่งของค่าที่เกี่ยวข้อง +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=ข้อมูลเว็บเซอร์ +GlobalVariableUpdaterHelp1=แยกวิเคราะห์ข้อมูลจากเว็บเซอร์ URL ที่ระบุ, NS ระบุ namespace, มูลค่าระบุตำแหน่งของค่าที่เกี่ยวข้อง, ข้อมูลควรมีข้อมูลที่จะส่งและเป็นวิธีการเรียกวิธี WS +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=ช่วงเวลาการปรับปรุง (นาที) LastUpdated=Latest update CorrectlyUpdated=ปรับปรุงอย่างถูกต้อง @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/th_TH/propal.lang b/htdocs/langs/th_TH/propal.lang index e76f520e1f4..cf796f07b15 100644 --- a/htdocs/langs/th_TH/propal.lang +++ b/htdocs/langs/th_TH/propal.lang @@ -3,7 +3,7 @@ Proposals=ข้อเสนอเชิงพาณิชย์ Proposal=ข้อเสนอเชิงพาณิชย์ ProposalShort=ข้อเสนอ ProposalsDraft=ข้อเสนอในเชิงพาณิชย์ร่าง -ProposalsOpened=Opened commercial proposals +ProposalsOpened=ข้อเสนอในเชิงพาณิชย์เปิด Prop=ข้อเสนอเชิงพาณิชย์ CommercialProposal=ข้อเสนอเชิงพาณิชย์ ProposalCard=การ์ดเสนอ @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=จำนวนเดือน (สุทธิจา NbOfProposals=จำนวนของข้อเสนอในเชิงพาณิชย์ ShowPropal=แสดงข้อเสนอ PropalsDraft=ร่าง -PropalsOpened=Opened +PropalsOpened=เปิด PropalStatusDraft=ร่าง (จะต้องมีการตรวจสอบ) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=ลงนาม (ความต้องการของการเรียกเก็บเงิน) diff --git a/htdocs/langs/th_TH/resource.lang b/htdocs/langs/th_TH/resource.lang index 2a88eacd2ba..5839b62ea63 100644 --- a/htdocs/langs/th_TH/resource.lang +++ b/htdocs/langs/th_TH/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=ทรัพยากรลบเรียบร้ DictionaryResourceType=ประเภทของทรัพยากร SelectResource=ทรัพยากรที่เลือก + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=ทรัพยากร diff --git a/htdocs/langs/th_TH/salaries.lang b/htdocs/langs/th_TH/salaries.lang index b42271e74a8..ee4ab455cdf 100644 --- a/htdocs/langs/th_TH/salaries.lang +++ b/htdocs/langs/th_TH/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=รหัสบัญชีสำหรับการชำระเงินเงินเดือน -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=รหัสบัญชีสำหรับค่าใช้จ่ายทางการเงิน +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=เงินเดือน Salaries=เงินเดือน NewSalaryPayment=การชำระเงินเงินเดือนใหม่ diff --git a/htdocs/langs/th_TH/sendings.lang b/htdocs/langs/th_TH/sendings.lang index 22170e1d89d..f982ff2367e 100644 --- a/htdocs/langs/th_TH/sendings.lang +++ b/htdocs/langs/th_TH/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=แผ่นจัดส่ง ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=รูปแบบเอกสารอย่างง่าย DocumentModelMerou=Merou A5 รูปแบบ WarningNoQtyLeftToSend=คำเตือนผลิตภัณฑ์ไม่มีการรอคอยที่จะส่ง StatsOnShipmentsOnlyValidated=สถิติดำเนินการในการตรวจสอบการจัดส่งเท่านั้น วันที่นำมาใช้คือวันของการตรวจสอบการจัดส่งของ (วันที่ส่งมอบวางแผนไม่เป็นที่รู้จักเสมอ) @@ -51,10 +50,10 @@ ActionsOnShipping=เหตุการณ์ที่เกิดขึ้น LinkToTrackYourPackage=เชื่อมโยงไปยังติดตามแพคเกจของคุณ ShipmentCreationIsDoneFromOrder=สำหรับช่วงเวลาที่การสร้างการจัดส่งใหม่จะทำจากการ์ดสั่งซื้อ ShipmentLine=สายการจัดส่ง -ProductQtyInCustomersOrdersRunning=ปริมาณสินค้าเข้าเปิดคำสั่งซื้อของลูกค้า -ProductQtyInSuppliersOrdersRunning=ปริมาณสินค้าลงในคำสั่งเปิดซัพพลายเออร์ -ProductQtyInShipmentAlreadySent=ปริมาณสินค้าจากการสั่งซื้อของลูกค้าที่เปิดส่งแล้ว -ProductQtyInSuppliersShipmentAlreadyRecevied=ปริมาณการสั่งซื้อสินค้าจากซัพพลายเออร์ที่เปิดรับอยู่แล้ว +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/th_TH/stocks.lang b/htdocs/langs/th_TH/stocks.lang index 40f6b077791..14221185088 100644 --- a/htdocs/langs/th_TH/stocks.lang +++ b/htdocs/langs/th_TH/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=ป้ายเคลื่อนไหว NumberOfUnit=จำนวนหน่วย UnitPurchaseValue=ราคาซื้อหน่วย StockTooLow=หุ้นต่ำเกินไป -StockLowerThanLimit=หุ้นต่ำกว่าขีด จำกัด ของการแจ้งเตือน +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=มูลค่า PMPValue=ราคาเฉลี่ยถ่วงน้ำหนัก PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=สต็อกสินค้าและสต็ QtyDispatched=ปริมาณส่ง QtyDispatchedShort=จำนวนส่ง QtyToDispatchShort=จำนวนการจัดส่ง -OrderDispatch=หุ้นเยี่ยงอย่าง +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=ลดหุ้นที่แท้จริงในใบแจ้งหนี้ลูกค้า / บันทึกการตรวจสอบเครดิต @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=เพิ่มหุ้นที่แท้จริงในใบแจ้งหนี้ซัพพลายเออร์ / บันทึกการตรวจสอบเครดิต ReStockOnValidateOrder=เพิ่มหุ้นที่แท้จริงในการอนุมัติคำสั่งซัพพลายเออร์ -ReStockOnDispatchOrder=เพิ่มหุ้นที่แท้จริงในคู่มือการฝึกอบรมออกเป็นโกดังหลังจากที่สั่งซื้อผู้จัดจำหน่ายที่ได้รับ +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=การสั่งซื้อที่ยังไม่ได้มีหรือไม่ขึ้นสถานะที่ช่วยให้การจัดส่งสินค้าในคลังสินค้าหุ้น -StockDiffPhysicTeoric=ชี้แจงความแตกต่างระหว่างหุ้นทางกายภาพและทางทฤษฎี +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=ไม่มีสินค้าที่กำหนดไว้ล่วงหน้าสำหรับวัตถุนี้ จึงไม่มีการฝึกอบรมในสต็อกจะต้อง DispatchVerb=ฆ่า StockLimitShort=จำกัด สำหรับการแจ้งเตือน StockLimit=ขีด จำกัด ของสต็อกสำหรับการแจ้งเตือน PhysicalStock=หุ้นทางกายภาพ RealStock=หุ้นจริง +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=หุ้นเสมือนจริง +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=คลังสินค้า Id DescWareHouse=คลังสินค้ารายละเอียด LieuWareHouse=คลังสินค้าภาษาท้องถิ่น @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=ปริมาณของ% s สินค้าใน NbOfProductAfterPeriod=จำนวนของผลิตภัณฑ์% s ในสต็อกหลังจากระยะเวลาที่เลือก (>% s) MassMovement=การเคลื่อนไหวมวลชน SelectProductInAndOutWareHouse=เลือกผลิตภัณฑ์ปริมาณโกดังแหล่งที่มาและคลังสินค้าเป้าหมายจากนั้นคลิก "% s" ครั้งนี้จะทำสำหรับการเคลื่อนไหวที่จำเป็นทั้งหมดคลิกไปยัง "% s" -RecordMovement=โอนบันทึก +RecordMovement=Record transfer ReceivingForSameOrder=ใบเสร็จรับเงินสำหรับการสั่งซื้อนี้ StockMovementRecorded=การเคลื่อนไหวของหุ้นที่บันทึกไว้ RuleForStockAvailability=หลักเกณฑ์ในการความต้องการหุ้น @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=แก้ไข +inventoryValidate=ผ่านการตรวจสอบ +inventoryDraft=วิ่ง +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=สร้าง +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=ตัวกรองหมวดหมู่ +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=เพิ่ม +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=ลบบรรทัด +RegulateStock=Regulate Stock +ListInventory=รายการ diff --git a/htdocs/langs/th_TH/stripe.lang b/htdocs/langs/th_TH/stripe.lang new file mode 100644 index 00000000000..972c21591c6 --- /dev/null +++ b/htdocs/langs/th_TH/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=URL ต่อไปนี้จะพร้อมที่จะให้หน้าให้กับลูกค้าที่จะทำให้การชำระเงินบนวัตถุ Dolibarr +PaymentForm=รูปแบบการชำระเงิน +WelcomeOnPaymentPage=ยินดีต้อนรับในการให้บริการการชำระเงินออนไลน์ของเรา +ThisScreenAllowsYouToPay=หน้าจอนี้จะช่วยให้คุณสามารถชำระเงินออนไลน์ไปยัง% s +ThisIsInformationOnPayment=นี้เป็นข้อมูลเกี่ยวกับการชำระเงินที่จะทำ +ToComplete=ให้เสร็จสมบูรณ์ +YourEMail=ส่งอีเมล์ถึงจะได้รับการยืนยันการชำระเงิน +STRIPE_PAYONLINE_SENDEMAIL=อีเมลเตือนหลังจากการชำระเงิน (ประสบความสำเร็จหรือไม่) +Creditor=เจ้าหนี้ +PaymentCode=รหัสการชำระเงิน +StripeDoPayment=ไปในการชำระเงิน +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=ถัดไป +ToOfferALinkForOnlinePayment=สำหรับการชำระเงิน URL% s +ToOfferALinkForOnlinePaymentOnOrder=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์ s% สำหรับการสั่งซื้อของลูกค้า +ToOfferALinkForOnlinePaymentOnInvoice=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์% s สำหรับใบแจ้งหนี้ลูกค้า +ToOfferALinkForOnlinePaymentOnContractLine=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์% s สำหรับสายสัญญา +ToOfferALinkForOnlinePaymentOnFreeAmount=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์ s% สำหรับจำนวนเงินที่ฟรี +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL ที่จะนำเสนอส่วนติดต่อผู้ใช้การชำระเงินออนไลน์% s สำหรับการสมัครสมาชิก +YouCanAddTagOnUrl=นอกจากนี้คุณยังสามารถเพิ่มพารามิเตอร์ URL และแท็ก = ค่าใด ๆ ของ URL เหล่านั้น (ที่จำเป็นเท่านั้นสำหรับการชำระเงินฟรี) เพื่อเพิ่มแท็กความคิดเห็นการชำระเงินของคุณเอง +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=หน้านี้ยืนยันว่าชำระเงินของคุณได้รับการบันทึก ขอบคุณ +YourPaymentHasNotBeenRecorded=ชำระเงินที่คุณยังไม่ได้รับการบันทึกไว้และได้รับการยกเลิกการทำธุรกรรม ขอบคุณ +AccountParameter=พารามิเตอร์บัญชี +UsageParameter=พารามิเตอร์การใช้งาน +InformationToFindParameters=ช่วยในการหาข้อมูลเกี่ยวกับบัญชีของคุณ s% +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=ชื่อของผู้ขาย +CSSUrlForPaymentForm=รูปแบบ CSS url ของแผ่นสำหรับรูปแบบการชำระเงิน +MessageOK=ข้อความในหน้ากลับมาตรวจสอบการชำระเงิน +MessageKO=ข้อความในหน้าผลตอบแทนการชำระเงินยกเลิก +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/th_TH/supplier_proposal.lang b/htdocs/langs/th_TH/supplier_proposal.lang index 1f1ba6bbb23..a870acb9c1b 100644 --- a/htdocs/langs/th_TH/supplier_proposal.lang +++ b/htdocs/langs/th_TH/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=ร่าง (จะต้องมีการตรวจสอบ) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=ปิด SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=ปฏิเสธ @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=เริ่มต้นการสร้างแบบจำลอง DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/th_TH/suppliers.lang b/htdocs/langs/th_TH/suppliers.lang index 902ec4a8136..e956e0ae7ef 100644 --- a/htdocs/langs/th_TH/suppliers.lang +++ b/htdocs/langs/th_TH/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=บางผลิตภัณฑ์ย่อยได้ไม่มีราคาที่กำหนดไว้ AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=ราคาผู้ผลิต ReferenceSupplierIsAlreadyAssociatedWithAProduct=ผู้จัดจำหน่ายอ้างอิงนี้จะเชื่อมโยงกับการอ้างอิง:% s NoRecordedSuppliers=ซัพพลายเออร์ที่ไม่มีการบันทึกไว้ SupplierPayment=การชำระเงินผู้ผลิต @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=ราคาผู้ผลิต diff --git a/htdocs/langs/th_TH/trips.lang b/htdocs/langs/th_TH/trips.lang index 64364b8b37a..0ed12b8b79a 100644 --- a/htdocs/langs/th_TH/trips.lang +++ b/htdocs/langs/th_TH/trips.lang @@ -12,7 +12,7 @@ ListOfFees=รายการค่าใช้จ่าย TypeFees=Types of fees ShowTrip=แสดงรายงานค่าใช้จ่าย NewTrip=รายงานค่าใช้จ่ายใหม่ -CompanyVisited=บริษัท / มูลนิธิเข้าเยี่ยมชม +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=จำนวนเงินหรือกิโลเมตร DeleteTrip=ลบรายงานค่าใช้จ่าย ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=รอการอนุมัติ ExpensesArea=ค่าใช้จ่ายในพื้นที่รายงาน ClassifyRefunded=จำแนก 'คืนเงิน' ExpenseReportWaitingForApproval=รายงานค่าใช้จ่ายใหม่ได้รับการส่งเพื่อขออนุมัติ -ExpenseReportWaitingForApprovalMessage=รายงานค่าใช้จ่ายใหม่ได้รับการส่งและกำลังรอการอนุมัติ - ผู้ใช้:% s - ระยะเวลา:% s คลิกที่นี่เพื่อตรวจสอบ:% s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=รายงานค่าใช้จ่าย Id AnyOtherInThisListCanValidate=คนที่จะแจ้งให้สำหรับการตรวจสอบ TripSociete=ข้อมูล บริษัท @@ -59,31 +69,24 @@ DATE_REFUS=ปฏิเสธวัน DATE_SAVE=วันที่ตรวจสอบ DATE_CANCEL=วันที่ยกเลิก DATE_PAIEMENT=วันที่ชำระเงิน - BROUILLONNER=เปิดใหม่ +ExpenseReportRef=Ref. expense report ValidateAndSubmit=ตรวจสอบและส่งเพื่อขออนุมัติ ValidatedWaitingApproval=การตรวจสอบ (รอการอนุมัติ) - NOT_AUTHOR=คุณไม่ได้เป็นผู้เขียนรายงานค่าใช้จ่ายนี้ การดำเนินงานที่ยกเลิก - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=อนุมัติรายงานค่าใช้จ่าย ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=จ่ายรายงานค่าใช้จ่าย ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=ย้ายกลับไปรายงานค่าใช้จ่ายสถานะ "ร่าง" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=ตรวจสอบรายงานค่าใช้จ่าย ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=ไม่มีรายงานค่าใช้จ่ายในการส่งออกในช่วงเวลานี้ ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/th_TH/users.lang b/htdocs/langs/th_TH/users.lang index 83663049e76..bc25b2dbde7 100644 --- a/htdocs/langs/th_TH/users.lang +++ b/htdocs/langs/th_TH/users.lang @@ -66,8 +66,8 @@ InternalUser=ผู้ใช้งานภายใน ExportDataset_user_1=ผู้ใช้ Dolibarr และคุณสมบัติ DomainUser=โดเมนของผู้ใช้% s Reactivate=ฟื้นฟู -CreateInternalUserDesc=รูปแบบนี้จะช่วยให้คุณสามารถสร้างผู้ใช้ภายใน บริษัท ของคุณ / มูลนิธิ ในการสร้างผู้ใช้ภายนอก (ลูกค้าผู้จัดจำหน่าย, ... ) ใช้ปุ่ม 'สร้างผู้ใช้ Dolibarr จากบัตรรายชื่อของบุคคลที่สาม -InternalExternalDesc=ผู้ใช้งานภายในเป็นผู้ใช้ที่เป็นส่วนหนึ่งของ บริษัท ของคุณ / มูลนิธิ
ผู้ใช้ภายนอกเป็นลูกค้าซัพพลายเออร์หรืออื่น

ในทั้งสองกรณีสิทธิ์กำหนดสิทธิใน Dolibarr ผู้ใช้ภายนอกยังสามารถมีผู้จัดการเมนูที่แตกต่างจากผู้ใช้ภายใน (ดูหน้าแรก - การติดตั้ง - จอแสดงผล) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=ได้รับอนุญาตเพราะรับมาจากหนึ่งในกลุ่มของผู้ใช้ Inherited=ที่สืบทอด UserWillBeInternalUser=ผู้ใช้ที่สร้างจะเป็นผู้ใช้งานภายใน (เพราะไม่เชื่อมโยงกับบุคคลที่สามโดยเฉพาะ) diff --git a/htdocs/langs/th_TH/website.lang b/htdocs/langs/th_TH/website.lang index 6197580711f..da3d59a2455 100644 --- a/htdocs/langs/th_TH/website.lang +++ b/htdocs/langs/th_TH/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=รหัส WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/th_TH/withdrawals.lang b/htdocs/langs/th_TH/withdrawals.lang index 80f90d2ce73..3fa287b3454 100644 --- a/htdocs/langs/th_TH/withdrawals.lang +++ b/htdocs/langs/th_TH/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=จำนวนเงินที่จะถอนตัว WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=ไม่มีใบแจ้งหนี้ลูกค้าในโหมดการชำระเงิน "ถอนตัว" กำลังรอ ไปที่แท็บ 'ถอน' บนการ์ดใบแจ้งหนี้ที่จะทำให้การร้องขอ +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=ผู้ใช้ที่มีความรับผิดชอบ WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=เหตุผลในการปฏิเสธ RefusedInvoicing=การเรียกเก็บเงินการปฏิเสธ NoInvoiceRefused=ไม่คิดค่าบริการการปฏิเสธ InvoiceRefused=ใบแจ้งหนี้ไม่ยอม (ชาร์จปฏิเสธให้กับลูกค้า) +StatusDebitCredit=Status debit/credit StatusWaiting=ที่รอ StatusTrans=ส่ง StatusCredited=เครดิต diff --git a/htdocs/langs/tr_TR/accountancy.lang b/htdocs/langs/tr_TR/accountancy.lang index 2a204c8e8d4..539c7516b9d 100644 --- a/htdocs/langs/tr_TR/accountancy.lang +++ b/htdocs/langs/tr_TR/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Diğer Bilgiler DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Muhasebe hesabı ekle AccountAccounting=Muhasebe hesabı AccountAccountingShort=Hesap SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Önerilen muhasebe hesabı @@ -79,6 +79,7 @@ SuppliersVentilation=Tedarikçi faturası bağlama ExpenseReportsVentilation=Expense report binding CreateMvts=Yeni işlem oluştur UpdateMvts=İşlemi değiştir +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Hesap bakiyesi @@ -140,8 +141,9 @@ Sens=Sens (borsa haberleri yayınlama günlüğü) Codejournal=Günlük NumPiece=Parça sayısı TransactionNumShort=Num. transaction -AccountingCategory=Accounting account groups +AccountingCategory=Muhasebe hesap grupları GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Ayarlanmamış DeleteMvt=Delete Ledger lines DelYear=Silinecek yıl @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Satışlar AccountingJournalType3=Alışlar AccountingJournalType4=Banka +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Dışaaktarımlar Export=Dışaaktar +ExportDraftJournal=Export draft journal Modelcsv=Dışaaktarım modeli OptionsDeactivatedForThisExportModel=Bu dışaaktarma modeli için seçenekler etkinleştirilmemiş Selectmodelcsv=Bir dışaaktarım modeli seç diff --git a/htdocs/langs/tr_TR/admin.lang b/htdocs/langs/tr_TR/admin.lang index 19ba7f0497b..88edee8bae9 100644 --- a/htdocs/langs/tr_TR/admin.lang +++ b/htdocs/langs/tr_TR/admin.lang @@ -104,7 +104,7 @@ MenuIdParent=Ana menü Kimliği DetailMenuIdParent=Ana menü Kimliği (bir üst menü için boş) DetailPosition=Menü konumunu tanımlamak için sıra numarası AllMenus=Tümü -NotConfigured=Module/Application not configured +NotConfigured=Modül/Uygulama yapılandırılmadı Active=Etkin SetupShort=Ayarlar OtherOptions=Diğer seçenekler @@ -225,23 +225,23 @@ OfficialDemo=Dolibarr çevrimiçi demo OfficialMarketPlace=Dış modüller/eklentiler için resmi Pazar yeri OfficialWebHostingService=Önerilen web barındırma servisleri (bulut barındırma) ReferencedPreferredPartners=Tercihli Ortaklar -OtherResources=Other resources -ExternalResources=External resources -SocialNetworks=Social Networks +OtherResources=Diğer kaynaklar +ExternalResources=Dış kaynaklar +SocialNetworks=Sosyal Ağlar ForDocumentationSeeWiki=Kullanıcıların ve geliştiricilerin belgeleri (Doc, FAQs…),
Dolibarr Wiki ye bir göz atın:
%s ForAnswersSeeForum=Herhangi bir başka soru/yardım için Dolibarr forumunu kullanabilirsiniz:
%s HelpCenterDesc1=Bu alan Dolibarr’dan Yardım destek hizmeti almanıza olanak sağlar. HelpCenterDesc2=Bu servisin bir kısmı yalnızca İngilizcedir CurrentMenuHandler=Geçerli menü işlemcisi MeasuringUnit=Ölçü birimi -LeftMargin=Left margin -TopMargin=Top margin -PaperSize=Paper type -Orientation=Orientation +LeftMargin=Sol kenar boşluğu +TopMargin=Üst kenar boşluğu +PaperSize=Kağıt türü +Orientation=Oryantasyon SpaceX=Space X SpaceY=Space Y -FontSize=Font size -Content=Content +FontSize=Yazı boyutu +Content=İçerik NoticePeriod=Bildirim dönemi NewByMonth=New by month Emails=E-postalar @@ -263,14 +263,14 @@ MAIN_MAIL_EMAIL_STARTTLS= TLS (STARTTLS) şifreleme kullan MAIN_DISABLE_ALL_SMS=Bütün SMS gönderimlerini devre dışı bırak (test ya da demo amaçlı) MAIN_SMS_SENDMODE=SMS göndermek için kullanılacak yöntem MAIN_MAIL_SMS_FROM=SMS gönderimi için varsayılan gönderici telefon numarası -MAIN_MAIL_DEFAULT_FROMTYPE=Sender e-mail by default for manual sendings (User email or Company email) -UserEmail=User email -CompanyEmail=Company email +MAIN_MAIL_DEFAULT_FROMTYPE=Manuel gönderimler için varsayılan gönderici e-mail adresi (Kullanıcı veya Firma maili) +UserEmail=Kullanıcı email adresi +CompanyEmail=Firma email adresi FeatureNotAvailableOnLinux=Unix gibi sistemlerde bu özellik yoktur. SubmitTranslation=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları langs/%s dizininde düzeltebilir ve değişikliklerinizi www.transifex.com/dolibarr-association/dolibarr/ a gönderebilirsiniz. SubmitTranslationENUS=Bu dil için çeviri tamamlanmamışsa ya da hatalar buluyorsanız, bunları langs/%s dizininde düzeltebilir ve değişikliklerinizi dolibarr.org/forum adresine veya geliştiriciler için github.com/Dolibarr/dolibarr adresine gönderebilirsiniz. ModuleSetup=Modül kurulumu -ModulesSetup=Modules/Application setup +ModulesSetup=Modül/Uygulama kurulumu ModuleFamilyBase=Sistem ModuleFamilyCrm=Müşteri İlişkileri Yönetimi (CRM) ModuleFamilySrm=Tefadrikçi İlişkileri Yönetimi (SRM) @@ -303,7 +303,7 @@ CurrentVersion=Dolibarr geçerli sürümü CallUpdatePage=Veritabanı yapısını ve verileri güncelleyen sayfaya git: %s. LastStableVersion=Son kararlı sürüm LastActivationDate=Latest activation date -LastActivationAuthor=Latest activation author +LastActivationAuthor=En son aktivasyon yazarı LastActivationIP=Latest activation IP UpdateServerOffline=Güncelleme sunucusu çevrimdışı WithCounter=Manage a counter @@ -375,20 +375,20 @@ Int=Tam sayı Float=Kayan DateAndTime=Tarih ve saat Unique=Benzersiz -Boolean=Boolean (one checkbox) +Boolean=Boole (bir onay kutusu) ExtrafieldPhone = Telefon ExtrafieldPrice = Fiyat ExtrafieldMail = Eposta ExtrafieldUrl = Url ExtrafieldSelect = Liste seç ExtrafieldSelectList = Tablodan seç -ExtrafieldSeparator=Separator (not a field) +ExtrafieldSeparator=Ayırıcı (bir alan değil) ExtrafieldPassword=Parola -ExtrafieldRadio=Radio buttons (on choice only) -ExtrafieldCheckBox=Checkboxes -ExtrafieldCheckBoxFromList=Checkboxes from table +ExtrafieldRadio=Radyo düğmeleri (sadece seçime bağlı) +ExtrafieldCheckBox=Onay kutuları +ExtrafieldCheckBoxFromList=Tablodan onay kutuları ExtrafieldLink=Bir nesneye bağlantı -ComputedFormula=Computed field +ComputedFormula=Hesaplanmış alan ComputedFormulaDesc=You can enter here a formula using other properties of object or any PHP coding to get a dynamic computed value. You can use any PHP compatible formulas including the "?" condition operator, and following global object: $db, $conf, $langs, $mysoc, $user, $object.
WARNING: Only some properties of $object may be available. If you need a properties not loaded, just fetch yourself the object into your formula like in the second example.
Using a computed field means you can't enter yourself any value from interface. Also, if there is a syntax error, the formula may return nothing.

Example of formula:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)

Example to reload object
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'

Other example of formula to force load of object and its parent object:
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Parent project not found' ExtrafieldParamHelpselect=Parametre listesi anahtar,değer gibi olmalı, örneğin

:
1,değer1
2,değer2
3,değer3
...

Listenin başka bir tamamlayıcı nitelik listesine bağlı olmasını sağlamak için :
1,value1|options_parent_list_code:parent_key
2,value2|options_parent_list_code:parent_key

Başka bir listeye bağlı bir liste elde etmek için\n:
1,value1|parent_list_code:parent_key
2,value2|parent_list_code:parent_key ExtrafieldParamHelpcheckbox=Parametre listesi anahtar.değer gibi olmalı, örneğin

:
1,değer1
2,değer2
3,değer3
... @@ -431,18 +431,18 @@ UseDoubleApproval=Tutar (vergi öncesi) bu tutardan yüksekse 3 aşamalı bir on WarningPHPMail=WARNING: Some email providers (like Yahoo) does not allow you to send an email from another server than the Yahoo server if the email address used as a sender is your Yahoo email (like myemail@yahoo.com, myemail@yahoo.fr, ...). Your current setup use the server of the application to send email, so some recipients (the one compatible with the restrictive DMARC protocol), will ask Yahoo if they can accept your email and Yahoo will respond "no" because the server is not a server owned by Yahoo, so few of your sent Emails may not be accepted.
If your Email provider (like Yahoo) has this restriction, you must change Email setup to choose the other method "SMTP server" and enter the SMTP server and credentials provided by your Email provider (ask your EMail provider to get SMTP credentials for your account). ClickToShowDescription=Click to show description DependsOn=This module need the module(s) -RequiredBy=This module is required by module(s) +RequiredBy=Bu modül, modül (ler) için zorunludur TheKeyIsTheNameOfHtmlField=This is the name of the HTML field. This need to have technical knowledges to read the content of the HTML page to get the key name of a field. PageUrlForDefaultValues=You must enter here the relative url of the page. If you include parameters in URL, the default values will be effective if all parameters are set to same value. Examples: PageUrlForDefaultValuesCreate=
For form to create a new thirdparty, it is %s PageUrlForDefaultValuesList=
For page that list thirdparties, it is %s -EnableDefaultValues=Enable usage of personalized default values -EnableOverwriteTranslation=Enable usage of overwrote translation +EnableDefaultValues=Kişiselleştirilmiş varsayılan değerlerin kullanımını etkinleştir +EnableOverwriteTranslation=Üzerine yazma çeviri kullanımını etkinleştir GoIntoTranslationMenuToChangeThis=A translation has been found for the key with this code, so to change this value, you must edit it fom Home-Setup-translation. WarningSettingSortOrder=Warning, setting a default sort order may result in a technical error when going on the list page if field is an unknown field. If you experience such an error, come back to this page to remove the default sort order and restore default behavior. Field=Alan -ProductDocumentTemplates=Document templates to generate product document -FreeLegalTextOnExpenseReports=Free legal text on expense reports +ProductDocumentTemplates=Ürün belgesi oluşturmak için belge şablonları +FreeLegalTextOnExpenseReports=Gider raporlarında ücretsiz yasal metni WatermarkOnDraftExpenseReports=Watermark on draft expense reports # Modules Module0Name=Kullanıcılar & gruplar @@ -536,7 +536,7 @@ Module1120Desc=Tedarikçi teklifi ve fiyatlarını iste Module1200Name=Mantis Module1200Desc=Mantis entegrasyonu Module1400Name=Muhasebe -Module1400Desc=Muhasebe yönetimi (her iki parti için) +Module1400Desc=Accounting management (double entries) Module1520Name=Belge Oluşturma Module1520Desc=Toplu posta belgesi oluşturma Module1780Name=Etiketler/Kategoriler @@ -585,7 +585,7 @@ Module50100Desc=Satış noktası modülü (POS) Module50200Name=Paypal Module50200Desc=Kredi kartı ya da Paypal ile ödeme sağlayan çevrimiçi ödeme sayfası modülü Module50400Name=Muhasebe (gelişmiş) -Module50400Desc=Muhasebe yönetimi (çift taraf) +Module50400Desc=Accounting management (double entries) Module54000Name=IPP Yazdır Module54000Desc=Cups IPP aryüzü kullanılarak doğrudan yazdırma (belgeler açılmadan) (Yazıcı sunucudan görülmeli ve sunucuda CUPS kurulu olmalı) Module55000Name=Anket, Araştırma ya da Oylama @@ -866,7 +866,7 @@ DictionaryStaff=Personel DictionaryAvailability=Teslimat süresi DictionaryOrderMethods=Sipariş yöntemleri DictionarySource=Teklifin/siparişin kökeni -DictionaryAccountancyCategory=Accounting account groups +DictionaryAccountancyCategory=Muhasebe hesabı grupları DictionaryAccountancysystem=Hesap planı modelleri DictionaryAccountancyJournal=Accounting journals DictionaryEMailTemplates=Eposta şablonları @@ -875,7 +875,7 @@ DictionaryProspectStatus=Aday durumu DictionaryHolidayTypes=izin türleri DictionaryOpportunityStatus=Proje/aday için fırsat durumu SetupSaved=Kurulum kaydedildi -SetupNotSaved=Setup not saved +SetupNotSaved=Kurulum kaydedilmedi BackToModuleList=Modül listesine geri git BackToDictionaryList=Sözlük listesine dön VATManagement=KDV Yönetimi @@ -918,7 +918,7 @@ LabelUsedByDefault=Hiçbir çeviri kodu bulunmuyorsa varsayılan olarak kullanı LabelOnDocuments=Belgeler üzerindeki etiket NbOfDays=Gün Sayısı AtEndOfMonth=Ay sonunda -CurrentNext=Current/Next +CurrentNext=Güncel/Sonraki Offset=Sapma AlwaysActive=Her zaman etkin Upgrade=Yükselt @@ -947,7 +947,7 @@ Host=Sunucu DriverType=Sürücü türü SummarySystem=Sistem bilgileri özeti SummaryConst=Tüm Dolibarr kurulum parametreleri listesi -MenuCompanySetup=Company/Organisation +MenuCompanySetup=Şirket/Kuruluş DefaultMenuManager= Standart menü yöneticisi DefaultMenuSmartphoneManager=Akıllı telefon (Smartphone) menü yöneticisi Skin=Dış görünüm teması @@ -957,14 +957,14 @@ DefaultMaxSizeList=Liste için varsayılan ençok uzunluk DefaultMaxSizeShortList=Kısa liste için ençok uzunluk (örn müşteri kartında) MessageOfDay=Günün mesajı MessageLogin=Oturum açma sayfası mesajı -LoginPage=Login page +LoginPage=Oturum açma sayfası BackgroundImageLogin=Background image PermanentLeftSearchForm=Sol menüdeki sabit arama formu DefaultLanguage=Kullanılan varsayılan dil (dil kodu) EnableMultilangInterface=Çoklu dil arayüzünü etkinleştir EnableShowLogo=Logoyu sol menüde göster -CompanyInfo=Company/organisation information -CompanyIds=Company/organisation identities +CompanyInfo=Şirket/Kuruluş bilgisi +CompanyIds=Şirket/Kuruluş kimlikleri CompanyName=Adı CompanyAddress=Adresi CompanyZip=Posta Kodu @@ -1158,7 +1158,7 @@ CompanyIdProfChecker=Uzman Kimliği kuralları MustBeUnique=Eşsiz olmalıdır? MustBeMandatory=Üçüncü tarafları oluşturmak zorunludur? MustBeInvoiceMandatory=Faturaları doğrulamak zorunludur ? -TechnicalServicesProvided=Technical services provided +TechnicalServicesProvided=Sağlanan teknik hizmetler ##### Webcal setup ##### WebCalUrlForVCalExport=%s biçimine göndermek için gerekli bağlantıyı aşağıdaki bağlantıdan bulabilirsiniz:%s ##### Invoices ##### @@ -1361,13 +1361,13 @@ CacheByServer=Sunucu önbelleği CacheByServerDesc=For exemple using the Apache directive "ExpiresByType image/gif A2592000" CacheByClient=Tarayıcı önbelleği CompressionOfResources=HTTP yanıtlarının sıkıştırılması -CompressionOfResourcesDesc=For exemple using the Apache directive "AddOutputFilterByType DEFLATE" +CompressionOfResourcesDesc=Örneğin "AddOutputFilterByType DEFLATE" Apache yönergesini kullanarak TestNotPossibleWithCurrentBrowsers=Böyle bir otomatik algılama mevcut tarayıcılar için olası değildir DefaultValuesDesc=You can define/force here the default value you want to get when your create a new record, and/or defaut filters or sort order when your list record. -DefaultCreateForm=Default values for new objects -DefaultSearchFilters=Default search filters +DefaultCreateForm=Yeni nesneler için varsayılan değerler +DefaultSearchFilters=Varsayılan arama filtreleri DefaultSortOrder=Default sort orders -DefaultFocus=Default focus fields +DefaultFocus=Varsayılan odak alanları ##### Products ##### ProductSetup=Ürünler modülü kurulumu ServiceSetup=Hizmetler modülü kurulumu @@ -1586,14 +1586,14 @@ TaskModelModule=Görev raporu belge modeli UseSearchToSelectProject=Proje seçmek için otomatik tamamlamalı alanları kullan (liste kutusu kullanmak yerine) ##### ECM (GED) ##### ##### Fiscal Year ##### -AccountingPeriods=Accounting periods -AccountingPeriodCard=Accounting period +AccountingPeriods=Muhasebe dönemleri +AccountingPeriodCard=Muhasebe dönemi NewFiscalYear=Yeni hesap dönemi OpenFiscalYear=Hesap dönemi aç CloseFiscalYear=Hesap dönemi kapat DeleteFiscalYear=Hesap dönemi sil ConfirmDeleteFiscalYear=Bu hesap dönemini silmek istediğinizden emin misiniz? -ShowFiscalYear=Show accounting period +ShowFiscalYear=Muhasebe dönemini göster AlwaysEditable=Her zaman düzenlenebilir MAIN_APPLICATION_TITLE=Uygulamanın görünür adına zorla (uyarı: burada kendi adınızı ayarlamanız, DoliDoid mobil uygulamasını kullanırken, kullanıcı adını oto doldur özelliğini durdurabilir) NbMajMin=Enaz sayıdaki büyük harf karakteri @@ -1638,7 +1638,7 @@ MinimumNoticePeriod=Enaz bildirim süresi (İzin isteğiniz bu süreden önce ya NbAddedAutomatically=Her ay (otomatik olarak) bu kullanıcının sayacına eklenen gün sayısı EnterAnyCode=Bu alan satırın tanınması için bir referans içerir. Özel karakterler hariç seçeceğiniz herhangi bir değeri girebilirsiniz. UnicodeCurrency=Burada ayraçlar arasına para birimi simgesini belirten bayt sayısını girin. Örneğin: $ için [36] - Brezilya Real'i için [82,36] - € için [8364] girin -ColorFormat=The RGB color is in HEX format, eg: FF0000 +ColorFormat=RGB rengi HEX formatındadır, örn: FF0000 PositionIntoComboList=Satırın kombo listesindeki konumu SellTaxRate=Satış vergisi oranı RecuperableOnly=Bazı Fransa eyaletlerinde geçerli olan "Non Perçue Récupérable" KDV için Evet, bütün diğer durumlar için "Hayır" girin. @@ -1663,7 +1663,7 @@ MailToSendSupplierInvoice=Tedarikçi faturası göndermek için MailToSendContract=To send a contract MailToThirdparty=Üçüncü taraf sayfasından eposta göndermek için ByDefaultInList=Liste görünümünde varsayılana göre göster -YouUseLastStableVersion=You use the latest stable version +YouUseLastStableVersion=En son kararlı sürümü kullanıyorsunuz TitleExampleForMajorRelease=Bu ana sürümü duyurmak için kullanabileceğiniz mesaj örneği (web sitenizde rahatça kullanabilirsiniz) TitleExampleForMaintenanceRelease=Bu bakım sürümü duyurmak için kullanabileceğiniz mesaj örneği (web sitenizde rahatça kullanabilirsiniz) ExampleOfNewsMessageForMajorRelease=Dolibarr ERP & CRM %s is available. Version %s is a major release with a lot of new features for both users and developers. You can download it from the download area of https://www.dolibarr.org portal (subdirectory Stable versions). You can read ChangeLog for complete list of changes. diff --git a/htdocs/langs/tr_TR/agenda.lang b/htdocs/langs/tr_TR/agenda.lang index 07e25c57ef9..21b4bd1034e 100644 --- a/htdocs/langs/tr_TR/agenda.lang +++ b/htdocs/langs/tr_TR/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=Etkinlik kimliği Actions=Etkinlikler Agenda=Gündem +TMenuAgenda=Gündem Agendas=Gündemler LocalAgenda=İç takvim ActionsOwnedBy=Etkinlik sahibi @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=%s faturası silindi InvoicePaidInDolibarr=Ödemeye değiştirilen fatura %s InvoiceCanceledInDolibarr=İptal edilen fatura %s MemberValidatedInDolibarr=Doğrulanan üye %s +MemberModifiedInDolibarr=Üye %sdeğiştirildi MemberResiliatedInDolibarr=%s üyeliği bitirilmiştir MemberDeletedInDolibarr=Silinen üyelik %s MemberSubscriptionAddedInDolibarr=Abonelik eklenen üye %s ShipmentValidatedInDolibarr=Sevkiyat %s doğrulandı -ShipmentClassifyClosedInDolibarr=%s Sevkiyatı faturalandı olarak sınıflandırıldı -ShipmentUnClassifyCloseddInDolibarr=%s Sevkiyatı yeniden açıldı olarak sınıflandırıldı +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Silinen sevkiyat %s OrderCreatedInDolibarr=%s siparişi oluşturuldu OrderValidatedInDolibarr=%s Siparişi doğrulandı @@ -73,13 +75,17 @@ InterventionSentByEMail=%s Müdahalesi Eposta ile gönderildi ProposalDeleted=Teklif silindi OrderDeleted=Sipariş silindi InvoiceDeleted=Fatura silindi +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Etkinlik için belge şablonları DateActionStart=Başlama tarihi DateActionEnd=Bitiş tarihi AgendaUrlOptions1=Süzgeç çıktısına ayrıca aşağıdaki parametreleri ekleyebilirsiniz: -AgendaUrlOptions2=Eylem çıktılarını eylem, oluşturan, eylemden etkilenen ya da eylemi yapan kullanıcı oturum açma=%s sınırlayacak kullanıcı %s. AgendaUrlOptions3=kullanıcı girişi=%s, bir %s kullanıcısına ait eylemlerin çıkışlarını sınırlamak içindir. -AgendaUrlOptions4=Çıktıyı kullanıcı %s tarafından etkilenen etkinliklerle sınırlamak içinlogint=%s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=proje=PROJECT_ID, bu PROJECT_ID projesi ile ilişkilendirilmiş eylemlerin çıkışını çıkışını sınırlamak içindir. AgendaShowBirthdayEvents=Kişilerin doğum günlerini göster AgendaHideBirthdayEvents=Kişilerin doğum günlerini gizle diff --git a/htdocs/langs/tr_TR/banks.lang b/htdocs/langs/tr_TR/banks.lang index 96f9a3f579f..fd18dd3d072 100644 --- a/htdocs/langs/tr_TR/banks.lang +++ b/htdocs/langs/tr_TR/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=İşlem Kimliği BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,7 +75,7 @@ Conciliate=Uzlaştır Conciliation=Uzlaşma ReconciliationLate=Reconciliation late IncludeClosedAccount=Kapalı hesapları içer -OnlyOpenedAccount=Sadece açık hesapları +OnlyOpenedAccount=Yalnızca açık hesaplar AccountToCredit=Alacak hesabı AccountToDebit=Borç hesabı DisableConciliation=Bu hesap için uzlaşma özelliğini engelle @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Çek döndü ve fatura yeniden açık yapıldı BankAccountModelModule=Banka hesapları için belge şablonları DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/tr_TR/bills.lang b/htdocs/langs/tr_TR/bills.lang index 784baaaa1cb..3642cdd65cc 100644 --- a/htdocs/langs/tr_TR/bills.lang +++ b/htdocs/langs/tr_TR/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Silinemediği için devre dışı bırakıldı InvoiceStandard=Standart fatura InvoiceStandardAsk=Standart fatura InvoiceStandardDesc=Bu tür fatura genel faturadır. -InvoiceDeposit=Nakit avans faturası -InvoiceDepositAsk=Nakit avans faturası -InvoiceDepositDesc=Bu tür fatura bir nakit avans alındığında kesilir. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma fatura InvoiceProFormaAsk=Proforma fatura InvoiceProFormaDesc=Proforma fatura gerçek faturanın bir görüntüsüdür ancak muhasebe değeri yoktur. @@ -115,7 +115,7 @@ BillStatus=Fatura durumu StatusOfGeneratedInvoices=Oluşturulan faturaların durumu BillStatusDraft=Taslak (doğrulanma gerektirir) BillStatusPaid=Ödenmiş -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Ödenmiş (son fatura için hazır) BillStatusCanceled=Terkedilmiş BillStatusValidated=Doğrulanmış (ödenmesi gerekir) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Ödenmiş (kısmen) BillShortStatusDraft=Taslak BillShortStatusPaid=Ödenmiş BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=İşlenmiş +BillShortStatusConverted=Ödenmiş BillShortStatusCanceled=Terkedilmiş BillShortStatusValidated=Doğrulanmış BillShortStatusStarted=Başlamış @@ -154,8 +154,8 @@ FoundXQualifiedRecurringInvoiceTemplate=Oluşturmak için gerekli nitelikte %s y NotARecurringInvoiceTemplate=Bir yinelenen fatura şablonu değil NewBill=Yeni fatura LastBills=Latest %s invoices -LastCustomersBills=Latest %s customer invoices -LastSuppliersBills=Latest %s supplier invoices +LastCustomersBills=En yeni %s müşteri faturaları +LastSuppliersBills=En son %s tedarikçi faturaları AllBills=Tüm faturalar OtherBills=Diğer faturalar DraftBills=Taslak faturalar @@ -198,12 +198,12 @@ ShowBill=Fatura göster ShowInvoice=Fatura göster ShowInvoiceReplace=Değiştirilen faturayı göster ShowInvoiceAvoir=İade faturası göster -ShowInvoiceDeposit=Nakit avans faturası göster +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Hakediş faturası göster ShowPayment=Ödeme göster AlreadyPaid=Zaten ödenmiş AlreadyPaidBack=Zaten geri ödenmiş -AlreadyPaidNoCreditNotesNoDeposits=Zaten ödenmiş (iade faturası ve nakit avans faturası olmadan) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Terkedilen RemainderToPay=Ödenmemiş kalan RemainderToTake=Alınacak kalan tutar @@ -270,10 +270,10 @@ RelativeDiscount=Göreceli indirim GlobalDiscount=Genel indirim CreditNote=İade faturası CreditNotes=İade faturaları -Deposit=Nakit avans -Deposits=Nakit avanslar +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=İade faturası %s ten indirim -DiscountFromDeposit=%s nakit avans faturasından ödemeler +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Bu tür alacak fatura onaylanmadan önce faturada kullanılabilir CreditNoteDepositUse=Bu türde alacakları kullanmadan önce fatura doğrulanmış olmalıdır @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=En az bir fatura ödenmiş olarak sınıflan ExpectedToPay=Beklenen ödeme CantRemoveConciliatedPayment=Uzlaşılmış ödeme silinemiyor PayedByThisPayment=Bu ödeme ile ödenmiş -ClosePaidInvoicesAutomatically=Tamamı ödenmiş bütün standart ve değiştirilmiş faturaları "Ödendi" olarak sınıflandır. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Tamamı ödenmiş iade faturalarını "Ödendi" olarak sınıflandır. ClosePaidContributionsAutomatically=Tamamı ödenmiş tüm sosyal ve mali katkı paylarını "Ödendi" olarak sınıflandır. AllCompletelyPayedInvoiceWillBeClosed=Bakiyesi kalmayan bütün faturalar otomatikmen kapatılarak "Ödendi" durumuna getirilecektir. @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=Yeni bir fatura şablonu oluşturmak için PDFCrabeDescription=Fatura PDF şablonu Crabe. Tam fatura şablonu (Önerilen şablon) PDFCrevetteDescription=Fatura PDF şablonu Crevette. Durum faturaları için eksiksiz bir fatura şablonu TerreNumRefModelDesc1=Standart faturalar için numarayı %syymm-nnnn biçiminde ve iade faturaları için %syymm-nnnn biçiminde göster, yy yıl, mm ay ve nnnn boşluksuz ve 0 olmayan bir dizidir. -MarsNumRefModelDesc1=Sayı biçimleri, standart faturalar için %syymm-nnnn, değiştirilen faturalar için %syymm-nnnn, nakit avans faturaları için %syymm-nnnn ve alacak dekontları için %syymm-nnnn şeklindedir. Burada yy yıl, mm ay ve nnnn boşluksuz ve 0'a dönüşmeyen bir sayıdır. +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=$syymm ile başlayan bir fatura hali hazırda vardır ve bu sıra dizisi için uygun değildir. Bu modülü etkinleştirmek için onu kaldırın ya da adını değiştirin. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Müşteri fatura izleme temsilci TypeContact_facture_external_BILLING=Müşteri faturası ilgilisi diff --git a/htdocs/langs/tr_TR/bookmarks.lang b/htdocs/langs/tr_TR/bookmarks.lang index a9b1c5729c1..d7c2489d8a8 100644 --- a/htdocs/langs/tr_TR/bookmarks.lang +++ b/htdocs/langs/tr_TR/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Bu sayfayı yer imlerine ekleyin +AddThisPageToBookmarks=Mevcut sayfayı yer imlerine ekle Bookmark=Yer imi Bookmarks=Yer imleri +ListOfBookmarks=Yer imi listesi +EditBookmarks=Yer imlerini listele/düzenle NewBookmark=Yeni yer imi ShowBookmark=Yer imine bakın OpenANewWindow=Yeni bir pencere açılsın @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=Yeni pencerede BookmarkTargetReplaceWindowShort=Geçerli pencerede BookmarkTitle=Yer imi başlığı UrlOrLink=İnternet Adresi -BehaviourOnClick=İnternet adresine tıklandığında yapılacak işlem +BehaviourOnClick=Bir yer imi URL'si seçildiğindeki davranış CreateBookmark=Yer imi ekleyin SetHereATitleForLink=Yer iminin başlığını yazın UseAnExternalHttpLinkOrRelativeDolibarrLink=Dış http ya da bağıl Dolibarr İnternet adresi kullanın diff --git a/htdocs/langs/tr_TR/boxes.lang b/htdocs/langs/tr_TR/boxes.lang index 83ab874ff32..4c55044654a 100644 --- a/htdocs/langs/tr_TR/boxes.lang +++ b/htdocs/langs/tr_TR/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Giriş bilgileri BoxLastRssInfos=Rss bilgileri BoxLastProducts=Son %s ürün/hizmet BoxProductsAlertStock=Ürünler için stok uyarısı @@ -25,8 +26,8 @@ BoxTitleLastSuppliers=Kaydedilen son %s tedarikçi BoxTitleLastModifiedSuppliers=Değiştirilen son %s tedarikçi BoxTitleLastModifiedCustomers=Değiştirilen son %s müşteri BoxTitleLastCustomersOrProspects=Son %s müşteri veya aday -BoxTitleLastCustomerBills=Latest %s customer invoices -BoxTitleLastSupplierBills=Latest %s supplier invoices +BoxTitleLastCustomerBills=En yeni %s müşteri faturaları +BoxTitleLastSupplierBills=En son %s tedarikçi faturaları BoxTitleLastModifiedProspects=Değiştirilen son %s aday BoxTitleLastModifiedMembers=Son %s üye BoxTitleLastFicheInter=Değiştirilen son %s müdahale @@ -51,12 +52,12 @@ ClickToAdd=Eklemek için buraya tıklayın. NoRecordedCustomers=Kayıtlı müşteri yok NoRecordedContacts=Kayıtlı kişi yok NoActionsToDo=Yapılacak eylem yok -NoRecordedOrders=No recorded customer orders +NoRecordedOrders=Kayıtlı hiçbir müşteri siparişi bulunmuyor NoRecordedProposals=Kayıtlı teklif yok -NoRecordedInvoices=No recorded customer invoices -NoUnpaidCustomerBills=No unpaid customer invoices -NoUnpaidSupplierBills=No unpaid supplier invoices -NoModifiedSupplierBills=No recorded supplier invoices +NoRecordedInvoices=Kayıtlı hiçbir müşteri faturası bulunmuyor +NoUnpaidCustomerBills=Ödenmemiş hiçbir müşteri faturası bulunmuyor +NoUnpaidSupplierBills=Ödenmemiş hiçbir tedarikçi faturası bulunmuyor +NoModifiedSupplierBills=Kayıtlı hiçbir tedarikçi faturası bulunmuyor NoRecordedProducts=Kayıtlı ürün/hizmet yok NoRecordedProspects=Kayıtlı aday yok NoContractedProducts=Sözleşmeli ürün/hizmet yok @@ -82,3 +83,4 @@ ForCustomersOrders=Müşteri siparişleri ForProposals=Teklifler LastXMonthRolling=Devreden son %s ay ChooseBoxToAdd=Kontrol panelinize kutu ekleyin +BoxAdded=Widget gösterge tablonuza eklendi diff --git a/htdocs/langs/tr_TR/cashdesk.lang b/htdocs/langs/tr_TR/cashdesk.lang index d0c7e563068..3da6cad2b44 100644 --- a/htdocs/langs/tr_TR/cashdesk.lang +++ b/htdocs/langs/tr_TR/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Fark TotalTicket=Toplam fiş NoVAT=Bu satış için KDV yok Change=Fazla alındı -BankToPay=Açık hesap +BankToPay=Ödeme için hesap ShowCompany=Firma göster ShowStock=Depo göster DeleteArticle=Bu malı kaldırmak için tıkla diff --git a/htdocs/langs/tr_TR/categories.lang b/htdocs/langs/tr_TR/categories.lang index 8e57385bae7..7fad46bce52 100644 --- a/htdocs/langs/tr_TR/categories.lang +++ b/htdocs/langs/tr_TR/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Etiket/Kategori Rubriques=Etiketler/Kategoriler +RubriquesTransactions=İşlem Etiketleri/Kategorileri categories=etiketler/kategoriler NoCategoryYet=Bu türde oluşturulmuş etiket/kategori yok In=İçinde diff --git a/htdocs/langs/tr_TR/commercial.lang b/htdocs/langs/tr_TR/commercial.lang index a3f470620d7..b946c2ae310 100644 --- a/htdocs/langs/tr_TR/commercial.lang +++ b/htdocs/langs/tr_TR/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=%s ile toplantı ShowTask=Görev göster ShowAction=Etkinlik göster ActionsReport=Etkinlik raporu -ThirdPartiesOfSaleRepresentative=Satış temsilcisi olan üçüncü taraflar +ThirdPartiesOfSaleRepresentative=Satış temsilcisi olan üçüncü kişiler +SaleRepresentativesOfThirdParty=Üçüncü parti satış temsilcileri SalesRepresentative=Satış temsilcisi SalesRepresentatives=Satış temsilcileri SalesRepresentativeFollowUp=Satış temsilcisi (takipçi) diff --git a/htdocs/langs/tr_TR/companies.lang b/htdocs/langs/tr_TR/companies.lang index d6d156ad563..596d8793b33 100644 --- a/htdocs/langs/tr_TR/companies.lang +++ b/htdocs/langs/tr_TR/companies.lang @@ -2,9 +2,9 @@ ErrorCompanyNameAlreadyExists=Firma adı zaten %s var. Başka bir tane seçin. ErrorSetACountryFirst=Önce ülkeyi ayarla. SelectThirdParty=Bir üçüncü parti seç -ConfirmDeleteCompany=Are you sure you want to delete this company and all inherited information? +ConfirmDeleteCompany=Bu firmayı ve devralınan tüm bilgilerini silmek istediğinizden emin misiniz? DeleteContact=Bir kişi/adres sil -ConfirmDeleteContact=Are you sure you want to delete this contact and all inherited information? +ConfirmDeleteContact=Bu kişiyi ve devralınan tüm bilgilerini silmek istediğinizden emin misiniz? MenuNewThirdParty=Yeni üçüncü parti MenuNewCustomer=Yeni müşteri MenuNewProspect=Yeni aday @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Yeni özel şahıs NewCompany=Yeni firma (aday, müşteri, tedarikçi) NewThirdParty=Yeni üçüncü parti (aday, müşteri, tedarikçi) CreateDolibarrThirdPartySupplier=Bir üçüncü parti oluştur (tedarikçi) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Üçüncü parti oluştur CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Aday alanı IdThirdParty=Üçüncü parti kimliği @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Müşteriler ThirdPartyCustomersWithIdProf12=Müşteriler %s veya %s ile ThirdPartySuppliers=Tedarikçiler ThirdPartyType=Üçüncü parti türü -Company/Fundation=Firma/Dernek Individual=Özel şahıs ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Ana firma @@ -75,13 +74,13 @@ Poste= Durumu DefaultLang=Varsayılan dili VATIsUsed=KDV kullanılır VATIsNotUsed=KDV kullanılmaz -CopyAddressFromSoc=Fill address with third party address +CopyAddressFromSoc=Adresi üçüncü parti adresiyle doldurun ThirdpartyNotCustomerNotSupplierSoNoRef=Üçüncü taraf ne müşteri ne de tedarikçidir, bağlanacak uygun bir öğe yok. -PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +PaymentBankAccount=Ödeme banka hesabı +OverAllProposals=Teklifler +OverAllOrders=Siparişler +OverAllInvoices=Faturalar +OverAllSupplierProposals=Fiyat istekleri ##### Local Taxes ##### LocalTax1IsUsed=İkinci vergiyi kullan LocalTax1IsUsedES= RE kullanılır @@ -237,6 +236,12 @@ ProfId3TN=Prof No 3 (Gümrük kodu) ProfId4TN=Prof No 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Göreceli indirim CustomerAbsoluteDiscountShort=Mutlak indirim CompanyHasRelativeDiscount=Bu müşterinin varsayılan bir %s%% indirimi var CompanyHasNoRelativeDiscount=Bu müşterinin varsayılan hiçbir göreceli indirimi yok -CompanyHasAbsoluteDiscount=Bu müşterinin %s %s için halen indirim alacağı ya da birikimi var +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Bu müşterinin hala %s %s için iade faturaları var CompanyHasNoAbsoluteDiscount=Bu müşterinin hiçbir indirim alacağı yoktur CustomerAbsoluteDiscountAllUsers=Mutlak indirimler (tüm kullanıcılar tarafından verilen) @@ -273,7 +278,7 @@ EditContactAddress=Kişi/adres düzenle Contact=Kişi ContactId=Kişi kimliği ContactsAddresses=Kişiler/adresler -FromContactName=Name: +FromContactName=İsim: NoContactDefinedForThirdParty=Bu üçüncü parti için tanımlı kişi yok NoContactDefined=Bu üçüncü parti için kişi tanımlanmamış DefaultContact=Varsayılan kişi @@ -296,7 +301,7 @@ CompanyDeleted="%s" Firması veritabanından silindi. ListOfContacts=Kişi/adres listesi ListOfContactsAddresses=Kişiler/adresler listesi ListOfThirdParties=Üçüncü partiler listesi -ShowCompany=Show third party +ShowCompany=Üçüncü partiyi göster ShowContact=Kişi göster ContactsAllShort=Hepsi (süzmeden) ContactType=Kişi tipi @@ -365,9 +370,9 @@ ExportCardToFormat=Biçimlenip dışaaktarılacak kart ContactNotLinkedToCompany=Kişi herhangi bir üçüncü partiye bağlı değil DolibarrLogin=Dolibarr kullanıcı adı NoDolibarrAccess=Dolibarr erişimi yok -ExportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ExportDataset_company_1=Üçüncü partiler (Şirketler/Dernekler/Şahıslar) ve özellikleri ExportDataset_company_2=Kişiler ve özellikleri -ImportDataset_company_1=Third parties (Companies / foundations / physical people) and properties +ImportDataset_company_1=Üçüncü partiler (Şirketler/Vakıflar/Fiziki şahıslar) ve özellikleri ImportDataset_company_2=Kişiler/Adresler (üçüncü taraflara ait ya da değil) ve öznitelikleri ImportDataset_company_3=Banka ayrıntıları ImportDataset_company_4=Üçüncü partiler/Satış temsilcileri (satış temsilcileri firma kullanıcılarını etkiler) @@ -392,7 +397,7 @@ LastModifiedThirdParties=Değiştirilen son %s üçüncü parti UniqueThirdParties=Toplam benzersiz üçüncü parti InActivity=Açık ActivityCeased=Kapalı -ThirdPartyIsClosed=Third party is closed +ThirdPartyIsClosed=Üçüncü taraf kapalı ProductsIntoElements=%s içindeki ürünler/hizmetler listesi CurrentOutstandingBill=Geçerli bekleyen fatura OutstandingBill=Ödenmemiş fatura için ençok tutar @@ -402,10 +407,10 @@ LeopardNumRefModelDesc=Müşteri/tedarikçi kodu serbesttir. Bu kod herhangi bir ManagingDirectors=Yönetici(lerin) adı (CEO, müdür, başkan...) MergeOriginThirdparty=Çifte üçüncü parti (silmek istediğiniz üçüncü parti) MergeThirdparties=Üçüncü partileri birleştir -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Üçüncü taraflar birleştirilmiştir SaleRepresentativeLogin=Satış temsilcisinin kullanıcı adı -SaleRepresentativeFirstname=First name of sales representative -SaleRepresentativeLastname=Last name of sales representative +SaleRepresentativeFirstname=Satış temsilcisinin adı +SaleRepresentativeLastname=Satış temsilcisinin soyadı ErrorThirdpartiesMerge=Üçüncü taraf silinirken bir hata oluştu. Lütfen kayıtları inceleyin. Değişiklikler geri alındı. NewCustomerSupplierCodeProposed=New customer or supplier code suggested on duplicate code diff --git a/htdocs/langs/tr_TR/compta.lang b/htdocs/langs/tr_TR/compta.lang index 1b11fd564c0..98813d4b518 100644 --- a/htdocs/langs/tr_TR/compta.lang +++ b/htdocs/langs/tr_TR/compta.lang @@ -207,5 +207,5 @@ LinkedFichinter=Bir müdahaleye bağlan ImportDataset_tax_contrib=Sosyal/mali vergiler ImportDataset_tax_vat=Vat payments ErrorBankAccountNotFound=Hata: Banka hesabı bulunamadı -FiscalPeriod=Accounting period +FiscalPeriod=Muhasebe dönemi ListSocialContributionAssociatedProject=List of social contributions associated with the project diff --git a/htdocs/langs/tr_TR/contracts.lang b/htdocs/langs/tr_TR/contracts.lang index e33bc88d8b9..de525596aa9 100644 --- a/htdocs/langs/tr_TR/contracts.lang +++ b/htdocs/langs/tr_TR/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Bu listede yalnızca satış temsilcisi olarak ata StandardContractsTemplate=Standart sözleşme kalıbı ContactNameAndSignature=%s için, ad ve imza OnlyLinesWithTypeServiceAreUsed=Yalnızca "Hizmet" türündeki satırlar klonlanacaktır. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sözleşmeyi imzalalayacak satış temsilcisi diff --git a/htdocs/langs/tr_TR/exports.lang b/htdocs/langs/tr_TR/exports.lang index 40d96dc6f42..7aa8b65357a 100644 --- a/htdocs/langs/tr_TR/exports.lang +++ b/htdocs/langs/tr_TR/exports.lang @@ -110,13 +110,24 @@ Enclosure=Ek SpecialCode=Özel kod ExportStringFilter=%% metinde bir ya da fazla karakterin değiştirilmesine izin verir ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : bir yıılık yıl/ay/gün süzgeçi
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : yıllar arası yıllar/aylar/günler süzgeçi
> YYYY, > YYYYMM, > YYYYMMDD : izleyen tüm yıllar için yıılar/aylar/günler süzgeçi
< YYYY, < YYYYMM, < YYYYMMDD : bütün önceki yıllar/aylar/günler süzgeçi -ExportNumericFilter='NNNNN' bir değere göre süzgeç
'NNNNN+NNNNN' bir değerler aralığı süzgeçi
'>NNNNN' düşük değerlere göre süzgeç
'>NNNNN' yüksek değerlere göre süzgeç +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=İçeaktarımın başladığı satır numarası EndAtLineNb=Satır numarası sonu +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=Örneğin, İlk 2 satırı dışarıda tutmak için bu değeri 3 e ayarlayın KeepEmptyToGoToEndOfFile=Dosya sonuna gitmek için bu alanı boş bırakın +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Hesaplanmış alan ## filters SelectFilterFields=Süzmek istediğiniz değerleri buraya yazın. FilteredFields=Süzülmüş alanlar FilteredFieldsValues=Süzgeç değeri FormatControlRule=Biçim denetimi kuralı +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/tr_TR/holiday.lang b/htdocs/langs/tr_TR/holiday.lang index 525f1475fd9..114989d2557 100644 --- a/htdocs/langs/tr_TR/holiday.lang +++ b/htdocs/langs/tr_TR/holiday.lang @@ -16,7 +16,7 @@ CancelCP=İptal edildi RefuseCP=Reddedildi ValidatorCP=Onaylayan ListeCP=İzinler listesi -ReviewedByCP=İnceleyen +ReviewedByCP=Will be approved by DescCP=Açıklama SendRequestCP=İzin isteği oluştur DelayToRequestCP=İzin istekleri enaz %s gün önce yapolmalıdır. diff --git a/htdocs/langs/tr_TR/install.lang b/htdocs/langs/tr_TR/install.lang index dc6b71271e2..51c1d02e760 100644 --- a/htdocs/langs/tr_TR/install.lang +++ b/htdocs/langs/tr_TR/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=DoliWamp üzerinden Dolibarr kurulum sihirbazını kullan KeepDefaultValuesDeb=Bir Linux paketi (Ubuntu, Debian, Fedora ...) üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca veritabanı sahibinin parolasının tamamlanması gerekir. Yalnızca ne yapacağınızı biliyorsanız parametreleri değiştirin. KeepDefaultValuesMamp=DoliMamp üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca ne yapacağınızı biliyorsanız bunları değiştirin. KeepDefaultValuesProxmox=Proxmox sanal aygıt üzerinden Dolibarr kurulum sihirbazını kullanın, burada sunulan değerler hali hazırda optimize edilmiştir. Yalnızca ne yapacağınızı biliyorsanız bunları değiştirin. +UpgradeExternalModule=Harici modüllerin özel yükseltme işlemini çalıştırın ######### # upgrade diff --git a/htdocs/langs/tr_TR/interventions.lang b/htdocs/langs/tr_TR/interventions.lang index 38f5c569c1f..8a574eba64d 100644 --- a/htdocs/langs/tr_TR/interventions.lang +++ b/htdocs/langs/tr_TR/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Silinen müdahale %s InterventionsArea=Müdahaleler alanı DraftFichinter=Taslak müdahale LastModifiedInterventions=Değiştirilen son %s müdahale +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Müşteri izleme yetkilisi # Modele numérotation diff --git a/htdocs/langs/tr_TR/languages.lang b/htdocs/langs/tr_TR/languages.lang index 7516a184ca1..f814d38ec67 100644 --- a/htdocs/langs/tr_TR/languages.lang +++ b/htdocs/langs/tr_TR/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Almanca Language_de_AT=Almanca (Avusturya) Language_de_CH=Almanca (İsviçre) Language_el_GR=Yunanca +Language_el_CY=Greek (Cyprus) Language_en_AU=İngilizce (Avustralya) Language_en_CA=İngilizce (Kanada) Language_en_GB=İngilizce (Birleşik Krallık) @@ -26,8 +27,10 @@ Language_es_BO=İspanyolca (Bolivya) Language_es_CL=İspanyolca (Şilil) Language_es_CO=İspanyolca (Kolombiya) Language_es_DO=İspanyolca (Dominik Cumhuriyeti) +Language_es_EC=Spanish (Ecuador) Language_es_HN=İspanyolca (Honduras) Language_es_MX=İspanyolca (Meksika) +Language_es_PA=Spanish (Panama) Language_es_PY=İspanyolca (Paraguay) Language_es_PE=İspanyolca (Peru) Language_es_PR=İspanyolca (Porto Riko) @@ -50,12 +53,14 @@ Language_is_IS=İzlandaca Language_it_IT=İtalyanca Language_ja_JP=Japonca Language_ka_GE=Gürcüce +Language_km_KH=Khmer Language_kn_IN=Kannadaca Language_ko_KR=Korece Language_lo_LA=Laoca Language_lt_LT=Litvanyaca Language_lv_LV=Letonyaca Language_mk_MK=Makedonca +Language_mn_MN=Mongolian Language_nb_NO=Norveçce (Bokmål) Language_nl_BE=Hollandaca (Belçika) Language_nl_NL=Hollandaca (Hollanda) diff --git a/htdocs/langs/tr_TR/loan.lang b/htdocs/langs/tr_TR/loan.lang index 96271d1855d..6d92100170a 100644 --- a/htdocs/langs/tr_TR/loan.lang +++ b/htdocs/langs/tr_TR/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=Bu ipotekli borç hesaplayıcısı alınan krediye, ödeme GoToInterest=%s FAİZE gidecek GoToPrincipal=%s ANA PARAYA gidecek YouWillSpend=%s tutarını %s yılda harcayaksınız +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Kredi modülünün yapılandırılması LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/tr_TR/mails.lang b/htdocs/langs/tr_TR/mails.lang index b4fbbaba046..e3a70f51ff4 100644 --- a/htdocs/langs/tr_TR/mails.lang +++ b/htdocs/langs/tr_TR/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Kısmen gönderildi MailingStatusSentCompletely=Tamamen gönderildi MailingStatusError=Hata MailingStatusNotSent=Gönderilmedi -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Eposta doğrulanması başarılı MailUnsubcribe=Aboneliği kaldır MailingStatusNotContact=Bir daha görüşme @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Satır %s dosyası @@ -116,8 +120,8 @@ Notifications=Bildirimler NoNotificationsWillBeSent=Bu etkinlik ve firma için hiçbir Eposta bildirimi planlanmamış ANotificationsWillBeSent=Eposta ile 1 bildirim gönderilecektir SomeNotificationsWillBeSent=Epostayala %s bildirim gönderilecektir -AddNewNotification=Yeni bir eposta bildirim hedefi etkinleştir -ListOfActiveNotifications=Bütün etkin eposta bildirim hedeflerini listele +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Gönderilen tüm e-posta bildirimleri listesi MailSendSetupIs=Yapılandırma e postası '%s' için ayarlandı. Bu mod toplu epostalama için kullanılamaz. MailSendSetupIs2='%s' Modunu kullanmak için '%s' parametresini değiştirecekseniz, önce yönetici hesabı ile %sGiriş - Ayarlar - Epostalar%s menüsüne gitmelisiniz. Bu mod ile İnternet Servis Sağlayıcınız tarafından sağlanan SMTP sunucusu ayarlarını girebilir ve Toplu eposta özelliğini kullanabilirsiniz. diff --git a/htdocs/langs/tr_TR/main.lang b/htdocs/langs/tr_TR/main.lang index 5648b017065..7285680f9c9 100644 --- a/htdocs/langs/tr_TR/main.lang +++ b/htdocs/langs/tr_TR/main.lang @@ -43,7 +43,7 @@ ErrorConstantNotDefined=%s Parametresi tanımlı değil ErrorUnknown=Bilinmeyen hata ErrorSQL=SQL Hatası ErrorLogoFileNotFound='%s' Logo dosyası bulunamadı -ErrorGoToGlobalSetup=Go to 'Company/Organisation' setup to fix this +ErrorGoToGlobalSetup=Bunu düzeltmek için 'Firma/Kuruluş' kurulumuna gidin ErrorGoToModuleSetup=Bunu düzeltmek için Modül Kurulumuna git ErrorFailedToSendMail=Posta gönderilemedi (gönderen) ErrorFileNotUploaded=Dosya gönderilemedi. Boyutun izin verilen ençok dosya boyutunu aşmadığını denetleyin, bu dizinde yeterli boş alan olmalı ve aynı isimde başka bir dosya olmamalı. @@ -62,8 +62,8 @@ ErrorCantLoadUserFromDolibarrDatabase=Dolibarr veritabanında kullanıcı %s< ErrorNoVATRateDefinedForSellerCountry=Hata, ülke '%s' için herhangi bir KDV oranı tanımlanmamış. ErrorNoSocialContributionForSellerCountry=Hata, '%s' ülkesi için sosyal/mali vergi tipi tanımlanmamış. ErrorFailedToSaveFile=Hata, dosya kaydedilemedi. -ErrorCannotAddThisParentWarehouse=You are trying to add a parent warehouse which is already a child of current one -MaxNbOfRecordPerPage=Max nb of record per page +ErrorCannotAddThisParentWarehouse=Zaten şu anki deponun bir alt deposu olan bir üst depo eklemeye çalışıyorsunuz +MaxNbOfRecordPerPage=Sayfa başına maksimum kayıt sayısı NotAuthorized=Bunu yapmak için yetkiniz yok. SetDate=Ayar tarihi SelectDate=Bir tarih seç @@ -72,8 +72,10 @@ SeeHere=Buraya bak Apply=Uygula BackgroundColorByDefault=Varsayılan arkaplan rengi FileRenamed=Dosya adı değiştirilmesi başarılı -FileUploaded=Dosya yüklemesi başarılı FileGenerated=Dosya oluşturulması başarılı +FileSaved=The file was successfully saved +FileUploaded=Dosya yüklemesi başarılı +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Bu ekleme için bir dosya seçildi ama henüz gönderilmedi. Bunun için “Dosya ekle” ye tıklayın. NbOfEntries=Kayıt sayısı GoToWikiHelpPage=Çevrimiçi yardım oku (Internet erişimi gerekir) @@ -88,7 +90,7 @@ Undefined=Tanımlanmamış PasswordForgotten=Parola mı unutuldu? SeeAbove=Yukarı bak HomeArea=Giriş alanı -LastConnexion=Latest connection +LastConnexion=Son bağlantı PreviousConnexion=Önceki bağlantı PreviousValue=Önceki değer ConnectedOnMultiCompany=Çevreye bağlanmış @@ -130,7 +132,7 @@ Activate=Etkinleştir Activated=Etkin Closed=Kapalı Closed2=Kapalı -NotClosed=Not closed +NotClosed=Kapalı değil Enabled=Etkin Deprecated=Kullanılmayan Disable=Engelle @@ -153,7 +155,7 @@ Edit=Düzenle Validate=Doğrula ValidateAndApprove=Doğrula ve onayla ToValidate=Doğrulanacak -NotValidated=Not validated +NotValidated=Doğrulanmadı Save=Kaydet SaveAs=Farklı kaydet TestConnection=Deneme bağlantısı @@ -165,7 +167,7 @@ Go=Git Run=Yürüt CopyOf=Kopyası Show=Göster -Hide=Hide +Hide=Sakla ShowCardHere=Kart göster Search=Ara SearchOf=Ara @@ -208,8 +210,8 @@ Info=Log Family=Aile Description=Açıklama Designation=Açıklama -Model=Doc template -DefaultModel=Default doc template +Model=Doküman şablonu +DefaultModel=Varsayılan doküman şablonu Action=Etkinlik About=Hakkında Number=Sayı @@ -240,7 +242,7 @@ DateCreation=Oluşturma tarihi DateCreationShort=Oluşt. tarihi DateModification=Değiştirme tarihi DateModificationShort=Değiş. tarihi -DateLastModification=Latest modification date +DateLastModification=Son değiştirilme tarihi DateValidation=Doğrulama tarihi DateClosing=Kapanış tarihi DateDue=Vade tarihi @@ -310,7 +312,7 @@ Copy=Kopyala Paste=Yapıştır Default=Varsayılan DefaultValue=Varsayılan değer -DefaultValues=Default values +DefaultValues=Varsayılan değerler Price=Fiyat UnitPrice=Birim fiyat UnitPriceHT=Birim fiyat (net) @@ -327,9 +329,9 @@ AmountTTCShort=Tutar (KDV dahil) AmountHT=Tutar (KDV hariç) AmountTTC=Miktarı (KDV dahil) AmountVAT=KDV tutarı -MulticurrencyAlreadyPaid=Already payed, original currency -MulticurrencyRemainderToPay=Remain to pay, original currency -MulticurrencyPaymentAmount=Payment amount, original currency +MulticurrencyAlreadyPaid=Ödenmiş, orijinal para birimi +MulticurrencyRemainderToPay=Ödemeye devam edin, orijinal para birimi +MulticurrencyPaymentAmount=Ödeme tutarı, orijinal para birimi MulticurrencyAmountHT=Tutar (vergisiz net), ilk para birimi MulticurrencyAmountTTC=Tutar (vergi dahil), ilk para birimi MulticurrencyAmountVAT=Toplam vergi, ilk para birimi @@ -358,6 +360,7 @@ TotalLT1ES=Toplam RE TotalLT2ES=Toplam IRPF HT=KDV hariç TTC=KDV dahil +INCT=Inc. all taxes VAT=KDV VATs=Satış vergisi LT1ES=RE @@ -366,8 +369,8 @@ VATRate=KDV Oranı Average=Ortalama Sum=Toplam Delta=Değişim oranı -Module=Module/Application -Modules=Modules/Applications +Module=Modül/Uygulama +Modules=Modüller/Uygulamalar Option=Seçenek List=Liste FullList=Tüm liste @@ -388,10 +391,10 @@ ActionsToDoShort=Yapılacaklar ActionsDoneShort=Yapıldı ActionNotApplicable=Uygulanamaz ActionRunningNotStarted=Başlayacak -ActionRunningShort=In progress +ActionRunningShort=Devam etmekte ActionDoneShort=Bitti ActionUncomplete=Tamamlanmamış -CompanyFoundation=Company/Organisation +CompanyFoundation=Şirket/Kuruluş ContactsForCompany=Bu üçüncü partinin kişileri ContactsAddressesForCompany=Bu üçüncü partinin kişleri/adresleri AddressesForCompany=Bu üçüncü partinin adresleri @@ -409,9 +412,9 @@ Generate=Oluştur Duration=Süre TotalDuration=Toplam süre Summary=Özet -DolibarrStateBoard=Database statistics -DolibarrWorkBoard=Open items dashboard -NoOpenedElementToProcess=No opened element to process +DolibarrStateBoard=Veritabanı istatistikleri +DolibarrWorkBoard=Açık ögeler gösterge tablosu +NoOpenedElementToProcess=İşlenecek hiçbir açık öğe yok Available=Mevcut NotYetAvailable=Henüz mevcut değil NotAvailable=Uygun değil @@ -458,7 +461,7 @@ NextStep=Sonraki adım Datas=Veriler None=Hiçbiri NoneF=Hiçbiri -NoneOrSeveral=None or several +NoneOrSeveral=Yok veya Birkaç Late=Son LateDesc=Bir kayıdın sizin ayarlarınıza dayanarak gecikmiş olduğu ya da olmadığını tanımlayabilmek için gerekli süre. Yöneticinizden Giriş - Ayarlar - Uyarılar menüsünden süreyi değiştirmesini isteyin. Photo=Resim @@ -468,7 +471,7 @@ DeletePicture=Resim sil ConfirmDeletePicture=Resim silmeyi onayla Login=Oturum açma CurrentLogin=Geçerli kullanıcı -EnterLoginDetail=Enter login details +EnterLoginDetail=Giriş bilgilerini giriniz January=Ocak February=Şubat March=Mart @@ -518,7 +521,6 @@ MonthShort10=Eki MonthShort11=Kas MonthShort12=Ara AttachedFiles=Ekli dosya ve belgeler -FileTransferComplete=Dosya başarıyla gönderildi DateFormatYYYYMM=YYYY-AA DateFormatYYYYMMDD=YYYY-AA-GG DateFormatYYYYMMDDHHMM=YYYY-AA-GG SS:SS @@ -527,7 +529,7 @@ ReportPeriod=Rapor dönemi ReportDescription=Açıklama Report=Rapor Keyword=Anahtar kelime -Origin=Origin +Origin=Köken Legend=Gösterge Fill=Doldur Reset=Sıfırla @@ -606,14 +608,14 @@ SessionName=Oturum adı Method=Yöntem Receive=Al CompleteOrNoMoreReceptionExpected=Tamamlandı ya da yapılacak başka şey yok -ExpectedValue=Expected Value +ExpectedValue=Beklenen Değer CurrentValue=Geçerli değer PartialWoman=Kısmi TotalWoman=Toplam NeverReceived=Hiç alınmadı Canceled=Vazgeçildi -YouCanChangeValuesForThisListFromDictionarySetup=You can change values for this list from menu Setup - Dictionaries -YouCanChangeValuesForThisListFrom=You can change values for this list from menu %s +YouCanChangeValuesForThisListFromDictionarySetup=Bu listenin değerlerini Kurulum - Sözlükler menüsünden değiştirebilirsiniz +YouCanChangeValuesForThisListFrom=Bu listenin değerlerini %s menüsünden değiştirebilirsiniz YouCanSetDefaultValueInModuleSetup=Modül ayarlarında yeni bir kayıt oluştururken kullanılacak varsayılan değeri belirleybilirsiniz Color=Renk Documents=Bağlı dosyalar @@ -629,8 +631,8 @@ CurrentUserLanguage=Geçerli dil CurrentTheme=Geçerli tema CurrentMenuManager=Geçerli menü yöneticisi Browser=Tarayıcı -Layout=Layout -Screen=Screen +Layout=Düzen +Screen=Ekran DisabledModules=Engelli modüller For=İçin ForCustomer=Müşteriler için @@ -649,12 +651,12 @@ FreeLineOfType=Türe göre serbest giriş CloneMainAttributes=Nesneyi ana öznitelikleri ile klonla PDFMerge=PDF Birleştir Merge=Birleştir -DocumentModelStandardPDF=Standard PDF template +DocumentModelStandardPDF=Standart PDF şablonu PrintContentArea=Yazdırılıcak Sayfanın ana içerik alanını göster MenuManager=Menu yöneticisi WarningYouAreInMaintenanceMode=Uyarı, bakım modundasınız, şu anda uygulamayı kullanmak için yalnızca %s girişine izin veriliyor. CoreErrorTitle=Sistem hatası -CoreErrorMessage=Sorry, an error occurred. Contact your system administrator to check the logs or disable $dolibarr_main_prod=1 to get more information. +CoreErrorMessage=Üzgünüz, bir hata oluştu. Günlükleri kontrol etmek için sistem yöneticinize başvurun veya daha fazla bilgi almak için $dolibarr_main_prod=1 devre dışı bırakın. CreditCard=Kredi kartı FieldsWithAreMandatory=%s olan alanları zorunludur FieldsWithIsForPublic=Üyelerin genel listelerinde %s olan alanlar gösterilir. Bunu istemiyorsanız, “genel” kutusundan işareti kaldırın. @@ -710,13 +712,13 @@ Test=Deneme Element=Unsur NoPhotoYet=Henüz resim yok Dashboard=Kontrol Paneli -MyDashboard=My dashboard +MyDashboard=Gösterge Panelim Deductible=Düşülebilir from=itibaren toward=yönünde Access=Erişim SelectAction=Eylem seç -SelectTargetUser=Select target user/employee +SelectTargetUser=Hedef kullanıcı/çalışan seçin HelpCopyToClipboard=Panoya kopyalamak için Crtl+C SaveUploadedFileWithMask=Dosyayı "%s" adlı sunucuya kaydedin (aksi durumda "%s") OriginFileName=Özgün dosya adı @@ -727,9 +729,9 @@ ViewPrivateNote=Notları izle XMoreLines=%s gizli satır PublicUrl=Genel URL AddBox=Kutu ekle -SelectElementAndClick=Select an element and click %s +SelectElementAndClick=Bir öğe seçin ve %s tıklayın PrintFile=%s Dosyasını Yazdır -ShowTransaction=Show entry on bank account +ShowTransaction=Girişi banka hesabında göster GoIntoSetupToChangeLogo=Logoyu değiştirmek için Giriş - Ayarlar - Firma menüsüne ya da gizlemek için Giriş - Ayarlar - Ekran menüsüne git. Deny=Ret Denied=Reddedildi @@ -743,9 +745,9 @@ Hello=Merhaba Sincerely=Saygılar DeleteLine=Satır sil ConfirmDeleteLine=Bu satırı silmek istediğinizden emin misiniz? -NoPDFAvailableForDocGenAmongChecked=No PDF were available for the document generation among checked record -TooManyRecordForMassAction=Too many record selected for mass action. The action is restricted to a list of %s record. -NoRecordSelected=No record selected +NoPDFAvailableForDocGenAmongChecked=Kontrol edilen kayıtlar arasında doküman üretimi için PDF mevcut değildi +TooManyRecordForMassAction=Toplu eylem için çok fazla kayıt seçildi. Eylem %s kayıt listesi ile sınırlıdır. +NoRecordSelected=Seçilen kayıt yok MassFilesArea=Toplu işlemler tarafından yapılan dosyalar için alan ShowTempMassFilesArea=Toplu işlemler tarafından yapılan dosyalar alanını göster RelatedObjects=İlgili Nesneler @@ -763,21 +765,21 @@ Miscellaneous=Çeşitli Calendar=Takvim GroupBy=Gruplandır... ViewFlatList=Düz listeyi incele -RemoveString=Remove string '%s' -SomeTranslationAreUncomplete=Some languages may be partially translated or may contains errors. If you detect some, you can fix language files registering to https://transifex.com/projects/p/dolibarr/. -DirectDownloadLink=Direct download link -Download=Download -ActualizeCurrency=Update currency rate +RemoveString='%s' dizisini kaldır +SomeTranslationAreUncomplete=Bazı diller kısmen tercüme edilmiş veya hatalar içeriyor olabilir. Eğer böyle bir durum tespit ederseniz https://transifex.com/projects/p/dolibarr/ adresinden kayıt olarak dil dosyalarını düzeltebilirsiniz. +DirectDownloadLink=Doğrudan indirme linki +Download=İndir +ActualizeCurrency=Para birimini güncelle Fiscalyear=Mali yıl ModuleBuilder=Module Builder -SetMultiCurrencyCode=Set currency -BulkActions=Bulk actions -ClickToShowHelp=Click to show tooltip help -HR=HR -HRAndBank=HR and Bank -AutomaticallyCalculated=Automatically calculated -TitleSetToDraft=Go back to draft -ConfirmSetToDraft=Are you sure you want to go back to Draft status ? +SetMultiCurrencyCode=Para birimini ayarla +BulkActions=Toplu eylemler +ClickToShowHelp=Araç ipucu yardımını göstermek için tıklayın +HR=İK +HRAndBank=İK ve Banka +AutomaticallyCalculated=Otomatik olarak hesaplandı +TitleSetToDraft=Taslağa geri dön +ConfirmSetToDraft=Taslak durumuna dönmek istediğinizden emin misiniz? # Week day Monday=Pazartesi Tuesday=Salı @@ -814,7 +816,7 @@ Select2NotFound=Hiç sonuç bulunamadı Select2Enter=Gir Select2MoreCharacter=ya da daha fazla harf Select2MoreCharacters=ya da daha fazla harf -Select2MoreCharactersMore=Search syntax:
| OR (a|b)
* Any character (a*b)
^ Start with (^ab)
$ End with (ab$)
+Select2MoreCharactersMore=Arama sözdizimi:
|VEYA(a|b)
*Herhangi bir karakter(a*b)
^(^ab)ile başlayan
$ (ab$)ile biten
Select2LoadingMoreResults=Daha fazla sonuç yükleniyor... Select2SearchInProgress=Arama sürmekte... SearchIntoThirdparties=Üçüncü taraflar diff --git a/htdocs/langs/tr_TR/margins.lang b/htdocs/langs/tr_TR/margins.lang index 854f9eb3d0b..f0ab4734ed8 100644 --- a/htdocs/langs/tr_TR/margins.lang +++ b/htdocs/langs/tr_TR/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Kar oran sayısal bir değer olmalı markRateShouldBeLesserThan100=Yayınlanmış kar oranı 100 den daha düşük olmalı ShowMarginInfos=Kar oranı bilgisi göster CheckMargins=Kar oranı ayrıntıları -MarginPerSaleRepresentativeWarning=Kullanıcı başına kar oranı raporu, üçüncü taraflarla ve kullanıcı başına kar oranı hesaplanacak satış temsilcisi arasındaki bağlantıyı kullanır. Çünkü bazı üçüncü partiler herhangi bir satış temsilcisine bağlantılanmamış ve bazı üçüncü taraflar birçok kullanıcıya bağlantılanmış olabilir, bazı kar oranları bu raporlarda görünmeyebilir veya birçok farklı satırda görünebilir. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/tr_TR/members.lang b/htdocs/langs/tr_TR/members.lang index 6ceb6af3c8b..fb0e3252714 100644 --- a/htdocs/langs/tr_TR/members.lang +++ b/htdocs/langs/tr_TR/members.lang @@ -25,7 +25,7 @@ MembersListUpToDate=Güncel abonelikleri ile geçerli üye listesi MembersListNotUpToDate=Abonelik tarihleri geçmiş geçerli üye listesi MembersListResiliated=List of terminated members MembersListQualified=Nitelikli üye listesi -MenuMembersToValidate=Taslak üye +MenuMembersToValidate=Taslak üyeler MenuMembersValidated=Doğrulanmış üye MenuMembersUpToDate=Güncel üyeler MenuMembersNotUpToDate=Tarihi geçmiş üyeler @@ -42,9 +42,9 @@ MemberTypeId=Üyelik türü kimliği MemberTypeLabel=Üyelik türü etiketi MembersTypes=Üye türleri MemberStatusDraft=Taslak (doğrulanması gerekir) -MemberStatusDraftShort=Taslak +MemberStatusDraftShort=Ödeme emri MemberStatusActive=Onaylı (abonelik bekliyor) -MemberStatusActiveShort=Doğrulanmış +MemberStatusActiveShort=Doğrulandı MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=Süresi doldu MemberStatusPaid=Abonelik güncel @@ -61,7 +61,7 @@ NewSubscription=Yeni abonelik NewSubscriptionDesc=Bu form aboneliğinizi derneğe yeni bir üye olarak kaydetmenize olanak verir. Abonelik yenilemek istiyorsanız (Zaten üyeyseniz), dernek yönetimine %s epostası ile başvurun. Subscription=Abonelik Subscriptions=Abonelikler -SubscriptionLate=Gecikmiş +SubscriptionLate=Son SubscriptionNotReceived=Abonelik hiç alınmadı ListOfSubscriptions=Abonelikler listesi SendCardByMail=Kartı Eposta ile gönder @@ -90,8 +90,9 @@ PublicMemberList=Genel üye listesi BlankSubscriptionForm=Genel oto-abonelik formu BlankSubscriptionFormDesc=Dolibarr size, dış ziyaretçilerin derneğe üye olmayı istemelerini sağlayan genel bir URL sağlayabilir. Eğer çevrimiçi bir ödeme modülü etkinse, bir ödeme formu kendiliğinden sağlanacaktır. EnablePublicSubscriptionForm=Genel oto-üyelik formunu etkinleştir +ForceMemberType=Force the member type ExportDataset_member_1=Üyeler ve abonelikleri -ImportDataset_member_1=Üye +ImportDataset_member_1=Üyeler LastMembersModified=Değiştirilen son %s üye LastSubscriptionsModified=Değiştirilen son %s abonelik String=Söz dizesi @@ -150,6 +151,7 @@ MembersByTownDesc=Bu ekran ilçelere göre üyelik istatistikleri görüntüler. MembersStatisticsDesc=Görmek istediğiniz istatistikleri seçin... MenuMembersStats=İstatistikler LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Niteliği Public=Bilgiler geneldir NewMemberbyWeb=Yeni üye eklendi. Onay bekliyor diff --git a/htdocs/langs/tr_TR/modulebuilder.lang b/htdocs/langs/tr_TR/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/tr_TR/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/tr_TR/multicurrency.lang b/htdocs/langs/tr_TR/multicurrency.lang new file mode 100644 index 00000000000..aee25c329ea --- /dev/null +++ b/htdocs/langs/tr_TR/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Ödeme tutarı, orijinal para birimi diff --git a/htdocs/langs/tr_TR/oauth.lang b/htdocs/langs/tr_TR/oauth.lang index 88052e5670a..afd5ec1247d 100644 --- a/htdocs/langs/tr_TR/oauth.lang +++ b/htdocs/langs/tr_TR/oauth.lang @@ -2,20 +2,24 @@ ConfigOAuth=Oauth Yapılandırma OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=Yerel veritabanına kayıtlı erişim belirteçi yok HasAccessToken=Bir belirteç oluşturuldu ve yerel veritabanına kaydedildi -NewTokenStored=Belirteç kabul edildi ve kaydedildi -ToCheckDeleteTokenOnProvider=%s OAuth sağlayıcısı tarafından kaydedilen kimlik onaylamasını denetlemek/silmek için +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Belirteç silindi RequestAccess=Erişim ve kaydedilecek yeni bir belirteç alma isteği/yenilemesi için buraya tıklayın DeleteAccess=Belirteçi silmek için burayı tıkla UseTheFollowingUrlAsRedirectURI=OAuth sağlayıcınız üzerinde kimlik oluştururken Yönlendirme URI olarak aşağıdaki URL'yi kullanın: ListOfSupportedOauthProviders=OAuth2 sağlayıcınız tarafınıdan verilen kimlik bilgilerini burada girin. Burada yalnızca desteklenen OAuth2 sağlayıcılar görünür. Bu ayarlar OAuth2 kimlik doğrulaması gerektiren diğer modüller tarafından da kullanılabilir. -TOKEN_ACCESS= -TOKEN_REFRESH=Token Refresh Present +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret +TOKEN_REFRESH=Belirteç Yenilemesi Mevcuttur TOKEN_EXPIRED=Token expired -TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token +TOKEN_EXPIRE_AT=Belirteç sonlanması +TOKEN_DELETE=Kayıtlı belrteçi sil OAUTH_GOOGLE_NAME=Oauth Google service OAUTH_GOOGLE_ID=Oauth Google Id OAUTH_GOOGLE_SECRET=Oauth Google Secret diff --git a/htdocs/langs/tr_TR/other.lang b/htdocs/langs/tr_TR/other.lang index 87915753874..54e189e36fd 100644 --- a/htdocs/langs/tr_TR/other.lang +++ b/htdocs/langs/tr_TR/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ons Length=Uzunluk LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/tr_TR/paybox.lang b/htdocs/langs/tr_TR/paybox.lang index ba784516c30..e9c0910bcaf 100644 --- a/htdocs/langs/tr_TR/paybox.lang +++ b/htdocs/langs/tr_TR/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Ödeme alındısı onayı için e-posta adresi Creditor=Alacaklı PaymentCode=Ödeme kodu PayBoxDoPayment=Ödemeye git +ToPay=Ödeme yap YouWillBeRedirectedOnPayBox=Kredi kartı bilgilerinizi girmek için güvenli Paybox sayfasına yönlendirileceksiniz Continue=Sonraki ToOfferALinkForOnlinePayment=%s Ödemesi için URL diff --git a/htdocs/langs/tr_TR/paypal.lang b/htdocs/langs/tr_TR/paypal.lang index 1cecf1757b3..d4081e6f16f 100644 --- a/htdocs/langs/tr_TR/paypal.lang +++ b/htdocs/langs/tr_TR/paypal.lang @@ -11,20 +11,22 @@ PAYPAL_SSLVERSION=Curl SSL Sürümü PAYPAL_API_INTEGRAL_OR_PAYPALONLY="Dahili" (kredi kartı+paypal) ya da sadece "Paypal" ödemesi sunar PaypalModeIntegral=Tümlev PaypalModeOnlyPaypal=Yalnızca PayPal -PAYPAL_CSS_URL=Optionnal URL of CSS style sheet on payment page +PAYPAL_CSS_URL=Ödeme sayfasındaki CSS stil sayfasının isteğe bağlı URL'si ThisIsTransactionId=Bu işlem kimliğidir: %s PAYPAL_ADD_PAYMENT_URL=Posta yoluyla bir belge gönderdiğinizde, Paypal ödeme url'sini ekleyin PredefinedMailContentLink=Ödemenizi via PayPal\n\n%s\n\n ile yapmak için aşağıdaki güvenli bağlantıya tıklayabilirsiniz YouAreCurrentlyInSandboxMode=Şu anda "Sandbox" modundasınız -NewPaypalPaymentReceived=Yeni PayPal ödemesi alındı -NewPaypalPaymentFailed=Yeni PayPal ödemesi denendi ancak başarısız oldu +NewOnlinePaymentReceived=Yeni online ödeme alındı +NewOnlinePaymentFailed=Yeni online ödeme denendi ancak başarısız oldu PAYPAL_PAYONLINE_SENDEMAIL=Bir ödemeden sonra uyarı Epostası (başarılı ya da değil) ReturnURLAfterPayment=Ödemen sonra URL ye dön -ValidationOfPaypalPaymentFailed=Paypal ödemesi doğrulaması başarısız -PaypalConfirmPaymentPageWasCalledButFailed=Paypal için ödeme onayı sayfası Patpal tarafından çağrıldı ancak onay başarısız +ValidationOfOnlinePaymentFailed=Online ödemenin doğrulaması başarısız oldu +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API çağrısı hata verdi. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API çağrısı hata verdi. DetailedErrorMessage=Ayrıntılı Hata Mesajı ShortErrorMessage=Kısa Hata Mesajı ErrorCode=Hata Kodu ErrorSeverityCode=Hata Önem Kodu +OnlinePaymentSystem=Online ödeme sistemi +PaypalLiveEnabled=Paypal canlı etkin (aksi takdirde test/sanal alan modu) diff --git a/htdocs/langs/tr_TR/printing.lang b/htdocs/langs/tr_TR/printing.lang index d1894400ee6..0b9b19f0d53 100644 --- a/htdocs/langs/tr_TR/printing.lang +++ b/htdocs/langs/tr_TR/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Yazıcı ortamı IPP_Supported=Ortam türü DirectPrintingJobsDesc=Bu sayfa geçerli yazıcılar için yazdırma işlerini listeler. GoogleAuthNotConfigured=Google OAuth ayarları yapılmamış. OAuth modülünü etkinleştir ve bir Google ID/Secret ayarla. -GoogleAuthConfigured=OAuth modülünde Google OAuth kimlik bilgileri bulundu. +GoogleAuthConfigured=Google OAuth kimlik bilgileri OAuth modülünün kurulumunda bulundu. PrintingDriverDescprintgcp=Google Bulut Yazdırma yazıcı sürücüsü yapılandırma değişkenleri. PrintTestDescprintgcp=Google Bulut Yazdırma Yazıcı Listesi. diff --git a/htdocs/langs/tr_TR/productbatch.lang b/htdocs/langs/tr_TR/productbatch.lang index 784e04d6a70..071b46278e6 100644 --- a/htdocs/langs/tr_TR/productbatch.lang +++ b/htdocs/langs/tr_TR/productbatch.lang @@ -20,5 +20,5 @@ AddDispatchBatchLine=Dağıtımda bir Raf Ömrü satırı ekle WhenProductBatchModuleOnOptionAreForced=When module Lot/Serial is on, automatic increase/decrease stock mode is forced to shipping validate and manual dispatching for reception and can't be edited. Other options can be defined as you want. ProductDoesNotUseBatchSerial=Bu ürün parti/seri numarası kullanmıyor ProductLotSetup=Parti/seri modülü ayarları -ShowCurrentStockOfLot=Show current stock for couple product/lot -ShowLogOfMovementIfLot=Show log of movements for couple product/lot +ShowCurrentStockOfLot=Çift ürün/lot için mevcut stoğu göster +ShowLogOfMovementIfLot=Çift ürün/lot için hareketler günlüğünü göster diff --git a/htdocs/langs/tr_TR/products.lang b/htdocs/langs/tr_TR/products.lang index 2102213a083..ef8b2d726fe 100644 --- a/htdocs/langs/tr_TR/products.lang +++ b/htdocs/langs/tr_TR/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Muhasebe kodu (satış) ProductOrService=Ürün veya Hizmet ProductsAndServices=Ürünler ve Hizmetler ProductsOrServices=Ürünler veya hizmetler -ProductsOnSell=Satılır ya da satın alınır ürün -ProductsNotOnSell=Satılık olmayan ve satın alınmayan ürün +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Satılır ve alınır ürünler -ServicesOnSell=Satılır veya alınır Hizmetler -ServicesNotOnSell=Satılık olmayan hizmetler +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Satılır ve alınır hizmetler LastModifiedProductsAndServices=Değiştirilen son %s ürün/hizmet LastRecordedProducts=Kaydedilen son %s ürün @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=litre l=L +unitP=Piece +unitSET=Set +unitS=Saniye +unitH=Saat +unitD=Gün +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Ürün ref şablonu ServiceCodeModel=Hizmet ref şablonu CurrentProductPrice=Geçerli fiyat @@ -186,6 +200,7 @@ MultipriceRules=Fiyat seviyesi kuralları UseMultipriceRules=Birinci fiyata göre kendiliğinden fiyat hesaplaması için fiyat seviyesi kurallarını (ürün modülü ayarlarında tanımlanan) kullan PercentVariationOver=%s üzerindeki %% değişim PercentDiscountOver=%s üzerindeki %% indirim +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Üret ProductsMultiPrice=Her fiyat düzeyi için ürünler ve fiyatlar @@ -232,12 +247,18 @@ ComposedProduct=Yan ürün MinSupplierPrice=En düşük tedarikçi fiyatı MinCustomerPrice=En düşük müşteri fiyatı DynamicPriceConfiguration=Dinamik fiyat yapılandırması -DynamicPriceDesc=Ürün kartında bu modülü etkinleştirirseniz, Müşteri ve Tedarikçi fiyatlarını hesaplamak için matematik işlevlerini ayarlayabilirsiniz. Böyle bir işlev tüm matematik işlemlerini, bazı değişmezleri ve değişkenleri kullanabilir. Burada kullanabileceğiz değişkenleri ayarlayabilirsiniz ve eğer değişkenin otomatik güncellenmesi gerekirse dış URL Dolibarr'ın değeri otomatik güncellemesini istemek için kullanılabilir. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Değişken ekle AddUpdater=Güncellemeci ekle GlobalVariables=Genel değişkenler VariableToUpdate=Güncellenecek değişken GlobalVariableUpdaters=Genel değişkenler güncelleyicisi +GlobalVariableUpdaterType0=JSON verisi +GlobalVariableUpdaterHelp0=Belirtilen URL'den JSON verilerini ayrıştırır, DEĞER ilgili değerin yerini belirtir, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService verisi +GlobalVariableUpdaterHelp1=Belirtilen URL'den Web Servis verilerini ayrıştırır, NS isimyerini belirtir, DEĞER ilgili verinin konumunu belirtir, VERİ gönderilecek veriyi içermelidir ve YÖNTEM arayan WS yöntemidir +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Güncelleme aralığı (dakika) LastUpdated=Latest update CorrectlyUpdated=Doru olarak güncellendi @@ -260,6 +281,8 @@ SizeUnits=Boyut birimi DeleteProductBuyPrice=Satınalma fiyatı sil ConfirmDeleteProductBuyPrice=Bu satınalma fiyatını silmek istediğinizden emin misiniz? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/tr_TR/propal.lang b/htdocs/langs/tr_TR/propal.lang index d8a5226f495..e0617de22d0 100644 --- a/htdocs/langs/tr_TR/propal.lang +++ b/htdocs/langs/tr_TR/propal.lang @@ -13,8 +13,8 @@ Prospect=Aday DeleteProp=Teklif sil ValidateProp=Teklif doğrula AddProp=Teklif oluştur -ConfirmDeleteProp=Are you sure you want to delete this commercial proposal? -ConfirmValidateProp=Are you sure you want to validate this commercial proposal under name %s? +ConfirmDeleteProp=Bu ticari teklifi silmek istediğinizden emin misiniz? +ConfirmValidateProp=Bu ticari teklifi %s adı altında onaylamak istediğinizden emin misiniz? LastPropals=Son %s teklif LastModifiedProposals=Değiştirilen son %s teklif AllPropals=Tüm teklifler @@ -28,7 +28,7 @@ ShowPropal=Teklif göster PropalsDraft=Taslaklar PropalsOpened=Açık PropalStatusDraft=Taslak (doğrulanması gerekir) -PropalStatusValidated=Validated (proposal is opened) +PropalStatusValidated=Onaylanmış (teklif açıldı) PropalStatusSigned=İmzalı(faturalanacak) PropalStatusNotSigned=İmzalanmamış (kapalı) PropalStatusBilled=Faturalanmış @@ -56,8 +56,8 @@ CreateEmptyPropal=Boş teklif oluştur veya ürünler/hizmetler listesinden olu DefaultProposalDurationValidity=Varsayılan teklif geçerlilik süresi (gün olarak) UseCustomerContactAsPropalRecipientIfExist=Teklif alıcısı olarak üçüncü parti yerine, eğer tanımlanmışsa, kişi adresini kullan ClonePropal=Teklif kopyala -ConfirmClonePropal=Are you sure you want to clone the commercial proposal %s? -ConfirmReOpenProp=Are you sure you want to open back the commercial proposal %s? +ConfirmClonePropal=Ticari teklifi çoğaltmak istediğinizden emin misiniz? %s? +ConfirmReOpenProp=Ticari teklifi geri açmak istediğinizden emin misiniz %s? ProposalsAndProposalsLines=Teklif ve satırları ProposalLine=Teklif satırı AvailabilityPeriod=Teslim süresi diff --git a/htdocs/langs/tr_TR/resource.lang b/htdocs/langs/tr_TR/resource.lang index 30a1605bfc1..25e8cbd1af6 100644 --- a/htdocs/langs/tr_TR/resource.lang +++ b/htdocs/langs/tr_TR/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Kaynak silme başarılı DictionaryResourceType=Kaynak türleri SelectResource=Kaynak seç + +IdResource=Id kaynağı +AssetNumber=Seri numarası +ResourceTypeCode=Kaynak türü kodu +ImportDataset_resource_1=Kaynaklar diff --git a/htdocs/langs/tr_TR/salaries.lang b/htdocs/langs/tr_TR/salaries.lang index d0862d2baf6..9732d459b8b 100644 --- a/htdocs/langs/tr_TR/salaries.lang +++ b/htdocs/langs/tr_TR/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account by default for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Personel giderleri için varsayılan muhasebe hesabı Salary=Ücret Salaries=Ücretler NewSalaryPayment=Yeni ücret ödemesi diff --git a/htdocs/langs/tr_TR/sendings.lang b/htdocs/langs/tr_TR/sendings.lang index a288f42bbdc..35437e2a75f 100644 --- a/htdocs/langs/tr_TR/sendings.lang +++ b/htdocs/langs/tr_TR/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Sevkiyat tablosu ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Basit belge modeli DocumentModelMerou=Merou A5 modeli WarningNoQtyLeftToSend=Uyarı, sevkiyat için bekleyen herhangi bir ürün yok. StatsOnShipmentsOnlyValidated=İstatistikler yalnızca doğrulanmış sevkiyatlarda yapılmıştır. Kullanılan tarih sevkiyat doğrulama tarihidir (planlanan teslim tarihi her zaman bilinemez) @@ -51,10 +50,10 @@ ActionsOnShipping=Sevkiyat etkinlikleri LinkToTrackYourPackage=Paketinizi izleyeceğiniz bağlantı ShipmentCreationIsDoneFromOrder=Şu an için, yeni bir sevkiyatın oluşturulması sipariş kartından yapılmıştır. ShipmentLine=Sevkiyat kalemi -ProductQtyInCustomersOrdersRunning=Açık müşteri siparişlerindeki ürün miktarı -ProductQtyInSuppliersOrdersRunning=Açık tedarikçi siparişlerindeki ürün miktarı -ProductQtyInShipmentAlreadySent=Gönderilmiş olan ve açık durumdaki müşteri siparişindeki miktar -ProductQtyInSuppliersShipmentAlreadyRecevied=Açık tedarikçi siparişlerindeki halihazırda teslim alınmış ürün miktarı +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=Bu %s deposunda sevk edilecek hiç mal bulunamadı. Stoğu düzeltin ya da bir başka depo seçmek için geri gidin. WeightVolShort=Ağırlık/Hac. ValidateOrderFirstBeforeShipment=Sevkiyatları yapabilmek için önce siparişi doğrulamlısınız. diff --git a/htdocs/langs/tr_TR/stocks.lang b/htdocs/langs/tr_TR/stocks.lang index 080d7e8dcf5..dec27e13900 100644 --- a/htdocs/langs/tr_TR/stocks.lang +++ b/htdocs/langs/tr_TR/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Taşıma etiketi NumberOfUnit=Birim sayısı UnitPurchaseValue=Alış birim fiyatı StockTooLow=Stok çok düşük -StockLowerThanLimit=Stok uyarı düzeyinden az +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Değer PMPValue=Ağırlıklı ortalama fiyat PMPValueShort=AOF @@ -53,7 +53,7 @@ IndependantSubProductStock=Ürün stoku ve yan ürün stoku bağımsızdır QtyDispatched=Sevkedilen miktar QtyDispatchedShort=Dağıtılan mik QtyToDispatchShort=Dağıtılacak mik -OrderDispatch=Stok sevkiyatı +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Otomatik stok eksiltme yönetimi kuralı (elle eksiltme her zaman olasıdır, otomatik eksiltme kuralı etkin bile olsa) RuleForStockManagementIncrease=Otomatik stok arttırma yönetimi kuralı (elle arttırmae her zaman olasıdır, otomatik arttırma kuralı etkin bile olsa) DeStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları azalt @@ -62,16 +62,19 @@ DeStockOnShipment=Sevkiyatın onaylanmasıyla gerçek stoku eksilt DeStockOnShipmentOnClosing=Sevkiyatın kapalı olarak sınıflandırılmasıyla gerçek stoğu eksilt ReStockOnBill=Müşteri faturalarının/iade faturalarının doğrulanması üzerine gerçek stokları arttır ReStockOnValidateOrder=Tedarikçi siparişlerinin onanması üzerine gerçek stokları arttır -ReStockOnDispatchOrder=Tedarikçi siparişi aldıktan sonra, elle yapılan sevk üzerine gerçek stokları artırın +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Sipariş henüz yoksa veya stok deposundan gönderime izin veren bir durum varsa. -StockDiffPhysicTeoric=Fiziksel ve teorik stok arasındaki farkın açıklaması +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Bu nesne için önceden tanımlanmış ürünlenyok. Yani stoktan sevk gerekli değildir. DispatchVerb=Dağıtım StockLimitShort=Uyarı sınırı StockLimit=Stok sınırı uyarısı PhysicalStock=Fiziksel stok RealStock=Gerçek Stok +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Sanal stok +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Depo No DescWareHouse=Depo açıklaması LieuWareHouse=Depo konumlandırma @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Stoktaki %s ürününün, seçilen dönemden (<%s) önce NbOfProductAfterPeriod=Stoktaki %s ürününün, seçilen dönemden (<%s) sonraki miktarıdır MassMovement=Toplu hareket SelectProductInAndOutWareHouse=Bir ürün, bir miktar, bir kaynak depo ve bir hedef depo seçin, sonra "%s" e tıklayın. Bütün gerekli hareketler için bu işlem yapıldığında "%s" e tıklayın. -RecordMovement=Kayıt aktarımı +RecordMovement=Record transfer ReceivingForSameOrder=Bu siparişten yapılan kabuller StockMovementRecorded=Stok hareketleri kaydedildi RuleForStockAvailability=Stok gereksinimi kuralları @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Düzenle +inventoryValidate=Doğrulandı +inventoryDraft=Yürürlükte +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Oluştur +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Kategori süzgeçi +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Ekle +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Satır sil +RegulateStock=Regulate Stock +ListInventory=Liste diff --git a/htdocs/langs/tr_TR/stripe.lang b/htdocs/langs/tr_TR/stripe.lang new file mode 100644 index 00000000000..74a5cdf34f6 --- /dev/null +++ b/htdocs/langs/tr_TR/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe modülü kurulumu +StripeDesc=Bu modül müşterinin Stripe üzerinden ödeme yapmasına izin veren sayfalar sunar. Bu ücretsiz bir ödeme veya belirli bir Dolibarr nesnesinde (fatura, sipariş, ...) ödeme için kullanılabilir. +StripeOrCBDoPayment=Kredi kartı veya Stripe ile ödeme yapın +FollowingUrlAreAvailableToMakePayments=Aşağıdaki URL'ler bir müşteriye Dolibarr nesnelerine bir ödeme yapmak için bir sayfa sunmak için kullanılabilir +PaymentForm=Ödeme Formu +WelcomeOnPaymentPage=Çevrimiçi ödeme hizmetimize hoşgeldiniz +ThisScreenAllowsYouToPay=Bu ekran %s için çevrimiçi bir ödeme yapmanızı sağlar +ThisIsInformationOnPayment=Bu yapılacak ödeme hakkında bilgidir +ToComplete=Tamamlanacak +YourEMail=Ödeme alındısı onayı için e-posta adresi +STRIPE_PAYONLINE_SENDEMAIL=Bir ödemeden sonra uyarı Epostası (başarılı ya da değil) +Creditor=Alacaklı +PaymentCode=Ödeme kodu +StripeDoPayment=Ödemeye git +YouWillBeRedirectedOnStripe=Kredi kartı bilgilerini girmek için güvenli Stripe sayfasında yönlendirileceksiniz +Continue=Sonraki +ToOfferALinkForOnlinePayment=%s Ödemesi için URL +ToOfferALinkForOnlinePaymentOnOrder=Bir müşteri siparişi için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL +ToOfferALinkForOnlinePaymentOnInvoice=Bir müşteri faturası için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL +ToOfferALinkForOnlinePaymentOnContractLine=Bir sözleşme satırı için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL +ToOfferALinkForOnlinePaymentOnFreeAmount=Bir serbest ödeme için çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL +ToOfferALinkForOnlinePaymentOnMemberSubscription=Bir müşteri üye aboneliği çevrimiçi %s ödemesi kullanıcı arayüzü sunan URL +YouCanAddTagOnUrl=Ayrıca; o URL'lerden herhangi birine &tag=value url parametresini ekleyerek kendi ödeme açıklamanızın etiketini girebilirsiniz. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=Bu sayfa ödeme kaydedilmiş olduğunu onaylar. Teşekkür ederim. +YourPaymentHasNotBeenRecorded=Ödemeniz kaydedimelmiştir ve işlem iptal edilmiştir. Teşekkür ederiz. +AccountParameter=Hesap parametreleri +UsageParameter=Kullanım parametreleri +InformationToFindParameters=%s Hesap bilgilerinizi bulmanız için yardım +STRIPE_CGI_URL_V2=Ödeme için Stripe CGI modülü URL'si +VendorName=Satıcının Adı +CSSUrlForPaymentForm=Ödeme formu için CSS stil sayfası url'si +MessageOK=Doğrulama sayfası mesajı +MessageKO=İptal edilen ödeme sayfası mesajı +NewStripePaymentReceived=Yeni Stripe ödemesi alındı +NewStripePaymentFailed=Yeni Stripe ödemesi denendi ancak başarısız oldu +STRIPE_TEST_SECRET_KEY=Gizli test anahtarı +STRIPE_TEST_PUBLISHABLE_KEY=Yayımlanabilir test anahtarı +STRIPE_LIVE_SECRET_KEY=Gizli canlı anahtar +STRIPE_LIVE_PUBLISHABLE_KEY=Yayınlanabilir canlı anahtar +StripeLiveEnabled=Stripe canlı etkin (aksi takdirde test/sanal alan modu) diff --git a/htdocs/langs/tr_TR/supplier_proposal.lang b/htdocs/langs/tr_TR/supplier_proposal.lang index ba533544e62..9ac43f35ee5 100644 --- a/htdocs/langs/tr_TR/supplier_proposal.lang +++ b/htdocs/langs/tr_TR/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=İstek ara DraftRequests=Taslak istekler SupplierProposalsDraft=Taslak tedarikçi teklifleri LastModifiedRequests=Değiştirilen son %s fiyat isteği -RequestsOpened=Opened price requests +RequestsOpened=Fiyat isteği aç SupplierProposalArea=Tedarikçi teklifleri alanı SupplierProposalShort=Tedarikçi teklifi SupplierProposals=Tedarikçi teklifleri @@ -19,11 +19,11 @@ AddSupplierProposal=Fiyat isteği oluştur SupplierProposalRefFourn=Tedarikçi ref SupplierProposalDate=Teslim tarihi SupplierProposalRefFournNotice="Kabul edildi" olarak kapatmadan önce tedarikçi referansını tutmayı düşün. -ConfirmValidateAsk=Are you sure you want to validate this price request under name %s? +ConfirmValidateAsk=Bu fiyat talebini %s adı altında onaylamak istediğinizden emin misiniz? DeleteAsk=İstek sil ValidateAsk=İstek doğrula SupplierProposalStatusDraft=Taslak (doğrulanması gerekir) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Doğrulanmış (istek açıktır) SupplierProposalStatusClosed=Kapalı SupplierProposalStatusSigned=Kabul edildi SupplierProposalStatusNotSigned=Reddedildi @@ -35,21 +35,21 @@ SupplierProposalStatusNotSignedShort=Reddedildi CopyAskFrom=Varolan bir isteği kopyalayarak fiyat isteği oluştur CreateEmptyAsk=Boş istek oluştur CloneAsk=Fiyat isteği kopyala -ConfirmCloneAsk=Are you sure you want to clone the price request %s? -ConfirmReOpenAsk=Are you sure you want to open back the price request %s? +ConfirmCloneAsk=Fiyat talebini çoğaltmak istediğinizden emin misiniz %s? +ConfirmReOpenAsk=Fiyat talebini geri açmak istediğinizden emin misiniz %s? SendAskByMail=Fiyat isteğini postayla gönder SendAskRef=Fiyat isteği %s gönderiliyor SupplierProposalCard=İstek kartı -ConfirmDeleteAsk=Are you sure you want to delete this price request %s? +ConfirmDeleteAsk=Bu fiyat talebini silmek istediğinizden emin misiniz %s? ActionsOnSupplierProposal=Fiyat isteği üzerindeki eylemler DocModelAuroreDescription=Eksiksiz bir istek modeli (logo...) CommercialAsk=Fiyat isteği DefaultModelSupplierProposalCreate=Varsayılan model oluşturma DefaultModelSupplierProposalToBill=Bir fiyat isteğini kapatma sırasında (kabul edilmiş) varsayılan şablon DefaultModelSupplierProposalClosed=Bir fiyat isteğini kapatma sırasında (reddedilmiş) varsayılan şablon -ListOfSupplierProposal=Tedarikçi teklif istekleri listesi +ListOfSupplierProposals=Tedarikçi teklif istekleri listesi ListSupplierProposalsAssociatedProject=Proje ile ilişkili tedarikçi teliflerinin listesi SupplierProposalsToClose=Kapatılacak tedarikçi teklifleri SupplierProposalsToProcess=İşlenecek tedarikçi teklifleri -LastSupplierProposals=Latest %s price requests +LastSupplierProposals=Son %s fiyat talepleri AllPriceRequests=Tüm istekler diff --git a/htdocs/langs/tr_TR/suppliers.lang b/htdocs/langs/tr_TR/suppliers.lang index 5f30ce08003..72117c587b0 100644 --- a/htdocs/langs/tr_TR/suppliers.lang +++ b/htdocs/langs/tr_TR/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Yan ürün satış fiyatları toplamı SomeSubProductHaveNoPrices=Bazı altürünlerin fiyatı yok AddSupplierPrice=Alış fiyatı ekle ChangeSupplierPrice=Alış fiyatı değiştir +SupplierPrices=Tedarikçi fiyatları ReferenceSupplierIsAlreadyAssociatedWithAProduct=Bu referanslı tedarikçi zaten bu referans ile ilişkili: %s NoRecordedSuppliers=Kayıtlı tedarikçi yok SupplierPayment=Tedarikçi ödemesi @@ -24,10 +25,10 @@ ExportDataset_fournisseur_1=Tedarikçi faturaları listesi ve fatura satırları ExportDataset_fournisseur_2=Tedarikçi faturaları ve ödemeleri ExportDataset_fournisseur_3=Tedarikçi siparişleri ve sipariş satırları ApproveThisOrder=Bu siparişi onayla -ConfirmApproveThisOrder=Are you sure you want to approve order %s? +ConfirmApproveThisOrder=Siparişi uygun bulmak istediğinizden emin misiniz %s? DenyingThisOrder=Bu siparişi reddet -ConfirmDenyingThisOrder=Are you sure you want to deny this order %s? -ConfirmCancelThisOrder=Are you sure you want to cancel this order %s? +ConfirmDenyingThisOrder=Bu siparişi reddetmek istediğinizden emin misiniz %s? +ConfirmCancelThisOrder=Bu siparişi iptal etmek istediğinizden emin misiniz %s? AddSupplierOrder=Tedarikçi siparişi oluştur AddSupplierInvoice=Tedarikçi faturası oluştur ListOfSupplierProductForSupplier=Tedarikçi %s için ürün ve fiyat listesi @@ -41,4 +42,5 @@ DoNotOrderThisProductToThisSupplier=Sipariş verme NotTheGoodQualitySupplier=Hatalı kalite ReputationForThisProduct=İtibar BuyerName=Alıcı adı -AllProductServicePrices=All product / service prices +AllProductServicePrices=Tüm ürün/hizmet fiyatları +BuyingPriceNumShort=Tedarikçi fiyatları diff --git a/htdocs/langs/tr_TR/trips.lang b/htdocs/langs/tr_TR/trips.lang index d94282557dd..985e88e09f9 100644 --- a/htdocs/langs/tr_TR/trips.lang +++ b/htdocs/langs/tr_TR/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Ücretler listesi TypeFees=Ücret türleri ShowTrip=Gider raporu göster NewTrip=Yeni gider raporu -CompanyVisited=Ziyaret edilen firma/dernek +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Tutar ya da kilometre DeleteTrip=Gider raporu sil ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Onay bekliyor ExpensesArea=Gider raporları alanı ClassifyRefunded=Sınıflandırma 'İade edildi' ExpenseReportWaitingForApproval=Onay için yeni bir gider raporu sunulmuştur -ExpenseReportWaitingForApprovalMessage=Yeni bir gider raporu sunulmuş olup onay için beklemektedir.\n- Kullanıcı: %s\n- Dönem: %s\nDoğrulamak için buraya tıklayın: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Gider raporu kimliği AnyOtherInThisListCanValidate=Doğrulama için bilgilendirilecek kişi TripSociete=Firma bilgisi @@ -59,31 +69,24 @@ DATE_REFUS=Ret tarihi DATE_SAVE=Onay tarihi DATE_CANCEL=İptal etme tarihi DATE_PAIEMENT=Ödeme tarihi - BROUILLONNER=Yeniden aç +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Doğrula ve onay için gönder ValidatedWaitingApproval=Doğrulanmış (onay bekliyor) - NOT_AUTHOR=Bu gider raporunu yazan siz değilsiniz. İşlem iptal edildi. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Gider raporunu onayla ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Bir gider raporu öde ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Gider raporu durumunu yeniden "Taslak" durumuna getir ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Gider raporunu doğrula ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=Bu dönem için dışaaktarılacak gider raporu yok. ExpenseReportPayment=Gider raporu ödemesi - ExpenseReportsToApprove=Onaylanacak gider raporları ExpenseReportsToPay=Ödenecek gider raporları +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/tr_TR/users.lang b/htdocs/langs/tr_TR/users.lang index 32ca4f5d5ae..bc17b8dce95 100644 --- a/htdocs/langs/tr_TR/users.lang +++ b/htdocs/langs/tr_TR/users.lang @@ -66,8 +66,8 @@ InternalUser=İç kullanıcı ExportDataset_user_1=Dolibarr kullanıcıları ve özellikleri DomainUser=Etki alanı kullanıcısı %s Reactivate=Yeniden etkinleştir -CreateInternalUserDesc=Bu form firmanız/derneğiniz içinde kullanıcı oluşturmanızı sağlar. Dış kullanıcı (müşteri, tedarikçi,...) oluşturmak için üçüncü parti kişi kartlarından 'Dolibarr Kullanıcısı Oluştur' düğmesini kullan. -InternalExternalDesc=Bir kullanıcı firmanızın/derneğinizin bir parçasıdır.
Birdış kullanıcı bir müşteri, tedarikçi veya bir başkasıdır.

Her iki durumda da, izinler Dolibarr’daki hakları tanımlar, aynı zamanda dış kullanıcı iç kullanıcıdan farklı bir menü yöeticisine sahiptir (Giriş - Ayarlar - Ekran'a bakın) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=İzin hak tanındı çünkü bir kullanıcının grubundan intikal etti. Inherited=İntikal eden UserWillBeInternalUser=Oluşturulacak kullanıcı bir iç kullanıcı olacaktır (çünkü belirli bir üçüncü parti ile bağlantılı değildir) diff --git a/htdocs/langs/tr_TR/website.lang b/htdocs/langs/tr_TR/website.lang index 3945e67cae5..bd5124c2000 100644 --- a/htdocs/langs/tr_TR/website.lang +++ b/htdocs/langs/tr_TR/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Bu websitesini silmek istediğinizden emin misiniz? Bütün WEBSITE_PAGENAME=Sayfa adı/rumuz WEBSITE_CSS_URL=Dış CSS dosyası URL si WEBSITE_CSS_INLINE=CSS içeriği +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Medya kütüphanesi EditCss=Stil/CSS düzenle EditMenu=Menü düzenle @@ -14,8 +15,9 @@ EditPageContent=İçerik Düzenle Website=Web sitesi Webpage=Web sayfası AddPage=Sayfa ekle +HomePage=Home Page PreviewOfSiteNotYetAvailable=Web sitenizin %s önizlemesi henüz hazır değil. Önce bir sayfa eklemelisiniz. -RequestedPageHasNoContentYet=İstenen %s kimlikli sayfa henüz içeriğe sahip değil veya önbellek dosyası .tpl.php silinmiş. Bunu çözümlemek için içeriği düzenleyin. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Silinen sayfa '%s', websitesi %s e ait PageAdded=Eklenen sayfa %s ViewSiteInNewTab=Siteyi yeni sekmede izle @@ -23,6 +25,7 @@ ViewPageInNewTab=Siteyi yeni sekmede izle SetAsHomePage=Giriş Sayfası olarak ayarla RealURL=Gerçek URL ViewWebsiteInProduction=Web sitesini giriş URL si kullanarak izle -SetHereVirtualHost=Eğer %s web sunucunuz üzerinde bir kök dizine sahip özel sanal host kurabiliyorsanız, burada sanal host adını tanımlayın, böylece; önizleme yalnızca Dolibarr URL sunucusuyla değil aynı zamanda doğrudan bu web sunucusu erişimi ile de yapılabilir. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/tr_TR/withdrawals.lang b/htdocs/langs/tr_TR/withdrawals.lang index 6086463c616..7e8204aa5a5 100644 --- a/htdocs/langs/tr_TR/withdrawals.lang +++ b/htdocs/langs/tr_TR/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Çekilecek tutar WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw="Para çekme" ödeme biçiminde bekleyen hiç müşteri faturasıyok. Fatura kartında 'Para çekme' sekmesine bir istek yapın. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Sorumlu kullanıcı WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Ret nedeni RefusedInvoicing=Rettin faturalandırılması NoInvoiceRefused=Reddi borç yazmayın InvoiceRefused=Fatura reddedildi (Reddedileni müşterinin hesabına yaz) +StatusDebitCredit=Status debit/credit StatusWaiting=Bekliyor StatusTrans=Gönderildi StatusCredited=Kredilendirilmiş diff --git a/htdocs/langs/tr_TR/workflow.lang b/htdocs/langs/tr_TR/workflow.lang index 05c6e76c1d5..4da18ad3533 100644 --- a/htdocs/langs/tr_TR/workflow.lang +++ b/htdocs/langs/tr_TR/workflow.lang @@ -10,6 +10,6 @@ descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Bir müşteri siparişi ödenmiş olar descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Müşteri faturası ödendi olarak ayarlandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Müşteri faturası doğrulandığında bağlantılı kaynak sipariş(ler)ini faturalandı olarak sınıflandır descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Müşteri faturası doğrulandığında bağlantılı teklif kaynağını faturalandı olarak sınıflandır -descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Bir gönderi doğrulandığında ve sevk edilen miktar siparişteki ile aynı ise bağlantılı kaynak siparişini sevk edilecek şekilde sınıflandır. +AutomaticCreation=Otomatik oluşturma +AutomaticClassification=Otomatik sınıflandırma diff --git a/htdocs/langs/uk_UA/accountancy.lang b/htdocs/langs/uk_UA/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/uk_UA/accountancy.lang +++ b/htdocs/langs/uk_UA/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/uk_UA/admin.lang b/htdocs/langs/uk_UA/admin.lang index 0e12f44d409..92e19112d8a 100644 --- a/htdocs/langs/uk_UA/admin.lang +++ b/htdocs/langs/uk_UA/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/uk_UA/agenda.lang b/htdocs/langs/uk_UA/agenda.lang index 8c45f2d0df0..e1ba9ad0ea5 100644 --- a/htdocs/langs/uk_UA/agenda.lang +++ b/htdocs/langs/uk_UA/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Події Agenda=Повістка дня +TMenuAgenda=Повістка дня Agendas=Повістки денні LocalAgenda=Внутрішній календар ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/uk_UA/banks.lang b/htdocs/langs/uk_UA/banks.lang index 28e01fa6583..8f59828e6be 100644 --- a/htdocs/langs/uk_UA/banks.lang +++ b/htdocs/langs/uk_UA/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Зачинено AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/uk_UA/bills.lang b/htdocs/langs/uk_UA/bills.lang index 99ca4c771c6..a9353cf1bc0 100644 --- a/htdocs/langs/uk_UA/bills.lang +++ b/htdocs/langs/uk_UA/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Стандартний рахунок-фактура InvoiceStandardAsk=Стандартний рахунок-фактура InvoiceStandardDesc=Такий вид рахунку є загальним. -InvoiceDeposit=Депозитна накладна -InvoiceDepositAsk=Депозитна накладна -InvoiceDepositDesc=Цей вид рахунку-фактури оформляється при отриманні внеску. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Рахунок проформа InvoiceProFormaAsk=Рахунок проформа InvoiceProFormaDesc=Рахунок проформа є образом оригінального рахунку, але не має бухгалтерського облікового запису. @@ -62,7 +62,7 @@ PaymentsBack=Повернення платежів paymentInInvoiceCurrency=in invoices currency PaidBack=Повернення платежу DeletePayment=Видалити платіж -ConfirmDeletePayment=Ви упевнені, що хочете видалити цей платіж? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Платежі Постачальникам ReceivedPayments=Отримані платежі @@ -115,7 +115,7 @@ BillStatus=Статус рахунку-фактури StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Проект (має бути підтверджений) BillStatusPaid=Сплачений -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Сплачений (готовий для завершального рахунка-фактури) BillStatusCanceled=Анулюваний BillStatusValidated=Підтверджений (необхідно сплатити) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Сплачений (частково) BillShortStatusDraft=Проект BillShortStatusPaid=Сплачений BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Оброблений +BillShortStatusConverted=Сплачений BillShortStatusCanceled=Анулюваний BillShortStatusValidated=Підтверджений BillShortStatusStarted=Розпочатий @@ -198,12 +198,12 @@ ShowBill=Показати рахунок-фактуру ShowInvoice=Показати рахунок-фактуру ShowInvoiceReplace=Показати замінюючий рахунок-фактуру ShowInvoiceAvoir=Показати кредитое авізо -ShowInvoiceDeposit=Показати рахунок-фактуру на внесок +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Показати платіж AlreadyPaid=Вже сплачений AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Вже сплачений (без кредитових авізо і внесків) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Анулюваний RemainderToPay=Залишити неоплаченим RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Відносна знижка GlobalDiscount=Глобальна знижка CreditNote=Кредитове авізо CreditNotes=Кредитове авізо -Deposit=Внесок -Deposits=Внески +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Знижка з кредитового авізо %s -DiscountFromDeposit=Платежі з депозитного рахунка-фактури %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Такий тип кредиту може бути використаний по рахунку-фактурі до його підтвердження CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/uk_UA/bookmarks.lang b/htdocs/langs/uk_UA/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/uk_UA/bookmarks.lang +++ b/htdocs/langs/uk_UA/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/uk_UA/boxes.lang b/htdocs/langs/uk_UA/boxes.lang index 5b5c8e68efa..e6b4e641f79 100644 --- a/htdocs/langs/uk_UA/boxes.lang +++ b/htdocs/langs/uk_UA/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Інформація RSS BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Замовлення клієнтів ForProposals=Пропозиції LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/uk_UA/cashdesk.lang b/htdocs/langs/uk_UA/cashdesk.lang index 69db60c0cc3..c6cb40c26df 100644 --- a/htdocs/langs/uk_UA/cashdesk.lang +++ b/htdocs/langs/uk_UA/cashdesk.lang @@ -24,8 +24,8 @@ Article=Article Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale -Change=Excess received -BankToPay=Charge Account +Change=Отриманий надлишок +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/uk_UA/categories.lang b/htdocs/langs/uk_UA/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/uk_UA/categories.lang +++ b/htdocs/langs/uk_UA/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/uk_UA/commercial.lang b/htdocs/langs/uk_UA/commercial.lang index 36b067c1453..10a67feb124 100644 --- a/htdocs/langs/uk_UA/commercial.lang +++ b/htdocs/langs/uk_UA/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/uk_UA/companies.lang b/htdocs/langs/uk_UA/companies.lang index 8d3285acd19..aef63229522 100644 --- a/htdocs/langs/uk_UA/companies.lang +++ b/htdocs/langs/uk_UA/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Пропозиції +OverAllOrders=Orders +OverAllInvoices=Рахунки-фактури +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Відносна знижка CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Зачинено ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/uk_UA/contracts.lang b/htdocs/langs/uk_UA/contracts.lang index 4f6df358b3f..c507685060d 100644 --- a/htdocs/langs/uk_UA/contracts.lang +++ b/htdocs/langs/uk_UA/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/uk_UA/exports.lang b/htdocs/langs/uk_UA/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/uk_UA/exports.lang +++ b/htdocs/langs/uk_UA/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/uk_UA/holiday.lang b/htdocs/langs/uk_UA/holiday.lang index 5c980824feb..8e0131d16d3 100644 --- a/htdocs/langs/uk_UA/holiday.lang +++ b/htdocs/langs/uk_UA/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/uk_UA/install.lang b/htdocs/langs/uk_UA/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/uk_UA/install.lang +++ b/htdocs/langs/uk_UA/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/uk_UA/interventions.lang b/htdocs/langs/uk_UA/interventions.lang index ee8d631e88d..c6bdc2e3cd3 100644 --- a/htdocs/langs/uk_UA/interventions.lang +++ b/htdocs/langs/uk_UA/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/uk_UA/languages.lang b/htdocs/langs/uk_UA/languages.lang index bda292261a1..d735280cb41 100644 --- a/htdocs/langs/uk_UA/languages.lang +++ b/htdocs/langs/uk_UA/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Німецький Language_de_AT=Німецька (Австрія) Language_de_CH=Німецька (Швейцарія) Language_el_GR=Грецький +Language_el_CY=Greek (Cyprus) Language_en_AU=Англійська (Австралія) Language_en_CA=Англійська (Канада) Language_en_GB=Англійська (Великобританія) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Іспанська (Чілі) Language_es_CO=Spanish (Colombia) Language_es_DO=Іспанська (Домініканська Республіка) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Іспанська (Гондурас) Language_es_MX=Іспанська (Мексика) +Language_es_PA=Spanish (Panama) Language_es_PY=Іспанська (Парагвай) Language_es_PE=Іспанська (Перу) Language_es_PR=Іспанська (Пуерто-Ріко) @@ -50,12 +53,14 @@ Language_is_IS=Ісландський Language_it_IT=Італійський Language_ja_JP=Японський Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Корейська Language_lo_LA=Lao Language_lt_LT=Литовський Language_lv_LV=Латвійська Language_mk_MK=Македонський +Language_mn_MN=Mongolian Language_nb_NO=Норвезька (букмол) Language_nl_BE=Голандська (Бельгія) Language_nl_NL=Голландська (Нідерланди) diff --git a/htdocs/langs/uk_UA/link.lang b/htdocs/langs/uk_UA/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/uk_UA/link.lang +++ b/htdocs/langs/uk_UA/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/uk_UA/loan.lang b/htdocs/langs/uk_UA/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/uk_UA/loan.lang +++ b/htdocs/langs/uk_UA/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/uk_UA/mails.lang b/htdocs/langs/uk_UA/mails.lang index ebcf609c27d..a4489c82ff9 100644 --- a/htdocs/langs/uk_UA/mails.lang +++ b/htdocs/langs/uk_UA/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Помилка MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Оповіщення NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/uk_UA/main.lang b/htdocs/langs/uk_UA/main.lang index daf29f55264..da3a60f39bd 100644 --- a/htdocs/langs/uk_UA/main.lang +++ b/htdocs/langs/uk_UA/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Застосувати BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/uk_UA/margins.lang b/htdocs/langs/uk_UA/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/uk_UA/margins.lang +++ b/htdocs/langs/uk_UA/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/uk_UA/members.lang b/htdocs/langs/uk_UA/members.lang index 3434d26e21b..98368e5b883 100644 --- a/htdocs/langs/uk_UA/members.lang +++ b/htdocs/langs/uk_UA/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/uk_UA/modulebuilder.lang b/htdocs/langs/uk_UA/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/uk_UA/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/uk_UA/oauth.lang b/htdocs/langs/uk_UA/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/uk_UA/oauth.lang +++ b/htdocs/langs/uk_UA/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/uk_UA/other.lang b/htdocs/langs/uk_UA/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/uk_UA/other.lang +++ b/htdocs/langs/uk_UA/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/uk_UA/paybox.lang b/htdocs/langs/uk_UA/paybox.lang index c0cb8e649f0..a651cc2b196 100644 --- a/htdocs/langs/uk_UA/paybox.lang +++ b/htdocs/langs/uk_UA/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Вчинити платіж YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/uk_UA/paypal.lang b/htdocs/langs/uk_UA/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/uk_UA/paypal.lang +++ b/htdocs/langs/uk_UA/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/uk_UA/printing.lang b/htdocs/langs/uk_UA/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/uk_UA/printing.lang +++ b/htdocs/langs/uk_UA/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/uk_UA/products.lang b/htdocs/langs/uk_UA/products.lang index 2b147be7dc2..1e66babf296 100644 --- a/htdocs/langs/uk_UA/products.lang +++ b/htdocs/langs/uk_UA/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/uk_UA/propal.lang b/htdocs/langs/uk_UA/propal.lang index e8cc8883df8..203612b53df 100644 --- a/htdocs/langs/uk_UA/propal.lang +++ b/htdocs/langs/uk_UA/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Проект (має бути підтверджений) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/uk_UA/resource.lang b/htdocs/langs/uk_UA/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/uk_UA/resource.lang +++ b/htdocs/langs/uk_UA/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/uk_UA/salaries.lang b/htdocs/langs/uk_UA/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/uk_UA/salaries.lang +++ b/htdocs/langs/uk_UA/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/uk_UA/sendings.lang b/htdocs/langs/uk_UA/sendings.lang index 1186138854c..73bd30e1252 100644 --- a/htdocs/langs/uk_UA/sendings.lang +++ b/htdocs/langs/uk_UA/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/uk_UA/stocks.lang b/htdocs/langs/uk_UA/stocks.lang index 3a2d8e92aca..1c15451988d 100644 --- a/htdocs/langs/uk_UA/stocks.lang +++ b/htdocs/langs/uk_UA/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Підтверджений +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/uk_UA/stripe.lang b/htdocs/langs/uk_UA/stripe.lang new file mode 100644 index 00000000000..0f83bcb64c4 --- /dev/null +++ b/htdocs/langs/uk_UA/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Next +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/uk_UA/supplier_proposal.lang b/htdocs/langs/uk_UA/supplier_proposal.lang index a947afa7233..9cfc192e0f0 100644 --- a/htdocs/langs/uk_UA/supplier_proposal.lang +++ b/htdocs/langs/uk_UA/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Проект (має бути підтверджений) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Зачинено SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/uk_UA/suppliers.lang b/htdocs/langs/uk_UA/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/uk_UA/suppliers.lang +++ b/htdocs/langs/uk_UA/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/uk_UA/trips.lang b/htdocs/langs/uk_UA/trips.lang index d775072e7a1..faa388ae4d5 100644 --- a/htdocs/langs/uk_UA/trips.lang +++ b/htdocs/langs/uk_UA/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Дата платежу - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/uk_UA/users.lang b/htdocs/langs/uk_UA/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/uk_UA/users.lang +++ b/htdocs/langs/uk_UA/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/uk_UA/website.lang b/htdocs/langs/uk_UA/website.lang index 6197580711f..b3b05ee6cc9 100644 --- a/htdocs/langs/uk_UA/website.lang +++ b/htdocs/langs/uk_UA/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/uk_UA/withdrawals.lang b/htdocs/langs/uk_UA/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/uk_UA/withdrawals.lang +++ b/htdocs/langs/uk_UA/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/uz_UZ/accountancy.lang b/htdocs/langs/uz_UZ/accountancy.lang index 31b54e83c5b..d239f259a94 100644 --- a/htdocs/langs/uz_UZ/accountancy.lang +++ b/htdocs/langs/uz_UZ/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Sales AccountingJournalType3=Purchases AccountingJournalType4=Bank +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/uz_UZ/admin.lang b/htdocs/langs/uz_UZ/admin.lang index 6851d698625..a443d04f35d 100644 --- a/htdocs/langs/uz_UZ/admin.lang +++ b/htdocs/langs/uz_UZ/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=Mantis Module1200Desc=Mantis integration Module1400Name=Accounting -Module1400Desc=Accounting management (double parties) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module to offer an online payment page by credit card with Paypal Module50400Name=Accounting (advanced) -Module50400Desc=Accounting management (double parties) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/uz_UZ/agenda.lang b/htdocs/langs/uz_UZ/agenda.lang index 494dd4edbfd..58d94a3672b 100644 --- a/htdocs/langs/uz_UZ/agenda.lang +++ b/htdocs/langs/uz_UZ/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=Events Agenda=Agenda +TMenuAgenda=Agenda Agendas=Agendas LocalAgenda=Internal calendar ActionsOwnedBy=Event owned by @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Invoice %s deleted InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Order %s validated @@ -73,13 +75,17 @@ InterventionSentByEMail=Intervention %s sent by EMail ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Start date DateActionEnd=End date AgendaUrlOptions1=You can also add following parameters to filter output: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/uz_UZ/banks.lang b/htdocs/langs/uz_UZ/banks.lang index f0c41d5d5bf..ba42f9a4c83 100644 --- a/htdocs/langs/uz_UZ/banks.lang +++ b/htdocs/langs/uz_UZ/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=Transaction ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=Reconcile Conciliation=Reconciliation ReconciliationLate=Reconciliation late IncludeClosedAccount=Include closed accounts -OnlyOpenedAccount=Only opened accounts +OnlyOpenedAccount=Only open accounts AccountToCredit=Account to credit AccountToDebit=Account to debit DisableConciliation=Disable reconciliation feature for this account ConciliationDisabled=Reconciliation feature disabled LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=Opened +StatusAccountOpened=Open StatusAccountClosed=Closed AccountIdShort=Number LineRecord=Transaction @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/uz_UZ/bills.lang b/htdocs/langs/uz_UZ/bills.lang index 5fb3b6169da..1e83ba9b2d1 100644 --- a/htdocs/langs/uz_UZ/bills.lang +++ b/htdocs/langs/uz_UZ/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=Standard invoice InvoiceStandardAsk=Standard invoice InvoiceStandardDesc=This kind of invoice is the common invoice. -InvoiceDeposit=Deposit invoice -InvoiceDepositAsk=Deposit invoice -InvoiceDepositDesc=This kind of invoice is done when a deposit has been received. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Proforma invoice InvoiceProFormaAsk=Proforma invoice InvoiceProFormaDesc=Proforma invoice is an image of a true invoice but has no accountancy value. @@ -62,7 +62,7 @@ PaymentsBack=Payments back paymentInInvoiceCurrency=in invoices currency PaidBack=Paid back DeletePayment=Delete payment -ConfirmDeletePayment=Are you sure you want to delete this payment ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Suppliers payments ReceivedPayments=Received payments @@ -115,7 +115,7 @@ BillStatus=Invoice status StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Draft (needs to be validated) BillStatusPaid=Paid -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Paid (ready for final invoice) BillStatusCanceled=Abandoned BillStatusValidated=Validated (needs to be paid) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Paid (partially) BillShortStatusDraft=Draft BillShortStatusPaid=Paid BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Processed +BillShortStatusConverted=Paid BillShortStatusCanceled=Abandoned BillShortStatusValidated=Validated BillShortStatusStarted=Started @@ -198,12 +198,12 @@ ShowBill=Show invoice ShowInvoice=Show invoice ShowInvoiceReplace=Show replacing invoice ShowInvoiceAvoir=Show credit note -ShowInvoiceDeposit=Show deposit invoice +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=Show payment AlreadyPaid=Already paid AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and deposits) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Abandoned RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=Relative discount GlobalDiscount=Global discount CreditNote=Credit note CreditNotes=Credit notes -Deposit=Deposit -Deposits=Deposits +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Discount from credit note %s -DiscountFromDeposit=Payments from deposit invoice %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=This kind of credit can be used on invoice before its validation CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Can't remove payment since there is at least ExpectedToPay=Expected payment CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Paid by this payment -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=All invoice with no remain to pay will be automatically closed to status "Paid". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Invoice PDF template Crabe. A complete invoice template (recommended Template) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Representative following-up customer invoice TypeContact_facture_external_BILLING=Customer invoice contact diff --git a/htdocs/langs/uz_UZ/bookmarks.lang b/htdocs/langs/uz_UZ/bookmarks.lang index e529130e1bc..9d2003f34d3 100644 --- a/htdocs/langs/uz_UZ/bookmarks.lang +++ b/htdocs/langs/uz_UZ/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Add this page to bookmarks +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Bookmarks +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=New bookmark ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/uz_UZ/boxes.lang b/htdocs/langs/uz_UZ/boxes.lang index 38b03b4268d..ad06a419da8 100644 --- a/htdocs/langs/uz_UZ/boxes.lang +++ b/htdocs/langs/uz_UZ/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Rss information BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=Proposals LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/uz_UZ/cashdesk.lang b/htdocs/langs/uz_UZ/cashdesk.lang index 69db60c0cc3..1f51f375e89 100644 --- a/htdocs/langs/uz_UZ/cashdesk.lang +++ b/htdocs/langs/uz_UZ/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Difference TotalTicket=Total ticket NoVAT=No VAT for this sale Change=Excess received -BankToPay=Charge Account +BankToPay=Account for payment ShowCompany=Show company ShowStock=Show warehouse DeleteArticle=Click to remove this article diff --git a/htdocs/langs/uz_UZ/categories.lang b/htdocs/langs/uz_UZ/categories.lang index 1615697ed9d..41e5f4e4c13 100644 --- a/htdocs/langs/uz_UZ/categories.lang +++ b/htdocs/langs/uz_UZ/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=In @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=This category already exists with this ref ContentsVisibleByAllShort=Contents visible by all ContentsNotVisibleByAllShort=Contents not visible by all DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category diff --git a/htdocs/langs/uz_UZ/commercial.lang b/htdocs/langs/uz_UZ/commercial.lang index 16a6611db4a..deb66143b82 100644 --- a/htdocs/langs/uz_UZ/commercial.lang +++ b/htdocs/langs/uz_UZ/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Meeting with %s ShowTask=Show task ShowAction=Show event ActionsReport=Events report -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Sales representative SalesRepresentatives=Sales representatives SalesRepresentativeFollowUp=Sales representative (follow-up) diff --git a/htdocs/langs/uz_UZ/companies.lang b/htdocs/langs/uz_UZ/companies.lang index 1b7efa3c14e..bd7d7983191 100644 --- a/htdocs/langs/uz_UZ/companies.lang +++ b/htdocs/langs/uz_UZ/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=New private individual NewCompany=New company (prospect, customer, supplier) NewThirdParty=New third party (prospect, customer, supplier) CreateDolibarrThirdPartySupplier=Create a third party (supplier) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Create third party CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Prospection area IdThirdParty=Id third party @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Customers ThirdPartyCustomersWithIdProf12=Customers with %s or %s ThirdPartySuppliers=Suppliers ThirdPartyType=Third party type -Company/Fundation=Company/Foundation Individual=Private individual ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Parent company @@ -78,10 +77,10 @@ VATIsNotUsed=VAT is not used CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Proposals +OverAllOrders=Orders +OverAllInvoices=Invoices +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE is used @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Relative discount CustomerAbsoluteDiscountShort=Absolute discount CompanyHasRelativeDiscount=This customer has a default discount of %s%% CompanyHasNoRelativeDiscount=This customer has no relative discount by default -CompanyHasAbsoluteDiscount=This customer still has discount credits or deposits for %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=This customer still has credit notes for %s %s CompanyHasNoAbsoluteDiscount=This customer has no discount credit available CustomerAbsoluteDiscountAllUsers=Absolute discounts (granted by all users) @@ -390,7 +395,7 @@ ListCustomersShort=List of customers ThirdPartiesArea=Third parties and contact area LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Total of unique third parties -InActivity=Opened +InActivity=Open ActivityCeased=Closed ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=The code is free. This code can be modified at any time. ManagingDirectors=Manager(s) name (CEO, director, president...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/uz_UZ/contracts.lang b/htdocs/langs/uz_UZ/contracts.lang index 880f00a9331..f742ca4cecd 100644 --- a/htdocs/langs/uz_UZ/contracts.lang +++ b/htdocs/langs/uz_UZ/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Sales representative signing contract diff --git a/htdocs/langs/uz_UZ/exports.lang b/htdocs/langs/uz_UZ/exports.lang index 770f96bb671..148f40b56f0 100644 --- a/htdocs/langs/uz_UZ/exports.lang +++ b/htdocs/langs/uz_UZ/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/uz_UZ/holiday.lang b/htdocs/langs/uz_UZ/holiday.lang index 50d97c0d8cc..462515ca9a2 100644 --- a/htdocs/langs/uz_UZ/holiday.lang +++ b/htdocs/langs/uz_UZ/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Canceled RefuseCP=Refused ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=Description SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/uz_UZ/install.lang b/htdocs/langs/uz_UZ/install.lang index 2659f506094..a3533a31277 100644 --- a/htdocs/langs/uz_UZ/install.lang +++ b/htdocs/langs/uz_UZ/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=You use the Dolibarr setup wizard from DoliWamp, so values KeepDefaultValuesDeb=You use the Dolibarr setup wizard from a Linux package (Ubuntu, Debian, Fedora...), so values proposed here are already optimized. Only the password of the database owner to create must be completed. Change other parameters only if you know what you do. KeepDefaultValuesMamp=You use the Dolibarr setup wizard from DoliMamp, so values proposed here are already optimized. Change them only if you know what you do. KeepDefaultValuesProxmox=You use the Dolibarr setup wizard from a Proxmox virtual appliance, so values proposed here are already optimized. Change them only if you know what you do. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/uz_UZ/interventions.lang b/htdocs/langs/uz_UZ/interventions.lang index 0de0d487925..9863471448b 100644 --- a/htdocs/langs/uz_UZ/interventions.lang +++ b/htdocs/langs/uz_UZ/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Following-up customer contact # Modele numérotation diff --git a/htdocs/langs/uz_UZ/languages.lang b/htdocs/langs/uz_UZ/languages.lang index 884f9048666..0ba12c6062a 100644 --- a/htdocs/langs/uz_UZ/languages.lang +++ b/htdocs/langs/uz_UZ/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=German Language_de_AT=German (Austria) Language_de_CH=German (Switzerland) Language_el_GR=Greek +Language_el_CY=Greek (Cyprus) Language_en_AU=English (Australia) Language_en_CA=English (Canada) Language_en_GB=English (United Kingdom) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Spanish (Honduras) Language_es_MX=Spanish (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Spanish (Paraguay) Language_es_PE=Spanish (Peru) Language_es_PR=Spanish (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Icelandic Language_it_IT=Italian Language_ja_JP=Japanese Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Korean Language_lo_LA=Lao Language_lt_LT=Lithuanian Language_lv_LV=Latvian Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Norwegian (Bokmål) Language_nl_BE=Dutch (Belgium) Language_nl_NL=Dutch (Netherlands) diff --git a/htdocs/langs/uz_UZ/link.lang b/htdocs/langs/uz_UZ/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/uz_UZ/link.lang +++ b/htdocs/langs/uz_UZ/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/uz_UZ/loan.lang b/htdocs/langs/uz_UZ/loan.lang index de0a6fd0295..d00b11738be 100644 --- a/htdocs/langs/uz_UZ/loan.lang +++ b/htdocs/langs/uz_UZ/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/uz_UZ/mails.lang b/htdocs/langs/uz_UZ/mails.lang index c830b551a67..65908fe81f1 100644 --- a/htdocs/langs/uz_UZ/mails.lang +++ b/htdocs/langs/uz_UZ/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Sent partialy MailingStatusSentCompletely=Sent completely MailingStatusError=Error MailingStatusNotSent=Not sent -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Line %s in file @@ -116,8 +120,8 @@ Notifications=Notifications NoNotificationsWillBeSent=No email notifications are planned for this event and company ANotificationsWillBeSent=1 notification will be sent by email SomeNotificationsWillBeSent=%s notifications will be sent by email -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=List all email notifications sent MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/uz_UZ/main.lang b/htdocs/langs/uz_UZ/main.lang index 788a10d92f0..16b9968bd32 100644 --- a/htdocs/langs/uz_UZ/main.lang +++ b/htdocs/langs/uz_UZ/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=Default background color FileRenamed=The file was successfully renamed -FileUploaded=The file was successfully uploaded FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=The file was successfully uploaded +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Net of tax TTC=Inc. tax +INCT=Inc. all taxes VAT=Sales tax VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Oct MonthShort11=Nov MonthShort12=Dec AttachedFiles=Attached files and documents -FileTransferComplete=File was uploaded successfuly DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/uz_UZ/margins.lang b/htdocs/langs/uz_UZ/margins.lang index 64e1a87864d..8633d910657 100644 --- a/htdocs/langs/uz_UZ/margins.lang +++ b/htdocs/langs/uz_UZ/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/uz_UZ/members.lang b/htdocs/langs/uz_UZ/members.lang index 8f6f76ba48f..ac6f460cf14 100644 --- a/htdocs/langs/uz_UZ/members.lang +++ b/htdocs/langs/uz_UZ/members.lang @@ -90,6 +90,7 @@ PublicMemberList=Public member list BlankSubscriptionForm=Public auto-subscription form BlankSubscriptionFormDesc=Dolibarr can provide you a public URL to allow external visitors to ask to subscribe to the foundation. If an online payment module is enabled, a payment form will also be automatically provided. EnablePublicSubscriptionForm=Enable the public auto-subscription form +ForceMemberType=Force the member type ExportDataset_member_1=Members and subscriptions ImportDataset_member_1=Members LastMembersModified=Latest %s modified members @@ -150,6 +151,7 @@ MembersByTownDesc=This screen show you statistics on members by town. MembersStatisticsDesc=Choose statistics you want to read... MenuMembersStats=Statistics LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Nature Public=Information are public NewMemberbyWeb=New member added. Awaiting approval diff --git a/htdocs/langs/uz_UZ/other.lang b/htdocs/langs/uz_UZ/other.lang index b151614ce3c..e15d490c0f2 100644 --- a/htdocs/langs/uz_UZ/other.lang +++ b/htdocs/langs/uz_UZ/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=pound +WeightUnitounce=ounce Length=Length LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/uz_UZ/paybox.lang b/htdocs/langs/uz_UZ/paybox.lang index c0cb8e649f0..3a94e78f3d8 100644 --- a/htdocs/langs/uz_UZ/paybox.lang +++ b/htdocs/langs/uz_UZ/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Do payment YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Next ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/uz_UZ/paypal.lang b/htdocs/langs/uz_UZ/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/uz_UZ/paypal.lang +++ b/htdocs/langs/uz_UZ/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/uz_UZ/printing.lang b/htdocs/langs/uz_UZ/printing.lang index d6cf49bd525..a357409289a 100644 --- a/htdocs/langs/uz_UZ/printing.lang +++ b/htdocs/langs/uz_UZ/printing.lang @@ -46,6 +46,6 @@ IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/uz_UZ/products.lang b/htdocs/langs/uz_UZ/products.lang index 3a412a5789c..4df17ba8da1 100644 --- a/htdocs/langs/uz_UZ/products.lang +++ b/htdocs/langs/uz_UZ/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Accountancy code (sale) ProductOrService=Product or Service ProductsAndServices=Products and Services ProductsOrServices=Products or Services -ProductsOnSell=Product for sale or for purchase -ProductsNotOnSell=Product not for sale and not for purchase +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=Services for sale or for purchase -ServicesNotOnSell=Services not for sale +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=Latest %s modified products/services LastRecordedProducts=Latest %s recorded products @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Second +unitH=Hour +unitD=Day +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/uz_UZ/propal.lang b/htdocs/langs/uz_UZ/propal.lang index a14d25ce779..3fdb379c5a2 100644 --- a/htdocs/langs/uz_UZ/propal.lang +++ b/htdocs/langs/uz_UZ/propal.lang @@ -3,7 +3,7 @@ Proposals=Commercial proposals Proposal=Commercial proposal ProposalShort=Proposal ProposalsDraft=Draft commercial proposals -ProposalsOpened=Opened commercial proposals +ProposalsOpened=Open commercial proposals Prop=Commercial proposals CommercialProposal=Commercial proposal ProposalCard=Proposal card @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Amount by month (net of tax) NbOfProposals=Number of commercial proposals ShowPropal=Show proposal PropalsDraft=Drafts -PropalsOpened=Opened +PropalsOpened=Open PropalStatusDraft=Draft (needs to be validated) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Signed (needs billing) diff --git a/htdocs/langs/uz_UZ/resource.lang b/htdocs/langs/uz_UZ/resource.lang index f95121db351..5a907f6ba23 100644 --- a/htdocs/langs/uz_UZ/resource.lang +++ b/htdocs/langs/uz_UZ/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Resources diff --git a/htdocs/langs/uz_UZ/salaries.lang b/htdocs/langs/uz_UZ/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/uz_UZ/salaries.lang +++ b/htdocs/langs/uz_UZ/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/uz_UZ/sendings.lang b/htdocs/langs/uz_UZ/sendings.lang index 9dcbe02e0bf..f52e533c655 100644 --- a/htdocs/langs/uz_UZ/sendings.lang +++ b/htdocs/langs/uz_UZ/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Simple document model DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=Warning, no products waiting to be shipped. StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=Events on shipment LinkToTrackYourPackage=Link to track your package ShipmentCreationIsDoneFromOrder=For the moment, creation of a new shipment is done from the order card. ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/uz_UZ/stocks.lang b/htdocs/langs/uz_UZ/stocks.lang index 1db49b8d8dd..79c5b306941 100644 --- a/htdocs/langs/uz_UZ/stocks.lang +++ b/htdocs/langs/uz_UZ/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=Number of units UnitPurchaseValue=Unit purchase price StockTooLow=Stock too low -StockLowerThanLimit=Stock lower than alert limit +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Value PMPValue=Weighted average price PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Quantity dispatched QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Stock dispatching +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Decrease real stocks on customers invoices/credit notes validation @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Increase real stocks on suppliers invoices/credit notes validation ReStockOnValidateOrder=Increase real stocks on suppliers orders approbation -ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receiving +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Order has not yet or no more a status that allows dispatching of products in stock warehouses. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=No predefined products for this object. So no dispatching in stock is required. DispatchVerb=Dispatch StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=Physical stock RealStock=Real Stock +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Virtual stock +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Id warehouse DescWareHouse=Description warehouse LieuWareHouse=Localisation warehouse @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=Validated +inventoryDraft=Running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Category filter +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=List diff --git a/htdocs/langs/uz_UZ/suppliers.lang b/htdocs/langs/uz_UZ/suppliers.lang index b890919ace5..28c5fe39d0d 100644 --- a/htdocs/langs/uz_UZ/suppliers.lang +++ b/htdocs/langs/uz_UZ/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Supplier prices ReferenceSupplierIsAlreadyAssociatedWithAProduct=This reference supplier is already associated with a reference: %s NoRecordedSuppliers=No suppliers recorded SupplierPayment=Supplier payment @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Supplier prices diff --git a/htdocs/langs/uz_UZ/trips.lang b/htdocs/langs/uz_UZ/trips.lang index fbb709af77e..a63bb66c164 100644 --- a/htdocs/langs/uz_UZ/trips.lang +++ b/htdocs/langs/uz_UZ/trips.lang @@ -12,7 +12,7 @@ ListOfFees=List of fees TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Company/foundation visited +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Amount or kilometers DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/uz_UZ/users.lang b/htdocs/langs/uz_UZ/users.lang index a0a1eae8697..af37668176c 100644 --- a/htdocs/langs/uz_UZ/users.lang +++ b/htdocs/langs/uz_UZ/users.lang @@ -66,8 +66,8 @@ InternalUser=Internal user ExportDataset_user_1=Dolibarr's users and properties DomainUser=Domain user %s Reactivate=Reactivate -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=An internal user is a user that is part of your company/foundation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Permission granted because inherited from one of a user's group. Inherited=Inherited UserWillBeInternalUser=Created user will be an internal user (because not linked to a particular third party) diff --git a/htdocs/langs/uz_UZ/withdrawals.lang b/htdocs/langs/uz_UZ/withdrawals.lang index a99d890e5f9..d451dd3fd49 100644 --- a/htdocs/langs/uz_UZ/withdrawals.lang +++ b/htdocs/langs/uz_UZ/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Amount to withdraw WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=No customer invoice in payment mode "withdraw" is waiting. Go on 'Withdraw' tab on invoice card to make a request. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Responsible user WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Reason for rejection RefusedInvoicing=Billing the rejection NoInvoiceRefused=Do not charge the rejection InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=Waiting StatusTrans=Sent StatusCredited=Credited diff --git a/htdocs/langs/vi_VN/accountancy.lang b/htdocs/langs/vi_VN/accountancy.lang index d0a0c29f2ed..45e801c5fda 100644 --- a/htdocs/langs/vi_VN/accountancy.lang +++ b/htdocs/langs/vi_VN/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Thêm một tài khoản kế toán AccountAccounting=Tài khoản kế toán AccountAccountingShort=Tài khoản SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=Bán AccountingJournalType3=Mua AccountingJournalType4=Ngân hàng +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Xuất khẩu Export=Xuất dữ liệu +ExportDraftJournal=Export draft journal Modelcsv=Mô hình xuất khẩu OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Chọn một mô hình xuất khẩu diff --git a/htdocs/langs/vi_VN/admin.lang b/htdocs/langs/vi_VN/admin.lang index b07d3372ad3..0df2bc9c284 100644 --- a/htdocs/langs/vi_VN/admin.lang +++ b/htdocs/langs/vi_VN/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Yêu cầu giá và đơn hàng đề xuất nhà cung cấp Module1200Name=Mantis Module1200Desc=Tích hợp Mantis Module1400Name=Kế toán -Module1400Desc=Quản trị kế toán (đôi bên) +Module1400Desc=Accounting management (double entries) Module1520Name=Xuất chứng từ Module1520Desc=Xuất chứng từ Mass mail Module1780Name=Gán thẻ/phân nhóm @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=Paypal Module50200Desc=Module để cung cấp một trang thanh toán trực tuyến bằng thẻ tín dụng với Paypal Module50400Name=Kế toán (nâng cao) -Module50400Desc=Quản trị kế toán (đôi bên) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/vi_VN/agenda.lang b/htdocs/langs/vi_VN/agenda.lang index 5cf2dfa63a0..3ff938d6b1b 100644 --- a/htdocs/langs/vi_VN/agenda.lang +++ b/htdocs/langs/vi_VN/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID sự kiện Actions=Sự kiện Agenda=Lịch làm việc +TMenuAgenda=Chương trình nghị sự Agendas=Lịch làm việc LocalAgenda=Lịch nội bộ ActionsOwnedBy=Tổ chức sự kiện thuộc sở hữu của @@ -11,21 +12,21 @@ Event=Sự kiện Events=Sự kiện EventsNb=Số sự kiện ListOfActions=Danh sách các sự kiện -Location=Đến từ +Location=Địa phương ToUserOfGroup=To any user in group -EventOnFullDay=Sự kiện trên tất cả các ngày (s) -MenuToDoActions=Tất cả các sự kiện không đầy đủ -MenuDoneActions=Tất cả các sự kiện kết thúc -MenuToDoMyActions=Sự kiện không đầy đủ của tôi -MenuDoneMyActions=Sự kiện chấm dứt của tôi -ListOfEvents=Danh sách các sự kiện (lịch nội bộ) -ActionsAskedBy=Sự kiện báo cáo của +EventOnFullDay=Tất cả sự kiện +MenuToDoActions=Tất cả sự kiện chưa xong +MenuDoneActions=Tất cả sự kiện đã chấm dứt +MenuToDoMyActions=Sự kiện chưa xong của tôi +MenuDoneMyActions=Sự kiện đã chấm dứt của tôi +ListOfEvents=Danh sách sự kiện (lịch nội bộ) +ActionsAskedBy=Sự kiện báo cáo bởi ActionsToDoBy=Sự kiện được giao ActionsDoneBy=Sự kiện được thực hiện bởi ActionAssignedTo=Sự kiện được giao cho ViewCal=Xem tháng -ViewDay=Ngày xem -ViewWeek=Xem theo tuần +ViewDay=Xem ngày +ViewWeek=Xem tuần ViewPerUser=Trung bình mỗi người dùng xem ViewPerType=Per type view AutoActions= Tự động điền @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=Hoá đơn %s bị xóa InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=Thứ tự %s xác nhận @@ -73,13 +75,17 @@ InterventionSentByEMail=Can thiệp %s gửi thư điện tử ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=Ngày bắt đầu DateActionEnd=Ngày kết thúc AgendaUrlOptions1=Bạn cũng có thể thêm các thông số sau đây để lọc đầu ra: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=Logina =%s ​​để hạn chế sản lượng để hành động thuộc sở hữu của một người dùng %s. -AgendaUrlOptions4=logint =%s ​​để hạn chế sản lượng để hành động được gán cho người dùng %s. +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=dự án = PROJECT_ID để hạn chế sản lượng để hành động liên quan đến dự án PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/vi_VN/banks.lang b/htdocs/langs/vi_VN/banks.lang index 176e9893b0e..d37efc853ea 100644 --- a/htdocs/langs/vi_VN/banks.lang +++ b/htdocs/langs/vi_VN/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Bạn có muốn xóa liên kết giữa kê khai và ListBankTransactions=Danh sách mục ngân hàng IdTransaction=Mã số giao dịch BankTransactions=Mục ngân hàng +BankTransaction=Kê khai ngân hàng ListTransactions=Danh sách kê khai ListTransactionsByCategory=Liệt kê mục/nhóm TransactionsToConciliate=Mục cần đối chiếu @@ -74,13 +75,13 @@ Conciliate=Đối chiếu Conciliation=Đối chiếu ReconciliationLate=Đối chiếu sau IncludeClosedAccount=Bao gồm các tài khoản đã đóng -OnlyOpenedAccount=Chỉ có tài khoản mở +OnlyOpenedAccount=Chỉ tài khoản đang mở AccountToCredit=Tài khoản tín dụng AccountToDebit=Tài khoản ghi nợ DisableConciliation=Vô hiệu hoá tính đối chiếu cho tài khoản này ConciliationDisabled=Tính năng đối chiếu bị vô hiệu hóa LinkedToAConciliatedTransaction=Liên kết đến một mục được giải trình -StatusAccountOpened=Đã mở +StatusAccountOpened=Mở StatusAccountClosed=Đóng AccountIdShort=Số LineRecord=Giao dịch @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Séc bị trả lại và hóa đơn bị mở BankAccountModelModule=Mẫu tài liệu dàng cho tài khoản ngân hàng DocumentModelSepaMandate=Mẫu lệnh SEPA. Chỉ dùng cho các nước trong khối EEC DocumentModelBan=Mẫu để in 1 trang với thông tin BAN +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/vi_VN/bills.lang b/htdocs/langs/vi_VN/bills.lang index bc384fcae1a..c88dc3f0ba0 100644 --- a/htdocs/langs/vi_VN/bills.lang +++ b/htdocs/langs/vi_VN/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Vô hiệu hóa vì không thể bị xóa InvoiceStandard=Hóa đơn chuẩn InvoiceStandardAsk=Hóa đơn chuẩn InvoiceStandardDesc=Đây là loại hóa đơn là hóa đơn thông thường. -InvoiceDeposit=Hóa đơn ứng trước -InvoiceDepositAsk=Hóa đơn ứng trước -InvoiceDepositDesc=Đây là loại hoá đơn được thực hiện khi một khoản tiền ứng trước đã được nhận. +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=Hóa đơn hình thức InvoiceProFormaAsk=Hóa đơn hình thức InvoiceProFormaDesc=Hóa đơn hình thức là một hình ảnh của một hóa đơn thực, nhưng không có giá trị kế toán. @@ -62,7 +62,7 @@ PaymentsBack=Thanh toán lại paymentInInvoiceCurrency=in invoices currency PaidBack=Đã trả lại DeletePayment=Xóa thanh toán -ConfirmDeletePayment=Bạn có chắc muốn xóa thanh toán này ? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=Nhà cung cấp thanh toán ReceivedPayments=Đã nhận thanh toán @@ -115,7 +115,7 @@ BillStatus=Trạng thái hóa đơn StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=Dự thảo (cần được xác nhận) BillStatusPaid=Đã trả -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=Đã trả (sẵn sàng cho hóa đơn cuối cùng) BillStatusCanceled=Đã loại bỏ BillStatusValidated=Đã xác nhận (cần được thanh toán) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=Đã trả (một phần) BillShortStatusDraft=Dự thảo BillShortStatusPaid=Đã trả BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=Đã xử lý +BillShortStatusConverted=Đã trả BillShortStatusCanceled=Đã loại bỏ BillShortStatusValidated=Đã xác nhận BillShortStatusStarted=Đã bắt đầu @@ -198,12 +198,12 @@ ShowBill=Hiện thị hóa đơn ShowInvoice=Hiển thị hóa đơn ShowInvoiceReplace=Hiển thị hóa đơn thay thế ShowInvoiceAvoir=Xem giấy báo có -ShowInvoiceDeposit=Hiển thị hóa đơn ứng trước +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Xem hóa đơn tình huống ShowPayment=Hiển thị thanh toán AlreadyPaid=Đã trả AlreadyPaidBack=Đã trả lại -AlreadyPaidNoCreditNotesNoDeposits=Đã trả (không có giấy báo có hoặc ứng trước) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=Đã loại bỏ RemainderToPay=Chưa trả còn lại RemainderToTake=Số tiền còn lại để lấy @@ -270,10 +270,10 @@ RelativeDiscount=Giảm theo % GlobalDiscount=Giảm giá toàn cục CreditNote=Giấy báo có CreditNotes=Giấy báo có -Deposit=Ứng trước -Deposits=Ứng trước +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=Giảm giá từ giấy báo có %s -DiscountFromDeposit=Thanh toán từ hóa đơn ứng trước %s +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=Đây là loại giấy báo có được sử dụng trên hóa đơn trước khi xác nhận CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=Không thể xóa bỏ thanh toán khi có ExpectedToPay=Thanh toán dự kiến CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=Đã trả bởi khoản thanh toán này -ClosePaidInvoicesAutomatically=Phân loại "Đã trả" tất cả các hóa đơn chuẩn, hóa đơn tình huống hoặc hóa đơn thay thế đã trả đủ. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Phân loại các "Đã trả" tất cả các giấy báo có đã trả đủ trở lại. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=Tất cả hóa đơn chưa trả sẽ được tự động đóng sang trạng thái "Đã trả". @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=Hóa đơn mẫu PDF Crabe. Một mẫu hóa đơn đầy đủ (mẫu đề nghị) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Quay về số với định dạng %ssyymm-nnnn cho hóa đơn chuẩn và %syymm-nnnn cho các giấy báo có nơi mà yy là năm, mm là tháng và nnnn là một chuỗi ngắt và không trở về 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=Bắt đầu ra một hóa đơn với $syymm mà đã tồn tại thì không tương thích với mô hình này của chuỗi. Xóa bỏ nó hoặc đổi tên nó để kích hoạt module này. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=Đại diện theo dõi hóa đơn khách hàng TypeContact_facture_external_BILLING=Liên lạc hóa đơn khách hàng diff --git a/htdocs/langs/vi_VN/bookmarks.lang b/htdocs/langs/vi_VN/bookmarks.lang index 8292a6fb3b4..2a98f2d86e3 100644 --- a/htdocs/langs/vi_VN/bookmarks.lang +++ b/htdocs/langs/vi_VN/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=Thêm trang này vào bookmark +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=Đánh dấu +ListOfBookmarks=Danh sách bookmark +EditBookmarks=List/edit bookmarks NewBookmark=Bookmark mới ShowBookmark=Hiện dấu OpenANewWindow=Mở cửa sổ mới @@ -10,9 +12,9 @@ BookmarkTargetNewWindowShort=Cửa sổ mới BookmarkTargetReplaceWindowShort=Cửa sổ hiện tại BookmarkTitle=Bookmark tiêu đề UrlOrLink=URL -BehaviourOnClick=Hành vi khi một URL được nhấp -CreateBookmark=Tạo dấu +BehaviourOnClick=Behaviour when a bookmark URL is selected +CreateBookmark=Tạo đánh dấu SetHereATitleForLink=Đặt tên cho bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Sử dụng một URL http bên ngoài hoặc một URL tương đối Dolibarr -ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Choose if linked page must open in new window or not +ChooseIfANewWindowMustBeOpenedOnClickOnBookmark=Chọn liên kết sẽ mở trong cửa sổ mới hay không BookmarksManagement=Quản lý bookmark diff --git a/htdocs/langs/vi_VN/boxes.lang b/htdocs/langs/vi_VN/boxes.lang index 8ec73578f8a..40250722b57 100644 --- a/htdocs/langs/vi_VN/boxes.lang +++ b/htdocs/langs/vi_VN/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=Thông tin Rss BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Khách hàng đặt hàng ForProposals=Đề xuất LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/vi_VN/cashdesk.lang b/htdocs/langs/vi_VN/cashdesk.lang index 4683fa238da..67cacc8fc12 100644 --- a/htdocs/langs/vi_VN/cashdesk.lang +++ b/htdocs/langs/vi_VN/cashdesk.lang @@ -25,7 +25,7 @@ Difference=Sự khác biệt TotalTicket=Tổng số vé NoVAT=Không có thuế GTGT đối với bán này Change=Dư thừa đã nhận -BankToPay=Tài khoản phí +BankToPay=Account for payment ShowCompany=Hiện công ty ShowStock=Hiện kho DeleteArticle=Nhấn vào đây để gỡ bỏ bài viết này diff --git a/htdocs/langs/vi_VN/categories.lang b/htdocs/langs/vi_VN/categories.lang index 26052d82eb3..0522aa19055 100644 --- a/htdocs/langs/vi_VN/categories.lang +++ b/htdocs/langs/vi_VN/categories.lang @@ -1,33 +1,34 @@ # Dolibarr language file - Source file is en_US - categories -Rubrique=Tag/Category -Rubriques=Tags/Categories -categories=tags/categories -NoCategoryYet=No tag/category of this type created +Rubrique=Thẻ/ Danh mục +Rubriques=Thẻ/ Danh mục +RubriquesTransactions=Tags/Categories of transactions +categories=thẻ/danh mục +NoCategoryYet=Chưa tạo thẻ/ danh mục của loại này In=Trong AddIn=Thêm vào modify=sửa đổi Classify=Phân loại -CategoriesArea=Tags/Categories area -ProductsCategoriesArea=Products/Services tags/categories area -SuppliersCategoriesArea=Suppliers tags/categories area -CustomersCategoriesArea=Customers tags/categories area -MembersCategoriesArea=Members tags/categories area +CategoriesArea=Khu vực thẻ/danh mục +ProductsCategoriesArea=Khu vực thẻ/danh mục cho sản phẩm/dịch vụ +SuppliersCategoriesArea=Khu vực thẻ thẻ/danh mục nhà cung cấp +CustomersCategoriesArea=Khu vực thẻ/danh mục khách hàng +MembersCategoriesArea=Khu vực thẻ/danh mục thành viên ContactsCategoriesArea=Contacts tags/categories area AccountsCategoriesArea=Accounts tags/categories area -ProjectsCategoriesArea=Projects tags/categories area -SubCats=Tiểu thể loại -CatList=List of tags/categories -NewCategory=New tag/category -ModifCat=Modify tag/category -CatCreated=Tag/category created -CreateCat=Create tag/category -CreateThisCat=Create this tag/category -NoSubCat=Không có tiểu thể loại. +ProjectsCategoriesArea=Khu vực thẻ/danh mục dự án +SubCats=Danh mục con +CatList=Danh sách thẻ/danh mục +NewCategory=Thẻ/danh mục mới +ModifCat=Sửa thẻ/ danh mục +CatCreated=Thẻ/danh mục đã tạo +CreateCat=Tạo thẻ/danh mục +CreateThisCat=Tạo thẻ/danh mục này +NoSubCat=Không có danh mục con SubCatOf=Danh mục con -FoundCats=Found tags/categories -ImpossibleAddCat=Impossible to add the tag/category %s +FoundCats=Các thẻ/danh mục được tìm thấy +ImpossibleAddCat=Không thể thêm thẻ/danh mục %s WasAddedSuccessfully=%s đã được thêm thành công. -ObjectAlreadyLinkedToCategory=Element is already linked to this tag/category. +ObjectAlreadyLinkedToCategory=Thành phần đã được liên kết với thẻ/danh mục này ProductIsInCategories=Product/service is linked to following tags/categories CompanyIsInCustomersCategories=This third party is linked to following customers/prospects tags/categories CompanyIsInSuppliersCategories=This third party is linked to following suppliers tags/categories @@ -37,14 +38,14 @@ ProductHasNoCategory=This product/service is not in any tags/categories CompanyHasNoCategory=This third party is not in any tags/categories MemberHasNoCategory=This member is not in any tags/categories ContactHasNoCategory=This contact is not in any tags/categories -ProjectHasNoCategory=This project is not in any tags/categories +ProjectHasNoCategory=Dự án này không có trong bất kỳ thẻ/ danh mục nào ClassifyInCategory=Add to tag/category NotCategorized=Without tag/category CategoryExistsAtSameLevel=Thể loại này đã tồn tại với ref này ContentsVisibleByAllShort=Nội dung có thể nhìn thấy tất cả ContentsNotVisibleByAllShort=Nội dung không thể nhìn thấy bởi tất cả DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -58,7 +59,7 @@ ProductsCategoriesShort=Products tags/categories MembersCategoriesShort=Members tags/categories ContactCategoriesShort=Contacts tags/categories AccountsCategoriesShort=Accounts tags/categories -ProjectsCategoriesShort=Projects tags/categories +ProjectsCategoriesShort=Thẻ/danh mục dự án ThisCategoryHasNoProduct=Thể loại này không chứa bất kỳ sản phẩm. ThisCategoryHasNoSupplier=Thể loại này không chứa bất kỳ nhà cung cấp. ThisCategoryHasNoCustomer=Thể loại này không chứa bất kỳ khách hàng. diff --git a/htdocs/langs/vi_VN/commercial.lang b/htdocs/langs/vi_VN/commercial.lang index 2bdd7d1b250..4695262cf53 100644 --- a/htdocs/langs/vi_VN/commercial.lang +++ b/htdocs/langs/vi_VN/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=Gặp gỡ với %s ShowTask=Hiện tác vụ ShowAction=Hiện sự kiện ActionsReport=Báo cáo sự kiện -ThirdPartiesOfSaleRepresentative=Bên thứ ba với đại điện bán hàng +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=Đại diện bán hàng SalesRepresentatives=Đại diện bán hàng SalesRepresentativeFollowUp=Đại diện bán hàng (theo dõi) diff --git a/htdocs/langs/vi_VN/companies.lang b/htdocs/langs/vi_VN/companies.lang index 24de14b1b00..79900c8b4b2 100644 --- a/htdocs/langs/vi_VN/companies.lang +++ b/htdocs/langs/vi_VN/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=Cá nhân mới NewCompany=Công ty mới (KH tiềm năng, khách hàng, nhà cung cấp) NewThirdParty=Bên thứ ba mới (KH tiềm năng, khách hàng, nhà cung cấp) CreateDolibarrThirdPartySupplier=Tạo bên thứ ba (nhà cung cấp) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=Tạo bên thứ ba CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=Khu vực khảo sát IdThirdParty=ID bên thứ ba @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=Các khách hàng ThirdPartyCustomersWithIdProf12=Khách hàng với %s hoặc %s ThirdPartySuppliers=Nhà cung cấp ThirdPartyType=Loại bên thứ ba -Company/Fundation=Công ty/Tổ chức Individual=Cá nhân ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=Công ty mẹ @@ -78,10 +77,10 @@ VATIsNotUsed=Thuế VAT không được dùng CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=Đơn hàng đề xuất +OverAllOrders=Đơn hàng +OverAllInvoices=Hoá đơn +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= RE được dùng @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=Giảm giá theo % CustomerAbsoluteDiscountShort=Giảm giá theo số tiền CompanyHasRelativeDiscount=Khách hàng này có giảm giá mặc định là %s%% CompanyHasNoRelativeDiscount=Khách hàng này không có mặc định giảm giá theo % -CompanyHasAbsoluteDiscount=Khách hàng này vẫn có các khoản nợ chiết khấu hoặc ứng trước cho %s %s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=Khách hàng này vẫn có ghi nợ cho %s %s CompanyHasNoAbsoluteDiscount=Khách hàng này không có sẵn nợ chiết khấu CustomerAbsoluteDiscountAllUsers=Giảm giá theo % (gán cho tất cả người dùng) @@ -390,7 +395,7 @@ ListCustomersShort=Danh sách khách hàng ThirdPartiesArea=Bên thứ ba và các khu vực liên lạc LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=Tổng của bên thứ ba duy nhất -InActivity=Đã mở +InActivity=Mở ActivityCeased=Đóng ThirdPartyIsClosed=Third party is closed ProductsIntoElements=List of products/services into %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=Mã này tự do. Mã này có thể được sửa đổ ManagingDirectors=Tên quản lý (CEO, giám đốc, chủ tịch...) MergeOriginThirdparty=Duplicate third party (third party you want to delete) MergeThirdparties=Merge third parties -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=Thirdparties have been merged SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/vi_VN/contracts.lang b/htdocs/langs/vi_VN/contracts.lang index 9c02ea066c4..acf90a290b2 100644 --- a/htdocs/langs/vi_VN/contracts.lang +++ b/htdocs/langs/vi_VN/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=Danh sách này chỉ bao gồm các dịch vụ c StandardContractsTemplate=Mẫu hợp đồng chuẩn ContactNameAndSignature=Đối với %s, tên và chữ ký: OnlyLinesWithTypeServiceAreUsed=Chỉ các chi tiết của loại "Dịch vụ" này sẽ được sao chép. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=Đại diện bán hàng ký hợp đồng diff --git a/htdocs/langs/vi_VN/exports.lang b/htdocs/langs/vi_VN/exports.lang index 018477ad9c1..593ec94a35c 100644 --- a/htdocs/langs/vi_VN/exports.lang +++ b/htdocs/langs/vi_VN/exports.lang @@ -110,13 +110,24 @@ Enclosure=Bao vây SpecialCode=Mã số đặc biệt ExportStringFilter=%% Cho phép thay thế một hay nhiều ký tự trong văn bản ExportDateFilter=YYYY, YYYYMM, YYYYMMDD: bộ lọc một năm / tháng / ngày
YYYY + YYYY, YYYYMM + YYYYMM, YYYYMMDD + YYYYMMDD: bộ lọc trên một loạt các năm / tháng / ngày
> YYYY,> YYYYMM,> YYYYMMDD: bộ lọc trên tất cả các năm / tháng / ngày sau
Bộ lọc 'nnnnn + nnnnn "trên một loạt các giá trị
'> Nnnnn "bộ lọc các giá trị thấp
'> Nnnnn "bộ lọc các giá trị cao hơn +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=Nếu bạn muốn lọc vào một số giá trị, giá trị chỉ vào đây. FilteredFields=Lĩnh vực lọc FilteredFieldsValues=Giá trị bộ lọc FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/vi_VN/holiday.lang b/htdocs/langs/vi_VN/holiday.lang index 0853fafd410..976aa4a0925 100644 --- a/htdocs/langs/vi_VN/holiday.lang +++ b/htdocs/langs/vi_VN/holiday.lang @@ -16,7 +16,7 @@ CancelCP=Đã hủy RefuseCP=Bị từ chối ValidatorCP=Người duyệt ListeCP=Danh sách nghỉ phép -ReviewedByCP=Người xem xét +ReviewedByCP=Will be approved by DescCP=Mô tả SendRequestCP=Tạo yêu cầu nghỉ phép DelayToRequestCP=Để lại yêu cầu phải được thực hiện vào ngày thứ nhất là% s (s) trước họ. diff --git a/htdocs/langs/vi_VN/hrm.lang b/htdocs/langs/vi_VN/hrm.lang index cca9b089f9a..f563e7f8347 100644 --- a/htdocs/langs/vi_VN/hrm.lang +++ b/htdocs/langs/vi_VN/hrm.lang @@ -1,17 +1,17 @@ # Dolibarr language file - en_US - hrm # Admin -HRM_EMAIL_EXTERNAL_SERVICE=Email to prevent HRM external service -Establishments=Establishments -Establishment=Establishment -NewEstablishment=New establishment -DeleteEstablishment=Delete establishment -ConfirmDeleteEstablishment=Are-you sure to delete this establishment? -OpenEtablishment=Open establishment -CloseEtablishment=Close establishment +HRM_EMAIL_EXTERNAL_SERVICE=Email để ngăn chặn dịch vụ HRM bên ngoài +Establishments=Cơ sở +Establishment=Cơ sở +NewEstablishment=Tạo cơ sở +DeleteEstablishment=Xóa cơ sở +ConfirmDeleteEstablishment=Bạn có chắc chắn muốn xóa cơ sở này? +OpenEtablishment=Mở cơ sở +CloseEtablishment=Đóng cơ sở # Dictionary -DictionaryDepartment=HRM - Department list -DictionaryFunction=HRM - Function list +DictionaryDepartment=HRM - Danh sách phòng/ban +DictionaryFunction=HRM - Danh sách vai trò # Module -Employees=Employees +Employees=Nhân viên Employee=Nhân viên -NewEmployee=New employee +NewEmployee=Tạo nhân viên diff --git a/htdocs/langs/vi_VN/install.lang b/htdocs/langs/vi_VN/install.lang index d8bdc8c0bf6..0655145e4d6 100644 --- a/htdocs/langs/vi_VN/install.lang +++ b/htdocs/langs/vi_VN/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=Bạn sử dụng các hướng dẫn cài đặt Dolibarr KeepDefaultValuesDeb=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ một gói phần mềm Linux (Ubuntu, Debian, Fedora ...), do đó giá trị đề xuất ở đây đã được tối ưu hóa. Chỉ có mật khẩu của chủ sở hữu cơ sở dữ liệu để tạo ra phải được hoàn tất. Thay đổi các thông số khác chỉ khi bạn biết những gì bạn làm. KeepDefaultValuesMamp=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ DoliMamp, vì vậy giá trị đề xuất ở đây đã được tối ưu hóa. Thay đổi chúng chỉ khi bạn biết những gì bạn làm. KeepDefaultValuesProxmox=Bạn sử dụng các hướng dẫn cài đặt Dolibarr từ một thiết bị ảo Proxmox, vì vậy giá trị đề xuất ở đây đã được tối ưu hóa. Thay đổi chúng chỉ khi bạn biết những gì bạn làm. +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/vi_VN/interventions.lang b/htdocs/langs/vi_VN/interventions.lang index 15804237528..a82bb4d7cd6 100644 --- a/htdocs/langs/vi_VN/interventions.lang +++ b/htdocs/langs/vi_VN/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=Theo dõi liên lạc của khách hàng # Modele numérotation diff --git a/htdocs/langs/vi_VN/languages.lang b/htdocs/langs/vi_VN/languages.lang index 3687680cf5c..63740234ea8 100644 --- a/htdocs/langs/vi_VN/languages.lang +++ b/htdocs/langs/vi_VN/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=Đức Language_de_AT=Đức (Áo) Language_de_CH=Đức (Thụy Sĩ) Language_el_GR=Hy Lạp +Language_el_CY=Greek (Cyprus) Language_en_AU=Anh (Úc) Language_en_CA=English (Canada) Language_en_GB=Anh (Vương quốc Anh) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Tây Ban Nha (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Tây Ban Nha (Cộng hòa Dominica) +Language_es_EC=Spanish (Ecuador) Language_es_HN=Tây Ban Nha (Honduras) Language_es_MX=Tây Ban Nha (Mexico) +Language_es_PA=Spanish (Panama) Language_es_PY=Tây Ban Nha (Paraguay) Language_es_PE=Tây Ban Nha (Peru) Language_es_PR=Tây Ban Nha (Puerto Rico) @@ -50,12 +53,14 @@ Language_is_IS=Iceland Language_it_IT=Ý Language_ja_JP=Nhật Bản Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=Hàn Quốc Language_lo_LA=Lào Language_lt_LT=Lithuania Language_lv_LV=Latvia Language_mk_MK=Macedonian +Language_mn_MN=Mongolian Language_nb_NO=Na Uy (Bokmål) Language_nl_BE=Hà Lan (Bỉ) Language_nl_NL=Hà Lan (Hà Lan) diff --git a/htdocs/langs/vi_VN/link.lang b/htdocs/langs/vi_VN/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/vi_VN/link.lang +++ b/htdocs/langs/vi_VN/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/vi_VN/loan.lang b/htdocs/langs/vi_VN/loan.lang index f9dec91898c..f9942912bf4 100644 --- a/htdocs/langs/vi_VN/loan.lang +++ b/htdocs/langs/vi_VN/loan.lang @@ -13,17 +13,17 @@ Nbterms=Số năm vay vốn LoanAccountancyCapitalCode=Accounting account capital LoanAccountancyInsuranceCode=Accounting account insurance LoanAccountancyInterestCode=Accounting account interest -ConfirmDeleteLoan=Confirm deleting this loan -LoanDeleted=Loan Deleted Successfully +ConfirmDeleteLoan=Xác nhận xóa khoản vay này +LoanDeleted=Khoản vay đã xóa thành công ConfirmPayLoan=Confirm classify paid this loan -LoanPaid=Loan Paid +LoanPaid=Khoản vay đã trả # Calc -LoanCalc=Bank Loans Calculator +LoanCalc=Bảng tính khoản vay ngân hàng PurchaseFinanceInfo=Purchase & Financing Information SalePriceOfAsset=Sale Price of Asset PercentageDown=Percentage Down -LengthOfMortgage=Duration of loan -AnnualInterestRate=Annual Interest Rate +LengthOfMortgage=Thời hạn vay +AnnualInterestRate=Lãi suất hàng năm ExplainCalculations=Explain Calculations ShowMeCalculationsAndAmortization=Show me the calculations and amortization MortgagePaymentInformation=Mortgage Payment Information @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=Danh sách vay vốn gắn với dự án này +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/vi_VN/mails.lang b/htdocs/langs/vi_VN/mails.lang index 146d5e4cbbb..0f1cf84bc82 100644 --- a/htdocs/langs/vi_VN/mails.lang +++ b/htdocs/langs/vi_VN/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=Gửi partialy MailingStatusSentCompletely=Gửi hoàn toàn MailingStatusError=Lỗi MailingStatusNotSent=Không gửi -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=Gửi email xác nhận thành công MailUnsubcribe=Hủy đăng ký MailingStatusNotContact=Không liên hệ nữa @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=Dòng %s trong tập tin @@ -116,8 +120,8 @@ Notifications=Thông báo NoNotificationsWillBeSent=Không có thông báo email được lên kế hoạch cho sự kiện này và công ty ANotificationsWillBeSent=1 thông báo sẽ được gửi qua email SomeNotificationsWillBeSent=Thông báo %s sẽ được gửi qua email -AddNewNotification=Kích hoạt một mục tiêu thông báo email mới -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=Liệt kê tất cả các thông báo email gửi MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/vi_VN/main.lang b/htdocs/langs/vi_VN/main.lang index 6258f3369a1..ff953aeb5e8 100644 --- a/htdocs/langs/vi_VN/main.lang +++ b/htdocs/langs/vi_VN/main.lang @@ -72,8 +72,10 @@ SeeHere=Xem ở đây Apply=Áp dụng BackgroundColorByDefault=Màu nền mặc định FileRenamed=The file was successfully renamed -FileUploaded=Các tập tin được tải lên thành công FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=Các tập tin được tải lên thành công +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=Một tập tin được chọn để đính kèm nhưng vẫn chưa được tải lên. Bấm vào nút "Đính kèm tập tin" cho việc này. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=Total RE TotalLT2ES=Total IRPF HT=Chưa thuế TTC=Gồm thuế +INCT=Inc. all taxes VAT=Thuế bán hàng VATs=Sales taxes LT1ES=RE @@ -518,7 +521,6 @@ MonthShort10=Tháng Mười MonthShort11=Tháng Mười Một MonthShort12=Tháng Mười Hai AttachedFiles=Được đính kèm tập tin và tài liệu -FileTransferComplete=Tập tin đã được tải lên thành công DateFormatYYYYMM=YYYY-MM DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS diff --git a/htdocs/langs/vi_VN/margins.lang b/htdocs/langs/vi_VN/margins.lang index fdfe1e35c84..f4c10fdb03b 100644 --- a/htdocs/langs/vi_VN/margins.lang +++ b/htdocs/langs/vi_VN/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Tỷ giá phải là một giá trị số markRateShouldBeLesserThan100=Đánh dấu suất phải thấp hơn 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/vi_VN/members.lang b/htdocs/langs/vi_VN/members.lang index 0e3975605e1..f34fd1b467c 100644 --- a/htdocs/langs/vi_VN/members.lang +++ b/htdocs/langs/vi_VN/members.lang @@ -41,12 +41,12 @@ MemberType=Kiểu thành viên MemberTypeId=Kiểu thành viên id MemberTypeLabel=Nhãn loại thành viên MembersTypes=Loại thành viên -MemberStatusDraft=Dự thảo (cần phải được xác nhận) +MemberStatusDraft=Dự thảo (cần được xác nhận) MemberStatusDraftShort=Dự thảo MemberStatusActive=Xác nhận (đăng ký chờ đợi) -MemberStatusActiveShort=Xác nhận +MemberStatusActiveShort=Đã xác nhận MemberStatusActiveLate=Subscription expired -MemberStatusActiveLateShort=Hết hạn +MemberStatusActiveLateShort=Đã hết hạn MemberStatusPaid=Đăng ký cập nhật MemberStatusPaidShort=Cho đến nay MemberStatusResiliated=Terminated member @@ -61,7 +61,7 @@ NewSubscription=Mô tả mới NewSubscriptionDesc=Hình thức này cho phép bạn ghi lại các mô tả của bạn như là một thành viên mới của nền tảng. Nếu bạn muốn gia hạn mô tả của bạn (nếu đã là thành viên), xin liên lạc với hội đồng quản trị nền tảng thay vì qua email% s. Subscription=Đăng ký Subscriptions=Đăng ký -SubscriptionLate=Cuối +SubscriptionLate=Trễ SubscriptionNotReceived=Mô tả không bao giờ nhận được ListOfSubscriptions=Danh sách đăng ký SendCardByMail=Gửi thẻ qua Email @@ -90,11 +90,12 @@ PublicMemberList=Danh sách thành viên công cộng BlankSubscriptionForm=Hình thức công lập tự động đăng ký BlankSubscriptionFormDesc=Dolibarr có thể cung cấp cho bạn một URL nào để cho phép khách tham quan bên ngoài để yêu cầu đăng ký vào các nền tảng. Nếu một module thanh toán trực tuyến được kích hoạt, một hình thức thanh toán cũng sẽ được tự động cung cấp. EnablePublicSubscriptionForm=Kích hoạt tính năng đăng ký tự động, hình thức công lập +ForceMemberType=Force the member type ExportDataset_member_1=Thành viên và đăng ký ImportDataset_member_1=Thành viên LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions -String=Chuỗi +String=String Text=Văn bản Int=Int DateAndTime=Ngày và thời gian @@ -150,6 +151,7 @@ MembersByTownDesc=Màn hình này hiển thị cho bạn số liệu thống kê MembersStatisticsDesc=Chọn thống kê mà bạn muốn đọc ... MenuMembersStats=Thống kê LastMemberDate=Latest member date +LatestSubscriptionDate=Latest subscription date Nature=Tự nhiên Public=Thông tin được công khai NewMemberbyWeb=Thành viên mới được bổ sung. Đang chờ phê duyệt diff --git a/htdocs/langs/vi_VN/modulebuilder.lang b/htdocs/langs/vi_VN/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/vi_VN/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/vi_VN/oauth.lang b/htdocs/langs/vi_VN/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/vi_VN/oauth.lang +++ b/htdocs/langs/vi_VN/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/vi_VN/other.lang b/htdocs/langs/vi_VN/other.lang index dced48e8ed9..30bba6aba30 100644 --- a/htdocs/langs/vi_VN/other.lang +++ b/htdocs/langs/vi_VN/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=kg WeightUnitg=g WeightUnitmg=mg WeightUnitpound=bảng +WeightUnitounce=ounce Length=Chiều dài LengthUnitm=m LengthUnitdm=dm diff --git a/htdocs/langs/vi_VN/paybox.lang b/htdocs/langs/vi_VN/paybox.lang index 211cd9bd8a7..0701e42dbad 100644 --- a/htdocs/langs/vi_VN/paybox.lang +++ b/htdocs/langs/vi_VN/paybox.lang @@ -11,6 +11,7 @@ YourEMail=Email to receive payment confirmation Creditor=Creditor PaymentCode=Payment code PayBoxDoPayment=Go on payment +ToPay=Thực hiện thanh toán YouWillBeRedirectedOnPayBox=You will be redirected on secured Paybox page to input you credit card information Continue=Tiếp theo ToOfferALinkForOnlinePayment=URL for %s payment diff --git a/htdocs/langs/vi_VN/paypal.lang b/htdocs/langs/vi_VN/paypal.lang index 4cd71693ebf..5df6f85007d 100644 --- a/htdocs/langs/vi_VN/paypal.lang +++ b/htdocs/langs/vi_VN/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=This is id of transaction: %s PAYPAL_ADD_PAYMENT_URL=Add the url of Paypal payment when you send a document by mail PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=You are currently in the "sandbox" mode -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/vi_VN/printing.lang b/htdocs/langs/vi_VN/printing.lang index d6cf49bd525..a7d8292a00c 100644 --- a/htdocs/langs/vi_VN/printing.lang +++ b/htdocs/langs/vi_VN/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=Họ và tên GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -29,8 +29,8 @@ GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_USER=Đăng nhập +PRINTIPP_PASSWORD=Mật khẩu NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,12 +40,12 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=Màu IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/vi_VN/products.lang b/htdocs/langs/vi_VN/products.lang index cab96fe6cf9..9b7ed8def70 100644 --- a/htdocs/langs/vi_VN/products.lang +++ b/htdocs/langs/vi_VN/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=Mã kế toán (bán hàng) ProductOrService=Sản phẩm hoặc dịch vụ ProductsAndServices=Sản phẩm và dịch vụ ProductsOrServices=Sản phẩm hoặc dịch vụ -ProductsOnSell=Sản phẩm để bán hoặc để mua -ProductsNotOnSell=Sản phẩm không để bán và không để mua +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Sản phẩm để bán và mua -ServicesOnSell=Dịch vụ để bán hoặc để mua -ServicesNotOnSell=Dịch vụ không được bán +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Dịch vụ để bán và mua LastModifiedProductsAndServices=%s dịch vụ/ sản phẩm mới được sửa LastRecordedProducts=%s sản phẩm mới được ghi lại @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=Thứ nhì +unitH=Giờ +unitD=Ngày +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Mẫu tham chiếu Sản phẩm ServiceCodeModel=Mẫu tham chiếu dịch vụ CurrentProductPrice=Giá hiện tại @@ -186,6 +200,7 @@ MultipriceRules=Quy tắc giá thành phần UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% giảm giá hơn %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Sản xuất ProductsMultiPrice=Sản phẩm và giá thành cho từng phân khúc giá @@ -232,12 +247,18 @@ ComposedProduct=Sản phẩm con MinSupplierPrice=Giá tối thiểu nhà cung cấp MinCustomerPrice=Giá khách hàng tối thiểu DynamicPriceConfiguration=Cấu hình giá linh hoạt -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Thêm biến AddUpdater=Thêm nguồn cập nhật GlobalVariables=Biến toàn cầu VariableToUpdate=Biến để cập nhật GlobalVariableUpdaters=Cập nhật biến toàn cầu +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Cập nhật khoảng thời gian (phút) LastUpdated=Latest update CorrectlyUpdated=Đã cập nhật chính xác @@ -260,6 +281,8 @@ SizeUnits=Đơn vị kích thước DeleteProductBuyPrice=Xóa giá mua hàng ConfirmDeleteProductBuyPrice=Bạn có muốn xóa giá mua hàng này? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/vi_VN/propal.lang b/htdocs/langs/vi_VN/propal.lang index f8db7b44873..9f00a930015 100644 --- a/htdocs/langs/vi_VN/propal.lang +++ b/htdocs/langs/vi_VN/propal.lang @@ -3,7 +3,7 @@ Proposals=Đơn hàng đề xuất Proposal=Đơn hàng đề xuất ProposalShort=Đơn hàng đề xuất ProposalsDraft=Dự thảo đơn hàng đề xuất -ProposalsOpened=Đơn hàng đề xuất đã mở +ProposalsOpened=Open commercial proposals Prop=Đơn hàng đề xuất CommercialProposal=Đơn hàng đề xuất ProposalCard=Thẻ đơn hàng đề xuất @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=Số tiền theo tháng (chưa thuế) NbOfProposals=Số lượng đơn hàng đề xuất ShowPropal=Hiện đơn hàng đề xuất PropalsDraft=Dự thảo -PropalsOpened=Đã mở +PropalsOpened=Mở PropalStatusDraft=Dự thảo (cần được xác nhận) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=Đã ký (cần ra hóa đơn) diff --git a/htdocs/langs/vi_VN/resource.lang b/htdocs/langs/vi_VN/resource.lang index 93cb1071bf8..adb65942fb5 100644 --- a/htdocs/langs/vi_VN/resource.lang +++ b/htdocs/langs/vi_VN/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Đã xóa tài nguyên thành công DictionaryResourceType=Loại tài nguyên SelectResource=Chọn tài nguyên + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=Tài nguyên diff --git a/htdocs/langs/vi_VN/salaries.lang b/htdocs/langs/vi_VN/salaries.lang index 87c6770ebb5..092bfc6ab02 100644 --- a/htdocs/langs/vi_VN/salaries.lang +++ b/htdocs/langs/vi_VN/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Kế toán mã cho các khoản thanh toán tiền lương -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Kế toán mã cho phụ trách tài chính +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Mức lương Salaries=Tiền lương NewSalaryPayment=Thanh toán tiền lương mới diff --git a/htdocs/langs/vi_VN/sendings.lang b/htdocs/langs/vi_VN/sendings.lang index 5554477c486..2f10c3c0c12 100644 --- a/htdocs/langs/vi_VN/sendings.lang +++ b/htdocs/langs/vi_VN/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=Shipment sheet ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=Mô hình tài liệu đơn giản DocumentModelMerou=Mô hình Merou A5 WarningNoQtyLeftToSend=Cảnh báo, không có sản phẩm chờ đợi để được vận chuyển. StatsOnShipmentsOnlyValidated=Thống kê tiến hành với các chuyến hàng chỉ xác nhận. Ngày sử dụng là ngày xác nhận giao hàng (dự ngày giao hàng không phải luôn luôn được biết đến). @@ -51,10 +50,10 @@ ActionsOnShipping=Các sự kiện trên lô hàng LinkToTrackYourPackage=Liên kết để theo dõi gói của bạn ShipmentCreationIsDoneFromOrder=Đối với thời điểm này, tạo ra một lô hàng mới được thực hiện từ thẻ thứ tự. ShipmentLine=Đường vận chuyển -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=Weight/Vol. ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/vi_VN/stocks.lang b/htdocs/langs/vi_VN/stocks.lang index cfa50d6a236..1429dca796f 100644 --- a/htdocs/langs/vi_VN/stocks.lang +++ b/htdocs/langs/vi_VN/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Nhãn Chuyển kho NumberOfUnit=Số đơn vị UnitPurchaseValue=Giá mua đơn vị StockTooLow=Tồn kho quá thấp -StockLowerThanLimit=Tồn kho thấp hơn so với giới hạn cảnh báo +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=Giá trị PMPValue=Giá bình quân gia quyền PMPValueShort=WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=Số lượng cử QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=Điều phối kho +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=Giảm kho thực tế trên hoá đơn khách hàng / tín dụng ghi xác nhận @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=Tăng tồn kho thực tế các nhà cung cấp hoá đơn tín dụng / ghi xác nhận ReStockOnValidateOrder=Tăng tồn kho thực sự tán thành đơn đặt hàng các nhà cung cấp -ReStockOnDispatchOrder=Tăng tồn kho thực trên dẫn điều phối vào kho, sau khi tiếp nhận đơn đặt hàng nhà cung cấp +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=Đặt hàng vẫn chưa hoặc không có thêm một trạng thái cho phép điều phối các sản phẩm trong kho kho. -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=Không có sản phẩm được xác định trước cho đối tượng này. Vì vậy, không có điều phối trong kho là bắt buộc. DispatchVerb=Công văn StockLimitShort=Hạn cảnh báo StockLimit=Hạn tồn kho cho cảnh báo PhysicalStock=Tồn kho vật lý RealStock=Tồn kho thực +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=Tồn kho ảo +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=Mã kho DescWareHouse=Mô tả kho LieuWareHouse=Địa phương hóa kho @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Số lượng sản phẩm% s trong kho trước khi th NbOfProductAfterPeriod=Số lượng sản phẩm% s trong kho sau khi được lựa chọn thời gian (>% s) MassMovement=Chuyển kho toàn bộ SelectProductInAndOutWareHouse=Chọn một sản phẩm, một số lượng lớn, kho nguồn và một kho hàng mục tiêu, sau đó nhấp vào "% s". Một khi điều này được thực hiện với mọi hoạt động cần thiết, kích vào "% s". -RecordMovement=Ghi transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Chuyển động kho được ghi nhận RuleForStockAvailability=Quy định về yêu cầu kho @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Sửa +inventoryValidate=Đã xác nhận +inventoryDraft=Đang hoạt động +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Tạo +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=Bộ lọc phân nhóm +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Thêm +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Xóa dòng +RegulateStock=Regulate Stock +ListInventory=Danh sách diff --git a/htdocs/langs/vi_VN/stripe.lang b/htdocs/langs/vi_VN/stripe.lang new file mode 100644 index 00000000000..6ef392b5072 --- /dev/null +++ b/htdocs/langs/vi_VN/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=Following URLs are available to offer a page to a customer to make a payment on Dolibarr objects +PaymentForm=Payment form +WelcomeOnPaymentPage=Welcome on our online payment service +ThisScreenAllowsYouToPay=This screen allow you to make an online payment to %s. +ThisIsInformationOnPayment=This is information on payment to do +ToComplete=To complete +YourEMail=Email to receive payment confirmation +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=Creditor +PaymentCode=Payment code +StripeDoPayment=Go on payment +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=Tiếp theo +ToOfferALinkForOnlinePayment=URL for %s payment +ToOfferALinkForOnlinePaymentOnOrder=URL to offer a %s online payment user interface for a customer order +ToOfferALinkForOnlinePaymentOnInvoice=URL to offer a %s online payment user interface for a customer invoice +ToOfferALinkForOnlinePaymentOnContractLine=URL to offer a %s online payment user interface for a contract line +ToOfferALinkForOnlinePaymentOnFreeAmount=URL to offer a %s online payment user interface for a free amount +ToOfferALinkForOnlinePaymentOnMemberSubscription=URL to offer a %s online payment user interface for a member subscription +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=This page confirms that your payment has been recorded. Thank you. +YourPaymentHasNotBeenRecorded=You payment has not been recorded and transaction has been canceled. Thank you. +AccountParameter=Account parameters +UsageParameter=Usage parameters +InformationToFindParameters=Help to find your %s account information +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=Name of vendor +CSSUrlForPaymentForm=CSS style sheet url for payment form +MessageOK=Message on validated payment return page +MessageKO=Message on canceled payment return page +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/vi_VN/supplier_proposal.lang b/htdocs/langs/vi_VN/supplier_proposal.lang index 1b5f51a415d..1be10182bc2 100644 --- a/htdocs/langs/vi_VN/supplier_proposal.lang +++ b/htdocs/langs/vi_VN/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=Dự thảo (cần được xác nhận) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=Đã đóng SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Đã từ chối @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Tạo mô hình mặc định DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/vi_VN/suppliers.lang b/htdocs/langs/vi_VN/suppliers.lang index 5fba2127274..c6ee8b469e4 100644 --- a/htdocs/langs/vi_VN/suppliers.lang +++ b/htdocs/langs/vi_VN/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Một vài sản phẩm con không có giá xác định AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=Giá nhà cung cấp ReferenceSupplierIsAlreadyAssociatedWithAProduct=Cung cấp thông tin này đã được liên kết với một tham chiếu: %s NoRecordedSuppliers=Không có nhà cung cấp được ghi nhận SupplierPayment=Thanh toán của nhà cung cấp @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=Giá nhà cung cấp diff --git a/htdocs/langs/vi_VN/trips.lang b/htdocs/langs/vi_VN/trips.lang index 0ddc585efb8..225ad5c20a1 100644 --- a/htdocs/langs/vi_VN/trips.lang +++ b/htdocs/langs/vi_VN/trips.lang @@ -12,7 +12,7 @@ ListOfFees=Danh sách phí TypeFees=Types of fees ShowTrip=Show expense report NewTrip=New expense report -CompanyVisited=Công ty / cơ sở thăm +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=Số tiền hoặc km DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Phân loại 'hoàn trả' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Ngày xác nhận DATE_CANCEL=Cancelation date DATE_PAIEMENT=Ngày thanh toán - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/vi_VN/users.lang b/htdocs/langs/vi_VN/users.lang index 237f0603b72..772f8de7713 100644 --- a/htdocs/langs/vi_VN/users.lang +++ b/htdocs/langs/vi_VN/users.lang @@ -66,8 +66,8 @@ InternalUser=Người dùng bên trong ExportDataset_user_1=Người sử dụng và các đặc tính của Dolibarr DomainUser=Domain người dùng %s Reactivate=Kích hoạt lại -CreateInternalUserDesc=Hình thức này cho phép bạn tạo ra một người dùng nội bộ cho công ty/tổ chức. Để tạo ra một người dùng bên ngoài (khách hàng, nhà cung cấp, ...), sử dụng nút 'Tạo người dùng Dolibarr' từ thẻ liên lạc bên thứ ba. -InternalExternalDesc=Một người dùng nội bộ là một người dùng là một phần của công ty/tổ chức.
Một người dùng bên ngoài là một khách hàng, nhà cung cấp hoặc khác.

Trong cả hai trường hợp, quyền xác định được xác lập trên Dolibarr, còn người dùng bên ngoài có thể có một menu quản lý khác so với người dùng nội bộ (Xem Nhà - Thiết lập - Hiển thị) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=Quyền được cấp bởi vì được thừa hưởng từ một trong những nhóm của người dùng. Inherited=Được thừa kế UserWillBeInternalUser=Người dùng tạo ra sẽ là một người dùng nội bộ (vì không liên kết với một bên thứ ba cụ thể) diff --git a/htdocs/langs/vi_VN/website.lang b/htdocs/langs/vi_VN/website.lang index 6197580711f..0ef146632dd 100644 --- a/htdocs/langs/vi_VN/website.lang +++ b/htdocs/langs/vi_VN/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=Mã WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/vi_VN/withdrawals.lang b/htdocs/langs/vi_VN/withdrawals.lang index 8c483416a79..5af3e120e9e 100644 --- a/htdocs/langs/vi_VN/withdrawals.lang +++ b/htdocs/langs/vi_VN/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=Số tiền rút WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=Không có hoá đơn thanh toán của khách hàng trong chế độ "rút" được chờ đợi. Đi vào tab 'Rút' trên thẻ hóa đơn để thực hiện một yêu cầu. +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=Người sử dụng có trách nhiệm WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=Lý do từ chối RefusedInvoicing=Thanh toán từ chối NoInvoiceRefused=Không sạc từ chối InvoiceRefused=Hóa đơn bị từ chối (Khách hàng từ chối thanh toán) +StatusDebitCredit=Status debit/credit StatusWaiting=Chờ StatusTrans=Gửi StatusCredited=Ghi diff --git a/htdocs/langs/vi_VN/workflow.lang b/htdocs/langs/vi_VN/workflow.lang index 4972e43681e..40a2a16a796 100644 --- a/htdocs/langs/vi_VN/workflow.lang +++ b/htdocs/langs/vi_VN/workflow.lang @@ -1,15 +1,15 @@ # Dolibarr language file - Source file is en_US - workflow -WorkflowSetup=Thiết lập mô-đun công việc +WorkflowSetup=Thiết lập mô-đun quy trình WorkflowDesc=This module is designed to modify the behaviour of automatic actions into application. By default, workflow is open (you can do things in the order you want). You can activate the automatic actions you are interested in. -ThereIsNoWorkflowToModify=There is no workflow modifications available with the activated modules. -descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Automatically create a customer order after a commercial proposal is signed -descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Automatically create a customer invoice after a commercial proposal is signed -descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Automatically create a customer invoice after a contract is validated -descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Automatically create a customer invoice after a customer order is closed +ThereIsNoWorkflowToModify=Chưa có sử đổi quy trình nào với những mô đun đang hoạt động +descWORKFLOW_PROPAL_AUTOCREATE_ORDER=Tự động tạo đơn đặt hàng cho khách hàng sau một đề xuất thương mại được ký +descWORKFLOW_PROPAL_AUTOCREATE_INVOICE=Tạo hóa đơn khách hàng tự động sau 1 đề xuất thương mại được ký kết +descWORKFLOW_CONTRACT_AUTOCREATE_INVOICE=Tạo một khóa đơn khách hàng tự động sau khi hợp đồng được thông qua +descWORKFLOW_ORDER_AUTOCREATE_INVOICE=Tự động tạo 1 hóa đơn khách hàng sau khi đơn đặt hàng được đóng descWORKFLOW_ORDER_CLASSIFY_BILLED_PROPAL=Phân loại đề xuất nguồn liên quan đến hóa đơn khi đơn đặt hàng được thiết lập để trả descWORKFLOW_INVOICE_CLASSIFY_BILLED_ORDER=Phân loại đơn đặt hàng nguồn liên kết (s) để tính tiền khi hóa đơn khách hàng được thiết lập để trả descWORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER=Phân loại theo thứ tự liên kết nguồn khách hàng (s) để tính tiền khi hóa đơn của khách hàng được xác nhận descWORKFLOW_INVOICE_CLASSIFY_BILLED_PROPAL=Classify linked source proposal to billed when customer invoice is validated descWORKFLOW_ORDER_CLASSIFY_SHIPPED_SHIPPING=Classify linked source order to shipped when a shipment is validated and quantity shipped is the same as in order -AutomaticCreation=Automatic creation -AutomaticClassification=Automatic classification +AutomaticCreation=Tạo tự động +AutomaticClassification=Phân loại tự động diff --git a/htdocs/langs/zh_CN/accountancy.lang b/htdocs/langs/zh_CN/accountancy.lang index 85ae089bfb5..52b3658a228 100644 --- a/htdocs/langs/zh_CN/accountancy.lang +++ b/htdocs/langs/zh_CN/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=添加一个会计帐户 AccountAccounting=会计账户 AccountAccountingShort=账户 SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=账目平衡 @@ -142,6 +143,7 @@ NumPiece=件数 TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=未设定 DeleteMvt=Delete Ledger lines DelYear=删除整年 @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=销售 AccountingJournalType3=采购 AccountingJournalType4=银行 +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=导出 Export=导出 +ExportDraftJournal=Export draft journal Modelcsv=导出型号 OptionsDeactivatedForThisExportModel=对于这种导出模式,选项被禁用 Selectmodelcsv=请选择一个导出模板 diff --git a/htdocs/langs/zh_CN/admin.lang b/htdocs/langs/zh_CN/admin.lang index 9a78588e2ff..98ab103d79b 100644 --- a/htdocs/langs/zh_CN/admin.lang +++ b/htdocs/langs/zh_CN/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=要求供应商商业报价和价格 Module1200Name=Mantis Module1200Desc=Mantis 整合 Module1400Name=会计 -Module1400Desc=会计管理(双方) +Module1400Desc=Accounting management (double entries) Module1520Name=文档生成 Module1520Desc=生成文档群发邮件 Module1780Name=标签/分类 @@ -585,7 +585,7 @@ Module50100Desc= (POS)POS模块. Module50200Name=Paypal Module50200Desc=提供信用卡与Paypal网上支付页面的模块 Module50400Name=会计(高级) -Module50400Desc=会计管理(双方) +Module50400Desc=Accounting management (double entries) Module54000Name=IPP打印 Module54000Desc=不打开文档而使用 Cups IPP 界面直接打印 (打印机必须在服务器可见,Cups 必须安装在服务器上)。 Module55000Name=问卷, 调查或投票 diff --git a/htdocs/langs/zh_CN/agenda.lang b/htdocs/langs/zh_CN/agenda.lang index 24bc829199c..127d0b289cc 100644 --- a/htdocs/langs/zh_CN/agenda.lang +++ b/htdocs/langs/zh_CN/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=事件ID号 Actions=事件 Agenda=待办事项 +TMenuAgenda=待办事项 Agendas=待办事项 LocalAgenda=内部日历 ActionsOwnedBy=按用户活动 @@ -34,7 +35,7 @@ AgendaSetupOtherDesc= 这页允许配置议程模块其他参数。 AgendaExtSitesDesc=此页面允许声明日历的外部来源,从而在Dolibarr待办事项中可以看到他们的事件。 ActionsEvents=Dolibarr将为其自动创建一个动作的事件 ##### Agenda event labels ##### -NewCompanyToDolibarr=Third party %s created +NewCompanyToDolibarr=合伙人 %s 已创建 ContractValidatedInDolibarr=联系人 %s 已验证 PropalClosedSignedInDolibarr=建议 %s 已标记 PropalClosedRefusedInDolibarr=建议 %s 已被拒绝 @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=删除 %s 发票 InvoicePaidInDolibarr=发票 %s 已变更为支付 InvoiceCanceledInDolibarr=发票 %s 已取消 MemberValidatedInDolibarr=会员 %s 已验证 +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=会员 %s 已删除 MemberSubscriptionAddedInDolibarr=会员订阅 %s 已添加 ShipmentValidatedInDolibarr=运输 %s 已验证 -ShipmentClassifyClosedInDolibarr=发货%s已经确认付账 -ShipmentUnClassifyCloseddInDolibarr=发货%s已经确认重开。 +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=运输 %s 已删除 OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=订购%s的验证 @@ -73,13 +75,17 @@ InterventionSentByEMail=干预 %s 发送邮件 ProposalDeleted=报价已删除 OrderDeleted=订单已删除 InvoiceDeleted=发票已删除 +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=开始日期 DateActionEnd=结束日期 AgendaUrlOptions1=您还可以添加以下参数来筛选输出: -AgendaUrlOptions2=login=%s 限制由或分配给用户的操作的输出 %s. AgendaUrlOptions3=logina=%s 限制输出到用户所拥有的动作 %s. -AgendaUrlOptions4=logint=%s表示限制只导出使用者与分配给用户%s的待办事项。 +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID 限制输出到项目相关的操作\n PROJECT_ID. AgendaShowBirthdayEvents=显示联系人生日 AgendaHideBirthdayEvents=隐藏联系人生日 diff --git a/htdocs/langs/zh_CN/banks.lang b/htdocs/langs/zh_CN/banks.lang index 70f74c8a3c8..286ab4a160b 100644 --- a/htdocs/langs/zh_CN/banks.lang +++ b/htdocs/langs/zh_CN/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=交易ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=调和 Conciliation=和解 ReconciliationLate=Reconciliation late IncludeClosedAccount=包括失效账户 -OnlyOpenedAccount=只有开立帐户 +OnlyOpenedAccount=仅有效账户 AccountToCredit=帐户信用 AccountToDebit=帐户转帐 DisableConciliation=此帐户的禁用和解功能 ConciliationDisabled=和解功能禁用 LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=启动 +StatusAccountOpened=打开 StatusAccountClosed=禁用 AccountIdShort=数字 LineRecord=交易 @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=检查退回发票并重新打开发票 BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/zh_CN/bills.lang b/htdocs/langs/zh_CN/bills.lang index 7af8cc4a501..acd51f412b3 100644 --- a/htdocs/langs/zh_CN/bills.lang +++ b/htdocs/langs/zh_CN/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=禁止删除 InvoiceStandard=标准发票 InvoiceStandardAsk=标准发票 InvoiceStandardDesc=这种发票是一种常见的发票。 -InvoiceDeposit=定金发票 -InvoiceDepositAsk=定金发票 -InvoiceDepositDesc=这种类型的发票存款时就已完成。 +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=形式发票 InvoiceProFormaAsk=形式发票 InvoiceProFormaDesc=形式发票是发票的形式,但其没有真正的会计价值。 @@ -62,7 +62,7 @@ PaymentsBack=付款 paymentInInvoiceCurrency=in invoices currency PaidBack=已退款 DeletePayment=删除付款 -ConfirmDeletePayment=你确定要删除这个付款? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=供应商付款 ReceivedPayments=收到的付款 @@ -115,7 +115,7 @@ BillStatus=发票状态 StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=草案(需要确认) BillStatusPaid=已支付 -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=已支付 (等待最终发票) BillStatusCanceled=已丢弃 BillStatusValidated=已确认 (需要付款) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=已支付 (部分) BillShortStatusDraft=草稿 BillShortStatusPaid=已支付 BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=处理完毕 +BillShortStatusConverted=已支付 BillShortStatusCanceled=已丢弃 BillShortStatusValidated=已确认 BillShortStatusStarted=开始 @@ -198,12 +198,12 @@ ShowBill=显示发票 ShowInvoice=显示发票 ShowInvoiceReplace=显示替换发票 ShowInvoiceAvoir=显示信用记录 -ShowInvoiceDeposit=显示发票保证金 +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=显示支付 AlreadyPaid=已支付 AlreadyPaidBack=已支付 -AlreadyPaidNoCreditNotesNoDeposits=已支付 (无信用记录及存款) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=已丢弃 RemainderToPay=未付金额 RemainderToTake=应付金额 @@ -270,10 +270,10 @@ RelativeDiscount=相对折扣 GlobalDiscount=全球折扣 CreditNote=信用记录 CreditNotes=信用记录 -Deposit=存款 -Deposits=存款 +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=从信用记录折扣 %s -DiscountFromDeposit=从存款发票 %s 付款 +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=这种信用值可以在发票被确认前使用 CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=无法删除,因为至少有一份发票 ExpectedToPay=预期付款 CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=已由此付款来支付 -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=分类“付费”的所有信贷注意到完全支付。 ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=全部发票仍然没有支付将被自动关闭状态“支付最高”。 @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=发票模板Crabe。一个完整的发票模板(支援增值税选项,折扣,付款条件,标识等..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=A bill starting with $syymm already exists and is not compatible with this model of sequence. Remove it or rename it to activate this module. -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=代表跟进客户发票 TypeContact_facture_external_BILLING=客户发票联络人 diff --git a/htdocs/langs/zh_CN/bookmarks.lang b/htdocs/langs/zh_CN/bookmarks.lang index 32e1eb887b8..29da21ef788 100644 --- a/htdocs/langs/zh_CN/bookmarks.lang +++ b/htdocs/langs/zh_CN/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=添加此页面到书签 +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=书签 Bookmarks=书签 +ListOfBookmarks=书签列表 +EditBookmarks=List/edit bookmarks NewBookmark=新建书签 ShowBookmark=显示书签 OpenANewWindow=打开一个新窗口 @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=新窗口 BookmarkTargetReplaceWindowShort=当前窗口 BookmarkTitle=书签标题 UrlOrLink=网址 -BehaviourOnClick=点击网址时的行为 +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=创建书签 SetHereATitleForLink=设置书签标题 UseAnExternalHttpLinkOrRelativeDolibarrLink=使用外部的HTTP URL或相对Dolibarr网址 diff --git a/htdocs/langs/zh_CN/boxes.lang b/htdocs/langs/zh_CN/boxes.lang index 7748403b6d9..14e92286c1f 100644 --- a/htdocs/langs/zh_CN/boxes.lang +++ b/htdocs/langs/zh_CN/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=登陆信息 BoxLastRssInfos=RSS 信息 BoxLastProducts=最近的 %s 个产品/服务 BoxProductsAlertStock=产品库存预警 @@ -82,3 +83,4 @@ ForCustomersOrders=客户订单 ForProposals=报价 LastXMonthRolling=最后 %s 月波动 ChooseBoxToAdd=点击下拉菜单选择相应视图并添加到你的看板 +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/zh_CN/cashdesk.lang b/htdocs/langs/zh_CN/cashdesk.lang index 4ee64548a47..9eb442c8c0c 100644 --- a/htdocs/langs/zh_CN/cashdesk.lang +++ b/htdocs/langs/zh_CN/cashdesk.lang @@ -25,7 +25,7 @@ Difference=差异 TotalTicket=总计 NoVAT=没有为本零售单计算增值税 Change=找零 -BankToPay=负责账户 +BankToPay=Account for payment ShowCompany=显示公司 ShowStock=显示仓库 DeleteArticle=删除项目 diff --git a/htdocs/langs/zh_CN/categories.lang b/htdocs/langs/zh_CN/categories.lang index b8009d30055..366896bbaa7 100644 --- a/htdocs/langs/zh_CN/categories.lang +++ b/htdocs/langs/zh_CN/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=标签/分类 Rubriques=标签/分类 +RubriquesTransactions=Tags/Categories of transactions categories=标签/分类 NoCategoryYet=创建的类型无标签/分类 In=在 @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=此类别已存在此号 ContentsVisibleByAllShort=所有内容可见 ContentsNotVisibleByAllShort=所有内容不可见 DeleteCategory=删除标签/分类 -ConfirmDeleteCategory=您确定想删除此标签/分类吗? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=标签/分类未定义 SuppliersCategoryShort=供应商标签/分类 CustomersCategoryShort=客户标签/分类 diff --git a/htdocs/langs/zh_CN/commercial.lang b/htdocs/langs/zh_CN/commercial.lang index eebfa815d8d..02a82c94c8b 100644 --- a/htdocs/langs/zh_CN/commercial.lang +++ b/htdocs/langs/zh_CN/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=与 %s 会议 ShowTask=显示任务 ShowAction=显示事件 ActionsReport=事件报告 -ThirdPartiesOfSaleRepresentative=合伙人销售代表 +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=销售代表 SalesRepresentatives=销售代表 SalesRepresentativeFollowUp=销售代表 (跟进) diff --git a/htdocs/langs/zh_CN/companies.lang b/htdocs/langs/zh_CN/companies.lang index 97be4984480..2f5b948eed7 100644 --- a/htdocs/langs/zh_CN/companies.lang +++ b/htdocs/langs/zh_CN/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=新私营个体 NewCompany=新建公司 (准客户,客户,供应商) NewThirdParty=新建合伙人 (准客户,客户,供应商) CreateDolibarrThirdPartySupplier=创建合伙人(供应商) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=创建合伙人 CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=准客户区 IdThirdParty=合伙人ID号 @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=客户 ThirdPartyCustomersWithIdProf12=与%s或%客户s ThirdPartySuppliers=供应商 ThirdPartyType=合伙人类型 -Company/Fundation=公司/机构 Individual=私营个体 ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=母公司 @@ -78,10 +77,10 @@ VATIsNotUsed=不含增值税 CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=合伙人无论客户或供应商,都没有对象可参考 PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=报价 +OverAllOrders=订单 +OverAllInvoices=发票 +OverAllSupplierProposals=询价申请 ##### Local Taxes ##### LocalTax1IsUsed=使用第二税率 LocalTax1IsUsedES= 使用可再生能源 @@ -237,6 +236,12 @@ ProfId3TN=Prof Id 3 (Douane code) ProfId4TN=Prof Id 4 (BAN) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=- +ProfId3US=- +ProfId4US=- +ProfId5US=- +ProfId6US=- ProfId1RU=Prof Id 1 (OGRN) ProfId2RU=Prof Id 2 (INN) ProfId3RU=Prof Id 3 (KPP) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=相对折扣 CustomerAbsoluteDiscountShort=绝对优惠 CompanyHasRelativeDiscount=这个客户有一个%s的%%的折扣 CompanyHasNoRelativeDiscount=此客户没有默认相对折扣 -CompanyHasAbsoluteDiscount=此客户仍%之折扣学分为%s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=此客户仍然有信用票据或s%%s的前存款 CompanyHasNoAbsoluteDiscount=此客户没有提供贴息贷款 CustomerAbsoluteDiscountAllUsers=绝对优惠(所有用户授予) @@ -390,7 +395,7 @@ ListCustomersShort=客户列表 ThirdPartiesArea=合伙人信息区 LastModifiedThirdParties=最近变更的 %s 位合伙人 UniqueThirdParties=合伙人小计 -InActivity=启动 +InActivity=打开 ActivityCeased=禁用 ThirdPartyIsClosed=Third party is closed ProductsIntoElements= %s 的中产品/服务列表 @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=客户/供应商代码是免费的。此代码可以随 ManagingDirectors=公司高管(s)称呼 (CEO, 董事长, 总裁...) MergeOriginThirdparty=重复第三方(第三方要删除) MergeThirdparties=合并合伙人 -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=合伙人已合并 SaleRepresentativeLogin=销售代表登陆 SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/zh_CN/contracts.lang b/htdocs/langs/zh_CN/contracts.lang index efaccf298ee..005f634ad50 100644 --- a/htdocs/langs/zh_CN/contracts.lang +++ b/htdocs/langs/zh_CN/contracts.lang @@ -9,9 +9,9 @@ ContractStatusValidated=验证 ContractStatusClosed=禁用 ServiceStatusInitial=不运行 ServiceStatusRunning=运行 -ServiceStatusNotLate=跑步,没有过期 +ServiceStatusNotLate=运行中,未过期 ServiceStatusNotLateShort=没有过期 -ServiceStatusLate=跑步,过期 +ServiceStatusLate=运行中,已过期 ServiceStatusLateShort=过期 ServiceStatusClosed=禁用 ShowContractOfService=显示联系人或服务 @@ -32,13 +32,13 @@ NewContractSubscription=新建联系人/订阅 AddContract=创建联系人 DeleteAContract=删除合同 CloseAContract=禁用联系人 -ConfirmDeleteAContract=你确定要删除本合同及所有的服务? -ConfirmValidateContract=你确定要验证这个合同? -ConfirmCloseContract=这将关闭所有服务(主动或不)。您确定要关闭这个合同? -ConfirmCloseService=您确定要关闭这项服务与日期%s吗 ? +ConfirmDeleteAContract=您确定要删除此合同及其所有服务吗? +ConfirmValidateContract=Are you sure you want to validate this contract under name %s? +ConfirmCloseContract=This will close all services (active or not). Are you sure you want to close this contract? +ConfirmCloseService=Are you sure you want to close this service with date %s? ValidateAContract=验证合同 ActivateService=激活服务 -ConfirmActivateService=你确定要激活这项服务的日期%s吗 ? +ConfirmActivateService=Are you sure you want to activate this service with date %s? RefContract=合同参考 DateContract=合同日期 DateServiceActivate=服务激活日期 @@ -69,10 +69,10 @@ DraftContracts=合同草稿 CloseRefusedBecauseOneServiceActive=合同不能被关闭,因为至少有一个开放式服务上 CloseAllContracts=关闭所有合同线 DeleteContractLine=删除线合同 -ConfirmDeleteContractLine=你确定要删除这个合同线? +ConfirmDeleteContractLine=Are you sure you want to delete this contract line? MoveToAnotherContract=移动到另一个合同的服务。 ConfirmMoveToAnotherContract=我选用新的目标合同,确认我想进入这个合同这项服务。 -ConfirmMoveToAnotherContractQuestion=选择了现有合同(同合伙人),你要提出这项服务? +ConfirmMoveToAnotherContractQuestion=Choose in which existing contract (of same third party), you want to move this service to? PaymentRenewContractId=续订合同线(%s的数目) ExpiredSince=失效日期 NoExpiredServices=空空如也——没有过期的主动服务 @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=此列表只包含你作为一个销售代表与 StandardContractsTemplate=标准合同模板 ContactNameAndSignature= %s签名和盖章: OnlyLinesWithTypeServiceAreUsed=仅 "Service" 类型明细将被复制。 +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=签订合同的销售代表 diff --git a/htdocs/langs/zh_CN/donations.lang b/htdocs/langs/zh_CN/donations.lang index 7f043c09cb5..e59ad29c7cf 100644 --- a/htdocs/langs/zh_CN/donations.lang +++ b/htdocs/langs/zh_CN/donations.lang @@ -6,7 +6,7 @@ Donor=捐赠者 AddDonation=新建捐赠 NewDonation=新捐赠 DeleteADonation=删除捐赠 -ConfirmDeleteADonation=你确定想要删除捐赠吗? +ConfirmDeleteADonation=Are you sure you want to delete this donation? ShowDonation=显示捐赠 PublicDonation=市民捐款 DonationsArea=捐赠区 diff --git a/htdocs/langs/zh_CN/exports.lang b/htdocs/langs/zh_CN/exports.lang index 212d4a29b9e..bc4957a73cb 100644 --- a/htdocs/langs/zh_CN/exports.lang +++ b/htdocs/langs/zh_CN/exports.lang @@ -26,8 +26,6 @@ FieldTitle=字段标题 NowClickToGenerateToBuildExportFile=现在,组合框,然后点击选择文件格式“生成”,以建立怀出文件... AvailableFormats=可用的格式 LibraryShort=资料库 -LibraryUsed=使用的资料库 -LibraryVersion=版本 Step=步 FormatedImport=导入助手 FormatedImportDesc1=此区域允许进口的个性化数据,使用过程中的助手,帮助您没有技术知识。 @@ -87,7 +85,7 @@ TooMuchWarnings=还有%s的线,警告其他来源,但产量一直有 EmptyLine=空行(将被丢弃) CorrectErrorBeforeRunningImport=您必须先输入正确运行前确定的所有错误。 FileWasImported=进口数量%s文件。 -YouCanUseImportIdToFindRecord=你可以找到所有进口领域记录筛选您的数据库import_key='%s'. +YouCanUseImportIdToFindRecord=You can find all imported record in your database by filtering on field import_key='%s'. NbOfLinesOK=行数没有错误,也没有警告: %s. NbOfLinesImported=线成功导入数:%s的 。 DataComeFromNoWhere=值插入来自无处源文件。 @@ -105,20 +103,31 @@ CSVFormatDesc=逗号分隔值文件格式(。csv格式)。
这是 Excel95FormatDesc=Excel 文件格式 (.xls)
这是本地的Excel 95格式 (BIFF5).\n Excel2007FormatDesc=Excel文件格式(.XLSX)
这是本地的Excel 2007格式(SpreadsheetML)。 TsvFormatDesc=制表符分隔值文件格式(.tsv)
这是一个字段之间用制表符[tab]分隔的文本文件格式。 -ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate records (with this field added, all lines will own their own id and will differ). +ExportFieldAutomaticallyAdded=Field %s was automatically added. It will avoid you to have similar lines to be treated as duplicate record (with this field added, all lines will own their own id and will differ). CsvOptions=CSV选项 Separator=分隔符 Enclosure=附件 SpecialCode=特殊代码 ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : 按整 年/月/日筛选
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' 按单一值筛选
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=保持栏位为空直到文件结尾为止 +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=如果你想筛选一些值,这里只是输入值。 FilteredFields=过滤字段 FilteredFieldsValues=过滤值 FormatControlRule=控制规则格式 +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/zh_CN/help.lang b/htdocs/langs/zh_CN/help.lang index 5dc261446e2..cf35dd3de5d 100644 --- a/htdocs/langs/zh_CN/help.lang +++ b/htdocs/langs/zh_CN/help.lang @@ -6,12 +6,12 @@ OtherSupport=其他支持 ToSeeListOfAvailableRessources=查看/联络可用的资源: HelpCenter=帮助中心 DolibarrHelpCenter=Dolibarr帮助和支持中心 -ToGoBackToDolibarr=或者,请点击返回Dolibarr简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089 +ToGoBackToDolibarr=或者,请点击返回简体中文翻译可到Dolibarr爱好者交流Q群技术交流:206239089 TypeOfSupport=源支持 TypeSupportCommunauty=社区(免费) TypeSupportCommercial=商业 TypeOfHelp=类型 -NeedHelpCenter=需要帮助或支持吗? +NeedHelpCenter=Need help or support? Efficiency=效率 TypeHelpOnly=只有帮助 TypeHelpDev=帮助+开发 diff --git a/htdocs/langs/zh_CN/holiday.lang b/htdocs/langs/zh_CN/holiday.lang index 4d3dbb300f3..4fe8c7032b6 100644 --- a/htdocs/langs/zh_CN/holiday.lang +++ b/htdocs/langs/zh_CN/holiday.lang @@ -16,7 +16,7 @@ CancelCP=取消 RefuseCP=拒绝 ValidatorCP=同意 ListeCP=请假记录 -ReviewedByCP=审批人 +ReviewedByCP=Will be approved by DescCP=描述 SendRequestCP=创建请假请求 DelayToRequestCP=超过 %s 天(s) 必须请假. diff --git a/htdocs/langs/zh_CN/hrm.lang b/htdocs/langs/zh_CN/hrm.lang index c32d73c71cd..04d6ab39ea4 100644 --- a/htdocs/langs/zh_CN/hrm.lang +++ b/htdocs/langs/zh_CN/hrm.lang @@ -5,7 +5,7 @@ Establishments=机构 Establishment=机构 NewEstablishment=新建机构 DeleteEstablishment=删除机构 -ConfirmDeleteEstablishment=你确定想要删除这个机构吗? +ConfirmDeleteEstablishment=Are-you sure to delete this establishment? OpenEtablishment=打开机构 CloseEtablishment=关闭机构 # Dictionary diff --git a/htdocs/langs/zh_CN/install.lang b/htdocs/langs/zh_CN/install.lang index 5335bd6d3b3..1aae3ad7dde 100644 --- a/htdocs/langs/zh_CN/install.lang +++ b/htdocs/langs/zh_CN/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=您使用从DoliWamp Dolibarr安装向导,所以这里 KeepDefaultValuesDeb=您使用从Ubuntu或者Debian软件包的Dolibarr安装向导,所以这里建议值已经进行了优化。只有数据库的所有者创建的密码必须完成。其他参数的变化,如果你只知道你做什么。 KeepDefaultValuesMamp=您使用从DoliMamp Dolibarr安装向导,所以这里建议值已经进行了优化。他们唯一的变化,如果你知道你做什么。 KeepDefaultValuesProxmox=您使用Proxmox的虚拟设备的Dolibarr安装向导,因此,这里提出的价值已经优化。改变他们,只有当你知道你做什么。 +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/zh_CN/interventions.lang b/htdocs/langs/zh_CN/interventions.lang index 00f8d1f531f..306d47c0374 100644 --- a/htdocs/langs/zh_CN/interventions.lang +++ b/htdocs/langs/zh_CN/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=干预 %s 已删除 InterventionsArea=干预区 DraftFichinter=干预草稿 LastModifiedInterventions= 最近变更的 %s 干预 +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=随访客户联系 # Modele numérotation diff --git a/htdocs/langs/zh_CN/languages.lang b/htdocs/langs/zh_CN/languages.lang index 3d8f0bf23f9..6e18c7c8abe 100644 --- a/htdocs/langs/zh_CN/languages.lang +++ b/htdocs/langs/zh_CN/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=德语 Language_de_AT=德语(奥地利) Language_de_CH=German (Switzerland) Language_el_GR=希腊语 +Language_el_CY=Greek (Cyprus) Language_en_AU=英语(Australie) Language_en_CA=English (Canada) Language_en_GB=英语(英国) @@ -26,8 +27,10 @@ Language_es_BO=Spanish (Bolivia) Language_es_CL=Spanish (Chile) Language_es_CO=Spanish (Colombia) Language_es_DO=Spanish (Dominican Republic) +Language_es_EC=Spanish (Ecuador) Language_es_HN=西班牙语(洪都拉斯) Language_es_MX=西班牙语(墨西哥) +Language_es_PA=Spanish (Panama) Language_es_PY=西班牙语(巴拉圭) Language_es_PE=西班牙语(秘鲁) Language_es_PR=西班牙语(波多黎各) @@ -50,12 +53,14 @@ Language_is_IS=冰岛 Language_it_IT=意大利语 Language_ja_JP=日语 Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=韩国语 Language_lo_LA=Lao Language_lt_LT=立陶宛 Language_lv_LV=拉脱维亚 Language_mk_MK=马其顿 +Language_mn_MN=Mongolian Language_nb_NO=挪威文(巴克摩) Language_nl_BE=荷兰语(比利时) Language_nl_NL=荷兰语(荷兰) diff --git a/htdocs/langs/zh_CN/loan.lang b/htdocs/langs/zh_CN/loan.lang index 1bb21319b62..7db166dbb1a 100644 --- a/htdocs/langs/zh_CN/loan.lang +++ b/htdocs/langs/zh_CN/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s 将指向利率 GoToPrincipal=%s 将指向注册资金 YouWillSpend=你将花费 %s 年 %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=货款模块设置 LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/zh_CN/mails.lang b/htdocs/langs/zh_CN/mails.lang index 94b27ed94f9..e56cb8e65c7 100644 --- a/htdocs/langs/zh_CN/mails.lang +++ b/htdocs/langs/zh_CN/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=发送部分 MailingStatusSentCompletely=发送完全 MailingStatusError=错误 MailingStatusNotSent=不发送 -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=通过电子邮件发送成功验证 MailUnsubcribe=退订 MailingStatusNotContact=不要再联系 @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=在文件%s的线 @@ -116,8 +120,8 @@ Notifications=通知 NoNotificationsWillBeSent=没有电子邮件通知此事件的计划和公司 ANotificationsWillBeSent=1通知将通过电子邮件发送 SomeNotificationsWillBeSent=%s的通知将通过电子邮件发送 -AddNewNotification=激活启用新邮件到达通知提醒 -ListOfActiveNotifications=激活的全部邮件到达通知列表 +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=列出所有发送电子邮件通知 MailSendSetupIs=Email电子邮箱配置设定 '%s'. 这个模式无法用于邮件群发。 MailSendSetupIs2=首先您得这么地, 得先有个管理员账号吧 admin , 进入菜单 %s主页 - 设置 - EMails%s 修改参数 '%s' 用 '%s'模式。 在此模式下, 您才可输入一个 SMTP 服务器地址 来供您收发邮件。 @@ -150,6 +154,6 @@ AdvTgtCreateFilter=创建筛选 AdvTgtOrCreateNewFilter=新筛选器的名称 NoContactWithCategoryFound=分类没有联系人/地址 NoContactLinkedToThirdpartieWithCategoryFound=分类没有联系人/地址 -OutGoingEmailSetup=Outgoing email setup +OutGoingEmailSetup=发件服务器设置 InGoingEmailSetup=Incoming email setup diff --git a/htdocs/langs/zh_CN/main.lang b/htdocs/langs/zh_CN/main.lang index 76de77ade11..6bccc043869 100644 --- a/htdocs/langs/zh_CN/main.lang +++ b/htdocs/langs/zh_CN/main.lang @@ -72,8 +72,10 @@ SeeHere=看这里 Apply=申请 BackgroundColorByDefault=默认的背景颜色 FileRenamed=The file was successfully renamed -FileUploaded=文件上传成功 FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=文件上传成功 +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=一个文件被选中的附件,但还没有上传。点击“附加文件”为这一点。 NbOfEntries=铌条目 GoToWikiHelpPage=阅读在线帮助文档 (需要访问外网) @@ -358,6 +360,7 @@ TotalLT1ES=共有再生能源 TotalLT2ES=共有IRPF HT=不含税 TTC=含增值税 +INCT=Inc. all taxes VAT=增值税 VATs=销售税 LT1ES=稀土 @@ -518,7 +521,6 @@ MonthShort10=10 MonthShort11=11 MonthShort12=12 AttachedFiles=附件 -FileTransferComplete=文件被上传successfuly DateFormatYYYYMM=为YYYY - MM DateFormatYYYYMMDD=为YYYY - MM - dd的 DateFormatYYYYMMDDHHMM=为YYYY - MM - dd的小时:不锈钢 diff --git a/htdocs/langs/zh_CN/margins.lang b/htdocs/langs/zh_CN/margins.lang index 5165c5b41b4..af970f53685 100644 --- a/htdocs/langs/zh_CN/margins.lang +++ b/htdocs/langs/zh_CN/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=税率必须为数字值 markRateShouldBeLesserThan100=Mark rate 将低于 100 ShowMarginInfos=显示利润信息 CheckMargins=利润明细 -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/zh_CN/members.lang b/htdocs/langs/zh_CN/members.lang index 1507995b0da..bdb877168d7 100644 --- a/htdocs/langs/zh_CN/members.lang +++ b/htdocs/langs/zh_CN/members.lang @@ -23,13 +23,13 @@ MembersListToValid=准会员 (待验证)列表 MembersListValid=有效人员名录 MembersListUpToDate=最新订阅有效会员列表 MembersListNotUpToDate=即日起订阅的有效会员列表 -MembersListResiliated=List of terminated members +MembersListResiliated=解雇会员列表 MembersListQualified=合格会员列表 MenuMembersToValidate=待定会员 MenuMembersValidated=认证会员 MenuMembersUpToDate=新进人员 -MenuMembersNotUpToDate=老油条 -MenuMembersResiliated=Terminated members +MenuMembersNotUpToDate=过期会员 +MenuMembersResiliated=解雇会员 MembersWithSubscriptionToReceive=接受订阅会员 DateSubscription=认购日期 DateEndSubscription=认购结束日期 @@ -41,19 +41,19 @@ MemberType=会员类型 MemberTypeId=会员类型ID MemberTypeLabel=会员类型标签 MembersTypes=会员类型 -MemberStatusDraft=草稿(需要验证) +MemberStatusDraft=草稿(需要确认) MemberStatusDraftShort=草稿 MemberStatusActive=验证(等待订阅) -MemberStatusActiveShort=验证 +MemberStatusActiveShort=已确认 MemberStatusActiveLate=Subscription expired MemberStatusActiveLateShort=过期 MemberStatusPaid=认购最新 MemberStatusPaidShort=截至日期 MemberStatusResiliated=Terminated member MemberStatusResiliatedShort=Terminated -MembersStatusToValid=待定人员 -MembersStatusResiliated=Terminated members -NewCotisation=新的贡献 +MembersStatusToValid=待定会员 +MembersStatusResiliated=解雇会员 +NewCotisation=新的捐献 PaymentSubscription=支付的新贡献 SubscriptionEndDate=认购的结束日期 MembersTypeSetup=会员类型设定 @@ -90,6 +90,7 @@ PublicMemberList=公共会员名录 BlankSubscriptionForm=公众订阅表格 BlankSubscriptionFormDesc=Dolibarr可以为您提供一个公网URL允许外部访问者问到订阅的基础。如果启用在线支付模块,付款方式也将被自动提供。 EnablePublicSubscriptionForm=是否允许公众自动订阅表格 +ForceMemberType=Force the member type ExportDataset_member_1=会员和订阅 ImportDataset_member_1=会员 LastMembersModified=最近变更的 %s 位会员 @@ -150,7 +151,8 @@ MembersByTownDesc=此界面显示按村镇统计人员的数据。 MembersStatisticsDesc=选择你想读的统计... MenuMembersStats=统计 LastMemberDate=Latest member date -Nature=性质 +LatestSubscriptionDate=Latest subscription date +Nature=属性 Public=信息是否公开 NewMemberbyWeb=增加了新成员。等待批准中 NewMemberForm=新成员申请表 diff --git a/htdocs/langs/zh_CN/modulebuilder.lang b/htdocs/langs/zh_CN/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/zh_CN/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/zh_CN/multicurrency.lang b/htdocs/langs/zh_CN/multicurrency.lang new file mode 100644 index 00000000000..b8ed714c199 --- /dev/null +++ b/htdocs/langs/zh_CN/multicurrency.lang @@ -0,0 +1,18 @@ +# Dolibarr language file - Source file is en_US - multicurrency +MultiCurrency=Multi currency +ErrorAddRateFail=Error in added rate +ErrorAddCurrencyFail=Error in added currency +ErrorDeleteCurrencyFail=Error delete fail +multicurrency_syncronize_error=Synchronisation error: %s +multicurrency_useOriginTx=When an object is created from another, keep the original rate of source object (otherwise use the new known rate) +CurrencyLayerAccount=CurrencyLayer API +CurrencyLayerAccount_help_to_synchronize=You sould create an account on their website to use this functionnality
Get your API key
If you use a free account you can't change the currency source (USD by default)
But if your main currency isn't USD you can use the alternate currency source to force you main currency

You are limited at 1000 synchronizations per month +multicurrency_appId=API key +multicurrency_appCurrencySource=Currency source +multicurrency_alternateCurrencySource= Alternate currency souce +CurrenciesUsed=Currencies used +CurrenciesUsed_help_to_add=Add the differents currencies and rates you need to use on you proposals, orders, etc. +rate=rate +MulticurrencyReceived=Received, original currency +MulticurrencyRemainderToTake=Remaining amout, original currency +MulticurrencyPaymentAmount=Payment amount, original currency diff --git a/htdocs/langs/zh_CN/oauth.lang b/htdocs/langs/zh_CN/oauth.lang index 357e50b571f..31f37b057fe 100644 --- a/htdocs/langs/zh_CN/oauth.lang +++ b/htdocs/langs/zh_CN/oauth.lang @@ -2,20 +2,24 @@ ConfigOAuth=认证配置 OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=没有访问token保存到本地数据库 HasAccessToken=一个token已生成并保存到本地数据库 -NewTokenStored=接收并保存Token -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=删除Token RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=点击这里删除token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at -TOKEN_DELETE=Delete saved token +TOKEN_DELETE=删除已保存的Token OAUTH_GOOGLE_NAME=Oauth Google service OAUTH_GOOGLE_ID=Oauth Google Id OAUTH_GOOGLE_SECRET=Oauth Google Secret diff --git a/htdocs/langs/zh_CN/other.lang b/htdocs/langs/zh_CN/other.lang index 9820e25f517..d732e68bfe1 100644 --- a/htdocs/langs/zh_CN/other.lang +++ b/htdocs/langs/zh_CN/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=公斤 WeightUnitg=克 WeightUnitmg=毫克 WeightUnitpound=英镑 +WeightUnitounce=盎司 Length=长度 LengthUnitm=米 LengthUnitdm=马克 diff --git a/htdocs/langs/zh_CN/paybox.lang b/htdocs/langs/zh_CN/paybox.lang index 28c7b2f067f..77de7b3e473 100644 --- a/htdocs/langs/zh_CN/paybox.lang +++ b/htdocs/langs/zh_CN/paybox.lang @@ -11,6 +11,7 @@ YourEMail=付款确认的电子邮件 Creditor=债权人 PaymentCode=付款代码 PayBoxDoPayment=前往付款 +ToPay=执行付款 YouWillBeRedirectedOnPayBox=您将被重定向担保Paybox页,输入您的信用卡信息 Continue=下一个 ToOfferALinkForOnlinePayment=网址为%s支付 diff --git a/htdocs/langs/zh_CN/paypal.lang b/htdocs/langs/zh_CN/paypal.lang index 3be076ef9c1..8f2f17dedf5 100644 --- a/htdocs/langs/zh_CN/paypal.lang +++ b/htdocs/langs/zh_CN/paypal.lang @@ -11,20 +11,22 @@ PAYPAL_SSLVERSION=Curl SSL 版本 PAYPAL_API_INTEGRAL_OR_PAYPALONLY=优惠“不可分割的”支付(信用卡+贝宝)或“贝宝”只 PaypalModeIntegral=积分 PaypalModeOnlyPaypal=支付宝 -PAYPAL_CSS_URL=optionnal付款页面的CSS样式表的URL +PAYPAL_CSS_URL=Optionnal URL of CSS style sheet on payment page ThisIsTransactionId=这是交易编号:%s PAYPAL_ADD_PAYMENT_URL=当你邮寄一份文件,添加URL Paypal付款 PredefinedMailContentLink=您可以点击下面的安全链接,使您的​​支付宝(PayPal),如果它不是已经完成。⏎⏎ %s ⏎⏎. YouAreCurrentlyInSandboxMode=您目前在“沙箱”模式 -NewPaypalPaymentReceived=新建Paypal收款 -NewPaypalPaymentFailed=尝试新建Paypal收款但失败了 +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=电子邮件提醒后付款(成功与否) ReturnURLAfterPayment=付款后返回网页地址 -ValidationOfPaypalPaymentFailed=Paypal(支付宝)付款验证失败 -PaypalConfirmPaymentPageWasCalledButFailed=Paypal(支付宝)清求付款确认页面,但确认失败 +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=简短错误信息 ErrorCode=错误代码 ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/zh_CN/printing.lang b/htdocs/langs/zh_CN/printing.lang index bb0017116ad..8a25b94cab1 100644 --- a/htdocs/langs/zh_CN/printing.lang +++ b/htdocs/langs/zh_CN/printing.lang @@ -16,7 +16,7 @@ SetupDriver=驱动设置 TargetedPrinter=目标打印机 UserConf=单用户设置 PRINTGCP_INFO=谷歌 OAuth API 设置 -PRINTGCP_AUTHLINK=Authentication +PRINTGCP_AUTHLINK=认证 PRINTGCP_TOKEN_ACCESS=谷歌云打印 OAuth Token PrintGCPDesc=这个驱动允许发送文档至谷歌云打印机。 GCP_Name=名称 @@ -46,6 +46,6 @@ IPP_Media=打印媒体 IPP_Supported=媒体类型 DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=配置可用的谷歌云打印机驱动 PrintTestDescprintgcp=谷歌云打印机列表 diff --git a/htdocs/langs/zh_CN/products.lang b/htdocs/langs/zh_CN/products.lang index 59d8ebb6a4e..599b203ffc8 100644 --- a/htdocs/langs/zh_CN/products.lang +++ b/htdocs/langs/zh_CN/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=科目代码(销售) ProductOrService=产品或服务 ProductsAndServices=产品和服务 ProductsOrServices=产品或服务 -ProductsOnSell=可销售的产品或可采购的产品 -ProductsNotOnSell=不可销售的产品和不可采购的产品 +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=可销售的产品和可采购的产品 -ServicesOnSell=可销售的服务或可采购的服务 -ServicesNotOnSell=不可销售的服务 +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=可销售的服务与可采购的服务 LastModifiedProductsAndServices=最近变更的 %s 个产品/服务 LastRecordedProducts=最近登记的 %s 产品 @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=升 l=L +unitP=Piece +unitSET=Set +unitS=第二 +unitH=小时 +unitD=天 +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=产品编号模板 ServiceCodeModel=服务编号模板 CurrentProductPrice=当前价格 @@ -186,6 +200,7 @@ MultipriceRules=市场价格规则 UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% 变化 %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=生产 ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=子产品 MinSupplierPrice=供应商的最低价 MinCustomerPrice=最低客户价格 DynamicPriceConfiguration=动态价格配置 -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=添加变量 AddUpdater=添加更新 GlobalVariables=全局变量 VariableToUpdate=变量到更新 GlobalVariableUpdaters=全局变量更新 +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=升级更新间隔(分钟) LastUpdated=Latest update CorrectlyUpdated=当前更新 @@ -260,6 +281,8 @@ SizeUnits=大小单位 DeleteProductBuyPrice=删除买价 ConfirmDeleteProductBuyPrice=您确定想要删除买价吗? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/zh_CN/propal.lang b/htdocs/langs/zh_CN/propal.lang index d436626cf51..25034b9ec80 100644 --- a/htdocs/langs/zh_CN/propal.lang +++ b/htdocs/langs/zh_CN/propal.lang @@ -3,7 +3,7 @@ Proposals=报价单 Proposal=报价单 ProposalShort=报价 ProposalsDraft=起草报价单 -ProposalsOpened=未关闭的报价单 +ProposalsOpened=开启商业报价 Prop=报价单 CommercialProposal=报价单 ProposalCard=报价 信息卡 @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=金额 (税前)/每月 NbOfProposals=报价单数量 ShowPropal=显示报价 PropalsDraft=草稿 -PropalsOpened=启动 +PropalsOpened=打开 PropalStatusDraft=草稿(需要验证) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=已签署(待付款) diff --git a/htdocs/langs/zh_CN/resource.lang b/htdocs/langs/zh_CN/resource.lang index 8f623536ee3..70350bae181 100644 --- a/htdocs/langs/zh_CN/resource.lang +++ b/htdocs/langs/zh_CN/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=资源成功删除 DictionaryResourceType=资源类别 SelectResource=请选择资源 + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=资源 diff --git a/htdocs/langs/zh_CN/salaries.lang b/htdocs/langs/zh_CN/salaries.lang index bd66875ec16..0696678782a 100644 --- a/htdocs/langs/zh_CN/salaries.lang +++ b/htdocs/langs/zh_CN/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=薪酬支付的财务会计科目代码 -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=财务记账科目代码 +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=工资 Salaries=工资 NewSalaryPayment=新建工资支付 diff --git a/htdocs/langs/zh_CN/sendings.lang b/htdocs/langs/zh_CN/sendings.lang index 870f56c1309..fb19a451f9d 100644 --- a/htdocs/langs/zh_CN/sendings.lang +++ b/htdocs/langs/zh_CN/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=运输表格 ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=简洁的文档模板 DocumentModelMerou=Merou A5 model WarningNoQtyLeftToSend=警告,没有产品等待装运。 StatsOnShipmentsOnlyValidated=对运输进行统计验证。使用的数据的验证的装运日期(计划交货日期并不总是已知)。 @@ -51,10 +50,10 @@ ActionsOnShipping=运输活动 LinkToTrackYourPackage=链接到追踪您的包裹 ShipmentCreationIsDoneFromOrder=就目前而言,创建一个新的装运完成从订单信息卡。 ShipmentLine=运输线路 -ProductQtyInCustomersOrdersRunning=打开的客户订单中产品的数量 -ProductQtyInSuppliersOrdersRunning=供应商订单中产品数量 -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=已接收到的供应商订单中产品数量 +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=重量/体积 ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/zh_CN/sms.lang b/htdocs/langs/zh_CN/sms.lang index 6d50316c18b..8ffbcb58548 100644 --- a/htdocs/langs/zh_CN/sms.lang +++ b/htdocs/langs/zh_CN/sms.lang @@ -38,7 +38,7 @@ SmsStatusNotSent=不发送 SmsSuccessfulySent=短信正确发送(从%s %s) ErrorSmsRecipientIsEmpty=目标号码是空的 WarningNoSmsAdded=没有新的电话号码添加到目标列表 -ConfirmValidSms=你确认这个战役的验证? +ConfirmValidSms=Do you confirm validation of this campain? NbOfUniqueSms=电话号码单位数量 NbOfSms=电话号码数量 ThisIsATestMessage=这是一条测试消息 diff --git a/htdocs/langs/zh_CN/stocks.lang b/htdocs/langs/zh_CN/stocks.lang index 4cc01c23b15..abb1b61677c 100644 --- a/htdocs/langs/zh_CN/stocks.lang +++ b/htdocs/langs/zh_CN/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=调拨标签 NumberOfUnit=单位数目 UnitPurchaseValue=采购单价 StockTooLow=库存过低 -StockLowerThanLimit=库存低于预警限额 +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=值 PMPValue=加权平均价格 PMPValueShort=的WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=派出数量 QtyDispatchedShort=派送数量 QtyToDispatchShort=分配数量 -OrderDispatch=联合调度 +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=减少来自客户发票或信用凭证中实际库存的验证 @@ -62,16 +62,19 @@ DeStockOnShipment=减少实际库存送货验证 DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=增加对供应商发票的实际库存/信用票据验证 ReStockOnValidateOrder=对供应商订单增加赞许 -ReStockOnDispatchOrder=增加人工调度到仓库供应商接到订单后,实时库存 +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=命令还没有或根本没有更多的地位,使产品在仓库库存调度。 -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=此对象没有预定义的产品。因此,没有库存调度是必需的。 DispatchVerb=派遣 StockLimitShort=最小预警值 StockLimit=最小库存预警 PhysicalStock=实际库存 RealStock=实际库存 +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=虚拟库存 +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=编号仓库 DescWareHouse=说明仓库 LieuWareHouse=本地化仓库 @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=批量库存调拨 SelectProductInAndOutWareHouse=请选择一个产品,数量值,来源仓和目标仓,然后点击 "%s"。完了之后呢,点击 "%s"。 -RecordMovement=记录移转 +RecordMovement=Record transfer ReceivingForSameOrder=此订单的收据 StockMovementRecorded=库存调拨已记录 RuleForStockAvailability=库存要求规则 @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=编辑 +inventoryValidate=已确认 +inventoryDraft=* 执行中/running +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=创建 +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=分类筛选 +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=添加 +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=删除行 +RegulateStock=Regulate Stock +ListInventory=名单 diff --git a/htdocs/langs/zh_CN/stripe.lang b/htdocs/langs/zh_CN/stripe.lang new file mode 100644 index 00000000000..c93e6bb14ae --- /dev/null +++ b/htdocs/langs/zh_CN/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=以下网址可提供给客户的网页上,能够作出Dolibarr支付对象 +PaymentForm=付款方式 +WelcomeOnPaymentPage=欢迎您来到我们的在线支付服务 +ThisScreenAllowsYouToPay=这个屏幕允许你进行网上支付%s。 +ThisIsInformationOnPayment=这是在做付款信息 +ToComplete=要完成 +YourEMail=付款确认的电子邮件 +STRIPE_PAYONLINE_SENDEMAIL=电子邮件提醒后付款(成功与否) +Creditor=债权人 +PaymentCode=付款代码 +StripeDoPayment=前往付款 +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=下一个 +ToOfferALinkForOnlinePayment=网址为%s支付 +ToOfferALinkForOnlinePaymentOnOrder=网址提供一个命令%s网上支付的用户界面 +ToOfferALinkForOnlinePaymentOnInvoice=网址提供发票一%s在线支付的用户界面 +ToOfferALinkForOnlinePaymentOnContractLine=网址提供了一个合同线%s在线支付的用户界面 +ToOfferALinkForOnlinePaymentOnFreeAmount=网址提供一个免费的网上支付金额%s用户界面 +ToOfferALinkForOnlinePaymentOnMemberSubscription=网址为会员提供订阅%s在线支付的用户界面 +YouCanAddTagOnUrl=You can also add url parameter &tag=value to any of those URL (required only for free payment) to add your own payment comment tag. +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=本页面确认您的付款已记录。谢谢。 +YourPaymentHasNotBeenRecorded=您的付款并没有被记录和交易已取消。谢谢。 +AccountParameter=帐户参数 +UsageParameter=使用参数 +InformationToFindParameters=帮助,找到你的%s帐户信息 +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=供应商名称 +CSSUrlForPaymentForm=付款方式的CSS样式表的URL +MessageOK=讯息验证支付返回页面 +MessageKO=取消支付返回页面的讯息 +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/zh_CN/supplier_proposal.lang b/htdocs/langs/zh_CN/supplier_proposal.lang index d80e6925b42..442dd9fa8ca 100644 --- a/htdocs/langs/zh_CN/supplier_proposal.lang +++ b/htdocs/langs/zh_CN/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=搜索申请 DraftRequests=草稿 SupplierProposalsDraft=供应商报价草稿 LastModifiedRequests=最近变更的 %s 份询价申请 -RequestsOpened=Opened price requests +RequestsOpened=打开询价申请 SupplierProposalArea=供应商报价区 SupplierProposalShort=供应商报价 SupplierProposals=供应商报价 @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=删除申请 ValidateAsk=验证申请 SupplierProposalStatusDraft=草稿(需要确认) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=关闭 SupplierProposalStatusSigned=接受 SupplierProposalStatusNotSigned=拒绝 @@ -47,7 +47,7 @@ CommercialAsk=询价申请 DefaultModelSupplierProposalCreate=设置默认模板 DefaultModelSupplierProposalToBill=当关闭询价申请时的默认模板 (接受) DefaultModelSupplierProposalClosed=当关闭询价申请时的默认模板 (拒绝) -ListOfSupplierProposal=供应商报价需求列表 +ListOfSupplierProposals=供应商报价需求列表 ListSupplierProposalsAssociatedProject=供应商报价与项目列表 SupplierProposalsToClose=供应商无效报价 SupplierProposalsToProcess=处理供应商报价 diff --git a/htdocs/langs/zh_CN/suppliers.lang b/htdocs/langs/zh_CN/suppliers.lang index 4941e8c2f51..959376f3f88 100644 --- a/htdocs/langs/zh_CN/suppliers.lang +++ b/htdocs/langs/zh_CN/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=供应商价格 ReferenceSupplierIsAlreadyAssociatedWithAProduct=该参考供应商已经与一参考:%s的 NoRecordedSuppliers=空空如也——没有供应商记录 SupplierPayment=供应商付款 @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=劣质 ReputationForThisProduct=Reputation BuyerName=买家名称 AllProductServicePrices=All product / service prices +BuyingPriceNumShort=供应商价格 diff --git a/htdocs/langs/zh_CN/trips.lang b/htdocs/langs/zh_CN/trips.lang index 2e2dc841dbb..2d7114b4af1 100644 --- a/htdocs/langs/zh_CN/trips.lang +++ b/htdocs/langs/zh_CN/trips.lang @@ -12,7 +12,7 @@ ListOfFees=费用清单 TypeFees=费用类型 ShowTrip=显示费用报表 NewTrip=新建费用报表 -CompanyVisited=公司/基础访问 +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=金额或公里 DeleteTrip=删除费用报表 ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=等待审批 ExpensesArea=费用报表区 ClassifyRefunded=归类 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=费用报销单已经提交并在等待审批中.\n- 用户: %s\n- 时期: %s\n点击这里来验证: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=费用报表ID号 AnyOtherInThisListCanValidate=通知人确认。 TripSociete=公司资料信息 @@ -59,31 +69,24 @@ DATE_REFUS=否认日期 DATE_SAVE=验证日期 DATE_CANCEL=取消日期 DATE_PAIEMENT=付款日期 - BROUILLONNER=重新打开 +ExpenseReportRef=Ref. expense report ValidateAndSubmit=同意验证和提交 ValidatedWaitingApproval=验证 (等待审批) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=费用报表回退到"草稿"状态 ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=批准费用报表 ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=支付费用报表 - ExpenseReportsToApprove=批准费用报表 ExpenseReportsToPay=支付费用报表 +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/zh_CN/users.lang b/htdocs/langs/zh_CN/users.lang index 5322a6d7bd8..06b26fea781 100644 --- a/htdocs/langs/zh_CN/users.lang +++ b/htdocs/langs/zh_CN/users.lang @@ -66,8 +66,8 @@ InternalUser=内部用户 ExportDataset_user_1=Dolibarr的用户和属性 DomainUser=域用户%s Reactivate=重新激活 -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=内部用户是一个用户同时也是你的公司/机构的一部分。
外部用户是一个客户,供应商或其他。

在这两种情况下,定义了Dolibarr权利权限,也有外部用户可以比内部用户(见首页 - 设置 - 显示界面) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=因为从权限授予一个用户的一组继承。 Inherited=遗传 UserWillBeInternalUser=创建的用户将是一个内部用户(因为没有联系到一个特定的合伙人) @@ -102,4 +102,4 @@ DisabledInMonoUserMode=Disabled in maintenance mode UserAccountancyCode=用户科目代码 UserLogoff=用户注销 UserLogged=用户登录 -DateEmployment=Date of Employment +DateEmployment=入职日期 diff --git a/htdocs/langs/zh_CN/website.lang b/htdocs/langs/zh_CN/website.lang index edd7384d103..5e31578f533 100644 --- a/htdocs/langs/zh_CN/website.lang +++ b/htdocs/langs/zh_CN/website.lang @@ -6,6 +6,7 @@ ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its page WEBSITE_PAGENAME=页面名字/别名 WEBSITE_CSS_URL=外部CSS文件的URL地址 WEBSITE_CSS_INLINE=CSS 内容 +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=媒体库 EditCss=编辑 Style/CSS EditMenu=编辑菜单 @@ -14,8 +15,9 @@ EditPageContent=编辑内容 Website=网站 Webpage=Web page AddPage=添加页面 +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=网站 '%s' 页面 %s 已删除 PageAdded=页面 '%s' 已添加 ViewSiteInNewTab=在新标签页查看网站 @@ -23,6 +25,7 @@ ViewPageInNewTab=在新标签页查看页面 SetAsHomePage=设为首页 RealURL=真实URL地址 ViewWebsiteInProduction=使用主页URL网址查看网页 -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/zh_CN/withdrawals.lang b/htdocs/langs/zh_CN/withdrawals.lang index fb0baabd7b8..540c7ad03ff 100644 --- a/htdocs/langs/zh_CN/withdrawals.lang +++ b/htdocs/langs/zh_CN/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=收回的款额 WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=无付款方式客户发票“撤回”是等待。继续就提款卡发票'标签作出要求。 +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=责任人 WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=拒绝的原因 RefusedInvoicing=帐单拒绝 NoInvoiceRefused=拒绝不收 InvoiceRefused=订单已被拒绝 (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=等候 StatusTrans=传播 StatusCredited=计入 diff --git a/htdocs/langs/zh_TW/accountancy.lang b/htdocs/langs/zh_TW/accountancy.lang index 115e212c047..9f121aa2734 100644 --- a/htdocs/langs/zh_TW/accountancy.lang +++ b/htdocs/langs/zh_TW/accountancy.lang @@ -28,6 +28,7 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +AlreadyInGeneralLedger=Already journalized in ledgers AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -62,7 +63,6 @@ Addanaccount=Add an accounting account AccountAccounting=Accounting account AccountAccountingShort=Account SubledgerAccount=Subledger Account -subledger_account=Subledger Account ShowAccountingAccount=Show accounting account ShowAccountingJournal=Show accounting journal AccountAccountingSuggest=Accounting account suggested @@ -79,6 +79,7 @@ SuppliersVentilation=Supplier invoice binding ExpenseReportsVentilation=Expense report binding CreateMvts=Create new transaction UpdateMvts=Modification of a transaction +ValidTransaction=Validate transaction WriteBookKeeping=Journalize transactions in Ledger Bookkeeping=Ledger AccountBalance=Account balance @@ -142,6 +143,7 @@ NumPiece=Piece number TransactionNumShort=Num. transaction AccountingCategory=Accounting account groups GroupByAccountAccounting=Group by accounting account +ByAccounts=By accounts NotMatch=Not Set DeleteMvt=Delete Ledger lines DelYear=Year to delete @@ -214,12 +216,14 @@ AccountingJournalType1=Various operation AccountingJournalType2=可否銷售 AccountingJournalType3=可否採購 AccountingJournalType4=银行 +AccountingJournalType5=Expenses report AccountingJournalType9=Has-new ErrorAccountingJournalIsAlreadyUse=This journal is already use ## Export Exports=Exports Export=Export +ExportDraftJournal=Export draft journal Modelcsv=Model of export OptionsDeactivatedForThisExportModel=For this export model, options are deactivated Selectmodelcsv=Select a model of export diff --git a/htdocs/langs/zh_TW/admin.lang b/htdocs/langs/zh_TW/admin.lang index e289bce6a50..b3662996060 100644 --- a/htdocs/langs/zh_TW/admin.lang +++ b/htdocs/langs/zh_TW/admin.lang @@ -536,7 +536,7 @@ Module1120Desc=Request supplier commercial proposal and prices Module1200Name=螂 Module1200Desc=螳螂一體化 Module1400Name=會計 -Module1400Desc=會計管理(雙方) +Module1400Desc=Accounting management (double entries) Module1520Name=Document Generation Module1520Desc=Mass mail document generation Module1780Name=Tags/Categories @@ -585,7 +585,7 @@ Module50100Desc=Point of sales module (POS). Module50200Name=貝寶 Module50200Desc=模組提供信用卡與Paypal網上支付頁面 Module50400Name=Accounting (advanced) -Module50400Desc=會計管理(雙方) +Module50400Desc=Accounting management (double entries) Module54000Name=PrintIPP Module54000Desc=Direct print (without opening the documents) using Cups IPP interface (Printer must be visible from server, and CUPS must be installe on server). Module55000Name=Poll, Survey or Vote diff --git a/htdocs/langs/zh_TW/agenda.lang b/htdocs/langs/zh_TW/agenda.lang index 2ad0c300da7..837cb23d25f 100644 --- a/htdocs/langs/zh_TW/agenda.lang +++ b/htdocs/langs/zh_TW/agenda.lang @@ -2,6 +2,7 @@ IdAgenda=ID event Actions=事件 Agenda=議程 +TMenuAgenda=議程 Agendas=議程 LocalAgenda=內部日曆 ActionsOwnedBy=事件屬於 @@ -47,12 +48,13 @@ InvoiceDeleteDolibarr=刪除發票 InvoicePaidInDolibarr=Invoice %s changed to paid InvoiceCanceledInDolibarr=Invoice %s canceled MemberValidatedInDolibarr=Member %s validated +MemberModifiedInDolibarr=Member %s modified MemberResiliatedInDolibarr=Member %s terminated MemberDeletedInDolibarr=Member %s deleted MemberSubscriptionAddedInDolibarr=Subscription for member %s added ShipmentValidatedInDolibarr=Shipment %s validated -ShipmentClassifyClosedInDolibarr=Shipment %s classify billed -ShipmentUnClassifyCloseddInDolibarr=Shipment %s classify reopened +ShipmentClassifyClosedInDolibarr=Shipment %s classified billed +ShipmentUnClassifyCloseddInDolibarr=Shipment %s classified reopened ShipmentDeletedInDolibarr=Shipment %s deleted OrderCreatedInDolibarr=Order %s created OrderValidatedInDolibarr=採購訂單%s已驗證 @@ -73,13 +75,17 @@ InterventionSentByEMail=通過電子郵件發送的幹預%s ProposalDeleted=Proposal deleted OrderDeleted=Order deleted InvoiceDeleted=Invoice deleted +PRODUCT_CREATEInDolibarr=Product %s created +PRODUCT_MODIFYInDolibarr=Product %s modified +PRODUCT_DELETEInDolibarr=Product %s deleted ##### End agenda events ##### +AgendaModelModule=Document templates for event DateActionStart=開始日期 DateActionEnd=結束日期 AgendaUrlOptions1=您還可以添加以下參數來篩選輸出: -AgendaUrlOptions2=login=%s to restrict output to actions created by or assigned to user %s. AgendaUrlOptions3=logina=%s to restrict output to actions owned by a user %s. -AgendaUrlOptions4=logint=%s到限制輸出到行動使用者與受影響%。 +AgendaUrlOptionsNotAdmin=logina=!%s to restrict output to actions not owned by user %s. +AgendaUrlOptions4=logint=%s to restrict output to actions assigned to user %s (owner and others). AgendaUrlOptionsProject=project=PROJECT_ID to restrict output to actions associated to project PROJECT_ID. AgendaShowBirthdayEvents=Show birthdays of contacts AgendaHideBirthdayEvents=Hide birthdays of contacts diff --git a/htdocs/langs/zh_TW/banks.lang b/htdocs/langs/zh_TW/banks.lang index afd19018e72..7ba0be71a05 100644 --- a/htdocs/langs/zh_TW/banks.lang +++ b/htdocs/langs/zh_TW/banks.lang @@ -66,6 +66,7 @@ RemoveFromRubriqueConfirm=Are you sure you want to remove link between the entry ListBankTransactions=List of bank entries IdTransaction=事務ID BankTransactions=Bank entries +BankTransaction=Bank entry ListTransactions=List entries ListTransactionsByCategory=List entries/category TransactionsToConciliate=Entries to reconcile @@ -74,13 +75,13 @@ Conciliate=調和 Conciliation=和解 ReconciliationLate=Reconciliation late IncludeClosedAccount=包括關閉賬戶 -OnlyOpenedAccount=只有開立帳戶 +OnlyOpenedAccount=僅開立賬戶 AccountToCredit=帳戶信用 AccountToDebit=帳戶轉帳 DisableConciliation=此帳戶的禁用和解功能 ConciliationDisabled=和解功能禁用 LinkedToAConciliatedTransaction=Linked to a conciliated entry -StatusAccountOpened=開業 +StatusAccountOpened=開放 StatusAccountClosed=關閉 AccountIdShort=數 LineRecord=交易 @@ -150,3 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. +NewVariousPayment=New various payment +VariousPayment=Various payment +VariousPayments=Various payments +ShowVariousPayment=Show various payment diff --git a/htdocs/langs/zh_TW/bills.lang b/htdocs/langs/zh_TW/bills.lang index 3f14889062d..81c1029f289 100644 --- a/htdocs/langs/zh_TW/bills.lang +++ b/htdocs/langs/zh_TW/bills.lang @@ -15,9 +15,9 @@ DisabledBecauseNotErasable=Disabled because cannot be erased InvoiceStandard=發票 InvoiceStandardAsk=發票 InvoiceStandardDesc=這是一種常見的發票。 -InvoiceDeposit=定金發票 -InvoiceDepositAsk=定金發票 -InvoiceDepositDesc=這種類型的發票時進行存款已被接受。 +InvoiceDeposit=Down payment invoice +InvoiceDepositAsk=Down payment invoice +InvoiceDepositDesc=This kind of invoice is done when a down payment has been received. InvoiceProForma=形式發票 InvoiceProFormaAsk=形式發票 InvoiceProFormaDesc=形式發票是發票的形象,但沒有一個真正的會計價值。 @@ -62,7 +62,7 @@ PaymentsBack=付款回 paymentInInvoiceCurrency=in invoices currency PaidBack=返回款項 DeletePayment=刪除付款 -ConfirmDeletePayment=你確定要刪除這個付款? +ConfirmDeletePayment=Are you sure you want to delete this payment? ConfirmConvertToReduc=Do you want to convert this %s into an absolute discount ?
The amount will so be saved among all discounts and could be used as a discount for a current or a future invoice for this customer. SupplierPayments=已收到的供應商付款單據清單 ReceivedPayments=收到的付款 @@ -115,7 +115,7 @@ BillStatus=發票狀態 StatusOfGeneratedInvoices=Status of generated invoices BillStatusDraft=草案(等待驗證) BillStatusPaid=支付 -BillStatusPaidBackOrConverted=Refund or converted into discount +BillStatusPaidBackOrConverted=Credit note refund or converted into discount BillStatusConverted=轉換成折扣 BillStatusCanceled=棄 BillStatusValidated=驗證(需要付費) @@ -127,7 +127,7 @@ BillStatusClosedPaidPartially=支付(部分) BillShortStatusDraft=草案 BillShortStatusPaid=支付 BillShortStatusPaidBackOrConverted=Refund or converted -BillShortStatusConverted=加工 +BillShortStatusConverted=已支付 BillShortStatusCanceled=棄 BillShortStatusValidated=驗證 BillShortStatusStarted=開始 @@ -198,12 +198,12 @@ ShowBill=顯示發票 ShowInvoice=顯示發票 ShowInvoiceReplace=顯示發票取代 ShowInvoiceAvoir=顯示信貸說明 -ShowInvoiceDeposit=顯示發票保證金 +ShowInvoiceDeposit=Show down payment invoice ShowInvoiceSituation=Show situation invoice ShowPayment=顯示支付 AlreadyPaid=已支付 AlreadyPaidBack=Already paid back -AlreadyPaidNoCreditNotesNoDeposits=已支付(無信用票據及存款) +AlreadyPaidNoCreditNotesNoDeposits=Already paid (without credit notes and down payments) Abandoned=棄 RemainderToPay=Remaining unpaid RemainderToTake=Remaining amount to take @@ -270,10 +270,10 @@ RelativeDiscount=相對折扣 GlobalDiscount=全球折扣 CreditNote=信用票據 CreditNotes=信用票據 -Deposit=存款 -Deposits=存款 +Deposit=Down payment +Deposits=Down payments DiscountFromCreditNote=從信用註意%折扣s -DiscountFromDeposit=從存款收支的發票% +DiscountFromDeposit=Down payments from invoice %s DiscountFromExcessReceived=Payments from excess received of invoice %s AbsoluteDiscountUse=這種信貸可用於發票驗證前 CreditNoteDepositUse=Invoice must be validated to use this kind of credits @@ -447,7 +447,7 @@ CantRemovePaymentWithOneInvoicePaid=無法刪除,因為至少有付款發票 ExpectedToPay=預期付款 CantRemoveConciliatedPayment=Can't remove conciliated payment PayedByThisPayment=氟離子選擇電極通過此付款 -ClosePaidInvoicesAutomatically=Classify "Paid" all standard, situation or replacement invoices entirely paid. +ClosePaidInvoicesAutomatically=Classify "Paid" all standard, down payment or replacement invoices entirely paid. ClosePaidCreditNotesAutomatically=Classify "Paid" all credit notes entirely paid back. ClosePaidContributionsAutomatically=Classify "Paid" all social or fiscal contributions entirely paid. AllCompletelyPayedInvoiceWillBeClosed=所有發票仍然沒有支付將被自動關閉狀態“支付最高”。 @@ -462,9 +462,9 @@ YouMustCreateStandardInvoiceFirstDesc=You have to create a standard invoice firs PDFCrabeDescription=一個完整的PDF發票(invoice)文件範本(支援營業稅選項,折扣,付款條件..) PDFCrevetteDescription=Invoice PDF template Crevette. A complete invoice template for situation invoices TerreNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 -MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for deposit invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +MarsNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for replacement invoices, %syymm-nnnn for down payment invoices and %syymm-nnnn for credit notes where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 TerreNumRefModelError=美元的法案syymm起已經存在,而不是與此序列模型兼容。刪除或重新命名它激活該模塊。 -CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for deposit invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 +CactusNumRefModelDesc1=Return number with format %syymm-nnnn for standard invoices, %syymm-nnnn for credit notes and %syymm-nnnn for down payment invoices where yy is year, mm is month and nnnn is a sequence with no break and no return to 0 ##### Types de contacts ##### TypeContact_facture_internal_SALESREPFOLL=代表隨訪客戶發票 TypeContact_facture_external_BILLING=客戶發票接觸 diff --git a/htdocs/langs/zh_TW/bookmarks.lang b/htdocs/langs/zh_TW/bookmarks.lang index 8a247c1f2bb..54af4084faf 100644 --- a/htdocs/langs/zh_TW/bookmarks.lang +++ b/htdocs/langs/zh_TW/bookmarks.lang @@ -1,7 +1,9 @@ # Dolibarr language file - Source file is en_US - marque pages -AddThisPageToBookmarks=這個頁面添加到書簽 +AddThisPageToBookmarks=Add current page to bookmarks Bookmark=Bookmark Bookmarks=書籤 +ListOfBookmarks=List of bookmarks +EditBookmarks=List/edit bookmarks NewBookmark=新書簽 ShowBookmark=Show bookmark OpenANewWindow=Open a new window @@ -10,7 +12,7 @@ BookmarkTargetNewWindowShort=New window BookmarkTargetReplaceWindowShort=Current window BookmarkTitle=Bookmark title UrlOrLink=URL -BehaviourOnClick=Behaviour when a URL is clicked +BehaviourOnClick=Behaviour when a bookmark URL is selected CreateBookmark=Create bookmark SetHereATitleForLink=Set a title for the bookmark UseAnExternalHttpLinkOrRelativeDolibarrLink=Use an external http URL or a relative Dolibarr URL diff --git a/htdocs/langs/zh_TW/boxes.lang b/htdocs/langs/zh_TW/boxes.lang index 821700be87f..1caa474befa 100644 --- a/htdocs/langs/zh_TW/boxes.lang +++ b/htdocs/langs/zh_TW/boxes.lang @@ -1,4 +1,5 @@ # Dolibarr language file - Source file is en_US - boxes +BoxLoginInformation=Login information BoxLastRssInfos=RSS信息 BoxLastProducts=Latest %s products/services BoxProductsAlertStock=Stock alerts for products @@ -82,3 +83,4 @@ ForCustomersOrders=Customers orders ForProposals=建議 LastXMonthRolling=The latest %s month rolling ChooseBoxToAdd=Add widget to your dashboard +BoxAdded=Widget was added in your dashboard diff --git a/htdocs/langs/zh_TW/cashdesk.lang b/htdocs/langs/zh_TW/cashdesk.lang index 35bce8c21a1..a16bc833dcd 100644 --- a/htdocs/langs/zh_TW/cashdesk.lang +++ b/htdocs/langs/zh_TW/cashdesk.lang @@ -25,7 +25,7 @@ Difference=差異 TotalTicket=總票 NoVAT=沒有為這次出售增值稅 Change=過剩收到 -BankToPay=負責帳戶 +BankToPay=Account for payment ShowCompany=顯示公司 ShowStock=顯示倉庫 DeleteArticle=點擊刪除此文章 diff --git a/htdocs/langs/zh_TW/categories.lang b/htdocs/langs/zh_TW/categories.lang index 0bdf6bdbc22..f5699bd52a1 100644 --- a/htdocs/langs/zh_TW/categories.lang +++ b/htdocs/langs/zh_TW/categories.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - categories Rubrique=Tag/Category Rubriques=Tags/Categories +RubriquesTransactions=Tags/Categories of transactions categories=tags/categories NoCategoryYet=No tag/category of this type created In=在 @@ -44,7 +45,7 @@ CategoryExistsAtSameLevel=此類別已存在此號 ContentsVisibleByAllShort=所有內容可見 ContentsNotVisibleByAllShort=所有內容不可見 DeleteCategory=Delete tag/category -ConfirmDeleteCategory=Are you sure you want to delete this tag/category ? +ConfirmDeleteCategory=Are you sure you want to delete this tag/category? NoCategoriesDefined=No tag/category defined SuppliersCategoryShort=Suppliers tag/category CustomersCategoryShort=Customers tag/category @@ -77,7 +78,7 @@ CatCusLinks=Links between customers/prospects and tags/categories CatProdLinks=Links between products/services and tags/categories CatProJectLinks=Links between projects and tags/categories DeleteFromCat=Remove from tags/category -ExtraFieldsCategories=Complementary attributes +ExtraFieldsCategories=新增客制化欄位 CategoriesSetup=Tags/categories setup CategorieRecursiv=Link with parent tag/category automatically CategorieRecursivHelp=If activated, product will also linked to parent category when adding into a subcategory diff --git a/htdocs/langs/zh_TW/commercial.lang b/htdocs/langs/zh_TW/commercial.lang index d4ae74115d4..9117d19069f 100644 --- a/htdocs/langs/zh_TW/commercial.lang +++ b/htdocs/langs/zh_TW/commercial.lang @@ -18,7 +18,8 @@ TaskRDVWith=與%會議上的 ShowTask=顯示任務 ShowAction=顯示行動 ActionsReport=行動的報告 -ThirdPartiesOfSaleRepresentative=Thirdparties with sales representative +ThirdPartiesOfSaleRepresentative=Third parties with sales representative +SaleRepresentativesOfThirdParty=Sales representatives of third party SalesRepresentative=業務代表 SalesRepresentatives=業務代表 SalesRepresentativeFollowUp=業務代表(後續) diff --git a/htdocs/langs/zh_TW/companies.lang b/htdocs/langs/zh_TW/companies.lang index 5b69fd8c9dc..c688d3ec0a3 100644 --- a/htdocs/langs/zh_TW/companies.lang +++ b/htdocs/langs/zh_TW/companies.lang @@ -13,7 +13,7 @@ MenuNewPrivateIndividual=新的私營個體 NewCompany=新客戶/供應商(潛在、客戶、供應商) NewThirdParty=新客戶/供應商(潛在、客戶、供應商) CreateDolibarrThirdPartySupplier=建立一個合作廠商(供應商) -CreateThirdPartyOnly=Create thirdpary +CreateThirdPartyOnly=新增客戶/供應商 CreateThirdPartyAndContact=Create a third party + a child contact ProspectionArea=勘察區 IdThirdParty=第三方身份 @@ -38,7 +38,6 @@ ThirdPartyCustomersStats=客戶 ThirdPartyCustomersWithIdProf12=與%s或%客戶s ThirdPartySuppliers=供應商 ThirdPartyType=客戶/供應商類型 -Company/Fundation=公司/基金會 Individual=私營個體 ToCreateContactWithSameName=Will create automatically a contact/address with same information than third party under the third party. In most cases, even if your third party is a physical people, creating a third party alone is enough. ParentCompany=母公司 @@ -78,10 +77,10 @@ VATIsNotUsed=不使用營業稅(VAT) CopyAddressFromSoc=Fill address with third party address ThirdpartyNotCustomerNotSupplierSoNoRef=Thirdparty neither customer nor supplier, no available refering objects PaymentBankAccount=Payment bank account -OverAllProposals=Total proposals -OverAllOrders=Total orders -OverAllInvoices=Total invoices -OverAllSupplierProposals=Total price requests +OverAllProposals=建議 +OverAllOrders=訂單 +OverAllInvoices=發票 +OverAllSupplierProposals=Price requests ##### Local Taxes ##### LocalTax1IsUsed=Use second tax LocalTax1IsUsedES= 稀土用於 @@ -237,6 +236,12 @@ ProfId3TN=教授ID已3(杜阿納代碼) ProfId4TN=教授ID已4(班) ProfId5TN=- ProfId6TN=- +ProfId1US=Prof Id +ProfId2US=Prof ID 6 +ProfId3US=Prof ID 6 +ProfId4US=Prof ID 6 +ProfId5US=Prof ID 6 +ProfId6US=Prof ID 6 ProfId1RU=教授ID一日(OGRN) ProfId2RU=教授ID 2(非專利) ProfId3RU=教授ID 3(KPP的) @@ -259,7 +264,7 @@ CustomerRelativeDiscountShort=相對折扣 CustomerAbsoluteDiscountShort=無條件折扣 CompanyHasRelativeDiscount=這個客戶有一個%s%%的折扣 CompanyHasNoRelativeDiscount=此客戶沒有定義相關的折扣 -CompanyHasAbsoluteDiscount=此客戶仍%之折扣學分為%s +CompanyHasAbsoluteDiscount=This customer has discount available (credits notes or down payments) for %s %s CompanyHasCreditNote=此客戶仍然有信用票據%s或%s的前存款 CompanyHasNoAbsoluteDiscount=此客戶沒有無條件折扣條件 CustomerAbsoluteDiscountAllUsers=無條件折扣(給所有使用者使用) @@ -390,7 +395,7 @@ ListCustomersShort=客戶名單 ThirdPartiesArea=客戶/供應商資料區 LastModifiedThirdParties=Latest %s modified third parties UniqueThirdParties=客戶/供應商圖表種類數 -InActivity=開業 +InActivity=開放 ActivityCeased=關閉 ThirdPartyIsClosed=Third party is closed ProductsIntoElements=產品列表於 %s @@ -402,7 +407,7 @@ LeopardNumRefModelDesc=客戶/供應商編號規則不受限制,此編碼可 ManagingDirectors=主管(們)姓名 (執行長, 部門主管, 總裁...) MergeOriginThirdparty=重複的客戶/供應商 (你想刪除的客戶/供應商) MergeThirdparties=合併客戶/供應商 -ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party so you will be able to delete the duplicate one. +ConfirmMergeThirdparties=Are you sure you want to merge this third party into the current one? All linked objects (invoices, orders, ...) will be moved to current third party, then the thirdparty will be deleted. ThirdpartiesMergeSuccess=客戶/供應商將被合併 SaleRepresentativeLogin=Login of sales representative SaleRepresentativeFirstname=First name of sales representative diff --git a/htdocs/langs/zh_TW/contracts.lang b/htdocs/langs/zh_TW/contracts.lang index 3d73040a564..d1d3193c467 100644 --- a/htdocs/langs/zh_TW/contracts.lang +++ b/htdocs/langs/zh_TW/contracts.lang @@ -83,6 +83,8 @@ NoteListOfYourExpiredServices=This list contains only services of contracts for StandardContractsTemplate=Standard contracts template ContactNameAndSignature=For %s, name and signature: OnlyLinesWithTypeServiceAreUsed=Only lines with type "Service" will be cloned. +CloneContract=Clone contract +ConfirmCloneContract=Are you sure you want to clone the contract %s? ##### Types de contacts ##### TypeContact_contrat_internal_SALESREPSIGN=銷售代表簽訂合同 diff --git a/htdocs/langs/zh_TW/exports.lang b/htdocs/langs/zh_TW/exports.lang index 5a7df506007..44730adae30 100644 --- a/htdocs/langs/zh_TW/exports.lang +++ b/htdocs/langs/zh_TW/exports.lang @@ -110,13 +110,24 @@ Enclosure=Enclosure SpecialCode=Special code ExportStringFilter=%% allows replacing one or more characters in the text ExportDateFilter=YYYY, YYYYMM, YYYYMMDD : filters by one year/month/day
YYYY+YYYY, YYYYMM+YYYYMM, YYYYMMDD+YYYYMMDD : filters over a range of years/months/days
> YYYY, > YYYYMM, > YYYYMMDD : filters on all following years/months/days
< YYYY, < YYYYMM, < YYYYMMDD : filters on all previous years/months/days -ExportNumericFilter='NNNNN' filters by one value
'NNNNN+NNNNN' filters over a range of values
'>NNNNN' filters by lower values
'>NNNNN' filters by higher values +ExportNumericFilter=NNNNN filters by one value
NNNNN+NNNNN filters over a range of values
< NNNNN filters by lower values
> NNNNN filters by higher values ImportFromLine=Import starting from line number EndAtLineNb=End at line number +ImportFromToLine=Import line numbers (from - to) SetThisValueTo2ToExcludeFirstLine=For example, set this value to 3 to exclude the 2 first lines KeepEmptyToGoToEndOfFile=Keep this field empty to go up to the end of file +SelectPrimaryColumnsForUpdateAttempt=Select column(s) to use as primary key for update attempt +UpdateNotYetSupportedForThisImport=Update is not supported for this type of import (only insert) +NoUpdateAttempt=No update attempt was performed, only insert +ImportDataset_user_1=Users (employees or not) and properties +ComputedField=Computed field ## filters SelectFilterFields=If you want to filter on some values, just input values here. FilteredFields=Filtered fields FilteredFieldsValues=Value for filter FormatControlRule=Format control rule +## imports updates +KeysToUseForUpdates=Key to use for updating data +NbInsert=Number of inserted lines: %s +NbUpdate=Number of updated lines: %s +MultipleRecordFoundWithTheseFilters=Multiple records have been found with these filters: %s diff --git a/htdocs/langs/zh_TW/holiday.lang b/htdocs/langs/zh_TW/holiday.lang index 6e8554c4aeb..b56aa50c007 100644 --- a/htdocs/langs/zh_TW/holiday.lang +++ b/htdocs/langs/zh_TW/holiday.lang @@ -16,7 +16,7 @@ CancelCP=取消 RefuseCP=拒絕 ValidatorCP=Approbator ListeCP=List of leaves -ReviewedByCP=Will be reviewed by +ReviewedByCP=Will be approved by DescCP=描述 SendRequestCP=Create leave request DelayToRequestCP=Leave requests must be made at least %s day(s) before them. diff --git a/htdocs/langs/zh_TW/install.lang b/htdocs/langs/zh_TW/install.lang index a52ffb34235..4eaf1122060 100644 --- a/htdocs/langs/zh_TW/install.lang +++ b/htdocs/langs/zh_TW/install.lang @@ -138,6 +138,7 @@ KeepDefaultValuesWamp=您使用從DoliWamp Dolibarr安裝向導,所以這裏 KeepDefaultValuesDeb=您使用從Ubuntu或者Debian軟件包的Dolibarr安裝向導,所以這裏建議值已經進行了優化。只有數據庫的所有者創建的密碼必須完成。其他參數的變化,如果你只知道你做什麽。 KeepDefaultValuesMamp=您使用從DoliMamp Dolibarr安裝向導,所以這裏建議值已經進行了優化。他們唯一的變化,如果你知道你做什麽。 KeepDefaultValuesProxmox=您使用Proxmox的虛擬設備的Dolibarr安裝向導,因此,這裏提出的價值已經優化。改變他們,只有當你知道你做什麽。 +UpgradeExternalModule=Run dedicated upgrade process of external modules ######### # upgrade diff --git a/htdocs/langs/zh_TW/interventions.lang b/htdocs/langs/zh_TW/interventions.lang index 9ddd9dc0e5e..01de9b7fa45 100644 --- a/htdocs/langs/zh_TW/interventions.lang +++ b/htdocs/langs/zh_TW/interventions.lang @@ -41,6 +41,7 @@ InterventionDeletedInDolibarr=Intervention %s deleted InterventionsArea=Interventions area DraftFichinter=Draft interventions LastModifiedInterventions=Latest %s modified interventions +FichinterToProcess=Interventions to process ##### Types de contacts ##### TypeContact_fichinter_external_CUSTOMER=隨訪客戶聯系 # Modele numérotation diff --git a/htdocs/langs/zh_TW/languages.lang b/htdocs/langs/zh_TW/languages.lang index 3e7dcb8d25c..37868749541 100644 --- a/htdocs/langs/zh_TW/languages.lang +++ b/htdocs/langs/zh_TW/languages.lang @@ -12,6 +12,7 @@ Language_de_DE=德語 Language_de_AT=德語(奧地利) Language_de_CH=德語(瑞士) Language_el_GR=希臘語 +Language_el_CY=Greek (Cyprus) Language_en_AU=英語(Australie) Language_en_CA=英語(加拿大) Language_en_GB=英語(英國) @@ -26,8 +27,10 @@ Language_es_BO=西班牙語(玻利維亞) Language_es_CL=西班牙语(智利) Language_es_CO=西班牙語(哥倫比亞) Language_es_DO=西班牙語(多明尼加共和國) +Language_es_EC=Spanish (Ecuador) Language_es_HN=西班牙語(洪都拉斯) Language_es_MX=西班牙語(墨西哥) +Language_es_PA=Spanish (Panama) Language_es_PY=西班牙语 (巴拉圭) Language_es_PE=西班牙语 (秘鲁) Language_es_PR=西班牙語(波多黎各) @@ -50,12 +53,14 @@ Language_is_IS=冰島 Language_it_IT=意大利語 Language_ja_JP=日語 Language_ka_GE=Georgian +Language_km_KH=Khmer Language_kn_IN=Kannada Language_ko_KR=韩国 Language_lo_LA=老撾 Language_lt_LT=立陶宛 Language_lv_LV=拉脱维亚 Language_mk_MK=马其顿 +Language_mn_MN=Mongolian Language_nb_NO=挪威文(巴克摩) Language_nl_BE=荷蘭語(比利時) Language_nl_NL=荷蘭語(荷蘭) diff --git a/htdocs/langs/zh_TW/link.lang b/htdocs/langs/zh_TW/link.lang index 42c7555d469..fdcf07aeff4 100644 --- a/htdocs/langs/zh_TW/link.lang +++ b/htdocs/langs/zh_TW/link.lang @@ -1,3 +1,4 @@ +# Dolibarr language file - Source file is en_US - languages LinkANewFile=Link a new file/document LinkedFiles=Linked files and documents NoLinkFound=No registered links diff --git a/htdocs/langs/zh_TW/loan.lang b/htdocs/langs/zh_TW/loan.lang index 4a1e4368865..7db594c715e 100644 --- a/htdocs/langs/zh_TW/loan.lang +++ b/htdocs/langs/zh_TW/loan.lang @@ -43,8 +43,11 @@ LoanCalcDesc=This mortgage calculator can be used to figure out monthly p GoToInterest=%s will go towards INTEREST GoToPrincipal=%s will go towards PRINCIPAL YouWillSpend=You will spend %s in year %s +ListLoanAssociatedProject=List of loan associated with the project +AddLoan=Create loan # Admin ConfigLoan=Configuration of the module loan LOAN_ACCOUNTING_ACCOUNT_CAPITAL=Accounting account capital by default LOAN_ACCOUNTING_ACCOUNT_INTEREST=Accounting account interest by default LOAN_ACCOUNTING_ACCOUNT_INSURANCE=Accounting account insurance by default +CreateCalcSchedule=Créer / Modifier échéancier de pret diff --git a/htdocs/langs/zh_TW/mails.lang b/htdocs/langs/zh_TW/mails.lang index 52386a05046..15203cab2c9 100644 --- a/htdocs/langs/zh_TW/mails.lang +++ b/htdocs/langs/zh_TW/mails.lang @@ -35,7 +35,7 @@ MailingStatusSentPartialy=發送部分 MailingStatusSentCompletely=發送完全 MailingStatusError=錯誤 MailingStatusNotSent=不發送 -MailSuccessfulySent=Email successfully accepted for delivery (from %s to %s) +MailSuccessfulySent=Email (from %s to %s) successfully accepted for delivery MailingSuccessfullyValidated=EMailing successfully validated MailUnsubcribe=Unsubscribe MailingStatusNotContact=Don't contact anymore @@ -79,6 +79,10 @@ MailingModuleDescContactsWithThirdpartyFilter=Contact with customer filters MailingModuleDescContactsByCompanyCategory=Contacts by third party category MailingModuleDescContactsByCategory=Contacts by categories MailingModuleDescContactsByFunction=Contacts by position +MailingModuleDescEmailsFromFile=Emails from file +MailingModuleDescEmailsFromUser=Emails input by user +MailingModuleDescDolibarrUsers=Users with Emails +MailingModuleDescThirdPartiesByCategories=Third parties (by categories) # Libelle des modules de liste de destinataires mailing LineInFile=在文件%s的線 @@ -116,8 +120,8 @@ Notifications=通知 NoNotificationsWillBeSent=沒有電子郵件通知此事件的計劃和公司 ANotificationsWillBeSent=1通知將通過電子郵件發送 SomeNotificationsWillBeSent=%s的通知將通過電子郵件發送 -AddNewNotification=Activate a new email notification target -ListOfActiveNotifications=List all active targets for email notification +AddNewNotification=Activate a new email notification target/event +ListOfActiveNotifications=List all active targets/events for email notification ListOfNotificationsDone=列出所有發送電子郵件通知 MailSendSetupIs=Configuration of email sending has been setup to '%s'. This mode can't be used to send mass emailing. MailSendSetupIs2=You must first go, with an admin account, into menu %sHome - Setup - EMails%s to change parameter '%s' to use mode '%s'. With this mode, you can enter setup of the SMTP server provided by your Internet Service Provider and use Mass emailing feature. diff --git a/htdocs/langs/zh_TW/main.lang b/htdocs/langs/zh_TW/main.lang index 0c02e3e3c79..d3783d05db8 100644 --- a/htdocs/langs/zh_TW/main.lang +++ b/htdocs/langs/zh_TW/main.lang @@ -72,8 +72,10 @@ SeeHere=See here Apply=Apply BackgroundColorByDefault=默認的背景顏色 FileRenamed=The file was successfully renamed -FileUploaded=檔案已上傳 FileGenerated=The file was successfully generated +FileSaved=The file was successfully saved +FileUploaded=檔案已上傳 +FileTransferComplete=File(s) was uploaded successfuly FileWasNotUploaded=附件尚未上傳 NbOfEntries=鈮條目 GoToWikiHelpPage=Read online help (Internet access needed) @@ -358,6 +360,7 @@ TotalLT1ES=共有再生能源 TotalLT2ES=共有IRPF HT=不含稅 TTC=含稅 +INCT=Inc. all taxes VAT=營業稅 VATs=營業稅 LT1ES=稀土 @@ -518,7 +521,6 @@ MonthShort10=十月 MonthShort11=十一月 MonthShort12=十二月 AttachedFiles=附加檔案和文件 -FileTransferComplete=文件被上傳successfuly DateFormatYYYYMM=為YYYY - MM DateFormatYYYYMMDD=為YYYY - MM - dd的 DateFormatYYYYMMDDHHMM=為YYYY - MM - dd diff --git a/htdocs/langs/zh_TW/margins.lang b/htdocs/langs/zh_TW/margins.lang index 356e9ec9d3d..49917d46ea6 100644 --- a/htdocs/langs/zh_TW/margins.lang +++ b/htdocs/langs/zh_TW/margins.lang @@ -41,4 +41,4 @@ rateMustBeNumeric=Rate must be a numeric value markRateShouldBeLesserThan100=Mark rate should be lower than 100 ShowMarginInfos=Show margin infos CheckMargins=Margins detail -MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each user. Because some thirdparties may not be linked to any sale representative and some thirdparties may be linked to several users, some margins may not appears in these report or may appears in several different lines. +MarginPerSaleRepresentativeWarning=The report of margin per user use the link between thirdparties and sale representatives to calculate the margin of each salerepresentaive. Because some thirdparties may not have any ddiated sale representative and some thirdparties may be linked to several, some amounts may not be included into this report (if there is no sale representative) and some may appear on different lines (for each sale representative). diff --git a/htdocs/langs/zh_TW/members.lang b/htdocs/langs/zh_TW/members.lang index 51ba7d3d3e1..6f0b58fdf30 100644 --- a/htdocs/langs/zh_TW/members.lang +++ b/htdocs/langs/zh_TW/members.lang @@ -3,7 +3,7 @@ MembersArea=會員專區 MemberCard=會員卡 SubscriptionCard=認購證 Member=成員 -Members=成員 +Members=Members ShowMember=出示會員卡 UserNotLinkedToMember=用戶成員沒有聯系 ThirdpartyNotLinkedToMember=Third-party not linked to a member @@ -90,8 +90,9 @@ PublicMemberList=公共成員名單 BlankSubscriptionForm=認購表格 BlankSubscriptionFormDesc=dolibarr可以為您提供一個公共URL允許外部訪問者問到訂閱的基礎。如果啟用在線支付模塊,付款方式也將被自動提供。 EnablePublicSubscriptionForm=讓市民自動認購表格 +ForceMemberType=Force the member type ExportDataset_member_1=成員和訂閱 -ImportDataset_member_1=成員 +ImportDataset_member_1=Members LastMembersModified=Latest %s modified members LastSubscriptionsModified=Latest %s modified subscriptions String=弦 @@ -150,7 +151,8 @@ MembersByTownDesc=該屏幕顯示您的成員由鎮統計。 MembersStatisticsDesc=選擇你想讀的統計... MenuMembersStats=統計 LastMemberDate=Latest member date -Nature=種類 +LatestSubscriptionDate=Latest subscription date +Nature=類型 Public=信息是公開的 NewMemberbyWeb=增加了新成員。等待批準 NewMemberForm=新成員的形式 diff --git a/htdocs/langs/zh_TW/modulebuilder.lang b/htdocs/langs/zh_TW/modulebuilder.lang new file mode 100644 index 00000000000..e4812fa4e79 --- /dev/null +++ b/htdocs/langs/zh_TW/modulebuilder.lang @@ -0,0 +1,40 @@ +# Dolibarr language file - Source file is en_US - loan +ModuleBuilderDesc=This tools must be used by experienced users or developers. It gives you utilities to build or edit your own module (Documentation for alternative manual development is here). +EnterNameOfModuleDesc=Enter name of the module/application to create with no spaces. Use uppercase to separate words (For example: MyModule, EcommerceForShop, SyncWithMySystem...) +EnterNameOfObjectDesc=Enter name of the object to create with no spaces. Use uppercase to separate words (For example: MyObject, Student, Teacher...) +ModuleBuilderDesc2=Path where modules are generated/edited (first alternative directory defined into %s): %s +ModuleBuilderDesc3=Generated/editable modules found: %s (they are detected as editable when the file %s exists in root of module directory). +NewModule=New module +NewObject=New object +ModuleKey=Module key +ObjectKey=Object key +ModuleInitialized=Module initialized +FilesForObjectInitialized=Files for new object initialized +ModuleBuilderDescdescription=Enter here all general information that describe your module +ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). +ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. +ModuleBuilderDescmenus=This tab is dedicated to define menu entries provided by your module. +ModuleBuilderDescpermissions=This tab is dedicated to define the new permissions you want to provide with your module. +ModuleBuilderDesctriggers=This is the view of triggers provided by your module. To include code executed when a triggered business event is launched, just edit this file. +ModuleBuilderDeschooks=This tab is dedicated to hooks. +ModuleBuilderDescwidgets=This tab is dedicated to manage/build widgets. +ModuleBuilderDescbuildpackage=You can generate here a "ready to distribute" package file (a normalized .zip file) of your module and a "ready to distribute" documentation file. Just click on button to build the package or documentation file. +EnterNameOfModuleToDeleteDesc=You can delete your module. WARNING: All files of module but also structured data and documentation will be definitly lost ! +EnterNameOfObjectToDeleteDesc=You can delete an object. WARNING: All files related to object will be definitly lost ! +DangerZone=Danger zone +BuildPackage=Build package/documentation +BuildDocumentation=Build documentation +ModuleIsNotActive=This module was not activated yet (go into %s to make it live) +ModuleIsLive=This module has been activated. Any change on it may break a current active feature. +DescriptionLong=Long description +EditorName=Name of editor +EditorUrl=URL of editor +DescriptorFile=Descriptor file of module +ClassFile=File for PHP class +ApiClassFile=File for PHP API class +PageForList=PHP page for list of record +PageForCreateEditView=PHP page to create/edit/view a record +PathToModulePackage=Path to zip of module/application package +PathToModuleDocumentation=Path to file of module/application documentation +SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. +FileNotYetGenerated=File not yet generated diff --git a/htdocs/langs/zh_TW/oauth.lang b/htdocs/langs/zh_TW/oauth.lang index a338ab4d5df..cafca379f6f 100644 --- a/htdocs/langs/zh_TW/oauth.lang +++ b/htdocs/langs/zh_TW/oauth.lang @@ -2,16 +2,20 @@ ConfigOAuth=Oauth Configuration OAuthServices=OAuth services ManualTokenGeneration=Manual token generation +TokenManager=Token manager +IsTokenGenerated=Is token generated ? NoAccessToken=No access token saved into local database HasAccessToken=A token was generated and saved into local database -NewTokenStored=Token received ans saved -ToCheckDeleteTokenOnProvider=To check/delete authorization saved by %s OAuth provider +NewTokenStored=Token received and saved +ToCheckDeleteTokenOnProvider=Click here to check/delete authorization saved by %s OAuth provider TokenDeleted=Token deleted RequestAccess=Click here to request/renew access and receive a new token to save DeleteAccess=Click here to delete token UseTheFollowingUrlAsRedirectURI=Use the following URL as the Redirect URI when creating your credential on your OAuth provider: ListOfSupportedOauthProviders=Enter here credential provided by your OAuth2 provider. Only supported OAuth2 providers are visible here. This setup may be used by other modules that need OAuth2 authentication. -TOKEN_ACCESS= +OAuthSetupForLogin=Page to generate an OAuth token +SeePreviousTab=See previous tab +OAuthIDSecret=OAuth ID and Secret TOKEN_REFRESH=Token Refresh Present TOKEN_EXPIRED=Token expired TOKEN_EXPIRE_AT=Token expire at diff --git a/htdocs/langs/zh_TW/other.lang b/htdocs/langs/zh_TW/other.lang index 7a10c5cad7a..a6415dd7ac3 100644 --- a/htdocs/langs/zh_TW/other.lang +++ b/htdocs/langs/zh_TW/other.lang @@ -124,6 +124,7 @@ WeightUnitkg=Kg(公斤) WeightUnitg=g(克) WeightUnitmg=mg(毫克) WeightUnitpound=pound(英鎊) +WeightUnitounce=ounce(盎司) Length=長度 LengthUnitm=m(公尺) LengthUnitdm=dm(公寸) diff --git a/htdocs/langs/zh_TW/paybox.lang b/htdocs/langs/zh_TW/paybox.lang index 35055d6a8c4..0a1c1a71631 100644 --- a/htdocs/langs/zh_TW/paybox.lang +++ b/htdocs/langs/zh_TW/paybox.lang @@ -11,6 +11,7 @@ YourEMail=付款確認的電子郵件 Creditor=債權人 PaymentCode=付款代碼 PayBoxDoPayment=前往付款 +ToPay=不要付款 YouWillBeRedirectedOnPayBox=您將被重定向擔保Paybox頁,輸入您的信用卡信息 Continue=未來 ToOfferALinkForOnlinePayment=網址為%s支付 diff --git a/htdocs/langs/zh_TW/paypal.lang b/htdocs/langs/zh_TW/paypal.lang index 94b5aa2decb..22c212e8b6d 100644 --- a/htdocs/langs/zh_TW/paypal.lang +++ b/htdocs/langs/zh_TW/paypal.lang @@ -16,15 +16,17 @@ ThisIsTransactionId=這是交易編號:%s PAYPAL_ADD_PAYMENT_URL=當你郵寄一份文件,添加URL Paypal付款 PredefinedMailContentLink=You can click on the secure link below to make your payment (PayPal) if it is not already done.\n\n%s\n\n YouAreCurrentlyInSandboxMode=您目前在“沙箱”模式 -NewPaypalPaymentReceived=New Paypal payment received -NewPaypalPaymentFailed=New Paypal payment tried but failed +NewOnlinePaymentReceived=New online payment received +NewOnlinePaymentFailed=New online payment tried but failed PAYPAL_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) ReturnURLAfterPayment=Return URL after payment -ValidationOfPaypalPaymentFailed=Validation of Paypal payment failed -PaypalConfirmPaymentPageWasCalledButFailed=Payment confirmation page for Paypal was called by Paypal but confirmation failed +ValidationOfOnlinePaymentFailed=Validation of online payment failed +PaymentSystemConfirmPaymentPageWasCalledButFailed=Payment confirmation page was called by payment system returned an error SetExpressCheckoutAPICallFailed=SetExpressCheckout API call failed. DoExpressCheckoutPaymentAPICallFailed=DoExpressCheckoutPayment API call failed. DetailedErrorMessage=Detailed Error Message ShortErrorMessage=Short Error Message ErrorCode=Error Code ErrorSeverityCode=Error Severity Code +OnlinePaymentSystem=Online payment system +PaypalLiveEnabled=Paypal live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/zh_TW/printing.lang b/htdocs/langs/zh_TW/printing.lang index d6cf49bd525..680bd42d1d6 100644 --- a/htdocs/langs/zh_TW/printing.lang +++ b/htdocs/langs/zh_TW/printing.lang @@ -19,7 +19,7 @@ PRINTGCP_INFO=Google OAuth API setup PRINTGCP_AUTHLINK=Authentication PRINTGCP_TOKEN_ACCESS=Google Cloud Print OAuth Token PrintGCPDesc=This driver allow to send documents directly to a printer with Google Cloud Print. -GCP_Name=Name +GCP_Name=名稱 GCP_displayName=Display Name GCP_Id=Printer Id GCP_OwnerName=Owner Name @@ -28,9 +28,9 @@ GCP_connectionStatus=Online State GCP_Type=Printer Type PrintIPPDesc=This driver allow to send documents directly to a printer. It requires a Linux system with CUPS installed. PRINTIPP_HOST=Print server -PRINTIPP_PORT=Port -PRINTIPP_USER=Login -PRINTIPP_PASSWORD=Password +PRINTIPP_PORT=港口 +PRINTIPP_USER=註冊 +PRINTIPP_PASSWORD=密碼 NoDefaultPrinterDefined=No default printer defined DefaultPrinter=Default printer Printer=Printer @@ -40,12 +40,12 @@ IPP_State=Printer State IPP_State_reason=State reason IPP_State_reason1=State reason1 IPP_BW=BW -IPP_Color=Color +IPP_Color=彩色 IPP_Device=Device IPP_Media=Printer media IPP_Supported=Type of media DirectPrintingJobsDesc=This page lists printing jobs found for available printers. GoogleAuthNotConfigured=Google OAuth setup not done. Enable module OAuth and set a Google ID/Secret. -GoogleAuthConfigured=Google OAuth credentials found into setup of module OAuth. +GoogleAuthConfigured=Google OAuth credentials were found into setup of module OAuth. PrintingDriverDescprintgcp=Configuration variables for printing driver Google Cloud Print. PrintTestDescprintgcp=List of Printers for Google Cloud Print. diff --git a/htdocs/langs/zh_TW/products.lang b/htdocs/langs/zh_TW/products.lang index dff8f6f4fcc..bcf7a6c8312 100644 --- a/htdocs/langs/zh_TW/products.lang +++ b/htdocs/langs/zh_TW/products.lang @@ -25,11 +25,13 @@ ProductAccountancySellCode=會計代碼(銷售) ProductOrService=產品或服務 ProductsAndServices=產品與服務 ProductsOrServices=產品或服務 -ProductsOnSell=可銷售或購買之產品 -ProductsNotOnSell=不可銷售或購買之產品 +ProductsOnSaleOnly=Products for sale only +ProductsOnPurchaseOnly=Products for purchase only +ProductsNotOnSell=Products not for sale and not for purchase ProductsOnSellAndOnBuy=Products for sale and for purchase -ServicesOnSell=可銷售或購買之服務 -ServicesNotOnSell=不可銷售之服務 +ServicesOnSaleOnly=Services for sale only +ServicesOnPurchaseOnly=Services for purchase only +ServicesNotOnSell=Services not for sale and not for purchase ServicesOnSellAndOnBuy=Services for sale and for purchase LastModifiedProductsAndServices=最後 %s 更新的產品/服務 LastRecordedProducts=最後 %s 紀錄的產品/服務 @@ -175,6 +177,18 @@ m2=m² m3=m³ liter=liter l=L +unitP=Piece +unitSET=Set +unitS=第二 +unitH=小時 +unitD=天 +unitKG=Kilogram +unitG=Gram +unitM=Meter +unitLM=Linear meter +unitM2=Square meter +unitM3=Cubic meter +unitL=Liter ProductCodeModel=Product ref template ServiceCodeModel=Service ref template CurrentProductPrice=Current price @@ -186,6 +200,7 @@ MultipriceRules=Price segment rules UseMultipriceRules=Use price segment rules (defined into product module setup) to autocalculate prices of all other segment according to first segment PercentVariationOver=%% variation over %s PercentDiscountOver=%% discount over %s +KeepEmptyForAutoCalculation=Keep empty to have this calculated automatically from weight or volume of products ### composition fabrication Build=Produce ProductsMultiPrice=Products and prices for each price segment @@ -232,12 +247,18 @@ ComposedProduct=Sub-product MinSupplierPrice=Minimum supplier price MinCustomerPrice=Minimum customer price DynamicPriceConfiguration=Dynamic price configuration -DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. +DynamicPriceDesc=On product card, with this module enabled, you should be able to set mathematic functions to calculate Customer or Supplier prices. Such function can use all mathematic operators, some constants and variables. You can set here the variables you want to be able to use and if the variable need an automatic update, the external URL to use to ask Dolibarr to update automaticaly the value. AddVariable=Add Variable AddUpdater=Add Updater GlobalVariables=Global variables VariableToUpdate=Variable to update GlobalVariableUpdaters=Global variable updaters +GlobalVariableUpdaterType0=JSON data +GlobalVariableUpdaterHelp0=Parses JSON data from specified URL, VALUE specifies the location of relevant value, +GlobalVariableUpdaterHelpFormat0=Format for request {"URL": "http://example.com/urlofjson", "VALUE": "array1,array2,targetvalue"} +GlobalVariableUpdaterType1=WebService data +GlobalVariableUpdaterHelp1=Parses WebService data from specified URL, NS specifies the namespace, VALUE specifies the location of relevant value, DATA should contain the data to send and METHOD is the calling WS method +GlobalVariableUpdaterHelpFormat1=Format for request is {"URL": "http://example.com/urlofws", "VALUE": "array,targetvalue", "NS": "http://example.com/urlofns", "METHOD": "myWSMethod", "DATA": {"your": "data", "to": "send"}} UpdateInterval=Update interval (minutes) LastUpdated=Latest update CorrectlyUpdated=Correctly updated @@ -260,6 +281,8 @@ SizeUnits=Size unit DeleteProductBuyPrice=Delete buying price ConfirmDeleteProductBuyPrice=Are you sure you want to delete this buying price? SubProduct=Sub product +ProductSheet=Product sheet +ServiceSheet=Service sheet #Attributes VariantAttributes=Variant attributes @@ -271,10 +294,14 @@ ProductAttributeValueDeleteDialog=Are you sure you want to delete the value "%s" ProductCombinationDeleteDialog=Are you sure want to delete the variant of the product "%s"? ProductCombinationAlreadyUsed=There was an error while deleting the variant. Please check it is not being used in any object ProductCombinations=Variants +PropagateVariant=Propagate variants HideProductCombinations=Hide products variant in the products selector ProductCombination=Variant NewProductCombination=New variant EditProductCombination=Editing variant +NewProductCombinations=New variants +EditProductCombinations=Editing variants +SelectCombination=Select combination ProductCombinationGenerator=Variants generator Features=Features PriceImpact=Price impact @@ -291,8 +318,8 @@ ErrorDeletingGeneratedProducts=There was an error while trying to delete existin NbOfDifferentValues=Nb of different values NbProducts=Nb. of products ParentProduct=Parent product -HideChildProducts=Hide child products -ConfirmCloneProductCombinations=Would you like to copy all the product variant to the product with the given reference? +HideChildProducts=Hide variant products +ConfirmCloneProductCombinations=Would you like to copy all the product variants to the other parent product with the given reference? CloneDestinationReference=Destination product reference ErrorCopyProductCombinations=There was an error while copying the product variants ErrorDestinationProductNotFound=Destination product not found diff --git a/htdocs/langs/zh_TW/propal.lang b/htdocs/langs/zh_TW/propal.lang index 7b28a668c89..77d4f965056 100644 --- a/htdocs/langs/zh_TW/propal.lang +++ b/htdocs/langs/zh_TW/propal.lang @@ -3,7 +3,7 @@ Proposals=商業建議 Proposal=商業建議 ProposalShort=建議 ProposalsDraft=商業建議草案 -ProposalsOpened=新開張的商業建議 +ProposalsOpened=Open commercial proposals Prop=商業建議 CommercialProposal=商業建議 ProposalCard=建議卡 @@ -26,7 +26,7 @@ AmountOfProposalsByMonthHT=按月份金額(稅後) NbOfProposals=商業建議數 ShowPropal=顯示建議 PropalsDraft=草稿 -PropalsOpened=開業 +PropalsOpened=開放 PropalStatusDraft=草案(等待驗證) PropalStatusValidated=Validated (proposal is opened) PropalStatusSigned=簽名(需要收費) diff --git a/htdocs/langs/zh_TW/resource.lang b/htdocs/langs/zh_TW/resource.lang index 8e25a0fa893..38bac9cfab5 100644 --- a/htdocs/langs/zh_TW/resource.lang +++ b/htdocs/langs/zh_TW/resource.lang @@ -29,3 +29,8 @@ RessourceSuccessfullyDeleted=Resource successfully deleted DictionaryResourceType=Type of resources SelectResource=Select resource + +IdResource=Id resource +AssetNumber=Serial number +ResourceTypeCode=Resource type code +ImportDataset_resource_1=資源 diff --git a/htdocs/langs/zh_TW/salaries.lang b/htdocs/langs/zh_TW/salaries.lang index 68407482edb..522bf0a65d7 100644 --- a/htdocs/langs/zh_TW/salaries.lang +++ b/htdocs/langs/zh_TW/salaries.lang @@ -1,6 +1,7 @@ # Dolibarr language file - Source file is en_US - salaries -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accountancy code for salaries payments -SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accountancy code for financial charge +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries NewSalaryPayment=New salary payment diff --git a/htdocs/langs/zh_TW/sendings.lang b/htdocs/langs/zh_TW/sendings.lang index ff3ff151f65..bbaaea94096 100644 --- a/htdocs/langs/zh_TW/sendings.lang +++ b/htdocs/langs/zh_TW/sendings.lang @@ -37,7 +37,6 @@ SendingSheet=發貨單 ConfirmDeleteSending=Are you sure you want to delete this shipment? ConfirmValidateSending=Are you sure you want to validate this shipment with reference %s? ConfirmCancelSending=Are you sure you want to cancel this shipment? -DocumentModelSimple=簡單的文件範本 DocumentModelMerou=Merou A5 範本 WarningNoQtyLeftToSend=警告,沒有產品等待裝運。 StatsOnShipmentsOnlyValidated=Statistics conducted on shipments only validated. Date used is date of validation of shipment (planed delivery date is not always known). @@ -51,10 +50,10 @@ ActionsOnShipping=對裝運的事件 LinkToTrackYourPackage=鏈接到追蹤您的包裹 ShipmentCreationIsDoneFromOrder=就目前而言,從這個訂單而建立的出貨單已經完成。 ShipmentLine=Shipment line -ProductQtyInCustomersOrdersRunning=Product quantity into opened customers orders -ProductQtyInSuppliersOrdersRunning=Product quantity into opened suppliers orders -ProductQtyInShipmentAlreadySent=Product quantity from opened customer order already sent -ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from opened supplier order already received +ProductQtyInCustomersOrdersRunning=Product quantity into open customers orders +ProductQtyInSuppliersOrdersRunning=Product quantity into open suppliers orders +ProductQtyInShipmentAlreadySent=Product quantity from open customer order already sent +ProductQtyInSuppliersShipmentAlreadyRecevied=Product quantity from open supplier order already received NoProductToShipFoundIntoStock=No product to ship found into warehouse %s. Correct stock or go back to choose another warehouse. WeightVolShort=重量/體積 ValidateOrderFirstBeforeShipment=You must first validate the order before being able to make shipments. diff --git a/htdocs/langs/zh_TW/stocks.lang b/htdocs/langs/zh_TW/stocks.lang index ffabf0d1f35..6355616449b 100644 --- a/htdocs/langs/zh_TW/stocks.lang +++ b/htdocs/langs/zh_TW/stocks.lang @@ -42,7 +42,7 @@ LabelMovement=Movement label NumberOfUnit=單位數目 UnitPurchaseValue=單位購買價格 StockTooLow=庫存過低 -StockLowerThanLimit=庫存低於警告數量 +StockLowerThanLimit=Stock lower than alert limit (%s) EnhancedValue=價值 PMPValue=加權平均價格 PMPValueShort=的WAP @@ -53,7 +53,7 @@ IndependantSubProductStock=Product stock and subproduct stock are independant QtyDispatched=派出數量 QtyDispatchedShort=Qty dispatched QtyToDispatchShort=Qty to dispatch -OrderDispatch=聯合調度 +OrderDispatch=Goods Receptions RuleForStockManagementDecrease=Rule for automatic stock management decrease (manual decrease is always possible, even if an automatic decrease rule is activated) RuleForStockManagementIncrease=Rule for automatic stock management increase (manual increase is always possible, even if an automatic increase rule is activated) DeStockOnBill=在供應商發票(invoice)或票據(Credit notes)驗證後,減少實際庫存量 @@ -62,16 +62,19 @@ DeStockOnShipment=Decrease real stocks on shipping validation DeStockOnShipmentOnClosing=Decrease real stocks on shipping classification closed ReStockOnBill=在供應商發票(invoice)或票據(Credit notes)驗證後,增加實際庫存量 ReStockOnValidateOrder=在供應商訂單批准後,增加實際庫存量 -ReStockOnDispatchOrder=在手動轉讓庫存量或供應商訂單收到後,增加實際庫存量 +ReStockOnDispatchOrder=Increase real stocks on manual dispatching into warehouses, after supplier order receipt of goods OrderStatusNotReadyToDispatch=命令還沒有或根本沒有更多的地位,使產品在倉庫庫存調度。 -StockDiffPhysicTeoric=Explanation for difference between physical and theoretical stock +StockDiffPhysicTeoric=Explanation for difference between physical and virtual stock NoPredefinedProductToDispatch=此對象沒有預定義的產品。因此,沒有庫存調度是必需的。 DispatchVerb=派遣 StockLimitShort=Limit for alert StockLimit=Stock limit for alert PhysicalStock=實際庫存量 RealStock=實際庫存量 +RealStockDesc=Physical or real stock is the stock you currently have into your internal warehouses/emplacements. +RealStockWillAutomaticallyWhen=The real stock will automatically change according to this rules (see stock module setup to change this): VirtualStock=虛擬庫存 +VirtualStockDesc=Virtual stock is the stock you will get once all open pending actions that affect stocks will be closed (supplier order received, customer order shipped, ...) IdWarehouse=編號倉庫 DescWareHouse=說明倉庫 LieuWareHouse=本地化倉庫 @@ -116,7 +119,7 @@ NbOfProductBeforePeriod=Quantity of product %s in stock before selected period ( NbOfProductAfterPeriod=Quantity of product %s in stock after selected period (> %s) MassMovement=Mass movement SelectProductInAndOutWareHouse=Select a product, a quantity, a source warehouse and a target warehouse, then click "%s". Once this is done for all required movements, click onto "%s". -RecordMovement=Record transfert +RecordMovement=Record transfer ReceivingForSameOrder=Receipts for this order StockMovementRecorded=Stock movements recorded RuleForStockAvailability=Rules on stock requirements @@ -143,3 +146,50 @@ ProductStockWarehouseUpdated=Stock limit for alert and desired optimal stock cor ProductStockWarehouseDeleted=Stock limit for alert and desired optimal stock correctly deleted AddNewProductStockWarehouse=Set new limit for alert and desired optimal stock AddStockLocationLine=Decrease quantity then click to add another warehouse for this product +InventoryDate=Inventory date +NewInventory=New inventory +inventorySetup = Inventory Setup +inventoryCreatePermission=Create new inventory +inventoryReadPermission=View inventories +inventoryWritePermission=Update inventories +inventoryValidatePermission=Validate inventory +inventoryTitle=Inventory +inventoryListTitle=Inventories +inventoryListEmpty=No inventory in progress +inventoryCreateDelete=Create/Delete inventory +inventoryCreate=Create new +inventoryEdit=Edit +inventoryValidate=驗證 +inventoryDraft=運行 +inventorySelectWarehouse=Warehouse choice +inventoryConfirmCreate=Create +inventoryOfWarehouse=Inventory for warehouse : %s +inventoryErrorQtyAdd=Error : one quantity is leaser than zero +inventoryMvtStock=By inventory +inventoryWarningProductAlreadyExists=This product is already into list +SelectCategory=分類篩選器 +SelectFournisseur=Supplier filter +inventoryOnDate=Inventory +INVENTORY_DISABLE_VIRTUAL=Allow to not destock child product from a kit on inventory +INVENTORY_USE_MIN_PA_IF_NO_LAST_PA=Use the buy price if no last buy price can be found +INVENTORY_USE_INVENTORY_DATE_FROM_DATEMVT=Stock mouvment have date of inventory +inventoryChangePMPPermission=Allow to change PMP value for a product +ColumnNewPMP=New unit PMP +OnlyProdsInStock=Do not add product without stock +TheoricalQty=Theorique qty +TheoricalValue=Theorique qty +LastPA=Last BP +CurrentPA=Curent BP +RealQty=Real Qty +RealValue=Real Value +RegulatedQty=Regulated Qty +AddInventoryProduct=Add product to inventory +AddProduct=Add +ApplyPMP=Apply PMP +FlushInventory=Flush inventory +ConfirmFlushInventory=Do you confirm this action ? +InventoryFlushed=Inventory flushed +ExitEditMode=Exit edition +inventoryDeleteLine=Delete line +RegulateStock=Regulate Stock +ListInventory=清單列表 diff --git a/htdocs/langs/zh_TW/stripe.lang b/htdocs/langs/zh_TW/stripe.lang new file mode 100644 index 00000000000..322248136ca --- /dev/null +++ b/htdocs/langs/zh_TW/stripe.lang @@ -0,0 +1,42 @@ +# Dolibarr language file - Source file is en_US - stripe +StripeSetup=Stripe module setup +StripeDesc=This module offer pages to allow payment on Stripe by customers. This can be used for a free payment or for a payment on a particular Dolibarr object (invoice, order, ...) +StripeOrCBDoPayment=Pay with credit card or Stripe +FollowingUrlAreAvailableToMakePayments=以下網址可提供給客戶的網頁上,能夠作出Dolibarr支付對象 +PaymentForm=付款方式 +WelcomeOnPaymentPage=歡迎您來到我們的在線支付服務 +ThisScreenAllowsYouToPay=這個屏幕允許你進行網上支付%s。 +ThisIsInformationOnPayment=這是在做付款信息 +ToComplete=要完成 +YourEMail=付款確認的電子郵件 +STRIPE_PAYONLINE_SENDEMAIL=EMail to warn after a payment (success or not) +Creditor=債權人 +PaymentCode=付款代碼 +StripeDoPayment=前往付款 +YouWillBeRedirectedOnStripe=You will be redirected on secured Stripe page to input you credit card information +Continue=未來 +ToOfferALinkForOnlinePayment=網址為%s支付 +ToOfferALinkForOnlinePaymentOnOrder=網址提供一個命令%s網上支付的用戶界面 +ToOfferALinkForOnlinePaymentOnInvoice=網址提供發票一%s在線支付的用戶界面 +ToOfferALinkForOnlinePaymentOnContractLine=網址提供了一個合同線%s在線支付的用戶界面 +ToOfferALinkForOnlinePaymentOnFreeAmount=網址提供一個免費的網上支付金額%s用戶界面 +ToOfferALinkForOnlinePaymentOnMemberSubscription=網址為會員提供訂閱%s在線支付的用戶界面 +YouCanAddTagOnUrl=您還可以添加標簽= url參數價值的任何網址(只需要支付免費)添加自己的註釋標記付款。 +SetupStripeToHavePaymentCreatedAutomatically=Setup your Stripe with url %s to have payment created automatically when validated by Stripe. +YourPaymentHasBeenRecorded=本頁面確認您的付款已記錄。謝謝。 +YourPaymentHasNotBeenRecorded=您的付款並沒有被記錄和交易已取消。謝謝。 +AccountParameter=帳戶參數 +UsageParameter=使用參數 +InformationToFindParameters=幫助,找到你的%s帳戶信息 +STRIPE_CGI_URL_V2=Url of Stripe CGI module for payment +VendorName=供應商名稱 +CSSUrlForPaymentForm=付款方式的CSS樣式表的URL +MessageOK=訊息驗證支付返回頁面 +MessageKO=取消支付返回頁面的訊息 +NewStripePaymentReceived=New Stripe payment received +NewStripePaymentFailed=New Stripe payment tried but failed +STRIPE_TEST_SECRET_KEY=Secret test key +STRIPE_TEST_PUBLISHABLE_KEY=Publishable test key +STRIPE_LIVE_SECRET_KEY=Secret live key +STRIPE_LIVE_PUBLISHABLE_KEY=Publishable live key +StripeLiveEnabled=Stripe live enabled (otherwise test/sandbox mode) diff --git a/htdocs/langs/zh_TW/supplier_proposal.lang b/htdocs/langs/zh_TW/supplier_proposal.lang index 093bf6e2824..c7983a2c31d 100644 --- a/htdocs/langs/zh_TW/supplier_proposal.lang +++ b/htdocs/langs/zh_TW/supplier_proposal.lang @@ -8,7 +8,7 @@ SearchRequest=Find a request DraftRequests=Draft requests SupplierProposalsDraft=Draft supplier proposals LastModifiedRequests=Latest %s modified price requests -RequestsOpened=Opened price requests +RequestsOpened=Open price requests SupplierProposalArea=Supplier proposals area SupplierProposalShort=Supplier proposal SupplierProposals=Supplier proposals @@ -23,7 +23,7 @@ ConfirmValidateAsk=Are you sure you want to validate this price request under na DeleteAsk=Delete request ValidateAsk=Validate request SupplierProposalStatusDraft=草案(等待驗證) -SupplierProposalStatusValidated=Validated (request is opened) +SupplierProposalStatusValidated=Validated (request is open) SupplierProposalStatusClosed=關閉 SupplierProposalStatusSigned=Accepted SupplierProposalStatusNotSigned=Refused @@ -47,7 +47,7 @@ CommercialAsk=Price request DefaultModelSupplierProposalCreate=Default model creation DefaultModelSupplierProposalToBill=Default template when closing a price request (accepted) DefaultModelSupplierProposalClosed=Default template when closing a price request (refused) -ListOfSupplierProposal=List of supplier proposal requests +ListOfSupplierProposals=List of supplier proposal requests ListSupplierProposalsAssociatedProject=List of supplier proposals associated with project SupplierProposalsToClose=Supplier proposals to close SupplierProposalsToProcess=Supplier proposals to process diff --git a/htdocs/langs/zh_TW/suppliers.lang b/htdocs/langs/zh_TW/suppliers.lang index 3dba22176dd..e213d23444b 100644 --- a/htdocs/langs/zh_TW/suppliers.lang +++ b/htdocs/langs/zh_TW/suppliers.lang @@ -14,6 +14,7 @@ TotalSellingPriceMinShort=Total of subproducts selling prices SomeSubProductHaveNoPrices=Some sub-products have no price defined AddSupplierPrice=Add buying price ChangeSupplierPrice=Change buying price +SupplierPrices=供應商價格 ReferenceSupplierIsAlreadyAssociatedWithAProduct=該參考供應商已經與一參考:%s的 NoRecordedSuppliers=沒有供應商記錄 SupplierPayment=供應商付款 @@ -42,3 +43,4 @@ NotTheGoodQualitySupplier=Wrong quality ReputationForThisProduct=Reputation BuyerName=Buyer name AllProductServicePrices=All product / service prices +BuyingPriceNumShort=供應商價格 diff --git a/htdocs/langs/zh_TW/trips.lang b/htdocs/langs/zh_TW/trips.lang index c00724f93be..19a13bfe820 100644 --- a/htdocs/langs/zh_TW/trips.lang +++ b/htdocs/langs/zh_TW/trips.lang @@ -12,7 +12,7 @@ ListOfFees=費用清單 TypeFees=Types of fees ShowTrip=費用列表 NewTrip=新增費用 -CompanyVisited=公司拜訪 +CompanyVisited=Company/organisation visited FeesKilometersOrAmout=金額或公里 DeleteTrip=Delete expense report ConfirmDeleteTrip=Are you sure you want to delete this expense report? @@ -21,7 +21,17 @@ ListToApprove=Waiting for approval ExpensesArea=Expense reports area ClassifyRefunded=Classify 'Refunded' ExpenseReportWaitingForApproval=A new expense report has been submitted for approval -ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n- User: %s\n- Period: %s\nClick here to validate: %s +ExpenseReportWaitingForApprovalMessage=A new expense report has been submitted and is waiting for approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportWaitingForReApproval=An expense report has been submitted for re-approval +ExpenseReportWaitingForReApprovalMessage=An expense report has been submitted and is waiting for re-approval.\nThe %s, you refused to approve the expense report for this reason: %s.\nA new version has been proposed and waiting for your approval.\n - User: %s\n - Period: %s\nClick here to validate: %s +ExpenseReportApproved=An expense report was approved +ExpenseReportApprovedMessage=The expense report %s was approved.\n - User: %s\n - Approved by: %s\nClick here to show the expense report: %s +ExpenseReportRefused=An expense report was refused +ExpenseReportRefusedMessage=The expense report %s was refused.\n - User: %s\n - Refused by: %s\n - Motive for refusal: %s\nClick here to show the expense report: %s +ExpenseReportCanceled=An expense report was canceled +ExpenseReportCanceledMessage=The expense report %s was canceled.\n - User: %s\n - Canceled by: %s\n - Motive for cancellation: %s\nClick here to show the expense report: %s +ExpenseReportPaid=An expense report was paid +ExpenseReportPaidMessage=The expense report %s was paid.\n - User: %s\n - Paid by: %s\nClick here to show the expense report: %s TripId=Id expense report AnyOtherInThisListCanValidate=Person to inform for validation. TripSociete=Information company @@ -59,31 +69,24 @@ DATE_REFUS=Deny date DATE_SAVE=Validation date DATE_CANCEL=Cancelation date DATE_PAIEMENT=Payment date - BROUILLONNER=Reopen +ExpenseReportRef=Ref. expense report ValidateAndSubmit=Validate and submit for approval ValidatedWaitingApproval=Validated (waiting for approval) - NOT_AUTHOR=You are not the author of this expense report. Operation cancelled. - ConfirmRefuseTrip=Are you sure you want to deny this expense report? - ValideTrip=Approve expense report ConfirmValideTrip=Are you sure you want to approve this expense report? - PaidTrip=Pay an expense report ConfirmPaidTrip=Are you sure you want to change status of this expense report to "Paid"? - ConfirmCancelTrip=Are you sure you want to cancel this expense report? - BrouillonnerTrip=Move back expense report to status "Draft" ConfirmBrouillonnerTrip=Are you sure you want to move this expense report to status "Draft"? - SaveTrip=Validate expense report ConfirmSaveTrip=Are you sure you want to validate this expense report? - NoTripsToExportCSV=No expense report to export for this period. ExpenseReportPayment=Expense report payment - ExpenseReportsToApprove=Expense reports to approve ExpenseReportsToPay=Expense reports to pay +CloneExpenseReport=Clone expense report +ConfirmCloneExpenseReport=Are you sure you want to clone this expense report ? diff --git a/htdocs/langs/zh_TW/users.lang b/htdocs/langs/zh_TW/users.lang index 6f12e55637f..f38f2165dc5 100644 --- a/htdocs/langs/zh_TW/users.lang +++ b/htdocs/langs/zh_TW/users.lang @@ -66,8 +66,8 @@ InternalUser=內部用戶 ExportDataset_user_1=Dolibarr的用戶和屬性 DomainUser=域用戶%s Reactivate=重新啟用 -CreateInternalUserDesc=This form allows you to create an user internal to your company/foundation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. -InternalExternalDesc=內部員工用戶是指直接受公司聘雇的。
非內部員工用戶是指客戶、供應商或其他。

此系統可以針對這兩種用戶,定義不同的使用權限,也可設定不同的選單來顯示(見首頁 - 設定 - 顯示選單) +CreateInternalUserDesc=This form allows you to create an user internal to your company/organisation. To create an external user (customer, supplier, ...), use the button 'Create Dolibarr user' from third party's contact card. +InternalExternalDesc=An internal user is a user that is part of your company/organisation.
An external user is a customer, supplier or other.

In both cases, permissions defines rights on Dolibarr, also external user can have a different menu manager than internal user (See Home - Setup - Display) PermissionInheritedFromAGroup=因為從權限授予一個用戶的一組繼承。 Inherited=遺傳 UserWillBeInternalUser=創建的用戶將是一個內部用戶(因為沒有聯系到一個特定的第三方) diff --git a/htdocs/langs/zh_TW/website.lang b/htdocs/langs/zh_TW/website.lang index 6197580711f..865bd3dc93d 100644 --- a/htdocs/langs/zh_TW/website.lang +++ b/htdocs/langs/zh_TW/website.lang @@ -1,11 +1,12 @@ # Dolibarr language file - Source file is en_US - website -Shortname=Code +Shortname=碼 WebsiteSetupDesc=Create here as much entry as number of different websites you need. Then go into menu Websites to edit them. DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content +PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. MediaFiles=Media library EditCss=Edit Style/CSS EditMenu=Edit menu @@ -14,8 +15,9 @@ EditPageContent=Edit Content Website=Web site Webpage=Web page AddPage=Add page +HomePage=Home Page PreviewOfSiteNotYetAvailable=Preview of your website %s not yet available. You must first add a page. -RequestedPageHasNoContentYet=Requested page with id %s has not content yet or cache file .tpl.php was removed. Edit content of page to solve this. +RequestedPageHasNoContentYet=Requested page with id %s has no content yet, or cache file .tpl.php was removed. Edit content of the page to solve this. PageDeleted=Page '%s' of website %s deleted PageAdded=Page '%s' added ViewSiteInNewTab=View site in new tab @@ -23,6 +25,7 @@ ViewPageInNewTab=View page in new tab SetAsHomePage=Set as Home page RealURL=Real URL ViewWebsiteInProduction=View web site using home URLs -SetHereVirtualHost=If you can set, on your web server, a dedicated virtual host with a root directory on %s, define here the virtual hostname so the preview can be done also using this direct web server access and not only using Dolibarr server. -PreviewSiteServedByWebServer=Preview %s in a new tab. The %s will be served by an external web server (like Apache, Nginx, IIS). You must instal and setup this server before.
URL of %s served by external server:
%s -PreviewSiteServedByDolibarr=Preview %s in a new tab. The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are using path of your Dolibarr.
URL of %s served by Dolibarr:
%s +SetHereVirtualHost=If you can create, on your web server (Apache, Nginx, ...), a dedicated Virtual Host with PHP enabled and a Root directory on %s
then enter here the virtual hostname you have created, so the preview can be done also using this direct web server access, and not only using Dolibarr server. +PreviewSiteServedByWebServer=Preview %s in a new tab.

The %s will be served by an external web server (like Apache, Nginx, IIS). You must install and setup this server before to point to directory:
%s
URL served by external server:
%s +PreviewSiteServedByDolibarr=Preview %s in a new tab.

The %s will be served by Dolibarr server so it does not need any extra web server (like Apache, Nginx, IIS) to be installed.
The inconvenient is that URL of pages are not user friendly and start with path of your Dolibarr.
URL served by Dolibarr:
%s

To use your own external web server to serve this web site, create a virtual host on your web server that point on directory
%s
then enter the name of this virtual server and click on the other preview button. +NoPageYet=No pages yet diff --git a/htdocs/langs/zh_TW/withdrawals.lang b/htdocs/langs/zh_TW/withdrawals.lang index dd8b14c5374..6626bbe615a 100644 --- a/htdocs/langs/zh_TW/withdrawals.lang +++ b/htdocs/langs/zh_TW/withdrawals.lang @@ -17,7 +17,7 @@ NbOfInvoiceToWithdrawWithInfo=Nb. of customer invoice with direct debit payment InvoiceWaitingWithdraw=Invoice waiting for direct debit AmountToWithdraw=收回的款額 WithdrawsRefused=Direct debit refused -NoInvoiceToWithdraw=無付款方式客戶發票“撤回”是等待。繼續就提款卡發票'標簽作出要求。 +NoInvoiceToWithdraw=No customer invoice with open 'Direct debit requests' is waiting. Go on tab '%s' on invoice card to make a request. ResponsibleUser=負責用戶 WithdrawalsSetup=Direct debit payment setup WithdrawStatistics=Direct debit payment statistics @@ -41,6 +41,7 @@ RefusedReason=拒絕的原因 RefusedInvoicing=帳單拒絕 NoInvoiceRefused=拒絕不收 InvoiceRefused=Invoice refused (Charge the rejection to customer) +StatusDebitCredit=Status debit/credit StatusWaiting=等候 StatusTrans=傳播 StatusCredited=計入 From 10cb7b2524c1e08ae6c9d16218dac3277c8a0f68 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sun, 9 Jul 2017 20:31:27 +0200 Subject: [PATCH 276/515] Fix remove warnings --- htdocs/admin/notification.php | 8 +++--- htdocs/bookmarks/bookmarks.lib.php | 8 +++--- htdocs/comm/action/index.php | 18 ++++++++----- htdocs/comm/action/listactions.php | 11 +++++--- htdocs/core/actions_setmoduleoptions.inc.php | 17 +++++++----- htdocs/install/step1.php | 11 +++++--- htdocs/main.inc.php | 10 +++++--- htdocs/projet/activity/perday.php | 27 +++++++++++--------- htdocs/theme/eldy/ckeditor/config.js | 5 +++- htdocs/theme/md/ckeditor/config.js | 5 +++- 10 files changed, 74 insertions(+), 46 deletions(-) diff --git a/htdocs/admin/notification.php b/htdocs/admin/notification.php index 73fb3d91587..04427f636cd 100644 --- a/htdocs/admin/notification.php +++ b/htdocs/admin/notification.php @@ -55,7 +55,7 @@ if ($action == 'setvalue' && $user->admin) $result=dolibarr_set_const($db, "NOTIFICATION_EMAIL_FROM", $_POST["email_from"], 'chaine', 0, '', $conf->entity); if ($result < 0) $error++; - if (! $error) + if (! $error && is_array($_POST)) { //var_dump($_POST); foreach($_POST as $key => $val) @@ -172,7 +172,7 @@ $var=true; $i=0; foreach($listofnotifiedevents as $notifiedevent) { - + $label=$langs->trans("Notify_".$notifiedevent['code']); //!=$langs->trans("Notify_".$notifiedevent['code'])?$langs->trans("Notify_".$notifiedevent['code']):$notifiedevent['label']; if ($notifiedevent['elementtype'] == 'order_supplier') $elementLabel = $langs->trans('SupplierOrder'); @@ -183,7 +183,7 @@ foreach($listofnotifiedevents as $notifiedevent) if ($i) print ', '; print $label; - + $i++; } print '
'; - // There is several pages - if ($num > $listlimit) - { - print ''; - } - // Title of lines print ''; foreach ($fieldlist as $field => $value) diff --git a/htdocs/theme/eldy/ckeditor/config.js b/htdocs/theme/eldy/ckeditor/config.js index e4a86a37293..cddbef17dd1 100644 --- a/htdocs/theme/eldy/ckeditor/config.js +++ b/htdocs/theme/eldy/ckeditor/config.js @@ -15,6 +15,7 @@ CKEDITOR.editorConfig = function( config ) //config.height = '300px'; //config.resize_dir = 'vertical'; // horizontal, vertical, both config.removePlugins = 'elementspath,save'; // config.removePlugins = 'elementspath,save,font'; + //config.extraPlugins = 'docprops,scayt,showprotected'; config.removeDialogTabs = 'flash:advanced'; // config.removeDialogTabs = 'flash:advanced;image:Link'; config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // Prevent PHP Code to be formatted //config.menu_groups = 'clipboard,table,anchor,link,image'; // for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea' diff --git a/htdocs/theme/md/ckeditor/config.js b/htdocs/theme/md/ckeditor/config.js index a6508e62a88..e0374f6b271 100644 --- a/htdocs/theme/md/ckeditor/config.js +++ b/htdocs/theme/md/ckeditor/config.js @@ -15,6 +15,7 @@ CKEDITOR.editorConfig = function( config ) //config.height = '300px'; //config.resize_dir = 'vertical'; // horizontal, vertical, both config.removePlugins = 'elementspath,save'; // config.removePlugins = 'elementspath,save,font'; + //config.extraPlugins = 'docprops,scayt,showprotected'; config.removeDialogTabs = 'flash:advanced'; // config.removeDialogTabs = 'flash:advanced;image:Link'; config.protectedSource.push( /<\?[\s\S]*?\?>/g ); // Prevent PHP Code to be formatted //config.menu_groups = 'clipboard,table,anchor,link,image'; // for context menu 'clipboard,form,tablecell,tablecellproperties,tablerow,tablecolumn,table,anchor,link,image,flash,checkbox,radio,textfield,hiddenfield,imagebutton,button,select,textarea' diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index d27737dd3b2..b2b8662fe08 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -1090,7 +1090,10 @@ if ($action == 'preview') $out.=$csscontent; $out.=''."\n"; - $out.=$objectpage->content."\n"; + // Replace php code + $content = preg_replace('/<\?php.*\?>/ims', '...php...', $objectpage->content); + + $out.=$content."\n"; $out.=''; From 253f7e252d9b16ef6d720466192a3bc795184924 Mon Sep 17 00:00:00 2001 From: Laurent Dinclaux Date: Mon, 10 Jul 2017 13:15:14 +1100 Subject: [PATCH 280/515] Fixes local taxes repports by rate --- htdocs/compta/localtax/quadri_detail.php | 16 ++++++------ htdocs/core/lib/tax.lib.php | 31 ++++++++++++++++-------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/htdocs/compta/localtax/quadri_detail.php b/htdocs/compta/localtax/quadri_detail.php index 175ff6cf98f..b7d8b1d6bad 100644 --- a/htdocs/compta/localtax/quadri_detail.php +++ b/htdocs/compta/localtax/quadri_detail.php @@ -54,8 +54,9 @@ if (empty($year)) $year_current = $year; $year_start = $year; } -$date_start=dol_mktime(0,0,0,$_REQUEST["date_startmonth"],$_REQUEST["date_startday"],$_REQUEST["date_startyear"]); -$date_end=dol_mktime(23,59,59,$_REQUEST["date_endmonth"],$_REQUEST["date_endday"],$_REQUEST["date_endyear"]); + +$date_start = dol_mktime( 0, 0, 0, GETPOST( "date_startmonth" ), GETPOST( "date_startday" ), GETPOST( "date_startyear" ) ); +$date_end = dol_mktime( 23, 59, 59, GETPOST( "date_endmonth" ), GETPOST( "date_endday" ), GETPOST( "date_endyear" ) ); // Quarter if (empty($date_start) || empty($date_end)) // We define date_start and date_end { @@ -92,12 +93,9 @@ $socid = GETPOST('socid','int'); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'tax', '', '', 'charges'); - - -/* +/** * View */ - $morequerystring=''; $listofparams=array('date_startmonth','date_startyear','date_startday','date_endmonth','date_endyear','date_endday'); foreach($listofparams as $param) @@ -118,6 +116,7 @@ $paymentfourn_static=new PaiementFourn($db); $fsearch.=' '; $fsearch.=' '; +$fsearch.=' '; $calc=$conf->global->MAIN_INFO_LOCALTAX_CALC.$local; @@ -196,9 +195,8 @@ $total = 0; $i=0; // Load arrays of datas -$x_coll = vat_by_date($db, 0, 0, $date_start, $date_end, $modetax, 'sell'); -$x_paye = vat_by_date($db, 0, 0, $date_start, $date_end, $modetax, 'buy'); - +$x_coll = tax_by_date('localtax' . $local, $db, 0, 0, $date_start, $date_end, $modetax, 'sell'); +$x_paye = tax_by_date('localtax' . $local, $db, 0, 0, $date_start, $date_end, $modetax, 'buy'); echo '
'; - print_fleche_navigation($page, $_SERVER["PHP_SELF"], '', ($num > $listlimit), ''); - print '
'; diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index 0fc401f0280..38ff0ed73f7 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -186,6 +186,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction * to report the amounts for different VAT rates as different lines. * This function also accounts recurrent invoices. * + * @param string $type Tax type, either vat, 'localtax1' or 'localtax2'. Default to 'vat' * @param DoliDB $db Database handler object * @param int $y Year * @param int $q Quarter @@ -196,7 +197,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction * @param int $m Month * @return array List of quarters with vat */ -function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) +function tax_by_date($type='vat', $db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) { global $conf; @@ -210,8 +211,6 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, $fk_facture2='fk_facture'; $fk_payment='fk_paiement'; $total_tva='total_tva'; - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; $paymenttable='paiement'; $paymentfacturetable='paiement_facture'; $invoicefieldref='facnumber'; @@ -224,13 +223,20 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, $fk_facture2='fk_facturefourn'; $fk_payment='fk_paiementfourn'; $total_tva='tva'; - $total_localtax1='total_localtax1'; - $total_localtax2='total_localtax2'; $paymenttable='paiementfourn'; $paymentfacturetable='paiementfourn_facturefourn'; $invoicefieldref='ref'; } + if ( strpos( $type, 'localtax' ) === 0 ) { + $f_rate = $type . '_tx'; + } else { + $f_rate = 'tva_tx'; + } + + $total_localtax1='total_localtax1'; + $total_localtax2='total_localtax2'; + // CAS DES BIENS // Define sql request @@ -238,7 +244,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, if ($modetax == 1) // Option vat on delivery for goods (payment) and debit invoice for services { // Count on delivery date (use invoice date as delivery is unknown) - $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; + $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; $sql.= " d.date_start as date_start, d.date_end as date_end,"; $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; @@ -273,7 +279,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, else // Option vat on delivery for goods (payments) and payments for services { // Count on delivery date (use invoice date as delivery is unknown) - $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; + $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; $sql.= " d.date_start as date_start, d.date_end as date_end,"; $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef as date_f, s.nom as company_name, s.rowid as company_id,"; @@ -378,7 +384,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, if ($modetax == 1) // Option vat on delivery for goods (payment) and debit invoice for services { // Count on invoice date - $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; + $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; $sql.= " d.date_start as date_start, d.date_end as date_end,"; $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; @@ -413,7 +419,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, else // Option vat on delivery for goods (payments) and payments for services { // Count on payments date - $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; + $sql = "SELECT d.rowid, d.product_type as dtype, d.".$fk_facture." as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.".$total_tva." as total_vat, d.description as descr,"; $sql .=" d.".$total_localtax1." as total_localtax1, d.".$total_localtax2." as total_localtax2, "; $sql.= " d.date_start as date_start, d.date_end as date_end,"; $sql.= " f.".$invoicefieldref." as facnum, f.type, f.total_ttc as ftotal_ttc, f.datef, s.nom as company_name, s.rowid as company_id,"; @@ -522,7 +528,7 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, $sql=''; // Count on payments date - $sql = "SELECT e.rowid, d.product_type as dtype, e.rowid as facid, d.tva_tx as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.total_tva as total_vat, e.note_private as descr,"; + $sql = "SELECT e.rowid, d.product_type as dtype, e.rowid as facid, d.$f_rate as rate, d.total_ht as total_ht, d.total_ttc as total_ttc, d.total_tva as total_vat, e.note_private as descr,"; $sql .=" d.total_localtax1 as total_localtax1, d.total_localtax2 as total_localtax2, "; $sql.= " e.date_debut as date_start, e.date_fin as date_end,"; $sql.= " e.ref as facnum, e.total_ttc as ftotal_ttc, e.date_create, s.nom as company_name, s.rowid as company_id, d.fk_c_type_fees as type,"; @@ -622,3 +628,8 @@ function vat_by_date($db, $y, $q, $date_start, $date_end, $modetax, $direction, return $list; } +function vat_by_date ($db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) +{ + return tax_by_date('vat', $db, $y, $q, $date_start, $date_end, $modetax, $direction, $m); +} + From 244574f8e6d576f5e22c7d33b13730a4e1217f54 Mon Sep 17 00:00:00 2001 From: Laurent Dinclaux Date: Mon, 10 Jul 2017 13:19:59 +1100 Subject: [PATCH 281/515] Fixes functions comments --- htdocs/core/lib/tax.lib.php | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index 38ff0ed73f7..802919af619 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -181,9 +181,9 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction } /** - * Gets VAT to collect for the given year (and given quarter or month) - * The function gets the VAT in split results, as the VAT declaration asks - * to report the amounts for different VAT rates as different lines. + * Gets Tax to collect for the given year (and given quarter or month) + * The function gets the Tax in split results, as the Tax declaration asks + * to report the amounts for different Tax rates as different lines. * This function also accounts recurrent invoices. * * @param string $type Tax type, either vat, 'localtax1' or 'localtax2'. Default to 'vat' @@ -628,6 +628,22 @@ function tax_by_date($type='vat', $db, $y, $q, $date_start, $date_end, $modetax, return $list; } +/** + * Gets VAT to collect for the given year (and given quarter or month) + * The function gets the VAT in split results, as the VAT declaration asks + * to report the amounts for different VAT rates as different lines. + * This function also accounts recurrent invoices. + * + * @param DoliDB $db Database handler object + * @param int $y Year + * @param int $q Quarter + * @param string $date_start Start date + * @param string $date_end End date + * @param int $modetax 0 or 1 (option vat on debit) + * @param int $direction 'sell' (customer invoice) or 'buy' (supplier invoices) + * @param int $m Month + * @return array List of quarters with vat + */ function vat_by_date ($db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) { return tax_by_date('vat', $db, $y, $q, $date_start, $date_end, $modetax, $direction, $m); From 64a5be3e0092fccfc1fd43bef9d9f4d5fb045737 Mon Sep 17 00:00:00 2001 From: Laurent Dinclaux Date: Mon, 10 Jul 2017 14:14:21 +1100 Subject: [PATCH 282/515] Fixes travis error: Arguments with default values must be at the end of the argument list --- htdocs/core/lib/tax.lib.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/core/lib/tax.lib.php b/htdocs/core/lib/tax.lib.php index 802919af619..805adb9d796 100644 --- a/htdocs/core/lib/tax.lib.php +++ b/htdocs/core/lib/tax.lib.php @@ -186,7 +186,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction * to report the amounts for different Tax rates as different lines. * This function also accounts recurrent invoices. * - * @param string $type Tax type, either vat, 'localtax1' or 'localtax2'. Default to 'vat' + * @param string $type Tax type, either 'vat', 'localtax1' or 'localtax2' * @param DoliDB $db Database handler object * @param int $y Year * @param int $q Quarter @@ -197,7 +197,7 @@ function vat_by_thirdparty($db, $y, $date_start, $date_end, $modetax, $direction * @param int $m Month * @return array List of quarters with vat */ -function tax_by_date($type='vat', $db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) +function tax_by_date($type, $db, $y, $q, $date_start, $date_end, $modetax, $direction, $m=0) { global $conf; From bb2dc59c56163a35027408818e64bde4fa851302 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 10 Jul 2017 11:29:09 +0200 Subject: [PATCH 283/515] More complete request to clean --- htdocs/install/mysql/migration/repair.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/install/mysql/migration/repair.sql b/htdocs/install/mysql/migration/repair.sql index f67869f67ba..f2e5066a066 100755 --- a/htdocs/install/mysql/migration/repair.sql +++ b/htdocs/install/mysql/migration/repair.sql @@ -330,7 +330,7 @@ drop table tmp_c_shipment_mode; -- Restore id of user on link for payment of expense report drop table tmp_bank_url_expense_user; create table tmp_bank_url_expense_user (select e.fk_user_author, bu2.fk_bank from llx_expensereport as e, llx_bank_url as bu2 where bu2.url_id = e.rowid and bu2.type = 'payment_expensereport'); -update llx_bank_url as bu set url_id = (select e.fk_user_author from tmp_bank_url_expense_user as e where e.fk_bank = bu.fk_bank) where bu.url_id = 0 and bu.type ='user'; +update llx_bank_url as bu set url_id = (select e.fk_user_author from tmp_bank_url_expense_user as e where e.fk_bank = bu.fk_bank) where (bu.url_id = 0 OR bu.url_id IS NULL) and bu.type ='user'; drop table tmp_bank_url_expense_user; From f85fcbd2161dedf23cfa75d710c4872418b9019b Mon Sep 17 00:00:00 2001 From: fappels Date: Mon, 10 Jul 2017 12:47:21 +0200 Subject: [PATCH 284/515] Fix categorie navigation --- htdocs/categories/class/categorie.class.php | 2 +- htdocs/categories/viewcat.php | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php index db3364ff04d..1b292b9e470 100644 --- a/htdocs/categories/class/categorie.class.php +++ b/htdocs/categories/class/categorie.class.php @@ -133,7 +133,7 @@ class Categorie extends CommonObject ); public $element='category'; - public $table_element='categories'; + public $table_element='categorie'; public $fk_parent; public $label; diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php index 11aff01dc99..1c6186d5df4 100644 --- a/htdocs/categories/viewcat.php +++ b/htdocs/categories/viewcat.php @@ -35,14 +35,14 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; $langs->load("categories"); $id=GETPOST('id','int'); -$ref=GETPOST('ref'); +$label=GETPOST('label'); $type=GETPOST('type'); $action=GETPOST('action','aZ09'); $confirm=GETPOST('confirm'); $removeelem = GETPOST('removeelem','int'); $elemid=GETPOST('elemid'); -if ($id == "") +if ($id == "" && $label == "") { dol_print_error('','Missing parameter id'); exit(); @@ -52,7 +52,7 @@ if ($id == "") $result = restrictedArea($user, 'categorie', $id, '&category'); $object = new Categorie($db); -$result=$object->fetch($id); +$result=$object->fetch($id, $label); $object->fetch_optionals($id,$extralabels); if ($result <= 0) { @@ -195,7 +195,7 @@ $head = categories_prepare_head($object,$type); dol_fiche_head($head, 'card', $title, -1, 'category'); $linkback = ''.$langs->trans("BackToList").''; - +$object->next_prev_filter=" type = ".$object->type; $object->ref = $object->label; $morehtmlref='
'.$langs->trans("Root").' >> '; $ways = $object->print_all_ways(" >> ", '', 1); @@ -205,7 +205,7 @@ foreach ($ways as $way) } $morehtmlref.='
'; -dol_banner_tab($object, 'ref', $linkback, ($user->societe_id?0:1), 'ref', 'ref', $morehtmlref, '', 0, '', '', 1); +dol_banner_tab($object, 'label', $linkback, ($user->societe_id?0:1), 'label', 'label', $morehtmlref, '', 0, '', '', 1); /* From 1ab3e0c3fa03bfbfb7e998e30c43981ba11feee9 Mon Sep 17 00:00:00 2001 From: BENKE Charlene Date: Mon, 10 Jul 2017 14:00:32 +0200 Subject: [PATCH 285/515] if no suppliers selected, no subprice yet --- htdocs/supplier_proposal/class/supplier_proposal.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/supplier_proposal/class/supplier_proposal.class.php b/htdocs/supplier_proposal/class/supplier_proposal.class.php index 0c8410213af..1d27e7c4986 100644 --- a/htdocs/supplier_proposal/class/supplier_proposal.class.php +++ b/htdocs/supplier_proposal/class/supplier_proposal.class.php @@ -2841,7 +2841,7 @@ class SupplierProposalLine extends CommonObjectLine $sql.= " ".price2num($this->localtax2_tx).","; $sql.= " '".$this->localtax1_type."',"; $sql.= " '".$this->localtax2_type."',"; - $sql.= " ".price2num($this->subprice).","; + $sql.= " ".(!empty($this->subprice)?price2num($this->subprice):"null").","; $sql.= " ".price2num($this->remise_percent).","; $sql.= " ".(isset($this->info_bits)?"'".$this->info_bits."'":"null").","; $sql.= " ".price2num($this->total_ht).","; From 7a12118ce45cc7849abc75c6be1a77071c677985 Mon Sep 17 00:00:00 2001 From: AlainRnet Date: Mon, 10 Jul 2017 15:41:26 +0200 Subject: [PATCH 286/515] Update card.php Limitation of the number of characters that is not limited in the third card as described here: https://www.dolibarr.fr/forum/5-bugs-sur-la-version-cvs-ou-demo/59229-taille-limitee-de-l-adesse-mail-des-contacts --- htdocs/contact/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index fbd27b0d841..d5854297f43 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -625,7 +625,7 @@ else // EMail if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->email)) == 0) $object->email = $objsoc->email; // Predefined with third party print ''; - print ''; + print ''; if (! empty($conf->mailing->enabled)) { print ''; @@ -860,7 +860,7 @@ else // EMail print ''; - print ''; + print ''; if (! empty($conf->mailing->enabled)) { $langs->load("mails"); From 8c287c02ca2fb9d70f778ba302eda278310f9e9f Mon Sep 17 00:00:00 2001 From: AlainRnet Date: Mon, 10 Jul 2017 15:41:26 +0200 Subject: [PATCH 287/515] Update card.php Limitation of the number of characters that is not limited in the third card as described here: https://www.dolibarr.fr/forum/5-bugs-sur-la-version-cvs-ou-demo/59229-taille-limitee-de-l-adesse-mail-des-contacts --- htdocs/contact/card.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/htdocs/contact/card.php b/htdocs/contact/card.php index fbd27b0d841..d5854297f43 100644 --- a/htdocs/contact/card.php +++ b/htdocs/contact/card.php @@ -625,7 +625,7 @@ else // EMail if (($objsoc->typent_code == 'TE_PRIVATE' || ! empty($conf->global->CONTACT_USE_COMPANY_ADDRESS)) && dol_strlen(trim($object->email)) == 0) $object->email = $objsoc->email; // Predefined with third party print ''; - print ''; + print ''; if (! empty($conf->mailing->enabled)) { print ''; @@ -860,7 +860,7 @@ else // EMail print ''; - print ''; + print ''; if (! empty($conf->mailing->enabled)) { $langs->load("mails"); From be09c911ce5a904d376b961623f7f65ab8a7a4a6 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Mon, 10 Jul 2017 23:44:46 +0200 Subject: [PATCH 288/515] Debug module websites --- htdocs/admin/websites.php | 2 +- .../install/mysql/migration/5.0.0-6.0.0.sql | 6 +- ...pages.key.sql => llx_website_page.key.sql} | 4 +- ...website_pages.sql => llx_website_page.sql} | 2 +- htdocs/langs/en_US/website.lang | 1 + htdocs/websites/class/websitepage.class.php | 2 +- htdocs/websites/index.php | 62 +++++++++++++------ 7 files changed, 53 insertions(+), 26 deletions(-) rename htdocs/install/mysql/tables/{llx_website_pages.key.sql => llx_website_page.key.sql} (80%) rename htdocs/install/mysql/tables/{llx_website_pages.sql => llx_website_page.sql} (97%) diff --git a/htdocs/admin/websites.php b/htdocs/admin/websites.php index 9a12441fbb3..66776220d32 100644 --- a/htdocs/admin/websites.php +++ b/htdocs/admin/websites.php @@ -259,7 +259,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes') // delete if ($tabrowid[$id]) { $rowidcol=$tabrowid[$id]; } else { $rowidcol="rowid"; } - $sql = "DELETE from ".MAIN_DB_PREFIX."website_pages WHERE fk_website ='".$rowid."'"; + $sql = "DELETE from ".MAIN_DB_PREFIX."website_page WHERE fk_website ='".$rowid."'"; $result = $db->query($sql); $sql = "DELETE from ".MAIN_DB_PREFIX."website WHERE rowid ='".$rowid."'"; diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index ec3a945bb09..0137353f714 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -497,7 +497,7 @@ ALTER TABLE llx_usergroup_rights ADD CONSTRAINT fk_usergroup_rights_fk_usergroup -- For new module website -CREATE TABLE llx_website_pages +CREATE TABLE llx_website_page ( rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, fk_website integer NOT NULL, @@ -513,9 +513,9 @@ CREATE TABLE llx_website_pages tms timestamp ) ENGINE=innodb; -ALTER TABLE llx_website_pages ADD UNIQUE INDEX uk_website_pages_url (fk_website,pageurl); +ALTER TABLE llx_website_page ADD UNIQUE INDEX uk_website_page_url (fk_website,pageurl); -ALTER TABLE llx_website_pages ADD CONSTRAINT fk_website_pages_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); +ALTER TABLE llx_website_page ADD CONSTRAINT fk_website_page_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); -- For new module blockedlog diff --git a/htdocs/install/mysql/tables/llx_website_pages.key.sql b/htdocs/install/mysql/tables/llx_website_page.key.sql similarity index 80% rename from htdocs/install/mysql/tables/llx_website_pages.key.sql rename to htdocs/install/mysql/tables/llx_website_page.key.sql index 00b9439d18b..14488e588dc 100644 --- a/htdocs/install/mysql/tables/llx_website_pages.key.sql +++ b/htdocs/install/mysql/tables/llx_website_page.key.sql @@ -16,7 +16,7 @@ -- -- =========================================================================== -ALTER TABLE llx_website_pages ADD UNIQUE INDEX uk_website_pages_url (fk_website,pageurl); +ALTER TABLE llx_website_page ADD UNIQUE INDEX uk_website_page_url (fk_website, pageurl); -ALTER TABLE llx_website_pages ADD CONSTRAINT fk_website_pages_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); +ALTER TABLE llx_website_page ADD CONSTRAINT fk_website_page_website FOREIGN KEY (fk_website) REFERENCES llx_website (rowid); diff --git a/htdocs/install/mysql/tables/llx_website_pages.sql b/htdocs/install/mysql/tables/llx_website_page.sql similarity index 97% rename from htdocs/install/mysql/tables/llx_website_pages.sql rename to htdocs/install/mysql/tables/llx_website_page.sql index d45d8f06f56..69b6c417528 100644 --- a/htdocs/install/mysql/tables/llx_website_pages.sql +++ b/htdocs/install/mysql/tables/llx_website_page.sql @@ -17,7 +17,7 @@ -- ======================================================================== -CREATE TABLE llx_website_pages +CREATE TABLE llx_website_page ( rowid integer AUTO_INCREMENT NOT NULL PRIMARY KEY, fk_website integer NOT NULL, diff --git a/htdocs/langs/en_US/website.lang b/htdocs/langs/en_US/website.lang index abb7f7e56d3..cc2f31143ce 100644 --- a/htdocs/langs/en_US/website.lang +++ b/htdocs/langs/en_US/website.lang @@ -4,6 +4,7 @@ WebsiteSetupDesc=Create here as much entry as number of different websites you n DeleteWebsite=Delete website ConfirmDeleteWebsite=Are you sure you want to delete this web site. All its pages and content will also be removed. WEBSITE_PAGENAME=Page name/alias +WEBSITE_HTML_HEADER=HTML Header WEBSITE_CSS_URL=URL of external CSS file WEBSITE_CSS_INLINE=CSS content PageNameAliasHelp=Name or alias of the page.
This alias is also used to forge a SEO URL when website is read from a Virtual host of a Web server (like Apacke, Nginx, ...). Use the button "%s" to edit this alias. diff --git a/htdocs/websites/class/websitepage.class.php b/htdocs/websites/class/websitepage.class.php index 99fd4d64603..4f9dc58c615 100644 --- a/htdocs/websites/class/websitepage.class.php +++ b/htdocs/websites/class/websitepage.class.php @@ -129,7 +129,7 @@ class WebsitePage extends CommonObject $sql.= 'content,'; $sql.= 'status,'; $sql.= 'date_creation,'; - $sql.= 'date_modification'; + $sql.= 'tms'; $sql .= ') VALUES ('; $sql .= ' '.(! isset($this->fk_website)?'NULL':$this->fk_website).','; $sql .= ' '.(! isset($this->pageurl)?'NULL':"'".$this->db->escape($this->pageurl)."'").','; diff --git a/htdocs/websites/index.php b/htdocs/websites/index.php index b2b8662fe08..2c9c364edac 100644 --- a/htdocs/websites/index.php +++ b/htdocs/websites/index.php @@ -129,6 +129,7 @@ if ($pageid > 0 && $action != 'add') global $dolibarr_main_data_root; $pathofwebsite=$dolibarr_main_data_root.'/websites/'.$website; +$filehtmlheader=$pathofwebsite.'/header.html'; $filecss=$pathofwebsite.'/styles.css.php'; $filetpl=$pathofwebsite.'/page'.$pageid.'.tpl.php'; $fileindex=$pathofwebsite.'/index.php'; @@ -240,25 +241,30 @@ if ($action == 'delete') // Update css if ($action == 'updatecss') { - //$db->begin(); - $res = $object->fetch(0, $website); - /* - $res = $object->update($user); - if ($res > 0) - { - $db->commit(); - $action=''; - } - else + // Html header file + $htmlheadercontent = ''."\n"; + $htmlheadercontent.= ''."\n"; + $htmlheadercontent.= ''."\n"; + $htmlheadercontent.= GETPOST('WEBSITE_HTML_HEADER'); + + dol_syslog("Save file css into ".$filehtmlheader); + + dol_mkdir($pathofwebsite); + $result = file_put_contents($filehtmlheader, $htmlheadercontent); + if (! empty($conf->global->MAIN_UMASK)) + @chmod($filehtmlheader, octdec($conf->global->MAIN_UMASK)); + + if (! $result) { $error++; - $db->rollback(); - }*/ + setEventMessages('Failed to write file '.$filehtmlheader, null, 'errors'); + } + // Css file $csscontent = ''."\n"; - $csscontent.= ''."\n"; + $csscontent.= ''."\n"; $csscontent.= '"."\n"; @@ -278,6 +284,7 @@ if ($action == 'updatecss') setEventMessages('Failed to write file '.$filecss, null, 'errors'); } + if (! $error) { setEventMessages($langs->trans("Saved"), null, 'mesgs'); @@ -310,7 +317,7 @@ if ($action == 'setashome') dol_delete_file($fileindex); $indexcontent = ''."\n"; $result = file_put_contents($fileindex, $indexcontent); @@ -406,6 +413,7 @@ if ($action == 'updatemeta') $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= '
'."\n"; + $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; @@ -414,8 +422,10 @@ if ($action == 'updatemeta') $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; + $tplcontent.= ''."\n"; + $tplcontent.= 'ref.'/header.html"); ?>'."\n"; $tplcontent.= '
'."\n"; $tplcontent.= ''."\n"; @@ -561,6 +571,7 @@ if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage $tplcontent.= "// END PHP ?>\n"; $tplcontent.= ''."\n"; $tplcontent.= '
'."\n"; + $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; @@ -568,8 +579,10 @@ if ($action == 'updatecontent' || GETPOST('refreshsite') || GETPOST('refreshpage $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; $tplcontent.= ''."\n"; - $tplcontent.= ''."\n"; - $tplcontent.= ''.dol_escape_htmltag($objectpage->title).''."\n"; + $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; + $tplcontent.= ''."\n"; + $tplcontent.= 'ref.'/header.html"); ?>'."\n"; $tplcontent.= '
'."\n"; $tplcontent.= ''."\n"; @@ -940,6 +953,11 @@ if ($action == 'editcss') print '
'; + $htmlheader = @file_get_contents($filehtmlheader); + // Clean the php css file to remove php code and get only html part + $htmlheader = preg_replace('//s', '', $htmlheader); + + $csscontent = @file_get_contents($filecss); // Clean the php css file to remove php code and get only css part $csscontent = preg_replace('//s', '', $csscontent); @@ -958,11 +976,19 @@ if ($action == 'editcss') print '
'; + print ''; + /*print ''; - print ''; + print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + //print ''; + print ''; print ''; print ''; print ''; @@ -986,9 +1010,11 @@ elseif (! empty($module)) print ''; print ''; print ''; - print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + //print ''; + print ''; print ''; print ''; - print ''; - print ''; - print ''; + /*print '';*/ + print ''; print ''; } -/*if (! empty($arrayfields['u.statut']['checked'])) +/*if (! empty($arrayfields['t.statut']['checked'])) { // Status print ''; diff --git a/htdocs/modulebuilder/template/sql/llx_myobject.key.sql b/htdocs/modulebuilder/template/sql/llx_myobject.key.sql index 812a98090af..4822d7c3ac4 100644 --- a/htdocs/modulebuilder/template/sql/llx_myobject.key.sql +++ b/htdocs/modulebuilder/template/sql/llx_myobject.key.sql @@ -14,6 +14,9 @@ -- along with this program. If not, see . -ALTER TABLE llx_myobject ADD UNIQUE INDEX uk_fk_othertable (fk_othertable); ---ALTER TABLE llx_myobject ADD CONSTRAINT llx_mytable_field_id FOREIGN KEY (fk_field) REFERENCES llx_myOthertable(rowid); +-- BEGIN MODULEBUILDER INDEXES +ALTER TABLE llx_myobject ADD UNIQUE INDEX idx_fieldobject (fieldobject); +-- END MODULEBUILDER INDEXES + +--ALTER TABLE llx_myobject ADD CONSTRAINT llx_myobject_field_id FOREIGN KEY (fk_field) REFERENCES llx_myotherobject(rowid); diff --git a/htdocs/modulebuilder/template/sql/llx_myobject.sql b/htdocs/modulebuilder/template/sql/llx_myobject.sql index 8cba239766f..b5810f0f227 100644 --- a/htdocs/modulebuilder/template/sql/llx_myobject.sql +++ b/htdocs/modulebuilder/template/sql/llx_myobject.sql @@ -13,9 +13,14 @@ -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . + CREATE TABLE llx_myobject( rowid INTEGER AUTO_INCREMENT PRIMARY KEY, + -- BEGIN MODULEBUILDER FIELDS entity INTEGER DEFAULT 1 NOT NULL, - fk_othertable INTEGER NOT NULL, - name VARCHAR(189) -); + label VARCHAR(255), + datec DATETIME NOT NULL, + tms TIMESTAMP NOT NULL, + status INTEGER + -- END MODULEBUILDER FIELDS +) ENGINE=innodb; \ No newline at end of file From 94309525616d60647ba137f449ada6527777bca5 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Wed, 12 Jul 2017 11:00:18 +0200 Subject: [PATCH 302/515] Fix: missing entity filter (multicompany) --- htdocs/comm/card.php | 121 +++++++------- htdocs/societe/class/societe.class.php | 221 +++++++++++++------------ 2 files changed, 178 insertions(+), 164 deletions(-) diff --git a/htdocs/comm/card.php b/htdocs/comm/card.php index a51ef902eb6..dfdc9183886 100644 --- a/htdocs/comm/card.php +++ b/htdocs/comm/card.php @@ -3,7 +3,7 @@ * Copyright (C) 2004-2015 Laurent Destailleur * Copyright (C) 2004 Eric Seigne * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2005-2012 Regis Houssin + * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2008 Raphael Bertrand (Resultic) * Copyright (C) 2010-2014 Juanjo Menent * Copyright (C) 2013 Alexandre Spangaro @@ -534,74 +534,73 @@ if ($id > 0) $boxstat.='
email).'">email).'">
email).'">email).'">
email).'">email).'">
email).'">email).'">
'; print $langs->trans('WEBSITE_CSS_INLINE'); print ''; - print ''; print '
'; + print $langs->trans('WEBSITE_HTML_HEADER'); + print ''; + print ''; + print '
'; print $langs->trans('WEBSITE_CSS_URL'); print ''; From 32d5edf5b930c23488dc20e72823623208999de8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 12:54:03 +0200 Subject: [PATCH 289/515] Fix warning when module position is not correct --- htdocs/core/class/menubase.class.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index 137a5517231..431c5d19eeb 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -402,7 +402,8 @@ class Menubase } /** - * Load entries found from database in this->newmenu array. + * Load entries found from database (and stored into $tabMenu) in $this->newmenu array. + * Warning: Entries in $tabMenu must have child after parent * * @param Menu $newmenu Menu array to complete (in most cases, it's empty, may be already initialized with some menu manager like eldy) * @param string $mymainmenu Value for mainmenu to filter menu to load (often $_SESSION["mainmenu"]) @@ -435,10 +436,10 @@ class Menubase // We initialize newmenu with first already found menu entries $this->newmenu = $newmenu; - // Now edit this->newmenu->list to add entries found into tabMenu that are childs of mainmenu claimed, using the fk_menu link (old method) + // Now complete $this->newmenu->list to add entries found into $tabMenu that are childs of mainmenu=$menutopid, using the fk_menu link that is int (old method) $this->recur($tabMenu, $menutopid, 1); - // Now update this->newmenu->list when fk_menu value is -1 (left menu added by modules with no top menu) + // Now complete $this->newmenu->list when fk_menu value is -1 (left menu added by modules with no top menu) foreach($tabMenu as $key => $val) { //var_dump($tabMenu); @@ -479,6 +480,10 @@ class Menubase } //print 'We must insert menu entry between entry '.$lastid.' and '.$nextid.'
'; if ($found) $this->newmenu->insert($lastid, $val['url'], $val['titre'], $searchlastsub, $val['perms'], $val['target'], $val['mainmenu'], $val['leftmenu'], $val['position']); + else { + dol_syslog("Error. Modules ".$val['module']." has defined a menu entry with a parent='fk_mainmenu=".$val['fk_leftmenu'].",fk_leftmenu=".$val['fk_leftmenu']."' and position=".$val['position'].'. The parent was not found. May be you forget it into your definition of menu, or may be the parent has a "position" that is after the child (fix field "position" of parent or child in this case).', LOG_WARNING); + //print "Parent menu not found !!
"; + } } } } @@ -494,7 +499,7 @@ class Menubase * @param string $myleftmenu Value for left that defined leftmenu * @param int $type_user Looks for menu entry for 0=Internal users, 1=External users * @param string $menu_handler Name of menu_handler used ('auguria', 'eldy'...) - * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) + * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) * @return int >0 if OK, <0 if KO */ function menuLoad($mymainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu) @@ -610,6 +615,11 @@ class Menubase $a++; } $this->db->free($resql); + + // Currently $tabMenu is sorted on position. + // If a child have a position lower that its parent, we can make a loop to fix this here, but we prefer to show a warning + // into the leftMenuCharger later to avoid useless operations. + return 1; } else @@ -622,7 +632,7 @@ class Menubase /** * Complete this->newmenu with menu entry found in $tab * - * @param array $tab Tab array + * @param array $tab Tab array with all menu entries * @param int $pere Id of parent * @param int $level Level * @return void From c75db29ff2a67345b78bf4cad4e01cf8a661253f Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 12:54:03 +0200 Subject: [PATCH 290/515] Fix warning when module position is not correct --- htdocs/core/class/menubase.class.php | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/htdocs/core/class/menubase.class.php b/htdocs/core/class/menubase.class.php index 137a5517231..431c5d19eeb 100644 --- a/htdocs/core/class/menubase.class.php +++ b/htdocs/core/class/menubase.class.php @@ -402,7 +402,8 @@ class Menubase } /** - * Load entries found from database in this->newmenu array. + * Load entries found from database (and stored into $tabMenu) in $this->newmenu array. + * Warning: Entries in $tabMenu must have child after parent * * @param Menu $newmenu Menu array to complete (in most cases, it's empty, may be already initialized with some menu manager like eldy) * @param string $mymainmenu Value for mainmenu to filter menu to load (often $_SESSION["mainmenu"]) @@ -435,10 +436,10 @@ class Menubase // We initialize newmenu with first already found menu entries $this->newmenu = $newmenu; - // Now edit this->newmenu->list to add entries found into tabMenu that are childs of mainmenu claimed, using the fk_menu link (old method) + // Now complete $this->newmenu->list to add entries found into $tabMenu that are childs of mainmenu=$menutopid, using the fk_menu link that is int (old method) $this->recur($tabMenu, $menutopid, 1); - // Now update this->newmenu->list when fk_menu value is -1 (left menu added by modules with no top menu) + // Now complete $this->newmenu->list when fk_menu value is -1 (left menu added by modules with no top menu) foreach($tabMenu as $key => $val) { //var_dump($tabMenu); @@ -479,6 +480,10 @@ class Menubase } //print 'We must insert menu entry between entry '.$lastid.' and '.$nextid.'
'; if ($found) $this->newmenu->insert($lastid, $val['url'], $val['titre'], $searchlastsub, $val['perms'], $val['target'], $val['mainmenu'], $val['leftmenu'], $val['position']); + else { + dol_syslog("Error. Modules ".$val['module']." has defined a menu entry with a parent='fk_mainmenu=".$val['fk_leftmenu'].",fk_leftmenu=".$val['fk_leftmenu']."' and position=".$val['position'].'. The parent was not found. May be you forget it into your definition of menu, or may be the parent has a "position" that is after the child (fix field "position" of parent or child in this case).', LOG_WARNING); + //print "Parent menu not found !!
"; + } } } } @@ -494,7 +499,7 @@ class Menubase * @param string $myleftmenu Value for left that defined leftmenu * @param int $type_user Looks for menu entry for 0=Internal users, 1=External users * @param string $menu_handler Name of menu_handler used ('auguria', 'eldy'...) - * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) + * @param array $tabMenu Array to store new entries found (in most cases, it's empty, but may be alreay filled) * @return int >0 if OK, <0 if KO */ function menuLoad($mymainmenu, $myleftmenu, $type_user, $menu_handler, &$tabMenu) @@ -610,6 +615,11 @@ class Menubase $a++; } $this->db->free($resql); + + // Currently $tabMenu is sorted on position. + // If a child have a position lower that its parent, we can make a loop to fix this here, but we prefer to show a warning + // into the leftMenuCharger later to avoid useless operations. + return 1; } else @@ -622,7 +632,7 @@ class Menubase /** * Complete this->newmenu with menu entry found in $tab * - * @param array $tab Tab array + * @param array $tab Tab array with all menu entries * @param int $pere Id of parent * @param int $level Level * @return void From 90dcd3d30db51398ccfc594ff2ee3f79b829ed4e Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 13:25:41 +0200 Subject: [PATCH 291/515] Look and feel v6 --- htdocs/societe/price.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/htdocs/societe/price.php b/htdocs/societe/price.php index 5146e3ad6a5..d7b683f92e7 100644 --- a/htdocs/societe/price.php +++ b/htdocs/societe/price.php @@ -187,7 +187,7 @@ if (! empty($conf->notification->enabled)) $langs->load("mails"); $head = societe_prepare_head($object); -dol_fiche_head($head, 'price', $langs->trans("ThirdParty"), 0, 'company'); +dol_fiche_head($head, 'price', $langs->trans("ThirdParty"), -1, 'company'); $linkback = ''.$langs->trans("BackToList").''; @@ -200,11 +200,11 @@ print ''; if (! empty($conf->global->SOCIETE_USEPREFIX)) // Old not used prefix field { - print ''; + print ''; } if ($object->client) { - print '
' . $langs->trans('Prefix') . '' . $object->prefix_comm . '
' . $langs->trans('Prefix') . '' . $object->prefix_comm . '
'; + print '
'; print $langs->trans('CustomerCode') . ''; print $object->code_client; if ($object->check_codeclient() != 0) @@ -213,7 +213,7 @@ if ($object->client) { } if ($object->fournisseur) { - print '
'; + print '
'; print $langs->trans('SupplierCode') . ''; print $object->code_fournisseur; if ($object->check_codefournisseur() != 0) From c85bf18f0e20042739366d6d5df58a8a866ab292 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Tue, 11 Jul 2017 14:47:37 +0200 Subject: [PATCH 292/515] Fix AdvtargetEmailing --- htdocs/comm/mailing/advtargetemailing.php | 10 ++-- .../html.formadvtargetemailing.class.php | 51 ++----------------- .../install/mysql/migration/5.0.0-6.0.0.sql | 2 + .../mysql/tables/llx_mailing_cibles.sql | 2 +- 4 files changed, 11 insertions(+), 54 deletions(-) diff --git a/htdocs/comm/mailing/advtargetemailing.php b/htdocs/comm/mailing/advtargetemailing.php index 81c29f687ce..e0a3e5cea79 100644 --- a/htdocs/comm/mailing/advtargetemailing.php +++ b/htdocs/comm/mailing/advtargetemailing.php @@ -22,6 +22,8 @@ * \brief Page to define emailing targets */ +if (! defined('NOSTYLECHECK')) define('NOSTYLECHECK','1'); + require '../../main.inc.php'; require_once DOL_DOCUMENT_ROOT . '/comm/mailing/class/mailing.class.php'; @@ -404,14 +406,8 @@ if ($_POST["button_removefilter"]) { * View */ -$extrajs = array ( - '/includes/jquery/plugins/multiselect/js/ui.multiselect.js' -); -$extracss = array ( - '/includes/jquery/plugins/multiselect/css/ui.multiselect.css', -); -llxHeader('', $langs->trans("MailAdvTargetRecipients"), '', '', '', '', $extrajs, $extracss); +llxHeader('', $langs->trans("MailAdvTargetRecipients")); print ''; - $return .= ''; - - if ($showempty) - $return .= ''; - - // Find if keys is in selected array value - if (is_array($selected_array) && count($selected_array)>0) { - $intersect_array = array_intersect_key($options_array, array_flip($selected_array)); - } else { - $intersect_array=array(); - } - - if (count($options_array) > 0) { - foreach ($options_array as $keyoption => $valoption) { - // If key is in intersect table then it have to e selected - $selected = ''; - if (count ( $intersect_array ) > 0) { - if (array_key_exists ( $keyoption, $intersect_array )) { - $selected = ' selected="selected"'; - } - } - $return .= '' . $valoption . ''; - } - } - - $return .= ''; - + $form=new Form($this->db); + $return = $form->multiselectarray($htmlname, $options_array, $selected_array,0,0,'',0,295); return $return; } @@ -448,7 +407,7 @@ class FormAdvTargetEmailing extends Form dol_print_error($this->db); } - return $this->advMultiselectarray ( $htmlname, $options_array, $selected_array ); + return $this->advMultiselectarray( $htmlname, $options_array, $selected_array ); } /** diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 8e4785ab4d9..5836cb740dc 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -534,3 +534,5 @@ ALTER TABLE llx_blockedlog_authority ADD INDEX signature (signature); UPDATE llx_bank SET label= '(SupplierInvoicePayment)' WHERE label= 'Règlement fournisseur'; UPDATE llx_bank SET label= '(CustomerInvoicePayment)' WHERE label= 'Règlement client'; + +ALTER TABLE llx_mailing_cibles MODIFY COLUMN source_url varchar(1000); \ No newline at end of file diff --git a/htdocs/install/mysql/tables/llx_mailing_cibles.sql b/htdocs/install/mysql/tables/llx_mailing_cibles.sql index f3031069220..eec4a655da2 100644 --- a/htdocs/install/mysql/tables/llx_mailing_cibles.sql +++ b/htdocs/install/mysql/tables/llx_mailing_cibles.sql @@ -30,7 +30,7 @@ create table llx_mailing_cibles other varchar(255) NULL, tag varchar(128) NULL, statut smallint NOT NULL DEFAULT 0, -- -1 = error, 0 = not sent, ... - source_url varchar(160), + source_url varchar(1000), source_id integer, source_type varchar(16), date_envoi datetime, From e1d9dfc862c21ca279eb592db8472f0ae3ce31de Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 15:12:01 +0200 Subject: [PATCH 293/515] Complete example of template --- .../template/core/modules/modMyModule.class.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index 33c52d58bea..fbfffba07ed 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -288,6 +288,12 @@ class modMyModule extends DolibarrModules $this->_load_tables('/mymodule/sql/'); + // Create extrafields + include_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + $extrafields = new ExtraFields($this->db); + //$result1=$extrafields->addExtraField('myattr1', "New Attr 1 label", 'boolean', 1, 3, 'thirdparty'); + //$result2=$extrafields->addExtraField('myattr2', "New Attr 2 label", 'string', 1, 10, 'project'); + return $this->_init($sql, $options); } From cbde99b4197aa6cbec5d7dae01586cd35d0cf946 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 15:50:20 +0200 Subject: [PATCH 294/515] More complete exemple --- .../modulebuilder/template/core/modules/modMyModule.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php index fbfffba07ed..cd3fb22be80 100644 --- a/htdocs/modulebuilder/template/core/modules/modMyModule.class.php +++ b/htdocs/modulebuilder/template/core/modules/modMyModule.class.php @@ -99,7 +99,7 @@ class modMyModule extends DolibarrModules ); // Data directories to create when module is enabled. - // Example: this->dirs = array("/mymodule/temp"); + // Example: this->dirs = array("/mymodule/temp","/mymodule/subdir"); $this->dirs = array(); // Config pages. Put here list of php page, stored into mymodule/admin directory, to use to setup module. From 017b654acd8c2a956d13c162b39ba2f58accc1f7 Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Tue, 11 Jul 2017 17:45:16 +0200 Subject: [PATCH 295/515] FIX PgSQL --- .../install/mysql/migration/4.0.0-5.0.0.sql | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql index 5f62c766a01..76c8f6df672 100644 --- a/htdocs/install/mysql/migration/4.0.0-5.0.0.sql +++ b/htdocs/install/mysql/migration/4.0.0-5.0.0.sql @@ -134,7 +134,7 @@ CREATE TABLE llx_product_lot_extrafields ALTER TABLE llx_product_lot_extrafields ADD INDEX idx_product_lot_extrafields (fk_object); -ALTER TABLE llx_website_page MODIFY content MEDIUMTEXT; +ALTER TABLE llx_website_page MODIFY COLUMN content MEDIUMTEXT; CREATE TABLE llx_product_warehouse_properties ( @@ -160,7 +160,7 @@ ALTER TABLE llx_accounting_account ADD UNIQUE INDEX uk_accounting_account (accou ALTER TABLE llx_expensereport_det ADD COLUMN fk_code_ventilation integer DEFAULT 0; -ALTER TABLE llx_c_payment_term change fdm type_cdr tinyint; +ALTER TABLE llx_c_payment_term CHANGE COLUMN fdm type_cdr tinyint; ALTER TABLE llx_facturedet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx; @@ -173,11 +173,10 @@ ALTER TABLE llx_supplier_proposaldet ADD COLUMN vat_src_code varchar(10) DEFAULT ALTER TABLE llx_supplier_proposaldet ADD COLUMN fk_unit integer DEFAULT NULL; ALTER TABLE llx_contratdet ADD COLUMN vat_src_code varchar(10) DEFAULT '' AFTER tva_tx; -ALTER TABLE llx_c_payment_term change fdm type_cdr tinyint; +ALTER TABLE llx_c_payment_term CHANGE COLUMN fdm type_cdr TINYINT; ALTER TABLE llx_entrepot ADD COLUMN fk_parent integer DEFAULT 0; - create table llx_resource_extrafields ( rowid integer AUTO_INCREMENT PRIMARY KEY, @@ -206,6 +205,8 @@ ALTER TABLE llx_overwrite_trans ADD COLUMN entity integer DEFAULT 1 NOT NULL AFT ALTER TABLE llx_mailing_cibles ADD COLUMN error_text varchar(255); ALTER TABLE llx_c_actioncomm MODIFY COLUMN type varchar(50) DEFAULT 'system' NOT NULL; +-- VPGSQL8.2 ALTER TABLE llx_c_actioncomm ALTER COLUMN type SET DEFAULT 'system'; +-- VPGSQL8.2 ALTER TABLE llx_c_actioncomm ALTER COLUMN type SET NOT NULL; create table llx_user_employment ( @@ -240,12 +241,12 @@ ALTER TABLE llx_expensereport ADD INDEX idx_expensereport_fk_refuse (fk_user_app DELETE FROM llx_actioncomm_resources WHERE fk_actioncomm not in (select id from llx_actioncomm); -- Sequence to removed duplicated values of llx_links. Use serveral times if you still have duplicate. -drop table tmp_links_double; +DROP TABLE tmp_links_double; --select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2; -create table tmp_links_double as (select objectid, label, max(rowid) as max_rowid, count(rowid) as count_rowid from llx_links where label is not null group by objectid, label having count(rowid) >= 2); +CREATE TABLE tmp_links_double AS (SELECT objectid, label, MAX(rowid) AS max_rowid, COUNT(rowid) AS count_rowid FROM llx_links WHERE label IS NOT NULL GROUP BY objectid, label HAVING COUNT(rowid) >= 2); --select * from tmp_links_double; -delete from llx_links where (rowid, label) in (select max_rowid, label from tmp_links_double); --update to avoid duplicate, delete to delete -drop table tmp_links_double; +DELETE FROM llx_links WHERE (rowid, label) IN (SELECT max_rowid, label FROM tmp_links_double); --update to avoid duplicate, delete to delete +DROP TABLE tmp_links_double; ALTER TABLE llx_links ADD UNIQUE INDEX uk_links (objectid,label); @@ -256,8 +257,7 @@ ALTER TABLE llx_projet_task ADD UNIQUE INDEX uk_projet_task_ref (ref, entity); ALTER TABLE llx_contrat ADD COLUMN fk_user_modif integer; - -update llx_accounting_account set account_parent = 0 where account_parent = ''; +UPDATE llx_accounting_account SET account_parent = 0 WHERE account_parent = ''; -- VMYSQL4.3 ALTER TABLE llx_product_price MODIFY COLUMN date_price DATETIME NULL; -- VPGSQL8.2 ALTER TABLE llx_product_price ALTER COLUMN date_price DROP NOT NULL; @@ -268,10 +268,8 @@ ALTER TABLE llx_product_customer_price ADD COLUMN default_vat_code varchar(10) a ALTER TABLE llx_product_customer_price_log ADD COLUMN default_vat_code varchar(10) after tva_tx; ALTER TABLE llx_product_fournisseur_price ADD COLUMN default_vat_code varchar(10) after tva_tx; - ALTER TABLE llx_events MODIFY COLUMN ip varchar(250); - UPDATE llx_bank SET label= '(SupplierInvoicePayment)' WHERE label= 'Règlement fournisseur'; UPDATE llx_bank SET label= '(CustomerInvoicePayment)' WHERE label= 'Règlement client'; From be837a22da2bd7e37cad22761e6d1abeeb05179e Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 11 Jul 2017 18:43:36 +0200 Subject: [PATCH 296/515] Fix: error during upgrade process --- htdocs/core/modules/modProduct.class.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index dae39fc00d4..5a80643c387 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -83,14 +83,14 @@ class modProduct extends DolibarrModules $this->const[$r][3] = 'Module to control product codes'; $this->const[$r][4] = 0; $r++; - + /*$this->const[$r][0] = "PRODUCT_ADDON_PDF"; $this->const[$r][1] = "chaine"; $this->const[$r][2] = "standard"; $this->const[$r][3] = 'Default module for document generation'; $this->const[$r][4] = 0; $r++;*/ - + // Boxes $this->boxes = array( 0=>array('file'=>'box_produits.php','enabledbydefaulton'=>'Home'), @@ -133,7 +133,7 @@ class modProduct extends DolibarrModules // Menus //------- - + $this->menu = 1; // This module add menu entries. They are coded into menu manager. /* We can't enable this here because it must be enabled in both product and service module and this create duplicate insert $r=0; @@ -159,7 +159,7 @@ class modProduct extends DolibarrModules $this->export_label[$r]="Products"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode','p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification'); - if ($mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; + if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.barcode'=>'BarCode')); if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.unitprice'=>'SuppliersPrices')); @@ -189,7 +189,7 @@ class modProduct extends DolibarrModules if (! empty($conf->fournisseur->enabled)) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc'; $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_sql_order[$r] =' GROUP BY p.rowid'; // FIXME The group by used a generic value to say "all fields in select except function fields" - + if (! empty($conf->global->PRODUIT_MULTIPRICES)) { // Exports product multiprice @@ -203,7 +203,7 @@ class modProduct extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation'); - if ($mysoc->useNPR()) $this->export_fields_array[$r]['pr.recuperableonly']='NPR'; + if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['pr.recuperableonly']='NPR'; //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", 'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product", @@ -246,7 +246,7 @@ class modProduct extends DolibarrModules $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'product_association as pa, '.MAIN_DB_PREFIX.'product as p2'; $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; $this->export_sql_end[$r] .=' AND p.rowid = pa.fk_product_pere AND p2.rowid = pa.fk_product_fils'; - } + } // Imports //-------- @@ -262,7 +262,7 @@ class modProduct extends DolibarrModules $this->import_fields_array[$r]=array('p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation'); if (! empty($conf->stock->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.cost_price'=>'CostPrice')); - if ($mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.recuperableonly'=>'NPR')); + if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.recuperableonly'=>'NPR')); if (! empty($conf->barcode->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.barcode'=>'BarCode')); // Add extra fields $import_extrafield_sample=array(); @@ -331,7 +331,7 @@ class modProduct extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation*'); - if ($mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('pr.recuperableonly'=>'NPR')); + if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('pr.recuperableonly'=>'NPR')); $this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','pr.recuperableonly'=>'^[0|1]$'); $this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1", 'pr.price_base_type'=>"HT",'pr.price_level'=>"1", From ceeb9d7f1b93046d84d6477a84b4ffad08eff68b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 20:47:49 +0200 Subject: [PATCH 297/515] Debug modulebuilder --- htdocs/langs/en_US/modulebuilder.lang | 2 + htdocs/modulebuilder/index.php | 231 +++++++++++++----- .../template/class/myobject.class.php | 20 +- .../modulebuilder/template/myobject_list.php | 24 +- 4 files changed, 198 insertions(+), 79 deletions(-) diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 8fab0a7b07f..5a3470aebce 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -38,3 +38,5 @@ PathToModulePackage=Path to zip of module/application package PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated +SpecificationFile=File with business rules +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. \ No newline at end of file diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index 2547b893055..a1c30b7c94a 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -37,9 +37,10 @@ $cancel=GETPOST('cancel','alpha'); $module=GETPOST('module','alpha'); $tab=GETPOST('tab','aZ09'); $tabobj=GETPOST('tabobj','alpha'); +$propertykey=GETPOST('propertykey','alpha'); if (empty($module)) $module='initmodule'; if (empty($tab)) $tab='description'; -if (empty($tabobj)) $tabobj='newobject'; +if (empty($tabobj)) $tabobj='newobjectifnoobj'; $file=GETPOST('file','alpha'); $modulename=dol_sanitizeFileName(GETPOST('modulename','alpha')); @@ -58,6 +59,7 @@ $FILEFLAG='modulebuilder.txt'; $now=dol_now(); + /* * Actions */ @@ -320,6 +322,29 @@ if ($dirins && $action == 'confirm_deleteobject' && $objectname) $tabobj = 'deleteobject'; } +if ($dirins && $action == 'confirm_deleteproperty' && $propertykey) +{ + if (! $error) + { + $modulelowercase=strtolower($module); + $objectlowercase=strtolower($objectname); + + // File of class + $fileforclass = $dirins.'/'.$modulelowercase.'/class/'.$objectlowercase.'.class.php'; + + // TODO + + // File of sql + $fileforsql = $dirins.'/'.$modulelowercase.'/sql/'.$objectlowercase.'.sql'; + $fileforsqlkey = $dirins.'/'.$modulelowercase.'/sql/'.$objectlowercase.'.key.sql'; + + + // TODO + } +} + + + if ($dirins && $action == 'generatepackage') { $modulelowercase=strtolower($module); @@ -838,9 +863,11 @@ elseif (! empty($module)) $h++; $listofobject = dol_dir_list($dir, 'files', 0, '\.txt$'); + $firstobjectname=''; foreach($listofobject as $fileobj) { $objectname = preg_replace('/\.txt$/', '', $fileobj['name']); + if (empty($firstobjectname)) $firstobjectname = $objectname; $head3[$h][0] = $_SERVER["PHP_SELF"].'?tab=objects&module='.$module.'&tabobj='.$objectname; $head3[$h][1] = $objectname; @@ -853,6 +880,12 @@ elseif (! empty($module)) $head3[$h][2] = 'deleteobject'; $h++; + // If tabobj was not defined, then we check if there is one obj. If yes, we force on it, if no, we will show tab to create new objects. + if ($tabobj == 'newobjectifnoobj') + { + if ($firstobjectname) $tabobj=$firstobjectname; + else $tabobj = 'newobject'; + } dol_fiche_head($head3, $tabobj, '', -1, ''); @@ -888,92 +921,168 @@ elseif (! empty($module)) } else { - try { - $pathtoclass = strtolower($module).'/class/'.strtolower($tabobj).'.class.php'; - $pathtoapi = strtolower($module).'/class/api_'.strtolower($tabobj).'.class.php'; - $pathtolist = strtolower($module).'/'.strtolower($tabobj).'_list.class.php'; - $pathtocard = strtolower($module).'/'.strtolower($tabobj).'_card.class.php'; - print ' '.$langs->trans("ClassFile").' : '.$pathtoclass.'
'; - print ' '.$langs->trans("ApiClassFile").' : '.$pathtoapi.'
'; - print ' '.$langs->trans("PageForList").' : '.$pathtolist.'
'; - print ' '.$langs->trans("PageForCreateEditView").' : '.$pathtocard.'
'; + if ($action == 'deleteproperty') + { + $formconfirm = $form->formconfirm( + $_SERVER["PHP_SELF"].'?propertykey='.urlencode(GETPOST('propertykey','alpha')).'&objectname='.urlencode($objectname).'&tab='.urlencode($tab).'&module='.urlencode($module).'&tabobj='.urlencode($tabobj), + $langs->trans('Delete'), $langs->trans('ConfirmDeleteProperty', GETPOST('propertykey','alpha')), 'confirm_deleteproperty', '', 0, 1 + ); - $result = dol_include_once($pathtoclass); - $tmpobjet = new $tabobj($db); + // Print form confirm + print $formconfirm; + } - $reflector = new ReflectionClass($tabobj); - $properties = $reflector->getProperties(); // Can also use get_object_vars - $propdefault = $reflector->getDefaultProperties(); // Can also use get_object_vars - //$propstat = $reflector->getStaticProperties(); + if ($action != 'editfile' || empty($file)) + { + try { + $pathtoclass = strtolower($module).'/class/'.strtolower($tabobj).'.class.php'; + $pathtoapi = strtolower($module).'/class/api_'.strtolower($tabobj).'.class.php'; + $pathtolist = strtolower($module).'/'.strtolower($tabobj).'_list.php'; + $pathtocard = strtolower($module).'/'.strtolower($tabobj).'_card.php'; + print ' '.$langs->trans("ClassFile").' : '.$pathtoclass.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + print ' '.$langs->trans("ApiClassFile").' : '.$pathtoapi.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + print ' '.$langs->trans("PageForList").' : '.$pathtolist.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; + print ' '.$langs->trans("PageForCreateEditView").' : '.$pathtocard.''; + print ' '.img_picto($langs->trans("Edit"), 'edit').''; + print '
'; - print load_fiche_titre($langs->trans("Properties"), '', ''); + $result = dol_include_once($pathtoclass); + $tmpobjet = new $tabobj($db); - print '
'; - print ''; - print ''; - print ''; - print ''; - print ''; + $reflector = new ReflectionClass($tabobj); + $properties = $reflector->getProperties(); // Can also use get_object_vars + $propdefault = $reflector->getDefaultProperties(); // Can also use get_object_vars + //$propstat = $reflector->getStaticProperties(); - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - print ''; - foreach($properties as $propkey => $propval) - { - if ($propval->class == $tabobj) + print load_fiche_titre($langs->trans("Properties"), '', ''); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + print '
'.$langs->trans("Property"); - print ' ('.$langs->trans("Example").')'; - print ''.$langs->trans("Comment").''.$langs->trans("Type").''.$langs->trans("DefaultValue").'
'; - print ''; - print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + + $properties = $tmpobjet->fields; + + foreach($properties as $propkey => $propval) { - $propname=$propval->getName(); + /* If from Reflection + if ($propval->class == $tabobj) + { + $propname=$propval->getName(); + $comment=$propval->getDocComment(); + $type=gettype($tmpobjet->$propname); + $default=$propdefault[$propname]; + // Discard generic properties + if (in_array($propname, array('element', 'childtables', 'table_element', 'table_element_line', 'class_element_line', 'isnolinkedbythird', 'ismultientitymanaged'))) continue; - // Discard generic properties - if (in_array($propname, array('element', 'childtables', 'table_element', 'table_element_line', 'class_element_line', 'isnolinkedbythird', 'ismultientitymanaged'))) continue; + // Keep or not lines + if (in_array($propname, array('fk_element', 'lines'))) continue; + }*/ - // Keep or not lines - if (in_array($propname, array('fk_element', 'lines'))) continue; + $propname=$propkey; + $proplabel=$propval['label']; + $proptype=$propval['type']; + $propposition=$propval['position']; + $propdefault=$propval['default']; + $propindex=$propval['index']; + $propcomment=$propval['comment']; + print ''; - print ''; print ''; print ''; - print ''; - print ''; + print ''; + print ''; + print ''; + print ''; } + print '
'.$langs->trans("Property"); + print ' ('.$langs->trans("Example").')'; + print ''.$langs->trans("Label").''.$langs->trans("Type").''.$langs->trans("Position").''.$langs->trans("DefaultValue").''.$langs->trans("Index").''.$langs->trans("Comment").'
'; + print ''; + print '
'; + print ''; print $propname; print ''; - print $propval->getDocComment(); + print $proplabel; print ''; - print gettype($tmpobjet->$propname); + print $proptype; print ''; - print $propdefault[$propname]; + print $propposition; print ''; - + print $propdefault; print ''; + print yn($propindex); + print ''; + print $propcomment; + print ''; + print ''.img_delete().''; + print '
'; + + print '
'; } - print '
'; + catch(Exception $e) + { + print $e->getMessage(); + } + } + else + { + $fullpathoffile=dol_buildpath($file, 0); + + $content = file_get_contents($fullpathoffile); + + // New module + print '
'; + print ''; + print ''; + print ''; + print ''; + print ''; + + $doleditor=new DolEditor('editfilecontent', $content, '', '600', 'Full', 'In', true, false, false, 0, '99%'); + print $doleditor->Create(1, '', false); + print '
'; + print '
'; + print ''; + print '   '; + print ''; + print '
'; print '
'; } - catch(Exception $e) - { - print $e->getMessage(); - } } } diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 9ef593367c9..4c85a6e5a86 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -52,22 +52,24 @@ class MyObject extends CommonObject * @var array Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe */ protected $ismultientitymanaged = 1; - - /** - * @var string String with name of icon for myobject - */ + * @var string String with name of icon for myobject + */ public $picto = 'myobject'; - /** - * @var int Entity Id - */ - public $entity; + /* BEGIN PROPERTY FIELDS - Do not remove this comment */ /** * @var array Array with all fields and their property */ - public $fields; + public $fields=array( + 'ref'=>array('type'=>'string','label'=>'Ref','position'=>10,'index'=>true,'comment'=>'Reference of object'), + 'entity'=>array('type'=>'integer','label'=>'Entity','index'=>true), + 'status'=>array('type'=>'integer','label'=>'Status','index'=>true), + 'date'=>array('type'=>'date','label'=>'Date','default'=>'__NOW__'), + 'title'=>array('type'=>'string','label'=>'Title'), + ); + /* END PROPERTY FIELDS - Do not remove this comment */ diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 28624dc9fc2..7e67c04ecc2 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -68,13 +68,7 @@ $toselect = GETPOST('toselect', 'array'); $id = GETPOST('id','int'); $backtopage = GETPOST('backtopage'); -$myparam = GETPOST('myparam','alpha'); - -$search_all=trim(GETPOST("sall")); -$search_field1=GETPOST("search_field1"); -$search_field2=GETPOST("search_field2"); -$search_myfield=GETPOST('search_myfield'); -$optioncss = GETPOST('optioncss','alpha'); +$optioncss = GETPOST('optioncss','alpha'); // Load variable for pagination $limit = GETPOST('limit','int')?GETPOST('limit','int'):$conf->liste_limit; @@ -85,6 +79,7 @@ if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; + if (! $sortfield) $sortfield="t.rowid"; // Set here default search field if (! $sortorder) $sortorder="ASC"; @@ -96,6 +91,19 @@ if ($user->societe_id > 0) //accessforbidden(); } +// Initialize array of search criterias +$object=new MyModule($db); +$search_all=trim(GETPOST("search_all")); +$search=array(); +foreach($object->fields as $key) +{ + if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha'); +} +/*$search_field1=GETPOST("search_field1"); +$search_field2=GETPOST("search_field2"); +$search_myfield=GETPOST('search_myfield'); +*/ + // Initialize technical object to manage context to save list fields $contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectlist'; @@ -133,8 +141,6 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab } -$object=new Skeleton_Class($db); - From f745c8739405c6e4e1bbcb1cb50833cbf6cfab33 Mon Sep 17 00:00:00 2001 From: Regis Houssin Date: Tue, 11 Jul 2017 21:27:51 +0200 Subject: [PATCH 298/515] Fix: error during upgrade process --- htdocs/core/modules/modProduct.class.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/htdocs/core/modules/modProduct.class.php b/htdocs/core/modules/modProduct.class.php index dae39fc00d4..5a80643c387 100644 --- a/htdocs/core/modules/modProduct.class.php +++ b/htdocs/core/modules/modProduct.class.php @@ -83,14 +83,14 @@ class modProduct extends DolibarrModules $this->const[$r][3] = 'Module to control product codes'; $this->const[$r][4] = 0; $r++; - + /*$this->const[$r][0] = "PRODUCT_ADDON_PDF"; $this->const[$r][1] = "chaine"; $this->const[$r][2] = "standard"; $this->const[$r][3] = 'Default module for document generation'; $this->const[$r][4] = 0; $r++;*/ - + // Boxes $this->boxes = array( 0=>array('file'=>'box_produits.php','enabledbydefaulton'=>'Home'), @@ -133,7 +133,7 @@ class modProduct extends DolibarrModules // Menus //------- - + $this->menu = 1; // This module add menu entries. They are coded into menu manager. /* We can't enable this here because it must be enabled in both product and service module and this create duplicate insert $r=0; @@ -159,7 +159,7 @@ class modProduct extends DolibarrModules $this->export_label[$r]="Products"; // Translation key (used only if key ExportDataset_xxx_z not found) $this->export_permission[$r]=array(array("produit","export")); $this->export_fields_array[$r]=array('p.rowid'=>"Id",'p.ref'=>"Ref",'p.label'=>"Label",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.width'=>"Width",'p.height'=>"Height",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.customcode'=>'CustomCode','p.price_base_type'=>"PriceBase",'p.price'=>"UnitPriceHT",'p.price_ttc'=>"UnitPriceTTC",'p.tva_tx'=>'VATRate','p.tosell'=>"OnSell",'p.tobuy'=>"OnBuy",'p.datec'=>'DateCreation','p.tms'=>'DateModification'); - if ($mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; + if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['p.recuperableonly']='NPR'; if (! empty($conf->stock->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.stock'=>'Stock','p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->barcode->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('p.barcode'=>'BarCode')); if (! empty($conf->fournisseur->enabled)) $this->export_fields_array[$r]=array_merge($this->export_fields_array[$r],array('s.nom'=>'Supplier','pf.ref_fourn'=>'SupplierRef','pf.unitprice'=>'SuppliersPrices')); @@ -189,7 +189,7 @@ class modProduct extends DolibarrModules if (! empty($conf->fournisseur->enabled)) $this->export_sql_end[$r] .=' LEFT JOIN '.MAIN_DB_PREFIX.'product_fournisseur_price as pf ON pf.fk_product = p.rowid LEFT JOIN '.MAIN_DB_PREFIX.'societe s ON s.rowid = pf.fk_soc'; $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; if (! empty($conf->global->EXPORTTOOL_CATEGORIES)) $this->export_sql_order[$r] =' GROUP BY p.rowid'; // FIXME The group by used a generic value to say "all fields in select except function fields" - + if (! empty($conf->global->PRODUIT_MULTIPRICES)) { // Exports product multiprice @@ -203,7 +203,7 @@ class modProduct extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation'); - if ($mysoc->useNPR()) $this->export_fields_array[$r]['pr.recuperableonly']='NPR'; + if (is_object($mysoc) && $mysoc->useNPR()) $this->export_fields_array[$r]['pr.recuperableonly']='NPR'; //$this->export_TypeFields_array[$r]=array('p.ref'=>"Text",'p.label'=>"Text",'p.description'=>"Text",'p.url'=>"Text",'p.accountancy_code_sell'=>"Text",'p.accountancy_code_buy'=>"Text",'p.note'=>"Text",'p.length'=>"Numeric",'p.surface'=>"Numeric",'p.volume'=>"Numeric",'p.weight'=>"Numeric",'p.customcode'=>'Text','p.price_base_type'=>"Text",'p.price'=>"Numeric",'p.price_ttc'=>"Numeric",'p.tva_tx'=>'Numeric','p.tosell'=>"Boolean",'p.tobuy'=>"Boolean",'p.datec'=>'Date','p.tms'=>'Date'); $this->export_entities_array[$r]=array('p.rowid'=>"product",'p.ref'=>"product", 'pr.price_base_type'=>"product",'pr.price_level'=>"product",'pr.price'=>"product", @@ -246,7 +246,7 @@ class modProduct extends DolibarrModules $this->export_sql_end[$r] .=' '.MAIN_DB_PREFIX.'product_association as pa, '.MAIN_DB_PREFIX.'product as p2'; $this->export_sql_end[$r] .=' WHERE p.fk_product_type = 0 AND p.entity IN ('.getEntity('product').')'; $this->export_sql_end[$r] .=' AND p.rowid = pa.fk_product_pere AND p2.rowid = pa.fk_product_fils'; - } + } // Imports //-------- @@ -262,7 +262,7 @@ class modProduct extends DolibarrModules $this->import_fields_array[$r]=array('p.ref'=>"Ref*",'p.label'=>"Label*",'p.description'=>"Description",'p.url'=>"PublicUrl",'p.accountancy_code_sell'=>"ProductAccountancySellCode",'p.accountancy_code_buy'=>"ProductAccountancyBuyCode",'p.note'=>"Note",'p.length'=>"Length",'p.surface'=>"Surface",'p.volume'=>"Volume",'p.weight'=>"Weight",'p.duration'=>"Duration",'p.customcode'=>'CustomCode','p.price'=>"SellingPriceHT",'p.price_ttc'=>"SellingPriceTTC",'p.tva_tx'=>'VAT','p.tosell'=>"OnSell*",'p.tobuy'=>"OnBuy*",'p.fk_product_type'=>"Type*",'p.finished'=>'Nature','p.datec'=>'DateCreation'); if (! empty($conf->stock->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.seuil_stock_alerte'=>'StockLimit','p.desiredstock'=>'DesiredStock','p.pmp'=>'PMPValue')); if (! empty($conf->fournisseur->enabled) || !empty($conf->margin->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.cost_price'=>'CostPrice')); - if ($mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.recuperableonly'=>'NPR')); + if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.recuperableonly'=>'NPR')); if (! empty($conf->barcode->enabled)) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('p.barcode'=>'BarCode')); // Add extra fields $import_extrafield_sample=array(); @@ -331,7 +331,7 @@ class modProduct extends DolibarrModules 'pr.price_min'=>"MinPriceLevelUnitPriceHT",'pr.price_min_ttc'=>"MinPriceLevelUnitPriceTTC", 'pr.tva_tx'=>'PriceLevelVATRate', 'pr.date_price'=>'DateCreation*'); - if ($mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('pr.recuperableonly'=>'NPR')); + if (is_object($mysoc) && $mysoc->useNPR()) $this->import_fields_array[$r]=array_merge($this->import_fields_array[$r],array('pr.recuperableonly'=>'NPR')); $this->import_regex_array[$r]=array('pr.datec'=>'^[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]$','pr.recuperableonly'=>'^[0|1]$'); $this->import_examplevalues_array[$r]=array('pr.fk_product'=>"1", 'pr.price_base_type'=>"HT",'pr.price_level'=>"1", From f1d451eb12b9aa0f4199c438bea4d087900eda3d Mon Sep 17 00:00:00 2001 From: Alexis Algoud Date: Tue, 11 Jul 2017 23:06:33 +0200 Subject: [PATCH 299/515] FIX empty thirdparty getNomUrl() call without thirdparty --- htdocs/projet/tasks/task.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php index f85b5071de1..f936cddd4e9 100644 --- a/htdocs/projet/tasks/task.php +++ b/htdocs/projet/tasks/task.php @@ -458,9 +458,11 @@ if ($id > 0 || ! empty($ref)) $morehtmlref.='
'; // Third party - $morehtmlref.=$langs->trans("ThirdParty").': '; - $morehtmlref.=$projectstatic->thirdparty->getNomUrl(1); - $morehtmlref.=''; + if(!empty($projectstatic->thirdparty)) { + $morehtmlref.=$langs->trans("ThirdParty").': '; + $morehtmlref.=$projectstatic->thirdparty->getNomUrl(1); + $morehtmlref.=''; + } } dol_banner_tab($object, 'ref', $linkback, 1, 'ref', 'ref', $morehtmlref, $param); From b016b1ca5f46549a3748c670e2c2bdc999d6a56c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 11 Jul 2017 23:19:47 +0200 Subject: [PATCH 300/515] Fix typo --- htdocs/langs/en_US/accountancy.lang | 2 +- htdocs/langs/en_US/main.lang | 3 ++- htdocs/modulebuilder/template/myobject_list.php | 12 ++++++------ 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 859fe1cca12..a4e7d72bc2c 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -103,7 +103,7 @@ LineOfExpenseReport=Line of expense report NoAccountSelected=No accounting account selected VentilatedinAccount=Binded successfully to the accounting account NotVentilatedinAccount=Not bound to the accounting account -XLineSuccessfullyBinded=%s products/services successfuly bound to an accounting account +XLineSuccessfullyBinded=%s products/services successfully bound to an accounting account XLineFailedToBeBinded=%s products/services were not bound to any accounting account ACCOUNTING_LIMIT_LIST_VENTILATION=Number of elements to bind shown by page (maximum recommended : 50) diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 58028423a35..a58d177061a 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -75,7 +75,8 @@ FileRenamed=The file was successfully renamed FileGenerated=The file was successfully generated FileSaved=The file was successfully saved FileUploaded=The file was successfully uploaded -FileTransferComplete=File(s) was uploaded successfuly +FileTransferComplete=File(s) was uploaded successfully +FilesDeleted=File(s) successfully deleted FileWasNotUploaded=A file is selected for attachment but was not yet uploaded. Click on "Attach file" for this. NbOfEntries=Nb of entries GoToWikiHelpPage=Read online help (Internet access needed) diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 7e67c04ecc2..1d7fad81473 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -174,11 +174,11 @@ if (empty($reshook)) } // Mass actions - $objectclass='Skeleton'; - $objectlabel='Skeleton'; - $permtoread = $user->rights->skeleton->read; - $permtodelete = $user->rights->skeleton->delete; - $uploaddir = $conf->skeleton->dir_output; + $objectclass='MyModule'; + $objectlabel='MyModule'; + $permtoread = $user->rights->mymodule->read; + $permtodelete = $user->rights->mymodule->delete; + $uploaddir = $conf->mymodule->dir_output; include DOL_DOCUMENT_ROOT.'/core/actions_massactions.inc.php'; } @@ -290,7 +290,7 @@ if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&con if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; if ($search_field1 != '') $param.= '&search_field1='.urlencode($search_field1); if ($search_field2 != '') $param.= '&search_field2='.urlencode($search_field2); -if ($optioncss != '') $param.='&optioncss='.$optioncss; +if ($optioncss != '') $param.='&optioncss='.$optioncss; // Add $param from extra fields foreach ($search_array_options as $key => $val) { From 11cc1f04c4c129a30784b06c2dff69ef48bb3c9b Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jul 2017 01:55:07 +0200 Subject: [PATCH 301/515] Work on modulebuilder --- htdocs/core/lib/modulebuilder.lib.php | 93 +++++++++++++++ htdocs/langs/en_US/main.lang | 1 + htdocs/langs/en_US/modulebuilder.lang | 9 +- htdocs/modulebuilder/index.php | 112 ++++++++++++------ .../template/class/myobject.class.php | 17 +-- .../modulebuilder/template/myobject_list.php | 94 +++++++-------- .../template/sql/llx_myobject.key.sql | 7 +- .../template/sql/llx_myobject.sql | 11 +- 8 files changed, 240 insertions(+), 104 deletions(-) create mode 100644 htdocs/core/lib/modulebuilder.lib.php diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php new file mode 100644 index 00000000000..f5f37ae91b1 --- /dev/null +++ b/htdocs/core/lib/modulebuilder.lib.php @@ -0,0 +1,93 @@ + + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/core/lib/memory.lib.php + * \brief Set of function for memory/cache management + */ + + +/** + * Save data into a memory area shared by all users, all sessions on server + * + * @param string $destdir Directory + * @param string $module Module name + * @param string $objectname Name of object + * @param string $newmask New mask + * @return int <0 if KO, >0 if OK + */ +function rebuildobjectsql($destdir, $module, $objectname, $newmask) +{ + global $db; + + if (empty($objectname)) return -1; + + dol_include_once(strtolower($module).'/class/'.strtolower($objectname).'.class.php'); + $object=new $objectname($db); + + // Edit sql files + $pathoffiletoedit=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.sql'); + + $contentsql = file_get_contents($pathoffiletoedit, 'r'); + + $i=0; + $texttoinsert = '-- BEGIN MODULEBUILDER FIELDS'."\n"; + foreach($object->fields as $key => $val) + { + $i++; + $texttoinsert.= "\t".$key." ".$val['type']; + if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY'; + if ($key == 'entity') $texttoinsert.= ' DEFAULT 1'; + $texttoinsert.= ($val['notnull']?' NOT NULL':''); + if ($i < count($object->fields)) $texttoinsert.=", "; + $texttoinsert.= "\n"; + } + $texttoinsert.= "\t".'-- END MODULEBUILDER FIELDS'; + + $contentsql = preg_replace('/-- BEGIN MODULEBUILDER FIELDS.*END MODULEBUILDER FIELDS/ims', $texttoinsert, $contentsql); + + file_put_contents($pathoffiletoedit, $contentsql); + @chmod($pathoffiletoedit, octdec($newmask)); + + + + // Edit sql files + $pathoffiletoedit=dol_osencode($destdir.'/sql/llx_'.strtolower($objectname).'.key.sql'); + + $contentsql = file_get_contents($pathoffiletoedit, 'r'); + + $i=0; + $texttoinsert = '-- BEGIN MODULEBUILDER INDEXES'."\n"; + foreach($object->fields as $key => $val) + { + $i++; + if ($val['index']) + { + $texttoinsert.= "ALTER TABLE llx_".strtolower($objectname)." ADD INDEX idx_".strtolower($objectname)."_".$key." (".$key.");"; + $texttoinsert.= "\n"; + } + } + $texttoinsert.= '-- END MODULEBUILDER INDEXES'; + + $contentsql = preg_replace('/-- BEGIN MODULEBUILDER INDEXES.*END MODULEBUILDER INDEXES/ims', $texttoinsert, $contentsql); + + file_put_contents($pathoffiletoedit, $contentsql); + @chmod($pathoffiletoedit, octdec($newmask)); + + return 1; +} diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index a58d177061a..9251db5311f 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -736,6 +736,7 @@ ShowTransaction=Show entry on bank account GoIntoSetupToChangeLogo=Go into Home - Setup - Company to change logo or go into Home - Setup - Display to hide. Deny=Deny Denied=Denied +ListOf=List of %s ListOfTemplates=List of templates Gender=Gender Genderman=Man diff --git a/htdocs/langs/en_US/modulebuilder.lang b/htdocs/langs/en_US/modulebuilder.lang index 5a3470aebce..f73aa4a1eb8 100644 --- a/htdocs/langs/en_US/modulebuilder.lang +++ b/htdocs/langs/en_US/modulebuilder.lang @@ -9,7 +9,8 @@ NewObject=New object ModuleKey=Module key ObjectKey=Object key ModuleInitialized=Module initialized -FilesForObjectInitialized=Files for new object initialized +FilesForObjectInitialized=Files for new object '%s' initialized +FilesForObjectUpdated=Files for object '%s' updated ModuleBuilderDescdescription=Enter here all general information that describe your module ModuleBuilderDescspecifications=You can enter here a long text to describe the specifications of your module that is not already structured into other tabs. So you have on hand the rules to develop. Also this text content will be included into the generated documentation (see last tab). ModuleBuilderDescobjects=Define here the objects you want to manage with your module. A sql file, a page to list them, to create/edit/view a card and an API will be generated. @@ -39,4 +40,8 @@ PathToModuleDocumentation=Path to file of module/application documentation SpaceOrSpecialCharAreNotAllowed=Spaces or special characters are not allowed. FileNotYetGenerated=File not yet generated SpecificationFile=File with business rules -ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. \ No newline at end of file +ConfirmDeleteProperty=Are you sure you want to delete the property %s ? This will change code in PHP class but also remove column from table definition of object. +NotNull=Not NULL +SearchAll=Used for 'search all' +DatabaseIndex=Database index +FileAlreadyExists=File %s already exists \ No newline at end of file diff --git a/htdocs/modulebuilder/index.php b/htdocs/modulebuilder/index.php index a1c30b7c94a..18d66187f16 100644 --- a/htdocs/modulebuilder/index.php +++ b/htdocs/modulebuilder/index.php @@ -24,6 +24,7 @@ if (! defined('NOSCANPOSTFORINJECTION')) define('NOSCANPOSTFORINJECTION','1'); require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/files.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/modulebuilder.lib.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php'; $langs->load("admin"); @@ -58,6 +59,12 @@ $dirins = $tmp[0]; $FILEFLAG='modulebuilder.txt'; $now=dol_now(); +$newmask = 0; +if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; +if (empty($newmask)) // This should no happen +{ + $newmask='0664'; +} /* @@ -158,14 +165,6 @@ if ($dirins && $action == 'initobject' && $module && $objectname) $srcdir = DOL_DOCUMENT_ROOT.'/modulebuilder/template'; $destdir = $dirins.'/'.strtolower($module); - $arrayreplacement=array( - 'mymodule'=>strtolower($module), - 'MyModule'=>$module, - 'myobject'=>strtolower($objectname), - 'MyObject'=>$objectname - ); - - // Delete some files $filetogenerate = array( 'myobject_card.php'=>strtolower($objectname).'_card.php', @@ -182,7 +181,7 @@ if ($dirins && $action == 'initobject' && $module && $objectname) foreach($filetogenerate as $srcfile => $destfile) { - $result = dol_copy($srcdir.'/'.$srcfile, $destdir.'/'.$destfile); + $result = dol_copy($srcdir.'/'.$srcfile, $destdir.'/'.$destfile, $newmask, 0); if ($result <= 0) { if ($result < 0) @@ -193,7 +192,7 @@ if ($dirins && $action == 'initobject' && $module && $objectname) } else // $result == 0 { - setEventMessages($langs->trans("FileAlreadyExists", $srcdir.'/'.$srcfile, $destdir.'/'.$destfile), null, 'warnings'); + setEventMessages($langs->trans("FileAlreadyExists", $destfile), null, 'warnings'); } } else @@ -212,10 +211,10 @@ if ($dirins && $action == 'initobject' && $module && $objectname) //var_dump($phpfileval['fullname']); $arrayreplacement=array( - 'mymodule'=>strtolower($modulename), - 'MyModule'=>$modulename, - 'MYMODULE'=>strtoupper($modulename), - 'My module'=>$modulename, + 'mymodule'=>strtolower($module), + 'MyModule'=>$module, + 'MYMODULE'=>strtoupper($module), + 'My module'=>$module, 'htdocs/modulebuilder/template/'=>'', 'myobject'=>strtolower($objectname), 'MyObject'=>$objectname @@ -232,7 +231,32 @@ if ($dirins && $action == 'initobject' && $module && $objectname) if (! $error) { - setEventMessages('FilesForObjectInitialized', null); + // Edit sql with new properties + rebuildobjectsql($destdir, $module, $objectname, $newmask); + + // Edit the class file to write properties + + + } + + if (! $error) + { + setEventMessages($langs->trans('FilesForObjectInitialized', $objectname), null); + } +} + +if ($dirins && $action == 'addproperty' && !empty($module) && ! empty($tabobj)) +{ + $objectname = $tabobj; + + $destdir = $dirins.'/'.strtolower($module); + + // Edit sql with new properties + rebuildobjectsql($destdir, $module, $objectname, $newmask); + + if (! $error) + { + setEventMessages($langs->trans('FilesForObjectUpdated', $objectname), null); } } @@ -426,15 +450,7 @@ if ($action == 'savefile' && empty($cancel)) $content = GETPOST('editfilecontent'); // Save file on disk - $newmask = 0; - file_put_contents($pathoffile, $content); - if (empty($newmask) && ! empty($conf->global->MAIN_UMASK)) $newmask=$conf->global->MAIN_UMASK; - if (empty($newmask)) // This should no happen - { - $newmask='0664'; - } - @chmod($pathoffile, octdec($newmask)); setEventMessages($langs->trans("FileSaved"), null); @@ -939,18 +955,22 @@ elseif (! empty($module)) $pathtoapi = strtolower($module).'/class/api_'.strtolower($tabobj).'.class.php'; $pathtolist = strtolower($module).'/'.strtolower($tabobj).'_list.php'; $pathtocard = strtolower($module).'/'.strtolower($tabobj).'_card.php'; + print '
'; print ' '.$langs->trans("ClassFile").' : '.$pathtoclass.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
'; print ' '.$langs->trans("ApiClassFile").' : '.$pathtoapi.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; - print '
'; + print '
'; + print '
'; print ' '.$langs->trans("PageForList").' : '.$pathtolist.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; print '
'; print ' '.$langs->trans("PageForCreateEditView").' : '.$pathtocard.''; print ' '.img_picto($langs->trans("Edit"), 'edit').''; - print '
'; + print '
'; + + print '


'; $result = dol_include_once($pathtoclass); $tmpobjet = new $tabobj($db); @@ -964,7 +984,7 @@ elseif (! empty($module)) print '
'; print ''; - print ''; + print ''; print ''; print ''; print ''; @@ -974,11 +994,15 @@ elseif (! empty($module)) print '
'.$langs->trans("Property"); print ' ('.$langs->trans("Example").')'; print ''.$langs->trans("Label").''; + print $form->textwithpicto($langs->trans("Label"), $langs->trans("YouCanUseTranslationKey")); + print ''.$langs->trans("Type").''.$langs->trans("Position").''.$langs->trans("DefaultValue").''.$langs->trans("Index").''.$langs->trans("Position").''.$langs->trans("NotNull").''.$langs->trans("SearchAll").''.$langs->trans("DefaultValue").''.$langs->trans("DatabaseIndex").''.$langs->trans("Comment").'
'; print ''; @@ -1016,7 +1042,9 @@ elseif (! empty($module)) $proplabel=$propval['label']; $proptype=$propval['type']; $propposition=$propval['position']; - $propdefault=$propval['default']; + $propnotnull=$propval['notnull']; + $propsearchall=$propval['searchall']; + //$propdefault=$propval['default']; $propindex=$propval['index']; $propcomment=$propval['comment']; @@ -1031,14 +1059,20 @@ elseif (! empty($module)) print ''; print $proptype; print ''; + print ''; print $propposition; print ''; - print $propdefault; + print ''; + print $propnotnull?'X':''; print ''; - print yn($propindex); + print ''; + print $propsearchall?'X':''; + print ''; + print $propdefault; + print ''; + print $propindex?'X':''; print ''; print $propcomment; diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 4c85a6e5a86..7b0d83dfff0 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -47,7 +47,7 @@ class MyObject extends CommonObject /** * @var array Does this field is linked to a thirdparty ? */ - protected $isnolinkedbythird=1; + protected $isnolinkedbythird = 1; /** * @var array Does myobject support multicompany module ? 0=No test on entity, 1=Test with field entity, 2=Test with link by societe */ @@ -58,18 +58,19 @@ class MyObject extends CommonObject public $picto = 'myobject'; - /* BEGIN PROPERTY FIELDS - Do not remove this comment */ + // BEGIN MODULEBUILDER PROPERTIES - Do not remove this comment /** * @var array Array with all fields and their property */ public $fields=array( - 'ref'=>array('type'=>'string','label'=>'Ref','position'=>10,'index'=>true,'comment'=>'Reference of object'), - 'entity'=>array('type'=>'integer','label'=>'Entity','index'=>true), - 'status'=>array('type'=>'integer','label'=>'Status','index'=>true), - 'date'=>array('type'=>'date','label'=>'Date','default'=>'__NOW__'), - 'title'=>array('type'=>'string','label'=>'Title'), + 'ref' =>array('type'=>'varchar(64)', 'label'=>'Ref', 'position'=>10, 'notnull'=>true, 'index'=>true, 'searchall'=>1, 'comment'=>'Reference of object'), + 'entity'=>array('type'=>'integer', 'label'=>'Entity', 'notnull'=>true, 'index'=>true), + 'label' =>array('type'=>'varchar(255)', 'label'=>'Label', 'searchall'=>1), + 'datec' =>array('type'=>'datetime', 'label'=>'DateCreation', 'notnull'=>true, 'position'=>500), + 'tms' =>array('type'=>'timestamp', 'label'=>'DateModification', 'notnull'=>true, 'position'=>500), + 'status'=>array('type'=>'integer', 'label'=>'Status', 'index'=>true, 'position'=>1000), ); - /* END PROPERTY FIELDS - Do not remove this comment */ + // Do not remove this comment - END MODULEBUILDER PROPERTIES diff --git a/htdocs/modulebuilder/template/myobject_list.php b/htdocs/modulebuilder/template/myobject_list.php index 1d7fad81473..72fec670cb1 100644 --- a/htdocs/modulebuilder/template/myobject_list.php +++ b/htdocs/modulebuilder/template/myobject_list.php @@ -65,6 +65,7 @@ $massaction = GETPOST('massaction','alpha'); $show_files = GETPOST('show_files','int'); $confirm = GETPOST('confirm','alpha'); $toselect = GETPOST('toselect', 'array'); +$contextpage= GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectlist'; // To manage different context of search $id = GETPOST('id','int'); $backtopage = GETPOST('backtopage'); @@ -80,32 +81,27 @@ $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; -if (! $sortfield) $sortfield="t.rowid"; // Set here default search field +$object=new MyObject($db); + +// Default sort order (if not yet defined by previous GETPOST) +if (! $sortfield) $sortfield="t.".key($object->fields); // Set here default search field. By default 1st field in definition. if (! $sortorder) $sortorder="ASC"; // Protection if external user $socid=0; if ($user->societe_id > 0) { - $socid = $user->societe_id; - //accessforbidden(); + //$socid = $user->societe_id; + accessforbidden(); } // Initialize array of search criterias -$object=new MyModule($db); -$search_all=trim(GETPOST("search_all")); +$search_all=trim(GETPOST("search_all",'alpha')); $search=array(); -foreach($object->fields as $key) +foreach($object->fields as $key => $val) { if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha'); } -/*$search_field1=GETPOST("search_field1"); -$search_field2=GETPOST("search_field2"); -$search_myfield=GETPOST('search_myfield'); -*/ - -// Initialize technical object to manage context to save list fields -$contextpage=GETPOST('contextpage','aZ')?GETPOST('contextpage','aZ'):'myobjectlist'; // Initialize technical object to manage hooks. Note that conf->hooks_modules contains array $hookmanager->initHooks(array('myobjectlist')); @@ -116,21 +112,18 @@ $extralabels = $extrafields->fetch_name_optionals_label('myobject'); $search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_'); // List of fields to search into when doing a "search in all" -$fieldstosearchall = array( - 't.ref'=>'Ref', - 't.note_public'=>'NotePublic', -); -if (empty($user->socid)) $fieldstosearchall["t.note_private"]="NotePrivate"; +$fieldstosearchall = array(); +foreach($object->fields as $key => $val) +{ + if ($val['searchall']) $fieldstosearchall['t.'.$key]=$val['label']; +} // Definition of fields for list -$arrayfields=array( - 't.field1'=>array('label'=>"Field1", 'checked'=>1), - 't.field2'=>array('label'=>"Field2", 'checked'=>1), - //'t.entity'=>array('label'=>"Entity", 'checked'=>1, 'enabled'=>(! empty($conf->multicompany->enabled) && empty($conf->global->MULTICOMPANY_TRANSVERSE_MODE))), - 't.datec'=>array('label'=>"DateCreationShort", 'checked'=>0, 'position'=>500), - 't.tms'=>array('label'=>"DateModificationShort", 'checked'=>0, 'position'=>500), - //'t.statut'=>array('label'=>"Status", 'checked'=>1, 'position'=>1000), -); +$arrayfields=array(); +foreach($object->fields as $key => $val) +{ + $arrayfields['t.'.$key]=array('label'=>$val['label'], 'checked'=>1); +} // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -143,11 +136,10 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab - /* * ACTIONS * - * Put here all code to do according to value of "action" parameter + * Put here all code to do according to value of "$action" parameter */ if (GETPOST('cancel')) { $action='list'; $massaction=''; } @@ -165,17 +157,17 @@ if (empty($reshook)) // Purge search criteria if (GETPOST("button_removefilter_x") || GETPOST("button_removefilter.x") ||GETPOST("button_removefilter")) // All tests are required to be compatible with all browsers { - $search_field1=''; - $search_field2=''; - $search_date_creation=''; - $search_date_update=''; + foreach($object->fields as $key => $val) + { + $search[$key]=''; + } $toselect=''; $search_array_options=array(); } // Mass actions - $objectclass='MyModule'; - $objectlabel='MyModule'; + $objectclass='MyObject'; + $objectlabel='MyObject'; $permtoread = $user->rights->mymodule->read; $permtodelete = $user->rights->mymodule->delete; $uploaddir = $conf->mymodule->dir_output; @@ -196,7 +188,7 @@ $form=new Form($db); //$help_url="EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes"; $help_url=''; -$title = $langs->trans('MyModuleListTitle'); +$title = $langs->trans('ListOf', $langs->transnoentitiesnoconv("MyObjects")); // Put here content of your page @@ -215,24 +207,26 @@ jQuery(document).ready(function() { }); '; - -$sql = "SELECT"; -$sql.= " t.rowid,"; -$sql.= " t.field1,"; -$sql.= " t.field2"; +$sql = 'SELECT '; +foreach($object->fields as $key => $val) +{ + $sql.='t.'.$key.', '; +} // Add fields from extrafields -foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ",ef.".$key.' as options_'.$key : ''); +foreach ($extrafields->attribute_label as $key => $val) $sql.=($extrafields->attribute_type[$key] != 'separate' ? ", ef.".$key.' as options_'.$key : ''); // Add fields from hooks $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldListSelect',$parameters); // Note that $action and $object may have been modified by hook $sql.=$hookmanager->resPrint; -$sql.= " FROM ".MAIN_DB_PREFIX."mytable as t"; -if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."mytable_extrafields as ef on (t.rowid = ef.fk_object)"; -$sql.= " WHERE 1 = 1"; -//$sql.= " WHERE u.entity IN (".getEntity('mytable').")"; -if ($search_field1) $sql.= natural_search("field1",$search_field1); -if ($search_field2) $sql.= natural_search("field2",$search_field2); -if ($sall) $sql.= natural_search(array_keys($fieldstosearchall), $sall); +$sql=preg_replace('/, $/','', $sql); +$sql.= " FROM ".MAIN_DB_PREFIX."myobject as t"; +if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."myobject_extrafields as ef on (t.rowid = ef.fk_object)"; +$sql.= " WHERE t.entity IN (".getEntity('myobject').")"; +foreach($search as $key => $val) +{ + if ($search[$key] != '') $sql.=natural_search($key, $search[$key], (($key == 'status')?2:($object->fields[$key]['type'] == 'integer'?1:0))); +} +if ($search_all) $sql.= natural_search(array_keys($fieldstosearchall), $search_all); // Add where from extra fields foreach ($search_array_options as $key => $val) { @@ -394,7 +388,7 @@ if (! empty($arrayfields['t.tms']['checked'])) print ''; print ''; @@ -507,7 +501,7 @@ while ($i < min($num, $limit)) } // Status /* - if (! empty($arrayfields['u.statut']['checked'])) + if (! empty($arrayfields['t.statut']['checked'])) { $userstatic->statut=$obj->statut; print ''.$userstatic->getLibStatut(3).'
'; $boxstat.=''; diff --git a/htdocs/societe/class/societe.class.php b/htdocs/societe/class/societe.class.php index 1605e7281b8..2bd764c92ed 100644 --- a/htdocs/societe/class/societe.class.php +++ b/htdocs/societe/class/societe.class.php @@ -4,7 +4,7 @@ * Copyright (C) 2004 Eric Seigne * Copyright (C) 2003 Brian Fraval * Copyright (C) 2006 Andre Cianfarani - * Copyright (C) 2005-2016 Regis Houssin + * Copyright (C) 2005-2017 Regis Houssin * Copyright (C) 2008 Patrick Raguin * Copyright (C) 2010-2014 Juanjo Menent * Copyright (C) 2013 Florian Henry @@ -3346,31 +3346,36 @@ class Societe extends CommonObject */ function getOutstandingProposals($mode='customer') { - $table='propal'; - if ($mode == 'supplier') $table = 'supplier_proposal'; + $table='propal'; + if ($mode == 'supplier') $table = 'supplier_proposal'; - $sql = "SELECT rowid, total_ht, total as total_ttc, fk_statut FROM ".MAIN_DB_PREFIX.$table." as f"; - $sql .= " WHERE fk_soc = ". $this->id; + $sql = "SELECT rowid, total_ht, total as total_ttc, fk_statut FROM ".MAIN_DB_PREFIX.$table." as f"; + $sql .= " WHERE fk_soc = ". $this->id; + if ($mode == 'supplier') { + $sql .= " AND entity IN (".getEntity('supplier_proposal').")"; + } else { + $sql .= " AND entity IN (".getEntity('propal').")"; + } - dol_syslog("getOutstandingProposals", LOG_DEBUG); - $resql=$this->db->query($sql); - if ($resql) - { - $outstandingOpened = 0; - $outstandingTotal = 0; - $outstandingTotalIncTax = 0; - while($obj=$this->db->fetch_object($resql)) { - $outstandingTotal+= $obj->total_ht; - $outstandingTotalIncTax+= $obj->total_ttc; - if ($obj->fk_statut != 0) // Not a draft - { - $outstandingOpened+=$obj->total_ttc; - } - } - return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); - } - else - return array(); + dol_syslog("getOutstandingProposals", LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $outstandingOpened = 0; + $outstandingTotal = 0; + $outstandingTotalIncTax = 0; + while($obj=$this->db->fetch_object($resql)) { + $outstandingTotal+= $obj->total_ht; + $outstandingTotalIncTax+= $obj->total_ttc; + if ($obj->fk_statut != 0) // Not a draft + { + $outstandingOpened+=$obj->total_ttc; + } + } + return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); + } + else + return array(); } /** @@ -3381,31 +3386,36 @@ class Societe extends CommonObject */ function getOutstandingOrders($mode='customer') { - $table='commande'; - if ($mode == 'supplier') $table = 'commande_fournisseur'; + $table='commande'; + if ($mode == 'supplier') $table = 'commande_fournisseur'; - $sql = "SELECT rowid, total_ht, total_ttc, fk_statut FROM ".MAIN_DB_PREFIX.$table." as f"; - $sql .= " WHERE fk_soc = ". $this->id; + $sql = "SELECT rowid, total_ht, total_ttc, fk_statut FROM ".MAIN_DB_PREFIX.$table." as f"; + $sql .= " WHERE fk_soc = ". $this->id; + if ($mode == 'supplier') { + $sql .= " AND entity IN (".getEntity('supplier_order').")"; + } else { + $sql .= " AND entity IN (".getEntity('commande').")"; + } - dol_syslog("getOutstandingOrders", LOG_DEBUG); - $resql=$this->db->query($sql); - if ($resql) - { - $outstandingOpened = 0; - $outstandingTotal = 0; - $outstandingTotalIncTax = 0; - while($obj=$this->db->fetch_object($resql)) { - $outstandingTotal+= $obj->total_ht; - $outstandingTotalIncTax+= $obj->total_ttc; - if ($obj->fk_statut != 0) // Not a draft - { - $outstandingOpened+=$obj->total_ttc; - } - } - return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); - } - else - return array(); + dol_syslog("getOutstandingOrders", LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $outstandingOpened = 0; + $outstandingTotal = 0; + $outstandingTotalIncTax = 0; + while($obj=$this->db->fetch_object($resql)) { + $outstandingTotal+= $obj->total_ht; + $outstandingTotalIncTax+= $obj->total_ttc; + if ($obj->fk_statut != 0) // Not a draft + { + $outstandingOpened+=$obj->total_ttc; + } + } + return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); + } + else + return array(); } /** @@ -3416,64 +3426,69 @@ class Societe extends CommonObject */ function getOutstandingBills($mode='customer') { - $table='facture'; - if ($mode == 'supplier') $table = 'facture_fourn'; + $table='facture'; + if ($mode == 'supplier') $table = 'facture_fourn'; - /* Accurate value of remain to pay is to sum remaintopay for each invoice - $paiement = $invoice->getSommePaiement(); - $creditnotes=$invoice->getSumCreditNotesUsed(); - $deposits=$invoice->getSumDepositsUsed(); - $alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT'); - $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT'); - */ - if ($mode == 'supplier') $sql = "SELECT rowid, total_ht as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; - else $sql = "SELECT rowid, total as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; - $sql .= " WHERE fk_soc = ". $this->id; + /* Accurate value of remain to pay is to sum remaintopay for each invoice + $paiement = $invoice->getSommePaiement(); + $creditnotes=$invoice->getSumCreditNotesUsed(); + $deposits=$invoice->getSumDepositsUsed(); + $alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT'); + $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT'); + */ + if ($mode == 'supplier') $sql = "SELECT rowid, total_ht as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; + else $sql = "SELECT rowid, total as total_ht, total_ttc, paye, fk_statut, close_code FROM ".MAIN_DB_PREFIX.$table." as f"; + $sql .= " WHERE fk_soc = ". $this->id; + if ($mode == 'supplier') { + $sql .= " AND entity IN (".getEntity('facture_fourn').")"; + } else { + $sql .= " AND entity IN (".getEntity('facture').")"; + } - dol_syslog("getOutstandingBills", LOG_DEBUG); - $resql=$this->db->query($sql); - if ($resql) - { - $outstandingOpened = 0; - $outstandingTotal = 0; - $outstandingTotalIncTax = 0; - if ($mode == 'supplier') - { - require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; - $tmpobject=new FactureFournisseur($this->db); - } - else - { - require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; - $tmpobject=new Facture($this->db); - } - while($obj=$this->db->fetch_object($resql)) { - $tmpobject->id=$obj->rowid; - if ($obj->fk_statut != 0 // Not a draft - && ! ($obj->fk_statut == 3 && $obj->close_code == 'replaced') // Not a replaced invoice - ) - { - $outstandingTotal+= $obj->total_ht; - $outstandingTotalIncTax+= $obj->total_ttc; - } - if ($obj->paye == 0 - && $obj->fk_statut != 0 // Not a draft - && $obj->fk_statut != 3 // Not abandonned - && $obj->fk_statut != 2) // Not classified as paid - //$sql .= " AND (fk_statut <> 3 OR close_code <> 'abandon')"; // Not abandonned for undefined reason - { - $paiement = $tmpobject->getSommePaiement(); - $creditnotes = $tmpobject->getSumCreditNotesUsed(); - $deposits = $tmpobject->getSumDepositsUsed(); - $outstandingOpened+=$obj->total_ttc - $paiement - $creditnotes - $deposits; - } - } - return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); - } - else - { - return array(); - } + dol_syslog("getOutstandingBills", LOG_DEBUG); + $resql=$this->db->query($sql); + if ($resql) + { + $outstandingOpened = 0; + $outstandingTotal = 0; + $outstandingTotalIncTax = 0; + if ($mode == 'supplier') + { + require_once DOL_DOCUMENT_ROOT.'/fourn/class/fournisseur.facture.class.php'; + $tmpobject=new FactureFournisseur($this->db); + } + else + { + require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php'; + $tmpobject=new Facture($this->db); + } + while($obj=$this->db->fetch_object($resql)) { + $tmpobject->id=$obj->rowid; + if ($obj->fk_statut != 0 // Not a draft + && ! ($obj->fk_statut == 3 && $obj->close_code == 'replaced') // Not a replaced invoice + ) + { + $outstandingTotal+= $obj->total_ht; + $outstandingTotalIncTax+= $obj->total_ttc; + } + if ($obj->paye == 0 + && $obj->fk_statut != 0 // Not a draft + && $obj->fk_statut != 3 // Not abandonned + && $obj->fk_statut != 2) // Not classified as paid + //$sql .= " AND (fk_statut <> 3 OR close_code <> 'abandon')"; // Not abandonned for undefined reason + { + $paiement = $tmpobject->getSommePaiement(); + $creditnotes = $tmpobject->getSumCreditNotesUsed(); + $deposits = $tmpobject->getSumDepositsUsed(); + $outstandingOpened+=$obj->total_ttc - $paiement - $creditnotes - $deposits; + } + } + return array('opened'=>$outstandingOpened, 'total_ht'=>$outstandingTotal, 'total_ttc'=>$outstandingTotalIncTax); + } + else + { + return array(); + } } /** From 40b3ae2a1528340ec00d033233f513264d53c9f8 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jul 2017 11:52:07 +0200 Subject: [PATCH 303/515] Debug modulebuilder --- htdocs/core/class/html.formfile.class.php | 6 +- htdocs/core/lib/modulebuilder.lib.php | 164 ++++++++++++--- htdocs/langs/en_US/modulebuilder.lang | 2 +- htdocs/modulebuilder/index.php | 16 +- .../template/class/myobject.class.php | 4 +- .../modulebuilder/template/myobject_list.php | 192 ++++++++++-------- 6 files changed, 259 insertions(+), 125 deletions(-) diff --git a/htdocs/core/class/html.formfile.class.php b/htdocs/core/class/html.formfile.class.php index a5ccb33f084..040ae1ba96e 100644 --- a/htdocs/core/class/html.formfile.class.php +++ b/htdocs/core/class/html.formfile.class.php @@ -314,7 +314,7 @@ class FormFile if (preg_match('/massfilesarea_/', $modulepart)) { - $out.='

'; + $out.='

'."\n"; $title=$langs->trans("MassFilesArea").' ('.$langs->trans("Hide").')'; $title.=''; +// Build and execute select +// -------------------------------------------------------------------- $sql = 'SELECT '; foreach($object->fields as $key => $val) { @@ -275,15 +261,36 @@ if ($num == 1 && ! empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && exit; } + +// Output page +// -------------------------------------------------------------------- + llxHeader('', $title, $help_url); +// Example : Adding jquery code +print ''; + $arrayofselected=is_array($toselect)?$toselect:array(); $param=''; if (! empty($contextpage) && $contextpage != $_SERVER["PHP_SELF"]) $param.='&contextpage='.$contextpage; if ($limit > 0 && $limit != $conf->liste_limit) $param.='&limit='.$limit; -if ($search_field1 != '') $param.= '&search_field1='.urlencode($search_field1); -if ($search_field2 != '') $param.= '&search_field2='.urlencode($search_field2); +foreach($search as $key => $val) +{ + $param.= '&search_'.$key.'='.urlencode($search[$key]); +} if ($optioncss != '') $param.='&optioncss='.$optioncss; // Add $param from extra fields foreach ($search_array_options as $key => $val) @@ -345,10 +352,16 @@ print '
'; - if ($conf->propal->enabled) + if (! empty($conf->propal->enabled)) { - // Box proposals - $tmp = $object->getOutstandingProposals(); - $outstandingOpened=$tmp['opened']; - $outstandingTotal=$tmp['total_ht']; - $outstandingTotalIncTax=$tmp['total_ttc']; - $text=$langs->trans("OverAllProposals"); - $link=''; - $icon='bill'; - if ($link) $boxstat.=''; - $boxstat.='
'; - $boxstat.=''.img_object("",$icon).' '.$text.'
'; - $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; - $boxstat.='
'; - if ($link) $boxstat.='
'; + // Box proposals + $tmp = $object->getOutstandingProposals(); + $outstandingOpened=$tmp['opened']; + $outstandingTotal=$tmp['total_ht']; + $outstandingTotalIncTax=$tmp['total_ttc']; + $text=$langs->trans("OverAllProposals"); + $link=''; + $icon='bill'; + if ($link) $boxstat.=''; + $boxstat.='
'; + $boxstat.=''.img_object("",$icon).' '.$text.'
'; + $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; + $boxstat.='
'; + if ($link) $boxstat.='
'; } - if ($conf->commande->enabled) + if (! empty($conf->commande->enabled)) { - // Box proposals - $tmp = $object->getOutstandingOrders(); - $outstandingOpened=$tmp['opened']; - $outstandingTotal=$tmp['total_ht']; - $outstandingTotalIncTax=$tmp['total_ttc']; - $text=$langs->trans("OverAllOrders"); - $link=''; - $icon='bill'; - if ($link) $boxstat.=''; - $boxstat.='
'; - $boxstat.=''.img_object("",$icon).' '.$text.'
'; - $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; - $boxstat.='
'; - if ($link) $boxstat.='
'; + // Box proposals + $tmp = $object->getOutstandingOrders(); + $outstandingOpened=$tmp['opened']; + $outstandingTotal=$tmp['total_ht']; + $outstandingTotalIncTax=$tmp['total_ttc']; + $text=$langs->trans("OverAllOrders"); + $link=''; + $icon='bill'; + if ($link) $boxstat.=''; + $boxstat.='
'; + $boxstat.=''.img_object("",$icon).' '.$text.'
'; + $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; + $boxstat.='
'; + if ($link) $boxstat.='
'; } - if ($conf->facture->enabled) + if (! empty($conf->facture->enabled)) { - $tmp = $object->getOutstandingBills(); - $outstandingOpened=$tmp['opened']; - $outstandingTotal=$tmp['total_ht']; - $outstandingTotalIncTax=$tmp['total_ttc']; + $tmp = $object->getOutstandingBills(); + $outstandingOpened=$tmp['opened']; + $outstandingTotal=$tmp['total_ht']; + $outstandingTotalIncTax=$tmp['total_ttc']; + $text=$langs->trans("OverAllInvoices"); + $link=''; + $icon='bill'; + if ($link) $boxstat.=''; + $boxstat.='
'; + $boxstat.=''.img_object("",$icon).' '.$text.'
'; + $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; + $boxstat.='
'; + if ($link) $boxstat.='
'; - $text=$langs->trans("OverAllInvoices"); - $link=''; - $icon='bill'; - if ($link) $boxstat.=''; - $boxstat.='
'; - $boxstat.=''.img_object("",$icon).' '.$text.'
'; - $boxstat.=''.price($outstandingTotal, 1, $langs, 1, -1, -1, $conf->currency).''; - $boxstat.='
'; - if ($link) $boxstat.='
'; - - // Box outstanding bill - $warn = ''; - if ($object->outstanding_limit != '' && $object->outstanding_limit < $outstandingOpened) - { - $warn = ' '.img_warning($langs->trans("OutstandingBillReached")); - } - $text=$langs->trans("CurrentOutstandingBill"); - $link=DOL_URL_ROOT.'/compta/recap-compta.php?socid='.$object->id; - $icon='bill'; - if ($link) $boxstat.=''; - $boxstat.='
'; - $boxstat.=''.img_object("",$icon).' '.$text.'
'; - $boxstat.=''.price($outstandingOpened, 1, $langs, 1, -1, -1, $conf->currency).$warn.''; - $boxstat.='
'; - if ($link) $boxstat.='
'; + // Box outstanding bill + $warn = ''; + if ($object->outstanding_limit != '' && $object->outstanding_limit < $outstandingOpened) + { + $warn = ' '.img_warning($langs->trans("OutstandingBillReached")); + } + $text=$langs->trans("CurrentOutstandingBill"); + $link=DOL_URL_ROOT.'/compta/recap-compta.php?socid='.$object->id; + $icon='bill'; + if ($link) $boxstat.=''; + $boxstat.='
'; + $boxstat.=''.img_object("",$icon).' '.$text.'
'; + $boxstat.=''.price($outstandingOpened, 1, $langs, 1, -1, -1, $conf->currency).$warn.''; + $boxstat.='
'; + if ($link) $boxstat.='
'; } $boxstat.='
'; -// LIST_OF_TD_TITLE_SEARCH -//if (! empty($arrayfields['t.field1']['checked'])) print ''; -//if (! empty($arrayfields['t.field2']['checked'])) print ''; +foreach($object->fields as $key => $val) +{ + if (in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print ''; +} // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -376,25 +389,15 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $parameters=array('arrayfields'=>$arrayfields); $reshook=$hookmanager->executeHooks('printFieldListOption',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; -if (! empty($arrayfields['t.datec']['checked'])) +// Rest of fields search +foreach($object->fields as $key => $val) { - // Date creation - print ''; + if (! in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print ''; } -if (! empty($arrayfields['t.tms']['checked'])) -{ - // Date modification - print ''; -} -/*if (! empty($arrayfields['t.statut']['checked'])) - { - // Status - print ''; - }*/ // Action column print ''; print ''."\n"; -// Fields title + +// Fields title label +// -------------------------------------------------------------------- print ''; -// LIST_OF_TD_TITLE_FIELDS -//if (! empty($arrayfields['t.field1']['checked'])) print_liste_field_titre($arrayfields['t.field1']['label'],$_SERVER['PHP_SELF'],'t.field1','',$param,'',$sortfield,$sortorder); -//if (! empty($arrayfields['t.field2']['checked'])) print_liste_field_titre($arrayfields['t.field2']['label'],$_SERVER['PHP_SELF'],'t.field2','',$param,'',$sortfield,$sortorder); +foreach($object->fields as $key => $val) +{ + if (in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.='nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; +} // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -417,7 +427,7 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $align=$extrafields->getAlignFlag($key); $sortonfield = "ef.".$key; if (! empty($extrafields->attribute_computed[$key])) $sortonfield=''; - print_liste_field_titre($langs->trans($extralabels[$key]),$_SERVER["PHP_SELF"],$sortonfield,"",$param,($align?'align="'.$align.'"':''),$sortfield,$sortorder); + print getTitleFieldOfList($langs->trans($extralabels[$key]), 0, $_SERVER["PHP_SELF"], $sortonfield, "", $param, ($align?'align="'.$align.'"':''), $sortfield, $sortorder)."\n"; } } } @@ -425,10 +435,16 @@ if (is_array($extrafields->attribute_label) && count($extrafields->attribute_lab $parameters=array('arrayfields'=>$arrayfields); $reshook=$hookmanager->executeHooks('printFieldListTitle',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; -if (! empty($arrayfields['t.datec']['checked'])) print_liste_field_titre($arrayfields['t.datec']['label'],$_SERVER["PHP_SELF"],"t.datec","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); -if (! empty($arrayfields['t.tms']['checked'])) print_liste_field_titre($arrayfields['t.tms']['label'],$_SERVER["PHP_SELF"],"t.tms","",$param,'align="center" class="nowrap"',$sortfield,$sortorder); -//if (! empty($arrayfields['t.status']['checked'])) print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"t.status","",$param,'align="center"',$sortfield,$sortorder); -print_liste_field_titre($selectedfields, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch '); +// Rest of fields title +foreach($object->fields as $key => $val) +{ + if (! in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.=' nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) print getTitleFieldOfList($arrayfields['t.'.$key]['label'], 0, $_SERVER['PHP_SELF'], 't.'.$key, '', $param, ($align?'class="'.$align.'"':''), $sortfield, $sortorder, $align.' ')."\n"; +} +print getTitleFieldOfList($selectedfields, 0, $_SERVER["PHP_SELF"],"",'','','align="center"',$sortfield,$sortorder,'maxwidthsearch ')."\n"; print ''."\n"; @@ -440,6 +456,8 @@ foreach ($extrafields->attribute_computed as $key => $val) } +// Loop on record +// -------------------------------------------------------------------- $i=0; $totalarray=array(); while ($i < min($num, $limit)) @@ -449,18 +467,22 @@ while ($i < min($num, $limit)) { // Show here line of result print ''; - // LIST_OF_TD_FIELDS_LIST - /* - if (! empty($arrayfields['t.field1']['checked'])) + foreach($object->fields as $key => $val) { - print ''; - if (! $i) $totalarray['nbfield']++; + if (in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.='nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + if (in_array($val['type'], array('date','datetime','timestamp'))) print dol_print_date($db->jdate($obj->$key), 'dayhour'); + elseif ($key == 'status') print ''; + else print $obj->$key; + print ''; + if (! $i) $totalarray['nbfield']++; + } } - if (! empty($arrayfields['t.field2']['checked'])) - { - print ''; - if (! $i) $totalarray['nbfield']++; - }*/ // Extra fields if (is_array($extrafields->attribute_label) && count($extrafields->attribute_label)) { @@ -483,30 +505,23 @@ while ($i < min($num, $limit)) $parameters=array('arrayfields'=>$arrayfields, 'obj'=>$obj); $reshook=$hookmanager->executeHooks('printFieldListValue',$parameters); // Note that $action and $object may have been modified by hook print $hookmanager->resPrint; - // Date creation - if (! empty($arrayfields['t.datec']['checked'])) + // Rest of fields + foreach($object->fields as $key => $val) { - print ''; - if (! $i) $totalarray['nbfield']++; + if (! in_array($key, array('datec','tms','status'))) continue; + $align=''; + if (in_array($val['type'], array('date','datetime','timestamp'))) $align='center'; + if (in_array($val['type'], array('timestamp'))) $align.='nowrap'; + if (! empty($arrayfields['t.'.$key]['checked'])) + { + print ''; + if (in_array($val['type'], array('date','datetime','timestamp'))) print dol_print_date($db->jdate($obj->$key), 'dayhour'); + elseif ($key == 'status') print ''; + else print $obj->$key; + print ''; + if (! $i) $totalarray['nbfield']++; + } } - // Date modification - if (! empty($arrayfields['t.tms']['checked'])) - { - print ''; - if (! $i) $totalarray['nbfield']++; - } - // Status - /* - if (! empty($arrayfields['t.statut']['checked'])) - { - $userstatic->statut=$obj->statut; - print ''; - }*/ - // Action column print ''; else print ''; } - elseif ($totalarray['totalhtfield'] == $i) print ''; + elseif ($totalarray['totalhtfield'] == $i) print ''; elseif ($totalarray['totalvatfield'] == $i) print ''; elseif ($totalarray['totalttcfield'] == $i) print ''; else print ''; @@ -567,13 +582,16 @@ print ''."\n"; if ($massaction == 'builddoc' || $action == 'remove_file' || $show_files) { + require_once(DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php'); + $formfile = new FormFile($db); + // Show list of available documents $urlsource=$_SERVER['PHP_SELF'].'?sortfield='.$sortfield.'&sortorder='.$sortorder; $urlsource.=str_replace('&','&',$param); $filedir=$diroutputmassaction; - $genallowed=$user->rights->facture->lire; - $delallowed=$user->rights->facture->lire; + $genallowed=$user->rights->mymodule->read; + $delallowed=$user->rights->mymodule->read; print $formfile->showdocuments('massfilesarea_mymodule','',$filedir,$urlsource,0,$delallowed,'',1,1,0,48,1,$param,$title,''); } From 25f9d782dc9218fa1a206c0e98414800844db4e9 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jul 2017 12:30:07 +0200 Subject: [PATCH 304/515] NEW Add non intrusive js library to make syntaxic coloring of textarea --- COPYRIGHT | 1 + htdocs/includes/codepress/codepress.css | 21 + htdocs/includes/codepress/codepress.html | 35 ++ htdocs/includes/codepress/codepress.js | 138 ++++++ htdocs/includes/codepress/engines/gecko.js | 293 +++++++++++ htdocs/includes/codepress/engines/khtml.js | 0 htdocs/includes/codepress/engines/msie.js | 304 ++++++++++++ htdocs/includes/codepress/engines/older.js | 0 htdocs/includes/codepress/engines/opera.js | 260 ++++++++++ .../codepress/images/line-numbers.png | Bin 0 -> 16556 bytes htdocs/includes/codepress/index.html | 443 +++++++++++++++++ htdocs/includes/codepress/languages/asp.css | 71 +++ htdocs/includes/codepress/languages/asp.js | 117 +++++ .../includes/codepress/languages/autoit.css | 13 + htdocs/includes/codepress/languages/autoit.js | 32 ++ .../includes/codepress/languages/csharp.css | 9 + htdocs/includes/codepress/languages/csharp.js | 25 + htdocs/includes/codepress/languages/css.css | 10 + htdocs/includes/codepress/languages/css.js | 23 + .../includes/codepress/languages/generic.css | 9 + .../includes/codepress/languages/generic.js | 25 + htdocs/includes/codepress/languages/html.css | 13 + htdocs/includes/codepress/languages/html.js | 59 +++ htdocs/includes/codepress/languages/java.css | 7 + htdocs/includes/codepress/languages/java.js | 24 + .../codepress/languages/javascript.css | 8 + .../codepress/languages/javascript.js | 30 ++ htdocs/includes/codepress/languages/perl.css | 11 + htdocs/includes/codepress/languages/perl.js | 27 ++ htdocs/includes/codepress/languages/php.css | 12 + htdocs/includes/codepress/languages/php.js | 61 +++ htdocs/includes/codepress/languages/ruby.css | 10 + htdocs/includes/codepress/languages/ruby.js | 26 + htdocs/includes/codepress/languages/sql.css | 10 + htdocs/includes/codepress/languages/sql.js | 30 ++ htdocs/includes/codepress/languages/text.css | 5 + htdocs/includes/codepress/languages/text.js | 9 + .../includes/codepress/languages/vbscript.css | 71 +++ .../includes/codepress/languages/vbscript.js | 117 +++++ htdocs/includes/codepress/languages/xsl.css | 15 + htdocs/includes/codepress/languages/xsl.js | 103 ++++ htdocs/includes/codepress/license.txt | 458 ++++++++++++++++++ 42 files changed, 2935 insertions(+) create mode 100644 htdocs/includes/codepress/codepress.css create mode 100644 htdocs/includes/codepress/codepress.html create mode 100644 htdocs/includes/codepress/codepress.js create mode 100644 htdocs/includes/codepress/engines/gecko.js create mode 100644 htdocs/includes/codepress/engines/khtml.js create mode 100644 htdocs/includes/codepress/engines/msie.js create mode 100644 htdocs/includes/codepress/engines/older.js create mode 100644 htdocs/includes/codepress/engines/opera.js create mode 100644 htdocs/includes/codepress/images/line-numbers.png create mode 100644 htdocs/includes/codepress/index.html create mode 100644 htdocs/includes/codepress/languages/asp.css create mode 100644 htdocs/includes/codepress/languages/asp.js create mode 100644 htdocs/includes/codepress/languages/autoit.css create mode 100644 htdocs/includes/codepress/languages/autoit.js create mode 100644 htdocs/includes/codepress/languages/csharp.css create mode 100644 htdocs/includes/codepress/languages/csharp.js create mode 100644 htdocs/includes/codepress/languages/css.css create mode 100644 htdocs/includes/codepress/languages/css.js create mode 100644 htdocs/includes/codepress/languages/generic.css create mode 100644 htdocs/includes/codepress/languages/generic.js create mode 100644 htdocs/includes/codepress/languages/html.css create mode 100644 htdocs/includes/codepress/languages/html.js create mode 100644 htdocs/includes/codepress/languages/java.css create mode 100644 htdocs/includes/codepress/languages/java.js create mode 100644 htdocs/includes/codepress/languages/javascript.css create mode 100644 htdocs/includes/codepress/languages/javascript.js create mode 100644 htdocs/includes/codepress/languages/perl.css create mode 100644 htdocs/includes/codepress/languages/perl.js create mode 100644 htdocs/includes/codepress/languages/php.css create mode 100644 htdocs/includes/codepress/languages/php.js create mode 100644 htdocs/includes/codepress/languages/ruby.css create mode 100644 htdocs/includes/codepress/languages/ruby.js create mode 100644 htdocs/includes/codepress/languages/sql.css create mode 100644 htdocs/includes/codepress/languages/sql.js create mode 100644 htdocs/includes/codepress/languages/text.css create mode 100644 htdocs/includes/codepress/languages/text.js create mode 100644 htdocs/includes/codepress/languages/vbscript.css create mode 100644 htdocs/includes/codepress/languages/vbscript.js create mode 100644 htdocs/includes/codepress/languages/xsl.css create mode 100644 htdocs/includes/codepress/languages/xsl.js create mode 100644 htdocs/includes/codepress/license.txt diff --git a/COPYRIGHT b/COPYRIGHT index 04f0358a655..4275779fe2b 100644 --- a/COPYRIGHT +++ b/COPYRIGHT @@ -53,6 +53,7 @@ jQuery Tiptip 1.3 GPL and MIT License Yes jsGanttImproved 1.7.5.2 BSD License Yes JS library (to build Gantt reports) JsTimezoneDetect 1.0.6 MIT License Yes JS library to detect user timezone SwaggerUI 2.0.24 GPL-2+ Yes JS library to offer the REST API explorer +CodePress 0.9.6 LGPL Yes JS library to get code syntaxique coloration in a textarea. For licenses compatibility informations: http://www.gnu.org/licenses/licenses.en.html diff --git a/htdocs/includes/codepress/codepress.css b/htdocs/includes/codepress/codepress.css new file mode 100644 index 00000000000..3a4a00a7414 --- /dev/null +++ b/htdocs/includes/codepress/codepress.css @@ -0,0 +1,21 @@ +body { + margin-top:13px; + _margin-top:14px; + background:white; + margin-left:32px; + font-family:monospace; + font-size:13px; + white-space:pre; + background-image:url("images/line-numbers.png"); + background-repeat:repeat-y; + background-position:0 3px; + line-height:16px; + height:100%; +} +pre {margin:0;} +html>body{background-position:0 2px;} +P {margin:0;padding:0;border:0;outline:0;display:block;white-space:pre;} +b, i, s, u, a, em, tt, ins, big, cite, strong, var, dfn {text-decoration:none;font-weight:normal;font-style:normal;font-size:13px;} + +body.hide-line-numbers {background:white;margin-left:16px;} +body.show-line-numbers {background-image:url("images/line-numbers.png");margin-left:32px;} \ No newline at end of file diff --git a/htdocs/includes/codepress/codepress.html b/htdocs/includes/codepress/codepress.html new file mode 100644 index 00000000000..d9711d69766 --- /dev/null +++ b/htdocs/includes/codepress/codepress.html @@ -0,0 +1,35 @@ + + + + CodePress - Real Time Syntax Highlighting Editor written in JavaScript + + + + + + + + + diff --git a/htdocs/includes/codepress/codepress.js b/htdocs/includes/codepress/codepress.js new file mode 100644 index 00000000000..b3f563ad411 --- /dev/null +++ b/htdocs/includes/codepress/codepress.js @@ -0,0 +1,138 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2006 Fernando M.A.d.S. + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = function(obj) { + var self = document.createElement('iframe'); + self.textarea = obj; + self.textarea.disabled = true; + self.textarea.style.overflow = 'hidden'; + self.style.height = self.textarea.clientHeight +'px'; + self.style.width = self.textarea.clientWidth +'px'; + self.textarea.style.overflow = 'auto'; + self.style.border = '1px solid gray'; + self.frameBorder = 0; // remove IE internal iframe border + self.style.visibility = 'hidden'; + self.style.position = 'absolute'; + self.options = self.textarea.className; + + self.initialize = function() { + self.editor = self.contentWindow.CodePress; + self.editor.body = self.contentWindow.document.getElementsByTagName('body')[0]; + self.editor.setCode(self.textarea.value); + self.setOptions(); + self.editor.syntaxHighlight('init'); + self.textarea.style.display = 'none'; + self.style.position = 'static'; + self.style.visibility = 'visible'; + self.style.display = 'inline'; + } + + // obj can by a textarea id or a string (code) + self.edit = function(obj,language) { + if(obj) self.textarea.value = document.getElementById(obj) ? document.getElementById(obj).value : obj; + if(!self.textarea.disabled) return; + self.language = language ? language : self.getLanguage(); + self.src = CodePress.path+'codepress.html?language='+self.language+'&ts='+(new Date).getTime(); + if(self.attachEvent) self.attachEvent('onload',self.initialize); + else self.addEventListener('load',self.initialize,false); + } + + self.getLanguage = function() { + for (language in CodePress.languages) + if(self.options.match('\\b'+language+'\\b')) + return CodePress.languages[language] ? language : 'generic'; + } + + self.setOptions = function() { + if(self.options.match('autocomplete-off')) self.toggleAutoComplete(); + if(self.options.match('readonly-on')) self.toggleReadOnly(); + if(self.options.match('linenumbers-off')) self.toggleLineNumbers(); + } + + self.getCode = function() { + return self.textarea.disabled ? self.editor.getCode() : self.textarea.value; + } + + self.setCode = function(code) { + self.textarea.disabled ? self.editor.setCode(code) : self.textarea.value = code; + } + + self.toggleAutoComplete = function() { + self.editor.autocomplete = (self.editor.autocomplete) ? false : true; + } + + self.toggleReadOnly = function() { + self.textarea.readOnly = (self.textarea.readOnly) ? false : true; + if(self.style.display != 'none') // prevent exception on FF + iframe with display:none + self.editor.readOnly(self.textarea.readOnly ? true : false); + } + + self.toggleLineNumbers = function() { + var cn = self.editor.body.className; + self.editor.body.className = (cn==''||cn=='show-line-numbers') ? 'hide-line-numbers' : 'show-line-numbers'; + } + + self.toggleEditor = function() { + if(self.textarea.disabled) { + self.textarea.value = self.getCode(); + self.textarea.disabled = false; + self.style.display = 'none'; + self.textarea.style.display = 'inline'; + } + else { + self.textarea.disabled = true; + self.setCode(self.textarea.value); + self.editor.syntaxHighlight('init'); + self.style.display = 'inline'; + self.textarea.style.display = 'none'; + } + } + + self.edit(); + return self; +} + +CodePress.languages = { + csharp : 'C#', + css : 'CSS', + generic : 'Generic', + html : 'HTML', + java : 'Java', + javascript : 'JavaScript', + perl : 'Perl', + ruby : 'Ruby', + php : 'PHP', + text : 'Text', + sql : 'SQL', + vbscript : 'VBScript' +} + + +CodePress.run = function() { + s = document.getElementsByTagName('script'); + for(var i=0,n=s.length;i + * + * Developers: + * Fernando M.A.d.S. + * Michael Hurni + * Contributors: + * Martin D. Kirk + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + body = document.getElementsByTagName('body')[0]; + body.innerHTML = body.innerHTML.replace(/\n/g,""); + chars = '|32|46|62|8|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // carret char + editor = document.getElementsByTagName('pre')[0]; + document.designMode = 'on'; + document.addEventListener('keypress', this.keyHandler, true); + window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false); + completeChars = this.getCompleteChars(); + completeEndingChars = this.getCompleteEndingChars(); + }, + + // treat key bindings + keyHandler : function(evt) { + keyCode = evt.keyCode; + charCode = evt.charCode; + fromChar = String.fromCharCode(charCode); + + if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(charCode?charCode:keyCode); + } + else if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1) && CodePress.autocomplete) { // auto complete + if(!CodePress.completeEnding(fromChar)) + CodePress.complete(fromChar); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting + top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100); + } + else if(keyCode==9 || evt.tabKey) { // snippets activation (tab) + CodePress.snippets(evt); + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo + (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.preventDefault(); + } + else if(charCode==118 && evt.ctrlKey) { // handle paste + top.setTimeout(function(){CodePress.syntaxHighlight('generic');},100); + } + else if(charCode==99 && evt.ctrlKey) { // handle cut + //alert(window.getSelection().getRangeAt(0).toString().replace(/\t/g,'FFF')); + } + + }, + + // put cursor back to its original position after every parsing + findString : function() { + if(self.find(cc)) + window.getSelection().getRangeAt(0).deleteContents(); + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(cc); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code; + } + }, + + getEditor : function() { + if(!document.getElementsByTagName('pre')[0]) { + body = document.getElementsByTagName('body')[0]; + if(!body.innerHTML) return body; + if(body.innerHTML=="
") body.innerHTML = "
 
"; + else body.innerHTML = "
"+body.innerHTML+"
"; + } + return document.getElementsByTagName('pre')[0]; + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + //if(document.designMode=='off') document.designMode='on' + if(flag != 'init') { window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc));} + editor = CodePress.getEditor(); + o = editor.innerHTML; + o = o.replace(/
/g,'\n'); + o = o.replace(/<.*?>/g,''); + x = z = this.split(o,flag); + x = x.replace(/\n/g,'
'); + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'
'); + var pattern = new RegExp(trigger+cc,'gi'); + evt.preventDefault(); // prevent the tab key from being added + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + document.designMode = (arguments[0]) ? 'off' : 'on'; + }, + + complete : function(trigger) { + window.getSelection().getRangeAt(0).deleteContents(); + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = code; + if (code == '') + document.getElementsByTagName('body')[0].innerHTML = ''; + }, + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + editor = CodePress.getEditor(); + if(editor.innerHTML.indexOf(cc)==-1){ + if(editor.innerHTML != " ") + window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); + this.history[this.pos] = editor.innerHTML; + } + this.pos --; + if(typeof(this.history[this.pos])=='undefined') this.pos ++; + editor.innerHTML = this.history[this.pos]; + if(editor.innerHTML.indexOf(cc)>-1) editor.innerHTML+=cc; + CodePress.findString(); + }, + + redo : function() { + // editor = CodePress.getEditor(); + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.addEventListener('load', function() { CodePress.initialize('new'); }, true); \ No newline at end of file diff --git a/htdocs/includes/codepress/engines/khtml.js b/htdocs/includes/codepress/engines/khtml.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/includes/codepress/engines/msie.js b/htdocs/includes/codepress/engines/msie.js new file mode 100644 index 00000000000..2558c395d39 --- /dev/null +++ b/htdocs/includes/codepress/engines/msie.js @@ -0,0 +1,304 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2007 Fernando M.A.d.S. + * + * Developers: + * Fernando M.A.d.S. + * Michael Hurni + * Contributors: + * Martin D. Kirk + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + chars = '|32|46|62|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // carret char + editor = document.getElementsByTagName('pre')[0]; + editor.contentEditable = 'true'; + document.getElementsByTagName('body')[0].onfocus = function() {editor.focus();} + document.attachEvent('onkeydown', this.metaHandler); + document.attachEvent('onkeypress', this.keyHandler); + window.attachEvent('onscroll', function() { if(!CodePress.scrolling) setTimeout(function(){CodePress.syntaxHighlight('scroll')},1)}); + completeChars = this.getCompleteChars(); + completeEndingChars = this.getCompleteEndingChars(); + setTimeout(function() { window.scroll(0,0) },50); // scroll IE to top + }, + + // treat key bindings + keyHandler : function(evt) { + charCode = evt.keyCode; + fromChar = String.fromCharCode(charCode); + + if( (completeEndingChars.indexOf('|'+fromChar+'|')!= -1 || completeChars.indexOf('|'+fromChar+'|')!=-1 )&& CodePress.autocomplete) { // auto complete + if(!CodePress.completeEnding(fromChar)) + CodePress.complete(fromChar); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||charCode==13) { // syntax highlighting + CodePress.syntaxHighlight('generic'); + } + }, + + metaHandler : function(evt) { + keyCode = evt.keyCode; + + if(keyCode==9 || evt.tabKey) { + CodePress.snippets(); + } + else if((keyCode==122||keyCode==121||keyCode==90) && evt.ctrlKey) { // undo and redo + (keyCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.returnValue = false; + } + else if(keyCode==34||keyCode==33) { // handle page up/down for IE + self.scrollBy(0, (keyCode==34) ? 200 : -200); + evt.returnValue = false; + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && keyCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(keyCode); + evt.returnValue = false; + } + else if(keyCode==86 && evt.ctrlKey) { // handle paste + window.clipboardData.setData('Text',window.clipboardData.getData('Text').replace(/\t/g,'\u2008')); + top.setTimeout(function(){CodePress.syntaxHighlight('paste');},10); + } + else if(keyCode==67 && evt.ctrlKey) { // handle cut + // window.clipboardData.setData('Text',x[0]); + // code = window.clipboardData.getData('Text'); + } + }, + + // put cursor back to its original position after every parsing + + + findString : function() { + range = self.document.body.createTextRange(); + if(range.findText(cc)){ + range.select(); + range.text = ''; + } + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(cc); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code.substring(code.indexOf('

'),code.lastIndexOf('

')+4); + } + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + if(flag!='init') document.selection.createRange().text = cc; + o = editor.innerHTML; + if(flag=='paste') { // fix pasted text + o = o.replace(/
/g,'\r\n'); + o = o.replace(/\u2008/g,'\t'); + } + o = o.replace(/

/g,'\n'); + o = o.replace(/<\/P>/g,'\r'); + o = o.replace(/<.*?>/g,''); + o = o.replace(/ /g,''); + o = '

'+o+'

'; + o = o.replace(/\n\r/g,'

'); + o = o.replace(/\n/g,'

'); + o = o.replace(/\r/g,'<\/P>'); + o = o.replace(/

(

)+/,'

'); + o = o.replace(/<\/P>(<\/P>)+/,'

'); + o = o.replace(/

<\/P>/g,'


'); + x = z = this.split(o,flag); + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'

'); + var pattern = new RegExp(trigger+cc,"gi"); + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + editor.contentEditable = (arguments[0]) ? 'false' : 'true'; + }, + + complete : function(trigger) { + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/<\/p>/gi,'\r'); + code = code.replace(/

/i,''); // IE first line fix + code = code.replace(/

/gi,'\n'); + code = code.replace(/ /gi,''); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = '

'+code+'
'; + }, + + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + if(editor.innerHTML.indexOf(cc)==-1){ + document.selection.createRange().text = cc; + this.history[this.pos] = editor.innerHTML; + } + this.pos--; + if(typeof(this.history[this.pos])=='undefined') this.pos++; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + redo : function() { + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.attachEvent('onload', function() { CodePress.initialize('new');}); \ No newline at end of file diff --git a/htdocs/includes/codepress/engines/older.js b/htdocs/includes/codepress/engines/older.js new file mode 100644 index 00000000000..e69de29bb2d diff --git a/htdocs/includes/codepress/engines/opera.js b/htdocs/includes/codepress/engines/opera.js new file mode 100644 index 00000000000..155bf098a32 --- /dev/null +++ b/htdocs/includes/codepress/engines/opera.js @@ -0,0 +1,260 @@ +/* + * CodePress - Real Time Syntax Highlighting Editor written in JavaScript - http://codepress.org/ + * + * Copyright (C) 2007 Fernando M.A.d.S. + * + * Contributors : + * + * Michael Hurni + * + * This program is free software; you can redistribute it and/or modify it under the terms of the + * GNU Lesser General Public License as published by the Free Software Foundation. + * + * Read the full licence: http://www.opensource.org/licenses/lgpl-license.php + */ + + +CodePress = { + scrolling : false, + autocomplete : true, + + // set initial vars and start sh + initialize : function() { + if(typeof(editor)=='undefined' && !arguments[0]) return; + chars = '|32|46|62|'; // charcodes that trigger syntax highlighting + cc = '\u2009'; // control char + editor = document.getElementsByTagName('body')[0]; + document.designMode = 'on'; + document.addEventListener('keyup', this.keyHandler, true); + window.addEventListener('scroll', function() { if(!CodePress.scrolling) CodePress.syntaxHighlight('scroll') }, false); + completeChars = this.getCompleteChars(); +// CodePress.syntaxHighlight('init'); + }, + + // treat key bindings + keyHandler : function(evt) { + keyCode = evt.keyCode; + charCode = evt.charCode; + + if((evt.ctrlKey || evt.metaKey) && evt.shiftKey && charCode!=90) { // shortcuts = ctrl||appleKey+shift+key!=z(undo) + CodePress.shortcuts(charCode?charCode:keyCode); + } + else if(completeChars.indexOf('|'+String.fromCharCode(charCode)+'|')!=-1 && CodePress.autocomplete) { // auto complete + CodePress.complete(String.fromCharCode(charCode)); + } + else if(chars.indexOf('|'+charCode+'|')!=-1||keyCode==13) { // syntax highlighting + CodePress.syntaxHighlight('generic'); + } + else if(keyCode==9 || evt.tabKey) { // snippets activation (tab) + CodePress.snippets(evt); + } + else if(keyCode==46||keyCode==8) { // save to history when delete or backspace pressed + CodePress.actions.history[CodePress.actions.next()] = editor.innerHTML; + } + else if((charCode==122||charCode==121||charCode==90) && evt.ctrlKey) { // undo and redo + (charCode==121||evt.shiftKey) ? CodePress.actions.redo() : CodePress.actions.undo(); + evt.preventDefault(); + } + else if(keyCode==86 && evt.ctrlKey) { // paste + // TODO: pasted text should be parsed and highlighted + } + }, + + // put cursor back to its original position after every parsing + findString : function() { + var sel = window.getSelection(); + var range = window.document.createRange(); + var span = window.document.getElementsByTagName('span')[0]; + + range.selectNode(span); + sel.removeAllRanges(); + sel.addRange(range); + span.parentNode.removeChild(span); + //if(self.find(cc)) + //window.getSelection().getRangeAt(0).deleteContents(); + }, + + // split big files, highlighting parts of it + split : function(code,flag) { + if(flag=='scroll') { + this.scrolling = true; + return code; + } + else { + this.scrolling = false; + mid = code.indexOf(''); + if(mid-2000<0) {ini=0;end=4000;} + else if(mid+2000>code.length) {ini=code.length-4000;end=code.length;} + else {ini=mid-2000;end=mid+2000;} + code = code.substring(ini,end); + return code; + } + }, + + // syntax highlighting parser + syntaxHighlight : function(flag) { + //if(document.designMode=='off') document.designMode='on' + if(flag!='init') { + var span = document.createElement('span'); + window.getSelection().getRangeAt(0).insertNode(span); + } + + o = editor.innerHTML; +// o = o.replace(/
/g,'\r\n'); +// o = o.replace(/<(b|i|s|u|a|em|tt|ins|big|cite|strong)?>/g,''); + //alert(o) + o = o.replace(/<(?!span|\/span|br).*?>/gi,''); +// alert(o) +// x = o; + x = z = this.split(o,flag); + //alert(z) +// x = x.replace(/\r\n/g,'
'); + x = x.replace(/\t/g, ' '); + + + if(arguments[1]&&arguments[2]) x = x.replace(arguments[1],arguments[2]); + + for(i=0;i/g,'>'); + if(content.indexOf('$0')<0) content += cc; + else content = content.replace(/\$0/,cc); + content = content.replace(/\n/g,'
'); + var pattern = new RegExp(trigger+cc,'gi'); + evt.preventDefault(); // prevent the tab key from being added + this.syntaxHighlight('snippets',pattern,content); + } + } + }, + + readOnly : function() { + document.designMode = (arguments[0]) ? 'off' : 'on'; + }, + + complete : function(trigger) { + window.getSelection().getRangeAt(0).deleteContents(); + var complete = Language.complete; + for (var i=0; i/g,'\n'); + code = code.replace(/\u2009/g,''); + code = code.replace(/<.*?>/g,''); + code = code.replace(/</g,'<'); + code = code.replace(/>/g,'>'); + code = code.replace(/&/gi,'&'); + return code; + }, + + // put code inside editor + setCode : function() { + var code = arguments[0]; + code = code.replace(/\u2009/gi,''); + code = code.replace(/&/gi,'&'); + code = code.replace(//g,'>'); + editor.innerHTML = code; + }, + + // undo and redo methods + actions : { + pos : -1, // actual history position + history : [], // history vector + + undo : function() { + if(editor.innerHTML.indexOf(cc)==-1){ + window.getSelection().getRangeAt(0).insertNode(document.createTextNode(cc)); + this.history[this.pos] = editor.innerHTML; + } + this.pos--; + if(typeof(this.history[this.pos])=='undefined') this.pos++; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + redo : function() { + this.pos++; + if(typeof(this.history[this.pos])=='undefined') this.pos--; + editor.innerHTML = this.history[this.pos]; + CodePress.findString(); + }, + + next : function() { // get next vector position and clean old ones + if(this.pos>20) this.history[this.pos-21] = undefined; + return ++this.pos; + } + } +} + +Language={}; +window.addEventListener('load', function() { CodePress.initialize('new'); }, true); diff --git a/htdocs/includes/codepress/images/line-numbers.png b/htdocs/includes/codepress/images/line-numbers.png new file mode 100644 index 0000000000000000000000000000000000000000..ffea4e6aa163ba2cf184e2970ef11724bce4ef72 GIT binary patch literal 16556 zcmdUXcU+TK-?y!|)~bjoNHq#o3W6&_#V9gbWhkf!sEA^sA`TEE3X&j6oXke5B9UD{ z6a@*OAV|n10#OLFfApU?aLWvMjdoa=ml-*p}@bf|+t9?FB z=wm*9htIlC`S~dNi2L{3ybd3CcXU5|6zg5)ZVGq zru<~E&GP5nn8ty)rn3VZGAs?p#>3--at}WHeyN%|!r($&aMWwHMFlIL#QyN>G`-6D zaY;318u z@10*2Jz3nyq~NxtxMW_Zo`+{Wu{L{XJ7Vl(md-Z9_*#_vaUCn~g@rm6-Z0yY(qUbs zF6i`SceT~CUv)OEb$VaZJkq~}Jp&o^XlVfK*uz`Gua6O-VS!Cge=gPZ#ueez8eU*; z(u-k4AlIlejF%bXJb=DqKq#g%y$;`+C#9tvVk6EI3PYXqtl#ou_~%o8BfIbphiLK+ zTfpr`H1^JUl0geiTsjQuL) zICys`Nqldg2ITt`#*m<1L(9m&A8+vw^dkA%(s`ftB9T`D4 zNw-JIHO#fn`h+)I#KbtNI=p^tUn0sH<HO>~!f!)2W}jROdA}jG>sH-Q#S3m~3ZwUGM`9ebN4emWc`W9)$E3e1=}AR^-5N!C zPrXh>Ho)m(6->)Wa$VD_6jz;;dN&CH)D(5Ml>|wKRS`R4FkMM!Ra8^H(pYL}Of%;JnIUga~G)_?lq?BI-5# zN2r!gkLmXEpv=aZm8P)+Y%7_mW-pi+TiL6(q0{N~d1_f&=9yZ#vGxxHut13Y8+Cux z{W_uhh;hF8Dt40jKzF^rc}f?0qz*O)+aiJ!cKY{to`!ybYPtIMItJIMeRE?Rsg?HT z<`nUYLT>xL>7KLIRit$3X4d1G&mlrJd|ozSQ0s3a@LcoPth7q z&KS@U3$iHtyAiJ4VaV~#U5Kt8x|zu2j)3UQmM>SsI;hPAHF9?R2);uNXIzQSt4af( zZ$7T_q4F(^tI@8ca}{XH1KIB|M(7pjRi*vymC58%F){3s3c)Q4FPIJ&6Q{{O&6{Fh zF|l7Vi{Pe9=m1;1znuA-c>oEz!9x2e7Y5;i{*CO%qmRK@HhN6jOD7ZRmUFMkekD4X zY3Po;`CewvC1H)jCL-9qr@0&*G4cKgYrlbk`Z?aK&gCV{?K*zee(D&yVJ%ak^F0gI0542?rl$60Eqe6_!2)TJ7kFZUj|Yw0#iuEquiI(Zs`Q z0<~ql^u88S>w>Hs6578XO+!v|IgNEcZbB%!RTb-n}lIIF*ojqq0t2JqiO_fW_1$t2R#?xIM{4d$jnX~a#a zNMdk~SKo&|Lnwbi$+K`D_HXbZ*p@NhNh413??)(*qf;8OjS~Id-ar6rPRKqrUMevF zFGgebw7G|9Yv?8Hv)Q`afZ26?#SElL;p?L}+tx2^TC~N|PLR~6CiJK$U04v!-%agV zUJ@+z{GR-hW96dS@nO|GDm3?mOP>K4ya6Q&S$4=C&;7W4?N+#kYWh4}h?r=50&7!v z2{L>#?!OkLj;kCb9pGBE8IPEw2>wr|TJ&8Ks4xUcj5lUn*tro_JZ?#an3jeygbXoe zr=po>;^6-I3ZRYd0tmAQiN75}JvOmY(cOp)`o=CqYn|+OJcaIEh{$#@ylcU*p_RS~ zgtGQQ0arAow98;oHT&C4q%@xN8kBVt@-CZ&Tg^i6(x%dxuQ&)3+NL+kfNj`bbwE5!GJIIAA9~`Vk{98CE#gmLoWs!9|zN3IYRI8yd=yl2@_@} zkaUG6n#cAIBm5OZn34aL4GKO;3I}W;8Z$_B6EdaWoig3XeQl6d!|1t@?|(EyYcN~y zT@GT-&iG>c`M!7u?L*y`{+4T^@u|eBY8(?!WS}dTL&=o zH1Y?tbG1Qz&gQ1 ztQtTNc3G6071UXCLz8w7bP9*CA(kYl5@3oO6xQ;dl&o*J$(g4H!22{VM+9?dWeB#F zOkSG?BZ&PrWv0lv2W`1DDTp_hkZcOE_n_DD!P+ zRvF<@@f!ie8WTyncy+ErzW^3lG4+hOd!cOd1DsG01ZNH+V-#L>Kb?hk9o~!z6Ts?% z-g6MEqL}Xj%A+NuXmFCr{iKZvznAv+OK9BnfG$WY;ouqon7gj{J{sL%Vrh=j`vPWChJ+5Gq&zqN@oo>+HNx0; zfV+(enAnQ6dS-Ck%r1oVHg&&*82{dB7%`pu1x7+%i}Dd|A%41pGr3kV@VMi6w_fQa zKGMWJWJh`RKJL5{HS%Rp1%Tu*vN^#BoWN%mDV;KOc_MPMRdAfMgz_Jdl>l7CDns@z zx#R892taN+&?CdyCE=mB?6Ymoy9%{lJr$I_3?gA;Tl1Ou?P3)cx@2k65HY%~(PL~WquYv{-KZzVX5h9Vml3uwUwRkK!tF@=NJRk3ytfYt4INS}8}ATR zUl`p4f7%uH!m|fQJ#7S^Hh!j29M~V=a0`380$ouLrr1U<4Bk;HroH23p2QdXQhQiZ z@RN?vLk2L;*wRUF0jNk`m8NkNyj)DnmQ3KTn*s7IHffyVK9X}2@QjUD5rysO?Smxr z@C)X?U*-Gm`jVN~3JoLnau90(H%Jky^cDLFU@lT?CH#eUgCjFb1fazo6V;_lSRwN3 zwclzseib_W3>8^`%ysUw52nWVkkFjQdYH@m-&QWem{kH0&C<$fLpL`;qtZZK!W5Bx zFvNZWd4~bwLsJl+!;Q?IM+!=NX>ko>lZbVce3fBLZkgN2royoCuU>F1MNJ7qahuDl z*7VwsX=3xKIA4Zk9IEb{hT4ScjB`0+rUp8=SydEEb?v7=c6#!2VO!hVQHihP7)%H2 za<(sumq{Y!Y47bq@4EweqsIXr%w@IBZ$}So+5RuMx5cT5?la&MO=jEe_=e${{;cQ= z8LiKm-!&4hNv8|_-JsZ`dx|`N)n+w@+hV6Vta#gEVp7W@b3J024eyWeMXc}3jS4)s zFaIrxe3{xPA%6dUWx)l9=C*q?xhBlHb2nYK_Hrq_v(HBGoeL zl$hn*FAgk-Wp0%a{T0(^p6u;WP;7I`9P&cSDt7Xn@cq@y%%fTtxd#0_I*GC&A^Uqd zUgv@7kVEh`cVA8DxC~agLb=LiVn9CL3_x{a@Ja`v3PHpgBU5_3`Y`%Y4KqTA)L?pReq%I~F zQSLCmqkMS33bbhw!21f#7U?dXNxTh^ojQaLP(KqoqYHuG0ab{t;c#^ImDTKJkYA(3 zK$mbu=iE$libl@cS(8mBio{#+aGl$dTd7TWOfc3A`AP zEXDMB77q=3{V$wtFA}FF1O#9nj8qlh*5llp4i34iWIr`k96beREE`|q{D4~fU^NNj zCuBG)EL)4#pIFA*wfq)Iu3N^`gpL$TX&^ORwqKKD?=Wr_qGdFL`Q%@vpbhV&!EHbPdQ0ppF4agH$L5K6XGasU~fB5!c}Lk z0%-(EK(RDU;vl!Rol^Dgsn>9@^#{9N%@r|!-qA3RH5iF~=U{4R83z+ZHiC4#k| zKk19{?OXYv!U-u%iyS-swU|hF{`oU@fuLiYcfLO{86GAfE+M2tZx< z*+H8Wicf?s{^=aPKnr7Bg&z2&BoOanH^NlpYm7^~jiGi*rb+*O7B!_&RMlPToTqwO2f}Id{-X}WyNg%<+pV}gA;{k(G|=F zobkNSSM@-<7Ad&xRQZ_zuOJ2H$5z4?Ghqi<%o0I_ZTwVW^ns5n*&bl4OGr*upmM1I z*3*AYl5LXkHMsyE(XPSF61~meufUNJ#Hq9w7oF3f8+X2|K#Qm1a)dB5=6#^$y5!Sz zLORKXy#ewtwP!SF(Wk;#qbsa6?{>Aeaz24qiN;3>h)85>{5J>Mt?=(<%tAVyf4`z0 zybsVbv$%j!6!jl|twfl6EeVc&0N6W)zlxmn*dA0RBLTyie;>TqLPBy7;D5XC)Owhx z>yA}V6|A=qj13z_wVqs2HavW~n0x!UGqfDF+g!eKkKlwgsFC?cEXR$1Ww;5F(u3F^ z*tv06Sh)?s6%|T)#jN3b%h=-Uz7GbOT_?InH;~#W9>&(iD~rzLCvryy+tJ#mcg~!(G_L{WdW5YrjdI|Kr{j~ zD!vCA->k%vXT2H(H{{<^HO{6$E(4>h1Ff#@wcKl87M^^l_0VVj(Nk zxn>*ov235;+7E8sNHO90GMU47)wlH#D~}h;4H3XYCe5k~gyMMwH%QAw=m^}1l3!C1 zr)7LSJB0A zVY9T(a{(Kv-q9E;vpHWeXE+RzfXi7(RR=$eHB#G6gJylIO2L_`mZo4H*d3yOQO)FN z-{t@@tEzUx?c=VX5U*q4WC1#0qAr0%7580POiZdKUB*`Q(3$n-oOk zc2J1GY2aEG)UlGobg}sxc8$s*r5ZN7TNTWvg1JJOOR}NcDZbX(G3q|09qZtN4!|!! zcF0`JH^tw)nQ$xYV(o881H*c1Ei&Mx;D-mD8-F9`e{{eA=>0N)99x>EBR zqec|aauhjJ+V({5lIU?)L^1EA0r_;c3xT8o9VY`y83n1OE9|6tnb%6@gifAc@ywdr z@i7&e?szvqzm#5dmO6RBw3aaEJK_E^V1O)6a#0f#^CcV=C*!hi+XkyXJUOJi_0x_{~@D-g+p2<=BkDs{8t>&|!dq z?UYq&YW;0sM&Y>51D?AdffT~7?t}5gnEwGWILq$_QTO(Mjd+HUEM8&G zo{8>i(cAMdCNSPVBH#t|$`idfR$N?J&p6It!}g6imBCM4hzQs`Ql9~5*m`@Pe2IewOeir9_fxQr-3$cLe&y-@)Ob zV&+S)j?^$_O0u76gQFqVXWYAmuzuj$l~NM2h7jxAA*QL`zFYQep_zXae34AMoR@hW zw<+WeGT&5|J){Rs@=d{@+3#cfwag0-sE1WrZ4yTBSI%b{+h7P_Q6Up-1HY+J6Sulm zp>TnrB-Zare#1qq${O03kPYTQ8E{FJ8wL)vvj`X;Z-4~FBm(bTAweT&p9H2zrPQtx zpbUct%+}s^9uI%5<@njwduL_Bg_55$xMB-ta0S*`W^MqR^METNU6pY`SGb}_PAH$L zt8tUSKAxGNP7|Xa_!@U1H85L4NgEOz%g+6TI`=VClEcJ=DNoLm*;xamdVxBog$FFt z6Vs2udK=4UjSm|l-$vcgNBQ`bb529CdBVTOHFmoH5f#wer-_sn)x?tyQkVa*%Q5qo zeXc=e>v!|^lq+lw+xHbWXY-@#y_P1W$d9@Qc67xK_1{W_-ReN*%f7J(t&Qy=gf42l5+*Z3_J=AZ`S65q=!s;jU13 z>*aE$uo=3;#8{$s$VkNsI8<(ldOX2p0MU5%`?*_x5G}r!=HXU%pVJYggt7915x9&yzN8kt|_KNVM)23+M-v&J2bv8{oZZ<-syO^vFx zi&nn#J*!&LvD1V9YK}#Y_LXOX6Bb(o@K+&r1l2W6pXHu`S<+8b1rFgyCVTaWJhUu? zyiNBVK5OPP;+_S0UroAu+|e>}&Fvn~ogZy9_mqyoq@)4`DHGs&6UjLuRtNH1vYtY! zyokX{&fIGHHuOS=4tG=dJKx~e4OC+FT#8lrDh|RlziN*~qh!1Zh?K|R<7_PyaP=Q( zJ8xfVCMIT4wsVh|4aoezgqSB9@Rft88<2O%JVHmR+$W{x!f!3h_IY55IybSlkv%KZ zN7A!WdomQjfk%PtW$=Sc@iIxFT-LwcVRrX;+6r4AK|f_tHv%u!+;&UDY-Z9bzI{^d z^`70cz_A1TVg`qLdAZCv{je^F>0(+p!Jz@#Owg&)Y~%4DJU89_yY2xAf4ST@!_ ziC`A={kJ9ymLVX`>GDx2^9*GA zNbdbPQeFhqF6mqUDK)&74Cw`Jo=-@=uXvs&QU!l3_JY=_5KTd$%-N6yDMrp9wgtLn zRRwS~rjvtqC@s+_V5L3)yK$?3%aDCkNt!_Eh|ot-%?TV3QHY6J$jC7VZ_YN()}RKT z&ZdDhOH8kTxS^~joUh0HR&DT=<{s4i-#}iKe>@Ru&k7rIn%ia^JfT+f6Yt2j*LO4C> zf!N|s%~qUj*zc(U{w|9!C1ZR_-KWWINzf}#vRP1t zc9p)!wJC#Jq6UQ=%Q+6Wvqj|L8)d+zo$PX)yOsMPX$b;Z;=pCiiIql1r&bmtwEt|QX~Dt;TG8>94}BUr6b z;j;-hE{0O~^XiAt|H7g+Asq@6=as$V=})9llM(4{7Vy(6iWa~p+GN{wOss(T z803)N<|#M3FH*bSd?1yiMK4!({!cU{W^w%l4N=R=20FM6P@V1n!0kw(E@U73UjUEN zyn{=QIF&zr+tN3Sd=%gD(K9_EmLu*LEz_$T`M`{v}Jj#vUS~MW9xcGlA%!snM%5h@Pl_4TBRZ5-K(wyv{#3>s^R1o%ME; zrLWJU+DvQxPGY#KhnyF_@N_OKXxF_t8#v%VbF44H>4rnKY2>>`_Sh)TEA(lT+0VrM zmiwDJ0ayRRVc$Riv@{d7x7+ERFC+XW5cB-}px-fNn$osnO7@RB4i4-8XGBCZSTv!+%garRBbJMLk zW7;_OduG>iZEfU=!XLL8nU=V`blRiEr{_!v4o{rmoFFM-u8xp=iK0cEH zms7U0UV`4rJvL|s95MGW19owL{9jI5fBiQ}>z56S@JZm&>u6aKX2OLPe}O9iAJe8b zx##bfG8l)a)8yShrH_es^fBuK?&S{|=E|0+bv55WwvqDw(nJqLF2qAYr|Vh4oD||` z@Ig&2OROpRfcF1245?cxD0#Le$yO1Mg#Ny1hu*^dbC0(yShl}h)6C+s^A6OI%ZXN} zKR}4Gtp@bQh(#tq9l5N4|*B3|Gt+Y z*rO+m-ZNp0{h5t9E278KkkE0&vzWOr9Yrky&#y9mTSDmY9|yC)jF|_9eI!RQ?2mpZ z@l6``tlGAu&PR(!{ob5vO_Yqh>SkQ{?ge&Ojgl1h=peh%$I%9PfY7mS9k1cDvZ%O2 zO2Z%{gM%kk32!xy!Tff$qf0>Rn{k|IQV-L!I@;?PLhYJlbatg>aix0$TkxA@eu2Wb@C8l>VVxL%srKF`*S!Ru7b3%In{^pdJfZk3lL?i;q}7dIQ5PxVCz2oU56M?z88f zPv^HpF~<_;{c<1}FW9GLO*v9L?(=XO(imju&gFDhb|}?;qwdWj&wu?vc&vlet_H`; z%IF+1&AIUKy;1VjN#{atf_CJ+DCtR8aG=xKt$^P3k%~dxva$oPDz3vUA?%(AXoyt} za1;k*tjdNTFstjOphub`CdyJDLxs=`JW061H3%C;DYIK;*=ssQdf|$p(!z+z&8=1~ zrmKo}JYPAgFfe?Zgfp~?((cOXNUvjwE2wMBy1}1DVQpgTV`t*DidObP>zyb`ttZTO zU!N>LK(P(fP(KS?&zgc&6@kFjH}=xT`1Difzhq_Mm<9yXrg3& zEPtwf5qRG}@h}EejX{H8QcwvB9mX5gqsP8bKmQLKp(c6>i*H57C{V@e=i!;JH`$jp zcuNC0i0rwwj?@#wGmyFyF2cDn$yCS?BT+oAcVu@Y~Bo9V<+nz)1DB~~%?TS5-HPW_tDQPL04h5VX| z|4H?9p3_E45h+8JZ)N2-!CsVAS5}MPSHm8x98vcYaz`a4x1gnW?e23MN;Em4+Fn(! zXq4*-!_~r|T#G$awyNKbIy~M@b>L8+|Hv#d*f5sofYxB~&o$2Xl?9KUuW_Y3+E4;8 ztUgpc+z2a=l*pQWo#?CjeEL!;4T%Z`KMXj{ZTj?c0;5%=ejPK;u~AfD!O{7Rj2NXS zg2R%CkMOiu!SemZF^jv%zukAI&m|H9^gR5sL=ui+IY(VpqXHc}e^=X{*WfOUcZFys zG5uG0NUSV+PwI_rxE37Gm_VP}W_U9Bfzmz$#yXMf=g1d-)*D+a0+n?ds4RsFQhDGG zOV?LG-~6@sr2_q>_@x6218v9d5UO4A8FO0>$LY`zNc=)2(J z$w3@(P5||>lz&hkdlBI9Be;$8zX3r%Bs3VVbBSBdvEe4;IqWvy@=jIEgO82VZkyqU zy?|f4Y z+XAN_tiGvYDEsjtidyFBj4mnMvR7?lTIU7IYMzZESfu!?0SjB`@oUC{$Wk(U|YE6W}8_{HU7m04WGkSu*s zOEL`r3lNh3NP7J(o7fu`lxCOmdR4cS^lrX!pYv#*B%`a}s_8bF5T9 zilNVXr!>K)2N$Fhw&}OB_b30~*rs2$QrOCB2Q%gH25nuefc?`#iYZn5&0TPF<$n`C zvLrG5W5}_fa5kvCyw_aPX@i4%?vPraIIuTayRfoUZ^BPE%FL*0|Ss4A-`yJqxjE4~_LO^sE z0jo;h)ulO7vbmPySkTGRCFs!4ZD<(@g$xV-mOfe;uejvIMubvww`E>HHvQ0`15ev< zsj0J7^rjG29ssWQHqg`oEL+r_7_4OTA1=e77U{@t zZGa&>PghEFkW-WZFO&o5SWLPg;F2V(mA!@3LH+zQi#7-t9)UuK3`uGP>AK^$Tt{;z zsmQY$T!kq{tZEL`tCcdoO&b6B8w*Rq_ zI)iFl!1~;-Ro>PebEvR+)D1#g)#ri;o-ADg361iS0+7Ou5MVBmknCaw2>az1pfZo* zfjsgYMS0)>SY@EP0&F$O2XA9y71j0=i1X(bKfFN^V}6?rZpLLLY@UrV?nV#Xo2#SG z2m0t9oKF)ITby-1tm$V8NnUK<8U8LsR!l9n{X6$yfaP*5hBWV>$GI|jQ6v#!OUf^c zQ@!$PK&t-ndfngGNW?X9(8z!Pf}QVH^S9*vCaUXaWc8Lk6$sLYv%fFozOrMX^$9w& z)dtIy=F7h;ka2Y|AzXts@9o*0=GQ+fG=_*(a0J_3yGN9T?aw+RzPGRjV?nRwUH0gT zw4->p4B0i0C?;khfQ#uMyOuXk;e5Hz?JO&lQOZ|NN+r^;vRgB$e++!ftL97isQ(ni z+* + + + + CodePress - Real Time Syntax Highlighting Editor written in JavaScript + + + + + + +
'; - print ''; - print ''; - print $form->selectarray('search_statut', array('-1'=>'','0'=>$langs->trans('Disabled'),'1'=>$langs->trans('Enabled')),$search_statut); - print ''; $searchpicto=$form->showFilterButtons(); @@ -402,11 +405,18 @@ print $searchpicto; print '
'.$obj->field1.''.$object->getLibStatut(3).''.$obj->field2.''; - print dol_print_date($db->jdate($obj->date_creation), 'dayhour'); - print ''.$object->getLibStatut(3).''; - print dol_print_date($db->jdate($obj->date_update), 'dayhour'); - print ''.$userstatic->getLibStatut(3).''; if ($massactionbutton || $massaction) // If we are in select mode (massactionbutton defined) or if we have already selected and sent an action ($massaction) defined @@ -536,7 +551,7 @@ if (isset($totalarray['totalhtfield'])) if ($num < $limit) print ''.$langs->trans("Total").''.$langs->trans("Totalforthispage").''.price($totalarray['totalht']).''.price($totalarray['totalht']).''.price($totalarray['totalvat']).''.price($totalarray['totalttc']).'
+ + + + + + + + +

+ CodePress is web-based source code editor with syntax highlighting written in JavaScript that colors text in real time while it's being typed in the browser. +

+ +

+ Go to http://codepress.org/ for updates. +

+ +

Demo

+
+ choose example in: + + + + + + + +
+ + + +

+ + + +

+ + + + + +

+ + + +

Installation

+
    +
  1. +

    + Download and uncompress CodePress under a directory inside your webserver.
    + Example: http://yourserver/codepress/
    + Since CodePress is pure JavaScript and HTML, you can also test it without a webserver. +

    +
  2. +
  3. +

    + Insert CodePress script somewhere in your page inside the <head> or above the </body> tag. +

    + +

    + <script src="/codepress/codepress.js" type="text/javascript"></script> +

    +
  4. + +
  5. +

    + Add the <textarea> tag to the place on your page you want CodePress to appear. CodePress will inherit the width and height of your textarea. + When the page loads, it will automatically replace your textarea with a CodePress window. +

    +

    + <textarea id="myCpWindow" class="codepress javascript linenumbers-off">
    +    // your code here
    + </textarea> +

    +
      +
    • + The javascript portion of the class="" means that the language being edited is JavaScript. +
    • +
    • + The codepress portion of the class="" is mandatory and indicates a textarea to be replaced for a CodePress window. +
    • +
    • + Other class options are linenumbers-off, autocomplete-off and readonly-on. +
    • +
    • + Careful not to use the same id for two different CodePress windows (<textarea id="xx"...>) +
    • +
    + +
  6. +
+ +

You also can...

+
    +
  1. + Open/edit code from a different textarea.
    + Example: textarea_id.edit('other_textarea_id','language')
    +
  2. +
  3. + Get code from CodePress window.
    + Example: textarea_id.getCode()
    +
  4. +
  5. + Turn on/off CodePress editor and return to the regular textarea.
    + Example: textarea_id.toggleEditor()
    +
  6. +
  7. + Turn on/off line numbers.
    + Example: textarea_id.toggleLineNumbers()
    +
  8. +
  9. + Turn on/off read only.
    + Example: textarea_id.toggleReadOnly()
    +
  10. +
  11. + Turn on/off auto-complete.
    + Example: textarea_id.toggleAutoComplete()
    +
  12. + +
+ + + +

License

+

+ CodePress is distributed under the LGPL. If your software is compatible with this licence or it is under Creative Commons, you can use it as you want. Just keep the credits somewhere around. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/htdocs/includes/codepress/languages/asp.css b/htdocs/includes/codepress/languages/asp.css new file mode 100644 index 00000000000..9a4c505c330 --- /dev/null +++ b/htdocs/includes/codepress/languages/asp.css @@ -0,0 +1,71 @@ +/* + * CodePress color styles for ASP-VB syntax highlighting + * By Martin D. Kirk + */ +/* tags */ + +b { + color:#000080; +} +/* comments */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u { + color:gray; + font-weight:normal; +} +/* ASP comments */ +strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{ + color:gray; + font-weight:normal; +} + /* attributes */ +s, s b, span s u, span s cite, strong span s { + color:#5656fa ; + font-weight:normal; +} + /* strings */ +strong s,strong s b, strong s u, strong s cite { + color:#009900; + font-weight:normal; +} +strong ins{ + color:#000000; + font-weight:bold; +} + /* Syntax */ +strong a, strong a u { + color:#0000FF; + font-weight:; +} + /* Native Keywords */ +strong u { + color:#990099; + font-weight:bold; +} +/* Numbers */ +strong var{ + color:#FF0000; +} +/* ASP Language */ +span{ + color:#990000; + font-weight:bold; +} +strong i,strong a i, strong u i { + color:#009999; +} +/* style */ +em { + color:#800080; + font-style:normal; +} + /* script */ +ins { + color:#800000; + font-weight:bold; +} + +/* */ +cite, s cite { + color:red; + font-weight:bold; +} \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/asp.js b/htdocs/includes/codepress/languages/asp.js new file mode 100644 index 00000000000..21e78dd887c --- /dev/null +++ b/htdocs/includes/codepress/languages/asp.js @@ -0,0 +1,117 @@ +/* + * CodePress regular expressions for ASP-vbscript syntax highlighting + */ + +// ASP VBScript +Language.syntax = [ +// all tags + { input : /(<[^!%|!%@]*?>)/g, output : '$1' }, +// style tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, +// script tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, +// strings "" and attributes + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, +// ASP Comment + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2'}, +// <%.* + { input : /(<%)/g, output : '$1' }, +// .*%> + { input : /(%>)/g, output : '$1' }, +// <%@...%> + { input : /(<%@)(.+?)(%>)/gi, output : '$1$2$3' }, +//Numbers + { input : /\b([\d]+)\b/g, output : '$1' }, +// Reserved Words 1 (Blue) + { input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '$1' }, + { input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '$1' }, + { input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '$1' }, +// Reserved Words 2 (Purple) + { input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '$1' }, + { input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '$1' }, + { input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '$1' }, + { input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '$1' }, + { input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '$1' }, + { input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '$1' }, + { input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '$1' }, + { input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '$1' }, + { input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '$1' }, + { input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '$1' }, + { input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '$1' }, + { input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '$1' }, + { input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '$1' }, + { input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '$1' }, + { input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '$1' }, + { input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '$1' }, +// Reserved Words 3 (Turquis) + { input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '$1' }, + { input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '$1' }, + { input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '$1' }, + { input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '$1' }, + { input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '$1' }, + { input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '$1' }, +// html comments + { input : /(<!--.*?-->.)/g, output : '$1' } +] + +Language.Functions = [ + // Output at index 0, must be the desired tagname surrounding a $1 + // Name is the index from the regex that marks the functionname + {input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '$1', name : '$3'} +] + +Language.snippets = [ +//Conditional + { input : 'if', output : 'If $0 Then\n\t\nEnd If' }, + { input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' }, + { input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'}, +//Response + { input : 'rw', output : 'Response.Write( $0 )' }, + { input : 'resc', output : 'Response.Cookies( $0 )' }, + { input : 'resb', output : 'Response.Buffer'}, + { input : 'resflu', output : 'Response.Flush()'}, + { input : 'resend', output : 'Response.End'}, +//Request + { input : 'reqc', output : 'Request.Cookies( $0 )' }, + { input : 'rq', output : 'Request.Querystring("$0")' }, + { input : 'rf', output : 'Request.Form("$0")' }, +//FSO + { input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' }, + { input : 'setfo', output : 'Set fo = fso.getFolder($0)' }, + { input : 'setfi', output : 'Set fi = fso.getFile($0)' }, + { input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'}, + { input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'}, +//Server + { input : 'mapp', output : 'Server.Mappath($0)' }, +//Loops + { input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' }, + { input : 'for', output : 'For $0 to ? step ?\n\t\nNext' }, + { input : 'do', output : 'Do While($0)\n\t\nLoop' }, + { input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' }, +//ADO + { input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' }, + { input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' }, + { input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' }, +//Http Request + { input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' }, + { input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'}, +//Functions + { input : 'func', output : 'Function $0()\n\t\n\nEnd Function'}, + { input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'} + +] + +Language.complete = [ + //{ input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/autoit.css b/htdocs/includes/codepress/languages/autoit.css new file mode 100644 index 00000000000..eb2b43b6e4a --- /dev/null +++ b/htdocs/includes/codepress/languages/autoit.css @@ -0,0 +1,13 @@ +/** + * CodePress color styles for AutoIt syntax highlighting + */ + +u {font-style:normal;color:#000090;font-weight:bold;font-family:Monospace;} +var {color:#AA0000;font-weight:bold;font-style:normal;} +em {color:#FF33FF;} +ins {color:#AC00A9;} +i {color:#F000FF;} +b {color:#FF0000;} +a {color:#0080FF;font-weight:bold;} +s, s u, s b {color:#9999CC;font-weight:normal;} +cite, cite *{color:#009933;font-weight:normal;} \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/autoit.js b/htdocs/includes/codepress/languages/autoit.js new file mode 100644 index 00000000000..6f5c19d0ba2 --- /dev/null +++ b/htdocs/includes/codepress/languages/autoit.js @@ -0,0 +1,32 @@ +/** + * CodePress regular expressions for AutoIt syntax highlighting + * @author: James Brooks, Michael HURNI + */ + +// AutoIt +Language.syntax = [ + { input : /({|}|\(|\))/g, output : '$1' }, // Brackets + { input : /(\*|\+|-)/g, output : '$1' }, // Operator + { input : /\"(.*?)(\"|
|<\/P>)/g, output : "\"$1$2" }, // strings double + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single + { input : /\b([\d]+)\b/g, output : '$1' }, // Numbers + { input : /#(.*?)(
|<\/P>)/g, output : '#$1$2' }, // Directives and Includes + { input : /(\$[\w\.]*)/g, output : '$1' }, // vars + { input : /(_[\w\.]*)/g, output : '$1' }, // underscored word + { input : /(\@[\w\.]*)/g, output : '$1' }, // Macros + { input : /\b(Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitSHIFT|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCall|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFS|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GuiCreate|GuiCtrlCreateAvi|GuiCtrlCreateButton|GuiCtrlCreateCheckbox|GuiCtrlCreateCombo|GuiCtrlCreateContextMenu|GuiCtrlCreateDate|GuiCtrlCreateDummy|GuiCtrlCreateEdit|GuiCtrlCreateGraphic|GuiCtrlCreateGroup|GuiCtrlCreateIcon|GuiCtrlCreateInput|GuiCtrlCreateLabel|GuiCtrlCreateList|GuiCtrlCreateListView|GuiCtrlCreateListViewItem|GuiCtrlCreateMenu|GuiCtrlCreateMenuItem|GuiCtrlCreateMonthCal|GuiCtrlCreateObj|GuiCtrlCreatePic|GuiCtrlCreateProgress|GuiCtrlCreateRadio|GuiCtrlCreateSlider|GuiCtrlCreateTab|GuiCtrlCreateTabItem|GuiCtrlCreateUpdown|GuiCtrlDelete|GuiCtrlGetHandle|GuiCtrlGetState|GuiCtrlRead|GuiCtrlRecvMsg|GuiCtrlSentMsg|GuiCtrlSendToDummy|GuiCtrlSetBkColor|GuiCtrlSetColor|GuiCtrlSetCursor|GuiCtrlSetData|GuiCtrlSetFont|GuiCtrlSetGraphic|GuiCtrlSetImage|GuiCtrlSetLimit|GuiCtrlSetOnEvent|GuiCtrlSetPos|GuiCtrlResizing|GuiCtrlSetState|GuiCtrlSetTip|GuiDelete|GuiGetCursorInfo|GuiGetMsg|GuiGetStyle|GuiRegisterMsg|GuiSetBkColor|GuiSetCoord|GuiSetCursor|GuiSetFont|GuiSetHelp|GuiSetIcon|GuiSetOnEvent|GuiSetStat|GuiSetStyle|GuiStartGroup|GuiSwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Ping|PixelCheckSum|PixelGetColor|PixelSearch|ProcessClose|ProcessExists|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProcessOn|ProgressSet|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAsSet|RunWait|Send|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPrecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive)\b/g, output : '$1' } ,// reserved words + { input : /\B;(.*?)(
|<\/P>)/g, output : ';$1$2' }, // comments + { input : /#CS(.*?)#CE/g, output : '#CS$1#CE' } // Block Comments +] + +Language.snippets = [] + +Language.complete = [ +{ input : '\'',output : '\'$0\'' }, +{ input : '"', output : '"$0"' }, +{ input : '(', output : '\($0\)' }, +{ input : '[', output : '\[$0\]' }, +{ input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/csharp.css b/htdocs/includes/codepress/languages/csharp.css new file mode 100644 index 00000000000..8464c5ddb0d --- /dev/null +++ b/htdocs/includes/codepress/languages/csharp.css @@ -0,0 +1,9 @@ +/* + * CodePress color styles for Java syntax highlighting + * By Edwin de Jonge + */ + +b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */ +a {color:#2A0088;font-weight:bold;font-style:normal;} /* types */ +i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */ +s, s b {color:#2A00FF;font-weight:normal;} /* strings */ \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/csharp.js b/htdocs/includes/codepress/languages/csharp.js new file mode 100644 index 00000000000..0a61fd52a92 --- /dev/null +++ b/htdocs/includes/codepress/languages/csharp.js @@ -0,0 +1,25 @@ +/* + * CodePress regular expressions for C# syntax highlighting + * By Edwin de Jonge + */ + +Language.syntax = [ // C# + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(abstract|as|base|break|case|catch|checked|continue|default|delegate|do|else|event|explicit|extern|false|finally|fixed|for|foreach|get|goto|if|implicit|in|interface|internal|is|lock|namespace|new|null|object|operator|out|override|params|partial|private|protected|public|readonly|ref|return|set|sealed|sizeof|static|stackalloc|switch|this|throw|true|try|typeof|unchecked|unsafe|using|value|virtual|while)\b/g, output : '$1' }, // reserved words + { input : /\b(bool|byte|char|class|double|float|int|interface|long|string|struct|void)\b/g, output : '$1' }, // types + { input : /([^:]|^)\/\/(.*?)(//$2
$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +]; + +Language.snippets = []; + +Language.complete = [ // Auto complete only for 1 character + {input : '\'',output : '\'$0\'' }, + {input : '"', output : '"$0"' }, + {input : '(', output : '\($0\)' }, + {input : '[', output : '\[$0\]' }, + {input : '{', output : '{\n\t$0\n}' } +]; + +Language.shortcuts = []; \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/css.css b/htdocs/includes/codepress/languages/css.css new file mode 100644 index 00000000000..49ba5843d73 --- /dev/null +++ b/htdocs/includes/codepress/languages/css.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for CSS syntax highlighting + */ + +b, b a, b u {color:#000080;} /* tags, ids, classes */ +i, i b, i s, i a, i u {color:gray;} /* comments */ +s, s b {color:#a0a0dd;} /* parameters */ +a {color:#0000ff;} /* keys */ +u {color:red;} /* values */ + diff --git a/htdocs/includes/codepress/languages/css.js b/htdocs/includes/codepress/languages/css.js new file mode 100644 index 00000000000..c29059b76e3 --- /dev/null +++ b/htdocs/includes/codepress/languages/css.js @@ -0,0 +1,23 @@ +/* + * CodePress regular expressions for CSS syntax highlighting + */ + +// CSS +Language.syntax = [ + { input : /(.*?){(.*?)}/g,output : '$1{$2}' }, // tags, ids, classes, values + { input : /([\w-]*?):([^\/])/g,output : '$1:$2' }, // keys + { input : /\((.*?)\)/g,output : '($1)' }, // parameters + { input : /\/\*(.*?)\*\//g,output : '/*$1*/'} // comments +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/generic.css b/htdocs/includes/codepress/languages/generic.css new file mode 100644 index 00000000000..712942f45af --- /dev/null +++ b/htdocs/includes/codepress/languages/generic.css @@ -0,0 +1,9 @@ +/* + * CodePress color styles for generic syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +u {color:darkblue;font-weight:bold;} /* special words */ +i, i b, i s, i u, i em {color:green;font-weight:normal;} /* comments */ +s, s b, s em {color:#2A00FF;font-weight:normal;} /* strings */ +em {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/generic.js b/htdocs/includes/codepress/languages/generic.js new file mode 100644 index 00000000000..4c866de9995 --- /dev/null +++ b/htdocs/includes/codepress/languages/generic.js @@ -0,0 +1,25 @@ +/* + * CodePress regular expressions for generic syntax highlighting + */ + +// generic languages +Language.syntax = [ + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(abstract|continue|for|new|switch|default|goto|boolean|do|if|private|this|break|double|protected|throw|byte|else|import|public|throws|case|return|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|const|float|while|function|label)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars; + { input : /([^:]|^)\/\/(.*?)(//$2
$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/html.css b/htdocs/includes/codepress/languages/html.css new file mode 100644 index 00000000000..14882e553ef --- /dev/null +++ b/htdocs/includes/codepress/languages/html.css @@ -0,0 +1,13 @@ +/* + * CodePress color styles for HTML syntax highlighting + */ + +b {color:#000080;} /* tags */ +ins, ins b, ins s, ins em {color:gray;} /* comments */ +s, s b {color:#7777e4;} /* attribute values */ +a {color:green;} /* links */ +u {color:#E67300;} /* forms */ +big {color:#db0000;} /* images */ +em, em b {color:#800080;} /* style */ +strong {color:#800000;} /* script */ +tt i {color:darkblue;font-weight:bold;} /* script reserved words */ diff --git a/htdocs/includes/codepress/languages/html.js b/htdocs/includes/codepress/languages/html.js new file mode 100644 index 00000000000..4ead0b086ba --- /dev/null +++ b/htdocs/includes/codepress/languages/html.js @@ -0,0 +1,59 @@ +/* + * CodePress regular expressions for HTML syntax highlighting + */ + +// HTML +Language.syntax = [ + { input : /(<[^!]*?>)/g, output : '$1' }, // all tags + { input : /(<a .*?>|<\/a>)/g, output : '$1' }, // links + { input : /(<img .*?>)/g, output : '$1' }, // images + { input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, output : '$1' }, // forms + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, // style tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, // script tags + { input : /=(".*?")/g, output : '=$1' }, // atributes double quote + { input : /=('.*?')/g, output : '=$1' }, // atributes single quote + { input : /(<!--.*?-->.)/g, output : '$1' }, // comments + { input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '$1' } // script reserved words +] + +Language.snippets = [ + { input : 'aref', output : '' }, + { input : 'h1', output : '

$0

' }, + { input : 'h2', output : '

$0

' }, + { input : 'h3', output : '

$0

' }, + { input : 'h4', output : '

$0

' }, + { input : 'h5', output : '
$0
' }, + { input : 'h6', output : '
$0
' }, + { input : 'html', output : '\n\t$0\n' }, + { input : 'head', output : '\n\t\n\t$0\n\t\n' }, + { input : 'img', output : '' }, + { input : 'input', output : '' }, + { input : 'label', output : '' }, + { input : 'legend', output : '\n\t$0\n' }, + { input : 'link', output : '' }, + { input : 'base', output : '' }, + { input : 'body', output : '\n\t$0\n' }, + { input : 'css', output : '' }, + { input : 'div', output : '
\n\t$0\n
' }, + { input : 'divid', output : '
\n\t\n
' }, + { input : 'dl', output : '
\n\t
\n\t\t$0\n\t
\n\t
\n
' }, + { input : 'fieldset', output : '
\n\t$0\n
' }, + { input : 'form', output : '
\n\t\n
' }, + { input : 'meta', output : '' }, + { input : 'p', output : '

$0

' }, + { input : 'script', output : '' }, + { input : 'scriptsrc', output : '' }, + { input : 'span', output : '$0' }, + { input : 'table', output : '\n\t\n\t\n
' }, + { input : 'style', output : '' } +] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/java.css b/htdocs/includes/codepress/languages/java.css new file mode 100644 index 00000000000..b9c44416836 --- /dev/null +++ b/htdocs/includes/codepress/languages/java.css @@ -0,0 +1,7 @@ +/* + * CodePress color styles for Java syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;font-style:normal;} /* reserved words */ +i, i b, i s {color:#3F7F5F;font-weight:bold;} /* comments */ +s, s b {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/htdocs/includes/codepress/languages/java.js b/htdocs/includes/codepress/languages/java.js new file mode 100644 index 00000000000..f0d620d6898 --- /dev/null +++ b/htdocs/includes/codepress/languages/java.js @@ -0,0 +1,24 @@ +/* + * CodePress regular expressions for Java syntax highlighting + */ + +// Java +Language.syntax = [ + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2'}, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2'}, // strings single quote + { input : /\b(abstract|continue|for|new|switch|assert|default|goto|package|synchronized|boolean|do|if|private|this|break|double|implements|protected|throw|byte|else|import|public|throws|case|enum|instanceof|return|transient|catch|extends|int|short|try|char|final|interface|static|void|class|finally|long|strictfp|volatile|const|float|native|super|while)\b/g, output : '$1'}, // reserved words + { input : /([^:]|^)\/\/(.*?)(//$2$3'}, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' }// comments /* */ +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/javascript.css b/htdocs/includes/codepress/languages/javascript.css new file mode 100644 index 00000000000..acbf49a916f --- /dev/null +++ b/htdocs/includes/codepress/languages/javascript.css @@ -0,0 +1,8 @@ +/* + * CodePress color styles for JavaScript syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +u {color:darkblue;font-weight:bold;} /* special words */ +i, i b, i s, i u {color:green;font-weight:normal;} /* comments */ +s, s b, s u {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/htdocs/includes/codepress/languages/javascript.js b/htdocs/includes/codepress/languages/javascript.js new file mode 100644 index 00000000000..66d0fc02409 --- /dev/null +++ b/htdocs/includes/codepress/languages/javascript.js @@ -0,0 +1,30 @@ +/* + * CodePress regular expressions for JavaScript syntax highlighting + */ + +// JavaScript +Language.syntax = [ + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /\b(break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, output : '$1' }, // reserved words + { input : /\b(alert|isNaN|parent|Array|parseFloat|parseInt|blur|clearTimeout|prompt|prototype|close|confirm|length|Date|location|Math|document|element|name|self|elements|setTimeout|navigator|status|String|escape|Number|submit|eval|Object|event|onblur|focus|onerror|onfocus|onclick|top|onload|toString|onunload|unescape|open|valueOf|window|onmouseover)\b/g, output : '$1' }, // special words + { input : /([^:]|^)\/\/(.*?)(//$2$3' }, // comments // + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' } // comments /* */ +] + +Language.snippets = [ + { input : 'dw', output : 'document.write(\'$0\');' }, + { input : 'getid', output : 'document.getElementById(\'$0\')' }, + { input : 'fun', output : 'function $0(){\n\t\n}' }, + { input : 'func', output : 'function $0(){\n\t\n}' } +] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/perl.css b/htdocs/includes/codepress/languages/perl.css new file mode 100644 index 00000000000..c2d6d56d730 --- /dev/null +++ b/htdocs/includes/codepress/languages/perl.css @@ -0,0 +1,11 @@ +/* + * CodePress color styles for Perl syntax highlighting + * By J. Nick Koston + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */ +s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */ +a {color:#006700;font-weight:bold;} /* variables */ +em {color:darkblue;font-weight:bold;} /* functions */ +u {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/perl.js b/htdocs/includes/codepress/languages/perl.js new file mode 100644 index 00000000000..06c380d654a --- /dev/null +++ b/htdocs/includes/codepress/languages/perl.js @@ -0,0 +1,27 @@ +/* + * CodePress regular expressions for Perl syntax highlighting + * By J. Nick Koston + */ + +// Perl +Language.syntax = [ + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /([\$\@\%][\w\.]*)/g, output : '$1' }, // vars + { input : /(sub\s+)([\w\.]*)/g, output : '$1$2' }, // functions + { input : /\b(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|do|dump|each|else|elsif|endgrent|endhostent|endnetent|endprotoent|endpwent|eof|eval|exec|exists|exit|fcntl|fileno|find|flock|for|foreach|fork|format|formlinegetc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyaddr|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|hostname|if|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|LoadExternals|local|localtime|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ordpack|package|pipe|pop|pos|print|printf|push|pwd|qq|quotemeta|qw|rand|read|readdir|readlink|recv|redo|ref|rename|require|reset|return|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|stty|study|sub|substr|symlink|syscall|sysopen|sysread|system|syswritetell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unless|unlink|until|unpack|unshift|untie|use|utime|values|vec|waitpid|wantarray|warn|while|write)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars + { input : /#(.*?)(
|<\/P>)/g, output : '#$1$2' } // comments +] + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/php.css b/htdocs/includes/codepress/languages/php.css new file mode 100644 index 00000000000..23fca5c7f23 --- /dev/null +++ b/htdocs/includes/codepress/languages/php.css @@ -0,0 +1,12 @@ +/* + * CodePress color styles for PHP syntax highlighting + */ + +b {color:#000080;} /* tags */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u {color:gray;font-weight:normal;} /* comments */ +s, s b, strong s u, strong s cite {color:#5656fa;font-weight:normal;} /* attributes and strings */ +strong a, strong a u {color:#006700;font-weight:bold;} /* variables */ +em {color:#800080;font-style:normal;} /* style */ +ins {color:#800000;} /* script */ +strong u {color:#7F0055;font-weight:bold;} /* reserved words */ +cite, s cite {color:red;font-weight:bold;} /* */ diff --git a/htdocs/includes/codepress/languages/php.js b/htdocs/includes/codepress/languages/php.js new file mode 100644 index 00000000000..1689fbae44e --- /dev/null +++ b/htdocs/includes/codepress/languages/php.js @@ -0,0 +1,61 @@ +/* + * CodePress regular expressions for PHP syntax highlighting + */ + +// PHP +Language.syntax = [ + { input : /(<[^!\?]*?>)/g, output : '$1' }, // all tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, // style tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, // script tags + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2'}, // strings single quote + { input : /(<\?)/g, output : '$1' }, // ' }, // .*?> + { input : /(<\?php|<\?=|<\?|\?>)/g, output : '$1' }, // php tags + { input : /(\$[\w\.]*)/g, output : '$1' }, // vars + { input : /\b(false|true|and|or|xor|__FILE__|exception|__LINE__|array|as|break|case|class|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|for|foreach|function|global|if|include|include_once|isset|list|new|print|require|require_once|return|static|switch|unset|use|while|__FUNCTION__|__CLASS__|__METHOD__|final|php_user_filter|interface|implements|extends|public|private|protected|abstract|clone|try|catch|throw|this)\b/g, output : '$1' }, // reserved words + { input : /([^:])\/\/(.*?)(//$2$3' }, // php comments // + { input : /([^:])#(.*?)(#$2$3' }, // php comments # + { input : /\/\*(.*?)\*\//g, output : '/*$1*/' }, // php comments /* */ + { input : /(<!--.*?-->.)/g, output : '$1' } // html comments +] + +Language.snippets = [ + { input : 'if', output : 'if($0){\n\t\n}' }, + { input : 'ifelse', output : 'if($0){\n\t\n}\nelse{\n\t\n}' }, + { input : 'else', output : '}\nelse {\n\t' }, + { input : 'elseif', output : '}\nelseif($0) {\n\t' }, + { input : 'do', output : 'do{\n\t$0\n}\nwhile();' }, + { input : 'inc', output : 'include_once("$0");' }, + { input : 'fun', output : 'function $0(){\n\t\n}' }, + { input : 'func', output : 'function $0(){\n\t\n}' }, + { input : 'while', output : 'while($0){\n\t\n}' }, + { input : 'for', output : 'for($0,,){\n\t\n}' }, + { input : 'fore', output : 'foreach($0 as ){\n\t\n}' }, + { input : 'foreach', output : 'foreach($0 as ){\n\t\n}' }, + { input : 'echo', output : 'echo \'$0\';' }, + { input : 'switch', output : 'switch($0) {\n\tcase "": break;\n\tdefault: ;\n}' }, + { input : 'case', output : 'case "$0" : break;' }, + { input : 'ret0', output : 'return false;' }, + { input : 'retf', output : 'return false;' }, + { input : 'ret1', output : 'return true;' }, + { input : 'rett', output : 'return true;' }, + { input : 'ret', output : 'return $0;' }, + { input : 'def', output : 'define(\'$0\',\'\');' }, + { input : '' } +] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/ruby.css b/htdocs/includes/codepress/languages/ruby.css new file mode 100644 index 00000000000..edb9028dbbf --- /dev/null +++ b/htdocs/includes/codepress/languages/ruby.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for Ruby syntax highlighting + */ + +b {color:#7F0055;font-weight:bold;} /* reserved words */ +i, i b, i s, i em, i a, i u {color:gray;font-weight:normal;} /* comments */ +s, s b, s a, s em, s u {color:#2A00FF;font-weight:normal;} /* strings */ +a {color:#006700;font-weight:bold;} /* variables */ +em {color:darkblue;font-weight:bold;} /* functions */ +u {font-weight:bold;} /* special chars */ \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/ruby.js b/htdocs/includes/codepress/languages/ruby.js new file mode 100644 index 00000000000..207f23b0043 --- /dev/null +++ b/htdocs/includes/codepress/languages/ruby.js @@ -0,0 +1,26 @@ +/* + * CodePress regular expressions for Perl syntax highlighting + */ + +// Ruby +Language.syntax = [ + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, // strings double quote + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2' }, // strings single quote + { input : /([\$\@\%]+)([\w\.]*)/g, output : '$1$2' }, // vars + { input : /(def\s+)([\w\.]*)/g, output : '$1$2' }, // functions + { input : /\b(alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|false|for|if|in|module|next|nil|not|or|redo|rescue|retry|return|self|super|then|true|undef|unless|until|when|while|yield)\b/g, output : '$1' }, // reserved words + { input : /([\(\){}])/g, output : '$1' }, // special chars + { input : /#(.*?)(
|<\/P>)/g, output : '#$1$2' } // comments +]; + +Language.snippets = [] + +Language.complete = [ + { input : '\'',output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/sql.css b/htdocs/includes/codepress/languages/sql.css new file mode 100644 index 00000000000..92c4b96dc77 --- /dev/null +++ b/htdocs/includes/codepress/languages/sql.css @@ -0,0 +1,10 @@ +/* + * CodePress color styles for SQL syntax highlighting + * By Merlin Moncure + */ + +b {color:#0000FF;font-style:normal;font-weight:bold;} /* reserved words */ +u {color:#FF0000;font-style:normal;} /* types */ +a {color:#CD6600;font-style:normal;font-weight:bold;} /* commands */ +i, i b, i u, i a, i s {color:#A9A9A9;font-weight:normal;font-style:italic;} /* comments */ +s, s b, s u, s a, s i {color:#2A00FF;font-weight:normal;} /* strings */ diff --git a/htdocs/includes/codepress/languages/sql.js b/htdocs/includes/codepress/languages/sql.js new file mode 100644 index 00000000000..1d4a21f82f9 --- /dev/null +++ b/htdocs/includes/codepress/languages/sql.js @@ -0,0 +1,30 @@ +/* + * CodePress regular expressions for SQL syntax highlighting + * By Merlin Moncure + */ + +// SQL +Language.syntax = [ + { input : /\'(.*?)(\')/g, output : '\'$1$2' }, // strings single quote + { input : /\b(add|after|aggregate|alias|all|and|as|authorization|between|by|cascade|cache|cache|called|case|check|column|comment|constraint|createdb|createuser|cycle|database|default|deferrable|deferred|diagnostics|distinct|domain|each|else|elseif|elsif|encrypted|except|exception|for|foreign|from|from|full|function|get|group|having|if|immediate|immutable|in|increment|initially|increment|index|inherits|inner|input|intersect|into|invoker|is|join|key|language|left|like|limit|local|loop|match|maxvalue|minvalue|natural|nextval|no|nocreatedb|nocreateuser|not|null|of|offset|oids|on|only|operator|or|order|outer|owner|partial|password|perform|plpgsql|primary|record|references|replace|restrict|return|returns|right|row|rule|schema|security|sequence|session|sql|stable|statistics|table|temp|temporary|then|time|to|transaction|trigger|type|unencrypted|union|unique|user|using|valid|value|values|view|volatile|when|where|with|without|zone)\b/gi, output : '$1' }, // reserved words + { input : /\b(bigint|bigserial|bit|boolean|box|bytea|char|character|cidr|circle|date|decimal|double|float4|float8|inet|int2|int4|int8|integer|interval|line|lseg|macaddr|money|numeric|oid|path|point|polygon|precision|real|refcursor|serial|serial4|serial8|smallint|text|timestamp|varbit|varchar)\b/gi, output : '$1' }, // types + { input : /\b(abort|alter|analyze|begin|checkpoint|close|cluster|comment|commit|copy|create|deallocate|declare|delete|drop|end|execute|explain|fetch|grant|insert|listen|load|lock|move|notify|prepare|reindex|reset|restart|revoke|rollback|select|set|show|start|truncate|unlisten|update)\b/gi, output : '$1' }, // commands + { input : /([^:]|^)\-\-(.*?)(--$2$3' } // comments // +] + +Language.snippets = [ + { input : 'select', output : 'select $0 from where ' } +] + +Language.complete = [ + { input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [] + + + diff --git a/htdocs/includes/codepress/languages/text.css b/htdocs/includes/codepress/languages/text.css new file mode 100644 index 00000000000..474fe60c097 --- /dev/null +++ b/htdocs/includes/codepress/languages/text.css @@ -0,0 +1,5 @@ +/* + * CodePress color styles for Text syntax highlighting + */ + +/* do nothing as expected */ diff --git a/htdocs/includes/codepress/languages/text.js b/htdocs/includes/codepress/languages/text.js new file mode 100644 index 00000000000..6534aafa588 --- /dev/null +++ b/htdocs/includes/codepress/languages/text.js @@ -0,0 +1,9 @@ +/* + * CodePress regular expressions for Text syntax highlighting + */ + +// plain text +Language.syntax = [] +Language.snippets = [] +Language.complete = [] +Language.shortcuts = [] diff --git a/htdocs/includes/codepress/languages/vbscript.css b/htdocs/includes/codepress/languages/vbscript.css new file mode 100644 index 00000000000..e1465e90fea --- /dev/null +++ b/htdocs/includes/codepress/languages/vbscript.css @@ -0,0 +1,71 @@ +/* + * CodePress color styles for ASP-VB syntax highlighting + * By Martin D. Kirk + */ + +/* tags */ +b { + color:#000080; +} +/* comments */ +big, big b, big em, big ins, big s, strong i, strong i b, strong i s, strong i u, strong i a, strong i a u, strong i s u { + color:gray; + font-weight:normal; +} +/* ASP comments */ +strong dfn, strong dfn a,strong dfn var, strong dfn a u, strong dfn u{ + color:gray; + font-weight:normal; +} + /* attributes */ +s, s b, span s u, span s cite, strong span s { + color:#5656fa ; + font-weight:normal; +} + /* strings */ +strong s,strong s b, strong s u, strong s cite { + color:#009900; + font-weight:normal; +} +strong ins{ + color:#000000; + font-weight:bold; +} + /* Syntax */ +strong a, strong a u { + color:#0000FF; + font-weight:; +} + /* Native Keywords */ +strong u { + color:#990099; + font-weight:bold; +} +/* Numbers */ +strong var{ + color:#FF0000; +} +/* ASP Language */ +span{ + color:#990000; + font-weight:bold; +} +strong i,strong a i, strong u i { + color:#009999; +} +/* style */ +em { + color:#800080; + font-style:normal; +} + /* script */ +ins { + color:#800000; + font-weight:bold; +} + +/* */ +cite, s cite { + color:red; + font-weight:bold; +} \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/vbscript.js b/htdocs/includes/codepress/languages/vbscript.js new file mode 100644 index 00000000000..21e78dd887c --- /dev/null +++ b/htdocs/includes/codepress/languages/vbscript.js @@ -0,0 +1,117 @@ +/* + * CodePress regular expressions for ASP-vbscript syntax highlighting + */ + +// ASP VBScript +Language.syntax = [ +// all tags + { input : /(<[^!%|!%@]*?>)/g, output : '$1' }, +// style tags + { input : /(<style.*?>)(.*?)(<\/style>)/g, output : '$1$2$3' }, +// script tags + { input : /(<script.*?>)(.*?)(<\/script>)/g, output : '$1$2$3' }, +// strings "" and attributes + { input : /\"(.*?)(\"|
|<\/P>)/g, output : '"$1$2' }, +// ASP Comment + { input : /\'(.*?)(\'|
|<\/P>)/g, output : '\'$1$2'}, +// <%.* + { input : /(<%)/g, output : '$1' }, +// .*%> + { input : /(%>)/g, output : '$1' }, +// <%@...%> + { input : /(<%@)(.+?)(%>)/gi, output : '$1$2$3' }, +//Numbers + { input : /\b([\d]+)\b/g, output : '$1' }, +// Reserved Words 1 (Blue) + { input : /\b(And|As|ByRef|ByVal|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Exit|False|For|Function)\b/gi, output : '$1' }, + { input : /\b(Get|GoTo|If|Imp|In|Is|Let|Loop|Me|Mod|Enum|New|Next|Not|Nothing|Null|On|Option|Or|Private|Public|ReDim|Rem)\b/gi, output : '$1' }, + { input : /\b(Resume|Select|Set|Stop|Sub|Then|To|True|Until|Wend|While|With|Xor|Execute|Randomize|Erase|ExecuteGlobal|Explicit|step)\b/gi, output : '$1' }, +// Reserved Words 2 (Purple) + { input : /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveCommand|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk)\b/gi, output : '$1' }, + { input : /\b(AppendToLog|Application|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|Byte)\b/gi, output : '$1' }, + { input : /\b(CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear)\b/gi, output : '$1' }, + { input : /\b(ClientCertificate|CLng|Clone|Close|CodePage|CommandText|CommandType|CommandTimeout|CommitTrans|CompareBookmarks|ConnectionString|ConnectionTimeout)\b/gi, output : '$1' }, + { input : /\b(Contents|ContentType|Cookies|Cos|CreateObject|CreateParameter|CSng|CStr|CursorLocation|CursorType|DataMember|DataSource|Date|DateAdd|DateDiff)\b/gi, output : '$1' }, + { input : /\b(DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Double|EditMode|Eof|EOF|err|Error)\b/gi, output : '$1' }, + { input : /\b(Exp|Expires|ExpiresAbsolute|Filter|Find|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent)\b/gi, output : '$1' }, + { input : /\b(GetChunk|GetLastError|GetRows|GetString|Global|HelpContext|HelpFile|Hex|Hour|HTMLEncode|IgnoreCase|Index|InStr|InStrRev)\b/gi, output : '$1' }, + { input : /\b(Int|Integer|IsArray|IsClientConnected|IsDate|IsolationLevel|Join|LBound|LCase|LCID|Left|Len|Lock|LockType|Log|Long|LTrim)\b/gi, output : '$1' }, + { input : /\b(MapPath|MarshalOptions|MaxRecords|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|Name|NextRecordset)\b/gi, output : '$1' }, + { input : /\b(Now|Number|NumericScale|ObjectContext|Oct|Open|OpenSchema|OriginalValue|PageCount|PageSize|Pattern|PICS|Precision|Prepared|Property)\b/gi, output : '$1' }, + { input : /\b(Provider|QueryString|RecordCount|Redirect|RegExp|Remove|RemoveAll|Replace|Requery|Request|Response|Resync|Right|Rnd)\b/gi, output : '$1' }, + { input : /\b(RollbackTrans|RTrim|Save|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|SessionID|SetAbort|SetComplete|Sgn)\b/gi, output : '$1' }, + { input : /\b(Sin|Size|Sort|Source|Space|Split|Sqr|State|StaticObjects|Status|StayInSync|StrComp|String|StrReverse|Supports|Tan|Time)\b/gi, output : '$1' }, + { input : /\b(Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Transfer|Trim|Type|Type|UBound|UCase|UnderlyingValue|UnLock|Update|UpdateBatch)\b/gi, output : '$1' }, + { input : /\b(URLEncode|Value|Value|Version|Weekday|WeekdayName|Write|Year)\b/gi, output : '$1' }, +// Reserved Words 3 (Turquis) + { input : /\b(vbBlack|vbRed|vbGreen|vbYellow|vbBlue|vbMagenta|vbCyan|vbWhite|vbBinaryCompare|vbTextCompare)\b/gi, output : '$1' }, + { input : /\b(vbSunday|vbMonday|vbTuesday|vbWednesday|vbThursday|vbFriday|vbSaturday|vbUseSystemDayOfWeek)\b/gi, output : '$1' }, + { input : /\b(vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbGeneralDate|vbLongDate|vbShortDate|vbLongTime|vbShortTime)\b/gi, output : '$1' }, + { input : /\b(vbObjectError|vbCr|VbCrLf|vbFormFeed|vbLf|vbNewLine|vbNullChar|vbNullString|vbTab|vbVerticalTab|vbUseDefault|vbTrue)\b/gi, output : '$1' }, + { input : /\b(vbFalse|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant)\b/gi, output : '$1' }, + { input : /\b(vbDataObject|vbDecimal|vbByte|vbArray)\b/gi, output : '$1' }, +// html comments + { input : /(<!--.*?-->.)/g, output : '$1' } +] + +Language.Functions = [ + // Output at index 0, must be the desired tagname surrounding a $1 + // Name is the index from the regex that marks the functionname + {input : /(function|sub)([ ]*?)(\w+)([ ]*?\()/gi , output : '$1', name : '$3'} +] + +Language.snippets = [ +//Conditional + { input : 'if', output : 'If $0 Then\n\t\nEnd If' }, + { input : 'ifelse', output : 'If $0 Then\n\t\n\nElse\n\t\nEnd If' }, + { input : 'case', output : 'Select Case $0\n\tCase ?\n\tCase Else\nEnd Select'}, +//Response + { input : 'rw', output : 'Response.Write( $0 )' }, + { input : 'resc', output : 'Response.Cookies( $0 )' }, + { input : 'resb', output : 'Response.Buffer'}, + { input : 'resflu', output : 'Response.Flush()'}, + { input : 'resend', output : 'Response.End'}, +//Request + { input : 'reqc', output : 'Request.Cookies( $0 )' }, + { input : 'rq', output : 'Request.Querystring("$0")' }, + { input : 'rf', output : 'Request.Form("$0")' }, +//FSO + { input : 'fso', output : 'Set fso = Server.CreateObject("Scripting.FileSystemObject")\n$0' }, + { input : 'setfo', output : 'Set fo = fso.getFolder($0)' }, + { input : 'setfi', output : 'Set fi = fso.getFile($0)' }, + { input : 'twr', output : 'Set f = fso.CreateTextFile($0,true)\'overwrite\nf.WriteLine()\nf.Close'}, + { input : 'tre', output : 'Set f = fso.OpenTextFile($0, 1)\nf.ReadAll\nf.Close'}, +//Server + { input : 'mapp', output : 'Server.Mappath($0)' }, +//Loops + { input : 'foreach', output : 'For Each $0 in ?\n\t\nNext' }, + { input : 'for', output : 'For $0 to ? step ?\n\t\nNext' }, + { input : 'do', output : 'Do While($0)\n\t\nLoop' }, + { input : 'untilrs', output : 'do until rs.eof\n\t\nrs.movenext\nloop' }, +//ADO + { input : 'adorec', output : 'Set rs = Server.CreateObject("ADODB.Recordset")' }, + { input : 'adocon', output : 'Set Conn = Server.CreateObject("ADODB.Connection")' }, + { input : 'adostr', output : 'Set oStr = Server.CreateObject("ADODB.Stream")' }, +//Http Request + { input : 'xmlhttp', output : 'Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")\nxmlHttp.open("GET", $0, false)\nxmlHttp.send()\n?=xmlHttp.responseText' }, + { input : 'xmldoc', output : 'Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")\nxmldoc.async=false\nxmldoc.load(request)'}, +//Functions + { input : 'func', output : 'Function $0()\n\t\n\nEnd Function'}, + { input : 'sub', output : 'Sub $0()\n\t\nEnd Sub'} + +] + +Language.complete = [ + //{ input : '\'', output : '\'$0\'' }, + { input : '"', output : '"$0"' }, + { input : '(', output : '\($0\)' }, + { input : '[', output : '\[$0\]' }, + { input : '{', output : '{\n\t$0\n}' } +] + +Language.shortcuts = [ + { input : '[space]', output : ' ' }, + { input : '[enter]', output : '
' } , + { input : '[j]', output : 'testing' }, + { input : '[7]', output : '&' } +] \ No newline at end of file diff --git a/htdocs/includes/codepress/languages/xsl.css b/htdocs/includes/codepress/languages/xsl.css new file mode 100644 index 00000000000..385eaaba1f9 --- /dev/null +++ b/htdocs/includes/codepress/languages/xsl.css @@ -0,0 +1,15 @@ +/* + * CodePress color styles for HTML syntax highlighting + * By RJ Bruneel + */ + +b {color:#000080;} /* tags */ +ins, ins b, ins s, ins em {color:gray;} /* comments */ +s, s b {color:#7777e4;} /* attribute values */ +a {color:#E67300;} /* links */ +u {color:#CC66CC;} /* forms */ +big {color:#db0000;} /* images */ +em, em b {color:#800080;} /* style */ +strong {color:#800000;} /* script */ +tt i {color:darkblue;font-weight:bold;} /* script reserved words */ +xsl {color:green;} /* xsl */ diff --git a/htdocs/includes/codepress/languages/xsl.js b/htdocs/includes/codepress/languages/xsl.js new file mode 100644 index 00000000000..e93932a6325 --- /dev/null +++ b/htdocs/includes/codepress/languages/xsl.js @@ -0,0 +1,103 @@ +/* + * CodePress regular expressions for XSL syntax highlighting + * By RJ Bruneel + */ + +Language.syntax = [ // XSL + { + input : /(<[^!]*?>)/g, + output : '$1' // all tags + },{ + input : /(<a.*?>|<\/a>)/g, + output : '$1' // links + },{ + input : /(<img .*?>)/g, + output : '$1' // images + },{ + input : /(<\/?(button|textarea|form|input|select|option|label).*?>)/g, + output : '$1' // forms + },{ + input : /(<style.*?>)(.*?)(<\/style>)/g, + output : '$1$2$3' // style tags + },{ + input : /(<script.*?>)(.*?)(<\/script>)/g, + output : '$1$2$3' // script tags + },{ + input : /(<xsl.*?>|<\/xsl.*?>)/g, + output : '$1' // xsl + },{ + input : /=(".*?")/g, + output : '=$1' // atributes double quote + },{ + input : /=('.*?')/g, + output : '=$1' // atributes single quote + },{ + input : /(<!--.*?-->.)/g, + output : '$1' // comments + },{ + input : /\b(alert|window|document|break|continue|do|for|new|this|void|case|default|else|function|return|typeof|while|if|label|switch|var|with|catch|boolean|int|try|false|throws|null|true|goto)\b/g, + output : '$1' // script reserved words + } +]; + +Language.snippets = [ + {input : 'aref', output : '' }, + {input : 'h1', output : '

$0

' }, + {input : 'h2', output : '

$0

' }, + {input : 'h3', output : '

$0

' }, + {input : 'h4', output : '

$0

' }, + {input : 'h5', output : '
$0
' }, + {input : 'h6', output : '
$0
' }, + {input : 'html', output : '\n\t$0\n' }, + {input : 'head', output : '\n\t\n\t$0\n\t\n' }, + {input : 'img', output : '' }, + {input : 'input', output : '' }, + {input : 'label', output : '' }, + {input : 'legend', output : '\n\t$0\n' }, + {input : 'link', output : '' }, + {input : 'base', output : '' }, + {input : 'body', output : '\n\t$0\n' }, + {input : 'css', output : '' }, + {input : 'div', output : '
\n\t$0\n
' }, + {input : 'divid', output : '
\n\t\n
' }, + {input : 'dl', output : '
\n\t
\n\t\t$0\n\t
\n\t
\n
' }, + {input : 'fieldset', output : '
\n\t$0\n
' }, + {input : 'form', output : '
\n\t\n
' }, + {input : 'meta', output : '' }, + {input : 'p', output : '

$0

' }, + {input : 'b', output : '$0' }, + {input : 'li', output : '
  • $0
  • ' }, + {input : 'ul', output : '
      $0
    ' }, + {input : 'ol', output : '
      $0
    ' }, + {input : 'strong', output : '$0' }, + {input : 'br', output : '
    ' }, + {input : 'script', output : '' }, + {input : 'scriptsrc', output : '' }, + {input : 'span', output : '$0' }, + {input : 'table', output : '\n\t\n\t\n
    ' }, + {input : 'style', output : '' }, + {input : 'xsl:stylesheet', output : '' }, + {input : 'xsl:template', output : '$0' }, + {input : 'xsl:for-each', output : '' }, + {input : 'xsl:choose', output : '$0<\xsl:choose>' }, + {input : 'xsl:param', output : '' }, + {input : 'xsl:variable', output : '' }, + {input : 'xsl:if', output : '' }, + {input : 'xsl:when', output : '' }, + {input : 'xsl:otherwise', output : '$0' }, + {input : 'xsl:attribute', output : '' }, + {input : 'xsl:value-of', output : '' }, + {input : 'xsl:with-param', output : '' }, + {input : 'xsl:call-template', output : '' } + +]; + +Language.complete = [ // Auto complete only for 1 character + {input : '\'',output : '\'$0\'' }, + {input : '"', output : '"$0"' }, + {input : '(', output : '\($0\)' }, + {input : '[', output : '\[$0\]' }, + {input : '{', output : '{\n\t$0\n}' } +]; + +Language.shortcuts = []; \ No newline at end of file diff --git a/htdocs/includes/codepress/license.txt b/htdocs/includes/codepress/license.txt new file mode 100644 index 00000000000..e80ac68d8fa --- /dev/null +++ b/htdocs/includes/codepress/license.txt @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS From 379a5b9e1694e8a5fee2153cd6641d6f82f7ce5a Mon Sep 17 00:00:00 2001 From: florian HENRY Date: Wed, 12 Jul 2017 12:35:30 +0200 Subject: [PATCH 305/515] fix : SQL migration in capital letters --- .../install/mysql/migration/5.0.0-6.0.0.sql | 63 ++++++++++--------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 0137353f714..f6af95892d8 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -74,7 +74,7 @@ ALTER TABLE llx_holiday ADD COLUMN ref varchar(30) NULL; ALTER TABLE llx_holiday ADD COLUMN ref_ext varchar(255); -create table llx_notify_def_object +CREATE TABLE llx_notify_def_object ( id integer AUTO_INCREMENT PRIMARY KEY, entity integer DEFAULT 1 NOT NULL, -- multi company id @@ -129,14 +129,15 @@ ALTER TABLE llx_bank_account ADD COLUMN extraparams varchar(255); -- VMYSQL4.1 ALTER TABLE llx_adherent MODIFY COLUMN country integer DEFAULT NULL; -- VPGSQL8.2 ALTER TABLE llx_adherent MODIFY COLUMN country integer USING country::integer; -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('PRODUCT_CREATE','Product or service created','Executed when a product or sevice is created','product',30); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('PRODUCT_MODIFY','Product or service modified','Executed when a product or sevice is modified','product',30); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('PRODUCT_DELETE','Product or service deleted','Executed when a product or sevice is deleted','product',30); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expense_report',201); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expense_report',202); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expense_report',203); -insert into llx_c_action_trigger (code,label,description,elementtype,rang) values ('EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expense_report',204); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expense_report',201); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('EXPENSE_REPORT_CREATE','Expense report created','Executed when an expense report is created','expense_report',201); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('EXPENSE_REPORT_VALIDATE','Expense report validated','Executed when an expense report is validated','expense_report',202); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('EXPENSE_REPORT_APPROVE','Expense report approved','Executed when an expense report is approved','expense_report',203); +INSERT INTO llx_c_action_trigger (code,label,description,elementtype,rang) VALUES ('EXPENSE_REPORT_PAYED','Expense report billed','Executed when an expense report is set as billed','expense_report',204); ALTER TABLE llx_c_email_templates ADD COLUMN content_lines text; @@ -196,7 +197,7 @@ CREATE TABLE llx_product_attribute_combination ); -ALTER TABLE llx_bank_account drop foreign key bank_fk_accountancy_journal; +ALTER TABLE llx_bank_account DROP FOREIGN KEY bank_fk_accountancy_journal; -- Fix missing entity column after init demo ALTER TABLE llx_accounting_journal ADD COLUMN entity integer DEFAULT 1; @@ -209,18 +210,18 @@ INSERT INTO llx_accounting_journal (rowid, code, label, nature, active) VALUES ( INSERT INTO llx_accounting_journal (rowid, code, label, nature, active) VALUES (5,'AN', 'Has new journal', 9, 1); INSERT INTO llx_accounting_journal (rowid, code, label, nature, active) VALUES (6,'ER', 'Expense report journal', 5, 1); -- Fix old entries -UPDATE llx_accounting_journal SET nature = 1 where code = 'OD' and nature = 0; -UPDATE llx_accounting_journal SET nature = 2 where code = 'VT' and nature = 1; -UPDATE llx_accounting_journal SET nature = 3 where code = 'AC' and nature = 2; -UPDATE llx_accounting_journal SET nature = 4 where (code = 'BK' or code = 'BQ') and nature = 3; +UPDATE llx_accounting_journal SET nature = 1 WHERE code = 'OD' AND nature = 0; +UPDATE llx_accounting_journal SET nature = 2 WHERE code = 'VT' AND nature = 1; +UPDATE llx_accounting_journal SET nature = 3 WHERE code = 'AC' AND nature = 2; +UPDATE llx_accounting_journal SET nature = 4 WHERE (code = 'BK' OR code = 'BQ') AND nature = 3; -UPDATE llx_bank_account as ba set accountancy_journal = 'BQ' where accountancy_journal = 'BK'; -UPDATE llx_bank_account as ba set accountancy_journal = 'OD' where accountancy_journal IS NULL; +UPDATE llx_bank_account SET accountancy_journal = 'BQ' WHERE accountancy_journal = 'BK'; +UPDATE llx_bank_account SET accountancy_journal = 'OD' WHERE accountancy_journal IS NULL; ALTER TABLE llx_bank_account ADD COLUMN fk_accountancy_journal integer; ALTER TABLE llx_bank_account ADD INDEX idx_fk_accountancy_journal (fk_accountancy_journal); -UPDATE llx_bank_account as ba set fk_accountancy_journal = (SELECT rowid FROM llx_accounting_journal as aj where ba.accountancy_journal = aj.code) where accountancy_journal not in ('1', '2', '3', '4', '5', '6', '5', '8', '9', '10', '11', '12', '13', '14', '15'); +UPDATE llx_bank_account AS ba SET fk_accountancy_journal = (SELECT rowid FROM llx_accounting_journal AS aj WHERE ba.accountancy_journal = aj.code) WHERE accountancy_journal NOT IN ('1', '2', '3', '4', '5', '6', '5', '8', '9', '10', '11', '12', '13', '14', '15'); ALTER TABLE llx_bank_account ADD CONSTRAINT fk_bank_account_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid); --Update general ledger for FEC format & harmonization @@ -233,7 +234,7 @@ ALTER TABLE llx_accounting_bookkeeping ADD COLUMN subledger_account varchar(32); ALTER TABLE llx_accounting_bookkeeping CHANGE COLUMN thirdparty_label subledger_label varchar(255); -- If field was already created, rename it ALTER TABLE llx_accounting_bookkeeping ADD COLUMN subledger_label varchar(255) AFTER subledger_account; -- If field dod not exists yet -update llx_accounting_bookkeeping set subledger_account = numero_compte where subledger_account IS NULL; +UPDATE llx_accounting_bookkeeping SET subledger_account = numero_compte WHERE subledger_account IS NULL; ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN label_compte varchar(255); ALTER TABLE llx_accounting_bookkeeping MODIFY COLUMN code_journal varchar(32); @@ -358,9 +359,9 @@ ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_tx d ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price double(24,8) DEFAULT NULL; ALTER TABLE llx_product_fournisseur_price_log ADD COLUMN multicurrency_price_ttc double(24,8) DEFAULT NULL; -UPDATE llx_contrat set ref = rowid where ref is null or ref = ''; +UPDATE llx_contrat SET ref = rowid WHERE ref IS NULL OR ref = ''; -create table llx_payment_various +CREATE TABLE llx_payment_various ( rowid integer AUTO_INCREMENT PRIMARY KEY, tms timestamp, @@ -381,7 +382,7 @@ create table llx_payment_various )ENGINE=innodb; -create table llx_default_values +CREATE TABLE llx_default_values ( rowid integer AUTO_INCREMENT PRIMARY KEY, entity integer DEFAULT 1 NOT NULL, -- multi company id @@ -441,27 +442,27 @@ ALTER TABLE llx_inventorydet ADD INDEX idx_inventorydet_tms (tms); ALTER TABLE llx_inventorydet ADD INDEX idx_inventorydet_datec (datec); ALTER TABLE llx_inventorydet ADD INDEX idx_inventorydet_fk_inventory (fk_inventory); -insert into llx_c_tva(fk_pays,taux,code,recuperableonly,note,active) values (1, '8.5', '85', '0','VAT standard rate (DOM sauf Guyane et Saint-Martin)',0); -insert into llx_c_tva(fk_pays,taux,code,recuperableonly,note,active) values (1, '8.5', '85NPR', '1','VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0); -insert into llx_c_tva(fk_pays,taux,code,recuperableonly,localtax1,localtax1_type,note,active) values (1, '8.5', '85NPROM', '1', 2, 3, 'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0); -insert into llx_c_tva(fk_pays,taux,code,recuperableonly,localtax1,localtax1_type,localtax2,localtax2_type,note,active) values (1, '8.5', '85NPROMOMR', '1', 2, 3, 2.5, 3, 'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0); +INSERT INTO llx_c_tva(fk_pays,taux,code,recuperableonly,note,active) VALUES (1, '8.5', '85', '0','VAT standard rate (DOM sauf Guyane et Saint-Martin)',0); +INSERT INTO llx_c_tva(fk_pays,taux,code,recuperableonly,note,active) VALUES (1, '8.5', '85NPR', '1','VAT standard rate (DOM sauf Guyane et Saint-Martin), non perçu par le vendeur mais récupérable par acheteur',0); +INSERT INTO llx_c_tva(fk_pays,taux,code,recuperableonly,localtax1,localtax1_type,note,active) VALUES (1, '8.5', '85NPROM', '1', 2, 3, 'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer',0); +INSERT INTO llx_c_tva(fk_pays,taux,code,recuperableonly,localtax1,localtax1_type,localtax2,localtax2_type,note,active) VALUES (1, '8.5', '85NPROMOMR', '1', 2, 3, 2.5, 3, 'VAT standard rate (DOM sauf Guyane et Saint-Martin), NPR, Octroi de Mer et Octroi de Mer Regional',0); ALTER TABLE llx_events MODIFY COLUMN ip varchar(250); ALTER TABLE llx_facture ADD COLUMN fk_fac_rec_source integer; -DELETE from llx_c_actioncomm where code in ('AC_PROP','AC_COM','AC_FAC','AC_SHIP','AC_SUP_ORD','AC_SUP_INV') AND id NOT IN (SELECT DISTINCT fk_action FROM llx_actioncomm); +DELETE FROM llx_c_actioncomm WHERE code IN ('AC_PROP','AC_COM','AC_FAC','AC_SHIP','AC_SUP_ORD','AC_SUP_INV') AND id NOT IN (SELECT DISTINCT fk_action FROM llx_actioncomm); -- Fix: delete orphelin category. -delete from llx_categorie_product where fk_categorie not in (select rowid from llx_categorie where type = 0); -delete from llx_categorie_societe where fk_categorie not in (select rowid from llx_categorie where type in (1, 2)); -delete from llx_categorie_member where fk_categorie not in (select rowid from llx_categorie where type = 3); -delete from llx_categorie_contact where fk_categorie not in (select rowid from llx_categorie where type = 4); -delete from llx_categorie_project where fk_categorie not in (select rowid from llx_categorie where type = 5); +DELETE FROM llx_categorie_product WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie WHERE type = 0); +DELETE FROM llx_categorie_societe WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie WHERE type IN (1, 2)); +DELETE FROM llx_categorie_member WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie WHERE type = 3); +DELETE FROM llx_categorie_contact WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie WHERE type = 4); +DELETE FROM llx_categorie_project WHERE fk_categorie NOT IN (SELECT rowid FROM llx_categorie WHERE type = 5); ALTER TABLE llx_inventory ADD COLUMN ref varchar(48); -create table llx_loan_schedule +CREATE TABLE llx_loan_schedule ( rowid integer AUTO_INCREMENT PRIMARY KEY, fk_loan integer, From 33ceb22b8b814aca7a43616bb801f29692bf0f98 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Wed, 12 Jul 2017 13:25:18 +0200 Subject: [PATCH 306/515] Fix error management into modulebuilder --- htdocs/core/class/commonobject.class.php | 357 +++++++++++------ htdocs/core/lib/modulebuilder.lib.php | 114 +++--- htdocs/langs/en_US/main.lang | 1 + .../template/class/myobject.class.php | 364 +----------------- .../modulebuilder/template/myobject_card.php | 84 ++-- .../modulebuilder/template/myobject_list.php | 46 +-- 6 files changed, 372 insertions(+), 594 deletions(-) diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php index 96de26be956..7917234158e 100644 --- a/htdocs/core/class/commonobject.class.php +++ b/htdocs/core/class/commonobject.class.php @@ -599,7 +599,7 @@ abstract class CommonObject } $datecreate = dol_now(); - + // Socpeople must have already been added by some a trigger, then we have to check it to avoid DB_ERROR_RECORD_ALREADY_EXISTS error $TListeContacts=$this->liste_contact(-1, $source); $already_added=false; @@ -611,11 +611,11 @@ abstract class CommonObject } } } - + if(!$already_added) { - + $this->db->begin(); - + // Insertion dans la base $sql = "INSERT INTO ".MAIN_DB_PREFIX."element_contact"; $sql.= " (element_id, fk_socpeople, datecreate, statut, fk_c_type_contact) "; @@ -623,7 +623,7 @@ abstract class CommonObject $sql.= "'".$this->db->idate($datecreate)."'"; $sql.= ", 4, ". $id_type_contact; $sql.= ")"; - + $resql=$this->db->query($sql); if ($resql) { @@ -636,7 +636,7 @@ abstract class CommonObject return -1; } } - + $this->db->commit(); return 1; } @@ -4726,6 +4726,9 @@ abstract class CommonObject return $buyPrice; } + + + /** * Function test if type is date * @@ -4734,7 +4737,7 @@ abstract class CommonObject */ protected function isDate($info) { - if(isset($info['type']) && $info['type']=='date') return true; + if(isset($info['type']) && ($info['type']=='date' || $info['type']=='datetime' || $info['type']=='timestamp')) return true; else return false; } @@ -4880,40 +4883,6 @@ abstract class CommonObject return $query; } - /** - * Create object into database - * - * @param User $user User that creates - * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, Id of created object if OK - */ - public function createCommon(User $user, $notrigger = false) - { - - $fields = array_merge(array('datec'=>$this->db->idate(dol_now())), $this->set_save_query()); - - foreach ($fields as $k => $v) { - - $keys[] = $k; - $values[] = $this->quote($v); - - } - $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.' - ( '.implode( ",", $keys ).' ) - VALUES ( '.implode( ",", $values ).' ) '; - $res = $this->db->query( $sql ); - if($res===false) { - - return false; - } - - // TODO Add triggers - - return true; - - } - /** * Function to load data into current object this * @@ -4921,39 +4890,39 @@ abstract class CommonObject */ private function set_vars_by_db(&$obj) { - foreach ($this->fields as $field => $info) - { - if($this->isDate($info)) - { - if(empty($obj->{$field}) || $obj->{$field} === '0000-00-00 00:00:00' || $obj->{$field} === '1000-01-01 00:00:00') $this->{$field} = 0; - else $this->{$field} = strtotime($obj->{$field}); - } - elseif($this->isArray($info)) - { - $this->{$field} = @unserialize($obj->{$field}); - // Hack for data not in UTF8 - if($this->{$field } === FALSE) @unserialize(utf8_decode($obj->{$field})); - } - elseif($this->isInt($info)) - { - $this->{$field} = (int) $obj->{$field}; - } - elseif($this->isFloat($info)) - { - $this->{$field} = (double) $obj->{$field}; - } - elseif($this->isNull($info)) - { - $val = $obj->{$field}; - // zero is not null - $this->{$field} = (is_null($val) || (empty($val) && $val!==0 && $val!=='0') ? null : $val); - } - else - { - $this->{$field} = $obj->{$field}; - } + foreach ($this->fields as $field => $info) + { + if($this->isDate($info)) + { + if(empty($obj->{$field}) || $obj->{$field} === '0000-00-00 00:00:00' || $obj->{$field} === '1000-01-01 00:00:00') $this->{$field} = 0; + else $this->{$field} = strtotime($obj->{$field}); + } + elseif($this->isArray($info)) + { + $this->{$field} = @unserialize($obj->{$field}); + // Hack for data not in UTF8 + if($this->{$field } === FALSE) @unserialize(utf8_decode($obj->{$field})); + } + elseif($this->isInt($info)) + { + $this->{$field} = (int) $obj->{$field}; + } + elseif($this->isFloat($info)) + { + $this->{$field} = (double) $obj->{$field}; + } + elseif($this->isNull($info)) + { + $val = $obj->{$field}; + // zero is not null + $this->{$field} = (is_null($val) || (empty($val) && $val!==0 && $val!=='0') ? null : $val); + } + else + { + $this->{$field} = $obj->{$field}; + } - } + } } /** @@ -4963,21 +4932,134 @@ abstract class CommonObject */ private function get_field_list() { - $keys = array_keys($this->fields); - return implode(',', $keys); + $keys = array_keys($this->fields); + return implode(',', $keys); + } + + /** + * Add quote to field value if necessary + * + * @param string|int $value value to protect + * @return string|int + */ + protected function quote($value) { + + if(is_null($value)) return 'NULL'; + else if(is_numeric($value)) return $value; + else return "'".$this->db->escape( $value )."'"; + + } + + + /** + * Create object into database + * + * @param User $user User that creates + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, Id of created object if OK + */ + public function createCommon(User $user, $notrigger = false) + { + $error = 0; + + $fields = array_merge(array('datec'=>$this->db->idate(dol_now())), $this->set_save_query()); + + foreach ($fields as $k => $v) { + $keys[] = $k; + $values[] = $this->quote($v); + } + + $this->db->begin(); + + if (! $error) + { + $sql = 'INSERT INTO '.MAIN_DB_PREFIX.$this->table_element.' + ( '.implode( ",", $keys ).' ) + VALUES ( '.implode( ",", $values ).' ) '; + $res = $this->db->query( $sql ); + if ($res===false) { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + + if (! $error && ! $notrigger) { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); + + if (!$notrigger) { + // Call triggers + $result=$this->call_trigger(strtoupper(get_class(self)).'_CREATE',$user); + if ($result < 0) { $error++; } + // End call triggers + } + } + + // Commit or rollback + if ($error) { + $this->db->rollback(); + return -1; + } else { + $this->db->commit(); + return $this->id; + } + } + + /** + * Load an object from its id and create a new one in database + * + * @param User $user User that creates + * @param int $fromid Id of object to clone + * @return int New id of clone + */ + public function createFromCloneCommon(User $user, $fromid) + { + global $user; + + $error = 0; + + dol_syslog(__METHOD__, LOG_DEBUG); + + $object = new self($this->db); + + $this->db->begin(); + + // Load source object + $object->fetchCommon($fromid); + // Reset object + $object->id = 0; + + // Clear fields + // ... + + // Create clone + $result = $object->createCommon($user); + + // Other options + if ($result < 0) { + $error ++; + $this->errors = $object->errors; + dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); + } + + // End + if (!$error) { + $this->db->commit(); + return $object->id; + } else { + $this->db->rollback(); + return -1; + } } /** * Load object in memory from the database * - * @param int $id Id object - * @param string $ref Ref - * - * @return int <0 if KO, 0 if not found, >0 if OK + * @param int $id Id object + * @param string $ref Ref + * @return int <0 if KO, 0 if not found, >0 if OK */ public function fetchCommon($id, $ref = null) { - if (empty($id) && empty($ref)) return false; $sql = 'SELECT '.$this->get_field_list().', datec, tms'; @@ -4991,13 +5073,20 @@ abstract class CommonObject { if ($obj = $this->db->fetch_object($res)) { - $this->id = $id; - $this->set_vars_by_db($obj); + if ($obj) + { + $this->id = $id; + $this->set_vars_by_db($obj); - $this->datec = $this->db->idate($obj->datec); - $this->tms = $this->db->idate($obj->tms); + $this->datec = $this->db->idate($obj->datec); + $this->tms = $this->db->idate($obj->tms); - return $this->id; + return $this->id; + } + else + { + return 0; + } } else { @@ -5019,15 +5108,15 @@ abstract class CommonObject * * @param User $user User that modifies * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, >0 if OK + * @return int <0 if KO, >0 if OK */ public function updateCommon(User $user, $notrigger = false) { + $error = 0; + $fields = $this->set_save_query(); foreach ($fields as $k => $v) { - if (is_array($key)){ $i=array_search($k, $key); if ( $i !== false) { @@ -5040,57 +5129,93 @@ abstract class CommonObject continue; } } - $tmp[] = $k.'='.$this->quote($v); } $sql = 'UPDATE '.MAIN_DB_PREFIX.$this->table_element.' SET '.implode( ',', $tmp ).' WHERE rowid='.$this->id ; - $res = $this->db->query( $sql ); - if($res===false) { - //error - return false; + $this->db->begin(); + + if (! $error) + { + $res = $this->db->query($sql); + if ($res===false) + { + $error++; + $this->errors[] = $this->db->lasterror(); + } } - // TODO Add triggers + if (! $error && ! $notrigger) { + // Call triggers + $result=$this->call_trigger(strtoupper(get_class(self)).'_MODIFY',$user); + if ($result < 0) { $error++; } //Do also here what you must do to rollback action if trigger fail + // End call triggers + } - return true; + // Commit or rollback + if ($error) { + $this->db->rollback(); + return -1; + } else { + $this->db->commit(); + return $this->id; + } } /** * Delete object in database * - * @param User $user User that deletes - * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, >0 if OK + * @param User $user User that deletes + * @param bool $notrigger false=launch triggers after, true=disable triggers + * @return int <0 if KO, >0 if OK */ public function deleteCommon(User $user, $notrigger = false) { - $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.' WHERE rowid='.$this->id; + $error=0; - $res = $this->db->query( $sql ); - if($res===false) { - return false; + $this->db->begin(); + + if (! $error) { + if (! $notrigger) { + // Call triggers + $result=$this->call_trigger(strtoupper(get_class(self)).'_DELETE', $user); + if ($result < 0) { $error++; } // Do also here what you must do to rollback action if trigger fail + // End call triggers + } + } + + if (! $error) + { + $sql = 'DELETE FROM '.MAIN_DB_PREFIX.$this->table_element.' WHERE rowid='.$this->id; + + $res = $this->db->query($sql); + if($res===false) { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + + // Commit or rollback + if ($error) { + $this->db->rollback(); + return -1; + } else { + $this->db->commit(); + return 1; } - - // TODO Add triggers - - return true; } /** - * Add quote to field value if necessary + * Initialise object with example values + * Id must be 0 if object instance is a specimen * - * @param string|int $value value to protect - * @return string|int + * @return void */ - protected function quote($value) { - - if(is_null($value)) return 'NULL'; - else if(is_numeric($value)) return $value; - else return "'".$this->db->escape( $value )."'"; + public function initAsSpecimenCommon() + { + $this->id = 0; + // TODO... } } - diff --git a/htdocs/core/lib/modulebuilder.lib.php b/htdocs/core/lib/modulebuilder.lib.php index 7c14f139c59..cb5d143cff9 100644 --- a/htdocs/core/lib/modulebuilder.lib.php +++ b/htdocs/core/lib/modulebuilder.lib.php @@ -55,67 +55,69 @@ function rebuildObjectClass($destdir, $module, $objectname, $newmask) { include_once $pathoffiletoeditsrc; if (class_exists($objectname)) $object=new $objectname($db); + + // Backup old file + dol_copy($pathoffiletoeditsrc, $pathoffiletoeditsrc.'.back', $newmask, 1); + + // Edit class files + $contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); + + $i=0; + $texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n"; + $texttoinsert.= "\t".'/**'."\n"; + $texttoinsert.= "\t".' * @var array Array with all fields and their property'."\n"; + $texttoinsert.= "\t".' */'."\n"; + $texttoinsert.= "\t".'public $fields=array('."\n"; + + if (count($object->fields)) + { + foreach($object->fields as $key => $val) + { + $i++; + $typephp=''; + $texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; + if ($val['position']) $texttoinsert.= " 'position'=>".$val['position'].","; + if ($val['notnull']) $texttoinsert.= " 'notnull'=>".$val['notnull'].","; + if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].","; + if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].","; + if ($val['comment']) $texttoinsert.= " 'comment'=>'".$val['comment']."',"; + $texttoinsert.= "),\n"; + } + } + $texttoinsert.= "\t".');'."\n"; + + $texttoinsert.= "\n"; + + if (count($object->fields)) + { + foreach($object->fields as $key => $val) + { + $i++; + $typephp=''; + $texttoinsert.= "\t".'public $'.$key.$typephp.";"; + //if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY'; + //if ($key == 'entity') $texttoinsert.= ' DEFAULT 1'; + //$texttoinsert.= ($val['notnull']?' NOT NULL':''); + //if ($i < count($object->fields)) $texttoinsert.=";"; + $texttoinsert.= "\n"; + } + } + + $texttoinsert.= "\t".'// END MODULEBUILDER PROPERTIES'; + + $contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass); + + //file_put_contents($pathoffiletoedittmp, $contentclass); + file_put_contents(dol_osencode($pathoffiletoedittarget), $contentclass); + @chmod($pathoffiletoedit, octdec($newmask)); + + return 1; } catch(Exception $e) { print $e->getMessage(); + return -1; } - - // Edit class files - - $contentclass = file_get_contents(dol_osencode($pathoffiletoeditsrc), 'r'); - - $i=0; - $texttoinsert = '// BEGIN MODULEBUILDER PROPERTIES'."\n"; - $texttoinsert.= "\t".'/**'."\n"; - $texttoinsert.= "\t".' * @var array Array with all fields and their property'."\n"; - $texttoinsert.= "\t".' */'."\n"; - $texttoinsert.= "\t".'public $fields=array('."\n"; - - if (count($object->fields)) - { - foreach($object->fields as $key => $val) - { - $i++; - $typephp=''; - $texttoinsert.= "\t\t'".$key."' => array('type'=>'".$val['type']."', 'label'=>'".$val['label']."',"; - if ($val['position']) $texttoinsert.= " 'position'=>".$val['position'].","; - if ($val['notnull']) $texttoinsert.= " 'notnull'=>".$val['notnull'].","; - if ($val['index']) $texttoinsert.= " 'index'=>".$val['index'].","; - if ($val['searchall']) $texttoinsert.= " 'searchall'=>".$val['searchall'].","; - if ($val['comment']) $texttoinsert.= " 'comment'=>'".$val['comment']."',"; - $texttoinsert.= "),\n"; - } - } - $texttoinsert.= "\t".');'."\n"; - - $texttoinsert.= "\n"; - - if (count($object->fields)) - { - foreach($object->fields as $key => $val) - { - $i++; - $typephp=''; - $texttoinsert.= "\t".'public $'.$key.$typephp.";"; - //if ($key == 'rowid') $texttoinsert.= ' AUTO_INCREMENT PRIMARY KEY'; - //if ($key == 'entity') $texttoinsert.= ' DEFAULT 1'; - //$texttoinsert.= ($val['notnull']?' NOT NULL':''); - //if ($i < count($object->fields)) $texttoinsert.=";"; - $texttoinsert.= "\n"; - } - } - - $texttoinsert.= "\t".'// END MODULEBUILDER PROPERTIES'; - - $contentclass = preg_replace('/\/\/ BEGIN MODULEBUILDER PROPERTIES.*END MODULEBUILDER PROPERTIES/ims', $texttoinsert, $contentclass); - - //file_put_contents($pathoffiletoedittmp, $contentclass); - file_put_contents(dol_osencode($pathoffiletoedittarget), $contentclass); - @chmod($pathoffiletoedit, octdec($newmask)); - - - return 1; } /** diff --git a/htdocs/langs/en_US/main.lang b/htdocs/langs/en_US/main.lang index 9251db5311f..88b9d2a3fb0 100644 --- a/htdocs/langs/en_US/main.lang +++ b/htdocs/langs/en_US/main.lang @@ -197,6 +197,7 @@ Parameter=Parameter Parameters=Parameters Value=Value PersonalValue=Personal value +NewObject=New %s NewValue=New value CurrentValue=Current value Code=Code diff --git a/htdocs/modulebuilder/template/class/myobject.class.php b/htdocs/modulebuilder/template/class/myobject.class.php index 6f55f2c9ef6..f8882b68c56 100644 --- a/htdocs/modulebuilder/template/class/myobject.class.php +++ b/htdocs/modulebuilder/template/class/myobject.class.php @@ -109,366 +109,6 @@ class MyObject extends CommonObject $this->db = $db; } - /** - * Create object into database - * - * @param User $user User that creates - * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, Id of created object if OK - */ - public function create(User $user, $notrigger = false) - { - dol_syslog(__METHOD__, LOG_DEBUG); - - $error = 0; - - // Clean parameters - if (isset($this->prop1)) { - $this->prop1 = trim($this->prop1); - } - if (isset($this->prop2)) { - $this->prop2 = trim($this->prop2); - } - //... - - // Check parameters - // Put here code to add control on parameters values - - // Insert request - $sql = 'INSERT INTO ' . MAIN_DB_PREFIX . $this->table_element . '('; - $sql .= ' field1,'; - $sql .= ' field2'; - //... - $sql .= ') VALUES ('; - $sql .= ' \'' . $this->prop1 . '\','; - $sql .= ' \'' . $this->prop2 . '\''; - //... - $sql .= ')'; - - $this->db->begin(); - - $resql = $this->db->query($sql); - if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - } - - if (!$error) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX . $this->table_element); - - if (!$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action to call a trigger. - - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_CREATE',$user); - //if ($result < 0) $error++; - //// End call triggers - } - } - - // Commit or rollback - if ($error) { - $this->db->rollback(); - - return - 1 * $error; - } else { - $this->db->commit(); - - return $this->id; - } - } - - /** - * Load object in memory from the database - * - * @param int $id Id object - * @param string $ref Ref - * @return int <0 if KO, 0 if not found, >0 if OK - */ - public function fetch($id, $ref = null) - { - dol_syslog(__METHOD__, LOG_DEBUG); - - $sql = 'SELECT'; - $sql .= ' t.rowid,'; - $sql .= ' t.field1,'; - $sql .= ' t.field2'; - //... - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element . ' as t'; - $sql.= ' WHERE 1 = 1'; - if (! empty($conf->multicompany->enabled)) { - $sql .= " AND entity IN (" . getEntity('mymoduleobject') . ")"; - } - if (null !== $ref) { - $sql .= ' AND t.ref = ' . '\'' . $ref . '\''; - } else { - $sql .= ' AND t.rowid = ' . $id; - } - - $resql = $this->db->query($sql); - if ($resql) { - $numrows = $this->db->num_rows($resql); - if ($numrows) { - $obj = $this->db->fetch_object($resql); - - $this->id = $obj->rowid; - $this->prop1 = $obj->field1; - $this->prop2 = $obj->field2; - //... - } - - $this->db->free($resql); - - $this->fetch_optionals(); - - // $this->fetch_lines(); - - if ($numrows) { - return 1; - } else { - return 0; - } - } else { - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - return - 1; - } - } - - /** - * Load object in memory from the database - * - * @param string $sortorder Sort Order - * @param string $sortfield Sort field - * @param int $limit offset limit - * @param int $offset offset limit - * @param array $filter filter array - * @param string $filtermode filter mode (AND or OR) - * - * @return int <0 if KO, >0 if OK - */ - public function fetchAll($sortorder='', $sortfield='', $limit=0, $offset=0, array $filter = array(), $filtermode='AND') - { - dol_syslog(__METHOD__, LOG_DEBUG); - - $sql = 'SELECT'; - $sql .= ' t.rowid,'; - $sql .= ' t.field1,'; - $sql .= ' t.field2'; - //... - $sql .= ' FROM ' . MAIN_DB_PREFIX . $this->table_element. ' as t'; - - // Manage filter - $sqlwhere = array(); - if (count($filter) > 0) { - foreach ($filter as $key => $value) { - $sqlwhere [] = $key . ' LIKE \'%' . $this->db->escape($value) . '%\''; - } - } - $sql.= ' WHERE 1 = 1'; - if (! empty($conf->multicompany->enabled)) { - $sql .= " AND entity IN (" . getEntity('mymoduleobject') . ")"; - } - if (count($sqlwhere) > 0) { - $sql .= ' AND ' . implode(' '.$filtermode.' ', $sqlwhere); - } - if (!empty($sortfield)) { - $sql .= $this->db->order($sortfield,$sortorder); - } - if (!empty($limit)) { - $sql .= ' ' . $this->db->plimit($limit, $offset); - } - - $resql = $this->db->query($sql); - if ($resql) { - $num = $this->db->num_rows($resql); - - while ($obj = $this->db->fetch_object($resql)) { - $line = new self($this->db); - - $line->id = $obj->rowid; - $line->prop1 = $obj->field1; - $line->prop2 = $obj->field2; - //... - } - $this->db->free($resql); - - return $num; - } else { - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - - return - 1; - } - } - - /** - * Update object into database - * - * @param User $user User that modifies - * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, >0 if OK - */ - public function update(User $user, $notrigger = false) - { - dol_syslog(__METHOD__, LOG_DEBUG); - - $error = 0; - - // Clean parameters - if (isset($this->prop1)) { - $this->prop1 = trim($this->prop1); - } - if (isset($this->prop2)) { - $this->prop2 = trim($this->prop2); - } - //... - - // Check parameters - // Put here code to add a control on parameters values - - // Update request - $sql = 'UPDATE ' . MAIN_DB_PREFIX . $this->table_element . ' SET'; - $sql .= " field1=".(isset($this->field1)?"'".$this->db->escape($this->field1)."'":"null").","; - $sql .= " field2=".(isset($this->field2)?"'".$this->db->escape($this->field2)."'":"null").""; - //... - $sql .= ' WHERE rowid=' . $this->id; - - $this->db->begin(); - - $resql = $this->db->query($sql); - if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - } - - if (!$error && !$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. - - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_MODIFY',$user); - //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - //// End call triggers - } - - // Commit or rollback - if ($error) { - $this->db->rollback(); - - return - 1 * $error; - } else { - $this->db->commit(); - - return 1; - } - } - - /** - * Delete object in database - * - * @param User $user User that deletes - * @param bool $notrigger false=launch triggers after, true=disable triggers - * - * @return int <0 if KO, >0 if OK - */ - public function delete(User $user, $notrigger = false) - { - dol_syslog(__METHOD__, LOG_DEBUG); - - $error = 0; - - $this->db->begin(); - - if (!$error) { - if (!$notrigger) { - // Uncomment this and change MYOBJECT to your own tag if you - // want this action calls a trigger. - - //// Call triggers - //$result=$this->call_trigger('MYOBJECT_DELETE',$user); - //if ($result < 0) { $error++; //Do also what you must do to rollback action if trigger fail} - //// End call triggers - } - } - - // If you need to delete child tables to, you can insert them here - - if (!$error) { - $sql = 'DELETE FROM ' . MAIN_DB_PREFIX . $this->table_element; - $sql .= ' WHERE rowid=' . $this->id; - - $resql = $this->db->query($sql); - if (!$resql) { - $error ++; - $this->errors[] = 'Error ' . $this->db->lasterror(); - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - } - } - - // Commit or rollback - if ($error) { - $this->db->rollback(); - - return - 1 * $error; - } else { - $this->db->commit(); - - return 1; - } - } - - /** - * Load an object from its id and create a new one in database - * - * @param int $fromid Id of object to clone - * - * @return int New id of clone - */ - public function createFromClone($fromid) - { - dol_syslog(__METHOD__, LOG_DEBUG); - - global $user; - $error = 0; - $object = new self($this->db); - - $this->db->begin(); - - // Load source object - $object->fetch($fromid); - // Reset object - $object->id = 0; - - // Clear fields - // ... - - // Create clone - $result = $object->create($user); - - // Other options - if ($result < 0) { - $error ++; - $this->errors = $object->errors; - dol_syslog(__METHOD__ . ' ' . implode(',', $this->errors), LOG_ERR); - } - - // End - if (!$error) { - $this->db->commit(); - - return $object->id; - } else { - $this->db->rollback(); - - return - 1; - } - } /** * Return a link to the object card (with optionaly the picto) @@ -592,9 +232,7 @@ class MyObject extends CommonObject */ public function initAsSpecimen() { - $this->id = 0; - $this->prop1 = 'prop1'; - $this->prop2 = 'prop2'; + $this->initAsSpecimenCommon(); } } diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index 73f00abc89f..14b88767128 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -58,14 +58,27 @@ dol_include_once('/mymodule/class/myobject.class.php'); $langs->loadLangs(array("mymodule","other")); // Get parameters -$id = GETPOST('id','int'); -$action = GETPOST('action','alpha'); -$cancel = GETPOST('cancel'); -$backtopage = GETPOST('backtopage'); -$myparam = GETPOST('myparam','alpha'); +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); -$search_field1=GETPOST("search_field1"); -$search_field2=GETPOST("search_field2"); +// Initialize technical objects +$object=new MyObject($db); +$extrafields = new ExtraFields($db); +$diroutputmassaction=$conf->mymodule->dir_output . '/temp/massgeneration/'.$user->id; +$hookmanager->initHooks(array('myobjectcard')); // Note that conf->hooks_modules contains array +// Fetch optionals attributes and labels +$extralabels = $extrafields->fetch_name_optionals_label('myobject'); +$search_array_options=$extrafields->getOptionalsFromPost($extralabels,'','search_'); + +// Initialize array of search criterias +$search_all=trim(GETPOST("search_all",'alpha')); +$search=array(); +foreach($object->fields as $key => $val) +{ + if (GETPOST('search_'.$key,'alpha')) $search[$key]=GETPOST('search_'.$key,'alpha'); +} if (empty($action) && empty($id) && empty($ref)) $action='view'; @@ -76,19 +89,12 @@ if ($user->societe_id > 0) } //$result = restrictedArea($user, 'mymodule', $id); - -$object = new MyObject_Class($db); -$extrafields = new ExtraFields($db); - // fetch optionals attributes and labels $extralabels = $extrafields->fetch_name_optionals_label($object->table_element); // Load object include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals -// Initialize technical object to manage hooks of modules. Note that conf->hooks_modules contains array array -$hookmanager->initHooks(array('mymodule')); - /* @@ -107,7 +113,7 @@ if (empty($reshook)) { if ($action != 'addlink') { - $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/myobject_list.php',1); header("Location: ".$urltogo); exit; } @@ -120,33 +126,35 @@ if (empty($reshook)) { if ($cancel) { - $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/myobject_list.php',1); header("Location: ".$urltogo); exit; } $error=0; - /* object_prop_getpost_prop */ - $object->prop1=GETPOST("field1"); - $object->prop2=GETPOST("field2"); - - if (empty($object->ref)) - { - $error++; - setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv("Ref")), null, 'errors'); - } + foreach ($object->fields as $key => $val) + { + $object->$key=GETPOST($key,'alpha'); + if (in_array($key, array('entity', 'datec', 'tms'))) continue; + if ($val['notnull'] && $object->$key == '') + { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired",$langs->transnoentitiesnoconv($val['label'])), null, 'errors'); + } + } if (! $error) { - $result=$object->create($user); + $result=$object->createCommon($user); if ($result > 0) { // Creation OK - $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/list.php',1); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/myobject_list.php',1); header("Location: ".$urltogo); exit; } + else { // Creation KO if (! empty($object->errors)) setEventMessages(null, $object->errors, 'errors'); @@ -203,7 +211,7 @@ if (empty($reshook)) { // Delete OK setEventMessages("RecordDeleted", null, 'mesgs'); - header("Location: ".dol_buildpath('/mymodule/list.php',1)); + header("Location: ".dol_buildpath('/mymodule/myobject_list.php',1)); exit; } else @@ -225,10 +233,7 @@ if (empty($reshook)) $form=new Form($db); -llxHeader('','MyPageName',''); - - -// Put here content of your page +llxHeader('','MyObject',''); // Example : Adding jquery code print ''."\n"; + } + print '
    '; print ''; print ''; @@ -353,7 +427,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''; dol_fiche_head(null); - + print ''; print '
    '.$langs->trans('Company').''; @@ -384,7 +458,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print '
    '; dol_fiche_end(); - + $parameters=array('facid'=>$facid, 'ref'=>$ref, 'objcanvas'=>$objcanvas); $reshook=$hookmanager->executeHooks('paymentsupplierinvoices',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks $error=$hookmanager->error; $errors=$hookmanager->errors; @@ -408,6 +482,9 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie $num = $db->num_rows($resql); if ($num > 0) { + $sign=1; + if ($object->type == 2) $sign=-1; + $i = 0; print '
    '; @@ -447,19 +524,37 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie while ($i < $num) { $objp = $db->fetch_object($resql); - + + $invoice=new FactureFournisseur($db); + $invoice->fetch($objp->facid); + $paiement = $invoice->getSommePaiement(); + $creditnotes=$invoice->getSumCreditNotesUsed(); + $deposits=$invoice->getSumDepositsUsed(); + $alreadypayed=price2num($paiement + $creditnotes + $deposits,'MT'); + $remaintopay=price2num($invoice->total_ttc - $paiement - $creditnotes - $deposits,'MT'); + + // Multicurrency Price + if (!empty($conf->multicurrency->enabled)) + { + $multicurrency_payment = $invoice->getSommePaiement(1); + $multicurrency_creditnotes=$invoice->getSumCreditNotesUsed(1); + $multicurrency_deposits=$invoice->getSumDepositsUsed(1); + $multicurrency_alreadypayed=price2num($multicurrency_payment + $multicurrency_creditnotes + $multicurrency_deposits,'MT'); + $multicurrency_remaintopay=price2num($invoice->multicurrency_total_ttc - $multicurrency_payment - $multicurrency_creditnotes - $multicurrency_deposits,'MT'); + } + print ''; - + // Ref print ''; $invoicesupplierstatic->ref=$objp->ref; $invoicesupplierstatic->id=$objp->facid; print $invoicesupplierstatic->getNomUrl(1); print ''; - + // Ref supplier print ''.$objp->ref_supplier.''; - + // Date if ($objp->df > 0 ) { @@ -470,13 +565,13 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie { print '!!!'; } - + // Multicurrency - if (!empty($conf->multicurrency->enabled)) + if (!empty($conf->multicurrency->enabled)) { // Currency print ''.$objp->multicurrency_code."\n"; - + print ''; if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) { @@ -485,14 +580,14 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''; print ''; - if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) - { + if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) + { print price($objp->multicurrency_am); } print ''; - + print ''; - if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) + if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) { print price($objp->multicurrency_total_ttc - $objp->multicurrency_am); } @@ -500,32 +595,58 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie } print ''.price($objp->total_ttc).''; - + print ''.price($objp->am).''; - - print ''.price($objp->total_ttc - $objp->am).''; - + + print ''.price($remaintopay).''; + + // Amount print ''; + $namef = 'amount_'.$objp->facid; - if (!empty($conf->use_javascript_ajax)) - print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($objp->total_ttc - $objp->am)."'"); - print ''; + $nameRemain = 'remain_'.$objp->facid; + + if ($action != 'add_paiement') + { + if (!empty($conf->use_javascript_ajax)) + print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($sign * $remaintopay)."'"); + print ''; + print ''; + } + else + { + print ''; + print ''; + } print ""; - - // Multicurrency - if (!empty($conf->multicurrency->enabled)) + + // Multicurrency Price + if (! empty($conf->multicurrency->enabled)) { - print ''; + print ''; + + // Add remind multicurrency amount + $namef = 'multicurrency_amount_'.$objp->facid; + $nameRemain = 'multicurrency_remain_'.$objp->facid; + if ($objp->multicurrency_code && $objp->multicurrency_code != $conf->currency) { - $namef = 'multicurrency_amount_'.$objp->facid; - if (!empty($conf->use_javascript_ajax)) - print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($objp->multicurrency_total_ttc - $objp->multicurrency_am)."'"); - print ''; + if ($action != 'add_paiement') + { + if (!empty($conf->use_javascript_ajax)) + print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($sign * $multicurrency_remaintopay)."'"); + print ''; + print ''; + } + else + { + print ''; + print ''; + } } - print ""; + print ""; } - + print "\n"; $total+=$objp->total_ht; $total_ttc+=$objp->total_ttc; @@ -544,12 +665,12 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print ''.price($total_ttc).''; print ''.price($totalrecu).''; print ''.price($total_ttc - $totalrecu).''; - print ' '; - if (!empty($conf->multicurrency->enabled)) print ' '; + print ''; // Autofilled + if (!empty($conf->multicurrency->enabled)) print ''; print "\n"; } print "\n"; - + print ""; } $db->free($resql); @@ -574,7 +695,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print '
    '; if (!empty($totalpayment)) $text=$langs->trans('ConfirmSupplierPayment',price($totalpayment),$langs->trans("Currency".$conf->currency)); - if (!empty($multicurrency_totalpayment)) + if (!empty($multicurrency_totalpayment)) { $text.='
    '.$langs->trans('ConfirmSupplierPayment',price($multicurrency_totalpayment),$langs->trans("paymentInInvoiceCurrency")); } @@ -589,7 +710,7 @@ if ($action == 'create' || $action == 'confirm_paiement' || $action == 'add_paie print '
    '; } } - else dol_print_error($db); + else dol_print_error($db); } /* @@ -635,14 +756,14 @@ if (empty($action)) $sql.= " GROUP BY p.rowid, p.datep, p.amount, p.num_paiement, s.rowid, s.nom, c.code, c.libelle, ba.rowid, ba.label"; if (!$user->rights->societe->client->voir) $sql .= ", sc.fk_soc, sc.fk_user"; $sql.= $db->order($sortfield,$sortorder); - + $nbtotalofrecords = ''; if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) { $result = $db->query($sql); $nbtotalofrecords = $db->num_rows($result); } - + $sql.= $db->plimit($limit+1, $offset); $resql = $db->query($sql); @@ -667,9 +788,9 @@ if (empty($action)) $tmpkey=preg_replace('/search_options_/','',$key); if ($val != '') $param.='&search_options_'.$tmpkey.'='.urlencode($val); } - + $massactionbutton=$form->selectMassAction('', $massaction == 'presend' ? array() : array('presend'=>$langs->trans("SendByMail"), 'builddoc'=>$langs->trans("PDFMerge"))); - + print_barre_liste($langs->trans('SupplierPayments'), $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, '', $num, $nbtotalofrecords, 'title_accountancy.png', 0, '', '', $limit); print '
    '; @@ -680,24 +801,24 @@ if (empty($action)) print ''; print ''; print ''; - + $moreforfilter=''; - + $parameters=array(); $reshook=$hookmanager->executeHooks('printFieldPreListTitle',$parameters); // Note that $action and $object may have been modified by hook if (empty($reshook)) $moreforfilter .= $hookmanager->resPrint; else $moreforfilter = $hookmanager->resPrint; - + if ($moreforfilter) { print '
    '; print $moreforfilter; print '
    '; } - + $varpage=empty($contextpage)?$_SERVER["PHP_SELF"]:$contextpage; $selectedfields=$form->multiSelectArrayWithCheckbox('selectedfields', $arrayfields, $varpage); // This also change content of $arrayfields - + print '
    '; print ''."\n"; @@ -739,11 +860,11 @@ if (empty($action)) //print_liste_field_titre($langs->trans('Invoice'),$_SERVER["PHP_SELF"],'ref_supplier','',$param,'',$sortfield,$sortorder); print_liste_field_titre(''); print "\n"; - + while ($i < min($num,$limit)) { $objp = $db->fetch_object($resql); - + print ''; // Ref payment @@ -764,7 +885,7 @@ if (empty($action)) // Payment number print ''; - + print ''; $total_ttc += $obj->total_ttc; - $total += $obj->total; + $total += $obj->total_hc; $totalam += $obj->am; $i++; From 24ecd48b22e5fbfa2e0a81a6ab4ab18fef1d8639 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 15 Jul 2017 03:40:20 +0200 Subject: [PATCH 354/515] Minor fix --- htdocs/compta/bank/bankentries.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/htdocs/compta/bank/bankentries.php b/htdocs/compta/bank/bankentries.php index c3afc9634cf..f1ba166001e 100644 --- a/htdocs/compta/bank/bankentries.php +++ b/htdocs/compta/bank/bankentries.php @@ -102,7 +102,7 @@ $sortorder = GETPOST("sortorder",'alpha'); $page = GETPOST("page",'int'); $pageplusone = GETPOST("pageplusone",'int'); if ($pageplusone) $page = $pageplusone - 1; -if ($page == -1) { $page = 0; } +if (empty($page) || $page == -1) { $page = 0; } // If $page is not defined, or '' or -1 $offset = $limit * $page; $pageprev = $page - 1; $pagenext = $page + 1; @@ -130,7 +130,7 @@ if ($id > 0 || ! empty($ref)) $contextpage='banktransactionlist'.(empty($object->ref)?'':'-'.$object->id); //var_dump($contextpage); -// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array +// Initialize technical object to manage hooks of page. Note that conf->hooks_modules contains array array $hookmanager->initHooks(array('banktransactionlist', $contextpage)); $extrafields = new ExtraFields($db); @@ -580,6 +580,7 @@ if ($resql) print ''; print ''; print ''; + print ''; print ''; print ''; if (GETPOST('bid')) print ''; @@ -1212,6 +1213,7 @@ if ($resql) { print ''; } + if (! $i) $totalarray['nbfield']++; } if (! empty($arrayfields['b.num_releve']['checked'])) From cb87b314be0cc5753257e2a19ac7fe5de913664d Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 15 Jul 2017 03:41:07 +0200 Subject: [PATCH 355/515] FIX Maxi debug of journalization of bank journal. --- .../accountancy/class/bookkeeping.class.php | 2 +- htdocs/accountancy/journal/bankjournal.php | 285 ++++++++++++------ .../journal/expensereportsjournal.php | 12 +- .../accountancy/journal/purchasesjournal.php | 16 +- htdocs/accountancy/journal/sellsjournal.php | 17 +- htdocs/compta/bank/bankentries.php | 110 +++++-- htdocs/compta/bank/class/account.class.php | 58 ++-- .../bank/class/paymentvarious.class.php | 11 +- htdocs/compta/bank/various_payment/card.php | 214 +++++++------ htdocs/compta/bank/various_payment/index.php | 23 +- .../install/mysql/migration/5.0.0-6.0.0.sql | 2 + htdocs/install/mysql/tables/llx_bank.sql | 1 + htdocs/langs/en_US/accountancy.lang | 8 +- htdocs/langs/en_US/banks.lang | 6 +- htdocs/langs/en_US/compta.lang | 4 +- htdocs/langs/en_US/salaries.lang | 2 +- .../modulebuilder/template/myobject_card.php | 5 +- 17 files changed, 493 insertions(+), 283 deletions(-) diff --git a/htdocs/accountancy/class/bookkeeping.class.php b/htdocs/accountancy/class/bookkeeping.class.php index 5c5fb022de9..9970e4672ac 100644 --- a/htdocs/accountancy/class/bookkeeping.class.php +++ b/htdocs/accountancy/class/bookkeeping.class.php @@ -176,7 +176,7 @@ class BookKeeping extends CommonObject if (empty($this->credit)) $this->credit = 0; // Check parameters - if (empty($this->numero_compte) || $this->numero_compte == '-1') + if (empty($this->numero_compte) || $this->numero_compte == '-1' || $this->numero_compte == 'NotDefined') { $langs->load("errors"); if (in_array($this->doc_type, array('bank', 'expense_report'))) diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php index 14307185ac6..648abc4d14c 100644 --- a/htdocs/accountancy/journal/bankjournal.php +++ b/htdocs/accountancy/journal/bankjournal.php @@ -52,16 +52,7 @@ require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT . '/expensereport/class/paymentexpensereport.class.php'; require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/paymentvarious.class.php'; -$langs->load("companies"); -$langs->load("other"); -$langs->load("compta"); -$langs->load("banks"); -$langs->load('bills'); -$langs->load('donations'); -$langs->load("accountancy"); -$langs->load("trips"); -$langs->load("salaries"); -$langs->load("hrm"); +$langs->loadLangs(array("companies","other","compta","banks",'bills','donations',"accountancy","trips","salaries","hrm")); // Multi journal $id_journal = GETPOST('id_journal', 'int'); @@ -73,6 +64,7 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); $in_bookkeeping = GETPOST('in_bookkeeping'); +if ($in_bookkeeping == '') $in_bookkeeping = 'notyet'; $now = dol_now(); $action = GETPOST('action','aZ09'); @@ -118,10 +110,12 @@ $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "bank_url as bu2 ON bu2.fk_bank = b.row $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "societe as soc on bu1.url_id=soc.rowid"; $sql .= " LEFT JOIN " . MAIN_DB_PREFIX . "user as u on bu2.url_id=u.rowid"; $sql .= " WHERE ba.fk_accountancy_journal=" . $id_journal; -$sql .= ' AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy +$sql .= ' AND b.amount != 0 AND ba.entity IN ('.getEntity('bank_account', 0).')'; // We don't share object for accountancy if ($date_start && $date_end) $sql .= " AND b.dateo >= '" . $db->idate($date_start) . "' AND b.dateo <= '" . $db->idate($date_end) . "'"; -if ($in_bookkeeping == 'yes') +if ($in_bookkeeping == 'already') + $sql .= " AND (b.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; +if ($in_bookkeeping == 'notyet') $sql .= " AND (b.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='bank') )"; $sql .= " ORDER BY b.datev"; @@ -150,12 +144,12 @@ if ($result) { $num = $db->num_rows($result); // Variables - $account_supplier = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : $langs->trans("CodeNotDef")); - $account_customer = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef")); - $account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : $langs->trans("CodeNotDef")); - $account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : $langs->trans("CodeNotDef")); - $account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : $langs->trans("CodeNotDef")); - $account_transfer = (! empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : $langs->trans("CodeNotDef")); + $account_supplier = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'); // NotDefined is a reserved word + $account_customer = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'); // NotDefined is a reserved word + $account_employee = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'); // NotDefined is a reserved word + $account_pay_vat = (! empty($conf->global->ACCOUNTING_VAT_PAY_ACCOUNT) ? $conf->global->ACCOUNTING_VAT_PAY_ACCOUNT : 'NotDefined'); // NotDefined is a reserved word + $account_pay_donation = (! empty($conf->global->DONATION_ACCOUNTINGACCOUNT) ? $conf->global->DONATION_ACCOUNTINGACCOUNT : 'NotDefined'); // NotDefined is a reserved word + $account_transfer = (! empty($conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH) ? $conf->global->ACCOUNTING_ACCOUNT_TRANSFER_CASH : 'NotDefined'); // NotDefined is a reserved word $tabcompany = array(); $tabuser = array(); @@ -198,7 +192,7 @@ if ($result) { // Variable bookkeeping $tabpay[$obj->rowid]["date"] = $obj->do; - $tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; + $tabpay[$obj->rowid]["type_payment"] = $obj->fk_type; // CHQ, VIR, LIQ, CB, ... $tabpay[$obj->rowid]["ref"] = $obj->label; $tabpay[$obj->rowid]["fk_bank"] = $obj->rowid; if (preg_match('/^\((.*)\)$/i', $obj->label, $reg)) { @@ -208,14 +202,20 @@ if ($result) { } $links = $object->get_url($obj->rowid); - // get_url may return -1 which is not traversable - if (is_array($links)) { - // Now loop on each link of record in bank. - foreach ( $links as $key => $val ) { + /*var_dump($i); + var_dump($links);*/ - if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary', 'payment_various'))) // So we excluded 'company' here + // get_url may return -1 which is not traversable + if (is_array($links) && count($links) > 0) { + // Now loop on each link of record in bank. + foreach ($links as $key => $val) { + + if (in_array($links[$key]['type'], array('sc', 'payment_sc', 'payment', 'payment_supplier', 'payment_vat', 'payment_expensereport', 'banktransfert', 'payment_donation', 'payment_salary', 'payment_various'))) { + // So we excluded 'company' and 'user' here. We want only payment lines + // We save tabtype for a future use, to remember what kind of payment it is + $tabpay[$obj->rowid]['type'] = $links[$key]['type']; $tabtype[$obj->rowid] = $links[$key]['type']; } @@ -236,7 +236,8 @@ if ($result) { } else if ($links[$key]['type'] == 'user') { $userstatic->id = $links[$key]['url_id']; $userstatic->name = $links[$key]['label']; - $tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30); + if ($userstatic->id > 0) $tabpay[$obj->rowid]["soclib"] = $userstatic->getNomUrl(1, '', 30); + else $tabpay[$obj->rowid]["soclib"] = '???'; // Should not happen, but happens with old data when id of user was not saved on expense report payment. $tabtp[$obj->rowid][$compta_user] += $obj->amount; } else if ($links[$key]['type'] == 'sc') { $chargestatic->id = $links[$key]['url_id']; @@ -297,7 +298,7 @@ if ($result) { $tabpay[$obj->rowid]["lib"] .= ' ' . $paymentvariousstatic->getNomUrl(2); $tabpay[$obj->rowid]["paymentvariousid"] = $paymentvariousstatic->id; $paymentvariousstatic->fetch($paymentvariousstatic->id); - $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : $langs->trans("CodeNotDef")); + $account_various = (! empty($paymentvariousstatic->accountancy_code) ? $paymentvariousstatic->accountancy_code : 'NotDefined'); // NotDefined is a reserved word $tabtp[$obj->rowid][$account_various] += $obj->amount; } else if ($links[$key]['type'] == 'banktransfert') { $tabpay[$obj->rowid]["lib"] .= ' ' . $langs->trans("BankTransfer"); @@ -305,10 +306,13 @@ if ($result) { } } } + else + { + $tabpay[$obj->rowid]['type'] = 'unknown'; // Can be SOLD, miscellaneous entry, payment of patient, or old record with no links in bank_url. + } $tabbq[$obj->rowid][$compta_bank] += $obj->amount; - // Check account number is ok /*if ($action == 'writebookkeeping') // Make test now in such a case { @@ -330,7 +334,7 @@ if ($result) { // if($obj->socid)$tabtp[$obj->rowid][$compta_soc] += $obj->amount; - $i ++; + $i++; } } else { dol_print_error($db); @@ -354,7 +358,7 @@ if (! $error && $action == 'writebookkeeping') { $db->begin(); // Bank - if (! $errorforline) + if (! $errorforline && is_array($tabbq[$key])) { // Line into bank account foreach ( $tabbq[$key] as $k => $mt ) @@ -419,19 +423,23 @@ if (! $error && $action == 'writebookkeeping') { $objmid = $db->fetch_object($resultmid); $bookkeeping->doc_ref = $objmid->ref; // Ref of expensereport } + } else if ($tabtype[$key] == 'payment_salary') { + $bookkeeping->subledger_account = ''; + $bookkeeping->label_operation = $tabuser[$key]['name']; + $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Ref of salary payment } else if ($tabtype[$key] == 'payment_vat') { $bookkeeping->subledger_account = ''; $bookkeeping->doc_ref = $langs->trans("PaymentVat") . ' (' . $val["paymentvatid"] . ')'; // Rowid of vat payment } else if ($tabtype[$key] == 'payment_donation') { $bookkeeping->subledger_account = ''; $bookkeeping->doc_ref = $langs->trans("Donation") . ' (' . $val["paymentdonationid"] . ')'; // Rowid of donation - } else if ($tabtype[$key] == 'payment_salary') { - $bookkeeping->subledger_account = ''; - $bookkeeping->label_operation = $tabuser[$key]['name']; - $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Ref of salary payment } else if ($tabtype[$key] == 'payment_various') { $bookkeeping->subledger_account = ''; $bookkeeping->doc_ref = $langs->trans("VariousPayment") . ' (' . $val["paymentvariousid"] . ')'; // Ref of various payment + } else if ($tabtype[$key] == 'unknown') { + // ??? + $bookkeeping->subledger_account = ''; + $bookkeeping->doc_ref = ''; } $result = $bookkeeping->create($user); @@ -440,7 +448,7 @@ if (! $error && $action == 'writebookkeeping') { { $error++; $errorforline++; - //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); + setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { @@ -454,7 +462,7 @@ if (! $error && $action == 'writebookkeeping') { } // Third party - if (! $errorforline) + if (! $errorforline && is_array($tabtp[$key])) { // Line into thirdparty account foreach ( $tabtp[$key] as $k => $mt ) { @@ -475,22 +483,11 @@ if (! $error && $action == 'writebookkeeping') { $bookkeeping->fk_user_author = $user->id; $bookkeeping->date_create = $now; - if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution - $sqlmid = 'SELECT ch.libelle, t.libelle as labelc'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "chargesociales ch "; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paych ON paych.fk_charge=ch.rowid"; - $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "c_chargesociales as t ON ch.fk_type=t.id"; - $sqlmid .= " WHERE paych.fk_bank=" . $key; - dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); - $resultmid = $db->query($sqlmid); - if ($resultmid) { - $objmid = $db->fetch_object($resultmid); - $bookkeeping->label_compte = $objmid->labelc; - $bookkeeping->doc_ref = $objmid->libelle ; - } - $bookkeeping->subledger_account = ''; - $bookkeeping->numero_compte = $k; - } else if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice + if ($tabtype[$key] == 'payment') { // If payment is payment of customer invoice, we get ref of invoice + $bookkeeping->label_operation = ''; + $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; + $bookkeeping->subledger_label = $tabcompany[$key]['name']; + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; $sqlmid = 'SELECT fac.facnumber'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture fac "; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement_facture as payfac ON payfac.fk_facture=fac.rowid"; @@ -500,12 +497,14 @@ if (! $error && $action == 'writebookkeeping') { $resultmid = $db->query($sqlmid); if ($resultmid) { $objmid = $db->fetch_object($resultmid); + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $objmid->facnumber; } + } else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice + $bookkeeping->label_operation = ''; $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; $bookkeeping->subledger_label = $tabcompany[$key]['name']; - $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; - } else if ($tabtype[$key] == 'payment_supplier') { // If payment is payment of supplier invoice, we get ref of invoice + $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; $sqlmid = 'SELECT facf.ref_supplier,facf.ref'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn_facturefourn as payfacf ON payfacf.fk_facturefourn=facf.rowid"; @@ -515,16 +514,14 @@ if (! $error && $action == 'writebookkeeping') { $resultmid = $db->query($sqlmid); if ($resultmid) { $objmid = $db->fetch_object($resultmid); + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $objmid->ref_supplier . ' (' . $objmid->ref . ')'; } - $bookkeeping->subledger_account = $tabcompany[$key]['code_compta']; - $bookkeeping->subledger_label = $tabcompany[$key]['name']; - $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; } else if ($tabtype[$key] == 'payment_expensereport') { + $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->subledger_account = $tabuser[$key]['accountancy_code']; $bookkeeping->subledger_label = $tabuser[$key]['name']; $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; - $bookkeeping->label_operation = $tabuser[$key]['name']; $sqlmid = 'SELECT e.ref'; $sqlmid .= " FROM " . MAIN_DB_PREFIX . "expensereport as e"; $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "payment_expensereport as payer ON payer.fk_expensereport=e.rowid"; @@ -533,32 +530,69 @@ if (! $error && $action == 'writebookkeeping') { $resultmid = $db->query($sqlmid); if ($resultmid) { $objmid = $db->fetch_object($resultmid); + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $objmid->ref; // Ref of expensereport } - } else if ($tabtype[$key] == 'payment_vat') { + } else if ($tabtype[$key] == 'payment_salary') { + $bookkeeping->label_operation = $tabuser[$key]['name']; + $bookkeeping->subledger_account = $tabuser[$key]['accountancy_code']; + $bookkeeping->subledger_label = ''; + $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $bookkeeping->label_compte = ''; + $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Rowid of salary payment + } else if (in_array($tabtype[$key], array('sc', 'payment_sc'))) { // If payment is payment of social contribution + $bookkeeping->label_operation = ''; $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; + $sqlmid = 'SELECT ch.libelle, t.libelle as labelc'; + $sqlmid .= " FROM " . MAIN_DB_PREFIX . "chargesociales ch "; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementcharge as paych ON paych.fk_charge=ch.rowid"; + $sqlmid .= " INNER JOIN " . MAIN_DB_PREFIX . "c_chargesociales as t ON ch.fk_type=t.id"; + $sqlmid .= " WHERE paych.fk_bank=" . $key; + dol_syslog("accountancy/journal/bankjournal.php:: sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $bookkeeping->label_compte = $objmid->labelc; + $bookkeeping->doc_ref = $objmid->libelle ; + } + } else if ($tabtype[$key] == 'payment_vat') { + $bookkeeping->label_operation = ''; + $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; + $bookkeeping->numero_compte = $k; + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $langs->trans("PaymentVat") . ' (' . $val["paymentvatid"] . ')'; // Rowid of vat } else if ($tabtype[$key] == 'payment_donation') { + $bookkeeping->label_operation = ''; $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $langs->trans("Donation") . ' (' . $val["paymentdonationid"] . ')'; // Rowid of donation - } else if ($tabtype[$key] == 'payment_salary') { - $bookkeeping->subledger_account = $tabuser[$key]['accountancy_code']; - $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; - $bookkeeping->label_operation = $tabuser[$key]['name']; - $bookkeeping->doc_ref = $langs->trans("SalaryPayment") . ' (' . $val["paymentsalid"] . ')'; // Rowid of salary payment } else if ($tabtype[$key] == 'payment_various') { + $bookkeeping->label_operation = ''; $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; + $bookkeeping->label_compte = ''; $bookkeeping->doc_ref = $langs->trans("VariousPayment") . ' (' . $val["paymentvariousid"] . ')'; // Rowid of various payment } else if ($tabtype[$key] == 'banktransfert') { + $bookkeeping->label_operation = ''; $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $k; + $bookkeeping->label_compte = ''; + $bookkeeping->doc_ref = ''; } else { // Temporary account - $bookkeeping->doc_ref = $k; + $bookkeeping->label_operation = ''; + $bookkeeping->subledger_account = ''; + $bookkeeping->subledger_label = ''; $bookkeeping->numero_compte = $conf->global->ACCOUNTING_ACCOUNT_SUSPENSE; + $bookkeeping->label_compte = ''; + $bookkeeping->doc_ref = $k; } $result = $bookkeeping->create($user); @@ -567,7 +601,7 @@ if (! $error && $action == 'writebookkeeping') { { $error++; $errorforline++; - //setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); + setEventMessages('Transaction for ('.$bookkeeping->doc_type.', '.$bookkeeping->doc_ref.', '.$bookkeeping->fk_docdet.') were already recorded', null, 'warnings'); } else { @@ -586,11 +620,13 @@ if (! $error && $action == 'writebookkeeping') { } else { + //print 'KO for line '.$key.' '.$error.'
    '; $db->rollback(); - if ($error >= 10) + $MAXNBERRORS=5; + if ($error >= $MAXNBERRORS) { - setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped"), null, 'errors'); + setEventMessages($langs->trans("ErrorTooManyErrorsProcessStopped").' (>'.$MAXNBERRORS.')', null, 'errors'); break; // Break in the foreach } } @@ -612,7 +648,7 @@ if (! $error && $action == 'writebookkeeping') { } // Export -if ($action == 'exportcsv') { +if ($action == 'exportcsv') { // ISO and not UTF8 ! $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php'; @@ -673,7 +709,6 @@ if ($action == 'exportcsv') { print '"' . $date . '"' . $sep; print '"' . $val["type_payment"] . '"' . $sep; print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; - if ($tabtype[$key] == 'payment_supplier') { print '"' . $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER . '"' . $sep; } else if($tabtype[$key] == 'payment') { @@ -681,9 +716,6 @@ if ($action == 'exportcsv') { } else { print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; } - - - print '"' . length_accounta(html_entity_decode($k)) . '"' . $sep; if ($companystatic->name == '') { print '"' . $langs->trans('ThirdParty') . " - " . utf8_decode($reflabel) . '"' . $sep; @@ -699,7 +731,7 @@ if ($action == 'exportcsv') { foreach ( $tabbq[$key] as $k => $mt ) { print '"' . $journal . '"' . $sep; print '"' . $date . '"' . $sep; - print '"' . $val["ref"] . '"' . $sep; + print '"' . $val["type_payment"] . '"' . $sep; print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep; print '"' . length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE) . '"' . $sep; print " " . $sep; @@ -738,7 +770,9 @@ if (empty($action) || $action == 'view') { $builddate = time(); //$description = $langs->trans("DescFinanceJournal") . '
    '; $description.= $langs->trans("DescJournalOnlyBindedVisible").'
    '; - $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectyesno('in_bookkeeping',$in_bookkeeping,0); + + $listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger")); + $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("JournalizationInLedgerStatus").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); $varlink = 'id_journal=' . $id_journal; @@ -750,6 +784,15 @@ if (empty($action) || $action == 'view') { print ''; }*/ + // Button to write into Ledger + if (empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER) || $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER == '-1' + || empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER) || $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER == '-1' + || empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') { + print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); + print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, ''.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + } + + print '
    '; print ''; print ''; @@ -784,6 +827,7 @@ if (empty($action) || $action == 'view') { print "
    "; print ""; print ""; + print ""; print ""; print ""; print ""; @@ -861,6 +905,20 @@ if (empty($action) || $action == 'view') { } else dol_print_error($db); } + elseif ($tabtype[$key] == 'payment_salary') + { + $sqlmid = 'SELECT s.rowid as id'; + $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_salary as s"; + $sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"]; + dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG); + $resultmid = $db->query($sqlmid); + if ($resultmid) { + $objmid = $db->fetch_object($resultmid); + $salarystatic->fetch($objmid->id); + $ref=$langs->trans("SalaryPayment").' '.$salarystatic->getNomUrl(1); + } + else dol_print_error($db); + } elseif ($tabtype[$key] == 'payment_vat') { $sqlmid = 'SELECT v.rowid as id'; @@ -889,20 +947,6 @@ if (empty($action) || $action == 'view') { } else dol_print_error($db); } - elseif ($tabtype[$key] == 'payment_salary') - { - $sqlmid = 'SELECT s.rowid as id'; - $sqlmid .= " FROM " . MAIN_DB_PREFIX . "payment_salary as s"; - $sqlmid .= " WHERE s.rowid=" . $val["paymentsalid"]; - dol_syslog("accountancy/journal/bankjournal.php::sqlmid=" . $sqlmid, LOG_DEBUG); - $resultmid = $db->query($sqlmid); - if ($resultmid) { - $objmid = $db->fetch_object($resultmid); - $salarystatic->fetch($objmid->id); - $ref=$langs->trans("SalaryPayment").' '.$salarystatic->getNomUrl(1); - } - else dol_print_error($db); - } elseif ($tabtype[$key] == 'payment_various') { $sqlmid = 'SELECT v.rowid as id'; @@ -928,18 +972,28 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; + // Ledger account print ""; + // Subledger account + print ""; if ($val['soclib'] == '') { - print ""; + print ""; } else { - print ""; + print ""; } print ""; print ""; @@ -955,13 +1009,36 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; + // Ledger account print ""; + // Subledger account + print ""; print ""; print ""; @@ -976,15 +1053,25 @@ if (empty($action) || $action == 'view') { print ""; print ""; print ""; + // Ledger account print ""; + // Subledger account + print ""; print ""; - print ""; + print ""; print ""; print ""; print ""; diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index e0341b5fa9c..0002bca413f 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -53,6 +53,7 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); $in_bookkeeping = GETPOST('in_bookkeeping'); +if ($in_bookkeeping == '') $in_bookkeeping = 'notyet'; $now = dol_now(); @@ -105,7 +106,9 @@ $sql .= " AND erd.fk_code_ventilation > 0"; $sql .= " AND er.entity IN (" . getEntity('expensereport', 0) . ")"; // We don't share object for accountancy if ($date_start && $date_end) $sql .= " AND er.date_debut >= '" . $db->idate($date_start) . "' AND er.date_debut <= '" . $db->idate($date_end) . "'"; -if ($in_bookkeeping == 'yes') +if ($in_bookkeeping == 'already') + $sql .= " AND er.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')"; +if ($in_bookkeeping == 'notyet') $sql .= " AND er.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')"; $sql .= " ORDER BY er.date_debut"; @@ -115,8 +118,8 @@ if ($result) { $num = $db->num_rows($result); // Variables - $account_salary = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT)) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : $langs->trans("CodeNotDef"); - $account_vat = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : $langs->trans("CodeNotDef"); + $account_salary = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT)) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'; + $account_vat = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined'; $taber = array (); $tabht = array (); @@ -469,7 +472,8 @@ if (empty($action) || $action == 'view') { $builddate = time(); $description.= $langs->trans("DescJournalOnlyBindedVisible").'
    '; - $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectyesno('in_bookkeeping',$in_bookkeeping,0); + $listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger")); + $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); $varlink = 'id_journal=' . $id_journal; diff --git a/htdocs/accountancy/journal/purchasesjournal.php b/htdocs/accountancy/journal/purchasesjournal.php index c4091018f16..4ef04f9f23f 100644 --- a/htdocs/accountancy/journal/purchasesjournal.php +++ b/htdocs/accountancy/journal/purchasesjournal.php @@ -52,6 +52,7 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); $in_bookkeeping = GETPOST('in_bookkeeping'); +if ($in_bookkeeping == '') $in_bookkeeping = 'notyet'; $now = dol_now(); @@ -109,7 +110,9 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { } if ($date_start && $date_end) $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'"; -if ($in_bookkeeping == 'yes') +if ($in_bookkeeping == 'already') + $sql .= " AND f.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')"; +if ($in_bookkeeping == 'notyet') $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='supplier_invoice')"; $sql .= " ORDER BY f.datef"; @@ -119,8 +122,8 @@ if ($result) { $num = $db->num_rows($result); // Variables - $cptfour = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : $langs->trans("CodeNotDef"); - $cpttva = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : $langs->trans("CodeNotDef"); + $cptfour = (! empty($conf->global->ACCOUNTING_ACCOUNT_SUPPLIER)) ? $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER : 'NotDefined'; + $cpttva = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined'; $tabfac = array (); $tabht = array (); @@ -139,9 +142,9 @@ if ($result) { $compta_prod = $obj->compte; if (empty($compta_prod)) { if ($obj->product_type == 0) - $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : $langs->trans("CodeNotDef"); + $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_BUY_ACCOUNT : 'NotDefined'; else - $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : $langs->trans("CodeNotDef"); + $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_BUY_ACCOUNT : 'NotDefined'; } $vatdata = getTaxesFromId($obj->tva_tx.($obj->vat_src_code?' ('.$obj->vat_src_code.')':''), $mysoc, $mysoc, 0); @@ -489,7 +492,8 @@ if (empty($action) || $action == 'view') { $description .= $langs->trans("DepositsAreIncluded"); } - $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectyesno('in_bookkeeping',$in_bookkeeping,0); + $listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger")); + $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); $varlink = 'id_journal=' . $id_journal; diff --git a/htdocs/accountancy/journal/sellsjournal.php b/htdocs/accountancy/journal/sellsjournal.php index 59b4a82cbde..3b0fd3abfce 100644 --- a/htdocs/accountancy/journal/sellsjournal.php +++ b/htdocs/accountancy/journal/sellsjournal.php @@ -56,6 +56,7 @@ $date_endmonth = GETPOST('date_endmonth'); $date_endday = GETPOST('date_endday'); $date_endyear = GETPOST('date_endyear'); $in_bookkeeping = GETPOST('in_bookkeeping'); +if ($in_bookkeeping == '') $in_bookkeeping = 'notyet'; $now = dol_now(); @@ -115,7 +116,9 @@ if (! empty($conf->global->FACTURE_DEPOSITS_ARE_JUST_PAYMENTS)) { $sql .= " AND fd.product_type IN (0,1)"; if ($date_start && $date_end) $sql .= " AND f.datef >= '" . $db->idate($date_start) . "' AND f.datef <= '" . $db->idate($date_end) . "'"; -if ($in_bookkeeping == 'yes') +if ($in_bookkeeping == 'already') + $sql .= " AND f.rowid IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; +if ($in_bookkeeping == 'notyet') $sql .= " AND f.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='customer_invoice')"; $sql .= " ORDER BY f.datef"; @@ -132,8 +135,8 @@ if ($result) { $num = $db->num_rows($result); // Variables - $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : $langs->trans("CodeNotDef"); - $cpttva = (! empty($conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT : $langs->trans("CodeNotDef"); + $cptcli = (! empty($conf->global->ACCOUNTING_ACCOUNT_CUSTOMER)) ? $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER : 'NotDefined'; + $cpttva = (! empty($conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_SOLD_ACCOUNT : 'NotDefined'; $i = 0; while ( $i < $num ) { @@ -145,9 +148,9 @@ if ($result) { $compta_prod = $obj->compte; if (empty($compta_prod)) { if ($obj->product_type == 0) - $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : $langs->trans("CodeNotDef"); + $compta_prod = (! empty($conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_PRODUCT_SOLD_ACCOUNT : 'NotDefined'; else - $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : $langs->trans("CodeNotDef"); + $compta_prod = (! empty($conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT)) ? $conf->global->ACCOUNTING_SERVICE_SOLD_ACCOUNT : 'NotDefined'; } $vatdata = getTaxesFromId($obj->tva_tx.($obj->vat_src_code?' ('.$obj->vat_src_code.')':''), $mysoc, $mysoc, 0); @@ -506,7 +509,9 @@ if (empty($action) || $action == 'view') { $description .= $langs->trans("DepositsAreNotIncluded"); else $description .= $langs->trans("DepositsAreIncluded"); - $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectyesno('in_bookkeeping',$in_bookkeeping,0); + + $listofchoices=array('already'=>$langs->trans("AlreadyInGeneralLedger"), 'notyet'=>$langs->trans("NotYetInGeneralLedger")); + $period = $form->select_date($date_start, 'date_start', 0, 0, 0, '', 1, 0, 1) . ' - ' . $form->select_date($date_end, 'date_end', 0, 0, 0, '', 1, 0, 1). ' - ' .$langs->trans("AlreadyInGeneralLedger").' '. $form->selectarray('in_bookkeeping', $listofchoices, $in_bookkeeping, 1); $varlink = 'id_journal=' . $id_journal; diff --git a/htdocs/compta/bank/bankentries.php b/htdocs/compta/bank/bankentries.php index 5a43548aed1..a58068c8798 100644 --- a/htdocs/compta/bank/bankentries.php +++ b/htdocs/compta/bank/bankentries.php @@ -35,6 +35,7 @@ require_once DOL_DOCUMENT_ROOT.'/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/bankcateg.class.php'; require_once DOL_DOCUMENT_ROOT.'/core/class/html.formother.class.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/sociales/class/chargesociales.class.php'; @@ -46,17 +47,7 @@ require_once DOL_DOCUMENT_ROOT.'/expensereport/class/paymentexpensereport.class. require_once DOL_DOCUMENT_ROOT.'/loan/class/loan.class.php'; require_once DOL_DOCUMENT_ROOT.'/fourn/class/paiementfourn.class.php'; -$langs->load("banks"); -$langs->load("bills"); -$langs->load("categories"); -$langs->load("companies"); -$langs->load("margins"); -$langs->load("salaries"); -$langs->load("loan"); -$langs->load("donations"); -$langs->load("trips"); -$langs->load("members"); -$langs->load("compta"); +$langs->loadLangs(array("banks","bills","categories","companies","margins","salaries","loan","donations","trips","members","compta","accountancy")); $id = GETPOST('id','int'); $ref = GETPOST('ref','alpha'); @@ -84,6 +75,7 @@ $debit=GETPOST("debit",'alpha'); $credit=GETPOST("credit",'alpha'); $type=GETPOST("type",'alpha'); $account=GETPOST("account",'int'); +$accountancy_code=GETPOST('accountancy_code', 'alpha'); $bid=GETPOST("bid","int"); $search_dt_start = dol_mktime(0, 0, 0, GETPOST('search_start_dtmonth', 'int'), GETPOST('search_start_dtday', 'int'), GETPOST('search_start_dtyear', 'int')); $search_dt_end = dol_mktime(0, 0, 0, GETPOST('search_end_dtmonth', 'int'), GETPOST('search_end_dtday', 'int'), GETPOST('search_end_dtyear', 'int')); @@ -276,11 +268,11 @@ if (GETPOST('save') && $id && ! $cancel && $user->rights->banque->modifier) $amount = - price2num($_POST["adddebit"]); } - $dateop = dol_mktime(12,0,0,$_POST["opmonth"],$_POST["opday"],$_POST["opyear"]); - $operation=$_POST["operation"]; - $num_chq=$_POST["num_chq"]; - $label=$_POST["label"]; - $cat1=$_POST["cat1"]; + $dateop = dol_mktime(12,0,0,$_POST["opmonth"],$_POST["opday"],$_POST["opyear"]); + $operation = GETPOST("operation",'alpha'); + $num_chq = GETPOST("num_chq",'alpha'); + $label = GETPOST("label",'alpha'); + $cat1 = GETPOST("cat1",'alpha'); if (! $dateop) { $error++; @@ -290,15 +282,24 @@ if (GETPOST('save') && $id && ! $cancel && $user->rights->banque->modifier) $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Type")), null, 'errors'); } + if (! $label) { + $error++; + setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Label")), null, 'errors'); + } if (! $amount) { $error++; setEventMessages($langs->trans("ErrorFieldRequired", $langs->trans("Amount")), null, 'errors'); } + if (! empty($conf->accounting->enabled) && (empty($accountancy_code) || $accountancy_code == '-1')) + { + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("AccountAccounting")), null, 'errors'); + $error++; + } if (! $error) { $object->fetch($id); - $insertid = $object->addline($dateop, $operation, $label, $amount, $num_chq, ($cat1 > 0 ? $cat1 : 0), $user); + $insertid = $object->addline($dateop, $operation, $label, $amount, $num_chq, ($cat1 > 0 ? $cat1 : 0), $user, '', '', $accountancy_code); if ($insertid > 0) { setEventMessages($langs->trans("RecordSaved"), null, 'mesgs'); @@ -331,6 +332,7 @@ if ($action == 'confirm_delete' && $confirm == 'yes' && $user->rights->banque->m $form = new Form($db); $formother = new FormOther($db); +$formaccounting = new FormAccounting($db); $companystatic=new Societe($db); $bankaccountstatic=new Account($db); @@ -408,19 +410,32 @@ if ($id > 0 || ! empty($ref)) dol_fiche_end(); + /* * Buttons actions */ + if ($action != 'reconcile') { print '
    '; if (empty($conf->global->BANK_DISABLE_DIRECT_INPUT)) { - if ($user->rights->banque->modifier) { - print ''.$langs->trans("AddBankRecord").''; - } else { - print ''.$langs->trans("AddBankRecord").''; + if (! empty($conf->global->BANK_USE_VARIOUS_PAYMENT)) // If direct entries is done using miscellaneous payments + { + if ($user->rights->banque->modifier) { + print ''.$langs->trans("AddBankRecord").''; + } else { + print ''.$langs->trans("AddBankRecord").''; + } + } + else // If direct entries is not done using miscellaneous payments + { + if ($user->rights->banque->modifier) { + print ''.$langs->trans("AddBankRecord").''; + } else { + print ''.$langs->trans("AddBankRecord").''; + } } } else @@ -637,6 +652,59 @@ if ($resql) // print '
    '.$objp->num_paiement.''; if ($objp->bid) print ''.img_object($langs->trans("ShowAccount"),'account').' '.dol_trunc($objp->label,24).''; else print ' '; From de66971d93437c90790d18ffc3d8fa560f72214a Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Fri, 14 Jul 2017 15:49:33 +0200 Subject: [PATCH 352/515] Fix bad setup --- htdocs/core/modules/modFournisseur.class.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/htdocs/core/modules/modFournisseur.class.php b/htdocs/core/modules/modFournisseur.class.php index 233b1601842..74c0070c92e 100644 --- a/htdocs/core/modules/modFournisseur.class.php +++ b/htdocs/core/modules/modFournisseur.class.php @@ -96,12 +96,14 @@ class modFournisseur extends DolibarrModules $this->const[$r][4] = 0; $r++; + /* For supplier invoice, we must not have default pdf template on. In most cases, we need to join PDF from supplier, not have a document generated. $this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_PDF"; $this->const[$r][1] = "chaine"; $this->const[$r][2] = "canelle"; $this->const[$r][3] = 'Nom du gestionnaire de generation des factures fournisseur en PDF'; $this->const[$r][4] = 0; $r++; + */ $this->const[$r][0] = "INVOICE_SUPPLIER_ADDON_NUMBER"; $this->const[$r][1] = "chaine"; @@ -272,12 +274,12 @@ class modFournisseur extends DolibarrModules $this->rights[$r][5] = 'approve2'; } - + // Menus //------- $this->menu = 1; // This module add menu entries. They are coded into menu manager. - - + + // Exports //-------- $r=0; From 8ef5fcd90a507747cf08157a27a3be36fe8b369e Mon Sep 17 00:00:00 2001 From: Articoder InfoSec Team Date: Fri, 14 Jul 2017 15:57:22 -0700 Subject: [PATCH 353/515] Reason: similar change is present elsewhere in the code Notes: please review carefully before accepting. patch propagation. manual test run. Reviewed By: https://github.com/dchichkov Cherry picked from: === From 0d62bd704e7a61d66842a7c91cf3e50a249461f9 Mon Sep 17 00:00:00 2001 From: Juanjo Menent Date: Wed, 22 Jun 2016 18:59:51 +0200 Subject: [PATCH] Fix: Bad column totalizing if MAIN_SHOW_HT_ON_SUMMARY activated --- htdocs/compta/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/compta/index.php b/htdocs/compta/index.php index 321c2456ddd..46104845ba0 100644 --- a/htdocs/compta/index.php +++ b/htdocs/compta/index.php @@ -378,7 +378,7 @@ if (! empty($conf->facture->enabled) && $user->rights->facture->lire) print '
    -" . $langs->trans("Date") . "" . $langs->trans("Piece") . ' (' . $langs->trans("InvoiceRef") . ")" . $langs->trans("AccountAccounting") . "" . $langs->trans("SubledgerAccount") . "" . $langs->trans("Type") . "" . $langs->trans("PaymentMode") . "" . $langs->trans("Debit") . "" . $date . "" . $ref . ""; - $accountoshow = length_accountg($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + $accounttoshow = length_accountg($k); + if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { print ''.$langs->trans("BankAccountNotDefined").''; } - else print $accountoshow; + else print $accounttoshow; + print ""; + /*$accounttoshow = length_accountg($k); + if (empty($accounttoshow) || $accounttoshow == 'NotDefined') + { + print ''.$langs->trans("BankAccountNotDefined").''; + } + else print $accounttoshow;*/ print "" . $bankstatic->label . " - " . $reflabel . "" . $langs->trans("Bank") . " - " . $reflabel . "" . $bankstatic->label . " - " . $val['soclib'] . "" . $langs->trans("Bank") . " - " . $val['soclib'] . "" . $val["type_payment"] . "" . ($mt >= 0 ? price($mt) : '') . "" . $date . "" . $ref . ""; - $accountoshow = length_accounta($k); - if (empty($accountoshow) || $accountoshow == 'NotDefined') + $account_ledger = $k; + if ($tabtype[$key] == 'payment') $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_CUSTOMER; + if ($tabtype[$key] == 'payment_supplier') $account_ledger = $conf->global->ACCOUNTING_ACCOUNT_SUPPLIER; + if ($tabtype[$key] == 'payment_expensereport') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + if ($tabtype[$key] == 'payment_salary') $account_ledger = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $accounttoshow = length_accounta($account_ledger); + if (empty($accounttoshow) || $accounttoshow == 'NotDefined') { - print ''.$langs->trans("ThirdpartyAccountNotDefined").''; + $errorstring='ThirdpartyDefaultAccountNotDefined'; + if ($tabtype[$key] == 'payment') $errorstring='MainAccountForCustomersNotDefined'; + if ($tabtype[$key] == 'payment_supplier') $errorstring='MainAccountForSuppliersNotDefined'; + if ($tabtype[$key] == 'payment_expensereport') $errorstring='MainAccountForUsersNotDefined'; + if ($tabtype[$key] == 'payment_salary') $errorstring='MainAccountForUsersNotDefined'; + print ''.$langs->trans($errorstring).''; + } + else print $accounttoshow; + print ""; + $accounttoshowsubledger = length_accounta($k); + if ($accounttoshow != $accounttoshowsubledger) + { + if (empty($accounttoshowsubledger) || $accounttoshowsubledger == 'NotDefined') + { + print ''.$langs->trans("ThirdpartyAccountNotDefined").''; + } + else print $accounttoshowsubledger; } - else print $accountoshow; print "" . $reflabel . ' ' . $val['soclib'] . "" . $val["type_payment"] . "" . $date . "" . $ref . ""; - if (empty($accountoshow) || $accountoshow == 'NotDefined') + /*if (empty($accounttoshow) || $accounttoshow == 'NotDefined') + { + print ''.$langs->trans("WaitAccountNotDefined").''; + } + else */ print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE); + print ""; + /*if (empty($accounttoshowsubledger) || $accounttoshowsubledger == 'NotDefined') { print ''.$langs->trans("WaitAccountNotDefined").''; } else print length_accountg($conf->global->ACCOUNTING_ACCOUNT_SUSPENSE); + */ print "" . $reflabel . " " . $val["type_payment"] . "" . ($mt < 0 ? price(- $mt) : '') . "" . ($mt >= 0 ? price($mt) : '') . "
    '; } + // Form to add a transaction with no invoice + if ($user->rights->banque->modifier && $action == 'addline') + { + print load_fiche_titre($langs->trans("AddBankRecordLong"),'',''); + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + if (! empty($conf->accounting->enabled)) + { + print ''; + } + print ''; + print ''; + + print ''; + print ''; + print ''; + print ''; + print ''; + print ''; + if (! empty($conf->accounting->enabled)) + { + print ''; + } + print ''; + print '
    '.$langs->trans("Date").' '.$langs->trans("Type").''.$langs->trans("Numero").''.$langs->trans("Description").''.$langs->trans("Debit").''.$langs->trans("Credit").''; + print $langs->trans("AccountAccounting"); + print ' 
    '; + $form->select_date(empty($dateop)?-1:$dateop,'op',0,0,0,'transaction'); + print ''; + $form->select_types_paiements((GETPOST('operation')?GETPOST('operation'):($object->courant == Account::TYPE_CASH ? 'LIQ' : '')),'operation','1,2',2,1); + print ''; + print ''; + print ''; + if ($options) { + print '
    '.$langs->trans("Rubrique").': '; + print Form::selectarray('cat1', $options, GETPOST('cat1'), 1); + } + print '
    '; + print $formaccounting->select_account($accountancy_code, 'accountancy_code', 1, null, 1, 1, ''); + print ''; + print '
    '; + print ''; + print '
    '; + print '
    '; + } /// ajax to adjust value date with plus and less picto print ' diff --git a/htdocs/compta/bank/class/account.class.php b/htdocs/compta/bank/class/account.class.php index 43b6dace19c..08631abec79 100644 --- a/htdocs/compta/bank/class/account.class.php +++ b/htdocs/compta/bank/class/account.class.php @@ -39,7 +39,7 @@ class Account extends CommonObject public $element = 'bank_account'; public $table_element = 'bank_account'; public $picto = 'account'; - + /** * @var int Use id instead of rowid * @deprecated @@ -394,9 +394,10 @@ class Account extends CommonObject * @param User $user User that create * @param string $emetteur Name of cheque writer * @param string $banque Bank of cheque writer + * @param string $accountancycode When we record a free bank entry, we must provide accounting account if accountancy module is on. * @return int Rowid of added entry, <0 if KO */ - function addline($date, $oper, $label, $amount, $num_chq, $categorie, User $user, $emetteur='',$banque='') + function addline($date, $oper, $label, $amount, $num_chq, $categorie, User $user, $emetteur='',$banque='', $accountancycode='') { // Deprecatîon warning if (is_numeric($oper)) { @@ -456,6 +457,7 @@ class Account extends CommonObject $accline->fk_user_author = $user->id; $accline->fk_account = $this->rowid; $accline->fk_type = $oper; + $accline->numero_compte = $accountancycode; if ($num_chq) { $accline->num_chq = $num_chq; @@ -538,7 +540,7 @@ class Account extends CommonObject $now=dol_now(); $this->db->begin(); - + $sql = "INSERT INTO ".MAIN_DB_PREFIX."bank_account ("; $sql.= "datec"; $sql.= ", ref"; @@ -619,14 +621,14 @@ class Account extends CommonObject $result=$this->insertExtraFields(); if ($result < 0) $error++; } - + if (! $error && ! $notrigger) { // Call trigger $result=$this->call_trigger('BANKACCOUNT_CREATE',$user); if ($result < 0) $error++; // End call triggers - } + } } else { @@ -670,9 +672,9 @@ class Account extends CommonObject global $langs,$conf, $hookmanager; $error=0; - + $this->db->begin(); - + // Clean parameters $this->state_id = ($this->state_id?$this->state_id:$this->state_id); $this->country_id = ($this->country_id?$this->country_id:$this->country_id); @@ -739,7 +741,7 @@ class Account extends CommonObject if ($result < 0) $error++; } } - + if (! $error && ! $notrigger) { // Call trigger @@ -754,7 +756,7 @@ class Account extends CommonObject $this->error=$this->db->lasterror(); dol_print_error($this->db); } - + if (! $error) { $this->db->commit(); @@ -906,7 +908,7 @@ class Account extends CommonObject $this->date_creation = $this->db->jdate($obj->date_creation); $this->date_update = $this->db->jdate($obj->date_update); - + // Retreive all extrafield for thirdparty // fetch optionals attributes and labels require_once(DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'); @@ -983,15 +985,15 @@ class Account extends CommonObject global $conf; $error=0; - + $this->db->begin(); - + // Delete link between tag and bank account if (! $error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_account"; $sql.= " WHERE fk_account = ".$this->id; - + $resql = $this->db->query($sql); if (!$resql) { @@ -999,15 +1001,15 @@ class Account extends CommonObject $this->error = "Error ".$this->db->lasterror(); } } - + if (! $error) { $sql = "DELETE FROM ".MAIN_DB_PREFIX."bank_account"; $sql.= " WHERE rowid = ".$this->rowid; - + dol_syslog(get_class($this)."::delete", LOG_DEBUG); $result = $this->db->query($sql); - if ($result) + if ($result) { // Remove extrafields if ((empty($conf->global->MAIN_EXTRAFIELDS_DISABLED))) // For avoid conflicts if trigger used @@ -1020,13 +1022,13 @@ class Account extends CommonObject } } } - else + else { $error++; $this->error = "Error ".$this->db->lasterror(); - } + } } - + if (! $error) { $this->db->commit(); @@ -1433,7 +1435,7 @@ class Account extends CommonObject * - DeskCode * * Some countries show less or more bank account properties to the user - * + * * @param int $includeibanbic 1=Return also key for IBAN and BIC * @return array * @see useDetailedBBAN @@ -1554,7 +1556,7 @@ class AccountLine extends CommonObject var $element='bank'; var $table_element='bank'; var $picto = 'generic'; - + var $id; var $ref; var $datec; @@ -1683,8 +1685,9 @@ class AccountLine extends CommonObject $sql .= ", num_chq"; $sql .= ", fk_account"; $sql .= ", fk_type"; - $sql .= ",emetteur,banque"; + $sql .= ", emetteur,banque"; $sql .= ", rappro"; + $sql .= ", numero_compte"; $sql .= ") VALUES ("; $sql .= "'".$this->db->idate($this->datec)."'"; $sql .= ", '".$this->db->idate($this->dateo)."'"; @@ -1698,6 +1701,7 @@ class AccountLine extends CommonObject $sql .= ", ".($this->emetteur ? "'".$this->db->escape($this->emetteur)."'" : "null"); $sql .= ", ".($this->bank_chq ? "'".$this->db->escape($this->bank_chq)."'" : "null"); $sql .= ", ".(int) $this->rappro; + $sql .= ", ".($this->numero_compte ? "'".$this->db->escape($this->numero_compte)."'" : "''"); $sql .= ")"; dol_syslog(get_class($this)."::insert", LOG_DEBUG); @@ -1842,7 +1846,7 @@ class AccountLine extends CommonObject function update_conciliation(User $user, $cat) { global $conf; - + $this->db->begin(); // Check statement field @@ -1854,7 +1858,7 @@ class AccountLine extends CommonObject return -1; } } - + $sql = "UPDATE ".MAIN_DB_PREFIX."bank SET"; $sql.= " rappro = 1"; $sql.= ", num_releve = '".$this->db->escape($this->num_releve)."'"; @@ -2042,7 +2046,7 @@ class AccountLine extends CommonObject return $result; } - + /** * Return label of status (activity, closed) * @@ -2053,7 +2057,7 @@ class AccountLine extends CommonObject { return $this->LibStatut($this->status,$mode); } - + /** * Renvoi le libelle d'un statut donne * @@ -2097,6 +2101,6 @@ class AccountLine extends CommonObject if ($statut==1) return $langs->trans("InActivity").' '.img_picto($langs->trans("InActivity"),'statut4', 'class="pictostatus"'); }*/ } - + } diff --git a/htdocs/compta/bank/class/paymentvarious.class.php b/htdocs/compta/bank/class/paymentvarious.class.php index 939872ce7fd..9812269dcb6 100644 --- a/htdocs/compta/bank/class/paymentvarious.class.php +++ b/htdocs/compta/bank/class/paymentvarious.class.php @@ -325,14 +325,14 @@ class PaymentVarious extends CommonObject $sql.= " VALUES ("; $sql.= "'".$this->db->idate($this->datep)."'"; $sql.= ", '".$this->db->idate($this->datev)."'"; - $sql.= ", '".$this->sens."'"; + $sql.= ", '".$this->db->escape($this->sens)."'"; $sql.= ", ".$this->amount; - $sql.= ", '".$this->type_payment."'"; - $sql.= ", '".$this->num_payment."'"; + $sql.= ", '".$this->db->escape($this->type_payment)."'"; + $sql.= ", '".$this->db->escape($this->num_payment)."'"; if ($this->note) $sql.= ", '".$this->db->escape($this->note)."'"; $sql.= ", '".$this->db->escape($this->label)."'"; - $sql.= ", '".$this->accountancy_code."'"; - $sql.= ", '".$user->id."'"; + $sql.= ", '".$this->db->escape($this->accountancy_code)."'"; + $sql.= ", ".$user->id; $sql.= ", '".$this->db->idate($now)."'"; $sql.= ", NULL"; $sql.= ", ".$conf->entity; @@ -342,7 +342,6 @@ class PaymentVarious extends CommonObject $result = $this->db->query($sql); if ($result) { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."payment_various"); if ($this->id > 0) diff --git a/htdocs/compta/bank/various_payment/card.php b/htdocs/compta/bank/various_payment/card.php index e19deca91c9..f75c111094d 100644 --- a/htdocs/compta/bank/various_payment/card.php +++ b/htdocs/compta/bank/various_payment/card.php @@ -29,15 +29,14 @@ require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/core/class/html.formaccounting.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT.'/accountancy/class/accountingaccount.class.php'; -$langs->load("compta"); -$langs->load("banks"); -$langs->load("bills"); -$langs->load("users"); -$langs->load("accountancy"); +$langs->loadLangs(array("compta", "banks", "bills", "users", "accountancy")); + +// Get parameters +$id = GETPOST('id', 'int'); +$action = GETPOST('action', 'alpha'); +$cancel = GETPOST('cancel', 'aZ09'); +$backtopage = GETPOST('backtopage', 'alpha'); -$id=GETPOST("id",'int'); -$action=GETPOST('action','alpha'); -$cancel=GETPOST('cancel','alpha'); $accountid=GETPOST("accountid") > 0 ? GETPOST("accountid","int") : 0; $label=GETPOST("label","alpha"); $sens=GETPOST("sens","int"); @@ -61,115 +60,139 @@ $hookmanager->initHooks(array('variouscard','globalcard')); * Actions */ -if (! empty($cancel)) +$parameters=array(); +$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks +if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors'); + +if (empty($reshook)) { - header("Location: index.php"); - exit; -} - -if ($action == 'add' && empty($cancel)) -{ - $error=0; - - $datep=dol_mktime(12,0,0, GETPOST("datepmonth"), GETPOST("datepday"), GETPOST("datepyear")); - $datev=dol_mktime(12,0,0, GETPOST("datevmonth"), GETPOST("datevday"), GETPOST("datevyear")); - if (empty($datev)) $datev=$datep; - - $object->accountid=GETPOST("accountid") > 0 ? GETPOST("accountid","int") : 0; - $object->datev=$datev; - $object->datep=$datep; - $object->amount=price2num(GETPOST("amount")); - $object->label=GETPOST("label"); - $object->note=GETPOST("note"); - $object->type_payment=GETPOST("paymenttype") > 0 ? GETPOST("paymenttype", "int") : 0; - $object->num_payment=GETPOST("num_payment"); - $object->fk_user_author=$user->id; - $object->accountancy_code=GETPOST("accountancy_code") > 0 ? GETPOST("accountancy_code","int") : ""; - - if (empty($datep) || empty($datev)) + if ($cancel) { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); - $error++; - } - if (empty($object->type_payment) || $object->type_payment < 0) - { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("PaymentMode")), null, 'errors'); - $error++; - } - if (empty($object->amount)) - { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); - $error++; - } - if (! empty($conf->banque->enabled) && ! $object->accountid > 0) - { - setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); - $error++; - } - - if (! $error) - { - $db->begin(); - - $ret=$object->create($user); - if ($ret > 0) + if ($action != 'addlink') { - $db->commit(); - header("Location: index.php"); + $urltogo=$backtopage?$backtopage:dol_buildpath('/mymodule/myobject_list.php',1); + header("Location: ".$urltogo); exit; } - else - { - $db->rollback(); - setEventMessages($object->error, $object->errors, 'errors'); - $action="create"; - } + if ($id > 0 || ! empty($ref)) $ret = $object->fetch($id,$ref); + $action=''; } - $action='create'; -} - -if ($action == 'delete') -{ - $result=$object->fetch($id); - - if ($object->rappro == 0) + if ($action == 'add') { - $db->begin(); + $error=0; - $ret=$object->delete($user); - if ($ret > 0) + $datep=dol_mktime(12,0,0, GETPOST("datepmonth"), GETPOST("datepday"), GETPOST("datepyear")); + $datev=dol_mktime(12,0,0, GETPOST("datevmonth"), GETPOST("datevday"), GETPOST("datevyear")); + if (empty($datev)) $datev=$datep; + + $object->accountid=GETPOST("accountid") > 0 ? GETPOST("accountid","int") : 0; + $object->datev=$datev; + $object->datep=$datep; + $object->amount=price2num(GETPOST("amount")); + $object->label=GETPOST("label"); + $object->note=GETPOST("note"); + $object->type_payment=GETPOST("paymenttype") > 0 ? GETPOST("paymenttype", "int") : 0; + $object->num_payment=GETPOST("num_payment"); + $object->fk_user_author=$user->id; + $object->accountancy_code=GETPOST("accountancy_code") > 0 ? GETPOST("accountancy_code","int") : ""; + $object->sens=GETPOST('sens'); + + if (empty($datep) || empty($datev)) { - if ($object->fk_bank) - { - $accountline=new AccountLine($db); - $result=$accountline->fetch($object->fk_bank); - if ($result > 0) $result=$accountline->delete($user); // $result may be 0 if not found (when bank entry was deleted manually and fk_bank point to nothing) - } + $langs->load('errors'); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Date")), null, 'errors'); + $error++; + } + if (empty($object->type_payment) || $object->type_payment < 0) + { + $langs->load('errors'); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("PaymentMode")), null, 'errors'); + $error++; + } + if (empty($object->amount)) + { + $langs->load('errors'); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("Amount")), null, 'errors'); + $error++; + } + if (! empty($conf->banque->enabled) && ! $object->accountid > 0) + { + $langs->load('errors'); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("BankAccount")), null, 'errors'); + $error++; + } + if (! empty($conf->accounting->enabled) && ! $object->accountancy_code) + { + $langs->load('errors'); + setEventMessages($langs->trans("ErrorFieldRequired", $langs->transnoentitiesnoconv("AccountAccounting")), null, 'errors'); + $error++; + } - if ($result >= 0) + if (! $error) + { + $db->begin(); + + $ret=$object->create($user); + if ($ret > 0) { $db->commit(); - header("Location: ".DOL_URL_ROOT.'/compta/salaries/index.php'); + header("Location: index.php"); exit; } else { - $object->error=$accountline->error; + $db->rollback(); + setEventMessages($object->error, $object->errors, 'errors'); + $action="create"; + } + } + + $action='create'; + } + + if ($action == 'delete') + { + $result=$object->fetch($id); + + if ($object->rappro == 0) + { + $db->begin(); + + $ret=$object->delete($user); + if ($ret > 0) + { + if ($object->fk_bank) + { + $accountline=new AccountLine($db); + $result=$accountline->fetch($object->fk_bank); + if ($result > 0) $result=$accountline->delete($user); // $result may be 0 if not found (when bank entry was deleted manually and fk_bank point to nothing) + } + + if ($result >= 0) + { + $db->commit(); + header("Location: ".DOL_URL_ROOT.'/compta/salaries/index.php'); + exit; + } + else + { + $object->error=$accountline->error; + $db->rollback(); + setEventMessages($object->error, $object->errors, 'errors'); + } + } + else + { $db->rollback(); setEventMessages($object->error, $object->errors, 'errors'); } } else { - $db->rollback(); - setEventMessages($object->error, $object->errors, 'errors'); + setEventMessages('Error try do delete a line linked to a conciliated bank transaction', null, 'errors'); } } - else - { - setEventMessages('Error try do delete a line linked to a conciliated bank transaction', null, 'errors'); - } } @@ -200,8 +223,9 @@ if ($id) /* ************************************************************************** */ if ($action == 'create') { - print ''; + print ''; print ''; + print ''; print ''; print load_fiche_titre($langs->trans("NewVariousPayment"),'', 'title_accountancy.png'); @@ -269,7 +293,7 @@ if ($action == 'create') // Accountancy account if (! empty($conf->accounting->enabled)) { - print ''.$langs->trans("AccountAccounting").''; + print ''.$langs->trans("AccountAccounting").''; print ''; print $formaccounting->select_account($accountancy_code, 'accountancy_code', 1, null, 1, 1, ''); print ''; @@ -292,7 +316,7 @@ if ($action == 'create') print '
    '; print ''; - print '     '; + print '   '; print ''; print '
    '; diff --git a/htdocs/compta/bank/various_payment/index.php b/htdocs/compta/bank/various_payment/index.php index 3fce9c30fd6..5b2488cc5e8 100644 --- a/htdocs/compta/bank/various_payment/index.php +++ b/htdocs/compta/bank/various_payment/index.php @@ -1,5 +1,6 @@ + * Copyright (C) 2017 Laurent Destailleur * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,9 +17,9 @@ */ /** - * \file htdocs/compta/bank/various_payment/index.php - * \ingroup bank - * \brief List of various payments + * \file htdocs/compta/bank/various_payment/index.php + * \ingroup bank + * \brief List of various payments */ require '../../../main.inc.php'; @@ -34,6 +35,8 @@ $socid = GETPOST("socid","int"); if ($user->societe_id) $socid=$user->societe_id; $result = restrictedArea($user, 'banque', '', '', ''); +$optioncss = GETPOST('optioncss','alpha'); + $limit = GETPOST('limit')?GETPOST('limit','int'):$conf->liste_limit; $search_ref = GETPOST('search_ref','int'); $search_user = GETPOST('search_user','alpha'); @@ -50,11 +53,10 @@ $pageprev = $page - 1; $pagenext = $page + 1; if (! $sortfield) $sortfield="v.datep"; if (! $sortorder) $sortorder="DESC"; -$optioncss = GETPOST('optioncss','alpha'); -$filtre=$_GET["filtre"]; +$filtre=GETPOST("filtre",'alpha'); -if (empty($_REQUEST['typeid'])) +if (! GETPOST('typeid')) { $newfiltre=str_replace('filtre=','',$filtre); $filterarray=explode('-',$newfiltre); @@ -66,7 +68,7 @@ if (empty($_REQUEST['typeid'])) } else { - $typeid=$_REQUEST['typeid']; + $typeid=GETPOST('typeid'); } if (GETPOST('button_removefilter_x','alpha') || GETPOST('button_removefilter.x','alpha') || GETPOST('button_removefilter','alpha')) // All test are required to be compatible with all browsers @@ -240,9 +242,12 @@ if ($result) $colspan=4; if (! empty($conf->banque->enabled)) $colspan++; - print ''.$langs->trans("Total").''; + print ''; + print ''.$langs->trans("Total").''; print ''.price($total).""; - print ""; + print ''; + print ''; + print ''; print ""; print '
    '; diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index 89b4f9cd00c..d18da18ac6a 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -122,6 +122,8 @@ ALTER TABLE llx_actioncomm ADD COLUMN extraparams varchar(255); ALTER TABLE llx_bank_account ADD COLUMN extraparams varchar(255); +ALTER TABLE llx_bank ADD COLUMN numero_compte varchar(32) NULL; + -- VMYSQL4.1 ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer DEFAULT NULL; -- VPGSQL8.2 ALTER TABLE llx_bank_account MODIFY COLUMN state_id integer USING state_id::integer; diff --git a/htdocs/install/mysql/tables/llx_bank.sql b/htdocs/install/mysql/tables/llx_bank.sql index 5ea55b146bd..6c2c8d34537 100644 --- a/htdocs/install/mysql/tables/llx_bank.sql +++ b/htdocs/install/mysql/tables/llx_bank.sql @@ -32,6 +32,7 @@ create table llx_bank fk_type varchar(6), -- TIP,VIR,PRE,CB,CHQ,... (Code in llx_c_paiement) num_releve varchar(50), num_chq varchar(50), + numero_compte varchar(32) NULL, -- FEC:CompteNum | account number rappro tinyint default 0, note text, fk_bordereau integer DEFAULT 0, diff --git a/htdocs/langs/en_US/accountancy.lang b/htdocs/langs/en_US/accountancy.lang index 34e352205b0..8cfdbed4728 100644 --- a/htdocs/langs/en_US/accountancy.lang +++ b/htdocs/langs/en_US/accountancy.lang @@ -28,7 +28,13 @@ OverviewOfAmountOfLinesBound=Overview of amount of lines already bound to accoun OtherInfo=Other information DeleteCptCategory=Remove accounting account from group ConfirmDeleteCptCategory=Are you sure you want to remove this accounting account from the accounting account group ? +JournalizationInLedgerStatus=Status of journalization AlreadyInGeneralLedger=Already journalized in ledgers +NotYetInGeneralLedger=Not yet journalized in ledgers + +MainAccountForCustomersNotDefined=Main accounting account for customers not defined in setup +MainAccountForSuppliersNotDefined=Main accounting account for suppliers not defined in setup +MainAccountForUsersNotDefined=Main accounting account for users not defined in setup AccountancyArea=Accountancy area AccountancyAreaDescIntro=Usage of the accountancy module is done in several step: @@ -154,7 +160,7 @@ DelBookKeeping=Delete record of the Ledger FinanceJournal=Finance journal ExpenseReportsJournal=Expense reports journal DescFinanceJournal=Finance journal including all the types of payments by bank account -DescJournalOnlyBindedVisible=This is a view of record that are bound to products/services accountancy account and can be recorded into the Ledger. +DescJournalOnlyBindedVisible=This is a view of record that are bound to accountancy account and can be recorded into the Ledger. VATAccountNotDefined=Account for VAT not defined ThirdpartyAccountNotDefined=Account for third party not defined ProductAccountNotDefined=Account for product not defined diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index 3f995673f88..6e2f19f5f36 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -151,7 +151,7 @@ CheckRejectedAndInvoicesReopened=Check returned and invoices reopened BankAccountModelModule=Document templates for bank accounts DocumentModelSepaMandate=Template of SEPA mandate. Usefull for european countries in EEC only. DocumentModelBan=Template to print a page with BAN information. -NewVariousPayment=New miscellaneous payment -VariousPayment=Miscellaneous payment +NewVariousPayment=New miscellaneous payments +VariousPayment=Miscellaneous payments VariousPayments=Miscellaneous payments -ShowVariousPayment=Show miscellaneous payment +ShowVariousPayment=Show miscellaneous payments diff --git a/htdocs/langs/en_US/compta.lang b/htdocs/langs/en_US/compta.lang index 6f8a1b5e301..79ad6cfd628 100644 --- a/htdocs/langs/en_US/compta.lang +++ b/htdocs/langs/en_US/compta.lang @@ -191,9 +191,9 @@ ACCOUNTING_VAT_SOLD_ACCOUNT=Accounting account by default for collecting VAT - V ACCOUNTING_VAT_BUY_ACCOUNT=Accounting account by default for recovered VAT - VAT on purchases (used if not defined on VAT dictionary setup) ACCOUNTING_VAT_PAY_ACCOUNT=Accounting account by default for paying VAT ACCOUNTING_ACCOUNT_CUSTOMER=Accounting account used for customer third parties -ACCOUNTING_ACCOUNT_CUSTOMER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated customer accouting account on third party is not defined +ACCOUNTING_ACCOUNT_CUSTOMER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated customer accouting account on third party is not defined. ACCOUNTING_ACCOUNT_SUPPLIER=Accounting account used for supplier third parties -ACCOUNTING_ACCOUNT_SUPPLIER_Desc=Dedicated accounting account defined on third party card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined +ACCOUNTING_ACCOUNT_SUPPLIER_Desc=The dedicated accounting account defined on third party card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated supplier accouting account on third party is not defined. CloneTax=Clone a social/fiscal tax ConfirmCloneTax=Confirm the clone of a social/fiscal tax payment CloneTaxForNextMonth=Clone it for next month diff --git a/htdocs/langs/en_US/salaries.lang b/htdocs/langs/en_US/salaries.lang index 522bf0a65d7..7e0c80d3380 100644 --- a/htdocs/langs/en_US/salaries.lang +++ b/htdocs/langs/en_US/salaries.lang @@ -1,6 +1,6 @@ # Dolibarr language file - Source file is en_US - salaries SALARIES_ACCOUNTING_ACCOUNT_PAYMENT=Accounting account used for user third parties -SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=Dedicated accounting account defined on user card will be used for Subledger accouting, this one for General Ledger or as default value of Subledger accounting if dedicated user accouting account on user is not defined +SALARIES_ACCOUNTING_ACCOUNT_PAYMENT_Desc=The dedicated accounting account defined on user card will be used for Subledger accouting only. This one will be used for General Ledger and as default value of Subledger accounting if dedicated user accouting account on user is not defined. SALARIES_ACCOUNTING_ACCOUNT_CHARGE=Accounting account by default for personnel expenses Salary=Salary Salaries=Salaries diff --git a/htdocs/modulebuilder/template/myobject_card.php b/htdocs/modulebuilder/template/myobject_card.php index fefd1f78d9d..994aca35c88 100644 --- a/htdocs/modulebuilder/template/myobject_card.php +++ b/htdocs/modulebuilder/template/myobject_card.php @@ -258,10 +258,11 @@ if ($action == 'create') print load_fiche_titre($langs->trans("NewObject", $langs->transnoentitiesnoconv("MyObject"))); print ''; + print ''; print ''; print ''; - dol_fiche_head(); + dol_fiche_head(array(), ''); print ''."\n"; foreach($object->fields as $key => $val) @@ -277,7 +278,7 @@ if ($action == 'create') dol_fiche_end(); - print '
     
    '; + print '
     
    '; print ''; } From 2166b3d467f38e401690a3f5400431dc99962f2e Mon Sep 17 00:00:00 2001 From: hguibourgdev Date: Sat, 15 Jul 2017 12:04:59 +0200 Subject: [PATCH 356/515] Update card.php FIX "!" is missing on test : empty($object->date_livraison) --- htdocs/commande/card.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/htdocs/commande/card.php b/htdocs/commande/card.php index d99aa6a4f46..c4bb0ace2f2 100644 --- a/htdocs/commande/card.php +++ b/htdocs/commande/card.php @@ -2084,7 +2084,7 @@ if ($action == 'create' && $user->rights->commande->creer) print ''; } else { print $object->date ? dol_print_date($object->date, 'day') : ' '; - if ($object->hasDelay() && empty($object->date_livraison)) { + if ($object->hasDelay() && ! empty($object->date_livraison)) { print ' '.img_picto($langs->trans("Late").' : '.$object->showDelay(), "warning"); } } From 0763d15b4c5d4418b1a1e9126928697208042ff2 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 15 Jul 2017 12:37:31 +0200 Subject: [PATCH 357/515] Debug journalization Debug edition of user BAN. --- .../journal/expensereportsjournal.php | 166 ++++++---- .../accountancy/journal/purchasesjournal.php | 228 ++++++++------ htdocs/accountancy/journal/sellsjournal.php | 297 ++++++++++-------- htdocs/core/menus/standard/eldy.lib.php | 6 +- htdocs/core/modules/modAccounting.class.php | 2 +- htdocs/core/modules/modSalaries.class.php | 12 +- htdocs/user/bank.php | 97 ++++-- htdocs/user/class/userbankaccount.class.php | 3 +- 8 files changed, 487 insertions(+), 324 deletions(-) diff --git a/htdocs/accountancy/journal/expensereportsjournal.php b/htdocs/accountancy/journal/expensereportsjournal.php index 0002bca413f..fb1e77d1c5c 100644 --- a/htdocs/accountancy/journal/expensereportsjournal.php +++ b/htdocs/accountancy/journal/expensereportsjournal.php @@ -36,12 +36,7 @@ require_once DOL_DOCUMENT_ROOT . '/expensereport/class/expensereport.class.php'; require_once DOL_DOCUMENT_ROOT . '/user/class/user.class.php'; require_once DOL_DOCUMENT_ROOT . '/accountancy/class/bookkeeping.class.php'; -$langs->load("compta"); -$langs->load("bills"); -$langs->load("other"); -$langs->load("main"); -$langs->load("accountancy"); -$langs->load("trips"); +$langs->loadLangs(array("commercial", "compta","bills","other","accountancy","trips","errors")); $id_journal = GETPOST('id_journal', 'int'); $action = GETPOST('action','aZ09'); @@ -91,7 +86,7 @@ if (empty($date_start) || empty($date_end)) // We define date_start and date_end $idpays = $mysoc->country_id; $sql = "SELECT er.rowid, er.ref, er.date_debut as de,"; -$sql .= " erd.rowid as erdid, erd.comments, erd.total_ttc, erd.tva_tx, erd.total_ht, erd.total_tva, erd.fk_code_ventilation, erd.vat_src_code, "; +$sql .= " erd.rowid as erdid, erd.comments, erd.total_ht, erd.total_tva, erd.total_localtax1, erd.total_localtax2, erd.tva_tx, erd.total_ttc, erd.fk_code_ventilation, erd.vat_src_code, "; $sql .= " u.rowid as uid, u.firstname, u.lastname, u.accountancy_code as user_accountancy_account,"; $sql .= " f.accountancy_code, aa.rowid as fk_compte, aa.account_number as compte, aa.label as label_compte"; //$sql .= " ct.accountancy_code_buy as account_tva"; @@ -112,22 +107,25 @@ if ($in_bookkeeping == 'notyet') $sql .= " AND er.rowid NOT IN (SELECT fk_doc FROM " . MAIN_DB_PREFIX . "accounting_bookkeeping as ab WHERE ab.doc_type='expense_report')"; $sql .= " ORDER BY er.date_debut"; -dol_syslog('accountancy/journal/expensereportsjournal.php:: $sql=' . $sql); +dol_syslog('accountancy/journal/expensereportsjournal.php', LOG_DEBUG); $result = $db->query($sql); if ($result) { - $num = $db->num_rows($result); - - // Variables - $account_salary = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT)) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'; - $account_vat = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined'; $taber = array (); $tabht = array (); $tabtva = array (); $def_tva = array (); $tabttc = array (); + $tablocaltax1 = array (); + $tablocaltax2 = array (); $tabuser = array (); + $num = $db->num_rows($result); + + // Variables + $account_salary = (! empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT)) ? $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT : 'NotDefined'; + $account_vat = (! empty($conf->global->ACCOUNTING_VAT_BUY_ACCOUNT)) ? $conf->global->ACCOUNTING_VAT_BUY_ACCOUNT : 'NotDefined'; + $i = 0; while ( $i < $num ) { $obj = $db->fetch_object($result); @@ -138,7 +136,9 @@ if ($result) { $vatdata = getTaxesFromId($obj->tva_tx.($obj->vat_src_code?' ('.$obj->vat_src_code.')':''), $mysoc, $mysoc, 0); $compta_tva = (! empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $account_vat); - + $compta_localtax1 = (! empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $cpttva); + $compta_localtax2 = (! empty($vatdata['accountancy_code_sell']) ? $vatdata['accountancy_code_sell'] : $cpttva); + // Define array to display all VAT rates that use this accounting account $compta_tva if (price2num($obj->tva_tx) || ! empty($obj->vat_src_code)) { @@ -149,9 +149,19 @@ if ($result) { $taber[$obj->rowid]["ref"] = $obj->ref; $taber[$obj->rowid]["comments"] = $obj->comments; $taber[$obj->rowid]["fk_expensereportdet"] = $obj->erdid; + + // Avoid warnings + if (! isset($tabttc[$obj->rowid][$compta_user])) $tabttc[$obj->rowid][$compta_user] = 0; + if (! isset($tabht[$obj->rowid][$compta_fees])) $tabht[$obj->rowid][$compta_fees] = 0; + if (! isset($tabtva[$obj->rowid][$compta_tva])) $tabtva[$obj->rowid][$compta_tva] = 0; + if (! isset($tablocaltax1[$obj->rowid][$compta_localtax1])) $tablocaltax1[$obj->rowid][$compta_localtax1] = 0; + if (! isset($tablocaltax2[$obj->rowid][$compta_localtax2])) $tablocaltax2[$obj->rowid][$compta_localtax2] = 0; + $tabttc[$obj->rowid][$compta_user] += $obj->total_ttc; $tabht[$obj->rowid][$compta_fees] += $obj->total_ht; $tabtva[$obj->rowid][$compta_tva] += $obj->total_tva; + $tablocaltax1[$obj->rowid][$compta_localtax1] += $obj->total_localtax1; + $tablocaltax2[$obj->rowid][$compta_localtax2] += $obj->total_localtax2; $tabuser[$obj->rowid] = array ( 'id' => $obj->uid, 'name' => dolGetFirstLastname($obj->firstname, $obj->lastname), @@ -169,7 +179,7 @@ if ($action == 'writebookkeeping') { $now = dol_now(); $error = 0; - foreach ($taber as $key => $val) + foreach ($taber as $key => $val) // Loop on each expense report { $errorforline = 0; @@ -180,7 +190,6 @@ if ($action == 'writebookkeeping') { { foreach ( $tabttc[$key] as $k => $mt ) { if ($mt) { - // get compte id and label $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; $bookkeeping->doc_ref = $val["ref"]; @@ -190,8 +199,8 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = $tabuser[$key]['user_accountancy_code']; $bookkeeping->subledger_label = $tabuser[$key]['user_accountancy_code']; - $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->numero_compte = $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT; + $bookkeeping->label_operation = $tabuser[$key]['name']; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt >= 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt <= 0) ? $mt : 0; @@ -223,8 +232,6 @@ if ($action == 'writebookkeeping') { if (! $errorforline) { foreach ( $tabht[$key] as $k => $mt ) { - $accountingaccount = new AccountingAccount($db); - $accountingaccount->fetch(null, $k, true); if ($mt) { // get compte id and label $accountingaccount = new AccountingAccount($db); @@ -238,8 +245,8 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_operation = $accountingaccount->label; $bookkeeping->numero_compte = $k; + $bookkeeping->label_operation = $accountingaccount->label; $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -271,9 +278,15 @@ if ($action == 'writebookkeeping') { // VAT if (! $errorforline) { - // var_dump($tabtva); - foreach ( $tabtva[$key] as $k => $mt ) { - if ($mt) { + $listoftax=array(0, 1, 2); + foreach($listoftax as $numtax) + { + $arrayofvat = $tabtva; + if ($numtax == 1) $arrayofvat = $tablocaltax1; + if ($numtax == 2) $arrayofvat = $tablocaltax2; + + foreach ( $arrayofvat[$key] as $k => $mt ) { + if ($mt) { // get compte id and label $bookkeeping = new BookKeeping($db); $bookkeeping->doc_date = $val["date"]; @@ -284,8 +297,8 @@ if ($action == 'writebookkeeping') { $bookkeeping->fk_docdet = $val["fk_expensereportdet"]; $bookkeeping->subledger_account = ''; $bookkeeping->subledger_label = ''; - $bookkeeping->label_operation = $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); $bookkeeping->numero_compte = $k; + $bookkeeping->label_operation = $langs->trans("VAT"). ' '.join(', ',$def_tva[$key][$k]); $bookkeeping->montant = $mt; $bookkeeping->sens = ($mt < 0) ? 'C' : 'D'; $bookkeeping->debit = ($mt > 0) ? $mt : 0; @@ -309,6 +322,7 @@ if ($action == 'writebookkeeping') { setEventMessages($bookkeeping->error, $bookkeeping->errors, 'errors'); } } + } } } } @@ -329,7 +343,7 @@ if ($action == 'writebookkeeping') { } } - if (empty($error) && count($tabpay)) { + if (empty($error) && count($tabpay) > 0) { setEventMessages($langs->trans("GeneralLedgerIsWritten"), null, 'mesgs'); } elseif (count($tabpay) == $error) @@ -353,7 +367,7 @@ $form = new Form($db); $userstatic = new User($db); // Export -/*if ($action == 'export_csv') { +/*if ($action == 'exportcsv') { $sep = $conf->global->ACCOUNTING_EXPORT_SEPARATORCSV; include DOL_DOCUMENT_ROOT . '/accountancy/tpl/export_journal.tpl.php'; @@ -479,20 +493,25 @@ if (empty($action) || $action == 'view') { journalHead($nom, $nomlink, $period, $periodlink, $description, $builddate, $exportlink, array('action' => ''), '', $varlink); - /*if ($conf->global->ACCOUNTING_EXPORT_MODELCSV != 1 && $conf->global->ACCOUNTING_EXPORT_MODELCSV != 2) { - print ''; - } else { - print ''; - }*/ - + // Button to write into Ledger + if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') { + print img_warning().' '.$langs->trans("SomeMandatoryStepsOfSetupWereNotDone"); + print ' : '.$langs->trans("AccountancyAreaDescMisc", 4, ''.$langs->transnoentitiesnoconv("MenuFinancial").'-'.$langs->transnoentitiesnoconv("MenuAccountancy").'-'.$langs->transnoentitiesnoconv("Setup")."-".$langs->transnoentitiesnoconv("MenuDefaultAccounts").''); + } print '
    '; - print ''; + if (empty($conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT) || $conf->global->SALARIES_ACCOUNTING_ACCOUNT_PAYMENT == '-1') { + print ''; + } + else { + print ''; + } + //print ''; print '
    '; print ' '; } } + if (preg_match('/^ace/', $this->tool)) + { + $found=1; + $format=(GETPOST('format','aZ09')?GETPOST('format','aZ09'):'php'); + + print '
    ';
    +        	print preg_replace(array('/^<\?php/','/\?>$/'), array('<?php','?>'), $this->content);
    +        	print '
    '; + print ''; + + print ''."\n"; + } if (empty($found)) { diff --git a/htdocs/includes/ace/ace.js b/htdocs/includes/ace/ace.js new file mode 100644 index 00000000000..d93cddc1fd5 --- /dev/null +++ b/htdocs/includes/ace/ace.js @@ -0,0 +1,19560 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Distributed under the BSD license: + * + * Copyright (c) 2010, Ajax.org B.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Ajax.org B.V. nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ***** END LICENSE BLOCK ***** */ + +/** + * Define a module along with a payload + * @param module a name for the payload + * @param payload a function to call with (require, exports, module) params + */ + +(function() { + +var ACE_NAMESPACE = "ace"; + +var global = (function() { return this; })(); +if (!global && typeof window != "undefined") global = window; // strict mode + + +if (!ACE_NAMESPACE && typeof requirejs !== "undefined") + return; + + +var define = function(module, deps, payload) { + if (typeof module !== "string") { + if (define.original) + define.original.apply(this, arguments); + else { + console.error("dropping module because define wasn\'t a string."); + console.trace(); + } + return; + } + if (arguments.length == 2) + payload = deps; + if (!define.modules[module]) { + define.payloads[module] = payload; + define.modules[module] = null; + } +}; + +define.modules = {}; +define.payloads = {}; + +/** + * Get at functionality define()ed using the function above + */ +var _require = function(parentId, module, callback) { + if (typeof module === "string") { + var payload = lookup(parentId, module); + if (payload != undefined) { + callback && callback(); + return payload; + } + } else if (Object.prototype.toString.call(module) === "[object Array]") { + var params = []; + for (var i = 0, l = module.length; i < l; ++i) { + var dep = lookup(parentId, module[i]); + if (dep == undefined && require.original) + return; + params.push(dep); + } + return callback && callback.apply(null, params) || true; + } +}; + +var require = function(module, callback) { + var packagedModule = _require("", module, callback); + if (packagedModule == undefined && require.original) + return require.original.apply(this, arguments); + return packagedModule; +}; + +var normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = base + "/" + moduleName; + + while(moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + return moduleName; +}; + +/** + * Internal function to lookup moduleNames and resolve them by calling the + * definition function if needed. + */ +var lookup = function(parentId, moduleName) { + moduleName = normalizeModule(parentId, moduleName); + + var module = define.modules[moduleName]; + if (!module) { + module = define.payloads[moduleName]; + if (typeof module === 'function') { + var exports = {}; + var mod = { + id: moduleName, + uri: '', + exports: exports, + packaged: true + }; + + var req = function(module, callback) { + return _require(moduleName, module, callback); + }; + + var returnValue = module(req, exports, mod); + exports = returnValue || mod.exports; + define.modules[moduleName] = exports; + delete define.payloads[moduleName]; + } + module = define.modules[moduleName] = exports || module; + } + return module; +}; + +function exportAce(ns) { + var root = global; + if (ns) { + if (!global[ns]) + global[ns] = {}; + root = global[ns]; + } + + if (!root.define || !root.define.packaged) { + define.original = root.define; + root.define = define; + root.define.packaged = true; + } + + if (!root.require || !root.require.packaged) { + require.original = root.require; + root.require = require; + root.require.packaged = true; + } +} + +exportAce(ACE_NAMESPACE); + +})(); + +ace.define("ace/lib/regexp",["require","exports","module"], function(require, exports, module) { +"use strict"; + + var real = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + real.test.call(x, ""); + return !x.lastIndex; + }(); + + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + RegExp.prototype.exec = function (str) { + var match = real.exec.apply(this, arguments), + name, r2; + if ( typeof(str) == 'string' && match) { + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", "")); + real.replace.call(str.slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + return match; + }; + if (!compliantLastIndexIncrement) { + RegExp.prototype.test = function (str) { + var match = real.exec.call(this, str); + if (match && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + return !!match; + }; + } + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + } + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + } + +}); + +ace.define("ace/lib/es5-shim",["require","exports","module"], function(require, exports, module) { + +function Empty() {} + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + var target = this; + if (typeof target != "function") { + throw new TypeError("Function.prototype.bind called on incompatible " + target); + } + var args = slice.call(arguments, 1); // for normal call + var bound = function () { + + if (this instanceof bound) { + + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + if(target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; +} +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var _toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} +if ([1,2].splice(0).length != 2) { + if(function() { // test IE < 9 to splice bug - see issue #138 + function makeArray(l) { + var a = new Array(l+2); + a[0] = a[1] = 0; + return a; + } + var array = [], lengthBefore; + + array.splice.apply(array, makeArray(20)); + array.splice.apply(array, makeArray(26)); + + lengthBefore = array.length; //46 + array.splice(5, 0, "XXX"); // add one element + + lengthBefore + 1 == array.length + + if (lengthBefore + 1 == array.length) { + return true;// has right splice implementation without bugs + } + }()) {//IE 6/7 + var array_splice = Array.prototype.splice; + Array.prototype.splice = function(start, deleteCount) { + if (!arguments.length) { + return []; + } else { + return array_splice.apply(this, [ + start === void 0 ? 0 : start, + deleteCount === void 0 ? (this.length - start) : deleteCount + ].concat(slice.call(arguments, 2))) + } + }; + } else {//IE8 + Array.prototype.splice = function(pos, removeCount){ + var length = this.length; + if (pos > 0) { + if (pos > length) + pos = length; + } else if (pos == void 0) { + pos = 0; + } else if (pos < 0) { + pos = Math.max(length + pos, 0); + } + + if (!(pos+removeCount < length)) + removeCount = length - pos; + + var removed = this.slice(pos, pos+removeCount); + var insert = slice.call(arguments, 2); + var add = insert.length; + if (pos === length) { + if (add) { + this.push.apply(this, insert); + } + } else { + var remove = Math.min(removeCount, length - pos); + var tailOldPos = pos + remove; + var tailNewPos = tailOldPos + add - remove; + var tailCount = length - tailOldPos; + var lengthAfterRemove = length - remove; + + if (tailNewPos < tailOldPos) { // case A + for (var i = 0; i < tailCount; ++i) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } else if (tailNewPos > tailOldPos) { // case B + for (i = tailCount; i--; ) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } // else, add == remove (nothing to do) + + if (add && pos === lengthAfterRemove) { + this.length = lengthAfterRemove; // truncate array + this.push.apply(this, insert); + } else { + this.length = lengthAfterRemove + add; // reserves space + for (i = 0; i < add; ++i) { + this[pos+i] = insert[i]; + } + } + } + return removed; + }; + } +} +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return _toString(obj) == "[object Array]"; + }; +} +var boxedString = Object("a"), + splitString = boxedString[0] != "a" || !(0 in boxedString); + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + thisp = arguments[1], + i = -1, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (++i < length) { + if (i in self) { + fun.call(thisp, self[i], i, object); + } + } + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, object); + } + return result; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = [], + value, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (fun.call(thisp, value, i, object)) { + result.push(value); + } + } + } + return result; + }; +} +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, object)) { + return false; + } + } + return true; + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, object)) { + return true; + } + } + return false; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduce of empty array with no initial value"); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + if (++i >= length) { + throw new TypeError("reduce of empty array with no initial value"); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = fun.call(void 0, result, self[i], i, object); + } + } + + return result; + }; +} +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + if (--i < 0) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + } while (true); + } + + do { + if (i in this) { + result = fun.call(void 0, result, self[i], i, object); + } + } while (i--); + + return result; + }; +} +if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = toInteger(arguments[1]); + } + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} +if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = Math.min(i, toInteger(arguments[1])); + } + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) { + return i; + } + } + return -1; + }; +} +if (!Object.getPrototypeOf) { + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + descriptor = { enumerable: true, configurable: true }; + if (supportsAccessors) { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + return descriptor; + } + } + descriptor.value = object[property]; + return descriptor; + }; +} +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} +if (!Object.create) { + var createEmpty; + if (Object.prototype.__proto__ === null) { + createEmpty = function () { + return { "__proto__": null }; + }; + } else { + createEmpty = function () { + var empty = {}; + for (var i in empty) + empty[i] = null; + empty.constructor = + empty.hasOwnProperty = + empty.propertyIsEnumerable = + empty.isPrototypeOf = + empty.toLocaleString = + empty.toString = + empty.valueOf = + empty.__proto__ = null; + return empty; + } + } + + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = createEmpty(); + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + } +} +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + } + } + if (owns(descriptor, "value")) { + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + delete object[property]; + object[property] = descriptor.value; + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} +if (!Object.seal) { + Object.seal = function seal(object) { + return object; + }; +} +if (!Object.freeze) { + Object.freeze = function freeze(object) { + return object; + }; +} +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + return object; + }; +} +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} +if (!Object.keys) { + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) { + hasDontEnumBug = false; + } + + Object.keys = function keys(object) { + + if ( + (typeof object != "object" && typeof object != "function") || + object === null + ) { + throw new TypeError("Object.keys called on a non-object"); + } + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + return keys; + }; + +} +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +function toInteger(n) { + n = +n; + if (n !== n) { // isNaN + n = 0; + } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; +} + +function isPrimitive(input) { + var type = typeof input; + return ( + input === null || + type === "undefined" || + type === "boolean" || + type === "number" || + type === "string" + ); +} + +function toPrimitive(input) { + var val, valueOf, toString; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (typeof valueOf === "function") { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toString = input.toString; + if (typeof toString === "function") { + val = toString.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); +} +var toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert "+o+" to object"); + } + return Object(o); +}; + +}); + +ace.define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"], function(require, exports, module) { +"use strict"; + +require("./regexp"); +require("./es5-shim"); + +}); + +ace.define("ace/lib/dom",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var XHTML_NS = "http://www.w3.org/1999/xhtml"; + +exports.getDocumentHead = function(doc) { + if (!doc) + doc = document; + return doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement; +} + +exports.createElement = function(tag, ns) { + return document.createElementNS ? + document.createElementNS(ns || XHTML_NS, tag) : + document.createElement(tag); +}; + +exports.hasCssClass = function(el, name) { + var classes = (el.className + "").split(/\s+/g); + return classes.indexOf(name) !== -1; +}; +exports.addCssClass = function(el, name) { + if (!exports.hasCssClass(el, name)) { + el.className += " " + name; + } +}; +exports.removeCssClass = function(el, name) { + var classes = el.className.split(/\s+/g); + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + classes.splice(index, 1); + } + el.className = classes.join(" "); +}; + +exports.toggleCssClass = function(el, name) { + var classes = el.className.split(/\s+/g), add = true; + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + add = false; + classes.splice(index, 1); + } + if (add) + classes.push(name); + + el.className = classes.join(" "); + return add; +}; +exports.setCssClass = function(node, className, include) { + if (include) { + exports.addCssClass(node, className); + } else { + exports.removeCssClass(node, className); + } +}; + +exports.hasCssString = function(id, doc) { + var index = 0, sheets; + doc = doc || document; + + if (doc.createStyleSheet && (sheets = doc.styleSheets)) { + while (index < sheets.length) + if (sheets[index++].owningElement.id === id) return true; + } else if ((sheets = doc.getElementsByTagName("style"))) { + while (index < sheets.length) + if (sheets[index++].id === id) return true; + } + + return false; +}; + +exports.importCssString = function importCssString(cssText, id, doc) { + doc = doc || document; + if (id && exports.hasCssString(id, doc)) + return null; + + var style; + + if (id) + cssText += "\n/*# sourceURL=ace/css/" + id + " */"; + + if (doc.createStyleSheet) { + style = doc.createStyleSheet(); + style.cssText = cssText; + if (id) + style.owningElement.id = id; + } else { + style = exports.createElement("style"); + style.appendChild(doc.createTextNode(cssText)); + if (id) + style.id = id; + + exports.getDocumentHead(doc).appendChild(style); + } +}; + +exports.importCssStylsheet = function(uri, doc) { + if (doc.createStyleSheet) { + doc.createStyleSheet(uri); + } else { + var link = exports.createElement('link'); + link.rel = 'stylesheet'; + link.href = uri; + + exports.getDocumentHead(doc).appendChild(link); + } +}; + +exports.getInnerWidth = function(element) { + return ( + parseInt(exports.computedStyle(element, "paddingLeft"), 10) + + parseInt(exports.computedStyle(element, "paddingRight"), 10) + + element.clientWidth + ); +}; + +exports.getInnerHeight = function(element) { + return ( + parseInt(exports.computedStyle(element, "paddingTop"), 10) + + parseInt(exports.computedStyle(element, "paddingBottom"), 10) + + element.clientHeight + ); +}; + +exports.scrollbarWidth = function(document) { + var inner = exports.createElement("ace_inner"); + inner.style.width = "100%"; + inner.style.minWidth = "0px"; + inner.style.height = "200px"; + inner.style.display = "block"; + + var outer = exports.createElement("ace_outer"); + var style = outer.style; + + style.position = "absolute"; + style.left = "-10000px"; + style.overflow = "hidden"; + style.width = "200px"; + style.minWidth = "0px"; + style.height = "150px"; + style.display = "block"; + + outer.appendChild(inner); + + var body = document.documentElement; + body.appendChild(outer); + + var noScrollbar = inner.offsetWidth; + + style.overflow = "scroll"; + var withScrollbar = inner.offsetWidth; + + if (noScrollbar == withScrollbar) { + withScrollbar = outer.clientWidth; + } + + body.removeChild(outer); + + return noScrollbar-withScrollbar; +}; + +if (typeof document == "undefined") { + exports.importCssString = function() {}; + return; +} + +if (window.pageYOffset !== undefined) { + exports.getPageScrollTop = function() { + return window.pageYOffset; + }; + + exports.getPageScrollLeft = function() { + return window.pageXOffset; + }; +} +else { + exports.getPageScrollTop = function() { + return document.body.scrollTop; + }; + + exports.getPageScrollLeft = function() { + return document.body.scrollLeft; + }; +} + +if (window.getComputedStyle) + exports.computedStyle = function(element, style) { + if (style) + return (window.getComputedStyle(element, "") || {})[style] || ""; + return window.getComputedStyle(element, "") || {}; + }; +else + exports.computedStyle = function(element, style) { + if (style) + return element.currentStyle[style]; + return element.currentStyle; + }; +exports.setInnerHtml = function(el, innerHtml) { + var element = el.cloneNode(false);//document.createElement("div"); + element.innerHTML = innerHtml; + el.parentNode.replaceChild(element, el); + return element; +}; + +if ("textContent" in document.documentElement) { + exports.setInnerText = function(el, innerText) { + el.textContent = innerText; + }; + + exports.getInnerText = function(el) { + return el.textContent; + }; +} +else { + exports.setInnerText = function(el, innerText) { + el.innerText = innerText; + }; + + exports.getInnerText = function(el) { + return el.innerText; + }; +} + +exports.getParentWindow = function(document) { + return document.defaultView || document.parentWindow; +}; + +}); + +ace.define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +ace.define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +require("./fixoldbrowsers"); + +var oop = require("./oop"); +var Keys = (function() { + var ret = { + MODIFIER_KEYS: { + 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta' + }, + + KEY_MODS: { + "ctrl": 1, "alt": 2, "option" : 2, "shift": 4, + "super": 8, "meta": 8, "command": 8, "cmd": 8 + }, + + FUNCTION_KEYS : { + 8 : "Backspace", + 9 : "Tab", + 13 : "Return", + 19 : "Pause", + 27 : "Esc", + 32 : "Space", + 33 : "PageUp", + 34 : "PageDown", + 35 : "End", + 36 : "Home", + 37 : "Left", + 38 : "Up", + 39 : "Right", + 40 : "Down", + 44 : "Print", + 45 : "Insert", + 46 : "Delete", + 96 : "Numpad0", + 97 : "Numpad1", + 98 : "Numpad2", + 99 : "Numpad3", + 100: "Numpad4", + 101: "Numpad5", + 102: "Numpad6", + 103: "Numpad7", + 104: "Numpad8", + 105: "Numpad9", + '-13': "NumpadEnter", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "Numlock", + 145: "Scrolllock" + }, + + PRINTABLE_KEYS: { + 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', + 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a', + 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', + 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', + 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v', + 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.', + 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`', + 219: '[', 220: '\\',221: ']', 222: "'", 111: '/', 106: '*' + } + }; + var name, i; + for (i in ret.FUNCTION_KEYS) { + name = ret.FUNCTION_KEYS[i].toLowerCase(); + ret[name] = parseInt(i, 10); + } + for (i in ret.PRINTABLE_KEYS) { + name = ret.PRINTABLE_KEYS[i].toLowerCase(); + ret[name] = parseInt(i, 10); + } + oop.mixin(ret, ret.MODIFIER_KEYS); + oop.mixin(ret, ret.PRINTABLE_KEYS); + oop.mixin(ret, ret.FUNCTION_KEYS); + ret.enter = ret["return"]; + ret.escape = ret.esc; + ret.del = ret["delete"]; + ret[173] = '-'; + + (function() { + var mods = ["cmd", "ctrl", "alt", "shift"]; + for (var i = Math.pow(2, mods.length); i--;) { + ret.KEY_MODS[i] = mods.filter(function(x) { + return i & ret.KEY_MODS[x]; + }).join("-") + "-"; + } + })(); + + ret.KEY_MODS[0] = ""; + ret.KEY_MODS[-1] = "input-"; + + return ret; +})(); +oop.mixin(exports, Keys); + +exports.keyCodeToString = function(keyCode) { + var keyString = Keys[keyCode]; + if (typeof keyString != "string") + keyString = String.fromCharCode(keyCode); + return keyString.toLowerCase(); +}; + +}); + +ace.define("ace/lib/useragent",["require","exports","module"], function(require, exports, module) { +"use strict"; +exports.OS = { + LINUX: "LINUX", + MAC: "MAC", + WINDOWS: "WINDOWS" +}; +exports.getOS = function() { + if (exports.isMac) { + return exports.OS.MAC; + } else if (exports.isLinux) { + return exports.OS.LINUX; + } else { + return exports.OS.WINDOWS; + } +}; +if (typeof navigator != "object") + return; + +var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(); +var ua = navigator.userAgent; +exports.isWin = (os == "win"); +exports.isMac = (os == "mac"); +exports.isLinux = (os == "linux"); +exports.isIE = + (navigator.appName == "Microsoft Internet Explorer" || navigator.appName.indexOf("MSAppHost") >= 0) + ? parseFloat((ua.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]) + : parseFloat((ua.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]); // for ie + +exports.isOldIE = exports.isIE && exports.isIE < 9; +exports.isGecko = exports.isMozilla = (window.Controllers || window.controllers) && window.navigator.product === "Gecko"; +exports.isOldGecko = exports.isGecko && parseInt((ua.match(/rv:(\d+)/)||[])[1], 10) < 4; +exports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == "[object Opera]"; +exports.isWebKit = parseFloat(ua.split("WebKit/")[1]) || undefined; + +exports.isChrome = parseFloat(ua.split(" Chrome/")[1]) || undefined; + +exports.isAIR = ua.indexOf("AdobeAIR") >= 0; + +exports.isIPad = ua.indexOf("iPad") >= 0; + +exports.isChromeOS = ua.indexOf(" CrOS ") >= 0; + +exports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream; + +if (exports.isIOS) exports.isMac = true; + +}); + +ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var keys = require("./keys"); +var useragent = require("./useragent"); + +var pressedKeys = null; +var ts = 0; + +exports.addListener = function(elem, type, callback) { + if (elem.addEventListener) { + return elem.addEventListener(type, callback, false); + } + if (elem.attachEvent) { + var wrapper = function() { + callback.call(elem, window.event); + }; + callback._wrapper = wrapper; + elem.attachEvent("on" + type, wrapper); + } +}; + +exports.removeListener = function(elem, type, callback) { + if (elem.removeEventListener) { + return elem.removeEventListener(type, callback, false); + } + if (elem.detachEvent) { + elem.detachEvent("on" + type, callback._wrapper || callback); + } +}; +exports.stopEvent = function(e) { + exports.stopPropagation(e); + exports.preventDefault(e); + return false; +}; + +exports.stopPropagation = function(e) { + if (e.stopPropagation) + e.stopPropagation(); + else + e.cancelBubble = true; +}; + +exports.preventDefault = function(e) { + if (e.preventDefault) + e.preventDefault(); + else + e.returnValue = false; +}; +exports.getButton = function(e) { + if (e.type == "dblclick") + return 0; + if (e.type == "contextmenu" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey))) + return 2; + if (e.preventDefault) { + return e.button; + } + else { + return {1:0, 2:2, 4:1}[e.button]; + } +}; + +exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseUp(e) { + eventHandler && eventHandler(e); + releaseCaptureHandler && releaseCaptureHandler(e); + + exports.removeListener(document, "mousemove", eventHandler, true); + exports.removeListener(document, "mouseup", onMouseUp, true); + exports.removeListener(document, "dragstart", onMouseUp, true); + } + + exports.addListener(document, "mousemove", eventHandler, true); + exports.addListener(document, "mouseup", onMouseUp, true); + exports.addListener(document, "dragstart", onMouseUp, true); + + return onMouseUp; +}; + +exports.addTouchMoveListener = function (el, callback) { + if ("ontouchmove" in el) { + var startx, starty; + exports.addListener(el, "touchstart", function (e) { + var touchObj = e.changedTouches[0]; + startx = touchObj.clientX; + starty = touchObj.clientY; + }); + exports.addListener(el, "touchmove", function (e) { + var factor = 1, + touchObj = e.changedTouches[0]; + + e.wheelX = -(touchObj.clientX - startx) / factor; + e.wheelY = -(touchObj.clientY - starty) / factor; + + startx = touchObj.clientX; + starty = touchObj.clientY; + + callback(e); + }); + } +}; + +exports.addMouseWheelListener = function(el, callback) { + if ("onmousewheel" in el) { + exports.addListener(el, "mousewheel", function(e) { + var factor = 8; + if (e.wheelDeltaX !== undefined) { + e.wheelX = -e.wheelDeltaX / factor; + e.wheelY = -e.wheelDeltaY / factor; + } else { + e.wheelX = 0; + e.wheelY = -e.wheelDelta / factor; + } + callback(e); + }); + } else if ("onwheel" in el) { + exports.addListener(el, "wheel", function(e) { + var factor = 0.35; + switch (e.deltaMode) { + case e.DOM_DELTA_PIXEL: + e.wheelX = e.deltaX * factor || 0; + e.wheelY = e.deltaY * factor || 0; + break; + case e.DOM_DELTA_LINE: + case e.DOM_DELTA_PAGE: + e.wheelX = (e.deltaX || 0) * 5; + e.wheelY = (e.deltaY || 0) * 5; + break; + } + + callback(e); + }); + } else { + exports.addListener(el, "DOMMouseScroll", function(e) { + if (e.axis && e.axis == e.HORIZONTAL_AXIS) { + e.wheelX = (e.detail || 0) * 5; + e.wheelY = 0; + } else { + e.wheelX = 0; + e.wheelY = (e.detail || 0) * 5; + } + callback(e); + }); + } +}; + +exports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) { + var clicks = 0; + var startX, startY, timer; + var eventNames = { + 2: "dblclick", + 3: "tripleclick", + 4: "quadclick" + }; + + function onMousedown(e) { + if (exports.getButton(e) !== 0) { + clicks = 0; + } else if (e.detail > 1) { + clicks++; + if (clicks > 4) + clicks = 1; + } else { + clicks = 1; + } + if (useragent.isIE) { + var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5; + if (!timer || isNewClick) + clicks = 1; + if (timer) + clearTimeout(timer); + timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600); + + if (clicks == 1) { + startX = e.clientX; + startY = e.clientY; + } + } + + e._clicks = clicks; + + eventHandler[callbackName]("mousedown", e); + + if (clicks > 4) + clicks = 0; + else if (clicks > 1) + return eventHandler[callbackName](eventNames[clicks], e); + } + function onDblclick(e) { + clicks = 2; + if (timer) + clearTimeout(timer); + timer = setTimeout(function() {timer = null}, timeouts[clicks - 1] || 600); + eventHandler[callbackName]("mousedown", e); + eventHandler[callbackName](eventNames[clicks], e); + } + if (!Array.isArray(elements)) + elements = [elements]; + elements.forEach(function(el) { + exports.addListener(el, "mousedown", onMousedown); + if (useragent.isOldIE) + exports.addListener(el, "dblclick", onDblclick); + }); +}; + +var getModifierHash = useragent.isMac && useragent.isOpera && !("KeyboardEvent" in window) + ? function(e) { + return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0); + } + : function(e) { + return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0); + }; + +exports.getModifierString = function(e) { + return keys.KEY_MODS[getModifierHash(e)]; +}; + +function normalizeCommandKeys(callback, e, keyCode) { + var hashId = getModifierHash(e); + + if (!useragent.isMac && pressedKeys) { + if (e.getModifierState && (e.getModifierState("OS") || e.getModifierState("Win"))) + hashId |= 8; + if (pressedKeys.altGr) { + if ((3 & hashId) != 3) + pressedKeys.altGr = 0; + else + return; + } + if (keyCode === 18 || keyCode === 17) { + var location = "location" in e ? e.location : e.keyLocation; + if (keyCode === 17 && location === 1) { + if (pressedKeys[keyCode] == 1) + ts = e.timeStamp; + } else if (keyCode === 18 && hashId === 3 && location === 2) { + var dt = e.timeStamp - ts; + if (dt < 50) + pressedKeys.altGr = true; + } + } + } + + if (keyCode in keys.MODIFIER_KEYS) { + keyCode = -1; + } + if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) { + keyCode = -1; + } + + if (!hashId && keyCode === 13) { + var location = "location" in e ? e.location : e.keyLocation; + if (location === 3) { + callback(e, hashId, -keyCode); + if (e.defaultPrevented) + return; + } + } + + if (useragent.isChromeOS && hashId & 8) { + callback(e, hashId, keyCode); + if (e.defaultPrevented) + return; + else + hashId &= ~8; + } + if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) { + return false; + } + + return callback(e, hashId, keyCode); +} + + +exports.addCommandKeyListener = function(el, callback) { + var addListener = exports.addListener; + if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) { + var lastKeyDownKeyCode = null; + addListener(el, "keydown", function(e) { + lastKeyDownKeyCode = e.keyCode; + }); + addListener(el, "keypress", function(e) { + return normalizeCommandKeys(callback, e, lastKeyDownKeyCode); + }); + } else { + var lastDefaultPrevented = null; + + addListener(el, "keydown", function(e) { + pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1; + var result = normalizeCommandKeys(callback, e, e.keyCode); + lastDefaultPrevented = e.defaultPrevented; + return result; + }); + + addListener(el, "keypress", function(e) { + if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) { + exports.stopEvent(e); + lastDefaultPrevented = null; + } + }); + + addListener(el, "keyup", function(e) { + pressedKeys[e.keyCode] = null; + }); + + if (!pressedKeys) { + resetPressedKeys(); + addListener(window, "focus", resetPressedKeys); + } + } +}; +function resetPressedKeys() { + pressedKeys = Object.create(null); +} + +if (typeof window == "object" && window.postMessage && !useragent.isOldIE) { + var postMessageId = 1; + exports.nextTick = function(callback, win) { + win = win || window; + var messageName = "zero-timeout-message-" + postMessageId; + exports.addListener(win, "message", function listener(e) { + if (e.data == messageName) { + exports.stopPropagation(e); + exports.removeListener(win, "message", listener); + callback(); + } + }); + win.postMessage(messageName, "*"); + }; +} + + +exports.nextFrame = typeof window == "object" && (window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || window.oRequestAnimationFrame); + +if (exports.nextFrame) + exports.nextFrame = exports.nextFrame.bind(window); +else + exports.nextFrame = function(callback) { + setTimeout(callback, 17); + }; +}); + +ace.define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i PLACEHOLDER.length) + data = data.substr(9); + else if (data.substr(0, 4) == PLACEHOLDER.substr(0, 4)) + data = data.substr(4, data.length - PLACEHOLDER.length + 1); + else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0)) + data = data.slice(0, -1); + if (data == PLACEHOLDER.charAt(0)) { + } else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0)) + data = data.slice(0, -1); + + if (data) + host.onTextInput(data); + } + if (copied) { + copied = false; + } + if (afterContextMenu) + afterContextMenu = false; + }; + var onInput = function(e) { + if (inComposition) + return; + var data = text.value; + sendText(data); + resetValue(); + }; + + var handleClipboardData = function(e, data, forceIEMime) { + var clipboardData = e.clipboardData || window.clipboardData; + if (!clipboardData || BROKEN_SETDATA) + return; + var mime = USE_IE_MIME_TYPE || forceIEMime ? "Text" : "text/plain"; + try { + if (data) { + return clipboardData.setData(mime, data) !== false; + } else { + return clipboardData.getData(mime); + } + } catch(e) { + if (!forceIEMime) + return handleClipboardData(e, data, true); + } + }; + + var doCopy = function(e, isCut) { + var data = host.getCopyText(); + if (!data) + return event.preventDefault(e); + + if (handleClipboardData(e, data)) { + if (useragent.isIOS) { + cut = isCut; + text.value = "\n aa" + data + "a a\n"; + text.setSelectionRange(4, 4 + data.length); + copied = { + value: data + }; + } + isCut ? host.onCut() : host.onCopy(); + if (!useragent.isIOS) event.preventDefault(e); + } else { + copied = true; + text.value = data; + text.select(); + setTimeout(function(){ + copied = false; + resetValue(); + resetSelection(); + isCut ? host.onCut() : host.onCopy(); + }); + } + }; + + var onCut = function(e) { + doCopy(e, true); + }; + + var onCopy = function(e) { + doCopy(e, false); + }; + + var onPaste = function(e) { + var data = handleClipboardData(e); + if (typeof data == "string") { + if (data) + host.onPaste(data, e); + if (useragent.isIE) + setTimeout(resetSelection); + event.preventDefault(e); + } + else { + text.value = ""; + pasted = true; + } + }; + + event.addCommandKeyListener(text, host.onCommandKey.bind(host)); + + event.addListener(text, "select", onSelect); + + event.addListener(text, "input", onInput); + + event.addListener(text, "cut", onCut); + event.addListener(text, "copy", onCopy); + event.addListener(text, "paste", onPaste); + var onCompositionStart = function(e) { + if (inComposition || !host.onCompositionStart || host.$readOnly) + return; + inComposition = {}; + inComposition.canUndo = host.session.$undoManager; + host.onCompositionStart(); + setTimeout(onCompositionUpdate, 0); + host.on("mousedown", onCompositionEnd); + if (inComposition.canUndo && !host.selection.isEmpty()) { + host.insert(""); + host.session.markUndoGroup(); + host.selection.clearSelection(); + } + host.session.markUndoGroup(); + }; + + var onCompositionUpdate = function() { + if (!inComposition || !host.onCompositionUpdate || host.$readOnly) + return; + var val = text.value.replace(/\x01/g, ""); + if (inComposition.lastValue === val) return; + + host.onCompositionUpdate(val); + if (inComposition.lastValue) + host.undo(); + if (inComposition.canUndo) + inComposition.lastValue = val; + if (inComposition.lastValue) { + var r = host.selection.getRange(); + host.insert(inComposition.lastValue); + host.session.markUndoGroup(); + inComposition.range = host.selection.getRange(); + host.selection.setRange(r); + host.selection.clearSelection(); + } + }; + + var onCompositionEnd = function(e) { + if (!host.onCompositionEnd || host.$readOnly) return; + var c = inComposition; + inComposition = false; + var timer = setTimeout(function() { + timer = null; + var str = text.value.replace(/\x01/g, ""); + if (inComposition) + return; + else if (str == c.lastValue) + resetValue(); + else if (!c.lastValue && str) { + resetValue(); + sendText(str); + } + }); + inputHandler = function compositionInputHandler(str) { + if (timer) + clearTimeout(timer); + str = str.replace(/\x01/g, ""); + if (str == c.lastValue) + return ""; + if (c.lastValue && timer) + host.undo(); + return str; + }; + host.onCompositionEnd(); + host.removeListener("mousedown", onCompositionEnd); + if (e.type == "compositionend" && c.range) { + host.selection.setRange(c.range); + } + var needsOnInput = + (!!useragent.isChrome && useragent.isChrome >= 53) || + (!!useragent.isWebKit && useragent.isWebKit >= 603); + + if (needsOnInput) { + onInput(); + } + }; + + + + var syncComposition = lang.delayedCall(onCompositionUpdate, 50); + + event.addListener(text, "compositionstart", onCompositionStart); + if (useragent.isGecko) { + event.addListener(text, "text", function(){syncComposition.schedule()}); + } else { + event.addListener(text, "keyup", function(){syncComposition.schedule()}); + event.addListener(text, "keydown", function(){syncComposition.schedule()}); + } + event.addListener(text, "compositionend", onCompositionEnd); + + this.getElement = function() { + return text; + }; + + this.setReadOnly = function(readOnly) { + text.readOnly = readOnly; + }; + + this.onContextMenu = function(e) { + afterContextMenu = true; + resetSelection(host.selection.isEmpty()); + host._emit("nativecontextmenu", {target: host, domEvent: e}); + this.moveToMouse(e, true); + }; + + this.moveToMouse = function(e, bringToFront) { + if (!tempStyle) + tempStyle = text.style.cssText; + text.style.cssText = (bringToFront ? "z-index:100000;" : "") + + "height:" + text.style.height + ";" + + (useragent.isIE ? "opacity:0.1;" : ""); + + var rect = host.container.getBoundingClientRect(); + var style = dom.computedStyle(host.container); + var top = rect.top + (parseInt(style.borderTopWidth) || 0); + var left = rect.left + (parseInt(rect.borderLeftWidth) || 0); + var maxTop = rect.bottom - top - text.clientHeight -2; + var move = function(e) { + text.style.left = e.clientX - left - 2 + "px"; + text.style.top = Math.min(e.clientY - top - 2, maxTop) + "px"; + }; + move(e); + + if (e.type != "mousedown") + return; + + if (host.renderer.$keepTextAreaAtCursor) + host.renderer.$keepTextAreaAtCursor = null; + + clearTimeout(closeTimeout); + if (useragent.isWin) + event.capture(host.container, move, onContextMenuClose); + }; + + this.onContextMenuClose = onContextMenuClose; + var closeTimeout; + function onContextMenuClose() { + clearTimeout(closeTimeout); + closeTimeout = setTimeout(function () { + if (tempStyle) { + text.style.cssText = tempStyle; + tempStyle = ''; + } + if (host.renderer.$keepTextAreaAtCursor == null) { + host.renderer.$keepTextAreaAtCursor = true; + host.renderer.$moveTextAreaToCursor(); + } + }, 0); + } + + var onContextMenu = function(e) { + host.textInput.onContextMenu(e); + onContextMenuClose(); + }; + event.addListener(text, "mouseup", onContextMenu); + event.addListener(text, "mousedown", function(e) { + e.preventDefault(); + onContextMenuClose(); + }); + event.addListener(host.renderer.scroller, "contextmenu", onContextMenu); + event.addListener(text, "contextmenu", onContextMenu); + + if (useragent.isIOS) { + var typingResetTimeout = null; + var typing = false; + + parentNode.addEventListener("keydown", function (e) { + if (typingResetTimeout) clearTimeout(typingResetTimeout); + typing = true; + }); + + parentNode.addEventListener("keyup", function (e) { + typingResetTimeout = setTimeout(function () { + typing = false; + }, 100); + }); + var detectArrowKeys = function(e) { + if (document.activeElement !== text) return; + if (typing) return; + + if (cut) { + return setTimeout(function () { + cut = false; + }, 100); + } + var selectionStart = text.selectionStart; + var selectionEnd = text.selectionEnd; + text.setSelectionRange(4, 5); + if (selectionStart == selectionEnd) { + switch (selectionStart) { + case 0: host.onCommandKey(null, 0, KEYS.up); break; + case 1: host.onCommandKey(null, 0, KEYS.home); break; + case 2: host.onCommandKey(null, MODS.option, KEYS.left); break; + case 4: host.onCommandKey(null, 0, KEYS.left); break; + case 5: host.onCommandKey(null, 0, KEYS.right); break; + case 7: host.onCommandKey(null, MODS.option, KEYS.right); break; + case 8: host.onCommandKey(null, 0, KEYS.end); break; + case 9: host.onCommandKey(null, 0, KEYS.down); break; + } + } else { + switch (selectionEnd) { + case 6: host.onCommandKey(null, MODS.shift, KEYS.right); break; + case 7: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.right); break; + case 8: host.onCommandKey(null, MODS.shift, KEYS.end); break; + case 9: host.onCommandKey(null, MODS.shift, KEYS.down); break; + } + switch (selectionStart) { + case 0: host.onCommandKey(null, MODS.shift, KEYS.up); break; + case 1: host.onCommandKey(null, MODS.shift, KEYS.home); break; + case 2: host.onCommandKey(null, MODS.shift | MODS.option, KEYS.left); break; + case 3: host.onCommandKey(null, MODS.shift, KEYS.left); break; + } + } + } + document.addEventListener("selectionchange", detectArrowKeys); + host.on("destroy", function() { + document.removeEventListener("selectionchange", detectArrowKeys); + }) + } +}; + +exports.TextInput = TextInput; +}); + +ace.define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"], function(require, exports, module) { +"use strict"; + +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var BROKEN_SETDATA = useragent.isChrome < 18; +var USE_IE_MIME_TYPE = useragent.isIE; + +var TextInputIOS = require("./textinput_ios").TextInput +var TextInput = function(parentNode, host) { + if (useragent.isIOS) + return TextInputIOS.call(this, parentNode, host); + + var text = dom.createElement("textarea"); + text.className = "ace_text-input"; + + text.setAttribute("wrap", "off"); + text.setAttribute("autocorrect", "off"); + text.setAttribute("autocapitalize", "off"); + text.setAttribute("spellcheck", false); + + text.style.opacity = "0"; + parentNode.insertBefore(text, parentNode.firstChild); + + var PLACEHOLDER = "\u2028\u2028"; + + var copied = false; + var pasted = false; + var inComposition = false; + var tempStyle = ''; + var isSelectionEmpty = true; + try { var isFocused = document.activeElement === text; } catch(e) {} + + event.addListener(text, "blur", function(e) { + host.onBlur(e); + isFocused = false; + }); + event.addListener(text, "focus", function(e) { + isFocused = true; + host.onFocus(e); + resetSelection(); + }); + this.focus = function() { + if (tempStyle) return text.focus(); + var top = text.style.top; + text.style.position = "fixed"; + text.style.top = "0px"; + text.focus(); + setTimeout(function() { + text.style.position = ""; + if (text.style.top == "0px") + text.style.top = top; + }, 0); + }; + this.blur = function() { + text.blur(); + }; + this.isFocused = function() { + return isFocused; + }; + var syncSelection = lang.delayedCall(function() { + isFocused && resetSelection(isSelectionEmpty); + }); + var syncValue = lang.delayedCall(function() { + if (!inComposition) { + text.value = PLACEHOLDER; + isFocused && resetSelection(); + } + }); + + function resetSelection(isEmpty) { + if (inComposition) + return; + inComposition = true; + + if (inputHandler) { + selectionStart = 0; + selectionEnd = isEmpty ? 0 : text.value.length - 1; + } else { + var selectionStart = isEmpty ? 2 : 1; + var selectionEnd = 2; + } + try { + text.setSelectionRange(selectionStart, selectionEnd); + } catch(e){} + + inComposition = false; + } + + function resetValue() { + if (inComposition) + return; + text.value = PLACEHOLDER; + if (useragent.isWebKit) + syncValue.schedule(); + } + + useragent.isWebKit || host.addEventListener('changeSelection', function() { + if (host.selection.isEmpty() != isSelectionEmpty) { + isSelectionEmpty = !isSelectionEmpty; + syncSelection.schedule(); + } + }); + + resetValue(); + if (isFocused) + host.onFocus(); + + + var isAllSelected = function(text) { + return text.selectionStart === 0 && text.selectionEnd === text.value.length; + }; + + var onSelect = function(e) { + if (copied) { + copied = false; + } else if (isAllSelected(text)) { + host.selectAll(); + resetSelection(); + } else if (inputHandler) { + resetSelection(host.selection.isEmpty()); + } + }; + + var inputHandler = null; + this.setInputHandler = function(cb) {inputHandler = cb}; + this.getInputHandler = function() {return inputHandler}; + var afterContextMenu = false; + + var sendText = function(data) { + if (inputHandler) { + data = inputHandler(data); + inputHandler = null; + } + if (pasted) { + resetSelection(); + if (data) + host.onPaste(data); + pasted = false; + } else if (data == PLACEHOLDER.charAt(0)) { + if (afterContextMenu) + host.execCommand("del", {source: "ace"}); + else // some versions of android do not fire keydown when pressing backspace + host.execCommand("backspace", {source: "ace"}); + } else { + if (data.substring(0, 2) == PLACEHOLDER) + data = data.substr(2); + else if (data.charAt(0) == PLACEHOLDER.charAt(0)) + data = data.substr(1); + else if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0)) + data = data.slice(0, -1); + if (data.charAt(data.length - 1) == PLACEHOLDER.charAt(0)) + data = data.slice(0, -1); + + if (data) + host.onTextInput(data); + } + if (afterContextMenu) + afterContextMenu = false; + }; + var onInput = function(e) { + if (inComposition) + return; + var data = text.value; + sendText(data); + resetValue(); + }; + + var handleClipboardData = function(e, data, forceIEMime) { + var clipboardData = e.clipboardData || window.clipboardData; + if (!clipboardData || BROKEN_SETDATA) + return; + var mime = USE_IE_MIME_TYPE || forceIEMime ? "Text" : "text/plain"; + try { + if (data) { + return clipboardData.setData(mime, data) !== false; + } else { + return clipboardData.getData(mime); + } + } catch(e) { + if (!forceIEMime) + return handleClipboardData(e, data, true); + } + }; + + var doCopy = function(e, isCut) { + var data = host.getCopyText(); + if (!data) + return event.preventDefault(e); + + if (handleClipboardData(e, data)) { + isCut ? host.onCut() : host.onCopy(); + event.preventDefault(e); + } else { + copied = true; + text.value = data; + text.select(); + setTimeout(function(){ + copied = false; + resetValue(); + resetSelection(); + isCut ? host.onCut() : host.onCopy(); + }); + } + }; + + var onCut = function(e) { + doCopy(e, true); + }; + + var onCopy = function(e) { + doCopy(e, false); + }; + + var onPaste = function(e) { + var data = handleClipboardData(e); + if (typeof data == "string") { + if (data) + host.onPaste(data, e); + if (useragent.isIE) + setTimeout(resetSelection); + event.preventDefault(e); + } + else { + text.value = ""; + pasted = true; + } + }; + + event.addCommandKeyListener(text, host.onCommandKey.bind(host)); + + event.addListener(text, "select", onSelect); + + event.addListener(text, "input", onInput); + + event.addListener(text, "cut", onCut); + event.addListener(text, "copy", onCopy); + event.addListener(text, "paste", onPaste); + if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) { + event.addListener(parentNode, "keydown", function(e) { + if ((useragent.isMac && !e.metaKey) || !e.ctrlKey) + return; + + switch (e.keyCode) { + case 67: + onCopy(e); + break; + case 86: + onPaste(e); + break; + case 88: + onCut(e); + break; + } + }); + } + var onCompositionStart = function(e) { + if (inComposition || !host.onCompositionStart || host.$readOnly) + return; + inComposition = {}; + inComposition.canUndo = host.session.$undoManager; + host.onCompositionStart(); + setTimeout(onCompositionUpdate, 0); + host.on("mousedown", onCompositionEnd); + if (inComposition.canUndo && !host.selection.isEmpty()) { + host.insert(""); + host.session.markUndoGroup(); + host.selection.clearSelection(); + } + host.session.markUndoGroup(); + }; + + var onCompositionUpdate = function() { + if (!inComposition || !host.onCompositionUpdate || host.$readOnly) + return; + var val = text.value.replace(/\u2028/g, ""); + if (inComposition.lastValue === val) return; + + host.onCompositionUpdate(val); + if (inComposition.lastValue) + host.undo(); + if (inComposition.canUndo) + inComposition.lastValue = val; + if (inComposition.lastValue) { + var r = host.selection.getRange(); + host.insert(inComposition.lastValue); + host.session.markUndoGroup(); + inComposition.range = host.selection.getRange(); + host.selection.setRange(r); + host.selection.clearSelection(); + } + }; + + var onCompositionEnd = function(e) { + if (!host.onCompositionEnd || host.$readOnly) return; + var c = inComposition; + inComposition = false; + var timer = setTimeout(function() { + timer = null; + var str = text.value.replace(/\u2028/g, ""); + if (inComposition) + return; + else if (str == c.lastValue) + resetValue(); + else if (!c.lastValue && str) { + resetValue(); + sendText(str); + } + }); + inputHandler = function compositionInputHandler(str) { + if (timer) + clearTimeout(timer); + str = str.replace(/\u2028/g, ""); + if (str == c.lastValue) + return ""; + if (c.lastValue && timer) + host.undo(); + return str; + }; + host.onCompositionEnd(); + host.removeListener("mousedown", onCompositionEnd); + if (e.type == "compositionend" && c.range) { + host.selection.setRange(c.range); + } + var needsOnInput = + (!!useragent.isChrome && useragent.isChrome >= 53) || + (!!useragent.isWebKit && useragent.isWebKit >= 603); + + if (needsOnInput) { + onInput(); + } + }; + + + + var syncComposition = lang.delayedCall(onCompositionUpdate, 50); + + event.addListener(text, "compositionstart", onCompositionStart); + if (useragent.isGecko) { + event.addListener(text, "text", function(){syncComposition.schedule()}); + } else { + event.addListener(text, "keyup", function(){syncComposition.schedule()}); + event.addListener(text, "keydown", function(){syncComposition.schedule()}); + } + event.addListener(text, "compositionend", onCompositionEnd); + + this.getElement = function() { + return text; + }; + + this.setReadOnly = function(readOnly) { + text.readOnly = readOnly; + }; + + this.onContextMenu = function(e) { + afterContextMenu = true; + resetSelection(host.selection.isEmpty()); + host._emit("nativecontextmenu", {target: host, domEvent: e}); + this.moveToMouse(e, true); + }; + + this.moveToMouse = function(e, bringToFront) { + if (!tempStyle) + tempStyle = text.style.cssText; + text.style.cssText = (bringToFront ? "z-index:100000;" : "") + + "height:" + text.style.height + ";" + + (useragent.isIE ? "opacity:0.1;" : ""); + + var rect = host.container.getBoundingClientRect(); + var style = dom.computedStyle(host.container); + var top = rect.top + (parseInt(style.borderTopWidth) || 0); + var left = rect.left + (parseInt(rect.borderLeftWidth) || 0); + var maxTop = rect.bottom - top - text.clientHeight -2; + var move = function(e) { + text.style.left = e.clientX - left - 2 + "px"; + text.style.top = Math.min(e.clientY - top - 2, maxTop) + "px"; + }; + move(e); + + if (e.type != "mousedown") + return; + + if (host.renderer.$keepTextAreaAtCursor) + host.renderer.$keepTextAreaAtCursor = null; + + clearTimeout(closeTimeout); + if (useragent.isWin) + event.capture(host.container, move, onContextMenuClose); + }; + + this.onContextMenuClose = onContextMenuClose; + var closeTimeout; + function onContextMenuClose() { + clearTimeout(closeTimeout); + closeTimeout = setTimeout(function () { + if (tempStyle) { + text.style.cssText = tempStyle; + tempStyle = ''; + } + if (host.renderer.$keepTextAreaAtCursor == null) { + host.renderer.$keepTextAreaAtCursor = true; + host.renderer.$moveTextAreaToCursor(); + } + }, 0); + } + + var onContextMenu = function(e) { + host.textInput.onContextMenu(e); + onContextMenuClose(); + }; + event.addListener(text, "mouseup", onContextMenu); + event.addListener(text, "mousedown", function(e) { + e.preventDefault(); + onContextMenuClose(); + }); + event.addListener(host.renderer.scroller, "contextmenu", onContextMenu); + event.addListener(text, "contextmenu", onContextMenu); +}; + +exports.TextInput = TextInput; +}); + +ace.define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); + +var DRAG_OFFSET = 0; // pixels + +function DefaultHandlers(mouseHandler) { + mouseHandler.$clickSelection = null; + + var editor = mouseHandler.editor; + editor.setDefaultHandler("mousedown", this.onMouseDown.bind(mouseHandler)); + editor.setDefaultHandler("dblclick", this.onDoubleClick.bind(mouseHandler)); + editor.setDefaultHandler("tripleclick", this.onTripleClick.bind(mouseHandler)); + editor.setDefaultHandler("quadclick", this.onQuadClick.bind(mouseHandler)); + editor.setDefaultHandler("mousewheel", this.onMouseWheel.bind(mouseHandler)); + editor.setDefaultHandler("touchmove", this.onTouchMove.bind(mouseHandler)); + + var exports = ["select", "startSelect", "selectEnd", "selectAllEnd", "selectByWordsEnd", + "selectByLinesEnd", "dragWait", "dragWaitEnd", "focusWait"]; + + exports.forEach(function(x) { + mouseHandler[x] = this[x]; + }, this); + + mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, "getLineRange"); + mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, "getWordRange"); +} + +(function() { + + this.onMouseDown = function(ev) { + var inSelection = ev.inSelection(); + var pos = ev.getDocumentPosition(); + this.mousedownEvent = ev; + var editor = this.editor; + + var button = ev.getButton(); + if (button !== 0) { + var selectionRange = editor.getSelectionRange(); + var selectionEmpty = selectionRange.isEmpty(); + editor.$blockScrolling++; + if (selectionEmpty || button == 1) + editor.selection.moveToPosition(pos); + editor.$blockScrolling--; + if (button == 2) { + editor.textInput.onContextMenu(ev.domEvent); + if (!useragent.isMozilla) + ev.preventDefault(); + } + return; + } + + this.mousedownEvent.time = Date.now(); + if (inSelection && !editor.isFocused()) { + editor.focus(); + if (this.$focusTimout && !this.$clickSelection && !editor.inMultiSelectMode) { + this.setState("focusWait"); + this.captureMouse(ev); + return; + } + } + + this.captureMouse(ev); + this.startSelect(pos, ev.domEvent._clicks > 1); + return ev.preventDefault(); + }; + + this.startSelect = function(pos, waitForClickSelection) { + pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y); + var editor = this.editor; + editor.$blockScrolling++; + if (this.mousedownEvent.getShiftKey()) + editor.selection.selectToPosition(pos); + else if (!waitForClickSelection) + editor.selection.moveToPosition(pos); + if (!waitForClickSelection) + this.select(); + if (editor.renderer.scroller.setCapture) { + editor.renderer.scroller.setCapture(); + } + editor.setStyle("ace_selecting"); + this.setState("select"); + editor.$blockScrolling--; + }; + + this.select = function() { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + editor.$blockScrolling++; + if (this.$clickSelection) { + var cmp = this.$clickSelection.comparePoint(cursor); + + if (cmp == -1) { + anchor = this.$clickSelection.end; + } else if (cmp == 1) { + anchor = this.$clickSelection.start; + } else { + var orientedRange = calcRangeOrientation(this.$clickSelection, cursor); + cursor = orientedRange.cursor; + anchor = orientedRange.anchor; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + editor.$blockScrolling--; + editor.renderer.scrollCursorIntoView(); + }; + + this.extendSelectionBy = function(unitName) { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + var range = editor.selection[unitName](cursor.row, cursor.column); + editor.$blockScrolling++; + if (this.$clickSelection) { + var cmpStart = this.$clickSelection.comparePoint(range.start); + var cmpEnd = this.$clickSelection.comparePoint(range.end); + + if (cmpStart == -1 && cmpEnd <= 0) { + anchor = this.$clickSelection.end; + if (range.end.row != cursor.row || range.end.column != cursor.column) + cursor = range.start; + } else if (cmpEnd == 1 && cmpStart >= 0) { + anchor = this.$clickSelection.start; + if (range.start.row != cursor.row || range.start.column != cursor.column) + cursor = range.end; + } else if (cmpStart == -1 && cmpEnd == 1) { + cursor = range.end; + anchor = range.start; + } else { + var orientedRange = calcRangeOrientation(this.$clickSelection, cursor); + cursor = orientedRange.cursor; + anchor = orientedRange.anchor; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + editor.$blockScrolling--; + editor.renderer.scrollCursorIntoView(); + }; + + this.selectEnd = + this.selectAllEnd = + this.selectByWordsEnd = + this.selectByLinesEnd = function() { + this.$clickSelection = null; + this.editor.unsetStyle("ace_selecting"); + if (this.editor.renderer.scroller.releaseCapture) { + this.editor.renderer.scroller.releaseCapture(); + } + }; + + this.focusWait = function() { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + var time = Date.now(); + + if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimout) + this.startSelect(this.mousedownEvent.getDocumentPosition()); + }; + + this.onDoubleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + var session = editor.session; + + var range = session.getBracketRange(pos); + if (range) { + if (range.isEmpty()) { + range.start.column--; + range.end.column++; + } + this.setState("select"); + } else { + range = editor.selection.getWordRange(pos.row, pos.column); + this.setState("selectByWords"); + } + this.$clickSelection = range; + this.select(); + }; + + this.onTripleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + + this.setState("selectByLines"); + var range = editor.getSelectionRange(); + if (range.isMultiLine() && range.contains(pos.row, pos.column)) { + this.$clickSelection = editor.selection.getLineRange(range.start.row); + this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end; + } else { + this.$clickSelection = editor.selection.getLineRange(pos.row); + } + this.select(); + }; + + this.onQuadClick = function(ev) { + var editor = this.editor; + + editor.selectAll(); + this.$clickSelection = editor.getSelectionRange(); + this.setState("selectAll"); + }; + + this.onMouseWheel = function(ev) { + if (ev.getAccelKey()) + return; + if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) { + ev.wheelX = ev.wheelY; + ev.wheelY = 0; + } + + var t = ev.domEvent.timeStamp; + var dt = t - (this.$lastScrollTime||0); + + var editor = this.editor; + var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + if (isScrolable || dt < 200) { + this.$lastScrollTime = t; + editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + return ev.stop(); + } + }; + + this.onTouchMove = function (ev) { + var t = ev.domEvent.timeStamp; + var dt = t - (this.$lastScrollTime || 0); + + var editor = this.editor; + var isScrolable = editor.renderer.isScrollableBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + if (isScrolable || dt < 200) { + this.$lastScrollTime = t; + editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + return ev.stop(); + } + }; + +}).call(DefaultHandlers.prototype); + +exports.DefaultHandlers = DefaultHandlers; + +function calcDistance(ax, ay, bx, by) { + return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2)); +} + +function calcRangeOrientation(range, cursor) { + if (range.start.row == range.end.row) + var cmp = 2 * cursor.column - range.start.column - range.end.column; + else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column) + var cmp = cursor.column - 4; + else + var cmp = 2 * cursor.row - range.start.row - range.end.row; + + if (cmp < 0) + return {cursor: range.start, anchor: range.end}; + else + return {cursor: range.end, anchor: range.start}; +} + +}); + +ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +function Tooltip (parentNode) { + this.isOpen = false; + this.$element = null; + this.$parentNode = parentNode; +} + +(function() { + this.$init = function() { + this.$element = dom.createElement("div"); + this.$element.className = "ace_tooltip"; + this.$element.style.display = "none"; + this.$parentNode.appendChild(this.$element); + return this.$element; + }; + this.getElement = function() { + return this.$element || this.$init(); + }; + this.setText = function(text) { + dom.setInnerText(this.getElement(), text); + }; + this.setHtml = function(html) { + this.getElement().innerHTML = html; + }; + this.setPosition = function(x, y) { + this.getElement().style.left = x + "px"; + this.getElement().style.top = y + "px"; + }; + this.setClassName = function(className) { + dom.addCssClass(this.getElement(), className); + }; + this.show = function(text, x, y) { + if (text != null) + this.setText(text); + if (x != null && y != null) + this.setPosition(x, y); + if (!this.isOpen) { + this.getElement().style.display = "block"; + this.isOpen = true; + } + }; + + this.hide = function() { + if (this.isOpen) { + this.getElement().style.display = "none"; + this.isOpen = false; + } + }; + this.getHeight = function() { + return this.getElement().offsetHeight; + }; + this.getWidth = function() { + return this.getElement().offsetWidth; + }; + + this.destroy = function() { + this.isOpen = false; + if (this.$element && this.$element.parentNode) { + this.$element.parentNode.removeChild(this.$element); + } + }; + +}).call(Tooltip.prototype); + +exports.Tooltip = Tooltip; +}); + +ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"], function(require, exports, module) { +"use strict"; +var dom = require("../lib/dom"); +var oop = require("../lib/oop"); +var event = require("../lib/event"); +var Tooltip = require("../tooltip").Tooltip; + +function GutterHandler(mouseHandler) { + var editor = mouseHandler.editor; + var gutter = editor.renderer.$gutterLayer; + var tooltip = new GutterTooltip(editor.container); + + mouseHandler.editor.setDefaultHandler("guttermousedown", function(e) { + if (!editor.isFocused() || e.getButton() != 0) + return; + var gutterRegion = gutter.getRegion(e); + + if (gutterRegion == "foldWidgets") + return; + + var row = e.getDocumentPosition().row; + var selection = editor.session.selection; + + if (e.getShiftKey()) + selection.selectTo(row, 0); + else { + if (e.domEvent.detail == 2) { + editor.selectAll(); + return e.preventDefault(); + } + mouseHandler.$clickSelection = editor.selection.getLineRange(row); + } + mouseHandler.setState("selectByLines"); + mouseHandler.captureMouse(e); + return e.preventDefault(); + }); + + + var tooltipTimeout, mouseEvent, tooltipAnnotation; + + function showTooltip() { + var row = mouseEvent.getDocumentPosition().row; + var annotation = gutter.$annotations[row]; + if (!annotation) + return hideTooltip(); + + var maxRow = editor.session.getLength(); + if (row == maxRow) { + var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row; + var pos = mouseEvent.$pos; + if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column)) + return hideTooltip(); + } + + if (tooltipAnnotation == annotation) + return; + tooltipAnnotation = annotation.text.join("
    "); + + tooltip.setHtml(tooltipAnnotation); + tooltip.show(); + editor._signal("showGutterTooltip", tooltip); + editor.on("mousewheel", hideTooltip); + + if (mouseHandler.$tooltipFollowsMouse) { + moveTooltip(mouseEvent); + } else { + var gutterElement = mouseEvent.domEvent.target; + var rect = gutterElement.getBoundingClientRect(); + var style = tooltip.getElement().style; + style.left = rect.right + "px"; + style.top = rect.bottom + "px"; + } + } + + function hideTooltip() { + if (tooltipTimeout) + tooltipTimeout = clearTimeout(tooltipTimeout); + if (tooltipAnnotation) { + tooltip.hide(); + tooltipAnnotation = null; + editor._signal("hideGutterTooltip", tooltip); + editor.removeEventListener("mousewheel", hideTooltip); + } + } + + function moveTooltip(e) { + tooltip.setPosition(e.x, e.y); + } + + mouseHandler.editor.setDefaultHandler("guttermousemove", function(e) { + var target = e.domEvent.target || e.domEvent.srcElement; + if (dom.hasCssClass(target, "ace_fold-widget")) + return hideTooltip(); + + if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse) + moveTooltip(e); + + mouseEvent = e; + if (tooltipTimeout) + return; + tooltipTimeout = setTimeout(function() { + tooltipTimeout = null; + if (mouseEvent && !mouseHandler.isMousePressed) + showTooltip(); + else + hideTooltip(); + }, 50); + }); + + event.addListener(editor.renderer.$gutter, "mouseout", function(e) { + mouseEvent = null; + if (!tooltipAnnotation || tooltipTimeout) + return; + + tooltipTimeout = setTimeout(function() { + tooltipTimeout = null; + hideTooltip(); + }, 50); + }); + + editor.on("changeSession", hideTooltip); +} + +function GutterTooltip(parentNode) { + Tooltip.call(this, parentNode); +} + +oop.inherits(GutterTooltip, Tooltip); + +(function(){ + this.setPosition = function(x, y) { + var windowWidth = window.innerWidth || document.documentElement.clientWidth; + var windowHeight = window.innerHeight || document.documentElement.clientHeight; + var width = this.getWidth(); + var height = this.getHeight(); + x += 15; + y += 15; + if (x + width > windowWidth) { + x -= (x + width) - windowWidth; + } + if (y + height > windowHeight) { + y -= 20 + height; + } + Tooltip.prototype.setPosition.call(this, x, y); + }; + +}).call(GutterTooltip.prototype); + + + +exports.GutterHandler = GutterHandler; + +}); + +ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +var MouseEvent = exports.MouseEvent = function(domEvent, editor) { + this.domEvent = domEvent; + this.editor = editor; + + this.x = this.clientX = domEvent.clientX; + this.y = this.clientY = domEvent.clientY; + + this.$pos = null; + this.$inSelection = null; + + this.propagationStopped = false; + this.defaultPrevented = false; +}; + +(function() { + + this.stopPropagation = function() { + event.stopPropagation(this.domEvent); + this.propagationStopped = true; + }; + + this.preventDefault = function() { + event.preventDefault(this.domEvent); + this.defaultPrevented = true; + }; + + this.stop = function() { + this.stopPropagation(); + this.preventDefault(); + }; + this.getDocumentPosition = function() { + if (this.$pos) + return this.$pos; + + this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY); + return this.$pos; + }; + this.inSelection = function() { + if (this.$inSelection !== null) + return this.$inSelection; + + var editor = this.editor; + + + var selectionRange = editor.getSelectionRange(); + if (selectionRange.isEmpty()) + this.$inSelection = false; + else { + var pos = this.getDocumentPosition(); + this.$inSelection = selectionRange.contains(pos.row, pos.column); + } + + return this.$inSelection; + }; + this.getButton = function() { + return event.getButton(this.domEvent); + }; + this.getShiftKey = function() { + return this.domEvent.shiftKey; + }; + + this.getAccelKey = useragent.isMac + ? function() { return this.domEvent.metaKey; } + : function() { return this.domEvent.ctrlKey; }; + +}).call(MouseEvent.prototype); + +}); + +ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); + +var AUTOSCROLL_DELAY = 200; +var SCROLL_CURSOR_DELAY = 200; +var SCROLL_CURSOR_HYSTERESIS = 5; + +function DragdropHandler(mouseHandler) { + + var editor = mouseHandler.editor; + + var blankImage = dom.createElement("img"); + blankImage.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (useragent.isOpera) + blankImage.style.cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"; + + var exports = ["dragWait", "dragWaitEnd", "startDrag", "dragReadyEnd", "onMouseDrag"]; + + exports.forEach(function(x) { + mouseHandler[x] = this[x]; + }, this); + editor.addEventListener("mousedown", this.onMouseDown.bind(mouseHandler)); + + + var mouseTarget = editor.container; + var dragSelectionMarker, x, y; + var timerId, range; + var dragCursor, counter = 0; + var dragOperation; + var isInternal; + var autoScrollStartTime; + var cursorMovedTime; + var cursorPointOnCaretMoved; + + this.onDragStart = function(e) { + if (this.cancelDrag || !mouseTarget.draggable) { + var self = this; + setTimeout(function(){ + self.startSelect(); + self.captureMouse(e); + }, 0); + return e.preventDefault(); + } + range = editor.getSelectionRange(); + + var dataTransfer = e.dataTransfer; + dataTransfer.effectAllowed = editor.getReadOnly() ? "copy" : "copyMove"; + if (useragent.isOpera) { + editor.container.appendChild(blankImage); + blankImage.scrollTop = 0; + } + dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0); + if (useragent.isOpera) { + editor.container.removeChild(blankImage); + } + dataTransfer.clearData(); + dataTransfer.setData("Text", editor.session.getTextRange()); + + isInternal = true; + this.setState("drag"); + }; + + this.onDragEnd = function(e) { + mouseTarget.draggable = false; + isInternal = false; + this.setState(null); + if (!editor.getReadOnly()) { + var dropEffect = e.dataTransfer.dropEffect; + if (!dragOperation && dropEffect == "move") + editor.session.remove(editor.getSelectionRange()); + editor.renderer.$cursorLayer.setBlinking(true); + } + this.editor.unsetStyle("ace_dragging"); + this.editor.renderer.setCursorStyle(""); + }; + + this.onDragEnter = function(e) { + if (editor.getReadOnly() || !canAccept(e.dataTransfer)) + return; + x = e.clientX; + y = e.clientY; + if (!dragSelectionMarker) + addDragMarker(); + counter++; + e.dataTransfer.dropEffect = dragOperation = getDropEffect(e); + return event.preventDefault(e); + }; + + this.onDragOver = function(e) { + if (editor.getReadOnly() || !canAccept(e.dataTransfer)) + return; + x = e.clientX; + y = e.clientY; + if (!dragSelectionMarker) { + addDragMarker(); + counter++; + } + if (onMouseMoveTimer !== null) + onMouseMoveTimer = null; + + e.dataTransfer.dropEffect = dragOperation = getDropEffect(e); + return event.preventDefault(e); + }; + + this.onDragLeave = function(e) { + counter--; + if (counter <= 0 && dragSelectionMarker) { + clearDragMarker(); + dragOperation = null; + return event.preventDefault(e); + } + }; + + this.onDrop = function(e) { + if (!dragCursor) + return; + var dataTransfer = e.dataTransfer; + if (isInternal) { + switch (dragOperation) { + case "move": + if (range.contains(dragCursor.row, dragCursor.column)) { + range = { + start: dragCursor, + end: dragCursor + }; + } else { + range = editor.moveText(range, dragCursor); + } + break; + case "copy": + range = editor.moveText(range, dragCursor, true); + break; + } + } else { + var dropData = dataTransfer.getData('Text'); + range = { + start: dragCursor, + end: editor.session.insert(dragCursor, dropData) + }; + editor.focus(); + dragOperation = null; + } + clearDragMarker(); + return event.preventDefault(e); + }; + + event.addListener(mouseTarget, "dragstart", this.onDragStart.bind(mouseHandler)); + event.addListener(mouseTarget, "dragend", this.onDragEnd.bind(mouseHandler)); + event.addListener(mouseTarget, "dragenter", this.onDragEnter.bind(mouseHandler)); + event.addListener(mouseTarget, "dragover", this.onDragOver.bind(mouseHandler)); + event.addListener(mouseTarget, "dragleave", this.onDragLeave.bind(mouseHandler)); + event.addListener(mouseTarget, "drop", this.onDrop.bind(mouseHandler)); + + function scrollCursorIntoView(cursor, prevCursor) { + var now = Date.now(); + var vMovement = !prevCursor || cursor.row != prevCursor.row; + var hMovement = !prevCursor || cursor.column != prevCursor.column; + if (!cursorMovedTime || vMovement || hMovement) { + editor.$blockScrolling += 1; + editor.moveCursorToPosition(cursor); + editor.$blockScrolling -= 1; + cursorMovedTime = now; + cursorPointOnCaretMoved = {x: x, y: y}; + } else { + var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y); + if (distance > SCROLL_CURSOR_HYSTERESIS) { + cursorMovedTime = null; + } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) { + editor.renderer.scrollCursorIntoView(); + cursorMovedTime = null; + } + } + } + + function autoScroll(cursor, prevCursor) { + var now = Date.now(); + var lineHeight = editor.renderer.layerConfig.lineHeight; + var characterWidth = editor.renderer.layerConfig.characterWidth; + var editorRect = editor.renderer.scroller.getBoundingClientRect(); + var offsets = { + x: { + left: x - editorRect.left, + right: editorRect.right - x + }, + y: { + top: y - editorRect.top, + bottom: editorRect.bottom - y + } + }; + var nearestXOffset = Math.min(offsets.x.left, offsets.x.right); + var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom); + var scrollCursor = {row: cursor.row, column: cursor.column}; + if (nearestXOffset / characterWidth <= 2) { + scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2); + } + if (nearestYOffset / lineHeight <= 1) { + scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1); + } + var vScroll = cursor.row != scrollCursor.row; + var hScroll = cursor.column != scrollCursor.column; + var vMovement = !prevCursor || cursor.row != prevCursor.row; + if (vScroll || (hScroll && !vMovement)) { + if (!autoScrollStartTime) + autoScrollStartTime = now; + else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY) + editor.renderer.scrollCursorIntoView(scrollCursor); + } else { + autoScrollStartTime = null; + } + } + + function onDragInterval() { + var prevCursor = dragCursor; + dragCursor = editor.renderer.screenToTextCoordinates(x, y); + scrollCursorIntoView(dragCursor, prevCursor); + autoScroll(dragCursor, prevCursor); + } + + function addDragMarker() { + range = editor.selection.toOrientedRange(); + dragSelectionMarker = editor.session.addMarker(range, "ace_selection", editor.getSelectionStyle()); + editor.clearSelection(); + if (editor.isFocused()) + editor.renderer.$cursorLayer.setBlinking(false); + clearInterval(timerId); + onDragInterval(); + timerId = setInterval(onDragInterval, 20); + counter = 0; + event.addListener(document, "mousemove", onMouseMove); + } + + function clearDragMarker() { + clearInterval(timerId); + editor.session.removeMarker(dragSelectionMarker); + dragSelectionMarker = null; + editor.$blockScrolling += 1; + editor.selection.fromOrientedRange(range); + editor.$blockScrolling -= 1; + if (editor.isFocused() && !isInternal) + editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly()); + range = null; + dragCursor = null; + counter = 0; + autoScrollStartTime = null; + cursorMovedTime = null; + event.removeListener(document, "mousemove", onMouseMove); + } + var onMouseMoveTimer = null; + function onMouseMove() { + if (onMouseMoveTimer == null) { + onMouseMoveTimer = setTimeout(function() { + if (onMouseMoveTimer != null && dragSelectionMarker) + clearDragMarker(); + }, 20); + } + } + + function canAccept(dataTransfer) { + var types = dataTransfer.types; + return !types || Array.prototype.some.call(types, function(type) { + return type == 'text/plain' || type == 'Text'; + }); + } + + function getDropEffect(e) { + var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized']; + var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized']; + + var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey; + var effectAllowed = "uninitialized"; + try { + effectAllowed = e.dataTransfer.effectAllowed.toLowerCase(); + } catch (e) {} + var dropEffect = "none"; + + if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "copy"; + else if (moveAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "move"; + else if (copyAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "copy"; + + return dropEffect; + } +} + +(function() { + + this.dragWait = function() { + var interval = Date.now() - this.mousedownEvent.time; + if (interval > this.editor.getDragDelay()) + this.startDrag(); + }; + + this.dragWaitEnd = function() { + var target = this.editor.container; + target.draggable = false; + this.startSelect(this.mousedownEvent.getDocumentPosition()); + this.selectEnd(); + }; + + this.dragReadyEnd = function(e) { + this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()); + this.editor.unsetStyle("ace_dragging"); + this.editor.renderer.setCursorStyle(""); + this.dragWaitEnd(); + }; + + this.startDrag = function(){ + this.cancelDrag = false; + var editor = this.editor; + var target = editor.container; + target.draggable = true; + editor.renderer.$cursorLayer.setBlinking(false); + editor.setStyle("ace_dragging"); + var cursorStyle = useragent.isWin ? "default" : "move"; + editor.renderer.setCursorStyle(cursorStyle); + this.setState("dragReady"); + }; + + this.onMouseDrag = function(e) { + var target = this.editor.container; + if (useragent.isIE && this.state == "dragReady") { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + if (distance > 3) + target.dragDrop(); + } + if (this.state === "dragWait") { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + if (distance > 0) { + target.draggable = false; + this.startSelect(this.mousedownEvent.getDocumentPosition()); + } + } + }; + + this.onMouseDown = function(e) { + if (!this.$dragEnabled) + return; + this.mousedownEvent = e; + var editor = this.editor; + + var inSelection = e.inSelection(); + var button = e.getButton(); + var clickCount = e.domEvent.detail || 1; + if (clickCount === 1 && button === 0 && inSelection) { + if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey())) + return; + this.mousedownEvent.time = Date.now(); + var eventTarget = e.domEvent.target || e.domEvent.srcElement; + if ("unselectable" in eventTarget) + eventTarget.unselectable = "on"; + if (editor.getDragDelay()) { + if (useragent.isWebKit) { + this.cancelDrag = true; + var mouseTarget = editor.container; + mouseTarget.draggable = true; + } + this.setState("dragWait"); + } else { + this.startDrag(); + } + this.captureMouse(e, this.onMouseDrag.bind(this)); + e.defaultPrevented = true; + } + }; + +}).call(DragdropHandler.prototype); + + +function calcDistance(ax, ay, bx, by) { + return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2)); +} + +exports.DragdropHandler = DragdropHandler; + +}); + +ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; +var dom = require("./dom"); + +exports.get = function (url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + callback(xhr.responseText); + } + }; + xhr.send(null); +}; + +exports.loadScript = function(path, callback) { + var head = dom.getDocumentHead(); + var s = document.createElement('script'); + + s.src = path; + head.appendChild(s); + + s.onload = s.onreadystatechange = function(_, isAbort) { + if (isAbort || !s.readyState || s.readyState == "loaded" || s.readyState == "complete") { + s = s.onload = s.onreadystatechange = null; + if (!isAbort) + callback(); + } + }; +}; +exports.qualifyURL = function(url) { + var a = document.createElement('a'); + a.href = url; + return a.href; +} + +}); + +ace.define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i 1) + base = parts[parts.length - 2]; + var path = options[component + "Path"]; + if (path == null) { + path = options.basePath; + } else if (sep == "/") { + component = sep = ""; + } + if (path && path.slice(-1) != "/") + path += "/"; + return path + component + sep + base + this.get("suffix"); +}; + +exports.setModuleUrl = function(name, subst) { + return options.$moduleUrls[name] = subst; +}; + +exports.$loading = {}; +exports.loadModule = function(moduleName, onLoad) { + var module, moduleType; + if (Array.isArray(moduleName)) { + moduleType = moduleName[0]; + moduleName = moduleName[1]; + } + + try { + module = require(moduleName); + } catch (e) {} + if (module && !exports.$loading[moduleName]) + return onLoad && onLoad(module); + + if (!exports.$loading[moduleName]) + exports.$loading[moduleName] = []; + + exports.$loading[moduleName].push(onLoad); + + if (exports.$loading[moduleName].length > 1) + return; + + var afterLoad = function() { + require([moduleName], function(module) { + exports._emit("load.module", {name: moduleName, module: module}); + var listeners = exports.$loading[moduleName]; + exports.$loading[moduleName] = null; + listeners.forEach(function(onLoad) { + onLoad && onLoad(module); + }); + }); + }; + + if (!exports.get("packaged")) + return afterLoad(); + net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad); +}; +init(true);function init(packaged) { + + if (!global || !global.document) + return; + + options.packaged = packaged || require.packaged || module.packaged || (global.define && define.packaged); + + var scriptOptions = {}; + var scriptUrl = ""; + var currentScript = (document.currentScript || document._currentScript ); // native or polyfill + var currentDocument = currentScript && currentScript.ownerDocument || document; + + var scripts = currentDocument.getElementsByTagName("script"); + for (var i=0; i [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +ace.define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Selection = function(session) { + this.session = session; + this.doc = session.getDocument(); + + this.clearSelection(); + this.lead = this.selectionLead = this.doc.createAnchor(0, 0); + this.anchor = this.selectionAnchor = this.doc.createAnchor(0, 0); + + var self = this; + this.lead.on("change", function(e) { + self._emit("changeCursor"); + if (!self.$isEmpty) + self._emit("changeSelection"); + if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column) + self.$desiredColumn = null; + }); + + this.selectionAnchor.on("change", function() { + if (!self.$isEmpty) + self._emit("changeSelection"); + }); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.isEmpty = function() { + return (this.$isEmpty || ( + this.anchor.row == this.lead.row && + this.anchor.column == this.lead.column + )); + }; + this.isMultiLine = function() { + if (this.isEmpty()) { + return false; + } + + return this.getRange().isMultiLine(); + }; + this.getCursor = function() { + return this.lead.getPosition(); + }; + this.setSelectionAnchor = function(row, column) { + this.anchor.setPosition(row, column); + + if (this.$isEmpty) { + this.$isEmpty = false; + this._emit("changeSelection"); + } + }; + this.getSelectionAnchor = function() { + if (this.$isEmpty) + return this.getSelectionLead(); + else + return this.anchor.getPosition(); + }; + this.getSelectionLead = function() { + return this.lead.getPosition(); + }; + this.shiftSelection = function(columns) { + if (this.$isEmpty) { + this.moveCursorTo(this.lead.row, this.lead.column + columns); + return; + } + + var anchor = this.getSelectionAnchor(); + var lead = this.getSelectionLead(); + + var isBackwards = this.isBackwards(); + + if (!isBackwards || anchor.column !== 0) + this.setSelectionAnchor(anchor.row, anchor.column + columns); + + if (isBackwards || lead.column !== 0) { + this.$moveSelection(function() { + this.moveCursorTo(lead.row, lead.column + columns); + }); + } + }; + this.isBackwards = function() { + var anchor = this.anchor; + var lead = this.lead; + return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column)); + }; + this.getRange = function() { + var anchor = this.anchor; + var lead = this.lead; + + if (this.isEmpty()) + return Range.fromPoints(lead, lead); + + if (this.isBackwards()) { + return Range.fromPoints(lead, anchor); + } + else { + return Range.fromPoints(anchor, lead); + } + }; + this.clearSelection = function() { + if (!this.$isEmpty) { + this.$isEmpty = true; + this._emit("changeSelection"); + } + }; + this.selectAll = function() { + var lastRow = this.doc.getLength() - 1; + this.setSelectionAnchor(0, 0); + this.moveCursorTo(lastRow, this.doc.getLine(lastRow).length); + }; + this.setRange = + this.setSelectionRange = function(range, reverse) { + if (reverse) { + this.setSelectionAnchor(range.end.row, range.end.column); + this.selectTo(range.start.row, range.start.column); + } else { + this.setSelectionAnchor(range.start.row, range.start.column); + this.selectTo(range.end.row, range.end.column); + } + if (this.getRange().isEmpty()) + this.$isEmpty = true; + this.$desiredColumn = null; + }; + + this.$moveSelection = function(mover) { + var lead = this.lead; + if (this.$isEmpty) + this.setSelectionAnchor(lead.row, lead.column); + + mover.call(this); + }; + this.selectTo = function(row, column) { + this.$moveSelection(function() { + this.moveCursorTo(row, column); + }); + }; + this.selectToPosition = function(pos) { + this.$moveSelection(function() { + this.moveCursorToPosition(pos); + }); + }; + this.moveTo = function(row, column) { + this.clearSelection(); + this.moveCursorTo(row, column); + }; + this.moveToPosition = function(pos) { + this.clearSelection(); + this.moveCursorToPosition(pos); + }; + this.selectUp = function() { + this.$moveSelection(this.moveCursorUp); + }; + this.selectDown = function() { + this.$moveSelection(this.moveCursorDown); + }; + this.selectRight = function() { + this.$moveSelection(this.moveCursorRight); + }; + this.selectLeft = function() { + this.$moveSelection(this.moveCursorLeft); + }; + this.selectLineStart = function() { + this.$moveSelection(this.moveCursorLineStart); + }; + this.selectLineEnd = function() { + this.$moveSelection(this.moveCursorLineEnd); + }; + this.selectFileEnd = function() { + this.$moveSelection(this.moveCursorFileEnd); + }; + this.selectFileStart = function() { + this.$moveSelection(this.moveCursorFileStart); + }; + this.selectWordRight = function() { + this.$moveSelection(this.moveCursorWordRight); + }; + this.selectWordLeft = function() { + this.$moveSelection(this.moveCursorWordLeft); + }; + this.getWordRange = function(row, column) { + if (typeof column == "undefined") { + var cursor = row || this.lead; + row = cursor.row; + column = cursor.column; + } + return this.session.getWordRange(row, column); + }; + this.selectWord = function() { + this.setSelectionRange(this.getWordRange()); + }; + this.selectAWord = function() { + var cursor = this.getCursor(); + var range = this.session.getAWordRange(cursor.row, cursor.column); + this.setSelectionRange(range); + }; + + this.getLineRange = function(row, excludeLastChar) { + var rowStart = typeof row == "number" ? row : this.lead.row; + var rowEnd; + + var foldLine = this.session.getFoldLine(rowStart); + if (foldLine) { + rowStart = foldLine.start.row; + rowEnd = foldLine.end.row; + } else { + rowEnd = rowStart; + } + if (excludeLastChar === true) + return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length); + else + return new Range(rowStart, 0, rowEnd + 1, 0); + }; + this.selectLine = function() { + this.setSelectionRange(this.getLineRange()); + }; + this.moveCursorUp = function() { + this.moveCursorBy(-1, 0); + }; + this.moveCursorDown = function() { + this.moveCursorBy(1, 0); + }; + this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) { + var start = cursor.column; + var end = cursor.column + tabSize; + + if (direction < 0) { + start = cursor.column - tabSize; + end = cursor.column; + } + return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(" ").length-1 == tabSize + } + this.moveCursorLeft = function() { + var cursor = this.lead.getPosition(), + fold; + + if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + } else if (cursor.column === 0) { + if (cursor.row > 0) { + this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length); + } + } + else { + var tabSize = this.session.getTabSize(); + if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) { + this.moveCursorBy(0, -tabSize); + } else { + this.moveCursorBy(0, -1); + } + } + }; + this.moveCursorRight = function() { + var cursor = this.lead.getPosition(), + fold; + if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) { + this.moveCursorTo(fold.end.row, fold.end.column); + } + else if (this.lead.column == this.doc.getLine(this.lead.row).length) { + if (this.lead.row < this.doc.getLength() - 1) { + this.moveCursorTo(this.lead.row + 1, 0); + } + } + else { + var tabSize = this.session.getTabSize(); + var cursor = this.lead; + if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) { + this.moveCursorBy(0, tabSize); + } else { + this.moveCursorBy(0, 1); + } + } + }; + this.moveCursorLineStart = function() { + var row = this.lead.row; + var column = this.lead.column; + var screenRow = this.session.documentToScreenRow(row, column); + var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0); + var beforeCursor = this.session.getDisplayLine( + row, null, firstColumnPosition.row, + firstColumnPosition.column + ); + + var leadingSpace = beforeCursor.match(/^\s*/); + if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart) + firstColumnPosition.column += leadingSpace[0].length; + this.moveCursorToPosition(firstColumnPosition); + }; + this.moveCursorLineEnd = function() { + var lead = this.lead; + var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column); + if (this.lead.column == lineEnd.column) { + var line = this.session.getLine(lineEnd.row); + if (lineEnd.column == line.length) { + var textEnd = line.search(/\s+$/); + if (textEnd > 0) + lineEnd.column = textEnd; + } + } + + this.moveCursorTo(lineEnd.row, lineEnd.column); + }; + this.moveCursorFileEnd = function() { + var row = this.doc.getLength() - 1; + var column = this.doc.getLine(row).length; + this.moveCursorTo(row, column); + }; + this.moveCursorFileStart = function() { + this.moveCursorTo(0, 0); + }; + this.moveCursorLongWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + var match; + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + this.moveCursorTo(fold.end.row, fold.end.column); + return; + } + if (match = this.session.nonTokenRe.exec(rightOfCursor)) { + column += this.session.nonTokenRe.lastIndex; + this.session.nonTokenRe.lastIndex = 0; + rightOfCursor = line.substring(column); + } + if (column >= line.length) { + this.moveCursorTo(row, line.length); + this.moveCursorRight(); + if (row < this.doc.getLength() - 1) + this.moveCursorWordRight(); + return; + } + if (match = this.session.tokenRe.exec(rightOfCursor)) { + column += this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + this.moveCursorLongWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + return; + } + + var str = this.session.getFoldStringAt(row, column, -1); + if (str == null) { + str = this.doc.getLine(row).substring(0, column); + } + + var leftOfCursor = lang.stringReverse(str); + var match; + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + if (match = this.session.nonTokenRe.exec(leftOfCursor)) { + column -= this.session.nonTokenRe.lastIndex; + leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex); + this.session.nonTokenRe.lastIndex = 0; + } + if (column <= 0) { + this.moveCursorTo(row, 0); + this.moveCursorLeft(); + if (row > 0) + this.moveCursorWordLeft(); + return; + } + if (match = this.session.tokenRe.exec(leftOfCursor)) { + column -= this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + + this.$shortWordEndIndex = function(rightOfCursor) { + var match, index = 0, ch; + var whitespaceRe = /\s/; + var tokenRe = this.session.tokenRe; + + tokenRe.lastIndex = 0; + if (match = this.session.tokenRe.exec(rightOfCursor)) { + index = this.session.tokenRe.lastIndex; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + + if (index < 1) { + tokenRe.lastIndex = 0; + while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) { + tokenRe.lastIndex = 0; + index ++; + if (whitespaceRe.test(ch)) { + if (index > 2) { + index--; + break; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + if (index > 2) + break; + } + } + } + } + } + tokenRe.lastIndex = 0; + + return index; + }; + + this.moveCursorShortWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + var fold = this.session.getFoldAt(row, column, 1); + if (fold) + return this.moveCursorTo(fold.end.row, fold.end.column); + + if (column == line.length) { + var l = this.doc.getLength(); + do { + row++; + rightOfCursor = this.doc.getLine(row); + } while (row < l && /^\s*$/.test(rightOfCursor)); + + if (!/^\s+/.test(rightOfCursor)) + rightOfCursor = ""; + column = 0; + } + + var index = this.$shortWordEndIndex(rightOfCursor); + + this.moveCursorTo(row, column + index); + }; + + this.moveCursorShortWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) + return this.moveCursorTo(fold.start.row, fold.start.column); + + var line = this.session.getLine(row).substring(0, column); + if (column === 0) { + do { + row--; + line = this.doc.getLine(row); + } while (row > 0 && /^\s*$/.test(line)); + + column = line.length; + if (!/\s+$/.test(line)) + line = ""; + } + + var leftOfCursor = lang.stringReverse(line); + var index = this.$shortWordEndIndex(leftOfCursor); + + return this.moveCursorTo(row, column - index); + }; + + this.moveCursorWordRight = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordRight(); + else + this.moveCursorShortWordRight(); + }; + + this.moveCursorWordLeft = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordLeft(); + else + this.moveCursorShortWordLeft(); + }; + this.moveCursorBy = function(rows, chars) { + var screenPos = this.session.documentToScreenPosition( + this.lead.row, + this.lead.column + ); + + if (chars === 0) { + if (this.$desiredColumn) + screenPos.column = this.$desiredColumn; + else + this.$desiredColumn = screenPos.column; + } + + var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column); + + if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) { + if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) { + if (docPos.row > 0 || rows > 0) + docPos.row++; + } + } + this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0); + }; + this.moveCursorToPosition = function(position) { + this.moveCursorTo(position.row, position.column); + }; + this.moveCursorTo = function(row, column, keepDesiredColumn) { + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + row = fold.start.row; + column = fold.start.column; + } + + this.$keepDesiredColumnOnChange = true; + this.lead.setPosition(row, column); + this.$keepDesiredColumnOnChange = false; + + if (!keepDesiredColumn) + this.$desiredColumn = null; + }; + this.moveCursorToScreen = function(row, column, keepDesiredColumn) { + var pos = this.session.screenToDocumentPosition(row, column); + this.moveCursorTo(pos.row, pos.column, keepDesiredColumn); + }; + this.detach = function() { + this.lead.detach(); + this.anchor.detach(); + this.session = this.doc = null; + }; + + this.fromOrientedRange = function(range) { + this.setSelectionRange(range, range.cursor == range.start); + this.$desiredColumn = range.desiredColumn || this.$desiredColumn; + }; + + this.toOrientedRange = function(range) { + var r = this.getRange(); + if (range) { + range.start.column = r.start.column; + range.start.row = r.start.row; + range.end.column = r.end.column; + range.end.row = r.end.row; + } else { + range = r; + } + + range.cursor = this.isBackwards() ? range.start : range.end; + range.desiredColumn = this.$desiredColumn; + return range; + }; + this.getRangeOfMovements = function(func) { + var start = this.getCursor(); + try { + func(this); + var end = this.getCursor(); + return Range.fromPoints(start,end); + } catch(e) { + return Range.fromPoints(start,start); + } finally { + this.moveCursorToPosition(start); + } + }; + + this.toJSON = function() { + if (this.rangeCount) { + var data = this.ranges.map(function(r) { + var r1 = r.clone(); + r1.isBackwards = r.cursor == r.start; + return r1; + }); + } else { + var data = this.getRange(); + data.isBackwards = this.isBackwards(); + } + return data; + }; + + this.fromJSON = function(data) { + if (data.start == undefined) { + if (this.rangeList) { + this.toSingleRange(data[0]); + for (var i = data.length; i--; ) { + var r = Range.fromPoints(data[i].start, data[i].end); + if (data[i].isBackwards) + r.cursor = r.start; + this.addRange(r, true); + } + return; + } else + data = data[0]; + } + if (this.rangeList) + this.toSingleRange(data); + this.setSelectionRange(data, data.isBackwards); + }; + + this.isEqual = function(data) { + if ((data.length || this.rangeCount) && data.length != this.rangeCount) + return false; + if (!data.length || !this.ranges) + return this.getRange().isEqual(data); + + for (var i = this.ranges.length; i--; ) { + if (!this.ranges[i].isEqual(data[i])) + return false; + } + return true; + }; + +}).call(Selection.prototype); + +exports.Selection = Selection; +}); + +ace.define("ace/tokenizer",["require","exports","module","ace/config"], function(require, exports, module) { +"use strict"; + +var config = require("./config"); +var MAX_TOKEN_COUNT = 2000; +var Tokenizer = function(rules) { + this.states = rules; + + this.regExps = {}; + this.matchMappings = {}; + for (var key in this.states) { + var state = this.states[key]; + var ruleRegExps = []; + var matchTotal = 0; + var mapping = this.matchMappings[key] = {defaultToken: "text"}; + var flag = "g"; + + var splitterRurles = []; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + if (rule.defaultToken) + mapping.defaultToken = rule.defaultToken; + if (rule.caseInsensitive) + flag = "gi"; + if (rule.regex == null) + continue; + + if (rule.regex instanceof RegExp) + rule.regex = rule.regex.toString().slice(1, -1); + var adjustedregex = rule.regex; + var matchcount = new RegExp("(?:(" + adjustedregex + ")|(.))").exec("a").length - 2; + if (Array.isArray(rule.token)) { + if (rule.token.length == 1 || matchcount == 1) { + rule.token = rule.token[0]; + } else if (matchcount - 1 != rule.token.length) { + this.reportError("number of classes and regexp groups doesn't match", { + rule: rule, + groupCount: matchcount - 1 + }); + rule.token = rule.token[0]; + } else { + rule.tokenArray = rule.token; + rule.token = null; + rule.onMatch = this.$arrayTokens; + } + } else if (typeof rule.token == "function" && !rule.onMatch) { + if (matchcount > 1) + rule.onMatch = this.$applyToken; + else + rule.onMatch = rule.token; + } + + if (matchcount > 1) { + if (/\\\d/.test(rule.regex)) { + adjustedregex = rule.regex.replace(/\\([0-9]+)/g, function(match, digit) { + return "\\" + (parseInt(digit, 10) + matchTotal + 1); + }); + } else { + matchcount = 1; + adjustedregex = this.removeCapturingGroups(rule.regex); + } + if (!rule.splitRegex && typeof rule.token != "string") + splitterRurles.push(rule); // flag will be known only at the very end + } + + mapping[matchTotal] = i; + matchTotal += matchcount; + + ruleRegExps.push(adjustedregex); + if (!rule.onMatch) + rule.onMatch = null; + } + + if (!ruleRegExps.length) { + mapping[0] = 0; + ruleRegExps.push("$"); + } + + splitterRurles.forEach(function(rule) { + rule.splitRegex = this.createSplitterRegexp(rule.regex, flag); + }, this); + + this.regExps[key] = new RegExp("(" + ruleRegExps.join(")|(") + ")|($)", flag); + } +}; + +(function() { + this.$setMaxTokenCount = function(m) { + MAX_TOKEN_COUNT = m | 0; + }; + + this.$applyToken = function(str) { + var values = this.splitRegex.exec(str).slice(1); + var types = this.token.apply(this, values); + if (typeof types === "string") + return [{type: types, value: str}]; + + var tokens = []; + for (var i = 0, l = types.length; i < l; i++) { + if (values[i]) + tokens[tokens.length] = { + type: types[i], + value: values[i] + }; + } + return tokens; + }; + + this.$arrayTokens = function(str) { + if (!str) + return []; + var values = this.splitRegex.exec(str); + if (!values) + return "text"; + var tokens = []; + var types = this.tokenArray; + for (var i = 0, l = types.length; i < l; i++) { + if (values[i + 1]) + tokens[tokens.length] = { + type: types[i], + value: values[i + 1] + }; + } + return tokens; + }; + + this.removeCapturingGroups = function(src) { + var r = src.replace( + /\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g, + function(x, y) {return y ? "(?:" : x;} + ); + return r; + }; + + this.createSplitterRegexp = function(src, flag) { + if (src.indexOf("(?=") != -1) { + var stack = 0; + var inChClass = false; + var lastCapture = {}; + src.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g, function( + m, esc, parenOpen, parenClose, square, index + ) { + if (inChClass) { + inChClass = square != "]"; + } else if (square) { + inChClass = true; + } else if (parenClose) { + if (stack == lastCapture.stack) { + lastCapture.end = index+1; + lastCapture.stack = -1; + } + stack--; + } else if (parenOpen) { + stack++; + if (parenOpen.length != 1) { + lastCapture.stack = stack + lastCapture.start = index; + } + } + return m; + }); + + if (lastCapture.end != null && /^\)*$/.test(src.substr(lastCapture.end))) + src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end); + } + if (src.charAt(0) != "^") src = "^" + src; + if (src.charAt(src.length - 1) != "$") src += "$"; + + return new RegExp(src, (flag||"").replace("g", "")); + }; + this.getLineTokens = function(line, startState) { + if (startState && typeof startState != "string") { + var stack = startState.slice(0); + startState = stack[0]; + if (startState === "#tmp") { + stack.shift() + startState = stack.shift() + } + } else + var stack = []; + + var currentState = startState || "start"; + var state = this.states[currentState]; + if (!state) { + currentState = "start"; + state = this.states[currentState]; + } + var mapping = this.matchMappings[currentState]; + var re = this.regExps[currentState]; + re.lastIndex = 0; + + var match, tokens = []; + var lastIndex = 0; + var matchAttempts = 0; + + var token = {type: null, value: ""}; + + while (match = re.exec(line)) { + var type = mapping.defaultToken; + var rule = null; + var value = match[0]; + var index = re.lastIndex; + + if (index - value.length > lastIndex) { + var skipped = line.substring(lastIndex, index - value.length); + if (token.type == type) { + token.value += skipped; + } else { + if (token.type) + tokens.push(token); + token = {type: type, value: skipped}; + } + } + + for (var i = 0; i < match.length-2; i++) { + if (match[i + 1] === undefined) + continue; + + rule = state[mapping[i]]; + + if (rule.onMatch) + type = rule.onMatch(value, currentState, stack, line); + else + type = rule.token; + + if (rule.next) { + if (typeof rule.next == "string") { + currentState = rule.next; + } else { + currentState = rule.next(currentState, stack); + } + + state = this.states[currentState]; + if (!state) { + this.reportError("state doesn't exist", currentState); + currentState = "start"; + state = this.states[currentState]; + } + mapping = this.matchMappings[currentState]; + lastIndex = index; + re = this.regExps[currentState]; + re.lastIndex = index; + } + if (rule.consumeLineEnd) + lastIndex = index; + break; + } + + if (value) { + if (typeof type === "string") { + if ((!rule || rule.merge !== false) && token.type === type) { + token.value += value; + } else { + if (token.type) + tokens.push(token); + token = {type: type, value: value}; + } + } else if (type) { + if (token.type) + tokens.push(token); + token = {type: null, value: ""}; + for (var i = 0; i < type.length; i++) + tokens.push(type[i]); + } + } + + if (lastIndex == line.length) + break; + + lastIndex = index; + + if (matchAttempts++ > MAX_TOKEN_COUNT) { + if (matchAttempts > 2 * line.length) { + this.reportError("infinite loop with in ace tokenizer", { + startState: startState, + line: line + }); + } + while (lastIndex < line.length) { + if (token.type) + tokens.push(token); + token = { + value: line.substring(lastIndex, lastIndex += 2000), + type: "overflow" + }; + } + currentState = "start"; + stack = []; + break; + } + } + + if (token.type) + tokens.push(token); + + if (stack.length > 1) { + if (stack[0] !== currentState) + stack.unshift("#tmp", currentState); + } + return { + tokens : tokens, + state : stack.length ? stack : currentState + }; + }; + + this.reportError = config.reportError; + +}).call(Tokenizer.prototype); + +exports.Tokenizer = Tokenizer; +}); + +ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); + +var TextHighlightRules = function() { + + this.$rules = { + "start" : [{ + token : "empty_line", + regex : '^$' + }, { + defaultToken : "text" + }] + }; +}; + +(function() { + + this.addRules = function(rules, prefix) { + if (!prefix) { + for (var key in rules) + this.$rules[key] = rules[key]; + return; + } + for (var key in rules) { + var state = rules[key]; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + if (rule.next || rule.onMatch) { + if (typeof rule.next == "string") { + if (rule.next.indexOf(prefix) !== 0) + rule.next = prefix + rule.next; + } + if (rule.nextState && rule.nextState.indexOf(prefix) !== 0) + rule.nextState = prefix + rule.nextState; + } + } + this.$rules[prefix + key] = state; + } + }; + + this.getRules = function() { + return this.$rules; + }; + + this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) { + var embedRules = typeof HighlightRules == "function" + ? new HighlightRules().getRules() + : HighlightRules; + if (states) { + for (var i = 0; i < states.length; i++) + states[i] = prefix + states[i]; + } else { + states = []; + for (var key in embedRules) + states.push(prefix + key); + } + + this.addRules(embedRules, prefix); + + if (escapeRules) { + var addRules = Array.prototype[append ? "push" : "unshift"]; + for (var i = 0; i < states.length; i++) + addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules)); + } + + if (!this.$embeds) + this.$embeds = []; + this.$embeds.push(prefix); + }; + + this.getEmbeds = function() { + return this.$embeds; + }; + + var pushState = function(currentState, stack) { + if (currentState != "start" || stack.length) + stack.unshift(this.nextState, currentState); + return this.nextState; + }; + var popState = function(currentState, stack) { + stack.shift(); + return stack.shift() || "start"; + }; + + this.normalizeRules = function() { + var id = 0; + var rules = this.$rules; + function processState(key) { + var state = rules[key]; + state.processed = true; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + var toInsert = null; + if (Array.isArray(rule)) { + toInsert = rule; + rule = {}; + } + if (!rule.regex && rule.start) { + rule.regex = rule.start; + if (!rule.next) + rule.next = []; + rule.next.push({ + defaultToken: rule.token + }, { + token: rule.token + ".end", + regex: rule.end || rule.start, + next: "pop" + }); + rule.token = rule.token + ".start"; + rule.push = true; + } + var next = rule.next || rule.push; + if (next && Array.isArray(next)) { + var stateName = rule.stateName; + if (!stateName) { + stateName = rule.token; + if (typeof stateName != "string") + stateName = stateName[0] || ""; + if (rules[stateName]) + stateName += id++; + } + rules[stateName] = next; + rule.next = stateName; + processState(stateName); + } else if (next == "pop") { + rule.next = popState; + } + + if (rule.push) { + rule.nextState = rule.next || rule.push; + rule.next = pushState; + delete rule.push; + } + + if (rule.rules) { + for (var r in rule.rules) { + if (rules[r]) { + if (rules[r].push) + rules[r].push.apply(rules[r], rule.rules[r]); + } else { + rules[r] = rule.rules[r]; + } + } + } + var includeName = typeof rule == "string" ? rule : rule.include; + if (includeName) { + if (Array.isArray(includeName)) + toInsert = includeName.map(function(x) { return rules[x]; }); + else + toInsert = rules[includeName]; + } + + if (toInsert) { + var args = [i, 1].concat(toInsert); + if (rule.noEscape) + args = args.filter(function(x) {return !x.next;}); + state.splice.apply(state, args); + i--; + } + + if (rule.keywordMap) { + rule.token = this.createKeywordMapper( + rule.keywordMap, rule.defaultToken || "text", rule.caseInsensitive + ); + delete rule.defaultToken; + } + } + } + Object.keys(rules).forEach(processState, this); + }; + + this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) { + var keywords = Object.create(null); + Object.keys(map).forEach(function(className) { + var a = map[className]; + if (ignoreCase) + a = a.toLowerCase(); + var list = a.split(splitChar || "|"); + for (var i = list.length; i--; ) + keywords[list[i]] = className; + }); + if (Object.getPrototypeOf(keywords)) { + keywords.__proto__ = null; + } + this.$keywordList = Object.keys(keywords); + map = null; + return ignoreCase + ? function(value) {return keywords[value.toLowerCase()] || defaultToken } + : function(value) {return keywords[value] || defaultToken }; + }; + + this.getKeywords = function() { + return this.$keywords; + }; + +}).call(TextHighlightRules.prototype); + +exports.TextHighlightRules = TextHighlightRules; +}); + +ace.define("ace/mode/behaviour",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var Behaviour = function() { + this.$behaviours = {}; +}; + +(function () { + + this.add = function (name, action, callback) { + switch (undefined) { + case this.$behaviours: + this.$behaviours = {}; + case this.$behaviours[name]: + this.$behaviours[name] = {}; + } + this.$behaviours[name][action] = callback; + } + + this.addBehaviours = function (behaviours) { + for (var key in behaviours) { + for (var action in behaviours[key]) { + this.add(key, action, behaviours[key][action]); + } + } + } + + this.remove = function (name) { + if (this.$behaviours && this.$behaviours[name]) { + delete this.$behaviours[name]; + } + } + + this.inherit = function (mode, filter) { + if (typeof mode === "function") { + var behaviours = new mode().getBehaviours(filter); + } else { + var behaviours = mode.getBehaviours(filter); + } + this.addBehaviours(behaviours); + } + + this.getBehaviours = function (filter) { + if (!filter) { + return this.$behaviours; + } else { + var ret = {} + for (var i = 0; i < filter.length; i++) { + if (this.$behaviours[filter[i]]) { + ret[filter[i]] = this.$behaviours[filter[i]]; + } + } + return ret; + } + } + +}).call(Behaviour.prototype); + +exports.Behaviour = Behaviour; +}); + +ace.define("ace/token_iterator",["require","exports","module"], function(require, exports, module) { +"use strict"; +var TokenIterator = function(session, initialRow, initialColumn) { + this.$session = session; + this.$row = initialRow; + this.$rowTokens = session.getTokens(initialRow); + + var token = session.getTokenAt(initialRow, initialColumn); + this.$tokenIndex = token ? token.index : -1; +}; + +(function() { + this.stepBackward = function() { + this.$tokenIndex -= 1; + + while (this.$tokenIndex < 0) { + this.$row -= 1; + if (this.$row < 0) { + this.$row = 0; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row); + this.$tokenIndex = this.$rowTokens.length - 1; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.stepForward = function() { + this.$tokenIndex += 1; + var rowCount; + while (this.$tokenIndex >= this.$rowTokens.length) { + this.$row += 1; + if (!rowCount) + rowCount = this.$session.getLength(); + if (this.$row >= rowCount) { + this.$row = rowCount - 1; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row); + this.$tokenIndex = 0; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentToken = function () { + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentTokenRow = function () { + return this.$row; + }; + this.getCurrentTokenColumn = function() { + var rowTokens = this.$rowTokens; + var tokenIndex = this.$tokenIndex; + var column = rowTokens[tokenIndex].start; + if (column !== undefined) + return column; + + column = 0; + while (tokenIndex > 0) { + tokenIndex -= 1; + column += rowTokens[tokenIndex].value.length; + } + + return column; + }; + this.getCurrentTokenPosition = function() { + return {row: this.$row, column: this.getCurrentTokenColumn()}; + }; + +}).call(TokenIterator.prototype); + +exports.TokenIterator = TokenIterator; +}); + +ace.define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +var SAFE_INSERT_IN_TOKENS = + ["text", "paren.rparen", "punctuation.operator"]; +var SAFE_INSERT_BEFORE_TOKENS = + ["text", "paren.rparen", "punctuation.operator", "comment"]; + +var context; +var contextCache = {}; +var defaultQuotes = {'"' : '"', "'" : "'"}; + +var initContext = function(editor) { + var id = -1; + if (editor.multiSelect) { + id = editor.selection.index; + if (contextCache.rangeCount != editor.multiSelect.rangeCount) + contextCache = {rangeCount: editor.multiSelect.rangeCount}; + } + if (contextCache[id]) + return context = contextCache[id]; + context = contextCache[id] = { + autoInsertedBrackets: 0, + autoInsertedRow: -1, + autoInsertedLineEnd: "", + maybeInsertedBrackets: 0, + maybeInsertedRow: -1, + maybeInsertedLineStart: "", + maybeInsertedLineEnd: "" + }; +}; + +var getWrapped = function(selection, selected, opening, closing) { + var rowDiff = selection.end.row - selection.start.row; + return { + text: opening + selected + closing, + selection: [ + 0, + selection.start.column + 1, + rowDiff, + selection.end.column + (rowDiff ? 0 : 1) + ] + }; +}; + +var CstyleBehaviour = function(options) { + this.add("braces", "insertion", function(state, action, editor, session, text) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (text == '{') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '{', '}'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) { + CstyleBehaviour.recordAutoInsert(editor, session, "}"); + return { + text: '{}', + selection: [1, 1] + }; + } else { + CstyleBehaviour.recordMaybeInsert(editor, session, "{"); + return { + text: '{', + selection: [1, 1] + }; + } + } + } else if (text == '}') { + initContext(editor); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n" || text == "\r\n") { + initContext(editor); + var closing = ""; + if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) { + closing = lang.stringRepeat("}", context.maybeInsertedBrackets); + CstyleBehaviour.clearMaybeInsertedClosing(); + } + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}'); + if (!openBracePos) + return null; + var next_indent = this.$getIndent(session.getLine(openBracePos.row)); + } else if (closing) { + var next_indent = this.$getIndent(line); + } else { + CstyleBehaviour.clearMaybeInsertedClosing(); + return; + } + var indent = next_indent + session.getTabString(); + + return { + text: '\n' + indent + '\n' + next_indent + closing, + selection: [1, indent.length, 1, indent.length] + }; + } else { + CstyleBehaviour.clearMaybeInsertedClosing(); + } + }); + + this.add("braces", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } else { + context.maybeInsertedBrackets--; + } + } + }); + + this.add("parens", "insertion", function(state, action, editor, session, text) { + if (text == '(') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '(', ')'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + CstyleBehaviour.recordAutoInsert(editor, session, ")"); + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + initContext(editor); + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("brackets", "insertion", function(state, action, editor, session, text) { + if (text == '[') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '[', ']'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + CstyleBehaviour.recordAutoInsert(editor, session, "]"); + return { + text: '[]', + selection: [1, 1] + }; + } + } else if (text == ']') { + initContext(editor); + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ']') { + var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("brackets", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '[') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ']') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function(state, action, editor, session, text) { + var quotes = session.$mode.$quotes || defaultQuotes; + if (text.length == 1 && quotes[text]) { + if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1) + return; + initContext(editor); + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, quote, quote); + } else if (!selected) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + var rightChar = line.substring(cursor.column, cursor.column + 1); + + var token = session.getTokenAt(cursor.row, cursor.column); + var rightToken = session.getTokenAt(cursor.row, cursor.column + 1); + if (leftChar == "\\" && token && /escape/.test(token.type)) + return null; + + var stringBefore = token && /string|escape/.test(token.type); + var stringAfter = !rightToken || /string|escape/.test(rightToken.type); + + var pair; + if (rightChar == quote) { + pair = stringBefore !== stringAfter; + if (pair && /string\.end/.test(rightToken.type)) + pair = false; + } else { + if (stringBefore && !stringAfter) + return null; // wrap string with different quote + if (stringBefore && stringAfter) + return null; // do not pair quotes inside strings + var wordRe = session.$mode.tokenRe; + wordRe.lastIndex = 0; + var isWordBefore = wordRe.test(leftChar); + wordRe.lastIndex = 0; + var isWordAfter = wordRe.test(leftChar); + if (isWordBefore || isWordAfter) + return null; // before or after alphanumeric + if (rightChar && !/[\s;,.})\]\\]/.test(rightChar)) + return null; // there is rightChar and it isn't closing + pair = true; + } + return { + text: pair ? quote + quote : "", + selection: [1,1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + +}; + + +CstyleBehaviour.isSaneInsertion = function(editor, session) { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) { + var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1); + if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) + return false; + } + iterator.stepForward(); + return iterator.getCurrentTokenRow() !== cursor.row || + this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS); +}; + +CstyleBehaviour.$matchTokenType = function(token, types) { + return types.indexOf(token.type || token) > -1; +}; + +CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0])) + context.autoInsertedBrackets = 0; + context.autoInsertedRow = cursor.row; + context.autoInsertedLineEnd = bracket + line.substr(cursor.column); + context.autoInsertedBrackets++; +}; + +CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (!this.isMaybeInsertedClosing(cursor, line)) + context.maybeInsertedBrackets = 0; + context.maybeInsertedRow = cursor.row; + context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket; + context.maybeInsertedLineEnd = line.substr(cursor.column); + context.maybeInsertedBrackets++; +}; + +CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) { + return context.autoInsertedBrackets > 0 && + cursor.row === context.autoInsertedRow && + bracket === context.autoInsertedLineEnd[0] && + line.substr(cursor.column) === context.autoInsertedLineEnd; +}; + +CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) { + return context.maybeInsertedBrackets > 0 && + cursor.row === context.maybeInsertedRow && + line.substr(cursor.column) === context.maybeInsertedLineEnd && + line.substr(0, cursor.column) == context.maybeInsertedLineStart; +}; + +CstyleBehaviour.popAutoInsertedClosing = function() { + context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1); + context.autoInsertedBrackets--; +}; + +CstyleBehaviour.clearMaybeInsertedClosing = function() { + if (context) { + context.maybeInsertedBrackets = 0; + context.maybeInsertedRow = -1; + } +}; + + + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +ace.define("ace/unicode",["require","exports","module"], function(require, exports, module) { +"use strict"; +exports.packages = {}; + +addUnicodePackage({ + L: "0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", + Ll: "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A", + Lu: "0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A", + Lt: "01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC", + Lm: "02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F", + Lo: "01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC", + M: "0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26", + Mn: "0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26", + Mc: "0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC", + Me: "0488048906DE20DD-20E020E2-20E4A670-A672", + N: "0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", + Nd: "0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19", + Nl: "16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF", + No: "00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835", + P: "0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65", + Pd: "002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D", + Ps: "0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62", + Pe: "0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63", + Pi: "00AB2018201B201C201F20392E022E042E092E0C2E1C2E20", + Pf: "00BB2019201D203A2E032E052E0A2E0D2E1D2E21", + Pc: "005F203F20402054FE33FE34FE4D-FE4FFF3F", + Po: "0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65", + S: "0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD", + Sm: "002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC", + Sc: "002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6", + Sk: "005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3", + So: "00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD", + Z: "002000A01680180E2000-200A20282029202F205F3000", + Zs: "002000A01680180E2000-200A202F205F3000", + Zl: "2028", + Zp: "2029", + C: "0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF", + Cc: "0000-001F007F-009F", + Cf: "00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB", + Co: "E000-F8FF", + Cs: "D800-DFFF", + Cn: "03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF" +}); + +function addUnicodePackage (pack) { + var codePoint = /\w{4}/g; + for (var name in pack) + exports.packages[name] = pack[name].replace(codePoint, "\\u$&"); +} + +}); + +ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"], function(require, exports, module) { +"use strict"; + +var Tokenizer = require("../tokenizer").Tokenizer; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var unicode = require("../unicode"); +var lang = require("../lib/lang"); +var TokenIterator = require("../token_iterator").TokenIterator; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = TextHighlightRules; +}; + +(function() { + this.$defaultBehaviour = new CstyleBehaviour(); + + this.tokenRe = new RegExp("^[" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "\\$_]+", "g" + ); + + this.nonTokenRe = new RegExp("^(?:[^" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "\\$_]|\\s])+", "g" + ); + + this.getTokenizer = function() { + if (!this.$tokenizer) { + this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig); + this.$tokenizer = new Tokenizer(this.$highlightRules.getRules()); + } + return this.$tokenizer; + }; + + this.lineCommentStart = ""; + this.blockComment = ""; + + this.toggleCommentLines = function(state, session, startRow, endRow) { + var doc = session.doc; + + var ignoreBlankLines = true; + var shouldRemove = true; + var minIndent = Infinity; + var tabSize = session.getTabSize(); + var insertAtTabStop = false; + + if (!this.lineCommentStart) { + if (!this.blockComment) + return false; + var lineCommentStart = this.blockComment.start; + var lineCommentEnd = this.blockComment.end; + var regexpStart = new RegExp("^(\\s*)(?:" + lang.escapeRegExp(lineCommentStart) + ")"); + var regexpEnd = new RegExp("(?:" + lang.escapeRegExp(lineCommentEnd) + ")\\s*$"); + + var comment = function(line, i) { + if (testRemove(line, i)) + return; + if (!ignoreBlankLines || /\S/.test(line)) { + doc.insertInLine({row: i, column: line.length}, lineCommentEnd); + doc.insertInLine({row: i, column: minIndent}, lineCommentStart); + } + }; + + var uncomment = function(line, i) { + var m; + if (m = line.match(regexpEnd)) + doc.removeInLine(i, line.length - m[0].length, line.length); + if (m = line.match(regexpStart)) + doc.removeInLine(i, m[1].length, m[0].length); + }; + + var testRemove = function(line, row) { + if (regexpStart.test(line)) + return true; + var tokens = session.getTokens(row); + for (var i = 0; i < tokens.length; i++) { + if (tokens[i].type === "comment") + return true; + } + }; + } else { + if (Array.isArray(this.lineCommentStart)) { + var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join("|"); + var lineCommentStart = this.lineCommentStart[0]; + } else { + var regexpStart = lang.escapeRegExp(this.lineCommentStart); + var lineCommentStart = this.lineCommentStart; + } + regexpStart = new RegExp("^(\\s*)(?:" + regexpStart + ") ?"); + + insertAtTabStop = session.getUseSoftTabs(); + + var uncomment = function(line, i) { + var m = line.match(regexpStart); + if (!m) return; + var start = m[1].length, end = m[0].length; + if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == " ") + end--; + doc.removeInLine(i, start, end); + }; + var commentWithSpace = lineCommentStart + " "; + var comment = function(line, i) { + if (!ignoreBlankLines || /\S/.test(line)) { + if (shouldInsertSpace(line, minIndent, minIndent)) + doc.insertInLine({row: i, column: minIndent}, commentWithSpace); + else + doc.insertInLine({row: i, column: minIndent}, lineCommentStart); + } + }; + var testRemove = function(line, i) { + return regexpStart.test(line); + }; + + var shouldInsertSpace = function(line, before, after) { + var spaces = 0; + while (before-- && line.charAt(before) == " ") + spaces++; + if (spaces % tabSize != 0) + return false; + var spaces = 0; + while (line.charAt(after++) == " ") + spaces++; + if (tabSize > 2) + return spaces % tabSize != tabSize - 1; + else + return spaces % tabSize == 0; + return true; + }; + } + + function iter(fun) { + for (var i = startRow; i <= endRow; i++) + fun(doc.getLine(i), i); + } + + + var minEmptyLength = Infinity; + iter(function(line, i) { + var indent = line.search(/\S/); + if (indent !== -1) { + if (indent < minIndent) + minIndent = indent; + if (shouldRemove && !testRemove(line, i)) + shouldRemove = false; + } else if (minEmptyLength > line.length) { + minEmptyLength = line.length; + } + }); + + if (minIndent == Infinity) { + minIndent = minEmptyLength; + ignoreBlankLines = false; + shouldRemove = false; + } + + if (insertAtTabStop && minIndent % tabSize != 0) + minIndent = Math.floor(minIndent / tabSize) * tabSize; + + iter(shouldRemove ? uncomment : comment); + }; + + this.toggleBlockComment = function(state, session, range, cursor) { + var comment = this.blockComment; + if (!comment) + return; + if (!comment.start && comment[0]) + comment = comment[0]; + + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + var sel = session.selection; + var initialRange = session.selection.toOrientedRange(); + var startRow, colDiff; + + if (token && /comment/.test(token.type)) { + var startRange, endRange; + while (token && /comment/.test(token.type)) { + var i = token.value.indexOf(comment.start); + if (i != -1) { + var row = iterator.getCurrentTokenRow(); + var column = iterator.getCurrentTokenColumn() + i; + startRange = new Range(row, column, row, column + comment.start.length); + break; + } + token = iterator.stepBackward(); + } + + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + while (token && /comment/.test(token.type)) { + var i = token.value.indexOf(comment.end); + if (i != -1) { + var row = iterator.getCurrentTokenRow(); + var column = iterator.getCurrentTokenColumn() + i; + endRange = new Range(row, column, row, column + comment.end.length); + break; + } + token = iterator.stepForward(); + } + if (endRange) + session.remove(endRange); + if (startRange) { + session.remove(startRange); + startRow = startRange.start.row; + colDiff = -comment.start.length; + } + } else { + colDiff = comment.start.length; + startRow = range.start.row; + session.insert(range.end, comment.end); + session.insert(range.start, comment.start); + } + if (initialRange.start.row == startRow) + initialRange.start.column += colDiff; + if (initialRange.end.row == startRow) + initialRange.end.column += colDiff; + session.selection.fromOrientedRange(initialRange); + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.autoOutdent = function(state, doc, row) { + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + + this.createWorker = function(session) { + return null; + }; + + this.createModeDelegates = function (mapping) { + this.$embeds = []; + this.$modes = {}; + for (var i in mapping) { + if (mapping[i]) { + this.$embeds.push(i); + this.$modes[i] = new mapping[i](); + } + } + + var delegations = ["toggleBlockComment", "toggleCommentLines", "getNextLineIndent", + "checkOutdent", "autoOutdent", "transformAction", "getCompletions"]; + + for (var i = 0; i < delegations.length; i++) { + (function(scope) { + var functionName = delegations[i]; + var defaultHandler = scope[functionName]; + scope[delegations[i]] = function() { + return this.$delegator(functionName, arguments, defaultHandler); + }; + }(this)); + } + }; + + this.$delegator = function(method, args, defaultHandler) { + var state = args[0]; + if (typeof state != "string") + state = state[0]; + for (var i = 0; i < this.$embeds.length; i++) { + if (!this.$modes[this.$embeds[i]]) continue; + + var split = state.split(this.$embeds[i]); + if (!split[0] && split[1]) { + args[0] = split[1]; + var mode = this.$modes[this.$embeds[i]]; + return mode[method].apply(mode, args); + } + } + var ret = defaultHandler.apply(this, args); + return defaultHandler ? ret : undefined; + }; + + this.transformAction = function(state, action, editor, session, param) { + if (this.$behaviour) { + var behaviours = this.$behaviour.getBehaviours(); + for (var key in behaviours) { + if (behaviours[key][action]) { + var ret = behaviours[key][action].apply(this, arguments); + if (ret) { + return ret; + } + } + } + } + }; + + this.getKeywords = function(append) { + if (!this.completionKeywords) { + var rules = this.$tokenizer.rules; + var completionKeywords = []; + for (var rule in rules) { + var ruleItr = rules[rule]; + for (var r = 0, l = ruleItr.length; r < l; r++) { + if (typeof ruleItr[r].token === "string") { + if (/keyword|support|storage/.test(ruleItr[r].token)) + completionKeywords.push(ruleItr[r].regex); + } + else if (typeof ruleItr[r].token === "object") { + for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { + if (/keyword|support|storage/.test(ruleItr[r].token[a])) { + var rule = ruleItr[r].regex.match(/\(.+?\)/g)[a]; + completionKeywords.push(rule.substr(1, rule.length - 2)); + } + } + } + } + } + this.completionKeywords = completionKeywords; + } + if (!append) + return this.$keywordList; + return completionKeywords.concat(this.$keywordList || []); + }; + + this.$createKeywordList = function() { + if (!this.$highlightRules) + this.getTokenizer(); + return this.$keywordList = this.$highlightRules.$keywordList || []; + }; + + this.getCompletions = function(state, session, pos, prefix) { + var keywords = this.$keywordList || this.$createKeywordList(); + return keywords.map(function(word) { + return { + name: word, + value: word, + score: 0, + meta: "keyword" + }; + }); + }; + + this.$id = "ace/mode/text"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +} +}); + +ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +var Anchor = exports.Anchor = function(doc, row, column) { + this.$onChange = this.onChange.bind(this); + this.attach(doc); + + if (typeof column == "undefined") + this.setPosition(row.row, row.column); + else + this.setPosition(row, column); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.getPosition = function() { + return this.$clipPositionToDocument(this.row, this.column); + }; + this.getDocument = function() { + return this.document; + }; + this.$insertRight = false; + this.onChange = function(delta) { + if (delta.start.row == delta.end.row && delta.start.row != this.row) + return; + + if (delta.start.row > this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) + this.$splitAndapplyLargeDelta(delta, 20000); + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length; + var row = delta.start.row; + var column = delta.start.column; + var from = 0, to = 0; + do { + from = to; + to += MAX - 1; + var chunk = lines.slice(from, to); + if (to > l) { + delta.lines = chunk; + delta.start.row = row + from; + delta.start.column = column; + break; + } + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } while(true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: lines[l-1].length}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +ace.define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +var BackgroundTokenizer = function(tokenizer, editor) { + this.running = false; + this.lines = []; + this.states = []; + this.currentLine = 0; + this.tokenizer = tokenizer; + + var self = this; + + this.$worker = function() { + if (!self.running) { return; } + + var workerStart = new Date(); + var currentLine = self.currentLine; + var endLine = -1; + var doc = self.doc; + + var startLine = currentLine; + while (self.lines[currentLine]) + currentLine++; + + var len = doc.getLength(); + var processedLines = 0; + self.running = false; + while (currentLine < len) { + self.$tokenizeRow(currentLine); + endLine = currentLine; + do { + currentLine++; + } while (self.lines[currentLine]); + processedLines ++; + if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { + self.running = setTimeout(self.$worker, 20); + break; + } + } + self.currentLine = currentLine; + + if (endLine == -1) + endLine = currentLine; + + if (startLine <= endLine) + self.fireUpdateEvent(startLine, endLine); + }; +}; + +(function(){ + + oop.implement(this, EventEmitter); + this.setTokenizer = function(tokenizer) { + this.tokenizer = tokenizer; + this.lines = []; + this.states = []; + + this.start(0); + }; + this.setDocument = function(doc) { + this.doc = doc; + this.lines = []; + this.states = []; + + this.stop(); + }; + this.fireUpdateEvent = function(firstRow, lastRow) { + var data = { + first: firstRow, + last: lastRow + }; + this._signal("update", {data: data}); + }; + this.start = function(startRow) { + this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength()); + this.lines.splice(this.currentLine, this.lines.length); + this.states.splice(this.currentLine, this.states.length); + + this.stop(); + this.running = setTimeout(this.$worker, 700); + }; + + this.scheduleStart = function() { + if (!this.running) + this.running = setTimeout(this.$worker, 700); + } + + this.$updateOnChange = function(delta) { + var startRow = delta.start.row; + var len = delta.end.row - startRow; + + if (len === 0) { + this.lines[startRow] = null; + } else if (delta.action == "remove") { + this.lines.splice(startRow, len + 1, null); + this.states.splice(startRow, len + 1, null); + } else { + var args = Array(len + 1); + args.unshift(startRow, 1); + this.lines.splice.apply(this.lines, args); + this.states.splice.apply(this.states, args); + } + + this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength()); + + this.stop(); + }; + this.stop = function() { + if (this.running) + clearTimeout(this.running); + this.running = false; + }; + this.getTokens = function(row) { + return this.lines[row] || this.$tokenizeRow(row); + }; + this.getState = function(row) { + if (this.currentLine == row) + this.$tokenizeRow(row); + return this.states[row] || "start"; + }; + + this.$tokenizeRow = function(row) { + var line = this.doc.getLine(row); + var state = this.states[row - 1]; + + var data = this.tokenizer.getLineTokens(line, state, row); + + if (this.states[row] + "" !== data.state + "") { + this.states[row] = data.state; + this.lines[row + 1] = null; + if (this.currentLine > row + 1) + this.currentLine = row + 1; + } else if (this.currentLine == row) { + this.currentLine = row + 1; + } + + return this.lines[row] = data.tokens; + }; + +}).call(BackgroundTokenizer.prototype); + +exports.BackgroundTokenizer = BackgroundTokenizer; +}); + +ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("./lib/lang"); +var oop = require("./lib/oop"); +var Range = require("./range").Range; + +var SearchHighlight = function(regExp, clazz, type) { + this.setRegexp(regExp); + this.clazz = clazz; + this.type = type || "text"; +}; + +(function() { + this.MAX_RANGES = 500; + + this.setRegexp = function(regExp) { + if (this.regExp+"" == regExp+"") + return; + this.regExp = regExp; + this.cache = []; + }; + + this.update = function(html, markerLayer, session, config) { + if (!this.regExp) + return; + var start = config.firstRow, end = config.lastRow; + + for (var i = start; i <= end; i++) { + var ranges = this.cache[i]; + if (ranges == null) { + ranges = lang.getMatchOffsets(session.getLine(i), this.regExp); + if (ranges.length > this.MAX_RANGES) + ranges = ranges.slice(0, this.MAX_RANGES); + ranges = ranges.map(function(match) { + return new Range(i, match.offset, i, match.offset + match.length); + }); + this.cache[i] = ranges.length ? ranges : ""; + } + + for (var j = ranges.length; j --; ) { + markerLayer.drawSingleLineMarker( + html, ranges[j].toScreenRange(session), this.clazz, config); + } + } + }; + +}).call(SearchHighlight.prototype); + +exports.SearchHighlight = SearchHighlight; +}); + +ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +function FoldLine(foldData, folds) { + this.foldData = foldData; + if (Array.isArray(folds)) { + this.folds = folds; + } else { + folds = this.folds = [ folds ]; + } + + var last = folds[folds.length - 1]; + this.range = new Range(folds[0].start.row, folds[0].start.column, + last.end.row, last.end.column); + this.start = this.range.start; + this.end = this.range.end; + + this.folds.forEach(function(fold) { + fold.setFoldLine(this); + }, this); +} + +(function() { + this.shiftRow = function(shift) { + this.start.row += shift; + this.end.row += shift; + this.folds.forEach(function(fold) { + fold.start.row += shift; + fold.end.row += shift; + }); + }; + + this.addFold = function(fold) { + if (fold.sameRow) { + if (fold.start.row < this.startRow || fold.endRow > this.endRow) { + throw new Error("Can't add a fold to this FoldLine as it has no connection"); + } + this.folds.push(fold); + this.folds.sort(function(a, b) { + return -a.range.compareEnd(b.start.row, b.start.column); + }); + if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) { + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) { + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } + } else if (fold.start.row == this.end.row) { + this.folds.push(fold); + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (fold.end.row == this.start.row) { + this.folds.unshift(fold); + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } else { + throw new Error("Trying to add fold to FoldRow that doesn't have a matching row"); + } + fold.foldLine = this; + }; + + this.containsRow = function(row) { + return row >= this.start.row && row <= this.end.row; + }; + + this.walk = function(callback, endRow, endColumn) { + var lastEnd = 0, + folds = this.folds, + fold, + cmp, stop, isNewRow = true; + + if (endRow == null) { + endRow = this.end.row; + endColumn = this.end.column; + } + + for (var i = 0; i < folds.length; i++) { + fold = folds[i]; + + cmp = fold.range.compareStart(endRow, endColumn); + if (cmp == -1) { + callback(null, endRow, endColumn, lastEnd, isNewRow); + return; + } + + stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow); + stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd); + if (stop || cmp === 0) { + return; + } + isNewRow = !fold.sameRow; + lastEnd = fold.end.column; + } + callback(null, endRow, endColumn, lastEnd, isNewRow); + }; + + this.getNextFoldTo = function(row, column) { + var fold, cmp; + for (var i = 0; i < this.folds.length; i++) { + fold = this.folds[i]; + cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + return { + fold: fold, + kind: "after" + }; + } else if (cmp === 0) { + return { + fold: fold, + kind: "inside" + }; + } + } + return null; + }; + + this.addRemoveChars = function(row, column, len) { + var ret = this.getNextFoldTo(row, column), + fold, folds; + if (ret) { + fold = ret.fold; + if (ret.kind == "inside" + && fold.start.column != column + && fold.start.row != row) + { + window.console && window.console.log(row, column, fold); + } else if (fold.start.row == row) { + folds = this.folds; + var i = folds.indexOf(fold); + if (i === 0) { + this.start.column += len; + } + for (i; i < folds.length; i++) { + fold = folds[i]; + fold.start.column += len; + if (!fold.sameRow) { + return; + } + fold.end.column += len; + } + this.end.column += len; + } + } + }; + + this.split = function(row, column) { + var pos = this.getNextFoldTo(row, column); + + if (!pos || pos.kind == "inside") + return null; + + var fold = pos.fold; + var folds = this.folds; + var foldData = this.foldData; + + var i = folds.indexOf(fold); + var foldBefore = folds[i - 1]; + this.end.row = foldBefore.end.row; + this.end.column = foldBefore.end.column; + folds = folds.splice(i, folds.length - i); + + var newFoldLine = new FoldLine(foldData, folds); + foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine); + return newFoldLine; + }; + + this.merge = function(foldLineNext) { + var folds = foldLineNext.folds; + for (var i = 0; i < folds.length; i++) { + this.addFold(folds[i]); + } + var foldData = this.foldData; + foldData.splice(foldData.indexOf(foldLineNext), 1); + }; + + this.toString = function() { + var ret = [this.range.toString() + ": [" ]; + + this.folds.forEach(function(fold) { + ret.push(" " + fold.toString()); + }); + ret.push("]"); + return ret.join("\n"); + }; + + this.idxToPosition = function(idx) { + var lastFoldEndColumn = 0; + + for (var i = 0; i < this.folds.length; i++) { + var fold = this.folds[i]; + + idx -= fold.start.column - lastFoldEndColumn; + if (idx < 0) { + return { + row: fold.start.row, + column: fold.start.column + idx + }; + } + + idx -= fold.placeholder.length; + if (idx < 0) { + return fold.start; + } + + lastFoldEndColumn = fold.end.column; + } + + return { + row: this.end.row, + column: this.end.column + idx + }; + }; +}).call(FoldLine.prototype); + +exports.FoldLine = FoldLine; +}); + +ace.define("ace/range_list",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; +var Range = require("./range").Range; +var comparePoints = Range.comparePoints; + +var RangeList = function() { + this.ranges = []; +}; + +(function() { + this.comparePoints = comparePoints; + + this.pointIndex = function(pos, excludeEdges, startIndex) { + var list = this.ranges; + + for (var i = startIndex || 0; i < list.length; i++) { + var range = list[i]; + var cmpEnd = comparePoints(pos, range.end); + if (cmpEnd > 0) + continue; + var cmpStart = comparePoints(pos, range.start); + if (cmpEnd === 0) + return excludeEdges && cmpStart !== 0 ? -i-2 : i; + if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges)) + return i; + + return -i-1; + } + return -i - 1; + }; + + this.add = function(range) { + var excludeEdges = !range.isEmpty(); + var startIndex = this.pointIndex(range.start, excludeEdges); + if (startIndex < 0) + startIndex = -startIndex - 1; + + var endIndex = this.pointIndex(range.end, excludeEdges, startIndex); + + if (endIndex < 0) + endIndex = -endIndex - 1; + else + endIndex++; + return this.ranges.splice(startIndex, endIndex - startIndex, range); + }; + + this.addList = function(list) { + var removed = []; + for (var i = list.length; i--; ) { + removed.push.apply(removed, this.add(list[i])); + } + return removed; + }; + + this.substractPoint = function(pos) { + var i = this.pointIndex(pos); + + if (i >= 0) + return this.ranges.splice(i, 1); + }; + this.merge = function() { + var removed = []; + var list = this.ranges; + + list = list.sort(function(a, b) { + return comparePoints(a.start, b.start); + }); + + var next = list[0], range; + for (var i = 1; i < list.length; i++) { + range = next; + next = list[i]; + var cmp = comparePoints(range.end, next.start); + if (cmp < 0) + continue; + + if (cmp == 0 && !range.isEmpty() && !next.isEmpty()) + continue; + + if (comparePoints(range.end, next.end) < 0) { + range.end.row = next.end.row; + range.end.column = next.end.column; + } + + list.splice(i, 1); + removed.push(next); + next = range; + i--; + } + + this.ranges = list; + + return removed; + }; + + this.contains = function(row, column) { + return this.pointIndex({row: row, column: column}) >= 0; + }; + + this.containsPoint = function(pos) { + return this.pointIndex(pos) >= 0; + }; + + this.rangeAtPoint = function(pos) { + var i = this.pointIndex(pos); + if (i >= 0) + return this.ranges[i]; + }; + + + this.clipRows = function(startRow, endRow) { + var list = this.ranges; + if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow) + return []; + + var startIndex = this.pointIndex({row: startRow, column: 0}); + if (startIndex < 0) + startIndex = -startIndex - 1; + var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex); + if (endIndex < 0) + endIndex = -endIndex - 1; + + var clipped = []; + for (var i = startIndex; i < endIndex; i++) { + clipped.push(list[i]); + } + return clipped; + }; + + this.removeAll = function() { + return this.ranges.splice(0, this.ranges.length); + }; + + this.attach = function(session) { + if (this.session) + this.detach(); + + this.session = session; + this.onChange = this.$onChange.bind(this); + + this.session.on('change', this.onChange); + }; + + this.detach = function() { + if (!this.session) + return; + this.session.removeListener('change', this.onChange); + this.session = null; + }; + + this.$onChange = function(delta) { + if (delta.action == "insert"){ + var start = delta.start; + var end = delta.end; + } else { + var end = delta.start; + var start = delta.end; + } + var startRow = start.row; + var endRow = end.row; + var lineDif = endRow - startRow; + + var colDiff = -start.column + end.column; + var ranges = this.ranges; + + for (var i = 0, n = ranges.length; i < n; i++) { + var r = ranges[i]; + if (r.end.row < startRow) + continue; + if (r.start.row > startRow) + break; + + if (r.start.row == startRow && r.start.column >= start.column ) { + if (r.start.column == start.column && this.$insertRight) { + } else { + r.start.column += colDiff; + r.start.row += lineDif; + } + } + if (r.end.row == startRow && r.end.column >= start.column) { + if (r.end.column == start.column && this.$insertRight) { + continue; + } + if (r.end.column == start.column && colDiff > 0 && i < n - 1) { + if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column) + r.end.column -= colDiff; + } + r.end.column += colDiff; + r.end.row += lineDif; + } + } + + if (lineDif != 0 && i < n) { + for (; i < n; i++) { + var r = ranges[i]; + r.start.row += lineDif; + r.end.row += lineDif; + } + } + }; + +}).call(RangeList.prototype); + +exports.RangeList = RangeList; +}); + +ace.define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var RangeList = require("../range_list").RangeList; +var oop = require("../lib/oop") +var Fold = exports.Fold = function(range, placeholder) { + this.foldLine = null; + this.placeholder = placeholder; + this.range = range; + this.start = range.start; + this.end = range.end; + + this.sameRow = range.start.row == range.end.row; + this.subFolds = this.ranges = []; +}; + +oop.inherits(Fold, RangeList); + +(function() { + + this.toString = function() { + return '"' + this.placeholder + '" ' + this.range.toString(); + }; + + this.setFoldLine = function(foldLine) { + this.foldLine = foldLine; + this.subFolds.forEach(function(fold) { + fold.setFoldLine(foldLine); + }); + }; + + this.clone = function() { + var range = this.range.clone(); + var fold = new Fold(range, this.placeholder); + this.subFolds.forEach(function(subFold) { + fold.subFolds.push(subFold.clone()); + }); + fold.collapseChildren = this.collapseChildren; + return fold; + }; + + this.addSubFold = function(fold) { + if (this.range.isEqual(fold)) + return; + + if (!this.range.containsRange(fold)) + throw new Error("A fold can't intersect already existing fold" + fold.range + this.range); + consumeRange(fold, this.start); + + var row = fold.start.row, column = fold.start.column; + for (var i = 0, cmp = -1; i < this.subFolds.length; i++) { + cmp = this.subFolds[i].range.compare(row, column); + if (cmp != 1) + break; + } + var afterStart = this.subFolds[i]; + + if (cmp == 0) + return afterStart.addSubFold(fold); + var row = fold.range.end.row, column = fold.range.end.column; + for (var j = i, cmp = -1; j < this.subFolds.length; j++) { + cmp = this.subFolds[j].range.compare(row, column); + if (cmp != 1) + break; + } + var afterEnd = this.subFolds[j]; + + if (cmp == 0) + throw new Error("A fold can't intersect already existing fold" + fold.range + this.range); + + var consumedFolds = this.subFolds.splice(i, j - i, fold); + fold.setFoldLine(this.foldLine); + + return fold; + }; + + this.restoreRange = function(range) { + return restoreRange(range, this.start); + }; + +}).call(Fold.prototype); + +function consumePoint(point, anchor) { + point.row -= anchor.row; + if (point.row == 0) + point.column -= anchor.column; +} +function consumeRange(range, anchor) { + consumePoint(range.start, anchor); + consumePoint(range.end, anchor); +} +function restorePoint(point, anchor) { + if (point.row == 0) + point.column += anchor.column; + point.row += anchor.row; +} +function restoreRange(range, anchor) { + restorePoint(range.start, anchor); + restorePoint(range.end, anchor); +} + +}); + +ace.define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var FoldLine = require("./fold_line").FoldLine; +var Fold = require("./fold").Fold; +var TokenIterator = require("../token_iterator").TokenIterator; + +function Folding() { + this.getFoldAt = function(row, column, side) { + var foldLine = this.getFoldLine(row); + if (!foldLine) + return null; + + var folds = foldLine.folds; + for (var i = 0; i < folds.length; i++) { + var fold = folds[i]; + if (fold.range.contains(row, column)) { + if (side == 1 && fold.range.isEnd(row, column)) { + continue; + } else if (side == -1 && fold.range.isStart(row, column)) { + continue; + } + return fold; + } + } + }; + this.getFoldsInRange = function(range) { + var start = range.start; + var end = range.end; + var foldLines = this.$foldData; + var foundFolds = []; + + start.column += 1; + end.column -= 1; + + for (var i = 0; i < foldLines.length; i++) { + var cmp = foldLines[i].range.compareRange(range); + if (cmp == 2) { + continue; + } + else if (cmp == -2) { + break; + } + + var folds = foldLines[i].folds; + for (var j = 0; j < folds.length; j++) { + var fold = folds[j]; + cmp = fold.range.compareRange(range); + if (cmp == -2) { + break; + } else if (cmp == 2) { + continue; + } else + if (cmp == 42) { + break; + } + foundFolds.push(fold); + } + } + start.column -= 1; + end.column += 1; + + return foundFolds; + }; + + this.getFoldsInRangeList = function(ranges) { + if (Array.isArray(ranges)) { + var folds = []; + ranges.forEach(function(range) { + folds = folds.concat(this.getFoldsInRange(range)); + }, this); + } else { + var folds = this.getFoldsInRange(ranges); + } + return folds; + }; + this.getAllFolds = function() { + var folds = []; + var foldLines = this.$foldData; + + for (var i = 0; i < foldLines.length; i++) + for (var j = 0; j < foldLines[i].folds.length; j++) + folds.push(foldLines[i].folds[j]); + + return folds; + }; + this.getFoldStringAt = function(row, column, trim, foldLine) { + foldLine = foldLine || this.getFoldLine(row); + if (!foldLine) + return null; + + var lastFold = { + end: { column: 0 } + }; + var str, fold; + for (var i = 0; i < foldLine.folds.length; i++) { + fold = foldLine.folds[i]; + var cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + str = this + .getLine(fold.start.row) + .substring(lastFold.end.column, fold.start.column); + break; + } + else if (cmp === 0) { + return null; + } + lastFold = fold; + } + if (!str) + str = this.getLine(fold.start.row).substring(lastFold.end.column); + + if (trim == -1) + return str.substring(0, column - lastFold.end.column); + else if (trim == 1) + return str.substring(column - lastFold.end.column); + else + return str; + }; + + this.getFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) { + return foldLine; + } else if (foldLine.end.row > docRow) { + return null; + } + } + return null; + }; + this.getNextFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.end.row >= docRow) { + return foldLine; + } + } + return null; + }; + + this.getFoldedRowCount = function(first, last) { + var foldData = this.$foldData, rowCount = last-first+1; + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i], + end = foldLine.end.row, + start = foldLine.start.row; + if (end >= last) { + if (start < last) { + if (start >= first) + rowCount -= last-start; + else + rowCount = 0; // in one fold + } + break; + } else if (end >= first){ + if (start >= first) // fold inside range + rowCount -= end-start; + else + rowCount -= end-first+1; + } + } + return rowCount; + }; + + this.$addFoldLine = function(foldLine) { + this.$foldData.push(foldLine); + this.$foldData.sort(function(a, b) { + return a.start.row - b.start.row; + }); + return foldLine; + }; + this.addFold = function(placeholder, range) { + var foldData = this.$foldData; + var added = false; + var fold; + + if (placeholder instanceof Fold) + fold = placeholder; + else { + fold = new Fold(range, placeholder); + fold.collapseChildren = range.collapseChildren; + } + this.$clipRangeToDocument(fold.range); + + var startRow = fold.start.row; + var startColumn = fold.start.column; + var endRow = fold.end.row; + var endColumn = fold.end.column; + if (!(startRow < endRow || + startRow == endRow && startColumn <= endColumn - 2)) + throw new Error("The range has to be at least 2 characters width"); + + var startFold = this.getFoldAt(startRow, startColumn, 1); + var endFold = this.getFoldAt(endRow, endColumn, -1); + if (startFold && endFold == startFold) + return startFold.addSubFold(fold); + + if (startFold && !startFold.range.isStart(startRow, startColumn)) + this.removeFold(startFold); + + if (endFold && !endFold.range.isEnd(endRow, endColumn)) + this.removeFold(endFold); + var folds = this.getFoldsInRange(fold.range); + if (folds.length > 0) { + this.removeFolds(folds); + folds.forEach(function(subFold) { + fold.addSubFold(subFold); + }); + } + + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (endRow == foldLine.start.row) { + foldLine.addFold(fold); + added = true; + break; + } else if (startRow == foldLine.end.row) { + foldLine.addFold(fold); + added = true; + if (!fold.sameRow) { + var foldLineNext = foldData[i + 1]; + if (foldLineNext && foldLineNext.start.row == endRow) { + foldLine.merge(foldLineNext); + break; + } + } + break; + } else if (endRow <= foldLine.start.row) { + break; + } + } + + if (!added) + foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold)); + + if (this.$useWrapMode) + this.$updateWrapData(foldLine.start.row, foldLine.start.row); + else + this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row); + this.$modified = true; + this._signal("changeFold", { data: fold, action: "add" }); + + return fold; + }; + + this.addFolds = function(folds) { + folds.forEach(function(fold) { + this.addFold(fold); + }, this); + }; + + this.removeFold = function(fold) { + var foldLine = fold.foldLine; + var startRow = foldLine.start.row; + var endRow = foldLine.end.row; + + var foldLines = this.$foldData; + var folds = foldLine.folds; + if (folds.length == 1) { + foldLines.splice(foldLines.indexOf(foldLine), 1); + } else + if (foldLine.range.isEnd(fold.end.row, fold.end.column)) { + folds.pop(); + foldLine.end.row = folds[folds.length - 1].end.row; + foldLine.end.column = folds[folds.length - 1].end.column; + } else + if (foldLine.range.isStart(fold.start.row, fold.start.column)) { + folds.shift(); + foldLine.start.row = folds[0].start.row; + foldLine.start.column = folds[0].start.column; + } else + if (fold.sameRow) { + folds.splice(folds.indexOf(fold), 1); + } else + { + var newFoldLine = foldLine.split(fold.start.row, fold.start.column); + folds = newFoldLine.folds; + folds.shift(); + newFoldLine.start.row = folds[0].start.row; + newFoldLine.start.column = folds[0].start.column; + } + + if (!this.$updating) { + if (this.$useWrapMode) + this.$updateWrapData(startRow, endRow); + else + this.$updateRowLengthCache(startRow, endRow); + } + this.$modified = true; + this._signal("changeFold", { data: fold, action: "remove" }); + }; + + this.removeFolds = function(folds) { + var cloneFolds = []; + for (var i = 0; i < folds.length; i++) { + cloneFolds.push(folds[i]); + } + + cloneFolds.forEach(function(fold) { + this.removeFold(fold); + }, this); + this.$modified = true; + }; + + this.expandFold = function(fold) { + this.removeFold(fold); + fold.subFolds.forEach(function(subFold) { + fold.restoreRange(subFold); + this.addFold(subFold); + }, this); + if (fold.collapseChildren > 0) { + this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1); + } + fold.subFolds = []; + }; + + this.expandFolds = function(folds) { + folds.forEach(function(fold) { + this.expandFold(fold); + }, this); + }; + + this.unfold = function(location, expandInner) { + var range, folds; + if (location == null) { + range = new Range(0, 0, this.getLength(), 0); + expandInner = true; + } else if (typeof location == "number") + range = new Range(location, 0, location, this.getLine(location).length); + else if ("row" in location) + range = Range.fromPoints(location, location); + else + range = location; + + folds = this.getFoldsInRangeList(range); + if (expandInner) { + this.removeFolds(folds); + } else { + var subFolds = folds; + while (subFolds.length) { + this.expandFolds(subFolds); + subFolds = this.getFoldsInRangeList(range); + } + } + if (folds.length) + return folds; + }; + this.isRowFolded = function(docRow, startFoldRow) { + return !!this.getFoldLine(docRow, startFoldRow); + }; + + this.getRowFoldEnd = function(docRow, startFoldRow) { + var foldLine = this.getFoldLine(docRow, startFoldRow); + return foldLine ? foldLine.end.row : docRow; + }; + + this.getRowFoldStart = function(docRow, startFoldRow) { + var foldLine = this.getFoldLine(docRow, startFoldRow); + return foldLine ? foldLine.start.row : docRow; + }; + + this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) { + if (startRow == null) + startRow = foldLine.start.row; + if (startColumn == null) + startColumn = 0; + if (endRow == null) + endRow = foldLine.end.row; + if (endColumn == null) + endColumn = this.getLine(endRow).length; + var doc = this.doc; + var textLine = ""; + + foldLine.walk(function(placeholder, row, column, lastColumn) { + if (row < startRow) + return; + if (row == startRow) { + if (column < startColumn) + return; + lastColumn = Math.max(startColumn, lastColumn); + } + + if (placeholder != null) { + textLine += placeholder; + } else { + textLine += doc.getLine(row).substring(lastColumn, column); + } + }, endRow, endColumn); + return textLine; + }; + + this.getDisplayLine = function(row, endColumn, startRow, startColumn) { + var foldLine = this.getFoldLine(row); + + if (!foldLine) { + var line; + line = this.doc.getLine(row); + return line.substring(startColumn || 0, endColumn || line.length); + } else { + return this.getFoldDisplayLine( + foldLine, row, endColumn, startRow, startColumn); + } + }; + + this.$cloneFoldData = function() { + var fd = []; + fd = this.$foldData.map(function(foldLine) { + var folds = foldLine.folds.map(function(fold) { + return fold.clone(); + }); + return new FoldLine(fd, folds); + }); + + return fd; + }; + + this.toggleFold = function(tryToUnfold) { + var selection = this.selection; + var range = selection.getRange(); + var fold; + var bracketPos; + + if (range.isEmpty()) { + var cursor = range.start; + fold = this.getFoldAt(cursor.row, cursor.column); + + if (fold) { + this.expandFold(fold); + return; + } else if (bracketPos = this.findMatchingBracket(cursor)) { + if (range.comparePoint(bracketPos) == 1) { + range.end = bracketPos; + } else { + range.start = bracketPos; + range.start.column++; + range.end.column--; + } + } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) { + if (range.comparePoint(bracketPos) == 1) + range.end = bracketPos; + else + range.start = bracketPos; + + range.start.column++; + } else { + range = this.getCommentFoldRange(cursor.row, cursor.column) || range; + } + } else { + var folds = this.getFoldsInRange(range); + if (tryToUnfold && folds.length) { + this.expandFolds(folds); + return; + } else if (folds.length == 1 ) { + fold = folds[0]; + } + } + + if (!fold) + fold = this.getFoldAt(range.start.row, range.start.column); + + if (fold && fold.range.toString() == range.toString()) { + this.expandFold(fold); + return; + } + + var placeholder = "..."; + if (!range.isMultiLine()) { + placeholder = this.getTextRange(range); + if (placeholder.length < 4) + return; + placeholder = placeholder.trim().substring(0, 2) + ".."; + } + + this.addFold(placeholder, range); + }; + + this.getCommentFoldRange = function(row, column, dir) { + var iterator = new TokenIterator(this, row, column); + var token = iterator.getCurrentToken(); + var type = token.type; + if (token && /^comment|string/.test(type)) { + type = type.match(/comment|string/)[0]; + if (type == "comment") + type += "|doc-start"; + var re = new RegExp(type); + var range = new Range(); + if (dir != 1) { + do { + token = iterator.stepBackward(); + } while (token && re.test(token.type)); + iterator.stepForward(); + } + + range.start.row = iterator.getCurrentTokenRow(); + range.start.column = iterator.getCurrentTokenColumn() + 2; + + iterator = new TokenIterator(this, row, column); + + if (dir != -1) { + var lastRow = -1; + do { + token = iterator.stepForward(); + if (lastRow == -1) { + var state = this.getState(iterator.$row); + if (!re.test(state)) + lastRow = iterator.$row; + } else if (iterator.$row > lastRow) { + break; + } + } while (token && re.test(token.type)); + token = iterator.stepBackward(); + } else + token = iterator.getCurrentToken(); + + range.end.row = iterator.getCurrentTokenRow(); + range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2; + return range; + } + }; + + this.foldAll = function(startRow, endRow, depth) { + if (depth == undefined) + depth = 100000; // JSON.stringify doesn't hanle Infinity + var foldWidgets = this.foldWidgets; + if (!foldWidgets) + return; // mode doesn't support folding + endRow = endRow || this.getLength(); + startRow = startRow || 0; + for (var row = startRow; row < endRow; row++) { + if (foldWidgets[row] == null) + foldWidgets[row] = this.getFoldWidget(row); + if (foldWidgets[row] != "start") + continue; + + var range = this.getFoldWidgetRange(row); + if (range && range.isMultiLine() + && range.end.row <= endRow + && range.start.row >= startRow + ) { + row = range.end.row; + try { + var fold = this.addFold("...", range); + if (fold) + fold.collapseChildren = depth; + } catch(e) {} + } + } + }; + this.$foldStyles = { + "manual": 1, + "markbegin": 1, + "markbeginend": 1 + }; + this.$foldStyle = "markbegin"; + this.setFoldStyle = function(style) { + if (!this.$foldStyles[style]) + throw new Error("invalid fold style: " + style + "[" + Object.keys(this.$foldStyles).join(", ") + "]"); + + if (this.$foldStyle == style) + return; + + this.$foldStyle = style; + + if (style == "manual") + this.unfold(); + var mode = this.$foldMode; + this.$setFolding(null); + this.$setFolding(mode); + }; + + this.$setFolding = function(foldMode) { + if (this.$foldMode == foldMode) + return; + + this.$foldMode = foldMode; + + this.off('change', this.$updateFoldWidgets); + this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets); + this._signal("changeAnnotation"); + + if (!foldMode || this.$foldStyle == "manual") { + this.foldWidgets = null; + return; + } + + this.foldWidgets = []; + this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle); + this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle); + + this.$updateFoldWidgets = this.updateFoldWidgets.bind(this); + this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this); + this.on('change', this.$updateFoldWidgets); + this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets); + }; + + this.getParentFoldRangeData = function (row, ignoreCurrent) { + var fw = this.foldWidgets; + if (!fw || (ignoreCurrent && fw[row])) + return {}; + + var i = row - 1, firstRange; + while (i >= 0) { + var c = fw[i]; + if (c == null) + c = fw[i] = this.getFoldWidget(i); + + if (c == "start") { + var range = this.getFoldWidgetRange(i); + if (!firstRange) + firstRange = range; + if (range && range.end.row >= row) + break; + } + i--; + } + + return { + range: i !== -1 && range, + firstRange: firstRange + }; + }; + + this.onFoldWidgetClick = function(row, e) { + e = e.domEvent; + var options = { + children: e.shiftKey, + all: e.ctrlKey || e.metaKey, + siblings: e.altKey + }; + + var range = this.$toggleFoldWidget(row, options); + if (!range) { + var el = (e.target || e.srcElement); + if (el && /ace_fold-widget/.test(el.className)) + el.className += " ace_invalid"; + } + }; + + this.$toggleFoldWidget = function(row, options) { + if (!this.getFoldWidget) + return; + var type = this.getFoldWidget(row); + var line = this.getLine(row); + + var dir = type === "end" ? -1 : 1; + var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir); + + if (fold) { + if (options.children || options.all) + this.removeFold(fold); + else + this.expandFold(fold); + return fold; + } + + var range = this.getFoldWidgetRange(row, true); + if (range && !range.isMultiLine()) { + fold = this.getFoldAt(range.start.row, range.start.column, 1); + if (fold && range.isEqual(fold.range)) { + this.removeFold(fold); + return fold; + } + } + + if (options.siblings) { + var data = this.getParentFoldRangeData(row); + if (data.range) { + var startRow = data.range.start.row + 1; + var endRow = data.range.end.row; + } + this.foldAll(startRow, endRow, options.all ? 10000 : 0); + } else if (options.children) { + endRow = range ? range.end.row : this.getLength(); + this.foldAll(row + 1, endRow, options.all ? 10000 : 0); + } else if (range) { + if (options.all) + range.collapseChildren = 10000; + this.addFold("...", range); + } + + return range; + }; + + + + this.toggleFoldWidget = function(toggleParent) { + var row = this.selection.getCursor().row; + row = this.getRowFoldStart(row); + var range = this.$toggleFoldWidget(row, {}); + + if (range) + return; + var data = this.getParentFoldRangeData(row, true); + range = data.range || data.firstRange; + + if (range) { + row = range.start.row; + var fold = this.getFoldAt(row, this.getLine(row).length, 1); + + if (fold) { + this.removeFold(fold); + } else { + this.addFold("...", range); + } + } + }; + + this.updateFoldWidgets = function(delta) { + var firstRow = delta.start.row; + var len = delta.end.row - firstRow; + + if (len === 0) { + this.foldWidgets[firstRow] = null; + } else if (delta.action == 'remove') { + this.foldWidgets.splice(firstRow, len + 1, null); + } else { + var args = Array(len + 1); + args.unshift(firstRow, 1); + this.foldWidgets.splice.apply(this.foldWidgets, args); + } + }; + this.tokenizerUpdateFoldWidgets = function(e) { + var rows = e.data; + if (rows.first != rows.last) { + if (this.foldWidgets.length > rows.first) + this.foldWidgets.splice(rows.first, this.foldWidgets.length); + } + }; +} + +exports.Folding = Folding; + +}); + +ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; +var Range = require("../range").Range; + + +function BracketMatch() { + + this.findMatchingBracket = function(position, chr) { + if (position.column == 0) return null; + + var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1); + if (charBeforeCursor == "") return null; + + var match = charBeforeCursor.match(/([\(\[\{])|([\)\]\}])/); + if (!match) + return null; + + if (match[1]) + return this.$findClosingBracket(match[1], position); + else + return this.$findOpeningBracket(match[2], position); + }; + + this.getBracketRange = function(pos) { + var line = this.getLine(pos.row); + var before = true, range; + + var chr = line.charAt(pos.column-1); + var match = chr && chr.match(/([\(\[\{])|([\)\]\}])/); + if (!match) { + chr = line.charAt(pos.column); + pos = {row: pos.row, column: pos.column + 1}; + match = chr && chr.match(/([\(\[\{])|([\)\]\}])/); + before = false; + } + if (!match) + return null; + + if (match[1]) { + var bracketPos = this.$findClosingBracket(match[1], pos); + if (!bracketPos) + return null; + range = Range.fromPoints(pos, bracketPos); + if (!before) { + range.end.column++; + range.start.column--; + } + range.cursor = range.end; + } else { + var bracketPos = this.$findOpeningBracket(match[2], pos); + if (!bracketPos) + return null; + range = Range.fromPoints(bracketPos, pos); + if (!before) { + range.start.column++; + range.end.column--; + } + range.cursor = range.start; + } + + return range; + }; + + this.$brackets = { + ")": "(", + "(": ")", + "]": "[", + "[": "]", + "{": "}", + "}": "{" + }; + + this.$findOpeningBracket = function(bracket, position, typeRe) { + var openBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return; + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("rparen", ".paren") + .replace(/\b(?:end)\b/, "(?:start|begin|end)") + + ")+" + ); + } + var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2; + var value = token.value; + + while (true) { + + while (valueIndex >= 0) { + var chr = value.charAt(valueIndex); + if (chr == openBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex -= 1; + } + do { + token = iterator.stepBackward(); + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + value = token.value; + valueIndex = value.length - 1; + } + + return null; + }; + + this.$findClosingBracket = function(bracket, position, typeRe) { + var closingBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return; + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("lparen", ".paren") + .replace(/\b(?:start|begin)\b/, "(?:start|begin|end)") + + ")+" + ); + } + var valueIndex = position.column - iterator.getCurrentTokenColumn(); + + while (true) { + + var value = token.value; + var valueLength = value.length; + while (valueIndex < valueLength) { + var chr = value.charAt(valueIndex); + if (chr == closingBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex += 1; + } + do { + token = iterator.stepForward(); + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + valueIndex = 0; + } + + return null; + }; +} +exports.BracketMatch = BracketMatch; + +}); + +ace.define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var config = require("./config"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Selection = require("./selection").Selection; +var TextMode = require("./mode/text").Mode; +var Range = require("./range").Range; +var Document = require("./document").Document; +var BackgroundTokenizer = require("./background_tokenizer").BackgroundTokenizer; +var SearchHighlight = require("./search_highlight").SearchHighlight; + +var EditSession = function(text, mode) { + this.$breakpoints = []; + this.$decorations = []; + this.$frontMarkers = {}; + this.$backMarkers = {}; + this.$markerId = 1; + this.$undoSelect = true; + + this.$foldData = []; + this.id = "session" + (++EditSession.$uid); + this.$foldData.toString = function() { + return this.join("\n"); + }; + this.on("changeFold", this.onChangeFold.bind(this)); + this.$onChange = this.onChange.bind(this); + + if (typeof text != "object" || !text.getLine) + text = new Document(text); + + this.setDocument(text); + this.selection = new Selection(this); + + config.resetOptions(this); + this.setMode(mode); + config._signal("session", this); +}; + + +EditSession.$uid = 0; + +(function() { + + oop.implement(this, EventEmitter); + this.setDocument = function(doc) { + if (this.doc) + this.doc.removeListener("change", this.$onChange); + + this.doc = doc; + doc.on("change", this.$onChange); + + if (this.bgTokenizer) + this.bgTokenizer.setDocument(this.getDocument()); + + this.resetCaches(); + }; + this.getDocument = function() { + return this.doc; + }; + this.$resetRowCache = function(docRow) { + if (!docRow) { + this.$docRowCache = []; + this.$screenRowCache = []; + return; + } + var l = this.$docRowCache.length; + var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1; + if (l > i) { + this.$docRowCache.splice(i, l); + this.$screenRowCache.splice(i, l); + } + }; + + this.$getRowCacheIndex = function(cacheArray, val) { + var low = 0; + var hi = cacheArray.length - 1; + + while (low <= hi) { + var mid = (low + hi) >> 1; + var c = cacheArray[mid]; + + if (val > c) + low = mid + 1; + else if (val < c) + hi = mid - 1; + else + return mid; + } + + return low -1; + }; + + this.resetCaches = function() { + this.$modified = true; + this.$wrapData = []; + this.$rowLengthCache = []; + this.$resetRowCache(0); + if (this.bgTokenizer) + this.bgTokenizer.start(0); + }; + + this.onChangeFold = function(e) { + var fold = e.data; + this.$resetRowCache(fold.start.row); + }; + + this.onChange = function(delta) { + this.$modified = true; + + this.$resetRowCache(delta.start.row); + + var removedFolds = this.$updateInternalDataOnChange(delta); + if (!this.$fromUndo && this.$undoManager && !delta.ignore) { + this.$deltasDoc.push(delta); + if (removedFolds && removedFolds.length != 0) { + this.$deltasFold.push({ + action: "removeFolds", + folds: removedFolds + }); + } + + this.$informUndoManager.schedule(); + } + + this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta); + this._signal("change", delta); + }; + this.setValue = function(text) { + this.doc.setValue(text); + this.selection.moveTo(0, 0); + + this.$resetRowCache(0); + this.$deltas = []; + this.$deltasDoc = []; + this.$deltasFold = []; + this.setUndoManager(this.$undoManager); + this.getUndoManager().reset(); + }; + this.getValue = + this.toString = function() { + return this.doc.getValue(); + }; + this.getSelection = function() { + return this.selection; + }; + this.getState = function(row) { + return this.bgTokenizer.getState(row); + }; + this.getTokens = function(row) { + return this.bgTokenizer.getTokens(row); + }; + this.getTokenAt = function(row, column) { + var tokens = this.bgTokenizer.getTokens(row); + var token, c = 0; + if (column == null) { + i = tokens.length - 1; + c = this.getLine(row).length; + } else { + for (var i = 0; i < tokens.length; i++) { + c += tokens[i].value.length; + if (c >= column) + break; + } + } + token = tokens[i]; + if (!token) + return null; + token.index = i; + token.start = c - token.value.length; + return token; + }; + this.setUndoManager = function(undoManager) { + this.$undoManager = undoManager; + this.$deltas = []; + this.$deltasDoc = []; + this.$deltasFold = []; + + if (this.$informUndoManager) + this.$informUndoManager.cancel(); + + if (undoManager) { + var self = this; + + this.$syncInformUndoManager = function() { + self.$informUndoManager.cancel(); + + if (self.$deltasFold.length) { + self.$deltas.push({ + group: "fold", + deltas: self.$deltasFold + }); + self.$deltasFold = []; + } + + if (self.$deltasDoc.length) { + self.$deltas.push({ + group: "doc", + deltas: self.$deltasDoc + }); + self.$deltasDoc = []; + } + + if (self.$deltas.length > 0) { + undoManager.execute({ + action: "aceupdate", + args: [self.$deltas, self], + merge: self.mergeUndoDeltas + }); + } + self.mergeUndoDeltas = false; + self.$deltas = []; + }; + this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager); + } + }; + this.markUndoGroup = function() { + if (this.$syncInformUndoManager) + this.$syncInformUndoManager(); + }; + + this.$defaultUndoManager = { + undo: function() {}, + redo: function() {}, + reset: function() {} + }; + this.getUndoManager = function() { + return this.$undoManager || this.$defaultUndoManager; + }; + this.getTabString = function() { + if (this.getUseSoftTabs()) { + return lang.stringRepeat(" ", this.getTabSize()); + } else { + return "\t"; + } + }; + this.setUseSoftTabs = function(val) { + this.setOption("useSoftTabs", val); + }; + this.getUseSoftTabs = function() { + return this.$useSoftTabs && !this.$mode.$indentWithTabs; + }; + this.setTabSize = function(tabSize) { + this.setOption("tabSize", tabSize); + }; + this.getTabSize = function() { + return this.$tabSize; + }; + this.isTabStop = function(position) { + return this.$useSoftTabs && (position.column % this.$tabSize === 0); + }; + this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) { + this.setOption("navigateWithinSoftTabs", navigateWithinSoftTabs) + } + this.getNavigateWithinSoftTabs = function() { + return this.$navigateWithinSoftTabs; + } + + this.$overwrite = false; + this.setOverwrite = function(overwrite) { + this.setOption("overwrite", overwrite); + }; + this.getOverwrite = function() { + return this.$overwrite; + }; + this.toggleOverwrite = function() { + this.setOverwrite(!this.$overwrite); + }; + this.addGutterDecoration = function(row, className) { + if (!this.$decorations[row]) + this.$decorations[row] = ""; + this.$decorations[row] += " " + className; + this._signal("changeBreakpoint", {}); + }; + this.removeGutterDecoration = function(row, className) { + this.$decorations[row] = (this.$decorations[row] || "").replace(" " + className, ""); + this._signal("changeBreakpoint", {}); + }; + this.getBreakpoints = function() { + return this.$breakpoints; + }; + this.setBreakpoints = function(rows) { + this.$breakpoints = []; + for (var i=0; i 0) + inToken = !!line.charAt(column - 1).match(this.tokenRe); + + if (!inToken) + inToken = !!line.charAt(column).match(this.tokenRe); + + if (inToken) + var re = this.tokenRe; + else if (/^\s+$/.test(line.slice(column-1, column+1))) + var re = /\s/; + else + var re = this.nonTokenRe; + + var start = column; + if (start > 0) { + do { + start--; + } + while (start >= 0 && line.charAt(start).match(re)); + start++; + } + + var end = column; + while (end < line.length && line.charAt(end).match(re)) { + end++; + } + + return new Range(row, start, row, end); + }; + this.getAWordRange = function(row, column) { + var wordRange = this.getWordRange(row, column); + var line = this.getLine(wordRange.end.row); + + while (line.charAt(wordRange.end.column).match(/[ \t]/)) { + wordRange.end.column += 1; + } + return wordRange; + }; + this.setNewLineMode = function(newLineMode) { + this.doc.setNewLineMode(newLineMode); + }; + this.getNewLineMode = function() { + return this.doc.getNewLineMode(); + }; + this.setUseWorker = function(useWorker) { this.setOption("useWorker", useWorker); }; + this.getUseWorker = function() { return this.$useWorker; }; + this.onReloadTokenizer = function(e) { + var rows = e.data; + this.bgTokenizer.start(rows.first); + this._signal("tokenizerUpdate", e); + }; + + this.$modes = {}; + this.$mode = null; + this.$modeId = null; + this.setMode = function(mode, cb) { + if (mode && typeof mode === "object") { + if (mode.getTokenizer) + return this.$onChangeMode(mode); + var options = mode; + var path = options.path; + } else { + path = mode || "ace/mode/text"; + } + if (!this.$modes["ace/mode/text"]) + this.$modes["ace/mode/text"] = new TextMode(); + + if (this.$modes[path] && !options) { + this.$onChangeMode(this.$modes[path]); + cb && cb(); + return; + } + this.$modeId = path; + config.loadModule(["mode", path], function(m) { + if (this.$modeId !== path) + return cb && cb(); + if (this.$modes[path] && !options) { + this.$onChangeMode(this.$modes[path]); + } else if (m && m.Mode) { + m = new m.Mode(options); + if (!options) { + this.$modes[path] = m; + m.$id = path; + } + this.$onChangeMode(m); + } + cb && cb(); + }.bind(this)); + if (!this.$mode) + this.$onChangeMode(this.$modes["ace/mode/text"], true); + }; + + this.$onChangeMode = function(mode, $isPlaceholder) { + if (!$isPlaceholder) + this.$modeId = mode.$id; + if (this.$mode === mode) + return; + + this.$mode = mode; + + this.$stopWorker(); + + if (this.$useWorker) + this.$startWorker(); + + var tokenizer = mode.getTokenizer(); + + if(tokenizer.addEventListener !== undefined) { + var onReloadTokenizer = this.onReloadTokenizer.bind(this); + tokenizer.addEventListener("update", onReloadTokenizer); + } + + if (!this.bgTokenizer) { + this.bgTokenizer = new BackgroundTokenizer(tokenizer); + var _self = this; + this.bgTokenizer.addEventListener("update", function(e) { + _self._signal("tokenizerUpdate", e); + }); + } else { + this.bgTokenizer.setTokenizer(tokenizer); + } + + this.bgTokenizer.setDocument(this.getDocument()); + + this.tokenRe = mode.tokenRe; + this.nonTokenRe = mode.nonTokenRe; + + + if (!$isPlaceholder) { + if (mode.attachToSession) + mode.attachToSession(this); + this.$options.wrapMethod.set.call(this, this.$wrapMethod); + this.$setFolding(mode.foldingRules); + this.bgTokenizer.start(0); + this._emit("changeMode"); + } + }; + + this.$stopWorker = function() { + if (this.$worker) { + this.$worker.terminate(); + this.$worker = null; + } + }; + + this.$startWorker = function() { + try { + this.$worker = this.$mode.createWorker(this); + } catch (e) { + config.warn("Could not load worker", e); + this.$worker = null; + } + }; + this.getMode = function() { + return this.$mode; + }; + + this.$scrollTop = 0; + this.setScrollTop = function(scrollTop) { + if (this.$scrollTop === scrollTop || isNaN(scrollTop)) + return; + + this.$scrollTop = scrollTop; + this._signal("changeScrollTop", scrollTop); + }; + this.getScrollTop = function() { + return this.$scrollTop; + }; + + this.$scrollLeft = 0; + this.setScrollLeft = function(scrollLeft) { + if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft)) + return; + + this.$scrollLeft = scrollLeft; + this._signal("changeScrollLeft", scrollLeft); + }; + this.getScrollLeft = function() { + return this.$scrollLeft; + }; + this.getScreenWidth = function() { + this.$computeWidth(); + if (this.lineWidgets) + return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth); + return this.screenWidth; + }; + + this.getLineWidgetMaxWidth = function() { + if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth; + var width = 0; + this.lineWidgets.forEach(function(w) { + if (w && w.screenWidth > width) + width = w.screenWidth; + }); + return this.lineWidgetWidth = width; + }; + + this.$computeWidth = function(force) { + if (this.$modified || force) { + this.$modified = false; + + if (this.$useWrapMode) + return this.screenWidth = this.$wrapLimit; + + var lines = this.doc.getAllLines(); + var cache = this.$rowLengthCache; + var longestScreenLine = 0; + var foldIndex = 0; + var foldLine = this.$foldData[foldIndex]; + var foldStart = foldLine ? foldLine.start.row : Infinity; + var len = lines.length; + + for (var i = 0; i < len; i++) { + if (i > foldStart) { + i = foldLine.end.row + 1; + if (i >= len) + break; + foldLine = this.$foldData[foldIndex++]; + foldStart = foldLine ? foldLine.start.row : Infinity; + } + + if (cache[i] == null) + cache[i] = this.$getStringScreenWidth(lines[i])[0]; + + if (cache[i] > longestScreenLine) + longestScreenLine = cache[i]; + } + this.screenWidth = longestScreenLine; + } + }; + this.getLine = function(row) { + return this.doc.getLine(row); + }; + this.getLines = function(firstRow, lastRow) { + return this.doc.getLines(firstRow, lastRow); + }; + this.getLength = function() { + return this.doc.getLength(); + }; + this.getTextRange = function(range) { + return this.doc.getTextRange(range || this.selection.getRange()); + }; + this.insert = function(position, text) { + return this.doc.insert(position, text); + }; + this.remove = function(range) { + return this.doc.remove(range); + }; + this.removeFullLines = function(firstRow, lastRow){ + return this.doc.removeFullLines(firstRow, lastRow); + }; + this.undoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + var lastUndoRange = null; + for (var i = deltas.length - 1; i != -1; i--) { + var delta = deltas[i]; + if (delta.group == "doc") { + this.doc.revertDeltas(delta.deltas); + lastUndoRange = + this.$getUndoSelection(delta.deltas, true, lastUndoRange); + } else { + delta.deltas.forEach(function(foldDelta) { + this.addFolds(foldDelta.folds); + }, this); + } + } + this.$fromUndo = false; + lastUndoRange && + this.$undoSelect && + !dontSelect && + this.selection.setSelectionRange(lastUndoRange); + return lastUndoRange; + }; + this.redoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + var lastUndoRange = null; + for (var i = 0; i < deltas.length; i++) { + var delta = deltas[i]; + if (delta.group == "doc") { + this.doc.applyDeltas(delta.deltas); + lastUndoRange = + this.$getUndoSelection(delta.deltas, false, lastUndoRange); + } + } + this.$fromUndo = false; + lastUndoRange && + this.$undoSelect && + !dontSelect && + this.selection.setSelectionRange(lastUndoRange); + return lastUndoRange; + }; + this.setUndoSelect = function(enable) { + this.$undoSelect = enable; + }; + + this.$getUndoSelection = function(deltas, isUndo, lastUndoRange) { + function isInsert(delta) { + return isUndo ? delta.action !== "insert" : delta.action === "insert"; + } + + var delta = deltas[0]; + var range, point; + var lastDeltaIsInsert = false; + if (isInsert(delta)) { + range = Range.fromPoints(delta.start, delta.end); + lastDeltaIsInsert = true; + } else { + range = Range.fromPoints(delta.start, delta.start); + lastDeltaIsInsert = false; + } + + for (var i = 1; i < deltas.length; i++) { + delta = deltas[i]; + if (isInsert(delta)) { + point = delta.start; + if (range.compare(point.row, point.column) == -1) { + range.setStart(point); + } + point = delta.end; + if (range.compare(point.row, point.column) == 1) { + range.setEnd(point); + } + lastDeltaIsInsert = true; + } else { + point = delta.start; + if (range.compare(point.row, point.column) == -1) { + range = Range.fromPoints(delta.start, delta.start); + } + lastDeltaIsInsert = false; + } + } + if (lastUndoRange != null) { + if (Range.comparePoints(lastUndoRange.start, range.start) === 0) { + lastUndoRange.start.column += range.end.column - range.start.column; + lastUndoRange.end.column += range.end.column - range.start.column; + } + + var cmp = lastUndoRange.compareRange(range); + if (cmp == 1) { + range.setStart(lastUndoRange.start); + } else if (cmp == -1) { + range.setEnd(lastUndoRange.end); + } + } + + return range; + }; + this.replace = function(range, text) { + return this.doc.replace(range, text); + }; + this.moveText = function(fromRange, toPosition, copy) { + var text = this.getTextRange(fromRange); + var folds = this.getFoldsInRange(fromRange); + + var toRange = Range.fromPoints(toPosition, toPosition); + if (!copy) { + this.remove(fromRange); + var rowDiff = fromRange.start.row - fromRange.end.row; + var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column; + if (collDiff) { + if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column) + toRange.start.column += collDiff; + if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column) + toRange.end.column += collDiff; + } + if (rowDiff && toRange.start.row >= fromRange.end.row) { + toRange.start.row += rowDiff; + toRange.end.row += rowDiff; + } + } + + toRange.end = this.insert(toRange.start, text); + if (folds.length) { + var oldStart = fromRange.start; + var newStart = toRange.start; + var rowDiff = newStart.row - oldStart.row; + var collDiff = newStart.column - oldStart.column; + this.addFolds(folds.map(function(x) { + x = x.clone(); + if (x.start.row == oldStart.row) + x.start.column += collDiff; + if (x.end.row == oldStart.row) + x.end.column += collDiff; + x.start.row += rowDiff; + x.end.row += rowDiff; + return x; + })); + } + + return toRange; + }; + this.indentRows = function(startRow, endRow, indentString) { + indentString = indentString.replace(/\t/g, this.getTabString()); + for (var row=startRow; row<=endRow; row++) + this.doc.insertInLine({row: row, column: 0}, indentString); + }; + this.outdentRows = function (range) { + var rowRange = range.collapseRows(); + var deleteRange = new Range(0, 0, 0, 0); + var size = this.getTabSize(); + + for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) { + var line = this.getLine(i); + + deleteRange.start.row = i; + deleteRange.end.row = i; + for (var j = 0; j < size; ++j) + if (line.charAt(j) != ' ') + break; + if (j < size && line.charAt(j) == '\t') { + deleteRange.start.column = j; + deleteRange.end.column = j + 1; + } else { + deleteRange.start.column = 0; + deleteRange.end.column = j; + } + this.remove(deleteRange); + } + }; + + this.$moveLines = function(firstRow, lastRow, dir) { + firstRow = this.getRowFoldStart(firstRow); + lastRow = this.getRowFoldEnd(lastRow); + if (dir < 0) { + var row = this.getRowFoldStart(firstRow + dir); + if (row < 0) return 0; + var diff = row-firstRow; + } else if (dir > 0) { + var row = this.getRowFoldEnd(lastRow + dir); + if (row > this.doc.getLength()-1) return 0; + var diff = row-lastRow; + } else { + firstRow = this.$clipRowToDocument(firstRow); + lastRow = this.$clipRowToDocument(lastRow); + var diff = lastRow - firstRow + 1; + } + + var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE); + var folds = this.getFoldsInRange(range).map(function(x){ + x = x.clone(); + x.start.row += diff; + x.end.row += diff; + return x; + }); + + var lines = dir == 0 + ? this.doc.getLines(firstRow, lastRow) + : this.doc.removeFullLines(firstRow, lastRow); + this.doc.insertFullLines(firstRow+diff, lines); + folds.length && this.addFolds(folds); + return diff; + }; + this.moveLinesUp = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, -1); + }; + this.moveLinesDown = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, 1); + }; + this.duplicateLines = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, 0); + }; + + + this.$clipRowToDocument = function(row) { + return Math.max(0, Math.min(row, this.doc.getLength()-1)); + }; + + this.$clipColumnToRow = function(row, column) { + if (column < 0) + return 0; + return Math.min(this.doc.getLine(row).length, column); + }; + + + this.$clipPositionToDocument = function(row, column) { + column = Math.max(0, column); + + if (row < 0) { + row = 0; + column = 0; + } else { + var len = this.doc.getLength(); + if (row >= len) { + row = len - 1; + column = this.doc.getLine(len-1).length; + } else { + column = Math.min(this.doc.getLine(row).length, column); + } + } + + return { + row: row, + column: column + }; + }; + + this.$clipRangeToDocument = function(range) { + if (range.start.row < 0) { + range.start.row = 0; + range.start.column = 0; + } else { + range.start.column = this.$clipColumnToRow( + range.start.row, + range.start.column + ); + } + + var len = this.doc.getLength() - 1; + if (range.end.row > len) { + range.end.row = len; + range.end.column = this.doc.getLine(len).length; + } else { + range.end.column = this.$clipColumnToRow( + range.end.row, + range.end.column + ); + } + return range; + }; + this.$wrapLimit = 80; + this.$useWrapMode = false; + this.$wrapLimitRange = { + min : null, + max : null + }; + this.setUseWrapMode = function(useWrapMode) { + if (useWrapMode != this.$useWrapMode) { + this.$useWrapMode = useWrapMode; + this.$modified = true; + this.$resetRowCache(0); + if (useWrapMode) { + var len = this.getLength(); + this.$wrapData = Array(len); + this.$updateWrapData(0, len - 1); + } + + this._signal("changeWrapMode"); + } + }; + this.getUseWrapMode = function() { + return this.$useWrapMode; + }; + this.setWrapLimitRange = function(min, max) { + if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) { + this.$wrapLimitRange = { min: min, max: max }; + this.$modified = true; + if (this.$useWrapMode) + this._signal("changeWrapMode"); + } + }; + this.adjustWrapLimit = function(desiredLimit, $printMargin) { + var limits = this.$wrapLimitRange; + if (limits.max < 0) + limits = {min: $printMargin, max: $printMargin}; + var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max); + if (wrapLimit != this.$wrapLimit && wrapLimit > 1) { + this.$wrapLimit = wrapLimit; + this.$modified = true; + if (this.$useWrapMode) { + this.$updateWrapData(0, this.getLength() - 1); + this.$resetRowCache(0); + this._signal("changeWrapLimit"); + } + return true; + } + return false; + }; + + this.$constrainWrapLimit = function(wrapLimit, min, max) { + if (min) + wrapLimit = Math.max(min, wrapLimit); + + if (max) + wrapLimit = Math.min(max, wrapLimit); + + return wrapLimit; + }; + this.getWrapLimit = function() { + return this.$wrapLimit; + }; + this.setWrapLimit = function (limit) { + this.setWrapLimitRange(limit, limit); + }; + this.getWrapLimitRange = function() { + return { + min : this.$wrapLimitRange.min, + max : this.$wrapLimitRange.max + }; + }; + + this.$updateInternalDataOnChange = function(delta) { + var useWrapMode = this.$useWrapMode; + var action = delta.action; + var start = delta.start; + var end = delta.end; + var firstRow = start.row; + var lastRow = end.row; + var len = lastRow - firstRow; + var removedFolds = null; + + this.$updating = true; + if (len != 0) { + if (action === "remove") { + this[useWrapMode ? "$wrapData" : "$rowLengthCache"].splice(firstRow, len); + + var foldLines = this.$foldData; + removedFolds = this.getFoldsInRange(delta); + this.removeFolds(removedFolds); + + var foldLine = this.getFoldLine(end.row); + var idx = 0; + if (foldLine) { + foldLine.addRemoveChars(end.row, end.column, start.column - end.column); + foldLine.shiftRow(-len); + + var foldLineBefore = this.getFoldLine(firstRow); + if (foldLineBefore && foldLineBefore !== foldLine) { + foldLineBefore.merge(foldLine); + foldLine = foldLineBefore; + } + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= end.row) { + foldLine.shiftRow(-len); + } + } + + lastRow = firstRow; + } else { + var args = Array(len); + args.unshift(firstRow, 0); + var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache + arr.splice.apply(arr, args); + var foldLines = this.$foldData; + var foldLine = this.getFoldLine(firstRow); + var idx = 0; + if (foldLine) { + var cmp = foldLine.range.compareInside(start.row, start.column); + if (cmp == 0) { + foldLine = foldLine.split(start.row, start.column); + if (foldLine) { + foldLine.shiftRow(len); + foldLine.addRemoveChars(lastRow, 0, end.column - start.column); + } + } else + if (cmp == -1) { + foldLine.addRemoveChars(firstRow, 0, end.column - start.column); + foldLine.shiftRow(len); + } + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= firstRow) { + foldLine.shiftRow(len); + } + } + } + } else { + len = Math.abs(delta.start.column - delta.end.column); + if (action === "remove") { + removedFolds = this.getFoldsInRange(delta); + this.removeFolds(removedFolds); + + len = -len; + } + var foldLine = this.getFoldLine(firstRow); + if (foldLine) { + foldLine.addRemoveChars(firstRow, start.column, len); + } + } + + if (useWrapMode && this.$wrapData.length != this.doc.getLength()) { + console.error("doc.getLength() and $wrapData.length have to be the same!"); + } + this.$updating = false; + + if (useWrapMode) + this.$updateWrapData(firstRow, lastRow); + else + this.$updateRowLengthCache(firstRow, lastRow); + + return removedFolds; + }; + + this.$updateRowLengthCache = function(firstRow, lastRow, b) { + this.$rowLengthCache[firstRow] = null; + this.$rowLengthCache[lastRow] = null; + }; + + this.$updateWrapData = function(firstRow, lastRow) { + var lines = this.doc.getAllLines(); + var tabSize = this.getTabSize(); + var wrapData = this.$wrapData; + var wrapLimit = this.$wrapLimit; + var tokens; + var foldLine; + + var row = firstRow; + lastRow = Math.min(lastRow, lines.length - 1); + while (row <= lastRow) { + foldLine = this.getFoldLine(row, foldLine); + if (!foldLine) { + tokens = this.$getDisplayTokens(lines[row]); + wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row ++; + } else { + tokens = []; + foldLine.walk(function(placeholder, row, column, lastColumn) { + var walkTokens; + if (placeholder != null) { + walkTokens = this.$getDisplayTokens( + placeholder, tokens.length); + walkTokens[0] = PLACEHOLDER_START; + for (var i = 1; i < walkTokens.length; i++) { + walkTokens[i] = PLACEHOLDER_BODY; + } + } else { + walkTokens = this.$getDisplayTokens( + lines[row].substring(lastColumn, column), + tokens.length); + } + tokens = tokens.concat(walkTokens); + }.bind(this), + foldLine.end.row, + lines[foldLine.end.row].length + 1 + ); + + wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row = foldLine.end.row + 1; + } + } + }; + var CHAR = 1, + CHAR_EXT = 2, + PLACEHOLDER_START = 3, + PLACEHOLDER_BODY = 4, + PUNCTUATION = 9, + SPACE = 10, + TAB = 11, + TAB_SPACE = 12; + + + this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) { + if (tokens.length == 0) { + return []; + } + + var splits = []; + var displayLength = tokens.length; + var lastSplit = 0, lastDocSplit = 0; + + var isCode = this.$wrapAsCode; + + var indentedSoftWrap = this.$indentedSoftWrap; + var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8) + || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2); + + function getWrapIndent() { + var indentation = 0; + if (maxIndent === 0) + return indentation; + if (indentedSoftWrap) { + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token == SPACE) + indentation += 1; + else if (token == TAB) + indentation += tabSize; + else if (token == TAB_SPACE) + continue; + else + break; + } + } + if (isCode && indentedSoftWrap !== false) + indentation += tabSize; + return Math.min(indentation, maxIndent); + } + function addSplit(screenPos) { + var displayed = tokens.slice(lastSplit, screenPos); + var len = displayed.length; + displayed.join("") + .replace(/12/g, function() { + len -= 1; + }) + .replace(/2/g, function() { + len -= 1; + }); + + if (!splits.length) { + indent = getWrapIndent(); + splits.indent = indent; + } + lastDocSplit += len; + splits.push(lastDocSplit); + lastSplit = screenPos; + } + var indent = 0; + while (displayLength - lastSplit > wrapLimit - indent) { + var split = lastSplit + wrapLimit - indent; + if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) { + addSplit(split); + continue; + } + if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) { + for (split; split != lastSplit - 1; split--) { + if (tokens[split] == PLACEHOLDER_START) { + break; + } + } + if (split > lastSplit) { + addSplit(split); + continue; + } + split = lastSplit + wrapLimit; + for (split; split < tokens.length; split++) { + if (tokens[split] != PLACEHOLDER_BODY) { + break; + } + } + if (split == tokens.length) { + break; // Breaks the while-loop. + } + addSplit(split); + continue; + } + var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1); + while (split > minSplit && tokens[split] < PLACEHOLDER_START) { + split --; + } + if (isCode) { + while (split > minSplit && tokens[split] < PLACEHOLDER_START) { + split --; + } + while (split > minSplit && tokens[split] == PUNCTUATION) { + split --; + } + } else { + while (split > minSplit && tokens[split] < SPACE) { + split --; + } + } + if (split > minSplit) { + addSplit(++split); + continue; + } + split = lastSplit + wrapLimit; + if (tokens[split] == CHAR_EXT) + split--; + addSplit(split - indent); + } + return splits; + }; + this.$getDisplayTokens = function(str, offset) { + var arr = []; + var tabSize; + offset = offset || 0; + + for (var i = 0; i < str.length; i++) { + var c = str.charCodeAt(i); + if (c == 9) { + tabSize = this.getScreenTabSize(arr.length + offset); + arr.push(TAB); + for (var n = 1; n < tabSize; n++) { + arr.push(TAB_SPACE); + } + } + else if (c == 32) { + arr.push(SPACE); + } else if((c > 39 && c < 48) || (c > 57 && c < 64)) { + arr.push(PUNCTUATION); + } + else if (c >= 0x1100 && isFullWidth(c)) { + arr.push(CHAR, CHAR_EXT); + } else { + arr.push(CHAR); + } + } + return arr; + }; + this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) { + if (maxScreenColumn == 0) + return [0, 0]; + if (maxScreenColumn == null) + maxScreenColumn = Infinity; + screenColumn = screenColumn || 0; + + var c, column; + for (column = 0; column < str.length; column++) { + c = str.charCodeAt(column); + if (c == 9) { + screenColumn += this.getScreenTabSize(screenColumn); + } + else if (c >= 0x1100 && isFullWidth(c)) { + screenColumn += 2; + } else { + screenColumn += 1; + } + if (screenColumn > maxScreenColumn) { + break; + } + } + + return [screenColumn, column]; + }; + + this.lineWidgets = null; + this.getRowLength = function(row) { + if (this.lineWidgets) + var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0; + else + h = 0 + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1 + h; + } else { + return this.$wrapData[row].length + 1 + h; + } + }; + this.getRowLineCount = function(row) { + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1; + } else { + return this.$wrapData[row].length + 1; + } + }; + + this.getRowWrapIndent = function(screenRow) { + if (this.$useWrapMode) { + var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE); + var splits = this.$wrapData[pos.row]; + return splits.length && splits[0] < pos.column ? splits.indent : 0; + } else { + return 0; + } + } + this.getScreenLastRowColumn = function(screenRow) { + var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE); + return this.documentToScreenColumn(pos.row, pos.column); + }; + this.getDocumentLastRowColumn = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.getScreenLastRowColumn(screenRow); + }; + this.getDocumentLastRowColumnPosition = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10); + }; + this.getRowSplitData = function(row) { + if (!this.$useWrapMode) { + return undefined; + } else { + return this.$wrapData[row]; + } + }; + this.getScreenTabSize = function(screenColumn) { + return this.$tabSize - screenColumn % this.$tabSize; + }; + + + this.screenToDocumentRow = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).row; + }; + + + this.screenToDocumentColumn = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).column; + }; + this.screenToDocumentPosition = function(screenRow, screenColumn) { + if (screenRow < 0) + return {row: 0, column: 0}; + + var line; + var docRow = 0; + var docColumn = 0; + var column; + var row = 0; + var rowLength = 0; + + var rowCache = this.$screenRowCache; + var i = this.$getRowCacheIndex(rowCache, screenRow); + var l = rowCache.length; + if (l && i >= 0) { + var row = rowCache[i]; + var docRow = this.$docRowCache[i]; + var doCache = screenRow > rowCache[l - 1]; + } else { + var doCache = !l; + } + + var maxRow = this.getLength() - 1; + var foldLine = this.getNextFoldLine(docRow); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (row <= screenRow) { + rowLength = this.getRowLength(docRow); + if (row + rowLength > screenRow || docRow >= maxRow) { + break; + } else { + row += rowLength; + docRow++; + if (docRow > foldStart) { + docRow = foldLine.end.row+1; + foldLine = this.getNextFoldLine(docRow, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + } + + if (doCache) { + this.$docRowCache.push(docRow); + this.$screenRowCache.push(row); + } + } + + if (foldLine && foldLine.start.row <= docRow) { + line = this.getFoldDisplayLine(foldLine); + docRow = foldLine.start.row; + } else if (row + rowLength <= screenRow || docRow > maxRow) { + return { + row: maxRow, + column: this.getLine(maxRow).length + }; + } else { + line = this.getLine(docRow); + foldLine = null; + } + var wrapIndent = 0; + if (this.$useWrapMode) { + var splits = this.$wrapData[docRow]; + if (splits) { + var splitIndex = Math.floor(screenRow - row); + column = splits[splitIndex]; + if(splitIndex > 0 && splits.length) { + wrapIndent = splits.indent; + docColumn = splits[splitIndex - 1] || splits[splits.length - 1]; + line = line.substring(docColumn); + } + } + } + + docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1]; + if (this.$useWrapMode && docColumn >= column) + docColumn = column - 1; + + if (foldLine) + return foldLine.idxToPosition(docColumn); + + return {row: docRow, column: docColumn}; + }; + this.documentToScreenPosition = function(docRow, docColumn) { + if (typeof docColumn === "undefined") + var pos = this.$clipPositionToDocument(docRow.row, docRow.column); + else + pos = this.$clipPositionToDocument(docRow, docColumn); + + docRow = pos.row; + docColumn = pos.column; + + var screenRow = 0; + var foldStartRow = null; + var fold = null; + fold = this.getFoldAt(docRow, docColumn, 1); + if (fold) { + docRow = fold.start.row; + docColumn = fold.start.column; + } + + var rowEnd, row = 0; + + + var rowCache = this.$docRowCache; + var i = this.$getRowCacheIndex(rowCache, docRow); + var l = rowCache.length; + if (l && i >= 0) { + var row = rowCache[i]; + var screenRow = this.$screenRowCache[i]; + var doCache = docRow > rowCache[l - 1]; + } else { + var doCache = !l; + } + + var foldLine = this.getNextFoldLine(row); + var foldStart = foldLine ?foldLine.start.row :Infinity; + + while (row < docRow) { + if (row >= foldStart) { + rowEnd = foldLine.end.row + 1; + if (rowEnd > docRow) + break; + foldLine = this.getNextFoldLine(rowEnd, foldLine); + foldStart = foldLine ?foldLine.start.row :Infinity; + } + else { + rowEnd = row + 1; + } + + screenRow += this.getRowLength(row); + row = rowEnd; + + if (doCache) { + this.$docRowCache.push(row); + this.$screenRowCache.push(screenRow); + } + } + var textLine = ""; + if (foldLine && row >= foldStart) { + textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn); + foldStartRow = foldLine.start.row; + } else { + textLine = this.getLine(docRow).substring(0, docColumn); + foldStartRow = docRow; + } + var wrapIndent = 0; + if (this.$useWrapMode) { + var wrapRow = this.$wrapData[foldStartRow]; + if (wrapRow) { + var screenRowOffset = 0; + while (textLine.length >= wrapRow[screenRowOffset]) { + screenRow ++; + screenRowOffset++; + } + textLine = textLine.substring( + wrapRow[screenRowOffset - 1] || 0, textLine.length + ); + wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0; + } + } + + return { + row: screenRow, + column: wrapIndent + this.$getStringScreenWidth(textLine)[0] + }; + }; + this.documentToScreenColumn = function(row, docColumn) { + return this.documentToScreenPosition(row, docColumn).column; + }; + this.documentToScreenRow = function(docRow, docColumn) { + return this.documentToScreenPosition(docRow, docColumn).row; + }; + this.getScreenLength = function() { + var screenRows = 0; + var fold = null; + if (!this.$useWrapMode) { + screenRows = this.getLength(); + var foldData = this.$foldData; + for (var i = 0; i < foldData.length; i++) { + fold = foldData[i]; + screenRows -= fold.end.row - fold.start.row; + } + } else { + var lastRow = this.$wrapData.length; + var row = 0, i = 0; + var fold = this.$foldData[i++]; + var foldStart = fold ? fold.start.row :Infinity; + + while (row < lastRow) { + var splits = this.$wrapData[row]; + screenRows += splits ? splits.length + 1 : 1; + row ++; + if (row > foldStart) { + row = fold.end.row+1; + fold = this.$foldData[i++]; + foldStart = fold ?fold.start.row :Infinity; + } + } + } + if (this.lineWidgets) + screenRows += this.$getWidgetScreenLength(); + + return screenRows; + }; + this.$setFontMetrics = function(fm) { + if (!this.$enableVarChar) return; + this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) { + if (maxScreenColumn === 0) + return [0, 0]; + if (!maxScreenColumn) + maxScreenColumn = Infinity; + screenColumn = screenColumn || 0; + + var c, column; + for (column = 0; column < str.length; column++) { + c = str.charAt(column); + if (c === "\t") { + screenColumn += this.getScreenTabSize(screenColumn); + } else { + screenColumn += fm.getCharacterWidth(c); + } + if (screenColumn > maxScreenColumn) { + break; + } + } + + return [screenColumn, column]; + }; + }; + + this.destroy = function() { + if (this.bgTokenizer) { + this.bgTokenizer.setDocument(null); + this.bgTokenizer = null; + } + this.$stopWorker(); + }; + function isFullWidth(c) { + if (c < 0x1100) + return false; + return c >= 0x1100 && c <= 0x115F || + c >= 0x11A3 && c <= 0x11A7 || + c >= 0x11FA && c <= 0x11FF || + c >= 0x2329 && c <= 0x232A || + c >= 0x2E80 && c <= 0x2E99 || + c >= 0x2E9B && c <= 0x2EF3 || + c >= 0x2F00 && c <= 0x2FD5 || + c >= 0x2FF0 && c <= 0x2FFB || + c >= 0x3000 && c <= 0x303E || + c >= 0x3041 && c <= 0x3096 || + c >= 0x3099 && c <= 0x30FF || + c >= 0x3105 && c <= 0x312D || + c >= 0x3131 && c <= 0x318E || + c >= 0x3190 && c <= 0x31BA || + c >= 0x31C0 && c <= 0x31E3 || + c >= 0x31F0 && c <= 0x321E || + c >= 0x3220 && c <= 0x3247 || + c >= 0x3250 && c <= 0x32FE || + c >= 0x3300 && c <= 0x4DBF || + c >= 0x4E00 && c <= 0xA48C || + c >= 0xA490 && c <= 0xA4C6 || + c >= 0xA960 && c <= 0xA97C || + c >= 0xAC00 && c <= 0xD7A3 || + c >= 0xD7B0 && c <= 0xD7C6 || + c >= 0xD7CB && c <= 0xD7FB || + c >= 0xF900 && c <= 0xFAFF || + c >= 0xFE10 && c <= 0xFE19 || + c >= 0xFE30 && c <= 0xFE52 || + c >= 0xFE54 && c <= 0xFE66 || + c >= 0xFE68 && c <= 0xFE6B || + c >= 0xFF01 && c <= 0xFF60 || + c >= 0xFFE0 && c <= 0xFFE6; + } + +}).call(EditSession.prototype); + +require("./edit_session/folding").Folding.call(EditSession.prototype); +require("./edit_session/bracket_match").BracketMatch.call(EditSession.prototype); + + +config.defineOptions(EditSession.prototype, "session", { + wrap: { + set: function(value) { + if (!value || value == "off") + value = false; + else if (value == "free") + value = true; + else if (value == "printMargin") + value = -1; + else if (typeof value == "string") + value = parseInt(value, 10) || false; + + if (this.$wrap == value) + return; + this.$wrap = value; + if (!value) { + this.setUseWrapMode(false); + } else { + var col = typeof value == "number" ? value : null; + this.setWrapLimitRange(col, col); + this.setUseWrapMode(true); + } + }, + get: function() { + if (this.getUseWrapMode()) { + if (this.$wrap == -1) + return "printMargin"; + if (!this.getWrapLimitRange().min) + return "free"; + return this.$wrap; + } + return "off"; + }, + handlesSet: true + }, + wrapMethod: { + set: function(val) { + val = val == "auto" + ? this.$mode.type != "text" + : val != "text"; + if (val != this.$wrapAsCode) { + this.$wrapAsCode = val; + if (this.$useWrapMode) { + this.$modified = true; + this.$resetRowCache(0); + this.$updateWrapData(0, this.getLength() - 1); + } + } + }, + initialValue: "auto" + }, + indentedSoftWrap: { initialValue: true }, + firstLineNumber: { + set: function() {this._signal("changeBreakpoint");}, + initialValue: 1 + }, + useWorker: { + set: function(useWorker) { + this.$useWorker = useWorker; + + this.$stopWorker(); + if (useWorker) + this.$startWorker(); + }, + initialValue: true + }, + useSoftTabs: {initialValue: true}, + tabSize: { + set: function(tabSize) { + if (isNaN(tabSize) || this.$tabSize === tabSize) return; + + this.$modified = true; + this.$rowLengthCache = []; + this.$tabSize = tabSize; + this._signal("changeTabSize"); + }, + initialValue: 4, + handlesSet: true + }, + navigateWithinSoftTabs: {initialValue: false}, + overwrite: { + set: function(val) {this._signal("changeOverwrite");}, + initialValue: false + }, + newLineMode: { + set: function(val) {this.doc.setNewLineMode(val)}, + get: function() {return this.doc.getNewLineMode()}, + handlesSet: true + }, + mode: { + set: function(val) { this.setMode(val) }, + get: function() { return this.$modeId } + } +}); + +exports.EditSession = EditSession; +}); + +ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("./lib/lang"); +var oop = require("./lib/oop"); +var Range = require("./range").Range; + +var Search = function() { + this.$options = {}; +}; + +(function() { + this.set = function(options) { + oop.mixin(this.$options, options); + return this; + }; + this.getOptions = function() { + return lang.copyObject(this.$options); + }; + this.setOptions = function(options) { + this.$options = options; + }; + this.find = function(session) { + var options = this.$options; + var iterator = this.$matchIterator(session, options); + if (!iterator) + return false; + + var firstRange = null; + iterator.forEach(function(sr, sc, er, ec) { + firstRange = new Range(sr, sc, er, ec); + if (sc == ec && options.start && options.start.start + && options.skipCurrent != false && firstRange.isEqual(options.start) + ) { + firstRange = null; + return false; + } + + return true; + }); + + return firstRange; + }; + this.findAll = function(session) { + var options = this.$options; + if (!options.needle) + return []; + this.$assembleRegExp(options); + + var range = options.range; + var lines = range + ? session.getLines(range.start.row, range.end.row) + : session.doc.getAllLines(); + + var ranges = []; + var re = options.re; + if (options.$isMultiLine) { + var len = re.length; + var maxRow = lines.length - len; + var prevRange; + outer: for (var row = re.offset || 0; row <= maxRow; row++) { + for (var j = 0; j < len; j++) + if (lines[row + j].search(re[j]) == -1) + continue outer; + + var startLine = lines[row]; + var line = lines[row + len - 1]; + var startIndex = startLine.length - startLine.match(re[0])[0].length; + var endIndex = line.match(re[len - 1])[0].length; + + if (prevRange && prevRange.end.row === row && + prevRange.end.column > startIndex + ) { + continue; + } + ranges.push(prevRange = new Range( + row, startIndex, row + len - 1, endIndex + )); + if (len > 2) + row = row + len - 2; + } + } else { + for (var i = 0; i < lines.length; i++) { + var matches = lang.getMatchOffsets(lines[i], re); + for (var j = 0; j < matches.length; j++) { + var match = matches[j]; + ranges.push(new Range(i, match.offset, i, match.offset + match.length)); + } + } + } + + if (range) { + var startColumn = range.start.column; + var endColumn = range.start.column; + var i = 0, j = ranges.length - 1; + while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row) + i++; + + while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row) + j--; + + ranges = ranges.slice(i, j + 1); + for (i = 0, j = ranges.length; i < j; i++) { + ranges[i].start.row += range.start.row; + ranges[i].end.row += range.start.row; + } + } + + return ranges; + }; + this.replace = function(input, replacement) { + var options = this.$options; + + var re = this.$assembleRegExp(options); + if (options.$isMultiLine) + return replacement; + + if (!re) + return; + + var match = re.exec(input); + if (!match || match[0].length != input.length) + return null; + + replacement = input.replace(re, replacement); + if (options.preserveCase) { + replacement = replacement.split(""); + for (var i = Math.min(input.length, input.length); i--; ) { + var ch = input[i]; + if (ch && ch.toLowerCase() != ch) + replacement[i] = replacement[i].toUpperCase(); + else + replacement[i] = replacement[i].toLowerCase(); + } + replacement = replacement.join(""); + } + + return replacement; + }; + + this.$assembleRegExp = function(options, $disableFakeMultiline) { + if (options.needle instanceof RegExp) + return options.re = options.needle; + + var needle = options.needle; + + if (!options.needle) + return options.re = false; + + if (!options.regExp) + needle = lang.escapeRegExp(needle); + + if (options.wholeWord) + needle = addWordBoundary(needle, options); + + var modifier = options.caseSensitive ? "gm" : "gmi"; + + options.$isMultiLine = !$disableFakeMultiline && /[\n\r]/.test(needle); + if (options.$isMultiLine) + return options.re = this.$assembleMultilineRegExp(needle, modifier); + + try { + var re = new RegExp(needle, modifier); + } catch(e) { + re = false; + } + return options.re = re; + }; + + this.$assembleMultilineRegExp = function(needle, modifier) { + var parts = needle.replace(/\r\n|\r|\n/g, "$\n^").split("\n"); + var re = []; + for (var i = 0; i < parts.length; i++) try { + re.push(new RegExp(parts[i], modifier)); + } catch(e) { + return false; + } + return re; + }; + + this.$matchIterator = function(session, options) { + var re = this.$assembleRegExp(options); + if (!re) + return false; + var backwards = options.backwards == true; + var skipCurrent = options.skipCurrent != false; + + var range = options.range; + var start = options.start; + if (!start) + start = range ? range[backwards ? "end" : "start"] : session.selection.getRange(); + + if (start.start) + start = start[skipCurrent != backwards ? "end" : "start"]; + + var firstRow = range ? range.start.row : 0; + var lastRow = range ? range.end.row : session.getLength() - 1; + + if (backwards) { + var forEach = function(callback) { + var row = start.row; + if (forEachInLine(row, start.column, callback)) + return; + for (row--; row >= firstRow; row--) + if (forEachInLine(row, Number.MAX_VALUE, callback)) + return; + if (options.wrap == false) + return; + for (row = lastRow, firstRow = start.row; row >= firstRow; row--) + if (forEachInLine(row, Number.MAX_VALUE, callback)) + return; + }; + } + else { + var forEach = function(callback) { + var row = start.row; + if (forEachInLine(row, start.column, callback)) + return; + for (row = row + 1; row <= lastRow; row++) + if (forEachInLine(row, 0, callback)) + return; + if (options.wrap == false) + return; + for (row = firstRow, lastRow = start.row; row <= lastRow; row++) + if (forEachInLine(row, 0, callback)) + return; + }; + } + + if (options.$isMultiLine) { + var len = re.length; + var forEachInLine = function(row, offset, callback) { + var startRow = backwards ? row - len + 1 : row; + if (startRow < 0) return; + var line = session.getLine(startRow); + var startIndex = line.search(re[0]) + if (!backwards && startIndex < offset || startIndex === -1) return; + for (var i = 1; i < len; i++) { + line = session.getLine(startRow + i); + if (line.search(re[i]) == -1) + return; + } + var endIndex = line.match(re[len - 1])[0].length; + if (backwards && endIndex > offset) return; + if (callback(startRow, startIndex, startRow + len - 1, endIndex)) + return true; + }; + } + else if (backwards) { + var forEachInLine = function(row, endIndex, callback) { + var line = session.getLine(row); + var matches = []; + var m, last = 0; + re.lastIndex = 0; + while((m = re.exec(line))) { + var length = m[0].length; + last = m.index; + if (!length) { + if (last >= line.length) break; + re.lastIndex = last += 1; + } + if (m.index + length > endIndex) + break; + matches.push(m.index, length) + } + for (var i = matches.length - 1; i >= 0; i -= 2) { + var column = matches[i - 1]; + var length = matches[i]; + if (callback(row, column, row, column + length)) + return true; + } + }; + } + else { + var forEachInLine = function(row, startIndex, callback) { + var line = session.getLine(row); + var m; + var last = startIndex; + re.lastIndex = startIndex; + while((m = re.exec(line))) { + var length = m[0].length; + last = m.index; + if (callback(row, last, row,last + length)) + return true; + if (!length) { + re.lastIndex = last += 1; + if (last >= line.length) return false; + } + } + }; + } + return {forEach: forEach}; + }; + +}).call(Search.prototype); + +function addWordBoundary(needle, options) { + function wordBoundary(c) { + if (/\w/.test(c) || options.regExp) return "\\b"; + return ""; + } + return wordBoundary(needle[0]) + needle + + wordBoundary(needle[needle.length - 1]); +} + +exports.Search = Search; +}); + +ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var keyUtil = require("../lib/keys"); +var useragent = require("../lib/useragent"); +var KEY_MODS = keyUtil.KEY_MODS; + +function HashHandler(config, platform) { + this.platform = platform || (useragent.isMac ? "mac" : "win"); + this.commands = {}; + this.commandKeyBinding = {}; + this.addCommands(config); + this.$singleCommand = true; +} + +function MultiHashHandler(config, platform) { + HashHandler.call(this, config, platform); + this.$singleCommand = false; +} + +MultiHashHandler.prototype = HashHandler.prototype; + +(function() { + + + this.addCommand = function(command) { + if (this.commands[command.name]) + this.removeCommand(command); + + this.commands[command.name] = command; + + if (command.bindKey) + this._buildKeyHash(command); + }; + + this.removeCommand = function(command, keepCommand) { + var name = command && (typeof command === 'string' ? command : command.name); + command = this.commands[name]; + if (!keepCommand) + delete this.commands[name]; + var ckb = this.commandKeyBinding; + for (var keyId in ckb) { + var cmdGroup = ckb[keyId]; + if (cmdGroup == command) { + delete ckb[keyId]; + } else if (Array.isArray(cmdGroup)) { + var i = cmdGroup.indexOf(command); + if (i != -1) { + cmdGroup.splice(i, 1); + if (cmdGroup.length == 1) + ckb[keyId] = cmdGroup[0]; + } + } + } + }; + + this.bindKey = function(key, command, position) { + if (typeof key == "object" && key) { + if (position == undefined) + position = key.position; + key = key[this.platform]; + } + if (!key) + return; + if (typeof command == "function") + return this.addCommand({exec: command, bindKey: key, name: command.name || key}); + + key.split("|").forEach(function(keyPart) { + var chain = ""; + if (keyPart.indexOf(" ") != -1) { + var parts = keyPart.split(/\s+/); + keyPart = parts.pop(); + parts.forEach(function(keyPart) { + var binding = this.parseKeys(keyPart); + var id = KEY_MODS[binding.hashId] + binding.key; + chain += (chain ? " " : "") + id; + this._addCommandToBinding(chain, "chainKeys"); + }, this); + chain += " "; + } + var binding = this.parseKeys(keyPart); + var id = KEY_MODS[binding.hashId] + binding.key; + this._addCommandToBinding(chain + id, command, position); + }, this); + }; + + function getPosition(command) { + return typeof command == "object" && command.bindKey + && command.bindKey.position + || (command.isDefault ? -100 : 0); + } + this._addCommandToBinding = function(keyId, command, position) { + var ckb = this.commandKeyBinding, i; + if (!command) { + delete ckb[keyId]; + } else if (!ckb[keyId] || this.$singleCommand) { + ckb[keyId] = command; + } else { + if (!Array.isArray(ckb[keyId])) { + ckb[keyId] = [ckb[keyId]]; + } else if ((i = ckb[keyId].indexOf(command)) != -1) { + ckb[keyId].splice(i, 1); + } + + if (typeof position != "number") { + position = getPosition(command); + } + + var commands = ckb[keyId]; + for (i = 0; i < commands.length; i++) { + var other = commands[i]; + var otherPos = getPosition(other); + if (otherPos > position) + break; + } + commands.splice(i, 0, command); + } + }; + + this.addCommands = function(commands) { + commands && Object.keys(commands).forEach(function(name) { + var command = commands[name]; + if (!command) + return; + + if (typeof command === "string") + return this.bindKey(command, name); + + if (typeof command === "function") + command = { exec: command }; + + if (typeof command !== "object") + return; + + if (!command.name) + command.name = name; + + this.addCommand(command); + }, this); + }; + + this.removeCommands = function(commands) { + Object.keys(commands).forEach(function(name) { + this.removeCommand(commands[name]); + }, this); + }; + + this.bindKeys = function(keyList) { + Object.keys(keyList).forEach(function(key) { + this.bindKey(key, keyList[key]); + }, this); + }; + + this._buildKeyHash = function(command) { + this.bindKey(command.bindKey, command); + }; + this.parseKeys = function(keys) { + var parts = keys.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(x){return x}); + var key = parts.pop(); + + var keyCode = keyUtil[key]; + if (keyUtil.FUNCTION_KEYS[keyCode]) + key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase(); + else if (!parts.length) + return {key: key, hashId: -1}; + else if (parts.length == 1 && parts[0] == "shift") + return {key: key.toUpperCase(), hashId: -1}; + + var hashId = 0; + for (var i = parts.length; i--;) { + var modifier = keyUtil.KEY_MODS[parts[i]]; + if (modifier == null) { + if (typeof console != "undefined") + console.error("invalid modifier " + parts[i] + " in " + keys); + return false; + } + hashId |= modifier; + } + return {key: key, hashId: hashId}; + }; + + this.findKeyCommand = function findKeyCommand(hashId, keyString) { + var key = KEY_MODS[hashId] + keyString; + return this.commandKeyBinding[key]; + }; + + this.handleKeyboard = function(data, hashId, keyString, keyCode) { + if (keyCode < 0) return; + var key = KEY_MODS[hashId] + keyString; + var command = this.commandKeyBinding[key]; + if (data.$keyChain) { + data.$keyChain += " " + key; + command = this.commandKeyBinding[data.$keyChain] || command; + } + + if (command) { + if (command == "chainKeys" || command[command.length - 1] == "chainKeys") { + data.$keyChain = data.$keyChain || key; + return {command: "null"}; + } + } + + if (data.$keyChain) { + if ((!hashId || hashId == 4) && keyString.length == 1) + data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input + else if (hashId == -1 || keyCode > 0) + data.$keyChain = ""; // reset keyChain + } + return {command: command}; + }; + + this.getStatusText = function(editor, data) { + return data.$keyChain || ""; + }; + +}).call(HashHandler.prototype); + +exports.HashHandler = HashHandler; +exports.MultiHashHandler = MultiHashHandler; +}); + +ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var MultiHashHandler = require("../keyboard/hash_handler").MultiHashHandler; +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var CommandManager = function(platform, commands) { + MultiHashHandler.call(this, commands, platform); + this.byName = this.commands; + this.setDefaultHandler("exec", function(e) { + return e.command.exec(e.editor, e.args || {}); + }); +}; + +oop.inherits(CommandManager, MultiHashHandler); + +(function() { + + oop.implement(this, EventEmitter); + + this.exec = function(command, editor, args) { + if (Array.isArray(command)) { + for (var i = command.length; i--; ) { + if (this.exec(command[i], editor, args)) return true; + } + return false; + } + + if (typeof command === "string") + command = this.commands[command]; + + if (!command) + return false; + + if (editor && editor.$readOnly && !command.readOnly) + return false; + + if (command.isAvailable && !command.isAvailable(editor)) + return false; + + var e = {editor: editor, command: command, args: args}; + e.returnValue = this._emit("exec", e); + this._signal("afterExec", e); + + return e.returnValue === false ? false : true; + }; + + this.toggleRecording = function(editor) { + if (this.$inReplay) + return; + + editor && editor._emit("changeStatus"); + if (this.recording) { + this.macro.pop(); + this.removeEventListener("exec", this.$addCommandToMacro); + + if (!this.macro.length) + this.macro = this.oldMacro; + + return this.recording = false; + } + if (!this.$addCommandToMacro) { + this.$addCommandToMacro = function(e) { + this.macro.push([e.command, e.args]); + }.bind(this); + } + + this.oldMacro = this.macro; + this.macro = []; + this.on("exec", this.$addCommandToMacro); + return this.recording = true; + }; + + this.replay = function(editor) { + if (this.$inReplay || !this.macro) + return; + + if (this.recording) + return this.toggleRecording(editor); + + try { + this.$inReplay = true; + this.macro.forEach(function(x) { + if (typeof x == "string") + this.exec(x, editor); + else + this.exec(x[0], editor, x[1]); + }, this); + } finally { + this.$inReplay = false; + } + }; + + this.trimMacro = function(m) { + return m.map(function(x){ + if (typeof x[0] != "string") + x[0] = x[0].name; + if (!x[1]) + x = x[0]; + return x; + }); + }; + +}).call(CommandManager.prototype); + +exports.CommandManager = CommandManager; + +}); + +ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); +var config = require("../config"); +var Range = require("../range").Range; + +function bindKey(win, mac) { + return {win: win, mac: mac}; +} +exports.commands = [{ + name: "showSettingsMenu", + bindKey: bindKey("Ctrl-,", "Command-,"), + exec: function(editor) { + config.loadModule("ace/ext/settings_menu", function(module) { + module.init(editor); + editor.showSettingsMenu(); + }); + }, + readOnly: true +}, { + name: "goToNextError", + bindKey: bindKey("Alt-E", "F4"), + exec: function(editor) { + config.loadModule("ace/ext/error_marker", function(module) { + module.showErrorMarker(editor, 1); + }); + }, + scrollIntoView: "animate", + readOnly: true +}, { + name: "goToPreviousError", + bindKey: bindKey("Alt-Shift-E", "Shift-F4"), + exec: function(editor) { + config.loadModule("ace/ext/error_marker", function(module) { + module.showErrorMarker(editor, -1); + }); + }, + scrollIntoView: "animate", + readOnly: true +}, { + name: "selectall", + bindKey: bindKey("Ctrl-A", "Command-A"), + exec: function(editor) { editor.selectAll(); }, + readOnly: true +}, { + name: "centerselection", + bindKey: bindKey(null, "Ctrl-L"), + exec: function(editor) { editor.centerSelection(); }, + readOnly: true +}, { + name: "gotoline", + bindKey: bindKey("Ctrl-L", "Command-L"), + exec: function(editor) { + var line = parseInt(prompt("Enter line number:"), 10); + if (!isNaN(line)) { + editor.gotoLine(line); + } + }, + readOnly: true +}, { + name: "fold", + bindKey: bindKey("Alt-L|Ctrl-F1", "Command-Alt-L|Command-F1"), + exec: function(editor) { editor.session.toggleFold(false); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "unfold", + bindKey: bindKey("Alt-Shift-L|Ctrl-Shift-F1", "Command-Alt-Shift-L|Command-Shift-F1"), + exec: function(editor) { editor.session.toggleFold(true); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "toggleFoldWidget", + bindKey: bindKey("F2", "F2"), + exec: function(editor) { editor.session.toggleFoldWidget(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "toggleParentFoldWidget", + bindKey: bindKey("Alt-F2", "Alt-F2"), + exec: function(editor) { editor.session.toggleFoldWidget(true); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "foldall", + bindKey: bindKey(null, "Ctrl-Command-Option-0"), + exec: function(editor) { editor.session.foldAll(); }, + scrollIntoView: "center", + readOnly: true +}, { + name: "foldOther", + bindKey: bindKey("Alt-0", "Command-Option-0"), + exec: function(editor) { + editor.session.foldAll(); + editor.session.unfold(editor.selection.getAllRanges()); + }, + scrollIntoView: "center", + readOnly: true +}, { + name: "unfoldall", + bindKey: bindKey("Alt-Shift-0", "Command-Option-Shift-0"), + exec: function(editor) { editor.session.unfold(); }, + scrollIntoView: "center", + readOnly: true +}, { + name: "findnext", + bindKey: bindKey("Ctrl-K", "Command-G"), + exec: function(editor) { editor.findNext(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "findprevious", + bindKey: bindKey("Ctrl-Shift-K", "Command-Shift-G"), + exec: function(editor) { editor.findPrevious(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "selectOrFindNext", + bindKey: bindKey("Alt-K", "Ctrl-G"), + exec: function(editor) { + if (editor.selection.isEmpty()) + editor.selection.selectWord(); + else + editor.findNext(); + }, + readOnly: true +}, { + name: "selectOrFindPrevious", + bindKey: bindKey("Alt-Shift-K", "Ctrl-Shift-G"), + exec: function(editor) { + if (editor.selection.isEmpty()) + editor.selection.selectWord(); + else + editor.findPrevious(); + }, + readOnly: true +}, { + name: "find", + bindKey: bindKey("Ctrl-F", "Command-F"), + exec: function(editor) { + config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor)}); + }, + readOnly: true +}, { + name: "overwrite", + bindKey: "Insert", + exec: function(editor) { editor.toggleOverwrite(); }, + readOnly: true +}, { + name: "selecttostart", + bindKey: bindKey("Ctrl-Shift-Home", "Command-Shift-Home|Command-Shift-Up"), + exec: function(editor) { editor.getSelection().selectFileStart(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "gotostart", + bindKey: bindKey("Ctrl-Home", "Command-Home|Command-Up"), + exec: function(editor) { editor.navigateFileStart(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "selectup", + bindKey: bindKey("Shift-Up", "Shift-Up|Ctrl-Shift-P"), + exec: function(editor) { editor.getSelection().selectUp(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "golineup", + bindKey: bindKey("Up", "Up|Ctrl-P"), + exec: function(editor, args) { editor.navigateUp(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttoend", + bindKey: bindKey("Ctrl-Shift-End", "Command-Shift-End|Command-Shift-Down"), + exec: function(editor) { editor.getSelection().selectFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "gotoend", + bindKey: bindKey("Ctrl-End", "Command-End|Command-Down"), + exec: function(editor) { editor.navigateFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "selectdown", + bindKey: bindKey("Shift-Down", "Shift-Down|Ctrl-Shift-N"), + exec: function(editor) { editor.getSelection().selectDown(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "golinedown", + bindKey: bindKey("Down", "Down|Ctrl-N"), + exec: function(editor, args) { editor.navigateDown(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectwordleft", + bindKey: bindKey("Ctrl-Shift-Left", "Option-Shift-Left"), + exec: function(editor) { editor.getSelection().selectWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotowordleft", + bindKey: bindKey("Ctrl-Left", "Option-Left"), + exec: function(editor) { editor.navigateWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttolinestart", + bindKey: bindKey("Alt-Shift-Left", "Command-Shift-Left|Ctrl-Shift-A"), + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotolinestart", + bindKey: bindKey("Alt-Left|Home", "Command-Left|Home|Ctrl-A"), + exec: function(editor) { editor.navigateLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectleft", + bindKey: bindKey("Shift-Left", "Shift-Left|Ctrl-Shift-B"), + exec: function(editor) { editor.getSelection().selectLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotoleft", + bindKey: bindKey("Left", "Left|Ctrl-B"), + exec: function(editor, args) { editor.navigateLeft(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectwordright", + bindKey: bindKey("Ctrl-Shift-Right", "Option-Shift-Right"), + exec: function(editor) { editor.getSelection().selectWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotowordright", + bindKey: bindKey("Ctrl-Right", "Option-Right"), + exec: function(editor) { editor.navigateWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttolineend", + bindKey: bindKey("Alt-Shift-Right", "Command-Shift-Right|Shift-End|Ctrl-Shift-E"), + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotolineend", + bindKey: bindKey("Alt-Right|End", "Command-Right|End|Ctrl-E"), + exec: function(editor) { editor.navigateLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectright", + bindKey: bindKey("Shift-Right", "Shift-Right"), + exec: function(editor) { editor.getSelection().selectRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotoright", + bindKey: bindKey("Right", "Right|Ctrl-F"), + exec: function(editor, args) { editor.navigateRight(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectpagedown", + bindKey: "Shift-PageDown", + exec: function(editor) { editor.selectPageDown(); }, + readOnly: true +}, { + name: "pagedown", + bindKey: bindKey(null, "Option-PageDown"), + exec: function(editor) { editor.scrollPageDown(); }, + readOnly: true +}, { + name: "gotopagedown", + bindKey: bindKey("PageDown", "PageDown|Ctrl-V"), + exec: function(editor) { editor.gotoPageDown(); }, + readOnly: true +}, { + name: "selectpageup", + bindKey: "Shift-PageUp", + exec: function(editor) { editor.selectPageUp(); }, + readOnly: true +}, { + name: "pageup", + bindKey: bindKey(null, "Option-PageUp"), + exec: function(editor) { editor.scrollPageUp(); }, + readOnly: true +}, { + name: "gotopageup", + bindKey: "PageUp", + exec: function(editor) { editor.gotoPageUp(); }, + readOnly: true +}, { + name: "scrollup", + bindKey: bindKey("Ctrl-Up", null), + exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); }, + readOnly: true +}, { + name: "scrolldown", + bindKey: bindKey("Ctrl-Down", null), + exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); }, + readOnly: true +}, { + name: "selectlinestart", + bindKey: "Shift-Home", + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectlineend", + bindKey: "Shift-End", + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "togglerecording", + bindKey: bindKey("Ctrl-Alt-E", "Command-Option-E"), + exec: function(editor) { editor.commands.toggleRecording(editor); }, + readOnly: true +}, { + name: "replaymacro", + bindKey: bindKey("Ctrl-Shift-E", "Command-Shift-E"), + exec: function(editor) { editor.commands.replay(editor); }, + readOnly: true +}, { + name: "jumptomatching", + bindKey: bindKey("Ctrl-P", "Ctrl-P"), + exec: function(editor) { editor.jumpToMatching(); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "selecttomatching", + bindKey: bindKey("Ctrl-Shift-P", "Ctrl-Shift-P"), + exec: function(editor) { editor.jumpToMatching(true); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "expandToMatching", + bindKey: bindKey("Ctrl-Shift-M", "Ctrl-Shift-M"), + exec: function(editor) { editor.jumpToMatching(true, true); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "passKeysToBrowser", + bindKey: bindKey(null, null), + exec: function() {}, + passEvent: true, + readOnly: true +}, { + name: "copy", + exec: function(editor) { + }, + readOnly: true +}, +{ + name: "cut", + exec: function(editor) { + var range = editor.getSelectionRange(); + editor._emit("cut", range); + + if (!editor.selection.isEmpty()) { + editor.session.remove(range); + editor.clearSelection(); + } + }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "paste", + exec: function(editor, args) { + editor.$handlePaste(args); + }, + scrollIntoView: "cursor" +}, { + name: "removeline", + bindKey: bindKey("Ctrl-D", "Command-D"), + exec: function(editor) { editor.removeLines(); }, + scrollIntoView: "cursor", + multiSelectAction: "forEachLine" +}, { + name: "duplicateSelection", + bindKey: bindKey("Ctrl-Shift-D", "Command-Shift-D"), + exec: function(editor) { editor.duplicateSelection(); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "sortlines", + bindKey: bindKey("Ctrl-Alt-S", "Command-Alt-S"), + exec: function(editor) { editor.sortLines(); }, + scrollIntoView: "selection", + multiSelectAction: "forEachLine" +}, { + name: "togglecomment", + bindKey: bindKey("Ctrl-/", "Command-/"), + exec: function(editor) { editor.toggleCommentLines(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "toggleBlockComment", + bindKey: bindKey("Ctrl-Shift-/", "Command-Shift-/"), + exec: function(editor) { editor.toggleBlockComment(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "modifyNumberUp", + bindKey: bindKey("Ctrl-Shift-Up", "Alt-Shift-Up"), + exec: function(editor) { editor.modifyNumber(1); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "modifyNumberDown", + bindKey: bindKey("Ctrl-Shift-Down", "Alt-Shift-Down"), + exec: function(editor) { editor.modifyNumber(-1); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "replace", + bindKey: bindKey("Ctrl-H", "Command-Option-F"), + exec: function(editor) { + config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor, true)}); + } +}, { + name: "undo", + bindKey: bindKey("Ctrl-Z", "Command-Z"), + exec: function(editor) { editor.undo(); } +}, { + name: "redo", + bindKey: bindKey("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"), + exec: function(editor) { editor.redo(); } +}, { + name: "copylinesup", + bindKey: bindKey("Alt-Shift-Up", "Command-Option-Up"), + exec: function(editor) { editor.copyLinesUp(); }, + scrollIntoView: "cursor" +}, { + name: "movelinesup", + bindKey: bindKey("Alt-Up", "Option-Up"), + exec: function(editor) { editor.moveLinesUp(); }, + scrollIntoView: "cursor" +}, { + name: "copylinesdown", + bindKey: bindKey("Alt-Shift-Down", "Command-Option-Down"), + exec: function(editor) { editor.copyLinesDown(); }, + scrollIntoView: "cursor" +}, { + name: "movelinesdown", + bindKey: bindKey("Alt-Down", "Option-Down"), + exec: function(editor) { editor.moveLinesDown(); }, + scrollIntoView: "cursor" +}, { + name: "del", + bindKey: bindKey("Delete", "Delete|Ctrl-D|Shift-Delete"), + exec: function(editor) { editor.remove("right"); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "backspace", + bindKey: bindKey( + "Shift-Backspace|Backspace", + "Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H" + ), + exec: function(editor) { editor.remove("left"); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "cut_or_delete", + bindKey: bindKey("Shift-Delete", null), + exec: function(editor) { + if (editor.selection.isEmpty()) { + editor.remove("left"); + } else { + return false; + } + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolinestart", + bindKey: bindKey("Alt-Backspace", "Command-Backspace"), + exec: function(editor) { editor.removeToLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolineend", + bindKey: bindKey("Alt-Delete", "Ctrl-K"), + exec: function(editor) { editor.removeToLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removewordleft", + bindKey: bindKey("Ctrl-Backspace", "Alt-Backspace|Ctrl-Alt-Backspace"), + exec: function(editor) { editor.removeWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removewordright", + bindKey: bindKey("Ctrl-Delete", "Alt-Delete"), + exec: function(editor) { editor.removeWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "outdent", + bindKey: bindKey("Shift-Tab", "Shift-Tab"), + exec: function(editor) { editor.blockOutdent(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "indent", + bindKey: bindKey("Tab", "Tab"), + exec: function(editor) { editor.indent(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "blockoutdent", + bindKey: bindKey("Ctrl-[", "Ctrl-["), + exec: function(editor) { editor.blockOutdent(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "blockindent", + bindKey: bindKey("Ctrl-]", "Ctrl-]"), + exec: function(editor) { editor.blockIndent(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "insertstring", + exec: function(editor, str) { editor.insert(str); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "inserttext", + exec: function(editor, args) { + editor.insert(lang.stringRepeat(args.text || "", args.times || 1)); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "splitline", + bindKey: bindKey(null, "Ctrl-O"), + exec: function(editor) { editor.splitLine(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "transposeletters", + bindKey: bindKey("Alt-Shift-X", "Ctrl-T"), + exec: function(editor) { editor.transposeLetters(); }, + multiSelectAction: function(editor) {editor.transposeSelections(1); }, + scrollIntoView: "cursor" +}, { + name: "touppercase", + bindKey: bindKey("Ctrl-U", "Ctrl-U"), + exec: function(editor) { editor.toUpperCase(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "tolowercase", + bindKey: bindKey("Ctrl-Shift-U", "Ctrl-Shift-U"), + exec: function(editor) { editor.toLowerCase(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "expandtoline", + bindKey: bindKey("Ctrl-Shift-L", "Command-Shift-L"), + exec: function(editor) { + var range = editor.selection.getRange(); + + range.start.column = range.end.column = 0; + range.end.row++; + editor.selection.setRange(range, false); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "joinlines", + bindKey: bindKey(null, null), + exec: function(editor) { + var isBackwards = editor.selection.isBackwards(); + var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor(); + var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead(); + var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length; + var selectedText = editor.session.doc.getTextRange(editor.selection.getRange()); + var selectedCount = selectedText.replace(/\n\s*/, " ").length; + var insertLine = editor.session.doc.getLine(selectionStart.row); + + for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) { + var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i))); + if (curLine.length !== 0) { + curLine = " " + curLine; + } + insertLine += curLine; + } + + if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) { + insertLine += editor.session.doc.getNewLineCharacter(); + } + + editor.clearSelection(); + editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine); + + if (selectedCount > 0) { + editor.selection.moveCursorTo(selectionStart.row, selectionStart.column); + editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount); + } else { + firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol; + editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol); + } + }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "invertSelection", + bindKey: bindKey(null, null), + exec: function(editor) { + var endRow = editor.session.doc.getLength() - 1; + var endCol = editor.session.doc.getLine(endRow).length; + var ranges = editor.selection.rangeList.ranges; + var newRanges = []; + if (ranges.length < 1) { + ranges = [editor.selection.getRange()]; + } + + for (var i = 0; i < ranges.length; i++) { + if (i == (ranges.length - 1)) { + if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) { + newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol)); + } + } + + if (i === 0) { + if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) { + newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column)); + } + } else { + newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column)); + } + } + + editor.exitMultiSelectMode(); + editor.clearSelection(); + + for(var i = 0; i < newRanges.length; i++) { + editor.selection.addRange(newRanges[i], false); + } + }, + readOnly: true, + scrollIntoView: "none" +}]; + +}); + +ace.define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +require("./lib/fixoldbrowsers"); + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var lang = require("./lib/lang"); +var useragent = require("./lib/useragent"); +var TextInput = require("./keyboard/textinput").TextInput; +var MouseHandler = require("./mouse/mouse_handler").MouseHandler; +var FoldHandler = require("./mouse/fold_handler").FoldHandler; +var KeyBinding = require("./keyboard/keybinding").KeyBinding; +var EditSession = require("./edit_session").EditSession; +var Search = require("./search").Search; +var Range = require("./range").Range; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var CommandManager = require("./commands/command_manager").CommandManager; +var defaultCommands = require("./commands/default_commands").commands; +var config = require("./config"); +var TokenIterator = require("./token_iterator").TokenIterator; +var Editor = function(renderer, session) { + var container = renderer.getContainerElement(); + this.container = container; + this.renderer = renderer; + this.id = "editor" + (++Editor.$uid); + + this.commands = new CommandManager(useragent.isMac ? "mac" : "win", defaultCommands); + if (typeof document == "object") { + this.textInput = new TextInput(renderer.getTextAreaContainer(), this); + this.renderer.textarea = this.textInput.getElement(); + this.$mouseHandler = new MouseHandler(this); + new FoldHandler(this); + } + + this.keyBinding = new KeyBinding(this); + + this.$blockScrolling = 0; + this.$search = new Search().set({ + wrap: true + }); + + this.$historyTracker = this.$historyTracker.bind(this); + this.commands.on("exec", this.$historyTracker); + + this.$initOperationListeners(); + + this._$emitInputEvent = lang.delayedCall(function() { + this._signal("input", {}); + if (this.session && this.session.bgTokenizer) + this.session.bgTokenizer.scheduleStart(); + }.bind(this)); + + this.on("change", function(_, _self) { + _self._$emitInputEvent.schedule(31); + }); + + this.setSession(session || new EditSession("")); + config.resetOptions(this); + config._signal("editor", this); +}; + +Editor.$uid = 0; + +(function(){ + + oop.implement(this, EventEmitter); + + this.$initOperationListeners = function() { + function last(a) {return a[a.length - 1]} + + this.selections = []; + this.commands.on("exec", this.startOperation.bind(this), true); + this.commands.on("afterExec", this.endOperation.bind(this), true); + + this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this)); + + this.on("change", function() { + this.curOp || this.startOperation(); + this.curOp.docChanged = true; + }.bind(this), true); + + this.on("changeSelection", function() { + this.curOp || this.startOperation(); + this.curOp.selectionChanged = true; + }.bind(this), true); + }; + + this.curOp = null; + this.prevOp = {}; + this.startOperation = function(commadEvent) { + if (this.curOp) { + if (!commadEvent || this.curOp.command) + return; + this.prevOp = this.curOp; + } + if (!commadEvent) { + this.previousCommand = null; + commadEvent = {}; + } + + this.$opResetTimer.schedule(); + this.curOp = { + command: commadEvent.command || {}, + args: commadEvent.args, + scrollTop: this.renderer.scrollTop + }; + if (this.curOp.command.name && this.curOp.command.scrollIntoView !== undefined) + this.$blockScrolling++; + }; + + this.endOperation = function(e) { + if (this.curOp) { + if (e && e.returnValue === false) + return this.curOp = null; + this._signal("beforeEndOperation"); + var command = this.curOp.command; + if (command.name && this.$blockScrolling > 0) + this.$blockScrolling--; + var scrollIntoView = command && command.scrollIntoView; + if (scrollIntoView) { + switch (scrollIntoView) { + case "center-animate": + scrollIntoView = "animate"; + case "center": + this.renderer.scrollCursorIntoView(null, 0.5); + break; + case "animate": + case "cursor": + this.renderer.scrollCursorIntoView(); + break; + case "selectionPart": + var range = this.selection.getRange(); + var config = this.renderer.layerConfig; + if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) { + this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead); + } + break; + default: + break; + } + if (scrollIntoView == "animate") + this.renderer.animateScrolling(this.curOp.scrollTop); + } + + this.prevOp = this.curOp; + this.curOp = null; + } + }; + this.$mergeableCommands = ["backspace", "del", "insertstring"]; + this.$historyTracker = function(e) { + if (!this.$mergeUndoDeltas) + return; + + var prev = this.prevOp; + var mergeableCommands = this.$mergeableCommands; + var shouldMerge = prev.command && (e.command.name == prev.command.name); + if (e.command.name == "insertstring") { + var text = e.args; + if (this.mergeNextCommand === undefined) + this.mergeNextCommand = true; + + shouldMerge = shouldMerge + && this.mergeNextCommand // previous command allows to coalesce with + && (!/\s/.test(text) || /\s/.test(prev.args)); // previous insertion was of same type + + this.mergeNextCommand = true; + } else { + shouldMerge = shouldMerge + && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable + } + + if ( + this.$mergeUndoDeltas != "always" + && Date.now() - this.sequenceStartTime > 2000 + ) { + shouldMerge = false; // the sequence is too long + } + + if (shouldMerge) + this.session.mergeUndoDeltas = true; + else if (mergeableCommands.indexOf(e.command.name) !== -1) + this.sequenceStartTime = Date.now(); + }; + this.setKeyboardHandler = function(keyboardHandler, cb) { + if (keyboardHandler && typeof keyboardHandler === "string") { + this.$keybindingId = keyboardHandler; + var _self = this; + config.loadModule(["keybinding", keyboardHandler], function(module) { + if (_self.$keybindingId == keyboardHandler) + _self.keyBinding.setKeyboardHandler(module && module.handler); + cb && cb(); + }); + } else { + this.$keybindingId = null; + this.keyBinding.setKeyboardHandler(keyboardHandler); + cb && cb(); + } + }; + this.getKeyboardHandler = function() { + return this.keyBinding.getKeyboardHandler(); + }; + this.setSession = function(session) { + if (this.session == session) + return; + if (this.curOp) this.endOperation(); + this.curOp = {}; + + var oldSession = this.session; + if (oldSession) { + this.session.off("change", this.$onDocumentChange); + this.session.off("changeMode", this.$onChangeMode); + this.session.off("tokenizerUpdate", this.$onTokenizerUpdate); + this.session.off("changeTabSize", this.$onChangeTabSize); + this.session.off("changeWrapLimit", this.$onChangeWrapLimit); + this.session.off("changeWrapMode", this.$onChangeWrapMode); + this.session.off("changeFold", this.$onChangeFold); + this.session.off("changeFrontMarker", this.$onChangeFrontMarker); + this.session.off("changeBackMarker", this.$onChangeBackMarker); + this.session.off("changeBreakpoint", this.$onChangeBreakpoint); + this.session.off("changeAnnotation", this.$onChangeAnnotation); + this.session.off("changeOverwrite", this.$onCursorChange); + this.session.off("changeScrollTop", this.$onScrollTopChange); + this.session.off("changeScrollLeft", this.$onScrollLeftChange); + + var selection = this.session.getSelection(); + selection.off("changeCursor", this.$onCursorChange); + selection.off("changeSelection", this.$onSelectionChange); + } + + this.session = session; + if (session) { + this.$onDocumentChange = this.onDocumentChange.bind(this); + session.on("change", this.$onDocumentChange); + this.renderer.setSession(session); + + this.$onChangeMode = this.onChangeMode.bind(this); + session.on("changeMode", this.$onChangeMode); + + this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this); + session.on("tokenizerUpdate", this.$onTokenizerUpdate); + + this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer); + session.on("changeTabSize", this.$onChangeTabSize); + + this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this); + session.on("changeWrapLimit", this.$onChangeWrapLimit); + + this.$onChangeWrapMode = this.onChangeWrapMode.bind(this); + session.on("changeWrapMode", this.$onChangeWrapMode); + + this.$onChangeFold = this.onChangeFold.bind(this); + session.on("changeFold", this.$onChangeFold); + + this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this); + this.session.on("changeFrontMarker", this.$onChangeFrontMarker); + + this.$onChangeBackMarker = this.onChangeBackMarker.bind(this); + this.session.on("changeBackMarker", this.$onChangeBackMarker); + + this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this); + this.session.on("changeBreakpoint", this.$onChangeBreakpoint); + + this.$onChangeAnnotation = this.onChangeAnnotation.bind(this); + this.session.on("changeAnnotation", this.$onChangeAnnotation); + + this.$onCursorChange = this.onCursorChange.bind(this); + this.session.on("changeOverwrite", this.$onCursorChange); + + this.$onScrollTopChange = this.onScrollTopChange.bind(this); + this.session.on("changeScrollTop", this.$onScrollTopChange); + + this.$onScrollLeftChange = this.onScrollLeftChange.bind(this); + this.session.on("changeScrollLeft", this.$onScrollLeftChange); + + this.selection = session.getSelection(); + this.selection.on("changeCursor", this.$onCursorChange); + + this.$onSelectionChange = this.onSelectionChange.bind(this); + this.selection.on("changeSelection", this.$onSelectionChange); + + this.onChangeMode(); + + this.$blockScrolling += 1; + this.onCursorChange(); + this.$blockScrolling -= 1; + + this.onScrollTopChange(); + this.onScrollLeftChange(); + this.onSelectionChange(); + this.onChangeFrontMarker(); + this.onChangeBackMarker(); + this.onChangeBreakpoint(); + this.onChangeAnnotation(); + this.session.getUseWrapMode() && this.renderer.adjustWrapLimit(); + this.renderer.updateFull(); + } else { + this.selection = null; + this.renderer.setSession(session); + } + + this._signal("changeSession", { + session: session, + oldSession: oldSession + }); + + this.curOp = null; + + oldSession && oldSession._signal("changeEditor", {oldEditor: this}); + session && session._signal("changeEditor", {editor: this}); + + if (session && session.bgTokenizer) + session.bgTokenizer.scheduleStart(); + }; + this.getSession = function() { + return this.session; + }; + this.setValue = function(val, cursorPos) { + this.session.doc.setValue(val); + + if (!cursorPos) + this.selectAll(); + else if (cursorPos == 1) + this.navigateFileEnd(); + else if (cursorPos == -1) + this.navigateFileStart(); + + return val; + }; + this.getValue = function() { + return this.session.getValue(); + }; + this.getSelection = function() { + return this.selection; + }; + this.resize = function(force) { + this.renderer.onResize(force); + }; + this.setTheme = function(theme, cb) { + this.renderer.setTheme(theme, cb); + }; + this.getTheme = function() { + return this.renderer.getTheme(); + }; + this.setStyle = function(style) { + this.renderer.setStyle(style); + }; + this.unsetStyle = function(style) { + this.renderer.unsetStyle(style); + }; + this.getFontSize = function () { + return this.getOption("fontSize") || + dom.computedStyle(this.container, "fontSize"); + }; + this.setFontSize = function(size) { + this.setOption("fontSize", size); + }; + + this.$highlightBrackets = function() { + if (this.session.$bracketHighlight) { + this.session.removeMarker(this.session.$bracketHighlight); + this.session.$bracketHighlight = null; + } + + if (this.$highlightPending) { + return; + } + var self = this; + this.$highlightPending = true; + setTimeout(function() { + self.$highlightPending = false; + var session = self.session; + if (!session || !session.bgTokenizer) return; + var pos = session.findMatchingBracket(self.getCursorPosition()); + if (pos) { + var range = new Range(pos.row, pos.column, pos.row, pos.column + 1); + } else if (session.$mode.getMatching) { + var range = session.$mode.getMatching(self.session); + } + if (range) + session.$bracketHighlight = session.addMarker(range, "ace_bracket", "text"); + }, 50); + }; + this.$highlightTags = function() { + if (this.$highlightTagPending) + return; + var self = this; + this.$highlightTagPending = true; + setTimeout(function() { + self.$highlightTagPending = false; + + var session = self.session; + if (!session || !session.bgTokenizer) return; + + var pos = self.getCursorPosition(); + var iterator = new TokenIterator(self.session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + + if (!token || !/\b(?:tag-open|tag-name)/.test(token.type)) { + session.removeMarker(session.$tagHighlight); + session.$tagHighlight = null; + return; + } + + if (token.type.indexOf("tag-open") != -1) { + token = iterator.stepForward(); + if (!token) + return; + } + + var tag = token.value; + var depth = 0; + var prevToken = iterator.stepBackward(); + + if (prevToken.value == '<'){ + do { + prevToken = token; + token = iterator.stepForward(); + + if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) { + if (prevToken.value === '<'){ + depth++; + } else if (prevToken.value === '= 0); + } else { + do { + token = prevToken; + prevToken = iterator.stepBackward(); + + if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) { + if (prevToken.value === '<') { + depth++; + } else if (prevToken.value === ' 1)) + highlight = false; + } + + if (session.$highlightLineMarker && !highlight) { + session.removeMarker(session.$highlightLineMarker.id); + session.$highlightLineMarker = null; + } else if (!session.$highlightLineMarker && highlight) { + var range = new Range(highlight.row, highlight.column, highlight.row, Infinity); + range.id = session.addMarker(range, "ace_active-line", "screenLine"); + session.$highlightLineMarker = range; + } else if (highlight) { + session.$highlightLineMarker.start.row = highlight.row; + session.$highlightLineMarker.end.row = highlight.row; + session.$highlightLineMarker.start.column = highlight.column; + session._signal("changeBackMarker"); + } + }; + + this.onSelectionChange = function(e) { + var session = this.session; + + if (session.$selectionMarker) { + session.removeMarker(session.$selectionMarker); + } + session.$selectionMarker = null; + + if (!this.selection.isEmpty()) { + var range = this.selection.getRange(); + var style = this.getSelectionStyle(); + session.$selectionMarker = session.addMarker(range, "ace_selection", style); + } else { + this.$updateHighlightActiveLine(); + } + + var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp(); + this.session.highlight(re); + + this._signal("changeSelection"); + }; + + this.$getSelectionHighLightRegexp = function() { + var session = this.session; + + var selection = this.getSelectionRange(); + if (selection.isEmpty() || selection.isMultiLine()) + return; + + var startOuter = selection.start.column - 1; + var endOuter = selection.end.column + 1; + var line = session.getLine(selection.start.row); + var lineCols = line.length; + var needle = line.substring(Math.max(startOuter, 0), + Math.min(endOuter, lineCols)); + if ((startOuter >= 0 && /^[\w\d]/.test(needle)) || + (endOuter <= lineCols && /[\w\d]$/.test(needle))) + return; + + needle = line.substring(selection.start.column, selection.end.column); + if (!/^[\w\d]+$/.test(needle)) + return; + + var re = this.$search.$assembleRegExp({ + wholeWord: true, + caseSensitive: true, + needle: needle + }); + + return re; + }; + + + this.onChangeFrontMarker = function() { + this.renderer.updateFrontMarkers(); + }; + + this.onChangeBackMarker = function() { + this.renderer.updateBackMarkers(); + }; + + + this.onChangeBreakpoint = function() { + this.renderer.updateBreakpoints(); + }; + + this.onChangeAnnotation = function() { + this.renderer.setAnnotations(this.session.getAnnotations()); + }; + + + this.onChangeMode = function(e) { + this.renderer.updateText(); + this._emit("changeMode", e); + }; + + + this.onChangeWrapLimit = function() { + this.renderer.updateFull(); + }; + + this.onChangeWrapMode = function() { + this.renderer.onResize(true); + }; + + + this.onChangeFold = function() { + this.$updateHighlightActiveLine(); + this.renderer.updateFull(); + }; + this.getSelectedText = function() { + return this.session.getTextRange(this.getSelectionRange()); + }; + this.getCopyText = function() { + var text = this.getSelectedText(); + this._signal("copy", text); + return text; + }; + this.onCopy = function() { + this.commands.exec("copy", this); + }; + this.onCut = function() { + this.commands.exec("cut", this); + }; + this.onPaste = function(text, event) { + var e = {text: text, event: event}; + this.commands.exec("paste", this, e); + }; + + this.$handlePaste = function(e) { + if (typeof e == "string") + e = {text: e}; + this._signal("paste", e); + var text = e.text; + if (!this.inMultiSelectMode || this.inVirtualSelectionMode) { + this.insert(text); + } else { + var lines = text.split(/\r\n|\r|\n/); + var ranges = this.selection.rangeList.ranges; + + if (lines.length > ranges.length || lines.length < 2 || !lines[1]) + return this.commands.exec("insertstring", this, text); + + for (var i = ranges.length; i--;) { + var range = ranges[i]; + if (!range.isEmpty()) + this.session.remove(range); + + this.session.insert(range.start, lines[i]); + } + } + }; + + this.execCommand = function(command, args) { + return this.commands.exec(command, this, args); + }; + this.insert = function(text, pasted) { + var session = this.session; + var mode = session.getMode(); + var cursor = this.getCursorPosition(); + + if (this.getBehavioursEnabled() && !pasted) { + var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text); + if (transform) { + if (text !== transform.text) { + this.session.mergeUndoDeltas = false; + this.$mergeNextCommand = false; + } + text = transform.text; + + } + } + + if (text == "\t") + text = this.session.getTabString(); + if (!this.selection.isEmpty()) { + var range = this.getSelectionRange(); + cursor = this.session.remove(range); + this.clearSelection(); + } + else if (this.session.getOverwrite() && text.indexOf("\n") == -1) { + var range = new Range.fromPoints(cursor, cursor); + range.end.column += text.length; + this.session.remove(range); + } + + if (text == "\n" || text == "\r\n") { + var line = session.getLine(cursor.row); + if (cursor.column > line.search(/\S|$/)) { + var d = line.substr(cursor.column).search(/\S|$/); + session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d); + } + } + this.clearSelection(); + + var start = cursor.column; + var lineState = session.getState(cursor.row); + var line = session.getLine(cursor.row); + var shouldOutdent = mode.checkOutdent(lineState, line, text); + var end = session.insert(cursor, text); + + if (transform && transform.selection) { + if (transform.selection.length == 2) { // Transform relative to the current column + this.selection.setSelectionRange( + new Range(cursor.row, start + transform.selection[0], + cursor.row, start + transform.selection[1])); + } else { // Transform relative to the current row. + this.selection.setSelectionRange( + new Range(cursor.row + transform.selection[0], + transform.selection[1], + cursor.row + transform.selection[2], + transform.selection[3])); + } + } + + if (session.getDocument().isNewLine(text)) { + var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString()); + + session.insert({row: cursor.row+1, column: 0}, lineIndent); + } + if (shouldOutdent) + mode.autoOutdent(lineState, session, cursor.row); + }; + + this.onTextInput = function(text) { + this.keyBinding.onTextInput(text); + }; + + this.onCommandKey = function(e, hashId, keyCode) { + this.keyBinding.onCommandKey(e, hashId, keyCode); + }; + this.setOverwrite = function(overwrite) { + this.session.setOverwrite(overwrite); + }; + this.getOverwrite = function() { + return this.session.getOverwrite(); + }; + this.toggleOverwrite = function() { + this.session.toggleOverwrite(); + }; + this.setScrollSpeed = function(speed) { + this.setOption("scrollSpeed", speed); + }; + this.getScrollSpeed = function() { + return this.getOption("scrollSpeed"); + }; + this.setDragDelay = function(dragDelay) { + this.setOption("dragDelay", dragDelay); + }; + this.getDragDelay = function() { + return this.getOption("dragDelay"); + }; + this.setSelectionStyle = function(val) { + this.setOption("selectionStyle", val); + }; + this.getSelectionStyle = function() { + return this.getOption("selectionStyle"); + }; + this.setHighlightActiveLine = function(shouldHighlight) { + this.setOption("highlightActiveLine", shouldHighlight); + }; + this.getHighlightActiveLine = function() { + return this.getOption("highlightActiveLine"); + }; + this.setHighlightGutterLine = function(shouldHighlight) { + this.setOption("highlightGutterLine", shouldHighlight); + }; + + this.getHighlightGutterLine = function() { + return this.getOption("highlightGutterLine"); + }; + this.setHighlightSelectedWord = function(shouldHighlight) { + this.setOption("highlightSelectedWord", shouldHighlight); + }; + this.getHighlightSelectedWord = function() { + return this.$highlightSelectedWord; + }; + + this.setAnimatedScroll = function(shouldAnimate){ + this.renderer.setAnimatedScroll(shouldAnimate); + }; + + this.getAnimatedScroll = function(){ + return this.renderer.getAnimatedScroll(); + }; + this.setShowInvisibles = function(showInvisibles) { + this.renderer.setShowInvisibles(showInvisibles); + }; + this.getShowInvisibles = function() { + return this.renderer.getShowInvisibles(); + }; + + this.setDisplayIndentGuides = function(display) { + this.renderer.setDisplayIndentGuides(display); + }; + + this.getDisplayIndentGuides = function() { + return this.renderer.getDisplayIndentGuides(); + }; + this.setShowPrintMargin = function(showPrintMargin) { + this.renderer.setShowPrintMargin(showPrintMargin); + }; + this.getShowPrintMargin = function() { + return this.renderer.getShowPrintMargin(); + }; + this.setPrintMarginColumn = function(showPrintMargin) { + this.renderer.setPrintMarginColumn(showPrintMargin); + }; + this.getPrintMarginColumn = function() { + return this.renderer.getPrintMarginColumn(); + }; + this.setReadOnly = function(readOnly) { + this.setOption("readOnly", readOnly); + }; + this.getReadOnly = function() { + return this.getOption("readOnly"); + }; + this.setBehavioursEnabled = function (enabled) { + this.setOption("behavioursEnabled", enabled); + }; + this.getBehavioursEnabled = function () { + return this.getOption("behavioursEnabled"); + }; + this.setWrapBehavioursEnabled = function (enabled) { + this.setOption("wrapBehavioursEnabled", enabled); + }; + this.getWrapBehavioursEnabled = function () { + return this.getOption("wrapBehavioursEnabled"); + }; + this.setShowFoldWidgets = function(show) { + this.setOption("showFoldWidgets", show); + + }; + this.getShowFoldWidgets = function() { + return this.getOption("showFoldWidgets"); + }; + + this.setFadeFoldWidgets = function(fade) { + this.setOption("fadeFoldWidgets", fade); + }; + + this.getFadeFoldWidgets = function() { + return this.getOption("fadeFoldWidgets"); + }; + this.remove = function(dir) { + if (this.selection.isEmpty()){ + if (dir == "left") + this.selection.selectLeft(); + else + this.selection.selectRight(); + } + + var range = this.getSelectionRange(); + if (this.getBehavioursEnabled()) { + var session = this.session; + var state = session.getState(range.start.row); + var new_range = session.getMode().transformAction(state, 'deletion', this, session, range); + + if (range.end.column === 0) { + var text = session.getTextRange(range); + if (text[text.length - 1] == "\n") { + var line = session.getLine(range.end.row); + if (/^\s+$/.test(line)) { + range.end.column = line.length; + } + } + } + if (new_range) + range = new_range; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.removeWordRight = function() { + if (this.selection.isEmpty()) + this.selection.selectWordRight(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeWordLeft = function() { + if (this.selection.isEmpty()) + this.selection.selectWordLeft(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineStart = function() { + if (this.selection.isEmpty()) + this.selection.selectLineStart(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineEnd = function() { + if (this.selection.isEmpty()) + this.selection.selectLineEnd(); + + var range = this.getSelectionRange(); + if (range.start.column == range.end.column && range.start.row == range.end.row) { + range.end.column = 0; + range.end.row++; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.splitLine = function() { + if (!this.selection.isEmpty()) { + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + } + + var cursor = this.getCursorPosition(); + this.insert("\n"); + this.moveCursorToPosition(cursor); + }; + this.transposeLetters = function() { + if (!this.selection.isEmpty()) { + return; + } + + var cursor = this.getCursorPosition(); + var column = cursor.column; + if (column === 0) + return; + + var line = this.session.getLine(cursor.row); + var swap, range; + if (column < line.length) { + swap = line.charAt(column) + line.charAt(column-1); + range = new Range(cursor.row, column-1, cursor.row, column+1); + } + else { + swap = line.charAt(column-1) + line.charAt(column-2); + range = new Range(cursor.row, column-2, cursor.row, column); + } + this.session.replace(range, swap); + this.session.selection.moveToPosition(range.end); + }; + this.toLowerCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toLowerCase()); + this.selection.setSelectionRange(originalRange); + }; + this.toUpperCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toUpperCase()); + this.selection.setSelectionRange(originalRange); + }; + this.indent = function() { + var session = this.session; + var range = this.getSelectionRange(); + + if (range.start.row < range.end.row) { + var rows = this.$getSelectedRows(); + session.indentRows(rows.first, rows.last, "\t"); + return; + } else if (range.start.column < range.end.column) { + var text = session.getTextRange(range); + if (!/^\s+$/.test(text)) { + var rows = this.$getSelectedRows(); + session.indentRows(rows.first, rows.last, "\t"); + return; + } + } + + var line = session.getLine(range.start.row); + var position = range.start; + var size = session.getTabSize(); + var column = session.documentToScreenColumn(position.row, position.column); + + if (this.session.getUseSoftTabs()) { + var count = (size - column % size); + var indentString = lang.stringRepeat(" ", count); + } else { + var count = column % size; + while (line[range.start.column - 1] == " " && count) { + range.start.column--; + count--; + } + this.selection.setSelectionRange(range); + indentString = "\t"; + } + return this.insert(indentString); + }; + this.blockIndent = function() { + var rows = this.$getSelectedRows(); + this.session.indentRows(rows.first, rows.last, "\t"); + }; + this.blockOutdent = function() { + var selection = this.session.getSelection(); + this.session.outdentRows(selection.getRange()); + }; + this.sortLines = function() { + var rows = this.$getSelectedRows(); + var session = this.session; + + var lines = []; + for (i = rows.first; i <= rows.last; i++) + lines.push(session.getLine(i)); + + lines.sort(function(a, b) { + if (a.toLowerCase() < b.toLowerCase()) return -1; + if (a.toLowerCase() > b.toLowerCase()) return 1; + return 0; + }); + + var deleteRange = new Range(0, 0, 0, 0); + for (var i = rows.first; i <= rows.last; i++) { + var line = session.getLine(i); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = line.length; + session.replace(deleteRange, lines[i-rows.first]); + } + }; + this.toggleCommentLines = function() { + var state = this.session.getState(this.getCursorPosition().row); + var rows = this.$getSelectedRows(); + this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last); + }; + + this.toggleBlockComment = function() { + var cursor = this.getCursorPosition(); + var state = this.session.getState(cursor.row); + var range = this.getSelectionRange(); + this.session.getMode().toggleBlockComment(state, this.session, range, cursor); + }; + this.getNumberAt = function(row, column) { + var _numberRx = /[\-]?[0-9]+(?:\.[0-9]+)?/g; + _numberRx.lastIndex = 0; + + var s = this.session.getLine(row); + while (_numberRx.lastIndex < column) { + var m = _numberRx.exec(s); + if(m.index <= column && m.index+m[0].length >= column){ + var number = { + value: m[0], + start: m.index, + end: m.index+m[0].length + }; + return number; + } + } + return null; + }; + this.modifyNumber = function(amount) { + var row = this.selection.getCursor().row; + var column = this.selection.getCursor().column; + var charRange = new Range(row, column-1, row, column); + + var c = this.session.getTextRange(charRange); + if (!isNaN(parseFloat(c)) && isFinite(c)) { + var nr = this.getNumberAt(row, column); + if (nr) { + var fp = nr.value.indexOf(".") >= 0 ? nr.start + nr.value.indexOf(".") + 1 : nr.end; + var decimals = nr.start + nr.value.length - fp; + + var t = parseFloat(nr.value); + t *= Math.pow(10, decimals); + + + if(fp !== nr.end && column < fp){ + amount *= Math.pow(10, nr.end - column - 1); + } else { + amount *= Math.pow(10, nr.end - column); + } + + t += amount; + t /= Math.pow(10, decimals); + var nnr = t.toFixed(decimals); + var replaceRange = new Range(row, nr.start, row, nr.end); + this.session.replace(replaceRange, nnr); + this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length)); + + } + } + }; + this.removeLines = function() { + var rows = this.$getSelectedRows(); + this.session.removeFullLines(rows.first, rows.last); + this.clearSelection(); + }; + + this.duplicateSelection = function() { + var sel = this.selection; + var doc = this.session; + var range = sel.getRange(); + var reverse = sel.isBackwards(); + if (range.isEmpty()) { + var row = range.start.row; + doc.duplicateLines(row, row); + } else { + var point = reverse ? range.start : range.end; + var endPoint = doc.insert(point, doc.getTextRange(range), false); + range.start = point; + range.end = endPoint; + + sel.setSelectionRange(range, reverse); + } + }; + this.moveLinesDown = function() { + this.$moveLines(1, false); + }; + this.moveLinesUp = function() { + this.$moveLines(-1, false); + }; + this.moveText = function(range, toPosition, copy) { + return this.session.moveText(range, toPosition, copy); + }; + this.copyLinesUp = function() { + this.$moveLines(-1, true); + }; + this.copyLinesDown = function() { + this.$moveLines(1, true); + }; + this.$moveLines = function(dir, copy) { + var rows, moved; + var selection = this.selection; + if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) { + var range = selection.toOrientedRange(); + rows = this.$getSelectedRows(range); + moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir); + if (copy && dir == -1) moved = 0; + range.moveBy(moved, 0); + selection.fromOrientedRange(range); + } else { + var ranges = selection.rangeList.ranges; + selection.rangeList.detach(this.session); + this.inVirtualSelectionMode = true; + + var diff = 0; + var totalDiff = 0; + var l = ranges.length; + for (var i = 0; i < l; i++) { + var rangeIndex = i; + ranges[i].moveBy(diff, 0); + rows = this.$getSelectedRows(ranges[i]); + var first = rows.first; + var last = rows.last; + while (++i < l) { + if (totalDiff) ranges[i].moveBy(totalDiff, 0); + var subRows = this.$getSelectedRows(ranges[i]); + if (copy && subRows.first != last) + break; + else if (!copy && subRows.first > last + 1) + break; + last = subRows.last; + } + i--; + diff = this.session.$moveLines(first, last, copy ? 0 : dir); + if (copy && dir == -1) rangeIndex = i + 1; + while (rangeIndex <= i) { + ranges[rangeIndex].moveBy(diff, 0); + rangeIndex++; + } + if (!copy) diff = 0; + totalDiff += diff; + } + + selection.fromOrientedRange(selection.ranges[0]); + selection.rangeList.attach(this.session); + this.inVirtualSelectionMode = false; + } + }; + this.$getSelectedRows = function(range) { + range = (range || this.getSelectionRange()).collapseRows(); + + return { + first: this.session.getRowFoldStart(range.start.row), + last: this.session.getRowFoldEnd(range.end.row) + }; + }; + + this.onCompositionStart = function(text) { + this.renderer.showComposition(this.getCursorPosition()); + }; + + this.onCompositionUpdate = function(text) { + this.renderer.setCompositionText(text); + }; + + this.onCompositionEnd = function() { + this.renderer.hideComposition(); + }; + this.getFirstVisibleRow = function() { + return this.renderer.getFirstVisibleRow(); + }; + this.getLastVisibleRow = function() { + return this.renderer.getLastVisibleRow(); + }; + this.isRowVisible = function(row) { + return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow()); + }; + this.isRowFullyVisible = function(row) { + return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow()); + }; + this.$getVisibleRowCount = function() { + return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1; + }; + + this.$moveByPage = function(dir, select) { + var renderer = this.renderer; + var config = this.renderer.layerConfig; + var rows = dir * Math.floor(config.height / config.lineHeight); + + this.$blockScrolling++; + if (select === true) { + this.selection.$moveSelection(function(){ + this.moveCursorBy(rows, 0); + }); + } else if (select === false) { + this.selection.moveCursorBy(rows, 0); + this.selection.clearSelection(); + } + this.$blockScrolling--; + + var scrollTop = renderer.scrollTop; + + renderer.scrollBy(0, rows * config.lineHeight); + if (select != null) + renderer.scrollCursorIntoView(null, 0.5); + + renderer.animateScrolling(scrollTop); + }; + this.selectPageDown = function() { + this.$moveByPage(1, true); + }; + this.selectPageUp = function() { + this.$moveByPage(-1, true); + }; + this.gotoPageDown = function() { + this.$moveByPage(1, false); + }; + this.gotoPageUp = function() { + this.$moveByPage(-1, false); + }; + this.scrollPageDown = function() { + this.$moveByPage(1); + }; + this.scrollPageUp = function() { + this.$moveByPage(-1); + }; + this.scrollToRow = function(row) { + this.renderer.scrollToRow(row); + }; + this.scrollToLine = function(line, center, animate, callback) { + this.renderer.scrollToLine(line, center, animate, callback); + }; + this.centerSelection = function() { + var range = this.getSelectionRange(); + var pos = { + row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2), + column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2) + }; + this.renderer.alignCursor(pos, 0.5); + }; + this.getCursorPosition = function() { + return this.selection.getCursor(); + }; + this.getCursorPositionScreen = function() { + return this.session.documentToScreenPosition(this.getCursorPosition()); + }; + this.getSelectionRange = function() { + return this.selection.getRange(); + }; + this.selectAll = function() { + this.$blockScrolling += 1; + this.selection.selectAll(); + this.$blockScrolling -= 1; + }; + this.clearSelection = function() { + this.selection.clearSelection(); + }; + this.moveCursorTo = function(row, column) { + this.selection.moveCursorTo(row, column); + }; + this.moveCursorToPosition = function(pos) { + this.selection.moveCursorToPosition(pos); + }; + this.jumpToMatching = function(select, expand) { + var cursor = this.getCursorPosition(); + var iterator = new TokenIterator(this.session, cursor.row, cursor.column); + var prevToken = iterator.getCurrentToken(); + var token = prevToken || iterator.stepForward(); + + if (!token) return; + var matchType; + var found = false; + var depth = {}; + var i = cursor.column - token.start; + var bracketType; + var brackets = { + ")": "(", + "(": "(", + "]": "[", + "[": "[", + "{": "{", + "}": "{" + }; + + do { + if (token.value.match(/[{}()\[\]]/g)) { + for (; i < token.value.length && !found; i++) { + if (!brackets[token.value[i]]) { + continue; + } + + bracketType = brackets[token.value[i]] + '.' + token.type.replace("rparen", "lparen"); + + if (isNaN(depth[bracketType])) { + depth[bracketType] = 0; + } + + switch (token.value[i]) { + case '(': + case '[': + case '{': + depth[bracketType]++; + break; + case ')': + case ']': + case '}': + depth[bracketType]--; + + if (depth[bracketType] === -1) { + matchType = 'bracket'; + found = true; + } + break; + } + } + } + else if (token && token.type.indexOf('tag-name') !== -1) { + if (isNaN(depth[token.value])) { + depth[token.value] = 0; + } + + if (prevToken.value === '<') { + depth[token.value]++; + } + else if (prevToken.value === '= 0; --i) { + if(this.$tryReplace(ranges[i], replacement)) { + replaced++; + } + } + + this.selection.setSelectionRange(selection); + this.$blockScrolling -= 1; + + return replaced; + }; + + this.$tryReplace = function(range, replacement) { + var input = this.session.getTextRange(range); + replacement = this.$search.replace(input, replacement); + if (replacement !== null) { + range.end = this.session.replace(range, replacement); + return range; + } else { + return null; + } + }; + this.getLastSearchOptions = function() { + return this.$search.getOptions(); + }; + this.find = function(needle, options, animate) { + if (!options) + options = {}; + + if (typeof needle == "string" || needle instanceof RegExp) + options.needle = needle; + else if (typeof needle == "object") + oop.mixin(options, needle); + + var range = this.selection.getRange(); + if (options.needle == null) { + needle = this.session.getTextRange(range) + || this.$search.$options.needle; + if (!needle) { + range = this.session.getWordRange(range.start.row, range.start.column); + needle = this.session.getTextRange(range); + } + this.$search.set({needle: needle}); + } + + this.$search.set(options); + if (!options.start) + this.$search.set({start: range}); + + var newRange = this.$search.find(this.session); + if (options.preventScroll) + return newRange; + if (newRange) { + this.revealRange(newRange, animate); + return newRange; + } + if (options.backwards) + range.start = range.end; + else + range.end = range.start; + this.selection.setRange(range); + }; + this.findNext = function(options, animate) { + this.find({skipCurrent: true, backwards: false}, options, animate); + }; + this.findPrevious = function(options, animate) { + this.find(options, {skipCurrent: true, backwards: true}, animate); + }; + + this.revealRange = function(range, animate) { + this.$blockScrolling += 1; + this.session.unfold(range); + this.selection.setSelectionRange(range); + this.$blockScrolling -= 1; + + var scrollTop = this.renderer.scrollTop; + this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5); + if (animate !== false) + this.renderer.animateScrolling(scrollTop); + }; + this.undo = function() { + this.$blockScrolling++; + this.session.getUndoManager().undo(); + this.$blockScrolling--; + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.redo = function() { + this.$blockScrolling++; + this.session.getUndoManager().redo(); + this.$blockScrolling--; + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.destroy = function() { + this.renderer.destroy(); + this._signal("destroy", this); + if (this.session) { + this.session.destroy(); + } + }; + this.setAutoScrollEditorIntoView = function(enable) { + if (!enable) + return; + var rect; + var self = this; + var shouldScroll = false; + if (!this.$scrollAnchor) + this.$scrollAnchor = document.createElement("div"); + var scrollAnchor = this.$scrollAnchor; + scrollAnchor.style.cssText = "position:absolute"; + this.container.insertBefore(scrollAnchor, this.container.firstChild); + var onChangeSelection = this.on("changeSelection", function() { + shouldScroll = true; + }); + var onBeforeRender = this.renderer.on("beforeRender", function() { + if (shouldScroll) + rect = self.renderer.container.getBoundingClientRect(); + }); + var onAfterRender = this.renderer.on("afterRender", function() { + if (shouldScroll && rect && (self.isFocused() + || self.searchBox && self.searchBox.isFocused()) + ) { + var renderer = self.renderer; + var pos = renderer.$cursorLayer.$pixelPos; + var config = renderer.layerConfig; + var top = pos.top - config.offset; + if (pos.top >= 0 && top + rect.top < 0) { + shouldScroll = true; + } else if (pos.top < config.height && + pos.top + rect.top + config.lineHeight > window.innerHeight) { + shouldScroll = false; + } else { + shouldScroll = null; + } + if (shouldScroll != null) { + scrollAnchor.style.top = top + "px"; + scrollAnchor.style.left = pos.left + "px"; + scrollAnchor.style.height = config.lineHeight + "px"; + scrollAnchor.scrollIntoView(shouldScroll); + } + shouldScroll = rect = null; + } + }); + this.setAutoScrollEditorIntoView = function(enable) { + if (enable) + return; + delete this.setAutoScrollEditorIntoView; + this.off("changeSelection", onChangeSelection); + this.renderer.off("afterRender", onAfterRender); + this.renderer.off("beforeRender", onBeforeRender); + }; + }; + + + this.$resetCursorStyle = function() { + var style = this.$cursorStyle || "ace"; + var cursorLayer = this.renderer.$cursorLayer; + if (!cursorLayer) + return; + cursorLayer.setSmoothBlinking(/smooth/.test(style)); + cursorLayer.isBlinking = !this.$readOnly && style != "wide"; + dom.setCssClass(cursorLayer.element, "ace_slim-cursors", /slim/.test(style)); + }; + +}).call(Editor.prototype); + + + +config.defineOptions(Editor.prototype, "editor", { + selectionStyle: { + set: function(style) { + this.onSelectionChange(); + this._signal("changeSelectionStyle", {data: style}); + }, + initialValue: "line" + }, + highlightActiveLine: { + set: function() {this.$updateHighlightActiveLine();}, + initialValue: true + }, + highlightSelectedWord: { + set: function(shouldHighlight) {this.$onSelectionChange();}, + initialValue: true + }, + readOnly: { + set: function(readOnly) { + this.$resetCursorStyle(); + }, + initialValue: false + }, + cursorStyle: { + set: function(val) { this.$resetCursorStyle(); }, + values: ["ace", "slim", "smooth", "wide"], + initialValue: "ace" + }, + mergeUndoDeltas: { + values: [false, true, "always"], + initialValue: true + }, + behavioursEnabled: {initialValue: true}, + wrapBehavioursEnabled: {initialValue: true}, + autoScrollEditorIntoView: { + set: function(val) {this.setAutoScrollEditorIntoView(val)} + }, + keyboardHandler: { + set: function(val) { this.setKeyboardHandler(val); }, + get: function() { return this.keybindingId; }, + handlesSet: true + }, + + hScrollBarAlwaysVisible: "renderer", + vScrollBarAlwaysVisible: "renderer", + highlightGutterLine: "renderer", + animatedScroll: "renderer", + showInvisibles: "renderer", + showPrintMargin: "renderer", + printMarginColumn: "renderer", + printMargin: "renderer", + fadeFoldWidgets: "renderer", + showFoldWidgets: "renderer", + showLineNumbers: "renderer", + showGutter: "renderer", + displayIndentGuides: "renderer", + fontSize: "renderer", + fontFamily: "renderer", + maxLines: "renderer", + minLines: "renderer", + scrollPastEnd: "renderer", + fixedWidthGutter: "renderer", + theme: "renderer", + + scrollSpeed: "$mouseHandler", + dragDelay: "$mouseHandler", + dragEnabled: "$mouseHandler", + focusTimout: "$mouseHandler", + tooltipFollowsMouse: "$mouseHandler", + + firstLineNumber: "session", + overwrite: "session", + newLineMode: "session", + useWorker: "session", + useSoftTabs: "session", + tabSize: "session", + wrap: "session", + indentedSoftWrap: "session", + foldStyle: "session", + mode: "session" +}); + +exports.Editor = Editor; +}); + +ace.define("ace/undomanager",["require","exports","module"], function(require, exports, module) { +"use strict"; +var UndoManager = function() { + this.reset(); +}; + +(function() { + this.execute = function(options) { + var deltaSets = options.args[0]; + this.$doc = options.args[1]; + if (options.merge && this.hasUndo()){ + this.dirtyCounter--; + deltaSets = this.$undoStack.pop().concat(deltaSets); + } + this.$undoStack.push(deltaSets); + this.$redoStack = []; + if (this.dirtyCounter < 0) { + this.dirtyCounter = NaN; + } + this.dirtyCounter++; + }; + this.undo = function(dontSelect) { + var deltaSets = this.$undoStack.pop(); + var undoSelectionRange = null; + if (deltaSets) { + undoSelectionRange = this.$doc.undoChanges(deltaSets, dontSelect); + this.$redoStack.push(deltaSets); + this.dirtyCounter--; + } + + return undoSelectionRange; + }; + this.redo = function(dontSelect) { + var deltaSets = this.$redoStack.pop(); + var redoSelectionRange = null; + if (deltaSets) { + redoSelectionRange = + this.$doc.redoChanges(this.$deserializeDeltas(deltaSets), dontSelect); + this.$undoStack.push(deltaSets); + this.dirtyCounter++; + } + return redoSelectionRange; + }; + this.reset = function() { + this.$undoStack = []; + this.$redoStack = []; + this.dirtyCounter = 0; + }; + this.hasUndo = function() { + return this.$undoStack.length > 0; + }; + this.hasRedo = function() { + return this.$redoStack.length > 0; + }; + this.markClean = function() { + this.dirtyCounter = 0; + }; + this.isClean = function() { + return this.dirtyCounter === 0; + }; + this.$serializeDeltas = function(deltaSets) { + return cloneDeltaSetsObj(deltaSets, $serializeDelta); + }; + this.$deserializeDeltas = function(deltaSets) { + return cloneDeltaSetsObj(deltaSets, $deserializeDelta); + }; + + function $serializeDelta(delta){ + return { + action: delta.action, + start: delta.start, + end: delta.end, + lines: delta.lines.length == 1 ? null : delta.lines, + text: delta.lines.length == 1 ? delta.lines[0] : null + }; + } + + function $deserializeDelta(delta) { + return { + action: delta.action, + start: delta.start, + end: delta.end, + lines: delta.lines || [delta.text] + }; + } + + function cloneDeltaSetsObj(deltaSets_old, fnGetModifiedDelta) { + var deltaSets_new = new Array(deltaSets_old.length); + for (var i = 0; i < deltaSets_old.length; i++) { + var deltaSet_old = deltaSets_old[i]; + var deltaSet_new = { group: deltaSet_old.group, deltas: new Array(deltaSet_old.length)}; + + for (var j = 0; j < deltaSet_old.deltas.length; j++) { + var delta_old = deltaSet_old.deltas[j]; + deltaSet_new.deltas[j] = fnGetModifiedDelta(delta_old); + } + + deltaSets_new[i] = deltaSet_new; + } + return deltaSets_new; + } + +}).call(UndoManager.prototype); + +exports.UndoManager = UndoManager; +}); + +ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var Gutter = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_gutter-layer"; + parentEl.appendChild(this.element); + this.setShowFoldWidgets(this.$showFoldWidgets); + + this.gutterWidth = 0; + + this.$annotations = []; + this.$updateAnnotations = this.$updateAnnotations.bind(this); + + this.$cells = []; +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.setSession = function(session) { + if (this.session) + this.session.removeEventListener("change", this.$updateAnnotations); + this.session = session; + if (session) + session.on("change", this.$updateAnnotations); + }; + + this.addGutterDecoration = function(row, className){ + if (window.console) + console.warn && console.warn("deprecated use session.addGutterDecoration"); + this.session.addGutterDecoration(row, className); + }; + + this.removeGutterDecoration = function(row, className){ + if (window.console) + console.warn && console.warn("deprecated use session.removeGutterDecoration"); + this.session.removeGutterDecoration(row, className); + }; + + this.setAnnotations = function(annotations) { + this.$annotations = []; + for (var i = 0; i < annotations.length; i++) { + var annotation = annotations[i]; + var row = annotation.row; + var rowInfo = this.$annotations[row]; + if (!rowInfo) + rowInfo = this.$annotations[row] = {text: []}; + + var annoText = annotation.text; + annoText = annoText ? lang.escapeHTML(annoText) : annotation.html || ""; + + if (rowInfo.text.indexOf(annoText) === -1) + rowInfo.text.push(annoText); + + var type = annotation.type; + if (type == "error") + rowInfo.className = " ace_error"; + else if (type == "warning" && rowInfo.className != " ace_error") + rowInfo.className = " ace_warning"; + else if (type == "info" && (!rowInfo.className)) + rowInfo.className = " ace_info"; + } + }; + + this.$updateAnnotations = function (delta) { + if (!this.$annotations.length) + return; + var firstRow = delta.start.row; + var len = delta.end.row - firstRow; + if (len === 0) { + } else if (delta.action == 'remove') { + this.$annotations.splice(firstRow, len + 1, null); + } else { + var args = new Array(len + 1); + args.unshift(firstRow, 1); + this.$annotations.splice.apply(this.$annotations, args); + } + }; + + this.update = function(config) { + var session = this.session; + var firstRow = config.firstRow; + var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar + session.getLength() - 1); + var fold = session.getNextFoldLine(firstRow); + var foldStart = fold ? fold.start.row : Infinity; + var foldWidgets = this.$showFoldWidgets && session.foldWidgets; + var breakpoints = session.$breakpoints; + var decorations = session.$decorations; + var firstLineNumber = session.$firstLineNumber; + var lastLineNumber = 0; + + var gutterRenderer = session.gutterRenderer || this.$renderer; + + var cell = null; + var index = -1; + var row = firstRow; + while (true) { + if (row > foldStart) { + row = fold.end.row + 1; + fold = session.getNextFoldLine(row, fold); + foldStart = fold ? fold.start.row : Infinity; + } + if (row > lastRow) { + while (this.$cells.length > index + 1) { + cell = this.$cells.pop(); + this.element.removeChild(cell.element); + } + break; + } + + cell = this.$cells[++index]; + if (!cell) { + cell = {element: null, textNode: null, foldWidget: null}; + cell.element = dom.createElement("div"); + cell.textNode = document.createTextNode(''); + cell.element.appendChild(cell.textNode); + this.element.appendChild(cell.element); + this.$cells[index] = cell; + } + + var className = "ace_gutter-cell "; + if (breakpoints[row]) + className += breakpoints[row]; + if (decorations[row]) + className += decorations[row]; + if (this.$annotations[row]) + className += this.$annotations[row].className; + if (cell.element.className != className) + cell.element.className = className; + + var height = session.getRowLength(row) * config.lineHeight + "px"; + if (height != cell.element.style.height) + cell.element.style.height = height; + + if (foldWidgets) { + var c = foldWidgets[row]; + if (c == null) + c = foldWidgets[row] = session.getFoldWidget(row); + } + + if (c) { + if (!cell.foldWidget) { + cell.foldWidget = dom.createElement("span"); + cell.element.appendChild(cell.foldWidget); + } + var className = "ace_fold-widget ace_" + c; + if (c == "start" && row == foldStart && row < fold.end.row) + className += " ace_closed"; + else + className += " ace_open"; + if (cell.foldWidget.className != className) + cell.foldWidget.className = className; + + var height = config.lineHeight + "px"; + if (cell.foldWidget.style.height != height) + cell.foldWidget.style.height = height; + } else { + if (cell.foldWidget) { + cell.element.removeChild(cell.foldWidget); + cell.foldWidget = null; + } + } + + var text = lastLineNumber = gutterRenderer + ? gutterRenderer.getText(session, row) + : row + firstLineNumber; + if (text !== cell.textNode.data) + cell.textNode.data = text; + + row++; + } + + this.element.style.height = config.minHeight + "px"; + + if (this.$fixedWidth || session.$useWrapMode) + lastLineNumber = session.getLength() + firstLineNumber; + + var gutterWidth = gutterRenderer + ? gutterRenderer.getWidth(session, lastLineNumber, config) + : lastLineNumber.toString().length * config.characterWidth; + + var padding = this.$padding || this.$computePadding(); + gutterWidth += padding.left + padding.right; + if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) { + this.gutterWidth = gutterWidth; + this.element.style.width = Math.ceil(this.gutterWidth) + "px"; + this._emit("changeGutterWidth", gutterWidth); + } + }; + + this.$fixedWidth = false; + + this.$showLineNumbers = true; + this.$renderer = ""; + this.setShowLineNumbers = function(show) { + this.$renderer = !show && { + getWidth: function() {return ""}, + getText: function() {return ""} + }; + }; + + this.getShowLineNumbers = function() { + return this.$showLineNumbers; + }; + + this.$showFoldWidgets = true; + this.setShowFoldWidgets = function(show) { + if (show) + dom.addCssClass(this.element, "ace_folding-enabled"); + else + dom.removeCssClass(this.element, "ace_folding-enabled"); + + this.$showFoldWidgets = show; + this.$padding = null; + }; + + this.getShowFoldWidgets = function() { + return this.$showFoldWidgets; + }; + + this.$computePadding = function() { + if (!this.element.firstChild) + return {left: 0, right: 0}; + var style = dom.computedStyle(this.element.firstChild); + this.$padding = {}; + this.$padding.left = parseInt(style.paddingLeft) + 1 || 0; + this.$padding.right = parseInt(style.paddingRight) || 0; + return this.$padding; + }; + + this.getRegion = function(point) { + var padding = this.$padding || this.$computePadding(); + var rect = this.element.getBoundingClientRect(); + if (point.x < padding.left + rect.left) + return "markers"; + if (this.$showFoldWidgets && point.x > rect.right - padding.right) + return "foldWidgets"; + }; + +}).call(Gutter.prototype); + +exports.Gutter = Gutter; + +}); + +ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var dom = require("../lib/dom"); + +var Marker = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_marker-layer"; + parentEl.appendChild(this.element); +}; + +(function() { + + this.$padding = 0; + + this.setPadding = function(padding) { + this.$padding = padding; + }; + this.setSession = function(session) { + this.session = session; + }; + + this.setMarkers = function(markers) { + this.markers = markers; + }; + + this.update = function(config) { + if (!config) return; + + this.config = config; + + + var html = []; + for (var key in this.markers) { + var marker = this.markers[key]; + + if (!marker.range) { + marker.update(html, this, this.session, config); + continue; + } + + var range = marker.range.clipRows(config.firstRow, config.lastRow); + if (range.isEmpty()) continue; + + range = range.toScreenRange(this.session); + if (marker.renderer) { + var top = this.$getTop(range.start.row, config); + var left = this.$padding + range.start.column * config.characterWidth; + marker.renderer(html, range, left, top, config); + } else if (marker.type == "fullLine") { + this.drawFullLineMarker(html, range, marker.clazz, config); + } else if (marker.type == "screenLine") { + this.drawScreenLineMarker(html, range, marker.clazz, config); + } else if (range.isMultiLine()) { + if (marker.type == "text") + this.drawTextMarker(html, range, marker.clazz, config); + else + this.drawMultiLineMarker(html, range, marker.clazz, config); + } else { + this.drawSingleLineMarker(html, range, marker.clazz + " ace_start" + " ace_br15", config); + } + } + this.element.innerHTML = html.join(""); + }; + + this.$getTop = function(row, layerConfig) { + return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight; + }; + + function getBorderClass(tl, tr, br, bl) { + return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0); + } + this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) { + var session = this.session; + var start = range.start.row; + var end = range.end.row; + var row = start; + var prev = 0; + var curr = 0; + var next = session.getScreenLastRowColumn(row); + var lineRange = new Range(row, range.start.column, row, curr); + for (; row <= end; row++) { + lineRange.start.row = lineRange.end.row = row; + lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row); + lineRange.end.column = next; + prev = curr; + curr = next; + next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column; + this.drawSingleLineMarker(stringBuilder, lineRange, + clazz + (row == start ? " ace_start" : "") + " ace_br" + + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), + layerConfig, row == end ? 0 : 1, extraStyle); + } + }; + this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var padding = this.$padding; + var height = config.lineHeight; + var top = this.$getTop(range.start.row, config); + var left = padding + range.start.column * config.characterWidth; + extraStyle = extraStyle || ""; + + stringBuilder.push( + "
    " + ); + top = this.$getTop(range.end.row, config); + var width = range.end.column * config.characterWidth; + + stringBuilder.push( + "
    " + ); + height = (range.end.row - range.start.row - 1) * config.lineHeight; + if (height <= 0) + return; + top = this.$getTop(range.start.row + 1, config); + + var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8); + + stringBuilder.push( + "
    " + ); + }; + this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) { + var height = config.lineHeight; + var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth; + + var top = this.$getTop(range.start.row, config); + var left = this.$padding + range.start.column * config.characterWidth; + + stringBuilder.push( + "
    " + ); + }; + + this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var top = this.$getTop(range.start.row, config); + var height = config.lineHeight; + if (range.start.row != range.end.row) + height += this.$getTop(range.end.row, config) - top; + + stringBuilder.push( + "
    " + ); + }; + + this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var top = this.$getTop(range.start.row, config); + var height = config.lineHeight; + + stringBuilder.push( + "
    " + ); + }; + +}).call(Marker.prototype); + +exports.Marker = Marker; + +}); + +ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var useragent = require("../lib/useragent"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var Text = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_text-layer"; + parentEl.appendChild(this.element); + this.$updateEolChar = this.$updateEolChar.bind(this); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.EOF_CHAR = "\xB6"; + this.EOL_CHAR_LF = "\xAC"; + this.EOL_CHAR_CRLF = "\xa4"; + this.EOL_CHAR = this.EOL_CHAR_LF; + this.TAB_CHAR = "\u2014"; //"\u21E5"; + this.SPACE_CHAR = "\xB7"; + this.$padding = 0; + + this.$updateEolChar = function() { + var EOL_CHAR = this.session.doc.getNewLineCharacter() == "\n" + ? this.EOL_CHAR_LF + : this.EOL_CHAR_CRLF; + if (this.EOL_CHAR != EOL_CHAR) { + this.EOL_CHAR = EOL_CHAR; + return true; + } + } + + this.setPadding = function(padding) { + this.$padding = padding; + this.element.style.padding = "0 " + padding + "px"; + }; + + this.getLineHeight = function() { + return this.$fontMetrics.$characterSize.height || 0; + }; + + this.getCharacterWidth = function() { + return this.$fontMetrics.$characterSize.width || 0; + }; + + this.$setFontMetrics = function(measure) { + this.$fontMetrics = measure; + this.$fontMetrics.on("changeCharacterSize", function(e) { + this._signal("changeCharacterSize", e); + }.bind(this)); + this.$pollSizeChanges(); + } + + this.checkForSizeChanges = function() { + this.$fontMetrics.checkForSizeChanges(); + }; + this.$pollSizeChanges = function() { + return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges(); + }; + this.setSession = function(session) { + this.session = session; + if (session) + this.$computeTabString(); + }; + + this.showInvisibles = false; + this.setShowInvisibles = function(showInvisibles) { + if (this.showInvisibles == showInvisibles) + return false; + + this.showInvisibles = showInvisibles; + this.$computeTabString(); + return true; + }; + + this.displayIndentGuides = true; + this.setDisplayIndentGuides = function(display) { + if (this.displayIndentGuides == display) + return false; + + this.displayIndentGuides = display; + this.$computeTabString(); + return true; + }; + + this.$tabStrings = []; + this.onChangeTabSize = + this.$computeTabString = function() { + var tabSize = this.session.getTabSize(); + this.tabSize = tabSize; + var tabStr = this.$tabStrings = [0]; + for (var i = 1; i < tabSize + 1; i++) { + if (this.showInvisibles) { + tabStr.push("" + + lang.stringRepeat(this.TAB_CHAR, i) + + ""); + } else { + tabStr.push(lang.stringRepeat(" ", i)); + } + } + if (this.displayIndentGuides) { + this.$indentGuideRe = /\s\S| \t|\t |\s$/; + var className = "ace_indent-guide"; + var spaceClass = ""; + var tabClass = ""; + if (this.showInvisibles) { + className += " ace_invisible"; + spaceClass = " ace_invisible_space"; + tabClass = " ace_invisible_tab"; + var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize); + var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize); + } else{ + var spaceContent = lang.stringRepeat(" ", this.tabSize); + var tabContent = spaceContent; + } + + this.$tabStrings[" "] = "" + spaceContent + ""; + this.$tabStrings["\t"] = "" + tabContent + ""; + } + }; + + this.updateLines = function(config, firstRow, lastRow) { + if (this.config.lastRow != config.lastRow || + this.config.firstRow != config.firstRow) { + this.scrollLines(config); + } + this.config = config; + + var first = Math.max(firstRow, config.firstRow); + var last = Math.min(lastRow, config.lastRow); + + var lineElements = this.element.childNodes; + var lineElementsIdx = 0; + + for (var row = config.firstRow; row < first; row++) { + var foldLine = this.session.getFoldLine(row); + if (foldLine) { + if (foldLine.containsRow(first)) { + first = foldLine.start.row; + break; + } else { + row = foldLine.end.row; + } + } + lineElementsIdx ++; + } + + var row = first; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row :Infinity; + } + if (row > last) + break; + + var lineElement = lineElements[lineElementsIdx++]; + if (lineElement) { + var html = []; + this.$renderLine( + html, row, !this.$useLineGroups(), row == foldStart ? foldLine : false + ); + lineElement.style.height = config.lineHeight * this.session.getRowLength(row) + "px"; + lineElement.innerHTML = html.join(""); + } + row++; + } + }; + + this.scrollLines = function(config) { + var oldConfig = this.config; + this.config = config; + + if (!oldConfig || oldConfig.lastRow < config.firstRow) + return this.update(config); + + if (config.lastRow < oldConfig.firstRow) + return this.update(config); + + var el = this.element; + if (oldConfig.firstRow < config.firstRow) + for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--) + el.removeChild(el.firstChild); + + if (oldConfig.lastRow > config.lastRow) + for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--) + el.removeChild(el.lastChild); + + if (config.firstRow < oldConfig.firstRow) { + var fragment = this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1); + if (el.firstChild) + el.insertBefore(fragment, el.firstChild); + else + el.appendChild(fragment); + } + + if (config.lastRow > oldConfig.lastRow) { + var fragment = this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow); + el.appendChild(fragment); + } + }; + + this.$renderLinesFragment = function(config, firstRow, lastRow) { + var fragment = this.element.ownerDocument.createDocumentFragment(); + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + if (row > lastRow) + break; + + var container = dom.createElement("div"); + + var html = []; + this.$renderLine(html, row, false, row == foldStart ? foldLine : false); + container.innerHTML = html.join(""); + if (this.$useLineGroups()) { + container.className = 'ace_line_group'; + fragment.appendChild(container); + container.style.height = config.lineHeight * this.session.getRowLength(row) + "px"; + + } else { + while(container.firstChild) + fragment.appendChild(container.firstChild); + } + + row++; + } + return fragment; + }; + + this.update = function(config) { + this.config = config; + + var html = []; + var firstRow = config.firstRow, lastRow = config.lastRow; + + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row :Infinity; + } + if (row > lastRow) + break; + + if (this.$useLineGroups()) + html.push("
    ") + + this.$renderLine(html, row, false, row == foldStart ? foldLine : false); + + if (this.$useLineGroups()) + html.push("
    "); // end the line group + + row++; + } + this.element.innerHTML = html.join(""); + }; + + this.$textToken = { + "text": true, + "rparen": true, + "lparen": true + }; + + this.$renderToken = function(stringBuilder, screenColumn, token, value) { + var self = this; + var replaceReg = /\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g; + var replaceFunc = function(c, a, b, tabIdx, idx4) { + if (a) { + return self.showInvisibles + ? "" + lang.stringRepeat(self.SPACE_CHAR, c.length) + "" + : c; + } else if (c == "&") { + return "&"; + } else if (c == "<") { + return "<"; + } else if (c == ">") { + return ">"; + } else if (c == "\t") { + var tabSize = self.session.getScreenTabSize(screenColumn + tabIdx); + screenColumn += tabSize - 1; + return self.$tabStrings[tabSize]; + } else if (c == "\u3000") { + var classToUse = self.showInvisibles ? "ace_cjk ace_invisible ace_invisible_space" : "ace_cjk"; + var space = self.showInvisibles ? self.SPACE_CHAR : ""; + screenColumn += 1; + return "" + space + ""; + } else if (b) { + return "" + self.SPACE_CHAR + ""; + } else { + screenColumn += 1; + return "" + c + ""; + } + }; + + var output = value.replace(replaceReg, replaceFunc); + + if (!this.$textToken[token.type]) { + var classes = "ace_" + token.type.replace(/\./g, " ace_"); + var style = ""; + if (token.type == "fold") + style = " style='width:" + (token.value.length * this.config.characterWidth) + "px;' "; + stringBuilder.push("", output, ""); + } + else { + stringBuilder.push(output); + } + return screenColumn + value.length; + }; + + this.renderIndentGuide = function(stringBuilder, value, max) { + var cols = value.search(this.$indentGuideRe); + if (cols <= 0 || cols >= max) + return value; + if (value[0] == " ") { + cols -= cols % this.tabSize; + stringBuilder.push(lang.stringRepeat(this.$tabStrings[" "], cols/this.tabSize)); + return value.substr(cols); + } else if (value[0] == "\t") { + stringBuilder.push(lang.stringRepeat(this.$tabStrings["\t"], cols)); + return value.substr(cols); + } + return value; + }; + + this.$renderWrappedLine = function(stringBuilder, tokens, splits, onlyContents) { + var chars = 0; + var split = 0; + var splitChars = splits[0]; + var screenColumn = 0; + + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + var value = token.value; + if (i == 0 && this.displayIndentGuides) { + chars = value.length; + value = this.renderIndentGuide(stringBuilder, value, splitChars); + if (!value) + continue; + chars -= value.length; + } + + if (chars + value.length < splitChars) { + screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value); + chars += value.length; + } else { + while (chars + value.length >= splitChars) { + screenColumn = this.$renderToken( + stringBuilder, screenColumn, + token, value.substring(0, splitChars - chars) + ); + value = value.substring(splitChars - chars); + chars = splitChars; + + if (!onlyContents) { + stringBuilder.push("", + "
    " + ); + } + + stringBuilder.push(lang.stringRepeat("\xa0", splits.indent)); + + split ++; + screenColumn = 0; + splitChars = splits[split] || Number.MAX_VALUE; + } + if (value.length != 0) { + chars += value.length; + screenColumn = this.$renderToken( + stringBuilder, screenColumn, token, value + ); + } + } + } + }; + + this.$renderSimpleLine = function(stringBuilder, tokens) { + var screenColumn = 0; + var token = tokens[0]; + var value = token.value; + if (this.displayIndentGuides) + value = this.renderIndentGuide(stringBuilder, value); + if (value) + screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value); + for (var i = 1; i < tokens.length; i++) { + token = tokens[i]; + value = token.value; + screenColumn = this.$renderToken(stringBuilder, screenColumn, token, value); + } + }; + this.$renderLine = function(stringBuilder, row, onlyContents, foldLine) { + if (!foldLine && foldLine != false) + foldLine = this.session.getFoldLine(row); + + if (foldLine) + var tokens = this.$getFoldLineTokens(row, foldLine); + else + var tokens = this.session.getTokens(row); + + + if (!onlyContents) { + stringBuilder.push( + "
    " + ); + } + + if (tokens.length) { + var splits = this.session.getRowSplitData(row); + if (splits && splits.length) + this.$renderWrappedLine(stringBuilder, tokens, splits, onlyContents); + else + this.$renderSimpleLine(stringBuilder, tokens); + } + + if (this.showInvisibles) { + if (foldLine) + row = foldLine.end.row + + stringBuilder.push( + "", + row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR, + "" + ); + } + if (!onlyContents) + stringBuilder.push("
    "); + }; + + this.$getFoldLineTokens = function(row, foldLine) { + var session = this.session; + var renderTokens = []; + + function addTokens(tokens, from, to) { + var idx = 0, col = 0; + while ((col + tokens[idx].value.length) < from) { + col += tokens[idx].value.length; + idx++; + + if (idx == tokens.length) + return; + } + if (col != from) { + var value = tokens[idx].value.substring(from - col); + if (value.length > (to - from)) + value = value.substring(0, to - from); + + renderTokens.push({ + type: tokens[idx].type, + value: value + }); + + col = from + value.length; + idx += 1; + } + + while (col < to && idx < tokens.length) { + var value = tokens[idx].value; + if (value.length + col > to) { + renderTokens.push({ + type: tokens[idx].type, + value: value.substring(0, to - col) + }); + } else + renderTokens.push(tokens[idx]); + col += value.length; + idx += 1; + } + } + + var tokens = session.getTokens(row); + foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) { + if (placeholder != null) { + renderTokens.push({ + type: "fold", + value: placeholder + }); + } else { + if (isNewRow) + tokens = session.getTokens(row); + + if (tokens.length) + addTokens(tokens, lastColumn, column); + } + }, foldLine.end.row, this.session.getLine(foldLine.end.row).length); + + return renderTokens; + }; + + this.$useLineGroups = function() { + return this.session.getUseWrapMode(); + }; + + this.destroy = function() { + clearInterval(this.$pollSizeChangesTimer); + if (this.$measureNode) + this.$measureNode.parentNode.removeChild(this.$measureNode); + delete this.$measureNode; + }; + +}).call(Text.prototype); + +exports.Text = Text; + +}); + +ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var isIE8; + +var Cursor = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_cursor-layer"; + parentEl.appendChild(this.element); + + if (isIE8 === undefined) + isIE8 = !("opacity" in this.element.style); + + this.isVisible = false; + this.isBlinking = true; + this.blinkInterval = 1000; + this.smoothBlinking = false; + + this.cursors = []; + this.cursor = this.addCursor(); + dom.addCssClass(this.element, "ace_hidden-cursors"); + this.$updateCursors = (isIE8 + ? this.$updateVisibility + : this.$updateOpacity).bind(this); +}; + +(function() { + + this.$updateVisibility = function(val) { + var cursors = this.cursors; + for (var i = cursors.length; i--; ) + cursors[i].style.visibility = val ? "" : "hidden"; + }; + this.$updateOpacity = function(val) { + var cursors = this.cursors; + for (var i = cursors.length; i--; ) + cursors[i].style.opacity = val ? "" : "0"; + }; + + + this.$padding = 0; + this.setPadding = function(padding) { + this.$padding = padding; + }; + + this.setSession = function(session) { + this.session = session; + }; + + this.setBlinking = function(blinking) { + if (blinking != this.isBlinking){ + this.isBlinking = blinking; + this.restartTimer(); + } + }; + + this.setBlinkInterval = function(blinkInterval) { + if (blinkInterval != this.blinkInterval){ + this.blinkInterval = blinkInterval; + this.restartTimer(); + } + }; + + this.setSmoothBlinking = function(smoothBlinking) { + if (smoothBlinking != this.smoothBlinking && !isIE8) { + this.smoothBlinking = smoothBlinking; + dom.setCssClass(this.element, "ace_smooth-blinking", smoothBlinking); + this.$updateCursors(true); + this.$updateCursors = (this.$updateOpacity).bind(this); + this.restartTimer(); + } + }; + + this.addCursor = function() { + var el = dom.createElement("div"); + el.className = "ace_cursor"; + this.element.appendChild(el); + this.cursors.push(el); + return el; + }; + + this.removeCursor = function() { + if (this.cursors.length > 1) { + var el = this.cursors.pop(); + el.parentNode.removeChild(el); + return el; + } + }; + + this.hideCursor = function() { + this.isVisible = false; + dom.addCssClass(this.element, "ace_hidden-cursors"); + this.restartTimer(); + }; + + this.showCursor = function() { + this.isVisible = true; + dom.removeCssClass(this.element, "ace_hidden-cursors"); + this.restartTimer(); + }; + + this.restartTimer = function() { + var update = this.$updateCursors; + clearInterval(this.intervalId); + clearTimeout(this.timeoutId); + if (this.smoothBlinking) { + dom.removeCssClass(this.element, "ace_smooth-blinking"); + } + + update(true); + + if (!this.isBlinking || !this.blinkInterval || !this.isVisible) + return; + + if (this.smoothBlinking) { + setTimeout(function(){ + dom.addCssClass(this.element, "ace_smooth-blinking"); + }.bind(this)); + } + + var blink = function(){ + this.timeoutId = setTimeout(function() { + update(false); + }, 0.6 * this.blinkInterval); + }.bind(this); + + this.intervalId = setInterval(function() { + update(true); + blink(); + }, this.blinkInterval); + + blink(); + }; + + this.getPixelPosition = function(position, onScreen) { + if (!this.config || !this.session) + return {left : 0, top : 0}; + + if (!position) + position = this.session.selection.getCursor(); + var pos = this.session.documentToScreenPosition(position); + var cursorLeft = this.$padding + pos.column * this.config.characterWidth; + var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) * + this.config.lineHeight; + + return {left : cursorLeft, top : cursorTop}; + }; + + this.update = function(config) { + this.config = config; + + var selections = this.session.$selectionMarkers; + var i = 0, cursorIndex = 0; + + if (selections === undefined || selections.length === 0){ + selections = [{cursor: null}]; + } + + for (var i = 0, n = selections.length; i < n; i++) { + var pixelPos = this.getPixelPosition(selections[i].cursor, true); + if ((pixelPos.top > config.height + config.offset || + pixelPos.top < 0) && i > 1) { + continue; + } + + var style = (this.cursors[cursorIndex++] || this.addCursor()).style; + + if (!this.drawCursor) { + style.left = pixelPos.left + "px"; + style.top = pixelPos.top + "px"; + style.width = config.characterWidth + "px"; + style.height = config.lineHeight + "px"; + } else { + this.drawCursor(style, pixelPos, config, selections[i], this.session); + } + } + while (this.cursors.length > cursorIndex) + this.removeCursor(); + + var overwrite = this.session.getOverwrite(); + this.$setOverwrite(overwrite); + this.$pixelPos = pixelPos; + this.restartTimer(); + }; + + this.drawCursor = null; + + this.$setOverwrite = function(overwrite) { + if (overwrite != this.overwrite) { + this.overwrite = overwrite; + if (overwrite) + dom.addCssClass(this.element, "ace_overwrite-cursors"); + else + dom.removeCssClass(this.element, "ace_overwrite-cursors"); + } + }; + + this.destroy = function() { + clearInterval(this.intervalId); + clearTimeout(this.timeoutId); + }; + +}).call(Cursor.prototype); + +exports.Cursor = Cursor; + +}); + +ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var event = require("./lib/event"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var MAX_SCROLL_H = 0x8000; +var ScrollBar = function(parent) { + this.element = dom.createElement("div"); + this.element.className = "ace_scrollbar ace_scrollbar" + this.classSuffix; + + this.inner = dom.createElement("div"); + this.inner.className = "ace_scrollbar-inner"; + this.element.appendChild(this.inner); + + parent.appendChild(this.element); + + this.setVisible(false); + this.skipEvent = false; + + event.addListener(this.element, "scroll", this.onScroll.bind(this)); + event.addListener(this.element, "mousedown", event.preventDefault); +}; + +(function() { + oop.implement(this, EventEmitter); + + this.setVisible = function(isVisible) { + this.element.style.display = isVisible ? "" : "none"; + this.isVisible = isVisible; + this.coeff = 1; + }; +}).call(ScrollBar.prototype); +var VScrollBar = function(parent, renderer) { + ScrollBar.call(this, parent); + this.scrollTop = 0; + this.scrollHeight = 0; + renderer.$scrollbarWidth = + this.width = dom.scrollbarWidth(parent.ownerDocument); + this.inner.style.width = + this.element.style.width = (this.width || 15) + 5 + "px"; + this.$minWidth = 0; +}; + +oop.inherits(VScrollBar, ScrollBar); + +(function() { + + this.classSuffix = '-v'; + this.onScroll = function() { + if (!this.skipEvent) { + this.scrollTop = this.element.scrollTop; + if (this.coeff != 1) { + var h = this.element.clientHeight / this.scrollHeight; + this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h); + } + this._emit("scroll", {data: this.scrollTop}); + } + this.skipEvent = false; + }; + this.getWidth = function() { + return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0); + }; + this.setHeight = function(height) { + this.element.style.height = height + "px"; + }; + this.setInnerHeight = + this.setScrollHeight = function(height) { + this.scrollHeight = height; + if (height > MAX_SCROLL_H) { + this.coeff = MAX_SCROLL_H / height; + height = MAX_SCROLL_H; + } else if (this.coeff != 1) { + this.coeff = 1 + } + this.inner.style.height = height + "px"; + }; + this.setScrollTop = function(scrollTop) { + if (this.scrollTop != scrollTop) { + this.skipEvent = true; + this.scrollTop = scrollTop; + this.element.scrollTop = scrollTop * this.coeff; + } + }; + +}).call(VScrollBar.prototype); +var HScrollBar = function(parent, renderer) { + ScrollBar.call(this, parent); + this.scrollLeft = 0; + this.height = renderer.$scrollbarWidth; + this.inner.style.height = + this.element.style.height = (this.height || 15) + 5 + "px"; +}; + +oop.inherits(HScrollBar, ScrollBar); + +(function() { + + this.classSuffix = '-h'; + this.onScroll = function() { + if (!this.skipEvent) { + this.scrollLeft = this.element.scrollLeft; + this._emit("scroll", {data: this.scrollLeft}); + } + this.skipEvent = false; + }; + this.getHeight = function() { + return this.isVisible ? this.height : 0; + }; + this.setWidth = function(width) { + this.element.style.width = width + "px"; + }; + this.setInnerWidth = function(width) { + this.inner.style.width = width + "px"; + }; + this.setScrollWidth = function(width) { + this.inner.style.width = width + "px"; + }; + this.setScrollLeft = function(scrollLeft) { + if (this.scrollLeft != scrollLeft) { + this.skipEvent = true; + this.scrollLeft = this.element.scrollLeft = scrollLeft; + } + }; + +}).call(HScrollBar.prototype); + + +exports.ScrollBar = VScrollBar; // backward compatibility +exports.ScrollBarV = VScrollBar; // backward compatibility +exports.ScrollBarH = HScrollBar; // backward compatibility + +exports.VScrollBar = VScrollBar; +exports.HScrollBar = HScrollBar; +}); + +ace.define("ace/renderloop",["require","exports","module","ace/lib/event"], function(require, exports, module) { +"use strict"; + +var event = require("./lib/event"); + + +var RenderLoop = function(onRender, win) { + this.onRender = onRender; + this.pending = false; + this.changes = 0; + this.window = win || window; +}; + +(function() { + + + this.schedule = function(change) { + this.changes = this.changes | change; + if (!this.pending && this.changes) { + this.pending = true; + var _self = this; + event.nextFrame(function() { + _self.pending = false; + var changes; + while (changes = _self.changes) { + _self.changes = 0; + _self.onRender(changes); + } + }, this.window); + } + }; + +}).call(RenderLoop.prototype); + +exports.RenderLoop = RenderLoop; +}); + +ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var useragent = require("../lib/useragent"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var CHAR_COUNT = 0; + +var FontMetrics = exports.FontMetrics = function(parentEl) { + this.el = dom.createElement("div"); + this.$setMeasureNodeStyles(this.el.style, true); + + this.$main = dom.createElement("div"); + this.$setMeasureNodeStyles(this.$main.style); + + this.$measureNode = dom.createElement("div"); + this.$setMeasureNodeStyles(this.$measureNode.style); + + + this.el.appendChild(this.$main); + this.el.appendChild(this.$measureNode); + parentEl.appendChild(this.el); + + if (!CHAR_COUNT) + this.$testFractionalRect(); + this.$measureNode.innerHTML = lang.stringRepeat("X", CHAR_COUNT); + + this.$characterSize = {width: 0, height: 0}; + this.checkForSizeChanges(); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.$characterSize = {width: 0, height: 0}; + + this.$testFractionalRect = function() { + var el = dom.createElement("div"); + this.$setMeasureNodeStyles(el.style); + el.style.width = "0.2px"; + document.documentElement.appendChild(el); + var w = el.getBoundingClientRect().width; + if (w > 0 && w < 1) + CHAR_COUNT = 50; + else + CHAR_COUNT = 100; + el.parentNode.removeChild(el); + }; + + this.$setMeasureNodeStyles = function(style, isRoot) { + style.width = style.height = "auto"; + style.left = style.top = "0px"; + style.visibility = "hidden"; + style.position = "absolute"; + style.whiteSpace = "pre"; + + if (useragent.isIE < 8) { + style["font-family"] = "inherit"; + } else { + style.font = "inherit"; + } + style.overflow = isRoot ? "hidden" : "visible"; + }; + + this.checkForSizeChanges = function() { + var size = this.$measureSizes(); + if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) { + this.$measureNode.style.fontWeight = "bold"; + var boldSize = this.$measureSizes(); + this.$measureNode.style.fontWeight = ""; + this.$characterSize = size; + this.charSizes = Object.create(null); + this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height; + this._emit("changeCharacterSize", {data: size}); + } + }; + + this.$pollSizeChanges = function() { + if (this.$pollSizeChangesTimer) + return this.$pollSizeChangesTimer; + var self = this; + return this.$pollSizeChangesTimer = setInterval(function() { + self.checkForSizeChanges(); + }, 500); + }; + + this.setPolling = function(val) { + if (val) { + this.$pollSizeChanges(); + } else if (this.$pollSizeChangesTimer) { + clearInterval(this.$pollSizeChangesTimer); + this.$pollSizeChangesTimer = 0; + } + }; + + this.$measureSizes = function() { + if (CHAR_COUNT === 50) { + var rect = null; + try { + rect = this.$measureNode.getBoundingClientRect(); + } catch(e) { + rect = {width: 0, height:0 }; + } + var size = { + height: rect.height, + width: rect.width / CHAR_COUNT + }; + } else { + var size = { + height: this.$measureNode.clientHeight, + width: this.$measureNode.clientWidth / CHAR_COUNT + }; + } + if (size.width === 0 || size.height === 0) + return null; + return size; + }; + + this.$measureCharWidth = function(ch) { + this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT); + var rect = this.$main.getBoundingClientRect(); + return rect.width / CHAR_COUNT; + }; + + this.getCharacterWidth = function(ch) { + var w = this.charSizes[ch]; + if (w === undefined) { + w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width; + } + return w; + }; + + this.destroy = function() { + clearInterval(this.$pollSizeChangesTimer); + if (this.el && this.el.parentNode) + this.el.parentNode.removeChild(this.el); + }; + +}).call(FontMetrics.prototype); + +}); + +ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var config = require("./config"); +var useragent = require("./lib/useragent"); +var GutterLayer = require("./layer/gutter").Gutter; +var MarkerLayer = require("./layer/marker").Marker; +var TextLayer = require("./layer/text").Text; +var CursorLayer = require("./layer/cursor").Cursor; +var HScrollBar = require("./scrollbar").HScrollBar; +var VScrollBar = require("./scrollbar").VScrollBar; +var RenderLoop = require("./renderloop").RenderLoop; +var FontMetrics = require("./layer/font_metrics").FontMetrics; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var editorCss = ".ace_editor {\ +position: relative;\ +overflow: hidden;\ +font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\ +direction: ltr;\ +text-align: left;\ +-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\ +}\ +.ace_scroller {\ +position: absolute;\ +overflow: hidden;\ +top: 0;\ +bottom: 0;\ +background-color: inherit;\ +-ms-user-select: none;\ +-moz-user-select: none;\ +-webkit-user-select: none;\ +user-select: none;\ +cursor: text;\ +}\ +.ace_content {\ +position: absolute;\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +min-width: 100%;\ +}\ +.ace_dragging .ace_scroller:before{\ +position: absolute;\ +top: 0;\ +left: 0;\ +right: 0;\ +bottom: 0;\ +content: '';\ +background: rgba(250, 250, 250, 0.01);\ +z-index: 1000;\ +}\ +.ace_dragging.ace_dark .ace_scroller:before{\ +background: rgba(0, 0, 0, 0.01);\ +}\ +.ace_selecting, .ace_selecting * {\ +cursor: text !important;\ +}\ +.ace_gutter {\ +position: absolute;\ +overflow : hidden;\ +width: auto;\ +top: 0;\ +bottom: 0;\ +left: 0;\ +cursor: default;\ +z-index: 4;\ +-ms-user-select: none;\ +-moz-user-select: none;\ +-webkit-user-select: none;\ +user-select: none;\ +}\ +.ace_gutter-active-line {\ +position: absolute;\ +left: 0;\ +right: 0;\ +}\ +.ace_scroller.ace_scroll-left {\ +box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\ +}\ +.ace_gutter-cell {\ +padding-left: 19px;\ +padding-right: 6px;\ +background-repeat: no-repeat;\ +}\ +.ace_gutter-cell.ace_error {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\");\ +background-repeat: no-repeat;\ +background-position: 2px center;\ +}\ +.ace_gutter-cell.ace_warning {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\");\ +background-position: 2px center;\ +}\ +.ace_gutter-cell.ace_info {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\");\ +background-position: 2px center;\ +}\ +.ace_dark .ace_gutter-cell.ace_info {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\");\ +}\ +.ace_scrollbar {\ +position: absolute;\ +right: 0;\ +bottom: 0;\ +z-index: 6;\ +}\ +.ace_scrollbar-inner {\ +position: absolute;\ +cursor: text;\ +left: 0;\ +top: 0;\ +}\ +.ace_scrollbar-v{\ +overflow-x: hidden;\ +overflow-y: scroll;\ +top: 0;\ +}\ +.ace_scrollbar-h {\ +overflow-x: scroll;\ +overflow-y: hidden;\ +left: 0;\ +}\ +.ace_print-margin {\ +position: absolute;\ +height: 100%;\ +}\ +.ace_text-input {\ +position: absolute;\ +z-index: 0;\ +width: 0.5em;\ +height: 1em;\ +opacity: 0;\ +background: transparent;\ +-moz-appearance: none;\ +appearance: none;\ +border: none;\ +resize: none;\ +outline: none;\ +overflow: hidden;\ +font: inherit;\ +padding: 0 1px;\ +margin: 0 -1px;\ +text-indent: -1em;\ +-ms-user-select: text;\ +-moz-user-select: text;\ +-webkit-user-select: text;\ +user-select: text;\ +white-space: pre!important;\ +}\ +.ace_text-input.ace_composition {\ +background: inherit;\ +color: inherit;\ +z-index: 1000;\ +opacity: 1;\ +text-indent: 0;\ +}\ +.ace_layer {\ +z-index: 1;\ +position: absolute;\ +overflow: hidden;\ +word-wrap: normal;\ +white-space: pre;\ +height: 100%;\ +width: 100%;\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +pointer-events: none;\ +}\ +.ace_gutter-layer {\ +position: relative;\ +width: auto;\ +text-align: right;\ +pointer-events: auto;\ +}\ +.ace_text-layer {\ +font: inherit !important;\ +}\ +.ace_cjk {\ +display: inline-block;\ +text-align: center;\ +}\ +.ace_cursor-layer {\ +z-index: 4;\ +}\ +.ace_cursor {\ +z-index: 4;\ +position: absolute;\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +border-left: 2px solid;\ +transform: translatez(0);\ +}\ +.ace_multiselect .ace_cursor {\ +border-left-width: 1px;\ +}\ +.ace_slim-cursors .ace_cursor {\ +border-left-width: 1px;\ +}\ +.ace_overwrite-cursors .ace_cursor {\ +border-left-width: 0;\ +border-bottom: 1px solid;\ +}\ +.ace_hidden-cursors .ace_cursor {\ +opacity: 0.2;\ +}\ +.ace_smooth-blinking .ace_cursor {\ +-webkit-transition: opacity 0.18s;\ +transition: opacity 0.18s;\ +}\ +.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\ +position: absolute;\ +z-index: 3;\ +}\ +.ace_marker-layer .ace_selection {\ +position: absolute;\ +z-index: 5;\ +}\ +.ace_marker-layer .ace_bracket {\ +position: absolute;\ +z-index: 6;\ +}\ +.ace_marker-layer .ace_active-line {\ +position: absolute;\ +z-index: 2;\ +}\ +.ace_marker-layer .ace_selected-word {\ +position: absolute;\ +z-index: 4;\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +}\ +.ace_line .ace_fold {\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +display: inline-block;\ +height: 11px;\ +margin-top: -2px;\ +vertical-align: middle;\ +background-image:\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\");\ +background-repeat: no-repeat, repeat-x;\ +background-position: center center, top left;\ +color: transparent;\ +border: 1px solid black;\ +border-radius: 2px;\ +cursor: pointer;\ +pointer-events: auto;\ +}\ +.ace_dark .ace_fold {\ +}\ +.ace_fold:hover{\ +background-image:\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\");\ +}\ +.ace_tooltip {\ +background-color: #FFF;\ +background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));\ +background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\ +border: 1px solid gray;\ +border-radius: 1px;\ +box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\ +color: black;\ +max-width: 100%;\ +padding: 3px 4px;\ +position: fixed;\ +z-index: 999999;\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +cursor: default;\ +white-space: pre;\ +word-wrap: break-word;\ +line-height: normal;\ +font-style: normal;\ +font-weight: normal;\ +letter-spacing: normal;\ +pointer-events: none;\ +}\ +.ace_folding-enabled > .ace_gutter-cell {\ +padding-right: 13px;\ +}\ +.ace_fold-widget {\ +-moz-box-sizing: border-box;\ +-webkit-box-sizing: border-box;\ +box-sizing: border-box;\ +margin: 0 -12px 0 1px;\ +display: none;\ +width: 11px;\ +vertical-align: top;\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\");\ +background-repeat: no-repeat;\ +background-position: center;\ +border-radius: 3px;\ +border: 1px solid transparent;\ +cursor: pointer;\ +}\ +.ace_folding-enabled .ace_fold-widget {\ +display: inline-block; \ +}\ +.ace_fold-widget.ace_end {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\");\ +}\ +.ace_fold-widget.ace_closed {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\");\ +}\ +.ace_fold-widget:hover {\ +border: 1px solid rgba(0, 0, 0, 0.3);\ +background-color: rgba(255, 255, 255, 0.2);\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\ +}\ +.ace_fold-widget:active {\ +border: 1px solid rgba(0, 0, 0, 0.4);\ +background-color: rgba(0, 0, 0, 0.05);\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\ +}\ +.ace_dark .ace_fold-widget {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");\ +}\ +.ace_dark .ace_fold-widget.ace_end {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");\ +}\ +.ace_dark .ace_fold-widget.ace_closed {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");\ +}\ +.ace_dark .ace_fold-widget:hover {\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\ +background-color: rgba(255, 255, 255, 0.1);\ +}\ +.ace_dark .ace_fold-widget:active {\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\ +}\ +.ace_fold-widget.ace_invalid {\ +background-color: #FFB4B4;\ +border-color: #DE5555;\ +}\ +.ace_fade-fold-widgets .ace_fold-widget {\ +-webkit-transition: opacity 0.4s ease 0.05s;\ +transition: opacity 0.4s ease 0.05s;\ +opacity: 0;\ +}\ +.ace_fade-fold-widgets:hover .ace_fold-widget {\ +-webkit-transition: opacity 0.05s ease 0.05s;\ +transition: opacity 0.05s ease 0.05s;\ +opacity:1;\ +}\ +.ace_underline {\ +text-decoration: underline;\ +}\ +.ace_bold {\ +font-weight: bold;\ +}\ +.ace_nobold .ace_bold {\ +font-weight: normal;\ +}\ +.ace_italic {\ +font-style: italic;\ +}\ +.ace_error-marker {\ +background-color: rgba(255, 0, 0,0.2);\ +position: absolute;\ +z-index: 9;\ +}\ +.ace_highlight-marker {\ +background-color: rgba(255, 255, 0,0.2);\ +position: absolute;\ +z-index: 8;\ +}\ +.ace_br1 {border-top-left-radius : 3px;}\ +.ace_br2 {border-top-right-radius : 3px;}\ +.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\ +.ace_br4 {border-bottom-right-radius: 3px;}\ +.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\ +.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\ +.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\ +.ace_br8 {border-bottom-left-radius : 3px;}\ +.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\ +.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\ +.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_text-input-ios {\ +position: absolute !important;\ +top: -100000px !important;\ +left: -100000px !important;\ +}\ +"; + +dom.importCssString(editorCss, "ace_editor.css"); + +var VirtualRenderer = function(container, theme) { + var _self = this; + + this.container = container || dom.createElement("div"); + this.$keepTextAreaAtCursor = !useragent.isOldIE; + + dom.addCssClass(this.container, "ace_editor"); + + this.setTheme(theme); + + this.$gutter = dom.createElement("div"); + this.$gutter.className = "ace_gutter"; + this.container.appendChild(this.$gutter); + + this.scroller = dom.createElement("div"); + this.scroller.className = "ace_scroller"; + this.container.appendChild(this.scroller); + + this.content = dom.createElement("div"); + this.content.className = "ace_content"; + this.scroller.appendChild(this.content); + + this.$gutterLayer = new GutterLayer(this.$gutter); + this.$gutterLayer.on("changeGutterWidth", this.onGutterResize.bind(this)); + + this.$markerBack = new MarkerLayer(this.content); + + var textLayer = this.$textLayer = new TextLayer(this.content); + this.canvas = textLayer.element; + + this.$markerFront = new MarkerLayer(this.content); + + this.$cursorLayer = new CursorLayer(this.content); + this.$horizScroll = false; + this.$vScroll = false; + + this.scrollBar = + this.scrollBarV = new VScrollBar(this.container, this); + this.scrollBarH = new HScrollBar(this.container, this); + this.scrollBarV.addEventListener("scroll", function(e) { + if (!_self.$scrollAnimation) + _self.session.setScrollTop(e.data - _self.scrollMargin.top); + }); + this.scrollBarH.addEventListener("scroll", function(e) { + if (!_self.$scrollAnimation) + _self.session.setScrollLeft(e.data - _self.scrollMargin.left); + }); + + this.scrollTop = 0; + this.scrollLeft = 0; + + this.cursorPos = { + row : 0, + column : 0 + }; + + this.$fontMetrics = new FontMetrics(this.container); + this.$textLayer.$setFontMetrics(this.$fontMetrics); + this.$textLayer.addEventListener("changeCharacterSize", function(e) { + _self.updateCharacterSize(); + _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height); + _self._signal("changeCharacterSize", e); + }); + + this.$size = { + width: 0, + height: 0, + scrollerHeight: 0, + scrollerWidth: 0, + $dirty: true + }; + + this.layerConfig = { + width : 1, + padding : 0, + firstRow : 0, + firstRowScreen: 0, + lastRow : 0, + lineHeight : 0, + characterWidth : 0, + minHeight : 1, + maxHeight : 1, + offset : 0, + height : 1, + gutterOffset: 1 + }; + + this.scrollMargin = { + left: 0, + right: 0, + top: 0, + bottom: 0, + v: 0, + h: 0 + }; + + this.$loop = new RenderLoop( + this.$renderChanges.bind(this), + this.container.ownerDocument.defaultView + ); + this.$loop.schedule(this.CHANGE_FULL); + + this.updateCharacterSize(); + this.setPadding(4); + config.resetOptions(this); + config._emit("renderer", this); +}; + +(function() { + + this.CHANGE_CURSOR = 1; + this.CHANGE_MARKER = 2; + this.CHANGE_GUTTER = 4; + this.CHANGE_SCROLL = 8; + this.CHANGE_LINES = 16; + this.CHANGE_TEXT = 32; + this.CHANGE_SIZE = 64; + this.CHANGE_MARKER_BACK = 128; + this.CHANGE_MARKER_FRONT = 256; + this.CHANGE_FULL = 512; + this.CHANGE_H_SCROLL = 1024; + + oop.implement(this, EventEmitter); + + this.updateCharacterSize = function() { + if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) { + this.$allowBoldFonts = this.$textLayer.allowBoldFonts; + this.setStyle("ace_nobold", !this.$allowBoldFonts); + } + + this.layerConfig.characterWidth = + this.characterWidth = this.$textLayer.getCharacterWidth(); + this.layerConfig.lineHeight = + this.lineHeight = this.$textLayer.getLineHeight(); + this.$updatePrintMargin(); + }; + this.setSession = function(session) { + if (this.session) + this.session.doc.off("changeNewLineMode", this.onChangeNewLineMode); + + this.session = session; + if (session && this.scrollMargin.top && session.getScrollTop() <= 0) + session.setScrollTop(-this.scrollMargin.top); + + this.$cursorLayer.setSession(session); + this.$markerBack.setSession(session); + this.$markerFront.setSession(session); + this.$gutterLayer.setSession(session); + this.$textLayer.setSession(session); + if (!session) + return; + + this.$loop.schedule(this.CHANGE_FULL); + this.session.$setFontMetrics(this.$fontMetrics); + this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null; + + this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this); + this.onChangeNewLineMode() + this.session.doc.on("changeNewLineMode", this.onChangeNewLineMode); + }; + this.updateLines = function(firstRow, lastRow, force) { + if (lastRow === undefined) + lastRow = Infinity; + + if (!this.$changedLines) { + this.$changedLines = { + firstRow: firstRow, + lastRow: lastRow + }; + } + else { + if (this.$changedLines.firstRow > firstRow) + this.$changedLines.firstRow = firstRow; + + if (this.$changedLines.lastRow < lastRow) + this.$changedLines.lastRow = lastRow; + } + if (this.$changedLines.lastRow < this.layerConfig.firstRow) { + if (force) + this.$changedLines.lastRow = this.layerConfig.lastRow; + else + return; + } + if (this.$changedLines.firstRow > this.layerConfig.lastRow) + return; + this.$loop.schedule(this.CHANGE_LINES); + }; + + this.onChangeNewLineMode = function() { + this.$loop.schedule(this.CHANGE_TEXT); + this.$textLayer.$updateEolChar(); + }; + + this.onChangeTabSize = function() { + this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER); + this.$textLayer.onChangeTabSize(); + }; + this.updateText = function() { + this.$loop.schedule(this.CHANGE_TEXT); + }; + this.updateFull = function(force) { + if (force) + this.$renderChanges(this.CHANGE_FULL, true); + else + this.$loop.schedule(this.CHANGE_FULL); + }; + this.updateFontSize = function() { + this.$textLayer.checkForSizeChanges(); + }; + + this.$changes = 0; + this.$updateSizeAsync = function() { + if (this.$loop.pending) + this.$size.$dirty = true; + else + this.onResize(); + }; + this.onResize = function(force, gutterWidth, width, height) { + if (this.resizing > 2) + return; + else if (this.resizing > 0) + this.resizing++; + else + this.resizing = force ? 1 : 0; + var el = this.container; + if (!height) + height = el.clientHeight || el.scrollHeight; + if (!width) + width = el.clientWidth || el.scrollWidth; + var changes = this.$updateCachedSize(force, gutterWidth, width, height); + + + if (!this.$size.scrollerHeight || (!width && !height)) + return this.resizing = 0; + + if (force) + this.$gutterLayer.$padding = null; + + if (force) + this.$renderChanges(changes | this.$changes, true); + else + this.$loop.schedule(changes | this.$changes); + + if (this.resizing) + this.resizing = 0; + this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null; + }; + + this.$updateCachedSize = function(force, gutterWidth, width, height) { + height -= (this.$extraHeight || 0); + var changes = 0; + var size = this.$size; + var oldSize = { + width: size.width, + height: size.height, + scrollerHeight: size.scrollerHeight, + scrollerWidth: size.scrollerWidth + }; + if (height && (force || size.height != height)) { + size.height = height; + changes |= this.CHANGE_SIZE; + + size.scrollerHeight = size.height; + if (this.$horizScroll) + size.scrollerHeight -= this.scrollBarH.getHeight(); + this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + "px"; + + changes = changes | this.CHANGE_SCROLL; + } + + if (width && (force || size.width != width)) { + changes |= this.CHANGE_SIZE; + size.width = width; + + if (gutterWidth == null) + gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0; + + this.gutterWidth = gutterWidth; + + this.scrollBarH.element.style.left = + this.scroller.style.left = gutterWidth + "px"; + size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth()); + + this.scrollBarH.element.style.right = + this.scroller.style.right = this.scrollBarV.getWidth() + "px"; + this.scroller.style.bottom = this.scrollBarH.getHeight() + "px"; + + if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) + changes |= this.CHANGE_FULL; + } + + size.$dirty = !width || !height; + + if (changes) + this._signal("resize", oldSize); + + return changes; + }; + + this.onGutterResize = function() { + var gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0; + if (gutterWidth != this.gutterWidth) + this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height); + + if (this.session.getUseWrapMode() && this.adjustWrapLimit()) { + this.$loop.schedule(this.CHANGE_FULL); + } else if (this.$size.$dirty) { + this.$loop.schedule(this.CHANGE_FULL); + } else { + this.$computeLayerConfig(); + this.$loop.schedule(this.CHANGE_MARKER); + } + }; + this.adjustWrapLimit = function() { + var availableWidth = this.$size.scrollerWidth - this.$padding * 2; + var limit = Math.floor(availableWidth / this.characterWidth); + return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn); + }; + this.setAnimatedScroll = function(shouldAnimate){ + this.setOption("animatedScroll", shouldAnimate); + }; + this.getAnimatedScroll = function() { + return this.$animatedScroll; + }; + this.setShowInvisibles = function(showInvisibles) { + this.setOption("showInvisibles", showInvisibles); + }; + this.getShowInvisibles = function() { + return this.getOption("showInvisibles"); + }; + this.getDisplayIndentGuides = function() { + return this.getOption("displayIndentGuides"); + }; + + this.setDisplayIndentGuides = function(display) { + this.setOption("displayIndentGuides", display); + }; + this.setShowPrintMargin = function(showPrintMargin) { + this.setOption("showPrintMargin", showPrintMargin); + }; + this.getShowPrintMargin = function() { + return this.getOption("showPrintMargin"); + }; + this.setPrintMarginColumn = function(showPrintMargin) { + this.setOption("printMarginColumn", showPrintMargin); + }; + this.getPrintMarginColumn = function() { + return this.getOption("printMarginColumn"); + }; + this.getShowGutter = function(){ + return this.getOption("showGutter"); + }; + this.setShowGutter = function(show){ + return this.setOption("showGutter", show); + }; + + this.getFadeFoldWidgets = function(){ + return this.getOption("fadeFoldWidgets") + }; + + this.setFadeFoldWidgets = function(show) { + this.setOption("fadeFoldWidgets", show); + }; + + this.setHighlightGutterLine = function(shouldHighlight) { + this.setOption("highlightGutterLine", shouldHighlight); + }; + + this.getHighlightGutterLine = function() { + return this.getOption("highlightGutterLine"); + }; + + this.$updateGutterLineHighlight = function() { + var pos = this.$cursorLayer.$pixelPos; + var height = this.layerConfig.lineHeight; + if (this.session.getUseWrapMode()) { + var cursor = this.session.selection.getCursor(); + cursor.column = 0; + pos = this.$cursorLayer.getPixelPosition(cursor, true); + height *= this.session.getRowLength(cursor.row); + } + this.$gutterLineHighlight.style.top = pos.top - this.layerConfig.offset + "px"; + this.$gutterLineHighlight.style.height = height + "px"; + }; + + this.$updatePrintMargin = function() { + if (!this.$showPrintMargin && !this.$printMarginEl) + return; + + if (!this.$printMarginEl) { + var containerEl = dom.createElement("div"); + containerEl.className = "ace_layer ace_print-margin-layer"; + this.$printMarginEl = dom.createElement("div"); + this.$printMarginEl.className = "ace_print-margin"; + containerEl.appendChild(this.$printMarginEl); + this.content.insertBefore(containerEl, this.content.firstChild); + } + + var style = this.$printMarginEl.style; + style.left = ((this.characterWidth * this.$printMarginColumn) + this.$padding) + "px"; + style.visibility = this.$showPrintMargin ? "visible" : "hidden"; + + if (this.session && this.session.$wrap == -1) + this.adjustWrapLimit(); + }; + this.getContainerElement = function() { + return this.container; + }; + this.getMouseEventTarget = function() { + return this.scroller; + }; + this.getTextAreaContainer = function() { + return this.container; + }; + this.$moveTextAreaToCursor = function() { + if (!this.$keepTextAreaAtCursor) + return; + var config = this.layerConfig; + var posTop = this.$cursorLayer.$pixelPos.top; + var posLeft = this.$cursorLayer.$pixelPos.left; + posTop -= config.offset; + + var style = this.textarea.style; + var h = this.lineHeight; + if (posTop < 0 || posTop > config.height - h) { + style.top = style.left = "0"; + return; + } + + var w = this.characterWidth; + if (this.$composition) { + var val = this.textarea.value.replace(/^\x01+/, ""); + w *= (this.session.$getStringScreenWidth(val)[0]+2); + h += 2; + } + posLeft -= this.scrollLeft; + if (posLeft > this.$size.scrollerWidth - w) + posLeft = this.$size.scrollerWidth - w; + + posLeft += this.gutterWidth; + style.height = h + "px"; + style.width = w + "px"; + style.left = Math.min(posLeft, this.$size.scrollerWidth - w) + "px"; + style.top = Math.min(posTop, this.$size.height - h) + "px"; + }; + this.getFirstVisibleRow = function() { + return this.layerConfig.firstRow; + }; + this.getFirstFullyVisibleRow = function() { + return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1); + }; + this.getLastFullyVisibleRow = function() { + var config = this.layerConfig; + var lastRow = config.lastRow + var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight; + if (top - this.session.getScrollTop() > config.height - config.lineHeight) + return lastRow - 1; + return lastRow; + }; + this.getLastVisibleRow = function() { + return this.layerConfig.lastRow; + }; + + this.$padding = null; + this.setPadding = function(padding) { + this.$padding = padding; + this.$textLayer.setPadding(padding); + this.$cursorLayer.setPadding(padding); + this.$markerFront.setPadding(padding); + this.$markerBack.setPadding(padding); + this.$loop.schedule(this.CHANGE_FULL); + this.$updatePrintMargin(); + }; + + this.setScrollMargin = function(top, bottom, left, right) { + var sm = this.scrollMargin; + sm.top = top|0; + sm.bottom = bottom|0; + sm.right = right|0; + sm.left = left|0; + sm.v = sm.top + sm.bottom; + sm.h = sm.left + sm.right; + if (sm.top && this.scrollTop <= 0 && this.session) + this.session.setScrollTop(-sm.top); + this.updateFull(); + }; + this.getHScrollBarAlwaysVisible = function() { + return this.$hScrollBarAlwaysVisible; + }; + this.setHScrollBarAlwaysVisible = function(alwaysVisible) { + this.setOption("hScrollBarAlwaysVisible", alwaysVisible); + }; + this.getVScrollBarAlwaysVisible = function() { + return this.$vScrollBarAlwaysVisible; + }; + this.setVScrollBarAlwaysVisible = function(alwaysVisible) { + this.setOption("vScrollBarAlwaysVisible", alwaysVisible); + }; + + this.$updateScrollBarV = function() { + var scrollHeight = this.layerConfig.maxHeight; + var scrollerHeight = this.$size.scrollerHeight; + if (!this.$maxLines && this.$scrollPastEnd) { + scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd; + if (this.scrollTop > scrollHeight - scrollerHeight) { + scrollHeight = this.scrollTop + scrollerHeight; + this.scrollBarV.scrollTop = null; + } + } + this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v); + this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top); + }; + this.$updateScrollBarH = function() { + this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h); + this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left); + }; + + this.$frozen = false; + this.freeze = function() { + this.$frozen = true; + }; + + this.unfreeze = function() { + this.$frozen = false; + }; + + this.$renderChanges = function(changes, force) { + if (this.$changes) { + changes |= this.$changes; + this.$changes = 0; + } + if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) { + this.$changes |= changes; + return; + } + if (this.$size.$dirty) { + this.$changes |= changes; + return this.onResize(true); + } + if (!this.lineHeight) { + this.$textLayer.checkForSizeChanges(); + } + + this._signal("beforeRender"); + var config = this.layerConfig; + if (changes & this.CHANGE_FULL || + changes & this.CHANGE_SIZE || + changes & this.CHANGE_TEXT || + changes & this.CHANGE_LINES || + changes & this.CHANGE_SCROLL || + changes & this.CHANGE_H_SCROLL + ) { + changes |= this.$computeLayerConfig(); + if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) { + var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight; + if (st > 0) { + this.scrollTop = st; + changes = changes | this.CHANGE_SCROLL; + changes |= this.$computeLayerConfig(); + } + } + config = this.layerConfig; + this.$updateScrollBarV(); + if (changes & this.CHANGE_H_SCROLL) + this.$updateScrollBarH(); + this.$gutterLayer.element.style.marginTop = (-config.offset) + "px"; + this.content.style.marginTop = (-config.offset) + "px"; + this.content.style.width = config.width + 2 * this.$padding + "px"; + this.content.style.height = config.minHeight + "px"; + } + if (changes & this.CHANGE_H_SCROLL) { + this.content.style.marginLeft = -this.scrollLeft + "px"; + this.scroller.className = this.scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left"; + } + if (changes & this.CHANGE_FULL) { + this.$textLayer.update(config); + if (this.$showGutter) + this.$gutterLayer.update(config); + this.$markerBack.update(config); + this.$markerFront.update(config); + this.$cursorLayer.update(config); + this.$moveTextAreaToCursor(); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + this._signal("afterRender"); + return; + } + if (changes & this.CHANGE_SCROLL) { + if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES) + this.$textLayer.update(config); + else + this.$textLayer.scrollLines(config); + + if (this.$showGutter) + this.$gutterLayer.update(config); + this.$markerBack.update(config); + this.$markerFront.update(config); + this.$cursorLayer.update(config); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + this.$moveTextAreaToCursor(); + this._signal("afterRender"); + return; + } + + if (changes & this.CHANGE_TEXT) { + this.$textLayer.update(config); + if (this.$showGutter) + this.$gutterLayer.update(config); + } + else if (changes & this.CHANGE_LINES) { + if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter) + this.$gutterLayer.update(config); + } + else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) { + if (this.$showGutter) + this.$gutterLayer.update(config); + } + + if (changes & this.CHANGE_CURSOR) { + this.$cursorLayer.update(config); + this.$moveTextAreaToCursor(); + this.$highlightGutterLine && this.$updateGutterLineHighlight(); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) { + this.$markerFront.update(config); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) { + this.$markerBack.update(config); + } + + this._signal("afterRender"); + }; + + + this.$autosize = function() { + var height = this.session.getScreenLength() * this.lineHeight; + var maxHeight = this.$maxLines * this.lineHeight; + var desiredHeight = Math.min(maxHeight, + Math.max((this.$minLines || 1) * this.lineHeight, height) + ) + this.scrollMargin.v + (this.$extraHeight || 0); + if (this.$horizScroll) + desiredHeight += this.scrollBarH.getHeight(); + if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight) + desiredHeight = this.$maxPixelHeight; + var vScroll = height > maxHeight; + + if (desiredHeight != this.desiredHeight || + this.$size.height != this.desiredHeight || vScroll != this.$vScroll) { + if (vScroll != this.$vScroll) { + this.$vScroll = vScroll; + this.scrollBarV.setVisible(vScroll); + } + + var w = this.container.clientWidth; + this.container.style.height = desiredHeight + "px"; + this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight); + this.desiredHeight = desiredHeight; + + this._signal("autosize"); + } + }; + + this.$computeLayerConfig = function() { + var session = this.session; + var size = this.$size; + + var hideScrollbars = size.height <= 2 * this.lineHeight; + var screenLines = this.session.getScreenLength(); + var maxHeight = screenLines * this.lineHeight; + + var longestLine = this.$getLongestLine(); + + var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible || + size.scrollerWidth - longestLine - 2 * this.$padding < 0); + + var hScrollChanged = this.$horizScroll !== horizScroll; + if (hScrollChanged) { + this.$horizScroll = horizScroll; + this.scrollBarH.setVisible(horizScroll); + } + var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine + if (this.$maxLines && this.lineHeight > 1) + this.$autosize(); + + var offset = this.scrollTop % this.lineHeight; + var minHeight = size.scrollerHeight + this.lineHeight; + + var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd + ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd + : 0; + maxHeight += scrollPastEnd; + + var sm = this.scrollMargin; + this.session.setScrollTop(Math.max(-sm.top, + Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom))); + + this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, + longestLine + 2 * this.$padding - size.scrollerWidth + sm.right))); + + var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible || + size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top); + var vScrollChanged = vScrollBefore !== vScroll; + if (vScrollChanged) { + this.$vScroll = vScroll; + this.scrollBarV.setVisible(vScroll); + } + + var lineCount = Math.ceil(minHeight / this.lineHeight) - 1; + var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight)); + var lastRow = firstRow + lineCount; + var firstRowScreen, firstRowHeight; + var lineHeight = this.lineHeight; + firstRow = session.screenToDocumentRow(firstRow, 0); + var foldLine = session.getFoldLine(firstRow); + if (foldLine) { + firstRow = foldLine.start.row; + } + + firstRowScreen = session.documentToScreenRow(firstRow, 0); + firstRowHeight = session.getRowLength(firstRow) * lineHeight; + + lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1); + minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight + + firstRowHeight; + + offset = this.scrollTop - firstRowScreen * lineHeight; + + var changes = 0; + if (this.layerConfig.width != longestLine) + changes = this.CHANGE_H_SCROLL; + if (hScrollChanged || vScrollChanged) { + changes = this.$updateCachedSize(true, this.gutterWidth, size.width, size.height); + this._signal("scrollbarVisibilityChanged"); + if (vScrollChanged) + longestLine = this.$getLongestLine(); + } + + this.layerConfig = { + width : longestLine, + padding : this.$padding, + firstRow : firstRow, + firstRowScreen: firstRowScreen, + lastRow : lastRow, + lineHeight : lineHeight, + characterWidth : this.characterWidth, + minHeight : minHeight, + maxHeight : maxHeight, + offset : offset, + gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0, + height : this.$size.scrollerHeight + }; + + return changes; + }; + + this.$updateLines = function() { + if (!this.$changedLines) return; + var firstRow = this.$changedLines.firstRow; + var lastRow = this.$changedLines.lastRow; + this.$changedLines = null; + + var layerConfig = this.layerConfig; + + if (firstRow > layerConfig.lastRow + 1) { return; } + if (lastRow < layerConfig.firstRow) { return; } + if (lastRow === Infinity) { + if (this.$showGutter) + this.$gutterLayer.update(layerConfig); + this.$textLayer.update(layerConfig); + return; + } + this.$textLayer.updateLines(layerConfig, firstRow, lastRow); + return true; + }; + + this.$getLongestLine = function() { + var charCount = this.session.getScreenWidth(); + if (this.showInvisibles && !this.session.$useWrapMode) + charCount += 1; + + return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth)); + }; + this.updateFrontMarkers = function() { + this.$markerFront.setMarkers(this.session.getMarkers(true)); + this.$loop.schedule(this.CHANGE_MARKER_FRONT); + }; + this.updateBackMarkers = function() { + this.$markerBack.setMarkers(this.session.getMarkers()); + this.$loop.schedule(this.CHANGE_MARKER_BACK); + }; + this.addGutterDecoration = function(row, className){ + this.$gutterLayer.addGutterDecoration(row, className); + }; + this.removeGutterDecoration = function(row, className){ + this.$gutterLayer.removeGutterDecoration(row, className); + }; + this.updateBreakpoints = function(rows) { + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.setAnnotations = function(annotations) { + this.$gutterLayer.setAnnotations(annotations); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.updateCursor = function() { + this.$loop.schedule(this.CHANGE_CURSOR); + }; + this.hideCursor = function() { + this.$cursorLayer.hideCursor(); + }; + this.showCursor = function() { + this.$cursorLayer.showCursor(); + }; + + this.scrollSelectionIntoView = function(anchor, lead, offset) { + this.scrollCursorIntoView(anchor, offset); + this.scrollCursorIntoView(lead, offset); + }; + this.scrollCursorIntoView = function(cursor, offset, $viewMargin) { + if (this.$size.scrollerHeight === 0) + return; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + + var left = pos.left; + var top = pos.top; + + var topMargin = $viewMargin && $viewMargin.top || 0; + var bottomMargin = $viewMargin && $viewMargin.bottom || 0; + + var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop; + + if (scrollTop + topMargin > top) { + if (offset && scrollTop + topMargin > top + this.lineHeight) + top -= offset * this.$size.scrollerHeight; + if (top === 0) + top = -this.scrollMargin.top; + this.session.setScrollTop(top); + } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) { + if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight) + top += offset * this.$size.scrollerHeight; + this.session.setScrollTop(top + this.lineHeight - this.$size.scrollerHeight); + } + + var scrollLeft = this.scrollLeft; + + if (scrollLeft > left) { + if (left < this.$padding + 2 * this.layerConfig.characterWidth) + left = -this.scrollMargin.left; + this.session.setScrollLeft(left); + } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) { + this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth)); + } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) { + this.session.setScrollLeft(0); + } + }; + this.getScrollTop = function() { + return this.session.getScrollTop(); + }; + this.getScrollLeft = function() { + return this.session.getScrollLeft(); + }; + this.getScrollTopRow = function() { + return this.scrollTop / this.lineHeight; + }; + this.getScrollBottomRow = function() { + return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1); + }; + this.scrollToRow = function(row) { + this.session.setScrollTop(row * this.lineHeight); + }; + + this.alignCursor = function(cursor, alignment) { + if (typeof cursor == "number") + cursor = {row: cursor, column: 0}; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + var h = this.$size.scrollerHeight - this.lineHeight; + var offset = pos.top - h * (alignment || 0); + + this.session.setScrollTop(offset); + return offset; + }; + + this.STEPS = 8; + this.$calcSteps = function(fromValue, toValue){ + var i = 0; + var l = this.STEPS; + var steps = []; + + var func = function(t, x_min, dx) { + return dx * (Math.pow(t - 1, 3) + 1) + x_min; + }; + + for (i = 0; i < l; ++i) + steps.push(func(i / this.STEPS, fromValue, toValue - fromValue)); + + return steps; + }; + this.scrollToLine = function(line, center, animate, callback) { + var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0}); + var offset = pos.top; + if (center) + offset -= this.$size.scrollerHeight / 2; + + var initialScroll = this.scrollTop; + this.session.setScrollTop(offset); + if (animate !== false) + this.animateScrolling(initialScroll, callback); + }; + + this.animateScrolling = function(fromValue, callback) { + var toValue = this.scrollTop; + if (!this.$animatedScroll) + return; + var _self = this; + + if (fromValue == toValue) + return; + + if (this.$scrollAnimation) { + var oldSteps = this.$scrollAnimation.steps; + if (oldSteps.length) { + fromValue = oldSteps[0]; + if (fromValue == toValue) + return; + } + } + + var steps = _self.$calcSteps(fromValue, toValue); + this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps}; + + clearInterval(this.$timer); + + _self.session.setScrollTop(steps.shift()); + _self.session.$scrollTop = toValue; + this.$timer = setInterval(function() { + if (steps.length) { + _self.session.setScrollTop(steps.shift()); + _self.session.$scrollTop = toValue; + } else if (toValue != null) { + _self.session.$scrollTop = -1; + _self.session.setScrollTop(toValue); + toValue = null; + } else { + _self.$timer = clearInterval(_self.$timer); + _self.$scrollAnimation = null; + callback && callback(); + } + }, 10); + }; + this.scrollToY = function(scrollTop) { + if (this.scrollTop !== scrollTop) { + this.$loop.schedule(this.CHANGE_SCROLL); + this.scrollTop = scrollTop; + } + }; + this.scrollToX = function(scrollLeft) { + if (this.scrollLeft !== scrollLeft) + this.scrollLeft = scrollLeft; + this.$loop.schedule(this.CHANGE_H_SCROLL); + }; + this.scrollTo = function(x, y) { + this.session.setScrollTop(y); + this.session.setScrollLeft(y); + }; + this.scrollBy = function(deltaX, deltaY) { + deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY); + deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX); + }; + this.isScrollableBy = function(deltaX, deltaY) { + if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top) + return true; + if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight + - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom) + return true; + if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left) + return true; + if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth + - this.layerConfig.width < -1 + this.scrollMargin.right) + return true; + }; + + this.pixelToScreenCoordinates = function(x, y) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var offset = (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth; + var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight); + var col = Math.round(offset); + + return {row: row, column: col, side: offset - col > 0 ? 1 : -1}; + }; + + this.screenToTextCoordinates = function(x, y) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var col = Math.round( + (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth + ); + + var row = (y + this.scrollTop - canvasPos.top) / this.lineHeight; + + return this.session.screenToDocumentPosition(row, Math.max(col, 0)); + }; + this.textToScreenCoordinates = function(row, column) { + var canvasPos = this.scroller.getBoundingClientRect(); + var pos = this.session.documentToScreenPosition(row, column); + + var x = this.$padding + Math.round(pos.column * this.characterWidth); + var y = pos.row * this.lineHeight; + + return { + pageX: canvasPos.left + x - this.scrollLeft, + pageY: canvasPos.top + y - this.scrollTop + }; + }; + this.visualizeFocus = function() { + dom.addCssClass(this.container, "ace_focus"); + }; + this.visualizeBlur = function() { + dom.removeCssClass(this.container, "ace_focus"); + }; + this.showComposition = function(position) { + if (!this.$composition) + this.$composition = { + keepTextAreaAtCursor: this.$keepTextAreaAtCursor, + cssText: this.textarea.style.cssText + }; + + this.$keepTextAreaAtCursor = true; + dom.addCssClass(this.textarea, "ace_composition"); + this.textarea.style.cssText = ""; + this.$moveTextAreaToCursor(); + }; + this.setCompositionText = function(text) { + this.$moveTextAreaToCursor(); + }; + this.hideComposition = function() { + if (!this.$composition) + return; + + dom.removeCssClass(this.textarea, "ace_composition"); + this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor; + this.textarea.style.cssText = this.$composition.cssText; + this.$composition = null; + }; + this.setTheme = function(theme, cb) { + var _self = this; + this.$themeId = theme; + _self._dispatchEvent('themeChange',{theme:theme}); + + if (!theme || typeof theme == "string") { + var moduleName = theme || this.$options.theme.initialValue; + config.loadModule(["theme", moduleName], afterLoad); + } else { + afterLoad(theme); + } + + function afterLoad(module) { + if (_self.$themeId != theme) + return cb && cb(); + if (!module || !module.cssClass) + throw new Error("couldn't load module " + theme + " or it didn't call define"); + dom.importCssString( + module.cssText, + module.cssClass, + _self.container.ownerDocument + ); + + if (_self.theme) + dom.removeCssClass(_self.container, _self.theme.cssClass); + + var padding = "padding" in module ? module.padding + : "padding" in (_self.theme || {}) ? 4 : _self.$padding; + if (_self.$padding && padding != _self.$padding) + _self.setPadding(padding); + _self.$theme = module.cssClass; + + _self.theme = module; + dom.addCssClass(_self.container, module.cssClass); + dom.setCssClass(_self.container, "ace_dark", module.isDark); + if (_self.$size) { + _self.$size.width = 0; + _self.$updateSizeAsync(); + } + + _self._dispatchEvent('themeLoaded', {theme:module}); + cb && cb(); + } + }; + this.getTheme = function() { + return this.$themeId; + }; + this.setStyle = function(style, include) { + dom.setCssClass(this.container, style, include !== false); + }; + this.unsetStyle = function(style) { + dom.removeCssClass(this.container, style); + }; + + this.setCursorStyle = function(style) { + if (this.scroller.style.cursor != style) + this.scroller.style.cursor = style; + }; + this.setMouseCursor = function(cursorStyle) { + this.scroller.style.cursor = cursorStyle; + }; + this.destroy = function() { + this.$textLayer.destroy(); + this.$cursorLayer.destroy(); + }; + +}).call(VirtualRenderer.prototype); + + +config.defineOptions(VirtualRenderer.prototype, "renderer", { + animatedScroll: {initialValue: false}, + showInvisibles: { + set: function(value) { + if (this.$textLayer.setShowInvisibles(value)) + this.$loop.schedule(this.CHANGE_TEXT); + }, + initialValue: false + }, + showPrintMargin: { + set: function() { this.$updatePrintMargin(); }, + initialValue: true + }, + printMarginColumn: { + set: function() { this.$updatePrintMargin(); }, + initialValue: 80 + }, + printMargin: { + set: function(val) { + if (typeof val == "number") + this.$printMarginColumn = val; + this.$showPrintMargin = !!val; + this.$updatePrintMargin(); + }, + get: function() { + return this.$showPrintMargin && this.$printMarginColumn; + } + }, + showGutter: { + set: function(show){ + this.$gutter.style.display = show ? "block" : "none"; + this.$loop.schedule(this.CHANGE_FULL); + this.onGutterResize(); + }, + initialValue: true + }, + fadeFoldWidgets: { + set: function(show) { + dom.setCssClass(this.$gutter, "ace_fade-fold-widgets", show); + }, + initialValue: false + }, + showFoldWidgets: { + set: function(show) {this.$gutterLayer.setShowFoldWidgets(show)}, + initialValue: true + }, + showLineNumbers: { + set: function(show) { + this.$gutterLayer.setShowLineNumbers(show); + this.$loop.schedule(this.CHANGE_GUTTER); + }, + initialValue: true + }, + displayIndentGuides: { + set: function(show) { + if (this.$textLayer.setDisplayIndentGuides(show)) + this.$loop.schedule(this.CHANGE_TEXT); + }, + initialValue: true + }, + highlightGutterLine: { + set: function(shouldHighlight) { + if (!this.$gutterLineHighlight) { + this.$gutterLineHighlight = dom.createElement("div"); + this.$gutterLineHighlight.className = "ace_gutter-active-line"; + this.$gutter.appendChild(this.$gutterLineHighlight); + return; + } + + this.$gutterLineHighlight.style.display = shouldHighlight ? "" : "none"; + if (this.$cursorLayer.$pixelPos) + this.$updateGutterLineHighlight(); + }, + initialValue: false, + value: true + }, + hScrollBarAlwaysVisible: { + set: function(val) { + if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll) + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: false + }, + vScrollBarAlwaysVisible: { + set: function(val) { + if (!this.$vScrollBarAlwaysVisible || !this.$vScroll) + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: false + }, + fontSize: { + set: function(size) { + if (typeof size == "number") + size = size + "px"; + this.container.style.fontSize = size; + this.updateFontSize(); + }, + initialValue: 12 + }, + fontFamily: { + set: function(name) { + this.container.style.fontFamily = name; + this.updateFontSize(); + } + }, + maxLines: { + set: function(val) { + this.updateFull(); + } + }, + minLines: { + set: function(val) { + this.updateFull(); + } + }, + maxPixelHeight: { + set: function(val) { + this.updateFull(); + }, + initialValue: 0 + }, + scrollPastEnd: { + set: function(val) { + val = +val || 0; + if (this.$scrollPastEnd == val) + return; + this.$scrollPastEnd = val; + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: 0, + handlesSet: true + }, + fixedWidthGutter: { + set: function(val) { + this.$gutterLayer.$fixedWidth = !!val; + this.$loop.schedule(this.CHANGE_GUTTER); + } + }, + theme: { + set: function(val) { this.setTheme(val) }, + get: function() { return this.$themeId || this.theme; }, + initialValue: "./theme/textmate", + handlesSet: true + } +}); + +exports.VirtualRenderer = VirtualRenderer; +}); + +ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var net = require("../lib/net"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; +var config = require("../config"); + +function $workerBlob(workerUrl) { + var script = "importScripts('" + net.qualifyURL(workerUrl) + "');"; + try { + return new Blob([script], {"type": "application/javascript"}); + } catch (e) { // Backwards-compatibility + var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; + var blobBuilder = new BlobBuilder(); + blobBuilder.append(script); + return blobBuilder.getBlob("application/javascript"); + } +} + +function createWorker(workerUrl) { + var blob = $workerBlob(workerUrl); + var URL = window.URL || window.webkitURL; + var blobURL = URL.createObjectURL(blob); + return new Worker(blobURL); +} + +var WorkerClient = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) { + this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this); + this.changeListener = this.changeListener.bind(this); + this.onMessage = this.onMessage.bind(this); + if (require.nameToUrl && !require.toUrl) + require.toUrl = require.nameToUrl; + + if (config.get("packaged") || !require.toUrl) { + workerUrl = workerUrl || config.moduleUrl(mod, "worker"); + } else { + var normalizePath = this.$normalizePath; + workerUrl = workerUrl || normalizePath(require.toUrl("ace/worker/worker.js", null, "_")); + + var tlns = {}; + topLevelNamespaces.forEach(function(ns) { + tlns[ns] = normalizePath(require.toUrl(ns, null, "_").replace(/(\.js)?(\?.*)?$/, "")); + }); + } + + this.$worker = createWorker(workerUrl); + if (importScripts) { + this.send("importScripts", importScripts); + } + this.$worker.postMessage({ + init : true, + tlns : tlns, + module : mod, + classname : classname + }); + + this.callbackId = 1; + this.callbacks = {}; + + this.$worker.onmessage = this.onMessage; +}; + +(function(){ + + oop.implement(this, EventEmitter); + + this.onMessage = function(e) { + var msg = e.data; + switch (msg.type) { + case "event": + this._signal(msg.name, {data: msg.data}); + break; + case "call": + var callback = this.callbacks[msg.id]; + if (callback) { + callback(msg.data); + delete this.callbacks[msg.id]; + } + break; + case "error": + this.reportError(msg.data); + break; + case "log": + window.console && console.log && console.log.apply(console, msg.data); + break; + } + }; + + this.reportError = function(err) { + window.console && console.error && console.error(err); + }; + + this.$normalizePath = function(path) { + return net.qualifyURL(path); + }; + + this.terminate = function() { + this._signal("terminate", {}); + this.deltaQueue = null; + this.$worker.terminate(); + this.$worker = null; + if (this.$doc) + this.$doc.off("change", this.changeListener); + this.$doc = null; + }; + + this.send = function(cmd, args) { + this.$worker.postMessage({command: cmd, args: args}); + }; + + this.call = function(cmd, args, callback) { + if (callback) { + var id = this.callbackId++; + this.callbacks[id] = callback; + args.push(id); + } + this.send(cmd, args); + }; + + this.emit = function(event, data) { + try { + this.$worker.postMessage({event: event, data: {data: data.data}}); + } + catch(ex) { + console.error(ex.stack); + } + }; + + this.attachToDocument = function(doc) { + if (this.$doc) + this.terminate(); + + this.$doc = doc; + this.call("setValue", [doc.getValue()]); + doc.on("change", this.changeListener); + }; + + this.changeListener = function(delta) { + if (!this.deltaQueue) { + this.deltaQueue = []; + setTimeout(this.$sendDeltaQueue, 0); + } + if (delta.action == "insert") + this.deltaQueue.push(delta.start, delta.lines); + else + this.deltaQueue.push(delta.start, delta.end); + }; + + this.$sendDeltaQueue = function() { + var q = this.deltaQueue; + if (!q) return; + this.deltaQueue = null; + if (q.length > 50 && q.length > this.$doc.getLength() >> 1) { + this.call("setValue", [this.$doc.getValue()]); + } else + this.emit("change", {data: q}); + }; + +}).call(WorkerClient.prototype); + + +var UIWorkerClient = function(topLevelNamespaces, mod, classname) { + this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this); + this.changeListener = this.changeListener.bind(this); + this.callbackId = 1; + this.callbacks = {}; + this.messageBuffer = []; + + var main = null; + var emitSync = false; + var sender = Object.create(EventEmitter); + var _self = this; + + this.$worker = {}; + this.$worker.terminate = function() {}; + this.$worker.postMessage = function(e) { + _self.messageBuffer.push(e); + if (main) { + if (emitSync) + setTimeout(processNext); + else + processNext(); + } + }; + this.setEmitSync = function(val) { emitSync = val }; + + var processNext = function() { + var msg = _self.messageBuffer.shift(); + if (msg.command) + main[msg.command].apply(main, msg.args); + else if (msg.event) + sender._signal(msg.event, msg.data); + }; + + sender.postMessage = function(msg) { + _self.onMessage({data: msg}); + }; + sender.callback = function(data, callbackId) { + this.postMessage({type: "call", id: callbackId, data: data}); + }; + sender.emit = function(name, data) { + this.postMessage({type: "event", name: name, data: data}); + }; + + config.loadModule(["worker", mod], function(Main) { + main = new Main[classname](sender); + while (_self.messageBuffer.length) + processNext(); + }); +}; + +UIWorkerClient.prototype = WorkerClient.prototype; + +exports.UIWorkerClient = UIWorkerClient; +exports.WorkerClient = WorkerClient; +exports.createWorker = createWorker; + + +}); + +ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Range = require("./range").Range; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var oop = require("./lib/oop"); + +var PlaceHolder = function(session, length, pos, others, mainClass, othersClass) { + var _self = this; + this.length = length; + this.session = session; + this.doc = session.getDocument(); + this.mainClass = mainClass; + this.othersClass = othersClass; + this.$onUpdate = this.onUpdate.bind(this); + this.doc.on("change", this.$onUpdate); + this.$others = others; + + this.$onCursorChange = function() { + setTimeout(function() { + _self.onCursorChange(); + }); + }; + + this.$pos = pos; + var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1}; + this.$undoStackDepth = undoStack.length; + this.setup(); + + session.selection.on("changeCursor", this.$onCursorChange); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setup = function() { + var _self = this; + var doc = this.doc; + var session = this.session; + + this.selectionBefore = session.selection.toJSON(); + if (session.selection.inMultiSelectMode) + session.selection.toSingleRange(); + + this.pos = doc.createAnchor(this.$pos.row, this.$pos.column); + var pos = this.pos; + pos.$insertRight = true; + pos.detach(); + pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false); + this.others = []; + this.$others.forEach(function(other) { + var anchor = doc.createAnchor(other.row, other.column); + anchor.$insertRight = true; + anchor.detach(); + _self.others.push(anchor); + }); + session.setUndoSelect(false); + }; + this.showOtherMarkers = function() { + if (this.othersActive) return; + var session = this.session; + var _self = this; + this.othersActive = true; + this.others.forEach(function(anchor) { + anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false); + }); + }; + this.hideOtherMarkers = function() { + if (!this.othersActive) return; + this.othersActive = false; + for (var i = 0; i < this.others.length; i++) { + this.session.removeMarker(this.others[i].markerId); + } + }; + this.onUpdate = function(delta) { + if (this.$updating) + return this.updateAnchors(delta); + + var range = delta; + if (range.start.row !== range.end.row) return; + if (range.start.row !== this.pos.row) return; + this.$updating = true; + var lengthDiff = delta.action === "insert" ? range.end.column - range.start.column : range.start.column - range.end.column; + var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1; + var distanceFromStart = range.start.column - this.pos.column; + + this.updateAnchors(delta); + + if (inMainRange) + this.length += lengthDiff; + + if (inMainRange && !this.session.$fromUndo) { + if (delta.action === 'insert') { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + this.doc.insertMergedLines(newPos, delta.lines); + } + } else if (delta.action === 'remove') { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff)); + } + } + } + + this.$updating = false; + this.updateMarkers(); + }; + + this.updateAnchors = function(delta) { + this.pos.onChange(delta); + for (var i = this.others.length; i--;) + this.others[i].onChange(delta); + this.updateMarkers(); + }; + + this.updateMarkers = function() { + if (this.$updating) + return; + var _self = this; + var session = this.session; + var updateMarker = function(pos, className) { + session.removeMarker(pos.markerId); + pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false); + }; + updateMarker(this.pos, this.mainClass); + for (var i = this.others.length; i--;) + updateMarker(this.others[i], this.othersClass); + }; + + this.onCursorChange = function(event) { + if (this.$updating || !this.session) return; + var pos = this.session.selection.getCursor(); + if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) { + this.showOtherMarkers(); + this._emit("cursorEnter", event); + } else { + this.hideOtherMarkers(); + this._emit("cursorLeave", event); + } + }; + this.detach = function() { + this.session.removeMarker(this.pos && this.pos.markerId); + this.hideOtherMarkers(); + this.doc.removeEventListener("change", this.$onUpdate); + this.session.selection.removeEventListener("changeCursor", this.$onCursorChange); + this.session.setUndoSelect(true); + this.session = null; + }; + this.cancel = function() { + if (this.$undoStackDepth === -1) + return; + var undoManager = this.session.getUndoManager(); + var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth; + for (var i = 0; i < undosRequired; i++) { + undoManager.undo(true); + } + if (this.selectionBefore) + this.session.selection.fromJSON(this.selectionBefore); + }; +}).call(PlaceHolder.prototype); + + +exports.PlaceHolder = PlaceHolder; +}); + +ace.define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { + +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} + +function onMouseDown(e) { + var ev = e.domEvent; + var alt = ev.altKey; + var shift = ev.shiftKey; + var ctrl = ev.ctrlKey; + var accel = e.getAccelKey(); + var button = e.getButton(); + + if (ctrl && useragent.isMac) + button = ev.button; + + if (e.editor.inMultiSelectMode && button == 2) { + e.editor.textInput.onContextMenu(e.domEvent); + return; + } + + if (!ctrl && !alt && !accel) { + if (button === 0 && e.editor.inMultiSelectMode) + e.editor.exitMultiSelectMode(); + return; + } + + if (button !== 0) + return; + + var editor = e.editor; + var selection = editor.selection; + var isMultiSelect = editor.inMultiSelectMode; + var pos = e.getDocumentPosition(); + var cursor = selection.getCursor(); + var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor)); + + var mouseX = e.x, mouseY = e.y; + var onMouseSelection = function(e) { + mouseX = e.clientX; + mouseY = e.clientY; + }; + + var session = editor.session; + var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var screenCursor = screenAnchor; + + var selectionMode; + if (editor.$mouseHandler.$enableJumpToDef) { + if (ctrl && alt || accel && alt) + selectionMode = shift ? "block" : "add"; + else if (alt && editor.$blockSelectEnabled) + selectionMode = "block"; + } else { + if (accel && !alt) { + selectionMode = "add"; + if (!isMultiSelect && shift) + return; + } else if (alt && editor.$blockSelectEnabled) { + selectionMode = "block"; + } + } + + if (selectionMode && useragent.isMac && ev.ctrlKey) { + editor.$mouseHandler.cancelContextMenu(); + } + + if (selectionMode == "add") { + if (!isMultiSelect && inSelection) + return; // dragging + + if (!isMultiSelect) { + var range = selection.toOrientedRange(); + editor.addSelectionMarker(range); + } + + var oldRange = selection.rangeList.rangeAtPoint(pos); + + + editor.$blockScrolling++; + editor.inVirtualSelectionMode = true; + + if (shift) { + oldRange = null; + range = selection.ranges[0] || range; + editor.removeSelectionMarker(range); + } + editor.once("mouseup", function() { + var tmpSel = selection.toOrientedRange(); + + if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor)) + selection.substractPoint(tmpSel.cursor); + else { + if (shift) { + selection.substractPoint(range.cursor); + } else if (range) { + editor.removeSelectionMarker(range); + selection.addRange(range); + } + selection.addRange(tmpSel); + } + editor.$blockScrolling--; + editor.inVirtualSelectionMode = false; + }); + + } else if (selectionMode == "block") { + e.stop(); + editor.inVirtualSelectionMode = true; + var initialRange; + var rectSel = []; + var blockSelect = function() { + var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column); + + if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead)) + return; + screenCursor = newCursor; + + editor.$blockScrolling++; + editor.selection.moveToPosition(cursor); + editor.renderer.scrollCursorIntoView(); + + editor.removeSelectionMarkers(rectSel); + rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor); + if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty()) + rectSel[0] = editor.$mouseHandler.$clickSelection.clone(); + rectSel.forEach(editor.addSelectionMarker, editor); + editor.updateSelectionMarkers(); + editor.$blockScrolling--; + }; + editor.$blockScrolling++; + if (isMultiSelect && !accel) { + selection.toSingleRange(); + } else if (!isMultiSelect && accel) { + initialRange = selection.toOrientedRange(); + editor.addSelectionMarker(initialRange); + } + + if (shift) + screenAnchor = session.documentToScreenPosition(selection.lead); + else + selection.moveToPosition(pos); + editor.$blockScrolling--; + + screenCursor = {row: -1, column: -1}; + + var onMouseSelectionEnd = function(e) { + clearInterval(timerId); + editor.removeSelectionMarkers(rectSel); + if (!rectSel.length) + rectSel = [selection.toOrientedRange()]; + editor.$blockScrolling++; + if (initialRange) { + editor.removeSelectionMarker(initialRange); + selection.toSingleRange(initialRange); + } + for (var i = 0; i < rectSel.length; i++) + selection.addRange(rectSel[i]); + editor.inVirtualSelectionMode = false; + editor.$mouseHandler.$clickSelection = null; + editor.$blockScrolling--; + }; + + var onSelectionInterval = blockSelect; + + event.capture(editor.container, onMouseSelection, onMouseSelectionEnd); + var timerId = setInterval(function() {onSelectionInterval();}, 20); + + return e.preventDefault(); + } +} + + +exports.onMouseDown = onMouseDown; + +}); + +ace.define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"], function(require, exports, module) { +exports.defaultCommands = [{ + name: "addCursorAbove", + exec: function(editor) { editor.selectMoreLines(-1); }, + bindKey: {win: "Ctrl-Alt-Up", mac: "Ctrl-Alt-Up"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorBelow", + exec: function(editor) { editor.selectMoreLines(1); }, + bindKey: {win: "Ctrl-Alt-Down", mac: "Ctrl-Alt-Down"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorAboveSkipCurrent", + exec: function(editor) { editor.selectMoreLines(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Up", mac: "Ctrl-Alt-Shift-Up"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorBelowSkipCurrent", + exec: function(editor) { editor.selectMoreLines(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Down", mac: "Ctrl-Alt-Shift-Down"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectMoreBefore", + exec: function(editor) { editor.selectMore(-1); }, + bindKey: {win: "Ctrl-Alt-Left", mac: "Ctrl-Alt-Left"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectMoreAfter", + exec: function(editor) { editor.selectMore(1); }, + bindKey: {win: "Ctrl-Alt-Right", mac: "Ctrl-Alt-Right"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectNextBefore", + exec: function(editor) { editor.selectMore(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Left", mac: "Ctrl-Alt-Shift-Left"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectNextAfter", + exec: function(editor) { editor.selectMore(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Right", mac: "Ctrl-Alt-Shift-Right"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "splitIntoLines", + exec: function(editor) { editor.multiSelect.splitIntoLines(); }, + bindKey: {win: "Ctrl-Alt-L", mac: "Ctrl-Alt-L"}, + readOnly: true +}, { + name: "alignCursors", + exec: function(editor) { editor.alignCursors(); }, + bindKey: {win: "Ctrl-Alt-A", mac: "Ctrl-Alt-A"}, + scrollIntoView: "cursor" +}, { + name: "findAll", + exec: function(editor) { editor.findAll(); }, + bindKey: {win: "Ctrl-Alt-K", mac: "Ctrl-Alt-G"}, + scrollIntoView: "cursor", + readOnly: true +}]; +exports.multiSelectCommands = [{ + name: "singleSelection", + bindKey: "esc", + exec: function(editor) { editor.exitMultiSelectMode(); }, + scrollIntoView: "cursor", + readOnly: true, + isAvailable: function(editor) {return editor && editor.inMultiSelectMode} +}]; + +var HashHandler = require("../keyboard/hash_handler").HashHandler; +exports.keyboardHandler = new HashHandler(exports.multiSelectCommands); + +}); + +ace.define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"], function(require, exports, module) { + +var RangeList = require("./range_list").RangeList; +var Range = require("./range").Range; +var Selection = require("./selection").Selection; +var onMouseDown = require("./mouse/multi_select_handler").onMouseDown; +var event = require("./lib/event"); +var lang = require("./lib/lang"); +var commands = require("./commands/multi_select_commands"); +exports.commands = commands.defaultCommands.concat(commands.multiSelectCommands); +var Search = require("./search").Search; +var search = new Search(); + +function find(session, needle, dir) { + search.$options.wrap = true; + search.$options.needle = needle; + search.$options.backwards = dir == -1; + return search.find(session); +} +var EditSession = require("./edit_session").EditSession; +(function() { + this.getSelectionMarkers = function() { + return this.$selectionMarkers; + }; +}).call(EditSession.prototype); +(function() { + this.ranges = null; + this.rangeList = null; + this.addRange = function(range, $blockChangeEvents) { + if (!range) + return; + + if (!this.inMultiSelectMode && this.rangeCount === 0) { + var oldRange = this.toOrientedRange(); + this.rangeList.add(oldRange); + this.rangeList.add(range); + if (this.rangeList.ranges.length != 2) { + this.rangeList.removeAll(); + return $blockChangeEvents || this.fromOrientedRange(range); + } + this.rangeList.removeAll(); + this.rangeList.add(oldRange); + this.$onAddRange(oldRange); + } + + if (!range.cursor) + range.cursor = range.end; + + var removed = this.rangeList.add(range); + + this.$onAddRange(range); + + if (removed.length) + this.$onRemoveRange(removed); + + if (this.rangeCount > 1 && !this.inMultiSelectMode) { + this._signal("multiSelect"); + this.inMultiSelectMode = true; + this.session.$undoSelect = false; + this.rangeList.attach(this.session); + } + + return $blockChangeEvents || this.fromOrientedRange(range); + }; + + this.toSingleRange = function(range) { + range = range || this.ranges[0]; + var removed = this.rangeList.removeAll(); + if (removed.length) + this.$onRemoveRange(removed); + + range && this.fromOrientedRange(range); + }; + this.substractPoint = function(pos) { + var removed = this.rangeList.substractPoint(pos); + if (removed) { + this.$onRemoveRange(removed); + return removed[0]; + } + }; + this.mergeOverlappingRanges = function() { + var removed = this.rangeList.merge(); + if (removed.length) + this.$onRemoveRange(removed); + else if(this.ranges[0]) + this.fromOrientedRange(this.ranges[0]); + }; + + this.$onAddRange = function(range) { + this.rangeCount = this.rangeList.ranges.length; + this.ranges.unshift(range); + this._signal("addRange", {range: range}); + }; + + this.$onRemoveRange = function(removed) { + this.rangeCount = this.rangeList.ranges.length; + if (this.rangeCount == 1 && this.inMultiSelectMode) { + var lastRange = this.rangeList.ranges.pop(); + removed.push(lastRange); + this.rangeCount = 0; + } + + for (var i = removed.length; i--; ) { + var index = this.ranges.indexOf(removed[i]); + this.ranges.splice(index, 1); + } + + this._signal("removeRange", {ranges: removed}); + + if (this.rangeCount === 0 && this.inMultiSelectMode) { + this.inMultiSelectMode = false; + this._signal("singleSelect"); + this.session.$undoSelect = true; + this.rangeList.detach(this.session); + } + + lastRange = lastRange || this.ranges[0]; + if (lastRange && !lastRange.isEqual(this.getRange())) + this.fromOrientedRange(lastRange); + }; + this.$initRangeList = function() { + if (this.rangeList) + return; + + this.rangeList = new RangeList(); + this.ranges = []; + this.rangeCount = 0; + }; + this.getAllRanges = function() { + return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()]; + }; + + this.splitIntoLines = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var range = this.getRange(); + var isBackwards = this.isBackwards(); + var startRow = range.start.row; + var endRow = range.end.row; + if (startRow == endRow) { + if (isBackwards) + var start = range.end, end = range.start; + else + var start = range.start, end = range.end; + + this.addRange(Range.fromPoints(end, end)); + this.addRange(Range.fromPoints(start, start)); + return; + } + + var rectSel = []; + var r = this.getLineRange(startRow, true); + r.start.column = range.start.column; + rectSel.push(r); + + for (var i = startRow + 1; i < endRow; i++) + rectSel.push(this.getLineRange(i, true)); + + r = this.getLineRange(endRow, true); + r.end.column = range.end.column; + rectSel.push(r); + + rectSel.forEach(this.addRange, this); + } + }; + this.toggleBlockSelection = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var cursor = this.session.documentToScreenPosition(this.selectionLead); + var anchor = this.session.documentToScreenPosition(this.selectionAnchor); + + var rectSel = this.rectangularRangeBlock(cursor, anchor); + rectSel.forEach(this.addRange, this); + } + }; + this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) { + var rectSel = []; + + var xBackwards = screenCursor.column < screenAnchor.column; + if (xBackwards) { + var startColumn = screenCursor.column; + var endColumn = screenAnchor.column; + } else { + var startColumn = screenAnchor.column; + var endColumn = screenCursor.column; + } + + var yBackwards = screenCursor.row < screenAnchor.row; + if (yBackwards) { + var startRow = screenCursor.row; + var endRow = screenAnchor.row; + } else { + var startRow = screenAnchor.row; + var endRow = screenCursor.row; + } + + if (startColumn < 0) + startColumn = 0; + if (startRow < 0) + startRow = 0; + + if (startRow == endRow) + includeEmptyLines = true; + + for (var row = startRow; row <= endRow; row++) { + var range = Range.fromPoints( + this.session.screenToDocumentPosition(row, startColumn), + this.session.screenToDocumentPosition(row, endColumn) + ); + if (range.isEmpty()) { + if (docEnd && isSamePoint(range.end, docEnd)) + break; + var docEnd = range.end; + } + range.cursor = xBackwards ? range.start : range.end; + rectSel.push(range); + } + + if (yBackwards) + rectSel.reverse(); + + if (!includeEmptyLines) { + var end = rectSel.length - 1; + while (rectSel[end].isEmpty() && end > 0) + end--; + if (end > 0) { + var start = 0; + while (rectSel[start].isEmpty()) + start++; + } + for (var i = end; i >= start; i--) { + if (rectSel[i].isEmpty()) + rectSel.splice(i, 1); + } + } + + return rectSel; + }; +}).call(Selection.prototype); +var Editor = require("./editor").Editor; +(function() { + this.updateSelectionMarkers = function() { + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + this.addSelectionMarker = function(orientedRange) { + if (!orientedRange.cursor) + orientedRange.cursor = orientedRange.end; + + var style = this.getSelectionStyle(); + orientedRange.marker = this.session.addMarker(orientedRange, "ace_selection", style); + + this.session.$selectionMarkers.push(orientedRange); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + return orientedRange; + }; + this.removeSelectionMarker = function(range) { + if (!range.marker) + return; + this.session.removeMarker(range.marker); + var index = this.session.$selectionMarkers.indexOf(range); + if (index != -1) + this.session.$selectionMarkers.splice(index, 1); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + }; + + this.removeSelectionMarkers = function(ranges) { + var markerList = this.session.$selectionMarkers; + for (var i = ranges.length; i--; ) { + var range = ranges[i]; + if (!range.marker) + continue; + this.session.removeMarker(range.marker); + var index = markerList.indexOf(range); + if (index != -1) + markerList.splice(index, 1); + } + this.session.selectionMarkerCount = markerList.length; + }; + + this.$onAddRange = function(e) { + this.addSelectionMarker(e.range); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onRemoveRange = function(e) { + this.removeSelectionMarkers(e.ranges); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onMultiSelect = function(e) { + if (this.inMultiSelectMode) + return; + this.inMultiSelectMode = true; + + this.setStyle("ace_multiselect"); + this.keyBinding.addKeyboardHandler(commands.keyboardHandler); + this.commands.setDefaultHandler("exec", this.$onMultiSelectExec); + + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onSingleSelect = function(e) { + if (this.session.multiSelect.inVirtualMode) + return; + this.inMultiSelectMode = false; + + this.unsetStyle("ace_multiselect"); + this.keyBinding.removeKeyboardHandler(commands.keyboardHandler); + + this.commands.removeDefaultHandler("exec", this.$onMultiSelectExec); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + this._emit("changeSelection"); + }; + + this.$onMultiSelectExec = function(e) { + var command = e.command; + var editor = e.editor; + if (!editor.multiSelect) + return; + if (!command.multiSelectAction) { + var result = command.exec(editor, e.args || {}); + editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()); + editor.multiSelect.mergeOverlappingRanges(); + } else if (command.multiSelectAction == "forEach") { + result = editor.forEachSelection(command, e.args); + } else if (command.multiSelectAction == "forEachLine") { + result = editor.forEachSelection(command, e.args, true); + } else if (command.multiSelectAction == "single") { + editor.exitMultiSelectMode(); + result = command.exec(editor, e.args || {}); + } else { + result = command.multiSelectAction(editor, e.args || {}); + } + return result; + }; + this.forEachSelection = function(cmd, args, options) { + if (this.inVirtualSelectionMode) + return; + var keepOrder = options && options.keepOrder; + var $byLines = options == true || options && options.$byLines + var session = this.session; + var selection = this.selection; + var rangeList = selection.rangeList; + var ranges = (keepOrder ? selection : rangeList).ranges; + var result; + + if (!ranges.length) + return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {}); + + var reg = selection._eventRegistry; + selection._eventRegistry = {}; + + var tmpSel = new Selection(session); + this.inVirtualSelectionMode = true; + for (var i = ranges.length; i--;) { + if ($byLines) { + while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row) + i--; + } + tmpSel.fromOrientedRange(ranges[i]); + tmpSel.index = i; + this.selection = session.selection = tmpSel; + var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {}); + if (!result && cmdResult !== undefined) + result = cmdResult; + tmpSel.toOrientedRange(ranges[i]); + } + tmpSel.detach(); + + this.selection = session.selection = selection; + this.inVirtualSelectionMode = false; + selection._eventRegistry = reg; + selection.mergeOverlappingRanges(); + + var anim = this.renderer.$scrollAnimation; + this.onCursorChange(); + this.onSelectionChange(); + if (anim && anim.from == anim.to) + this.renderer.animateScrolling(anim.from); + + return result; + }; + this.exitMultiSelectMode = function() { + if (!this.inMultiSelectMode || this.inVirtualSelectionMode) + return; + this.multiSelect.toSingleRange(); + }; + + this.getSelectedText = function() { + var text = ""; + if (this.inMultiSelectMode && !this.inVirtualSelectionMode) { + var ranges = this.multiSelect.rangeList.ranges; + var buf = []; + for (var i = 0; i < ranges.length; i++) { + buf.push(this.session.getTextRange(ranges[i])); + } + var nl = this.session.getDocument().getNewLineCharacter(); + text = buf.join(nl); + if (text.length == (buf.length - 1) * nl.length) + text = ""; + } else if (!this.selection.isEmpty()) { + text = this.session.getTextRange(this.getSelectionRange()); + } + return text; + }; + + this.$checkMultiselectChange = function(e, anchor) { + if (this.inMultiSelectMode && !this.inVirtualSelectionMode) { + var range = this.multiSelect.ranges[0]; + if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor) + return; + var pos = anchor == this.multiSelect.anchor + ? range.cursor == range.start ? range.end : range.start + : range.cursor; + if (pos.row != anchor.row + || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column) + this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()); + } + }; + this.findAll = function(needle, options, additive) { + options = options || {}; + options.needle = needle || options.needle; + if (options.needle == undefined) { + var range = this.selection.isEmpty() + ? this.selection.getWordRange() + : this.selection.getRange(); + options.needle = this.session.getTextRange(range); + } + this.$search.set(options); + + var ranges = this.$search.findAll(this.session); + if (!ranges.length) + return 0; + + this.$blockScrolling += 1; + var selection = this.multiSelect; + + if (!additive) + selection.toSingleRange(ranges[0]); + + for (var i = ranges.length; i--; ) + selection.addRange(ranges[i], true); + if (range && selection.rangeList.rangeAtPoint(range.start)) + selection.addRange(range, true); + + this.$blockScrolling -= 1; + + return ranges.length; + }; + this.selectMoreLines = function(dir, skip) { + var range = this.selection.toOrientedRange(); + var isBackwards = range.cursor == range.end; + + var screenLead = this.session.documentToScreenPosition(range.cursor); + if (this.selection.$desiredColumn) + screenLead.column = this.selection.$desiredColumn; + + var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column); + + if (!range.isEmpty()) { + var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start); + var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column); + } else { + var anchor = lead; + } + + if (isBackwards) { + var newRange = Range.fromPoints(lead, anchor); + newRange.cursor = newRange.start; + } else { + var newRange = Range.fromPoints(anchor, lead); + newRange.cursor = newRange.end; + } + + newRange.desiredColumn = screenLead.column; + if (!this.selection.inMultiSelectMode) { + this.selection.addRange(range); + } else { + if (skip) + var toRemove = range.cursor; + } + + this.selection.addRange(newRange); + if (toRemove) + this.selection.substractPoint(toRemove); + }; + this.transposeSelections = function(dir) { + var session = this.session; + var sel = session.multiSelect; + var all = sel.ranges; + + for (var i = all.length; i--; ) { + var range = all[i]; + if (range.isEmpty()) { + var tmp = session.getWordRange(range.start.row, range.start.column); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + range.end.row = tmp.end.row; + range.end.column = tmp.end.column; + } + } + sel.mergeOverlappingRanges(); + + var words = []; + for (var i = all.length; i--; ) { + var range = all[i]; + words.unshift(session.getTextRange(range)); + } + + if (dir < 0) + words.unshift(words.pop()); + else + words.push(words.shift()); + + for (var i = all.length; i--; ) { + var range = all[i]; + var tmp = range.clone(); + session.replace(range, words[i]); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + } + }; + this.selectMore = function(dir, skip, stopAtFirst) { + var session = this.session; + var sel = session.multiSelect; + + var range = sel.toOrientedRange(); + if (range.isEmpty()) { + range = session.getWordRange(range.start.row, range.start.column); + range.cursor = dir == -1 ? range.start : range.end; + this.multiSelect.addRange(range); + if (stopAtFirst) + return; + } + var needle = session.getTextRange(range); + + var newRange = find(session, needle, dir); + if (newRange) { + newRange.cursor = dir == -1 ? newRange.start : newRange.end; + this.$blockScrolling += 1; + this.session.unfold(newRange); + this.multiSelect.addRange(newRange); + this.$blockScrolling -= 1; + this.renderer.scrollCursorIntoView(null, 0.5); + } + if (skip) + this.multiSelect.substractPoint(range.cursor); + }; + this.alignCursors = function() { + var session = this.session; + var sel = session.multiSelect; + var ranges = sel.ranges; + var row = -1; + var sameRowRanges = ranges.filter(function(r) { + if (r.cursor.row == row) + return true; + row = r.cursor.row; + }); + + if (!ranges.length || sameRowRanges.length == ranges.length - 1) { + var range = this.selection.getRange(); + var fr = range.start.row, lr = range.end.row; + var guessRange = fr == lr; + if (guessRange) { + var max = this.session.getLength(); + var line; + do { + line = this.session.getLine(lr); + } while (/[=:]/.test(line) && ++lr < max); + do { + line = this.session.getLine(fr); + } while (/[=:]/.test(line) && --fr > 0); + + if (fr < 0) fr = 0; + if (lr >= max) lr = max - 1; + } + var lines = this.session.removeFullLines(fr, lr); + lines = this.$reAlignText(lines, guessRange); + this.session.insert({row: fr, column: 0}, lines.join("\n") + "\n"); + if (!guessRange) { + range.start.column = 0; + range.end.column = lines[lines.length - 1].length; + } + this.selection.setRange(range); + } else { + sameRowRanges.forEach(function(r) { + sel.substractPoint(r.cursor); + }); + + var maxCol = 0; + var minSpace = Infinity; + var spaceOffsets = ranges.map(function(r) { + var p = r.cursor; + var line = session.getLine(p.row); + var spaceOffset = line.substr(p.column).search(/\S/g); + if (spaceOffset == -1) + spaceOffset = 0; + + if (p.column > maxCol) + maxCol = p.column; + if (spaceOffset < minSpace) + minSpace = spaceOffset; + return spaceOffset; + }); + ranges.forEach(function(r, i) { + var p = r.cursor; + var l = maxCol - p.column; + var d = spaceOffsets[i] - minSpace; + if (l > d) + session.insert(p, lang.stringRepeat(" ", l - d)); + else + session.remove(new Range(p.row, p.column, p.row, p.column - l + d)); + + r.start.column = r.end.column = maxCol; + r.start.row = r.end.row = p.row; + r.cursor = r.end; + }); + sel.fromOrientedRange(ranges[0]); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + } + }; + + this.$reAlignText = function(lines, forceLeft) { + var isLeftAligned = true, isRightAligned = true; + var startW, textW, endW; + + return lines.map(function(line) { + var m = line.match(/(\s*)(.*?)(\s*)([=:].*)/); + if (!m) + return [line]; + + if (startW == null) { + startW = m[1].length; + textW = m[2].length; + endW = m[3].length; + return m; + } + + if (startW + textW + endW != m[1].length + m[2].length + m[3].length) + isRightAligned = false; + if (startW != m[1].length) + isLeftAligned = false; + + if (startW > m[1].length) + startW = m[1].length; + if (textW < m[2].length) + textW = m[2].length; + if (endW > m[3].length) + endW = m[3].length; + + return m; + }).map(forceLeft ? alignLeft : + isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign); + + function spaces(n) { + return lang.stringRepeat(" ", n); + } + + function alignLeft(m) { + return !m[2] ? m[0] : spaces(startW) + m[2] + + spaces(textW - m[2].length + endW) + + m[4].replace(/^([=:])\s+/, "$1 "); + } + function alignRight(m) { + return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2] + + spaces(endW, " ") + + m[4].replace(/^([=:])\s+/, "$1 "); + } + function unAlign(m) { + return !m[2] ? m[0] : spaces(startW) + m[2] + + spaces(endW) + + m[4].replace(/^([=:])\s+/, "$1 "); + } + }; +}).call(Editor.prototype); + + +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} +exports.onSessionChange = function(e) { + var session = e.session; + if (session && !session.multiSelect) { + session.$selectionMarkers = []; + session.selection.$initRangeList(); + session.multiSelect = session.selection; + } + this.multiSelect = session && session.multiSelect; + + var oldSession = e.oldSession; + if (oldSession) { + oldSession.multiSelect.off("addRange", this.$onAddRange); + oldSession.multiSelect.off("removeRange", this.$onRemoveRange); + oldSession.multiSelect.off("multiSelect", this.$onMultiSelect); + oldSession.multiSelect.off("singleSelect", this.$onSingleSelect); + oldSession.multiSelect.lead.off("change", this.$checkMultiselectChange); + oldSession.multiSelect.anchor.off("change", this.$checkMultiselectChange); + } + + if (session) { + session.multiSelect.on("addRange", this.$onAddRange); + session.multiSelect.on("removeRange", this.$onRemoveRange); + session.multiSelect.on("multiSelect", this.$onMultiSelect); + session.multiSelect.on("singleSelect", this.$onSingleSelect); + session.multiSelect.lead.on("change", this.$checkMultiselectChange); + session.multiSelect.anchor.on("change", this.$checkMultiselectChange); + } + + if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) { + if (session.selection.inMultiSelectMode) + this.$onMultiSelect(); + else + this.$onSingleSelect(); + } +}; +function MultiSelect(editor) { + if (editor.$multiselectOnSessionChange) + return; + editor.$onAddRange = editor.$onAddRange.bind(editor); + editor.$onRemoveRange = editor.$onRemoveRange.bind(editor); + editor.$onMultiSelect = editor.$onMultiSelect.bind(editor); + editor.$onSingleSelect = editor.$onSingleSelect.bind(editor); + editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor); + editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor); + + editor.$multiselectOnSessionChange(editor); + editor.on("changeSession", editor.$multiselectOnSessionChange); + + editor.on("mousedown", onMouseDown); + editor.commands.addCommands(commands.defaultCommands); + + addAltCursorListeners(editor); +} + +function addAltCursorListeners(editor){ + var el = editor.textInput.getElement(); + var altCursor = false; + event.addListener(el, "keydown", function(e) { + var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey); + if (editor.$blockSelectEnabled && altDown) { + if (!altCursor) { + editor.renderer.setMouseCursor("crosshair"); + altCursor = true; + } + } else if (altCursor) { + reset(); + } + }); + + event.addListener(el, "keyup", reset); + event.addListener(el, "blur", reset); + function reset(e) { + if (altCursor) { + editor.renderer.setMouseCursor(""); + altCursor = false; + } + } +} + +exports.MultiSelect = MultiSelect; + + +require("./config").defineOptions(Editor.prototype, "editor", { + enableMultiselect: { + set: function(val) { + MultiSelect(this); + if (val) { + this.on("changeSession", this.$multiselectOnSessionChange); + this.on("mousedown", onMouseDown); + } else { + this.off("changeSession", this.$multiselectOnSessionChange); + this.off("mousedown", onMouseDown); + } + }, + value: true + }, + enableBlockSelect: { + set: function(val) { + this.$blockSelectEnabled = val; + }, + value: true + } +}); + + + +}); + +ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1) + return; + + var startColumn = column || line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + var level = session.getLine(row).search(re); + + if (level == -1) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = session.getFoldWidget(end.row); + + if (fw == "start" && end.row > start.row) { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + + this.closingBracketBlock = function(session, bracket, row, column, typeRe) { + var end = {row: row, column: column}; + var start = session.$findOpeningBracket(bracket, end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + }; +}).call(FoldMode.prototype); + +}); + +ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_gutter {\ +background: #f0f0f0;\ +color: #333;\ +}\ +.ace-tm .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-tm .ace_fold {\ +background-color: #6B72E6;\ +}\ +.ace-tm {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-tm .ace_cursor {\ +color: black;\ +}\ +.ace-tm .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-tm .ace_storage,\ +.ace-tm .ace_keyword {\ +color: blue;\ +}\ +.ace-tm .ace_constant {\ +color: rgb(197, 6, 11);\ +}\ +.ace-tm .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-tm .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-tm .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_invalid {\ +background-color: rgba(255, 0, 0, 0.1);\ +color: red;\ +}\ +.ace-tm .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-tm .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_support.ace_type,\ +.ace-tm .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-tm .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-tm .ace_string {\ +color: rgb(3, 106, 7);\ +}\ +.ace-tm .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-tm .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-tm .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-tm .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-tm .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-tm .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-tm .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-tm .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-tm .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-tm .ace_meta.ace_tag {\ +color:rgb(0, 22, 142);\ +}\ +.ace-tm .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-tm .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-tm.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-tm .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-tm .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-tm .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-tm .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-tm .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); + +ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var Range = require("./range").Range; + + +function LineWidgets(session) { + this.session = session; + this.session.widgetManager = this; + this.session.getRowLength = this.getRowLength; + this.session.$getWidgetScreenLength = this.$getWidgetScreenLength; + this.updateOnChange = this.updateOnChange.bind(this); + this.renderWidgets = this.renderWidgets.bind(this); + this.measureWidgets = this.measureWidgets.bind(this); + this.session._changedWidgets = []; + this.$onChangeEditor = this.$onChangeEditor.bind(this); + + this.session.on("change", this.updateOnChange); + this.session.on("changeFold", this.updateOnFold); + this.session.on("changeEditor", this.$onChangeEditor); +} + +(function() { + this.getRowLength = function(row) { + var h; + if (this.lineWidgets) + h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0; + else + h = 0; + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1 + h; + } else { + return this.$wrapData[row].length + 1 + h; + } + }; + + this.$getWidgetScreenLength = function() { + var screenRows = 0; + this.lineWidgets.forEach(function(w){ + if (w && w.rowCount && !w.hidden) + screenRows += w.rowCount; + }); + return screenRows; + }; + + this.$onChangeEditor = function(e) { + this.attach(e.editor); + }; + + this.attach = function(editor) { + if (editor && editor.widgetManager && editor.widgetManager != this) + editor.widgetManager.detach(); + + if (this.editor == editor) + return; + + this.detach(); + this.editor = editor; + + if (editor) { + editor.widgetManager = this; + editor.renderer.on("beforeRender", this.measureWidgets); + editor.renderer.on("afterRender", this.renderWidgets); + } + }; + this.detach = function(e) { + var editor = this.editor; + if (!editor) + return; + + this.editor = null; + editor.widgetManager = null; + + editor.renderer.off("beforeRender", this.measureWidgets); + editor.renderer.off("afterRender", this.renderWidgets); + var lineWidgets = this.session.lineWidgets; + lineWidgets && lineWidgets.forEach(function(w) { + if (w && w.el && w.el.parentNode) { + w._inDocument = false; + w.el.parentNode.removeChild(w.el); + } + }); + }; + + this.updateOnFold = function(e, session) { + var lineWidgets = session.lineWidgets; + if (!lineWidgets || !e.action) + return; + var fold = e.data; + var start = fold.start.row; + var end = fold.end.row; + var hide = e.action == "add"; + for (var i = start + 1; i < end; i++) { + if (lineWidgets[i]) + lineWidgets[i].hidden = hide; + } + if (lineWidgets[end]) { + if (hide) { + if (!lineWidgets[start]) + lineWidgets[start] = lineWidgets[end]; + else + lineWidgets[end].hidden = hide; + } else { + if (lineWidgets[start] == lineWidgets[end]) + lineWidgets[start] = undefined; + lineWidgets[end].hidden = hide; + } + } + }; + + this.updateOnChange = function(delta) { + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) return; + + var startRow = delta.start.row; + var len = delta.end.row - startRow; + + if (len === 0) { + } else if (delta.action == 'remove') { + var removed = lineWidgets.splice(startRow + 1, len); + removed.forEach(function(w) { + w && this.removeLineWidget(w); + }, this); + this.$updateRows(); + } else { + var args = new Array(len); + args.unshift(startRow, 0); + lineWidgets.splice.apply(lineWidgets, args); + this.$updateRows(); + } + }; + + this.$updateRows = function() { + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) return; + var noWidgets = true; + lineWidgets.forEach(function(w, i) { + if (w) { + noWidgets = false; + w.row = i; + while (w.$oldWidget) { + w.$oldWidget.row = i; + w = w.$oldWidget; + } + } + }); + if (noWidgets) + this.session.lineWidgets = null; + }; + + this.addLineWidget = function(w) { + if (!this.session.lineWidgets) + this.session.lineWidgets = new Array(this.session.getLength()); + + var old = this.session.lineWidgets[w.row]; + if (old) { + w.$oldWidget = old; + if (old.el && old.el.parentNode) { + old.el.parentNode.removeChild(old.el); + old._inDocument = false; + } + } + + this.session.lineWidgets[w.row] = w; + + w.session = this.session; + + var renderer = this.editor.renderer; + if (w.html && !w.el) { + w.el = dom.createElement("div"); + w.el.innerHTML = w.html; + } + if (w.el) { + dom.addCssClass(w.el, "ace_lineWidgetContainer"); + w.el.style.position = "absolute"; + w.el.style.zIndex = 5; + renderer.container.appendChild(w.el); + w._inDocument = true; + } + + if (!w.coverGutter) { + w.el.style.zIndex = 3; + } + if (w.pixelHeight == null) { + w.pixelHeight = w.el.offsetHeight; + } + if (w.rowCount == null) { + w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight; + } + + var fold = this.session.getFoldAt(w.row, 0); + w.$fold = fold; + if (fold) { + var lineWidgets = this.session.lineWidgets; + if (w.row == fold.end.row && !lineWidgets[fold.start.row]) + lineWidgets[fold.start.row] = w; + else + w.hidden = true; + } + + this.session._emit("changeFold", {data:{start:{row: w.row}}}); + + this.$updateRows(); + this.renderWidgets(null, renderer); + this.onWidgetChanged(w); + return w; + }; + + this.removeLineWidget = function(w) { + w._inDocument = false; + w.session = null; + if (w.el && w.el.parentNode) + w.el.parentNode.removeChild(w.el); + if (w.editor && w.editor.destroy) try { + w.editor.destroy(); + } catch(e){} + if (this.session.lineWidgets) { + var w1 = this.session.lineWidgets[w.row] + if (w1 == w) { + this.session.lineWidgets[w.row] = w.$oldWidget; + if (w.$oldWidget) + this.onWidgetChanged(w.$oldWidget); + } else { + while (w1) { + if (w1.$oldWidget == w) { + w1.$oldWidget = w.$oldWidget; + break; + } + w1 = w1.$oldWidget; + } + } + } + this.session._emit("changeFold", {data:{start:{row: w.row}}}); + this.$updateRows(); + }; + + this.getWidgetsAtRow = function(row) { + var lineWidgets = this.session.lineWidgets; + var w = lineWidgets && lineWidgets[row]; + var list = []; + while (w) { + list.push(w); + w = w.$oldWidget; + } + return list; + }; + + this.onWidgetChanged = function(w) { + this.session._changedWidgets.push(w); + this.editor && this.editor.renderer.updateFull(); + }; + + this.measureWidgets = function(e, renderer) { + var changedWidgets = this.session._changedWidgets; + var config = renderer.layerConfig; + + if (!changedWidgets || !changedWidgets.length) return; + var min = Infinity; + for (var i = 0; i < changedWidgets.length; i++) { + var w = changedWidgets[i]; + if (!w || !w.el) continue; + if (w.session != this.session) continue; + if (!w._inDocument) { + if (this.session.lineWidgets[w.row] != w) + continue; + w._inDocument = true; + renderer.container.appendChild(w.el); + } + + w.h = w.el.offsetHeight; + + if (!w.fixedWidth) { + w.w = w.el.offsetWidth; + w.screenWidth = Math.ceil(w.w / config.characterWidth); + } + + var rowCount = w.h / config.lineHeight; + if (w.coverLine) { + rowCount -= this.session.getRowLineCount(w.row); + if (rowCount < 0) + rowCount = 0; + } + if (w.rowCount != rowCount) { + w.rowCount = rowCount; + if (w.row < min) + min = w.row; + } + } + if (min != Infinity) { + this.session._emit("changeFold", {data:{start:{row: min}}}); + this.session.lineWidgetWidth = null; + } + this.session._changedWidgets = []; + }; + + this.renderWidgets = function(e, renderer) { + var config = renderer.layerConfig; + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) + return; + var first = Math.min(this.firstRow, config.firstRow); + var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length); + + while (first > 0 && !lineWidgets[first]) + first--; + + this.firstRow = config.firstRow; + this.lastRow = config.lastRow; + + renderer.$cursorLayer.config = config; + for (var i = first; i <= last; i++) { + var w = lineWidgets[i]; + if (!w || !w.el) continue; + if (w.hidden) { + w.el.style.top = -100 - (w.pixelHeight || 0) + "px"; + continue; + } + if (!w._inDocument) { + w._inDocument = true; + renderer.container.appendChild(w.el); + } + var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top; + if (!w.coverLine) + top += config.lineHeight * this.session.getRowLineCount(w.row); + w.el.style.top = top - config.offset + "px"; + + var left = w.coverGutter ? 0 : renderer.gutterWidth; + if (!w.fixedWidth) + left -= renderer.scrollLeft; + w.el.style.left = left + "px"; + + if (w.fullWidth && w.screenWidth) { + w.el.style.minWidth = config.width + 2 * config.padding + "px"; + } + + if (w.fixedWidth) { + w.el.style.right = renderer.scrollBar.getWidth() + "px"; + } else { + w.el.style.right = ""; + } + } + }; + +}).call(LineWidgets.prototype); + + +exports.LineWidgets = LineWidgets; + +}); + +ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"], function(require, exports, module) { +"use strict"; +var LineWidgets = require("../line_widgets").LineWidgets; +var dom = require("../lib/dom"); +var Range = require("../range").Range; + +function binarySearch(array, needle, comparator) { + var first = 0; + var last = array.length - 1; + + while (first <= last) { + var mid = (first + last) >> 1; + var c = comparator(needle, array[mid]); + if (c > 0) + first = mid + 1; + else if (c < 0) + last = mid - 1; + else + return mid; + } + return -(first + 1); +} + +function findAnnotations(session, row, dir) { + var annotations = session.getAnnotations().sort(Range.comparePoints); + if (!annotations.length) + return; + + var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints); + if (i < 0) + i = -i - 1; + + if (i >= annotations.length) + i = dir > 0 ? 0 : annotations.length - 1; + else if (i === 0 && dir < 0) + i = annotations.length - 1; + + var annotation = annotations[i]; + if (!annotation || !dir) + return; + + if (annotation.row === row) { + do { + annotation = annotations[i += dir]; + } while (annotation && annotation.row === row); + if (!annotation) + return annotations.slice(); + } + + + var matched = []; + row = annotation.row; + do { + matched[dir < 0 ? "unshift" : "push"](annotation); + annotation = annotations[i += dir]; + } while (annotation && annotation.row == row); + return matched.length && matched; +} + +exports.showErrorMarker = function(editor, dir) { + var session = editor.session; + if (!session.widgetManager) { + session.widgetManager = new LineWidgets(session); + session.widgetManager.attach(editor); + } + + var pos = editor.getCursorPosition(); + var row = pos.row; + var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) { + return w.type == "errorMarker"; + })[0]; + if (oldWidget) { + oldWidget.destroy(); + } else { + row -= dir; + } + var annotations = findAnnotations(session, row, dir); + var gutterAnno; + if (annotations) { + var annotation = annotations[0]; + pos.column = (annotation.pos && typeof annotation.column != "number" + ? annotation.pos.sc + : annotation.column) || 0; + pos.row = annotation.row; + gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row]; + } else if (oldWidget) { + return; + } else { + gutterAnno = { + text: ["Looks good!"], + className: "ace_ok" + }; + } + editor.session.unfold(pos.row); + editor.selection.moveToPosition(pos); + + var w = { + row: pos.row, + fixedWidth: true, + coverGutter: true, + el: dom.createElement("div"), + type: "errorMarker" + }; + var el = w.el.appendChild(dom.createElement("div")); + var arrow = w.el.appendChild(dom.createElement("div")); + arrow.className = "error_widget_arrow " + gutterAnno.className; + + var left = editor.renderer.$cursorLayer + .getPixelPosition(pos).left; + arrow.style.left = left + editor.renderer.gutterWidth - 5 + "px"; + + w.el.className = "error_widget_wrapper"; + el.className = "error_widget " + gutterAnno.className; + el.innerHTML = gutterAnno.text.join("
    "); + + el.appendChild(dom.createElement("div")); + + var kb = function(_, hashId, keyString) { + if (hashId === 0 && (keyString === "esc" || keyString === "return")) { + w.destroy(); + return {command: "null"}; + } + }; + + w.destroy = function() { + if (editor.$mouseHandler.isMousePressed) + return; + editor.keyBinding.removeKeyboardHandler(kb); + session.widgetManager.removeLineWidget(w); + editor.off("changeSelection", w.destroy); + editor.off("changeSession", w.destroy); + editor.off("mouseup", w.destroy); + editor.off("change", w.destroy); + }; + + editor.keyBinding.addKeyboardHandler(kb); + editor.on("changeSelection", w.destroy); + editor.on("changeSession", w.destroy); + editor.on("mouseup", w.destroy); + editor.on("change", w.destroy); + + editor.session.widgetManager.addLineWidget(w); + + w.el.onmousedown = editor.focus.bind(editor); + + editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight}); +}; + + +dom.importCssString("\ + .error_widget_wrapper {\ + background: inherit;\ + color: inherit;\ + border:none\ + }\ + .error_widget {\ + border-top: solid 2px;\ + border-bottom: solid 2px;\ + margin: 5px 0;\ + padding: 10px 40px;\ + white-space: pre-wrap;\ + }\ + .error_widget.ace_error, .error_widget_arrow.ace_error{\ + border-color: #ff5a5a\ + }\ + .error_widget.ace_warning, .error_widget_arrow.ace_warning{\ + border-color: #F1D817\ + }\ + .error_widget.ace_info, .error_widget_arrow.ace_info{\ + border-color: #5a5a5a\ + }\ + .error_widget.ace_ok, .error_widget_arrow.ace_ok{\ + border-color: #5aaa5a\ + }\ + .error_widget_arrow {\ + position: absolute;\ + border: solid 5px;\ + border-top-color: transparent!important;\ + border-right-color: transparent!important;\ + border-left-color: transparent!important;\ + top: -5px;\ + }\ +", ""); + +}); + +ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"], function(require, exports, module) { +"use strict"; + +require("./lib/fixoldbrowsers"); + +var dom = require("./lib/dom"); +var event = require("./lib/event"); + +var Editor = require("./editor").Editor; +var EditSession = require("./edit_session").EditSession; +var UndoManager = require("./undomanager").UndoManager; +var Renderer = require("./virtual_renderer").VirtualRenderer; +require("./worker/worker_client"); +require("./keyboard/hash_handler"); +require("./placeholder"); +require("./multi_select"); +require("./mode/folding/fold_mode"); +require("./theme/textmate"); +require("./ext/error_marker"); + +exports.config = require("./config"); +exports.require = require; + +if (typeof define === "function") + exports.define = define; +exports.edit = function(el) { + if (typeof el == "string") { + var _id = el; + el = document.getElementById(_id); + if (!el) + throw new Error("ace.edit can't find div #" + _id); + } + + if (el && el.env && el.env.editor instanceof Editor) + return el.env.editor; + + var value = ""; + if (el && /input|textarea/i.test(el.tagName)) { + var oldNode = el; + value = oldNode.value; + el = dom.createElement("pre"); + oldNode.parentNode.replaceChild(el, oldNode); + } else if (el) { + value = dom.getInnerText(el); + el.innerHTML = ""; + } + + var doc = exports.createEditSession(value); + + var editor = new Editor(new Renderer(el)); + editor.setSession(doc); + + var env = { + document: doc, + editor: editor, + onResize: editor.resize.bind(editor, null) + }; + if (oldNode) env.textarea = oldNode; + event.addListener(window, "resize", env.onResize); + editor.on("destroy", function() { + event.removeListener(window, "resize", env.onResize); + env.editor.container.env = null; // prevent memory leak on old ie + }); + editor.container.env = editor.env = env; + return editor; +}; +exports.createEditSession = function(text, mode) { + var doc = new EditSession(text, mode); + doc.setUndoManager(new UndoManager()); + return doc; +} +exports.EditSession = EditSession; +exports.UndoManager = UndoManager; +exports.version = "1.2.8"; +}); + (function() { + ace.require(["ace/ace"], function(a) { + if (a) { + a.config.init(true); + a.define = ace.define; + } + if (!window.ace) + window.ace = a; + for (var key in a) if (a.hasOwnProperty(key)) + window.ace[key] = a[key]; + }); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-beautify.js b/htdocs/includes/ace/ext-beautify.js new file mode 100644 index 00000000000..ba499b776e5 --- /dev/null +++ b/htdocs/includes/ace/ext-beautify.js @@ -0,0 +1,334 @@ +ace.define("ace/ext/beautify/php_rules",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; +var TokenIterator = require("ace/token_iterator").TokenIterator; +exports.newLines = [{ + type: 'support.php_tag', + value: '' +}, { + type: 'paren.lparen', + value: '{', + indent: true +}, { + type: 'paren.rparen', + breakBefore: true, + value: '}', + indent: false +}, { + type: 'paren.rparen', + breakBefore: true, + value: '})', + indent: false, + dontBreak: true +}, { + type: 'comment' +}, { + type: 'text', + value: ';' +}, { + type: 'text', + value: ':', + context: 'php' +}, { + type: 'keyword', + value: 'case', + indent: true, + dontBreak: true +}, { + type: 'keyword', + value: 'default', + indent: true, + dontBreak: true +}, { + type: 'keyword', + value: 'break', + indent: false, + dontBreak: true +}, { + type: 'punctuation.doctype.end', + value: '>' +}, { + type: 'meta.tag.punctuation.end', + value: '>' +}, { + type: 'meta.tag.punctuation.begin', + value: '<', + blockTag: true, + indent: true, + dontBreak: true +}, { + type: 'meta.tag.punctuation.begin', + value: '' ){ + context = 'php'; + } + else if( token.type == 'support.php_tag' && token.value == '?>' ){ + context = 'html'; + } + else if( token.type == 'meta.tag.name.style' && context != 'css' ){ + context = 'css'; + } + else if( token.type == 'meta.tag.name.style' && context == 'css' ){ + context = 'html'; + } + else if( token.type == 'meta.tag.name.script' && context != 'js' ){ + context = 'js'; + } + else if( token.type == 'meta.tag.name.script' && context == 'js' ){ + context = 'html'; + } + + nextToken = iterator.stepForward(); + if (nextToken && nextToken.type.indexOf('meta.tag.name') == 0) { + nextTag = nextToken.value; + } + if ( lastToken.type == 'support.php_tag' && lastToken.value == '' ) { + dontBreak = false; + } + lastTag = tag; + + lastToken = token; + + token = nextToken; + + if (token===null) { + break; + } + } + + return code; +}; + + + +}); + +ace.define("ace/ext/beautify",["require","exports","module","ace/token_iterator","ace/ext/beautify/php_rules"], function(require, exports, module) { +"use strict"; +var TokenIterator = require("ace/token_iterator").TokenIterator; + +var phpTransform = require("./beautify/php_rules").transform; + +exports.beautify = function(session) { + var iterator = new TokenIterator(session, 0, 0); + var token = iterator.getCurrentToken(); + + var context = session.$modeId.split("/").pop(); + + var code = phpTransform(iterator, context); + session.doc.setValue(code); +}; + +exports.commands = [{ + name: "beautify", + exec: function(editor) { + exports.beautify(editor.session); + }, + bindKey: "Ctrl-Shift-B" +}] + +}); + (function() { + ace.require(["ace/ext/beautify"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-chromevox.js b/htdocs/includes/ace/ext-chromevox.js new file mode 100644 index 00000000000..a321335c6c0 --- /dev/null +++ b/htdocs/includes/ace/ext-chromevox.js @@ -0,0 +1,540 @@ +ace.define("ace/ext/chromevox",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) { +var cvoxAce = {}; +cvoxAce.SpeechProperty; +cvoxAce.Cursor; +cvoxAce.Token; +cvoxAce.Annotation; +var CONSTANT_PROP = { + 'rate': 0.8, + 'pitch': 0.4, + 'volume': 0.9 +}; +var DEFAULT_PROP = { + 'rate': 1, + 'pitch': 0.5, + 'volume': 0.9 +}; +var ENTITY_PROP = { + 'rate': 0.8, + 'pitch': 0.8, + 'volume': 0.9 +}; +var KEYWORD_PROP = { + 'rate': 0.8, + 'pitch': 0.3, + 'volume': 0.9 +}; +var STORAGE_PROP = { + 'rate': 0.8, + 'pitch': 0.7, + 'volume': 0.9 +}; +var VARIABLE_PROP = { + 'rate': 0.8, + 'pitch': 0.8, + 'volume': 0.9 +}; +var DELETED_PROP = { + 'punctuationEcho': 'none', + 'relativePitch': -0.6 +}; +var ERROR_EARCON = 'ALERT_NONMODAL'; +var MODE_SWITCH_EARCON = 'ALERT_MODAL'; +var NO_MATCH_EARCON = 'INVALID_KEYPRESS'; +var INSERT_MODE_STATE = 'insertMode'; +var COMMAND_MODE_STATE = 'start'; + +var REPLACE_LIST = [ + { + substr: ';', + newSubstr: ' semicolon ' + }, + { + substr: ':', + newSubstr: ' colon ' + } +]; +var Command = { + SPEAK_ANNOT: 'annots', + SPEAK_ALL_ANNOTS: 'all_annots', + TOGGLE_LOCATION: 'toggle_location', + SPEAK_MODE: 'mode', + SPEAK_ROW_COL: 'row_col', + TOGGLE_DISPLACEMENT: 'toggle_displacement', + FOCUS_TEXT: 'focus_text' +}; +var KEY_PREFIX = 'CONTROL + SHIFT '; +cvoxAce.editor = null; +var lastCursor = null; +var annotTable = {}; +var shouldSpeakRowLocation = false; +var shouldSpeakDisplacement = false; +var changed = false; +var vimState = null; +var keyCodeToShortcutMap = {}; +var cmdToShortcutMap = {}; +var getKeyShortcutString = function(keyCode) { + return KEY_PREFIX + String.fromCharCode(keyCode); +}; +var isVimMode = function() { + var keyboardHandler = cvoxAce.editor.keyBinding.getKeyboardHandler(); + return keyboardHandler.$id === 'ace/keyboard/vim'; +}; +var getCurrentToken = function(cursor) { + return cvoxAce.editor.getSession().getTokenAt(cursor.row, cursor.column + 1); +}; +var getCurrentLine = function(cursor) { + return cvoxAce.editor.getSession().getLine(cursor.row); +}; +var onRowChange = function(currCursor) { + if (annotTable[currCursor.row]) { + cvox.Api.playEarcon(ERROR_EARCON); + } + if (shouldSpeakRowLocation) { + cvox.Api.stop(); + speakChar(currCursor); + speakTokenQueue(getCurrentToken(currCursor)); + speakLine(currCursor.row, 1); + } else { + speakLine(currCursor.row, 0); + } +}; +var isWord = function(cursor) { + var line = getCurrentLine(cursor); + var lineSuffix = line.substr(cursor.column - 1); + if (cursor.column === 0) { + lineSuffix = ' ' + line; + } + var firstWordRegExp = /^\W(\w+)/; + var words = firstWordRegExp.exec(lineSuffix); + return words !== null; +}; +var rules = { + 'constant': { + prop: CONSTANT_PROP + }, + 'entity': { + prop: ENTITY_PROP + }, + 'keyword': { + prop: KEYWORD_PROP + }, + 'storage': { + prop: STORAGE_PROP + }, + 'variable': { + prop: VARIABLE_PROP + }, + 'meta': { + prop: DEFAULT_PROP, + replace: [ + { + substr: '', + newSubstr: ' close tag ' + }, + { + substr: '<', + newSubstr: ' tag start ' + }, + { + substr: '>', + newSubstr: ' tag end ' + } + ] + } +}; +var DEFAULT_RULE = { + prop: DEFAULT_RULE +}; +var expand = function(value, replaceRules) { + var newValue = value; + for (var i = 0; i < replaceRules.length; i++) { + var replaceRule = replaceRules[i]; + var regexp = new RegExp(replaceRule.substr, 'g'); + newValue = newValue.replace(regexp, replaceRule.newSubstr); + } + return newValue; +}; +var mergeTokens = function(tokens, start, end) { + var newToken = {}; + newToken.value = ''; + newToken.type = tokens[start].type; + for (var j = start; j < end; j++) { + newToken.value += tokens[j].value; + } + return newToken; +}; +var mergeLikeTokens = function(tokens) { + if (tokens.length <= 1) { + return tokens; + } + var newTokens = []; + var lastLikeIndex = 0; + for (var i = 1; i < tokens.length; i++) { + var lastLikeToken = tokens[lastLikeIndex]; + var currToken = tokens[i]; + if (getTokenRule(lastLikeToken) !== getTokenRule(currToken)) { + newTokens.push(mergeTokens(tokens, lastLikeIndex, i)); + lastLikeIndex = i; + } + } + newTokens.push(mergeTokens(tokens, lastLikeIndex, tokens.length)); + return newTokens; +}; +var isRowWhiteSpace = function(row) { + var line = cvoxAce.editor.getSession().getLine(row); + var whiteSpaceRegexp = /^\s*$/; + return whiteSpaceRegexp.exec(line) !== null; +}; +var speakLine = function(row, queue) { + var tokens = cvoxAce.editor.getSession().getTokens(row); + if (tokens.length === 0 || isRowWhiteSpace(row)) { + cvox.Api.playEarcon('EDITABLE_TEXT'); + return; + } + tokens = mergeLikeTokens(tokens); + var firstToken = tokens[0]; + tokens = tokens.filter(function(token) { + return token !== firstToken; + }); + speakToken_(firstToken, queue); + tokens.forEach(speakTokenQueue); +}; +var speakTokenFlush = function(token) { + speakToken_(token, 0); +}; +var speakTokenQueue = function(token) { + speakToken_(token, 1); +}; +var getTokenRule = function(token) { + if (!token || !token.type) { + return; + } + var split = token.type.split('.'); + if (split.length === 0) { + return; + } + var type = split[0]; + var rule = rules[type]; + if (!rule) { + return DEFAULT_RULE; + } + return rule; +}; +var speakToken_ = function(token, queue) { + var rule = getTokenRule(token); + var value = expand(token.value, REPLACE_LIST); + if (rule.replace) { + value = expand(value, rule.replace); + } + cvox.Api.speak(value, queue, rule.prop); +}; +var speakChar = function(cursor) { + var line = getCurrentLine(cursor); + cvox.Api.speak(line[cursor.column], 1); +}; +var speakDisplacement = function(lastCursor, currCursor) { + var line = getCurrentLine(currCursor); + var displace = line.substring(lastCursor.column, currCursor.column); + displace = displace.replace(/ /g, ' space '); + cvox.Api.speak(displace); +}; +var speakCharOrWordOrLine = function(lastCursor, currCursor) { + if (Math.abs(lastCursor.column - currCursor.column) !== 1) { + var currLineLength = getCurrentLine(currCursor).length; + if (currCursor.column === 0 || currCursor.column === currLineLength) { + speakLine(currCursor.row, 0); + return; + } + if (isWord(currCursor)) { + cvox.Api.stop(); + speakTokenQueue(getCurrentToken(currCursor)); + return; + } + } + speakChar(currCursor); +}; +var onColumnChange = function(lastCursor, currCursor) { + if (!cvoxAce.editor.selection.isEmpty()) { + speakDisplacement(lastCursor, currCursor); + cvox.Api.speak('selected', 1); + } + else if (shouldSpeakDisplacement) { + speakDisplacement(lastCursor, currCursor); + } else { + speakCharOrWordOrLine(lastCursor, currCursor); + } +}; +var onCursorChange = function(evt) { + if (changed) { + changed = false; + return; + } + var currCursor = cvoxAce.editor.selection.getCursor(); + if (currCursor.row !== lastCursor.row) { + onRowChange(currCursor); + } else { + onColumnChange(lastCursor, currCursor); + } + lastCursor = currCursor; +}; +var onSelectionChange = function(evt) { + if (cvoxAce.editor.selection.isEmpty()) { + cvox.Api.speak('unselected'); + } +}; +var onChange = function(delta) { + switch (delta.action) { + case 'remove': + cvox.Api.speak(delta.text, 0, DELETED_PROP); + changed = true; + break; + case 'insert': + cvox.Api.speak(delta.text, 0); + changed = true; + break; + } +}; +var isNewAnnotation = function(annot) { + var row = annot.row; + var col = annot.column; + return !annotTable[row] || !annotTable[row][col]; +}; +var populateAnnotations = function(annotations) { + annotTable = {}; + for (var i = 0; i < annotations.length; i++) { + var annotation = annotations[i]; + var row = annotation.row; + var col = annotation.column; + if (!annotTable[row]) { + annotTable[row] = {}; + } + annotTable[row][col] = annotation; + } +}; +var onAnnotationChange = function(evt) { + var annotations = cvoxAce.editor.getSession().getAnnotations(); + var newAnnotations = annotations.filter(isNewAnnotation); + if (newAnnotations.length > 0) { + cvox.Api.playEarcon(ERROR_EARCON); + } + populateAnnotations(annotations); +}; +var speakAnnot = function(annot) { + var annotText = annot.type + ' ' + annot.text + ' on ' + + rowColToString(annot.row, annot.column); + annotText = annotText.replace(';', 'semicolon'); + cvox.Api.speak(annotText, 1); +}; +var speakAnnotsByRow = function(row) { + var annots = annotTable[row]; + for (var col in annots) { + speakAnnot(annots[col]); + } +}; +var rowColToString = function(row, col) { + return 'row ' + (row + 1) + ' column ' + (col + 1); +}; +var speakCurrRowAndCol = function() { + cvox.Api.speak(rowColToString(lastCursor.row, lastCursor.column)); +}; +var speakAllAnnots = function() { + for (var row in annotTable) { + speakAnnotsByRow(row); + } +}; +var speakMode = function() { + if (!isVimMode()) { + return; + } + switch (cvoxAce.editor.keyBinding.$data.state) { + case INSERT_MODE_STATE: + cvox.Api.speak('Insert mode'); + break; + case COMMAND_MODE_STATE: + cvox.Api.speak('Command mode'); + break; + } +}; +var toggleSpeakRowLocation = function() { + shouldSpeakRowLocation = !shouldSpeakRowLocation; + if (shouldSpeakRowLocation) { + cvox.Api.speak('Speak location on row change enabled.'); + } else { + cvox.Api.speak('Speak location on row change disabled.'); + } +}; +var toggleSpeakDisplacement = function() { + shouldSpeakDisplacement = !shouldSpeakDisplacement; + if (shouldSpeakDisplacement) { + cvox.Api.speak('Speak displacement on column changes.'); + } else { + cvox.Api.speak('Speak current character or word on column changes.'); + } +}; +var onKeyDown = function(evt) { + if (evt.ctrlKey && evt.shiftKey) { + var shortcut = keyCodeToShortcutMap[evt.keyCode]; + if (shortcut) { + shortcut.func(); + } + } +}; +var onChangeStatus = function(evt, editor) { + if (!isVimMode()) { + return; + } + var state = editor.keyBinding.$data.state; + if (state === vimState) { + return; + } + switch (state) { + case INSERT_MODE_STATE: + cvox.Api.playEarcon(MODE_SWITCH_EARCON); + cvox.Api.setKeyEcho(true); + break; + case COMMAND_MODE_STATE: + cvox.Api.playEarcon(MODE_SWITCH_EARCON); + cvox.Api.setKeyEcho(false); + break; + } + vimState = state; +}; +var contextMenuHandler = function(evt) { + var cmd = evt.detail['customCommand']; + var shortcut = cmdToShortcutMap[cmd]; + if (shortcut) { + shortcut.func(); + cvoxAce.editor.focus(); + } +}; +var initContextMenu = function() { + var ACTIONS = SHORTCUTS.map(function(shortcut) { + return { + desc: shortcut.desc + getKeyShortcutString(shortcut.keyCode), + cmd: shortcut.cmd + }; + }); + var body = document.querySelector('body'); + body.setAttribute('contextMenuActions', JSON.stringify(ACTIONS)); + body.addEventListener('ATCustomEvent', contextMenuHandler, true); +}; +var onFindSearchbox = function(evt) { + if (evt.match) { + speakLine(lastCursor.row, 0); + } else { + cvox.Api.playEarcon(NO_MATCH_EARCON); + } +}; +var focus = function() { + cvoxAce.editor.focus(); +}; +var SHORTCUTS = [ + { + keyCode: 49, + func: function() { + speakAnnotsByRow(lastCursor.row); + }, + cmd: Command.SPEAK_ANNOT, + desc: 'Speak annotations on line' + }, + { + keyCode: 50, + func: speakAllAnnots, + cmd: Command.SPEAK_ALL_ANNOTS, + desc: 'Speak all annotations' + }, + { + keyCode: 51, + func: speakMode, + cmd: Command.SPEAK_MODE, + desc: 'Speak Vim mode' + }, + { + keyCode: 52, + func: toggleSpeakRowLocation, + cmd: Command.TOGGLE_LOCATION, + desc: 'Toggle speak row location' + }, + { + keyCode: 53, + func: speakCurrRowAndCol, + cmd: Command.SPEAK_ROW_COL, + desc: 'Speak row and column' + }, + { + keyCode: 54, + func: toggleSpeakDisplacement, + cmd: Command.TOGGLE_DISPLACEMENT, + desc: 'Toggle speak displacement' + }, + { + keyCode: 55, + func: focus, + cmd: Command.FOCUS_TEXT, + desc: 'Focus text' + } +]; +var onFocus = function(_, editor) { + cvoxAce.editor = editor; + editor.getSession().selection.on('changeCursor', onCursorChange); + editor.getSession().selection.on('changeSelection', onSelectionChange); + editor.getSession().on('change', onChange); + editor.getSession().on('changeAnnotation', onAnnotationChange); + editor.on('changeStatus', onChangeStatus); + editor.on('findSearchBox', onFindSearchbox); + editor.container.addEventListener('keydown', onKeyDown); + + lastCursor = editor.selection.getCursor(); +}; +var init = function(editor) { + onFocus(null, editor); + SHORTCUTS.forEach(function(shortcut) { + keyCodeToShortcutMap[shortcut.keyCode] = shortcut; + cmdToShortcutMap[shortcut.cmd] = shortcut; + }); + + editor.on('focus', onFocus); + if (isVimMode()) { + cvox.Api.setKeyEcho(false); + } + initContextMenu(); +}; +function cvoxApiExists() { + return (typeof(cvox) !== 'undefined') && cvox && cvox.Api; +} +var tries = 0; +var MAX_TRIES = 15; +function watchForCvoxLoad(editor) { + if (cvoxApiExists()) { + init(editor); + } else { + tries++; + if (tries >= MAX_TRIES) { + return; + } + window.setTimeout(watchForCvoxLoad, 500, editor); + } +} + +var Editor = require('../editor').Editor; +require('../config').defineOptions(Editor.prototype, 'editor', { + enableChromevoxEnhancements: { + set: function(val) { + if (val) { + watchForCvoxLoad(this); + } + }, + value: true // turn it on by default or check for window.cvox + } +}); + +}); + (function() { + ace.require(["ace/ext/chromevox"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-elastic_tabstops_lite.js b/htdocs/includes/ace/ext-elastic_tabstops_lite.js new file mode 100644 index 00000000000..14e8855f1f5 --- /dev/null +++ b/htdocs/includes/ace/ext-elastic_tabstops_lite.js @@ -0,0 +1,274 @@ +ace.define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) { +"use strict"; + +var ElasticTabstopsLite = function(editor) { + this.$editor = editor; + var self = this; + var changedRows = []; + var recordChanges = false; + this.onAfterExec = function() { + recordChanges = false; + self.processRows(changedRows); + changedRows = []; + }; + this.onExec = function() { + recordChanges = true; + }; + this.onChange = function(delta) { + if (recordChanges) { + if (changedRows.indexOf(delta.start.row) == -1) + changedRows.push(delta.start.row); + if (delta.end.row != delta.start.row) + changedRows.push(delta.end.row); + } + }; +}; + +(function() { + this.processRows = function(rows) { + this.$inChange = true; + var checkedRows = []; + + for (var r = 0, rowCount = rows.length; r < rowCount; r++) { + var row = rows[r]; + + if (checkedRows.indexOf(row) > -1) + continue; + + var cellWidthObj = this.$findCellWidthsForBlock(row); + var cellWidths = this.$setBlockCellWidthsToMax(cellWidthObj.cellWidths); + var rowIndex = cellWidthObj.firstRow; + + for (var w = 0, l = cellWidths.length; w < l; w++) { + var widths = cellWidths[w]; + checkedRows.push(rowIndex); + this.$adjustRow(rowIndex, widths); + rowIndex++; + } + } + this.$inChange = false; + }; + + this.$findCellWidthsForBlock = function(row) { + var cellWidths = [], widths; + var rowIter = row; + while (rowIter >= 0) { + widths = this.$cellWidthsForRow(rowIter); + if (widths.length == 0) + break; + + cellWidths.unshift(widths); + rowIter--; + } + var firstRow = rowIter + 1; + rowIter = row; + var numRows = this.$editor.session.getLength(); + + while (rowIter < numRows - 1) { + rowIter++; + + widths = this.$cellWidthsForRow(rowIter); + if (widths.length == 0) + break; + + cellWidths.push(widths); + } + + return { cellWidths: cellWidths, firstRow: firstRow }; + }; + + this.$cellWidthsForRow = function(row) { + var selectionColumns = this.$selectionColumnsForRow(row); + + var tabs = [-1].concat(this.$tabsForRow(row)); + var widths = tabs.map(function(el) { return 0; } ).slice(1); + var line = this.$editor.session.getLine(row); + + for (var i = 0, len = tabs.length - 1; i < len; i++) { + var leftEdge = tabs[i]+1; + var rightEdge = tabs[i+1]; + + var rightmostSelection = this.$rightmostSelectionInCell(selectionColumns, rightEdge); + var cell = line.substring(leftEdge, rightEdge); + widths[i] = Math.max(cell.replace(/\s+$/g,'').length, rightmostSelection - leftEdge); + } + + return widths; + }; + + this.$selectionColumnsForRow = function(row) { + var selections = [], cursor = this.$editor.getCursorPosition(); + if (this.$editor.session.getSelection().isEmpty()) { + if (row == cursor.row) + selections.push(cursor.column); + } + + return selections; + }; + + this.$setBlockCellWidthsToMax = function(cellWidths) { + var startingNewBlock = true, blockStartRow, blockEndRow, maxWidth; + var columnInfo = this.$izip_longest(cellWidths); + + for (var c = 0, l = columnInfo.length; c < l; c++) { + var column = columnInfo[c]; + if (!column.push) { + console.error(column); + continue; + } + column.push(NaN); + + for (var r = 0, s = column.length; r < s; r++) { + var width = column[r]; + if (startingNewBlock) { + blockStartRow = r; + maxWidth = 0; + startingNewBlock = false; + } + if (isNaN(width)) { + blockEndRow = r; + + for (var j = blockStartRow; j < blockEndRow; j++) { + cellWidths[j][c] = maxWidth; + } + startingNewBlock = true; + } + + maxWidth = Math.max(maxWidth, width); + } + } + + return cellWidths; + }; + + this.$rightmostSelectionInCell = function(selectionColumns, cellRightEdge) { + var rightmost = 0; + + if (selectionColumns.length) { + var lengths = []; + for (var s = 0, length = selectionColumns.length; s < length; s++) { + if (selectionColumns[s] <= cellRightEdge) + lengths.push(s); + else + lengths.push(0); + } + rightmost = Math.max.apply(Math, lengths); + } + + return rightmost; + }; + + this.$tabsForRow = function(row) { + var rowTabs = [], line = this.$editor.session.getLine(row), + re = /\t/g, match; + + while ((match = re.exec(line)) != null) { + rowTabs.push(match.index); + } + + return rowTabs; + }; + + this.$adjustRow = function(row, widths) { + var rowTabs = this.$tabsForRow(row); + + if (rowTabs.length == 0) + return; + + var bias = 0, location = -1; + var expandedSet = this.$izip(widths, rowTabs); + + for (var i = 0, l = expandedSet.length; i < l; i++) { + var w = expandedSet[i][0], it = expandedSet[i][1]; + location += 1 + w; + it += bias; + var difference = location - it; + + if (difference == 0) + continue; + + var partialLine = this.$editor.session.getLine(row).substr(0, it ); + var strippedPartialLine = partialLine.replace(/\s*$/g, ""); + var ispaces = partialLine.length - strippedPartialLine.length; + + if (difference > 0) { + this.$editor.session.getDocument().insertInLine({row: row, column: it + 1}, Array(difference + 1).join(" ") + "\t"); + this.$editor.session.getDocument().removeInLine(row, it, it + 1); + + bias += difference; + } + + if (difference < 0 && ispaces >= -difference) { + this.$editor.session.getDocument().removeInLine(row, it + difference, it); + bias += difference; + } + } + }; + this.$izip_longest = function(iterables) { + if (!iterables[0]) + return []; + var longest = iterables[0].length; + var iterablesLength = iterables.length; + + for (var i = 1; i < iterablesLength; i++) { + var iLength = iterables[i].length; + if (iLength > longest) + longest = iLength; + } + + var expandedSet = []; + + for (var l = 0; l < longest; l++) { + var set = []; + for (var i = 0; i < iterablesLength; i++) { + if (iterables[i][l] === "") + set.push(NaN); + else + set.push(iterables[i][l]); + } + + expandedSet.push(set); + } + + + return expandedSet; + }; + this.$izip = function(widths, tabs) { + var size = widths.length >= tabs.length ? tabs.length : widths.length; + + var expandedSet = []; + for (var i = 0; i < size; i++) { + var set = [ widths[i], tabs[i] ]; + expandedSet.push(set); + } + return expandedSet; + }; + +}).call(ElasticTabstopsLite.prototype); + +exports.ElasticTabstopsLite = ElasticTabstopsLite; + +var Editor = require("../editor").Editor; +require("../config").defineOptions(Editor.prototype, "editor", { + useElasticTabstops: { + set: function(val) { + if (val) { + if (!this.elasticTabstops) + this.elasticTabstops = new ElasticTabstopsLite(this); + this.commands.on("afterExec", this.elasticTabstops.onAfterExec); + this.commands.on("exec", this.elasticTabstops.onExec); + this.on("change", this.elasticTabstops.onChange); + } else if (this.elasticTabstops) { + this.commands.removeListener("afterExec", this.elasticTabstops.onAfterExec); + this.commands.removeListener("exec", this.elasticTabstops.onExec); + this.removeListener("change", this.elasticTabstops.onChange); + } + } + } +}); + +}); + (function() { + ace.require(["ace/ext/elastic_tabstops_lite"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-emmet.js b/htdocs/includes/ace/ext-emmet.js new file mode 100644 index 00000000000..c2f2d1a18fa --- /dev/null +++ b/htdocs/includes/ace/ext-emmet.js @@ -0,0 +1,1223 @@ +ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"], function(require, exports, module) { +"use strict"; +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var lang = require("./lib/lang"); +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; +var HashHandler = require("./keyboard/hash_handler").HashHandler; +var Tokenizer = require("./tokenizer").Tokenizer; +var comparePoints = Range.comparePoints; + +var SnippetManager = function() { + this.snippetMap = {}; + this.snippetNameMap = {}; +}; + +(function() { + oop.implement(this, EventEmitter); + + this.getTokenizer = function() { + function TabstopToken(str, _, stack) { + str = str.substr(1); + if (/^\d+$/.test(str) && !stack.inFormatString) + return [{tabstopId: parseInt(str, 10)}]; + return [{text: str}]; + } + function escape(ch) { + return "(?:[^\\\\" + ch + "]|\\\\.)"; + } + SnippetManager.$tokenizer = new Tokenizer({ + start: [ + {regex: /:/, onMatch: function(val, state, stack) { + if (stack.length && stack[0].expectIf) { + stack[0].expectIf = false; + stack[0].elseBranch = stack[0]; + return [stack[0]]; + } + return ":"; + }}, + {regex: /\\./, onMatch: function(val, state, stack) { + var ch = val[1]; + if (ch == "}" && stack.length) { + val = ch; + }else if ("`$\\".indexOf(ch) != -1) { + val = ch; + } else if (stack.inFormatString) { + if (ch == "n") + val = "\n"; + else if (ch == "t") + val = "\n"; + else if ("ulULE".indexOf(ch) != -1) { + val = {changeCase: ch, local: ch > "a"}; + } + } + + return [val]; + }}, + {regex: /}/, onMatch: function(val, state, stack) { + return [stack.length ? stack.shift() : val]; + }}, + {regex: /\$(?:\d+|\w+)/, onMatch: TabstopToken}, + {regex: /\$\{[\dA-Z_a-z]+/, onMatch: function(str, state, stack) { + var t = TabstopToken(str.substr(1), state, stack); + stack.unshift(t[0]); + return t; + }, next: "snippetVar"}, + {regex: /\n/, token: "newline", merge: false} + ], + snippetVar: [ + {regex: "\\|" + escape("\\|") + "*\\|", onMatch: function(val, state, stack) { + stack[0].choices = val.slice(1, -1).split(","); + }, next: "start"}, + {regex: "/(" + escape("/") + "+)/(?:(" + escape("/") + "*)/)(\\w*):?", + onMatch: function(val, state, stack) { + var ts = stack[0]; + ts.fmtString = val; + + val = this.splitRegex.exec(val); + ts.guard = val[1]; + ts.fmt = val[2]; + ts.flag = val[3]; + return ""; + }, next: "start"}, + {regex: "`" + escape("`") + "*`", onMatch: function(val, state, stack) { + stack[0].code = val.splice(1, -1); + return ""; + }, next: "start"}, + {regex: "\\?", onMatch: function(val, state, stack) { + if (stack[0]) + stack[0].expectIf = true; + }, next: "start"}, + {regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "start"} + ], + formatString: [ + {regex: "/(" + escape("/") + "+)/", token: "regex"}, + {regex: "", onMatch: function(val, state, stack) { + stack.inFormatString = true; + }, next: "start"} + ] + }); + SnippetManager.prototype.getTokenizer = function() { + return SnippetManager.$tokenizer; + }; + return SnippetManager.$tokenizer; + }; + + this.tokenizeTmSnippet = function(str, startState) { + return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) { + return x.value || x; + }); + }; + + this.$getDefaultValue = function(editor, name) { + if (/^[A-Z]\d+$/.test(name)) { + var i = name.substr(1); + return (this.variables[name[0] + "__"] || {})[i]; + } + if (/^\d+$/.test(name)) { + return (this.variables.__ || {})[name]; + } + name = name.replace(/^TM_/, ""); + + if (!editor) + return; + var s = editor.session; + switch(name) { + case "CURRENT_WORD": + var r = s.getWordRange(); + case "SELECTION": + case "SELECTED_TEXT": + return s.getTextRange(r); + case "CURRENT_LINE": + return s.getLine(editor.getCursorPosition().row); + case "PREV_LINE": // not possible in textmate + return s.getLine(editor.getCursorPosition().row - 1); + case "LINE_INDEX": + return editor.getCursorPosition().column; + case "LINE_NUMBER": + return editor.getCursorPosition().row + 1; + case "SOFT_TABS": + return s.getUseSoftTabs() ? "YES" : "NO"; + case "TAB_SIZE": + return s.getTabSize(); + case "FILENAME": + case "FILEPATH": + return ""; + case "FULLNAME": + return "Ace"; + } + }; + this.variables = {}; + this.getVariableValue = function(editor, varName) { + if (this.variables.hasOwnProperty(varName)) + return this.variables[varName](editor, varName) || ""; + return this.$getDefaultValue(editor, varName) || ""; + }; + this.tmStrFormat = function(str, ch, editor) { + var flag = ch.flag || ""; + var re = ch.guard; + re = new RegExp(re, flag.replace(/[^gi]/, "")); + var fmtTokens = this.tokenizeTmSnippet(ch.fmt, "formatString"); + var _self = this; + var formatted = str.replace(re, function() { + _self.variables.__ = arguments; + var fmtParts = _self.resolveVariables(fmtTokens, editor); + var gChangeCase = "E"; + for (var i = 0; i < fmtParts.length; i++) { + var ch = fmtParts[i]; + if (typeof ch == "object") { + fmtParts[i] = ""; + if (ch.changeCase && ch.local) { + var next = fmtParts[i + 1]; + if (next && typeof next == "string") { + if (ch.changeCase == "u") + fmtParts[i] = next[0].toUpperCase(); + else + fmtParts[i] = next[0].toLowerCase(); + fmtParts[i + 1] = next.substr(1); + } + } else if (ch.changeCase) { + gChangeCase = ch.changeCase; + } + } else if (gChangeCase == "U") { + fmtParts[i] = ch.toUpperCase(); + } else if (gChangeCase == "L") { + fmtParts[i] = ch.toLowerCase(); + } + } + return fmtParts.join(""); + }); + this.variables.__ = null; + return formatted; + }; + + this.resolveVariables = function(snippet, editor) { + var result = []; + for (var i = 0; i < snippet.length; i++) { + var ch = snippet[i]; + if (typeof ch == "string") { + result.push(ch); + } else if (typeof ch != "object") { + continue; + } else if (ch.skip) { + gotoNext(ch); + } else if (ch.processed < i) { + continue; + } else if (ch.text) { + var value = this.getVariableValue(editor, ch.text); + if (value && ch.fmtString) + value = this.tmStrFormat(value, ch); + ch.processed = i; + if (ch.expectIf == null) { + if (value) { + result.push(value); + gotoNext(ch); + } + } else { + if (value) { + ch.skip = ch.elseBranch; + } else + gotoNext(ch); + } + } else if (ch.tabstopId != null) { + result.push(ch); + } else if (ch.changeCase != null) { + result.push(ch); + } + } + function gotoNext(ch) { + var i1 = snippet.indexOf(ch, i + 1); + if (i1 != -1) + i = i1; + } + return result; + }; + + this.insertSnippetForSelection = function(editor, snippetText) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var tabString = editor.session.getTabString(); + var indentString = line.match(/^\s*/)[0]; + + if (cursor.column < indentString.length) + indentString = indentString.slice(0, cursor.column); + + snippetText = snippetText.replace(/\r/g, ""); + var tokens = this.tokenizeTmSnippet(snippetText); + tokens = this.resolveVariables(tokens, editor); + tokens = tokens.map(function(x) { + if (x == "\n") + return x + indentString; + if (typeof x == "string") + return x.replace(/\t/g, tabString); + return x; + }); + var tabstops = []; + tokens.forEach(function(p, i) { + if (typeof p != "object") + return; + var id = p.tabstopId; + var ts = tabstops[id]; + if (!ts) { + ts = tabstops[id] = []; + ts.index = id; + ts.value = ""; + } + if (ts.indexOf(p) !== -1) + return; + ts.push(p); + var i1 = tokens.indexOf(p, i + 1); + if (i1 === -1) + return; + + var value = tokens.slice(i + 1, i1); + var isNested = value.some(function(t) {return typeof t === "object"}); + if (isNested && !ts.value) { + ts.value = value; + } else if (value.length && (!ts.value || typeof ts.value !== "string")) { + ts.value = value.join(""); + } + }); + tabstops.forEach(function(ts) {ts.length = 0}); + var expanding = {}; + function copyValue(val) { + var copy = []; + for (var i = 0; i < val.length; i++) { + var p = val[i]; + if (typeof p == "object") { + if (expanding[p.tabstopId]) + continue; + var j = val.lastIndexOf(p, i - 1); + p = copy[j] || {tabstopId: p.tabstopId}; + } + copy[i] = p; + } + return copy; + } + for (var i = 0; i < tokens.length; i++) { + var p = tokens[i]; + if (typeof p != "object") + continue; + var id = p.tabstopId; + var i1 = tokens.indexOf(p, i + 1); + if (expanding[id]) { + if (expanding[id] === p) + expanding[id] = null; + continue; + } + + var ts = tabstops[id]; + var arg = typeof ts.value == "string" ? [ts.value] : copyValue(ts.value); + arg.unshift(i + 1, Math.max(0, i1 - i)); + arg.push(p); + expanding[id] = p; + tokens.splice.apply(tokens, arg); + + if (ts.indexOf(p) === -1) + ts.push(p); + } + var row = 0, column = 0; + var text = ""; + tokens.forEach(function(t) { + if (typeof t === "string") { + var lines = t.split("\n"); + if (lines.length > 1){ + column = lines[lines.length - 1].length; + row += lines.length - 1; + } else + column += t.length; + text += t; + } else { + if (!t.start) + t.start = {row: row, column: column}; + else + t.end = {row: row, column: column}; + } + }); + var range = editor.getSelectionRange(); + var end = editor.session.replace(range, text); + + var tabstopManager = new TabstopManager(editor); + var selectionId = editor.inVirtualSelectionMode && editor.selection.index; + tabstopManager.addTabstops(tabstops, range.start, end, selectionId); + }; + + this.insertSnippet = function(editor, snippetText) { + var self = this; + if (editor.inVirtualSelectionMode) + return self.insertSnippetForSelection(editor, snippetText); + + editor.forEachSelection(function() { + self.insertSnippetForSelection(editor, snippetText); + }, null, {keepOrder: true}); + + if (editor.tabstopManager) + editor.tabstopManager.tabNext(); + }; + + this.$getScope = function(editor) { + var scope = editor.session.$mode.$id || ""; + scope = scope.split("/").pop(); + if (scope === "html" || scope === "php") { + if (scope === "php" && !editor.session.$mode.inlinePhp) + scope = "html"; + var c = editor.getCursorPosition(); + var state = editor.session.getState(c.row); + if (typeof state === "object") { + state = state[0]; + } + if (state.substring) { + if (state.substring(0, 3) == "js-") + scope = "javascript"; + else if (state.substring(0, 4) == "css-") + scope = "css"; + else if (state.substring(0, 4) == "php-") + scope = "php"; + } + } + + return scope; + }; + + this.getActiveScopes = function(editor) { + var scope = this.$getScope(editor); + var scopes = [scope]; + var snippetMap = this.snippetMap; + if (snippetMap[scope] && snippetMap[scope].includeScopes) { + scopes.push.apply(scopes, snippetMap[scope].includeScopes); + } + scopes.push("_"); + return scopes; + }; + + this.expandWithTab = function(editor, options) { + var self = this; + var result = editor.forEachSelection(function() { + return self.expandSnippetForSelection(editor, options); + }, null, {keepOrder: true}); + if (result && editor.tabstopManager) + editor.tabstopManager.tabNext(); + return result; + }; + + this.expandSnippetForSelection = function(editor, options) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var before = line.substring(0, cursor.column); + var after = line.substr(cursor.column); + + var snippetMap = this.snippetMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = this.findMatchingSnippet(snippets, before, after); + return !!snippet; + }, this); + if (!snippet) + return false; + if (options && options.dryRun) + return true; + editor.session.doc.removeInLine(cursor.row, + cursor.column - snippet.replaceBefore.length, + cursor.column + snippet.replaceAfter.length + ); + + this.variables.M__ = snippet.matchBefore; + this.variables.T__ = snippet.matchAfter; + this.insertSnippetForSelection(editor, snippet.content); + + this.variables.M__ = this.variables.T__ = null; + return true; + }; + + this.findMatchingSnippet = function(snippetList, before, after) { + for (var i = snippetList.length; i--;) { + var s = snippetList[i]; + if (s.startRe && !s.startRe.test(before)) + continue; + if (s.endRe && !s.endRe.test(after)) + continue; + if (!s.startRe && !s.endRe) + continue; + + s.matchBefore = s.startRe ? s.startRe.exec(before) : [""]; + s.matchAfter = s.endRe ? s.endRe.exec(after) : [""]; + s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : ""; + s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : ""; + return s; + } + }; + + this.snippetMap = {}; + this.snippetNameMap = {}; + this.register = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + var self = this; + + if (!snippets) + snippets = []; + + function wrapRegexp(src) { + if (src && !/^\^?\(.*\)\$?$|^\\b$/.test(src)) + src = "(?:" + src + ")"; + + return src || ""; + } + function guardedRegexp(re, guard, opening) { + re = wrapRegexp(re); + guard = wrapRegexp(guard); + if (opening) { + re = guard + re; + if (re && re[re.length - 1] != "$") + re = re + "$"; + } else { + re = re + guard; + if (re && re[0] != "^") + re = "^" + re; + } + return new RegExp(re); + } + + function addSnippet(s) { + if (!s.scope) + s.scope = scope || "_"; + scope = s.scope; + if (!snippetMap[scope]) { + snippetMap[scope] = []; + snippetNameMap[scope] = {}; + } + + var map = snippetNameMap[scope]; + if (s.name) { + var old = map[s.name]; + if (old) + self.unregister(old); + map[s.name] = s; + } + snippetMap[scope].push(s); + + if (s.tabTrigger && !s.trigger) { + if (!s.guard && /^\w/.test(s.tabTrigger)) + s.guard = "\\b"; + s.trigger = lang.escapeRegExp(s.tabTrigger); + } + + if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard) + return; + + s.startRe = guardedRegexp(s.trigger, s.guard, true); + s.triggerRe = new RegExp(s.trigger, "", true); + + s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true); + s.endTriggerRe = new RegExp(s.endTrigger, "", true); + } + + if (snippets && snippets.content) + addSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(addSnippet); + + this._signal("registerSnippets", {scope: scope}); + }; + this.unregister = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + + function removeSnippet(s) { + var nameMap = snippetNameMap[s.scope||scope]; + if (nameMap && nameMap[s.name]) { + delete nameMap[s.name]; + var map = snippetMap[s.scope||scope]; + var i = map && map.indexOf(s); + if (i >= 0) + map.splice(i, 1); + } + } + if (snippets.content) + removeSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(removeSnippet); + }; + this.parseSnippetFile = function(str) { + str = str.replace(/\r/g, ""); + var list = [], snippet = {}; + var re = /^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm; + var m; + while (m = re.exec(str)) { + if (m[1]) { + try { + snippet = JSON.parse(m[1]); + list.push(snippet); + } catch (e) {} + } if (m[4]) { + snippet.content = m[4].replace(/^\t/gm, ""); + list.push(snippet); + snippet = {}; + } else { + var key = m[2], val = m[3]; + if (key == "regex") { + var guardRe = /\/((?:[^\/\\]|\\.)*)|$/g; + snippet.guard = guardRe.exec(val)[1]; + snippet.trigger = guardRe.exec(val)[1]; + snippet.endTrigger = guardRe.exec(val)[1]; + snippet.endGuard = guardRe.exec(val)[1]; + } else if (key == "snippet") { + snippet.tabTrigger = val.match(/^\S*/)[0]; + if (!snippet.name) + snippet.name = val; + } else { + snippet[key] = val; + } + } + } + return list; + }; + this.getSnippetByName = function(name, editor) { + var snippetMap = this.snippetNameMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = snippets[name]; + return !!snippet; + }, this); + return snippet; + }; + +}).call(SnippetManager.prototype); + + +var TabstopManager = function(editor) { + if (editor.tabstopManager) + return editor.tabstopManager; + editor.tabstopManager = this; + this.$onChange = this.onChange.bind(this); + this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule; + this.$onChangeSession = this.onChangeSession.bind(this); + this.$onAfterExec = this.onAfterExec.bind(this); + this.attach(editor); +}; +(function() { + this.attach = function(editor) { + this.index = 0; + this.ranges = []; + this.tabstops = []; + this.$openTabstops = null; + this.selectedTabstop = null; + + this.editor = editor; + this.editor.on("change", this.$onChange); + this.editor.on("changeSelection", this.$onChangeSelection); + this.editor.on("changeSession", this.$onChangeSession); + this.editor.commands.on("afterExec", this.$onAfterExec); + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.detach = function() { + this.tabstops.forEach(this.removeTabstopMarkers, this); + this.ranges = null; + this.tabstops = null; + this.selectedTabstop = null; + this.editor.removeListener("change", this.$onChange); + this.editor.removeListener("changeSelection", this.$onChangeSelection); + this.editor.removeListener("changeSession", this.$onChangeSession); + this.editor.commands.removeListener("afterExec", this.$onAfterExec); + this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler); + this.editor.tabstopManager = null; + this.editor = null; + }; + + this.onChange = function(delta) { + var changeRange = delta; + var isRemove = delta.action[0] == "r"; + var start = delta.start; + var end = delta.end; + var startRow = start.row; + var endRow = end.row; + var lineDif = endRow - startRow; + var colDiff = end.column - start.column; + + if (isRemove) { + lineDif = -lineDif; + colDiff = -colDiff; + } + if (!this.$inChange && isRemove) { + var ts = this.selectedTabstop; + var changedOutside = ts && !ts.some(function(r) { + return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0; + }); + if (changedOutside) + return this.detach(); + } + var ranges = this.ranges; + for (var i = 0; i < ranges.length; i++) { + var r = ranges[i]; + if (r.end.row < start.row) + continue; + + if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) { + this.removeRange(r); + i--; + continue; + } + + if (r.start.row == startRow && r.start.column > start.column) + r.start.column += colDiff; + if (r.end.row == startRow && r.end.column >= start.column) + r.end.column += colDiff; + if (r.start.row >= startRow) + r.start.row += lineDif; + if (r.end.row >= startRow) + r.end.row += lineDif; + + if (comparePoints(r.start, r.end) > 0) + this.removeRange(r); + } + if (!ranges.length) + this.detach(); + }; + this.updateLinkedFields = function() { + var ts = this.selectedTabstop; + if (!ts || !ts.hasLinkedRanges) + return; + this.$inChange = true; + var session = this.editor.session; + var text = session.getTextRange(ts.firstNonLinked); + for (var i = ts.length; i--;) { + var range = ts[i]; + if (!range.linked) + continue; + var fmt = exports.snippetManager.tmStrFormat(text, range.original); + session.replace(range, fmt); + } + this.$inChange = false; + }; + this.onAfterExec = function(e) { + if (e.command && !e.command.readOnly) + this.updateLinkedFields(); + }; + this.onChangeSelection = function() { + if (!this.editor) + return; + var lead = this.editor.selection.lead; + var anchor = this.editor.selection.anchor; + var isEmpty = this.editor.selection.isEmpty(); + for (var i = this.ranges.length; i--;) { + if (this.ranges[i].linked) + continue; + var containsLead = this.ranges[i].contains(lead.row, lead.column); + var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column); + if (containsLead && containsAnchor) + return; + } + this.detach(); + }; + this.onChangeSession = function() { + this.detach(); + }; + this.tabNext = function(dir) { + var max = this.tabstops.length; + var index = this.index + (dir || 1); + index = Math.min(Math.max(index, 1), max); + if (index == max) + index = 0; + this.selectTabstop(index); + if (index === 0) + this.detach(); + }; + this.selectTabstop = function(index) { + this.$openTabstops = null; + var ts = this.tabstops[this.index]; + if (ts) + this.addTabstopMarkers(ts); + this.index = index; + ts = this.tabstops[this.index]; + if (!ts || !ts.length) + return; + + this.selectedTabstop = ts; + if (!this.editor.inVirtualSelectionMode) { + var sel = this.editor.multiSelect; + sel.toSingleRange(ts.firstNonLinked.clone()); + for (var i = ts.length; i--;) { + if (ts.hasLinkedRanges && ts[i].linked) + continue; + sel.addRange(ts[i].clone(), true); + } + if (sel.ranges[0]) + sel.addRange(sel.ranges[0].clone()); + } else { + this.editor.selection.setRange(ts.firstNonLinked); + } + + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.addTabstops = function(tabstops, start, end) { + if (!this.$openTabstops) + this.$openTabstops = []; + if (!tabstops[0]) { + var p = Range.fromPoints(end, end); + moveRelative(p.start, start); + moveRelative(p.end, start); + tabstops[0] = [p]; + tabstops[0].index = 0; + } + + var i = this.index; + var arg = [i + 1, 0]; + var ranges = this.ranges; + tabstops.forEach(function(ts, index) { + var dest = this.$openTabstops[index] || ts; + + for (var i = ts.length; i--;) { + var p = ts[i]; + var range = Range.fromPoints(p.start, p.end || p.start); + movePoint(range.start, start); + movePoint(range.end, start); + range.original = p; + range.tabstop = dest; + ranges.push(range); + if (dest != ts) + dest.unshift(range); + else + dest[i] = range; + if (p.fmtString) { + range.linked = true; + dest.hasLinkedRanges = true; + } else if (!dest.firstNonLinked) + dest.firstNonLinked = range; + } + if (!dest.firstNonLinked) + dest.hasLinkedRanges = false; + if (dest === ts) { + arg.push(dest); + this.$openTabstops[index] = dest; + } + this.addTabstopMarkers(dest); + }, this); + + if (arg.length > 2) { + if (this.tabstops.length) + arg.push(arg.splice(2, 1)[0]); + this.tabstops.splice.apply(this.tabstops, arg); + } + }; + + this.addTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + if (!range.markerId) + range.markerId = session.addMarker(range, "ace_snippet-marker", "text"); + }); + }; + this.removeTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + session.removeMarker(range.markerId); + range.markerId = null; + }); + }; + this.removeRange = function(range) { + var i = range.tabstop.indexOf(range); + range.tabstop.splice(i, 1); + i = this.ranges.indexOf(range); + this.ranges.splice(i, 1); + this.editor.session.removeMarker(range.markerId); + if (!range.tabstop.length) { + i = this.tabstops.indexOf(range.tabstop); + if (i != -1) + this.tabstops.splice(i, 1); + if (!this.tabstops.length) + this.detach(); + } + }; + + this.keyboardHandler = new HashHandler(); + this.keyboardHandler.bindKeys({ + "Tab": function(ed) { + if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) { + return; + } + + ed.tabstopManager.tabNext(1); + }, + "Shift-Tab": function(ed) { + ed.tabstopManager.tabNext(-1); + }, + "Esc": function(ed) { + ed.tabstopManager.detach(); + }, + "Return": function(ed) { + return false; + } + }); +}).call(TabstopManager.prototype); + + + +var changeTracker = {}; +changeTracker.onChange = Anchor.prototype.onChange; +changeTracker.setPosition = function(row, column) { + this.pos.row = row; + this.pos.column = column; +}; +changeTracker.update = function(pos, delta, $insertRight) { + this.$insertRight = $insertRight; + this.pos = pos; + this.onChange(delta); +}; + +var movePoint = function(point, diff) { + if (point.row == 0) + point.column += diff.column; + point.row += diff.row; +}; + +var moveRelative = function(point, start) { + if (point.row == start.row) + point.column -= start.column; + point.row -= start.row; +}; + + +require("./lib/dom").importCssString("\ +.ace_snippet-marker {\ + -moz-box-sizing: border-box;\ + box-sizing: border-box;\ + background: rgba(194, 193, 208, 0.09);\ + border: 1px dotted rgba(211, 208, 235, 0.62);\ + position: absolute;\ +}"); + +exports.snippetManager = new SnippetManager(); + + +var Editor = require("./editor").Editor; +(function() { + this.insertSnippet = function(content, options) { + return exports.snippetManager.insertSnippet(this, content, options); + }; + this.expandSnippet = function(options) { + return exports.snippetManager.expandWithTab(this, options); + }; +}).call(Editor.prototype); + +}); + +ace.define("ace/ext/emmet",["require","exports","module","ace/keyboard/hash_handler","ace/editor","ace/snippets","ace/range","resources","resources","tabStops","resources","utils","actions","ace/config","ace/config"], function(require, exports, module) { +"use strict"; +var HashHandler = require("ace/keyboard/hash_handler").HashHandler; +var Editor = require("ace/editor").Editor; +var snippetManager = require("ace/snippets").snippetManager; +var Range = require("ace/range").Range; +var emmet, emmetPath; +function AceEmmetEditor() {} + +AceEmmetEditor.prototype = { + setupContext: function(editor) { + this.ace = editor; + this.indentation = editor.session.getTabString(); + if (!emmet) + emmet = window.emmet; + var resources = emmet.resources || emmet.require("resources"); + resources.setVariable("indentation", this.indentation); + this.$syntax = null; + this.$syntax = this.getSyntax(); + }, + getSelectionRange: function() { + var range = this.ace.getSelectionRange(); + var doc = this.ace.session.doc; + return { + start: doc.positionToIndex(range.start), + end: doc.positionToIndex(range.end) + }; + }, + createSelection: function(start, end) { + var doc = this.ace.session.doc; + this.ace.selection.setRange({ + start: doc.indexToPosition(start), + end: doc.indexToPosition(end) + }); + }, + getCurrentLineRange: function() { + var ace = this.ace; + var row = ace.getCursorPosition().row; + var lineLength = ace.session.getLine(row).length; + var index = ace.session.doc.positionToIndex({row: row, column: 0}); + return { + start: index, + end: index + lineLength + }; + }, + getCaretPos: function(){ + var pos = this.ace.getCursorPosition(); + return this.ace.session.doc.positionToIndex(pos); + }, + setCaretPos: function(index){ + var pos = this.ace.session.doc.indexToPosition(index); + this.ace.selection.moveToPosition(pos); + }, + getCurrentLine: function() { + var row = this.ace.getCursorPosition().row; + return this.ace.session.getLine(row); + }, + replaceContent: function(value, start, end, noIndent) { + if (end == null) + end = start == null ? this.getContent().length : start; + if (start == null) + start = 0; + + var editor = this.ace; + var doc = editor.session.doc; + var range = Range.fromPoints(doc.indexToPosition(start), doc.indexToPosition(end)); + editor.session.remove(range); + + range.end = range.start; + + value = this.$updateTabstops(value); + snippetManager.insertSnippet(editor, value); + }, + getContent: function(){ + return this.ace.getValue(); + }, + getSyntax: function() { + if (this.$syntax) + return this.$syntax; + var syntax = this.ace.session.$modeId.split("/").pop(); + if (syntax == "html" || syntax == "php") { + var cursor = this.ace.getCursorPosition(); + var state = this.ace.session.getState(cursor.row); + if (typeof state != "string") + state = state[0]; + if (state) { + state = state.split("-"); + if (state.length > 1) + syntax = state[0]; + else if (syntax == "php") + syntax = "html"; + } + } + return syntax; + }, + getProfileName: function() { + var resources = emmet.resources || emmet.require("resources"); + switch (this.getSyntax()) { + case "css": return "css"; + case "xml": + case "xsl": + return "xml"; + case "html": + var profile = resources.getVariable("profile"); + if (!profile) + profile = this.ace.session.getLines(0,2).join("").search(/]+XHTML/i) != -1 ? "xhtml": "html"; + return profile; + default: + var mode = this.ace.session.$mode; + return mode.emmetConfig && mode.emmetConfig.profile || "xhtml"; + } + }, + prompt: function(title) { + return prompt(title); + }, + getSelection: function() { + return this.ace.session.getTextRange(); + }, + getFilePath: function() { + return ""; + }, + $updateTabstops: function(value) { + var base = 1000; + var zeroBase = 0; + var lastZero = null; + var ts = emmet.tabStops || emmet.require('tabStops'); + var resources = emmet.resources || emmet.require("resources"); + var settings = resources.getVocabulary("user"); + var tabstopOptions = { + tabstop: function(data) { + var group = parseInt(data.group, 10); + var isZero = group === 0; + if (isZero) + group = ++zeroBase; + else + group += base; + + var placeholder = data.placeholder; + if (placeholder) { + placeholder = ts.processText(placeholder, tabstopOptions); + } + + var result = '${' + group + (placeholder ? ':' + placeholder : '') + '}'; + + if (isZero) { + lastZero = [data.start, result]; + } + + return result; + }, + escape: function(ch) { + if (ch == '$') return '\\$'; + if (ch == '\\') return '\\\\'; + return ch; + } + }; + + value = ts.processText(value, tabstopOptions); + + if (settings.variables['insert_final_tabstop'] && !/\$\{0\}$/.test(value)) { + value += '${0}'; + } else if (lastZero) { + var common = emmet.utils ? emmet.utils.common : emmet.require('utils'); + value = common.replaceSubstring(value, '${0}', lastZero[0], lastZero[1]); + } + + return value; + } +}; + + +var keymap = { + expand_abbreviation: {"mac": "ctrl+alt+e", "win": "alt+e"}, + match_pair_outward: {"mac": "ctrl+d", "win": "ctrl+,"}, + match_pair_inward: {"mac": "ctrl+j", "win": "ctrl+shift+0"}, + matching_pair: {"mac": "ctrl+alt+j", "win": "alt+j"}, + next_edit_point: "alt+right", + prev_edit_point: "alt+left", + toggle_comment: {"mac": "command+/", "win": "ctrl+/"}, + split_join_tag: {"mac": "shift+command+'", "win": "shift+ctrl+`"}, + remove_tag: {"mac": "command+'", "win": "shift+ctrl+;"}, + evaluate_math_expression: {"mac": "shift+command+y", "win": "shift+ctrl+y"}, + increment_number_by_1: "ctrl+up", + decrement_number_by_1: "ctrl+down", + increment_number_by_01: "alt+up", + decrement_number_by_01: "alt+down", + increment_number_by_10: {"mac": "alt+command+up", "win": "shift+alt+up"}, + decrement_number_by_10: {"mac": "alt+command+down", "win": "shift+alt+down"}, + select_next_item: {"mac": "shift+command+.", "win": "shift+ctrl+."}, + select_previous_item: {"mac": "shift+command+,", "win": "shift+ctrl+,"}, + reflect_css_value: {"mac": "shift+command+r", "win": "shift+ctrl+r"}, + + encode_decode_data_url: {"mac": "shift+ctrl+d", "win": "ctrl+'"}, + expand_abbreviation_with_tab: "Tab", + wrap_with_abbreviation: {"mac": "shift+ctrl+a", "win": "shift+ctrl+a"} +}; + +var editorProxy = new AceEmmetEditor(); +exports.commands = new HashHandler(); +exports.runEmmetCommand = function runEmmetCommand(editor) { + try { + editorProxy.setupContext(editor); + var actions = emmet.actions || emmet.require("actions"); + + if (this.action == "expand_abbreviation_with_tab") { + if (!editor.selection.isEmpty()) + return false; + var pos = editor.selection.lead; + var token = editor.session.getTokenAt(pos.row, pos.column); + if (token && /\btag\b/.test(token.type)) + return false; + } + + if (this.action == "wrap_with_abbreviation") { + return setTimeout(function() { + actions.run("wrap_with_abbreviation", editorProxy); + }, 0); + } + + var result = actions.run(this.action, editorProxy); + } catch(e) { + if (!emmet) { + load(runEmmetCommand.bind(this, editor)); + return true; + } + editor._signal("changeStatus", typeof e == "string" ? e : e.message); + console.log(e); + result = false; + } + return result; +}; + +for (var command in keymap) { + exports.commands.addCommand({ + name: "emmet:" + command, + action: command, + bindKey: keymap[command], + exec: exports.runEmmetCommand, + multiSelectAction: "forEach" + }); +} + +exports.updateCommands = function(editor, enabled) { + if (enabled) { + editor.keyBinding.addKeyboardHandler(exports.commands); + } else { + editor.keyBinding.removeKeyboardHandler(exports.commands); + } +}; + +exports.isSupportedMode = function(mode) { + if (!mode) return false; + if (mode.emmetConfig) return true; + var id = mode.$id || mode; + return /css|less|scss|sass|stylus|html|php|twig|ejs|handlebars/.test(id); +}; + +exports.isAvailable = function(editor, command) { + if (/(evaluate_math_expression|expand_abbreviation)$/.test(command)) + return true; + var mode = editor.session.$mode; + var isSupported = exports.isSupportedMode(mode); + if (isSupported && mode.$modes) { + try { + editorProxy.setupContext(editor); + if (/js|php/.test(editorProxy.getSyntax())) + isSupported = false; + } catch(e) {} + } + return isSupported; +} + +var onChangeMode = function(e, target) { + var editor = target; + if (!editor) + return; + var enabled = exports.isSupportedMode(editor.session.$mode); + if (e.enableEmmet === false) + enabled = false; + if (enabled) + load(); + exports.updateCommands(editor, enabled); +}; + +var load = function(cb) { + if (typeof emmetPath == "string") { + require("ace/config").loadModule(emmetPath, function() { + emmetPath = null; + cb && cb(); + }); + } +}; + +exports.AceEmmetEditor = AceEmmetEditor; +require("ace/config").defineOptions(Editor.prototype, "editor", { + enableEmmet: { + set: function(val) { + this[val ? "on" : "removeListener"]("changeMode", onChangeMode); + onChangeMode({enableEmmet: !!val}, this); + }, + value: true + } +}); + +exports.setCore = function(e) { + if (typeof e == "string") + emmetPath = e; + else + emmet = e; +}; +}); + (function() { + ace.require(["ace/ext/emmet"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-error_marker.js b/htdocs/includes/ace/ext-error_marker.js new file mode 100644 index 00000000000..d4c9eb9131b --- /dev/null +++ b/htdocs/includes/ace/ext-error_marker.js @@ -0,0 +1,6 @@ + +; + (function() { + ace.require(["ace/ext/error_marker"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-keybinding_menu.js b/htdocs/includes/ace/ext-keybinding_menu.js new file mode 100644 index 00000000000..ede7d8dbe4e --- /dev/null +++ b/htdocs/includes/ace/ext-keybinding_menu.js @@ -0,0 +1,170 @@ +ace.define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +'use strict'; +var dom = require("../../lib/dom"); +var cssText = "#ace_settingsmenu, #kbshortcutmenu {\ +background-color: #F7F7F7;\ +color: black;\ +box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\ +padding: 1em 0.5em 2em 1em;\ +overflow: auto;\ +position: absolute;\ +margin: 0;\ +bottom: 0;\ +right: 0;\ +top: 0;\ +z-index: 9991;\ +cursor: default;\ +}\ +.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\ +box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\ +background-color: rgba(255, 255, 255, 0.6);\ +color: black;\ +}\ +.ace_optionsMenuEntry:hover {\ +background-color: rgba(100, 100, 100, 0.1);\ +-webkit-transition: all 0.5s;\ +transition: all 0.3s\ +}\ +.ace_closeButton {\ +background: rgba(245, 146, 146, 0.5);\ +border: 1px solid #F48A8A;\ +border-radius: 50%;\ +padding: 7px;\ +position: absolute;\ +right: -8px;\ +top: -8px;\ +z-index: 1000;\ +}\ +.ace_closeButton{\ +background: rgba(245, 146, 146, 0.9);\ +}\ +.ace_optionsMenuKey {\ +color: darkslateblue;\ +font-weight: bold;\ +}\ +.ace_optionsMenuCommand {\ +color: darkcyan;\ +font-weight: normal;\ +}"; +dom.importCssString(cssText); +module.exports.overlayPage = function overlayPage(editor, contentElement, top, right, bottom, left) { + top = top ? 'top: ' + top + ';' : ''; + bottom = bottom ? 'bottom: ' + bottom + ';' : ''; + right = right ? 'right: ' + right + ';' : ''; + left = left ? 'left: ' + left + ';' : ''; + + var closer = document.createElement('div'); + var contentContainer = document.createElement('div'); + + function documentEscListener(e) { + if (e.keyCode === 27) { + closer.click(); + } + } + + closer.style.cssText = 'margin: 0; padding: 0; ' + + 'position: fixed; top:0; bottom:0; left:0; right:0;' + + 'z-index: 9990; ' + + 'background-color: rgba(0, 0, 0, 0.3);'; + closer.addEventListener('click', function() { + document.removeEventListener('keydown', documentEscListener); + closer.parentNode.removeChild(closer); + editor.focus(); + closer = null; + }); + document.addEventListener('keydown', documentEscListener); + + contentContainer.style.cssText = top + right + bottom + left; + contentContainer.addEventListener('click', function(e) { + e.stopPropagation(); + }); + + var wrapper = dom.createElement("div"); + wrapper.style.position = "relative"; + + var closeButton = dom.createElement("div"); + closeButton.className = "ace_closeButton"; + closeButton.addEventListener('click', function() { + closer.click(); + }); + + wrapper.appendChild(closeButton); + contentContainer.appendChild(wrapper); + + contentContainer.appendChild(contentElement); + closer.appendChild(contentContainer); + document.body.appendChild(closer); + editor.blur(); +}; + +}); + +ace.define("ace/ext/menu_tools/get_editor_keyboard_shortcuts",["require","exports","module","ace/lib/keys"], function(require, exports, module) { +"use strict"; +var keys = require("../../lib/keys"); +module.exports.getEditorKeybordShortcuts = function(editor) { + var KEY_MODS = keys.KEY_MODS; + var keybindings = []; + var commandMap = {}; + editor.keyBinding.$handlers.forEach(function(handler) { + var ckb = handler.commandKeyBinding; + for (var i in ckb) { + var key = i.replace(/(^|-)\w/g, function(x) { return x.toUpperCase(); }); + var commands = ckb[i]; + if (!Array.isArray(commands)) + commands = [commands]; + commands.forEach(function(command) { + if (typeof command != "string") + command = command.name + if (commandMap[command]) { + commandMap[command].key += "|" + key; + } else { + commandMap[command] = {key: key, command: command}; + keybindings.push(commandMap[command]); + } + }); + } + }); + return keybindings; +}; + +}); + +ace.define("ace/ext/keybinding_menu",["require","exports","module","ace/editor","ace/ext/menu_tools/overlay_page","ace/ext/menu_tools/get_editor_keyboard_shortcuts"], function(require, exports, module) { + "use strict"; + var Editor = require("ace/editor").Editor; + function showKeyboardShortcuts (editor) { + if(!document.getElementById('kbshortcutmenu')) { + var overlayPage = require('./menu_tools/overlay_page').overlayPage; + var getEditorKeybordShortcuts = require('./menu_tools/get_editor_keyboard_shortcuts').getEditorKeybordShortcuts; + var kb = getEditorKeybordShortcuts(editor); + var el = document.createElement('div'); + var commands = kb.reduce(function(previous, current) { + return previous + '
    ' + + current.command + ' : ' + + '' + current.key + '
    '; + }, ''); + + el.id = 'kbshortcutmenu'; + el.innerHTML = '

    Keyboard Shortcuts

    ' + commands + '
    '; + overlayPage(editor, el, '0', '0', '0', null); + } + } + module.exports.init = function(editor) { + Editor.prototype.showKeyboardShortcuts = function() { + showKeyboardShortcuts(this); + }; + editor.commands.addCommands([{ + name: "showKeyboardShortcuts", + bindKey: {win: "Ctrl-Alt-h", mac: "Command-Alt-h"}, + exec: function(editor, line) { + editor.showKeyboardShortcuts(); + } + }]); + }; + +}); + (function() { + ace.require(["ace/ext/keybinding_menu"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-language_tools.js b/htdocs/includes/ace/ext-language_tools.js new file mode 100644 index 00000000000..133669510d9 --- /dev/null +++ b/htdocs/includes/ace/ext-language_tools.js @@ -0,0 +1,1956 @@ +ace.define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"], function(require, exports, module) { +"use strict"; +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var lang = require("./lib/lang"); +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; +var HashHandler = require("./keyboard/hash_handler").HashHandler; +var Tokenizer = require("./tokenizer").Tokenizer; +var comparePoints = Range.comparePoints; + +var SnippetManager = function() { + this.snippetMap = {}; + this.snippetNameMap = {}; +}; + +(function() { + oop.implement(this, EventEmitter); + + this.getTokenizer = function() { + function TabstopToken(str, _, stack) { + str = str.substr(1); + if (/^\d+$/.test(str) && !stack.inFormatString) + return [{tabstopId: parseInt(str, 10)}]; + return [{text: str}]; + } + function escape(ch) { + return "(?:[^\\\\" + ch + "]|\\\\.)"; + } + SnippetManager.$tokenizer = new Tokenizer({ + start: [ + {regex: /:/, onMatch: function(val, state, stack) { + if (stack.length && stack[0].expectIf) { + stack[0].expectIf = false; + stack[0].elseBranch = stack[0]; + return [stack[0]]; + } + return ":"; + }}, + {regex: /\\./, onMatch: function(val, state, stack) { + var ch = val[1]; + if (ch == "}" && stack.length) { + val = ch; + }else if ("`$\\".indexOf(ch) != -1) { + val = ch; + } else if (stack.inFormatString) { + if (ch == "n") + val = "\n"; + else if (ch == "t") + val = "\n"; + else if ("ulULE".indexOf(ch) != -1) { + val = {changeCase: ch, local: ch > "a"}; + } + } + + return [val]; + }}, + {regex: /}/, onMatch: function(val, state, stack) { + return [stack.length ? stack.shift() : val]; + }}, + {regex: /\$(?:\d+|\w+)/, onMatch: TabstopToken}, + {regex: /\$\{[\dA-Z_a-z]+/, onMatch: function(str, state, stack) { + var t = TabstopToken(str.substr(1), state, stack); + stack.unshift(t[0]); + return t; + }, next: "snippetVar"}, + {regex: /\n/, token: "newline", merge: false} + ], + snippetVar: [ + {regex: "\\|" + escape("\\|") + "*\\|", onMatch: function(val, state, stack) { + stack[0].choices = val.slice(1, -1).split(","); + }, next: "start"}, + {regex: "/(" + escape("/") + "+)/(?:(" + escape("/") + "*)/)(\\w*):?", + onMatch: function(val, state, stack) { + var ts = stack[0]; + ts.fmtString = val; + + val = this.splitRegex.exec(val); + ts.guard = val[1]; + ts.fmt = val[2]; + ts.flag = val[3]; + return ""; + }, next: "start"}, + {regex: "`" + escape("`") + "*`", onMatch: function(val, state, stack) { + stack[0].code = val.splice(1, -1); + return ""; + }, next: "start"}, + {regex: "\\?", onMatch: function(val, state, stack) { + if (stack[0]) + stack[0].expectIf = true; + }, next: "start"}, + {regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "start"} + ], + formatString: [ + {regex: "/(" + escape("/") + "+)/", token: "regex"}, + {regex: "", onMatch: function(val, state, stack) { + stack.inFormatString = true; + }, next: "start"} + ] + }); + SnippetManager.prototype.getTokenizer = function() { + return SnippetManager.$tokenizer; + }; + return SnippetManager.$tokenizer; + }; + + this.tokenizeTmSnippet = function(str, startState) { + return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) { + return x.value || x; + }); + }; + + this.$getDefaultValue = function(editor, name) { + if (/^[A-Z]\d+$/.test(name)) { + var i = name.substr(1); + return (this.variables[name[0] + "__"] || {})[i]; + } + if (/^\d+$/.test(name)) { + return (this.variables.__ || {})[name]; + } + name = name.replace(/^TM_/, ""); + + if (!editor) + return; + var s = editor.session; + switch(name) { + case "CURRENT_WORD": + var r = s.getWordRange(); + case "SELECTION": + case "SELECTED_TEXT": + return s.getTextRange(r); + case "CURRENT_LINE": + return s.getLine(editor.getCursorPosition().row); + case "PREV_LINE": // not possible in textmate + return s.getLine(editor.getCursorPosition().row - 1); + case "LINE_INDEX": + return editor.getCursorPosition().column; + case "LINE_NUMBER": + return editor.getCursorPosition().row + 1; + case "SOFT_TABS": + return s.getUseSoftTabs() ? "YES" : "NO"; + case "TAB_SIZE": + return s.getTabSize(); + case "FILENAME": + case "FILEPATH": + return ""; + case "FULLNAME": + return "Ace"; + } + }; + this.variables = {}; + this.getVariableValue = function(editor, varName) { + if (this.variables.hasOwnProperty(varName)) + return this.variables[varName](editor, varName) || ""; + return this.$getDefaultValue(editor, varName) || ""; + }; + this.tmStrFormat = function(str, ch, editor) { + var flag = ch.flag || ""; + var re = ch.guard; + re = new RegExp(re, flag.replace(/[^gi]/, "")); + var fmtTokens = this.tokenizeTmSnippet(ch.fmt, "formatString"); + var _self = this; + var formatted = str.replace(re, function() { + _self.variables.__ = arguments; + var fmtParts = _self.resolveVariables(fmtTokens, editor); + var gChangeCase = "E"; + for (var i = 0; i < fmtParts.length; i++) { + var ch = fmtParts[i]; + if (typeof ch == "object") { + fmtParts[i] = ""; + if (ch.changeCase && ch.local) { + var next = fmtParts[i + 1]; + if (next && typeof next == "string") { + if (ch.changeCase == "u") + fmtParts[i] = next[0].toUpperCase(); + else + fmtParts[i] = next[0].toLowerCase(); + fmtParts[i + 1] = next.substr(1); + } + } else if (ch.changeCase) { + gChangeCase = ch.changeCase; + } + } else if (gChangeCase == "U") { + fmtParts[i] = ch.toUpperCase(); + } else if (gChangeCase == "L") { + fmtParts[i] = ch.toLowerCase(); + } + } + return fmtParts.join(""); + }); + this.variables.__ = null; + return formatted; + }; + + this.resolveVariables = function(snippet, editor) { + var result = []; + for (var i = 0; i < snippet.length; i++) { + var ch = snippet[i]; + if (typeof ch == "string") { + result.push(ch); + } else if (typeof ch != "object") { + continue; + } else if (ch.skip) { + gotoNext(ch); + } else if (ch.processed < i) { + continue; + } else if (ch.text) { + var value = this.getVariableValue(editor, ch.text); + if (value && ch.fmtString) + value = this.tmStrFormat(value, ch); + ch.processed = i; + if (ch.expectIf == null) { + if (value) { + result.push(value); + gotoNext(ch); + } + } else { + if (value) { + ch.skip = ch.elseBranch; + } else + gotoNext(ch); + } + } else if (ch.tabstopId != null) { + result.push(ch); + } else if (ch.changeCase != null) { + result.push(ch); + } + } + function gotoNext(ch) { + var i1 = snippet.indexOf(ch, i + 1); + if (i1 != -1) + i = i1; + } + return result; + }; + + this.insertSnippetForSelection = function(editor, snippetText) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var tabString = editor.session.getTabString(); + var indentString = line.match(/^\s*/)[0]; + + if (cursor.column < indentString.length) + indentString = indentString.slice(0, cursor.column); + + snippetText = snippetText.replace(/\r/g, ""); + var tokens = this.tokenizeTmSnippet(snippetText); + tokens = this.resolveVariables(tokens, editor); + tokens = tokens.map(function(x) { + if (x == "\n") + return x + indentString; + if (typeof x == "string") + return x.replace(/\t/g, tabString); + return x; + }); + var tabstops = []; + tokens.forEach(function(p, i) { + if (typeof p != "object") + return; + var id = p.tabstopId; + var ts = tabstops[id]; + if (!ts) { + ts = tabstops[id] = []; + ts.index = id; + ts.value = ""; + } + if (ts.indexOf(p) !== -1) + return; + ts.push(p); + var i1 = tokens.indexOf(p, i + 1); + if (i1 === -1) + return; + + var value = tokens.slice(i + 1, i1); + var isNested = value.some(function(t) {return typeof t === "object"}); + if (isNested && !ts.value) { + ts.value = value; + } else if (value.length && (!ts.value || typeof ts.value !== "string")) { + ts.value = value.join(""); + } + }); + tabstops.forEach(function(ts) {ts.length = 0}); + var expanding = {}; + function copyValue(val) { + var copy = []; + for (var i = 0; i < val.length; i++) { + var p = val[i]; + if (typeof p == "object") { + if (expanding[p.tabstopId]) + continue; + var j = val.lastIndexOf(p, i - 1); + p = copy[j] || {tabstopId: p.tabstopId}; + } + copy[i] = p; + } + return copy; + } + for (var i = 0; i < tokens.length; i++) { + var p = tokens[i]; + if (typeof p != "object") + continue; + var id = p.tabstopId; + var i1 = tokens.indexOf(p, i + 1); + if (expanding[id]) { + if (expanding[id] === p) + expanding[id] = null; + continue; + } + + var ts = tabstops[id]; + var arg = typeof ts.value == "string" ? [ts.value] : copyValue(ts.value); + arg.unshift(i + 1, Math.max(0, i1 - i)); + arg.push(p); + expanding[id] = p; + tokens.splice.apply(tokens, arg); + + if (ts.indexOf(p) === -1) + ts.push(p); + } + var row = 0, column = 0; + var text = ""; + tokens.forEach(function(t) { + if (typeof t === "string") { + var lines = t.split("\n"); + if (lines.length > 1){ + column = lines[lines.length - 1].length; + row += lines.length - 1; + } else + column += t.length; + text += t; + } else { + if (!t.start) + t.start = {row: row, column: column}; + else + t.end = {row: row, column: column}; + } + }); + var range = editor.getSelectionRange(); + var end = editor.session.replace(range, text); + + var tabstopManager = new TabstopManager(editor); + var selectionId = editor.inVirtualSelectionMode && editor.selection.index; + tabstopManager.addTabstops(tabstops, range.start, end, selectionId); + }; + + this.insertSnippet = function(editor, snippetText) { + var self = this; + if (editor.inVirtualSelectionMode) + return self.insertSnippetForSelection(editor, snippetText); + + editor.forEachSelection(function() { + self.insertSnippetForSelection(editor, snippetText); + }, null, {keepOrder: true}); + + if (editor.tabstopManager) + editor.tabstopManager.tabNext(); + }; + + this.$getScope = function(editor) { + var scope = editor.session.$mode.$id || ""; + scope = scope.split("/").pop(); + if (scope === "html" || scope === "php") { + if (scope === "php" && !editor.session.$mode.inlinePhp) + scope = "html"; + var c = editor.getCursorPosition(); + var state = editor.session.getState(c.row); + if (typeof state === "object") { + state = state[0]; + } + if (state.substring) { + if (state.substring(0, 3) == "js-") + scope = "javascript"; + else if (state.substring(0, 4) == "css-") + scope = "css"; + else if (state.substring(0, 4) == "php-") + scope = "php"; + } + } + + return scope; + }; + + this.getActiveScopes = function(editor) { + var scope = this.$getScope(editor); + var scopes = [scope]; + var snippetMap = this.snippetMap; + if (snippetMap[scope] && snippetMap[scope].includeScopes) { + scopes.push.apply(scopes, snippetMap[scope].includeScopes); + } + scopes.push("_"); + return scopes; + }; + + this.expandWithTab = function(editor, options) { + var self = this; + var result = editor.forEachSelection(function() { + return self.expandSnippetForSelection(editor, options); + }, null, {keepOrder: true}); + if (result && editor.tabstopManager) + editor.tabstopManager.tabNext(); + return result; + }; + + this.expandSnippetForSelection = function(editor, options) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var before = line.substring(0, cursor.column); + var after = line.substr(cursor.column); + + var snippetMap = this.snippetMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = this.findMatchingSnippet(snippets, before, after); + return !!snippet; + }, this); + if (!snippet) + return false; + if (options && options.dryRun) + return true; + editor.session.doc.removeInLine(cursor.row, + cursor.column - snippet.replaceBefore.length, + cursor.column + snippet.replaceAfter.length + ); + + this.variables.M__ = snippet.matchBefore; + this.variables.T__ = snippet.matchAfter; + this.insertSnippetForSelection(editor, snippet.content); + + this.variables.M__ = this.variables.T__ = null; + return true; + }; + + this.findMatchingSnippet = function(snippetList, before, after) { + for (var i = snippetList.length; i--;) { + var s = snippetList[i]; + if (s.startRe && !s.startRe.test(before)) + continue; + if (s.endRe && !s.endRe.test(after)) + continue; + if (!s.startRe && !s.endRe) + continue; + + s.matchBefore = s.startRe ? s.startRe.exec(before) : [""]; + s.matchAfter = s.endRe ? s.endRe.exec(after) : [""]; + s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : ""; + s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : ""; + return s; + } + }; + + this.snippetMap = {}; + this.snippetNameMap = {}; + this.register = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + var self = this; + + if (!snippets) + snippets = []; + + function wrapRegexp(src) { + if (src && !/^\^?\(.*\)\$?$|^\\b$/.test(src)) + src = "(?:" + src + ")"; + + return src || ""; + } + function guardedRegexp(re, guard, opening) { + re = wrapRegexp(re); + guard = wrapRegexp(guard); + if (opening) { + re = guard + re; + if (re && re[re.length - 1] != "$") + re = re + "$"; + } else { + re = re + guard; + if (re && re[0] != "^") + re = "^" + re; + } + return new RegExp(re); + } + + function addSnippet(s) { + if (!s.scope) + s.scope = scope || "_"; + scope = s.scope; + if (!snippetMap[scope]) { + snippetMap[scope] = []; + snippetNameMap[scope] = {}; + } + + var map = snippetNameMap[scope]; + if (s.name) { + var old = map[s.name]; + if (old) + self.unregister(old); + map[s.name] = s; + } + snippetMap[scope].push(s); + + if (s.tabTrigger && !s.trigger) { + if (!s.guard && /^\w/.test(s.tabTrigger)) + s.guard = "\\b"; + s.trigger = lang.escapeRegExp(s.tabTrigger); + } + + if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard) + return; + + s.startRe = guardedRegexp(s.trigger, s.guard, true); + s.triggerRe = new RegExp(s.trigger, "", true); + + s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true); + s.endTriggerRe = new RegExp(s.endTrigger, "", true); + } + + if (snippets && snippets.content) + addSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(addSnippet); + + this._signal("registerSnippets", {scope: scope}); + }; + this.unregister = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + + function removeSnippet(s) { + var nameMap = snippetNameMap[s.scope||scope]; + if (nameMap && nameMap[s.name]) { + delete nameMap[s.name]; + var map = snippetMap[s.scope||scope]; + var i = map && map.indexOf(s); + if (i >= 0) + map.splice(i, 1); + } + } + if (snippets.content) + removeSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(removeSnippet); + }; + this.parseSnippetFile = function(str) { + str = str.replace(/\r/g, ""); + var list = [], snippet = {}; + var re = /^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm; + var m; + while (m = re.exec(str)) { + if (m[1]) { + try { + snippet = JSON.parse(m[1]); + list.push(snippet); + } catch (e) {} + } if (m[4]) { + snippet.content = m[4].replace(/^\t/gm, ""); + list.push(snippet); + snippet = {}; + } else { + var key = m[2], val = m[3]; + if (key == "regex") { + var guardRe = /\/((?:[^\/\\]|\\.)*)|$/g; + snippet.guard = guardRe.exec(val)[1]; + snippet.trigger = guardRe.exec(val)[1]; + snippet.endTrigger = guardRe.exec(val)[1]; + snippet.endGuard = guardRe.exec(val)[1]; + } else if (key == "snippet") { + snippet.tabTrigger = val.match(/^\S*/)[0]; + if (!snippet.name) + snippet.name = val; + } else { + snippet[key] = val; + } + } + } + return list; + }; + this.getSnippetByName = function(name, editor) { + var snippetMap = this.snippetNameMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = snippets[name]; + return !!snippet; + }, this); + return snippet; + }; + +}).call(SnippetManager.prototype); + + +var TabstopManager = function(editor) { + if (editor.tabstopManager) + return editor.tabstopManager; + editor.tabstopManager = this; + this.$onChange = this.onChange.bind(this); + this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule; + this.$onChangeSession = this.onChangeSession.bind(this); + this.$onAfterExec = this.onAfterExec.bind(this); + this.attach(editor); +}; +(function() { + this.attach = function(editor) { + this.index = 0; + this.ranges = []; + this.tabstops = []; + this.$openTabstops = null; + this.selectedTabstop = null; + + this.editor = editor; + this.editor.on("change", this.$onChange); + this.editor.on("changeSelection", this.$onChangeSelection); + this.editor.on("changeSession", this.$onChangeSession); + this.editor.commands.on("afterExec", this.$onAfterExec); + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.detach = function() { + this.tabstops.forEach(this.removeTabstopMarkers, this); + this.ranges = null; + this.tabstops = null; + this.selectedTabstop = null; + this.editor.removeListener("change", this.$onChange); + this.editor.removeListener("changeSelection", this.$onChangeSelection); + this.editor.removeListener("changeSession", this.$onChangeSession); + this.editor.commands.removeListener("afterExec", this.$onAfterExec); + this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler); + this.editor.tabstopManager = null; + this.editor = null; + }; + + this.onChange = function(delta) { + var changeRange = delta; + var isRemove = delta.action[0] == "r"; + var start = delta.start; + var end = delta.end; + var startRow = start.row; + var endRow = end.row; + var lineDif = endRow - startRow; + var colDiff = end.column - start.column; + + if (isRemove) { + lineDif = -lineDif; + colDiff = -colDiff; + } + if (!this.$inChange && isRemove) { + var ts = this.selectedTabstop; + var changedOutside = ts && !ts.some(function(r) { + return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0; + }); + if (changedOutside) + return this.detach(); + } + var ranges = this.ranges; + for (var i = 0; i < ranges.length; i++) { + var r = ranges[i]; + if (r.end.row < start.row) + continue; + + if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) { + this.removeRange(r); + i--; + continue; + } + + if (r.start.row == startRow && r.start.column > start.column) + r.start.column += colDiff; + if (r.end.row == startRow && r.end.column >= start.column) + r.end.column += colDiff; + if (r.start.row >= startRow) + r.start.row += lineDif; + if (r.end.row >= startRow) + r.end.row += lineDif; + + if (comparePoints(r.start, r.end) > 0) + this.removeRange(r); + } + if (!ranges.length) + this.detach(); + }; + this.updateLinkedFields = function() { + var ts = this.selectedTabstop; + if (!ts || !ts.hasLinkedRanges) + return; + this.$inChange = true; + var session = this.editor.session; + var text = session.getTextRange(ts.firstNonLinked); + for (var i = ts.length; i--;) { + var range = ts[i]; + if (!range.linked) + continue; + var fmt = exports.snippetManager.tmStrFormat(text, range.original); + session.replace(range, fmt); + } + this.$inChange = false; + }; + this.onAfterExec = function(e) { + if (e.command && !e.command.readOnly) + this.updateLinkedFields(); + }; + this.onChangeSelection = function() { + if (!this.editor) + return; + var lead = this.editor.selection.lead; + var anchor = this.editor.selection.anchor; + var isEmpty = this.editor.selection.isEmpty(); + for (var i = this.ranges.length; i--;) { + if (this.ranges[i].linked) + continue; + var containsLead = this.ranges[i].contains(lead.row, lead.column); + var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column); + if (containsLead && containsAnchor) + return; + } + this.detach(); + }; + this.onChangeSession = function() { + this.detach(); + }; + this.tabNext = function(dir) { + var max = this.tabstops.length; + var index = this.index + (dir || 1); + index = Math.min(Math.max(index, 1), max); + if (index == max) + index = 0; + this.selectTabstop(index); + if (index === 0) + this.detach(); + }; + this.selectTabstop = function(index) { + this.$openTabstops = null; + var ts = this.tabstops[this.index]; + if (ts) + this.addTabstopMarkers(ts); + this.index = index; + ts = this.tabstops[this.index]; + if (!ts || !ts.length) + return; + + this.selectedTabstop = ts; + if (!this.editor.inVirtualSelectionMode) { + var sel = this.editor.multiSelect; + sel.toSingleRange(ts.firstNonLinked.clone()); + for (var i = ts.length; i--;) { + if (ts.hasLinkedRanges && ts[i].linked) + continue; + sel.addRange(ts[i].clone(), true); + } + if (sel.ranges[0]) + sel.addRange(sel.ranges[0].clone()); + } else { + this.editor.selection.setRange(ts.firstNonLinked); + } + + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.addTabstops = function(tabstops, start, end) { + if (!this.$openTabstops) + this.$openTabstops = []; + if (!tabstops[0]) { + var p = Range.fromPoints(end, end); + moveRelative(p.start, start); + moveRelative(p.end, start); + tabstops[0] = [p]; + tabstops[0].index = 0; + } + + var i = this.index; + var arg = [i + 1, 0]; + var ranges = this.ranges; + tabstops.forEach(function(ts, index) { + var dest = this.$openTabstops[index] || ts; + + for (var i = ts.length; i--;) { + var p = ts[i]; + var range = Range.fromPoints(p.start, p.end || p.start); + movePoint(range.start, start); + movePoint(range.end, start); + range.original = p; + range.tabstop = dest; + ranges.push(range); + if (dest != ts) + dest.unshift(range); + else + dest[i] = range; + if (p.fmtString) { + range.linked = true; + dest.hasLinkedRanges = true; + } else if (!dest.firstNonLinked) + dest.firstNonLinked = range; + } + if (!dest.firstNonLinked) + dest.hasLinkedRanges = false; + if (dest === ts) { + arg.push(dest); + this.$openTabstops[index] = dest; + } + this.addTabstopMarkers(dest); + }, this); + + if (arg.length > 2) { + if (this.tabstops.length) + arg.push(arg.splice(2, 1)[0]); + this.tabstops.splice.apply(this.tabstops, arg); + } + }; + + this.addTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + if (!range.markerId) + range.markerId = session.addMarker(range, "ace_snippet-marker", "text"); + }); + }; + this.removeTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + session.removeMarker(range.markerId); + range.markerId = null; + }); + }; + this.removeRange = function(range) { + var i = range.tabstop.indexOf(range); + range.tabstop.splice(i, 1); + i = this.ranges.indexOf(range); + this.ranges.splice(i, 1); + this.editor.session.removeMarker(range.markerId); + if (!range.tabstop.length) { + i = this.tabstops.indexOf(range.tabstop); + if (i != -1) + this.tabstops.splice(i, 1); + if (!this.tabstops.length) + this.detach(); + } + }; + + this.keyboardHandler = new HashHandler(); + this.keyboardHandler.bindKeys({ + "Tab": function(ed) { + if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) { + return; + } + + ed.tabstopManager.tabNext(1); + }, + "Shift-Tab": function(ed) { + ed.tabstopManager.tabNext(-1); + }, + "Esc": function(ed) { + ed.tabstopManager.detach(); + }, + "Return": function(ed) { + return false; + } + }); +}).call(TabstopManager.prototype); + + + +var changeTracker = {}; +changeTracker.onChange = Anchor.prototype.onChange; +changeTracker.setPosition = function(row, column) { + this.pos.row = row; + this.pos.column = column; +}; +changeTracker.update = function(pos, delta, $insertRight) { + this.$insertRight = $insertRight; + this.pos = pos; + this.onChange(delta); +}; + +var movePoint = function(point, diff) { + if (point.row == 0) + point.column += diff.column; + point.row += diff.row; +}; + +var moveRelative = function(point, start) { + if (point.row == start.row) + point.column -= start.column; + point.row -= start.row; +}; + + +require("./lib/dom").importCssString("\ +.ace_snippet-marker {\ + -moz-box-sizing: border-box;\ + box-sizing: border-box;\ + background: rgba(194, 193, 208, 0.09);\ + border: 1px dotted rgba(211, 208, 235, 0.62);\ + position: absolute;\ +}"); + +exports.snippetManager = new SnippetManager(); + + +var Editor = require("./editor").Editor; +(function() { + this.insertSnippet = function(content, options) { + return exports.snippetManager.insertSnippet(this, content, options); + }; + this.expandSnippet = function(options) { + return exports.snippetManager.expandWithTab(this, options); + }; +}).call(Editor.prototype); + +}); + +ace.define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var Renderer = require("../virtual_renderer").VirtualRenderer; +var Editor = require("../editor").Editor; +var Range = require("../range").Range; +var event = require("../lib/event"); +var lang = require("../lib/lang"); +var dom = require("../lib/dom"); + +var $singleLineEditor = function(el) { + var renderer = new Renderer(el); + + renderer.$maxLines = 4; + + var editor = new Editor(renderer); + + editor.setHighlightActiveLine(false); + editor.setShowPrintMargin(false); + editor.renderer.setShowGutter(false); + editor.renderer.setHighlightGutterLine(false); + + editor.$mouseHandler.$focusWaitTimout = 0; + editor.$highlightTagPending = true; + + return editor; +}; + +var AcePopup = function(parentNode) { + var el = dom.createElement("div"); + var popup = new $singleLineEditor(el); + + if (parentNode) + parentNode.appendChild(el); + el.style.display = "none"; + popup.renderer.content.style.cursor = "default"; + popup.renderer.setStyle("ace_autocomplete"); + + popup.setOption("displayIndentGuides", false); + popup.setOption("dragDelay", 150); + + var noop = function(){}; + + popup.focus = noop; + popup.$isFocused = true; + + popup.renderer.$cursorLayer.restartTimer = noop; + popup.renderer.$cursorLayer.element.style.opacity = 0; + + popup.renderer.$maxLines = 8; + popup.renderer.$keepTextAreaAtCursor = false; + + popup.setHighlightActiveLine(false); + popup.session.highlight(""); + popup.session.$searchHighlight.clazz = "ace_highlight-marker"; + + popup.on("mousedown", function(e) { + var pos = e.getDocumentPosition(); + popup.selection.moveToPosition(pos); + selectionMarker.start.row = selectionMarker.end.row = pos.row; + e.stop(); + }); + + var lastMouseEvent; + var hoverMarker = new Range(-1,0,-1,Infinity); + var selectionMarker = new Range(-1,0,-1,Infinity); + selectionMarker.id = popup.session.addMarker(selectionMarker, "ace_active-line", "fullLine"); + popup.setSelectOnHover = function(val) { + if (!val) { + hoverMarker.id = popup.session.addMarker(hoverMarker, "ace_line-hover", "fullLine"); + } else if (hoverMarker.id) { + popup.session.removeMarker(hoverMarker.id); + hoverMarker.id = null; + } + }; + popup.setSelectOnHover(false); + popup.on("mousemove", function(e) { + if (!lastMouseEvent) { + lastMouseEvent = e; + return; + } + if (lastMouseEvent.x == e.x && lastMouseEvent.y == e.y) { + return; + } + lastMouseEvent = e; + lastMouseEvent.scrollTop = popup.renderer.scrollTop; + var row = lastMouseEvent.getDocumentPosition().row; + if (hoverMarker.start.row != row) { + if (!hoverMarker.id) + popup.setRow(row); + setHoverMarker(row); + } + }); + popup.renderer.on("beforeRender", function() { + if (lastMouseEvent && hoverMarker.start.row != -1) { + lastMouseEvent.$pos = null; + var row = lastMouseEvent.getDocumentPosition().row; + if (!hoverMarker.id) + popup.setRow(row); + setHoverMarker(row, true); + } + }); + popup.renderer.on("afterRender", function() { + var row = popup.getRow(); + var t = popup.renderer.$textLayer; + var selected = t.element.childNodes[row - t.config.firstRow]; + if (selected == t.selectedNode) + return; + if (t.selectedNode) + dom.removeCssClass(t.selectedNode, "ace_selected"); + t.selectedNode = selected; + if (selected) + dom.addCssClass(selected, "ace_selected"); + }); + var hideHoverMarker = function() { setHoverMarker(-1) }; + var setHoverMarker = function(row, suppressRedraw) { + if (row !== hoverMarker.start.row) { + hoverMarker.start.row = hoverMarker.end.row = row; + if (!suppressRedraw) + popup.session._emit("changeBackMarker"); + popup._emit("changeHoverMarker"); + } + }; + popup.getHoveredRow = function() { + return hoverMarker.start.row; + }; + + event.addListener(popup.container, "mouseout", hideHoverMarker); + popup.on("hide", hideHoverMarker); + popup.on("changeSelection", hideHoverMarker); + + popup.session.doc.getLength = function() { + return popup.data.length; + }; + popup.session.doc.getLine = function(i) { + var data = popup.data[i]; + if (typeof data == "string") + return data; + return (data && data.value) || ""; + }; + + var bgTokenizer = popup.session.bgTokenizer; + bgTokenizer.$tokenizeRow = function(row) { + var data = popup.data[row]; + var tokens = []; + if (!data) + return tokens; + if (typeof data == "string") + data = {value: data}; + if (!data.caption) + data.caption = data.value || data.name; + + var last = -1; + var flag, c; + for (var i = 0; i < data.caption.length; i++) { + c = data.caption[i]; + flag = data.matchMask & (1 << i) ? 1 : 0; + if (last !== flag) { + tokens.push({type: data.className || "" + ( flag ? "completion-highlight" : ""), value: c}); + last = flag; + } else { + tokens[tokens.length - 1].value += c; + } + } + + if (data.meta) { + var maxW = popup.renderer.$size.scrollerWidth / popup.renderer.layerConfig.characterWidth; + var metaData = data.meta; + if (metaData.length + data.caption.length > maxW - 2) { + metaData = metaData.substr(0, maxW - data.caption.length - 3) + "\u2026" + } + tokens.push({type: "rightAlignedText", value: metaData}); + } + return tokens; + }; + bgTokenizer.$updateOnChange = noop; + bgTokenizer.start = noop; + + popup.session.$computeWidth = function() { + return this.screenWidth = 0; + }; + + popup.$blockScrolling = Infinity; + popup.isOpen = false; + popup.isTopdown = false; + popup.autoSelect = true; + + popup.data = []; + popup.setData = function(list) { + popup.setValue(lang.stringRepeat("\n", list.length), -1); + popup.data = list || []; + popup.setRow(0); + }; + popup.getData = function(row) { + return popup.data[row]; + }; + + popup.getRow = function() { + return selectionMarker.start.row; + }; + popup.setRow = function(line) { + line = Math.max(this.autoSelect ? 0 : -1, Math.min(this.data.length, line)); + if (selectionMarker.start.row != line) { + popup.selection.clearSelection(); + selectionMarker.start.row = selectionMarker.end.row = line || 0; + popup.session._emit("changeBackMarker"); + popup.moveCursorTo(line || 0, 0); + if (popup.isOpen) + popup._signal("select"); + } + }; + + popup.on("changeSelection", function() { + if (popup.isOpen) + popup.setRow(popup.selection.lead.row); + popup.renderer.scrollCursorIntoView(); + }); + + popup.hide = function() { + this.container.style.display = "none"; + this._signal("hide"); + popup.isOpen = false; + }; + popup.show = function(pos, lineHeight, topdownOnly) { + var el = this.container; + var screenHeight = window.innerHeight; + var screenWidth = window.innerWidth; + var renderer = this.renderer; + var maxH = renderer.$maxLines * lineHeight * 1.4; + var top = pos.top + this.$borderSize; + var allowTopdown = top > screenHeight / 2 && !topdownOnly; + if (allowTopdown && top + lineHeight + maxH > screenHeight) { + renderer.$maxPixelHeight = top - 2 * this.$borderSize; + el.style.top = ""; + el.style.bottom = screenHeight - top + "px"; + popup.isTopdown = false; + } else { + top += lineHeight; + renderer.$maxPixelHeight = screenHeight - top - 0.2 * lineHeight; + el.style.top = top + "px"; + el.style.bottom = ""; + popup.isTopdown = true; + } + + el.style.display = ""; + this.renderer.$textLayer.checkForSizeChanges(); + + var left = pos.left; + if (left + el.offsetWidth > screenWidth) + left = screenWidth - el.offsetWidth; + + el.style.left = left + "px"; + + this._signal("show"); + lastMouseEvent = null; + popup.isOpen = true; + }; + + popup.getTextLeftOffset = function() { + return this.$borderSize + this.renderer.$padding + this.$imageSize; + }; + + popup.$imageSize = 0; + popup.$borderSize = 1; + + return popup; +}; + +dom.importCssString("\ +.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\ + background-color: #CAD6FA;\ + z-index: 1;\ +}\ +.ace_editor.ace_autocomplete .ace_line-hover {\ + border: 1px solid #abbffe;\ + margin-top: -1px;\ + background: rgba(233,233,253,0.4);\ +}\ +.ace_editor.ace_autocomplete .ace_line-hover {\ + position: absolute;\ + z-index: 2;\ +}\ +.ace_editor.ace_autocomplete .ace_scroller {\ + background: none;\ + border: none;\ + box-shadow: none;\ +}\ +.ace_rightAlignedText {\ + color: gray;\ + display: inline-block;\ + position: absolute;\ + right: 4px;\ + text-align: right;\ + z-index: -1;\ +}\ +.ace_editor.ace_autocomplete .ace_completion-highlight{\ + color: #000;\ + text-shadow: 0 0 0.01em;\ +}\ +.ace_editor.ace_autocomplete {\ + width: 280px;\ + z-index: 200000;\ + background: #fbfbfb;\ + color: #444;\ + border: 1px lightgray solid;\ + position: fixed;\ + box-shadow: 2px 3px 5px rgba(0,0,0,.2);\ + line-height: 1.4;\ +}"); + +exports.AcePopup = AcePopup; + +}); + +ace.define("ace/autocomplete/util",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.parForEach = function(array, fn, callback) { + var completed = 0; + var arLength = array.length; + if (arLength === 0) + callback(); + for (var i = 0; i < arLength; i++) { + fn(array[i], function(result, err) { + completed++; + if (completed === arLength) + callback(result, err); + }); + } +}; + +var ID_REGEX = /[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/; + +exports.retrievePrecedingIdentifier = function(text, pos, regex) { + regex = regex || ID_REGEX; + var buf = []; + for (var i = pos-1; i >= 0; i--) { + if (regex.test(text[i])) + buf.push(text[i]); + else + break; + } + return buf.reverse().join(""); +}; + +exports.retrieveFollowingIdentifier = function(text, pos, regex) { + regex = regex || ID_REGEX; + var buf = []; + for (var i = pos; i < text.length; i++) { + if (regex.test(text[i])) + buf.push(text[i]); + else + break; + } + return buf; +}; + +exports.getCompletionPrefix = function (editor) { + var pos = editor.getCursorPosition(); + var line = editor.session.getLine(pos.row); + var prefix; + editor.completers.forEach(function(completer) { + if (completer.identifierRegexps) { + completer.identifierRegexps.forEach(function(identifierRegex) { + if (!prefix && identifierRegex) + prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex); + }.bind(this)); + } + }.bind(this)); + return prefix || this.retrievePrecedingIdentifier(line, pos.column); +}; + +}); + +ace.define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"], function(require, exports, module) { +"use strict"; + +var HashHandler = require("./keyboard/hash_handler").HashHandler; +var AcePopup = require("./autocomplete/popup").AcePopup; +var util = require("./autocomplete/util"); +var event = require("./lib/event"); +var lang = require("./lib/lang"); +var dom = require("./lib/dom"); +var snippetManager = require("./snippets").snippetManager; + +var Autocomplete = function() { + this.autoInsert = false; + this.autoSelect = true; + this.exactMatch = false; + this.gatherCompletionsId = 0; + this.keyboardHandler = new HashHandler(); + this.keyboardHandler.bindKeys(this.commands); + + this.blurListener = this.blurListener.bind(this); + this.changeListener = this.changeListener.bind(this); + this.mousedownListener = this.mousedownListener.bind(this); + this.mousewheelListener = this.mousewheelListener.bind(this); + + this.changeTimer = lang.delayedCall(function() { + this.updateCompletions(true); + }.bind(this)); + + this.tooltipTimer = lang.delayedCall(this.updateDocTooltip.bind(this), 50); +}; + +(function() { + + this.$init = function() { + this.popup = new AcePopup(document.body || document.documentElement); + this.popup.on("click", function(e) { + this.insertMatch(); + e.stop(); + }.bind(this)); + this.popup.focus = this.editor.focus.bind(this.editor); + this.popup.on("show", this.tooltipTimer.bind(null, null)); + this.popup.on("select", this.tooltipTimer.bind(null, null)); + this.popup.on("changeHoverMarker", this.tooltipTimer.bind(null, null)); + return this.popup; + }; + + this.getPopup = function() { + return this.popup || this.$init(); + }; + + this.openPopup = function(editor, prefix, keepPopupPosition) { + if (!this.popup) + this.$init(); + + this.popup.autoSelect = this.autoSelect; + + this.popup.setData(this.completions.filtered); + + editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + + var renderer = editor.renderer; + this.popup.setRow(this.autoSelect ? 0 : -1); + if (!keepPopupPosition) { + this.popup.setTheme(editor.getTheme()); + this.popup.setFontSize(editor.getFontSize()); + + var lineHeight = renderer.layerConfig.lineHeight; + + var pos = renderer.$cursorLayer.getPixelPosition(this.base, true); + pos.left -= this.popup.getTextLeftOffset(); + + var rect = editor.container.getBoundingClientRect(); + pos.top += rect.top - renderer.layerConfig.offset; + pos.left += rect.left - editor.renderer.scrollLeft; + pos.left += renderer.gutterWidth; + + this.popup.show(pos, lineHeight); + } else if (keepPopupPosition && !prefix) { + this.detach(); + } + }; + + this.detach = function() { + this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler); + this.editor.off("changeSelection", this.changeListener); + this.editor.off("blur", this.blurListener); + this.editor.off("mousedown", this.mousedownListener); + this.editor.off("mousewheel", this.mousewheelListener); + this.changeTimer.cancel(); + this.hideDocTooltip(); + + this.gatherCompletionsId += 1; + if (this.popup && this.popup.isOpen) + this.popup.hide(); + + if (this.base) + this.base.detach(); + this.activated = false; + this.completions = this.base = null; + }; + + this.changeListener = function(e) { + var cursor = this.editor.selection.lead; + if (cursor.row != this.base.row || cursor.column < this.base.column) { + this.detach(); + } + if (this.activated) + this.changeTimer.schedule(); + else + this.detach(); + }; + + this.blurListener = function(e) { + var el = document.activeElement; + var text = this.editor.textInput.getElement(); + var fromTooltip = e.relatedTarget && this.tooltipNode && this.tooltipNode.contains(e.relatedTarget); + var container = this.popup && this.popup.container; + if (el != text && el.parentNode != container && !fromTooltip + && el != this.tooltipNode && e.relatedTarget != text + ) { + this.detach(); + } + }; + + this.mousedownListener = function(e) { + this.detach(); + }; + + this.mousewheelListener = function(e) { + this.detach(); + }; + + this.goTo = function(where) { + var row = this.popup.getRow(); + var max = this.popup.session.getLength() - 1; + + switch(where) { + case "up": row = row <= 0 ? max : row - 1; break; + case "down": row = row >= max ? -1 : row + 1; break; + case "start": row = 0; break; + case "end": row = max; break; + } + + this.popup.setRow(row); + }; + + this.insertMatch = function(data, options) { + if (!data) + data = this.popup.getData(this.popup.getRow()); + if (!data) + return false; + + if (data.completer && data.completer.insertMatch) { + data.completer.insertMatch(this.editor, data); + } else { + if (this.completions.filterText) { + var ranges = this.editor.selection.getAllRanges(); + for (var i = 0, range; range = ranges[i]; i++) { + range.start.column -= this.completions.filterText.length; + this.editor.session.remove(range); + } + } + if (data.snippet) + snippetManager.insertSnippet(this.editor, data.snippet); + else + this.editor.execCommand("insertstring", data.value || data); + } + this.detach(); + }; + + + this.commands = { + "Up": function(editor) { editor.completer.goTo("up"); }, + "Down": function(editor) { editor.completer.goTo("down"); }, + "Ctrl-Up|Ctrl-Home": function(editor) { editor.completer.goTo("start"); }, + "Ctrl-Down|Ctrl-End": function(editor) { editor.completer.goTo("end"); }, + + "Esc": function(editor) { editor.completer.detach(); }, + "Return": function(editor) { return editor.completer.insertMatch(); }, + "Shift-Return": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); }, + "Tab": function(editor) { + var result = editor.completer.insertMatch(); + if (!result && !editor.tabstopManager) + editor.completer.goTo("down"); + else + return result; + }, + + "PageUp": function(editor) { editor.completer.popup.gotoPageUp(); }, + "PageDown": function(editor) { editor.completer.popup.gotoPageDown(); } + }; + + this.gatherCompletions = function(editor, callback) { + var session = editor.getSession(); + var pos = editor.getCursorPosition(); + + var prefix = util.getCompletionPrefix(editor); + + this.base = session.doc.createAnchor(pos.row, pos.column - prefix.length); + this.base.$insertRight = true; + + var matches = []; + var total = editor.completers.length; + editor.completers.forEach(function(completer, i) { + completer.getCompletions(editor, session, pos, prefix, function(err, results) { + if (!err && results) + matches = matches.concat(results); + callback(null, { + prefix: util.getCompletionPrefix(editor), + matches: matches, + finished: (--total === 0) + }); + }); + }); + return true; + }; + + this.showPopup = function(editor) { + if (this.editor) + this.detach(); + + this.activated = true; + + this.editor = editor; + if (editor.completer != this) { + if (editor.completer) + editor.completer.detach(); + editor.completer = this; + } + + editor.on("changeSelection", this.changeListener); + editor.on("blur", this.blurListener); + editor.on("mousedown", this.mousedownListener); + editor.on("mousewheel", this.mousewheelListener); + + this.updateCompletions(); + }; + + this.updateCompletions = function(keepPopupPosition) { + if (keepPopupPosition && this.base && this.completions) { + var pos = this.editor.getCursorPosition(); + var prefix = this.editor.session.getTextRange({start: this.base, end: pos}); + if (prefix == this.completions.filterText) + return; + this.completions.setFilter(prefix); + if (!this.completions.filtered.length) + return this.detach(); + if (this.completions.filtered.length == 1 + && this.completions.filtered[0].value == prefix + && !this.completions.filtered[0].snippet) + return this.detach(); + this.openPopup(this.editor, prefix, keepPopupPosition); + return; + } + var _id = this.gatherCompletionsId; + this.gatherCompletions(this.editor, function(err, results) { + var detachIfFinished = function() { + if (!results.finished) return; + return this.detach(); + }.bind(this); + + var prefix = results.prefix; + var matches = results && results.matches; + + if (!matches || !matches.length) + return detachIfFinished(); + if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId) + return; + + this.completions = new FilteredList(matches); + + if (this.exactMatch) + this.completions.exactMatch = true; + + this.completions.setFilter(prefix); + var filtered = this.completions.filtered; + if (!filtered.length) + return detachIfFinished(); + if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet) + return detachIfFinished(); + if (this.autoInsert && filtered.length == 1 && results.finished) + return this.insertMatch(filtered[0]); + + this.openPopup(this.editor, prefix, keepPopupPosition); + }.bind(this)); + }; + + this.cancelContextMenu = function() { + this.editor.$mouseHandler.cancelContextMenu(); + }; + + this.updateDocTooltip = function() { + var popup = this.popup; + var all = popup.data; + var selected = all && (all[popup.getHoveredRow()] || all[popup.getRow()]); + var doc = null; + if (!selected || !this.editor || !this.popup.isOpen) + return this.hideDocTooltip(); + this.editor.completers.some(function(completer) { + if (completer.getDocTooltip) + doc = completer.getDocTooltip(selected); + return doc; + }); + if (!doc) + doc = selected; + + if (typeof doc == "string") + doc = {docText: doc}; + if (!doc || !(doc.docHTML || doc.docText)) + return this.hideDocTooltip(); + this.showDocTooltip(doc); + }; + + this.showDocTooltip = function(item) { + if (!this.tooltipNode) { + this.tooltipNode = dom.createElement("div"); + this.tooltipNode.className = "ace_tooltip ace_doc-tooltip"; + this.tooltipNode.style.margin = 0; + this.tooltipNode.style.pointerEvents = "auto"; + this.tooltipNode.tabIndex = -1; + this.tooltipNode.onblur = this.blurListener.bind(this); + this.tooltipNode.onclick = this.onTooltipClick.bind(this); + } + + var tooltipNode = this.tooltipNode; + if (item.docHTML) { + tooltipNode.innerHTML = item.docHTML; + } else if (item.docText) { + tooltipNode.textContent = item.docText; + } + + if (!tooltipNode.parentNode) + document.body.appendChild(tooltipNode); + var popup = this.popup; + var rect = popup.container.getBoundingClientRect(); + tooltipNode.style.top = popup.container.style.top; + tooltipNode.style.bottom = popup.container.style.bottom; + + if (window.innerWidth - rect.right < 320) { + tooltipNode.style.right = window.innerWidth - rect.left + "px"; + tooltipNode.style.left = ""; + } else { + tooltipNode.style.left = (rect.right + 1) + "px"; + tooltipNode.style.right = ""; + } + tooltipNode.style.display = "block"; + }; + + this.hideDocTooltip = function() { + this.tooltipTimer.cancel(); + if (!this.tooltipNode) return; + var el = this.tooltipNode; + if (!this.editor.isFocused() && document.activeElement == el) + this.editor.focus(); + this.tooltipNode = null; + if (el.parentNode) + el.parentNode.removeChild(el); + }; + + this.onTooltipClick = function(e) { + var a = e.target; + while (a && a != this.tooltipNode) { + if (a.nodeName == "A" && a.href) { + a.rel = "noreferrer"; + a.target = "_blank"; + break; + } + a = a.parentNode; + } + } + +}).call(Autocomplete.prototype); + +Autocomplete.startCommand = { + name: "startAutocomplete", + exec: function(editor) { + if (!editor.completer) + editor.completer = new Autocomplete(); + editor.completer.autoInsert = false; + editor.completer.autoSelect = true; + editor.completer.showPopup(editor); + editor.completer.cancelContextMenu(); + }, + bindKey: "Ctrl-Space|Ctrl-Shift-Space|Alt-Space" +}; + +var FilteredList = function(array, filterText) { + this.all = array; + this.filtered = array; + this.filterText = filterText || ""; + this.exactMatch = false; +}; +(function(){ + this.setFilter = function(str) { + if (str.length > this.filterText && str.lastIndexOf(this.filterText, 0) === 0) + var matches = this.filtered; + else + var matches = this.all; + + this.filterText = str; + matches = this.filterCompletions(matches, this.filterText); + matches = matches.sort(function(a, b) { + return b.exactMatch - a.exactMatch || b.score - a.score; + }); + var prev = null; + matches = matches.filter(function(item){ + var caption = item.snippet || item.caption || item.value; + if (caption === prev) return false; + prev = caption; + return true; + }); + + this.filtered = matches; + }; + this.filterCompletions = function(items, needle) { + var results = []; + var upper = needle.toUpperCase(); + var lower = needle.toLowerCase(); + loop: for (var i = 0, item; item = items[i]; i++) { + var caption = item.value || item.caption || item.snippet; + if (!caption) continue; + var lastIndex = -1; + var matchMask = 0; + var penalty = 0; + var index, distance; + + if (this.exactMatch) { + if (needle !== caption.substr(0, needle.length)) + continue loop; + }else{ + for (var j = 0; j < needle.length; j++) { + var i1 = caption.indexOf(lower[j], lastIndex + 1); + var i2 = caption.indexOf(upper[j], lastIndex + 1); + index = (i1 >= 0) ? ((i2 < 0 || i1 < i2) ? i1 : i2) : i2; + if (index < 0) + continue loop; + distance = index - lastIndex - 1; + if (distance > 0) { + if (lastIndex === -1) + penalty += 10; + penalty += distance; + } + matchMask = matchMask | (1 << index); + lastIndex = index; + } + } + item.matchMask = matchMask; + item.exactMatch = penalty ? 0 : 1; + item.score = (item.score || 0) - penalty; + results.push(item); + } + return results; + }; +}).call(FilteredList.prototype); + +exports.Autocomplete = Autocomplete; +exports.FilteredList = FilteredList; + +}); + +ace.define("ace/autocomplete/text_completer",["require","exports","module","ace/range"], function(require, exports, module) { + var Range = require("../range").Range; + + var splitRegex = /[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/; + + function getWordIndex(doc, pos) { + var textBefore = doc.getTextRange(Range.fromPoints({row: 0, column:0}, pos)); + return textBefore.split(splitRegex).length - 1; + } + function wordDistance(doc, pos) { + var prefixPos = getWordIndex(doc, pos); + var words = doc.getValue().split(splitRegex); + var wordScores = Object.create(null); + + var currentWord = words[prefixPos]; + + words.forEach(function(word, idx) { + if (!word || word === currentWord) return; + + var distance = Math.abs(prefixPos - idx); + var score = words.length - distance; + if (wordScores[word]) { + wordScores[word] = Math.max(score, wordScores[word]); + } else { + wordScores[word] = score; + } + }); + return wordScores; + } + + exports.getCompletions = function(editor, session, pos, prefix, callback) { + var wordScore = wordDistance(session, pos, prefix); + var wordList = Object.keys(wordScore); + callback(null, wordList.map(function(word) { + return { + caption: word, + value: word, + score: wordScore[word], + meta: "local" + }; + })); + }; +}); + +ace.define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"], function(require, exports, module) { +"use strict"; + +var snippetManager = require("../snippets").snippetManager; +var Autocomplete = require("../autocomplete").Autocomplete; +var config = require("../config"); +var lang = require("../lib/lang"); +var util = require("../autocomplete/util"); + +var textCompleter = require("../autocomplete/text_completer"); +var keyWordCompleter = { + getCompletions: function(editor, session, pos, prefix, callback) { + if (session.$mode.completer) { + return session.$mode.completer.getCompletions(editor, session, pos, prefix, callback); + } + var state = editor.session.getState(pos.row); + var completions = session.$mode.getCompletions(state, session, pos, prefix); + callback(null, completions); + } +}; + +var snippetCompleter = { + getCompletions: function(editor, session, pos, prefix, callback) { + var snippetMap = snippetManager.snippetMap; + var completions = []; + snippetManager.getActiveScopes(editor).forEach(function(scope) { + var snippets = snippetMap[scope] || []; + for (var i = snippets.length; i--;) { + var s = snippets[i]; + var caption = s.name || s.tabTrigger; + if (!caption) + continue; + completions.push({ + caption: caption, + snippet: s.content, + meta: s.tabTrigger && !s.name ? s.tabTrigger + "\u21E5 " : "snippet", + type: "snippet" + }); + } + }, this); + callback(null, completions); + }, + getDocTooltip: function(item) { + if (item.type == "snippet" && !item.docHTML) { + item.docHTML = [ + "", lang.escapeHTML(item.caption), "", "
    ", + lang.escapeHTML(item.snippet) + ].join(""); + } + } +}; + +var completers = [snippetCompleter, textCompleter, keyWordCompleter]; +exports.setCompleters = function(val) { + completers.length = 0; + if (val) completers.push.apply(completers, val); +}; +exports.addCompleter = function(completer) { + completers.push(completer); +}; +exports.textCompleter = textCompleter; +exports.keyWordCompleter = keyWordCompleter; +exports.snippetCompleter = snippetCompleter; + +var expandSnippet = { + name: "expandSnippet", + exec: function(editor) { + return snippetManager.expandWithTab(editor); + }, + bindKey: "Tab" +}; + +var onChangeMode = function(e, editor) { + loadSnippetsForMode(editor.session.$mode); +}; + +var loadSnippetsForMode = function(mode) { + var id = mode.$id; + if (!snippetManager.files) + snippetManager.files = {}; + loadSnippetFile(id); + if (mode.modes) + mode.modes.forEach(loadSnippetsForMode); +}; + +var loadSnippetFile = function(id) { + if (!id || snippetManager.files[id]) + return; + var snippetFilePath = id.replace("mode", "snippets"); + snippetManager.files[id] = {}; + config.loadModule(snippetFilePath, function(m) { + if (m) { + snippetManager.files[id] = m; + if (!m.snippets && m.snippetText) + m.snippets = snippetManager.parseSnippetFile(m.snippetText); + snippetManager.register(m.snippets || [], m.scope); + if (m.includeScopes) { + snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes; + m.includeScopes.forEach(function(x) { + loadSnippetFile("ace/mode/" + x); + }); + } + } + }); +}; + +var doLiveAutocomplete = function(e) { + var editor = e.editor; + var hasCompleter = editor.completer && editor.completer.activated; + if (e.command.name === "backspace") { + if (hasCompleter && !util.getCompletionPrefix(editor)) + editor.completer.detach(); + } + else if (e.command.name === "insertstring") { + var prefix = util.getCompletionPrefix(editor); + if (prefix && !hasCompleter) { + if (!editor.completer) { + editor.completer = new Autocomplete(); + } + editor.completer.autoInsert = false; + editor.completer.showPopup(editor); + } + } +}; + +var Editor = require("../editor").Editor; +require("../config").defineOptions(Editor.prototype, "editor", { + enableBasicAutocompletion: { + set: function(val) { + if (val) { + if (!this.completers) + this.completers = Array.isArray(val)? val: completers; + this.commands.addCommand(Autocomplete.startCommand); + } else { + this.commands.removeCommand(Autocomplete.startCommand); + } + }, + value: false + }, + enableLiveAutocompletion: { + set: function(val) { + if (val) { + if (!this.completers) + this.completers = Array.isArray(val)? val: completers; + this.commands.on('afterExec', doLiveAutocomplete); + } else { + this.commands.removeListener('afterExec', doLiveAutocomplete); + } + }, + value: false + }, + enableSnippets: { + set: function(val) { + if (val) { + this.commands.addCommand(expandSnippet); + this.on("changeMode", onChangeMode); + onChangeMode(null, this); + } else { + this.commands.removeCommand(expandSnippet); + this.off("changeMode", onChangeMode); + } + }, + value: false + } +}); +}); + (function() { + ace.require(["ace/ext/language_tools"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-linking.js b/htdocs/includes/ace/ext-linking.js new file mode 100644 index 00000000000..baa7570254d --- /dev/null +++ b/htdocs/includes/ace/ext-linking.js @@ -0,0 +1,61 @@ +ace.define("ace/ext/linking",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) { + +var Editor = require("ace/editor").Editor; + +require("../config").defineOptions(Editor.prototype, "editor", { + enableLinking: { + set: function(val) { + if (val) { + this.on("click", onClick); + this.on("mousemove", onMouseMove); + } else { + this.off("click", onClick); + this.off("mousemove", onMouseMove); + } + }, + value: false + } +}) + +exports.previousLinkingHover = false; + +function onMouseMove(e) { + var editor = e.editor; + var ctrl = e.getAccelKey(); + + if (ctrl) { + var editor = e.editor; + var docPos = e.getDocumentPosition(); + var session = editor.session; + var token = session.getTokenAt(docPos.row, docPos.column); + + if (exports.previousLinkingHover && exports.previousLinkingHover != token) { + editor._emit("linkHoverOut"); + } + editor._emit("linkHover", {position: docPos, token: token}); + exports.previousLinkingHover = token; + } else if (exports.previousLinkingHover) { + editor._emit("linkHoverOut"); + exports.previousLinkingHover = false; + } +} + +function onClick(e) { + var ctrl = e.getAccelKey(); + var button = e.getButton(); + + if (button == 0 && ctrl) { + var editor = e.editor; + var docPos = e.getDocumentPosition(); + var session = editor.session; + var token = session.getTokenAt(docPos.row, docPos.column); + + editor._emit("linkClick", {position: docPos, token: token}); + } +} + +}); + (function() { + ace.require(["ace/ext/linking"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-modelist.js b/htdocs/includes/ace/ext-modelist.js new file mode 100644 index 00000000000..b0c7fd0dba0 --- /dev/null +++ b/htdocs/includes/ace/ext-modelist.js @@ -0,0 +1,209 @@ +ace.define("ace/ext/modelist",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var modes = []; +function getModeForPath(path) { + var mode = modesByName.text; + var fileName = path.split(/[\/\\]/).pop(); + for (var i = 0; i < modes.length; i++) { + if (modes[i].supportsFile(fileName)) { + mode = modes[i]; + break; + } + } + return mode; +} + +var Mode = function(name, caption, extensions) { + this.name = name; + this.caption = caption; + this.mode = "ace/mode/" + name; + this.extensions = extensions; + var re; + if (/\^/.test(extensions)) { + re = extensions.replace(/\|(\^)?/g, function(a, b){ + return "$|" + (b ? "^" : "^.*\\."); + }) + "$"; + } else { + re = "^.*\\.(" + extensions + ")$"; + } + + this.extRe = new RegExp(re, "gi"); +}; + +Mode.prototype.supportsFile = function(filename) { + return filename.match(this.extRe); +}; +var supportedModes = { + ABAP: ["abap"], + ABC: ["abc"], + ActionScript:["as"], + ADA: ["ada|adb"], + Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"], + AsciiDoc: ["asciidoc|adoc"], + Assembly_x86:["asm|a"], + AutoHotKey: ["ahk"], + BatchFile: ["bat|cmd"], + Bro: ["bro"], + C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"], + C9Search: ["c9search_results"], + Cirru: ["cirru|cr"], + Clojure: ["clj|cljs"], + Cobol: ["CBL|COB"], + coffee: ["coffee|cf|cson|^Cakefile"], + ColdFusion: ["cfm"], + CSharp: ["cs"], + CSS: ["css"], + Curly: ["curly"], + D: ["d|di"], + Dart: ["dart"], + Diff: ["diff|patch"], + Dockerfile: ["^Dockerfile"], + Dot: ["dot"], + Drools: ["drl"], + Dummy: ["dummy"], + DummySyntax: ["dummy"], + Eiffel: ["e|ge"], + EJS: ["ejs"], + Elixir: ["ex|exs"], + Elm: ["elm"], + Erlang: ["erl|hrl"], + Forth: ["frt|fs|ldr|fth|4th"], + Fortran: ["f|f90"], + FTL: ["ftl"], + Gcode: ["gcode"], + Gherkin: ["feature"], + Gitignore: ["^.gitignore"], + Glsl: ["glsl|frag|vert"], + Gobstones: ["gbs"], + golang: ["go"], + GraphQLSchema: ["gql"], + Groovy: ["groovy"], + HAML: ["haml"], + Handlebars: ["hbs|handlebars|tpl|mustache"], + Haskell: ["hs"], + Haskell_Cabal: ["cabal"], + haXe: ["hx"], + Hjson: ["hjson"], + HTML: ["html|htm|xhtml"], + HTML_Elixir: ["eex|html.eex"], + HTML_Ruby: ["erb|rhtml|html.erb"], + INI: ["ini|conf|cfg|prefs"], + Io: ["io"], + Jack: ["jack"], + Jade: ["jade|pug"], + Java: ["java"], + JavaScript: ["js|jsm|jsx"], + JSON: ["json"], + JSONiq: ["jq"], + JSP: ["jsp"], + JSX: ["jsx"], + Julia: ["jl"], + Kotlin: ["kt|kts"], + LaTeX: ["tex|latex|ltx|bib"], + LESS: ["less"], + Liquid: ["liquid"], + Lisp: ["lisp"], + LiveScript: ["ls"], + LogiQL: ["logic|lql"], + LSL: ["lsl"], + Lua: ["lua"], + LuaPage: ["lp"], + Lucene: ["lucene"], + Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"], + Markdown: ["md|markdown"], + Mask: ["mask"], + MATLAB: ["matlab"], + Maze: ["mz"], + MEL: ["mel"], + MUSHCode: ["mc|mush"], + MySQL: ["mysql"], + Nix: ["nix"], + NSIS: ["nsi|nsh"], + ObjectiveC: ["m|mm"], + OCaml: ["ml|mli"], + Pascal: ["pas|p"], + Perl: ["pl|pm"], + pgSQL: ["pgsql"], + PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"], + Pig: ["pig"], + Powershell: ["ps1"], + Praat: ["praat|praatscript|psc|proc"], + Prolog: ["plg|prolog"], + Properties: ["properties"], + Protobuf: ["proto"], + Python: ["py"], + R: ["r"], + Razor: ["cshtml|asp"], + RDoc: ["Rd"], + RHTML: ["Rhtml"], + RST: ["rst"], + Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"], + Rust: ["rs"], + SASS: ["sass"], + SCAD: ["scad"], + Scala: ["scala"], + Scheme: ["scm|sm|rkt|oak|scheme"], + SCSS: ["scss"], + SH: ["sh|bash|^.bashrc"], + SJS: ["sjs"], + Smarty: ["smarty|tpl"], + snippets: ["snippets"], + Soy_Template:["soy"], + Space: ["space"], + SQL: ["sql"], + SQLServer: ["sqlserver"], + Stylus: ["styl|stylus"], + SVG: ["svg"], + Swift: ["swift"], + Tcl: ["tcl"], + Tex: ["tex"], + Text: ["txt"], + Textile: ["textile"], + Toml: ["toml"], + TSX: ["tsx"], + Twig: ["twig|swig"], + Typescript: ["ts|typescript|str"], + Vala: ["vala"], + VBScript: ["vbs|vb"], + Velocity: ["vm"], + Verilog: ["v|vh|sv|svh"], + VHDL: ["vhd|vhdl"], + Wollok: ["wlk|wpgm|wtest"], + XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"], + XQuery: ["xq"], + YAML: ["yaml|yml"], + Django: ["html"] +}; + +var nameOverrides = { + ObjectiveC: "Objective-C", + CSharp: "C#", + golang: "Go", + C_Cpp: "C and C++", + coffee: "CoffeeScript", + HTML_Ruby: "HTML (Ruby)", + HTML_Elixir: "HTML (Elixir)", + FTL: "FreeMarker" +}; +var modesByName = {}; +for (var name in supportedModes) { + var data = supportedModes[name]; + var displayName = (nameOverrides[name] || name).replace(/_/g, " "); + var filename = name.toLowerCase(); + var mode = new Mode(filename, displayName, data[0]); + modesByName[filename] = mode; + modes.push(mode); +} + +module.exports = { + getModeForPath: getModeForPath, + modes: modes, + modesByName: modesByName +}; + +}); + (function() { + ace.require(["ace/ext/modelist"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-old_ie.js b/htdocs/includes/ace/ext-old_ie.js new file mode 100644 index 00000000000..f0f225c8b64 --- /dev/null +++ b/htdocs/includes/ace/ext-old_ie.js @@ -0,0 +1,502 @@ +ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var event = require("../lib/event"); +var searchboxCss = "\ +.ace_search {\ +background-color: #ddd;\ +border: 1px solid #cbcbcb;\ +border-top: 0 none;\ +max-width: 325px;\ +overflow: hidden;\ +margin: 0;\ +padding: 4px;\ +padding-right: 6px;\ +padding-bottom: 0;\ +position: absolute;\ +top: 0px;\ +z-index: 99;\ +white-space: normal;\ +}\ +.ace_search.left {\ +border-left: 0 none;\ +border-radius: 0px 0px 5px 0px;\ +left: 0;\ +}\ +.ace_search.right {\ +border-radius: 0px 0px 0px 5px;\ +border-right: 0 none;\ +right: 0;\ +}\ +.ace_search_form, .ace_replace_form {\ +border-radius: 3px;\ +border: 1px solid #cbcbcb;\ +float: left;\ +margin-bottom: 4px;\ +overflow: hidden;\ +}\ +.ace_search_form.ace_nomatch {\ +outline: 1px solid red;\ +}\ +.ace_search_field {\ +background-color: white;\ +color: black;\ +border-right: 1px solid #cbcbcb;\ +border: 0 none;\ +-webkit-box-sizing: border-box;\ +-moz-box-sizing: border-box;\ +box-sizing: border-box;\ +float: left;\ +height: 22px;\ +outline: 0;\ +padding: 0 7px;\ +width: 214px;\ +margin: 0;\ +}\ +.ace_searchbtn,\ +.ace_replacebtn {\ +background: #fff;\ +border: 0 none;\ +border-left: 1px solid #dcdcdc;\ +cursor: pointer;\ +float: left;\ +height: 22px;\ +margin: 0;\ +position: relative;\ +}\ +.ace_searchbtn:last-child,\ +.ace_replacebtn:last-child {\ +border-top-right-radius: 3px;\ +border-bottom-right-radius: 3px;\ +}\ +.ace_searchbtn:disabled {\ +background: none;\ +cursor: default;\ +}\ +.ace_searchbtn {\ +background-position: 50% 50%;\ +background-repeat: no-repeat;\ +width: 27px;\ +}\ +.ace_searchbtn.prev {\ +background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); \ +}\ +.ace_searchbtn.next {\ +background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); \ +}\ +.ace_searchbtn_close {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\ +border-radius: 50%;\ +border: 0 none;\ +color: #656565;\ +cursor: pointer;\ +float: right;\ +font: 16px/16px Arial;\ +height: 14px;\ +margin: 5px 1px 9px 5px;\ +padding: 0;\ +text-align: center;\ +width: 14px;\ +}\ +.ace_searchbtn_close:hover {\ +background-color: #656565;\ +background-position: 50% 100%;\ +color: white;\ +}\ +.ace_replacebtn.prev {\ +width: 54px\ +}\ +.ace_replacebtn.next {\ +width: 27px\ +}\ +.ace_button {\ +margin-left: 2px;\ +cursor: pointer;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +overflow: hidden;\ +opacity: 0.7;\ +border: 1px solid rgba(100,100,100,0.23);\ +padding: 1px;\ +-moz-box-sizing: border-box;\ +box-sizing: border-box;\ +color: black;\ +}\ +.ace_button:hover {\ +background-color: #eee;\ +opacity:1;\ +}\ +.ace_button:active {\ +background-color: #ddd;\ +}\ +.ace_button.checked {\ +border-color: #3399ff;\ +opacity:1;\ +}\ +.ace_search_options{\ +margin-bottom: 3px;\ +text-align: right;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +}"; +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var keyUtil = require("../lib/keys"); + +dom.importCssString(searchboxCss, "ace_searchbox"); + +var html = ''.replace(/>\s+/g, ">"); + +var SearchBox = function(editor, range, showReplaceForm) { + var div = dom.createElement("div"); + div.innerHTML = html; + this.element = div.firstChild; + + this.$init(); + this.setEditor(editor); +}; + +(function() { + this.setEditor = function(editor) { + editor.searchBox = this; + editor.container.appendChild(this.element); + this.editor = editor; + }; + + this.$initElements = function(sb) { + this.searchBox = sb.querySelector(".ace_search_form"); + this.replaceBox = sb.querySelector(".ace_replace_form"); + this.searchOptions = sb.querySelector(".ace_search_options"); + this.regExpOption = sb.querySelector("[action=toggleRegexpMode]"); + this.caseSensitiveOption = sb.querySelector("[action=toggleCaseSensitive]"); + this.wholeWordOption = sb.querySelector("[action=toggleWholeWords]"); + this.searchInput = this.searchBox.querySelector(".ace_search_field"); + this.replaceInput = this.replaceBox.querySelector(".ace_search_field"); + }; + + this.$init = function() { + var sb = this.element; + + this.$initElements(sb); + + var _this = this; + event.addListener(sb, "mousedown", function(e) { + setTimeout(function(){ + _this.activeInput.focus(); + }, 0); + event.stopPropagation(e); + }); + event.addListener(sb, "click", function(e) { + var t = e.target || e.srcElement; + var action = t.getAttribute("action"); + if (action && _this[action]) + _this[action](); + else if (_this.$searchBarKb.commands[action]) + _this.$searchBarKb.commands[action].exec(_this); + event.stopPropagation(e); + }); + + event.addCommandKeyListener(sb, function(e, hashId, keyCode) { + var keyString = keyUtil.keyCodeToString(keyCode); + var command = _this.$searchBarKb.findKeyCommand(hashId, keyString); + if (command && command.exec) { + command.exec(_this); + event.stopEvent(e); + } + }); + + this.$onChange = lang.delayedCall(function() { + _this.find(false, false); + }); + + event.addListener(this.searchInput, "input", function() { + _this.$onChange.schedule(20); + }); + event.addListener(this.searchInput, "focus", function() { + _this.activeInput = _this.searchInput; + _this.searchInput.value && _this.highlight(); + }); + event.addListener(this.replaceInput, "focus", function() { + _this.activeInput = _this.replaceInput; + _this.searchInput.value && _this.highlight(); + }); + }; + this.$closeSearchBarKb = new HashHandler([{ + bindKey: "Esc", + name: "closeSearchBar", + exec: function(editor) { + editor.searchBox.hide(); + } + }]); + this.$searchBarKb = new HashHandler(); + this.$searchBarKb.bindKeys({ + "Ctrl-f|Command-f": function(sb) { + var isReplace = sb.isReplace = !sb.isReplace; + sb.replaceBox.style.display = isReplace ? "" : "none"; + sb.searchInput.focus(); + }, + "Ctrl-H|Command-Option-F": function(sb) { + sb.replaceBox.style.display = ""; + sb.replaceInput.focus(); + }, + "Ctrl-G|Command-G": function(sb) { + sb.findNext(); + }, + "Ctrl-Shift-G|Command-Shift-G": function(sb) { + sb.findPrev(); + }, + "esc": function(sb) { + setTimeout(function() { sb.hide();}); + }, + "Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findNext(); + }, + "Shift-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findPrev(); + }, + "Alt-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replaceAll(); + sb.findAll(); + }, + "Tab": function(sb) { + (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus(); + } + }); + + this.$searchBarKb.addCommands([{ + name: "toggleRegexpMode", + bindKey: {win: "Alt-R|Alt-/", mac: "Ctrl-Alt-R|Ctrl-Alt-/"}, + exec: function(sb) { + sb.regExpOption.checked = !sb.regExpOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleCaseSensitive", + bindKey: {win: "Alt-C|Alt-I", mac: "Ctrl-Alt-R|Ctrl-Alt-I"}, + exec: function(sb) { + sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleWholeWords", + bindKey: {win: "Alt-B|Alt-W", mac: "Ctrl-Alt-B|Ctrl-Alt-W"}, + exec: function(sb) { + sb.wholeWordOption.checked = !sb.wholeWordOption.checked; + sb.$syncOptions(); + } + }]); + + this.$syncOptions = function() { + dom.setCssClass(this.regExpOption, "checked", this.regExpOption.checked); + dom.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked); + dom.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked); + this.find(false, false); + }; + + this.highlight = function(re) { + this.editor.session.highlight(re || this.editor.$search.$options.re); + this.editor.renderer.updateBackMarkers() + }; + this.find = function(skipCurrent, backwards, preventScroll) { + var range = this.editor.find(this.searchInput.value, { + skipCurrent: skipCurrent, + backwards: backwards, + wrap: true, + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked, + preventScroll: preventScroll + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + }; + this.findNext = function() { + this.find(true, false); + }; + this.findPrev = function() { + this.find(true, true); + }; + this.findAll = function(){ + var range = this.editor.findAll(this.searchInput.value, { + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.hide(); + }; + this.replace = function() { + if (!this.editor.getReadOnly()) + this.editor.replace(this.replaceInput.value); + }; + this.replaceAndFindNext = function() { + if (!this.editor.getReadOnly()) { + this.editor.replace(this.replaceInput.value); + this.findNext() + } + }; + this.replaceAll = function() { + if (!this.editor.getReadOnly()) + this.editor.replaceAll(this.replaceInput.value); + }; + + this.hide = function() { + this.element.style.display = "none"; + this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb); + this.editor.focus(); + }; + this.show = function(value, isReplace) { + this.element.style.display = ""; + this.replaceBox.style.display = isReplace ? "" : "none"; + + this.isReplace = isReplace; + + if (value) + this.searchInput.value = value; + + this.find(false, false, true); + + this.searchInput.focus(); + this.searchInput.select(); + + this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb); + }; + + this.isFocused = function() { + var el = document.activeElement; + return el == this.searchInput || el == this.replaceInput; + } +}).call(SearchBox.prototype); + +exports.SearchBox = SearchBox; + +exports.Search = function(editor, isReplace) { + var sb = editor.searchBox || new SearchBox(editor); + sb.show(editor.session.getTextRange(), isReplace); +}; + +}); + +ace.define("ace/ext/old_ie",["require","exports","module","ace/lib/useragent","ace/tokenizer","ace/ext/searchbox","ace/mode/text"], function(require, exports, module) { +"use strict"; +var MAX_TOKEN_COUNT = 1000; +var useragent = require("../lib/useragent"); +var TokenizerModule = require("../tokenizer"); + +function patch(obj, name, regexp, replacement) { + eval("obj['" + name + "']=" + obj[name].toString().replace( + regexp, replacement + )); +} + +if (useragent.isIE && useragent.isIE < 10 && window.top.document.compatMode === "BackCompat") + useragent.isOldIE = true; + +if (typeof document != "undefined" && !document.documentElement.querySelector) { + useragent.isOldIE = true; + var qs = function(el, selector) { + if (selector.charAt(0) == ".") { + var classNeme = selector.slice(1); + } else { + var m = selector.match(/(\w+)=(\w+)/); + var attr = m && m[1]; + var attrVal = m && m[2]; + } + for (var i = 0; i < el.all.length; i++) { + var ch = el.all[i]; + if (classNeme) { + if (ch.className.indexOf(classNeme) != -1) + return ch; + } else if (attr) { + if (ch.getAttribute(attr) == attrVal) + return ch; + } + } + }; + var sb = require("./searchbox").SearchBox.prototype; + patch( + sb, "$initElements", + /([^\s=]*).querySelector\((".*?")\)/g, + "qs($1, $2)" + ); +} + +var compliantExecNpcg = /()??/.exec("")[1] === undefined; +if (compliantExecNpcg) + return; +var proto = TokenizerModule.Tokenizer.prototype; +TokenizerModule.Tokenizer_orig = TokenizerModule.Tokenizer; +proto.getLineTokens_orig = proto.getLineTokens; + +patch( + TokenizerModule, "Tokenizer", + "ruleRegExps.push(adjustedregex);\n", + function(m) { + return m + '\ + if (state[i].next && RegExp(adjustedregex).test(""))\n\ + rule._qre = RegExp(adjustedregex, "g");\n\ + '; + } +); +TokenizerModule.Tokenizer.prototype = proto; +patch( + proto, "getLineTokens", + /if \(match\[i \+ 1\] === undefined\)\s*continue;/, + "if (!match[i + 1]) {\n\ + if (value)continue;\n\ + var qre = state[mapping[i]]._qre;\n\ + if (!qre) continue;\n\ + qre.lastIndex = lastIndex;\n\ + if (!qre.exec(line) || qre.lastIndex != lastIndex)\n\ + continue;\n\ + }" +); + +patch( + require("../mode/text").Mode.prototype, "getTokenizer", + /Tokenizer/, + "TokenizerModule.Tokenizer" +); + +useragent.isOldIE = true; + +}); + (function() { + ace.require(["ace/ext/old_ie"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-searchbox.js b/htdocs/includes/ace/ext-searchbox.js new file mode 100644 index 00000000000..81b936bd3a0 --- /dev/null +++ b/htdocs/includes/ace/ext-searchbox.js @@ -0,0 +1,509 @@ +ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var event = require("../lib/event"); +var searchboxCss = "\ +.ace_search {\ +background-color: #ddd;\ +color: #666;\ +border: 1px solid #cbcbcb;\ +border-top: 0 none;\ +overflow: hidden;\ +margin: 0;\ +padding: 4px 6px 0 4px;\ +position: absolute;\ +top: 0;\ +z-index: 99;\ +white-space: normal;\ +}\ +.ace_search.left {\ +border-left: 0 none;\ +border-radius: 0px 0px 5px 0px;\ +left: 0;\ +}\ +.ace_search.right {\ +border-radius: 0px 0px 0px 5px;\ +border-right: 0 none;\ +right: 0;\ +}\ +.ace_search_form, .ace_replace_form {\ +margin: 0 20px 4px 0;\ +overflow: hidden;\ +line-height: 1.9;\ +}\ +.ace_replace_form {\ +margin-right: 0;\ +}\ +.ace_search_form.ace_nomatch {\ +outline: 1px solid red;\ +}\ +.ace_search_field {\ +border-radius: 3px 0 0 3px;\ +background-color: white;\ +color: black;\ +border: 1px solid #cbcbcb;\ +border-right: 0 none;\ +box-sizing: border-box!important;\ +outline: 0;\ +padding: 0;\ +font-size: inherit;\ +margin: 0;\ +line-height: inherit;\ +padding: 0 6px;\ +min-width: 17em;\ +vertical-align: top;\ +}\ +.ace_searchbtn {\ +border: 1px solid #cbcbcb;\ +line-height: inherit;\ +display: inline-block;\ +padding: 0 6px;\ +background: #fff;\ +border-right: 0 none;\ +border-left: 1px solid #dcdcdc;\ +cursor: pointer;\ +margin: 0;\ +position: relative;\ +box-sizing: content-box!important;\ +color: #666;\ +}\ +.ace_searchbtn:last-child {\ +border-radius: 0 3px 3px 0;\ +border-right: 1px solid #cbcbcb;\ +}\ +.ace_searchbtn:disabled {\ +background: none;\ +cursor: default;\ +}\ +.ace_searchbtn:hover {\ +background-color: #eef1f6;\ +}\ +.ace_searchbtn.prev, .ace_searchbtn.next {\ +padding: 0px 0.7em\ +}\ +.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\ +content: \"\";\ +border: solid 2px #888;\ +width: 0.5em;\ +height: 0.5em;\ +border-width: 2px 0 0 2px;\ +display:inline-block;\ +transform: rotate(-45deg);\ +}\ +.ace_searchbtn.next:after {\ +border-width: 0 2px 2px 0 ;\ +}\ +.ace_searchbtn_close {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\ +border-radius: 50%;\ +border: 0 none;\ +color: #656565;\ +cursor: pointer;\ +font: 16px/16px Arial;\ +padding: 0;\ +height: 14px;\ +width: 14px;\ +top: 9px;\ +right: 7px;\ +position: absolute;\ +}\ +.ace_searchbtn_close:hover {\ +background-color: #656565;\ +background-position: 50% 100%;\ +color: white;\ +}\ +.ace_button {\ +margin-left: 2px;\ +cursor: pointer;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +overflow: hidden;\ +opacity: 0.7;\ +border: 1px solid rgba(100,100,100,0.23);\ +padding: 1px;\ +box-sizing: border-box!important;\ +color: black;\ +}\ +.ace_button:hover {\ +background-color: #eee;\ +opacity:1;\ +}\ +.ace_button:active {\ +background-color: #ddd;\ +}\ +.ace_button.checked {\ +border-color: #3399ff;\ +opacity:1;\ +}\ +.ace_search_options{\ +margin-bottom: 3px;\ +text-align: right;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +clear: both;\ +}\ +.ace_search_counter {\ +float: left;\ +font-family: arial;\ +padding: 0 8px;\ +}"; +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var keyUtil = require("../lib/keys"); + +var MAX_COUNT = 999; + +dom.importCssString(searchboxCss, "ace_searchbox"); + +var html = ''.replace(/> +/g, ">"); + +var SearchBox = function(editor, range, showReplaceForm) { + var div = dom.createElement("div"); + div.innerHTML = html; + this.element = div.firstChild; + + this.setSession = this.setSession.bind(this); + + this.$init(); + this.setEditor(editor); +}; + +(function() { + this.setEditor = function(editor) { + editor.searchBox = this; + editor.renderer.scroller.appendChild(this.element); + this.editor = editor; + }; + + this.setSession = function(e) { + debugger + this.searchRange = null; + this.$syncOptions(true); + } + + this.$initElements = function(sb) { + this.searchBox = sb.querySelector(".ace_search_form"); + this.replaceBox = sb.querySelector(".ace_replace_form"); + this.searchOption = sb.querySelector("[action=searchInSelection]"); + this.replaceOption = sb.querySelector("[action=toggleReplace]"); + this.regExpOption = sb.querySelector("[action=toggleRegexpMode]"); + this.caseSensitiveOption = sb.querySelector("[action=toggleCaseSensitive]"); + this.wholeWordOption = sb.querySelector("[action=toggleWholeWords]"); + this.searchInput = this.searchBox.querySelector(".ace_search_field"); + this.replaceInput = this.replaceBox.querySelector(".ace_search_field"); + this.searchCounter = sb.querySelector(".ace_search_counter"); + }; + + this.$init = function() { + var sb = this.element; + + this.$initElements(sb); + + var _this = this; + event.addListener(sb, "mousedown", function(e) { + setTimeout(function(){ + _this.activeInput.focus(); + }, 0); + event.stopPropagation(e); + }); + event.addListener(sb, "click", function(e) { + var t = e.target || e.srcElement; + var action = t.getAttribute("action"); + if (action && _this[action]) + _this[action](); + else if (_this.$searchBarKb.commands[action]) + _this.$searchBarKb.commands[action].exec(_this); + event.stopPropagation(e); + }); + + event.addCommandKeyListener(sb, function(e, hashId, keyCode) { + var keyString = keyUtil.keyCodeToString(keyCode); + var command = _this.$searchBarKb.findKeyCommand(hashId, keyString); + if (command && command.exec) { + command.exec(_this); + event.stopEvent(e); + } + }); + + this.$onChange = lang.delayedCall(function() { + _this.find(false, false); + }); + + event.addListener(this.searchInput, "input", function() { + _this.$onChange.schedule(20); + }); + event.addListener(this.searchInput, "focus", function() { + _this.activeInput = _this.searchInput; + _this.searchInput.value && _this.highlight(); + }); + event.addListener(this.replaceInput, "focus", function() { + _this.activeInput = _this.replaceInput; + _this.searchInput.value && _this.highlight(); + }); + }; + this.$closeSearchBarKb = new HashHandler([{ + bindKey: "Esc", + name: "closeSearchBar", + exec: function(editor) { + editor.searchBox.hide(); + } + }]); + this.$searchBarKb = new HashHandler(); + this.$searchBarKb.bindKeys({ + "Ctrl-f|Command-f": function(sb) { + var isReplace = sb.isReplace = !sb.isReplace; + sb.replaceBox.style.display = isReplace ? "" : "none"; + sb.replaceOption.checked = false; + sb.$syncOptions(); + sb.searchInput.focus(); + }, + "Ctrl-H|Command-Option-F": function(sb) { + sb.replaceOption.checked = true; + sb.$syncOptions(); + sb.replaceInput.focus(); + }, + "Ctrl-G|Command-G": function(sb) { + sb.findNext(); + }, + "Ctrl-Shift-G|Command-Shift-G": function(sb) { + sb.findPrev(); + }, + "esc": function(sb) { + setTimeout(function() { sb.hide();}); + }, + "Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findNext(); + }, + "Shift-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findPrev(); + }, + "Alt-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replaceAll(); + sb.findAll(); + }, + "Tab": function(sb) { + (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus(); + } + }); + + this.$searchBarKb.addCommands([{ + name: "toggleRegexpMode", + bindKey: {win: "Alt-R|Alt-/", mac: "Ctrl-Alt-R|Ctrl-Alt-/"}, + exec: function(sb) { + sb.regExpOption.checked = !sb.regExpOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleCaseSensitive", + bindKey: {win: "Alt-C|Alt-I", mac: "Ctrl-Alt-R|Ctrl-Alt-I"}, + exec: function(sb) { + sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleWholeWords", + bindKey: {win: "Alt-B|Alt-W", mac: "Ctrl-Alt-B|Ctrl-Alt-W"}, + exec: function(sb) { + sb.wholeWordOption.checked = !sb.wholeWordOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleReplace", + exec: function(sb) { + sb.replaceOption.checked = !sb.replaceOption.checked; + sb.$syncOptions(); + } + }, { + name: "searchInSelection", + exec: function(sb) { + sb.searchOption.checked = !sb.searchRange; + sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange()); + sb.$syncOptions(); + } + }]); + + this.setSearchRange = function(range) { + this.searchRange = range; + if (range) { + this.searchRangeMarker = this.editor.session.addMarker(range, "ace_active-line"); + } else if (this.searchRangeMarker) { + this.editor.session.removeMarker(this.searchRangeMarker); + this.searchRangeMarker = null; + } + } + + this.$syncOptions = function(preventScroll) { + dom.setCssClass(this.replaceOption, "checked", this.searchRange); + dom.setCssClass(this.searchOption, "checked", this.searchOption.checked); + this.replaceOption.textContent = this.replaceOption.checked ? "-" : "+"; + dom.setCssClass(this.regExpOption, "checked", this.regExpOption.checked); + dom.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked); + dom.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked); + this.replaceBox.style.display = this.replaceOption.checked ? "" : "none"; + this.find(false, false, preventScroll); + }; + + this.highlight = function(re) { + this.editor.session.highlight(re || this.editor.$search.$options.re); + this.editor.renderer.updateBackMarkers() + }; + this.find = function(skipCurrent, backwards, preventScroll) { + var range = this.editor.find(this.searchInput.value, { + skipCurrent: skipCurrent, + backwards: backwards, + wrap: true, + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked, + preventScroll: preventScroll, + range: this.searchRange + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.updateCounter(); + }; + this.updateCounter = function() { + var editor = this.editor; + var regex = editor.$search.$options.re; + var all = 0; + var before = 0 + if (regex) { + var value = this.searchRange + ? editor.session.getTextRange(this.searchRange) + : editor.getValue(); + + var offset = editor.session.doc.positionToIndex(editor.selection.anchor); + if (this.searchRange) + offset -= editor.session.doc.positionToIndex(this.searchRange.start); + + var last = regex.lastIndex = 0; + var m; + while ((m = regex.exec(value))) { + all++; + last = m.index; + if (last <= offset) + before++; + if (all > MAX_COUNT) + break + if (!m[0]) { + regex.lastIndex = last += 1; + if (last >= value.length) + break; + } + } + } + this.searchCounter.textContent = before + " of " + (all > MAX_COUNT ? MAX_COUNT + "+" : all); + }; + this.findNext = function() { + this.find(true, false); + }; + this.findPrev = function() { + this.find(true, true); + }; + this.findAll = function(){ + var range = this.editor.findAll(this.searchInput.value, { + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.hide(); + }; + this.replace = function() { + if (!this.editor.getReadOnly()) + this.editor.replace(this.replaceInput.value); + }; + this.replaceAndFindNext = function() { + if (!this.editor.getReadOnly()) { + this.editor.replace(this.replaceInput.value); + this.findNext() + } + }; + this.replaceAll = function() { + if (!this.editor.getReadOnly()) + this.editor.replaceAll(this.replaceInput.value); + }; + + this.hide = function() { + this.active = false; + this.setSearchRange(null) + this.editor.off("changeSession", this.setSession); + + this.element.style.display = "none"; + this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb); + this.editor.focus(); + }; + this.show = function(value, isReplace) { + this.active = true; + this.editor.on("changeSession", this.setSession); + this.element.style.display = ""; + this.replaceOption.checked = isReplace; + + if (value) + this.searchInput.value = value; + + this.searchInput.focus(); + this.searchInput.select(); + + this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb); + + this.$syncOptions(true); + }; + + this.isFocused = function() { + var el = document.activeElement; + return el == this.searchInput || el == this.replaceInput; + } +}).call(SearchBox.prototype); + +exports.SearchBox = SearchBox; + +exports.Search = function(editor, isReplace) { + var sb = editor.searchBox || new SearchBox(editor); + sb.show(editor.session.getTextRange(), isReplace); +}; + +}); + (function() { + ace.require(["ace/ext/searchbox"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-settings_menu.js b/htdocs/includes/ace/ext-settings_menu.js new file mode 100644 index 00000000000..a00b28f88a1 --- /dev/null +++ b/htdocs/includes/ace/ext-settings_menu.js @@ -0,0 +1,663 @@ +ace.define("ace/ext/menu_tools/element_generator",["require","exports","module"], function(require, exports, module) { +'use strict'; +module.exports.createOption = function createOption (obj) { + var attribute; + var el = document.createElement('option'); + for(attribute in obj) { + if(obj.hasOwnProperty(attribute)) { + if(attribute === 'selected') { + el.setAttribute(attribute, obj[attribute]); + } else { + el[attribute] = obj[attribute]; + } + } + } + return el; +}; +module.exports.createCheckbox = function createCheckbox (id, checked, clss) { + var el = document.createElement('input'); + el.setAttribute('type', 'checkbox'); + el.setAttribute('id', id); + el.setAttribute('name', id); + el.setAttribute('value', checked); + el.setAttribute('class', clss); + if(checked) { + el.setAttribute('checked', 'checked'); + } + return el; +}; +module.exports.createInput = function createInput (id, value, clss) { + var el = document.createElement('input'); + el.setAttribute('type', 'text'); + el.setAttribute('id', id); + el.setAttribute('name', id); + el.setAttribute('value', value); + el.setAttribute('class', clss); + return el; +}; +module.exports.createLabel = function createLabel (text, labelFor) { + var el = document.createElement('label'); + el.setAttribute('for', labelFor); + el.textContent = text; + return el; +}; +module.exports.createSelection = function createSelection (id, values, clss) { + var el = document.createElement('select'); + el.setAttribute('id', id); + el.setAttribute('name', id); + el.setAttribute('class', clss); + values.forEach(function(item) { + el.appendChild(module.exports.createOption(item)); + }); + return el; +}; + +}); + +ace.define("ace/ext/modelist",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var modes = []; +function getModeForPath(path) { + var mode = modesByName.text; + var fileName = path.split(/[\/\\]/).pop(); + for (var i = 0; i < modes.length; i++) { + if (modes[i].supportsFile(fileName)) { + mode = modes[i]; + break; + } + } + return mode; +} + +var Mode = function(name, caption, extensions) { + this.name = name; + this.caption = caption; + this.mode = "ace/mode/" + name; + this.extensions = extensions; + var re; + if (/\^/.test(extensions)) { + re = extensions.replace(/\|(\^)?/g, function(a, b){ + return "$|" + (b ? "^" : "^.*\\."); + }) + "$"; + } else { + re = "^.*\\.(" + extensions + ")$"; + } + + this.extRe = new RegExp(re, "gi"); +}; + +Mode.prototype.supportsFile = function(filename) { + return filename.match(this.extRe); +}; +var supportedModes = { + ABAP: ["abap"], + ABC: ["abc"], + ActionScript:["as"], + ADA: ["ada|adb"], + Apache_Conf: ["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"], + AsciiDoc: ["asciidoc|adoc"], + Assembly_x86:["asm|a"], + AutoHotKey: ["ahk"], + BatchFile: ["bat|cmd"], + Bro: ["bro"], + C_Cpp: ["cpp|c|cc|cxx|h|hh|hpp|ino"], + C9Search: ["c9search_results"], + Cirru: ["cirru|cr"], + Clojure: ["clj|cljs"], + Cobol: ["CBL|COB"], + coffee: ["coffee|cf|cson|^Cakefile"], + ColdFusion: ["cfm"], + CSharp: ["cs"], + CSS: ["css"], + Curly: ["curly"], + D: ["d|di"], + Dart: ["dart"], + Diff: ["diff|patch"], + Dockerfile: ["^Dockerfile"], + Dot: ["dot"], + Drools: ["drl"], + Dummy: ["dummy"], + DummySyntax: ["dummy"], + Eiffel: ["e|ge"], + EJS: ["ejs"], + Elixir: ["ex|exs"], + Elm: ["elm"], + Erlang: ["erl|hrl"], + Forth: ["frt|fs|ldr|fth|4th"], + Fortran: ["f|f90"], + FTL: ["ftl"], + Gcode: ["gcode"], + Gherkin: ["feature"], + Gitignore: ["^.gitignore"], + Glsl: ["glsl|frag|vert"], + Gobstones: ["gbs"], + golang: ["go"], + GraphQLSchema: ["gql"], + Groovy: ["groovy"], + HAML: ["haml"], + Handlebars: ["hbs|handlebars|tpl|mustache"], + Haskell: ["hs"], + Haskell_Cabal: ["cabal"], + haXe: ["hx"], + Hjson: ["hjson"], + HTML: ["html|htm|xhtml"], + HTML_Elixir: ["eex|html.eex"], + HTML_Ruby: ["erb|rhtml|html.erb"], + INI: ["ini|conf|cfg|prefs"], + Io: ["io"], + Jack: ["jack"], + Jade: ["jade|pug"], + Java: ["java"], + JavaScript: ["js|jsm|jsx"], + JSON: ["json"], + JSONiq: ["jq"], + JSP: ["jsp"], + JSX: ["jsx"], + Julia: ["jl"], + Kotlin: ["kt|kts"], + LaTeX: ["tex|latex|ltx|bib"], + LESS: ["less"], + Liquid: ["liquid"], + Lisp: ["lisp"], + LiveScript: ["ls"], + LogiQL: ["logic|lql"], + LSL: ["lsl"], + Lua: ["lua"], + LuaPage: ["lp"], + Lucene: ["lucene"], + Makefile: ["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"], + Markdown: ["md|markdown"], + Mask: ["mask"], + MATLAB: ["matlab"], + Maze: ["mz"], + MEL: ["mel"], + MUSHCode: ["mc|mush"], + MySQL: ["mysql"], + Nix: ["nix"], + NSIS: ["nsi|nsh"], + ObjectiveC: ["m|mm"], + OCaml: ["ml|mli"], + Pascal: ["pas|p"], + Perl: ["pl|pm"], + pgSQL: ["pgsql"], + PHP: ["php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"], + Pig: ["pig"], + Powershell: ["ps1"], + Praat: ["praat|praatscript|psc|proc"], + Prolog: ["plg|prolog"], + Properties: ["properties"], + Protobuf: ["proto"], + Python: ["py"], + R: ["r"], + Razor: ["cshtml|asp"], + RDoc: ["Rd"], + RHTML: ["Rhtml"], + RST: ["rst"], + Ruby: ["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"], + Rust: ["rs"], + SASS: ["sass"], + SCAD: ["scad"], + Scala: ["scala"], + Scheme: ["scm|sm|rkt|oak|scheme"], + SCSS: ["scss"], + SH: ["sh|bash|^.bashrc"], + SJS: ["sjs"], + Smarty: ["smarty|tpl"], + snippets: ["snippets"], + Soy_Template:["soy"], + Space: ["space"], + SQL: ["sql"], + SQLServer: ["sqlserver"], + Stylus: ["styl|stylus"], + SVG: ["svg"], + Swift: ["swift"], + Tcl: ["tcl"], + Tex: ["tex"], + Text: ["txt"], + Textile: ["textile"], + Toml: ["toml"], + TSX: ["tsx"], + Twig: ["twig|swig"], + Typescript: ["ts|typescript|str"], + Vala: ["vala"], + VBScript: ["vbs|vb"], + Velocity: ["vm"], + Verilog: ["v|vh|sv|svh"], + VHDL: ["vhd|vhdl"], + Wollok: ["wlk|wpgm|wtest"], + XML: ["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml"], + XQuery: ["xq"], + YAML: ["yaml|yml"], + Django: ["html"] +}; + +var nameOverrides = { + ObjectiveC: "Objective-C", + CSharp: "C#", + golang: "Go", + C_Cpp: "C and C++", + coffee: "CoffeeScript", + HTML_Ruby: "HTML (Ruby)", + HTML_Elixir: "HTML (Elixir)", + FTL: "FreeMarker" +}; +var modesByName = {}; +for (var name in supportedModes) { + var data = supportedModes[name]; + var displayName = (nameOverrides[name] || name).replace(/_/g, " "); + var filename = name.toLowerCase(); + var mode = new Mode(filename, displayName, data[0]); + modesByName[filename] = mode; + modes.push(mode); +} + +module.exports = { + getModeForPath: getModeForPath, + modes: modes, + modesByName: modesByName +}; + +}); + +ace.define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"], function(require, exports, module) { +"use strict"; +require("ace/lib/fixoldbrowsers"); + +var themeData = [ + ["Chrome" ], + ["Clouds" ], + ["Crimson Editor" ], + ["Dawn" ], + ["Dreamweaver" ], + ["Eclipse" ], + ["GitHub" ], + ["IPlastic" ], + ["Solarized Light"], + ["TextMate" ], + ["Tomorrow" ], + ["XCode" ], + ["Kuroir"], + ["KatzenMilch"], + ["SQL Server" ,"sqlserver" , "light"], + ["Ambiance" ,"ambiance" , "dark"], + ["Chaos" ,"chaos" , "dark"], + ["Clouds Midnight" ,"clouds_midnight" , "dark"], + ["Cobalt" ,"cobalt" , "dark"], + ["Gruvbox" ,"gruvbox" , "dark"], + ["Green on Black" ,"gob" , "dark"], + ["idle Fingers" ,"idle_fingers" , "dark"], + ["krTheme" ,"kr_theme" , "dark"], + ["Merbivore" ,"merbivore" , "dark"], + ["Merbivore Soft" ,"merbivore_soft" , "dark"], + ["Mono Industrial" ,"mono_industrial" , "dark"], + ["Monokai" ,"monokai" , "dark"], + ["Pastel on dark" ,"pastel_on_dark" , "dark"], + ["Solarized Dark" ,"solarized_dark" , "dark"], + ["Terminal" ,"terminal" , "dark"], + ["Tomorrow Night" ,"tomorrow_night" , "dark"], + ["Tomorrow Night Blue" ,"tomorrow_night_blue" , "dark"], + ["Tomorrow Night Bright","tomorrow_night_bright" , "dark"], + ["Tomorrow Night 80s" ,"tomorrow_night_eighties" , "dark"], + ["Twilight" ,"twilight" , "dark"], + ["Vibrant Ink" ,"vibrant_ink" , "dark"] +]; + + +exports.themesByName = {}; +exports.themes = themeData.map(function(data) { + var name = data[1] || data[0].replace(/ /g, "_").toLowerCase(); + var theme = { + caption: data[0], + theme: "ace/theme/" + name, + isDark: data[2] == "dark", + name: name + }; + exports.themesByName[name] = theme; + return theme; +}); + +}); + +ace.define("ace/ext/menu_tools/add_editor_menu_options",["require","exports","module","ace/ext/modelist","ace/ext/themelist"], function(require, exports, module) { +'use strict'; +module.exports.addEditorMenuOptions = function addEditorMenuOptions (editor) { + var modelist = require('../modelist'); + var themelist = require('../themelist'); + editor.menuOptions = { + setNewLineMode: [{ + textContent: "unix", + value: "unix" + }, { + textContent: "windows", + value: "windows" + }, { + textContent: "auto", + value: "auto" + }], + setTheme: [], + setMode: [], + setKeyboardHandler: [{ + textContent: "ace", + value: "" + }, { + textContent: "vim", + value: "ace/keyboard/vim" + }, { + textContent: "emacs", + value: "ace/keyboard/emacs" + }, { + textContent: "textarea", + value: "ace/keyboard/textarea" + }, { + textContent: "sublime", + value: "ace/keyboard/sublime" + }] + }; + + editor.menuOptions.setTheme = themelist.themes.map(function(theme) { + return { + textContent: theme.caption, + value: theme.theme + }; + }); + + editor.menuOptions.setMode = modelist.modes.map(function(mode) { + return { + textContent: mode.name, + value: mode.mode + }; + }); +}; + + +}); + +ace.define("ace/ext/menu_tools/get_set_functions",["require","exports","module"], function(require, exports, module) { +'use strict'; +module.exports.getSetFunctions = function getSetFunctions (editor) { + var out = []; + var my = { + 'editor' : editor, + 'session' : editor.session, + 'renderer' : editor.renderer + }; + var opts = []; + var skip = [ + 'setOption', + 'setUndoManager', + 'setDocument', + 'setValue', + 'setBreakpoints', + 'setScrollTop', + 'setScrollLeft', + 'setSelectionStyle', + 'setWrapLimitRange' + ]; + ['renderer', 'session', 'editor'].forEach(function(esra) { + var esr = my[esra]; + var clss = esra; + for(var fn in esr) { + if(skip.indexOf(fn) === -1) { + if(/^set/.test(fn) && opts.indexOf(fn) === -1) { + opts.push(fn); + out.push({ + 'functionName' : fn, + 'parentObj' : esr, + 'parentName' : clss + }); + } + } + } + }); + return out; +}; + +}); + +ace.define("ace/ext/menu_tools/generate_settings_menu",["require","exports","module","ace/ext/menu_tools/element_generator","ace/ext/menu_tools/add_editor_menu_options","ace/ext/menu_tools/get_set_functions","ace/ace"], function(require, exports, module) { +'use strict'; +var egen = require('./element_generator'); +var addEditorMenuOptions = require('./add_editor_menu_options').addEditorMenuOptions; +var getSetFunctions = require('./get_set_functions').getSetFunctions; +module.exports.generateSettingsMenu = function generateSettingsMenu (editor) { + var elements = []; + function cleanupElementsList() { + elements.sort(function(a, b) { + var x = a.getAttribute('contains'); + var y = b.getAttribute('contains'); + return x.localeCompare(y); + }); + } + function wrapElements() { + var topmenu = document.createElement('div'); + topmenu.setAttribute('id', 'ace_settingsmenu'); + elements.forEach(function(element) { + topmenu.appendChild(element); + }); + + var el = topmenu.appendChild(document.createElement('div')); + var version = require("../../ace").version; + el.style.padding = "1em"; + el.textContent = "Ace version " + version; + + return topmenu; + } + function createNewEntry(obj, clss, item, val) { + var el; + var div = document.createElement('div'); + div.setAttribute('contains', item); + div.setAttribute('class', 'ace_optionsMenuEntry'); + div.setAttribute('style', 'clear: both;'); + + div.appendChild(egen.createLabel( + item.replace(/^set/, '').replace(/([A-Z])/g, ' $1').trim(), + item + )); + + if (Array.isArray(val)) { + el = egen.createSelection(item, val, clss); + el.addEventListener('change', function(e) { + try{ + editor.menuOptions[e.target.id].forEach(function(x) { + if(x.textContent !== e.target.textContent) { + delete x.selected; + } + }); + obj[e.target.id](e.target.value); + } catch (err) { + throw new Error(err); + } + }); + } else if(typeof val === 'boolean') { + el = egen.createCheckbox(item, val, clss); + el.addEventListener('change', function(e) { + try{ + obj[e.target.id](!!e.target.checked); + } catch (err) { + throw new Error(err); + } + }); + } else { + el = egen.createInput(item, val, clss); + el.addEventListener('change', function(e) { + try{ + if(e.target.value === 'true') { + obj[e.target.id](true); + } else if(e.target.value === 'false') { + obj[e.target.id](false); + } else { + obj[e.target.id](e.target.value); + } + } catch (err) { + throw new Error(err); + } + }); + } + el.style.cssText = 'float:right;'; + div.appendChild(el); + return div; + } + function makeDropdown(item, esr, clss, fn) { + var val = editor.menuOptions[item]; + var currentVal = esr[fn](); + if (typeof currentVal == 'object') + currentVal = currentVal.$id; + val.forEach(function(valuex) { + if (valuex.value === currentVal) + valuex.selected = 'selected'; + }); + return createNewEntry(esr, clss, item, val); + } + function handleSet(setObj) { + var item = setObj.functionName; + var esr = setObj.parentObj; + var clss = setObj.parentName; + var val; + var fn = item.replace(/^set/, 'get'); + if(editor.menuOptions[item] !== undefined) { + elements.push(makeDropdown(item, esr, clss, fn)); + } else if(typeof esr[fn] === 'function') { + try { + val = esr[fn](); + if(typeof val === 'object') { + val = val.$id; + } + elements.push( + createNewEntry(esr, clss, item, val) + ); + } catch (e) { + } + } + } + addEditorMenuOptions(editor); + getSetFunctions(editor).forEach(function(setObj) { + handleSet(setObj); + }); + cleanupElementsList(); + return wrapElements(); +}; + +}); + +ace.define("ace/ext/menu_tools/overlay_page",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +'use strict'; +var dom = require("../../lib/dom"); +var cssText = "#ace_settingsmenu, #kbshortcutmenu {\ +background-color: #F7F7F7;\ +color: black;\ +box-shadow: -5px 4px 5px rgba(126, 126, 126, 0.55);\ +padding: 1em 0.5em 2em 1em;\ +overflow: auto;\ +position: absolute;\ +margin: 0;\ +bottom: 0;\ +right: 0;\ +top: 0;\ +z-index: 9991;\ +cursor: default;\ +}\ +.ace_dark #ace_settingsmenu, .ace_dark #kbshortcutmenu {\ +box-shadow: -20px 10px 25px rgba(126, 126, 126, 0.25);\ +background-color: rgba(255, 255, 255, 0.6);\ +color: black;\ +}\ +.ace_optionsMenuEntry:hover {\ +background-color: rgba(100, 100, 100, 0.1);\ +-webkit-transition: all 0.5s;\ +transition: all 0.3s\ +}\ +.ace_closeButton {\ +background: rgba(245, 146, 146, 0.5);\ +border: 1px solid #F48A8A;\ +border-radius: 50%;\ +padding: 7px;\ +position: absolute;\ +right: -8px;\ +top: -8px;\ +z-index: 1000;\ +}\ +.ace_closeButton{\ +background: rgba(245, 146, 146, 0.9);\ +}\ +.ace_optionsMenuKey {\ +color: darkslateblue;\ +font-weight: bold;\ +}\ +.ace_optionsMenuCommand {\ +color: darkcyan;\ +font-weight: normal;\ +}"; +dom.importCssString(cssText); +module.exports.overlayPage = function overlayPage(editor, contentElement, top, right, bottom, left) { + top = top ? 'top: ' + top + ';' : ''; + bottom = bottom ? 'bottom: ' + bottom + ';' : ''; + right = right ? 'right: ' + right + ';' : ''; + left = left ? 'left: ' + left + ';' : ''; + + var closer = document.createElement('div'); + var contentContainer = document.createElement('div'); + + function documentEscListener(e) { + if (e.keyCode === 27) { + closer.click(); + } + } + + closer.style.cssText = 'margin: 0; padding: 0; ' + + 'position: fixed; top:0; bottom:0; left:0; right:0;' + + 'z-index: 9990; ' + + 'background-color: rgba(0, 0, 0, 0.3);'; + closer.addEventListener('click', function() { + document.removeEventListener('keydown', documentEscListener); + closer.parentNode.removeChild(closer); + editor.focus(); + closer = null; + }); + document.addEventListener('keydown', documentEscListener); + + contentContainer.style.cssText = top + right + bottom + left; + contentContainer.addEventListener('click', function(e) { + e.stopPropagation(); + }); + + var wrapper = dom.createElement("div"); + wrapper.style.position = "relative"; + + var closeButton = dom.createElement("div"); + closeButton.className = "ace_closeButton"; + closeButton.addEventListener('click', function() { + closer.click(); + }); + + wrapper.appendChild(closeButton); + contentContainer.appendChild(wrapper); + + contentContainer.appendChild(contentElement); + closer.appendChild(contentContainer); + document.body.appendChild(closer); + editor.blur(); +}; + +}); + +ace.define("ace/ext/settings_menu",["require","exports","module","ace/ext/menu_tools/generate_settings_menu","ace/ext/menu_tools/overlay_page","ace/editor"], function(require, exports, module) { +"use strict"; +var generateSettingsMenu = require('./menu_tools/generate_settings_menu').generateSettingsMenu; +var overlayPage = require('./menu_tools/overlay_page').overlayPage; +function showSettingsMenu(editor) { + var sm = document.getElementById('ace_settingsmenu'); + if (!sm) + overlayPage(editor, generateSettingsMenu(editor), '0', '0', '0'); +} +module.exports.init = function(editor) { + var Editor = require("ace/editor").Editor; + Editor.prototype.showSettingsMenu = function() { + showSettingsMenu(this); + }; +}; +}); + (function() { + ace.require(["ace/ext/settings_menu"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-spellcheck.js b/htdocs/includes/ace/ext-spellcheck.js new file mode 100644 index 00000000000..8d3b5f6cb11 --- /dev/null +++ b/htdocs/includes/ace/ext-spellcheck.js @@ -0,0 +1,71 @@ +ace.define("ace/ext/spellcheck",["require","exports","module","ace/lib/event","ace/editor","ace/config"], function(require, exports, module) { +"use strict"; +var event = require("../lib/event"); + +exports.contextMenuHandler = function(e){ + var host = e.target; + var text = host.textInput.getElement(); + if (!host.selection.isEmpty()) + return; + var c = host.getCursorPosition(); + var r = host.session.getWordRange(c.row, c.column); + var w = host.session.getTextRange(r); + + host.session.tokenRe.lastIndex = 0; + if (!host.session.tokenRe.test(w)) + return; + var PLACEHOLDER = "\x01\x01"; + var value = w + " " + PLACEHOLDER; + text.value = value; + text.setSelectionRange(w.length, w.length + 1); + text.setSelectionRange(0, 0); + text.setSelectionRange(0, w.length); + + var afterKeydown = false; + event.addListener(text, "keydown", function onKeydown() { + event.removeListener(text, "keydown", onKeydown); + afterKeydown = true; + }); + + host.textInput.setInputHandler(function(newVal) { + console.log(newVal , value, text.selectionStart, text.selectionEnd) + if (newVal == value) + return ''; + if (newVal.lastIndexOf(value, 0) === 0) + return newVal.slice(value.length); + if (newVal.substr(text.selectionEnd) == value) + return newVal.slice(0, -value.length); + if (newVal.slice(-2) == PLACEHOLDER) { + var val = newVal.slice(0, -2); + if (val.slice(-1) == " ") { + if (afterKeydown) + return val.substring(0, text.selectionEnd); + val = val.slice(0, -1); + host.session.replace(r, val); + return ""; + } + } + + return newVal; + }); +}; +var Editor = require("../editor").Editor; +require("../config").defineOptions(Editor.prototype, "editor", { + spellcheck: { + set: function(val) { + var text = this.textInput.getElement(); + text.spellcheck = !!val; + if (!val) + this.removeListener("nativecontextmenu", exports.contextMenuHandler); + else + this.on("nativecontextmenu", exports.contextMenuHandler); + }, + value: true + } +}); + +}); + (function() { + ace.require(["ace/ext/spellcheck"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-split.js b/htdocs/includes/ace/ext-split.js new file mode 100644 index 00000000000..29dd20efbea --- /dev/null +++ b/htdocs/includes/ace/ext-split.js @@ -0,0 +1,246 @@ +ace.define("ace/split",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/editor","ace/virtual_renderer","ace/edit_session"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +var Editor = require("./editor").Editor; +var Renderer = require("./virtual_renderer").VirtualRenderer; +var EditSession = require("./edit_session").EditSession; + + +var Split = function(container, theme, splits) { + this.BELOW = 1; + this.BESIDE = 0; + + this.$container = container; + this.$theme = theme; + this.$splits = 0; + this.$editorCSS = ""; + this.$editors = []; + this.$orientation = this.BESIDE; + + this.setSplits(splits || 1); + this.$cEditor = this.$editors[0]; + + + this.on("focus", function(editor) { + this.$cEditor = editor; + }.bind(this)); +}; + +(function(){ + + oop.implement(this, EventEmitter); + + this.$createEditor = function() { + var el = document.createElement("div"); + el.className = this.$editorCSS; + el.style.cssText = "position: absolute; top:0px; bottom:0px"; + this.$container.appendChild(el); + var editor = new Editor(new Renderer(el, this.$theme)); + + editor.on("focus", function() { + this._emit("focus", editor); + }.bind(this)); + + this.$editors.push(editor); + editor.setFontSize(this.$fontSize); + return editor; + }; + + this.setSplits = function(splits) { + var editor; + if (splits < 1) { + throw "The number of splits have to be > 0!"; + } + + if (splits == this.$splits) { + return; + } else if (splits > this.$splits) { + while (this.$splits < this.$editors.length && this.$splits < splits) { + editor = this.$editors[this.$splits]; + this.$container.appendChild(editor.container); + editor.setFontSize(this.$fontSize); + this.$splits ++; + } + while (this.$splits < splits) { + this.$createEditor(); + this.$splits ++; + } + } else { + while (this.$splits > splits) { + editor = this.$editors[this.$splits - 1]; + this.$container.removeChild(editor.container); + this.$splits --; + } + } + this.resize(); + }; + this.getSplits = function() { + return this.$splits; + }; + this.getEditor = function(idx) { + return this.$editors[idx]; + }; + this.getCurrentEditor = function() { + return this.$cEditor; + }; + this.focus = function() { + this.$cEditor.focus(); + }; + this.blur = function() { + this.$cEditor.blur(); + }; + this.setTheme = function(theme) { + this.$editors.forEach(function(editor) { + editor.setTheme(theme); + }); + }; + this.setKeyboardHandler = function(keybinding) { + this.$editors.forEach(function(editor) { + editor.setKeyboardHandler(keybinding); + }); + }; + this.forEach = function(callback, scope) { + this.$editors.forEach(callback, scope); + }; + + + this.$fontSize = ""; + this.setFontSize = function(size) { + this.$fontSize = size; + this.forEach(function(editor) { + editor.setFontSize(size); + }); + }; + + this.$cloneSession = function(session) { + var s = new EditSession(session.getDocument(), session.getMode()); + + var undoManager = session.getUndoManager(); + if (undoManager) { + var undoManagerProxy = new UndoManagerProxy(undoManager, s); + s.setUndoManager(undoManagerProxy); + } + s.$informUndoManager = lang.delayedCall(function() { s.$deltas = []; }); + s.setTabSize(session.getTabSize()); + s.setUseSoftTabs(session.getUseSoftTabs()); + s.setOverwrite(session.getOverwrite()); + s.setBreakpoints(session.getBreakpoints()); + s.setUseWrapMode(session.getUseWrapMode()); + s.setUseWorker(session.getUseWorker()); + s.setWrapLimitRange(session.$wrapLimitRange.min, + session.$wrapLimitRange.max); + s.$foldData = session.$cloneFoldData(); + + return s; + }; + this.setSession = function(session, idx) { + var editor; + if (idx == null) { + editor = this.$cEditor; + } else { + editor = this.$editors[idx]; + } + var isUsed = this.$editors.some(function(editor) { + return editor.session === session; + }); + + if (isUsed) { + session = this.$cloneSession(session); + } + editor.setSession(session); + return session; + }; + this.getOrientation = function() { + return this.$orientation; + }; + this.setOrientation = function(orientation) { + if (this.$orientation == orientation) { + return; + } + this.$orientation = orientation; + this.resize(); + }; + this.resize = function() { + var width = this.$container.clientWidth; + var height = this.$container.clientHeight; + var editor; + + if (this.$orientation == this.BESIDE) { + var editorWidth = width / this.$splits; + for (var i = 0; i < this.$splits; i++) { + editor = this.$editors[i]; + editor.container.style.width = editorWidth + "px"; + editor.container.style.top = "0px"; + editor.container.style.left = i * editorWidth + "px"; + editor.container.style.height = height + "px"; + editor.resize(); + } + } else { + var editorHeight = height / this.$splits; + for (var i = 0; i < this.$splits; i++) { + editor = this.$editors[i]; + editor.container.style.width = width + "px"; + editor.container.style.top = i * editorHeight + "px"; + editor.container.style.left = "0px"; + editor.container.style.height = editorHeight + "px"; + editor.resize(); + } + } + }; + +}).call(Split.prototype); + + +function UndoManagerProxy(undoManager, session) { + this.$u = undoManager; + this.$doc = session; +} + +(function() { + this.execute = function(options) { + this.$u.execute(options); + }; + + this.undo = function() { + var selectionRange = this.$u.undo(true); + if (selectionRange) { + this.$doc.selection.setSelectionRange(selectionRange); + } + }; + + this.redo = function() { + var selectionRange = this.$u.redo(true); + if (selectionRange) { + this.$doc.selection.setSelectionRange(selectionRange); + } + }; + + this.reset = function() { + this.$u.reset(); + }; + + this.hasUndo = function() { + return this.$u.hasUndo(); + }; + + this.hasRedo = function() { + return this.$u.hasRedo(); + }; +}).call(UndoManagerProxy.prototype); + +exports.Split = Split; +}); + +ace.define("ace/ext/split",["require","exports","module","ace/split"], function(require, exports, module) { +"use strict"; +module.exports = require("../split"); + +}); + (function() { + ace.require(["ace/ext/split"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-static_highlight.js b/htdocs/includes/ace/ext-static_highlight.js new file mode 100644 index 00000000000..a875f9d7a01 --- /dev/null +++ b/htdocs/includes/ace/ext-static_highlight.js @@ -0,0 +1,161 @@ +ace.define("ace/ext/static_highlight",["require","exports","module","ace/edit_session","ace/layer/text","ace/config","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var EditSession = require("../edit_session").EditSession; +var TextLayer = require("../layer/text").Text; +var baseStyles = ".ace_static_highlight {\ +font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', 'Droid Sans Mono', monospace;\ +font-size: 12px;\ +white-space: pre-wrap\ +}\ +.ace_static_highlight .ace_gutter {\ +width: 2em;\ +text-align: right;\ +padding: 0 3px 0 0;\ +margin-right: 3px;\ +}\ +.ace_static_highlight.ace_show_gutter .ace_line {\ +padding-left: 2.6em;\ +}\ +.ace_static_highlight .ace_line { position: relative; }\ +.ace_static_highlight .ace_gutter-cell {\ +-moz-user-select: -moz-none;\ +-khtml-user-select: none;\ +-webkit-user-select: none;\ +user-select: none;\ +top: 0;\ +bottom: 0;\ +left: 0;\ +position: absolute;\ +}\ +.ace_static_highlight .ace_gutter-cell:before {\ +content: counter(ace_line, decimal);\ +counter-increment: ace_line;\ +}\ +.ace_static_highlight {\ +counter-reset: ace_line;\ +}\ +"; +var config = require("../config"); +var dom = require("../lib/dom"); + +var SimpleTextLayer = function() { + this.config = {}; +}; +SimpleTextLayer.prototype = TextLayer.prototype; + +var highlight = function(el, opts, callback) { + var m = el.className.match(/lang-(\w+)/); + var mode = opts.mode || m && ("ace/mode/" + m[1]); + if (!mode) + return false; + var theme = opts.theme || "ace/theme/textmate"; + + var data = ""; + var nodes = []; + + if (el.firstElementChild) { + var textLen = 0; + for (var i = 0; i < el.childNodes.length; i++) { + var ch = el.childNodes[i]; + if (ch.nodeType == 3) { + textLen += ch.data.length; + data += ch.data; + } else { + nodes.push(textLen, ch); + } + } + } else { + data = dom.getInnerText(el); + if (opts.trim) + data = data.trim(); + } + + highlight.render(data, mode, theme, opts.firstLineNumber, !opts.showGutter, function (highlighted) { + dom.importCssString(highlighted.css, "ace_highlight"); + el.innerHTML = highlighted.html; + var container = el.firstChild.firstChild; + for (var i = 0; i < nodes.length; i += 2) { + var pos = highlighted.session.doc.indexToPosition(nodes[i]); + var node = nodes[i + 1]; + var lineEl = container.children[pos.row]; + lineEl && lineEl.appendChild(node); + } + callback && callback(); + }); +}; +highlight.render = function(input, mode, theme, lineStart, disableGutter, callback) { + var waiting = 1; + var modeCache = EditSession.prototype.$modes; + if (typeof theme == "string") { + waiting++; + config.loadModule(['theme', theme], function(m) { + theme = m; + --waiting || done(); + }); + } + var modeOptions; + if (mode && typeof mode === "object" && !mode.getTokenizer) { + modeOptions = mode; + mode = modeOptions.path; + } + if (typeof mode == "string") { + waiting++; + config.loadModule(['mode', mode], function(m) { + if (!modeCache[mode] || modeOptions) + modeCache[mode] = new m.Mode(modeOptions); + mode = modeCache[mode]; + --waiting || done(); + }); + } + function done() { + var result = highlight.renderSync(input, mode, theme, lineStart, disableGutter); + return callback ? callback(result) : result; + } + return --waiting || done(); +}; +highlight.renderSync = function(input, mode, theme, lineStart, disableGutter) { + lineStart = parseInt(lineStart || 1, 10); + + var session = new EditSession(""); + session.setUseWorker(false); + session.setMode(mode); + + var textLayer = new SimpleTextLayer(); + textLayer.setSession(session); + + session.setValue(input); + + var stringBuilder = []; + var length = session.getLength(); + + for(var ix = 0; ix < length; ix++) { + stringBuilder.push("
    "); + if (!disableGutter) + stringBuilder.push("" + /*(ix + lineStart) + */ ""); + textLayer.$renderLine(stringBuilder, ix, true, false); + stringBuilder.push("\n
    "); + } + var html = "
    " + + "
    " + + stringBuilder.join("") + + "
    " + + "
    "; + + textLayer.destroy(); + + return { + css: baseStyles + theme.cssText, + html: html, + session: session + }; +}; + +module.exports = highlight; +module.exports.highlight = highlight; +}); + (function() { + ace.require(["ace/ext/static_highlight"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-statusbar.js b/htdocs/includes/ace/ext-statusbar.js new file mode 100644 index 00000000000..0c46b3812e3 --- /dev/null +++ b/htdocs/includes/ace/ext-statusbar.js @@ -0,0 +1,53 @@ +ace.define("ace/ext/statusbar",["require","exports","module","ace/lib/dom","ace/lib/lang"], function(require, exports, module) { +"use strict"; +var dom = require("ace/lib/dom"); +var lang = require("ace/lib/lang"); + +var StatusBar = function(editor, parentNode) { + this.element = dom.createElement("div"); + this.element.className = "ace_status-indicator"; + this.element.style.cssText = "display: inline-block;"; + parentNode.appendChild(this.element); + + var statusUpdate = lang.delayedCall(function(){ + this.updateStatus(editor) + }.bind(this)).schedule.bind(null, 100); + + editor.on("changeStatus", statusUpdate); + editor.on("changeSelection", statusUpdate); + editor.on("keyboardActivity", statusUpdate); +}; + +(function(){ + this.updateStatus = function(editor) { + var status = []; + function add(str, separator) { + str && status.push(str, separator || "|"); + } + + add(editor.keyBinding.getStatusText(editor)); + if (editor.commands.recording) + add("REC"); + + var sel = editor.selection; + var c = sel.lead; + + if (!sel.isEmpty()) { + var r = editor.getSelectionRange(); + add("(" + (r.end.row - r.start.row) + ":" +(r.end.column - r.start.column) + ")", " "); + } + add(c.row + ":" + c.column, " "); + if (sel.rangeCount) + add("[" + sel.rangeCount + "]", " "); + status.pop(); + this.element.textContent = status.join(""); + }; +}).call(StatusBar.prototype); + +exports.StatusBar = StatusBar; + +}); + (function() { + ace.require(["ace/ext/statusbar"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-textarea.js b/htdocs/includes/ace/ext-textarea.js new file mode 100644 index 00000000000..f3bc70afda1 --- /dev/null +++ b/htdocs/includes/ace/ext-textarea.js @@ -0,0 +1,560 @@ +ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_gutter {\ +background: #f0f0f0;\ +color: #333;\ +}\ +.ace-tm .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-tm .ace_fold {\ +background-color: #6B72E6;\ +}\ +.ace-tm {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-tm .ace_cursor {\ +color: black;\ +}\ +.ace-tm .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-tm .ace_storage,\ +.ace-tm .ace_keyword {\ +color: blue;\ +}\ +.ace-tm .ace_constant {\ +color: rgb(197, 6, 11);\ +}\ +.ace-tm .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-tm .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-tm .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_invalid {\ +background-color: rgba(255, 0, 0, 0.1);\ +color: red;\ +}\ +.ace-tm .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-tm .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_support.ace_type,\ +.ace-tm .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-tm .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-tm .ace_string {\ +color: rgb(3, 106, 7);\ +}\ +.ace-tm .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-tm .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-tm .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-tm .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-tm .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-tm .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-tm .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-tm .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-tm .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-tm .ace_meta.ace_tag {\ +color:rgb(0, 22, 142);\ +}\ +.ace-tm .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-tm .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-tm.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-tm .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-tm .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-tm .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-tm .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-tm .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); + +ace.define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace","ace/theme/textmate"], function(require, exports, module) { +"use strict"; + +var event = require("../lib/event"); +var UA = require("../lib/useragent"); +var net = require("../lib/net"); +var ace = require("../ace"); + +require("../theme/textmate"); + +module.exports = exports = ace; +var getCSSProperty = function(element, container, property) { + var ret = element.style[property]; + + if (!ret) { + if (window.getComputedStyle) { + ret = window.getComputedStyle(element, '').getPropertyValue(property); + } else { + ret = element.currentStyle[property]; + } + } + + if (!ret || ret == 'auto' || ret == 'intrinsic') { + ret = container.style[property]; + } + return ret; +}; + +function applyStyles(elm, styles) { + for (var style in styles) { + elm.style[style] = styles[style]; + } +} + +function setupContainer(element, getValue) { + if (element.type != 'textarea') { + throw new Error("Textarea required!"); + } + + var parentNode = element.parentNode; + var container = document.createElement('div'); + var resizeEvent = function() { + var style = 'position:relative;'; + [ + 'margin-top', 'margin-left', 'margin-right', 'margin-bottom' + ].forEach(function(item) { + style += item + ':' + + getCSSProperty(element, container, item) + ';'; + }); + var width = getCSSProperty(element, container, 'width') || (element.clientWidth + "px"); + var height = getCSSProperty(element, container, 'height') || (element.clientHeight + "px"); + style += 'height:' + height + ';width:' + width + ';'; + style += 'display:inline-block;'; + container.setAttribute('style', style); + }; + event.addListener(window, 'resize', resizeEvent); + resizeEvent(); + parentNode.insertBefore(container, element.nextSibling); + while (parentNode !== document) { + if (parentNode.tagName.toUpperCase() === 'FORM') { + var oldSumit = parentNode.onsubmit; + parentNode.onsubmit = function(evt) { + element.value = getValue(); + if (oldSumit) { + oldSumit.call(this, evt); + } + }; + break; + } + parentNode = parentNode.parentNode; + } + return container; +} + +exports.transformTextarea = function(element, options) { + var session; + var container = setupContainer(element, function() { + return session.getValue(); + }); + element.style.display = 'none'; + container.style.background = 'white'; + var editorDiv = document.createElement("div"); + applyStyles(editorDiv, { + top: "0px", + left: "0px", + right: "0px", + bottom: "0px", + border: "1px solid gray", + position: "absolute" + }); + container.appendChild(editorDiv); + + var settingOpener = document.createElement("div"); + applyStyles(settingOpener, { + position: "absolute", + right: "0px", + bottom: "0px", + background: "red", + cursor: "nw-resize", + borderStyle: "solid", + borderWidth: "9px 8px 10px 9px", + width: "2px", + borderColor: "lightblue gray gray lightblue", + zIndex: 101 + }); + + var settingDiv = document.createElement("div"); + var settingDivStyles = { + top: "0px", + left: "20%", + right: "0px", + bottom: "0px", + position: "absolute", + padding: "5px", + zIndex: 100, + color: "white", + display: "none", + overflow: "auto", + fontSize: "14px", + boxShadow: "-5px 2px 3px gray" + }; + if (!UA.isOldIE) { + settingDivStyles.backgroundColor = "rgba(0, 0, 0, 0.6)"; + } else { + settingDivStyles.backgroundColor = "#333"; + } + + applyStyles(settingDiv, settingDivStyles); + container.appendChild(settingDiv); + + options = options || exports.defaultOptions; + var editor = ace.edit(editorDiv); + session = editor.getSession(); + + session.setValue(element.value || element.innerHTML); + editor.focus(); + container.appendChild(settingOpener); + setupApi(editor, editorDiv, settingDiv, ace, options, load); + setupSettingPanel(settingDiv, settingOpener, editor); + + var state = ""; + event.addListener(settingOpener, "mousemove", function(e) { + var rect = this.getBoundingClientRect(); + var x = e.clientX - rect.left, y = e.clientY - rect.top; + if (x + y < (rect.width + rect.height)/2) { + this.style.cursor = "pointer"; + state = "toggle"; + } else { + state = "resize"; + this.style.cursor = "nw-resize"; + } + }); + + event.addListener(settingOpener, "mousedown", function(e) { + if (state == "toggle") { + editor.setDisplaySettings(); + return; + } + container.style.zIndex = 100000; + var rect = container.getBoundingClientRect(); + var startX = rect.width + rect.left - e.clientX; + var startY = rect.height + rect.top - e.clientY; + event.capture(settingOpener, function(e) { + container.style.width = e.clientX - rect.left + startX + "px"; + container.style.height = e.clientY - rect.top + startY + "px"; + editor.resize(); + }, function() {}); + }); + + return editor; +}; + +function load(url, module, callback) { + net.loadScript(url, function() { + require([module], callback); + }); +} + +function setupApi(editor, editorDiv, settingDiv, ace, options, loader) { + var session = editor.getSession(); + var renderer = editor.renderer; + loader = loader || load; + + function toBool(value) { + return value === "true" || value == true; + } + + editor.setDisplaySettings = function(display) { + if (display == null) + display = settingDiv.style.display == "none"; + if (display) { + settingDiv.style.display = "block"; + settingDiv.hideButton.focus(); + editor.on("focus", function onFocus() { + editor.removeListener("focus", onFocus); + settingDiv.style.display = "none"; + }); + } else { + editor.focus(); + } + }; + + editor.$setOption = editor.setOption; + editor.$getOption = editor.getOption; + editor.setOption = function(key, value) { + switch (key) { + case "mode": + editor.$setOption("mode", "ace/mode/" + value) + break; + case "theme": + editor.$setOption("theme", "ace/theme/" + value) + break; + case "keybindings": + switch (value) { + case "vim": + editor.setKeyboardHandler("ace/keyboard/vim"); + break; + case "emacs": + editor.setKeyboardHandler("ace/keyboard/emacs"); + break; + default: + editor.setKeyboardHandler(null); + } + break; + + case "softWrap": + case "fontSize": + editor.$setOption(key, value); + break; + + default: + editor.$setOption(key, toBool(value)); + } + }; + + editor.getOption = function(key) { + switch (key) { + case "mode": + return editor.$getOption("mode").substr("ace/mode/".length) + break; + + case "theme": + return editor.$getOption("theme").substr("ace/theme/".length) + break; + + case "keybindings": + var value = editor.getKeyboardHandler() + switch (value && value.$id) { + case "ace/keyboard/vim": + return "vim"; + case "ace/keyboard/emacs": + return "emacs"; + default: + return "ace"; + } + break; + + default: + return editor.$getOption(key); + } + }; + + editor.setOptions(options); + return editor; +} + +function setupSettingPanel(settingDiv, settingOpener, editor) { + var BOOL = null; + + var desc = { + mode: "Mode:", + wrap: "Soft Wrap:", + theme: "Theme:", + fontSize: "Font Size:", + showGutter: "Display Gutter:", + keybindings: "Keyboard", + showPrintMargin: "Show Print Margin:", + useSoftTabs: "Use Soft Tabs:", + showInvisibles: "Show Invisibles" + }; + + var optionValues = { + mode: { + text: "Plain", + javascript: "JavaScript", + xml: "XML", + html: "HTML", + css: "CSS", + scss: "SCSS", + python: "Python", + php: "PHP", + java: "Java", + ruby: "Ruby", + c_cpp: "C/C++", + coffee: "CoffeeScript", + json: "json", + perl: "Perl", + clojure: "Clojure", + ocaml: "OCaml", + csharp: "C#", + haxe: "haXe", + svg: "SVG", + textile: "Textile", + groovy: "Groovy", + liquid: "Liquid", + Scala: "Scala" + }, + theme: { + clouds: "Clouds", + clouds_midnight: "Clouds Midnight", + cobalt: "Cobalt", + crimson_editor: "Crimson Editor", + dawn: "Dawn", + gob: "Green on Black", + eclipse: "Eclipse", + idle_fingers: "Idle Fingers", + kr_theme: "Kr Theme", + merbivore: "Merbivore", + merbivore_soft: "Merbivore Soft", + mono_industrial: "Mono Industrial", + monokai: "Monokai", + pastel_on_dark: "Pastel On Dark", + solarized_dark: "Solarized Dark", + solarized_light: "Solarized Light", + textmate: "Textmate", + twilight: "Twilight", + vibrant_ink: "Vibrant Ink" + }, + showGutter: BOOL, + fontSize: { + "10px": "10px", + "11px": "11px", + "12px": "12px", + "14px": "14px", + "16px": "16px" + }, + wrap: { + off: "Off", + 40: "40", + 80: "80", + free: "Free" + }, + keybindings: { + ace: "ace", + vim: "vim", + emacs: "emacs" + }, + showPrintMargin: BOOL, + useSoftTabs: BOOL, + showInvisibles: BOOL + }; + + var table = []; + table.push("
    "); + + function renderOption(builder, option, obj, cValue) { + if (!obj) { + builder.push( + "" + ); + return; + } + builder.push(""); + } + + for (var option in exports.defaultOptions) { + table.push(""); + table.push(""); + } + table.push("
    SettingValue
    ", desc[option], ""); + renderOption(table, option, optionValues[option], editor.getOption(option)); + table.push("
    "); + settingDiv.innerHTML = table.join(""); + + var onChange = function(e) { + var select = e.currentTarget; + editor.setOption(select.title, select.value); + }; + var onClick = function(e) { + var cb = e.currentTarget; + editor.setOption(cb.title, cb.checked); + }; + var selects = settingDiv.getElementsByTagName("select"); + for (var i = 0; i < selects.length; i++) + selects[i].onchange = onChange; + var cbs = settingDiv.getElementsByTagName("input"); + for (var i = 0; i < cbs.length; i++) + cbs[i].onclick = onClick; + + + var button = document.createElement("input"); + button.type = "button"; + button.value = "Hide"; + event.addListener(button, "click", function() { + editor.setDisplaySettings(false); + }); + settingDiv.appendChild(button); + settingDiv.hideButton = button; +} +exports.defaultOptions = { + mode: "javascript", + theme: "textmate", + wrap: "off", + fontSize: "12px", + showGutter: "false", + keybindings: "ace", + showPrintMargin: "false", + useSoftTabs: "true", + showInvisibles: "false" +}; + +}); + (function() { + ace.require(["ace/ext/textarea"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-themelist.js b/htdocs/includes/ace/ext-themelist.js new file mode 100644 index 00000000000..53225ada739 --- /dev/null +++ b/htdocs/includes/ace/ext-themelist.js @@ -0,0 +1,62 @@ +ace.define("ace/ext/themelist",["require","exports","module","ace/lib/fixoldbrowsers"], function(require, exports, module) { +"use strict"; +require("ace/lib/fixoldbrowsers"); + +var themeData = [ + ["Chrome" ], + ["Clouds" ], + ["Crimson Editor" ], + ["Dawn" ], + ["Dreamweaver" ], + ["Eclipse" ], + ["GitHub" ], + ["IPlastic" ], + ["Solarized Light"], + ["TextMate" ], + ["Tomorrow" ], + ["XCode" ], + ["Kuroir"], + ["KatzenMilch"], + ["SQL Server" ,"sqlserver" , "light"], + ["Ambiance" ,"ambiance" , "dark"], + ["Chaos" ,"chaos" , "dark"], + ["Clouds Midnight" ,"clouds_midnight" , "dark"], + ["Cobalt" ,"cobalt" , "dark"], + ["Gruvbox" ,"gruvbox" , "dark"], + ["Green on Black" ,"gob" , "dark"], + ["idle Fingers" ,"idle_fingers" , "dark"], + ["krTheme" ,"kr_theme" , "dark"], + ["Merbivore" ,"merbivore" , "dark"], + ["Merbivore Soft" ,"merbivore_soft" , "dark"], + ["Mono Industrial" ,"mono_industrial" , "dark"], + ["Monokai" ,"monokai" , "dark"], + ["Pastel on dark" ,"pastel_on_dark" , "dark"], + ["Solarized Dark" ,"solarized_dark" , "dark"], + ["Terminal" ,"terminal" , "dark"], + ["Tomorrow Night" ,"tomorrow_night" , "dark"], + ["Tomorrow Night Blue" ,"tomorrow_night_blue" , "dark"], + ["Tomorrow Night Bright","tomorrow_night_bright" , "dark"], + ["Tomorrow Night 80s" ,"tomorrow_night_eighties" , "dark"], + ["Twilight" ,"twilight" , "dark"], + ["Vibrant Ink" ,"vibrant_ink" , "dark"] +]; + + +exports.themesByName = {}; +exports.themes = themeData.map(function(data) { + var name = data[1] || data[0].replace(/ /g, "_").toLowerCase(); + var theme = { + caption: data[0], + theme: "ace/theme/" + name, + isDark: data[2] == "dark", + name: name + }; + exports.themesByName[name] = theme; + return theme; +}); + +}); + (function() { + ace.require(["ace/ext/themelist"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/ext-whitespace.js b/htdocs/includes/ace/ext-whitespace.js new file mode 100644 index 00000000000..8f4af96cf9a --- /dev/null +++ b/htdocs/includes/ace/ext-whitespace.js @@ -0,0 +1,206 @@ +ace.define("ace/ext/whitespace",["require","exports","module","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); +exports.$detectIndentation = function(lines, fallback) { + var stats = []; + var changes = []; + var tabIndents = 0; + var prevSpaces = 0; + var max = Math.min(lines.length, 1000); + for (var i = 0; i < max; i++) { + var line = lines[i]; + if (!/^\s*[^*+\-\s]/.test(line)) + continue; + + if (line[0] == "\t") { + tabIndents++; + prevSpaces = -Number.MAX_VALUE; + } else { + var spaces = line.match(/^ */)[0].length; + if (spaces && line[spaces] != "\t") { + var diff = spaces - prevSpaces; + if (diff > 0 && !(prevSpaces%diff) && !(spaces%diff)) + changes[diff] = (changes[diff] || 0) + 1; + + stats[spaces] = (stats[spaces] || 0) + 1; + } + prevSpaces = spaces; + } + while (i < max && line[line.length - 1] == "\\") + line = lines[i++]; + } + + function getScore(indent) { + var score = 0; + for (var i = indent; i < stats.length; i += indent) + score += stats[i] || 0; + return score; + } + + var changesTotal = changes.reduce(function(a,b){return a+b}, 0); + + var first = {score: 0, length: 0}; + var spaceIndents = 0; + for (var i = 1; i < 12; i++) { + var score = getScore(i); + if (i == 1) { + spaceIndents = score; + score = stats[1] ? 0.9 : 0.8; + if (!stats.length) + score = 0; + } else + score /= spaceIndents; + + if (changes[i]) + score += changes[i] / changesTotal; + + if (score > first.score) + first = {score: score, length: i}; + } + + if (first.score && first.score > 1.4) + var tabLength = first.length; + + if (tabIndents > spaceIndents + 1) { + if (tabLength == 1 || spaceIndents < tabIndents / 4 || first.score < 1.8) + tabLength = undefined; + return {ch: "\t", length: tabLength}; + } + if (spaceIndents > tabIndents + 1) + return {ch: " ", length: tabLength}; +}; + +exports.detectIndentation = function(session) { + var lines = session.getLines(0, 1000); + var indent = exports.$detectIndentation(lines) || {}; + + if (indent.ch) + session.setUseSoftTabs(indent.ch == " "); + + if (indent.length) + session.setTabSize(indent.length); + return indent; +}; +exports.trimTrailingSpace = function(session, options) { + var doc = session.getDocument(); + var lines = doc.getAllLines(); + + var min = options && options.trimEmpty ? -1 : 0; + var cursors = [], ci = -1; + if (options && options.keepCursorPosition) { + if (session.selection.rangeCount) { + session.selection.rangeList.ranges.forEach(function(x, i, ranges) { + var next = ranges[i + 1]; + if (next && next.cursor.row == x.cursor.row) + return; + cursors.push(x.cursor); + }); + } else { + cursors.push(session.selection.getCursor()); + } + ci = 0; + } + var cursorRow = cursors[ci] && cursors[ci].row; + + for (var i = 0, l=lines.length; i < l; i++) { + var line = lines[i]; + var index = line.search(/\s+$/); + + if (i == cursorRow) { + if (index < cursors[ci].column && index > min) + index = cursors[ci].column; + ci++; + cursorRow = cursors[ci] ? cursors[ci].row : -1; + } + + if (index > min) + doc.removeInLine(i, index, line.length); + } +}; + +exports.convertIndentation = function(session, ch, len) { + var oldCh = session.getTabString()[0]; + var oldLen = session.getTabSize(); + if (!len) len = oldLen; + if (!ch) ch = oldCh; + + var tab = ch == "\t" ? ch: lang.stringRepeat(ch, len); + + var doc = session.doc; + var lines = doc.getAllLines(); + + var cache = {}; + var spaceCache = {}; + for (var i = 0, l=lines.length; i < l; i++) { + var line = lines[i]; + var match = line.match(/^\s*/)[0]; + if (match) { + var w = session.$getStringScreenWidth(match)[0]; + var tabCount = Math.floor(w/oldLen); + var reminder = w%oldLen; + var toInsert = cache[tabCount] || (cache[tabCount] = lang.stringRepeat(tab, tabCount)); + toInsert += spaceCache[reminder] || (spaceCache[reminder] = lang.stringRepeat(" ", reminder)); + + if (toInsert != match) { + doc.removeInLine(i, 0, match.length); + doc.insertInLine({row: i, column: 0}, toInsert); + } + } + } + session.setTabSize(len); + session.setUseSoftTabs(ch == " "); +}; + +exports.$parseStringArg = function(text) { + var indent = {}; + if (/t/.test(text)) + indent.ch = "\t"; + else if (/s/.test(text)) + indent.ch = " "; + var m = text.match(/\d+/); + if (m) + indent.length = parseInt(m[0], 10); + return indent; +}; + +exports.$parseArg = function(arg) { + if (!arg) + return {}; + if (typeof arg == "string") + return exports.$parseStringArg(arg); + if (typeof arg.text == "string") + return exports.$parseStringArg(arg.text); + return arg; +}; + +exports.commands = [{ + name: "detectIndentation", + exec: function(editor) { + exports.detectIndentation(editor.session); + } +}, { + name: "trimTrailingSpace", + exec: function(editor) { + exports.trimTrailingSpace(editor.session); + } +}, { + name: "convertIndentation", + exec: function(editor, arg) { + var indent = exports.$parseArg(arg); + exports.convertIndentation(editor.session, indent.ch, indent.length); + } +}, { + name: "setIndentation", + exec: function(editor, arg) { + var indent = exports.$parseArg(arg); + indent.length && editor.session.setTabSize(indent.length); + indent.ch && editor.session.setUseSoftTabs(indent.ch == " "); + } +}]; + +}); + (function() { + ace.require(["ace/ext/whitespace"], function() {}); + })(); + \ No newline at end of file diff --git a/htdocs/includes/ace/keybinding-emacs.js b/htdocs/includes/ace/keybinding-emacs.js new file mode 100644 index 00000000000..a6cb038e95b --- /dev/null +++ b/htdocs/includes/ace/keybinding-emacs.js @@ -0,0 +1,1181 @@ +ace.define("ace/occur",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/edit_session","ace/search_highlight","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var Range = require("./range").Range; +var Search = require("./search").Search; +var EditSession = require("./edit_session").EditSession; +var SearchHighlight = require("./search_highlight").SearchHighlight; +function Occur() {} + +oop.inherits(Occur, Search); + +(function() { + this.enter = function(editor, options) { + if (!options.needle) return false; + var pos = editor.getCursorPosition(); + this.displayOccurContent(editor, options); + var translatedPos = this.originalToOccurPosition(editor.session, pos); + editor.moveCursorToPosition(translatedPos); + return true; + } + this.exit = function(editor, options) { + var pos = options.translatePosition && editor.getCursorPosition(); + var translatedPos = pos && this.occurToOriginalPosition(editor.session, pos); + this.displayOriginalContent(editor); + if (translatedPos) + editor.moveCursorToPosition(translatedPos); + return true; + } + + this.highlight = function(sess, regexp) { + var hl = sess.$occurHighlight = sess.$occurHighlight || sess.addDynamicMarker( + new SearchHighlight(null, "ace_occur-highlight", "text")); + hl.setRegexp(regexp); + sess._emit("changeBackMarker"); // force highlight layer redraw + } + + this.displayOccurContent = function(editor, options) { + this.$originalSession = editor.session; + var found = this.matchingLines(editor.session, options); + var lines = found.map(function(foundLine) { return foundLine.content; }); + var occurSession = new EditSession(lines.join('\n')); + occurSession.$occur = this; + occurSession.$occurMatchingLines = found; + editor.setSession(occurSession); + this.$useEmacsStyleLineStart = this.$originalSession.$useEmacsStyleLineStart; + occurSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart; + this.highlight(occurSession, options.re); + occurSession._emit('changeBackMarker'); + } + + this.displayOriginalContent = function(editor) { + editor.setSession(this.$originalSession); + this.$originalSession.$useEmacsStyleLineStart = this.$useEmacsStyleLineStart; + } + this.originalToOccurPosition = function(session, pos) { + var lines = session.$occurMatchingLines; + var nullPos = {row: 0, column: 0}; + if (!lines) return nullPos; + for (var i = 0; i < lines.length; i++) { + if (lines[i].row === pos.row) + return {row: i, column: pos.column}; + } + return nullPos; + } + this.occurToOriginalPosition = function(session, pos) { + var lines = session.$occurMatchingLines; + if (!lines || !lines[pos.row]) + return pos; + return {row: lines[pos.row].row, column: pos.column}; + } + + this.matchingLines = function(session, options) { + options = oop.mixin({}, options); + if (!session || !options.needle) return []; + var search = new Search(); + search.set(options); + return search.findAll(session).reduce(function(lines, range) { + var row = range.start.row; + var last = lines[lines.length-1]; + return last && last.row === row ? + lines : + lines.concat({row: row, content: session.getLine(row)}); + }, []); + } + +}).call(Occur.prototype); + +var dom = require('./lib/dom'); +dom.importCssString(".ace_occur-highlight {\n\ + border-radius: 4px;\n\ + background-color: rgba(87, 255, 8, 0.25);\n\ + position: absolute;\n\ + z-index: 4;\n\ + -moz-box-sizing: border-box;\n\ + -webkit-box-sizing: border-box;\n\ + box-sizing: border-box;\n\ + box-shadow: 0 0 4px rgb(91, 255, 50);\n\ +}\n\ +.ace_dark .ace_occur-highlight {\n\ + background-color: rgb(80, 140, 85);\n\ + box-shadow: 0 0 4px rgb(60, 120, 70);\n\ +}\n", "incremental-occur-highlighting"); + +exports.Occur = Occur; + +}); + +ace.define("ace/commands/occur_commands",["require","exports","module","ace/config","ace/occur","ace/keyboard/hash_handler","ace/lib/oop"], function(require, exports, module) { + +var config = require("../config"), + Occur = require("../occur").Occur; +var occurStartCommand = { + name: "occur", + exec: function(editor, options) { + var alreadyInOccur = !!editor.session.$occur; + var occurSessionActive = new Occur().enter(editor, options); + if (occurSessionActive && !alreadyInOccur) + OccurKeyboardHandler.installIn(editor); + }, + readOnly: true +}; + +var occurCommands = [{ + name: "occurexit", + bindKey: 'esc|Ctrl-G', + exec: function(editor) { + var occur = editor.session.$occur; + if (!occur) return; + occur.exit(editor, {}); + if (!editor.session.$occur) OccurKeyboardHandler.uninstallFrom(editor); + }, + readOnly: true +}, { + name: "occuraccept", + bindKey: 'enter', + exec: function(editor) { + var occur = editor.session.$occur; + if (!occur) return; + occur.exit(editor, {translatePosition: true}); + if (!editor.session.$occur) OccurKeyboardHandler.uninstallFrom(editor); + }, + readOnly: true +}]; + +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var oop = require("../lib/oop"); + + +function OccurKeyboardHandler() {} + +oop.inherits(OccurKeyboardHandler, HashHandler); + +(function() { + + this.isOccurHandler = true; + + this.attach = function(editor) { + HashHandler.call(this, occurCommands, editor.commands.platform); + this.$editor = editor; + } + + var handleKeyboard$super = this.handleKeyboard; + this.handleKeyboard = function(data, hashId, key, keyCode) { + var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode); + return (cmd && cmd.command) ? cmd : undefined; + } + +}).call(OccurKeyboardHandler.prototype); + +OccurKeyboardHandler.installIn = function(editor) { + var handler = new this(); + editor.keyBinding.addKeyboardHandler(handler); + editor.commands.addCommands(occurCommands); +} + +OccurKeyboardHandler.uninstallFrom = function(editor) { + editor.commands.removeCommands(occurCommands); + var handler = editor.getKeyboardHandler(); + if (handler.isOccurHandler) + editor.keyBinding.removeKeyboardHandler(handler); +} + +exports.occurStartCommand = occurStartCommand; + +}); + +ace.define("ace/commands/incremental_search_commands",["require","exports","module","ace/config","ace/lib/oop","ace/keyboard/hash_handler","ace/commands/occur_commands"], function(require, exports, module) { + +var config = require("../config"); +var oop = require("../lib/oop"); +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var occurStartCommand = require("./occur_commands").occurStartCommand; +exports.iSearchStartCommands = [{ + name: "iSearch", + bindKey: {win: "Ctrl-F", mac: "Command-F"}, + exec: function(editor, options) { + config.loadModule(["core", "ace/incremental_search"], function(e) { + var iSearch = e.iSearch = e.iSearch || new e.IncrementalSearch(); + iSearch.activate(editor, options.backwards); + if (options.jumpToFirstMatch) iSearch.next(options); + }); + }, + readOnly: true +}, { + name: "iSearchBackwards", + exec: function(editor, jumpToNext) { editor.execCommand('iSearch', {backwards: true}); }, + readOnly: true +}, { + name: "iSearchAndGo", + bindKey: {win: "Ctrl-K", mac: "Command-G"}, + exec: function(editor, jumpToNext) { editor.execCommand('iSearch', {jumpToFirstMatch: true, useCurrentOrPrevSearch: true}); }, + readOnly: true +}, { + name: "iSearchBackwardsAndGo", + bindKey: {win: "Ctrl-Shift-K", mac: "Command-Shift-G"}, + exec: function(editor) { editor.execCommand('iSearch', {jumpToFirstMatch: true, backwards: true, useCurrentOrPrevSearch: true}); }, + readOnly: true +}]; +exports.iSearchCommands = [{ + name: "restartSearch", + bindKey: {win: "Ctrl-F", mac: "Command-F"}, + exec: function(iSearch) { + iSearch.cancelSearch(true); + } +}, { + name: "searchForward", + bindKey: {win: "Ctrl-S|Ctrl-K", mac: "Ctrl-S|Command-G"}, + exec: function(iSearch, options) { + options.useCurrentOrPrevSearch = true; + iSearch.next(options); + } +}, { + name: "searchBackward", + bindKey: {win: "Ctrl-R|Ctrl-Shift-K", mac: "Ctrl-R|Command-Shift-G"}, + exec: function(iSearch, options) { + options.useCurrentOrPrevSearch = true; + options.backwards = true; + iSearch.next(options); + } +}, { + name: "extendSearchTerm", + exec: function(iSearch, string) { + iSearch.addString(string); + } +}, { + name: "extendSearchTermSpace", + bindKey: "space", + exec: function(iSearch) { iSearch.addString(' '); } +}, { + name: "shrinkSearchTerm", + bindKey: "backspace", + exec: function(iSearch) { + iSearch.removeChar(); + } +}, { + name: 'confirmSearch', + bindKey: 'return', + exec: function(iSearch) { iSearch.deactivate(); } +}, { + name: 'cancelSearch', + bindKey: 'esc|Ctrl-G', + exec: function(iSearch) { iSearch.deactivate(true); } +}, { + name: 'occurisearch', + bindKey: 'Ctrl-O', + exec: function(iSearch) { + var options = oop.mixin({}, iSearch.$options); + iSearch.deactivate(); + occurStartCommand.exec(iSearch.$editor, options); + } +}, { + name: "yankNextWord", + bindKey: "Ctrl-w", + exec: function(iSearch) { + var ed = iSearch.$editor, + range = ed.selection.getRangeOfMovements(function(sel) { sel.moveCursorWordRight(); }), + string = ed.session.getTextRange(range); + iSearch.addString(string); + } +}, { + name: "yankNextChar", + bindKey: "Ctrl-Alt-y", + exec: function(iSearch) { + var ed = iSearch.$editor, + range = ed.selection.getRangeOfMovements(function(sel) { sel.moveCursorRight(); }), + string = ed.session.getTextRange(range); + iSearch.addString(string); + } +}, { + name: 'recenterTopBottom', + bindKey: 'Ctrl-l', + exec: function(iSearch) { iSearch.$editor.execCommand('recenterTopBottom'); } +}, { + name: 'selectAllMatches', + bindKey: 'Ctrl-space', + exec: function(iSearch) { + var ed = iSearch.$editor, + hl = ed.session.$isearchHighlight, + ranges = hl && hl.cache ? hl.cache + .reduce(function(ranges, ea) { + return ranges.concat(ea ? ea : []); }, []) : []; + iSearch.deactivate(false); + ranges.forEach(ed.selection.addRange.bind(ed.selection)); + } +}, { + name: 'searchAsRegExp', + bindKey: 'Alt-r', + exec: function(iSearch) { + iSearch.convertNeedleToRegExp(); + } +}].map(function(cmd) { + cmd.readOnly = true; + cmd.isIncrementalSearchCommand = true; + cmd.scrollIntoView = "animate-cursor"; + return cmd; +}); + +function IncrementalSearchKeyboardHandler(iSearch) { + this.$iSearch = iSearch; +} + +oop.inherits(IncrementalSearchKeyboardHandler, HashHandler); + +(function() { + + this.attach = function(editor) { + var iSearch = this.$iSearch; + HashHandler.call(this, exports.iSearchCommands, editor.commands.platform); + this.$commandExecHandler = editor.commands.addEventListener('exec', function(e) { + if (!e.command.isIncrementalSearchCommand) + return iSearch.deactivate(); + e.stopPropagation(); + e.preventDefault(); + var scrollTop = editor.session.getScrollTop(); + var result = e.command.exec(iSearch, e.args || {}); + editor.renderer.scrollCursorIntoView(null, 0.5); + editor.renderer.animateScrolling(scrollTop); + return result; + }); + }; + + this.detach = function(editor) { + if (!this.$commandExecHandler) return; + editor.commands.removeEventListener('exec', this.$commandExecHandler); + delete this.$commandExecHandler; + }; + + var handleKeyboard$super = this.handleKeyboard; + this.handleKeyboard = function(data, hashId, key, keyCode) { + if (((hashId === 1/*ctrl*/ || hashId === 8/*command*/) && key === 'v') + || (hashId === 1/*ctrl*/ && key === 'y')) return null; + var cmd = handleKeyboard$super.call(this, data, hashId, key, keyCode); + if (cmd.command) { return cmd; } + if (hashId == -1) { + var extendCmd = this.commands.extendSearchTerm; + if (extendCmd) { return {command: extendCmd, args: key}; } + } + return false; + }; + +}).call(IncrementalSearchKeyboardHandler.prototype); + + +exports.IncrementalSearchKeyboardHandler = IncrementalSearchKeyboardHandler; + +}); + +ace.define("ace/incremental_search",["require","exports","module","ace/lib/oop","ace/range","ace/search","ace/search_highlight","ace/commands/incremental_search_commands","ace/lib/dom","ace/commands/command_manager","ace/editor","ace/config"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var Range = require("./range").Range; +var Search = require("./search").Search; +var SearchHighlight = require("./search_highlight").SearchHighlight; +var iSearchCommandModule = require("./commands/incremental_search_commands"); +var ISearchKbd = iSearchCommandModule.IncrementalSearchKeyboardHandler; +function IncrementalSearch() { + this.$options = {wrap: false, skipCurrent: false}; + this.$keyboardHandler = new ISearchKbd(this); +} + +oop.inherits(IncrementalSearch, Search); + +function isRegExp(obj) { + return obj instanceof RegExp; +} + +function regExpToObject(re) { + var string = String(re), + start = string.indexOf('/'), + flagStart = string.lastIndexOf('/'); + return { + expression: string.slice(start+1, flagStart), + flags: string.slice(flagStart+1) + } +} + +function stringToRegExp(string, flags) { + try { + return new RegExp(string, flags); + } catch (e) { return string; } +} + +function objectToRegExp(obj) { + return stringToRegExp(obj.expression, obj.flags); +} + +(function() { + + this.activate = function(ed, backwards) { + this.$editor = ed; + this.$startPos = this.$currentPos = ed.getCursorPosition(); + this.$options.needle = ''; + this.$options.backwards = backwards; + ed.keyBinding.addKeyboardHandler(this.$keyboardHandler); + this.$originalEditorOnPaste = ed.onPaste; ed.onPaste = this.onPaste.bind(this); + this.$mousedownHandler = ed.addEventListener('mousedown', this.onMouseDown.bind(this)); + this.selectionFix(ed); + this.statusMessage(true); + }; + + this.deactivate = function(reset) { + this.cancelSearch(reset); + var ed = this.$editor; + ed.keyBinding.removeKeyboardHandler(this.$keyboardHandler); + if (this.$mousedownHandler) { + ed.removeEventListener('mousedown', this.$mousedownHandler); + delete this.$mousedownHandler; + } + ed.onPaste = this.$originalEditorOnPaste; + this.message(''); + }; + + this.selectionFix = function(editor) { + if (editor.selection.isEmpty() && !editor.session.$emacsMark) { + editor.clearSelection(); + } + }; + + this.highlight = function(regexp) { + var sess = this.$editor.session, + hl = sess.$isearchHighlight = sess.$isearchHighlight || sess.addDynamicMarker( + new SearchHighlight(null, "ace_isearch-result", "text")); + hl.setRegexp(regexp); + sess._emit("changeBackMarker"); // force highlight layer redraw + }; + + this.cancelSearch = function(reset) { + var e = this.$editor; + this.$prevNeedle = this.$options.needle; + this.$options.needle = ''; + if (reset) { + e.moveCursorToPosition(this.$startPos); + this.$currentPos = this.$startPos; + } else { + e.pushEmacsMark && e.pushEmacsMark(this.$startPos, false); + } + this.highlight(null); + return Range.fromPoints(this.$currentPos, this.$currentPos); + }; + + this.highlightAndFindWithNeedle = function(moveToNext, needleUpdateFunc) { + if (!this.$editor) return null; + var options = this.$options; + if (needleUpdateFunc) { + options.needle = needleUpdateFunc.call(this, options.needle || '') || ''; + } + if (options.needle.length === 0) { + this.statusMessage(true); + return this.cancelSearch(true); + } + options.start = this.$currentPos; + var session = this.$editor.session, + found = this.find(session), + shouldSelect = this.$editor.emacsMark ? + !!this.$editor.emacsMark() : !this.$editor.selection.isEmpty(); + if (found) { + if (options.backwards) found = Range.fromPoints(found.end, found.start); + this.$editor.selection.setRange(Range.fromPoints(shouldSelect ? this.$startPos : found.end, found.end)); + if (moveToNext) this.$currentPos = found.end; + this.highlight(options.re); + } + + this.statusMessage(found); + + return found; + }; + + this.addString = function(s) { + return this.highlightAndFindWithNeedle(false, function(needle) { + if (!isRegExp(needle)) + return needle + s; + var reObj = regExpToObject(needle); + reObj.expression += s; + return objectToRegExp(reObj); + }); + }; + + this.removeChar = function(c) { + return this.highlightAndFindWithNeedle(false, function(needle) { + if (!isRegExp(needle)) + return needle.substring(0, needle.length-1); + var reObj = regExpToObject(needle); + reObj.expression = reObj.expression.substring(0, reObj.expression.length-1); + return objectToRegExp(reObj); + }); + }; + + this.next = function(options) { + options = options || {}; + this.$options.backwards = !!options.backwards; + this.$currentPos = this.$editor.getCursorPosition(); + return this.highlightAndFindWithNeedle(true, function(needle) { + return options.useCurrentOrPrevSearch && needle.length === 0 ? + this.$prevNeedle || '' : needle; + }); + }; + + this.onMouseDown = function(evt) { + this.deactivate(); + return true; + }; + + this.onPaste = function(text) { + this.addString(text); + }; + + this.convertNeedleToRegExp = function() { + return this.highlightAndFindWithNeedle(false, function(needle) { + return isRegExp(needle) ? needle : stringToRegExp(needle, 'ig'); + }); + }; + + this.convertNeedleToString = function() { + return this.highlightAndFindWithNeedle(false, function(needle) { + return isRegExp(needle) ? regExpToObject(needle).expression : needle; + }); + }; + + this.statusMessage = function(found) { + var options = this.$options, msg = ''; + msg += options.backwards ? 'reverse-' : ''; + msg += 'isearch: ' + options.needle; + msg += found ? '' : ' (not found)'; + this.message(msg); + }; + + this.message = function(msg) { + if (this.$editor.showCommandLine) { + this.$editor.showCommandLine(msg); + this.$editor.focus(); + } else { + console.log(msg); + } + }; + +}).call(IncrementalSearch.prototype); + + +exports.IncrementalSearch = IncrementalSearch; + +var dom = require('./lib/dom'); +dom.importCssString && dom.importCssString("\ +.ace_marker-layer .ace_isearch-result {\ + position: absolute;\ + z-index: 6;\ + -moz-box-sizing: border-box;\ + -webkit-box-sizing: border-box;\ + box-sizing: border-box;\ +}\ +div.ace_isearch-result {\ + border-radius: 4px;\ + background-color: rgba(255, 200, 0, 0.5);\ + box-shadow: 0 0 4px rgb(255, 200, 0);\ +}\ +.ace_dark div.ace_isearch-result {\ + background-color: rgb(100, 110, 160);\ + box-shadow: 0 0 4px rgb(80, 90, 140);\ +}", "incremental-search-highlighting"); +var commands = require("./commands/command_manager"); +(function() { + this.setupIncrementalSearch = function(editor, val) { + if (this.usesIncrementalSearch == val) return; + this.usesIncrementalSearch = val; + var iSearchCommands = iSearchCommandModule.iSearchStartCommands; + var method = val ? 'addCommands' : 'removeCommands'; + this[method](iSearchCommands); + }; +}).call(commands.CommandManager.prototype); +var Editor = require("./editor").Editor; +require("./config").defineOptions(Editor.prototype, "editor", { + useIncrementalSearch: { + set: function(val) { + this.keyBinding.$handlers.forEach(function(handler) { + if (handler.setupIncrementalSearch) { + handler.setupIncrementalSearch(this, val); + } + }); + this._emit('incrementalSearchSettingChanged', {isEnabled: val}); + } + } +}); + +}); + +ace.define("ace/keyboard/emacs",["require","exports","module","ace/lib/dom","ace/incremental_search","ace/commands/incremental_search_commands","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +require("../incremental_search"); +var iSearchCommandModule = require("../commands/incremental_search_commands"); + + +var screenToTextBlockCoordinates = function(x, y) { + var canvasPos = this.scroller.getBoundingClientRect(); + + var col = Math.floor( + (x + this.scrollLeft - canvasPos.left - this.$padding) / this.characterWidth + ); + var row = Math.floor( + (y + this.scrollTop - canvasPos.top) / this.lineHeight + ); + + return this.session.screenToDocumentPosition(row, col); +}; + +var HashHandler = require("./hash_handler").HashHandler; +exports.handler = new HashHandler(); + +exports.handler.isEmacs = true; +exports.handler.$id = "ace/keyboard/emacs"; + +var initialized = false; +var $formerLongWords; +var $formerLineStart; + +exports.handler.attach = function(editor) { + if (!initialized) { + initialized = true; + dom.importCssString('\ + .emacs-mode .ace_cursor{\ + border: 1px rgba(50,250,50,0.8) solid!important;\ + -moz-box-sizing: border-box!important;\ + -webkit-box-sizing: border-box!important;\ + box-sizing: border-box!important;\ + background-color: rgba(0,250,0,0.9);\ + opacity: 0.5;\ + }\ + .emacs-mode .ace_hidden-cursors .ace_cursor{\ + opacity: 1;\ + background-color: transparent;\ + }\ + .emacs-mode .ace_overwrite-cursors .ace_cursor {\ + opacity: 1;\ + background-color: transparent;\ + border-width: 0 0 2px 2px !important;\ + }\ + .emacs-mode .ace_text-layer {\ + z-index: 4\ + }\ + .emacs-mode .ace_cursor-layer {\ + z-index: 2\ + }', 'emacsMode' + ); + } + $formerLongWords = editor.session.$selectLongWords; + editor.session.$selectLongWords = true; + $formerLineStart = editor.session.$useEmacsStyleLineStart; + editor.session.$useEmacsStyleLineStart = true; + + editor.session.$emacsMark = null; // the active mark + editor.session.$emacsMarkRing = editor.session.$emacsMarkRing || []; + + editor.emacsMark = function() { + return this.session.$emacsMark; + }; + + editor.setEmacsMark = function(p) { + this.session.$emacsMark = p; + }; + + editor.pushEmacsMark = function(p, activate) { + var prevMark = this.session.$emacsMark; + if (prevMark) + this.session.$emacsMarkRing.push(prevMark); + if (!p || activate) this.setEmacsMark(p); + else this.session.$emacsMarkRing.push(p); + }; + + editor.popEmacsMark = function() { + var mark = this.emacsMark(); + if (mark) { this.setEmacsMark(null); return mark; } + return this.session.$emacsMarkRing.pop(); + }; + + editor.getLastEmacsMark = function(p) { + return this.session.$emacsMark || this.session.$emacsMarkRing.slice(-1)[0]; + }; + + editor.emacsMarkForSelection = function(replacement) { + var sel = this.selection, + multiRangeLength = this.multiSelect ? + this.multiSelect.getAllRanges().length : 1, + selIndex = sel.index || 0, + markRing = this.session.$emacsMarkRing, + markIndex = markRing.length - (multiRangeLength - selIndex), + lastMark = markRing[markIndex] || sel.anchor; + if (replacement) { + markRing.splice(markIndex, 1, + "row" in replacement && "column" in replacement ? + replacement : undefined); + } + return lastMark; + } + + editor.on("click", $resetMarkMode); + editor.on("changeSession", $kbSessionChange); + editor.renderer.screenToTextCoordinates = screenToTextBlockCoordinates; + editor.setStyle("emacs-mode"); + editor.commands.addCommands(commands); + exports.handler.platform = editor.commands.platform; + editor.$emacsModeHandler = this; + editor.addEventListener('copy', this.onCopy); + editor.addEventListener('paste', this.onPaste); +}; + +exports.handler.detach = function(editor) { + delete editor.renderer.screenToTextCoordinates; + editor.session.$selectLongWords = $formerLongWords; + editor.session.$useEmacsStyleLineStart = $formerLineStart; + editor.removeEventListener("click", $resetMarkMode); + editor.removeEventListener("changeSession", $kbSessionChange); + editor.unsetStyle("emacs-mode"); + editor.commands.removeCommands(commands); + editor.removeEventListener('copy', this.onCopy); + editor.removeEventListener('paste', this.onPaste); + editor.$emacsModeHandler = null; +}; + +var $kbSessionChange = function(e) { + if (e.oldSession) { + e.oldSession.$selectLongWords = $formerLongWords; + e.oldSession.$useEmacsStyleLineStart = $formerLineStart; + } + + $formerLongWords = e.session.$selectLongWords; + e.session.$selectLongWords = true; + $formerLineStart = e.session.$useEmacsStyleLineStart; + e.session.$useEmacsStyleLineStart = true; + + if (!e.session.hasOwnProperty('$emacsMark')) + e.session.$emacsMark = null; + if (!e.session.hasOwnProperty('$emacsMarkRing')) + e.session.$emacsMarkRing = []; +}; + +var $resetMarkMode = function(e) { + e.editor.session.$emacsMark = null; +}; + +var keys = require("../lib/keys").KEY_MODS; +var eMods = {C: "ctrl", S: "shift", M: "alt", CMD: "command"}; +var combinations = ["C-S-M-CMD", + "S-M-CMD", "C-M-CMD", "C-S-CMD", "C-S-M", + "M-CMD", "S-CMD", "S-M", "C-CMD", "C-M", "C-S", + "CMD", "M", "S", "C"]; +combinations.forEach(function(c) { + var hashId = 0; + c.split("-").forEach(function(c) { + hashId = hashId | keys[eMods[c]]; + }); + eMods[hashId] = c.toLowerCase() + "-"; +}); + +exports.handler.onCopy = function(e, editor) { + if (editor.$handlesEmacsOnCopy) return; + editor.$handlesEmacsOnCopy = true; + exports.handler.commands.killRingSave.exec(editor); + editor.$handlesEmacsOnCopy = false; +}; + +exports.handler.onPaste = function(e, editor) { + editor.pushEmacsMark(editor.getCursorPosition()); +}; + +exports.handler.bindKey = function(key, command) { + if (typeof key == "object") + key = key[this.platform]; + if (!key) + return; + + var ckb = this.commandKeyBinding; + key.split("|").forEach(function(keyPart) { + keyPart = keyPart.toLowerCase(); + ckb[keyPart] = command; + var keyParts = keyPart.split(" ").slice(0,-1); + keyParts.reduce(function(keyMapKeys, keyPart, i) { + var prefix = keyMapKeys[i-1] ? keyMapKeys[i-1] + ' ' : ''; + return keyMapKeys.concat([prefix + keyPart]); + }, []).forEach(function(keyPart) { + if (!ckb[keyPart]) ckb[keyPart] = "null"; + }); + }, this); +}; + +exports.handler.getStatusText = function(editor, data) { + var str = ""; + if (data.count) + str += data.count; + if (data.keyChain) + str += " " + data.keyChain + return str; +}; + +exports.handler.handleKeyboard = function(data, hashId, key, keyCode) { + if (keyCode === -1) return undefined; + + var editor = data.editor; + editor._signal("changeStatus"); + if (hashId == -1) { + editor.pushEmacsMark(); + if (data.count) { + var str = new Array(data.count + 1).join(key); + data.count = null; + return {command: "insertstring", args: str}; + } + } + + var modifier = eMods[hashId]; + if (modifier == "c-" || data.count) { + var count = parseInt(key[key.length - 1]); + if (typeof count === 'number' && !isNaN(count)) { + data.count = Math.max(data.count, 0) || 0; + data.count = 10 * data.count + count; + return {command: "null"}; + } + } + if (modifier) key = modifier + key; + if (data.keyChain) key = data.keyChain += " " + key; + var command = this.commandKeyBinding[key]; + data.keyChain = command == "null" ? key : ""; + if (!command) return undefined; + if (command === "null") return {command: "null"}; + + if (command === "universalArgument") { + data.count = -4; + return {command: "null"}; + } + var args; + if (typeof command !== "string") { + args = command.args; + if (command.command) command = command.command; + if (command === "goorselect") { + command = editor.emacsMark() ? args[1] : args[0]; + args = null; + } + } + + if (typeof command === "string") { + if (command === "insertstring" || + command === "splitline" || + command === "togglecomment") { + editor.pushEmacsMark(); + } + command = this.commands[command] || editor.commands.commands[command]; + if (!command) return undefined; + } + + if (!command.readOnly && !command.isYank) + data.lastCommand = null; + + if (!command.readOnly && editor.emacsMark()) + editor.setEmacsMark(null) + + if (data.count) { + var count = data.count; + data.count = 0; + if (!command || !command.handlesCount) { + return { + args: args, + command: { + exec: function(editor, args) { + for (var i = 0; i < count; i++) + command.exec(editor, args); + }, + multiSelectAction: command.multiSelectAction + } + }; + } else { + if (!args) args = {}; + if (typeof args === 'object') args.count = count; + } + } + + return {command: command, args: args}; +}; + +exports.emacsKeys = { + "Up|C-p" : {command: "goorselect", args: ["golineup","selectup"]}, + "Down|C-n" : {command: "goorselect", args: ["golinedown","selectdown"]}, + "Left|C-b" : {command: "goorselect", args: ["gotoleft","selectleft"]}, + "Right|C-f" : {command: "goorselect", args: ["gotoright","selectright"]}, + "C-Left|M-b" : {command: "goorselect", args: ["gotowordleft","selectwordleft"]}, + "C-Right|M-f" : {command: "goorselect", args: ["gotowordright","selectwordright"]}, + "Home|C-a" : {command: "goorselect", args: ["gotolinestart","selecttolinestart"]}, + "End|C-e" : {command: "goorselect", args: ["gotolineend","selecttolineend"]}, + "C-Home|S-M-,": {command: "goorselect", args: ["gotostart","selecttostart"]}, + "C-End|S-M-." : {command: "goorselect", args: ["gotoend","selecttoend"]}, + "S-Up|S-C-p" : "selectup", + "S-Down|S-C-n" : "selectdown", + "S-Left|S-C-b" : "selectleft", + "S-Right|S-C-f" : "selectright", + "S-C-Left|S-M-b" : "selectwordleft", + "S-C-Right|S-M-f" : "selectwordright", + "S-Home|S-C-a" : "selecttolinestart", + "S-End|S-C-e" : "selecttolineend", + "S-C-Home" : "selecttostart", + "S-C-End" : "selecttoend", + + "C-l" : "recenterTopBottom", + "M-s" : "centerselection", + "M-g": "gotoline", + "C-x C-p": "selectall", + "C-Down": {command: "goorselect", args: ["gotopagedown","selectpagedown"]}, + "C-Up": {command: "goorselect", args: ["gotopageup","selectpageup"]}, + "PageDown|C-v": {command: "goorselect", args: ["gotopagedown","selectpagedown"]}, + "PageUp|M-v": {command: "goorselect", args: ["gotopageup","selectpageup"]}, + "S-C-Down": "selectpagedown", + "S-C-Up": "selectpageup", + + "C-s": "iSearch", + "C-r": "iSearchBackwards", + + "M-C-s": "findnext", + "M-C-r": "findprevious", + "S-M-5": "replace", + "Backspace": "backspace", + "Delete|C-d": "del", + "Return|C-m": {command: "insertstring", args: "\n"}, // "newline" + "C-o": "splitline", + + "M-d|C-Delete": {command: "killWord", args: "right"}, + "C-Backspace|M-Backspace|M-Delete": {command: "killWord", args: "left"}, + "C-k": "killLine", + + "C-y|S-Delete": "yank", + "M-y": "yankRotate", + "C-g": "keyboardQuit", + + "C-w|C-S-W": "killRegion", + "M-w": "killRingSave", + "C-Space": "setMark", + "C-x C-x": "exchangePointAndMark", + + "C-t": "transposeletters", + "M-u": "touppercase", // Doesn't work + "M-l": "tolowercase", + "M-/": "autocomplete", // Doesn't work + "C-u": "universalArgument", + + "M-;": "togglecomment", + + "C-/|C-x u|S-C--|C-z": "undo", + "S-C-/|S-C-x u|C--|S-C-z": "redo", // infinite undo? + "C-x r": "selectRectangularRegion", + "M-x": {command: "focusCommandLine", args: "M-x "} +}; + + +exports.handler.bindKeys(exports.emacsKeys); + +exports.handler.addCommands({ + recenterTopBottom: function(editor) { + var renderer = editor.renderer; + var pos = renderer.$cursorLayer.getPixelPosition(); + var h = renderer.$size.scrollerHeight - renderer.lineHeight; + var scrollTop = renderer.scrollTop; + if (Math.abs(pos.top - scrollTop) < 2) { + scrollTop = pos.top - h; + } else if (Math.abs(pos.top - scrollTop - h * 0.5) < 2) { + scrollTop = pos.top; + } else { + scrollTop = pos.top - h * 0.5; + } + editor.session.setScrollTop(scrollTop); + }, + selectRectangularRegion: function(editor) { + editor.multiSelect.toggleBlockSelection(); + }, + setMark: { + exec: function(editor, args) { + + if (args && args.count) { + if (editor.inMultiSelectMode) editor.forEachSelection(moveToMark); + else moveToMark(); + moveToMark(); + return; + } + + var mark = editor.emacsMark(), + ranges = editor.selection.getAllRanges(), + rangePositions = ranges.map(function(r) { return {row: r.start.row, column: r.start.column}; }), + transientMarkModeActive = true, + hasNoSelection = ranges.every(function(range) { return range.isEmpty(); }); + if (transientMarkModeActive && (mark || !hasNoSelection)) { + if (editor.inMultiSelectMode) editor.forEachSelection({exec: editor.clearSelection.bind(editor)}); + else editor.clearSelection(); + if (mark) editor.pushEmacsMark(null); + return; + } + + if (!mark) { + rangePositions.forEach(function(pos) { editor.pushEmacsMark(pos); }); + editor.setEmacsMark(rangePositions[rangePositions.length-1]); + return; + } + + function moveToMark() { + var mark = editor.popEmacsMark(); + mark && editor.moveCursorToPosition(mark); + } + + }, + readOnly: true, + handlesCount: true + }, + exchangePointAndMark: { + exec: function exchangePointAndMark$exec(editor, args) { + var sel = editor.selection; + if (!args.count && !sel.isEmpty()) { // just invert selection + sel.setSelectionRange(sel.getRange(), !sel.isBackwards()); + return; + } + + if (args.count) { // replace mark and point + var pos = {row: sel.lead.row, column: sel.lead.column}; + sel.clearSelection(); + sel.moveCursorToPosition(editor.emacsMarkForSelection(pos)); + } else { // create selection to last mark + sel.selectToPosition(editor.emacsMarkForSelection()); + } + }, + readOnly: true, + handlesCount: true, + multiSelectAction: "forEach" + }, + killWord: { + exec: function(editor, dir) { + editor.clearSelection(); + if (dir == "left") + editor.selection.selectWordLeft(); + else + editor.selection.selectWordRight(); + + var range = editor.getSelectionRange(); + var text = editor.session.getTextRange(range); + exports.killRing.add(text); + + editor.session.remove(range); + editor.clearSelection(); + }, + multiSelectAction: "forEach" + }, + killLine: function(editor) { + editor.pushEmacsMark(null); + editor.clearSelection(); + var range = editor.getSelectionRange(); + var line = editor.session.getLine(range.start.row); + range.end.column = line.length; + line = line.substr(range.start.column) + + var foldLine = editor.session.getFoldLine(range.start.row); + if (foldLine && range.end.row != foldLine.end.row) { + range.end.row = foldLine.end.row; + line = "x"; + } + if (/^\s*$/.test(line)) { + range.end.row++; + line = editor.session.getLine(range.end.row); + range.end.column = /^\s*$/.test(line) ? line.length : 0; + } + var text = editor.session.getTextRange(range); + if (editor.prevOp.command == this) + exports.killRing.append(text); + else + exports.killRing.add(text); + + editor.session.remove(range); + editor.clearSelection(); + }, + yank: function(editor) { + editor.onPaste(exports.killRing.get() || ''); + editor.keyBinding.$data.lastCommand = "yank"; + }, + yankRotate: function(editor) { + if (editor.keyBinding.$data.lastCommand != "yank") + return; + editor.undo(); + editor.session.$emacsMarkRing.pop(); // also undo recording mark + editor.onPaste(exports.killRing.rotate()); + editor.keyBinding.$data.lastCommand = "yank"; + }, + killRegion: { + exec: function(editor) { + exports.killRing.add(editor.getCopyText()); + editor.commands.byName.cut.exec(editor); + editor.setEmacsMark(null); + }, + readOnly: true, + multiSelectAction: "forEach" + }, + killRingSave: { + exec: function(editor) { + + editor.$handlesEmacsOnCopy = true; + var marks = editor.session.$emacsMarkRing.slice(), + deselectedMarks = []; + exports.killRing.add(editor.getCopyText()); + + setTimeout(function() { + function deselect() { + var sel = editor.selection, range = sel.getRange(), + pos = sel.isBackwards() ? range.end : range.start; + deselectedMarks.push({row: pos.row, column: pos.column}); + sel.clearSelection(); + } + editor.$handlesEmacsOnCopy = false; + if (editor.inMultiSelectMode) editor.forEachSelection({exec: deselect}); + else deselect(); + editor.session.$emacsMarkRing = marks.concat(deselectedMarks.reverse()); + }, 0); + }, + readOnly: true + }, + keyboardQuit: function(editor) { + editor.selection.clearSelection(); + editor.setEmacsMark(null); + editor.keyBinding.$data.count = null; + }, + focusCommandLine: function(editor, arg) { + if (editor.showCommandLine) + editor.showCommandLine(arg); + } +}); + +exports.handler.addCommands(iSearchCommandModule.iSearchStartCommands); + +var commands = exports.handler.commands; +commands.yank.isYank = true; +commands.yankRotate.isYank = true; + +exports.killRing = { + $data: [], + add: function(str) { + str && this.$data.push(str); + if (this.$data.length > 30) + this.$data.shift(); + }, + append: function(str) { + var idx = this.$data.length - 1; + var text = this.$data[idx] || ""; + if (str) text += str; + if (text) this.$data[idx] = text; + }, + get: function(n) { + n = n || 1; + return this.$data.slice(this.$data.length-n, this.$data.length).reverse().join('\n'); + }, + pop: function() { + if (this.$data.length > 1) + this.$data.pop(); + return this.get(); + }, + rotate: function() { + this.$data.unshift(this.$data.pop()); + return this.get(); + } +}; + +}); diff --git a/htdocs/includes/ace/keybinding-vim.js b/htdocs/includes/ace/keybinding-vim.js new file mode 100644 index 00000000000..5b0f378e6cd --- /dev/null +++ b/htdocs/includes/ace/keybinding-vim.js @@ -0,0 +1,5598 @@ +ace.define("ace/keyboard/vim",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/dom","ace/lib/oop","ace/lib/keys","ace/lib/event","ace/search","ace/lib/useragent","ace/search_highlight","ace/commands/multi_select_commands","ace/mode/text","ace/multi_select"], function(require, exports, module) { + 'use strict'; + + function log() { + var d = ""; + function format(p) { + if (typeof p != "object") + return p + ""; + if ("line" in p) { + return p.line + ":" + p.ch; + } + if ("anchor" in p) { + return format(p.anchor) + "->" + format(p.head); + } + if (Array.isArray(p)) + return "[" + p.map(function(x) { + return format(x); + }) + "]"; + return JSON.stringify(p); + } + for (var i = 0; i < arguments.length; i++) { + var p = arguments[i]; + var f = format(p); + d += f + " "; + } + console.log(d); + } + var Range = require("../range").Range; + var EventEmitter = require("../lib/event_emitter").EventEmitter; + var dom = require("../lib/dom"); + var oop = require("../lib/oop"); + var KEYS = require("../lib/keys"); + var event = require("../lib/event"); + var Search = require("../search").Search; + var useragent = require("../lib/useragent"); + var SearchHighlight = require("../search_highlight").SearchHighlight; + var multiSelectCommands = require("../commands/multi_select_commands"); + var TextModeTokenRe = require("../mode/text").Mode.prototype.tokenRe; + require("../multi_select"); + + var CodeMirror = function(ace) { + this.ace = ace; + this.state = {}; + this.marks = {}; + this.$uid = 0; + this.onChange = this.onChange.bind(this); + this.onSelectionChange = this.onSelectionChange.bind(this); + this.onBeforeEndOperation = this.onBeforeEndOperation.bind(this); + this.ace.on('change', this.onChange); + this.ace.on('changeSelection', this.onSelectionChange); + this.ace.on('beforeEndOperation', this.onBeforeEndOperation); + }; + CodeMirror.Pos = function(line, ch) { + if (!(this instanceof Pos)) return new Pos(line, ch); + this.line = line; this.ch = ch; + }; + CodeMirror.defineOption = function(name, val, setter) {}; + CodeMirror.commands = { + redo: function(cm) { cm.ace.redo(); }, + undo: function(cm) { cm.ace.undo(); }, + newlineAndIndent: function(cm) { cm.ace.insert("\n"); } + }; + CodeMirror.keyMap = {}; + CodeMirror.addClass = CodeMirror.rmClass = + CodeMirror.e_stop = function() {}; + CodeMirror.keyName = function(e) { + if (e.key) return e.key; + var key = (KEYS[e.keyCode] || ""); + if (key.length == 1) key = key.toUpperCase(); + key = event.getModifierString(e).replace(/(^|-)\w/g, function(m) { + return m.toUpperCase(); + }) + key; + return key; + }; + CodeMirror.keyMap['default'] = function(key) { + return function(cm) { + var cmd = cm.ace.commands.commandKeyBinding[key.toLowerCase()]; + return cmd && cm.ace.execCommand(cmd) !== false; + }; + }; + CodeMirror.lookupKey = function lookupKey(key, map, handle) { + if (typeof map == "string") + map = CodeMirror.keyMap[map]; + var found = typeof map == "function" ? map(key) : map[key]; + if (found === false) return "nothing"; + if (found === "...") return "multi"; + if (found != null && handle(found)) return "handled"; + + if (map.fallthrough) { + if (!Array.isArray(map.fallthrough)) + return lookupKey(key, map.fallthrough, handle); + for (var i = 0; i < map.fallthrough.length; i++) { + var result = lookupKey(key, map.fallthrough[i], handle); + if (result) return result; + } + } + }; + + CodeMirror.signal = function(o, name, e) { return o._signal(name, e) }; + CodeMirror.on = event.addListener; + CodeMirror.off = event.removeListener; + CodeMirror.isWordChar = function(ch) { + if (ch < "\x7f") return /^\w$/.test(ch); + TextModeTokenRe.lastIndex = 0; + return TextModeTokenRe.test(ch); + }; + +(function() { + oop.implement(CodeMirror.prototype, EventEmitter); + + this.destroy = function() { + this.ace.off('change', this.onChange); + this.ace.off('changeSelection', this.onSelectionChange); + this.ace.off('beforeEndOperation', this.onBeforeEndOperation); + this.removeOverlay(); + }; + this.virtualSelectionMode = function() { + return this.ace.inVirtualSelectionMode && this.ace.selection.index; + }; + this.onChange = function(delta) { + var change = { text: delta.action[0] == 'i' ? delta.lines : [] }; + var curOp = this.curOp = this.curOp || {}; + if (!curOp.changeHandlers) + curOp.changeHandlers = this._eventRegistry["change"] && this._eventRegistry["change"].slice(); + if (this.virtualSelectionMode()) return; + if (!curOp.lastChange) { + curOp.lastChange = curOp.change = change; + } else { + curOp.lastChange.next = curOp.lastChange = change; + } + this.$updateMarkers(delta); + }; + this.onSelectionChange = function() { + var curOp = this.curOp = this.curOp || {}; + if (!curOp.cursorActivityHandlers) + curOp.cursorActivityHandlers = this._eventRegistry["cursorActivity"] && this._eventRegistry["cursorActivity"].slice(); + this.curOp.cursorActivity = true; + if (this.ace.inMultiSelectMode) { + this.ace.keyBinding.removeKeyboardHandler(multiSelectCommands.keyboardHandler); + } + }; + this.operation = function(fn, force) { + if (!force && this.curOp || force && this.curOp && this.curOp.force) { + return fn(); + } + if (force || !this.ace.curOp) { + if (this.curOp) + this.onBeforeEndOperation(); + } + if (!this.ace.curOp) { + var prevOp = this.ace.prevOp; + this.ace.startOperation({ + command: { name: "vim", scrollIntoView: "cursor" } + }); + } + var curOp = this.curOp = this.curOp || {}; + this.curOp.force = force; + var result = fn(); + if (this.ace.curOp && this.ace.curOp.command.name == "vim") { + this.ace.endOperation(); + if (!curOp.cursorActivity && !curOp.lastChange && prevOp) + this.ace.prevOp = prevOp; + } + if (force || !this.ace.curOp) { + if (this.curOp) + this.onBeforeEndOperation(); + } + return result; + }; + this.onBeforeEndOperation = function() { + var op = this.curOp; + if (op) { + if (op.change) { this.signal("change", op.change, op); } + if (op && op.cursorActivity) { this.signal("cursorActivity", null, op); } + this.curOp = null; + } + }; + + this.signal = function(eventName, e, handlers) { + var listeners = handlers ? handlers[eventName + "Handlers"] + : (this._eventRegistry || {})[eventName]; + if (!listeners) + return; + listeners = listeners.slice(); + for (var i=0; i 0) { + point.row += rowShift; + point.column += point.row == end.row ? colShift : 0; + continue; + } + if (!isInsert && cmp2 <= 0) { + point.row = start.row; + point.column = start.column; + if (cmp2 === 0) + point.bias = 1; + } + } + }; + var Marker = function(cm, id, row, column) { + this.cm = cm; + this.id = id; + this.row = row; + this.column = column; + cm.marks[this.id] = this; + }; + Marker.prototype.clear = function() { delete this.cm.marks[this.id] }; + Marker.prototype.find = function() { return toCmPos(this) }; + this.setBookmark = function(cursor, options) { + var bm = new Marker(this, this.$uid++, cursor.line, cursor.ch); + if (!options || !options.insertLeft) + bm.$insertRight = true; + this.marks[bm.id] = bm; + return bm; + }; + this.moveH = function(increment, unit) { + if (unit == 'char') { + var sel = this.ace.selection; + sel.clearSelection(); + sel.moveCursorBy(0, increment); + } + }; + this.findPosV = function(start, amount, unit, goalColumn) { + if (unit == 'page') { + var renderer = this.ace.renderer; + var config = renderer.layerConfig; + amount = amount * Math.floor(config.height / config.lineHeight); + unit = 'line'; + } + if (unit == 'line') { + var screenPos = this.ace.session.documentToScreenPosition(start.line, start.ch); + if (goalColumn != null) + screenPos.column = goalColumn; + screenPos.row += amount; + screenPos.row = Math.min(Math.max(0, screenPos.row), this.ace.session.getScreenLength() - 1); + var pos = this.ace.session.screenToDocumentPosition(screenPos.row, screenPos.column); + return toCmPos(pos); + } else { + debugger; + } + }; + this.charCoords = function(pos, mode) { + if (mode == 'div' || !mode) { + var sc = this.ace.session.documentToScreenPosition(pos.line, pos.ch); + return {left: sc.column, top: sc.row}; + }if (mode == 'local') { + var renderer = this.ace.renderer; + var sc = this.ace.session.documentToScreenPosition(pos.line, pos.ch); + var lh = renderer.layerConfig.lineHeight; + var cw = renderer.layerConfig.characterWidth; + var top = lh * sc.row; + return {left: sc.column * cw, top: top, bottom: top + lh}; + } + }; + this.coordsChar = function(pos, mode) { + var renderer = this.ace.renderer; + if (mode == 'local') { + var row = Math.max(0, Math.floor(pos.top / renderer.lineHeight)); + var col = Math.max(0, Math.floor(pos.left / renderer.characterWidth)); + var ch = renderer.session.screenToDocumentPosition(row, col); + return toCmPos(ch); + } else if (mode == 'div') { + throw "not implemented"; + } + }; + this.getSearchCursor = function(query, pos, caseFold) { + var caseSensitive = false; + var isRegexp = false; + if (query instanceof RegExp && !query.global) { + caseSensitive = !query.ignoreCase; + query = query.source; + isRegexp = true; + } + var search = new Search(); + if (pos.ch == undefined) pos.ch = Number.MAX_VALUE; + var acePos = {row: pos.line, column: pos.ch}; + var cm = this; + var last = null; + return { + findNext: function() { return this.find(false) }, + findPrevious: function() {return this.find(true) }, + find: function(back) { + search.setOptions({ + needle: query, + caseSensitive: caseSensitive, + wrap: false, + backwards: back, + regExp: isRegexp, + start: last || acePos + }); + var range = search.find(cm.ace.session); + if (range && range.isEmpty()) { + if (cm.getLine(range.start.row).length == range.start.column) { + search.$options.start = range; + range = search.find(cm.ace.session); + } + } + last = range; + return last; + }, + from: function() { return last && toCmPos(last.start) }, + to: function() { return last && toCmPos(last.end) }, + replace: function(text) { + if (last) { + last.end = cm.ace.session.doc.replace(last, text); + } + } + }; + }; + this.scrollTo = function(x, y) { + var renderer = this.ace.renderer; + var config = renderer.layerConfig; + var maxHeight = config.maxHeight; + maxHeight -= (renderer.$size.scrollerHeight - renderer.lineHeight) * renderer.$scrollPastEnd; + if (y != null) this.ace.session.setScrollTop(Math.max(0, Math.min(y, maxHeight))); + if (x != null) this.ace.session.setScrollLeft(Math.max(0, Math.min(x, config.width))); + }; + this.scrollInfo = function() { return 0; }; + this.scrollIntoView = function(pos, margin) { + if (pos) { + var renderer = this.ace.renderer; + var viewMargin = { "top": 0, "bottom": margin }; + renderer.scrollCursorIntoView(toAcePos(pos), + (renderer.lineHeight * 2) / renderer.$size.scrollerHeight, viewMargin); + } + }; + this.getLine = function(row) { return this.ace.session.getLine(row) }; + this.getRange = function(s, e) { + return this.ace.session.getTextRange(new Range(s.line, s.ch, e.line, e.ch)); + }; + this.replaceRange = function(text, s, e) { + if (!e) e = s; + return this.ace.session.replace(new Range(s.line, s.ch, e.line, e.ch), text); + }; + this.replaceSelections = function(p) { + var sel = this.ace.selection; + if (this.ace.inVirtualSelectionMode) { + this.ace.session.replace(sel.getRange(), p[0] || ""); + return; + } + sel.inVirtualSelectionMode = true; + var ranges = sel.rangeList.ranges; + if (!ranges.length) ranges = [this.ace.multiSelect.getRange()]; + for (var i = ranges.length; i--;) + this.ace.session.replace(ranges[i], p[i] || ""); + sel.inVirtualSelectionMode = false; + }; + this.getSelection = function() { + return this.ace.getSelectedText(); + }; + this.getSelections = function() { + return this.listSelections().map(function(x) { + return this.getRange(x.anchor, x.head); + }, this); + }; + this.getInputField = function() { + return this.ace.textInput.getElement(); + }; + this.getWrapperElement = function() { + return this.ace.containter; + }; + var optMap = { + indentWithTabs: "useSoftTabs", + indentUnit: "tabSize", + tabSize: "tabSize", + firstLineNumber: "firstLineNumber", + readOnly: "readOnly" + }; + this.setOption = function(name, val) { + this.state[name] = val; + switch (name) { + case 'indentWithTabs': + name = optMap[name]; + val = !val; + break; + default: + name = optMap[name]; + } + if (name) + this.ace.setOption(name, val); + }; + this.getOption = function(name, val) { + var aceOpt = optMap[name]; + if (aceOpt) + val = this.ace.getOption(aceOpt); + switch (name) { + case 'indentWithTabs': + name = optMap[name]; + return !val; + } + return aceOpt ? val : this.state[name]; + }; + this.toggleOverwrite = function(on) { + this.state.overwrite = on; + return this.ace.setOverwrite(on); + }; + this.addOverlay = function(o) { + if (!this.$searchHighlight || !this.$searchHighlight.session) { + var highlight = new SearchHighlight(null, "ace_highlight-marker", "text"); + var marker = this.ace.session.addDynamicMarker(highlight); + highlight.id = marker.id; + highlight.session = this.ace.session; + highlight.destroy = function(o) { + highlight.session.off("change", highlight.updateOnChange); + highlight.session.off("changeEditor", highlight.destroy); + highlight.session.removeMarker(highlight.id); + highlight.session = null; + }; + highlight.updateOnChange = function(delta) { + var row = delta.start.row; + if (row == delta.end.row) highlight.cache[row] = undefined; + else highlight.cache.splice(row, highlight.cache.length); + }; + highlight.session.on("changeEditor", highlight.destroy); + highlight.session.on("change", highlight.updateOnChange); + } + var re = new RegExp(o.query.source, "gmi"); + this.$searchHighlight = o.highlight = highlight; + this.$searchHighlight.setRegexp(re); + this.ace.renderer.updateBackMarkers(); + }; + this.removeOverlay = function(o) { + if (this.$searchHighlight && this.$searchHighlight.session) { + this.$searchHighlight.destroy(); + } + }; + this.getScrollInfo = function() { + var renderer = this.ace.renderer; + var config = renderer.layerConfig; + return { + left: renderer.scrollLeft, + top: renderer.scrollTop, + height: config.maxHeight, + width: config.width, + clientHeight: config.height, + clientWidth: config.width + }; + }; + this.getValue = function() { + return this.ace.getValue(); + }; + this.setValue = function(v) { + return this.ace.setValue(v); + }; + this.getTokenTypeAt = function(pos) { + var token = this.ace.session.getTokenAt(pos.line, pos.ch); + return token && /comment|string/.test(token.type) ? "string" : ""; + }; + this.findMatchingBracket = function(pos) { + var m = this.ace.session.findMatchingBracket(toAcePos(pos)); + return {to: m && toCmPos(m)}; + }; + this.indentLine = function(line, method) { + if (method === true) + this.ace.session.indentRows(line, line, "\t"); + else if (method === false) + this.ace.session.outdentRows(new Range(line, 0, line, 0)); + }; + this.indexFromPos = function(pos) { + return this.ace.session.doc.positionToIndex(toAcePos(pos)); + }; + this.posFromIndex = function(index) { + return toCmPos(this.ace.session.doc.indexToPosition(index)); + }; + this.focus = function(index) { + return this.ace.focus(); + }; + this.blur = function(index) { + return this.ace.blur(); + }; + this.defaultTextHeight = function(index) { + return this.ace.renderer.layerConfig.lineHeight; + }; + this.scanForBracket = function(pos, dir, _, options) { + var re = options.bracketRegex.source; + if (dir == 1) { + var m = this.ace.session.$findClosingBracket(re.slice(1, 2), toAcePos(pos), /paren|text/); + } else { + var m = this.ace.session.$findOpeningBracket(re.slice(-2, -1), {row: pos.line, column: pos.ch + 1}, /paren|text/); + } + return m && {pos: toCmPos(m)}; + }; + this.refresh = function() { + return this.ace.resize(true); + }; + this.getMode = function() { + return { name : this.getOption("mode") }; + } +}).call(CodeMirror.prototype); + function toAcePos(cmPos) { + return {row: cmPos.line, column: cmPos.ch}; + } + function toCmPos(acePos) { + return new Pos(acePos.row, acePos.column); + } + + var StringStream = CodeMirror.StringStream = function(string, tabSize) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + }; + + StringStream.prototype = { + eol: function() {return this.pos >= this.string.length;}, + sol: function() {return this.pos == this.lineStart;}, + peek: function() {return this.string.charAt(this.pos) || undefined;}, + next: function() { + if (this.pos < this.string.length) + return this.string.charAt(this.pos++); + }, + eat: function(match) { + var ch = this.string.charAt(this.pos); + if (typeof match == "string") var ok = ch == match; + else var ok = ch && (match.test ? match.test(ch) : match(ch)); + if (ok) {++this.pos; return ch;} + }, + eatWhile: function(match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start; + }, + eatSpace: function() { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; + return this.pos > start; + }, + skipToEnd: function() {this.pos = this.string.length;}, + skipTo: function(ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true;} + }, + backUp: function(n) {this.pos -= n;}, + column: function() { + throw "not implemented"; + }, + indentation: function() { + throw "not implemented"; + }, + match: function(pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function(str) {return caseInsensitive ? str.toLowerCase() : str;}; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) this.pos += pattern.length; + return true; + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) return null; + if (match && consume !== false) this.pos += match[0].length; + return match; + } + }, + current: function(){return this.string.slice(this.start, this.pos);}, + hideFirstChars: function(n, inner) { + this.lineStart += n; + try { return inner(); } + finally { this.lineStart -= n; } + } + }; +CodeMirror.defineExtension = function(name, fn) { + CodeMirror.prototype[name] = fn; +}; +dom.importCssString(".normal-mode .ace_cursor{\ + border: 1px solid red;\ + background-color: red;\ + opacity: 0.5;\ +}\ +.normal-mode .ace_hidden-cursors .ace_cursor{\ + background-color: transparent;\ +}\ +.ace_dialog {\ + position: absolute;\ + left: 0; right: 0;\ + background: white;\ + z-index: 15;\ + padding: .1em .8em;\ + overflow: hidden;\ + color: #333;\ +}\ +.ace_dialog-top {\ + border-bottom: 1px solid #eee;\ + top: 0;\ +}\ +.ace_dialog-bottom {\ + border-top: 1px solid #eee;\ + bottom: 0;\ +}\ +.ace_dialog input {\ + border: none;\ + outline: none;\ + background: transparent;\ + width: 20em;\ + color: inherit;\ + font-family: monospace;\ +}", "vimMode"); +(function() { + function dialogDiv(cm, template, bottom) { + var wrap = cm.ace.container; + var dialog; + dialog = wrap.appendChild(document.createElement("div")); + if (bottom) + dialog.className = "ace_dialog ace_dialog-bottom"; + else + dialog.className = "ace_dialog ace_dialog-top"; + + if (typeof template == "string") { + dialog.innerHTML = template; + } else { // Assuming it's a detached DOM element. + dialog.appendChild(template); + } + return dialog; + } + + function closeNotification(cm, newVal) { + if (cm.state.currentNotificationClose) + cm.state.currentNotificationClose(); + cm.state.currentNotificationClose = newVal; + } + + CodeMirror.defineExtension("openDialog", function(template, callback, options) { + if (this.virtualSelectionMode()) return; + if (!options) options = {}; + + closeNotification(this, null); + + var dialog = dialogDiv(this, template, options.bottom); + var closed = false, me = this; + function close(newVal) { + if (typeof newVal == 'string') { + inp.value = newVal; + } else { + if (closed) return; + closed = true; + dialog.parentNode.removeChild(dialog); + me.focus(); + + if (options.onClose) options.onClose(dialog); + } + } + + var inp = dialog.getElementsByTagName("input")[0], button; + if (inp) { + if (options.value) { + inp.value = options.value; + if (options.select !== false) inp.select(); + } + + if (options.onInput) + CodeMirror.on(inp, "input", function(e) { options.onInput(e, inp.value, close);}); + if (options.onKeyUp) + CodeMirror.on(inp, "keyup", function(e) {options.onKeyUp(e, inp.value, close);}); + + CodeMirror.on(inp, "keydown", function(e) { + if (options && options.onKeyDown && options.onKeyDown(e, inp.value, close)) { return; } + if (e.keyCode == 27 || (options.closeOnEnter !== false && e.keyCode == 13)) { + inp.blur(); + CodeMirror.e_stop(e); + close(); + } + if (e.keyCode == 13) callback(inp.value); + }); + + if (options.closeOnBlur !== false) CodeMirror.on(inp, "blur", close); + + inp.focus(); + } else if (button = dialog.getElementsByTagName("button")[0]) { + CodeMirror.on(button, "click", function() { + close(); + me.focus(); + }); + + if (options.closeOnBlur !== false) CodeMirror.on(button, "blur", close); + + button.focus(); + } + return close; + }); + + CodeMirror.defineExtension("openNotification", function(template, options) { + if (this.virtualSelectionMode()) return; + closeNotification(this, close); + var dialog = dialogDiv(this, template, options && options.bottom); + var closed = false, doneTimer; + var duration = options && typeof options.duration !== "undefined" ? options.duration : 5000; + + function close() { + if (closed) return; + closed = true; + clearTimeout(doneTimer); + dialog.parentNode.removeChild(dialog); + } + + CodeMirror.on(dialog, 'click', function(e) { + CodeMirror.e_preventDefault(e); + close(); + }); + + if (duration) + doneTimer = setTimeout(close, duration); + + return close; + }); +})(); + + + var defaultKeymap = [ + { keys: '', type: 'keyToKey', toKeys: 'h' }, + { keys: '', type: 'keyToKey', toKeys: 'l' }, + { keys: '', type: 'keyToKey', toKeys: 'k' }, + { keys: '', type: 'keyToKey', toKeys: 'j' }, + { keys: '', type: 'keyToKey', toKeys: 'l' }, + { keys: '', type: 'keyToKey', toKeys: 'h', context: 'normal'}, + { keys: '', type: 'keyToKey', toKeys: 'W' }, + { keys: '', type: 'keyToKey', toKeys: 'B', context: 'normal' }, + { keys: '', type: 'keyToKey', toKeys: 'w' }, + { keys: '', type: 'keyToKey', toKeys: 'b', context: 'normal' }, + { keys: '', type: 'keyToKey', toKeys: 'j' }, + { keys: '', type: 'keyToKey', toKeys: 'k' }, + { keys: '', type: 'keyToKey', toKeys: '' }, + { keys: '', type: 'keyToKey', toKeys: '' }, + { keys: '', type: 'keyToKey', toKeys: '', context: 'insert' }, + { keys: '', type: 'keyToKey', toKeys: '', context: 'insert' }, + { keys: 's', type: 'keyToKey', toKeys: 'cl', context: 'normal' }, + { keys: 's', type: 'keyToKey', toKeys: 'c', context: 'visual'}, + { keys: 'S', type: 'keyToKey', toKeys: 'cc', context: 'normal' }, + { keys: 'S', type: 'keyToKey', toKeys: 'VdO', context: 'visual' }, + { keys: '', type: 'keyToKey', toKeys: '0' }, + { keys: '', type: 'keyToKey', toKeys: '$' }, + { keys: '', type: 'keyToKey', toKeys: '' }, + { keys: '', type: 'keyToKey', toKeys: '' }, + { keys: '', type: 'keyToKey', toKeys: 'j^', context: 'normal' }, + { keys: 'H', type: 'motion', motion: 'moveToTopLine', motionArgs: { linewise: true, toJumplist: true }}, + { keys: 'M', type: 'motion', motion: 'moveToMiddleLine', motionArgs: { linewise: true, toJumplist: true }}, + { keys: 'L', type: 'motion', motion: 'moveToBottomLine', motionArgs: { linewise: true, toJumplist: true }}, + { keys: 'h', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: false }}, + { keys: 'l', type: 'motion', motion: 'moveByCharacters', motionArgs: { forward: true }}, + { keys: 'j', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, linewise: true }}, + { keys: 'k', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, linewise: true }}, + { keys: 'gj', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: true }}, + { keys: 'gk', type: 'motion', motion: 'moveByDisplayLines', motionArgs: { forward: false }}, + { keys: 'w', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false }}, + { keys: 'W', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: false, bigWord: true }}, + { keys: 'e', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, inclusive: true }}, + { keys: 'E', type: 'motion', motion: 'moveByWords', motionArgs: { forward: true, wordEnd: true, bigWord: true, inclusive: true }}, + { keys: 'b', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }}, + { keys: 'B', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false, bigWord: true }}, + { keys: 'ge', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, inclusive: true }}, + { keys: 'gE', type: 'motion', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: true, bigWord: true, inclusive: true }}, + { keys: '{', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: false, toJumplist: true }}, + { keys: '}', type: 'motion', motion: 'moveByParagraph', motionArgs: { forward: true, toJumplist: true }}, + { keys: '', type: 'motion', motion: 'moveByPage', motionArgs: { forward: true }}, + { keys: '', type: 'motion', motion: 'moveByPage', motionArgs: { forward: false }}, + { keys: '', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: true, explicitRepeat: true }}, + { keys: '', type: 'motion', motion: 'moveByScroll', motionArgs: { forward: false, explicitRepeat: true }}, + { keys: 'gg', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: false, explicitRepeat: true, linewise: true, toJumplist: true }}, + { keys: 'G', type: 'motion', motion: 'moveToLineOrEdgeOfDocument', motionArgs: { forward: true, explicitRepeat: true, linewise: true, toJumplist: true }}, + { keys: '0', type: 'motion', motion: 'moveToStartOfLine' }, + { keys: '^', type: 'motion', motion: 'moveToFirstNonWhiteSpaceCharacter' }, + { keys: '+', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true }}, + { keys: '-', type: 'motion', motion: 'moveByLines', motionArgs: { forward: false, toFirstChar:true }}, + { keys: '_', type: 'motion', motion: 'moveByLines', motionArgs: { forward: true, toFirstChar:true, repeatOffset:-1 }}, + { keys: '$', type: 'motion', motion: 'moveToEol', motionArgs: { inclusive: true }}, + { keys: '%', type: 'motion', motion: 'moveToMatchedSymbol', motionArgs: { inclusive: true, toJumplist: true }}, + { keys: 'f', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: true , inclusive: true }}, + { keys: 'F', type: 'motion', motion: 'moveToCharacter', motionArgs: { forward: false }}, + { keys: 't', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: true, inclusive: true }}, + { keys: 'T', type: 'motion', motion: 'moveTillCharacter', motionArgs: { forward: false }}, + { keys: ';', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: true }}, + { keys: ',', type: 'motion', motion: 'repeatLastCharacterSearch', motionArgs: { forward: false }}, + { keys: '\'', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true, linewise: true}}, + { keys: '`', type: 'motion', motion: 'goToMark', motionArgs: {toJumplist: true}}, + { keys: ']`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true } }, + { keys: '[`', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false } }, + { keys: ']\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: true, linewise: true } }, + { keys: '[\'', type: 'motion', motion: 'jumpToMark', motionArgs: { forward: false, linewise: true } }, + { keys: ']p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true, matchIndent: true}}, + { keys: '[p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true, matchIndent: true}}, + { keys: ']', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: true, toJumplist: true}}, + { keys: '[', type: 'motion', motion: 'moveToSymbol', motionArgs: { forward: false, toJumplist: true}}, + { keys: '|', type: 'motion', motion: 'moveToColumn'}, + { keys: 'o', type: 'motion', motion: 'moveToOtherHighlightedEnd', context:'visual'}, + { keys: 'O', type: 'motion', motion: 'moveToOtherHighlightedEnd', motionArgs: {sameLine: true}, context:'visual'}, + { keys: 'd', type: 'operator', operator: 'delete' }, + { keys: 'y', type: 'operator', operator: 'yank' }, + { keys: 'c', type: 'operator', operator: 'change' }, + { keys: '>', type: 'operator', operator: 'indent', operatorArgs: { indentRight: true }}, + { keys: '<', type: 'operator', operator: 'indent', operatorArgs: { indentRight: false }}, + { keys: 'g~', type: 'operator', operator: 'changeCase' }, + { keys: 'gu', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, isEdit: true }, + { keys: 'gU', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, isEdit: true }, + { keys: 'n', type: 'motion', motion: 'findNext', motionArgs: { forward: true, toJumplist: true }}, + { keys: 'N', type: 'motion', motion: 'findNext', motionArgs: { forward: false, toJumplist: true }}, + { keys: 'x', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorMotionArgs: { visualLine: false }}, + { keys: 'X', type: 'operatorMotion', operator: 'delete', motion: 'moveByCharacters', motionArgs: { forward: false }, operatorMotionArgs: { visualLine: true }}, + { keys: 'D', type: 'operatorMotion', operator: 'delete', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'}, + { keys: 'D', type: 'operator', operator: 'delete', operatorArgs: { linewise: true }, context: 'visual'}, + { keys: 'Y', type: 'operatorMotion', operator: 'yank', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'}, + { keys: 'Y', type: 'operator', operator: 'yank', operatorArgs: { linewise: true }, context: 'visual'}, + { keys: 'C', type: 'operatorMotion', operator: 'change', motion: 'moveToEol', motionArgs: { inclusive: true }, context: 'normal'}, + { keys: 'C', type: 'operator', operator: 'change', operatorArgs: { linewise: true }, context: 'visual'}, + { keys: '~', type: 'operatorMotion', operator: 'changeCase', motion: 'moveByCharacters', motionArgs: { forward: true }, operatorArgs: { shouldMoveCursor: true }, context: 'normal'}, + { keys: '~', type: 'operator', operator: 'changeCase', context: 'visual'}, + { keys: '', type: 'operatorMotion', operator: 'delete', motion: 'moveByWords', motionArgs: { forward: false, wordEnd: false }, context: 'insert' }, + { keys: '', type: 'action', action: 'jumpListWalk', actionArgs: { forward: true }}, + { keys: '', type: 'action', action: 'jumpListWalk', actionArgs: { forward: false }}, + { keys: '', type: 'action', action: 'scroll', actionArgs: { forward: true, linewise: true }}, + { keys: '', type: 'action', action: 'scroll', actionArgs: { forward: false, linewise: true }}, + { keys: 'a', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'charAfter' }, context: 'normal' }, + { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'eol' }, context: 'normal' }, + { keys: 'A', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'endOfSelectedArea' }, context: 'visual' }, + { keys: 'i', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'inplace' }, context: 'normal' }, + { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'firstNonBlank'}, context: 'normal' }, + { keys: 'I', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { insertAt: 'startOfSelectedArea' }, context: 'visual' }, + { keys: 'o', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: true }, context: 'normal' }, + { keys: 'O', type: 'action', action: 'newLineAndEnterInsertMode', isEdit: true, interlaceInsertRepeat: true, actionArgs: { after: false }, context: 'normal' }, + { keys: 'v', type: 'action', action: 'toggleVisualMode' }, + { keys: 'V', type: 'action', action: 'toggleVisualMode', actionArgs: { linewise: true }}, + { keys: '', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }}, + { keys: '', type: 'action', action: 'toggleVisualMode', actionArgs: { blockwise: true }}, + { keys: 'gv', type: 'action', action: 'reselectLastSelection' }, + { keys: 'J', type: 'action', action: 'joinLines', isEdit: true }, + { keys: 'p', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: true, isEdit: true }}, + { keys: 'P', type: 'action', action: 'paste', isEdit: true, actionArgs: { after: false, isEdit: true }}, + { keys: 'r', type: 'action', action: 'replace', isEdit: true }, + { keys: '@', type: 'action', action: 'replayMacro' }, + { keys: 'q', type: 'action', action: 'enterMacroRecordMode' }, + { keys: 'R', type: 'action', action: 'enterInsertMode', isEdit: true, actionArgs: { replace: true }}, + { keys: 'u', type: 'action', action: 'undo', context: 'normal' }, + { keys: 'u', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: true}, context: 'visual', isEdit: true }, + { keys: 'U', type: 'operator', operator: 'changeCase', operatorArgs: {toLower: false}, context: 'visual', isEdit: true }, + { keys: '', type: 'action', action: 'redo' }, + { keys: 'm', type: 'action', action: 'setMark' }, + { keys: '"', type: 'action', action: 'setRegister' }, + { keys: 'zz', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }}, + { keys: 'z.', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'center' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, + { keys: 'zt', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }}, + { keys: 'z', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'top' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, + { keys: 'z-', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }}, + { keys: 'zb', type: 'action', action: 'scrollToCursor', actionArgs: { position: 'bottom' }, motion: 'moveToFirstNonWhiteSpaceCharacter' }, + { keys: '.', type: 'action', action: 'repeatLastEdit' }, + { keys: '', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: true, backtrack: false}}, + { keys: '', type: 'action', action: 'incrementNumberToken', isEdit: true, actionArgs: {increase: false, backtrack: false}}, + { keys: 'a', type: 'motion', motion: 'textObjectManipulation' }, + { keys: 'i', type: 'motion', motion: 'textObjectManipulation', motionArgs: { textObjectInner: true }}, + { keys: '/', type: 'search', searchArgs: { forward: true, querySrc: 'prompt', toJumplist: true }}, + { keys: '?', type: 'search', searchArgs: { forward: false, querySrc: 'prompt', toJumplist: true }}, + { keys: '*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }}, + { keys: '#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', wholeWordOnly: true, toJumplist: true }}, + { keys: 'g*', type: 'search', searchArgs: { forward: true, querySrc: 'wordUnderCursor', toJumplist: true }}, + { keys: 'g#', type: 'search', searchArgs: { forward: false, querySrc: 'wordUnderCursor', toJumplist: true }}, + { keys: ':', type: 'ex' } + ]; + var defaultExCommandMap = [ + { name: 'colorscheme', shortName: 'colo' }, + { name: 'map' }, + { name: 'imap', shortName: 'im' }, + { name: 'nmap', shortName: 'nm' }, + { name: 'vmap', shortName: 'vm' }, + { name: 'unmap' }, + { name: 'write', shortName: 'w' }, + { name: 'undo', shortName: 'u' }, + { name: 'redo', shortName: 'red' }, + { name: 'set', shortName: 'se' }, + { name: 'set', shortName: 'se' }, + { name: 'setlocal', shortName: 'setl' }, + { name: 'setglobal', shortName: 'setg' }, + { name: 'sort', shortName: 'sor' }, + { name: 'substitute', shortName: 's', possiblyAsync: true }, + { name: 'nohlsearch', shortName: 'noh' }, + { name: 'delmarks', shortName: 'delm' }, + { name: 'registers', shortName: 'reg', excludeFromCommandHistory: true }, + { name: 'global', shortName: 'g' } + ]; + + var Pos = CodeMirror.Pos; + + var Vim = function() { return vimApi; } //{ + function enterVimMode(cm) { + cm.setOption('disableInput', true); + cm.setOption('showCursorWhenSelecting', false); + CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"}); + cm.on('cursorActivity', onCursorActivity); + maybeInitVimState(cm); + CodeMirror.on(cm.getInputField(), 'paste', getOnPasteFn(cm)); + } + + function leaveVimMode(cm) { + cm.setOption('disableInput', false); + cm.off('cursorActivity', onCursorActivity); + CodeMirror.off(cm.getInputField(), 'paste', getOnPasteFn(cm)); + cm.state.vim = null; + } + + function detachVimMap(cm, next) { + if (this == CodeMirror.keyMap.vim) + CodeMirror.rmClass(cm.getWrapperElement(), "cm-fat-cursor"); + + if (!next || next.attach != attachVimMap) + leaveVimMode(cm, false); + } + function attachVimMap(cm, prev) { + if (this == CodeMirror.keyMap.vim) + CodeMirror.addClass(cm.getWrapperElement(), "cm-fat-cursor"); + + if (!prev || prev.attach != attachVimMap) + enterVimMode(cm); + } + CodeMirror.defineOption('vimMode', false, function(cm, val, prev) { + if (val && cm.getOption("keyMap") != "vim") + cm.setOption("keyMap", "vim"); + else if (!val && prev != CodeMirror.Init && /^vim/.test(cm.getOption("keyMap"))) + cm.setOption("keyMap", "default"); + }); + + function cmKey(key, cm) { + if (!cm) { return undefined; } + var vimKey = cmKeyToVimKey(key); + if (!vimKey) { + return false; + } + var cmd = CodeMirror.Vim.findKey(cm, vimKey); + if (typeof cmd == 'function') { + CodeMirror.signal(cm, 'vim-keypress', vimKey); + } + return cmd; + } + + var modifiers = {'Shift': 'S', 'Ctrl': 'C', 'Alt': 'A', 'Cmd': 'D', 'Mod': 'A'}; + var specialKeys = {Enter:'CR',Backspace:'BS',Delete:'Del'}; + function cmKeyToVimKey(key) { + if (key.charAt(0) == '\'') { + return key.charAt(1); + } + var pieces = key.split(/-(?!$)/); + var lastPiece = pieces[pieces.length - 1]; + if (pieces.length == 1 && pieces[0].length == 1) { + return false; + } else if (pieces.length == 2 && pieces[0] == 'Shift' && lastPiece.length == 1) { + return false; + } + var hasCharacter = false; + for (var i = 0; i < pieces.length; i++) { + var piece = pieces[i]; + if (piece in modifiers) { pieces[i] = modifiers[piece]; } + else { hasCharacter = true; } + if (piece in specialKeys) { pieces[i] = specialKeys[piece]; } + } + if (!hasCharacter) { + return false; + } + if (isUpperCase(lastPiece)) { + pieces[pieces.length - 1] = lastPiece.toLowerCase(); + } + return '<' + pieces.join('-') + '>'; + } + + function getOnPasteFn(cm) { + var vim = cm.state.vim; + if (!vim.onPasteFn) { + vim.onPasteFn = function() { + if (!vim.insertMode) { + cm.setCursor(offsetCursor(cm.getCursor(), 0, 1)); + actions.enterInsertMode(cm, {}, vim); + } + }; + } + return vim.onPasteFn; + } + + var numberRegex = /[\d]/; + var wordCharTest = [CodeMirror.isWordChar, function(ch) { + return ch && !CodeMirror.isWordChar(ch) && !/\s/.test(ch); + }], bigWordCharTest = [function(ch) { + return /\S/.test(ch); + }]; + function makeKeyRange(start, size) { + var keys = []; + for (var i = start; i < start + size; i++) { + keys.push(String.fromCharCode(i)); + } + return keys; + } + var upperCaseAlphabet = makeKeyRange(65, 26); + var lowerCaseAlphabet = makeKeyRange(97, 26); + var numbers = makeKeyRange(48, 10); + var validMarks = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['<', '>']); + var validRegisters = [].concat(upperCaseAlphabet, lowerCaseAlphabet, numbers, ['-', '"', '.', ':', '/']); + + function isLine(cm, line) { + return line >= cm.firstLine() && line <= cm.lastLine(); + } + function isLowerCase(k) { + return (/^[a-z]$/).test(k); + } + function isMatchableSymbol(k) { + return '()[]{}'.indexOf(k) != -1; + } + function isNumber(k) { + return numberRegex.test(k); + } + function isUpperCase(k) { + return (/^[A-Z]$/).test(k); + } + function isWhiteSpaceString(k) { + return (/^\s*$/).test(k); + } + function inArray(val, arr) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == val) { + return true; + } + } + return false; + } + + var options = {}; + function defineOption(name, defaultValue, type, aliases, callback) { + if (defaultValue === undefined && !callback) { + throw Error('defaultValue is required unless callback is provided'); + } + if (!type) { type = 'string'; } + options[name] = { + type: type, + defaultValue: defaultValue, + callback: callback + }; + if (aliases) { + for (var i = 0; i < aliases.length; i++) { + options[aliases[i]] = options[name]; + } + } + if (defaultValue) { + setOption(name, defaultValue); + } + } + + function setOption(name, value, cm, cfg) { + var option = options[name]; + cfg = cfg || {}; + var scope = cfg.scope; + if (!option) { + throw Error('Unknown option: ' + name); + } + if (option.type == 'boolean') { + if (value && value !== true) { + throw Error('Invalid argument: ' + name + '=' + value); + } else if (value !== false) { + value = true; + } + } + if (option.callback) { + if (scope !== 'local') { + option.callback(value, undefined); + } + if (scope !== 'global' && cm) { + option.callback(value, cm); + } + } else { + if (scope !== 'local') { + option.value = option.type == 'boolean' ? !!value : value; + } + if (scope !== 'global' && cm) { + cm.state.vim.options[name] = {value: value}; + } + } + } + + function getOption(name, cm, cfg) { + var option = options[name]; + cfg = cfg || {}; + var scope = cfg.scope; + if (!option) { + throw Error('Unknown option: ' + name); + } + if (option.callback) { + var local = cm && option.callback(undefined, cm); + if (scope !== 'global' && local !== undefined) { + return local; + } + if (scope !== 'local') { + return option.callback(); + } + return; + } else { + var local = (scope !== 'global') && (cm && cm.state.vim.options[name]); + return (local || (scope !== 'local') && option || {}).value; + } + } + + defineOption('filetype', undefined, 'string', ['ft'], function(name, cm) { + if (cm === undefined) { + return; + } + if (name === undefined) { + var mode = cm.getOption('mode'); + return mode == 'null' ? '' : mode; + } else { + var mode = name == '' ? 'null' : name; + cm.setOption('mode', mode); + } + }); + + var createCircularJumpList = function() { + var size = 100; + var pointer = -1; + var head = 0; + var tail = 0; + var buffer = new Array(size); + function add(cm, oldCur, newCur) { + var current = pointer % size; + var curMark = buffer[current]; + function useNextSlot(cursor) { + var next = ++pointer % size; + var trashMark = buffer[next]; + if (trashMark) { + trashMark.clear(); + } + buffer[next] = cm.setBookmark(cursor); + } + if (curMark) { + var markPos = curMark.find(); + if (markPos && !cursorEqual(markPos, oldCur)) { + useNextSlot(oldCur); + } + } else { + useNextSlot(oldCur); + } + useNextSlot(newCur); + head = pointer; + tail = pointer - size + 1; + if (tail < 0) { + tail = 0; + } + } + function move(cm, offset) { + pointer += offset; + if (pointer > head) { + pointer = head; + } else if (pointer < tail) { + pointer = tail; + } + var mark = buffer[(size + pointer) % size]; + if (mark && !mark.find()) { + var inc = offset > 0 ? 1 : -1; + var newCur; + var oldCur = cm.getCursor(); + do { + pointer += inc; + mark = buffer[(size + pointer) % size]; + if (mark && + (newCur = mark.find()) && + !cursorEqual(oldCur, newCur)) { + break; + } + } while (pointer < head && pointer > tail); + } + return mark; + } + return { + cachedCursor: undefined, //used for # and * jumps + add: add, + move: move + }; + }; + var createInsertModeChanges = function(c) { + if (c) { + return { + changes: c.changes, + expectCursorActivityForChange: c.expectCursorActivityForChange + }; + } + return { + changes: [], + expectCursorActivityForChange: false + }; + }; + + function MacroModeState() { + this.latestRegister = undefined; + this.isPlaying = false; + this.isRecording = false; + this.replaySearchQueries = []; + this.onRecordingDone = undefined; + this.lastInsertModeChanges = createInsertModeChanges(); + } + MacroModeState.prototype = { + exitMacroRecordMode: function() { + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.onRecordingDone) { + macroModeState.onRecordingDone(); // close dialog + } + macroModeState.onRecordingDone = undefined; + macroModeState.isRecording = false; + }, + enterMacroRecordMode: function(cm, registerName) { + var register = + vimGlobalState.registerController.getRegister(registerName); + if (register) { + register.clear(); + this.latestRegister = registerName; + if (cm.openDialog) { + this.onRecordingDone = cm.openDialog( + '(recording)['+registerName+']', null, {bottom:true}); + } + this.isRecording = true; + } + } + }; + + function maybeInitVimState(cm) { + if (!cm.state.vim) { + cm.state.vim = { + inputState: new InputState(), + lastEditInputState: undefined, + lastEditActionCommand: undefined, + lastHPos: -1, + lastHSPos: -1, + lastMotion: null, + marks: {}, + fakeCursor: null, + insertMode: false, + insertModeRepeat: undefined, + visualMode: false, + visualLine: false, + visualBlock: false, + lastSelection: null, + lastPastedText: null, + sel: {}, + options: {} + }; + } + return cm.state.vim; + } + var vimGlobalState; + function resetVimGlobalState() { + vimGlobalState = { + searchQuery: null, + searchIsReversed: false, + lastSubstituteReplacePart: undefined, + jumpList: createCircularJumpList(), + macroModeState: new MacroModeState, + lastChararacterSearch: {increment:0, forward:true, selectedCharacter:''}, + registerController: new RegisterController({}), + searchHistoryController: new HistoryController({}), + exCommandHistoryController : new HistoryController({}) + }; + for (var optionName in options) { + var option = options[optionName]; + option.value = option.defaultValue; + } + } + + var lastInsertModeKeyTimer; + var vimApi= { + buildKeyMap: function() { + }, + getRegisterController: function() { + return vimGlobalState.registerController; + }, + resetVimGlobalState_: resetVimGlobalState, + getVimGlobalState_: function() { + return vimGlobalState; + }, + maybeInitVimState_: maybeInitVimState, + + suppressErrorLogging: false, + + InsertModeKey: InsertModeKey, + map: function(lhs, rhs, ctx) { + exCommandDispatcher.map(lhs, rhs, ctx); + }, + unmap: function(lhs, ctx) { + exCommandDispatcher.unmap(lhs, ctx); + }, + setOption: setOption, + getOption: getOption, + defineOption: defineOption, + defineEx: function(name, prefix, func){ + if (!prefix) { + prefix = name; + } else if (name.indexOf(prefix) !== 0) { + throw new Error('(Vim.defineEx) "'+prefix+'" is not a prefix of "'+name+'", command not registered'); + } + exCommands[name]=func; + exCommandDispatcher.commandMap_[prefix]={name:name, shortName:prefix, type:'api'}; + }, + handleKey: function (cm, key, origin) { + var command = this.findKey(cm, key, origin); + if (typeof command === 'function') { + return command(); + } + }, + findKey: function(cm, key, origin) { + var vim = maybeInitVimState(cm); + function handleMacroRecording() { + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.isRecording) { + if (key == 'q') { + macroModeState.exitMacroRecordMode(); + clearInputState(cm); + return true; + } + if (origin != 'mapping') { + logKey(macroModeState, key); + } + } + } + function handleEsc() { + if (key == '') { + clearInputState(cm); + if (vim.visualMode) { + exitVisualMode(cm); + } else if (vim.insertMode) { + exitInsertMode(cm); + } + return true; + } + } + function doKeyToKey(keys) { + var match; + while (keys) { + match = (/<\w+-.+?>|<\w+>|./).exec(keys); + key = match[0]; + keys = keys.substring(match.index + key.length); + CodeMirror.Vim.handleKey(cm, key, 'mapping'); + } + } + + function handleKeyInsertMode() { + if (handleEsc()) { return true; } + var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key; + var keysAreChars = key.length == 1; + var match = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert'); + while (keys.length > 1 && match.type != 'full') { + var keys = vim.inputState.keyBuffer = keys.slice(1); + var thisMatch = commandDispatcher.matchCommand(keys, defaultKeymap, vim.inputState, 'insert'); + if (thisMatch.type != 'none') { match = thisMatch; } + } + if (match.type == 'none') { clearInputState(cm); return false; } + else if (match.type == 'partial') { + if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); } + lastInsertModeKeyTimer = window.setTimeout( + function() { if (vim.insertMode && vim.inputState.keyBuffer) { clearInputState(cm); } }, + getOption('insertModeEscKeysTimeout')); + return !keysAreChars; + } + + if (lastInsertModeKeyTimer) { window.clearTimeout(lastInsertModeKeyTimer); } + if (keysAreChars) { + var selections = cm.listSelections(); + for (var i = 0; i < selections.length; i++) { + var here = selections[i].head; + cm.replaceRange('', offsetCursor(here, 0, -(keys.length - 1)), here, '+input'); + } + vimGlobalState.macroModeState.lastInsertModeChanges.changes.pop(); + } + clearInputState(cm); + return match.command; + } + + function handleKeyNonInsertMode() { + if (handleMacroRecording() || handleEsc()) { return true; } + + var keys = vim.inputState.keyBuffer = vim.inputState.keyBuffer + key; + if (/^[1-9]\d*$/.test(keys)) { return true; } + + var keysMatcher = /^(\d*)(.*)$/.exec(keys); + if (!keysMatcher) { clearInputState(cm); return false; } + var context = vim.visualMode ? 'visual' : + 'normal'; + var match = commandDispatcher.matchCommand(keysMatcher[2] || keysMatcher[1], defaultKeymap, vim.inputState, context); + if (match.type == 'none') { clearInputState(cm); return false; } + else if (match.type == 'partial') { return true; } + + vim.inputState.keyBuffer = ''; + var keysMatcher = /^(\d*)(.*)$/.exec(keys); + if (keysMatcher[1] && keysMatcher[1] != '0') { + vim.inputState.pushRepeatDigit(keysMatcher[1]); + } + return match.command; + } + + var command; + if (vim.insertMode) { command = handleKeyInsertMode(); } + else { command = handleKeyNonInsertMode(); } + if (command === false) { + return undefined; + } else if (command === true) { + return function() { return true; }; + } else { + return function() { + if ((command.operator || command.isEdit) && cm.getOption('readOnly')) + return; // ace_patch + return cm.operation(function() { + cm.curOp.isVimOp = true; + try { + if (command.type == 'keyToKey') { + doKeyToKey(command.toKeys); + } else { + commandDispatcher.processCommand(cm, vim, command); + } + } catch (e) { + cm.state.vim = undefined; + maybeInitVimState(cm); + if (!CodeMirror.Vim.suppressErrorLogging) { + console['log'](e); + } + throw e; + } + return true; + }); + }; + } + }, + handleEx: function(cm, input) { + exCommandDispatcher.processCommand(cm, input); + }, + + defineMotion: defineMotion, + defineAction: defineAction, + defineOperator: defineOperator, + mapCommand: mapCommand, + _mapCommand: _mapCommand, + + defineRegister: defineRegister, + + exitVisualMode: exitVisualMode, + exitInsertMode: exitInsertMode + }; + function InputState() { + this.prefixRepeat = []; + this.motionRepeat = []; + + this.operator = null; + this.operatorArgs = null; + this.motion = null; + this.motionArgs = null; + this.keyBuffer = []; // For matching multi-key commands. + this.registerName = null; // Defaults to the unnamed register. + } + InputState.prototype.pushRepeatDigit = function(n) { + if (!this.operator) { + this.prefixRepeat = this.prefixRepeat.concat(n); + } else { + this.motionRepeat = this.motionRepeat.concat(n); + } + }; + InputState.prototype.getRepeat = function() { + var repeat = 0; + if (this.prefixRepeat.length > 0 || this.motionRepeat.length > 0) { + repeat = 1; + if (this.prefixRepeat.length > 0) { + repeat *= parseInt(this.prefixRepeat.join(''), 10); + } + if (this.motionRepeat.length > 0) { + repeat *= parseInt(this.motionRepeat.join(''), 10); + } + } + return repeat; + }; + + function clearInputState(cm, reason) { + cm.state.vim.inputState = new InputState(); + CodeMirror.signal(cm, 'vim-command-done', reason); + } + function Register(text, linewise, blockwise) { + this.clear(); + this.keyBuffer = [text || '']; + this.insertModeChanges = []; + this.searchQueries = []; + this.linewise = !!linewise; + this.blockwise = !!blockwise; + } + Register.prototype = { + setText: function(text, linewise, blockwise) { + this.keyBuffer = [text || '']; + this.linewise = !!linewise; + this.blockwise = !!blockwise; + }, + pushText: function(text, linewise) { + if (linewise) { + if (!this.linewise) { + this.keyBuffer.push('\n'); + } + this.linewise = true; + } + this.keyBuffer.push(text); + }, + pushInsertModeChanges: function(changes) { + this.insertModeChanges.push(createInsertModeChanges(changes)); + }, + pushSearchQuery: function(query) { + this.searchQueries.push(query); + }, + clear: function() { + this.keyBuffer = []; + this.insertModeChanges = []; + this.searchQueries = []; + this.linewise = false; + }, + toString: function() { + return this.keyBuffer.join(''); + } + }; + function defineRegister(name, register) { + var registers = vimGlobalState.registerController.registers[name]; + if (!name || name.length != 1) { + throw Error('Register name must be 1 character'); + } + registers[name] = register; + validRegisters.push(name); + } + function RegisterController(registers) { + this.registers = registers; + this.unnamedRegister = registers['"'] = new Register(); + registers['.'] = new Register(); + registers[':'] = new Register(); + registers['/'] = new Register(); + } + RegisterController.prototype = { + pushText: function(registerName, operator, text, linewise, blockwise) { + if (linewise && text.charAt(0) == '\n') { + text = text.slice(1) + '\n'; + } + if (linewise && text.charAt(text.length - 1) !== '\n'){ + text += '\n'; + } + var register = this.isValidRegister(registerName) ? + this.getRegister(registerName) : null; + if (!register) { + switch (operator) { + case 'yank': + this.registers['0'] = new Register(text, linewise, blockwise); + break; + case 'delete': + case 'change': + if (text.indexOf('\n') == -1) { + this.registers['-'] = new Register(text, linewise); + } else { + this.shiftNumericRegisters_(); + this.registers['1'] = new Register(text, linewise); + } + break; + } + this.unnamedRegister.setText(text, linewise, blockwise); + return; + } + var append = isUpperCase(registerName); + if (append) { + register.pushText(text, linewise); + } else { + register.setText(text, linewise, blockwise); + } + this.unnamedRegister.setText(register.toString(), linewise); + }, + getRegister: function(name) { + if (!this.isValidRegister(name)) { + return this.unnamedRegister; + } + name = name.toLowerCase(); + if (!this.registers[name]) { + this.registers[name] = new Register(); + } + return this.registers[name]; + }, + isValidRegister: function(name) { + return name && inArray(name, validRegisters); + }, + shiftNumericRegisters_: function() { + for (var i = 9; i >= 2; i--) { + this.registers[i] = this.getRegister('' + (i - 1)); + } + } + }; + function HistoryController() { + this.historyBuffer = []; + this.iterator; + this.initialPrefix = null; + } + HistoryController.prototype = { + nextMatch: function (input, up) { + var historyBuffer = this.historyBuffer; + var dir = up ? -1 : 1; + if (this.initialPrefix === null) this.initialPrefix = input; + for (var i = this.iterator + dir; up ? i >= 0 : i < historyBuffer.length; i+= dir) { + var element = historyBuffer[i]; + for (var j = 0; j <= element.length; j++) { + if (this.initialPrefix == element.substring(0, j)) { + this.iterator = i; + return element; + } + } + } + if (i >= historyBuffer.length) { + this.iterator = historyBuffer.length; + return this.initialPrefix; + } + if (i < 0 ) return input; + }, + pushInput: function(input) { + var index = this.historyBuffer.indexOf(input); + if (index > -1) this.historyBuffer.splice(index, 1); + if (input.length) this.historyBuffer.push(input); + }, + reset: function() { + this.initialPrefix = null; + this.iterator = this.historyBuffer.length; + } + }; + var commandDispatcher = { + matchCommand: function(keys, keyMap, inputState, context) { + var matches = commandMatches(keys, keyMap, context, inputState); + if (!matches.full && !matches.partial) { + return {type: 'none'}; + } else if (!matches.full && matches.partial) { + return {type: 'partial'}; + } + + var bestMatch; + for (var i = 0; i < matches.full.length; i++) { + var match = matches.full[i]; + if (!bestMatch) { + bestMatch = match; + } + } + if (bestMatch.keys.slice(-11) == '') { + var character = lastChar(keys); + if (//.test(character)) return {type: 'none'}; + inputState.selectedCharacter = character; + } + return {type: 'full', command: bestMatch}; + }, + processCommand: function(cm, vim, command) { + vim.inputState.repeatOverride = command.repeatOverride; + switch (command.type) { + case 'motion': + this.processMotion(cm, vim, command); + break; + case 'operator': + this.processOperator(cm, vim, command); + break; + case 'operatorMotion': + this.processOperatorMotion(cm, vim, command); + break; + case 'action': + this.processAction(cm, vim, command); + break; + case 'search': + this.processSearch(cm, vim, command); + break; + case 'ex': + case 'keyToEx': + this.processEx(cm, vim, command); + break; + default: + break; + } + }, + processMotion: function(cm, vim, command) { + vim.inputState.motion = command.motion; + vim.inputState.motionArgs = copyArgs(command.motionArgs); + this.evalInput(cm, vim); + }, + processOperator: function(cm, vim, command) { + var inputState = vim.inputState; + if (inputState.operator) { + if (inputState.operator == command.operator) { + inputState.motion = 'expandToLine'; + inputState.motionArgs = { linewise: true }; + this.evalInput(cm, vim); + return; + } else { + clearInputState(cm); + } + } + inputState.operator = command.operator; + inputState.operatorArgs = copyArgs(command.operatorArgs); + if (vim.visualMode) { + this.evalInput(cm, vim); + } + }, + processOperatorMotion: function(cm, vim, command) { + var visualMode = vim.visualMode; + var operatorMotionArgs = copyArgs(command.operatorMotionArgs); + if (operatorMotionArgs) { + if (visualMode && operatorMotionArgs.visualLine) { + vim.visualLine = true; + } + } + this.processOperator(cm, vim, command); + if (!visualMode) { + this.processMotion(cm, vim, command); + } + }, + processAction: function(cm, vim, command) { + var inputState = vim.inputState; + var repeat = inputState.getRepeat(); + var repeatIsExplicit = !!repeat; + var actionArgs = copyArgs(command.actionArgs) || {}; + if (inputState.selectedCharacter) { + actionArgs.selectedCharacter = inputState.selectedCharacter; + } + if (command.operator) { + this.processOperator(cm, vim, command); + } + if (command.motion) { + this.processMotion(cm, vim, command); + } + if (command.motion || command.operator) { + this.evalInput(cm, vim); + } + actionArgs.repeat = repeat || 1; + actionArgs.repeatIsExplicit = repeatIsExplicit; + actionArgs.registerName = inputState.registerName; + clearInputState(cm); + vim.lastMotion = null; + if (command.isEdit) { + this.recordLastEdit(vim, inputState, command); + } + actions[command.action](cm, actionArgs, vim); + }, + processSearch: function(cm, vim, command) { + if (!cm.getSearchCursor) { + return; + } + var forward = command.searchArgs.forward; + var wholeWordOnly = command.searchArgs.wholeWordOnly; + getSearchState(cm).setReversed(!forward); + var promptPrefix = (forward) ? '/' : '?'; + var originalQuery = getSearchState(cm).getQuery(); + var originalScrollPos = cm.getScrollInfo(); + function handleQuery(query, ignoreCase, smartCase) { + vimGlobalState.searchHistoryController.pushInput(query); + vimGlobalState.searchHistoryController.reset(); + try { + updateSearchQuery(cm, query, ignoreCase, smartCase); + } catch (e) { + showConfirm(cm, 'Invalid regex: ' + query); + clearInputState(cm); + return; + } + commandDispatcher.processMotion(cm, vim, { + type: 'motion', + motion: 'findNext', + motionArgs: { forward: true, toJumplist: command.searchArgs.toJumplist } + }); + } + function onPromptClose(query) { + cm.scrollTo(originalScrollPos.left, originalScrollPos.top); + handleQuery(query, true /** ignoreCase */, true /** smartCase */); + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.isRecording) { + logSearchQuery(macroModeState, query); + } + } + function onPromptKeyUp(e, query, close) { + var keyName = CodeMirror.keyName(e), up; + if (keyName == 'Up' || keyName == 'Down') { + up = keyName == 'Up' ? true : false; + query = vimGlobalState.searchHistoryController.nextMatch(query, up) || ''; + close(query); + } else { + if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift') + vimGlobalState.searchHistoryController.reset(); + } + var parsedQuery; + try { + parsedQuery = updateSearchQuery(cm, query, + true /** ignoreCase */, true /** smartCase */); + } catch (e) { + } + if (parsedQuery) { + cm.scrollIntoView(findNext(cm, !forward, parsedQuery), 30); + } else { + clearSearchHighlight(cm); + cm.scrollTo(originalScrollPos.left, originalScrollPos.top); + } + } + function onPromptKeyDown(e, query, close) { + var keyName = CodeMirror.keyName(e); + if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' || + (keyName == 'Backspace' && query == '')) { + vimGlobalState.searchHistoryController.pushInput(query); + vimGlobalState.searchHistoryController.reset(); + updateSearchQuery(cm, originalQuery); + clearSearchHighlight(cm); + cm.scrollTo(originalScrollPos.left, originalScrollPos.top); + CodeMirror.e_stop(e); + clearInputState(cm); + close(); + cm.focus(); + } else if (keyName == 'Ctrl-U') { + CodeMirror.e_stop(e); + close(''); + } + } + switch (command.searchArgs.querySrc) { + case 'prompt': + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.isPlaying) { + var query = macroModeState.replaySearchQueries.shift(); + handleQuery(query, true /** ignoreCase */, false /** smartCase */); + } else { + showPrompt(cm, { + onClose: onPromptClose, + prefix: promptPrefix, + desc: searchPromptDesc, + onKeyUp: onPromptKeyUp, + onKeyDown: onPromptKeyDown + }); + } + break; + case 'wordUnderCursor': + var word = expandWordUnderCursor(cm, false /** inclusive */, + true /** forward */, false /** bigWord */, + true /** noSymbol */); + var isKeyword = true; + if (!word) { + word = expandWordUnderCursor(cm, false /** inclusive */, + true /** forward */, false /** bigWord */, + false /** noSymbol */); + isKeyword = false; + } + if (!word) { + return; + } + var query = cm.getLine(word.start.line).substring(word.start.ch, + word.end.ch); + if (isKeyword && wholeWordOnly) { + query = '\\b' + query + '\\b'; + } else { + query = escapeRegex(query); + } + vimGlobalState.jumpList.cachedCursor = cm.getCursor(); + cm.setCursor(word.start); + + handleQuery(query, true /** ignoreCase */, false /** smartCase */); + break; + } + }, + processEx: function(cm, vim, command) { + function onPromptClose(input) { + vimGlobalState.exCommandHistoryController.pushInput(input); + vimGlobalState.exCommandHistoryController.reset(); + exCommandDispatcher.processCommand(cm, input); + } + function onPromptKeyDown(e, input, close) { + var keyName = CodeMirror.keyName(e), up; + if (keyName == 'Esc' || keyName == 'Ctrl-C' || keyName == 'Ctrl-[' || + (keyName == 'Backspace' && input == '')) { + vimGlobalState.exCommandHistoryController.pushInput(input); + vimGlobalState.exCommandHistoryController.reset(); + CodeMirror.e_stop(e); + clearInputState(cm); + close(); + cm.focus(); + } + if (keyName == 'Up' || keyName == 'Down') { + up = keyName == 'Up' ? true : false; + input = vimGlobalState.exCommandHistoryController.nextMatch(input, up) || ''; + close(input); + } else if (keyName == 'Ctrl-U') { + CodeMirror.e_stop(e); + close(''); + } else { + if ( keyName != 'Left' && keyName != 'Right' && keyName != 'Ctrl' && keyName != 'Alt' && keyName != 'Shift') + vimGlobalState.exCommandHistoryController.reset(); + } + } + if (command.type == 'keyToEx') { + exCommandDispatcher.processCommand(cm, command.exArgs.input); + } else { + if (vim.visualMode) { + showPrompt(cm, { onClose: onPromptClose, prefix: ':', value: '\'<,\'>', + onKeyDown: onPromptKeyDown}); + } else { + showPrompt(cm, { onClose: onPromptClose, prefix: ':', + onKeyDown: onPromptKeyDown}); + } + } + }, + evalInput: function(cm, vim) { + var inputState = vim.inputState; + var motion = inputState.motion; + var motionArgs = inputState.motionArgs || {}; + var operator = inputState.operator; + var operatorArgs = inputState.operatorArgs || {}; + var registerName = inputState.registerName; + var sel = vim.sel; + var origHead = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.head): cm.getCursor('head')); + var origAnchor = copyCursor(vim.visualMode ? clipCursorToContent(cm, sel.anchor) : cm.getCursor('anchor')); + var oldHead = copyCursor(origHead); + var oldAnchor = copyCursor(origAnchor); + var newHead, newAnchor; + var repeat; + if (operator) { + this.recordLastEdit(vim, inputState); + } + if (inputState.repeatOverride !== undefined) { + repeat = inputState.repeatOverride; + } else { + repeat = inputState.getRepeat(); + } + if (repeat > 0 && motionArgs.explicitRepeat) { + motionArgs.repeatIsExplicit = true; + } else if (motionArgs.noRepeat || + (!motionArgs.explicitRepeat && repeat === 0)) { + repeat = 1; + motionArgs.repeatIsExplicit = false; + } + if (inputState.selectedCharacter) { + motionArgs.selectedCharacter = operatorArgs.selectedCharacter = + inputState.selectedCharacter; + } + motionArgs.repeat = repeat; + clearInputState(cm); + if (motion) { + var motionResult = motions[motion](cm, origHead, motionArgs, vim); + vim.lastMotion = motions[motion]; + if (!motionResult) { + return; + } + if (motionArgs.toJumplist) { + if (!operator && cm.ace.curOp != null) + cm.ace.curOp.command.scrollIntoView = "center-animate"; // ace_patch + var jumpList = vimGlobalState.jumpList; + var cachedCursor = jumpList.cachedCursor; + if (cachedCursor) { + recordJumpPosition(cm, cachedCursor, motionResult); + delete jumpList.cachedCursor; + } else { + recordJumpPosition(cm, origHead, motionResult); + } + } + if (motionResult instanceof Array) { + newAnchor = motionResult[0]; + newHead = motionResult[1]; + } else { + newHead = motionResult; + } + if (!newHead) { + newHead = copyCursor(origHead); + } + if (vim.visualMode) { + if (!(vim.visualBlock && newHead.ch === Infinity)) { + newHead = clipCursorToContent(cm, newHead, vim.visualBlock); + } + if (newAnchor) { + newAnchor = clipCursorToContent(cm, newAnchor, true); + } + newAnchor = newAnchor || oldAnchor; + sel.anchor = newAnchor; + sel.head = newHead; + updateCmSelection(cm); + updateMark(cm, vim, '<', + cursorIsBefore(newAnchor, newHead) ? newAnchor + : newHead); + updateMark(cm, vim, '>', + cursorIsBefore(newAnchor, newHead) ? newHead + : newAnchor); + } else if (!operator) { + newHead = clipCursorToContent(cm, newHead); + cm.setCursor(newHead.line, newHead.ch); + } + } + if (operator) { + if (operatorArgs.lastSel) { + newAnchor = oldAnchor; + var lastSel = operatorArgs.lastSel; + var lineOffset = Math.abs(lastSel.head.line - lastSel.anchor.line); + var chOffset = Math.abs(lastSel.head.ch - lastSel.anchor.ch); + if (lastSel.visualLine) { + newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch); + } else if (lastSel.visualBlock) { + newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch + chOffset); + } else if (lastSel.head.line == lastSel.anchor.line) { + newHead = Pos(oldAnchor.line, oldAnchor.ch + chOffset); + } else { + newHead = Pos(oldAnchor.line + lineOffset, oldAnchor.ch); + } + vim.visualMode = true; + vim.visualLine = lastSel.visualLine; + vim.visualBlock = lastSel.visualBlock; + sel = vim.sel = { + anchor: newAnchor, + head: newHead + }; + updateCmSelection(cm); + } else if (vim.visualMode) { + operatorArgs.lastSel = { + anchor: copyCursor(sel.anchor), + head: copyCursor(sel.head), + visualBlock: vim.visualBlock, + visualLine: vim.visualLine + }; + } + var curStart, curEnd, linewise, mode; + var cmSel; + if (vim.visualMode) { + curStart = cursorMin(sel.head, sel.anchor); + curEnd = cursorMax(sel.head, sel.anchor); + linewise = vim.visualLine || operatorArgs.linewise; + mode = vim.visualBlock ? 'block' : + linewise ? 'line' : + 'char'; + cmSel = makeCmSelection(cm, { + anchor: curStart, + head: curEnd + }, mode); + if (linewise) { + var ranges = cmSel.ranges; + if (mode == 'block') { + for (var i = 0; i < ranges.length; i++) { + ranges[i].head.ch = lineLength(cm, ranges[i].head.line); + } + } else if (mode == 'line') { + ranges[0].head = Pos(ranges[0].head.line + 1, 0); + } + } + } else { + curStart = copyCursor(newAnchor || oldAnchor); + curEnd = copyCursor(newHead || oldHead); + if (cursorIsBefore(curEnd, curStart)) { + var tmp = curStart; + curStart = curEnd; + curEnd = tmp; + } + linewise = motionArgs.linewise || operatorArgs.linewise; + if (linewise) { + expandSelectionToLine(cm, curStart, curEnd); + } else if (motionArgs.forward) { + clipToLine(cm, curStart, curEnd); + } + mode = 'char'; + var exclusive = !motionArgs.inclusive || linewise; + cmSel = makeCmSelection(cm, { + anchor: curStart, + head: curEnd + }, mode, exclusive); + } + cm.setSelections(cmSel.ranges, cmSel.primary); + vim.lastMotion = null; + operatorArgs.repeat = repeat; // For indent in visual mode. + operatorArgs.registerName = registerName; + operatorArgs.linewise = linewise; + var operatorMoveTo = operators[operator]( + cm, operatorArgs, cmSel.ranges, oldAnchor, newHead); + if (vim.visualMode) { + exitVisualMode(cm, operatorMoveTo != null); + } + if (operatorMoveTo) { + cm.setCursor(operatorMoveTo); + } + } + }, + recordLastEdit: function(vim, inputState, actionCommand) { + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.isPlaying) { return; } + vim.lastEditInputState = inputState; + vim.lastEditActionCommand = actionCommand; + macroModeState.lastInsertModeChanges.changes = []; + macroModeState.lastInsertModeChanges.expectCursorActivityForChange = false; + } + }; + var motions = { + moveToTopLine: function(cm, _head, motionArgs) { + var line = getUserVisibleLines(cm).top + motionArgs.repeat -1; + return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line))); + }, + moveToMiddleLine: function(cm) { + var range = getUserVisibleLines(cm); + var line = Math.floor((range.top + range.bottom) * 0.5); + return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line))); + }, + moveToBottomLine: function(cm, _head, motionArgs) { + var line = getUserVisibleLines(cm).bottom - motionArgs.repeat +1; + return Pos(line, findFirstNonWhiteSpaceCharacter(cm.getLine(line))); + }, + expandToLine: function(_cm, head, motionArgs) { + var cur = head; + return Pos(cur.line + motionArgs.repeat - 1, Infinity); + }, + findNext: function(cm, _head, motionArgs) { + var state = getSearchState(cm); + var query = state.getQuery(); + if (!query) { + return; + } + var prev = !motionArgs.forward; + prev = (state.isReversed()) ? !prev : prev; + highlightSearchMatches(cm, query); + return findNext(cm, prev/** prev */, query, motionArgs.repeat); + }, + goToMark: function(cm, _head, motionArgs, vim) { + var mark = vim.marks[motionArgs.selectedCharacter]; + if (mark) { + var pos = mark.find(); + return motionArgs.linewise ? { line: pos.line, ch: findFirstNonWhiteSpaceCharacter(cm.getLine(pos.line)) } : pos; + } + return null; + }, + moveToOtherHighlightedEnd: function(cm, _head, motionArgs, vim) { + if (vim.visualBlock && motionArgs.sameLine) { + var sel = vim.sel; + return [ + clipCursorToContent(cm, Pos(sel.anchor.line, sel.head.ch)), + clipCursorToContent(cm, Pos(sel.head.line, sel.anchor.ch)) + ]; + } else { + return ([vim.sel.head, vim.sel.anchor]); + } + }, + jumpToMark: function(cm, head, motionArgs, vim) { + var best = head; + for (var i = 0; i < motionArgs.repeat; i++) { + var cursor = best; + for (var key in vim.marks) { + if (!isLowerCase(key)) { + continue; + } + var mark = vim.marks[key].find(); + var isWrongDirection = (motionArgs.forward) ? + cursorIsBefore(mark, cursor) : cursorIsBefore(cursor, mark); + + if (isWrongDirection) { + continue; + } + if (motionArgs.linewise && (mark.line == cursor.line)) { + continue; + } + + var equal = cursorEqual(cursor, best); + var between = (motionArgs.forward) ? + cursorIsBetween(cursor, mark, best) : + cursorIsBetween(best, mark, cursor); + + if (equal || between) { + best = mark; + } + } + } + + if (motionArgs.linewise) { + best = Pos(best.line, findFirstNonWhiteSpaceCharacter(cm.getLine(best.line))); + } + return best; + }, + moveByCharacters: function(_cm, head, motionArgs) { + var cur = head; + var repeat = motionArgs.repeat; + var ch = motionArgs.forward ? cur.ch + repeat : cur.ch - repeat; + return Pos(cur.line, ch); + }, + moveByLines: function(cm, head, motionArgs, vim) { + var cur = head; + var endCh = cur.ch; + switch (vim.lastMotion) { + case this.moveByLines: + case this.moveByDisplayLines: + case this.moveByScroll: + case this.moveToColumn: + case this.moveToEol: + endCh = vim.lastHPos; + break; + default: + vim.lastHPos = endCh; + } + var repeat = motionArgs.repeat+(motionArgs.repeatOffset||0); + var line = motionArgs.forward ? cur.line + repeat : cur.line - repeat; + var first = cm.firstLine(); + var last = cm.lastLine(); + if ((line < first && cur.line == first) || + (line > last && cur.line == last)) { + return; + } + var fold = cm.ace.session.getFoldLine(line); + if (fold) { + if (motionArgs.forward) { + if (line > fold.start.row) + line = fold.end.row + 1; + } else { + line = fold.start.row; + } + } + if (motionArgs.toFirstChar){ + endCh=findFirstNonWhiteSpaceCharacter(cm.getLine(line)); + vim.lastHPos = endCh; + } + vim.lastHSPos = cm.charCoords(Pos(line, endCh),'div').left; + return Pos(line, endCh); + }, + moveByDisplayLines: function(cm, head, motionArgs, vim) { + var cur = head; + switch (vim.lastMotion) { + case this.moveByDisplayLines: + case this.moveByScroll: + case this.moveByLines: + case this.moveToColumn: + case this.moveToEol: + break; + default: + vim.lastHSPos = cm.charCoords(cur,'div').left; + } + var repeat = motionArgs.repeat; + var res=cm.findPosV(cur,(motionArgs.forward ? repeat : -repeat),'line',vim.lastHSPos); + if (res.hitSide) { + if (motionArgs.forward) { + var lastCharCoords = cm.charCoords(res, 'div'); + var goalCoords = { top: lastCharCoords.top + 8, left: vim.lastHSPos }; + var res = cm.coordsChar(goalCoords, 'div'); + } else { + var resCoords = cm.charCoords(Pos(cm.firstLine(), 0), 'div'); + resCoords.left = vim.lastHSPos; + res = cm.coordsChar(resCoords, 'div'); + } + } + vim.lastHPos = res.ch; + return res; + }, + moveByPage: function(cm, head, motionArgs) { + var curStart = head; + var repeat = motionArgs.repeat; + return cm.findPosV(curStart, (motionArgs.forward ? repeat : -repeat), 'page'); + }, + moveByParagraph: function(cm, head, motionArgs) { + var dir = motionArgs.forward ? 1 : -1; + return findParagraph(cm, head, motionArgs.repeat, dir); + }, + moveByScroll: function(cm, head, motionArgs, vim) { + var scrollbox = cm.getScrollInfo(); + var curEnd = null; + var repeat = motionArgs.repeat; + if (!repeat) { + repeat = scrollbox.clientHeight / (2 * cm.defaultTextHeight()); + } + var orig = cm.charCoords(head, 'local'); + motionArgs.repeat = repeat; + var curEnd = motions.moveByDisplayLines(cm, head, motionArgs, vim); + if (!curEnd) { + return null; + } + var dest = cm.charCoords(curEnd, 'local'); + cm.scrollTo(null, scrollbox.top + dest.top - orig.top); + return curEnd; + }, + moveByWords: function(cm, head, motionArgs) { + return moveToWord(cm, head, motionArgs.repeat, !!motionArgs.forward, + !!motionArgs.wordEnd, !!motionArgs.bigWord); + }, + moveTillCharacter: function(cm, _head, motionArgs) { + var repeat = motionArgs.repeat; + var curEnd = moveToCharacter(cm, repeat, motionArgs.forward, + motionArgs.selectedCharacter); + var increment = motionArgs.forward ? -1 : 1; + recordLastCharacterSearch(increment, motionArgs); + if (!curEnd) return null; + curEnd.ch += increment; + return curEnd; + }, + moveToCharacter: function(cm, head, motionArgs) { + var repeat = motionArgs.repeat; + recordLastCharacterSearch(0, motionArgs); + return moveToCharacter(cm, repeat, motionArgs.forward, + motionArgs.selectedCharacter) || head; + }, + moveToSymbol: function(cm, head, motionArgs) { + var repeat = motionArgs.repeat; + return findSymbol(cm, repeat, motionArgs.forward, + motionArgs.selectedCharacter) || head; + }, + moveToColumn: function(cm, head, motionArgs, vim) { + var repeat = motionArgs.repeat; + vim.lastHPos = repeat - 1; + vim.lastHSPos = cm.charCoords(head,'div').left; + return moveToColumn(cm, repeat); + }, + moveToEol: function(cm, head, motionArgs, vim) { + var cur = head; + vim.lastHPos = Infinity; + var retval= Pos(cur.line + motionArgs.repeat - 1, Infinity); + var end=cm.clipPos(retval); + end.ch--; + vim.lastHSPos = cm.charCoords(end,'div').left; + return retval; + }, + moveToFirstNonWhiteSpaceCharacter: function(cm, head) { + var cursor = head; + return Pos(cursor.line, + findFirstNonWhiteSpaceCharacter(cm.getLine(cursor.line))); + }, + moveToMatchedSymbol: function(cm, head) { + var cursor = head; + var line = cursor.line; + var ch = cursor.ch; + var lineText = cm.getLine(line); + var symbol; + do { + symbol = lineText.charAt(ch++); + if (symbol && isMatchableSymbol(symbol)) { + var style = cm.getTokenTypeAt(Pos(line, ch)); + if (style !== "string" && style !== "comment") { + break; + } + } + } while (symbol); + if (symbol) { + var matched = cm.findMatchingBracket(Pos(line, ch)); + return matched.to; + } else { + return cursor; + } + }, + moveToStartOfLine: function(_cm, head) { + return Pos(head.line, 0); + }, + moveToLineOrEdgeOfDocument: function(cm, _head, motionArgs) { + var lineNum = motionArgs.forward ? cm.lastLine() : cm.firstLine(); + if (motionArgs.repeatIsExplicit) { + lineNum = motionArgs.repeat - cm.getOption('firstLineNumber'); + } + return Pos(lineNum, + findFirstNonWhiteSpaceCharacter(cm.getLine(lineNum))); + }, + textObjectManipulation: function(cm, head, motionArgs, vim) { + var mirroredPairs = {'(': ')', ')': '(', + '{': '}', '}': '{', + '[': ']', ']': '['}; + var selfPaired = {'\'': true, '"': true}; + + var character = motionArgs.selectedCharacter; + if (character == 'b') { + character = '('; + } else if (character == 'B') { + character = '{'; + } + var inclusive = !motionArgs.textObjectInner; + + var tmp; + if (mirroredPairs[character]) { + tmp = selectCompanionObject(cm, head, character, inclusive); + } else if (selfPaired[character]) { + tmp = findBeginningAndEnd(cm, head, character, inclusive); + } else if (character === 'W') { + tmp = expandWordUnderCursor(cm, inclusive, true /** forward */, + true /** bigWord */); + } else if (character === 'w') { + tmp = expandWordUnderCursor(cm, inclusive, true /** forward */, + false /** bigWord */); + } else if (character === 'p') { + tmp = findParagraph(cm, head, motionArgs.repeat, 0, inclusive); + motionArgs.linewise = true; + if (vim.visualMode) { + if (!vim.visualLine) { vim.visualLine = true; } + } else { + var operatorArgs = vim.inputState.operatorArgs; + if (operatorArgs) { operatorArgs.linewise = true; } + tmp.end.line--; + } + } else { + return null; + } + + if (!cm.state.vim.visualMode) { + return [tmp.start, tmp.end]; + } else { + return expandSelection(cm, tmp.start, tmp.end); + } + }, + + repeatLastCharacterSearch: function(cm, head, motionArgs) { + var lastSearch = vimGlobalState.lastChararacterSearch; + var repeat = motionArgs.repeat; + var forward = motionArgs.forward === lastSearch.forward; + var increment = (lastSearch.increment ? 1 : 0) * (forward ? -1 : 1); + cm.moveH(-increment, 'char'); + motionArgs.inclusive = forward ? true : false; + var curEnd = moveToCharacter(cm, repeat, forward, lastSearch.selectedCharacter); + if (!curEnd) { + cm.moveH(increment, 'char'); + return head; + } + curEnd.ch += increment; + return curEnd; + } + }; + + function defineMotion(name, fn) { + motions[name] = fn; + } + + function fillArray(val, times) { + var arr = []; + for (var i = 0; i < times; i++) { + arr.push(val); + } + return arr; + } + var operators = { + change: function(cm, args, ranges) { + var finalHead, text; + var vim = cm.state.vim; + vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock = vim.visualBlock; + if (!vim.visualMode) { + var anchor = ranges[0].anchor, + head = ranges[0].head; + text = cm.getRange(anchor, head); + var lastState = vim.lastEditInputState || {}; + if (lastState.motion == "moveByWords" && !isWhiteSpaceString(text)) { + var match = (/\s+$/).exec(text); + if (match && lastState.motionArgs && lastState.motionArgs.forward) { + head = offsetCursor(head, 0, - match[0].length); + text = text.slice(0, - match[0].length); + } + } + var prevLineEnd = new Pos(anchor.line - 1, Number.MAX_VALUE); + var wasLastLine = cm.firstLine() == cm.lastLine(); + if (head.line > cm.lastLine() && args.linewise && !wasLastLine) { + cm.replaceRange('', prevLineEnd, head); + } else { + cm.replaceRange('', anchor, head); + } + if (args.linewise) { + if (!wasLastLine) { + cm.setCursor(prevLineEnd); + CodeMirror.commands.newlineAndIndent(cm); + } + anchor.ch = Number.MAX_VALUE; + } + finalHead = anchor; + } else { + text = cm.getSelection(); + var replacement = fillArray('', ranges.length); + cm.replaceSelections(replacement); + finalHead = cursorMin(ranges[0].head, ranges[0].anchor); + } + vimGlobalState.registerController.pushText( + args.registerName, 'change', text, + args.linewise, ranges.length > 1); + actions.enterInsertMode(cm, {head: finalHead}, cm.state.vim); + }, + 'delete': function(cm, args, ranges) { + var finalHead, text; + var vim = cm.state.vim; + if (!vim.visualBlock) { + var anchor = ranges[0].anchor, + head = ranges[0].head; + if (args.linewise && + head.line != cm.firstLine() && + anchor.line == cm.lastLine() && + anchor.line == head.line - 1) { + if (anchor.line == cm.firstLine()) { + anchor.ch = 0; + } else { + anchor = Pos(anchor.line - 1, lineLength(cm, anchor.line - 1)); + } + } + text = cm.getRange(anchor, head); + cm.replaceRange('', anchor, head); + finalHead = anchor; + if (args.linewise) { + finalHead = motions.moveToFirstNonWhiteSpaceCharacter(cm, anchor); + } + } else { + text = cm.getSelection(); + var replacement = fillArray('', ranges.length); + cm.replaceSelections(replacement); + finalHead = ranges[0].anchor; + } + vimGlobalState.registerController.pushText( + args.registerName, 'delete', text, + args.linewise, vim.visualBlock); + return clipCursorToContent(cm, finalHead); + }, + indent: function(cm, args, ranges) { + var vim = cm.state.vim; + var startLine = ranges[0].anchor.line; + var endLine = vim.visualBlock ? + ranges[ranges.length - 1].anchor.line : + ranges[0].head.line; + var repeat = (vim.visualMode) ? args.repeat : 1; + if (args.linewise) { + endLine--; + } + for (var i = startLine; i <= endLine; i++) { + for (var j = 0; j < repeat; j++) { + cm.indentLine(i, args.indentRight); + } + } + return motions.moveToFirstNonWhiteSpaceCharacter(cm, ranges[0].anchor); + }, + changeCase: function(cm, args, ranges, oldAnchor, newHead) { + var selections = cm.getSelections(); + var swapped = []; + var toLower = args.toLower; + for (var j = 0; j < selections.length; j++) { + var toSwap = selections[j]; + var text = ''; + if (toLower === true) { + text = toSwap.toLowerCase(); + } else if (toLower === false) { + text = toSwap.toUpperCase(); + } else { + for (var i = 0; i < toSwap.length; i++) { + var character = toSwap.charAt(i); + text += isUpperCase(character) ? character.toLowerCase() : + character.toUpperCase(); + } + } + swapped.push(text); + } + cm.replaceSelections(swapped); + if (args.shouldMoveCursor){ + return newHead; + } else if (!cm.state.vim.visualMode && args.linewise && ranges[0].anchor.line + 1 == ranges[0].head.line) { + return motions.moveToFirstNonWhiteSpaceCharacter(cm, oldAnchor); + } else if (args.linewise){ + return oldAnchor; + } else { + return cursorMin(ranges[0].anchor, ranges[0].head); + } + }, + yank: function(cm, args, ranges, oldAnchor) { + var vim = cm.state.vim; + var text = cm.getSelection(); + var endPos = vim.visualMode + ? cursorMin(vim.sel.anchor, vim.sel.head, ranges[0].head, ranges[0].anchor) + : oldAnchor; + vimGlobalState.registerController.pushText( + args.registerName, 'yank', + text, args.linewise, vim.visualBlock); + return endPos; + } + }; + + function defineOperator(name, fn) { + operators[name] = fn; + } + + var actions = { + jumpListWalk: function(cm, actionArgs, vim) { + if (vim.visualMode) { + return; + } + var repeat = actionArgs.repeat; + var forward = actionArgs.forward; + var jumpList = vimGlobalState.jumpList; + + var mark = jumpList.move(cm, forward ? repeat : -repeat); + var markPos = mark ? mark.find() : undefined; + markPos = markPos ? markPos : cm.getCursor(); + cm.setCursor(markPos); + cm.ace.curOp.command.scrollIntoView = "center-animate"; // ace_patch + }, + scroll: function(cm, actionArgs, vim) { + if (vim.visualMode) { + return; + } + var repeat = actionArgs.repeat || 1; + var lineHeight = cm.defaultTextHeight(); + var top = cm.getScrollInfo().top; + var delta = lineHeight * repeat; + var newPos = actionArgs.forward ? top + delta : top - delta; + var cursor = copyCursor(cm.getCursor()); + var cursorCoords = cm.charCoords(cursor, 'local'); + if (actionArgs.forward) { + if (newPos > cursorCoords.top) { + cursor.line += (newPos - cursorCoords.top) / lineHeight; + cursor.line = Math.ceil(cursor.line); + cm.setCursor(cursor); + cursorCoords = cm.charCoords(cursor, 'local'); + cm.scrollTo(null, cursorCoords.top); + } else { + cm.scrollTo(null, newPos); + } + } else { + var newBottom = newPos + cm.getScrollInfo().clientHeight; + if (newBottom < cursorCoords.bottom) { + cursor.line -= (cursorCoords.bottom - newBottom) / lineHeight; + cursor.line = Math.floor(cursor.line); + cm.setCursor(cursor); + cursorCoords = cm.charCoords(cursor, 'local'); + cm.scrollTo( + null, cursorCoords.bottom - cm.getScrollInfo().clientHeight); + } else { + cm.scrollTo(null, newPos); + } + } + }, + scrollToCursor: function(cm, actionArgs) { + var lineNum = cm.getCursor().line; + var charCoords = cm.charCoords(Pos(lineNum, 0), 'local'); + var height = cm.getScrollInfo().clientHeight; + var y = charCoords.top; + var lineHeight = charCoords.bottom - y; + switch (actionArgs.position) { + case 'center': y = y - (height / 2) + lineHeight; + break; + case 'bottom': y = y - height + lineHeight*1.4; + break; + case 'top': y = y + lineHeight*0.4; + break; + } + cm.scrollTo(null, y); + }, + replayMacro: function(cm, actionArgs, vim) { + var registerName = actionArgs.selectedCharacter; + var repeat = actionArgs.repeat; + var macroModeState = vimGlobalState.macroModeState; + if (registerName == '@') { + registerName = macroModeState.latestRegister; + } + while(repeat--){ + executeMacroRegister(cm, vim, macroModeState, registerName); + } + }, + enterMacroRecordMode: function(cm, actionArgs) { + var macroModeState = vimGlobalState.macroModeState; + var registerName = actionArgs.selectedCharacter; + macroModeState.enterMacroRecordMode(cm, registerName); + }, + enterInsertMode: function(cm, actionArgs, vim) { + if (cm.getOption('readOnly')) { return; } + vim.insertMode = true; + vim.insertModeRepeat = actionArgs && actionArgs.repeat || 1; + var insertAt = (actionArgs) ? actionArgs.insertAt : null; + var sel = vim.sel; + var head = actionArgs.head || cm.getCursor('head'); + var height = cm.listSelections().length; + if (insertAt == 'eol') { + head = Pos(head.line, lineLength(cm, head.line)); + } else if (insertAt == 'charAfter') { + head = offsetCursor(head, 0, 1); + } else if (insertAt == 'firstNonBlank') { + head = motions.moveToFirstNonWhiteSpaceCharacter(cm, head); + } else if (insertAt == 'startOfSelectedArea') { + if (!vim.visualBlock) { + if (sel.head.line < sel.anchor.line) { + head = sel.head; + } else { + head = Pos(sel.anchor.line, 0); + } + } else { + head = Pos( + Math.min(sel.head.line, sel.anchor.line), + Math.min(sel.head.ch, sel.anchor.ch)); + height = Math.abs(sel.head.line - sel.anchor.line) + 1; + } + } else if (insertAt == 'endOfSelectedArea') { + if (!vim.visualBlock) { + if (sel.head.line >= sel.anchor.line) { + head = offsetCursor(sel.head, 0, 1); + } else { + head = Pos(sel.anchor.line, 0); + } + } else { + head = Pos( + Math.min(sel.head.line, sel.anchor.line), + Math.max(sel.head.ch + 1, sel.anchor.ch)); + height = Math.abs(sel.head.line - sel.anchor.line) + 1; + } + } else if (insertAt == 'inplace') { + if (vim.visualMode){ + return; + } + } + cm.setOption('keyMap', 'vim-insert'); + cm.setOption('disableInput', false); + if (actionArgs && actionArgs.replace) { + cm.toggleOverwrite(true); + cm.setOption('keyMap', 'vim-replace'); + CodeMirror.signal(cm, "vim-mode-change", {mode: "replace"}); + } else { + cm.setOption('keyMap', 'vim-insert'); + CodeMirror.signal(cm, "vim-mode-change", {mode: "insert"}); + } + if (!vimGlobalState.macroModeState.isPlaying) { + cm.on('change', onChange); + CodeMirror.on(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown); + } + if (vim.visualMode) { + exitVisualMode(cm); + } + selectForInsert(cm, head, height); + }, + toggleVisualMode: function(cm, actionArgs, vim) { + var repeat = actionArgs.repeat; + var anchor = cm.getCursor(); + var head; + if (!vim.visualMode) { + vim.visualMode = true; + vim.visualLine = !!actionArgs.linewise; + vim.visualBlock = !!actionArgs.blockwise; + head = clipCursorToContent( + cm, Pos(anchor.line, anchor.ch + repeat - 1), + true /** includeLineBreak */); + vim.sel = { + anchor: anchor, + head: head + }; + CodeMirror.signal(cm, "vim-mode-change", {mode: "visual", subMode: vim.visualLine ? "linewise" : vim.visualBlock ? "blockwise" : ""}); + updateCmSelection(cm); + updateMark(cm, vim, '<', cursorMin(anchor, head)); + updateMark(cm, vim, '>', cursorMax(anchor, head)); + } else if (vim.visualLine ^ actionArgs.linewise || + vim.visualBlock ^ actionArgs.blockwise) { + vim.visualLine = !!actionArgs.linewise; + vim.visualBlock = !!actionArgs.blockwise; + CodeMirror.signal(cm, "vim-mode-change", {mode: "visual", subMode: vim.visualLine ? "linewise" : vim.visualBlock ? "blockwise" : ""}); + updateCmSelection(cm); + } else { + exitVisualMode(cm); + } + }, + reselectLastSelection: function(cm, _actionArgs, vim) { + var lastSelection = vim.lastSelection; + if (vim.visualMode) { + updateLastSelection(cm, vim); + } + if (lastSelection) { + var anchor = lastSelection.anchorMark.find(); + var head = lastSelection.headMark.find(); + if (!anchor || !head) { + return; + } + vim.sel = { + anchor: anchor, + head: head + }; + vim.visualMode = true; + vim.visualLine = lastSelection.visualLine; + vim.visualBlock = lastSelection.visualBlock; + updateCmSelection(cm); + updateMark(cm, vim, '<', cursorMin(anchor, head)); + updateMark(cm, vim, '>', cursorMax(anchor, head)); + CodeMirror.signal(cm, 'vim-mode-change', { + mode: 'visual', + subMode: vim.visualLine ? 'linewise' : + vim.visualBlock ? 'blockwise' : ''}); + } + }, + joinLines: function(cm, actionArgs, vim) { + var curStart, curEnd; + if (vim.visualMode) { + curStart = cm.getCursor('anchor'); + curEnd = cm.getCursor('head'); + if (cursorIsBefore(curEnd, curStart)) { + var tmp = curEnd; + curEnd = curStart; + curStart = tmp; + } + curEnd.ch = lineLength(cm, curEnd.line) - 1; + } else { + var repeat = Math.max(actionArgs.repeat, 2); + curStart = cm.getCursor(); + curEnd = clipCursorToContent(cm, Pos(curStart.line + repeat - 1, + Infinity)); + } + var finalCh = 0; + for (var i = curStart.line; i < curEnd.line; i++) { + finalCh = lineLength(cm, curStart.line); + var tmp = Pos(curStart.line + 1, + lineLength(cm, curStart.line + 1)); + var text = cm.getRange(curStart, tmp); + text = text.replace(/\n\s*/g, ' '); + cm.replaceRange(text, curStart, tmp); + } + var curFinalPos = Pos(curStart.line, finalCh); + if (vim.visualMode) { + exitVisualMode(cm, false); + } + cm.setCursor(curFinalPos); + }, + newLineAndEnterInsertMode: function(cm, actionArgs, vim) { + vim.insertMode = true; + var insertAt = copyCursor(cm.getCursor()); + if (insertAt.line === cm.firstLine() && !actionArgs.after) { + cm.replaceRange('\n', Pos(cm.firstLine(), 0)); + cm.setCursor(cm.firstLine(), 0); + } else { + insertAt.line = (actionArgs.after) ? insertAt.line : + insertAt.line - 1; + insertAt.ch = lineLength(cm, insertAt.line); + cm.setCursor(insertAt); + var newlineFn = CodeMirror.commands.newlineAndIndentContinueComment || + CodeMirror.commands.newlineAndIndent; + newlineFn(cm); + } + this.enterInsertMode(cm, { repeat: actionArgs.repeat }, vim); + }, + paste: function(cm, actionArgs, vim) { + var cur = copyCursor(cm.getCursor()); + var register = vimGlobalState.registerController.getRegister( + actionArgs.registerName); + var text = register.toString(); + if (!text) { + return; + } + if (actionArgs.matchIndent) { + var tabSize = cm.getOption("tabSize"); + var whitespaceLength = function(str) { + var tabs = (str.split("\t").length - 1); + var spaces = (str.split(" ").length - 1); + return tabs * tabSize + spaces * 1; + }; + var currentLine = cm.getLine(cm.getCursor().line); + var indent = whitespaceLength(currentLine.match(/^\s*/)[0]); + var chompedText = text.replace(/\n$/, ''); + var wasChomped = text !== chompedText; + var firstIndent = whitespaceLength(text.match(/^\s*/)[0]); + var text = chompedText.replace(/^\s*/gm, function(wspace) { + var newIndent = indent + (whitespaceLength(wspace) - firstIndent); + if (newIndent < 0) { + return ""; + } + else if (cm.getOption("indentWithTabs")) { + var quotient = Math.floor(newIndent / tabSize); + return Array(quotient + 1).join('\t'); + } + else { + return Array(newIndent + 1).join(' '); + } + }); + text += wasChomped ? "\n" : ""; + } + if (actionArgs.repeat > 1) { + var text = Array(actionArgs.repeat + 1).join(text); + } + var linewise = register.linewise; + var blockwise = register.blockwise; + if (linewise && !blockwise) { + if(vim.visualMode) { + text = vim.visualLine ? text.slice(0, -1) : '\n' + text.slice(0, text.length - 1) + '\n'; + } else if (actionArgs.after) { + text = '\n' + text.slice(0, text.length - 1); + cur.ch = lineLength(cm, cur.line); + } else { + cur.ch = 0; + } + } else { + if (blockwise) { + text = text.split('\n'); + for (var i = 0; i < text.length; i++) { + text[i] = (text[i] == '') ? ' ' : text[i]; + } + } + cur.ch += actionArgs.after ? 1 : 0; + } + var curPosFinal; + var idx; + if (vim.visualMode) { + vim.lastPastedText = text; + var lastSelectionCurEnd; + var selectedArea = getSelectedAreaRange(cm, vim); + var selectionStart = selectedArea[0]; + var selectionEnd = selectedArea[1]; + var selectedText = cm.getSelection(); + var selections = cm.listSelections(); + var emptyStrings = new Array(selections.length).join('1').split('1'); + if (vim.lastSelection) { + lastSelectionCurEnd = vim.lastSelection.headMark.find(); + } + vimGlobalState.registerController.unnamedRegister.setText(selectedText); + if (blockwise) { + cm.replaceSelections(emptyStrings); + selectionEnd = Pos(selectionStart.line + text.length-1, selectionStart.ch); + cm.setCursor(selectionStart); + selectBlock(cm, selectionEnd); + cm.replaceSelections(text); + curPosFinal = selectionStart; + } else if (vim.visualBlock) { + cm.replaceSelections(emptyStrings); + cm.setCursor(selectionStart); + cm.replaceRange(text, selectionStart, selectionStart); + curPosFinal = selectionStart; + } else { + cm.replaceRange(text, selectionStart, selectionEnd); + curPosFinal = cm.posFromIndex(cm.indexFromPos(selectionStart) + text.length - 1); + } + if(lastSelectionCurEnd) { + vim.lastSelection.headMark = cm.setBookmark(lastSelectionCurEnd); + } + if (linewise) { + curPosFinal.ch=0; + } + } else { + if (blockwise) { + cm.setCursor(cur); + for (var i = 0; i < text.length; i++) { + var line = cur.line+i; + if (line > cm.lastLine()) { + cm.replaceRange('\n', Pos(line, 0)); + } + var lastCh = lineLength(cm, line); + if (lastCh < cur.ch) { + extendLineToColumn(cm, line, cur.ch); + } + } + cm.setCursor(cur); + selectBlock(cm, Pos(cur.line + text.length-1, cur.ch)); + cm.replaceSelections(text); + curPosFinal = cur; + } else { + cm.replaceRange(text, cur); + if (linewise && actionArgs.after) { + curPosFinal = Pos( + cur.line + 1, + findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line + 1))); + } else if (linewise && !actionArgs.after) { + curPosFinal = Pos( + cur.line, + findFirstNonWhiteSpaceCharacter(cm.getLine(cur.line))); + } else if (!linewise && actionArgs.after) { + idx = cm.indexFromPos(cur); + curPosFinal = cm.posFromIndex(idx + text.length - 1); + } else { + idx = cm.indexFromPos(cur); + curPosFinal = cm.posFromIndex(idx + text.length); + } + } + } + if (vim.visualMode) { + exitVisualMode(cm, false); + } + cm.setCursor(curPosFinal); + }, + undo: function(cm, actionArgs) { + cm.operation(function() { + repeatFn(cm, CodeMirror.commands.undo, actionArgs.repeat)(); + cm.setCursor(cm.getCursor('anchor')); + }); + }, + redo: function(cm, actionArgs) { + repeatFn(cm, CodeMirror.commands.redo, actionArgs.repeat)(); + }, + setRegister: function(_cm, actionArgs, vim) { + vim.inputState.registerName = actionArgs.selectedCharacter; + }, + setMark: function(cm, actionArgs, vim) { + var markName = actionArgs.selectedCharacter; + updateMark(cm, vim, markName, cm.getCursor()); + }, + replace: function(cm, actionArgs, vim) { + var replaceWith = actionArgs.selectedCharacter; + var curStart = cm.getCursor(); + var replaceTo; + var curEnd; + var selections = cm.listSelections(); + if (vim.visualMode) { + curStart = cm.getCursor('start'); + curEnd = cm.getCursor('end'); + } else { + var line = cm.getLine(curStart.line); + replaceTo = curStart.ch + actionArgs.repeat; + if (replaceTo > line.length) { + replaceTo=line.length; + } + curEnd = Pos(curStart.line, replaceTo); + } + if (replaceWith=='\n') { + if (!vim.visualMode) cm.replaceRange('', curStart, curEnd); + (CodeMirror.commands.newlineAndIndentContinueComment || CodeMirror.commands.newlineAndIndent)(cm); + } else { + var replaceWithStr = cm.getRange(curStart, curEnd); + replaceWithStr = replaceWithStr.replace(/[^\n]/g, replaceWith); + if (vim.visualBlock) { + var spaces = new Array(cm.getOption("tabSize")+1).join(' '); + replaceWithStr = cm.getSelection(); + replaceWithStr = replaceWithStr.replace(/\t/g, spaces).replace(/[^\n]/g, replaceWith).split('\n'); + cm.replaceSelections(replaceWithStr); + } else { + cm.replaceRange(replaceWithStr, curStart, curEnd); + } + if (vim.visualMode) { + curStart = cursorIsBefore(selections[0].anchor, selections[0].head) ? + selections[0].anchor : selections[0].head; + cm.setCursor(curStart); + exitVisualMode(cm, false); + } else { + cm.setCursor(offsetCursor(curEnd, 0, -1)); + } + } + }, + incrementNumberToken: function(cm, actionArgs) { + var cur = cm.getCursor(); + var lineStr = cm.getLine(cur.line); + var re = /-?\d+/g; + var match; + var start; + var end; + var numberStr; + var token; + while ((match = re.exec(lineStr)) !== null) { + token = match[0]; + start = match.index; + end = start + token.length; + if (cur.ch < end)break; + } + if (!actionArgs.backtrack && (end <= cur.ch))return; + if (token) { + var increment = actionArgs.increase ? 1 : -1; + var number = parseInt(token) + (increment * actionArgs.repeat); + var from = Pos(cur.line, start); + var to = Pos(cur.line, end); + numberStr = number.toString(); + cm.replaceRange(numberStr, from, to); + } else { + return; + } + cm.setCursor(Pos(cur.line, start + numberStr.length - 1)); + }, + repeatLastEdit: function(cm, actionArgs, vim) { + var lastEditInputState = vim.lastEditInputState; + if (!lastEditInputState) { return; } + var repeat = actionArgs.repeat; + if (repeat && actionArgs.repeatIsExplicit) { + vim.lastEditInputState.repeatOverride = repeat; + } else { + repeat = vim.lastEditInputState.repeatOverride || repeat; + } + repeatLastEdit(cm, vim, repeat, false /** repeatForInsert */); + }, + exitInsertMode: exitInsertMode + }; + + function defineAction(name, fn) { + actions[name] = fn; + } + function clipCursorToContent(cm, cur, includeLineBreak) { + var line = Math.min(Math.max(cm.firstLine(), cur.line), cm.lastLine() ); + var maxCh = lineLength(cm, line) - 1; + maxCh = (includeLineBreak) ? maxCh + 1 : maxCh; + var ch = Math.min(Math.max(0, cur.ch), maxCh); + return Pos(line, ch); + } + function copyArgs(args) { + var ret = {}; + for (var prop in args) { + if (args.hasOwnProperty(prop)) { + ret[prop] = args[prop]; + } + } + return ret; + } + function offsetCursor(cur, offsetLine, offsetCh) { + if (typeof offsetLine === 'object') { + offsetCh = offsetLine.ch; + offsetLine = offsetLine.line; + } + return Pos(cur.line + offsetLine, cur.ch + offsetCh); + } + function getOffset(anchor, head) { + return { + line: head.line - anchor.line, + ch: head.line - anchor.line + }; + } + function commandMatches(keys, keyMap, context, inputState) { + var match, partial = [], full = []; + for (var i = 0; i < keyMap.length; i++) { + var command = keyMap[i]; + if (context == 'insert' && command.context != 'insert' || + command.context && command.context != context || + inputState.operator && command.type == 'action' || + !(match = commandMatch(keys, command.keys))) { continue; } + if (match == 'partial') { partial.push(command); } + if (match == 'full') { full.push(command); } + } + return { + partial: partial.length && partial, + full: full.length && full + }; + } + function commandMatch(pressed, mapped) { + if (mapped.slice(-11) == '') { + var prefixLen = mapped.length - 11; + var pressedPrefix = pressed.slice(0, prefixLen); + var mappedPrefix = mapped.slice(0, prefixLen); + return pressedPrefix == mappedPrefix && pressed.length > prefixLen ? 'full' : + mappedPrefix.indexOf(pressedPrefix) == 0 ? 'partial' : false; + } else { + return pressed == mapped ? 'full' : + mapped.indexOf(pressed) == 0 ? 'partial' : false; + } + } + function lastChar(keys) { + var match = /^.*(<[\w\-]+>)$/.exec(keys); + var selectedCharacter = match ? match[1] : keys.slice(-1); + if (selectedCharacter.length > 1){ + switch(selectedCharacter){ + case '': + selectedCharacter='\n'; + break; + case '': + selectedCharacter=' '; + break; + default: + break; + } + } + return selectedCharacter; + } + function repeatFn(cm, fn, repeat) { + return function() { + for (var i = 0; i < repeat; i++) { + fn(cm); + } + }; + } + function copyCursor(cur) { + return Pos(cur.line, cur.ch); + } + function cursorEqual(cur1, cur2) { + return cur1.ch == cur2.ch && cur1.line == cur2.line; + } + function cursorIsBefore(cur1, cur2) { + if (cur1.line < cur2.line) { + return true; + } + if (cur1.line == cur2.line && cur1.ch < cur2.ch) { + return true; + } + return false; + } + function cursorMin(cur1, cur2) { + if (arguments.length > 2) { + cur2 = cursorMin.apply(undefined, Array.prototype.slice.call(arguments, 1)); + } + return cursorIsBefore(cur1, cur2) ? cur1 : cur2; + } + function cursorMax(cur1, cur2) { + if (arguments.length > 2) { + cur2 = cursorMax.apply(undefined, Array.prototype.slice.call(arguments, 1)); + } + return cursorIsBefore(cur1, cur2) ? cur2 : cur1; + } + function cursorIsBetween(cur1, cur2, cur3) { + var cur1before2 = cursorIsBefore(cur1, cur2); + var cur2before3 = cursorIsBefore(cur2, cur3); + return cur1before2 && cur2before3; + } + function lineLength(cm, lineNum) { + return cm.getLine(lineNum).length; + } + function trim(s) { + if (s.trim) { + return s.trim(); + } + return s.replace(/^\s+|\s+$/g, ''); + } + function escapeRegex(s) { + return s.replace(/([.?*+$\[\]\/\\(){}|\-])/g, '\\$1'); + } + function extendLineToColumn(cm, lineNum, column) { + var endCh = lineLength(cm, lineNum); + var spaces = new Array(column-endCh+1).join(' '); + cm.setCursor(Pos(lineNum, endCh)); + cm.replaceRange(spaces, cm.getCursor()); + } + function selectBlock(cm, selectionEnd) { + var selections = [], ranges = cm.listSelections(); + var head = copyCursor(cm.clipPos(selectionEnd)); + var isClipped = !cursorEqual(selectionEnd, head); + var curHead = cm.getCursor('head'); + var primIndex = getIndex(ranges, curHead); + var wasClipped = cursorEqual(ranges[primIndex].head, ranges[primIndex].anchor); + var max = ranges.length - 1; + var index = max - primIndex > primIndex ? max : 0; + var base = ranges[index].anchor; + + var firstLine = Math.min(base.line, head.line); + var lastLine = Math.max(base.line, head.line); + var baseCh = base.ch, headCh = head.ch; + + var dir = ranges[index].head.ch - baseCh; + var newDir = headCh - baseCh; + if (dir > 0 && newDir <= 0) { + baseCh++; + if (!isClipped) { headCh--; } + } else if (dir < 0 && newDir >= 0) { + baseCh--; + if (!wasClipped) { headCh++; } + } else if (dir < 0 && newDir == -1) { + baseCh--; + headCh++; + } + for (var line = firstLine; line <= lastLine; line++) { + var range = {anchor: new Pos(line, baseCh), head: new Pos(line, headCh)}; + selections.push(range); + } + primIndex = head.line == lastLine ? selections.length - 1 : 0; + cm.setSelections(selections); + selectionEnd.ch = headCh; + base.ch = baseCh; + return base; + } + function selectForInsert(cm, head, height) { + var sel = []; + for (var i = 0; i < height; i++) { + var lineHead = offsetCursor(head, i, 0); + sel.push({anchor: lineHead, head: lineHead}); + } + cm.setSelections(sel, 0); + } + function getIndex(ranges, cursor, end) { + for (var i = 0; i < ranges.length; i++) { + var atAnchor = end != 'head' && cursorEqual(ranges[i].anchor, cursor); + var atHead = end != 'anchor' && cursorEqual(ranges[i].head, cursor); + if (atAnchor || atHead) { + return i; + } + } + return -1; + } + function getSelectedAreaRange(cm, vim) { + var lastSelection = vim.lastSelection; + var getCurrentSelectedAreaRange = function() { + var selections = cm.listSelections(); + var start = selections[0]; + var end = selections[selections.length-1]; + var selectionStart = cursorIsBefore(start.anchor, start.head) ? start.anchor : start.head; + var selectionEnd = cursorIsBefore(end.anchor, end.head) ? end.head : end.anchor; + return [selectionStart, selectionEnd]; + }; + var getLastSelectedAreaRange = function() { + var selectionStart = cm.getCursor(); + var selectionEnd = cm.getCursor(); + var block = lastSelection.visualBlock; + if (block) { + var width = block.width; + var height = block.height; + selectionEnd = Pos(selectionStart.line + height, selectionStart.ch + width); + var selections = []; + for (var i = selectionStart.line; i < selectionEnd.line; i++) { + var anchor = Pos(i, selectionStart.ch); + var head = Pos(i, selectionEnd.ch); + var range = {anchor: anchor, head: head}; + selections.push(range); + } + cm.setSelections(selections); + } else { + var start = lastSelection.anchorMark.find(); + var end = lastSelection.headMark.find(); + var line = end.line - start.line; + var ch = end.ch - start.ch; + selectionEnd = {line: selectionEnd.line + line, ch: line ? selectionEnd.ch : ch + selectionEnd.ch}; + if (lastSelection.visualLine) { + selectionStart = Pos(selectionStart.line, 0); + selectionEnd = Pos(selectionEnd.line, lineLength(cm, selectionEnd.line)); + } + cm.setSelection(selectionStart, selectionEnd); + } + return [selectionStart, selectionEnd]; + }; + if (!vim.visualMode) { + return getLastSelectedAreaRange(); + } else { + return getCurrentSelectedAreaRange(); + } + } + function updateLastSelection(cm, vim) { + var anchor = vim.sel.anchor; + var head = vim.sel.head; + if (vim.lastPastedText) { + head = cm.posFromIndex(cm.indexFromPos(anchor) + vim.lastPastedText.length); + vim.lastPastedText = null; + } + vim.lastSelection = {'anchorMark': cm.setBookmark(anchor), + 'headMark': cm.setBookmark(head), + 'anchor': copyCursor(anchor), + 'head': copyCursor(head), + 'visualMode': vim.visualMode, + 'visualLine': vim.visualLine, + 'visualBlock': vim.visualBlock}; + } + function expandSelection(cm, start, end) { + var sel = cm.state.vim.sel; + var head = sel.head; + var anchor = sel.anchor; + var tmp; + if (cursorIsBefore(end, start)) { + tmp = end; + end = start; + start = tmp; + } + if (cursorIsBefore(head, anchor)) { + head = cursorMin(start, head); + anchor = cursorMax(anchor, end); + } else { + anchor = cursorMin(start, anchor); + head = cursorMax(head, end); + head = offsetCursor(head, 0, -1); + if (head.ch == -1 && head.line != cm.firstLine()) { + head = Pos(head.line - 1, lineLength(cm, head.line - 1)); + } + } + return [anchor, head]; + } + function updateCmSelection(cm, sel, mode) { + var vim = cm.state.vim; + sel = sel || vim.sel; + var mode = mode || + vim.visualLine ? 'line' : vim.visualBlock ? 'block' : 'char'; + var cmSel = makeCmSelection(cm, sel, mode); + cm.setSelections(cmSel.ranges, cmSel.primary); + updateFakeCursor(cm); + } + function makeCmSelection(cm, sel, mode, exclusive) { + var head = copyCursor(sel.head); + var anchor = copyCursor(sel.anchor); + if (mode == 'char') { + var headOffset = !exclusive && !cursorIsBefore(sel.head, sel.anchor) ? 1 : 0; + var anchorOffset = cursorIsBefore(sel.head, sel.anchor) ? 1 : 0; + head = offsetCursor(sel.head, 0, headOffset); + anchor = offsetCursor(sel.anchor, 0, anchorOffset); + return { + ranges: [{anchor: anchor, head: head}], + primary: 0 + }; + } else if (mode == 'line') { + if (!cursorIsBefore(sel.head, sel.anchor)) { + anchor.ch = 0; + + var lastLine = cm.lastLine(); + if (head.line > lastLine) { + head.line = lastLine; + } + head.ch = lineLength(cm, head.line); + } else { + head.ch = 0; + anchor.ch = lineLength(cm, anchor.line); + } + return { + ranges: [{anchor: anchor, head: head}], + primary: 0 + }; + } else if (mode == 'block') { + var top = Math.min(anchor.line, head.line), + left = Math.min(anchor.ch, head.ch), + bottom = Math.max(anchor.line, head.line), + right = Math.max(anchor.ch, head.ch) + 1; + var height = bottom - top + 1; + var primary = head.line == top ? 0 : height - 1; + var ranges = []; + for (var i = 0; i < height; i++) { + ranges.push({ + anchor: Pos(top + i, left), + head: Pos(top + i, right) + }); + } + return { + ranges: ranges, + primary: primary + }; + } + } + function getHead(cm) { + var cur = cm.getCursor('head'); + if (cm.getSelection().length == 1) { + cur = cursorMin(cur, cm.getCursor('anchor')); + } + return cur; + } + function exitVisualMode(cm, moveHead) { + var vim = cm.state.vim; + if (moveHead !== false) { + cm.setCursor(clipCursorToContent(cm, vim.sel.head)); + } + updateLastSelection(cm, vim); + vim.visualMode = false; + vim.visualLine = false; + vim.visualBlock = false; + CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"}); + if (vim.fakeCursor) { + vim.fakeCursor.clear(); + } + } + function clipToLine(cm, curStart, curEnd) { + var selection = cm.getRange(curStart, curEnd); + if (/\n\s*$/.test(selection)) { + var lines = selection.split('\n'); + lines.pop(); + var line; + for (var line = lines.pop(); lines.length > 0 && line && isWhiteSpaceString(line); line = lines.pop()) { + curEnd.line--; + curEnd.ch = 0; + } + if (line) { + curEnd.line--; + curEnd.ch = lineLength(cm, curEnd.line); + } else { + curEnd.ch = 0; + } + } + } + function expandSelectionToLine(_cm, curStart, curEnd) { + curStart.ch = 0; + curEnd.ch = 0; + curEnd.line++; + } + + function findFirstNonWhiteSpaceCharacter(text) { + if (!text) { + return 0; + } + var firstNonWS = text.search(/\S/); + return firstNonWS == -1 ? text.length : firstNonWS; + } + + function expandWordUnderCursor(cm, inclusive, _forward, bigWord, noSymbol) { + var cur = getHead(cm); + var line = cm.getLine(cur.line); + var idx = cur.ch; + var test = noSymbol ? wordCharTest[0] : bigWordCharTest [0]; + while (!test(line.charAt(idx))) { + idx++; + if (idx >= line.length) { return null; } + } + + if (bigWord) { + test = bigWordCharTest[0]; + } else { + test = wordCharTest[0]; + if (!test(line.charAt(idx))) { + test = wordCharTest[1]; + } + } + + var end = idx, start = idx; + while (test(line.charAt(end)) && end < line.length) { end++; } + while (test(line.charAt(start)) && start >= 0) { start--; } + start++; + + if (inclusive) { + var wordEnd = end; + while (/\s/.test(line.charAt(end)) && end < line.length) { end++; } + if (wordEnd == end) { + var wordStart = start; + while (/\s/.test(line.charAt(start - 1)) && start > 0) { start--; } + if (!start) { start = wordStart; } + } + } + return { start: Pos(cur.line, start), end: Pos(cur.line, end) }; + } + + function recordJumpPosition(cm, oldCur, newCur) { + if (!cursorEqual(oldCur, newCur)) { + vimGlobalState.jumpList.add(cm, oldCur, newCur); + } + } + + function recordLastCharacterSearch(increment, args) { + vimGlobalState.lastChararacterSearch.increment = increment; + vimGlobalState.lastChararacterSearch.forward = args.forward; + vimGlobalState.lastChararacterSearch.selectedCharacter = args.selectedCharacter; + } + + var symbolToMode = { + '(': 'bracket', ')': 'bracket', '{': 'bracket', '}': 'bracket', + '[': 'section', ']': 'section', + '*': 'comment', '/': 'comment', + 'm': 'method', 'M': 'method', + '#': 'preprocess' + }; + var findSymbolModes = { + bracket: { + isComplete: function(state) { + if (state.nextCh === state.symb) { + state.depth++; + if (state.depth >= 1)return true; + } else if (state.nextCh === state.reverseSymb) { + state.depth--; + } + return false; + } + }, + section: { + init: function(state) { + state.curMoveThrough = true; + state.symb = (state.forward ? ']' : '[') === state.symb ? '{' : '}'; + }, + isComplete: function(state) { + return state.index === 0 && state.nextCh === state.symb; + } + }, + comment: { + isComplete: function(state) { + var found = state.lastCh === '*' && state.nextCh === '/'; + state.lastCh = state.nextCh; + return found; + } + }, + method: { + init: function(state) { + state.symb = (state.symb === 'm' ? '{' : '}'); + state.reverseSymb = state.symb === '{' ? '}' : '{'; + }, + isComplete: function(state) { + if (state.nextCh === state.symb)return true; + return false; + } + }, + preprocess: { + init: function(state) { + state.index = 0; + }, + isComplete: function(state) { + if (state.nextCh === '#') { + var token = state.lineText.match(/#(\w+)/)[1]; + if (token === 'endif') { + if (state.forward && state.depth === 0) { + return true; + } + state.depth++; + } else if (token === 'if') { + if (!state.forward && state.depth === 0) { + return true; + } + state.depth--; + } + if (token === 'else' && state.depth === 0)return true; + } + return false; + } + } + }; + function findSymbol(cm, repeat, forward, symb) { + var cur = copyCursor(cm.getCursor()); + var increment = forward ? 1 : -1; + var endLine = forward ? cm.lineCount() : -1; + var curCh = cur.ch; + var line = cur.line; + var lineText = cm.getLine(line); + var state = { + lineText: lineText, + nextCh: lineText.charAt(curCh), + lastCh: null, + index: curCh, + symb: symb, + reverseSymb: (forward ? { ')': '(', '}': '{' } : { '(': ')', '{': '}' })[symb], + forward: forward, + depth: 0, + curMoveThrough: false + }; + var mode = symbolToMode[symb]; + if (!mode)return cur; + var init = findSymbolModes[mode].init; + var isComplete = findSymbolModes[mode].isComplete; + if (init) { init(state); } + while (line !== endLine && repeat) { + state.index += increment; + state.nextCh = state.lineText.charAt(state.index); + if (!state.nextCh) { + line += increment; + state.lineText = cm.getLine(line) || ''; + if (increment > 0) { + state.index = 0; + } else { + var lineLen = state.lineText.length; + state.index = (lineLen > 0) ? (lineLen-1) : 0; + } + state.nextCh = state.lineText.charAt(state.index); + } + if (isComplete(state)) { + cur.line = line; + cur.ch = state.index; + repeat--; + } + } + if (state.nextCh || state.curMoveThrough) { + return Pos(line, state.index); + } + return cur; + } + function findWord(cm, cur, forward, bigWord, emptyLineIsWord) { + var lineNum = cur.line; + var pos = cur.ch; + var line = cm.getLine(lineNum); + var dir = forward ? 1 : -1; + var charTests = bigWord ? bigWordCharTest: wordCharTest; + + if (emptyLineIsWord && line == '') { + lineNum += dir; + line = cm.getLine(lineNum); + if (!isLine(cm, lineNum)) { + return null; + } + pos = (forward) ? 0 : line.length; + } + + while (true) { + if (emptyLineIsWord && line == '') { + return { from: 0, to: 0, line: lineNum }; + } + var stop = (dir > 0) ? line.length : -1; + var wordStart = stop, wordEnd = stop; + while (pos != stop) { + var foundWord = false; + for (var i = 0; i < charTests.length && !foundWord; ++i) { + if (charTests[i](line.charAt(pos))) { + wordStart = pos; + while (pos != stop && charTests[i](line.charAt(pos))) { + pos += dir; + } + wordEnd = pos; + foundWord = wordStart != wordEnd; + if (wordStart == cur.ch && lineNum == cur.line && + wordEnd == wordStart + dir) { + continue; + } else { + return { + from: Math.min(wordStart, wordEnd + 1), + to: Math.max(wordStart, wordEnd), + line: lineNum }; + } + } + } + if (!foundWord) { + pos += dir; + } + } + lineNum += dir; + if (!isLine(cm, lineNum)) { + return null; + } + line = cm.getLine(lineNum); + pos = (dir > 0) ? 0 : line.length; + } + throw new Error('The impossible happened.'); + } + function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) { + var curStart = copyCursor(cur); + var words = []; + if (forward && !wordEnd || !forward && wordEnd) { + repeat++; + } + var emptyLineIsWord = !(forward && wordEnd); + for (var i = 0; i < repeat; i++) { + var word = findWord(cm, cur, forward, bigWord, emptyLineIsWord); + if (!word) { + var eodCh = lineLength(cm, cm.lastLine()); + words.push(forward + ? {line: cm.lastLine(), from: eodCh, to: eodCh} + : {line: 0, from: 0, to: 0}); + break; + } + words.push(word); + cur = Pos(word.line, forward ? (word.to - 1) : word.from); + } + var shortCircuit = words.length != repeat; + var firstWord = words[0]; + var lastWord = words.pop(); + if (forward && !wordEnd) { + if (!shortCircuit && (firstWord.from != curStart.ch || firstWord.line != curStart.line)) { + lastWord = words.pop(); + } + return Pos(lastWord.line, lastWord.from); + } else if (forward && wordEnd) { + return Pos(lastWord.line, lastWord.to - 1); + } else if (!forward && wordEnd) { + if (!shortCircuit && (firstWord.to != curStart.ch || firstWord.line != curStart.line)) { + lastWord = words.pop(); + } + return Pos(lastWord.line, lastWord.to); + } else { + return Pos(lastWord.line, lastWord.from); + } + } + + function moveToCharacter(cm, repeat, forward, character) { + var cur = cm.getCursor(); + var start = cur.ch; + var idx; + for (var i = 0; i < repeat; i ++) { + var line = cm.getLine(cur.line); + idx = charIdxInLine(start, line, character, forward, true); + if (idx == -1) { + return null; + } + start = idx; + } + return Pos(cm.getCursor().line, idx); + } + + function moveToColumn(cm, repeat) { + var line = cm.getCursor().line; + return clipCursorToContent(cm, Pos(line, repeat - 1)); + } + + function updateMark(cm, vim, markName, pos) { + if (!inArray(markName, validMarks)) { + return; + } + if (vim.marks[markName]) { + vim.marks[markName].clear(); + } + vim.marks[markName] = cm.setBookmark(pos); + } + + function charIdxInLine(start, line, character, forward, includeChar) { + var idx; + if (forward) { + idx = line.indexOf(character, start + 1); + if (idx != -1 && !includeChar) { + idx -= 1; + } + } else { + idx = line.lastIndexOf(character, start - 1); + if (idx != -1 && !includeChar) { + idx += 1; + } + } + return idx; + } + + function findParagraph(cm, head, repeat, dir, inclusive) { + var line = head.line; + var min = cm.firstLine(); + var max = cm.lastLine(); + var start, end, i = line; + function isEmpty(i) { return !/\S/.test(cm.getLine(i)); } // ace_patch + function isBoundary(i, dir, any) { + if (any) { return isEmpty(i) != isEmpty(i + dir); } + return !isEmpty(i) && isEmpty(i + dir); + } + function skipFold(i) { + dir = dir > 0 ? 1 : -1; + var foldLine = cm.ace.session.getFoldLine(i); + if (foldLine) { + if (i + dir > foldLine.start.row && i + dir < foldLine.end.row) + dir = (dir > 0 ? foldLine.end.row : foldLine.start.row) - i; + } + } + if (dir) { + while (min <= i && i <= max && repeat > 0) { + skipFold(i); + if (isBoundary(i, dir)) { repeat--; } + i += dir; + } + return new Pos(i, 0); + } + + var vim = cm.state.vim; + if (vim.visualLine && isBoundary(line, 1, true)) { + var anchor = vim.sel.anchor; + if (isBoundary(anchor.line, -1, true)) { + if (!inclusive || anchor.line != line) { + line += 1; + } + } + } + var startState = isEmpty(line); + for (i = line; i <= max && repeat; i++) { + if (isBoundary(i, 1, true)) { + if (!inclusive || isEmpty(i) != startState) { + repeat--; + } + } + } + end = new Pos(i, 0); + if (i > max && !startState) { startState = true; } + else { inclusive = false; } + for (i = line; i > min; i--) { + if (!inclusive || isEmpty(i) == startState || i == line) { + if (isBoundary(i, -1, true)) { break; } + } + } + start = new Pos(i, 0); + return { start: start, end: end }; + } + function selectCompanionObject(cm, head, symb, inclusive) { + var cur = head, start, end; + + var bracketRegexp = ({ + '(': /[()]/, ')': /[()]/, + '[': /[[\]]/, ']': /[[\]]/, + '{': /[{}]/, '}': /[{}]/})[symb]; + var openSym = ({ + '(': '(', ')': '(', + '[': '[', ']': '[', + '{': '{', '}': '{'})[symb]; + var curChar = cm.getLine(cur.line).charAt(cur.ch); + var offset = curChar === openSym ? 1 : 0; + + start = cm.scanForBracket(Pos(cur.line, cur.ch + offset), -1, null, {'bracketRegex': bracketRegexp}); + end = cm.scanForBracket(Pos(cur.line, cur.ch + offset), 1, null, {'bracketRegex': bracketRegexp}); + + if (!start || !end) { + return { start: cur, end: cur }; + } + + start = start.pos; + end = end.pos; + + if ((start.line == end.line && start.ch > end.ch) + || (start.line > end.line)) { + var tmp = start; + start = end; + end = tmp; + } + + if (inclusive) { + end.ch += 1; + } else { + start.ch += 1; + } + + return { start: start, end: end }; + } + function findBeginningAndEnd(cm, head, symb, inclusive) { + var cur = copyCursor(head); + var line = cm.getLine(cur.line); + var chars = line.split(''); + var start, end, i, len; + var firstIndex = chars.indexOf(symb); + if (cur.ch < firstIndex) { + cur.ch = firstIndex; + } + else if (firstIndex < cur.ch && chars[cur.ch] == symb) { + end = cur.ch; // assign end to the current cursor + --cur.ch; // make sure to look backwards + } + if (chars[cur.ch] == symb && !end) { + start = cur.ch + 1; // assign start to ahead of the cursor + } else { + for (i = cur.ch; i > -1 && !start; i--) { + if (chars[i] == symb) { + start = i + 1; + } + } + } + if (start && !end) { + for (i = start, len = chars.length; i < len && !end; i++) { + if (chars[i] == symb) { + end = i; + } + } + } + if (!start || !end) { + return { start: cur, end: cur }; + } + if (inclusive) { + --start; ++end; + } + + return { + start: Pos(cur.line, start), + end: Pos(cur.line, end) + }; + } + defineOption('pcre', true, 'boolean'); + function SearchState() {} + SearchState.prototype = { + getQuery: function() { + return vimGlobalState.query; + }, + setQuery: function(query) { + vimGlobalState.query = query; + }, + getOverlay: function() { + return this.searchOverlay; + }, + setOverlay: function(overlay) { + this.searchOverlay = overlay; + }, + isReversed: function() { + return vimGlobalState.isReversed; + }, + setReversed: function(reversed) { + vimGlobalState.isReversed = reversed; + }, + getScrollbarAnnotate: function() { + return this.annotate; + }, + setScrollbarAnnotate: function(annotate) { + this.annotate = annotate; + } + }; + function getSearchState(cm) { + var vim = cm.state.vim; + return vim.searchState_ || (vim.searchState_ = new SearchState()); + } + function dialog(cm, template, shortText, onClose, options) { + if (cm.openDialog) { + cm.openDialog(template, onClose, { bottom: true, value: options.value, + onKeyDown: options.onKeyDown, onKeyUp: options.onKeyUp, + selectValueOnOpen: false}); + } + else { + onClose(prompt(shortText, '')); + } + } + function splitBySlash(argString) { + var slashes = findUnescapedSlashes(argString) || []; + if (!slashes.length) return []; + var tokens = []; + if (slashes[0] !== 0) return; + for (var i = 0; i < slashes.length; i++) { + if (typeof slashes[i] == 'number') + tokens.push(argString.substring(slashes[i] + 1, slashes[i+1])); + } + return tokens; + } + + function findUnescapedSlashes(str) { + var escapeNextChar = false; + var slashes = []; + for (var i = 0; i < str.length; i++) { + var c = str.charAt(i); + if (!escapeNextChar && c == '/') { + slashes.push(i); + } + escapeNextChar = !escapeNextChar && (c == '\\'); + } + return slashes; + } + function translateRegex(str) { + var specials = '|(){'; + var unescape = '}'; + var escapeNextChar = false; + var out = []; + for (var i = -1; i < str.length; i++) { + var c = str.charAt(i) || ''; + var n = str.charAt(i+1) || ''; + var specialComesNext = (n && specials.indexOf(n) != -1); + if (escapeNextChar) { + if (c !== '\\' || !specialComesNext) { + out.push(c); + } + escapeNextChar = false; + } else { + if (c === '\\') { + escapeNextChar = true; + if (n && unescape.indexOf(n) != -1) { + specialComesNext = true; + } + if (!specialComesNext || n === '\\') { + out.push(c); + } + } else { + out.push(c); + if (specialComesNext && n !== '\\') { + out.push('\\'); + } + } + } + } + return out.join(''); + } + var charUnescapes = {'\\n': '\n', '\\r': '\r', '\\t': '\t'}; + function translateRegexReplace(str) { + var escapeNextChar = false; + var out = []; + for (var i = -1; i < str.length; i++) { + var c = str.charAt(i) || ''; + var n = str.charAt(i+1) || ''; + if (charUnescapes[c + n]) { + out.push(charUnescapes[c+n]); + i++; + } else if (escapeNextChar) { + out.push(c); + escapeNextChar = false; + } else { + if (c === '\\') { + escapeNextChar = true; + if ((isNumber(n) || n === '$')) { + out.push('$'); + } else if (n !== '/' && n !== '\\') { + out.push('\\'); + } + } else { + if (c === '$') { + out.push('$'); + } + out.push(c); + if (n === '/') { + out.push('\\'); + } + } + } + } + return out.join(''); + } + var unescapes = {'\\/': '/', '\\\\': '\\', '\\n': '\n', '\\r': '\r', '\\t': '\t'}; + function unescapeRegexReplace(str) { + var stream = new CodeMirror.StringStream(str); + var output = []; + while (!stream.eol()) { + while (stream.peek() && stream.peek() != '\\') { + output.push(stream.next()); + } + var matched = false; + for (var matcher in unescapes) { + if (stream.match(matcher, true)) { + matched = true; + output.push(unescapes[matcher]); + break; + } + } + if (!matched) { + output.push(stream.next()); + } + } + return output.join(''); + } + function parseQuery(query, ignoreCase, smartCase) { + var lastSearchRegister = vimGlobalState.registerController.getRegister('/'); + lastSearchRegister.setText(query); + if (query instanceof RegExp) { return query; } + var slashes = findUnescapedSlashes(query); + var regexPart; + var forceIgnoreCase; + if (!slashes.length) { + regexPart = query; + } else { + regexPart = query.substring(0, slashes[0]); + var flagsPart = query.substring(slashes[0]); + forceIgnoreCase = (flagsPart.indexOf('i') != -1); + } + if (!regexPart) { + return null; + } + if (!getOption('pcre')) { + regexPart = translateRegex(regexPart); + } + if (smartCase) { + ignoreCase = (/^[^A-Z]*$/).test(regexPart); + } + var regexp = new RegExp(regexPart, + (ignoreCase || forceIgnoreCase) ? 'i' : undefined); + return regexp; + } + function showConfirm(cm, text) { + if (cm.openNotification) { + cm.openNotification('' + text + '', + {bottom: true, duration: 5000}); + } else { + alert(text); + } + } + function makePrompt(prefix, desc) { + var raw = ''; + if (prefix) { + raw += '' + prefix + ''; + } + raw += ' ' + + ''; + if (desc) { + raw += ''; + raw += desc; + raw += ''; + } + return raw; + } + var searchPromptDesc = '(Javascript regexp)'; + function showPrompt(cm, options) { + var shortText = (options.prefix || '') + ' ' + (options.desc || ''); + var prompt = makePrompt(options.prefix, options.desc); + dialog(cm, prompt, shortText, options.onClose, options); + } + function regexEqual(r1, r2) { + if (r1 instanceof RegExp && r2 instanceof RegExp) { + var props = ['global', 'multiline', 'ignoreCase', 'source']; + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + if (r1[prop] !== r2[prop]) { + return false; + } + } + return true; + } + return false; + } + function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) { + if (!rawQuery) { + return; + } + var state = getSearchState(cm); + var query = parseQuery(rawQuery, !!ignoreCase, !!smartCase); + if (!query) { + return; + } + highlightSearchMatches(cm, query); + if (regexEqual(query, state.getQuery())) { + return query; + } + state.setQuery(query); + return query; + } + function searchOverlay(query) { + if (query.source.charAt(0) == '^') { + var matchSol = true; + } + return { + token: function(stream) { + if (matchSol && !stream.sol()) { + stream.skipToEnd(); + return; + } + var match = stream.match(query, false); + if (match) { + if (match[0].length == 0) { + stream.next(); + return 'searching'; + } + if (!stream.sol()) { + stream.backUp(1); + if (!query.exec(stream.next() + match[0])) { + stream.next(); + return null; + } + } + stream.match(query); + return 'searching'; + } + while (!stream.eol()) { + stream.next(); + if (stream.match(query, false)) break; + } + }, + query: query + }; + } + function highlightSearchMatches(cm, query) { + var searchState = getSearchState(cm); + var overlay = searchState.getOverlay(); + if (!overlay || query != overlay.query) { + if (overlay) { + cm.removeOverlay(overlay); + } + overlay = searchOverlay(query); + cm.addOverlay(overlay); + if (cm.showMatchesOnScrollbar) { + if (searchState.getScrollbarAnnotate()) { + searchState.getScrollbarAnnotate().clear(); + } + searchState.setScrollbarAnnotate(cm.showMatchesOnScrollbar(query)); + } + searchState.setOverlay(overlay); + } + } + function findNext(cm, prev, query, repeat) { + if (repeat === undefined) { repeat = 1; } + return cm.operation(function() { + var pos = cm.getCursor(); + var cursor = cm.getSearchCursor(query, pos); + for (var i = 0; i < repeat; i++) { + var found = cursor.find(prev); + if (i == 0 && found && cursorEqual(cursor.from(), pos)) { found = cursor.find(prev); } + if (!found) { + cursor = cm.getSearchCursor(query, + (prev) ? Pos(cm.lastLine()) : Pos(cm.firstLine(), 0) ); + if (!cursor.find(prev)) { + return; + } + } + } + return cursor.from(); + }); + } + function clearSearchHighlight(cm) { + var state = getSearchState(cm); + cm.removeOverlay(getSearchState(cm).getOverlay()); + state.setOverlay(null); + if (state.getScrollbarAnnotate()) { + state.getScrollbarAnnotate().clear(); + state.setScrollbarAnnotate(null); + } + } + function isInRange(pos, start, end) { + if (typeof pos != 'number') { + pos = pos.line; + } + if (start instanceof Array) { + return inArray(pos, start); + } else { + if (end) { + return (pos >= start && pos <= end); + } else { + return pos == start; + } + } + } + function getUserVisibleLines(cm) { + var renderer = cm.ace.renderer; + return { + top: renderer.getFirstFullyVisibleRow(), + bottom: renderer.getLastFullyVisibleRow() + } + } + + var ExCommandDispatcher = function() { + this.buildCommandMap_(); + }; + ExCommandDispatcher.prototype = { + processCommand: function(cm, input, opt_params) { + var that = this; + cm.operation(function () { + cm.curOp.isVimOp = true; + that._processCommand(cm, input, opt_params); + }); + }, + _processCommand: function(cm, input, opt_params) { + var vim = cm.state.vim; + var commandHistoryRegister = vimGlobalState.registerController.getRegister(':'); + var previousCommand = commandHistoryRegister.toString(); + if (vim.visualMode) { + exitVisualMode(cm); + } + var inputStream = new CodeMirror.StringStream(input); + commandHistoryRegister.setText(input); + var params = opt_params || {}; + params.input = input; + try { + this.parseInput_(cm, inputStream, params); + } catch(e) { + showConfirm(cm, e); + throw e; + } + var command; + var commandName; + if (!params.commandName) { + if (params.line !== undefined) { + commandName = 'move'; + } + } else { + command = this.matchCommand_(params.commandName); + if (command) { + commandName = command.name; + if (command.excludeFromCommandHistory) { + commandHistoryRegister.setText(previousCommand); + } + this.parseCommandArgs_(inputStream, params, command); + if (command.type == 'exToKey') { + for (var i = 0; i < command.toKeys.length; i++) { + CodeMirror.Vim.handleKey(cm, command.toKeys[i], 'mapping'); + } + return; + } else if (command.type == 'exToEx') { + this.processCommand(cm, command.toInput); + return; + } + } + } + if (!commandName) { + showConfirm(cm, 'Not an editor command ":' + input + '"'); + return; + } + try { + exCommands[commandName](cm, params); + if ((!command || !command.possiblyAsync) && params.callback) { + params.callback(); + } + } catch(e) { + showConfirm(cm, e); + throw e; + } + }, + parseInput_: function(cm, inputStream, result) { + inputStream.eatWhile(':'); + if (inputStream.eat('%')) { + result.line = cm.firstLine(); + result.lineEnd = cm.lastLine(); + } else { + result.line = this.parseLineSpec_(cm, inputStream); + if (result.line !== undefined && inputStream.eat(',')) { + result.lineEnd = this.parseLineSpec_(cm, inputStream); + } + } + var commandMatch = inputStream.match(/^(\w+)/); + if (commandMatch) { + result.commandName = commandMatch[1]; + } else { + result.commandName = inputStream.match(/.*/)[0]; + } + + return result; + }, + parseLineSpec_: function(cm, inputStream) { + var numberMatch = inputStream.match(/^(\d+)/); + if (numberMatch) { + return parseInt(numberMatch[1], 10) - 1; + } + switch (inputStream.next()) { + case '.': + return cm.getCursor().line; + case '$': + return cm.lastLine(); + case '\'': + var mark = cm.state.vim.marks[inputStream.next()]; + if (mark && mark.find()) { + return mark.find().line; + } + throw new Error('Mark not set'); + default: + inputStream.backUp(1); + return undefined; + } + }, + parseCommandArgs_: function(inputStream, params, command) { + if (inputStream.eol()) { + return; + } + params.argString = inputStream.match(/.*/)[0]; + var delim = command.argDelimiter || /\s+/; + var args = trim(params.argString).split(delim); + if (args.length && args[0]) { + params.args = args; + } + }, + matchCommand_: function(commandName) { + for (var i = commandName.length; i > 0; i--) { + var prefix = commandName.substring(0, i); + if (this.commandMap_[prefix]) { + var command = this.commandMap_[prefix]; + if (command.name.indexOf(commandName) === 0) { + return command; + } + } + } + return null; + }, + buildCommandMap_: function() { + this.commandMap_ = {}; + for (var i = 0; i < defaultExCommandMap.length; i++) { + var command = defaultExCommandMap[i]; + var key = command.shortName || command.name; + this.commandMap_[key] = command; + } + }, + map: function(lhs, rhs, ctx) { + if (lhs != ':' && lhs.charAt(0) == ':') { + if (ctx) { throw Error('Mode not supported for ex mappings'); } + var commandName = lhs.substring(1); + if (rhs != ':' && rhs.charAt(0) == ':') { + this.commandMap_[commandName] = { + name: commandName, + type: 'exToEx', + toInput: rhs.substring(1), + user: true + }; + } else { + this.commandMap_[commandName] = { + name: commandName, + type: 'exToKey', + toKeys: rhs, + user: true + }; + } + } else { + if (rhs != ':' && rhs.charAt(0) == ':') { + var mapping = { + keys: lhs, + type: 'keyToEx', + exArgs: { input: rhs.substring(1) }, + user: true}; + if (ctx) { mapping.context = ctx; } + defaultKeymap.unshift(mapping); + } else { + var mapping = { + keys: lhs, + type: 'keyToKey', + toKeys: rhs, + user: true + }; + if (ctx) { mapping.context = ctx; } + defaultKeymap.unshift(mapping); + } + } + }, + unmap: function(lhs, ctx) { + if (lhs != ':' && lhs.charAt(0) == ':') { + if (ctx) { throw Error('Mode not supported for ex mappings'); } + var commandName = lhs.substring(1); + if (this.commandMap_[commandName] && this.commandMap_[commandName].user) { + delete this.commandMap_[commandName]; + return; + } + } else { + var keys = lhs; + for (var i = 0; i < defaultKeymap.length; i++) { + if (keys == defaultKeymap[i].keys + && defaultKeymap[i].context === ctx + && defaultKeymap[i].user) { + defaultKeymap.splice(i, 1); + return; + } + } + } + } + }; + + var exCommands = { + colorscheme: function(cm, params) { + if (!params.args || params.args.length < 1) { + showConfirm(cm, cm.getOption('theme')); + return; + } + cm.setOption('theme', params.args[0]); + }, + map: function(cm, params, ctx) { + var mapArgs = params.args; + if (!mapArgs || mapArgs.length < 2) { + if (cm) { + showConfirm(cm, 'Invalid mapping: ' + params.input); + } + return; + } + exCommandDispatcher.map(mapArgs[0], mapArgs[1], ctx); + }, + imap: function(cm, params) { this.map(cm, params, 'insert'); }, + nmap: function(cm, params) { this.map(cm, params, 'normal'); }, + vmap: function(cm, params) { this.map(cm, params, 'visual'); }, + unmap: function(cm, params, ctx) { + var mapArgs = params.args; + if (!mapArgs || mapArgs.length < 1) { + if (cm) { + showConfirm(cm, 'No such mapping: ' + params.input); + } + return; + } + exCommandDispatcher.unmap(mapArgs[0], ctx); + }, + move: function(cm, params) { + commandDispatcher.processCommand(cm, cm.state.vim, { + type: 'motion', + motion: 'moveToLineOrEdgeOfDocument', + motionArgs: { forward: false, explicitRepeat: true, + linewise: true }, + repeatOverride: params.line+1}); + }, + set: function(cm, params) { + var setArgs = params.args; + var setCfg = params.setCfg || {}; + if (!setArgs || setArgs.length < 1) { + if (cm) { + showConfirm(cm, 'Invalid mapping: ' + params.input); + } + return; + } + var expr = setArgs[0].split('='); + var optionName = expr[0]; + var value = expr[1]; + var forceGet = false; + + if (optionName.charAt(optionName.length - 1) == '?') { + if (value) { throw Error('Trailing characters: ' + params.argString); } + optionName = optionName.substring(0, optionName.length - 1); + forceGet = true; + } + if (value === undefined && optionName.substring(0, 2) == 'no') { + optionName = optionName.substring(2); + value = false; + } + + var optionIsBoolean = options[optionName] && options[optionName].type == 'boolean'; + if (optionIsBoolean && value == undefined) { + value = true; + } + if (!optionIsBoolean && value === undefined || forceGet) { + var oldValue = getOption(optionName, cm, setCfg); + if (oldValue === true || oldValue === false) { + showConfirm(cm, ' ' + (oldValue ? '' : 'no') + optionName); + } else { + showConfirm(cm, ' ' + optionName + '=' + oldValue); + } + } else { + setOption(optionName, value, cm, setCfg); + } + }, + setlocal: function (cm, params) { + params.setCfg = {scope: 'local'}; + this.set(cm, params); + }, + setglobal: function (cm, params) { + params.setCfg = {scope: 'global'}; + this.set(cm, params); + }, + registers: function(cm, params) { + var regArgs = params.args; + var registers = vimGlobalState.registerController.registers; + var regInfo = '----------Registers----------

    '; + if (!regArgs) { + for (var registerName in registers) { + var text = registers[registerName].toString(); + if (text.length) { + regInfo += '"' + registerName + ' ' + text + '
    '; + } + } + } else { + var registerName; + regArgs = regArgs.join(''); + for (var i = 0; i < regArgs.length; i++) { + registerName = regArgs.charAt(i); + if (!vimGlobalState.registerController.isValidRegister(registerName)) { + continue; + } + var register = registers[registerName] || new Register(); + regInfo += '"' + registerName + ' ' + register.toString() + '
    '; + } + } + showConfirm(cm, regInfo); + }, + sort: function(cm, params) { + var reverse, ignoreCase, unique, number; + function parseArgs() { + if (params.argString) { + var args = new CodeMirror.StringStream(params.argString); + if (args.eat('!')) { reverse = true; } + if (args.eol()) { return; } + if (!args.eatSpace()) { return 'Invalid arguments'; } + var opts = args.match(/[a-z]+/); + if (opts) { + opts = opts[0]; + ignoreCase = opts.indexOf('i') != -1; + unique = opts.indexOf('u') != -1; + var decimal = opts.indexOf('d') != -1 && 1; + var hex = opts.indexOf('x') != -1 && 1; + var octal = opts.indexOf('o') != -1 && 1; + if (decimal + hex + octal > 1) { return 'Invalid arguments'; } + number = decimal && 'decimal' || hex && 'hex' || octal && 'octal'; + } + if (args.match(/\/.*\//)) { return 'patterns not supported'; } + } + } + var err = parseArgs(); + if (err) { + showConfirm(cm, err + ': ' + params.argString); + return; + } + var lineStart = params.line || cm.firstLine(); + var lineEnd = params.lineEnd || params.line || cm.lastLine(); + if (lineStart == lineEnd) { return; } + var curStart = Pos(lineStart, 0); + var curEnd = Pos(lineEnd, lineLength(cm, lineEnd)); + var text = cm.getRange(curStart, curEnd).split('\n'); + var numberRegex = (number == 'decimal') ? /(-?)([\d]+)/ : + (number == 'hex') ? /(-?)(?:0x)?([0-9a-f]+)/i : + (number == 'octal') ? /([0-7]+)/ : null; + var radix = (number == 'decimal') ? 10 : (number == 'hex') ? 16 : (number == 'octal') ? 8 : null; + var numPart = [], textPart = []; + if (number) { + for (var i = 0; i < text.length; i++) { + if (numberRegex.exec(text[i])) { + numPart.push(text[i]); + } else { + textPart.push(text[i]); + } + } + } else { + textPart = text; + } + function compareFn(a, b) { + if (reverse) { var tmp; tmp = a; a = b; b = tmp; } + if (ignoreCase) { a = a.toLowerCase(); b = b.toLowerCase(); } + var anum = number && numberRegex.exec(a); + var bnum = number && numberRegex.exec(b); + if (!anum) { return a < b ? -1 : 1; } + anum = parseInt((anum[1] + anum[2]).toLowerCase(), radix); + bnum = parseInt((bnum[1] + bnum[2]).toLowerCase(), radix); + return anum - bnum; + } + numPart.sort(compareFn); + textPart.sort(compareFn); + text = (!reverse) ? textPart.concat(numPart) : numPart.concat(textPart); + if (unique) { // Remove duplicate lines + var textOld = text; + var lastLine; + text = []; + for (var i = 0; i < textOld.length; i++) { + if (textOld[i] != lastLine) { + text.push(textOld[i]); + } + lastLine = textOld[i]; + } + } + cm.replaceRange(text.join('\n'), curStart, curEnd); + }, + global: function(cm, params) { + var argString = params.argString; + if (!argString) { + showConfirm(cm, 'Regular Expression missing from global'); + return; + } + var lineStart = (params.line !== undefined) ? params.line : cm.firstLine(); + var lineEnd = params.lineEnd || params.line || cm.lastLine(); + var tokens = splitBySlash(argString); + var regexPart = argString, cmd; + if (tokens.length) { + regexPart = tokens[0]; + cmd = tokens.slice(1, tokens.length).join('/'); + } + if (regexPart) { + try { + updateSearchQuery(cm, regexPart, true /** ignoreCase */, + true /** smartCase */); + } catch (e) { + showConfirm(cm, 'Invalid regex: ' + regexPart); + return; + } + } + var query = getSearchState(cm).getQuery(); + var matchedLines = [], content = ''; + for (var i = lineStart; i <= lineEnd; i++) { + var matched = query.test(cm.getLine(i)); + if (matched) { + matchedLines.push(i+1); + content+= cm.getLine(i) + '
    '; + } + } + if (!cmd) { + showConfirm(cm, content); + return; + } + var index = 0; + var nextCommand = function() { + if (index < matchedLines.length) { + var command = matchedLines[index] + cmd; + exCommandDispatcher.processCommand(cm, command, { + callback: nextCommand + }); + } + index++; + }; + nextCommand(); + }, + substitute: function(cm, params) { + if (!cm.getSearchCursor) { + throw new Error('Search feature not available. Requires searchcursor.js or ' + + 'any other getSearchCursor implementation.'); + } + var argString = params.argString; + var tokens = argString ? splitBySlash(argString) : []; + var regexPart, replacePart = '', trailing, flagsPart, count; + var confirm = false; // Whether to confirm each replace. + var global = false; // True to replace all instances on a line, false to replace only 1. + if (tokens.length) { + regexPart = tokens[0]; + replacePart = tokens[1]; + if (replacePart !== undefined) { + if (getOption('pcre')) { + replacePart = unescapeRegexReplace(replacePart); + } else { + replacePart = translateRegexReplace(replacePart); + } + vimGlobalState.lastSubstituteReplacePart = replacePart; + } + trailing = tokens[2] ? tokens[2].split(' ') : []; + } else { + if (argString && argString.length) { + showConfirm(cm, 'Substitutions should be of the form ' + + ':s/pattern/replace/'); + return; + } + } + if (trailing) { + flagsPart = trailing[0]; + count = parseInt(trailing[1]); + if (flagsPart) { + if (flagsPart.indexOf('c') != -1) { + confirm = true; + flagsPart.replace('c', ''); + } + if (flagsPart.indexOf('g') != -1) { + global = true; + flagsPart.replace('g', ''); + } + regexPart = regexPart + '/' + flagsPart; + } + } + if (regexPart) { + try { + updateSearchQuery(cm, regexPart, true /** ignoreCase */, + true /** smartCase */); + } catch (e) { + showConfirm(cm, 'Invalid regex: ' + regexPart); + return; + } + } + replacePart = replacePart || vimGlobalState.lastSubstituteReplacePart; + if (replacePart === undefined) { + showConfirm(cm, 'No previous substitute regular expression'); + return; + } + var state = getSearchState(cm); + var query = state.getQuery(); + var lineStart = (params.line !== undefined) ? params.line : cm.getCursor().line; + var lineEnd = params.lineEnd || lineStart; + if (lineStart == cm.firstLine() && lineEnd == cm.lastLine()) { + lineEnd = Infinity; + } + if (count) { + lineStart = lineEnd; + lineEnd = lineStart + count - 1; + } + var startPos = clipCursorToContent(cm, Pos(lineStart, 0)); + var cursor = cm.getSearchCursor(query, startPos); + doReplace(cm, confirm, global, lineStart, lineEnd, cursor, query, replacePart, params.callback); + }, + redo: CodeMirror.commands.redo, + undo: CodeMirror.commands.undo, + write: function(cm) { + if (CodeMirror.commands.save) { + CodeMirror.commands.save(cm); + } else { + cm.save(); + } + }, + nohlsearch: function(cm) { + clearSearchHighlight(cm); + }, + delmarks: function(cm, params) { + if (!params.argString || !trim(params.argString)) { + showConfirm(cm, 'Argument required'); + return; + } + + var state = cm.state.vim; + var stream = new CodeMirror.StringStream(trim(params.argString)); + while (!stream.eol()) { + stream.eatSpace(); + var count = stream.pos; + + if (!stream.match(/[a-zA-Z]/, false)) { + showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count)); + return; + } + + var sym = stream.next(); + if (stream.match('-', true)) { + if (!stream.match(/[a-zA-Z]/, false)) { + showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count)); + return; + } + + var startMark = sym; + var finishMark = stream.next(); + if (isLowerCase(startMark) && isLowerCase(finishMark) || + isUpperCase(startMark) && isUpperCase(finishMark)) { + var start = startMark.charCodeAt(0); + var finish = finishMark.charCodeAt(0); + if (start >= finish) { + showConfirm(cm, 'Invalid argument: ' + params.argString.substring(count)); + return; + } + for (var j = 0; j <= finish - start; j++) { + var mark = String.fromCharCode(start + j); + delete state.marks[mark]; + } + } else { + showConfirm(cm, 'Invalid argument: ' + startMark + '-'); + return; + } + } else { + delete state.marks[sym]; + } + } + } + }; + + var exCommandDispatcher = new ExCommandDispatcher(); + function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor, query, + replaceWith, callback) { + cm.state.vim.exMode = true; + var done = false; + var lastPos = searchCursor.from(); + function replaceAll() { + cm.operation(function() { + while (!done) { + replace(); + next(); + } + stop(); + }); + } + function replace() { + var text = cm.getRange(searchCursor.from(), searchCursor.to()); + var newText = text.replace(query, replaceWith); + searchCursor.replace(newText); + } + function next() { + while(searchCursor.findNext() && + isInRange(searchCursor.from(), lineStart, lineEnd)) { + if (!global && lastPos && searchCursor.from().line == lastPos.line) { + continue; + } + cm.scrollIntoView(searchCursor.from(), 30); + cm.setSelection(searchCursor.from(), searchCursor.to()); + lastPos = searchCursor.from(); + done = false; + return; + } + done = true; + } + function stop(close) { + if (close) { close(); } + cm.focus(); + if (lastPos) { + cm.setCursor(lastPos); + var vim = cm.state.vim; + vim.exMode = false; + vim.lastHPos = vim.lastHSPos = lastPos.ch; + } + if (callback) { callback(); } + } + function onPromptKeyDown(e, _value, close) { + CodeMirror.e_stop(e); + var keyName = CodeMirror.keyName(e); + switch (keyName) { + case 'Y': + replace(); next(); break; + case 'N': + next(); break; + case 'A': + var savedCallback = callback; + callback = undefined; + cm.operation(replaceAll); + callback = savedCallback; + break; + case 'L': + replace(); + case 'Q': + case 'Esc': + case 'Ctrl-C': + case 'Ctrl-[': + stop(close); + break; + } + if (done) { stop(close); } + return true; + } + next(); + if (done) { + showConfirm(cm, 'No matches for ' + query.source); + return; + } + if (!confirm) { + replaceAll(); + if (callback) { callback(); } + return; + } + showPrompt(cm, { + prefix: 'replace with ' + replaceWith + ' (y/n/a/q/l)', + onKeyDown: onPromptKeyDown + }); + } + + CodeMirror.keyMap.vim = { + attach: attachVimMap, + detach: detachVimMap, + call: cmKey + }; + + function exitInsertMode(cm) { + var vim = cm.state.vim; + var macroModeState = vimGlobalState.macroModeState; + var insertModeChangeRegister = vimGlobalState.registerController.getRegister('.'); + var isPlaying = macroModeState.isPlaying; + var lastChange = macroModeState.lastInsertModeChanges; + var text = []; + if (!isPlaying) { + var selLength = lastChange.inVisualBlock ? vim.lastSelection.visualBlock.height : 1; + var changes = lastChange.changes; + var text = []; + var i = 0; + while (i < changes.length) { + text.push(changes[i]); + if (changes[i] instanceof InsertModeKey) { + i++; + } else { + i+= selLength; + } + } + lastChange.changes = text; + cm.off('change', onChange); + CodeMirror.off(cm.getInputField(), 'keydown', onKeyEventTargetKeyDown); + } + if (!isPlaying && vim.insertModeRepeat > 1) { + repeatLastEdit(cm, vim, vim.insertModeRepeat - 1, + true /** repeatForInsert */); + vim.lastEditInputState.repeatOverride = vim.insertModeRepeat; + } + delete vim.insertModeRepeat; + vim.insertMode = false; + cm.setCursor(cm.getCursor().line, cm.getCursor().ch-1); + cm.setOption('keyMap', 'vim'); + cm.setOption('disableInput', true); + + lastChange.overwrite = cm.state.overwrite; + cm.toggleOverwrite(false); // exit replace mode if we were in it. + insertModeChangeRegister.setText(lastChange.changes.join('')); + CodeMirror.signal(cm, "vim-mode-change", {mode: "normal"}); + if (macroModeState.isRecording) { + logInsertModeChange(macroModeState); + } + } + + function _mapCommand(command) { + defaultKeymap.unshift(command); + } + + function mapCommand(keys, type, name, args, extra) { + var command = {keys: keys, type: type}; + command[type] = name; + command[type + "Args"] = args; + for (var key in extra) + command[key] = extra[key]; + _mapCommand(command); + } + defineOption('insertModeEscKeysTimeout', 200, 'number'); + + CodeMirror.keyMap['vim-insert'] = { + 'Ctrl-N': 'autocomplete', + 'Ctrl-P': 'autocomplete', + 'Enter': function(cm) { + var fn = CodeMirror.commands.newlineAndIndentContinueComment || + CodeMirror.commands.newlineAndIndent; + fn(cm); + }, + fallthrough: ['default'], + attach: attachVimMap, + detach: detachVimMap, + call: cmKey + }; + + CodeMirror.keyMap['vim-replace'] = { + 'Backspace': 'goCharLeft', + fallthrough: ['vim-insert'], + attach: attachVimMap, + detach: detachVimMap, + call: cmKey + }; + + function executeMacroRegister(cm, vim, macroModeState, registerName) { + var register = vimGlobalState.registerController.getRegister(registerName); + if (registerName == ':') { + if (register.keyBuffer[0]) { + exCommandDispatcher.processCommand(cm, register.keyBuffer[0]); + } + macroModeState.isPlaying = false; + return; + } + var keyBuffer = register.keyBuffer; + var imc = 0; + macroModeState.isPlaying = true; + macroModeState.replaySearchQueries = register.searchQueries.slice(0); + for (var i = 0; i < keyBuffer.length; i++) { + var text = keyBuffer[i]; + var match, key; + while (text) { + match = (/<\w+-.+?>|<\w+>|./).exec(text); + key = match[0]; + text = text.substring(match.index + key.length); + CodeMirror.Vim.handleKey(cm, key, 'macro'); + if (vim.insertMode) { + var changes = register.insertModeChanges[imc++].changes; + vimGlobalState.macroModeState.lastInsertModeChanges.changes = + changes; + repeatInsertModeChanges(cm, changes, 1); + exitInsertMode(cm); + } + } + } + macroModeState.isPlaying = false; + } + + function logKey(macroModeState, key) { + if (macroModeState.isPlaying) { return; } + var registerName = macroModeState.latestRegister; + var register = vimGlobalState.registerController.getRegister(registerName); + if (register) { + register.pushText(key); + } + } + + function logInsertModeChange(macroModeState) { + if (macroModeState.isPlaying) { return; } + var registerName = macroModeState.latestRegister; + var register = vimGlobalState.registerController.getRegister(registerName); + if (register && register.pushInsertModeChanges) { + register.pushInsertModeChanges(macroModeState.lastInsertModeChanges); + } + } + + function logSearchQuery(macroModeState, query) { + if (macroModeState.isPlaying) { return; } + var registerName = macroModeState.latestRegister; + var register = vimGlobalState.registerController.getRegister(registerName); + if (register && register.pushSearchQuery) { + register.pushSearchQuery(query); + } + } + function onChange(_cm, changeObj) { + var macroModeState = vimGlobalState.macroModeState; + var lastChange = macroModeState.lastInsertModeChanges; + if (!macroModeState.isPlaying) { + while(changeObj) { + lastChange.expectCursorActivityForChange = true; + if (changeObj.origin == '+input' || changeObj.origin == 'paste' + || changeObj.origin === undefined /* only in testing */) { + var text = changeObj.text.join('\n'); + if (lastChange.maybeReset) { + lastChange.changes = []; + lastChange.maybeReset = false; + } + lastChange.changes.push(text); + } + changeObj = changeObj.next; + } + } + } + function onCursorActivity(cm) { + var vim = cm.state.vim; + if (vim.insertMode) { + var macroModeState = vimGlobalState.macroModeState; + if (macroModeState.isPlaying) { return; } + var lastChange = macroModeState.lastInsertModeChanges; + if (lastChange.expectCursorActivityForChange) { + lastChange.expectCursorActivityForChange = false; + } else { + lastChange.maybeReset = true; + } + } else if (!cm.curOp.isVimOp) { + handleExternalSelection(cm, vim); + } + if (vim.visualMode) { + updateFakeCursor(cm); + } + } + function updateFakeCursor(cm) { + var vim = cm.state.vim; + var from = clipCursorToContent(cm, copyCursor(vim.sel.head)); + var to = offsetCursor(from, 0, 1); + if (vim.fakeCursor) { + vim.fakeCursor.clear(); + } + vim.fakeCursor = cm.markText(from, to, {className: 'cm-animate-fat-cursor'}); + } + function handleExternalSelection(cm, vim) { + var anchor = cm.getCursor('anchor'); + var head = cm.getCursor('head'); + if (vim.visualMode && !cm.somethingSelected()) { + exitVisualMode(cm, false); + } else if (!vim.visualMode && !vim.insertMode && cm.somethingSelected()) { + vim.visualMode = true; + vim.visualLine = false; + CodeMirror.signal(cm, "vim-mode-change", {mode: "visual"}); + } + if (vim.visualMode) { + var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0; + var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0; + head = offsetCursor(head, 0, headOffset); + anchor = offsetCursor(anchor, 0, anchorOffset); + vim.sel = { + anchor: anchor, + head: head + }; + updateMark(cm, vim, '<', cursorMin(head, anchor)); + updateMark(cm, vim, '>', cursorMax(head, anchor)); + } else if (!vim.insertMode) { + vim.lastHPos = cm.getCursor().ch; + } + } + function InsertModeKey(keyName) { + this.keyName = keyName; + } + function onKeyEventTargetKeyDown(e) { + var macroModeState = vimGlobalState.macroModeState; + var lastChange = macroModeState.lastInsertModeChanges; + var keyName = CodeMirror.keyName(e); + if (!keyName) { return; } + function onKeyFound() { + if (lastChange.maybeReset) { + lastChange.changes = []; + lastChange.maybeReset = false; + } + lastChange.changes.push(new InsertModeKey(keyName)); + return true; + } + if (keyName.indexOf('Delete') != -1 || keyName.indexOf('Backspace') != -1) { + CodeMirror.lookupKey(keyName, 'vim-insert', onKeyFound); + } + } + function repeatLastEdit(cm, vim, repeat, repeatForInsert) { + var macroModeState = vimGlobalState.macroModeState; + macroModeState.isPlaying = true; + var isAction = !!vim.lastEditActionCommand; + var cachedInputState = vim.inputState; + function repeatCommand() { + if (isAction) { + commandDispatcher.processAction(cm, vim, vim.lastEditActionCommand); + } else { + commandDispatcher.evalInput(cm, vim); + } + } + function repeatInsert(repeat) { + if (macroModeState.lastInsertModeChanges.changes.length > 0) { + repeat = !vim.lastEditActionCommand ? 1 : repeat; + var changeObject = macroModeState.lastInsertModeChanges; + repeatInsertModeChanges(cm, changeObject.changes, repeat, changeObject.overwrite); + } + } + vim.inputState = vim.lastEditInputState; + if (isAction && vim.lastEditActionCommand.interlaceInsertRepeat) { + for (var i = 0; i < repeat; i++) { + repeatCommand(); + repeatInsert(1); + } + } else { + if (!repeatForInsert) { + repeatCommand(); + } + repeatInsert(repeat); + } + vim.inputState = cachedInputState; + if (vim.insertMode && !repeatForInsert) { + exitInsertMode(cm); + } + macroModeState.isPlaying = false; + } + + function repeatInsertModeChanges(cm, changes, repeat, overwrite) { + function keyHandler(binding) { + if (typeof binding == 'string') { + CodeMirror.commands[binding](cm); + } else { + binding(cm); + } + return true; + } + var head = cm.getCursor('head'); + var inVisualBlock = vimGlobalState.macroModeState.lastInsertModeChanges.inVisualBlock; + if (inVisualBlock) { + var vim = cm.state.vim; + var lastSel = vim.lastSelection; + var offset = getOffset(lastSel.anchor, lastSel.head); + selectForInsert(cm, head, offset.line + 1); + repeat = cm.listSelections().length; + cm.setCursor(head); + } + for (var i = 0; i < repeat; i++) { + if (inVisualBlock) { + cm.setCursor(offsetCursor(head, i, 0)); + } + for (var j = 0; j < changes.length; j++) { + var change = changes[j]; + if (change instanceof InsertModeKey) { + CodeMirror.lookupKey(change.keyName, 'vim-insert', keyHandler); + } else { + var cur = cm.getCursor(); + var end = cur; + if (overwrite && !/\n/.test(change)) { + end = offsetCursor(cur, 0, change.length); + } + cm.replaceRange(change, cur, end); + } + } + } + if (inVisualBlock) { + cm.setCursor(offsetCursor(head, 0, 1)); + } + } + + resetVimGlobalState(); + CodeMirror.Vim = Vim(); + + Vim = CodeMirror.Vim; + + var specialKey = {'return':'CR',backspace:'BS','delete':'Del',esc:'Esc', + left:'Left',right:'Right',up:'Up',down:'Down',space: 'Space', + home:'Home',end:'End',pageup:'PageUp',pagedown:'PageDown', enter: 'CR' + }; + function lookupKey(hashId, key, e) { + if (key.length > 1 && key[0] == "n") { + key = key.replace("numpad", ""); + } + key = specialKey[key] || key; + var name = ''; + if (e.ctrlKey) { name += 'C-'; } + if (e.altKey) { name += 'A-'; } + if (e.shiftKey) { name += 'S-'; } + + name += key; + if (name.length > 1) { name = '<' + name + '>'; } + return name; + } + var handleKey = Vim.handleKey.bind(Vim); + Vim.handleKey = function(cm, key, origin) { + return cm.operation(function() { + return handleKey(cm, key, origin); + }, true); + } + function cloneVimState(state) { + var n = new state.constructor(); + Object.keys(state).forEach(function(key) { + var o = state[key]; + if (Array.isArray(o)) + o = o.slice(); + else if (o && typeof o == "object" && o.constructor != Object) + o = cloneVimState(o); + n[key] = o; + }); + if (state.sel) { + n.sel = { + head: state.sel.head && copyCursor(state.sel.head), + anchor: state.sel.anchor && copyCursor(state.sel.anchor) + }; + } + return n; + } + function multiSelectHandleKey(cm, key, origin) { + var isHandled = false; + var vim = Vim.maybeInitVimState_(cm); + var visualBlock = vim.visualBlock || vim.wasInVisualBlock; + if (vim.wasInVisualBlock && !cm.ace.inMultiSelectMode) { + vim.wasInVisualBlock = false; + } else if (cm.ace.inMultiSelectMode && vim.visualBlock) { + vim.wasInVisualBlock = true; + } + + if (key == '' && !vim.insertMode && !vim.visualMode && cm.ace.inMultiSelectMode) { + cm.ace.exitMultiSelectMode(); + } else if (visualBlock || !cm.ace.inMultiSelectMode || cm.ace.inVirtualSelectionMode) { + isHandled = Vim.handleKey(cm, key, origin); + } else { + var old = cloneVimState(vim); + cm.operation(function() { + cm.ace.forEachSelection(function() { + var sel = cm.ace.selection; + cm.state.vim.lastHPos = sel.$desiredColumn == null ? sel.lead.column : sel.$desiredColumn; + var head = cm.getCursor("head"); + var anchor = cm.getCursor("anchor"); + var headOffset = !cursorIsBefore(head, anchor) ? -1 : 0; + var anchorOffset = cursorIsBefore(head, anchor) ? -1 : 0; + head = offsetCursor(head, 0, headOffset); + anchor = offsetCursor(anchor, 0, anchorOffset); + cm.state.vim.sel.head = head; + cm.state.vim.sel.anchor = anchor; + + isHandled = handleKey(cm, key, origin); + sel.$desiredColumn = cm.state.vim.lastHPos == -1 ? null : cm.state.vim.lastHPos; + if (cm.virtualSelectionMode()) { + cm.state.vim = cloneVimState(old); + } + }); + if (cm.curOp.cursorActivity && !isHandled) + cm.curOp.cursorActivity = false; + }, true); + } + return isHandled; + } + exports.CodeMirror = CodeMirror; + var getVim = Vim.maybeInitVimState_; + exports.handler = { + $id: "ace/keyboard/vim", + drawCursor: function(style, pixelPos, config, sel, session) { + var vim = this.state.vim || {}; + var w = config.characterWidth; + var h = config.lineHeight; + var top = pixelPos.top; + var left = pixelPos.left; + if (!vim.insertMode) { + var isbackwards = !sel.cursor + ? session.selection.isBackwards() || session.selection.isEmpty() + : Range.comparePoints(sel.cursor, sel.start) <= 0; + if (!isbackwards && left > w) + left -= w; + } + if (!vim.insertMode && vim.status) { + h = h / 2; + top += h; + } + style.left = left + "px"; + style.top = top + "px"; + style.width = w + "px"; + style.height = h + "px"; + }, + handleKeyboard: function(data, hashId, key, keyCode, e) { + var editor = data.editor; + var cm = editor.state.cm; + var vim = getVim(cm); + if (keyCode == -1) return; + + if (key == "c" && hashId == 1) { // key == "ctrl-c" + if (!useragent.isMac && editor.getCopyText()) { + editor.once("copy", function() { + editor.selection.clearSelection(); + }); + return {command: "null", passEvent: true}; + } + } else if (!vim.insertMode) { + if (useragent.isMac && this.handleMacRepeat(data, hashId, key)) { + hashId = -1; + key = data.inputChar; + } + } + + if (hashId == -1 || hashId & 1 || hashId === 0 && key.length > 1) { + var insertMode = vim.insertMode; + var name = lookupKey(hashId, key, e || {}); + if (vim.status == null) + vim.status = ""; + var isHandled = multiSelectHandleKey(cm, name, 'user'); + vim = getVim(cm); // may be changed by multiSelectHandleKey + if (isHandled && vim.status != null) + vim.status += name; + else if (vim.status == null) + vim.status = ""; + cm._signal("changeStatus"); + if (!isHandled && (hashId != -1 || insertMode)) + return; + return {command: "null", passEvent: !isHandled}; + } + }, + attach: function(editor) { + if (!editor.state) editor.state = {}; + var cm = new CodeMirror(editor); + editor.state.cm = cm; + editor.$vimModeHandler = this; + CodeMirror.keyMap.vim.attach(cm); + getVim(cm).status = null; + cm.on('vim-command-done', function() { + if (cm.virtualSelectionMode()) return; + getVim(cm).status = null; + cm.ace._signal("changeStatus"); + cm.ace.session.markUndoGroup(); + }); + cm.on("changeStatus", function() { + cm.ace.renderer.updateCursor(); + cm.ace._signal("changeStatus"); + }); + cm.on("vim-mode-change", function() { + if (cm.virtualSelectionMode()) return; + cm.ace.renderer.setStyle("normal-mode", !getVim(cm).insertMode); + cm._signal("changeStatus"); + }); + cm.ace.renderer.setStyle("normal-mode", !getVim(cm).insertMode); + editor.renderer.$cursorLayer.drawCursor = this.drawCursor.bind(cm); + this.updateMacCompositionHandlers(editor, true); + }, + detach: function(editor) { + var cm = editor.state.cm; + CodeMirror.keyMap.vim.detach(cm); + cm.destroy(); + editor.state.cm = null; + editor.$vimModeHandler = null; + editor.renderer.$cursorLayer.drawCursor = null; + editor.renderer.setStyle("normal-mode", false); + this.updateMacCompositionHandlers(editor, false); + }, + getStatusText: function(editor) { + var cm = editor.state.cm; + var vim = getVim(cm); + if (vim.insertMode) + return "INSERT"; + var status = ""; + if (vim.visualMode) { + status += "VISUAL"; + if (vim.visualLine) + status += " LINE"; + if (vim.visualBlock) + status += " BLOCK"; + } + if (vim.status) + status += (status ? " " : "") + vim.status; + return status; + }, + handleMacRepeat: function(data, hashId, key) { + if (hashId == -1) { + data.inputChar = key; + data.lastEvent = "input"; + } else if (data.inputChar && data.$lastHash == hashId && data.$lastKey == key) { + if (data.lastEvent == "input") { + data.lastEvent = "input1"; + } else if (data.lastEvent == "input1") { + return true; + } + } else { + data.$lastHash = hashId; + data.$lastKey = key; + data.lastEvent = "keypress"; + } + }, + updateMacCompositionHandlers: function(editor, enable) { + var onCompositionUpdateOverride = function(text) { + var cm = editor.state.cm; + var vim = getVim(cm); + if (!vim.insertMode) { + var el = this.textInput.getElement(); + el.blur(); + el.focus(); + el.value = text; + } else { + this.onCompositionUpdateOrig(text); + } + }; + var onCompositionStartOverride = function(text) { + var cm = editor.state.cm; + var vim = getVim(cm); + if (!vim.insertMode) { + this.onCompositionStartOrig(text); + } + }; + if (enable) { + if (!editor.onCompositionUpdateOrig) { + editor.onCompositionUpdateOrig = editor.onCompositionUpdate; + editor.onCompositionUpdate = onCompositionUpdateOverride; + editor.onCompositionStartOrig = editor.onCompositionStart; + editor.onCompositionStart = onCompositionStartOverride; + } + } else { + if (editor.onCompositionUpdateOrig) { + editor.onCompositionUpdate = editor.onCompositionUpdateOrig; + editor.onCompositionUpdateOrig = null; + editor.onCompositionStart = editor.onCompositionStartOrig; + editor.onCompositionStartOrig = null; + } + } + } + }; + var renderVirtualNumbers = { + getText: function(session, row) { + return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9? "\xb7" : "" ))) + ""; + }, + getWidth: function(session, lastLineNumber, config) { + return session.getLength().toString().length * config.characterWidth; + }, + update: function(e, editor) { + editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER); + }, + attach: function(editor) { + editor.renderer.$gutterLayer.$renderer = this; + editor.on("changeSelection", this.update); + }, + detach: function(editor) { + editor.renderer.$gutterLayer.$renderer = null; + editor.off("changeSelection", this.update); + } + }; + Vim.defineOption({ + name: "wrap", + set: function(value, cm) { + if (cm) {cm.ace.setOption("wrap", value)} + }, + type: "boolean" + }, false); + Vim.defineEx('write', 'w', function() { + console.log(':write is not implemented') + }); + defaultKeymap.push( + { keys: 'zc', type: 'action', action: 'fold', actionArgs: { open: false } }, + { keys: 'zC', type: 'action', action: 'fold', actionArgs: { open: false, all: true } }, + { keys: 'zo', type: 'action', action: 'fold', actionArgs: { open: true } }, + { keys: 'zO', type: 'action', action: 'fold', actionArgs: { open: true, all: true } }, + { keys: 'za', type: 'action', action: 'fold', actionArgs: { toggle: true } }, + { keys: 'zA', type: 'action', action: 'fold', actionArgs: { toggle: true, all: true } }, + { keys: 'zf', type: 'action', action: 'fold', actionArgs: { open: true, all: true } }, + { keys: 'zd', type: 'action', action: 'fold', actionArgs: { open: true, all: true } }, + + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "addCursorAbove" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "addCursorBelow" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "addCursorAboveSkipCurrent" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "addCursorBelowSkipCurrent" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "selectMoreBefore" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "selectMoreAfter" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "selectNextBefore" } }, + { keys: '', type: 'action', action: 'aceCommand', actionArgs: { name: "selectNextAfter" } } + ); + actions.aceCommand = function(cm, actionArgs, vim) { + cm.vimCmd = actionArgs; + if (cm.ace.inVirtualSelectionMode) + cm.ace.on("beforeEndOperation", delayedExecAceCommand); + else + delayedExecAceCommand(null, cm.ace); + }; + function delayedExecAceCommand(op, ace) { + ace.off("beforeEndOperation", delayedExecAceCommand); + var cmd = ace.state.cm.vimCmd; + if (cmd) { + ace.execCommand(cmd.exec ? cmd : cmd.name, cmd.args); + } + ace.curOp = ace.prevOp; + } + actions.fold = function(cm, actionArgs, vim) { + cm.ace.execCommand(['toggleFoldWidget', 'toggleFoldWidget', 'foldOther', 'unfoldall' + ][(actionArgs.all ? 2 : 0) + (actionArgs.open ? 1 : 0)]); + }; + + exports.handler.defaultKeymap = defaultKeymap; + exports.handler.actions = actions; + exports.Vim = Vim; + + Vim.map("Y", "yy", "normal"); +}); diff --git a/htdocs/includes/ace/mode-abap.js b/htdocs/includes/ace/mode-abap.js new file mode 100644 index 00000000000..343481fe8f7 --- /dev/null +++ b/htdocs/includes/ace/mode-abap.js @@ -0,0 +1,214 @@ +ace.define("ace/mode/abap_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AbapHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": + "ADD ALIAS ALIASES ASCENDING ASSERT ASSIGN ASSIGNING AT BACK" + + " CALL CASE CATCH CHECK CLASS CLEAR CLOSE CNT COLLECT COMMIT COMMUNICATION COMPUTE CONCATENATE CONDENSE CONSTANTS CONTINUE CONTROLS CONVERT CREATE CURRENCY" + + " DATA DEFINE DEFINITION DEFERRED DELETE DESCENDING DESCRIBE DETAIL DIVIDE DO" + + " ELSE ELSEIF ENDAT ENDCASE ENDCLASS ENDDO ENDEXEC ENDFORM ENDFUNCTION ENDIF ENDIFEND ENDINTERFACE ENDLOOP ENDMETHOD ENDMODULE ENDON ENDPROVIDE ENDSELECT ENDTRY ENDWHILE EVENT EVENTS EXEC EXIT EXPORT EXPORTING EXTRACT" + + " FETCH FIELDS FORM FORMAT FREE FROM FUNCTION" + + " GENERATE GET" + + " HIDE" + + " IF IMPORT IMPORTING INDEX INFOTYPES INITIALIZATION INTERFACE INTERFACES INPUT INSERT IMPLEMENTATION" + + " LEAVE LIKE LINE LOAD LOCAL LOOP" + + " MESSAGE METHOD METHODS MODIFY MODULE MOVE MULTIPLY" + + " ON OVERLAY OPTIONAL OTHERS" + + " PACK PARAMETERS PERFORM POSITION PROGRAM PROVIDE PUT" + + " RAISE RANGES READ RECEIVE RECEIVING REDEFINITION REFERENCE REFRESH REJECT REPLACE REPORT RESERVE RESTORE RETURN RETURNING ROLLBACK" + + " SCAN SCROLL SEARCH SELECT SET SHIFT SKIP SORT SORTED SPLIT STANDARD STATICS STEP STOP SUBMIT SUBTRACT SUM SUMMARY SUPPRESS" + + " TABLES TIMES TRANSFER TRANSLATE TRY TYPE TYPES" + + " UNASSIGN ULINE UNPACK UPDATE" + + " WHEN WHILE WINDOW WRITE" + + " OCCURS STRUCTURE OBJECT PROPERTY" + + " CASTING APPEND RAISING VALUE COLOR" + + " CHANGING EXCEPTION EXCEPTIONS DEFAULT CHECKBOX COMMENT" + + " ID NUMBER FOR TITLE OUTPUT" + + " WITH EXIT USING" + + " INTO WHERE GROUP BY HAVING ORDER BY SINGLE" + + " APPENDING CORRESPONDING FIELDS OF TABLE" + + " LEFT RIGHT OUTER INNER JOIN AS CLIENT SPECIFIED BYPASSING BUFFER UP TO ROWS CONNECTING" + + " EQ NE LT LE GT GE NOT AND OR XOR IN LIKE BETWEEN", + "constant.language": + "TRUE FALSE NULL SPACE", + "support.type": + "c n i p f d t x string xstring decfloat16 decfloat34", + "keyword.operator": + "abs sign ceil floor trunc frac acos asin atan cos sin tan" + + " abapOperator cosh sinh tanh exp log log10 sqrt" + + " strlen xstrlen charlen numofchar dbmaxlen lines" + }, "text", true, " "); + + var compoundKeywords = "WITH\\W+(?:HEADER\\W+LINE|FRAME|KEY)|NO\\W+STANDARD\\W+PAGE\\W+HEADING|"+ + "EXIT\\W+FROM\\W+STEP\\W+LOOP|BEGIN\\W+OF\\W+(?:BLOCK|LINE)|BEGIN\\W+OF|"+ + "END\\W+OF\\W+(?:BLOCK|LINE)|END\\W+OF|NO\\W+INTERVALS|"+ + "RESPECTING\\W+BLANKS|SEPARATED\\W+BY|USING\\W+(?:EDIT\\W+MASK)|"+ + "WHERE\\W+(?:LINE)|RADIOBUTTON\\W+GROUP|REF\\W+TO|"+ + "(?:PUBLIC|PRIVATE|PROTECTED)(?:\\W+SECTION)?|DELETING\\W+(?:TRAILING|LEADING)"+ + "(?:ALL\\W+OCCURRENCES)|(?:FIRST|LAST)\\W+OCCURRENCE|INHERITING\\W+FROM|"+ + "LINE-COUNT|ADD-CORRESPONDING|AUTHORITY-CHECK|BREAK-POINT|CLASS-DATA|CLASS-METHODS|"+ + "CLASS-METHOD|DIVIDE-CORRESPONDING|EDITOR-CALL|END-OF-DEFINITION|END-OF-PAGE|END-OF-SELECTION|"+ + "FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|"+ + "NEW-PAGE|NEW-SECTION|PRINT-CONTROL|RP-PROVIDE-FROM-LAST|SELECT-OPTIONS|SELECTION-SCREEN|"+ + "START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYNTAX-TRACE|TOP-OF-PAGE|TYPE-POOL|"+ + "TYPE-POOLS|LINE-SIZE|LINE-COUNT|MESSAGE-ID|DISPLAY-MODE|READ(?:-ONLY)?|"+ + "IS\\W+(?:NOT\\W+)?(?:ASSIGNED|BOUND|INITIAL|SUPPLIED)"; + + this.$rules = { + "start" : [ + {token : "string", regex : "`", next : "string"}, + {token : "string", regex : "'", next : "qstring"}, + {token : "doc.comment", regex : /^\*.+/}, + {token : "comment", regex : /".+$/}, + {token : "invalid", regex: "\\.{2,}"}, + {token : "keyword.operator", regex: /\W[\-+%=<>*]\W|\*\*|[~:,\.&$]|->*?|=>/}, + {token : "paren.lparen", regex : "[\\[({]"}, + {token : "paren.rparen", regex : "[\\])}]"}, + {token : "constant.numeric", regex: "[+-]?\\d+\\b"}, + {token : "variable.parameter", regex : /sy|pa?\d\d\d\d\|t\d\d\d\.|innnn/}, + {token : "keyword", regex : compoundKeywords}, + {token : "variable.parameter", regex : /\w+-\w+(?:-\w+)*/}, + {token : keywordMapper, regex : "\\b\\w+\\b"}, + {caseInsensitive: true} + ], + "qstring" : [ + {token : "constant.language.escape", regex : "''"}, + {token : "string", regex : "'", next : "start"}, + {defaultToken : "string"} + ], + "string" : [ + {token : "constant.language.escape", regex : "``"}, + {token : "string", regex : "`", next : "start"}, + {defaultToken : "string"} + ] + }; +}; +oop.inherits(AbapHighlightRules, TextHighlightRules); + +exports.AbapHighlightRules = AbapHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/abap",["require","exports","module","ace/mode/abap_highlight_rules","ace/mode/folding/coffee","ace/range","ace/mode/text","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Rules = require("./abap_highlight_rules").AbapHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; +var Range = require("../range").Range; +var TextMode = require("./text").Mode; +var oop = require("../lib/oop"); + +function Mode() { + this.HighlightRules = Rules; + this.foldingRules = new FoldMode(); +} + +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = '"' + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + return indent; + }; + + this.$id = "ace/mode/abap"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-abc.js b/htdocs/includes/ace/mode-abc.js new file mode 100644 index 00000000000..c03859dbaab --- /dev/null +++ b/htdocs/includes/ace/mode-abc.js @@ -0,0 +1,261 @@ +ace.define("ace/mode/abc_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function (require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var ABCHighlightRules = function () { + + this.$rules = { + start: [ + { + token: ['zupfnoter.information.comment.line.percentage', 'information.keyword', 'in formation.keyword.embedded'], + regex: '(%%%%)(hn\\.[a-z]*)(.*)', + comment: 'Instruction Comment' + }, + { + token: ['information.comment.line.percentage', 'information.keyword.embedded'], + regex: '(%%)(.*)', + comment: 'Instruction Comment' + }, + + { + token: 'comment.line.percentage', + regex: '%.*', + comment: 'Comments' + }, + + { + token: 'barline.keyword.operator', + regex: '[\\[:]*[|:][|\\]:]*(?:\\[?[0-9]+)?|\\[[0-9]+', + comment: 'Bar lines' + }, + { + token: ['information.keyword.embedded', 'information.argument.string.unquoted'], + regex: '(\\[[A-Za-z]:)([^\\]]*\\])', + comment: 'embedded Header lines' + }, + { + token: ['information.keyword', 'information.argument.string.unquoted'], + regex: '^([A-Za-z]:)([^%\\\\]*)', + comment: 'Header lines' + }, + { + token: ['text', 'entity.name.function', 'string.unquoted', 'text'], + regex: '(\\[)([A-Z]:)(.*?)(\\])', + comment: 'Inline fields' + }, + { + token: ['accent.constant.language', 'pitch.constant.numeric', 'duration.constant.numeric'], + regex: '([\\^=_]*)([A-Ga-gz][,\']*)([0-9]*/*[><0-9]*)', + comment: 'Notes' + }, + { + token: 'zupfnoter.jumptarget.string.quoted', + regex: '[\\"!]\\^\\:.*?[\\"!]', + comment: 'Zupfnoter jumptarget' + }, { + token: 'zupfnoter.goto.string.quoted', + regex: '[\\"!]\\^\\@.*?[\\"!]', + comment: 'Zupfnoter goto' + }, + { + token: 'zupfnoter.annotation.string.quoted', + regex: '[\\"!]\\^\\!.*?[\\"!]', + comment: 'Zupfnoter annoation' + }, + { + token: 'zupfnoter.annotationref.string.quoted', + regex: '[\\"!]\\^\\#.*?[\\"!]', + comment: 'Zupfnoter annotation reference' + }, + { + token: 'chordname.string.quoted', + regex: '[\\"!]\\^.*?[\\"!]', + comment: 'abc chord' + }, + { + token: 'string.quoted', + regex: '[\\"!].*?[\\"!]', + comment: 'abc annotation' + } + + ] + }; + + this.normalizeRules(); + }; + + ABCHighlightRules.metaData = { + fileTypes: ['abc'], + name: 'ABC', + scopeName: 'text.abcnotation' + }; + + + oop.inherits(ABCHighlightRules, TextHighlightRules); + + exports.ABCHighlightRules = ABCHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/abc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/abc_highlight_rules","ace/mode/folding/cstyle"], function (require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextMode = require("./text").Mode; + var ABCHighlightRules = require("./abc_highlight_rules").ABCHighlightRules; + var FoldMode = require("./folding/cstyle").FoldMode; + + var Mode = function () { + this.HighlightRules = ABCHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; + }; + oop.inherits(Mode, TextMode); + + (function () { + this.$id = "ace/mode/abc" + }).call(Mode.prototype); + + exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-actionscript.js b/htdocs/includes/ace/mode-actionscript.js new file mode 100644 index 00000000000..c1af16370ae --- /dev/null +++ b/htdocs/includes/ace/mode-actionscript.js @@ -0,0 +1,267 @@ +ace.define("ace/mode/actionscript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ActionScriptHighlightRules = function() { + + this.$rules = { start: + [ { token: 'support.class.actionscript.2', + regex: '\\b(?:R(?:ecordset|DBMSResolver|adioButton(?:Group)?)|X(?:ML(?:Socket|Node|Connector)?|UpdateResolverDataHolder)|M(?:M(?:Save|Execute)|icrophoneMicrophone|o(?:use|vieClip(?:Loader)?)|e(?:nu(?:Bar)?|dia(?:Controller|Display|Playback))|ath)|B(?:yName|inding|utton)|S(?:haredObject|ystem|crollPane|t(?:yleSheet|age|ream)|ound|e(?:ndEvent|rviceObject)|OAPCall|lide)|N(?:umericStepper|et(?:stream|S(?:tream|ervices)|Connection|Debug(?:Config)?))|C(?:heckBox|o(?:ntextMenu(?:Item)?|okie|lor|m(?:ponentMixins|boBox))|ustomActions|lient|amera)|T(?:ypedValue|ext(?:Snapshot|Input|F(?:ield|ormat)|Area)|ree|AB)|Object|D(?:ownload|elta(?:Item|Packet)?|at(?:e(?:Chooser|Field)?|a(?:G(?:lue|rid)|Set|Type)))|U(?:RL|TC|IScrollBar)|P(?:opUpManager|endingCall|r(?:intJob|o(?:duct|gressBar)))|E(?:ndPoint|rror)|Video|Key|F(?:RadioButton|GridColumn|MessageBox|BarChart|S(?:croll(?:Bar|Pane)|tyleFormat|plitView)|orm|C(?:heckbox|omboBox|alendar)|unction|T(?:icker|ooltip(?:Lite)?|ree(?:Node)?)|IconButton|D(?:ataGrid|raggablePane)|P(?:ieChart|ushButton|ro(?:gressBar|mptBox))|L(?:i(?:stBox|neChart)|oadingBox)|AdvancedMessageBox)|W(?:indow|SDLURL|ebService(?:Connector)?)|L(?:ist|o(?:calConnection|ad(?:er|Vars)|g)|a(?:unch|bel))|A(?:sBroadcaster|cc(?:ordion|essibility)|S(?:Set(?:Native|PropFlags)|N(?:ew|ative)|C(?:onstructor|lamp(?:2)?)|InstanceOf)|pplication|lert|rray))\\b' }, + { token: 'support.function.actionscript.2', + regex: '\\b(?:s(?:h(?:ift|ow(?:GridLines|Menu|Border|Settings|Headers|ColumnHeaders|Today|Preferences)?|ad(?:ow|ePane))|c(?:hema|ale(?:X|Mode|Y|Content)|r(?:oll(?:Track|Drag)?|een(?:Resolution|Color|DPI)))|t(?:yleSheet|op(?:Drag|A(?:nimation|llSounds|gent))?|epSize|a(?:tus|rt(?:Drag|A(?:nimation|gent))?))|i(?:n|ze|lence(?:TimeOut|Level))|o(?:ngname|urce|rt(?:Items(?:By)?|On(?:HeaderRelease)?|able(?:Columns)?)?)|u(?:ppressInvalidCalls|bstr(?:ing)?)|p(?:li(?:ce|t)|aceCol(?:umnsEqually|lumnsEqually))|e(?:nd(?:DefaultPushButtonEvent|AndLoad)?|curity|t(?:R(?:GB|o(?:otNode|w(?:Height|Count))|esizable(?:Columns)?|a(?:nge|te))|G(?:ain|roupName)|X(?:AxisTitle)?|M(?:i(?:n(?:imum|utes)|lliseconds)|o(?:nth(?:Names)?|tionLevel|de)|ultilineMode|e(?:ssage|nu(?:ItemEnabled(?:At)?|EnabledAt)|dia)|a(?:sk|ximum))|B(?:u(?:tton(?:s|Width)|fferTime)|a(?:seTabIndex|ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Target|P(?:osition|roperties)|barState|Location)|t(?:yle(?:Property)?|opOnFocus|at(?:us|e))|i(?:ze|lenceLevel)|ort(?:able(?:Columns)?|Function)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)?|Style|Color|ed(?:Node(?:s)?|Cell|I(?:nd(?:ices|ex)|tem(?:s)?))?|able))|kin|m(?:oothness|allScroll))|H(?:ighlight(?:s|Color)|Scroll|o(?:urs|rizontal)|eader(?:Symbol|Height|Text|Property|Format|Width|Location)?|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:ode(?:Properties|ExpansionHandler)|ewTextFormat)|C(?:h(?:ildNodes|a(?:ngeHandler|rt(?:Title|EventHandler)))|o(?:ntent(?:Size)?|okie|lumns)|ell(?:Symbol|Data)|l(?:i(?:ckHandler|pboard)|oseHandler)|redentials)|T(?:ype(?:dVaule)?|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:out(?:Handler)?)?)|oggle|extFormat|ransform)|I(?:s(?:Branch|Open)|n(?:terval|putProperty)|con(?:SymbolName)?|te(?:rator|m(?:ByKey|Symbol)))|Orientation|D(?:i(?:splay(?:Range|Graphics|Mode|Clip|Text|edMonth)|rection)|uration|e(?:pth(?:Below|To|Above)|fault(?:GatewayURL|Mappings|NodeIconSymbolName)|l(?:iveryMode|ay)|bug(?:ID)?)|a(?:yOfWeekNames|t(?:e(?:Filter)?|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Provider|All(?:Height|Property|Format|Width))?))|ra(?:wConnectors|gContent))|U(?:se(?:Shadow|HandCursor|EchoSuppression|rInput|Fade)|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear))|P(?:osition|ercentComplete|an(?:e(?:M(?:inimumSize|aximumSize)|Size|Title))?|ro(?:pert(?:y(?:Data)?|iesAt)|gress))|E(?:nabled|dit(?:Handler|able)|xpand(?:NodeTrigger|erSymbolName))|V(?:Scroll|olume|alue(?:Source)?)|KeyFrameInterval|Quality|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|ocus|ullYear|ps|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:opback|adTarget)|a(?:rgeScroll|bel(?:Source|Placement)?))|A(?:s(?:Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:e(?:State(?:Handler)?|Handler)|ateHandler)|utoH(?:ideScrollBar|eight)))?|paratorBefore|ek|lect(?:ion(?:Disabled|Unfocused)?|ed(?:Node(?:s)?|Child|I(?:nd(?:ices|ex)|tem(?:s)?)|Dat(?:e|a))?|able(?:Ranges)?)|rver(?:String)?)|kip|qrt|wapDepths|lice|aveToSharedObj|moothing)|h(?:scroll(?:Policy)?|tml(?:Text)?|i(?:t(?:Test(?:TextNearPos)?|Area)|de(?:BuiltInItems|Child)?|ghlight(?:2D|3D)?)|orizontal|e(?:ight|ader(?:Re(?:nderer|lease)|Height|Text))|P(?:osition|ageScrollSize)|a(?:s(?:childNodes|MP3|S(?:creen(?:Broadcast|Playback)|treaming(?:Video|Audio)|ort)|Next|OwnProperty|Pr(?:inting|evious)|EmbeddedVideo|VideoEncoder|A(?:ccesibility|udio(?:Encoder)?))|ndlerName)|LineScrollSize)|ye(?:sLabel|ar)|n(?:o(?:t|de(?:Name|Close|Type|Open|Value)|Label)|u(?:llValue|mChild(?:S(?:creens|lides)|ren|Forms))|e(?:w(?:Item|line|Value|LocationDialog)|xt(?:S(?:cene|ibling|lide)|TabIndex|Value|Frame)?)?|ame(?:s)?)|c(?:h(?:ildNodes|eck|a(?:nge(?:sPending)?|r(?:CodeAt|At))|r)|o(?:s|n(?:st(?:ant|ructor)|nect|c(?:urrency|at)|t(?:ent(?:Type|Path)?|ains|rol(?:Placement|lerPolicy))|denseWhite|version)|py|l(?:or|umn(?:Stretch|Name(?:s)?|Count))|m(?:p(?:onent|lete)|ment))|u(?:stomItems|ePoint(?:s)?|r(?:veTo|Value|rent(?:Slide|ChildSlide|Item|F(?:ocused(?:S(?:creen|lide)|Form)|ps))))|e(?:il|ll(?:Renderer|Press|Edit|Focus(?:In|Out)))|l(?:i(?:ck|ents)|o(?:se(?:Button|Pane)?|ne(?:Node)?)|ear(?:S(?:haredObjects|treams)|Timeout|Interval)?)|a(?:ncelLabel|tch|p(?:tion|abilities)|l(?:cFields|l(?:e(?:e|r))?))|reate(?:GatewayConnection|Menu|Se(?:rver|gment)|C(?:hild(?:AtDepth)?|l(?:ient|ass(?:ChildAtDepth|Object(?:AtDepth)?))|all)|Text(?:Node|Field)|Item|Object(?:AtDepth)?|PopUp|E(?:lement|mptyMovieClip)))|t(?:h(?:is|row)|ype(?:of|Name)?|i(?:tle(?:StyleDeclaration)?|me(?:out)?)|o(?:talTime|String|olTipText|p|UpperCase|ggle(?:HighQuality)?|Lo(?:caleString|werCase))|e(?:st|llTarget|xt(?:RightMargin|Bold|S(?:ize|elected)|Height|Color|I(?:ndent|talic)|Disabled|Underline|F(?:ield|ont)|Width|LeftMargin|Align)?)|a(?:n|rget(?:Path)?|b(?:Stops|Children|Index|Enabled|leName))|r(?:y|igger|ac(?:e|k(?:AsMenu)?)))|i(?:s(?:Running|Branch|NaN|Con(?:soleOpen|nected)|Toggled|Installed|Open|D(?:own|ebugger)|P(?:urchased|ro(?:totypeOf|pertyEnumerable))|Empty|F(?:inite|ullyPopulated)|Local|Active)|n(?:s(?:tall|ertBefore)|cludeDeltaPacketInfo|t|it(?:ialize|Component|Pod|A(?:pplication|gent))?|de(?:nt|terminate|x(?:InParent(?:Slide|Form)?|Of)?)|put|validate|finity|LocalInternetCache)?|con(?:F(?:ield|unction))?|t(?:e(?:ratorScrolled|m(?:s|RollO(?:ut|ver)|ClassName))|alic)|d3|p|fFrameLoaded|gnore(?:Case|White))|o(?:s|n(?:R(?:ollO(?:ut|ver)|e(?:s(?:ize|ult)|l(?:ease(?:Outside)?|aseOutside)))|XML|Mouse(?:Move|Down|Up|Wheel)|S(?:ync|croller|tatus|oundComplete|e(?:tFocus|lect(?:edItem)?))|N(?:oticeEvent|etworkChange)|C(?:hanged|onnect|l(?:ipEvent|ose))|ID3|D(?:isconnect|eactivate|ata|ragO(?:ut|ver))|Un(?:install|load)|P(?:aymentResult|ress)|EnterFrame|K(?:illFocus|ey(?:Down|Up))|Fault|Lo(?:ad|g)|A(?:ctiv(?:ity|ate)|ppSt(?:op|art)))?|pe(?:n|ration)|verLayChildren|kLabel|ldValue|r(?:d)?)|d(?:i(?:s(?:connect|play(?:Normal|ed(?:Month|Year)|Full)|able(?:Shader|d(?:Ranges|Days)|CloseBox|Events))|rection)|o(?:cTypeDecl|tall|Decoding|main|LazyDecoding)|u(?:plicateMovieClip|ration)|e(?:stroy(?:ChildAt|Object)|code|fault(?:PushButton(?:Enabled)?|KeydownHandler)?|l(?:ta(?:Packet(?:Changed)?)?|ete(?:PopUp|All)?)|blocking)|a(?:shBoardSave|yNames|ta(?:Provider)?|rkshadow)|r(?:opdown(?:Width)?|a(?:w|gO(?:ut|ver))))|u(?:se(?:Sort|HandCursor|Codepage|EchoSuppression)|n(?:shift|install|derline|escape|format|watch|lo(?:ck|ad(?:Movie(?:Num)?)?))|pdate(?:Results|Mode|I(?:nputProperties|tem(?:ByIndex)?)|P(?:acket|roperties)|View|AfterEvent)|rl)|join|p(?:ixelAspectRatio|o(?:sition|p|w)|u(?:sh|rge|blish)|ercen(?:tComplete|Loaded)|lay(?:head(?:Change|Time)|ing|Hidden|erType)?|a(?:ssword|use|r(?:se(?:XML|CSS|Int|Float)|ent(?:Node|Is(?:S(?:creen|lide)|Form))|ams))|r(?:int(?:Num|AsBitmap(?:Num)?)?|o(?:to(?:type)?|pert(?:y|ies)|gress)|e(?:ss|v(?:ious(?:S(?:ibling|lide)|Value)?|Scene|Frame)|ferred(?:Height|Width))))|e(?:scape|n(?:code(?:r)?|ter(?:Frame)?|dFill|able(?:Shader|d|CloseBox|Events))|dit(?:able|Field|LocationDialog)|v(?:ent|al(?:uate)?)|q|x(?:tended|p|ec(?:ute)?|actSettings)|m(?:phasized(?:StyleDeclaration)?|bedFonts))|v(?:i(?:sible|ewPod)|ScrollPolicy|o(?:id|lume)|ersion|P(?:osition|ageScrollSize)|a(?:l(?:idat(?:ionError|e(?:Property|ActivationKey)?)|ue(?:Of)?)|riable)|LineScrollSize)|k(?:ind|ey(?:Down|Up|Press|FrameInterval))|q(?:sort|uality)|f(?:scommand|i(?:n(?:d(?:Text|First|Last)?|ally)|eldInfo|lter(?:ed|Func)?|rst(?:Slide|Child|DayOfWeek|VisibleNode)?)|o(?:nt|cus(?:In|edCell|Out|Enabled)|r(?:egroundDisabled|mat(?:ter)?))|unctionName|ps|l(?:oor|ush)|ace|romCharCode)|w(?:i(?:th|dth)|ordWrap|atch|riteAccess)|l(?:t|i(?:st(?:Owner)?|ne(?:Style|To))|o(?:c(?:k|a(?:t(?:ion|eByld)|l(?:ToGlobal|FileReadDisable)))|opback|ad(?:Movie(?:Num)?|S(?:crollContent|ound)|ed|Variables(?:Num)?|Application)?|g(?:Changes)?)|e(?:ngth|ft(?:Margin)?|ading)?|a(?:st(?:Slide|Child|Index(?:Of)?)?|nguage|b(?:el(?:Placement|F(?:ield|unction))?|leField)))|a(?:s(?:scociate(?:Controller|Display)|in|pectRatio|function)|nd|c(?:ceptConnection|tiv(?:ityLevel|ePlayControl)|os)|t(?:t(?:ach(?:Movie|Sound|Video|Audio)|ributes)|an(?:2)?)|dd(?:header|RequestHeader|Menu(?:Item(?:At)?|At)?|Sort|Header|No(?:tice|de(?:At)?)|C(?:olumn(?:At)?|uePoint)|T(?:oLocalInternetCache|reeNode(?:At)?)|I(?:con|tem(?:s(?:At)?|At)?)|DeltaItem|P(?:od|age|roperty)|EventListener|View|FieldInfo|Listener|Animation)?|uto(?:Size|Play|KeyNav|Load)|pp(?:endChild|ly(?:Changes|Updates)?)|vHardwareDisable|fterLoaded|l(?:ternateRowColors|ign|l(?:ow(?:InsecureDomain|Domain)|Transitions(?:InDone|OutDone))|bum)|r(?:tist|row|g(?:uments|List))|gent|bs)|r(?:ight(?:Margin)?|o(?:ot(?:S(?:creen|lide)|Form)|und|w(?:Height|Count)|llO(?:ut|ver))|e(?:s(?:yncDepth|t(?:orePane|artAnimation|rict)|iz(?:e|able(?:Columns)?)|olveDelta|ult(?:s)?|ponse)|c(?:o(?:ncile(?:Results|Updates)|rd)|eive(?:Video|Audio))|draw|jectConnection|place(?:Sel|ItemAt|AllItems)?|ve(?:al(?:Child)?|rse)|quest(?:SizeChange|Payment)?|f(?:errer|resh(?:ScrollContent|Destinations|Pane|FromSources)?)|lease(?:Outside)?|ad(?:Only|Access)|gister(?:SkinElement|C(?:olor(?:Style|Name)|lass)|InheritingStyle|Proxy)|move(?:Range|M(?:ovieClip|enu(?:Item(?:At)?|At))|Background|Sort|No(?:tice|de(?:sAt|At)?)|C(?:olum(?:nAt|At)|uePoints)|T(?:extField|reeNode(?:At)?)|Item(?:At)?|Pod|EventListener|FromLocalInternetCache|Listener|All(?:C(?:olumns|uePoints)|Items)?))|a(?:ndom|te|dioDot))|g(?:t|oto(?:Slide|NextSlide|PreviousSlide|FirstSlide|LastSlide|And(?:Stop|Play))|e(?:nre|t(?:R(?:GB|o(?:otNode|wCount)|e(?:sizable|mote))|X(?:AxisTitle)?|M(?:i(?:n(?:imum(?:Size)?|utes)|lliseconds)|onth(?:Names)?|ultilineMode|e(?:ssage|nu(?:ItemAt|EnabledAt|At))|aximum(?:Size)?)|B(?:ytes(?:Total|Loaded)|ounds|utton(?:s|Width)|eginIndex|a(?:ndwidthLimit|ckground))|S(?:howAsDisabled|croll(?:ing|Speed|Content|Position|barState|Location)|t(?:yle(?:Names)?|opOnFocus|ate)|ize|o(?:urce|rtState)|p(?:litterBarPosition|acing)|e(?:conds|lect(?:Multiple|ion(?:Required|Type)|Style|ed(?:Node(?:s)?|Cell|Text|I(?:nd(?:ices|ex)|tem(?:s)?))?)|rvice)|moothness|WFVersion)|H(?:ighlight(?:s|Color)|ours|e(?:ight|ader(?:Height|Text|Property|Format|Width|Location)?)|as(?:Shader|CloseBox))|Y(?:ear|AxisTitle)?|N(?:o(?:tices|de(?:DisplayedAt|At))|um(?:Children|berAvailable)|e(?:wTextFormat|xtHighestDepth))|C(?:h(?:ild(?:S(?:creen|lide)|Nodes|Form|At)|artTitle)|o(?:n(?:tent|figInfo)|okie|de|unt|lumn(?:Names|Count|Index|At))|uePoint|ellIndex|loseHandler|a(?:ll|retIndex))|T(?:ypedValue|i(?:tle(?:barHeight)?|p(?:Target|Offset)?|me(?:stamp|zoneOffset|out(?:State|Handler)|r)?)|oggle|ext(?:Extent|Format)?|r(?:ee(?:NodeAt|Length)|ans(?:form|actionId)))|I(?:s(?:Branch|Open)|n(?:stanceAtDepth|d(?:icesByKey|exByKey))|con(?:SymbolName)?|te(?:rator|m(?:sByKey|By(?:Name|Key)|id|ID|At))|d)|O(?:utput(?:Parameter(?:s|ByName)?|Value(?:s)?)|peration|ri(?:entation|ginalCellData))|D(?:i(?:s(?:play(?:Range|Mode|Clip|Index|edMonth)|kUsage)|rection)|uration|e(?:pth|faultNodeIconSymbolName|l(?:taPacket|ay)|bug(?:Config|ID)?)|a(?:y(?:OfWeekNames)?|t(?:e|a(?:Mapping(?:s)?|Item(?:Text|Property|Format)|Label|All(?:Height|Property|Format|Width))?))|rawConnectors)|U(?:se(?:Shadow|HandCursor|rInput|Fade)|RL|TC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear))|P(?:o(?:sition|ds)|ercentComplete|a(?:n(?:e(?:M(?:inimums|aximums)|Height|Title|Width))?|rentNode)|r(?:operty(?:Name|Data)?|efer(?:ences|red(?:Height|Width))))|E(?:n(?:dIndex|abled)|ditingData|x(?:panderSymbolName|andNodeTrigger))|V(?:iewed(?:Pods|Applications)|olume|ersion|alue(?:Source)?)|F(?:i(?:eld|rst(?:DayOfWeek|VisibleNode))|o(?:ntList|cus)|ullYear|ade(?:InLength|OutLength)|rame(?:Color|Width))|Width|L(?:ine(?:Color|Weight)|o(?:cal|adTarget)|ength|a(?:stTabIndex|bel(?:Source)?))|A(?:s(?:cii|Boolean|String|Number)|n(?:yTypedValue|imation)|ctiv(?:eState(?:Handler)?|ateHandler)|utoH(?:ideScrollBar|eight)|llItems|gent))?)?|lobal(?:StyleFormat|ToLocal)?|ain|roupName)|x(?:updatePackety|mlDecl)?|m(?:y(?:MethodName|Call)|in(?:imum)?|o(?:nthNames|tion(?:TimeOut|Level)|de(?:lChanged)?|use(?:Move|O(?:ut|ver)|Down(?:Somewhere|Outside)?|Up(?:Somewhere)?|WheelEnabled)|ve(?:To)?)|u(?:ted|lti(?:pleS(?:imultaneousAllowed|elections)|line))|e(?:ssage|nu(?:Show|Hide)?|th(?:od)?|diaType)|a(?:nufacturer|tch|x(?:scroll|hscroll|imum|HPosition|Chars|VPosition)?)|b(?:substring|chr|ord|length))|b(?:ytes(?:Total|Loaded)|indFormat(?:Strings|Function)|o(?:ttom(?:Scroll)?|ld|rder(?:Color)?)|u(?:tton(?:Height|Width)|iltInItems|ffer(?:Time|Length)|llet)|e(?:foreApplyUpdates|gin(?:GradientFill|Fill))|lockIndent|a(?:ndwidth|ckground(?:Style|Color|Disabled)?)|roadcastMessage)|onHTTPStatus)\\b' }, + { token: 'support.constant.actionscript.2', + regex: '\\b(?:__proto__|__resolve|_accProps|_alpha|_changed|_currentframe|_droptarget|_flash|_focusrect|_framesloaded|_global|_height|_highquality|_level|_listeners|_lockroot|_name|_parent|_quality|_root|_rotation|_soundbuftime|_target|_totalframes|_url|_visible|_width|_x|_xmouse|_xscale|_y|_ymouse|_yscale)\\b' }, + { token: 'keyword.control.actionscript.2', + regex: '\\b(?:dynamic|extends|import|implements|interface|public|private|new|static|super|var|for|in|break|continue|while|do|return|if|else|case|switch)\\b' }, + { token: 'storage.type.actionscript.2', + regex: '\\b(?:Boolean|Number|String|Void)\\b' }, + { token: 'constant.language.actionscript.2', + regex: '\\b(?:null|undefined|true|false)\\b' }, + { token: 'constant.numeric.actionscript.2', + regex: '\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b' }, + { token: 'punctuation.definition.string.begin.actionscript.2', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.actionscript.2', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.actionscript.2', + regex: '\\\\.' }, + { defaultToken: 'string.quoted.double.actionscript.2' } ] }, + { token: 'punctuation.definition.string.begin.actionscript.2', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.actionscript.2', + regex: '\'', + next: 'pop' }, + { token: 'constant.character.escape.actionscript.2', + regex: '\\\\.' }, + { defaultToken: 'string.quoted.single.actionscript.2' } ] }, + { token: 'support.constant.actionscript.2', + regex: '\\b(?:BACKSPACE|CAPSLOCK|CONTROL|DELETEKEY|DOWN|END|ENTER|HOME|INSERT|LEFT|LN10|LN2|LOG10E|LOG2E|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|PGDN|PGUP|PI|POSITIVE_INFINITY|RIGHT|SPACE|SQRT1_2|SQRT2|UP)\\b' }, + { token: 'punctuation.definition.comment.actionscript.2', + regex: '/\\*', + push: + [ { token: 'punctuation.definition.comment.actionscript.2', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.actionscript.2' } ] }, + { token: 'punctuation.definition.comment.actionscript.2', + regex: '//.*$', + push_: + [ { token: 'comment.line.double-slash.actionscript.2', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.double-slash.actionscript.2' } ] }, + { token: 'keyword.operator.actionscript.2', + regex: '\\binstanceof\\b' }, + { token: 'keyword.operator.symbolic.actionscript.2', + regex: '[-!%&*+=/?:]' }, + { token: + [ 'meta.preprocessor.actionscript.2', + 'punctuation.definition.preprocessor.actionscript.2', + 'meta.preprocessor.actionscript.2' ], + regex: '^([ \\t]*)(#)([a-zA-Z]+)' }, + { token: + [ 'storage.type.function.actionscript.2', + 'meta.function.actionscript.2', + 'entity.name.function.actionscript.2', + 'meta.function.actionscript.2', + 'punctuation.definition.parameters.begin.actionscript.2' ], + regex: '\\b(function)(\\s+)([a-zA-Z_]\\w*)(\\s*)(\\()', + push: + [ { token: 'punctuation.definition.parameters.end.actionscript.2', + regex: '\\)', + next: 'pop' }, + { token: 'variable.parameter.function.actionscript.2', + regex: '[^,)$]+' }, + { defaultToken: 'meta.function.actionscript.2' } ] }, + { token: + [ 'storage.type.class.actionscript.2', + 'meta.class.actionscript.2', + 'entity.name.type.class.actionscript.2', + 'meta.class.actionscript.2', + 'storage.modifier.extends.actionscript.2', + 'meta.class.actionscript.2', + 'entity.other.inherited-class.actionscript.2' ], + regex: '\\b(class)(\\s+)([a-zA-Z_](?:\\w|\\.)*)(?:(\\s+)(extends)(\\s+)([a-zA-Z_](?:\\w|\\.)*))?' } ] } + + this.normalizeRules(); +}; + +ActionScriptHighlightRules.metaData = { fileTypes: [ 'as' ], + keyEquivalent: '^~A', + name: 'ActionScript', + scopeName: 'source.actionscript.2' } + + +oop.inherits(ActionScriptHighlightRules, TextHighlightRules); + +exports.ActionScriptHighlightRules = ActionScriptHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/actionscript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/actionscript_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ActionScriptHighlightRules = require("./actionscript_highlight_rules").ActionScriptHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ActionScriptHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/actionscript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-ada.js b/htdocs/includes/ace/mode-ada.js new file mode 100644 index 00000000000..da059886539 --- /dev/null +++ b/htdocs/includes/ace/mode-ada.js @@ -0,0 +1,87 @@ +ace.define("ace/mode/ada_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AdaHighlightRules = function() { +var keywords = "abort|else|new|return|abs|elsif|not|reverse|abstract|end|null|accept|entry|select|" + +"access|exception|of|separate|aliased|exit|or|some|all|others|subtype|and|for|out|synchronized|" + +"array|function|overriding|at|tagged|generic|package|task|begin|goto|pragma|terminate|" + +"body|private|then|if|procedure|type|case|in|protected|constant|interface|until|" + +"|is|raise|use|declare|range|delay|limited|record|when|delta|loop|rem|while|digits|renames|with|do|mod|requeue|xor"; + + var builtinConstants = ( + "true|false|null" + ); + + var builtinFunctions = ( + "count|min|max|avg|sum|rank|now|coalesce|main" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "--.*$" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "string", // ' string + regex : "'.*?'" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ] + }; +}; + +oop.inherits(AdaHighlightRules, TextHighlightRules); + +exports.AdaHighlightRules = AdaHighlightRules; +}); + +ace.define("ace/mode/ada",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ada_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var AdaHighlightRules = require("./ada_highlight_rules").AdaHighlightRules; + +var Mode = function() { + this.HighlightRules = AdaHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + + this.$id = "ace/mode/ada"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-apache_conf.js b/htdocs/includes/ace/mode-apache_conf.js new file mode 100644 index 00000000000..bb6566a9f83 --- /dev/null +++ b/htdocs/includes/ace/mode-apache_conf.js @@ -0,0 +1,356 @@ +ace.define("ace/mode/apache_conf_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ApacheConfHighlightRules = function() { + + this.$rules = { start: + [ { token: + [ 'punctuation.definition.comment.apacheconf', + 'comment.line.hash.ini', + 'comment.line.hash.ini' ], + regex: '^((?:\\s)*)(#)(.*$)' }, + { token: + [ 'punctuation.definition.tag.apacheconf', + 'entity.tag.apacheconf', + 'text', + 'string.value.apacheconf', + 'punctuation.definition.tag.apacheconf' ], + regex: '(<)(Proxy|ProxyMatch|IfVersion|Directory|DirectoryMatch|Files|FilesMatch|IfDefine|IfModule|Limit|LimitExcept|Location|LocationMatch|VirtualHost)(?:(\\s)(.+?))?(>)' }, + { token: + [ 'punctuation.definition.tag.apacheconf', + 'entity.tag.apacheconf', + 'punctuation.definition.tag.apacheconf' ], + regex: '()' }, + { token: + [ 'keyword.alias.apacheconf', 'text', + 'string.regexp.apacheconf', 'text', + 'string.replacement.apacheconf', 'text' ], + regex: '(Rewrite(?:Rule|Cond))(\\s+)(.+?)(\\s+)(.+?)($|\\s)' }, + { token: + [ 'keyword.alias.apacheconf', 'text', + 'entity.status.apacheconf', 'text', + 'string.regexp.apacheconf', 'text', + 'string.path.apacheconf', 'text' ], + regex: '(RedirectMatch)(?:(\\s+)(\\d\\d\\d|permanent|temp|seeother|gone))?(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?' }, + { token: + [ 'keyword.alias.apacheconf', 'text', + 'entity.status.apacheconf', 'text', + 'string.path.apacheconf', 'text', + 'string.path.apacheconf', 'text' ], + regex: '(Redirect)(?:(\\s+)(\\d\\d\\d|permanent|temp|seeother|gone))?(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?' }, + { token: + [ 'keyword.alias.apacheconf', 'text', + 'string.regexp.apacheconf', 'text', + 'string.path.apacheconf', 'text' ], + regex: '(ScriptAliasMatch|AliasMatch)(\\s+)(.+?)(\\s+)(?:(.+?)(\\s))?' }, + { token: + [ 'keyword.alias.apacheconf', 'text', + 'string.path.apacheconf', 'text', + 'string.path.apacheconf', 'text' ], + regex: '(RedirectPermanent|RedirectTemp|ScriptAlias|Alias)(\\s+)(.+?)(\\s+)(?:(.+?)($|\\s))?' }, + { token: 'keyword.core.apacheconf', + regex: '\\b(?:AcceptPathInfo|AccessFileName|AddDefaultCharset|AddOutputFilterByType|AllowEncodedSlashes|AllowOverride|AuthName|AuthType|CGIMapExtension|ContentDigest|DefaultType|DocumentRoot|EnableMMAP|EnableSendfile|ErrorDocument|ErrorLog|FileETag|ForceType|HostnameLookups|IdentityCheck|Include|KeepAlive|KeepAliveTimeout|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|LogLevel|MaxKeepAliveRequests|NameVirtualHost|Options|Require|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScriptInterpreterSource|ServerAdmin|ServerAlias|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|SetHandler|SetInputFilter|SetOutputFilter|TimeOut|TraceEnable|UseCanonicalName)\\b' }, + { token: 'keyword.mpm.apacheconf', + regex: '\\b(?:AcceptMutex|AssignUserID|BS2000Account|ChildPerUserID|CoreDumpDirectory|EnableExceptionHook|Group|Listen|ListenBacklog|LockFile|MaxClients|MaxMemFree|MaxRequestsPerChild|MaxRequestsPerThread|MaxSpareServers|MaxSpareThreads|MaxThreads|MaxThreadsPerChild|MinSpareServers|MinSpareThreads|NumServers|PidFile|ReceiveBufferSize|ScoreBoardFile|SendBufferSize|ServerLimit|StartServers|StartThreads|ThreadLimit|ThreadsPerChild|ThreadStackSize|User|Win32DisableAcceptEx)\\b' }, + { token: 'keyword.access.apacheconf', + regex: '\\b(?:Allow|Deny|Order)\\b' }, + { token: 'keyword.actions.apacheconf', + regex: '\\b(?:Action|Script)\\b' }, + { token: 'keyword.alias.apacheconf', + regex: '\\b(?:Alias|AliasMatch|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ScriptAlias|ScriptAliasMatch)\\b' }, + { token: 'keyword.auth.apacheconf', + regex: '\\b(?:AuthAuthoritative|AuthGroupFile|AuthUserFile)\\b' }, + { token: 'keyword.auth_anon.apacheconf', + regex: '\\b(?:Anonymous|Anonymous_Authoritative|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail)\\b' }, + { token: 'keyword.auth_dbm.apacheconf', + regex: '\\b(?:AuthDBMAuthoritative|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile)\\b' }, + { token: 'keyword.auth_digest.apacheconf', + regex: '\\b(?:AuthDigestAlgorithm|AuthDigestDomain|AuthDigestFile|AuthDigestGroupFile|AuthDigestNcCheck|AuthDigestNonceFormat|AuthDigestNonceLifetime|AuthDigestQop|AuthDigestShmemSize)\\b' }, + { token: 'keyword.auth_ldap.apacheconf', + regex: '\\b(?:AuthLDAPAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPEnabled|AuthLDAPFrontPageHack|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPRemoteUserIsDN|AuthLDAPUrl)\\b' }, + { token: 'keyword.autoindex.apacheconf', + regex: '\\b(?:AddAlt|AddAltByEncoding|AddAltByType|AddDescription|AddIcon|AddIconByEncoding|AddIconByType|DefaultIcon|HeaderName|IndexIgnore|IndexOptions|IndexOrderDefault|ReadmeName)\\b' }, + { token: 'keyword.cache.apacheconf', + regex: '\\b(?:CacheDefaultExpire|CacheDisable|CacheEnable|CacheForceCompletion|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheLastModifiedFactor|CacheMaxExpire)\\b' }, + { token: 'keyword.cern_meta.apacheconf', + regex: '\\b(?:MetaDir|MetaFiles|MetaSuffix)\\b' }, + { token: 'keyword.cgi.apacheconf', + regex: '\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength)\\b' }, + { token: 'keyword.cgid.apacheconf', + regex: '\\b(?:ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock)\\b' }, + { token: 'keyword.charset_lite.apacheconf', + regex: '\\b(?:CharsetDefault|CharsetOptions|CharsetSourceEnc)\\b' }, + { token: 'keyword.dav.apacheconf', + regex: '\\b(?:Dav|DavDepthInfinity|DavMinTimeout|DavLockDB)\\b' }, + { token: 'keyword.deflate.apacheconf', + regex: '\\b(?:DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateMemLevel|DeflateWindowSize)\\b' }, + { token: 'keyword.dir.apacheconf', + regex: '\\b(?:DirectoryIndex|DirectorySlash)\\b' }, + { token: 'keyword.disk_cache.apacheconf', + regex: '\\b(?:CacheDirLength|CacheDirLevels|CacheExpiryCheck|CacheGcClean|CacheGcDaily|CacheGcInterval|CacheGcMemUsage|CacheGcUnused|CacheMaxFileSize|CacheMinFileSize|CacheRoot|CacheSize|CacheTimeMargin)\\b' }, + { token: 'keyword.dumpio.apacheconf', + regex: '\\b(?:DumpIOInput|DumpIOOutput)\\b' }, + { token: 'keyword.env.apacheconf', + regex: '\\b(?:PassEnv|SetEnv|UnsetEnv)\\b' }, + { token: 'keyword.expires.apacheconf', + regex: '\\b(?:ExpiresActive|ExpiresByType|ExpiresDefault)\\b' }, + { token: 'keyword.ext_filter.apacheconf', + regex: '\\b(?:ExtFilterDefine|ExtFilterOptions)\\b' }, + { token: 'keyword.file_cache.apacheconf', + regex: '\\b(?:CacheFile|MMapFile)\\b' }, + { token: 'keyword.headers.apacheconf', + regex: '\\b(?:Header|RequestHeader)\\b' }, + { token: 'keyword.imap.apacheconf', + regex: '\\b(?:ImapBase|ImapDefault|ImapMenu)\\b' }, + { token: 'keyword.include.apacheconf', + regex: '\\b(?:SSIEndTag|SSIErrorMsg|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|XBitHack)\\b' }, + { token: 'keyword.isapi.apacheconf', + regex: '\\b(?:ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer)\\b' }, + { token: 'keyword.ldap.apacheconf', + regex: '\\b(?:LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionTimeout|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTrustedCA|LDAPTrustedCAType)\\b' }, + { token: 'keyword.log.apacheconf', + regex: '\\b(?:BufferedLogs|CookieLog|CustomLog|LogFormat|TransferLog|ForensicLog)\\b' }, + { token: 'keyword.mem_cache.apacheconf', + regex: '\\b(?:MCacheMaxObjectCount|MCacheMaxObjectSize|MCacheMaxStreamingBuffer|MCacheMinObjectSize|MCacheRemovalAlgorithm|MCacheSize)\\b' }, + { token: 'keyword.mime.apacheconf', + regex: '\\b(?:AddCharset|AddEncoding|AddHandler|AddInputFilter|AddLanguage|AddOutputFilter|AddType|DefaultLanguage|ModMimeUsePathInfo|MultiviewsMatch|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|TypesConfig)\\b' }, + { token: 'keyword.misc.apacheconf', + regex: '\\b(?:ProtocolEcho|Example|AddModuleInfo|MimeMagicFile|CheckSpelling|ExtendedStatus|SuexecUserGroup|UserDir)\\b' }, + { token: 'keyword.negotiation.apacheconf', + regex: '\\b(?:CacheNegotiatedDocs|ForceLanguagePriority|LanguagePriority)\\b' }, + { token: 'keyword.nw_ssl.apacheconf', + regex: '\\b(?:NWSSLTrustedCerts|NWSSLUpgradeable|SecureListen)\\b' }, + { token: 'keyword.proxy.apacheconf', + regex: '\\b(?:AllowCONNECT|NoProxy|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyFtpDirCharset|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassReverse|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxyTimeout|ProxyVia)\\b' }, + { token: 'keyword.rewrite.apacheconf', + regex: '\\b(?:RewriteBase|RewriteCond|RewriteEngine|RewriteLock|RewriteLog|RewriteLogLevel|RewriteMap|RewriteOptions|RewriteRule)\\b' }, + { token: 'keyword.setenvif.apacheconf', + regex: '\\b(?:BrowserMatch|BrowserMatchNoCase|SetEnvIf|SetEnvIfNoCase)\\b' }, + { token: 'keyword.so.apacheconf', + regex: '\\b(?:LoadFile|LoadModule)\\b' }, + { token: 'keyword.ssl.apacheconf', + regex: '\\b(?:SSLCACertificateFile|SSLCACertificatePath|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLEngine|SSLMutex|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLUserName|SSLVerifyClient|SSLVerifyDepth)\\b' }, + { token: 'keyword.usertrack.apacheconf', + regex: '\\b(?:CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking)\\b' }, + { token: 'keyword.vhost_alias.apacheconf', + regex: '\\b(?:VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP)\\b' }, + { token: + [ 'keyword.php.apacheconf', + 'text', + 'entity.property.apacheconf', + 'text', + 'string.value.apacheconf', + 'text' ], + regex: '\\b(php_value|php_flag)\\b(?:(\\s+)(.+?)(?:(\\s+)(.+?))?)?(\\s)' }, + { token: + [ 'punctuation.variable.apacheconf', + 'variable.env.apacheconf', + 'variable.misc.apacheconf', + 'punctuation.variable.apacheconf' ], + regex: '(%\\{)(?:(HTTP_USER_AGENT|HTTP_REFERER|HTTP_COOKIE|HTTP_FORWARDED|HTTP_HOST|HTTP_PROXY_CONNECTION|HTTP_ACCEPT|REMOTE_ADDR|REMOTE_HOST|REMOTE_PORT|REMOTE_USER|REMOTE_IDENT|REQUEST_METHOD|SCRIPT_FILENAME|PATH_INFO|QUERY_STRING|AUTH_TYPE|DOCUMENT_ROOT|SERVER_ADMIN|SERVER_NAME|SERVER_ADDR|SERVER_PORT|SERVER_PROTOCOL|SERVER_SOFTWARE|TIME_YEAR|TIME_MON|TIME_DAY|TIME_HOUR|TIME_MIN|TIME_SEC|TIME_WDAY|TIME|API_VERSION|THE_REQUEST|REQUEST_URI|REQUEST_FILENAME|IS_SUBREQ|HTTPS)|(.*?))(\\})' }, + { token: [ 'entity.mime-type.apacheconf', 'text' ], + regex: '\\b((?:text|image|application|video|audio)/.+?)(\\s)' }, + { token: 'entity.helper.apacheconf', + regex: '\\b(?:from|unset|set|on|off)\\b', + caseInsensitive: true }, + { token: 'constant.integer.apacheconf', regex: '\\b\\d+\\b' }, + { token: + [ 'text', + 'punctuation.definition.flag.apacheconf', + 'string.flag.apacheconf', + 'punctuation.definition.flag.apacheconf', + 'text' ], + regex: '(\\s)(\\[)(.*?)(\\])(\\s)' } ] } + + this.normalizeRules(); +}; + +ApacheConfHighlightRules.metaData = { fileTypes: + [ 'conf', + 'CONF', + 'htaccess', + 'HTACCESS', + 'htgroups', + 'HTGROUPS', + 'htpasswd', + 'HTPASSWD', + '.htaccess', + '.HTACCESS', + '.htgroups', + '.HTGROUPS', + '.htpasswd', + '.HTPASSWD' ], + name: 'Apache Conf', + scopeName: 'source.apacheconf' } + + +oop.inherits(ApacheConfHighlightRules, TextHighlightRules); + +exports.ApacheConfHighlightRules = ApacheConfHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/apache_conf",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/apache_conf_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ApacheConfHighlightRules = require("./apache_conf_highlight_rules").ApacheConfHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ApacheConfHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/apache_conf"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-applescript.js b/htdocs/includes/ace/mode-applescript.js new file mode 100644 index 00000000000..936ce2f7bc4 --- /dev/null +++ b/htdocs/includes/ace/mode-applescript.js @@ -0,0 +1,271 @@ +ace.define("ace/mode/applescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AppleScriptHighlightRules = function() { + var keywords = ( + "about|above|after|against|and|around|as|at|back|before|beginning|" + + "behind|below|beneath|beside|between|but|by|considering|" + + "contain|contains|continue|copy|div|does|eighth|else|end|equal|" + + "equals|error|every|exit|fifth|first|for|fourth|from|front|" + + "get|given|global|if|ignoring|in|into|is|it|its|last|local|me|" + + "middle|mod|my|ninth|not|of|on|onto|or|over|prop|property|put|ref|" + + "reference|repeat|returning|script|second|set|seventh|since|" + + "sixth|some|tell|tenth|that|the|then|third|through|thru|" + + "timeout|times|to|transaction|try|until|where|while|whose|with|without" + ); + + var builtinConstants = ( + "AppleScript|false|linefeed|return|pi|quote|result|space|tab|true" + ); + + var builtinFunctions = ( + "activate|beep|count|delay|launch|log|offset|read|round|run|say|" + + "summarize|write" + ); + + var builtinTypes = ( + "alias|application|boolean|class|constant|date|file|integer|list|" + + "number|real|record|string|text|character|characters|contents|day|" + + "frontmost|id|item|length|month|name|paragraph|paragraphs|rest|" + + "reverse|running|time|version|weekday|word|words|year" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "constant.language": builtinConstants, + "support.type": builtinTypes, + "keyword": keywords + }, "identifier"); + + this.$rules = { + "start": [ + { + token: "comment", + regex: "--.*$" + }, + { + token : "comment", // multi line comment + regex : "\\(\\*", + next : "comment" + }, + { + token: "string", // " string + regex: '".*?"' + }, + { + token: "support.type", + regex: '\\b(POSIX file|POSIX path|(date|time) string|quoted form)\\b' + }, + { + token: "support.function", + regex: '\\b(clipboard info|the clipboard|info for|list (disks|folder)|' + + 'mount volume|path to|(close|open for) access|(get|set) eof|' + + 'current date|do shell script|get volume settings|random number|' + + 'set volume|system attribute|system info|time to GMT|' + + '(load|run|store) script|scripting components|' + + 'ASCII (character|number)|localized string|' + + 'choose (application|color|file|file name|' + + 'folder|from list|remote application|URL)|' + + 'display (alert|dialog))\\b|^\\s*return\\b' + }, + { + token: "constant.language", + regex: '\\b(text item delimiters|current application|missing value)\\b' + }, + { + token: "keyword", + regex: '\\b(apart from|aside from|instead of|out of|greater than|' + + "isn't|(doesn't|does not) (equal|come before|come after|contain)|" + + '(greater|less) than( or equal)?|(starts?|ends|begins?) with|' + + 'contained by|comes (before|after)|a (ref|reference))\\b' + }, + { + token: keywordMapper, + regex: "[a-zA-Z][a-zA-Z0-9_]*\\b" + } + ], + "comment": [ + { + token: "comment", // closing comment + regex: "\\*\\)", + next: "start" + }, { + defaultToken: "comment" + } + ] + } + + this.normalizeRules(); +}; + +oop.inherits(AppleScriptHighlightRules, TextHighlightRules); + +exports.AppleScriptHighlightRules = AppleScriptHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/applescript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/applescript_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var AppleScriptHighlightRules = require("./applescript_highlight_rules").AppleScriptHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = AppleScriptHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = {start: "(*", end: "*)"}; + this.$id = "ace/mode/applescript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-asciidoc.js b/htdocs/includes/ace/mode-asciidoc.js new file mode 100644 index 00000000000..f112cec398c --- /dev/null +++ b/htdocs/includes/ace/mode-asciidoc.js @@ -0,0 +1,342 @@ +ace.define("ace/mode/asciidoc_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AsciidocHighlightRules = function() { + var identifierRe = "[a-zA-Z\u00a1-\uffff]+\\b"; + + this.$rules = { + "start": [ + {token: "empty", regex: /$/}, + {token: "literal", regex: /^\.{4,}\s*$/, next: "listingBlock"}, + {token: "literal", regex: /^-{4,}\s*$/, next: "literalBlock"}, + {token: "string", regex: /^\+{4,}\s*$/, next: "passthroughBlock"}, + {token: "keyword", regex: /^={4,}\s*$/}, + {token: "text", regex: /^\s*$/}, + {token: "empty", regex: "", next: "dissallowDelimitedBlock"} + ], + + "dissallowDelimitedBlock": [ + {include: "paragraphEnd"}, + {token: "comment", regex: '^//.+$'}, + {token: "keyword", regex: "^(?:NOTE|TIP|IMPORTANT|WARNING|CAUTION):"}, + + {include: "listStart"}, + {token: "literal", regex: /^\s+.+$/, next: "indentedBlock"}, + {token: "empty", regex: "", next: "text"} + ], + + "paragraphEnd": [ + {token: "doc.comment", regex: /^\/{4,}\s*$/, next: "commentBlock"}, + {token: "tableBlock", regex: /^\s*[|!]=+\s*$/, next: "tableBlock"}, + {token: "keyword", regex: /^(?:--|''')\s*$/, next: "start"}, + {token: "option", regex: /^\[.*\]\s*$/, next: "start"}, + {token: "pageBreak", regex: /^>{3,}$/, next: "start"}, + {token: "literal", regex: /^\.{4,}\s*$/, next: "listingBlock"}, + {token: "titleUnderline", regex: /^(?:={2,}|-{2,}|~{2,}|\^{2,}|\+{2,})\s*$/, next: "start"}, + {token: "singleLineTitle", regex: /^={1,5}\s+\S.*$/, next: "start"}, + + {token: "otherBlock", regex: /^(?:\*{2,}|_{2,})\s*$/, next: "start"}, + {token: "optionalTitle", regex: /^\.[^.\s].+$/, next: "start"} + ], + + "listStart": [ + {token: "keyword", regex: /^\s*(?:\d+\.|[a-zA-Z]\.|[ixvmIXVM]+\)|\*{1,5}|-|\.{1,5})\s/, next: "listText"}, + {token: "meta.tag", regex: /^.+(?::{2,4}|;;)(?: |$)/, next: "listText"}, + {token: "support.function.list.callout", regex: /^(?:<\d+>|\d+>|>) /, next: "text"}, + {token: "keyword", regex: /^\+\s*$/, next: "start"} + ], + + "text": [ + {token: ["link", "variable.language"], regex: /((?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+)(\[.*?\])/}, + {token: "link", regex: /(?:https?:\/\/|ftp:\/\/|file:\/\/|mailto:|callto:)[^\s\[]+/}, + {token: "link", regex: /\b[\w\.\/\-]+@[\w\.\/\-]+\b/}, + {include: "macros"}, + {include: "paragraphEnd"}, + {token: "literal", regex:/\+{3,}/, next:"smallPassthrough"}, + {token: "escape", regex: /\((?:C|TM|R)\)|\.{3}|->|<-|=>|<=|&#(?:\d+|x[a-fA-F\d]+);|(?: |^)--(?=\s+\S)/}, + {token: "escape", regex: /\\[_*'`+#]|\\{2}[_*'`+#]{2}/}, + {token: "keyword", regex: /\s\+$/}, + {token: "text", regex: identifierRe}, + {token: ["keyword", "string", "keyword"], + regex: /(<<[\w\d\-$]+,)(.*?)(>>|$)/}, + {token: "keyword", regex: /<<[\w\d\-$]+,?|>>/}, + {token: "constant.character", regex: /\({2,3}.*?\){2,3}/}, + {token: "keyword", regex: /\[\[.+?\]\]/}, + {token: "support", regex: /^\[{3}[\w\d =\-]+\]{3}/}, + + {include: "quotes"}, + {token: "empty", regex: /^\s*$/, next: "start"} + ], + + "listText": [ + {include: "listStart"}, + {include: "text"} + ], + + "indentedBlock": [ + {token: "literal", regex: /^[\s\w].+$/, next: "indentedBlock"}, + {token: "literal", regex: "", next: "start"} + ], + + "listingBlock": [ + {token: "literal", regex: /^\.{4,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "constant.numeric", regex: '<\\d+>'}, + {token: "literal", regex: '[^<]+'}, + {token: "literal", regex: '<'} + ], + "literalBlock": [ + {token: "literal", regex: /^-{4,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "constant.numeric", regex: '<\\d+>'}, + {token: "literal", regex: '[^<]+'}, + {token: "literal", regex: '<'} + ], + "passthroughBlock": [ + {token: "literal", regex: /^\+{4,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "literal", regex: identifierRe + "|\\d+"}, + {include: "macros"}, + {token: "literal", regex: "."} + ], + + "smallPassthrough": [ + {token: "literal", regex: /[+]{3,}/, next: "dissallowDelimitedBlock"}, + {token: "literal", regex: /^\s*$/, next: "dissallowDelimitedBlock"}, + {token: "literal", regex: identifierRe + "|\\d+"}, + {include: "macros"} + ], + + "commentBlock": [ + {token: "doc.comment", regex: /^\/{4,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "doc.comment", regex: '^.*$'} + ], + "tableBlock": [ + {token: "tableBlock", regex: /^\s*\|={3,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "tableBlock", regex: /^\s*!={3,}\s*$/, next: "innerTableBlock"}, + {token: "tableBlock", regex: /\|/}, + {include: "text", noEscape: true} + ], + "innerTableBlock": [ + {token: "tableBlock", regex: /^\s*!={3,}\s*$/, next: "tableBlock"}, + {token: "tableBlock", regex: /^\s*|={3,}\s*$/, next: "dissallowDelimitedBlock"}, + {token: "tableBlock", regex: /!/} + ], + "macros": [ + {token: "macro", regex: /{[\w\-$]+}/}, + {token: ["text", "string", "text", "constant.character", "text"], regex: /({)([\w\-$]+)(:)?(.+)?(})/}, + {token: ["text", "markup.list.macro", "keyword", "string"], regex: /(\w+)(footnote(?:ref)?::?)([^\s\[]+)?(\[.*?\])?/}, + {token: ["markup.list.macro", "keyword", "string"], regex: /([a-zA-Z\-][\w\.\/\-]*::?)([^\s\[]+)(\[.*?\])?/}, + {token: ["markup.list.macro", "keyword"], regex: /([a-zA-Z\-][\w\.\/\-]+::?)(\[.*?\])/}, + {token: "keyword", regex: /^:.+?:(?= |$)/} + ], + + "quotes": [ + {token: "string.italic", regex: /__[^_\s].*?__/}, + {token: "string.italic", regex: quoteRule("_")}, + + {token: "keyword.bold", regex: /\*\*[^*\s].*?\*\*/}, + {token: "keyword.bold", regex: quoteRule("\\*")}, + + {token: "literal", regex: quoteRule("\\+")}, + {token: "literal", regex: /\+\+[^+\s].*?\+\+/}, + {token: "literal", regex: /\$\$.+?\$\$/}, + {token: "literal", regex: quoteRule("`")}, + + {token: "keyword", regex: quoteRule("^")}, + {token: "keyword", regex: quoteRule("~")}, + {token: "keyword", regex: /##?/}, + {token: "keyword", regex: /(?:\B|^)``|\b''/} + ] + + }; + + function quoteRule(ch) { + var prefix = /\w/.test(ch) ? "\\b" : "(?:\\B|^)"; + return prefix + ch + "[^" + ch + "].*?" + ch + "(?![\\w*])"; + } + + var tokenMap = { + macro: "constant.character", + tableBlock: "doc.comment", + titleUnderline: "markup.heading", + singleLineTitle: "markup.heading", + pageBreak: "string", + option: "string.regexp", + otherBlock: "markup.list", + literal: "support.function", + optionalTitle: "constant.numeric", + escape: "constant.language.escape", + link: "markup.underline.list" + }; + + for (var state in this.$rules) { + var stateRules = this.$rules[state]; + for (var i = stateRules.length; i--; ) { + var rule = stateRules[i]; + if (rule.include || typeof rule == "string") { + var args = [i, 1].concat(this.$rules[rule.include || rule]); + if (rule.noEscape) { + args = args.filter(function(x) { + return !x.next; + }); + } + stateRules.splice.apply(stateRules, args); + } else if (rule.token in tokenMap) { + rule.token = tokenMap[rule.token]; + } + } + } +}; +oop.inherits(AsciidocHighlightRules, TextHighlightRules); + +exports.AsciidocHighlightRules = AsciidocHighlightRules; +}); + +ace.define("ace/mode/folding/asciidoc",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + this.foldingStartMarker = /^(?:\|={10,}|[\.\/=\-~^+]{4,}\s*$|={1,5} )/; + this.singleLineHeadingRe = /^={1,5}(?=\s+\S)/; + + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (!this.foldingStartMarker.test(line)) + return "" + + if (line[0] == "=") { + if (this.singleLineHeadingRe.test(line)) + return "start"; + if (session.getLine(row - 1).length != session.getLine(row).length) + return ""; + return "start"; + } + if (session.bgTokenizer.getState(row) == "dissallowDelimitedBlock") + return "end"; + return "start"; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + if (!line.match(this.foldingStartMarker)) + return; + + var token; + function getTokenType(row) { + token = session.getTokens(row)[0]; + return token && token.type; + } + + var levels = ["=","-","~","^","+"]; + var heading = "markup.heading"; + var singleLineHeadingRe = this.singleLineHeadingRe; + function getLevel() { + var match = token.value.match(singleLineHeadingRe); + if (match) + return match[0].length; + var level = levels.indexOf(token.value[0]) + 1; + if (level == 1) { + if (session.getLine(row - 1).length != session.getLine(row).length) + return Infinity; + } + return level; + } + + if (getTokenType(row) == heading) { + var startHeadingLevel = getLevel(); + while (++row < maxRow) { + if (getTokenType(row) != heading) + continue; + var level = getLevel(); + if (level <= startHeadingLevel) + break; + } + + var isSingleLineHeading = token && token.value.match(this.singleLineHeadingRe); + endRow = isSingleLineHeading ? row - 1 : row - 2; + + if (endRow > startRow) { + while (endRow > startRow && (!getTokenType(endRow) || token.value[0] == "[")) + endRow--; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + } else { + var state = session.bgTokenizer.getState(row); + if (state == "dissallowDelimitedBlock") { + while (row -- > 0) { + if (session.bgTokenizer.getState(row).lastIndexOf("Block") == -1) + break; + } + endRow = row + 1; + if (endRow < startRow) { + var endColumn = session.getLine(row).length; + return new Range(endRow, 5, startRow, startColumn - 5); + } + } else { + while (++row < maxRow) { + if (session.bgTokenizer.getState(row) == "dissallowDelimitedBlock") + break; + } + endRow = row; + if (endRow > startRow) { + var endColumn = session.getLine(row).length; + return new Range(startRow, 5, endRow, endColumn - 5); + } + } + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/asciidoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/asciidoc_highlight_rules","ace/mode/folding/asciidoc"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var AsciidocHighlightRules = require("./asciidoc_highlight_rules").AsciidocHighlightRules; +var AsciidocFoldMode = require("./folding/asciidoc").FoldMode; + +var Mode = function() { + this.HighlightRules = AsciidocHighlightRules; + + this.foldingRules = new AsciidocFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + this.getNextLineIndent = function(state, line, tab) { + if (state == "listblock") { + var match = /^((?:.+)?)([-+*][ ]+)/.exec(line); + if (match) { + return new Array(match[1].length + 1).join(" ") + match[2]; + } else { + return ""; + } + } else { + return this.$getIndent(line); + } + }; + this.$id = "ace/mode/asciidoc"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-assembly_x86.js b/htdocs/includes/ace/mode-assembly_x86.js new file mode 100644 index 00000000000..f6a56f1be07 --- /dev/null +++ b/htdocs/includes/ace/mode-assembly_x86.js @@ -0,0 +1,186 @@ +ace.define("ace/mode/assembly_x86_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AssemblyX86HighlightRules = function() { + + this.$rules = { start: + [ { token: 'keyword.control.assembly', + regex: '\\b(?:aaa|aad|aam|aas|adc|add|addpd|addps|addsd|addss|addsubpd|addsubps|aesdec|aesdeclast|aesenc|aesenclast|aesimc|aeskeygenassist|and|andpd|andps|andnpd|andnps|arpl|blendpd|blendps|blendvpd|blendvps|bound|bsf|bsr|bswap|bt|btc|btr|bts|cbw|cwde|cdqe|clc|cld|cflush|clts|cmc|cmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|cmp|cmppd|cmpps|cmps|cnpsb|cmpsw|cmpsd|cmpsq|cmpss|cmpxchg|cmpxchg8b|cmpxchg16b|comisd|comiss|cpuid|crc32|cvtdq2pd|cvtdq2ps|cvtpd2dq|cvtpd2pi|cvtpd2ps|cvtpi2pd|cvtpi2ps|cvtps2dq|cvtps2pd|cvtps2pi|cvtsd2si|cvtsd2ss|cvts2sd|cvtsi2ss|cvtss2sd|cvtss2si|cvttpd2dq|cvtpd2pi|cvttps2dq|cvttps2pi|cvttps2dq|cvttps2pi|cvttsd2si|cvttss2si|cwd|cdq|cqo|daa|das|dec|div|divpd|divps|divsd|divss|dppd|dpps|emms|enter|extractps|f2xm1|fabs|fadd|faddp|fiadd|fbld|fbstp|fchs|fclex|fnclex|fcmov(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|fcom|fcmop|fcompp|fcomi|fcomip|fucomi|fucomip|fcos|fdecstp|fdiv|fdivp|fidiv|fdivr|fdivrp|fidivr|ffree|ficom|ficomp|fild|fincstp|finit|fnint|fist|fistp|fisttp|fld|fld1|fldl2t|fldl2e|fldpi|fldlg2|fldln2|fldz|fldcw|fldenv|fmul|fmulp|fimul|fnop|fpatan|fprem|fprem1|fptan|frndint|frstor|fsave|fnsave|fscale|fsin|fsincos|fsqrt|fst|fstp|fstcw|fnstcw|fstenv|fnstenv|fsts|fnstsw|fsub|fsubp|fisub|fsubr|fsubrp|fisubr|ftst|fucom|fucomp|fucompp|fxam|fxch|fxrstor|fxsave|fxtract|fyl2x|fyl2xp1|haddpd|haddps|husbpd|hsubps|idiv|imul|in|inc|ins|insb|insw|insd|insertps|int|into|invd|invplg|invpcid|iret|iretd|iretq|lahf|lar|lddqu|ldmxcsr|lds|les|lfs|lgs|lss|lea|leave|lfence|lgdt|lidt|llgdt|lmsw|lock|lods|lodsb|lodsw|lodsd|lodsq|lsl|ltr|maskmovdqu|maskmovq|maxpd|maxps|maxsd|maxss|mfence|minpd|minps|minsd|minss|monitor|mov|movapd|movaps|movbe|movd|movq|movddup|movdqa|movdqu|movq2q|movhlps|movhpd|movhps|movlhps|movlpd|movlps|movmskpd|movmskps|movntdqa|movntdq|movnti|movntpd|movntps|movntq|movq|movq2dq|movs|movsb|movsw|movsd|movsq|movsd|movshdup|movsldup|movss|movsx|movsxd|movupd|movups|movzx|mpsadbw|mul|mulpd|mulps|mulsd|mulss|mwait|neg|not|or|orpd|orps|out|outs|outsb|outsw|outsd|pabsb|pabsw|pabsd|packsswb|packssdw|packusdw|packuswbpaddb|paddw|paddd|paddq|paddsb|paddsw|paddusb|paddusw|palignr|pand|pandn|pause|pavgb|pavgw|pblendvb|pblendw|pclmulqdq|pcmpeqb|pcmpeqw|pcmpeqd|pcmpeqq|pcmpestri|pcmpestrm|pcmptb|pcmptgw|pcmpgtd|pcmpgtq|pcmpistri|pcmpisrm|pextrb|pextrd|pextrq|pextrw|phaddw|phaddd|phaddsw|phinposuw|phsubw|phsubd|phsubsw|pinsrb|pinsrd|pinsrq|pinsrw|pmaddubsw|pmadddwd|pmaxsb|pmaxsd|pmaxsw|pmaxsw|pmaxub|pmaxud|pmaxuw|pminsb|pminsd|pminsw|pminub|pminud|pminuw|pmovmskb|pmovsx|pmovzx|pmuldq|pmulhrsw|pmulhuw|pmulhw|pmulld|pmullw|pmuludw|pop|popa|popad|popcnt|popf|popfd|popfq|por|prefetch|psadbw|pshufb|pshufd|pshufhw|pshuflw|pshufw|psignb|psignw|psignd|pslldq|psllw|pslld|psllq|psraw|psrad|psrldq|psrlw|psrld|psrlq|psubb|psubw|psubd|psubq|psubsb|psubsw|psubusb|psubusw|test|ptest|punpckhbw|punpckhwd|punpckhdq|punpckhddq|punpcklbw|punpcklwd|punpckldq|punpckldqd|push|pusha|pushad|pushf|pushfd|pxor|prcl|rcr|rol|ror|rcpps|rcpss|rdfsbase|rdgsbase|rdmsr|rdpmc|rdrand|rdtsc|rdtscp|rep|repe|repz|repne|repnz|roundpd|roundps|roundsd|roundss|rsm|rsqrps|rsqrtss|sahf|sal|sar|shl|shr|sbb|scas|scasb|scasw|scasd|set(?:n?e|ge?|ae?|le?|be?|n?o|n?z)|sfence|sgdt|shld|shrd|shufpd|shufps|sidt|sldt|smsw|sqrtpd|sqrtps|sqrtsd|sqrtss|stc|std|stmxcsr|stos|stosb|stosw|stosd|stosq|str|sub|subpd|subps|subsd|subss|swapgs|syscall|sysenter|sysexit|sysret|teset|ucomisd|ucomiss|ud2|unpckhpd|unpckhps|unpcklpd|unpcklps|vbroadcast|vcvtph2ps|vcvtp2sph|verr|verw|vextractf128|vinsertf128|vmaskmov|vpermilpd|vpermilps|vperm2f128|vtestpd|vtestps|vzeroall|vzeroupper|wait|fwait|wbinvd|wrfsbase|wrgsbase|wrmsr|xadd|xchg|xgetbv|xlat|xlatb|xor|xorpd|xorps|xrstor|xsave|xsaveopt|xsetbv|lzcnt|extrq|insertq|movntsd|movntss|vfmaddpd|vfmaddps|vfmaddsd|vfmaddss|vfmaddsubbpd|vfmaddsubps|vfmsubaddpd|vfmsubaddps|vfmsubpd|vfmsubps|vfmsubsd|vfnmaddpd|vfnmaddps|vfnmaddsd|vfnmaddss|vfnmsubpd|vfnmusbps|vfnmusbsd|vfnmusbss|cvt|xor|cli|sti|hlt|nop|lock|wait|enter|leave|ret|loop(?:n?e|n?z)?|call|j(?:mp|n?e|ge?|ae?|le?|be?|n?o|n?z))\\b', + caseInsensitive: true }, + { token: 'variable.parameter.register.assembly', + regex: '\\b(?:CS|DS|ES|FS|GS|SS|RAX|EAX|RBX|EBX|RCX|ECX|RDX|EDX|RCX|RIP|EIP|IP|RSP|ESP|SP|RSI|ESI|SI|RDI|EDI|DI|RFLAGS|EFLAGS|FLAGS|R8-15|(?:Y|X)MM(?:[0-9]|10|11|12|13|14|15)|(?:A|B|C|D)(?:X|H|L)|CR(?:[0-4]|DR(?:[0-7]|TR6|TR7|EFER)))\\b', + caseInsensitive: true }, + { token: 'constant.character.decimal.assembly', + regex: '\\b[0-9]+\\b' }, + { token: 'constant.character.hexadecimal.assembly', + regex: '\\b0x[A-F0-9]+\\b', + caseInsensitive: true }, + { token: 'constant.character.hexadecimal.assembly', + regex: '\\b[A-F0-9]+h\\b', + caseInsensitive: true }, + { token: 'string.assembly', regex: /'([^\\']|\\.)*'/ }, + { token: 'string.assembly', regex: /"([^\\"]|\\.)*"/ }, + { token: 'support.function.directive.assembly', + regex: '^\\[', + push: + [ { token: 'support.function.directive.assembly', + regex: '\\]$', + next: 'pop' }, + { defaultToken: 'support.function.directive.assembly' } ] }, + { token: + [ 'support.function.directive.assembly', + 'support.function.directive.assembly', + 'entity.name.function.assembly' ], + regex: '(^struc)( )([_a-zA-Z][_a-zA-Z0-9]*)' }, + { token: 'support.function.directive.assembly', + regex: '^endstruc\\b' }, + { token: + [ 'support.function.directive.assembly', + 'entity.name.function.assembly', + 'support.function.directive.assembly', + 'constant.character.assembly' ], + regex: '^(%macro )([_a-zA-Z][_a-zA-Z0-9]*)( )([0-9]+)' }, + { token: 'support.function.directive.assembly', + regex: '^%endmacro' }, + { token: + [ 'text', + 'support.function.directive.assembly', + 'text', + 'entity.name.function.assembly' ], + regex: '(\\s*)(%define|%xdefine|%idefine|%undef|%assign|%defstr|%strcat|%strlen|%substr|%00|%0|%rotate|%rep|%endrep|%include|\\$\\$|\\$|%unmacro|%if|%elif|%else|%endif|%(?:el)?ifdef|%(?:el)?ifmacro|%(?:el)?ifctx|%(?:el)?ifidn|%(?:el)?ifidni|%(?:el)?ifid|%(?:el)?ifnum|%(?:el)?ifstr|%(?:el)?iftoken|%(?:el)?ifempty|%(?:el)?ifenv|%pathsearch|%depend|%use|%push|%pop|%repl|%arg|%stacksize|%local|%error|%warning|%fatal|%line|%!|%comment|%endcomment|__NASM_VERSION_ID__|__NASM_VER__|__FILE__|__LINE__|__BITS__|__OUTPUT_FORMAT__|__DATE__|__TIME__|__DATE_NUM__|_TIME__NUM__|__UTC_DATE__|__UTC_TIME__|__UTC_DATE_NUM__|__UTC_TIME_NUM__|__POSIX_TIME__|__PASS__|ISTRUC|AT|IEND|BITS 16|BITS 32|BITS 64|USE16|USE32|__SECT__|ABSOLUTE|EXTERN|GLOBAL|COMMON|CPU|FLOAT)\\b( ?)((?:[_a-zA-Z][_a-zA-Z0-9]*)?)', + caseInsensitive: true }, + { token: 'support.function.directive.assembly', + regex: '\\b(?:d[bwdqtoy]|res[bwdqto]|equ|times|align|alignb|sectalign|section|ptr|byte|word|dword|qword|incbin)\\b', + caseInsensitive: true }, + { token: 'entity.name.function.assembly', regex: '^\\s*%%[\\w.]+?:$' }, + { token: 'entity.name.function.assembly', regex: '^\\s*%\\$[\\w.]+?:$' }, + { token: 'entity.name.function.assembly', regex: '^[\\w.]+?:' }, + { token: 'entity.name.function.assembly', regex: '^[\\w.]+?\\b' }, + { token: 'comment.assembly', regex: ';.*$' } ] + } + + this.normalizeRules(); +}; + +AssemblyX86HighlightRules.metaData = { fileTypes: [ 'asm' ], + name: 'Assembly x86', + scopeName: 'source.assembly' } + + +oop.inherits(AssemblyX86HighlightRules, TextHighlightRules); + +exports.AssemblyX86HighlightRules = AssemblyX86HighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/assembly_x86",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/assembly_x86_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var AssemblyX86HighlightRules = require("./assembly_x86_highlight_rules").AssemblyX86HighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = AssemblyX86HighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = ";"; + this.$id = "ace/mode/assembly_x86"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-autohotkey.js b/htdocs/includes/ace/mode-autohotkey.js new file mode 100644 index 00000000000..538e6fd7864 --- /dev/null +++ b/htdocs/includes/ace/mode-autohotkey.js @@ -0,0 +1,235 @@ +ace.define("ace/mode/autohotkey_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var AutoHotKeyHighlightRules = function() { + var autoItKeywords = 'And|ByRef|Case|Const|ContinueCase|ContinueLoop|Default|Dim|Do|Else|ElseIf|EndFunc|EndIf|EndSelect|EndSwitch|EndWith|Enum|Exit|ExitLoop|False|For|Func|Global|If|In|Local|Next|Not|Or|ReDim|Return|Select|Step|Switch|Then|To|True|Until|WEnd|While|With|' + + 'Abs|ACos|AdlibDisable|AdlibEnable|Asc|AscW|ASin|Assign|ATan|AutoItSetOption|AutoItWinGetTitle|AutoItWinSetTitle|Beep|Binary|BinaryLen|BinaryMid|BinaryToString|BitAND|BitNOT|BitOR|BitRotate|BitShift|BitXOR|BlockInput|Break|Call|CDTray|Ceiling|Chr|ChrW|ClipGet|ClipPut|ConsoleRead|ConsoleWrite|ConsoleWriteError|ControlClick|ControlCommand|ControlDisable|ControlEnable|ControlFocus|ControlGetFocus|ControlGetHandle|ControlGetPos|ControlGetText|ControlHide|ControlListView|ControlMove|ControlSend|ControlSetText|ControlShow|ControlTreeView|Cos|Dec|DirCopy|DirCreate|DirGetSize|DirMove|DirRemove|DllCall|DllCallbackFree|DllCallbackGetPtr|DllCallbackRegister|DllClose|DllOpen|DllStructCreate|DllStructGetData|DllStructGetPtr|DllStructGetSize|DllStructSetData|DriveGetDrive|DriveGetFileSystem|DriveGetLabel|DriveGetSerial|DriveGetType|DriveMapAdd|DriveMapDel|DriveMapGet|DriveSetLabel|DriveSpaceFree|DriveSpaceTotal|DriveStatus|EnvGet|EnvSet|EnvUpdate|Eval|Execute|Exp|FileChangeDir|FileClose|FileCopy|FileCreateNTFSLink|FileCreateShortcut|FileDelete|FileExists|FileFindFirstFile|FileFindNextFile|FileGetAttrib|FileGetLongName|FileGetShortcut|FileGetShortName|FileGetSize|FileGetTime|FileGetVersion|FileInstall|FileMove|FileOpen|FileOpenDialog|FileRead|FileReadLine|FileRecycle|FileRecycleEmpty|FileSaveDialog|FileSelectFolder|FileSetAttrib|FileSetTime|FileWrite|FileWriteLine|Floor|FtpSetProxy|GUICreate|GUICtrlCreateAvi|GUICtrlCreateButton|GUICtrlCreateCheckbox|GUICtrlCreateCombo|GUICtrlCreateContextMenu|GUICtrlCreateDate|GUICtrlCreateDummy|GUICtrlCreateEdit|GUICtrlCreateGraphic|GUICtrlCreateGroup|GUICtrlCreateIcon|GUICtrlCreateInput|GUICtrlCreateLabel|GUICtrlCreateList|GUICtrlCreateListView|GUICtrlCreateListViewItem|GUICtrlCreateMenu|GUICtrlCreateMenuItem|GUICtrlCreateMonthCal|GUICtrlCreateObj|GUICtrlCreatePic|GUICtrlCreateProgress|GUICtrlCreateRadio|GUICtrlCreateSlider|GUICtrlCreateTab|GUICtrlCreateTabItem|GUICtrlCreateTreeView|GUICtrlCreateTreeViewItem|GUICtrlCreateUpdown|GUICtrlDelete|GUICtrlGetHandle|GUICtrlGetState|GUICtrlRead|GUICtrlRecvMsg|GUICtrlRegisterListViewSort|GUICtrlSendMsg|GUICtrlSendToDummy|GUICtrlSetBkColor|GUICtrlSetColor|GUICtrlSetCursor|GUICtrlSetData|GUICtrlSetFont|GUICtrlSetDefColor|GUICtrlSetDefBkColor|GUICtrlSetGraphic|GUICtrlSetImage|GUICtrlSetLimit|GUICtrlSetOnEvent|GUICtrlSetPos|GUICtrlSetResizing|GUICtrlSetState|GUICtrlSetStyle|GUICtrlSetTip|GUIDelete|GUIGetCursorInfo|GUIGetMsg|GUIGetStyle|GUIRegisterMsg|GUISetAccelerators()|GUISetBkColor|GUISetCoord|GUISetCursor|GUISetFont|GUISetHelp|GUISetIcon|GUISetOnEvent|GUISetState|GUISetStyle|GUIStartGroup|GUISwitch|Hex|HotKeySet|HttpSetProxy|HWnd|InetGet|InetGetSize|IniDelete|IniRead|IniReadSection|IniReadSectionNames|IniRenameSection|IniWrite|IniWriteSection|InputBox|Int|IsAdmin|IsArray|IsBinary|IsBool|IsDeclared|IsDllStruct|IsFloat|IsHWnd|IsInt|IsKeyword|IsNumber|IsObj|IsPtr|IsString|Log|MemGetStats|Mod|MouseClick|MouseClickDrag|MouseDown|MouseGetCursor|MouseGetPos|MouseMove|MouseUp|MouseWheel|MsgBox|Number|ObjCreate|ObjEvent|ObjGet|ObjName|Opt|Ping|PixelChecksum|PixelGetColor|PixelSearch|PluginClose|PluginOpen|ProcessClose|ProcessExists|ProcessGetStats|ProcessList|ProcessSetPriority|ProcessWait|ProcessWaitClose|ProgressOff|ProgressOn|ProgressSet|Ptr|Random|RegDelete|RegEnumKey|RegEnumVal|RegRead|RegWrite|Round|Run|RunAs|RunAsWait|RunWait|Send|SendKeepActive|SetError|SetExtended|ShellExecute|ShellExecuteWait|Shutdown|Sin|Sleep|SoundPlay|SoundSetWaveVolume|SplashImageOn|SplashOff|SplashTextOn|Sqrt|SRandom|StatusbarGetText|StderrRead|StdinWrite|StdioClose|StdoutRead|String|StringAddCR|StringCompare|StringFormat|StringInStr|StringIsAlNum|StringIsAlpha|StringIsASCII|StringIsDigit|StringIsFloat|StringIsInt|StringIsLower|StringIsSpace|StringIsUpper|StringIsXDigit|StringLeft|StringLen|StringLower|StringMid|StringRegExp|StringRegExpReplace|StringReplace|StringRight|StringSplit|StringStripCR|StringStripWS|StringToBinary|StringTrimLeft|StringTrimRight|StringUpper|Tan|TCPAccept|TCPCloseSocket|TCPConnect|TCPListen|TCPNameToIP|TCPRecv|TCPSend|TCPShutdown|TCPStartup|TimerDiff|TimerInit|ToolTip|TrayCreateItem|TrayCreateMenu|TrayGetMsg|TrayItemDelete|TrayItemGetHandle|TrayItemGetState|TrayItemGetText|TrayItemSetOnEvent|TrayItemSetState|TrayItemSetText|TraySetClick|TraySetIcon|TraySetOnEvent|TraySetPauseIcon|TraySetState|TraySetToolTip|TrayTip|UBound|UDPBind|UDPCloseSocket|UDPOpen|UDPRecv|UDPSend|UDPShutdown|UDPStartup|VarGetType|WinActivate|WinActive|WinClose|WinExists|WinFlash|WinGetCaretPos|WinGetClassList|WinGetClientSize|WinGetHandle|WinGetPos|WinGetProcess|WinGetState|WinGetText|WinGetTitle|WinKill|WinList|WinMenuSelectItem|WinMinimizeAll|WinMinimizeAllUndo|WinMove|WinSetOnTop|WinSetState|WinSetTitle|WinSetTrans|WinWait|WinWaitActive|WinWaitClose|WinWaitNotActive|' + + 'ArrayAdd|ArrayBinarySearch|ArrayConcatenate|ArrayDelete|ArrayDisplay|ArrayFindAll|ArrayInsert|ArrayMax|ArrayMaxIndex|ArrayMin|ArrayMinIndex|ArrayPop|ArrayPush|ArrayReverse|ArraySearch|ArraySort|ArraySwap|ArrayToClip|ArrayToString|ArrayTrim|ChooseColor|ChooseFont|ClipBoard_ChangeChain|ClipBoard_Close|ClipBoard_CountFormats|ClipBoard_Empty|ClipBoard_EnumFormats|ClipBoard_FormatStr|ClipBoard_GetData|ClipBoard_GetDataEx|ClipBoard_GetFormatName|ClipBoard_GetOpenWindow|ClipBoard_GetOwner|ClipBoard_GetPriorityFormat|ClipBoard_GetSequenceNumber|ClipBoard_GetViewer|ClipBoard_IsFormatAvailable|ClipBoard_Open|ClipBoard_RegisterFormat|ClipBoard_SetData|ClipBoard_SetDataEx|ClipBoard_SetViewer|ClipPutFile|ColorConvertHSLtoRGB|ColorConvertRGBtoHSL|ColorGetBlue|ColorGetGreen|ColorGetRed|Date_Time_CompareFileTime|Date_Time_DOSDateTimeToArray|Date_Time_DOSDateTimeToFileTime|Date_Time_DOSDateTimeToStr|Date_Time_DOSDateToArray|Date_Time_DOSDateToStr|Date_Time_DOSTimeToArray|Date_Time_DOSTimeToStr|Date_Time_EncodeFileTime|Date_Time_EncodeSystemTime|Date_Time_FileTimeToArray|Date_Time_FileTimeToDOSDateTime|Date_Time_FileTimeToLocalFileTime|Date_Time_FileTimeToStr|Date_Time_FileTimeToSystemTime|Date_Time_GetFileTime|Date_Time_GetLocalTime|Date_Time_GetSystemTime|Date_Time_GetSystemTimeAdjustment|Date_Time_GetSystemTimeAsFileTime|Date_Time_GetSystemTimes|Date_Time_GetTickCount|Date_Time_GetTimeZoneInformation|Date_Time_LocalFileTimeToFileTime|Date_Time_SetFileTime|Date_Time_SetLocalTime|Date_Time_SetSystemTime|Date_Time_SetSystemTimeAdjustment|Date_Time_SetTimeZoneInformation|Date_Time_SystemTimeToArray|Date_Time_SystemTimeToDateStr|Date_Time_SystemTimeToDateTimeStr|Date_Time_SystemTimeToFileTime|Date_Time_SystemTimeToTimeStr|Date_Time_SystemTimeToTzSpecificLocalTime|Date_Time_TzSpecificLocalTimeToSystemTime|DateAdd|DateDayOfWeek|DateDaysInMonth|DateDiff|DateIsLeapYear|DateIsValid|DateTimeFormat|DateTimeSplit|DateToDayOfWeek|DateToDayOfWeekISO|DateToDayValue|DateToMonth|DayValueToDate|DebugBugReportEnv|DebugOut|DebugSetup|Degree|EventLog__Backup|EventLog__Clear|EventLog__Close|EventLog__Count|EventLog__DeregisterSource|EventLog__Full|EventLog__Notify|EventLog__Oldest|EventLog__Open|EventLog__OpenBackup|EventLog__Read|EventLog__RegisterSource|EventLog__Report|FileCountLines|FileCreate|FileListToArray|FilePrint|FileReadToArray|FileWriteFromArray|FileWriteLog|FileWriteToLine|GDIPlus_ArrowCapCreate|GDIPlus_ArrowCapDispose|GDIPlus_ArrowCapGetFillState|GDIPlus_ArrowCapGetHeight|GDIPlus_ArrowCapGetMiddleInset|GDIPlus_ArrowCapGetWidth|GDIPlus_ArrowCapSetFillState|GDIPlus_ArrowCapSetHeight|GDIPlus_ArrowCapSetMiddleInset|GDIPlus_ArrowCapSetWidth|GDIPlus_BitmapCloneArea|GDIPlus_BitmapCreateFromFile|GDIPlus_BitmapCreateFromGraphics|GDIPlus_BitmapCreateFromHBITMAP|GDIPlus_BitmapCreateHBITMAPFromBitmap|GDIPlus_BitmapDispose|GDIPlus_BitmapLockBits|GDIPlus_BitmapUnlockBits|GDIPlus_BrushClone|GDIPlus_BrushCreateSolid|GDIPlus_BrushDispose|GDIPlus_BrushGetType|GDIPlus_CustomLineCapDispose|GDIPlus_Decoders|GDIPlus_DecodersGetCount|GDIPlus_DecodersGetSize|GDIPlus_Encoders|GDIPlus_EncodersGetCLSID|GDIPlus_EncodersGetCount|GDIPlus_EncodersGetParamList|GDIPlus_EncodersGetParamListSize|GDIPlus_EncodersGetSize|GDIPlus_FontCreate|GDIPlus_FontDispose|GDIPlus_FontFamilyCreate|GDIPlus_FontFamilyDispose|GDIPlus_GraphicsClear|GDIPlus_GraphicsCreateFromHDC|GDIPlus_GraphicsCreateFromHWND|GDIPlus_GraphicsDispose|GDIPlus_GraphicsDrawArc|GDIPlus_GraphicsDrawBezier|GDIPlus_GraphicsDrawClosedCurve|GDIPlus_GraphicsDrawCurve|GDIPlus_GraphicsDrawEllipse|GDIPlus_GraphicsDrawImage|GDIPlus_GraphicsDrawImageRect|GDIPlus_GraphicsDrawImageRectRect|GDIPlus_GraphicsDrawLine|GDIPlus_GraphicsDrawPie|GDIPlus_GraphicsDrawPolygon|GDIPlus_GraphicsDrawRect|GDIPlus_GraphicsDrawString|GDIPlus_GraphicsDrawStringEx|GDIPlus_GraphicsFillClosedCurve|GDIPlus_GraphicsFillEllipse|GDIPlus_GraphicsFillPie|GDIPlus_GraphicsFillRect|GDIPlus_GraphicsGetDC|GDIPlus_GraphicsGetSmoothingMode|GDIPlus_GraphicsMeasureString|GDIPlus_GraphicsReleaseDC|GDIPlus_GraphicsSetSmoothingMode|GDIPlus_GraphicsSetTransform|GDIPlus_ImageDispose|GDIPlus_ImageGetGraphicsContext|GDIPlus_ImageGetHeight|GDIPlus_ImageGetWidth|GDIPlus_ImageLoadFromFile|GDIPlus_ImageSaveToFile|GDIPlus_ImageSaveToFileEx|GDIPlus_MatrixCreate|GDIPlus_MatrixDispose|GDIPlus_MatrixRotate|GDIPlus_ParamAdd|GDIPlus_ParamInit|GDIPlus_PenCreate|GDIPlus_PenDispose|GDIPlus_PenGetAlignment|GDIPlus_PenGetColor|GDIPlus_PenGetCustomEndCap|GDIPlus_PenGetDashCap|GDIPlus_PenGetDashStyle|GDIPlus_PenGetEndCap|GDIPlus_PenGetWidth|GDIPlus_PenSetAlignment|GDIPlus_PenSetColor|GDIPlus_PenSetCustomEndCap|GDIPlus_PenSetDashCap|GDIPlus_PenSetDashStyle|GDIPlus_PenSetEndCap|GDIPlus_PenSetWidth|GDIPlus_RectFCreate|GDIPlus_Shutdown|GDIPlus_Startup|GDIPlus_StringFormatCreate|GDIPlus_StringFormatDispose|GetIP|GUICtrlAVI_Close|GUICtrlAVI_Create|GUICtrlAVI_Destroy|GUICtrlAVI_Open|GUICtrlAVI_OpenEx|GUICtrlAVI_Play|GUICtrlAVI_Seek|GUICtrlAVI_Show|GUICtrlAVI_Stop|GUICtrlButton_Click|GUICtrlButton_Create|GUICtrlButton_Destroy|GUICtrlButton_Enable|GUICtrlButton_GetCheck|GUICtrlButton_GetFocus|GUICtrlButton_GetIdealSize|GUICtrlButton_GetImage|GUICtrlButton_GetImageList|GUICtrlButton_GetState|GUICtrlButton_GetText|GUICtrlButton_GetTextMargin|GUICtrlButton_SetCheck|GUICtrlButton_SetFocus|GUICtrlButton_SetImage|GUICtrlButton_SetImageList|GUICtrlButton_SetSize|GUICtrlButton_SetState|GUICtrlButton_SetStyle|GUICtrlButton_SetText|GUICtrlButton_SetTextMargin|GUICtrlButton_Show|GUICtrlComboBox_AddDir|GUICtrlComboBox_AddString|GUICtrlComboBox_AutoComplete|GUICtrlComboBox_BeginUpdate|GUICtrlComboBox_Create|GUICtrlComboBox_DeleteString|GUICtrlComboBox_Destroy|GUICtrlComboBox_EndUpdate|GUICtrlComboBox_FindString|GUICtrlComboBox_FindStringExact|GUICtrlComboBox_GetComboBoxInfo|GUICtrlComboBox_GetCount|GUICtrlComboBox_GetCurSel|GUICtrlComboBox_GetDroppedControlRect|GUICtrlComboBox_GetDroppedControlRectEx|GUICtrlComboBox_GetDroppedState|GUICtrlComboBox_GetDroppedWidth|GUICtrlComboBox_GetEditSel|GUICtrlComboBox_GetEditText|GUICtrlComboBox_GetExtendedUI|GUICtrlComboBox_GetHorizontalExtent|GUICtrlComboBox_GetItemHeight|GUICtrlComboBox_GetLBText|GUICtrlComboBox_GetLBTextLen|GUICtrlComboBox_GetList|GUICtrlComboBox_GetListArray|GUICtrlComboBox_GetLocale|GUICtrlComboBox_GetLocaleCountry|GUICtrlComboBox_GetLocaleLang|GUICtrlComboBox_GetLocalePrimLang|GUICtrlComboBox_GetLocaleSubLang|GUICtrlComboBox_GetMinVisible|GUICtrlComboBox_GetTopIndex|GUICtrlComboBox_InitStorage|GUICtrlComboBox_InsertString|GUICtrlComboBox_LimitText|GUICtrlComboBox_ReplaceEditSel|GUICtrlComboBox_ResetContent|GUICtrlComboBox_SelectString|GUICtrlComboBox_SetCurSel|GUICtrlComboBox_SetDroppedWidth|GUICtrlComboBox_SetEditSel|GUICtrlComboBox_SetEditText|GUICtrlComboBox_SetExtendedUI|GUICtrlComboBox_SetHorizontalExtent|GUICtrlComboBox_SetItemHeight|GUICtrlComboBox_SetMinVisible|GUICtrlComboBox_SetTopIndex|GUICtrlComboBox_ShowDropDown|GUICtrlComboBoxEx_AddDir|GUICtrlComboBoxEx_AddString|GUICtrlComboBoxEx_BeginUpdate|GUICtrlComboBoxEx_Create|GUICtrlComboBoxEx_CreateSolidBitMap|GUICtrlComboBoxEx_DeleteString|GUICtrlComboBoxEx_Destroy|GUICtrlComboBoxEx_EndUpdate|GUICtrlComboBoxEx_FindStringExact|GUICtrlComboBoxEx_GetComboBoxInfo|GUICtrlComboBoxEx_GetComboControl|GUICtrlComboBoxEx_GetCount|GUICtrlComboBoxEx_GetCurSel|GUICtrlComboBoxEx_GetDroppedControlRect|GUICtrlComboBoxEx_GetDroppedControlRectEx|GUICtrlComboBoxEx_GetDroppedState|GUICtrlComboBoxEx_GetDroppedWidth|GUICtrlComboBoxEx_GetEditControl|GUICtrlComboBoxEx_GetEditSel|GUICtrlComboBoxEx_GetEditText|GUICtrlComboBoxEx_GetExtendedStyle|GUICtrlComboBoxEx_GetExtendedUI|GUICtrlComboBoxEx_GetImageList|GUICtrlComboBoxEx_GetItem|GUICtrlComboBoxEx_GetItemEx|GUICtrlComboBoxEx_GetItemHeight|GUICtrlComboBoxEx_GetItemImage|GUICtrlComboBoxEx_GetItemIndent|GUICtrlComboBoxEx_GetItemOverlayImage|GUICtrlComboBoxEx_GetItemParam|GUICtrlComboBoxEx_GetItemSelectedImage|GUICtrlComboBoxEx_GetItemText|GUICtrlComboBoxEx_GetItemTextLen|GUICtrlComboBoxEx_GetList|GUICtrlComboBoxEx_GetListArray|GUICtrlComboBoxEx_GetLocale|GUICtrlComboBoxEx_GetLocaleCountry|GUICtrlComboBoxEx_GetLocaleLang|GUICtrlComboBoxEx_GetLocalePrimLang|GUICtrlComboBoxEx_GetLocaleSubLang|GUICtrlComboBoxEx_GetMinVisible|GUICtrlComboBoxEx_GetTopIndex|GUICtrlComboBoxEx_InitStorage|GUICtrlComboBoxEx_InsertString|GUICtrlComboBoxEx_LimitText|GUICtrlComboBoxEx_ReplaceEditSel|GUICtrlComboBoxEx_ResetContent|GUICtrlComboBoxEx_SetCurSel|GUICtrlComboBoxEx_SetDroppedWidth|GUICtrlComboBoxEx_SetEditSel|GUICtrlComboBoxEx_SetEditText|GUICtrlComboBoxEx_SetExtendedStyle|GUICtrlComboBoxEx_SetExtendedUI|GUICtrlComboBoxEx_SetImageList|GUICtrlComboBoxEx_SetItem|GUICtrlComboBoxEx_SetItemEx|GUICtrlComboBoxEx_SetItemHeight|GUICtrlComboBoxEx_SetItemImage|GUICtrlComboBoxEx_SetItemIndent|GUICtrlComboBoxEx_SetItemOverlayImage|GUICtrlComboBoxEx_SetItemParam|GUICtrlComboBoxEx_SetItemSelectedImage|GUICtrlComboBoxEx_SetMinVisible|GUICtrlComboBoxEx_SetTopIndex|GUICtrlComboBoxEx_ShowDropDown|GUICtrlDTP_Create|GUICtrlDTP_Destroy|GUICtrlDTP_GetMCColor|GUICtrlDTP_GetMCFont|GUICtrlDTP_GetMonthCal|GUICtrlDTP_GetRange|GUICtrlDTP_GetRangeEx|GUICtrlDTP_GetSystemTime|GUICtrlDTP_GetSystemTimeEx|GUICtrlDTP_SetFormat|GUICtrlDTP_SetMCColor|GUICtrlDTP_SetMCFont|GUICtrlDTP_SetRange|GUICtrlDTP_SetRangeEx|GUICtrlDTP_SetSystemTime|GUICtrlDTP_SetSystemTimeEx|GUICtrlEdit_AppendText|GUICtrlEdit_BeginUpdate|GUICtrlEdit_CanUndo|GUICtrlEdit_CharFromPos|GUICtrlEdit_Create|GUICtrlEdit_Destroy|GUICtrlEdit_EmptyUndoBuffer|GUICtrlEdit_EndUpdate|GUICtrlEdit_Find|GUICtrlEdit_FmtLines|GUICtrlEdit_GetFirstVisibleLine|GUICtrlEdit_GetLimitText|GUICtrlEdit_GetLine|GUICtrlEdit_GetLineCount|GUICtrlEdit_GetMargins|GUICtrlEdit_GetModify|GUICtrlEdit_GetPasswordChar|GUICtrlEdit_GetRECT|GUICtrlEdit_GetRECTEx|GUICtrlEdit_GetSel|GUICtrlEdit_GetText|GUICtrlEdit_GetTextLen|GUICtrlEdit_HideBalloonTip|GUICtrlEdit_InsertText|GUICtrlEdit_LineFromChar|GUICtrlEdit_LineIndex|GUICtrlEdit_LineLength|GUICtrlEdit_LineScroll|GUICtrlEdit_PosFromChar|GUICtrlEdit_ReplaceSel|GUICtrlEdit_Scroll|GUICtrlEdit_SetLimitText|GUICtrlEdit_SetMargins|GUICtrlEdit_SetModify|GUICtrlEdit_SetPasswordChar|GUICtrlEdit_SetReadOnly|GUICtrlEdit_SetRECT|GUICtrlEdit_SetRECTEx|GUICtrlEdit_SetRECTNP|GUICtrlEdit_SetRectNPEx|GUICtrlEdit_SetSel|GUICtrlEdit_SetTabStops|GUICtrlEdit_SetText|GUICtrlEdit_ShowBalloonTip|GUICtrlEdit_Undo|GUICtrlHeader_AddItem|GUICtrlHeader_ClearFilter|GUICtrlHeader_ClearFilterAll|GUICtrlHeader_Create|GUICtrlHeader_CreateDragImage|GUICtrlHeader_DeleteItem|GUICtrlHeader_Destroy|GUICtrlHeader_EditFilter|GUICtrlHeader_GetBitmapMargin|GUICtrlHeader_GetImageList|GUICtrlHeader_GetItem|GUICtrlHeader_GetItemAlign|GUICtrlHeader_GetItemBitmap|GUICtrlHeader_GetItemCount|GUICtrlHeader_GetItemDisplay|GUICtrlHeader_GetItemFlags|GUICtrlHeader_GetItemFormat|GUICtrlHeader_GetItemImage|GUICtrlHeader_GetItemOrder|GUICtrlHeader_GetItemParam|GUICtrlHeader_GetItemRect|GUICtrlHeader_GetItemRectEx|GUICtrlHeader_GetItemText|GUICtrlHeader_GetItemWidth|GUICtrlHeader_GetOrderArray|GUICtrlHeader_GetUnicodeFormat|GUICtrlHeader_HitTest|GUICtrlHeader_InsertItem|GUICtrlHeader_Layout|GUICtrlHeader_OrderToIndex|GUICtrlHeader_SetBitmapMargin|GUICtrlHeader_SetFilterChangeTimeout|GUICtrlHeader_SetHotDivider|GUICtrlHeader_SetImageList|GUICtrlHeader_SetItem|GUICtrlHeader_SetItemAlign|GUICtrlHeader_SetItemBitmap|GUICtrlHeader_SetItemDisplay|GUICtrlHeader_SetItemFlags|GUICtrlHeader_SetItemFormat|GUICtrlHeader_SetItemImage|GUICtrlHeader_SetItemOrder|GUICtrlHeader_SetItemParam|GUICtrlHeader_SetItemText|GUICtrlHeader_SetItemWidth|GUICtrlHeader_SetOrderArray|GUICtrlHeader_SetUnicodeFormat|GUICtrlIpAddress_ClearAddress|GUICtrlIpAddress_Create|GUICtrlIpAddress_Destroy|GUICtrlIpAddress_Get|GUICtrlIpAddress_GetArray|GUICtrlIpAddress_GetEx|GUICtrlIpAddress_IsBlank|GUICtrlIpAddress_Set|GUICtrlIpAddress_SetArray|GUICtrlIpAddress_SetEx|GUICtrlIpAddress_SetFocus|GUICtrlIpAddress_SetFont|GUICtrlIpAddress_SetRange|GUICtrlIpAddress_ShowHide|GUICtrlListBox_AddFile|GUICtrlListBox_AddString|GUICtrlListBox_BeginUpdate|GUICtrlListBox_Create|GUICtrlListBox_DeleteString|GUICtrlListBox_Destroy|GUICtrlListBox_Dir|GUICtrlListBox_EndUpdate|GUICtrlListBox_FindInText|GUICtrlListBox_FindString|GUICtrlListBox_GetAnchorIndex|GUICtrlListBox_GetCaretIndex|GUICtrlListBox_GetCount|GUICtrlListBox_GetCurSel|GUICtrlListBox_GetHorizontalExtent|GUICtrlListBox_GetItemData|GUICtrlListBox_GetItemHeight|GUICtrlListBox_GetItemRect|GUICtrlListBox_GetItemRectEx|GUICtrlListBox_GetListBoxInfo|GUICtrlListBox_GetLocale|GUICtrlListBox_GetLocaleCountry|GUICtrlListBox_GetLocaleLang|GUICtrlListBox_GetLocalePrimLang|GUICtrlListBox_GetLocaleSubLang|GUICtrlListBox_GetSel|GUICtrlListBox_GetSelCount|GUICtrlListBox_GetSelItems|GUICtrlListBox_GetSelItemsText|GUICtrlListBox_GetText|GUICtrlListBox_GetTextLen|GUICtrlListBox_GetTopIndex|GUICtrlListBox_InitStorage|GUICtrlListBox_InsertString|GUICtrlListBox_ItemFromPoint|GUICtrlListBox_ReplaceString|GUICtrlListBox_ResetContent|GUICtrlListBox_SelectString|GUICtrlListBox_SelItemRange|GUICtrlListBox_SelItemRangeEx|GUICtrlListBox_SetAnchorIndex|GUICtrlListBox_SetCaretIndex|GUICtrlListBox_SetColumnWidth|GUICtrlListBox_SetCurSel|GUICtrlListBox_SetHorizontalExtent|GUICtrlListBox_SetItemData|GUICtrlListBox_SetItemHeight|GUICtrlListBox_SetLocale|GUICtrlListBox_SetSel|GUICtrlListBox_SetTabStops|GUICtrlListBox_SetTopIndex|GUICtrlListBox_Sort|GUICtrlListBox_SwapString|GUICtrlListBox_UpdateHScroll|GUICtrlListView_AddArray|GUICtrlListView_AddColumn|GUICtrlListView_AddItem|GUICtrlListView_AddSubItem|GUICtrlListView_ApproximateViewHeight|GUICtrlListView_ApproximateViewRect|GUICtrlListView_ApproximateViewWidth|GUICtrlListView_Arrange|GUICtrlListView_BeginUpdate|GUICtrlListView_CancelEditLabel|GUICtrlListView_ClickItem|GUICtrlListView_CopyItems|GUICtrlListView_Create|GUICtrlListView_CreateDragImage|GUICtrlListView_CreateSolidBitMap|GUICtrlListView_DeleteAllItems|GUICtrlListView_DeleteColumn|GUICtrlListView_DeleteItem|GUICtrlListView_DeleteItemsSelected|GUICtrlListView_Destroy|GUICtrlListView_DrawDragImage|GUICtrlListView_EditLabel|GUICtrlListView_EnableGroupView|GUICtrlListView_EndUpdate|GUICtrlListView_EnsureVisible|GUICtrlListView_FindInText|GUICtrlListView_FindItem|GUICtrlListView_FindNearest|GUICtrlListView_FindParam|GUICtrlListView_FindText|GUICtrlListView_GetBkColor|GUICtrlListView_GetBkImage|GUICtrlListView_GetCallbackMask|GUICtrlListView_GetColumn|GUICtrlListView_GetColumnCount|GUICtrlListView_GetColumnOrder|GUICtrlListView_GetColumnOrderArray|GUICtrlListView_GetColumnWidth|GUICtrlListView_GetCounterPage|GUICtrlListView_GetEditControl|GUICtrlListView_GetExtendedListViewStyle|GUICtrlListView_GetGroupInfo|GUICtrlListView_GetGroupViewEnabled|GUICtrlListView_GetHeader|GUICtrlListView_GetHotCursor|GUICtrlListView_GetHotItem|GUICtrlListView_GetHoverTime|GUICtrlListView_GetImageList|GUICtrlListView_GetISearchString|GUICtrlListView_GetItem|GUICtrlListView_GetItemChecked|GUICtrlListView_GetItemCount|GUICtrlListView_GetItemCut|GUICtrlListView_GetItemDropHilited|GUICtrlListView_GetItemEx|GUICtrlListView_GetItemFocused|GUICtrlListView_GetItemGroupID|GUICtrlListView_GetItemImage|GUICtrlListView_GetItemIndent|GUICtrlListView_GetItemParam|GUICtrlListView_GetItemPosition|GUICtrlListView_GetItemPositionX|GUICtrlListView_GetItemPositionY|GUICtrlListView_GetItemRect|GUICtrlListView_GetItemRectEx|GUICtrlListView_GetItemSelected|GUICtrlListView_GetItemSpacing|GUICtrlListView_GetItemSpacingX|GUICtrlListView_GetItemSpacingY|GUICtrlListView_GetItemState|GUICtrlListView_GetItemStateImage|GUICtrlListView_GetItemText|GUICtrlListView_GetItemTextArray|GUICtrlListView_GetItemTextString|GUICtrlListView_GetNextItem|GUICtrlListView_GetNumberOfWorkAreas|GUICtrlListView_GetOrigin|GUICtrlListView_GetOriginX|GUICtrlListView_GetOriginY|GUICtrlListView_GetOutlineColor|GUICtrlListView_GetSelectedColumn|GUICtrlListView_GetSelectedCount|GUICtrlListView_GetSelectedIndices|GUICtrlListView_GetSelectionMark|GUICtrlListView_GetStringWidth|GUICtrlListView_GetSubItemRect|GUICtrlListView_GetTextBkColor|GUICtrlListView_GetTextColor|GUICtrlListView_GetToolTips|GUICtrlListView_GetTopIndex|GUICtrlListView_GetUnicodeFormat|GUICtrlListView_GetView|GUICtrlListView_GetViewDetails|GUICtrlListView_GetViewLarge|GUICtrlListView_GetViewList|GUICtrlListView_GetViewRect|GUICtrlListView_GetViewSmall|GUICtrlListView_GetViewTile|GUICtrlListView_HideColumn|GUICtrlListView_HitTest|GUICtrlListView_InsertColumn|GUICtrlListView_InsertGroup|GUICtrlListView_InsertItem|GUICtrlListView_JustifyColumn|GUICtrlListView_MapIDToIndex|GUICtrlListView_MapIndexToID|GUICtrlListView_RedrawItems|GUICtrlListView_RegisterSortCallBack|GUICtrlListView_RemoveAllGroups|GUICtrlListView_RemoveGroup|GUICtrlListView_Scroll|GUICtrlListView_SetBkColor|GUICtrlListView_SetBkImage|GUICtrlListView_SetCallBackMask|GUICtrlListView_SetColumn|GUICtrlListView_SetColumnOrder|GUICtrlListView_SetColumnOrderArray|GUICtrlListView_SetColumnWidth|GUICtrlListView_SetExtendedListViewStyle|GUICtrlListView_SetGroupInfo|GUICtrlListView_SetHotItem|GUICtrlListView_SetHoverTime|GUICtrlListView_SetIconSpacing|GUICtrlListView_SetImageList|GUICtrlListView_SetItem|GUICtrlListView_SetItemChecked|GUICtrlListView_SetItemCount|GUICtrlListView_SetItemCut|GUICtrlListView_SetItemDropHilited|GUICtrlListView_SetItemEx|GUICtrlListView_SetItemFocused|GUICtrlListView_SetItemGroupID|GUICtrlListView_SetItemImage|GUICtrlListView_SetItemIndent|GUICtrlListView_SetItemParam|GUICtrlListView_SetItemPosition|GUICtrlListView_SetItemPosition32|GUICtrlListView_SetItemSelected|GUICtrlListView_SetItemState|GUICtrlListView_SetItemStateImage|GUICtrlListView_SetItemText|GUICtrlListView_SetOutlineColor|GUICtrlListView_SetSelectedColumn|GUICtrlListView_SetSelectionMark|GUICtrlListView_SetTextBkColor|GUICtrlListView_SetTextColor|GUICtrlListView_SetToolTips|GUICtrlListView_SetUnicodeFormat|GUICtrlListView_SetView|GUICtrlListView_SetWorkAreas|GUICtrlListView_SimpleSort|GUICtrlListView_SortItems|GUICtrlListView_SubItemHitTest|GUICtrlListView_UnRegisterSortCallBack|GUICtrlMenu_AddMenuItem|GUICtrlMenu_AppendMenu|GUICtrlMenu_CheckMenuItem|GUICtrlMenu_CheckRadioItem|GUICtrlMenu_CreateMenu|GUICtrlMenu_CreatePopup|GUICtrlMenu_DeleteMenu|GUICtrlMenu_DestroyMenu|GUICtrlMenu_DrawMenuBar|GUICtrlMenu_EnableMenuItem|GUICtrlMenu_FindItem|GUICtrlMenu_FindParent|GUICtrlMenu_GetItemBmp|GUICtrlMenu_GetItemBmpChecked|GUICtrlMenu_GetItemBmpUnchecked|GUICtrlMenu_GetItemChecked|GUICtrlMenu_GetItemCount|GUICtrlMenu_GetItemData|GUICtrlMenu_GetItemDefault|GUICtrlMenu_GetItemDisabled|GUICtrlMenu_GetItemEnabled|GUICtrlMenu_GetItemGrayed|GUICtrlMenu_GetItemHighlighted|GUICtrlMenu_GetItemID|GUICtrlMenu_GetItemInfo|GUICtrlMenu_GetItemRect|GUICtrlMenu_GetItemRectEx|GUICtrlMenu_GetItemState|GUICtrlMenu_GetItemStateEx|GUICtrlMenu_GetItemSubMenu|GUICtrlMenu_GetItemText|GUICtrlMenu_GetItemType|GUICtrlMenu_GetMenu|GUICtrlMenu_GetMenuBackground|GUICtrlMenu_GetMenuBarInfo|GUICtrlMenu_GetMenuContextHelpID|GUICtrlMenu_GetMenuData|GUICtrlMenu_GetMenuDefaultItem|GUICtrlMenu_GetMenuHeight|GUICtrlMenu_GetMenuInfo|GUICtrlMenu_GetMenuStyle|GUICtrlMenu_GetSystemMenu|GUICtrlMenu_InsertMenuItem|GUICtrlMenu_InsertMenuItemEx|GUICtrlMenu_IsMenu|GUICtrlMenu_LoadMenu|GUICtrlMenu_MapAccelerator|GUICtrlMenu_MenuItemFromPoint|GUICtrlMenu_RemoveMenu|GUICtrlMenu_SetItemBitmaps|GUICtrlMenu_SetItemBmp|GUICtrlMenu_SetItemBmpChecked|GUICtrlMenu_SetItemBmpUnchecked|GUICtrlMenu_SetItemChecked|GUICtrlMenu_SetItemData|GUICtrlMenu_SetItemDefault|GUICtrlMenu_SetItemDisabled|GUICtrlMenu_SetItemEnabled|GUICtrlMenu_SetItemGrayed|GUICtrlMenu_SetItemHighlighted|GUICtrlMenu_SetItemID|GUICtrlMenu_SetItemInfo|GUICtrlMenu_SetItemState|GUICtrlMenu_SetItemSubMenu|GUICtrlMenu_SetItemText|GUICtrlMenu_SetItemType|GUICtrlMenu_SetMenu|GUICtrlMenu_SetMenuBackground|GUICtrlMenu_SetMenuContextHelpID|GUICtrlMenu_SetMenuData|GUICtrlMenu_SetMenuDefaultItem|GUICtrlMenu_SetMenuHeight|GUICtrlMenu_SetMenuInfo|GUICtrlMenu_SetMenuStyle|GUICtrlMenu_TrackPopupMenu|GUICtrlMonthCal_Create|GUICtrlMonthCal_Destroy|GUICtrlMonthCal_GetColor|GUICtrlMonthCal_GetColorArray|GUICtrlMonthCal_GetCurSel|GUICtrlMonthCal_GetCurSelStr|GUICtrlMonthCal_GetFirstDOW|GUICtrlMonthCal_GetFirstDOWStr|GUICtrlMonthCal_GetMaxSelCount|GUICtrlMonthCal_GetMaxTodayWidth|GUICtrlMonthCal_GetMinReqHeight|GUICtrlMonthCal_GetMinReqRect|GUICtrlMonthCal_GetMinReqRectArray|GUICtrlMonthCal_GetMinReqWidth|GUICtrlMonthCal_GetMonthDelta|GUICtrlMonthCal_GetMonthRange|GUICtrlMonthCal_GetMonthRangeMax|GUICtrlMonthCal_GetMonthRangeMaxStr|GUICtrlMonthCal_GetMonthRangeMin|GUICtrlMonthCal_GetMonthRangeMinStr|GUICtrlMonthCal_GetMonthRangeSpan|GUICtrlMonthCal_GetRange|GUICtrlMonthCal_GetRangeMax|GUICtrlMonthCal_GetRangeMaxStr|GUICtrlMonthCal_GetRangeMin|GUICtrlMonthCal_GetRangeMinStr|GUICtrlMonthCal_GetSelRange|GUICtrlMonthCal_GetSelRangeMax|GUICtrlMonthCal_GetSelRangeMaxStr|GUICtrlMonthCal_GetSelRangeMin|GUICtrlMonthCal_GetSelRangeMinStr|GUICtrlMonthCal_GetToday|GUICtrlMonthCal_GetTodayStr|GUICtrlMonthCal_GetUnicodeFormat|GUICtrlMonthCal_HitTest|GUICtrlMonthCal_SetColor|GUICtrlMonthCal_SetCurSel|GUICtrlMonthCal_SetDayState|GUICtrlMonthCal_SetFirstDOW|GUICtrlMonthCal_SetMaxSelCount|GUICtrlMonthCal_SetMonthDelta|GUICtrlMonthCal_SetRange|GUICtrlMonthCal_SetSelRange|GUICtrlMonthCal_SetToday|GUICtrlMonthCal_SetUnicodeFormat|GUICtrlRebar_AddBand|GUICtrlRebar_AddToolBarBand|GUICtrlRebar_BeginDrag|GUICtrlRebar_Create|GUICtrlRebar_DeleteBand|GUICtrlRebar_Destroy|GUICtrlRebar_DragMove|GUICtrlRebar_EndDrag|GUICtrlRebar_GetBandBackColor|GUICtrlRebar_GetBandBorders|GUICtrlRebar_GetBandBordersEx|GUICtrlRebar_GetBandChildHandle|GUICtrlRebar_GetBandChildSize|GUICtrlRebar_GetBandCount|GUICtrlRebar_GetBandForeColor|GUICtrlRebar_GetBandHeaderSize|GUICtrlRebar_GetBandID|GUICtrlRebar_GetBandIdealSize|GUICtrlRebar_GetBandLength|GUICtrlRebar_GetBandLParam|GUICtrlRebar_GetBandMargins|GUICtrlRebar_GetBandMarginsEx|GUICtrlRebar_GetBandRect|GUICtrlRebar_GetBandRectEx|GUICtrlRebar_GetBandStyle|GUICtrlRebar_GetBandStyleBreak|GUICtrlRebar_GetBandStyleChildEdge|GUICtrlRebar_GetBandStyleFixedBMP|GUICtrlRebar_GetBandStyleFixedSize|GUICtrlRebar_GetBandStyleGripperAlways|GUICtrlRebar_GetBandStyleHidden|GUICtrlRebar_GetBandStyleHideTitle|GUICtrlRebar_GetBandStyleNoGripper|GUICtrlRebar_GetBandStyleTopAlign|GUICtrlRebar_GetBandStyleUseChevron|GUICtrlRebar_GetBandStyleVariableHeight|GUICtrlRebar_GetBandText|GUICtrlRebar_GetBarHeight|GUICtrlRebar_GetBKColor|GUICtrlRebar_GetColorScheme|GUICtrlRebar_GetRowCount|GUICtrlRebar_GetRowHeight|GUICtrlRebar_GetTextColor|GUICtrlRebar_GetToolTips|GUICtrlRebar_GetUnicodeFormat|GUICtrlRebar_HitTest|GUICtrlRebar_IDToIndex|GUICtrlRebar_MaximizeBand|GUICtrlRebar_MinimizeBand|GUICtrlRebar_MoveBand|GUICtrlRebar_SetBandBackColor|GUICtrlRebar_SetBandForeColor|GUICtrlRebar_SetBandHeaderSize|GUICtrlRebar_SetBandID|GUICtrlRebar_SetBandIdealSize|GUICtrlRebar_SetBandLength|GUICtrlRebar_SetBandLParam|GUICtrlRebar_SetBandStyle|GUICtrlRebar_SetBandStyleBreak|GUICtrlRebar_SetBandStyleChildEdge|GUICtrlRebar_SetBandStyleFixedBMP|GUICtrlRebar_SetBandStyleFixedSize|GUICtrlRebar_SetBandStyleGripperAlways|GUICtrlRebar_SetBandStyleHidden|GUICtrlRebar_SetBandStyleHideTitle|GUICtrlRebar_SetBandStyleNoGripper|GUICtrlRebar_SetBandStyleTopAlign|GUICtrlRebar_SetBandStyleUseChevron|GUICtrlRebar_SetBandStyleVariableHeight|GUICtrlRebar_SetBandText|GUICtrlRebar_SetBKColor|GUICtrlRebar_SetColorScheme|GUICtrlRebar_SetTextColor|GUICtrlRebar_SetToolTips|GUICtrlRebar_SetUnicodeFormat|GUICtrlRebar_ShowBand|GUICtrlSlider_ClearSel|GUICtrlSlider_ClearTics|GUICtrlSlider_Create|GUICtrlSlider_Destroy|GUICtrlSlider_GetBuddy|GUICtrlSlider_GetChannelRect|GUICtrlSlider_GetLineSize|GUICtrlSlider_GetNumTics|GUICtrlSlider_GetPageSize|GUICtrlSlider_GetPos|GUICtrlSlider_GetPTics|GUICtrlSlider_GetRange|GUICtrlSlider_GetRangeMax|GUICtrlSlider_GetRangeMin|GUICtrlSlider_GetSel|GUICtrlSlider_GetSelEnd|GUICtrlSlider_GetSelStart|GUICtrlSlider_GetThumbLength|GUICtrlSlider_GetThumbRect|GUICtrlSlider_GetThumbRectEx|GUICtrlSlider_GetTic|GUICtrlSlider_GetTicPos|GUICtrlSlider_GetToolTips|GUICtrlSlider_GetUnicodeFormat|GUICtrlSlider_SetBuddy|GUICtrlSlider_SetLineSize|GUICtrlSlider_SetPageSize|GUICtrlSlider_SetPos|GUICtrlSlider_SetRange|GUICtrlSlider_SetRangeMax|GUICtrlSlider_SetRangeMin|GUICtrlSlider_SetSel|GUICtrlSlider_SetSelEnd|GUICtrlSlider_SetSelStart|GUICtrlSlider_SetThumbLength|GUICtrlSlider_SetTic|GUICtrlSlider_SetTicFreq|GUICtrlSlider_SetTipSide|GUICtrlSlider_SetToolTips|GUICtrlSlider_SetUnicodeFormat|GUICtrlStatusBar_Create|GUICtrlStatusBar_Destroy|GUICtrlStatusBar_EmbedControl|GUICtrlStatusBar_GetBorders|GUICtrlStatusBar_GetBordersHorz|GUICtrlStatusBar_GetBordersRect|GUICtrlStatusBar_GetBordersVert|GUICtrlStatusBar_GetCount|GUICtrlStatusBar_GetHeight|GUICtrlStatusBar_GetIcon|GUICtrlStatusBar_GetParts|GUICtrlStatusBar_GetRect|GUICtrlStatusBar_GetRectEx|GUICtrlStatusBar_GetText|GUICtrlStatusBar_GetTextFlags|GUICtrlStatusBar_GetTextLength|GUICtrlStatusBar_GetTextLengthEx|GUICtrlStatusBar_GetTipText|GUICtrlStatusBar_GetUnicodeFormat|GUICtrlStatusBar_GetWidth|GUICtrlStatusBar_IsSimple|GUICtrlStatusBar_Resize|GUICtrlStatusBar_SetBkColor|GUICtrlStatusBar_SetIcon|GUICtrlStatusBar_SetMinHeight|GUICtrlStatusBar_SetParts|GUICtrlStatusBar_SetSimple|GUICtrlStatusBar_SetText|GUICtrlStatusBar_SetTipText|GUICtrlStatusBar_SetUnicodeFormat|GUICtrlStatusBar_ShowHide|GUICtrlTab_Create|GUICtrlTab_DeleteAllItems|GUICtrlTab_DeleteItem|GUICtrlTab_DeselectAll|GUICtrlTab_Destroy|GUICtrlTab_FindTab|GUICtrlTab_GetCurFocus|GUICtrlTab_GetCurSel|GUICtrlTab_GetDisplayRect|GUICtrlTab_GetDisplayRectEx|GUICtrlTab_GetExtendedStyle|GUICtrlTab_GetImageList|GUICtrlTab_GetItem|GUICtrlTab_GetItemCount|GUICtrlTab_GetItemImage|GUICtrlTab_GetItemParam|GUICtrlTab_GetItemRect|GUICtrlTab_GetItemRectEx|GUICtrlTab_GetItemState|GUICtrlTab_GetItemText|GUICtrlTab_GetRowCount|GUICtrlTab_GetToolTips|GUICtrlTab_GetUnicodeFormat|GUICtrlTab_HighlightItem|GUICtrlTab_HitTest|GUICtrlTab_InsertItem|GUICtrlTab_RemoveImage|GUICtrlTab_SetCurFocus|GUICtrlTab_SetCurSel|GUICtrlTab_SetExtendedStyle|GUICtrlTab_SetImageList|GUICtrlTab_SetItem|GUICtrlTab_SetItemImage|GUICtrlTab_SetItemParam|GUICtrlTab_SetItemSize|GUICtrlTab_SetItemState|GUICtrlTab_SetItemText|GUICtrlTab_SetMinTabWidth|GUICtrlTab_SetPadding|GUICtrlTab_SetToolTips|GUICtrlTab_SetUnicodeFormat|GUICtrlToolbar_AddBitmap|GUICtrlToolbar_AddButton|GUICtrlToolbar_AddButtonSep|GUICtrlToolbar_AddString|GUICtrlToolbar_ButtonCount|GUICtrlToolbar_CheckButton|GUICtrlToolbar_ClickAccel|GUICtrlToolbar_ClickButton|GUICtrlToolbar_ClickIndex|GUICtrlToolbar_CommandToIndex|GUICtrlToolbar_Create|GUICtrlToolbar_Customize|GUICtrlToolbar_DeleteButton|GUICtrlToolbar_Destroy|GUICtrlToolbar_EnableButton|GUICtrlToolbar_FindToolbar|GUICtrlToolbar_GetAnchorHighlight|GUICtrlToolbar_GetBitmapFlags|GUICtrlToolbar_GetButtonBitmap|GUICtrlToolbar_GetButtonInfo|GUICtrlToolbar_GetButtonInfoEx|GUICtrlToolbar_GetButtonParam|GUICtrlToolbar_GetButtonRect|GUICtrlToolbar_GetButtonRectEx|GUICtrlToolbar_GetButtonSize|GUICtrlToolbar_GetButtonState|GUICtrlToolbar_GetButtonStyle|GUICtrlToolbar_GetButtonText|GUICtrlToolbar_GetColorScheme|GUICtrlToolbar_GetDisabledImageList|GUICtrlToolbar_GetExtendedStyle|GUICtrlToolbar_GetHotImageList|GUICtrlToolbar_GetHotItem|GUICtrlToolbar_GetImageList|GUICtrlToolbar_GetInsertMark|GUICtrlToolbar_GetInsertMarkColor|GUICtrlToolbar_GetMaxSize|GUICtrlToolbar_GetMetrics|GUICtrlToolbar_GetPadding|GUICtrlToolbar_GetRows|GUICtrlToolbar_GetString|GUICtrlToolbar_GetStyle|GUICtrlToolbar_GetStyleAltDrag|GUICtrlToolbar_GetStyleCustomErase|GUICtrlToolbar_GetStyleFlat|GUICtrlToolbar_GetStyleList|GUICtrlToolbar_GetStyleRegisterDrop|GUICtrlToolbar_GetStyleToolTips|GUICtrlToolbar_GetStyleTransparent|GUICtrlToolbar_GetStyleWrapable|GUICtrlToolbar_GetTextRows|GUICtrlToolbar_GetToolTips|GUICtrlToolbar_GetUnicodeFormat|GUICtrlToolbar_HideButton|GUICtrlToolbar_HighlightButton|GUICtrlToolbar_HitTest|GUICtrlToolbar_IndexToCommand|GUICtrlToolbar_InsertButton|GUICtrlToolbar_InsertMarkHitTest|GUICtrlToolbar_IsButtonChecked|GUICtrlToolbar_IsButtonEnabled|GUICtrlToolbar_IsButtonHidden|GUICtrlToolbar_IsButtonHighlighted|GUICtrlToolbar_IsButtonIndeterminate|GUICtrlToolbar_IsButtonPressed|GUICtrlToolbar_LoadBitmap|GUICtrlToolbar_LoadImages|GUICtrlToolbar_MapAccelerator|GUICtrlToolbar_MoveButton|GUICtrlToolbar_PressButton|GUICtrlToolbar_SetAnchorHighlight|GUICtrlToolbar_SetBitmapSize|GUICtrlToolbar_SetButtonBitMap|GUICtrlToolbar_SetButtonInfo|GUICtrlToolbar_SetButtonInfoEx|GUICtrlToolbar_SetButtonParam|GUICtrlToolbar_SetButtonSize|GUICtrlToolbar_SetButtonState|GUICtrlToolbar_SetButtonStyle|GUICtrlToolbar_SetButtonText|GUICtrlToolbar_SetButtonWidth|GUICtrlToolbar_SetCmdID|GUICtrlToolbar_SetColorScheme|GUICtrlToolbar_SetDisabledImageList|GUICtrlToolbar_SetDrawTextFlags|GUICtrlToolbar_SetExtendedStyle|GUICtrlToolbar_SetHotImageList|GUICtrlToolbar_SetHotItem|GUICtrlToolbar_SetImageList|GUICtrlToolbar_SetIndent|GUICtrlToolbar_SetIndeterminate|GUICtrlToolbar_SetInsertMark|GUICtrlToolbar_SetInsertMarkColor|GUICtrlToolbar_SetMaxTextRows|GUICtrlToolbar_SetMetrics|GUICtrlToolbar_SetPadding|GUICtrlToolbar_SetParent|GUICtrlToolbar_SetRows|GUICtrlToolbar_SetStyle|GUICtrlToolbar_SetStyleAltDrag|GUICtrlToolbar_SetStyleCustomErase|GUICtrlToolbar_SetStyleFlat|GUICtrlToolbar_SetStyleList|GUICtrlToolbar_SetStyleRegisterDrop|GUICtrlToolbar_SetStyleToolTips|GUICtrlToolbar_SetStyleTransparent|GUICtrlToolbar_SetStyleWrapable|GUICtrlToolbar_SetToolTips|GUICtrlToolbar_SetUnicodeFormat|GUICtrlToolbar_SetWindowTheme|GUICtrlTreeView_Add|GUICtrlTreeView_AddChild|GUICtrlTreeView_AddChildFirst|GUICtrlTreeView_AddFirst|GUICtrlTreeView_BeginUpdate|GUICtrlTreeView_ClickItem|GUICtrlTreeView_Create|GUICtrlTreeView_CreateDragImage|GUICtrlTreeView_CreateSolidBitMap|GUICtrlTreeView_Delete|GUICtrlTreeView_DeleteAll|GUICtrlTreeView_DeleteChildren|GUICtrlTreeView_Destroy|GUICtrlTreeView_DisplayRect|GUICtrlTreeView_DisplayRectEx|GUICtrlTreeView_EditText|GUICtrlTreeView_EndEdit|GUICtrlTreeView_EndUpdate|GUICtrlTreeView_EnsureVisible|GUICtrlTreeView_Expand|GUICtrlTreeView_ExpandedOnce|GUICtrlTreeView_FindItem|GUICtrlTreeView_FindItemEx|GUICtrlTreeView_GetBkColor|GUICtrlTreeView_GetBold|GUICtrlTreeView_GetChecked|GUICtrlTreeView_GetChildCount|GUICtrlTreeView_GetChildren|GUICtrlTreeView_GetCount|GUICtrlTreeView_GetCut|GUICtrlTreeView_GetDropTarget|GUICtrlTreeView_GetEditControl|GUICtrlTreeView_GetExpanded|GUICtrlTreeView_GetFirstChild|GUICtrlTreeView_GetFirstItem|GUICtrlTreeView_GetFirstVisible|GUICtrlTreeView_GetFocused|GUICtrlTreeView_GetHeight|GUICtrlTreeView_GetImageIndex|GUICtrlTreeView_GetImageListIconHandle|GUICtrlTreeView_GetIndent|GUICtrlTreeView_GetInsertMarkColor|GUICtrlTreeView_GetISearchString|GUICtrlTreeView_GetItemByIndex|GUICtrlTreeView_GetItemHandle|GUICtrlTreeView_GetItemParam|GUICtrlTreeView_GetLastChild|GUICtrlTreeView_GetLineColor|GUICtrlTreeView_GetNext|GUICtrlTreeView_GetNextChild|GUICtrlTreeView_GetNextSibling|GUICtrlTreeView_GetNextVisible|GUICtrlTreeView_GetNormalImageList|GUICtrlTreeView_GetParentHandle|GUICtrlTreeView_GetParentParam|GUICtrlTreeView_GetPrev|GUICtrlTreeView_GetPrevChild|GUICtrlTreeView_GetPrevSibling|GUICtrlTreeView_GetPrevVisible|GUICtrlTreeView_GetScrollTime|GUICtrlTreeView_GetSelected|GUICtrlTreeView_GetSelectedImageIndex|GUICtrlTreeView_GetSelection|GUICtrlTreeView_GetSiblingCount|GUICtrlTreeView_GetState|GUICtrlTreeView_GetStateImageIndex|GUICtrlTreeView_GetStateImageList|GUICtrlTreeView_GetText|GUICtrlTreeView_GetTextColor|GUICtrlTreeView_GetToolTips|GUICtrlTreeView_GetTree|GUICtrlTreeView_GetUnicodeFormat|GUICtrlTreeView_GetVisible|GUICtrlTreeView_GetVisibleCount|GUICtrlTreeView_HitTest|GUICtrlTreeView_HitTestEx|GUICtrlTreeView_HitTestItem|GUICtrlTreeView_Index|GUICtrlTreeView_InsertItem|GUICtrlTreeView_IsFirstItem|GUICtrlTreeView_IsParent|GUICtrlTreeView_Level|GUICtrlTreeView_SelectItem|GUICtrlTreeView_SelectItemByIndex|GUICtrlTreeView_SetBkColor|GUICtrlTreeView_SetBold|GUICtrlTreeView_SetChecked|GUICtrlTreeView_SetCheckedByIndex|GUICtrlTreeView_SetChildren|GUICtrlTreeView_SetCut|GUICtrlTreeView_SetDropTarget|GUICtrlTreeView_SetFocused|GUICtrlTreeView_SetHeight|GUICtrlTreeView_SetIcon|GUICtrlTreeView_SetImageIndex|GUICtrlTreeView_SetIndent|GUICtrlTreeView_SetInsertMark|GUICtrlTreeView_SetInsertMarkColor|GUICtrlTreeView_SetItemHeight|GUICtrlTreeView_SetItemParam|GUICtrlTreeView_SetLineColor|GUICtrlTreeView_SetNormalImageList|GUICtrlTreeView_SetScrollTime|GUICtrlTreeView_SetSelected|GUICtrlTreeView_SetSelectedImageIndex|GUICtrlTreeView_SetState|GUICtrlTreeView_SetStateImageIndex|GUICtrlTreeView_SetStateImageList|GUICtrlTreeView_SetText|GUICtrlTreeView_SetTextColor|GUICtrlTreeView_SetToolTips|GUICtrlTreeView_SetUnicodeFormat|GUICtrlTreeView_Sort|GUIImageList_Add|GUIImageList_AddBitmap|GUIImageList_AddIcon|GUIImageList_AddMasked|GUIImageList_BeginDrag|GUIImageList_Copy|GUIImageList_Create|GUIImageList_Destroy|GUIImageList_DestroyIcon|GUIImageList_DragEnter|GUIImageList_DragLeave|GUIImageList_DragMove|GUIImageList_Draw|GUIImageList_DrawEx|GUIImageList_Duplicate|GUIImageList_EndDrag|GUIImageList_GetBkColor|GUIImageList_GetIcon|GUIImageList_GetIconHeight|GUIImageList_GetIconSize|GUIImageList_GetIconSizeEx|GUIImageList_GetIconWidth|GUIImageList_GetImageCount|GUIImageList_GetImageInfoEx|GUIImageList_Remove|GUIImageList_ReplaceIcon|GUIImageList_SetBkColor|GUIImageList_SetIconSize|GUIImageList_SetImageCount|GUIImageList_Swap|GUIScrollBars_EnableScrollBar|GUIScrollBars_GetScrollBarInfoEx|GUIScrollBars_GetScrollBarRect|GUIScrollBars_GetScrollBarRGState|GUIScrollBars_GetScrollBarXYLineButton|GUIScrollBars_GetScrollBarXYThumbBottom|GUIScrollBars_GetScrollBarXYThumbTop|GUIScrollBars_GetScrollInfo|GUIScrollBars_GetScrollInfoEx|GUIScrollBars_GetScrollInfoMax|GUIScrollBars_GetScrollInfoMin|GUIScrollBars_GetScrollInfoPage|GUIScrollBars_GetScrollInfoPos|GUIScrollBars_GetScrollInfoTrackPos|GUIScrollBars_GetScrollPos|GUIScrollBars_GetScrollRange|GUIScrollBars_Init|GUIScrollBars_ScrollWindow|GUIScrollBars_SetScrollInfo|GUIScrollBars_SetScrollInfoMax|GUIScrollBars_SetScrollInfoMin|GUIScrollBars_SetScrollInfoPage|GUIScrollBars_SetScrollInfoPos|GUIScrollBars_SetScrollRange|GUIScrollBars_ShowScrollBar|GUIToolTip_Activate|GUIToolTip_AddTool|GUIToolTip_AdjustRect|GUIToolTip_BitsToTTF|GUIToolTip_Create|GUIToolTip_DelTool|GUIToolTip_Destroy|GUIToolTip_EnumTools|GUIToolTip_GetBubbleHeight|GUIToolTip_GetBubbleSize|GUIToolTip_GetBubbleWidth|GUIToolTip_GetCurrentTool|GUIToolTip_GetDelayTime|GUIToolTip_GetMargin|GUIToolTip_GetMarginEx|GUIToolTip_GetMaxTipWidth|GUIToolTip_GetText|GUIToolTip_GetTipBkColor|GUIToolTip_GetTipTextColor|GUIToolTip_GetTitleBitMap|GUIToolTip_GetTitleText|GUIToolTip_GetToolCount|GUIToolTip_GetToolInfo|GUIToolTip_HitTest|GUIToolTip_NewToolRect|GUIToolTip_Pop|GUIToolTip_PopUp|GUIToolTip_SetDelayTime|GUIToolTip_SetMargin|GUIToolTip_SetMaxTipWidth|GUIToolTip_SetTipBkColor|GUIToolTip_SetTipTextColor|GUIToolTip_SetTitle|GUIToolTip_SetToolInfo|GUIToolTip_SetWindowTheme|GUIToolTip_ToolExists|GUIToolTip_ToolToArray|GUIToolTip_TrackActivate|GUIToolTip_TrackPosition|GUIToolTip_TTFToBits|GUIToolTip_Update|GUIToolTip_UpdateTipText|HexToString|IE_Example|IE_Introduction|IE_VersionInfo|IEAction|IEAttach|IEBodyReadHTML|IEBodyReadText|IEBodyWriteHTML|IECreate|IECreateEmbedded|IEDocGetObj|IEDocInsertHTML|IEDocInsertText|IEDocReadHTML|IEDocWriteHTML|IEErrorHandlerDeRegister|IEErrorHandlerRegister|IEErrorNotify|IEFormElementCheckBoxSelect|IEFormElementGetCollection|IEFormElementGetObjByName|IEFormElementGetValue|IEFormElementOptionSelect|IEFormElementRadioSelect|IEFormElementSetValue|IEFormGetCollection|IEFormGetObjByName|IEFormImageClick|IEFormReset|IEFormSubmit|IEFrameGetCollection|IEFrameGetObjByName|IEGetObjById|IEGetObjByName|IEHeadInsertEventScript|IEImgClick|IEImgGetCollection|IEIsFrameSet|IELinkClickByIndex|IELinkClickByText|IELinkGetCollection|IELoadWait|IELoadWaitTimeout|IENavigate|IEPropertyGet|IEPropertySet|IEQuit|IETableGetCollection|IETableWriteToArray|IETagNameAllGetCollection|IETagNameGetCollection|Iif|INetExplorerCapable|INetGetSource|INetMail|INetSmtpMail|IsPressed|MathCheckDiv|Max|MemGlobalAlloc|MemGlobalFree|MemGlobalLock|MemGlobalSize|MemGlobalUnlock|MemMoveMemory|MemMsgBox|MemShowError|MemVirtualAlloc|MemVirtualAllocEx|MemVirtualFree|MemVirtualFreeEx|Min|MouseTrap|NamedPipes_CallNamedPipe|NamedPipes_ConnectNamedPipe|NamedPipes_CreateNamedPipe|NamedPipes_CreatePipe|NamedPipes_DisconnectNamedPipe|NamedPipes_GetNamedPipeHandleState|NamedPipes_GetNamedPipeInfo|NamedPipes_PeekNamedPipe|NamedPipes_SetNamedPipeHandleState|NamedPipes_TransactNamedPipe|NamedPipes_WaitNamedPipe|Net_Share_ConnectionEnum|Net_Share_FileClose|Net_Share_FileEnum|Net_Share_FileGetInfo|Net_Share_PermStr|Net_Share_ResourceStr|Net_Share_SessionDel|Net_Share_SessionEnum|Net_Share_SessionGetInfo|Net_Share_ShareAdd|Net_Share_ShareCheck|Net_Share_ShareDel|Net_Share_ShareEnum|Net_Share_ShareGetInfo|Net_Share_ShareSetInfo|Net_Share_StatisticsGetSvr|Net_Share_StatisticsGetWrk|Now|NowCalc|NowCalcDate|NowDate|NowTime|PathFull|PathMake|PathSplit|ProcessGetName|ProcessGetPriority|Radian|ReplaceStringInFile|RunDOS|ScreenCapture_Capture|ScreenCapture_CaptureWnd|ScreenCapture_SaveImage|ScreenCapture_SetBMPFormat|ScreenCapture_SetJPGQuality|ScreenCapture_SetTIFColorDepth|ScreenCapture_SetTIFCompression|Security__AdjustTokenPrivileges|Security__GetAccountSid|Security__GetLengthSid|Security__GetTokenInformation|Security__ImpersonateSelf|Security__IsValidSid|Security__LookupAccountName|Security__LookupAccountSid|Security__LookupPrivilegeValue|Security__OpenProcessToken|Security__OpenThreadToken|Security__OpenThreadTokenEx|Security__SetPrivilege|Security__SidToStringSid|Security__SidTypeStr|Security__StringSidToSid|SendMessage|SendMessageA|SetDate|SetTime|Singleton|SoundClose|SoundLength|SoundOpen|SoundPause|SoundPlay|SoundPos|SoundResume|SoundSeek|SoundStatus|SoundStop|SQLite_Changes|SQLite_Close|SQLite_Display2DResult|SQLite_Encode|SQLite_ErrCode|SQLite_ErrMsg|SQLite_Escape|SQLite_Exec|SQLite_FetchData|SQLite_FetchNames|SQLite_GetTable|SQLite_GetTable2d|SQLite_LastInsertRowID|SQLite_LibVersion|SQLite_Open|SQLite_Query|SQLite_QueryFinalize|SQLite_QueryReset|SQLite_QuerySingleRow|SQLite_SaveMode|SQLite_SetTimeout|SQLite_Shutdown|SQLite_SQLiteExe|SQLite_Startup|SQLite_TotalChanges|StringAddComma|StringBetween|StringEncrypt|StringInsert|StringProper|StringRepeat|StringReverse|StringSplit|StringToHex|TCPIpToName|TempFile|TicksToTime|Timer_Diff|Timer_GetTimerID|Timer_Init|Timer_KillAllTimers|Timer_KillTimer|Timer_SetTimer|TimeToTicks|VersionCompare|viClose|viExecCommand|viFindGpib|viGpibBusReset|viGTL|viOpen|viSetAttribute|viSetTimeout|WeekNumberISO|WinAPI_AttachConsole|WinAPI_AttachThreadInput|WinAPI_Beep|WinAPI_BitBlt|WinAPI_CallNextHookEx|WinAPI_Check|WinAPI_ClientToScreen|WinAPI_CloseHandle|WinAPI_CommDlgExtendedError|WinAPI_CopyIcon|WinAPI_CreateBitmap|WinAPI_CreateCompatibleBitmap|WinAPI_CreateCompatibleDC|WinAPI_CreateEvent|WinAPI_CreateFile|WinAPI_CreateFont|WinAPI_CreateFontIndirect|WinAPI_CreateProcess|WinAPI_CreateSolidBitmap|WinAPI_CreateSolidBrush|WinAPI_CreateWindowEx|WinAPI_DefWindowProc|WinAPI_DeleteDC|WinAPI_DeleteObject|WinAPI_DestroyIcon|WinAPI_DestroyWindow|WinAPI_DrawEdge|WinAPI_DrawFrameControl|WinAPI_DrawIcon|WinAPI_DrawIconEx|WinAPI_DrawText|WinAPI_EnableWindow|WinAPI_EnumDisplayDevices|WinAPI_EnumWindows|WinAPI_EnumWindowsPopup|WinAPI_EnumWindowsTop|WinAPI_ExpandEnvironmentStrings|WinAPI_ExtractIconEx|WinAPI_FatalAppExit|WinAPI_FillRect|WinAPI_FindExecutable|WinAPI_FindWindow|WinAPI_FlashWindow|WinAPI_FlashWindowEx|WinAPI_FloatToInt|WinAPI_FlushFileBuffers|WinAPI_FormatMessage|WinAPI_FrameRect|WinAPI_FreeLibrary|WinAPI_GetAncestor|WinAPI_GetAsyncKeyState|WinAPI_GetClassName|WinAPI_GetClientHeight|WinAPI_GetClientRect|WinAPI_GetClientWidth|WinAPI_GetCurrentProcess|WinAPI_GetCurrentProcessID|WinAPI_GetCurrentThread|WinAPI_GetCurrentThreadId|WinAPI_GetCursorInfo|WinAPI_GetDC|WinAPI_GetDesktopWindow|WinAPI_GetDeviceCaps|WinAPI_GetDIBits|WinAPI_GetDlgCtrlID|WinAPI_GetDlgItem|WinAPI_GetFileSizeEx|WinAPI_GetFocus|WinAPI_GetForegroundWindow|WinAPI_GetIconInfo|WinAPI_GetLastError|WinAPI_GetLastErrorMessage|WinAPI_GetModuleHandle|WinAPI_GetMousePos|WinAPI_GetMousePosX|WinAPI_GetMousePosY|WinAPI_GetObject|WinAPI_GetOpenFileName|WinAPI_GetOverlappedResult|WinAPI_GetParent|WinAPI_GetProcessAffinityMask|WinAPI_GetSaveFileName|WinAPI_GetStdHandle|WinAPI_GetStockObject|WinAPI_GetSysColor|WinAPI_GetSysColorBrush|WinAPI_GetSystemMetrics|WinAPI_GetTextExtentPoint32|WinAPI_GetWindow|WinAPI_GetWindowDC|WinAPI_GetWindowHeight|WinAPI_GetWindowLong|WinAPI_GetWindowRect|WinAPI_GetWindowText|WinAPI_GetWindowThreadProcessId|WinAPI_GetWindowWidth|WinAPI_GetXYFromPoint|WinAPI_GlobalMemStatus|WinAPI_GUIDFromString|WinAPI_GUIDFromStringEx|WinAPI_HiWord|WinAPI_InProcess|WinAPI_IntToFloat|WinAPI_InvalidateRect|WinAPI_IsClassName|WinAPI_IsWindow|WinAPI_IsWindowVisible|WinAPI_LoadBitmap|WinAPI_LoadImage|WinAPI_LoadLibrary|WinAPI_LoadLibraryEx|WinAPI_LoadShell32Icon|WinAPI_LoadString|WinAPI_LocalFree|WinAPI_LoWord|WinAPI_MakeDWord|WinAPI_MAKELANGID|WinAPI_MAKELCID|WinAPI_MakeLong|WinAPI_MessageBeep|WinAPI_Mouse_Event|WinAPI_MoveWindow|WinAPI_MsgBox|WinAPI_MulDiv|WinAPI_MultiByteToWideChar|WinAPI_MultiByteToWideCharEx|WinAPI_OpenProcess|WinAPI_PointFromRect|WinAPI_PostMessage|WinAPI_PrimaryLangId|WinAPI_PtInRect|WinAPI_ReadFile|WinAPI_ReadProcessMemory|WinAPI_RectIsEmpty|WinAPI_RedrawWindow|WinAPI_RegisterWindowMessage|WinAPI_ReleaseCapture|WinAPI_ReleaseDC|WinAPI_ScreenToClient|WinAPI_SelectObject|WinAPI_SetBkColor|WinAPI_SetCapture|WinAPI_SetCursor|WinAPI_SetDefaultPrinter|WinAPI_SetDIBits|WinAPI_SetEvent|WinAPI_SetFocus|WinAPI_SetFont|WinAPI_SetHandleInformation|WinAPI_SetLastError|WinAPI_SetParent|WinAPI_SetProcessAffinityMask|WinAPI_SetSysColors|WinAPI_SetTextColor|WinAPI_SetWindowLong|WinAPI_SetWindowPos|WinAPI_SetWindowsHookEx|WinAPI_SetWindowText|WinAPI_ShowCursor|WinAPI_ShowError|WinAPI_ShowMsg|WinAPI_ShowWindow|WinAPI_StringFromGUID|WinAPI_SubLangId|WinAPI_SystemParametersInfo|WinAPI_TwipsPerPixelX|WinAPI_TwipsPerPixelY|WinAPI_UnhookWindowsHookEx|WinAPI_UpdateLayeredWindow|WinAPI_UpdateWindow|WinAPI_ValidateClassName|WinAPI_WaitForInputIdle|WinAPI_WaitForMultipleObjects|WinAPI_WaitForSingleObject|WinAPI_WideCharToMultiByte|WinAPI_WindowFromPoint|WinAPI_WriteConsole|WinAPI_WriteFile|WinAPI_WriteProcessMemory|WinNet_AddConnection|WinNet_AddConnection2|WinNet_AddConnection3|WinNet_CancelConnection|WinNet_CancelConnection2|WinNet_CloseEnum|WinNet_ConnectionDialog|WinNet_ConnectionDialog1|WinNet_DisconnectDialog|WinNet_DisconnectDialog1|WinNet_EnumResource|WinNet_GetConnection|WinNet_GetConnectionPerformance|WinNet_GetLastError|WinNet_GetNetworkInformation|WinNet_GetProviderName|WinNet_GetResourceInformation|WinNet_GetResourceParent|WinNet_GetUniversalName|WinNet_GetUser|WinNet_OpenEnum|WinNet_RestoreConnection|WinNet_UseConnection|Word_VersionInfo|WordAttach|WordCreate|WordDocAdd|WordDocAddLink|WordDocAddPicture|WordDocClose|WordDocFindReplace|WordDocGetCollection|WordDocLinkGetCollection|WordDocOpen|WordDocPrint|WordDocPropertyGet|WordDocPropertySet|WordDocSave|WordDocSaveAs|WordErrorHandlerDeRegister|WordErrorHandlerRegister|WordErrorNotify|WordMacroRun|WordPropertyGet|WordPropertySet|WordQuit|' + + 'ce|comments-end|comments-start|cs|include|include-once|NoTrayIcon|RequireAdmin|' + + 'AutoIt3Wrapper_Au3Check_Parameters|AutoIt3Wrapper_Au3Check_Stop_OnWarning|AutoIt3Wrapper_Change2CUI|AutoIt3Wrapper_Compression|AutoIt3Wrapper_cvsWrapper_Parameters|AutoIt3Wrapper_Icon|AutoIt3Wrapper_Outfile|AutoIt3Wrapper_Outfile_Type|AutoIt3Wrapper_Plugin_Funcs|AutoIt3Wrapper_Res_Comment|AutoIt3Wrapper_Res_Description|AutoIt3Wrapper_Res_Field|AutoIt3Wrapper_Res_File_Add|AutoIt3Wrapper_Res_Fileversion|AutoIt3Wrapper_Res_FileVersion_AutoIncrement|AutoIt3Wrapper_Res_Icon_Add|AutoIt3Wrapper_Res_Language|AutoIt3Wrapper_Res_LegalCopyright|AutoIt3Wrapper_res_requestedExecutionLevel|AutoIt3Wrapper_Res_SaveSource|AutoIt3Wrapper_Run_After|AutoIt3Wrapper_Run_Au3check|AutoIt3Wrapper_Run_Before|AutoIt3Wrapper_Run_cvsWrapper|AutoIt3Wrapper_Run_Debug_Mode|AutoIt3Wrapper_Run_Obfuscator|AutoIt3Wrapper_Run_Tidy|AutoIt3Wrapper_Tidy_Stop_OnError|AutoIt3Wrapper_UseAnsi|AutoIt3Wrapper_UseUpx|AutoIt3Wrapper_UseX64|AutoIt3Wrapper_Version|EndRegion|forceref|Obfuscator_Ignore_Funcs|Obfuscator_Ignore_Variables|Obfuscator_Parameters|Region|Tidy_Parameters' + var atKeywords = 'AppDataCommonDir|AppDataDir|AutoItExe|AutoItPID|AutoItUnicode|AutoItVersion|AutoItX64|COM_EventObj|CommonFilesDir|Compiled|ComputerName|ComSpec|CR|CRLF|DesktopCommonDir|DesktopDepth|DesktopDir|DesktopHeight|DesktopRefresh|DesktopWidth|DocumentsCommonDir|error|exitCode|exitMethod|extended|FavoritesCommonDir|FavoritesDir|GUI_CtrlHandle|GUI_CtrlId|GUI_DragFile|GUI_DragId|GUI_DropId|GUI_WinHandle|HomeDrive|HomePath|HomeShare|HotKeyPressed|HOUR|InetGetActive|InetGetBytesRead|IPAddress1|IPAddress2|IPAddress3|IPAddress4|KBLayout|LF|LogonDNSDomain|LogonDomain|LogonServer|MDAY|MIN|MON|MyDocumentsDir|NumParams|OSBuild|OSLang|OSServicePack|OSTYPE|OSVersion|ProcessorArch|ProgramFilesDir|ProgramsCommonDir|ProgramsDir|ScriptDir|ScriptFullPath|ScriptLineNumber|ScriptName|SEC|StartMenuCommonDir|StartMenuDir|StartupCommonDir|StartupDir|SW_DISABLE|SW_ENABLE|SW_HIDE|SW_LOCK|SW_MAXIMIZE|SW_MINIMIZE|SW_RESTORE|SW_SHOW|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWMINNOACTIVE|SW_SHOWNA|SW_SHOWNOACTIVATE|SW_SHOWNORMAL|SW_UNLOCK|SystemDir|TAB|TempDir|TRAY_ID|TrayIconFlashing|TrayIconVisible|UserName|UserProfileDir|WDAY|WindowsDir|WorkingDir|YDAY|YEAR' + + this.$rules = { start: + [ { token: 'comment.line.ahk', regex: '(?:^| );.*$' }, + { token: 'comment.block.ahk', + regex: '/\\*', push: + [ { token: 'comment.block.ahk', regex: '\\*/', next: 'pop' }, + { defaultToken: 'comment.block.ahk' } ] }, + { token: 'doc.comment.ahk', + regex: '#cs', push: + [ { token: 'doc.comment.ahk', regex: '#ce', next: 'pop' }, + { defaultToken: 'doc.comment.ahk' } ] }, + { token: 'keyword.command.ahk', + regex: '(?:\\b|^)(?:allowsamelinecomments|clipboardtimeout|commentflag|errorstdout|escapechar|hotkeyinterval|hotkeymodifiertimeout|hotstring|include|includeagain|installkeybdhook|installmousehook|keyhistory|ltrim|maxhotkeysperinterval|maxmem|maxthreads|maxthreadsbuffer|maxthreadsperhotkey|noenv|notrayicon|persistent|singleinstance|usehook|winactivateforce|autotrim|blockinput|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|drive|driveget|drivespacefree|edit|endrepeat|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|getkeystate|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hideautoitwin|hotkey|ifequal|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onexit|outputdebug|pause|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regdelete|regread|regwrite|reload|repeat|run|runas|runwait|send|sendevent|sendinput|sendmode|sendplay|sendmessage|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactive)\\b', + caseInsensitive: true }, + { token: 'keyword.control.ahk', + regex: '(?:\\b|^)(?:if|else|return|loop|break|for|while|global|local|byref)\\b', + caseInsensitive: true }, + { token: 'support.function.ahk', + regex: '(?:\\b|^)(?:abs|acos|asc|asin|atan|ceil|chr|cos|dllcall|exp|fileexist|floor|getkeystate|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|ln|log|lv_add|lv_delete|lv_deletecol|lv_getcount|lv_getnext|lv_gettext|lv_insert|lv_insertcol|lv_modify|lv_modifycol|lv_setimagelist|mod|onmessage|numget|numput|registercallback|regexmatch|regexreplace|round|sin|tan|sqrt|strlen|sb_seticon|sb_setparts|sb_settext|tv_add|tv_delete|tv_getchild|tv_getcount|tv_getnext|tv_get|tv_getparent|tv_getprev|tv_getselection|tv_gettext|tv_modify|varsetcapacity|winactive|winexist)\\b', + caseInsensitive: true }, + { token: 'variable.predefined.ahk', + regex: '(?:\\b|^)(?:a_ahkpath|a_ahkversion|a_appdata|a_appdatacommon|a_autotrim|a_batchlines|a_caretx|a_carety|a_computername|a_controldelay|a_cursor|a_dd|a_ddd|a_dddd|a_defaultmousespeed|a_desktop|a_desktopcommon|a_detecthiddentext|a_detecthiddenwindows|a_endchar|a_eventinfo|a_exitreason|a_formatfloat|a_formatinteger|a_gui|a_guievent|a_guicontrol|a_guicontrolevent|a_guiheight|a_guiwidth|a_guix|a_guiy|a_hour|a_iconfile|a_iconhidden|a_iconnumber|a_icontip|a_index|a_ipaddress1|a_ipaddress2|a_ipaddress3|a_ipaddress4|a_isadmin|a_iscompiled|a_iscritical|a_ispaused|a_issuspended|a_keydelay|a_language|a_lasterror|a_linefile|a_linenumber|a_loopfield|a_loopfileattrib|a_loopfiledir|a_loopfileext|a_loopfilefullpath|a_loopfilelongpath|a_loopfilename|a_loopfileshortname|a_loopfileshortpath|a_loopfilesize|a_loopfilesizekb|a_loopfilesizemb|a_loopfiletimeaccessed|a_loopfiletimecreated|a_loopfiletimemodified|a_loopreadline|a_loopregkey|a_loopregname|a_loopregsubkey|a_loopregtimemodified|a_loopregtype|a_mday|a_min|a_mm|a_mmm|a_mmmm|a_mon|a_mousedelay|a_msec|a_mydocuments|a_now|a_nowutc|a_numbatchlines|a_ostype|a_osversion|a_priorhotkey|programfiles|a_programfiles|a_programs|a_programscommon|a_screenheight|a_screenwidth|a_scriptdir|a_scriptfullpath|a_scriptname|a_sec|a_space|a_startmenu|a_startmenucommon|a_startup|a_startupcommon|a_stringcasesense|a_tab|a_temp|a_thisfunc|a_thishotkey|a_thislabel|a_thismenu|a_thismenuitem|a_thismenuitempos|a_tickcount|a_timeidle|a_timeidlephysical|a_timesincepriorhotkey|a_timesincethishotkey|a_titlematchmode|a_titlematchmodespeed|a_username|a_wday|a_windelay|a_windir|a_workingdir|a_yday|a_year|a_yweek|a_yyyy|clipboard|clipboardall|comspec|errorlevel)\\b', + caseInsensitive: true }, + { token: 'support.constant.ahk', + regex: '(?:\\b|^)(?:shift|lshift|rshift|alt|lalt|ralt|control|lcontrol|rcontrol|ctrl|lctrl|rctrl|lwin|rwin|appskey|altdown|altup|shiftdown|shiftup|ctrldown|ctrlup|lwindown|lwinup|rwindown|rwinup|lbutton|rbutton|mbutton|wheelup|wheelleft|wheelright|wheeldown|xbutton1|xbutton2|joy1|joy2|joy3|joy4|joy5|joy6|joy7|joy8|joy9|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy30|joy31|joy32|joyx|joyy|joyz|joyr|joyu|joyv|joypov|joyname|joybuttons|joyaxes|joyinfo|space|tab|enter|escape|esc|backspace|bs|delete|del|insert|ins|pgup|pgdn|home|end|up|down|left|right|printscreen|ctrlbreak|pause|scrolllock|capslock|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadmult|numpadadd|numpadsub|numpaddiv|numpaddot|numpaddel|numpadins|numpadclear|numpadup|numpaddown|numpadleft|numpadright|numpadhome|numpadend|numpadpgup|numpadpgdn|numpadenter|f1|f2|f3|f4|f5|f6|f7|f8|f9|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f20|f21|f22|f23|f24|browser_back|browser_forward|browser_refresh|browser_stop|browser_search|browser_favorites|browser_home|volume_mute|volume_down|volume_up|media_next|media_prev|media_stop|media_play_pause|launch_mail|launch_media|launch_app1|launch_app2)\\b', + caseInsensitive: true }, + { token: 'variable.parameter', + regex: '(?:\\b|^)(?:pixel|mouse|screen|relative|rgb|ltrim|rtrim|join|low|belownormal|normal|abovenormal|high|realtime|ahk_id|ahk_pid|ahk_class|ahk_group|between|contains|in|is|integer|float|integerfast|floatfast|number|digit|xdigit|alpha|upper|lower|alnum|time|date|not|or|and|alwaysontop|topmost|top|bottom|transparent|transcolor|redraw|region|id|idlast|processname|minmax|controllist|count|list|capacity|statuscd|eject|lock|unlock|label|filesystem|label|setlabel|serial|type|status|static|seconds|minutes|hours|days|read|parse|logoff|close|error|single|tray|add|rename|check|uncheck|togglecheck|enable|disable|toggleenable|default|nodefault|standard|nostandard|color|delete|deleteall|icon|noicon|tip|click|show|mainwindow|nomainwindow|useerrorlevel|text|picture|pic|groupbox|button|checkbox|radio|dropdownlist|ddl|combobox|listbox|listview|datetime|monthcal|updown|slider|tab|tab2|statusbar|treeview|iconsmall|tile|report|sortdesc|nosort|nosorthdr|grid|hdr|autosize|range|xm|ym|ys|xs|xp|yp|font|resize|owner|submit|nohide|minimize|maximize|restore|noactivate|na|cancel|destroy|center|margin|maxsize|minsize|owndialogs|guiescape|guiclose|guisize|guicontextmenu|guidropfiles|tabstop|section|altsubmit|wrap|hscroll|vscroll|border|top|bottom|buttons|expand|first|imagelist|lines|wantctrla|wantf2|vis|visfirst|number|uppercase|lowercase|limit|password|multi|wantreturn|group|background|bold|italic|strike|underline|norm|backgroundtrans|theme|caption|delimiter|minimizebox|maximizebox|sysmenu|toolwindow|flash|style|exstyle|check3|checked|checkedgray|readonly|password|hidden|left|right|center|notab|section|move|focus|hide|choose|choosestring|text|pos|enabled|disabled|visible|lastfound|lastfoundexist|alttab|shiftalttab|alttabmenu|alttabandmenu|alttabmenudismiss|notimers|interrupt|priority|waitclose|blind|raw|unicode|deref|pow|bitnot|bitand|bitor|bitxor|bitshiftleft|bitshiftright|yes|no|ok|cancel|abort|retry|ignore|tryagain|on|off|all|hkey_local_machine|hkey_users|hkey_current_user|hkey_classes_root|hkey_current_config|hklm|hku|hkcu|hkcr|hkcc|reg_sz|reg_expand_sz|reg_multi_sz|reg_dword|reg_qword|reg_binary|reg_link|reg_resource_list|reg_full_resource_descriptor|reg_resource_requirements_list|reg_dword_big_endian)\\b', + caseInsensitive: true }, + { keywordMap: {"constant.language": autoItKeywords}, regex: '\\w+\\b'}, + { keywordMap: {"variable.function": atKeywords}, regex: '@\\w+\\b'}, + { token : "constant.numeric", regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"}, + { token: 'keyword.operator.ahk', + regex: '=|==|<>|:=|<|>|\\*|\\/|\\+|:|\\?|\\-' }, + { token: 'punctuation.ahk', + regex: '#|`|::|,|\\{|\\}|\\(|\\)|\\%' }, + { token: + [ 'punctuation.quote.double', + 'string.quoted.ahk', + 'punctuation.quote.double' ], + regex: '(")((?:[^"]|"")*)(")' }, + { token: [ 'label.ahk', 'punctuation.definition.label.ahk' ], + regex: '^([^: ]+)(:)(?!:)' } ] } + + this.normalizeRules(); +}; + +AutoHotKeyHighlightRules.metaData = { name: 'AutoHotKey', + scopeName: 'source.ahk', + fileTypes: [ 'ahk' ], + foldingStartMarker: '^\\s*/\\*|^(?![^{]*?;|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|;|/\\*(?!.*?\\*/.*\\S))', + foldingStopMarker: '^\\s*\\*/|^\\s*\\}' } + + +oop.inherits(AutoHotKeyHighlightRules, TextHighlightRules); + +exports.AutoHotKeyHighlightRules = AutoHotKeyHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/autohotkey",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/autohotkey_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var AutoHotKeyHighlightRules = require("./autohotkey_highlight_rules").AutoHotKeyHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = AutoHotKeyHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = ";"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/autohotkey"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-batchfile.js b/htdocs/includes/ace/mode-batchfile.js new file mode 100644 index 00000000000..3f31ce121fc --- /dev/null +++ b/htdocs/includes/ace/mode-batchfile.js @@ -0,0 +1,223 @@ +ace.define("ace/mode/batchfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var BatchFileHighlightRules = function() { + + this.$rules = { start: + [ { token: 'keyword.command.dosbatch', + regex: '\\b(?:append|assoc|at|attrib|break|cacls|cd|chcp|chdir|chkdsk|chkntfs|cls|cmd|color|comp|compact|convert|copy|date|del|dir|diskcomp|diskcopy|doskey|echo|endlocal|erase|fc|find|findstr|format|ftype|graftabl|help|keyb|label|md|mkdir|mode|more|move|path|pause|popd|print|prompt|pushd|rd|recover|ren|rename|replace|restore|rmdir|set|setlocal|shift|sort|start|subst|time|title|tree|type|ver|verify|vol|xcopy)\\b', + caseInsensitive: true }, + { token: 'keyword.control.statement.dosbatch', + regex: '\\b(?:goto|call|exit)\\b', + caseInsensitive: true }, + { token: 'keyword.control.conditional.if.dosbatch', + regex: '\\bif\\s+not\\s+(?:exist|defined|errorlevel|cmdextversion)\\b', + caseInsensitive: true }, + { token: 'keyword.control.conditional.dosbatch', + regex: '\\b(?:if|else)\\b', + caseInsensitive: true }, + { token: 'keyword.control.repeat.dosbatch', + regex: '\\bfor\\b', + caseInsensitive: true }, + { token: 'keyword.operator.dosbatch', + regex: '\\b(?:EQU|NEQ|LSS|LEQ|GTR|GEQ)\\b' }, + { token: ['doc.comment', 'comment'], + regex: '(?:^|\\b)(rem)($|\\s.*$)', + caseInsensitive: true }, + { token: 'comment.line.colons.dosbatch', + regex: '::.*$' }, + { include: 'variable' }, + { token: 'punctuation.definition.string.begin.shell', + regex: '"', + push: [ + { token: 'punctuation.definition.string.end.shell', regex: '"', next: 'pop' }, + { include: 'variable' }, + { defaultToken: 'string.quoted.double.dosbatch' } ] }, + { token: 'keyword.operator.pipe.dosbatch', regex: '[|]' }, + { token: 'keyword.operator.redirect.shell', + regex: '&>|\\d*>&\\d*|\\d*(?:>>|>|<)|\\d*<&|\\d*<>' } ], + variable: [ + { token: 'constant.numeric', regex: '%%\\w+|%[*\\d]|%\\w+%'}, + { token: 'constant.numeric', regex: '%~\\d+'}, + { token: ['markup.list', 'constant.other', 'markup.list'], + regex: '(%)(\\w+)(%?)' }]} + + this.normalizeRules(); +}; + +BatchFileHighlightRules.metaData = { name: 'Batch File', + scopeName: 'source.dosbatch', + fileTypes: [ 'bat' ] } + + +oop.inherits(BatchFileHighlightRules, TextHighlightRules); + +exports.BatchFileHighlightRules = BatchFileHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/batchfile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/batchfile_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var BatchFileHighlightRules = require("./batchfile_highlight_rules").BatchFileHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = BatchFileHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "::"; + this.blockComment = ""; + this.$id = "ace/mode/batchfile"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-bro.js b/htdocs/includes/ace/mode-bro.js new file mode 100644 index 00000000000..dd259ebee88 --- /dev/null +++ b/htdocs/includes/ace/mode-bro.js @@ -0,0 +1,327 @@ +ace.define("ace/mode/bro_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var BroHighlightRules = function() { + + this.$rules = { + start: [{ + token: "punctuation.definition.comment.bro", + regex: /#/, + push: [{ + token: "comment.line.number-sign.bro", + regex: /$/, + next: "pop" + }, { + defaultToken: "comment.line.number-sign.bro" + }] + }, { + token: "keyword.control.bro", + regex: /\b(?:break|case|continue|else|for|if|return|switch|next|when|timeout|schedule)\b/ + }, { + token: [ + "meta.function.bro", + "meta.function.bro", + "storage.type.bro", + "meta.function.bro", + "entity.name.function.bro", + "meta.function.bro" + ], + regex: /^(\s*)(?:function|hook|event)(\s*)(.*)(\s*\()(.*)(\).*$)/ + }, { + token: "storage.type.bro", + regex: /\b(?:bool|enum|double|int|count|port|addr|subnet|any|file|interval|time|string|table|vector|set|record|pattern|hook)\b/ + }, { + token: "storage.modifier.bro", + regex: /\b(?:global|const|redef|local|&(?:optional|rotate_interval|rotate_size|add_func|del_func|expire_func|expire_create|expire_read|expire_write|persistent|synchronized|encrypt|mergeable|priority|group|type_column|log|error_handler))\b/ + }, { + token: "keyword.operator.bro", + regex: /\s*(?:\||&&|(?:>|<|!)=?|==)\s*|\b!?in\b/ + }, { + token: "constant.language.bro", + regex: /\b(?:T|F)\b/ + }, { + token: "constant.numeric.bro", + regex: /\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\.?[0-9]*|\.[0-9]+)(?:(?:e|E)(?:\+|-)?[0-9]+)?)(?:\/(?:tcp|udp|icmp)|\s*(?:u?sec|min|hr|day)s?)?\b/ + }, { + token: "punctuation.definition.string.begin.bro", + regex: /"/, + push: [{ + token: "punctuation.definition.string.end.bro", + regex: /"/, + next: "pop" + }, { + include: "#string_escaped_char" + }, { + include: "#string_placeholder" + }, { + defaultToken: "string.quoted.double.bro" + }] + }, { + token: "punctuation.definition.string.begin.bro", + regex: /\//, + push: [{ + token: "punctuation.definition.string.end.bro", + regex: /\//, + next: "pop" + }, { + include: "#string_escaped_char" + }, { + include: "#string_placeholder" + }, { + defaultToken: "string.quoted.regex.bro" + }] + }, { + token: [ + "meta.preprocessor.bro.load", + "keyword.other.special-method.bro" + ], + regex: /^(\s*)(\@load(?:-sigs)?)\b/, + push: [{ + token: [], + regex: /(?=\#)|$/, + next: "pop" + }, { + defaultToken: "meta.preprocessor.bro.load" + }] + }, { + token: [ + "meta.preprocessor.bro.if", + "keyword.other.special-method.bro", + "meta.preprocessor.bro.if" + ], + regex: /^(\s*)(\@endif|\@if(?:n?def)?)(.*$)/, + push: [{ + token: [], + regex: /$/, + next: "pop" + }, { + defaultToken: "meta.preprocessor.bro.if" + }] + }], + "#disabled": [{ + token: "text", + regex: /^\s*\@if(?:n?def)?\b.*$/, + push: [{ + token: "text", + regex: /^\s*\@endif\b.*$/, + next: "pop" + }, { + include: "#disabled" + }, { + include: "#pragma-mark" + }], + comment: "eat nested preprocessor ifdefs" + }], + "#preprocessor-rule-other": [{ + token: [ + "text", + "meta.preprocessor.bro", + "meta.preprocessor.bro", + "text" + ], + regex: /^(\s*)(@if)((?:n?def)?)\b(.*?)(?:(?=)|$)/, + push: [{ + token: ["text", "meta.preprocessor.bro", "text"], + regex: /^(\s*)(@endif)\b(.*$)/, + next: "pop" + }, { + include: "$base" + }] + }], + "#string_escaped_char": [{ + token: "constant.character.escape.bro", + regex: /\\(?:\\|[abefnprtv'"?]|[0-3]\d{,2}|[4-7]\d?|x[a-fA-F0-9]{,2})/ + }, { + token: "invalid.illegal.unknown-escape.bro", + regex: /\\./ + }], + "#string_placeholder": [{ + token: "constant.other.placeholder.bro", + regex: /%(?:\d+\$)?[#0\- +']*[,;:_]?(?:-?\d+|\*(?:-?\d+\$)?)?(?:\.(?:-?\d+|\*(?:-?\d+\$)?)?)?(?:hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)?[diouxXDOUeEfFgGaACcSspn%]/ + }, { + token: "invalid.illegal.placeholder.bro", + regex: /%/ + }] + } + + this.normalizeRules(); +}; + +BroHighlightRules.metaData = { + fileTypes: ["bro"], + foldingStartMarker: "^(\\@if(n?def)?)", + foldingStopMarker: "^\\@endif", + keyEquivalent: "@B", + name: "Bro", + scopeName: "source.bro" +} + + +oop.inherits(BroHighlightRules, TextHighlightRules); + +exports.BroHighlightRules = BroHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/bro",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/bro_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var BroHighlightRules = require("./bro_highlight_rules").BroHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = BroHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/bro" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-c9search.js b/htdocs/includes/ace/mode-c9search.js new file mode 100644 index 00000000000..aad3dc1963b --- /dev/null +++ b/htdocs/includes/ace/mode-c9search.js @@ -0,0 +1,287 @@ +ace.define("ace/mode/c9search_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +function safeCreateRegexp(source, flag) { + try { + return new RegExp(source, flag); + } catch(e) {} +} + +var C9SearchHighlightRules = function() { + this.$rules = { + "start" : [ + { + tokenNames : ["c9searchresults.constant.numeric", "c9searchresults.text", "c9searchresults.text", "c9searchresults.keyword"], + regex : /(^\s+[0-9]+)(:)(\d*\s?)([^\r\n]+)/, + onMatch : function(val, state, stack) { + var values = this.splitRegex.exec(val); + var types = this.tokenNames; + var tokens = [{ + type: types[0], + value: values[1] + }, { + type: types[1], + value: values[2] + }]; + + if (values[3]) { + if (values[3] == " ") + tokens[1] = { type: types[1], value: values[2] + " " }; + else + tokens.push({ type: types[1], value: values[3] }); + } + var regex = stack[1]; + var str = values[4]; + + var m; + var last = 0; + if (regex && regex.exec) { + regex.lastIndex = 0; + while (m = regex.exec(str)) { + var skipped = str.substring(last, m.index); + last = regex.lastIndex; + if (skipped) + tokens.push({type: types[2], value: skipped}); + if (m[0]) + tokens.push({type: types[3], value: m[0]}); + else if (!skipped) + break; + } + } + if (last < str.length) + tokens.push({type: types[2], value: str.substr(last)}); + return tokens; + } + }, + { + regex : "^Searching for [^\\r\\n]*$", + onMatch: function(val, state, stack) { + var parts = val.split("\x01"); + if (parts.length < 3) + return "text"; + + var options, search, replace; + + var i = 0; + var tokens = [{ + value: parts[i++] + "'", + type: "text" + }, { + value: search = parts[i++], + type: "text" // "c9searchresults.keyword" + }, { + value: "'" + parts[i++], + type: "text" + }]; + if (parts[2] !== " in") { + replace = parts[i]; + tokens.push({ + value: "'" + parts[i++] + "'", + type: "text" + }, { + value: parts[i++], + type: "text" + }); + } + tokens.push({ + value: " " + parts[i++] + " ", + type: "text" + }); + if (parts[i+1]) { + options = parts[i+1]; + tokens.push({ + value: "(" + parts[i+1] + ")", + type: "text" + }); + i += 1; + } else { + i -= 1; + } + while (i++ < parts.length) { + parts[i] && tokens.push({ + value: parts[i], + type: "text" + }); + } + + if (search) { + if (!/regex/.test(options)) + search = lang.escapeRegExp(search); + if (/whole/.test(options)) + search = "\\b" + search + "\\b"; + } + + var regex = search && safeCreateRegexp( + "(" + search + ")", + / sensitive/.test(options) ? "g" : "ig" + ); + if (regex) { + stack[0] = state; + stack[1] = regex; + } + + return tokens; + } + }, + { + regex : "^(?=Found \\d+ matches)", + token : "text", + next : "numbers" + }, + { + token : "string", // single line + regex : "^\\S:?[^:]+", + next : "numbers" + } + ], + numbers:[{ + regex : "\\d+", + token : "constant.numeric" + }, { + regex : "$", + token : "text", + next : "start" + }] + }; + this.normalizeRules(); +}; + +oop.inherits(C9SearchHighlightRules, TextHighlightRules); + +exports.C9SearchHighlightRules = C9SearchHighlightRules; + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/c9search",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /^(\S.*:|Searching for.*)$/; + this.foldingStopMarker = /^(\s+|Found.*)$/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var lines = session.doc.getAllLines(row); + var line = lines[row]; + var level1 = /^(Found.*|Searching for.*)$/; + var level2 = /^(\S.*:|\s*)$/; + var re = level1.test(line) ? level1 : level2; + + var startRow = row; + var endRow = row; + + if (this.foldingStartMarker.test(line)) { + for (var i = row + 1, l = session.getLength(); i < l; i++) { + if (re.test(lines[i])) + break; + } + endRow = i; + } + else if (this.foldingStopMarker.test(line)) { + for (var i = row - 1; i >= 0; i--) { + line = lines[i]; + if (re.test(line)) + break; + } + startRow = i; + } + if (startRow != endRow) { + var col = line.length; + if (re === level1) + col = line.search(/\(Found[^)]+\)$|$/); + return new Range(startRow, col, endRow, 0); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c9search",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c9search_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/c9search"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var C9SearchHighlightRules = require("./c9search_highlight_rules").C9SearchHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var C9StyleFoldMode = require("./folding/c9search").FoldMode; + +var Mode = function() { + this.HighlightRules = C9SearchHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new C9StyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c9search"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-c_cpp.js b/htdocs/includes/ace/mode-c_cpp.js new file mode 100644 index 00000000000..ea6d2229329 --- /dev/null +++ b/htdocs/includes/ace/mode-c_cpp.js @@ -0,0 +1,487 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = c_cppHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c_cpp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-cirru.js b/htdocs/includes/ace/mode-cirru.js new file mode 100644 index 00000000000..9d3bab85983 --- /dev/null +++ b/htdocs/includes/ace/mode-cirru.js @@ -0,0 +1,203 @@ +ace.define("ace/mode/cirru_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CirruHighlightRules = function() { + this.$rules = { + start: [{ + token: 'constant.numeric', + regex: /[\d\.]+/ + }, { + token: 'comment.line.double-dash', + regex: /--/, + next: 'comment' + }, { + token: 'storage.modifier', + regex: /\(/ + }, { + token: 'storage.modifier', + regex: /,/, + next: 'line' + }, { + token: 'support.function', + regex: /[^\(\)"\s]+/, + next: 'line' + }, { + token: 'string.quoted.double', + regex: /"/, + next: 'string' + }, { + token: 'storage.modifier', + regex: /\)/ + }], + comment: [{ + token: 'comment.line.double-dash', + regex: / +[^\n]+/, + next: 'start' + }], + string: [{ + token: 'string.quoted.double', + regex: /"/, + next: 'line' + }, { + token: 'constant.character.escape', + regex: /\\/, + next: 'escape' + }, { + token: 'string.quoted.double', + regex: /[^\\"]+/ + }], + escape: [{ + token: 'constant.character.escape', + regex: /./, + next: 'string' + }], + line: [{ + token: 'constant.numeric', + regex: /[\d\.]+/ + }, { + token: 'markup.raw', + regex: /^\s*/, + next: 'start' + }, { + token: 'storage.modifier', + regex: /\$/, + next: 'start' + }, { + token: 'variable.parameter', + regex: /[^\(\)"\s]+/ + }, { + token: 'storage.modifier', + regex: /\(/, + next: 'start' + }, { + token: 'storage.modifier', + regex: /\)/ + }, { + token: 'markup.raw', + regex: /^ */, + next: 'start' + }, { + token: 'string.quoted.double', + regex: /"/, + next: 'string' + }] + } + +}; + +oop.inherits(CirruHighlightRules, TextHighlightRules); + +exports.CirruHighlightRules = CirruHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/cirru",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cirru_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CirruHighlightRules = require("./cirru_highlight_rules").CirruHighlightRules; +var CoffeeFoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = CirruHighlightRules; + this.foldingRules = new CoffeeFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.$id = "ace/mode/cirru"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-clojure.js b/htdocs/includes/ace/mode-clojure.js new file mode 100644 index 00000000000..c8f7a0d5036 --- /dev/null +++ b/htdocs/includes/ace/mode-clojure.js @@ -0,0 +1,307 @@ +ace.define("ace/mode/clojure_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + + +var ClojureHighlightRules = function() { + + var builtinFunctions = ( + '* *1 *2 *3 *agent* *allow-unresolved-vars* *assert* *clojure-version* ' + + '*command-line-args* *compile-files* *compile-path* *e *err* *file* ' + + '*flush-on-newline* *in* *macro-meta* *math-context* *ns* *out* ' + + '*print-dup* *print-length* *print-level* *print-meta* *print-readably* ' + + '*read-eval* *source-path* *use-context-classloader* ' + + '*warn-on-reflection* + - -> ->> .. / < <= = ' + + '== > > >= >= accessor aclone ' + + 'add-classpath add-watch agent agent-errors aget alength alias all-ns ' + + 'alter alter-meta! alter-var-root amap ancestors and apply areduce ' + + 'array-map aset aset-boolean aset-byte aset-char aset-double aset-float ' + + 'aset-int aset-long aset-short assert assoc assoc! assoc-in associative? ' + + 'atom await await-for await1 bases bean bigdec bigint binding bit-and ' + + 'bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left ' + + 'bit-shift-right bit-test bit-xor boolean boolean-array booleans ' + + 'bound-fn bound-fn* butlast byte byte-array bytes cast char char-array ' + + 'char-escape-string char-name-string char? chars chunk chunk-append ' + + 'chunk-buffer chunk-cons chunk-first chunk-next chunk-rest chunked-seq? ' + + 'class class? clear-agent-errors clojure-version coll? comment commute ' + + 'comp comparator compare compare-and-set! compile complement concat cond ' + + 'condp conj conj! cons constantly construct-proxy contains? count ' + + 'counted? create-ns create-struct cycle dec decimal? declare definline ' + + 'defmacro defmethod defmulti defn defn- defonce defstruct delay delay? ' + + 'deliver deref derive descendants destructure disj disj! dissoc dissoc! ' + + 'distinct distinct? doall doc dorun doseq dosync dotimes doto double ' + + 'double-array doubles drop drop-last drop-while empty empty? ensure ' + + 'enumeration-seq eval even? every? false? ffirst file-seq filter find ' + + 'find-doc find-ns find-var first float float-array float? floats flush ' + + 'fn fn? fnext for force format future future-call future-cancel ' + + 'future-cancelled? future-done? future? gen-class gen-interface gensym ' + + 'get get-in get-method get-proxy-class get-thread-bindings get-validator ' + + 'hash hash-map hash-set identical? identity if-let if-not ifn? import ' + + 'in-ns inc init-proxy instance? int int-array integer? interleave intern ' + + 'interpose into into-array ints io! isa? iterate iterator-seq juxt key ' + + 'keys keyword keyword? last lazy-cat lazy-seq let letfn line-seq list ' + + 'list* list? load load-file load-reader load-string loaded-libs locking ' + + 'long long-array longs loop macroexpand macroexpand-1 make-array ' + + 'make-hierarchy map map? mapcat max max-key memfn memoize merge ' + + 'merge-with meta method-sig methods min min-key mod name namespace neg? ' + + 'newline next nfirst nil? nnext not not-any? not-empty not-every? not= ' + + 'ns ns-aliases ns-imports ns-interns ns-map ns-name ns-publics ' + + 'ns-refers ns-resolve ns-unalias ns-unmap nth nthnext num number? odd? ' + + 'or parents partial partition pcalls peek persistent! pmap pop pop! ' + + 'pop-thread-bindings pos? pr pr-str prefer-method prefers ' + + 'primitives-classnames print print-ctor print-doc print-dup print-method ' + + 'print-namespace-doc print-simple print-special-doc print-str printf ' + + 'println println-str prn prn-str promise proxy proxy-call-with-super ' + + 'proxy-mappings proxy-name proxy-super push-thread-bindings pvalues quot ' + + 'rand rand-int range ratio? rational? rationalize re-find re-groups ' + + 're-matcher re-matches re-pattern re-seq read read-line read-string ' + + 'reduce ref ref-history-count ref-max-history ref-min-history ref-set ' + + 'refer refer-clojure release-pending-sends rem remove remove-method ' + + 'remove-ns remove-watch repeat repeatedly replace replicate require ' + + 'reset! reset-meta! resolve rest resultset-seq reverse reversible? rseq ' + + 'rsubseq second select-keys send send-off seq seq? seque sequence ' + + 'sequential? set set-validator! set? short short-array shorts ' + + 'shutdown-agents slurp some sort sort-by sorted-map sorted-map-by ' + + 'sorted-set sorted-set-by sorted? special-form-anchor special-symbol? ' + + 'split-at split-with str stream? string? struct struct-map subs subseq ' + + 'subvec supers swap! symbol symbol? sync syntax-symbol-anchor take ' + + 'take-last take-nth take-while test the-ns time to-array to-array-2d ' + + 'trampoline transient tree-seq true? type unchecked-add unchecked-dec ' + + 'unchecked-divide unchecked-inc unchecked-multiply unchecked-negate ' + + 'unchecked-remainder unchecked-subtract underive unquote ' + + 'unquote-splicing update-in update-proxy use val vals var-get var-set ' + + 'var? vary-meta vec vector vector? when when-first when-let when-not ' + + 'while with-bindings with-bindings* with-in-str with-loading-context ' + + 'with-local-vars with-meta with-open with-out-str with-precision xml-seq ' + + 'zero? zipmap' + ); + + var keywords = ('throw try var ' + + 'def do fn if let loop monitor-enter monitor-exit new quote recur set!' + ); + + var buildinConstants = ("true false nil"); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": builtinFunctions + }, "identifier", false, " "); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : ";.*$" + }, { + token : "keyword", //parens + regex : "[\\(|\\)]" + }, { + token : "keyword", //lists + regex : "[\\'\\(]" + }, { + token : "keyword", //vectors + regex : "[\\[|\\]]" + }, { + token : "keyword", //sets and maps + regex : "[\\{|\\}|\\#\\{|\\#\\}]" + }, { + token : "keyword", // ampersands + regex : '[\\&]' + }, { + token : "keyword", // metadata + regex : '[\\#\\^\\{]' + }, { + token : "keyword", // anonymous fn syntactic sugar + regex : '[\\%]' + }, { + token : "keyword", // deref reader macro + regex : '[@]' + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language", + regex : '[!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+||=|!=|<=|>=|<>|<|>|!|&&]' + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b" + }, { + token : "string", // single line + regex : '"', + next: "string" + }, { + token : "constant", // symbol + regex : /:[^()\[\]{}'"\^%`,;\s]+/ + }, { + token : "string.regexp", //Regular Expressions + regex : '/#"(?:\\.|(?:\\")|[^""\n])*"/g' + } + + ], + "string" : [ + { + token : "constant.language.escape", + regex : "\\\\.|\\\\$" + }, { + token : "string", + regex : '[^"\\\\]+' + }, { + token : "string", + regex : '"', + next : "start" + } + ] + }; +}; + +oop.inherits(ClojureHighlightRules, TextHighlightRules); + +exports.ClojureHighlightRules = ClojureHighlightRules; +}); + +ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingParensOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\)/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\))/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingParensOutdent.prototype); + +exports.MatchingParensOutdent = MatchingParensOutdent; +}); + +ace.define("ace/mode/clojure",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/clojure_highlight_rules","ace/mode/matching_parens_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ClojureHighlightRules = require("./clojure_highlight_rules").ClojureHighlightRules; +var MatchingParensOutdent = require("./matching_parens_outdent").MatchingParensOutdent; + +var Mode = function() { + this.HighlightRules = ClojureHighlightRules; + this.$outdent = new MatchingParensOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ";"; + this.minorIndentFunctions = ["defn", "defn-", "defmacro", "def", "deftest", "testing"]; + + this.$toIndent = function(str) { + return str.split('').map(function(ch) { + if (/\s/.exec(ch)) { + return ch; + } else { + return ' '; + } + }).join(''); + }; + + this.$calculateIndent = function(line, tab) { + var baseIndent = this.$getIndent(line); + var delta = 0; + var isParen, ch; + for (var i = line.length - 1; i >= 0; i--) { + ch = line[i]; + if (ch === '(') { + delta--; + isParen = true; + } else if (ch === '(' || ch === '[' || ch === '{') { + delta--; + isParen = false; + } else if (ch === ')' || ch === ']' || ch === '}') { + delta++; + } + if (delta < 0) { + break; + } + } + if (delta < 0 && isParen) { + i += 1; + var iBefore = i; + var fn = ''; + while (true) { + ch = line[i]; + if (ch === ' ' || ch === '\t') { + if(this.minorIndentFunctions.indexOf(fn) !== -1) { + return this.$toIndent(line.substring(0, iBefore - 1) + tab); + } else { + return this.$toIndent(line.substring(0, i + 1)); + } + } else if (ch === undefined) { + return this.$toIndent(line.substring(0, iBefore - 1) + tab); + } + fn += line[i]; + i++; + } + } else if(delta < 0 && !isParen) { + return this.$toIndent(line.substring(0, i+1)); + } else if(delta > 0) { + baseIndent = baseIndent.substring(0, baseIndent.length - tab.length); + return baseIndent; + } else { + return baseIndent; + } + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$calculateIndent(line, tab); + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/clojure"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-cobol.js b/htdocs/includes/ace/mode-cobol.js new file mode 100644 index 00000000000..89367e00563 --- /dev/null +++ b/htdocs/includes/ace/mode-cobol.js @@ -0,0 +1,94 @@ +ace.define("ace/mode/cobol_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CobolHighlightRules = function() { +var keywords = "ACCEPT|MERGE|SUM|ADD||MESSAGE|TABLE|ADVANCING|MODE|TAPE|" + +"AFTER|MULTIPLY|TEST|ALL|NEGATIVE|TEXT|ALPHABET|NEXT|THAN|" + +"ALSO|NO|THEN|ALTERNATE|NOT|THROUGH|AND|NUMBER|THRU|ANY|OCCURS|" + +"TIME|ARE|OF|TO|AREA|OFF|TOP||ASCENDING|OMITTED|TRUE|ASSIGN|ON|TYPE|AT|OPEN|" + +"UNIT|AUTHOR|OR|UNTIL|BEFORE|OTHER|UP|BLANK|OUTPUT|USE|BLOCK|PAGE|USING|BOTTOM|" + +"PERFORM|VALUE|BY|PIC|VALUES|CALL|PICTURE|WHEN|CANCEL|PLUS|WITH|CD|POINTER|WRITE|" + +"CHARACTER|POSITION||ZERO|CLOSE|POSITIVE|ZEROS|COLUMN|PROCEDURE|ZEROES|COMMA|PROGRAM|" + +"COMMON|PROGRAM-ID|COMMUNICATION|QUOTE|COMP|RANDOM|COMPUTE|READ|CONTAINS|RECEIVE|CONFIGURATION|" + +"RECORD|CONTINUE|REDEFINES|CONTROL|REFERENCE|COPY|REMAINDER|COUNT|REPLACE|DATA|REPORT|DATE|RESERVE|" + +"DAY|RESET|DELETE|RETURN|DESTINATION|REWIND|DISABLE|REWRITE|DISPLAY|RIGHT|DIVIDE|RUN|DOWN|SAME|" + +"ELSE|SEARCH|ENABLE|SECTION|END|SELECT|ENVIRONMENT|SENTENCE|EQUAL|SET|ERROR|SIGN|EXIT|SEQUENTIAL|" + +"EXTERNAL|SIZE|FLASE|SORT|FILE|SOURCE|LENGTH|SPACE|LESS|STANDARD|LIMIT|START|LINE|STOP|LOCK|STRING|LOW-VALUE|SUBTRACT"; + + var builtinConstants = ( + "true|false|null" + ); + + var builtinFunctions = ( + "count|min|max|avg|sum|rank|now|coalesce|main" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "\\*.*$" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "string", // ' string + regex : "'.*?'" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ] + }; +}; + +oop.inherits(CobolHighlightRules, TextHighlightRules); + +exports.CobolHighlightRules = CobolHighlightRules; +}); + +ace.define("ace/mode/cobol",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/cobol_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CobolHighlightRules = require("./cobol_highlight_rules").CobolHighlightRules; + +var Mode = function() { + this.HighlightRules = CobolHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "*"; + + this.$id = "ace/mode/cobol"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-coffee.js b/htdocs/includes/ace/mode-coffee.js new file mode 100644 index 00000000000..5ba85894f10 --- /dev/null +++ b/htdocs/includes/ace/mode-coffee.js @@ -0,0 +1,392 @@ +ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + oop.inherits(CoffeeHighlightRules, TextHighlightRules); + + function CoffeeHighlightRules() { + var identifier = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; + + var keywords = ( + "this|throw|then|try|typeof|super|switch|return|break|by|continue|" + + "catch|class|in|instanceof|is|isnt|if|else|extends|for|own|" + + "finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|" + + "or|on|unless|until|and|yes" + ); + + var langConstant = ( + "true|false|null|undefined|NaN|Infinity" + ); + + var illegal = ( + "case|const|default|function|var|void|with|enum|export|implements|" + + "interface|let|package|private|protected|public|static|yield" + ); + + var supportClass = ( + "Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + + "SyntaxError|TypeError|URIError|" + + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray" + ); + + var supportFunction = ( + "Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|" + + "encodeURIComponent|decodeURI|decodeURIComponent|String|" + ); + + var variableLanguage = ( + "window|arguments|prototype|document" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": langConstant, + "invalid.illegal": illegal, + "language.support.class": supportClass, + "language.support.function": supportFunction, + "variable.language": variableLanguage + }, "identifier"); + + var functionRule = { + token: ["paren.lparen", "variable.parameter", "paren.rparen", "text", "storage.type"], + regex: /(?:(\()((?:"[^")]*?"|'[^')]*?'|\/[^\/)]*?\/|[^()"'\/])*?)(\))(\s*))?([\-=]>)/.source + }; + + var stringEscape = /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/; + + this.$rules = { + start : [ + { + token : "constant.numeric", + regex : "(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)" + }, { + stateName: "qdoc", + token : "string", regex : "'''", next : [ + {token : "string", regex : "'''", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qqdoc", + token : "string", + regex : '"""', + next : [ + {token : "string", regex : '"""', next : "start"}, + {token : "paren.string", regex : '#{', push : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qstring", + token : "string", regex : "'", next : [ + {token : "string", regex : "'", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qqstring", + token : "string.start", regex : '"', next : [ + {token : "string.end", regex : '"', next : "start"}, + {token : "paren.string", regex : '#{', push : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "js", + token : "string", regex : "`", next : [ + {token : "string", regex : "`", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift() || ""; + if (this.next.indexOf("string") != -1) + return "paren.string"; + } + return "paren"; + } + }, { + token : "string.regex", + regex : "///", + next : "heregex" + }, { + token : "string.regex", + regex : /(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/ + }, { + token : "comment", + regex : "###(?!#)", + next : "comment" + }, { + token : "comment", + regex : "#.*" + }, { + token : ["punctuation.operator", "text", "identifier"], + regex : "(\\.)(\\s*)(" + illegal + ")" + }, { + token : "punctuation.operator", + regex : "\\.{1,3}" + }, { + token : ["keyword", "text", "language.support.class", + "text", "keyword", "text", "language.support.class"], + regex : "(class)(\\s+)(" + identifier + ")(?:(\\s+)(extends)(\\s+)(" + identifier + "))?" + }, { + token : ["entity.name.function", "text", "keyword.operator", "text"].concat(functionRule.token), + regex : "(" + identifier + ")(\\s*)([=:])(\\s*)" + functionRule.regex + }, + functionRule, + { + token : "variable", + regex : "@(?:" + identifier + ")?" + }, { + token: keywordMapper, + regex : identifier + }, { + token : "punctuation.operator", + regex : "\\,|\\." + }, { + token : "storage.type", + regex : "[\\-=]>" + }, { + token : "keyword.operator", + regex : "(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])" + }, { + token : "paren.lparen", + regex : "[({[]" + }, { + token : "paren.rparen", + regex : "[\\]})]" + }, { + token : "text", + regex : "\\s+" + }], + + + heregex : [{ + token : "string.regex", + regex : '.*?///[imgy]{0,4}', + next : "start" + }, { + token : "comment.regex", + regex : "\\s+(?:#.*)?" + }, { + token : "string.regex", + regex : "\\S+" + }], + + comment : [{ + token : "comment", + regex : '###', + next : "start" + }, { + defaultToken : "comment" + }] + }; + this.normalizeRules(); + } + + exports.CoffeeHighlightRules = CoffeeHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/coffee",["require","exports","module","ace/mode/coffee_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee","ace/range","ace/mode/text","ace/worker/worker_client","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Rules = require("./coffee_highlight_rules").CoffeeHighlightRules; +var Outdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var FoldMode = require("./folding/coffee").FoldMode; +var Range = require("../range").Range; +var TextMode = require("./text").Mode; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var oop = require("../lib/oop"); + +function Mode() { + this.HighlightRules = Rules; + this.$outdent = new Outdent(); + this.foldingRules = new FoldMode(); +} + +oop.inherits(Mode, TextMode); + +(function() { + var indenter = /(?:[({[=:]|[-=]>|\b(?:else|try|(?:swi|ca)tch(?:\s+[$A-Za-z_\x7f-\uffff][$\w\x7f-\uffff]*)?|finally))\s*$|^\s*(else\b\s*)?(?:if|for|while|loop)\b(?!.*\bthen\b)/; + + this.lineCommentStart = "#"; + this.blockComment = {start: "###", end: "###"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + + if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') && + state === 'start' && indenter.test(line)) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/coffee_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/coffee"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-coldfusion.js b/htdocs/includes/ace/mode-coldfusion.js new file mode 100644 index 00000000000..edbdb5b49c6 --- /dev/null +++ b/htdocs/includes/ace/mode-coldfusion.js @@ -0,0 +1,2567 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/coldfusion_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var ColdfusionHighlightRules = function() { + HtmlHighlightRules.call(this); + this.$rules.tag[2].token = function (start, tag) { + var group = tag.slice(0,2) == "cf" ? "keyword" : "meta.tag"; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + group + ".tag-name.xml"]; + } + + var jsAndCss = Object.keys(this.$rules).filter(function(x) { + return /^(js|css)-/.test(x); + }); + this.embedRules({ + cfmlComment: [ + { regex: "", token: "comment.end", next: "pop"}, + { defaultToken: "comment"} + ] + }, "", [ + { regex: "", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/curly_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + + +var CurlyHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules["start"].unshift({ + token: "variable", + regex: "{{", + push: "curly-start" + }); + + this.$rules["curly-start"] = [{ + token: "variable", + regex: "}}", + next: "pop" + }]; + + this.normalizeRules(); +}; + +oop.inherits(CurlyHighlightRules, HtmlHighlightRules); + +exports.CurlyHighlightRules = CurlyHighlightRules; + +}); + +ace.define("ace/mode/curly",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/matching_brace_outdent","ace/mode/folding/html","ace/mode/curly_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var HtmlFoldMode = require("./folding/html").FoldMode; +var CurlyHighlightRules = require("./curly_highlight_rules").CurlyHighlightRules; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = CurlyHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new HtmlFoldMode(); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.$id = "ace/mode/curly"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-d.js b/htdocs/includes/ace/mode-d.js new file mode 100644 index 00000000000..672411a0ccb --- /dev/null +++ b/htdocs/includes/ace/mode-d.js @@ -0,0 +1,513 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/d_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DHighlightRules = function() { + + var keywords = ( + "this|super|import|module|body|mixin|__traits|invariant|alias|asm|delete|"+ + "typeof|typeid|sizeof|cast|new|in|is|typedef|__vector|__parameters" + ); + + var keywordControls = ( + "break|case|continue|default|do|else|for|foreach|foreach_reverse|goto|if|" + + "return|switch|while|catch|try|throw|finally|version|assert|unittest|with" + ); + + var types = ( + "auto|bool|char|dchar|wchar|byte|ubyte|float|double|real|" + + "cfloat|creal|cdouble|cent|ifloat|ireal|idouble|" + + "int|long|short|void|uint|ulong|ushort|ucent|" + + "function|delegate|string|wstring|dstring|size_t|ptrdiff_t|hash_t|Object" + ); + + var modifiers = ( + "abstract|align|debug|deprecated|export|extern|const|final|in|inout|out|" + + "ref|immutable|lazy|nothrow|override|package|pragma|private|protected|" + + "public|pure|scope|shared|__gshared|synchronized|static|volatile" + ); + + var storages = ( + "class|struct|union|template|interface|enum|macro" + ); + + var stringEscapesSeq = { + token: "constant.language.escape", + regex: "\\\\(?:(?:x[0-9A-F]{2})|(?:[0-7]{1,3})|(?:['\"\\?0abfnrtv\\\\])|" + + "(?:u[0-9a-fA-F]{4})|(?:U[0-9a-fA-F]{8}))" + }; + + var builtinConstants = ( + "null|true|false|"+ + "__DATE__|__EOF__|__TIME__|__TIMESTAMP__|__VENDOR__|__VERSION__|"+ + "__FILE__|__MODULE__|__LINE__|__FUNCTION__|__PRETTY_FUNCTION__" + ); + + var operators = ( + "/|/\\=|&|&\\=|&&|\\|\\|\\=|\\|\\||\\-|\\-\\=|\\-\\-|\\+|" + + "\\+\\=|\\+\\+|\\<|\\<\\=|\\<\\<|\\<\\<\\=|\\<\\>|\\<\\>\\=|\\>|\\>\\=|\\>\\>\\=|" + + "\\>\\>\\>\\=|\\>\\>|\\>\\>\\>|\\!|\\!\\=|\\!\\<\\>|\\!\\<\\>\\=|\\!\\<|\\!\\<\\=|" + + "\\!\\>|\\!\\>\\=|\\?|\\$|\\=|\\=\\=|\\*|\\*\\=|%|%\\=|" + + "\\^|\\^\\=|\\^\\^|\\^\\^\\=|~|~\\=|\\=\\>|#" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.modifier" : modifiers, + "keyword.control" : keywordControls, + "keyword.type" : types, + "keyword": keywords, + "keyword.storage": storages, + "punctation": "\\.|\\,|;|\\.\\.|\\.\\.\\.", + "keyword.operator" : operators, + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z_\u00a1-\uffff][a-zA-Z\\d_\u00a1-\uffff]*\\b"; + + this.$rules = { + "start" : [ + { //-------------------------------------------------------- COMMENTS + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "star-comment" + }, { + token: "comment.shebang", + regex: "^\\s*#!.*" + }, { + token : "comment", + regex : "\\/\\+", + next: "plus-comment" + }, { //-------------------------------------------------------- STRINGS + onMatch: function(value, currentState, state) { + state.unshift(this.next, value.substr(2)); + return "string"; + }, + regex: 'q"(?:[\\[\\(\\{\\<]+)', + next: 'operator-heredoc-string' + }, { + onMatch: function(value, currentState, state) { + state.unshift(this.next, value.substr(2)); + return "string"; + }, + regex: 'q"(?:[a-zA-Z_]+)$', + next: 'identifier-heredoc-string' + }, { + token : "string", // multi line string start + regex : '[xr]?"', + next : "quote-string" + }, { + token : "string", // multi line string start + regex : '[xr]?`', + next : "backtick-string" + }, { + token : "string", // single line + regex : "[xr]?['](?:(?:\\\\.)|(?:[^'\\\\]))*?['][cdw]?" + }, { //-------------------------------------------------------- RULES + token: ["keyword", "text", "paren.lparen"], + regex: /(asm)(\s*)({)/, + next: "d-asm" + }, { + token: ["keyword", "text", "paren.lparen", "constant.language"], + regex: "(__traits)(\\s*)(\\()("+identifierRe+")" + }, { // import|module abc + token: ["keyword", "text", "variable.module"], + regex: "(import|module)(\\s+)((?:"+identifierRe+"\\.?)*)" + }, { // storage Name + token: ["keyword.storage", "text", "entity.name.type"], + regex: "("+storages+")(\\s*)("+identifierRe+")" + }, { // alias|typedef foo bar; + token: ["keyword", "text", "variable.storage", "text"], + regex: "(alias|typedef)(\\s*)("+identifierRe+")(\\s*)" + }, { //-------------------------------------------------------- OTHERS + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F_]+(l|ul|u|f|F|L|U|UL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d[\\d_]*(?:(?:\\.[\\d_]*)?(?:[eE][+-]?[\\d_]+)?)?(l|ul|u|f|F|L|U|UL)?\\b" + }, { + token: "entity.other.attribute-name", + regex: "@"+identifierRe + }, { + token : keywordMapper, + regex : "[a-zA-Z_][a-zA-Z0-9_]*\\b" + }, { + token : "keyword.operator", + regex : operators + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\.|\\:" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "star-comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken: 'comment' + } + ], + "plus-comment" : [ + { + token : "comment", // closing comment + regex : "\\+\\/", + next : "start" + }, { + defaultToken: 'comment' + } + ], + + "quote-string" : [ + stringEscapesSeq, + { + token : "string", + regex : '"[cdw]?', + next : "start" + }, { + defaultToken: 'string' + } + ], + + "backtick-string" : [ + stringEscapesSeq, + { + token : "string", + regex : '`[cdw]?', + next : "start" + }, { + defaultToken: 'string' + } + ], + + "operator-heredoc-string": [ + { + onMatch: function(value, currentState, state) { + value = value.substring(value.length-2, value.length-1); + var map = {'>':'<',']':'[',')':'(','}':'{'}; + if(Object.keys(map).indexOf(value) != -1) + value = map[value]; + if(value != state[1]) return "string"; + state.shift(); + state.shift(); + + return "string"; + }, + regex: '(?:[\\]\\)}>]+)"', + next: 'start' + }, { + token: 'string', + regex: '[^\\]\\)}>]+' + } + ], + + "identifier-heredoc-string": [ + { + onMatch: function(value, currentState, state) { + value = value.substring(0, value.length-1); + if(value != state[1]) return "string"; + state.shift(); + state.shift(); + + return "string"; + }, + regex: '^(?:[A-Za-z_][a-zA-Z0-9]+)"', + next: 'start' + }, { + token: 'string', + regex: '[^\\]\\)}>]+' + } + ], + + "d-asm": [ + { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: 'keyword.instruction', + regex: '[a-zA-Z]+', + next: 'd-asm-instruction' + }, { + token: "text", + regex: "\\s+" + } + ], + 'd-asm-instruction': [ + { + token: 'constant.language', + regex: /AL|AH|AX|EAX|BL|BH|BX|EBX|CL|CH|CX|ECX|DL|DH|DX|EDX|BP|EBP|SP|ESP|DI|EDI|SI|ESI/i + }, { + token: 'identifier', + regex: '[a-zA-Z]+' + }, { + token: 'string', + regex: '".*"' + }, { + token: 'comment', + regex: '//.*$' + }, { + token: 'constant.numeric', + regex: '[0-9.xA-F]+' + }, { + token: 'punctuation.operator', + regex: '\\,' + }, { + token: 'punctuation.operator', + regex: ';', + next: 'd-asm' + }, { + token: 'text', + regex: '\\s+' + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +DHighlightRules.metaData = { + comment: 'D language', + fileTypes: [ 'd', 'di' ], + firstLineMatch: '^#!.*\\b[glr]?dmd\\b.', + foldingStartMarker: '(?x)/\\*\\*(?!\\*)|^(?![^{]*?//|[^{]*?/\\*(?!.*?\\*/.*?\\{)).*?\\{\\s*($|//|/\\*(?!.*?\\*/.*\\S))', + foldingStopMarker: '(? indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/d",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/d_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var DHighlightRules = require("./d_highlight_rules").DHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = DHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/d"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-dart.js b/htdocs/includes/ace/mode-dart.js new file mode 100644 index 00000000000..c70423428ec --- /dev/null +++ b/htdocs/includes/ace/mode-dart.js @@ -0,0 +1,689 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = c_cppHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c_cpp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/dart_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DartHighlightRules = function() { + + var constantLanguage = "true|false|null"; + var variableLanguage = "this|super"; + var keywordControl = "try|catch|finally|throw|rethrow|assert|break|case|continue|default|do|else|for|if|in|return|switch|while|new|deferred|async|await"; + var keywordDeclaration = "abstract|class|extends|external|factory|implements|get|native|operator|set|typedef|with|enum"; + var storageModifier = "static|final|const"; + var storageType = "void|bool|num|int|double|dynamic|var|String"; + + var keywordMapper = this.createKeywordMapper({ + "constant.language.dart": constantLanguage, + "variable.language.dart": variableLanguage, + "keyword.control.dart": keywordControl, + "keyword.declaration.dart": keywordDeclaration, + "storage.modifier.dart": storageModifier, + "storage.type.primitive.dart": storageType + }, "identifier"); + + var stringfill = { + defaultToken : "string" + }; + + this.$rules = + { + "start": [ + { + token : "comment", + regex : /\/\/.*$/ + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : /\/\*/, + next : "comment" + }, + { + token: ["meta.preprocessor.script.dart"], + regex: "^(#!.*)$" + }, + { + token: "keyword.other.import.dart", + regex: "(?:\\b)(?:library|import|export|part|of|show|hide)(?:\\b)" + }, + { + token : ["keyword.other.import.dart", "text"], + regex : "(?:\\b)(prefix)(\\s*:)" + }, + { + regex: "\\bas\\b", + token: "keyword.cast.dart" + }, + { + regex: "\\?|:", + token: "keyword.control.ternary.dart" + }, + { + regex: "(?:\\b)(is\\!?)(?:\\b)", + token: ["keyword.operator.dart"] + }, + { + regex: "(<<|>>>?|~|\\^|\\||&)", + token: ["keyword.operator.bitwise.dart"] + }, + { + regex: "((?:&|\\^|\\||<<|>>>?)=)", + token: ["keyword.operator.assignment.bitwise.dart"] + }, + { + regex: "(===?|!==?|<=?|>=?)", + token: ["keyword.operator.comparison.dart"] + }, + { + regex: "((?:[+*/%-]|\\~)=)", + token: ["keyword.operator.assignment.arithmetic.dart"] + }, + { + regex: "=", + token: "keyword.operator.assignment.dart" + }, + { + token : "string", + regex : "'''", + next : "qdoc" + }, + { + token : "string", + regex : '"""', + next : "qqdoc" + }, + { + token : "string", + regex : "'", + next : "qstring" + }, + { + token : "string", + regex : '"', + next : "qqstring" + }, + { + regex: "(\\-\\-|\\+\\+)", + token: ["keyword.operator.increment-decrement.dart"] + }, + { + regex: "(\\-|\\+|\\*|\\/|\\~\\/|%)", + token: ["keyword.operator.arithmetic.dart"] + }, + { + regex: "(!|&&|\\|\\|)", + token: ["keyword.operator.logical.dart"] + }, + { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, + { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, + { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qdoc" : [ + { + token : "string", + regex : ".*?'''", + next : "start" + }, stringfill], + + "qqdoc" : [ + { + token : "string", + regex : '.*?"""', + next : "start" + }, stringfill], + + "qstring" : [ + { + token : "string", + regex : "[^\\\\']*(?:\\\\.[^\\\\']*)*'", + next : "start" + }, stringfill], + + "qqstring" : [ + { + token : "string", + regex : '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"', + next : "start" + }, stringfill] +} + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(DartHighlightRules, TextHighlightRules); + +exports.DartHighlightRules = DartHighlightRules; +}); + +ace.define("ace/mode/dart",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/dart_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var CMode = require("./c_cpp").Mode; +var DartHighlightRules = require("./dart_highlight_rules").DartHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + CMode.call(this); + this.HighlightRules = DartHighlightRules; + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, CMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/dart"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-diff.js b/htdocs/includes/ace/mode-diff.js new file mode 100644 index 00000000000..ae878dbe26f --- /dev/null +++ b/htdocs/includes/ace/mode-diff.js @@ -0,0 +1,139 @@ +ace.define("ace/mode/diff_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DiffHighlightRules = function() { + + this.$rules = { + "start" : [{ + regex: "^(?:\\*{15}|={67}|-{3}|\\+{3})$", + token: "punctuation.definition.separator.diff", + "name": "keyword" + }, { //diff.range.unified + regex: "^(@@)(\\s*.+?\\s*)(@@)(.*)$", + token: [ + "constant", + "constant.numeric", + "constant", + "comment.doc.tag" + ] + }, { //diff.range.normal + regex: "^(\\d+)([,\\d]+)(a|d|c)(\\d+)([,\\d]+)(.*)$", + token: [ + "constant.numeric", + "punctuation.definition.range.diff", + "constant.function", + "constant.numeric", + "punctuation.definition.range.diff", + "invalid" + ], + "name": "meta." + }, { + regex: "^(\\-{3}|\\+{3}|\\*{3})( .+)$", + token: [ + "constant.numeric", + "meta.tag" + ] + }, { // added + regex: "^([!+>])(.*?)(\\s*)$", + token: [ + "support.constant", + "text", + "invalid" + ] + }, { // removed + regex: "^([<\\-])(.*?)(\\s*)$", + token: [ + "support.function", + "string", + "invalid" + ] + }, { + regex: "^(diff)(\\s+--\\w+)?(.+?)( .+)?$", + token: ["variable", "variable", "keyword", "variable"] + }, { + regex: "^Index.+$", + token: "variable" + }, { + regex: "^\\s+$", + token: "text" + }, { + regex: "\\s*$", + token: "invalid" + }, { + defaultToken: "invisible", + caseInsensitive: true + } + ] + }; +}; + +oop.inherits(DiffHighlightRules, TextHighlightRules); + +exports.DiffHighlightRules = DiffHighlightRules; +}); + +ace.define("ace/mode/folding/diff",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function(levels, flag) { + this.regExpList = levels; + this.flag = flag; + this.foldingStartMarker = RegExp("^(" + levels.join("|") + ")", this.flag); +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var start = {row: row, column: line.length}; + + var regList = this.regExpList; + for (var i = 1; i <= regList.length; i++) { + var re = RegExp("^(" + regList.slice(0, i).join("|") + ")", this.flag); + if (re.test(line)) + break; + } + + for (var l = session.getLength(); ++row < l; ) { + line = session.getLine(row); + if (re.test(line)) + break; + } + if (row == start.row + 1) + return; + return Range.fromPoints(start, {row: row - 1, column: line.length}); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/diff",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/diff_highlight_rules","ace/mode/folding/diff"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./diff_highlight_rules").DiffHighlightRules; +var FoldMode = require("./folding/diff").FoldMode; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.foldingRules = new FoldMode(["diff", "index", "\\+{3}", "@@|\\*{5}"], "i"); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.$id = "ace/mode/diff"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-django.js b/htdocs/includes/ace/mode-django.js new file mode 100644 index 00000000000..b681d992f54 --- /dev/null +++ b/htdocs/includes/ace/mode-django.js @@ -0,0 +1,2565 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/django",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DjangoHighlightRules = function(){ + this.$rules = { + 'start': [{ + token: "string", + regex: '".*?"' + }, { + token: "string", + regex: "'.*?'" + }, { + token: "constant", + regex: '[0-9]+' + }, { + token: "variable", + regex: "[-_a-zA-Z0-9:]+" + }], + 'tag': [{ + token: "entity.name.function", + regex: "[a-zA-Z][_a-zA-Z0-9]*", + next: "start" + }] + }; +}; + +oop.inherits(DjangoHighlightRules, TextHighlightRules) + +var DjangoHtmlHighlightRules = function() { + this.$rules = new HtmlHighlightRules().getRules(); + + for (var i in this.$rules) { + this.$rules[i].unshift({ + token: "comment.line", + regex: "\\{#.*?#\\}" + }, { + token: "comment.block", + regex: "\\{\\%\\s*comment\\s*\\%\\}", + merge: true, + next: "django-comment" + }, { + token: "constant.language", + regex: "\\{\\{", + next: "django-start" + }, { + token: "constant.language", + regex: "\\{\\%", + next: "django-tag" + }); + this.embedRules(DjangoHighlightRules, "django-", [{ + token: "comment.block", + regex: "\\{\\%\\s*endcomment\\s*\\%\\}", + merge: true, + next: "start" + }, { + token: "constant.language", + regex: "\\%\\}", + next: "start" + }, { + token: "constant.language", + regex: "\\}\\}", + next: "start" + }]); + } +}; + +oop.inherits(DjangoHtmlHighlightRules, HtmlHighlightRules); + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = DjangoHtmlHighlightRules; +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.$id = "ace/mode/django"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-dockerfile.js b/htdocs/includes/ace/mode-dockerfile.js new file mode 100644 index 00000000000..d030b9c35b4 --- /dev/null +++ b/htdocs/includes/ace/mode-dockerfile.js @@ -0,0 +1,492 @@ +ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var reservedKeywords = exports.reservedKeywords = ( + '!|{|}|case|do|done|elif|else|'+ + 'esac|fi|for|if|in|then|until|while|'+ + '&|;|export|local|read|typeset|unset|'+ + 'elif|select|set|function|declare|readonly' + ); + +var languageConstructs = exports.languageConstructs = ( + '[|]|alias|bg|bind|break|builtin|'+ + 'cd|command|compgen|complete|continue|'+ + 'dirs|disown|echo|enable|eval|exec|'+ + 'exit|fc|fg|getopts|hash|help|history|'+ + 'jobs|kill|let|logout|popd|printf|pushd|'+ + 'pwd|return|set|shift|shopt|source|'+ + 'suspend|test|times|trap|type|ulimit|'+ + 'umask|unalias|wait' +); + +var ShHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "keyword": reservedKeywords, + "support.function.builtin": languageConstructs, + "invalid.deprecated": "debugger" + }, "identifier"); + + var integer = "(?:(?:[1-9]\\d*)|(?:0))"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + var fileDescriptor = "(?:&" + intPart + ")"; + + var variableName = "[a-zA-Z_][a-zA-Z0-9_]*"; + var variable = "(?:" + variableName + "=)"; + + var builtinVariable = "(?:\\$(?:SHLVL|\\$|\\!|\\?))"; + + var func = "(?:" + variableName + "\\s*\\(\\))"; + + this.$rules = { + "start" : [{ + token : "constant", + regex : /\\./ + }, { + token : ["text", "comment"], + regex : /(^|\s)(#.*)$/ + }, { + token : "string.start", + regex : '"', + push : [{ + token : "constant.language.escape", + regex : /\\(?:[$`"\\]|$)/ + }, { + include : "variables" + }, { + token : "keyword.operator", + regex : /`/ // TODO highlight ` + }, { + token : "string.end", + regex : '"', + next: "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string", + regex : "\\$'", + push : [{ + token : "constant.language.escape", + regex : /\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/ + }, { + token : "string", + regex : "'", + next: "pop" + }, { + defaultToken: "string" + }] + }, { + regex : "<<<", + token : "keyword.operator" + }, { + stateName: "heredoc", + regex : "(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[4]); + return [ + {type:"constant", value: tokens[1]}, + {type:"text", value: tokens[2]}, + {type:"string", value: tokens[3]}, + {type:"support.class", value: tokens[4]}, + {type:"string", value: tokens[5]} + ]; + }, + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^\t+" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : ["keyword", "text", "text", "text", "variable"], + regex : /(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/ + }, { + token : "variable.language", + regex : builtinVariable + }, { + token : "variable", + regex : variable + }, { + include : "variables" + }, { + token : "support.function", + regex : func + }, { + token : "support.function", + regex : fileDescriptor + }, { + token : "string", // ' string + start : "'", end : "'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_][a-zA-Z0-9_]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]" + }, { + token : "punctuation.operator", + regex : ";" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]]" + }, { + token : "paren.rparen", + regex : "[\\)\\}]", + next : "pop" + }], + variables: [{ + token : "variable", + regex : /(\$)(\w+)/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\()/, + push : "start" + }, { + token : ["variable", "paren.lparen", "keyword.operator", "variable", "keyword.operator"], + regex : /(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/, + push : "start" + }, { + token : "variable", + regex : /\$[*@#?\-$!0_]/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\{)/, + push : "start" + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(ShHighlightRules, TextHighlightRules); + +exports.ShHighlightRules = ShHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ShHighlightRules = require("./sh_highlight_rules").ShHighlightRules; +var Range = require("../range").Range; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; + +var Mode = function() { + this.HighlightRules = ShHighlightRules; + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = new CstyleBehaviour(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + + this.$id = "ace/mode/sh"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/dockerfile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/sh_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var ShHighlightRules = require("./sh_highlight_rules").ShHighlightRules; + +var DockerfileHighlightRules = function() { + ShHighlightRules.call(this); + + var startRules = this.$rules.start; + for (var i = 0; i < startRules.length; i++) { + if (startRules[i].token == "variable.language") { + startRules.splice(i, 0, { + token: "constant.language", + regex: "(?:^(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|VOLUME|USER|WORKDIR|ONBUILD|COPY|LABEL)\\b)", + caseInsensitive: true + }); + break; + } + } + +}; + +oop.inherits(DockerfileHighlightRules, ShHighlightRules); + +exports.DockerfileHighlightRules = DockerfileHighlightRules; +}); + +ace.define("ace/mode/dockerfile",["require","exports","module","ace/lib/oop","ace/mode/sh","ace/mode/dockerfile_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var ShMode = require("./sh").Mode; +var DockerfileHighlightRules = require("./dockerfile_highlight_rules").DockerfileHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + ShMode.call(this); + + this.HighlightRules = DockerfileHighlightRules; + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, ShMode); + +(function() { + this.$id = "ace/mode/dockerfile"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-dot.js b/htdocs/includes/ace/mode-dot.js new file mode 100644 index 00000000000..72914768f89 --- /dev/null +++ b/htdocs/includes/ace/mode-dot.js @@ -0,0 +1,410 @@ +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/dot_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/doc_comment_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; + +var DotHighlightRules = function() { + + var keywords = lang.arrayToMap( + ("strict|node|edge|graph|digraph|subgraph").split("|") + ); + + var attributes = lang.arrayToMap( + ("damping|k|url|area|arrowhead|arrowsize|arrowtail|aspect|bb|bgcolor|center|charset|clusterrank|color|colorscheme|comment|compound|concentrate|constraint|decorate|defaultdist|dim|dimen|dir|diredgeconstraints|distortion|dpi|edgeurl|edgehref|edgetarget|edgetooltip|epsilon|esep|fillcolor|fixedsize|fontcolor|fontname|fontnames|fontpath|fontsize|forcelabels|gradientangle|group|headurl|head_lp|headclip|headhref|headlabel|headport|headtarget|headtooltip|height|href|id|image|imagepath|imagescale|label|labelurl|label_scheme|labelangle|labeldistance|labelfloat|labelfontcolor|labelfontname|labelfontsize|labelhref|labeljust|labelloc|labeltarget|labeltooltip|landscape|layer|layerlistsep|layers|layerselect|layersep|layout|len|levels|levelsgap|lhead|lheight|lp|ltail|lwidth|margin|maxiter|mclimit|mindist|minlen|mode|model|mosek|nodesep|nojustify|normalize|nslimit|nslimit1|ordering|orientation|outputorder|overlap|overlap_scaling|pack|packmode|pad|page|pagedir|pencolor|penwidth|peripheries|pin|pos|quadtree|quantum|rank|rankdir|ranksep|ratio|rects|regular|remincross|repulsiveforce|resolution|root|rotate|rotation|samehead|sametail|samplepoints|scale|searchsize|sep|shape|shapefile|showboxes|sides|size|skew|smoothing|sortv|splines|start|style|stylesheet|tailurl|tail_lp|tailclip|tailhref|taillabel|tailport|tailtarget|tailtooltip|target|tooltip|truecolor|vertices|viewport|voro_margin|weight|width|xlabel|xlp|z").split("|") + ); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /\/\/.*$/ + }, { + token : "comment", + regex : /#.*$/ + }, { + token : "comment", // multi line comment + merge : true, + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", + regex : /[+\-]?\d+(?:(?:\.\d*)?(?:[eE][+\-]?\d+)?)?\b/ + }, { + token : "keyword.operator", + regex : /\+|=|\->/ + }, { + token : "punctuation.operator", + regex : /,|;/ + }, { + token : "paren.lparen", + regex : /[\[{]/ + }, { + token : "paren.rparen", + regex : /[\]}]/ + }, { + token: "comment", + regex: /^#!.*$/ + }, { + token: function(value) { + if (keywords.hasOwnProperty(value.toLowerCase())) { + return "keyword"; + } + else if (attributes.hasOwnProperty(value.toLowerCase())) { + return "variable"; + } + else { + return "text"; + } + }, + regex: "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '[^"\\\\]+', + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qqstring", + merge : true + }, { + token : "string", + regex : '"|$', + next : "start", + merge : true + } + ], + "qstring" : [ + { + token : "string", + regex : "[^'\\\\]+", + merge : true + }, { + token : "string", + regex : "\\\\$", + next : "qstring", + merge : true + }, { + token : "string", + regex : "'|$", + next : "start", + merge : true + } + ] + }; +}; + +oop.inherits(DotHighlightRules, TextHighlightRules); + +exports.DotHighlightRules = DotHighlightRules; + +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/dot",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matching_brace_outdent","ace/mode/dot_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var DotHighlightRules = require("./dot_highlight_rules").DotHighlightRules; +var DotFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = DotHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new DotFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ["//", "#"]; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/dot"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-drools.js b/htdocs/includes/ace/mode-drools.js new file mode 100644 index 00000000000..5863afe030f --- /dev/null +++ b/htdocs/includes/ace/mode-drools.js @@ -0,0 +1,457 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JavaHighlightRules = function() { + var keywords = ( + "abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "const|float|native|super|while" + ); + + var buildinConstants = ("null|Infinity|NaN|undefined"); + + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaHighlightRules, TextHighlightRules); + +exports.JavaHighlightRules = JavaHighlightRules; +}); + +ace.define("ace/mode/drools_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/java_highlight_rules","ace/mode/doc_comment_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules; +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; + +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; +var packageIdentifierRe = "[a-zA-Z\\$_\u00a1-\uffff][\\.a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var DroolsHighlightRules = function() { + + var keywords = ("date|effective|expires|lock|on|active|no|loop|auto|focus" + + "|activation|group|agenda|ruleflow|duration|timer|calendars|refract|direct" + + "|dialect|salience|enabled|attributes|extends|template" + + "|function|contains|matches|eval|excludes|soundslike" + + "|memberof|not|in|or|and|exists|forall|over|from|entry|point|accumulate|acc|collect" + + "|action|reverse|result|end|init|instanceof|extends|super|boolean|char|byte|short" + + "|int|long|float|double|this|void|class|new|case|final|if|else|for|while|do" + + "|default|try|catch|finally|switch|synchronized|return|throw|break|continue|assert" + + "|modify|static|public|protected|private|abstract|native|transient|volatile" + + "|strictfp|throws|interface|enum|implements|type|window|trait|no-loop|str" + ); + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": "null", + "support.class" : langClasses, + "support.function" : "retract|update|modify|insert" + }, "identifier"); + + var stringRules = function() { + return [{ + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }]; + }; + + + var basicPreRules = function(blockCommentRules) { + return [{ + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : blockCommentRules + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }]; + }; + + var blockCommentRules = function(returnRule) { + return [ + { + token : "comment.block", // closing comment + regex : "\\*\\/", + next : returnRule + }, { + defaultToken : "comment.block" + } + ]; + } + + var basicPostRules = function() { + return [{ + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }]; + }; + + + this.$rules = { + "start" : [].concat(basicPreRules("block.comment"), [ + { + token : "entity.name.type", + regex : "@[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : ["keyword","text","entity.name.type"], + regex : "(package)(\\s+)(" + packageIdentifierRe +")" + }, { + token : ["keyword","text","keyword","text","entity.name.type"], + regex : "(import)(\\s+)(function)(\\s+)(" + packageIdentifierRe +")" + }, { + token : ["keyword","text","entity.name.type"], + regex : "(import)(\\s+)(" + packageIdentifierRe +")" + }, { + token : ["keyword","text","entity.name.type","text","variable"], + regex : "(global)(\\s+)(" + packageIdentifierRe +")(\\s+)(" + identifierRe +")" + }, { + token : ["keyword","text","keyword","text","entity.name.type"], + regex : "(declare)(\\s+)(trait)(\\s+)(" + identifierRe +")" + }, { + token : ["keyword","text","entity.name.type"], + regex : "(declare)(\\s+)(" + identifierRe +")" + }, { + token : ["keyword","text","entity.name.type"], + regex : "(extends)(\\s+)(" + packageIdentifierRe +")" + }, { + token : ["keyword","text"], + regex : "(rule)(\\s+)", + next : "asset.name" + }], + stringRules(), + [{ + token : ["variable.other","text","text"], + regex : "(" + identifierRe + ")(\\s*)(:)" + }, { + token : ["keyword","text"], + regex : "(query)(\\s+)", + next : "asset.name" + }, { + token : ["keyword","text"], + regex : "(when)(\\s*)" + }, { + token : ["keyword","text"], + regex : "(then)(\\s*)", + next : "java-start" + }, { + token : "paren.lparen", + regex : /[\[({]/ + }, { + token : "paren.rparen", + regex : /[\])}]/ + }], basicPostRules()), + "block.comment" : blockCommentRules("start"), + "asset.name" : [ + { + token : "entity.name", + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "entity.name", + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "entity.name", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "start" + }] + }; + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + + this.embedRules(JavaHighlightRules, "java-", [ + { + token : "support.function", + regex: "\\b(insert|modify|retract|update)\\b" + }, { + token : "keyword", + regex: "\\bend\\b", + next : "start" + }]); + +}; + +oop.inherits(DroolsHighlightRules, TextHighlightRules); + +exports.DroolsHighlightRules = DroolsHighlightRules; +}); + +ace.define("ace/mode/folding/drools",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + this.foldingStartMarker = /\b(rule|declare|query|when|then)\b/; + this.foldingStopMarker = /\bend\b/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) { + var position = {row: row, column: line.length}; + var iterator = new TokenIterator(session, position.row, position.column); + var seek = "end"; + var token = iterator.getCurrentToken(); + if (token.value == "when") { + seek = "then"; + } + while (token) { + if (token.value == seek) { + return Range.fromPoints(position ,{ + row: iterator.getCurrentTokenRow(), + column: iterator.getCurrentTokenColumn() + }); + } + token = iterator.stepForward(); + } + } + + } + } + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/drools",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/drools_highlight_rules","ace/mode/folding/drools"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var DroolsHighlightRules = require("./drools_highlight_rules").DroolsHighlightRules; +var DroolsFoldMode = require("./folding/drools").FoldMode; + +var Mode = function() { + this.HighlightRules = DroolsHighlightRules; + this.foldingRules = new DroolsFoldMode(); + this.$behaviour = this.$defaultBehaviour; + +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.$id = "ace/mode/drools"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-eiffel.js b/htdocs/includes/ace/mode-eiffel.js new file mode 100644 index 00000000000..decf61d1b28 --- /dev/null +++ b/htdocs/includes/ace/mode-eiffel.js @@ -0,0 +1,128 @@ +ace.define("ace/mode/eiffel_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var EiffelHighlightRules = function() { + var keywords = "across|agent|alias|all|attached|as|assign|attribute|check|" + + "class|convert|create|debug|deferred|detachable|do|else|elseif|end|" + + "ensure|expanded|export|external|feature|from|frozen|if|inherit|" + + "inspect|invariant|like|local|loop|not|note|obsolete|old|once|" + + "Precursor|redefine|rename|require|rescue|retry|select|separate|" + + "some|then|undefine|until|variant|when"; + + var operatorKeywords = "and|implies|or|xor"; + + var languageConstants = "Void"; + + var booleanConstants = "True|False"; + + var languageVariables = "Current|Result"; + + var keywordMapper = this.createKeywordMapper({ + "constant.language": languageConstants, + "constant.language.boolean": booleanConstants, + "variable.language": languageVariables, + "keyword.operator": operatorKeywords, + "keyword": keywords + }, "identifier", true); + + var simpleString = /(?:[^"%\b\f\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)+?/; + + this.$rules = { + "start": [{ + token : "string.quoted.other", // Aligned-verbatim-strings (verbatim option not supported) + regex : /"\[/, + next: "aligned_verbatim_string" + }, { + token : "string.quoted.other", // Non-aligned-verbatim-strings (verbatim option not supported) + regex : /"\{/, + next: "non-aligned_verbatim_string" + }, { + token : "string.quoted.double", + regex : /"(?:[^%\b\f\n\r\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)*?"/ + }, { + token : "comment.line.double-dash", + regex : /--.*/ + }, { + token : "constant.character", + regex : /'(?:[^%\b\f\n\r\t\v]|%[A-DFHLNQR-V%'"()<>]|%\/(?:0[xX][\da-fA-F](?:_*[\da-fA-F])*|0[cC][0-7](?:_*[0-7])*|0[bB][01](?:_*[01])*|\d(?:_*\d)*)\/)'/ + }, { + token : "constant.numeric", // hexa | octal | bin + regex : /\b0(?:[xX][\da-fA-F](?:_*[\da-fA-F])*|[cC][0-7](?:_*[0-7])*|[bB][01](?:_*[01])*)\b/ + }, { + token : "constant.numeric", + regex : /(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?[eE][+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/ + }, { + token : "paren.lparen", + regex : /[\[({]|<<|\|\(/ + }, { + token : "paren.rparen", + regex : /[\])}]|>>|\|\)/ + }, { + token : "keyword.operator", // punctuation + regex : /:=|->|\.(?=\w)|[;,:?]/ + }, { + token : "keyword.operator", + regex : /\\\\|\|\.\.\||\.\.|\/[~\/]?|[><\/]=?|[-+*^=~]/ + }, { + token : function (v) { + var result = keywordMapper(v); + if (result === "identifier" && v === v.toUpperCase()) { + result = "entity.name.type"; + } + return result; + }, + regex : /[a-zA-Z][a-zA-Z\d_]*\b/ + }, { + token : "text", + regex : /\s+/ + } + ], + "aligned_verbatim_string" : [{ + token : "string", + regex : /]"/, + next : "start" + }, { + token : "string", + regex : simpleString + } + ], + "non-aligned_verbatim_string" : [{ + token : "string.quoted.other", + regex : /}"/, + next : "start" + }, { + token : "string.quoted.other", + regex : simpleString + } + ]}; +}; + +oop.inherits(EiffelHighlightRules, TextHighlightRules); + +exports.EiffelHighlightRules = EiffelHighlightRules; +}); + +ace.define("ace/mode/eiffel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/eiffel_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var EiffelHighlightRules = require("./eiffel_highlight_rules").EiffelHighlightRules; + +var Mode = function() { + this.HighlightRules = EiffelHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.$id = "ace/mode/eiffel"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-ejs.js b/htdocs/includes/ace/mode-ejs.js new file mode 100644 index 00000000000..4309c8b8f58 --- /dev/null +++ b/htdocs/includes/ace/mode-ejs.js @@ -0,0 +1,2999 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var constantOtherSymbol = exports.constantOtherSymbol = { + token : "constant.other.symbol.ruby", // symbol + regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?" +}; + +var qString = exports.qString = { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" +}; + +var qqString = exports.qqString = { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' +}; + +var tString = exports.tString = { + token : "string", // backtick string + regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]" +}; + +var constantNumericHex = exports.constantNumericHex = { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b" +}; + +var constantNumericFloat = exports.constantNumericFloat = { + token : "constant.numeric", // float + regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b" +}; + +var instanceVariable = exports.instanceVariable = { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" +}; + +var RubyHighlightRules = function() { + + var builtinFunctions = ( + "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" + + "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" + + "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" + + "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" + + "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" + + "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" + + "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" + + "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" + + "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" + + "gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|" + + "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" + + "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" + + "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" + + "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" + + "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" + + "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" + + "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" + + "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" + + "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" + + "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" + + "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" + + "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" + + "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" + + "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" + + "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" + + "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" + + "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" + + "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" + + "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" + + "has_many|has_one|belongs_to|has_and_belongs_to_many" + ); + + var keywords = ( + "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" + + "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" + + "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield" + ); + + var buildinConstants = ( + "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" + + "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING" + ); + + var builtinVariables = ( + "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" + + "$!|root_url|flash|session|cookies|params|request|response|logger|self" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "variable.language": builtinVariables, + "support.function": builtinFunctions, + "invalid.deprecated": "debugger" // TODO is this a remnant from js mode? + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment", // multi line comment + regex : "^=begin(?:$|\\s.*$)", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, + + [{ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren.lparen"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.start", + regex : /"/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /"/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /'/, + push : [{ + token : "constant.language.escape", + regex : /\\['\\]/ + }, { + token : "string.end", + regex : /'/, + next : "pop" + }, { + defaultToken: "string" + }] + }], + + { + token : "text", // namespaces aren't symbols + regex : "::" + }, { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" + }, { + token : "support.class", // class name + regex : "[A-Z][a-zA-Z_\\d]+" + }, + + constantOtherSymbol, + constantNumericHex, + constantNumericFloat, + + { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "punctuation.separator.key-value", + regex : "=>" + }, { + stateName: "heredoc", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[3]); + return [ + {type:"constant", value: tokens[1]}, + {type:"string", value: tokens[2]}, + {type:"support.class", value: tokens[3]}, + {type:"string", value: tokens[4]} + ]; + }, + regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)", + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^ +" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : "string.character", + regex : "\\B\\?." + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^=end(?:$|\\s.*$)", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.normalizeRules(); +}; + +oop.inherits(RubyHighlightRules, TextHighlightRules); + +exports.RubyHighlightRules = RubyHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = RubyHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/); + var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/); + var startingConditional = line.match(/^\s*(if|else|when)\s*/) + if (match || startingClassOrMethod || startingDoBlock || startingConditional) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, session, row) { + var line = session.getLine(row); + if (/}/.test(line)) + return this.$outdent.autoOutdent(session, row); + var indent = this.$getIndent(line); + var prevLine = session.getLine(row - 1); + var prevIndent = this.$getIndent(prevLine); + var tab = session.getTabString(); + if (prevIndent.length <= indent.length) { + if (indent.slice(-tab.length) == tab) + session.remove(new Range(row, indent.length-tab.length, row, indent.length)); + } + }; + + this.$id = "ace/mode/ruby"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/ejs",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/javascript_highlight_rules","ace/lib/oop","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/ruby"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; + +var EjsHighlightRules = function(start, end) { + HtmlHighlightRules.call(this); + + if (!start) + start = "(?:<%|<\\?|{{)"; + if (!end) + end = "(?:%>|\\?>|}})"; + + for (var i in this.$rules) { + this.$rules[i].unshift({ + token : "markup.list.meta.tag", + regex : start + "(?![>}])[-=]?", + push : "ejs-start" + }); + } + + this.embedRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "ejs-", [{ + token : "markup.list.meta.tag", + regex : "-?" + end, + next : "pop" + }, { + token: "comment", + regex: "//.*?" + end, + next: "pop" + }]); + + this.normalizeRules(); +}; + + +oop.inherits(EjsHighlightRules, HtmlHighlightRules); + +exports.EjsHighlightRules = EjsHighlightRules; + + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var RubyMode = require("./ruby").Mode; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = EjsHighlightRules; + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode, + "ejs-": JavaScriptMode + }); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + + this.$id = "ace/mode/ejs"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-elixir.js b/htdocs/includes/ace/mode-elixir.js new file mode 100644 index 00000000000..d8931b98bd6 --- /dev/null +++ b/htdocs/includes/ace/mode-elixir.js @@ -0,0 +1,494 @@ +ace.define("ace/mode/elixir_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ElixirHighlightRules = function() { + + this.$rules = { start: + [ { token: + [ 'meta.module.elixir', + 'keyword.control.module.elixir', + 'meta.module.elixir', + 'entity.name.type.module.elixir' ], + regex: '^(\\s*)(defmodule)(\\s+)((?:[A-Z]\\w*\\s*\\.\\s*)*[A-Z]\\w*)' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc (?:~[a-z])?"""', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc ~[A-Z]"""', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*"""', + next: 'pop' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc (?:~[a-z])?\'\'\'', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*\'\'\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc ~[A-Z]\'\'\'', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*\'\'\'', + next: 'pop' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.false', + regex: '@(?:module|type)?doc false', + comment: '@doc false is treated as documentation' }, + { token: 'comment.documentation.string', + regex: '@(?:module|type)?doc "', + push: + [ { token: 'comment.documentation.string', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.string' } ], + comment: '@doc with string is treated as documentation' }, + { token: 'keyword.control.elixir', + regex: '\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01]+|0o[0-7]+)\\b' }, + { token: 'punctuation.definition.constant.elixir', + regex: ':\'', + push: + [ { token: 'punctuation.definition.constant.elixir', + regex: '\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] }, + { token: 'punctuation.definition.constant.elixir', + regex: ':"', + push: + [ { token: 'punctuation.definition.constant.elixir', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '(?:\'\'\')', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>\'\'\')', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*\'\'\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ], + comment: 'Single-quoted heredocs' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'support.function.variable.quoted.single.elixir' } ], + comment: 'single quoted string (allows for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '(?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.heredoc.elixir' } ], + comment: 'Double-quoted heredocs' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.elixir' } ], + comment: 'double quoted string (allows for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z](?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '~[a-z](?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.heredoc.elixir' } ], + comment: 'Double-quoted heredocs sigils' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\{', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\}[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\[', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\][a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\<', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\>[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\(', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\)[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z][^\\w]', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '[^\\w][a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z](?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '~[A-Z](?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'Double-quoted heredocs sigils' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\{', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\}[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\[', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\][a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\<', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\>[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\(', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\)[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z][^\\w]', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '[^\\w][a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'], + regex: '(:)([a-zA-Z_][\\w@]*(?:[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(?:\\^\\^)?)', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)', + comment: 'symbols' }, + { token: 'punctuation.definition.constant.elixir', + regex: '(?:[a-zA-Z_][\\w@]*(?:[?!])?):(?!:)', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)', + comment: 'symbols' }, + { token: + [ 'punctuation.definition.comment.elixir', + 'comment.line.number-sign.elixir' ], + regex: '(#)(.*)' }, + { token: 'constant.numeric.elixir', + regex: '\\?(?:\\\\(?:x[\\da-fA-F]{1,2}(?![\\da-fA-F])\\b|[^xMC])|[^\\s\\\\])', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?=?' }, + { token: 'keyword.operator.bitwise.elixir', + regex: '\\|{3}|&{3}|\\^{3}|<{3}|>{3}|~{3}' }, + { token: 'keyword.operator.logical.elixir', + regex: '!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b', + originalRegex: '(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b' }, + { token: 'keyword.operator.arithmetic.elixir', + regex: '\\*|\\+|\\-|/' }, + { token: 'keyword.operator.other.elixir', + regex: '\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|\\|>|~|=>' }, + { token: 'keyword.operator.assignment.elixir', regex: '=' }, + { token: 'punctuation.separator.other.elixir', regex: ':' }, + { token: 'punctuation.separator.statement.elixir', + regex: '\\;' }, + { token: 'punctuation.separator.object.elixir', regex: ',' }, + { token: 'punctuation.separator.method.elixir', regex: '\\.' }, + { token: 'punctuation.section.scope.elixir', regex: '\\{|\\}' }, + { token: 'punctuation.section.array.elixir', regex: '\\[|\\]' }, + { token: 'punctuation.section.function.elixir', + regex: '\\(|\\)' } ], + '#escaped_char': + [ { token: 'constant.character.escape.elixir', + regex: '\\\\(?:x[\\da-fA-F]{1,2}|.)' } ], + '#interpolated_elixir': + [ { token: + [ 'source.elixir.embedded.source', + 'source.elixir.embedded.source.empty' ], + regex: '(#\\{)(\\})' }, + { todo: + { token: 'punctuation.section.embedded.elixir', + regex: '#\\{', + push: + [ { token: 'punctuation.section.embedded.elixir', + regex: '\\}', + next: 'pop' }, + { include: '#nest_curly_and_self' }, + { include: '$self' }, + { defaultToken: 'source.elixir.embedded.source' } ] } } ], + '#nest_curly_and_self': + [ { token: 'punctuation.section.scope.elixir', + regex: '\\{', + push: + [ { token: 'punctuation.section.scope.elixir', + regex: '\\}', + next: 'pop' }, + { include: '#nest_curly_and_self' } ] }, + { include: '$self' } ], + '#regex_sub': + [ { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { token: + [ 'punctuation.definition.arbitrary-repitition.elixir', + 'string.regexp.arbitrary-repitition.elixir', + 'string.regexp.arbitrary-repitition.elixir', + 'punctuation.definition.arbitrary-repitition.elixir' ], + regex: '(\\{)(\\d+)((?:,\\d+)?)(\\})' }, + { token: 'punctuation.definition.character-class.elixir', + regex: '\\[(?:\\^?\\])?', + push: + [ { token: 'punctuation.definition.character-class.elixir', + regex: '\\]', + next: 'pop' }, + { include: '#escaped_char' }, + { defaultToken: 'string.regexp.character-class.elixir' } ] }, + { token: 'punctuation.definition.group.elixir', + regex: '\\(', + push: + [ { token: 'punctuation.definition.group.elixir', + regex: '\\)', + next: 'pop' }, + { include: '#regex_sub' }, + { defaultToken: 'string.regexp.group.elixir' } ] }, + { token: + [ 'punctuation.definition.comment.elixir', + 'comment.line.number-sign.elixir' ], + regex: '(?:^|\\s)(#)(\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$)', + originalRegex: '(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$', + comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] } + + this.normalizeRules(); +}; + +ElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.', + fileTypes: [ 'ex', 'exs' ], + firstLineMatch: '^#!/.*\\belixir', + foldingStartMarker: '(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$', + foldingStopMarker: '^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)', + keyEquivalent: '^~E', + name: 'Elixir', + scopeName: 'source.elixir' } + + +oop.inherits(ElixirHighlightRules, TextHighlightRules); + +exports.ElixirHighlightRules = ElixirHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/elixir",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elixir_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ElixirHighlightRules = require("./elixir_highlight_rules").ElixirHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = ElixirHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/elixir" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-elm.js b/htdocs/includes/ace/mode-elm.js new file mode 100644 index 00000000000..24406af9158 --- /dev/null +++ b/htdocs/includes/ace/mode-elm.js @@ -0,0 +1,299 @@ +ace.define("ace/mode/elm_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ElmHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "keyword": "as|case|class|data|default|deriving|do|else|export|foreign|" + + "hiding|jsevent|if|import|in|infix|infixl|infixr|instance|let|" + + "module|newtype|of|open|then|type|where|_|port|\u03BB" + }, "identifier"); + + var escapeRe = /\\(\d+|['"\\&trnbvf])/; + + var smallRe = /[a-z_]/.source; + var largeRe = /[A-Z]/.source; + var idRe = /[a-z_A-Z0-9']/.source; + + this.$rules = { + start: [{ + token: "string.start", + regex: '"', + next: "string" + }, { + token: "string.character", + regex: "'(?:" + escapeRe.source + "|.)'?" + }, { + regex: /0(?:[xX][0-9A-Fa-f]+|[oO][0-7]+)|\d+(\.\d+)?([eE][-+]?\d*)?/, + token: "constant.numeric" + }, { + token: "comment", + regex: "--.*" + }, { + token : "keyword", + regex : /\.\.|\||:|=|\\|"|->|<-|\u2192/ + }, { + token : "keyword.operator", + regex : /[-!#$%&*+.\/<=>?@\\^|~:\u03BB\u2192]+/ + }, { + token : "operator.punctuation", + regex : /[,;`]/ + }, { + regex : largeRe + idRe + "+\\.?", + token : function(value) { + if (value[value.length - 1] == ".") + return "entity.name.function"; + return "constant.language"; + } + }, { + regex : "^" + smallRe + idRe + "+", + token : function(value) { + return "constant.language"; + } + }, { + token : keywordMapper, + regex : "[\\w\\xff-\\u218e\\u2455-\\uffff]+\\b" + }, { + regex: "{-#?", + token: "comment.start", + onMatch: function(value, currentState, stack) { + this.next = value.length == 2 ? "blockComment" : "docComment"; + return this.token; + } + }, { + token: "variable.language", + regex: /\[markdown\|/, + next: "markdown" + }, { + token: "paren.lparen", + regex: /[\[({]/ + }, { + token: "paren.rparen", + regex: /[\])}]/ + } ], + markdown: [{ + regex: /\|\]/, + next: "start" + }, { + defaultToken : "string" + }], + blockComment: [{ + regex: "{-", + token: "comment.start", + push: "blockComment" + }, { + regex: "-}", + token: "comment.end", + next: "pop" + }, { + defaultToken: "comment" + }], + docComment: [{ + regex: "{-", + token: "comment.start", + push: "docComment" + }, { + regex: "-}", + token: "comment.end", + next: "pop" + }, { + defaultToken: "doc.comment" + }], + string: [{ + token: "constant.language.escape", + regex: escapeRe + }, { + token: "text", + regex: /\\(\s|$)/, + next: "stringGap" + }, { + token: "string.end", + regex: '"', + next: "start" + }, { + defaultToken: "string" + }], + stringGap: [{ + token: "text", + regex: /\\/, + next: "string" + }, { + token: "error", + regex: "", + next: "start" + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(ElmHighlightRules, TextHighlightRules); + +exports.ElmHighlightRules = ElmHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/elm",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elm_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./elm_highlight_rules").ElmHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = {start: "{-", end: "-}", nestable: true}; + this.$id = "ace/mode/elm"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-erlang.js b/htdocs/includes/ace/mode-erlang.js new file mode 100644 index 00000000000..3554bf7e3ae --- /dev/null +++ b/htdocs/includes/ace/mode-erlang.js @@ -0,0 +1,1002 @@ +ace.define("ace/mode/erlang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ErlangHighlightRules = function() { + + this.$rules = { start: + [ { include: '#module-directive' }, + { include: '#import-export-directive' }, + { include: '#behaviour-directive' }, + { include: '#record-directive' }, + { include: '#define-directive' }, + { include: '#macro-directive' }, + { include: '#directive' }, + { include: '#function' }, + { include: '#everything-else' } ], + '#atom': + [ { token: 'punctuation.definition.symbol.begin.erlang', + regex: '\'', + push: + [ { token: 'punctuation.definition.symbol.end.erlang', + regex: '\'', + next: 'pop' }, + { token: + [ 'punctuation.definition.escape.erlang', + 'constant.other.symbol.escape.erlang', + 'punctuation.definition.escape.erlang', + 'constant.other.symbol.escape.erlang', + 'constant.other.symbol.escape.erlang' ], + regex: '(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' }, + { token: 'invalid.illegal.atom.erlang', regex: '\\\\\\^?.?' }, + { defaultToken: 'constant.other.symbol.quoted.single.erlang' } ] }, + { token: 'constant.other.symbol.unquoted.erlang', + regex: '[a-z][a-zA-Z\\d@_]*' } ], + '#behaviour-directive': + [ { token: + [ 'meta.directive.behaviour.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.behaviour.erlang', + 'keyword.control.directive.behaviour.erlang', + 'meta.directive.behaviour.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.behaviour.erlang', + 'entity.name.type.class.behaviour.definition.erlang', + 'meta.directive.behaviour.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.behaviour.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)(behaviour)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)' } ], + '#binary': + [ { token: 'punctuation.definition.binary.begin.erlang', + regex: '<<', + push: + [ { token: 'punctuation.definition.binary.end.erlang', + regex: '>>', + next: 'pop' }, + { token: + [ 'punctuation.separator.binary.erlang', + 'punctuation.separator.value-size.erlang' ], + regex: '(,)|(:)' }, + { include: '#internal-type-specifiers' }, + { include: '#everything-else' }, + { defaultToken: 'meta.structure.binary.erlang' } ] } ], + '#character': + [ { token: + [ 'punctuation.definition.character.erlang', + 'punctuation.definition.escape.erlang', + 'constant.character.escape.erlang', + 'punctuation.definition.escape.erlang', + 'constant.character.escape.erlang', + 'constant.character.escape.erlang' ], + regex: '(\\$)(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' }, + { token: 'invalid.illegal.character.erlang', + regex: '\\$\\\\\\^?.?' }, + { token: + [ 'punctuation.definition.character.erlang', + 'constant.character.erlang' ], + regex: '(\\$)(\\S)' }, + { token: 'invalid.illegal.character.erlang', regex: '\\$.?' } ], + '#comment': + [ { token: 'punctuation.definition.comment.erlang', + regex: '%.*$', + push_: + [ { token: 'comment.line.percentage.erlang', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.percentage.erlang' } ] } ], + '#define-directive': + [ { token: + [ 'meta.directive.define.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.define.erlang', + 'keyword.control.directive.define.erlang', + 'meta.directive.define.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.define.erlang', + 'entity.name.function.macro.definition.erlang', + 'meta.directive.define.erlang', + 'punctuation.separator.parameters.erlang' ], + regex: '^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(,)', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'meta.directive.define.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\))(\\s*)(\\.)', + next: 'pop' }, + { include: '#everything-else' }, + { defaultToken: 'meta.directive.define.erlang' } ] }, + { token: 'meta.directive.define.erlang', + regex: '(?=^\\s*-\\s*define\\s*\\(\\s*[a-zA-Z\\d@_]+\\s*\\()', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'meta.directive.define.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\))(\\s*)(\\.)', + next: 'pop' }, + { token: + [ 'text', + 'punctuation.section.directive.begin.erlang', + 'text', + 'keyword.control.directive.define.erlang', + 'text', + 'punctuation.definition.parameters.begin.erlang', + 'text', + 'entity.name.function.macro.definition.erlang', + 'text', + 'punctuation.definition.parameters.begin.erlang' ], + regex: '^(\\s*)(-)(\\s*)(define)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\()', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'text', + 'punctuation.separator.parameters.erlang' ], + regex: '(\\))(\\s*)(,)', + next: 'pop' }, + { token: 'punctuation.separator.parameters.erlang', regex: ',' }, + { include: '#everything-else' } ] }, + { token: 'punctuation.separator.define.erlang', + regex: '\\|\\||\\||:|;|,|\\.|->' }, + { include: '#everything-else' }, + { defaultToken: 'meta.directive.define.erlang' } ] } ], + '#directive': + [ { token: + [ 'meta.directive.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.erlang', + 'keyword.control.directive.erlang', + 'meta.directive.erlang', + 'punctuation.definition.parameters.begin.erlang' ], + regex: '^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\(?)', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'meta.directive.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\)?)(\\s*)(\\.)', + next: 'pop' }, + { include: '#everything-else' }, + { defaultToken: 'meta.directive.erlang' } ] }, + { token: + [ 'meta.directive.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.erlang', + 'keyword.control.directive.erlang', + 'meta.directive.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\.)' } ], + '#everything-else': + [ { include: '#comment' }, + { include: '#record-usage' }, + { include: '#macro-usage' }, + { include: '#expression' }, + { include: '#keyword' }, + { include: '#textual-operator' }, + { include: '#function-call' }, + { include: '#tuple' }, + { include: '#list' }, + { include: '#binary' }, + { include: '#parenthesized-expression' }, + { include: '#character' }, + { include: '#number' }, + { include: '#atom' }, + { include: '#string' }, + { include: '#symbolic-operator' }, + { include: '#variable' } ], + '#expression': + [ { token: 'keyword.control.if.erlang', + regex: '\\bif\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#internal-expression-punctuation' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.if.erlang' } ] }, + { token: 'keyword.control.case.erlang', + regex: '\\bcase\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#internal-expression-punctuation' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.case.erlang' } ] }, + { token: 'keyword.control.receive.erlang', + regex: '\\breceive\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#internal-expression-punctuation' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.receive.erlang' } ] }, + { token: + [ 'keyword.control.fun.erlang', + 'text', + 'entity.name.type.class.module.erlang', + 'text', + 'punctuation.separator.module-function.erlang', + 'text', + 'entity.name.function.erlang', + 'text', + 'punctuation.separator.function-arity.erlang' ], + regex: '\\b(fun)(\\s*)(?:([a-z][a-zA-Z\\d@_]*)(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*)(\\s*)(/)' }, + { token: 'keyword.control.fun.erlang', + regex: '\\bfun\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { token: 'text', + regex: '(?=\\()', + push: + [ { token: 'punctuation.separator.clauses.erlang', + regex: ';|(?=\\bend\\b)', + next: 'pop' }, + { include: '#internal-function-parts' } ] }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.fun.erlang' } ] }, + { token: 'keyword.control.try.erlang', + regex: '\\btry\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#internal-expression-punctuation' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.try.erlang' } ] }, + { token: 'keyword.control.begin.erlang', + regex: '\\bbegin\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#internal-expression-punctuation' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.begin.erlang' } ] }, + { token: 'keyword.control.query.erlang', + regex: '\\bquery\\b', + push: + [ { token: 'keyword.control.end.erlang', + regex: '\\bend\\b', + next: 'pop' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.query.erlang' } ] } ], + '#function': + [ { token: + [ 'meta.function.erlang', + 'entity.name.function.definition.erlang', + 'meta.function.erlang' ], + regex: '^(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(?=\\()', + push: + [ { token: 'punctuation.terminator.function.erlang', + regex: '\\.', + next: 'pop' }, + { token: [ 'text', 'entity.name.function.erlang', 'text' ], + regex: '^(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(?=\\()' }, + { token: 'text', + regex: '(?=\\()', + push: + [ { token: 'punctuation.separator.clauses.erlang', + regex: ';|(?=\\.)', + next: 'pop' }, + { include: '#parenthesized-expression' }, + { include: '#internal-function-parts' } ] }, + { include: '#everything-else' }, + { defaultToken: 'meta.function.erlang' } ] } ], + '#function-call': + [ { token: 'meta.function-call.erlang', + regex: '(?=(?:[a-z][a-zA-Z\\d@_]*|\'[^\']*\')\\s*(?:\\(|:\\s*(?:[a-z][a-zA-Z\\d@_]*|\'[^\']*\')\\s*\\())', + push: + [ { token: 'punctuation.definition.parameters.end.erlang', + regex: '\\)', + next: 'pop' }, + { token: + [ 'entity.name.type.class.module.erlang', + 'text', + 'punctuation.separator.module-function.erlang', + 'text', + 'entity.name.function.guard.erlang', + 'text', + 'punctuation.definition.parameters.begin.erlang' ], + regex: '(?:(erlang)(\\s*)(:)(\\s*))?(is_atom|is_binary|is_constant|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_reference|is_tuple|is_record|abs|element|hd|length|node|round|self|size|tl|trunc)(\\s*)(\\()', + push: + [ { token: 'text', regex: '(?=\\))', next: 'pop' }, + { token: 'punctuation.separator.parameters.erlang', regex: ',' }, + { include: '#everything-else' } ] }, + { token: + [ 'entity.name.type.class.module.erlang', + 'text', + 'punctuation.separator.module-function.erlang', + 'text', + 'entity.name.function.erlang', + 'text', + 'punctuation.definition.parameters.begin.erlang' ], + regex: '(?:([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(:)(\\s*))?([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(\\()', + push: + [ { token: 'text', regex: '(?=\\))', next: 'pop' }, + { token: 'punctuation.separator.parameters.erlang', regex: ',' }, + { include: '#everything-else' } ] }, + { defaultToken: 'meta.function-call.erlang' } ] } ], + '#import-export-directive': + [ { token: + [ 'meta.directive.import.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.import.erlang', + 'keyword.control.directive.import.erlang', + 'meta.directive.import.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.import.erlang', + 'entity.name.type.class.module.erlang', + 'meta.directive.import.erlang', + 'punctuation.separator.parameters.erlang' ], + regex: '^(\\s*)(-)(\\s*)(import)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(,)', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'meta.directive.import.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\))(\\s*)(\\.)', + next: 'pop' }, + { include: '#internal-function-list' }, + { defaultToken: 'meta.directive.import.erlang' } ] }, + { token: + [ 'meta.directive.export.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.export.erlang', + 'keyword.control.directive.export.erlang', + 'meta.directive.export.erlang', + 'punctuation.definition.parameters.begin.erlang' ], + regex: '^(\\s*)(-)(\\s*)(export)(\\s*)(\\()', + push: + [ { token: + [ 'punctuation.definition.parameters.end.erlang', + 'meta.directive.export.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\))(\\s*)(\\.)', + next: 'pop' }, + { include: '#internal-function-list' }, + { defaultToken: 'meta.directive.export.erlang' } ] } ], + '#internal-expression-punctuation': + [ { token: + [ 'punctuation.separator.clause-head-body.erlang', + 'punctuation.separator.clauses.erlang', + 'punctuation.separator.expressions.erlang' ], + regex: '(->)|(;)|(,)' } ], + '#internal-function-list': + [ { token: 'punctuation.definition.list.begin.erlang', + regex: '\\[', + push: + [ { token: 'punctuation.definition.list.end.erlang', + regex: '\\]', + next: 'pop' }, + { token: + [ 'entity.name.function.erlang', + 'text', + 'punctuation.separator.function-arity.erlang' ], + regex: '([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(/)', + push: + [ { token: 'punctuation.separator.list.erlang', + regex: ',|(?=\\])', + next: 'pop' }, + { include: '#everything-else' } ] }, + { include: '#everything-else' }, + { defaultToken: 'meta.structure.list.function.erlang' } ] } ], + '#internal-function-parts': + [ { token: 'text', + regex: '(?=\\()', + push: + [ { token: 'punctuation.separator.clause-head-body.erlang', + regex: '->', + next: 'pop' }, + { token: 'punctuation.definition.parameters.begin.erlang', + regex: '\\(', + push: + [ { token: 'punctuation.definition.parameters.end.erlang', + regex: '\\)', + next: 'pop' }, + { token: 'punctuation.separator.parameters.erlang', regex: ',' }, + { include: '#everything-else' } ] }, + { token: 'punctuation.separator.guards.erlang', regex: ',|;' }, + { include: '#everything-else' } ] }, + { token: 'punctuation.separator.expressions.erlang', + regex: ',' }, + { include: '#everything-else' } ], + '#internal-record-body': + [ { token: 'punctuation.definition.class.record.begin.erlang', + regex: '\\{', + push: + [ { token: 'meta.structure.record.erlang', + regex: '(?=\\})', + next: 'pop' }, + { token: + [ 'variable.other.field.erlang', + 'variable.language.omitted.field.erlang', + 'text', + 'keyword.operator.assignment.erlang' ], + regex: '(?:([a-z][a-zA-Z\\d@_]*|\'[^\']*\')|(_))(\\s*)(=|::)', + push: + [ { token: 'punctuation.separator.class.record.erlang', + regex: ',|(?=\\})', + next: 'pop' }, + { include: '#everything-else' } ] }, + { token: + [ 'variable.other.field.erlang', + 'text', + 'punctuation.separator.class.record.erlang' ], + regex: '([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)((?:,)?)' }, + { include: '#everything-else' }, + { defaultToken: 'meta.structure.record.erlang' } ] } ], + '#internal-type-specifiers': + [ { token: 'punctuation.separator.value-type.erlang', + regex: '/', + push: + [ { token: 'text', regex: '(?=,|:|>>)', next: 'pop' }, + { token: + [ 'storage.type.erlang', + 'storage.modifier.signedness.erlang', + 'storage.modifier.endianness.erlang', + 'storage.modifier.unit.erlang', + 'punctuation.separator.type-specifiers.erlang' ], + regex: '(integer|float|binary|bytes|bitstring|bits)|(signed|unsigned)|(big|little|native)|(unit)|(-)' } ] } ], + '#keyword': + [ { token: 'keyword.control.erlang', + regex: '\\b(?:after|begin|case|catch|cond|end|fun|if|let|of|query|try|receive|when)\\b' } ], + '#list': + [ { token: 'punctuation.definition.list.begin.erlang', + regex: '\\[', + push: + [ { token: 'punctuation.definition.list.end.erlang', + regex: '\\]', + next: 'pop' }, + { token: 'punctuation.separator.list.erlang', + regex: '\\||\\|\\||,' }, + { include: '#everything-else' }, + { defaultToken: 'meta.structure.list.erlang' } ] } ], + '#macro-directive': + [ { token: + [ 'meta.directive.ifdef.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.ifdef.erlang', + 'keyword.control.directive.ifdef.erlang', + 'meta.directive.ifdef.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.ifdef.erlang', + 'entity.name.function.macro.erlang', + 'meta.directive.ifdef.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.ifdef.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)(ifdef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' }, + { token: + [ 'meta.directive.ifndef.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.ifndef.erlang', + 'keyword.control.directive.ifndef.erlang', + 'meta.directive.ifndef.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.ifndef.erlang', + 'entity.name.function.macro.erlang', + 'meta.directive.ifndef.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.ifndef.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)(ifndef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' }, + { token: + [ 'meta.directive.undef.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.undef.erlang', + 'keyword.control.directive.undef.erlang', + 'meta.directive.undef.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.undef.erlang', + 'entity.name.function.macro.erlang', + 'meta.directive.undef.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.undef.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)(undef)(\\s*)(\\()(\\s*)([a-zA-Z\\d@_]+)(\\s*)(\\))(\\s*)(\\.)' } ], + '#macro-usage': + [ { token: + [ 'keyword.operator.macro.erlang', + 'meta.macro-usage.erlang', + 'entity.name.function.macro.erlang' ], + regex: '(\\?\\??)(\\s*)([a-zA-Z\\d@_]+)' } ], + '#module-directive': + [ { token: + [ 'meta.directive.module.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.module.erlang', + 'keyword.control.directive.module.erlang', + 'meta.directive.module.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.module.erlang', + 'entity.name.type.class.module.definition.erlang', + 'meta.directive.module.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.module.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '^(\\s*)(-)(\\s*)(module)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*)(\\s*)(\\))(\\s*)(\\.)' } ], + '#number': + [ { token: 'text', + regex: '(?=\\d)', + push: + [ { token: 'text', regex: '(?!\\d)', next: 'pop' }, + { token: + [ 'constant.numeric.float.erlang', + 'punctuation.separator.integer-float.erlang', + 'constant.numeric.float.erlang', + 'punctuation.separator.float-exponent.erlang' ], + regex: '(\\d+)(\\.)(\\d+)((?:[eE][\\+\\-]?\\d+)?)' }, + { token: + [ 'constant.numeric.integer.binary.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.binary.erlang' ], + regex: '(2)(#)([0-1]+)' }, + { token: + [ 'constant.numeric.integer.base-3.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-3.erlang' ], + regex: '(3)(#)([0-2]+)' }, + { token: + [ 'constant.numeric.integer.base-4.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-4.erlang' ], + regex: '(4)(#)([0-3]+)' }, + { token: + [ 'constant.numeric.integer.base-5.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-5.erlang' ], + regex: '(5)(#)([0-4]+)' }, + { token: + [ 'constant.numeric.integer.base-6.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-6.erlang' ], + regex: '(6)(#)([0-5]+)' }, + { token: + [ 'constant.numeric.integer.base-7.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-7.erlang' ], + regex: '(7)(#)([0-6]+)' }, + { token: + [ 'constant.numeric.integer.octal.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.octal.erlang' ], + regex: '(8)(#)([0-7]+)' }, + { token: + [ 'constant.numeric.integer.base-9.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-9.erlang' ], + regex: '(9)(#)([0-8]+)' }, + { token: + [ 'constant.numeric.integer.decimal.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.decimal.erlang' ], + regex: '(10)(#)(\\d+)' }, + { token: + [ 'constant.numeric.integer.base-11.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-11.erlang' ], + regex: '(11)(#)([\\daA]+)' }, + { token: + [ 'constant.numeric.integer.base-12.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-12.erlang' ], + regex: '(12)(#)([\\da-bA-B]+)' }, + { token: + [ 'constant.numeric.integer.base-13.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-13.erlang' ], + regex: '(13)(#)([\\da-cA-C]+)' }, + { token: + [ 'constant.numeric.integer.base-14.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-14.erlang' ], + regex: '(14)(#)([\\da-dA-D]+)' }, + { token: + [ 'constant.numeric.integer.base-15.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-15.erlang' ], + regex: '(15)(#)([\\da-eA-E]+)' }, + { token: + [ 'constant.numeric.integer.hexadecimal.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.hexadecimal.erlang' ], + regex: '(16)(#)([\\da-fA-F]+)' }, + { token: + [ 'constant.numeric.integer.base-17.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-17.erlang' ], + regex: '(17)(#)([\\da-gA-G]+)' }, + { token: + [ 'constant.numeric.integer.base-18.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-18.erlang' ], + regex: '(18)(#)([\\da-hA-H]+)' }, + { token: + [ 'constant.numeric.integer.base-19.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-19.erlang' ], + regex: '(19)(#)([\\da-iA-I]+)' }, + { token: + [ 'constant.numeric.integer.base-20.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-20.erlang' ], + regex: '(20)(#)([\\da-jA-J]+)' }, + { token: + [ 'constant.numeric.integer.base-21.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-21.erlang' ], + regex: '(21)(#)([\\da-kA-K]+)' }, + { token: + [ 'constant.numeric.integer.base-22.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-22.erlang' ], + regex: '(22)(#)([\\da-lA-L]+)' }, + { token: + [ 'constant.numeric.integer.base-23.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-23.erlang' ], + regex: '(23)(#)([\\da-mA-M]+)' }, + { token: + [ 'constant.numeric.integer.base-24.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-24.erlang' ], + regex: '(24)(#)([\\da-nA-N]+)' }, + { token: + [ 'constant.numeric.integer.base-25.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-25.erlang' ], + regex: '(25)(#)([\\da-oA-O]+)' }, + { token: + [ 'constant.numeric.integer.base-26.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-26.erlang' ], + regex: '(26)(#)([\\da-pA-P]+)' }, + { token: + [ 'constant.numeric.integer.base-27.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-27.erlang' ], + regex: '(27)(#)([\\da-qA-Q]+)' }, + { token: + [ 'constant.numeric.integer.base-28.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-28.erlang' ], + regex: '(28)(#)([\\da-rA-R]+)' }, + { token: + [ 'constant.numeric.integer.base-29.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-29.erlang' ], + regex: '(29)(#)([\\da-sA-S]+)' }, + { token: + [ 'constant.numeric.integer.base-30.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-30.erlang' ], + regex: '(30)(#)([\\da-tA-T]+)' }, + { token: + [ 'constant.numeric.integer.base-31.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-31.erlang' ], + regex: '(31)(#)([\\da-uA-U]+)' }, + { token: + [ 'constant.numeric.integer.base-32.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-32.erlang' ], + regex: '(32)(#)([\\da-vA-V]+)' }, + { token: + [ 'constant.numeric.integer.base-33.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-33.erlang' ], + regex: '(33)(#)([\\da-wA-W]+)' }, + { token: + [ 'constant.numeric.integer.base-34.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-34.erlang' ], + regex: '(34)(#)([\\da-xA-X]+)' }, + { token: + [ 'constant.numeric.integer.base-35.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-35.erlang' ], + regex: '(35)(#)([\\da-yA-Y]+)' }, + { token: + [ 'constant.numeric.integer.base-36.erlang', + 'punctuation.separator.base-integer.erlang', + 'constant.numeric.integer.base-36.erlang' ], + regex: '(36)(#)([\\da-zA-Z]+)' }, + { token: 'invalid.illegal.integer.erlang', + regex: '\\d+#[\\da-zA-Z]+' }, + { token: 'constant.numeric.integer.decimal.erlang', + regex: '\\d+' } ] } ], + '#parenthesized-expression': + [ { token: 'punctuation.section.expression.begin.erlang', + regex: '\\(', + push: + [ { token: 'punctuation.section.expression.end.erlang', + regex: '\\)', + next: 'pop' }, + { include: '#everything-else' }, + { defaultToken: 'meta.expression.parenthesized' } ] } ], + '#record-directive': + [ { token: + [ 'meta.directive.record.erlang', + 'punctuation.section.directive.begin.erlang', + 'meta.directive.record.erlang', + 'keyword.control.directive.import.erlang', + 'meta.directive.record.erlang', + 'punctuation.definition.parameters.begin.erlang', + 'meta.directive.record.erlang', + 'entity.name.type.class.record.definition.erlang', + 'meta.directive.record.erlang', + 'punctuation.separator.parameters.erlang' ], + regex: '^(\\s*)(-)(\\s*)(record)(\\s*)(\\()(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(,)', + push: + [ { token: + [ 'punctuation.definition.class.record.end.erlang', + 'meta.directive.record.erlang', + 'punctuation.definition.parameters.end.erlang', + 'meta.directive.record.erlang', + 'punctuation.section.directive.end.erlang' ], + regex: '(\\})(\\s*)(\\))(\\s*)(\\.)', + next: 'pop' }, + { include: '#internal-record-body' }, + { defaultToken: 'meta.directive.record.erlang' } ] } ], + '#record-usage': + [ { token: + [ 'keyword.operator.record.erlang', + 'meta.record-usage.erlang', + 'entity.name.type.class.record.erlang', + 'meta.record-usage.erlang', + 'punctuation.separator.record-field.erlang', + 'meta.record-usage.erlang', + 'variable.other.field.erlang' ], + regex: '(#)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')(\\s*)(\\.)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')' }, + { token: + [ 'keyword.operator.record.erlang', + 'meta.record-usage.erlang', + 'entity.name.type.class.record.erlang' ], + regex: '(#)(\\s*)([a-z][a-zA-Z\\d@_]*|\'[^\']*\')', + push: + [ { token: 'punctuation.definition.class.record.end.erlang', + regex: '\\}', + next: 'pop' }, + { include: '#internal-record-body' }, + { defaultToken: 'meta.record-usage.erlang' } ] } ], + '#string': + [ { token: 'punctuation.definition.string.begin.erlang', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.erlang', + regex: '"', + next: 'pop' }, + { token: + [ 'punctuation.definition.escape.erlang', + 'constant.character.escape.erlang', + 'punctuation.definition.escape.erlang', + 'constant.character.escape.erlang', + 'constant.character.escape.erlang' ], + regex: '(\\\\)(?:([bdefnrstv\\\\\'"])|(\\^)([@-_])|([0-7]{1,3}))' }, + { token: 'invalid.illegal.string.erlang', regex: '\\\\\\^?.?' }, + { token: + [ 'punctuation.definition.placeholder.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'constant.other.placeholder.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'constant.other.placeholder.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'constant.other.placeholder.erlang', + 'constant.other.placeholder.erlang' ], + regex: '(~)(?:((?:\\-)?)(\\d+)|(\\*))?(?:(\\.)(?:(\\d+)|(\\*)))?(?:(\\.)(?:(\\*)|(.)))?([~cfegswpWPBX#bx\\+ni])' }, + { token: + [ 'punctuation.definition.placeholder.erlang', + 'punctuation.separator.placeholder-parts.erlang', + 'constant.other.placeholder.erlang', + 'constant.other.placeholder.erlang' ], + regex: '(~)((?:\\*)?)((?:\\d+)?)([~du\\-#fsacl])' }, + { token: 'invalid.illegal.string.erlang', regex: '~.?' }, + { defaultToken: 'string.quoted.double.erlang' } ] } ], + '#symbolic-operator': + [ { token: 'keyword.operator.symbolic.erlang', + regex: '\\+\\+|\\+|--|-|\\*|/=|/|=/=|=:=|==|=<|=|<-|<|>=|>|!|::' } ], + '#textual-operator': + [ { token: 'keyword.operator.textual.erlang', + regex: '\\b(?:andalso|band|and|bxor|xor|bor|orelse|or|bnot|not|bsl|bsr|div|rem)\\b' } ], + '#tuple': + [ { token: 'punctuation.definition.tuple.begin.erlang', + regex: '\\{', + push: + [ { token: 'punctuation.definition.tuple.end.erlang', + regex: '\\}', + next: 'pop' }, + { token: 'punctuation.separator.tuple.erlang', regex: ',' }, + { include: '#everything-else' }, + { defaultToken: 'meta.structure.tuple.erlang' } ] } ], + '#variable': + [ { token: [ 'variable.other.erlang', 'variable.language.omitted.erlang' ], + regex: '(_[a-zA-Z\\d@_]+|[A-Z][a-zA-Z\\d@_]*)|(_)' } ] } + + this.normalizeRules(); +}; + +ErlangHighlightRules.metaData = { comment: 'The recognition of function definitions and compiler directives (such as module, record and macro definitions) requires that each of the aforementioned constructs must be the first string inside a line (except for whitespace). Also, the function/module/record/macro names must be given unquoted. -- desp', + fileTypes: [ 'erl', 'hrl' ], + keyEquivalent: '^~E', + name: 'Erlang', + scopeName: 'source.erlang' } + + +oop.inherits(ErlangHighlightRules, TextHighlightRules); + +exports.ErlangHighlightRules = ErlangHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/erlang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/erlang_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ErlangHighlightRules = require("./erlang_highlight_rules").ErlangHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ErlangHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "%"; + this.blockComment = null; + this.$id = "ace/mode/erlang"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-forth.js b/htdocs/includes/ace/mode-forth.js new file mode 100644 index 00000000000..f960fd6af08 --- /dev/null +++ b/htdocs/includes/ace/mode-forth.js @@ -0,0 +1,290 @@ +ace.define("ace/mode/forth_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ForthHighlightRules = function() { + + this.$rules = { start: [ { include: '#forth' } ], + '#comment': + [ { token: 'comment.line.double-dash.forth', + regex: '(?:^|\\s)--\\s.*$', + comment: 'line comments for iForth' }, + { token: 'comment.line.backslash.forth', + regex: '(?:^|\\s)\\\\[\\s\\S]*$', + comment: 'ANSI line comment' }, + { token: 'comment.line.backslash-g.forth', + regex: '(?:^|\\s)\\\\[Gg] .*$', + comment: 'gForth line comment' }, + { token: 'comment.block.forth', + regex: '(?:^|\\s)\\(\\*(?=\\s|$)', + push: + [ { token: 'comment.block.forth', + regex: '(?:^|\\s)\\*\\)(?=\\s|$)', + next: 'pop' }, + { defaultToken: 'comment.block.forth' } ], + comment: 'multiline comments for iForth' }, + { token: 'comment.block.documentation.forth', + regex: '\\bDOC\\b', + caseInsensitive: true, + push: + [ { token: 'comment.block.documentation.forth', + regex: '\\bENDDOC\\b', + caseInsensitive: true, + next: 'pop' }, + { defaultToken: 'comment.block.documentation.forth' } ], + comment: 'documentation comments for iForth' }, + { token: 'comment.line.parentheses.forth', + regex: '(?:^|\\s)\\.?\\( [^)]*\\)', + comment: 'ANSI line comment' } ], + '#constant': + [ { token: 'constant.language.forth', + regex: '(?:^|\\s)(?:TRUE|FALSE|BL|PI|CELL|C/L|R/O|W/O|R/W)(?=\\s|$)', + caseInsensitive: true}, + { token: 'constant.numeric.forth', + regex: '(?:^|\\s)[$#%]?[-+]?[0-9]+(?:\\.[0-9]*e-?[0-9]+|\\.?[0-9a-fA-F]*)(?=\\s|$)'}, + { token: 'constant.character.forth', + regex: '(?:^|\\s)(?:[&^]\\S|(?:"|\')\\S(?:"|\'))(?=\\s|$)'}], + '#forth': + [ { include: '#constant' }, + { include: '#comment' }, + { include: '#string' }, + { include: '#word' }, + { include: '#variable' }, + { include: '#storage' }, + { include: '#word-def' } ], + '#storage': + [ { token: 'storage.type.forth', + regex: '(?:^|\\s)(?:2CONSTANT|2VARIABLE|ALIAS|CONSTANT|CREATE-INTERPRET/COMPILE[:]?|CREATE|DEFER|FCONSTANT|FIELD|FVARIABLE|USER|VALUE|VARIABLE|VOCABULARY)(?=\\s|$)', + caseInsensitive: true}], + '#string': + [ { token: 'string.quoted.double.forth', + regex: '(ABORT" |BREAK" |\\." |C" |0"|S\\\\?" )([^"]+")', + caseInsensitive: true}, + { token: 'string.unquoted.forth', + regex: '(?:INCLUDE|NEEDS|REQUIRE|USE)[ ]\\S+(?=\\s|$)', + caseInsensitive: true}], + '#variable': + [ { token: 'variable.language.forth', + regex: '\\b(?:I|J)\\b', + caseInsensitive: true } ], + '#word': + [ { token: 'keyword.control.immediate.forth', + regex: '(?:^|\\s)\\[(?:\\?DO|\\+LOOP|AGAIN|BEGIN|DEFINED|DO|ELSE|ENDIF|FOR|IF|IFDEF|IFUNDEF|LOOP|NEXT|REPEAT|THEN|UNTIL|WHILE)\\](?=\\s|$)', + caseInsensitive: true}, + { token: 'keyword.other.immediate.forth', + regex: '(?:^|\\s)(?:COMPILE-ONLY|IMMEDIATE|IS|RESTRICT|TO|WHAT\'S|])(?=\\s|$)', + caseInsensitive: true}, + { token: 'keyword.control.compile-only.forth', + regex: '(?:^|\\s)(?:-DO|\\-LOOP|\\?DO|\\?LEAVE|\\+DO|\\+LOOP|ABORT\\"|AGAIN|AHEAD|BEGIN|CASE|DO|ELSE|ENDCASE|ENDIF|ENDOF|ENDTRY\\-IFERROR|ENDTRY|FOR|IF|IFERROR|LEAVE|LOOP|NEXT|RECOVER|REPEAT|RESTORE|THEN|TRY|U\\-DO|U\\+DO|UNTIL|WHILE)(?=\\s|$)', + caseInsensitive: true}, + { token: 'keyword.other.compile-only.forth', + regex: '(?:^|\\s)(?:\\?DUP-0=-IF|\\?DUP-IF|\\)|\\[|\\[\'\\]|\\[CHAR\\]|\\[COMPILE\\]|\\[IS\\]|\\[TO\\]||DEFERS|DOES>|INTERPRETATION>|OF|POSTPONE)(?=\\s|$)', + caseInsensitive: true}, + { token: 'keyword.other.non-immediate.forth', + regex: '(?:^|\\s)(?:\'|||CHAR|END-STRUCT|INCLUDE[D]?|LOAD|NEEDS|REQUIRE[D]?|REVISION|SEE|STRUCT|THRU|USE)(?=\\s|$)', + caseInsensitive: true}, + { token: 'keyword.other.warning.forth', + regex: '(?:^|\\s)(?:~~|BREAK:|BREAK"|DBG)(?=\\s|$)', + caseInsensitive: true}], + '#word-def': + [ { token: + [ 'keyword.other.compile-only.forth', + 'keyword.other.compile-only.forth', + 'meta.block.forth', + 'entity.name.function.forth' ], + regex: '(:NONAME)|(^:|\\s:)(\\s)(\\S+)(?=\\s|$)', + caseInsensitive: true, + push: + [ { token: 'keyword.other.compile-only.forth', + regex: ';(?:CODE)?', + caseInsensitive: true, + next: 'pop' }, + { include: '#constant' }, + { include: '#comment' }, + { include: '#string' }, + { include: '#word' }, + { include: '#variable' }, + { include: '#storage' }, + { defaultToken: 'meta.block.forth' } ] } ] } + + this.normalizeRules(); +}; + +ForthHighlightRules.metaData = { fileTypes: [ 'frt', 'fs', 'ldr', 'fth', '4th' ], + foldingStartMarker: '/\\*\\*|\\{\\s*$', + foldingStopMarker: '\\*\\*/|^\\s*\\}', + keyEquivalent: '^~F', + name: 'Forth', + scopeName: 'source.forth' } + + +oop.inherits(ForthHighlightRules, TextHighlightRules); + +exports.ForthHighlightRules = ForthHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/forth",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/forth_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ForthHighlightRules = require("./forth_highlight_rules").ForthHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ForthHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = null; + this.$id = "ace/mode/forth"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-fortran.js b/htdocs/includes/ace/mode-fortran.js new file mode 100644 index 00000000000..3f2c5bdb407 --- /dev/null +++ b/htdocs/includes/ace/mode-fortran.js @@ -0,0 +1,423 @@ +ace.define("ace/mode/fortran_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var FortranHighlightRules = function() { + + var keywords = ( + "call|case|contains|continue|cycle|do|else|elseif|end|enddo|endif|function|"+ + "if|implicit|in|include|inout|intent|module|none|only|out|print|program|return|"+ + "select|status|stop|subroutine|" + + "return|then|use|while|write|"+ + "CALL|CASE|CONTAINS|CONTINUE|CYCLE|DO|ELSE|ELSEIF|END|ENDDO|ENDIF|FUNCTION|"+ + "IF|IMPLICIT|IN|INCLUDE|INOUT|INTENT|MODULE|NONE|ONLY|OUT|PRINT|PROGRAM|RETURN|"+ + "SELECT|STATUS|STOP|SUBROUTINE|" + + "RETURN|THEN|USE|WHILE|WRITE" + ); + + var keywordOperators = ( + "and|or|not|eq|ne|gt|ge|lt|le|" + + "AND|OR|NOT|EQ|NE|GT|GE|LT|LE" + ); + + var builtinConstants = ( + "true|false|TRUE|FALSE" + ); + + var builtinFunctions = ( + "abs|achar|acos|acosh|adjustl|adjustr|aimag|aint|all|allocate|"+ + "anint|any|asin|asinh|associated|atan|atan2|atanh|"+ + "bessel_j0|bessel_j1|bessel_jn|bessel_y0|bessel_y1|bessel_yn|"+ + "bge|bgt|bit_size|ble|blt|btest|ceiling|char|cmplx|conjg|cos|cosh|"+ + "count|cpu_time|cshift|date_and_time|dble|deallocate|digits|dim|dot_product|dprod|"+ + "dshiftl|dshiftr|dsqrt|eoshift|epsilon|erf|erfc|erfc_scaled|exp|float|floor|"+ + "format|fraction|gamma|input|len|lge|lgt|lle|llt|log|log10|maskl|maskr|matmul|max|maxloc|maxval|"+ + "merge|min|minloc|minval|mod|modulo|nint|not|norm2|null|nullify|pack|parity|popcnt|poppar|"+ + "precision|present|product|radix|random_number|random_seed|range|repeat|reshape|round|"+ + "rrspacing|same_type_as|scale|scan|selected_char_kind|selected_int_kind|selected_real_kind|"+ + "set_exponent|shape|shifta|shiftl|shiftr|sign|sin|sinh|size|sngl|spacing|spread|"+ + "sqrt|sum|system_clock|tan|tanh|tiny|trailz|transfer|transpose|trim|ubound|unpack|verify|" + + "ABS|ACHAR|ACOS|ACOSH|ADJUSTL|ADJUSTR|AIMAG|AINT|ALL|ALLOCATE|"+ + "ANINT|ANY|ASIN|ASINH|ASSOCIATED|ATAN|ATAN2|ATANH|"+ + "BESSEL_J0|BESSEL_J1|BESSEL_JN|BESSEL_Y0|BESSEL_Y1|BESSEL_YN|"+ + "BGE|BGT|BIT_SIZE|BLE|BLT|BTEST|CEILING|CHAR|CMPLX|CONJG|COS|COSH|"+ + "COUNT|CPU_TIME|CSHIFT|DATE_AND_TIME|DBLE|DEALLOCATE|DIGITS|DIM|DOT_PRODUCT|DPROD|"+ + "DSHIFTL|DSHIFTR|DSQRT|EOSHIFT|EPSILON|ERF|ERFC|ERFC_SCALED|EXP|FLOAT|FLOOR|"+ + "FORMAT|FRACTION|GAMMA|INPUT|LEN|LGE|LGT|LLE|LLT|LOG|LOG10|MASKL|MASKR|MATMUL|MAX|MAXLOC|MAXVAL|"+ + "MERGE|MIN|MINLOC|MINVAL|MOD|MODULO|NINT|NOT|NORM2|NULL|NULLIFY|PACK|PARITY|POPCNT|POPPAR|"+ + "PRECISION|PRESENT|PRODUCT|RADIX|RANDOM_NUMBER|RANDOM_SEED|RANGE|REPEAT|RESHAPE|ROUND|"+ + "RRSPACING|SAME_TYPE_AS|SCALE|SCAN|SELECTED_CHAR_KIND|SELECTED_INT_KIND|SELECTED_REAL_KIND|"+ + "SET_EXPONENT|SHAPE|SHIFTA|SHIFTL|SHIFTR|SIGN|SIN|SINH|SIZE|SNGL|SPACING|SPREAD|"+ + "SQRT|SUM|SYSTEM_CLOCK|TAN|TANH|TINY|TRAILZ|TRANSFER|TRANSPOSE|TRIM|UBOUND|UNPACK|VERIFY" + ); + + var storageType = ( + "logical|character|integer|real|type|" + + "LOGICAL|CHARACTER|INTEGER|REAL|TYPE" + ); + + var storageModifiers = ( + "allocatable|dimension|intent|parameter|pointer|target|private|public|" + + "ALLOCATABLE|DIMENSION|INTENT|PARAMETER|POINTER|TARGET|PRIVATE|PUBLIC" + ); + + var keywordMapper = this.createKeywordMapper({ + "invalid.deprecated": "debugger", + "support.function": builtinFunctions, + "constant.language": builtinConstants, + "keyword": keywords, + "keyword.operator": keywordOperators, + "storage.type": storageType, + "storage.modifier" : storageModifiers + }, "identifier"); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "!.*$" + }, { + token : "string", // multi line """ string start + regex : strPre + '"{3}', + next : "qqstring3" + }, { + token : "string", // " string + regex : strPre + '"(?=.)', + next : "qqstring" + }, { + token : "string", // multi line ''' string start + regex : strPre + "'{3}", + next : "qstring3" + }, { + token : "string", // ' string + regex : strPre + "'(?=.)", + next : "qstring" + }, { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|define|undef|INCLUDE|IMPORT|DEFINE|UNDEF)\\b" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|ifdef|else|elseif|ifndef|ENDIF|IFDEF|ELSE|ELSEIF|IFNDEF)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + "qqstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line """ string end + regex : '"{3}', + next : "start" + }, { + defaultToken : "string" + } ], + "qstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line """ string end + regex : '"{3}', + next : "start" + }, { + defaultToken : "string" + } ], + "qqstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken: "string" + }], + "qstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qstring" + }, { + token : "string", + regex : "'|$", + next : "start" + }, { + defaultToken: "string" + }] + }; +}; + +oop.inherits(FortranHighlightRules, TextHighlightRules); + +exports.FortranHighlightRules = FortranHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/fortran",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/fortran_highlight_rules","ace/mode/folding/cstyle","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var FortranHighlightRules = require("./fortran_highlight_rules").FortranHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = FortranHighlightRules; + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "!"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "return": 1, + "break": 1, + "continue": 1, + "RETURN": 1, + "BREAK": 1, + "CONTINUE": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + + this.$id = "ace/mode/fortran"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-ftl.js b/htdocs/includes/ace/mode-ftl.js new file mode 100644 index 00000000000..dbca4fd1928 --- /dev/null +++ b/htdocs/includes/ace/mode-ftl.js @@ -0,0 +1,1182 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/ftl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var FtlLangHighlightRules = function () { + + var stringBuiltIns = "\\?|substring|cap_first|uncap_first|capitalize|chop_linebreak|date|time|datetime|" + + "ends_with|html|groups|index_of|j_string|js_string|json_string|last_index_of|length|lower_case|" + + "left_pad|right_pad|contains|matches|number|replace|rtf|url|split|starts_with|string|trim|" + + "upper_case|word_list|xhtml|xml"; + var numberBuiltIns = "c|round|floor|ceiling"; + var dateBuiltIns = "iso_[a-z_]+"; + var seqBuiltIns = "first|last|seq_contains|seq_index_of|seq_last_index_of|reverse|size|sort|sort_by|chunk"; + var hashBuiltIns = "keys|values"; + var xmlBuiltIns = "children|parent|root|ancestors|node_name|node_type|node_namespace"; + var expertBuiltIns = "byte|double|float|int|long|short|number_to_date|number_to_time|number_to_datetime|" + + "eval|has_content|interpret|is_[a-z_]+|namespacenew"; + var allBuiltIns = stringBuiltIns + numberBuiltIns + dateBuiltIns + seqBuiltIns + hashBuiltIns + + xmlBuiltIns + expertBuiltIns; + + var deprecatedBuiltIns = "default|exists|if_exists|web_safe"; + + var variables = "data_model|error|globals|lang|locale|locals|main|namespace|node|current_node|" + + "now|output_encoding|template_name|url_escaping_charset|vars|version"; + + var operators = "gt|gte|lt|lte|as|in|using"; + + var reserved = "true|false"; + + var attributes = "encoding|parse|locale|number_format|date_format|time_format|datetime_format|time_zone|" + + "url_escaping_charset|classic_compatible|strip_whitespace|strip_text|strict_syntax|ns_prefixes|" + + "attributes"; + + this.$rules = { + "start" : [{ + token : "constant.character.entity", + regex : /&[^;]+;/ + }, { + token : "support.function", + regex : "\\?("+allBuiltIns+")" + }, { + token : "support.function.deprecated", + regex : "\\?("+deprecatedBuiltIns+")" + }, { + token : "language.variable", + regex : "\\.(?:"+variables+")" + }, { + token : "constant.language", + regex : "\\b("+reserved+")\\b" + }, { + token : "keyword.operator", + regex : "\\b(?:"+operators+")\\b" + }, { + token : "entity.other.attribute-name", + regex : attributes + }, { + token : "string", // + regex : /['"]/, + next : "qstring" + }, { + token : function(value) { + if (value.match("^[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?$")) { + return "constant.numeric"; + } else { + return "variable"; + } + }, + regex : /[\w.+\-]+/ + }, { + token : "keyword.operator", + regex : "!|\\.|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }], + + "qstring" : [{ + token : "constant.character.escape", + regex : '\\\\[nrtvef\\\\"$]' + }, { + token : "string", + regex : /['"]/, + next : "start" + }, { + defaultToken : "string" + }] + }; +}; + +oop.inherits(FtlLangHighlightRules, TextHighlightRules); + +var FtlHighlightRules = function() { + HtmlHighlightRules.call(this); + + var directives = "assign|attempt|break|case|compress|default|elseif|else|escape|fallback|function|flush|" + + "ftl|global|if|import|include|list|local|lt|macro|nested|noescape|noparse|nt|recover|recurse|return|rt|" + + "setting|stop|switch|t|visit"; + + var startRules = [ + { + token : "comment", + regex : "<#--", + next : "ftl-dcomment" + }, { + token : "string.interpolated", + regex : "\\${", + push : "ftl-start" + }, { + token : "keyword.function", + regex : "", + next : "pop" + }, { + token : "string.interpolated", + regex : "}", + next : "pop" + } + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.embedRules(FtlLangHighlightRules, "ftl-", endRules, ["start"]); + + this.addRules({ + "ftl-dcomment" : [{ + token : "comment", + regex : "-->", + next : "pop" + }, { + defaultToken : "comment" + }] + }); + + this.normalizeRules(); +}; + +oop.inherits(FtlHighlightRules, HtmlHighlightRules); + +exports.FtlHighlightRules = FtlHighlightRules; +}); + +ace.define("ace/mode/ftl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ftl_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var FtlHighlightRules = require("./ftl_highlight_rules").FtlHighlightRules; + +var Mode = function() { + this.HighlightRules = FtlHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.$id = "ace/mode/ftl"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-gcode.js b/htdocs/includes/ace/mode-gcode.js new file mode 100644 index 00000000000..a648426c9ba --- /dev/null +++ b/htdocs/includes/ace/mode-gcode.js @@ -0,0 +1,86 @@ +ace.define("ace/mode/gcode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var GcodeHighlightRules = function() { + + var keywords = ( + "IF|DO|WHILE|ENDWHILE|CALL|ENDIF|SUB|ENDSUB|GOTO|REPEAT|ENDREPEAT|CALL" + ); + + var builtinConstants = ( + "PI" + ); + + var builtinFunctions = ( + "ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN" + ); + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "\\(.*\\)" + }, { + token : "comment", // block number + regex : "([N])([0-9]+)" + }, { + token : "string", // " string + regex : "([G])([0-9]+\\.?[0-9]?)" + }, { + token : "string", // ' string + regex : "([M])([0-9]+\\.?[0-9]?)" + }, { + token : "constant.numeric", // float + regex : "([-+]?([0-9]*\\.?[0-9]+\\.?))|(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)" + }, { + token : keywordMapper, + regex : "[A-Z]" + }, { + token : "keyword.operator", + regex : "EQ|LT|GT|NE|GE|LE|OR|XOR" + }, { + token : "paren.lparen", + regex : "[\\[]" + }, { + token : "paren.rparen", + regex : "[\\]]" + }, { + token : "text", + regex : "\\s+" + } ] + }; + }; + + oop.inherits(GcodeHighlightRules, TextHighlightRules); + + exports.GcodeHighlightRules = GcodeHighlightRules; +}); + +ace.define("ace/mode/gcode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gcode_highlight_rules","ace/range"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextMode = require("./text").Mode; + var GcodeHighlightRules = require("./gcode_highlight_rules").GcodeHighlightRules; + var Range = require("../range").Range; + + var Mode = function() { + this.HighlightRules = GcodeHighlightRules; + this.$behaviour = this.$defaultBehaviour; + }; + oop.inherits(Mode, TextMode); + + (function() { + this.$id = "ace/mode/gcode"; + }).call(Mode.prototype); + + exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-gherkin.js b/htdocs/includes/ace/mode-gherkin.js new file mode 100644 index 00000000000..322dbe40058 --- /dev/null +++ b/htdocs/includes/ace/mode-gherkin.js @@ -0,0 +1,163 @@ +ace.define("ace/mode/gherkin_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})"; + +var GherkinHighlightRules = function() { + var languages = [{ + name: "en", + labels: "Feature|Background|Scenario(?: Outline)?|Examples", + keywords: "Given|When|Then|And|But" + }]; + + var labels = languages.map(function(l) { + return l.labels; + }).join("|"); + var keywords = languages.map(function(l) { + return l.keywords; + }).join("|"); + this.$rules = { + start : [{ + token: "constant.numeric", + regex: "(?:(?:[1-9]\\d*)|(?:0))" + }, { + token : "comment", + regex : "#.*$" + }, { + token : "keyword", + regex : "(?:" + labels + "):|(?:" + keywords + ")\\b" + }, { + token : "keyword", + regex : "\\*" + }, { + token : "string", // multi line """ string start + regex : '"{3}', + next : "qqstring3" + }, { + token : "string", // " string + regex : '"', + next : "qqstring" + }, { + token : "text", + regex : "^\\s*(?=@[\\w])", + next : [{ + token : "text", + regex : "\\s+" + }, { + token : "variable.parameter", + regex : "@[\\w]+" + }, { + token : "empty", + regex : "", + next : "start" + }] + }, { + token : "comment", + regex : "<[^>]+>" + }, { + token : "comment", + regex : "\\|(?=.)", + next : "table-item" + }, { + token : "comment", + regex : "\\|$", + next : "start" + }], + "qqstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line """ string end + regex : '"{3}', + next : "start" + }, { + defaultToken : "string" + }], + "qqstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken: "string" + }], + "table-item" : [{ + token : "comment", + regex : /$/, + next : "start" + }, { + token : "comment", + regex : /\|/ + }, { + token : "string", + regex : /\\./ + }, { + defaultToken : "string" + }] + }; + this.normalizeRules(); +} + +oop.inherits(GherkinHighlightRules, TextHighlightRules); + +exports.GherkinHighlightRules = GherkinHighlightRules; +}); + +ace.define("ace/mode/gherkin",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gherkin_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var GherkinHighlightRules = require("./gherkin_highlight_rules").GherkinHighlightRules; + +var Mode = function() { + this.HighlightRules = GherkinHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/gherkin"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var space2 = " "; + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + console.log(state) + + if(line.match("[ ]*\\|")) { + indent += "| "; + } + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + + if (state == "start") { + if (line.match("Scenario:|Feature:|Scenario Outline:|Background:")) { + indent += space2; + } else if(line.match("(Given|Then).+(:)$|Examples:")) { + indent += space2; + } else if(line.match("\\*.+")) { + indent += "* "; + } + } + + + return indent; + }; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-gitignore.js b/htdocs/includes/ace/mode-gitignore.js new file mode 100644 index 00000000000..c3eac55939e --- /dev/null +++ b/htdocs/includes/ace/mode-gitignore.js @@ -0,0 +1,52 @@ +ace.define("ace/mode/gitignore_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GitignoreHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "comment", + regex : /^\s*#.*$/ + }, { + token : "keyword", // negated patterns + regex : /^\s*!.*$/ + } + ] + }; + + this.normalizeRules(); +}; + +GitignoreHighlightRules.metaData = { + fileTypes: ['gitignore'], + name: 'Gitignore' +}; + +oop.inherits(GitignoreHighlightRules, TextHighlightRules); + +exports.GitignoreHighlightRules = GitignoreHighlightRules; +}); + +ace.define("ace/mode/gitignore",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/gitignore_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var GitignoreHighlightRules = require("./gitignore_highlight_rules").GitignoreHighlightRules; + +var Mode = function() { + this.HighlightRules = GitignoreHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/gitignore"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-glsl.js b/htdocs/includes/ace/mode-glsl.js new file mode 100644 index 00000000000..ee95feea441 --- /dev/null +++ b/htdocs/includes/ace/mode-glsl.js @@ -0,0 +1,564 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = c_cppHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c_cpp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/glsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/c_cpp_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; + +var glslHighlightRules = function() { + + var keywords = ( + "attribute|const|uniform|varying|break|continue|do|for|while|" + + "if|else|in|out|inout|float|int|void|bool|true|false|" + + "lowp|mediump|highp|precision|invariant|discard|return|mat2|mat3|" + + "mat4|vec2|vec3|vec4|ivec2|ivec3|ivec4|bvec2|bvec3|bvec4|sampler2D|" + + "samplerCube|struct" + ); + + var buildinConstants = ( + "radians|degrees|sin|cos|tan|asin|acos|atan|pow|" + + "exp|log|exp2|log2|sqrt|inversesqrt|abs|sign|floor|ceil|fract|mod|" + + "min|max|clamp|mix|step|smoothstep|length|distance|dot|cross|" + + "normalize|faceforward|reflect|refract|matrixCompMult|lessThan|" + + "lessThanEqual|greaterThan|greaterThanEqual|equal|notEqual|any|all|" + + "not|dFdx|dFdy|fwidth|texture2D|texture2DProj|texture2DLod|" + + "texture2DProjLod|textureCube|textureCubeLod|" + + "gl_MaxVertexAttribs|gl_MaxVertexUniformVectors|gl_MaxVaryingVectors|" + + "gl_MaxVertexTextureImageUnits|gl_MaxCombinedTextureImageUnits|" + + "gl_MaxTextureImageUnits|gl_MaxFragmentUniformVectors|gl_MaxDrawBuffers|" + + "gl_DepthRangeParameters|gl_DepthRange|" + + "gl_Position|gl_PointSize|" + + "gl_FragCoord|gl_FrontFacing|gl_PointCoord|gl_FragColor|gl_FragData" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants + }, "identifier"); + + this.$rules = new c_cppHighlightRules().$rules; + this.$rules.start.forEach(function(rule) { + if (typeof rule.token == "function") + rule.token = keywordMapper; + }) +}; + +oop.inherits(glslHighlightRules, c_cppHighlightRules); + +exports.glslHighlightRules = glslHighlightRules; +}); + +ace.define("ace/mode/glsl",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/glsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var CMode = require("./c_cpp").Mode; +var glslHighlightRules = require("./glsl_highlight_rules").glslHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = glslHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, CMode); + +(function() { + this.$id = "ace/mode/glsl"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-gobstones.js b/htdocs/includes/ace/mode-gobstones.js new file mode 100644 index 00000000000..746b341357c --- /dev/null +++ b/htdocs/includes/ace/mode-gobstones.js @@ -0,0 +1,922 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/gobstones_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GobstonesHighlightRules = function() { + + var keywords = ( + "program|procedure|function|interactive|if|then|else|switch|repeat|while|foreach|in|not|div|mod|Skip|return" + ); + + var buildinConstants = ( + "False|True" + ); + + + var langClasses = ( + "Poner|Sacar|Mover|IrAlBorde|VaciarTablero|" + + "nroBolitas|hayBolitas|puedeMover|siguiente|previo|opuesto|minBool|maxBool|" + + "minDir|maxDir|minColor|maxColor" + ); + + var supportType = ( + "Verde|Rojo|Azul|Negro|Norte|Sur|Este|Oeste" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses, + "support.type": supportType + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", + regex : "\\-\\-.*$" + }, + { + token : "comment", + regex : "#.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:True|False)\\b" + }, { + token : "keyword.operator", + regex : ":=|\\.\\.|,|;|\\|\\||\\/\\/|\\+|\\-|\\^|\\*|>|<|>=|=>|==|&&" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(GobstonesHighlightRules, TextHighlightRules); + +exports.GobstonesHighlightRules = GobstonesHighlightRules; +}); + +ace.define("ace/mode/gobstones",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/gobstones_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var GobstonesHighlightRules = require("./gobstones_highlight_rules").GobstonesHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = GobstonesHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/gobstones"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-golang.js b/htdocs/includes/ace/mode-golang.js new file mode 100644 index 00000000000..cb81eafa48f --- /dev/null +++ b/htdocs/includes/ace/mode-golang.js @@ -0,0 +1,406 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/golang_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { + var oop = require("../lib/oop"); + var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var GolangHighlightRules = function() { + var keywords = ( + "else|break|case|return|goto|if|const|select|" + + "continue|struct|default|switch|for|range|" + + "func|import|package|chan|defer|fallthrough|go|interface|map|range|" + + "select|type|var" + ); + var builtinTypes = ( + "string|uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|" + + "float64|complex64|complex128|byte|rune|uint|int|uintptr|bool|error" + ); + var builtinFunctions = ( + "new|close|cap|copy|panic|panicln|print|println|len|make|delete|real|recover|imag|append" + ); + var builtinConstants = ("nil|true|false|iota"); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": builtinConstants, + "support.function": builtinFunctions, + "support.type": builtinTypes + }, ""); + + var stringEscapeRe = "\\\\(?:[0-7]{3}|x\\h{2}|u{4}|U\\h{6}|[abfnrtv'\"\\\\])".replace(/\\h/g, "[a-fA-F\\d]"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment.start", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : /"(?:[^"\\]|\\.)*?"/ + }, { + token : "string", // raw + regex : '`', + next : "bqstring" + }, { + token : "constant.numeric", // rune + regex : "'(?:[^\\'\uD800-\uDBFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|" + stringEscapeRe.replace('"', '') + ")'" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : ["keyword", "text", "entity.name.function"], + regex : "(func)(\\s+)([a-zA-Z_$][a-zA-Z0-9_$]*)\\b" + }, { + token : function(val) { + if (val[val.length - 1] == "(") { + return [{ + type: keywordMapper(val.slice(0, -1)) || "support.function", + value: val.slice(0, -1) + }, { + type: "paren.lparen", + value: val.slice(-1) + }]; + } + + return keywordMapper(val) || "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b\\(?" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment.end", + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "bqstring" : [ + { + token : "string", + regex : '`', + next : "start" + }, { + defaultToken : "string" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + }; + oop.inherits(GolangHighlightRules, TextHighlightRules); + + exports.GolangHighlightRules = GolangHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/golang",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/golang_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var GolangHighlightRules = require("./golang_highlight_rules").GolangHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = GolangHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = new CstyleBehaviour(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + };//end getNextLineIndent + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/golang"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-graphqlschema.js b/htdocs/includes/ace/mode-graphqlschema.js new file mode 100644 index 00000000000..9d2833dd9cc --- /dev/null +++ b/htdocs/includes/ace/mode-graphqlschema.js @@ -0,0 +1,206 @@ +ace.define("ace/mode/graphqlschema_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GraphQLSchemaHighlightRules = function() { + + var keywords = ( + "type|interface|union|enum|schema|input|implements|extends|scalar" + ); + + var dataTypes = ( + "Int|Float|String|ID|Boolean" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "storage.type": dataTypes + }, "identifier"); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + } ] + }; + this.normalizeRules(); +}; + +oop.inherits(GraphQLSchemaHighlightRules, TextHighlightRules); + +exports.GraphQLSchemaHighlightRules = GraphQLSchemaHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/graphqlschema",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/graphqlschema_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var GraphQLSchemaHighlightRules = require("./graphqlschema_highlight_rules").GraphQLSchemaHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = GraphQLSchemaHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/graphqlschema"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-groovy.js b/htdocs/includes/ace/mode-groovy.js new file mode 100644 index 00000000000..b04ffd9b23a --- /dev/null +++ b/htdocs/includes/ace/mode-groovy.js @@ -0,0 +1,980 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/groovy_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var GroovyHighlightRules = function() { + + var keywords = ( + "assert|with|abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "def|float|native|super|while" + ); + + var buildinConstants = ( + "null|Infinity|NaN|undefined" + ); + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "support.function": langClasses, + "constant.language": buildinConstants + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", + regex : '"""', + next : "qqstring" + }, { + token : "string", + regex : "'''", + next : "qstring" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\?:|\\?\\.|\\*\\.|<=>|=~|==~|\\.@|\\*\\.@|\\.&|as|in|is|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : /\\(?:u[0-9A-Fa-f]{4}|.|$)/ + }, { + token : "constant.language.escape", + regex : /\$[\w\d]+/ + }, { + token : "constant.language.escape", + regex : /\$\{[^"\}]+\}?/ + }, { + token : "string", + regex : '"{3,5}', + next : "start" + }, { + token : "string", + regex : '.+?' + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : /\\(?:u[0-9A-Fa-f]{4}|.|$)/ + }, { + token : "string", + regex : "'{3,5}", + next : "start" + }, { + token : "string", + regex : ".+?" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(GroovyHighlightRules, TextHighlightRules); + +exports.GroovyHighlightRules = GroovyHighlightRules; +}); + +ace.define("ace/mode/groovy",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/groovy_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var GroovyHighlightRules = require("./groovy_highlight_rules").GroovyHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = GroovyHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/groovy"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-haml.js b/htdocs/includes/ace/mode-haml.js new file mode 100644 index 00000000000..c4255c54e0b --- /dev/null +++ b/htdocs/includes/ace/mode-haml.js @@ -0,0 +1,1547 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var constantOtherSymbol = exports.constantOtherSymbol = { + token : "constant.other.symbol.ruby", // symbol + regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?" +}; + +var qString = exports.qString = { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" +}; + +var qqString = exports.qqString = { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' +}; + +var tString = exports.tString = { + token : "string", // backtick string + regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]" +}; + +var constantNumericHex = exports.constantNumericHex = { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b" +}; + +var constantNumericFloat = exports.constantNumericFloat = { + token : "constant.numeric", // float + regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b" +}; + +var instanceVariable = exports.instanceVariable = { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" +}; + +var RubyHighlightRules = function() { + + var builtinFunctions = ( + "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" + + "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" + + "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" + + "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" + + "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" + + "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" + + "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" + + "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" + + "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" + + "gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|" + + "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" + + "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" + + "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" + + "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" + + "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" + + "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" + + "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" + + "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" + + "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" + + "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" + + "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" + + "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" + + "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" + + "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" + + "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" + + "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" + + "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" + + "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" + + "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" + + "has_many|has_one|belongs_to|has_and_belongs_to_many" + ); + + var keywords = ( + "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" + + "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" + + "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield" + ); + + var buildinConstants = ( + "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" + + "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING" + ); + + var builtinVariables = ( + "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" + + "$!|root_url|flash|session|cookies|params|request|response|logger|self" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "variable.language": builtinVariables, + "support.function": builtinFunctions, + "invalid.deprecated": "debugger" // TODO is this a remnant from js mode? + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment", // multi line comment + regex : "^=begin(?:$|\\s.*$)", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, + + [{ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren.lparen"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.start", + regex : /"/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /"/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /'/, + push : [{ + token : "constant.language.escape", + regex : /\\['\\]/ + }, { + token : "string.end", + regex : /'/, + next : "pop" + }, { + defaultToken: "string" + }] + }], + + { + token : "text", // namespaces aren't symbols + regex : "::" + }, { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" + }, { + token : "support.class", // class name + regex : "[A-Z][a-zA-Z_\\d]+" + }, + + constantOtherSymbol, + constantNumericHex, + constantNumericFloat, + + { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "punctuation.separator.key-value", + regex : "=>" + }, { + stateName: "heredoc", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[3]); + return [ + {type:"constant", value: tokens[1]}, + {type:"string", value: tokens[2]}, + {type:"support.class", value: tokens[3]}, + {type:"string", value: tokens[4]} + ]; + }, + regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)", + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^ +" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : "string.character", + regex : "\\B\\?." + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^=end(?:$|\\s.*$)", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.normalizeRules(); +}; + +oop.inherits(RubyHighlightRules, TextHighlightRules); + +exports.RubyHighlightRules = RubyHighlightRules; +}); + +ace.define("ace/mode/haml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/ruby_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var RubyExports = require("./ruby_highlight_rules"); +var RubyHighlightRules = RubyExports.RubyHighlightRules; + +var HamlHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules = { + "start": [ + { + token: "comment.block", // multiline HTML comment + regex: /^\/$/, + next: "comment" + }, + { + token: "comment.block", // multiline HAML comment + regex: /^\-#$/, + next: "comment" + }, + { + token: "comment.line", // HTML comment + regex: /\/\s*.*/ + }, + { + token: "comment.line", // HAML comment + regex: /-#\s*.*/ + }, + { + token: "keyword.other.doctype", + regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?" + }, + RubyExports.qString, + RubyExports.qqString, + RubyExports.tString, + { + token: "meta.tag.haml", + regex: /(%[\w:\-]+)/ + }, + { + token: "keyword.attribute-name.class.haml", + regex: /\.[\w-]+/ + }, + { + token: "keyword.attribute-name.id.haml", + regex: /#[\w-]+/, + next: "element_class" + }, + RubyExports.constantNumericHex, + RubyExports.constantNumericFloat, + RubyExports.constantOtherSymbol, + { + token: "text", + regex: /=|-|~/, + next: "embedded_ruby" + } + ], + "element_class": [ + { + token: "keyword.attribute-name.class.haml", + regex: /\.[\w-]+/ + }, + { + token: "punctuation.section", + regex: /\{/, + next: "element_attributes" + }, + RubyExports.constantOtherSymbol, + { + token: "empty", + regex: "$|(?!\\.|#|\\{|\\[|=|-|~|\\/])", + next: "start" + } + ], + "element_attributes": [ + RubyExports.constantOtherSymbol, + RubyExports.qString, + RubyExports.qqString, + RubyExports.tString, + RubyExports.constantNumericHex, + RubyExports.constantNumericFloat, + { + token: "punctuation.section", + regex: /$|\}/, + next: "start" + } + ], + "embedded_ruby": [ + RubyExports.constantNumericHex, + RubyExports.constantNumericFloat, + RubyExports.instanceVariable, + RubyExports.qString, + RubyExports.qqString, + RubyExports.tString, + { + token : "support.class", // class name + regex : "[A-Z][a-zA-Z_\\d]+" + }, + { + token : new RubyHighlightRules().getKeywords(), + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token : ["keyword", "text", "text"], + regex : "(?:do|\\{)(?: \\|[^|]+\\|)?$", + next : "start" + }, + { + token : ["text"], + regex : "^$", + next : "start" + }, + { + token : ["text"], + regex : "^(?!.*\\|\\s*$)", + next : "start" + } + ], + "comment": [ + { + token: "comment.block", + regex: /^$/, + next: "start" + }, + { + token: "comment.block", // comment spanning the whole line + regex: /\s+.*/ + } + ] + + }; + + this.normalizeRules(); +}; + +oop.inherits(HamlHighlightRules, HtmlHighlightRules); + +exports.HamlHighlightRules = HamlHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/haml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haml_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HamlHighlightRules = require("./haml_highlight_rules").HamlHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = HamlHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + + this.$id = "ace/mode/haml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-handlebars.js b/htdocs/includes/ace/mode-handlebars.js new file mode 100644 index 00000000000..c970820e5b2 --- /dev/null +++ b/htdocs/includes/ace/mode-handlebars.js @@ -0,0 +1,2593 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/handlebars_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +function pop2(currentState, stack) { + stack.splice(0, 3); + return stack.shift() || "start"; +} +var HandlebarsHighlightRules = function() { + HtmlHighlightRules.call(this); + var hbs = { + regex : "(?={{)", + push : "handlebars" + }; + for (var key in this.$rules) { + this.$rules[key].unshift(hbs); + } + this.$rules.handlebars = [{ + token : "comment.start", + regex : "{{!--", + push : [{ + token : "comment.end", + regex : "--}}", + next : pop2 + }, { + defaultToken : "comment" + }] + }, { + token : "comment.start", + regex : "{{!", + push : [{ + token : "comment.end", + regex : "}}", + next : pop2 + }, { + defaultToken : "comment" + }] + }, { + token : "support.function", // unescaped variable + regex : "{{{", + push : [{ + token : "support.function", + regex : "}}}", + next : pop2 + }, { + token : "variable.parameter", + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }] + }, { + token : "storage.type.start", // begin section + regex : "{{[#\\^/&]?", + push : [{ + token : "storage.type.end", + regex : "}}", + next : pop2 + }, { + token : "variable.parameter", + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }] + }]; + + this.normalizeRules(); +}; + +oop.inherits(HandlebarsHighlightRules, HtmlHighlightRules); + +exports.HandlebarsHighlightRules = HandlebarsHighlightRules; +}); + +ace.define("ace/mode/behaviour/html",["require","exports","module","ace/lib/oop","ace/mode/behaviour/xml"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var XmlBehaviour = require("../behaviour/xml").XmlBehaviour; + +var HtmlBehaviour = function () { + + XmlBehaviour.call(this); + +}; + +oop.inherits(HtmlBehaviour, XmlBehaviour); + +exports.HtmlBehaviour = HtmlBehaviour; +}); + +ace.define("ace/mode/handlebars",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/handlebars_highlight_rules","ace/mode/behaviour/html","ace/mode/folding/html"], function(require, exports, module) { + "use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var HandlebarsHighlightRules = require("./handlebars_highlight_rules").HandlebarsHighlightRules; +var HtmlBehaviour = require("./behaviour/html").HtmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = HandlebarsHighlightRules; + this.$behaviour = new HtmlBehaviour(); +}; + +oop.inherits(Mode, HtmlMode); + +(function() { + this.blockComment = {start: "{{!--", end: "--}}"}; + this.$id = "ace/mode/handlebars"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-haskell.js b/htdocs/includes/ace/mode-haskell.js new file mode 100644 index 00000000000..51a54454728 --- /dev/null +++ b/htdocs/includes/ace/mode-haskell.js @@ -0,0 +1,372 @@ +ace.define("ace/mode/haskell_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HaskellHighlightRules = function() { + + this.$rules = { start: + [ { token: + [ 'punctuation.definition.entity.haskell', + 'keyword.operator.function.infix.haskell', + 'punctuation.definition.entity.haskell' ], + regex: '(`)([a-zA-Z_\']*?)(`)', + comment: 'In case this regex seems unusual for an infix operator, note that Haskell allows any ordinary function application (elem 4 [1..10]) to be rewritten as an infix expression (4 `elem` [1..10]).' }, + { token: 'constant.language.unit.haskell', regex: '\\(\\)' }, + { token: 'constant.language.empty-list.haskell', + regex: '\\[\\]' }, + { token: 'keyword.other.haskell', + regex: '\\bmodule\\b', + push: + [ { token: 'keyword.other.haskell', regex: '\\bwhere\\b', next: 'pop' }, + { include: '#module_name' }, + { include: '#module_exports' }, + { token: 'invalid', regex: '[a-z]+' }, + { defaultToken: 'meta.declaration.module.haskell' } ] }, + { token: 'keyword.other.haskell', + regex: '\\bclass\\b', + push: + [ { token: 'keyword.other.haskell', + regex: '\\bwhere\\b', + next: 'pop' }, + { token: 'support.class.prelude.haskell', + regex: '\\b(?:Monad|Functor|Eq|Ord|Read|Show|Num|(?:Frac|Ra)tional|Enum|Bounded|Real(?:Frac|Float)?|Integral|Floating)\\b' }, + { token: 'entity.other.inherited-class.haskell', + regex: '[A-Z][A-Za-z_\']*' }, + { token: 'variable.other.generic-type.haskell', + regex: '\\b[a-z][a-zA-Z0-9_\']*\\b' }, + { defaultToken: 'meta.declaration.class.haskell' } ] }, + { token: 'keyword.other.haskell', + regex: '\\binstance\\b', + push: + [ { token: 'keyword.other.haskell', + regex: '\\bwhere\\b|$', + next: 'pop' }, + { include: '#type_signature' }, + { defaultToken: 'meta.declaration.instance.haskell' } ] }, + { token: 'keyword.other.haskell', + regex: 'import', + push: + [ { token: 'meta.import.haskell', regex: '$|;|^', next: 'pop' }, + { token: 'keyword.other.haskell', regex: 'qualified|as|hiding' }, + { include: '#module_name' }, + { include: '#module_exports' }, + { defaultToken: 'meta.import.haskell' } ] }, + { token: [ 'keyword.other.haskell', 'meta.deriving.haskell' ], + regex: '(deriving)(\\s*\\()', + push: + [ { token: 'meta.deriving.haskell', regex: '\\)', next: 'pop' }, + { token: 'entity.other.inherited-class.haskell', + regex: '\\b[A-Z][a-zA-Z_\']*' }, + { defaultToken: 'meta.deriving.haskell' } ] }, + { token: 'keyword.other.haskell', + regex: '\\b(?:deriving|where|data|type|case|of|let|in|newtype|default)\\b' }, + { token: 'keyword.operator.haskell', regex: '\\binfix[lr]?\\b' }, + { token: 'keyword.control.haskell', + regex: '\\b(?:do|if|then|else)\\b' }, + { token: 'constant.numeric.float.haskell', + regex: '\\b(?:[0-9]+\\.[0-9]+(?:[eE][+-]?[0-9]+)?|[0-9]+[eE][+-]?[0-9]+)\\b', + comment: 'Floats are always decimal' }, + { token: 'constant.numeric.haskell', + regex: '\\b(?:[0-9]+|0(?:[xX][0-9a-fA-F]+|[oO][0-7]+))\\b' }, + { token: + [ 'meta.preprocessor.c', + 'punctuation.definition.preprocessor.c', + 'meta.preprocessor.c' ], + regex: '^(\\s*)(#)(\\s*\\w+)', + comment: 'In addition to Haskell\'s "native" syntax, GHC permits the C preprocessor to be run on a source file.' }, + { include: '#pragma' }, + { token: 'punctuation.definition.string.begin.haskell', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.haskell', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.haskell', + regex: '\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"\'\\&])' }, + { token: 'constant.character.escape.octal.haskell', + regex: '\\\\o[0-7]+|\\\\x[0-9A-Fa-f]+|\\\\[0-9]+' }, + { token: 'constant.character.escape.control.haskell', + regex: '\\^[A-Z@\\[\\]\\\\\\^_]' }, + { defaultToken: 'string.quoted.double.haskell' } ] }, + { token: + [ 'punctuation.definition.string.begin.haskell', + 'string.quoted.single.haskell', + 'constant.character.escape.haskell', + 'constant.character.escape.octal.haskell', + 'constant.character.escape.hexadecimal.haskell', + 'constant.character.escape.control.haskell', + 'punctuation.definition.string.end.haskell' ], + regex: '(\')(?:([\\ -\\[\\]-~])|(\\\\(?:NUL|SOH|STX|ETX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|SO|SI|DLE|DC1|DC2|DC3|DC4|NAK|SYN|ETB|CAN|EM|SUB|ESC|FS|GS|RS|US|SP|DEL|[abfnrtv\\\\\\"\'\\&]))|(\\\\o[0-7]+)|(\\\\x[0-9A-Fa-f]+)|(\\^[A-Z@\\[\\]\\\\\\^_]))(\')' }, + { token: + [ 'meta.function.type-declaration.haskell', + 'entity.name.function.haskell', + 'meta.function.type-declaration.haskell', + 'keyword.other.double-colon.haskell' ], + regex: '^(\\s*)([a-z_][a-zA-Z0-9_\']*|\\([|!%$+\\-.,=]+\\))(\\s*)(::)', + push: + [ { token: 'meta.function.type-declaration.haskell', + regex: '$', + next: 'pop' }, + { include: '#type_signature' }, + { defaultToken: 'meta.function.type-declaration.haskell' } ] }, + { token: 'support.constant.haskell', + regex: '\\b(?:Just|Nothing|Left|Right|True|False|LT|EQ|GT|\\(\\)|\\[\\])\\b' }, + { token: 'constant.other.haskell', regex: '\\b[A-Z]\\w*\\b' }, + { include: '#comments' }, + { token: 'support.function.prelude.haskell', + regex: '\\b(?:abs|acos|acosh|all|and|any|appendFile|applyM|asTypeOf|asin|asinh|atan|atan2|atanh|break|catch|ceiling|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|div|divMod|drop|dropWhile|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromEnum|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|head|id|init|interact|ioError|isDenormalized|isIEEE|isInfinite|isNaN|isNegativeZero|iterate|last|lcm|length|lex|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|odd|or|otherwise|pi|pred|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|read|readFile|readIO|readList|readLn|readParen|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showList|showParen|showString|shows|showsPrec|significand|signum|sin|sinh|snd|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|toEnum|toInteger|toRational|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b' }, + { include: '#infix_op' }, + { token: 'keyword.operator.haskell', + regex: '[|!%$?~+:\\-.=\\\\]+', + comment: 'In case this regex seems overly general, note that Haskell permits the definition of new operators which can be nearly any string of punctuation characters, such as $%^&*.' }, + { token: 'punctuation.separator.comma.haskell', regex: ',' } ], + '#block_comment': + [ { token: 'punctuation.definition.comment.haskell', + regex: '\\{-(?!#)', + push: + [ { include: '#block_comment' }, + { token: 'punctuation.definition.comment.haskell', + regex: '-\\}', + next: 'pop' }, + { defaultToken: 'comment.block.haskell' } ] } ], + '#comments': + [ { token: 'punctuation.definition.comment.haskell', + regex: '--.*', + push_: + [ { token: 'comment.line.double-dash.haskell', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.double-dash.haskell' } ] }, + { include: '#block_comment' } ], + '#infix_op': + [ { token: 'entity.name.function.infix.haskell', + regex: '\\([|!%$+:\\-.=]+\\)|\\(,+\\)' } ], + '#module_exports': + [ { token: 'meta.declaration.exports.haskell', + regex: '\\(', + push: + [ { token: 'meta.declaration.exports.haskell.end', + regex: '\\)', + next: 'pop' }, + { token: 'entity.name.function.haskell', + regex: '\\b[a-z][a-zA-Z_\']*' }, + { token: 'storage.type.haskell', regex: '\\b[A-Z][A-Za-z_\']*' }, + { token: 'punctuation.separator.comma.haskell', regex: ',' }, + { include: '#infix_op' }, + { token: 'meta.other.unknown.haskell', + regex: '\\(.*?\\)', + comment: 'So named because I don\'t know what to call this.' }, + { defaultToken: 'meta.declaration.exports.haskell.end' } ] } ], + '#module_name': + [ { token: 'support.other.module.haskell', + regex: '[A-Z][A-Za-z._\']*' } ], + '#pragma': + [ { token: 'meta.preprocessor.haskell', + regex: '\\{-#', + push: + [ { token: 'meta.preprocessor.haskell', + regex: '#-\\}', + next: 'pop' }, + { token: 'keyword.other.preprocessor.haskell', + regex: '\\b(?:LANGUAGE|UNPACK|INLINE)\\b' }, + { defaultToken: 'meta.preprocessor.haskell' } ] } ], + '#type_signature': + [ { token: + [ 'meta.class-constraint.haskell', + 'entity.other.inherited-class.haskell', + 'meta.class-constraint.haskell', + 'variable.other.generic-type.haskell', + 'meta.class-constraint.haskell', + 'keyword.other.big-arrow.haskell' ], + regex: '(\\(\\s*)([A-Z][A-Za-z]*)(\\s+)([a-z][A-Za-z_\']*)(\\)\\s*)(=>)' }, + { include: '#pragma' }, + { token: 'keyword.other.arrow.haskell', regex: '->' }, + { token: 'keyword.other.big-arrow.haskell', regex: '=>' }, + { token: 'support.type.prelude.haskell', + regex: '\\b(?:Int(?:eger)?|Maybe|Either|Bool|Float|Double|Char|String|Ordering|ShowS|ReadS|FilePath|IO(?:Error)?)\\b' }, + { token: 'variable.other.generic-type.haskell', + regex: '\\b[a-z][a-zA-Z0-9_\']*\\b' }, + { token: 'storage.type.haskell', + regex: '\\b[A-Z][a-zA-Z0-9_\']*\\b' }, + { token: 'support.constant.unit.haskell', regex: '\\(\\)' }, + { include: '#comments' } ] } + + this.normalizeRules(); +}; + +HaskellHighlightRules.metaData = { fileTypes: [ 'hs' ], + keyEquivalent: '^~H', + name: 'Haskell', + scopeName: 'source.haskell' } + + +oop.inherits(HaskellHighlightRules, TextHighlightRules); + +exports.HaskellHighlightRules = HaskellHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/haskell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haskell_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HaskellHighlightRules = require("./haskell_highlight_rules").HaskellHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HaskellHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = null; + this.$id = "ace/mode/haskell"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-haskell_cabal.js b/htdocs/includes/ace/mode-haskell_cabal.js new file mode 100644 index 00000000000..5b69e04cbf1 --- /dev/null +++ b/htdocs/includes/ace/mode-haskell_cabal.js @@ -0,0 +1,134 @@ +ace.define("ace/mode/haskell_cabal_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CabalHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "comment", + regex : "^\\s*--.*$" + }, { + token: ["keyword"], + regex: /^(\s*\w.*?)(:(?:\s+|$))/ + }, { + token : "constant.numeric", // float + regex : /[\d_]+(?:(?:[\.\d_]*)?)/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false|TRUE|FALSE|True|False|yes|no)\\b" + }, { + token : "markup.heading", + regex : /^(\w.*)$/ + } + ]}; + +}; + +oop.inherits(CabalHighlightRules, TextHighlightRules); + +exports.CabalHighlightRules = CabalHighlightRules; +}); + +ace.define("ace/mode/folding/haskell_cabal",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + this.isHeading = function (session,row) { + var heading = "markup.heading"; + var token = session.getTokens(row)[0]; + return row==0 || (token && token.type.lastIndexOf(heading, 0) === 0); + }; + + this.getFoldWidget = function(session, foldStyle, row) { + if (this.isHeading(session,row)){ + return "start"; + } else if (foldStyle === "markbeginend" && !(/^\s*$/.test(session.getLine(row)))){ + var maxRow = session.getLength(); + while (++row < maxRow) { + if (!(/^\s*$/.test(session.getLine(row)))){ + break; + } + } + if (row==maxRow || this.isHeading(session,row)){ + return "end"; + } + } + return ""; + }; + + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + if (this.isHeading(session,row)) { + while (++row < maxRow) { + if (this.isHeading(session,row)){ + row--; + break; + } + } + + endRow = row; + if (endRow > startRow) { + while (endRow > startRow && /^\s*$/.test(session.getLine(endRow))) + endRow--; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + } else if (this.getFoldWidget(session, foldStyle, row)==="end"){ + var endRow = row; + var endColumn = session.getLine(endRow).length; + while (--row>=0){ + if (this.isHeading(session,row)){ + break; + } + } + var line = session.getLine(row); + var startColumn = line.length; + return new Range(row, startColumn, endRow, endColumn); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/haskell_cabal",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haskell_cabal_highlight_rules","ace/mode/folding/haskell_cabal"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CabalHighlightRules = require("./haskell_cabal_highlight_rules").CabalHighlightRules; +var FoldMode = require("./folding/haskell_cabal").FoldMode; + +var Mode = function() { + this.HighlightRules = CabalHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = null; + this.$id = "ace/mode/haskell_cabal"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-haxe.js b/htdocs/includes/ace/mode-haxe.js new file mode 100644 index 00000000000..694b9b80ef3 --- /dev/null +++ b/htdocs/includes/ace/mode-haxe.js @@ -0,0 +1,379 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/haxe_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); + +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HaxeHighlightRules = function() { + + var keywords = ( + "break|case|cast|catch|class|continue|default|else|enum|extends|for|function|if|implements|import|in|inline|interface|new|override|package|private|public|return|static|super|switch|this|throw|trace|try|typedef|untyped|var|while|Array|Void|Bool|Int|UInt|Float|Dynamic|String|List|Hash|IntHash|Error|Unknown|Type|Std" + ); + + var buildinConstants = ( + "null|true|false" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({<]" + }, { + token : "paren.rparen", + regex : "[\\])}>]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(HaxeHighlightRules, TextHighlightRules); + +exports.HaxeHighlightRules = HaxeHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/haxe",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/haxe_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HaxeHighlightRules = require("./haxe_highlight_rules").HaxeHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HaxeHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/haxe"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-hjson.js b/htdocs/includes/ace/mode-hjson.js new file mode 100644 index 00000000000..857587650b2 --- /dev/null +++ b/htdocs/includes/ace/mode-hjson.js @@ -0,0 +1,346 @@ +ace.define("ace/mode/hjson_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var HjsonHighlightRules = function() { + + this.$rules = { + start: [{ + include: "#comments" + }, { + include: "#rootObject" + }, { + include: "#value" + }], + "#array": [{ + token: "paren.lparen", + regex: /\[/, + push: [{ + token: "paren.rparen", + regex: /\]/, + next: "pop" + }, { + include: "#value" + }, { + include: "#comments" + }, { + token: "text", + regex: /,|$/ + }, { + token: "invalid.illegal", + regex: /[^\s\]]/ + }, { + defaultToken: "array" + }] + }], + "#comments": [{ + token: [ + "comment.punctuation", + "comment.line" + ], + regex: /(#)(.*$)/ + }, { + token: "comment.punctuation", + regex: /\/\*/, + push: [{ + token: "comment.punctuation", + regex: /\*\//, + next: "pop" + }, { + defaultToken: "comment.block" + }] + }, { + token: [ + "comment.punctuation", + "comment.line" + ], + regex: /(\/\/)(.*$)/ + }], + "#constant": [{ + token: "constant", + regex: /\b(?:true|false|null)\b/ + }], + "#keyname": [{ + token: "keyword", + regex: /(?:[^,\{\[\}\]\s]+|"(?:[^"\\]|\\.)*")\s*(?=:)/ + }], + "#mstring": [{ + token: "string", + regex: /'''/, + push: [{ + token: "string", + regex: /'''/, + next: "pop" + }, { + defaultToken: "string" + }] + }], + "#number": [{ + token: "constant.numeric", + regex: /-?(?:0|[1-9]\d*)(?:(?:\.\d+)?(?:[eE][+-]?\d+)?)?/, + comment: "handles integer and decimal numbers" + }], + "#object": [{ + token: "paren.lparen", + regex: /\{/, + push: [{ + token: "paren.rparen", + regex: /\}/, + next: "pop" + }, { + include: "#keyname" + }, { + include: "#value" + }, { + token: "text", + regex: /:/ + }, { + token: "text", + regex: /,/ + }, { + defaultToken: "paren" + }] + }], + "#rootObject": [{ + token: "paren", + regex: /(?=\s*(?:[^,\{\[\}\]\s]+|"(?:[^"\\]|\\.)*")\s*:)/, + push: [{ + token: "paren.rparen", + regex: /---none---/, + next: "pop" + }, { + include: "#keyname" + }, { + include: "#value" + }, { + token: "text", + regex: /:/ + }, { + token: "text", + regex: /,/ + }, { + defaultToken: "paren" + }] + }], + "#string": [{ + token: "string", + regex: /"/, + push: [{ + token: "string", + regex: /"/, + next: "pop" + }, { + token: "constant.language.escape", + regex: /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/ + }, { + token: "invalid.illegal", + regex: /\\./ + }, { + defaultToken: "string" + }] + }], + "#ustring": [{ + token: "string", + regex: /\b[^:,0-9\-\{\[\}\]\s].*$/ + }], + "#value": [{ + include: "#constant" + }, { + include: "#number" + }, { + include: "#string" + }, { + include: "#array" + }, { + include: "#object" + }, { + include: "#comments" + }, { + include: "#mstring" + }, { + include: "#ustring" + }] + } + + this.normalizeRules(); +}; + +HjsonHighlightRules.metaData = { + fileTypes: ["hjson"], + foldingStartMarker: "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [{\\[] # the start of an object or array\n (?! # but not followed by\n .* # whatever\n [}\\]] # and the close of an object or array\n ,? # an optional comma\n \\s* # some optional space\n $ # at the end of the line\n )\n | # ...or...\n [{\\[] # the start of an object or array\n \\s* # some optional space\n $ # at the end of the line\n )", + foldingStopMarker: "(?x: # turn on extended mode\n ^ # a line beginning with\n \\s* # some optional space\n [}\\]] # and the close of an object or array\n )", + keyEquivalent: "^~J", + name: "Hjson", + scopeName: "source.hjson" +} + + +oop.inherits(HjsonHighlightRules, TextHighlightRules); + +exports.HjsonHighlightRules = HjsonHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/hjson",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/hjson_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HjsonHighlightRules = require("./hjson_highlight_rules").HjsonHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HjsonHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = { start: "/*", end: "*/" }; + this.$id = "ace/mode/hjson" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-html.js b/htdocs/includes/ace/mode-html.js new file mode 100644 index 00000000000..35aa2cc3f26 --- /dev/null +++ b/htdocs/includes/ace/mode-html.js @@ -0,0 +1,2480 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-html_elixir.js b/htdocs/includes/ace/mode-html_elixir.js new file mode 100644 index 00000000000..207e4899c8c --- /dev/null +++ b/htdocs/includes/ace/mode-html_elixir.js @@ -0,0 +1,3059 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/elixir_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ElixirHighlightRules = function() { + + this.$rules = { start: + [ { token: + [ 'meta.module.elixir', + 'keyword.control.module.elixir', + 'meta.module.elixir', + 'entity.name.type.module.elixir' ], + regex: '^(\\s*)(defmodule)(\\s+)((?:[A-Z]\\w*\\s*\\.\\s*)*[A-Z]\\w*)' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc (?:~[a-z])?"""', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc ~[A-Z]"""', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*"""', + next: 'pop' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc (?:~[a-z])?\'\'\'', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*\'\'\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.heredoc', + regex: '@(?:module|type)?doc ~[A-Z]\'\'\'', + push: + [ { token: 'comment.documentation.heredoc', + regex: '\\s*\'\'\'', + next: 'pop' }, + { defaultToken: 'comment.documentation.heredoc' } ], + comment: '@doc with heredocs is treated as documentation' }, + { token: 'comment.documentation.false', + regex: '@(?:module|type)?doc false', + comment: '@doc false is treated as documentation' }, + { token: 'comment.documentation.string', + regex: '@(?:module|type)?doc "', + push: + [ { token: 'comment.documentation.string', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'comment.documentation.string' } ], + comment: '@doc with string is treated as documentation' }, + { token: 'keyword.control.elixir', + regex: '\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01]+|0o[0-7]+)\\b' }, + { token: 'punctuation.definition.constant.elixir', + regex: ':\'', + push: + [ { token: 'punctuation.definition.constant.elixir', + regex: '\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] }, + { token: 'punctuation.definition.constant.elixir', + regex: ':"', + push: + [ { token: 'punctuation.definition.constant.elixir', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '(?:\'\'\')', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>\'\'\')', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*\'\'\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ], + comment: 'Single-quoted heredocs' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\'', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'support.function.variable.quoted.single.elixir' } ], + comment: 'single quoted string (allows for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '(?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.heredoc.elixir' } ], + comment: 'Double-quoted heredocs' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '"', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.elixir' } ], + comment: 'double quoted string (allows for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z](?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '~[a-z](?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.quoted.double.heredoc.elixir' } ], + comment: 'Double-quoted heredocs sigils' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\{', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\}[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\[', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\][a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\<', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\>[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z]\\(', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\)[a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[a-z][^\\w]', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '[^\\w][a-z]*', + next: 'pop' }, + { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { include: '#escaped_char' }, + { defaultToken: 'string.interpolated.elixir' } ], + comment: 'sigil (allow for interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z](?:""")', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '~[A-Z](?>""")', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '^\\s*"""', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'Double-quoted heredocs sigils' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\{', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\}[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\[', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\][a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\<', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\>[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z]\\(', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '\\)[a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: 'punctuation.definition.string.begin.elixir', + regex: '~[A-Z][^\\w]', + push: + [ { token: 'punctuation.definition.string.end.elixir', + regex: '[^\\w][a-z]*', + next: 'pop' }, + { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], + comment: 'sigil (without interpolation)' }, + { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'], + regex: '(:)([a-zA-Z_][\\w@]*(?:[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(?:\\^\\^)?)', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)', + comment: 'symbols' }, + { token: 'punctuation.definition.constant.elixir', + regex: '(?:[a-zA-Z_][\\w@]*(?:[?!])?):(?!:)', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)', + comment: 'symbols' }, + { token: + [ 'punctuation.definition.comment.elixir', + 'comment.line.number-sign.elixir' ], + regex: '(#)(.*)' }, + { token: 'constant.numeric.elixir', + regex: '\\?(?:\\\\(?:x[\\da-fA-F]{1,2}(?![\\da-fA-F])\\b|[^xMC])|[^\\s\\\\])', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?=?' }, + { token: 'keyword.operator.bitwise.elixir', + regex: '\\|{3}|&{3}|\\^{3}|<{3}|>{3}|~{3}' }, + { token: 'keyword.operator.logical.elixir', + regex: '!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b', + originalRegex: '(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b' }, + { token: 'keyword.operator.arithmetic.elixir', + regex: '\\*|\\+|\\-|/' }, + { token: 'keyword.operator.other.elixir', + regex: '\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|\\|>|~|=>' }, + { token: 'keyword.operator.assignment.elixir', regex: '=' }, + { token: 'punctuation.separator.other.elixir', regex: ':' }, + { token: 'punctuation.separator.statement.elixir', + regex: '\\;' }, + { token: 'punctuation.separator.object.elixir', regex: ',' }, + { token: 'punctuation.separator.method.elixir', regex: '\\.' }, + { token: 'punctuation.section.scope.elixir', regex: '\\{|\\}' }, + { token: 'punctuation.section.array.elixir', regex: '\\[|\\]' }, + { token: 'punctuation.section.function.elixir', + regex: '\\(|\\)' } ], + '#escaped_char': + [ { token: 'constant.character.escape.elixir', + regex: '\\\\(?:x[\\da-fA-F]{1,2}|.)' } ], + '#interpolated_elixir': + [ { token: + [ 'source.elixir.embedded.source', + 'source.elixir.embedded.source.empty' ], + regex: '(#\\{)(\\})' }, + { todo: + { token: 'punctuation.section.embedded.elixir', + regex: '#\\{', + push: + [ { token: 'punctuation.section.embedded.elixir', + regex: '\\}', + next: 'pop' }, + { include: '#nest_curly_and_self' }, + { include: '$self' }, + { defaultToken: 'source.elixir.embedded.source' } ] } } ], + '#nest_curly_and_self': + [ { token: 'punctuation.section.scope.elixir', + regex: '\\{', + push: + [ { token: 'punctuation.section.scope.elixir', + regex: '\\}', + next: 'pop' }, + { include: '#nest_curly_and_self' } ] }, + { include: '$self' } ], + '#regex_sub': + [ { include: '#interpolated_elixir' }, + { include: '#escaped_char' }, + { token: + [ 'punctuation.definition.arbitrary-repitition.elixir', + 'string.regexp.arbitrary-repitition.elixir', + 'string.regexp.arbitrary-repitition.elixir', + 'punctuation.definition.arbitrary-repitition.elixir' ], + regex: '(\\{)(\\d+)((?:,\\d+)?)(\\})' }, + { token: 'punctuation.definition.character-class.elixir', + regex: '\\[(?:\\^?\\])?', + push: + [ { token: 'punctuation.definition.character-class.elixir', + regex: '\\]', + next: 'pop' }, + { include: '#escaped_char' }, + { defaultToken: 'string.regexp.character-class.elixir' } ] }, + { token: 'punctuation.definition.group.elixir', + regex: '\\(', + push: + [ { token: 'punctuation.definition.group.elixir', + regex: '\\)', + next: 'pop' }, + { include: '#regex_sub' }, + { defaultToken: 'string.regexp.group.elixir' } ] }, + { token: + [ 'punctuation.definition.comment.elixir', + 'comment.line.number-sign.elixir' ], + regex: '(?:^|\\s)(#)(\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$)', + originalRegex: '(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$', + comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] } + + this.normalizeRules(); +}; + +ElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.', + fileTypes: [ 'ex', 'exs' ], + firstLineMatch: '^#!/.*\\belixir', + foldingStartMarker: '(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$', + foldingStopMarker: '^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)', + keyEquivalent: '^~E', + name: 'Elixir', + scopeName: 'source.elixir' } + + +oop.inherits(ElixirHighlightRules, TextHighlightRules); + +exports.ElixirHighlightRules = ElixirHighlightRules; +}); + +ace.define("ace/mode/html_elixir_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/elixir_highlight_rules"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + var ElixirHighlightRules = require("./elixir_highlight_rules").ElixirHighlightRules; + + var HtmlElixirHighlightRules = function() { + HtmlHighlightRules.call(this); + + var startRules = [ + { + regex: "<%%|%%>", + token: "constant.language.escape" + }, { + token : "comment.start.eex", + regex : "<%#", + push : [{ + token : "comment.end.eex", + regex: "%>", + next: "pop", + defaultToken:"comment" + }] + }, { + token : "support.elixir_tag", + regex : "<%+(?!>)[-=]?", + push : "elixir-start" + } + ]; + + var endRules = [ + { + token : "support.elixir_tag", + regex : "%>", + next : "pop" + }, { + token: "comment", + regex: "#(?:[^%]|%[^>])*" + } + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.embedRules(ElixirHighlightRules, "elixir-", endRules, ["start"]); + + this.normalizeRules(); + }; + + + oop.inherits(HtmlElixirHighlightRules, HtmlHighlightRules); + + exports.HtmlElixirHighlightRules = HtmlElixirHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/elixir",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elixir_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ElixirHighlightRules = require("./elixir_highlight_rules").ElixirHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = ElixirHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/elixir" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/html_elixir",["require","exports","module","ace/lib/oop","ace/mode/html_elixir_highlight_rules","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/elixir"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlElixirHighlightRules = require("./html_elixir_highlight_rules").HtmlElixirHighlightRules; +var HtmlMode = require("./html").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var ElixirMode = require("./elixir").Mode; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = HtmlElixirHighlightRules; + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode, + "elixir-": ElixirMode + }); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + + this.$id = "ace/mode/html_elixir"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-html_ruby.js b/htdocs/includes/ace/mode-html_ruby.js new file mode 100644 index 00000000000..593e9552220 --- /dev/null +++ b/htdocs/includes/ace/mode-html_ruby.js @@ -0,0 +1,3016 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var constantOtherSymbol = exports.constantOtherSymbol = { + token : "constant.other.symbol.ruby", // symbol + regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?" +}; + +var qString = exports.qString = { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" +}; + +var qqString = exports.qqString = { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' +}; + +var tString = exports.tString = { + token : "string", // backtick string + regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]" +}; + +var constantNumericHex = exports.constantNumericHex = { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b" +}; + +var constantNumericFloat = exports.constantNumericFloat = { + token : "constant.numeric", // float + regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b" +}; + +var instanceVariable = exports.instanceVariable = { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" +}; + +var RubyHighlightRules = function() { + + var builtinFunctions = ( + "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" + + "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" + + "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" + + "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" + + "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" + + "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" + + "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" + + "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" + + "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" + + "gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|" + + "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" + + "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" + + "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" + + "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" + + "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" + + "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" + + "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" + + "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" + + "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" + + "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" + + "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" + + "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" + + "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" + + "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" + + "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" + + "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" + + "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" + + "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" + + "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" + + "has_many|has_one|belongs_to|has_and_belongs_to_many" + ); + + var keywords = ( + "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" + + "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" + + "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield" + ); + + var buildinConstants = ( + "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" + + "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING" + ); + + var builtinVariables = ( + "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" + + "$!|root_url|flash|session|cookies|params|request|response|logger|self" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "variable.language": builtinVariables, + "support.function": builtinFunctions, + "invalid.deprecated": "debugger" // TODO is this a remnant from js mode? + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment", // multi line comment + regex : "^=begin(?:$|\\s.*$)", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, + + [{ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren.lparen"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.start", + regex : /"/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /"/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /'/, + push : [{ + token : "constant.language.escape", + regex : /\\['\\]/ + }, { + token : "string.end", + regex : /'/, + next : "pop" + }, { + defaultToken: "string" + }] + }], + + { + token : "text", // namespaces aren't symbols + regex : "::" + }, { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" + }, { + token : "support.class", // class name + regex : "[A-Z][a-zA-Z_\\d]+" + }, + + constantOtherSymbol, + constantNumericHex, + constantNumericFloat, + + { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "punctuation.separator.key-value", + regex : "=>" + }, { + stateName: "heredoc", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[3]); + return [ + {type:"constant", value: tokens[1]}, + {type:"string", value: tokens[2]}, + {type:"support.class", value: tokens[3]}, + {type:"string", value: tokens[4]} + ]; + }, + regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)", + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^ +" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : "string.character", + regex : "\\B\\?." + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^=end(?:$|\\s.*$)", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.normalizeRules(); +}; + +oop.inherits(RubyHighlightRules, TextHighlightRules); + +exports.RubyHighlightRules = RubyHighlightRules; +}); + +ace.define("ace/mode/html_ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/ruby_highlight_rules"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules; + + var HtmlRubyHighlightRules = function() { + HtmlHighlightRules.call(this); + + var startRules = [ + { + regex: "<%%|%%>", + token: "constant.language.escape" + }, { + token : "comment.start.erb", + regex : "<%#", + push : [{ + token : "comment.end.erb", + regex: "%>", + next: "pop", + defaultToken:"comment" + }] + }, { + token : "support.ruby_tag", + regex : "<%+(?!>)[-=]?", + push : "ruby-start" + } + ]; + + var endRules = [ + { + token : "support.ruby_tag", + regex : "%>", + next : "pop" + }, { + token: "comment", + regex: "#(?:[^%]|%[^>])*" + } + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.embedRules(RubyHighlightRules, "ruby-", endRules, ["start"]); + + this.normalizeRules(); + }; + + + oop.inherits(HtmlRubyHighlightRules, HtmlHighlightRules); + + exports.HtmlRubyHighlightRules = HtmlRubyHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = RubyHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/); + var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/); + var startingConditional = line.match(/^\s*(if|else|when)\s*/) + if (match || startingClassOrMethod || startingDoBlock || startingConditional) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, session, row) { + var line = session.getLine(row); + if (/}/.test(line)) + return this.$outdent.autoOutdent(session, row); + var indent = this.$getIndent(line); + var prevLine = session.getLine(row - 1); + var prevIndent = this.$getIndent(prevLine); + var tab = session.getTabString(); + if (prevIndent.length <= indent.length) { + if (indent.slice(-tab.length) == tab) + session.remove(new Range(row, indent.length-tab.length, row, indent.length)); + } + }; + + this.$id = "ace/mode/ruby"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/html_ruby",["require","exports","module","ace/lib/oop","ace/mode/html_ruby_highlight_rules","ace/mode/html","ace/mode/javascript","ace/mode/css","ace/mode/ruby"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlRubyHighlightRules = require("./html_ruby_highlight_rules").HtmlRubyHighlightRules; +var HtmlMode = require("./html").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var RubyMode = require("./ruby").Mode; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = HtmlRubyHighlightRules; + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode, + "ruby-": RubyMode + }); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + + this.$id = "ace/mode/html_ruby"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-ini.js b/htdocs/includes/ace/mode-ini.js new file mode 100644 index 00000000000..f53e87f7daf --- /dev/null +++ b/htdocs/includes/ace/mode-ini.js @@ -0,0 +1,155 @@ +ace.define("ace/mode/ini_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var escapeRe = "\\\\(?:[\\\\0abtrn;#=:]|x[a-fA-F\\d]{4})"; + +var IniHighlightRules = function() { + this.$rules = { + start: [{ + token: 'punctuation.definition.comment.ini', + regex: '#.*', + push_: [{ + token: 'comment.line.number-sign.ini', + regex: '$|^', + next: 'pop' + }, { + defaultToken: 'comment.line.number-sign.ini' + }] + }, { + token: 'punctuation.definition.comment.ini', + regex: ';.*', + push_: [{ + token: 'comment.line.semicolon.ini', + regex: '$|^', + next: 'pop' + }, { + defaultToken: 'comment.line.semicolon.ini' + }] + }, { + token: ['keyword.other.definition.ini', 'text', 'punctuation.separator.key-value.ini'], + regex: '\\b([a-zA-Z0-9_.-]+)\\b(\\s*)(=)' + }, { + token: ['punctuation.definition.entity.ini', 'constant.section.group-title.ini', 'punctuation.definition.entity.ini'], + regex: '^(\\[)(.*?)(\\])' + }, { + token: 'punctuation.definition.string.begin.ini', + regex: "'", + push: [{ + token: 'punctuation.definition.string.end.ini', + regex: "'", + next: 'pop' + }, { + token: "constant.language.escape", + regex: escapeRe + }, { + defaultToken: 'string.quoted.single.ini' + }] + }, { + token: 'punctuation.definition.string.begin.ini', + regex: '"', + push: [{ + token: "constant.language.escape", + regex: escapeRe + }, { + token: 'punctuation.definition.string.end.ini', + regex: '"', + next: 'pop' + }, { + defaultToken: 'string.quoted.double.ini' + }] + }] + }; + + this.normalizeRules(); +}; + +IniHighlightRules.metaData = { + fileTypes: ['ini', 'conf'], + keyEquivalent: '^~I', + name: 'Ini', + scopeName: 'source.ini' +}; + + +oop.inherits(IniHighlightRules, TextHighlightRules); + +exports.IniHighlightRules = IniHighlightRules; +}); + +ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() { +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /^\s*\[([^\])]*)]\s*(?:$|[;#])/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var re = this.foldingStartMarker; + var line = session.getLine(row); + + var m = line.match(re); + + if (!m) return; + + var startName = m[1] + "."; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + if (/^\s*$/.test(line)) + continue; + m = line.match(re); + if (m && m[1].lastIndexOf(startName, 0) !== 0) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/ini",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ini_highlight_rules","ace/mode/folding/ini"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var IniHighlightRules = require("./ini_highlight_rules").IniHighlightRules; +var FoldMode = require("./folding/ini").FoldMode; + +var Mode = function() { + this.HighlightRules = IniHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = ";"; + this.blockComment = null; + this.$id = "ace/mode/ini"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-io.js b/htdocs/includes/ace/mode-io.js new file mode 100644 index 00000000000..93d53e2c4e1 --- /dev/null +++ b/htdocs/includes/ace/mode-io.js @@ -0,0 +1,246 @@ +ace.define("ace/mode/io_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var IoHighlightRules = function() { + + this.$rules = { start: + [ { token: [ 'text', 'meta.empty-parenthesis.io' ], + regex: '(\\()(\\))', + comment: 'we match this to overload return inside () --Allan; scoping rules for what gets the scope have changed, so we now group the ) instead of the ( -- Rob' }, + { token: [ 'text', 'meta.comma-parenthesis.io' ], + regex: '(\\,)(\\))', + comment: 'We want to do the same for ,) -- Seckar; same as above -- Rob' }, + { token: 'keyword.control.io', + regex: '\\b(?:if|ifTrue|ifFalse|ifTrueIfFalse|for|loop|reverseForeach|foreach|map|continue|break|while|do|return)\\b' }, + { token: 'punctuation.definition.comment.io', + regex: '/\\*', + push: + [ { token: 'punctuation.definition.comment.io', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.io' } ] }, + { token: 'punctuation.definition.comment.io', + regex: '//', + push: + [ { token: 'comment.line.double-slash.io', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.double-slash.io' } ] }, + { token: 'punctuation.definition.comment.io', + regex: '#', + push: + [ { token: 'comment.line.number-sign.io', regex: '$', next: 'pop' }, + { defaultToken: 'comment.line.number-sign.io' } ] }, + { token: 'variable.language.io', + regex: '\\b(?:self|sender|target|proto|protos|parent)\\b', + comment: 'I wonder if some of this isn\'t variable.other.language? --Allan; scoping this as variable.language to match Objective-C\'s handling of \'self\', which is inconsistent with C++\'s handling of \'this\' but perhaps intentionally so -- Rob' }, + { token: 'keyword.operator.io', + regex: '<=|>=|=|:=|\\*|\\||\\|\\||\\+|-|/|&|&&|>|<|\\?|@|@@|\\b(?:and|or)\\b' }, + { token: 'constant.other.io', regex: '\\bGL[\\w_]+\\b' }, + { token: 'support.class.io', regex: '\\b[A-Z](?:\\w+)?\\b' }, + { token: 'support.function.io', + regex: '\\b(?:clone|call|init|method|list|vector|block|\\w+(?=\\s*\\())\\b' }, + { token: 'support.function.open-gl.io', + regex: '\\bgl(?:u|ut)?[A-Z]\\w+\\b' }, + { token: 'punctuation.definition.string.begin.io', + regex: '"""', + push: + [ { token: 'punctuation.definition.string.end.io', + regex: '"""', + next: 'pop' }, + { token: 'constant.character.escape.io', regex: '\\\\.' }, + { defaultToken: 'string.quoted.triple.io' } ] }, + { token: 'punctuation.definition.string.begin.io', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.io', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.io', regex: '\\\\.' }, + { defaultToken: 'string.quoted.double.io' } ] }, + { token: 'constant.numeric.io', + regex: '\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b' }, + { token: 'variable.other.global.io', regex: 'Lobby\\b' }, + { token: 'constant.language.io', + regex: '\\b(?:TRUE|true|FALSE|false|NULL|null|Null|Nil|nil|YES|NO)\\b' } ] } + + this.normalizeRules(); +}; + +IoHighlightRules.metaData = { fileTypes: [ 'io' ], + keyEquivalent: '^~I', + name: 'Io', + scopeName: 'source.io' } + + +oop.inherits(IoHighlightRules, TextHighlightRules); + +exports.IoHighlightRules = IoHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/io",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/io_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var IoHighlightRules = require("./io_highlight_rules").IoHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = IoHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/io"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-jack.js b/htdocs/includes/ace/mode-jack.js new file mode 100644 index 00000000000..ceaf1351a9a --- /dev/null +++ b/htdocs/includes/ace/mode-jack.js @@ -0,0 +1,339 @@ +ace.define("ace/mode/jack_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JackHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "string", + regex : '"', + next : "string2" + }, { + token : "string", + regex : "'", + next : "string1" + }, { + token : "constant.numeric", // hex + regex: "-?0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "(?:0|[-+]?[1-9][0-9]*)\\b" + }, { + token : "constant.binary", + regex : "<[0-9A-Fa-f][0-9A-Fa-f](\\s+[0-9A-Fa-f][0-9A-Fa-f])*>" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : "constant.language.null", + regex : "null\\b" + }, { + token : "storage.type", + regex: "(?:Integer|Boolean|Null|String|Buffer|Tuple|List|Object|Function|Coroutine|Form)\\b" + }, { + token : "keyword", + regex : "(?:return|abort|vars|for|delete|in|is|escape|exec|split|and|if|elif|else|while)\\b" + }, { + token : "language.builtin", + regex : "(?:lines|source|parse|read-stream|interval|substr|parseint|write|print|range|rand|inspect|bind|i-values|i-pairs|i-map|i-filter|i-chunk|i-all\\?|i-any\\?|i-collect|i-zip|i-merge|i-each)\\b" + }, { + token : "comment", + regex : "--.*$" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "storage.form", + regex : "@[a-z]+" + }, { + token : "constant.other.symbol", + regex : ':+[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?' + }, { + token : "variable", + regex : '[a-zA-Z_]([-]?[a-zA-Z0-9_])*[?!]?' + }, { + token : "keyword.operator", + regex : "\\|\\||\\^\\^|&&|!=|==|<=|<|>=|>|\\+|-|\\*|\\/|\\^|\\%|\\#|\\!" + }, { + token : "text", + regex : "\\s+" + } + ], + "string1" : [ + { + token : "constant.language.escape", + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['"\\\/bfnrt])/ + }, { + token : "string", + regex : "[^'\\\\]+" + }, { + token : "string", + regex : "'", + next : "start" + }, { + token : "string", + regex : "", + next : "start" + } + ], + "string2" : [ + { + token : "constant.language.escape", + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|['"\\\/bfnrt])/ + }, { + token : "string", + regex : '[^"\\\\]+' + }, { + token : "string", + regex : '"', + next : "start" + }, { + token : "string", + regex : "", + next : "start" + } + ] + }; + +}; + +oop.inherits(JackHighlightRules, TextHighlightRules); + +exports.JackHighlightRules = JackHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/jack",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jack_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./jack_highlight_rules").JackHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.$id = "ace/mode/jack"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-jade.js b/htdocs/includes/ace/mode-jade.js new file mode 100644 index 00000000000..bfbe9c883f5 --- /dev/null +++ b/htdocs/includes/ace/mode-jade.js @@ -0,0 +1,2129 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; + +var escaped = function(ch) { + return "(?:[^" + lang.escapeRegExp(ch) + "\\\\]|\\\\.)*"; +} + +function github_embed(tag, prefix) { + return { // Github style block + token : "support.function", + regex : "^\\s*```" + tag + "\\s*$", + push : prefix + "start" + }; +} + +var MarkdownHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules["start"].unshift({ + token : "empty_line", + regex : '^$', + next: "allowBlock" + }, { // h1 + token: "markup.heading.1", + regex: "^=+(?=\\s*$)" + }, { // h2 + token: "markup.heading.2", + regex: "^\\-+(?=\\s*$)" + }, { + token : function(value) { + return "markup.heading." + value.length; + }, + regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/, + next : "header" + }, + github_embed("(?:javascript|js)", "jscode-"), + github_embed("xml", "xmlcode-"), + github_embed("html", "htmlcode-"), + github_embed("css", "csscode-"), + { // Github style block + token : "support.function", + regex : "^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { // HR * - _ + token : "constant", + regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$", + next: "allowBlock" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic" + }); + + this.addRules({ + "basic" : [{ + token : "constant.language.escape", + regex : /\\[\\`*_{}\[\]()#+\-.!]/ + }, { // code span ` + token : "support.function", + regex : "(`+)(.*?[^`])(\\1)" + }, { // reference + token : ["text", "constant", "text", "url", "string", "text"], + regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$" + }, { // link by reference + token : ["text", "string", "text", "constant", "text"], + regex : "(\\[)(" + escaped("]") + ")(\\]\\s*\\[)("+ escaped("]") + ")(\\])" + }, { // link by url + token : ["text", "string", "text", "markup.underline", "string", "text"], + regex : "(\\[)(" + // [ + escaped("]") + // link text + ")(\\]\\()"+ // ]( + '((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)' + // href + '(\\s*"' + escaped('"') + '"\\s*)?' + // "title" + "(\\))" // ) + }, { // strong ** __ + token : "string.strong", + regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // emphasis * _ + token : "string.emphasis", + regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // + token : ["text", "url", "text"], + regex : "(<)("+ + "(?:https?|ftp|dict):[^'\">\\s]+"+ + "|"+ + "(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+ + ")(>)" + }], + "allowBlock": [ + {token : "support.function", regex : "^ {4}.+", next : "allowBlock"}, + {token : "empty_line", regex : '^$', next: "allowBlock"}, + {token : "empty", regex : "", next : "start"} + ], + + "header" : [{ + regex: "$", + next : "start" + }, { + include: "basic" + }, { + defaultToken : "heading" + } ], + + "listblock-start" : [{ + token : "support.variable", + regex : /(?:\[[ x]\])?/, + next : "listblock" + }], + + "listblock" : [ { // Lists only escape on completely blank lines. + token : "empty_line", + regex : "^$", + next : "start" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic", noEscape: true + }, { // Github style block + token : "support.function", + regex : "^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { + defaultToken : "list" //do not use markup.list to allow stling leading `*` differntly + } ], + + "blockquote" : [ { // Blockquotes only escape on blank lines. + token : "empty_line", + regex : "^\\s*$", + next : "start" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { + include : "basic", noEscape: true + }, { + defaultToken : "string.blockquote" + } ], + + "githubblock" : [ { + token : "support.function", + regex : "^\\s*```", + next : "start" + }, { + defaultToken : "support.function" + } ] + }); + + this.embedRules(JavaScriptHighlightRules, "jscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(HtmlHighlightRules, "htmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(CssHighlightRules, "csscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(XmlHighlightRules, "xmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.normalizeRules(); +}; +oop.inherits(MarkdownHighlightRules, TextHighlightRules); + +exports.MarkdownHighlightRules = MarkdownHighlightRules; +}); + +ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScssHighlightRules = function() { + + var properties = lang.arrayToMap( (function () { + + var browserPrefix = ("-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-").split("|"); + + var prefixProperties = ("appearance|background-clip|background-inline-policy|background-origin|" + + "background-size|binding|border-bottom-colors|border-left-colors|" + + "border-right-colors|border-top-colors|border-end|border-end-color|" + + "border-end-style|border-end-width|border-image|border-start|" + + "border-start-color|border-start-style|border-start-width|box-align|" + + "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" + + "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" + + "column-rule-width|column-rule-style|column-rule-color|float-edge|" + + "font-feature-settings|font-language-override|force-broken-image-icon|" + + "image-region|margin-end|margin-start|opacity|outline|outline-color|" + + "outline-offset|outline-radius|outline-radius-bottomleft|" + + "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" + + "outline-style|outline-width|padding-end|padding-start|stack-sizing|" + + "tab-size|text-blink|text-decoration-color|text-decoration-line|" + + "text-decoration-style|transform|transform-origin|transition|" + + "transition-delay|transition-duration|transition-property|" + + "transition-timing-function|user-focus|user-input|user-modify|user-select|" + + "window-shadow|border-radius").split("|"); + + var properties = ("azimuth|background-attachment|background-color|background-image|" + + "background-position|background-repeat|background|border-bottom-color|" + + "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" + + "border-color|border-left-color|border-left-style|border-left-width|" + + "border-left|border-right-color|border-right-style|border-right-width|" + + "border-right|border-spacing|border-style|border-top-color|" + + "border-top-style|border-top-width|border-top|border-width|border|bottom|" + + "box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|" + + "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" + + "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" + + "font-stretch|font-style|font-variant|font-weight|font|height|left|" + + "letter-spacing|line-height|list-style-image|list-style-position|" + + "list-style-type|list-style|margin-bottom|margin-left|margin-right|" + + "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" + + "min-width|opacity|orphans|outline-color|" + + "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" + + "padding-left|padding-right|padding-top|padding|page-break-after|" + + "page-break-before|page-break-inside|page|pause-after|pause-before|" + + "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" + + "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" + + "stress|table-layout|text-align|text-decoration|text-indent|" + + "text-shadow|text-transform|top|unicode-bidi|vertical-align|" + + "visibility|voice-family|volume|white-space|widows|width|word-spacing|" + + "z-index").split("|"); + var ret = []; + for (var i=0, ln=browserPrefix.length; i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }, { + caseInsensitive: true + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ] + }; +}; + +oop.inherits(ScssHighlightRules, TextHighlightRules); + +exports.ScssHighlightRules = ScssHighlightRules; + +}); + +ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CssHighlightRules = require('./css_highlight_rules'); + +var LessHighlightRules = function() { + + + var keywordList = "@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|" + + "@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|" + + "or|and|when|not"; + + var keywords = keywordList.split('|'); + + var properties = CssHighlightRules.supportType.split('|'); + + var keywordMapper = this.createKeywordMapper({ + "support.constant": CssHighlightRules.supportConstant, + "keyword": keywordList, + "support.constant.color": CssHighlightRules.supportConstantColor, + "support.constant.fonts": CssHighlightRules.supportConstantFonts + }, "identifier", true); + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : ["support.function", "paren.lparen", "string", "paren.rparen"], + regex : "(url)(\\()(.*)(\\))" + }, { + token : ["support.function", "paren.lparen"], + regex : "(:extend|[a-z0-9_\\-]+)(\\()" + }, { + token : function(value) { + if (keywords.indexOf(value.toLowerCase()) > -1) + return "keyword"; + else + return "variable"; + }, + regex : "[@\\$][a-z0-9_\\-@\\$]*\\b" + }, { + token : "variable", + regex : "[@\\$]\\{[a-z0-9_\\-@\\$]*\\}" + }, { + token : function(first, second) { + if(properties.indexOf(first.toLowerCase()) > -1) { + return ["support.type.property", "text"]; + } + else { + return ["support.type.unknownProperty", "text"]; + } + }, + regex : "([a-z0-9-_]+)(\\s*:)" + }, { + token : "keyword", + regex : "&" // special case - always treat as keyword + }, { + token : keywordMapper, + regex : "\\-?[@a-z_][@a-z0-9_\\-]*" + }, { + token: "variable.language", + regex: "#[a-z0-9-_]+" + }, { + token: "variable.language", + regex: "\\.[a-z0-9-_]+" + }, { + token: "variable.language", + regex: ":[a-z_][a-z0-9-_]*" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + token : "keyword.operator", + regex : "<|>|<=|>=|=|!=|-|%|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }, { + caseInsensitive: true + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + this.normalizeRules(); +}; + +oop.inherits(LessHighlightRules, TextHighlightRules); + +exports.LessHighlightRules = LessHighlightRules; + +}); + +ace.define("ace/mode/coffee_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + oop.inherits(CoffeeHighlightRules, TextHighlightRules); + + function CoffeeHighlightRules() { + var identifier = "[$A-Za-z_\\x7f-\\uffff][$\\w\\x7f-\\uffff]*"; + + var keywords = ( + "this|throw|then|try|typeof|super|switch|return|break|by|continue|" + + "catch|class|in|instanceof|is|isnt|if|else|extends|for|own|" + + "finally|function|while|when|new|no|not|delete|debugger|do|loop|of|off|" + + "or|on|unless|until|and|yes" + ); + + var langConstant = ( + "true|false|null|undefined|NaN|Infinity" + ); + + var illegal = ( + "case|const|default|function|var|void|with|enum|export|implements|" + + "interface|let|package|private|protected|public|static|yield" + ); + + var supportClass = ( + "Array|Boolean|Date|Function|Number|Object|RegExp|ReferenceError|String|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + + "SyntaxError|TypeError|URIError|" + + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray" + ); + + var supportFunction = ( + "Math|JSON|isNaN|isFinite|parseInt|parseFloat|encodeURI|" + + "encodeURIComponent|decodeURI|decodeURIComponent|String|" + ); + + var variableLanguage = ( + "window|arguments|prototype|document" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": langConstant, + "invalid.illegal": illegal, + "language.support.class": supportClass, + "language.support.function": supportFunction, + "variable.language": variableLanguage + }, "identifier"); + + var functionRule = { + token: ["paren.lparen", "variable.parameter", "paren.rparen", "text", "storage.type"], + regex: /(?:(\()((?:"[^")]*?"|'[^')]*?'|\/[^\/)]*?\/|[^()"'\/])*?)(\))(\s*))?([\-=]>)/.source + }; + + var stringEscape = /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.)/; + + this.$rules = { + start : [ + { + token : "constant.numeric", + regex : "(?:0x[\\da-fA-F]+|(?:\\d+(?:\\.\\d+)?|\\.\\d+)(?:[eE][+-]?\\d+)?)" + }, { + stateName: "qdoc", + token : "string", regex : "'''", next : [ + {token : "string", regex : "'''", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qqdoc", + token : "string", + regex : '"""', + next : [ + {token : "string", regex : '"""', next : "start"}, + {token : "paren.string", regex : '#{', push : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qstring", + token : "string", regex : "'", next : [ + {token : "string", regex : "'", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "qqstring", + token : "string.start", regex : '"', next : [ + {token : "string.end", regex : '"', next : "start"}, + {token : "paren.string", regex : '#{', push : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + stateName: "js", + token : "string", regex : "`", next : [ + {token : "string", regex : "`", next : "start"}, + {token : "constant.language.escape", regex : stringEscape}, + {defaultToken: "string"} + ] + }, { + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift() || ""; + if (this.next.indexOf("string") != -1) + return "paren.string"; + } + return "paren"; + } + }, { + token : "string.regex", + regex : "///", + next : "heregex" + }, { + token : "string.regex", + regex : /(?:\/(?![\s=])[^[\/\n\\]*(?:(?:\\[\s\S]|\[[^\]\n\\]*(?:\\[\s\S][^\]\n\\]*)*])[^[\/\n\\]*)*\/)(?:[imgy]{0,4})(?!\w)/ + }, { + token : "comment", + regex : "###(?!#)", + next : "comment" + }, { + token : "comment", + regex : "#.*" + }, { + token : ["punctuation.operator", "text", "identifier"], + regex : "(\\.)(\\s*)(" + illegal + ")" + }, { + token : "punctuation.operator", + regex : "\\.{1,3}" + }, { + token : ["keyword", "text", "language.support.class", + "text", "keyword", "text", "language.support.class"], + regex : "(class)(\\s+)(" + identifier + ")(?:(\\s+)(extends)(\\s+)(" + identifier + "))?" + }, { + token : ["entity.name.function", "text", "keyword.operator", "text"].concat(functionRule.token), + regex : "(" + identifier + ")(\\s*)([=:])(\\s*)" + functionRule.regex + }, + functionRule, + { + token : "variable", + regex : "@(?:" + identifier + ")?" + }, { + token: keywordMapper, + regex : identifier + }, { + token : "punctuation.operator", + regex : "\\,|\\." + }, { + token : "storage.type", + regex : "[\\-=]>" + }, { + token : "keyword.operator", + regex : "(?:[-+*/%<>&|^!?=]=|>>>=?|\\-\\-|\\+\\+|::|&&=|\\|\\|=|<<=|>>=|\\?\\.|\\.{2,3}|[!*+-=><])" + }, { + token : "paren.lparen", + regex : "[({[]" + }, { + token : "paren.rparen", + regex : "[\\]})]" + }, { + token : "text", + regex : "\\s+" + }], + + + heregex : [{ + token : "string.regex", + regex : '.*?///[imgy]{0,4}', + next : "start" + }, { + token : "comment.regex", + regex : "\\s+(?:#.*)?" + }, { + token : "string.regex", + regex : "\\S+" + }], + + comment : [{ + token : "comment", + regex : '###', + next : "start" + }, { + defaultToken : "comment" + }] + }; + this.normalizeRules(); + } + + exports.CoffeeHighlightRules = CoffeeHighlightRules; +}); + +ace.define("ace/mode/jade_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/markdown_highlight_rules","ace/mode/scss_highlight_rules","ace/mode/less_highlight_rules","ace/mode/coffee_highlight_rules","ace/mode/javascript_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var MarkdownHighlightRules = require("./markdown_highlight_rules").MarkdownHighlightRules; +var SassHighlightRules = require("./scss_highlight_rules").ScssHighlightRules; +var LessHighlightRules = require("./less_highlight_rules").LessHighlightRules; +var CoffeeHighlightRules = require("./coffee_highlight_rules").CoffeeHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; + +function mixin_embed(tag, prefix) { + return { + token : "entity.name.function.jade", + regex : "^\\s*\\:" + tag, + next : prefix + "start" + }; +} + +var JadeHighlightRules = function() { + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-6][0-7]?|" + // oct + "37[0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = + { + "start": [ + { + token: "keyword.control.import.include.jade", + regex: "\\s*\\binclude\\b" + }, + { + token: "keyword.other.doctype.jade", + regex: "^!!!\\s*(?:[a-zA-Z0-9-_]+)?" + }, + { + onMatch: function(value, currentState, stack) { + stack.unshift(this.next, value.length - 2, currentState); + return "comment"; + }, + regex: /^\s*\/\//, + next: "comment_block" + }, + mixin_embed("markdown", "markdown-"), + mixin_embed("sass", "sass-"), + mixin_embed("less", "less-"), + mixin_embed("coffee", "coffee-"), + { + token: [ "storage.type.function.jade", + "entity.name.function.jade", + "punctuation.definition.parameters.begin.jade", + "variable.parameter.function.jade", + "punctuation.definition.parameters.end.jade" + ], + regex: "^(\\s*mixin)( [\\w\\-]+)(\\s*\\()(.*?)(\\))" + }, + { + token: [ "storage.type.function.jade", "entity.name.function.jade"], + regex: "^(\\s*mixin)( [\\w\\-]+)" + }, + { + token: "source.js.embedded.jade", + regex: "^\\s*(?:-|=|!=)", + next: "js-start" + }, + { + token: "string.interpolated.jade", + regex: "[#!]\\{[^\\}]+\\}" + }, + { + token: "meta.tag.any.jade", + regex: /^\s*(?!\w+:)(?:[\w-]+|(?=\.|#)])/, + next: "tag_single" + }, + { + token: "suport.type.attribute.id.jade", + regex: "#\\w+" + }, + { + token: "suport.type.attribute.class.jade", + regex: "\\.\\w+" + }, + { + token: "punctuation", + regex: "\\s*(?:\\()", + next: "tag_attributes" + } + ], + "comment_block": [ + {regex: /^\s*(?:\/\/)?/, onMatch: function(value, currentState, stack) { + if (value.length <= stack[1]) { + if (value.slice(-1) == "/") { + stack[1] = value.length - 2; + this.next = ""; + return "comment"; + } + stack.shift(); + stack.shift(); + this.next = stack.shift(); + return "text"; + } else { + this.next = ""; + return "comment"; + } + }, next: "start"}, + {defaultToken: "comment"} + ], + "tag_single": [ + { + token: "entity.other.attribute-name.class.jade", + regex: "\\.[\\w-]+" + }, + { + token: "entity.other.attribute-name.id.jade", + regex: "#[\\w-]+" + }, + { + token: ["text", "punctuation"], + regex: "($)|((?!\\.|#|=|-))", + next: "start" + } + ], + "tag_attributes": [ + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, + { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, + { + token: ["entity.other.attribute-name.jade", "punctuation"], + regex: "([a-zA-Z:\\.-]+)(=)?", + next: "attribute_strings" + }, + { + token: "punctuation", + regex: "\\)", + next: "start" + } + ], + "attribute_strings": [ + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, + { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, + { + token : "string", + regex : '(?=\\S)', + next : "tag_attributes" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : '[^"\\\\]+' + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "tag_attributes" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "[^'\\\\]+" + }, { + token : "string", + regex : "\\\\$", + next : "qstring" + }, { + token : "string", + regex : "'|$", + next : "tag_attributes" + } + ] +}; + + this.embedRules(JavaScriptHighlightRules, "js-", [{ + token: "text", + regex: ".$", + next: "start" + }]); +}; + +oop.inherits(JadeHighlightRules, TextHighlightRules); + +exports.JadeHighlightRules = JadeHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/jade",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jade_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JadeHighlightRules = require("./jade_highlight_rules").JadeHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = JadeHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.$id = "ace/mode/jade"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-java.js b/htdocs/includes/ace/mode-java.js new file mode 100644 index 00000000000..8fac1ebd73d --- /dev/null +++ b/htdocs/includes/ace/mode-java.js @@ -0,0 +1,935 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JavaHighlightRules = function() { + var keywords = ( + "abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "const|float|native|super|while" + ); + + var buildinConstants = ("null|Infinity|NaN|undefined"); + + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaHighlightRules, TextHighlightRules); + +exports.JavaHighlightRules = JavaHighlightRules; +}); + +ace.define("ace/mode/java",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/java_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = JavaHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/java"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-javascript.js b/htdocs/includes/ace/mode-javascript.js new file mode 100644 index 00000000000..0e4a81ac673 --- /dev/null +++ b/htdocs/includes/ace/mode-javascript.js @@ -0,0 +1,789 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-json.js b/htdocs/includes/ace/mode-json.js new file mode 100644 index 00000000000..6be2035eb97 --- /dev/null +++ b/htdocs/includes/ace/mode-json.js @@ -0,0 +1,319 @@ +ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JsonHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "variable", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)' + }, { + token : "string", // single line + regex : '"', + next : "string" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : "text", // single quoted strings are not allowed + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "comment", // comments are not allowed, but who cares? + regex : "\\/\\/.*$" + }, { + token : "comment.start", // comments are not allowed, but who cares? + regex : "\\/\\*", + next : "comment" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "string" : [ + { + token : "constant.language.escape", + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/ + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken : "string" + } + ], + "comment" : [ + { + token : "comment.end", // comments are not allowed, but who cares? + regex : "\\*\\/", + next : "start" + }, { + defaultToken: "comment" + } + ] + }; + +}; + +oop.inherits(JsonHighlightRules, TextHighlightRules); + +exports.JsonHighlightRules = JsonHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./json_highlight_rules").JsonHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/json_worker", "JsonWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + + this.$id = "ace/mode/json"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-jsoniq.js b/htdocs/includes/ace/mode-jsoniq.js new file mode 100644 index 00000000000..c533c91644e --- /dev/null +++ b/htdocs/includes/ace/mode-jsoniq.js @@ -0,0 +1,2619 @@ +ace.define("ace/mode/xquery/jsoniq_lexer",["require","exports","module"], function(require, exports, module) { +module.exports = (function outer (modules, cache, entry) { + var previousRequire = typeof require == "function" && require; + function newRequire(name, jumped){ + if(!cache[name]) { + if(!modules[name]) { + var currentRequire = typeof require == "function" && require; + if (!jumped && currentRequire) return currentRequire(name, true); + if (previousRequire) return previousRequire(name, true); + var err = new Error('Cannot find module \'' + name + '\''); + err.code = 'MODULE_NOT_FOUND'; + throw err; + } + var m = cache[name] = {exports:{}}; + modules[name][0].call(m.exports, function(x){ + var id = modules[name][1][x]; + return newRequire(id ? id : x); + },m,m.exports,outer,modules,cache,entry); + } + return cache[name].exports; + } + for(var i=0;i= 0 ? JSONiqTokenizer.TOKEN[o] : null; + }; + + this.getExpectedTokenSet = function(e) + { + var expected; + if (e.getExpected() < 0) + { + expected = JSONiqTokenizer.getTokenSet(- e.getState()); + } + else + { + expected = [JSONiqTokenizer.TOKEN[e.getExpected()]]; + } + return expected; + }; + + this.getErrorMessage = function(e) + { + var tokenSet = this.getExpectedTokenSet(e); + var found = this.getOffendingToken(e); + var prefix = input.substring(0, e.getBegin()); + var lines = prefix.split("\n"); + var line = lines.length; + var column = lines[line - 1].length + 1; + var size = e.getEnd() - e.getBegin(); + return e.getMessage() + + (found == null ? "" : ", found " + found) + + "\nwhile expecting " + + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]")) + + "\n" + + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ") + + "at line " + line + ", column " + column + ":\n..." + + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64)) + + "..."; + }; + + this.parse_start = function() + { + eventHandler.startNonterminal("start", e0); + lookahead1W(14); // ModuleDecl | Annotation | OptionDecl | Operator | Variable | Tag | AttrTest | + switch (l1) + { + case 58: // '' | '=' | '>' + switch (l1) + { + case 61: // '>' + shift(61); // '>' + break; + case 53: // '/>' + shift(53); // '/>' + break; + case 29: // QName + shift(29); // QName + break; + case 60: // '=' + shift(60); // '=' + break; + case 37: // '"' + shift(37); // '"' + break; + case 41: // "'" + shift(41); // "'" + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("StartTag", e0); + }; + + this.parse_TagContent = function() + { + eventHandler.startNonterminal("TagContent", e0); + lookahead1(11); // Tag | EndTag | PredefinedEntityRef | ElementContentChar | CharRef | EOF | + switch (l1) + { + case 25: // ElementContentChar + shift(25); // ElementContentChar + break; + case 9: // Tag + shift(9); // Tag + break; + case 10: // EndTag + shift(10); // EndTag + break; + case 58: // '' + switch (l1) + { + case 14: // CDataSectionContents + shift(14); // CDataSectionContents + break; + case 67: // ']]>' + shift(67); // ']]>' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("CData", e0); + }; + + this.parse_XMLComment = function() + { + eventHandler.startNonterminal("XMLComment", e0); + lookahead1(0); // DirCommentContents | EOF | '-->' + switch (l1) + { + case 12: // DirCommentContents + shift(12); // DirCommentContents + break; + case 50: // '-->' + shift(50); // '-->' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("XMLComment", e0); + }; + + this.parse_PI = function() + { + eventHandler.startNonterminal("PI", e0); + lookahead1(3); // DirPIContents | EOF | '?' | '?>' + switch (l1) + { + case 13: // DirPIContents + shift(13); // DirPIContents + break; + case 62: // '?' + shift(62); // '?' + break; + case 63: // '?>' + shift(63); // '?>' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("PI", e0); + }; + + this.parse_Pragma = function() + { + eventHandler.startNonterminal("Pragma", e0); + lookahead1(2); // PragmaContents | EOF | '#' | '#)' + switch (l1) + { + case 11: // PragmaContents + shift(11); // PragmaContents + break; + case 38: // '#' + shift(38); // '#' + break; + case 39: // '#)' + shift(39); // '#)' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("Pragma", e0); + }; + + this.parse_Comment = function() + { + eventHandler.startNonterminal("Comment", e0); + lookahead1(4); // CommentContents | EOF | '(:' | ':)' + switch (l1) + { + case 55: // ':)' + shift(55); // ':)' + break; + case 44: // '(:' + shift(44); // '(:' + break; + case 32: // CommentContents + shift(32); // CommentContents + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("Comment", e0); + }; + + this.parse_CommentDoc = function() + { + eventHandler.startNonterminal("CommentDoc", e0); + lookahead1(6); // DocTag | DocCommentContents | EOF | '(:' | ':)' + switch (l1) + { + case 33: // DocTag + shift(33); // DocTag + break; + case 34: // DocCommentContents + shift(34); // DocCommentContents + break; + case 55: // ':)' + shift(55); // ':)' + break; + case 44: // '(:' + shift(44); // '(:' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("CommentDoc", e0); + }; + + this.parse_QuotString = function() + { + eventHandler.startNonterminal("QuotString", e0); + lookahead1(5); // JSONChar | JSONCharRef | JSONPredefinedCharRef | EOF | '"' + switch (l1) + { + case 3: // JSONPredefinedCharRef + shift(3); // JSONPredefinedCharRef + break; + case 2: // JSONCharRef + shift(2); // JSONCharRef + break; + case 1: // JSONChar + shift(1); // JSONChar + break; + case 37: // '"' + shift(37); // '"' + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("QuotString", e0); + }; + + this.parse_AposString = function() + { + eventHandler.startNonterminal("AposString", e0); + lookahead1(7); // PredefinedEntityRef | EscapeApos | AposChar | CharRef | EOF | "'" + switch (l1) + { + case 21: // PredefinedEntityRef + shift(21); // PredefinedEntityRef + break; + case 31: // CharRef + shift(31); // CharRef + break; + case 23: // EscapeApos + shift(23); // EscapeApos + break; + case 24: // AposChar + shift(24); // AposChar + break; + case 41: // "'" + shift(41); // "'" + break; + default: + shift(35); // EOF + } + eventHandler.endNonterminal("AposString", e0); + }; + + this.parse_Prefix = function() + { + eventHandler.startNonterminal("Prefix", e0); + lookahead1W(13); // NCName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | + whitespace(); + parse_NCName(); + eventHandler.endNonterminal("Prefix", e0); + }; + + this.parse__EQName = function() + { + eventHandler.startNonterminal("_EQName", e0); + lookahead1W(12); // EQName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | + whitespace(); + parse_EQName(); + eventHandler.endNonterminal("_EQName", e0); + }; + + function parse_EQName() + { + eventHandler.startNonterminal("EQName", e0); + switch (l1) + { + case 80: // 'attribute' + shift(80); // 'attribute' + break; + case 94: // 'comment' + shift(94); // 'comment' + break; + case 118: // 'document-node' + shift(118); // 'document-node' + break; + case 119: // 'element' + shift(119); // 'element' + break; + case 122: // 'empty-sequence' + shift(122); // 'empty-sequence' + break; + case 143: // 'function' + shift(143); // 'function' + break; + case 150: // 'if' + shift(150); // 'if' + break; + case 163: // 'item' + shift(163); // 'item' + break; + case 183: // 'namespace-node' + shift(183); // 'namespace-node' + break; + case 189: // 'node' + shift(189); // 'node' + break; + case 214: // 'processing-instruction' + shift(214); // 'processing-instruction' + break; + case 224: // 'schema-attribute' + shift(224); // 'schema-attribute' + break; + case 225: // 'schema-element' + shift(225); // 'schema-element' + break; + case 241: // 'switch' + shift(241); // 'switch' + break; + case 242: // 'text' + shift(242); // 'text' + break; + case 251: // 'typeswitch' + shift(251); // 'typeswitch' + break; + default: + parse_FunctionName(); + } + eventHandler.endNonterminal("EQName", e0); + } + + function parse_FunctionName() + { + eventHandler.startNonterminal("FunctionName", e0); + switch (l1) + { + case 17: // EQName^Token + shift(17); // EQName^Token + break; + case 68: // 'after' + shift(68); // 'after' + break; + case 71: // 'ancestor' + shift(71); // 'ancestor' + break; + case 72: // 'ancestor-or-self' + shift(72); // 'ancestor-or-self' + break; + case 73: // 'and' + shift(73); // 'and' + break; + case 77: // 'as' + shift(77); // 'as' + break; + case 78: // 'ascending' + shift(78); // 'ascending' + break; + case 82: // 'before' + shift(82); // 'before' + break; + case 86: // 'case' + shift(86); // 'case' + break; + case 87: // 'cast' + shift(87); // 'cast' + break; + case 88: // 'castable' + shift(88); // 'castable' + break; + case 91: // 'child' + shift(91); // 'child' + break; + case 92: // 'collation' + shift(92); // 'collation' + break; + case 101: // 'copy' + shift(101); // 'copy' + break; + case 103: // 'count' + shift(103); // 'count' + break; + case 106: // 'declare' + shift(106); // 'declare' + break; + case 107: // 'default' + shift(107); // 'default' + break; + case 108: // 'delete' + shift(108); // 'delete' + break; + case 109: // 'descendant' + shift(109); // 'descendant' + break; + case 110: // 'descendant-or-self' + shift(110); // 'descendant-or-self' + break; + case 111: // 'descending' + shift(111); // 'descending' + break; + case 116: // 'div' + shift(116); // 'div' + break; + case 117: // 'document' + shift(117); // 'document' + break; + case 120: // 'else' + shift(120); // 'else' + break; + case 121: // 'empty' + shift(121); // 'empty' + break; + case 124: // 'end' + shift(124); // 'end' + break; + case 126: // 'eq' + shift(126); // 'eq' + break; + case 127: // 'every' + shift(127); // 'every' + break; + case 129: // 'except' + shift(129); // 'except' + break; + case 132: // 'first' + shift(132); // 'first' + break; + case 133: // 'following' + shift(133); // 'following' + break; + case 134: // 'following-sibling' + shift(134); // 'following-sibling' + break; + case 135: // 'for' + shift(135); // 'for' + break; + case 144: // 'ge' + shift(144); // 'ge' + break; + case 146: // 'group' + shift(146); // 'group' + break; + case 148: // 'gt' + shift(148); // 'gt' + break; + case 149: // 'idiv' + shift(149); // 'idiv' + break; + case 151: // 'import' + shift(151); // 'import' + break; + case 157: // 'insert' + shift(157); // 'insert' + break; + case 158: // 'instance' + shift(158); // 'instance' + break; + case 160: // 'intersect' + shift(160); // 'intersect' + break; + case 161: // 'into' + shift(161); // 'into' + break; + case 162: // 'is' + shift(162); // 'is' + break; + case 168: // 'last' + shift(168); // 'last' + break; + case 170: // 'le' + shift(170); // 'le' + break; + case 172: // 'let' + shift(172); // 'let' + break; + case 176: // 'lt' + shift(176); // 'lt' + break; + case 178: // 'mod' + shift(178); // 'mod' + break; + case 179: // 'modify' + shift(179); // 'modify' + break; + case 180: // 'module' + shift(180); // 'module' + break; + case 182: // 'namespace' + shift(182); // 'namespace' + break; + case 184: // 'ne' + shift(184); // 'ne' + break; + case 196: // 'only' + shift(196); // 'only' + break; + case 198: // 'or' + shift(198); // 'or' + break; + case 199: // 'order' + shift(199); // 'order' + break; + case 200: // 'ordered' + shift(200); // 'ordered' + break; + case 204: // 'parent' + shift(204); // 'parent' + break; + case 210: // 'preceding' + shift(210); // 'preceding' + break; + case 211: // 'preceding-sibling' + shift(211); // 'preceding-sibling' + break; + case 216: // 'rename' + shift(216); // 'rename' + break; + case 217: // 'replace' + shift(217); // 'replace' + break; + case 218: // 'return' + shift(218); // 'return' + break; + case 222: // 'satisfies' + shift(222); // 'satisfies' + break; + case 227: // 'self' + shift(227); // 'self' + break; + case 233: // 'some' + shift(233); // 'some' + break; + case 234: // 'stable' + shift(234); // 'stable' + break; + case 235: // 'start' + shift(235); // 'start' + break; + case 246: // 'to' + shift(246); // 'to' + break; + case 247: // 'treat' + shift(247); // 'treat' + break; + case 248: // 'try' + shift(248); // 'try' + break; + case 252: // 'union' + shift(252); // 'union' + break; + case 254: // 'unordered' + shift(254); // 'unordered' + break; + case 258: // 'validate' + shift(258); // 'validate' + break; + case 264: // 'where' + shift(264); // 'where' + break; + case 268: // 'with' + shift(268); // 'with' + break; + case 272: // 'xquery' + shift(272); // 'xquery' + break; + case 70: // 'allowing' + shift(70); // 'allowing' + break; + case 79: // 'at' + shift(79); // 'at' + break; + case 81: // 'base-uri' + shift(81); // 'base-uri' + break; + case 83: // 'boundary-space' + shift(83); // 'boundary-space' + break; + case 84: // 'break' + shift(84); // 'break' + break; + case 89: // 'catch' + shift(89); // 'catch' + break; + case 96: // 'construction' + shift(96); // 'construction' + break; + case 99: // 'context' + shift(99); // 'context' + break; + case 100: // 'continue' + shift(100); // 'continue' + break; + case 102: // 'copy-namespaces' + shift(102); // 'copy-namespaces' + break; + case 104: // 'decimal-format' + shift(104); // 'decimal-format' + break; + case 123: // 'encoding' + shift(123); // 'encoding' + break; + case 130: // 'exit' + shift(130); // 'exit' + break; + case 131: // 'external' + shift(131); // 'external' + break; + case 139: // 'ft-option' + shift(139); // 'ft-option' + break; + case 152: // 'in' + shift(152); // 'in' + break; + case 153: // 'index' + shift(153); // 'index' + break; + case 159: // 'integrity' + shift(159); // 'integrity' + break; + case 169: // 'lax' + shift(169); // 'lax' + break; + case 190: // 'nodes' + shift(190); // 'nodes' + break; + case 197: // 'option' + shift(197); // 'option' + break; + case 201: // 'ordering' + shift(201); // 'ordering' + break; + case 220: // 'revalidation' + shift(220); // 'revalidation' + break; + case 223: // 'schema' + shift(223); // 'schema' + break; + case 226: // 'score' + shift(226); // 'score' + break; + case 232: // 'sliding' + shift(232); // 'sliding' + break; + case 238: // 'strict' + shift(238); // 'strict' + break; + case 249: // 'tumbling' + shift(249); // 'tumbling' + break; + case 250: // 'type' + shift(250); // 'type' + break; + case 255: // 'updating' + shift(255); // 'updating' + break; + case 259: // 'value' + shift(259); // 'value' + break; + case 260: // 'variable' + shift(260); // 'variable' + break; + case 261: // 'version' + shift(261); // 'version' + break; + case 265: // 'while' + shift(265); // 'while' + break; + case 95: // 'constraint' + shift(95); // 'constraint' + break; + case 174: // 'loop' + shift(174); // 'loop' + break; + default: + shift(219); // 'returning' + } + eventHandler.endNonterminal("FunctionName", e0); + } + + function parse_NCName() + { + eventHandler.startNonterminal("NCName", e0); + switch (l1) + { + case 28: // NCName^Token + shift(28); // NCName^Token + break; + case 68: // 'after' + shift(68); // 'after' + break; + case 73: // 'and' + shift(73); // 'and' + break; + case 77: // 'as' + shift(77); // 'as' + break; + case 78: // 'ascending' + shift(78); // 'ascending' + break; + case 82: // 'before' + shift(82); // 'before' + break; + case 86: // 'case' + shift(86); // 'case' + break; + case 87: // 'cast' + shift(87); // 'cast' + break; + case 88: // 'castable' + shift(88); // 'castable' + break; + case 92: // 'collation' + shift(92); // 'collation' + break; + case 103: // 'count' + shift(103); // 'count' + break; + case 107: // 'default' + shift(107); // 'default' + break; + case 111: // 'descending' + shift(111); // 'descending' + break; + case 116: // 'div' + shift(116); // 'div' + break; + case 120: // 'else' + shift(120); // 'else' + break; + case 121: // 'empty' + shift(121); // 'empty' + break; + case 124: // 'end' + shift(124); // 'end' + break; + case 126: // 'eq' + shift(126); // 'eq' + break; + case 129: // 'except' + shift(129); // 'except' + break; + case 135: // 'for' + shift(135); // 'for' + break; + case 144: // 'ge' + shift(144); // 'ge' + break; + case 146: // 'group' + shift(146); // 'group' + break; + case 148: // 'gt' + shift(148); // 'gt' + break; + case 149: // 'idiv' + shift(149); // 'idiv' + break; + case 158: // 'instance' + shift(158); // 'instance' + break; + case 160: // 'intersect' + shift(160); // 'intersect' + break; + case 161: // 'into' + shift(161); // 'into' + break; + case 162: // 'is' + shift(162); // 'is' + break; + case 170: // 'le' + shift(170); // 'le' + break; + case 172: // 'let' + shift(172); // 'let' + break; + case 176: // 'lt' + shift(176); // 'lt' + break; + case 178: // 'mod' + shift(178); // 'mod' + break; + case 179: // 'modify' + shift(179); // 'modify' + break; + case 184: // 'ne' + shift(184); // 'ne' + break; + case 196: // 'only' + shift(196); // 'only' + break; + case 198: // 'or' + shift(198); // 'or' + break; + case 199: // 'order' + shift(199); // 'order' + break; + case 218: // 'return' + shift(218); // 'return' + break; + case 222: // 'satisfies' + shift(222); // 'satisfies' + break; + case 234: // 'stable' + shift(234); // 'stable' + break; + case 235: // 'start' + shift(235); // 'start' + break; + case 246: // 'to' + shift(246); // 'to' + break; + case 247: // 'treat' + shift(247); // 'treat' + break; + case 252: // 'union' + shift(252); // 'union' + break; + case 264: // 'where' + shift(264); // 'where' + break; + case 268: // 'with' + shift(268); // 'with' + break; + case 71: // 'ancestor' + shift(71); // 'ancestor' + break; + case 72: // 'ancestor-or-self' + shift(72); // 'ancestor-or-self' + break; + case 80: // 'attribute' + shift(80); // 'attribute' + break; + case 91: // 'child' + shift(91); // 'child' + break; + case 94: // 'comment' + shift(94); // 'comment' + break; + case 101: // 'copy' + shift(101); // 'copy' + break; + case 106: // 'declare' + shift(106); // 'declare' + break; + case 108: // 'delete' + shift(108); // 'delete' + break; + case 109: // 'descendant' + shift(109); // 'descendant' + break; + case 110: // 'descendant-or-self' + shift(110); // 'descendant-or-self' + break; + case 117: // 'document' + shift(117); // 'document' + break; + case 118: // 'document-node' + shift(118); // 'document-node' + break; + case 119: // 'element' + shift(119); // 'element' + break; + case 122: // 'empty-sequence' + shift(122); // 'empty-sequence' + break; + case 127: // 'every' + shift(127); // 'every' + break; + case 132: // 'first' + shift(132); // 'first' + break; + case 133: // 'following' + shift(133); // 'following' + break; + case 134: // 'following-sibling' + shift(134); // 'following-sibling' + break; + case 143: // 'function' + shift(143); // 'function' + break; + case 150: // 'if' + shift(150); // 'if' + break; + case 151: // 'import' + shift(151); // 'import' + break; + case 157: // 'insert' + shift(157); // 'insert' + break; + case 163: // 'item' + shift(163); // 'item' + break; + case 168: // 'last' + shift(168); // 'last' + break; + case 180: // 'module' + shift(180); // 'module' + break; + case 182: // 'namespace' + shift(182); // 'namespace' + break; + case 183: // 'namespace-node' + shift(183); // 'namespace-node' + break; + case 189: // 'node' + shift(189); // 'node' + break; + case 200: // 'ordered' + shift(200); // 'ordered' + break; + case 204: // 'parent' + shift(204); // 'parent' + break; + case 210: // 'preceding' + shift(210); // 'preceding' + break; + case 211: // 'preceding-sibling' + shift(211); // 'preceding-sibling' + break; + case 214: // 'processing-instruction' + shift(214); // 'processing-instruction' + break; + case 216: // 'rename' + shift(216); // 'rename' + break; + case 217: // 'replace' + shift(217); // 'replace' + break; + case 224: // 'schema-attribute' + shift(224); // 'schema-attribute' + break; + case 225: // 'schema-element' + shift(225); // 'schema-element' + break; + case 227: // 'self' + shift(227); // 'self' + break; + case 233: // 'some' + shift(233); // 'some' + break; + case 241: // 'switch' + shift(241); // 'switch' + break; + case 242: // 'text' + shift(242); // 'text' + break; + case 248: // 'try' + shift(248); // 'try' + break; + case 251: // 'typeswitch' + shift(251); // 'typeswitch' + break; + case 254: // 'unordered' + shift(254); // 'unordered' + break; + case 258: // 'validate' + shift(258); // 'validate' + break; + case 260: // 'variable' + shift(260); // 'variable' + break; + case 272: // 'xquery' + shift(272); // 'xquery' + break; + case 70: // 'allowing' + shift(70); // 'allowing' + break; + case 79: // 'at' + shift(79); // 'at' + break; + case 81: // 'base-uri' + shift(81); // 'base-uri' + break; + case 83: // 'boundary-space' + shift(83); // 'boundary-space' + break; + case 84: // 'break' + shift(84); // 'break' + break; + case 89: // 'catch' + shift(89); // 'catch' + break; + case 96: // 'construction' + shift(96); // 'construction' + break; + case 99: // 'context' + shift(99); // 'context' + break; + case 100: // 'continue' + shift(100); // 'continue' + break; + case 102: // 'copy-namespaces' + shift(102); // 'copy-namespaces' + break; + case 104: // 'decimal-format' + shift(104); // 'decimal-format' + break; + case 123: // 'encoding' + shift(123); // 'encoding' + break; + case 130: // 'exit' + shift(130); // 'exit' + break; + case 131: // 'external' + shift(131); // 'external' + break; + case 139: // 'ft-option' + shift(139); // 'ft-option' + break; + case 152: // 'in' + shift(152); // 'in' + break; + case 153: // 'index' + shift(153); // 'index' + break; + case 159: // 'integrity' + shift(159); // 'integrity' + break; + case 169: // 'lax' + shift(169); // 'lax' + break; + case 190: // 'nodes' + shift(190); // 'nodes' + break; + case 197: // 'option' + shift(197); // 'option' + break; + case 201: // 'ordering' + shift(201); // 'ordering' + break; + case 220: // 'revalidation' + shift(220); // 'revalidation' + break; + case 223: // 'schema' + shift(223); // 'schema' + break; + case 226: // 'score' + shift(226); // 'score' + break; + case 232: // 'sliding' + shift(232); // 'sliding' + break; + case 238: // 'strict' + shift(238); // 'strict' + break; + case 249: // 'tumbling' + shift(249); // 'tumbling' + break; + case 250: // 'type' + shift(250); // 'type' + break; + case 255: // 'updating' + shift(255); // 'updating' + break; + case 259: // 'value' + shift(259); // 'value' + break; + case 261: // 'version' + shift(261); // 'version' + break; + case 265: // 'while' + shift(265); // 'while' + break; + case 95: // 'constraint' + shift(95); // 'constraint' + break; + case 174: // 'loop' + shift(174); // 'loop' + break; + default: + shift(219); // 'returning' + } + eventHandler.endNonterminal("NCName", e0); + } + + function shift(t) + { + if (l1 == t) + { + whitespace(); + eventHandler.terminal(JSONiqTokenizer.TOKEN[l1], b1, e1 > size ? size : e1); + b0 = b1; e0 = e1; l1 = 0; + } + else + { + error(b1, e1, 0, l1, t); + } + } + + function whitespace() + { + if (e0 != b1) + { + b0 = e0; + e0 = b1; + eventHandler.whitespace(b0, e0); + } + } + + function matchW(set) + { + var code; + for (;;) + { + code = match(set); + if (code != 30) // S^WS + { + break; + } + } + return code; + } + + function lookahead1W(set) + { + if (l1 == 0) + { + l1 = matchW(set); + b1 = begin; + e1 = end; + } + } + + function lookahead1(set) + { + if (l1 == 0) + { + l1 = match(set); + b1 = begin; + e1 = end; + } + } + + function error(b, e, s, l, t) + { + throw new self.ParseException(b, e, s, l, t); + } + + var lk, b0, e0; + var l1, b1, e1; + var eventHandler; + + var input; + var size; + var begin; + var end; + + function match(tokenSetId) + { + var nonbmp = false; + begin = end; + var current = end; + var result = JSONiqTokenizer.INITIAL[tokenSetId]; + var state = 0; + + for (var code = result & 4095; code != 0; ) + { + var charclass; + var c0 = current < size ? input.charCodeAt(current) : 0; + ++current; + if (c0 < 0x80) + { + charclass = JSONiqTokenizer.MAP0[c0]; + } + else if (c0 < 0xd800) + { + var c1 = c0 >> 4; + charclass = JSONiqTokenizer.MAP1[(c0 & 15) + JSONiqTokenizer.MAP1[(c1 & 31) + JSONiqTokenizer.MAP1[c1 >> 5]]]; + } + else + { + if (c0 < 0xdc00) + { + var c1 = current < size ? input.charCodeAt(current) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) + { + ++current; + c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000; + nonbmp = true; + } + } + var lo = 0, hi = 5; + for (var m = 3; ; m = (hi + lo) >> 1) + { + if (JSONiqTokenizer.MAP2[m] > c0) hi = m - 1; + else if (JSONiqTokenizer.MAP2[6 + m] < c0) lo = m + 1; + else {charclass = JSONiqTokenizer.MAP2[12 + m]; break;} + if (lo > hi) {charclass = 0; break;} + } + } + + state = code; + var i0 = (charclass << 12) + code - 1; + code = JSONiqTokenizer.TRANSITION[(i0 & 15) + JSONiqTokenizer.TRANSITION[i0 >> 4]]; + + if (code > 4095) + { + result = code; + code &= 4095; + end = current; + } + } + + result >>= 12; + if (result == 0) + { + end = current - 1; + var c1 = end < size ? input.charCodeAt(end) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) --end; + return error(begin, end, state, -1, -1); + } + + if (nonbmp) + { + for (var i = result >> 9; i > 0; --i) + { + --end; + var c1 = end < size ? input.charCodeAt(end) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) --end; + } + } + else + { + end -= result >> 9; + } + + return (result & 511) - 1; + } +} + +JSONiqTokenizer.getTokenSet = function(tokenSetId) +{ + var set = []; + var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095; + for (var i = 0; i < 279; i += 32) + { + var j = i; + var i0 = (i >> 5) * 2066 + s - 1; + var i1 = i0 >> 2; + var i2 = i1 >> 2; + var f = JSONiqTokenizer.EXPECTED[(i0 & 3) + JSONiqTokenizer.EXPECTED[(i1 & 3) + JSONiqTokenizer.EXPECTED[(i2 & 3) + JSONiqTokenizer.EXPECTED[i2 >> 2]]]]; + for ( ; f != 0; f >>>= 1, ++j) + { + if ((f & 1) != 0) + { + set.push(JSONiqTokenizer.TOKEN[j]); + } + } + } + return set; +}; + +JSONiqTokenizer.MAP0 = +[ 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37 +]; + +JSONiqTokenizer.MAP1 = +[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 347, 363, 379, 416, 416, 416, 408, 331, 323, 331, 323, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 433, 433, 433, 433, 433, 433, 433, 316, 331, 331, 331, 331, 331, 331, 331, 331, 394, 416, 416, 417, 415, 416, 416, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 67, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 37, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 37, 31, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 31, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 31, 62, 63, 64, 65, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 31, 31, 37, 37, 37, 37, 37, 37, 37, 66, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66 +]; + +JSONiqTokenizer.MAP2 = +[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 37, 31, 37, 31, 31, 37 +]; + +JSONiqTokenizer.INITIAL = +[ 1, 2, 49155, 57348, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 +]; + +JSONiqTokenizer.TRANSITION = +[ 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 17408, 19288, 17439, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 36919, 18234, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18419, 18432, 18304, 18448, 18485, 18523, 18553, 18583, 18599, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 18825, 18841, 18871, 18906, 18944, 18960, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19074, 36169, 17439, 36866, 17466, 36890, 36866, 22314, 19105, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22126, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17672, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19469, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 36919, 18234, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18419, 18432, 18304, 18448, 18485, 18523, 18553, 18583, 18599, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 18825, 18841, 18871, 18906, 18944, 18960, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22182, 19288, 19121, 36866, 17466, 18345, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19273, 19552, 19304, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19332, 17423, 19363, 36866, 17466, 17537, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 18614, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 19391, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 19427, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36154, 19288, 19457, 36866, 17466, 17740, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22780, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22375, 22197, 18469, 36866, 17466, 36890, 36866, 21991, 24018, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 21331, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 19485, 19501, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19537, 22390, 19568, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19596, 19611, 19457, 36866, 17466, 36890, 36866, 18246, 19627, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22242, 20553, 19457, 36866, 17466, 36890, 36866, 18648, 30477, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36472, 19288, 19457, 36866, 17466, 17809, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 21770, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 19643, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 19672, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 20538, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 17975, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22345, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19726, 19742, 21529, 24035, 23112, 26225, 23511, 27749, 27397, 24035, 34360, 24035, 24036, 23114, 35166, 23114, 23114, 19758, 23511, 35247, 23511, 23511, 28447, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 19821, 23511, 23511, 23511, 23511, 23512, 19441, 36539, 24035, 24035, 24035, 24035, 19846, 19869, 23114, 23114, 23114, 28618, 32187, 19892, 23511, 23511, 23511, 34585, 20402, 36647, 24035, 24035, 24036, 23114, 33757, 23114, 23114, 23029, 20271, 23511, 27070, 23511, 23511, 30562, 24035, 24035, 29274, 26576, 23114, 23114, 31118, 23036, 29695, 23511, 23511, 32431, 23634, 30821, 24035, 23110, 19913, 23114, 23467, 31261, 23261, 34299, 19932, 24035, 32609, 19965, 35389, 19984, 27689, 19830, 29391, 29337, 20041, 22643, 35619, 33728, 20062, 20121, 20166, 35100, 26145, 20211, 23008, 19876, 20208, 20227, 25670, 20132, 26578, 27685, 20141, 20243, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36094, 19288, 19457, 36866, 17466, 21724, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22735, 19552, 20287, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22750, 19288, 21529, 24035, 23112, 28056, 23511, 29483, 28756, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 20327, 23511, 23511, 23511, 23511, 31156, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 20371, 23511, 23511, 23511, 23511, 27443, 20395, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 29457, 29700, 23511, 23511, 23511, 23511, 33444, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 28350, 20421, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 20447, 20475, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 20523, 22257, 20569, 20783, 21715, 17603, 20699, 20837, 20614, 20630, 21149, 20670, 21405, 17486, 17509, 17525, 18373, 19179, 20695, 20716, 20732, 20755, 19194, 18042, 21641, 20592, 20779, 20598, 21412, 17470, 17591, 20896, 17468, 17619, 20799, 20700, 21031, 20744, 20699, 20828, 18075, 21259, 20581, 20853, 18048, 20868, 20884, 17756, 17784, 17800, 17825, 17854, 21171, 21200, 20931, 20947, 21378, 20955, 20971, 18086, 20645, 21002, 20986, 18178, 17960, 18012, 18381, 18064, 29176, 21044, 21438, 21018, 21122, 21393, 21060, 21844, 21094, 20654, 17493, 18150, 18166, 18214, 25967, 20763, 21799, 21110, 21830, 21138, 21246, 21301, 18336, 18361, 21165, 21187, 20812, 21216, 21232, 21287, 21317, 18553, 21347, 21363, 21428, 21454, 21271, 21483, 21499, 21515, 21575, 21467, 18712, 21591, 21633, 21078, 18189, 18198, 20679, 21657, 21701, 21074, 21687, 21740, 21756, 21786, 21815, 21860, 21876, 21892, 21946, 21962, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36457, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 36813, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 21981, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 22151, 22007, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 27898, 17884, 18890, 17906, 17928, 22042, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 22070, 22112, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 22142, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36109, 19288, 18469, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22167, 19288, 19457, 36866, 17466, 17768, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22227, 36487, 22273, 36866, 17466, 36890, 36866, 19316, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18749, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 22304, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 19580, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22330, 19089, 19457, 36866, 17466, 18721, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22765, 19347, 19457, 36866, 17466, 36890, 36866, 18114, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34541, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 22540, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29908, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22561, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 23837, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22584, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 27443, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 22839, 23511, 23511, 23511, 23511, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36442, 19288, 21605, 24035, 23112, 28137, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 31568, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22690, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 27584, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 22659, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22360, 19552, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22675, 22811, 19457, 36866, 17466, 36890, 36866, 19133, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 22827, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36064, 19288, 22865, 22881, 32031, 22897, 22913, 22956, 29939, 24035, 24035, 24035, 23003, 23114, 23114, 23114, 23024, 22420, 23511, 23511, 23511, 23052, 29116, 23073, 29268, 24035, 25563, 26915, 23106, 23131, 23114, 23114, 23159, 23181, 23197, 23248, 23511, 23511, 23282, 23305, 22493, 32364, 24035, 33472, 30138, 26325, 31770, 33508, 27345, 33667, 23114, 23321, 23473, 23351, 35793, 36576, 23511, 23375, 22500, 24145, 24035, 29197, 20192, 24533, 23440, 23114, 19017, 23459, 22839, 23489, 23510, 23511, 33563, 23528, 32076, 25389, 24035, 26576, 23561, 23583, 23114, 32683, 22516, 23622, 23655, 23511, 23634, 35456, 37144, 23110, 23683, 34153, 20499, 32513, 25824, 23705, 24035, 24035, 23111, 23114, 19874, 27078, 33263, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 20507, 32241, 20150, 31862, 27464, 35108, 23727, 23007, 35895, 34953, 26578, 27685, 20141, 24569, 31691, 19787, 33967, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36427, 19552, 21605, 24035, 23112, 32618, 23511, 29483, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 27027, 26576, 23114, 23114, 23114, 31471, 23756, 22468, 23511, 23511, 23511, 34687, 23772, 22493, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34564, 23788, 24035, 24035, 24035, 21559, 23828, 23114, 23114, 23114, 25086, 22839, 23853, 23511, 23511, 23511, 23876, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 31761, 23909, 23953, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36049, 19288, 21605, 30825, 23112, 23987, 23511, 24003, 31001, 27617, 24034, 24035, 24036, 24052, 24089, 23114, 23114, 22420, 24109, 24168, 23511, 23511, 29116, 24188, 27609, 20017, 29516, 24035, 26576, 24222, 19968, 23114, 24252, 33811, 22468, 24270, 33587, 23511, 24320, 27443, 22493, 24035, 24035, 24035, 24035, 24339, 23113, 23114, 23114, 23114, 28128, 28618, 29700, 23511, 23511, 23511, 28276, 34564, 20402, 24035, 24035, 32929, 24036, 23114, 23114, 23114, 24357, 23029, 22839, 23511, 23511, 23511, 24377, 25645, 24035, 34112, 24035, 26576, 23114, 26643, 23114, 32683, 22516, 23511, 25638, 23511, 23711, 24035, 24395, 27809, 23114, 24414, 20499, 24432, 30917, 23628, 24035, 30680, 23111, 23114, 30233, 27078, 25748, 24452, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 24475, 19829, 26577, 26597, 26154, 24519, 24556, 24596, 23007, 20046, 20132, 26578, 24634, 20141, 24569, 31691, 24679, 24727, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36412, 19288, 21605, 19943, 34861, 32618, 26027, 29483, 32016, 32050, 36233, 24776, 35574, 24801, 24819, 32671, 31289, 22420, 24868, 24886, 20087, 26849, 29116, 19803, 24035, 24035, 24035, 36228, 26576, 23114, 23114, 23114, 24981, 33811, 22468, 23511, 23511, 23511, 29028, 27443, 22493, 24923, 27965, 24035, 24035, 32797, 24946, 23443, 23114, 23114, 29636, 24997, 22849, 28252, 23511, 23511, 23511, 25042, 25110, 24035, 24035, 34085, 24036, 25133, 23114, 23114, 25152, 23029, 22839, 25169, 23511, 36764, 23511, 25645, 30403, 24035, 25186, 26576, 31806, 24093, 25212, 32683, 22516, 32713, 26245, 34293, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 24035, 32406, 23111, 23114, 28676, 30944, 27689, 25234, 24035, 23112, 19872, 37063, 23266, 24036, 23114, 30243, 20379, 26100, 29218, 20211, 30105, 25257, 25284, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 24834, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36034, 19288, 21671, 25314, 25072, 25330, 25346, 25362, 29939, 29951, 35288, 29984, 23812, 27216, 25405, 25424, 30456, 22584, 26292, 25461, 25480, 31592, 29116, 25516, 34963, 25545, 27007, 25579, 33937, 25614, 25661, 25686, 34872, 25702, 25718, 25734, 25769, 25795, 25811, 25840, 22493, 26533, 25856, 24035, 25876, 30763, 27481, 25909, 23114, 28987, 25936, 25954, 29700, 25983, 23511, 31412, 26043, 26063, 22568, 29241, 29592, 26116, 31216, 35383, 26170, 34783, 26194, 26221, 22839, 26241, 26261, 22477, 26283, 26308, 27306, 31035, 24655, 26576, 29854, 33386, 26341, 32683, 22516, 32153, 30926, 26361, 19996, 26381, 35463, 26397, 26424, 34646, 26478, 35605, 31386, 26494, 35567, 31964, 22940, 23689, 25218, 30309, 32289, 19830, 33605, 23112, 32109, 27733, 27084, 24496, 35886, 35221, 26525, 36602, 26549, 26558, 26574, 26594, 26613, 26629, 26666, 26700, 26578, 27685, 23740, 24285, 31691, 26733, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36397, 19552, 18991, 25887, 28117, 32618, 26776, 29483, 29939, 26802, 24035, 24035, 24036, 28664, 23114, 23114, 23114, 22420, 30297, 23511, 23511, 23511, 29116, 19803, 24035, 24035, 24035, 25559, 26576, 23114, 23114, 23114, 30525, 33811, 22468, 23511, 23511, 23511, 28725, 27443, 22493, 24035, 24035, 27249, 24035, 24035, 23113, 23114, 23114, 26827, 23114, 28618, 29700, 23511, 23511, 26845, 23511, 34564, 20402, 24035, 24035, 26979, 24036, 23114, 23114, 23114, 24974, 23029, 22839, 23511, 23511, 23511, 26865, 25645, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 32683, 22516, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 20499, 23511, 23261, 23628, 33305, 24035, 25598, 23114, 19874, 34253, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 26886, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 26931, 24569, 26439, 26947, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36019, 19288, 26995, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 27043, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 27061, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 29978, 24035, 24035, 23113, 23114, 33114, 23114, 23114, 30010, 29700, 23511, 35913, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 27155, 26576, 23114, 23114, 30447, 23036, 29695, 23511, 23511, 30935, 20099, 24152, 25529, 27100, 34461, 27121, 22625, 29156, 26009, 27137, 30422, 31903, 31655, 28870, 27171, 32439, 31731, 19830, 27232, 22612, 27265, 26786, 25494, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 20342, 27288, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 27322, 27339, 28020, 27361, 27382, 29939, 24035, 24035, 32581, 24036, 23114, 23114, 23114, 27425, 22420, 23511, 23511, 23511, 27442, 28306, 19803, 24035, 24035, 24035, 24035, 26710, 23114, 23114, 23114, 23114, 32261, 22468, 23511, 23511, 23511, 23511, 35719, 24694, 29510, 24035, 24035, 24035, 24035, 26717, 23114, 23114, 23114, 23114, 28618, 32217, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 27459, 23114, 23114, 23114, 36252, 23029, 20271, 23511, 23511, 23511, 28840, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 27480, 34483, 28401, 29761, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36382, 19288, 21605, 27497, 27517, 28504, 28898, 27569, 29939, 29401, 27600, 27323, 27633, 19025, 27662, 23114, 27705, 22420, 20483, 27721, 23511, 27765, 28306, 19803, 23540, 24035, 24610, 27781, 27805, 26650, 23114, 28573, 32990, 25920, 22468, 26870, 23511, 26684, 34262, 34737, 25057, 34622, 24035, 24035, 23971, 24206, 27825, 27847, 23114, 23114, 27865, 27885, 35766, 27914, 23511, 23511, 32766, 32844, 27934, 28795, 26909, 27955, 26092, 27988, 25445, 28005, 28036, 28052, 21965, 23511, 32196, 19897, 28072, 28102, 36534, 21541, 23801, 28153, 28180, 28197, 28221, 23036, 32695, 28251, 28268, 28292, 23667, 34825, 23930, 24580, 28322, 28344, 31627, 28366, 25996, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 35625, 33477, 33359, 27674, 28393, 33992, 24036, 23114, 30243, 19829, 28417, 28433, 28463, 23008, 19876, 20208, 23007, 20046, 20132, 28489, 28520, 20141, 24569, 31691, 19787, 28550, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 24035, 23112, 32618, 23511, 31507, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 24694, 28589, 24035, 24035, 24035, 24035, 28608, 23114, 23114, 23114, 23114, 28618, 20431, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36004, 19288, 28634, 31951, 28565, 28702, 28718, 28741, 32544, 20175, 28792, 32086, 20105, 28811, 29059, 29862, 28856, 22420, 28886, 30354, 23359, 28922, 28306, 28952, 23888, 26320, 36506, 24035, 29331, 28968, 36609, 23114, 29003, 31661, 27061, 30649, 27366, 23511, 29023, 27918, 24694, 24035, 24035, 23893, 33094, 30867, 23113, 23114, 23114, 29044, 34184, 30010, 29700, 23511, 23511, 29081, 29102, 34585, 20402, 27789, 24035, 24035, 24036, 23114, 29132, 23114, 23114, 23029, 20271, 23511, 29153, 23511, 23511, 30562, 30174, 24035, 24035, 27409, 25438, 23114, 23114, 29172, 36668, 31332, 23511, 23511, 29192, 30144, 24035, 23110, 30203, 23114, 23467, 31544, 23261, 23628, 24035, 22545, 23111, 23114, 29213, 27078, 27689, 29234, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 29257, 23008, 19876, 20208, 28768, 29290, 29320, 34776, 29353, 20141, 22435, 29378, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36367, 19288, 21605, 34616, 19006, 32618, 31497, 31507, 36216, 20184, 24035, 34393, 29424, 34668, 23114, 34900, 29447, 22420, 30360, 23511, 37089, 29473, 28306, 19803, 29499, 24398, 24035, 24035, 26576, 31799, 29532, 29550, 23114, 33811, 22468, 32298, 29571, 31184, 23511, 23512, 37127, 36628, 29589, 24035, 24135, 24035, 23113, 29608, 23114, 27831, 29634, 28618, 29652, 30037, 23511, 24172, 29671, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 29555, 29690, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 29719, 24035, 23110, 29738, 23114, 23467, 34035, 29756, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 29777, 34364, 28181, 30243, 29799, 31920, 27272, 27185, 23008, 31126, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29828, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35989, 19552, 19687, 35139, 28649, 29878, 29894, 29924, 29939, 23224, 23085, 31969, 24036, 35173, 24752, 24803, 23114, 22420, 31190, 30318, 24870, 23511, 28306, 29967, 23967, 24035, 24035, 24035, 26576, 30000, 23114, 23114, 23114, 33811, 22468, 30026, 23511, 23511, 23511, 23512, 26078, 24035, 24035, 24035, 30053, 37137, 30071, 23114, 23114, 33368, 25136, 28618, 30723, 23511, 23511, 37096, 31356, 34585, 20402, 30092, 30127, 30160, 24036, 35740, 30219, 24960, 30259, 23029, 20271, 34042, 30285, 30342, 30376, 23289, 30055, 30400, 30419, 30438, 32640, 33532, 33514, 30472, 18792, 26267, 24323, 23057, 30493, 23639, 20008, 30196, 33188, 30517, 20075, 23511, 30541, 23628, 30578, 33928, 28776, 30594, 19874, 30610, 30637, 19830, 30677, 27646, 19872, 25779, 23266, 23232, 35016, 30243, 30696, 29812, 30712, 30746, 27206, 30779, 30807, 23007, 33395, 20132, 26578, 27685, 31703, 22928, 31691, 19787, 31079, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36352, 19288, 23335, 30841, 26131, 30888, 30904, 30986, 29939, 24035, 24704, 31017, 20025, 23114, 26178, 31051, 31095, 22420, 23511, 22524, 31142, 31172, 28534, 31206, 35497, 25196, 24035, 28592, 24503, 23114, 31239, 31285, 23114, 31305, 31321, 31355, 31372, 31407, 23511, 30556, 24694, 24035, 27501, 19805, 24035, 24035, 23113, 23114, 31428, 24066, 23114, 28618, 29700, 23511, 31837, 18809, 23511, 34585, 31448, 24035, 24035, 24035, 23090, 23114, 23114, 23114, 23114, 31619, 35038, 23511, 23511, 23511, 23511, 33714, 24035, 33085, 24035, 29431, 23114, 31467, 23114, 23143, 31487, 23511, 31523, 23511, 35195, 36783, 24035, 30111, 23567, 23114, 23467, 31543, 31560, 23628, 24035, 24035, 23111, 23114, 19874, 30953, 31584, 34508, 24035, 31608, 26345, 37055, 23266, 31643, 31677, 31719, 31747, 31786, 31822, 26898, 23008, 19876, 31859, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 31878, 31936, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35974, 19288, 21605, 27972, 35663, 31985, 29655, 32001, 36715, 24785, 25893, 23545, 31912, 19853, 19916, 25938, 24540, 22420, 31843, 29674, 29573, 32735, 28936, 19803, 24035, 24035, 32047, 24035, 26576, 23114, 23114, 27544, 23114, 33811, 22468, 23511, 23511, 32161, 23511, 23512, 32066, 24035, 33313, 24035, 24035, 24035, 23113, 27426, 32102, 23114, 23114, 28618, 32125, 23511, 32144, 23511, 23511, 33569, 20402, 24035, 27045, 24035, 24036, 23114, 23114, 28328, 23114, 30076, 32177, 23511, 23511, 30384, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23595, 32212, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 22635, 25753, 32233, 32257, 32277, 19829, 26577, 26597, 20211, 23008, 19876, 32322, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 32352, 35285, 32380, 34196, 33016, 30661, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 32404, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 32422, 23511, 23511, 23511, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 30269, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 19949, 24035, 23111, 32455, 19874, 31269, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36337, 19552, 19209, 21617, 26509, 32475, 32491, 32529, 29939, 24035, 32578, 25241, 32597, 23114, 32634, 29007, 32656, 22420, 23511, 32729, 26365, 32751, 28306, 32788, 32882, 24035, 24035, 32813, 36727, 23114, 33182, 23114, 27553, 33235, 32829, 23511, 32706, 23511, 28906, 28377, 26962, 32881, 32904, 32898, 32920, 24035, 32953, 23114, 32977, 26408, 23114, 28164, 33006, 23511, 33039, 35774, 23511, 32306, 20402, 33076, 30872, 24035, 24036, 25408, 33110, 28979, 23114, 23029, 20271, 35835, 33130, 33054, 23511, 30562, 33148, 24035, 24035, 33167, 23114, 23114, 33775, 23036, 20459, 23511, 23511, 25464, 24646, 24035, 24035, 22446, 23114, 23114, 25627, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 31391, 33204, 33220, 33251, 33287, 26577, 26597, 20211, 33329, 19876, 33345, 23007, 20046, 20132, 26578, 27685, 28473, 22599, 31691, 33411, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35959, 19288, 21907, 27243, 29843, 32618, 33427, 31507, 29939, 33460, 34090, 24035, 24036, 33493, 24416, 33530, 23114, 22420, 33548, 24379, 33585, 23511, 28306, 19803, 33603, 24202, 24035, 24035, 25593, 33749, 28205, 23114, 23114, 32388, 22468, 33853, 33060, 23511, 23511, 31339, 33621, 24035, 24035, 34397, 24618, 30757, 33663, 23114, 23114, 33683, 35684, 28618, 26678, 23511, 23511, 32506, 33699, 34585, 20402, 24035, 32562, 26973, 24036, 23114, 23114, 33377, 33773, 23029, 20271, 23511, 23511, 30621, 23511, 23860, 24035, 33791, 21553, 26576, 36558, 23114, 33809, 23036, 32857, 26047, 23511, 33827, 23634, 24035, 24035, 23110, 23114, 23114, 31252, 23511, 33845, 23628, 24035, 24459, 23111, 23114, 33869, 27078, 30791, 29783, 24035, 24742, 19872, 33895, 23266, 26462, 19710, 33879, 33919, 26577, 26597, 24123, 24930, 21930, 20208, 30501, 33953, 25268, 20252, 33983, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36322, 19552, 23390, 33634, 35154, 34008, 34024, 34058, 35544, 34106, 34128, 26811, 33151, 34144, 34169, 34212, 23114, 34228, 34244, 34278, 34315, 23511, 34331, 34347, 34380, 34413, 24035, 24663, 26576, 34429, 34453, 34477, 29534, 33811, 22468, 34499, 34524, 34557, 25170, 34580, 35436, 23937, 34601, 24035, 24341, 26453, 23113, 34638, 34662, 23114, 24236, 28618, 34684, 34703, 34729, 23511, 35352, 34753, 34799, 24035, 34815, 32558, 34848, 34888, 35814, 34923, 23165, 29137, 23606, 30326, 30730, 34939, 33023, 30562, 36848, 34979, 24035, 24847, 34996, 23114, 23114, 35032, 29695, 35054, 23511, 23511, 35091, 33296, 35124, 24296, 28235, 24361, 36276, 32772, 35067, 35189, 27301, 30855, 24852, 22452, 35211, 35237, 35316, 25500, 35270, 23405, 24304, 35304, 29362, 24036, 23114, 35332, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 35368, 28823, 23920, 32336, 35405, 20141, 24569, 31691, 35421, 35479, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35944, 22795, 21605, 33647, 35877, 35513, 30962, 35529, 34073, 35557, 24035, 24035, 20405, 31107, 23114, 23114, 23114, 35590, 34713, 23511, 23511, 23511, 35641, 19803, 29408, 32937, 25298, 24035, 35657, 23115, 27849, 24760, 35679, 26205, 22468, 23511, 35700, 24907, 24901, 35075, 31893, 34980, 24035, 24035, 24035, 24035, 23113, 35009, 23114, 23114, 23114, 28618, 35716, 30970, 23511, 23511, 23511, 34585, 23215, 24035, 24035, 24035, 24036, 35735, 23114, 23114, 23114, 27105, 35756, 35790, 23511, 23511, 23511, 35254, 35446, 24035, 24035, 31223, 35809, 23114, 23114, 23036, 36825, 35830, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 31031, 20355, 19872, 33903, 23266, 24036, 23114, 28686, 19829, 26577, 26597, 20211, 23008, 23424, 20208, 24711, 31065, 24486, 26578, 27685, 20141, 19773, 35851, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36307, 19288, 21605, 35494, 19702, 32618, 33437, 31507, 29939, 25117, 24035, 27939, 24036, 27869, 23114, 26829, 23114, 22420, 23494, 23511, 33132, 23511, 28306, 19803, 24035, 34832, 24035, 24035, 26576, 23114, 25153, 23114, 23114, 33811, 22468, 23511, 23511, 35911, 23511, 23512, 24694, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 35929, 19288, 21605, 25860, 23112, 36185, 23511, 36201, 29939, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 22420, 23511, 23511, 23511, 23511, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 26748, 24035, 24035, 24035, 24035, 24035, 36249, 23114, 23114, 23114, 23114, 28618, 28835, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 27151, 24035, 26760, 23114, 27989, 23114, 23114, 36268, 20271, 23511, 24436, 23511, 29703, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36292, 19288, 21605, 36503, 21922, 32618, 34534, 31507, 36522, 24035, 33793, 24035, 35864, 23114, 23114, 36555, 23417, 22420, 23511, 23511, 36574, 26020, 28306, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 33811, 22468, 23511, 23511, 23511, 23511, 23512, 36592, 24035, 24035, 36625, 24035, 24035, 23113, 23114, 32961, 23114, 23114, 29618, 29700, 23511, 29086, 23511, 23511, 34585, 20402, 36644, 24035, 24035, 24036, 29740, 23114, 23114, 23114, 29065, 36663, 31527, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36079, 19288, 21605, 31451, 23112, 36684, 23511, 36700, 29939, 24035, 24035, 24035, 30185, 23114, 23114, 23114, 27526, 22420, 23511, 23511, 23511, 32865, 28306, 19803, 36743, 24035, 27017, 24035, 26576, 27535, 23114, 31432, 23114, 33811, 22468, 33271, 23511, 32128, 23511, 23512, 24694, 24035, 27196, 24035, 24035, 24035, 23113, 32459, 23114, 23114, 23114, 28618, 29700, 33829, 36762, 23511, 23511, 34585, 20402, 24035, 36746, 24035, 29722, 23114, 23114, 34437, 23114, 34907, 20271, 23511, 23511, 18801, 23511, 23206, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 36837, 24035, 24035, 33739, 23114, 23114, 25094, 23511, 23261, 23628, 24035, 36780, 23111, 24073, 19874, 27078, 35344, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22720, 19288, 36799, 36866, 17466, 36890, 36864, 21991, 22211, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 17631, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36883, 36906, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 22705, 19288, 19457, 36866, 17466, 36890, 36866, 19375, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18855, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36124, 19288, 36951, 36866, 17466, 36890, 36866, 21991, 22404, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18567, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36979, 36995, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 19457, 36866, 17466, 36890, 36866, 21991, 22971, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18027, 22984, 17553, 17572, 22285, 18462, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 17619, 22083, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 36139, 19288, 21529, 24035, 23112, 23033, 23511, 31507, 25377, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 37040, 23511, 23511, 23511, 23511, 28086, 19803, 24035, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23114, 24254, 37079, 23511, 23511, 23511, 23511, 23512, 34766, 24035, 24035, 24035, 24035, 24035, 23113, 23114, 23114, 23114, 23114, 28618, 29700, 23511, 23511, 23511, 23511, 34585, 20402, 24035, 24035, 24035, 24036, 23114, 23114, 23114, 23114, 23029, 20271, 23511, 23511, 23511, 23511, 30562, 24035, 24035, 24035, 26576, 23114, 23114, 23114, 23036, 29695, 23511, 23511, 23511, 23634, 24035, 24035, 23110, 23114, 23114, 23467, 23511, 23261, 23628, 24035, 24035, 23111, 23114, 19874, 27078, 27689, 19830, 24035, 23112, 19872, 27741, 23266, 24036, 23114, 30243, 19829, 26577, 26597, 20211, 23008, 19876, 20208, 23007, 20046, 20132, 26578, 27685, 20141, 24569, 31691, 19787, 29304, 20268, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 37112, 37160, 18469, 36866, 17466, 36890, 36866, 17656, 37174, 22987, 17556, 17575, 22288, 17486, 17509, 17525, 18373, 18537, 22984, 17553, 17572, 22285, 18780, 17990, 18622, 19411, 20306, 17996, 17689, 17470, 17591, 20896, 17468, 36883, 36906, 36867, 19404, 20299, 36866, 17647, 17862, 18921, 19514, 17705, 20311, 37017, 17728, 17756, 17784, 17800, 17825, 17854, 18403, 18928, 19521, 17712, 37008, 37024, 17878, 18884, 17900, 17922, 17944, 18178, 17960, 18012, 18381, 18064, 18218, 17884, 18890, 17906, 17928, 18102, 25022, 18130, 36931, 36963, 17493, 18150, 18166, 18214, 25010, 25026, 18134, 36935, 18262, 18278, 18294, 18320, 18336, 18361, 18397, 18274, 22096, 18304, 18448, 18485, 18523, 18553, 18583, 19149, 18638, 18497, 19656, 18664, 18680, 18507, 18696, 19164, 18712, 18737, 17681, 22026, 20906, 20915, 22054, 17838, 17450, 22022, 18765, 19225, 18841, 18871, 18906, 19241, 19257, 18976, 19041, 19056, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 19058, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 127011, 110630, 114730, 106539, 127011, 127011, 127011, 53264, 18, 18, 0, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 0, 0, 127011, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 3002368, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2576384, 2215936, 2215936, 2215936, 2416640, 2424832, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2543616, 2215936, 2215936, 2215936, 2215936, 2215936, 2629632, 2215936, 2617344, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2691072, 2215936, 2707456, 2215936, 2715648, 2215936, 2723840, 2764800, 2215936, 2215936, 2797568, 2215936, 2822144, 2215936, 2215936, 2854912, 2215936, 2215936, 2215936, 2912256, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 180224, 0, 0, 2174976, 0, 0, 2170880, 2617344, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2691072, 2170880, 2707456, 2170880, 2715648, 2170880, 2723840, 2764800, 2170880, 2170880, 2797568, 2170880, 2170880, 2797568, 2170880, 2822144, 2170880, 2170880, 2854912, 2170880, 2170880, 2170880, 2912256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2609152, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2654208, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 184599, 280, 0, 2174976, 0, 0, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 544, 0, 546, 0, 0, 2179072, 0, 0, 0, 552, 0, 0, 2170880, 2170880, 2170880, 3117056, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2158592, 2158592, 2232320, 2232320, 0, 2240512, 2240512, 0, 0, 0, 644, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3129344, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2400256, 2215936, 2215936, 2215936, 2215936, 2711552, 2170880, 2170880, 2170880, 2170880, 2170880, 2760704, 2768896, 2789376, 2813952, 2170880, 2170880, 2170880, 2875392, 2904064, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2453504, 2457600, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 167936, 0, 0, 0, 0, 2174976, 0, 0, 2215936, 2215936, 2514944, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2592768, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 32768, 0, 0, 0, 0, 0, 2174976, 32768, 0, 2633728, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2711552, 2215936, 2215936, 2215936, 2215936, 2215936, 2760704, 2768896, 2789376, 2813952, 2215936, 2215936, 2215936, 2875392, 2904064, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 0, 65819, 2215936, 2215936, 3031040, 2215936, 3055616, 2215936, 2215936, 2215936, 2215936, 3092480, 2215936, 2215936, 3125248, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3002368, 2215936, 2215936, 2170880, 2170880, 2494464, 2170880, 2170880, 0, 0, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2445312, 2170880, 2465792, 2473984, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2523136, 2170880, 2170880, 2641920, 2170880, 2170880, 2170880, 2699264, 2170880, 2727936, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2879488, 2170880, 2916352, 2170880, 2170880, 2170880, 2879488, 2170880, 2916352, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3026944, 2170880, 2170880, 3063808, 2170880, 2170880, 3112960, 2170880, 2170880, 3133440, 2170880, 2170880, 3112960, 2170880, 2170880, 3133440, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 2379776, 2215936, 2523136, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2596864, 2215936, 2621440, 2215936, 2215936, 2641920, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 548, 0, 0, 0, 0, 287, 2170880, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3117056, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2699264, 2215936, 2727936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2879488, 2215936, 2916352, 2215936, 2215936, 0, 0, 0, 0, 188416, 0, 2179072, 0, 0, 0, 0, 0, 287, 2170880, 0, 2171019, 2171019, 2171019, 2400395, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3031179, 2171019, 3055755, 2171019, 2171019, 2215936, 3133440, 2215936, 2215936, 2215936, 3162112, 2215936, 2215936, 3182592, 3186688, 2215936, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2523275, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2597003, 2171019, 2621579, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 4337664, 28, 2170880, 2170880, 2170880, 2629632, 2170880, 2170880, 2170880, 2170880, 2719744, 2744320, 2170880, 2170880, 2170880, 2834432, 2838528, 2170880, 2908160, 2170880, 2170880, 2936832, 2215936, 2215936, 2215936, 2215936, 2719744, 2744320, 2215936, 2215936, 2215936, 2834432, 2838528, 2215936, 2908160, 2215936, 2215936, 2936832, 2215936, 2215936, 2985984, 2215936, 2994176, 2215936, 2215936, 3014656, 2215936, 3059712, 3076096, 3088384, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2445312, 2215936, 2465792, 2473984, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171019, 2171019, 2494603, 2171019, 2171019, 2215936, 2215936, 2215936, 3215360, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2985984, 2170880, 2994176, 2170880, 2170880, 3016168, 2170880, 3059712, 3076096, 3088384, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 124, 124, 0, 128, 128, 2170880, 2170880, 2170880, 3215360, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2486272, 2170880, 2170880, 2506752, 2170880, 2170880, 2170880, 2535424, 2539520, 2170880, 2170880, 2588672, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 2170880, 2170880, 3051520, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3170304, 0, 2387968, 2392064, 2170880, 2170880, 2433024, 2170880, 2170880, 2170880, 3170304, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2486272, 2215936, 2215936, 2506752, 2215936, 2215936, 2215936, 2535424, 2539520, 2215936, 2215936, 2588672, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 136, 0, 2215936, 2215936, 2920448, 2215936, 2215936, 2215936, 2990080, 2215936, 2215936, 2215936, 2215936, 3051520, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3108864, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3026944, 2215936, 2215936, 3063808, 2215936, 2215936, 3112960, 2215936, 2215936, 2215936, 3170304, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2453504, 2457600, 2170880, 2170880, 2170880, 2486272, 2170880, 2170880, 2506752, 2170880, 2170880, 2170880, 2537049, 2539520, 2170880, 2170880, 2588672, 2170880, 2170880, 2170880, 1508, 2170880, 2170880, 2170880, 1512, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 2170880, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2686976, 2748416, 2170880, 2170880, 2170880, 2924544, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3121152, 2170880, 2170880, 3145728, 3158016, 3166208, 2170880, 2420736, 2428928, 2170880, 2478080, 2170880, 2170880, 2170880, 2170880, 0, 0, 2170880, 2170880, 2170880, 2170880, 2646016, 2670592, 0, 0, 3145728, 3158016, 3166208, 2387968, 2392064, 2215936, 2215936, 2433024, 2215936, 2461696, 2215936, 2215936, 2215936, 2510848, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 0, 2170880, 2215936, 2215936, 2580480, 2215936, 2605056, 2637824, 2215936, 2215936, 2686976, 2748416, 2215936, 2215936, 2215936, 2924544, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 286, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 3121152, 2215936, 2215936, 3145728, 3158016, 3166208, 2387968, 2392064, 2170880, 2170880, 2433024, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 1625, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 647, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2576384, 2170880, 2170880, 2170880, 2170880, 2170880, 2609152, 2170880, 2170880, 2686976, 0, 0, 2748416, 2170880, 2170880, 0, 2170880, 2924544, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 0, 0, 28, 28, 2170880, 3141632, 2215936, 2420736, 2428928, 2215936, 2478080, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2215936, 2998272, 2215936, 3010560, 2215936, 2215936, 2215936, 3141632, 2170880, 2420736, 2428928, 2752512, 2756608, 0, 2846720, 2961408, 2170880, 2998272, 2170880, 3010560, 2170880, 2170880, 2170880, 3141632, 2170880, 2170880, 2490368, 2215936, 2490368, 2215936, 2215936, 2215936, 2547712, 2555904, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 245760, 0, 3129344, 2170880, 2170880, 2490368, 2170880, 2170880, 2170880, 0, 0, 2547712, 2555904, 2170880, 2170880, 2170880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 45056, 0, 2584576, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 1482, 97, 97, 97, 97, 97, 97, 97, 1354, 97, 97, 97, 97, 97, 97, 97, 97, 1148, 97, 97, 97, 97, 97, 97, 97, 2584576, 2170880, 2170880, 1512, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2441216, 2170880, 2527232, 2170880, 2600960, 2170880, 2850816, 2170880, 2170880, 2170880, 3022848, 2215936, 2441216, 2215936, 2527232, 2215936, 2600960, 2215936, 2850816, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 287, 2170880, 2215936, 3022848, 2170880, 2441216, 2170880, 2527232, 0, 0, 2170880, 2600960, 2170880, 0, 2850816, 2170880, 2170880, 2170880, 2170880, 2170880, 2523136, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2596864, 2170880, 2621440, 2170880, 2170880, 2641920, 2170880, 2170880, 2170880, 3022848, 2170880, 2519040, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2519040, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2453504, 2457600, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2514944, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2592768, 2170880, 2170880, 2519040, 0, 2024, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 2396160, 2170880, 2170880, 2170880, 2170880, 3018752, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396160, 0, 2024, 2170880, 2170880, 2170880, 2170880, 3018752, 2170880, 2650112, 2965504, 2170880, 2215936, 2650112, 2965504, 2215936, 0, 0, 2170880, 2650112, 2965504, 2170880, 2551808, 2170880, 2551808, 2215936, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 141, 45, 45, 67, 67, 67, 67, 67, 224, 67, 67, 238, 67, 67, 67, 67, 67, 67, 67, 1288, 67, 67, 67, 67, 67, 67, 67, 67, 67, 469, 67, 67, 67, 67, 67, 67, 0, 2551808, 2170880, 2170880, 2215936, 0, 2170880, 2170880, 2215936, 0, 2170880, 2170880, 2215936, 0, 2170880, 2977792, 2977792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 29, 102432, 127011, 110630, 114730, 106539, 127011, 127011, 127011, 53264, 18, 18, 49172, 0, 0, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 136, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 4256099, 4256099, 24, 24, 0, 28, 28, 2170880, 2461696, 2170880, 2170880, 2170880, 2510848, 2170880, 2170880, 0, 2170880, 2170880, 2580480, 2170880, 2605056, 2637824, 2170880, 2170880, 2170880, 2547712, 2555904, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3129344, 2215936, 2215936, 543, 543, 545, 545, 0, 0, 2179072, 0, 550, 551, 551, 0, 287, 2171166, 2171166, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 645, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 149, 2584576, 2170880, 2170880, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2441216, 2170880, 2527232, 2170880, 2600960, 2519040, 0, 0, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 2396160, 2170880, 2170880, 2170880, 2170880, 3018752, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396160, 0, 0, 2170880, 2170880, 2170880, 2170880, 3018752, 2170880, 2650112, 2965504, 53264, 18, 49172, 57366, 24, 155648, 28, 102432, 155648, 155687, 114730, 106539, 0, 0, 155648, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 0, 0, 0, 0, 2220032, 0, 94208, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 208896, 18, 278528, 24, 24, 0, 28, 28, 53264, 18, 159765, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 139394, 28, 28, 102432, 131, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 32768, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 546, 0, 0, 2183168, 0, 0, 552, 832, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2170880, 2609152, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2654208, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 1084, 0, 1088, 0, 1092, 0, 0, 0, 0, 0, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 937, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 644, 0, 0, 0, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 826, 0, 828, 0, 0, 2183168, 0, 0, 830, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2592768, 2170880, 2170880, 2170880, 2170880, 2633728, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2711552, 2170880, 2170880, 2170880, 2170880, 2170880, 2760704, 53264, 18, 49172, 57366, 24, 8192, 28, 172066, 172032, 110630, 172066, 106539, 0, 0, 172032, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 16384, 28, 28, 28, 28, 102432, 0, 98304, 0, 0, 2220032, 110630, 0, 0, 0, 0, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 45056, 0, 0, 0, 53264, 18, 49172, 57366, 25, 8192, 30, 102432, 0, 110630, 114730, 106539, 0, 0, 176219, 53264, 18, 18, 49172, 0, 57366, 0, 124, 124, 124, 0, 128, 128, 128, 128, 102432, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 0, 546, 0, 0, 2183168, 0, 65536, 552, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2170880, 2998272, 2170880, 3010560, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3198976, 2215936, 0, 0, 0, 0, 0, 0, 65536, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 143, 45, 45, 67, 67, 67, 67, 67, 227, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1824, 67, 1826, 67, 67, 67, 67, 17, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 120, 121, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 2179072, 548, 0, 65820, 65820, 0, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 2033, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 978, 0, 546, 70179, 0, 2183168, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1013, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 473, 67, 67, 67, 67, 483, 67, 67, 1025, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1119, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1359, 97, 97, 97, 67, 67, 1584, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 497, 67, 67, 1659, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1667, 45, 45, 45, 45, 45, 169, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1668, 45, 45, 45, 45, 67, 67, 1694, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 774, 67, 67, 1713, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 1723, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 1538, 45, 45, 45, 45, 45, 1559, 45, 45, 1561, 45, 45, 45, 45, 45, 45, 45, 687, 45, 45, 45, 45, 45, 45, 45, 45, 448, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1771, 1772, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 67, 67, 67, 67, 67, 1821, 67, 67, 67, 67, 67, 67, 1827, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 1614, 97, 97, 97, 97, 97, 603, 97, 97, 605, 97, 97, 608, 97, 97, 97, 97, 0, 1532, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 450, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 1839, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 1883, 97, 1885, 97, 0, 1888, 0, 97, 97, 0, 97, 97, 1848, 97, 97, 97, 97, 1852, 45, 45, 45, 45, 45, 45, 45, 384, 391, 45, 45, 45, 45, 45, 45, 45, 385, 45, 45, 45, 45, 45, 45, 45, 45, 1237, 45, 45, 45, 45, 45, 45, 67, 0, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 1951, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1963, 97, 2023, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 1994, 67, 1995, 67, 67, 67, 67, 67, 67, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 0, 0, 0, 0, 2220032, 110630, 0, 0, 0, 114730, 106539, 137, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2793472, 2805760, 2170880, 2830336, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3031040, 2170880, 3055616, 2170880, 2170880, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 281, 549, 0, 65820, 65820, 0, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 2031, 2032, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1769, 67, 0, 546, 70179, 549, 549, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1858, 45, 641, 0, 0, 0, 0, 41606, 926, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 456, 67, 0, 0, 0, 1313, 0, 0, 0, 1096, 1319, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1110, 97, 97, 97, 97, 67, 67, 67, 67, 1301, 1476, 0, 0, 0, 0, 1307, 1478, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1486, 97, 1487, 97, 1313, 1480, 0, 0, 0, 0, 1319, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 566, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1476, 0, 1478, 0, 1480, 0, 97, 97, 97, 97, 97, 97, 97, 45, 1853, 45, 1855, 45, 45, 45, 45, 53264, 18, 49172, 57366, 26, 8192, 31, 102432, 0, 110630, 114730, 106539, 0, 0, 225368, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 18, 49172, 163840, 57366, 0, 24, 24, 229376, 0, 28, 28, 28, 229376, 102432, 0, 0, 0, 0, 2220167, 110630, 0, 0, 0, 114730, 106539, 0, 2171019, 2171019, 2171019, 2171019, 2592907, 2171019, 2171019, 2171019, 2171019, 2633867, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2654347, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3117195, 2171019, 2171019, 2171019, 2171019, 2240641, 0, 0, 0, 0, 0, 0, 0, 0, 368, 0, 140, 2171019, 2171019, 2171019, 2416779, 2424971, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2617483, 2171019, 2171019, 2642059, 2171019, 2171019, 2171019, 2699403, 2171019, 2728075, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3215499, 2215936, 2215936, 2215936, 2215936, 2215936, 2437120, 2215936, 2215936, 2171019, 2822283, 2171019, 2171019, 2855051, 2171019, 2171019, 2171019, 2912395, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3002507, 2171019, 2171019, 2215936, 2215936, 2494464, 2215936, 2215936, 2215936, 2171166, 2171166, 2416926, 2425118, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2576670, 2171166, 2617630, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2691358, 2171166, 2707742, 2171166, 2715934, 2171166, 2724126, 2765086, 2171166, 2171166, 2797854, 2171166, 2822430, 2171166, 2171166, 2855198, 2171166, 2171166, 2171166, 2912542, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2793758, 2806046, 2171166, 2830622, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3109150, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2543902, 2171166, 2171166, 2171166, 2171166, 2171166, 2629918, 2793611, 2805899, 2171019, 2830475, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 0, 546, 0, 0, 2183168, 0, 0, 552, 0, 2171166, 2171166, 2171166, 2400542, 2171166, 2171166, 2171166, 0, 2171166, 2171166, 2171166, 0, 2171166, 2920734, 2171166, 2171166, 2171166, 2990366, 2171166, 2171166, 2171166, 2171166, 3117342, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 0, 53264, 0, 18, 18, 4329472, 2232445, 0, 2240641, 4337664, 2711691, 2171019, 2171019, 2171019, 2171019, 2171019, 2760843, 2769035, 2789515, 2814091, 2171019, 2171019, 2171019, 2875531, 2904203, 2171019, 2171019, 3092619, 2171019, 2171019, 3125387, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3199115, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2453504, 2457600, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2793472, 2805760, 2215936, 2830336, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2494464, 2170880, 2170880, 2171166, 2171166, 2634014, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2711838, 2171166, 2171166, 2171166, 2171166, 2171166, 2760990, 2769182, 2789662, 2814238, 2171166, 2171166, 2171166, 2875678, 2904350, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3199262, 2171166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2379915, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2445451, 2171019, 2465931, 2474123, 2171019, 2171019, 3113099, 2171019, 2171019, 3133579, 2171019, 2171019, 2171019, 3162251, 2171019, 2171019, 3182731, 3186827, 2171019, 2379776, 2879627, 2171019, 2916491, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3027083, 2171019, 2171019, 3063947, 2699550, 2171166, 2728222, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2879774, 2171166, 2916638, 2171166, 2171166, 2171166, 2171166, 2171166, 2609438, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2654494, 2171166, 2171166, 2171166, 2171166, 2171166, 2445598, 2171166, 2466078, 2474270, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2523422, 2171019, 2437259, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2543755, 2171019, 2171019, 2171019, 2584715, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2908299, 2171019, 2171019, 2936971, 2171019, 2171019, 2986123, 2171019, 2994315, 2171019, 2171019, 3014795, 2171019, 3059851, 3076235, 3088523, 2171166, 2171166, 2986270, 2171166, 2994462, 2171166, 2171166, 3014942, 2171166, 3059998, 3076382, 3088670, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3027230, 2171166, 2171166, 3064094, 2171166, 2171166, 3113246, 2171166, 2171166, 3133726, 2506891, 2171019, 2171019, 2171019, 2535563, 2539659, 2171019, 2171019, 2588811, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2691211, 2171019, 2707595, 2171019, 2715787, 2171019, 2723979, 2764939, 2171019, 2171019, 2797707, 2215936, 2215936, 3170304, 0, 0, 0, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2453790, 2457886, 2171166, 2171166, 2171166, 2486558, 2171166, 2171166, 2507038, 2171166, 2171166, 2171166, 2535710, 2539806, 2171166, 2171166, 2588958, 2171166, 2171166, 2171166, 2171166, 2515230, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2593054, 2171166, 2171166, 2171166, 2171166, 3051806, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3170590, 0, 2388107, 2392203, 2171019, 2171019, 2433163, 2171019, 2461835, 2171019, 2171019, 2171019, 2510987, 2171019, 2171019, 2171019, 2171019, 2580619, 2171019, 2605195, 2637963, 2171019, 2171019, 2171019, 2920587, 2171019, 2171019, 2171019, 2990219, 2171019, 2171019, 2171019, 2171019, 3051659, 2171019, 2171019, 2171019, 2453643, 2457739, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2515083, 2171019, 2171019, 2171019, 2171019, 2646155, 2670731, 2752651, 2756747, 2846859, 2961547, 2171019, 2998411, 2171019, 3010699, 2171019, 2171019, 2687115, 2748555, 2171019, 2171019, 2171019, 2924683, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3121291, 2171019, 2171019, 2171019, 3170443, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2486272, 2215936, 2215936, 2506752, 3145867, 3158155, 3166347, 2387968, 2392064, 2215936, 2215936, 2433024, 2215936, 2461696, 2215936, 2215936, 2215936, 2510848, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 0, 553, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 3121152, 2215936, 2215936, 3145728, 3158016, 3166208, 2388254, 2392350, 2171166, 2171166, 2433310, 2171166, 2461982, 2171166, 2171166, 2171166, 2511134, 2171166, 2171166, 0, 2171166, 2171166, 2580766, 2171166, 2605342, 2638110, 2171166, 2171166, 2171166, 2171166, 3031326, 2171166, 3055902, 2171166, 2171166, 2171166, 2171166, 3092766, 2171166, 2171166, 3125534, 2171166, 2171166, 2171166, 3162398, 2171166, 2171166, 3182878, 3186974, 2171166, 0, 0, 0, 2171019, 2171019, 2171019, 2171019, 3109003, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2215936, 2215936, 2400256, 2215936, 2215936, 2215936, 2215936, 2171166, 2687262, 0, 0, 2748702, 2171166, 2171166, 0, 2171166, 2924830, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 2597150, 2171166, 2621726, 2171166, 2171166, 2642206, 2171166, 2171166, 2171166, 2171166, 3121438, 2171166, 2171166, 3146014, 3158302, 3166494, 2171019, 2420875, 2429067, 2171019, 2478219, 2171019, 2171019, 2171019, 2171019, 2547851, 2556043, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 3129483, 2215936, 2171019, 3141771, 2215936, 2420736, 2428928, 2215936, 2478080, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2646016, 2670592, 2752512, 2756608, 2846720, 2961408, 2215936, 2998272, 2215936, 3010560, 2215936, 2215936, 2215936, 3141632, 2171166, 2421022, 2429214, 2171166, 2478366, 2171166, 2171166, 2171166, 2171166, 0, 0, 2171166, 2171166, 2171166, 2171166, 2646302, 2670878, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 0, 45, 45, 45, 45, 45, 1405, 1406, 45, 45, 45, 45, 1409, 45, 45, 45, 45, 45, 1415, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1238, 45, 45, 45, 45, 67, 2752798, 2756894, 0, 2847006, 2961694, 2171166, 2998558, 2171166, 3010846, 2171166, 2171166, 2171166, 3141918, 2171019, 2171019, 2490507, 3129344, 2171166, 2171166, 2490654, 2171166, 2171166, 2171166, 0, 0, 2547998, 2556190, 2171166, 2171166, 2171166, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 167, 45, 45, 45, 45, 185, 187, 45, 45, 198, 45, 45, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171166, 3129630, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2576523, 2171019, 2171019, 2171019, 2171019, 2171019, 2609291, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3002368, 2215936, 2215936, 2171166, 2171166, 2494750, 2171166, 2171166, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 147, 2584576, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 0, 0, 0, 2171166, 2171166, 2171166, 3002654, 2171166, 2171166, 2171019, 2171019, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2175257, 0, 0, 2584862, 2171166, 2171166, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2171019, 2441355, 2171019, 2527371, 2171019, 2601099, 2171019, 2850955, 2171019, 2171019, 2171019, 3022987, 2215936, 2441216, 2215936, 2527232, 2215936, 2600960, 2215936, 2850816, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2179072, 0, 0, 0, 0, 69632, 287, 2170880, 2215936, 3022848, 2171166, 2441502, 2171166, 2527518, 0, 0, 2171166, 2601246, 2171166, 0, 2851102, 2171166, 2171166, 2171166, 2171166, 2720030, 2744606, 2171166, 2171166, 2171166, 2834718, 2838814, 2171166, 2908446, 2171166, 2171166, 2937118, 3023134, 2171019, 2519179, 2171019, 2171019, 2171019, 2171019, 2171019, 2215936, 2519040, 2215936, 2215936, 2215936, 2215936, 2215936, 2171166, 2171166, 2171166, 3215646, 0, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2171019, 2486411, 2171019, 2171019, 2171019, 2629771, 2171019, 2171019, 2171019, 2171019, 2719883, 2744459, 2171019, 2171019, 2171019, 2834571, 2838667, 2171019, 2519326, 0, 0, 2171166, 2171166, 0, 2171166, 2171166, 2171166, 2396299, 2171019, 2171019, 2171019, 2171019, 3018891, 2396160, 2215936, 2215936, 2215936, 2215936, 3018752, 2396446, 0, 0, 2171166, 2171166, 2171166, 2171166, 3019038, 2171019, 2650251, 2965643, 2171019, 2215936, 2650112, 2965504, 2215936, 0, 0, 2171166, 2650398, 2965790, 2171166, 2551947, 2171019, 2551808, 2215936, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 144, 45, 45, 67, 67, 67, 67, 67, 228, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1929, 97, 97, 97, 97, 0, 0, 0, 2552094, 2171166, 2171019, 2215936, 0, 2171166, 2171019, 2215936, 0, 2171166, 2171019, 2215936, 0, 2171166, 2977931, 2977792, 2978078, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 1321, 97, 131072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 140, 0, 2379776, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2445312, 2170880, 2465792, 2473984, 2170880, 2170880, 2170880, 2584576, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2170880, 2170880, 2170880, 3162112, 2170880, 2170880, 3182592, 3186688, 2170880, 0, 140, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3002368, 2170880, 2170880, 2215936, 2215936, 2494464, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 3215360, 544, 0, 0, 0, 544, 0, 546, 0, 0, 0, 546, 0, 0, 2183168, 0, 0, 552, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 0, 2170880, 2170880, 2170880, 0, 2170880, 2920448, 2170880, 2170880, 2170880, 2990080, 2170880, 2170880, 552, 0, 0, 0, 552, 0, 287, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2437120, 2170880, 2170880, 18, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 644, 0, 2215936, 2215936, 3170304, 544, 0, 546, 0, 552, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 0, 140, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 249856, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 151640, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2416640, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 253952, 110630, 114730, 106539, 0, 0, 32856, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 192512, 53264, 18, 18, 49172, 0, 57366, 0, 2232445, 184320, 2232445, 0, 2240641, 2240641, 184320, 2240641, 102432, 0, 0, 0, 221184, 2220032, 110630, 0, 0, 0, 114730, 106539, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3108864, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2215936, 0, 0, 0, 45056, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 0, 53264, 0, 18, 18, 24, 24, 0, 127, 127, 53264, 18, 49172, 258071, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 32768, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 204800, 53264, 18, 49172, 57366, 24, 27, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 33, 0, 33, 33, 33, 0, 0, 0, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 16384, 28, 28, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 2170880, 2170880, 2170880, 2416640, 67, 67, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 2030, 45, 45, 45, 45, 67, 1573, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1699, 67, 67, 67, 67, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1355, 97, 97, 97, 1358, 97, 97, 97, 641, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 1187, 45, 45, 45, 45, 45, 0, 1480, 0, 0, 0, 0, 1319, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 592, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1531, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1680, 45, 45, 45, 641, 0, 924, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1186, 45, 45, 45, 45, 45, 45, 67, 67, 37139, 37139, 24853, 24853, 0, 70179, 282, 0, 0, 65820, 65820, 369, 287, 97, 0, 0, 97, 97, 0, 97, 2028, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1767, 67, 67, 67, 0, 0, 0, 0, 0, 0, 1612, 97, 97, 97, 97, 97, 97, 0, 1785, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1790, 97, 0, 0, 2170880, 2170880, 3051520, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3170304, 241664, 2387968, 2392064, 2170880, 2170880, 2433024, 53264, 19, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 274432, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 270336, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 1134711, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 1126440, 1126440, 1126440, 0, 0, 1126400, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 36, 110630, 114730, 106539, 0, 0, 217088, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 94, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 96, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 24666, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 126, 28, 28, 28, 28, 102432, 53264, 122, 123, 49172, 0, 57366, 0, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 2170880, 2170880, 4256099, 0, 0, 0, 0, 0, 0, 0, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 1319, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1109, 97, 97, 97, 97, 1113, 132, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 146, 150, 45, 45, 45, 45, 45, 175, 45, 180, 45, 186, 45, 189, 45, 45, 203, 67, 256, 67, 67, 270, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 293, 297, 97, 97, 97, 97, 97, 322, 97, 327, 97, 333, 97, 0, 0, 97, 2026, 0, 2027, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1685, 67, 67, 67, 67, 67, 67, 67, 1690, 67, 336, 97, 97, 350, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 2424832, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2617344, 2170880, 45, 439, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 525, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 622, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1524, 97, 97, 1527, 369, 648, 45, 45, 45, 45, 45, 45, 45, 45, 45, 659, 45, 45, 45, 45, 408, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1239, 45, 45, 45, 67, 729, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 762, 67, 746, 67, 67, 67, 67, 67, 67, 67, 67, 67, 759, 67, 67, 67, 67, 0, 0, 0, 1477, 0, 1086, 0, 0, 0, 1479, 0, 1090, 67, 67, 796, 67, 67, 799, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1291, 67, 67, 67, 811, 67, 67, 67, 67, 67, 816, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 833, 97, 97, 97, 97, 97, 97, 97, 97, 1380, 0, 0, 0, 45, 45, 45, 45, 45, 1185, 45, 45, 45, 45, 45, 45, 45, 386, 45, 45, 45, 45, 45, 45, 45, 45, 1810, 45, 45, 45, 45, 45, 45, 67, 97, 97, 844, 97, 97, 97, 97, 97, 97, 97, 97, 97, 857, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 97, 97, 97, 894, 97, 97, 897, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1382, 45, 45, 45, 97, 909, 97, 97, 97, 97, 97, 914, 97, 97, 97, 97, 97, 97, 97, 923, 67, 67, 1079, 67, 67, 67, 67, 67, 37689, 1085, 25403, 1089, 66365, 1093, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 148, 1114, 97, 97, 97, 97, 97, 97, 1122, 97, 97, 97, 97, 97, 97, 97, 97, 97, 606, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1173, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 145, 45, 45, 67, 67, 67, 67, 67, 1762, 67, 67, 67, 1766, 67, 67, 67, 67, 67, 67, 528, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 1934, 67, 67, 1255, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1035, 67, 67, 67, 67, 67, 67, 1297, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1111, 97, 97, 97, 97, 97, 97, 1327, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 33344, 97, 97, 97, 1335, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 1377, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 670, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 430, 45, 45, 45, 45, 67, 67, 1438, 67, 67, 1442, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1592, 67, 67, 67, 1451, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1458, 67, 67, 67, 67, 0, 0, 1305, 0, 0, 0, 0, 0, 1311, 0, 0, 0, 1317, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1322, 97, 97, 1491, 97, 97, 1495, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1551, 45, 1553, 45, 1504, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1513, 97, 97, 97, 97, 0, 45, 45, 45, 45, 1536, 45, 45, 45, 45, 1540, 45, 67, 67, 67, 67, 67, 1585, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1700, 67, 67, 67, 97, 1648, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1541, 0, 97, 97, 97, 97, 0, 1940, 0, 97, 97, 97, 97, 97, 97, 45, 45, 2011, 45, 45, 45, 2015, 67, 67, 2017, 67, 67, 67, 2021, 97, 67, 67, 812, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 97, 97, 97, 910, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 923, 0, 0, 0, 45, 45, 45, 45, 1184, 45, 45, 45, 45, 1188, 45, 45, 45, 45, 1414, 45, 45, 45, 1417, 45, 1419, 45, 45, 45, 45, 45, 443, 45, 45, 45, 45, 45, 45, 453, 45, 45, 67, 67, 67, 67, 1244, 67, 67, 67, 67, 1248, 67, 67, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 282, 41098, 65820, 97, 1324, 97, 97, 97, 97, 1328, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 930, 45, 45, 45, 45, 97, 97, 97, 97, 1378, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 975, 45, 45, 45, 45, 67, 67, 1923, 67, 1925, 67, 67, 1927, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1985, 45, 45, 45, 45, 45, 45, 1560, 45, 45, 45, 45, 45, 45, 45, 45, 45, 946, 45, 45, 950, 45, 45, 45, 0, 97, 97, 97, 1939, 0, 0, 0, 97, 1943, 97, 97, 1945, 97, 45, 45, 45, 669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 990, 45, 45, 45, 67, 257, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 337, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 370, 2170880, 2170880, 2170880, 2416640, 401, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 459, 461, 67, 67, 67, 67, 67, 67, 67, 67, 475, 67, 480, 67, 67, 67, 67, 67, 67, 1054, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1698, 67, 67, 67, 67, 67, 484, 67, 67, 487, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1459, 67, 67, 97, 556, 558, 97, 97, 97, 97, 97, 97, 97, 97, 572, 97, 577, 97, 97, 0, 0, 1896, 97, 97, 97, 97, 97, 97, 1903, 45, 45, 45, 45, 983, 45, 45, 45, 45, 988, 45, 45, 45, 45, 45, 45, 1195, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1549, 45, 45, 45, 45, 45, 581, 97, 97, 584, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1153, 97, 97, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 662, 45, 45, 45, 684, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1004, 45, 45, 45, 67, 67, 67, 749, 67, 67, 67, 67, 67, 67, 67, 67, 67, 761, 67, 67, 67, 67, 67, 67, 1068, 67, 67, 67, 1071, 67, 67, 67, 67, 1076, 794, 795, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 544, 97, 97, 97, 97, 847, 97, 97, 97, 97, 97, 97, 97, 97, 97, 859, 97, 0, 0, 2025, 97, 20480, 97, 97, 2029, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1575, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1775, 67, 67, 67, 97, 97, 97, 97, 892, 893, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1515, 97, 993, 994, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 992, 67, 67, 67, 1284, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1607, 67, 67, 97, 1364, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 596, 97, 45, 1556, 1557, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 696, 45, 1596, 1597, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 499, 67, 97, 97, 97, 1621, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1346, 97, 97, 97, 97, 1740, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1678, 45, 45, 45, 45, 45, 67, 97, 97, 97, 97, 97, 97, 1836, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1984, 97, 45, 45, 45, 45, 45, 45, 1808, 45, 45, 45, 45, 45, 45, 45, 45, 67, 739, 67, 67, 67, 67, 67, 744, 45, 45, 1909, 45, 45, 45, 45, 45, 45, 45, 67, 1917, 67, 1918, 67, 67, 67, 67, 67, 67, 1247, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 532, 67, 67, 67, 67, 67, 67, 1922, 67, 67, 67, 67, 67, 67, 67, 97, 1930, 97, 1931, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1576, 67, 67, 67, 67, 1580, 67, 67, 0, 97, 97, 1938, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 699, 45, 45, 45, 704, 45, 45, 45, 45, 45, 45, 45, 45, 987, 45, 45, 45, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 97, 2006, 97, 97, 97, 97, 0, 45, 1533, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1416, 45, 45, 45, 45, 45, 45, 45, 45, 722, 723, 45, 45, 45, 45, 45, 45, 2045, 67, 67, 67, 2047, 0, 0, 97, 97, 97, 2051, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 409, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1957, 45, 67, 67, 67, 67, 67, 1836, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 67, 67, 1761, 67, 67, 67, 1764, 67, 67, 67, 67, 67, 67, 67, 494, 67, 67, 67, 67, 67, 67, 67, 67, 67, 787, 67, 67, 67, 67, 67, 67, 45, 45, 420, 45, 45, 422, 45, 45, 425, 45, 45, 45, 45, 45, 45, 45, 387, 45, 45, 45, 45, 397, 45, 45, 45, 67, 460, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 515, 67, 485, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 498, 67, 67, 67, 67, 67, 97, 0, 2039, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1426, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1689, 67, 67, 67, 97, 557, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 612, 97, 582, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 595, 97, 97, 97, 97, 97, 896, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 885, 97, 97, 97, 97, 97, 45, 939, 45, 45, 45, 45, 943, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1916, 67, 67, 67, 67, 67, 45, 67, 67, 67, 67, 67, 67, 67, 1015, 67, 67, 67, 67, 1019, 67, 67, 67, 67, 67, 67, 1271, 67, 67, 67, 67, 67, 67, 1277, 67, 67, 67, 67, 67, 67, 1287, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 804, 67, 67, 67, 67, 67, 1077, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2437120, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2543616, 2170880, 2170880, 2170880, 2170880, 2170880, 2629632, 1169, 97, 1171, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 936, 45, 45, 67, 67, 214, 67, 220, 67, 67, 233, 67, 243, 67, 248, 67, 67, 67, 67, 67, 67, 1298, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1617, 97, 0, 0, 0, 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 393, 45, 45, 45, 45, 45, 45, 67, 67, 1243, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1074, 67, 67, 1281, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 776, 1323, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 907, 45, 1412, 45, 45, 45, 45, 45, 45, 45, 1418, 45, 45, 45, 45, 45, 45, 686, 45, 45, 45, 690, 45, 45, 695, 45, 45, 67, 67, 67, 67, 67, 1465, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1712, 97, 97, 97, 97, 1741, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 426, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1924, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1983, 97, 97, 45, 45, 1987, 45, 1988, 45, 0, 97, 97, 97, 97, 0, 0, 0, 1942, 97, 97, 97, 97, 97, 45, 45, 45, 700, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 711, 45, 45, 153, 45, 45, 166, 45, 176, 45, 181, 45, 45, 188, 191, 196, 45, 204, 255, 258, 263, 67, 271, 67, 67, 0, 37139, 24853, 0, 0, 0, 282, 41098, 65820, 97, 97, 97, 294, 97, 300, 97, 97, 313, 97, 323, 97, 328, 97, 97, 335, 338, 343, 97, 351, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 0, 0, 0, 0, 0, 0, 0, 0, 41098, 0, 140, 45, 45, 45, 45, 1404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1411, 67, 67, 486, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1251, 67, 67, 501, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 513, 67, 67, 67, 67, 67, 67, 1443, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1263, 67, 67, 67, 67, 67, 97, 97, 583, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1526, 97, 598, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 610, 97, 97, 0, 97, 97, 1796, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1744, 45, 45, 45, 369, 0, 651, 45, 653, 45, 654, 45, 656, 45, 45, 45, 660, 45, 45, 45, 45, 1558, 45, 45, 45, 45, 45, 45, 45, 45, 1566, 45, 45, 681, 45, 683, 45, 45, 45, 45, 45, 45, 45, 45, 691, 692, 694, 45, 45, 45, 716, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 709, 45, 45, 712, 45, 714, 45, 45, 45, 718, 45, 45, 45, 45, 45, 45, 45, 726, 45, 45, 45, 733, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1691, 67, 67, 747, 67, 67, 67, 67, 67, 67, 67, 67, 67, 760, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 1613, 97, 97, 97, 97, 97, 97, 1509, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 67, 764, 67, 67, 67, 67, 768, 67, 770, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 1977, 67, 778, 779, 781, 67, 67, 67, 67, 67, 67, 788, 789, 67, 67, 792, 793, 67, 67, 67, 813, 67, 67, 67, 67, 67, 67, 67, 67, 67, 824, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 836, 97, 838, 97, 839, 97, 841, 97, 97, 97, 845, 97, 97, 97, 97, 97, 97, 97, 97, 97, 858, 97, 97, 0, 1728, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 1802, 45, 97, 97, 862, 97, 97, 97, 97, 866, 97, 868, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1788, 97, 97, 97, 0, 0, 97, 97, 876, 877, 879, 97, 97, 97, 97, 97, 97, 886, 887, 97, 97, 890, 891, 97, 97, 97, 97, 97, 97, 97, 899, 97, 97, 97, 903, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1646, 97, 97, 97, 97, 911, 97, 97, 97, 97, 97, 97, 97, 97, 97, 922, 923, 45, 955, 45, 957, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 195, 45, 45, 45, 45, 45, 981, 982, 45, 45, 45, 45, 45, 45, 989, 45, 45, 45, 45, 45, 170, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 411, 45, 45, 45, 45, 45, 67, 1023, 67, 67, 67, 67, 67, 67, 1031, 67, 1033, 67, 67, 67, 67, 67, 67, 67, 817, 819, 67, 67, 67, 67, 67, 37689, 544, 67, 1065, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 516, 67, 67, 1078, 67, 67, 1081, 1082, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 0, 2171166, 2171166, 2171166, 2171166, 2171166, 2437406, 2171166, 2171166, 97, 1115, 97, 1117, 97, 97, 97, 97, 97, 97, 1125, 97, 1127, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 1644, 97, 97, 97, 0, 97, 97, 97, 0, 97, 97, 1642, 97, 97, 97, 97, 97, 97, 625, 97, 97, 97, 97, 97, 97, 97, 97, 97, 316, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1159, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1502, 97, 97, 97, 97, 97, 1172, 97, 97, 1175, 1176, 97, 97, 12288, 0, 925, 0, 1179, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 45, 935, 45, 45, 45, 1233, 45, 45, 45, 1236, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1873, 67, 67, 45, 45, 1218, 45, 45, 45, 1223, 45, 45, 45, 45, 45, 45, 45, 1230, 45, 45, 67, 67, 215, 219, 222, 67, 230, 67, 67, 244, 246, 249, 67, 67, 67, 67, 67, 67, 1882, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 1904, 45, 1905, 45, 67, 67, 67, 67, 67, 1258, 67, 1260, 67, 67, 67, 67, 67, 67, 67, 67, 67, 495, 67, 67, 67, 67, 67, 67, 67, 67, 1283, 67, 67, 67, 67, 67, 67, 67, 1290, 67, 67, 67, 67, 67, 67, 67, 818, 67, 67, 67, 67, 67, 67, 37689, 544, 67, 67, 1295, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2174976, 0, 0, 97, 97, 97, 1326, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1514, 97, 97, 97, 97, 97, 1338, 97, 1340, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1500, 97, 97, 1503, 97, 1363, 97, 97, 97, 97, 97, 97, 97, 1370, 97, 97, 97, 97, 97, 97, 97, 563, 97, 97, 97, 97, 97, 97, 578, 97, 1375, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1179, 0, 45, 45, 45, 45, 685, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1003, 45, 45, 45, 45, 67, 67, 67, 1463, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1778, 97, 97, 97, 97, 97, 1518, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 609, 97, 97, 97, 45, 1542, 45, 45, 45, 45, 45, 45, 45, 1548, 45, 45, 45, 45, 45, 1554, 45, 1570, 1571, 45, 67, 67, 67, 67, 67, 67, 1578, 67, 67, 67, 67, 67, 67, 67, 1055, 67, 67, 67, 67, 67, 1061, 67, 67, 1582, 67, 67, 67, 67, 67, 67, 67, 1588, 67, 67, 67, 67, 67, 1594, 67, 67, 67, 67, 67, 97, 2038, 0, 97, 97, 97, 97, 97, 2044, 45, 45, 45, 995, 45, 45, 45, 45, 1000, 45, 45, 45, 45, 45, 45, 45, 1809, 45, 1811, 45, 45, 45, 45, 45, 67, 1610, 1611, 67, 1476, 0, 1478, 0, 1480, 0, 97, 97, 97, 97, 97, 97, 1618, 1647, 1649, 97, 97, 97, 1652, 97, 1654, 1655, 97, 0, 45, 45, 45, 1658, 45, 45, 67, 67, 216, 67, 67, 67, 67, 234, 67, 67, 67, 67, 252, 254, 1845, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 945, 45, 947, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1881, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 1902, 45, 45, 45, 45, 45, 45, 1908, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1921, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 0, 97, 1937, 97, 97, 1940, 0, 0, 97, 97, 97, 97, 97, 97, 1947, 1948, 1949, 45, 45, 45, 1952, 45, 1954, 45, 45, 45, 45, 1959, 1960, 1961, 67, 67, 67, 67, 67, 67, 1455, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 757, 67, 67, 67, 67, 67, 67, 1964, 67, 1966, 67, 67, 67, 67, 1971, 1972, 1973, 97, 0, 0, 0, 97, 97, 1104, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 884, 97, 97, 97, 889, 97, 97, 1978, 97, 0, 0, 1981, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 736, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1018, 67, 67, 67, 45, 67, 67, 67, 67, 0, 2049, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 933, 45, 45, 45, 45, 1234, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 97, 97, 288, 97, 97, 97, 97, 97, 97, 317, 97, 97, 97, 97, 97, 97, 0, 0, 97, 1787, 97, 97, 97, 97, 0, 0, 45, 45, 378, 45, 45, 45, 45, 45, 390, 45, 45, 45, 45, 45, 45, 45, 424, 45, 45, 45, 431, 433, 45, 45, 45, 67, 1050, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 518, 67, 97, 97, 97, 1144, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 632, 97, 97, 97, 97, 97, 97, 97, 1367, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 855, 97, 97, 97, 97, 67, 97, 97, 97, 97, 97, 97, 1837, 0, 97, 97, 97, 97, 97, 0, 0, 0, 1897, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1208, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 724, 45, 45, 45, 45, 45, 97, 2010, 45, 45, 45, 45, 45, 45, 2016, 67, 67, 67, 67, 67, 67, 2022, 45, 2046, 67, 67, 67, 0, 0, 2050, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 0, 932, 45, 45, 45, 45, 45, 1222, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1227, 45, 45, 45, 45, 45, 133, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 701, 702, 45, 45, 705, 706, 45, 45, 45, 45, 45, 45, 703, 45, 45, 45, 45, 45, 45, 45, 45, 45, 719, 45, 45, 45, 45, 45, 725, 45, 45, 45, 369, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1216, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 834, 97, 97, 97, 97, 97, 97, 97, 1342, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1799, 97, 97, 45, 45, 45, 1569, 45, 45, 45, 1572, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 1306, 0, 67, 67, 67, 1598, 67, 67, 67, 67, 67, 67, 67, 67, 1606, 67, 67, 1609, 97, 97, 97, 1650, 97, 97, 1653, 97, 97, 97, 0, 45, 45, 1657, 45, 45, 45, 1206, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1421, 45, 45, 45, 1703, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 1711, 97, 97, 0, 1895, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 958, 45, 960, 45, 45, 45, 45, 45, 45, 45, 45, 1913, 45, 45, 1915, 67, 67, 67, 67, 67, 67, 67, 466, 67, 67, 67, 67, 67, 67, 481, 67, 45, 1749, 45, 45, 45, 45, 45, 45, 45, 45, 1755, 45, 45, 45, 45, 45, 173, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 974, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1773, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1886, 0, 0, 0, 97, 97, 67, 2035, 2036, 67, 67, 97, 0, 0, 97, 2041, 2042, 97, 97, 45, 45, 45, 45, 1662, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1397, 45, 45, 45, 45, 151, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 437, 205, 45, 67, 67, 67, 218, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1047, 67, 67, 67, 67, 97, 97, 97, 97, 298, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 870, 97, 97, 97, 97, 97, 97, 97, 97, 352, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 0, 0, 0, 0, 0, 365, 0, 41098, 0, 140, 45, 45, 45, 45, 45, 1427, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1435, 520, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1037, 617, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 923, 45, 1232, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1919, 67, 1759, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1021, 45, 154, 45, 162, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 964, 45, 45, 45, 206, 45, 67, 67, 67, 67, 221, 67, 229, 67, 67, 67, 67, 67, 67, 67, 67, 530, 67, 67, 67, 67, 67, 67, 67, 67, 755, 67, 67, 67, 67, 67, 67, 67, 67, 785, 67, 67, 67, 67, 67, 67, 67, 67, 802, 67, 67, 67, 807, 67, 67, 67, 97, 97, 97, 97, 353, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 0, 0, 0, 0, 0, 366, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 402, 45, 45, 45, 45, 45, 45, 45, 410, 45, 45, 45, 45, 45, 45, 45, 674, 45, 45, 45, 45, 45, 45, 45, 45, 389, 45, 394, 45, 45, 398, 45, 45, 45, 45, 441, 45, 45, 45, 45, 45, 447, 45, 45, 45, 454, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1768, 67, 67, 67, 67, 67, 488, 67, 67, 67, 67, 67, 67, 67, 496, 67, 67, 67, 67, 67, 67, 67, 1774, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 67, 67, 523, 67, 67, 527, 67, 67, 67, 67, 67, 533, 67, 67, 67, 540, 97, 97, 97, 585, 97, 97, 97, 97, 97, 97, 97, 593, 97, 97, 97, 97, 97, 97, 1784, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 0, 18, 18, 24, 24, 0, 28, 28, 97, 97, 620, 97, 97, 624, 97, 97, 97, 97, 97, 630, 97, 97, 97, 637, 713, 45, 45, 45, 45, 45, 45, 721, 45, 45, 45, 45, 45, 45, 45, 45, 1197, 45, 45, 45, 45, 45, 45, 45, 45, 730, 732, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1581, 67, 45, 67, 67, 67, 67, 1012, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1059, 67, 67, 67, 67, 67, 1024, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 775, 67, 67, 67, 67, 1066, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 479, 67, 67, 67, 67, 67, 67, 1080, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 0, 0, 0, 0, 287, 0, 0, 0, 287, 0, 2379776, 2170880, 2170880, 97, 97, 97, 1118, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 920, 97, 97, 0, 0, 0, 0, 45, 1181, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 432, 45, 45, 45, 45, 45, 45, 1219, 45, 45, 45, 45, 45, 45, 1226, 45, 45, 45, 45, 45, 45, 959, 45, 45, 45, 45, 45, 45, 45, 45, 45, 184, 45, 45, 45, 45, 202, 45, 1241, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1266, 67, 1268, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1279, 67, 67, 67, 67, 67, 272, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 67, 67, 67, 1286, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1293, 67, 67, 67, 1296, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 281, 94, 0, 0, 97, 97, 97, 1366, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1373, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 0, 97, 1376, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 1384, 45, 45, 67, 208, 67, 67, 67, 67, 67, 67, 237, 67, 67, 67, 67, 67, 67, 67, 1069, 1070, 67, 67, 67, 67, 67, 67, 67, 0, 37140, 24854, 0, 0, 0, 0, 41098, 65821, 45, 1423, 45, 45, 45, 45, 45, 45, 67, 67, 1431, 67, 67, 67, 67, 67, 67, 67, 1083, 37689, 0, 25403, 0, 66365, 0, 0, 0, 1436, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1830, 67, 1452, 1453, 67, 67, 67, 67, 1456, 67, 67, 67, 67, 67, 67, 67, 67, 67, 771, 67, 67, 67, 67, 67, 67, 1461, 67, 67, 67, 1464, 67, 1466, 67, 67, 67, 67, 67, 67, 1470, 67, 67, 67, 67, 67, 67, 1587, 67, 67, 67, 67, 67, 67, 67, 67, 1595, 1489, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1129, 97, 1505, 1506, 97, 97, 97, 97, 1510, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1163, 1164, 97, 97, 97, 97, 97, 1516, 97, 97, 97, 1519, 97, 1521, 97, 97, 97, 97, 97, 97, 1525, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 67, 67, 67, 67, 67, 1586, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1276, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1600, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1301, 0, 0, 0, 1307, 97, 97, 1620, 97, 97, 97, 97, 97, 97, 97, 1627, 97, 97, 97, 97, 97, 97, 913, 97, 97, 97, 97, 919, 97, 97, 97, 0, 97, 97, 97, 1781, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 1792, 1860, 45, 1862, 1863, 45, 1865, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1875, 67, 1877, 1878, 67, 1880, 67, 97, 97, 97, 97, 97, 1887, 0, 1889, 97, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 237568, 0, 367, 0, 97, 1893, 0, 0, 0, 97, 1898, 1899, 97, 1901, 97, 45, 45, 45, 45, 45, 2014, 45, 67, 67, 67, 67, 67, 2020, 67, 97, 1989, 45, 1990, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1996, 67, 1997, 67, 67, 67, 67, 67, 273, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 97, 97, 97, 97, 0, 0, 97, 97, 2005, 0, 97, 2007, 97, 97, 18, 0, 139621, 0, 0, 0, 642, 0, 133, 364, 0, 0, 367, 41606, 0, 97, 97, 2056, 2057, 0, 2059, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 209, 67, 67, 67, 223, 67, 67, 67, 67, 67, 67, 67, 67, 67, 786, 67, 67, 67, 791, 67, 67, 45, 45, 940, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 727, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1016, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 0, 133, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 142, 45, 45, 67, 210, 67, 67, 67, 225, 67, 67, 239, 67, 67, 67, 250, 67, 67, 67, 67, 67, 464, 67, 67, 67, 67, 67, 476, 67, 67, 67, 67, 67, 67, 67, 1709, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 1843, 0, 67, 259, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 289, 97, 97, 97, 303, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 901, 97, 97, 97, 97, 97, 339, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 0, 358, 0, 0, 0, 0, 0, 0, 41098, 0, 140, 45, 45, 45, 45, 45, 1953, 45, 1955, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1687, 1688, 67, 67, 67, 67, 45, 45, 405, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1203, 45, 458, 67, 67, 67, 67, 67, 67, 67, 67, 67, 470, 477, 67, 67, 67, 67, 67, 67, 67, 1970, 97, 97, 97, 1974, 0, 0, 0, 97, 1103, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1372, 97, 97, 97, 97, 67, 522, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 536, 67, 67, 67, 67, 67, 67, 1696, 67, 67, 67, 67, 67, 67, 67, 1701, 67, 555, 97, 97, 97, 97, 97, 97, 97, 97, 97, 567, 574, 97, 97, 97, 97, 97, 301, 97, 309, 97, 97, 97, 97, 97, 97, 97, 97, 97, 900, 97, 97, 97, 905, 97, 97, 97, 619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 633, 97, 97, 18, 0, 139621, 0, 0, 362, 0, 0, 0, 364, 0, 0, 367, 41606, 369, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 663, 664, 67, 67, 67, 67, 750, 751, 67, 67, 67, 67, 758, 67, 67, 67, 67, 67, 67, 67, 1272, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1057, 1058, 67, 67, 67, 67, 67, 67, 67, 67, 797, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 512, 67, 67, 67, 97, 97, 97, 97, 895, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 902, 97, 97, 97, 97, 67, 67, 1051, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1062, 67, 67, 67, 67, 67, 491, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1302, 0, 0, 0, 1308, 97, 97, 97, 97, 1145, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1139, 97, 97, 97, 97, 1156, 97, 97, 97, 97, 97, 97, 1161, 97, 97, 97, 97, 97, 1166, 97, 97, 18, 640, 139621, 0, 641, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 67, 67, 67, 67, 1257, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 1305, 0, 0, 97, 97, 1337, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1630, 97, 67, 1474, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2380062, 2171166, 2171166, 97, 1529, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1228, 45, 45, 45, 45, 67, 67, 67, 67, 1707, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1891, 1739, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1198, 45, 1200, 45, 45, 45, 45, 97, 97, 1894, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 672, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1420, 45, 45, 45, 45, 67, 67, 1965, 67, 1967, 67, 67, 67, 97, 97, 97, 97, 0, 1976, 0, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 97, 97, 1979, 0, 0, 97, 1982, 97, 97, 97, 1986, 45, 45, 45, 45, 45, 735, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1770, 67, 67, 2000, 97, 97, 97, 2002, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1798, 97, 97, 97, 45, 45, 45, 2034, 67, 67, 67, 67, 97, 0, 0, 2040, 97, 97, 97, 97, 45, 45, 45, 45, 1752, 45, 45, 45, 1753, 1754, 45, 45, 45, 45, 45, 45, 383, 45, 45, 45, 45, 45, 45, 45, 45, 45, 675, 45, 45, 45, 45, 45, 45, 438, 45, 45, 45, 45, 45, 445, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1430, 67, 67, 67, 67, 67, 67, 67, 67, 67, 524, 67, 67, 67, 67, 67, 531, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 1096, 97, 97, 97, 621, 97, 97, 97, 97, 97, 628, 97, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 356, 28, 28, 665, 45, 45, 45, 45, 45, 45, 45, 45, 45, 676, 45, 45, 45, 45, 45, 942, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 707, 708, 45, 45, 45, 45, 763, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 809, 810, 67, 67, 67, 67, 783, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 1303, 0, 0, 0, 97, 861, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 613, 97, 45, 45, 956, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1215, 45, 67, 67, 67, 67, 1027, 67, 67, 67, 67, 1032, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 0, 25403, 0, 66365, 0, 0, 1097, 1064, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1075, 67, 1098, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 331, 97, 97, 97, 97, 1158, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 594, 97, 97, 1309, 0, 0, 0, 1315, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1374, 97, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1240, 67, 67, 1583, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1252, 67, 97, 97, 97, 1635, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1800, 97, 45, 45, 45, 97, 97, 1793, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1743, 45, 45, 45, 1746, 45, 0, 97, 97, 97, 97, 97, 1851, 97, 45, 45, 45, 45, 1856, 45, 45, 45, 45, 1864, 45, 45, 67, 67, 1869, 67, 67, 67, 67, 1874, 67, 0, 97, 97, 45, 67, 2058, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 45, 67, 211, 67, 67, 67, 67, 67, 67, 240, 67, 67, 67, 67, 67, 67, 67, 1444, 67, 67, 67, 67, 67, 67, 67, 67, 67, 509, 67, 67, 67, 67, 67, 67, 67, 67, 67, 268, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 290, 97, 97, 97, 305, 97, 97, 319, 97, 97, 97, 330, 97, 97, 18, 640, 139621, 0, 641, 0, 0, 0, 0, 364, 0, 643, 367, 41606, 97, 97, 348, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 380, 45, 45, 45, 45, 45, 45, 395, 45, 45, 45, 400, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 658, 45, 45, 45, 45, 45, 972, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 427, 45, 45, 45, 45, 45, 745, 67, 67, 67, 67, 67, 67, 67, 67, 756, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 1086, 25403, 1090, 66365, 1094, 0, 0, 97, 843, 97, 97, 97, 97, 97, 97, 97, 97, 854, 97, 97, 97, 97, 97, 97, 1121, 97, 97, 97, 97, 1126, 97, 97, 97, 97, 45, 980, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1400, 45, 67, 67, 67, 1011, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 1304, 0, 0, 0, 1190, 45, 45, 1193, 1194, 45, 45, 45, 45, 45, 1199, 45, 1201, 45, 45, 45, 45, 1911, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1579, 67, 67, 67, 67, 45, 1205, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 45, 45, 984, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1550, 45, 45, 45, 45, 45, 1217, 45, 45, 45, 45, 45, 45, 1225, 45, 45, 45, 45, 1229, 45, 45, 45, 1388, 45, 45, 45, 45, 45, 45, 1396, 45, 45, 45, 45, 45, 444, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1574, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1590, 67, 67, 67, 67, 67, 1254, 67, 67, 67, 67, 67, 1259, 67, 1261, 67, 67, 67, 67, 1265, 67, 67, 67, 67, 67, 67, 1708, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 67, 67, 67, 67, 1285, 67, 67, 67, 67, 1289, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 1087, 25403, 1091, 66365, 1095, 0, 0, 97, 97, 97, 97, 1339, 97, 1341, 97, 97, 97, 97, 1345, 97, 97, 97, 97, 97, 561, 97, 97, 97, 97, 97, 573, 97, 97, 97, 97, 97, 97, 1717, 97, 0, 97, 97, 97, 97, 97, 97, 97, 591, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1329, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1351, 97, 97, 97, 97, 97, 97, 1357, 97, 97, 97, 97, 97, 588, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 568, 97, 97, 97, 97, 97, 97, 97, 1365, 97, 97, 97, 97, 1369, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1356, 97, 97, 97, 97, 97, 97, 45, 45, 1403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1399, 45, 45, 45, 1413, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1669, 45, 1422, 45, 45, 1425, 45, 45, 1428, 45, 1429, 67, 67, 67, 67, 67, 67, 67, 67, 1468, 67, 67, 67, 67, 67, 67, 67, 67, 529, 67, 67, 67, 67, 67, 67, 539, 67, 67, 1475, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 140, 2170880, 2170880, 2170880, 2416640, 97, 97, 1530, 97, 0, 45, 45, 1534, 45, 45, 45, 45, 45, 45, 45, 45, 1956, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1599, 67, 67, 1601, 67, 67, 67, 67, 67, 67, 67, 67, 67, 803, 67, 67, 67, 67, 67, 67, 1632, 97, 1634, 0, 97, 97, 97, 1640, 97, 97, 97, 1643, 97, 97, 1645, 97, 97, 97, 97, 97, 912, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1660, 1661, 45, 45, 45, 45, 1665, 1666, 45, 45, 45, 45, 45, 1670, 1692, 1693, 67, 67, 67, 67, 67, 1697, 67, 67, 67, 67, 67, 67, 67, 1702, 97, 97, 1714, 1715, 97, 97, 97, 97, 0, 1721, 1722, 97, 97, 97, 97, 97, 97, 1353, 97, 97, 97, 97, 97, 97, 97, 97, 1362, 1726, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 1734, 97, 97, 97, 97, 97, 848, 849, 97, 97, 97, 97, 856, 97, 97, 97, 97, 97, 354, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 45, 45, 1750, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1681, 45, 0, 1846, 97, 97, 97, 97, 97, 97, 45, 45, 1854, 45, 45, 45, 45, 1859, 67, 67, 67, 1879, 67, 67, 97, 97, 1884, 97, 97, 0, 0, 0, 97, 97, 97, 1105, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1344, 97, 97, 97, 1347, 97, 1892, 97, 0, 0, 0, 97, 97, 97, 1900, 97, 97, 45, 45, 45, 45, 45, 997, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1002, 45, 45, 1005, 1006, 45, 67, 67, 67, 67, 67, 1926, 67, 67, 1928, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1737, 97, 0, 97, 97, 97, 97, 0, 0, 0, 97, 97, 1944, 97, 97, 1946, 45, 45, 45, 1544, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 190, 45, 45, 45, 152, 155, 45, 163, 45, 45, 177, 179, 182, 45, 45, 45, 193, 197, 45, 45, 45, 1672, 45, 45, 45, 45, 45, 1677, 45, 1679, 45, 45, 45, 45, 996, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1212, 45, 45, 45, 45, 67, 260, 264, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 295, 299, 302, 97, 310, 97, 97, 324, 326, 329, 97, 97, 97, 0, 97, 97, 1639, 0, 1641, 97, 97, 97, 97, 97, 97, 97, 97, 1511, 97, 97, 97, 97, 97, 97, 97, 97, 1523, 97, 97, 97, 97, 97, 97, 97, 97, 1719, 97, 97, 97, 97, 97, 97, 97, 97, 1720, 97, 97, 97, 97, 97, 97, 97, 312, 97, 97, 97, 97, 97, 97, 97, 97, 1123, 97, 97, 97, 97, 97, 97, 97, 340, 344, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 373, 375, 419, 45, 45, 45, 45, 45, 45, 45, 45, 45, 428, 45, 45, 435, 45, 45, 45, 1751, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1410, 45, 45, 45, 67, 67, 67, 505, 67, 67, 67, 67, 67, 67, 67, 67, 67, 514, 67, 67, 67, 67, 67, 67, 1969, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 45, 67, 0, 97, 45, 67, 0, 97, 2064, 2065, 0, 2066, 45, 521, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 534, 67, 67, 67, 67, 67, 67, 465, 67, 67, 67, 474, 67, 67, 67, 67, 67, 67, 67, 1467, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 1933, 0, 97, 97, 97, 602, 97, 97, 97, 97, 97, 97, 97, 97, 97, 611, 97, 97, 18, 640, 139621, 358, 641, 0, 0, 0, 0, 364, 0, 0, 367, 0, 618, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 631, 97, 97, 97, 97, 97, 881, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 569, 97, 97, 97, 97, 97, 369, 0, 45, 652, 45, 45, 45, 45, 45, 657, 45, 45, 45, 45, 45, 45, 1235, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1432, 67, 67, 67, 67, 67, 67, 67, 766, 67, 67, 67, 67, 67, 67, 67, 67, 773, 67, 67, 67, 0, 1305, 0, 1311, 0, 1317, 97, 97, 97, 97, 97, 97, 97, 1624, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 1724, 97, 97, 97, 777, 67, 67, 782, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 535, 67, 67, 67, 67, 67, 67, 67, 814, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 837, 97, 97, 97, 97, 97, 97, 1496, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 918, 97, 97, 97, 97, 0, 842, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1168, 97, 97, 97, 97, 864, 97, 97, 97, 97, 97, 97, 97, 97, 871, 97, 97, 97, 0, 1637, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1801, 45, 45, 97, 875, 97, 97, 880, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1151, 1152, 97, 97, 97, 67, 67, 67, 1040, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 790, 67, 67, 67, 1180, 0, 649, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 200, 45, 45, 67, 67, 67, 1454, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 806, 67, 67, 67, 0, 0, 0, 1481, 0, 1094, 0, 0, 97, 1483, 97, 97, 97, 97, 97, 97, 304, 97, 97, 318, 97, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 97, 97, 97, 1507, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1332, 97, 97, 97, 1619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1631, 97, 1633, 97, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1381, 0, 0, 45, 45, 45, 45, 97, 97, 1727, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 626, 97, 97, 97, 97, 97, 97, 636, 45, 45, 1760, 67, 67, 67, 67, 67, 67, 67, 1765, 67, 67, 67, 67, 67, 67, 67, 1299, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1616, 97, 97, 1803, 45, 45, 45, 45, 1807, 45, 45, 45, 45, 45, 1813, 45, 45, 45, 67, 67, 1684, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 822, 67, 67, 37689, 544, 67, 67, 1818, 67, 67, 67, 67, 1822, 67, 67, 67, 67, 67, 1828, 67, 67, 67, 67, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 2012, 2013, 45, 45, 67, 67, 67, 2018, 2019, 67, 67, 97, 67, 97, 97, 97, 1833, 97, 97, 0, 0, 97, 97, 1840, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 1733, 97, 1735, 97, 97, 97, 0, 97, 97, 97, 1849, 97, 97, 97, 45, 45, 45, 45, 45, 1857, 45, 45, 45, 1910, 45, 1912, 45, 45, 1914, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1017, 67, 67, 1020, 67, 45, 1861, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1872, 67, 67, 67, 67, 67, 67, 752, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1446, 67, 67, 67, 67, 67, 1876, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1890, 97, 97, 97, 97, 97, 1134, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 570, 97, 97, 97, 97, 580, 1935, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1906, 45, 67, 67, 67, 67, 2048, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 0, 0, 925, 41606, 0, 0, 0, 931, 45, 45, 45, 45, 45, 45, 1674, 45, 1676, 45, 45, 45, 45, 45, 45, 45, 446, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1871, 67, 67, 67, 67, 0, 97, 97, 45, 67, 0, 97, 2060, 2061, 0, 2063, 45, 67, 0, 97, 45, 45, 156, 45, 45, 45, 45, 45, 45, 45, 45, 45, 192, 45, 45, 45, 45, 1673, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 429, 45, 45, 45, 45, 67, 67, 67, 269, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 349, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 374, 45, 45, 67, 67, 213, 217, 67, 67, 67, 67, 67, 242, 67, 247, 67, 253, 45, 45, 698, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 399, 45, 45, 0, 0, 0, 0, 925, 41606, 0, 929, 0, 0, 45, 45, 45, 45, 45, 45, 1391, 45, 45, 1395, 45, 45, 45, 45, 45, 45, 423, 45, 45, 45, 45, 45, 45, 45, 436, 45, 67, 67, 67, 67, 1041, 67, 1043, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1776, 67, 67, 97, 97, 97, 1099, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 888, 97, 97, 97, 1131, 97, 97, 97, 97, 1135, 97, 1137, 97, 97, 97, 97, 97, 97, 97, 1497, 97, 97, 97, 97, 97, 97, 97, 97, 97, 883, 97, 97, 97, 97, 97, 97, 1310, 0, 0, 0, 1316, 0, 0, 0, 0, 1100, 0, 0, 0, 97, 97, 97, 97, 97, 1107, 97, 97, 97, 97, 97, 97, 97, 97, 1343, 97, 97, 97, 97, 97, 97, 1348, 0, 0, 1317, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1112, 97, 45, 1804, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1868, 67, 1870, 67, 67, 67, 67, 67, 1817, 67, 67, 1819, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 823, 67, 37689, 544, 67, 97, 1832, 97, 97, 1834, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 0, 1732, 97, 97, 97, 97, 97, 97, 97, 850, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1177, 0, 0, 925, 0, 0, 0, 0, 97, 97, 97, 97, 0, 0, 1941, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1991, 1992, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1998, 134, 0, 0, 0, 37, 110630, 0, 0, 0, 114730, 106539, 41098, 45, 45, 45, 45, 941, 45, 45, 944, 45, 45, 45, 45, 45, 45, 952, 45, 45, 207, 67, 67, 67, 67, 67, 226, 67, 67, 67, 67, 67, 67, 67, 67, 67, 820, 67, 67, 67, 67, 37689, 544, 369, 650, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1682, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 835, 97, 97, 97, 97, 97, 97, 97, 1522, 97, 97, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1725, 67, 67, 67, 1695, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1034, 67, 1036, 67, 67, 67, 265, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 97, 296, 97, 97, 97, 97, 314, 97, 97, 97, 97, 332, 334, 97, 97, 97, 97, 97, 1146, 1147, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1626, 97, 97, 97, 97, 97, 97, 345, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 372, 45, 45, 45, 1220, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1213, 45, 45, 45, 45, 404, 406, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 434, 45, 45, 45, 440, 45, 45, 45, 45, 45, 45, 45, 45, 451, 452, 45, 45, 45, 67, 1683, 67, 67, 67, 1686, 67, 67, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 67, 67, 490, 492, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1447, 67, 67, 1450, 67, 67, 67, 67, 67, 526, 67, 67, 67, 67, 67, 67, 67, 67, 537, 538, 67, 67, 67, 67, 67, 506, 67, 67, 508, 67, 67, 511, 67, 67, 67, 67, 0, 1476, 0, 0, 0, 0, 0, 1478, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1484, 97, 97, 97, 97, 97, 97, 865, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1499, 97, 97, 97, 97, 97, 97, 97, 97, 97, 587, 589, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 629, 97, 97, 97, 97, 97, 97, 97, 97, 97, 623, 97, 97, 97, 97, 97, 97, 97, 97, 634, 635, 97, 97, 97, 97, 97, 1160, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1628, 97, 97, 97, 97, 369, 0, 45, 45, 45, 45, 45, 655, 45, 45, 45, 45, 45, 45, 45, 45, 999, 45, 1001, 45, 45, 45, 45, 45, 45, 45, 45, 715, 45, 45, 45, 720, 45, 45, 45, 45, 45, 45, 45, 45, 728, 25403, 546, 70179, 0, 0, 66365, 66365, 552, 0, 97, 97, 97, 97, 97, 840, 97, 97, 97, 97, 97, 1174, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 0, 0, 0, 0, 1100, 97, 97, 97, 97, 97, 97, 97, 97, 627, 97, 97, 97, 97, 97, 97, 97, 938, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 680, 45, 968, 45, 970, 45, 973, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 962, 45, 45, 45, 45, 45, 979, 45, 45, 45, 45, 45, 985, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1224, 45, 45, 45, 45, 45, 45, 45, 45, 688, 45, 45, 45, 45, 45, 45, 45, 1007, 1008, 67, 67, 67, 67, 67, 1014, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1045, 67, 67, 67, 67, 67, 67, 67, 1038, 67, 67, 67, 67, 67, 67, 1044, 67, 1046, 67, 1049, 67, 67, 67, 67, 67, 67, 800, 67, 67, 67, 67, 67, 67, 808, 67, 67, 0, 0, 0, 1102, 97, 97, 97, 97, 97, 1108, 97, 97, 97, 97, 97, 97, 306, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1371, 97, 97, 97, 97, 97, 97, 97, 97, 1132, 97, 97, 97, 97, 97, 97, 1138, 97, 1140, 97, 1143, 97, 97, 97, 97, 97, 1352, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 869, 97, 97, 97, 97, 97, 45, 1191, 45, 45, 45, 45, 45, 1196, 45, 45, 45, 45, 45, 45, 45, 45, 1407, 45, 45, 45, 45, 45, 45, 45, 45, 986, 45, 45, 45, 45, 45, 45, 991, 45, 67, 67, 67, 1256, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1048, 67, 67, 67, 97, 1336, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 615, 97, 1386, 45, 1387, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 455, 45, 457, 45, 45, 1424, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1433, 67, 1434, 67, 67, 67, 67, 67, 767, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1591, 67, 1593, 67, 67, 45, 45, 1805, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1814, 45, 45, 1816, 67, 67, 67, 67, 1820, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1829, 67, 67, 67, 67, 67, 815, 67, 67, 67, 67, 821, 67, 67, 67, 37689, 544, 67, 1831, 97, 97, 97, 97, 1835, 0, 0, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1731, 97, 97, 97, 97, 97, 97, 97, 97, 97, 853, 97, 97, 97, 97, 97, 97, 0, 97, 97, 97, 97, 1850, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, 45, 45, 45, 45, 45, 45, 45, 1664, 45, 45, 45, 45, 45, 45, 45, 45, 961, 45, 45, 45, 45, 965, 45, 967, 1907, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1920, 0, 1936, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 67, 67, 67, 67, 67, 67, 1763, 67, 67, 67, 67, 67, 67, 67, 67, 1056, 67, 67, 67, 67, 67, 67, 67, 67, 1273, 67, 67, 67, 67, 67, 67, 67, 67, 1457, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 28672, 97, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 2054, 97, 97, 291, 97, 97, 97, 97, 97, 97, 320, 97, 97, 97, 97, 97, 97, 307, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 926, 1179, 0, 45, 377, 45, 45, 45, 381, 45, 45, 392, 45, 45, 396, 45, 45, 45, 45, 971, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1756, 45, 45, 45, 67, 67, 67, 67, 463, 67, 67, 67, 467, 67, 67, 478, 67, 67, 482, 67, 67, 67, 67, 67, 1028, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1469, 67, 67, 1472, 67, 502, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1460, 67, 97, 97, 97, 97, 560, 97, 97, 97, 564, 97, 97, 575, 97, 97, 579, 97, 97, 97, 97, 97, 1368, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 930, 97, 599, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 872, 97, 45, 666, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1758, 0, 362, 0, 0, 925, 41606, 0, 0, 0, 0, 45, 45, 934, 45, 45, 45, 164, 168, 174, 178, 45, 45, 45, 45, 45, 194, 45, 45, 45, 165, 45, 45, 45, 45, 45, 45, 45, 45, 45, 199, 45, 45, 45, 67, 67, 1010, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1060, 67, 67, 67, 67, 67, 67, 1052, 1053, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1063, 97, 1157, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1167, 97, 97, 97, 97, 97, 1379, 97, 97, 97, 0, 0, 0, 45, 1383, 45, 45, 45, 1806, 45, 45, 45, 45, 45, 45, 1812, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1577, 67, 67, 67, 67, 67, 67, 67, 753, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1262, 67, 67, 67, 67, 67, 67, 67, 1282, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1471, 67, 45, 1402, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 417, 45, 67, 1462, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 37689, 544, 97, 1517, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1128, 97, 97, 97, 97, 1636, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 851, 97, 97, 97, 97, 97, 97, 97, 67, 67, 1705, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1842, 0, 0, 1779, 97, 97, 97, 1782, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1789, 97, 97, 0, 0, 0, 97, 1847, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1675, 45, 45, 45, 45, 45, 45, 45, 45, 737, 738, 67, 740, 67, 741, 67, 743, 67, 67, 67, 67, 67, 67, 1968, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 45, 67, 0, 97, 45, 67, 2062, 97, 45, 67, 0, 97, 45, 67, 67, 97, 97, 2001, 97, 0, 0, 2004, 97, 97, 0, 97, 97, 97, 97, 1797, 97, 97, 97, 97, 97, 45, 45, 45, 67, 261, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 97, 292, 97, 97, 97, 97, 311, 315, 321, 325, 97, 97, 97, 97, 97, 97, 1623, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1330, 97, 97, 1333, 1334, 97, 341, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 0, 363, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 1221, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 413, 45, 45, 416, 45, 376, 45, 45, 45, 45, 382, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1408, 45, 45, 45, 45, 45, 403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 414, 45, 45, 45, 418, 67, 67, 67, 462, 67, 67, 67, 67, 468, 67, 67, 67, 67, 67, 67, 67, 67, 1602, 67, 1604, 67, 67, 67, 67, 67, 67, 67, 67, 489, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 500, 67, 67, 67, 67, 67, 1067, 67, 67, 67, 67, 67, 1072, 67, 67, 67, 67, 67, 67, 274, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 67, 67, 504, 67, 67, 67, 67, 67, 67, 67, 510, 67, 67, 67, 517, 519, 541, 67, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 554, 97, 97, 97, 559, 97, 97, 97, 97, 565, 97, 97, 97, 97, 97, 97, 97, 1718, 0, 97, 97, 97, 97, 97, 97, 97, 898, 97, 97, 97, 97, 97, 97, 906, 97, 97, 97, 97, 586, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 597, 97, 97, 97, 97, 97, 1520, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 45, 1656, 45, 45, 45, 97, 97, 601, 97, 97, 97, 97, 97, 97, 97, 607, 97, 97, 97, 614, 616, 638, 97, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 369, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 661, 45, 45, 45, 407, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1815, 45, 67, 45, 667, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 678, 45, 45, 45, 421, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 976, 977, 45, 45, 45, 682, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 693, 45, 45, 697, 67, 67, 748, 67, 67, 67, 67, 754, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1274, 67, 67, 67, 67, 67, 67, 67, 67, 765, 67, 67, 67, 67, 769, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1589, 67, 67, 67, 67, 67, 67, 67, 67, 780, 67, 67, 784, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1777, 67, 97, 97, 97, 97, 97, 97, 846, 97, 97, 97, 97, 852, 97, 97, 97, 97, 97, 97, 97, 1742, 45, 45, 45, 45, 45, 45, 45, 1747, 97, 97, 97, 863, 97, 97, 97, 97, 867, 97, 97, 97, 97, 97, 97, 97, 308, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 1178, 925, 0, 1179, 0, 97, 97, 97, 878, 97, 97, 882, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 12288, 0, 925, 0, 1179, 0, 908, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 954, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 963, 45, 45, 966, 45, 45, 157, 45, 45, 171, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 948, 45, 45, 45, 45, 45, 1022, 67, 67, 1026, 67, 67, 67, 1030, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1603, 1605, 67, 67, 67, 1608, 67, 67, 67, 1039, 67, 67, 1042, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 471, 67, 67, 67, 67, 67, 0, 1100, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 904, 97, 97, 97, 97, 1116, 97, 97, 1120, 97, 97, 97, 1124, 97, 97, 97, 97, 97, 97, 562, 97, 97, 97, 571, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1133, 97, 97, 1136, 97, 97, 97, 97, 97, 97, 97, 97, 915, 917, 97, 97, 97, 97, 97, 0, 97, 1170, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 925, 0, 0, 0, 0, 0, 41606, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1993, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1275, 67, 67, 67, 1278, 67, 0, 0, 0, 45, 45, 1182, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1189, 1204, 45, 45, 45, 1207, 45, 45, 1209, 45, 1210, 45, 45, 45, 45, 45, 45, 1546, 45, 45, 45, 45, 45, 45, 45, 45, 45, 689, 45, 45, 45, 45, 45, 45, 1231, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 236, 67, 67, 67, 67, 67, 67, 67, 801, 67, 67, 67, 805, 67, 67, 67, 67, 67, 1242, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1249, 67, 67, 67, 67, 67, 67, 507, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1300, 0, 0, 0, 0, 0, 1267, 67, 67, 1269, 67, 1270, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1280, 97, 1349, 97, 1350, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1360, 97, 97, 97, 0, 1980, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 673, 45, 45, 45, 45, 677, 45, 45, 45, 45, 1401, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 953, 67, 1437, 67, 1440, 67, 67, 67, 67, 1445, 67, 67, 67, 1448, 67, 67, 67, 67, 67, 67, 1029, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1825, 67, 67, 67, 67, 67, 1473, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1320, 0, 834, 97, 97, 97, 97, 1490, 97, 1493, 97, 97, 97, 97, 1498, 97, 97, 97, 1501, 97, 97, 97, 0, 97, 1638, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 916, 97, 97, 97, 97, 97, 97, 0, 1528, 97, 97, 97, 0, 45, 45, 45, 1535, 45, 45, 45, 45, 45, 45, 45, 1867, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1932, 0, 0, 1555, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1567, 45, 45, 158, 45, 45, 172, 45, 45, 45, 183, 45, 45, 45, 45, 201, 45, 45, 67, 212, 67, 67, 67, 67, 231, 235, 241, 245, 67, 67, 67, 67, 67, 67, 493, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 472, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1651, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 1539, 45, 45, 45, 67, 1704, 67, 1706, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1841, 97, 0, 1844, 97, 97, 97, 97, 1716, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 590, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 1385, 1748, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1757, 45, 45, 159, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 415, 45, 45, 97, 97, 1780, 97, 97, 97, 0, 0, 1786, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1730, 0, 97, 97, 97, 97, 97, 1736, 97, 1738, 67, 97, 97, 97, 97, 97, 97, 0, 1838, 97, 97, 97, 97, 97, 0, 0, 97, 1729, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1162, 97, 97, 97, 1165, 97, 97, 97, 45, 1950, 45, 45, 45, 45, 45, 45, 45, 45, 1958, 67, 67, 67, 1962, 67, 67, 67, 67, 67, 1246, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 1710, 97, 97, 97, 1999, 67, 97, 97, 97, 97, 0, 2003, 97, 97, 97, 0, 97, 97, 2008, 2009, 45, 67, 67, 67, 67, 0, 0, 97, 97, 97, 97, 45, 2052, 67, 2053, 0, 0, 0, 0, 925, 41606, 0, 0, 930, 0, 45, 45, 45, 45, 45, 45, 1392, 45, 1394, 45, 45, 45, 45, 45, 45, 45, 1545, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1563, 1565, 45, 45, 45, 1568, 0, 97, 2055, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 28672, 97, 45, 45, 160, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 679, 45, 45, 67, 67, 266, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 346, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 0, 362, 0, 364, 0, 367, 41098, 369, 140, 371, 45, 45, 45, 379, 45, 45, 45, 388, 45, 45, 45, 45, 45, 45, 45, 45, 1663, 45, 45, 45, 45, 45, 45, 45, 45, 45, 449, 45, 45, 45, 45, 45, 67, 67, 542, 37139, 37139, 24853, 24853, 0, 70179, 0, 0, 0, 65820, 65820, 369, 287, 97, 97, 97, 97, 97, 1622, 97, 97, 97, 97, 97, 97, 97, 1629, 97, 97, 0, 1794, 1795, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1745, 45, 45, 97, 639, 18, 0, 139621, 0, 0, 0, 0, 0, 0, 364, 0, 0, 367, 41606, 45, 731, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 251, 67, 67, 67, 67, 67, 798, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1073, 67, 67, 67, 860, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 873, 0, 0, 1101, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 921, 97, 0, 67, 67, 67, 67, 1245, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1250, 67, 67, 1253, 0, 0, 1312, 0, 0, 0, 1318, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1106, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1149, 97, 97, 97, 97, 97, 1155, 97, 97, 1325, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1141, 97, 97, 67, 67, 1439, 67, 1441, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1264, 67, 67, 67, 97, 97, 1492, 97, 1494, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1331, 97, 97, 97, 97, 67, 67, 67, 2037, 67, 97, 0, 0, 97, 97, 97, 2043, 97, 45, 45, 45, 442, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 232, 67, 67, 67, 67, 67, 67, 67, 67, 1823, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1975, 0, 0, 97, 874, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1142, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 65, 86, 117, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 63, 84, 115, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 61, 82, 113, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 59, 80, 111, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 57, 78, 109, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 55, 76, 107, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 53, 74, 105, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 51, 72, 103, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 49, 70, 101, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 47, 68, 99, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 45, 67, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 213085, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 0, 0, 44, 0, 0, 32863, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 41, 41, 41, 0, 0, 1138688, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 0, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 89, 53264, 18, 18, 49172, 0, 57366, 0, 24, 24, 24, 0, 127, 127, 127, 127, 102432, 67, 262, 67, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 342, 97, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 360, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 717, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 412, 45, 45, 45, 45, 45, 67, 1009, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1292, 67, 67, 1294, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 97, 97, 97, 1615, 97, 97, 97, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 66, 87, 118, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 64, 85, 116, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 62, 83, 114, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 60, 81, 112, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 58, 79, 110, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 56, 77, 108, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 54, 75, 106, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 52, 73, 104, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 50, 71, 102, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 48, 69, 100, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 37, 110630, 114730, 106539, 46, 67, 98, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 233472, 53264, 18, 49172, 57366, 24, 8192, 28, 102432, 0, 110630, 114730, 106539, 0, 0, 69724, 53264, 18, 18, 49172, 0, 57366, 262144, 24, 24, 24, 0, 28, 28, 28, 28, 102432, 45, 45, 161, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 710, 45, 45, 28, 139621, 359, 0, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 1389, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 949, 45, 45, 45, 45, 67, 503, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1449, 67, 67, 97, 600, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1154, 97, 0, 0, 0, 0, 925, 41606, 927, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1866, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 772, 67, 67, 67, 67, 67, 45, 45, 969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 951, 45, 45, 45, 45, 1192, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1202, 45, 45, 0, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1488, 67, 67, 267, 67, 67, 67, 67, 0, 37139, 24853, 0, 0, 0, 0, 41098, 65820, 97, 347, 97, 97, 97, 97, 0, 53264, 0, 18, 18, 24, 24, 0, 28, 28, 139621, 0, 361, 0, 0, 364, 0, 367, 41098, 369, 140, 45, 45, 45, 45, 734, 45, 45, 45, 67, 67, 67, 67, 67, 742, 67, 67, 45, 45, 668, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1214, 45, 45, 1130, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1361, 97, 45, 45, 1671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1552, 45, 45, 0, 0, 0, 0, 2220032, 0, 0, 1130496, 0, 0, 0, 0, 2170880, 2171020, 2170880, 2170880, 18, 0, 0, 131072, 0, 0, 0, 90112, 0, 2220032, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 1485, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 1537, 45, 45, 45, 45, 45, 1390, 45, 1393, 45, 45, 45, 45, 1398, 45, 45, 45, 2170880, 2171167, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2576384, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 0, 0, 0, 0, 0, 2174976, 0, 0, 0, 0, 0, 0, 2183168, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 2721252, 2744320, 2170880, 2170880, 2170880, 2834432, 2840040, 2170880, 2908160, 2170880, 2170880, 2936832, 2170880, 2170880, 2985984, 2170880, 2994176, 2170880, 2170880, 3014656, 2170880, 3059712, 3076096, 3088384, 2170880, 2170880, 2170880, 2170880, 0, 0, 0, 0, 2220032, 0, 0, 0, 1142784, 0, 0, 0, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3215360, 2215936, 2215936, 2215936, 2215936, 2215936, 2437120, 2215936, 2215936, 2215936, 3117056, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 2215936, 0, 543, 0, 545, 0, 0, 2183168, 0, 0, 831, 0, 2170880, 2170880, 2170880, 2400256, 2170880, 2170880, 2170880, 2170880, 3031040, 2170880, 3055616, 2170880, 2170880, 2170880, 2170880, 3092480, 2170880, 2170880, 3125248, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 2170880, 3198976, 2170880, 0, 0, 0, 0, 0, 0, 67, 67, 37139, 37139, 24853, 24853, 0, 0, 0, 0, 0, 65820, 65820, 0, 287, 97, 97, 97, 97, 97, 1783, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 1791, 0, 0, 546, 70179, 0, 0, 0, 0, 552, 0, 97, 97, 97, 97, 97, 97, 97, 604, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1150, 97, 97, 97, 97, 97, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 147456, 0, 0, 147456, 0, 0, 0, 0, 925, 41606, 0, 928, 0, 0, 45, 45, 45, 45, 45, 45, 998, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1562, 45, 1564, 45, 45, 45, 45, 0, 2158592, 2158592, 0, 0, 0, 0, 2232320, 2232320, 2232320, 0, 2240512, 2240512, 2240512, 2240512, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2170880, 2170880, 2170880, 2416640 +]; + +JSONiqTokenizer.EXPECTED = +[ 291, 300, 304, 341, 315, 309, 305, 295, 319, 323, 327, 329, 296, 333, 337, 339, 342, 346, 350, 294, 356, 360, 312, 367, 352, 371, 363, 375, 379, 383, 387, 391, 395, 726, 399, 405, 518, 684, 405, 405, 405, 405, 808, 405, 405, 405, 512, 405, 405, 405, 431, 405, 405, 406, 405, 405, 404, 405, 405, 405, 405, 405, 405, 405, 908, 631, 410, 415, 405, 414, 419, 608, 405, 429, 602, 405, 435, 443, 405, 441, 641, 478, 405, 447, 451, 450, 456, 643, 461, 460, 762, 679, 465, 469, 741, 473, 477, 482, 486, 492, 932, 931, 523, 498, 504, 720, 405, 510, 596, 405, 516, 941, 580, 522, 929, 527, 590, 589, 897, 939, 534, 538, 547, 551, 555, 559, 563, 567, 571, 969, 575, 708, 690, 689, 579, 584, 634, 405, 594, 731, 405, 600, 882, 405, 606, 895, 786, 452, 612, 405, 615, 620, 876, 624, 628, 638, 647, 651, 655, 659, 663, 667, 676, 683, 688, 695, 694, 791, 405, 699, 437, 405, 706, 714, 405, 712, 825, 870, 405, 718, 724, 769, 768, 823, 730, 735, 745, 751, 422, 755, 759, 425, 766, 902, 810, 587, 775, 888, 887, 405, 773, 992, 405, 779, 962, 405, 785, 781, 986, 790, 795, 797, 506, 500, 499, 801, 805, 814, 820, 829, 833, 837, 841, 845, 849, 853, 857, 861, 616, 865, 869, 868, 488, 405, 874, 816, 405, 880, 738, 405, 886, 892, 543, 405, 901, 906, 913, 912, 918, 494, 541, 922, 926, 936, 945, 949, 953, 957, 530, 966, 973, 960, 702, 701, 405, 979, 981, 405, 985, 747, 405, 990, 998, 914, 405, 996, 1004, 672, 975, 974, 1014, 1002, 1008, 670, 1012, 405, 405, 405, 405, 405, 401, 1018, 1022, 1026, 1106, 1071, 1111, 1111, 1111, 1082, 1145, 1030, 1101, 1034, 1038, 1106, 1106, 1106, 1106, 1046, 1206, 1052, 1106, 1072, 1111, 1111, 1042, 1134, 1065, 1111, 1112, 1056, 1160, 1207, 1062, 1204, 1208, 1069, 1106, 1106, 1106, 1076, 1111, 1207, 1161, 1122, 1205, 1064, 1094, 1106, 1106, 1107, 1111, 1111, 1111, 1078, 1086, 1207, 1092, 1098, 1046, 1058, 1106, 1106, 1110, 1111, 1111, 1116, 1120, 1161, 1126, 1202, 1104, 1106, 1145, 1146, 1129, 1138, 1088, 1151, 1048, 1157, 1153, 1132, 1141, 1165, 1107, 1111, 1172, 1179, 1109, 1183, 1175, 1143, 1147, 1187, 1108, 1191, 1195, 1144, 1199, 1168, 1212, 1216, 1220, 1224, 1228, 1232, 1236, 1557, 1247, 1241, 1241, 1038, 1434, 1241, 1241, 1241, 1241, 1254, 1275, 1617, 1241, 1280, 1287, 1241, 1241, 1241, 1287, 1241, 2114, 1291, 1241, 1243, 1241, 2049, 1824, 2094, 2095, 1520, 1309, 1241, 1241, 1302, 1241, 1321, 1311, 1241, 1241, 1313, 1778, 1325, 1336, 1241, 1241, 1325, 1330, 1353, 1241, 1241, 1695, 1354, 1241, 1241, 1241, 1294, 1686, 1331, 1241, 1696, 1368, 1241, 1338, 1370, 1241, 1392, 1399, 1364, 2017, 1406, 2016, 1405, 1716, 1406, 1407, 1422, 1417, 1421, 1241, 1241, 1241, 1349, 1426, 1241, 1774, 1756, 1241, 1773, 1241, 1241, 1345, 1964, 1812, 1432, 1241, 1241, 1345, 1993, 1459, 1241, 1241, 1241, 1395, 1848, 1767, 1465, 1241, 1241, 1394, 1847, 1242, 1477, 1241, 1241, 1428, 1241, 1445, 1492, 1241, 1241, 1438, 1241, 1499, 1241, 1241, 1241, 1455, 1241, 1818, 1448, 1241, 1250, 1241, 2026, 1623, 1449, 1241, 1612, 1616, 1241, 1614, 1241, 1257, 1241, 1241, 1985, 1292, 1586, 1512, 1241, 1517, 2050, 1526, 1674, 1519, 1524, 1647, 2051, 1532, 1537, 1551, 1544, 1550, 1555, 1561, 1571, 1578, 1584, 1590, 1591, 1653, 1595, 1602, 1606, 1610, 1634, 1628, 1640, 1633, 1645, 1241, 1241, 1241, 1469, 1241, 1970, 1651, 1241, 1270, 1241, 1241, 1819, 1449, 1241, 1293, 1664, 1241, 1241, 1481, 1485, 1574, 1672, 1241, 1241, 1513, 1317, 1487, 1684, 1241, 1241, 1533, 1299, 1694, 1241, 1241, 1295, 1241, 1241, 1241, 1546, 1700, 1241, 1241, 1707, 1241, 1713, 1241, 1849, 1715, 1241, 1720, 1241, 1276, 1267, 1241, 1241, 2107, 1657, 1864, 1241, 1881, 1241, 1326, 1292, 1241, 1685, 1358, 1724, 1338, 1241, 1363, 1362, 1342, 1340, 1361, 1339, 1833, 1372, 1360, 1833, 1833, 1342, 1343, 1835, 1341, 1731, 1738, 1344, 1241, 1745, 1241, 1379, 1241, 1241, 2092, 1241, 1388, 1761, 1754, 1241, 1386, 1241, 1400, 1760, 1241, 1241, 1241, 1598, 1734, 1241, 1241, 1241, 1635, 1645, 1241, 1780, 1766, 1241, 1241, 1332, 1771, 1241, 1241, 1629, 2079, 1241, 1242, 1784, 1241, 1241, 1680, 1639, 2063, 1790, 1241, 1241, 1741, 1241, 1241, 1800, 1241, 1241, 1762, 1473, 1241, 1806, 1241, 1241, 1786, 1240, 1709, 1241, 1241, 1241, 1668, 1811, 1241, 1940, 1241, 1401, 1974, 1241, 1408, 1413, 1382, 1241, 1816, 1241, 1241, 1802, 2086, 1811, 1241, 1817, 1945, 1823, 2095, 2095, 2047, 2094, 2046, 2080, 1241, 1409, 1312, 1376, 2096, 2048, 1241, 1241, 1807, 1241, 1241, 1241, 2035, 1241, 1241, 1828, 1241, 2057, 2061, 1241, 1241, 1843, 1241, 2059, 1241, 1241, 1241, 1690, 1847, 1241, 1241, 1241, 1703, 2102, 1848, 1241, 1241, 1853, 1292, 1848, 1241, 2016, 1857, 1241, 2002, 1868, 1241, 1436, 1241, 1241, 1271, 1305, 1241, 1874, 1241, 1241, 1884, 2037, 1892, 1241, 1890, 1241, 1461, 1241, 1241, 1795, 1241, 1241, 1891, 1241, 1878, 1241, 1888, 1241, 1888, 1905, 1896, 2087, 1912, 1903, 1241, 1911, 1906, 1916, 1905, 2027, 1863, 1925, 2088, 1859, 1861, 1922, 1927, 1931, 1935, 1494, 1241, 1241, 1918, 1907, 1939, 1917, 1944, 1949, 1241, 1241, 1451, 1955, 1241, 1241, 1241, 1796, 1727, 2061, 1241, 1241, 1899, 1241, 1660, 1968, 1241, 1241, 1951, 1678, 1978, 1241, 1241, 1241, 1839, 1241, 1241, 1984, 1982, 1241, 1488, 1241, 1241, 1624, 1450, 1989, 1241, 1241, 1241, 1870, 1995, 1292, 1241, 1241, 1958, 1261, 1241, 1996, 1241, 1241, 1241, 2039, 2008, 1241, 1241, 1750, 2000, 1241, 1256, 2001, 1960, 1241, 1564, 1241, 1504, 1241, 1241, 1442, 1241, 1241, 1564, 1528, 1263, 1241, 1508, 1241, 1241, 1468, 1498, 2006, 1540, 2015, 1539, 2014, 1748, 2013, 1539, 1831, 2014, 2012, 1500, 1567, 2022, 2021, 1241, 1580, 1241, 1241, 2033, 2037, 1791, 2045, 2031, 1241, 1621, 1241, 1641, 2044, 1241, 1241, 1241, 2093, 1241, 1241, 2055, 1241, 1241, 2067, 1241, 1283, 1241, 1241, 1241, 2101, 2071, 1241, 1241, 1241, 2073, 1848, 2040, 1241, 1241, 1241, 2077, 1241, 1241, 2106, 1241, 1241, 2084, 1241, 2111, 1241, 1241, 1381, 1380, 1241, 1241, 1241, 2100, 1241, 2129, 2118, 2122, 2126, 2197, 2133, 3010, 2825, 2145, 2698, 2156, 2226, 2160, 2161, 2165, 2174, 2293, 2194, 2630, 2201, 2203, 2152, 3019, 2226, 2263, 2209, 2213, 2218, 2269, 2292, 2269, 2269, 2184, 2226, 2238, 2148, 2151, 3017, 2245, 2214, 2269, 2269, 2185, 2226, 2292, 2269, 2291, 2269, 2269, 2269, 2292, 2205, 3019, 2226, 2226, 2160, 2160, 2160, 2261, 2160, 2160, 2160, 2262, 2276, 2160, 2160, 2277, 2216, 2283, 2216, 2269, 2269, 2268, 2269, 2267, 2269, 2269, 2269, 2271, 2568, 2292, 2269, 2293, 2269, 2182, 2190, 2269, 2186, 2226, 2226, 2226, 2226, 2227, 2160, 2160, 2160, 2160, 2263, 2160, 2275, 2277, 2282, 2215, 2217, 2269, 2269, 2291, 2269, 2269, 2293, 2291, 2269, 2220, 2269, 2295, 2294, 2269, 2269, 2305, 2233, 2262, 2278, 2218, 2269, 2234, 2226, 2226, 2228, 2160, 2160, 2160, 2289, 2220, 2294, 2294, 2269, 2269, 2304, 2269, 2160, 2160, 2287, 2269, 2269, 2305, 2269, 2269, 2312, 2269, 2269, 2225, 2226, 2160, 2287, 2289, 2219, 2304, 2295, 2314, 2234, 2226, 2314, 2269, 2226, 2226, 2160, 2288, 2219, 2222, 2304, 2296, 2269, 2224, 2160, 2160, 2269, 2302, 2294, 2314, 2224, 2226, 2288, 2220, 2294, 2269, 2290, 2269, 2269, 2293, 2269, 2269, 2269, 2269, 2270, 2221, 2313, 2225, 2227, 2160, 2300, 2269, 2225, 2261, 2309, 2234, 2229, 2223, 2318, 2318, 2318, 2328, 2336, 2340, 2344, 2350, 2637, 2712, 2358, 2362, 2372, 2135, 2378, 2398, 2135, 2135, 2135, 2135, 2136, 2417, 2241, 2135, 2378, 2135, 2135, 2980, 2984, 2135, 3006, 2135, 2135, 2135, 2945, 2931, 2425, 2400, 2135, 2135, 2135, 2954, 2135, 2481, 2433, 2135, 2135, 2988, 2824, 2135, 2135, 2482, 2434, 2135, 2135, 2440, 2445, 2452, 2135, 2135, 2998, 3002, 2961, 2441, 2446, 2453, 2463, 2974, 2135, 2135, 2135, 2140, 2642, 2709, 2459, 2470, 2465, 2135, 2135, 3005, 2135, 2135, 2987, 2823, 2458, 2469, 2464, 2975, 2135, 2135, 2135, 2353, 2488, 2447, 2324, 2974, 2135, 2409, 2459, 2448, 2135, 2961, 2487, 2446, 2476, 2323, 2973, 2135, 2135, 2135, 2354, 2476, 2974, 2135, 2135, 2135, 2957, 2135, 2135, 2960, 2135, 2135, 2135, 2363, 2409, 2459, 2474, 2465, 2487, 2571, 2973, 2135, 2135, 2168, 2973, 2135, 2135, 2135, 2959, 2135, 2135, 2135, 2506, 2135, 2957, 2488, 2170, 2135, 2135, 2135, 2960, 2135, 2818, 2493, 2135, 2135, 3033, 2135, 2135, 2135, 2934, 2819, 2494, 2135, 2135, 2135, 2976, 2780, 2499, 2135, 2135, 2135, 3000, 2968, 2135, 2935, 2135, 2135, 2135, 2364, 2507, 2135, 2135, 2934, 2135, 2135, 2780, 2492, 2507, 2135, 2135, 2506, 2780, 2135, 2135, 2782, 2780, 2135, 2782, 2135, 2783, 2374, 2514, 2135, 2135, 2135, 3007, 2530, 2974, 2135, 2135, 2135, 3008, 2135, 2135, 2134, 2135, 2526, 2531, 2975, 2135, 2135, 3042, 2581, 2575, 2956, 2135, 2135, 2135, 2394, 2135, 2508, 2535, 2840, 2844, 2495, 2135, 2135, 2136, 2684, 2537, 2842, 2846, 2135, 2136, 2561, 2581, 2551, 2536, 2841, 2845, 2975, 3043, 2582, 2843, 2555, 2135, 3040, 3044, 2538, 2844, 2975, 2135, 2135, 2253, 2644, 2672, 2542, 2554, 2135, 2135, 2346, 2873, 2551, 2555, 2135, 2135, 2135, 2381, 2559, 2565, 2538, 2553, 2135, 2560, 2914, 2576, 2590, 2135, 2135, 2135, 2408, 2136, 2596, 2624, 2135, 2135, 2135, 2409, 2135, 2618, 2597, 3008, 2135, 2135, 2380, 2956, 2601, 2135, 2135, 2135, 2410, 2620, 2624, 2135, 2136, 2383, 2135, 2135, 2783, 2623, 2135, 2135, 2393, 2888, 2136, 2621, 3008, 2135, 2618, 2618, 2622, 2135, 2135, 2405, 2414, 2619, 2384, 2624, 2135, 2136, 2950, 2135, 2138, 2135, 2139, 2135, 2604, 2623, 2135, 2140, 2878, 2665, 2957, 2622, 2135, 2135, 2428, 2762, 2606, 2612, 2135, 2135, 2501, 2586, 2604, 3038, 2135, 2604, 3036, 2387, 2958, 2386, 2135, 2141, 2135, 2421, 2387, 2385, 2135, 2385, 2384, 2384, 2135, 2386, 2628, 2384, 2135, 2135, 2501, 2596, 2591, 2135, 2135, 2135, 2400, 2135, 2634, 2135, 2135, 2559, 2580, 2575, 2648, 2135, 2135, 2135, 2429, 2649, 2135, 2135, 2135, 2435, 2654, 2658, 2135, 2135, 2135, 2436, 2649, 2178, 2659, 2135, 2135, 2595, 2601, 2669, 2677, 2135, 2135, 2616, 2957, 2879, 2665, 2691, 2135, 2363, 2367, 2900, 2878, 2664, 2690, 2975, 2877, 2643, 2670, 2974, 2671, 2975, 2135, 2135, 2619, 2608, 2669, 2673, 2135, 2135, 2653, 2177, 2672, 2135, 2135, 2135, 2486, 2168, 2251, 2255, 2695, 2974, 2709, 2135, 2135, 2135, 2487, 2169, 2399, 2716, 2975, 2135, 2363, 2770, 2776, 2640, 2717, 2135, 2135, 2729, 2135, 2135, 2641, 2718, 2135, 2135, 2135, 2505, 2135, 2640, 2257, 2974, 2135, 2727, 2975, 2135, 2365, 2332, 2895, 2957, 2135, 2959, 2135, 2365, 2749, 2754, 2959, 2958, 2958, 2135, 2380, 2793, 2799, 2135, 2735, 2738, 2135, 2381, 2135, 2135, 2940, 2974, 2135, 2744, 2135, 2135, 2739, 2519, 2976, 2745, 2135, 2135, 2135, 2509, 2755, 2135, 2135, 2135, 2510, 2772, 2778, 2135, 2135, 2740, 2520, 2135, 2771, 2777, 2135, 2135, 2759, 2750, 2792, 2798, 2135, 2135, 2781, 2392, 2779, 2135, 2135, 2135, 2521, 2135, 2679, 2248, 2135, 2135, 2681, 2480, 2135, 2135, 2786, 3000, 2135, 2679, 2683, 2135, 2135, 2416, 2135, 2135, 2135, 2525, 2135, 2730, 2135, 2135, 2135, 2560, 2581, 2135, 2805, 2135, 2135, 2804, 2962, 2832, 2974, 2135, 2382, 2135, 2135, 2958, 2135, 2135, 2960, 2135, 2829, 2833, 2975, 2961, 2965, 2969, 2973, 2968, 2972, 2135, 2135, 2135, 2641, 2135, 2515, 2966, 2970, 2851, 2478, 2135, 2135, 2808, 2135, 2809, 2135, 2135, 2135, 2722, 2852, 2479, 2135, 2135, 2815, 2135, 2135, 2766, 2853, 2480, 2135, 2857, 2479, 2135, 2388, 2723, 2135, 2364, 2331, 2894, 2858, 2480, 2135, 2135, 2850, 2478, 2135, 2135, 2135, 2806, 2864, 2135, 2399, 2256, 2974, 2865, 2135, 2135, 2862, 2135, 2135, 2135, 2685, 2807, 2865, 2135, 2135, 2807, 2863, 2135, 2135, 2135, 2686, 2884, 2807, 2135, 2809, 2807, 2135, 2135, 2807, 2806, 2705, 2810, 2808, 2700, 2869, 2702, 2702, 2702, 2704, 2883, 2135, 2135, 2135, 2730, 2884, 2135, 2135, 2135, 2731, 2321, 2546, 2135, 2135, 2876, 2255, 2889, 2322, 2547, 2135, 2401, 2135, 2135, 2135, 2949, 2367, 2893, 2544, 2973, 2906, 2973, 2135, 2135, 2877, 2663, 2368, 2901, 2907, 2974, 2366, 2899, 2905, 2972, 2920, 2974, 2135, 2135, 2911, 2900, 2920, 2363, 2913, 2918, 2465, 2941, 2975, 2135, 2135, 2924, 2928, 2974, 2945, 2931, 2135, 2135, 2135, 2765, 2136, 2955, 2135, 2135, 2939, 2931, 2380, 2135, 2135, 2380, 2135, 2135, 2135, 2780, 2507, 2137, 2135, 2137, 2135, 2139, 2135, 2806, 2810, 2135, 2135, 2135, 2992, 2135, 2135, 2962, 2966, 2970, 2974, 2135, 2135, 2787, 3014, 2135, 2521, 2993, 2135, 2135, 2135, 2803, 2135, 2135, 2135, 2618, 2607, 2997, 3001, 2135, 2135, 2963, 2967, 2971, 2975, 2135, 2135, 2791, 2797, 2135, 3009, 2999, 3003, 2787, 3001, 2135, 2135, 2964, 2968, 2785, 2999, 3003, 2135, 2135, 2135, 2804, 2785, 2999, 3004, 2135, 2135, 2135, 2807, 2135, 2135, 3023, 2135, 2135, 2135, 2811, 2135, 2135, 3027, 2135, 2135, 2135, 2837, 2968, 3028, 2135, 2135, 2135, 2875, 2135, 2784, 3029, 2135, 2408, 2457, 2446, 0, 14, 0, -2120220672, 1610612736, -2074083328, -2002780160, -2111830528, 1073872896, 1342177280, 1075807216, 4096, 16384, 2048, 8192, 0, 8192, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, -2145386496, 8388608, 1073741824, 0, 0x80000000, 0x80000000, 2097152, 2097152, 2097152, 536870912, 0, 0, 134217728, 33554432, 1536, 268435456, 268435456, 268435456, 268435456, 128, 256, 32, 0, 65536, 131072, 524288, 16777216, 268435456, 0x80000000, 1572864, 1835008, 640, 32768, 65536, 262144, 1048576, 2097152, 196608, 196800, 196608, 196608, 0, 131072, 131072, 131072, 196608, 196624, 196608, 196624, 196608, 196608, 128, 4096, 16384, 16384, 2048, 0, 4, 0, 0, 0x80000000, 2097152, 0, 1024, 32, 32, 0, 65536, 1572864, 1048576, 32768, 32768, 32768, 32768, 196608, 196608, 196608, 64, 64, 196608, 196608, 131072, 131072, 131072, 131072, 268435456, 268435456, 64, 196736, 196608, 196608, 196608, 131072, 196608, 196608, 16384, 4, 4, 4, 2, 32, 32, 65536, 1048576, 12582912, 1073741824, 0, 0, 2, 8, 16, 96, 2048, 32768, 0, 0, 131072, 268435456, 268435456, 268435456, 256, 256, 196608, 196672, 196608, 196608, 196608, 196608, 4, 0, 256, 256, 256, 256, 32, 32, 32768, 32, 32, 32, 32, 32768, 268435456, 268435456, 268435456, 196608, 196608, 196608, 196624, 196608, 196608, 196608, 16, 16, 16, 268435456, 196608, 64, 64, 64, 196608, 196608, 196608, 196672, 268435456, 64, 64, 196608, 196608, 16, 196608, 196608, 196608, 268435456, 64, 196608, 131072, 262144, 4194304, 25165824, 33554432, 134217728, 268435456, 268435456, 196608, 262152, 8, 256, 512, 3072, 16384, 200, -1073741816, 8392713, 40, 8392718, 520, 807404072, 40, 520, 100663304, 0, 0, -540651761, -540651761, 257589048, 0, 262144, 0, 0, 3, 8, 256, 0, 4, 6, 4100, 8388612, 0, 0, 0, 3, 4, 8, 256, 512, 1024, 0, 2097152, 0, 0, -537854471, -537854471, 0, 100663296, 0, 0, 1, 2, 0, 0, 0, 16384, 0, 0, 0, 96, 14336, 0, 0, 0, 7, 8, 234881024, 0, 0, 0, 8, 0, 0, 0, 0, 262144, 0, 0, 16, 64, 384, 512, 0, 1, 1, 0, 12582912, 0, 0, 0, 0, 33554432, 67108864, -606084144, -606084144, -606084138, 0, 0, 28, 32, 768, 1966080, -608174080, 0, 0, 0, 14, 35056, 16, 64, 896, 24576, 98304, 98304, 131072, 262144, 524288, 1048576, 4194304, 25165824, 1048576, 62914560, 134217728, -805306368, 0, 384, 512, 16384, 65536, 131072, 262144, 29360128, 33554432, 134217728, 268435456, 1073741824, 0x80000000, 262144, 524288, 1048576, 29360128, 33554432, 524288, 1048576, 16777216, 33554432, 134217728, 268435456, 1073741824, 0, 0, 0, 123856, 1966080, 0, 64, 384, 16384, 65536, 131072, 16384, 65536, 524288, 268435456, 0x80000000, 0, 0, 524288, 0x80000000, 0, 0, 1, 16, 0, 256, 524288, 0, 0, 0, 25, 96, 128, -537854471, 0, 0, 0, 32, 7404800, -545259520, 0, 0, 0, 60, 0, 249, 64768, 1048576, 6291456, 6291456, 25165824, 100663296, 402653184, 1073741824, 96, 128, 1280, 2048, 4096, 57344, 6291456, 57344, 6291456, 8388608, 16777216, 33554432, 201326592, 1342177280, 0x80000000, 0, 57344, 6291456, 8388608, 100663296, 134217728, 0x80000000, 0, 0, 0, 1, 8, 16, 64, 128, 64, 128, 256, 1024, 131072, 131072, 131072, 262144, 524288, 16777216, 57344, 6291456, 8388608, 67108864, 134217728, 64, 256, 1024, 2048, 4096, 57344, 64, 256, 0, 24576, 32768, 6291456, 67108864, 134217728, 0, 1, 64, 256, 24576, 32768, 4194304, 32768, 4194304, 67108864, 0, 0, 64, 256, 0, 0, 24576, 32768, 0, 16384, 4194304, 67108864, 64, 16384, 0, 0, 1, 64, 256, 16384, 4194304, 67108864, 0, 0, 0, 16384, 0, 16384, 16384, 0, -470447874, -470447874, -470447874, 0, 0, 128, 0, 0, 8, 96, 2048, 32768, 262144, 8388608, 35056, 1376256, -471859200, 0, 0, 14, 16, 224, 2048, 32768, 2097152, 4194304, 8388608, -486539264, 0, 96, 128, 2048, 32768, 262144, 2097152, 262144, 2097152, 8388608, 33554432, 536870912, 1073741824, 0x80000000, 0, 1610612736, 0x80000000, 0, 0, 1, 524288, 1048576, 12582912, 0, 0, 0, 151311, 264503296, 2097152, 8388608, 33554432, 1610612736, 0x80000000, 262144, 8388608, 33554432, 536870912, 67108864, 4194304, 0, 4194304, 0, 4194304, 4194304, 0, 0, 524288, 8388608, 536870912, 1073741824, 0x80000000, 1, 4097, 8388609, 96, 2048, 32768, 1073741824, 0x80000000, 0, 96, 2048, 0x80000000, 0, 0, 96, 2048, 0, 0, 1, 12582912, 0, 0, 0, 0, 1641895695, 1641895695, 0, 0, 0, 249, 7404800, 15, 87808, 1835008, 1639972864, 0, 768, 5120, 16384, 65536, 1835008, 1835008, 12582912, 16777216, 1610612736, 0, 3, 4, 8, 768, 4096, 65536, 0, 0, 256, 512, 786432, 8, 256, 512, 4096, 16384, 1835008, 16384, 1835008, 12582912, 1610612736, 0, 0, 0, 256, 0, 0, 0, 4, 8, 16, 32, 1, 2, 8, 256, 16384, 524288, 16384, 524288, 1048576, 12582912, 1610612736, 0, 0, 0, 8388608, 0, 0, 0, 524288, 4194304, 0, 0, 0, 8388608, -548662288, -548662288, -548662288, 0, 0, 256, 16384, 65536, 520093696, -1073741824, 0, 0, 0, 16777216, 0, 16, 32, 960, 4096, 4980736, 520093696, 1073741824, 0, 32, 896, 4096, 57344, 1048576, 6291456, 8388608, 16777216, 100663296, 134217728, 268435456, 0x80000000, 0, 512, 786432, 4194304, 33554432, 134217728, 268435456, 0, 786432, 4194304, 134217728, 268435456, 0, 524288, 4194304, 268435456, 0, 0, 0, 0, 0, 4194304, 4194304, -540651761, 0, 0, 0, 2, 4, 8, 16, 96, 128, 264503296, -805306368, 0, 0, 0, 8, 256, 512, 19456, 131072, 3072, 16384, 131072, 262144, 8388608, 16777216, 512, 1024, 2048, 16384, 131072, 262144, 131072, 262144, 8388608, 33554432, 201326592, 268435456, 0, 3, 4, 256, 1024, 2048, 57344, 16384, 131072, 8388608, 33554432, 134217728, 268435456, 0, 3, 256, 1024, 16384, 131072, 33554432, 134217728, 1073741824, 0x80000000, 0, 0, 256, 524288, 0x80000000, 0, 3, 256, 33554432, 134217728, 1073741824, 0, 1, 2, 33554432, 1, 2, 134217728, 1073741824, 0, 1, 2, 134217728, 0, 0, 0, 64, 0, 0, 0, 16, 32, 896, 4096, 786432, 4194304, 16777216, 33554432, 201326592, 268435456, 1073741824, 0x80000000, 0, 0, 0, 15, 0, 4980736, 4980736, 4980736, 70460, 70460, 3478332, 0, 0, 1008, 4984832, 520093696, 60, 4864, 65536, 0, 0, 0, 12, 16, 32, 256, 512, 4096, 65536, 0, 0, 0, 67108864, 0, 0, 0, 12, 0, 256, 512, 65536, 0, 0, 1024, 512, 131072, 131072, 4, 16, 32, 65536, 0, 4, 16, 32, 0, 0, 0, 4, 16, 0, 0, 16384, 67108864, 0, 0, 1, 24, 96, 128, 256, 1024 +]; + +JSONiqTokenizer.TOKEN = +[ + "(0)", + "JSONChar", + "JSONCharRef", + "JSONPredefinedCharRef", + "ModuleDecl", + "Annotation", + "OptionDecl", + "Operator", + "Variable", + "Tag", + "EndTag", + "PragmaContents", + "DirCommentContents", + "DirPIContents", + "CDataSectionContents", + "AttrTest", + "Wildcard", + "EQName", + "IntegerLiteral", + "DecimalLiteral", + "DoubleLiteral", + "PredefinedEntityRef", + "'\"\"'", + "EscapeApos", + "AposChar", + "ElementContentChar", + "QuotAttrContentChar", + "AposAttrContentChar", + "NCName", + "QName", + "S", + "CharRef", + "CommentContents", + "DocTag", + "DocCommentContents", + "EOF", + "'!'", + "'\"'", + "'#'", + "'#)'", + "'$$'", + "''''", + "'('", + "'(#'", + "'(:'", + "'(:~'", + "')'", + "'*'", + "'*'", + "','", + "'-->'", + "'.'", + "'/'", + "'/>'", + "':'", + "':)'", + "';'", + "''), token: xmlcomment, next: function(stack){ stack.pop(); } } + ], + CData: [ + { name: 'CDataSectionContents', token: cdata }, + { name: n(']]>'), token: cdata, next: function(stack){ stack.pop(); } } + ], + PI: [ + { name: 'DirPIContents', token: pi }, + { name: n('?'), token: pi }, + { name: n('?>'), token: pi, next: function(stack){ stack.pop(); } } + ], + AposString: [ + { name: n('\'\''), token: 'string', next: function(stack){ stack.pop(); } }, + { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, + { name: 'CharRef', token: 'constant.language.escape' }, + { name: 'EscapeApos', token: 'constant.language.escape' }, + { name: 'AposChar', token: 'string' } + ], + QuotString: [ + { name: n('"'), token: 'string', next: function(stack){ stack.pop(); } }, + { name: 'JSONPredefinedCharRef', token: 'constant.language.escape' }, + { name: 'JSONCharRef', token: 'constant.language.escape' }, + { name: 'JSONChar', token: 'string' } + ] +}; + +exports.JSONiqLexer = function(){ return new Lexer(JSONiqTokenizer, Rules); }; +},{"./JSONiqTokenizer":"/node_modules/xqlint/lib/lexers/JSONiqTokenizer.js","./lexer":"/node_modules/xqlint/lib/lexers/lexer.js"}],"/node_modules/xqlint/lib/lexers/lexer.js":[function(_dereq_,module,exports){ +'use strict'; + +var TokenHandler = function(code) { + var input = code; + this.tokens = []; + + this.reset = function() { + input = input; + this.tokens = []; + }; + + this.startNonterminal = function() {}; + this.endNonterminal = function() {}; + + this.terminal = function(name, begin, end) { + this.tokens.push({ + name: name, + value: input.substring(begin, end) + }); + }; + + this.whitespace = function(begin, end) { + this.tokens.push({ + name: 'WS', + value: input.substring(begin, end) + }); + }; +}; + +exports.Lexer = function(Tokenizer, Rules) { + + this.tokens = []; + + this.getLineTokens = function(line, state) { + state = (state === 'start' || !state) ? '["start"]' : state; + var stack = JSON.parse(state); + var h = new TokenHandler(line); + var tokenizer = new Tokenizer(line, h); + var tokens = []; + + while(true) { + var currentState = stack[stack.length - 1]; + try { + h.tokens = []; + tokenizer['parse_' + currentState](); + var info = null; + + if(h.tokens.length > 1 && h.tokens[0].name === 'WS') { + tokens.push({ + type: 'text', + value: h.tokens[0].value + }); + h.tokens.splice(0, 1); + } + + var token = h.tokens[0]; + var rules = Rules[currentState]; + for(var k = 0; k < rules.length; k++) { + var rule = Rules[currentState][k]; + if((typeof(rule.name) === 'function' && rule.name(token)) || rule.name === token.name) { + info = rule; + break; + } + } + + if(token.name === 'EOF') { break; } + if(token.value === '') { throw 'Encountered empty string lexical rule.'; } + + tokens.push({ + type: info === null ? 'text' : (typeof(info.token) === 'function' ? info.token(token.value) : info.token), + value: token.value + }); + + if(info && info.next) { + info.next(stack); + } + + } catch(e) { + if(e instanceof tokenizer.ParseException) { + var index = 0; + for(var i=0; i < tokens.length; i++) { + index += tokens[i].value.length; + } + tokens.push({ type: 'text', value: line.substring(index) }); + return { + tokens: tokens, + state: JSON.stringify(['start']) + }; + } else { + throw e; + } + } + } + + return { + tokens: tokens, + state: JSON.stringify(stack) + }; + }; +}; +},{}]},{},["/node_modules/xqlint/lib/lexers/jsoniq_lexer.js"]); + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === "') { + var position = editor.getCursorPosition(); + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken(); + var atCursor = false; + var state = JSON.parse(state).pop(); + if ((token && token.value === '>') || state !== "StartTag") return; + if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){ + do { + token = iterator.stepBackward(); + } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); + } else { + atCursor = true; + } + var previous = iterator.stepBackward(); + if (!token || !hasType(token, 'meta.tag') || (previous !== null && previous.value.match('/'))) { + return + } + var tag = token.value.substring(1); + if (atCursor){ + var tag = tag.substring(0, position.column - token.start); + } + + return { + text: '>' + '', + selection: [1, 1] + } + } + }); + + } + oop.inherits(XQueryBehaviour, Behaviour); + + exports.XQueryBehaviour = XQueryBehaviour; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/jsoniq",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/xquery/jsoniq_lexer","ace/range","ace/mode/behaviour/xquery","ace/mode/folding/cstyle","ace/anchor"], function(require, exports, module) { +"use strict"; + +var WorkerClient = require("../worker/worker_client").WorkerClient; +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JSONiqLexer = require("./xquery/jsoniq_lexer").JSONiqLexer; +var Range = require("../range").Range; +var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var Anchor = require("../anchor").Anchor; + +var Mode = function() { + this.$tokenizer = new JSONiqLexer(); + this.$behaviour = new XQueryBehaviour(); + this.foldingRules = new CStyleFoldMode(); + this.$highlightRules = new TextHighlightRules(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.completer = { + getCompletions: function(editor, session, pos, prefix, callback) { + if (!session.$worker) + return callback(); + session.$worker.emit("complete", { data: { pos: pos, prefix: prefix } }); + session.$worker.on("complete", function(e){ + callback(null, e.data); + }); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var match = line.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/); + if (match) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*[\}\)]/.test(input); + }; + + this.autoOutdent = function(state, doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*[\}\)])/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var i, line; + var outdent = true; + var re = /^\s*\(:(.*):\)/; + + for (i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + var range = new Range(0, 0, 0, 0); + for (i=startRow; i<= endRow; i++) { + line = doc.getLine(i); + range.start.row = i; + range.end.row = i; + range.end.column = line.length; + + doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); + } + }; + this.createWorker = function(session) { + + var worker = new WorkerClient(["ace"], "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + worker.attachToDocument(session.getDocument()); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("markers", function(e) { + session.clearAnnotations(); + that.addMarkers(e.data, session); + }); + + return worker; + }; + + this.removeMarkers = function(session) { + var markers = session.getMarkers(false); + for (var id in markers) { + if (markers[id].clazz.indexOf('language_highlight_') === 0) { + session.removeMarker(id); + } + } + for (var i = 0; i < session.markerAnchors.length; i++) { + session.markerAnchors[i].detach(); + } + session.markerAnchors = []; + }; + + this.addMarkers = function(annos, mySession) { + var _self = this; + + if (!mySession.markerAnchors) mySession.markerAnchors = []; + this.removeMarkers(mySession); + mySession.languageAnnos = []; + annos.forEach(function(anno) { + var anchor = new Anchor(mySession.getDocument(), anno.pos.sl, anno.pos.sc || 0); + mySession.markerAnchors.push(anchor); + var markerId; + var colDiff = anno.pos.ec - anno.pos.sc; + var rowDiff = anno.pos.el - anno.pos.sl; + var gutterAnno = { + guttertext: anno.message, + type: anno.level || "warning", + text: anno.message + }; + + function updateFloat(single) { + if (markerId) + mySession.removeMarker(markerId); + gutterAnno.row = anchor.row; + if (anno.pos.sc !== undefined && anno.pos.ec !== undefined) { + var range = new Range(anno.pos.sl, anno.pos.sc, anno.pos.el, anno.pos.ec); + markerId = mySession.addMarker(range, "language_highlight_" + (anno.type ? anno.type : "default")); + } + if (single) mySession.setAnnotations(mySession.languageAnnos); + } + updateFloat(); + anchor.on("change", function() { + updateFloat(true); + }); + if (anno.message) mySession.languageAnnos.push(gutterAnno); + }); + mySession.setAnnotations(mySession.languageAnnos); + }; + + this.$id = "ace/mode/jsoniq"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-jsp.js b/htdocs/includes/ace/mode-jsp.js new file mode 100644 index 00000000000..ad13aed5f79 --- /dev/null +++ b/htdocs/includes/ace/mode-jsp.js @@ -0,0 +1,1388 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/java_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JavaHighlightRules = function() { + var keywords = ( + "abstract|continue|for|new|switch|" + + "assert|default|goto|package|synchronized|" + + "boolean|do|if|private|this|" + + "break|double|implements|protected|throw|" + + "byte|else|import|public|throws|" + + "case|enum|instanceof|return|transient|" + + "catch|extends|int|short|try|" + + "char|final|interface|static|void|" + + "class|finally|long|strictfp|volatile|" + + "const|float|native|super|while" + ); + + var buildinConstants = ("null|Infinity|NaN|undefined"); + + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JavaHighlightRules, TextHighlightRules); + +exports.JavaHighlightRules = JavaHighlightRules; +}); + +ace.define("ace/mode/jsp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/java_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var JavaHighlightRules = require("./java_highlight_rules").JavaHighlightRules; + +var JspHighlightRules = function() { + HtmlHighlightRules.call(this); + + var builtinVariables = 'request|response|out|session|' + + 'application|config|pageContext|page|Exception'; + + var keywords = 'page|include|taglib'; + + var startRules = [ + { + token : "comment", + regex : "<%--", + push : "jsp-dcomment" + }, { + token : "meta.tag", // jsp open tag + regex : "<%@?|<%=?|<%!?|]+>", + push : "jsp-start" + } + ]; + + var endRules = [ + { + token : "meta.tag", // jsp close tag + regex : "%>|<\\/jsp:[^>]+>", + next : "pop" + }, { + token: "variable.language", + regex : builtinVariables + }, { + token: "keyword", + regex : keywords + } + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.embedRules(JavaHighlightRules, "jsp-", endRules, ["start"]); + + this.addRules({ + "jsp-dcomment" : [{ + token : "comment", + regex : ".*?--%>", + next : "pop" + }] + }); + + this.normalizeRules(); +}; + +oop.inherits(JspHighlightRules, HtmlHighlightRules); + +exports.JspHighlightRules = JspHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/jsp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsp_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JspHighlightRules = require("./jsp_highlight_rules").JspHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JspHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.$id = "ace/mode/jsp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-jsx.js b/htdocs/includes/ace/mode-jsx.js new file mode 100644 index 00000000000..3f3d3e4bfa0 --- /dev/null +++ b/htdocs/includes/ace/mode-jsx.js @@ -0,0 +1,404 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/jsx_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JsxHighlightRules = function() { + var keywords = lang.arrayToMap( + ("break|do|instanceof|typeof|case|else|new|var|catch|finally|return|void|continue|for|switch|default|while|function|this|" + + "if|throw|" + + "delete|in|try|" + + "class|extends|super|import|from|into|implements|interface|static|mixin|override|abstract|final|" + + "number|int|string|boolean|variant|" + + "log|assert").split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("null|true|false|NaN|Infinity|__FILE__|__LINE__|undefined").split("|") + ); + + var reserved = lang.arrayToMap( + ("debugger|with|" + + "const|export|" + + "let|private|public|yield|protected|" + + "extern|native|as|operator|__fake__|__readonly__").split("|") + ); + + var identifierRe = "[a-zA-Z_][a-zA-Z0-9_]*\\b"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : [ + "storage.type", + "text", + "entity.name.function" + ], + regex : "(function)(\\s+)(" + identifierRe + ")" + }, { + token : function(value) { + if (value == "this") + return "variable.language"; + else if (value == "function") + return "storage.type"; + else if (keywords.hasOwnProperty(value) || reserved.hasOwnProperty(value)) + return "keyword"; + else if (buildinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (/^_?[A-Z][a-zA-Z0-9_]*$/.test(value)) + return "language.support.class"; + else + return "identifier"; + }, + regex : identifierRe + }, { + token : "keyword.operator", + regex : "!|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({<]" + }, { + token : "paren.rparen", + regex : "[\\])}>]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(JsxHighlightRules, TextHighlightRules); + +exports.JsxHighlightRules = JsxHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/jsx",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/jsx_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JsxHighlightRules = require("./jsx_highlight_rules").JsxHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +function Mode() { + this.HighlightRules = JsxHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +} +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/jsx"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-julia.js b/htdocs/includes/ace/mode-julia.js new file mode 100644 index 00000000000..ee1e88abe78 --- /dev/null +++ b/htdocs/includes/ace/mode-julia.js @@ -0,0 +1,296 @@ +ace.define("ace/mode/julia_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JuliaHighlightRules = function() { + + this.$rules = { start: + [ { include: '#function_decl' }, + { include: '#function_call' }, + { include: '#type_decl' }, + { include: '#keyword' }, + { include: '#operator' }, + { include: '#number' }, + { include: '#string' }, + { include: '#comment' } ], + '#bracket': + [ { token: 'keyword.bracket.julia', + regex: '\\(|\\)|\\[|\\]|\\{|\\}|,' } ], + '#comment': + [ { token: + [ 'punctuation.definition.comment.julia', + 'comment.line.number-sign.julia' ], + regex: '(#)(?!\\{)(.*$)'} ], + '#function_call': + [ { token: [ 'support.function.julia', 'text' ], + regex: '([a-zA-Z0-9_]+!?)([\\w\\xff-\\u218e\\u2455-\\uffff]*\\()'} ], + '#function_decl': + [ { token: [ 'keyword.other.julia', 'meta.function.julia', + 'entity.name.function.julia', 'meta.function.julia','text' ], + regex: '(function|macro)(\\s*)([a-zA-Z0-9_\\{]+!?)([\\w\\xff-\\u218e\\u2455-\\uffff]*)([(\\\\{])'} ], + '#keyword': + [ { token: 'keyword.other.julia', + regex: '\\b(?:function|type|immutable|macro|quote|abstract|bitstype|typealias|module|baremodule|new)\\b' }, + { token: 'keyword.control.julia', + regex: '\\b(?:if|else|elseif|while|for|in|begin|let|end|do|try|catch|finally|return|break|continue)\\b' }, + { token: 'storage.modifier.variable.julia', + regex: '\\b(?:global|local|const|export|import|importall|using)\\b' }, + { token: 'variable.macro.julia', regex: '@[\\w\\xff-\\u218e\\u2455-\\uffff]+\\b' } ], + '#number': + [ { token: 'constant.numeric.julia', + regex: '\\b0(?:x|X)[0-9a-fA-F]*|(?:\\b[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]*)?(?:im)?|\\bInf(?:32)?\\b|\\bNaN(?:32)?\\b|\\btrue\\b|\\bfalse\\b' } ], + '#operator': + [ { token: 'keyword.operator.update.julia', + regex: '=|:=|\\+=|-=|\\*=|/=|//=|\\.//=|\\.\\*=|\\\\=|\\.\\\\=|^=|\\.^=|%=|\\|=|&=|\\$=|<<=|>>=' }, + { token: 'keyword.operator.ternary.julia', regex: '\\?|:' }, + { token: 'keyword.operator.boolean.julia', + regex: '\\|\\||&&|!' }, + { token: 'keyword.operator.arrow.julia', regex: '->|<-|-->' }, + { token: 'keyword.operator.relation.julia', + regex: '>|<|>=|<=|==|!=|\\.>|\\.<|\\.>=|\\.>=|\\.==|\\.!=|\\.=|\\.!|<:|:>' }, + { token: 'keyword.operator.range.julia', regex: ':' }, + { token: 'keyword.operator.shift.julia', regex: '<<|>>' }, + { token: 'keyword.operator.bitwise.julia', regex: '\\||\\&|~' }, + { token: 'keyword.operator.arithmetic.julia', + regex: '\\+|-|\\*|\\.\\*|/|\\./|//|\\.//|%|\\.%|\\\\|\\.\\\\|\\^|\\.\\^' }, + { token: 'keyword.operator.isa.julia', regex: '::' }, + { token: 'keyword.operator.dots.julia', + regex: '\\.(?=[a-zA-Z])|\\.\\.+' }, + { token: 'keyword.operator.interpolation.julia', + regex: '\\$#?(?=.)' }, + { token: [ 'variable', 'keyword.operator.transposed-variable.julia' ], + regex: '([\\w\\xff-\\u218e\\u2455-\\uffff]+)((?:\'|\\.\')*\\.?\')' }, + { token: 'text', + regex: '\\[|\\('}, + { token: [ 'text', 'keyword.operator.transposed-matrix.julia' ], + regex: "([\\]\\)])((?:'|\\.')*\\.?')"} ], + '#string': + [ { token: 'punctuation.definition.string.begin.julia', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.julia', + regex: '\'', + next: 'pop' }, + { include: '#string_escaped_char' }, + { defaultToken: 'string.quoted.single.julia' } ] }, + { token: 'punctuation.definition.string.begin.julia', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.julia', + regex: '"', + next: 'pop' }, + { include: '#string_escaped_char' }, + { defaultToken: 'string.quoted.double.julia' } ] }, + { token: 'punctuation.definition.string.begin.julia', + regex: '\\b[\\w\\xff-\\u218e\\u2455-\\uffff]+"', + push: + [ { token: 'punctuation.definition.string.end.julia', + regex: '"[\\w\\xff-\\u218e\\u2455-\\uffff]*', + next: 'pop' }, + { include: '#string_custom_escaped_char' }, + { defaultToken: 'string.quoted.custom-double.julia' } ] }, + { token: 'punctuation.definition.string.begin.julia', + regex: '`', + push: + [ { token: 'punctuation.definition.string.end.julia', + regex: '`', + next: 'pop' }, + { include: '#string_escaped_char' }, + { defaultToken: 'string.quoted.backtick.julia' } ] } ], + '#string_custom_escaped_char': [ { token: 'constant.character.escape.julia', regex: '\\\\"' } ], + '#string_escaped_char': + [ { token: 'constant.character.escape.julia', + regex: '\\\\(?:\\\\|[0-3]\\d{,2}|[4-7]\\d?|x[a-fA-F0-9]{,2}|u[a-fA-F0-9]{,4}|U[a-fA-F0-9]{,8}|.)' } ], + '#type_decl': + [ { token: + [ 'keyword.control.type.julia', + 'meta.type.julia', + 'entity.name.type.julia', + 'entity.other.inherited-class.julia', + 'punctuation.separator.inheritance.julia', + 'entity.other.inherited-class.julia' ], + regex: '(type|immutable)(\\s+)([a-zA-Z0-9_]+)(?:(\\s*)(<:)(\\s*[.a-zA-Z0-9_:]+))?' }, + { token: [ 'other.typed-variable.julia', 'support.type.julia' ], + regex: '([a-zA-Z0-9_]+)(::[a-zA-Z0-9_{}]+)' } ] } + + this.normalizeRules(); +}; + +JuliaHighlightRules.metaData = { fileTypes: [ 'jl' ], + firstLineMatch: '^#!.*\\bjulia\\s*$', + foldingStartMarker: '^\\s*(?:if|while|for|begin|function|macro|module|baremodule|type|immutable|let)\\b(?!.*\\bend\\b).*$', + foldingStopMarker: '^\\s*(?:end)\\b.*$', + name: 'Julia', + scopeName: 'source.julia' } + + +oop.inherits(JuliaHighlightRules, TextHighlightRules); + +exports.JuliaHighlightRules = JuliaHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/julia",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/julia_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JuliaHighlightRules = require("./julia_highlight_rules").JuliaHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JuliaHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.blockComment = ""; + this.$id = "ace/mode/julia"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-kotlin.js b/htdocs/includes/ace/mode-kotlin.js new file mode 100644 index 00000000000..2621bae8681 --- /dev/null +++ b/htdocs/includes/ace/mode-kotlin.js @@ -0,0 +1,786 @@ +ace.define("ace/mode/kotlin_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var KotlinHighlightRules = function() { + + this.$rules = { + start: [{ + include: "#comments" + }, { + token: [ + "text", + "keyword.other.kotlin", + "text", + "entity.name.package.kotlin", + "text" + ], + regex: /^(\s*)(package)\b(?:(\s*)([^ ;$]+)(\s*))?/ + }, { + include: "#imports" + }, { + include: "#statements" + }], + "#classes": [{ + token: "text", + regex: /(?=\s*(?:companion|class|object|interface))/, + push: [{ + token: "text", + regex: /}|(?=$)/, + next: "pop" + }, { + token: ["keyword.other.kotlin", "text"], + regex: /\b((?:companion\s*)?)(class|object|interface)\b/, + push: [{ + token: "text", + regex: /(?=<|{|\(|:)/, + next: "pop" + }, { + token: "keyword.other.kotlin", + regex: /\bobject\b/ + }, { + token: "entity.name.type.class.kotlin", + regex: /\w+/ + }] + }, { + token: "text", + regex: //, + next: "pop" + }, { + include: "#generics" + }] + }, { + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#parameters" + }] + }, { + token: "keyword.operator.declaration.kotlin", + regex: /:/, + push: [{ + token: "text", + regex: /(?={|$)/, + next: "pop" + }, { + token: "entity.other.inherited-class.kotlin", + regex: /\w+/ + }, { + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#expressions" + }] + }] + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /\}/, + next: "pop" + }, { + include: "#statements" + }] + }] + }], + "#comments": [{ + token: "punctuation.definition.comment.kotlin", + regex: /\/\*/, + push: [{ + token: "punctuation.definition.comment.kotlin", + regex: /\*\//, + next: "pop" + }, { + defaultToken: "comment.block.kotlin" + }] + }, { + token: [ + "text", + "punctuation.definition.comment.kotlin", + "comment.line.double-slash.kotlin" + ], + regex: /(\s*)(\/\/)(.*$)/ + }], + "#constants": [{ + token: "constant.language.kotlin", + regex: /\b(?:true|false|null|this|super)\b/ + }, { + token: "constant.numeric.kotlin", + regex: /\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\.?[0-9]*|\.[0-9]+)(?:(?:e|E)(?:\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\b/ + }, { + token: "constant.other.kotlin", + regex: /\b[A-Z][A-Z0-9_]+\b/ + }], + "#expressions": [{ + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#expressions" + }] + }, { + include: "#types" + }, { + include: "#strings" + }, { + include: "#constants" + }, { + include: "#comments" + }, { + include: "#keywords" + }], + "#functions": [{ + token: "text", + regex: /(?=\s*fun)/, + push: [{ + token: "text", + regex: /}|(?=$)/, + next: "pop" + }, { + token: "keyword.other.kotlin", + regex: /\bfun\b/, + push: [{ + token: "text", + regex: /(?=\()/, + next: "pop" + }, { + token: "text", + regex: //, + next: "pop" + }, { + include: "#generics" + }] + }, { + token: ["text", "entity.name.function.kotlin"], + regex: /((?:[\.<\?>\w]+\.)?)(\w+)/ + }] + }, { + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#parameters" + }] + }, { + token: "keyword.operator.declaration.kotlin", + regex: /:/, + push: [{ + token: "text", + regex: /(?={|=|$)/, + next: "pop" + }, { + include: "#types" + }] + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /(?=\})/, + next: "pop" + }, { + include: "#statements" + }] + }, { + token: "keyword.operator.assignment.kotlin", + regex: /=/, + push: [{ + token: "text", + regex: /(?=$)/, + next: "pop" + }, { + include: "#expressions" + }] + }] + }], + "#generics": [{ + token: "keyword.operator.declaration.kotlin", + regex: /:/, + push: [{ + token: "text", + regex: /(?=,|>)/, + next: "pop" + }, { + include: "#types" + }] + }, { + include: "#keywords" + }, { + token: "storage.type.generic.kotlin", + regex: /\w+/ + }], + "#getters-and-setters": [{ + token: ["entity.name.function.kotlin", "text"], + regex: /\b(get)\b(\s*\(\s*\))/, + push: [{ + token: "text", + regex: /\}|(?=\bset\b)|$/, + next: "pop" + }, { + token: "keyword.operator.assignment.kotlin", + regex: /=/, + push: [{ + token: "text", + regex: /(?=$|\bset\b)/, + next: "pop" + }, { + include: "#expressions" + }] + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /\}/, + next: "pop" + }, { + include: "#expressions" + }] + }] + }, { + token: ["entity.name.function.kotlin", "text"], + regex: /\b(set)\b(\s*)(?=\()/, + push: [{ + token: "text", + regex: /\}|(?=\bget\b)|$/, + next: "pop" + }, { + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#parameters" + }] + }, { + token: "keyword.operator.assignment.kotlin", + regex: /=/, + push: [{ + token: "text", + regex: /(?=$|\bset\b)/, + next: "pop" + }, { + include: "#expressions" + }] + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /\}/, + next: "pop" + }, { + include: "#expressions" + }] + }] + }], + "#imports": [{ + token: [ + "text", + "keyword.other.kotlin", + "text", + "keyword.other.kotlin" + ], + regex: /^(\s*)(import)(\s+[^ $]+\s+)((?:as)?)/ + }], + "#keywords": [{ + token: "storage.modifier.kotlin", + regex: /\b(?:var|val|public|private|protected|abstract|final|enum|open|attribute|annotation|override|inline|var|val|vararg|lazy|in|out|internal|data|tailrec|operator|infix|const|yield|typealias|typeof)\b/ + }, { + token: "keyword.control.catch-exception.kotlin", + regex: /\b(?:try|catch|finally|throw)\b/ + }, { + token: "keyword.control.kotlin", + regex: /\b(?:if|else|while|for|do|return|when|where|break|continue)\b/ + }, { + token: "keyword.operator.kotlin", + regex: /\b(?:in|is|as|assert)\b/ + }, { + token: "keyword.operator.comparison.kotlin", + regex: /==|!=|===|!==|<=|>=|<|>/ + }, { + token: "keyword.operator.assignment.kotlin", + regex: /=/ + }, { + token: "keyword.operator.declaration.kotlin", + regex: /:/ + }, { + token: "keyword.operator.dot.kotlin", + regex: /\./ + }, { + token: "keyword.operator.increment-decrement.kotlin", + regex: /\-\-|\+\+/ + }, { + token: "keyword.operator.arithmetic.kotlin", + regex: /\-|\+|\*|\/|%/ + }, { + token: "keyword.operator.arithmetic.assign.kotlin", + regex: /\+=|\-=|\*=|\/=/ + }, { + token: "keyword.operator.logical.kotlin", + regex: /!|&&|\|\|/ + }, { + token: "keyword.operator.range.kotlin", + regex: /\.\./ + }, { + token: "punctuation.terminator.kotlin", + regex: /;/ + }], + "#namespaces": [{ + token: "keyword.other.kotlin", + regex: /\bnamespace\b/ + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /\}/, + next: "pop" + }, { + include: "#statements" + }] + }], + "#parameters": [{ + token: "keyword.operator.declaration.kotlin", + regex: /:/, + push: [{ + token: "text", + regex: /(?=,|\)|=)/, + next: "pop" + }, { + include: "#types" + }] + }, { + token: "keyword.operator.declaration.kotlin", + regex: /=/, + push: [{ + token: "text", + regex: /(?=,|\))/, + next: "pop" + }, { + include: "#expressions" + }] + }, { + include: "#keywords" + }, { + token: "variable.parameter.function.kotlin", + regex: /\w+/ + }], + "#statements": [{ + include: "#namespaces" + }, { + include: "#typedefs" + }, { + include: "#classes" + }, { + include: "#functions" + }, { + include: "#variables" + }, { + include: "#getters-and-setters" + }, { + include: "#expressions" + }], + "#strings": [{ + token: "punctuation.definition.string.begin.kotlin", + regex: /"""/, + push: [{ + token: "punctuation.definition.string.end.kotlin", + regex: /"""/, + next: "pop" + }, { + token: "variable.parameter.template.kotlin", + regex: /\$\w+|\$\{[^\}]+\}/ + }, { + token: "constant.character.escape.kotlin", + regex: /\\./ + }, { + defaultToken: "string.quoted.third.kotlin" + }] + }, { + token: "punctuation.definition.string.begin.kotlin", + regex: /"/, + push: [{ + token: "punctuation.definition.string.end.kotlin", + regex: /"/, + next: "pop" + }, { + token: "variable.parameter.template.kotlin", + regex: /\$\w+|\$\{[^\}]+\}/ + }, { + token: "constant.character.escape.kotlin", + regex: /\\./ + }, { + defaultToken: "string.quoted.double.kotlin" + }] + }, { + token: "punctuation.definition.string.begin.kotlin", + regex: /'/, + push: [{ + token: "punctuation.definition.string.end.kotlin", + regex: /'/, + next: "pop" + }, { + token: "constant.character.escape.kotlin", + regex: /\\./ + }, { + defaultToken: "string.quoted.single.kotlin" + }] + }, { + token: "punctuation.definition.string.begin.kotlin", + regex: /`/, + push: [{ + token: "punctuation.definition.string.end.kotlin", + regex: /`/, + next: "pop" + }, { + defaultToken: "string.quoted.single.kotlin" + }] + }], + "#typedefs": [{ + token: "text", + regex: /(?=\s*type)/, + push: [{ + token: "text", + regex: /(?=$)/, + next: "pop" + }, { + token: "keyword.other.kotlin", + regex: /\btype\b/ + }, { + token: "text", + regex: //, + next: "pop" + }, { + include: "#generics" + }] + }, { + include: "#expressions" + }] + }], + "#types": [{ + token: "storage.type.buildin.kotlin", + regex: /\b(?:Any|Unit|String|Int|Boolean|Char|Long|Double|Float|Short|Byte|dynamic)\b/ + }, { + token: "storage.type.buildin.array.kotlin", + regex: /\b(?:IntArray|BooleanArray|CharArray|LongArray|DoubleArray|FloatArray|ShortArray|ByteArray)\b/ + }, { + token: [ + "storage.type.buildin.collection.kotlin", + "text" + ], + regex: /\b(Array|List|Map)(<\b)/, + push: [{ + token: "text", + regex: />/, + next: "pop" + }, { + include: "#types" + }, { + include: "#keywords" + }] + }, { + token: "text", + regex: /\w+/, + next: "pop" + }, { + include: "#types" + }, { + include: "#keywords" + }] + }, { + token: ["keyword.operator.tuple.kotlin", "text"], + regex: /(#)(\()/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#expressions" + }] + }, { + token: "text", + regex: /\{/, + push: [{ + token: "text", + regex: /\}/, + next: "pop" + }, { + include: "#statements" + }] + }, { + token: "text", + regex: /\(/, + push: [{ + token: "text", + regex: /\)/, + next: "pop" + }, { + include: "#types" + }] + }, { + token: "keyword.operator.declaration.kotlin", + regex: /->/ + }], + "#variables": [{ + token: "text", + regex: /(?=\s*(?:var|val))/, + push: [{ + token: "text", + regex: /(?=:|=|$)/, + next: "pop" + }, { + token: "keyword.other.kotlin", + regex: /\b(?:var|val)\b/, + push: [{ + token: "text", + regex: /(?=:|=|$)/, + next: "pop" + }, { + token: "text", + regex: //, + next: "pop" + }, { + include: "#generics" + }] + }, { + token: ["text", "entity.name.variable.kotlin"], + regex: /((?:[\.<\?>\w]+\.)?)(\w+)/ + }] + }, { + token: "keyword.operator.declaration.kotlin", + regex: /:/, + push: [{ + token: "text", + regex: /(?==|$)/, + next: "pop" + }, { + include: "#types" + }, { + include: "#getters-and-setters" + }] + }, { + token: "keyword.operator.assignment.kotlin", + regex: /=/, + push: [{ + token: "text", + regex: /(?=$)/, + next: "pop" + }, { + include: "#expressions" + }, { + include: "#getters-and-setters" + }] + }] + }] + } + + this.normalizeRules(); +}; + +KotlinHighlightRules.metaData = { + fileTypes: ["kt", "kts"], + name: "Kotlin", + scopeName: "source.Kotlin" +} + + +oop.inherits(KotlinHighlightRules, TextHighlightRules); + +exports.KotlinHighlightRules = KotlinHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/kotlin",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/kotlin_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var KotlinHighlightRules = require("./kotlin_highlight_rules").KotlinHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = KotlinHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/kotlin" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-latex.js b/htdocs/includes/ace/mode-latex.js new file mode 100644 index 00000000000..cfdf56f3cc1 --- /dev/null +++ b/htdocs/includes/ace/mode-latex.js @@ -0,0 +1,224 @@ +ace.define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LatexHighlightRules = function() { + + this.$rules = { + "start" : [{ + token : "comment", + regex : "%.*$" + }, { + token : ["keyword", "lparen", "variable.parameter", "rparen", "lparen", "storage.type", "rparen"], + regex : "(\\\\(?:documentclass|usepackage|input))(?:(\\[)([^\\]]*)(\\]))?({)([^}]*)(})" + }, { + token : ["keyword","lparen", "variable.parameter", "rparen"], + regex : "(\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?" + }, { + token : ["storage.type", "lparen", "variable.parameter", "rparen"], + regex : "(\\\\(?:begin|end))({)(\\w*)(})" + }, { + token : "storage.type", + regex : "\\\\[a-zA-Z]+" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "constant.character.escape", + regex : "\\\\[^a-zA-Z]?" + }, { + token : "string", + regex : "\\${1,2}", + next : "equation" + }], + "equation" : [{ + token : "comment", + regex : "%.*$" + }, { + token : "string", + regex : "\\${1,2}", + next : "start" + }, { + token : "constant.character.escape", + regex : "\\\\(?:[^a-zA-Z]|[a-zA-Z]+)" + }, { + token : "error", + regex : "^\\s*$", + next : "start" + }, { + defaultToken : "string" + }] + + }; +}; +oop.inherits(LatexHighlightRules, TextHighlightRules); + +exports.LatexHighlightRules = LatexHighlightRules; + +}); + +ace.define("ace/mode/folding/latex",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var FoldMode = exports.FoldMode = function() {}; + +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /^\s*\\(begin)|(section|subsection|paragraph)\b|{\s*$/; + this.foldingStopMarker = /^\s*\\(end)\b|^\s*}/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.doc.getLine(row); + var match = this.foldingStartMarker.exec(line); + if (match) { + if (match[1]) + return this.latexBlock(session, row, match[0].length - 1); + if (match[2]) + return this.latexSection(session, row, match[0].length - 1); + + return this.openingBracketBlock(session, "{", row, match.index); + } + + var match = this.foldingStopMarker.exec(line); + if (match) { + if (match[1]) + return this.latexBlock(session, row, match[0].length - 1); + + return this.closingBracketBlock(session, "}", row, match.index + match[0].length); + } + }; + + this.latexBlock = function(session, row, column) { + var keywords = { + "\\begin": 1, + "\\end": -1 + }; + + var stream = new TokenIterator(session, row, column); + var token = stream.getCurrentToken(); + if (!token || !(token.type == "storage.type" || token.type == "constant.character.escape")) + return; + + var val = token.value; + var dir = keywords[val]; + + var getType = function() { + var token = stream.stepForward(); + var type = token.type == "lparen" ?stream.stepForward().value : ""; + if (dir === -1) { + stream.stepBackward(); + if (type) + stream.stepBackward(); + } + return type; + }; + var stack = [getType()]; + var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length; + var startRow = row; + + stream.step = dir === -1 ? stream.stepBackward : stream.stepForward; + while(token = stream.step()) { + if (!token || !(token.type == "storage.type" || token.type == "constant.character.escape")) + continue; + var level = keywords[token.value]; + if (!level) + continue; + var type = getType(); + if (level === dir) + stack.unshift(type); + else if (stack.shift() !== type || !stack.length) + break; + } + + if (stack.length) + return; + + var row = stream.getCurrentTokenRow(); + if (dir === -1) + return new Range(row, session.getLine(row).length, startRow, startColumn); + stream.stepBackward(); + return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn()); + }; + + this.latexSection = function(session, row, column) { + var keywords = ["\\subsection", "\\section", "\\begin", "\\end", "\\paragraph"]; + + var stream = new TokenIterator(session, row, column); + var token = stream.getCurrentToken(); + if (!token || token.type != "storage.type") + return; + + var startLevel = keywords.indexOf(token.value); + var stackDepth = 0 + var endRow = row; + + while(token = stream.stepForward()) { + if (token.type !== "storage.type") + continue; + var level = keywords.indexOf(token.value); + + if (level >= 2) { + if (!stackDepth) + endRow = stream.getCurrentTokenRow() - 1; + stackDepth += level == 2 ? 1 : - 1; + if (stackDepth < 0) + break + } else if (level >= startLevel) + break; + } + + if (!stackDepth) + endRow = stream.getCurrentTokenRow() - 1; + + while (endRow > row && !/\S/.test(session.getLine(endRow))) + endRow--; + + return new Range( + row, session.getLine(row).length, + endRow, session.getLine(endRow).length + ); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/latex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/latex_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/latex"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LatexHighlightRules = require("./latex_highlight_rules").LatexHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var LatexFoldMode = require("./folding/latex").FoldMode; + +var Mode = function() { + this.HighlightRules = LatexHighlightRules; + this.foldingRules = new LatexFoldMode(); + this.$behaviour = new CstyleBehaviour({ braces: true }); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + + this.lineCommentStart = "%"; + + this.$id = "ace/mode/latex"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-lean.js b/htdocs/includes/ace/mode-lean.js new file mode 100644 index 00000000000..00d95f80d29 --- /dev/null +++ b/htdocs/includes/ace/mode-lean.js @@ -0,0 +1,281 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/lean_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var leanHighlightRules = function() { + + var keywordControls = ( + [ "add_rewrite", "alias", "as", "assume", "attribute", + "begin", "by", "calc", "calc_refl", "calc_subst", "calc_trans", "check", + "classes", "coercions", "conjecture", "constants", "context", + "corollary", "else", "end", "environment", "eval", "example", + "exists", "exit", "export", "exposing", "extends", "fields", "find_decl", + "forall", "from", "fun", "have", "help", "hiding", "if", + "import", "in", "infix", "infixl", "infixr", "instances", + "let", "local", "match", "namespace", "notation", "obtain", "obtains", + "omit", "opaque", "open", "options", "parameter", "parameters", "postfix", + "precedence", "prefix", "premise", "premises", "print", "private", "proof", + "protected", "qed", "raw", "renaming", "section", "set_option", + "show", "tactic_hint", "take", "then", "universe", + "universes", "using", "variable", "variables", "with"].join("|") + ); + + var nameProviders = ( + ["inductive", "structure", "record", "theorem", "axiom", + "axioms", "lemma", "hypothesis", "definition", "constant"].join("|") + ); + + var storageType = ( + ["Prop", "Type", "Type'", "Type₊", "Type₁", "Type₂", "Type₃"].join("|") + ); + + var storageModifiers = ( + "\\[(" + + ["abbreviations", "all-transparent", "begin-end-hints", "class", "classes", "coercion", + "coercions", "declarations", "decls", "instance", "irreducible", + "multiple-instances", "notation", "notations", "parsing-only", "persistent", + "reduce-hints", "reducible", "tactic-hints", "visible", "wf", "whnf" + ].join("|") + + ")\\]" + ); + + var keywordOperators = ( + [].join("|") + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "keyword.operator" : keywordOperators, + "variable.language": "sorry" + }, "identifier"); + + var identifierRe = "[A-Za-z_\u03b1-\u03ba\u03bc-\u03fb\u1f00-\u1ffe\u2100-\u214f][A-Za-z0-9_'\u03b1-\u03ba\u03bc-\u03fb\u1f00-\u1ffe\u2070-\u2079\u207f-\u2089\u2090-\u209c\u2100-\u214f]*"; + var operatorRe = new RegExp(["#", "@", "->", "∼", "↔", "/", "==", "=", ":=", "<->", + "/\\", "\\/", "∧", "∨", "≠", "<", ">", "≤", "≥", "¬", + "<=", ">=", "⁻¹", "⬝", "▸", "\\+", "\\*", "-", "/", + "λ", "→", "∃", "∀", ":="].join("|")); + + this.$rules = { + "start" : [ + { + token : "comment", // single line comment "--" + regex : "--.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment "/-" + regex : "\\/-", + next : "comment" + }, { + stateName: "qqstring", + token : "string.start", regex : '"', next : [ + {token : "string.end", regex : '"', next : "start"}, + {token : "constant.language.escape", regex : /\\[n"\\]/}, + {defaultToken: "string"} + ] + }, { + token : "keyword.control", regex : nameProviders, next : [ + {token : "variable.language", regex : identifierRe, next : "start"} ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "storage.modifier", + regex : storageModifiers + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "operator", + regex : operatorRe + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ {token: "comment", regex: "-/", next: "start"}, + {defaultToken: "comment"} ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(leanHighlightRules, TextHighlightRules); + +exports.leanHighlightRules = leanHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/lean",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lean_highlight_rules","ace/mode/matching_brace_outdent","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var leanHighlightRules = require("./lean_highlight_rules").leanHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = leanHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + this.blockComment = {start: "/-", end: "-/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "- "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/lean"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-less.js b/htdocs/includes/ace/mode-less.js new file mode 100644 index 00000000000..c407a0979aa --- /dev/null +++ b/htdocs/includes/ace/mode-less.js @@ -0,0 +1,819 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/less_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CssHighlightRules = require('./css_highlight_rules'); + +var LessHighlightRules = function() { + + + var keywordList = "@import|@media|@font-face|@keyframes|@-webkit-keyframes|@supports|" + + "@charset|@plugin|@namespace|@document|@page|@viewport|@-ms-viewport|" + + "or|and|when|not"; + + var keywords = keywordList.split('|'); + + var properties = CssHighlightRules.supportType.split('|'); + + var keywordMapper = this.createKeywordMapper({ + "support.constant": CssHighlightRules.supportConstant, + "keyword": keywordList, + "support.constant.color": CssHighlightRules.supportConstantColor, + "support.constant.fonts": CssHighlightRules.supportConstantFonts + }, "identifier", true); + + var numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : ["support.function", "paren.lparen", "string", "paren.rparen"], + regex : "(url)(\\()(.*)(\\))" + }, { + token : ["support.function", "paren.lparen"], + regex : "(:extend|[a-z0-9_\\-]+)(\\()" + }, { + token : function(value) { + if (keywords.indexOf(value.toLowerCase()) > -1) + return "keyword"; + else + return "variable"; + }, + regex : "[@\\$][a-z0-9_\\-@\\$]*\\b" + }, { + token : "variable", + regex : "[@\\$]\\{[a-z0-9_\\-@\\$]*\\}" + }, { + token : function(first, second) { + if(properties.indexOf(first.toLowerCase()) > -1) { + return ["support.type.property", "text"]; + } + else { + return ["support.type.unknownProperty", "text"]; + } + }, + regex : "([a-z0-9-_]+)(\\s*:)" + }, { + token : "keyword", + regex : "&" // special case - always treat as keyword + }, { + token : keywordMapper, + regex : "\\-?[@a-z_][@a-z0-9_\\-]*" + }, { + token: "variable.language", + regex: "#[a-z0-9-_]+" + }, { + token: "variable.language", + regex: "\\.[a-z0-9-_]+" + }, { + token: "variable.language", + regex: ":[a-z_][a-z0-9-_]*" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + token : "keyword.operator", + regex : "<|>|<=|>=|=|!=|-|%|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }, { + caseInsensitive: true + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + this.normalizeRules(); +}; + +oop.inherits(LessHighlightRules, TextHighlightRules); + +exports.LessHighlightRules = LessHighlightRules; + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/less",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/less_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/css_completions","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LessHighlightRules = require("./less_highlight_rules").LessHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CssCompletions = require("./css_completions").CssCompletions; + +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = LessHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions("ruleset", session, pos, prefix); + }; + + this.$id = "ace/mode/less"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-liquid.js b/htdocs/includes/ace/mode-liquid.js new file mode 100644 index 00000000000..925ef305f24 --- /dev/null +++ b/htdocs/includes/ace/mode-liquid.js @@ -0,0 +1,1184 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/liquid_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var LiquidHighlightRules = function() { + HtmlHighlightRules.call(this); + var functions = ( + "date|capitalize|downcase|upcase|first|last|join|sort|map|size|escape|" + + "escape_once|strip_html|strip_newlines|newline_to_br|replace|replace_first|" + + "truncate|truncatewords|prepend|append|minus|plus|times|divided_by|split" + ); + + var keywords = ( + "capture|endcapture|case|endcase|when|comment|endcomment|" + + "cycle|for|endfor|in|reversed|if|endif|else|elsif|include|endinclude|unless|endunless|" + + "style|text|image|widget|plugin|marker|endmarker|tablerow|endtablerow" + ); + + var builtinVariables = 'forloop|tablerowloop'; + + var definitions = ("assign"); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": builtinVariables, + "keyword": keywords, + "support.function": functions, + "keyword.definition": definitions + }, "identifier"); + for (var rule in this.$rules) { + this.$rules[rule].unshift({ + token : "variable", + regex : "{%", + push : "liquid-start" + }, { + token : "variable", + regex : "{{", + push : "liquid-start" + }); + } + + this.addRules({ + "liquid-start" : [{ + token: "variable", + regex: "}}", + next: "pop" + }, { + token: "variable", + regex: "%}", + next: "pop" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "/|\\*|\\-|\\+|=|!=|\\?\\:" + }, { + token : "paren.lparen", + regex : /[\[\({]/ + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "text", + regex : "\\s+" + }] + }); + + this.normalizeRules(); +}; +oop.inherits(LiquidHighlightRules, TextHighlightRules); + +exports.LiquidHighlightRules = LiquidHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/liquid",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/liquid_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LiquidHighlightRules = require("./liquid_highlight_rules").LiquidHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = LiquidHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/liquid"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-lisp.js b/htdocs/includes/ace/mode-lisp.js new file mode 100644 index 00000000000..fb0897d9da5 --- /dev/null +++ b/htdocs/includes/ace/mode-lisp.js @@ -0,0 +1,105 @@ +ace.define("ace/mode/lisp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LispHighlightRules = function() { + var keywordControl = "case|do|let|loop|if|else|when"; + var keywordOperator = "eq|neq|and|or"; + var constantLanguage = "null|nil"; + var supportFunctions = "cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn"; + + var keywordMapper = this.createKeywordMapper({ + "keyword.control": keywordControl, + "keyword.operator": keywordOperator, + "constant.language": constantLanguage, + "support.function": supportFunctions + }, "identifier", true); + + this.$rules = + { + "start": [ + { + token : "comment", + regex : ";.*$" + }, + { + token: ["storage.type.function-type.lisp", "text", "entity.name.function.lisp"], + regex: "(?:\\b(?:(defun|defmethod|defmacro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)" + }, + { + token: ["punctuation.definition.constant.character.lisp", "constant.character.lisp"], + regex: "(#)((?:\\w|[\\\\+-=<>'\"&#])+)" + }, + { + token: ["punctuation.definition.variable.lisp", "variable.other.global.lisp", "punctuation.definition.variable.lisp"], + regex: "(\\*)(\\S*)(\\*)" + }, + { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, + { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(?:L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, + { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token : "string", + regex : '"(?=.)', + next : "qqstring" + } + ], + "qqstring": [ + { + token: "constant.character.escape.lisp", + regex: "\\\\." + }, + { + token : "string", + regex : '[^"\\\\]+' + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + } + ] +} + +}; + +oop.inherits(LispHighlightRules, TextHighlightRules); + +exports.LispHighlightRules = LispHighlightRules; +}); + +ace.define("ace/mode/lisp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lisp_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LispHighlightRules = require("./lisp_highlight_rules").LispHighlightRules; + +var Mode = function() { + this.HighlightRules = LispHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ";"; + + this.$id = "ace/mode/lisp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-live_script.js b/htdocs/includes/ace/mode-live_script.js new file mode 100644 index 00000000000..a5d36ebe220 --- /dev/null +++ b/htdocs/includes/ace/mode-live_script.js @@ -0,0 +1,481 @@ +ace.define("ace/mode/live_script_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LiveScriptHighlightRules = function() { + + this.$rules = { start: + [ { token: 'punctuation.definition.comment.livescript', + regex: '\\/\\*', + push: + [ { token: 'punctuation.definition.comment.livescript', + regex: '\\*\\/', + next: 'pop' }, + { token: 'storage.type.annotation.livescriptscript', + regex: '@\\w*' }, + { defaultToken: 'comment.block.livescript' } ] }, + { token: + [ 'punctuation.definition.comment.livescript', + 'comment.line.number-sign.livescript' ], + regex: '(#)(?!\\{)(.*$)' }, + { token: + [ 'variable.parameter.function.livescript', + 'meta.inline.function.livescript', + 'storage.type.function.livescript', + 'meta.inline.function.livescript', + 'variable.parameter.function.livescript', + 'meta.inline.function.livescript', + 'storage.type.function.livescript' ], + regex: '(\\s*\\!?\\(\\s*[^()]*?\\))(\\s*)(!?[~-]{1,2}>)|(\\s*\\!?)(\\(?[^()]*?\\)?)(\\s*)(<[~-]{1,2}!?)', + comment: 'match stuff like: a -> … ' }, + { token: + [ 'keyword.operator.new.livescript', + 'meta.class.instance.constructor', + 'entity.name.type.instance.livescript' ], + regex: '(new)(\\s+)(\\w+(?:\\.\\w*)*)' }, + { token: 'keyword.illegal.livescript', + regex: '\\bp(?:ackage|r(?:ivate|otected)|ublic)|interface|enum|static|yield\\b' }, + { token: 'punctuation.definition.string.begin.livescript', + regex: '\'\'\'', + push: + [ { token: 'punctuation.definition.string.end.livescript', + regex: '\'\'\'', + next: 'pop' }, + { defaultToken: 'string.quoted.heredoc.livescript' } ] }, + { token: 'punctuation.definition.string.begin.livescript', + regex: '"""', + push: + [ { token: 'punctuation.definition.string.end.livescript', + regex: '"""', + next: 'pop' }, + { token: 'constant.character.escape.livescript', + regex: '\\\\.' }, + { include: '#interpolated_livescript' }, + { defaultToken: 'string.quoted.double.heredoc.livescript' } ] }, + { token: 'punctuation.definition.string.begin.livescript', + regex: '``', + push: + [ { token: 'punctuation.definition.string.end.livescript', + regex: '``', + next: 'pop' }, + { token: 'constant.character.escape.livescript', + regex: '\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)' }, + { defaultToken: 'string.quoted.script.livescript' } ] }, + { token: 'string.array-literal.livescript', + regex: '<\\[', + push: + [ { token: 'string.array-literal.livescript', + regex: '\\]>', + next: 'pop' }, + { defaultToken: 'string.array-literal.livescript' } ] }, + { token: 'string.regexp.livescript', + regex: '/{2}(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])/{2}' }, + { token: 'string.regexp.livescript', + regex: '/{2}$', + push: + [ { token: 'string.regexp.livescript', + regex: '/{2}[imgy]{0,4}', + next: 'pop' }, + { include: '#embedded_spaced_comment' }, + { include: '#interpolated_livescript' }, + { defaultToken: 'string.regexp.livescript' } ] }, + { token: 'string.regexp.livescript', + regex: '/{2}', + push: + [ { token: 'string.regexp.livescript', + regex: '/{2}[imgy]{0,4}', + next: 'pop' }, + { token: 'constant.character.escape.livescript', + regex: '\\\\(?:x[\\da-fA-F]{2}|[0-2][0-7]{0,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.)' }, + { include: '#interpolated_livescript' }, + { defaultToken: 'string.regexp.livescript' } ] }, + { token: 'string.regexp.livescript', + regex: '/(?![\\s=/*+{}?]).*?[^\\\\]/[igmy]{0,4}(?![a-zA-Z0-9])' }, + { token: 'keyword.control.livescript', + regex: '\\b(?)|\\+\\+|\\+|~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<(?!\\[)|(?|(?)|&&|\\.\\.(?:\\.)?|\\s\\.\\s|\\?|\\||\\|\\||\\:|\\*=|(?)|\\+\\+|\\+|\n\t\t\t\t~(?!~?>)|==|=|!=|<=|>=|<<=|>>=|\n\t\t\t\t>>>=|<>|<(?!\\[)|(?|(?)|&&|\\.\\.(\\.)?|\\s\\.\\s|\\?|\\||\\|\\||\\:|\\*=|(?)' }, + { token: 'keyword.operator.livescript', + regex: '(?<=\\s|^)[\\[\\{](?=.*?[\\]\\}]\\s+[:=])', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?<=\\s|^)([\\[\\{])(?=.*?[\\]\\}]\\s+[:=])', + push: + [ { token: 'keyword.operator.livescript', + regex: '[\\]\\}]\\s*[:=]', + next: 'pop' }, + { include: '#variable_name' }, + { include: '#instance_variable' }, + { include: '#single_quoted_string' }, + { include: '#double_quoted_string' }, + { include: '#numeric' }, + { defaultToken: 'meta.variable.assignment.destructured.livescript' } ] }, + { token: + [ 'meta.function.livescript', + 'entity.name.function.livescript', + 'entity.name.function.livescript', + 'entity.name.function.livescript', + 'entity.name.function.livescript', + 'variable.parameter.function.livescript', + 'entity.name.function.livescript', + 'storage.type.function.livescript' ], + regex: '(\\s*)(?=[a-zA-Z\\$_])([a-zA-Z\\$_])((?:[\\w$.:-])*)(\\s*)([:=])((?:\\s*!?\\s*\\(.*\\))?)(\\s*)(!?[~-]{1,2}>)' }, + { token: 'storage.type.function.livescript', + regex: '!?[~-]{1,2}>' }, + { token: 'constant.language.boolean.true.livescript', + regex: '\\b(?|=>)\\s*$|.*[\\[{]\\s*$', + foldingStopMarker: '^\\s*$|^\\s*[}\\]]\\s*$', + keyEquivalent: '^~C', + name: 'LiveScript', + scopeName: 'source.livescript' } + + +oop.inherits(LiveScriptHighlightRules, TextHighlightRules); + +exports.LiveScriptHighlightRules = LiveScriptHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/)#(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/live_script",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/live_script_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LiveScriptHighlightRules = require("./live_script_highlight_rules").LiveScriptHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = LiveScriptHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/live_script" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-livescript.js b/htdocs/includes/ace/mode-livescript.js new file mode 100644 index 00000000000..0e480a9133a --- /dev/null +++ b/htdocs/includes/ace/mode-livescript.js @@ -0,0 +1,271 @@ +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/livescript",["require","exports","module","ace/tokenizer","ace/mode/matching_brace_outdent","ace/mode/text"], function(require, exports, module){ + var identifier, LiveScriptMode, keywordend, stringfill; + identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*'; + exports.Mode = LiveScriptMode = (function(superclass){ + var indenter, prototype = extend$((import$(LiveScriptMode, superclass).displayName = 'LiveScriptMode', LiveScriptMode), superclass).prototype, constructor = LiveScriptMode; + function LiveScriptMode(){ + var that; + this.$tokenizer = new (require('../tokenizer')).Tokenizer(LiveScriptMode.Rules); + if (that = require('../mode/matching_brace_outdent')) { + this.$outdent = new that.MatchingBraceOutdent; + } + this.$id = "ace/mode/livescript"; + } + indenter = RegExp('(?:[({[=:]|[-~]>|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*' + identifier + ')?))\\s*$'); + prototype.getNextLineIndent = function(state, line, tab){ + var indent, tokens; + indent = this.$getIndent(line); + tokens = this.$tokenizer.getLineTokens(line, state).tokens; + if (!(tokens.length && tokens[tokens.length - 1].type === 'comment')) { + if (state === 'start' && indenter.test(line)) { + indent += tab; + } + } + return indent; + }; + prototype.lineCommentStart = "#"; + prototype.blockComment = {start: "###", end: "###"}; + prototype.checkOutdent = function(state, line, input){ + var ref$; + return (ref$ = this.$outdent) != null ? ref$.checkOutdent(line, input) : void 8; + }; + prototype.autoOutdent = function(state, doc, row){ + var ref$; + return (ref$ = this.$outdent) != null ? ref$.autoOutdent(doc, row) : void 8; + }; + return LiveScriptMode; + }(require('../mode/text').Mode)); + keywordend = '(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))'; + stringfill = { + defaultToken: 'string' + }; + LiveScriptMode.Rules = { + start: [ + { + token: 'keyword', + regex: '(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)' + keywordend + }, { + token: 'constant.language', + regex: '(?:true|false|yes|no|on|off|null|void|undefined)' + keywordend + }, { + token: 'invalid.illegal', + regex: '(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)' + keywordend + }, { + token: 'language.support.class', + regex: '(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)' + keywordend + }, { + token: 'language.support.function', + regex: '(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)' + keywordend + }, { + token: 'variable.language', + regex: '(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)' + keywordend + }, { + token: 'identifier', + regex: identifier + '\\s*:(?![:=])' + }, { + token: 'variable', + regex: identifier + }, { + token: 'keyword.operator', + regex: '(?:\\.{3}|\\s+\\?)' + }, { + token: 'keyword.variable', + regex: '(?:@+|::|\\.\\.)', + next: 'key' + }, { + token: 'keyword.operator', + regex: '\\.\\s*', + next: 'key' + }, { + token: 'string', + regex: '\\\\\\S[^\\s,;)}\\]]*' + }, { + token: 'string.doc', + regex: '\'\'\'', + next: 'qdoc' + }, { + token: 'string.doc', + regex: '"""', + next: 'qqdoc' + }, { + token: 'string', + regex: '\'', + next: 'qstring' + }, { + token: 'string', + regex: '"', + next: 'qqstring' + }, { + token: 'string', + regex: '`', + next: 'js' + }, { + token: 'string', + regex: '<\\[', + next: 'words' + }, { + token: 'string.regex', + regex: '//', + next: 'heregex' + }, { + token: 'comment.doc', + regex: '/\\*', + next: 'comment' + }, { + token: 'comment', + regex: '#.*' + }, { + token: 'string.regex', + regex: '\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}', + next: 'key' + }, { + token: 'constant.numeric', + regex: '(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)' + }, { + token: 'lparen', + regex: '[({[]' + }, { + token: 'rparen', + regex: '[)}\\]]', + next: 'key' + }, { + token: 'keyword.operator', + regex: '[\\^!|&%+\\-]+' + }, { + token: 'text', + regex: '\\s+' + } + ], + heregex: [ + { + token: 'string.regex', + regex: '.*?//[gimy$?]{0,4}', + next: 'start' + }, { + token: 'string.regex', + regex: '\\s*#{' + }, { + token: 'comment.regex', + regex: '\\s+(?:#.*)?' + }, { + defaultToken: 'string.regex' + } + ], + key: [ + { + token: 'keyword.operator', + regex: '[.?@!]+' + }, { + token: 'identifier', + regex: identifier, + next: 'start' + }, { + token: 'text', + regex: '', + next: 'start' + } + ], + comment: [ + { + token: 'comment.doc', + regex: '.*?\\*/', + next: 'start' + }, { + defaultToken: 'comment.doc' + } + ], + qdoc: [ + { + token: 'string', + regex: ".*?'''", + next: 'key' + }, stringfill + ], + qqdoc: [ + { + token: 'string', + regex: '.*?"""', + next: 'key' + }, stringfill + ], + qstring: [ + { + token: 'string', + regex: '[^\\\\\']*(?:\\\\.[^\\\\\']*)*\'', + next: 'key' + }, stringfill + ], + qqstring: [ + { + token: 'string', + regex: '[^\\\\"]*(?:\\\\.[^\\\\"]*)*"', + next: 'key' + }, stringfill + ], + js: [ + { + token: 'string', + regex: '[^\\\\`]*(?:\\\\.[^\\\\`]*)*`', + next: 'key' + }, stringfill + ], + words: [ + { + token: 'string', + regex: '.*?\\]>', + next: 'key' + }, stringfill + ] + }; +function extend$(sub, sup){ + function fun(){} fun.prototype = (sub.superclass = sup).prototype; + (sub.prototype = new fun).constructor = sub; + if (typeof sup.extended == 'function') sup.extended(sub); + return sub; +} +function import$(obj, src){ + var own = {}.hasOwnProperty; + for (var key in src) if (own.call(src, key)) obj[key] = src[key]; + return obj; +} +}); diff --git a/htdocs/includes/ace/mode-logiql.js b/htdocs/includes/ace/mode-logiql.js new file mode 100644 index 00000000000..f4ea30d0190 --- /dev/null +++ b/htdocs/includes/ace/mode-logiql.js @@ -0,0 +1,310 @@ +ace.define("ace/mode/logiql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LogiQLHighlightRules = function() { + + this.$rules = { start: + [ { token: 'comment.block', + regex: '/\\*', + push: + [ { token: 'comment.block', regex: '\\*/', next: 'pop' }, + { defaultToken: 'comment.block' } ] + }, + { token: 'comment.single', + regex: '//.*' + }, + { token: 'constant.numeric', + regex: '\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?[fd]?' + }, + { token: 'string', + regex: '"', + push: + [ { token: 'string', regex: '"', next: 'pop' }, + { defaultToken: 'string' } ] + }, + { token: 'constant.language', + regex: '\\b(true|false)\\b' + }, + { token: 'entity.name.type.logicblox', + regex: '`[a-zA-Z_:]+(\\d|\\a)*\\b' + }, + { token: 'keyword.start', regex: '->', comment: 'Constraint' }, + { token: 'keyword.start', regex: '-->', comment: 'Level 1 Constraint'}, + { token: 'keyword.start', regex: '<-', comment: 'Rule' }, + { token: 'keyword.start', regex: '<--', comment: 'Level 1 Rule' }, + { token: 'keyword.end', regex: '\\.', comment: 'Terminator' }, + { token: 'keyword.other', regex: '!', comment: 'Negation' }, + { token: 'keyword.other', regex: ',', comment: 'Conjunction' }, + { token: 'keyword.other', regex: ';', comment: 'Disjunction' }, + { token: 'keyword.operator', regex: '<=|>=|!=|<|>', comment: 'Equality'}, + { token: 'keyword.other', regex: '@', comment: 'Equality' }, + { token: 'keyword.operator', regex: '\\+|-|\\*|/', comment: 'Arithmetic operations'}, + { token: 'keyword', regex: '::', comment: 'Colon colon' }, + { token: 'support.function', + regex: '\\b(agg\\s*<<)', + push: + [ { include: '$self' }, + { token: 'support.function', + regex: '>>', + next: 'pop' } ] + }, + { token: 'storage.modifier', + regex: '\\b(lang:[\\w:]*)' + }, + { token: [ 'storage.type', 'text' ], + regex: '(export|sealed|clauses|block|alias|alias_all)(\\s*\\()(?=`)' + }, + { token: 'entity.name', + regex: '[a-zA-Z_][a-zA-Z_0-9:]*(@prev|@init|@final)?(?=(\\(|\\[))' + }, + { token: 'variable.parameter', + regex: '([a-zA-Z][a-zA-Z_0-9]*|_)\\s*(?=(,|\\.|<-|->|\\)|\\]|=))' + } ] } + + this.normalizeRules(); +}; + +oop.inherits(LogiQLHighlightRules, TextHighlightRules); + +exports.LogiQLHighlightRules = LogiQLHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/logiql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/logiql_highlight_rules","ace/mode/folding/coffee","ace/token_iterator","ace/range","ace/mode/behaviour/cstyle","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LogiQLHighlightRules = require("./logiql_highlight_rules").LogiQLHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; +var TokenIterator = require("../token_iterator").TokenIterator; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = LogiQLHighlightRules; + this.foldingRules = new FoldMode(); + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + if (/comment|string/.test(endState)) + return indent; + if (tokens.length && tokens[tokens.length - 1].type == "comment.single") + return indent; + + var match = line.match(); + if (/(-->|<--|<-|->|{)\s*$/.test(line)) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (this.$outdent.checkOutdent(line, input)) + return true; + + if (input !== "\n" && input !== "\r\n") + return false; + + if (!/^\s+/.test(line)) + return false; + + return true; + }; + + this.autoOutdent = function(state, doc, row) { + if (this.$outdent.autoOutdent(doc, row)) + return; + var prevLine = doc.getLine(row); + var match = prevLine.match(/^\s+/); + var column = prevLine.lastIndexOf(".") + 1; + if (!match || !row || !column) return 0; + + var line = doc.getLine(row + 1); + var startRange = this.getMatching(doc, {row: row, column: column}); + if (!startRange || startRange.start.row == row) return 0; + + column = match[0].length; + var indent = this.$getIndent(doc.getLine(startRange.start.row)); + doc.replace(new Range(row + 1, 0, row + 1, column), indent); + }; + + this.getMatching = function(session, row, column) { + if (row == undefined) + row = session.selection.lead + if (typeof row == "object") { + column = row.column; + row = row.row; + } + + var startToken = session.getTokenAt(row, column); + var KW_START = "keyword.start", KW_END = "keyword.end"; + var tok; + if (!startToken) + return; + if (startToken.type == KW_START) { + var it = new TokenIterator(session, row, column); + it.step = it.stepForward; + } else if (startToken.type == KW_END) { + var it = new TokenIterator(session, row, column); + it.step = it.stepBackward; + } else + return; + + while (tok = it.step()) { + if (tok.type == KW_START || tok.type == KW_END) + break; + } + if (!tok || tok.type == startToken.type) + return; + + var col = it.getCurrentTokenColumn(); + var row = it.getCurrentTokenRow(); + return new Range(row, col, row, col + tok.value.length); + }; + this.$id = "ace/mode/logiql"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-lsl.js b/htdocs/includes/ace/mode-lsl.js new file mode 100644 index 00000000000..2531f6e1361 --- /dev/null +++ b/htdocs/includes/ace/mode-lsl.js @@ -0,0 +1,335 @@ +ace.define("ace/mode/lsl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +oop.inherits(LSLHighlightRules, TextHighlightRules); + +function LSLHighlightRules() { + var keywordMapper = this.createKeywordMapper({ + "constant.language.float.lsl" : "DEG_TO_RAD|PI|PI_BY_TWO|RAD_TO_DEG|SQRT2|TWO_PI", + "constant.language.integer.lsl": "ACTIVE|AGENT|AGENT_ALWAYS_RUN|AGENT_ATTACHMENTS|AGENT_AUTOPILOT|AGENT_AWAY|AGENT_BUSY|AGENT_BY_LEGACY_NAME|AGENT_BY_USERNAME|AGENT_CROUCHING|AGENT_FLYING|AGENT_IN_AIR|AGENT_LIST_PARCEL|AGENT_LIST_PARCEL_OWNER|AGENT_LIST_REGION|AGENT_MOUSELOOK|AGENT_ON_OBJECT|AGENT_SCRIPTED|AGENT_SITTING|AGENT_TYPING|AGENT_WALKING|ALL_SIDES|ANIM_ON|ATTACH_AVATAR_CENTER|ATTACH_BACK|ATTACH_BELLY|ATTACH_CHEST|ATTACH_CHIN|ATTACH_HEAD|ATTACH_HUD_BOTTOM|ATTACH_HUD_BOTTOM_LEFT|ATTACH_HUD_BOTTOM_RIGHT|ATTACH_HUD_CENTER_1|ATTACH_HUD_CENTER_2|ATTACH_HUD_TOP_CENTER|ATTACH_HUD_TOP_LEFT|ATTACH_HUD_TOP_RIGHT|ATTACH_LEAR|ATTACH_LEFT_PEC|ATTACH_LEYE|ATTACH_LFOOT|ATTACH_LHAND|ATTACH_LHIP|ATTACH_LLARM|ATTACH_LLLEG|ATTACH_LSHOULDER|ATTACH_LUARM|ATTACH_LULEG|ATTACH_MOUTH|ATTACH_NECK|ATTACH_NOSE|ATTACH_PELVIS|ATTACH_REAR|ATTACH_REYE|ATTACH_RFOOT|ATTACH_RHAND|ATTACH_RHIP|ATTACH_RIGHT_PEC|ATTACH_RLARM|ATTACH_RLLEG|ATTACH_RSHOULDER|ATTACH_RUARM|ATTACH_RULEG|AVOID_CHARACTERS|AVOID_DYNAMIC_OBSTACLES|AVOID_NONE|CAMERA_ACTIVE|CAMERA_BEHINDNESS_ANGLE|CAMERA_BEHINDNESS_LAG|CAMERA_DISTANCE|CAMERA_FOCUS|CAMERA_FOCUS_LAG|CAMERA_FOCUS_LOCKED|CAMERA_FOCUS_OFFSET|CAMERA_FOCUS_THRESHOLD|CAMERA_PITCH|CAMERA_POSITION|CAMERA_POSITION_LAG|CAMERA_POSITION_LOCKED|CAMERA_POSITION_THRESHOLD|CHANGED_ALLOWED_DROP|CHANGED_COLOR|CHANGED_INVENTORY|CHANGED_LINK|CHANGED_MEDIA|CHANGED_OWNER|CHANGED_REGION|CHANGED_REGION_START|CHANGED_SCALE|CHANGED_SHAPE|CHANGED_TELEPORT|CHANGED_TEXTURE|CHARACTER_ACCOUNT_FOR_SKIPPED_FRAMES|CHARACTER_AVOIDANCE_MODE|CHARACTER_CMD_JUMP|CHARACTER_CMD_SMOOTH_STOP|CHARACTER_CMD_STOP|CHARACTER_DESIRED_SPEED|CHARACTER_DESIRED_TURN_SPEED|CHARACTER_LENGTH|CHARACTER_MAX_ACCEL|CHARACTER_MAX_DECEL|CHARACTER_MAX_SPEED|CHARACTER_MAX_TURN_RADIUS|CHARACTER_ORIENTATION|CHARACTER_RADIUS|CHARACTER_STAY_WITHIN_PARCEL|CHARACTER_TYPE|CHARACTER_TYPE_A|CHARACTER_TYPE_B|CHARACTER_TYPE_C|CHARACTER_TYPE_D|CHARACTER_TYPE_NONE|CLICK_ACTION_BUY|CLICK_ACTION_NONE|CLICK_ACTION_OPEN|CLICK_ACTION_OPEN_MEDIA|CLICK_ACTION_PAY|CLICK_ACTION_PLAY|CLICK_ACTION_SIT|CLICK_ACTION_TOUCH|CONTENT_TYPE_ATOM|CONTENT_TYPE_FORM|CONTENT_TYPE_HTML|CONTENT_TYPE_JSON|CONTENT_TYPE_LLSD|CONTENT_TYPE_RSS|CONTENT_TYPE_TEXT|CONTENT_TYPE_XHTML|CONTENT_TYPE_XML|CONTROL_BACK|CONTROL_DOWN|CONTROL_FWD|CONTROL_LBUTTON|CONTROL_LEFT|CONTROL_ML_LBUTTON|CONTROL_RIGHT|CONTROL_ROT_LEFT|CONTROL_ROT_RIGHT|CONTROL_UP|DATA_BORN|DATA_NAME|DATA_ONLINE|DATA_PAYINFO|DATA_SIM_POS|DATA_SIM_RATING|DATA_SIM_STATUS|DEBUG_CHANNEL|DENSITY|ERR_GENERIC|ERR_MALFORMED_PARAMS|ERR_PARCEL_PERMISSIONS|ERR_RUNTIME_PERMISSIONS|ERR_THROTTLED|ESTATE_ACCESS_ALLOWED_AGENT_ADD|ESTATE_ACCESS_ALLOWED_AGENT_REMOVE|ESTATE_ACCESS_ALLOWED_GROUP_ADD|ESTATE_ACCESS_ALLOWED_GROUP_REMOVE|ESTATE_ACCESS_BANNED_AGENT_ADD|ESTATE_ACCESS_BANNED_AGENT_REMOVE|FALSE|FORCE_DIRECT_PATH|FRICTION|GCNP_RADIUS|GCNP_STATIC|GRAVITY_MULTIPLIER|HORIZONTAL|HTTP_BODY_MAXLENGTH|HTTP_BODY_TRUNCATED|HTTP_CUSTOM_HEADER|HTTP_METHOD|HTTP_MIMETYPE|HTTP_PRAGMA_NO_CACHE|HTTP_VERBOSE_THROTTLE|HTTP_VERIFY_CERT|INVENTORY_ALL|INVENTORY_ANIMATION|INVENTORY_BODYPART|INVENTORY_CLOTHING|INVENTORY_GESTURE|INVENTORY_LANDMARK|INVENTORY_NONE|INVENTORY_NOTECARD|INVENTORY_OBJECT|INVENTORY_SCRIPT|INVENTORY_SOUND|INVENTORY_TEXTURE|JSON_APPEND|KFM_CMD_PAUSE|KFM_CMD_PLAY|KFM_CMD_SET_MODE|KFM_CMD_STOP|KFM_COMMAND|KFM_DATA|KFM_FORWARD|KFM_LOOP|KFM_MODE|KFM_PING_PONG|KFM_REVERSE|KFM_ROTATION|KFM_TRANSLATION|LAND_LEVEL|LAND_LOWER|LAND_NOISE|LAND_RAISE|LAND_REVERT|LAND_SMOOTH|LINK_ALL_CHILDREN|LINK_ALL_OTHERS|LINK_ROOT|LINK_SET|LINK_THIS|LIST_STAT_GEOMETRIC_MEAN|LIST_STAT_MAX|LIST_STAT_MEAN|LIST_STAT_MEDIAN|LIST_STAT_MIN|LIST_STAT_NUM_COUNT|LIST_STAT_RANGE|LIST_STAT_STD_DEV|LIST_STAT_SUM|LIST_STAT_SUM_SQUARES|LOOP|MASK_BASE|MASK_EVERYONE|MASK_GROUP|MASK_NEXT|MASK_OWNER|OBJECT_ATTACHED_POINT|OBJECT_BODY_SHAPE_TYPE|OBJECT_CHARACTER_TIME|OBJECT_CLICK_ACTION|OBJECT_CREATOR|OBJECT_DESC|OBJECT_GROUP|OBJECT_HOVER_HEIGHT|OBJECT_LAST_OWNER_ID|OBJECT_NAME|OBJECT_OWNER|OBJECT_PATHFINDING_TYPE|OBJECT_PHANTOM|OBJECT_PHYSICS|OBJECT_PHYSICS_COST|OBJECT_POS|OBJECT_PRIM_EQUIVALENCE|OBJECT_RENDER_WEIGHT|OBJECT_RETURN_PARCEL|OBJECT_RETURN_PARCEL_OWNER|OBJECT_RETURN_REGION|OBJECT_ROOT|OBJECT_ROT|OBJECT_RUNNING_SCRIPT_COUNT|OBJECT_SCRIPT_MEMORY|OBJECT_SCRIPT_TIME|OBJECT_SERVER_COST|OBJECT_STREAMING_COST|OBJECT_TEMP_ON_REZ|OBJECT_TOTAL_SCRIPT_COUNT|OBJECT_UNKNOWN_DETAIL|OBJECT_VELOCITY|OPT_AVATAR|OPT_CHARACTER|OPT_EXCLUSION_VOLUME|OPT_LEGACY_LINKSET|OPT_MATERIAL_VOLUME|OPT_OTHER|OPT_STATIC_OBSTACLE|OPT_WALKABLE|PARCEL_COUNT_GROUP|PARCEL_COUNT_OTHER|PARCEL_COUNT_OWNER|PARCEL_COUNT_SELECTED|PARCEL_COUNT_TEMP|PARCEL_COUNT_TOTAL|PARCEL_DETAILS_AREA|PARCEL_DETAILS_DESC|PARCEL_DETAILS_GROUP|PARCEL_DETAILS_ID|PARCEL_DETAILS_NAME|PARCEL_DETAILS_OWNER|PARCEL_DETAILS_SEE_AVATARS|PARCEL_FLAG_ALLOW_ALL_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_CREATE_GROUP_OBJECTS|PARCEL_FLAG_ALLOW_CREATE_OBJECTS|PARCEL_FLAG_ALLOW_DAMAGE|PARCEL_FLAG_ALLOW_FLY|PARCEL_FLAG_ALLOW_GROUP_OBJECT_ENTRY|PARCEL_FLAG_ALLOW_GROUP_SCRIPTS|PARCEL_FLAG_ALLOW_LANDMARK|PARCEL_FLAG_ALLOW_SCRIPTS|PARCEL_FLAG_ALLOW_TERRAFORM|PARCEL_FLAG_LOCAL_SOUND_ONLY|PARCEL_FLAG_RESTRICT_PUSHOBJECT|PARCEL_FLAG_USE_ACCESS_GROUP|PARCEL_FLAG_USE_ACCESS_LIST|PARCEL_FLAG_USE_BAN_LIST|PARCEL_FLAG_USE_LAND_PASS_LIST|PARCEL_MEDIA_COMMAND_AGENT|PARCEL_MEDIA_COMMAND_AUTO_ALIGN|PARCEL_MEDIA_COMMAND_DESC|PARCEL_MEDIA_COMMAND_LOOP|PARCEL_MEDIA_COMMAND_LOOP_SET|PARCEL_MEDIA_COMMAND_PAUSE|PARCEL_MEDIA_COMMAND_PLAY|PARCEL_MEDIA_COMMAND_SIZE|PARCEL_MEDIA_COMMAND_STOP|PARCEL_MEDIA_COMMAND_TEXTURE|PARCEL_MEDIA_COMMAND_TIME|PARCEL_MEDIA_COMMAND_TYPE|PARCEL_MEDIA_COMMAND_UNLOAD|PARCEL_MEDIA_COMMAND_URL|PASS_ALWAYS|PASS_IF_NOT_HANDLED|PASS_NEVER|PASSIVE|PATROL_PAUSE_AT_WAYPOINTS|PAYMENT_INFO_ON_FILE|PAYMENT_INFO_USED|PAY_DEFAULT|PAY_HIDE|PERMISSION_ATTACH|PERMISSION_CHANGE_LINKS|PERMISSION_CONTROL_CAMERA|PERMISSION_DEBIT|PERMISSION_OVERRIDE_ANIMATIONS|PERMISSION_RETURN_OBJECTS|PERMISSION_SILENT_ESTATE_MANAGEMENT|PERMISSION_TAKE_CONTROLS|PERMISSION_TELEPORT|PERMISSION_TRACK_CAMERA|PERMISSION_TRIGGER_ANIMATION|PERM_ALL|PERM_COPY|PERM_MODIFY|PERM_MOVE|PERM_TRANSFER|PING_PONG|PRIM_ALPHA_MODE|PRIM_ALPHA_MODE_BLEND|PRIM_ALPHA_MODE_EMISSIVE|PRIM_ALPHA_MODE_MASK|PRIM_ALPHA_MODE_NONE|PRIM_BUMP_BARK|PRIM_BUMP_BLOBS|PRIM_BUMP_BRICKS|PRIM_BUMP_BRIGHT|PRIM_BUMP_CHECKER|PRIM_BUMP_CONCRETE|PRIM_BUMP_DARK|PRIM_BUMP_DISKS|PRIM_BUMP_GRAVEL|PRIM_BUMP_LARGETILE|PRIM_BUMP_NONE|PRIM_BUMP_SHINY|PRIM_BUMP_SIDING|PRIM_BUMP_STONE|PRIM_BUMP_STUCCO|PRIM_BUMP_SUCTION|PRIM_BUMP_TILE|PRIM_BUMP_WEAVE|PRIM_BUMP_WOOD|PRIM_COLOR|PRIM_DESC|PRIM_FLEXIBLE|PRIM_FULLBRIGHT|PRIM_GLOW|PRIM_HOLE_CIRCLE|PRIM_HOLE_DEFAULT|PRIM_HOLE_SQUARE|PRIM_HOLE_TRIANGLE|PRIM_LINK_TARGET|PRIM_MATERIAL|PRIM_MATERIAL_FLESH|PRIM_MATERIAL_GLASS|PRIM_MATERIAL_METAL|PRIM_MATERIAL_PLASTIC|PRIM_MATERIAL_RUBBER|PRIM_MATERIAL_STONE|PRIM_MATERIAL_WOOD|PRIM_MEDIA_ALT_IMAGE_ENABLE|PRIM_MEDIA_AUTO_LOOP|PRIM_MEDIA_AUTO_PLAY|PRIM_MEDIA_AUTO_SCALE|PRIM_MEDIA_AUTO_ZOOM|PRIM_MEDIA_CONTROLS|PRIM_MEDIA_CONTROLS_MINI|PRIM_MEDIA_CONTROLS_STANDARD|PRIM_MEDIA_CURRENT_URL|PRIM_MEDIA_FIRST_CLICK_INTERACT|PRIM_MEDIA_HEIGHT_PIXELS|PRIM_MEDIA_HOME_URL|PRIM_MEDIA_MAX_HEIGHT_PIXELS|PRIM_MEDIA_MAX_URL_LENGTH|PRIM_MEDIA_MAX_WHITELIST_COUNT|PRIM_MEDIA_MAX_WHITELIST_SIZE|PRIM_MEDIA_MAX_WIDTH_PIXELS|PRIM_MEDIA_PARAM_MAX|PRIM_MEDIA_PERMS_CONTROL|PRIM_MEDIA_PERMS_INTERACT|PRIM_MEDIA_PERM_ANYONE|PRIM_MEDIA_PERM_GROUP|PRIM_MEDIA_PERM_NONE|PRIM_MEDIA_PERM_OWNER|PRIM_MEDIA_WHITELIST|PRIM_MEDIA_WHITELIST_ENABLE|PRIM_MEDIA_WIDTH_PIXELS|PRIM_NAME|PRIM_NORMAL|PRIM_OMEGA|PRIM_PHANTOM|PRIM_PHYSICS|PRIM_PHYSICS_SHAPE_CONVEX|PRIM_PHYSICS_SHAPE_NONE|PRIM_PHYSICS_SHAPE_PRIM|PRIM_PHYSICS_SHAPE_TYPE|PRIM_POINT_LIGHT|PRIM_POSITION|PRIM_POS_LOCAL|PRIM_ROTATION|PRIM_ROT_LOCAL|PRIM_SCULPT_FLAG_INVERT|PRIM_SCULPT_FLAG_MIRROR|PRIM_SCULPT_TYPE_CYLINDER|PRIM_SCULPT_TYPE_MASK|PRIM_SCULPT_TYPE_PLANE|PRIM_SCULPT_TYPE_SPHERE|PRIM_SCULPT_TYPE_TORUS|PRIM_SHINY_HIGH|PRIM_SHINY_LOW|PRIM_SHINY_MEDIUM|PRIM_SHINY_NONE|PRIM_SIZE|PRIM_SLICE|PRIM_SPECULAR|PRIM_TEMP_ON_REZ|PRIM_TEXGEN|PRIM_TEXGEN_DEFAULT|PRIM_TEXGEN_PLANAR|PRIM_TEXT|PRIM_TEXTURE|PRIM_TYPE|PRIM_TYPE_BOX|PRIM_TYPE_CYLINDER|PRIM_TYPE_PRISM|PRIM_TYPE_RING|PRIM_TYPE_SCULPT|PRIM_TYPE_SPHERE|PRIM_TYPE_TORUS|PRIM_TYPE_TUBE|PROFILE_NONE|PROFILE_SCRIPT_MEMORY|PSYS_PART_BF_DEST_COLOR|PSYS_PART_BF_ONE|PSYS_PART_BF_ONE_MINUS_DEST_COLOR|PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA|PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR|PSYS_PART_BF_SOURCE_ALPHA|PSYS_PART_BF_SOURCE_COLOR|PSYS_PART_BF_ZERO|PSYS_PART_BLEND_FUNC_DEST|PSYS_PART_BLEND_FUNC_SOURCE|PSYS_PART_BOUNCE_MASK|PSYS_PART_EMISSIVE_MASK|PSYS_PART_END_ALPHA|PSYS_PART_END_COLOR|PSYS_PART_END_GLOW|PSYS_PART_END_SCALE|PSYS_PART_FLAGS|PSYS_PART_FOLLOW_SRC_MASK|PSYS_PART_FOLLOW_VELOCITY_MASK|PSYS_PART_INTERP_COLOR_MASK|PSYS_PART_INTERP_SCALE_MASK|PSYS_PART_MAX_AGE|PSYS_PART_RIBBON_MASK|PSYS_PART_START_ALPHA|PSYS_PART_START_COLOR|PSYS_PART_START_GLOW|PSYS_PART_START_SCALE|PSYS_PART_TARGET_LINEAR_MASK|PSYS_PART_TARGET_POS_MASK|PSYS_PART_WIND_MASK|PSYS_SRC_ACCEL|PSYS_SRC_ANGLE_BEGIN|PSYS_SRC_ANGLE_END|PSYS_SRC_BURST_PART_COUNT|PSYS_SRC_BURST_RADIUS|PSYS_SRC_BURST_RATE|PSYS_SRC_BURST_SPEED_MAX|PSYS_SRC_BURST_SPEED_MIN|PSYS_SRC_MAX_AGE|PSYS_SRC_OMEGA|PSYS_SRC_PATTERN|PSYS_SRC_PATTERN_ANGLE|PSYS_SRC_PATTERN_ANGLE_CONE|PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY|PSYS_SRC_PATTERN_DROP|PSYS_SRC_PATTERN_EXPLODE|PSYS_SRC_TARGET_KEY|PSYS_SRC_TEXTURE|PUBLIC_CHANNEL|PURSUIT_FUZZ_FACTOR|PURSUIT_GOAL_TOLERANCE|PURSUIT_INTERCEPT|PURSUIT_OFFSET|PU_EVADE_HIDDEN|PU_EVADE_SPOTTED|PU_FAILURE_DYNAMIC_PATHFINDING_DISABLED|PU_FAILURE_INVALID_GOAL|PU_FAILURE_INVALID_START|PU_FAILURE_NO_NAVMESH|PU_FAILURE_NO_VALID_DESTINATION|PU_FAILURE_OTHER|PU_FAILURE_PARCEL_UNREACHABLE|PU_FAILURE_TARGET_GONE|PU_FAILURE_UNREACHABLE|PU_GOAL_REACHED|PU_SLOWDOWN_DISTANCE_REACHED|RCERR_CAST_TIME_EXCEEDED|RCERR_SIM_PERF_LOW|RCERR_UNKNOWN|RC_DATA_FLAGS|RC_DETECT_PHANTOM|RC_GET_LINK_NUM|RC_GET_NORMAL|RC_GET_ROOT_KEY|RC_MAX_HITS|RC_REJECT_AGENTS|RC_REJECT_LAND|RC_REJECT_NONPHYSICAL|RC_REJECT_PHYSICAL|RC_REJECT_TYPES|REGION_FLAG_ALLOW_DAMAGE|REGION_FLAG_ALLOW_DIRECT_TELEPORT|REGION_FLAG_BLOCK_FLY|REGION_FLAG_BLOCK_TERRAFORM|REGION_FLAG_DISABLE_COLLISIONS|REGION_FLAG_DISABLE_PHYSICS|REGION_FLAG_FIXED_SUN|REGION_FLAG_RESTRICT_PUSHOBJECT|REGION_FLAG_SANDBOX|REMOTE_DATA_CHANNEL|REMOTE_DATA_REPLY|REMOTE_DATA_REQUEST|REQUIRE_LINE_OF_SIGHT|RESTITUTION|REVERSE|ROTATE|SCALE|SCRIPTED|SIM_STAT_PCT_CHARS_STEPPED|SMOOTH|STATUS_BLOCK_GRAB|STATUS_BLOCK_GRAB_OBJECT|STATUS_BOUNDS_ERROR|STATUS_CAST_SHADOWS|STATUS_DIE_AT_EDGE|STATUS_INTERNAL_ERROR|STATUS_MALFORMED_PARAMS|STATUS_NOT_FOUND|STATUS_NOT_SUPPORTED|STATUS_OK|STATUS_PHANTOM|STATUS_PHYSICS|STATUS_RETURN_AT_EDGE|STATUS_ROTATE_X|STATUS_ROTATE_Y|STATUS_ROTATE_Z|STATUS_SANDBOX|STATUS_TYPE_MISMATCH|STATUS_WHITELIST_FAILED|STRING_TRIM|STRING_TRIM_HEAD|STRING_TRIM_TAIL|TOUCH_INVALID_FACE|TRAVERSAL_TYPE|TRAVERSAL_TYPE_FAST|TRAVERSAL_TYPE_NONE|TRAVERSAL_TYPE_SLOW|TRUE|TYPE_FLOAT|TYPE_INTEGER|TYPE_INVALID|TYPE_KEY|TYPE_ROTATION|TYPE_STRING|TYPE_VECTOR|VEHICLE_ANGULAR_DEFLECTION_EFFICIENCY|VEHICLE_ANGULAR_DEFLECTION_TIMESCALE|VEHICLE_ANGULAR_FRICTION_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DECAY_TIMESCALE|VEHICLE_ANGULAR_MOTOR_DIRECTION|VEHICLE_ANGULAR_MOTOR_TIMESCALE|VEHICLE_BANKING_EFFICIENCY|VEHICLE_BANKING_MIX|VEHICLE_BANKING_TIMESCALE|VEHICLE_BUOYANCY|VEHICLE_FLAG_CAMERA_DECOUPLED|VEHICLE_FLAG_HOVER_GLOBAL_HEIGHT|VEHICLE_FLAG_HOVER_TERRAIN_ONLY|VEHICLE_FLAG_HOVER_UP_ONLY|VEHICLE_FLAG_HOVER_WATER_ONLY|VEHICLE_FLAG_LIMIT_MOTOR_UP|VEHICLE_FLAG_LIMIT_ROLL_ONLY|VEHICLE_FLAG_MOUSELOOK_BANK|VEHICLE_FLAG_MOUSELOOK_STEER|VEHICLE_FLAG_NO_DEFLECTION_UP|VEHICLE_HOVER_EFFICIENCY|VEHICLE_HOVER_HEIGHT|VEHICLE_HOVER_TIMESCALE|VEHICLE_LINEAR_DEFLECTION_EFFICIENCY|VEHICLE_LINEAR_DEFLECTION_TIMESCALE|VEHICLE_LINEAR_FRICTION_TIMESCALE|VEHICLE_LINEAR_MOTOR_DECAY_TIMESCALE|VEHICLE_LINEAR_MOTOR_DIRECTION|VEHICLE_LINEAR_MOTOR_OFFSET|VEHICLE_LINEAR_MOTOR_TIMESCALE|VEHICLE_REFERENCE_FRAME|VEHICLE_TYPE_AIRPLANE|VEHICLE_TYPE_BALLOON|VEHICLE_TYPE_BOAT|VEHICLE_TYPE_CAR|VEHICLE_TYPE_NONE|VEHICLE_TYPE_SLED|VEHICLE_VERTICAL_ATTRACTION_EFFICIENCY|VEHICLE_VERTICAL_ATTRACTION_TIMESCALE|VERTICAL|WANDER_PAUSE_AT_WAYPOINTS|XP_ERROR_EXPERIENCES_DISABLED|XP_ERROR_EXPERIENCE_DISABLED|XP_ERROR_EXPERIENCE_SUSPENDED|XP_ERROR_INVALID_EXPERIENCE|XP_ERROR_INVALID_PARAMETERS|XP_ERROR_KEY_NOT_FOUND|XP_ERROR_MATURITY_EXCEEDED|XP_ERROR_NONE|XP_ERROR_NOT_FOUND|XP_ERROR_NOT_PERMITTED|XP_ERROR_NO_EXPERIENCE|XP_ERROR_QUOTA_EXCEEDED|XP_ERROR_RETRY_UPDATE|XP_ERROR_STORAGE_EXCEPTION|XP_ERROR_STORE_DISABLED|XP_ERROR_THROTTLED|XP_ERROR_UNKNOWN_ERROR", + "constant.language.integer.boolean.lsl" : "FALSE|TRUE", + "constant.language.quaternion.lsl" : "ZERO_ROTATION", + "constant.language.string.lsl" : "EOF|JSON_ARRAY|JSON_DELETE|JSON_FALSE|JSON_INVALID|JSON_NULL|JSON_NUMBER|JSON_OBJECT|JSON_STRING|JSON_TRUE|NULL_KEY|TEXTURE_BLANK|TEXTURE_DEFAULT|TEXTURE_MEDIA|TEXTURE_PLYWOOD|TEXTURE_TRANSPARENT|URL_REQUEST_DENIED|URL_REQUEST_GRANTED", + "constant.language.vector.lsl" : "TOUCH_INVALID_TEXCOORD|TOUCH_INVALID_VECTOR|ZERO_VECTOR", + "invalid.broken.lsl": "LAND_LARGE_BRUSH|LAND_MEDIUM_BRUSH|LAND_SMALL_BRUSH", + "invalid.deprecated.lsl" : "ATTACH_LPEC|ATTACH_RPEC|DATA_RATING|OBJECT_ATTACHMENT_GEOMETRY_BYTES|OBJECT_ATTACHMENT_SURFACE_AREA|PRIM_CAST_SHADOWS|PRIM_MATERIAL_LIGHT|PRIM_TYPE_LEGACY|PSYS_SRC_INNERANGLE|PSYS_SRC_OUTERANGLE|VEHICLE_FLAG_NO_FLY_UP|llClearExperiencePermissions|llCloud|llGetExperienceList|llMakeExplosion|llMakeFire|llMakeFountain|llMakeSmoke|llRemoteDataSetRegion|llSound|llSoundPreload|llXorBase64Strings|llXorBase64StringsCorrect", + "invalid.illegal.lsl": "event", + "invalid.unimplemented.lsl": "CHARACTER_MAX_ANGULAR_ACCEL|CHARACTER_MAX_ANGULAR_SPEED|CHARACTER_TURN_SPEED_MULTIPLIER|PERMISSION_CHANGE_JOINTS|PERMISSION_CHANGE_PERMISSIONS|PERMISSION_EXPERIENCE|PERMISSION_RELEASE_OWNERSHIP|PERMISSION_REMAP_CONTROLS|PRIM_PHYSICS_MATERIAL|PSYS_SRC_OBJ_REL_MASK|llCollisionSprite|llPointAt|llRefreshPrimURL|llReleaseCamera|llRemoteLoadScript|llSetPrimURL|llStopPointAt|llTakeCamera", + "reserved.godmode.lsl": "llGodLikeRezObject|llSetInventoryPermMask|llSetObjectPermMask", + "reserved.log.lsl" : "print", + "keyword.control.lsl" : "do|else|for|if|jump|return|while", + "storage.type.lsl" : "float|integer|key|list|quaternion|rotation|string|vector", + "support.function.lsl": "llAbs|llAcos|llAddToLandBanList|llAddToLandPassList|llAdjustSoundVolume|llAgentInExperience|llAllowInventoryDrop|llAngleBetween|llApplyImpulse|llApplyRotationalImpulse|llAsin|llAtan2|llAttachToAvatar|llAttachToAvatarTemp|llAvatarOnLinkSitTarget|llAvatarOnSitTarget|llAxes2Rot|llAxisAngle2Rot|llBase64ToInteger|llBase64ToString|llBreakAllLinks|llBreakLink|llCSV2List|llCastRay|llCeil|llClearCameraParams|llClearLinkMedia|llClearPrimMedia|llCloseRemoteDataChannel|llCollisionFilter|llCollisionSound|llCos|llCreateCharacter|llCreateKeyValue|llCreateLink|llDataSizeKeyValue|llDeleteCharacter|llDeleteKeyValue|llDeleteSubList|llDeleteSubString|llDetachFromAvatar|llDetectedGrab|llDetectedGroup|llDetectedKey|llDetectedLinkNumber|llDetectedName|llDetectedOwner|llDetectedPos|llDetectedRot|llDetectedTouchBinormal|llDetectedTouchFace|llDetectedTouchNormal|llDetectedTouchPos|llDetectedTouchST|llDetectedTouchUV|llDetectedType|llDetectedVel|llDialog|llDie|llDumpList2String|llEdgeOfWorld|llEjectFromLand|llEmail|llEscapeURL|llEuler2Rot|llEvade|llExecCharacterCmd|llFabs|llFleeFrom|llFloor|llForceMouselook|llFrand|llGenerateKey|llGetAccel|llGetAgentInfo|llGetAgentLanguage|llGetAgentList|llGetAgentSize|llGetAlpha|llGetAndResetTime|llGetAnimation|llGetAnimationList|llGetAnimationOverride|llGetAttached|llGetAttachedList|llGetBoundingBox|llGetCameraPos|llGetCameraRot|llGetCenterOfMass|llGetClosestNavPoint|llGetColor|llGetCreator|llGetDate|llGetDisplayName|llGetEnergy|llGetEnv|llGetExperienceDetails|llGetExperienceErrorMessage|llGetForce|llGetFreeMemory|llGetFreeURLs|llGetGMTclock|llGetGeometricCenter|llGetHTTPHeader|llGetInventoryCreator|llGetInventoryKey|llGetInventoryName|llGetInventoryNumber|llGetInventoryPermMask|llGetInventoryType|llGetKey|llGetLandOwnerAt|llGetLinkKey|llGetLinkMedia|llGetLinkName|llGetLinkNumber|llGetLinkNumberOfSides|llGetLinkPrimitiveParams|llGetListEntryType|llGetListLength|llGetLocalPos|llGetLocalRot|llGetMass|llGetMassMKS|llGetMaxScaleFactor|llGetMemoryLimit|llGetMinScaleFactor|llGetNextEmail|llGetNotecardLine|llGetNumberOfNotecardLines|llGetNumberOfPrims|llGetNumberOfSides|llGetObjectDesc|llGetObjectDetails|llGetObjectMass|llGetObjectName|llGetObjectPermMask|llGetObjectPrimCount|llGetOmega|llGetOwner|llGetOwnerKey|llGetParcelDetails|llGetParcelFlags|llGetParcelMaxPrims|llGetParcelMusicURL|llGetParcelPrimCount|llGetParcelPrimOwners|llGetPermissions|llGetPermissionsKey|llGetPhysicsMaterial|llGetPos|llGetPrimMediaParams|llGetPrimitiveParams|llGetRegionAgentCount|llGetRegionCorner|llGetRegionFPS|llGetRegionFlags|llGetRegionName|llGetRegionTimeDilation|llGetRootPosition|llGetRootRotation|llGetRot|llGetSPMaxMemory|llGetScale|llGetScriptName|llGetScriptState|llGetSimStats|llGetSimulatorHostname|llGetStartParameter|llGetStaticPath|llGetStatus|llGetSubString|llGetSunDirection|llGetTexture|llGetTextureOffset|llGetTextureRot|llGetTextureScale|llGetTime|llGetTimeOfDay|llGetTimestamp|llGetTorque|llGetUnixTime|llGetUsedMemory|llGetUsername|llGetVel|llGetWallclock|llGiveInventory|llGiveInventoryList|llGiveMoney|llGround|llGroundContour|llGroundNormal|llGroundRepel|llGroundSlope|llHTTPRequest|llHTTPResponse|llInsertString|llInstantMessage|llIntegerToBase64|llJson2List|llJsonGetValue|llJsonSetValue|llJsonValueType|llKey2Name|llKeyCountKeyValue|llKeysKeyValue|llLinkParticleSystem|llLinkSitTarget|llList2CSV|llList2Float|llList2Integer|llList2Json|llList2Key|llList2List|llList2ListStrided|llList2Rot|llList2String|llList2Vector|llListFindList|llListInsertList|llListRandomize|llListReplaceList|llListSort|llListStatistics|llListen|llListenControl|llListenRemove|llLoadURL|llLog|llLog10|llLookAt|llLoopSound|llLoopSoundMaster|llLoopSoundSlave|llMD5String|llManageEstateAccess|llMapDestination|llMessageLinked|llMinEventDelay|llModPow|llModifyLand|llMoveToTarget|llNavigateTo|llOffsetTexture|llOpenRemoteDataChannel|llOverMyLand|llOwnerSay|llParcelMediaCommandList|llParcelMediaQuery|llParseString2List|llParseStringKeepNulls|llParticleSystem|llPassCollisions|llPassTouches|llPatrolPoints|llPlaySound|llPlaySoundSlave|llPow|llPreloadSound|llPursue|llPushObject|llReadKeyValue|llRegionSay|llRegionSayTo|llReleaseControls|llReleaseURL|llRemoteDataReply|llRemoteLoadScriptPin|llRemoveFromLandBanList|llRemoveFromLandPassList|llRemoveInventory|llRemoveVehicleFlags|llRequestAgentData|llRequestDisplayName|llRequestExperiencePermissions|llRequestInventoryData|llRequestPermissions|llRequestSecureURL|llRequestSimulatorData|llRequestURL|llRequestUsername|llResetAnimationOverride|llResetLandBanList|llResetLandPassList|llResetOtherScript|llResetScript|llResetTime|llReturnObjectsByID|llReturnObjectsByOwner|llRezAtRoot|llRezObject|llRot2Angle|llRot2Axis|llRot2Euler|llRot2Fwd|llRot2Left|llRot2Up|llRotBetween|llRotLookAt|llRotTarget|llRotTargetRemove|llRotateTexture|llRound|llSHA1String|llSameGroup|llSay|llScaleByFactor|llScaleTexture|llScriptDanger|llScriptProfiler|llSendRemoteData|llSensor|llSensorRemove|llSensorRepeat|llSetAlpha|llSetAngularVelocity|llSetAnimationOverride|llSetBuoyancy|llSetCameraAtOffset|llSetCameraEyeOffset|llSetCameraParams|llSetClickAction|llSetColor|llSetContentType|llSetDamage|llSetForce|llSetForceAndTorque|llSetHoverHeight|llSetKeyframedMotion|llSetLinkAlpha|llSetLinkCamera|llSetLinkColor|llSetLinkMedia|llSetLinkPrimitiveParams|llSetLinkPrimitiveParamsFast|llSetLinkTexture|llSetLinkTextureAnim|llSetLocalRot|llSetMemoryLimit|llSetObjectDesc|llSetObjectName|llSetParcelMusicURL|llSetPayPrice|llSetPhysicsMaterial|llSetPos|llSetPrimMediaParams|llSetPrimitiveParams|llSetRegionPos|llSetRemoteScriptAccessPin|llSetRot|llSetScale|llSetScriptState|llSetSitText|llSetSoundQueueing|llSetSoundRadius|llSetStatus|llSetText|llSetTexture|llSetTextureAnim|llSetTimerEvent|llSetTorque|llSetTouchText|llSetVehicleFlags|llSetVehicleFloatParam|llSetVehicleRotationParam|llSetVehicleType|llSetVehicleVectorParam|llSetVelocity|llShout|llSin|llSitTarget|llSleep|llSqrt|llStartAnimation|llStopAnimation|llStopHover|llStopLookAt|llStopMoveToTarget|llStopSound|llStringLength|llStringToBase64|llStringTrim|llSubStringIndex|llTakeControls|llTan|llTarget|llTargetOmega|llTargetRemove|llTeleportAgent|llTeleportAgentGlobalCoords|llTeleportAgentHome|llTextBox|llToLower|llToUpper|llTransferLindenDollars|llTriggerSound|llTriggerSoundLimited|llUnSit|llUnescapeURL|llUpdateCharacter|llUpdateKeyValue|llVecDist|llVecMag|llVecNorm|llVolumeDetect|llWanderWithin|llWater|llWhisper|llWind|llXorBase64", + "support.function.event.lsl" : "at_rot_target|at_target|attach|changed|collision|collision_end|collision_start|control|dataserver|email|experience_permissions|experience_permissions_denied|http_request|http_response|land_collision|land_collision_end|land_collision_start|link_message|listen|money|moving_end|moving_start|no_sensor|not_at_rot_target|not_at_target|object_rez|on_rez|path_update|remote_data|run_time_permissions|sensor|state_entry|state_exit|timer|touch|touch_end|touch_start|transaction_result" + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment.line.double-slash.lsl", + regex : "\\/\\/.*$" + }, { + token : "comment.block.begin.lsl", + regex : "\\/\\*", + next : "comment" + }, { + token : "string.quoted.double.lsl", + start : '"', + end : '"', + next : [{ + token : "constant.character.escape.lsl", + regex : /\\[tn"\\]/ + }] + }, { + token : "constant.numeric.lsl", + regex : "(0[xX][0-9a-fA-F]+|[+-]?[0-9]+(?:(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?)?)\\b" + }, { + token : "entity.name.state.lsl", + regex : "\\b((state)\\s+[A-Za-z_]\\w*|default)\\b" + }, { + token : keywordMapper, + regex : "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b" + }, { + token : "support.function.user-defined.lsl", + regex : /\b([a-zA-Z_]\w*)(?=\(.*?\))/ + }, { + token : "keyword.operator.lsl", + regex : "\\+\\+|\\-\\-|<<|>>|&&?|\\|\\|?|\\^|~|[!%<>=*+\\-\\/]=?" + }, { + token : "invalid.illegal.keyword.operator.lsl", + regex : ":=?" + }, { + token : "punctuation.operator.lsl", + regex : "\\,|\\;" + }, { + token : "paren.lparen.lsl", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen.lsl", + regex : "[\\]\\)\\}]" + }, { + token : "text.lsl", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment.block.end.lsl", + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment.block.lsl" + } + ] + }; + this.normalizeRules(); +} + +exports.LSLHighlightRules = LSLHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/lsl",["require","exports","module","ace/mode/lsl_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/text","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Rules = require("./lsl_highlight_rules").LSLHighlightRules; +var Outdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var TextMode = require("./text").Mode; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var oop = require("../lib/oop"); + +var Mode = function() { + this.HighlightRules = Rules; + this.$outdent = new Outdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ["//"]; + + this.blockComment = { + start: "/*", + end: "*/" + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type === "comment.block.lsl") { + return indent; + } + + if (state === "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/lsl"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-lua.js b/htdocs/includes/ace/mode-lua.js new file mode 100644 index 00000000000..bcf4daa5875 --- /dev/null +++ b/htdocs/includes/ace/mode-lua.js @@ -0,0 +1,424 @@ +ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LuaHighlightRules = function() { + + var keywords = ( + "break|do|else|elseif|end|for|function|if|in|local|repeat|"+ + "return|then|until|while|or|and|not" + ); + + var builtinConstants = ("true|false|nil|_G|_VERSION"); + + var functions = ( + "string|xpcall|package|tostring|print|os|unpack|require|"+ + "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+ + "collectgarbage|getmetatable|module|rawset|math|debug|"+ + "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+ + "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+ + "load|error|loadfile|"+ + + "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+ + "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+ + "loaders|cpath|config|path|seeall|exit|setlocale|date|"+ + "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+ + "lines|write|close|flush|open|output|type|read|stderr|"+ + "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+ + "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+ + "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+ + "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+ + "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+ + "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+ + "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+ + "status|wrap|create|running|"+ + "__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+ + "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber" + ); + + var stdLibaries = ("string|package|os|io|math|debug|table|coroutine"); + + var deprecatedIn5152 = ("setn|foreach|foreachi|gcinfo|log10|maxn"); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "support.function": functions, + "keyword.deprecated": deprecatedIn5152, + "constant.library": stdLibaries, + "constant.language": builtinConstants, + "variable.language": "self" + }, "identifier"); + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var integer = "(?:" + decimalInteger + "|" + hexInteger + ")"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var floatNumber = "(?:" + pointFloat + ")"; + + this.$rules = { + "start" : [{ + stateName: "bracketedComment", + onMatch : function(value, currentState, stack){ + stack.unshift(this.next, value.length - 2, currentState); + return "comment"; + }, + regex : /\-\-\[=*\[/, + next : [ + { + onMatch : function(value, currentState, stack) { + if (value.length == stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack.shift(); + } else { + this.next = ""; + } + return "comment"; + }, + regex : /\]=*\]/, + next : "start" + }, { + defaultToken : "comment" + } + ] + }, + + { + token : "comment", + regex : "\\-\\-.*$" + }, + { + stateName: "bracketedString", + onMatch : function(value, currentState, stack){ + stack.unshift(this.next, value.length, currentState); + return "string.start"; + }, + regex : /\[=*\[/, + next : [ + { + onMatch : function(value, currentState, stack) { + if (value.length == stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack.shift(); + } else { + this.next = ""; + } + return "string.end"; + }, + + regex : /\]=*\]/, + next : "start" + }, { + defaultToken : "string" + } + ] + }, + { + token : "string", // " string + regex : '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "string", // ' string + regex : "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\." + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+|\\w+" + } ] + }; + + this.normalizeRules(); +} + +oop.inherits(LuaHighlightRules, TextHighlightRules); + +exports.LuaHighlightRules = LuaHighlightRules; +}); + +ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; +var TokenIterator = require("../../token_iterator").TokenIterator; + + +var FoldMode = exports.FoldMode = function() {}; + +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/; + this.foldingStopMarker = /\bend\b|^\s*}|\]=*\]/; + + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var isStart = this.foldingStartMarker.test(line); + var isEnd = this.foldingStopMarker.test(line); + + if (isStart && !isEnd) { + var match = line.match(this.foldingStartMarker); + if (match[1] == "then" && /\belseif\b/.test(line)) + return; + if (match[1]) { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return "start"; + } else if (match[2]) { + var type = session.bgTokenizer.getState(row) || ""; + if (type[0] == "bracketedComment" || type[0] == "bracketedString") + return "start"; + } else { + return "start"; + } + } + if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd) + return ""; + + var match = line.match(this.foldingStopMarker); + if (match[0] === "end") { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return "end"; + } else if (match[0][0] === "]") { + var type = session.bgTokenizer.getState(row - 1) || ""; + if (type[0] == "bracketedComment" || type[0] == "bracketedString") + return "end"; + } else + return "end"; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.doc.getLine(row); + var match = this.foldingStartMarker.exec(line); + if (match) { + if (match[1]) + return this.luaBlock(session, row, match.index + 1); + + if (match[2]) + return session.getCommentFoldRange(row, match.index + 1); + + return this.openingBracketBlock(session, "{", row, match.index); + } + + var match = this.foldingStopMarker.exec(line); + if (match) { + if (match[0] === "end") { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return this.luaBlock(session, row, match.index + 1); + } + + if (match[0][0] === "]") + return session.getCommentFoldRange(row, match.index + 1); + + return this.closingBracketBlock(session, "}", row, match.index + match[0].length); + } + }; + + this.luaBlock = function(session, row, column) { + var stream = new TokenIterator(session, row, column); + var indentKeywords = { + "function": 1, + "do": 1, + "then": 1, + "elseif": -1, + "end": -1, + "repeat": 1, + "until": -1 + }; + + var token = stream.getCurrentToken(); + if (!token || token.type != "keyword") + return; + + var val = token.value; + var stack = [val]; + var dir = indentKeywords[val]; + + if (!dir) + return; + + var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length; + var startRow = row; + + stream.step = dir === -1 ? stream.stepBackward : stream.stepForward; + while(token = stream.step()) { + if (token.type !== "keyword") + continue; + var level = dir * indentKeywords[token.value]; + + if (level > 0) { + stack.unshift(token.value); + } else if (level <= 0) { + stack.shift(); + if (!stack.length && token.value != "elseif") + break; + if (level === 0) + stack.unshift(token.value); + } + } + + var row = stream.getCurrentTokenRow(); + if (dir === -1) + return new Range(row, session.getLine(row).length, startRow, startColumn); + else + return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn()); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules; +var LuaFoldMode = require("./folding/lua").FoldMode; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = LuaHighlightRules; + + this.foldingRules = new LuaFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + this.blockComment = {start: "--[", end: "]--"}; + + var indentKeywords = { + "function": 1, + "then": 1, + "do": 1, + "else": 1, + "elseif": 1, + "repeat": 1, + "end": -1, + "until": -1 + }; + var outdentKeywords = [ + "else", + "elseif", + "end", + "until" + ]; + + function getNetIndentLevel(tokens) { + var level = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type == "keyword") { + if (token.value in indentKeywords) { + level += indentKeywords[token.value]; + } + } else if (token.type == "paren.lparen") { + level += token.value.length; + } else if (token.type == "paren.rparen") { + level -= token.value.length; + } + } + if (level < 0) { + return -1; + } else if (level > 0) { + return 1; + } else { + return 0; + } + } + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var level = 0; + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (state == "start") { + level = getNetIndentLevel(tokens); + } + if (level > 0) { + return indent + tab; + } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) { + if (!this.checkOutdent(state, line, "\n")) { + return indent.substr(0, indent.length - tab.length); + } + } + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (input != "\n" && input != "\r" && input != "\r\n") + return false; + + if (line.match(/^\s*[\)\}\]]$/)) + return true; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens || !tokens.length) + return false; + + return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1); + }; + + this.autoOutdent = function(state, session, row) { + var prevLine = session.getLine(row - 1); + var prevIndent = this.$getIndent(prevLine).length; + var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens; + var tabLength = session.getTabString().length; + var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens); + var curIndent = this.$getIndent(session.getLine(row)).length; + if (curIndent <= expectedIndent) { + return; + } + session.outdentRows(new Range(row, 0, row + 2, 0)); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/lua"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-luapage.js b/htdocs/includes/ace/mode-luapage.js new file mode 100644 index 00000000000..be6b0922450 --- /dev/null +++ b/htdocs/includes/ace/mode-luapage.js @@ -0,0 +1,2978 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/lua_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LuaHighlightRules = function() { + + var keywords = ( + "break|do|else|elseif|end|for|function|if|in|local|repeat|"+ + "return|then|until|while|or|and|not" + ); + + var builtinConstants = ("true|false|nil|_G|_VERSION"); + + var functions = ( + "string|xpcall|package|tostring|print|os|unpack|require|"+ + "getfenv|setmetatable|next|assert|tonumber|io|rawequal|"+ + "collectgarbage|getmetatable|module|rawset|math|debug|"+ + "pcall|table|newproxy|type|coroutine|_G|select|gcinfo|"+ + "pairs|rawget|loadstring|ipairs|_VERSION|dofile|setfenv|"+ + "load|error|loadfile|"+ + + "sub|upper|len|gfind|rep|find|match|char|dump|gmatch|"+ + "reverse|byte|format|gsub|lower|preload|loadlib|loaded|"+ + "loaders|cpath|config|path|seeall|exit|setlocale|date|"+ + "getenv|difftime|remove|time|clock|tmpname|rename|execute|"+ + "lines|write|close|flush|open|output|type|read|stderr|"+ + "stdin|input|stdout|popen|tmpfile|log|max|acos|huge|"+ + "ldexp|pi|cos|tanh|pow|deg|tan|cosh|sinh|random|randomseed|"+ + "frexp|ceil|floor|rad|abs|sqrt|modf|asin|min|mod|fmod|log10|"+ + "atan2|exp|sin|atan|getupvalue|debug|sethook|getmetatable|"+ + "gethook|setmetatable|setlocal|traceback|setfenv|getinfo|"+ + "setupvalue|getlocal|getregistry|getfenv|setn|insert|getn|"+ + "foreachi|maxn|foreach|concat|sort|remove|resume|yield|"+ + "status|wrap|create|running|"+ + "__add|__sub|__mod|__unm|__concat|__lt|__index|__call|__gc|__metatable|"+ + "__mul|__div|__pow|__len|__eq|__le|__newindex|__tostring|__mode|__tonumber" + ); + + var stdLibaries = ("string|package|os|io|math|debug|table|coroutine"); + + var deprecatedIn5152 = ("setn|foreach|foreachi|gcinfo|log10|maxn"); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "support.function": functions, + "keyword.deprecated": deprecatedIn5152, + "constant.library": stdLibaries, + "constant.language": builtinConstants, + "variable.language": "self" + }, "identifier"); + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var integer = "(?:" + decimalInteger + "|" + hexInteger + ")"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var floatNumber = "(?:" + pointFloat + ")"; + + this.$rules = { + "start" : [{ + stateName: "bracketedComment", + onMatch : function(value, currentState, stack){ + stack.unshift(this.next, value.length - 2, currentState); + return "comment"; + }, + regex : /\-\-\[=*\[/, + next : [ + { + onMatch : function(value, currentState, stack) { + if (value.length == stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack.shift(); + } else { + this.next = ""; + } + return "comment"; + }, + regex : /\]=*\]/, + next : "start" + }, { + defaultToken : "comment" + } + ] + }, + + { + token : "comment", + regex : "\\-\\-.*$" + }, + { + stateName: "bracketedString", + onMatch : function(value, currentState, stack){ + stack.unshift(this.next, value.length, currentState); + return "string.start"; + }, + regex : /\[=*\[/, + next : [ + { + onMatch : function(value, currentState, stack) { + if (value.length == stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack.shift(); + } else { + this.next = ""; + } + return "string.end"; + }, + + regex : /\]=*\]/, + next : "start" + }, { + defaultToken : "string" + } + ] + }, + { + token : "string", // " string + regex : '"(?:[^\\\\]|\\\\.)*?"' + }, { + token : "string", // ' string + regex : "'(?:[^\\\\]|\\\\.)*?'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\/|%|\\#|\\^|~|<|>|<=|=>|==|~=|=|\\:|\\.\\.\\.|\\.\\." + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+|\\w+" + } ] + }; + + this.normalizeRules(); +} + +oop.inherits(LuaHighlightRules, TextHighlightRules); + +exports.LuaHighlightRules = LuaHighlightRules; +}); + +ace.define("ace/mode/folding/lua",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; +var TokenIterator = require("../../token_iterator").TokenIterator; + + +var FoldMode = exports.FoldMode = function() {}; + +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /\b(function|then|do|repeat)\b|{\s*$|(\[=*\[)/; + this.foldingStopMarker = /\bend\b|^\s*}|\]=*\]/; + + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var isStart = this.foldingStartMarker.test(line); + var isEnd = this.foldingStopMarker.test(line); + + if (isStart && !isEnd) { + var match = line.match(this.foldingStartMarker); + if (match[1] == "then" && /\belseif\b/.test(line)) + return; + if (match[1]) { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return "start"; + } else if (match[2]) { + var type = session.bgTokenizer.getState(row) || ""; + if (type[0] == "bracketedComment" || type[0] == "bracketedString") + return "start"; + } else { + return "start"; + } + } + if (foldStyle != "markbeginend" || !isEnd || isStart && isEnd) + return ""; + + var match = line.match(this.foldingStopMarker); + if (match[0] === "end") { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return "end"; + } else if (match[0][0] === "]") { + var type = session.bgTokenizer.getState(row - 1) || ""; + if (type[0] == "bracketedComment" || type[0] == "bracketedString") + return "end"; + } else + return "end"; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.doc.getLine(row); + var match = this.foldingStartMarker.exec(line); + if (match) { + if (match[1]) + return this.luaBlock(session, row, match.index + 1); + + if (match[2]) + return session.getCommentFoldRange(row, match.index + 1); + + return this.openingBracketBlock(session, "{", row, match.index); + } + + var match = this.foldingStopMarker.exec(line); + if (match) { + if (match[0] === "end") { + if (session.getTokenAt(row, match.index + 1).type === "keyword") + return this.luaBlock(session, row, match.index + 1); + } + + if (match[0][0] === "]") + return session.getCommentFoldRange(row, match.index + 1); + + return this.closingBracketBlock(session, "}", row, match.index + match[0].length); + } + }; + + this.luaBlock = function(session, row, column) { + var stream = new TokenIterator(session, row, column); + var indentKeywords = { + "function": 1, + "do": 1, + "then": 1, + "elseif": -1, + "end": -1, + "repeat": 1, + "until": -1 + }; + + var token = stream.getCurrentToken(); + if (!token || token.type != "keyword") + return; + + var val = token.value; + var stack = [val]; + var dir = indentKeywords[val]; + + if (!dir) + return; + + var startColumn = dir === -1 ? stream.getCurrentTokenColumn() : session.getLine(row).length; + var startRow = row; + + stream.step = dir === -1 ? stream.stepBackward : stream.stepForward; + while(token = stream.step()) { + if (token.type !== "keyword") + continue; + var level = dir * indentKeywords[token.value]; + + if (level > 0) { + stack.unshift(token.value); + } else if (level <= 0) { + stack.shift(); + if (!stack.length && token.value != "elseif") + break; + if (level === 0) + stack.unshift(token.value); + } + } + + var row = stream.getCurrentTokenRow(); + if (dir === -1) + return new Range(row, session.getLine(row).length, startRow, startColumn); + else + return new Range(startRow, startColumn, row, stream.getCurrentTokenColumn()); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/lua",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lua_highlight_rules","ace/mode/folding/lua","ace/range","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules; +var LuaFoldMode = require("./folding/lua").FoldMode; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = LuaHighlightRules; + + this.foldingRules = new LuaFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + this.blockComment = {start: "--[", end: "]--"}; + + var indentKeywords = { + "function": 1, + "then": 1, + "do": 1, + "else": 1, + "elseif": 1, + "repeat": 1, + "end": -1, + "until": -1 + }; + var outdentKeywords = [ + "else", + "elseif", + "end", + "until" + ]; + + function getNetIndentLevel(tokens) { + var level = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token.type == "keyword") { + if (token.value in indentKeywords) { + level += indentKeywords[token.value]; + } + } else if (token.type == "paren.lparen") { + level += token.value.length; + } else if (token.type == "paren.rparen") { + level -= token.value.length; + } + } + if (level < 0) { + return -1; + } else if (level > 0) { + return 1; + } else { + return 0; + } + } + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var level = 0; + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (state == "start") { + level = getNetIndentLevel(tokens); + } + if (level > 0) { + return indent + tab; + } else if (level < 0 && indent.substr(indent.length - tab.length) == tab) { + if (!this.checkOutdent(state, line, "\n")) { + return indent.substr(0, indent.length - tab.length); + } + } + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (input != "\n" && input != "\r" && input != "\r\n") + return false; + + if (line.match(/^\s*[\)\}\]]$/)) + return true; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens || !tokens.length) + return false; + + return (tokens[0].type == "keyword" && outdentKeywords.indexOf(tokens[0].value) != -1); + }; + + this.autoOutdent = function(state, session, row) { + var prevLine = session.getLine(row - 1); + var prevIndent = this.$getIndent(prevLine).length; + var prevTokens = this.getTokenizer().getLineTokens(prevLine, "start").tokens; + var tabLength = session.getTabString().length; + var expectedIndent = prevIndent + tabLength * getNetIndentLevel(prevTokens); + var curIndent = this.$getIndent(session.getLine(row)).length; + if (curIndent <= expectedIndent) { + return; + } + session.outdentRows(new Range(row, 0, row + 2, 0)); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/lua_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/lua"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/luapage_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules","ace/mode/lua_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var LuaHighlightRules = require("./lua_highlight_rules").LuaHighlightRules; + +var LuaPageHighlightRules = function() { + HtmlHighlightRules.call(this); + + var startRules = [ + { + token: "keyword", + regex: "<\\%\\=?", + push: "lua-start" + }, { + token: "keyword", + regex: "<\\?lua\\=?", + push: "lua-start" + } + ]; + + var endRules = [ + { + token: "keyword", + regex: "\\%>", + next: "pop" + }, { + token: "keyword", + regex: "\\?>", + next: "pop" + } + ]; + + this.embedRules(LuaHighlightRules, "lua-", endRules, ["start"]); + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.normalizeRules(); +}; + +oop.inherits(LuaPageHighlightRules, HtmlHighlightRules); + +exports.LuaPageHighlightRules = LuaPageHighlightRules; + +}); + +ace.define("ace/mode/luapage",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/lua","ace/mode/luapage_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var LuaMode = require("./lua").Mode; +var LuaPageHighlightRules = require("./luapage_highlight_rules").LuaPageHighlightRules; + +var Mode = function() { + HtmlMode.call(this); + + this.HighlightRules = LuaPageHighlightRules; + this.createModeDelegates({ + "lua-": LuaMode + }); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.$id = "ace/mode/luapage"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-lucene.js b/htdocs/includes/ace/mode-lucene.js new file mode 100644 index 00000000000..b830b7ae32e --- /dev/null +++ b/htdocs/includes/ace/mode-lucene.js @@ -0,0 +1,70 @@ +ace.define("ace/mode/lucene_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LuceneHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "constant.character.negation", + regex : "[\\-]" + }, { + token : "constant.character.interro", + regex : "[\\?]" + }, { + token : "constant.character.asterisk", + regex : "[\\*]" + }, { + token: 'constant.character.proximity', + regex: '~[0-9]+\\b' + }, { + token : 'keyword.operator', + regex: '(?:AND|OR|NOT)\\b' + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "keyword", + regex : "[\\S]+:" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "text", + regex : "\\s+" + } + ] + }; +}; + +oop.inherits(LuceneHighlightRules, TextHighlightRules); + +exports.LuceneHighlightRules = LuceneHighlightRules; +}); + +ace.define("ace/mode/lucene",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/lucene_highlight_rules"], function(require, exports, module) { +'use strict'; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var LuceneHighlightRules = require("./lucene_highlight_rules").LuceneHighlightRules; + +var Mode = function() { + this.HighlightRules = LuceneHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; + +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/lucene"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-makefile.js b/htdocs/includes/ace/mode-makefile.js new file mode 100644 index 00000000000..cc6fc653e28 --- /dev/null +++ b/htdocs/includes/ace/mode-makefile.js @@ -0,0 +1,404 @@ +ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var reservedKeywords = exports.reservedKeywords = ( + '!|{|}|case|do|done|elif|else|'+ + 'esac|fi|for|if|in|then|until|while|'+ + '&|;|export|local|read|typeset|unset|'+ + 'elif|select|set|function|declare|readonly' + ); + +var languageConstructs = exports.languageConstructs = ( + '[|]|alias|bg|bind|break|builtin|'+ + 'cd|command|compgen|complete|continue|'+ + 'dirs|disown|echo|enable|eval|exec|'+ + 'exit|fc|fg|getopts|hash|help|history|'+ + 'jobs|kill|let|logout|popd|printf|pushd|'+ + 'pwd|return|set|shift|shopt|source|'+ + 'suspend|test|times|trap|type|ulimit|'+ + 'umask|unalias|wait' +); + +var ShHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "keyword": reservedKeywords, + "support.function.builtin": languageConstructs, + "invalid.deprecated": "debugger" + }, "identifier"); + + var integer = "(?:(?:[1-9]\\d*)|(?:0))"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + var fileDescriptor = "(?:&" + intPart + ")"; + + var variableName = "[a-zA-Z_][a-zA-Z0-9_]*"; + var variable = "(?:" + variableName + "=)"; + + var builtinVariable = "(?:\\$(?:SHLVL|\\$|\\!|\\?))"; + + var func = "(?:" + variableName + "\\s*\\(\\))"; + + this.$rules = { + "start" : [{ + token : "constant", + regex : /\\./ + }, { + token : ["text", "comment"], + regex : /(^|\s)(#.*)$/ + }, { + token : "string.start", + regex : '"', + push : [{ + token : "constant.language.escape", + regex : /\\(?:[$`"\\]|$)/ + }, { + include : "variables" + }, { + token : "keyword.operator", + regex : /`/ // TODO highlight ` + }, { + token : "string.end", + regex : '"', + next: "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string", + regex : "\\$'", + push : [{ + token : "constant.language.escape", + regex : /\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/ + }, { + token : "string", + regex : "'", + next: "pop" + }, { + defaultToken: "string" + }] + }, { + regex : "<<<", + token : "keyword.operator" + }, { + stateName: "heredoc", + regex : "(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[4]); + return [ + {type:"constant", value: tokens[1]}, + {type:"text", value: tokens[2]}, + {type:"string", value: tokens[3]}, + {type:"support.class", value: tokens[4]}, + {type:"string", value: tokens[5]} + ]; + }, + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^\t+" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : ["keyword", "text", "text", "text", "variable"], + regex : /(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/ + }, { + token : "variable.language", + regex : builtinVariable + }, { + token : "variable", + regex : variable + }, { + include : "variables" + }, { + token : "support.function", + regex : func + }, { + token : "support.function", + regex : fileDescriptor + }, { + token : "string", // ' string + start : "'", end : "'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_][a-zA-Z0-9_]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]" + }, { + token : "punctuation.operator", + regex : ";" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]]" + }, { + token : "paren.rparen", + regex : "[\\)\\}]", + next : "pop" + }], + variables: [{ + token : "variable", + regex : /(\$)(\w+)/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\()/, + push : "start" + }, { + token : ["variable", "paren.lparen", "keyword.operator", "variable", "keyword.operator"], + regex : /(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/, + push : "start" + }, { + token : "variable", + regex : /\$[*@#?\-$!0_]/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\{)/, + push : "start" + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(ShHighlightRules, TextHighlightRules); + +exports.ShHighlightRules = ShHighlightRules; +}); + +ace.define("ace/mode/makefile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/sh_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ShHighlightFile = require("./sh_highlight_rules"); + +var MakefileHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "keyword": ShHighlightFile.reservedKeywords, + "support.function.builtin": ShHighlightFile.languageConstructs, + "invalid.deprecated": "debugger" + }, "string"); + + this.$rules = + { + "start": [ + { + token: "string.interpolated.backtick.makefile", + regex: "`", + next: "shell-start" + }, + { + token: "punctuation.definition.comment.makefile", + regex: /#(?=.)/, + next: "comment" + }, + { + token: [ "keyword.control.makefile"], + regex: "^(?:\\s*\\b)(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)(?:\\b)" + }, + {// ^([^\t ]+(\s[^\t ]+)*:(?!\=))\s*.* + token: ["entity.name.function.makefile", "text"], + regex: "^([^\\t ]+(?:\\s[^\\t ]+)*:)(\\s*.*)" + } + ], + "comment": [ + { + token : "punctuation.definition.comment.makefile", + regex : /.+\\/ + }, + { + token : "punctuation.definition.comment.makefile", + regex : ".+", + next : "start" + } + ], + "shell-start": [ + { + token: keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token: "string", + regex : "\\w+" + }, + { + token : "string.interpolated.backtick.makefile", + regex : "`", + next : "start" + } + ] +} + +}; + +oop.inherits(MakefileHighlightRules, TextHighlightRules); + +exports.MakefileHighlightRules = MakefileHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/makefile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/makefile_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MakefileHighlightRules = require("./makefile_highlight_rules").MakefileHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = MakefileHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + this.$indentWithTabs = true; + + this.$id = "ace/mode/makefile"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-markdown.js b/htdocs/includes/ace/mode-markdown.js new file mode 100644 index 00000000000..51df9be7f79 --- /dev/null +++ b/htdocs/includes/ace/mode-markdown.js @@ -0,0 +1,2865 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = XmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.voidElements = lang.arrayToMap([]); + + this.blockComment = {start: ""}; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/xml_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/xml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(defaultMode, subModes) { + this.defaultMode = defaultMode; + this.subModes = subModes; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + + this.$getMode = function(state) { + if (typeof state != "string") + state = state[0]; + for (var key in this.subModes) { + if (state.indexOf(key) === 0) + return this.subModes[key]; + } + return null; + }; + + this.$tryMode = function(state, session, foldStyle, row) { + var mode = this.$getMode(state); + return (mode ? mode.getFoldWidget(session, foldStyle, row) : ""); + }; + + this.getFoldWidget = function(session, foldStyle, row) { + return ( + this.$tryMode(session.getState(row-1), session, foldStyle, row) || + this.$tryMode(session.getState(row), session, foldStyle, row) || + this.defaultMode.getFoldWidget(session, foldStyle, row) + ); + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var mode = this.$getMode(session.getState(row-1)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.$getMode(session.getState(row)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.defaultMode; + + return mode.getFoldWidgetRange(session, foldStyle, row); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; + +var escaped = function(ch) { + return "(?:[^" + lang.escapeRegExp(ch) + "\\\\]|\\\\.)*"; +} + +function github_embed(tag, prefix) { + return { // Github style block + token : "support.function", + regex : "^\\s*```" + tag + "\\s*$", + push : prefix + "start" + }; +} + +var MarkdownHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules["start"].unshift({ + token : "empty_line", + regex : '^$', + next: "allowBlock" + }, { // h1 + token: "markup.heading.1", + regex: "^=+(?=\\s*$)" + }, { // h2 + token: "markup.heading.2", + regex: "^\\-+(?=\\s*$)" + }, { + token : function(value) { + return "markup.heading." + value.length; + }, + regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/, + next : "header" + }, + github_embed("(?:javascript|js)", "jscode-"), + github_embed("xml", "xmlcode-"), + github_embed("html", "htmlcode-"), + github_embed("css", "csscode-"), + { // Github style block + token : "support.function", + regex : "^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { // HR * - _ + token : "constant", + regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$", + next: "allowBlock" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic" + }); + + this.addRules({ + "basic" : [{ + token : "constant.language.escape", + regex : /\\[\\`*_{}\[\]()#+\-.!]/ + }, { // code span ` + token : "support.function", + regex : "(`+)(.*?[^`])(\\1)" + }, { // reference + token : ["text", "constant", "text", "url", "string", "text"], + regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$" + }, { // link by reference + token : ["text", "string", "text", "constant", "text"], + regex : "(\\[)(" + escaped("]") + ")(\\]\\s*\\[)("+ escaped("]") + ")(\\])" + }, { // link by url + token : ["text", "string", "text", "markup.underline", "string", "text"], + regex : "(\\[)(" + // [ + escaped("]") + // link text + ")(\\]\\()"+ // ]( + '((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)' + // href + '(\\s*"' + escaped('"') + '"\\s*)?' + // "title" + "(\\))" // ) + }, { // strong ** __ + token : "string.strong", + regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // emphasis * _ + token : "string.emphasis", + regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // + token : ["text", "url", "text"], + regex : "(<)("+ + "(?:https?|ftp|dict):[^'\">\\s]+"+ + "|"+ + "(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+ + ")(>)" + }], + "allowBlock": [ + {token : "support.function", regex : "^ {4}.+", next : "allowBlock"}, + {token : "empty_line", regex : '^$', next: "allowBlock"}, + {token : "empty", regex : "", next : "start"} + ], + + "header" : [{ + regex: "$", + next : "start" + }, { + include: "basic" + }, { + defaultToken : "heading" + } ], + + "listblock-start" : [{ + token : "support.variable", + regex : /(?:\[[ x]\])?/, + next : "listblock" + }], + + "listblock" : [ { // Lists only escape on completely blank lines. + token : "empty_line", + regex : "^$", + next : "start" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic", noEscape: true + }, { // Github style block + token : "support.function", + regex : "^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { + defaultToken : "list" //do not use markup.list to allow stling leading `*` differntly + } ], + + "blockquote" : [ { // Blockquotes only escape on blank lines. + token : "empty_line", + regex : "^\\s*$", + next : "start" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { + include : "basic", noEscape: true + }, { + defaultToken : "string.blockquote" + } ], + + "githubblock" : [ { + token : "support.function", + regex : "^\\s*```", + next : "start" + }, { + defaultToken : "support.function" + } ] + }); + + this.embedRules(JavaScriptHighlightRules, "jscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(HtmlHighlightRules, "htmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(CssHighlightRules, "csscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(XmlHighlightRules, "xmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.normalizeRules(); +}; +oop.inherits(MarkdownHighlightRules, TextHighlightRules); + +exports.MarkdownHighlightRules = MarkdownHighlightRules; +}); + +ace.define("ace/mode/folding/markdown",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + this.foldingStartMarker = /^(?:[=-]+\s*$|#{1,6} |`{3})/; + + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (!this.foldingStartMarker.test(line)) + return ""; + + if (line[0] == "`") { + if (session.bgTokenizer.getState(row) == "start") + return "end"; + return "start"; + } + + return "start"; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + if (!line.match(this.foldingStartMarker)) + return; + + if (line[0] == "`") { + if (session.bgTokenizer.getState(row) !== "start") { + while (++row < maxRow) { + line = session.getLine(row); + if (line[0] == "`" & line.substring(0, 3) == "```") + break; + } + return new Range(startRow, startColumn, row, 0); + } else { + while (row -- > 0) { + line = session.getLine(row); + if (line[0] == "`" & line.substring(0, 3) == "```") + break; + } + return new Range(row, line.length, startRow, 0); + } + } + + var token; + function isHeading(row) { + token = session.getTokens(row)[0]; + return token && token.type.lastIndexOf(heading, 0) === 0; + } + + var heading = "markup.heading"; + function getLevel() { + var ch = token.value[0]; + if (ch == "=") return 6; + if (ch == "-") return 5; + return 7 - token.value.search(/[^#]/); + } + + if (isHeading(row)) { + var startHeadingLevel = getLevel(); + while (++row < maxRow) { + if (!isHeading(row)) + continue; + var level = getLevel(); + if (level >= startHeadingLevel) + break; + } + + endRow = row - (!token || ["=", "-"].indexOf(token.value[0]) == -1 ? 1 : 2); + + if (endRow > startRow) { + while (endRow > startRow && /^\s*$/.test(session.getLine(endRow))) + endRow--; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/markdown",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript","ace/mode/xml","ace/mode/html","ace/mode/markdown_highlight_rules","ace/mode/folding/markdown"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var XmlMode = require("./xml").Mode; +var HtmlMode = require("./html").Mode; +var MarkdownHighlightRules = require("./markdown_highlight_rules").MarkdownHighlightRules; +var MarkdownFoldMode = require("./folding/markdown").FoldMode; + +var Mode = function() { + this.HighlightRules = MarkdownHighlightRules; + + this.createModeDelegates({ + "js-": JavaScriptMode, + "xml-": XmlMode, + "html-": HtmlMode + }); + + this.foldingRules = new MarkdownFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + this.blockComment = {start: ""}; + + this.getNextLineIndent = function(state, line, tab) { + if (state == "listblock") { + var match = /^(\s*)(?:([-+*])|(\d+)\.)(\s+)/.exec(line); + if (!match) + return ""; + var marker = match[2]; + if (!marker) + marker = parseInt(match[3], 10) + 1 + "."; + return match[1] + marker + match[4]; + } else { + return this.$getIndent(line); + } + }; + this.$id = "ace/mode/markdown"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-mask.js b/htdocs/includes/ace/mode-mask.js new file mode 100644 index 00000000000..983d02f8647 --- /dev/null +++ b/htdocs/includes/ace/mode-mask.js @@ -0,0 +1,1786 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/markdown_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules","ace/mode/html_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; + +var escaped = function(ch) { + return "(?:[^" + lang.escapeRegExp(ch) + "\\\\]|\\\\.)*"; +} + +function github_embed(tag, prefix) { + return { // Github style block + token : "support.function", + regex : "^\\s*```" + tag + "\\s*$", + push : prefix + "start" + }; +} + +var MarkdownHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules["start"].unshift({ + token : "empty_line", + regex : '^$', + next: "allowBlock" + }, { // h1 + token: "markup.heading.1", + regex: "^=+(?=\\s*$)" + }, { // h2 + token: "markup.heading.2", + regex: "^\\-+(?=\\s*$)" + }, { + token : function(value) { + return "markup.heading." + value.length; + }, + regex : /^#{1,6}(?=\s*[^ #]|\s+#.)/, + next : "header" + }, + github_embed("(?:javascript|js)", "jscode-"), + github_embed("xml", "xmlcode-"), + github_embed("html", "htmlcode-"), + github_embed("css", "csscode-"), + { // Github style block + token : "support.function", + regex : "^\\s*```\\s*\\S*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { // HR * - _ + token : "constant", + regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$", + next: "allowBlock" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic" + }); + + this.addRules({ + "basic" : [{ + token : "constant.language.escape", + regex : /\\[\\`*_{}\[\]()#+\-.!]/ + }, { // code span ` + token : "support.function", + regex : "(`+)(.*?[^`])(\\1)" + }, { // reference + token : ["text", "constant", "text", "url", "string", "text"], + regex : "^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:[\"][^\"]+[\"])?(\\s*))$" + }, { // link by reference + token : ["text", "string", "text", "constant", "text"], + regex : "(\\[)(" + escaped("]") + ")(\\]\\s*\\[)("+ escaped("]") + ")(\\])" + }, { // link by url + token : ["text", "string", "text", "markup.underline", "string", "text"], + regex : "(\\[)(" + // [ + escaped("]") + // link text + ")(\\]\\()"+ // ]( + '((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)' + // href + '(\\s*"' + escaped('"') + '"\\s*)?' + // "title" + "(\\))" // ) + }, { // strong ** __ + token : "string.strong", + regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // emphasis * _ + token : "string.emphasis", + regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" + }, { // + token : ["text", "url", "text"], + regex : "(<)("+ + "(?:https?|ftp|dict):[^'\">\\s]+"+ + "|"+ + "(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+"+ + ")(>)" + }], + "allowBlock": [ + {token : "support.function", regex : "^ {4}.+", next : "allowBlock"}, + {token : "empty_line", regex : '^$', next: "allowBlock"}, + {token : "empty", regex : "", next : "start"} + ], + + "header" : [{ + regex: "$", + next : "start" + }, { + include: "basic" + }, { + defaultToken : "heading" + } ], + + "listblock-start" : [{ + token : "support.variable", + regex : /(?:\[[ x]\])?/, + next : "listblock" + }], + + "listblock" : [ { // Lists only escape on completely blank lines. + token : "empty_line", + regex : "^$", + next : "start" + }, { // list + token : "markup.list", + regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+", + next : "listblock-start" + }, { + include : "basic", noEscape: true + }, { // Github style block + token : "support.function", + regex : "^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$", + next : "githubblock" + }, { + defaultToken : "list" //do not use markup.list to allow stling leading `*` differntly + } ], + + "blockquote" : [ { // Blockquotes only escape on blank lines. + token : "empty_line", + regex : "^\\s*$", + next : "start" + }, { // block quote + token : "string.blockquote", + regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+", + next : "blockquote" + }, { + include : "basic", noEscape: true + }, { + defaultToken : "string.blockquote" + } ], + + "githubblock" : [ { + token : "support.function", + regex : "^\\s*```", + next : "start" + }, { + defaultToken : "support.function" + } ] + }); + + this.embedRules(JavaScriptHighlightRules, "jscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(HtmlHighlightRules, "htmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(CssHighlightRules, "csscode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.embedRules(XmlHighlightRules, "xmlcode-", [{ + token : "support.function", + regex : "^\\s*```", + next : "pop" + }]); + + this.normalizeRules(); +}; +oop.inherits(MarkdownHighlightRules, TextHighlightRules); + +exports.MarkdownHighlightRules = MarkdownHighlightRules; +}); + +ace.define("ace/mode/mask_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/css_highlight_rules","ace/mode/markdown_highlight_rules","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +exports.MaskHighlightRules = MaskHighlightRules; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextRules = require("./text_highlight_rules").TextHighlightRules; +var JSRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var CssRules = require("./css_highlight_rules").CssHighlightRules; +var MDRules = require("./markdown_highlight_rules").MarkdownHighlightRules; +var HTMLRules = require("./html_highlight_rules").HtmlHighlightRules; + +var token_TAG = "keyword.support.constant.language", + token_COMPO = "support.function.markup.bold", + token_KEYWORD = "keyword", + token_LANG = "constant.language", + token_UTIL = "keyword.control.markup.italic", + token_ATTR = "support.variable.class", + token_PUNKT = "keyword.operator", + token_ITALIC = "markup.italic", + token_BOLD = "markup.bold", + token_LPARE = "paren.lparen", + token_RPARE = "paren.rparen"; + +var const_FUNCTIONS, + const_KEYWORDS, + const_CONST, + const_TAGS; +(function(){ + const_FUNCTIONS = lang.arrayToMap( + ("log").split("|") + ); + const_CONST = lang.arrayToMap( + (":dualbind|:bind|:import|slot|event|style|html|markdown|md").split("|") + ); + const_KEYWORDS = lang.arrayToMap( + ("debugger|define|var|if|each|for|of|else|switch|case|with|visible|+if|+each|+for|+switch|+with|+visible|include|import").split("|") + ); + const_TAGS = lang.arrayToMap( + ("a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdo|" + + "big|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|" + + "command|datalist|dd|del|details|dfn|dir|div|dl|dt|em|embed|fieldset|" + + "figcaption|figure|font|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|" + + "header|hgroup|hr|html|i|iframe|img|input|ins|keygen|kbd|label|legend|li|" + + "link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|" + + "option|output|p|param|pre|progress|q|rp|rt|ruby|s|samp|script|section|select|" + + "small|source|span|strike|strong|style|sub|summary|sup|table|tbody|td|" + + "textarea|tfoot|th|thead|time|title|tr|tt|u|ul|var|video|wbr|xmp").split("|") + ); +}()); + +function MaskHighlightRules () { + + this.$rules = { + "start" : [ + Token("comment", "\\/\\/.*$"), + Token("comment", "\\/\\*", [ + Token("comment", ".*?\\*\\/", "start"), + Token("comment", ".+") + ]), + + Blocks.string("'''"), + Blocks.string('"""'), + Blocks.string('"'), + Blocks.string("'"), + + Blocks.syntax(/(markdown|md)\b/, "md-multiline", "multiline"), + Blocks.syntax(/html\b/, "html-multiline", "multiline"), + Blocks.syntax(/(slot|event)\b/, "js-block", "block"), + Blocks.syntax(/style\b/, "css-block", "block"), + Blocks.syntax(/var\b/, "js-statement", "attr"), + + Blocks.tag(), + + Token(token_LPARE, "[[({>]"), + Token(token_RPARE, "[\\])};]", "start"), + { + caseInsensitive: true + } + ] + }; + var rules = this; + + addJavaScript("interpolation", /\]/, token_RPARE + "." + token_ITALIC); + addJavaScript("statement", /\)|}|;/); + addJavaScript("block", /\}/); + addCss(); + addMarkdown(); + addHtml(); + + function addJavaScript(name, escape, closeType) { + var prfx = "js-" + name + "-", + rootTokens = name === "block" ? ["start"] : ["start", "no_regex"]; + add( + JSRules + , prfx + , escape + , rootTokens + , closeType + ); + } + function addCss() { + add(CssRules, "css-block-", /\}/); + } + function addMarkdown() { + add(MDRules, "md-multiline-", /("""|''')/, []); + } + function addHtml() { + add(HTMLRules, "html-multiline-", /("""|''')/); + } + function add(Rules, strPrfx, rgxEnd, rootTokens, closeType) { + var next = "pop"; + var tokens = rootTokens || [ "start" ]; + if (tokens.length === 0) { + tokens = null; + } + if (/block|multiline/.test(strPrfx)) { + next = strPrfx + "end"; + rules.$rules[next] = [ + Token("empty", "", "start") + ]; + } + rules.embedRules( + Rules + , strPrfx + , [ Token(closeType || token_RPARE, rgxEnd, next) ] + , tokens + , tokens == null ? true : false + ); + } + + this.normalizeRules(); +} +oop.inherits(MaskHighlightRules, TextRules); + +var Blocks = { + string: function(str, next){ + var token = Token( + "string.start" + , str + , [ + Token(token_LPARE + "." + token_ITALIC, /~\[/, Blocks.interpolation()), + Token("string.end", str, "pop"), + { + defaultToken: "string" + } + ] + , next + ); + if (str.length === 1){ + var escaped = Token("string.escape", "\\\\" + str); + token.push.unshift(escaped); + } + return token; + }, + interpolation: function(){ + return [ + Token(token_UTIL, /\s*\w*\s*:/), + "js-interpolation-start" + ]; + }, + tagHead: function (rgx) { + return Token(token_ATTR, rgx, [ + Token(token_ATTR, /[\w\-_]+/), + Token(token_LPARE + "." + token_ITALIC, /~\[/, Blocks.interpolation()), + Blocks.goUp() + ]); + }, + tag: function () { + return { + token: 'tag', + onMatch : function(value) { + if (void 0 !== const_KEYWORDS[value]) + return token_KEYWORD; + if (void 0 !== const_CONST[value]) + return token_LANG; + if (void 0 !== const_FUNCTIONS[value]) + return "support.function"; + if (void 0 !== const_TAGS[value.toLowerCase()]) + return token_TAG; + + return token_COMPO; + }, + regex : /([@\w\-_:+]+)|((^|\s)(?=\s*(\.|#)))/, + push: [ + Blocks.tagHead(/\./) , + Blocks.tagHead(/#/) , + Blocks.expression(), + Blocks.attribute(), + + Token(token_LPARE, /[;>{]/, "pop") + ] + }; + }, + syntax: function(rgx, next, type){ + return { + token: token_LANG, + regex : rgx, + push: ({ + "attr": [ + next + "-start", + Token(token_PUNKT, /;/, "start") + ], + "multiline": [ + Blocks.tagHead(/\./) , + Blocks.tagHead(/#/) , + Blocks.attribute(), + Blocks.expression(), + Token(token_LPARE, /[>\{]/), + Token(token_PUNKT, /;/, "start"), + Token(token_LPARE, /'''|"""/, [ next + "-start" ]) + ], + "block": [ + Blocks.tagHead(/\./) , + Blocks.tagHead(/#/) , + Blocks.attribute(), + Blocks.expression(), + Token(token_LPARE, /\{/, [ next + "-start" ]) + ] + })[type] + }; + }, + attribute: function(){ + return Token(function(value){ + return /^x\-/.test(value) + ? token_ATTR + "." + token_BOLD + : token_ATTR; + }, /[\w_-]+/, [ + Token(token_PUNKT, /\s*=\s*/, [ + Blocks.string('"'), + Blocks.string("'"), + Blocks.word(), + Blocks.goUp() + ]), + Blocks.goUp() + ]); + }, + expression: function(){ + return Token(token_LPARE, /\(/, [ "js-statement-start" ]); + }, + word: function(){ + return Token("string", /[\w-_]+/); + }, + goUp: function(){ + return Token("text", "", "pop"); + }, + goStart: function(){ + return Token("text", "", "start"); + } +}; + + +function Token(token, rgx, mix) { + var push, next, onMatch; + if (arguments.length === 4) { + push = mix; + next = arguments[3]; + } + else if (typeof mix === "string") { + next = mix; + } + else { + push = mix; + } + if (typeof token === "function") { + onMatch = token; + token = "empty"; + } + return { + token: token, + regex: rgx, + push: push, + next: next, + onMatch: onMatch + }; +} + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mask",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mask_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MaskHighlightRules = require("./mask_highlight_rules").MaskHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = MaskHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/mask"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-matlab.js b/htdocs/includes/ace/mode-matlab.js new file mode 100644 index 00000000000..b8870403b68 --- /dev/null +++ b/htdocs/includes/ace/mode-matlab.js @@ -0,0 +1,256 @@ +ace.define("ace/mode/matlab_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MatlabHighlightRules = function() { + +var keywords = ( + "break|case|catch|classdef|continue|else|elseif|end|for|function|global|if|otherwise|parfor|persistent|return|spmd|switch|try|while" + ); + + var builtinConstants = ( + "true|false|inf|Inf|nan|NaN|eps|pi|ans|nargin|nargout|varargin|varargout" + ); + + var builtinFunctions = ( + "abs|accumarray|acos(?:d|h)?|acot(?:d|h)?|acsc(?:d|h)?|actxcontrol(?:list|select)?|actxGetRunningServer|actxserver|addlistener|addpath|addpref|addtodate|"+ + "airy|align|alim|all|allchild|alpha|alphamap|amd|ancestor|and|angle|annotation|any|area|arrayfun|asec(?:d|h)?|asin(?:d|h)?|assert|assignin|atan(?:2|d|h)?|" + + "audiodevinfo|audioplayer|audiorecorder|aufinfo|auread|autumn|auwrite|avifile|aviinfo|aviread|axes|axis|balance|bar(?:3|3h|h)?|base2dec|beep|BeginInvoke|bench|"+ + "bessel(?:h|i|j|k|y)|beta|betainc|betaincinv|betaln|bicg|bicgstab|bicgstabl|bin2dec|bitand|bitcmp|bitget|bitmax|bitnot|bitor|bitset|bitshift|bitxor|blanks|blkdiag|"+ + "bone|box|brighten|brush|bsxfun|builddocsearchdb|builtin|bvp4c|bvp5c|bvpget|bvpinit|bvpset|bvpxtend|calendar|calllib|callSoapService|camdolly|cameratoolbar|camlight|"+ + "camlookat|camorbit|campan|campos|camproj|camroll|camtarget|camup|camva|camzoom|cart2pol|cart2sph|cast|cat|caxis|cd|cdf2rdf|cdfepoch|cdfinfo|cdflib(?:.(?:close|closeVar|"+ + "computeEpoch|computeEpoch16|create|createAttr|createVar|delete|deleteAttr|deleteAttrEntry|deleteAttrgEntry|deleteVar|deleteVarRecords|epoch16Breakdown|epochBreakdown|getAttrEntry|"+ + "getAttrgEntry|getAttrMaxEntry|getAttrMaxgEntry|getAttrName|getAttrNum|getAttrScope|getCacheSize|getChecksum|getCompression|getCompressionCacheSize|getConstantNames|"+ + "getConstantValue|getCopyright|getFileBackward|getFormat|getLibraryCopyright|getLibraryVersion|getMajority|getName|getNumAttrEntries|getNumAttrgEntries|getNumAttributes|"+ + "getNumgAttributes|getReadOnlyMode|getStageCacheSize|getValidate|getVarAllocRecords|getVarBlockingFactor|getVarCacheSize|getVarCompression|getVarData|getVarMaxAllocRecNum|"+ + "getVarMaxWrittenRecNum|getVarName|getVarNum|getVarNumRecsWritten|getVarPadValue|getVarRecordData|getVarReservePercent|getVarsMaxWrittenRecNum|getVarSparseRecords|getVersion|"+ + "hyperGetVarData|hyperPutVarData|inquire|inquireAttr|inquireAttrEntry|inquireAttrgEntry|inquireVar|open|putAttrEntry|putAttrgEntry|putVarData|putVarRecordData|renameAttr|"+ + "renameVar|setCacheSize|setChecksum|setCompression|setCompressionCacheSize|setFileBackward|setFormat|setMajority|setReadOnlyMode|setStageCacheSize|setValidate|"+ + "setVarAllocBlockRecords|setVarBlockingFactor|setVarCacheSize|setVarCompression|setVarInitialRecs|setVarPadValue|SetVarReservePercent|setVarsCacheSize|setVarSparseRecords))?|"+ + "cdfread|cdfwrite|ceil|cell2mat|cell2struct|celldisp|cellfun|cellplot|cellstr|cgs|checkcode|checkin|checkout|chol|cholinc|cholupdate|circshift|cla|clabel|class|clc|clear|"+ + "clearvars|clf|clipboard|clock|close|closereq|cmopts|cmpermute|cmunique|colamd|colon|colorbar|colordef|colormap|colormapeditor|colperm|Combine|comet|comet3|commandhistory|"+ + "commandwindow|compan|compass|complex|computer|cond|condeig|condest|coneplot|conj|containers.Map|contour(?:3|c|f|slice)?|contrast|conv|conv2|convhull|convhulln|convn|cool|"+ + "copper|copyfile|copyobj|corrcoef|cos(?:d|h)?|cot(?:d|h)?|cov|cplxpair|cputime|createClassFromWsdl|createSoapMessage|cross|csc(?:d|h)?|csvread|csvwrite|ctranspose|cumprod|"+ + "cumsum|cumtrapz|curl|customverctrl|cylinder|daqread|daspect|datacursormode|datatipinfo|date|datenum|datestr|datetick|datevec|dbclear|dbcont|dbdown|dblquad|dbmex|dbquit|"+ + "dbstack|dbstatus|dbstep|dbstop|dbtype|dbup|dde23|ddeget|ddesd|ddeset|deal|deblank|dec2base|dec2bin|dec2hex|decic|deconv|del2|delaunay|delaunay3|delaunayn|DelaunayTri|delete|"+ + "demo|depdir|depfun|det|detrend|deval|diag|dialog|diary|diff|diffuse|dir|disp|display|dither|divergence|dlmread|dlmwrite|dmperm|doc|docsearch|dos|dot|dragrect|drawnow|dsearch|"+ + "dsearchn|dynamicprops|echo|echodemo|edit|eig|eigs|ellipj|ellipke|ellipsoid|empty|enableNETfromNetworkDrive|enableservice|EndInvoke|enumeration|eomday|eq|erf|erfc|erfcinv|"+ + "erfcx|erfinv|error|errorbar|errordlg|etime|etree|etreeplot|eval|evalc|evalin|event.(?:EventData|listener|PropertyEvent|proplistener)|exifread|exist|exit|exp|expint|expm|"+ + "expm1|export2wsdlg|eye|ezcontour|ezcontourf|ezmesh|ezmeshc|ezplot|ezplot3|ezpolar|ezsurf|ezsurfc|factor|factorial|fclose|feather|feature|feof|ferror|feval|fft|fft2|fftn|"+ + "fftshift|fftw|fgetl|fgets|fieldnames|figure|figurepalette|fileattrib|filebrowser|filemarker|fileparts|fileread|filesep|fill|fill3|filter|filter2|find|findall|findfigs|"+ + "findobj|findstr|finish|fitsdisp|fitsinfo|fitsread|fitswrite|fix|flag|flipdim|fliplr|flipud|floor|flow|fminbnd|fminsearch|fopen|format|fplot|fprintf|frame2im|fread|freqspace|"+ + "frewind|fscanf|fseek|ftell|FTP|full|fullfile|func2str|functions|funm|fwrite|fzero|gallery|gamma|gammainc|gammaincinv|gammaln|gca|gcbf|gcbo|gcd|gcf|gco|ge|genpath|genvarname|"+ + "get|getappdata|getenv|getfield|getframe|getpixelposition|getpref|ginput|gmres|gplot|grabcode|gradient|gray|graymon|grid|griddata(?:3|n)?|griddedInterpolant|gsvd|gt|gtext|"+ + "guidata|guide|guihandles|gunzip|gzip|h5create|h5disp|h5info|h5read|h5readatt|h5write|h5writeatt|hadamard|handle|hankel|hdf|hdf5|hdf5info|hdf5read|hdf5write|hdfinfo|"+ + "hdfread|hdftool|help|helpbrowser|helpdesk|helpdlg|helpwin|hess|hex2dec|hex2num|hgexport|hggroup|hgload|hgsave|hgsetget|hgtransform|hidden|hilb|hist|histc|hold|home|horzcat|"+ + "hostid|hot|hsv|hsv2rgb|hypot|ichol|idivide|ifft|ifft2|ifftn|ifftshift|ilu|im2frame|im2java|imag|image|imagesc|imapprox|imfinfo|imformats|import|importdata|imread|imwrite|"+ + "ind2rgb|ind2sub|inferiorto|info|inline|inmem|inpolygon|input|inputdlg|inputname|inputParser|inspect|instrcallback|instrfind|instrfindall|int2str|integral(?:2|3)?|interp(?:1|"+ + "1q|2|3|ft|n)|interpstreamspeed|intersect|intmax|intmin|inv|invhilb|ipermute|isa|isappdata|iscell|iscellstr|ischar|iscolumn|isdir|isempty|isequal|isequaln|isequalwithequalnans|"+ + "isfield|isfinite|isfloat|isglobal|ishandle|ishghandle|ishold|isinf|isinteger|isjava|iskeyword|isletter|islogical|ismac|ismatrix|ismember|ismethod|isnan|isnumeric|isobject|"+ + "isocaps|isocolors|isonormals|isosurface|ispc|ispref|isprime|isprop|isreal|isrow|isscalar|issorted|isspace|issparse|isstr|isstrprop|isstruct|isstudent|isunix|isvarname|"+ + "isvector|javaaddpath|javaArray|javachk|javaclasspath|javacomponent|javaMethod|javaMethodEDT|javaObject|javaObjectEDT|javarmpath|jet|keyboard|kron|lasterr|lasterror|"+ + "lastwarn|lcm|ldivide|ldl|le|legend|legendre|length|libfunctions|libfunctionsview|libisloaded|libpointer|libstruct|license|light|lightangle|lighting|lin2mu|line|lines|"+ + "linkaxes|linkdata|linkprop|linsolve|linspace|listdlg|listfonts|load|loadlibrary|loadobj|log|log10|log1p|log2|loglog|logm|logspace|lookfor|lower|ls|lscov|lsqnonneg|lsqr|"+ + "lt|lu|luinc|magic|makehgtform|mat2cell|mat2str|material|matfile|matlab.io.MatFile|matlab.mixin.(?:Copyable|Heterogeneous(?:.getDefaultScalarElement)?)|matlabrc|"+ + "matlabroot|max|maxNumCompThreads|mean|median|membrane|memmapfile|memory|menu|mesh|meshc|meshgrid|meshz|meta.(?:class(?:.fromName)?|DynamicProperty|EnumeratedValue|event|"+ + "MetaData|method|package(?:.(?:fromName|getAllPackages))?|property)|metaclass|methods|methodsview|mex(?:.getCompilerConfigurations)?|MException|mexext|mfilename|min|minres|"+ + "minus|mislocked|mkdir|mkpp|mldivide|mlint|mlintrpt|mlock|mmfileinfo|mmreader|mod|mode|more|move|movefile|movegui|movie|movie2avi|mpower|mrdivide|msgbox|mtimes|mu2lin|"+ + "multibandread|multibandwrite|munlock|namelengthmax|nargchk|narginchk|nargoutchk|native2unicode|nccreate|ncdisp|nchoosek|ncinfo|ncread|ncreadatt|ncwrite|ncwriteatt|"+ + "ncwriteschema|ndgrid|ndims|ne|NET(?:.(?:addAssembly|Assembly|convertArray|createArray|createGeneric|disableAutoRelease|enableAutoRelease|GenericClass|invokeGenericMethod|"+ + "NetException|setStaticProperty))?|netcdf.(?:abort|close|copyAtt|create|defDim|defGrp|defVar|defVarChunking|defVarDeflate|defVarFill|defVarFletcher32|delAtt|endDef|getAtt|"+ + "getChunkCache|getConstant|getConstantNames|getVar|inq|inqAtt|inqAttID|inqAttName|inqDim|inqDimID|inqDimIDs|inqFormat|inqGrpName|inqGrpNameFull|inqGrpParent|inqGrps|"+ + "inqLibVers|inqNcid|inqUnlimDims|inqVar|inqVarChunking|inqVarDeflate|inqVarFill|inqVarFletcher32|inqVarID|inqVarIDs|open|putAtt|putVar|reDef|renameAtt|renameDim|renameVar|"+ + "setChunkCache|setDefaultFormat|setFill|sync)|newplot|nextpow2|nnz|noanimate|nonzeros|norm|normest|not|notebook|now|nthroot|null|num2cell|num2hex|num2str|numel|nzmax|"+ + "ode(?:113|15i|15s|23|23s|23t|23tb|45)|odeget|odeset|odextend|onCleanup|ones|open|openfig|opengl|openvar|optimget|optimset|or|ordeig|orderfields|ordqz|ordschur|orient|"+ + "orth|pack|padecoef|pagesetupdlg|pan|pareto|parseSoapResponse|pascal|patch|path|path2rc|pathsep|pathtool|pause|pbaspect|pcg|pchip|pcode|pcolor|pdepe|pdeval|peaks|perl|perms|"+ + "permute|pie|pink|pinv|planerot|playshow|plot|plot3|plotbrowser|plotedit|plotmatrix|plottools|plotyy|plus|pol2cart|polar|poly|polyarea|polyder|polyeig|polyfit|polyint|polyval|"+ + "polyvalm|pow2|power|ppval|prefdir|preferences|primes|print|printdlg|printopt|printpreview|prod|profile|profsave|propedit|propertyeditor|psi|publish|PutCharArray|PutFullMatrix|"+ + "PutWorkspaceData|pwd|qhull|qmr|qr|qrdelete|qrinsert|qrupdate|quad|quad2d|quadgk|quadl|quadv|questdlg|quit|quiver|quiver3|qz|rand|randi|randn|randperm|RandStream(?:.(?:create|"+ + "getDefaultStream|getGlobalStream|list|setDefaultStream|setGlobalStream))?|rank|rat|rats|rbbox|rcond|rdivide|readasync|real|reallog|realmax|realmin|realpow|realsqrt|record|"+ + "rectangle|rectint|recycle|reducepatch|reducevolume|refresh|refreshdata|regexp|regexpi|regexprep|regexptranslate|rehash|rem|Remove|RemoveAll|repmat|reset|reshape|residue|"+ + "restoredefaultpath|rethrow|rgb2hsv|rgb2ind|rgbplot|ribbon|rmappdata|rmdir|rmfield|rmpath|rmpref|rng|roots|rose|rosser|rot90|rotate|rotate3d|round|rref|rsf2csf|run|save|saveas|"+ + "saveobj|savepath|scatter|scatter3|schur|sec|secd|sech|selectmoveresize|semilogx|semilogy|sendmail|serial|set|setappdata|setdiff|setenv|setfield|setpixelposition|setpref|setstr|"+ + "setxor|shading|shg|shiftdim|showplottool|shrinkfaces|sign|sin(?:d|h)?|size|slice|smooth3|snapnow|sort|sortrows|sound|soundsc|spalloc|spaugment|spconvert|spdiags|specular|speye|"+ + "spfun|sph2cart|sphere|spinmap|spline|spones|spparms|sprand|sprandn|sprandsym|sprank|spring|sprintf|spy|sqrt|sqrtm|squeeze|ss2tf|sscanf|stairs|startup|std|stem|stem3|stopasync|"+ + "str2double|str2func|str2mat|str2num|strcat|strcmp|strcmpi|stream2|stream3|streamline|streamparticles|streamribbon|streamslice|streamtube|strfind|strjust|strmatch|strncmp|"+ + "strncmpi|strread|strrep|strtok|strtrim|struct2cell|structfun|strvcat|sub2ind|subplot|subsasgn|subsindex|subspace|subsref|substruct|subvolume|sum|summer|superclasses|superiorto|"+ + "support|surf|surf2patch|surface|surfc|surfl|surfnorm|svd|svds|swapbytes|symamd|symbfact|symmlq|symrcm|symvar|system|tan(?:d|h)?|tar|tempdir|tempname|tetramesh|texlabel|text|"+ + "textread|textscan|textwrap|tfqmr|throw|tic|Tiff(?:.(?:getTagNames|getVersion))?|timer|timerfind|timerfindall|times|timeseries|title|toc|todatenum|toeplitz|toolboxdir|trace|"+ + "transpose|trapz|treelayout|treeplot|tril|trimesh|triplequad|triplot|TriRep|TriScatteredInterp|trisurf|triu|tscollection|tsearch|tsearchn|tstool|type|typecast|uibuttongroup|"+ + "uicontextmenu|uicontrol|uigetdir|uigetfile|uigetpref|uiimport|uimenu|uiopen|uipanel|uipushtool|uiputfile|uiresume|uisave|uisetcolor|uisetfont|uisetpref|uistack|uitable|"+ + "uitoggletool|uitoolbar|uiwait|uminus|undocheckout|unicode2native|union|unique|unix|unloadlibrary|unmesh|unmkpp|untar|unwrap|unzip|uplus|upper|urlread|urlwrite|usejava|"+ + "userpath|validateattributes|validatestring|vander|var|vectorize|ver|verctrl|verLessThan|version|vertcat|VideoReader(?:.isPlatformSupported)?|VideoWriter(?:.getProfiles)?|"+ + "view|viewmtx|visdiff|volumebounds|voronoi|voronoin|wait|waitbar|waitfor|waitforbuttonpress|warndlg|warning|waterfall|wavfinfo|wavplay|wavread|wavrecord|wavwrite|web|weekday|"+ + "what|whatsnew|which|whitebg|who|whos|wilkinson|winopen|winqueryreg|winter|wk1finfo|wk1read|wk1write|workspace|xlabel|xlim|xlsfinfo|xlsread|xlswrite|xmlread|xmlwrite|xor|xslt|"+ + "ylabel|ylim|zeros|zip|zlabel|zlim|zoom|addedvarplot|andrewsplot|anova(?:1|2|n)|ansaribradley|aoctool|barttest|bbdesign|beta(?:cdf|fit|inv|like|pdf|rnd|stat)|bino(?:cdf|fit|inv|"+ + "pdf|rnd|stat)|biplot|bootci|bootstrp|boxplot|candexch|candgen|canoncorr|capability|capaplot|caseread|casewrite|categorical|ccdesign|cdfplot|chi2(?:cdf|gof|inv|pdf|rnd|stat)|"+ + "cholcov|Classification(?:BaggedEnsemble|Discriminant(?:.(?:fit|make|template))?|Ensemble|KNN(?:.(?:fit|template))?|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|"+ + "template))?)|classify|classregtree|cluster|clusterdata|cmdscale|combnk|Compact(?:Classification(?:Discriminant|Ensemble|Tree)|Regression(?:Ensemble|Tree)|TreeBagger)|confusionmat|"+ + "controlchart|controlrules|cophenet|copula(?:cdf|fit|param|pdf|rnd|stat)|cordexch|corr|corrcov|coxphfit|createns|crosstab|crossval|cvpartition|datasample|dataset|daugment|dcovary|"+ + "dendrogram|dfittool|disttool|dummyvar|dwtest|ecdf|ecdfhist|ev(?:cdf|fit|inv|like|pdf|rnd|stat)|ExhaustiveSearcher|exp(?:cdf|fit|inv|like|pdf|rnd|stat)|factoran|fcdf|ff2n|finv|"+ + "fitdist|fitensemble|fpdf|fracfact|fracfactgen|friedman|frnd|fstat|fsurfht|fullfact|gagerr|gam(?:cdf|fit|inv|like|pdf|rnd|stat)|GeneralizedLinearModel(?:.fit)?|geo(?:cdf|inv|mean|"+ + "pdf|rnd|stat)|gev(?:cdf|fit|inv|like|pdf|rnd|stat)|gline|glmfit|glmval|glyphplot|gmdistribution(?:.fit)?|gname|gp(?:cdf|fit|inv|like|pdf|rnd|stat)|gplotmatrix|grp2idx|grpstats|"+ + "gscatter|haltonset|harmmean|hist3|histfit|hmm(?:decode|estimate|generate|train|viterbi)|hougen|hyge(?:cdf|inv|pdf|rnd|stat)|icdf|inconsistent|interactionplot|invpred|iqr|iwishrnd|"+ + "jackknife|jbtest|johnsrnd|KDTreeSearcher|kmeans|knnsearch|kruskalwallis|ksdensity|kstest|kstest2|kurtosis|lasso|lassoglm|lassoPlot|leverage|lhsdesign|lhsnorm|lillietest|"+ + "LinearModel(?:.fit)?|linhyptest|linkage|logn(?:cdf|fit|inv|like|pdf|rnd|stat)|lsline|mad|mahal|maineffectsplot|manova1|manovacluster|mdscale|mhsample|mle|mlecov|mnpdf|"+ + "mnrfit|mnrnd|mnrval|moment|multcompare|multivarichart|mvn(?:cdf|pdf|rnd)|mvregress|mvregresslike|mvt(?:cdf|pdf|rnd)|NaiveBayes(?:.fit)?|nan(?:cov|max|mean|median|min|std|"+ + "sum|var)|nbin(?:cdf|fit|inv|pdf|rnd|stat)|ncf(?:cdf|inv|pdf|rnd|stat)|nct(?:cdf|inv|pdf|rnd|stat)|ncx2(?:cdf|inv|pdf|rnd|stat)|NeighborSearcher|nlinfit|nlintool|nlmefit|nlmefitsa|"+ + "nlparci|nlpredci|nnmf|nominal|NonLinearModel(?:.fit)?|norm(?:cdf|fit|inv|like|pdf|rnd|stat)|normplot|normspec|ordinal|outlierMeasure|parallelcoords|paretotails|partialcorr|"+ + "pcacov|pcares|pdf|pdist|pdist2|pearsrnd|perfcurve|perms|piecewisedistribution|plsregress|poiss(?:cdf|fit|inv|pdf|rnd|tat)|polyconf|polytool|prctile|princomp|ProbDist(?:Kernel|"+ + "Parametric|UnivKernel|UnivParam)?|probplot|procrustes|qqplot|qrandset|qrandstream|quantile|randg|random|randsample|randtool|range|rangesearch|ranksum|rayl(?:cdf|fit|inv|pdf|"+ + "rnd|stat)|rcoplot|refcurve|refline|regress|Regression(?:BaggedEnsemble|Ensemble|PartitionedEnsemble|PartitionedModel|Tree(?:.(?:fit|template))?)|regstats|relieff|ridge|"+ + "robustdemo|robustfit|rotatefactors|rowexch|rsmdemo|rstool|runstest|sampsizepwr|scatterhist|sequentialfs|signrank|signtest|silhouette|skewness|slicesample|sobolset|squareform|"+ + "statget|statset|stepwise|stepwisefit|surfht|tabulate|tblread|tblwrite|tcdf|tdfread|tiedrank|tinv|tpdf|TreeBagger|treedisp|treefit|treeprune|treetest|treeval|trimmean|trnd|tstat|"+ + "ttest|ttest2|unid(?:cdf|inv|pdf|rnd|stat)|unif(?:cdf|inv|it|pdf|rnd|stat)|vartest(?:2|n)?|wbl(?:cdf|fit|inv|like|pdf|rnd|stat)|wblplot|wishrnd|x2fx|xptread|zscore|ztest"+ + "adapthisteq|analyze75info|analyze75read|applycform|applylut|axes2pix|bestblk|blockproc|bwarea|bwareaopen|bwboundaries|bwconncomp|bwconvhull|bwdist|bwdistgeodesic|bweuler|"+ + "bwhitmiss|bwlabel|bwlabeln|bwmorph|bwpack|bwperim|bwselect|bwtraceboundary|bwulterode|bwunpack|checkerboard|col2im|colfilt|conndef|convmtx2|corner|cornermetric|corr2|cp2tform|"+ + "cpcorr|cpselect|cpstruct2pairs|dct2|dctmtx|deconvblind|deconvlucy|deconvreg|deconvwnr|decorrstretch|demosaic|dicom(?:anon|dict|info|lookup|read|uid|write)|edge|edgetaper|entropy|"+ + "entropyfilt|fan2para|fanbeam|findbounds|fliptform|freqz2|fsamp2|fspecial|ftrans2|fwind1|fwind2|getheight|getimage|getimagemodel|getline|getneighbors|getnhood|getpts|"+ + "getrangefromclass|getrect|getsequence|gray2ind|graycomatrix|graycoprops|graydist|grayslice|graythresh|hdrread|hdrwrite|histeq|hough|houghlines|houghpeaks|iccfind|iccread|"+ + "iccroot|iccwrite|idct2|ifanbeam|im2bw|im2col|im2double|im2int16|im2java2d|im2single|im2uint16|im2uint8|imabsdiff|imadd|imadjust|ImageAdapter|imageinfo|imagemodel|imapplymatrix|"+ + "imattributes|imbothat|imclearborder|imclose|imcolormaptool|imcomplement|imcontour|imcontrast|imcrop|imdilate|imdisplayrange|imdistline|imdivide|imellipse|imerode|imextendedmax|"+ + "imextendedmin|imfill|imfilter|imfindcircles|imfreehand|imfuse|imgca|imgcf|imgetfile|imhandles|imhist|imhmax|imhmin|imimposemin|imlincomb|imline|immagbox|immovie|immultiply|imnoise|"+ + "imopen|imoverview|imoverviewpanel|impixel|impixelinfo|impixelinfoval|impixelregion|impixelregionpanel|implay|impoint|impoly|impositionrect|improfile|imputfile|impyramid|"+ + "imreconstruct|imrect|imregconfig|imregionalmax|imregionalmin|imregister|imresize|imroi|imrotate|imsave|imscrollpanel|imshow|imshowpair|imsubtract|imtool|imtophat|imtransform|"+ + "imview|ind2gray|ind2rgb|interfileinfo|interfileread|intlut|ippl|iptaddcallback|iptcheckconn|iptcheckhandle|iptcheckinput|iptcheckmap|iptchecknargin|iptcheckstrs|iptdemos|iptgetapi|"+ + "iptGetPointerBehavior|iptgetpref|ipticondir|iptnum2ordinal|iptPointerManager|iptprefs|iptremovecallback|iptSetPointerBehavior|iptsetpref|iptwindowalign|iradon|isbw|isflat|isgray|"+ + "isicc|isind|isnitf|isrgb|isrset|lab2double|lab2uint16|lab2uint8|label2rgb|labelmatrix|makecform|makeConstrainToRectFcn|makehdr|makelut|makeresampler|maketform|mat2gray|mean2|"+ + "medfilt2|montage|nitfinfo|nitfread|nlfilter|normxcorr2|ntsc2rgb|openrset|ordfilt2|otf2psf|padarray|para2fan|phantom|poly2mask|psf2otf|qtdecomp|qtgetblk|qtsetblk|radon|rangefilt|"+ + "reflect|regionprops|registration.metric.(?:MattesMutualInformation|MeanSquares)|registration.optimizer.(?:OnePlusOneEvolutionary|RegularStepGradientDescent)|rgb2gray|"+ + "rgb2ntsc|rgb2ycbcr|roicolor|roifill|roifilt2|roipoly|rsetwrite|std2|stdfilt|strel|stretchlim|subimage|tformarray|tformfwd|tforminv|tonemap|translate|truesize|uintlut|viscircles|"+ + "warp|watershed|whitepoint|wiener2|xyz2double|xyz2uint16|ycbcr2rgb|bintprog|color|fgoalattain|fminbnd|fmincon|fminimax|fminsearch|fminunc|fseminf|fsolve|fzero|fzmult|gangstr|ktrlink|"+ + "linprog|lsqcurvefit|lsqlin|lsqnonlin|lsqnonneg|optimget|optimset|optimtool|quadprog" + ); + var storageType = ( + "cell|struct|char|double|single|logical|u?int(?:8|16|32|64)|sparse" + ); + var keywordMapper = this.createKeywordMapper({ + "storage.type": storageType, + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants + }, "identifier", true); + + this.$rules = { + start: [{ + token : "string", + regex : "'", + stateName : "qstring", + next : [{ + token : "constant.language.escape", + regex : "''" + }, { + token : "string", + regex : "'|$", + next : "start" + }, { + defaultToken: "string" + }] + }, { + token : "text", + regex : "\\s+" + }, { + regex: "", + next: "noQstring" + }], + noQstring : [{ + regex: "^\\s*%{\\s*$", + token: "comment.start", + push: "blockComment" + }, { + token : "comment", + regex : "%[^\r\n]*" + }, { + token : "string", + regex : '"', + stateName : "qqstring", + next : [{ + token : "constant.language.escape", + regex : /\\./ + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken: "string" + }] + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=", + next: "start" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\.", + next: "start" + }, { + token : "paren.lparen", + regex : "[({\\[]", + next: "start" + }, { + token : "paren.rparen", + regex : "[\\]})]" + }, { + token : "text", + regex : "\\s+" + }, { + token : "text", + regex : "$", + next : "start" + }], + blockComment: [{ + regex: "^\\s*%{\\s*$", + token: "comment.start", + push: "blockComment" + }, { + regex: "^\\s*%}\\s*$", + token: "comment.end", + next: "pop" + }, { + defaultToken: "comment" + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(MatlabHighlightRules, TextHighlightRules); + +exports.MatlabHighlightRules = MatlabHighlightRules; +}); + +ace.define("ace/mode/matlab",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/matlab_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MatlabHighlightRules = require("./matlab_highlight_rules").MatlabHighlightRules; + +var Mode = function() { + this.HighlightRules = MatlabHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "%"; + this.blockComment = {start: "%{", end: "%}"}; + + this.$id = "ace/mode/matlab"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-mavens_mate_log.js b/htdocs/includes/ace/mode-mavens_mate_log.js new file mode 100644 index 00000000000..8f73e66e1e1 --- /dev/null +++ b/htdocs/includes/ace/mode-mavens_mate_log.js @@ -0,0 +1,160 @@ +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mavens_mate_log",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mavens_mate_log_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MavensMateLogHighlightRules = require("./mavens_mate_log_highlight_rules").MavensMateLogHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = MavensMateLogHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/mavens_mate_log" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-maze.js b/htdocs/includes/ace/mode-maze.js new file mode 100644 index 00000000000..cdc8d221606 --- /dev/null +++ b/htdocs/includes/ace/mode-maze.js @@ -0,0 +1,284 @@ +ace.define("ace/mode/maze_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MazeHighlightRules = function() { + + this.$rules = { + start: [{ + token: "keyword.control", + regex: /##|``/, + comment: "Wall" + }, { + token: "entity.name.tag", + regex: /\.\./, + comment: "Path" + }, { + token: "keyword.control", + regex: /<>/, + comment: "Splitter" + }, { + token: "entity.name.tag", + regex: /\*[\*A-Za-z0-9]/, + comment: "Signal" + }, { + token: "constant.numeric", + regex: /[0-9]{2}/, + comment: "Pause" + }, { + token: "keyword.control", + regex: /\^\^/, + comment: "Start" + }, { + token: "keyword.control", + regex: /\(\)/, + comment: "Hole" + }, { + token: "support.function", + regex: />>/, + comment: "Out" + }, { + token: "support.function", + regex: />\//, + comment: "Ln Out" + }, { + token: "support.function", + regex: /< *)(?:([-+*\/]=)( *)((?:-)?)([0-9]+)|(=)( *)(?:((?:-)?)([0-9]+)|("[^"]*")|('[^']*')))/, + comment: "Assignment function" + }, { + token: [ + "entity.name.function", + "keyword.other", + "keyword.control", + "keyword.other", + "keyword.operator", + "keyword.other", + "keyword.operator", + "constant.numeric", + "entity.name.tag", + "keyword.other", + "keyword.control", + "keyword.other", + "constant.language", + "keyword.other", + "keyword.control", + "keyword.other", + "constant.language" + ], + regex: /([A-Za-z][A-Za-z0-9])( *-> *)(IF|if)( *)(?:([<>]=?|==)( *)((?:-)?)([0-9]+)|(\*[\*A-Za-z0-9]))( *)(THEN|then)( *)(%[LRUDNlrudn])(?:( *)(ELSE|else)( *)(%[LRUDNlrudn]))?/, + comment: "Equality Function" + }, { + token: "entity.name.function", + regex: /[A-Za-z][A-Za-z0-9]/, + comment: "Function cell" + }, { + token: "comment.line.double-slash", + regex: / *\/\/.*/, + comment: "Comment" + }] + }; + + this.normalizeRules(); +}; + +MazeHighlightRules.metaData = { + fileTypes: ["mz"], + name: "Maze", + scopeName: "source.maze" +}; + + +oop.inherits(MazeHighlightRules, TextHighlightRules); + +exports.MazeHighlightRules = MazeHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/maze",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/maze_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MazeHighlightRules = require("./maze_highlight_rules").MazeHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = MazeHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.$id = "ace/mode/maze"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-mel.js b/htdocs/includes/ace/mode-mel.js new file mode 100644 index 00000000000..20de249b1f6 --- /dev/null +++ b/htdocs/includes/ace/mode-mel.js @@ -0,0 +1,256 @@ +ace.define("ace/mode/mel_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MELHighlightRules = function() { + + this.$rules = { start: + [ { caseInsensitive: true, + token: 'storage.type.mel', + regex: '\\b(matrix|string|vector|float|int|void)\\b' }, + { caseInsensitive: true, + token: 'support.function.mel', + regex: '\\b((s(h(ow(ManipCtx|S(hadingGroupAttrEditor|electionInTitle)|H(idden|elp)|Window)|el(f(Button|TabLayout|Layout)|lField)|ading(GeometryRelCtx|Node|Connection|LightRelCtx))|y(s(tem|File)|mbol(Button|CheckBox))|nap(shot|Mode|2to2 |TogetherCtx|Key)|c(ulpt|ene(UIReplacement|Editor)|ale(BrushBrightness |Constraint|Key(Ctx)?)?|r(ipt(Node|Ctx|Table|edPanel(Type)?|Job|EditorInfo)|oll(Field|Layout))|mh)|t(itch(Surface(Points)?|AndExplodeShell )|a(ckTrace|rt(sWith |String ))|r(cmp|i(ng(ToStringArray |Array(Remove(Duplicates | )|C(ount |atenate )|ToString |Intersector))|p )|oke))|i(n(gleProfileBirailSurface)?|ze|gn|mplify)|o(u(nd(Control)?|rce)|ft(Mod(Ctx)?)?|rt)|u(perCtx|rface(S(haderList|ampler))?|b(st(itute(Geometry|AllString )?|ring)|d(M(irror|a(tchTopology|p(SewMove|Cut)))|iv(Crease|DisplaySmoothness)?|C(ollapse|leanTopology)|T(o(Blind|Poly)|ransferUVsToCache)|DuplicateAndConnect|EditUV|ListComponentConversion|AutoProjection)))|p(h(ere|rand)|otLight(PreviewPort)?|aceLocator|r(ing|eadSheetEditor))|e(t(s|MenuMode|Sta(te |rtupMessage|mpDensity )|NodeTypeFlag|ConstraintRestPosition |ToolTo|In(putDeviceMapping|finity)|D(ynamic|efaultShadingGroup|rivenKeyframe)|UITemplate|P(ar(ticleAttr|ent)|roject )|E(scapeCtx|dit(or|Ctx))|Key(Ctx|frame|Path)|F(ocus|luidAttr)|Attr(Mapping)?)|parator|ed|l(ect(Mode|ionConnection|Context|Type|edNodes|Pr(iority|ef)|Key(Ctx)?)?|LoadSettings)|archPathArray )|kin(Cluster|Percent)|q(uareSurface|rt)|w(itchTable|atchDisplayPort)|a(ve(Menu|Shelf|ToolSettings|I(nitialState|mage)|Pref(s|Objects)|Fluid|A(ttrPreset |llShelves))|mpleImage)|rtContext|mooth(step|Curve|TangentSurface))|h(sv_to_rgb|yp(ot|er(Graph|Shade|Panel))|i(tTest|de|lite)|ot(Box|key(Check)?)|ud(Button|Slider(Button)?)|e(lp(Line)?|adsUpDisplay|rmite)|wRe(nder(Load)?|flectionMap)|ard(enPointCurve|ware(RenderPanel)?))|n(o(nLinear|ise|de(Type|IconButton|Outliner|Preset)|rmal(ize |Constraint))|urbs(Boolean|S(elect|quare)|C(opyUVSet|ube)|To(Subdiv|Poly(gonsPref)?)|Plane|ViewDirectionVector )|ew(ton|PanelItems)|ame(space(Info)?|Command|Field))|c(h(oice|dir|eck(Box(Grp)?|DefaultRenderGlobals)|a(n(nelBox|geSubdiv(Region|ComponentDisplayLevel))|racter(Map|OutlineEditor)?))|y(cleCheck|linder)|tx(Completion|Traverse|EditMode|Abort)|irc(ularFillet|le)|o(s|n(str(uctionHistory|ain(Value)?)|nect(ionInfo|Control|Dynamic|Joint|Attr)|t(extInfo|rol)|dition|e|vert(SolidTx|Tessellation|Unit|FromOldLayers |Lightmap)|firmDialog)|py(SkinWeights|Key|Flexor|Array )|l(or(Slider(Grp|ButtonGrp)|Index(SliderGrp)?|Editor|AtPoint)?|umnLayout|lision)|arsenSubdivSelectionList|m(p(onentEditor|utePolysetVolume |actHairSystem )|mand(Port|Echo|Line)))|u(tKey|r(ve(MoveEPCtx|SketchCtx|CVCtx|Intersect|OnSurface|E(ditorCtx|PCtx)|AddPtCtx)?|rent(Ctx|Time(Ctx)?|Unit)))|p(GetSolverAttr|Button|S(olver(Types)?|e(t(SolverAttr|Edit)|am))|C(o(nstraint|llision)|ache)|Tool|P(anel|roperty))|eil|l(ip(Schedule(rOutliner)?|TrimBefore |Editor(CurrentTimeCtx)?)?|ose(Surface|Curve)|uster|ear(Cache)?|amp)|a(n(CreateManip|vas)|tch(Quiet)?|pitalizeString |mera(View)?)|r(oss(Product )?|eate(RenderLayer|MotionField |SubdivRegion|N(ode|ewShelf )|D(isplayLayer|rawCtx)|Editor))|md(Shell|FileOutput))|M(R(ender(ShadowData|Callback|Data|Util|View|Line(Array)?)|ampAttribute)|G(eometryData|lobal)|M(odelMessage|essage|a(nipData|t(erial|rix)))|BoundingBox|S(yntax|ceneMessage|t(atus|ring(Array)?)|imple|pace|elect(ion(Mask|List)|Info)|watchRender(Register|Base))|H(ardwareRenderer|WShaderSwatchGenerator)|NodeMessage|C(o(nditionMessage|lor(Array)?|m(putation|mand(Result|Message)))|ursor|loth(Material|S(ystem|olverRegister)|Con(straint|trol)|Triangle|Particle|Edge|Force)|allbackIdArray)|T(ypeId|ime(r(Message)?|Array)?|oolsInfo|esselationParams|r(imBoundaryArray|ansformationMatrix))|I(ntArray|t(Geometry|Mesh(Polygon|Edge|Vertex|FaceVertex)|S(urfaceCV|electionList)|CurveCV|Instancer|eratorType|D(ependency(Graph|Nodes)|ag)|Keyframe)|k(System|HandleGroup)|mage)|3dView|Object(SetMessage|Handle|Array)?|D(G(M(odifier|essage)|Context)|ynSwept(Triangle|Line)|istance|oubleArray|evice(State|Channel)|a(ta(Block|Handle)|g(M(odifier|essage)|Path(Array)?))|raw(Request(Queue)?|Info|Data|ProcedureBase))|U(serEventMessage|i(nt(Array|64Array)|Message))|P(o(int(Array)?|lyMessage)|lug(Array)?|rogressWindow|x(G(eometry(Iterator|Data)|lBuffer)|M(idiInputDevice|odelEditorCommand|anipContainer)|S(urfaceShape(UI)?|pringNode|electionContext)|HwShaderNode|Node|Co(ntext(Command)?|m(ponentShape|mand))|T(oolCommand|ransform(ationMatrix)?)|IkSolver(Node)?|3dModelView|ObjectSet|D(eformerNode|ata|ragAndDropBehavior)|PolyT(weakUVCommand|rg)|EmitterNode|F(i(eldNode|leTranslator)|luidEmitterNode)|LocatorNode))|E(ulerRotation|vent(Message)?)|ayatomr|Vector(Array)?|Quaternion|F(n(R(otateManip|eflectShader|adialField)|G(e(nericAttribute|ometry(Data|Filter))|ravityField)|M(otionPath|es(sageAttribute|h(Data)?)|a(nip3D|trix(Data|Attribute)))|B(l(innShader|endShapeDeformer)|ase)|S(caleManip|t(ateManip|ring(Data|ArrayData))|ingleIndexedComponent|ubd(Names|Data)?|p(hereData|otLight)|et|kinCluster)|HikEffector|N(on(ExtendedLight|AmbientLight)|u(rbs(Surface(Data)?|Curve(Data)?)|meric(Data|Attribute))|ewtonField)|C(haracter|ircleSweepManip|ompo(nent(ListData)?|undAttribute)|urveSegmentManip|lip|amera)|T(ypedAttribute|oggleManip|urbulenceField|r(ipleIndexedComponent|ansform))|I(ntArrayData|k(Solver|Handle|Joint|Effector))|D(ynSweptGeometryData|i(s(cManip|tanceManip)|rection(Manip|alLight))|ouble(IndexedComponent|ArrayData)|ependencyNode|a(ta|gNode)|ragField)|U(ni(tAttribute|formField)|Int64ArrayData)|P(hong(Shader|EShader)|oint(On(SurfaceManip|CurveManip)|Light|ArrayData)|fxGeometry|lugin(Data)?|arti(cleSystem|tion))|E(numAttribute|xpression)|V(o(lume(Light|AxisField)|rtexField)|ectorArrayData)|KeyframeDelta(Move|B(lockAddRemove|reakdown)|Scale|Tangent|InfType|Weighted|AddRemove)?|F(ield|luid|reePointTriadManip)|W(ireDeformer|eightGeometryFilter)|L(ight(DataAttribute)?|a(yeredShader|ttice(D(eformer|ata))?|mbertShader))|A(ni(sotropyShader|mCurve)|ttribute|irField|r(eaLight|rayAttrsData)|mbientLight))?|ile(IO|Object)|eedbackLine|loat(Matrix|Point(Array)?|Vector(Array)?|Array))|L(i(ghtLinks|brary)|ockMessage)|A(n(im(Message|C(ontrol|urveC(hange|lipboard(Item(Array)?)?))|Util)|gle)|ttribute(Spec(Array)?|Index)|r(rayData(Builder|Handle)|g(Database|Parser|List))))|t(hreePointArcCtx|ime(Control|Port|rX)|o(ol(Button|HasOptions|Collection|Dropped|PropertyWindow)|NativePath |upper|kenize(List )?|l(ower|erance)|rus|ggle(WindowVisibility|Axis)?)|u(rbulence|mble(Ctx)?)|ex(RotateContext|M(oveContext|anipContext)|t(ScrollList|Curves|ure(HairColor |DisplacePlane |PlacementContext|Window)|ToShelf |Field(Grp|ButtonGrp)?)?|S(caleContext|electContext|mudgeUVContext)|WinToolCtx)|woPointArcCtx|a(n(gentConstraint)?|bLayout)|r(im|unc(ate(HairCache|FluidCache))?|a(ns(formLimits|lator)|c(e|k(Ctx)?))))|i(s(olateSelect|Connected|True|Dirty|ParentOf |Valid(String |ObjectName |UiName )|AnimCurve )|n(s(tance(r)?|ert(Joint(Ctx)?|K(not(Surface|Curve)|eyCtx)))|heritTransform|t(S(crollBar|lider(Grp)?)|er(sect|nalVar|ToUI )|Field(Grp)?))|conText(Radio(Button|Collection)|Button|StaticLabel|CheckBox)|temFilter(Render|Type|Attr)?|prEngine|k(S(ystem(Info)?|olver|plineHandleCtx)|Handle(Ctx|DisplayScale)?|fkDisplayMethod)|m(portComposerCurves |fPlugins|age))|o(ceanNurbsPreviewPlane |utliner(Panel|Editor)|p(tion(Menu(Grp)?|Var)|en(GLExtension|MayaPref))|verrideModifier|ffset(Surface|Curve(OnSurface)?)|r(ientConstraint|bit(Ctx)?)|b(soleteProc |j(ect(Center|Type(UI)?|Layer )|Exists)))|d(yn(RelEd(itor|Panel)|Globals|C(ontrol|ache)|P(a(intEditor|rticleCtx)|ref)|Exp(ort|ression)|amicLoad)|i(s(connect(Joint|Attr)|tanceDim(Context|ension)|pla(y(RGBColor|S(tats|urface|moothness)|C(olor|ull)|Pref|LevelOfDetail|Affected)|cementToPoly)|kCache|able)|r(name |ect(ionalLight|KeyCtx)|map)|mWhen)|o(cServer|Blur|t(Product )?|ubleProfileBirailSurface|peSheetEditor|lly(Ctx)?)|uplicate(Surface|Curve)?|e(tach(Surface|Curve|DeviceAttr)|vice(Panel|Editor)|f(ine(DataServer|VirtualDevice)|ormer|ault(Navigation|LightListCheckBox))|l(ete(Sh(elfTab |adingGroupsAndMaterials )|U(nusedBrushes |I)|Attr)?|randstr)|g_to_rad)|agPose|r(opoffLocator|ag(gerContext)?)|g(timer|dirty|Info|eval))|CBG |u(serCtx|n(t(angleUV|rim)|i(t|form)|do(Info)?|loadPlugin|assignInputDevice|group)|iTemplate|p(dateAE |Axis)|v(Snapshot|Link))|joint(C(tx|luster)|DisplayScale|Lattice)?|p(sd(ChannelOutliner|TextureFile|E(ditTextureFile|xport))|close|i(c(ture|kWalk)|xelMove)|o(se|int(MatrixMult |C(onstraint|urveConstraint)|On(Surface|Curve)|Position|Light)|p(upMenu|en)|w|l(y(Reduce|GeoSampler|M(irrorFace|ove(UV|Edge|Vertex|Facet(UV)?)|erge(UV|Edge(Ctx)?|Vertex|Facet(Ctx)?)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|l(indData|endColor))|S(traightenUVBorder|oftEdge|u(perCtx|bdivide(Edge|Facet))|p(her(icalProjection|e)|lit(Ring|Ctx|Edge|Vertex)?)|e(tToFaceNormal|parate|wEdge|lect(Constraint(Monitor)?|EditCtx))|mooth)|Normal(izeUV|PerVertex)?|C(hipOff|ylind(er|ricalProjection)|o(ne|pyUV|l(or(BlindData|Set|PerVertex)|lapse(Edge|Facet)))|u(t(Ctx)?|be)|l(ipboard|oseBorder)|acheMonitor|rea(seEdge|teFacet(Ctx)?))|T(o(Subdiv|rus)|r(iangulate|ansfer))|In(stallAction|fo)|Options|D(uplicate(Edge|AndConnect)|el(Edge|Vertex|Facet))|U(nite|VSet)|P(yramid|oke|lan(e|arProjection)|r(ism|ojection))|E(ditUV|valuate|xtrude(Edge|Facet))|Qu(eryBlindData|ad)|F(orceUV|lip(UV|Edge))|WedgeFace|L(istComponentConversion|ayoutUV)|A(utoProjection|ppend(Vertex|FacetCtx)?|verage(Normal|Vertex)))|eVectorConstraint))|utenv|er(cent|formanceOptions)|fxstrokes|wd|l(uginInfo|a(y(b(last|ackOptions))?|n(e|arSrf)))|a(steKey|ne(l(History|Configuration)?|Layout)|thAnimation|irBlend|use|lettePort|r(ti(cle(RenderInfo|Instancer|Exists)?|tion)|ent(Constraint)?|am(Dim(Context|ension)|Locator)))|r(int|o(j(ect(ion(Manip|Context)|Curve|Tangent)|FileViewer)|pMo(dCtx|ve)|gress(Bar|Window)|mptDialog)|eloadRefEd))|e(n(codeString|d(sWith |String )|v|ableDevice)|dit(RenderLayer(Globals|Members)|or(Template)?|DisplayLayer(Globals|Members)|AttrLimits )|v(ent|al(Deferred|Echo)?)|quivalent(Tol | )|ffector|r(f|ror)|x(clusiveLightCheckBox|t(end(Surface|Curve)|rude)|ists|p(ortComposerCurves |ression(EditorListen)?)?|ec(uteForEachObject )?|actWorldBoundingBox)|mit(ter)?)|v(i(sor|ew(Set|HeadOn|2dToolCtx|C(lipPlane|amera)|Place|Fit|LookAt))|o(lumeAxis|rtex)|e(ctorize|rifyCmd )|alidateShelfName )|key(Tangent|frame(Region(MoveKeyCtx|S(caleKeyCtx|e(tKeyCtx|lectKeyCtx))|CurrentTimeCtx|TrackCtx|InsertKeyCtx|D(irectKeyCtx|ollyCtx))|Stats|Outliner)?)|qu(it|erySubdiv)|f(c(heck|lose)|i(nd(RelatedSkinCluster |MenuItem |er|Keyframe|AllIntersections )|tBspline|l(ter(StudioImport|Curve|Expand)?|e(BrowserDialog|test|Info|Dialog|Extension )?|letCurve)|rstParentOf )|o(ntDialog|pen|rmLayout)|print|eof|flush|write|l(o(or|w|at(S(crollBar|lider(Grp|ButtonGrp|2)?)|Eq |Field(Grp)?))|u(shUndo|id(CacheInfo|Emitter|VoxelInfo))|exor)|r(omNativePath |e(eFormFillet|wind|ad)|ameLayout)|get(word|line)|mod)|w(hatIs|i(ndow(Pref)?|re(Context)?)|orkspace|ebBrowser(Prefs)?|a(itCursor|rning)|ri(nkle(Context)?|teTake))|l(s(T(hroughFilter|ype )|UI)?|i(st(Relatives|MenuAnnotation |Sets|History|NodeTypes|C(onnections|ameras)|Transforms |InputDevice(s|Buttons|Axes)|erEditor|DeviceAttachments|Unselected |A(nimatable|ttr))|n(step|eIntersection )|ght(link|List(Panel|Editor)?))|o(ckNode|okThru|ft|ad(NewShelf |P(lugin|refObjects)|Fluid)|g)|a(ssoContext|y(out|er(Button|ed(ShaderPort|TexturePort)))|ttice(DeformKeyCtx)?|unch(ImageEditor)?))|a(ssign(Command|InputDevice)|n(notate|im(C(one|urveEditor)|Display|View)|gle(Between)?)|tt(ach(Surface|Curve|DeviceAttr)|r(ibute(Menu|Info|Exists|Query)|NavigationControlGrp|Co(ntrolGrp|lorSliderGrp|mpatibility)|PresetEditWin|EnumOptionMenu(Grp)?|Field(Grp|SliderGrp)))|i(r|mConstraint)|d(d(NewShelfTab|Dynamic|PP|Attr(ibuteEditorNodeHelp)?)|vanceToNextDrivenKey)|uto(Place|Keyframe)|pp(endStringArray|l(y(Take|AttrPreset)|icationName))|ffect(s|edNet)|l(i(as(Attr)?|gn(Surface|C(tx|urve))?)|lViewFit)|r(c(len|Len(DimContext|gthDimension))|t(BuildPaintMenu|Se(tPaintCtx|lectCtx)|3dPaintCtx|UserPaintCtx|PuttyCtx|FluidAttrCtx|Attr(SkinPaintCtx|Ctx|PaintVertexCtx))|rayMapper)|mbientLight|b(s|out))|r(igid(Body|Solver)|o(t(at(ionInterpolation|e))?|otOf |undConstantRadius|w(ColumnLayout|Layout)|ll(Ctx)?)|un(up|TimeCommand)|e(s(olutionNode|et(Tool|AE )|ampleFluid)|hash|n(der(GlobalsNode|Manip|ThumbnailUpdate|Info|er|Partition|QualityNode|Window(SelectContext|Editor)|LayerButton)?|ame(SelectionList |UI|Attr)?)|cord(Device|Attr)|target|order(Deformers)?|do|v(olve|erse(Surface|Curve))|quires|f(ineSubdivSelectionList|erence(Edit|Query)?|resh(AE )?)|loadImage|adTake|root|move(MultiInstance|Joint)|build(Surface|Curve))|a(n(d(state|omizeFollicles )?|geControl)|d(i(o(MenuItemCollection|Button(Grp)?|Collection)|al)|_to_deg)|mpColorPort)|gb_to_hsv)|g(o(toBindPose |al)|e(t(M(odifiers|ayaPanelTypes )|Classification|InputDeviceRange|pid|env|DefaultBrush|Pa(nel|rticleAttr)|F(ileList|luidAttr)|A(ttr|pplicationVersionAsFloat ))|ometryConstraint)|l(Render(Editor)?|obalStitch)|a(uss|mma)|r(id(Layout)?|oup(ObjectsByName )?|a(dientControl(NoAttr)?|ph(SelectContext|TrackCtx|DollyCtx)|vity|bColor))|match)|x(pmPicker|form|bmLangPathList )|m(i(n(imizeApp)?|rrorJoint)|o(del(CurrentTimeCtx|Panel|Editor)|use|v(In|e(IKtoFK |VertexAlongDirection|KeyCtx)?|Out))|u(te|ltiProfileBirailSurface)|e(ssageLine|nu(BarLayout|Item(ToShelf )?|Editor)?|mory)|a(nip(Rotate(Context|LimitsCtx)|Move(Context|LimitsCtx)|Scale(Context|LimitsCtx)|Options)|tch|ke(Roll |SingleSurface|TubeOn |Identity|Paintable|bot|Live)|rker|g|x))|b(in(Membership|d(Skin|Pose))|o(neLattice|undary|x(ZoomCtx|DollyCtx))|u(tton(Manip)?|ild(BookmarkMenu|KeyframeMenu)|fferCurve)|e(ssel|vel(Plus)?)|l(indDataType|end(Shape(Panel|Editor)?|2|TwoAttr))|a(sename(Ex | )|tchRender|ke(Results|Simulation|Clip|PartialHistory|FluidShading )))))\\b' }, + { caseInsensitive: true, + token: 'support.constant.mel', + regex: '\\b(s(h(ellTessellate|a(d(ing(Map|Engine)|erGlow)|pe))|n(ow|apshot(Shape)?)|c(ulpt|aleConstraint|ript)|t(yleCurve|itch(Srf|AsNurbsShell)|u(cco|dioClearCoat)|encil|roke(Globals)?)|i(ngleShadingSwitch|mpleVolumeShader)|o(ftMod(Manip|Handle)?|lidFractal)|u(rface(Sha(der|pe)|Info|EdManip|VarGroup|Luminance)|b(Surface|d(M(odifier(UV|World)?|ap(SewMove|Cut|pingManip))|B(lindData|ase)|iv(ReverseFaces|SurfaceVarGroup|Co(llapse|mponentId)|To(Nurbs|Poly))?|HierBlind|CleanTopology|Tweak(UV)?|P(lanarProj|rojManip)|LayoutUV|A(ddTopology|utoProj))|Curve))|p(BirailSrf|otLight|ring)|e(tRange|lectionListOperator)|k(inCluster|etchPlane)|quareSrf|ampler(Info)?|m(ooth(Curve|TangentSrf)|ear))|h(svToRgb|yper(GraphInfo|View|Layout)|ik(Solver|Handle|Effector)|oldMatrix|eightField|w(Re(nderGlobals|flectionMap)|Shader)|a(ir(System|Constraint|TubeShader)|rd(enPoint|wareRenderGlobals)))|n(o(n(ExtendedLightShapeNode|Linear|AmbientLightShapeNode)|ise|rmalConstraint)|urbs(Surface|Curve|T(oSubdiv(Proc)?|essellate)|DimShape)|e(twork|wtonField))|c(h(o(ice|oser)|ecker|aracter(Map|Offset)?)|o(n(straint|tr(olPoint|ast)|dition)|py(ColorSet|UVSet))|urve(Range|Shape|Normalizer(Linear|Angle)?|In(tersect|fo)|VarGroup|From(Mesh(CoM|Edge)?|Su(rface(Bnd|CoS|Iso)?|bdiv(Edge|Face)?)))|l(ip(Scheduler|Library)|o(se(stPointOnSurface|Surface|Curve)|th|ud)|uster(Handle)?|amp)|amera(View)?|r(eate(BPManip|ColorSet|UVSet)|ater))|t(ime(ToUnitConversion|Function)?|oo(nLineAttributes|lDrawManip)|urbulenceField|ex(BaseDeformManip|ture(BakeSet|2d|ToGeom|3d|Env)|SmudgeUVManip|LatticeDeformManip)|weak|angentConstraint|r(i(pleShadingSwitch|m(WithBoundaries)?)|ansform(Geometry)?))|i(n(s(tancer|ertKnot(Surface|Curve))|tersectSurface)|k(RPsolver|MCsolver|S(ystem|olver|Csolver|plineSolver)|Handle|PASolver|Effector)|m(plicit(Box|Sphere|Cone)|agePlane))|o(cean(Shader)?|pticalFX|ffset(Surface|C(os|urve))|ldBlindDataBase|rient(Constraint|ationMarker)|bject(RenderFilter|MultiFilter|BinFilter|S(criptFilter|et)|NameFilter|TypeFilter|Filter|AttrFilter))|d(yn(Globals|Base)|i(s(tance(Between|DimShape)|pla(yLayer(Manager)?|cementShader)|kCache)|rect(ionalLight|edDisc)|mensionShape)|o(ubleShadingSwitch|f)|pBirailSrf|e(tach(Surface|Curve)|pendNode|f(orm(Bend|S(ine|quash)|Twist|ableShape|F(unc|lare)|Wave)|ault(RenderUtilityList|ShaderList|TextureList|LightList))|lete(Co(lorSet|mponent)|UVSet))|ag(Node|Pose)|r(opoffLocator|agField))|u(seBackground|n(trim|i(t(Conversion|ToTimeConversion)|formField)|known(Transform|Dag)?)|vChooser)|j(iggle|oint(Cluster|Ffd|Lattice)?)|p(sdFileTex|hong(E)?|o(s(tProcessList|itionMarker)|int(MatrixMult|Constraint|On(SurfaceInfo|CurveInfo)|Emitter|Light)|l(y(Reduce|M(irror|o(difier(UV|World)?|ve(UV|Edge|Vertex|Face(tUV)?))|erge(UV|Edge|Vert|Face)|ap(Sew(Move)?|Cut|Del))|B(oolOp|evel|lindData|ase)|S(traightenUVBorder|oftEdge|ubd(Edge|Face)|p(h(ere|Proj)|lit(Ring|Edge|Vert)?)|e(parate|wEdge)|mooth(Proxy|Face)?)|Normal(izeUV|PerVertex)?|C(hipOff|yl(inder|Proj)|o(ne|pyUV|l(orPerVertex|lapse(Edge|F)))|u(t(Manip(Container)?)?|be)|loseBorder|rea(seEdge|t(or|eFace)))|T(o(Subdiv|rus)|weak(UV)?|r(iangulate|ansfer))|OptUvs|D(uplicateEdge|el(Edge|Vertex|Facet))|Unite|P(yramid|oke(Manip)?|lan(e|arProj)|r(i(sm|mitive)|oj))|Extrude(Edge|Vertex|Face)|VertexNormalManip|Quad|Flip(UV|Edge)|WedgeFace|LayoutUV|A(utoProj|ppend(Vertex)?|verageVertex))|eVectorConstraint))|fx(Geometry|Hair|Toon)|l(usMinusAverage|a(n(e|arTrimSurface)|ce(2dTexture|3dTexture)))|a(ssMatrix|irBlend|r(ti(cle(SamplerInfo|C(olorMapper|loud)|TranspMapper|IncandMapper|AgeMapper)?|tion)|ent(Constraint|Tessellate)|amDimension))|r(imitive|o(ject(ion|Curve|Tangent)|xyManager)))|e(n(tity|v(Ball|ironmentFog|S(phere|ky)|C(hrome|ube)|Fog))|x(t(end(Surface|Curve)|rude)|p(lodeNurbsShell|ression)))|v(iewManip|o(lume(Shader|Noise|Fog|Light|AxisField)|rtexField)|e(ctor(RenderGlobals|Product)|rtexBakeSet))|quadShadingSwitch|f(i(tBspline|eld|l(ter(Resample|Simplify|ClosestSample|Euler)?|e|letCurve))|o(urByFourMatrix|llicle)|urPointOn(MeshInfo|Subd)|f(BlendSrf(Obsolete)?|d|FilletSrf)|l(ow|uid(S(hape|liceManip)|Texture(2D|3D)|Emitter)|exorShape)|ra(ctal|meCache))|w(tAddMatrix|ire|ood|eightGeometryFilter|ater|rap)|l(ight(Info|Fog|Li(st|nker))?|o(cator|okAt|d(Group|Thresholds)|ft)|uminance|ea(stSquaresModifier|ther)|a(yered(Shader|Texture)|ttice|mbert))|a(n(notationShape|i(sotropic|m(Blend(InOut)?|C(urve(T(T|U|L|A)|U(T|U|L|A))?|lip)))|gleBetween)|tt(ach(Surface|Curve)|rHierarchyTest)|i(rField|mConstraint)|dd(Matrix|DoubleLinear)|udio|vg(SurfacePoints|NurbsSurfacePoints|Curves)|lign(Manip|Surface|Curve)|r(cLengthDimension|tAttrPaintTest|eaLight|rayMapper)|mbientLight|bstractBase(NurbsConversion|Create))|r(igid(Body|Solver|Constraint)|o(ck|undConstantRadius)|e(s(olution|ultCurve(TimeTo(Time|Unitless|Linear|Angular))?)|nder(Rect|Globals(List)?|Box|Sphere|Cone|Quality|L(ight|ayer(Manager)?))|cord|v(olve(dPrimitive)?|erse(Surface|Curve)?)|f(erence|lect)|map(Hsv|Color|Value)|build(Surface|Curve))|a(dialField|mp(Shader)?)|gbToHsv|bfSrf)|g(uide|eo(Connect(or|able)|metry(Shape|Constraint|VarGroup|Filter))|lobal(Stitch|CacheControl)|ammaCorrect|r(id|oup(Id|Parts)|a(nite|vityField)))|Fur(Globals|Description|Feedback|Attractors)|xformManip|m(o(tionPath|untain|vie)|u(te|lt(Matrix|i(plyDivide|listerLight)|DoubleLinear))|pBirailSrf|e(sh(VarGroup)?|ntalray(Texture|IblShape))|a(terialInfo|ke(Group|Nurb(sSquare|Sphere|C(ylinder|ircle|one|ube)|Torus|Plane)|CircularArc|T(hreePointCircularArc|extCurves|woPointCircularArc))|rble))|b(irailSrf|o(neLattice|olean|undary(Base)?)|u(lge|mp(2d|3d))|evel(Plus)?|l(in(n|dDataTemplate)|end(Shape|Color(s|Sets)|TwoAttr|Device|Weighted)?)|a(se(GeometryVarGroup|ShadingSwitch|Lattice)|keSet)|r(ownian|ush)))\\b' }, + { caseInsensitive: true, + token: 'keyword.control.mel', + regex: '\\b(if|in|else|for|while|break|continue|case|default|do|switch|return|switch|case|source|catch|alias)\\b' }, + { token: 'keyword.other.mel', regex: '\\b(global)\\b' }, + { caseInsensitive: true, + token: 'constant.language.mel', + regex: '\\b(null|undefined)\\b' }, + { token: 'constant.numeric.mel', + regex: '\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b' }, + { token: 'punctuation.definition.string.begin.mel', + regex: '"', + push: + [ { token: 'constant.character.escape.mel', regex: '\\\\.' }, + { token: 'punctuation.definition.string.end.mel', + regex: '"', + next: 'pop' }, + { defaultToken: 'string.quoted.double.mel' } ] }, + + { token: [ 'variable.other.mel', 'punctuation.definition.variable.mel' ], + regex: '(\\$)([a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*?\\b)' }, + + { token: 'punctuation.definition.string.begin.mel', + regex: '\'', + push: + [ { token: 'constant.character.escape.mel', regex: '\\\\.' }, + { token: 'punctuation.definition.string.end.mel', + regex: '\'', + next: 'pop' }, + { defaultToken: 'string.quoted.single.mel' } ] }, + + { token: 'constant.language.mel', + regex: '\\b(false|true|yes|no|on|off)\\b' }, + + { token: 'punctuation.definition.comment.mel', + regex: '/\\*', + push: + [ { token: 'punctuation.definition.comment.mel', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.mel' } ] }, + + { token: [ 'comment.line.double-slash.mel', 'punctuation.definition.comment.mel' ], + regex: '(//)(.*$\\n?)' }, + + { caseInsensitive: true, + token: 'keyword.operator.mel', + regex: '\\b(instanceof)\\b' }, + { token: 'keyword.operator.symbolic.mel', + regex: '[-\\!\\%\\&\\*\\+\\=\\/\\?\\:]' }, + + { token: [ 'meta.preprocessor.mel', 'punctuation.definition.preprocessor.mel' ], + regex: '(^[ \\t]*)((?:#)[a-zA-Z]+)' }, + + { token: [ 'meta.function.mel', 'keyword.other.mel', 'storage.type.mel', 'entity.name.function.mel', 'punctuation.section.function.mel' ], + regex: '(global\\s*)?(proc\\s*)(\\w+\\s*\\[?\\]?\\s+|\\s+)([A-Za-z_][A-Za-z0-9_\\.]*)(\\s*\\()', + push: + [ { include: '$self' }, + { token: 'punctuation.section.function.mel', + regex: '\\)', + next: 'pop' }, + { defaultToken: 'meta.function.mel' } ] } + + ] } + + this.normalizeRules(); +}; + +oop.inherits(MELHighlightRules, TextHighlightRules); + +exports.MELHighlightRules = MELHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mel",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mel_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MELHighlightRules = require("./mel_highlight_rules").MELHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = MELHighlightRules; + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/mel"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-mips_assembler.js b/htdocs/includes/ace/mode-mips_assembler.js new file mode 100644 index 00000000000..94da6f36f12 --- /dev/null +++ b/htdocs/includes/ace/mode-mips_assembler.js @@ -0,0 +1,235 @@ +ace.define("ace/mode/mips_assembler_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MIPSAssemblerHighlightRules = function() { + + this.$rules = { start: + [ { token: 'support.function.pseudo.mips', + regex: '\\b(?:mul|abs|div|divu|mulo|mulou|neg|negu|not|rem|remu|rol|ror|li|seq|sge|sgeu|sgt|sgtu|sle|sleu|sne|b|beqz|bge|bgeu|bgt|bgtu|ble|bleu|blt|bltu|bnez|la|ld|ulh|ulhu|ulw|sd|ush|usw|move|mfc1\\.d|l\\.d|l\\.s|s\\.d|s\\.s)\\b', + comment: 'ok actually this are instructions, but one also could call them funtions…' }, + { token: 'support.function.mips', + regex: '\\b(?:abs\\.d|abs\\.s|add|add\\.d|add\\.s|addi|addiu|addu|and|andi|bc1f|bc1t|beq|bgez|bgezal|bgtz|blez|bltz|bltzal|bne|break|c\\.eq\\.d|c\\.eq\\.s|c\\.le\\.d|c\\.le\\.s|c\\.lt\\.d|c\\.lt\\.s|ceil\\.w\\.d|ceil\\.w\\.s|clo|clz|cvt\\.d\\.s|cvt\\.d\\.w|cvt\\.s\\.d|cvt\\.s\\.w|cvt\\.w\\.d|cvt\\.w\\.s|div|div\\.d|div\\.s|divu|eret|floor\\.w\\.d|floor\\.w\\.s|j|jal|jalr|jr|lb|lbu|lh|lhu|ll|lui|lw|lwc1|lwl|lwr|madd|maddu|mfc0|mfc1|mfhi|mflo|mov\\.d|mov\\.s|movf|movf\\.d|movf\\.s|movn|movn\\.d|movn\\.s|movt|movt\\.d|movt\\.s|movz|movz\\.d|movz\\.s|msub|mtc0|mtc1|mthi|mtlo|mul|mul\\.d|mul\\.s|mult|multu|neg\\.d|neg\\.s|nop|nor|or|ori|round\\.w\\.d|round\\.w\\.s|sb|sc|sdc1|sh|sll|sllv|slt|slti|sltiu|sltu|sqrt\\.d|sqrt\\.s|sra|srav|srl|srlv|sub|sub\\.d|sub\\.s|subu|sw|swc1|swl|swr|syscall|teq|teqi|tge|tgei|tgeiu|tgeu|tlt|tlti|tltiu|tltu|trunc\\.w\\.d|trunc\\.w\\.s|xor|xori)\\b' }, + { token: 'storage.type.mips', + regex: '\\.(?:ascii|asciiz|byte|data|double|float|half|kdata|ktext|space|text|word|set\\s*(?:noat|at))\\b' }, + { token: 'storage.modifier.mips', + regex: '\\.(?:align|extern||globl)\\b' }, + { token: + [ 'entity.name.function.label.mips', + 'meta.function.label.mips' ], + regex: '\\b([A-Za-z0-9_]+)(:)' }, + { token: + [ 'punctuation.definition.variable.mips', + 'variable.other.register.usable.by-number.mips' ], + regex: '(\\$)(0|[2-9]|1[0-9]|2[0-5]|2[89]|3[0-1])\\b' }, + { token: + [ 'punctuation.definition.variable.mips', + 'variable.other.register.usable.by-name.mips' ], + regex: '(\\$)(zero|v[01]|a[0-3]|t[0-9]|s[0-7]|gp|sp|fp|ra)\\b' }, + { token: + [ 'punctuation.definition.variable.mips', + 'variable.other.register.reserved.mips' ], + regex: '(\\$)(at|k[01]|1|2[67])\\b' }, + { token: + [ 'punctuation.definition.variable.mips', + 'variable.other.register.usable.floating-point.mips', + 'variable.other.register.usable.floating-point.mips' ], + regex: '(\\$)(f)([0-9]|1[0-9]|2[0-9]|3[0-1])\\b' }, + { token: 'constant.numeric.float.mips', + regex: '\\b\\d+\\.\\d+\\b' }, + { token: 'constant.numeric.integer.mips', + regex: '\\b(?:\\d+|0(?:x|X)[a-fA-F0-9]+)\\b' }, + { token: 'punctuation.definition.string.begin.mips', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.mips', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.mips', + regex: '\\\\[rnt\\\\"]' }, + { defaultToken: 'string.quoted.double.mips' } ] }, + { token: 'punctuation.definition.comment.mips', + regex: '#', + push: + [ { token: 'comment.line.number-sign.mips', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.number-sign.mips' } ] } ] } + + this.normalizeRules(); +}; + +MIPSAssemblerHighlightRules.metaData = { fileTypes: [ 's', 'mips', 'spim', 'asm' ], + keyEquivalent: '^~M', + name: 'MIPS Assembler', + scopeName: 'source.mips' } + + +oop.inherits(MIPSAssemblerHighlightRules, TextHighlightRules); + +exports.MIPSAssemblerHighlightRules = MIPSAssemblerHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/)#(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mips_assembler",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mips_assembler_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MIPSAssemblerHighlightRules = require("./mips_assembler_highlight_rules").MIPSAssemblerHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = MIPSAssemblerHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/mips_assembler" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-mipsassembler.js b/htdocs/includes/ace/mode-mipsassembler.js new file mode 100644 index 00000000000..42ad657b8e8 --- /dev/null +++ b/htdocs/includes/ace/mode-mipsassembler.js @@ -0,0 +1,196 @@ +ace.define("ace/mode/mipsassembler_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var mipsassemblerHighlightRules = function() { + + this.$rules = { + start: [{ + token: "string.start", + regex: '"', + next: "qstring" + }], + qstring: [{ + token: "escape", + regex: /\\./, + }, { + token: "string.end", + regex: '"', + next: "start" + }], + } + + this.normalizeRules(); +}; + +mipsassemblerHighlightRules.metaData = + + +oop.inherits(mipsassemblerHighlightRules, TextHighlightRules); + +exports.mipsassemblerHighlightRules = mipsassemblerHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/)#(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mipsassembler",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mipsassembler_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./mipsassembler_highlight_rules").HighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/mipsassembler" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-mushcode.js b/htdocs/includes/ace/mode-mushcode.js new file mode 100644 index 00000000000..5e6b7eaf035 --- /dev/null +++ b/htdocs/includes/ace/mode-mushcode.js @@ -0,0 +1,674 @@ +ace.define("ace/mode/mushcode_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MushCodeRules = function() { + + + var keywords = ( + "@if|"+ + "@ifelse|"+ + "@switch|"+ + "@halt|"+ + "@dolist|"+ + "@create|"+ + "@scent|"+ + "@sound|"+ + "@touch|"+ + "@ataste|"+ + "@osound|"+ + "@ahear|"+ + "@aahear|"+ + "@amhear|"+ + "@otouch|"+ + "@otaste|"+ + "@drop|"+ + "@odrop|"+ + "@adrop|"+ + "@dropfail|"+ + "@odropfail|"+ + "@smell|"+ + "@oemit|"+ + "@emit|"+ + "@pemit|"+ + "@parent|"+ + "@clone|"+ + "@taste|"+ + "whisper|"+ + "page|"+ + "say|"+ + "pose|"+ + "semipose|"+ + "teach|"+ + "touch|"+ + "taste|"+ + "smell|"+ + "listen|"+ + "look|"+ + "move|"+ + "go|"+ + "home|"+ + "follow|"+ + "unfollow|"+ + "desert|"+ + "dismiss|"+ + "@tel" + ); + + var builtinConstants = ( + "=#0" + ); + + var builtinFunctions = ( + "default|"+ + "edefault|"+ + "eval|"+ + "get_eval|"+ + "get|"+ + "grep|"+ + "grepi|"+ + "hasattr|"+ + "hasattrp|"+ + "hasattrval|"+ + "hasattrpval|"+ + "lattr|"+ + "nattr|"+ + "poss|"+ + "udefault|"+ + "ufun|"+ + "u|"+ + "v|"+ + "uldefault|"+ + "xget|"+ + "zfun|"+ + "band|"+ + "bnand|"+ + "bnot|"+ + "bor|"+ + "bxor|"+ + "shl|"+ + "shr|"+ + "and|"+ + "cand|"+ + "cor|"+ + "eq|"+ + "gt|"+ + "gte|"+ + "lt|"+ + "lte|"+ + "nand|"+ + "neq|"+ + "nor|"+ + "not|"+ + "or|"+ + "t|"+ + "xor|"+ + "con|"+ + "entrances|"+ + "exit|"+ + "followers|"+ + "home|"+ + "lcon|"+ + "lexits|"+ + "loc|"+ + "locate|"+ + "lparent|"+ + "lsearch|"+ + "next|"+ + "num|"+ + "owner|"+ + "parent|"+ + "pmatch|"+ + "rloc|"+ + "rnum|"+ + "room|"+ + "where|"+ + "zone|"+ + "worn|"+ + "held|"+ + "carried|"+ + "acos|"+ + "asin|"+ + "atan|"+ + "ceil|"+ + "cos|"+ + "e|"+ + "exp|"+ + "fdiv|"+ + "fmod|"+ + "floor|"+ + "log|"+ + "ln|"+ + "pi|"+ + "power|"+ + "round|"+ + "sin|"+ + "sqrt|"+ + "tan|"+ + "aposs|"+ + "andflags|"+ + "conn|"+ + "commandssent|"+ + "controls|"+ + "doing|"+ + "elock|"+ + "findable|"+ + "flags|"+ + "fullname|"+ + "hasflag|"+ + "haspower|"+ + "hastype|"+ + "hidden|"+ + "idle|"+ + "isbaker|"+ + "lock|"+ + "lstats|"+ + "money|"+ + "who|"+ + "name|"+ + "nearby|"+ + "obj|"+ + "objflags|"+ + "photo|"+ + "poll|"+ + "powers|"+ + "pendingtext|"+ + "receivedtext|"+ + "restarts|"+ + "restarttime|"+ + "subj|"+ + "shortestpath|"+ + "tmoney|"+ + "type|"+ + "visible|"+ + "cat|"+ + "element|"+ + "elements|"+ + "extract|"+ + "filter|"+ + "filterbool|"+ + "first|"+ + "foreach|"+ + "fold|"+ + "grab|"+ + "graball|"+ + "index|"+ + "insert|"+ + "itemize|"+ + "items|"+ + "iter|"+ + "last|"+ + "ldelete|"+ + "map|"+ + "match|"+ + "matchall|"+ + "member|"+ + "mix|"+ + "munge|"+ + "pick|"+ + "remove|"+ + "replace|"+ + "rest|"+ + "revwords|"+ + "setdiff|"+ + "setinter|"+ + "setunion|"+ + "shuffle|"+ + "sort|"+ + "sortby|"+ + "splice|"+ + "step|"+ + "wordpos|"+ + "words|"+ + "add|"+ + "lmath|"+ + "max|"+ + "mean|"+ + "median|"+ + "min|"+ + "mul|"+ + "percent|"+ + "sign|"+ + "stddev|"+ + "sub|"+ + "val|"+ + "bound|"+ + "abs|"+ + "inc|"+ + "dec|"+ + "dist2d|"+ + "dist3d|"+ + "div|"+ + "floordiv|"+ + "mod|"+ + "modulo|"+ + "remainder|"+ + "vadd|"+ + "vdim|"+ + "vdot|"+ + "vmag|"+ + "vmax|"+ + "vmin|"+ + "vmul|"+ + "vsub|"+ + "vunit|"+ + "regedit|"+ + "regeditall|"+ + "regeditalli|"+ + "regediti|"+ + "regmatch|"+ + "regmatchi|"+ + "regrab|"+ + "regraball|"+ + "regraballi|"+ + "regrabi|"+ + "regrep|"+ + "regrepi|"+ + "after|"+ + "alphamin|"+ + "alphamax|"+ + "art|"+ + "before|"+ + "brackets|"+ + "capstr|"+ + "case|"+ + "caseall|"+ + "center|"+ + "containsfansi|"+ + "comp|"+ + "decompose|"+ + "decrypt|"+ + "delete|"+ + "edit|"+ + "encrypt|"+ + "escape|"+ + "if|"+ + "ifelse|"+ + "lcstr|"+ + "left|"+ + "lit|"+ + "ljust|"+ + "merge|"+ + "mid|"+ + "ostrlen|"+ + "pos|"+ + "repeat|"+ + "reverse|"+ + "right|"+ + "rjust|"+ + "scramble|"+ + "secure|"+ + "space|"+ + "spellnum|"+ + "squish|"+ + "strcat|"+ + "strmatch|"+ + "strinsert|"+ + "stripansi|"+ + "stripfansi|"+ + "strlen|"+ + "switch|"+ + "switchall|"+ + "table|"+ + "tr|"+ + "trim|"+ + "ucstr|"+ + "unsafe|"+ + "wrap|"+ + "ctitle|"+ + "cwho|"+ + "channels|"+ + "clock|"+ + "cflags|"+ + "ilev|"+ + "itext|"+ + "inum|"+ + "convsecs|"+ + "convutcsecs|"+ + "convtime|"+ + "ctime|"+ + "etimefmt|"+ + "isdaylight|"+ + "mtime|"+ + "secs|"+ + "msecs|"+ + "starttime|"+ + "time|"+ + "timefmt|"+ + "timestring|"+ + "utctime|"+ + "atrlock|"+ + "clone|"+ + "create|"+ + "cook|"+ + "dig|"+ + "emit|"+ + "lemit|"+ + "link|"+ + "oemit|"+ + "open|"+ + "pemit|"+ + "remit|"+ + "set|"+ + "tel|"+ + "wipe|"+ + "zemit|"+ + "fbcreate|"+ + "fbdestroy|"+ + "fbwrite|"+ + "fbclear|"+ + "fbcopy|"+ + "fbcopyto|"+ + "fbclip|"+ + "fbdump|"+ + "fbflush|"+ + "fbhset|"+ + "fblist|"+ + "fbstats|"+ + "qentries|"+ + "qentry|"+ + "play|"+ + "ansi|"+ + "break|"+ + "c|"+ + "asc|"+ + "die|"+ + "isdbref|"+ + "isint|"+ + "isnum|"+ + "isletters|"+ + "linecoords|"+ + "localize|"+ + "lnum|"+ + "nameshort|"+ + "null|"+ + "objeval|"+ + "r|"+ + "rand|"+ + "s|"+ + "setq|"+ + "setr|"+ + "soundex|"+ + "soundslike|"+ + "valid|"+ + "vchart|"+ + "vchart2|"+ + "vlabel|"+ + "@@|"+ + "bakerdays|"+ + "bodybuild|"+ + "box|"+ + "capall|"+ + "catalog|"+ + "children|"+ + "ctrailer|"+ + "darttime|"+ + "debt|"+ + "detailbar|"+ + "exploredroom|"+ + "fansitoansi|"+ + "fansitoxansi|"+ + "fullbar|"+ + "halfbar|"+ + "isdarted|"+ + "isnewbie|"+ + "isword|"+ + "lambda|"+ + "lobjects|"+ + "lplayers|"+ + "lthings|"+ + "lvexits|"+ + "lvobjects|"+ + "lvplayers|"+ + "lvthings|"+ + "newswrap|"+ + "numsuffix|"+ + "playerson|"+ + "playersthisweek|"+ + "randomad|"+ + "randword|"+ + "realrandword|"+ + "replacechr|"+ + "second|"+ + "splitamount|"+ + "strlenall|"+ + "text|"+ + "third|"+ + "tofansi|"+ + "totalac|"+ + "unique|"+ + "getaddressroom|"+ + "listpropertycomm|"+ + "listpropertyres|"+ + "lotowner|"+ + "lotrating|"+ + "lotratingcount|"+ + "lotvalue|"+ + "boughtproduct|"+ + "companyabb|"+ + "companyicon|"+ + "companylist|"+ + "companyname|"+ + "companyowners|"+ + "companyvalue|"+ + "employees|"+ + "invested|"+ + "productlist|"+ + "productname|"+ + "productowners|"+ + "productrating|"+ + "productratingcount|"+ + "productsoldat|"+ + "producttype|"+ + "ratedproduct|"+ + "soldproduct|"+ + "topproducts|"+ + "totalspentonproduct|"+ + "totalstock|"+ + "transfermoney|"+ + "uniquebuyercount|"+ + "uniqueproductsbought|"+ + "validcompany|"+ + "deletepicture|"+ + "fbsave|"+ + "getpicturesecurity|"+ + "haspicture|"+ + "listpictures|"+ + "picturesize|"+ + "replacecolor|"+ + "rgbtocolor|"+ + "savepicture|"+ + "setpicturesecurity|"+ + "showpicture|"+ + "piechart|"+ + "piechartlabel|"+ + "createmaze|"+ + "drawmaze|"+ + "drawwireframe" + ); + var keywordMapper = this.createKeywordMapper({ + "invalid.deprecated": "debugger", + "support.function": builtinFunctions, + "constant.language": builtinConstants, + "keyword": keywords + }, "identifier"); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + this.$rules = { + "start" : [ + { + token : "variable", // mush substitution register + regex : "%[0-9]{1}" + }, + { + token : "variable", // mush substitution register + regex : "%q[0-9A-Za-z]{1}" + }, + { + token : "variable", // mush special character register + regex : "%[a-zA-Z]{1}" + }, + { + token: "variable.language", + regex: "%[a-z0-9-_]+" + }, + { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|#|%|<<|>>|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ] + }; +}; + +oop.inherits(MushCodeRules, TextHighlightRules); + +exports.MushCodeRules = MushCodeRules; +}); + +ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(markers) { + this.foldingStartMarker = new RegExp("([\\[{])(?:\\s*)$|(" + markers + ")(?:\\s*)(?:#.*)?$"); +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + if (match[1]) + return this.openingBracketBlock(session, match[1], row, match.index); + if (match[2]) + return this.indentationBlock(session, row, match.index + match[2].length); + return this.indentationBlock(session, row); + } + } + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/mushcode",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mushcode_highlight_rules","ace/mode/folding/pythonic","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var MushCodeRules = require("./mushcode_highlight_rules").MushCodeRules; +var PythonFoldMode = require("./folding/pythonic").FoldMode; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = MushCodeRules; + this.foldingRules = new PythonFoldMode("\\:"); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + + this.$id = "ace/mode/mushcode"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-mysql.js b/htdocs/includes/ace/mode-mysql.js new file mode 100644 index 00000000000..7abe675c9e3 --- /dev/null +++ b/htdocs/includes/ace/mode-mysql.js @@ -0,0 +1,160 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/mysql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var MysqlHighlightRules = function() { + + var mySqlKeywords = /*sql*/ "alter|and|as|asc|between|count|create|delete|desc|distinct|drop|from|having|in|insert|into|is|join|like|not|on|or|order|select|set|table|union|update|values|where" + "|accessible|action|add|after|algorithm|all|analyze|asensitive|at|authors|auto_increment|autocommit|avg|avg_row_length|before|binary|binlog|both|btree|cache|call|cascade|cascaded|case|catalog_name|chain|change|changed|character|check|checkpoint|checksum|class_origin|client_statistics|close|coalesce|code|collate|collation|collations|column|columns|comment|commit|committed|completion|concurrent|condition|connection|consistent|constraint|contains|continue|contributors|convert|cross|current_date|current_time|current_timestamp|current_user|cursor|data|database|databases|day_hour|day_microsecond|day_minute|day_second|deallocate|dec|declare|default|delay_key_write|delayed|delimiter|des_key_file|describe|deterministic|dev_pop|dev_samp|deviance|directory|disable|discard|distinctrow|div|dual|dumpfile|each|elseif|enable|enclosed|end|ends|engine|engines|enum|errors|escape|escaped|even|event|events|every|execute|exists|exit|explain|extended|fast|fetch|field|fields|first|flush|for|force|foreign|found_rows|full|fulltext|function|general|global|grant|grants|group|groupby_concat|handler|hash|help|high_priority|hosts|hour_microsecond|hour_minute|hour_second|if|ignore|ignore_server_ids|import|index|index_statistics|infile|inner|innodb|inout|insensitive|insert_method|install|interval|invoker|isolation|iterate|key|keys|kill|language|last|leading|leave|left|level|limit|linear|lines|list|load|local|localtime|localtimestamp|lock|logs|low_priority|master|master_heartbeat_period|master_ssl_verify_server_cert|masters|match|max|max_rows|maxvalue|message_text|middleint|migrate|min|min_rows|minute_microsecond|minute_second|mod|mode|modifies|modify|mutex|mysql_errno|natural|next|no|no_write_to_binlog|offline|offset|one|online|open|optimize|option|optionally|out|outer|outfile|pack_keys|parser|partition|partitions|password|phase|plugin|plugins|prepare|preserve|prev|primary|privileges|procedure|processlist|profile|profiles|purge|query|quick|range|read|read_write|reads|real|rebuild|recover|references|regexp|relaylog|release|remove|rename|reorganize|repair|repeatable|replace|require|resignal|restrict|resume|return|returns|revoke|right|rlike|rollback|rollup|row|row_format|rtree|savepoint|schedule|schema|schema_name|schemas|second_microsecond|security|sensitive|separator|serializable|server|session|share|show|signal|slave|slow|smallint|snapshot|soname|spatial|specific|sql|sql_big_result|sql_buffer_result|sql_cache|sql_calc_found_rows|sql_no_cache|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|start|starting|starts|status|std|stddev|stddev_pop|stddev_samp|storage|straight_join|subclass_origin|sum|suspend|table_name|table_statistics|tables|tablespace|temporary|terminated|to|trailing|transaction|trigger|triggers|truncate|uncommitted|undo|uninstall|unique|unlock|upgrade|usage|use|use_frm|user|user_resources|user_statistics|using|utc_date|utc_time|utc_timestamp|value|variables|varying|view|views|warnings|when|while|with|work|write|xa|xor|year_month|zerofill|begin|do|then|else|loop|repeat"; + var builtins = "by|bool|boolean|bit|blob|decimal|double|enum|float|long|longblob|longtext|medium|mediumblob|mediumint|mediumtext|time|timestamp|tinyblob|tinyint|tinytext|text|bigint|int|int1|int2|int3|int4|int8|integer|float|float4|float8|double|char|varbinary|varchar|varcharacter|precision|date|datetime|year|unsigned|signed|numeric|ucase|lcase|mid|len|round|rank|now|format|coalesce|ifnull|isnull|nvl" + var variable = "charset|clear|connect|edit|ego|exit|go|help|nopager|notee|nowarning|pager|print|prompt|quit|rehash|source|status|system|tee" + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtins, + "keyword": mySqlKeywords, + "constant": "false|true|null|unknown|date|time|timestamp|ODBCdotTable|zerolessFloat", + "variable.language": variable + }, "identifier", true); + + + function string(rule) { + var start = rule.start; + var escapeSeq = rule.escape; + return { + token: "string.start", + regex: start, + next: [ + {token: "constant.language.escape", regex: escapeSeq}, + {token: "string.end", next: "start", regex: start}, + {defaultToken: "string"} + ] + }; + } + + this.$rules = { + "start" : [ { + token : "comment", regex : "(?:-- |#).*$" + }, + string({start: '"', escape: /\\[0'"bnrtZ\\%_]?/}), + string({start: "'", escape: /\\[0'"bnrtZ\\%_]?/}), + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : /\/\*/, + next : "comment" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+|[xX]'[0-9a-fA-F]+'|0[bB][01]+|[bB]'[01]+'/ + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "constant.class", + regex : "@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "constant.buildin", + regex : "`[^`]*`" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ], + "comment" : [ + {token : "comment", regex : "\\*\\/", next : "start"}, + {defaultToken : "comment"} + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(MysqlHighlightRules, TextHighlightRules); + +exports.MysqlHighlightRules = MysqlHighlightRules; +}); + +ace.define("ace/mode/mysql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/mysql_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("../mode/text").Mode; +var MysqlHighlightRules = require("./mysql_highlight_rules").MysqlHighlightRules; + +var Mode = function() { + this.HighlightRules = MysqlHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = ["--", "#"]; // todo space + this.blockComment = {start: "/*", end: "*/"}; + + this.$id = "ace/mode/mysql"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-nix.js b/htdocs/includes/ace/mode-nix.js new file mode 100644 index 00000000000..3424beafda9 --- /dev/null +++ b/htdocs/includes/ace/mode-nix.js @@ -0,0 +1,631 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = c_cppHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c_cpp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/nix_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var NixHighlightRules = function() { + + var constantLanguage = "true|false"; + var keywordControl = "with|import|if|else|then|inherit"; + var keywordDeclaration = "let|in|rec"; + + var keywordMapper = this.createKeywordMapper({ + "constant.language.nix": constantLanguage, + "keyword.control.nix": keywordControl, + "keyword.declaration.nix": keywordDeclaration + }, "identifier"); + + this.$rules = { + "start": [{ + token: "comment", + regex: /#.*$/ + }, { + token: "comment", + regex: /\/\*/, + next: "comment" + }, { + token: "constant", + regex: "<[^>]+>" + }, { + regex: "(==|!=|<=?|>=?)", + token: ["keyword.operator.comparison.nix"] + }, { + regex: "((?:[+*/%-]|\\~)=)", + token: ["keyword.operator.assignment.arithmetic.nix"] + }, { + regex: "=", + token: "keyword.operator.assignment.nix" + }, { + token: "string", + regex: "''", + next: "qqdoc" + }, { + token: "string", + regex: "'", + next: "qstring" + }, { + token: "string", + regex: '"', + push: "qqstring" + }, { + token: "constant.numeric", // hex + regex: "0[xX][0-9a-fA-F]+\\b" + }, { + token: "constant.numeric", // float + regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token: keywordMapper, + regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + regex: "}", + token: function(val, start, stack) { + return stack[1] && stack[1].charAt(0) == "q" ? "constant.language.escape" : "text"; + }, + next: "pop" + }], + "comment": [{ + token: "comment", // closing comment + regex: "\\*\\/", + next: "start" + }, { + defaultToken: "comment" + }], + "qqdoc": [ + { + token: "constant.language.escape", + regex: /\$\{/, + push: "start" + }, { + token: "string", + regex: "''", + next: "pop" + }, { + defaultToken: "string" + }], + "qqstring": [ + { + token: "constant.language.escape", + regex: /\$\{/, + push: "start" + }, { + token: "string", + regex: '"', + next: "pop" + }, { + defaultToken: "string" + }], + "qstring": [ + { + token: "constant.language.escape", + regex: /\$\{/, + push: "start" + }, { + token: "string", + regex: "'", + next: "pop" + }, { + defaultToken: "string" + }] + }; + + this.normalizeRules(); + }; + + oop.inherits(NixHighlightRules, TextHighlightRules); + + exports.NixHighlightRules = NixHighlightRules; +}); + +ace.define("ace/mode/nix",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/nix_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var CMode = require("./c_cpp").Mode; +var NixHighlightRules = require("./nix_highlight_rules").NixHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + CMode.call(this); + this.HighlightRules = NixHighlightRules; + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, CMode); + +(function() { + this.lineCommentStart = "#"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/nix"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-nsis.js b/htdocs/includes/ace/mode-nsis.js new file mode 100644 index 00000000000..a20aed277e2 --- /dev/null +++ b/htdocs/includes/ace/mode-nsis.js @@ -0,0 +1,305 @@ +ace.define("ace/mode/nsis_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var NSISHighlightRules = function() { + + this.$rules = { + start: [{ + token: "keyword.compiler.nsis", + regex: /^\s*!(?:include|addincludedir|addplugindir|appendfile|cd|delfile|echo|error|execute|packhdr|finalize|getdllversion|system|tempfile|warning|verbose|define|undef|insertmacro|macro|macroend|makensis|searchparse|searchreplace)\b/, + caseInsensitive: true + }, { + token: "keyword.command.nsis", + regex: /^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetLabelAddress|GetTempFileName|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|IntCmp|IntCmpU|IntFmt|IntOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegStr|WriteUninstaller|XPStyle)\b/, + caseInsensitive: true + }, { + token: "keyword.control.nsis", + regex: /^\s*!(?:ifdef|ifndef|if|ifmacrodef|ifmacrondef|else|endif)\b/, + caseInsensitive: true + }, { + token: "keyword.plugin.nsis", + regex: /^\s*\w+::\w+/, + caseInsensitive: true + }, { + token: "keyword.operator.comparison.nsis", + regex: /[!<>]?=|<>|<|>/ + }, { + token: "support.function.nsis", + regex: /(?:\b|^\s*)(?:Function|FunctionEnd|Section|SectionEnd|SectionGroup|SectionGroupEnd|PageEx|PageExEnd)\b/, + caseInsensitive: true + }, { + token: "support.library.nsis", + regex: /\${[\w\.:-]+}/ + }, { + token: "constant.nsis", + regex: /\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/, + caseInsensitive: true + }, { + token: "constant.library.nsis", + regex: /\${(?:AtLeastServicePack|AtLeastWin7|AtLeastWin8|AtLeastWin10|AtLeastWin95|AtLeastWin98|AtLeastWin2000|AtLeastWin2003|AtLeastWin2008|AtLeastWin2008R2|AtLeastWinME|AtLeastWinNT4|AtLeastWinVista|AtLeastWinXP|AtMostServicePack|AtMostWin7|AtMostWin8|AtMostWin10|AtMostWin95|AtMostWin98|AtMostWin2000|AtMostWin2003|AtMostWin2008|AtMostWin2008R2|AtMostWinME|AtMostWinNT4|AtMostWinVista|AtMostWinXP|IsNT|IsServer|IsServicePack|IsWin7|IsWin8|IsWin10|IsWin95|IsWin98|IsWin2000|IsWin2003|IsWin2008|IsWin2008R2|IsWinME|IsWinNT4|IsWinVista|IsWinXP)}/ + }, { + token: "constant.language.boolean.true.nsis", + regex: /\b(?:true|on)\b/ + }, { + token: "constant.language.boolean.false.nsis", + regex: /\b(?:false|off)\b/ + }, { + token: "constant.language.option.nsis", + regex: /(?:\b|^\s*)(?:(?:un\.)?components|(?:un\.)?custom|(?:un\.)?directory|(?:un\.)?instfiles|(?:un\.)?license|uninstConfirm|admin|all|auto|both|bottom|bzip2|current|force|hide|highest|ifdiff|ifnewer|lastused|leave|left|listonly|lzma|nevershow|none|normal|notset|right|show|silent|silentlog|textonly|top|try|user|Win10|Win7|Win8|WinVista|zlib)\b/, + caseInsensitive: true + }, { + token: "constant.language.slash-option.nsis", + regex: /\b\/(?:a|BRANDING|CENTER|COMPONENTSONLYONCUSTOM|CUSTOMSTRING=|date|e|ENABLECANCEL|FILESONLY|file|FINAL|GLOBAL|gray|ifempty|ifndef|ignorecase|IMGID=|ITALIC|LANG=|NOCUSTOM|noerrors|NONFATAL|nonfatal|oname=|o|REBOOTOK|redef|RESIZETOFIT|r|SHORT|SILENT|SOLID|STRIKE|TRIM|UNDERLINE|utcdate|windows|x)\b/, + caseInsensitive: true + }, { + token: "constant.numeric.nsis", + regex: /\b(?:0(?:x|X)[0-9a-fA-F]+|[0-9]+(?:\.[0-9]+)?)\b/ + }, { + token: "entity.name.function.nsis", + regex: /\$\([\w\.:-]+\)/ + }, { + token: "storage.type.function.nsis", + regex: /\$[\w]+/ + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /`/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /`/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.back.nsis" + }] + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /"/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /"/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.double.nsis" + }] + }, { + token: "punctuation.definition.string.begin.nsis", + regex: /'/, + push: [{ + token: "punctuation.definition.string.end.nsis", + regex: /'/, + next: "pop" + }, { + token: "constant.character.escape.nsis", + regex: /\$\\./ + }, { + defaultToken: "string.quoted.single.nsis" + }] + }, { + token: [ + "punctuation.definition.comment.nsis", + "comment.line.nsis" + ], + regex: /(;|#)(.*$)/ + }, { + token: "punctuation.definition.comment.nsis", + regex: /\/\*/, + push: [{ + token: "punctuation.definition.comment.nsis", + regex: /\*\//, + next: "pop" + }, { + defaultToken: "comment.block.nsis" + }] + }, { + token: "text", + regex: /(?:!include|!insertmacro)\b/ + }] + }; + + this.normalizeRules(); +}; + +NSISHighlightRules.metaData = { + comment: "\n\ttodo: - highlight functions\n\t", + fileTypes: ["nsi", "nsh"], + name: "NSIS", + scopeName: "source.nsis" +}; + + +oop.inherits(NSISHighlightRules, TextHighlightRules); + +exports.NSISHighlightRules = NSISHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/nsis",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/nsis_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var NSISHighlightRules = require("./nsis_highlight_rules").NSISHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = NSISHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = [";", "#"]; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/nsis"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-objectivec.js b/htdocs/includes/ace/mode-objectivec.js new file mode 100644 index 00000000000..1dd0cb58502 --- /dev/null +++ b/htdocs/includes/ace/mode-objectivec.js @@ -0,0 +1,725 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/objectivec_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/c_cpp_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var C_Highlight_File = require("./c_cpp_highlight_rules"); +var CHighlightRules = C_Highlight_File.c_cppHighlightRules; + +var ObjectiveCHighlightRules = function() { + + var escapedConstRe = "\\\\(?:[abefnrtv'\"?\\\\]|" + + "[0-3]\\d{1,2}|" + + "[4-7]\\d?|" + + "222|" + + "x[a-zA-Z0-9]+)"; + + var specialVariables = [{ + regex: "\\b_cmd\\b", + token: "variable.other.selector.objc" + }, { + regex: "\\b(?:self|super)\\b", + token: "variable.language.objc" + } + ]; + + var cObj = new CHighlightRules(); + var cRules = cObj.getRules(); + + this.$rules = { + "start": [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, + { + token: [ "storage.type.objc", "punctuation.definition.storage.type.objc", + "entity.name.type.objc", "text", "entity.other.inherited-class.objc" + ], + regex: "(@)(interface|protocol)(?!.+;)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*:\\s*)([A-Za-z]+)" + }, + { + token: [ "storage.type.objc" ], + regex: "(@end)" + }, + { + token: [ "storage.type.objc", "entity.name.type.objc", + "entity.other.inherited-class.objc" + ], + regex: "(@implementation)(\\s+[A-Za-z_][A-Za-z0-9_]*)(\\s*?::\\s*(?:[A-Za-z][A-Za-z0-9]*))?" + }, + { + token: "string.begin.objc", + regex: '@"', + next: "constant_NSString" + }, + { + token: "storage.type.objc", + regex: "\\bid\\s*<", + next: "protocol_list" + }, + { + token: "keyword.control.macro.objc", + regex: "\\bNS_DURING|NS_HANDLER|NS_ENDHANDLER\\b" + }, + { + token: ["punctuation.definition.keyword.objc", "keyword.control.exception.objc"], + regex: "(@)(try|catch|finally|throw)\\b" + }, + { + token: ["punctuation.definition.keyword.objc", "keyword.other.objc"], + regex: "(@)(defs|encode)\\b" + }, + { + token: ["storage.type.id.objc", "text"], + regex: "(\\bid\\b)(\\s|\\n)?" + }, + { + token: "storage.type.objc", + regex: "\\bIBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class\\b" + }, + { + token: [ "punctuation.definition.storage.type.objc", "storage.type.objc"], + regex: "(@)(class|protocol)\\b" + }, + { + token: [ "punctuation.definition.storage.type.objc", "punctuation"], + regex: "(@selector)(\\s*\\()", + next: "selectors" + }, + { + token: [ "punctuation.definition.storage.modifier.objc", "storage.modifier.objc"], + regex: "(@)(synchronized|public|private|protected|package)\\b" + }, + { + token: "constant.language.objc", + regex: "\\bYES|NO|Nil|nil\\b" + }, + { + token: "support.variable.foundation", + regex: "\\bNSApp\\b" + }, + { + token: [ "support.function.cocoa.leopard"], + regex: "(?:\\b)(NS(?:Rect(?:ToCGRect|FromCGRect)|MakeCollectable|S(?:tringFromProtocol|ize(?:ToCGSize|FromCGSize))|Draw(?:NinePartImage|ThreePartImage)|P(?:oint(?:ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))(?:\\b)" + }, + { + token: ["support.function.cocoa"], + regex: "(?:\\b)(NS(?:R(?:ound(?:DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(?:CriticalAlertPanel(?:RelativeToWindow)?|InformationalAlertPanel(?:RelativeToWindow)?|AlertPanel(?:RelativeToWindow)?)|e(?:set(?:MapTable|HashTable)|c(?:ycleZone|t(?:Clip(?:List)?|F(?:ill(?:UsingOperation|List(?:UsingOperation|With(?:Grays|Colors(?:UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(?:dPixel|l(?:MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(?:SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(?:s)?|WindowServerMemory|AlertPanel)|M(?:i(?:n(?:X|Y)|d(?:X|Y))|ouseInRect|a(?:p(?:Remove|Get|Member|Insert(?:IfAbsent|KnownAbsent)?)|ke(?:R(?:ect|ange)|Size|Point)|x(?:Range|X|Y)))|B(?:itsPer(?:SampleFromDepth|PixelFromDepth)|e(?:stDepth|ep|gin(?:CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(?:ho(?:uldRetainWithZone|w(?:sServicesMenuItem|AnimationEffect))|tringFrom(?:R(?:ect|ange)|MapTable|S(?:ize|elector)|HashTable|Class|Point)|izeFromString|e(?:t(?:ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(?:Big(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|Short|Host(?:ShortTo(?:Big|Little)|IntTo(?:Big|Little)|DoubleTo(?:Big|Little)|FloatTo(?:Big|Little)|Long(?:To(?:Big|Little)|LongTo(?:Big|Little)))|Int|Double|Float|L(?:ittle(?:ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(?:ToHost|LongToHost))|ong(?:Long)?)))|H(?:ighlightRect|o(?:stByteOrder|meDirectory(?:ForUser)?)|eight|ash(?:Remove|Get|Insert(?:IfAbsent|KnownAbsent)?)|FSType(?:CodeFromFileType|OfFile))|N(?:umberOfColorComponents|ext(?:MapEnumeratorPair|HashEnumeratorItem))|C(?:o(?:n(?:tainsRect|vert(?:GlyphsToPackedGlyphs|Swapped(?:DoubleToHost|FloatToHost)|Host(?:DoubleToSwapped|FloatToSwapped)))|unt(?:MapTable|HashTable|Frames|Windows(?:ForContext)?)|py(?:M(?:emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(?:MapTables|HashTables))|lassFromString|reate(?:MapTable(?:WithZone)?|HashTable(?:WithZone)?|Zone|File(?:namePboardType|ContentsPboardType)))|TemporaryDirectory|I(?:s(?:ControllerMarker|EmptyRect|FreedObject)|n(?:setRect|crementExtraRefCount|te(?:r(?:sect(?:sRect|ionR(?:ect|ange))|faceStyleForKey)|gralRect)))|Zone(?:Realloc|Malloc|Name|Calloc|Fr(?:omPointer|ee))|O(?:penStepRootDirectory|ffsetRect)|D(?:i(?:sableScreenUpdates|videRect)|ottedFrameRect|e(?:c(?:imal(?:Round|Multiply|S(?:tring|ubtract)|Normalize|Co(?:py|mpa(?:ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(?:MemoryPages|Object))|raw(?:Gr(?:oove|ayBezel)|B(?:itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(?:hiteBezel|indowBackground)|LightBezel))|U(?:serName|n(?:ionR(?:ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(?:Bundle(?:Setup|Cleanup)|Setup(?:VirtualMachine)?|Needs(?:ToLoadClasses|VirtualMachine)|ClassesF(?:orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(?:oint(?:InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(?:n(?:d(?:MapTableEnumeration|HashTableEnumeration)|umerate(?:MapTable|HashTable)|ableScreenUpdates)|qual(?:R(?:ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(?:ileTypeForHFSTypeCode|ullUserName|r(?:ee(?:MapTable|HashTable)|ame(?:Rect(?:WithWidth(?:UsingOperation)?)?|Address)))|Wi(?:ndowList(?:ForContext)?|dth)|Lo(?:cationInRange|g(?:v|PageSize)?)|A(?:ccessibility(?:R(?:oleDescription(?:ForUIElement)?|aiseBadArgumentException)|Unignored(?:Children(?:ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(?:Main|Load)|vailableWindowDepths|ll(?:MapTable(?:Values|Keys)|HashTableObjects|ocate(?:MemoryPages|Collectable|Object)))))(?:\\b)" + }, + { + token: ["support.class.cocoa.leopard"], + regex: "(?:\\b)(NS(?:RuleEditor|G(?:arbageCollector|radient)|MapTable|HashTable|Co(?:ndition|llectionView(?:Item)?)|T(?:oolbarItemGroup|extInputClient|r(?:eeNode|ackingArea))|InvocationOperation|Operation(?:Queue)?|D(?:ictionaryController|ockTile)|P(?:ointer(?:Functions|Array)|athC(?:o(?:ntrol(?:Delegate)?|mponentCell)|ell(?:Delegate)?)|r(?:intPanelAccessorizing|edicateEditor(?:RowTemplate)?))|ViewController|FastEnumeration|Animat(?:ionContext|ablePropertyContainer)))(?:\\b)" + }, + { + token: ["support.class.cocoa"], + regex: "(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)" + }, + { + token: ["support.type.cocoa.leopard"], + regex: "(?:\\b)(NS(?:R(?:u(?:nLoop|ler(?:Marker|View))|e(?:sponder|cursiveLock|lativeSpecifier)|an(?:domSpecifier|geSpecifier))|G(?:etCommand|lyph(?:Generator|Storage|Info)|raphicsContext)|XML(?:Node|D(?:ocument|TD(?:Node)?)|Parser|Element)|M(?:iddleSpecifier|ov(?:ie(?:View)?|eCommand)|utable(?:S(?:tring|et)|C(?:haracterSet|opying)|IndexSet|D(?:ictionary|ata)|URLRequest|ParagraphStyle|A(?:ttributedString|rray))|e(?:ssagePort(?:NameServer)?|nu(?:Item(?:Cell)?|View)?|t(?:hodSignature|adata(?:Item|Query(?:ResultGroup|AttributeValueTuple)?)))|a(?:ch(?:BootstrapServer|Port)|trix))|B(?:itmapImageRep|ox|u(?:ndle|tton(?:Cell)?)|ezierPath|rowser(?:Cell)?)|S(?:hadow|c(?:anner|r(?:ipt(?:SuiteRegistry|C(?:o(?:ercionHandler|mmand(?:Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(?:er|View)|een))|t(?:epper(?:Cell)?|atus(?:Bar|Item)|r(?:ing|eam))|imple(?:HorizontalTypesetter|CString)|o(?:cketPort(?:NameServer)?|und|rtDescriptor)|p(?:e(?:cifierTest|ech(?:Recognizer|Synthesizer)|ll(?:Server|Checker))|litView)|e(?:cureTextField(?:Cell)?|t(?:Command)?|archField(?:Cell)?|rializer|gmentedC(?:ontrol|ell))|lider(?:Cell)?|avePanel)|H(?:ost|TTP(?:Cookie(?:Storage)?|URLResponse)|elpManager)|N(?:ib(?:Con(?:nector|trolConnector)|OutletConnector)?|otification(?:Center|Queue)?|u(?:ll|mber(?:Formatter)?)|etService(?:Browser)?|ameSpecifier)|C(?:ha(?:ngeSpelling|racterSet)|o(?:n(?:stantString|nection|trol(?:ler)?|ditionLock)|d(?:ing|er)|unt(?:Command|edSet)|pying|lor(?:Space|P(?:ick(?:ing(?:Custom|Default)|er)|anel)|Well|List)?|m(?:p(?:oundPredicate|arisonPredicate)|boBox(?:Cell)?))|u(?:stomImageRep|rsor)|IImageRep|ell|l(?:ipView|o(?:seCommand|neCommand)|assDescription)|a(?:ched(?:ImageRep|URLResponse)|lendar(?:Date)?)|reateCommand)|T(?:hread|ypesetter|ime(?:Zone|r)|o(?:olbar(?:Item(?:Validations)?)?|kenField(?:Cell)?)|ext(?:Block|Storage|Container|Tab(?:le(?:Block)?)?|Input|View|Field(?:Cell)?|List|Attachment(?:Cell)?)?|a(?:sk|b(?:le(?:Header(?:Cell|View)|Column|View)|View(?:Item)?))|reeController)|I(?:n(?:dex(?:S(?:pecifier|et)|Path)|put(?:Manager|S(?:tream|erv(?:iceProvider|er(?:MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(?:Rep|Cell|View)?)|O(?:ut(?:putStream|lineView)|pen(?:GL(?:Context|Pixel(?:Buffer|Format)|View)|Panel)|bj(?:CTypeSerializationCallBack|ect(?:Controller)?))|D(?:i(?:st(?:antObject(?:Request)?|ributed(?:NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(?:Controller)?|e(?:serializer|cimalNumber(?:Behaviors|Handler)?|leteCommand)|at(?:e(?:Components|Picker(?:Cell)?|Formatter)?|a)|ra(?:wer|ggingInfo))|U(?:ser(?:InterfaceValidations|Defaults(?:Controller)?)|RL(?:Re(?:sponse|quest)|Handle(?:Client)?|C(?:onnection|ache|redential(?:Storage)?)|Download(?:Delegate)?|Prot(?:ocol(?:Client)?|ectionSpace)|AuthenticationChallenge(?:Sender)?)?|n(?:iqueIDSpecifier|doManager|archiver))|P(?:ipe|o(?:sitionalSpecifier|pUpButton(?:Cell)?|rt(?:Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(?:steboard|nel|ragraphStyle|geLayout)|r(?:int(?:Info|er|Operation|Panel)|o(?:cessInfo|tocolChecker|perty(?:Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(?:numerator|vent|PSImageRep|rror|x(?:ception|istsCommand|pression))|V(?:iew(?:Animation)?|al(?:idated(?:ToobarItem|UserInterfaceItem)|ue(?:Transformer)?))|Keyed(?:Unarchiver|Archiver)|Qui(?:ckDrawView|tCommand)|F(?:ile(?:Manager|Handle|Wrapper)|o(?:nt(?:Manager|Descriptor|Panel)?|rm(?:Cell|atter)))|W(?:hoseSpecifier|indow(?:Controller)?|orkspace)|L(?:o(?:c(?:k(?:ing)?|ale)|gicalTest)|evelIndicator(?:Cell)?|ayoutManager)|A(?:ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(?:ication|e(?:Script|Event(?:Manager|Descriptor)))|ffineTransform|lert|r(?:chiver|ray(?:Controller)?))))(?:\\b)" + }, + { + token: ["support.class.quartz"], + regex: "(?:\\b)(C(?:I(?:Sampler|Co(?:ntext|lor)|Image(?:Accumulator)?|PlugIn(?:Registration)?|Vector|Kernel|Filter(?:Generator|Shape)?)|A(?:Renderer|MediaTiming(?:Function)?|BasicAnimation|ScrollLayer|Constraint(?:LayoutManager)?|T(?:iledLayer|extLayer|rans(?:ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(?:nimation(?:Group)?|ction))))(?:\\b)" + }, + { + token: ["support.type.quartz"], + regex: "(?:\\b)(C(?:G(?:Float|Point|Size|Rect)|IFormat|AConstraintAttribute))(?:\\b)" + }, + { + token: ["support.type.cocoa"], + regex: "(?:\\b)(NS(?:R(?:ect(?:Edge)?|ange)|G(?:lyph(?:Relation|LayoutMode)?|radientType)|M(?:odalSession|a(?:trixMode|p(?:Table|Enumerator)))|B(?:itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(?:cr(?:oll(?:er(?:Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(?:Granularity|Direction|Affinity)|wapped(?:Double|Float)|aveOperationType)|Ha(?:sh(?:Table|Enumerator)|ndler(?:2)?)|C(?:o(?:ntrol(?:Size|Tint)|mp(?:ositingOperation|arisonResult))|ell(?:State|Type|ImagePosition|Attribute))|T(?:hreadPrivate|ypesetterGlyphInfo|i(?:ckMarkPosition|tlePosition|meInterval)|o(?:ol(?:TipTag|bar(?:SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(?:TabType|Alignment)|ab(?:State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(?:ContextAuxiliary|PixelFormatAuxiliary)|D(?:ocumentChangeType|atePickerElementFlags|ra(?:werState|gOperation))|UsableScrollerParts|P(?:oint|r(?:intingPageOrder|ogressIndicator(?:Style|Th(?:ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(?:nt(?:SymbolicTraits|TraitMask|Action)|cusRingType)|W(?:indow(?:OrderingMode|Depth)|orkspace(?:IconCreationOptions|LaunchOptions)|ritingDirection)|L(?:ineBreakMode|ayout(?:Status|Direction))|A(?:nimation(?:Progress|Effect)|ppl(?:ication(?:TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle)))(?:\\b)" + }, + { + token: ["support.constant.cocoa"], + regex: "(?:\\b)(NS(?:NotFound|Ordered(?:Ascending|Descending|Same)))(?:\\b)" + }, + { + token: ["support.constant.notification.cocoa.leopard"], + regex: "(?:\\b)(NS(?:MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification)(?:\\b)" + }, + { + token: ["support.constant.notification.cocoa"], + regex: "(?:\\b)(NS(?:Menu(?:Did(?:RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(?:ystemColorsDidChange|plitView(?:DidResizeSubviews|WillResizeSubviews))|C(?:o(?:nt(?:extHelpModeDid(?:Deactivate|Activate)|rolT(?:intDidChange|extDid(?:BeginEditing|Change|EndEditing)))|lor(?:PanelColorDidChange|ListDidChange)|mboBox(?:Selection(?:IsChanging|DidChange)|Will(?:Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(?:oolbar(?:DidRemoveItem|WillAddItem)|ext(?:Storage(?:DidProcessEditing|WillProcessEditing)|Did(?:BeginEditing|Change|EndEditing)|View(?:DidChange(?:Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)))|ImageRepRegistryDidChange|OutlineView(?:Selection(?:IsChanging|DidChange)|ColumnDid(?:Resize|Move)|Item(?:Did(?:Collapse|Expand)|Will(?:Collapse|Expand)))|Drawer(?:Did(?:Close|Open)|Will(?:Close|Open))|PopUpButton(?:CellWillPopUp|WillPopUp)|View(?:GlobalFrameDidChange|BoundsDidChange|F(?:ocusDidChange|rameDidChange))|FontSetChanged|W(?:indow(?:Did(?:Resi(?:ze|gn(?:Main|Key))|M(?:iniaturize|ove)|Become(?:Main|Key)|ChangeScreen(?:|Profile)|Deminiaturize|Update|E(?:ndSheet|xpose))|Will(?:M(?:iniaturize|ove)|BeginSheet|Close))|orkspace(?:SessionDid(?:ResignActive|BecomeActive)|Did(?:Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(?:Sleep|Unmount|PowerOff|LaunchApplication)))|A(?:ntialiasThresholdChanged|ppl(?:ication(?:Did(?:ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(?:nhide|pdate)|FinishLaunching)|Will(?:ResignActive|BecomeActive|Hide|Terminate|U(?:nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification)(?:\\b)" + }, + { + token: ["support.constant.cocoa.leopard"], + regex: "(?:\\b)(NS(?:RuleEditor(?:RowType(?:Simple|Compound)|NestingMode(?:Si(?:ngle|mple)|Compound|List))|GradientDraws(?:BeforeStartingLocation|AfterEndingLocation)|M(?:inusSetExpressionType|a(?:chPortDeallocate(?:ReceiveRight|SendRight|None)|pTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(?:oxCustom|undleExecutableArchitecture(?:X86|I386|PPC(?:64)?)|etweenPredicateOperatorType|ackgroundStyle(?:Raised|Dark|L(?:ight|owered)))|S(?:tring(?:DrawingTruncatesLastVisibleLine|EncodingConversion(?:ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(?:e(?:ech(?:SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(?:GrammarFlag|SpellingFlag))|litViewDividerStyleThi(?:n|ck))|e(?:rvice(?:RequestTimedOutError|M(?:iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(?:inimum|aximum)|Application(?:NotFoundError|LaunchFailedError))|gmentStyle(?:Round(?:Rect|ed)|SmallSquare|Capsule|Textured(?:Rounded|Square)|Automatic)))|H(?:UDWindowMask|ashTable(?:StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(?:oModeColorPanel|etServiceNoAutoRename)|C(?:hangeRedone|o(?:ntainsPredicateOperatorType|l(?:orRenderingIntent(?:RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(?:None|ContentArea|TrackableArea|EditableTextArea))|T(?:imeZoneNameStyle(?:S(?:hort(?:Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(?:Regular|SourceList)|racking(?:Mouse(?:Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(?:ssumeInside|ctive(?:In(?:KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(?:n(?:tersectSetExpressionType|dexedColorSpaceModel)|mageScale(?:None|Proportionally(?:Down|UpOrDown)|AxesIndependently))|Ope(?:nGLPFAAllowOfflineRenderers|rationQueue(?:DefaultMaxConcurrentOperationCount|Priority(?:High|Normal|Very(?:High|Low)|Low)))|D(?:iacriticInsensitiveSearch|ownloadsDirectory)|U(?:nionSetExpressionType|TF(?:16(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(?:BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(?:ointerFunctions(?:Ma(?:chVirtualMemory|llocMemory)|Str(?:ongMemory|uctPersonality)|C(?:StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(?:paque(?:Memory|Personality)|bjectP(?:ointerPersonality|ersonality)))|at(?:hStyle(?:Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(?:Scaling|Copies|Orientation|P(?:a(?:perSize|ge(?:Range|SetupAccessory))|review)))|Executable(?:RuntimeMismatchError|NotLoadableError|ErrorM(?:inimum|aximum)|L(?:inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(?:Initial|Prior)|F(?:i(?:ndPanelSubstringMatchType(?:StartsWith|Contains|EndsWith|FullWord)|leRead(?:TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(?:ndow(?:BackingLocation(?:MainMemory|Default|VideoMemory)|Sharing(?:Read(?:Only|Write)|None)|CollectionBehavior(?:MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType))(?:\\b)" + }, + { + token: ["support.constant.cocoa"], + regex: "(?:\\b)(NS(?:R(?:GB(?:ModeColorPanel|ColorSpaceModel)|ight(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey)|ound(?:RectBezelStyle|Bankers|ed(?:BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(?:CapStyle|JoinStyle))|un(?:StoppedResponse|ContinuesResponse|AbortedResponse)|e(?:s(?:izableWindowMask|et(?:CursorRectsRunLoopOrdering|FunctionKey))|ce(?:ssedBezelStyle|iver(?:sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(?:evancyLevelIndicatorStyle|ative(?:Before|After))|gular(?:SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(?:n(?:domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(?:ModeMatrix|Button)))|G(?:IFFileType|lyph(?:Below|Inscribe(?:B(?:elow|ase)|Over(?:strike|Below)|Above)|Layout(?:WithPrevious|A(?:tAPoint|gainstAPoint))|A(?:ttribute(?:BidiLevel|Soft|Inscribe|Elastic)|bove))|r(?:ooveBorder|eaterThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|a(?:y(?:ModeColorPanel|ColorSpaceModel)|dient(?:None|Con(?:cave(?:Strong|Weak)|vex(?:Strong|Weak)))|phiteControlTint)))|XML(?:N(?:o(?:tationDeclarationKind|de(?:CompactEmptyElement|IsCDATA|OptionsNone|Use(?:SingleQuotes|DoubleQuotes)|Pre(?:serve(?:NamespaceOrder|C(?:haracterReferences|DATA)|DTD|Prefixes|E(?:ntities|mptyElements)|Quotes|Whitespace|A(?:ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(?:ocument(?:X(?:MLKind|HTMLKind|Include)|HTMLKind|T(?:idy(?:XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(?:arser(?:GTRequiredError|XMLDeclNot(?:StartedError|FinishedError)|Mi(?:splaced(?:XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(?:StartedError|FinishedError))|S(?:t(?:andaloneValueError|ringNot(?:StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(?:MTOKENRequiredError|o(?:t(?:ationNot(?:StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(?:haracterRef(?:In(?:DTDError|PrologError|EpilogError)|AtEOFError)|o(?:nditionalSectionNot(?:StartedError|FinishedError)|mment(?:NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(?:ternalError|valid(?:HexCharacterRefError|C(?:haracter(?:RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(?:NameError|Error)))|OutOfMemoryError|D(?:ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(?:RI(?:RequiredError|FragmentError)|n(?:declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(?:CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(?:MissingSemiError|NoNameError|In(?:Internal(?:SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(?:ocessingInstructionNot(?:StartedError|FinishedError)|ematureDocumentEndError))|E(?:n(?:codingNotSupportedError|tity(?:Ref(?:In(?:DTDError|PrologError|EpilogError)|erence(?:MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(?:StartedError|FinishedError)|Is(?:ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(?:StartedError|FinishedError)|xt(?:ernalS(?:tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(?:iteralNot(?:StartedError|FinishedError)|T(?:RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(?:RedefinedError|HasNoValueError|Not(?:StartedError|FinishedError)|ListNot(?:StartedError|FinishedError)))|rocessingInstructionKind)|E(?:ntity(?:GeneralKind|DeclarationKind|UnparsedKind|P(?:ar(?:sedKind|ameterKind)|redefined))|lement(?:Declaration(?:MixedKind|UndefinedKind|E(?:lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(?:N(?:MToken(?:sKind|Kind)|otationKind)|CDATAKind|ID(?:Ref(?:sKind|Kind)|Kind)|DeclarationKind|En(?:tit(?:yKind|iesKind)|umerationKind)|Kind))|M(?:i(?:n(?:XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(?:nthCalendarUnit|deSwitchFunctionKey|use(?:Moved(?:Mask)?|E(?:ntered(?:Mask)?|ventSubtype|xited(?:Mask)?))|veToBezierPathElement|mentary(?:ChangeButton|Push(?:Button|InButton)|Light(?:Button)?))|enuFunctionKey|a(?:c(?:intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(?:XEdge|YEdge))|ACHOperatingSystem)|B(?:MPFileType|o(?:ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(?:Se(?:condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(?:zelBorder|velLineJoinStyle|low(?:Bottom|Top)|gin(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(?:spaceCharacter|tabTextMovement|ingStore(?:Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(?:owser(?:NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(?:h(?:ift(?:JISStringEncoding|KeyMask)|ow(?:ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(?:s(?:ReqFunctionKey|tem(?:D(?:omainMask|efined(?:Mask)?)|FunctionKey))|mbolStringEncoding)|c(?:a(?:nnedOption|le(?:None|ToFit|Proportionally))|r(?:oll(?:er(?:NoPart|Increment(?:Page|Line|Arrow)|Decrement(?:Page|Line|Arrow)|Knob(?:Slot)?|Arrows(?:M(?:inEnd|axEnd)|None|DefaultSetting))|Wheel(?:Mask)?|LockFunctionKey)|eenChangedEventType))|t(?:opFunctionKey|r(?:ingDrawing(?:OneShot|DisableScreenFontSubstitution|Uses(?:DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(?:Status(?:Reading|NotOpen|Closed|Open(?:ing)?|Error|Writing|AtEnd)|Event(?:Has(?:BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(?:ndEncountered|rrorOccurred)))))|i(?:ngle(?:DateMode|UnderlineStyle)|ze(?:DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(?:condCalendarUnit|lect(?:By(?:Character|Paragraph|Word)|i(?:ng(?:Next|Previous)|onAffinity(?:Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(?:Momentary|Select(?:One|Any)))|quareLineCapStyle|witchButton|ave(?:ToOperation|Op(?:tions(?:Yes|No|Ask)|eration)|AsOperation)|mall(?:SquareBezelStyle|C(?:ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(?:ighlightModeMatrix|SBModeColorPanel|o(?:ur(?:Minute(?:SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(?:Never|OnlyFromMainDocumentDomain|Always)|e(?:lp(?:ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(?:MonthDa(?:yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(?:o(?:n(?:StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(?:ification(?:SuspensionBehavior(?:Hold|Coalesce|D(?:eliverImmediately|rop))|NoCoalescing|CoalescingOn(?:Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(?:cr(?:iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(?:itle|opLevelContainersSpecifierError|abs(?:BezelBorder|NoBorder|LineBorder))|I(?:nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(?:ll(?:Glyph|CellType)|m(?:eric(?:Search|PadKeyMask)|berFormatter(?:Round(?:Half(?:Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(?:10|Default)|S(?:cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(?:ercentStyle|ad(?:Before(?:Suffix|Prefix)|After(?:Suffix|Prefix))))))|e(?:t(?:Services(?:BadArgumentError|NotFoundError|C(?:ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(?:StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(?:t(?:iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(?:hange(?:ReadOtherContents|GrayCell(?:Mask)?|BackgroundCell(?:Mask)?|Cleared|Done|Undone|Autosaved)|MYK(?:ModeColorPanel|ColorSpaceModel)|ircular(?:BezelStyle|Slider)|o(?:n(?:stantValueExpressionType|t(?:inuousCapacityLevelIndicatorStyle|entsCellMask|ain(?:sComparison|erSpecifierError)|rol(?:Glyph|KeyMask))|densedFontMask)|lor(?:Panel(?:RGBModeMask|GrayModeMask|HSBModeMask|C(?:MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(?:p(?:osite(?:XOR|Source(?:In|O(?:ut|ver)|Atop)|Highlight|C(?:opy|lear)|Destination(?:In|O(?:ut|ver)|Atop)|Plus(?:Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(?:stom(?:SelectorPredicateOperatorType|PaletteModeColorPanel)|r(?:sor(?:Update(?:Mask)?|PointingDevice)|veToBezierPathElement))|e(?:nterT(?:extAlignment|abStopType)|ll(?:State|H(?:ighlighted|as(?:Image(?:Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(?:Bordered|InsetButton)|Disabled|Editable|LightsBy(?:Gray|Background|Contents)|AllowsMixedState))|l(?:ipPagination|o(?:s(?:ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(?:ControlTint|DisplayFunctionKey|LineFunctionKey))|a(?:seInsensitive(?:Search|PredicateOption)|n(?:notCreateScriptCommandError|cel(?:Button|TextMovement))|chesDirectory|lculation(?:NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(?:itical(?:Request|AlertStyle)|ayonModeColorPanel))|T(?:hick(?:SquareBezelStyle|erSquareBezelStyle)|ypesetter(?:Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(?:ineBreakAction|atestBehavior))|i(?:ckMark(?:Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(?:olbarItemVisibilityPriority(?:Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(?:Compression(?:N(?:one|EXT)|CCITTFAX(?:3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(?:rminate(?:Now|Cancel|Later)|xt(?:Read(?:InapplicableDocumentTypeError|WriteErrorM(?:inimum|aximum))|Block(?:M(?:i(?:nimum(?:Height|Width)|ddleAlignment)|a(?:rgin|ximum(?:Height|Width)))|B(?:o(?:ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(?:ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(?:Characters|Attributes)|CellType|ured(?:RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(?:FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(?:RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(?:Character|TextMovement|le(?:tP(?:oint(?:Mask|EventSubtype)?|roximity(?:Mask|EventSubtype)?)|Column(?:NoResizing|UserResizingMask|AutoresizingMask)|View(?:ReverseSequentialColumnAutoresizingStyle|GridNone|S(?:olid(?:HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(?:n(?:sert(?:CharFunctionKey|FunctionKey|LineFunctionKey)|t(?:Type|ernalS(?:criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(?:Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(?:2022JPStringEncoding|Latin(?:1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(?:R(?:ight|ep(?:MatchesDevice|LoadStatus(?:ReadingHeader|Completed|InvalidData|Un(?:expectedEOF|knownType)|WillNeedAllData)))|Below|C(?:ellType|ache(?:BySize|Never|Default|Always))|Interpolation(?:High|None|Default|Low)|O(?:nly|verlaps)|Frame(?:Gr(?:oove|ayBezel)|Button|None|Photo)|L(?:oadStatus(?:ReadError|C(?:ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(?:lign(?:Right|Bottom(?:Right|Left)?|Center|Top(?:Right|Left)?|Left)|bove)))|O(?:n(?:State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|TextMovement)|SF1OperatingSystem|pe(?:n(?:GL(?:GO(?:Re(?:setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(?:R(?:obust|endererID)|M(?:inimumPolicy|ulti(?:sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(?:creenMask|te(?:ncilSize|reo)|ingleRenderer|upersample|ample(?:s|Buffers|Alpha))|NoRecovery|C(?:o(?:lor(?:Size|Float)|mpliant)|losestPolicy)|OffScreen|D(?:oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(?:cc(?:umSize|elerated)|ux(?:Buffers|DepthStencil)|l(?:phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(?:criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(?:B(?:itfield|oolType)|S(?:hortType|tr(?:ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(?:Type|longType)|ArrayType))|D(?:i(?:s(?:c(?:losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(?:Selection|PredicateModifier))|o(?:c(?:ModalWindowMask|ument(?:Directory|ationDirectory))|ubleType|wn(?:TextMovement|ArrowFunctionKey))|e(?:s(?:cendingPageOrder|ktopDirectory)|cimalTabStopType|v(?:ice(?:NColorSpaceModel|IndependentModifierFlagsMask)|eloper(?:Directory|ApplicationDirectory))|fault(?:ControlTint|TokenStyle)|lete(?:Char(?:acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(?:yCalendarUnit|teFormatter(?:MediumStyle|Behavior(?:10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(?:wer(?:Clos(?:ingState|edState)|Open(?:ingState|State))|gOperation(?:Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(?:ser(?:CancelledError|D(?:irectory|omainMask)|FunctionKey)|RL(?:Handle(?:NotLoaded|Load(?:Succeeded|InProgress|Failed))|CredentialPersistence(?:None|Permanent|ForSession))|n(?:scaledWindowMask|cachedRead|i(?:codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(?:o(?:CloseGroupingRunLoopOrdering|FunctionKey)|e(?:finedDateComponent|rline(?:Style(?:Single|None|Thick|Double)|Pattern(?:Solid|D(?:ot|ash(?:Dot(?:Dot)?)?)))))|known(?:ColorSpaceModel|P(?:ointingDevice|ageOrder)|KeyS(?:criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(?:dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(?:ustifiedTextAlignment|PEG(?:2000FileType|FileType)|apaneseEUC(?:GlyphPacking|StringEncoding))|P(?:o(?:s(?:t(?:Now|erFontMask|WhenIdle|ASAP)|iti(?:on(?:Replace|Be(?:fore|ginning)|End|After)|ve(?:IntType|DoubleType|FloatType)))|pUp(?:NoArrow|ArrowAt(?:Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(?:InCell(?:Mask)?|OnPushOffButton)|e(?:n(?:TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(?:Mask)?)|P(?:S(?:caleField|tatus(?:Title|Field)|aveButton)|N(?:ote(?:Title|Field)|ame(?:Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(?:a(?:perFeedButton|ge(?:Range(?:To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(?:useFunctionKey|ragraphSeparatorCharacter|ge(?:DownFunctionKey|UpFunctionKey))|r(?:int(?:ing(?:ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(?:NotFound|OK|Error)|FunctionKey)|o(?:p(?:ertyList(?:XMLFormat|MutableContainers(?:AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(?:BarStyle|SpinningStyle|Preferred(?:SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(?:ssedTab|vFunctionKey))|L(?:HeightForm|CancelButton|TitleField|ImageButton|O(?:KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(?:n(?:terCharacter|d(?:sWith(?:Comparison|PredicateOperatorType)|FunctionKey))|v(?:e(?:nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(?:Comparison|PredicateOperatorType)|ra(?:serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(?:clude(?:10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(?:i(?:ew(?:M(?:in(?:XMargin|YMargin)|ax(?:XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(?:lidationErrorM(?:inimum|aximum)|riableExpressionType))|Key(?:SpecifierEvaluationScriptError|Down(?:Mask)?|Up(?:Mask)?|PathExpressionType|Value(?:MinusSetMutation|SetSetMutation|Change(?:Re(?:placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(?:New|Old)|UnionSetMutation|ValidationError))|QTMovie(?:NormalPlayback|Looping(?:BackAndForthPlayback|Playback))|F(?:1(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(?:nd(?:PanelAction(?:Replace(?:A(?:ndFind|ll(?:InSelection)?))?|S(?:howFindPanel|e(?:tFindString|lectAll(?:InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(?:Read(?:No(?:SuchFileError|PermissionError)|CorruptFileError|In(?:validFileNameError|applicableStringEncodingError)|Un(?:supportedSchemeError|knownError))|HandlingPanel(?:CancelButton|OKButton)|NoSuchFileError|ErrorM(?:inimum|aximum)|Write(?:NoPermissionError|In(?:validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(?:supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(?:1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(?:nt(?:Mo(?:noSpaceTrait|dernSerifsClass)|BoldTrait|S(?:ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(?:o(?:ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(?:ntegerAdvancementsRenderingMode|talicTrait)|O(?:ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(?:nknownClass|IOptimizedTrait)|Panel(?:S(?:hadowEffectModeMask|t(?:andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(?:ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(?:amilyClassMask|reeformSerifsClass)|Antialiased(?:RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(?:Below|Type(?:None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(?:attingError(?:M(?:inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(?:ExpressionType|KeyMask)|3(?:1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(?:RevertButton|S(?:ize(?:Title|Field)|etButton)|CurrentField|Preview(?:Button|Field))|l(?:oat(?:ingPointSamplesBitmapFormat|Type)|agsChanged(?:Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(?:heelModeColorPanel|indow(?:s(?:NTOperatingSystem|CP125(?:1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(?:InterfaceStyle|OperatingSystem))|M(?:iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(?:NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(?:ctivation|ddingToRecents)|A(?:sync|nd(?:Hide(?:Others)?|Print)|llowingClassicStartup))|eek(?:day(?:CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(?:ntsBidiLevels|rningAlertStyle)|r(?:itingDirection(?:RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(?:i(?:stModeMatrix|ne(?:Moves(?:Right|Down|Up|Left)|B(?:order|reakBy(?:C(?:harWrapping|lipping)|Truncating(?:Middle|Head|Tail)|WordWrapping))|S(?:eparatorCharacter|weep(?:Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(?:ssThan(?:Comparison|OrEqualTo(?:Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(?:Mouse(?:D(?:own(?:Mask)?|ragged(?:Mask)?)|Up(?:Mask)?)|T(?:ext(?:Movement|Alignment)|ab(?:sBezelBorder|StopType))|ArrowFunctionKey))|a(?:yout(?:RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(?:sc(?:iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(?:y(?:Type|PredicateModifier|EventMask)|choredSearch|imation(?:Blocking|Nonblocking(?:Threaded)?|E(?:ffect(?:DisappearingItemDefault|Poof)|ase(?:In(?:Out)?|Out))|Linear)|dPredicateType)|t(?:Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(?:obe(?:GB1CharacterCollection|CNS1CharacterCollection|Japan(?:1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(?:saveOperation|Pagination)|pp(?:lication(?:SupportDirectory|D(?:irectory|e(?:fined(?:Mask)?|legateReply(?:Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(?:Mask)?)|l(?:ternateKeyMask|pha(?:ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(?:SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(?:ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(?:sWrongScriptError|EvaluationScriptError)|bove(?:Bottom|Top)|WTEventType)))(?:\\b)" + }, + { + token: "support.function.C99.c", + regex: C_Highlight_File.cFunctions + }, + { + token : cObj.getKeywords(), + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token: "punctuation.section.scope.begin.objc", + regex: "\\[", + next: "bracketed_content" + }, + { + token: "meta.function.objc", + regex: "^(?:-|\\+)\\s*" + } + ], + "constant_NSString": [ + { + token: "constant.character.escape.objc", + regex: escapedConstRe + }, + { + token: "invalid.illegal.unknown-escape.objc", + regex: "\\\\." + }, + { + token: "string", + regex: '[^"\\\\]+' + }, + { + token: "punctuation.definition.string.end", + regex: "\"", + next: "start" + } + ], + "protocol_list": [ + { + token: "punctuation.section.scope.end.objc", + regex: ">", + next: "start" + }, + { + token: "support.other.protocol.objc", + regex: "\bNS(?:GlyphStorage|M(?:utableCopying|enuItem)|C(?:hangeSpelling|o(?:ding|pying|lorPicking(?:Custom|Default)))|T(?:oolbarItemValidations|ext(?:Input|AttachmentCell))|I(?:nputServ(?:iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(?:CTypeSerializationCallBack|ect)|D(?:ecimalNumberBehaviors|raggingInfo)|U(?:serInterfaceValidations|RL(?:HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(?:ToobarItem|UserInterfaceItem)|Locking)\b" + } + ], + "selectors": [ + { + token: "support.function.any-method.name-of-parameter.objc", + regex: "\\b(?:[a-zA-Z_:][\\w]*)+" + }, + { + token: "punctuation", + regex: "\\)", + next: "start" + } + ], + "bracketed_content": [ + { + token: "punctuation.section.scope.end.objc", + regex: "]", + next: "start" + }, + { + token: ["support.function.any-method.objc"], + regex: "(?:predicateWithFormat:| NSPredicate predicateWithFormat:)", + next: "start" + }, + { + token: "support.function.any-method.objc", + regex: "\\w+(?::|(?=]))", + next: "start" + } + ], + "bracketed_strings": [ + { + token: "punctuation.section.scope.end.objc", + regex: "]", + next: "start" + }, + { + token: "keyword.operator.logical.predicate.cocoa", + regex: "\\b(?:AND|OR|NOT|IN)\\b" + }, + { + token: ["invalid.illegal.unknown-method.objc", "punctuation.separator.arguments.objc"], + regex: "\\b(\\w+)(:)" + }, + { + regex: "\\b(?:ALL|ANY|SOME|NONE)\\b", + token: "constant.language.predicate.cocoa" + }, + { + regex: "\\b(?:NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", + token: "constant.language.predicate.cocoa" + }, + { + regex: "\\b(?:MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", + token: "keyword.operator.comparison.predicate.cocoa" + }, + { + regex: "\\bC(?:ASEINSENSITIVE|I)\\b", + token: "keyword.other.modifier.predicate.cocoa" + }, + { + regex: "\\b(?:ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", + token: "keyword.other.predicate.cocoa" + }, + { + regex: escapedConstRe, + token: "constant.character.escape.objc" + }, + { + regex: "\\\\.", + token: "invalid.illegal.unknown-escape.objc" + }, + { + token: "string", + regex: '[^"\\\\]' + }, + { + token: "punctuation.definition.string.end.objc", + regex: "\"", + next: "predicates" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "methods" : [ + { + token : "meta.function.objc", + regex : "(?=\\{|#)|;", + next : "start" + } + ] +} + for (var r in cRules) { + if (this.$rules[r]) { + if (this.$rules[r].push) + this.$rules[r].push.apply(this.$rules[r], cRules[r]); + } else { + this.$rules[r] = cRules[r]; + } + } + + this.$rules.bracketed_content = this.$rules.bracketed_content.concat( + this.$rules.start, specialVariables + ); + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(ObjectiveCHighlightRules, CHighlightRules); + +exports.ObjectiveCHighlightRules = ObjectiveCHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/objectivec",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/objectivec_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ObjectiveCHighlightRules = require("./objectivec_highlight_rules").ObjectiveCHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ObjectiveCHighlightRules; + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/objectivec"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-ocaml.js b/htdocs/includes/ace/mode-ocaml.js new file mode 100644 index 00000000000..29f26cc4f46 --- /dev/null +++ b/htdocs/includes/ace/mode-ocaml.js @@ -0,0 +1,414 @@ +ace.define("ace/mode/ocaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var OcamlHighlightRules = function() { + + var keywords = ( + "and|as|assert|begin|class|constraint|do|done|downto|else|end|" + + "exception|external|for|fun|function|functor|if|in|include|" + + "inherit|initializer|lazy|let|match|method|module|mutable|new|" + + "object|of|open|or|private|rec|sig|struct|then|to|try|type|val|" + + "virtual|when|while|with" + ); + + var builtinConstants = ("true|false"); + + var builtinFunctions = ( + "abs|abs_big_int|abs_float|abs_num|abstract_tag|accept|access|acos|add|" + + "add_available_units|add_big_int|add_buffer|add_channel|add_char|" + + "add_initializer|add_int_big_int|add_interfaces|add_num|add_string|" + + "add_substitute|add_substring|alarm|allocated_bytes|allow_only|" + + "allow_unsafe_modules|always|append|appname_get|appname_set|" + + "approx_num_exp|approx_num_fix|arg|argv|arith_status|array|" + + "array1_of_genarray|array2_of_genarray|array3_of_genarray|asin|asr|" + + "assoc|assq|at_exit|atan|atan2|auto_synchronize|background|basename|" + + "beginning_of_input|big_int_of_int|big_int_of_num|big_int_of_string|bind|" + + "bind_class|bind_tag|bits|bits_of_float|black|blit|blit_image|blue|bool|" + + "bool_of_string|bounded_full_split|bounded_split|bounded_split_delim|" + + "bprintf|break|broadcast|bscanf|button_down|c_layout|capitalize|cardinal|" + + "cardinal|catch|catch_break|ceil|ceiling_num|channel|char|char_of_int|" + + "chdir|check|check_suffix|chmod|choose|chop_extension|chop_suffix|chown|" + + "chown|chr|chroot|classify_float|clear|clear_available_units|" + + "clear_close_on_exec|clear_graph|clear_nonblock|clear_parser|" + + "close|close|closeTk|close_box|close_graph|close_in|close_in_noerr|" + + "close_out|close_out_noerr|close_process|close_process|" + + "close_process_full|close_process_in|close_process_out|close_subwindow|" + + "close_tag|close_tbox|closedir|closedir|closure_tag|code|combine|" + + "combine|combine|command|compact|compare|compare_big_int|compare_num|" + + "complex32|complex64|concat|conj|connect|contains|contains_from|contents|" + + "copy|cos|cosh|count|count|counters|create|create_alarm|create_image|" + + "create_matrix|create_matrix|create_matrix|create_object|" + + "create_object_and_run_initializers|create_object_opt|create_process|" + + "create_process|create_process_env|create_process_env|create_table|" + + "current|current_dir_name|current_point|current_x|current_y|curveto|" + + "custom_tag|cyan|data_size|decr|decr_num|default_available_units|delay|" + + "delete_alarm|descr_of_in_channel|descr_of_out_channel|destroy|diff|dim|" + + "dim1|dim2|dim3|dims|dirname|display_mode|div|div_big_int|div_num|" + + "double_array_tag|double_tag|draw_arc|draw_char|draw_circle|draw_ellipse|" + + "draw_image|draw_poly|draw_poly_line|draw_rect|draw_segments|draw_string|" + + "dummy_pos|dummy_table|dump_image|dup|dup2|elements|empty|end_of_input|" + + "environment|eprintf|epsilon_float|eq_big_int|eq_num|equal|err_formatter|" + + "error_message|escaped|establish_server|executable_name|execv|execve|execvp|" + + "execvpe|exists|exists2|exit|exp|failwith|fast_sort|fchmod|fchown|field|" + + "file|file_exists|fill|fill_arc|fill_circle|fill_ellipse|fill_poly|fill_rect|" + + "filter|final_tag|finalise|find|find_all|first_chars|firstkey|flatten|" + + "float|float32|float64|float_of_big_int|float_of_bits|float_of_int|" + + "float_of_num|float_of_string|floor|floor_num|flush|flush_all|flush_input|" + + "flush_str_formatter|fold|fold_left|fold_left2|fold_right|fold_right2|" + + "for_all|for_all2|force|force_newline|force_val|foreground|fork|" + + "format_of_string|formatter_of_buffer|formatter_of_out_channel|" + + "fortran_layout|forward_tag|fprintf|frexp|from|from_channel|from_file|" + + "from_file_bin|from_function|from_string|fscanf|fst|fstat|ftruncate|" + + "full_init|full_major|full_split|gcd_big_int|ge_big_int|ge_num|" + + "genarray_of_array1|genarray_of_array2|genarray_of_array3|get|" + + "get_all_formatter_output_functions|get_approx_printing|get_copy|" + + "get_ellipsis_text|get_error_when_null_denominator|get_floating_precision|" + + "get_formatter_output_functions|get_formatter_tag_functions|get_image|" + + "get_margin|get_mark_tags|get_max_boxes|get_max_indent|get_method|" + + "get_method_label|get_normalize_ratio|get_normalize_ratio_when_printing|" + + "get_print_tags|get_state|get_variable|getcwd|getegid|getegid|getenv|" + + "getenv|getenv|geteuid|geteuid|getgid|getgid|getgrgid|getgrgid|getgrnam|" + + "getgrnam|getgroups|gethostbyaddr|gethostbyname|gethostname|getitimer|" + + "getlogin|getpeername|getpid|getppid|getprotobyname|getprotobynumber|" + + "getpwnam|getpwuid|getservbyname|getservbyport|getsockname|getsockopt|" + + "getsockopt_float|getsockopt_int|getsockopt_optint|gettimeofday|getuid|" + + "global_replace|global_substitute|gmtime|green|grid|group_beginning|" + + "group_end|gt_big_int|gt_num|guard|handle_unix_error|hash|hash_param|" + + "hd|header_size|i|id|ignore|in_channel_length|in_channel_of_descr|incr|" + + "incr_num|index|index_from|inet_addr_any|inet_addr_of_string|infinity|" + + "infix_tag|init|init_class|input|input_binary_int|input_byte|input_char|" + + "input_line|input_value|int|int16_signed|int16_unsigned|int32|int64|" + + "int8_signed|int8_unsigned|int_of_big_int|int_of_char|int_of_float|" + + "int_of_num|int_of_string|integer_num|inter|interactive|inv|invalid_arg|" + + "is_block|is_empty|is_implicit|is_int|is_int_big_int|is_integer_num|" + + "is_relative|iter|iter2|iteri|join|junk|key_pressed|kill|kind|kprintf|" + + "kscanf|land|last_chars|layout|lazy_from_fun|lazy_from_val|lazy_is_val|" + + "lazy_tag|ldexp|le_big_int|le_num|length|lexeme|lexeme_char|lexeme_end|" + + "lexeme_end_p|lexeme_start|lexeme_start_p|lineto|link|list|listen|lnot|" + + "loadfile|loadfile_private|localtime|lock|lockf|log|log10|logand|lognot|" + + "logor|logxor|lor|lower_window|lowercase|lseek|lsl|lsr|lstat|lt_big_int|" + + "lt_num|lxor|magenta|magic|mainLoop|major|major_slice|make|make_formatter|" + + "make_image|make_lexer|make_matrix|make_self_init|map|map2|map_file|mapi|" + + "marshal|match_beginning|match_end|matched_group|matched_string|max|" + + "max_array_length|max_big_int|max_elt|max_float|max_int|max_num|" + + "max_string_length|mem|mem_assoc|mem_assq|memq|merge|min|min_big_int|" + + "min_elt|min_float|min_int|min_num|minor|minus_big_int|minus_num|" + + "minus_one|mkdir|mkfifo|mktime|mod|mod_big_int|mod_float|mod_num|modf|" + + "mouse_pos|moveto|mul|mult_big_int|mult_int_big_int|mult_num|nan|narrow|" + + "nat_of_num|nativeint|neg|neg_infinity|new_block|new_channel|new_method|" + + "new_variable|next|nextkey|nice|nice|no_scan_tag|norm|norm2|not|npeek|" + + "nth|nth_dim|num_digits_big_int|num_dims|num_of_big_int|num_of_int|" + + "num_of_nat|num_of_ratio|num_of_string|O|obj|object_tag|ocaml_version|" + + "of_array|of_channel|of_float|of_int|of_int32|of_list|of_nativeint|" + + "of_string|one|openTk|open_box|open_connection|open_graph|open_hbox|" + + "open_hovbox|open_hvbox|open_in|open_in_bin|open_in_gen|open_out|" + + "open_out_bin|open_out_gen|open_process|open_process_full|open_process_in|" + + "open_process_out|open_subwindow|open_tag|open_tbox|open_temp_file|" + + "open_vbox|opendbm|opendir|openfile|or|os_type|out_channel_length|" + + "out_channel_of_descr|output|output_binary_int|output_buffer|output_byte|" + + "output_char|output_string|output_value|over_max_boxes|pack|params|" + + "parent_dir_name|parse|parse_argv|partition|pause|peek|pipe|pixels|" + + "place|plot|plots|point_color|polar|poll|pop|pos_in|pos_out|pow|" + + "power_big_int_positive_big_int|power_big_int_positive_int|" + + "power_int_positive_big_int|power_int_positive_int|power_num|" + + "pp_close_box|pp_close_tag|pp_close_tbox|pp_force_newline|" + + "pp_get_all_formatter_output_functions|pp_get_ellipsis_text|" + + "pp_get_formatter_output_functions|pp_get_formatter_tag_functions|" + + "pp_get_margin|pp_get_mark_tags|pp_get_max_boxes|pp_get_max_indent|" + + "pp_get_print_tags|pp_open_box|pp_open_hbox|pp_open_hovbox|pp_open_hvbox|" + + "pp_open_tag|pp_open_tbox|pp_open_vbox|pp_over_max_boxes|pp_print_as|" + + "pp_print_bool|pp_print_break|pp_print_char|pp_print_cut|pp_print_float|" + + "pp_print_flush|pp_print_if_newline|pp_print_int|pp_print_newline|" + + "pp_print_space|pp_print_string|pp_print_tab|pp_print_tbreak|" + + "pp_set_all_formatter_output_functions|pp_set_ellipsis_text|" + + "pp_set_formatter_out_channel|pp_set_formatter_output_functions|" + + "pp_set_formatter_tag_functions|pp_set_margin|pp_set_mark_tags|" + + "pp_set_max_boxes|pp_set_max_indent|pp_set_print_tags|pp_set_tab|" + + "pp_set_tags|pred|pred_big_int|pred_num|prerr_char|prerr_endline|" + + "prerr_float|prerr_int|prerr_newline|prerr_string|print|print_as|" + + "print_bool|print_break|print_char|print_cut|print_endline|print_float|" + + "print_flush|print_if_newline|print_int|print_newline|print_space|" + + "print_stat|print_string|print_tab|print_tbreak|printf|prohibit|" + + "public_method_label|push|putenv|quo_num|quomod_big_int|quote|raise|" + + "raise_window|ratio_of_num|rcontains_from|read|read_float|read_int|" + + "read_key|read_line|readdir|readdir|readlink|really_input|receive|recv|" + + "recvfrom|red|ref|regexp|regexp_case_fold|regexp_string|" + + "regexp_string_case_fold|register|register_exception|rem|remember_mode|" + + "remove|remove_assoc|remove_assq|rename|replace|replace_first|" + + "replace_matched|repr|reset|reshape|reshape_1|reshape_2|reshape_3|rev|" + + "rev_append|rev_map|rev_map2|rewinddir|rgb|rhs_end|rhs_end_pos|rhs_start|" + + "rhs_start_pos|rindex|rindex_from|rlineto|rmdir|rmoveto|round_num|" + + "run_initializers|run_initializers_opt|scanf|search_backward|" + + "search_forward|seek_in|seek_out|select|self|self_init|send|sendto|set|" + + "set_all_formatter_output_functions|set_approx_printing|" + + "set_binary_mode_in|set_binary_mode_out|set_close_on_exec|" + + "set_close_on_exec|set_color|set_ellipsis_text|" + + "set_error_when_null_denominator|set_field|set_floating_precision|" + + "set_font|set_formatter_out_channel|set_formatter_output_functions|" + + "set_formatter_tag_functions|set_line_width|set_margin|set_mark_tags|" + + "set_max_boxes|set_max_indent|set_method|set_nonblock|set_nonblock|" + + "set_normalize_ratio|set_normalize_ratio_when_printing|set_print_tags|" + + "set_signal|set_state|set_tab|set_tag|set_tags|set_text_size|" + + "set_window_title|setgid|setgid|setitimer|setitimer|setsid|setsid|" + + "setsockopt|setsockopt|setsockopt_float|setsockopt_float|setsockopt_int|" + + "setsockopt_int|setsockopt_optint|setsockopt_optint|setuid|setuid|" + + "shift_left|shift_left|shift_left|shift_right|shift_right|shift_right|" + + "shift_right_logical|shift_right_logical|shift_right_logical|show_buckets|" + + "shutdown|shutdown|shutdown_connection|shutdown_connection|sigabrt|" + + "sigalrm|sigchld|sigcont|sigfpe|sighup|sigill|sigint|sigkill|sign_big_int|" + + "sign_num|signal|signal|sigpending|sigpending|sigpipe|sigprocmask|" + + "sigprocmask|sigprof|sigquit|sigsegv|sigstop|sigsuspend|sigsuspend|" + + "sigterm|sigtstp|sigttin|sigttou|sigusr1|sigusr2|sigvtalrm|sin|singleton|" + + "sinh|size|size|size_x|size_y|sleep|sleep|sleep|slice_left|slice_left|" + + "slice_left_1|slice_left_2|slice_right|slice_right|slice_right_1|" + + "slice_right_2|snd|socket|socket|socket|socketpair|socketpair|sort|sound|" + + "split|split_delim|sprintf|sprintf|sqrt|sqrt|sqrt_big_int|square_big_int|" + + "square_num|sscanf|stable_sort|stable_sort|stable_sort|stable_sort|stable_sort|" + + "stable_sort|stat|stat|stat|stat|stat|stats|stats|std_formatter|stdbuf|" + + "stderr|stderr|stderr|stdib|stdin|stdin|stdin|stdout|stdout|stdout|" + + "str_formatter|string|string_after|string_before|string_match|" + + "string_of_big_int|string_of_bool|string_of_float|string_of_format|" + + "string_of_inet_addr|string_of_inet_addr|string_of_int|string_of_num|" + + "string_partial_match|string_tag|sub|sub|sub_big_int|sub_left|sub_num|" + + "sub_right|subset|subset|substitute_first|substring|succ|succ|" + + "succ|succ|succ_big_int|succ_num|symbol_end|symbol_end_pos|symbol_start|" + + "symbol_start_pos|symlink|symlink|sync|synchronize|system|system|system|" + + "tag|take|tan|tanh|tcdrain|tcdrain|tcflow|tcflow|tcflush|tcflush|" + + "tcgetattr|tcgetattr|tcsendbreak|tcsendbreak|tcsetattr|tcsetattr|" + + "temp_file|text_size|time|time|time|timed_read|timed_write|times|times|" + + "tl|tl|tl|to_buffer|to_channel|to_float|to_hex|to_int|to_int32|to_list|" + + "to_list|to_list|to_nativeint|to_string|to_string|to_string|to_string|" + + "to_string|top|top|total_size|transfer|transp|truncate|truncate|truncate|" + + "truncate|truncate|truncate|try_lock|umask|umask|uncapitalize|uncapitalize|" + + "uncapitalize|union|union|unit_big_int|unlink|unlink|unlock|unmarshal|" + + "unsafe_blit|unsafe_fill|unsafe_get|unsafe_get|unsafe_set|unsafe_set|" + + "update|uppercase|uppercase|uppercase|uppercase|usage|utimes|utimes|wait|" + + "wait|wait|wait|wait_next_event|wait_pid|wait_read|wait_signal|" + + "wait_timed_read|wait_timed_write|wait_write|waitpid|white|" + + "widen|window_id|word_size|wrap|wrap_abort|write|yellow|yield|zero|zero_big_int|" + + + "Arg|Arith_status|Array|Array1|Array2|Array3|ArrayLabels|Big_int|Bigarray|" + + "Buffer|Callback|CamlinternalOO|Char|Complex|Condition|Dbm|Digest|Dynlink|" + + "Event|Filename|Format|Gc|Genarray|Genlex|Graphics|GraphicsX11|Hashtbl|" + + "Int32|Int64|LargeFile|Lazy|Lexing|List|ListLabels|Make|Map|Marshal|" + + "MoreLabels|Mutex|Nativeint|Num|Obj|Oo|Parsing|Pervasives|Printexc|" + + "Printf|Queue|Random|Scanf|Scanning|Set|Sort|Stack|State|StdLabels|Str|" + + "Stream|String|StringLabels|Sys|Thread|ThreadUnix|Tk|Unix|UnixLabels|Weak" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": builtinConstants, + "support.function": builtinFunctions + }, "identifier"); + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : '\\(\\*.*?\\*\\)\\s*?$' + }, + { + token : "comment", + regex : '\\(\\*.*', + next : "comment" + }, + { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, + { + token : "string", // single char + regex : "'.'" + }, + { + token : "string", // " string + regex : '"', + next : "qstring" + }, + { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, + { + token : "constant.numeric", // float + regex : floatNumber + }, + { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, + { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, + { + token : "keyword.operator", + regex : "\\+\\.|\\-\\.|\\*\\.|\\/\\.|#|;;|\\+|\\-|\\*|\\*\\*\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|<-|=" + }, + { + token : "paren.lparen", + regex : "[[({]" + }, + { + token : "paren.rparen", + regex : "[\\])}]" + }, + { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\)", + next : "start" + }, + { + defaultToken : "comment" + } + ], + + "qstring" : [ + { + token : "string", + regex : '"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ] + }; +}; + +oop.inherits(OcamlHighlightRules, TextHighlightRules); + +exports.OcamlHighlightRules = OcamlHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/ocaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ocaml_highlight_rules","ace/mode/matching_brace_outdent","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var OcamlHighlightRules = require("./ocaml_highlight_rules").OcamlHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = OcamlHighlightRules; + this.$behaviour = this.$defaultBehaviour; + + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, TextMode); + +var indenter = /(?:[({[=:]|[-=]>|\b(?:else|try|with))\s*$/; + +(function() { + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var i, line; + var outdent = true; + var re = /^\s*\(\*(.*)\*\)/; + + for (i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + var range = new Range(0, 0, 0, 0); + for (i=startRow; i<= endRow; i++) { + line = doc.getLine(i); + range.start.row = i; + range.end.row = i; + range.end.column = line.length; + + doc.replace(range, outdent ? line.match(re)[1] : "(*" + line + "*)"); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + + if (!(tokens.length && tokens[tokens.length - 1].type === 'comment') && + state === 'start' && indenter.test(line)) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/ocaml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-pascal.js b/htdocs/includes/ace/mode-pascal.js new file mode 100644 index 00000000000..9ccd1ed5e0c --- /dev/null +++ b/htdocs/includes/ace/mode-pascal.js @@ -0,0 +1,198 @@ +ace.define("ace/mode/pascal_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PascalHighlightRules = function() { + + this.$rules = { start: + [ { caseInsensitive: true, + token: 'keyword.control.pascal', + regex: '\\b(?:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\\b' }, + { caseInsensitive: true, + token: + [ 'variable.pascal', "text", + 'storage.type.prototype.pascal', + 'entity.name.function.prototype.pascal' ], + regex: '\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?(?=(?:\\(.*?\\))?;\\s*(?:attribute|forward|external))' }, + { caseInsensitive: true, + token: + [ 'variable.pascal', "text", + 'storage.type.function.pascal', + 'entity.name.function.pascal' ], + regex: '\\b(function|procedure)(\\s+)(\\w+)(\\.\\w+)?' }, + { token: 'constant.numeric.pascal', + regex: '\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b' }, + { token: 'punctuation.definition.comment.pascal', + regex: '--.*$', + push_: + [ { token: 'comment.line.double-dash.pascal.one', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.double-dash.pascal.one' } ] }, + { token: 'punctuation.definition.comment.pascal', + regex: '//.*$', + push_: + [ { token: 'comment.line.double-slash.pascal.two', + regex: '$', + next: 'pop' }, + { defaultToken: 'comment.line.double-slash.pascal.two' } ] }, + { token: 'punctuation.definition.comment.pascal', + regex: '\\(\\*', + push: + [ { token: 'punctuation.definition.comment.pascal', + regex: '\\*\\)', + next: 'pop' }, + { defaultToken: 'comment.block.pascal.one' } ] }, + { token: 'punctuation.definition.comment.pascal', + regex: '\\{', + push: + [ { token: 'punctuation.definition.comment.pascal', + regex: '\\}', + next: 'pop' }, + { defaultToken: 'comment.block.pascal.two' } ] }, + { token: 'punctuation.definition.string.begin.pascal', + regex: '"', + push: + [ { token: 'constant.character.escape.pascal', regex: '\\\\.' }, + { token: 'punctuation.definition.string.end.pascal', + regex: '"', + next: 'pop' }, + { defaultToken: 'string.quoted.double.pascal' } ] + }, + { token: 'punctuation.definition.string.begin.pascal', + regex: '\'', + push: + [ { token: 'constant.character.escape.apostrophe.pascal', + regex: '\'\'' }, + { token: 'punctuation.definition.string.end.pascal', + regex: '\'', + next: 'pop' }, + { defaultToken: 'string.quoted.single.pascal' } ] }, + { token: 'keyword.operator', + regex: '[+\\-;,/*%]|:=|=' } ] } + + this.normalizeRules(); +}; + +oop.inherits(PascalHighlightRules, TextHighlightRules); + +exports.PascalHighlightRules = PascalHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/pascal",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pascal_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PascalHighlightRules = require("./pascal_highlight_rules").PascalHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = PascalHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ["--", "//"]; + this.blockComment = [ + {start: "(*", end: "*)"}, + {start: "{", end: "}"} + ]; + + this.$id = "ace/mode/pascal"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-perl.js b/htdocs/includes/ace/mode-perl.js new file mode 100644 index 00000000000..768c538331a --- /dev/null +++ b/htdocs/includes/ace/mode-perl.js @@ -0,0 +1,373 @@ +ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PerlHighlightRules = function() { + + var keywords = ( + "base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" + + "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars" + ); + + var buildinConstants = ("ARGV|ENV|INC|SIG"); + + var builtinFunctions = ( + "getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" + + "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" + + "getpeername|setpriority|getprotoent|setprotoent|getpriority|" + + "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" + + "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" + + "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" + + "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" + + "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" + + "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" + + "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" + + "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" + + "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" + + "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" + + "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" + + "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" + + "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" + + "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" + + "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" + + "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" + + "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" + + "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" + + "map|die|uc|lc|do" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": builtinFunctions + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment.doc", + regex : "^=(?:begin|item)\\b", + next : "block_comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0x[0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "%#|\\$#|\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)" + }, { + token : "comment", + regex : "#.*$" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "block_comment": [ + { + token: "comment.doc", + regex: "^=cut\\b", + next: "start" + }, + { + defaultToken: "comment.doc" + } + ] + }; +}; + +oop.inherits(PerlHighlightRules, TextHighlightRules); + +exports.PerlHighlightRules = PerlHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/perl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/perl_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = PerlHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode({start: "^=(begin|item)\\b", end: "^=(cut)\\b"}); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + this.blockComment = [ + {start: "=begin", end: "=cut", lineStartOnly: true}, + {start: "=item", end: "=cut", lineStartOnly: true} + ]; + + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/perl"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-pgsql.js b/htdocs/includes/ace/mode-pgsql.js new file mode 100644 index 00000000000..189f17a559b --- /dev/null +++ b/htdocs/includes/ace/mode-pgsql.js @@ -0,0 +1,1500 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/perl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PerlHighlightRules = function() { + + var keywords = ( + "base|constant|continue|else|elsif|for|foreach|format|goto|if|last|local|my|next|" + + "no|package|parent|redo|require|scalar|sub|unless|until|while|use|vars" + ); + + var buildinConstants = ("ARGV|ENV|INC|SIG"); + + var builtinFunctions = ( + "getprotobynumber|getprotobyname|getservbyname|gethostbyaddr|" + + "gethostbyname|getservbyport|getnetbyaddr|getnetbyname|getsockname|" + + "getpeername|setpriority|getprotoent|setprotoent|getpriority|" + + "endprotoent|getservent|setservent|endservent|sethostent|socketpair|" + + "getsockopt|gethostent|endhostent|setsockopt|setnetent|quotemeta|" + + "localtime|prototype|getnetent|endnetent|rewinddir|wantarray|getpwuid|" + + "closedir|getlogin|readlink|endgrent|getgrgid|getgrnam|shmwrite|" + + "shutdown|readline|endpwent|setgrent|readpipe|formline|truncate|" + + "dbmclose|syswrite|setpwent|getpwnam|getgrent|getpwent|ucfirst|sysread|" + + "setpgrp|shmread|sysseek|sysopen|telldir|defined|opendir|connect|" + + "lcfirst|getppid|binmode|syscall|sprintf|getpgrp|readdir|seekdir|" + + "waitpid|reverse|unshift|symlink|dbmopen|semget|msgrcv|rename|listen|" + + "chroot|msgsnd|shmctl|accept|unpack|exists|fileno|shmget|system|" + + "unlink|printf|gmtime|msgctl|semctl|values|rindex|substr|splice|" + + "length|msgget|select|socket|return|caller|delete|alarm|ioctl|index|" + + "undef|lstat|times|srand|chown|fcntl|close|write|umask|rmdir|study|" + + "sleep|chomp|untie|print|utime|mkdir|atan2|split|crypt|flock|chmod|" + + "BEGIN|bless|chdir|semop|shift|reset|link|stat|chop|grep|fork|dump|" + + "join|open|tell|pipe|exit|glob|warn|each|bind|sort|pack|eval|push|" + + "keys|getc|kill|seek|sqrt|send|wait|rand|tied|read|time|exec|recv|" + + "eof|chr|int|ord|exp|pos|pop|sin|log|abs|oct|hex|tie|cos|vec|END|ref|" + + "map|die|uc|lc|do" + ); + + var keywordMapper = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": builtinFunctions + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment.doc", + regex : "^=(?:begin|item)\\b", + next : "block_comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0x[0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "%#|\\$#|\\.\\.\\.|\\|\\|=|>>=|<<=|<=>|&&=|=>|!~|\\^=|&=|\\|=|\\.=|x=|%=|\\/=|\\*=|\\-=|\\+=|=~|\\*\\*|\\-\\-|\\.\\.|\\|\\||&&|\\+\\+|\\->|!=|==|>=|<=|>>|<<|,|=|\\?\\:|\\^|\\||x|%|\\/|\\*|<|&|\\\\|~|!|>|\\.|\\-|\\+|\\-C|\\-b|\\-S|\\-u|\\-t|\\-p|\\-l|\\-d|\\-f|\\-g|\\-s|\\-z|\\-k|\\-e|\\-O|\\-T|\\-B|\\-M|\\-A|\\-X|\\-W|\\-c|\\-R|\\-o|\\-x|\\-w|\\-r|\\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)" + }, { + token : "comment", + regex : "#.*$" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "block_comment": [ + { + token: "comment.doc", + regex: "^=cut\\b", + next: "start" + }, + { + defaultToken: "comment.doc" + } + ] + }; +}; + +oop.inherits(PerlHighlightRules, TextHighlightRules); + +exports.PerlHighlightRules = PerlHighlightRules; +}); + +ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PythonHighlightRules = function() { + + var keywords = ( + "and|as|assert|break|class|continue|def|del|elif|else|except|exec|" + + "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" + + "raise|return|try|while|with|yield" + ); + + var builtinConstants = ( + "True|False|None|NotImplemented|Ellipsis|__debug__" + ); + + var builtinFunctions = ( + "abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" + + "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" + + "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" + + "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" + + "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" + + "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" + + "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" + + "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern" + ); + var keywordMapper = this.createKeywordMapper({ + "invalid.deprecated": "debugger", + "support.function": builtinFunctions, + "constant.language": builtinConstants, + "keyword": keywords + }, "identifier"); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "string", // multi line """ string start + regex : strPre + '"{3}', + next : "qqstring3" + }, { + token : "string", // " string + regex : strPre + '"(?=.)', + next : "qqstring" + }, { + token : "string", // multi line ''' string start + regex : strPre + "'{3}", + next : "qstring3" + }, { + token : "string", // ' string + regex : strPre + "'(?=.)", + next : "qstring" + }, { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + "qqstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line """ string end + regex : '"{3}', + next : "start" + }, { + defaultToken : "string" + } ], + "qstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line ''' string end + regex : "'{3}", + next : "start" + }, { + defaultToken : "string" + } ], + "qqstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken: "string" + }], + "qstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qstring" + }, { + token : "string", + regex : "'|$", + next : "start" + }, { + defaultToken: "string" + }] + }; +}; + +oop.inherits(PythonHighlightRules, TextHighlightRules); + +exports.PythonHighlightRules = PythonHighlightRules; +}); + +ace.define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JsonHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "variable", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)' + }, { + token : "string", // single line + regex : '"', + next : "string" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : "text", // single quoted strings are not allowed + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "comment", // comments are not allowed, but who cares? + regex : "\\/\\/.*$" + }, { + token : "comment.start", // comments are not allowed, but who cares? + regex : "\\/\\*", + next : "comment" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "string" : [ + { + token : "constant.language.escape", + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/ + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken : "string" + } + ], + "comment" : [ + { + token : "comment.end", // comments are not allowed, but who cares? + regex : "\\*\\/", + next : "start" + }, { + defaultToken: "comment" + } + ] + }; + +}; + +oop.inherits(JsonHighlightRules, TextHighlightRules); + +exports.JsonHighlightRules = JsonHighlightRules; +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/pgsql_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/perl_highlight_rules","ace/mode/python_highlight_rules","ace/mode/json_highlight_rules","ace/mode/javascript_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var PerlHighlightRules = require("./perl_highlight_rules").PerlHighlightRules; +var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules; +var JsonHighlightRules = require("./json_highlight_rules").JsonHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; + +var PgsqlHighlightRules = function() { + var keywords = ( + "abort|absolute|abstime|access|aclitem|action|add|admin|after|aggregate|all|also|alter|always|" + + "analyse|analyze|and|any|anyarray|anyelement|anyenum|anynonarray|anyrange|array|as|asc|" + + "assertion|assignment|asymmetric|at|attribute|authorization|backward|before|begin|between|" + + "bigint|binary|bit|bool|boolean|both|box|bpchar|by|bytea|cache|called|cascade|cascaded|case|cast|" + + "catalog|chain|char|character|characteristics|check|checkpoint|cid|cidr|circle|class|close|" + + "cluster|coalesce|collate|collation|column|comment|comments|commit|committed|concurrently|" + + "configuration|connection|constraint|constraints|content|continue|conversion|copy|cost|" + + "create|cross|cstring|csv|current|current_catalog|current_date|current_role|" + + "current_schema|current_time|current_timestamp|current_user|cursor|cycle|data|database|" + + "date|daterange|day|deallocate|dec|decimal|declare|default|defaults|deferrable|deferred|" + + "definer|delete|delimiter|delimiters|desc|dictionary|disable|discard|distinct|do|document|" + + "domain|double|drop|each|else|enable|encoding|encrypted|end|enum|escape|event|event_trigger|" + + "except|exclude|excluding|exclusive|execute|exists|explain|extension|external|extract|false|" + + "family|fdw_handler|fetch|first|float|float4|float8|following|for|force|foreign|forward|" + + "freeze|from|full|function|functions|global|grant|granted|greatest|group|gtsvector|handler|" + + "having|header|hold|hour|identity|if|ilike|immediate|immutable|implicit|in|including|" + + "increment|index|indexes|inet|inherit|inherits|initially|inline|inner|inout|input|" + + "insensitive|insert|instead|int|int2|int2vector|int4|int4range|int8|int8range|integer|" + + "internal|intersect|interval|into|invoker|is|isnull|isolation|join|json|key|label|language|" + + "language_handler|large|last|lateral|lc_collate|lc_ctype|leading|leakproof|least|left|level|" + + "like|limit|line|listen|load|local|localtime|localtimestamp|location|lock|lseg|macaddr|" + + "mapping|match|materialized|maxvalue|minute|minvalue|mode|money|month|move|name|names|" + + "national|natural|nchar|next|no|none|not|nothing|notify|notnull|nowait|null|nullif|nulls|" + + "numeric|numrange|object|of|off|offset|oid|oids|oidvector|on|only|opaque|operator|option|" + + "options|or|order|out|outer|over|overlaps|overlay|owned|owner|parser|partial|partition|passing|" + + "password|path|pg_attribute|pg_auth_members|pg_authid|pg_class|pg_database|pg_node_tree|" + + "pg_proc|pg_type|placing|plans|point|polygon|position|preceding|precision|prepare|prepared|" + + "preserve|primary|prior|privileges|procedural|procedure|program|quote|range|read|real|" + + "reassign|recheck|record|recursive|ref|refcursor|references|refresh|regclass|regconfig|" + + "regdictionary|regoper|regoperator|regproc|regprocedure|regtype|reindex|relative|release|" + + "reltime|rename|repeatable|replace|replica|reset|restart|restrict|returning|returns|revoke|" + + "right|role|rollback|row|rows|rule|savepoint|schema|scroll|search|second|security|select|" + + "sequence|sequences|serializable|server|session|session_user|set|setof|share|show|similar|" + + "simple|smallint|smgr|snapshot|some|stable|standalone|start|statement|statistics|stdin|" + + "stdout|storage|strict|strip|substring|symmetric|sysid|system|table|tables|tablespace|temp|" + + "template|temporary|text|then|tid|time|timestamp|timestamptz|timetz|tinterval|to|trailing|" + + "transaction|treat|trigger|trim|true|truncate|trusted|tsquery|tsrange|tstzrange|tsvector|" + + "txid_snapshot|type|types|unbounded|uncommitted|unencrypted|union|unique|unknown|unlisten|" + + "unlogged|until|update|user|using|uuid|vacuum|valid|validate|validator|value|values|varbit|" + + "varchar|variadic|varying|verbose|version|view|void|volatile|when|where|whitespace|window|" + + "with|without|work|wrapper|write|xid|xml|xmlattributes|xmlconcat|xmlelement|xmlexists|" + + "xmlforest|xmlparse|xmlpi|xmlroot|xmlserialize|year|yes|zone" + ); + + + var builtinFunctions = ( + "RI_FKey_cascade_del|RI_FKey_cascade_upd|RI_FKey_check_ins|RI_FKey_check_upd|" + + "RI_FKey_noaction_del|RI_FKey_noaction_upd|RI_FKey_restrict_del|RI_FKey_restrict_upd|" + + "RI_FKey_setdefault_del|RI_FKey_setdefault_upd|RI_FKey_setnull_del|" + + "RI_FKey_setnull_upd|abbrev|abs|abstime|abstimeeq|abstimege|abstimegt|abstimein|abstimele|" + + "abstimelt|abstimene|abstimeout|abstimerecv|abstimesend|aclcontains|acldefault|" + + "aclexplode|aclinsert|aclitemeq|aclitemin|aclitemout|aclremove|acos|age|any_in|any_out|" + + "anyarray_in|anyarray_out|anyarray_recv|anyarray_send|anyelement_in|anyelement_out|" + + "anyenum_in|anyenum_out|anynonarray_in|anynonarray_out|anyrange_in|anyrange_out|" + + "anytextcat|area|areajoinsel|areasel|array_agg|array_agg_finalfn|array_agg_transfn|" + + "array_append|array_cat|array_dims|array_eq|array_fill|array_ge|array_gt|array_in|" + + "array_larger|array_le|array_length|array_lower|array_lt|array_ndims|array_ne|array_out|" + + "array_prepend|array_recv|array_remove|array_replace|array_send|array_smaller|" + + "array_to_json|array_to_string|array_typanalyze|array_upper|arraycontained|" + + "arraycontains|arraycontjoinsel|arraycontsel|arrayoverlap|ascii|ascii_to_mic|" + + "ascii_to_utf8|asin|atan|atan2|avg|big5_to_euc_tw|big5_to_mic|big5_to_utf8|bit_and|bit_in|" + + "bit_length|bit_or|bit_out|bit_recv|bit_send|bitand|bitcat|bitcmp|biteq|bitge|bitgt|bitle|" + + "bitlt|bitne|bitnot|bitor|bitshiftleft|bitshiftright|bittypmodin|bittypmodout|bitxor|bool|" + + "bool_and|bool_or|booland_statefunc|booleq|boolge|boolgt|boolin|boolle|boollt|boolne|" + + "boolor_statefunc|boolout|boolrecv|boolsend|box|box_above|box_above_eq|box_add|box_below|" + + "box_below_eq|box_center|box_contain|box_contain_pt|box_contained|box_distance|box_div|" + + "box_eq|box_ge|box_gt|box_in|box_intersect|box_le|box_left|box_lt|box_mul|box_out|" + + "box_overabove|box_overbelow|box_overlap|box_overleft|box_overright|box_recv|box_right|" + + "box_same|box_send|box_sub|bpchar_larger|bpchar_pattern_ge|bpchar_pattern_gt|" + + "bpchar_pattern_le|bpchar_pattern_lt|bpchar_smaller|bpcharcmp|bpchareq|bpcharge|" + + "bpchargt|bpchariclike|bpcharicnlike|bpcharicregexeq|bpcharicregexne|bpcharin|bpcharle|" + + "bpcharlike|bpcharlt|bpcharne|bpcharnlike|bpcharout|bpcharrecv|bpcharregexeq|" + + "bpcharregexne|bpcharsend|bpchartypmodin|bpchartypmodout|broadcast|btabstimecmp|" + + "btarraycmp|btbeginscan|btboolcmp|btbpchar_pattern_cmp|btbuild|btbuildempty|" + + "btbulkdelete|btcanreturn|btcharcmp|btcostestimate|btendscan|btfloat48cmp|btfloat4cmp|" + + "btfloat4sortsupport|btfloat84cmp|btfloat8cmp|btfloat8sortsupport|btgetbitmap|" + + "btgettuple|btinsert|btint24cmp|btint28cmp|btint2cmp|btint2sortsupport|btint42cmp|" + + "btint48cmp|btint4cmp|btint4sortsupport|btint82cmp|btint84cmp|btint8cmp|" + + "btint8sortsupport|btmarkpos|btnamecmp|btnamesortsupport|btoidcmp|btoidsortsupport|" + + "btoidvectorcmp|btoptions|btrecordcmp|btreltimecmp|btrescan|btrestrpos|btrim|" + + "bttext_pattern_cmp|bttextcmp|bttidcmp|bttintervalcmp|btvacuumcleanup|" + + "bytea_string_agg_finalfn|bytea_string_agg_transfn|byteacat|byteacmp|byteaeq|byteage|" + + "byteagt|byteain|byteale|bytealike|bytealt|byteane|byteanlike|byteaout|bytearecv|byteasend|" + + "cash_cmp|cash_div_cash|cash_div_flt4|cash_div_flt8|cash_div_int2|cash_div_int4|cash_eq|" + + "cash_ge|cash_gt|cash_in|cash_le|cash_lt|cash_mi|cash_mul_flt4|cash_mul_flt8|" + + "cash_mul_int2|cash_mul_int4|cash_ne|cash_out|cash_pl|cash_recv|cash_send|cash_words|" + + "cashlarger|cashsmaller|cbrt|ceil|ceiling|center|char|char_length|character_length|chareq|" + + "charge|chargt|charin|charle|charlt|charne|charout|charrecv|charsend|chr|cideq|cidin|cidout|" + + "cidr|cidr_in|cidr_out|cidr_recv|cidr_send|cidrecv|cidsend|circle|circle_above|" + + "circle_add_pt|circle_below|circle_center|circle_contain|circle_contain_pt|" + + "circle_contained|circle_distance|circle_div_pt|circle_eq|circle_ge|circle_gt|circle_in|" + + "circle_le|circle_left|circle_lt|circle_mul_pt|circle_ne|circle_out|circle_overabove|" + + "circle_overbelow|circle_overlap|circle_overleft|circle_overright|circle_recv|" + + "circle_right|circle_same|circle_send|circle_sub_pt|clock_timestamp|close_lb|close_ls|" + + "close_lseg|close_pb|close_pl|close_ps|close_sb|close_sl|col_description|concat|concat_ws|" + + "contjoinsel|contsel|convert|convert_from|convert_to|corr|cos|cot|count|covar_pop|" + + "covar_samp|cstring_in|cstring_out|cstring_recv|cstring_send|cume_dist|current_database|" + + "current_query|current_schema|current_schemas|current_setting|current_user|currtid|" + + "currtid2|currval|cursor_to_xml|cursor_to_xmlschema|database_to_xml|" + + "database_to_xml_and_xmlschema|database_to_xmlschema|date|date_cmp|date_cmp_timestamp|" + + "date_cmp_timestamptz|date_eq|date_eq_timestamp|date_eq_timestamptz|date_ge|" + + "date_ge_timestamp|date_ge_timestamptz|date_gt|date_gt_timestamp|date_gt_timestamptz|" + + "date_in|date_larger|date_le|date_le_timestamp|date_le_timestamptz|date_lt|" + + "date_lt_timestamp|date_lt_timestamptz|date_mi|date_mi_interval|date_mii|date_ne|" + + "date_ne_timestamp|date_ne_timestamptz|date_out|date_part|date_pl_interval|date_pli|" + + "date_recv|date_send|date_smaller|date_sortsupport|date_trunc|daterange|" + + "daterange_canonical|daterange_subdiff|datetime_pl|datetimetz_pl|dcbrt|decode|degrees|" + + "dense_rank|dexp|diagonal|diameter|dispell_init|dispell_lexize|dist_cpoly|dist_lb|dist_pb|" + + "dist_pc|dist_pl|dist_ppath|dist_ps|dist_sb|dist_sl|div|dlog1|dlog10|domain_in|domain_recv|" + + "dpow|dround|dsimple_init|dsimple_lexize|dsnowball_init|dsnowball_lexize|dsqrt|" + + "dsynonym_init|dsynonym_lexize|dtrunc|elem_contained_by_range|encode|enum_cmp|enum_eq|" + + "enum_first|enum_ge|enum_gt|enum_in|enum_larger|enum_last|enum_le|enum_lt|enum_ne|enum_out|" + + "enum_range|enum_recv|enum_send|enum_smaller|eqjoinsel|eqsel|euc_cn_to_mic|" + + "euc_cn_to_utf8|euc_jis_2004_to_shift_jis_2004|euc_jis_2004_to_utf8|euc_jp_to_mic|" + + "euc_jp_to_sjis|euc_jp_to_utf8|euc_kr_to_mic|euc_kr_to_utf8|euc_tw_to_big5|" + + "euc_tw_to_mic|euc_tw_to_utf8|event_trigger_in|event_trigger_out|every|exp|factorial|" + + "family|fdw_handler_in|fdw_handler_out|first_value|float4|float48div|float48eq|float48ge|" + + "float48gt|float48le|float48lt|float48mi|float48mul|float48ne|float48pl|float4_accum|" + + "float4abs|float4div|float4eq|float4ge|float4gt|float4in|float4larger|float4le|float4lt|" + + "float4mi|float4mul|float4ne|float4out|float4pl|float4recv|float4send|float4smaller|" + + "float4um|float4up|float8|float84div|float84eq|float84ge|float84gt|float84le|float84lt|" + + "float84mi|float84mul|float84ne|float84pl|float8_accum|float8_avg|float8_corr|" + + "float8_covar_pop|float8_covar_samp|float8_regr_accum|float8_regr_avgx|" + + "float8_regr_avgy|float8_regr_intercept|float8_regr_r2|float8_regr_slope|" + + "float8_regr_sxx|float8_regr_sxy|float8_regr_syy|float8_stddev_pop|float8_stddev_samp|" + + "float8_var_pop|float8_var_samp|float8abs|float8div|float8eq|float8ge|float8gt|float8in|" + + "float8larger|float8le|float8lt|float8mi|float8mul|float8ne|float8out|float8pl|float8recv|" + + "float8send|float8smaller|float8um|float8up|floor|flt4_mul_cash|flt8_mul_cash|" + + "fmgr_c_validator|fmgr_internal_validator|fmgr_sql_validator|format|format_type|" + + "gb18030_to_utf8|gbk_to_utf8|generate_series|generate_subscripts|get_bit|get_byte|" + + "get_current_ts_config|getdatabaseencoding|getpgusername|gin_cmp_prefix|" + + "gin_cmp_tslexeme|gin_extract_tsquery|gin_extract_tsvector|gin_tsquery_consistent|" + + "ginarrayconsistent|ginarrayextract|ginbeginscan|ginbuild|ginbuildempty|ginbulkdelete|" + + "gincostestimate|ginendscan|gingetbitmap|gininsert|ginmarkpos|ginoptions|" + + "ginqueryarrayextract|ginrescan|ginrestrpos|ginvacuumcleanup|gist_box_compress|" + + "gist_box_consistent|gist_box_decompress|gist_box_penalty|gist_box_picksplit|" + + "gist_box_same|gist_box_union|gist_circle_compress|gist_circle_consistent|" + + "gist_point_compress|gist_point_consistent|gist_point_distance|gist_poly_compress|" + + "gist_poly_consistent|gistbeginscan|gistbuild|gistbuildempty|gistbulkdelete|" + + "gistcostestimate|gistendscan|gistgetbitmap|gistgettuple|gistinsert|gistmarkpos|" + + "gistoptions|gistrescan|gistrestrpos|gistvacuumcleanup|gtsquery_compress|" + + "gtsquery_consistent|gtsquery_decompress|gtsquery_penalty|gtsquery_picksplit|" + + "gtsquery_same|gtsquery_union|gtsvector_compress|gtsvector_consistent|" + + "gtsvector_decompress|gtsvector_penalty|gtsvector_picksplit|gtsvector_same|" + + "gtsvector_union|gtsvectorin|gtsvectorout|has_any_column_privilege|" + + "has_column_privilege|has_database_privilege|has_foreign_data_wrapper_privilege|" + + "has_function_privilege|has_language_privilege|has_schema_privilege|" + + "has_sequence_privilege|has_server_privilege|has_table_privilege|" + + "has_tablespace_privilege|has_type_privilege|hash_aclitem|hash_array|hash_numeric|" + + "hash_range|hashbeginscan|hashbpchar|hashbuild|hashbuildempty|hashbulkdelete|hashchar|" + + "hashcostestimate|hashendscan|hashenum|hashfloat4|hashfloat8|hashgetbitmap|hashgettuple|" + + "hashinet|hashinsert|hashint2|hashint2vector|hashint4|hashint8|hashmacaddr|hashmarkpos|" + + "hashname|hashoid|hashoidvector|hashoptions|hashrescan|hashrestrpos|hashtext|" + + "hashvacuumcleanup|hashvarlena|height|host|hostmask|iclikejoinsel|iclikesel|" + + "icnlikejoinsel|icnlikesel|icregexeqjoinsel|icregexeqsel|icregexnejoinsel|icregexnesel|" + + "inet_client_addr|inet_client_port|inet_in|inet_out|inet_recv|inet_send|" + + "inet_server_addr|inet_server_port|inetand|inetmi|inetmi_int8|inetnot|inetor|inetpl|" + + "initcap|int2|int24div|int24eq|int24ge|int24gt|int24le|int24lt|int24mi|int24mul|int24ne|" + + "int24pl|int28div|int28eq|int28ge|int28gt|int28le|int28lt|int28mi|int28mul|int28ne|int28pl|" + + "int2_accum|int2_avg_accum|int2_mul_cash|int2_sum|int2abs|int2and|int2div|int2eq|int2ge|" + + "int2gt|int2in|int2larger|int2le|int2lt|int2mi|int2mod|int2mul|int2ne|int2not|int2or|int2out|" + + "int2pl|int2recv|int2send|int2shl|int2shr|int2smaller|int2um|int2up|int2vectoreq|" + + "int2vectorin|int2vectorout|int2vectorrecv|int2vectorsend|int2xor|int4|int42div|int42eq|" + + "int42ge|int42gt|int42le|int42lt|int42mi|int42mul|int42ne|int42pl|int48div|int48eq|int48ge|" + + "int48gt|int48le|int48lt|int48mi|int48mul|int48ne|int48pl|int4_accum|int4_avg_accum|" + + "int4_mul_cash|int4_sum|int4abs|int4and|int4div|int4eq|int4ge|int4gt|int4in|int4inc|" + + "int4larger|int4le|int4lt|int4mi|int4mod|int4mul|int4ne|int4not|int4or|int4out|int4pl|" + + "int4range|int4range_canonical|int4range_subdiff|int4recv|int4send|int4shl|int4shr|" + + "int4smaller|int4um|int4up|int4xor|int8|int82div|int82eq|int82ge|int82gt|int82le|int82lt|" + + "int82mi|int82mul|int82ne|int82pl|int84div|int84eq|int84ge|int84gt|int84le|int84lt|int84mi|" + + "int84mul|int84ne|int84pl|int8_accum|int8_avg|int8_avg_accum|int8_sum|int8abs|int8and|" + + "int8div|int8eq|int8ge|int8gt|int8in|int8inc|int8inc_any|int8inc_float8_float8|int8larger|" + + "int8le|int8lt|int8mi|int8mod|int8mul|int8ne|int8not|int8or|int8out|int8pl|int8pl_inet|" + + "int8range|int8range_canonical|int8range_subdiff|int8recv|int8send|int8shl|int8shr|" + + "int8smaller|int8um|int8up|int8xor|integer_pl_date|inter_lb|inter_sb|inter_sl|internal_in|" + + "internal_out|interval_accum|interval_avg|interval_cmp|interval_div|interval_eq|" + + "interval_ge|interval_gt|interval_hash|interval_in|interval_larger|interval_le|" + + "interval_lt|interval_mi|interval_mul|interval_ne|interval_out|interval_pl|" + + "interval_pl_date|interval_pl_time|interval_pl_timestamp|interval_pl_timestamptz|" + + "interval_pl_timetz|interval_recv|interval_send|interval_smaller|interval_transform|" + + "interval_um|intervaltypmodin|intervaltypmodout|intinterval|isclosed|isempty|isfinite|" + + "ishorizontal|iso8859_1_to_utf8|iso8859_to_utf8|iso_to_koi8r|iso_to_mic|iso_to_win1251|" + + "iso_to_win866|isopen|isparallel|isperp|isvertical|johab_to_utf8|json_agg|" + + "json_agg_finalfn|json_agg_transfn|json_array_element|json_array_element_text|" + + "json_array_elements|json_array_length|json_each|json_each_text|json_extract_path|" + + "json_extract_path_op|json_extract_path_text|json_extract_path_text_op|json_in|" + + "json_object_field|json_object_field_text|json_object_keys|json_out|" + + "json_populate_record|json_populate_recordset|json_recv|json_send|justify_days|" + + "justify_hours|justify_interval|koi8r_to_iso|koi8r_to_mic|koi8r_to_utf8|" + + "koi8r_to_win1251|koi8r_to_win866|koi8u_to_utf8|lag|language_handler_in|" + + "language_handler_out|last_value|lastval|latin1_to_mic|latin2_to_mic|latin2_to_win1250|" + + "latin3_to_mic|latin4_to_mic|lead|left|length|like|like_escape|likejoinsel|likesel|line|" + + "line_distance|line_eq|line_horizontal|line_in|line_interpt|line_intersect|line_out|" + + "line_parallel|line_perp|line_recv|line_send|line_vertical|ln|lo_close|lo_creat|lo_create|" + + "lo_export|lo_import|lo_lseek|lo_lseek64|lo_open|lo_tell|lo_tell64|lo_truncate|" + + "lo_truncate64|lo_unlink|log|loread|lower|lower_inc|lower_inf|lowrite|lpad|lseg|lseg_center|" + + "lseg_distance|lseg_eq|lseg_ge|lseg_gt|lseg_horizontal|lseg_in|lseg_interpt|" + + "lseg_intersect|lseg_le|lseg_length|lseg_lt|lseg_ne|lseg_out|lseg_parallel|lseg_perp|" + + "lseg_recv|lseg_send|lseg_vertical|ltrim|macaddr_and|macaddr_cmp|macaddr_eq|macaddr_ge|" + + "macaddr_gt|macaddr_in|macaddr_le|macaddr_lt|macaddr_ne|macaddr_not|macaddr_or|" + + "macaddr_out|macaddr_recv|macaddr_send|makeaclitem|masklen|max|md5|mic_to_ascii|" + + "mic_to_big5|mic_to_euc_cn|mic_to_euc_jp|mic_to_euc_kr|mic_to_euc_tw|mic_to_iso|" + + "mic_to_koi8r|mic_to_latin1|mic_to_latin2|mic_to_latin3|mic_to_latin4|mic_to_sjis|" + + "mic_to_win1250|mic_to_win1251|mic_to_win866|min|mktinterval|mod|money|mul_d_interval|" + + "name|nameeq|namege|namegt|nameiclike|nameicnlike|nameicregexeq|nameicregexne|namein|" + + "namele|namelike|namelt|namene|namenlike|nameout|namerecv|nameregexeq|nameregexne|namesend|" + + "neqjoinsel|neqsel|netmask|network|network_cmp|network_eq|network_ge|network_gt|" + + "network_le|network_lt|network_ne|network_sub|network_subeq|network_sup|network_supeq|" + + "nextval|nlikejoinsel|nlikesel|notlike|now|npoints|nth_value|ntile|numeric_abs|" + + "numeric_accum|numeric_add|numeric_avg|numeric_avg_accum|numeric_cmp|numeric_div|" + + "numeric_div_trunc|numeric_eq|numeric_exp|numeric_fac|numeric_ge|numeric_gt|numeric_in|" + + "numeric_inc|numeric_larger|numeric_le|numeric_ln|numeric_log|numeric_lt|numeric_mod|" + + "numeric_mul|numeric_ne|numeric_out|numeric_power|numeric_recv|numeric_send|" + + "numeric_smaller|numeric_sqrt|numeric_stddev_pop|numeric_stddev_samp|numeric_sub|" + + "numeric_transform|numeric_uminus|numeric_uplus|numeric_var_pop|numeric_var_samp|" + + "numerictypmodin|numerictypmodout|numnode|numrange|numrange_subdiff|obj_description|" + + "octet_length|oid|oideq|oidge|oidgt|oidin|oidlarger|oidle|oidlt|oidne|oidout|oidrecv|oidsend|" + + "oidsmaller|oidvectoreq|oidvectorge|oidvectorgt|oidvectorin|oidvectorle|oidvectorlt|" + + "oidvectorne|oidvectorout|oidvectorrecv|oidvectorsend|oidvectortypes|on_pb|on_pl|" + + "on_ppath|on_ps|on_sb|on_sl|opaque_in|opaque_out|overlaps|overlay|path|path_add|path_add_pt|" + + "path_center|path_contain_pt|path_distance|path_div_pt|path_in|path_inter|path_length|" + + "path_mul_pt|path_n_eq|path_n_ge|path_n_gt|path_n_le|path_n_lt|path_npoints|path_out|" + + "path_recv|path_send|path_sub_pt|pclose|percent_rank|pg_advisory_lock|" + + "pg_advisory_lock_shared|pg_advisory_unlock|pg_advisory_unlock_all|" + + "pg_advisory_unlock_shared|pg_advisory_xact_lock|pg_advisory_xact_lock_shared|" + + "pg_available_extension_versions|pg_available_extensions|pg_backend_pid|" + + "pg_backup_start_time|pg_cancel_backend|pg_char_to_encoding|pg_client_encoding|" + + "pg_collation_for|pg_collation_is_visible|pg_column_is_updatable|pg_column_size|" + + "pg_conf_load_time|pg_conversion_is_visible|pg_create_restore_point|" + + "pg_current_xlog_insert_location|pg_current_xlog_location|pg_cursor|pg_database_size|" + + "pg_describe_object|pg_encoding_max_length|pg_encoding_to_char|" + + "pg_event_trigger_dropped_objects|pg_export_snapshot|pg_extension_config_dump|" + + "pg_extension_update_paths|pg_function_is_visible|pg_get_constraintdef|pg_get_expr|" + + "pg_get_function_arguments|pg_get_function_identity_arguments|" + + "pg_get_function_result|pg_get_functiondef|pg_get_indexdef|pg_get_keywords|" + + "pg_get_multixact_members|pg_get_ruledef|pg_get_serial_sequence|pg_get_triggerdef|" + + "pg_get_userbyid|pg_get_viewdef|pg_has_role|pg_identify_object|pg_indexes_size|" + + "pg_is_in_backup|pg_is_in_recovery|pg_is_other_temp_schema|pg_is_xlog_replay_paused|" + + "pg_last_xact_replay_timestamp|pg_last_xlog_receive_location|" + + "pg_last_xlog_replay_location|pg_listening_channels|pg_lock_status|pg_ls_dir|" + + "pg_my_temp_schema|pg_node_tree_in|pg_node_tree_out|pg_node_tree_recv|" + + "pg_node_tree_send|pg_notify|pg_opclass_is_visible|pg_operator_is_visible|" + + "pg_opfamily_is_visible|pg_options_to_table|pg_postmaster_start_time|" + + "pg_prepared_statement|pg_prepared_xact|pg_read_binary_file|pg_read_file|" + + "pg_relation_filenode|pg_relation_filepath|pg_relation_is_updatable|pg_relation_size|" + + "pg_reload_conf|pg_rotate_logfile|pg_sequence_parameters|pg_show_all_settings|" + + "pg_size_pretty|pg_sleep|pg_start_backup|pg_stat_clear_snapshot|pg_stat_file|" + + "pg_stat_get_activity|pg_stat_get_analyze_count|pg_stat_get_autoanalyze_count|" + + "pg_stat_get_autovacuum_count|pg_stat_get_backend_activity|" + + "pg_stat_get_backend_activity_start|pg_stat_get_backend_client_addr|" + + "pg_stat_get_backend_client_port|pg_stat_get_backend_dbid|pg_stat_get_backend_idset|" + + "pg_stat_get_backend_pid|pg_stat_get_backend_start|pg_stat_get_backend_userid|" + + "pg_stat_get_backend_waiting|pg_stat_get_backend_xact_start|" + + "pg_stat_get_bgwriter_buf_written_checkpoints|" + + "pg_stat_get_bgwriter_buf_written_clean|pg_stat_get_bgwriter_maxwritten_clean|" + + "pg_stat_get_bgwriter_requested_checkpoints|pg_stat_get_bgwriter_stat_reset_time|" + + "pg_stat_get_bgwriter_timed_checkpoints|pg_stat_get_blocks_fetched|" + + "pg_stat_get_blocks_hit|pg_stat_get_buf_alloc|pg_stat_get_buf_fsync_backend|" + + "pg_stat_get_buf_written_backend|pg_stat_get_checkpoint_sync_time|" + + "pg_stat_get_checkpoint_write_time|pg_stat_get_db_blk_read_time|" + + "pg_stat_get_db_blk_write_time|pg_stat_get_db_blocks_fetched|" + + "pg_stat_get_db_blocks_hit|pg_stat_get_db_conflict_all|" + + "pg_stat_get_db_conflict_bufferpin|pg_stat_get_db_conflict_lock|" + + "pg_stat_get_db_conflict_snapshot|pg_stat_get_db_conflict_startup_deadlock|" + + "pg_stat_get_db_conflict_tablespace|pg_stat_get_db_deadlocks|" + + "pg_stat_get_db_numbackends|pg_stat_get_db_stat_reset_time|" + + "pg_stat_get_db_temp_bytes|pg_stat_get_db_temp_files|pg_stat_get_db_tuples_deleted|" + + "pg_stat_get_db_tuples_fetched|pg_stat_get_db_tuples_inserted|" + + "pg_stat_get_db_tuples_returned|pg_stat_get_db_tuples_updated|" + + "pg_stat_get_db_xact_commit|pg_stat_get_db_xact_rollback|pg_stat_get_dead_tuples|" + + "pg_stat_get_function_calls|pg_stat_get_function_self_time|" + + "pg_stat_get_function_total_time|pg_stat_get_last_analyze_time|" + + "pg_stat_get_last_autoanalyze_time|pg_stat_get_last_autovacuum_time|" + + "pg_stat_get_last_vacuum_time|pg_stat_get_live_tuples|pg_stat_get_numscans|" + + "pg_stat_get_tuples_deleted|pg_stat_get_tuples_fetched|" + + "pg_stat_get_tuples_hot_updated|pg_stat_get_tuples_inserted|" + + "pg_stat_get_tuples_returned|pg_stat_get_tuples_updated|pg_stat_get_vacuum_count|" + + "pg_stat_get_wal_senders|pg_stat_get_xact_blocks_fetched|" + + "pg_stat_get_xact_blocks_hit|pg_stat_get_xact_function_calls|" + + "pg_stat_get_xact_function_self_time|pg_stat_get_xact_function_total_time|" + + "pg_stat_get_xact_numscans|pg_stat_get_xact_tuples_deleted|" + + "pg_stat_get_xact_tuples_fetched|pg_stat_get_xact_tuples_hot_updated|" + + "pg_stat_get_xact_tuples_inserted|pg_stat_get_xact_tuples_returned|" + + "pg_stat_get_xact_tuples_updated|pg_stat_reset|pg_stat_reset_shared|" + + "pg_stat_reset_single_function_counters|pg_stat_reset_single_table_counters|" + + "pg_stop_backup|pg_switch_xlog|pg_table_is_visible|pg_table_size|" + + "pg_tablespace_databases|pg_tablespace_location|pg_tablespace_size|" + + "pg_terminate_backend|pg_timezone_abbrevs|pg_timezone_names|pg_total_relation_size|" + + "pg_trigger_depth|pg_try_advisory_lock|pg_try_advisory_lock_shared|" + + "pg_try_advisory_xact_lock|pg_try_advisory_xact_lock_shared|pg_ts_config_is_visible|" + + "pg_ts_dict_is_visible|pg_ts_parser_is_visible|pg_ts_template_is_visible|" + + "pg_type_is_visible|pg_typeof|pg_xlog_location_diff|pg_xlog_replay_pause|" + + "pg_xlog_replay_resume|pg_xlogfile_name|pg_xlogfile_name_offset|pi|plainto_tsquery|" + + "plpgsql_call_handler|plpgsql_inline_handler|plpgsql_validator|point|point_above|" + + "point_add|point_below|point_distance|point_div|point_eq|point_horiz|point_in|point_left|" + + "point_mul|point_ne|point_out|point_recv|point_right|point_send|point_sub|point_vert|" + + "poly_above|poly_below|poly_center|poly_contain|poly_contain_pt|poly_contained|" + + "poly_distance|poly_in|poly_left|poly_npoints|poly_out|poly_overabove|poly_overbelow|" + + "poly_overlap|poly_overleft|poly_overright|poly_recv|poly_right|poly_same|poly_send|" + + "polygon|popen|position|positionjoinsel|positionsel|postgresql_fdw_validator|pow|power|" + + "prsd_end|prsd_headline|prsd_lextype|prsd_nexttoken|prsd_start|pt_contained_circle|" + + "pt_contained_poly|query_to_xml|query_to_xml_and_xmlschema|query_to_xmlschema|" + + "querytree|quote_ident|quote_literal|quote_nullable|radians|radius|random|range_adjacent|" + + "range_after|range_before|range_cmp|range_contained_by|range_contains|" + + "range_contains_elem|range_eq|range_ge|range_gist_compress|range_gist_consistent|" + + "range_gist_decompress|range_gist_penalty|range_gist_picksplit|range_gist_same|" + + "range_gist_union|range_gt|range_in|range_intersect|range_le|range_lt|range_minus|" + + "range_ne|range_out|range_overlaps|range_overleft|range_overright|range_recv|range_send|" + + "range_typanalyze|range_union|rangesel|rank|record_eq|record_ge|record_gt|record_in|" + + "record_le|record_lt|record_ne|record_out|record_recv|record_send|regclass|regclassin|" + + "regclassout|regclassrecv|regclasssend|regconfigin|regconfigout|regconfigrecv|" + + "regconfigsend|regdictionaryin|regdictionaryout|regdictionaryrecv|regdictionarysend|" + + "regexeqjoinsel|regexeqsel|regexnejoinsel|regexnesel|regexp_matches|regexp_replace|" + + "regexp_split_to_array|regexp_split_to_table|regoperatorin|regoperatorout|" + + "regoperatorrecv|regoperatorsend|regoperin|regoperout|regoperrecv|regopersend|" + + "regprocedurein|regprocedureout|regprocedurerecv|regproceduresend|regprocin|regprocout|" + + "regprocrecv|regprocsend|regr_avgx|regr_avgy|regr_count|regr_intercept|regr_r2|" + + "regr_slope|regr_sxx|regr_sxy|regr_syy|regtypein|regtypeout|regtyperecv|regtypesend|" + + "reltime|reltimeeq|reltimege|reltimegt|reltimein|reltimele|reltimelt|reltimene|reltimeout|" + + "reltimerecv|reltimesend|repeat|replace|reverse|right|round|row_number|row_to_json|rpad|" + + "rtrim|scalargtjoinsel|scalargtsel|scalarltjoinsel|scalarltsel|schema_to_xml|" + + "schema_to_xml_and_xmlschema|schema_to_xmlschema|session_user|set_bit|set_byte|" + + "set_config|set_masklen|setseed|setval|setweight|shell_in|shell_out|" + + "shift_jis_2004_to_euc_jis_2004|shift_jis_2004_to_utf8|shobj_description|sign|" + + "similar_escape|sin|sjis_to_euc_jp|sjis_to_mic|sjis_to_utf8|slope|smgreq|smgrin|smgrne|" + + "smgrout|spg_kd_choose|spg_kd_config|spg_kd_inner_consistent|spg_kd_picksplit|" + + "spg_quad_choose|spg_quad_config|spg_quad_inner_consistent|spg_quad_leaf_consistent|" + + "spg_quad_picksplit|spg_range_quad_choose|spg_range_quad_config|" + + "spg_range_quad_inner_consistent|spg_range_quad_leaf_consistent|" + + "spg_range_quad_picksplit|spg_text_choose|spg_text_config|spg_text_inner_consistent|" + + "spg_text_leaf_consistent|spg_text_picksplit|spgbeginscan|spgbuild|spgbuildempty|" + + "spgbulkdelete|spgcanreturn|spgcostestimate|spgendscan|spggetbitmap|spggettuple|" + + "spginsert|spgmarkpos|spgoptions|spgrescan|spgrestrpos|spgvacuumcleanup|split_part|sqrt|" + + "statement_timestamp|stddev|stddev_pop|stddev_samp|string_agg|string_agg_finalfn|" + + "string_agg_transfn|string_to_array|strip|strpos|substr|substring|sum|" + + "suppress_redundant_updates_trigger|table_to_xml|table_to_xml_and_xmlschema|" + + "table_to_xmlschema|tan|text|text_ge|text_gt|text_larger|text_le|text_lt|text_pattern_ge|" + + "text_pattern_gt|text_pattern_le|text_pattern_lt|text_smaller|textanycat|textcat|texteq|" + + "texticlike|texticnlike|texticregexeq|texticregexne|textin|textlen|textlike|textne|" + + "textnlike|textout|textrecv|textregexeq|textregexne|textsend|thesaurus_init|" + + "thesaurus_lexize|tideq|tidge|tidgt|tidin|tidlarger|tidle|tidlt|tidne|tidout|tidrecv|tidsend|" + + "tidsmaller|time_cmp|time_eq|time_ge|time_gt|time_hash|time_in|time_larger|time_le|time_lt|" + + "time_mi_interval|time_mi_time|time_ne|time_out|time_pl_interval|time_recv|time_send|" + + "time_smaller|time_transform|timedate_pl|timemi|timenow|timeofday|timepl|timestamp_cmp|" + + "timestamp_cmp_date|timestamp_cmp_timestamptz|timestamp_eq|timestamp_eq_date|" + + "timestamp_eq_timestamptz|timestamp_ge|timestamp_ge_date|timestamp_ge_timestamptz|" + + "timestamp_gt|timestamp_gt_date|timestamp_gt_timestamptz|timestamp_hash|timestamp_in|" + + "timestamp_larger|timestamp_le|timestamp_le_date|timestamp_le_timestamptz|" + + "timestamp_lt|timestamp_lt_date|timestamp_lt_timestamptz|timestamp_mi|" + + "timestamp_mi_interval|timestamp_ne|timestamp_ne_date|timestamp_ne_timestamptz|" + + "timestamp_out|timestamp_pl_interval|timestamp_recv|timestamp_send|timestamp_smaller|" + + "timestamp_sortsupport|timestamp_transform|timestamptypmodin|timestamptypmodout|" + + "timestamptz_cmp|timestamptz_cmp_date|timestamptz_cmp_timestamp|timestamptz_eq|" + + "timestamptz_eq_date|timestamptz_eq_timestamp|timestamptz_ge|timestamptz_ge_date|" + + "timestamptz_ge_timestamp|timestamptz_gt|timestamptz_gt_date|" + + "timestamptz_gt_timestamp|timestamptz_in|timestamptz_larger|timestamptz_le|" + + "timestamptz_le_date|timestamptz_le_timestamp|timestamptz_lt|timestamptz_lt_date|" + + "timestamptz_lt_timestamp|timestamptz_mi|timestamptz_mi_interval|timestamptz_ne|" + + "timestamptz_ne_date|timestamptz_ne_timestamp|timestamptz_out|" + + "timestamptz_pl_interval|timestamptz_recv|timestamptz_send|timestamptz_smaller|" + + "timestamptztypmodin|timestamptztypmodout|timetypmodin|timetypmodout|timetz_cmp|" + + "timetz_eq|timetz_ge|timetz_gt|timetz_hash|timetz_in|timetz_larger|timetz_le|timetz_lt|" + + "timetz_mi_interval|timetz_ne|timetz_out|timetz_pl_interval|timetz_recv|timetz_send|" + + "timetz_smaller|timetzdate_pl|timetztypmodin|timetztypmodout|timezone|tinterval|" + + "tintervalct|tintervalend|tintervaleq|tintervalge|tintervalgt|tintervalin|tintervalle|" + + "tintervalleneq|tintervallenge|tintervallengt|tintervallenle|tintervallenlt|" + + "tintervallenne|tintervallt|tintervalne|tintervalout|tintervalov|tintervalrecv|" + + "tintervalrel|tintervalsame|tintervalsend|tintervalstart|to_ascii|to_char|to_date|to_hex|" + + "to_json|to_number|to_timestamp|to_tsquery|to_tsvector|transaction_timestamp|translate|" + + "trigger_in|trigger_out|trunc|ts_debug|ts_headline|ts_lexize|ts_match_qv|ts_match_tq|" + + "ts_match_tt|ts_match_vq|ts_parse|ts_rank|ts_rank_cd|ts_rewrite|ts_stat|ts_token_type|" + + "ts_typanalyze|tsmatchjoinsel|tsmatchsel|tsq_mcontained|tsq_mcontains|tsquery_and|" + + "tsquery_cmp|tsquery_eq|tsquery_ge|tsquery_gt|tsquery_le|tsquery_lt|tsquery_ne|" + + "tsquery_not|tsquery_or|tsqueryin|tsqueryout|tsqueryrecv|tsquerysend|tsrange|" + + "tsrange_subdiff|tstzrange|tstzrange_subdiff|tsvector_cmp|tsvector_concat|tsvector_eq|" + + "tsvector_ge|tsvector_gt|tsvector_le|tsvector_lt|tsvector_ne|tsvector_update_trigger|" + + "tsvector_update_trigger_column|tsvectorin|tsvectorout|tsvectorrecv|tsvectorsend|" + + "txid_current|txid_current_snapshot|txid_snapshot_in|txid_snapshot_out|" + + "txid_snapshot_recv|txid_snapshot_send|txid_snapshot_xip|txid_snapshot_xmax|" + + "txid_snapshot_xmin|txid_visible_in_snapshot|uhc_to_utf8|unique_key_recheck|unknownin|" + + "unknownout|unknownrecv|unknownsend|unnest|upper|upper_inc|upper_inf|utf8_to_ascii|" + + "utf8_to_big5|utf8_to_euc_cn|utf8_to_euc_jis_2004|utf8_to_euc_jp|utf8_to_euc_kr|" + + "utf8_to_euc_tw|utf8_to_gb18030|utf8_to_gbk|utf8_to_iso8859|utf8_to_iso8859_1|" + + "utf8_to_johab|utf8_to_koi8r|utf8_to_koi8u|utf8_to_shift_jis_2004|utf8_to_sjis|" + + "utf8_to_uhc|utf8_to_win|uuid_cmp|uuid_eq|uuid_ge|uuid_gt|uuid_hash|uuid_in|uuid_le|" + + "uuid_lt|uuid_ne|uuid_out|uuid_recv|uuid_send|var_pop|var_samp|varbit_in|varbit_out|" + + "varbit_recv|varbit_send|varbit_transform|varbitcmp|varbiteq|varbitge|varbitgt|varbitle|" + + "varbitlt|varbitne|varbittypmodin|varbittypmodout|varchar_transform|varcharin|" + + "varcharout|varcharrecv|varcharsend|varchartypmodin|varchartypmodout|variance|version|" + + "void_in|void_out|void_recv|void_send|width|width_bucket|win1250_to_latin2|" + + "win1250_to_mic|win1251_to_iso|win1251_to_koi8r|win1251_to_mic|win1251_to_win866|" + + "win866_to_iso|win866_to_koi8r|win866_to_mic|win866_to_win1251|win_to_utf8|xideq|" + + "xideqint4|xidin|xidout|xidrecv|xidsend|xml|xml_in|xml_is_well_formed|" + + "xml_is_well_formed_content|xml_is_well_formed_document|xml_out|xml_recv|xml_send|" + + "xmlagg|xmlcomment|xmlconcat2|xmlexists|xmlvalidate|xpath|xpath_exists" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords + }, "identifier", true); + + + var sqlRules = [{ + token : "string", // single line string -- assume dollar strings if multi-line for now + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "variable.language", // pg identifier + regex : '".*?"' + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_][a-zA-Z0-9_$]*\\b" // TODO - Unicode in identifiers + }, { + token : "keyword.operator", + regex : "!|!!|!~|!~\\*|!~~|!~~\\*|#|##|#<|#<=|#<>|#=|#>|#>=|%|\\&|\\&\\&|\\&<|\\&<\\||\\&>|\\*|\\+|" + + "\\-|/|<|<#>|<\\->|<<|<<=|<<\\||<=|<>|<\\?>|<@|<\\^|=|>|>=|>>|>>=|>\\^|\\?#|\\?\\-|\\?\\-\\||" + + "\\?\\||\\?\\|\\||@|@\\-@|@>|@@|@@@|\\^|\\||\\|\\&>|\\|/|\\|>>|\\|\\||\\|\\|/|~|~\\*|~<=~|~<~|" + + "~=|~>=~|~>~|~~|~~\\*" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } + ]; + + + this.$rules = { + "start" : [{ + token : "comment", + regex : "--.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi-line comment + regex : "\\/\\*", + next : "comment" + },{ + token : "keyword.statementBegin", + regex : "^[a-zA-Z]+", // Could enumerate starting keywords but this allows things to work when new statements are added. + next : "statement" + },{ + token : "support.buildin", // psql directive + regex : "^\\\\[\\S]+.*$" + } + ], + + "statement" : [{ + token : "comment", + regex : "--.*$" + }, { + token : "comment", // multi-line comment + regex : "\\/\\*", + next : "commentStatement" + }, { + token : "statementEnd", + regex : ";", + next : "start" + }, { + token : "string", + regex : "\\$perl\\$", + next : "perl-start" + }, { + token : "string", + regex : "\\$python\\$", + next : "python-start" + }, { + token : "string", + regex : "\\$json\\$", + next : "json-start" + }, { + token : "string", + regex : "\\$(js|javascript)\\$", + next : "javascript-start" + }, { + token : "string", + regex : "\\$[\\w_0-9]*\\$$", // dollar quote at the end of a line + next : "dollarSql" + }, { + token : "string", + regex : "\\$[\\w_0-9]*\\$", + next : "dollarStatementString" + } + ].concat(sqlRules), + + "dollarSql" : [{ + token : "comment", + regex : "--.*$" + }, { + token : "comment", // multi-line comment + regex : "\\/\\*", + next : "commentDollarSql" + }, { + token : "string", // end quoting with dollar at the start of a line + regex : "^\\$[\\w_0-9]*\\$", + next : "statement" + }, { + token : "string", + regex : "\\$[\\w_0-9]*\\$", + next : "dollarSqlString" + } + ].concat(sqlRules), + + "comment" : [{ + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + + "commentStatement" : [{ + token : "comment", // closing comment + regex : "\\*\\/", + next : "statement" + }, { + defaultToken : "comment" + } + ], + + "commentDollarSql" : [{ + token : "comment", // closing comment + regex : "\\*\\/", + next : "dollarSql" + }, { + defaultToken : "comment" + } + ], + + "dollarStatementString" : [{ + token : "string", // closing dollarstring + regex : ".*?\\$[\\w_0-9]*\\$", + next : "statement" + }, { + token : "string", // dollarstring spanning whole line + regex : ".+" + } + ], + + "dollarSqlString" : [{ + token : "string", // closing dollarstring + regex : ".*?\\$[\\w_0-9]*\\$", + next : "dollarSql" + }, { + token : "string", // dollarstring spanning whole line + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", [ DocCommentHighlightRules.getEndRule("start") ]); + this.embedRules(PerlHighlightRules, "perl-", [{token : "string", regex : "\\$perl\\$", next : "statement"}]); + this.embedRules(PythonHighlightRules, "python-", [{token : "string", regex : "\\$python\\$", next : "statement"}]); + this.embedRules(JsonHighlightRules, "json-", [{token : "string", regex : "\\$json\\$", next : "statement"}]); + this.embedRules(JavaScriptHighlightRules, "javascript-", [{token : "string", regex : "\\$(js|javascript)\\$", next : "statement"}]); +}; + +oop.inherits(PgsqlHighlightRules, TextHighlightRules); + +exports.PgsqlHighlightRules = PgsqlHighlightRules; +}); + +ace.define("ace/mode/pgsql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pgsql_highlight_rules"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var TextMode = require("../mode/text").Mode; +var PgsqlHighlightRules = require("./pgsql_highlight_rules").PgsqlHighlightRules; + +var Mode = function() { + this.HighlightRules = PgsqlHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + if (state == "start" || state == "keyword.statementEnd") { + return ""; + } else { + return this.$getIndent(line); // Keep whatever indent the previous line has + } + }; + + this.$id = "ace/mode/pgsql"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-php.js b/htdocs/includes/ace/mode-php.js new file mode 100644 index 00000000000..b4d55de8b6c --- /dev/null +++ b/htdocs/includes/ace/mode-php.js @@ -0,0 +1,12856 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/php_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var PhpLangHighlightRules = function() { + var docComment = DocCommentHighlightRules; + var builtinFunctions = lang.arrayToMap( + ('abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_info|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|' + + 'aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|amqpconnection|amqpexchange|amqpqueue|' + + 'apache_child_terminate|apache_get_modules|apache_get_version|apache_getenv|apache_lookup_uri|apache_note|apache_request_headers|' + + 'apache_reset_timeout|apache_response_headers|apache_setenv|apc_add|apc_bin_dump|apc_bin_dumpfile|apc_bin_load|apc_bin_loadfile|' + + 'apc_cache_info|apc_cas|apc_clear_cache|apc_compile_file|apc_dec|apc_define_constants|apc_delete|apc_delete_file|apc_exists|apc_fetch|' + + 'apc_inc|apc_load_constants|apc_sma_info|apc_store|apciterator|apd_breakpoint|apd_callstack|apd_clunk|apd_continue|apd_croak|' + + 'apd_dump_function_table|apd_dump_persistent_resources|apd_dump_regular_resources|apd_echo|apd_get_active_symbols|apd_set_pprof_trace|' + + 'apd_set_session|apd_set_session_trace|apd_set_session_trace_socket|appenditerator|array|array_change_key_case|array_chunk|array_combine|' + + 'array_count_values|array_diff|array_diff_assoc|array_diff_key|array_diff_uassoc|array_diff_ukey|array_fill|array_fill_keys|array_filter|' + + 'array_flip|array_intersect|array_intersect_assoc|array_intersect_key|array_intersect_uassoc|array_intersect_ukey|array_key_exists|' + + 'array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_product|array_push|array_rand|' + + 'array_reduce|array_replace|array_replace_recursive|array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_udiff|' + + 'array_udiff_assoc|array_udiff_uassoc|array_uintersect|array_uintersect_assoc|array_uintersect_uassoc|array_unique|array_unshift|' + + 'array_values|array_walk|array_walk_recursive|arrayaccess|arrayiterator|arrayobject|arsort|asin|asinh|asort|assert|assert_options|atan|' + + 'atan2|atanh|audioproperties|badfunctioncallexception|badmethodcallexception|base64_decode|base64_encode|base_convert|basename|' + + 'bbcode_add_element|bbcode_add_smiley|bbcode_create|bbcode_destroy|bbcode_parse|bbcode_set_arg_parser|bbcode_set_flags|bcadd|bccomp|bcdiv|' + + 'bcmod|bcmul|bcompiler_load|bcompiler_load_exe|bcompiler_parse_class|bcompiler_read|bcompiler_write_class|bcompiler_write_constant|' + + 'bcompiler_write_exe_footer|bcompiler_write_file|bcompiler_write_footer|bcompiler_write_function|bcompiler_write_functions_from_file|' + + 'bcompiler_write_header|bcompiler_write_included_filename|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|' + + 'bindtextdomain|bson_decode|bson_encode|bumpValue|bzclose|bzcompress|bzdecompress|bzerrno|bzerror|bzerrstr|bzflush|bzopen|bzread|bzwrite|' + + 'cachingiterator|cairo|cairo_create|cairo_font_face_get_type|cairo_font_face_status|cairo_font_options_create|cairo_font_options_equal|' + + 'cairo_font_options_get_antialias|cairo_font_options_get_hint_metrics|cairo_font_options_get_hint_style|' + + 'cairo_font_options_get_subpixel_order|cairo_font_options_hash|cairo_font_options_merge|cairo_font_options_set_antialias|' + + 'cairo_font_options_set_hint_metrics|cairo_font_options_set_hint_style|cairo_font_options_set_subpixel_order|cairo_font_options_status|' + + 'cairo_format_stride_for_width|cairo_image_surface_create|cairo_image_surface_create_for_data|cairo_image_surface_create_from_png|' + + 'cairo_image_surface_get_data|cairo_image_surface_get_format|cairo_image_surface_get_height|cairo_image_surface_get_stride|' + + 'cairo_image_surface_get_width|cairo_matrix_create_scale|cairo_matrix_create_translate|cairo_matrix_invert|cairo_matrix_multiply|' + + 'cairo_matrix_rotate|cairo_matrix_transform_distance|cairo_matrix_transform_point|cairo_matrix_translate|cairo_pattern_add_color_stop_rgb|' + + 'cairo_pattern_add_color_stop_rgba|cairo_pattern_create_for_surface|cairo_pattern_create_linear|cairo_pattern_create_radial|' + + 'cairo_pattern_create_rgb|cairo_pattern_create_rgba|cairo_pattern_get_color_stop_count|cairo_pattern_get_color_stop_rgba|' + + 'cairo_pattern_get_extend|cairo_pattern_get_filter|cairo_pattern_get_linear_points|cairo_pattern_get_matrix|' + + 'cairo_pattern_get_radial_circles|cairo_pattern_get_rgba|cairo_pattern_get_surface|cairo_pattern_get_type|cairo_pattern_set_extend|' + + 'cairo_pattern_set_filter|cairo_pattern_set_matrix|cairo_pattern_status|cairo_pdf_surface_create|cairo_pdf_surface_set_size|' + + 'cairo_ps_get_levels|cairo_ps_level_to_string|cairo_ps_surface_create|cairo_ps_surface_dsc_begin_page_setup|' + + 'cairo_ps_surface_dsc_begin_setup|cairo_ps_surface_dsc_comment|cairo_ps_surface_get_eps|cairo_ps_surface_restrict_to_level|' + + 'cairo_ps_surface_set_eps|cairo_ps_surface_set_size|cairo_scaled_font_create|cairo_scaled_font_extents|cairo_scaled_font_get_ctm|' + + 'cairo_scaled_font_get_font_face|cairo_scaled_font_get_font_matrix|cairo_scaled_font_get_font_options|cairo_scaled_font_get_scale_matrix|' + + 'cairo_scaled_font_get_type|cairo_scaled_font_glyph_extents|cairo_scaled_font_status|cairo_scaled_font_text_extents|' + + 'cairo_surface_copy_page|cairo_surface_create_similar|cairo_surface_finish|cairo_surface_flush|cairo_surface_get_content|' + + 'cairo_surface_get_device_offset|cairo_surface_get_font_options|cairo_surface_get_type|cairo_surface_mark_dirty|' + + 'cairo_surface_mark_dirty_rectangle|cairo_surface_set_device_offset|cairo_surface_set_fallback_resolution|cairo_surface_show_page|' + + 'cairo_surface_status|cairo_surface_write_to_png|cairo_svg_surface_create|cairo_svg_surface_restrict_to_version|' + + 'cairo_svg_version_to_string|cairoantialias|cairocontent|cairocontext|cairoexception|cairoextend|cairofillrule|cairofilter|cairofontface|' + + 'cairofontoptions|cairofontslant|cairofonttype|cairofontweight|cairoformat|cairogradientpattern|cairohintmetrics|cairohintstyle|' + + 'cairoimagesurface|cairolineargradient|cairolinecap|cairolinejoin|cairomatrix|cairooperator|cairopath|cairopattern|cairopatterntype|' + + 'cairopdfsurface|cairopslevel|cairopssurface|cairoradialgradient|cairoscaledfont|cairosolidpattern|cairostatus|cairosubpixelorder|' + + 'cairosurface|cairosurfacepattern|cairosurfacetype|cairosvgsurface|cairosvgversion|cairotoyfontface|cal_days_in_month|cal_from_jd|cal_info|' + + 'cal_to_jd|calcul_hmac|calculhmac|call_user_func|call_user_func_array|call_user_method|call_user_method_array|callbackfilteriterator|ceil|' + + 'chdb|chdb_create|chdir|checkdate|checkdnsrr|chgrp|chmod|chop|chown|chr|chroot|chunk_split|class_alias|class_exists|class_implements|' + + 'class_parents|class_uses|classkit_import|classkit_method_add|classkit_method_copy|classkit_method_redefine|classkit_method_remove|' + + 'classkit_method_rename|clearstatcache|clone|closedir|closelog|collator|com|com_addref|com_create_guid|com_event_sink|com_get|' + + 'com_get_active_object|com_invoke|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_propput|' + + 'com_propset|com_release|com_set|compact|connection_aborted|connection_status|connection_timeout|constant|construct|construct|construct|' + + 'convert_cyr_string|convert_uudecode|convert_uuencode|copy|cos|cosh|count|count_chars|countable|counter_bump|counter_bump_value|' + + 'counter_create|counter_get|counter_get_meta|counter_get_named|counter_get_value|counter_reset|counter_reset_value|crack_check|' + + 'crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|' + + 'ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|cubrid_affected_rows|cubrid_bind|' + + 'cubrid_client_encoding|cubrid_close|cubrid_close_prepare|cubrid_close_request|cubrid_col_get|cubrid_col_size|cubrid_column_names|' + + 'cubrid_column_types|cubrid_commit|cubrid_connect|cubrid_connect_with_url|cubrid_current_oid|cubrid_data_seek|cubrid_db_name|' + + 'cubrid_disconnect|cubrid_drop|cubrid_errno|cubrid_error|cubrid_error_code|cubrid_error_code_facility|cubrid_error_msg|cubrid_execute|' + + 'cubrid_fetch|cubrid_fetch_array|cubrid_fetch_assoc|cubrid_fetch_field|cubrid_fetch_lengths|cubrid_fetch_object|cubrid_fetch_row|' + + 'cubrid_field_flags|cubrid_field_len|cubrid_field_name|cubrid_field_seek|cubrid_field_table|cubrid_field_type|cubrid_free_result|' + + 'cubrid_get|cubrid_get_autocommit|cubrid_get_charset|cubrid_get_class_name|cubrid_get_client_info|cubrid_get_db_parameter|' + + 'cubrid_get_server_info|cubrid_insert_id|cubrid_is_instance|cubrid_list_dbs|cubrid_load_from_glo|cubrid_lob_close|cubrid_lob_export|' + + 'cubrid_lob_get|cubrid_lob_send|cubrid_lob_size|cubrid_lock_read|cubrid_lock_write|cubrid_move_cursor|cubrid_new_glo|cubrid_next_result|' + + 'cubrid_num_cols|cubrid_num_fields|cubrid_num_rows|cubrid_ping|cubrid_prepare|cubrid_put|cubrid_query|cubrid_real_escape_string|' + + 'cubrid_result|cubrid_rollback|cubrid_save_to_glo|cubrid_schema|cubrid_send_glo|cubrid_seq_drop|cubrid_seq_insert|cubrid_seq_put|' + + 'cubrid_set_add|cubrid_set_autocommit|cubrid_set_db_parameter|cubrid_set_drop|cubrid_unbuffered_query|cubrid_version|curl_close|' + + 'curl_copy_handle|curl_errno|curl_error|curl_exec|curl_getinfo|curl_init|curl_multi_add_handle|curl_multi_close|curl_multi_exec|' + + 'curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_multi_select|curl_setopt|curl_setopt_array|' + + 'curl_version|current|cyrus_authenticate|cyrus_bind|cyrus_close|cyrus_connect|cyrus_query|cyrus_unbind|date|date_add|date_create|' + + 'date_create_from_format|date_date_set|date_default_timezone_get|date_default_timezone_set|date_diff|date_format|date_get_last_errors|' + + 'date_interval_create_from_date_string|date_interval_format|date_isodate_set|date_modify|date_offset_get|date_parse|date_parse_from_format|' + + 'date_sub|date_sun_info|date_sunrise|date_sunset|date_time_set|date_timestamp_get|date_timestamp_set|date_timezone_get|date_timezone_set|' + + 'dateinterval|dateperiod|datetime|datetimezone|db2_autocommit|db2_bind_param|db2_client_info|db2_close|db2_column_privileges|db2_columns|' + + 'db2_commit|db2_conn_error|db2_conn_errormsg|db2_connect|db2_cursor_type|db2_escape_string|db2_exec|db2_execute|db2_fetch_array|' + + 'db2_fetch_assoc|db2_fetch_both|db2_fetch_object|db2_fetch_row|db2_field_display_size|db2_field_name|db2_field_num|db2_field_precision|' + + 'db2_field_scale|db2_field_type|db2_field_width|db2_foreign_keys|db2_free_result|db2_free_stmt|db2_get_option|db2_last_insert_id|' + + 'db2_lob_read|db2_next_result|db2_num_fields|db2_num_rows|db2_pclose|db2_pconnect|db2_prepare|db2_primary_keys|db2_procedure_columns|' + + 'db2_procedures|db2_result|db2_rollback|db2_server_info|db2_set_option|db2_special_columns|db2_statistics|db2_stmt_error|db2_stmt_errormsg|' + + 'db2_table_privileges|db2_tables|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_key_split|dba_list|' + + 'dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|' + + 'dbase_get_header_info|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|' + + 'dbase_replace_record|dbplus_add|dbplus_aql|dbplus_chdir|dbplus_close|dbplus_curr|dbplus_errcode|dbplus_errno|dbplus_find|dbplus_first|' + + 'dbplus_flush|dbplus_freealllocks|dbplus_freelock|dbplus_freerlocks|dbplus_getlock|dbplus_getunique|dbplus_info|dbplus_last|dbplus_lockrel|' + + 'dbplus_next|dbplus_open|dbplus_prev|dbplus_rchperm|dbplus_rcreate|dbplus_rcrtexact|dbplus_rcrtlike|dbplus_resolve|dbplus_restorepos|' + + 'dbplus_rkeys|dbplus_ropen|dbplus_rquery|dbplus_rrename|dbplus_rsecindex|dbplus_runlink|dbplus_rzap|dbplus_savepos|dbplus_setindex|' + + 'dbplus_setindexbynumber|dbplus_sql|dbplus_tcl|dbplus_tremove|dbplus_undo|dbplus_undoprepare|dbplus_unlockrel|dbplus_unselect|' + + 'dbplus_update|dbplus_xlockrel|dbplus_xunlockrel|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_escape_string|dbx_fetch_row|dbx_query|' + + 'dbx_sort|dcgettext|dcngettext|deaggregate|debug_backtrace|debug_print_backtrace|debug_zval_dump|decbin|dechex|decoct|define|' + + 'define_syslog_variables|defined|deg2rad|delete|dgettext|die|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|' + + 'dio_truncate|dio_write|dir|directoryiterator|dirname|disk_free_space|disk_total_space|diskfreespace|dl|dngettext|dns_check_record|' + + 'dns_get_mx|dns_get_record|dom_import_simplexml|domainexception|domattr|domattribute_name|domattribute_set_value|domattribute_specified|' + + 'domattribute_value|domcharacterdata|domcomment|domdocument|domdocument_add_root|domdocument_create_attribute|' + + 'domdocument_create_cdata_section|domdocument_create_comment|domdocument_create_element|domdocument_create_element_ns|' + + 'domdocument_create_entity_reference|domdocument_create_processing_instruction|domdocument_create_text_node|domdocument_doctype|' + + 'domdocument_document_element|domdocument_dump_file|domdocument_dump_mem|domdocument_get_element_by_id|domdocument_get_elements_by_tagname|' + + 'domdocument_html_dump_mem|domdocument_xinclude|domdocumentfragment|domdocumenttype|domdocumenttype_entities|' + + 'domdocumenttype_internal_subset|domdocumenttype_name|domdocumenttype_notations|domdocumenttype_public_id|domdocumenttype_system_id|' + + 'domelement|domelement_get_attribute|domelement_get_attribute_node|domelement_get_elements_by_tagname|domelement_has_attribute|' + + 'domelement_remove_attribute|domelement_set_attribute|domelement_set_attribute_node|domelement_tagname|domentity|domentityreference|' + + 'domexception|domimplementation|domnamednodemap|domnode|domnode_add_namespace|domnode_append_child|domnode_append_sibling|' + + 'domnode_attributes|domnode_child_nodes|domnode_clone_node|domnode_dump_node|domnode_first_child|domnode_get_content|' + + 'domnode_has_attributes|domnode_has_child_nodes|domnode_insert_before|domnode_is_blank_node|domnode_last_child|domnode_next_sibling|' + + 'domnode_node_name|domnode_node_type|domnode_node_value|domnode_owner_document|domnode_parent_node|domnode_prefix|domnode_previous_sibling|' + + 'domnode_remove_child|domnode_replace_child|domnode_replace_node|domnode_set_content|domnode_set_name|domnode_set_namespace|' + + 'domnode_unlink_node|domnodelist|domnotation|domprocessinginstruction|domprocessinginstruction_data|domprocessinginstruction_target|' + + 'domtext|domxml_new_doc|domxml_open_file|domxml_open_mem|domxml_version|domxml_xmltree|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|' + + 'domxml_xslt_stylesheet_file|domxml_xslt_version|domxpath|domxsltstylesheet_process|domxsltstylesheet_result_dump_file|' + + 'domxsltstylesheet_result_dump_mem|dotnet|dotnet_load|doubleval|each|easter_date|easter_days|echo|empty|emptyiterator|' + + 'enchant_broker_describe|enchant_broker_dict_exists|enchant_broker_free|enchant_broker_free_dict|enchant_broker_get_error|' + + 'enchant_broker_init|enchant_broker_list_dicts|enchant_broker_request_dict|enchant_broker_request_pwl_dict|enchant_broker_set_ordering|' + + 'enchant_dict_add_to_personal|enchant_dict_add_to_session|enchant_dict_check|enchant_dict_describe|enchant_dict_get_error|' + + 'enchant_dict_is_in_session|enchant_dict_quick_check|enchant_dict_store_replacement|enchant_dict_suggest|end|ereg|ereg_replace|eregi|' + + 'eregi_replace|error_get_last|error_log|error_reporting|errorexception|escapeshellarg|escapeshellcmd|eval|event_add|event_base_free|' + + 'event_base_loop|event_base_loopbreak|event_base_loopexit|event_base_new|event_base_priority_init|event_base_set|event_buffer_base_set|' + + 'event_buffer_disable|event_buffer_enable|event_buffer_fd_set|event_buffer_free|event_buffer_new|event_buffer_priority_set|' + + 'event_buffer_read|event_buffer_set_callback|event_buffer_timeout_set|event_buffer_watermark_set|event_buffer_write|event_del|event_free|' + + 'event_new|event_set|exception|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exit|exp|expect_expectl|expect_popen|explode|' + + 'expm1|export|export|extension_loaded|extract|ezmlm_hash|fam_cancel_monitor|fam_close|fam_monitor_collection|fam_monitor_directory|' + + 'fam_monitor_file|fam_next_event|fam_open|fam_pending|fam_resume_monitor|fam_suspend_monitor|fbsql_affected_rows|fbsql_autocommit|' + + 'fbsql_blob_size|fbsql_change_user|fbsql_clob_size|fbsql_close|fbsql_commit|fbsql_connect|fbsql_create_blob|fbsql_create_clob|' + + 'fbsql_create_db|fbsql_data_seek|fbsql_database|fbsql_database_password|fbsql_db_query|fbsql_db_status|fbsql_drop_db|fbsql_errno|' + + 'fbsql_error|fbsql_fetch_array|fbsql_fetch_assoc|fbsql_fetch_field|fbsql_fetch_lengths|fbsql_fetch_object|fbsql_fetch_row|' + + 'fbsql_field_flags|fbsql_field_len|fbsql_field_name|fbsql_field_seek|fbsql_field_table|fbsql_field_type|fbsql_free_result|' + + 'fbsql_get_autostart_info|fbsql_hostname|fbsql_insert_id|fbsql_list_dbs|fbsql_list_fields|fbsql_list_tables|fbsql_next_result|' + + 'fbsql_num_fields|fbsql_num_rows|fbsql_password|fbsql_pconnect|fbsql_query|fbsql_read_blob|fbsql_read_clob|fbsql_result|fbsql_rollback|' + + 'fbsql_rows_fetched|fbsql_select_db|fbsql_set_characterset|fbsql_set_lob_mode|fbsql_set_password|fbsql_set_transaction|fbsql_start_db|' + + 'fbsql_stop_db|fbsql_table_name|fbsql_tablename|fbsql_username|fbsql_warnings|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|' + + 'fdf_create|fdf_enum_values|fdf_errno|fdf_error|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_opt|' + + 'fdf_get_status|fdf_get_value|fdf_get_version|fdf_header|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|' + + 'fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags|fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|' + + 'fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|' + + 'file_exists|file_get_contents|file_put_contents|fileatime|filectime|filegroup|fileinode|filemtime|fileowner|fileperms|filepro|' + + 'filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filesystemiterator|' + + 'filetype|filter_has_var|filter_id|filter_input|filter_input_array|filter_list|filter_var|filter_var_array|filteriterator|finfo_buffer|' + + 'finfo_close|finfo_file|finfo_open|finfo_set_flags|floatval|flock|floor|flush|fmod|fnmatch|fopen|forward_static_call|' + + 'forward_static_call_array|fpassthru|fprintf|fputcsv|fputs|fread|frenchtojd|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|' + + 'ftp_alloc|ftp_cdup|ftp_chdir|ftp_chmod|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput|ftp_get|ftp_get_option|ftp_login|' + + 'ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_quit|ftp_raw|' + + 'ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size|ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|' + + 'func_num_args|function_exists|fwrite|gc_collect_cycles|gc_disable|gc_enable|gc_enabled|gd_info|gearmanclient|gearmanjob|gearmantask|' + + 'gearmanworker|geoip_continent_code_by_name|geoip_country_code3_by_name|geoip_country_code_by_name|geoip_country_name_by_name|' + + 'geoip_database_info|geoip_db_avail|geoip_db_filename|geoip_db_get_all_info|geoip_id_by_name|geoip_isp_by_name|geoip_org_by_name|' + + 'geoip_record_by_name|geoip_region_by_name|geoip_region_name_by_code|geoip_time_zone_by_country_and_region|getMeta|getNamed|getValue|' + + 'get_browser|get_called_class|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|' + + 'get_declared_interfaces|get_declared_traits|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs|get_headers|' + + 'get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|' + + 'get_meta_tags|get_object_vars|get_parent_class|get_required_files|get_resource_type|getallheaders|getconstant|getconstants|getconstructor|' + + 'getcwd|getdate|getdefaultproperties|getdoccomment|getendline|getenv|getextension|getextensionname|getfilename|gethostbyaddr|gethostbyname|' + + 'gethostbynamel|gethostname|getimagesize|getinterfacenames|getinterfaces|getlastmod|getmethod|getmethods|getmodifiers|getmxrr|getmygid|' + + 'getmyinode|getmypid|getmyuid|getname|getnamespacename|getopt|getparentclass|getproperties|getproperty|getprotobyname|getprotobynumber|' + + 'getrandmax|getrusage|getservbyname|getservbyport|getshortname|getstartline|getstaticproperties|getstaticpropertyvalue|gettext|' + + 'gettimeofday|gettype|glob|globiterator|gmagick|gmagickdraw|gmagickpixel|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and|gmp_clrbit|gmp_cmp|' + + 'gmp_com|gmp_div|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|' + + 'gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_nextprime|gmp_or|gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|' + + 'gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_testbit|gmp_xor|gmstrftime|' + + 'gnupg_adddecryptkey|gnupg_addencryptkey|gnupg_addsignkey|gnupg_cleardecryptkeys|gnupg_clearencryptkeys|gnupg_clearsignkeys|gnupg_decrypt|' + + 'gnupg_decryptverify|gnupg_encrypt|gnupg_encryptsign|gnupg_export|gnupg_geterror|gnupg_getprotocol|gnupg_import|gnupg_init|gnupg_keyinfo|' + + 'gnupg_setarmor|gnupg_seterrormode|gnupg_setsignmode|gnupg_sign|gnupg_verify|gopher_parsedir|grapheme_extract|grapheme_stripos|' + + 'grapheme_stristr|grapheme_strlen|grapheme_strpos|grapheme_strripos|grapheme_strrpos|grapheme_strstr|grapheme_substr|gregoriantojd|' + + 'gupnp_context_get_host_ip|gupnp_context_get_port|gupnp_context_get_subscription_timeout|gupnp_context_host_path|gupnp_context_new|' + + 'gupnp_context_set_subscription_timeout|gupnp_context_timeout_add|gupnp_context_unhost_path|gupnp_control_point_browse_start|' + + 'gupnp_control_point_browse_stop|gupnp_control_point_callback_set|gupnp_control_point_new|gupnp_device_action_callback_set|' + + 'gupnp_device_info_get|gupnp_device_info_get_service|gupnp_root_device_get_available|gupnp_root_device_get_relative_location|' + + 'gupnp_root_device_new|gupnp_root_device_set_available|gupnp_root_device_start|gupnp_root_device_stop|gupnp_service_action_get|' + + 'gupnp_service_action_return|gupnp_service_action_return_error|gupnp_service_action_set|gupnp_service_freeze_notify|gupnp_service_info_get|' + + 'gupnp_service_info_get_introspection|gupnp_service_introspection_get_state_variable|gupnp_service_notify|gupnp_service_proxy_action_get|' + + 'gupnp_service_proxy_action_set|gupnp_service_proxy_add_notify|gupnp_service_proxy_callback_set|gupnp_service_proxy_get_subscribed|' + + 'gupnp_service_proxy_remove_notify|gupnp_service_proxy_set_subscribed|gupnp_service_thaw_notify|gzclose|gzcompress|gzdecode|gzdeflate|' + + 'gzencode|gzeof|gzfile|gzgetc|gzgets|gzgetss|gzinflate|gzopen|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzuncompress|gzwrite|' + + 'halt_compiler|haruannotation|haruannotation_setborderstyle|haruannotation_sethighlightmode|haruannotation_seticon|' + + 'haruannotation_setopened|harudestination|harudestination_setfit|harudestination_setfitb|harudestination_setfitbh|harudestination_setfitbv|' + + 'harudestination_setfith|harudestination_setfitr|harudestination_setfitv|harudestination_setxyz|harudoc|harudoc_addpage|' + + 'harudoc_addpagelabel|harudoc_construct|harudoc_createoutline|harudoc_getcurrentencoder|harudoc_getcurrentpage|harudoc_getencoder|' + + 'harudoc_getfont|harudoc_getinfoattr|harudoc_getpagelayout|harudoc_getpagemode|harudoc_getstreamsize|harudoc_insertpage|harudoc_loadjpeg|' + + 'harudoc_loadpng|harudoc_loadraw|harudoc_loadttc|harudoc_loadttf|harudoc_loadtype1|harudoc_output|harudoc_readfromstream|' + + 'harudoc_reseterror|harudoc_resetstream|harudoc_save|harudoc_savetostream|harudoc_setcompressionmode|harudoc_setcurrentencoder|' + + 'harudoc_setencryptionmode|harudoc_setinfoattr|harudoc_setinfodateattr|harudoc_setopenaction|harudoc_setpagelayout|harudoc_setpagemode|' + + 'harudoc_setpagesconfiguration|harudoc_setpassword|harudoc_setpermission|harudoc_usecnsencodings|harudoc_usecnsfonts|' + + 'harudoc_usecntencodings|harudoc_usecntfonts|harudoc_usejpencodings|harudoc_usejpfonts|harudoc_usekrencodings|harudoc_usekrfonts|' + + 'haruencoder|haruencoder_getbytetype|haruencoder_gettype|haruencoder_getunicode|haruencoder_getwritingmode|haruexception|harufont|' + + 'harufont_getascent|harufont_getcapheight|harufont_getdescent|harufont_getencodingname|harufont_getfontname|harufont_gettextwidth|' + + 'harufont_getunicodewidth|harufont_getxheight|harufont_measuretext|haruimage|haruimage_getbitspercomponent|haruimage_getcolorspace|' + + 'haruimage_getheight|haruimage_getsize|haruimage_getwidth|haruimage_setcolormask|haruimage_setmaskimage|haruoutline|' + + 'haruoutline_setdestination|haruoutline_setopened|harupage|harupage_arc|harupage_begintext|harupage_circle|harupage_closepath|' + + 'harupage_concat|harupage_createdestination|harupage_createlinkannotation|harupage_createtextannotation|harupage_createurlannotation|' + + 'harupage_curveto|harupage_curveto2|harupage_curveto3|harupage_drawimage|harupage_ellipse|harupage_endpath|harupage_endtext|' + + 'harupage_eofill|harupage_eofillstroke|harupage_fill|harupage_fillstroke|harupage_getcharspace|harupage_getcmykfill|harupage_getcmykstroke|' + + 'harupage_getcurrentfont|harupage_getcurrentfontsize|harupage_getcurrentpos|harupage_getcurrenttextpos|harupage_getdash|' + + 'harupage_getfillingcolorspace|harupage_getflatness|harupage_getgmode|harupage_getgrayfill|harupage_getgraystroke|harupage_getheight|' + + 'harupage_gethorizontalscaling|harupage_getlinecap|harupage_getlinejoin|harupage_getlinewidth|harupage_getmiterlimit|harupage_getrgbfill|' + + 'harupage_getrgbstroke|harupage_getstrokingcolorspace|harupage_gettextleading|harupage_gettextmatrix|harupage_gettextrenderingmode|' + + 'harupage_gettextrise|harupage_gettextwidth|harupage_gettransmatrix|harupage_getwidth|harupage_getwordspace|harupage_lineto|' + + 'harupage_measuretext|harupage_movetextpos|harupage_moveto|harupage_movetonextline|harupage_rectangle|harupage_setcharspace|' + + 'harupage_setcmykfill|harupage_setcmykstroke|harupage_setdash|harupage_setflatness|harupage_setfontandsize|harupage_setgrayfill|' + + 'harupage_setgraystroke|harupage_setheight|harupage_sethorizontalscaling|harupage_setlinecap|harupage_setlinejoin|harupage_setlinewidth|' + + 'harupage_setmiterlimit|harupage_setrgbfill|harupage_setrgbstroke|harupage_setrotate|harupage_setsize|harupage_setslideshow|' + + 'harupage_settextleading|harupage_settextmatrix|harupage_settextrenderingmode|harupage_settextrise|harupage_setwidth|harupage_setwordspace|' + + 'harupage_showtext|harupage_showtextnextline|harupage_stroke|harupage_textout|harupage_textrect|hasconstant|hash|hash_algos|hash_copy|' + + 'hash_file|hash_final|hash_hmac|hash_hmac_file|hash_init|hash_update|hash_update_file|hash_update_stream|hasmethod|hasproperty|header|' + + 'header_register_callback|header_remove|headers_list|headers_sent|hebrev|hebrevc|hex2bin|hexdec|highlight_file|highlight_string|' + + 'html_entity_decode|htmlentities|htmlspecialchars|htmlspecialchars_decode|http_build_cookie|http_build_query|http_build_str|http_build_url|' + + 'http_cache_etag|http_cache_last_modified|http_chunked_decode|http_date|http_deflate|http_get|http_get_request_body|' + + 'http_get_request_body_stream|http_get_request_headers|http_head|http_inflate|http_match_etag|http_match_modified|' + + 'http_match_request_header|http_negotiate_charset|http_negotiate_content_type|http_negotiate_language|http_parse_cookie|http_parse_headers|' + + 'http_parse_message|http_parse_params|http_persistent_handles_clean|http_persistent_handles_count|http_persistent_handles_ident|' + + 'http_post_data|http_post_fields|http_put_data|http_put_file|http_put_stream|http_redirect|http_request|http_request_body_encode|' + + 'http_request_method_exists|http_request_method_name|http_request_method_register|http_request_method_unregister|http_response_code|' + + 'http_send_content_disposition|http_send_content_type|http_send_data|http_send_file|http_send_last_modified|http_send_status|' + + 'http_send_stream|http_support|http_throttle|httpdeflatestream|httpdeflatestream_construct|httpdeflatestream_factory|' + + 'httpdeflatestream_finish|httpdeflatestream_flush|httpdeflatestream_update|httpinflatestream|httpinflatestream_construct|' + + 'httpinflatestream_factory|httpinflatestream_finish|httpinflatestream_flush|httpinflatestream_update|httpmessage|httpmessage_addheaders|' + + 'httpmessage_construct|httpmessage_detach|httpmessage_factory|httpmessage_fromenv|httpmessage_fromstring|httpmessage_getbody|' + + 'httpmessage_getheader|httpmessage_getheaders|httpmessage_gethttpversion|httpmessage_getparentmessage|httpmessage_getrequestmethod|' + + 'httpmessage_getrequesturl|httpmessage_getresponsecode|httpmessage_getresponsestatus|httpmessage_gettype|httpmessage_guesscontenttype|' + + 'httpmessage_prepend|httpmessage_reverse|httpmessage_send|httpmessage_setbody|httpmessage_setheaders|httpmessage_sethttpversion|' + + 'httpmessage_setrequestmethod|httpmessage_setrequesturl|httpmessage_setresponsecode|httpmessage_setresponsestatus|httpmessage_settype|' + + 'httpmessage_tomessagetypeobject|httpmessage_tostring|httpquerystring|httpquerystring_construct|httpquerystring_get|httpquerystring_mod|' + + 'httpquerystring_set|httpquerystring_singleton|httpquerystring_toarray|httpquerystring_tostring|httpquerystring_xlate|httprequest|' + + 'httprequest_addcookies|httprequest_addheaders|httprequest_addpostfields|httprequest_addpostfile|httprequest_addputdata|' + + 'httprequest_addquerydata|httprequest_addrawpostdata|httprequest_addssloptions|httprequest_clearhistory|httprequest_construct|' + + 'httprequest_enablecookies|httprequest_getcontenttype|httprequest_getcookies|httprequest_getheaders|httprequest_gethistory|' + + 'httprequest_getmethod|httprequest_getoptions|httprequest_getpostfields|httprequest_getpostfiles|httprequest_getputdata|' + + 'httprequest_getputfile|httprequest_getquerydata|httprequest_getrawpostdata|httprequest_getrawrequestmessage|' + + 'httprequest_getrawresponsemessage|httprequest_getrequestmessage|httprequest_getresponsebody|httprequest_getresponsecode|' + + 'httprequest_getresponsecookies|httprequest_getresponsedata|httprequest_getresponseheader|httprequest_getresponseinfo|' + + 'httprequest_getresponsemessage|httprequest_getresponsestatus|httprequest_getssloptions|httprequest_geturl|httprequest_resetcookies|' + + 'httprequest_send|httprequest_setcontenttype|httprequest_setcookies|httprequest_setheaders|httprequest_setmethod|httprequest_setoptions|' + + 'httprequest_setpostfields|httprequest_setpostfiles|httprequest_setputdata|httprequest_setputfile|httprequest_setquerydata|' + + 'httprequest_setrawpostdata|httprequest_setssloptions|httprequest_seturl|httprequestpool|httprequestpool_attach|httprequestpool_construct|' + + 'httprequestpool_destruct|httprequestpool_detach|httprequestpool_getattachedrequests|httprequestpool_getfinishedrequests|' + + 'httprequestpool_reset|httprequestpool_send|httprequestpool_socketperform|httprequestpool_socketselect|httpresponse|httpresponse_capture|' + + 'httpresponse_getbuffersize|httpresponse_getcache|httpresponse_getcachecontrol|httpresponse_getcontentdisposition|' + + 'httpresponse_getcontenttype|httpresponse_getdata|httpresponse_getetag|httpresponse_getfile|httpresponse_getgzip|httpresponse_getheader|' + + 'httpresponse_getlastmodified|httpresponse_getrequestbody|httpresponse_getrequestbodystream|httpresponse_getrequestheaders|' + + 'httpresponse_getstream|httpresponse_getthrottledelay|httpresponse_guesscontenttype|httpresponse_redirect|httpresponse_send|' + + 'httpresponse_setbuffersize|httpresponse_setcache|httpresponse_setcachecontrol|httpresponse_setcontentdisposition|' + + 'httpresponse_setcontenttype|httpresponse_setdata|httpresponse_setetag|httpresponse_setfile|httpresponse_setgzip|httpresponse_setheader|' + + 'httpresponse_setlastmodified|httpresponse_setstream|httpresponse_setthrottledelay|httpresponse_status|hw_array2objrec|hw_changeobject|' + + 'hw_children|hw_childrenobj|hw_close|hw_connect|hw_connection_info|hw_cp|hw_deleteobject|hw_docbyanchor|hw_docbyanchorobj|' + + 'hw_document_attributes|hw_document_bodytag|hw_document_content|hw_document_setcontent|hw_document_size|hw_dummy|hw_edittext|hw_error|' + + 'hw_errormsg|hw_free_document|hw_getanchors|hw_getanchorsobj|hw_getandlock|hw_getchildcoll|hw_getchildcollobj|hw_getchilddoccoll|' + + 'hw_getchilddoccollobj|hw_getobject|hw_getobjectbyquery|hw_getobjectbyquerycoll|hw_getobjectbyquerycollobj|hw_getobjectbyqueryobj|' + + 'hw_getparents|hw_getparentsobj|hw_getrellink|hw_getremote|hw_getremotechildren|hw_getsrcbydestobj|hw_gettext|hw_getusername|hw_identify|' + + 'hw_incollections|hw_info|hw_inscoll|hw_insdoc|hw_insertanchors|hw_insertdocument|hw_insertobject|hw_mapid|hw_modifyobject|hw_mv|' + + 'hw_new_document|hw_objrec2array|hw_output_document|hw_pconnect|hw_pipedocument|hw_root|hw_setlinkroot|hw_stat|hw_unlock|hw_who|' + + 'hwapi_attribute|hwapi_attribute_key|hwapi_attribute_langdepvalue|hwapi_attribute_value|hwapi_attribute_values|hwapi_checkin|' + + 'hwapi_checkout|hwapi_children|hwapi_content|hwapi_content_mimetype|hwapi_content_read|hwapi_copy|hwapi_dbstat|hwapi_dcstat|' + + 'hwapi_dstanchors|hwapi_dstofsrcanchor|hwapi_error_count|hwapi_error_reason|hwapi_find|hwapi_ftstat|hwapi_hgcsp|hwapi_hwstat|' + + 'hwapi_identify|hwapi_info|hwapi_insert|hwapi_insertanchor|hwapi_insertcollection|hwapi_insertdocument|hwapi_link|hwapi_lock|hwapi_move|' + + 'hwapi_new_content|hwapi_object|hwapi_object_assign|hwapi_object_attreditable|hwapi_object_count|hwapi_object_insert|hwapi_object_new|' + + 'hwapi_object_remove|hwapi_object_title|hwapi_object_value|hwapi_objectbyanchor|hwapi_parents|hwapi_reason_description|hwapi_reason_type|' + + 'hwapi_remove|hwapi_replace|hwapi_setcommittedversion|hwapi_srcanchors|hwapi_srcsofdst|hwapi_unlock|hwapi_user|hwapi_userlist|hypot|' + + 'ibase_add_user|ibase_affected_rows|ibase_backup|ibase_blob_add|ibase_blob_cancel|ibase_blob_close|ibase_blob_create|ibase_blob_echo|' + + 'ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_commit_ret|ibase_connect|ibase_db_info|' + + 'ibase_delete_user|ibase_drop_db|ibase_errcode|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|' + + 'ibase_field_info|ibase_free_event_handler|ibase_free_query|ibase_free_result|ibase_gen_id|ibase_maintain_db|ibase_modify_user|' + + 'ibase_name_result|ibase_num_fields|ibase_num_params|ibase_param_info|ibase_pconnect|ibase_prepare|ibase_query|ibase_restore|' + + 'ibase_rollback|ibase_rollback_ret|ibase_server_info|ibase_service_attach|ibase_service_detach|ibase_set_event_handler|ibase_timefmt|' + + 'ibase_trans|ibase_wait_event|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_decode_headers|iconv_mime_encode|iconv_set_encoding|' + + 'iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|id3_get_frame_long_name|id3_get_frame_short_name|id3_get_genre_id|id3_get_genre_list|' + + 'id3_get_genre_name|id3_get_tag|id3_get_version|id3_remove_tag|id3_set_tag|id3v2attachedpictureframe|id3v2frame|id3v2tag|idate|' + + 'idn_to_ascii|idn_to_unicode|idn_to_utf8|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close|ifx_connect|ifx_copy_blob|' + + 'ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|' + + 'ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows|' + + 'ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|' + + 'ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|iis_add_server|iis_get_dir_security|' + + 'iis_get_script_map|iis_get_server_by_comment|iis_get_server_by_path|iis_get_server_rights|iis_get_service_state|iis_remove_server|' + + 'iis_set_app_settings|iis_set_dir_security|iis_set_script_map|iis_set_server_rights|iis_start_server|iis_start_service|iis_stop_server|' + + 'iis_stop_service|image2wbmp|image_type_to_extension|image_type_to_mime_type|imagealphablending|imageantialias|imagearc|imagechar|' + + 'imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|' + + 'imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|' + + 'imagecolorsforindex|imagecolorstotal|imagecolortransparent|imageconvolution|imagecopy|imagecopymerge|imagecopymergegray|' + + 'imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgif|' + + 'imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|' + + 'imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc|imagefilledellipse|imagefilledpolygon|' + + 'imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd|' + + 'imagegd2|imagegif|imagegrabscreen|imagegrabwindow|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|' + + 'imagepalettecopy|imagepng|imagepolygon|imagepsbbox|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|' + + 'imagepstext|imagerectangle|imagerotate|imagesavealpha|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|' + + 'imagestring|imagestringup|imagesx|imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imagexbm|imagick|' + + 'imagick_adaptiveblurimage|imagick_adaptiveresizeimage|imagick_adaptivesharpenimage|imagick_adaptivethresholdimage|imagick_addimage|' + + 'imagick_addnoiseimage|imagick_affinetransformimage|imagick_animateimages|imagick_annotateimage|imagick_appendimages|imagick_averageimages|' + + 'imagick_blackthresholdimage|imagick_blurimage|imagick_borderimage|imagick_charcoalimage|imagick_chopimage|imagick_clear|imagick_clipimage|' + + 'imagick_clippathimage|imagick_clone|imagick_clutimage|imagick_coalesceimages|imagick_colorfloodfillimage|imagick_colorizeimage|' + + 'imagick_combineimages|imagick_commentimage|imagick_compareimagechannels|imagick_compareimagelayers|imagick_compareimages|' + + 'imagick_compositeimage|imagick_construct|imagick_contrastimage|imagick_contraststretchimage|imagick_convolveimage|imagick_cropimage|' + + 'imagick_cropthumbnailimage|imagick_current|imagick_cyclecolormapimage|imagick_decipherimage|imagick_deconstructimages|' + + 'imagick_deleteimageartifact|imagick_despeckleimage|imagick_destroy|imagick_displayimage|imagick_displayimages|imagick_distortimage|' + + 'imagick_drawimage|imagick_edgeimage|imagick_embossimage|imagick_encipherimage|imagick_enhanceimage|imagick_equalizeimage|' + + 'imagick_evaluateimage|imagick_extentimage|imagick_flattenimages|imagick_flipimage|imagick_floodfillpaintimage|imagick_flopimage|' + + 'imagick_frameimage|imagick_fximage|imagick_gammaimage|imagick_gaussianblurimage|imagick_getcolorspace|imagick_getcompression|' + + 'imagick_getcompressionquality|imagick_getcopyright|imagick_getfilename|imagick_getfont|imagick_getformat|imagick_getgravity|' + + 'imagick_gethomeurl|imagick_getimage|imagick_getimagealphachannel|imagick_getimageartifact|imagick_getimagebackgroundcolor|' + + 'imagick_getimageblob|imagick_getimageblueprimary|imagick_getimagebordercolor|imagick_getimagechanneldepth|' + + 'imagick_getimagechanneldistortion|imagick_getimagechanneldistortions|imagick_getimagechannelextrema|imagick_getimagechannelmean|' + + 'imagick_getimagechannelrange|imagick_getimagechannelstatistics|imagick_getimageclipmask|imagick_getimagecolormapcolor|' + + 'imagick_getimagecolors|imagick_getimagecolorspace|imagick_getimagecompose|imagick_getimagecompression|imagick_getimagecompressionquality|' + + 'imagick_getimagedelay|imagick_getimagedepth|imagick_getimagedispose|imagick_getimagedistortion|imagick_getimageextrema|' + + 'imagick_getimagefilename|imagick_getimageformat|imagick_getimagegamma|imagick_getimagegeometry|imagick_getimagegravity|' + + 'imagick_getimagegreenprimary|imagick_getimageheight|imagick_getimagehistogram|imagick_getimageindex|imagick_getimageinterlacescheme|' + + 'imagick_getimageinterpolatemethod|imagick_getimageiterations|imagick_getimagelength|imagick_getimagemagicklicense|imagick_getimagematte|' + + 'imagick_getimagemattecolor|imagick_getimageorientation|imagick_getimagepage|imagick_getimagepixelcolor|imagick_getimageprofile|' + + 'imagick_getimageprofiles|imagick_getimageproperties|imagick_getimageproperty|imagick_getimageredprimary|imagick_getimageregion|' + + 'imagick_getimagerenderingintent|imagick_getimageresolution|imagick_getimagesblob|imagick_getimagescene|imagick_getimagesignature|' + + 'imagick_getimagesize|imagick_getimagetickspersecond|imagick_getimagetotalinkdensity|imagick_getimagetype|imagick_getimageunits|' + + 'imagick_getimagevirtualpixelmethod|imagick_getimagewhitepoint|imagick_getimagewidth|imagick_getinterlacescheme|imagick_getiteratorindex|' + + 'imagick_getnumberimages|imagick_getoption|imagick_getpackagename|imagick_getpage|imagick_getpixeliterator|imagick_getpixelregioniterator|' + + 'imagick_getpointsize|imagick_getquantumdepth|imagick_getquantumrange|imagick_getreleasedate|imagick_getresource|imagick_getresourcelimit|' + + 'imagick_getsamplingfactors|imagick_getsize|imagick_getsizeoffset|imagick_getversion|imagick_hasnextimage|imagick_haspreviousimage|' + + 'imagick_identifyimage|imagick_implodeimage|imagick_labelimage|imagick_levelimage|imagick_linearstretchimage|imagick_liquidrescaleimage|' + + 'imagick_magnifyimage|imagick_mapimage|imagick_mattefloodfillimage|imagick_medianfilterimage|imagick_mergeimagelayers|imagick_minifyimage|' + + 'imagick_modulateimage|imagick_montageimage|imagick_morphimages|imagick_mosaicimages|imagick_motionblurimage|imagick_negateimage|' + + 'imagick_newimage|imagick_newpseudoimage|imagick_nextimage|imagick_normalizeimage|imagick_oilpaintimage|imagick_opaquepaintimage|' + + 'imagick_optimizeimagelayers|imagick_orderedposterizeimage|imagick_paintfloodfillimage|imagick_paintopaqueimage|' + + 'imagick_painttransparentimage|imagick_pingimage|imagick_pingimageblob|imagick_pingimagefile|imagick_polaroidimage|imagick_posterizeimage|' + + 'imagick_previewimages|imagick_previousimage|imagick_profileimage|imagick_quantizeimage|imagick_quantizeimages|imagick_queryfontmetrics|' + + 'imagick_queryfonts|imagick_queryformats|imagick_radialblurimage|imagick_raiseimage|imagick_randomthresholdimage|imagick_readimage|' + + 'imagick_readimageblob|imagick_readimagefile|imagick_recolorimage|imagick_reducenoiseimage|imagick_removeimage|imagick_removeimageprofile|' + + 'imagick_render|imagick_resampleimage|imagick_resetimagepage|imagick_resizeimage|imagick_rollimage|imagick_rotateimage|' + + 'imagick_roundcorners|imagick_sampleimage|imagick_scaleimage|imagick_separateimagechannel|imagick_sepiatoneimage|' + + 'imagick_setbackgroundcolor|imagick_setcolorspace|imagick_setcompression|imagick_setcompressionquality|imagick_setfilename|' + + 'imagick_setfirstiterator|imagick_setfont|imagick_setformat|imagick_setgravity|imagick_setimage|imagick_setimagealphachannel|' + + 'imagick_setimageartifact|imagick_setimagebackgroundcolor|imagick_setimagebias|imagick_setimageblueprimary|imagick_setimagebordercolor|' + + 'imagick_setimagechanneldepth|imagick_setimageclipmask|imagick_setimagecolormapcolor|imagick_setimagecolorspace|imagick_setimagecompose|' + + 'imagick_setimagecompression|imagick_setimagecompressionquality|imagick_setimagedelay|imagick_setimagedepth|imagick_setimagedispose|' + + 'imagick_setimageextent|imagick_setimagefilename|imagick_setimageformat|imagick_setimagegamma|imagick_setimagegravity|' + + 'imagick_setimagegreenprimary|imagick_setimageindex|imagick_setimageinterlacescheme|imagick_setimageinterpolatemethod|' + + 'imagick_setimageiterations|imagick_setimagematte|imagick_setimagemattecolor|imagick_setimageopacity|imagick_setimageorientation|' + + 'imagick_setimagepage|imagick_setimageprofile|imagick_setimageproperty|imagick_setimageredprimary|imagick_setimagerenderingintent|' + + 'imagick_setimageresolution|imagick_setimagescene|imagick_setimagetickspersecond|imagick_setimagetype|imagick_setimageunits|' + + 'imagick_setimagevirtualpixelmethod|imagick_setimagewhitepoint|imagick_setinterlacescheme|imagick_setiteratorindex|imagick_setlastiterator|' + + 'imagick_setoption|imagick_setpage|imagick_setpointsize|imagick_setresolution|imagick_setresourcelimit|imagick_setsamplingfactors|' + + 'imagick_setsize|imagick_setsizeoffset|imagick_settype|imagick_shadeimage|imagick_shadowimage|imagick_sharpenimage|imagick_shaveimage|' + + 'imagick_shearimage|imagick_sigmoidalcontrastimage|imagick_sketchimage|imagick_solarizeimage|imagick_spliceimage|imagick_spreadimage|' + + 'imagick_steganoimage|imagick_stereoimage|imagick_stripimage|imagick_swirlimage|imagick_textureimage|imagick_thresholdimage|' + + 'imagick_thumbnailimage|imagick_tintimage|imagick_transformimage|imagick_transparentpaintimage|imagick_transposeimage|' + + 'imagick_transverseimage|imagick_trimimage|imagick_uniqueimagecolors|imagick_unsharpmaskimage|imagick_valid|imagick_vignetteimage|' + + 'imagick_waveimage|imagick_whitethresholdimage|imagick_writeimage|imagick_writeimagefile|imagick_writeimages|imagick_writeimagesfile|' + + 'imagickdraw|imagickdraw_affine|imagickdraw_annotation|imagickdraw_arc|imagickdraw_bezier|imagickdraw_circle|imagickdraw_clear|' + + 'imagickdraw_clone|imagickdraw_color|imagickdraw_comment|imagickdraw_composite|imagickdraw_construct|imagickdraw_destroy|' + + 'imagickdraw_ellipse|imagickdraw_getclippath|imagickdraw_getcliprule|imagickdraw_getclipunits|imagickdraw_getfillcolor|' + + 'imagickdraw_getfillopacity|imagickdraw_getfillrule|imagickdraw_getfont|imagickdraw_getfontfamily|imagickdraw_getfontsize|' + + 'imagickdraw_getfontstyle|imagickdraw_getfontweight|imagickdraw_getgravity|imagickdraw_getstrokeantialias|imagickdraw_getstrokecolor|' + + 'imagickdraw_getstrokedasharray|imagickdraw_getstrokedashoffset|imagickdraw_getstrokelinecap|imagickdraw_getstrokelinejoin|' + + 'imagickdraw_getstrokemiterlimit|imagickdraw_getstrokeopacity|imagickdraw_getstrokewidth|imagickdraw_gettextalignment|' + + 'imagickdraw_gettextantialias|imagickdraw_gettextdecoration|imagickdraw_gettextencoding|imagickdraw_gettextundercolor|' + + 'imagickdraw_getvectorgraphics|imagickdraw_line|imagickdraw_matte|imagickdraw_pathclose|imagickdraw_pathcurvetoabsolute|' + + 'imagickdraw_pathcurvetoquadraticbezierabsolute|imagickdraw_pathcurvetoquadraticbezierrelative|' + + 'imagickdraw_pathcurvetoquadraticbeziersmoothabsolute|imagickdraw_pathcurvetoquadraticbeziersmoothrelative|imagickdraw_pathcurvetorelative|' + + 'imagickdraw_pathcurvetosmoothabsolute|imagickdraw_pathcurvetosmoothrelative|imagickdraw_pathellipticarcabsolute|' + + 'imagickdraw_pathellipticarcrelative|imagickdraw_pathfinish|imagickdraw_pathlinetoabsolute|imagickdraw_pathlinetohorizontalabsolute|' + + 'imagickdraw_pathlinetohorizontalrelative|imagickdraw_pathlinetorelative|imagickdraw_pathlinetoverticalabsolute|' + + 'imagickdraw_pathlinetoverticalrelative|imagickdraw_pathmovetoabsolute|imagickdraw_pathmovetorelative|imagickdraw_pathstart|' + + 'imagickdraw_point|imagickdraw_polygon|imagickdraw_polyline|imagickdraw_pop|imagickdraw_popclippath|imagickdraw_popdefs|' + + 'imagickdraw_poppattern|imagickdraw_push|imagickdraw_pushclippath|imagickdraw_pushdefs|imagickdraw_pushpattern|imagickdraw_rectangle|' + + 'imagickdraw_render|imagickdraw_rotate|imagickdraw_roundrectangle|imagickdraw_scale|imagickdraw_setclippath|imagickdraw_setcliprule|' + + 'imagickdraw_setclipunits|imagickdraw_setfillalpha|imagickdraw_setfillcolor|imagickdraw_setfillopacity|imagickdraw_setfillpatternurl|' + + 'imagickdraw_setfillrule|imagickdraw_setfont|imagickdraw_setfontfamily|imagickdraw_setfontsize|imagickdraw_setfontstretch|' + + 'imagickdraw_setfontstyle|imagickdraw_setfontweight|imagickdraw_setgravity|imagickdraw_setstrokealpha|imagickdraw_setstrokeantialias|' + + 'imagickdraw_setstrokecolor|imagickdraw_setstrokedasharray|imagickdraw_setstrokedashoffset|imagickdraw_setstrokelinecap|' + + 'imagickdraw_setstrokelinejoin|imagickdraw_setstrokemiterlimit|imagickdraw_setstrokeopacity|imagickdraw_setstrokepatternurl|' + + 'imagickdraw_setstrokewidth|imagickdraw_settextalignment|imagickdraw_settextantialias|imagickdraw_settextdecoration|' + + 'imagickdraw_settextencoding|imagickdraw_settextundercolor|imagickdraw_setvectorgraphics|imagickdraw_setviewbox|imagickdraw_skewx|' + + 'imagickdraw_skewy|imagickdraw_translate|imagickpixel|imagickpixel_clear|imagickpixel_construct|imagickpixel_destroy|imagickpixel_getcolor|' + + 'imagickpixel_getcolorasstring|imagickpixel_getcolorcount|imagickpixel_getcolorvalue|imagickpixel_gethsl|imagickpixel_issimilar|' + + 'imagickpixel_setcolor|imagickpixel_setcolorvalue|imagickpixel_sethsl|imagickpixeliterator|imagickpixeliterator_clear|' + + 'imagickpixeliterator_construct|imagickpixeliterator_destroy|imagickpixeliterator_getcurrentiteratorrow|' + + 'imagickpixeliterator_getiteratorrow|imagickpixeliterator_getnextiteratorrow|imagickpixeliterator_getpreviousiteratorrow|' + + 'imagickpixeliterator_newpixeliterator|imagickpixeliterator_newpixelregioniterator|imagickpixeliterator_resetiterator|' + + 'imagickpixeliterator_setiteratorfirstrow|imagickpixeliterator_setiteratorlastrow|imagickpixeliterator_setiteratorrow|' + + 'imagickpixeliterator_synciterator|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|' + + 'imap_clearflag_full|imap_close|imap_create|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors|imap_expunge|imap_fetch_overview|' + + 'imap_fetchbody|imap_fetchheader|imap_fetchmime|imap_fetchstructure|imap_fetchtext|imap_gc|imap_get_quota|imap_get_quotaroot|imap_getacl|' + + 'imap_getmailboxes|imap_getsubscribed|imap_header|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_listmailbox|imap_listscan|' + + 'imap_listsubscribed|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode|' + + 'imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_rename|imap_renamemailbox|imap_reopen|' + + 'imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_savebody|imap_scan|imap_scanmailbox|imap_search|' + + 'imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread|imap_timeout|imap_uid|imap_undelete|' + + 'imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implementsinterface|implode|import_request_variables|in_array|include|' + + 'include_once|inclued_get_data|inet_ntop|inet_pton|infiniteiterator|ingres_autocommit|ingres_autocommit_state|ingres_charset|ingres_close|' + + 'ingres_commit|ingres_connect|ingres_cursor|ingres_errno|ingres_error|ingres_errsqlstate|ingres_escape_string|ingres_execute|' + + 'ingres_fetch_array|ingres_fetch_assoc|ingres_fetch_object|ingres_fetch_proc_return|ingres_fetch_row|ingres_field_length|ingres_field_name|' + + 'ingres_field_nullable|ingres_field_precision|ingres_field_scale|ingres_field_type|ingres_free_result|ingres_next_error|ingres_num_fields|' + + 'ingres_num_rows|ingres_pconnect|ingres_prepare|ingres_query|ingres_result_seek|ingres_rollback|ingres_set_environment|' + + 'ingres_unbuffered_query|ini_alter|ini_get|ini_get_all|ini_restore|ini_set|innamespace|inotify_add_watch|inotify_init|inotify_queue_len|' + + 'inotify_read|inotify_rm_watch|interface_exists|intl_error_name|intl_get_error_code|intl_get_error_message|intl_is_failure|' + + 'intldateformatter|intval|invalidargumentexception|invoke|invokeargs|ip2long|iptcembed|iptcparse|is_a|is_array|is_bool|is_callable|is_dir|' + + 'is_double|is_executable|is_file|is_finite|is_float|is_infinite|is_int|is_integer|is_link|is_long|is_nan|is_null|is_numeric|is_object|' + + 'is_readable|is_real|is_resource|is_scalar|is_soap_fault|is_string|is_subclass_of|is_uploaded_file|is_writable|is_writeable|isabstract|' + + 'iscloneable|isdisabled|isfinal|isinstance|isinstantiable|isinterface|isinternal|isiterateable|isset|issubclassof|isuserdefined|iterator|' + + 'iterator_apply|iterator_count|iterator_to_array|iteratoraggregate|iteratoriterator|java_last_exception_clear|java_last_exception_get|' + + 'jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|json_decode|json_encode|' + + 'json_last_error|jsonserializable|judy|judy_type|judy_version|juliantojd|kadm5_chpass_principal|kadm5_create_principal|' + + 'kadm5_delete_principal|kadm5_destroy|kadm5_flush|kadm5_get_policies|kadm5_get_principal|kadm5_get_principals|kadm5_init_with_password|' + + 'kadm5_modify_principal|key|krsort|ksort|lcfirst|lcg_value|lchgrp|lchown|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_close|ldap_compare|' + + 'ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|' + + 'ldap_first_entry|ldap_first_reference|ldap_free_result|ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|' + + 'ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_modify|ldap_next_attribute|ldap_next_entry|' + + 'ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_sasl_bind|ldap_search|ldap_set_option|' + + 'ldap_set_rebind_proc|ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|lengthexception|levenshtein|libxml_clear_errors|' + + 'libxml_disable_entity_loader|libxml_get_errors|libxml_get_last_error|libxml_set_streams_context|libxml_use_internal_errors|libxmlerror|' + + 'limititerator|link|linkinfo|list|locale|localeconv|localtime|log|log10|log1p|logicexception|long2ip|lstat|ltrim|lzf_compress|' + + 'lzf_decompress|lzf_optimized_for|m_checkstatus|m_completeauthorizations|m_connect|m_connectionerror|m_deletetrans|m_destroyconn|' + + 'm_destroyengine|m_getcell|m_getcellbynum|m_getcommadelimited|m_getheader|m_initconn|m_initengine|m_iscommadelimited|m_maxconntimeout|' + + 'm_monitor|m_numcolumns|m_numrows|m_parsecommadelimited|m_responsekeys|m_responseparam|m_returnstatus|m_setblocking|m_setdropfile|m_setip|' + + 'm_setssl|m_setssl_cafile|m_setssl_files|m_settimeout|m_sslcert_gen_hash|m_transactionssent|m_transinqueue|m_transkeyval|m_transnew|' + + 'm_transsend|m_uwait|m_validateidentifier|m_verifyconnection|m_verifysslcert|magic_quotes_runtime|mail|' + + 'mailparse_determine_best_xfer_encoding|mailparse_msg_create|mailparse_msg_extract_part|mailparse_msg_extract_part_file|' + + 'mailparse_msg_extract_whole_part_file|mailparse_msg_free|mailparse_msg_get_part|mailparse_msg_get_part_data|mailparse_msg_get_structure|' + + 'mailparse_msg_parse|mailparse_msg_parse_file|mailparse_rfc822_parse_addresses|mailparse_stream_encode|mailparse_uudecode_all|main|max|' + + 'maxdb_affected_rows|maxdb_autocommit|maxdb_bind_param|maxdb_bind_result|maxdb_change_user|maxdb_character_set_name|maxdb_client_encoding|' + + 'maxdb_close|maxdb_close_long_data|maxdb_commit|maxdb_connect|maxdb_connect_errno|maxdb_connect_error|maxdb_data_seek|maxdb_debug|' + + 'maxdb_disable_reads_from_master|maxdb_disable_rpl_parse|maxdb_dump_debug_info|maxdb_embedded_connect|maxdb_enable_reads_from_master|' + + 'maxdb_enable_rpl_parse|maxdb_errno|maxdb_error|maxdb_escape_string|maxdb_execute|maxdb_fetch|maxdb_fetch_array|maxdb_fetch_assoc|' + + 'maxdb_fetch_field|maxdb_fetch_field_direct|maxdb_fetch_fields|maxdb_fetch_lengths|maxdb_fetch_object|maxdb_fetch_row|maxdb_field_count|' + + 'maxdb_field_seek|maxdb_field_tell|maxdb_free_result|maxdb_get_client_info|maxdb_get_client_version|maxdb_get_host_info|maxdb_get_metadata|' + + 'maxdb_get_proto_info|maxdb_get_server_info|maxdb_get_server_version|maxdb_info|maxdb_init|maxdb_insert_id|maxdb_kill|maxdb_master_query|' + + 'maxdb_more_results|maxdb_multi_query|maxdb_next_result|maxdb_num_fields|maxdb_num_rows|maxdb_options|maxdb_param_count|maxdb_ping|' + + 'maxdb_prepare|maxdb_query|maxdb_real_connect|maxdb_real_escape_string|maxdb_real_query|maxdb_report|maxdb_rollback|' + + 'maxdb_rpl_parse_enabled|maxdb_rpl_probe|maxdb_rpl_query_type|maxdb_select_db|maxdb_send_long_data|maxdb_send_query|maxdb_server_end|' + + 'maxdb_server_init|maxdb_set_opt|maxdb_sqlstate|maxdb_ssl_set|maxdb_stat|maxdb_stmt_affected_rows|maxdb_stmt_bind_param|' + + 'maxdb_stmt_bind_result|maxdb_stmt_close|maxdb_stmt_close_long_data|maxdb_stmt_data_seek|maxdb_stmt_errno|maxdb_stmt_error|' + + 'maxdb_stmt_execute|maxdb_stmt_fetch|maxdb_stmt_free_result|maxdb_stmt_init|maxdb_stmt_num_rows|maxdb_stmt_param_count|maxdb_stmt_prepare|' + + 'maxdb_stmt_reset|maxdb_stmt_result_metadata|maxdb_stmt_send_long_data|maxdb_stmt_sqlstate|maxdb_stmt_store_result|maxdb_store_result|' + + 'maxdb_thread_id|maxdb_thread_safe|maxdb_use_result|maxdb_warning_count|mb_check_encoding|mb_convert_case|mb_convert_encoding|' + + 'mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|' + + 'mb_encode_numericentity|mb_encoding_aliases|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|' + + 'mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace|' + + 'mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_list_encodings|mb_output_handler|mb_parse_str|' + + 'mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_stripos|mb_stristr|' + + 'mb_strlen|mb_strpos|mb_strrchr|mb_strrichr|mb_strripos|mb_strrpos|mb_strstr|mb_strtolower|mb_strtoupper|mb_strwidth|' + + 'mb_substitute_character|mb_substr|mb_substr_count|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|' + + 'mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|' + + 'mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|' + + 'mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic|mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|' + + 'mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|' + + 'mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|' + + 'mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|md5|md5_file|' + + 'mdecrypt_generic|memcache|memcache_debug|memcached|memory_get_peak_usage|memory_get_usage|messageformatter|metaphone|method_exists|mhash|' + + 'mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|ming_keypress|' + + 'ming_setcubicthreshold|ming_setscale|ming_setswfcompression|ming_useconstants|ming_useswfversion|mkdir|mktime|money_format|mongo|' + + 'mongobindata|mongocode|mongocollection|mongoconnectionexception|mongocursor|mongocursorexception|mongocursortimeoutexception|mongodate|' + + 'mongodb|mongodbref|mongoexception|mongogridfs|mongogridfscursor|mongogridfsexception|mongogridfsfile|mongoid|mongoint32|mongoint64|' + + 'mongomaxkey|mongominkey|mongoregex|mongotimestamp|move_uploaded_file|mpegfile|mqseries_back|mqseries_begin|mqseries_close|mqseries_cmit|' + + 'mqseries_conn|mqseries_connx|mqseries_disc|mqseries_get|mqseries_inq|mqseries_open|mqseries_put|mqseries_put1|mqseries_set|' + + 'mqseries_strerror|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|' + + 'msession_get_array|msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|' + + 'msession_set|msession_set_array|msession_set_data|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_queue_exists|' + + 'msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue|msql|msql_affected_rows|msql_close|msql_connect|msql_create_db|' + + 'msql_createdb|msql_data_seek|msql_db_query|msql_dbname|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|' + + 'msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_fieldflags|' + + 'msql_fieldlen|msql_fieldname|msql_fieldtable|msql_fieldtype|msql_free_result|msql_list_dbs|msql_list_fields|msql_list_tables|' + + 'msql_num_fields|msql_num_rows|msql_numfields|msql_numrows|msql_pconnect|msql_query|msql_regcase|msql_result|msql_select_db|msql_tablename|' + + 'mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|' + + 'mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length|mssql_field_name|mssql_field_seek|mssql_field_type|' + + 'mssql_free_result|mssql_free_statement|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|' + + 'mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|' + + 'mssql_select_db|mt_getrandmax|mt_rand|mt_srand|multipleiterator|mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|' + + 'mysql_create_db|mysql_data_seek|mysql_db_name|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|' + + 'mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|' + + 'mysql_field_name|mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|' + + 'mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|' + + 'mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string|mysql_result|' + + 'mysql_select_db|mysql_set_charset|mysql_stat|mysql_tablename|mysql_thread_id|mysql_unbuffered_query|mysqli|mysqli_affected_rows|' + + 'mysqli_autocommit|mysqli_bind_param|mysqli_bind_result|mysqli_cache_stats|mysqli_change_user|mysqli_character_set_name|' + + 'mysqli_client_encoding|mysqli_close|mysqli_commit|mysqli_connect|mysqli_connect_errno|mysqli_connect_error|mysqli_data_seek|' + + 'mysqli_debug|mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_driver|mysqli_dump_debug_info|mysqli_embedded_server_end|' + + 'mysqli_embedded_server_start|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_errno|mysqli_error|mysqli_escape_string|' + + 'mysqli_execute|mysqli_fetch|mysqli_fetch_all|mysqli_fetch_array|mysqli_fetch_assoc|mysqli_fetch_field|mysqli_fetch_field_direct|' + + 'mysqli_fetch_fields|mysqli_fetch_lengths|mysqli_fetch_object|mysqli_fetch_row|mysqli_field_count|mysqli_field_seek|mysqli_field_tell|' + + 'mysqli_free_result|mysqli_get_charset|mysqli_get_client_info|mysqli_get_client_stats|mysqli_get_client_version|mysqli_get_connection_stats|' + + 'mysqli_get_host_info|mysqli_get_metadata|mysqli_get_proto_info|mysqli_get_server_info|mysqli_get_server_version|mysqli_get_warnings|' + + 'mysqli_info|mysqli_init|mysqli_insert_id|mysqli_kill|mysqli_link_construct|mysqli_master_query|mysqli_more_results|mysqli_multi_query|' + + 'mysqli_next_result|mysqli_num_fields|mysqli_num_rows|mysqli_options|mysqli_param_count|mysqli_ping|mysqli_poll|mysqli_prepare|' + + 'mysqli_query|mysqli_real_connect|mysqli_real_escape_string|mysqli_real_query|mysqli_reap_async_query|mysqli_refresh|mysqli_report|' + + 'mysqli_result|mysqli_rollback|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|mysqli_select_db|mysqli_send_long_data|' + + 'mysqli_send_query|mysqli_set_charset|mysqli_set_local_infile_default|mysqli_set_local_infile_handler|mysqli_set_opt|mysqli_slave_query|' + + 'mysqli_sqlstate|mysqli_ssl_set|mysqli_stat|mysqli_stmt|mysqli_stmt_affected_rows|mysqli_stmt_attr_get|mysqli_stmt_attr_set|' + + 'mysqli_stmt_bind_param|mysqli_stmt_bind_result|mysqli_stmt_close|mysqli_stmt_data_seek|mysqli_stmt_errno|mysqli_stmt_error|' + + 'mysqli_stmt_execute|mysqli_stmt_fetch|mysqli_stmt_field_count|mysqli_stmt_free_result|mysqli_stmt_get_result|mysqli_stmt_get_warnings|' + + 'mysqli_stmt_init|mysqli_stmt_insert_id|mysqli_stmt_next_result|mysqli_stmt_num_rows|mysqli_stmt_param_count|mysqli_stmt_prepare|' + + 'mysqli_stmt_reset|mysqli_stmt_result_metadata|mysqli_stmt_send_long_data|mysqli_stmt_sqlstate|mysqli_stmt_store_result|mysqli_store_result|' + + 'mysqli_thread_id|mysqli_thread_safe|mysqli_use_result|mysqli_warning|mysqli_warning_count|mysqlnd_ms_get_stats|' + + 'mysqlnd_ms_query_is_select|mysqlnd_ms_set_user_pick_server|mysqlnd_qc_change_handler|mysqlnd_qc_clear_cache|mysqlnd_qc_get_cache_info|' + + 'mysqlnd_qc_get_core_stats|mysqlnd_qc_get_handler|mysqlnd_qc_get_query_trace_log|mysqlnd_qc_set_user_handlers|natcasesort|natsort|' + + 'ncurses_addch|ncurses_addchnstr|ncurses_addchstr|ncurses_addnstr|ncurses_addstr|ncurses_assume_default_colors|ncurses_attroff|' + + 'ncurses_attron|ncurses_attrset|ncurses_baudrate|ncurses_beep|ncurses_bkgd|ncurses_bkgdset|ncurses_border|ncurses_bottom_panel|' + + 'ncurses_can_change_color|ncurses_cbreak|ncurses_clear|ncurses_clrtobot|ncurses_clrtoeol|ncurses_color_content|ncurses_color_set|' + + 'ncurses_curs_set|ncurses_def_prog_mode|ncurses_def_shell_mode|ncurses_define_key|ncurses_del_panel|ncurses_delay_output|ncurses_delch|' + + 'ncurses_deleteln|ncurses_delwin|ncurses_doupdate|ncurses_echo|ncurses_echochar|ncurses_end|ncurses_erase|ncurses_erasechar|ncurses_filter|' + + 'ncurses_flash|ncurses_flushinp|ncurses_getch|ncurses_getmaxyx|ncurses_getmouse|ncurses_getyx|ncurses_halfdelay|ncurses_has_colors|' + + 'ncurses_has_ic|ncurses_has_il|ncurses_has_key|ncurses_hide_panel|ncurses_hline|ncurses_inch|ncurses_init|ncurses_init_color|' + + 'ncurses_init_pair|ncurses_insch|ncurses_insdelln|ncurses_insertln|ncurses_insstr|ncurses_instr|ncurses_isendwin|ncurses_keyok|' + + 'ncurses_keypad|ncurses_killchar|ncurses_longname|ncurses_meta|ncurses_mouse_trafo|ncurses_mouseinterval|ncurses_mousemask|ncurses_move|' + + 'ncurses_move_panel|ncurses_mvaddch|ncurses_mvaddchnstr|ncurses_mvaddchstr|ncurses_mvaddnstr|ncurses_mvaddstr|ncurses_mvcur|' + + 'ncurses_mvdelch|ncurses_mvgetch|ncurses_mvhline|ncurses_mvinch|ncurses_mvvline|ncurses_mvwaddstr|ncurses_napms|ncurses_new_panel|' + + 'ncurses_newpad|ncurses_newwin|ncurses_nl|ncurses_nocbreak|ncurses_noecho|ncurses_nonl|ncurses_noqiflush|ncurses_noraw|' + + 'ncurses_pair_content|ncurses_panel_above|ncurses_panel_below|ncurses_panel_window|ncurses_pnoutrefresh|ncurses_prefresh|ncurses_putp|' + + 'ncurses_qiflush|ncurses_raw|ncurses_refresh|ncurses_replace_panel|ncurses_reset_prog_mode|ncurses_reset_shell_mode|ncurses_resetty|' + + 'ncurses_savetty|ncurses_scr_dump|ncurses_scr_init|ncurses_scr_restore|ncurses_scr_set|ncurses_scrl|ncurses_show_panel|ncurses_slk_attr|' + + 'ncurses_slk_attroff|ncurses_slk_attron|ncurses_slk_attrset|ncurses_slk_clear|ncurses_slk_color|ncurses_slk_init|ncurses_slk_noutrefresh|' + + 'ncurses_slk_refresh|ncurses_slk_restore|ncurses_slk_set|ncurses_slk_touch|ncurses_standend|ncurses_standout|ncurses_start_color|' + + 'ncurses_termattrs|ncurses_termname|ncurses_timeout|ncurses_top_panel|ncurses_typeahead|ncurses_ungetch|ncurses_ungetmouse|' + + 'ncurses_update_panels|ncurses_use_default_colors|ncurses_use_env|ncurses_use_extended_names|ncurses_vidattr|ncurses_vline|ncurses_waddch|' + + 'ncurses_waddstr|ncurses_wattroff|ncurses_wattron|ncurses_wattrset|ncurses_wborder|ncurses_wclear|ncurses_wcolor_set|ncurses_werase|' + + 'ncurses_wgetch|ncurses_whline|ncurses_wmouse_trafo|ncurses_wmove|ncurses_wnoutrefresh|ncurses_wrefresh|ncurses_wstandend|' + + 'ncurses_wstandout|ncurses_wvline|newinstance|newinstanceargs|newt_bell|newt_button|newt_button_bar|newt_centered_window|newt_checkbox|' + + 'newt_checkbox_get_value|newt_checkbox_set_flags|newt_checkbox_set_value|newt_checkbox_tree|newt_checkbox_tree_add_item|' + + 'newt_checkbox_tree_find_item|newt_checkbox_tree_get_current|newt_checkbox_tree_get_entry_value|newt_checkbox_tree_get_multi_selection|' + + 'newt_checkbox_tree_get_selection|newt_checkbox_tree_multi|newt_checkbox_tree_set_current|newt_checkbox_tree_set_entry|' + + 'newt_checkbox_tree_set_entry_value|newt_checkbox_tree_set_width|newt_clear_key_buffer|newt_cls|newt_compact_button|' + + 'newt_component_add_callback|newt_component_takes_focus|newt_create_grid|newt_cursor_off|newt_cursor_on|newt_delay|newt_draw_form|' + + 'newt_draw_root_text|newt_entry|newt_entry_get_value|newt_entry_set|newt_entry_set_filter|newt_entry_set_flags|newt_finished|newt_form|' + + 'newt_form_add_component|newt_form_add_components|newt_form_add_hot_key|newt_form_destroy|newt_form_get_current|newt_form_run|' + + 'newt_form_set_background|newt_form_set_height|newt_form_set_size|newt_form_set_timer|newt_form_set_width|newt_form_watch_fd|' + + 'newt_get_screen_size|newt_grid_add_components_to_form|newt_grid_basic_window|newt_grid_free|newt_grid_get_size|newt_grid_h_close_stacked|' + + 'newt_grid_h_stacked|newt_grid_place|newt_grid_set_field|newt_grid_simple_window|newt_grid_v_close_stacked|newt_grid_v_stacked|' + + 'newt_grid_wrapped_window|newt_grid_wrapped_window_at|newt_init|newt_label|newt_label_set_text|newt_listbox|newt_listbox_append_entry|' + + 'newt_listbox_clear|newt_listbox_clear_selection|newt_listbox_delete_entry|newt_listbox_get_current|newt_listbox_get_selection|' + + 'newt_listbox_insert_entry|newt_listbox_item_count|newt_listbox_select_item|newt_listbox_set_current|newt_listbox_set_current_by_key|' + + 'newt_listbox_set_data|newt_listbox_set_entry|newt_listbox_set_width|newt_listitem|newt_listitem_get_data|newt_listitem_set|' + + 'newt_open_window|newt_pop_help_line|newt_pop_window|newt_push_help_line|newt_radio_get_current|newt_radiobutton|newt_redraw_help_line|' + + 'newt_reflow_text|newt_refresh|newt_resize_screen|newt_resume|newt_run_form|newt_scale|newt_scale_set|newt_scrollbar_set|' + + 'newt_set_help_callback|newt_set_suspend_callback|newt_suspend|newt_textbox|newt_textbox_get_num_lines|newt_textbox_reflowed|' + + 'newt_textbox_set_height|newt_textbox_set_text|newt_vertical_scrollbar|newt_wait_for_key|newt_win_choice|newt_win_entries|newt_win_menu|' + + 'newt_win_message|newt_win_messagev|newt_win_ternary|next|ngettext|nl2br|nl_langinfo|norewinditerator|normalizer|notes_body|notes_copy_db|' + + 'notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|' + + 'notes_nav_create|notes_search|notes_unread|notes_version|nsapi_request_headers|nsapi_response_headers|nsapi_virtual|nthmac|number_format|' + + 'numberformatter|oauth|oauth_get_sbs|oauth_urlencode|oauthexception|oauthprovider|ob_clean|ob_deflatehandler|ob_end_clean|ob_end_flush|' + + 'ob_etaghandler|ob_flush|ob_get_clean|ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|' + + 'ob_implicit_flush|ob_inflatehandler|ob_list_handlers|ob_start|ob_tidyhandler|oci_bind_array_by_name|oci_bind_by_name|oci_cancel|' + + 'oci_client_version|oci_close|oci_collection_append|oci_collection_assign|oci_collection_element_assign|oci_collection_element_get|' + + 'oci_collection_free|oci_collection_max|oci_collection_size|oci_collection_trim|oci_commit|oci_connect|oci_define_by_name|oci_error|' + + 'oci_execute|oci_fetch|oci_fetch_all|oci_fetch_array|oci_fetch_assoc|oci_fetch_object|oci_fetch_row|oci_field_is_null|oci_field_name|' + + 'oci_field_precision|oci_field_scale|oci_field_size|oci_field_type|oci_field_type_raw|oci_free_statement|oci_internal_debug|oci_lob_append|' + + 'oci_lob_close|oci_lob_copy|oci_lob_eof|oci_lob_erase|oci_lob_export|oci_lob_flush|oci_lob_free|oci_lob_getbuffering|oci_lob_import|' + + 'oci_lob_is_equal|oci_lob_load|oci_lob_read|oci_lob_rewind|oci_lob_save|oci_lob_savefile|oci_lob_seek|oci_lob_setbuffering|oci_lob_size|' + + 'oci_lob_tell|oci_lob_truncate|oci_lob_write|oci_lob_writetemporary|oci_lob_writetofile|oci_new_collection|oci_new_connect|oci_new_cursor|' + + 'oci_new_descriptor|oci_num_fields|oci_num_rows|oci_parse|oci_password_change|oci_pconnect|oci_result|oci_rollback|oci_server_version|' + + 'oci_set_action|oci_set_client_identifier|oci_set_client_info|oci_set_edition|oci_set_module_name|oci_set_prefetch|oci_statement_type|' + + 'ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|' + + 'ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|' + + 'ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|' + + 'ociloadlob|ocilogoff|ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|' + + 'ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|' + + 'octdec|odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|' + + 'odbc_data_source|odbc_do|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|' + + 'odbc_fetch_row|odbc_field_len|odbc_field_name|odbc_field_num|odbc_field_precision|odbc_field_scale|odbc_field_type|odbc_foreignkeys|' + + 'odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|' + + 'odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns|' + + 'odbc_statistics|odbc_tableprivileges|odbc_tables|openal_buffer_create|openal_buffer_data|openal_buffer_destroy|openal_buffer_get|' + + 'openal_buffer_loadwav|openal_context_create|openal_context_current|openal_context_destroy|openal_context_process|openal_context_suspend|' + + 'openal_device_close|openal_device_open|openal_listener_get|openal_listener_set|openal_source_create|openal_source_destroy|' + + 'openal_source_get|openal_source_pause|openal_source_play|openal_source_rewind|openal_source_set|openal_source_stop|openal_stream|opendir|' + + 'openlog|openssl_cipher_iv_length|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_get_public_key|openssl_csr_get_subject|' + + 'openssl_csr_new|openssl_csr_sign|openssl_decrypt|openssl_dh_compute_key|openssl_digest|openssl_encrypt|openssl_error_string|' + + 'openssl_free_key|openssl_get_cipher_methods|openssl_get_md_methods|openssl_get_privatekey|openssl_get_publickey|openssl_open|' + + 'openssl_pkcs12_export|openssl_pkcs12_export_to_file|openssl_pkcs12_read|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|' + + 'openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_details|openssl_pkey_get_private|' + + 'openssl_pkey_get_public|openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|' + + 'openssl_random_pseudo_bytes|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|' + + 'openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ord|outeriterator|' + + 'outofboundsexception|outofrangeexception|output_add_rewrite_var|output_reset_rewrite_vars|overflowexception|overload|override_function|' + + 'ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|' + + 'ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|' + + 'ovrimos_num_rows|ovrimos_prepare|ovrimos_result|ovrimos_result_all|ovrimos_rollback|pack|parentiterator|parse_ini_file|parse_ini_string|' + + 'parse_str|parse_url|parsekit_compile_file|parsekit_compile_string|parsekit_func_arginfo|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|' + + 'pcntl_fork|pcntl_getpriority|pcntl_setpriority|pcntl_signal|pcntl_signal_dispatch|pcntl_sigprocmask|pcntl_sigtimedwait|pcntl_sigwaitinfo|' + + 'pcntl_wait|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped|pcntl_wstopsig|pcntl_wtermsig|' + + 'pdf_activate_item|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_nameddest|pdf_add_note|pdf_add_outline|' + + 'pdf_add_pdflink|pdf_add_table_cell|pdf_add_textflow|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_document|' + + 'pdf_begin_font|pdf_begin_glyph|pdf_begin_item|pdf_begin_layer|pdf_begin_page|pdf_begin_page_ext|pdf_begin_pattern|pdf_begin_template|' + + 'pdf_begin_template_ext|pdf_circle|pdf_clip|pdf_close|pdf_close_image|pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|' + + 'pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_create_3dview|pdf_create_action|pdf_create_annotation|' + + 'pdf_create_bookmark|pdf_create_field|pdf_create_fieldgroup|pdf_create_gstate|pdf_create_pvf|pdf_create_textflow|pdf_curveto|' + + 'pdf_define_layer|pdf_delete|pdf_delete_pvf|pdf_delete_table|pdf_delete_textflow|pdf_encoding_set_char|pdf_end_document|pdf_end_font|' + + 'pdf_end_glyph|pdf_end_item|pdf_end_layer|pdf_end_page|pdf_end_page_ext|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|' + + 'pdf_fill_imageblock|pdf_fill_pdfblock|pdf_fill_stroke|pdf_fill_textblock|pdf_findfont|pdf_fit_image|pdf_fit_pdi_page|pdf_fit_table|' + + 'pdf_fit_textflow|pdf_fit_textline|pdf_get_apiname|pdf_get_buffer|pdf_get_errmsg|pdf_get_errnum|pdf_get_font|pdf_get_fontname|' + + 'pdf_get_fontsize|pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|' + + 'pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_info_font|pdf_info_matchbox|pdf_info_table|pdf_info_textflow|pdf_info_textline|' + + 'pdf_initgraphics|pdf_lineto|pdf_load_3ddata|pdf_load_font|pdf_load_iccprofile|pdf_load_image|pdf_makespotcolor|pdf_moveto|pdf_new|' + + 'pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg|pdf_open_memory_image|pdf_open_pdi|' + + 'pdf_open_pdi_document|pdf_open_pdi_page|pdf_open_tiff|pdf_pcos_get_number|pdf_pcos_get_stream|pdf_pcos_get_string|pdf_place_image|' + + 'pdf_place_pdi_page|pdf_process_pdi|pdf_rect|pdf_restore|pdf_resume_page|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|' + + 'pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_gstate|pdf_set_horiz_scaling|pdf_set_info|' + + 'pdf_set_info_author|pdf_set_info_creator|pdf_set_info_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_layer_dependency|' + + 'pdf_set_leading|pdf_set_parameter|pdf_set_text_matrix|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_value|' + + 'pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setdashpattern|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke|' + + 'pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|' + + 'pdf_setrgbcolor_stroke|pdf_shading|pdf_shading_pattern|pdf_shfill|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|' + + 'pdf_suspend_page|pdf_translate|pdf_utf16_to_utf8|pdf_utf32_to_utf16|pdf_utf8_to_utf16|pdo|pdo_cubrid_schema|pdo_pgsqllobcreate|' + + 'pdo_pgsqllobopen|pdo_pgsqllobunlink|pdo_sqlitecreateaggregate|pdo_sqlitecreatefunction|pdoexception|pdostatement|pfsockopen|' + + 'pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|' + + 'pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_execute|pg_fetch_all|' + + 'pg_fetch_all_columns|pg_fetch_array|pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|' + + 'pg_field_num|pg_field_prtlen|pg_field_size|pg_field_table|pg_field_type|pg_field_type_oid|pg_free_result|pg_get_notify|pg_get_pid|' + + 'pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close|pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|' + + 'pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|' + + 'pg_parameter_status|pg_pconnect|pg_ping|pg_port|pg_prepare|pg_put_line|pg_query|pg_query_params|pg_result_error|pg_result_error_field|' + + 'pg_result_seek|pg_result_status|pg_select|pg_send_execute|pg_send_prepare|pg_send_query|pg_send_query_params|pg_set_client_encoding|' + + 'pg_set_error_verbosity|pg_trace|pg_transaction_status|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|pg_version|php_check_syntax|' + + 'php_ini_loaded_file|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_strip_whitespace|php_uname|phpcredits|phpinfo|phpversion|pi|' + + 'png2wbmp|popen|pos|posix_access|posix_ctermid|posix_errno|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|' + + 'posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|' + + 'posix_getpwuid|posix_getrlimit|posix_getsid|posix_getuid|posix_initgroups|posix_isatty|posix_kill|posix_mkfifo|posix_mknod|posix_setegid|' + + 'posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_filter|' + + 'preg_grep|preg_last_error|preg_match|preg_match_all|preg_quote|preg_replace|preg_replace_callback|preg_split|prev|print|print_r|' + + 'printer_abort|printer_close|printer_create_brush|printer_create_dc|printer_create_font|printer_create_pen|printer_delete_brush|' + + 'printer_delete_dc|printer_delete_font|printer_delete_pen|printer_draw_bmp|printer_draw_chord|printer_draw_elipse|printer_draw_line|' + + 'printer_draw_pie|printer_draw_rectangle|printer_draw_roundrect|printer_draw_text|printer_end_doc|printer_end_page|printer_get_option|' + + 'printer_list|printer_logical_fontheight|printer_open|printer_select_brush|printer_select_font|printer_select_pen|printer_set_option|' + + 'printer_start_doc|printer_start_page|printer_write|printf|proc_close|proc_get_status|proc_nice|proc_open|proc_terminate|property_exists|' + + 'ps_add_bookmark|ps_add_launchlink|ps_add_locallink|ps_add_note|ps_add_pdflink|ps_add_weblink|ps_arc|ps_arcn|ps_begin_page|' + + 'ps_begin_pattern|ps_begin_template|ps_circle|ps_clip|ps_close|ps_close_image|ps_closepath|ps_closepath_stroke|ps_continue_text|ps_curveto|' + + 'ps_delete|ps_end_page|ps_end_pattern|ps_end_template|ps_fill|ps_fill_stroke|ps_findfont|ps_get_buffer|ps_get_parameter|ps_get_value|' + + 'ps_hyphenate|ps_include_file|ps_lineto|ps_makespotcolor|ps_moveto|ps_new|ps_open_file|ps_open_image|ps_open_image_file|' + + 'ps_open_memory_image|ps_place_image|ps_rect|ps_restore|ps_rotate|ps_save|ps_scale|ps_set_border_color|ps_set_border_dash|' + + 'ps_set_border_style|ps_set_info|ps_set_parameter|ps_set_text_pos|ps_set_value|ps_setcolor|ps_setdash|ps_setflat|ps_setfont|ps_setgray|' + + 'ps_setlinecap|ps_setlinejoin|ps_setlinewidth|ps_setmiterlimit|ps_setoverprintmode|ps_setpolydash|ps_shading|ps_shading_pattern|ps_shfill|' + + 'ps_show|ps_show2|ps_show_boxed|ps_show_xy|ps_show_xy2|ps_string_geometry|ps_stringwidth|ps_stroke|ps_symbol|ps_symbol_name|' + + 'ps_symbol_width|ps_translate|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|' + + 'pspell_config_data_dir|pspell_config_dict_dir|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|' + + 'pspell_config_runtogether|pspell_config_save_repl|pspell_new|pspell_new_config|pspell_new_personal|pspell_save_wordlist|' + + 'pspell_store_replacement|pspell_suggest|putenv|px_close|px_create_fp|px_date2string|px_delete|px_delete_record|px_get_field|px_get_info|' + + 'px_get_parameter|px_get_record|px_get_schema|px_get_value|px_insert_record|px_new|px_numfields|px_numrecords|px_open_fp|px_put_record|' + + 'px_retrieve_record|px_set_blob_file|px_set_parameter|px_set_tablename|px_set_targetencoding|px_set_value|px_timestamp2string|' + + 'px_update_record|qdom_error|qdom_tree|quoted_printable_decode|quoted_printable_encode|quotemeta|rad2deg|radius_acct_open|' + + 'radius_add_server|radius_auth_open|radius_close|radius_config|radius_create_request|radius_cvt_addr|radius_cvt_int|radius_cvt_string|' + + 'radius_demangle|radius_demangle_mppe_key|radius_get_attr|radius_get_vendor_attr|radius_put_addr|radius_put_attr|radius_put_int|' + + 'radius_put_string|radius_put_vendor_addr|radius_put_vendor_attr|radius_put_vendor_int|radius_put_vendor_string|' + + 'radius_request_authenticator|radius_send_request|radius_server_secret|radius_strerror|rand|range|rangeexception|rar_wrapper_cache_stats|' + + 'rararchive|rarentry|rarexception|rawurldecode|rawurlencode|read_exif_data|readdir|readfile|readgzfile|readline|readline_add_history|' + + 'readline_callback_handler_install|readline_callback_handler_remove|readline_callback_read_char|readline_clear_history|' + + 'readline_completion_function|readline_info|readline_list_history|readline_on_new_line|readline_read_history|readline_redisplay|' + + 'readline_write_history|readlink|realpath|realpath_cache_get|realpath_cache_size|recode|recode_file|recode_string|recursivearrayiterator|' + + 'recursivecachingiterator|recursivecallbackfilteriterator|recursivedirectoryiterator|recursivefilteriterator|recursiveiterator|' + + 'recursiveiteratoriterator|recursiveregexiterator|recursivetreeiterator|reflection|reflectionclass|reflectionexception|reflectionextension|' + + 'reflectionfunction|reflectionfunctionabstract|reflectionmethod|reflectionobject|reflectionparameter|reflectionproperty|reflector|' + + 'regexiterator|register_shutdown_function|register_tick_function|rename|rename_function|require|require_once|reset|resetValue|' + + 'resourcebundle|restore_error_handler|restore_exception_handler|restore_include_path|return|rewind|rewinddir|rmdir|round|rpm_close|' + + 'rpm_get_tag|rpm_is_valid|rpm_open|rpm_version|rrd_create|rrd_error|rrd_fetch|rrd_first|rrd_graph|rrd_info|rrd_last|rrd_lastupdate|' + + 'rrd_restore|rrd_tune|rrd_update|rrd_xport|rrdcreator|rrdgraph|rrdupdater|rsort|rtrim|runkit_class_adopt|runkit_class_emancipate|' + + 'runkit_constant_add|runkit_constant_redefine|runkit_constant_remove|runkit_function_add|runkit_function_copy|runkit_function_redefine|' + + 'runkit_function_remove|runkit_function_rename|runkit_import|runkit_lint|runkit_lint_file|runkit_method_add|runkit_method_copy|' + + 'runkit_method_redefine|runkit_method_remove|runkit_method_rename|runkit_return_value_used|runkit_sandbox_output_handler|' + + 'runkit_superglobals|runtimeexception|samconnection_commit|samconnection_connect|samconnection_constructor|samconnection_disconnect|' + + 'samconnection_errno|samconnection_error|samconnection_isconnected|samconnection_peek|samconnection_peekall|samconnection_receive|' + + 'samconnection_remove|samconnection_rollback|samconnection_send|samconnection_setDebug|samconnection_subscribe|samconnection_unsubscribe|' + + 'sammessage_body|sammessage_constructor|sammessage_header|sca_createdataobject|sca_getservice|sca_localproxy_createdataobject|' + + 'sca_soapproxy_createdataobject|scandir|sdo_das_changesummary_beginlogging|sdo_das_changesummary_endlogging|' + + 'sdo_das_changesummary_getchangeddataobjects|sdo_das_changesummary_getchangetype|sdo_das_changesummary_getoldcontainer|' + + 'sdo_das_changesummary_getoldvalues|sdo_das_changesummary_islogging|sdo_das_datafactory_addpropertytotype|sdo_das_datafactory_addtype|' + + 'sdo_das_datafactory_getdatafactory|sdo_das_dataobject_getchangesummary|sdo_das_relational_applychanges|sdo_das_relational_construct|' + + 'sdo_das_relational_createrootdataobject|sdo_das_relational_executepreparedquery|sdo_das_relational_executequery|' + + 'sdo_das_setting_getlistindex|sdo_das_setting_getpropertyindex|sdo_das_setting_getpropertyname|sdo_das_setting_getvalue|' + + 'sdo_das_setting_isset|sdo_das_xml_addtypes|sdo_das_xml_create|sdo_das_xml_createdataobject|sdo_das_xml_createdocument|' + + 'sdo_das_xml_document_getrootdataobject|sdo_das_xml_document_getrootelementname|sdo_das_xml_document_getrootelementuri|' + + 'sdo_das_xml_document_setencoding|sdo_das_xml_document_setxmldeclaration|sdo_das_xml_document_setxmlversion|sdo_das_xml_loadfile|' + + 'sdo_das_xml_loadstring|sdo_das_xml_savefile|sdo_das_xml_savestring|sdo_datafactory_create|sdo_dataobject_clear|' + + 'sdo_dataobject_createdataobject|sdo_dataobject_getcontainer|sdo_dataobject_getsequence|sdo_dataobject_gettypename|' + + 'sdo_dataobject_gettypenamespaceuri|sdo_exception_getcause|sdo_list_insert|sdo_model_property_getcontainingtype|' + + 'sdo_model_property_getdefault|sdo_model_property_getname|sdo_model_property_gettype|sdo_model_property_iscontainment|' + + 'sdo_model_property_ismany|sdo_model_reflectiondataobject_construct|sdo_model_reflectiondataobject_export|' + + 'sdo_model_reflectiondataobject_getcontainmentproperty|sdo_model_reflectiondataobject_getinstanceproperties|' + + 'sdo_model_reflectiondataobject_gettype|sdo_model_type_getbasetype|sdo_model_type_getname|sdo_model_type_getnamespaceuri|' + + 'sdo_model_type_getproperties|sdo_model_type_getproperty|sdo_model_type_isabstracttype|sdo_model_type_isdatatype|sdo_model_type_isinstance|' + + 'sdo_model_type_isopentype|sdo_model_type_issequencedtype|sdo_sequence_getproperty|sdo_sequence_insert|sdo_sequence_move|seekableiterator|' + + 'sem_acquire|sem_get|sem_release|sem_remove|serializable|serialize|session_cache_expire|session_cache_limiter|session_commit|' + + 'session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|' + + 'session_pgsql_add_error|session_pgsql_get_error|session_pgsql_get_field|session_pgsql_reset|session_pgsql_set_field|session_pgsql_status|' + + 'session_regenerate_id|session_register|session_save_path|session_set_cookie_params|session_set_save_handler|session_start|' + + 'session_unregister|session_unset|session_write_close|setCounterClass|set_error_handler|set_exception_handler|set_file_buffer|' + + 'set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|setproctitle|setrawcookie|' + + 'setstaticpropertyvalue|setthreadtitle|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_has_var|shm_put_var|' + + 'shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|show_source|shuffle|signeurlpaiement|' + + 'similar_text|simplexml_import_dom|simplexml_load_file|simplexml_load_string|simplexmlelement|simplexmliterator|sin|sinh|sizeof|sleep|snmp|' + + 'snmp2_get|snmp2_getnext|snmp2_real_walk|snmp2_set|snmp2_walk|snmp3_get|snmp3_getnext|snmp3_real_walk|snmp3_set|snmp3_walk|' + + 'snmp_get_quick_print|snmp_get_valueretrieval|snmp_read_mib|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_oid_output_format|' + + 'snmp_set_quick_print|snmp_set_valueretrieval|snmpget|snmpgetnext|snmprealwalk|snmpset|snmpwalk|snmpwalkoid|soapclient|soapfault|' + + 'soapheader|soapparam|soapserver|soapvar|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create|' + + 'socket_create_listen|socket_create_pair|socket_get_option|socket_get_status|socket_getpeername|socket_getsockname|socket_last_error|' + + 'socket_listen|socket_read|socket_recv|socket_recvfrom|socket_select|socket_send|socket_sendto|socket_set_block|socket_set_blocking|' + + 'socket_set_nonblock|socket_set_option|socket_set_timeout|socket_shutdown|socket_strerror|socket_write|solr_get_version|solrclient|' + + 'solrclientexception|solrdocument|solrdocumentfield|solrexception|solrgenericresponse|solrillegalargumentexception|' + + 'solrillegaloperationexception|solrinputdocument|solrmodifiableparams|solrobject|solrparams|solrpingresponse|solrquery|solrqueryresponse|' + + 'solrresponse|solrupdateresponse|solrutils|sort|soundex|sphinxclient|spl_autoload|spl_autoload_call|spl_autoload_extensions|' + + 'spl_autoload_functions|spl_autoload_register|spl_autoload_unregister|spl_classes|spl_object_hash|splbool|spldoublylinkedlist|splenum|' + + 'splfileinfo|splfileobject|splfixedarray|splfloat|splheap|splint|split|spliti|splmaxheap|splminheap|splobjectstorage|splobserver|' + + 'splpriorityqueue|splqueue|splstack|splstring|splsubject|spltempfileobject|spoofchecker|sprintf|sql_regcase|sqlite3|sqlite3result|' + + 'sqlite3stmt|sqlite_array_query|sqlite_busy_timeout|sqlite_changes|sqlite_close|sqlite_column|sqlite_create_aggregate|' + + 'sqlite_create_function|sqlite_current|sqlite_error_string|sqlite_escape_string|sqlite_exec|sqlite_factory|sqlite_fetch_all|' + + 'sqlite_fetch_array|sqlite_fetch_column_types|sqlite_fetch_object|sqlite_fetch_single|sqlite_fetch_string|sqlite_field_name|' + + 'sqlite_has_more|sqlite_has_prev|sqlite_key|sqlite_last_error|sqlite_last_insert_rowid|sqlite_libencoding|sqlite_libversion|sqlite_next|' + + 'sqlite_num_fields|sqlite_num_rows|sqlite_open|sqlite_popen|sqlite_prev|sqlite_query|sqlite_rewind|sqlite_seek|sqlite_single_query|' + + 'sqlite_udf_decode_binary|sqlite_udf_encode_binary|sqlite_unbuffered_query|sqlite_valid|sqrt|srand|sscanf|ssdeep_fuzzy_compare|' + + 'ssdeep_fuzzy_hash|ssdeep_fuzzy_hash_filename|ssh2_auth_hostbased_file|ssh2_auth_none|ssh2_auth_password|ssh2_auth_pubkey_file|' + + 'ssh2_connect|ssh2_exec|ssh2_fetch_stream|ssh2_fingerprint|ssh2_methods_negotiated|ssh2_publickey_add|ssh2_publickey_init|' + + 'ssh2_publickey_list|ssh2_publickey_remove|ssh2_scp_recv|ssh2_scp_send|ssh2_sftp|ssh2_sftp_lstat|ssh2_sftp_mkdir|ssh2_sftp_readlink|' + + 'ssh2_sftp_realpath|ssh2_sftp_rename|ssh2_sftp_rmdir|ssh2_sftp_stat|ssh2_sftp_symlink|ssh2_sftp_unlink|ssh2_shell|ssh2_tunnel|stat|' + + 'stats_absolute_deviation|stats_cdf_beta|stats_cdf_binomial|stats_cdf_cauchy|stats_cdf_chisquare|stats_cdf_exponential|stats_cdf_f|' + + 'stats_cdf_gamma|stats_cdf_laplace|stats_cdf_logistic|stats_cdf_negative_binomial|stats_cdf_noncentral_chisquare|stats_cdf_noncentral_f|' + + 'stats_cdf_poisson|stats_cdf_t|stats_cdf_uniform|stats_cdf_weibull|stats_covariance|stats_den_uniform|stats_dens_beta|stats_dens_cauchy|' + + 'stats_dens_chisquare|stats_dens_exponential|stats_dens_f|stats_dens_gamma|stats_dens_laplace|stats_dens_logistic|' + + 'stats_dens_negative_binomial|stats_dens_normal|stats_dens_pmf_binomial|stats_dens_pmf_hypergeometric|stats_dens_pmf_poisson|stats_dens_t|' + + 'stats_dens_weibull|stats_harmonic_mean|stats_kurtosis|stats_rand_gen_beta|stats_rand_gen_chisquare|stats_rand_gen_exponential|' + + 'stats_rand_gen_f|stats_rand_gen_funiform|stats_rand_gen_gamma|stats_rand_gen_ibinomial|stats_rand_gen_ibinomial_negative|' + + 'stats_rand_gen_int|stats_rand_gen_ipoisson|stats_rand_gen_iuniform|stats_rand_gen_noncenral_chisquare|stats_rand_gen_noncentral_f|' + + 'stats_rand_gen_noncentral_t|stats_rand_gen_normal|stats_rand_gen_t|stats_rand_get_seeds|stats_rand_phrase_to_seeds|stats_rand_ranf|' + + 'stats_rand_setall|stats_skew|stats_standard_deviation|stats_stat_binomial_coef|stats_stat_correlation|stats_stat_gennch|' + + 'stats_stat_independent_t|stats_stat_innerproduct|stats_stat_noncentral_t|stats_stat_paired_t|stats_stat_percentile|stats_stat_powersum|' + + 'stats_variance|stomp|stomp_connect_error|stomp_version|stompexception|stompframe|str_getcsv|str_ireplace|str_pad|str_repeat|str_replace|' + + 'str_rot13|str_shuffle|str_split|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_bucket_append|stream_bucket_make_writeable|' + + 'stream_bucket_new|stream_bucket_prepend|stream_context_create|stream_context_get_default|stream_context_get_options|' + + 'stream_context_get_params|stream_context_set_default|stream_context_set_option|stream_context_set_params|stream_copy_to_stream|' + + 'stream_encoding|stream_filter_append|stream_filter_prepend|stream_filter_register|stream_filter_remove|stream_get_contents|' + + 'stream_get_filters|stream_get_line|stream_get_meta_data|stream_get_transports|stream_get_wrappers|stream_is_local|' + + 'stream_notification_callback|stream_register_wrapper|stream_resolve_include_path|stream_select|stream_set_blocking|stream_set_read_buffer|' + + 'stream_set_timeout|stream_set_write_buffer|stream_socket_accept|stream_socket_client|stream_socket_enable_crypto|stream_socket_get_name|' + + 'stream_socket_pair|stream_socket_recvfrom|stream_socket_sendto|stream_socket_server|stream_socket_shutdown|stream_supports_lock|' + + 'stream_wrapper_register|stream_wrapper_restore|stream_wrapper_unregister|streamwrapper|strftime|strip_tags|stripcslashes|stripos|' + + 'stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpbrk|strpos|strptime|strrchr|strrev|strripos|strrpos|strspn|' + + 'strstr|strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_compare|substr_count|substr_replace|svm|svmmodel|svn_add|' + + 'svn_auth_get_parameter|svn_auth_set_parameter|svn_blame|svn_cat|svn_checkout|svn_cleanup|svn_client_version|svn_commit|svn_delete|' + + 'svn_diff|svn_export|svn_fs_abort_txn|svn_fs_apply_text|svn_fs_begin_txn2|svn_fs_change_node_prop|svn_fs_check_path|' + + 'svn_fs_contents_changed|svn_fs_copy|svn_fs_delete|svn_fs_dir_entries|svn_fs_file_contents|svn_fs_file_length|svn_fs_is_dir|svn_fs_is_file|' + + 'svn_fs_make_dir|svn_fs_make_file|svn_fs_node_created_rev|svn_fs_node_prop|svn_fs_props_changed|svn_fs_revision_prop|svn_fs_revision_root|' + + 'svn_fs_txn_root|svn_fs_youngest_rev|svn_import|svn_log|svn_ls|svn_mkdir|svn_repos_create|svn_repos_fs|svn_repos_fs_begin_txn_for_commit|' + + 'svn_repos_fs_commit_txn|svn_repos_hotcopy|svn_repos_open|svn_repos_recover|svn_revert|svn_status|svn_update|swf_actiongeturl|' + + 'swf_actiongotoframe|swf_actiongotolabel|swf_actionnextframe|swf_actionplay|swf_actionprevframe|swf_actionsettarget|swf_actionstop|' + + 'swf_actiontogglequality|swf_actionwaitforframe|swf_addbuttonrecord|swf_addcolor|swf_closefile|swf_definebitmap|swf_definefont|' + + 'swf_defineline|swf_definepoly|swf_definerect|swf_definetext|swf_endbutton|swf_enddoaction|swf_endshape|swf_endsymbol|swf_fontsize|' + + 'swf_fontslant|swf_fonttracking|swf_getbitmapinfo|swf_getfontinfo|swf_getframe|swf_labelframe|swf_lookat|swf_modifyobject|swf_mulcolor|' + + 'swf_nextid|swf_oncondition|swf_openfile|swf_ortho|swf_ortho2|swf_perspective|swf_placeobject|swf_polarview|swf_popmatrix|swf_posround|' + + 'swf_pushmatrix|swf_removeobject|swf_rotate|swf_scale|swf_setfont|swf_setframe|swf_shapearc|swf_shapecurveto|swf_shapecurveto3|' + + 'swf_shapefillbitmapclip|swf_shapefillbitmaptile|swf_shapefilloff|swf_shapefillsolid|swf_shapelinesolid|swf_shapelineto|swf_shapemoveto|' + + 'swf_showframe|swf_startbutton|swf_startdoaction|swf_startshape|swf_startsymbol|swf_textwidth|swf_translate|swf_viewport|swfaction|' + + 'swfbitmap|swfbutton|swfdisplayitem|swffill|swffont|swffontchar|swfgradient|swfmorph|swfmovie|swfprebuiltclip|swfshape|swfsound|' + + 'swfsoundinstance|swfsprite|swftext|swftextfield|swfvideostream|swish_construct|swish_getmetalist|swish_getpropertylist|swish_prepare|' + + 'swish_query|swishresult_getmetalist|swishresult_stem|swishresults_getparsedwords|swishresults_getremovedstopwords|swishresults_nextresult|' + + 'swishresults_seekresult|swishsearch_execute|swishsearch_resetlimit|swishsearch_setlimit|swishsearch_setphrasedelimiter|' + + 'swishsearch_setsort|swishsearch_setstructure|sybase_affected_rows|sybase_close|sybase_connect|sybase_data_seek|' + + 'sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_object|sybase_fetch_row|' + + 'sybase_field_seek|sybase_free_result|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|' + + 'sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_rows|sybase_pconnect|sybase_query|sybase_result|' + + 'sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|sys_get_temp_dir|sys_getloadavg|syslog|system|tag|tan|tanh|' + + 'tcpwrap_check|tempnam|textdomain|tidy|tidy_access_count|tidy_config_count|tidy_diagnose|tidy_error_count|tidy_get_error_buffer|' + + 'tidy_get_output|tidy_load_config|tidy_reset_config|tidy_save_config|tidy_set_encoding|tidy_setopt|tidy_warning_count|tidynode|time|' + + 'time_nanosleep|time_sleep_until|timezone_abbreviations_list|timezone_identifiers_list|timezone_location_get|timezone_name_from_abbr|' + + 'timezone_name_get|timezone_offset_get|timezone_open|timezone_transitions_get|timezone_version_get|tmpfile|token_get_all|token_name|' + + 'tokyotyrant|tokyotyrantquery|tokyotyranttable|tostring|tostring|touch|trait_exists|transliterator|traversable|trigger_error|trim|uasort|ucfirst|' + + 'ucwords|udm_add_search_limit|udm_alloc_agent|udm_alloc_agent_array|udm_api_version|udm_cat_list|udm_cat_path|udm_check_charset|' + + 'udm_check_stored|udm_clear_search_limits|udm_close_stored|udm_crc32|udm_errno|udm_error|udm_find|udm_free_agent|udm_free_ispell_data|' + + 'udm_free_res|udm_get_doc_count|udm_get_res_field|udm_get_res_param|udm_hash32|udm_load_ispell_data|udm_open_stored|udm_set_agent_param|' + + 'uksort|umask|underflowexception|unexpectedvalueexception|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|unset|' + + 'urldecode|urlencode|use_soap_error_handler|user_error|usleep|usort|utf8_decode|utf8_encode|v8js|v8jsexception|var_dump|var_export|variant|' + + 'variant_abs|variant_add|variant_and|variant_cast|variant_cat|variant_cmp|variant_date_from_timestamp|variant_date_to_timestamp|' + + 'variant_div|variant_eqv|variant_fix|variant_get_type|variant_idiv|variant_imp|variant_int|variant_mod|variant_mul|variant_neg|variant_not|' + + 'variant_or|variant_pow|variant_round|variant_set|variant_set_type|variant_sub|variant_xor|version_compare|vfprintf|virtual|' + + 'vpopmail_add_alias_domain|vpopmail_add_alias_domain_ex|vpopmail_add_domain|vpopmail_add_domain_ex|vpopmail_add_user|vpopmail_alias_add|' + + 'vpopmail_alias_del|vpopmail_alias_del_domain|vpopmail_alias_get|vpopmail_alias_get_all|vpopmail_auth_user|vpopmail_del_domain|' + + 'vpopmail_del_domain_ex|vpopmail_del_user|vpopmail_error|vpopmail_passwd|vpopmail_set_user_quota|vprintf|vsprintf|w32api_deftype|' + + 'w32api_init_dtype|w32api_invoke_function|w32api_register_function|w32api_set_call_method|wddx_add_vars|wddx_deserialize|wddx_packet_end|' + + 'wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|win32_continue_service|win32_create_service|win32_delete_service|' + + 'win32_get_last_control_message|win32_pause_service|win32_ps_list_procs|win32_ps_stat_mem|win32_ps_stat_proc|win32_query_service_status|' + + 'win32_set_service_status|win32_start_service|win32_start_service_ctrl_dispatcher|win32_stop_service|wincache_fcache_fileinfo|' + + 'wincache_fcache_meminfo|wincache_lock|wincache_ocache_fileinfo|wincache_ocache_meminfo|wincache_refresh_if_changed|' + + 'wincache_rplist_fileinfo|wincache_rplist_meminfo|wincache_scache_info|wincache_scache_meminfo|wincache_ucache_add|wincache_ucache_cas|' + + 'wincache_ucache_clear|wincache_ucache_dec|wincache_ucache_delete|wincache_ucache_exists|wincache_ucache_get|wincache_ucache_inc|' + + 'wincache_ucache_info|wincache_ucache_meminfo|wincache_ucache_set|wincache_unlock|wordwrap|xattr_get|xattr_list|xattr_remove|xattr_set|' + + 'xattr_supported|xdiff_file_bdiff|xdiff_file_bdiff_size|xdiff_file_bpatch|xdiff_file_diff|xdiff_file_diff_binary|xdiff_file_merge3|' + + 'xdiff_file_patch|xdiff_file_patch_binary|xdiff_file_rabdiff|xdiff_string_bdiff|xdiff_string_bdiff_size|xdiff_string_bpatch|' + + 'xdiff_string_diff|xdiff_string_diff_binary|xdiff_string_merge3|xdiff_string_patch|xdiff_string_patch_binary|xdiff_string_rabdiff|' + + 'xhprof_disable|xhprof_enable|xhprof_sample_disable|xhprof_sample_enable|xml_error_string|xml_get_current_byte_index|' + + 'xml_get_current_column_number|xml_get_current_line_number|xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|' + + 'xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|' + + 'xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|' + + 'xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmlreader|' + + 'xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|' + + 'xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|' + + 'xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xmlwriter_end_attribute|xmlwriter_end_cdata|' + + 'xmlwriter_end_comment|xmlwriter_end_document|xmlwriter_end_dtd|xmlwriter_end_dtd_attlist|xmlwriter_end_dtd_element|' + + 'xmlwriter_end_dtd_entity|xmlwriter_end_element|xmlwriter_end_pi|xmlwriter_flush|xmlwriter_full_end_element|xmlwriter_open_memory|' + + 'xmlwriter_open_uri|xmlwriter_output_memory|xmlwriter_set_indent|xmlwriter_set_indent_string|xmlwriter_start_attribute|' + + 'xmlwriter_start_attribute_ns|xmlwriter_start_cdata|xmlwriter_start_comment|xmlwriter_start_document|xmlwriter_start_dtd|' + + 'xmlwriter_start_dtd_attlist|xmlwriter_start_dtd_element|xmlwriter_start_dtd_entity|xmlwriter_start_element|xmlwriter_start_element_ns|' + + 'xmlwriter_start_pi|xmlwriter_text|xmlwriter_write_attribute|xmlwriter_write_attribute_ns|xmlwriter_write_cdata|xmlwriter_write_comment|' + + 'xmlwriter_write_dtd|xmlwriter_write_dtd_attlist|xmlwriter_write_dtd_element|xmlwriter_write_dtd_entity|xmlwriter_write_element|' + + 'xmlwriter_write_element_ns|xmlwriter_write_pi|xmlwriter_write_raw|xpath_eval|xpath_eval_expression|xpath_new_context|xpath_register_ns|' + + 'xpath_register_ns_auto|xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|' + + 'xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|' + + 'xslt_set_sax_handler|xslt_set_sax_handlers|xslt_set_scheme_handler|xslt_set_scheme_handlers|xslt_setopt|xsltprocessor|yaml_emit|' + + 'yaml_emit_file|yaml_parse|yaml_parse_file|yaml_parse_url|yaz_addinfo|yaz_ccl_conf|yaz_ccl_parse|yaz_close|yaz_connect|yaz_database|' + + 'yaz_element|yaz_errno|yaz_error|yaz_es|yaz_es_result|yaz_get_option|yaz_hits|yaz_itemorder|yaz_present|yaz_range|yaz_record|yaz_scan|' + + 'yaz_scan_result|yaz_schema|yaz_search|yaz_set_option|yaz_sort|yaz_syntax|yaz_wait|yp_all|yp_cat|yp_err_string|yp_errno|yp_first|' + + 'yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_thread_id|zend_version|zip_close|zip_entry_close|' + + 'zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open|zip_read|' + + 'ziparchive|ziparchive_addemptydir|ziparchive_addfile|ziparchive_addfromstring|ziparchive_close|ziparchive_deleteindex|' + + 'ziparchive_deletename|ziparchive_extractto|ziparchive_getarchivecomment|ziparchive_getcommentindex|ziparchive_getcommentname|' + + 'ziparchive_getfromindex|ziparchive_getfromname|ziparchive_getnameindex|ziparchive_getstatusstring|ziparchive_getstream|' + + 'ziparchive_locatename|ziparchive_open|ziparchive_renameindex|ziparchive_renamename|ziparchive_setCommentName|ziparchive_setarchivecomment|' + + 'ziparchive_setcommentindex|ziparchive_statindex|ziparchive_statname|ziparchive_unchangeall|ziparchive_unchangearchive|' + + 'ziparchive_unchangeindex|ziparchive_unchangename|zlib_get_coding_type').split('|') + ); + var keywords = lang.arrayToMap( + ('abstract|and|array|as|break|case|catch|class|clone|const|continue|declare|default|do|else|elseif|enddeclare|endfor|endforeach|endif|' + + 'endswitch|endwhile|extends|final|for|foreach|function|global|goto|if|implements|interface|instanceof|namespace|new|or|private|protected|' + + 'public|static|switch|throw|trait|try|use|var|while|xor').split('|') + ); + var languageConstructs = lang.arrayToMap( + ('die|echo|empty|exit|eval|include|include_once|isset|list|require|require_once|return|print|unset').split('|') + ); + + var builtinConstants = lang.arrayToMap( + ('true|TRUE|false|FALSE|null|NULL|__CLASS__|__DIR__|__FILE__|__LINE__|__METHOD__|__FUNCTION__|__NAMESPACE__').split('|') + ); + + var builtinVariables = lang.arrayToMap( + ('$GLOBALS|$_SERVER|$_GET|$_POST|$_FILES|$_REQUEST|$_SESSION|$_ENV|$_COOKIE|$php_errormsg|$HTTP_RAW_POST_DATA|' + + '$http_response_header|$argc|$argv').split('|') + ); + var builtinFunctionsDeprecated = lang.arrayToMap( + ('key_exists|cairo_matrix_create_scale|cairo_matrix_create_translate|call_user_method|call_user_method_array|com_addref|com_get|' + + 'com_invoke|com_isenum|com_load|com_release|com_set|connection_timeout|cubrid_load_from_glo|cubrid_new_glo|cubrid_save_to_glo|' + + 'cubrid_send_glo|define_syslog_variables|dl|ereg|ereg_replace|eregi|eregi_replace|hw_documentattributes|hw_documentbodytag|' + + 'hw_documentsize|hw_outputdocument|imagedashedline|maxdb_bind_param|maxdb_bind_result|maxdb_client_encoding|maxdb_close_long_data|' + + 'maxdb_execute|maxdb_fetch|maxdb_get_metadata|maxdb_param_count|maxdb_send_long_data|mcrypt_ecb|mcrypt_generic_end|mime_content_type|' + + 'mysql_createdb|mysql_dbname|mysql_db_query|mysql_drop_db|mysql_dropdb|mysql_escape_string|mysql_fieldflags|mysql_fieldflags|' + + 'mysql_fieldname|mysql_fieldtable|mysql_fieldtype|mysql_freeresult|mysql_listdbs|mysql_list_fields|mysql_listfields|mysql_list_tables|' + + 'mysql_listtables|mysql_numfields|mysql_numrows|mysql_selectdb|mysql_tablename|mysqli_bind_param|mysqli_bind_result|' + + 'mysqli_disable_reads_from_master|mysqli_disable_rpl_parse|mysqli_enable_reads_from_master|mysqli_enable_rpl_parse|mysqli_execute|' + + 'mysqli_fetch|mysqli_get_metadata|mysqli_master_query|mysqli_param_count|mysqli_rpl_parse_enabled|mysqli_rpl_probe|mysqli_rpl_query_type|' + + 'mysqli_send_long_data|mysqli_send_query|mysqli_slave_query|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|' + + 'ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim|ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|' + + 'ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|' + + 'ocifreecollection|ocifreecursor|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff|ocilogon|ocinewcollection|' + + 'ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|' + + 'ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|PDF_add_annotation|PDF_add_bookmark|' + + 'PDF_add_launchlink|PDF_add_locallink|PDF_add_note|PDF_add_outline|PDF_add_pdflink|PDF_add_weblink|PDF_attach_file|PDF_begin_page|' + + 'PDF_begin_template|PDF_close_pdi|PDF_close|PDF_findfont|PDF_get_font|PDF_get_fontname|PDF_get_fontsize|PDF_get_image_height|' + + 'PDF_get_image_width|PDF_get_majorversion|PDF_get_minorversion|PDF_get_pdi_parameter|PDF_get_pdi_value|PDF_open_ccitt|PDF_open_file|' + + 'PDF_open_gif|PDF_open_image_file|PDF_open_image|PDF_open_jpeg|PDF_open_pdi|PDF_open_tiff|PDF_place_image|PDF_place_pdi_page|' + + 'PDF_set_border_color|PDF_set_border_dash|PDF_set_border_style|PDF_set_char_spacing|PDF_set_duration|PDF_set_horiz_scaling|' + + 'PDF_set_info_author|PDF_set_info_creator|PDF_set_info_keywords|PDF_set_info_subject|PDF_set_info_title|PDF_set_leading|' + + 'PDF_set_text_matrix|PDF_set_text_rendering|PDF_set_text_rise|PDF_set_word_spacing|PDF_setgray_fill|PDF_setgray_stroke|PDF_setgray|' + + 'PDF_setpolydash|PDF_setrgbcolor_fill|PDF_setrgbcolor_stroke|PDF_setrgbcolor|PDF_show_boxed|php_check_syntax|px_set_tablename|' + + 'px_set_targetencoding|runkit_sandbox_output_handler|session_is_registered|session_register|session_unregister' + + 'set_magic_quotes_runtime|magic_quotes_runtime|set_socket_blocking|socket_set_blocking|set_socket_timeout|socket_set_timeout|split|spliti|' + + 'sql_regcase').split('|') + ); + + var keywordsDeprecated = lang.arrayToMap( + ('cfunction|old_function').split('|') + ); + + var futureReserved = lang.arrayToMap([]); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /(?:#|\/\/)(?:[^?]|\?[^>])*/ + }, + docComment.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/][gimy]*\\s*(?=[).,;]|$)" + }, { + token : "string", // " string start + regex : '"', + next : "qqstring" + }, { + token : "string", // ' string start + regex : "'", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language", // constants + regex : "\\b(?:DEFAULT_INCLUDE_PATH|E_(?:ALL|CO(?:MPILE_(?:ERROR|WARNING)|RE_(?:ERROR|WARNING))|" + + "ERROR|NOTICE|PARSE|STRICT|USER_(?:ERROR|NOTICE|WARNING)|WARNING)|P(?:EAR_(?:EXTENSION_DIR|INSTALL_DIR)|" + + "HP_(?:BINDIR|CONFIG_FILE_(?:PATH|SCAN_DIR)|DATADIR|E(?:OL|XTENSION_DIR)|INT_(?:MAX|SIZE)|" + + "L(?:IBDIR|OCALSTATEDIR)|O(?:S|UTPUT_HANDLER_(?:CONT|END|START))|PREFIX|S(?:API|HLIB_SUFFIX|YSCONFDIR)|" + + "VERSION))|__COMPILER_HALT_OFFSET__)\\b" + }, { + token : ["keyword", "text", "support.class"], + regex : "\\b(new)(\\s+)(\\w+)" + }, { + token : ["support.class", "keyword.operator"], + regex : "\\b(\\w+)(::)" + }, { + token : "constant.language", // constants + regex : "\\b(?:A(?:B(?:DAY_(?:1|2|3|4|5|6|7)|MON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9))|LT_DIGITS|M_STR|" + + "SSERT_(?:ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(?:ASE_(?:LOWER|UPPER)|HAR_MAX|" + + "O(?:DESET|NNECTION_(?:ABORTED|NORMAL|TIMEOUT)|UNT_(?:NORMAL|RECURSIVE))|" + + "R(?:EDITS_(?:ALL|DOCS|FULLPAGE|G(?:ENERAL|ROUP)|MODULES|QA|SAPI)|NCYSTR|" + + "YPT_(?:BLOWFISH|EXT_DES|MD5|S(?:ALT_LENGTH|TD_DES)))|URRENCY_SYMBOL)|D(?:AY_(?:1|2|3|4|5|6|7)|" + + "ECIMAL_POINT|IRECTORY_SEPARATOR|_(?:FMT|T_FMT))|E(?:NT_(?:COMPAT|NOQUOTES|QUOTES)|RA(?:_(?:D_(?:FMT|T_FMT)|" + + "T_FMT|YEAR)|)|XTR_(?:IF_EXISTS|OVERWRITE|PREFIX_(?:ALL|I(?:F_EXISTS|NVALID)|SAME)|SKIP))|FRAC_DIGITS|GROUPING|" + + "HTML_(?:ENTITIES|SPECIALCHARS)|IN(?:FO_(?:ALL|C(?:ONFIGURATION|REDITS)|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|" + + "I_(?:ALL|PERDIR|SYSTEM|USER)|T_(?:CURR_SYMBOL|FRAC_DIGITS))|L(?:C_(?:ALL|C(?:OLLATE|TYPE)|M(?:ESSAGES|ONETARY)|NUMERIC|TIME)|" + + "O(?:CK_(?:EX|NB|SH|UN)|G_(?:A(?:LERT|UTH(?:PRIV|))|C(?:ONS|R(?:IT|ON))|D(?:AEMON|EBUG)|E(?:MERG|RR)|INFO|KERN|" + + "L(?:OCAL(?:0|1|2|3|4|5|6|7)|PR)|MAIL|N(?:DELAY|EWS|O(?:TICE|WAIT))|ODELAY|P(?:ERROR|ID)|SYSLOG|U(?:SER|UCP)|WARNING)))|" + + "M(?:ON_(?:1(?:0|1|2|)|2|3|4|5|6|7|8|9|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|_(?:1_PI|2_(?:PI|SQRTPI)|E|L(?:N(?:10|2)|" + + "OG(?:10E|2E))|PI(?:_(?:2|4)|)|SQRT(?:1_2|2)))|N(?:EGATIVE_SIGN|O(?:EXPR|STR)|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|" + + "P(?:ATH(?:INFO_(?:BASENAME|DIRNAME|EXTENSION)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(?:CS_PRECEDES|S(?:EP_BY_SPACE|IGN_POSN)))|" + + "RADIXCHAR|S(?:EEK_(?:CUR|END|SET)|ORT_(?:ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(?:BOTH|LEFT|RIGHT))|" + + "T(?:HOUS(?:ANDS_SEP|EP)|_FMT(?:_AMPM|))|YES(?:EXPR|STR)|STD(?:IN|OUT|ERR))\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (futureReserved.hasOwnProperty(value)) + return "invalid.illegal"; + else if (builtinFunctions.hasOwnProperty(value)) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + if(value.match(/^(\$[a-zA-Z_\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*|self|parent)$/)) + return "variable"; + return "identifier"; + }, + regex : /[a-zA-Z_$\x7f-\uffff][a-zA-Z0-9_\x7f-\uffff]*/ + }, { + onMatch : function(value, currentSate, state) { + value = value.substr(3); + if (value[0] == "'" || value[0] == '"') + value = value.slice(1, -1); + state.unshift(this.next, value); + return "markup.list"; + }, + regex : /<<<(?:\w+|'\w+'|"\w+")$/, + next: "heredoc" + }, { + token : "keyword.operator", + regex : "::|!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|!=|!==|<=|>=|=>|<<=|>>=|>>>=|<>|<|>|=|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "heredoc" : [ + { + onMatch : function(value, currentSate, stack) { + if (stack[1] != value) + return "string"; + stack.shift(); + stack.shift(); + return "markup.list"; + }, + regex : "^\\w+(?=;?$)", + next: "start" + }, { + token: "string", + regex : ".*" + } + ], + "comment" : [ + { + token : "comment", + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : '\\\\(?:[nrtvef\\\\"$]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})' + }, { + token : "variable", + regex : /\$[\w]+(?:\[[\w\]+]|[=\-]>\w+)?/ + }, { + token : "variable", + regex : /\$\{[^"\}]+\}?/ // this is wrong but ok for now + }, + {token : "string", regex : '"', next : "start"}, + {defaultToken : "string"} + ], + "qstring" : [ + {token : "constant.language.escape", regex : /\\['\\]/}, + {token : "string", regex : "'", next : "start"}, + {defaultToken : "string"} + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(PhpLangHighlightRules, TextHighlightRules); + + +var PhpHighlightRules = function() { + HtmlHighlightRules.call(this); + + var startRules = [ + { + token : "support.php_tag", // php open tag + regex : "<\\?(?:php|=)?", + push : "php-start" + } + ]; + + var endRules = [ + { + token : "support.php_tag", // php close tag + regex : "\\?>", + next : "pop" + } + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], startRules); + + this.embedRules(PhpLangHighlightRules, "php-", endRules, ["start"]); + + this.normalizeRules(); +}; + +oop.inherits(PhpHighlightRules, HtmlHighlightRules); + +exports.PhpHighlightRules = PhpHighlightRules; +exports.PhpLangHighlightRules = PhpLangHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/php_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var functionMap = { + "abs": [ + "int abs(int number)", + "Return the absolute value of the number" + ], + "acos": [ + "float acos(float number)", + "Return the arc cosine of the number in radians" + ], + "acosh": [ + "float acosh(float number)", + "Returns the inverse hyperbolic cosine of the number, i.e. the value whose hyperbolic cosine is number" + ], + "addGlob": [ + "bool addGlob(string pattern[,int flags [, array options]])", + "Add files matching the glob pattern. See php's glob for the pattern syntax." + ], + "addPattern": [ + "bool addPattern(string pattern[, string path [, array options]])", + "Add files matching the pcre pattern. See php's pcre for the pattern syntax." + ], + "addcslashes": [ + "string addcslashes(string str, string charlist)", + "Escapes all chars mentioned in charlist with backslash. It creates octal representations if asked to backslash characters with 8th bit set or with ASCII<32 (except '\\n', '\\r', '\\t' etc...)" + ], + "addslashes": [ + "string addslashes(string str)", + "Escapes single quote, double quotes and backslash characters in a string with backslashes" + ], + "apache_child_terminate": [ + "bool apache_child_terminate(void)", + "Terminate apache process after this request" + ], + "apache_get_modules": [ + "array apache_get_modules(void)", + "Get a list of loaded Apache modules" + ], + "apache_get_version": [ + "string apache_get_version(void)", + "Fetch Apache version" + ], + "apache_getenv": [ + "bool apache_getenv(string variable [, bool walk_to_top])", + "Get an Apache subprocess_env variable" + ], + "apache_lookup_uri": [ + "object apache_lookup_uri(string URI)", + "Perform a partial request of the given URI to obtain information about it" + ], + "apache_note": [ + "string apache_note(string note_name [, string note_value])", + "Get and set Apache request notes" + ], + "apache_request_auth_name": [ + "string apache_request_auth_name()", + "" + ], + "apache_request_auth_type": [ + "string apache_request_auth_type()", + "" + ], + "apache_request_discard_request_body": [ + "long apache_request_discard_request_body()", + "" + ], + "apache_request_err_headers_out": [ + "array apache_request_err_headers_out([{string name|array list} [, string value [, bool replace = false]]])", + "* fetch all headers that go out in case of an error or a subrequest" + ], + "apache_request_headers": [ + "array apache_request_headers(void)", + "Fetch all HTTP request headers" + ], + "apache_request_headers_in": [ + "array apache_request_headers_in()", + "* fetch all incoming request headers" + ], + "apache_request_headers_out": [ + "array apache_request_headers_out([{string name|array list} [, string value [, bool replace = false]]])", + "* fetch all outgoing request headers" + ], + "apache_request_is_initial_req": [ + "bool apache_request_is_initial_req()", + "" + ], + "apache_request_log_error": [ + "boolean apache_request_log_error(string message, [long facility])", + "" + ], + "apache_request_meets_conditions": [ + "long apache_request_meets_conditions()", + "" + ], + "apache_request_remote_host": [ + "int apache_request_remote_host([int type])", + "" + ], + "apache_request_run": [ + "long apache_request_run()", + "This is a wrapper for ap_sub_run_req and ap_destory_sub_req. It takes sub_request, runs it, destroys it, and returns it's status." + ], + "apache_request_satisfies": [ + "long apache_request_satisfies()", + "" + ], + "apache_request_server_port": [ + "int apache_request_server_port()", + "" + ], + "apache_request_set_etag": [ + "void apache_request_set_etag()", + "" + ], + "apache_request_set_last_modified": [ + "void apache_request_set_last_modified()", + "" + ], + "apache_request_some_auth_required": [ + "bool apache_request_some_auth_required()", + "" + ], + "apache_request_sub_req_lookup_file": [ + "object apache_request_sub_req_lookup_file(string file)", + "Returns sub-request for the specified file. You would need to run it yourself with run()." + ], + "apache_request_sub_req_lookup_uri": [ + "object apache_request_sub_req_lookup_uri(string uri)", + "Returns sub-request for the specified uri. You would need to run it yourself with run()" + ], + "apache_request_sub_req_method_uri": [ + "object apache_request_sub_req_method_uri(string method, string uri)", + "Returns sub-request for the specified file. You would need to run it yourself with run()." + ], + "apache_request_update_mtime": [ + "long apache_request_update_mtime([int dependency_mtime])", + "" + ], + "apache_reset_timeout": [ + "bool apache_reset_timeout(void)", + "Reset the Apache write timer" + ], + "apache_response_headers": [ + "array apache_response_headers(void)", + "Fetch all HTTP response headers" + ], + "apache_setenv": [ + "bool apache_setenv(string variable, string value [, bool walk_to_top])", + "Set an Apache subprocess_env variable" + ], + "array_change_key_case": [ + "array array_change_key_case(array input [, int case=CASE_LOWER])", + "Retuns an array with all string keys lowercased [or uppercased]" + ], + "array_chunk": [ + "array array_chunk(array input, int size [, bool preserve_keys])", + "Split array into chunks" + ], + "array_combine": [ + "array array_combine(array keys, array values)", + "Creates an array by using the elements of the first parameter as keys and the elements of the second as the corresponding values" + ], + "array_count_values": [ + "array array_count_values(array input)", + "Return the value as key and the frequency of that value in input as value" + ], + "array_diff": [ + "array array_diff(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have values which are not present in any of the others arguments." + ], + "array_diff_assoc": [ + "array array_diff_assoc(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal" + ], + "array_diff_key": [ + "array array_diff_key(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have keys which are not present in any of the others arguments. This function is like array_diff() but works on the keys instead of the values. The associativity is preserved." + ], + "array_diff_uassoc": [ + "array array_diff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func)", + "Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Elements are compared by user supplied function." + ], + "array_diff_ukey": [ + "array array_diff_ukey(array arr1, array arr2 [, array ...], callback key_comp_func)", + "Returns the entries of arr1 that have keys which are not present in any of the others arguments. User supplied function is used for comparing the keys. This function is like array_udiff() but works on the keys instead of the values. The associativity is preserved." + ], + "array_fill": [ + "array array_fill(int start_key, int num, mixed val)", + "Create an array containing num elements starting with index start_key each initialized to val" + ], + "array_fill_keys": [ + "array array_fill_keys(array keys, mixed val)", + "Create an array using the elements of the first parameter as keys each initialized to val" + ], + "array_filter": [ + "array array_filter(array input [, mixed callback])", + "Filters elements from the array via the callback." + ], + "array_flip": [ + "array array_flip(array input)", + "Return array with key <-> value flipped" + ], + "array_intersect": [ + "array array_intersect(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have values which are present in all the other arguments" + ], + "array_intersect_assoc": [ + "array array_intersect_assoc(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check" + ], + "array_intersect_key": [ + "array array_intersect_key(array arr1, array arr2 [, array ...])", + "Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). Equivalent of array_intersect_assoc() but does not do compare of the data." + ], + "array_intersect_uassoc": [ + "array array_intersect_uassoc(array arr1, array arr2 [, array ...], callback key_compare_func)", + "Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check and they are compared by using an user-supplied callback." + ], + "array_intersect_ukey": [ + "array array_intersect_ukey(array arr1, array arr2 [, array ...], callback key_compare_func)", + "Returns the entries of arr1 that have keys which are present in all the other arguments. Kind of equivalent to array_diff(array_keys($arr1), array_keys($arr2)[,array_keys(...)]). The comparison of the keys is performed by a user supplied function. Equivalent of array_intersect_uassoc() but does not do compare of the data." + ], + "array_key_exists": [ + "bool array_key_exists(mixed key, array search)", + "Checks if the given key or index exists in the array" + ], + "array_keys": [ + "array array_keys(array input [, mixed search_value[, bool strict]])", + "Return just the keys from the input array, optionally only for the specified search_value" + ], + "array_map": [ + "array array_map(mixed callback, array input1 [, array input2 ,...])", + "Applies the callback to the elements in given arrays." + ], + "array_merge": [ + "array array_merge(array arr1, array arr2 [, array ...])", + "Merges elements from passed arrays into one array" + ], + "array_merge_recursive": [ + "array array_merge_recursive(array arr1, array arr2 [, array ...])", + "Recursively merges elements from passed arrays into one array" + ], + "array_multisort": [ + "bool array_multisort(array ar1 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]] [, array ar2 [, SORT_ASC|SORT_DESC [, SORT_REGULAR|SORT_NUMERIC|SORT_STRING]], ...])", + "Sort multiple arrays at once similar to how ORDER BY clause works in SQL" + ], + "array_pad": [ + "array array_pad(array input, int pad_size, mixed pad_value)", + "Returns a copy of input array padded with pad_value to size pad_size" + ], + "array_pop": [ + "mixed array_pop(array stack)", + "Pops an element off the end of the array" + ], + "array_product": [ + "mixed array_product(array input)", + "Returns the product of the array entries" + ], + "array_push": [ + "int array_push(array stack, mixed var [, mixed ...])", + "Pushes elements onto the end of the array" + ], + "array_rand": [ + "mixed array_rand(array input [, int num_req])", + "Return key/keys for random entry/entries in the array" + ], + "array_reduce": [ + "mixed array_reduce(array input, mixed callback [, mixed initial])", + "Iteratively reduce the array to a single value via the callback." + ], + "array_replace": [ + "array array_replace(array arr1, array arr2 [, array ...])", + "Replaces elements from passed arrays into one array" + ], + "array_replace_recursive": [ + "array array_replace_recursive(array arr1, array arr2 [, array ...])", + "Recursively replaces elements from passed arrays into one array" + ], + "array_reverse": [ + "array array_reverse(array input [, bool preserve keys])", + "Return input as a new array with the order of the entries reversed" + ], + "array_search": [ + "mixed array_search(mixed needle, array haystack [, bool strict])", + "Searches the array for a given value and returns the corresponding key if successful" + ], + "array_shift": [ + "mixed array_shift(array stack)", + "Pops an element off the beginning of the array" + ], + "array_slice": [ + "array array_slice(array input, int offset [, int length [, bool preserve_keys]])", + "Returns elements specified by offset and length" + ], + "array_splice": [ + "array array_splice(array input, int offset [, int length [, array replacement]])", + "Removes the elements designated by offset and length and replace them with supplied array" + ], + "array_sum": [ + "mixed array_sum(array input)", + "Returns the sum of the array entries" + ], + "array_udiff": [ + "array array_udiff(array arr1, array arr2 [, array ...], callback data_comp_func)", + "Returns the entries of arr1 that have values which are not present in any of the others arguments. Elements are compared by user supplied function." + ], + "array_udiff_assoc": [ + "array array_udiff_assoc(array arr1, array arr2 [, array ...], callback key_comp_func)", + "Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys are compared by user supplied function." + ], + "array_udiff_uassoc": [ + "array array_udiff_uassoc(array arr1, array arr2 [, array ...], callback data_comp_func, callback key_comp_func)", + "Returns the entries of arr1 that have values which are not present in any of the others arguments but do additional checks whether the keys are equal. Keys and elements are compared by user supplied functions." + ], + "array_uintersect": [ + "array array_uintersect(array arr1, array arr2 [, array ...], callback data_compare_func)", + "Returns the entries of arr1 that have values which are present in all the other arguments. Data is compared by using an user-supplied callback." + ], + "array_uintersect_assoc": [ + "array array_uintersect_assoc(array arr1, array arr2 [, array ...], callback data_compare_func)", + "Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Data is compared by using an user-supplied callback." + ], + "array_uintersect_uassoc": [ + "array array_uintersect_uassoc(array arr1, array arr2 [, array ...], callback data_compare_func, callback key_compare_func)", + "Returns the entries of arr1 that have values which are present in all the other arguments. Keys are used to do more restrictive check. Both data and keys are compared by using user-supplied callbacks." + ], + "array_unique": [ + "array array_unique(array input [, int sort_flags])", + "Removes duplicate values from array" + ], + "array_unshift": [ + "int array_unshift(array stack, mixed var [, mixed ...])", + "Pushes elements onto the beginning of the array" + ], + "array_values": [ + "array array_values(array input)", + "Return just the values from the input array" + ], + "array_walk": [ + "bool array_walk(array input, string funcname [, mixed userdata])", + "Apply a user function to every member of an array" + ], + "array_walk_recursive": [ + "bool array_walk_recursive(array input, string funcname [, mixed userdata])", + "Apply a user function recursively to every member of an array" + ], + "arsort": [ + "bool arsort(array &array_arg [, int sort_flags])", + "Sort an array in reverse order and maintain index association" + ], + "asin": [ + "float asin(float number)", + "Returns the arc sine of the number in radians" + ], + "asinh": [ + "float asinh(float number)", + "Returns the inverse hyperbolic sine of the number, i.e. the value whose hyperbolic sine is number" + ], + "asort": [ + "bool asort(array &array_arg [, int sort_flags])", + "Sort an array and maintain index association" + ], + "assert": [ + "int assert(string|bool assertion)", + "Checks if assertion is false" + ], + "assert_options": [ + "mixed assert_options(int what [, mixed value])", + "Set/get the various assert flags" + ], + "atan": [ + "float atan(float number)", + "Returns the arc tangent of the number in radians" + ], + "atan2": [ + "float atan2(float y, float x)", + "Returns the arc tangent of y/x, with the resulting quadrant determined by the signs of y and x" + ], + "atanh": [ + "float atanh(float number)", + "Returns the inverse hyperbolic tangent of the number, i.e. the value whose hyperbolic tangent is number" + ], + "attachIterator": [ + "void attachIterator(Iterator iterator[, mixed info])", + "Attach a new iterator" + ], + "base64_decode": [ + "string base64_decode(string str[, bool strict])", + "Decodes string using MIME base64 algorithm" + ], + "base64_encode": [ + "string base64_encode(string str)", + "Encodes string using MIME base64 algorithm" + ], + "base_convert": [ + "string base_convert(string number, int frombase, int tobase)", + "Converts a number in a string from any base <= 36 to any base <= 36" + ], + "basename": [ + "string basename(string path [, string suffix])", + "Returns the filename component of the path" + ], + "bcadd": [ + "string bcadd(string left_operand, string right_operand [, int scale])", + "Returns the sum of two arbitrary precision numbers" + ], + "bccomp": [ + "int bccomp(string left_operand, string right_operand [, int scale])", + "Compares two arbitrary precision numbers" + ], + "bcdiv": [ + "string bcdiv(string left_operand, string right_operand [, int scale])", + "Returns the quotient of two arbitrary precision numbers (division)" + ], + "bcmod": [ + "string bcmod(string left_operand, string right_operand)", + "Returns the modulus of the two arbitrary precision operands" + ], + "bcmul": [ + "string bcmul(string left_operand, string right_operand [, int scale])", + "Returns the multiplication of two arbitrary precision numbers" + ], + "bcpow": [ + "string bcpow(string x, string y [, int scale])", + "Returns the value of an arbitrary precision number raised to the power of another" + ], + "bcpowmod": [ + "string bcpowmod(string x, string y, string mod [, int scale])", + "Returns the value of an arbitrary precision number raised to the power of another reduced by a modulous" + ], + "bcscale": [ + "bool bcscale(int scale)", + "Sets default scale parameter for all bc math functions" + ], + "bcsqrt": [ + "string bcsqrt(string operand [, int scale])", + "Returns the square root of an arbitray precision number" + ], + "bcsub": [ + "string bcsub(string left_operand, string right_operand [, int scale])", + "Returns the difference between two arbitrary precision numbers" + ], + "bin2hex": [ + "string bin2hex(string data)", + "Converts the binary representation of data to hex" + ], + "bind_textdomain_codeset": [ + "string bind_textdomain_codeset (string domain, string codeset)", + "Specify the character encoding in which the messages from the DOMAIN message catalog will be returned." + ], + "bindec": [ + "int bindec(string binary_number)", + "Returns the decimal equivalent of the binary number" + ], + "bindtextdomain": [ + "string bindtextdomain(string domain_name, string dir)", + "Bind to the text domain domain_name, looking for translations in dir. Returns the current domain" + ], + "birdstep_autocommit": [ + "bool birdstep_autocommit(int index)", + "" + ], + "birdstep_close": [ + "bool birdstep_close(int id)", + "" + ], + "birdstep_commit": [ + "bool birdstep_commit(int index)", + "" + ], + "birdstep_connect": [ + "int birdstep_connect(string server, string user, string pass)", + "" + ], + "birdstep_exec": [ + "int birdstep_exec(int index, string exec_str)", + "" + ], + "birdstep_fetch": [ + "bool birdstep_fetch(int index)", + "" + ], + "birdstep_fieldname": [ + "string birdstep_fieldname(int index, int col)", + "" + ], + "birdstep_fieldnum": [ + "int birdstep_fieldnum(int index)", + "" + ], + "birdstep_freeresult": [ + "bool birdstep_freeresult(int index)", + "" + ], + "birdstep_off_autocommit": [ + "bool birdstep_off_autocommit(int index)", + "" + ], + "birdstep_result": [ + "mixed birdstep_result(int index, mixed col)", + "" + ], + "birdstep_rollback": [ + "bool birdstep_rollback(int index)", + "" + ], + "bzcompress": [ + "string bzcompress(string source [, int blocksize100k [, int workfactor]])", + "Compresses a string into BZip2 encoded data" + ], + "bzdecompress": [ + "string bzdecompress(string source [, int small])", + "Decompresses BZip2 compressed data" + ], + "bzerrno": [ + "int bzerrno(resource bz)", + "Returns the error number" + ], + "bzerror": [ + "array bzerror(resource bz)", + "Returns the error number and error string in an associative array" + ], + "bzerrstr": [ + "string bzerrstr(resource bz)", + "Returns the error string" + ], + "bzopen": [ + "resource bzopen(string|int file|fp, string mode)", + "Opens a new BZip2 stream" + ], + "bzread": [ + "string bzread(resource bz[, int length])", + "Reads up to length bytes from a BZip2 stream, or 1024 bytes if length is not specified" + ], + "cal_days_in_month": [ + "int cal_days_in_month(int calendar, int month, int year)", + "Returns the number of days in a month for a given year and calendar" + ], + "cal_from_jd": [ + "array cal_from_jd(int jd, int calendar)", + "Converts from Julian Day Count to a supported calendar and return extended information" + ], + "cal_info": [ + "array cal_info([int calendar])", + "Returns information about a particular calendar" + ], + "cal_to_jd": [ + "int cal_to_jd(int calendar, int month, int day, int year)", + "Converts from a supported calendar to Julian Day Count" + ], + "call_user_func": [ + "mixed call_user_func(mixed function_name [, mixed parmeter] [, mixed ...])", + "Call a user function which is the first parameter" + ], + "call_user_func_array": [ + "mixed call_user_func_array(string function_name, array parameters)", + "Call a user function which is the first parameter with the arguments contained in array" + ], + "call_user_method": [ + "mixed call_user_method(string method_name, mixed object [, mixed parameter] [, mixed ...])", + "Call a user method on a specific object or class" + ], + "call_user_method_array": [ + "mixed call_user_method_array(string method_name, mixed object, array params)", + "Call a user method on a specific object or class using a parameter array" + ], + "ceil": [ + "float ceil(float number)", + "Returns the next highest integer value of the number" + ], + "chdir": [ + "bool chdir(string directory)", + "Change the current directory" + ], + "checkdate": [ + "bool checkdate(int month, int day, int year)", + "Returns true(1) if it is a valid date in gregorian calendar" + ], + "chgrp": [ + "bool chgrp(string filename, mixed group)", + "Change file group" + ], + "chmod": [ + "bool chmod(string filename, int mode)", + "Change file mode" + ], + "chown": [ + "bool chown (string filename, mixed user)", + "Change file owner" + ], + "chr": [ + "string chr(int ascii)", + "Converts ASCII code to a character" + ], + "chroot": [ + "bool chroot(string directory)", + "Change root directory" + ], + "chunk_split": [ + "string chunk_split(string str [, int chunklen [, string ending]])", + "Returns split line" + ], + "class_alias": [ + "bool class_alias(string user_class_name , string alias_name [, bool autoload])", + "Creates an alias for user defined class" + ], + "class_exists": [ + "bool class_exists(string classname [, bool autoload])", + "Checks if the class exists" + ], + "class_implements": [ + "array class_implements(mixed what [, bool autoload ])", + "Return all classes and interfaces implemented by SPL" + ], + "class_parents": [ + "array class_parents(object instance [, boolean autoload = true])", + "Return an array containing the names of all parent classes" + ], + "clearstatcache": [ + "void clearstatcache([bool clear_realpath_cache[, string filename]])", + "Clear file stat cache" + ], + "closedir": [ + "void closedir([resource dir_handle])", + "Close directory connection identified by the dir_handle" + ], + "closelog": [ + "bool closelog(void)", + "Close connection to system logger" + ], + "collator_asort": [ + "bool collator_asort( Collator $coll, array(string) $arr )", + "* Sort array using specified collator, maintaining index association." + ], + "collator_compare": [ + "int collator_compare( Collator $coll, string $str1, string $str2 )", + "* Compare two strings." + ], + "collator_create": [ + "Collator collator_create( string $locale )", + "* Create collator." + ], + "collator_get_attribute": [ + "int collator_get_attribute( Collator $coll, int $attr )", + "* Get collation attribute value." + ], + "collator_get_error_code": [ + "int collator_get_error_code( Collator $coll )", + "* Get collator's last error code." + ], + "collator_get_error_message": [ + "string collator_get_error_message( Collator $coll )", + "* Get text description for collator's last error code." + ], + "collator_get_locale": [ + "string collator_get_locale( Collator $coll, int $type )", + "* Gets the locale name of the collator." + ], + "collator_get_sort_key": [ + "bool collator_get_sort_key( Collator $coll, string $str )", + "* Get a sort key for a string from a Collator. }}}" + ], + "collator_get_strength": [ + "int collator_get_strength(Collator coll)", + "* Returns the current collation strength." + ], + "collator_set_attribute": [ + "bool collator_set_attribute( Collator $coll, int $attr, int $val )", + "* Set collation attribute." + ], + "collator_set_strength": [ + "bool collator_set_strength(Collator coll, int strength)", + "* Set the collation strength." + ], + "collator_sort": [ + "bool collator_sort( Collator $coll, array(string) $arr [, int $sort_flags] )", + "* Sort array using specified collator." + ], + "collator_sort_with_sort_keys": [ + "bool collator_sort_with_sort_keys( Collator $coll, array(string) $arr )", + "* Equivalent to standard PHP sort using Collator. * Uses ICU ucol_getSortKey for performance." + ], + "com_create_guid": [ + "string com_create_guid()", + "Generate a globally unique identifier (GUID)" + ], + "com_event_sink": [ + "bool com_event_sink(object comobject, object sinkobject [, mixed sinkinterface])", + "Connect events from a COM object to a PHP object" + ], + "com_get_active_object": [ + "object com_get_active_object(string progid [, int code_page ])", + "Returns a handle to an already running instance of a COM object" + ], + "com_load_typelib": [ + "bool com_load_typelib(string typelib_name [, int case_insensitive])", + "Loads a Typelibrary and registers its constants" + ], + "com_message_pump": [ + "bool com_message_pump([int timeoutms])", + "Process COM messages, sleeping for up to timeoutms milliseconds" + ], + "com_print_typeinfo": [ + "bool com_print_typeinfo(object comobject | string typelib, string dispinterface, bool wantsink)", + "Print out a PHP class definition for a dispatchable interface" + ], + "compact": [ + "array compact(mixed var_names [, mixed ...])", + "Creates a hash containing variables and their values" + ], + "compose_locale": [ + "static string compose_locale($array)", + "* Creates a locale by combining the parts of locale-ID passed * }}}" + ], + "confirm_extname_compiled": [ + "string confirm_extname_compiled(string arg)", + "Return a string to confirm that the module is compiled in" + ], + "connection_aborted": [ + "int connection_aborted(void)", + "Returns true if client disconnected" + ], + "connection_status": [ + "int connection_status(void)", + "Returns the connection status bitfield" + ], + "constant": [ + "mixed constant(string const_name)", + "Given the name of a constant this function will return the constant's associated value" + ], + "convert_cyr_string": [ + "string convert_cyr_string(string str, string from, string to)", + "Convert from one Cyrillic character set to another" + ], + "convert_uudecode": [ + "string convert_uudecode(string data)", + "decode a uuencoded string" + ], + "convert_uuencode": [ + "string convert_uuencode(string data)", + "uuencode a string" + ], + "copy": [ + "bool copy(string source_file, string destination_file [, resource context])", + "Copy a file" + ], + "cos": [ + "float cos(float number)", + "Returns the cosine of the number in radians" + ], + "cosh": [ + "float cosh(float number)", + "Returns the hyperbolic cosine of the number, defined as (exp(number) + exp(-number))/2" + ], + "count": [ + "int count(mixed var [, int mode])", + "Count the number of elements in a variable (usually an array)" + ], + "count_chars": [ + "mixed count_chars(string input [, int mode])", + "Returns info about what characters are used in input" + ], + "crc32": [ + "string crc32(string str)", + "Calculate the crc32 polynomial of a string" + ], + "create_function": [ + "string create_function(string args, string code)", + "Creates an anonymous function, and returns its name (funny, eh?)" + ], + "crypt": [ + "string crypt(string str [, string salt])", + "Hash a string" + ], + "ctype_alnum": [ + "bool ctype_alnum(mixed c)", + "Checks for alphanumeric character(s)" + ], + "ctype_alpha": [ + "bool ctype_alpha(mixed c)", + "Checks for alphabetic character(s)" + ], + "ctype_cntrl": [ + "bool ctype_cntrl(mixed c)", + "Checks for control character(s)" + ], + "ctype_digit": [ + "bool ctype_digit(mixed c)", + "Checks for numeric character(s)" + ], + "ctype_graph": [ + "bool ctype_graph(mixed c)", + "Checks for any printable character(s) except space" + ], + "ctype_lower": [ + "bool ctype_lower(mixed c)", + "Checks for lowercase character(s)" + ], + "ctype_print": [ + "bool ctype_print(mixed c)", + "Checks for printable character(s)" + ], + "ctype_punct": [ + "bool ctype_punct(mixed c)", + "Checks for any printable character which is not whitespace or an alphanumeric character" + ], + "ctype_space": [ + "bool ctype_space(mixed c)", + "Checks for whitespace character(s)" + ], + "ctype_upper": [ + "bool ctype_upper(mixed c)", + "Checks for uppercase character(s)" + ], + "ctype_xdigit": [ + "bool ctype_xdigit(mixed c)", + "Checks for character(s) representing a hexadecimal digit" + ], + "curl_close": [ + "void curl_close(resource ch)", + "Close a cURL session" + ], + "curl_copy_handle": [ + "resource curl_copy_handle(resource ch)", + "Copy a cURL handle along with all of it's preferences" + ], + "curl_errno": [ + "int curl_errno(resource ch)", + "Return an integer containing the last error number" + ], + "curl_error": [ + "string curl_error(resource ch)", + "Return a string contain the last error for the current session" + ], + "curl_exec": [ + "bool curl_exec(resource ch)", + "Perform a cURL session" + ], + "curl_getinfo": [ + "mixed curl_getinfo(resource ch [, int option])", + "Get information regarding a specific transfer" + ], + "curl_init": [ + "resource curl_init([string url])", + "Initialize a cURL session" + ], + "curl_multi_add_handle": [ + "int curl_multi_add_handle(resource mh, resource ch)", + "Add a normal cURL handle to a cURL multi handle" + ], + "curl_multi_close": [ + "void curl_multi_close(resource mh)", + "Close a set of cURL handles" + ], + "curl_multi_exec": [ + "int curl_multi_exec(resource mh, int &still_running)", + "Run the sub-connections of the current cURL handle" + ], + "curl_multi_getcontent": [ + "string curl_multi_getcontent(resource ch)", + "Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set" + ], + "curl_multi_info_read": [ + "array curl_multi_info_read(resource mh [, long msgs_in_queue])", + "Get information about the current transfers" + ], + "curl_multi_init": [ + "resource curl_multi_init(void)", + "Returns a new cURL multi handle" + ], + "curl_multi_remove_handle": [ + "int curl_multi_remove_handle(resource mh, resource ch)", + "Remove a multi handle from a set of cURL handles" + ], + "curl_multi_select": [ + "int curl_multi_select(resource mh[, double timeout])", + "Get all the sockets associated with the cURL extension, which can then be \"selected\"" + ], + "curl_setopt": [ + "bool curl_setopt(resource ch, int option, mixed value)", + "Set an option for a cURL transfer" + ], + "curl_setopt_array": [ + "bool curl_setopt_array(resource ch, array options)", + "Set an array of option for a cURL transfer" + ], + "curl_version": [ + "array curl_version([int version])", + "Return cURL version information." + ], + "current": [ + "mixed current(array array_arg)", + "Return the element currently pointed to by the internal array pointer" + ], + "date": [ + "string date(string format [, long timestamp])", + "Format a local date/time" + ], + "date_add": [ + "DateTime date_add(DateTime object, DateInterval interval)", + "Adds an interval to the current date in object." + ], + "date_create": [ + "DateTime date_create([string time[, DateTimeZone object]])", + "Returns new DateTime object" + ], + "date_create_from_format": [ + "DateTime date_create_from_format(string format, string time[, DateTimeZone object])", + "Returns new DateTime object formatted according to the specified format" + ], + "date_date_set": [ + "DateTime date_date_set(DateTime object, long year, long month, long day)", + "Sets the date." + ], + "date_default_timezone_get": [ + "string date_default_timezone_get()", + "Gets the default timezone used by all date/time functions in a script" + ], + "date_default_timezone_set": [ + "bool date_default_timezone_set(string timezone_identifier)", + "Sets the default timezone used by all date/time functions in a script" + ], + "date_diff": [ + "DateInterval date_diff(DateTime object [, bool absolute])", + "Returns the difference between two DateTime objects." + ], + "date_format": [ + "string date_format(DateTime object, string format)", + "Returns date formatted according to given format" + ], + "date_get_last_errors": [ + "array date_get_last_errors()", + "Returns the warnings and errors found while parsing a date/time string." + ], + "date_interval_create_from_date_string": [ + "DateInterval date_interval_create_from_date_string(string time)", + "Uses the normal date parsers and sets up a DateInterval from the relative parts of the parsed string" + ], + "date_interval_format": [ + "string date_interval_format(DateInterval object, string format)", + "Formats the interval." + ], + "date_isodate_set": [ + "DateTime date_isodate_set(DateTime object, long year, long week[, long day])", + "Sets the ISO date." + ], + "date_modify": [ + "DateTime date_modify(DateTime object, string modify)", + "Alters the timestamp." + ], + "date_offset_get": [ + "long date_offset_get(DateTime object)", + "Returns the DST offset." + ], + "date_parse": [ + "array date_parse(string date)", + "Returns associative array with detailed info about given date" + ], + "date_parse_from_format": [ + "array date_parse_from_format(string format, string date)", + "Returns associative array with detailed info about given date" + ], + "date_sub": [ + "DateTime date_sub(DateTime object, DateInterval interval)", + "Subtracts an interval to the current date in object." + ], + "date_sun_info": [ + "array date_sun_info(long time, float latitude, float longitude)", + "Returns an array with information about sun set/rise and twilight begin/end" + ], + "date_sunrise": [ + "mixed date_sunrise(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])", + "Returns time of sunrise for a given day and location" + ], + "date_sunset": [ + "mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])", + "Returns time of sunset for a given day and location" + ], + "date_time_set": [ + "DateTime date_time_set(DateTime object, long hour, long minute[, long second])", + "Sets the time." + ], + "date_timestamp_get": [ + "long date_timestamp_get(DateTime object)", + "Gets the Unix timestamp." + ], + "date_timestamp_set": [ + "DateTime date_timestamp_set(DateTime object, long unixTimestamp)", + "Sets the date and time based on an Unix timestamp." + ], + "date_timezone_get": [ + "DateTimeZone date_timezone_get(DateTime object)", + "Return new DateTimeZone object relative to give DateTime" + ], + "date_timezone_set": [ + "DateTime date_timezone_set(DateTime object, DateTimeZone object)", + "Sets the timezone for the DateTime object." + ], + "datefmt_create": [ + "IntlDateFormatter datefmt_create(string $locale, long date_type, long time_type[, string $timezone_str, long $calendar, string $pattern] )", + "* Create formatter." + ], + "datefmt_format": [ + "string datefmt_format( [mixed]int $args or array $args )", + "* Format the time value as a string. }}}" + ], + "datefmt_get_calendar": [ + "string datefmt_get_calendar( IntlDateFormatter $mf )", + "* Get formatter calendar." + ], + "datefmt_get_datetype": [ + "string datefmt_get_datetype( IntlDateFormatter $mf )", + "* Get formatter datetype." + ], + "datefmt_get_error_code": [ + "int datefmt_get_error_code( IntlDateFormatter $nf )", + "* Get formatter's last error code." + ], + "datefmt_get_error_message": [ + "string datefmt_get_error_message( IntlDateFormatter $coll )", + "* Get text description for formatter's last error code." + ], + "datefmt_get_locale": [ + "string datefmt_get_locale(IntlDateFormatter $mf)", + "* Get formatter locale." + ], + "datefmt_get_pattern": [ + "string datefmt_get_pattern( IntlDateFormatter $mf )", + "* Get formatter pattern." + ], + "datefmt_get_timetype": [ + "string datefmt_get_timetype( IntlDateFormatter $mf )", + "* Get formatter timetype." + ], + "datefmt_get_timezone_id": [ + "string datefmt_get_timezone_id( IntlDateFormatter $mf )", + "* Get formatter timezone_id." + ], + "datefmt_isLenient": [ + "string datefmt_isLenient(IntlDateFormatter $mf)", + "* Get formatter locale." + ], + "datefmt_localtime": [ + "integer datefmt_localtime( IntlDateFormatter $fmt, string $text_to_parse[, int $parse_pos ])", + "* Parse the string $value to a localtime array }}}" + ], + "datefmt_parse": [ + "integer datefmt_parse( IntlDateFormatter $fmt, string $text_to_parse [, int $parse_pos] )", + "* Parse the string $value starting at parse_pos to a Unix timestamp -int }}}" + ], + "datefmt_setLenient": [ + "string datefmt_setLenient(IntlDateFormatter $mf)", + "* Set formatter lenient." + ], + "datefmt_set_calendar": [ + "bool datefmt_set_calendar( IntlDateFormatter $mf, int $calendar )", + "* Set formatter calendar." + ], + "datefmt_set_pattern": [ + "bool datefmt_set_pattern( IntlDateFormatter $mf, string $pattern )", + "* Set formatter pattern." + ], + "datefmt_set_timezone_id": [ + "boolean datefmt_set_timezone_id( IntlDateFormatter $mf,$timezone_id)", + "* Set formatter timezone_id." + ], + "dba_close": [ + "void dba_close(resource handle)", + "Closes database" + ], + "dba_delete": [ + "bool dba_delete(string key, resource handle)", + "Deletes the entry associated with key If inifile: remove all other key lines" + ], + "dba_exists": [ + "bool dba_exists(string key, resource handle)", + "Checks, if the specified key exists" + ], + "dba_fetch": [ + "string dba_fetch(string key, [int skip ,] resource handle)", + "Fetches the data associated with key" + ], + "dba_firstkey": [ + "string dba_firstkey(resource handle)", + "Resets the internal key pointer and returns the first key" + ], + "dba_handlers": [ + "array dba_handlers([bool full_info])", + "List configured database handlers" + ], + "dba_insert": [ + "bool dba_insert(string key, string value, resource handle)", + "If not inifile: Insert value as key, return false, if key exists already If inifile: Add vakue as key (next instance of key)" + ], + "dba_key_split": [ + "array|false dba_key_split(string key)", + "Splits an inifile key into an array of the form array(0=>group,1=>value_name) but returns false if input is false or null" + ], + "dba_list": [ + "array dba_list()", + "List opened databases" + ], + "dba_nextkey": [ + "string dba_nextkey(resource handle)", + "Returns the next key" + ], + "dba_open": [ + "resource dba_open(string path, string mode [, string handlername, string ...])", + "Opens path using the specified handler in mode" + ], + "dba_optimize": [ + "bool dba_optimize(resource handle)", + "Optimizes (e.g. clean up, vacuum) database" + ], + "dba_popen": [ + "resource dba_popen(string path, string mode [, string handlername, string ...])", + "Opens path using the specified handler in mode persistently" + ], + "dba_replace": [ + "bool dba_replace(string key, string value, resource handle)", + "Inserts value as key, replaces key, if key exists already If inifile: remove all other key lines" + ], + "dba_sync": [ + "bool dba_sync(resource handle)", + "Synchronizes database" + ], + "dcgettext": [ + "string dcgettext(string domain_name, string msgid, long category)", + "Return the translation of msgid for domain_name and category, or msgid unaltered if a translation does not exist" + ], + "dcngettext": [ + "string dcngettext (string domain, string msgid1, string msgid2, int n, int category)", + "Plural version of dcgettext()" + ], + "debug_backtrace": [ + "array debug_backtrace([bool provide_object])", + "Return backtrace as array" + ], + "debug_print_backtrace": [ + "void debug_print_backtrace(void) */", + "ZEND_FUNCTION(debug_print_backtrace) { zend_execute_data *ptr, *skip; int lineno; char *function_name; char *filename; char *class_name = NULL; char *call_type; char *include_filename = NULL; zval *arg_array = NULL; int indent = 0; if (zend_parse_parameters_none() == FAILURE) { return; } ptr = EG(current_execute_data);", + "PHP_FUNCTION(dom_document_relaxNG_validate_file) { _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_relaxNG_validate_file" + ], + "dom_document_relaxNG_validate_xml": [ + "boolean dom_document_relaxNG_validate_xml(string source); */", + "PHP_FUNCTION(dom_document_relaxNG_validate_xml) { _dom_document_relaxNG_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_relaxNG_validate_xml" + ], + "dom_document_rename_node": [ + "DOMNode dom_document_rename_node(node n, string namespaceURI, string qualifiedName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Document3-renameNode Since: DOM Level 3" + ], + "dom_document_save": [ + "int dom_document_save(string file);", + "Convenience method to save to file" + ], + "dom_document_save_html": [ + "string dom_document_save_html();", + "Convenience method to output as html" + ], + "dom_document_save_html_file": [ + "int dom_document_save_html_file(string file);", + "Convenience method to save to file as html" + ], + "dom_document_savexml": [ + "string dom_document_savexml([node n]);", + "URL: http://www.w3.org/TR/DOM-Level-3-LS/load-save.html#LS-DocumentLS-saveXML Since: DOM Level 3" + ], + "dom_document_schema_validate": [ + "boolean dom_document_schema_validate(string source); */", + "PHP_FUNCTION(dom_document_schema_validate_xml) { _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_STRING); } /* }}} end dom_document_schema_validate" + ], + "dom_document_schema_validate_file": [ + "boolean dom_document_schema_validate_file(string filename); */", + "PHP_FUNCTION(dom_document_schema_validate_file) { _dom_document_schema_validate(INTERNAL_FUNCTION_PARAM_PASSTHRU, DOM_LOAD_FILE); } /* }}} end dom_document_schema_validate_file" + ], + "dom_document_validate": [ + "boolean dom_document_validate();", + "Since: DOM extended" + ], + "dom_document_xinclude": [ + "int dom_document_xinclude([int options])", + "Substitutues xincludes in a DomDocument" + ], + "dom_domconfiguration_can_set_parameter": [ + "boolean dom_domconfiguration_can_set_parameter(string name, domuserdata value);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-canSetParameter Since:" + ], + "dom_domconfiguration_get_parameter": [ + "domdomuserdata dom_domconfiguration_get_parameter(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-getParameter Since:" + ], + "dom_domconfiguration_set_parameter": [ + "dom_void dom_domconfiguration_set_parameter(string name, domuserdata value);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMConfiguration-property Since:" + ], + "dom_domerrorhandler_handle_error": [ + "dom_boolean dom_domerrorhandler_handle_error(domerror error);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-ERRORS-DOMErrorHandler-handleError Since:" + ], + "dom_domimplementation_create_document": [ + "DOMDocument dom_domimplementation_create_document(string namespaceURI, string qualifiedName, DOMDocumentType doctype);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocument Since: DOM Level 2" + ], + "dom_domimplementation_create_document_type": [ + "DOMDocumentType dom_domimplementation_create_document_type(string qualifiedName, string publicId, string systemId);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Level-2-Core-DOM-createDocType Since: DOM Level 2" + ], + "dom_domimplementation_get_feature": [ + "DOMNode dom_domimplementation_get_feature(string feature, string version);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementation3-getFeature Since: DOM Level 3" + ], + "dom_domimplementation_has_feature": [ + "boolean dom_domimplementation_has_feature(string feature, string version);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-5CED94D7 Since:" + ], + "dom_domimplementationlist_item": [ + "domdomimplementation dom_domimplementationlist_item(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMImplementationList-item Since:" + ], + "dom_domimplementationsource_get_domimplementation": [ + "domdomimplementation dom_domimplementationsource_get_domimplementation(string features);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpl Since:" + ], + "dom_domimplementationsource_get_domimplementations": [ + "domimplementationlist dom_domimplementationsource_get_domimplementations(string features);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-getDOMImpls Since:" + ], + "dom_domstringlist_item": [ + "domstring dom_domstringlist_item(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#DOMStringList-item Since:" + ], + "dom_element_get_attribute": [ + "string dom_element_get_attribute(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-666EE0F9 Since:" + ], + "dom_element_get_attribute_node": [ + "DOMAttr dom_element_get_attribute_node(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-217A91B8 Since:" + ], + "dom_element_get_attribute_node_ns": [ + "DOMAttr dom_element_get_attribute_node_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAtNodeNS Since: DOM Level 2" + ], + "dom_element_get_attribute_ns": [ + "string dom_element_get_attribute_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElGetAttrNS Since: DOM Level 2" + ], + "dom_element_get_elements_by_tag_name": [ + "DOMNodeList dom_element_get_elements_by_tag_name(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1938918D Since:" + ], + "dom_element_get_elements_by_tag_name_ns": [ + "DOMNodeList dom_element_get_elements_by_tag_name_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-A6C90942 Since: DOM Level 2" + ], + "dom_element_has_attribute": [ + "boolean dom_element_has_attribute(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttr Since: DOM Level 2" + ], + "dom_element_has_attribute_ns": [ + "boolean dom_element_has_attribute_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElHasAttrNS Since: DOM Level 2" + ], + "dom_element_remove_attribute": [ + "void dom_element_remove_attribute(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-6D6AC0F9 Since:" + ], + "dom_element_remove_attribute_node": [ + "DOMAttr dom_element_remove_attribute_node(DOMAttr oldAttr);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D589198 Since:" + ], + "dom_element_remove_attribute_ns": [ + "void dom_element_remove_attribute_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElRemAtNS Since: DOM Level 2" + ], + "dom_element_set_attribute": [ + "void dom_element_set_attribute(string name, string value);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-F68F082 Since:" + ], + "dom_element_set_attribute_node": [ + "DOMAttr dom_element_set_attribute_node(DOMAttr newAttr);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-887236154 Since:" + ], + "dom_element_set_attribute_node_ns": [ + "DOMAttr dom_element_set_attribute_node_ns(DOMAttr newAttr);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAtNodeNS Since: DOM Level 2" + ], + "dom_element_set_attribute_ns": [ + "void dom_element_set_attribute_ns(string namespaceURI, string qualifiedName, string value);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetAttrNS Since: DOM Level 2" + ], + "dom_element_set_id_attribute": [ + "void dom_element_set_id_attribute(string name, boolean isId);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttr Since: DOM Level 3" + ], + "dom_element_set_id_attribute_node": [ + "void dom_element_set_id_attribute_node(attr idAttr, boolean isId);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNode Since: DOM Level 3" + ], + "dom_element_set_id_attribute_ns": [ + "void dom_element_set_id_attribute_ns(string namespaceURI, string localName, boolean isId);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-ElSetIdAttrNS Since: DOM Level 3" + ], + "dom_import_simplexml": [ + "somNode dom_import_simplexml(sxeobject node)", + "Get a simplexml_element object from dom to allow for processing" + ], + "dom_namednodemap_get_named_item": [ + "DOMNode dom_namednodemap_get_named_item(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1074577549 Since:" + ], + "dom_namednodemap_get_named_item_ns": [ + "DOMNode dom_namednodemap_get_named_item_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-getNamedItemNS Since: DOM Level 2" + ], + "dom_namednodemap_item": [ + "DOMNode dom_namednodemap_item(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-349467F9 Since:" + ], + "dom_namednodemap_remove_named_item": [ + "DOMNode dom_namednodemap_remove_named_item(string name);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-D58B193 Since:" + ], + "dom_namednodemap_remove_named_item_ns": [ + "DOMNode dom_namednodemap_remove_named_item_ns(string namespaceURI, string localName);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-removeNamedItemNS Since: DOM Level 2" + ], + "dom_namednodemap_set_named_item": [ + "DOMNode dom_namednodemap_set_named_item(DOMNode arg);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1025163788 Since:" + ], + "dom_namednodemap_set_named_item_ns": [ + "DOMNode dom_namednodemap_set_named_item_ns(DOMNode arg);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-setNamedItemNS Since: DOM Level 2" + ], + "dom_namelist_get_name": [ + "string dom_namelist_get_name(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getName Since:" + ], + "dom_namelist_get_namespace_uri": [ + "string dom_namelist_get_namespace_uri(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#NameList-getNamespaceURI Since:" + ], + "dom_node_append_child": [ + "DomNode dom_node_append_child(DomNode newChild);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-184E7107 Since:" + ], + "dom_node_clone_node": [ + "DomNode dom_node_clone_node(boolean deep);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-3A0ED0A4 Since:" + ], + "dom_node_compare_document_position": [ + "short dom_node_compare_document_position(DomNode other);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-compareDocumentPosition Since: DOM Level 3" + ], + "dom_node_get_feature": [ + "DomNode dom_node_get_feature(string feature, string version);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getFeature Since: DOM Level 3" + ], + "dom_node_get_user_data": [ + "mixed dom_node_get_user_data(string key);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-getUserData Since: DOM Level 3" + ], + "dom_node_has_attributes": [ + "boolean dom_node_has_attributes();", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-NodeHasAttrs Since: DOM Level 2" + ], + "dom_node_has_child_nodes": [ + "boolean dom_node_has_child_nodes();", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-810594187 Since:" + ], + "dom_node_insert_before": [ + "domnode dom_node_insert_before(DomNode newChild, DomNode refChild);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-952280727 Since:" + ], + "dom_node_is_default_namespace": [ + "boolean dom_node_is_default_namespace(string namespaceURI);", + "URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-isDefaultNamespace Since: DOM Level 3" + ], + "dom_node_is_equal_node": [ + "boolean dom_node_is_equal_node(DomNode arg);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isEqualNode Since: DOM Level 3" + ], + "dom_node_is_same_node": [ + "boolean dom_node_is_same_node(DomNode other);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-isSameNode Since: DOM Level 3" + ], + "dom_node_is_supported": [ + "boolean dom_node_is_supported(string feature, string version);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Level-2-Core-Node-supports Since: DOM Level 2" + ], + "dom_node_lookup_namespace_uri": [ + "string dom_node_lookup_namespace_uri(string prefix);", + "URL: http://www.w3.org/TR/DOM-Level-3-Core/core.html#Node3-lookupNamespaceURI Since: DOM Level 3" + ], + "dom_node_lookup_prefix": [ + "string dom_node_lookup_prefix(string namespaceURI);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-lookupNamespacePrefix Since: DOM Level 3" + ], + "dom_node_normalize": [ + "void dom_node_normalize();", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-normalize Since:" + ], + "dom_node_remove_child": [ + "DomNode dom_node_remove_child(DomNode oldChild);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-1734834066 Since:" + ], + "dom_node_replace_child": [ + "DomNode dom_node_replace_child(DomNode newChild, DomNode oldChild);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-785887307 Since:" + ], + "dom_node_set_user_data": [ + "mixed dom_node_set_user_data(string key, mixed data, userdatahandler handler);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#Node3-setUserData Since: DOM Level 3" + ], + "dom_nodelist_item": [ + "DOMNode dom_nodelist_item(int index);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-844377136 Since:" + ], + "dom_string_extend_find_offset16": [ + "int dom_string_extend_find_offset16(int offset32);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset16 Since:" + ], + "dom_string_extend_find_offset32": [ + "int dom_string_extend_find_offset32(int offset16);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#i18n-methods-StringExtend-findOffset32 Since:" + ], + "dom_text_is_whitespace_in_element_content": [ + "boolean dom_text_is_whitespace_in_element_content();", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-isWhitespaceInElementContent Since: DOM Level 3" + ], + "dom_text_replace_whole_text": [ + "DOMText dom_text_replace_whole_text(string content);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-Text3-replaceWholeText Since: DOM Level 3" + ], + "dom_text_split_text": [ + "DOMText dom_text_split_text(int offset);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#core-ID-38853C1D Since:" + ], + "dom_userdatahandler_handle": [ + "dom_void dom_userdatahandler_handle(short operation, string key, domobject data, node src, node dst);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html#ID-handleUserDataEvent Since:" + ], + "dom_xpath_evaluate": [ + "mixed dom_xpath_evaluate(string expr [,DOMNode context]); */", + "PHP_FUNCTION(dom_xpath_evaluate) { php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_EVALUATE); } /* }}} end dom_xpath_evaluate" + ], + "dom_xpath_query": [ + "DOMNodeList dom_xpath_query(string expr [,DOMNode context]); */", + "PHP_FUNCTION(dom_xpath_query) { php_xpath_eval(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_DOM_XPATH_QUERY); } /* }}} end dom_xpath_query" + ], + "dom_xpath_register_ns": [ + "boolean dom_xpath_register_ns(string prefix, string uri); */", + "PHP_FUNCTION(dom_xpath_register_ns) { zval *id; xmlXPathContextPtr ctxp; int prefix_len, ns_uri_len; dom_xpath_object *intern; unsigned char *prefix, *ns_uri; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Oss\", &id, dom_xpath_class_entry, &prefix, &prefix_len, &ns_uri, &ns_uri_len) == FAILURE) { return; } intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC); ctxp = (xmlXPathContextPtr) intern->ptr; if (ctxp == NULL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid XPath Context\"); RETURN_FALSE; } if (xmlXPathRegisterNs(ctxp, prefix, ns_uri) != 0) { RETURN_FALSE } RETURN_TRUE; } /* }}}" + ], + "dom_xpath_register_php_functions": [ + "void dom_xpath_register_php_functions() */", + "PHP_FUNCTION(dom_xpath_register_php_functions) { zval *id; dom_xpath_object *intern; zval *array_value, **entry, *new_string; int name_len = 0; char *name; DOM_GET_THIS(id); if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"a\", &array_value) == SUCCESS) { intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC); zend_hash_internal_pointer_reset(Z_ARRVAL_P(array_value)); while (zend_hash_get_current_data(Z_ARRVAL_P(array_value), (void **)&entry) == SUCCESS) { SEPARATE_ZVAL(entry); convert_to_string_ex(entry); MAKE_STD_ZVAL(new_string); ZVAL_LONG(new_string,1); zend_hash_update(intern->registered_phpfunctions, Z_STRVAL_PP(entry), Z_STRLEN_PP(entry) + 1, &new_string, sizeof(zval*), NULL); zend_hash_move_forward(Z_ARRVAL_P(array_value)); } intern->registerPhpFunctions = 2; RETURN_TRUE; } else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &name, &name_len) == SUCCESS) { intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC); MAKE_STD_ZVAL(new_string); ZVAL_LONG(new_string,1); zend_hash_update(intern->registered_phpfunctions, name, name_len + 1, &new_string, sizeof(zval*), NULL); intern->registerPhpFunctions = 2; } else { intern = (dom_xpath_object *)zend_object_store_get_object(id TSRMLS_CC); intern->registerPhpFunctions = 1; } } /* }}} end dom_xpath_register_php_functions" + ], + "each": [ + "array each(array arr)", + "Return the currently pointed key..value pair in the passed array, and advance the pointer to the next element" + ], + "easter_date": [ + "int easter_date([int year])", + "Return the timestamp of midnight on Easter of a given year (defaults to current year)" + ], + "easter_days": [ + "int easter_days([int year, [int method]])", + "Return the number of days after March 21 that Easter falls on for a given year (defaults to current year)" + ], + "echo": [ + "void echo(string arg1 [, string ...])", + "Output one or more strings" + ], + "empty": [ + "bool empty( mixed var )", + "Determine whether a variable is empty" + ], + "enchant_broker_describe": [ + "array enchant_broker_describe(resource broker)", + "Enumerates the Enchant providers and tells you some rudimentary information about them. The same info is provided through phpinfo()" + ], + "enchant_broker_dict_exists": [ + "bool enchant_broker_dict_exists(resource broker, string tag)", + "Wether a dictionary exists or not. Using non-empty tag" + ], + "enchant_broker_free": [ + "boolean enchant_broker_free(resource broker)", + "Destroys the broker object and its dictionnaries" + ], + "enchant_broker_free_dict": [ + "resource enchant_broker_free_dict(resource dict)", + "Free the dictionary resource" + ], + "enchant_broker_get_dict_path": [ + "string enchant_broker_get_dict_path(resource broker, int dict_type)", + "Get the directory path for a given backend, works with ispell and myspell" + ], + "enchant_broker_get_error": [ + "string enchant_broker_get_error(resource broker)", + "Returns the last error of the broker" + ], + "enchant_broker_init": [ + "resource enchant_broker_init()", + "create a new broker object capable of requesting" + ], + "enchant_broker_list_dicts": [ + "string enchant_broker_list_dicts(resource broker)", + "Lists the dictionaries available for the given broker" + ], + "enchant_broker_request_dict": [ + "resource enchant_broker_request_dict(resource broker, string tag)", + "create a new dictionary using tag, the non-empty language tag you wish to request a dictionary for (\"en_US\", \"de_DE\", ...)" + ], + "enchant_broker_request_pwl_dict": [ + "resource enchant_broker_request_pwl_dict(resource broker, string filename)", + "creates a dictionary using a PWL file. A PWL file is personal word file one word per line. It must exist before the call." + ], + "enchant_broker_set_dict_path": [ + "bool enchant_broker_set_dict_path(resource broker, int dict_type, string value)", + "Set the directory path for a given backend, works with ispell and myspell" + ], + "enchant_broker_set_ordering": [ + "bool enchant_broker_set_ordering(resource broker, string tag, string ordering)", + "Declares a preference of dictionaries to use for the language described/referred to by 'tag'. The ordering is a comma delimited list of provider names. As a special exception, the \"*\" tag can be used as a language tag to declare a default ordering for any language that does not explictly declare an ordering." + ], + "enchant_dict_add_to_personal": [ + "void enchant_dict_add_to_personal(resource dict, string word)", + "add 'word' to personal word list" + ], + "enchant_dict_add_to_session": [ + "void enchant_dict_add_to_session(resource dict, string word)", + "add 'word' to this spell-checking session" + ], + "enchant_dict_check": [ + "bool enchant_dict_check(resource dict, string word)", + "If the word is correctly spelled return true, otherwise return false" + ], + "enchant_dict_describe": [ + "array enchant_dict_describe(resource dict)", + "Describes an individual dictionary 'dict'" + ], + "enchant_dict_get_error": [ + "string enchant_dict_get_error(resource dict)", + "Returns the last error of the current spelling-session" + ], + "enchant_dict_is_in_session": [ + "bool enchant_dict_is_in_session(resource dict, string word)", + "whether or not 'word' exists in this spelling-session" + ], + "enchant_dict_quick_check": [ + "bool enchant_dict_quick_check(resource dict, string word [, array &suggestions])", + "If the word is correctly spelled return true, otherwise return false, if suggestions variable is provided, fill it with spelling alternatives." + ], + "enchant_dict_store_replacement": [ + "void enchant_dict_store_replacement(resource dict, string mis, string cor)", + "add a correction for 'mis' using 'cor'. Notes that you replaced @mis with @cor, so it's possibly more likely that future occurrences of @mis will be replaced with @cor. So it might bump @cor up in the suggestion list." + ], + "enchant_dict_suggest": [ + "array enchant_dict_suggest(resource dict, string word)", + "Will return a list of values if any of those pre-conditions are not met." + ], + "end": [ + "mixed end(array array_arg)", + "Advances array argument's internal pointer to the last element and return it" + ], + "ereg": [ + "int ereg(string pattern, string string [, array registers])", + "Regular expression match" + ], + "ereg_replace": [ + "string ereg_replace(string pattern, string replacement, string string)", + "Replace regular expression" + ], + "eregi": [ + "int eregi(string pattern, string string [, array registers])", + "Case-insensitive regular expression match" + ], + "eregi_replace": [ + "string eregi_replace(string pattern, string replacement, string string)", + "Case insensitive replace regular expression" + ], + "error_get_last": [ + "array error_get_last()", + "Get the last occurred error as associative array. Returns NULL if there hasn't been an error yet." + ], + "error_log": [ + "bool error_log(string message [, int message_type [, string destination [, string extra_headers]]])", + "Send an error message somewhere" + ], + "error_reporting": [ + "int error_reporting([int new_error_level])", + "Return the current error_reporting level, and if an argument was passed - change to the new level" + ], + "escapeshellarg": [ + "string escapeshellarg(string arg)", + "Quote and escape an argument for use in a shell command" + ], + "escapeshellcmd": [ + "string escapeshellcmd(string command)", + "Escape shell metacharacters" + ], + "exec": [ + "string exec(string command [, array &output [, int &return_value]])", + "Execute an external program" + ], + "exif_imagetype": [ + "int exif_imagetype(string imagefile)", + "Get the type of an image" + ], + "exif_read_data": [ + "array exif_read_data(string filename [, sections_needed [, sub_arrays[, read_thumbnail]]])", + "Reads header data from the JPEG/TIFF image filename and optionally reads the internal thumbnails" + ], + "exif_tagname": [ + "string exif_tagname(index)", + "Get headername for index or false if not defined" + ], + "exif_thumbnail": [ + "string exif_thumbnail(string filename [, &width, &height [, &imagetype]])", + "Reads the embedded thumbnail" + ], + "exit": [ + "void exit([mixed status])", + "Output a message and terminate the current script" + ], + "exp": [ + "float exp(float number)", + "Returns e raised to the power of the number" + ], + "explode": [ + "array explode(string separator, string str [, int limit])", + "Splits a string on string separator and return array of components. If limit is positive only limit number of components is returned. If limit is negative all components except the last abs(limit) are returned." + ], + "expm1": [ + "float expm1(float number)", + "Returns exp(number) - 1, computed in a way that accurate even when the value of number is close to zero" + ], + "extension_loaded": [ + "bool extension_loaded(string extension_name)", + "Returns true if the named extension is loaded" + ], + "extract": [ + "int extract(array var_array [, int extract_type [, string prefix]])", + "Imports variables into symbol table from an array" + ], + "ezmlm_hash": [ + "int ezmlm_hash(string addr)", + "Calculate EZMLM list hash value." + ], + "fclose": [ + "bool fclose(resource fp)", + "Close an open file pointer" + ], + "feof": [ + "bool feof(resource fp)", + "Test for end-of-file on a file pointer" + ], + "fflush": [ + "bool fflush(resource fp)", + "Flushes output" + ], + "fgetc": [ + "string fgetc(resource fp)", + "Get a character from file pointer" + ], + "fgetcsv": [ + "array fgetcsv(resource fp [,int length [, string delimiter [, string enclosure [, string escape]]]])", + "Get line from file pointer and parse for CSV fields" + ], + "fgets": [ + "string fgets(resource fp[, int length])", + "Get a line from file pointer" + ], + "fgetss": [ + "string fgetss(resource fp [, int length [, string allowable_tags]])", + "Get a line from file pointer and strip HTML tags" + ], + "file": [ + "array file(string filename [, int flags[, resource context]])", + "Read entire file into an array" + ], + "file_exists": [ + "bool file_exists(string filename)", + "Returns true if filename exists" + ], + "file_get_contents": [ + "string file_get_contents(string filename [, bool use_include_path [, resource context [, long offset [, long maxlen]]]])", + "Read the entire file into a string" + ], + "file_put_contents": [ + "int file_put_contents(string file, mixed data [, int flags [, resource context]])", + "Write/Create a file with contents data and return the number of bytes written" + ], + "fileatime": [ + "int fileatime(string filename)", + "Get last access time of file" + ], + "filectime": [ + "int filectime(string filename)", + "Get inode modification time of file" + ], + "filegroup": [ + "int filegroup(string filename)", + "Get file group" + ], + "fileinode": [ + "int fileinode(string filename)", + "Get file inode" + ], + "filemtime": [ + "int filemtime(string filename)", + "Get last modification time of file" + ], + "fileowner": [ + "int fileowner(string filename)", + "Get file owner" + ], + "fileperms": [ + "int fileperms(string filename)", + "Get file permissions" + ], + "filesize": [ + "int filesize(string filename)", + "Get file size" + ], + "filetype": [ + "string filetype(string filename)", + "Get file type" + ], + "filter_has_var": [ + "mixed filter_has_var(constant type, string variable_name)", + "* Returns true if the variable with the name 'name' exists in source." + ], + "filter_input": [ + "mixed filter_input(constant type, string variable_name [, long filter [, mixed options]])", + "* Returns the filtered variable 'name'* from source `type`." + ], + "filter_input_array": [ + "mixed filter_input_array(constant type, [, mixed options]])", + "* Returns an array with all arguments defined in 'definition'." + ], + "filter_var": [ + "mixed filter_var(mixed variable [, long filter [, mixed options]])", + "* Returns the filtered version of the vriable." + ], + "filter_var_array": [ + "mixed filter_var_array(array data, [, mixed options]])", + "* Returns an array with all arguments defined in 'definition'." + ], + "finfo_buffer": [ + "string finfo_buffer(resource finfo, char *string [, int options [, resource context]])", + "Return infromation about a string buffer." + ], + "finfo_close": [ + "resource finfo_close(resource finfo)", + "Close fileinfo resource." + ], + "finfo_file": [ + "string finfo_file(resource finfo, char *file_name [, int options [, resource context]])", + "Return information about a file." + ], + "finfo_open": [ + "resource finfo_open([int options [, string arg]])", + "Create a new fileinfo resource." + ], + "finfo_set_flags": [ + "bool finfo_set_flags(resource finfo, int options)", + "Set libmagic configuration options." + ], + "floatval": [ + "float floatval(mixed var)", + "Get the float value of a variable" + ], + "flock": [ + "bool flock(resource fp, int operation [, int &wouldblock])", + "Portable file locking" + ], + "floor": [ + "float floor(float number)", + "Returns the next lowest integer value from the number" + ], + "flush": [ + "void flush(void)", + "Flush the output buffer" + ], + "fmod": [ + "float fmod(float x, float y)", + "Returns the remainder of dividing x by y as a float" + ], + "fnmatch": [ + "bool fnmatch(string pattern, string filename [, int flags])", + "Match filename against pattern" + ], + "fopen": [ + "resource fopen(string filename, string mode [, bool use_include_path [, resource context]])", + "Open a file or a URL and return a file pointer" + ], + "forward_static_call": [ + "mixed forward_static_call(mixed function_name [, mixed parmeter] [, mixed ...])", + "Call a user function which is the first parameter" + ], + "fpassthru": [ + "int fpassthru(resource fp)", + "Output all remaining data from a file pointer" + ], + "fprintf": [ + "int fprintf(resource stream, string format [, mixed arg1 [, mixed ...]])", + "Output a formatted string into a stream" + ], + "fputcsv": [ + "int fputcsv(resource fp, array fields [, string delimiter [, string enclosure]])", + "Format line as CSV and write to file pointer" + ], + "fread": [ + "string fread(resource fp, int length)", + "Binary-safe file read" + ], + "frenchtojd": [ + "int frenchtojd(int month, int day, int year)", + "Converts a french republic calendar date to julian day count" + ], + "fscanf": [ + "mixed fscanf(resource stream, string format [, string ...])", + "Implements a mostly ANSI compatible fscanf()" + ], + "fseek": [ + "int fseek(resource fp, int offset [, int whence])", + "Seek on a file pointer" + ], + "fsockopen": [ + "resource fsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])", + "Open Internet or Unix domain socket connection" + ], + "fstat": [ + "array fstat(resource fp)", + "Stat() on a filehandle" + ], + "ftell": [ + "int ftell(resource fp)", + "Get file pointer's read/write position" + ], + "ftok": [ + "int ftok(string pathname, string proj)", + "Convert a pathname and a project identifier to a System V IPC key" + ], + "ftp_alloc": [ + "bool ftp_alloc(resource stream, int size[, &response])", + "Attempt to allocate space on the remote FTP server" + ], + "ftp_cdup": [ + "bool ftp_cdup(resource stream)", + "Changes to the parent directory" + ], + "ftp_chdir": [ + "bool ftp_chdir(resource stream, string directory)", + "Changes directories" + ], + "ftp_chmod": [ + "int ftp_chmod(resource stream, int mode, string filename)", + "Sets permissions on a file" + ], + "ftp_close": [ + "bool ftp_close(resource stream)", + "Closes the FTP stream" + ], + "ftp_connect": [ + "resource ftp_connect(string host [, int port [, int timeout]])", + "Opens a FTP stream" + ], + "ftp_delete": [ + "bool ftp_delete(resource stream, string file)", + "Deletes a file" + ], + "ftp_exec": [ + "bool ftp_exec(resource stream, string command)", + "Requests execution of a program on the FTP server" + ], + "ftp_fget": [ + "bool ftp_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])", + "Retrieves a file from the FTP server and writes it to an open file" + ], + "ftp_fput": [ + "bool ftp_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])", + "Stores a file from an open file to the FTP server" + ], + "ftp_get": [ + "bool ftp_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])", + "Retrieves a file from the FTP server and writes it to a local file" + ], + "ftp_get_option": [ + "mixed ftp_get_option(resource stream, int option)", + "Gets an FTP option" + ], + "ftp_login": [ + "bool ftp_login(resource stream, string username, string password)", + "Logs into the FTP server" + ], + "ftp_mdtm": [ + "int ftp_mdtm(resource stream, string filename)", + "Returns the last modification time of the file, or -1 on error" + ], + "ftp_mkdir": [ + "string ftp_mkdir(resource stream, string directory)", + "Creates a directory and returns the absolute path for the new directory or false on error" + ], + "ftp_nb_continue": [ + "int ftp_nb_continue(resource stream)", + "Continues retrieving/sending a file nbronously" + ], + "ftp_nb_fget": [ + "int ftp_nb_fget(resource stream, resource fp, string remote_file, int mode[, int resumepos])", + "Retrieves a file from the FTP server asynchronly and writes it to an open file" + ], + "ftp_nb_fput": [ + "int ftp_nb_fput(resource stream, string remote_file, resource fp, int mode[, int startpos])", + "Stores a file from an open file to the FTP server nbronly" + ], + "ftp_nb_get": [ + "int ftp_nb_get(resource stream, string local_file, string remote_file, int mode[, int resume_pos])", + "Retrieves a file from the FTP server nbhronly and writes it to a local file" + ], + "ftp_nb_put": [ + "int ftp_nb_put(resource stream, string remote_file, string local_file, int mode[, int startpos])", + "Stores a file on the FTP server" + ], + "ftp_nlist": [ + "array ftp_nlist(resource stream, string directory)", + "Returns an array of filenames in the given directory" + ], + "ftp_pasv": [ + "bool ftp_pasv(resource stream, bool pasv)", + "Turns passive mode on or off" + ], + "ftp_put": [ + "bool ftp_put(resource stream, string remote_file, string local_file, int mode[, int startpos])", + "Stores a file on the FTP server" + ], + "ftp_pwd": [ + "string ftp_pwd(resource stream)", + "Returns the present working directory" + ], + "ftp_raw": [ + "array ftp_raw(resource stream, string command)", + "Sends a literal command to the FTP server" + ], + "ftp_rawlist": [ + "array ftp_rawlist(resource stream, string directory [, bool recursive])", + "Returns a detailed listing of a directory as an array of output lines" + ], + "ftp_rename": [ + "bool ftp_rename(resource stream, string src, string dest)", + "Renames the given file to a new path" + ], + "ftp_rmdir": [ + "bool ftp_rmdir(resource stream, string directory)", + "Removes a directory" + ], + "ftp_set_option": [ + "bool ftp_set_option(resource stream, int option, mixed value)", + "Sets an FTP option" + ], + "ftp_site": [ + "bool ftp_site(resource stream, string cmd)", + "Sends a SITE command to the server" + ], + "ftp_size": [ + "int ftp_size(resource stream, string filename)", + "Returns the size of the file, or -1 on error" + ], + "ftp_ssl_connect": [ + "resource ftp_ssl_connect(string host [, int port [, int timeout]])", + "Opens a FTP-SSL stream" + ], + "ftp_systype": [ + "string ftp_systype(resource stream)", + "Returns the system type identifier" + ], + "ftruncate": [ + "bool ftruncate(resource fp, int size)", + "Truncate file to 'size' length" + ], + "func_get_arg": [ + "mixed func_get_arg(int arg_num)", + "Get the $arg_num'th argument that was passed to the function" + ], + "func_get_args": [ + "array func_get_args()", + "Get an array of the arguments that were passed to the function" + ], + "func_num_args": [ + "int func_num_args(void)", + "Get the number of arguments that were passed to the function" + ], + "function_exists": [ + "bool function_exists(string function_name)", + "Checks if the function exists" + ], + "fwrite": [ + "int fwrite(resource fp, string str [, int length])", + "Binary-safe file write" + ], + "gc_collect_cycles": [ + "int gc_collect_cycles(void)", + "Forces collection of any existing garbage cycles. Returns number of freed zvals" + ], + "gc_disable": [ + "void gc_disable(void)", + "Deactivates the circular reference collector" + ], + "gc_enable": [ + "void gc_enable(void)", + "Activates the circular reference collector" + ], + "gc_enabled": [ + "void gc_enabled(void)", + "Returns status of the circular reference collector" + ], + "gd_info": [ + "array gd_info()", + "" + ], + "getKeywords": [ + "static array getKeywords(string $locale) {", + "* return an associative array containing keyword-value * pairs for this locale. The keys are keys to the array (doh!) * }}}" + ], + "get_browser": [ + "mixed get_browser([string browser_name [, bool return_array]])", + "Get information about the capabilities of a browser. If browser_name is omitted or null, HTTP_USER_AGENT is used. Returns an object by default; if return_array is true, returns an array." + ], + "get_called_class": [ + "string get_called_class()", + "Retrieves the \"Late Static Binding\" class name" + ], + "get_cfg_var": [ + "mixed get_cfg_var(string option_name)", + "Get the value of a PHP configuration option" + ], + "get_class": [ + "string get_class([object object])", + "Retrieves the class name" + ], + "get_class_methods": [ + "array get_class_methods(mixed class)", + "Returns an array of method names for class or class instance." + ], + "get_class_vars": [ + "array get_class_vars(string class_name)", + "Returns an array of default properties of the class." + ], + "get_current_user": [ + "string get_current_user(void)", + "Get the name of the owner of the current PHP script" + ], + "get_declared_classes": [ + "array get_declared_classes()", + "Returns an array of all declared classes." + ], + "get_declared_interfaces": [ + "array get_declared_interfaces()", + "Returns an array of all declared interfaces." + ], + "get_defined_constants": [ + "array get_defined_constants([bool categorize])", + "Return an array containing the names and values of all defined constants" + ], + "get_defined_functions": [ + "array get_defined_functions(void)", + "Returns an array of all defined functions" + ], + "get_defined_vars": [ + "array get_defined_vars(void)", + "Returns an associative array of names and values of all currently defined variable names (variables in the current scope)" + ], + "get_display_language": [ + "static string get_display_language($locale[, $in_locale = null])", + "* gets the language for the $locale in $in_locale or default_locale" + ], + "get_display_name": [ + "static string get_display_name($locale[, $in_locale = null])", + "* gets the name for the $locale in $in_locale or default_locale" + ], + "get_display_region": [ + "static string get_display_region($locale, $in_locale = null)", + "* gets the region for the $locale in $in_locale or default_locale" + ], + "get_display_script": [ + "static string get_display_script($locale, $in_locale = null)", + "* gets the script for the $locale in $in_locale or default_locale" + ], + "get_extension_funcs": [ + "array get_extension_funcs(string extension_name)", + "Returns an array with the names of functions belonging to the named extension" + ], + "get_headers": [ + "array get_headers(string url[, int format])", + "fetches all the headers sent by the server in response to a HTTP request" + ], + "get_html_translation_table": [ + "array get_html_translation_table([int table [, int quote_style]])", + "Returns the internal translation table used by htmlspecialchars and htmlentities" + ], + "get_include_path": [ + "string get_include_path()", + "Get the current include_path configuration option" + ], + "get_included_files": [ + "array get_included_files(void)", + "Returns an array with the file names that were include_once()'d" + ], + "get_loaded_extensions": [ + "array get_loaded_extensions([bool zend_extensions])", + "Return an array containing names of loaded extensions" + ], + "get_magic_quotes_gpc": [ + "int get_magic_quotes_gpc(void)", + "Get the current active configuration setting of magic_quotes_gpc" + ], + "get_magic_quotes_runtime": [ + "int get_magic_quotes_runtime(void)", + "Get the current active configuration setting of magic_quotes_runtime" + ], + "get_meta_tags": [ + "array get_meta_tags(string filename [, bool use_include_path])", + "Extracts all meta tag content attributes from a file and returns an array" + ], + "get_object_vars": [ + "array get_object_vars(object obj)", + "Returns an array of object properties" + ], + "get_parent_class": [ + "string get_parent_class([mixed object])", + "Retrieves the parent class name for object or class or current scope." + ], + "get_resource_type": [ + "string get_resource_type(resource res)", + "Get the resource type name for a given resource" + ], + "getallheaders": [ + "array getallheaders(void)", + "" + ], + "getcwd": [ + "mixed getcwd(void)", + "Gets the current directory" + ], + "getdate": [ + "array getdate([int timestamp])", + "Get date/time information" + ], + "getenv": [ + "string getenv(string varname)", + "Get the value of an environment variable" + ], + "gethostbyaddr": [ + "string gethostbyaddr(string ip_address)", + "Get the Internet host name corresponding to a given IP address" + ], + "gethostbyname": [ + "string gethostbyname(string hostname)", + "Get the IP address corresponding to a given Internet host name" + ], + "gethostbynamel": [ + "array gethostbynamel(string hostname)", + "Return a list of IP addresses that a given hostname resolves to." + ], + "gethostname": [ + "string gethostname()", + "Get the host name of the current machine" + ], + "getimagesize": [ + "array getimagesize(string imagefile [, array info])", + "Get the size of an image as 4-element array" + ], + "getlastmod": [ + "int getlastmod(void)", + "Get time of last page modification" + ], + "getmygid": [ + "int getmygid(void)", + "Get PHP script owner's GID" + ], + "getmyinode": [ + "int getmyinode(void)", + "Get the inode of the current script being parsed" + ], + "getmypid": [ + "int getmypid(void)", + "Get current process ID" + ], + "getmyuid": [ + "int getmyuid(void)", + "Get PHP script owner's UID" + ], + "getopt": [ + "array getopt(string options [, array longopts])", + "Get options from the command line argument list" + ], + "getprotobyname": [ + "int getprotobyname(string name)", + "Returns protocol number associated with name as per /etc/protocols" + ], + "getprotobynumber": [ + "string getprotobynumber(int proto)", + "Returns protocol name associated with protocol number proto" + ], + "getrandmax": [ + "int getrandmax(void)", + "Returns the maximum value a random number can have" + ], + "getrusage": [ + "array getrusage([int who])", + "Returns an array of usage statistics" + ], + "getservbyname": [ + "int getservbyname(string service, string protocol)", + "Returns port associated with service. Protocol must be \"tcp\" or \"udp\"" + ], + "getservbyport": [ + "string getservbyport(int port, string protocol)", + "Returns service name associated with port. Protocol must be \"tcp\" or \"udp\"" + ], + "gettext": [ + "string gettext(string msgid)", + "Return the translation of msgid for the current domain, or msgid unaltered if a translation does not exist" + ], + "gettimeofday": [ + "array gettimeofday([bool get_as_float])", + "Returns the current time as array" + ], + "gettype": [ + "string gettype(mixed var)", + "Returns the type of the variable" + ], + "glob": [ + "array glob(string pattern [, int flags])", + "Find pathnames matching a pattern" + ], + "gmdate": [ + "string gmdate(string format [, long timestamp])", + "Format a GMT date/time" + ], + "gmmktime": [ + "int gmmktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])", + "Get UNIX timestamp for a GMT date" + ], + "gmp_abs": [ + "resource gmp_abs(resource a)", + "Calculates absolute value" + ], + "gmp_add": [ + "resource gmp_add(resource a, resource b)", + "Add a and b" + ], + "gmp_and": [ + "resource gmp_and(resource a, resource b)", + "Calculates logical AND of a and b" + ], + "gmp_clrbit": [ + "void gmp_clrbit(resource &a, int index)", + "Clears bit in a" + ], + "gmp_cmp": [ + "int gmp_cmp(resource a, resource b)", + "Compares two numbers" + ], + "gmp_com": [ + "resource gmp_com(resource a)", + "Calculates one's complement of a" + ], + "gmp_div_q": [ + "resource gmp_div_q(resource a, resource b [, int round])", + "Divide a by b, returns quotient only" + ], + "gmp_div_qr": [ + "array gmp_div_qr(resource a, resource b [, int round])", + "Divide a by b, returns quotient and reminder" + ], + "gmp_div_r": [ + "resource gmp_div_r(resource a, resource b [, int round])", + "Divide a by b, returns reminder only" + ], + "gmp_divexact": [ + "resource gmp_divexact(resource a, resource b)", + "Divide a by b using exact division algorithm" + ], + "gmp_fact": [ + "resource gmp_fact(int a)", + "Calculates factorial function" + ], + "gmp_gcd": [ + "resource gmp_gcd(resource a, resource b)", + "Computes greatest common denominator (gcd) of a and b" + ], + "gmp_gcdext": [ + "array gmp_gcdext(resource a, resource b)", + "Computes G, S, and T, such that AS + BT = G = `gcd' (A, B)" + ], + "gmp_hamdist": [ + "int gmp_hamdist(resource a, resource b)", + "Calculates hamming distance between a and b" + ], + "gmp_init": [ + "resource gmp_init(mixed number [, int base])", + "Initializes GMP number" + ], + "gmp_intval": [ + "int gmp_intval(resource gmpnumber)", + "Gets signed long value of GMP number" + ], + "gmp_invert": [ + "resource gmp_invert(resource a, resource b)", + "Computes the inverse of a modulo b" + ], + "gmp_jacobi": [ + "int gmp_jacobi(resource a, resource b)", + "Computes Jacobi symbol" + ], + "gmp_legendre": [ + "int gmp_legendre(resource a, resource b)", + "Computes Legendre symbol" + ], + "gmp_mod": [ + "resource gmp_mod(resource a, resource b)", + "Computes a modulo b" + ], + "gmp_mul": [ + "resource gmp_mul(resource a, resource b)", + "Multiply a and b" + ], + "gmp_neg": [ + "resource gmp_neg(resource a)", + "Negates a number" + ], + "gmp_nextprime": [ + "resource gmp_nextprime(resource a)", + "Finds next prime of a" + ], + "gmp_or": [ + "resource gmp_or(resource a, resource b)", + "Calculates logical OR of a and b" + ], + "gmp_perfect_square": [ + "bool gmp_perfect_square(resource a)", + "Checks if a is an exact square" + ], + "gmp_popcount": [ + "int gmp_popcount(resource a)", + "Calculates the population count of a" + ], + "gmp_pow": [ + "resource gmp_pow(resource base, int exp)", + "Raise base to power exp" + ], + "gmp_powm": [ + "resource gmp_powm(resource base, resource exp, resource mod)", + "Raise base to power exp and take result modulo mod" + ], + "gmp_prob_prime": [ + "int gmp_prob_prime(resource a[, int reps])", + "Checks if a is \"probably prime\"" + ], + "gmp_random": [ + "resource gmp_random([int limiter])", + "Gets random number" + ], + "gmp_scan0": [ + "int gmp_scan0(resource a, int start)", + "Finds first zero bit" + ], + "gmp_scan1": [ + "int gmp_scan1(resource a, int start)", + "Finds first non-zero bit" + ], + "gmp_setbit": [ + "void gmp_setbit(resource &a, int index[, bool set_clear])", + "Sets or clear bit in a" + ], + "gmp_sign": [ + "int gmp_sign(resource a)", + "Gets the sign of the number" + ], + "gmp_sqrt": [ + "resource gmp_sqrt(resource a)", + "Takes integer part of square root of a" + ], + "gmp_sqrtrem": [ + "array gmp_sqrtrem(resource a)", + "Square root with remainder" + ], + "gmp_strval": [ + "string gmp_strval(resource gmpnumber [, int base])", + "Gets string representation of GMP number" + ], + "gmp_sub": [ + "resource gmp_sub(resource a, resource b)", + "Subtract b from a" + ], + "gmp_testbit": [ + "bool gmp_testbit(resource a, int index)", + "Tests if bit is set in a" + ], + "gmp_xor": [ + "resource gmp_xor(resource a, resource b)", + "Calculates logical exclusive OR of a and b" + ], + "gmstrftime": [ + "string gmstrftime(string format [, int timestamp])", + "Format a GMT/UCT time/date according to locale settings" + ], + "grapheme_extract": [ + "string grapheme_extract(string str, int size[, int extract_type[, int start[, int next]]])", + "Function to extract a sequence of default grapheme clusters" + ], + "grapheme_stripos": [ + "int grapheme_stripos(string haystack, string needle [, int offset ])", + "Find position of first occurrence of a string within another, ignoring case differences" + ], + "grapheme_stristr": [ + "string grapheme_stristr(string haystack, string needle[, bool part])", + "Finds first occurrence of a string within another" + ], + "grapheme_strlen": [ + "int grapheme_strlen(string str)", + "Get number of graphemes in a string" + ], + "grapheme_strpos": [ + "int grapheme_strpos(string haystack, string needle [, int offset ])", + "Find position of first occurrence of a string within another" + ], + "grapheme_strripos": [ + "int grapheme_strripos(string haystack, string needle [, int offset])", + "Find position of last occurrence of a string within another, ignoring case" + ], + "grapheme_strrpos": [ + "int grapheme_strrpos(string haystack, string needle [, int offset])", + "Find position of last occurrence of a string within another" + ], + "grapheme_strstr": [ + "string grapheme_strstr(string haystack, string needle[, bool part])", + "Finds first occurrence of a string within another" + ], + "grapheme_substr": [ + "string grapheme_substr(string str, int start [, int length])", + "Returns part of a string" + ], + "gregoriantojd": [ + "int gregoriantojd(int month, int day, int year)", + "Converts a gregorian calendar date to julian day count" + ], + "gzcompress": [ + "string gzcompress(string data [, int level])", + "Gzip-compress a string" + ], + "gzdeflate": [ + "string gzdeflate(string data [, int level])", + "Gzip-compress a string" + ], + "gzencode": [ + "string gzencode(string data [, int level [, int encoding_mode]])", + "GZ encode a string" + ], + "gzfile": [ + "array gzfile(string filename [, int use_include_path])", + "Read und uncompress entire .gz-file into an array" + ], + "gzinflate": [ + "string gzinflate(string data [, int length])", + "Unzip a gzip-compressed string" + ], + "gzopen": [ + "resource gzopen(string filename, string mode [, int use_include_path])", + "Open a .gz-file and return a .gz-file pointer" + ], + "gzuncompress": [ + "string gzuncompress(string data [, int length])", + "Unzip a gzip-compressed string" + ], + "hash": [ + "string hash(string algo, string data[, bool raw_output = false])", + "Generate a hash of a given input string Returns lowercase hexits by default" + ], + "hash_algos": [ + "array hash_algos(void)", + "Return a list of registered hashing algorithms" + ], + "hash_copy": [ + "resource hash_copy(resource context)", + "Copy hash resource" + ], + "hash_file": [ + "string hash_file(string algo, string filename[, bool raw_output = false])", + "Generate a hash of a given file Returns lowercase hexits by default" + ], + "hash_final": [ + "string hash_final(resource context[, bool raw_output=false])", + "Output resulting digest" + ], + "hash_hmac": [ + "string hash_hmac(string algo, string data, string key[, bool raw_output = false])", + "Generate a hash of a given input string with a key using HMAC Returns lowercase hexits by default" + ], + "hash_hmac_file": [ + "string hash_hmac_file(string algo, string filename, string key[, bool raw_output = false])", + "Generate a hash of a given file with a key using HMAC Returns lowercase hexits by default" + ], + "hash_init": [ + "resource hash_init(string algo[, int options, string key])", + "Initialize a hashing context" + ], + "hash_update": [ + "bool hash_update(resource context, string data)", + "Pump data into the hashing algorithm" + ], + "hash_update_file": [ + "bool hash_update_file(resource context, string filename[, resource context])", + "Pump data into the hashing algorithm from a file" + ], + "hash_update_stream": [ + "int hash_update_stream(resource context, resource handle[, integer length])", + "Pump data into the hashing algorithm from an open stream" + ], + "header": [ + "void header(string header [, bool replace, [int http_response_code]])", + "Sends a raw HTTP header" + ], + "header_remove": [ + "void header_remove([string name])", + "Removes an HTTP header previously set using header()" + ], + "headers_list": [ + "array headers_list(void)", + "Return list of headers to be sent / already sent" + ], + "headers_sent": [ + "bool headers_sent([string &$file [, int &$line]])", + "Returns true if headers have already been sent, false otherwise" + ], + "hebrev": [ + "string hebrev(string str [, int max_chars_per_line])", + "Converts logical Hebrew text to visual text" + ], + "hebrevc": [ + "string hebrevc(string str [, int max_chars_per_line])", + "Converts logical Hebrew text to visual text with newline conversion" + ], + "hexdec": [ + "int hexdec(string hexadecimal_number)", + "Returns the decimal equivalent of the hexadecimal number" + ], + "highlight_file": [ + "bool highlight_file(string file_name [, bool return] )", + "Syntax highlight a source file" + ], + "highlight_string": [ + "bool highlight_string(string string [, bool return] )", + "Syntax highlight a string or optionally return it" + ], + "html_entity_decode": [ + "string html_entity_decode(string string [, int quote_style][, string charset])", + "Convert all HTML entities to their applicable characters" + ], + "htmlentities": [ + "string htmlentities(string string [, int quote_style[, string charset[, bool double_encode]]])", + "Convert all applicable characters to HTML entities" + ], + "htmlspecialchars": [ + "string htmlspecialchars(string string [, int quote_style[, string charset[, bool double_encode]]])", + "Convert special characters to HTML entities" + ], + "htmlspecialchars_decode": [ + "string htmlspecialchars_decode(string string [, int quote_style])", + "Convert special HTML entities back to characters" + ], + "http_build_query": [ + "string http_build_query(mixed formdata [, string prefix [, string arg_separator]])", + "Generates a form-encoded query string from an associative array or object." + ], + "hypot": [ + "float hypot(float num1, float num2)", + "Returns sqrt(num1*num1 + num2*num2)" + ], + "ibase_add_user": [ + "bool ibase_add_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])", + "Add a user to security database" + ], + "ibase_affected_rows": [ + "int ibase_affected_rows( [ resource link_identifier ] )", + "Returns the number of rows affected by the previous INSERT, UPDATE or DELETE statement" + ], + "ibase_backup": [ + "mixed ibase_backup(resource service_handle, string source_db, string dest_file [, int options [, bool verbose]])", + "Initiates a backup task in the service manager and returns immediately" + ], + "ibase_blob_add": [ + "bool ibase_blob_add(resource blob_handle, string data)", + "Add data into created blob" + ], + "ibase_blob_cancel": [ + "bool ibase_blob_cancel(resource blob_handle)", + "Cancel creating blob" + ], + "ibase_blob_close": [ + "string ibase_blob_close(resource blob_handle)", + "Close blob" + ], + "ibase_blob_create": [ + "resource ibase_blob_create([resource link_identifier])", + "Create blob for adding data" + ], + "ibase_blob_echo": [ + "bool ibase_blob_echo([ resource link_identifier, ] string blob_id)", + "Output blob contents to browser" + ], + "ibase_blob_get": [ + "string ibase_blob_get(resource blob_handle, int len)", + "Get len bytes data from open blob" + ], + "ibase_blob_import": [ + "string ibase_blob_import([ resource link_identifier, ] resource file)", + "Create blob, copy file in it, and close it" + ], + "ibase_blob_info": [ + "array ibase_blob_info([ resource link_identifier, ] string blob_id)", + "Return blob length and other useful info" + ], + "ibase_blob_open": [ + "resource ibase_blob_open([ resource link_identifier, ] string blob_id)", + "Open blob for retrieving data parts" + ], + "ibase_close": [ + "bool ibase_close([resource link_identifier])", + "Close an InterBase connection" + ], + "ibase_commit": [ + "bool ibase_commit( resource link_identifier )", + "Commit transaction" + ], + "ibase_commit_ret": [ + "bool ibase_commit_ret( resource link_identifier )", + "Commit transaction and retain the transaction context" + ], + "ibase_connect": [ + "resource ibase_connect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])", + "Open a connection to an InterBase database" + ], + "ibase_db_info": [ + "string ibase_db_info(resource service_handle, string db, int action [, int argument])", + "Request statistics about a database" + ], + "ibase_delete_user": [ + "bool ibase_delete_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])", + "Delete a user from security database" + ], + "ibase_drop_db": [ + "bool ibase_drop_db([resource link_identifier])", + "Drop an InterBase database" + ], + "ibase_errcode": [ + "int ibase_errcode(void)", + "Return error code" + ], + "ibase_errmsg": [ + "string ibase_errmsg(void)", + "Return error message" + ], + "ibase_execute": [ + "mixed ibase_execute(resource query [, mixed bind_arg [, mixed bind_arg [, ...]]])", + "Execute a previously prepared query" + ], + "ibase_fetch_assoc": [ + "array ibase_fetch_assoc(resource result [, int fetch_flags])", + "Fetch a row from the results of a query" + ], + "ibase_fetch_object": [ + "object ibase_fetch_object(resource result [, int fetch_flags])", + "Fetch a object from the results of a query" + ], + "ibase_fetch_row": [ + "array ibase_fetch_row(resource result [, int fetch_flags])", + "Fetch a row from the results of a query" + ], + "ibase_field_info": [ + "array ibase_field_info(resource query_result, int field_number)", + "Get information about a field" + ], + "ibase_free_event_handler": [ + "bool ibase_free_event_handler(resource event)", + "Frees the event handler set by ibase_set_event_handler()" + ], + "ibase_free_query": [ + "bool ibase_free_query(resource query)", + "Free memory used by a query" + ], + "ibase_free_result": [ + "bool ibase_free_result(resource result)", + "Free the memory used by a result" + ], + "ibase_gen_id": [ + "int ibase_gen_id(string generator [, int increment [, resource link_identifier ]])", + "Increments the named generator and returns its new value" + ], + "ibase_maintain_db": [ + "bool ibase_maintain_db(resource service_handle, string db, int action [, int argument])", + "Execute a maintenance command on the database server" + ], + "ibase_modify_user": [ + "bool ibase_modify_user(resource service_handle, string user_name, string password [, string first_name [, string middle_name [, string last_name]]])", + "Modify a user in security database" + ], + "ibase_name_result": [ + "bool ibase_name_result(resource result, string name)", + "Assign a name to a result for use with ... WHERE CURRENT OF statements" + ], + "ibase_num_fields": [ + "int ibase_num_fields(resource query_result)", + "Get the number of fields in result" + ], + "ibase_num_params": [ + "int ibase_num_params(resource query)", + "Get the number of params in a prepared query" + ], + "ibase_num_rows": [ + "int ibase_num_rows( resource result_identifier )", + "Return the number of rows that are available in a result" + ], + "ibase_param_info": [ + "array ibase_param_info(resource query, int field_number)", + "Get information about a parameter" + ], + "ibase_pconnect": [ + "resource ibase_pconnect(string database [, string username [, string password [, string charset [, int buffers [, int dialect [, string role]]]]]])", + "Open a persistent connection to an InterBase database" + ], + "ibase_prepare": [ + "resource ibase_prepare(resource link_identifier[, string query [, resource trans_identifier ]])", + "Prepare a query for later execution" + ], + "ibase_query": [ + "mixed ibase_query([resource link_identifier, [ resource link_identifier, ]] string query [, mixed bind_arg [, mixed bind_arg [, ...]]])", + "Execute a query" + ], + "ibase_restore": [ + "mixed ibase_restore(resource service_handle, string source_file, string dest_db [, int options [, bool verbose]])", + "Initiates a restore task in the service manager and returns immediately" + ], + "ibase_rollback": [ + "bool ibase_rollback( resource link_identifier )", + "Rollback transaction" + ], + "ibase_rollback_ret": [ + "bool ibase_rollback_ret( resource link_identifier )", + "Rollback transaction and retain the transaction context" + ], + "ibase_server_info": [ + "string ibase_server_info(resource service_handle, int action)", + "Request information about a database server" + ], + "ibase_service_attach": [ + "resource ibase_service_attach(string host, string dba_username, string dba_password)", + "Connect to the service manager" + ], + "ibase_service_detach": [ + "bool ibase_service_detach(resource service_handle)", + "Disconnect from the service manager" + ], + "ibase_set_event_handler": [ + "resource ibase_set_event_handler([resource link_identifier,] callback handler, string event [, string event [, ...]])", + "Register the callback for handling each of the named events" + ], + "ibase_trans": [ + "resource ibase_trans([int trans_args [, resource link_identifier [, ... ], int trans_args [, resource link_identifier [, ... ]] [, ...]]])", + "Start a transaction over one or several databases" + ], + "ibase_wait_event": [ + "string ibase_wait_event([resource link_identifier,] string event [, string event [, ...]])", + "Waits for any one of the passed Interbase events to be posted by the database, and returns its name" + ], + "iconv": [ + "string iconv(string in_charset, string out_charset, string str)", + "Returns str converted to the out_charset character set" + ], + "iconv_get_encoding": [ + "mixed iconv_get_encoding([string type])", + "Get internal encoding and output encoding for ob_iconv_handler()" + ], + "iconv_mime_decode": [ + "string iconv_mime_decode(string encoded_string [, int mode, string charset])", + "Decodes a mime header field" + ], + "iconv_mime_decode_headers": [ + "array iconv_mime_decode_headers(string headers [, int mode, string charset])", + "Decodes multiple mime header fields" + ], + "iconv_mime_encode": [ + "string iconv_mime_encode(string field_name, string field_value [, array preference])", + "Composes a mime header field with field_name and field_value in a specified scheme" + ], + "iconv_set_encoding": [ + "bool iconv_set_encoding(string type, string charset)", + "Sets internal encoding and output encoding for ob_iconv_handler()" + ], + "iconv_strlen": [ + "int iconv_strlen(string str [, string charset])", + "Returns the character count of str" + ], + "iconv_strpos": [ + "int iconv_strpos(string haystack, string needle [, int offset [, string charset]])", + "Finds position of first occurrence of needle within part of haystack beginning with offset" + ], + "iconv_strrpos": [ + "int iconv_strrpos(string haystack, string needle [, string charset])", + "Finds position of last occurrence of needle within part of haystack beginning with offset" + ], + "iconv_substr": [ + "string iconv_substr(string str, int offset, [int length, string charset])", + "Returns specified part of a string" + ], + "idate": [ + "int idate(string format [, int timestamp])", + "Format a local time/date as integer" + ], + "idn_to_ascii": [ + "int idn_to_ascii(string domain[, int options])", + "Converts an Unicode domain to ASCII representation, as defined in the IDNA RFC" + ], + "idn_to_utf8": [ + "int idn_to_utf8(string domain[, int options])", + "Converts an ASCII representation of the domain to Unicode (UTF-8), as defined in the IDNA RFC" + ], + "ignore_user_abort": [ + "int ignore_user_abort([string value])", + "Set whether we want to ignore a user abort event or not" + ], + "image2wbmp": [ + "bool image2wbmp(resource im [, string filename [, int threshold]])", + "Output WBMP image to browser or file" + ], + "image_type_to_extension": [ + "string image_type_to_extension(int imagetype [, bool include_dot])", + "Get file extension for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype" + ], + "image_type_to_mime_type": [ + "string image_type_to_mime_type(int imagetype)", + "Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype" + ], + "imagealphablending": [ + "bool imagealphablending(resource im, bool on)", + "Turn alpha blending mode on or off for the given image" + ], + "imageantialias": [ + "bool imageantialias(resource im, bool on)", + "Should antialiased functions used or not" + ], + "imagearc": [ + "bool imagearc(resource im, int cx, int cy, int w, int h, int s, int e, int col)", + "Draw a partial ellipse" + ], + "imagechar": [ + "bool imagechar(resource im, int font, int x, int y, string c, int col)", + "Draw a character" + ], + "imagecharup": [ + "bool imagecharup(resource im, int font, int x, int y, string c, int col)", + "Draw a character rotated 90 degrees counter-clockwise" + ], + "imagecolorallocate": [ + "int imagecolorallocate(resource im, int red, int green, int blue)", + "Allocate a color for an image" + ], + "imagecolorallocatealpha": [ + "int imagecolorallocatealpha(resource im, int red, int green, int blue, int alpha)", + "Allocate a color with an alpha level. Works for true color and palette based images" + ], + "imagecolorat": [ + "int imagecolorat(resource im, int x, int y)", + "Get the index of the color of a pixel" + ], + "imagecolorclosest": [ + "int imagecolorclosest(resource im, int red, int green, int blue)", + "Get the index of the closest color to the specified color" + ], + "imagecolorclosestalpha": [ + "int imagecolorclosestalpha(resource im, int red, int green, int blue, int alpha)", + "Find the closest matching colour with alpha transparency" + ], + "imagecolorclosesthwb": [ + "int imagecolorclosesthwb(resource im, int red, int green, int blue)", + "Get the index of the color which has the hue, white and blackness nearest to the given color" + ], + "imagecolordeallocate": [ + "bool imagecolordeallocate(resource im, int index)", + "De-allocate a color for an image" + ], + "imagecolorexact": [ + "int imagecolorexact(resource im, int red, int green, int blue)", + "Get the index of the specified color" + ], + "imagecolorexactalpha": [ + "int imagecolorexactalpha(resource im, int red, int green, int blue, int alpha)", + "Find exact match for colour with transparency" + ], + "imagecolormatch": [ + "bool imagecolormatch(resource im1, resource im2)", + "Makes the colors of the palette version of an image more closely match the true color version" + ], + "imagecolorresolve": [ + "int imagecolorresolve(resource im, int red, int green, int blue)", + "Get the index of the specified color or its closest possible alternative" + ], + "imagecolorresolvealpha": [ + "int imagecolorresolvealpha(resource im, int red, int green, int blue, int alpha)", + "Resolve/Allocate a colour with an alpha level. Works for true colour and palette based images" + ], + "imagecolorset": [ + "void imagecolorset(resource im, int col, int red, int green, int blue)", + "Set the color for the specified palette index" + ], + "imagecolorsforindex": [ + "array imagecolorsforindex(resource im, int col)", + "Get the colors for an index" + ], + "imagecolorstotal": [ + "int imagecolorstotal(resource im)", + "Find out the number of colors in an image's palette" + ], + "imagecolortransparent": [ + "int imagecolortransparent(resource im [, int col])", + "Define a color as transparent" + ], + "imageconvolution": [ + "resource imageconvolution(resource src_im, array matrix3x3, double div, double offset)", + "Apply a 3x3 convolution matrix, using coefficient div and offset" + ], + "imagecopy": [ + "bool imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h)", + "Copy part of an image" + ], + "imagecopymerge": [ + "bool imagecopymerge(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)", + "Merge one part of an image with another" + ], + "imagecopymergegray": [ + "bool imagecopymergegray(resource src_im, resource dst_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h, int pct)", + "Merge one part of an image with another" + ], + "imagecopyresampled": [ + "bool imagecopyresampled(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)", + "Copy and resize part of an image using resampling to help ensure clarity" + ], + "imagecopyresized": [ + "bool imagecopyresized(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h)", + "Copy and resize part of an image" + ], + "imagecreate": [ + "resource imagecreate(int x_size, int y_size)", + "Create a new image" + ], + "imagecreatefromgd": [ + "resource imagecreatefromgd(string filename)", + "Create a new image from GD file or URL" + ], + "imagecreatefromgd2": [ + "resource imagecreatefromgd2(string filename)", + "Create a new image from GD2 file or URL" + ], + "imagecreatefromgd2part": [ + "resource imagecreatefromgd2part(string filename, int srcX, int srcY, int width, int height)", + "Create a new image from a given part of GD2 file or URL" + ], + "imagecreatefromgif": [ + "resource imagecreatefromgif(string filename)", + "Create a new image from GIF file or URL" + ], + "imagecreatefromjpeg": [ + "resource imagecreatefromjpeg(string filename)", + "Create a new image from JPEG file or URL" + ], + "imagecreatefrompng": [ + "resource imagecreatefrompng(string filename)", + "Create a new image from PNG file or URL" + ], + "imagecreatefromstring": [ + "resource imagecreatefromstring(string image)", + "Create a new image from the image stream in the string" + ], + "imagecreatefromwbmp": [ + "resource imagecreatefromwbmp(string filename)", + "Create a new image from WBMP file or URL" + ], + "imagecreatefromxbm": [ + "resource imagecreatefromxbm(string filename)", + "Create a new image from XBM file or URL" + ], + "imagecreatefromxpm": [ + "resource imagecreatefromxpm(string filename)", + "Create a new image from XPM file or URL" + ], + "imagecreatetruecolor": [ + "resource imagecreatetruecolor(int x_size, int y_size)", + "Create a new true color image" + ], + "imagedashedline": [ + "bool imagedashedline(resource im, int x1, int y1, int x2, int y2, int col)", + "Draw a dashed line" + ], + "imagedestroy": [ + "bool imagedestroy(resource im)", + "Destroy an image" + ], + "imageellipse": [ + "bool imageellipse(resource im, int cx, int cy, int w, int h, int color)", + "Draw an ellipse" + ], + "imagefill": [ + "bool imagefill(resource im, int x, int y, int col)", + "Flood fill" + ], + "imagefilledarc": [ + "bool imagefilledarc(resource im, int cx, int cy, int w, int h, int s, int e, int col, int style)", + "Draw a filled partial ellipse" + ], + "imagefilledellipse": [ + "bool imagefilledellipse(resource im, int cx, int cy, int w, int h, int color)", + "Draw an ellipse" + ], + "imagefilledpolygon": [ + "bool imagefilledpolygon(resource im, array point, int num_points, int col)", + "Draw a filled polygon" + ], + "imagefilledrectangle": [ + "bool imagefilledrectangle(resource im, int x1, int y1, int x2, int y2, int col)", + "Draw a filled rectangle" + ], + "imagefilltoborder": [ + "bool imagefilltoborder(resource im, int x, int y, int border, int col)", + "Flood fill to specific color" + ], + "imagefilter": [ + "bool imagefilter(resource src_im, int filtertype, [args] )", + "Applies Filter an image using a custom angle" + ], + "imagefontheight": [ + "int imagefontheight(int font)", + "Get font height" + ], + "imagefontwidth": [ + "int imagefontwidth(int font)", + "Get font width" + ], + "imageftbbox": [ + "array imageftbbox(float size, float angle, string font_file, string text [, array extrainfo])", + "Give the bounding box of a text using fonts via freetype2" + ], + "imagefttext": [ + "array imagefttext(resource im, float size, float angle, int x, int y, int col, string font_file, string text [, array extrainfo])", + "Write text to the image using fonts via freetype2" + ], + "imagegammacorrect": [ + "bool imagegammacorrect(resource im, float inputgamma, float outputgamma)", + "Apply a gamma correction to a GD image" + ], + "imagegd": [ + "bool imagegd(resource im [, string filename])", + "Output GD image to browser or file" + ], + "imagegd2": [ + "bool imagegd2(resource im [, string filename, [, int chunk_size, [, int type]]])", + "Output GD2 image to browser or file" + ], + "imagegif": [ + "bool imagegif(resource im [, string filename])", + "Output GIF image to browser or file" + ], + "imagegrabscreen": [ + "resource imagegrabscreen()", + "Grab a screenshot" + ], + "imagegrabwindow": [ + "resource imagegrabwindow(int window_handle [, int client_area])", + "Grab a window or its client area using a windows handle (HWND property in COM instance)" + ], + "imageinterlace": [ + "int imageinterlace(resource im [, int interlace])", + "Enable or disable interlace" + ], + "imageistruecolor": [ + "bool imageistruecolor(resource im)", + "return true if the image uses truecolor" + ], + "imagejpeg": [ + "bool imagejpeg(resource im [, string filename [, int quality]])", + "Output JPEG image to browser or file" + ], + "imagelayereffect": [ + "bool imagelayereffect(resource im, int effect)", + "Set the alpha blending flag to use the bundled libgd layering effects" + ], + "imageline": [ + "bool imageline(resource im, int x1, int y1, int x2, int y2, int col)", + "Draw a line" + ], + "imageloadfont": [ + "int imageloadfont(string filename)", + "Load a new font" + ], + "imagepalettecopy": [ + "void imagepalettecopy(resource dst, resource src)", + "Copy the palette from the src image onto the dst image" + ], + "imagepng": [ + "bool imagepng(resource im [, string filename])", + "Output PNG image to browser or file" + ], + "imagepolygon": [ + "bool imagepolygon(resource im, array point, int num_points, int col)", + "Draw a polygon" + ], + "imagepsbbox": [ + "array imagepsbbox(string text, resource font, int size [, int space, int tightness, float angle])", + "Return the bounding box needed by a string if rasterized" + ], + "imagepscopyfont": [ + "int imagepscopyfont(int font_index)", + "Make a copy of a font for purposes like extending or reenconding" + ], + "imagepsencodefont": [ + "bool imagepsencodefont(resource font_index, string filename)", + "To change a fonts character encoding vector" + ], + "imagepsextendfont": [ + "bool imagepsextendfont(resource font_index, float extend)", + "Extend or or condense (if extend < 1) a font" + ], + "imagepsfreefont": [ + "bool imagepsfreefont(resource font_index)", + "Free memory used by a font" + ], + "imagepsloadfont": [ + "resource imagepsloadfont(string pathname)", + "Load a new font from specified file" + ], + "imagepsslantfont": [ + "bool imagepsslantfont(resource font_index, float slant)", + "Slant a font" + ], + "imagepstext": [ + "array imagepstext(resource image, string text, resource font, int size, int foreground, int background, int xcoord, int ycoord [, int space [, int tightness [, float angle [, int antialias])", + "Rasterize a string over an image" + ], + "imagerectangle": [ + "bool imagerectangle(resource im, int x1, int y1, int x2, int y2, int col)", + "Draw a rectangle" + ], + "imagerotate": [ + "resource imagerotate(resource src_im, float angle, int bgdcolor [, int ignoretransparent])", + "Rotate an image using a custom angle" + ], + "imagesavealpha": [ + "bool imagesavealpha(resource im, bool on)", + "Include alpha channel to a saved image" + ], + "imagesetbrush": [ + "bool imagesetbrush(resource image, resource brush)", + "Set the brush image to $brush when filling $image with the \"IMG_COLOR_BRUSHED\" color" + ], + "imagesetpixel": [ + "bool imagesetpixel(resource im, int x, int y, int col)", + "Set a single pixel" + ], + "imagesetstyle": [ + "bool imagesetstyle(resource im, array styles)", + "Set the line drawing styles for use with imageline and IMG_COLOR_STYLED." + ], + "imagesetthickness": [ + "bool imagesetthickness(resource im, int thickness)", + "Set line thickness for drawing lines, ellipses, rectangles, polygons etc." + ], + "imagesettile": [ + "bool imagesettile(resource image, resource tile)", + "Set the tile image to $tile when filling $image with the \"IMG_COLOR_TILED\" color" + ], + "imagestring": [ + "bool imagestring(resource im, int font, int x, int y, string str, int col)", + "Draw a string horizontally" + ], + "imagestringup": [ + "bool imagestringup(resource im, int font, int x, int y, string str, int col)", + "Draw a string vertically - rotated 90 degrees counter-clockwise" + ], + "imagesx": [ + "int imagesx(resource im)", + "Get image width" + ], + "imagesy": [ + "int imagesy(resource im)", + "Get image height" + ], + "imagetruecolortopalette": [ + "void imagetruecolortopalette(resource im, bool ditherFlag, int colorsWanted)", + "Convert a true colour image to a palette based image with a number of colours, optionally using dithering." + ], + "imagettfbbox": [ + "array imagettfbbox(float size, float angle, string font_file, string text)", + "Give the bounding box of a text using TrueType fonts" + ], + "imagettftext": [ + "array imagettftext(resource im, float size, float angle, int x, int y, int col, string font_file, string text)", + "Write text to the image using a TrueType font" + ], + "imagetypes": [ + "int imagetypes(void)", + "Return the types of images supported in a bitfield - 1=GIF, 2=JPEG, 4=PNG, 8=WBMP, 16=XPM" + ], + "imagewbmp": [ + "bool imagewbmp(resource im [, string filename, [, int foreground]])", + "Output WBMP image to browser or file" + ], + "imagexbm": [ + "int imagexbm(int im, string filename [, int foreground])", + "Output XBM image to browser or file" + ], + "imap_8bit": [ + "string imap_8bit(string text)", + "Convert an 8-bit string to a quoted-printable string" + ], + "imap_alerts": [ + "array imap_alerts(void)", + "Returns an array of all IMAP alerts that have been generated since the last page load or since the last imap_alerts() call, whichever came last. The alert stack is cleared after imap_alerts() is called." + ], + "imap_append": [ + "bool imap_append(resource stream_id, string folder, string message [, string options [, string internal_date]])", + "Append a new message to a specified mailbox" + ], + "imap_base64": [ + "string imap_base64(string text)", + "Decode BASE64 encoded text" + ], + "imap_binary": [ + "string imap_binary(string text)", + "Convert an 8bit string to a base64 string" + ], + "imap_body": [ + "string imap_body(resource stream_id, int msg_no [, int options])", + "Read the message body" + ], + "imap_bodystruct": [ + "object imap_bodystruct(resource stream_id, int msg_no, string section)", + "Read the structure of a specified body section of a specific message" + ], + "imap_check": [ + "object imap_check(resource stream_id)", + "Get mailbox properties" + ], + "imap_clearflag_full": [ + "bool imap_clearflag_full(resource stream_id, string sequence, string flag [, int options])", + "Clears flags on messages" + ], + "imap_close": [ + "bool imap_close(resource stream_id [, int options])", + "Close an IMAP stream" + ], + "imap_createmailbox": [ + "bool imap_createmailbox(resource stream_id, string mailbox)", + "Create a new mailbox" + ], + "imap_delete": [ + "bool imap_delete(resource stream_id, int msg_no [, int options])", + "Mark a message for deletion" + ], + "imap_deletemailbox": [ + "bool imap_deletemailbox(resource stream_id, string mailbox)", + "Delete a mailbox" + ], + "imap_errors": [ + "array imap_errors(void)", + "Returns an array of all IMAP errors generated since the last page load, or since the last imap_errors() call, whichever came last. The error stack is cleared after imap_errors() is called." + ], + "imap_expunge": [ + "bool imap_expunge(resource stream_id)", + "Permanently delete all messages marked for deletion" + ], + "imap_fetch_overview": [ + "array imap_fetch_overview(resource stream_id, string sequence [, int options])", + "Read an overview of the information in the headers of the given message sequence" + ], + "imap_fetchbody": [ + "string imap_fetchbody(resource stream_id, int msg_no, string section [, int options])", + "Get a specific body section" + ], + "imap_fetchheader": [ + "string imap_fetchheader(resource stream_id, int msg_no [, int options])", + "Get the full unfiltered header for a message" + ], + "imap_fetchstructure": [ + "object imap_fetchstructure(resource stream_id, int msg_no [, int options])", + "Read the full structure of a message" + ], + "imap_gc": [ + "bool imap_gc(resource stream_id, int flags)", + "This function garbage collects (purges) the cache of entries of a specific type." + ], + "imap_get_quota": [ + "array imap_get_quota(resource stream_id, string qroot)", + "Returns the quota set to the mailbox account qroot" + ], + "imap_get_quotaroot": [ + "array imap_get_quotaroot(resource stream_id, string mbox)", + "Returns the quota set to the mailbox account mbox" + ], + "imap_getacl": [ + "array imap_getacl(resource stream_id, string mailbox)", + "Gets the ACL for a given mailbox" + ], + "imap_getmailboxes": [ + "array imap_getmailboxes(resource stream_id, string ref, string pattern)", + "Reads the list of mailboxes and returns a full array of objects containing name, attributes, and delimiter" + ], + "imap_getsubscribed": [ + "array imap_getsubscribed(resource stream_id, string ref, string pattern)", + "Return a list of subscribed mailboxes, in the same format as imap_getmailboxes()" + ], + "imap_headerinfo": [ + "object imap_headerinfo(resource stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])", + "Read the headers of the message" + ], + "imap_headers": [ + "array imap_headers(resource stream_id)", + "Returns headers for all messages in a mailbox" + ], + "imap_last_error": [ + "string imap_last_error(void)", + "Returns the last error that was generated by an IMAP function. The error stack is NOT cleared after this call." + ], + "imap_list": [ + "array imap_list(resource stream_id, string ref, string pattern)", + "Read the list of mailboxes" + ], + "imap_listscan": [ + "array imap_listscan(resource stream_id, string ref, string pattern, string content)", + "Read list of mailboxes containing a certain string" + ], + "imap_lsub": [ + "array imap_lsub(resource stream_id, string ref, string pattern)", + "Return a list of subscribed mailboxes" + ], + "imap_mail": [ + "bool imap_mail(string to, string subject, string message [, string additional_headers [, string cc [, string bcc [, string rpath]]]])", + "Send an email message" + ], + "imap_mail_compose": [ + "string imap_mail_compose(array envelope, array body)", + "Create a MIME message based on given envelope and body sections" + ], + "imap_mail_copy": [ + "bool imap_mail_copy(resource stream_id, string msglist, string mailbox [, int options])", + "Copy specified message to a mailbox" + ], + "imap_mail_move": [ + "bool imap_mail_move(resource stream_id, string sequence, string mailbox [, int options])", + "Move specified message to a mailbox" + ], + "imap_mailboxmsginfo": [ + "object imap_mailboxmsginfo(resource stream_id)", + "Returns info about the current mailbox" + ], + "imap_mime_header_decode": [ + "array imap_mime_header_decode(string str)", + "Decode mime header element in accordance with RFC 2047 and return array of objects containing 'charset' encoding and decoded 'text'" + ], + "imap_msgno": [ + "int imap_msgno(resource stream_id, int unique_msg_id)", + "Get the sequence number associated with a UID" + ], + "imap_mutf7_to_utf8": [ + "string imap_mutf7_to_utf8(string in)", + "Decode a modified UTF-7 string to UTF-8" + ], + "imap_num_msg": [ + "int imap_num_msg(resource stream_id)", + "Gives the number of messages in the current mailbox" + ], + "imap_num_recent": [ + "int imap_num_recent(resource stream_id)", + "Gives the number of recent messages in current mailbox" + ], + "imap_open": [ + "resource imap_open(string mailbox, string user, string password [, int options [, int n_retries]])", + "Open an IMAP stream to a mailbox" + ], + "imap_ping": [ + "bool imap_ping(resource stream_id)", + "Check if the IMAP stream is still active" + ], + "imap_qprint": [ + "string imap_qprint(string text)", + "Convert a quoted-printable string to an 8-bit string" + ], + "imap_renamemailbox": [ + "bool imap_renamemailbox(resource stream_id, string old_name, string new_name)", + "Rename a mailbox" + ], + "imap_reopen": [ + "bool imap_reopen(resource stream_id, string mailbox [, int options [, int n_retries]])", + "Reopen an IMAP stream to a new mailbox" + ], + "imap_rfc822_parse_adrlist": [ + "array imap_rfc822_parse_adrlist(string address_string, string default_host)", + "Parses an address string" + ], + "imap_rfc822_parse_headers": [ + "object imap_rfc822_parse_headers(string headers [, string default_host])", + "Parse a set of mail headers contained in a string, and return an object similar to imap_headerinfo()" + ], + "imap_rfc822_write_address": [ + "string imap_rfc822_write_address(string mailbox, string host, string personal)", + "Returns a properly formatted email address given the mailbox, host, and personal info" + ], + "imap_savebody": [ + "bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = \"\"[, int options = 0]])", + "Save a specific body section to a file" + ], + "imap_search": [ + "array imap_search(resource stream_id, string criteria [, int options [, string charset]])", + "Return a list of messages matching the given criteria" + ], + "imap_set_quota": [ + "bool imap_set_quota(resource stream_id, string qroot, int mailbox_size)", + "Will set the quota for qroot mailbox" + ], + "imap_setacl": [ + "bool imap_setacl(resource stream_id, string mailbox, string id, string rights)", + "Sets the ACL for a given mailbox" + ], + "imap_setflag_full": [ + "bool imap_setflag_full(resource stream_id, string sequence, string flag [, int options])", + "Sets flags on messages" + ], + "imap_sort": [ + "array imap_sort(resource stream_id, int criteria, int reverse [, int options [, string search_criteria [, string charset]]])", + "Sort an array of message headers, optionally including only messages that meet specified criteria." + ], + "imap_status": [ + "object imap_status(resource stream_id, string mailbox, int options)", + "Get status info from a mailbox" + ], + "imap_subscribe": [ + "bool imap_subscribe(resource stream_id, string mailbox)", + "Subscribe to a mailbox" + ], + "imap_thread": [ + "array imap_thread(resource stream_id [, int options])", + "Return threaded by REFERENCES tree" + ], + "imap_timeout": [ + "mixed imap_timeout(int timeout_type [, int timeout])", + "Set or fetch imap timeout" + ], + "imap_uid": [ + "int imap_uid(resource stream_id, int msg_no)", + "Get the unique message id associated with a standard sequential message number" + ], + "imap_undelete": [ + "bool imap_undelete(resource stream_id, int msg_no [, int flags])", + "Remove the delete flag from a message" + ], + "imap_unsubscribe": [ + "bool imap_unsubscribe(resource stream_id, string mailbox)", + "Unsubscribe from a mailbox" + ], + "imap_utf7_decode": [ + "string imap_utf7_decode(string buf)", + "Decode a modified UTF-7 string" + ], + "imap_utf7_encode": [ + "string imap_utf7_encode(string buf)", + "Encode a string in modified UTF-7" + ], + "imap_utf8": [ + "string imap_utf8(string mime_encoded_text)", + "Convert a mime-encoded text to UTF-8" + ], + "imap_utf8_to_mutf7": [ + "string imap_utf8_to_mutf7(string in)", + "Encode a UTF-8 string to modified UTF-7" + ], + "implode": [ + "string implode([string glue,] array pieces)", + "Joins array elements placing glue string between items and return one string" + ], + "import_request_variables": [ + "bool import_request_variables(string types [, string prefix])", + "Import GET/POST/Cookie variables into the global scope" + ], + "in_array": [ + "bool in_array(mixed needle, array haystack [, bool strict])", + "Checks if the given value exists in the array" + ], + "include": [ + "bool include(string path)", + "Includes and evaluates the specified file" + ], + "include_once": [ + "bool include_once(string path)", + "Includes and evaluates the specified file" + ], + "inet_ntop": [ + "string inet_ntop(string in_addr)", + "Converts a packed inet address to a human readable IP address string" + ], + "inet_pton": [ + "string inet_pton(string ip_address)", + "Converts a human readable IP address to a packed binary string" + ], + "ini_get": [ + "string ini_get(string varname)", + "Get a configuration option" + ], + "ini_get_all": [ + "array ini_get_all([string extension[, bool details = true]])", + "Get all configuration options" + ], + "ini_restore": [ + "void ini_restore(string varname)", + "Restore the value of a configuration option specified by varname" + ], + "ini_set": [ + "string ini_set(string varname, string newvalue)", + "Set a configuration option, returns false on error and the old value of the configuration option on success" + ], + "interface_exists": [ + "bool interface_exists(string classname [, bool autoload])", + "Checks if the class exists" + ], + "intl_error_name": [ + "string intl_error_name()", + "* Return a string for a given error code. * The string will be the same as the name of the error code constant." + ], + "intl_get_error_code": [ + "int intl_get_error_code()", + "* Get code of the last occured error." + ], + "intl_get_error_message": [ + "string intl_get_error_message()", + "* Get text description of the last occured error." + ], + "intl_is_failure": [ + "bool intl_is_failure()", + "* Check whether the given error code indicates a failure. * Returns true if it does, and false if the code * indicates success or a warning." + ], + "intval": [ + "int intval(mixed var [, int base])", + "Get the integer value of a variable using the optional base for the conversion" + ], + "ip2long": [ + "int ip2long(string ip_address)", + "Converts a string containing an (IPv4) Internet Protocol dotted address into a proper address" + ], + "iptcembed": [ + "array iptcembed(string iptcdata, string jpeg_file_name [, int spool])", + "Embed binary IPTC data into a JPEG image." + ], + "iptcparse": [ + "array iptcparse(string iptcdata)", + "Parse binary IPTC-data into associative array" + ], + "is_a": [ + "bool is_a(object object, string class_name)", + "Returns true if the object is of this class or has this class as one of its parents" + ], + "is_array": [ + "bool is_array(mixed var)", + "Returns true if variable is an array" + ], + "is_bool": [ + "bool is_bool(mixed var)", + "Returns true if variable is a boolean" + ], + "is_callable": [ + "bool is_callable(mixed var [, bool syntax_only [, string callable_name]])", + "Returns true if var is callable." + ], + "is_dir": [ + "bool is_dir(string filename)", + "Returns true if file is directory" + ], + "is_executable": [ + "bool is_executable(string filename)", + "Returns true if file is executable" + ], + "is_file": [ + "bool is_file(string filename)", + "Returns true if file is a regular file" + ], + "is_finite": [ + "bool is_finite(float val)", + "Returns whether argument is finite" + ], + "is_float": [ + "bool is_float(mixed var)", + "Returns true if variable is float point" + ], + "is_infinite": [ + "bool is_infinite(float val)", + "Returns whether argument is infinite" + ], + "is_link": [ + "bool is_link(string filename)", + "Returns true if file is symbolic link" + ], + "is_long": [ + "bool is_long(mixed var)", + "Returns true if variable is a long (integer)" + ], + "is_nan": [ + "bool is_nan(float val)", + "Returns whether argument is not a number" + ], + "is_null": [ + "bool is_null(mixed var)", + "Returns true if variable is null" + ], + "is_numeric": [ + "bool is_numeric(mixed value)", + "Returns true if value is a number or a numeric string" + ], + "is_object": [ + "bool is_object(mixed var)", + "Returns true if variable is an object" + ], + "is_readable": [ + "bool is_readable(string filename)", + "Returns true if file can be read" + ], + "is_resource": [ + "bool is_resource(mixed var)", + "Returns true if variable is a resource" + ], + "is_scalar": [ + "bool is_scalar(mixed value)", + "Returns true if value is a scalar" + ], + "is_string": [ + "bool is_string(mixed var)", + "Returns true if variable is a string" + ], + "is_subclass_of": [ + "bool is_subclass_of(object object, string class_name)", + "Returns true if the object has this class as one of its parents" + ], + "is_uploaded_file": [ + "bool is_uploaded_file(string path)", + "Check if file was created by rfc1867 upload" + ], + "is_writable": [ + "bool is_writable(string filename)", + "Returns true if file can be written" + ], + "isset": [ + "bool isset(mixed var [, mixed var])", + "Determine whether a variable is set" + ], + "iterator_apply": [ + "int iterator_apply(Traversable it, mixed function [, mixed params])", + "Calls a function for every element in an iterator" + ], + "iterator_count": [ + "int iterator_count(Traversable it)", + "Count the elements in an iterator" + ], + "iterator_to_array": [ + "array iterator_to_array(Traversable it [, bool use_keys = true])", + "Copy the iterator into an array" + ], + "jddayofweek": [ + "mixed jddayofweek(int juliandaycount [, int mode])", + "Returns name or number of day of week from julian day count" + ], + "jdmonthname": [ + "string jdmonthname(int juliandaycount, int mode)", + "Returns name of month for julian day count" + ], + "jdtofrench": [ + "string jdtofrench(int juliandaycount)", + "Converts a julian day count to a french republic calendar date" + ], + "jdtogregorian": [ + "string jdtogregorian(int juliandaycount)", + "Converts a julian day count to a gregorian calendar date" + ], + "jdtojewish": [ + "string jdtojewish(int juliandaycount [, bool hebrew [, int fl]])", + "Converts a julian day count to a jewish calendar date" + ], + "jdtojulian": [ + "string jdtojulian(int juliandaycount)", + "Convert a julian day count to a julian calendar date" + ], + "jdtounix": [ + "int jdtounix(int jday)", + "Convert Julian Day to UNIX timestamp" + ], + "jewishtojd": [ + "int jewishtojd(int month, int day, int year)", + "Converts a jewish calendar date to a julian day count" + ], + "join": [ + "string join(array src, string glue)", + "An alias for implode" + ], + "jpeg2wbmp": [ + "bool jpeg2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)", + "Convert JPEG image to WBMP image" + ], + "json_decode": [ + "mixed json_decode(string json [, bool assoc [, long depth]])", + "Decodes the JSON representation into a PHP value" + ], + "json_encode": [ + "string json_encode(mixed data [, int options])", + "Returns the JSON representation of a value" + ], + "json_last_error": [ + "int json_last_error()", + "Returns the error code of the last json_decode()." + ], + "juliantojd": [ + "int juliantojd(int month, int day, int year)", + "Converts a julian calendar date to julian day count" + ], + "key": [ + "mixed key(array array_arg)", + "Return the key of the element currently pointed to by the internal array pointer" + ], + "krsort": [ + "bool krsort(array &array_arg [, int sort_flags])", + "Sort an array by key value in reverse order" + ], + "ksort": [ + "bool ksort(array &array_arg [, int sort_flags])", + "Sort an array by key" + ], + "lcfirst": [ + "string lcfirst(string str)", + "Make a string's first character lowercase" + ], + "lcg_value": [ + "float lcg_value()", + "Returns a value from the combined linear congruential generator" + ], + "lchgrp": [ + "bool lchgrp(string filename, mixed group)", + "Change symlink group" + ], + "ldap_8859_to_t61": [ + "string ldap_8859_to_t61(string value)", + "Translate 8859 characters to t61 characters" + ], + "ldap_add": [ + "bool ldap_add(resource link, string dn, array entry)", + "Add entries to LDAP directory" + ], + "ldap_bind": [ + "bool ldap_bind(resource link [, string dn [, string password]])", + "Bind to LDAP directory" + ], + "ldap_compare": [ + "bool ldap_compare(resource link, string dn, string attr, string value)", + "Determine if an entry has a specific value for one of its attributes" + ], + "ldap_connect": [ + "resource ldap_connect([string host [, int port [, string wallet [, string wallet_passwd [, int authmode]]]]])", + "Connect to an LDAP server" + ], + "ldap_count_entries": [ + "int ldap_count_entries(resource link, resource result)", + "Count the number of entries in a search result" + ], + "ldap_delete": [ + "bool ldap_delete(resource link, string dn)", + "Delete an entry from a directory" + ], + "ldap_dn2ufn": [ + "string ldap_dn2ufn(string dn)", + "Convert DN to User Friendly Naming format" + ], + "ldap_err2str": [ + "string ldap_err2str(int errno)", + "Convert error number to error string" + ], + "ldap_errno": [ + "int ldap_errno(resource link)", + "Get the current ldap error number" + ], + "ldap_error": [ + "string ldap_error(resource link)", + "Get the current ldap error string" + ], + "ldap_explode_dn": [ + "array ldap_explode_dn(string dn, int with_attrib)", + "Splits DN into its component parts" + ], + "ldap_first_attribute": [ + "string ldap_first_attribute(resource link, resource result_entry)", + "Return first attribute" + ], + "ldap_first_entry": [ + "resource ldap_first_entry(resource link, resource result)", + "Return first result id" + ], + "ldap_first_reference": [ + "resource ldap_first_reference(resource link, resource result)", + "Return first reference" + ], + "ldap_free_result": [ + "bool ldap_free_result(resource result)", + "Free result memory" + ], + "ldap_get_attributes": [ + "array ldap_get_attributes(resource link, resource result_entry)", + "Get attributes from a search result entry" + ], + "ldap_get_dn": [ + "string ldap_get_dn(resource link, resource result_entry)", + "Get the DN of a result entry" + ], + "ldap_get_entries": [ + "array ldap_get_entries(resource link, resource result)", + "Get all result entries" + ], + "ldap_get_option": [ + "bool ldap_get_option(resource link, int option, mixed retval)", + "Get the current value of various session-wide parameters" + ], + "ldap_get_values_len": [ + "array ldap_get_values_len(resource link, resource result_entry, string attribute)", + "Get all values with lengths from a result entry" + ], + "ldap_list": [ + "resource ldap_list(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])", + "Single-level search" + ], + "ldap_mod_add": [ + "bool ldap_mod_add(resource link, string dn, array entry)", + "Add attribute values to current" + ], + "ldap_mod_del": [ + "bool ldap_mod_del(resource link, string dn, array entry)", + "Delete attribute values" + ], + "ldap_mod_replace": [ + "bool ldap_mod_replace(resource link, string dn, array entry)", + "Replace attribute values with new ones" + ], + "ldap_next_attribute": [ + "string ldap_next_attribute(resource link, resource result_entry)", + "Get the next attribute in result" + ], + "ldap_next_entry": [ + "resource ldap_next_entry(resource link, resource result_entry)", + "Get next result entry" + ], + "ldap_next_reference": [ + "resource ldap_next_reference(resource link, resource reference_entry)", + "Get next reference" + ], + "ldap_parse_reference": [ + "bool ldap_parse_reference(resource link, resource reference_entry, array referrals)", + "Extract information from reference entry" + ], + "ldap_parse_result": [ + "bool ldap_parse_result(resource link, resource result, int errcode, string matcheddn, string errmsg, array referrals)", + "Extract information from result" + ], + "ldap_read": [ + "resource ldap_read(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])", + "Read an entry" + ], + "ldap_rename": [ + "bool ldap_rename(resource link, string dn, string newrdn, string newparent, bool deleteoldrdn);", + "Modify the name of an entry" + ], + "ldap_sasl_bind": [ + "bool ldap_sasl_bind(resource link [, string binddn [, string password [, string sasl_mech [, string sasl_realm [, string sasl_authc_id [, string sasl_authz_id [, string props]]]]]]])", + "Bind to LDAP directory using SASL" + ], + "ldap_search": [ + "resource ldap_search(resource|array link, string base_dn, string filter [, array attrs [, int attrsonly [, int sizelimit [, int timelimit [, int deref]]]]])", + "Search LDAP tree under base_dn" + ], + "ldap_set_option": [ + "bool ldap_set_option(resource link, int option, mixed newval)", + "Set the value of various session-wide parameters" + ], + "ldap_set_rebind_proc": [ + "bool ldap_set_rebind_proc(resource link, string callback)", + "Set a callback function to do re-binds on referral chasing." + ], + "ldap_sort": [ + "bool ldap_sort(resource link, resource result, string sortfilter)", + "Sort LDAP result entries" + ], + "ldap_start_tls": [ + "bool ldap_start_tls(resource link)", + "Start TLS" + ], + "ldap_t61_to_8859": [ + "string ldap_t61_to_8859(string value)", + "Translate t61 characters to 8859 characters" + ], + "ldap_unbind": [ + "bool ldap_unbind(resource link)", + "Unbind from LDAP directory" + ], + "leak": [ + "void leak(int num_bytes=3)", + "Cause an intentional memory leak, for testing/debugging purposes" + ], + "levenshtein": [ + "int levenshtein(string str1, string str2[, int cost_ins, int cost_rep, int cost_del])", + "Calculate Levenshtein distance between two strings" + ], + "libxml_clear_errors": [ + "void libxml_clear_errors()", + "Clear last error from libxml" + ], + "libxml_disable_entity_loader": [ + "bool libxml_disable_entity_loader([boolean disable])", + "Disable/Enable ability to load external entities" + ], + "libxml_get_errors": [ + "object libxml_get_errors()", + "Retrieve array of errors" + ], + "libxml_get_last_error": [ + "object libxml_get_last_error()", + "Retrieve last error from libxml" + ], + "libxml_set_streams_context": [ + "void libxml_set_streams_context(resource streams_context)", + "Set the streams context for the next libxml document load or write" + ], + "libxml_use_internal_errors": [ + "bool libxml_use_internal_errors([boolean use_errors])", + "Disable libxml errors and allow user to fetch error information as needed" + ], + "link": [ + "int link(string target, string link)", + "Create a hard link" + ], + "linkinfo": [ + "int linkinfo(string filename)", + "Returns the st_dev field of the UNIX C stat structure describing the link" + ], + "litespeed_request_headers": [ + "array litespeed_request_headers(void)", + "Fetch all HTTP request headers" + ], + "litespeed_response_headers": [ + "array litespeed_response_headers(void)", + "Fetch all HTTP response headers" + ], + "locale_accept_from_http": [ + "string locale_accept_from_http(string $http_accept)", + null + ], + "locale_canonicalize": [ + "static string locale_canonicalize(Locale $loc, string $locale)", + "* @param string $locale The locale string to canonicalize" + ], + "locale_filter_matches": [ + "boolean locale_filter_matches(string $langtag, string $locale[, bool $canonicalize])", + "* Checks if a $langtag filter matches with $locale according to RFC 4647's basic filtering algorithm" + ], + "locale_get_all_variants": [ + "static array locale_get_all_variants($locale)", + "* gets an array containing the list of variants, or null" + ], + "locale_get_default": [ + "static string locale_get_default( )", + "Get default locale" + ], + "locale_get_keywords": [ + "static array locale_get_keywords(string $locale) {", + "* return an associative array containing keyword-value * pairs for this locale. The keys are keys to the array (doh!)" + ], + "locale_get_primary_language": [ + "static string locale_get_primary_language($locale)", + "* gets the primary language for the $locale" + ], + "locale_get_region": [ + "static string locale_get_region($locale)", + "* gets the region for the $locale" + ], + "locale_get_script": [ + "static string locale_get_script($locale)", + "* gets the script for the $locale" + ], + "locale_lookup": [ + "string locale_lookup(array $langtag, string $locale[, bool $canonicalize[, string $default = null]])", + "* Searchs the items in $langtag for the best match to the language * range" + ], + "locale_set_default": [ + "static string locale_set_default( string $locale )", + "Set default locale" + ], + "localeconv": [ + "array localeconv(void)", + "Returns numeric formatting information based on the current locale" + ], + "localtime": [ + "array localtime([int timestamp [, bool associative_array]])", + "Returns the results of the C system call localtime as an associative array if the associative_array argument is set to 1 other wise it is a regular array" + ], + "log": [ + "float log(float number, [float base])", + "Returns the natural logarithm of the number, or the base log if base is specified" + ], + "log10": [ + "float log10(float number)", + "Returns the base-10 logarithm of the number" + ], + "log1p": [ + "float log1p(float number)", + "Returns log(1 + number), computed in a way that accurate even when the value of number is close to zero" + ], + "long2ip": [ + "string long2ip(int proper_address)", + "Converts an (IPv4) Internet network address into a string in Internet standard dotted format" + ], + "lstat": [ + "array lstat(string filename)", + "Give information about a file or symbolic link" + ], + "ltrim": [ + "string ltrim(string str [, string character_mask])", + "Strips whitespace from the beginning of a string" + ], + "mail": [ + "int mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])", + "Send an email message" + ], + "max": [ + "mixed max(mixed arg1 [, mixed arg2 [, mixed ...]])", + "Return the highest value in an array or a series of arguments" + ], + "mb_check_encoding": [ + "bool mb_check_encoding([string var[, string encoding]])", + "Check if the string is valid for the specified encoding" + ], + "mb_convert_case": [ + "string mb_convert_case(string sourcestring, int mode [, string encoding])", + "Returns a case-folded version of sourcestring" + ], + "mb_convert_encoding": [ + "string mb_convert_encoding(string str, string to-encoding [, mixed from-encoding])", + "Returns converted string in desired encoding" + ], + "mb_convert_kana": [ + "string mb_convert_kana(string str [, string option] [, string encoding])", + "Conversion between full-width character and half-width character (Japanese)" + ], + "mb_convert_variables": [ + "string mb_convert_variables(string to-encoding, mixed from-encoding, mixed vars [, ...])", + "Converts the string resource in variables to desired encoding" + ], + "mb_decode_mimeheader": [ + "string mb_decode_mimeheader(string string)", + "Decodes the MIME \"encoded-word\" in the string" + ], + "mb_decode_numericentity": [ + "string mb_decode_numericentity(string string, array convmap [, string encoding])", + "Converts HTML numeric entities to character code" + ], + "mb_detect_encoding": [ + "string mb_detect_encoding(string str [, mixed encoding_list [, bool strict]])", + "Encodings of the given string is returned (as a string)" + ], + "mb_detect_order": [ + "bool|array mb_detect_order([mixed encoding-list])", + "Sets the current detect_order or Return the current detect_order as a array" + ], + "mb_encode_mimeheader": [ + "string mb_encode_mimeheader(string str [, string charset [, string transfer-encoding [, string linefeed [, int indent]]]])", + "Converts the string to MIME \"encoded-word\" in the format of =?charset?(B|Q)?encoded_string?=" + ], + "mb_encode_numericentity": [ + "string mb_encode_numericentity(string string, array convmap [, string encoding])", + "Converts specified characters to HTML numeric entities" + ], + "mb_encoding_aliases": [ + "array mb_encoding_aliases(string encoding)", + "Returns an array of the aliases of a given encoding name" + ], + "mb_ereg": [ + "int mb_ereg(string pattern, string string [, array registers])", + "Regular expression match for multibyte string" + ], + "mb_ereg_match": [ + "bool mb_ereg_match(string pattern, string string [,string option])", + "Regular expression match for multibyte string" + ], + "mb_ereg_replace": [ + "string mb_ereg_replace(string pattern, string replacement, string string [, string option])", + "Replace regular expression for multibyte string" + ], + "mb_ereg_search": [ + "bool mb_ereg_search([string pattern[, string option]])", + "Regular expression search for multibyte string" + ], + "mb_ereg_search_getpos": [ + "int mb_ereg_search_getpos(void)", + "Get search start position" + ], + "mb_ereg_search_getregs": [ + "array mb_ereg_search_getregs(void)", + "Get matched substring of the last time" + ], + "mb_ereg_search_init": [ + "bool mb_ereg_search_init(string string [, string pattern[, string option]])", + "Initialize string and regular expression for search." + ], + "mb_ereg_search_pos": [ + "array mb_ereg_search_pos([string pattern[, string option]])", + "Regular expression search for multibyte string" + ], + "mb_ereg_search_regs": [ + "array mb_ereg_search_regs([string pattern[, string option]])", + "Regular expression search for multibyte string" + ], + "mb_ereg_search_setpos": [ + "bool mb_ereg_search_setpos(int position)", + "Set search start position" + ], + "mb_eregi": [ + "int mb_eregi(string pattern, string string [, array registers])", + "Case-insensitive regular expression match for multibyte string" + ], + "mb_eregi_replace": [ + "string mb_eregi_replace(string pattern, string replacement, string string)", + "Case insensitive replace regular expression for multibyte string" + ], + "mb_get_info": [ + "mixed mb_get_info([string type])", + "Returns the current settings of mbstring" + ], + "mb_http_input": [ + "mixed mb_http_input([string type])", + "Returns the input encoding" + ], + "mb_http_output": [ + "string mb_http_output([string encoding])", + "Sets the current output_encoding or returns the current output_encoding as a string" + ], + "mb_internal_encoding": [ + "string mb_internal_encoding([string encoding])", + "Sets the current internal encoding or Returns the current internal encoding as a string" + ], + "mb_language": [ + "string mb_language([string language])", + "Sets the current language or Returns the current language as a string" + ], + "mb_list_encodings": [ + "mixed mb_list_encodings()", + "Returns an array of all supported entity encodings" + ], + "mb_output_handler": [ + "string mb_output_handler(string contents, int status)", + "Returns string in output buffer converted to the http_output encoding" + ], + "mb_parse_str": [ + "bool mb_parse_str(string encoded_string [, array result])", + "Parses GET/POST/COOKIE data and sets global variables" + ], + "mb_preferred_mime_name": [ + "string mb_preferred_mime_name(string encoding)", + "Return the preferred MIME name (charset) as a string" + ], + "mb_regex_encoding": [ + "string mb_regex_encoding([string encoding])", + "Returns the current encoding for regex as a string." + ], + "mb_regex_set_options": [ + "string mb_regex_set_options([string options])", + "Set or get the default options for mbregex functions" + ], + "mb_send_mail": [ + "int mb_send_mail(string to, string subject, string message [, string additional_headers [, string additional_parameters]])", + "* Sends an email message with MIME scheme" + ], + "mb_split": [ + "array mb_split(string pattern, string string [, int limit])", + "split multibyte string into array by regular expression" + ], + "mb_strcut": [ + "string mb_strcut(string str, int start [, int length [, string encoding]])", + "Returns part of a string" + ], + "mb_strimwidth": [ + "string mb_strimwidth(string str, int start, int width [, string trimmarker [, string encoding]])", + "Trim the string in terminal width" + ], + "mb_stripos": [ + "int mb_stripos(string haystack, string needle [, int offset [, string encoding]])", + "Finds position of first occurrence of a string within another, case insensitive" + ], + "mb_stristr": [ + "string mb_stristr(string haystack, string needle[, bool part[, string encoding]])", + "Finds first occurrence of a string within another, case insensitive" + ], + "mb_strlen": [ + "int mb_strlen(string str [, string encoding])", + "Get character numbers of a string" + ], + "mb_strpos": [ + "int mb_strpos(string haystack, string needle [, int offset [, string encoding]])", + "Find position of first occurrence of a string within another" + ], + "mb_strrchr": [ + "string mb_strrchr(string haystack, string needle[, bool part[, string encoding]])", + "Finds the last occurrence of a character in a string within another" + ], + "mb_strrichr": [ + "string mb_strrichr(string haystack, string needle[, bool part[, string encoding]])", + "Finds the last occurrence of a character in a string within another, case insensitive" + ], + "mb_strripos": [ + "int mb_strripos(string haystack, string needle [, int offset [, string encoding]])", + "Finds position of last occurrence of a string within another, case insensitive" + ], + "mb_strrpos": [ + "int mb_strrpos(string haystack, string needle [, int offset [, string encoding]])", + "Find position of last occurrence of a string within another" + ], + "mb_strstr": [ + "string mb_strstr(string haystack, string needle[, bool part[, string encoding]])", + "Finds first occurrence of a string within another" + ], + "mb_strtolower": [ + "string mb_strtolower(string sourcestring [, string encoding])", + "* Returns a lowercased version of sourcestring" + ], + "mb_strtoupper": [ + "string mb_strtoupper(string sourcestring [, string encoding])", + "* Returns a uppercased version of sourcestring" + ], + "mb_strwidth": [ + "int mb_strwidth(string str [, string encoding])", + "Gets terminal width of a string" + ], + "mb_substitute_character": [ + "mixed mb_substitute_character([mixed substchar])", + "Sets the current substitute_character or returns the current substitute_character" + ], + "mb_substr": [ + "string mb_substr(string str, int start [, int length [, string encoding]])", + "Returns part of a string" + ], + "mb_substr_count": [ + "int mb_substr_count(string haystack, string needle [, string encoding])", + "Count the number of substring occurrences" + ], + "mcrypt_cbc": [ + "string mcrypt_cbc(int cipher, string key, string data, int mode, string iv)", + "CBC crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "mcrypt_cfb": [ + "string mcrypt_cfb(int cipher, string key, string data, int mode, string iv)", + "CFB crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "mcrypt_create_iv": [ + "string mcrypt_create_iv(int size, int source)", + "Create an initialization vector (IV)" + ], + "mcrypt_decrypt": [ + "string mcrypt_decrypt(string cipher, string key, string data, string mode, string iv)", + "OFB crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "mcrypt_ecb": [ + "string mcrypt_ecb(int cipher, string key, string data, int mode, string iv)", + "ECB crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "mcrypt_enc_get_algorithms_name": [ + "string mcrypt_enc_get_algorithms_name(resource td)", + "Returns the name of the algorithm specified by the descriptor td" + ], + "mcrypt_enc_get_block_size": [ + "int mcrypt_enc_get_block_size(resource td)", + "Returns the block size of the cipher specified by the descriptor td" + ], + "mcrypt_enc_get_iv_size": [ + "int mcrypt_enc_get_iv_size(resource td)", + "Returns the size of the IV in bytes of the algorithm specified by the descriptor td" + ], + "mcrypt_enc_get_key_size": [ + "int mcrypt_enc_get_key_size(resource td)", + "Returns the maximum supported key size in bytes of the algorithm specified by the descriptor td" + ], + "mcrypt_enc_get_modes_name": [ + "string mcrypt_enc_get_modes_name(resource td)", + "Returns the name of the mode specified by the descriptor td" + ], + "mcrypt_enc_get_supported_key_sizes": [ + "array mcrypt_enc_get_supported_key_sizes(resource td)", + "This function decrypts the crypttext" + ], + "mcrypt_enc_is_block_algorithm": [ + "bool mcrypt_enc_is_block_algorithm(resource td)", + "Returns TRUE if the alrogithm is a block algorithms" + ], + "mcrypt_enc_is_block_algorithm_mode": [ + "bool mcrypt_enc_is_block_algorithm_mode(resource td)", + "Returns TRUE if the mode is for use with block algorithms" + ], + "mcrypt_enc_is_block_mode": [ + "bool mcrypt_enc_is_block_mode(resource td)", + "Returns TRUE if the mode outputs blocks" + ], + "mcrypt_enc_self_test": [ + "int mcrypt_enc_self_test(resource td)", + "This function runs the self test on the algorithm specified by the descriptor td" + ], + "mcrypt_encrypt": [ + "string mcrypt_encrypt(string cipher, string key, string data, string mode, string iv)", + "OFB crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "mcrypt_generic": [ + "string mcrypt_generic(resource td, string data)", + "This function encrypts the plaintext" + ], + "mcrypt_generic_deinit": [ + "bool mcrypt_generic_deinit(resource td)", + "This function terminates encrypt specified by the descriptor td" + ], + "mcrypt_generic_init": [ + "int mcrypt_generic_init(resource td, string key, string iv)", + "This function initializes all buffers for the specific module" + ], + "mcrypt_get_block_size": [ + "int mcrypt_get_block_size(string cipher, string module)", + "Get the key size of cipher" + ], + "mcrypt_get_cipher_name": [ + "string mcrypt_get_cipher_name(string cipher)", + "Get the key size of cipher" + ], + "mcrypt_get_iv_size": [ + "int mcrypt_get_iv_size(string cipher, string module)", + "Get the IV size of cipher (Usually the same as the blocksize)" + ], + "mcrypt_get_key_size": [ + "int mcrypt_get_key_size(string cipher, string module)", + "Get the key size of cipher" + ], + "mcrypt_list_algorithms": [ + "array mcrypt_list_algorithms([string lib_dir])", + "List all algorithms in \"module_dir\"" + ], + "mcrypt_list_modes": [ + "array mcrypt_list_modes([string lib_dir])", + "List all modes \"module_dir\"" + ], + "mcrypt_module_close": [ + "bool mcrypt_module_close(resource td)", + "Free the descriptor td" + ], + "mcrypt_module_get_algo_block_size": [ + "int mcrypt_module_get_algo_block_size(string algorithm [, string lib_dir])", + "Returns the block size of the algorithm" + ], + "mcrypt_module_get_algo_key_size": [ + "int mcrypt_module_get_algo_key_size(string algorithm [, string lib_dir])", + "Returns the maximum supported key size of the algorithm" + ], + "mcrypt_module_get_supported_key_sizes": [ + "array mcrypt_module_get_supported_key_sizes(string algorithm [, string lib_dir])", + "This function decrypts the crypttext" + ], + "mcrypt_module_is_block_algorithm": [ + "bool mcrypt_module_is_block_algorithm(string algorithm [, string lib_dir])", + "Returns TRUE if the algorithm is a block algorithm" + ], + "mcrypt_module_is_block_algorithm_mode": [ + "bool mcrypt_module_is_block_algorithm_mode(string mode [, string lib_dir])", + "Returns TRUE if the mode is for use with block algorithms" + ], + "mcrypt_module_is_block_mode": [ + "bool mcrypt_module_is_block_mode(string mode [, string lib_dir])", + "Returns TRUE if the mode outputs blocks of bytes" + ], + "mcrypt_module_open": [ + "resource mcrypt_module_open(string cipher, string cipher_directory, string mode, string mode_directory)", + "Opens the module of the algorithm and the mode to be used" + ], + "mcrypt_module_self_test": [ + "bool mcrypt_module_self_test(string algorithm [, string lib_dir])", + "Does a self test of the module \"module\"" + ], + "mcrypt_ofb": [ + "string mcrypt_ofb(int cipher, string key, string data, int mode, string iv)", + "OFB crypt/decrypt data using key key with cipher cipher starting with iv" + ], + "md5": [ + "string md5(string str, [ bool raw_output])", + "Calculate the md5 hash of a string" + ], + "md5_file": [ + "string md5_file(string filename [, bool raw_output])", + "Calculate the md5 hash of given filename" + ], + "mdecrypt_generic": [ + "string mdecrypt_generic(resource td, string data)", + "This function decrypts the plaintext" + ], + "memory_get_peak_usage": [ + "int memory_get_peak_usage([real_usage])", + "Returns the peak allocated by PHP memory" + ], + "memory_get_usage": [ + "int memory_get_usage([real_usage])", + "Returns the allocated by PHP memory" + ], + "metaphone": [ + "string metaphone(string text[, int phones])", + "Break english phrases down into their phonemes" + ], + "method_exists": [ + "bool method_exists(object object, string method)", + "Checks if the class method exists" + ], + "mhash": [ + "string mhash(int hash, string data [, string key])", + "Hash data with hash" + ], + "mhash_count": [ + "int mhash_count(void)", + "Gets the number of available hashes" + ], + "mhash_get_block_size": [ + "int mhash_get_block_size(int hash)", + "Gets the block size of hash" + ], + "mhash_get_hash_name": [ + "string mhash_get_hash_name(int hash)", + "Gets the name of hash" + ], + "mhash_keygen_s2k": [ + "string mhash_keygen_s2k(int hash, string input_password, string salt, int bytes)", + "Generates a key using hash functions" + ], + "microtime": [ + "mixed microtime([bool get_as_float])", + "Returns either a string or a float containing the current time in seconds and microseconds" + ], + "mime_content_type": [ + "string mime_content_type(string filename|resource stream)", + "Return content-type for file" + ], + "min": [ + "mixed min(mixed arg1 [, mixed arg2 [, mixed ...]])", + "Return the lowest value in an array or a series of arguments" + ], + "mkdir": [ + "bool mkdir(string pathname [, int mode [, bool recursive [, resource context]]])", + "Create a directory" + ], + "mktime": [ + "int mktime([int hour [, int min [, int sec [, int mon [, int day [, int year]]]]]])", + "Get UNIX timestamp for a date" + ], + "money_format": [ + "string money_format(string format , float value)", + "Convert monetary value(s) to string" + ], + "move_uploaded_file": [ + "bool move_uploaded_file(string path, string new_path)", + "Move a file if and only if it was created by an upload" + ], + "msg_get_queue": [ + "resource msg_get_queue(int key [, int perms])", + "Attach to a message queue" + ], + "msg_queue_exists": [ + "bool msg_queue_exists(int key)", + "Check wether a message queue exists" + ], + "msg_receive": [ + "mixed msg_receive(resource queue, int desiredmsgtype, int &msgtype, int maxsize, mixed message [, bool unserialize=true [, int flags=0 [, int errorcode]]])", + "Send a message of type msgtype (must be > 0) to a message queue" + ], + "msg_remove_queue": [ + "bool msg_remove_queue(resource queue)", + "Destroy the queue" + ], + "msg_send": [ + "bool msg_send(resource queue, int msgtype, mixed message [, bool serialize=true [, bool blocking=true [, int errorcode]]])", + "Send a message of type msgtype (must be > 0) to a message queue" + ], + "msg_set_queue": [ + "bool msg_set_queue(resource queue, array data)", + "Set information for a message queue" + ], + "msg_stat_queue": [ + "array msg_stat_queue(resource queue)", + "Returns information about a message queue" + ], + "msgfmt_create": [ + "MessageFormatter msgfmt_create( string $locale, string $pattern )", + "* Create formatter." + ], + "msgfmt_format": [ + "mixed msgfmt_format( MessageFormatter $nf, array $args )", + "* Format a message." + ], + "msgfmt_format_message": [ + "mixed msgfmt_format_message( string $locale, string $pattern, array $args )", + "* Format a message." + ], + "msgfmt_get_error_code": [ + "int msgfmt_get_error_code( MessageFormatter $nf )", + "* Get formatter's last error code." + ], + "msgfmt_get_error_message": [ + "string msgfmt_get_error_message( MessageFormatter $coll )", + "* Get text description for formatter's last error code." + ], + "msgfmt_get_locale": [ + "string msgfmt_get_locale(MessageFormatter $mf)", + "* Get formatter locale." + ], + "msgfmt_get_pattern": [ + "string msgfmt_get_pattern( MessageFormatter $mf )", + "* Get formatter pattern." + ], + "msgfmt_parse": [ + "array msgfmt_parse( MessageFormatter $nf, string $source )", + "* Parse a message." + ], + "msgfmt_set_pattern": [ + "bool msgfmt_set_pattern( MessageFormatter $mf, string $pattern )", + "* Set formatter pattern." + ], + "mssql_bind": [ + "bool mssql_bind(resource stmt, string param_name, mixed var, int type [, bool is_output [, bool is_null [, int maxlen]]])", + "Adds a parameter to a stored procedure or a remote stored procedure" + ], + "mssql_close": [ + "bool mssql_close([resource conn_id])", + "Closes a connection to a MS-SQL server" + ], + "mssql_connect": [ + "int mssql_connect([string servername [, string username [, string password [, bool new_link]]]])", + "Establishes a connection to a MS-SQL server" + ], + "mssql_data_seek": [ + "bool mssql_data_seek(resource result_id, int offset)", + "Moves the internal row pointer of the MS-SQL result associated with the specified result identifier to pointer to the specified row number" + ], + "mssql_execute": [ + "mixed mssql_execute(resource stmt [, bool skip_results = false])", + "Executes a stored procedure on a MS-SQL server database" + ], + "mssql_fetch_array": [ + "array mssql_fetch_array(resource result_id [, int result_type])", + "Returns an associative array of the current row in the result set specified by result_id" + ], + "mssql_fetch_assoc": [ + "array mssql_fetch_assoc(resource result_id)", + "Returns an associative array of the current row in the result set specified by result_id" + ], + "mssql_fetch_batch": [ + "int mssql_fetch_batch(resource result_index)", + "Returns the next batch of records" + ], + "mssql_fetch_field": [ + "object mssql_fetch_field(resource result_id [, int offset])", + "Gets information about certain fields in a query result" + ], + "mssql_fetch_object": [ + "object mssql_fetch_object(resource result_id)", + "Returns a pseudo-object of the current row in the result set specified by result_id" + ], + "mssql_fetch_row": [ + "array mssql_fetch_row(resource result_id)", + "Returns an array of the current row in the result set specified by result_id" + ], + "mssql_field_length": [ + "int mssql_field_length(resource result_id [, int offset])", + "Get the length of a MS-SQL field" + ], + "mssql_field_name": [ + "string mssql_field_name(resource result_id [, int offset])", + "Returns the name of the field given by offset in the result set given by result_id" + ], + "mssql_field_seek": [ + "bool mssql_field_seek(resource result_id, int offset)", + "Seeks to the specified field offset" + ], + "mssql_field_type": [ + "string mssql_field_type(resource result_id [, int offset])", + "Returns the type of a field" + ], + "mssql_free_result": [ + "bool mssql_free_result(resource result_index)", + "Free a MS-SQL result index" + ], + "mssql_free_statement": [ + "bool mssql_free_statement(resource result_index)", + "Free a MS-SQL statement index" + ], + "mssql_get_last_message": [ + "string mssql_get_last_message(void)", + "Gets the last message from the MS-SQL server" + ], + "mssql_guid_string": [ + "string mssql_guid_string(string binary [,bool short_format])", + "Converts a 16 byte binary GUID to a string" + ], + "mssql_init": [ + "int mssql_init(string sp_name [, resource conn_id])", + "Initializes a stored procedure or a remote stored procedure" + ], + "mssql_min_error_severity": [ + "void mssql_min_error_severity(int severity)", + "Sets the lower error severity" + ], + "mssql_min_message_severity": [ + "void mssql_min_message_severity(int severity)", + "Sets the lower message severity" + ], + "mssql_next_result": [ + "bool mssql_next_result(resource result_id)", + "Move the internal result pointer to the next result" + ], + "mssql_num_fields": [ + "int mssql_num_fields(resource mssql_result_index)", + "Returns the number of fields fetched in from the result id specified" + ], + "mssql_num_rows": [ + "int mssql_num_rows(resource mssql_result_index)", + "Returns the number of rows fetched in from the result id specified" + ], + "mssql_pconnect": [ + "int mssql_pconnect([string servername [, string username [, string password [, bool new_link]]]])", + "Establishes a persistent connection to a MS-SQL server" + ], + "mssql_query": [ + "resource mssql_query(string query [, resource conn_id [, int batch_size]])", + "Perform an SQL query on a MS-SQL server database" + ], + "mssql_result": [ + "string mssql_result(resource result_id, int row, mixed field)", + "Returns the contents of one cell from a MS-SQL result set" + ], + "mssql_rows_affected": [ + "int mssql_rows_affected(resource conn_id)", + "Returns the number of records affected by the query" + ], + "mssql_select_db": [ + "bool mssql_select_db(string database_name [, resource conn_id])", + "Select a MS-SQL database" + ], + "mt_getrandmax": [ + "int mt_getrandmax(void)", + "Returns the maximum value a random number from Mersenne Twister can have" + ], + "mt_rand": [ + "int mt_rand([int min, int max])", + "Returns a random number from Mersenne Twister" + ], + "mt_srand": [ + "void mt_srand([int seed])", + "Seeds Mersenne Twister random number generator" + ], + "mysql_affected_rows": [ + "int mysql_affected_rows([int link_identifier])", + "Gets number of affected rows in previous MySQL operation" + ], + "mysql_client_encoding": [ + "string mysql_client_encoding([int link_identifier])", + "Returns the default character set for the current connection" + ], + "mysql_close": [ + "bool mysql_close([int link_identifier])", + "Close a MySQL connection" + ], + "mysql_connect": [ + "resource mysql_connect([string hostname[:port][:/path/to/socket] [, string username [, string password [, bool new [, int flags]]]]])", + "Opens a connection to a MySQL Server" + ], + "mysql_create_db": [ + "bool mysql_create_db(string database_name [, int link_identifier])", + "Create a MySQL database" + ], + "mysql_data_seek": [ + "bool mysql_data_seek(resource result, int row_number)", + "Move internal result pointer" + ], + "mysql_db_query": [ + "resource mysql_db_query(string database_name, string query [, int link_identifier])", + "Sends an SQL query to MySQL" + ], + "mysql_drop_db": [ + "bool mysql_drop_db(string database_name [, int link_identifier])", + "Drops (delete) a MySQL database" + ], + "mysql_errno": [ + "int mysql_errno([int link_identifier])", + "Returns the number of the error message from previous MySQL operation" + ], + "mysql_error": [ + "string mysql_error([int link_identifier])", + "Returns the text of the error message from previous MySQL operation" + ], + "mysql_escape_string": [ + "string mysql_escape_string(string to_be_escaped)", + "Escape string for mysql query" + ], + "mysql_fetch_array": [ + "array mysql_fetch_array(resource result [, int result_type])", + "Fetch a result row as an array (associative, numeric or both)" + ], + "mysql_fetch_assoc": [ + "array mysql_fetch_assoc(resource result)", + "Fetch a result row as an associative array" + ], + "mysql_fetch_field": [ + "object mysql_fetch_field(resource result [, int field_offset])", + "Gets column information from a result and return as an object" + ], + "mysql_fetch_lengths": [ + "array mysql_fetch_lengths(resource result)", + "Gets max data size of each column in a result" + ], + "mysql_fetch_object": [ + "object mysql_fetch_object(resource result [, string class_name [, NULL|array ctor_params]])", + "Fetch a result row as an object" + ], + "mysql_fetch_row": [ + "array mysql_fetch_row(resource result)", + "Gets a result row as an enumerated array" + ], + "mysql_field_flags": [ + "string mysql_field_flags(resource result, int field_offset)", + "Gets the flags associated with the specified field in a result" + ], + "mysql_field_len": [ + "int mysql_field_len(resource result, int field_offset)", + "Returns the length of the specified field" + ], + "mysql_field_name": [ + "string mysql_field_name(resource result, int field_index)", + "Gets the name of the specified field in a result" + ], + "mysql_field_seek": [ + "bool mysql_field_seek(resource result, int field_offset)", + "Sets result pointer to a specific field offset" + ], + "mysql_field_table": [ + "string mysql_field_table(resource result, int field_offset)", + "Gets name of the table the specified field is in" + ], + "mysql_field_type": [ + "string mysql_field_type(resource result, int field_offset)", + "Gets the type of the specified field in a result" + ], + "mysql_free_result": [ + "bool mysql_free_result(resource result)", + "Free result memory" + ], + "mysql_get_client_info": [ + "string mysql_get_client_info(void)", + "Returns a string that represents the client library version" + ], + "mysql_get_host_info": [ + "string mysql_get_host_info([int link_identifier])", + "Returns a string describing the type of connection in use, including the server host name" + ], + "mysql_get_proto_info": [ + "int mysql_get_proto_info([int link_identifier])", + "Returns the protocol version used by current connection" + ], + "mysql_get_server_info": [ + "string mysql_get_server_info([int link_identifier])", + "Returns a string that represents the server version number" + ], + "mysql_info": [ + "string mysql_info([int link_identifier])", + "Returns a string containing information about the most recent query" + ], + "mysql_insert_id": [ + "int mysql_insert_id([int link_identifier])", + "Gets the ID generated from the previous INSERT operation" + ], + "mysql_list_dbs": [ + "resource mysql_list_dbs([int link_identifier])", + "List databases available on a MySQL server" + ], + "mysql_list_fields": [ + "resource mysql_list_fields(string database_name, string table_name [, int link_identifier])", + "List MySQL result fields" + ], + "mysql_list_processes": [ + "resource mysql_list_processes([int link_identifier])", + "Returns a result set describing the current server threads" + ], + "mysql_list_tables": [ + "resource mysql_list_tables(string database_name [, int link_identifier])", + "List tables in a MySQL database" + ], + "mysql_num_fields": [ + "int mysql_num_fields(resource result)", + "Gets number of fields in a result" + ], + "mysql_num_rows": [ + "int mysql_num_rows(resource result)", + "Gets number of rows in a result" + ], + "mysql_pconnect": [ + "resource mysql_pconnect([string hostname[:port][:/path/to/socket] [, string username [, string password [, int flags]]]])", + "Opens a persistent connection to a MySQL Server" + ], + "mysql_ping": [ + "bool mysql_ping([int link_identifier])", + "Ping a server connection. If no connection then reconnect." + ], + "mysql_query": [ + "resource mysql_query(string query [, int link_identifier])", + "Sends an SQL query to MySQL" + ], + "mysql_real_escape_string": [ + "string mysql_real_escape_string(string to_be_escaped [, int link_identifier])", + "Escape special characters in a string for use in a SQL statement, taking into account the current charset of the connection" + ], + "mysql_result": [ + "mixed mysql_result(resource result, int row [, mixed field])", + "Gets result data" + ], + "mysql_select_db": [ + "bool mysql_select_db(string database_name [, int link_identifier])", + "Selects a MySQL database" + ], + "mysql_set_charset": [ + "bool mysql_set_charset(string csname [, int link_identifier])", + "sets client character set" + ], + "mysql_stat": [ + "string mysql_stat([int link_identifier])", + "Returns a string containing status information" + ], + "mysql_thread_id": [ + "int mysql_thread_id([int link_identifier])", + "Returns the thread id of current connection" + ], + "mysql_unbuffered_query": [ + "resource mysql_unbuffered_query(string query [, int link_identifier])", + "Sends an SQL query to MySQL, without fetching and buffering the result rows" + ], + "mysqli_affected_rows": [ + "mixed mysqli_affected_rows(object link)", + "Get number of affected rows in previous MySQL operation" + ], + "mysqli_autocommit": [ + "bool mysqli_autocommit(object link, bool mode)", + "Turn auto commit on or of" + ], + "mysqli_cache_stats": [ + "array mysqli_cache_stats(void)", + "Returns statistics about the zval cache" + ], + "mysqli_change_user": [ + "bool mysqli_change_user(object link, string user, string password, string database)", + "Change logged-in user of the active connection" + ], + "mysqli_character_set_name": [ + "string mysqli_character_set_name(object link)", + "Returns the name of the character set used for this connection" + ], + "mysqli_close": [ + "bool mysqli_close(object link)", + "Close connection" + ], + "mysqli_commit": [ + "bool mysqli_commit(object link)", + "Commit outstanding actions and close transaction" + ], + "mysqli_connect": [ + "object mysqli_connect([string hostname [,string username [,string passwd [,string dbname [,int port [,string socket]]]]]])", + "Open a connection to a mysql server" + ], + "mysqli_connect_errno": [ + "int mysqli_connect_errno(void)", + "Returns the numerical value of the error message from last connect command" + ], + "mysqli_connect_error": [ + "string mysqli_connect_error(void)", + "Returns the text of the error message from previous MySQL operation" + ], + "mysqli_data_seek": [ + "bool mysqli_data_seek(object result, int offset)", + "Move internal result pointer" + ], + "mysqli_debug": [ + "void mysqli_debug(string debug)", + "" + ], + "mysqli_dump_debug_info": [ + "bool mysqli_dump_debug_info(object link)", + "" + ], + "mysqli_embedded_server_end": [ + "void mysqli_embedded_server_end(void)", + "" + ], + "mysqli_embedded_server_start": [ + "bool mysqli_embedded_server_start(bool start, array arguments, array groups)", + "initialize and start embedded server" + ], + "mysqli_errno": [ + "int mysqli_errno(object link)", + "Returns the numerical value of the error message from previous MySQL operation" + ], + "mysqli_error": [ + "string mysqli_error(object link)", + "Returns the text of the error message from previous MySQL operation" + ], + "mysqli_fetch_all": [ + "mixed mysqli_fetch_all (object result [,int resulttype])", + "Fetches all result rows as an associative array, a numeric array, or both" + ], + "mysqli_fetch_array": [ + "mixed mysqli_fetch_array (object result [,int resulttype])", + "Fetch a result row as an associative array, a numeric array, or both" + ], + "mysqli_fetch_assoc": [ + "mixed mysqli_fetch_assoc (object result)", + "Fetch a result row as an associative array" + ], + "mysqli_fetch_field": [ + "mixed mysqli_fetch_field (object result)", + "Get column information from a result and return as an object" + ], + "mysqli_fetch_field_direct": [ + "mixed mysqli_fetch_field_direct (object result, int offset)", + "Fetch meta-data for a single field" + ], + "mysqli_fetch_fields": [ + "mixed mysqli_fetch_fields (object result)", + "Return array of objects containing field meta-data" + ], + "mysqli_fetch_lengths": [ + "mixed mysqli_fetch_lengths (object result)", + "Get the length of each output in a result" + ], + "mysqli_fetch_object": [ + "mixed mysqli_fetch_object (object result [, string class_name [, NULL|array ctor_params]])", + "Fetch a result row as an object" + ], + "mysqli_fetch_row": [ + "array mysqli_fetch_row (object result)", + "Get a result row as an enumerated array" + ], + "mysqli_field_count": [ + "int mysqli_field_count(object link)", + "Fetch the number of fields returned by the last query for the given link" + ], + "mysqli_field_seek": [ + "int mysqli_field_seek(object result, int fieldnr)", + "Set result pointer to a specified field offset" + ], + "mysqli_field_tell": [ + "int mysqli_field_tell(object result)", + "Get current field offset of result pointer" + ], + "mysqli_free_result": [ + "void mysqli_free_result(object result)", + "Free query result memory for the given result handle" + ], + "mysqli_get_charset": [ + "object mysqli_get_charset(object link)", + "returns a character set object" + ], + "mysqli_get_client_info": [ + "string mysqli_get_client_info(void)", + "Get MySQL client info" + ], + "mysqli_get_client_stats": [ + "array mysqli_get_client_stats(void)", + "Returns statistics about the zval cache" + ], + "mysqli_get_client_version": [ + "int mysqli_get_client_version(void)", + "Get MySQL client info" + ], + "mysqli_get_connection_stats": [ + "array mysqli_get_connection_stats(void)", + "Returns statistics about the zval cache" + ], + "mysqli_get_host_info": [ + "string mysqli_get_host_info (object link)", + "Get MySQL host info" + ], + "mysqli_get_proto_info": [ + "int mysqli_get_proto_info(object link)", + "Get MySQL protocol information" + ], + "mysqli_get_server_info": [ + "string mysqli_get_server_info(object link)", + "Get MySQL server info" + ], + "mysqli_get_server_version": [ + "int mysqli_get_server_version(object link)", + "Return the MySQL version for the server referenced by the given link" + ], + "mysqli_get_warnings": [ + "object mysqli_get_warnings(object link) */", + "PHP_FUNCTION(mysqli_get_warnings) { MY_MYSQL *mysql; zval *mysql_link; MYSQLI_RESOURCE *mysqli_resource; MYSQLI_WARNING *w; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &mysql_link, mysqli_link_class_entry) == FAILURE) { return; } MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID); if (mysql_warning_count(mysql->mysql)) { w = php_get_warnings(mysql->mysql TSRMLS_CC); } else { RETURN_FALSE; } mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = mysqli_resource->info = (void *)w; mysqli_resource->status = MYSQLI_STATUS_VALID; MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}" + ], + "mysqli_info": [ + "string mysqli_info(object link)", + "Get information about the most recent query" + ], + "mysqli_init": [ + "resource mysqli_init(void)", + "Initialize mysqli and return a resource for use with mysql_real_connect" + ], + "mysqli_insert_id": [ + "mixed mysqli_insert_id(object link)", + "Get the ID generated from the previous INSERT operation" + ], + "mysqli_kill": [ + "bool mysqli_kill(object link, int processid)", + "Kill a mysql process on the server" + ], + "mysqli_link_construct": [ + "object mysqli_link_construct()", + "" + ], + "mysqli_more_results": [ + "bool mysqli_more_results(object link)", + "check if there any more query results from a multi query" + ], + "mysqli_multi_query": [ + "bool mysqli_multi_query(object link, string query)", + "allows to execute multiple queries" + ], + "mysqli_next_result": [ + "bool mysqli_next_result(object link)", + "read next result from multi_query" + ], + "mysqli_num_fields": [ + "int mysqli_num_fields(object result)", + "Get number of fields in result" + ], + "mysqli_num_rows": [ + "mixed mysqli_num_rows(object result)", + "Get number of rows in result" + ], + "mysqli_options": [ + "bool mysqli_options(object link, int flags, mixed values)", + "Set options" + ], + "mysqli_ping": [ + "bool mysqli_ping(object link)", + "Ping a server connection or reconnect if there is no connection" + ], + "mysqli_poll": [ + "int mysqli_poll(array read, array write, array error, long sec [, long usec])", + "Poll connections" + ], + "mysqli_prepare": [ + "mixed mysqli_prepare(object link, string query)", + "Prepare a SQL statement for execution" + ], + "mysqli_query": [ + "mixed mysqli_query(object link, string query [,int resultmode]) */", + "PHP_FUNCTION(mysqli_query) { MY_MYSQL *mysql; zval *mysql_link; MYSQLI_RESOURCE *mysqli_resource; MYSQL_RES *result; char *query = NULL; unsigned int query_len; unsigned long resultmode = MYSQLI_STORE_RESULT; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"Os|l\", &mysql_link, mysqli_link_class_entry, &query, &query_len, &resultmode) == FAILURE) { return; } if (!query_len) { php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Empty query\"); RETURN_FALSE; } if ((resultmode & ~MYSQLI_ASYNC) != MYSQLI_USE_RESULT && (resultmode & ~MYSQLI_ASYNC) != MYSQLI_STORE_RESULT) { php_error_docref(NULL TSRMLS_CC, E_WARNING, \"Invalid value for resultmode\"); RETURN_FALSE; } MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, \"mysqli_link\", MYSQLI_STATUS_VALID); MYSQLI_DISABLE_MQ; #ifdef MYSQLI_USE_MYSQLND if (resultmode & MYSQLI_ASYNC) { if (mysqli_async_query(mysql->mysql, query, query_len)) { MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql); RETURN_FALSE; } mysql->async_result_fetch_type = resultmode & ~MYSQLI_ASYNC; RETURN_TRUE; } #endif if (mysql_real_query(mysql->mysql, query, query_len)) { MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql); RETURN_FALSE; } if (!mysql_field_count(mysql->mysql)) { /* no result set - not a SELECT" + ], + "mysqli_real_connect": [ + "bool mysqli_real_connect(object link [,string hostname [,string username [,string passwd [,string dbname [,int port [,string socket [,int flags]]]]]]])", + "Open a connection to a mysql server" + ], + "mysqli_real_escape_string": [ + "string mysqli_real_escape_string(object link, string escapestr)", + "Escapes special characters in a string for use in a SQL statement, taking into account the current charset of the connection" + ], + "mysqli_real_query": [ + "bool mysqli_real_query(object link, string query)", + "Binary-safe version of mysql_query()" + ], + "mysqli_reap_async_query": [ + "int mysqli_reap_async_query(object link)", + "Poll connections" + ], + "mysqli_refresh": [ + "bool mysqli_refresh(object link, long options)", + "Flush tables or caches, or reset replication server information" + ], + "mysqli_report": [ + "bool mysqli_report(int flags)", + "sets report level" + ], + "mysqli_rollback": [ + "bool mysqli_rollback(object link)", + "Undo actions from current transaction" + ], + "mysqli_select_db": [ + "bool mysqli_select_db(object link, string dbname)", + "Select a MySQL database" + ], + "mysqli_set_charset": [ + "bool mysqli_set_charset(object link, string csname)", + "sets client character set" + ], + "mysqli_set_local_infile_default": [ + "void mysqli_set_local_infile_default(object link)", + "unsets user defined handler for load local infile command" + ], + "mysqli_set_local_infile_handler": [ + "bool mysqli_set_local_infile_handler(object link, callback read_func)", + "Set callback functions for LOAD DATA LOCAL INFILE" + ], + "mysqli_sqlstate": [ + "string mysqli_sqlstate(object link)", + "Returns the SQLSTATE error from previous MySQL operation" + ], + "mysqli_ssl_set": [ + "bool mysqli_ssl_set(object link ,string key ,string cert ,string ca ,string capath ,string cipher])", + "" + ], + "mysqli_stat": [ + "mixed mysqli_stat(object link)", + "Get current system status" + ], + "mysqli_stmt_affected_rows": [ + "mixed mysqli_stmt_affected_rows(object stmt)", + "Return the number of rows affected in the last query for the given link" + ], + "mysqli_stmt_attr_get": [ + "int mysqli_stmt_attr_get(object stmt, long attr)", + "" + ], + "mysqli_stmt_attr_set": [ + "int mysqli_stmt_attr_set(object stmt, long attr, long mode)", + "" + ], + "mysqli_stmt_bind_param": [ + "bool mysqli_stmt_bind_param(object stmt, string types, mixed variable [,mixed,....])", + "Bind variables to a prepared statement as parameters" + ], + "mysqli_stmt_bind_result": [ + "bool mysqli_stmt_bind_result(object stmt, mixed var, [,mixed, ...])", + "Bind variables to a prepared statement for result storage" + ], + "mysqli_stmt_close": [ + "bool mysqli_stmt_close(object stmt)", + "Close statement" + ], + "mysqli_stmt_data_seek": [ + "void mysqli_stmt_data_seek(object stmt, int offset)", + "Move internal result pointer" + ], + "mysqli_stmt_errno": [ + "int mysqli_stmt_errno(object stmt)", + "" + ], + "mysqli_stmt_error": [ + "string mysqli_stmt_error(object stmt)", + "" + ], + "mysqli_stmt_execute": [ + "bool mysqli_stmt_execute(object stmt)", + "Execute a prepared statement" + ], + "mysqli_stmt_fetch": [ + "mixed mysqli_stmt_fetch(object stmt)", + "Fetch results from a prepared statement into the bound variables" + ], + "mysqli_stmt_field_count": [ + "int mysqli_stmt_field_count(object stmt) {", + "Return the number of result columns for the given statement" + ], + "mysqli_stmt_free_result": [ + "void mysqli_stmt_free_result(object stmt)", + "Free stored result memory for the given statement handle" + ], + "mysqli_stmt_get_result": [ + "object mysqli_stmt_get_result(object link)", + "Buffer result set on client" + ], + "mysqli_stmt_get_warnings": [ + "object mysqli_stmt_get_warnings(object link) */", + "PHP_FUNCTION(mysqli_stmt_get_warnings) { MY_STMT *stmt; zval *stmt_link; MYSQLI_RESOURCE *mysqli_resource; MYSQLI_WARNING *w; if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), \"O\", &stmt_link, mysqli_stmt_class_entry) == FAILURE) { return; } MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, \"mysqli_stmt\", MYSQLI_STATUS_VALID); if (mysqli_stmt_warning_count(stmt->stmt)) { w = php_get_warnings(mysqli_stmt_get_connection(stmt->stmt) TSRMLS_CC); } else { RETURN_FALSE; } mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE)); mysqli_resource->ptr = mysqli_resource->info = (void *)w; mysqli_resource->status = MYSQLI_STATUS_VALID; MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry); } /* }}}" + ], + "mysqli_stmt_init": [ + "mixed mysqli_stmt_init(object link)", + "Initialize statement object" + ], + "mysqli_stmt_insert_id": [ + "mixed mysqli_stmt_insert_id(object stmt)", + "Get the ID generated from the previous INSERT operation" + ], + "mysqli_stmt_next_result": [ + "bool mysqli_stmt_next_result(object link)", + "read next result from multi_query" + ], + "mysqli_stmt_num_rows": [ + "mixed mysqli_stmt_num_rows(object stmt)", + "Return the number of rows in statements result set" + ], + "mysqli_stmt_param_count": [ + "int mysqli_stmt_param_count(object stmt)", + "Return the number of parameter for the given statement" + ], + "mysqli_stmt_prepare": [ + "bool mysqli_stmt_prepare(object stmt, string query)", + "prepare server side statement with query" + ], + "mysqli_stmt_reset": [ + "bool mysqli_stmt_reset(object stmt)", + "reset a prepared statement" + ], + "mysqli_stmt_result_metadata": [ + "mixed mysqli_stmt_result_metadata(object stmt)", + "return result set from statement" + ], + "mysqli_stmt_send_long_data": [ + "bool mysqli_stmt_send_long_data(object stmt, int param_nr, string data)", + "" + ], + "mysqli_stmt_sqlstate": [ + "string mysqli_stmt_sqlstate(object stmt)", + "" + ], + "mysqli_stmt_store_result": [ + "bool mysqli_stmt_store_result(stmt)", + "" + ], + "mysqli_store_result": [ + "object mysqli_store_result(object link)", + "Buffer result set on client" + ], + "mysqli_thread_id": [ + "int mysqli_thread_id(object link)", + "Return the current thread ID" + ], + "mysqli_thread_safe": [ + "bool mysqli_thread_safe(void)", + "Return whether thread safety is given or not" + ], + "mysqli_use_result": [ + "mixed mysqli_use_result(object link)", + "Directly retrieve query results - do not buffer results on client side" + ], + "mysqli_warning_count": [ + "int mysqli_warning_count (object link)", + "Return number of warnings from the last query for the given link" + ], + "natcasesort": [ + "void natcasesort(array &array_arg)", + "Sort an array using case-insensitive natural sort" + ], + "natsort": [ + "void natsort(array &array_arg)", + "Sort an array using natural sort" + ], + "next": [ + "mixed next(array array_arg)", + "Move array argument's internal pointer to the next element and return it" + ], + "ngettext": [ + "string ngettext(string MSGID1, string MSGID2, int N)", + "Plural version of gettext()" + ], + "nl2br": [ + "string nl2br(string str [, bool is_xhtml])", + "Converts newlines to HTML line breaks" + ], + "nl_langinfo": [ + "string nl_langinfo(int item)", + "Query language and locale information" + ], + "normalizer_is_normalize": [ + "bool normalizer_is_normalize( string $input [, string $form = FORM_C] )", + "* Test if a string is in a given normalization form." + ], + "normalizer_normalize": [ + "string normalizer_normalize( string $input [, string $form = FORM_C] )", + "* Normalize a string." + ], + "nsapi_request_headers": [ + "array nsapi_request_headers(void)", + "Get all headers from the request" + ], + "nsapi_response_headers": [ + "array nsapi_response_headers(void)", + "Get all headers from the response" + ], + "nsapi_virtual": [ + "bool nsapi_virtual(string uri)", + "Perform an NSAPI sub-request" + ], + "number_format": [ + "string number_format(float number [, int num_decimal_places [, string dec_seperator, string thousands_seperator]])", + "Formats a number with grouped thousands" + ], + "numfmt_create": [ + "NumberFormatter numfmt_create( string $locale, int style[, string $pattern ] )", + "* Create number formatter." + ], + "numfmt_format": [ + "mixed numfmt_format( NumberFormatter $nf, mixed $num[, int type] )", + "* Format a number." + ], + "numfmt_format_currency": [ + "mixed numfmt_format_currency( NumberFormatter $nf, double $num, string $currency )", + "* Format a number as currency." + ], + "numfmt_get_attribute": [ + "mixed numfmt_get_attribute( NumberFormatter $nf, int $attr )", + "* Get formatter attribute value." + ], + "numfmt_get_error_code": [ + "int numfmt_get_error_code( NumberFormatter $nf )", + "* Get formatter's last error code." + ], + "numfmt_get_error_message": [ + "string numfmt_get_error_message( NumberFormatter $nf )", + "* Get text description for formatter's last error code." + ], + "numfmt_get_locale": [ + "string numfmt_get_locale( NumberFormatter $nf[, int type] )", + "* Get formatter locale." + ], + "numfmt_get_pattern": [ + "string numfmt_get_pattern( NumberFormatter $nf )", + "* Get formatter pattern." + ], + "numfmt_get_symbol": [ + "string numfmt_get_symbol( NumberFormatter $nf, int $attr )", + "* Get formatter symbol value." + ], + "numfmt_get_text_attribute": [ + "string numfmt_get_text_attribute( NumberFormatter $nf, int $attr )", + "* Get formatter attribute value." + ], + "numfmt_parse": [ + "mixed numfmt_parse( NumberFormatter $nf, string $str[, int $type, int &$position ])", + "* Parse a number." + ], + "numfmt_parse_currency": [ + "double numfmt_parse_currency( NumberFormatter $nf, string $str, string $¤cy[, int $&position] )", + "* Parse a number as currency." + ], + "numfmt_parse_message": [ + "array numfmt_parse_message( string $locale, string $pattern, string $source )", + "* Parse a message." + ], + "numfmt_set_attribute": [ + "bool numfmt_set_attribute( NumberFormatter $nf, int $attr, mixed $value )", + "* Get formatter attribute value." + ], + "numfmt_set_pattern": [ + "bool numfmt_set_pattern( NumberFormatter $nf, string $pattern )", + "* Set formatter pattern." + ], + "numfmt_set_symbol": [ + "bool numfmt_set_symbol( NumberFormatter $nf, int $attr, string $symbol )", + "* Set formatter symbol value." + ], + "numfmt_set_text_attribute": [ + "bool numfmt_set_text_attribute( NumberFormatter $nf, int $attr, string $value )", + "* Get formatter attribute value." + ], + "ob_clean": [ + "bool ob_clean(void)", + "Clean (delete) the current output buffer" + ], + "ob_end_clean": [ + "bool ob_end_clean(void)", + "Clean the output buffer, and delete current output buffer" + ], + "ob_end_flush": [ + "bool ob_end_flush(void)", + "Flush (send) the output buffer, and delete current output buffer" + ], + "ob_flush": [ + "bool ob_flush(void)", + "Flush (send) contents of the output buffer. The last buffer content is sent to next buffer" + ], + "ob_get_clean": [ + "bool ob_get_clean(void)", + "Get current buffer contents and delete current output buffer" + ], + "ob_get_contents": [ + "string ob_get_contents(void)", + "Return the contents of the output buffer" + ], + "ob_get_flush": [ + "bool ob_get_flush(void)", + "Get current buffer contents, flush (send) the output buffer, and delete current output buffer" + ], + "ob_get_length": [ + "int ob_get_length(void)", + "Return the length of the output buffer" + ], + "ob_get_level": [ + "int ob_get_level(void)", + "Return the nesting level of the output buffer" + ], + "ob_get_status": [ + "false|array ob_get_status([bool full_status])", + "Return the status of the active or all output buffers" + ], + "ob_gzhandler": [ + "string ob_gzhandler(string str, int mode)", + "Encode str based on accept-encoding setting - designed to be called from ob_start()" + ], + "ob_iconv_handler": [ + "string ob_iconv_handler(string contents, int status)", + "Returns str in output buffer converted to the iconv.output_encoding character set" + ], + "ob_implicit_flush": [ + "void ob_implicit_flush([int flag])", + "Turn implicit flush on/off and is equivalent to calling flush() after every output call" + ], + "ob_list_handlers": [ + "false|array ob_list_handlers()", + "* List all output_buffers in an array" + ], + "ob_start": [ + "bool ob_start([ string|array user_function [, int chunk_size [, bool erase]]])", + "Turn on Output Buffering (specifying an optional output handler)." + ], + "oci_bind_array_by_name": [ + "bool oci_bind_array_by_name(resource stmt, string name, array &var, int max_table_length [, int max_item_length [, int type ]])", + "Bind a PHP array to an Oracle PL/SQL type by name" + ], + "oci_bind_by_name": [ + "bool oci_bind_by_name(resource stmt, string name, mixed &var, [, int maxlength [, int type]])", + "Bind a PHP variable to an Oracle placeholder by name" + ], + "oci_cancel": [ + "bool oci_cancel(resource stmt)", + "Cancel reading from a cursor" + ], + "oci_close": [ + "bool oci_close(resource connection)", + "Disconnect from database" + ], + "oci_collection_append": [ + "bool oci_collection_append(string value)", + "Append an object to the collection" + ], + "oci_collection_assign": [ + "bool oci_collection_assign(object from)", + "Assign a collection from another existing collection" + ], + "oci_collection_element_assign": [ + "bool oci_collection_element_assign(int index, string val)", + "Assign element val to collection at index ndx" + ], + "oci_collection_element_get": [ + "string oci_collection_element_get(int ndx)", + "Retrieve the value at collection index ndx" + ], + "oci_collection_max": [ + "int oci_collection_max()", + "Return the max value of a collection. For a varray this is the maximum length of the array" + ], + "oci_collection_size": [ + "int oci_collection_size()", + "Return the size of a collection" + ], + "oci_collection_trim": [ + "bool oci_collection_trim(int num)", + "Trim num elements from the end of a collection" + ], + "oci_commit": [ + "bool oci_commit(resource connection)", + "Commit the current context" + ], + "oci_connect": [ + "resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])", + "Connect to an Oracle database and log on. Returns a new session." + ], + "oci_define_by_name": [ + "bool oci_define_by_name(resource stmt, string name, mixed &var [, int type])", + "Define a PHP variable to an Oracle column by name" + ], + "oci_error": [ + "array oci_error([resource stmt|connection|global])", + "Return the last error of stmt|connection|global. If no error happened returns false." + ], + "oci_execute": [ + "bool oci_execute(resource stmt [, int mode])", + "Execute a parsed statement" + ], + "oci_fetch": [ + "bool oci_fetch(resource stmt)", + "Prepare a new row of data for reading" + ], + "oci_fetch_all": [ + "int oci_fetch_all(resource stmt, array &output[, int skip[, int maxrows[, int flags]]])", + "Fetch all rows of result data into an array" + ], + "oci_fetch_array": [ + "array oci_fetch_array( resource stmt [, int mode ])", + "Fetch a result row as an array" + ], + "oci_fetch_assoc": [ + "array oci_fetch_assoc( resource stmt )", + "Fetch a result row as an associative array" + ], + "oci_fetch_object": [ + "object oci_fetch_object( resource stmt )", + "Fetch a result row as an object" + ], + "oci_fetch_row": [ + "array oci_fetch_row( resource stmt )", + "Fetch a result row as an enumerated array" + ], + "oci_field_is_null": [ + "bool oci_field_is_null(resource stmt, int col)", + "Tell whether a column is NULL" + ], + "oci_field_name": [ + "string oci_field_name(resource stmt, int col)", + "Tell the name of a column" + ], + "oci_field_precision": [ + "int oci_field_precision(resource stmt, int col)", + "Tell the precision of a column" + ], + "oci_field_scale": [ + "int oci_field_scale(resource stmt, int col)", + "Tell the scale of a column" + ], + "oci_field_size": [ + "int oci_field_size(resource stmt, int col)", + "Tell the maximum data size of a column" + ], + "oci_field_type": [ + "mixed oci_field_type(resource stmt, int col)", + "Tell the data type of a column" + ], + "oci_field_type_raw": [ + "int oci_field_type_raw(resource stmt, int col)", + "Tell the raw oracle data type of a column" + ], + "oci_free_collection": [ + "bool oci_free_collection()", + "Deletes collection object" + ], + "oci_free_descriptor": [ + "bool oci_free_descriptor()", + "Deletes large object description" + ], + "oci_free_statement": [ + "bool oci_free_statement(resource stmt)", + "Free all resources associated with a statement" + ], + "oci_internal_debug": [ + "void oci_internal_debug(int onoff)", + "Toggle internal debugging output for the OCI extension" + ], + "oci_lob_append": [ + "bool oci_lob_append( object lob )", + "Appends data from a LOB to another LOB" + ], + "oci_lob_close": [ + "bool oci_lob_close()", + "Closes lob descriptor" + ], + "oci_lob_copy": [ + "bool oci_lob_copy( object lob_to, object lob_from [, int length ] )", + "Copies data from a LOB to another LOB" + ], + "oci_lob_eof": [ + "bool oci_lob_eof()", + "Checks if EOF is reached" + ], + "oci_lob_erase": [ + "int oci_lob_erase( [ int offset [, int length ] ] )", + "Erases a specified portion of the internal LOB, starting at a specified offset" + ], + "oci_lob_export": [ + "bool oci_lob_export([string filename [, int start [, int length]]])", + "Writes a large object into a file" + ], + "oci_lob_flush": [ + "bool oci_lob_flush( [ int flag ] )", + "Flushes the LOB buffer" + ], + "oci_lob_import": [ + "bool oci_lob_import( string filename )", + "Loads file into a LOB" + ], + "oci_lob_is_equal": [ + "bool oci_lob_is_equal( object lob1, object lob2 )", + "Tests to see if two LOB/FILE locators are equal" + ], + "oci_lob_load": [ + "string oci_lob_load()", + "Loads a large object" + ], + "oci_lob_read": [ + "string oci_lob_read( int length )", + "Reads particular part of a large object" + ], + "oci_lob_rewind": [ + "bool oci_lob_rewind()", + "Rewind pointer of a LOB" + ], + "oci_lob_save": [ + "bool oci_lob_save( string data [, int offset ])", + "Saves a large object" + ], + "oci_lob_seek": [ + "bool oci_lob_seek( int offset [, int whence ])", + "Moves the pointer of a LOB" + ], + "oci_lob_size": [ + "int oci_lob_size()", + "Returns size of a large object" + ], + "oci_lob_tell": [ + "int oci_lob_tell()", + "Tells LOB pointer position" + ], + "oci_lob_truncate": [ + "bool oci_lob_truncate( [ int length ])", + "Truncates a LOB" + ], + "oci_lob_write": [ + "int oci_lob_write( string string [, int length ])", + "Writes data to current position of a LOB" + ], + "oci_lob_write_temporary": [ + "bool oci_lob_write_temporary(string var [, int lob_type])", + "Writes temporary blob" + ], + "oci_new_collection": [ + "object oci_new_collection(resource connection, string tdo [, string schema])", + "Initialize a new collection" + ], + "oci_new_connect": [ + "resource oci_new_connect(string user, string pass [, string db])", + "Connect to an Oracle database and log on. Returns a new session." + ], + "oci_new_cursor": [ + "resource oci_new_cursor(resource connection)", + "Return a new cursor (Statement-Handle) - use this to bind ref-cursors!" + ], + "oci_new_descriptor": [ + "object oci_new_descriptor(resource connection [, int type])", + "Initialize a new empty descriptor LOB/FILE (LOB is default)" + ], + "oci_num_fields": [ + "int oci_num_fields(resource stmt)", + "Return the number of result columns in a statement" + ], + "oci_num_rows": [ + "int oci_num_rows(resource stmt)", + "Return the row count of an OCI statement" + ], + "oci_parse": [ + "resource oci_parse(resource connection, string query)", + "Parse a query and return a statement" + ], + "oci_password_change": [ + "bool oci_password_change(resource connection, string username, string old_password, string new_password)", + "Changes the password of an account" + ], + "oci_pconnect": [ + "resource oci_pconnect(string user, string pass [, string db [, string charset ]])", + "Connect to an Oracle database using a persistent connection and log on. Returns a new session." + ], + "oci_result": [ + "string oci_result(resource stmt, mixed column)", + "Return a single column of result data" + ], + "oci_rollback": [ + "bool oci_rollback(resource connection)", + "Rollback the current context" + ], + "oci_server_version": [ + "string oci_server_version(resource connection)", + "Return a string containing server version information" + ], + "oci_set_action": [ + "bool oci_set_action(resource connection, string value)", + "Sets the action attribute on the connection" + ], + "oci_set_client_identifier": [ + "bool oci_set_client_identifier(resource connection, string value)", + "Sets the client identifier attribute on the connection" + ], + "oci_set_client_info": [ + "bool oci_set_client_info(resource connection, string value)", + "Sets the client info attribute on the connection" + ], + "oci_set_edition": [ + "bool oci_set_edition(string value)", + "Sets the edition attribute for all subsequent connections created" + ], + "oci_set_module_name": [ + "bool oci_set_module_name(resource connection, string value)", + "Sets the module attribute on the connection" + ], + "oci_set_prefetch": [ + "bool oci_set_prefetch(resource stmt, int prefetch_rows)", + "Sets the number of rows to be prefetched on execute to prefetch_rows for stmt" + ], + "oci_statement_type": [ + "string oci_statement_type(resource stmt)", + "Return the query type of an OCI statement" + ], + "ocifetchinto": [ + "int ocifetchinto(resource stmt, array &output [, int mode])", + "Fetch a row of result data into an array" + ], + "ocigetbufferinglob": [ + "bool ocigetbufferinglob()", + "Returns current state of buffering for a LOB" + ], + "ocisetbufferinglob": [ + "bool ocisetbufferinglob( boolean flag )", + "Enables/disables buffering for a LOB" + ], + "octdec": [ + "int octdec(string octal_number)", + "Returns the decimal equivalent of an octal string" + ], + "odbc_autocommit": [ + "mixed odbc_autocommit(resource connection_id [, int OnOff])", + "Toggle autocommit mode or get status" + ], + "odbc_binmode": [ + "bool odbc_binmode(int result_id, int mode)", + "Handle binary column data" + ], + "odbc_close": [ + "void odbc_close(resource connection_id)", + "Close an ODBC connection" + ], + "odbc_close_all": [ + "void odbc_close_all(void)", + "Close all ODBC connections" + ], + "odbc_columnprivileges": [ + "resource odbc_columnprivileges(resource connection_id, string catalog, string schema, string table, string column)", + "Returns a result identifier that can be used to fetch a list of columns and associated privileges for the specified table" + ], + "odbc_columns": [ + "resource odbc_columns(resource connection_id [, string qualifier [, string owner [, string table_name [, string column_name]]]])", + "Returns a result identifier that can be used to fetch a list of column names in specified tables" + ], + "odbc_commit": [ + "bool odbc_commit(resource connection_id)", + "Commit an ODBC transaction" + ], + "odbc_connect": [ + "resource odbc_connect(string DSN, string user, string password [, int cursor_option])", + "Connect to a datasource" + ], + "odbc_cursor": [ + "string odbc_cursor(resource result_id)", + "Get cursor name" + ], + "odbc_data_source": [ + "array odbc_data_source(resource connection_id, int fetch_type)", + "Return information about the currently connected data source" + ], + "odbc_error": [ + "string odbc_error([resource connection_id])", + "Get the last error code" + ], + "odbc_errormsg": [ + "string odbc_errormsg([resource connection_id])", + "Get the last error message" + ], + "odbc_exec": [ + "resource odbc_exec(resource connection_id, string query [, int flags])", + "Prepare and execute an SQL statement" + ], + "odbc_execute": [ + "bool odbc_execute(resource result_id [, array parameters_array])", + "Execute a prepared statement" + ], + "odbc_fetch_array": [ + "array odbc_fetch_array(int result [, int rownumber])", + "Fetch a result row as an associative array" + ], + "odbc_fetch_into": [ + "int odbc_fetch_into(resource result_id, array &result_array, [, int rownumber])", + "Fetch one result row into an array" + ], + "odbc_fetch_object": [ + "object odbc_fetch_object(int result [, int rownumber])", + "Fetch a result row as an object" + ], + "odbc_fetch_row": [ + "bool odbc_fetch_row(resource result_id [, int row_number])", + "Fetch a row" + ], + "odbc_field_len": [ + "int odbc_field_len(resource result_id, int field_number)", + "Get the length (precision) of a column" + ], + "odbc_field_name": [ + "string odbc_field_name(resource result_id, int field_number)", + "Get a column name" + ], + "odbc_field_num": [ + "int odbc_field_num(resource result_id, string field_name)", + "Return column number" + ], + "odbc_field_scale": [ + "int odbc_field_scale(resource result_id, int field_number)", + "Get the scale of a column" + ], + "odbc_field_type": [ + "string odbc_field_type(resource result_id, int field_number)", + "Get the datatype of a column" + ], + "odbc_foreignkeys": [ + "resource odbc_foreignkeys(resource connection_id, string pk_qualifier, string pk_owner, string pk_table, string fk_qualifier, string fk_owner, string fk_table)", + "Returns a result identifier to either a list of foreign keys in the specified table or a list of foreign keys in other tables that refer to the primary key in the specified table" + ], + "odbc_free_result": [ + "bool odbc_free_result(resource result_id)", + "Free resources associated with a result" + ], + "odbc_gettypeinfo": [ + "resource odbc_gettypeinfo(resource connection_id [, int data_type])", + "Returns a result identifier containing information about data types supported by the data source" + ], + "odbc_longreadlen": [ + "bool odbc_longreadlen(int result_id, int length)", + "Handle LONG columns" + ], + "odbc_next_result": [ + "bool odbc_next_result(resource result_id)", + "Checks if multiple results are avaiable" + ], + "odbc_num_fields": [ + "int odbc_num_fields(resource result_id)", + "Get number of columns in a result" + ], + "odbc_num_rows": [ + "int odbc_num_rows(resource result_id)", + "Get number of rows in a result" + ], + "odbc_pconnect": [ + "resource odbc_pconnect(string DSN, string user, string password [, int cursor_option])", + "Establish a persistent connection to a datasource" + ], + "odbc_prepare": [ + "resource odbc_prepare(resource connection_id, string query)", + "Prepares a statement for execution" + ], + "odbc_primarykeys": [ + "resource odbc_primarykeys(resource connection_id, string qualifier, string owner, string table)", + "Returns a result identifier listing the column names that comprise the primary key for a table" + ], + "odbc_procedurecolumns": [ + "resource odbc_procedurecolumns(resource connection_id [, string qualifier, string owner, string proc, string column])", + "Returns a result identifier containing the list of input and output parameters, as well as the columns that make up the result set for the specified procedures" + ], + "odbc_procedures": [ + "resource odbc_procedures(resource connection_id [, string qualifier, string owner, string name])", + "Returns a result identifier containg the list of procedure names in a datasource" + ], + "odbc_result": [ + "mixed odbc_result(resource result_id, mixed field)", + "Get result data" + ], + "odbc_result_all": [ + "int odbc_result_all(resource result_id [, string format])", + "Print result as HTML table" + ], + "odbc_rollback": [ + "bool odbc_rollback(resource connection_id)", + "Rollback a transaction" + ], + "odbc_setoption": [ + "bool odbc_setoption(resource conn_id|result_id, int which, int option, int value)", + "Sets connection or statement options" + ], + "odbc_specialcolumns": [ + "resource odbc_specialcolumns(resource connection_id, int type, string qualifier, string owner, string table, int scope, int nullable)", + "Returns a result identifier containing either the optimal set of columns that uniquely identifies a row in the table or columns that are automatically updated when any value in the row is updated by a transaction" + ], + "odbc_statistics": [ + "resource odbc_statistics(resource connection_id, string qualifier, string owner, string name, int unique, int accuracy)", + "Returns a result identifier that contains statistics about a single table and the indexes associated with the table" + ], + "odbc_tableprivileges": [ + "resource odbc_tableprivileges(resource connection_id, string qualifier, string owner, string name)", + "Returns a result identifier containing a list of tables and the privileges associated with each table" + ], + "odbc_tables": [ + "resource odbc_tables(resource connection_id [, string qualifier [, string owner [, string name [, string table_types]]]])", + "Call the SQLTables function" + ], + "opendir": [ + "mixed opendir(string path[, resource context])", + "Open a directory and return a dir_handle" + ], + "openlog": [ + "bool openlog(string ident, int option, int facility)", + "Open connection to system logger" + ], + "openssl_csr_export": [ + "bool openssl_csr_export(resource csr, string &out [, bool notext=true])", + "Exports a CSR to file or a var" + ], + "openssl_csr_export_to_file": [ + "bool openssl_csr_export_to_file(resource csr, string outfilename [, bool notext=true])", + "Exports a CSR to file" + ], + "openssl_csr_get_public_key": [ + "mixed openssl_csr_get_public_key(mixed csr)", + "Returns the subject of a CERT or FALSE on error" + ], + "openssl_csr_get_subject": [ + "mixed openssl_csr_get_subject(mixed csr)", + "Returns the subject of a CERT or FALSE on error" + ], + "openssl_csr_new": [ + "bool openssl_csr_new(array dn, resource &privkey [, array configargs [, array extraattribs]])", + "Generates a privkey and CSR" + ], + "openssl_csr_sign": [ + "resource openssl_csr_sign(mixed csr, mixed x509, mixed priv_key, long days [, array config_args [, long serial]])", + "Signs a cert with another CERT" + ], + "openssl_decrypt": [ + "string openssl_decrypt(string data, string method, string password [, bool raw_input=false])", + "Takes raw or base64 encoded string and dectupt it using given method and key" + ], + "openssl_dh_compute_key": [ + "string openssl_dh_compute_key(string pub_key, resource dh_key)", + "Computes shared sicret for public value of remote DH key and local DH key" + ], + "openssl_digest": [ + "string openssl_digest(string data, string method [, bool raw_output=false])", + "Computes digest hash value for given data using given method, returns raw or binhex encoded string" + ], + "openssl_encrypt": [ + "string openssl_encrypt(string data, string method, string password [, bool raw_output=false])", + "Encrypts given data with given method and key, returns raw or base64 encoded string" + ], + "openssl_error_string": [ + "mixed openssl_error_string(void)", + "Returns a description of the last error, and alters the index of the error messages. Returns false when the are no more messages" + ], + "openssl_get_cipher_methods": [ + "array openssl_get_cipher_methods([bool aliases = false])", + "Return array of available cipher methods" + ], + "openssl_get_md_methods": [ + "array openssl_get_md_methods([bool aliases = false])", + "Return array of available digest methods" + ], + "openssl_open": [ + "bool openssl_open(string data, &string opendata, string ekey, mixed privkey)", + "Opens data" + ], + "openssl_pkcs12_export": [ + "bool openssl_pkcs12_export(mixed x509, string &out, mixed priv_key, string pass[, array args])", + "Creates and exports a PKCS12 to a var" + ], + "openssl_pkcs12_export_to_file": [ + "bool openssl_pkcs12_export_to_file(mixed x509, string filename, mixed priv_key, string pass[, array args])", + "Creates and exports a PKCS to file" + ], + "openssl_pkcs12_read": [ + "bool openssl_pkcs12_read(string PKCS12, array &certs, string pass)", + "Parses a PKCS12 to an array" + ], + "openssl_pkcs7_decrypt": [ + "bool openssl_pkcs7_decrypt(string infilename, string outfilename, mixed recipcert [, mixed recipkey])", + "Decrypts the S/MIME message in the file name infilename and output the results to the file name outfilename. recipcert is a CERT for one of the recipients. recipkey specifies the private key matching recipcert, if recipcert does not include the key" + ], + "openssl_pkcs7_encrypt": [ + "bool openssl_pkcs7_encrypt(string infile, string outfile, mixed recipcerts, array headers [, long flags [, long cipher]])", + "Encrypts the message in the file named infile with the certificates in recipcerts and output the result to the file named outfile" + ], + "openssl_pkcs7_sign": [ + "bool openssl_pkcs7_sign(string infile, string outfile, mixed signcert, mixed signkey, array headers [, long flags [, string extracertsfilename]])", + "Signs the MIME message in the file named infile with signcert/signkey and output the result to file name outfile. headers lists plain text headers to exclude from the signed portion of the message, and should include to, from and subject as a minimum" + ], + "openssl_pkcs7_verify": [ + "bool openssl_pkcs7_verify(string filename, long flags [, string signerscerts [, array cainfo [, string extracerts [, string content]]]])", + "Verifys that the data block is intact, the signer is who they say they are, and returns the CERTs of the signers" + ], + "openssl_pkey_export": [ + "bool openssl_pkey_export(mixed key, &mixed out [, string passphrase [, array config_args]])", + "Gets an exportable representation of a key into a string or file" + ], + "openssl_pkey_export_to_file": [ + "bool openssl_pkey_export_to_file(mixed key, string outfilename [, string passphrase, array config_args)", + "Gets an exportable representation of a key into a file" + ], + "openssl_pkey_free": [ + "void openssl_pkey_free(int key)", + "Frees a key" + ], + "openssl_pkey_get_details": [ + "resource openssl_pkey_get_details(resource key)", + "returns an array with the key details (bits, pkey, type)" + ], + "openssl_pkey_get_private": [ + "int openssl_pkey_get_private(string key [, string passphrase])", + "Gets private keys" + ], + "openssl_pkey_get_public": [ + "int openssl_pkey_get_public(mixed cert)", + "Gets public key from X.509 certificate" + ], + "openssl_pkey_new": [ + "resource openssl_pkey_new([array configargs])", + "Generates a new private key" + ], + "openssl_private_decrypt": [ + "bool openssl_private_decrypt(string data, string &decrypted, mixed key [, int padding])", + "Decrypts data with private key" + ], + "openssl_private_encrypt": [ + "bool openssl_private_encrypt(string data, string &crypted, mixed key [, int padding])", + "Encrypts data with private key" + ], + "openssl_public_decrypt": [ + "bool openssl_public_decrypt(string data, string &crypted, resource key [, int padding])", + "Decrypts data with public key" + ], + "openssl_public_encrypt": [ + "bool openssl_public_encrypt(string data, string &crypted, mixed key [, int padding])", + "Encrypts data with public key" + ], + "openssl_random_pseudo_bytes": [ + "string openssl_random_pseudo_bytes(integer length [, &bool returned_strong_result])", + "Returns a string of the length specified filled with random pseudo bytes" + ], + "openssl_seal": [ + "int openssl_seal(string data, &string sealdata, &array ekeys, array pubkeys)", + "Seals data" + ], + "openssl_sign": [ + "bool openssl_sign(string data, &string signature, mixed key[, mixed method])", + "Signs data" + ], + "openssl_verify": [ + "int openssl_verify(string data, string signature, mixed key[, mixed method])", + "Verifys data" + ], + "openssl_x509_check_private_key": [ + "bool openssl_x509_check_private_key(mixed cert, mixed key)", + "Checks if a private key corresponds to a CERT" + ], + "openssl_x509_checkpurpose": [ + "int openssl_x509_checkpurpose(mixed x509cert, int purpose, array cainfo [, string untrustedfile])", + "Checks the CERT to see if it can be used for the purpose in purpose. cainfo holds information about trusted CAs" + ], + "openssl_x509_export": [ + "bool openssl_x509_export(mixed x509, string &out [, bool notext = true])", + "Exports a CERT to file or a var" + ], + "openssl_x509_export_to_file": [ + "bool openssl_x509_export_to_file(mixed x509, string outfilename [, bool notext = true])", + "Exports a CERT to file or a var" + ], + "openssl_x509_free": [ + "void openssl_x509_free(resource x509)", + "Frees X.509 certificates" + ], + "openssl_x509_parse": [ + "array openssl_x509_parse(mixed x509 [, bool shortnames=true])", + "Returns an array of the fields/values of the CERT" + ], + "openssl_x509_read": [ + "resource openssl_x509_read(mixed cert)", + "Reads X.509 certificates" + ], + "ord": [ + "int ord(string character)", + "Returns ASCII value of character" + ], + "output_add_rewrite_var": [ + "bool output_add_rewrite_var(string name, string value)", + "Add URL rewriter values" + ], + "output_reset_rewrite_vars": [ + "bool output_reset_rewrite_vars(void)", + "Reset(clear) URL rewriter values" + ], + "pack": [ + "string pack(string format, mixed arg1 [, mixed arg2 [, mixed ...]])", + "Takes one or more arguments and packs them into a binary string according to the format argument" + ], + "parse_ini_file": [ + "array parse_ini_file(string filename [, bool process_sections [, int scanner_mode]])", + "Parse configuration file" + ], + "parse_ini_string": [ + "array parse_ini_string(string ini_string [, bool process_sections [, int scanner_mode]])", + "Parse configuration string" + ], + "parse_locale": [ + "static array parse_locale($locale)", + "* parses a locale-id into an array the different parts of it" + ], + "parse_str": [ + "void parse_str(string encoded_string [, array result])", + "Parses GET/POST/COOKIE data and sets global variables" + ], + "parse_url": [ + "mixed parse_url(string url, [int url_component])", + "Parse a URL and return its components" + ], + "passthru": [ + "void passthru(string command [, int &return_value])", + "Execute an external program and display raw output" + ], + "pathinfo": [ + "array pathinfo(string path[, int options])", + "Returns information about a certain string" + ], + "pclose": [ + "int pclose(resource fp)", + "Close a file pointer opened by popen()" + ], + "pcnlt_sigwaitinfo": [ + "int pcnlt_sigwaitinfo(array set[, array &siginfo])", + "Synchronously wait for queued signals" + ], + "pcntl_alarm": [ + "int pcntl_alarm(int seconds)", + "Set an alarm clock for delivery of a signal" + ], + "pcntl_exec": [ + "bool pcntl_exec(string path [, array args [, array envs]])", + "Executes specified program in current process space as defined by exec(2)" + ], + "pcntl_fork": [ + "int pcntl_fork(void)", + "Forks the currently running process following the same behavior as the UNIX fork() system call" + ], + "pcntl_getpriority": [ + "int pcntl_getpriority([int pid [, int process_identifier]])", + "Get the priority of any process" + ], + "pcntl_setpriority": [ + "bool pcntl_setpriority(int priority [, int pid [, int process_identifier]])", + "Change the priority of any process" + ], + "pcntl_signal": [ + "bool pcntl_signal(int signo, callback handle [, bool restart_syscalls])", + "Assigns a system signal handler to a PHP function" + ], + "pcntl_signal_dispatch": [ + "bool pcntl_signal_dispatch()", + "Dispatch signals to signal handlers" + ], + "pcntl_sigprocmask": [ + "bool pcntl_sigprocmask(int how, array set[, array &oldset])", + "Examine and change blocked signals" + ], + "pcntl_sigtimedwait": [ + "int pcntl_sigtimedwait(array set[, array &siginfo[, int seconds[, int nanoseconds]]])", + "Wait for queued signals" + ], + "pcntl_wait": [ + "int pcntl_wait(int &status)", + "Waits on or returns the status of a forked child as defined by the waitpid() system call" + ], + "pcntl_waitpid": [ + "int pcntl_waitpid(int pid, int &status, int options)", + "Waits on or returns the status of a forked child as defined by the waitpid() system call" + ], + "pcntl_wexitstatus": [ + "int pcntl_wexitstatus(int status)", + "Returns the status code of a child's exit" + ], + "pcntl_wifexited": [ + "bool pcntl_wifexited(int status)", + "Returns true if the child status code represents a successful exit" + ], + "pcntl_wifsignaled": [ + "bool pcntl_wifsignaled(int status)", + "Returns true if the child status code represents a process that was terminated due to a signal" + ], + "pcntl_wifstopped": [ + "bool pcntl_wifstopped(int status)", + "Returns true if the child status code represents a stopped process (WUNTRACED must have been used with waitpid)" + ], + "pcntl_wstopsig": [ + "int pcntl_wstopsig(int status)", + "Returns the number of the signal that caused the process to stop who's status code is passed" + ], + "pcntl_wtermsig": [ + "int pcntl_wtermsig(int status)", + "Returns the number of the signal that terminated the process who's status code is passed" + ], + "pdo_drivers": [ + "array pdo_drivers()", + "Return array of available PDO drivers" + ], + "pfsockopen": [ + "resource pfsockopen(string hostname, int port [, int errno [, string errstr [, float timeout]]])", + "Open persistent Internet or Unix domain socket connection" + ], + "pg_affected_rows": [ + "int pg_affected_rows(resource result)", + "Returns the number of affected tuples" + ], + "pg_cancel_query": [ + "bool pg_cancel_query(resource connection)", + "Cancel request" + ], + "pg_client_encoding": [ + "string pg_client_encoding([resource connection])", + "Get the current client encoding" + ], + "pg_close": [ + "bool pg_close([resource connection])", + "Close a PostgreSQL connection" + ], + "pg_connect": [ + "resource pg_connect(string connection_string[, int connect_type] | [string host, string port [, string options [, string tty,]]] string database)", + "Open a PostgreSQL connection" + ], + "pg_connection_busy": [ + "bool pg_connection_busy(resource connection)", + "Get connection is busy or not" + ], + "pg_connection_reset": [ + "bool pg_connection_reset(resource connection)", + "Reset connection (reconnect)" + ], + "pg_connection_status": [ + "int pg_connection_status(resource connnection)", + "Get connection status" + ], + "pg_convert": [ + "array pg_convert(resource db, string table, array values[, int options])", + "Check and convert values for PostgreSQL SQL statement" + ], + "pg_copy_from": [ + "bool pg_copy_from(resource connection, string table_name , array rows [, string delimiter [, string null_as]])", + "Copy table from array" + ], + "pg_copy_to": [ + "array pg_copy_to(resource connection, string table_name [, string delimiter [, string null_as]])", + "Copy table to array" + ], + "pg_dbname": [ + "string pg_dbname([resource connection])", + "Get the database name" + ], + "pg_delete": [ + "mixed pg_delete(resource db, string table, array ids[, int options])", + "Delete records has ids (id=>value)" + ], + "pg_end_copy": [ + "bool pg_end_copy([resource connection])", + "Sync with backend. Completes the Copy command" + ], + "pg_escape_bytea": [ + "string pg_escape_bytea([resource connection,] string data)", + "Escape binary for bytea type" + ], + "pg_escape_string": [ + "string pg_escape_string([resource connection,] string data)", + "Escape string for text/char type" + ], + "pg_execute": [ + "resource pg_execute([resource connection,] string stmtname, array params)", + "Execute a prepared query" + ], + "pg_fetch_all": [ + "array pg_fetch_all(resource result)", + "Fetch all rows into array" + ], + "pg_fetch_all_columns": [ + "array pg_fetch_all_columns(resource result [, int column_number])", + "Fetch all rows into array" + ], + "pg_fetch_array": [ + "array pg_fetch_array(resource result [, int row [, int result_type]])", + "Fetch a row as an array" + ], + "pg_fetch_assoc": [ + "array pg_fetch_assoc(resource result [, int row])", + "Fetch a row as an assoc array" + ], + "pg_fetch_object": [ + "object pg_fetch_object(resource result [, int row [, string class_name [, NULL|array ctor_params]]])", + "Fetch a row as an object" + ], + "pg_fetch_result": [ + "mixed pg_fetch_result(resource result, [int row_number,] mixed field_name)", + "Returns values from a result identifier" + ], + "pg_fetch_row": [ + "array pg_fetch_row(resource result [, int row [, int result_type]])", + "Get a row as an enumerated array" + ], + "pg_field_is_null": [ + "int pg_field_is_null(resource result, [int row,] mixed field_name_or_number)", + "Test if a field is NULL" + ], + "pg_field_name": [ + "string pg_field_name(resource result, int field_number)", + "Returns the name of the field" + ], + "pg_field_num": [ + "int pg_field_num(resource result, string field_name)", + "Returns the field number of the named field" + ], + "pg_field_prtlen": [ + "int pg_field_prtlen(resource result, [int row,] mixed field_name_or_number)", + "Returns the printed length" + ], + "pg_field_size": [ + "int pg_field_size(resource result, int field_number)", + "Returns the internal size of the field" + ], + "pg_field_table": [ + "mixed pg_field_table(resource result, int field_number[, bool oid_only])", + "Returns the name of the table field belongs to, or table's oid if oid_only is true" + ], + "pg_field_type": [ + "string pg_field_type(resource result, int field_number)", + "Returns the type name for the given field" + ], + "pg_field_type_oid": [ + "string pg_field_type_oid(resource result, int field_number)", + "Returns the type oid for the given field" + ], + "pg_free_result": [ + "bool pg_free_result(resource result)", + "Free result memory" + ], + "pg_get_notify": [ + "array pg_get_notify([resource connection[, result_type]])", + "Get asynchronous notification" + ], + "pg_get_pid": [ + "int pg_get_pid([resource connection)", + "Get backend(server) pid" + ], + "pg_get_result": [ + "resource pg_get_result(resource connection)", + "Get asynchronous query result" + ], + "pg_host": [ + "string pg_host([resource connection])", + "Returns the host name associated with the connection" + ], + "pg_insert": [ + "mixed pg_insert(resource db, string table, array values[, int options])", + "Insert values (filed=>value) to table" + ], + "pg_last_error": [ + "string pg_last_error([resource connection])", + "Get the error message string" + ], + "pg_last_notice": [ + "string pg_last_notice(resource connection)", + "Returns the last notice set by the backend" + ], + "pg_last_oid": [ + "string pg_last_oid(resource result)", + "Returns the last object identifier" + ], + "pg_lo_close": [ + "bool pg_lo_close(resource large_object)", + "Close a large object" + ], + "pg_lo_create": [ + "mixed pg_lo_create([resource connection],[mixed large_object_oid])", + "Create a large object" + ], + "pg_lo_export": [ + "bool pg_lo_export([resource connection, ] int objoid, string filename)", + "Export large object direct to filesystem" + ], + "pg_lo_import": [ + "int pg_lo_import([resource connection, ] string filename [, mixed oid])", + "Import large object direct from filesystem" + ], + "pg_lo_open": [ + "resource pg_lo_open([resource connection,] int large_object_oid, string mode)", + "Open a large object and return fd" + ], + "pg_lo_read": [ + "string pg_lo_read(resource large_object [, int len])", + "Read a large object" + ], + "pg_lo_read_all": [ + "int pg_lo_read_all(resource large_object)", + "Read a large object and send straight to browser" + ], + "pg_lo_seek": [ + "bool pg_lo_seek(resource large_object, int offset [, int whence])", + "Seeks position of large object" + ], + "pg_lo_tell": [ + "int pg_lo_tell(resource large_object)", + "Returns current position of large object" + ], + "pg_lo_unlink": [ + "bool pg_lo_unlink([resource connection,] string large_object_oid)", + "Delete a large object" + ], + "pg_lo_write": [ + "int pg_lo_write(resource large_object, string buf [, int len])", + "Write a large object" + ], + "pg_meta_data": [ + "array pg_meta_data(resource db, string table)", + "Get meta_data" + ], + "pg_num_fields": [ + "int pg_num_fields(resource result)", + "Return the number of fields in the result" + ], + "pg_num_rows": [ + "int pg_num_rows(resource result)", + "Return the number of rows in the result" + ], + "pg_options": [ + "string pg_options([resource connection])", + "Get the options associated with the connection" + ], + "pg_parameter_status": [ + "string|false pg_parameter_status([resource connection,] string param_name)", + "Returns the value of a server parameter" + ], + "pg_pconnect": [ + "resource pg_pconnect(string connection_string | [string host, string port [, string options [, string tty,]]] string database)", + "Open a persistent PostgreSQL connection" + ], + "pg_ping": [ + "bool pg_ping([resource connection])", + "Ping database. If connection is bad, try to reconnect." + ], + "pg_port": [ + "int pg_port([resource connection])", + "Return the port number associated with the connection" + ], + "pg_prepare": [ + "resource pg_prepare([resource connection,] string stmtname, string query)", + "Prepare a query for future execution" + ], + "pg_put_line": [ + "bool pg_put_line([resource connection,] string query)", + "Send null-terminated string to backend server" + ], + "pg_query": [ + "resource pg_query([resource connection,] string query)", + "Execute a query" + ], + "pg_query_params": [ + "resource pg_query_params([resource connection,] string query, array params)", + "Execute a query" + ], + "pg_result_error": [ + "string pg_result_error(resource result)", + "Get error message associated with result" + ], + "pg_result_error_field": [ + "string pg_result_error_field(resource result, int fieldcode)", + "Get error message field associated with result" + ], + "pg_result_seek": [ + "bool pg_result_seek(resource result, int offset)", + "Set internal row offset" + ], + "pg_result_status": [ + "mixed pg_result_status(resource result[, long result_type])", + "Get status of query result" + ], + "pg_select": [ + "mixed pg_select(resource db, string table, array ids[, int options])", + "Select records that has ids (id=>value)" + ], + "pg_send_execute": [ + "bool pg_send_execute(resource connection, string stmtname, array params)", + "Executes prevriously prepared stmtname asynchronously" + ], + "pg_send_prepare": [ + "bool pg_send_prepare(resource connection, string stmtname, string query)", + "Asynchronously prepare a query for future execution" + ], + "pg_send_query": [ + "bool pg_send_query(resource connection, string query)", + "Send asynchronous query" + ], + "pg_send_query_params": [ + "bool pg_send_query_params(resource connection, string query, array params)", + "Send asynchronous parameterized query" + ], + "pg_set_client_encoding": [ + "int pg_set_client_encoding([resource connection,] string encoding)", + "Set client encoding" + ], + "pg_set_error_verbosity": [ + "int pg_set_error_verbosity([resource connection,] int verbosity)", + "Set error verbosity" + ], + "pg_trace": [ + "bool pg_trace(string filename [, string mode [, resource connection]])", + "Enable tracing a PostgreSQL connection" + ], + "pg_transaction_status": [ + "int pg_transaction_status(resource connnection)", + "Get transaction status" + ], + "pg_tty": [ + "string pg_tty([resource connection])", + "Return the tty name associated with the connection" + ], + "pg_unescape_bytea": [ + "string pg_unescape_bytea(string data)", + "Unescape binary for bytea type" + ], + "pg_untrace": [ + "bool pg_untrace([resource connection])", + "Disable tracing of a PostgreSQL connection" + ], + "pg_update": [ + "mixed pg_update(resource db, string table, array fields, array ids[, int options])", + "Update table using values (field=>value) and ids (id=>value)" + ], + "pg_version": [ + "array pg_version([resource connection])", + "Returns an array with client, protocol and server version (when available)" + ], + "php_egg_logo_guid": [ + "string php_egg_logo_guid(void)", + "Return the special ID used to request the PHP logo in phpinfo screens" + ], + "php_ini_loaded_file": [ + "string php_ini_loaded_file(void)", + "Return the actual loaded ini filename" + ], + "php_ini_scanned_files": [ + "string php_ini_scanned_files(void)", + "Return comma-separated string of .ini files parsed from the additional ini dir" + ], + "php_logo_guid": [ + "string php_logo_guid(void)", + "Return the special ID used to request the PHP logo in phpinfo screens" + ], + "php_real_logo_guid": [ + "string php_real_logo_guid(void)", + "Return the special ID used to request the PHP logo in phpinfo screens" + ], + "php_sapi_name": [ + "string php_sapi_name(void)", + "Return the current SAPI module name" + ], + "php_snmpv3": [ + "void php_snmpv3(INTERNAL_FUNCTION_PARAMETERS, int st)", + "* * Generic SNMPv3 object fetcher * From here is passed on the the common internal object fetcher. * * st=SNMP_CMD_GET snmp3_get() - query an agent and return a single value. * st=SNMP_CMD_GETNEXT snmp3_getnext() - query an agent and return the next single value. * st=SNMP_CMD_WALK snmp3_walk() - walk the mib and return a single dimensional array * containing the values. * st=SNMP_CMD_REALWALK snmp3_real_walk() - walk the mib and return an * array of oid,value pairs. * st=SNMP_CMD_SET snmp3_set() - query an agent and set a single value *" + ], + "php_strip_whitespace": [ + "string php_strip_whitespace(string file_name)", + "Return source with stripped comments and whitespace" + ], + "php_uname": [ + "string php_uname(void)", + "Return information about the system PHP was built on" + ], + "phpcredits": [ + "void phpcredits([int flag])", + "Prints the list of people who've contributed to the PHP project" + ], + "phpinfo": [ + "void phpinfo([int what])", + "Output a page of useful information about PHP and the current request" + ], + "phpversion": [ + "string phpversion([string extension])", + "Return the current PHP version" + ], + "pi": [ + "float pi(void)", + "Returns an approximation of pi" + ], + "png2wbmp": [ + "bool png2wbmp (string f_org, string f_dest, int d_height, int d_width, int threshold)", + "Convert PNG image to WBMP image" + ], + "popen": [ + "resource popen(string command, string mode)", + "Execute a command and open either a read or a write pipe to it" + ], + "posix_access": [ + "bool posix_access(string file [, int mode])", + "Determine accessibility of a file (POSIX.1 5.6.3)" + ], + "posix_ctermid": [ + "string posix_ctermid(void)", + "Generate terminal path name (POSIX.1, 4.7.1)" + ], + "posix_get_last_error": [ + "int posix_get_last_error(void)", + "Retrieve the error number set by the last posix function which failed." + ], + "posix_getcwd": [ + "string posix_getcwd(void)", + "Get working directory pathname (POSIX.1, 5.2.2)" + ], + "posix_getegid": [ + "int posix_getegid(void)", + "Get the current effective group id (POSIX.1, 4.2.1)" + ], + "posix_geteuid": [ + "int posix_geteuid(void)", + "Get the current effective user id (POSIX.1, 4.2.1)" + ], + "posix_getgid": [ + "int posix_getgid(void)", + "Get the current group id (POSIX.1, 4.2.1)" + ], + "posix_getgrgid": [ + "array posix_getgrgid(long gid)", + "Group database access (POSIX.1, 9.2.1)" + ], + "posix_getgrnam": [ + "array posix_getgrnam(string groupname)", + "Group database access (POSIX.1, 9.2.1)" + ], + "posix_getgroups": [ + "array posix_getgroups(void)", + "Get supplementary group id's (POSIX.1, 4.2.3)" + ], + "posix_getlogin": [ + "string posix_getlogin(void)", + "Get user name (POSIX.1, 4.2.4)" + ], + "posix_getpgid": [ + "int posix_getpgid(void)", + "Get the process group id of the specified process (This is not a POSIX function, but a SVR4ism, so we compile conditionally)" + ], + "posix_getpgrp": [ + "int posix_getpgrp(void)", + "Get current process group id (POSIX.1, 4.3.1)" + ], + "posix_getpid": [ + "int posix_getpid(void)", + "Get the current process id (POSIX.1, 4.1.1)" + ], + "posix_getppid": [ + "int posix_getppid(void)", + "Get the parent process id (POSIX.1, 4.1.1)" + ], + "posix_getpwnam": [ + "array posix_getpwnam(string groupname)", + "User database access (POSIX.1, 9.2.2)" + ], + "posix_getpwuid": [ + "array posix_getpwuid(long uid)", + "User database access (POSIX.1, 9.2.2)" + ], + "posix_getrlimit": [ + "array posix_getrlimit(void)", + "Get system resource consumption limits (This is not a POSIX function, but a BSDism and a SVR4ism. We compile conditionally)" + ], + "posix_getsid": [ + "int posix_getsid(void)", + "Get process group id of session leader (This is not a POSIX function, but a SVR4ism, so be compile conditionally)" + ], + "posix_getuid": [ + "int posix_getuid(void)", + "Get the current user id (POSIX.1, 4.2.1)" + ], + "posix_initgroups": [ + "bool posix_initgroups(string name, int base_group_id)", + "Calculate the group access list for the user specified in name." + ], + "posix_isatty": [ + "bool posix_isatty(int fd)", + "Determine if filedesc is a tty (POSIX.1, 4.7.1)" + ], + "posix_kill": [ + "bool posix_kill(int pid, int sig)", + "Send a signal to a process (POSIX.1, 3.3.2)" + ], + "posix_mkfifo": [ + "bool posix_mkfifo(string pathname, int mode)", + "Make a FIFO special file (POSIX.1, 5.4.2)" + ], + "posix_mknod": [ + "bool posix_mknod(string pathname, int mode [, int major [, int minor]])", + "Make a special or ordinary file (POSIX.1)" + ], + "posix_setegid": [ + "bool posix_setegid(long uid)", + "Set effective group id" + ], + "posix_seteuid": [ + "bool posix_seteuid(long uid)", + "Set effective user id" + ], + "posix_setgid": [ + "bool posix_setgid(int uid)", + "Set group id (POSIX.1, 4.2.2)" + ], + "posix_setpgid": [ + "bool posix_setpgid(int pid, int pgid)", + "Set process group id for job control (POSIX.1, 4.3.3)" + ], + "posix_setsid": [ + "int posix_setsid(void)", + "Create session and set process group id (POSIX.1, 4.3.2)" + ], + "posix_setuid": [ + "bool posix_setuid(long uid)", + "Set user id (POSIX.1, 4.2.2)" + ], + "posix_strerror": [ + "string posix_strerror(int errno)", + "Retrieve the system error message associated with the given errno." + ], + "posix_times": [ + "array posix_times(void)", + "Get process times (POSIX.1, 4.5.2)" + ], + "posix_ttyname": [ + "string posix_ttyname(int fd)", + "Determine terminal device name (POSIX.1, 4.7.2)" + ], + "posix_uname": [ + "array posix_uname(void)", + "Get system name (POSIX.1, 4.4.1)" + ], + "pow": [ + "number pow(number base, number exponent)", + "Returns base raised to the power of exponent. Returns integer result when possible" + ], + "preg_filter": [ + "mixed preg_filter(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])", + "Perform Perl-style regular expression replacement and only return matches." + ], + "preg_grep": [ + "array preg_grep(string regex, array input [, int flags])", + "Searches array and returns entries which match regex" + ], + "preg_last_error": [ + "int preg_last_error()", + "Returns the error code of the last regexp execution." + ], + "preg_match": [ + "int preg_match(string pattern, string subject [, array &subpatterns [, int flags [, int offset]]])", + "Perform a Perl-style regular expression match" + ], + "preg_match_all": [ + "int preg_match_all(string pattern, string subject, array &subpatterns [, int flags [, int offset]])", + "Perform a Perl-style global regular expression match" + ], + "preg_quote": [ + "string preg_quote(string str [, string delim_char])", + "Quote regular expression characters plus an optional character" + ], + "preg_replace": [ + "mixed preg_replace(mixed regex, mixed replace, mixed subject [, int limit [, int &count]])", + "Perform Perl-style regular expression replacement." + ], + "preg_replace_callback": [ + "mixed preg_replace_callback(mixed regex, mixed callback, mixed subject [, int limit [, int &count]])", + "Perform Perl-style regular expression replacement using replacement callback." + ], + "preg_split": [ + "array preg_split(string pattern, string subject [, int limit [, int flags]])", + "Split string into an array using a perl-style regular expression as a delimiter" + ], + "prev": [ + "mixed prev(array array_arg)", + "Move array argument's internal pointer to the previous element and return it" + ], + "print": [ + "int print(string arg)", + "Output a string" + ], + "print_r": [ + "mixed print_r(mixed var [, bool return])", + "Prints out or returns information about the specified variable" + ], + "printf": [ + "int printf(string format [, mixed arg1 [, mixed ...]])", + "Output a formatted string" + ], + "proc_close": [ + "int proc_close(resource process)", + "close a process opened by proc_open" + ], + "proc_get_status": [ + "array proc_get_status(resource process)", + "get information about a process opened by proc_open" + ], + "proc_nice": [ + "bool proc_nice(int priority)", + "Change the priority of the current process" + ], + "proc_open": [ + "resource proc_open(string command, array descriptorspec, array &pipes [, string cwd [, array env [, array other_options]]])", + "Run a process with more control over it's file descriptors" + ], + "proc_terminate": [ + "bool proc_terminate(resource process [, long signal])", + "kill a process opened by proc_open" + ], + "property_exists": [ + "bool property_exists(mixed object_or_class, string property_name)", + "Checks if the object or class has a property" + ], + "pspell_add_to_personal": [ + "bool pspell_add_to_personal(int pspell, string word)", + "Adds a word to a personal list" + ], + "pspell_add_to_session": [ + "bool pspell_add_to_session(int pspell, string word)", + "Adds a word to the current session" + ], + "pspell_check": [ + "bool pspell_check(int pspell, string word)", + "Returns true if word is valid" + ], + "pspell_clear_session": [ + "bool pspell_clear_session(int pspell)", + "Clears the current session" + ], + "pspell_config_create": [ + "int pspell_config_create(string language [, string spelling [, string jargon [, string encoding]]])", + "Create a new config to be used later to create a manager" + ], + "pspell_config_data_dir": [ + "bool pspell_config_data_dir(int conf, string directory)", + "location of language data files" + ], + "pspell_config_dict_dir": [ + "bool pspell_config_dict_dir(int conf, string directory)", + "location of the main word list" + ], + "pspell_config_ignore": [ + "bool pspell_config_ignore(int conf, int ignore)", + "Ignore words <= n chars" + ], + "pspell_config_mode": [ + "bool pspell_config_mode(int conf, long mode)", + "Select mode for config (PSPELL_FAST, PSPELL_NORMAL or PSPELL_BAD_SPELLERS)" + ], + "pspell_config_personal": [ + "bool pspell_config_personal(int conf, string personal)", + "Use a personal dictionary for this config" + ], + "pspell_config_repl": [ + "bool pspell_config_repl(int conf, string repl)", + "Use a personal dictionary with replacement pairs for this config" + ], + "pspell_config_runtogether": [ + "bool pspell_config_runtogether(int conf, bool runtogether)", + "Consider run-together words as valid components" + ], + "pspell_config_save_repl": [ + "bool pspell_config_save_repl(int conf, bool save)", + "Save replacement pairs when personal list is saved for this config" + ], + "pspell_new": [ + "int pspell_new(string language [, string spelling [, string jargon [, string encoding [, int mode]]]])", + "Load a dictionary" + ], + "pspell_new_config": [ + "int pspell_new_config(int config)", + "Load a dictionary based on the given config" + ], + "pspell_new_personal": [ + "int pspell_new_personal(string personal, string language [, string spelling [, string jargon [, string encoding [, int mode]]]])", + "Load a dictionary with a personal wordlist" + ], + "pspell_save_wordlist": [ + "bool pspell_save_wordlist(int pspell)", + "Saves the current (personal) wordlist" + ], + "pspell_store_replacement": [ + "bool pspell_store_replacement(int pspell, string misspell, string correct)", + "Notify the dictionary of a user-selected replacement" + ], + "pspell_suggest": [ + "array pspell_suggest(int pspell, string word)", + "Returns array of suggestions" + ], + "putenv": [ + "bool putenv(string setting)", + "Set the value of an environment variable" + ], + "quoted_printable_decode": [ + "string quoted_printable_decode(string str)", + "Convert a quoted-printable string to an 8 bit string" + ], + "quoted_printable_encode": [ + "string quoted_printable_encode(string str) */", + "PHP_FUNCTION(quoted_printable_encode) { char *str, *new_str; int str_len; size_t new_str_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, \"s\", &str, &str_len) != SUCCESS) { return; } if (!str_len) { RETURN_EMPTY_STRING(); } new_str = (char *)php_quot_print_encode((unsigned char *)str, (size_t)str_len, &new_str_len); RETURN_STRINGL(new_str, new_str_len, 0); } /* }}}" + ], + "quotemeta": [ + "string quotemeta(string str)", + "Quotes meta characters" + ], + "rad2deg": [ + "float rad2deg(float number)", + "Converts the radian number to the equivalent number in degrees" + ], + "rand": [ + "int rand([int min, int max])", + "Returns a random number" + ], + "range": [ + "array range(mixed low, mixed high[, int step])", + "Create an array containing the range of integers or characters from low to high (inclusive)" + ], + "rawurldecode": [ + "string rawurldecode(string str)", + "Decodes URL-encodes string" + ], + "rawurlencode": [ + "string rawurlencode(string str)", + "URL-encodes string" + ], + "readdir": [ + "string readdir([resource dir_handle])", + "Read directory entry from dir_handle" + ], + "readfile": [ + "int readfile(string filename [, bool use_include_path[, resource context]])", + "Output a file or a URL" + ], + "readgzfile": [ + "int readgzfile(string filename [, int use_include_path])", + "Output a .gz-file" + ], + "readline": [ + "string readline([string prompt])", + "Reads a line" + ], + "readline_add_history": [ + "bool readline_add_history(string prompt)", + "Adds a line to the history" + ], + "readline_callback_handler_install": [ + "void readline_callback_handler_install(string prompt, mixed callback)", + "Initializes the readline callback interface and terminal, prints the prompt and returns immediately" + ], + "readline_callback_handler_remove": [ + "bool readline_callback_handler_remove()", + "Removes a previously installed callback handler and restores terminal settings" + ], + "readline_callback_read_char": [ + "void readline_callback_read_char()", + "Informs the readline callback interface that a character is ready for input" + ], + "readline_clear_history": [ + "bool readline_clear_history(void)", + "Clears the history" + ], + "readline_completion_function": [ + "bool readline_completion_function(string funcname)", + "Readline completion function?" + ], + "readline_info": [ + "mixed readline_info([string varname [, string newvalue]])", + "Gets/sets various internal readline variables." + ], + "readline_list_history": [ + "array readline_list_history(void)", + "Lists the history" + ], + "readline_on_new_line": [ + "void readline_on_new_line(void)", + "Inform readline that the cursor has moved to a new line" + ], + "readline_read_history": [ + "bool readline_read_history([string filename])", + "Reads the history" + ], + "readline_redisplay": [ + "void readline_redisplay(void)", + "Ask readline to redraw the display" + ], + "readline_write_history": [ + "bool readline_write_history([string filename])", + "Writes the history" + ], + "readlink": [ + "string readlink(string filename)", + "Return the target of a symbolic link" + ], + "realpath": [ + "string realpath(string path)", + "Return the resolved path" + ], + "realpath_cache_get": [ + "bool realpath_cache_get()", + "Get current size of realpath cache" + ], + "realpath_cache_size": [ + "bool realpath_cache_size()", + "Get current size of realpath cache" + ], + "recode_file": [ + "bool recode_file(string request, resource input, resource output)", + "Recode file input into file output according to request" + ], + "recode_string": [ + "string recode_string(string request, string str)", + "Recode string str according to request string" + ], + "register_shutdown_function": [ + "void register_shutdown_function(string function_name)", + "Register a user-level function to be called on request termination" + ], + "register_tick_function": [ + "bool register_tick_function(string function_name [, mixed arg [, mixed ... ]])", + "Registers a tick callback function" + ], + "rename": [ + "bool rename(string old_name, string new_name[, resource context])", + "Rename a file" + ], + "require": [ + "bool require(string path)", + "Includes and evaluates the specified file, erroring if the file cannot be included" + ], + "require_once": [ + "bool require_once(string path)", + "Includes and evaluates the specified file, erroring if the file cannot be included" + ], + "reset": [ + "mixed reset(array array_arg)", + "Set array argument's internal pointer to the first element and return it" + ], + "restore_error_handler": [ + "void restore_error_handler(void)", + "Restores the previously defined error handler function" + ], + "restore_exception_handler": [ + "void restore_exception_handler(void)", + "Restores the previously defined exception handler function" + ], + "restore_include_path": [ + "void restore_include_path()", + "Restore the value of the include_path configuration option" + ], + "rewind": [ + "bool rewind(resource fp)", + "Rewind the position of a file pointer" + ], + "rewinddir": [ + "void rewinddir([resource dir_handle])", + "Rewind dir_handle back to the start" + ], + "rmdir": [ + "bool rmdir(string dirname[, resource context])", + "Remove a directory" + ], + "round": [ + "float round(float number [, int precision [, int mode]])", + "Returns the number rounded to specified precision" + ], + "rsort": [ + "bool rsort(array &array_arg [, int sort_flags])", + "Sort an array in reverse order" + ], + "rtrim": [ + "string rtrim(string str [, string character_mask])", + "Removes trailing whitespace" + ], + "scandir": [ + "array scandir(string dir [, int sorting_order [, resource context]])", + "List files & directories inside the specified path" + ], + "sem_acquire": [ + "bool sem_acquire(resource id)", + "Acquires the semaphore with the given id, blocking if necessary" + ], + "sem_get": [ + "resource sem_get(int key [, int max_acquire [, int perm [, int auto_release]])", + "Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously" + ], + "sem_release": [ + "bool sem_release(resource id)", + "Releases the semaphore with the given id" + ], + "sem_remove": [ + "bool sem_remove(resource id)", + "Removes semaphore from Unix systems" + ], + "serialize": [ + "string serialize(mixed variable)", + "Returns a string representation of variable (which can later be unserialized)" + ], + "session_cache_expire": [ + "int session_cache_expire([int new_cache_expire])", + "Return the current cache expire. If new_cache_expire is given, the current cache_expire is replaced with new_cache_expire" + ], + "session_cache_limiter": [ + "string session_cache_limiter([string new_cache_limiter])", + "Return the current cache limiter. If new_cache_limited is given, the current cache_limiter is replaced with new_cache_limiter" + ], + "session_decode": [ + "bool session_decode(string data)", + "Deserializes data and reinitializes the variables" + ], + "session_destroy": [ + "bool session_destroy(void)", + "Destroy the current session and all data associated with it" + ], + "session_encode": [ + "string session_encode(void)", + "Serializes the current setup and returns the serialized representation" + ], + "session_get_cookie_params": [ + "array session_get_cookie_params(void)", + "Return the session cookie parameters" + ], + "session_id": [ + "string session_id([string newid])", + "Return the current session id. If newid is given, the session id is replaced with newid" + ], + "session_is_registered": [ + "bool session_is_registered(string varname)", + "Checks if a variable is registered in session" + ], + "session_module_name": [ + "string session_module_name([string newname])", + "Return the current module name used for accessing session data. If newname is given, the module name is replaced with newname" + ], + "session_name": [ + "string session_name([string newname])", + "Return the current session name. If newname is given, the session name is replaced with newname" + ], + "session_regenerate_id": [ + "bool session_regenerate_id([bool delete_old_session])", + "Update the current session id with a newly generated one. If delete_old_session is set to true, remove the old session." + ], + "session_register": [ + "bool session_register(mixed var_names [, mixed ...])", + "Adds varname(s) to the list of variables which are freezed at the session end" + ], + "session_save_path": [ + "string session_save_path([string newname])", + "Return the current save path passed to module_name. If newname is given, the save path is replaced with newname" + ], + "session_set_cookie_params": [ + "void session_set_cookie_params(int lifetime [, string path [, string domain [, bool secure[, bool httponly]]]])", + "Set session cookie parameters" + ], + "session_set_save_handler": [ + "void session_set_save_handler(string open, string close, string read, string write, string destroy, string gc)", + "Sets user-level functions" + ], + "session_start": [ + "bool session_start(void)", + "Begin session - reinitializes freezed variables, registers browsers etc" + ], + "session_unregister": [ + "bool session_unregister(string varname)", + "Removes varname from the list of variables which are freezed at the session end" + ], + "session_unset": [ + "void session_unset(void)", + "Unset all registered variables" + ], + "session_write_close": [ + "void session_write_close(void)", + "Write session data and end session" + ], + "set_error_handler": [ + "string set_error_handler(string error_handler [, int error_types])", + "Sets a user-defined error handler function. Returns the previously defined error handler, or false on error" + ], + "set_exception_handler": [ + "string set_exception_handler(callable exception_handler)", + "Sets a user-defined exception handler function. Returns the previously defined exception handler, or false on error" + ], + "set_include_path": [ + "string set_include_path(string new_include_path)", + "Sets the include_path configuration option" + ], + "set_magic_quotes_runtime": [ + "bool set_magic_quotes_runtime(int new_setting)", + "Set the current active configuration setting of magic_quotes_runtime and return previous" + ], + "set_time_limit": [ + "bool set_time_limit(int seconds)", + "Sets the maximum time a script can run" + ], + "setcookie": [ + "bool setcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])", + "Send a cookie" + ], + "setlocale": [ + "string setlocale(mixed category, string locale [, string ...])", + "Set locale information" + ], + "setrawcookie": [ + "bool setrawcookie(string name [, string value [, int expires [, string path [, string domain [, bool secure[, bool httponly]]]]]])", + "Send a cookie with no url encoding of the value" + ], + "settype": [ + "bool settype(mixed var, string type)", + "Set the type of the variable" + ], + "sha1": [ + "string sha1(string str [, bool raw_output])", + "Calculate the sha1 hash of a string" + ], + "sha1_file": [ + "string sha1_file(string filename [, bool raw_output])", + "Calculate the sha1 hash of given filename" + ], + "shell_exec": [ + "string shell_exec(string cmd)", + "Execute command via shell and return complete output as string" + ], + "shm_attach": [ + "int shm_attach(int key [, int memsize [, int perm]])", + "Creates or open a shared memory segment" + ], + "shm_detach": [ + "bool shm_detach(resource shm_identifier)", + "Disconnects from shared memory segment" + ], + "shm_get_var": [ + "mixed shm_get_var(resource id, int variable_key)", + "Returns a variable from shared memory" + ], + "shm_has_var": [ + "bool shm_has_var(resource id, int variable_key)", + "Checks whether a specific entry exists" + ], + "shm_put_var": [ + "bool shm_put_var(resource shm_identifier, int variable_key, mixed variable)", + "Inserts or updates a variable in shared memory" + ], + "shm_remove": [ + "bool shm_remove(resource shm_identifier)", + "Removes shared memory from Unix systems" + ], + "shm_remove_var": [ + "bool shm_remove_var(resource id, int variable_key)", + "Removes variable from shared memory" + ], + "shmop_close": [ + "void shmop_close (int shmid)", + "closes a shared memory segment" + ], + "shmop_delete": [ + "bool shmop_delete (int shmid)", + "mark segment for deletion" + ], + "shmop_open": [ + "int shmop_open (int key, string flags, int mode, int size)", + "gets and attaches a shared memory segment" + ], + "shmop_read": [ + "string shmop_read (int shmid, int start, int count)", + "reads from a shm segment" + ], + "shmop_size": [ + "int shmop_size (int shmid)", + "returns the shm size" + ], + "shmop_write": [ + "int shmop_write (int shmid, string data, int offset)", + "writes to a shared memory segment" + ], + "shuffle": [ + "bool shuffle(array array_arg)", + "Randomly shuffle the contents of an array" + ], + "similar_text": [ + "int similar_text(string str1, string str2 [, float percent])", + "Calculates the similarity between two strings" + ], + "simplexml_import_dom": [ + "simplemxml_element simplexml_import_dom(domNode node [, string class_name])", + "Get a simplexml_element object from dom to allow for processing" + ], + "simplexml_load_file": [ + "simplemxml_element simplexml_load_file(string filename [, string class_name [, int options [, string ns [, bool is_prefix]]]])", + "Load a filename and return a simplexml_element object to allow for processing" + ], + "simplexml_load_string": [ + "simplemxml_element simplexml_load_string(string data [, string class_name [, int options [, string ns [, bool is_prefix]]]])", + "Load a string and return a simplexml_element object to allow for processing" + ], + "sin": [ + "float sin(float number)", + "Returns the sine of the number in radians" + ], + "sinh": [ + "float sinh(float number)", + "Returns the hyperbolic sine of the number, defined as (exp(number) - exp(-number))/2" + ], + "sleep": [ + "void sleep(int seconds)", + "Delay for a given number of seconds" + ], + "smfi_addheader": [ + "bool smfi_addheader(string headerf, string headerv)", + "Adds a header to the current message." + ], + "smfi_addrcpt": [ + "bool smfi_addrcpt(string rcpt)", + "Add a recipient to the message envelope." + ], + "smfi_chgheader": [ + "bool smfi_chgheader(string headerf, string headerv)", + "Changes a header's value for the current message." + ], + "smfi_delrcpt": [ + "bool smfi_delrcpt(string rcpt)", + "Removes the named recipient from the current message's envelope." + ], + "smfi_getsymval": [ + "string smfi_getsymval(string macro)", + "Returns the value of the given macro or NULL if the macro is not defined." + ], + "smfi_replacebody": [ + "bool smfi_replacebody(string body)", + "Replaces the body of the current message. If called more than once, subsequent calls result in data being appended to the new body." + ], + "smfi_setflags": [ + "void smfi_setflags(long flags)", + "Sets the flags describing the actions the filter may take." + ], + "smfi_setreply": [ + "bool smfi_setreply(string rcode, string xcode, string message)", + "Directly set the SMTP error reply code for this connection. This code will be used on subsequent error replies resulting from actions taken by this filter." + ], + "smfi_settimeout": [ + "void smfi_settimeout(long timeout)", + "Sets the number of seconds libmilter will wait for an MTA connection before timing out a socket." + ], + "snmp2_get": [ + "string snmp2_get(string host, string community, string object_id [, int timeout [, int retries]])", + "Fetch a SNMP object" + ], + "snmp2_getnext": [ + "string snmp2_getnext(string host, string community, string object_id [, int timeout [, int retries]])", + "Fetch a SNMP object" + ], + "snmp2_real_walk": [ + "array snmp2_real_walk(string host, string community, string object_id [, int timeout [, int retries]])", + "Return all objects including their respective object id withing the specified one" + ], + "snmp2_set": [ + "int snmp2_set(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])", + "Set the value of a SNMP object" + ], + "snmp2_walk": [ + "array snmp2_walk(string host, string community, string object_id [, int timeout [, int retries]])", + "Return all objects under the specified object id" + ], + "snmp3_get": [ + "int snmp3_get(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])", + "Fetch the value of a SNMP object" + ], + "snmp3_getnext": [ + "int snmp3_getnext(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])", + "Fetch the value of a SNMP object" + ], + "snmp3_real_walk": [ + "int snmp3_real_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])", + "Fetch the value of a SNMP object" + ], + "snmp3_set": [ + "int snmp3_set(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id, string type, mixed value [, int timeout [, int retries]])", + "Fetch the value of a SNMP object" + ], + "snmp3_walk": [ + "int snmp3_walk(string host, string sec_name, string sec_level, string auth_protocol, string auth_passphrase, string priv_protocol, string priv_passphrase, string object_id [, int timeout [, int retries]])", + "Fetch the value of a SNMP object" + ], + "snmp_get_quick_print": [ + "bool snmp_get_quick_print(void)", + "Return the current status of quick_print" + ], + "snmp_get_valueretrieval": [ + "int snmp_get_valueretrieval()", + "Return the method how the SNMP values will be returned" + ], + "snmp_read_mib": [ + "int snmp_read_mib(string filename)", + "Reads and parses a MIB file into the active MIB tree." + ], + "snmp_set_enum_print": [ + "void snmp_set_enum_print(int enum_print)", + "Return all values that are enums with their enum value instead of the raw integer" + ], + "snmp_set_oid_output_format": [ + "void snmp_set_oid_output_format(int oid_format)", + "Set the OID output format." + ], + "snmp_set_quick_print": [ + "void snmp_set_quick_print(int quick_print)", + "Return all objects including their respective object id withing the specified one" + ], + "snmp_set_valueretrieval": [ + "void snmp_set_valueretrieval(int method)", + "Specify the method how the SNMP values will be returned" + ], + "snmpget": [ + "string snmpget(string host, string community, string object_id [, int timeout [, int retries]])", + "Fetch a SNMP object" + ], + "snmpgetnext": [ + "string snmpgetnext(string host, string community, string object_id [, int timeout [, int retries]])", + "Fetch a SNMP object" + ], + "snmprealwalk": [ + "array snmprealwalk(string host, string community, string object_id [, int timeout [, int retries]])", + "Return all objects including their respective object id withing the specified one" + ], + "snmpset": [ + "int snmpset(string host, string community, string object_id, string type, mixed value [, int timeout [, int retries]])", + "Set the value of a SNMP object" + ], + "snmpwalk": [ + "array snmpwalk(string host, string community, string object_id [, int timeout [, int retries]])", + "Return all objects under the specified object id" + ], + "socket_accept": [ + "resource socket_accept(resource socket)", + "Accepts a connection on the listening socket fd" + ], + "socket_bind": [ + "bool socket_bind(resource socket, string addr [, int port])", + "Binds an open socket to a listening port, port is only specified in AF_INET family." + ], + "socket_clear_error": [ + "void socket_clear_error([resource socket])", + "Clears the error on the socket or the last error code." + ], + "socket_close": [ + "void socket_close(resource socket)", + "Closes a file descriptor" + ], + "socket_connect": [ + "bool socket_connect(resource socket, string addr [, int port])", + "Opens a connection to addr:port on the socket specified by socket" + ], + "socket_create": [ + "resource socket_create(int domain, int type, int protocol)", + "Creates an endpoint for communication in the domain specified by domain, of type specified by type" + ], + "socket_create_listen": [ + "resource socket_create_listen(int port[, int backlog])", + "Opens a socket on port to accept connections" + ], + "socket_create_pair": [ + "bool socket_create_pair(int domain, int type, int protocol, array &fd)", + "Creates a pair of indistinguishable sockets and stores them in fds." + ], + "socket_get_option": [ + "mixed socket_get_option(resource socket, int level, int optname)", + "Gets socket options for the socket" + ], + "socket_getpeername": [ + "bool socket_getpeername(resource socket, string &addr[, int &port])", + "Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type." + ], + "socket_getsockname": [ + "bool socket_getsockname(resource socket, string &addr[, int &port])", + "Queries the remote side of the given socket which may either result in host/port or in a UNIX filesystem path, dependent on its type." + ], + "socket_last_error": [ + "int socket_last_error([resource socket])", + "Returns the last socket error (either the last used or the provided socket resource)" + ], + "socket_listen": [ + "bool socket_listen(resource socket[, int backlog])", + "Sets the maximum number of connections allowed to be waited for on the socket specified by fd" + ], + "socket_read": [ + "string socket_read(resource socket, int length [, int type])", + "Reads a maximum of length bytes from socket" + ], + "socket_recv": [ + "int socket_recv(resource socket, string &buf, int len, int flags)", + "Receives data from a connected socket" + ], + "socket_recvfrom": [ + "int socket_recvfrom(resource socket, string &buf, int len, int flags, string &name [, int &port])", + "Receives data from a socket, connected or not" + ], + "socket_select": [ + "int socket_select(array &read_fds, array &write_fds, array &except_fds, int tv_sec[, int tv_usec])", + "Runs the select() system call on the sets mentioned with a timeout specified by tv_sec and tv_usec" + ], + "socket_send": [ + "int socket_send(resource socket, string buf, int len, int flags)", + "Sends data to a connected socket" + ], + "socket_sendto": [ + "int socket_sendto(resource socket, string buf, int len, int flags, string addr [, int port])", + "Sends a message to a socket, whether it is connected or not" + ], + "socket_set_block": [ + "bool socket_set_block(resource socket)", + "Sets blocking mode on a socket resource" + ], + "socket_set_nonblock": [ + "bool socket_set_nonblock(resource socket)", + "Sets nonblocking mode on a socket resource" + ], + "socket_set_option": [ + "bool socket_set_option(resource socket, int level, int optname, int|array optval)", + "Sets socket options for the socket" + ], + "socket_shutdown": [ + "bool socket_shutdown(resource socket[, int how])", + "Shuts down a socket for receiving, sending, or both." + ], + "socket_strerror": [ + "string socket_strerror(int errno)", + "Returns a string describing an error" + ], + "socket_write": [ + "int socket_write(resource socket, string buf[, int length])", + "Writes the buffer to the socket resource, length is optional" + ], + "solid_fetch_prev": [ + "bool solid_fetch_prev(resource result_id)", + "" + ], + "sort": [ + "bool sort(array &array_arg [, int sort_flags])", + "Sort an array" + ], + "soundex": [ + "string soundex(string str)", + "Calculate the soundex key of a string" + ], + "spl_autoload": [ + "void spl_autoload(string class_name [, string file_extensions])", + "Default implementation for __autoload()" + ], + "spl_autoload_call": [ + "void spl_autoload_call(string class_name)", + "Try all registerd autoload function to load the requested class" + ], + "spl_autoload_extensions": [ + "string spl_autoload_extensions([string file_extensions])", + "Register and return default file extensions for spl_autoload" + ], + "spl_autoload_functions": [ + "false|array spl_autoload_functions()", + "Return all registered __autoload() functionns" + ], + "spl_autoload_register": [ + "bool spl_autoload_register([mixed autoload_function = \"spl_autoload\" [, throw = true [, prepend]]])", + "Register given function as __autoload() implementation" + ], + "spl_autoload_unregister": [ + "bool spl_autoload_unregister(mixed autoload_function)", + "Unregister given function as __autoload() implementation" + ], + "spl_classes": [ + "array spl_classes()", + "Return an array containing the names of all clsses and interfaces defined in SPL" + ], + "spl_object_hash": [ + "string spl_object_hash(object obj)", + "Return hash id for given object" + ], + "split": [ + "array split(string pattern, string string [, int limit])", + "Split string into array by regular expression" + ], + "spliti": [ + "array spliti(string pattern, string string [, int limit])", + "Split string into array by regular expression case-insensitive" + ], + "sprintf": [ + "string sprintf(string format [, mixed arg1 [, mixed ...]])", + "Return a formatted string" + ], + "sql_regcase": [ + "string sql_regcase(string string)", + "Make regular expression for case insensitive match" + ], + "sqlite_array_query": [ + "array sqlite_array_query(resource db, string query [ , int result_type [, bool decode_binary]])", + "Executes a query against a given database and returns an array of arrays." + ], + "sqlite_busy_timeout": [ + "void sqlite_busy_timeout(resource db, int ms)", + "Set busy timeout duration. If ms <= 0, all busy handlers are disabled." + ], + "sqlite_changes": [ + "int sqlite_changes(resource db)", + "Returns the number of rows that were changed by the most recent SQL statement." + ], + "sqlite_close": [ + "void sqlite_close(resource db)", + "Closes an open sqlite database." + ], + "sqlite_column": [ + "mixed sqlite_column(resource result, mixed index_or_name [, bool decode_binary])", + "Fetches a column from the current row of a result set." + ], + "sqlite_create_aggregate": [ + "bool sqlite_create_aggregate(resource db, string funcname, mixed step_func, mixed finalize_func[, long num_args])", + "Registers an aggregate function for queries." + ], + "sqlite_create_function": [ + "bool sqlite_create_function(resource db, string funcname, mixed callback[, long num_args])", + "Registers a \"regular\" function for queries." + ], + "sqlite_current": [ + "array sqlite_current(resource result [, int result_type [, bool decode_binary]])", + "Fetches the current row from a result set as an array." + ], + "sqlite_error_string": [ + "string sqlite_error_string(int error_code)", + "Returns the textual description of an error code." + ], + "sqlite_escape_string": [ + "string sqlite_escape_string(string item)", + "Escapes a string for use as a query parameter." + ], + "sqlite_exec": [ + "boolean sqlite_exec(string query, resource db[, string &error_message])", + "Executes a result-less query against a given database" + ], + "sqlite_factory": [ + "object sqlite_factory(string filename [, int mode [, string &error_message]])", + "Opens a SQLite database and creates an object for it. Will create the database if it does not exist." + ], + "sqlite_fetch_all": [ + "array sqlite_fetch_all(resource result [, int result_type [, bool decode_binary]])", + "Fetches all rows from a result set as an array of arrays." + ], + "sqlite_fetch_array": [ + "array sqlite_fetch_array(resource result [, int result_type [, bool decode_binary]])", + "Fetches the next row from a result set as an array." + ], + "sqlite_fetch_column_types": [ + "resource sqlite_fetch_column_types(string table_name, resource db [, int result_type])", + "Return an array of column types from a particular table." + ], + "sqlite_fetch_object": [ + "object sqlite_fetch_object(resource result [, string class_name [, NULL|array ctor_params [, bool decode_binary]]])", + "Fetches the next row from a result set as an object." + ], + "sqlite_fetch_single": [ + "string sqlite_fetch_single(resource result [, bool decode_binary])", + "Fetches the first column of a result set as a string." + ], + "sqlite_field_name": [ + "string sqlite_field_name(resource result, int field_index)", + "Returns the name of a particular field of a result set." + ], + "sqlite_has_prev": [ + "bool sqlite_has_prev(resource result)", + "* Returns whether a previous row is available." + ], + "sqlite_key": [ + "int sqlite_key(resource result)", + "Return the current row index of a buffered result." + ], + "sqlite_last_error": [ + "int sqlite_last_error(resource db)", + "Returns the error code of the last error for a database." + ], + "sqlite_last_insert_rowid": [ + "int sqlite_last_insert_rowid(resource db)", + "Returns the rowid of the most recently inserted row." + ], + "sqlite_libencoding": [ + "string sqlite_libencoding()", + "Returns the encoding (iso8859 or UTF-8) of the linked SQLite library." + ], + "sqlite_libversion": [ + "string sqlite_libversion()", + "Returns the version of the linked SQLite library." + ], + "sqlite_next": [ + "bool sqlite_next(resource result)", + "Seek to the next row number of a result set." + ], + "sqlite_num_fields": [ + "int sqlite_num_fields(resource result)", + "Returns the number of fields in a result set." + ], + "sqlite_num_rows": [ + "int sqlite_num_rows(resource result)", + "Returns the number of rows in a buffered result set." + ], + "sqlite_open": [ + "resource sqlite_open(string filename [, int mode [, string &error_message]])", + "Opens a SQLite database. Will create the database if it does not exist." + ], + "sqlite_popen": [ + "resource sqlite_popen(string filename [, int mode [, string &error_message]])", + "Opens a persistent handle to a SQLite database. Will create the database if it does not exist." + ], + "sqlite_prev": [ + "bool sqlite_prev(resource result)", + "* Seek to the previous row number of a result set." + ], + "sqlite_query": [ + "resource sqlite_query(string query, resource db [, int result_type [, string &error_message]])", + "Executes a query against a given database and returns a result handle." + ], + "sqlite_rewind": [ + "bool sqlite_rewind(resource result)", + "Seek to the first row number of a buffered result set." + ], + "sqlite_seek": [ + "bool sqlite_seek(resource result, int row)", + "Seek to a particular row number of a buffered result set." + ], + "sqlite_single_query": [ + "array sqlite_single_query(resource db, string query [, bool first_row_only [, bool decode_binary]])", + "Executes a query and returns either an array for one single column or the value of the first row." + ], + "sqlite_udf_decode_binary": [ + "string sqlite_udf_decode_binary(string data)", + "Decode binary encoding on a string parameter passed to an UDF." + ], + "sqlite_udf_encode_binary": [ + "string sqlite_udf_encode_binary(string data)", + "Apply binary encoding (if required) to a string to return from an UDF." + ], + "sqlite_unbuffered_query": [ + "resource sqlite_unbuffered_query(string query, resource db [ , int result_type [, string &error_message]])", + "Executes a query that does not prefetch and buffer all data." + ], + "sqlite_valid": [ + "bool sqlite_valid(resource result)", + "Returns whether more rows are available." + ], + "sqrt": [ + "float sqrt(float number)", + "Returns the square root of the number" + ], + "srand": [ + "void srand([int seed])", + "Seeds random number generator" + ], + "sscanf": [ + "mixed sscanf(string str, string format [, string ...])", + "Implements an ANSI C compatible sscanf" + ], + "stat": [ + "array stat(string filename)", + "Give information about a file" + ], + "str_getcsv": [ + "array str_getcsv(string input[, string delimiter[, string enclosure[, string escape]]])", + "Parse a CSV string into an array" + ], + "str_ireplace": [ + "mixed str_ireplace(mixed search, mixed replace, mixed subject [, int &replace_count])", + "Replaces all occurrences of search in haystack with replace / case-insensitive" + ], + "str_pad": [ + "string str_pad(string input, int pad_length [, string pad_string [, int pad_type]])", + "Returns input string padded on the left or right to specified length with pad_string" + ], + "str_repeat": [ + "string str_repeat(string input, int mult)", + "Returns the input string repeat mult times" + ], + "str_replace": [ + "mixed str_replace(mixed search, mixed replace, mixed subject [, int &replace_count])", + "Replaces all occurrences of search in haystack with replace" + ], + "str_rot13": [ + "string str_rot13(string str)", + "Perform the rot13 transform on a string" + ], + "str_shuffle": [ + "void str_shuffle(string str)", + "Shuffles string. One permutation of all possible is created" + ], + "str_split": [ + "array str_split(string str [, int split_length])", + "Convert a string to an array. If split_length is specified, break the string down into chunks each split_length characters long." + ], + "str_word_count": [ + "mixed str_word_count(string str, [int format [, string charlist]])", + "Counts the number of words inside a string. If format of 1 is specified, then the function will return an array containing all the words found inside the string. If format of 2 is specified, then the function will return an associated array where the position of the word is the key and the word itself is the value. For the purpose of this function, 'word' is defined as a locale dependent string containing alphabetic characters, which also may contain, but not start with \"'\" and \"-\" characters." + ], + "strcasecmp": [ + "int strcasecmp(string str1, string str2)", + "Binary safe case-insensitive string comparison" + ], + "strchr": [ + "string strchr(string haystack, string needle)", + "An alias for strstr" + ], + "strcmp": [ + "int strcmp(string str1, string str2)", + "Binary safe string comparison" + ], + "strcoll": [ + "int strcoll(string str1, string str2)", + "Compares two strings using the current locale" + ], + "strcspn": [ + "int strcspn(string str, string mask [, start [, len]])", + "Finds length of initial segment consisting entirely of characters not found in mask. If start or/and length is provide works like strcspn(substr($s,$start,$len),$bad_chars)" + ], + "stream_bucket_append": [ + "void stream_bucket_append(resource brigade, resource bucket)", + "Append bucket to brigade" + ], + "stream_bucket_make_writeable": [ + "object stream_bucket_make_writeable(resource brigade)", + "Return a bucket object from the brigade for operating on" + ], + "stream_bucket_new": [ + "resource stream_bucket_new(resource stream, string buffer)", + "Create a new bucket for use on the current stream" + ], + "stream_bucket_prepend": [ + "void stream_bucket_prepend(resource brigade, resource bucket)", + "Prepend bucket to brigade" + ], + "stream_context_create": [ + "resource stream_context_create([array options[, array params]])", + "Create a file context and optionally set parameters" + ], + "stream_context_get_default": [ + "resource stream_context_get_default([array options])", + "Get a handle on the default file/stream context and optionally set parameters" + ], + "stream_context_get_options": [ + "array stream_context_get_options(resource context|resource stream)", + "Retrieve options for a stream/wrapper/context" + ], + "stream_context_get_params": [ + "array stream_context_get_params(resource context|resource stream)", + "Get parameters of a file context" + ], + "stream_context_set_default": [ + "resource stream_context_set_default(array options)", + "Set default file/stream context, returns the context as a resource" + ], + "stream_context_set_option": [ + "bool stream_context_set_option(resource context|resource stream, string wrappername, string optionname, mixed value)", + "Set an option for a wrapper" + ], + "stream_context_set_params": [ + "bool stream_context_set_params(resource context|resource stream, array options)", + "Set parameters for a file context" + ], + "stream_copy_to_stream": [ + "long stream_copy_to_stream(resource source, resource dest [, long maxlen [, long pos]])", + "Reads up to maxlen bytes from source stream and writes them to dest stream." + ], + "stream_filter_append": [ + "resource stream_filter_append(resource stream, string filtername[, int read_write[, string filterparams]])", + "Append a filter to a stream" + ], + "stream_filter_prepend": [ + "resource stream_filter_prepend(resource stream, string filtername[, int read_write[, string filterparams]])", + "Prepend a filter to a stream" + ], + "stream_filter_register": [ + "bool stream_filter_register(string filtername, string classname)", + "Registers a custom filter handler class" + ], + "stream_filter_remove": [ + "bool stream_filter_remove(resource stream_filter)", + "Flushes any data in the filter's internal buffer, removes it from the chain, and frees the resource" + ], + "stream_get_contents": [ + "string stream_get_contents(resource source [, long maxlen [, long offset]])", + "Reads all remaining bytes (or up to maxlen bytes) from a stream and returns them as a string." + ], + "stream_get_filters": [ + "array stream_get_filters(void)", + "Returns a list of registered filters" + ], + "stream_get_line": [ + "string stream_get_line(resource stream, int maxlen [, string ending])", + "Read up to maxlen bytes from a stream or until the ending string is found" + ], + "stream_get_meta_data": [ + "array stream_get_meta_data(resource fp)", + "Retrieves header/meta data from streams/file pointers" + ], + "stream_get_transports": [ + "array stream_get_transports()", + "Retrieves list of registered socket transports" + ], + "stream_get_wrappers": [ + "array stream_get_wrappers()", + "Retrieves list of registered stream wrappers" + ], + "stream_is_local": [ + "bool stream_is_local(resource stream|string url)", + "" + ], + "stream_resolve_include_path": [ + "string stream_resolve_include_path(string filename)", + "Determine what file will be opened by calls to fopen() with a relative path" + ], + "stream_select": [ + "int stream_select(array &read_streams, array &write_streams, array &except_streams, int tv_sec[, int tv_usec])", + "Runs the select() system call on the sets of streams with a timeout specified by tv_sec and tv_usec" + ], + "stream_set_blocking": [ + "bool stream_set_blocking(resource socket, int mode)", + "Set blocking/non-blocking mode on a socket or stream" + ], + "stream_set_timeout": [ + "bool stream_set_timeout(resource stream, int seconds [, int microseconds])", + "Set timeout on stream read to seconds + microseonds" + ], + "stream_set_write_buffer": [ + "int stream_set_write_buffer(resource fp, int buffer)", + "Set file write buffer" + ], + "stream_socket_accept": [ + "resource stream_socket_accept(resource serverstream, [ double timeout [, string &peername ]])", + "Accept a client connection from a server socket" + ], + "stream_socket_client": [ + "resource stream_socket_client(string remoteaddress [, long &errcode [, string &errstring [, double timeout [, long flags [, resource context]]]]])", + "Open a client connection to a remote address" + ], + "stream_socket_enable_crypto": [ + "int stream_socket_enable_crypto(resource stream, bool enable [, int cryptokind [, resource sessionstream]])", + "Enable or disable a specific kind of crypto on the stream" + ], + "stream_socket_get_name": [ + "string stream_socket_get_name(resource stream, bool want_peer)", + "Returns either the locally bound or remote name for a socket stream" + ], + "stream_socket_pair": [ + "array stream_socket_pair(int domain, int type, int protocol)", + "Creates a pair of connected, indistinguishable socket streams" + ], + "stream_socket_recvfrom": [ + "string stream_socket_recvfrom(resource stream, long amount [, long flags [, string &remote_addr]])", + "Receives data from a socket stream" + ], + "stream_socket_sendto": [ + "long stream_socket_sendto(resouce stream, string data [, long flags [, string target_addr]])", + "Send data to a socket stream. If target_addr is specified it must be in dotted quad (or [ipv6]) format" + ], + "stream_socket_server": [ + "resource stream_socket_server(string localaddress [, long &errcode [, string &errstring [, long flags [, resource context]]]])", + "Create a server socket bound to localaddress" + ], + "stream_socket_shutdown": [ + "int stream_socket_shutdown(resource stream, int how)", + "causes all or part of a full-duplex connection on the socket associated with stream to be shut down. If how is SHUT_RD, further receptions will be disallowed. If how is SHUT_WR, further transmissions will be disallowed. If how is SHUT_RDWR, further receptions and transmissions will be disallowed." + ], + "stream_supports_lock": [ + "bool stream_supports_lock(resource stream)", + "Tells wether the stream supports locking through flock()." + ], + "stream_wrapper_register": [ + "bool stream_wrapper_register(string protocol, string classname[, integer flags])", + "Registers a custom URL protocol handler class" + ], + "stream_wrapper_restore": [ + "bool stream_wrapper_restore(string protocol)", + "Restore the original protocol handler, overriding if necessary" + ], + "stream_wrapper_unregister": [ + "bool stream_wrapper_unregister(string protocol)", + "Unregister a wrapper for the life of the current request." + ], + "strftime": [ + "string strftime(string format [, int timestamp])", + "Format a local time/date according to locale settings" + ], + "strip_tags": [ + "string strip_tags(string str [, string allowable_tags])", + "Strips HTML and PHP tags from a string" + ], + "stripcslashes": [ + "string stripcslashes(string str)", + "Strips backslashes from a string. Uses C-style conventions" + ], + "stripos": [ + "int stripos(string haystack, string needle [, int offset])", + "Finds position of first occurrence of a string within another, case insensitive" + ], + "stripslashes": [ + "string stripslashes(string str)", + "Strips backslashes from a string" + ], + "stristr": [ + "string stristr(string haystack, string needle[, bool part])", + "Finds first occurrence of a string within another, case insensitive" + ], + "strlen": [ + "int strlen(string str)", + "Get string length" + ], + "strnatcasecmp": [ + "int strnatcasecmp(string s1, string s2)", + "Returns the result of case-insensitive string comparison using 'natural' algorithm" + ], + "strnatcmp": [ + "int strnatcmp(string s1, string s2)", + "Returns the result of string comparison using 'natural' algorithm" + ], + "strncasecmp": [ + "int strncasecmp(string str1, string str2, int len)", + "Binary safe string comparison" + ], + "strncmp": [ + "int strncmp(string str1, string str2, int len)", + "Binary safe string comparison" + ], + "strpbrk": [ + "array strpbrk(string haystack, string char_list)", + "Search a string for any of a set of characters" + ], + "strpos": [ + "int strpos(string haystack, string needle [, int offset])", + "Finds position of first occurrence of a string within another" + ], + "strptime": [ + "string strptime(string timestamp, string format)", + "Parse a time/date generated with strftime()" + ], + "strrchr": [ + "string strrchr(string haystack, string needle)", + "Finds the last occurrence of a character in a string within another" + ], + "strrev": [ + "string strrev(string str)", + "Reverse a string" + ], + "strripos": [ + "int strripos(string haystack, string needle [, int offset])", + "Finds position of last occurrence of a string within another string" + ], + "strrpos": [ + "int strrpos(string haystack, string needle [, int offset])", + "Finds position of last occurrence of a string within another string" + ], + "strspn": [ + "int strspn(string str, string mask [, start [, len]])", + "Finds length of initial segment consisting entirely of characters found in mask. If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars)" + ], + "strstr": [ + "string strstr(string haystack, string needle[, bool part])", + "Finds first occurrence of a string within another" + ], + "strtok": [ + "string strtok([string str,] string token)", + "Tokenize a string" + ], + "strtolower": [ + "string strtolower(string str)", + "Makes a string lowercase" + ], + "strtotime": [ + "int strtotime(string time [, int now ])", + "Convert string representation of date and time to a timestamp" + ], + "strtoupper": [ + "string strtoupper(string str)", + "Makes a string uppercase" + ], + "strtr": [ + "string strtr(string str, string from[, string to])", + "Translates characters in str using given translation tables" + ], + "strval": [ + "string strval(mixed var)", + "Get the string value of a variable" + ], + "substr": [ + "string substr(string str, int start [, int length])", + "Returns part of a string" + ], + "substr_compare": [ + "int substr_compare(string main_str, string str, int offset [, int length [, bool case_sensitivity]])", + "Binary safe optionally case insensitive comparison of 2 strings from an offset, up to length characters" + ], + "substr_count": [ + "int substr_count(string haystack, string needle [, int offset [, int length]])", + "Returns the number of times a substring occurs in the string" + ], + "substr_replace": [ + "mixed substr_replace(mixed str, mixed repl, mixed start [, mixed length])", + "Replaces part of a string with another string" + ], + "sybase_affected_rows": [ + "int sybase_affected_rows([resource link_id])", + "Get number of affected rows in last query" + ], + "sybase_close": [ + "bool sybase_close([resource link_id])", + "Close Sybase connection" + ], + "sybase_connect": [ + "int sybase_connect([string host [, string user [, string password [, string charset [, string appname [, bool new]]]]]])", + "Open Sybase server connection" + ], + "sybase_data_seek": [ + "bool sybase_data_seek(resource result, int offset)", + "Move internal row pointer" + ], + "sybase_deadlock_retry_count": [ + "void sybase_deadlock_retry_count(int retry_count)", + "Sets deadlock retry count" + ], + "sybase_fetch_array": [ + "array sybase_fetch_array(resource result)", + "Fetch row as array" + ], + "sybase_fetch_assoc": [ + "array sybase_fetch_assoc(resource result)", + "Fetch row as array without numberic indices" + ], + "sybase_fetch_field": [ + "object sybase_fetch_field(resource result [, int offset])", + "Get field information" + ], + "sybase_fetch_object": [ + "object sybase_fetch_object(resource result [, mixed object])", + "Fetch row as object" + ], + "sybase_fetch_row": [ + "array sybase_fetch_row(resource result)", + "Get row as enumerated array" + ], + "sybase_field_seek": [ + "bool sybase_field_seek(resource result, int offset)", + "Set field offset" + ], + "sybase_free_result": [ + "bool sybase_free_result(resource result)", + "Free result memory" + ], + "sybase_get_last_message": [ + "string sybase_get_last_message(void)", + "Returns the last message from server (over min_message_severity)" + ], + "sybase_min_client_severity": [ + "void sybase_min_client_severity(int severity)", + "Sets minimum client severity" + ], + "sybase_min_server_severity": [ + "void sybase_min_server_severity(int severity)", + "Sets minimum server severity" + ], + "sybase_num_fields": [ + "int sybase_num_fields(resource result)", + "Get number of fields in result" + ], + "sybase_num_rows": [ + "int sybase_num_rows(resource result)", + "Get number of rows in result" + ], + "sybase_pconnect": [ + "int sybase_pconnect([string host [, string user [, string password [, string charset [, string appname]]]]])", + "Open persistent Sybase connection" + ], + "sybase_query": [ + "int sybase_query(string query [, resource link_id])", + "Send Sybase query" + ], + "sybase_result": [ + "string sybase_result(resource result, int row, mixed field)", + "Get result data" + ], + "sybase_select_db": [ + "bool sybase_select_db(string database [, resource link_id])", + "Select Sybase database" + ], + "sybase_set_message_handler": [ + "bool sybase_set_message_handler(mixed error_func [, resource connection])", + "Set the error handler, to be called when a server message is raised. If error_func is NULL the handler will be deleted" + ], + "sybase_unbuffered_query": [ + "int sybase_unbuffered_query(string query [, resource link_id])", + "Send Sybase query" + ], + "symlink": [ + "int symlink(string target, string link)", + "Create a symbolic link" + ], + "sys_get_temp_dir": [ + "string sys_get_temp_dir()", + "Returns directory path used for temporary files" + ], + "sys_getloadavg": [ + "array sys_getloadavg()", + "" + ], + "syslog": [ + "bool syslog(int priority, string message)", + "Generate a system log message" + ], + "system": [ + "int system(string command [, int &return_value])", + "Execute an external program and display output" + ], + "tan": [ + "float tan(float number)", + "Returns the tangent of the number in radians" + ], + "tanh": [ + "float tanh(float number)", + "Returns the hyperbolic tangent of the number, defined as sinh(number)/cosh(number)" + ], + "tempnam": [ + "string tempnam(string dir, string prefix)", + "Create a unique filename in a directory" + ], + "textdomain": [ + "string textdomain(string domain)", + "Set the textdomain to \"domain\". Returns the current domain" + ], + "tidy_access_count": [ + "int tidy_access_count()", + "Returns the Number of Tidy accessibility warnings encountered for specified document." + ], + "tidy_clean_repair": [ + "boolean tidy_clean_repair()", + "Execute configured cleanup and repair operations on parsed markup" + ], + "tidy_config_count": [ + "int tidy_config_count()", + "Returns the Number of Tidy configuration errors encountered for specified document." + ], + "tidy_diagnose": [ + "boolean tidy_diagnose()", + "Run configured diagnostics on parsed and repaired markup." + ], + "tidy_error_count": [ + "int tidy_error_count()", + "Returns the Number of Tidy errors encountered for specified document." + ], + "tidy_get_body": [ + "TidyNode tidy_get_body(resource tidy)", + "Returns a TidyNode Object starting from the tag of the tidy parse tree" + ], + "tidy_get_config": [ + "array tidy_get_config()", + "Get current Tidy configuarion" + ], + "tidy_get_error_buffer": [ + "string tidy_get_error_buffer([boolean detailed])", + "Return warnings and errors which occured parsing the specified document" + ], + "tidy_get_head": [ + "TidyNode tidy_get_head()", + "Returns a TidyNode Object starting from the tag of the tidy parse tree" + ], + "tidy_get_html": [ + "TidyNode tidy_get_html()", + "Returns a TidyNode Object starting from the tag of the tidy parse tree" + ], + "tidy_get_html_ver": [ + "int tidy_get_html_ver()", + "Get the Detected HTML version for the specified document." + ], + "tidy_get_opt_doc": [ + "string tidy_get_opt_doc(tidy resource, string optname)", + "Returns the documentation for the given option name" + ], + "tidy_get_output": [ + "string tidy_get_output()", + "Return a string representing the parsed tidy markup" + ], + "tidy_get_release": [ + "string tidy_get_release()", + "Get release date (version) for Tidy library" + ], + "tidy_get_root": [ + "TidyNode tidy_get_root()", + "Returns a TidyNode Object representing the root of the tidy parse tree" + ], + "tidy_get_status": [ + "int tidy_get_status()", + "Get status of specfied document." + ], + "tidy_getopt": [ + "mixed tidy_getopt(string option)", + "Returns the value of the specified configuration option for the tidy document." + ], + "tidy_is_xhtml": [ + "boolean tidy_is_xhtml()", + "Indicates if the document is a XHTML document." + ], + "tidy_is_xml": [ + "boolean tidy_is_xml()", + "Indicates if the document is a generic (non HTML/XHTML) XML document." + ], + "tidy_parse_file": [ + "boolean tidy_parse_file(string file [, mixed config_options [, string encoding [, bool use_include_path]]])", + "Parse markup in file or URI" + ], + "tidy_parse_string": [ + "bool tidy_parse_string(string input [, mixed config_options [, string encoding]])", + "Parse a document stored in a string" + ], + "tidy_repair_file": [ + "boolean tidy_repair_file(string filename [, mixed config_file [, string encoding [, bool use_include_path]]])", + "Repair a file using an optionally provided configuration file" + ], + "tidy_repair_string": [ + "boolean tidy_repair_string(string data [, mixed config_file [, string encoding]])", + "Repair a string using an optionally provided configuration file" + ], + "tidy_warning_count": [ + "int tidy_warning_count()", + "Returns the Number of Tidy warnings encountered for specified document." + ], + "time": [ + "int time(void)", + "Return current UNIX timestamp" + ], + "time_nanosleep": [ + "mixed time_nanosleep(long seconds, long nanoseconds)", + "Delay for a number of seconds and nano seconds" + ], + "time_sleep_until": [ + "mixed time_sleep_until(float timestamp)", + "Make the script sleep until the specified time" + ], + "timezone_abbreviations_list": [ + "array timezone_abbreviations_list()", + "Returns associative array containing dst, offset and the timezone name" + ], + "timezone_identifiers_list": [ + "array timezone_identifiers_list([long what[, string country]])", + "Returns numerically index array with all timezone identifiers." + ], + "timezone_location_get": [ + "array timezone_location_get()", + "Returns location information for a timezone, including country code, latitude/longitude and comments" + ], + "timezone_name_from_abbr": [ + "string timezone_name_from_abbr(string abbr[, long gmtOffset[, long isdst]])", + "Returns the timezone name from abbrevation" + ], + "timezone_name_get": [ + "string timezone_name_get(DateTimeZone object)", + "Returns the name of the timezone." + ], + "timezone_offset_get": [ + "long timezone_offset_get(DateTimeZone object, DateTime object)", + "Returns the timezone offset." + ], + "timezone_open": [ + "DateTimeZone timezone_open(string timezone)", + "Returns new DateTimeZone object" + ], + "timezone_transitions_get": [ + "array timezone_transitions_get(DateTimeZone object [, long timestamp_begin [, long timestamp_end ]])", + "Returns numerically indexed array containing associative array for all transitions in the specified range for the timezone." + ], + "timezone_version_get": [ + "array timezone_version_get()", + "Returns the Olson database version number." + ], + "tmpfile": [ + "resource tmpfile(void)", + "Create a temporary file that will be deleted automatically after use" + ], + "token_get_all": [ + "array token_get_all(string source)", + "" + ], + "token_name": [ + "string token_name(int type)", + "" + ], + "touch": [ + "bool touch(string filename [, int time [, int atime]])", + "Set modification time of file" + ], + "trigger_error": [ + "void trigger_error(string messsage [, int error_type])", + "Generates a user-level error/warning/notice message" + ], + "trim": [ + "string trim(string str [, string character_mask])", + "Strips whitespace from the beginning and end of a string" + ], + "uasort": [ + "bool uasort(array array_arg, string cmp_function)", + "Sort an array with a user-defined comparison function and maintain index association" + ], + "ucfirst": [ + "string ucfirst(string str)", + "Make a string's first character lowercase" + ], + "ucwords": [ + "string ucwords(string str)", + "Uppercase the first character of every word in a string" + ], + "uksort": [ + "bool uksort(array array_arg, string cmp_function)", + "Sort an array by keys using a user-defined comparison function" + ], + "umask": [ + "int umask([int mask])", + "Return or change the umask" + ], + "uniqid": [ + "string uniqid([string prefix [, bool more_entropy]])", + "Generates a unique ID" + ], + "unixtojd": [ + "int unixtojd([int timestamp])", + "Convert UNIX timestamp to Julian Day" + ], + "unlink": [ + "bool unlink(string filename[, context context])", + "Delete a file" + ], + "unpack": [ + "array unpack(string format, string input)", + "Unpack binary string into named array elements according to format argument" + ], + "unregister_tick_function": [ + "void unregister_tick_function(string function_name)", + "Unregisters a tick callback function" + ], + "unserialize": [ + "mixed unserialize(string variable_representation)", + "Takes a string representation of variable and recreates it" + ], + "unset": [ + "void unset (mixed var [, mixed var])", + "Unset a given variable" + ], + "urldecode": [ + "string urldecode(string str)", + "Decodes URL-encoded string" + ], + "urlencode": [ + "string urlencode(string str)", + "URL-encodes string" + ], + "usleep": [ + "void usleep(int micro_seconds)", + "Delay for a given number of micro seconds" + ], + "usort": [ + "bool usort(array array_arg, string cmp_function)", + "Sort an array by values using a user-defined comparison function" + ], + "utf8_decode": [ + "string utf8_decode(string data)", + "Converts a UTF-8 encoded string to ISO-8859-1" + ], + "utf8_encode": [ + "string utf8_encode(string data)", + "Encodes an ISO-8859-1 string to UTF-8" + ], + "var_dump": [ + "void var_dump(mixed var)", + "Dumps a string representation of variable to output" + ], + "var_export": [ + "mixed var_export(mixed var [, bool return])", + "Outputs or returns a string representation of a variable" + ], + "variant_abs": [ + "mixed variant_abs(mixed left)", + "Returns the absolute value of a variant" + ], + "variant_add": [ + "mixed variant_add(mixed left, mixed right)", + "\"Adds\" two variant values together and returns the result" + ], + "variant_and": [ + "mixed variant_and(mixed left, mixed right)", + "performs a bitwise AND operation between two variants and returns the result" + ], + "variant_cast": [ + "object variant_cast(object variant, int type)", + "Convert a variant into a new variant object of another type" + ], + "variant_cat": [ + "mixed variant_cat(mixed left, mixed right)", + "concatenates two variant values together and returns the result" + ], + "variant_cmp": [ + "int variant_cmp(mixed left, mixed right [, int lcid [, int flags]])", + "Compares two variants" + ], + "variant_date_from_timestamp": [ + "object variant_date_from_timestamp(int timestamp)", + "Returns a variant date representation of a unix timestamp" + ], + "variant_date_to_timestamp": [ + "int variant_date_to_timestamp(object variant)", + "Converts a variant date/time value to unix timestamp" + ], + "variant_div": [ + "mixed variant_div(mixed left, mixed right)", + "Returns the result from dividing two variants" + ], + "variant_eqv": [ + "mixed variant_eqv(mixed left, mixed right)", + "Performs a bitwise equivalence on two variants" + ], + "variant_fix": [ + "mixed variant_fix(mixed left)", + "Returns the integer part ? of a variant" + ], + "variant_get_type": [ + "int variant_get_type(object variant)", + "Returns the VT_XXX type code for a variant" + ], + "variant_idiv": [ + "mixed variant_idiv(mixed left, mixed right)", + "Converts variants to integers and then returns the result from dividing them" + ], + "variant_imp": [ + "mixed variant_imp(mixed left, mixed right)", + "Performs a bitwise implication on two variants" + ], + "variant_int": [ + "mixed variant_int(mixed left)", + "Returns the integer portion of a variant" + ], + "variant_mod": [ + "mixed variant_mod(mixed left, mixed right)", + "Divides two variants and returns only the remainder" + ], + "variant_mul": [ + "mixed variant_mul(mixed left, mixed right)", + "multiplies the values of the two variants and returns the result" + ], + "variant_neg": [ + "mixed variant_neg(mixed left)", + "Performs logical negation on a variant" + ], + "variant_not": [ + "mixed variant_not(mixed left)", + "Performs bitwise not negation on a variant" + ], + "variant_or": [ + "mixed variant_or(mixed left, mixed right)", + "Performs a logical disjunction on two variants" + ], + "variant_pow": [ + "mixed variant_pow(mixed left, mixed right)", + "Returns the result of performing the power function with two variants" + ], + "variant_round": [ + "mixed variant_round(mixed left, int decimals)", + "Rounds a variant to the specified number of decimal places" + ], + "variant_set": [ + "void variant_set(object variant, mixed value)", + "Assigns a new value for a variant object" + ], + "variant_set_type": [ + "void variant_set_type(object variant, int type)", + "Convert a variant into another type. Variant is modified \"in-place\"" + ], + "variant_sub": [ + "mixed variant_sub(mixed left, mixed right)", + "subtracts the value of the right variant from the left variant value and returns the result" + ], + "variant_xor": [ + "mixed variant_xor(mixed left, mixed right)", + "Performs a logical exclusion on two variants" + ], + "version_compare": [ + "int version_compare(string ver1, string ver2 [, string oper])", + "Compares two \"PHP-standardized\" version number strings" + ], + "vfprintf": [ + "int vfprintf(resource stream, string format, array args)", + "Output a formatted string into a stream" + ], + "virtual": [ + "bool virtual(string filename)", + "Perform an Apache sub-request" + ], + "vprintf": [ + "int vprintf(string format, array args)", + "Output a formatted string" + ], + "vsprintf": [ + "string vsprintf(string format, array args)", + "Return a formatted string" + ], + "wddx_add_vars": [ + "int wddx_add_vars(resource packet_id, mixed var_names [, mixed ...])", + "Serializes given variables and adds them to packet given by packet_id" + ], + "wddx_deserialize": [ + "mixed wddx_deserialize(mixed packet)", + "Deserializes given packet and returns a PHP value" + ], + "wddx_packet_end": [ + "string wddx_packet_end(resource packet_id)", + "Ends specified WDDX packet and returns the string containing the packet" + ], + "wddx_packet_start": [ + "resource wddx_packet_start([string comment])", + "Starts a WDDX packet with optional comment and returns the packet id" + ], + "wddx_serialize_value": [ + "string wddx_serialize_value(mixed var [, string comment])", + "Creates a new packet and serializes the given value" + ], + "wddx_serialize_vars": [ + "string wddx_serialize_vars(mixed var_name [, mixed ...])", + "Creates a new packet and serializes given variables into a struct" + ], + "wordwrap": [ + "string wordwrap(string str [, int width [, string break [, boolean cut]]])", + "Wraps buffer to selected number of characters using string break char" + ], + "xml_error_string": [ + "string xml_error_string(int code)", + "Get XML parser error string" + ], + "xml_get_current_byte_index": [ + "int xml_get_current_byte_index(resource parser)", + "Get current byte index for an XML parser" + ], + "xml_get_current_column_number": [ + "int xml_get_current_column_number(resource parser)", + "Get current column number for an XML parser" + ], + "xml_get_current_line_number": [ + "int xml_get_current_line_number(resource parser)", + "Get current line number for an XML parser" + ], + "xml_get_error_code": [ + "int xml_get_error_code(resource parser)", + "Get XML parser error code" + ], + "xml_parse": [ + "int xml_parse(resource parser, string data [, int isFinal])", + "Start parsing an XML document" + ], + "xml_parse_into_struct": [ + "int xml_parse_into_struct(resource parser, string data, array &values [, array &index ])", + "Parsing a XML document" + ], + "xml_parser_create": [ + "resource xml_parser_create([string encoding])", + "Create an XML parser" + ], + "xml_parser_create_ns": [ + "resource xml_parser_create_ns([string encoding [, string sep]])", + "Create an XML parser" + ], + "xml_parser_free": [ + "int xml_parser_free(resource parser)", + "Free an XML parser" + ], + "xml_parser_get_option": [ + "int xml_parser_get_option(resource parser, int option)", + "Get options from an XML parser" + ], + "xml_parser_set_option": [ + "int xml_parser_set_option(resource parser, int option, mixed value)", + "Set options in an XML parser" + ], + "xml_set_character_data_handler": [ + "int xml_set_character_data_handler(resource parser, string hdl)", + "Set up character data handler" + ], + "xml_set_default_handler": [ + "int xml_set_default_handler(resource parser, string hdl)", + "Set up default handler" + ], + "xml_set_element_handler": [ + "int xml_set_element_handler(resource parser, string shdl, string ehdl)", + "Set up start and end element handlers" + ], + "xml_set_end_namespace_decl_handler": [ + "int xml_set_end_namespace_decl_handler(resource parser, string hdl)", + "Set up character data handler" + ], + "xml_set_external_entity_ref_handler": [ + "int xml_set_external_entity_ref_handler(resource parser, string hdl)", + "Set up external entity reference handler" + ], + "xml_set_notation_decl_handler": [ + "int xml_set_notation_decl_handler(resource parser, string hdl)", + "Set up notation declaration handler" + ], + "xml_set_object": [ + "int xml_set_object(resource parser, object &obj)", + "Set up object which should be used for callbacks" + ], + "xml_set_processing_instruction_handler": [ + "int xml_set_processing_instruction_handler(resource parser, string hdl)", + "Set up processing instruction (PI) handler" + ], + "xml_set_start_namespace_decl_handler": [ + "int xml_set_start_namespace_decl_handler(resource parser, string hdl)", + "Set up character data handler" + ], + "xml_set_unparsed_entity_decl_handler": [ + "int xml_set_unparsed_entity_decl_handler(resource parser, string hdl)", + "Set up unparsed entity declaration handler" + ], + "xmlrpc_decode": [ + "array xmlrpc_decode(string xml [, string encoding])", + "Decodes XML into native PHP types" + ], + "xmlrpc_decode_request": [ + "array xmlrpc_decode_request(string xml, string& method [, string encoding])", + "Decodes XML into native PHP types" + ], + "xmlrpc_encode": [ + "string xmlrpc_encode(mixed value)", + "Generates XML for a PHP value" + ], + "xmlrpc_encode_request": [ + "string xmlrpc_encode_request(string method, mixed params [, array output_options])", + "Generates XML for a method request" + ], + "xmlrpc_get_type": [ + "string xmlrpc_get_type(mixed value)", + "Gets xmlrpc type for a PHP value. Especially useful for base64 and datetime strings" + ], + "xmlrpc_is_fault": [ + "bool xmlrpc_is_fault(array)", + "Determines if an array value represents an XMLRPC fault." + ], + "xmlrpc_parse_method_descriptions": [ + "array xmlrpc_parse_method_descriptions(string xml)", + "Decodes XML into a list of method descriptions" + ], + "xmlrpc_server_add_introspection_data": [ + "int xmlrpc_server_add_introspection_data(resource server, array desc)", + "Adds introspection documentation" + ], + "xmlrpc_server_call_method": [ + "mixed xmlrpc_server_call_method(resource server, string xml, mixed user_data [, array output_options])", + "Parses XML requests and call methods" + ], + "xmlrpc_server_create": [ + "resource xmlrpc_server_create(void)", + "Creates an xmlrpc server" + ], + "xmlrpc_server_destroy": [ + "int xmlrpc_server_destroy(resource server)", + "Destroys server resources" + ], + "xmlrpc_server_register_introspection_callback": [ + "bool xmlrpc_server_register_introspection_callback(resource server, string function)", + "Register a PHP function to generate documentation" + ], + "xmlrpc_server_register_method": [ + "bool xmlrpc_server_register_method(resource server, string method_name, string function)", + "Register a PHP function to handle method matching method_name" + ], + "xmlrpc_set_type": [ + "bool xmlrpc_set_type(string value, string type)", + "Sets xmlrpc type, base64 or datetime, for a PHP string value" + ], + "xmlwriter_end_attribute": [ + "bool xmlwriter_end_attribute(resource xmlwriter)", + "End attribute - returns FALSE on error" + ], + "xmlwriter_end_cdata": [ + "bool xmlwriter_end_cdata(resource xmlwriter)", + "End current CDATA - returns FALSE on error" + ], + "xmlwriter_end_comment": [ + "bool xmlwriter_end_comment(resource xmlwriter)", + "Create end comment - returns FALSE on error" + ], + "xmlwriter_end_document": [ + "bool xmlwriter_end_document(resource xmlwriter)", + "End current document - returns FALSE on error" + ], + "xmlwriter_end_dtd": [ + "bool xmlwriter_end_dtd(resource xmlwriter)", + "End current DTD - returns FALSE on error" + ], + "xmlwriter_end_dtd_attlist": [ + "bool xmlwriter_end_dtd_attlist(resource xmlwriter)", + "End current DTD AttList - returns FALSE on error" + ], + "xmlwriter_end_dtd_element": [ + "bool xmlwriter_end_dtd_element(resource xmlwriter)", + "End current DTD element - returns FALSE on error" + ], + "xmlwriter_end_dtd_entity": [ + "bool xmlwriter_end_dtd_entity(resource xmlwriter)", + "End current DTD Entity - returns FALSE on error" + ], + "xmlwriter_end_element": [ + "bool xmlwriter_end_element(resource xmlwriter)", + "End current element - returns FALSE on error" + ], + "xmlwriter_end_pi": [ + "bool xmlwriter_end_pi(resource xmlwriter)", + "End current PI - returns FALSE on error" + ], + "xmlwriter_flush": [ + "mixed xmlwriter_flush(resource xmlwriter [,bool empty])", + "Output current buffer" + ], + "xmlwriter_full_end_element": [ + "bool xmlwriter_full_end_element(resource xmlwriter)", + "End current element - returns FALSE on error" + ], + "xmlwriter_open_memory": [ + "resource xmlwriter_open_memory()", + "Create new xmlwriter using memory for string output" + ], + "xmlwriter_open_uri": [ + "resource xmlwriter_open_uri(resource xmlwriter, string source)", + "Create new xmlwriter using source uri for output" + ], + "xmlwriter_output_memory": [ + "string xmlwriter_output_memory(resource xmlwriter [,bool flush])", + "Output current buffer as string" + ], + "xmlwriter_set_indent": [ + "bool xmlwriter_set_indent(resource xmlwriter, bool indent)", + "Toggle indentation on/off - returns FALSE on error" + ], + "xmlwriter_set_indent_string": [ + "bool xmlwriter_set_indent_string(resource xmlwriter, string indentString)", + "Set string used for indenting - returns FALSE on error" + ], + "xmlwriter_start_attribute": [ + "bool xmlwriter_start_attribute(resource xmlwriter, string name)", + "Create start attribute - returns FALSE on error" + ], + "xmlwriter_start_attribute_ns": [ + "bool xmlwriter_start_attribute_ns(resource xmlwriter, string prefix, string name, string uri)", + "Create start namespaced attribute - returns FALSE on error" + ], + "xmlwriter_start_cdata": [ + "bool xmlwriter_start_cdata(resource xmlwriter)", + "Create start CDATA tag - returns FALSE on error" + ], + "xmlwriter_start_comment": [ + "bool xmlwriter_start_comment(resource xmlwriter)", + "Create start comment - returns FALSE on error" + ], + "xmlwriter_start_document": [ + "bool xmlwriter_start_document(resource xmlwriter, string version, string encoding, string standalone)", + "Create document tag - returns FALSE on error" + ], + "xmlwriter_start_dtd": [ + "bool xmlwriter_start_dtd(resource xmlwriter, string name, string pubid, string sysid)", + "Create start DTD tag - returns FALSE on error" + ], + "xmlwriter_start_dtd_attlist": [ + "bool xmlwriter_start_dtd_attlist(resource xmlwriter, string name)", + "Create start DTD AttList - returns FALSE on error" + ], + "xmlwriter_start_dtd_element": [ + "bool xmlwriter_start_dtd_element(resource xmlwriter, string name)", + "Create start DTD element - returns FALSE on error" + ], + "xmlwriter_start_dtd_entity": [ + "bool xmlwriter_start_dtd_entity(resource xmlwriter, string name, bool isparam)", + "Create start DTD Entity - returns FALSE on error" + ], + "xmlwriter_start_element": [ + "bool xmlwriter_start_element(resource xmlwriter, string name)", + "Create start element tag - returns FALSE on error" + ], + "xmlwriter_start_element_ns": [ + "bool xmlwriter_start_element_ns(resource xmlwriter, string prefix, string name, string uri)", + "Create start namespaced element tag - returns FALSE on error" + ], + "xmlwriter_start_pi": [ + "bool xmlwriter_start_pi(resource xmlwriter, string target)", + "Create start PI tag - returns FALSE on error" + ], + "xmlwriter_text": [ + "bool xmlwriter_text(resource xmlwriter, string content)", + "Write text - returns FALSE on error" + ], + "xmlwriter_write_attribute": [ + "bool xmlwriter_write_attribute(resource xmlwriter, string name, string content)", + "Write full attribute - returns FALSE on error" + ], + "xmlwriter_write_attribute_ns": [ + "bool xmlwriter_write_attribute_ns(resource xmlwriter, string prefix, string name, string uri, string content)", + "Write full namespaced attribute - returns FALSE on error" + ], + "xmlwriter_write_cdata": [ + "bool xmlwriter_write_cdata(resource xmlwriter, string content)", + "Write full CDATA tag - returns FALSE on error" + ], + "xmlwriter_write_comment": [ + "bool xmlwriter_write_comment(resource xmlwriter, string content)", + "Write full comment tag - returns FALSE on error" + ], + "xmlwriter_write_dtd": [ + "bool xmlwriter_write_dtd(resource xmlwriter, string name, string pubid, string sysid, string subset)", + "Write full DTD tag - returns FALSE on error" + ], + "xmlwriter_write_dtd_attlist": [ + "bool xmlwriter_write_dtd_attlist(resource xmlwriter, string name, string content)", + "Write full DTD AttList tag - returns FALSE on error" + ], + "xmlwriter_write_dtd_element": [ + "bool xmlwriter_write_dtd_element(resource xmlwriter, string name, string content)", + "Write full DTD element tag - returns FALSE on error" + ], + "xmlwriter_write_dtd_entity": [ + "bool xmlwriter_write_dtd_entity(resource xmlwriter, string name, string content [, int pe [, string pubid [, string sysid [, string ndataid]]]])", + "Write full DTD Entity tag - returns FALSE on error" + ], + "xmlwriter_write_element": [ + "bool xmlwriter_write_element(resource xmlwriter, string name[, string content])", + "Write full element tag - returns FALSE on error" + ], + "xmlwriter_write_element_ns": [ + "bool xmlwriter_write_element_ns(resource xmlwriter, string prefix, string name, string uri[, string content])", + "Write full namesapced element tag - returns FALSE on error" + ], + "xmlwriter_write_pi": [ + "bool xmlwriter_write_pi(resource xmlwriter, string target, string content)", + "Write full PI tag - returns FALSE on error" + ], + "xmlwriter_write_raw": [ + "bool xmlwriter_write_raw(resource xmlwriter, string content)", + "Write text - returns FALSE on error" + ], + "xsl_xsltprocessor_get_parameter": [ + "string xsl_xsltprocessor_get_parameter(string namespace, string name);", + "" + ], + "xsl_xsltprocessor_has_exslt_support": [ + "bool xsl_xsltprocessor_has_exslt_support();", + "" + ], + "xsl_xsltprocessor_import_stylesheet": [ + "void xsl_xsltprocessor_import_stylesheet(domdocument doc);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:" + ], + "xsl_xsltprocessor_register_php_functions": [ + "void xsl_xsltprocessor_register_php_functions([mixed $restrict]);", + "" + ], + "xsl_xsltprocessor_remove_parameter": [ + "bool xsl_xsltprocessor_remove_parameter(string namespace, string name);", + "" + ], + "xsl_xsltprocessor_set_parameter": [ + "bool xsl_xsltprocessor_set_parameter(string namespace, mixed name [, string value]);", + "" + ], + "xsl_xsltprocessor_set_profiling": [ + "bool xsl_xsltprocessor_set_profiling(string filename) */", + "PHP_FUNCTION(xsl_xsltprocessor_set_profiling) { zval *id; xsl_object *intern; char *filename = NULL; int filename_len; DOM_GET_THIS(id); if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, \"s!\", &filename, &filename_len) == SUCCESS) { intern = (xsl_object *)zend_object_store_get_object(id TSRMLS_CC); if (intern->profiling) { efree(intern->profiling); } if (filename != NULL) { intern->profiling = estrndup(filename,filename_len); } else { intern->profiling = NULL; } RETURN_TRUE; } else { WRONG_PARAM_COUNT; } } /* }}} end xsl_xsltprocessor_set_profiling" + ], + "xsl_xsltprocessor_transform_to_doc": [ + "domdocument xsl_xsltprocessor_transform_to_doc(domnode doc);", + "URL: http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/DOM3-Core.html# Since:" + ], + "xsl_xsltprocessor_transform_to_uri": [ + "int xsl_xsltprocessor_transform_to_uri(domdocument doc, string uri);", + "" + ], + "xsl_xsltprocessor_transform_to_xml": [ + "string xsl_xsltprocessor_transform_to_xml(domdocument doc);", + "" + ], + "zend_logo_guid": [ + "string zend_logo_guid(void)", + "Return the special ID used to request the Zend logo in phpinfo screens" + ], + "zend_version": [ + "string zend_version(void)", + "Get the version of the Zend Engine" + ], + "zip_close": [ + "void zip_close(resource zip)", + "Close a Zip archive" + ], + "zip_entry_close": [ + "void zip_entry_close(resource zip_ent)", + "Close a zip entry" + ], + "zip_entry_compressedsize": [ + "int zip_entry_compressedsize(resource zip_entry)", + "Return the compressed size of a ZZip entry" + ], + "zip_entry_compressionmethod": [ + "string zip_entry_compressionmethod(resource zip_entry)", + "Return a string containing the compression method used on a particular entry" + ], + "zip_entry_filesize": [ + "int zip_entry_filesize(resource zip_entry)", + "Return the actual filesize of a ZZip entry" + ], + "zip_entry_name": [ + "string zip_entry_name(resource zip_entry)", + "Return the name given a ZZip entry" + ], + "zip_entry_open": [ + "bool zip_entry_open(resource zip_dp, resource zip_entry [, string mode])", + "Open a Zip File, pointed by the resource entry" + ], + "zip_entry_read": [ + "mixed zip_entry_read(resource zip_entry [, int len])", + "Read from an open directory entry" + ], + "zip_open": [ + "resource zip_open(string filename)", + "Create new zip using source uri for output" + ], + "zip_read": [ + "resource zip_read(resource zip)", + "Returns the next file in the archive" + ], + "zlib_get_coding_type": [ + "string zlib_get_coding_type(void)", + "Returns the coding type used for output compression" + ] +}; + +var variableMap = { + "$_COOKIE": { + type: "array" + }, + "$_ENV": { + type: "array" + }, + "$_FILES": { + type: "array" + }, + "$_GET": { + type: "array" + }, + "$_POST": { + type: "array" + }, + "$_REQUEST": { + type: "array" + }, + "$_SERVER": { + type: "array", + value: { + "DOCUMENT_ROOT": 1, + "GATEWAY_INTERFACE": 1, + "HTTP_ACCEPT": 1, + "HTTP_ACCEPT_CHARSET": 1, + "HTTP_ACCEPT_ENCODING": 1 , + "HTTP_ACCEPT_LANGUAGE": 1, + "HTTP_CONNECTION": 1, + "HTTP_HOST": 1, + "HTTP_REFERER": 1, + "HTTP_USER_AGENT": 1, + "PATH_TRANSLATED": 1, + "PHP_SELF": 1, + "QUERY_STRING": 1, + "REMOTE_ADDR": 1, + "REMOTE_PORT": 1, + "REQUEST_METHOD": 1, + "REQUEST_URI": 1, + "SCRIPT_FILENAME": 1, + "SCRIPT_NAME": 1, + "SERVER_ADMIN": 1, + "SERVER_NAME": 1, + "SERVER_PORT": 1, + "SERVER_PROTOCOL": 1, + "SERVER_SIGNATURE": 1, + "SERVER_SOFTWARE": 1 + } + }, + "$_SESSION": { + type: "array" + }, + "$GLOBALS": { + type: "array" + } +}; + +function is(token, type) { + return token.type.lastIndexOf(type) > -1; +} + +var PhpCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (token.type==='identifier') + return this.getFunctionCompletions(state, session, pos, prefix); + if (is(token, "variable")) + return this.getVariableCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (token.type==='string' && /(\$[\w]*)\[["']([^'"]*)$/i.test(line)) + return this.getArrayKeyCompletions(state, session, pos, prefix); + + return []; + }; + + this.getFunctionCompletions = function(state, session, pos, prefix) { + var functions = Object.keys(functionMap); + return functions.map(function(func){ + return { + caption: func, + snippet: func + '($0)', + meta: "php function", + score: Number.MAX_VALUE, + docHTML: functionMap[func][1] + }; + }); + }; + + this.getVariableCompletions = function(state, session, pos, prefix) { + var variables = Object.keys(variableMap); + return variables.map(function(variable){ + return { + caption: variable, + value: variable, + meta: "php variable", + score: Number.MAX_VALUE + }; + }); + }; + + this.getArrayKeyCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var variable = line.match(/(\$[\w]*)\[["']([^'"]*)$/i)[1]; + + if (!variableMap[variable]) { + return []; + } + + var keys = []; + if (variableMap[variable].type==='array' && variableMap[variable].value) + keys = Object.keys(variableMap[variable].value); + + return keys.map(function(key) { + return { + caption: key, + value: key, + meta: "php array key", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(PhpCompletions.prototype); + +exports.PhpCompletions = PhpCompletions; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/php",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/php_highlight_rules","ace/mode/php_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/worker/worker_client","ace/mode/php_completions","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/unicode","ace/mode/html","ace/mode/javascript","ace/mode/css"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PhpHighlightRules = require("./php_highlight_rules").PhpHighlightRules; +var PhpLangHighlightRules = require("./php_highlight_rules").PhpLangHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var PhpCompletions = require("./php_completions").PhpCompletions; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var unicode = require("../unicode"); +var HtmlMode = require("./html").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; + +var PhpMode = function(opts) { + this.HighlightRules = PhpLangHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.$completer = new PhpCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(PhpMode, TextMode); + +(function() { + + this.tokenRe = new RegExp("^[" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "_]+", "g" + ); + + this.nonTokenRe = new RegExp("^(?:[^" + + unicode.packages.L + + unicode.packages.Mn + unicode.packages.Mc + + unicode.packages.Nd + + unicode.packages.Pc + "_]|\\s])+", "g" + ); + + + this.lineCommentStart = ["//", "#"]; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState != "doc-start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.$id = "ace/mode/php-inline"; +}).call(PhpMode.prototype); + +var Mode = function(opts) { + if (opts && opts.inline) { + var mode = new PhpMode(); + mode.createWorker = this.createWorker; + mode.inlinePhp = true; + return mode; + } + HtmlMode.call(this); + this.HighlightRules = PhpHighlightRules; + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode, + "php-": PhpMode + }); + this.foldingRules.subModes["php-"] = new CStyleFoldMode(); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/php_worker", "PhpWorker"); + worker.attachToDocument(session.getDocument()); + + if (this.inlinePhp) + worker.call("setOptions", [{inline: true}]); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/php"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-pig.js b/htdocs/includes/ace/mode-pig.js new file mode 100644 index 00000000000..e251e384125 --- /dev/null +++ b/htdocs/includes/ace/mode-pig.js @@ -0,0 +1,303 @@ +ace.define("ace/mode/pig_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PigHighlightRules = function() { + + this.$rules = { + start: [{ + token: "comment.block.pig", + regex: /\/\*/, + push: [{ + token: "comment.block.pig", + regex: /\*\//, + next: "pop" + }, { + defaultToken: "comment.block.pig" + }] + }, { + token: "comment.line.double-dash.asciidoc", + regex: /--.*$/ + }, { + token: "keyword.control.pig", + regex: /\b(?:ASSERT|LOAD|STORE|DUMP|FILTER|DISTINCT|FOREACH|GENERATE|STREAM|JOIN|COGROUP|GROUP|CROSS|ORDER|LIMIT|UNION|SPLIT|DESCRIBE|EXPLAIN|ILLUSTRATE|AS|BY|INTO|USING|LIMIT|PARALLEL|OUTER|INNER|DEFAULT|LEFT|SAMPLE|RANK|CUBE|ALL|KILL|QUIT|MAPREDUCE|ASC|DESC|THROUGH|SHIP|CACHE|DECLARE|CASE|WHEN|THEN|END|IN|PARTITION|FULL|IMPORT|IF|ONSCHEMA|INPUT|OUTPUT)\b/, + caseInsensitive: true + }, { + token: "storage.datatypes.pig", + regex: /\b(?:int|long|float|double|chararray|bytearray|boolean|datetime|biginteger|bigdecimal|tuple|bag|map)\b/, + caseInsensitive: true + }, { + token: "support.function.storage.pig", + regex: /\b(?:PigStorage|BinStorage|BinaryStorage|PigDump|HBaseStorage|JsonLoader|JsonStorage|AvroStorage|TextLoader|PigStreaming|TrevniStorage|AccumuloStorage)\b/ + }, { + token: "support.function.udf.pig", + regex: /\b(?:DIFF|TOBAG|TOMAP|TOP|TOTUPLE|RANDOM|FLATTEN|flatten|CUBE|ROLLUP|IsEmpty|ARITY|PluckTuple|SUBTRACT|BagToString)\b/ + }, { + token: "support.function.udf.math.pig", + regex: /\b(?:ABS|ACOS|ASIN|ATAN|CBRT|CEIL|COS|COSH|EXP|FLOOR|LOG|LOG10|ROUND|ROUND_TO|SIN|SINH|SQRT|TAN|TANH|AVG|COUNT|COUNT_STAR|MAX|MIN|SUM|COR|COV)\b/ + }, { + token: "support.function.udf.string.pig", + regex: /\b(?:CONCAT|INDEXOF|LAST_INDEX_OF|LCFIRST|LOWER|REGEX_EXTRACT|REGEX_EXTRACT_ALL|REPLACE|SIZE|STRSPLIT|SUBSTRING|TOKENIZE|TRIM|UCFIRST|UPPER|LTRIM|RTRIM|ENDSWITH|STARTSWITH|TRIM)\b/ + }, { + token: "support.function.udf.datetime.pig", + regex: /\b(?:AddDuration|CurrentTime|DaysBetween|GetDay|GetHour|GetMilliSecond|GetMinute|GetMonth|GetSecond|GetWeek|GetWeekYear|GetYear|HoursBetween|MilliSecondsBetween|MinutesBetween|MonthsBetween|SecondsBetween|SubtractDuration|ToDate|WeeksBetween|YearsBetween|ToMilliSeconds|ToString|ToUnixTime)\b/ + }, { + token: "support.function.command.pig", + regex: /\b(?:cat|cd|copyFromLocal|copyToLocal|cp|ls|mkdir|mv|pwd|rm)\b/ + }, { + token: "variable.pig", + regex: /\$[a_zA-Z0-9_]+/ + }, { + token: "constant.language.pig", + regex: /\b(?:NULL|true|false|stdin|stdout|stderr)\b/, + caseInsensitive: true + }, { + token: "constant.numeric.pig", + regex: /\b\d+(?:\.\d+)?\b/ + }, { + token: "keyword.operator.comparison.pig", + regex: /!=|==|<|>|<=|>=|\b(?:MATCHES|IS|OR|AND|NOT)\b/, + caseInsensitive: true + }, { + token: "keyword.operator.arithmetic.pig", + regex: /\+|\-|\*|\/|\%|\?|:|::|\.\.|#/ + }, { + token: "string.quoted.double.pig", + regex: /"/, + push: [{ + token: "string.quoted.double.pig", + regex: /"/, + next: "pop" + }, { + token: "constant.character.escape.pig", + regex: /\\./ + }, { + defaultToken: "string.quoted.double.pig" + }] + }, { + token: "string.quoted.single.pig", + regex: /'/, + push: [{ + token: "string.quoted.single.pig", + regex: /'/, + next: "pop" + }, { + token: "constant.character.escape.pig", + regex: /\\./ + }, { + defaultToken: "string.quoted.single.pig" + }] + }, { + todo: { + token: [ + "text", + "keyword.parameter.pig", + "text", + "storage.type.parameter.pig" + ], + regex: /^(\s*)(set)(\s+)(\S+)/, + caseInsensitive: true, + push: [{ + token: "text", + regex: /$/, + next: "pop" + }, { + include: "$self" + }] + } + }, { + token: [ + "text", + "keyword.alias.pig", + "text", + "storage.type.alias.pig" + ], + regex: /(\s*)(DEFINE|DECLARE|REGISTER)(\s+)(\S+)/, + caseInsensitive: true, + push: [{ + token: "text", + regex: /;?$/, + next: "pop" + }] + }] + } + + this.normalizeRules(); +}; + +PigHighlightRules.metaData = { + fileTypes: ["pig"], + name: "Pig", + scopeName: "source.pig" +} + + +oop.inherits(PigHighlightRules, TextHighlightRules); + +exports.PigHighlightRules = PigHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/pig",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/pig_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PigHighlightRules = require("./pig_highlight_rules").PigHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = PigHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/pig" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-plain_text.js b/htdocs/includes/ace/mode-plain_text.js new file mode 100644 index 00000000000..0f0c93805c4 --- /dev/null +++ b/htdocs/includes/ace/mode-plain_text.js @@ -0,0 +1,25 @@ +ace.define("ace/mode/plain_text",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/behaviour"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var Behaviour = require("./behaviour").Behaviour; + +var Mode = function() { + this.HighlightRules = TextHighlightRules; + this.$behaviour = new Behaviour(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + this.getNextLineIndent = function(state, line, tab) { + return ''; + }; + this.$id = "ace/mode/plain_text"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-powershell.js b/htdocs/includes/ace/mode-powershell.js new file mode 100644 index 00000000000..0b43a83e148 --- /dev/null +++ b/htdocs/includes/ace/mode-powershell.js @@ -0,0 +1,411 @@ +ace.define("ace/mode/powershell_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PowershellHighlightRules = function() { + var keywords = ( + "begin|break|catch|continue|data|do|dynamicparam|else|elseif|end|exit|filter|" + + "finally|for|foreach|from|function|if|in|inlinescript|hidden|parallel|param|" + + "process|return|sequence|switch|throw|trap|try|until|while|workflow" + ); + var builtinFunctions = ( + "Get-AppBackgroundTask|Start-AppBackgroundTask|Unregister-AppBackgroundTask|Disable-AppBackgroundTaskDiagnosticLog|Enable-AppBackgroundTaskDiagnosticLog|Set-AppBackgroundTaskResourcePolicy|" + + "Get-AppLockerFileInformation|Get-AppLockerPolicy|New-AppLockerPolicy|Set-AppLockerPolicy|Test-AppLockerPolicy|" + + "Get-AppxLastError|Get-AppxLog|Add-AppxPackage|Add-AppxVolume|Dismount-AppxVolume|Get-AppxDefaultVolume|Get-AppxPackage|Get-AppxPackageManifest|Get-AppxVolume|Mount-AppxVolume|Move-AppxPackage|Remove-AppxPackage|Remove-AppxVolume|Set-AppxDefaultVolume|" + + "Clear-AssignedAccess|Get-AssignedAccess|Set-AssignedAccess|" + + "Add-BitLockerKeyProtector|Backup-BitLockerKeyProtector|Clear-BitLockerAutoUnlock|Disable-BitLocker|Disable-BitLockerAutoUnlock|Enable-BitLocker|Enable-BitLockerAutoUnlock|Get-BitLockerVolume|Lock-BitLocker|Remove-BitLockerKeyProtector|Resume-BitLocker|Suspend-BitLocker|Unlock-BitLocker|" + + "Add-BitsFile|Complete-BitsTransfer|Get-BitsTransfer|Remove-BitsTransfer|Resume-BitsTransfer|Set-BitsTransfer|Start-BitsTransfer|Suspend-BitsTransfer|" + + "Add-BCDataCacheExtension|Clear-BCCache|Disable-BC|Disable-BCDowngrading|Disable-BCServeOnBattery|Enable-BCDistributed|Enable-BCDowngrading|Enable-BCHostedClient|Enable-BCHostedServer|Enable-BCLocal|Enable-BCServeOnBattery|Export-BCCachePackage|Export-BCSecretKey|Get-BCClientConfiguration|Get-BCContentServerConfiguration|Get-BCDataCache|Get-BCDataCacheExtension|Get-BCHashCache|Get-BCHostedCacheServerConfiguration|Get-BCNetworkConfiguration|Get-BCStatus|Import-BCCachePackage|Import-BCSecretKey|Publish-BCFileContent|Publish-BCWebContent|Remove-BCDataCacheExtension|Reset-BC|Set-BCAuthentication|Set-BCCache|Set-BCDataCacheEntryMaxAge|Set-BCMinSMBLatency|Set-BCSecretKey|" + + "Export-BinaryMiLog|Get-CimAssociatedInstance|Get-CimClass|Get-CimInstance|Get-CimSession|Import-BinaryMiLog|Invoke-CimMethod|New-CimInstance|New-CimSession|New-CimSessionOption|Register-CimIndicationEvent|Remove-CimInstance|Remove-CimSession|Set-CimInstance|" + + "ConvertFrom-CIPolicy|" + + "Add-SignerRule|Edit-CIPolicyRule|Get-CIPolicy|Get-CIPolicyInfo|Get-SystemDriver|Merge-CIPolicy|New-CIPolicy|New-CIPolicyRule|Remove-CIPolicyRule|Set-CIPolicyVersion|Set-HVCIOptions|Set-RuleOption|" + + "Add-MpPreference|Get-MpComputerStatus|Get-MpPreference|Get-MpThreat|Get-MpThreatCatalog|Get-MpThreatDetection|Remove-MpPreference|Remove-MpThreat|Set-MpPreference|Start-MpScan|Start-MpWDOScan|Update-MpSignature|" + + "Disable-DAManualEntryPointSelection|Enable-DAManualEntryPointSelection|Get-DAClientExperienceConfiguration|Get-DAEntryPointTableItem|New-DAEntryPointTableItem|Remove-DAEntryPointTableItem|Rename-DAEntryPointTableItem|Reset-DAClientExperienceConfiguration|Reset-DAEntryPointTableItem|Set-DAClientExperienceConfiguration|Set-DAEntryPointTableItem|" + + "Add-ProvisionedAppxPackage|Apply-WindowsUnattend|Get-ProvisionedAppxPackage|Remove-ProvisionedAppxPackage|Add-AppxProvisionedPackage|Add-WindowsCapability|Add-WindowsDriver|Add-WindowsImage|Add-WindowsPackage|Clear-WindowsCorruptMountPoint|Disable-WindowsOptionalFeature|Dismount-WindowsImage|Enable-WindowsOptionalFeature|Expand-WindowsCustomDataImage|Expand-WindowsImage|Export-WindowsDriver|Export-WindowsImage|Get-AppxProvisionedPackage|Get-WIMBootEntry|Get-WindowsCapability|Get-WindowsDriver|Get-WindowsEdition|Get-WindowsImage|Get-WindowsImageContent|Get-WindowsOptionalFeature|Get-WindowsPackage|Mount-WindowsImage|New-WindowsCustomImage|New-WindowsImage|Optimize-WindowsImage|Remove-AppxProvisionedPackage|Remove-WindowsCapability|Remove-WindowsDriver|Remove-WindowsImage|Remove-WindowsPackage|Repair-WindowsImage|Save-WindowsImage|Set-AppXProvisionedDataFile|Set-WindowsEdition|Set-WindowsProductKey|Split-WindowsImage|Update-WIMBootEntry|Use-WindowsUnattend|" + + "Add-DnsClientNrptRule|Clear-DnsClientCache|Get-DnsClient|Get-DnsClientCache|Get-DnsClientGlobalSetting|Get-DnsClientNrptGlobal|Get-DnsClientNrptPolicy|Get-DnsClientNrptRule|Get-DnsClientServerAddress|Register-DnsClient|Remove-DnsClientNrptRule|Set-DnsClient|Set-DnsClientGlobalSetting|Set-DnsClientNrptGlobal|Set-DnsClientNrptRule|Set-DnsClientServerAddress|Resolve-DnsName|" + + "Add-EtwTraceProvider|Get-AutologgerConfig|Get-EtwTraceProvider|Get-EtwTraceSession|New-AutologgerConfig|New-EtwTraceSession|Remove-AutologgerConfig|Remove-EtwTraceProvider|Remove-EtwTraceSession|Send-EtwTraceSession|Set-AutologgerConfig|Set-EtwTraceProvider|Set-EtwTraceSession|" + + "Get-WinAcceptLanguageFromLanguageListOptOut|Get-WinCultureFromLanguageListOptOut|Get-WinDefaultInputMethodOverride|Get-WinHomeLocation|Get-WinLanguageBarOption|Get-WinSystemLocale|Get-WinUILanguageOverride|Get-WinUserLanguageList|New-WinUserLanguageList|Set-Culture|Set-WinAcceptLanguageFromLanguageListOptOut|Set-WinCultureFromLanguageListOptOut|Set-WinDefaultInputMethodOverride|Set-WinHomeLocation|Set-WinLanguageBarOption|Set-WinSystemLocale|Set-WinUILanguageOverride|Set-WinUserLanguageList|" + + "Connect-IscsiTarget|Disconnect-IscsiTarget|Get-IscsiConnection|Get-IscsiSession|Get-IscsiTarget|Get-IscsiTargetPortal|New-IscsiTargetPortal|Register-IscsiSession|Remove-IscsiTargetPortal|Set-IscsiChapSecret|Unregister-IscsiSession|Update-IscsiTarget|Update-IscsiTargetPortal|" + + "Get-IseSnippet|Import-IseSnippet|New-IseSnippet|" + + "Add-KdsRootKey|Clear-KdsCache|Get-KdsConfiguration|Get-KdsRootKey|Set-KdsConfiguration|Test-KdsRootKey|" + + "Compress-Archive|Expand-Archive|" + + "Export-Counter|Get-Counter|Get-WinEvent|Import-Counter|New-WinEvent|" + + "Start-Transcript|Stop-Transcript|" + + "Add-Computer|Add-Content|Checkpoint-Computer|Clear-Content|Clear-EventLog|Clear-Item|Clear-ItemProperty|Clear-RecycleBin|Complete-Transaction|Convert-Path|Copy-Item|Copy-ItemProperty|Debug-Process|Disable-ComputerRestore|Enable-ComputerRestore|Get-ChildItem|Get-Clipboard|Get-ComputerRestorePoint|Get-Content|Get-ControlPanelItem|Get-EventLog|Get-HotFix|Get-Item|Get-ItemProperty|Get-ItemPropertyValue|Get-Location|Get-Process|Get-PSDrive|Get-PSProvider|Get-Service|Get-Transaction|Get-WmiObject|Invoke-Item|Invoke-WmiMethod|Join-Path|Limit-EventLog|Move-Item|Move-ItemProperty|New-EventLog|New-Item|New-ItemProperty|New-PSDrive|New-Service|New-WebServiceProxy|Pop-Location|Push-Location|Register-WmiEvent|Remove-Computer|Remove-EventLog|Remove-Item|Remove-ItemProperty|Remove-PSDrive|Remove-WmiObject|Rename-Computer|Rename-Item|Rename-ItemProperty|Reset-ComputerMachinePassword|Resolve-Path|Restart-Computer|Restart-Service|Restore-Computer|Resume-Service|Set-Clipboard|Set-Content|Set-Item|Set-ItemProperty|Set-Location|Set-Service|Set-WmiInstance|Show-ControlPanelItem|Show-EventLog|Split-Path|Start-Process|Start-Service|Start-Transaction|Stop-Computer|Stop-Process|Stop-Service|Suspend-Service|Test-ComputerSecureChannel|Test-Connection|Test-Path|Undo-Transaction|Use-Transaction|Wait-Process|Write-EventLog|" + + "Export-ODataEndpointProxy|" + + "ConvertFrom-SecureString|ConvertTo-SecureString|Get-Acl|Get-AuthenticodeSignature|Get-CmsMessage|Get-Credential|Get-ExecutionPolicy|Get-PfxCertificate|Protect-CmsMessage|Set-Acl|Set-AuthenticodeSignature|Set-ExecutionPolicy|Unprotect-CmsMessage|" + + "ConvertFrom-SddlString|Format-Hex|Get-FileHash|Import-PowerShellDataFile|New-Guid|New-TemporaryFile|Add-Member|Add-Type|Clear-Variable|Compare-Object|ConvertFrom-Csv|ConvertFrom-Json|ConvertFrom-String|ConvertFrom-StringData|Convert-String|ConvertTo-Csv|ConvertTo-Html|ConvertTo-Json|ConvertTo-Xml|Debug-Runspace|Disable-PSBreakpoint|Disable-RunspaceDebug|Enable-PSBreakpoint|Enable-RunspaceDebug|Export-Alias|Export-Clixml|Export-Csv|Export-FormatData|Export-PSSession|Format-Custom|Format-List|Format-Table|Format-Wide|Get-Alias|Get-Culture|Get-Date|Get-Event|Get-EventSubscriber|Get-FormatData|Get-Host|Get-Member|Get-PSBreakpoint|Get-PSCallStack|Get-Random|Get-Runspace|Get-RunspaceDebug|Get-TraceSource|Get-TypeData|Get-UICulture|Get-Unique|Get-Variable|Group-Object|Import-Alias|Import-Clixml|Import-Csv|Import-LocalizedData|Import-PSSession|Invoke-Expression|Invoke-RestMethod|Invoke-WebRequest|Measure-Command|Measure-Object|New-Alias|New-Event|New-Object|New-TimeSpan|New-Variable|Out-File|Out-GridView|Out-Printer|Out-String|Read-Host|Register-EngineEvent|Register-ObjectEvent|Remove-Event|Remove-PSBreakpoint|Remove-TypeData|Remove-Variable|Select-Object|Select-String|Select-Xml|Send-MailMessage|Set-Alias|Set-Date|Set-PSBreakpoint|Set-TraceSource|Set-Variable|Show-Command|Sort-Object|Start-Sleep|Tee-Object|Trace-Command|Unblock-File|Unregister-Event|Update-FormatData|Update-List|Update-TypeData|Wait-Debugger|Wait-Event|Write-Debug|Write-Error|Write-Host|Write-Information|Write-Output|Write-Progress|Write-Verbose|Write-Warning|" + + "Connect-WSMan|Disable-WSManCredSSP|Disconnect-WSMan|Enable-WSManCredSSP|Get-WSManCredSSP|Get-WSManInstance|Invoke-WSManAction|New-WSManInstance|New-WSManSessionOption|Remove-WSManInstance|Set-WSManInstance|Set-WSManQuickConfig|Test-WSMan|" + + "Debug-MMAppPrelaunch|Disable-MMAgent|Enable-MMAgent|Get-MMAgent|Set-MMAgent|" + + "Add-DtcClusterTMMapping|Get-Dtc|Get-DtcAdvancedHostSetting|Get-DtcAdvancedSetting|Get-DtcClusterDefault|Get-DtcClusterTMMapping|Get-DtcDefault|Get-DtcLog|Get-DtcNetworkSetting|Get-DtcTransaction|Get-DtcTransactionsStatistics|Get-DtcTransactionsTraceSession|Get-DtcTransactionsTraceSetting|Install-Dtc|Remove-DtcClusterTMMapping|Reset-DtcLog|Set-DtcAdvancedHostSetting|Set-DtcAdvancedSetting|Set-DtcClusterDefault|Set-DtcClusterTMMapping|Set-DtcDefault|Set-DtcLog|Set-DtcNetworkSetting|Set-DtcTransaction|Set-DtcTransactionsTraceSession|Set-DtcTransactionsTraceSetting|Start-Dtc|Start-DtcTransactionsTraceSession|Stop-Dtc|Stop-DtcTransactionsTraceSession|Test-Dtc|Uninstall-Dtc|Write-DtcTransactionsTraceSession|Complete-DtcDiagnosticTransaction|Join-DtcDiagnosticResourceManager|New-DtcDiagnosticTransaction|Receive-DtcDiagnosticTransaction|Send-DtcDiagnosticTransaction|Start-DtcDiagnosticResourceManager|Stop-DtcDiagnosticResourceManager|Undo-DtcDiagnosticTransaction|" + + "Disable-NetAdapter|Disable-NetAdapterBinding|Disable-NetAdapterChecksumOffload|Disable-NetAdapterEncapsulatedPacketTaskOffload|Disable-NetAdapterIPsecOffload|Disable-NetAdapterLso|Disable-NetAdapterPacketDirect|Disable-NetAdapterPowerManagement|Disable-NetAdapterQos|Disable-NetAdapterRdma|Disable-NetAdapterRsc|Disable-NetAdapterRss|Disable-NetAdapterSriov|Disable-NetAdapterVmq|Enable-NetAdapter|Enable-NetAdapterBinding|Enable-NetAdapterChecksumOffload|Enable-NetAdapterEncapsulatedPacketTaskOffload|Enable-NetAdapterIPsecOffload|Enable-NetAdapterLso|Enable-NetAdapterPacketDirect|Enable-NetAdapterPowerManagement|Enable-NetAdapterQos|Enable-NetAdapterRdma|Enable-NetAdapterRsc|Enable-NetAdapterRss|Enable-NetAdapterSriov|Enable-NetAdapterVmq|Get-NetAdapter|Get-NetAdapterAdvancedProperty|Get-NetAdapterBinding|Get-NetAdapterChecksumOffload|Get-NetAdapterEncapsulatedPacketTaskOffload|Get-NetAdapterHardwareInfo|Get-NetAdapterIPsecOffload|Get-NetAdapterLso|Get-NetAdapterPacketDirect|Get-NetAdapterPowerManagement|Get-NetAdapterQos|Get-NetAdapterRdma|Get-NetAdapterRsc|Get-NetAdapterRss|Get-NetAdapterSriov|Get-NetAdapterSriovVf|Get-NetAdapterStatistics|Get-NetAdapterVmq|Get-NetAdapterVmqQueue|Get-NetAdapterVPort|New-NetAdapterAdvancedProperty|Remove-NetAdapterAdvancedProperty|Rename-NetAdapter|Reset-NetAdapterAdvancedProperty|Restart-NetAdapter|Set-NetAdapter|Set-NetAdapterAdvancedProperty|Set-NetAdapterBinding|Set-NetAdapterChecksumOffload|Set-NetAdapterEncapsulatedPacketTaskOffload|Set-NetAdapterIPsecOffload|Set-NetAdapterLso|Set-NetAdapterPacketDirect|Set-NetAdapterPowerManagement|Set-NetAdapterQos|Set-NetAdapterRdma|Set-NetAdapterRsc|Set-NetAdapterRss|Set-NetAdapterSriov|Set-NetAdapterVmq|" + + "Get-NetConnectionProfile|Set-NetConnectionProfile|" + + "Add-NetEventNetworkAdapter|Add-NetEventPacketCaptureProvider|Add-NetEventProvider|Add-NetEventVmNetworkAdapter|Add-NetEventVmSwitch|Add-NetEventWFPCaptureProvider|Get-NetEventNetworkAdapter|Get-NetEventPacketCaptureProvider|Get-NetEventProvider|Get-NetEventSession|Get-NetEventVmNetworkAdapter|Get-NetEventVmSwitch|Get-NetEventWFPCaptureProvider|New-NetEventSession|Remove-NetEventNetworkAdapter|Remove-NetEventPacketCaptureProvider|Remove-NetEventProvider|Remove-NetEventSession|Remove-NetEventVmNetworkAdapter|Remove-NetEventVmSwitch|Remove-NetEventWFPCaptureProvider|Set-NetEventPacketCaptureProvider|Set-NetEventProvider|Set-NetEventSession|Set-NetEventWFPCaptureProvider|Start-NetEventSession|Stop-NetEventSession|" + + "Add-NetLbfoTeamMember|Add-NetLbfoTeamNic|Get-NetLbfoTeam|Get-NetLbfoTeamMember|Get-NetLbfoTeamNic|New-NetLbfoTeam|Remove-NetLbfoTeam|Remove-NetLbfoTeamMember|Remove-NetLbfoTeamNic|Rename-NetLbfoTeam|Set-NetLbfoTeam|Set-NetLbfoTeamMember|Set-NetLbfoTeamNic|" + + "Add-NetNatExternalAddress|Add-NetNatStaticMapping|Get-NetNat|Get-NetNatExternalAddress|Get-NetNatGlobal|Get-NetNatSession|Get-NetNatStaticMapping|New-NetNat|Remove-NetNat|Remove-NetNatExternalAddress|Remove-NetNatStaticMapping|Set-NetNat|Set-NetNatGlobal|" + + "Get-NetQosPolicy|New-NetQosPolicy|Remove-NetQosPolicy|Set-NetQosPolicy|" + + "Copy-NetFirewallRule|Copy-NetIPsecMainModeCryptoSet|Copy-NetIPsecMainModeRule|Copy-NetIPsecPhase1AuthSet|Copy-NetIPsecPhase2AuthSet|Copy-NetIPsecQuickModeCryptoSet|Copy-NetIPsecRule|Disable-NetFirewallRule|Disable-NetIPsecMainModeRule|Disable-NetIPsecRule|Enable-NetFirewallRule|Enable-NetIPsecMainModeRule|Enable-NetIPsecRule|Find-NetIPsecRule|Get-NetFirewallAddressFilter|Get-NetFirewallApplicationFilter|Get-NetFirewallInterfaceFilter|Get-NetFirewallInterfaceTypeFilter|Get-NetFirewallPortFilter|Get-NetFirewallProfile|Get-NetFirewallRule|Get-NetFirewallSecurityFilter|Get-NetFirewallServiceFilter|Get-NetFirewallSetting|Get-NetIPsecDospSetting|Get-NetIPsecMainModeCryptoSet|Get-NetIPsecMainModeRule|Get-NetIPsecMainModeSA|Get-NetIPsecPhase1AuthSet|Get-NetIPsecPhase2AuthSet|Get-NetIPsecQuickModeCryptoSet|Get-NetIPsecQuickModeSA|Get-NetIPsecRule|New-NetFirewallRule|New-NetIPsecDospSetting|New-NetIPsecMainModeCryptoSet|New-NetIPsecMainModeRule|New-NetIPsecPhase1AuthSet|New-NetIPsecPhase2AuthSet|New-NetIPsecQuickModeCryptoSet|New-NetIPsecRule|Open-NetGPO|Remove-NetFirewallRule|Remove-NetIPsecDospSetting|Remove-NetIPsecMainModeCryptoSet|Remove-NetIPsecMainModeRule|Remove-NetIPsecMainModeSA|Remove-NetIPsecPhase1AuthSet|Remove-NetIPsecPhase2AuthSet|Remove-NetIPsecQuickModeCryptoSet|Remove-NetIPsecQuickModeSA|Remove-NetIPsecRule|Rename-NetFirewallRule|Rename-NetIPsecMainModeCryptoSet|Rename-NetIPsecMainModeRule|Rename-NetIPsecPhase1AuthSet|Rename-NetIPsecPhase2AuthSet|Rename-NetIPsecQuickModeCryptoSet|Rename-NetIPsecRule|Save-NetGPO|Set-NetFirewallAddressFilter|Set-NetFirewallApplicationFilter|Set-NetFirewallInterfaceFilter|Set-NetFirewallInterfaceTypeFilter|Set-NetFirewallPortFilter|Set-NetFirewallProfile|Set-NetFirewallRule|Set-NetFirewallSecurityFilter|Set-NetFirewallServiceFilter|Set-NetFirewallSetting|Set-NetIPsecDospSetting|Set-NetIPsecMainModeCryptoSet|Set-NetIPsecMainModeRule|Set-NetIPsecPhase1AuthSet|Set-NetIPsecPhase2AuthSet|Set-NetIPsecQuickModeCryptoSet|Set-NetIPsecRule|Show-NetFirewallRule|Show-NetIPsecRule|Sync-NetIPsecRule|Update-NetIPsecRule|Get-DAPolicyChange|New-NetIPsecAuthProposal|New-NetIPsecMainModeCryptoProposal|New-NetIPsecQuickModeCryptoProposal|" + + "Add-NetSwitchTeamMember|Get-NetSwitchTeam|Get-NetSwitchTeamMember|New-NetSwitchTeam|Remove-NetSwitchTeam|Remove-NetSwitchTeamMember|Rename-NetSwitchTeam|" + + "Find-NetRoute|Get-NetCompartment|Get-NetIPAddress|Get-NetIPConfiguration|Get-NetIPInterface|Get-NetIPv4Protocol|Get-NetIPv6Protocol|Get-NetNeighbor|Get-NetOffloadGlobalSetting|Get-NetPrefixPolicy|Get-NetRoute|Get-NetTCPConnection|Get-NetTCPSetting|Get-NetTransportFilter|Get-NetUDPEndpoint|Get-NetUDPSetting|New-NetIPAddress|New-NetNeighbor|New-NetRoute|New-NetTransportFilter|Remove-NetIPAddress|Remove-NetNeighbor|Remove-NetRoute|Remove-NetTransportFilter|Set-NetIPAddress|Set-NetIPInterface|Set-NetIPv4Protocol|Set-NetIPv6Protocol|Set-NetNeighbor|Set-NetOffloadGlobalSetting|Set-NetRoute|Set-NetTCPSetting|Set-NetUDPSetting|Test-NetConnection|" + + "Get-DAConnectionStatus|Get-NCSIPolicyConfiguration|Reset-NCSIPolicyConfiguration|Set-NCSIPolicyConfiguration|" + + "Disable-NetworkSwitchEthernetPort|Disable-NetworkSwitchFeature|Disable-NetworkSwitchVlan|Enable-NetworkSwitchEthernetPort|Enable-NetworkSwitchFeature|Enable-NetworkSwitchVlan|Get-NetworkSwitchEthernetPort|Get-NetworkSwitchFeature|Get-NetworkSwitchGlobalData|Get-NetworkSwitchVlan|New-NetworkSwitchVlan|Remove-NetworkSwitchEthernetPortIPAddress|Remove-NetworkSwitchVlan|Restore-NetworkSwitchConfiguration|Save-NetworkSwitchConfiguration|Set-NetworkSwitchEthernetPortIPAddress|Set-NetworkSwitchPortMode|Set-NetworkSwitchPortProperty|Set-NetworkSwitchVlanProperty|" + + "Add-NetIPHttpsCertBinding|Disable-NetDnsTransitionConfiguration|Disable-NetIPHttpsProfile|Disable-NetNatTransitionConfiguration|Enable-NetDnsTransitionConfiguration|Enable-NetIPHttpsProfile|Enable-NetNatTransitionConfiguration|Get-Net6to4Configuration|Get-NetDnsTransitionConfiguration|Get-NetDnsTransitionMonitoring|Get-NetIPHttpsConfiguration|Get-NetIPHttpsState|Get-NetIsatapConfiguration|Get-NetNatTransitionConfiguration|Get-NetNatTransitionMonitoring|Get-NetTeredoConfiguration|Get-NetTeredoState|New-NetIPHttpsConfiguration|New-NetNatTransitionConfiguration|Remove-NetIPHttpsCertBinding|Remove-NetIPHttpsConfiguration|Remove-NetNatTransitionConfiguration|Rename-NetIPHttpsConfiguration|Reset-Net6to4Configuration|Reset-NetDnsTransitionConfiguration|Reset-NetIPHttpsConfiguration|Reset-NetIsatapConfiguration|Reset-NetTeredoConfiguration|Set-Net6to4Configuration|Set-NetDnsTransitionConfiguration|Set-NetIPHttpsConfiguration|Set-NetIsatapConfiguration|Set-NetNatTransitionConfiguration|Set-NetTeredoConfiguration|" + + "Find-Package|Find-PackageProvider|Get-Package|Get-PackageProvider|Get-PackageSource|Import-PackageProvider|Install-Package|Install-PackageProvider|Register-PackageSource|Save-Package|Set-PackageSource|Uninstall-Package|Unregister-PackageSource|" + + "Clear-PcsvDeviceLog|Get-PcsvDevice|Get-PcsvDeviceLog|Restart-PcsvDevice|Set-PcsvDeviceBootConfiguration|Set-PcsvDeviceNetworkConfiguration|Set-PcsvDeviceUserPassword|Start-PcsvDevice|Stop-PcsvDevice|" + + "AfterAll|AfterEach|Assert-MockCalled|Assert-VerifiableMocks|BeforeAll|BeforeEach|Context|Describe|Get-MockDynamicParameters|Get-TestDriveItem|In|InModuleScope|Invoke-Mock|Invoke-Pester|It|Mock|New-Fixture|Set-DynamicParameterVariables|Setup|Should|" + + "Add-CertificateEnrollmentPolicyServer|Export-Certificate|Export-PfxCertificate|Get-Certificate|Get-CertificateAutoEnrollmentPolicy|Get-CertificateEnrollmentPolicyServer|Get-CertificateNotificationTask|Get-PfxData|Import-Certificate|Import-PfxCertificate|New-CertificateNotificationTask|New-SelfSignedCertificate|Remove-CertificateEnrollmentPolicyServer|Remove-CertificateNotificationTask|Set-CertificateAutoEnrollmentPolicy|Switch-Certificate|Test-Certificate|" + + "Disable-PnpDevice|Enable-PnpDevice|Get-PnpDevice|Get-PnpDeviceProperty|" + + "Find-DscResource|Find-Module|Find-Script|Get-InstalledModule|Get-InstalledScript|Get-PSRepository|Install-Module|Install-Script|New-ScriptFileInfo|Publish-Module|Publish-Script|Register-PSRepository|Save-Module|Save-Script|Set-PSRepository|Test-ScriptFileInfo|Uninstall-Module|Uninstall-Script|Unregister-PSRepository|Update-Module|Update-ModuleManifest|Update-Script|Update-ScriptFileInfo|" + + "Add-Printer|Add-PrinterDriver|Add-PrinterPort|Get-PrintConfiguration|Get-Printer|Get-PrinterDriver|Get-PrinterPort|Get-PrinterProperty|Get-PrintJob|Read-PrinterNfcTag|Remove-Printer|Remove-PrinterDriver|Remove-PrinterPort|Remove-PrintJob|Rename-Printer|Restart-PrintJob|Resume-PrintJob|Set-PrintConfiguration|Set-Printer|Set-PrinterProperty|Suspend-PrintJob|Write-PrinterNfcTag|" + + "Configuration|Disable-DscDebug|Enable-DscDebug|Get-DscConfiguration|Get-DscConfigurationStatus|Get-DscLocalConfigurationManager|Get-DscResource|New-DscChecksum|Remove-DscConfigurationDocument|Restore-DscConfiguration|Stop-DscConfiguration|Invoke-DscResource|Publish-DscConfiguration|Set-DscLocalConfigurationManager|Start-DscConfiguration|Test-DscConfiguration|Update-DscConfiguration|" + + "Disable-PSTrace|Disable-PSWSManCombinedTrace|Disable-WSManTrace|Enable-PSTrace|Enable-PSWSManCombinedTrace|Enable-WSManTrace|Get-LogProperties|Set-LogProperties|Start-Trace|Stop-Trace|" + + "PSConsoleHostReadline|Get-PSReadlineKeyHandler|Get-PSReadlineOption|Remove-PSReadlineKeyHandler|Set-PSReadlineKeyHandler|Set-PSReadlineOption|" + + "Add-JobTrigger|Disable-JobTrigger|Disable-ScheduledJob|Enable-JobTrigger|Enable-ScheduledJob|Get-JobTrigger|Get-ScheduledJob|Get-ScheduledJobOption|New-JobTrigger|New-ScheduledJobOption|Register-ScheduledJob|Remove-JobTrigger|Set-JobTrigger|Set-ScheduledJob|Set-ScheduledJobOption|Unregister-ScheduledJob|" + + "New-PSWorkflowSession|New-PSWorkflowExecutionOption|" + + "Invoke-AsWorkflow|" + + "Disable-ScheduledTask|Enable-ScheduledTask|Export-ScheduledTask|Get-ClusteredScheduledTask|Get-ScheduledTask|Get-ScheduledTaskInfo|New-ScheduledTask|New-ScheduledTaskAction|New-ScheduledTaskPrincipal|New-ScheduledTaskSettingsSet|New-ScheduledTaskTrigger|Register-ClusteredScheduledTask|Register-ScheduledTask|Set-ClusteredScheduledTask|Set-ScheduledTask|Start-ScheduledTask|Stop-ScheduledTask|Unregister-ClusteredScheduledTask|Unregister-ScheduledTask|" + + "Confirm-SecureBootUEFI|Format-SecureBootUEFI|Get-SecureBootPolicy|Get-SecureBootUEFI|Set-SecureBootUEFI|" + + "Block-SmbShareAccess|Close-SmbOpenFile|Close-SmbSession|Disable-SmbDelegation|Enable-SmbDelegation|Get-SmbBandwidthLimit|Get-SmbClientConfiguration|Get-SmbClientNetworkInterface|Get-SmbConnection|Get-SmbDelegation|Get-SmbMapping|Get-SmbMultichannelConnection|Get-SmbMultichannelConstraint|Get-SmbOpenFile|Get-SmbServerConfiguration|Get-SmbServerNetworkInterface|Get-SmbSession|Get-SmbShare|Get-SmbShareAccess|Grant-SmbShareAccess|New-SmbMapping|New-SmbMultichannelConstraint|New-SmbShare|Remove-SmbBandwidthLimit|Remove-SmbMapping|Remove-SmbMultichannelConstraint|Remove-SmbShare|Revoke-SmbShareAccess|Set-SmbBandwidthLimit|Set-SmbClientConfiguration|Set-SmbPathAcl|Set-SmbServerConfiguration|Set-SmbShare|Unblock-SmbShareAccess|Update-SmbMultichannelConnection|" + + "Move-SmbClient|Get-SmbWitnessClient|Move-SmbWitnessClient|" + + "Get-StartApps|Export-StartLayout|Import-StartLayout|" + + "Disable-PhysicalDiskIndication|Disable-StorageDiagnosticLog|Enable-PhysicalDiskIndication|Enable-StorageDiagnosticLog|Flush-Volume|Get-DiskSNV|Get-PhysicalDiskSNV|Get-StorageEnclosureSNV|Initialize-Volume|Write-FileSystemCache|Add-InitiatorIdToMaskingSet|Add-PartitionAccessPath|Add-PhysicalDisk|Add-TargetPortToMaskingSet|Add-VirtualDiskToMaskingSet|Block-FileShareAccess|Clear-Disk|Clear-FileStorageTier|Clear-StorageDiagnosticInfo|Connect-VirtualDisk|Debug-FileShare|Debug-StorageSubSystem|Debug-Volume|Disable-PhysicalDiskIdentification|Disable-StorageEnclosureIdentification|Disable-StorageHighAvailability|Disconnect-VirtualDisk|Dismount-DiskImage|Enable-PhysicalDiskIdentification|Enable-StorageEnclosureIdentification|Enable-StorageHighAvailability|Format-Volume|Get-DedupProperties|Get-Disk|Get-DiskImage|Get-DiskStorageNodeView|Get-FileIntegrity|Get-FileShare|Get-FileShareAccessControlEntry|Get-FileStorageTier|Get-InitiatorId|Get-InitiatorPort|Get-MaskingSet|Get-OffloadDataTransferSetting|Get-Partition|Get-PartitionSupportedSize|Get-PhysicalDisk|Get-PhysicalDiskStorageNodeView|Get-ResiliencySetting|Get-StorageAdvancedProperty|Get-StorageDiagnosticInfo|Get-StorageEnclosure|Get-StorageEnclosureStorageNodeView|Get-StorageEnclosureVendorData|Get-StorageFaultDomain|Get-StorageFileServer|Get-StorageFirmwareInformation|Get-StorageHealthAction|Get-StorageHealthReport|Get-StorageHealthSetting|Get-StorageJob|Get-StorageNode|Get-StoragePool|Get-StorageProvider|Get-StorageReliabilityCounter|Get-StorageSetting|Get-StorageSubSystem|Get-StorageTier|Get-StorageTierSupportedSize|Get-SupportedClusterSizes|Get-SupportedFileSystems|Get-TargetPort|Get-TargetPortal|Get-VirtualDisk|Get-VirtualDiskSupportedSize|Get-Volume|Get-VolumeCorruptionCount|Get-VolumeScrubPolicy|Grant-FileShareAccess|Hide-VirtualDisk|Initialize-Disk|Mount-DiskImage|New-FileShare|New-MaskingSet|New-Partition|New-StorageFileServer|New-StoragePool|New-StorageSubsystemVirtualDisk|New-StorageTier|New-VirtualDisk|New-VirtualDiskClone|New-VirtualDiskSnapshot|New-Volume|Optimize-StoragePool|Optimize-Volume|Register-StorageSubsystem|Remove-FileShare|Remove-InitiatorId|Remove-InitiatorIdFromMaskingSet|Remove-MaskingSet|Remove-Partition|Remove-PartitionAccessPath|Remove-PhysicalDisk|Remove-StorageFileServer|Remove-StorageHealthSetting|Remove-StoragePool|Remove-StorageTier|Remove-TargetPortFromMaskingSet|Remove-VirtualDisk|Remove-VirtualDiskFromMaskingSet|Rename-MaskingSet|Repair-FileIntegrity|Repair-VirtualDisk|Repair-Volume|Reset-PhysicalDisk|Reset-StorageReliabilityCounter|Resize-Partition|Resize-StorageTier|Resize-VirtualDisk|Revoke-FileShareAccess|Set-Disk|Set-FileIntegrity|Set-FileShare|Set-FileStorageTier|Set-InitiatorPort|Set-Partition|Set-PhysicalDisk|Set-ResiliencySetting|Set-StorageFileServer|Set-StorageHealthSetting|Set-StoragePool|Set-StorageProvider|Set-StorageSetting|Set-StorageSubSystem|Set-StorageTier|Set-VirtualDisk|Set-Volume|Set-VolumeScrubPolicy|Show-VirtualDisk|Start-StorageDiagnosticLog|Stop-StorageDiagnosticLog|Stop-StorageJob|Unblock-FileShareAccess|Unregister-StorageSubsystem|Update-Disk|Update-HostStorageCache|Update-StorageFirmware|Update-StoragePool|Update-StorageProviderCache|Write-VolumeCache|" + + "Disable-TlsCipherSuite|Disable-TlsSessionTicketKey|Enable-TlsCipherSuite|Enable-TlsSessionTicketKey|Export-TlsSessionTicketKey|Get-TlsCipherSuite|New-TlsSessionTicketKey|" + + "Get-TroubleshootingPack|Invoke-TroubleshootingPack|" + + "Clear-Tpm|ConvertTo-TpmOwnerAuth|Disable-TpmAutoProvisioning|Enable-TpmAutoProvisioning|Get-Tpm|Get-TpmEndorsementKeyInfo|Get-TpmSupportedFeature|Import-TpmOwnerAuth|Initialize-Tpm|Set-TpmOwnerAuth|Unblock-Tpm|" + + "Add-VpnConnection|Add-VpnConnectionRoute|Add-VpnConnectionTriggerApplication|Add-VpnConnectionTriggerDnsConfiguration|Add-VpnConnectionTriggerTrustedNetwork|Get-VpnConnection|Get-VpnConnectionTrigger|New-EapConfiguration|New-VpnServerAddress|Remove-VpnConnection|Remove-VpnConnectionRoute|Remove-VpnConnectionTriggerApplication|Remove-VpnConnectionTriggerDnsConfiguration|Remove-VpnConnectionTriggerTrustedNetwork|Set-VpnConnection|Set-VpnConnectionIPsecConfiguration|Set-VpnConnectionProxy|Set-VpnConnectionTriggerDnsConfiguration|Set-VpnConnectionTriggerTrustedNetwork|" + + "Add-OdbcDsn|Disable-OdbcPerfCounter|Disable-WdacBidTrace|Enable-OdbcPerfCounter|Enable-WdacBidTrace|Get-OdbcDriver|Get-OdbcDsn|Get-OdbcPerfCounter|Get-WdacBidTrace|Remove-OdbcDsn|Set-OdbcDriver|Set-OdbcDsn|" + + "Get-WindowsDeveloperLicense|Show-WindowsDeveloperLicenseRegistration|Unregister-WindowsDeveloperLicense|" + + "Disable-WindowsErrorReporting|Enable-WindowsErrorReporting|Get-WindowsErrorReporting|" + + "Get-WindowsSearchSetting|Set-WindowsSearchSetting|" + + "Get-WindowsUpdateLog" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords + }, "identifier"); + var binaryOperatorsRe = ( + "eq|ne|gt|lt|le|ge|like|notlike|match|notmatch|contains|notcontains|in|notin|band|bor|bxor|bnot|" + + "ceq|cne|cgt|clt|cle|cge|clike|cnotlike|cmatch|cnotmatch|ccontains|cnotcontains|cin|cnotin|" + + "ieq|ine|igt|ilt|ile|ige|ilike|inotlike|imatch|inotmatch|icontains|inotcontains|iin|inotin|" + + "and|or|xor|not|" + + "split|join|replace|f|" + + "csplit|creplace|" + + "isplit|ireplace|" + + "is|isnot|as|" + + "shl|shr" + ); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment.start", + regex : "<#", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "[$](?:[Tt]rue|[Ff]alse)\\b" + }, { + token : "constant.language", + regex : "[$][Nn]ull\\b" + }, { + token : "variable.instance", + regex : "[$][a-zA-Z][a-zA-Z0-9_]*\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b" + }, { + token : "keyword.operator", + regex : "\\-(?:" + binaryOperatorsRe + ")" + }, { + token : "keyword.operator", + regex : "&|\\+|\\-|\\*|\\/|\\%|\\=|\\>|\\&|\\!|\\|" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment.end", + regex : "#>", + next : "start" + }, { + token : "doc.comment.tag", + regex : "^\\.\\w+" + }, { + defaultToken : "comment" + } + ] + }; +}; + +oop.inherits(PowershellHighlightRules, TextHighlightRules); + +exports.PowershellHighlightRules = PowershellHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/powershell",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/powershell_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PowershellHighlightRules = require("./powershell_highlight_rules").PowershellHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = PowershellHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode({start: "^\\s*(<#)", end: "^[#\\s]>\\s*$"}); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + this.blockComment = {start: "<#", end: "#>"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/powershell"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-praat.js b/htdocs/includes/ace/mode-praat.js new file mode 100644 index 00000000000..a3a50f7e1bf --- /dev/null +++ b/htdocs/includes/ace/mode-praat.js @@ -0,0 +1,468 @@ +ace.define("ace/mode/praat_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PraatHighlightRules = function() { + + var keywords = ( + "if|then|else|elsif|elif|endif|fi|" + + "endfor|endproc|" + // related keywords specified below + "while|endwhile|" + + "repeat|until|" + + "select|plus|minus|" + + "assert|asserterror" + ); + + var predefinedVariables = ( + "macintosh|windows|unix|" + + "praatVersion|praatVersion\\$" + + "pi|undefined|" + + "newline\\$|tab\\$|" + + "shellDirectory\\$|homeDirectory\\$|preferencesDirectory\\$|" + + "temporaryDirectory\\$|defaultDirectory\\$" + ); + var directives = ( + "clearinfo|endSendPraat" + ); + + var functions = ( + "writeInfo|writeInfoLine|appendInfo|appendInfoLine|info\\$|" + + "writeFile|writeFileLine|appendFile|appendFileLine|" + + "abs|round|floor|ceiling|min|max|imin|imax|" + + "sqrt|sin|cos|tan|arcsin|arccos|arctan|arctan2|sinc|sincpi|" + + "exp|ln|lnBeta|lnGamma|log10|log2|" + + "sinh|cosh|tanh|arcsinh|arccosh|arctanh|" + + "sigmoid|invSigmoid|erf|erfc|" + + "random(?:Uniform|Integer|Gauss|Poisson|Binomial)|" + + "gaussP|gaussQ|invGaussQ|incompleteGammaP|incompleteBeta|" + + "chiSquareP|chiSquareQ|invChiSquareQ|studentP|studentQ|invStudentQ|" + + "fisherP|fisherQ|invFisherQ|" + + "binomialP|binomialQ|invBinomialP|invBinomialQ|" + + "hertzToBark|barkToHerz|" + + "hertzToMel|melToHertz|" + + "hertzToSemitones|semitonesToHerz|" + + "erb|hertzToErb|erbToHertz|" + + "phonToDifferenceLimens|differenceLimensToPhon|" + + "soundPressureToPhon|" + + "beta|beta2|besselI|besselK|" + + "numberOfColumns|numberOfRows|" + + "selected|selected\\$|numberOfSelected|variableExists|"+ + "index|rindex|startsWith|endsWith|"+ + "index_regex|rindex_regex|replace_regex\\$|"+ + "length|extractWord\\$|extractLine\\$|extractNumber|" + + "left\\$|right\\$|mid\\$|replace\\$|" + + "date\\$|fixed\\$|percent\\$|" + + "zero#|linear#|randomUniform#|randomInteger#|randomGauss#|" + + "beginPause|endPause|" + + "demoShow|demoWindowTitle|demoInput|demoWaitForInput|" + + "demoClicked|demoClickedIn|demoX|demoY|" + + "demoKeyPressed|demoKey\\$|" + + "demoExtraControlKeyPressed|demoShiftKeyPressed|"+ + "demoCommandKeyPressed|demoOptionKeyPressed|" + + "environment\\$|chooseReadFile\\$|" + + "chooseDirectory\\$|createDirectory|fileReadable|deleteFile|" + + "selectObject|removeObject|plusObject|minusObject|" + + "runScript|exitScript|" + + "beginSendPraat|endSendPraat|" + + "objectsAreIdentical" + ); + + var objectTypes = ( + "Activation|AffineTransform|AmplitudeTier|Art|Artword|Autosegment|" + + "BarkFilter|CCA|Categories|Cepstrum|Cepstrumc|ChebyshevSeries|" + + "ClassificationTable|Cochleagram|Collection|Configuration|" + + "Confusion|ContingencyTable|Corpus|Correlation|Covariance|" + + "CrossCorrelationTable|CrossCorrelationTables|DTW|Diagonalizer|" + + "Discriminant|Dissimilarity|Distance|Distributions|DurationTier|" + + "EEG|ERP|ERPTier|Eigen|Excitation|Excitations|ExperimentMFC|FFNet|" + + "FeatureWeights|Formant|FormantFilter|FormantGrid|FormantPoint|" + + "FormantTier|GaussianMixture|HMM|HMM_Observation|" + + "HMM_ObservationSequence|HMM_State|HMM_StateSequence|Harmonicity|" + + "ISpline|Index|Intensity|IntensityTier|IntervalTier|KNN|KlattGrid|" + + "KlattTable|LFCC|LPC|Label|LegendreSeries|LinearRegression|" + + "LogisticRegression|LongSound|Ltas|MFCC|MSpline|ManPages|" + + "Manipulation|Matrix|MelFilter|MixingMatrix|Movie|Network|" + + "OTGrammar|OTHistory|OTMulti|PCA|PairDistribution|ParamCurve|" + + "Pattern|Permutation|Pitch|PitchTier|PointProcess|Polygon|" + + "Polynomial|Procrustes|RealPoint|RealTier|ResultsMFC|Roots|SPINET|" + + "SSCP|SVD|Salience|ScalarProduct|Similarity|SimpleString|" + + "SortedSetOfString|Sound|Speaker|Spectrogram|Spectrum|SpectrumTier|" + + "SpeechSynthesizer|SpellingChecker|Strings|StringsIndex|Table|" + + "TableOfReal|TextGrid|TextInterval|TextPoint|TextTier|Tier|" + + "Transition|VocalTract|Weight|WordList" + ); + + this.$rules = { + "start" : [ + { + token : "string.interpolated", + regex : /'((?:[a-z][a-zA-Z0-9_]*)(?:\$|#|:[0-9]+)?)'/ + }, { + token : ["text", "text", "keyword.operator", "text", "keyword"], + regex : /(^\s*)(?:([a-z][a-zA-Z0-9_]*\$?\s+)(=)(\s+))?(stopwatch)/ + }, { + token : ["text", "keyword", "text", "string"], + regex : /(^\s*)(print(?:line|tab)?|echo|exit|pause|send(?:praat|socket)|include|execute|system(?:_nocheck)?)(\s+)(.*)/ + }, { + token : ["text", "keyword"], + regex : "(^\\s*)(" + directives + ")$" + }, { + token : ["text", "keyword.operator", "text"], + regex : /(\s+)((?:\+|-|\/|\*|<|>)=?|==?|!=|%|\^|\||and|or|not)(\s+)/ + }, { + token : ["text", "text", "keyword.operator", "text", "keyword", "text", "keyword"], + regex : /(^\s*)(?:([a-z][a-zA-Z0-9_]*\$?\s+)(=)(\s+))?(?:((?:no)?warn|(?:unix_)?nocheck|noprogress)(\s+))?((?:[A-Z][^.:"]+)(?:$|(?:\.{3}|:)))/ + }, { + token : ["text", "keyword", "text", "keyword"], + regex : /(^\s*)(?:(demo)?(\s+))((?:[A-Z][^.:"]+)(?:$|(?:\.{3}|:)))/ + }, { + token : ["text", "keyword", "text", "keyword"], + regex : /^(\s*)(?:(demo)(\s+))?(10|12|14|16|24)$/ + }, { + token : ["text", "support.function", "text"], + regex : /(\s*)(do\$?)(\s*:\s*|\s*\(\s*)/ + }, { + token : "entity.name.type", + regex : "(" + objectTypes + ")" + }, { + token : "variable.language", + regex : "(" + predefinedVariables + ")" + }, { + token : ["support.function", "text"], + regex : "((?:" + functions + ")\\$?)(\\s*(?::|\\())" + }, { + token : "keyword", + regex : /(\bfor\b)/, + next : "for" + }, { + token : "keyword", + regex : "(\\b(?:" + keywords + ")\\b)" + }, { + token : "string", + regex : /"[^"]*"/ + }, { + token : "string", + regex : /"[^"]*$/, + next : "brokenstring" + }, { + token : ["text", "keyword", "text", "entity.name.section"], + regex : /(^\s*)(\bform\b)(\s+)(.*)/, + next : "form" + }, { + token : "constant.numeric", + regex : /\b[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { + token : ["keyword", "text", "entity.name.function"], + regex : /(procedure)(\s+)(\S+)/ + }, { + token : ["entity.name.function", "text"], + regex : /(@\S+)(:|\s*\()/ + }, { + token : ["text", "keyword", "text", "entity.name.function"], + regex : /(^\s*)(call)(\s+)(\S+)/ + }, { + token : "comment", + regex : /(^\s*#|;).*$/ + }, { + token : "text", + regex : /\s+/ + } + ], + "form" : [ + { + token : ["keyword", "text", "constant.numeric"], + regex : /((?:optionmenu|choice)\s+)(\S+:\s+)([0-9]+)/ + }, { + token : ["keyword", "constant.numeric"], + regex : /((?:option|button)\s+)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b)/ + }, { + token : ["keyword", "string"], + regex : /((?:option|button)\s+)(.*)/ + }, { + token : ["keyword", "text", "string"], + regex : /((?:sentence|text)\s+)(\S+\s*)(.*)/ + }, { + token : ["keyword", "text", "string", "invalid.illegal"], + regex : /(word\s+)(\S+\s*)(\S+)?(\s.*)?/ + }, { + token : ["keyword", "text", "constant.language"], + regex : /(boolean\s+)(\S+\s*)(0|1|"?(?:yes|no)"?)/ + }, { + token : ["keyword", "text", "constant.numeric"], + regex : /((?:real|natural|positive|integer)\s+)(\S+\s*)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b)/ + }, { + token : ["keyword", "string"], + regex : /(comment\s+)(.*)/ + }, { + token : "keyword", + regex : 'endform', + next : "start" + } + ], + "for" : [ + { + token : ["keyword", "text", "constant.numeric", "text"], + regex : /(from|to)(\s+)([+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?)(\s*)/ + }, { + token : ["keyword", "text"], + regex : /(from|to)(\s+\S+\s*)/ + }, { + token : "text", + regex : /$/, + next : "start" + } + ], + "brokenstring" : [ + { + token : ["text", "string"], + regex : /(\s*\.{3})([^"]*)/ + }, { + token : "string", + regex : /"/, + next : "start" + } + ] + }; +}; + +oop.inherits(PraatHighlightRules, TextHighlightRules); + +exports.PraatHighlightRules = PraatHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/praat",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/praat_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PraatHighlightRules = require("./praat_highlight_rules").PraatHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = PraatHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/praat"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-prolog.js b/htdocs/includes/ace/mode-prolog.js new file mode 100644 index 00000000000..6bf01adb490 --- /dev/null +++ b/htdocs/includes/ace/mode-prolog.js @@ -0,0 +1,364 @@ +ace.define("ace/mode/prolog_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PrologHighlightRules = function() { + + this.$rules = { start: + [ { include: '#comment' }, + { include: '#basic_fact' }, + { include: '#rule' }, + { include: '#directive' }, + { include: '#fact' } ], + '#atom': + [ { token: 'constant.other.atom.prolog', + regex: '\\b[a-z][a-zA-Z0-9_]*\\b' }, + { token: 'constant.numeric.prolog', + regex: '-?\\d+(?:\\.\\d+)?' }, + { include: '#string' } ], + '#basic_elem': + [ { include: '#comment' }, + { include: '#statement' }, + { include: '#constants' }, + { include: '#operators' }, + { include: '#builtins' }, + { include: '#list' }, + { include: '#atom' }, + { include: '#variable' } ], + '#basic_fact': + [ { token: + [ 'entity.name.function.fact.basic.prolog', + 'punctuation.end.fact.basic.prolog' ], + regex: '([a-z]\\w*)(\\.)' } ], + '#builtins': + [ { token: 'support.function.builtin.prolog', + regex: '\\b(?:abolish|abort|ancestors|arg|ascii|assert[az]|atom(?:ic)?|body|char|close|conc|concat|consult|define|definition|dynamic|dump|fail|file|free|free_proc|functor|getc|goal|halt|head|head|integer|length|listing|match_args|member|next_clause|nl|nonvar|nth|number|cvars|nvars|offset|op|print?|prompt|putc|quoted|ratom|read|redefine|rename|retract(?:all)?|see|seeing|seen|skip|spy|statistics|system|tab|tell|telling|term|time|told|univ|unlink_clause|unspy_predicate|var|write)\\b' } ], + '#comment': + [ { token: + [ 'punctuation.definition.comment.prolog', + 'comment.line.percentage.prolog' ], + regex: '(%)(.*$)' }, + { token: 'punctuation.definition.comment.prolog', + regex: '/\\*', + push: + [ { token: 'punctuation.definition.comment.prolog', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.prolog' } ] } ], + '#constants': + [ { token: 'constant.language.prolog', + regex: '\\b(?:true|false|yes|no)\\b' } ], + '#directive': + [ { token: 'keyword.operator.directive.prolog', + regex: ':-', + push: + [ { token: 'meta.directive.prolog', regex: '\\.', next: 'pop' }, + { include: '#comment' }, + { include: '#statement' }, + { defaultToken: 'meta.directive.prolog' } ] } ], + '#expr': + [ { include: '#comments' }, + { token: 'meta.expression.prolog', + regex: '\\(', + push: + [ { token: 'meta.expression.prolog', regex: '\\)', next: 'pop' }, + { include: '#expr' }, + { defaultToken: 'meta.expression.prolog' } ] }, + { token: 'keyword.control.cutoff.prolog', regex: '!' }, + { token: 'punctuation.control.and.prolog', regex: ',' }, + { token: 'punctuation.control.or.prolog', regex: ';' }, + { include: '#basic_elem' } ], + '#fact': + [ { token: + [ 'entity.name.function.fact.prolog', + 'punctuation.begin.fact.parameters.prolog' ], + regex: '([a-z]\\w*)(\\()(?!.*:-)', + push: + [ { token: + [ 'punctuation.end.fact.parameters.prolog', + 'punctuation.end.fact.prolog' ], + regex: '(\\))(\\.?)', + next: 'pop' }, + { include: '#parameter' }, + { defaultToken: 'meta.fact.prolog' } ] } ], + '#list': + [ { token: 'punctuation.begin.list.prolog', + regex: '\\[(?=.*\\])', + push: + [ { token: 'punctuation.end.list.prolog', + regex: '\\]', + next: 'pop' }, + { include: '#comment' }, + { token: 'punctuation.separator.list.prolog', regex: ',' }, + { token: 'punctuation.concat.list.prolog', + regex: '\\|', + push: + [ { token: 'meta.list.concat.prolog', + regex: '(?=\\s*\\])', + next: 'pop' }, + { include: '#basic_elem' }, + { defaultToken: 'meta.list.concat.prolog' } ] }, + { include: '#basic_elem' }, + { defaultToken: 'meta.list.prolog' } ] } ], + '#operators': + [ { token: 'keyword.operator.prolog', + regex: '\\\\\\+|\\bnot\\b|\\bis\\b|->|[><]|[><\\\\:=]?=|(?:=\\\\|\\\\=)=' } ], + '#parameter': + [ { token: 'variable.language.anonymous.prolog', + regex: '\\b_\\b' }, + { token: 'variable.parameter.prolog', + regex: '\\b[A-Z_]\\w*\\b' }, + { token: 'punctuation.separator.parameters.prolog', regex: ',' }, + { include: '#basic_elem' }, + { token: 'text', regex: '[^\\s]' } ], + '#rule': + [ { token: 'meta.rule.prolog', + regex: '(?=[a-z]\\w*.*:-)', + push: + [ { token: 'punctuation.rule.end.prolog', + regex: '\\.', + next: 'pop' }, + { token: 'meta.rule.signature.prolog', + regex: '(?=[a-z]\\w*.*:-)', + push: + [ { token: 'meta.rule.signature.prolog', + regex: '(?=:-)', + next: 'pop' }, + { token: 'entity.name.function.rule.prolog', + regex: '[a-z]\\w*(?=\\(|\\s*:-)' }, + { token: 'punctuation.rule.parameters.begin.prolog', + regex: '\\(', + push: + [ { token: 'punctuation.rule.parameters.end.prolog', + regex: '\\)', + next: 'pop' }, + { include: '#parameter' }, + { defaultToken: 'meta.rule.parameters.prolog' } ] }, + { defaultToken: 'meta.rule.signature.prolog' } ] }, + { token: 'keyword.operator.definition.prolog', + regex: ':-', + push: + [ { token: 'meta.rule.definition.prolog', + regex: '(?=\\.)', + next: 'pop' }, + { include: '#comment' }, + { include: '#expr' }, + { defaultToken: 'meta.rule.definition.prolog' } ] }, + { defaultToken: 'meta.rule.prolog' } ] } ], + '#statement': + [ { token: 'meta.statement.prolog', + regex: '(?=[a-z]\\w*\\()', + push: + [ { token: 'punctuation.end.statement.parameters.prolog', + regex: '\\)', + next: 'pop' }, + { include: '#builtins' }, + { include: '#atom' }, + { token: 'punctuation.begin.statement.parameters.prolog', + regex: '\\(', + push: + [ { token: 'meta.statement.parameters.prolog', + regex: '(?=\\))', + next: 'pop' }, + { token: 'punctuation.separator.statement.prolog', regex: ',' }, + { include: '#basic_elem' }, + { defaultToken: 'meta.statement.parameters.prolog' } ] }, + { defaultToken: 'meta.statement.prolog' } ] } ], + '#string': + [ { token: 'punctuation.definition.string.begin.prolog', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.prolog', + regex: '\'', + next: 'pop' }, + { token: 'constant.character.escape.prolog', regex: '\\\\.' }, + { token: 'constant.character.escape.quote.prolog', + regex: '\'\'' }, + { defaultToken: 'string.quoted.single.prolog' } ] } ], + '#variable': + [ { token: 'variable.language.anonymous.prolog', + regex: '\\b_\\b' }, + { token: 'variable.other.prolog', + regex: '\\b[A-Z_][a-zA-Z0-9_]*\\b' } ] } + + this.normalizeRules(); +}; + +PrologHighlightRules.metaData = { fileTypes: [ 'plg', 'prolog' ], + foldingStartMarker: '(%\\s*region \\w*)|([a-z]\\w*.*:- ?)', + foldingStopMarker: '(%\\s*end(\\s*region)?)|(?=\\.)', + keyEquivalent: '^~P', + name: 'Prolog', + scopeName: 'source.prolog' } + + +oop.inherits(PrologHighlightRules, TextHighlightRules); + +exports.PrologHighlightRules = PrologHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/prolog",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/prolog_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PrologHighlightRules = require("./prolog_highlight_rules").PrologHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = PrologHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "%"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/prolog"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-properties.js b/htdocs/includes/ace/mode-properties.js new file mode 100644 index 00000000000..2e9ba725bd4 --- /dev/null +++ b/htdocs/includes/ace/mode-properties.js @@ -0,0 +1,73 @@ +ace.define("ace/mode/properties_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PropertiesHighlightRules = function() { + + var escapeRe = /\\u[0-9a-fA-F]{4}|\\/; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : /[!#].*$/ + }, { + token : "keyword", + regex : /[=:]$/ + }, { + token : "keyword", + regex : /[=:]/, + next : "value" + }, { + token : "constant.language.escape", + regex : escapeRe + }, { + defaultToken: "variable" + } + ], + "value" : [ + { + regex : /\\$/, + token : "string", + next : "value" + }, { + regex : /$/, + token : "string", + next : "start" + }, { + token : "constant.language.escape", + regex : escapeRe + }, { + defaultToken: "string" + } + ] + }; + +}; + +oop.inherits(PropertiesHighlightRules, TextHighlightRules); + +exports.PropertiesHighlightRules = PropertiesHighlightRules; +}); + +ace.define("ace/mode/properties",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/properties_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PropertiesHighlightRules = require("./properties_highlight_rules").PropertiesHighlightRules; + +var Mode = function() { + this.HighlightRules = PropertiesHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/properties"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-protobuf.js b/htdocs/includes/ace/mode-protobuf.js new file mode 100644 index 00000000000..8cef657623d --- /dev/null +++ b/htdocs/includes/ace/mode-protobuf.js @@ -0,0 +1,577 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/c_cpp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var cFunctions = exports.cFunctions = "\\b(?:hypot(?:f|l)?|s(?:scanf|ystem|nprintf|ca(?:nf|lb(?:n(?:f|l)?|ln(?:f|l)?))|i(?:n(?:h(?:f|l)?|f|l)?|gn(?:al|bit))|tr(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(?:jmp|vbuf|locale|buf)|qrt(?:f|l)?|w(?:scanf|printf)|rand)|n(?:e(?:arbyint(?:f|l)?|xt(?:toward(?:f|l)?|after(?:f|l)?))|an(?:f|l)?)|c(?:s(?:in(?:h(?:f|l)?|f|l)?|qrt(?:f|l)?)|cos(?:h(?:f)?|f|l)?|imag(?:f|l)?|t(?:ime|an(?:h(?:f|l)?|f|l)?)|o(?:s(?:h(?:f|l)?|f|l)?|nj(?:f|l)?|pysign(?:f|l)?)|p(?:ow(?:f|l)?|roj(?:f|l)?)|e(?:il(?:f|l)?|xp(?:f|l)?)|l(?:o(?:ck|g(?:f|l)?)|earerr)|a(?:sin(?:h(?:f|l)?|f|l)?|cos(?:h(?:f|l)?|f|l)?|tan(?:h(?:f|l)?|f|l)?|lloc|rg(?:f|l)?|bs(?:f|l)?)|real(?:f|l)?|brt(?:f|l)?)|t(?:ime|o(?:upper|lower)|an(?:h(?:f|l)?|f|l)?|runc(?:f|l)?|gamma(?:f|l)?|mp(?:nam|file))|i(?:s(?:space|n(?:ormal|an)|cntrl|inf|digit|u(?:nordered|pper)|p(?:unct|rint)|finite|w(?:space|c(?:ntrl|type)|digit|upper|p(?:unct|rint)|lower|al(?:num|pha)|graph|xdigit|blank)|l(?:ower|ess(?:equal|greater)?)|al(?:num|pha)|gr(?:eater(?:equal)?|aph)|xdigit|blank)|logb(?:f|l)?|max(?:div|abs))|di(?:v|fftime)|_Exit|unget(?:c|wc)|p(?:ow(?:f|l)?|ut(?:s|c(?:har)?|wc(?:har)?)|error|rintf)|e(?:rf(?:c(?:f|l)?|f|l)?|x(?:it|p(?:2(?:f|l)?|f|l|m1(?:f|l)?)?))|v(?:s(?:scanf|nprintf|canf|printf|w(?:scanf|printf))|printf|f(?:scanf|printf|w(?:scanf|printf))|w(?:scanf|printf)|a_(?:start|copy|end|arg))|qsort|f(?:s(?:canf|e(?:tpos|ek))|close|tell|open|dim(?:f|l)?|p(?:classify|ut(?:s|c|w(?:s|c))|rintf)|e(?:holdexcept|set(?:e(?:nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(?:aiseexcept|ror)|get(?:e(?:nv|xceptflag)|round))|flush|w(?:scanf|ide|printf|rite)|loor(?:f|l)?|abs(?:f|l)?|get(?:s|c|pos|w(?:s|c))|re(?:open|e|ad|xp(?:f|l)?)|m(?:in(?:f|l)?|od(?:f|l)?|a(?:f|l|x(?:f|l)?)?))|l(?:d(?:iv|exp(?:f|l)?)|o(?:ngjmp|cal(?:time|econv)|g(?:1(?:p(?:f|l)?|0(?:f|l)?)|2(?:f|l)?|f|l|b(?:f|l)?)?)|abs|l(?:div|abs|r(?:int(?:f|l)?|ound(?:f|l)?))|r(?:int(?:f|l)?|ound(?:f|l)?)|gamma(?:f|l)?)|w(?:scanf|c(?:s(?:s(?:tr|pn)|nc(?:py|at|mp)|c(?:spn|hr|oll|py|at|mp)|to(?:imax|d|u(?:l(?:l)?|max)|k|f|l(?:d|l)?|mbs)|pbrk|ftime|len|r(?:chr|tombs)|xfrm)|to(?:b|mb)|rtomb)|printf|mem(?:set|c(?:hr|py|mp)|move))|a(?:s(?:sert|ctime|in(?:h(?:f|l)?|f|l)?)|cos(?:h(?:f|l)?|f|l)?|t(?:o(?:i|f|l(?:l)?)|exit|an(?:h(?:f|l)?|2(?:f|l)?|f|l)?)|b(?:s|ort))|g(?:et(?:s|c(?:har)?|env|wc(?:har)?)|mtime)|r(?:int(?:f|l)?|ound(?:f|l)?|e(?:name|alloc|wind|m(?:ove|quo(?:f|l)?|ainder(?:f|l)?))|a(?:nd|ise))|b(?:search|towc)|m(?:odf(?:f|l)?|em(?:set|c(?:hr|py|mp)|move)|ktime|alloc|b(?:s(?:init|towcs|rtowcs)|towc|len|r(?:towc|len))))\\b" + +var c_cppHighlightRules = function() { + + var keywordControls = ( + "break|case|continue|default|do|else|for|goto|if|_Pragma|" + + "return|switch|while|catch|operator|try|throw|using" + ); + + var storageType = ( + "asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|" + + "_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void|" + + "class|wchar_t|template|char16_t|char32_t" + ); + + var storageModifiers = ( + "const|extern|register|restrict|static|volatile|inline|private|" + + "protected|public|friend|explicit|virtual|export|mutable|typename|" + + "constexpr|new|delete|alignas|alignof|decltype|noexcept|thread_local" + ); + + var keywordOperators = ( + "and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq" + + "const_cast|dynamic_cast|reinterpret_cast|static_cast|sizeof|namespace" + ); + + var builtinConstants = ( + "NULL|true|false|TRUE|FALSE|nullptr" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword.control" : keywordControls, + "storage.type" : storageType, + "storage.modifier" : storageModifiers, + "keyword.operator" : keywordOperators, + "variable.language": "this", + "constant.language": builtinConstants + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + var escapeRe = /\\(?:['"?\\abfnrtv]|[0-7]{1,3}|x[a-fA-F\d]{2}|u[a-fA-F\d]{4}U[a-fA-F\d]{8}|.)/.source; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "//$", + next : "start" + }, { + token : "comment", + regex : "//", + next : "singleLineComment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : "'(?:" + escapeRe + "|.)?'" + }, { + token : "string.start", + regex : '"', + stateName: "qqstring", + next: [ + { token: "string", regex: /\\\s*$/, next: "qqstring" }, + { token: "constant.language.escape", regex: escapeRe }, + { token: "constant.language.escape", regex: /%[^'"\\]/ }, + { token: "string.end", regex: '"|$', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "string.start", + regex : 'R"\\(', + stateName: "rawString", + next: [ + { token: "string.end", regex: '\\)"', next: "start" }, + { defaultToken: "string"} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "#\\s*(?:include|import|pragma|line|define|undef)\\b", + next : "directive" + }, { + token : "keyword", // special case pre-compiler directive + regex : "#\\s*(?:endif|if|ifdef|else|elif|ifndef)\\b" + }, { + token : "support.function.C99.c", + regex : cFunctions + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*" + }, { + token : "keyword.operator", + regex : /--|\+\+|<<=|>>=|>>>=|<>|&&|\|\||\?:|[*%\/+\-&\^|~!<>=]=?/ + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "singleLineComment" : [ + { + token : "comment", + regex : /\\$/, + next : "singleLineComment" + }, { + token : "comment", + regex : /$/, + next : "start" + }, { + defaultToken: "comment" + } + ], + "directive" : [ + { + token : "constant.other.multiline", + regex : /\\/ + }, + { + token : "constant.other.multiline", + regex : /.*\\/ + }, + { + token : "constant.other", + regex : "\\s*<.+?>", + next : "start" + }, + { + token : "constant.other", // single line + regex : '\\s*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]', + next : "start" + }, + { + token : "constant.other", // single line + regex : "\\s*['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']", + next : "start" + }, + { + token : "constant.other", + regex : /[^\\\/]+/, + next : "start" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(c_cppHighlightRules, TextHighlightRules); + +exports.c_cppHighlightRules = c_cppHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/c_cpp",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/c_cpp_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var c_cppHighlightRules = require("./c_cpp_highlight_rules").c_cppHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = c_cppHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/c_cpp"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/protobuf_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { + "use strict"; + + var oop = require("../lib/oop"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + + var ProtobufHighlightRules = function() { + + var builtinTypes = "double|float|int32|int64|uint32|uint64|sint32|" + + "sint64|fixed32|fixed64|sfixed32|sfixed64|bool|" + + "string|bytes"; + var keywordDeclaration = "message|required|optional|repeated|package|" + + "import|option|enum"; + + var keywordMapper = this.createKeywordMapper({ + "keyword.declaration.protobuf": keywordDeclaration, + "support.type": builtinTypes + }, "identifier"); + + this.$rules = { + "start": [{ + token: "comment", + regex: /\/\/.*$/ + }, { + token: "comment", + regex: /\/\*/, + next: "comment" + }, { + token: "constant", + regex: "<[^>]+>" + }, { + regex: "=", + token: "keyword.operator.assignment.protobuf" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : '[\'](?:(?:\\\\.)|(?:[^\'\\\\]))*?[\']' + }, { + token: "constant.numeric", // hex + regex: "0[xX][0-9a-fA-F]+\\b" + }, { + token: "constant.numeric", // float + regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token: keywordMapper, + regex: "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }], + "comment": [{ + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + }] + }; + + this.normalizeRules(); + }; + + oop.inherits(ProtobufHighlightRules, TextHighlightRules); + + exports.ProtobufHighlightRules = ProtobufHighlightRules; +}); + +ace.define("ace/mode/protobuf",["require","exports","module","ace/lib/oop","ace/mode/c_cpp","ace/mode/protobuf_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var CMode = require("./c_cpp").Mode; +var ProtobufHighlightRules = require("./protobuf_highlight_rules").ProtobufHighlightRules; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + CMode.call(this); + this.foldingRules = new CStyleFoldMode(); + this.HighlightRules = ProtobufHighlightRules; +}; +oop.inherits(Mode, CMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/protobuf"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-python.js b/htdocs/includes/ace/mode-python.js new file mode 100644 index 00000000000..19efccb6500 --- /dev/null +++ b/htdocs/includes/ace/mode-python.js @@ -0,0 +1,265 @@ +ace.define("ace/mode/python_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var PythonHighlightRules = function() { + + var keywords = ( + "and|as|assert|break|class|continue|def|del|elif|else|except|exec|" + + "finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|" + + "raise|return|try|while|with|yield" + ); + + var builtinConstants = ( + "True|False|None|NotImplemented|Ellipsis|__debug__" + ); + + var builtinFunctions = ( + "abs|divmod|input|open|staticmethod|all|enumerate|int|ord|str|any|" + + "eval|isinstance|pow|sum|basestring|execfile|issubclass|print|super|" + + "binfile|iter|property|tuple|bool|filter|len|range|type|bytearray|" + + "float|list|raw_input|unichr|callable|format|locals|reduce|unicode|" + + "chr|frozenset|long|reload|vars|classmethod|getattr|map|repr|xrange|" + + "cmp|globals|max|reversed|zip|compile|hasattr|memoryview|round|" + + "__import__|complex|hash|min|set|apply|delattr|help|next|setattr|" + + "buffer|dict|hex|object|slice|coerce|dir|id|oct|sorted|intern" + ); + var keywordMapper = this.createKeywordMapper({ + "invalid.deprecated": "debugger", + "support.function": builtinFunctions, + "constant.language": builtinConstants, + "keyword": keywords + }, "identifier"); + + var strPre = "(?:r|u|ur|R|U|UR|Ur|uR)?"; + + var decimalInteger = "(?:(?:[1-9]\\d*)|(?:0))"; + var octInteger = "(?:0[oO]?[0-7]+)"; + var hexInteger = "(?:0[xX][\\dA-Fa-f]+)"; + var binInteger = "(?:0[bB][01]+)"; + var integer = "(?:" + decimalInteger + "|" + octInteger + "|" + hexInteger + "|" + binInteger + ")"; + + var exponent = "(?:[eE][+-]?\\d+)"; + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + exponent + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + + var stringEscape = "\\\\(x[0-9A-Fa-f]{2}|[0-7]{3}|[\\\\abfnrtv'\"]|U[0-9A-Fa-f]{8}|u[0-9A-Fa-f]{4})"; + + this.$rules = { + "start" : [ { + token : "comment", + regex : "#.*$" + }, { + token : "string", // multi line """ string start + regex : strPre + '"{3}', + next : "qqstring3" + }, { + token : "string", // " string + regex : strPre + '"(?=.)', + next : "qqstring" + }, { + token : "string", // multi line ''' string start + regex : strPre + "'{3}", + next : "qstring3" + }, { + token : "string", // ' string + regex : strPre + "'(?=.)", + next : "qstring" + }, { + token : "constant.numeric", // imaginary + regex : "(?:" + floatNumber + "|\\d+)[jJ]\\b" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // long integer + regex : integer + "[lL]\\b" + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|%|<<|>>|&|\\||\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]\\)\\}]" + }, { + token : "text", + regex : "\\s+" + } ], + "qqstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line """ string end + regex : '"{3}', + next : "start" + }, { + defaultToken : "string" + } ], + "qstring3" : [ { + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", // multi line ''' string end + regex : "'{3}", + next : "start" + }, { + defaultToken : "string" + } ], + "qqstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken: "string" + }], + "qstring" : [{ + token : "constant.language.escape", + regex : stringEscape + }, { + token : "string", + regex : "\\\\$", + next : "qstring" + }, { + token : "string", + regex : "'|$", + next : "start" + }, { + defaultToken: "string" + }] + }; +}; + +oop.inherits(PythonHighlightRules, TextHighlightRules); + +exports.PythonHighlightRules = PythonHighlightRules; +}); + +ace.define("ace/mode/folding/pythonic",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(markers) { + this.foldingStartMarker = new RegExp("([\\[{])(?:\\s*)$|(" + markers + ")(?:\\s*)(?:#.*)?$"); +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var line = session.getLine(row); + var match = line.match(this.foldingStartMarker); + if (match) { + if (match[1]) + return this.openingBracketBlock(session, match[1], row, match.index); + if (match[2]) + return this.indentationBlock(session, row, match.index + match[2].length); + return this.indentationBlock(session, row); + } + } + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/python",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/python_highlight_rules","ace/mode/folding/pythonic","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var PythonHighlightRules = require("./python_highlight_rules").PythonHighlightRules; +var PythonFoldMode = require("./folding/pythonic").FoldMode; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = PythonHighlightRules; + this.foldingRules = new PythonFoldMode("\\:"); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + + this.$id = "ace/mode/python"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-r.js b/htdocs/includes/ace/mode-r.js new file mode 100644 index 00000000000..297d7e0569e --- /dev/null +++ b/htdocs/includes/ace/mode-r.js @@ -0,0 +1,301 @@ +ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TexHighlightRules = function(textClass) { + + if (!textClass) + textClass = "text"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "%.*$" + }, { + token : textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b", + next : "nospell" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, { + token : textClass, + regex : "\\s+" + } + ], + "nospell" : [ + { + token : "comment", + regex : "%.*$", + next : "start" + }, { + token : "nospell." + textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])", + next : "start" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])]" + }, { + token : "paren.keyword.operator", + regex : "}", + next : "start" + }, { + token : "nospell." + textClass, + regex : "\\s+" + }, { + token : "nospell." + textClass, + regex : "\\w+" + } + ] + }; +}; + +oop.inherits(TexHighlightRules, TextHighlightRules); + +exports.TexHighlightRules = TexHighlightRules; +}); + +ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"], function(require, exports, module) +{ + + var oop = require("../lib/oop"); + var lang = require("../lib/lang"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + var TexHighlightRules = require("./tex_highlight_rules").TexHighlightRules; + + var RHighlightRules = function() + { + + var keywords = lang.arrayToMap( + ("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass") + .split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|" + + "NA_complex_").split("|") + ); + + this.$rules = { + "start" : [ + { + token : "comment.sectionhead", + regex : "#+(?!').*(?:----|====|####)\\s*$" + }, + { + token : "comment", + regex : "#+'", + next : "rd-start" + }, + { + token : "comment", + regex : "#.*$" + }, + { + token : "string", // multi line string start + regex : '["]', + next : "qqstring" + }, + { + token : "string", // multi line string start + regex : "[']", + next : "qstring" + }, + { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+[Li]?\\b" + }, + { + token : "constant.numeric", // explicit integer + regex : "\\d+L\\b" + }, + { + token : "constant.numeric", // number + regex : "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b" + }, + { + token : "constant.numeric", // number with leading decimal + regex : "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b" + }, + { + token : "constant.language.boolean", + regex : "(?:TRUE|FALSE|T|F)\\b" + }, + { + token : "identifier", + regex : "`.*?`" + }, + { + onMatch : function(value) { + if (keywords[value]) + return "keyword"; + else if (buildinConstants[value]) + return "constant.language"; + else if (value == '...' || value.match(/^\.\.\d+$/)) + return "variable.language"; + else + return "identifier"; + }, + regex : "[a-zA-Z.][a-zA-Z0-9._]*\\b" + }, + { + token : "keyword.operator", + regex : "%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:" + }, + { + token : "keyword.operator", // infix operators + regex : "%.*?%" + }, + { + token : "paren.keyword.operator", + regex : "[[({]" + }, + { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, + { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, + { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, + { + token : "string", + regex : '.+' + } + ] + }; + + var rdRules = new TexHighlightRules("comment").getRules(); + for (var i = 0; i < rdRules["start"].length; i++) { + rdRules["start"][i].token += ".virtual-comment"; + } + + this.addRules(rdRules, "rd-"); + this.$rules["rd-start"].unshift({ + token: "text", + regex: "^", + next: "start" + }); + this.$rules["rd-start"].unshift({ + token : "keyword", + regex : "@(?!@)[^ ]*" + }); + this.$rules["rd-start"].unshift({ + token : "comment", + regex : "@@" + }); + this.$rules["rd-start"].push({ + token : "comment", + regex : "[^%\\\\[({\\])}]+" + }); + }; + + oop.inherits(RHighlightRules, TextHighlightRules); + + exports.RHighlightRules = RHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/r",["require","exports","module","ace/range","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/r_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { + "use strict"; + + var Range = require("../range").Range; + var oop = require("../lib/oop"); + var TextMode = require("./text").Mode; + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + var RHighlightRules = require("./r_highlight_rules").RHighlightRules; + var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + + var Mode = function(){ + this.HighlightRules = RHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = this.$defaultBehaviour; + }; + oop.inherits(Mode, TextMode); + + (function() + { + this.lineCommentStart = "#"; + this.$id = "ace/mode/r"; + }).call(Mode.prototype); + exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-razor.js b/htdocs/includes/ace/mode-razor.js new file mode 100644 index 00000000000..c19ec55f39c --- /dev/null +++ b/htdocs/includes/ace/mode-razor.js @@ -0,0 +1,2845 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/csharp_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var CSharpHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": "abstract|event|new|struct|as|explicit|null|switch|base|extern|object|this|bool|false|operator|throw|break|finally|out|true|byte|fixed|override|try|case|float|params|typeof|catch|for|private|uint|char|foreach|protected|ulong|checked|goto|public|unchecked|class|if|readonly|unsafe|const|implicit|ref|ushort|continue|in|return|using|decimal|int|sbyte|virtual|default|interface|sealed|volatile|delegate|internal|short|void|do|is|sizeof|while|double|lock|stackalloc|else|long|static|enum|namespace|string|var|dynamic", + "constant.language": "null|true|false" + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // character + regex : /'(?:.|\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n]))?'/ + }, { + token : "string", start : '"', end : '"|$', next: [ + {token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/}, + {token: "invalid", regex: /\\./} + ] + }, { + token : "string", start : '@"', end : '"', next:[ + {token: "constant.language.escape", regex: '""'} + ] + }, { + token : "string", start : /\$"/, end : '"|$', next: [ + {token: "constant.language.escape", regex: /\\(:?$)|{{/}, + {token: "constant.language.escape", regex: /\\(:?u[\da-fA-F]+|x[\da-fA-F]+|[tbrf'"n])/}, + {token: "invalid", regex: /\\./} + ] + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "keyword", + regex : "^\\s*#(if|else|elif|endif|define|undef|warning|error|line|region|endregion|pragma)" + }, { + token : "punctuation.operator", + regex : "\\?|\\:|\\,|\\;|\\." + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + this.normalizeRules(); +}; + +oop.inherits(CSharpHighlightRules, TextHighlightRules); + +exports.CSharpHighlightRules = CSharpHighlightRules; +}); + +ace.define("ace/mode/razor_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/html_highlight_rules","ace/mode/csharp_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var CSharpHighlightRules = require("./csharp_highlight_rules").CSharpHighlightRules; + +var blockPrefix = 'razor-block-'; +var RazorLangHighlightRules = function() { + CSharpHighlightRules.call(this); + + var processPotentialCallback = function(value, stackItem) { + if (typeof stackItem === "function") + return stackItem(value); + + return stackItem; + }; + + var inBraces = 'in-braces'; + this.$rules.start.unshift({ + regex: '[\\[({]', + onMatch: function(value, state, stack) { + var prefix = /razor-[^\-]+-/.exec(state)[0]; + + stack.unshift(value); + stack.unshift(prefix + inBraces); + this.next = prefix + inBraces; + return 'paren.lparen'; + } + }, { + start: "@\\*", + end: "\\*@", + token: "comment" + }); + + var parentCloseMap = { + '{': '}', + '[': ']', + '(': ')' + }; + + this.$rules[inBraces] = lang.deepCopy(this.$rules.start); + this.$rules[inBraces].unshift({ + regex: '[\\])}]', + onMatch: function(value, state, stack) { + var open = stack[1]; + if (parentCloseMap[open] !== value) + return 'invalid.illegal'; + + stack.shift(); // exit in-braces block + stack.shift(); // exit brace marker + this.next = processPotentialCallback(value, stack[0]) || 'start'; + return 'paren.rparen'; + } + }); +}; + +oop.inherits(RazorLangHighlightRules, CSharpHighlightRules); + +var RazorHighlightRules = function() { + HtmlHighlightRules.call(this); + + var blockStartRule = { + regex: '@[({]|@functions{', + onMatch: function(value, state, stack) { + stack.unshift(value); + stack.unshift('razor-block-start'); + this.next = 'razor-block-start'; + return 'punctuation.block.razor'; + } + }; + + var blockEndMap = { + '@{': '}', + '@(': ')', + '@functions{':'}' + }; + + var blockEndRule = { + regex: '[})]', + onMatch: function(value, state, stack) { + var blockStart = stack[1]; + if (blockEndMap[blockStart] !== value) + return 'invalid.illegal'; + + stack.shift(); // exit razor block + stack.shift(); // remove block type marker + this.next = stack.shift() || 'start'; + return 'punctuation.block.razor'; + } + }; + + var shortStartRule = { + regex: "@(?![{(])", + onMatch: function(value, state, stack) { + stack.unshift("razor-short-start"); + this.next = "razor-short-start"; + return 'punctuation.short.razor'; + } + }; + + var shortEndRule = { + token: "", + regex: "(?=[^A-Za-z_\\.()\\[\\]])", + next: 'pop' + }; + + var ifStartRule = { + regex: "@(?=if)", + onMatch: function(value, state, stack) { + stack.unshift(function(value) { + if (value !== '}') + return 'start'; + + return stack.shift() || 'start'; + }); + this.next = 'razor-block-start'; + return 'punctuation.control.razor'; + } + }; + + var razorStartRules = [ + { + start: "@\\*", + end: "\\*@", + token: "comment" + }, + { + token: ["meta.directive.razor", "text", "identifier"], + regex: "^(\\s*@model)(\\s+)(.+)$" + }, + blockStartRule, + shortStartRule + ]; + + for (var key in this.$rules) + this.$rules[key].unshift.apply(this.$rules[key], razorStartRules); + + this.embedRules(RazorLangHighlightRules, "razor-block-", [blockEndRule], ["start"]); + this.embedRules(RazorLangHighlightRules, "razor-short-", [shortEndRule], ["start"]); + + this.normalizeRules(); +}; + +oop.inherits(RazorHighlightRules, HtmlHighlightRules); + +exports.RazorHighlightRules = RazorHighlightRules; +exports.RazorLangHighlightRules = RazorLangHighlightRules; +}); + +ace.define("ace/mode/razor_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var keywords = [ + "abstract", "as", "base", "bool", + "break", "byte", "case", "catch", + "char", "checked", "class", "const", + "continue", "decimal", "default", "delegate", + "do", "double","else","enum", + "event", "explicit", "extern", "false", + "finally", "fixed", "float", "for", + "foreach", "goto", "if", "implicit", + "in", "int", "interface", "internal", + "is", "lock", "long", "namespace", + "new", "null", "object", "operator", + "out", "override", "params", "private", + "protected", "public", "readonly", "ref", + "return", "sbyte", "sealed", "short", + "sizeof", "stackalloc", "static", "string", + "struct", "switch", "this", "throw", + "true", "try", "typeof", "uint", + "ulong", "unchecked", "unsafe", "ushort", + "using", "var", "virtual", "void", + "volatile", "while"]; + +var shortHands = [ + "Html", "Model", "Url", "Layout" +]; + +var RazorCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + + if(state.lastIndexOf("razor-short-start") == -1 && state.lastIndexOf("razor-block-start") == -1) + return []; + + var token = session.getTokenAt(pos.row, pos.column); + if (!token) + return []; + + if(state.lastIndexOf("razor-short-start") != -1) { + return this.getShortStartCompletions(state, session, pos, prefix); + } + + if(state.lastIndexOf("razor-block-start") != -1) { + return this.getKeywordCompletions(state, session, pos, prefix); + } + + + }; + + this.getShortStartCompletions = function(state, session, pos, prefix) { + return shortHands.map(function(element){ + return { + value: element, + meta: "keyword", + score: Number.MAX_VALUE + }; + }); + }; + + this.getKeywordCompletions = function(state, session, pos, prefix) { + return shortHands.concat(keywords).map(function(element){ + return { + value: element, + meta: "keyword", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(RazorCompletions.prototype); + +exports.RazorCompletions = RazorCompletions; + +}); + +ace.define("ace/mode/razor",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/razor_highlight_rules","ace/mode/razor_completions","ace/mode/html_completions"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var RazorHighlightRules = require("./razor_highlight_rules").RazorHighlightRules; +var RazorCompletions = require("./razor_completions").RazorCompletions; +var HtmlCompletions = require("./html_completions").HtmlCompletions; + +var Mode = function() { + HtmlMode.call(this); + this.$highlightRules = new RazorHighlightRules(); + this.$completer = new RazorCompletions(); + this.$htmlCompleter = new HtmlCompletions(); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.getCompletions = function(state, session, pos, prefix) { + var razorToken = this.$completer.getCompletions(state, session, pos, prefix); + var htmlToken = this.$htmlCompleter.getCompletions(state, session, pos, prefix); + return razorToken.concat(htmlToken); + }; + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/razor"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-rdoc.js b/htdocs/includes/ace/mode-rdoc.js new file mode 100644 index 00000000000..50d6b4b3523 --- /dev/null +++ b/htdocs/includes/ace/mode-rdoc.js @@ -0,0 +1,205 @@ +ace.define("ace/mode/latex_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var LatexHighlightRules = function() { + + this.$rules = { + "start" : [{ + token : "comment", + regex : "%.*$" + }, { + token : ["keyword", "lparen", "variable.parameter", "rparen", "lparen", "storage.type", "rparen"], + regex : "(\\\\(?:documentclass|usepackage|input))(?:(\\[)([^\\]]*)(\\]))?({)([^}]*)(})" + }, { + token : ["keyword","lparen", "variable.parameter", "rparen"], + regex : "(\\\\(?:label|v?ref|cite(?:[^{]*)))(?:({)([^}]*)(}))?" + }, { + token : ["storage.type", "lparen", "variable.parameter", "rparen"], + regex : "(\\\\(?:begin|end))({)(\\w*)(})" + }, { + token : "storage.type", + regex : "\\\\[a-zA-Z]+" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "constant.character.escape", + regex : "\\\\[^a-zA-Z]?" + }, { + token : "string", + regex : "\\${1,2}", + next : "equation" + }], + "equation" : [{ + token : "comment", + regex : "%.*$" + }, { + token : "string", + regex : "\\${1,2}", + next : "start" + }, { + token : "constant.character.escape", + regex : "\\\\(?:[^a-zA-Z]|[a-zA-Z]+)" + }, { + token : "error", + regex : "^\\s*$", + next : "start" + }, { + defaultToken : "string" + }] + + }; +}; +oop.inherits(LatexHighlightRules, TextHighlightRules); + +exports.LatexHighlightRules = LatexHighlightRules; + +}); + +ace.define("ace/mode/rdoc_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/latex_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var LaTeXHighlightRules = require("./latex_highlight_rules"); + +var RDocHighlightRules = function() { + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "%.*$" + }, { + token : "text", // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\b", + next : "nospell" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "nospell" : [ + { + token : "comment", + regex : "%.*$", + next : "start" + }, { + token : "nospell.text", // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:name|alias|method|S3method|S4method|item|code|preformatted|kbd|pkg|var|env|option|command|author|email|url|source|cite|acronym|href|code|preformatted|link|eqn|deqn|keyword|usage|examples|dontrun|dontshow|figure|if|ifelse|Sexpr|RdOpts|inputencoding|usepackage)\\b" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])", + next : "start" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])]" + }, { + token : "paren.keyword.operator", + regex : "}", + next : "start" + }, { + token : "nospell.text", + regex : "\\s+" + }, { + token : "nospell.text", + regex : "\\w+" + } + ] + }; +}; + +oop.inherits(RDocHighlightRules, TextHighlightRules); + +exports.RDocHighlightRules = RDocHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/rdoc",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rdoc_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RDocHighlightRules = require("./rdoc_highlight_rules").RDocHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function(suppressHighlighting) { + this.HighlightRules = RDocHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + this.$id = "ace/mode/rdoc"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-rhtml.js b/htdocs/includes/ace/mode-rhtml.js new file mode 100644 index 00000000000..aae0378d251 --- /dev/null +++ b/htdocs/includes/ace/mode-rhtml.js @@ -0,0 +1,2779 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TexHighlightRules = function(textClass) { + + if (!textClass) + textClass = "text"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "%.*$" + }, { + token : textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b", + next : "nospell" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, { + token : textClass, + regex : "\\s+" + } + ], + "nospell" : [ + { + token : "comment", + regex : "%.*$", + next : "start" + }, { + token : "nospell." + textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])", + next : "start" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])]" + }, { + token : "paren.keyword.operator", + regex : "}", + next : "start" + }, { + token : "nospell." + textClass, + regex : "\\s+" + }, { + token : "nospell." + textClass, + regex : "\\w+" + } + ] + }; +}; + +oop.inherits(TexHighlightRules, TextHighlightRules); + +exports.TexHighlightRules = TexHighlightRules; +}); + +ace.define("ace/mode/r_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules"], function(require, exports, module) +{ + + var oop = require("../lib/oop"); + var lang = require("../lib/lang"); + var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + var TexHighlightRules = require("./tex_highlight_rules").TexHighlightRules; + + var RHighlightRules = function() + { + + var keywords = lang.arrayToMap( + ("function|if|in|break|next|repeat|else|for|return|switch|while|try|tryCatch|stop|warning|require|library|attach|detach|source|setMethod|setGeneric|setGroupGeneric|setClass") + .split("|") + ); + + var buildinConstants = lang.arrayToMap( + ("NULL|NA|TRUE|FALSE|T|F|Inf|NaN|NA_integer_|NA_real_|NA_character_|" + + "NA_complex_").split("|") + ); + + this.$rules = { + "start" : [ + { + token : "comment.sectionhead", + regex : "#+(?!').*(?:----|====|####)\\s*$" + }, + { + token : "comment", + regex : "#+'", + next : "rd-start" + }, + { + token : "comment", + regex : "#.*$" + }, + { + token : "string", // multi line string start + regex : '["]', + next : "qqstring" + }, + { + token : "string", // multi line string start + regex : "[']", + next : "qstring" + }, + { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+[Li]?\\b" + }, + { + token : "constant.numeric", // explicit integer + regex : "\\d+L\\b" + }, + { + token : "constant.numeric", // number + regex : "\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b" + }, + { + token : "constant.numeric", // number with leading decimal + regex : "\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b" + }, + { + token : "constant.language.boolean", + regex : "(?:TRUE|FALSE|T|F)\\b" + }, + { + token : "identifier", + regex : "`.*?`" + }, + { + onMatch : function(value) { + if (keywords[value]) + return "keyword"; + else if (buildinConstants[value]) + return "constant.language"; + else if (value == '...' || value.match(/^\.\.\d+$/)) + return "variable.language"; + else + return "identifier"; + }, + regex : "[a-zA-Z.][a-zA-Z0-9._]*\\b" + }, + { + token : "keyword.operator", + regex : "%%|>=|<=|==|!=|\\->|<\\-|\\|\\||&&|=|\\+|\\-|\\*|/|\\^|>|<|!|&|\\||~|\\$|:" + }, + { + token : "keyword.operator", // infix operators + regex : "%.*?%" + }, + { + token : "paren.keyword.operator", + regex : "[[({]" + }, + { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, + { + token : "text", + regex : "\\s+" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, + { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, + { + token : "string", + regex : '.+' + } + ] + }; + + var rdRules = new TexHighlightRules("comment").getRules(); + for (var i = 0; i < rdRules["start"].length; i++) { + rdRules["start"][i].token += ".virtual-comment"; + } + + this.addRules(rdRules, "rd-"); + this.$rules["rd-start"].unshift({ + token: "text", + regex: "^", + next: "start" + }); + this.$rules["rd-start"].unshift({ + token : "keyword", + regex : "@(?!@)[^ ]*" + }); + this.$rules["rd-start"].unshift({ + token : "comment", + regex : "@@" + }); + this.$rules["rd-start"].push({ + token : "comment", + regex : "[^%\\\\[({\\])}]+" + }); + }; + + oop.inherits(RHighlightRules, TextHighlightRules); + + exports.RHighlightRules = RHighlightRules; +}); + +ace.define("ace/mode/rhtml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/r_highlight_rules","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var RHighlightRules = require("./r_highlight_rules").RHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var RHtmlHighlightRules = function() { + HtmlHighlightRules.call(this); + + this.$rules["start"].unshift({ + token: "support.function.codebegin", + regex: "^<" + "!--\\s*begin.rcode\\s*(?:.*)", + next: "r-start" + }); + + this.embedRules(RHighlightRules, "r-", [{ + token: "support.function.codeend", + regex: "^\\s*end.rcode\\s*-->", + next: "start" + }], ["start"]); + + this.normalizeRules(); +}; +oop.inherits(RHtmlHighlightRules, TextHighlightRules); + +exports.RHtmlHighlightRules = RHtmlHighlightRules; +}); + +ace.define("ace/mode/rhtml",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/rhtml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; + +var RHtmlHighlightRules = require("./rhtml_highlight_rules").RHtmlHighlightRules; + +var Mode = function(doc, session) { + HtmlMode.call(this); + this.$session = session; + this.HighlightRules = RHtmlHighlightRules; +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.insertChunkInfo = { + value: "\n", + position: {row: 0, column: 15} + }; + + this.getLanguageMode = function(position) + { + return this.$session.getState(position.row).match(/^r-/) ? 'R' : 'HTML'; + }; + + this.$id = "ace/mode/rhtml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-rst.js b/htdocs/includes/ace/mode-rst.js new file mode 100644 index 00000000000..235d31a2397 --- /dev/null +++ b/htdocs/includes/ace/mode-rst.js @@ -0,0 +1,249 @@ +ace.define("ace/mode/rst_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var RSTHighlightRules = function() { + + var tokens = { + title: "markup.heading", + list: "markup.heading", + table: "constant", + directive: "keyword.operator", + entity: "string", + link: "markup.underline.list", + bold: "markup.bold", + italic: "markup.italic", + literal: "support.function", + comment: "comment" + }; + + var startStringPrefix = "(^|\\s|[\"'(<\\[{\\-/:])"; + var endStringSuffix = "(?:$|(?=\\s|[\\\\.,;!?\\-/:\"')>\\]}]))"; + + this.$rules = { + "start": [ + { + token : tokens.title, + regex : "(^)([\\=\\-`:\\.'\"~\\^_\\*\\+#])(\\2{2,}\\s*$)" + }, + { + token : ["text", tokens.directive, tokens.literal], + regex : "(^\\s*\\.\\. )([^: ]+::)(.*$)", + next : "codeblock" + }, + { + token : tokens.directive, + regex : "::$", + next : "codeblock" + }, + { + token : [tokens.entity, tokens.link], + regex : "(^\\.\\. _[^:]+:)(.*$)" + }, + { + token : [tokens.entity, tokens.link], + regex : "(^__ )(https?://.*$)" + }, + { + token : tokens.entity, + regex : "^\\.\\. \\[[^\\]]+\\] " + }, + { + token : tokens.comment, + regex : "^\\.\\. .*$", + next : "comment" + }, + { + token : tokens.list, + regex : "^\\s*[\\*\\+-] " + }, + { + token : tokens.list, + regex : "^\\s*(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\. " + }, + { + token : tokens.list, + regex : "^\\s*\\(?(?:[A-Za-z]|[0-9]+|[ivxlcdmIVXLCDM]+)\\) " + }, + { + token : tokens.table, + regex : "^={2,}(?: +={2,})+$" + }, + { + token : tokens.table, + regex : "^\\+-{2,}(?:\\+-{2,})+\\+$" + }, + { + token : tokens.table, + regex : "^\\+={2,}(?:\\+={2,})+\\+$" + }, + { + token : ["text", tokens.literal], + regex : startStringPrefix + "(``)(?=\\S)", + next : "code" + }, + { + token : ["text", tokens.bold], + regex : startStringPrefix + "(\\*\\*)(?=\\S)", + next : "bold" + }, + { + token : ["text", tokens.italic], + regex : startStringPrefix + "(\\*)(?=\\S)", + next : "italic" + }, + { + token : tokens.entity, + regex : "\\|[\\w\\-]+?\\|" + }, + { + token : tokens.entity, + regex : ":[\\w-:]+:`\\S", + next : "entity" + }, + { + token : ["text", tokens.entity], + regex : startStringPrefix + "(_`)(?=\\S)", + next : "entity" + }, + { + token : tokens.entity, + regex : "_[A-Za-z0-9\\-]+?" + }, + { + token : ["text", tokens.link], + regex : startStringPrefix + "(`)(?=\\S)", + next : "link" + }, + { + token : tokens.link, + regex : "[A-Za-z0-9\\-]+?__?" + }, + { + token : tokens.link, + regex : "\\[[^\\]]+?\\]_" + }, + { + token : tokens.link, + regex : "https?://\\S+" + }, + { + token : tokens.table, + regex : "\\|" + } + ], + "codeblock": [ + { + token : tokens.literal, + regex : "^ +.+$", + next : "codeblock" + }, + { + token : tokens.literal, + regex : '^$', + next: "codeblock" + }, + { + token : "empty", + regex : "", + next : "start" + } + ], + "code": [ + { + token : tokens.literal, + regex : "\\S``" + endStringSuffix, + next : "start" + }, + { + defaultToken: tokens.literal + } + ], + "bold": [ + { + token : tokens.bold, + regex : "\\S\\*\\*" + endStringSuffix, + next : "start" + }, + { + defaultToken: tokens.bold + } + ], + "italic": [ + { + token : tokens.italic, + regex : "\\S\\*" + endStringSuffix, + next : "start" + }, + { + defaultToken: tokens.italic + } + ], + "entity": [ + { + token : tokens.entity, + regex : "\\S`" + endStringSuffix, + next : "start" + }, + { + defaultToken: tokens.entity + } + ], + "link": [ + { + token : tokens.link, + regex : "\\S`__?" + endStringSuffix, + next : "start" + }, + { + defaultToken: tokens.link + } + ], + "comment": [ + { + token : tokens.comment, + regex : "^ +.+$", + next : "comment" + }, + { + token : tokens.comment, + regex : '^$', + next: "comment" + }, + { + token : "empty", + regex : "", + next : "start" + } + ] + }; +}; +oop.inherits(RSTHighlightRules, TextHighlightRules); + +exports.RSTHighlightRules = RSTHighlightRules; +}); + +ace.define("ace/mode/rst",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rst_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RSTHighlightRules = require("./rst_highlight_rules").RSTHighlightRules; + +var Mode = function() { + this.HighlightRules = RSTHighlightRules; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + + this.$id = "ace/mode/rst"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-ruby.js b/htdocs/includes/ace/mode-ruby.js new file mode 100644 index 00000000000..6732c68be44 --- /dev/null +++ b/htdocs/includes/ace/mode-ruby.js @@ -0,0 +1,491 @@ +ace.define("ace/mode/ruby_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var constantOtherSymbol = exports.constantOtherSymbol = { + token : "constant.other.symbol.ruby", // symbol + regex : "[:](?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?" +}; + +var qString = exports.qString = { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" +}; + +var qqString = exports.qqString = { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' +}; + +var tString = exports.tString = { + token : "string", // backtick string + regex : "[`](?:(?:\\\\.)|(?:[^'\\\\]))*?[`]" +}; + +var constantNumericHex = exports.constantNumericHex = { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F](?:[0-9a-fA-F]|_(?=[0-9a-fA-F]))*\\b" +}; + +var constantNumericFloat = exports.constantNumericFloat = { + token : "constant.numeric", // float + regex : "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?\\b" +}; + +var instanceVariable = exports.instanceVariable = { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" +}; + +var RubyHighlightRules = function() { + + var builtinFunctions = ( + "abort|Array|assert|assert_equal|assert_not_equal|assert_same|assert_not_same|" + + "assert_nil|assert_not_nil|assert_match|assert_no_match|assert_in_delta|assert_throws|" + + "assert_raise|assert_nothing_raised|assert_instance_of|assert_kind_of|assert_respond_to|" + + "assert_operator|assert_send|assert_difference|assert_no_difference|assert_recognizes|" + + "assert_generates|assert_response|assert_redirected_to|assert_template|assert_select|" + + "assert_select_email|assert_select_rjs|assert_select_encoded|css_select|at_exit|" + + "attr|attr_writer|attr_reader|attr_accessor|attr_accessible|autoload|binding|block_given?|callcc|" + + "caller|catch|chomp|chomp!|chop|chop!|defined?|delete_via_redirect|eval|exec|exit|" + + "exit!|fail|Float|flunk|follow_redirect!|fork|form_for|form_tag|format|gets|global_variables|gsub|" + + "gsub!|get_via_redirect|host!|https?|https!|include|Integer|lambda|link_to|" + + "link_to_unless_current|link_to_function|link_to_remote|load|local_variables|loop|open|open_session|" + + "p|print|printf|proc|putc|puts|post_via_redirect|put_via_redirect|raise|rand|" + + "raw|readline|readlines|redirect?|request_via_redirect|require|scan|select|" + + "set_trace_func|sleep|split|sprintf|srand|String|stylesheet_link_tag|syscall|system|sub|sub!|test|" + + "throw|trace_var|trap|untrace_var|atan2|cos|exp|frexp|ldexp|log|log10|sin|sqrt|tan|" + + "render|javascript_include_tag|csrf_meta_tag|label_tag|text_field_tag|submit_tag|check_box_tag|" + + "content_tag|radio_button_tag|text_area_tag|password_field_tag|hidden_field_tag|" + + "fields_for|select_tag|options_for_select|options_from_collection_for_select|collection_select|" + + "time_zone_select|select_date|select_time|select_datetime|date_select|time_select|datetime_select|" + + "select_year|select_month|select_day|select_hour|select_minute|select_second|file_field_tag|" + + "file_field|respond_to|skip_before_filter|around_filter|after_filter|verify|" + + "protect_from_forgery|rescue_from|helper_method|redirect_to|before_filter|" + + "send_data|send_file|validates_presence_of|validates_uniqueness_of|validates_length_of|" + + "validates_format_of|validates_acceptance_of|validates_associated|validates_exclusion_of|" + + "validates_inclusion_of|validates_numericality_of|validates_with|validates_each|" + + "authenticate_or_request_with_http_basic|authenticate_or_request_with_http_digest|" + + "filter_parameter_logging|match|get|post|resources|redirect|scope|assert_routing|" + + "translate|localize|extract_locale_from_tld|caches_page|expire_page|caches_action|expire_action|" + + "cache|expire_fragment|expire_cache_for|observe|cache_sweeper|" + + "has_many|has_one|belongs_to|has_and_belongs_to_many" + ); + + var keywords = ( + "alias|and|BEGIN|begin|break|case|class|def|defined|do|else|elsif|END|end|ensure|" + + "__FILE__|finally|for|gem|if|in|__LINE__|module|next|not|or|private|protected|public|" + + "redo|rescue|retry|return|super|then|undef|unless|until|when|while|yield" + ); + + var buildinConstants = ( + "true|TRUE|false|FALSE|nil|NIL|ARGF|ARGV|DATA|ENV|RUBY_PLATFORM|RUBY_RELEASE_DATE|" + + "RUBY_VERSION|STDERR|STDIN|STDOUT|TOPLEVEL_BINDING" + ); + + var builtinVariables = ( + "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" + + "$!|root_url|flash|session|cookies|params|request|response|logger|self" + ); + + var keywordMapper = this.$keywords = this.createKeywordMapper({ + "keyword": keywords, + "constant.language": buildinConstants, + "variable.language": builtinVariables, + "support.function": builtinFunctions, + "invalid.deprecated": "debugger" // TODO is this a remnant from js mode? + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "comment", // multi line comment + regex : "^=begin(?:$|\\s.*$)", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, + + [{ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren.lparen"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.start", + regex : /"/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /"/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : /\\(?:[nsrtvfbae'"\\]|c.|C-.|M-.(?:\\C-.)?|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4})/ + }, { + token : "paren.start", + regex : /#{/, + push : "start" + }, { + token : "string.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : /'/, + push : [{ + token : "constant.language.escape", + regex : /\\['\\]/ + }, { + token : "string.end", + regex : /'/, + next : "pop" + }, { + defaultToken: "string" + }] + }], + + { + token : "text", // namespaces aren't symbols + regex : "::" + }, { + token : "variable.instance", // instance variable + regex : "@{1,2}[a-zA-Z_\\d]+" + }, { + token : "support.class", // class name + regex : "[A-Z][a-zA-Z_\\d]+" + }, + + constantOtherSymbol, + constantNumericHex, + constantNumericFloat, + + { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "punctuation.separator.key-value", + regex : "=>" + }, { + stateName: "heredoc", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[3]); + return [ + {type:"constant", value: tokens[1]}, + {type:"string", value: tokens[2]}, + {type:"support.class", value: tokens[3]}, + {type:"string", value: tokens[4]} + ]; + }, + regex : "(<<-?)(['\"`]?)([\\w]+)(['\"`]?)", + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^ +" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : "string.character", + regex : "\\B\\?." + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "^=end(?:$|\\s.*$)", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.normalizeRules(); +}; + +oop.inherits(RubyHighlightRules, TextHighlightRules); + +exports.RubyHighlightRules = RubyHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/ruby",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/ruby_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RubyHighlightRules = require("./ruby_highlight_rules").RubyHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = RubyHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/); + var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/); + var startingConditional = line.match(/^\s*(if|else|when)\s*/) + if (match || startingClassOrMethod || startingDoBlock || startingConditional) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, session, row) { + var line = session.getLine(row); + if (/}/.test(line)) + return this.$outdent.autoOutdent(session, row); + var indent = this.$getIndent(line); + var prevLine = session.getLine(row - 1); + var prevIndent = this.$getIndent(prevLine); + var tab = session.getTabString(); + if (prevIndent.length <= indent.length) { + if (indent.slice(-tab.length) == tab) + session.remove(new Range(row, indent.length-tab.length, row, indent.length)); + } + }; + + this.$id = "ace/mode/ruby"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-rust.js b/htdocs/includes/ace/mode-rust.js new file mode 100644 index 00000000000..0802f6b420c --- /dev/null +++ b/htdocs/includes/ace/mode-rust.js @@ -0,0 +1,272 @@ +ace.define("ace/mode/rust_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var stringEscape = /\\(?:[nrt0'"\\]|x[\da-fA-F]{2}|u\{[\da-fA-F]{6}\})/.source; +var RustHighlightRules = function() { + + this.$rules = { start: + [ { token: 'variable.other.source.rust', + regex: '\'[a-zA-Z_][a-zA-Z0-9_]*(?![\\\'])' }, + { token: 'string.quoted.single.source.rust', + regex: "'(?:[^'\\\\]|" + stringEscape + ")'" }, + { + stateName: "bracketedComment", + onMatch : function(value, currentState, stack){ + stack.unshift(this.next, value.length - 1, currentState); + return "string.quoted.raw.source.rust"; + }, + regex : /r#*"/, + next : [ + { + onMatch : function(value, currentState, stack) { + var token = "string.quoted.raw.source.rust"; + if (value.length >= stack[1]) { + if (value.length > stack[1]) + token = "invalid"; + stack.shift(); + stack.shift(); + this.next = stack.shift(); + } else { + this.next = ""; + } + return token; + }, + regex : /"#*/, + next : "start" + }, { + defaultToken : "string.quoted.raw.source.rust" + } + ] + }, + { token: 'string.quoted.double.source.rust', + regex: '"', + push: + [ { token: 'string.quoted.double.source.rust', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.source.rust', + regex: stringEscape }, + { defaultToken: 'string.quoted.double.source.rust' } ] }, + { token: [ 'keyword.source.rust', 'text', 'entity.name.function.source.rust' ], + regex: '\\b(fn)(\\s+)([a-zA-Z_][a-zA-Z0-9_]*)' }, + { token: 'support.constant', regex: '\\b[a-zA-Z_][\\w\\d]*::' }, + { token: 'keyword.source.rust', + regex: '\\b(?:abstract|alignof|as|box|break|continue|const|crate|do|else|enum|extern|for|final|if|impl|in|let|loop|macro|match|mod|move|mut|offsetof|override|priv|proc|pub|pure|ref|return|self|sizeof|static|struct|super|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b' }, + { token: 'storage.type.source.rust', + regex: '\\b(?:Self|isize|usize|char|bool|u8|u16|u32|u64|u128|f16|f32|f64|i8|i16|i32|i64|i128|str|option|either|c_float|c_double|c_void|FILE|fpos_t|DIR|dirent|c_char|c_schar|c_uchar|c_short|c_ushort|c_int|c_uint|c_long|c_ulong|size_t|ptrdiff_t|clock_t|time_t|c_longlong|c_ulonglong|intptr_t|uintptr_t|off_t|dev_t|ino_t|pid_t|mode_t|ssize_t)\\b' }, + { token: 'variable.language.source.rust', regex: '\\bself\\b' }, + + { token: 'comment.line.doc.source.rust', + regex: '//!.*$' }, + { token: 'comment.line.double-dash.source.rust', + regex: '//.*$' }, + { token: 'comment.start.block.source.rust', + regex: '/\\*', + stateName: 'comment', + push: + [ { token: 'comment.start.block.source.rust', + regex: '/\\*', + push: 'comment' }, + { token: 'comment.end.block.source.rust', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.source.rust' } ] }, + + { token: 'keyword.operator', + regex: /\$|[-=]>|[-+%^=!&|<>]=?|[*/](?![*/])=?/ }, + { token : "punctuation.operator", regex : /[?:,;.]/ }, + { token : "paren.lparen", regex : /[\[({]/ }, + { token : "paren.rparen", regex : /[\])}]/ }, + { token: 'constant.language.source.rust', + regex: '\\b(?:true|false|Some|None|Ok|Err)\\b' }, + { token: 'support.constant.source.rust', + regex: '\\b(?:EXIT_FAILURE|EXIT_SUCCESS|RAND_MAX|EOF|SEEK_SET|SEEK_CUR|SEEK_END|_IOFBF|_IONBF|_IOLBF|BUFSIZ|FOPEN_MAX|FILENAME_MAX|L_tmpnam|TMP_MAX|O_RDONLY|O_WRONLY|O_RDWR|O_APPEND|O_CREAT|O_EXCL|O_TRUNC|S_IFIFO|S_IFCHR|S_IFBLK|S_IFDIR|S_IFREG|S_IFMT|S_IEXEC|S_IWRITE|S_IREAD|S_IRWXU|S_IXUSR|S_IWUSR|S_IRUSR|F_OK|R_OK|W_OK|X_OK|STDIN_FILENO|STDOUT_FILENO|STDERR_FILENO)\\b' }, + { token: 'meta.preprocessor.source.rust', + regex: '\\b\\w\\(\\w\\)*!|#\\[[\\w=\\(\\)_]+\\]\\b' }, + { token: 'constant.numeric.source.rust', + regex: /\b(?:0x[a-fA-F0-9_]+|0o[0-7_]+|0b[01_]+|[0-9][0-9_]*(?!\.))(?:[iu](?:size|8|16|32|64|128))?\b/ }, + { token: 'constant.numeric.source.rust', + regex: /\b(?:[0-9][0-9_]*)(?:\.[0-9][0-9_]*)?(?:[Ee][+-][0-9][0-9_]*)?(?:f32|f64)?\b/ } ] } + + this.normalizeRules(); +}; + +RustHighlightRules.metaData = { fileTypes: [ 'rs', 'rc' ], + foldingStartMarker: '^.*\\bfn\\s*(\\w+\\s*)?\\([^\\)]*\\)(\\s*\\{[^\\}]*)?\\s*$', + foldingStopMarker: '^\\s*\\}', + name: 'Rust', + scopeName: 'source.rust' } + + +oop.inherits(RustHighlightRules, TextHighlightRules); + +exports.RustHighlightRules = RustHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/rust",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/rust_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var RustHighlightRules = require("./rust_highlight_rules").RustHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = RustHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/", nestable: true}; + this.$quotes = { '"': '"' }; + this.$id = "ace/mode/rust"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-sass.js b/htdocs/includes/ace/mode-sass.js new file mode 100644 index 00000000000..bd1817051cf --- /dev/null +++ b/htdocs/includes/ace/mode-sass.js @@ -0,0 +1,434 @@ +ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScssHighlightRules = function() { + + var properties = lang.arrayToMap( (function () { + + var browserPrefix = ("-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-").split("|"); + + var prefixProperties = ("appearance|background-clip|background-inline-policy|background-origin|" + + "background-size|binding|border-bottom-colors|border-left-colors|" + + "border-right-colors|border-top-colors|border-end|border-end-color|" + + "border-end-style|border-end-width|border-image|border-start|" + + "border-start-color|border-start-style|border-start-width|box-align|" + + "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" + + "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" + + "column-rule-width|column-rule-style|column-rule-color|float-edge|" + + "font-feature-settings|font-language-override|force-broken-image-icon|" + + "image-region|margin-end|margin-start|opacity|outline|outline-color|" + + "outline-offset|outline-radius|outline-radius-bottomleft|" + + "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" + + "outline-style|outline-width|padding-end|padding-start|stack-sizing|" + + "tab-size|text-blink|text-decoration-color|text-decoration-line|" + + "text-decoration-style|transform|transform-origin|transition|" + + "transition-delay|transition-duration|transition-property|" + + "transition-timing-function|user-focus|user-input|user-modify|user-select|" + + "window-shadow|border-radius").split("|"); + + var properties = ("azimuth|background-attachment|background-color|background-image|" + + "background-position|background-repeat|background|border-bottom-color|" + + "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" + + "border-color|border-left-color|border-left-style|border-left-width|" + + "border-left|border-right-color|border-right-style|border-right-width|" + + "border-right|border-spacing|border-style|border-top-color|" + + "border-top-style|border-top-width|border-top|border-width|border|bottom|" + + "box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|" + + "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" + + "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" + + "font-stretch|font-style|font-variant|font-weight|font|height|left|" + + "letter-spacing|line-height|list-style-image|list-style-position|" + + "list-style-type|list-style|margin-bottom|margin-left|margin-right|" + + "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" + + "min-width|opacity|orphans|outline-color|" + + "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" + + "padding-left|padding-right|padding-top|padding|page-break-after|" + + "page-break-before|page-break-inside|page|pause-after|pause-before|" + + "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" + + "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" + + "stress|table-layout|text-align|text-decoration|text-indent|" + + "text-shadow|text-transform|top|unicode-bidi|vertical-align|" + + "visibility|voice-family|volume|white-space|widows|width|word-spacing|" + + "z-index").split("|"); + var ret = []; + for (var i=0, ln=browserPrefix.length; i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }, { + caseInsensitive: true + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ] + }; +}; + +oop.inherits(ScssHighlightRules, TextHighlightRules); + +exports.ScssHighlightRules = ScssHighlightRules; + +}); + +ace.define("ace/mode/sass_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/scss_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var ScssHighlightRules = require("./scss_highlight_rules").ScssHighlightRules; + +var SassHighlightRules = function() { + ScssHighlightRules.call(this); + var start = this.$rules.start; + if (start[1].token == "comment") { + start.splice(1, 1, { + onMatch: function(value, currentState, stack) { + stack.unshift(this.next, -1, value.length - 2, currentState); + return "comment"; + }, + regex: /^\s*\/\*/, + next: "comment" + }, { + token: "error.invalid", + regex: "/\\*|[{;}]" + }, { + token: "support.type", + regex: /^\s*:[\w\-]+\s/ + }); + + this.$rules.comment = [ + {regex: /^\s*/, onMatch: function(value, currentState, stack) { + if (stack[1] === -1) + stack[1] = Math.max(stack[2], value.length - 1); + if (value.length <= stack[1]) {stack.shift();stack.shift();stack.shift(); + this.next = stack.shift(); + return "text"; + } else { + this.next = ""; + return "comment"; + } + }, next: "start"}, + {defaultToken: "comment"} + ] + } +}; + +oop.inherits(SassHighlightRules, ScssHighlightRules); + +exports.SassHighlightRules = SassHighlightRules; + +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/sass",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sass_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var SassHighlightRules = require("./sass_highlight_rules").SassHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = SassHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.$id = "ace/mode/sass"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-scad.js b/htdocs/includes/ace/mode-scad.js new file mode 100644 index 00000000000..c9a767b9ceb --- /dev/null +++ b/htdocs/includes/ace/mode-scad.js @@ -0,0 +1,407 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/scad_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var scadHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": "module|if|else|for", + "constant.language": "NULL" + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : '["].*\\\\$', + next : "qqstring" + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "string", // multi line string start + regex : "['].*\\\\$", + next : "qstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant", // + regex : "<[a-zA-Z0-9.]+>" + }, { + token : "keyword", // pre-compiler directivs + regex : "(?:use|include)" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|==|=|!=|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(scadHighlightRules, TextHighlightRules); + +exports.scadHighlightRules = scadHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/scad",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scad_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var scadHighlightRules = require("./scad_highlight_rules").scadHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = scadHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/scad"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-scala.js b/htdocs/includes/ace/mode-scala.js new file mode 100644 index 00000000000..94c645c1013 --- /dev/null +++ b/htdocs/includes/ace/mode-scala.js @@ -0,0 +1,975 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/scala_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScalaHighlightRules = function() { + + var keywords = ( + "case|default|do|else|for|if|match|while|throw|return|try|trye|catch|finally|yield|" + + "abstract|class|def|extends|final|forSome|implicit|implicits|import|lazy|new|object|null|" + + "override|package|private|protected|sealed|super|this|trait|type|val|var|with|" + + "assert|assume|require|print|println|printf|readLine|readBoolean|readByte|readShort|" + // package scala + "readChar|readInt|readLong|readFloat|readDouble" // package scala + ); + + var buildinConstants = ("true|false"); + + var langClasses = ( + "AbstractMethodError|AssertionError|ClassCircularityError|"+ + "ClassFormatError|Deprecated|EnumConstantNotPresentException|"+ + "ExceptionInInitializerError|IllegalAccessError|"+ + "IllegalThreadStateException|InstantiationError|InternalError|"+ + + "NegativeArraySizeException|NoSuchFieldError|Override|Process|"+ + "ProcessBuilder|SecurityManager|StringIndexOutOfBoundsException|"+ + "SuppressWarnings|TypeNotPresentException|UnknownError|"+ + "UnsatisfiedLinkError|UnsupportedClassVersionError|VerifyError|"+ + "InstantiationException|IndexOutOfBoundsException|"+ + "ArrayIndexOutOfBoundsException|CloneNotSupportedException|"+ + "NoSuchFieldException|IllegalArgumentException|NumberFormatException|"+ + "SecurityException|Void|InheritableThreadLocal|IllegalStateException|"+ + "InterruptedException|NoSuchMethodException|IllegalAccessException|"+ + "UnsupportedOperationException|Enum|StrictMath|Package|Compiler|"+ + "Readable|Runtime|StringBuilder|Math|IncompatibleClassChangeError|"+ + "NoSuchMethodError|ThreadLocal|RuntimePermission|ArithmeticException|"+ + "NullPointerException|Long|Integer|Short|Byte|Double|Number|Float|"+ + "Character|Boolean|StackTraceElement|Appendable|StringBuffer|"+ + "Iterable|ThreadGroup|Runnable|Thread|IllegalMonitorStateException|"+ + "StackOverflowError|OutOfMemoryError|VirtualMachineError|"+ + "ArrayStoreException|ClassCastException|LinkageError|"+ + "NoClassDefFoundError|ClassNotFoundException|RuntimeException|"+ + "Exception|ThreadDeath|Error|Throwable|System|ClassLoader|"+ + "Cloneable|Class|CharSequence|Comparable|String|Object|" + + "Unit|Any|AnyVal|AnyRef|Null|ScalaObject|Singleton|Seq|Iterable|List|" + + "Option|Array|Char|Byte|Int|Long|Nothing|" + + + "App|Application|BufferedIterator|BigDecimal|BigInt|Console|Either|" + + "Enumeration|Equiv|Fractional|Function|IndexedSeq|Integral|Iterator|" + + "Map|Numeric|Nil|NotNull|Ordered|Ordering|PartialFunction|PartialOrdering|" + + "Product|Proxy|Range|Responder|Seq|Serializable|Set|Specializable|Stream|" + + "StringContext|Symbol|Traversable|TraversableOnce|Tuple|Vector|Pair|Triple" + + + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "support.function": langClasses, + "constant.language": buildinConstants + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", + regex : '"""', + next : "tstring" + }, { + token : "string", + regex : '"(?=.)', // " strings can't span multiple lines + next : "string" + }, { + token : "symbol.constant", // single line + regex : "'[\\w\\d_]+" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\b(?:in|instanceof|new|delete|typeof|void)" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "string" : [ + { + token : "escape", + regex : '\\\\"' + }, { + token : "string", + regex : '"', + next : "start" + }, { + token : "string.invalid", + regex : '[^"\\\\]*$', + next : "start" + }, { + token : "string", + regex : '[^"\\\\]+' + } + ], + "tstring" : [ + { + token : "string", + regex : '"{3,5}', + next : "start" + }, { + defaultToken : "string" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(ScalaHighlightRules, TextHighlightRules); + +exports.ScalaHighlightRules = ScalaHighlightRules; +}); + +ace.define("ace/mode/scala",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/scala_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var ScalaHighlightRules = require("./scala_highlight_rules").ScalaHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = ScalaHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/scala"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-scheme.js b/htdocs/includes/ace/mode-scheme.js new file mode 100644 index 00000000000..2e6b7fff5b0 --- /dev/null +++ b/htdocs/includes/ace/mode-scheme.js @@ -0,0 +1,225 @@ +ace.define("ace/mode/scheme_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SchemeHighlightRules = function() { + var keywordControl = "case|do|let|loop|if|else|when"; + var keywordOperator = "eq?|eqv?|equal?|and|or|not|null?"; + var constantLanguage = "#t|#f"; + var supportFunctions = "cons|car|cdr|cond|lambda|lambda*|syntax-rules|format|set!|quote|eval|append|list|list?|member?|load"; + + var keywordMapper = this.createKeywordMapper({ + "keyword.control": keywordControl, + "keyword.operator": keywordOperator, + "constant.language": constantLanguage, + "support.function": supportFunctions + }, "identifier", true); + + this.$rules = + { + "start": [ + { + token : "comment", + regex : ";.*$" + }, + { + "token": ["storage.type.function-type.scheme", "text", "entity.name.function.scheme"], + "regex": "(?:\\b(?:(define|define-syntax|define-macro))\\b)(\\s+)((?:\\w|\\-|\\!|\\?)*)" + }, + { + "token": "punctuation.definition.constant.character.scheme", + "regex": "#:\\S+" + }, + { + "token": ["punctuation.definition.variable.scheme", "variable.other.global.scheme", "punctuation.definition.variable.scheme"], + "regex": "(\\*)(\\S*)(\\*)" + }, + { + "token" : "constant.numeric", // hex + "regex" : "#[xXoObB][0-9a-fA-F]+" + }, + { + "token" : "constant.numeric", // float + "regex" : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?" + }, + { + "token" : keywordMapper, + "regex" : "[a-zA-Z_#][a-zA-Z0-9_\\-\\?\\!\\*]*" + }, + { + "token" : "string", + "regex" : '"(?=.)', + "next" : "qqstring" + } + ], + "qqstring": [ + { + "token": "constant.character.escape.scheme", + "regex": "\\\\." + }, + { + "token" : "string", + "regex" : '[^"\\\\]+', + "merge" : true + }, { + "token" : "string", + "regex" : "\\\\$", + "next" : "qqstring", + "merge" : true + }, { + "token" : "string", + "regex" : '"|$', + "next" : "start", + "merge" : true + } + ] +} + +}; + +oop.inherits(SchemeHighlightRules, TextHighlightRules); + +exports.SchemeHighlightRules = SchemeHighlightRules; +}); + +ace.define("ace/mode/matching_parens_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingParensOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\)/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\))/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + var match = line.match(/^(\s+)/); + if (match) { + return match[1]; + } + + return ""; + }; + +}).call(MatchingParensOutdent.prototype); + +exports.MatchingParensOutdent = MatchingParensOutdent; +}); + +ace.define("ace/mode/scheme",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scheme_highlight_rules","ace/mode/matching_parens_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var SchemeHighlightRules = require("./scheme_highlight_rules").SchemeHighlightRules; +var MatchingParensOutdent = require("./matching_parens_outdent").MatchingParensOutdent; + +var Mode = function() { + this.HighlightRules = SchemeHighlightRules; + this.$outdent = new MatchingParensOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ";"; + this.minorIndentFunctions = ["define", "lambda", "define-macro", "define-syntax", "syntax-rules", "define-record-type", "define-structure"]; + + this.$toIndent = function(str) { + return str.split('').map(function(ch) { + if (/\s/.exec(ch)) { + return ch; + } else { + return ' '; + } + }).join(''); + }; + + this.$calculateIndent = function(line, tab) { + var baseIndent = this.$getIndent(line); + var delta = 0; + var isParen, ch; + for (var i = line.length - 1; i >= 0; i--) { + ch = line[i]; + if (ch === '(') { + delta--; + isParen = true; + } else if (ch === '(' || ch === '[' || ch === '{') { + delta--; + isParen = false; + } else if (ch === ')' || ch === ']' || ch === '}') { + delta++; + } + if (delta < 0) { + break; + } + } + if (delta < 0 && isParen) { + i += 1; + var iBefore = i; + var fn = ''; + while (true) { + ch = line[i]; + if (ch === ' ' || ch === '\t') { + if(this.minorIndentFunctions.indexOf(fn) !== -1) { + return this.$toIndent(line.substring(0, iBefore - 1) + tab); + } else { + return this.$toIndent(line.substring(0, i + 1)); + } + } else if (ch === undefined) { + return this.$toIndent(line.substring(0, iBefore - 1) + tab); + } + fn += line[i]; + i++; + } + } else if(delta < 0 && !isParen) { + return this.$toIndent(line.substring(0, i+1)); + } else if(delta > 0) { + baseIndent = baseIndent.substring(0, baseIndent.length - tab.length); + return baseIndent; + } else { + return baseIndent; + } + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$calculateIndent(line, tab); + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/scheme"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-scss.js b/htdocs/includes/ace/mode-scss.js new file mode 100644 index 00000000000..4785dc3672c --- /dev/null +++ b/htdocs/includes/ace/mode-scss.js @@ -0,0 +1,586 @@ +ace.define("ace/mode/scss_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ScssHighlightRules = function() { + + var properties = lang.arrayToMap( (function () { + + var browserPrefix = ("-webkit-|-moz-|-o-|-ms-|-svg-|-pie-|-khtml-").split("|"); + + var prefixProperties = ("appearance|background-clip|background-inline-policy|background-origin|" + + "background-size|binding|border-bottom-colors|border-left-colors|" + + "border-right-colors|border-top-colors|border-end|border-end-color|" + + "border-end-style|border-end-width|border-image|border-start|" + + "border-start-color|border-start-style|border-start-width|box-align|" + + "box-direction|box-flex|box-flexgroup|box-ordinal-group|box-orient|" + + "box-pack|box-sizing|column-count|column-gap|column-width|column-rule|" + + "column-rule-width|column-rule-style|column-rule-color|float-edge|" + + "font-feature-settings|font-language-override|force-broken-image-icon|" + + "image-region|margin-end|margin-start|opacity|outline|outline-color|" + + "outline-offset|outline-radius|outline-radius-bottomleft|" + + "outline-radius-bottomright|outline-radius-topleft|outline-radius-topright|" + + "outline-style|outline-width|padding-end|padding-start|stack-sizing|" + + "tab-size|text-blink|text-decoration-color|text-decoration-line|" + + "text-decoration-style|transform|transform-origin|transition|" + + "transition-delay|transition-duration|transition-property|" + + "transition-timing-function|user-focus|user-input|user-modify|user-select|" + + "window-shadow|border-radius").split("|"); + + var properties = ("azimuth|background-attachment|background-color|background-image|" + + "background-position|background-repeat|background|border-bottom-color|" + + "border-bottom-style|border-bottom-width|border-bottom|border-collapse|" + + "border-color|border-left-color|border-left-style|border-left-width|" + + "border-left|border-right-color|border-right-style|border-right-width|" + + "border-right|border-spacing|border-style|border-top-color|" + + "border-top-style|border-top-width|border-top|border-width|border|bottom|" + + "box-shadow|box-sizing|caption-side|clear|clip|color|content|counter-increment|" + + "counter-reset|cue-after|cue-before|cue|cursor|direction|display|" + + "elevation|empty-cells|float|font-family|font-size-adjust|font-size|" + + "font-stretch|font-style|font-variant|font-weight|font|height|left|" + + "letter-spacing|line-height|list-style-image|list-style-position|" + + "list-style-type|list-style|margin-bottom|margin-left|margin-right|" + + "margin-top|marker-offset|margin|marks|max-height|max-width|min-height|" + + "min-width|opacity|orphans|outline-color|" + + "outline-style|outline-width|outline|overflow|overflow-x|overflow-y|padding-bottom|" + + "padding-left|padding-right|padding-top|padding|page-break-after|" + + "page-break-before|page-break-inside|page|pause-after|pause-before|" + + "pause|pitch-range|pitch|play-during|position|quotes|richness|right|" + + "size|speak-header|speak-numeral|speak-punctuation|speech-rate|speak|" + + "stress|table-layout|text-align|text-decoration|text-indent|" + + "text-shadow|text-transform|top|unicode-bidi|vertical-align|" + + "visibility|voice-family|volume|white-space|widows|width|word-spacing|" + + "z-index").split("|"); + var ret = []; + for (var i=0, ln=browserPrefix.length; i|<=|>=|==|!=|-|%|#|\\+|\\$|\\+|\\*" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + }, { + caseInsensitive: true + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '(?:(?:\\\\.)|(?:[^"\\\\]))*?"', + next : "start" + }, { + token : "string", + regex : '.+' + } + ], + "qstring" : [ + { + token : "string", + regex : "(?:(?:\\\\.)|(?:[^'\\\\]))*?'", + next : "start" + }, { + token : "string", + regex : '.+' + } + ] + }; +}; + +oop.inherits(ScssHighlightRules, TextHighlightRules); + +exports.ScssHighlightRules = ScssHighlightRules; + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/scss",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/scss_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ScssHighlightRules = require("./scss_highlight_rules").ScssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = ScssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/scss"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-sh.js b/htdocs/includes/ace/mode-sh.js new file mode 100644 index 00000000000..bcded08909e --- /dev/null +++ b/htdocs/includes/ace/mode-sh.js @@ -0,0 +1,441 @@ +ace.define("ace/mode/sh_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var reservedKeywords = exports.reservedKeywords = ( + '!|{|}|case|do|done|elif|else|'+ + 'esac|fi|for|if|in|then|until|while|'+ + '&|;|export|local|read|typeset|unset|'+ + 'elif|select|set|function|declare|readonly' + ); + +var languageConstructs = exports.languageConstructs = ( + '[|]|alias|bg|bind|break|builtin|'+ + 'cd|command|compgen|complete|continue|'+ + 'dirs|disown|echo|enable|eval|exec|'+ + 'exit|fc|fg|getopts|hash|help|history|'+ + 'jobs|kill|let|logout|popd|printf|pushd|'+ + 'pwd|return|set|shift|shopt|source|'+ + 'suspend|test|times|trap|type|ulimit|'+ + 'umask|unalias|wait' +); + +var ShHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "keyword": reservedKeywords, + "support.function.builtin": languageConstructs, + "invalid.deprecated": "debugger" + }, "identifier"); + + var integer = "(?:(?:[1-9]\\d*)|(?:0))"; + + var fraction = "(?:\\.\\d+)"; + var intPart = "(?:\\d+)"; + var pointFloat = "(?:(?:" + intPart + "?" + fraction + ")|(?:" + intPart + "\\.))"; + var exponentFloat = "(?:(?:" + pointFloat + "|" + intPart + ")" + ")"; + var floatNumber = "(?:" + exponentFloat + "|" + pointFloat + ")"; + var fileDescriptor = "(?:&" + intPart + ")"; + + var variableName = "[a-zA-Z_][a-zA-Z0-9_]*"; + var variable = "(?:" + variableName + "=)"; + + var builtinVariable = "(?:\\$(?:SHLVL|\\$|\\!|\\?))"; + + var func = "(?:" + variableName + "\\s*\\(\\))"; + + this.$rules = { + "start" : [{ + token : "constant", + regex : /\\./ + }, { + token : ["text", "comment"], + regex : /(^|\s)(#.*)$/ + }, { + token : "string.start", + regex : '"', + push : [{ + token : "constant.language.escape", + regex : /\\(?:[$`"\\]|$)/ + }, { + include : "variables" + }, { + token : "keyword.operator", + regex : /`/ // TODO highlight ` + }, { + token : "string.end", + regex : '"', + next: "pop" + }, { + defaultToken: "string" + }] + }, { + token : "string", + regex : "\\$'", + push : [{ + token : "constant.language.escape", + regex : /\\(?:[abeEfnrtv\\'"]|x[a-fA-F\d]{1,2}|u[a-fA-F\d]{4}([a-fA-F\d]{4})?|c.|\d{1,3})/ + }, { + token : "string", + regex : "'", + next: "pop" + }, { + defaultToken: "string" + }] + }, { + regex : "<<<", + token : "keyword.operator" + }, { + stateName: "heredoc", + regex : "(<<-?)(\\s*)(['\"`]?)([\\w\\-]+)(['\"`]?)", + onMatch : function(value, currentState, stack) { + var next = value[2] == '-' ? "indentedHeredoc" : "heredoc"; + var tokens = value.split(this.splitRegex); + stack.push(next, tokens[4]); + return [ + {type:"constant", value: tokens[1]}, + {type:"text", value: tokens[2]}, + {type:"string", value: tokens[3]}, + {type:"support.class", value: tokens[4]}, + {type:"string", value: tokens[5]} + ]; + }, + rules: { + heredoc: [{ + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }], + indentedHeredoc: [{ + token: "string", + regex: "^\t+" + }, { + onMatch: function(value, currentState, stack) { + if (value === stack[1]) { + stack.shift(); + stack.shift(); + this.next = stack[0] || "start"; + return "support.class"; + } + this.next = ""; + return "string"; + }, + regex: ".*$", + next: "start" + }] + } + }, { + regex : "$", + token : "empty", + next : function(currentState, stack) { + if (stack[0] === "heredoc" || stack[0] === "indentedHeredoc") + return stack[0]; + return currentState; + } + }, { + token : ["keyword", "text", "text", "text", "variable"], + regex : /(declare|local|readonly)(\s+)(?:(-[fixar]+)(\s+))?([a-zA-Z_][a-zA-Z0-9_]*\b)/ + }, { + token : "variable.language", + regex : builtinVariable + }, { + token : "variable", + regex : variable + }, { + include : "variables" + }, { + token : "support.function", + regex : func + }, { + token : "support.function", + regex : fileDescriptor + }, { + token : "string", // ' string + start : "'", end : "'" + }, { + token : "constant.numeric", // float + regex : floatNumber + }, { + token : "constant.numeric", // integer + regex : integer + "\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_][a-zA-Z0-9_]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\*|\\*\\*|\\/|\\/\\/|~|<|>|<=|=>|=|!=|[%&|`]" + }, { + token : "punctuation.operator", + regex : ";" + }, { + token : "paren.lparen", + regex : "[\\[\\(\\{]" + }, { + token : "paren.rparen", + regex : "[\\]]" + }, { + token : "paren.rparen", + regex : "[\\)\\}]", + next : "pop" + }], + variables: [{ + token : "variable", + regex : /(\$)(\w+)/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\()/, + push : "start" + }, { + token : ["variable", "paren.lparen", "keyword.operator", "variable", "keyword.operator"], + regex : /(\$)(\{)([#!]?)(\w+|[*@#?\-$!0_])(:[?+\-=]?|##?|%%?|,,?\/|\^\^?)?/, + push : "start" + }, { + token : "variable", + regex : /\$[*@#?\-$!0_]/ + }, { + token : ["variable", "paren.lparen"], + regex : /(\$)(\{)/, + push : "start" + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(ShHighlightRules, TextHighlightRules); + +exports.ShHighlightRules = ShHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/sh",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sh_highlight_rules","ace/range","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var ShHighlightRules = require("./sh_highlight_rules").ShHighlightRules; +var Range = require("../range").Range; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; + +var Mode = function() { + this.HighlightRules = ShHighlightRules; + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = new CstyleBehaviour(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[:]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + var outdents = { + "pass": 1, + "return": 1, + "raise": 1, + "break": 1, + "continue": 1 + }; + + this.checkOutdent = function(state, line, input) { + if (input !== "\r\n" && input !== "\r" && input !== "\n") + return false; + + var tokens = this.getTokenizer().getLineTokens(line.trim(), state).tokens; + + if (!tokens) + return false; + do { + var last = tokens.pop(); + } while (last && (last.type == "comment" || (last.type == "text" && last.value.match(/^\s+$/)))); + + if (!last) + return false; + + return (last.type == "keyword" && outdents[last.value]); + }; + + this.autoOutdent = function(state, doc, row) { + + row += 1; + var indent = this.$getIndent(doc.getLine(row)); + var tab = doc.getTabString(); + if (indent.slice(-tab.length) == tab) + doc.remove(new Range(row, indent.length-tab.length, row, indent.length)); + }; + + this.$id = "ace/mode/sh"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-sjs.js b/htdocs/includes/ace/mode-sjs.js new file mode 100644 index 00000000000..6bcd0bce684 --- /dev/null +++ b/htdocs/includes/ace/mode-sjs.js @@ -0,0 +1,1006 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/sjs_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SJSHighlightRules = function() { + var parent = new JavaScriptHighlightRules({noES6: true}); + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-6][0-7]?|" + // oct + "37[0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + var contextAware = function(f) { + f.isContextAware = true; + return f; + }; + + var ctxBegin = function(opts) { + return { + token: opts.token, + regex: opts.regex, + next: contextAware(function(currentState, stack) { + if (stack.length === 0) + stack.unshift(currentState); + stack.unshift(opts.next); + return opts.next; + }) + }; + }; + + var ctxEnd = function(opts) { + return { + token: opts.token, + regex: opts.regex, + next: contextAware(function(currentState, stack) { + stack.shift(); + return stack[0] || "start"; + }) + }; + }; + + this.$rules = parent.$rules; + this.$rules.no_regex = [ + { + token: "keyword", + regex: "(waitfor|or|and|collapse|spawn|retract)\\b" + }, + { + token: "keyword.operator", + regex: "(->|=>|\\.\\.)" + }, + { + token: "variable.language", + regex: "(hold|default)\\b" + }, + ctxBegin({ + token: "string", + regex: "`", + next: "bstring" + }), + ctxBegin({ + token: "string", + regex: '"', + next: "qqstring" + }), + ctxBegin({ + token: "string", + regex: '"', + next: "qqstring" + }), + { + token: ["paren.lparen", "text", "paren.rparen"], + regex: "(\\{)(\\s*)(\\|)", + next: "block_arguments" + } + + ].concat(this.$rules.no_regex); + + this.$rules.block_arguments = [ + { + token: "paren.rparen", + regex: "\\|", + next: "no_regex" + } + ].concat(this.$rules.function_arguments); + + this.$rules.bstring = [ + { + token : "constant.language.escape", + regex : escapedRe + }, + { + token : "string", + regex : "\\\\$", + next: "bstring" + }, + ctxBegin({ + token : "paren.lparen", + regex : "\\$\\{", + next: "string_interp" + }), + ctxBegin({ + token : "paren.lparen", + regex : "\\$", + next: "bstring_interp_single" + }), + ctxEnd({ + token : "string", + regex : "`" + }), + { + defaultToken: "string" + } + ]; + + this.$rules.qqstring = [ + { + token : "constant.language.escape", + regex : escapedRe + }, + { + token : "string", + regex : "\\\\$", + next: "qqstring" + }, + ctxBegin({ + token : "paren.lparen", + regex : "#\\{", + next: "string_interp" + }), + ctxEnd({ + token : "string", + regex : '"' + }), + { + defaultToken: "string" + } + ]; + var embeddableRules = []; + for (var i=0; i < this.$rules.no_regex.length; i++) { + var rule = this.$rules.no_regex[i]; + var token = String(rule.token); + if (token.indexOf('paren') == -1 && (!rule.next || rule.next.isContextAware)) { + embeddableRules.push(rule); + } + } + + this.$rules.string_interp = [ + ctxEnd({ + token: "paren.rparen", + regex: "\\}" + }), + ctxBegin({ + token: "paren.lparen", + regex: '{', + next: "string_interp" + }) + ].concat(embeddableRules); + this.$rules.bstring_interp_single = [ + { + token: ["identifier", "paren.lparen"], + regex: '(\\w+)(\\()', + next: 'bstring_interp_single_call' + }, + ctxEnd({ + token : "identifier", + regex : "\\w*" + }) + ]; + this.$rules.bstring_interp_single_call = [ + ctxBegin({ + token: "paren.lparen", + regex: "\\(", + next: "bstring_interp_single_call" + }), + ctxEnd({ + token: "paren.rparen", + regex: "\\)" + }) + ].concat(embeddableRules); +} +oop.inherits(SJSHighlightRules, TextHighlightRules); + +exports.SJSHighlightRules = SJSHighlightRules; +}); + +ace.define("ace/mode/sjs",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/sjs_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; +var oop = require("../lib/oop"); +var JSMode = require("./javascript").Mode; +var SJSHighlightRules = require("./sjs_highlight_rules").SJSHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = SJSHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, JSMode); +(function() { + this.createWorker = function(session) { + return null; + } + this.$id = "ace/mode/sjs"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-smarty.js b/htdocs/includes/ace/mode-smarty.js new file mode 100644 index 00000000000..448ced333aa --- /dev/null +++ b/htdocs/includes/ace/mode-smarty.js @@ -0,0 +1,2606 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/smarty_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var SmartyHighlightRules = function() { + HtmlHighlightRules.call(this); + var smartyRules = { start: + [ { include: '#comments' }, + { include: '#blocks' } ], + '#blocks': + [ { token: 'punctuation.section.embedded.begin.smarty', + regex: '\\{%?', + push: + [ { token: 'punctuation.section.embedded.end.smarty', + regex: '%?\\}', + next: 'pop' }, + { include: '#strings' }, + { include: '#variables' }, + { include: '#lang' }, + { defaultToken: 'source.smarty' } ] } ], + '#comments': + [ { token: + [ 'punctuation.definition.comment.smarty', + 'comment.block.smarty' ], + regex: '(\\{%?)(\\*)', + push: + [ { token: 'comment.block.smarty', regex: '\\*%?\\}', next: 'pop' }, + { defaultToken: 'comment.block.smarty' } ] } ], + '#lang': + [ { token: 'keyword.operator.smarty', + regex: '(?:!=|!|<=|>=|<|>|===|==|%|&&|\\|\\|)|\\b(?:and|or|eq|neq|ne|gte|gt|ge|lte|lt|le|not|mod)\\b' }, + { token: 'constant.language.smarty', + regex: '\\b(?:TRUE|FALSE|true|false)\\b' }, + { token: 'keyword.control.smarty', + regex: '\\b(?:if|else|elseif|foreach|foreachelse|section|switch|case|break|default)\\b' }, + { token: 'variable.parameter.smarty', regex: '\\b[a-zA-Z]+=' }, + { token: 'support.function.built-in.smarty', + regex: '\\b(?:capture|config_load|counter|cycle|debug|eval|fetch|include_php|include|insert|literal|math|strip|rdelim|ldelim|assign|constant|block|html_[a-z_]*)\\b' }, + { token: 'support.function.variable-modifier.smarty', + regex: '\\|(?:capitalize|cat|count_characters|count_paragraphs|count_sentences|count_words|date_format|default|escape|indent|lower|nl2br|regex_replace|replace|spacify|string_format|strip_tags|strip|truncate|upper|wordwrap)' } ], + '#strings': + [ { token: 'punctuation.definition.string.begin.smarty', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.smarty', + regex: '\'', + next: 'pop' }, + { token: 'constant.character.escape.smarty', regex: '\\\\.' }, + { defaultToken: 'string.quoted.single.smarty' } ] }, + { token: 'punctuation.definition.string.begin.smarty', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.smarty', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.smarty', regex: '\\\\.' }, + { defaultToken: 'string.quoted.double.smarty' } ] } ], + '#variables': + [ { token: + [ 'punctuation.definition.variable.smarty', + 'variable.other.global.smarty' ], + regex: '\\b(\\$)(Smarty\\.)' }, + { token: + [ 'punctuation.definition.variable.smarty', + 'variable.other.smarty' ], + regex: '(\\$)([a-zA-Z_][a-zA-Z0-9_]*)\\b' }, + { token: [ 'keyword.operator.smarty', 'variable.other.property.smarty' ], + regex: '(->)([a-zA-Z_][a-zA-Z0-9_]*)\\b' }, + { token: + [ 'keyword.operator.smarty', + 'meta.function-call.object.smarty', + 'punctuation.definition.variable.smarty', + 'variable.other.smarty', + 'punctuation.definition.variable.smarty' ], + regex: '(->)([a-zA-Z_][a-zA-Z0-9_]*)(\\()(.*?)(\\))' } ] } + + var smartyStart = smartyRules.start; + + for (var rule in this.$rules) { + this.$rules[rule].unshift.apply(this.$rules[rule], smartyStart); + } + + Object.keys(smartyRules).forEach(function(x) { + if (!this.$rules[x]) + this.$rules[x] = smartyRules[x]; + }, this); + + this.normalizeRules(); +}; + +SmartyHighlightRules.metaData = { fileTypes: [ 'tpl' ], + foldingStartMarker: '\\{%?', + foldingStopMarker: '%?\\}', + name: 'Smarty', + scopeName: 'text.html.smarty' } + + +oop.inherits(SmartyHighlightRules, HtmlHighlightRules); + +exports.SmartyHighlightRules = SmartyHighlightRules; +}); + +ace.define("ace/mode/smarty",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/smarty_highlight_rules"], function(require, exports, module) { + "use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var SmartyHighlightRules = require("./smarty_highlight_rules").SmartyHighlightRules; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = SmartyHighlightRules; +}; + +oop.inherits(Mode, HtmlMode); + +(function() { + + this.$id = "ace/mode/smarty"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-snippets.js b/htdocs/includes/ace/mode-snippets.js new file mode 100644 index 00000000000..a528501fc4b --- /dev/null +++ b/htdocs/includes/ace/mode-snippets.js @@ -0,0 +1,199 @@ +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/snippets",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SnippetHighlightRules = function() { + + var builtins = "SELECTION|CURRENT_WORD|SELECTED_TEXT|CURRENT_LINE|LINE_INDEX|" + + "LINE_NUMBER|SOFT_TABS|TAB_SIZE|FILENAME|FILEPATH|FULLNAME"; + + this.$rules = { + "start" : [ + {token:"constant.language.escape", regex: /\\[\$}`\\]/}, + {token:"keyword", regex: "\\$(?:TM_)?(?:" + builtins + ")\\b"}, + {token:"variable", regex: "\\$\\w+"}, + {onMatch: function(value, state, stack) { + if (stack[1]) + stack[1]++; + else + stack.unshift(state, 1); + return this.tokenName; + }, tokenName: "markup.list", regex: "\\${", next: "varDecl"}, + {onMatch: function(value, state, stack) { + if (!stack[1]) + return "text"; + stack[1]--; + if (!stack[1]) + stack.splice(0,2); + return this.tokenName; + }, tokenName: "markup.list", regex: "}"}, + {token: "doc.comment", regex:/^\${2}-{5,}$/} + ], + "varDecl" : [ + {regex: /\d+\b/, token: "constant.numeric"}, + {token:"keyword", regex: "(?:TM_)?(?:" + builtins + ")\\b"}, + {token:"variable", regex: "\\w+"}, + {regex: /:/, token: "punctuation.operator", next: "start"}, + {regex: /\//, token: "string.regex", next: "regexp"}, + {regex: "", next: "start"} + ], + "regexp" : [ + {regex: /\\./, token: "escape"}, + {regex: /\[/, token: "regex.start", next: "charClass"}, + {regex: "/", token: "string.regex", next: "format"}, + {"token": "string.regex", regex:"."} + ], + charClass : [ + {regex: "\\.", token: "escape"}, + {regex: "\\]", token: "regex.end", next: "regexp"}, + {"token": "string.regex", regex:"."} + ], + "format" : [ + {regex: /\\[ulULE]/, token: "keyword"}, + {regex: /\$\d+/, token: "variable"}, + {regex: "/[gim]*:?", token: "string.regex", next: "start"}, + {"token": "string", regex:"."} + ] + }; +}; +oop.inherits(SnippetHighlightRules, TextHighlightRules); + +exports.SnippetHighlightRules = SnippetHighlightRules; + +var SnippetGroupHighlightRules = function() { + this.$rules = { + "start" : [ + {token: "text", regex: "^\\t", next: "sn-start"}, + {token:"invalid", regex: /^ \s*/}, + {token:"comment", regex: /^#.*/}, + {token:"constant.language.escape", regex: "^regex ", next: "regex"}, + {token:"constant.language.escape", regex: "^(trigger|endTrigger|name|snippet|guard|endGuard|tabTrigger|key)\\b"} + ], + "regex" : [ + {token:"text", regex: "\\."}, + {token:"keyword", regex: "/"}, + {token:"empty", regex: "$", next: "start"} + ] + }; + this.embedRules(SnippetHighlightRules, "sn-", [ + {token: "text", regex: "^\\t", next: "sn-start"}, + {onMatch: function(value, state, stack) { + stack.splice(stack.length); + return this.tokenName; + }, tokenName: "text", regex: "^(?!\t)", next: "start"} + ]) + +}; + +oop.inherits(SnippetGroupHighlightRules, TextHighlightRules); + +exports.SnippetGroupHighlightRules = SnippetGroupHighlightRules; + +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = SnippetGroupHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$indentWithTabs = true; + this.lineCommentStart = "#"; + this.$id = "ace/mode/snippets"; +}).call(Mode.prototype); +exports.Mode = Mode; + + +}); diff --git a/htdocs/includes/ace/mode-soy_template.js b/htdocs/includes/ace/mode-soy_template.js new file mode 100644 index 00000000000..df831bb3bda --- /dev/null +++ b/htdocs/includes/ace/mode-soy_template.js @@ -0,0 +1,2819 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/soy_template_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var SoyTemplateHighlightRules = function() { + HtmlHighlightRules.call(this); + + var soyRules = { start: + [ { include: '#template' }, + { include: '#if' }, + { include: '#comment-line' }, + { include: '#comment-block' }, + { include: '#comment-doc' }, + { include: '#call' }, + { include: '#css' }, + { include: '#param' }, + { include: '#print' }, + { include: '#msg' }, + { include: '#for' }, + { include: '#foreach' }, + { include: '#switch' }, + { include: '#tag' }, + { include: 'text.html.basic' } ], + '#call': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.call.soy' ], + regex: '(\\{/?)(\\s*)(?=call|delcall)', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#string-quoted-single' }, + { include: '#string-quoted-double' }, + { token: ['entity.name.tag.soy', 'variable.parameter.soy'], + regex: '(call|delcall)(\\s+[\\.\\w]+)'}, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy' ], + regex: '\\b(data)(\\s*)(=)' }, + { defaultToken: 'meta.tag.call.soy' } ] } ], + '#comment-line': + [ { token: + [ 'comment.line.double-slash.soy', + 'comment.line.double-slash.soy' ], + regex: '(//)(.*$)' } ], + '#comment-block': + [ { token: 'punctuation.definition.comment.begin.soy', + regex: '/\\*(?!\\*)', + push: + [ { token: 'punctuation.definition.comment.end.soy', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.soy' } ] } ], + '#comment-doc': + [ { token: 'punctuation.definition.comment.begin.soy', + regex: '/\\*\\*(?!/)', + push: + [ { token: 'punctuation.definition.comment.end.soy', + regex: '\\*/', + next: 'pop' }, + { token: [ 'support.type.soy', 'text', 'variable.parameter.soy' ], + regex: '(@param|@param\\?)(\\s+)(\\w+)' }, + { defaultToken: 'comment.block.documentation.soy' } ] } ], + '#css': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.css.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(css)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { token: 'support.constant.soy', + regex: '\\b(?:LITERAL|REFERENCE|BACKEND_SPECIFIC|GOOG)\\b' }, + { defaultToken: 'meta.tag.css.soy' } ] } ], + '#for': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.for.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(for)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { token: 'keyword.operator.soy', regex: '\\bin\\b' }, + { token: 'support.function.soy', regex: '\\brange\\b' }, + { include: '#variable' }, + { include: '#number' }, + { include: '#primitive' }, + { defaultToken: 'meta.tag.for.soy' } ] } ], + '#foreach': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.foreach.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(foreach)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { token: 'keyword.operator.soy', regex: '\\bin\\b' }, + { include: '#variable' }, + { defaultToken: 'meta.tag.foreach.soy' } ] } ], + '#function': + [ { token: 'support.function.soy', + regex: '\\b(?:isFirst|isLast|index|hasData|length|keys|round|floor|ceiling|min|max|randomInt)\\b' } ], + '#if': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.if.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(if|elseif)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#variable' }, + { include: '#operator' }, + { include: '#function' }, + { include: '#string-quoted-single' }, + { include: '#string-quoted-double' }, + { defaultToken: 'meta.tag.if.soy' } ] } ], + '#namespace': + [ { token: [ 'entity.name.tag.soy', 'text', 'variable.parameter.soy' ], + regex: '(namespace|delpackage)(\\s+)([\\w\\.]+)' } ], + '#number': [ { token: 'constant.numeric', regex: '[\\d]+' } ], + '#operator': + [ { token: 'keyword.operator.soy', + regex: '==|!=|\\band\\b|\\bor\\b|\\bnot\\b|-|\\+|/|\\?:' } ], + '#param': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.param.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(param)', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#variable' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy' ], + regex: '\\b([\\w]+)(\\s*)((?::)?)' }, + { defaultToken: 'meta.tag.param.soy' } ] } ], + '#primitive': + [ { token: 'constant.language.soy', + regex: '\\b(?:null|false|true)\\b' } ], + '#msg': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.msg.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(msg)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#string-quoted-single' }, + { include: '#string-quoted-double' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy' ], + regex: '\\b(meaning|desc)(\\s*)(=)' }, + { defaultToken: 'meta.tag.msg.soy' } ] } ], + '#print': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.print.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(print)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#variable' }, + { include: '#print-parameter' }, + { include: '#number' }, + { include: '#primitive' }, + { include: '#attribute-lookup' }, + { defaultToken: 'meta.tag.print.soy' } ] } ], + '#print-parameter': + [ { token: 'keyword.operator.soy', regex: '\\|' }, + { token: 'variable.parameter.soy', + regex: 'noAutoescape|id|escapeHtml|escapeJs|insertWorkBreaks|truncate' } ], + '#special-character': + [ { token: 'support.constant.soy', + regex: '\\bsp\\b|\\bnil\\b|\\\\r|\\\\n|\\\\t|\\blb\\b|\\brb\\b' } ], + '#string-quoted-double': [ { token: 'string.quoted.double', regex: '"[^"]*"' } ], + '#string-quoted-single': [ { token: 'string.quoted.single', regex: '\'[^\']*\'' } ], + '#switch': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.switch.soy', + 'entity.name.tag.soy' ], + regex: '(\\{/?)(\\s*)(switch|case)\\b', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#variable' }, + { include: '#function' }, + { include: '#number' }, + { include: '#string-quoted-single' }, + { include: '#string-quoted-double' }, + { defaultToken: 'meta.tag.switch.soy' } ] } ], + '#attribute-lookup': + [ { token: 'punctuation.definition.attribute-lookup.begin.soy', + regex: '\\[', + push: + [ { token: 'punctuation.definition.attribute-lookup.end.soy', + regex: '\\]', + next: 'pop' }, + { include: '#variable' }, + { include: '#function' }, + { include: '#operator' }, + { include: '#number' }, + { include: '#primitive' }, + { include: '#string-quoted-single' }, + { include: '#string-quoted-double' } ] } ], + '#tag': + [ { token: 'punctuation.definition.tag.begin.soy', + regex: '\\{', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { include: '#namespace' }, + { include: '#variable' }, + { include: '#special-character' }, + { include: '#tag-simple' }, + { include: '#function' }, + { include: '#operator' }, + { include: '#attribute-lookup' }, + { include: '#number' }, + { include: '#primitive' }, + { include: '#print-parameter' } ] } ], + '#tag-simple': + [ { token: 'entity.name.tag.soy', + regex: '{{\\s*(?:literal|else|ifempty|default)\\s*(?=\\})'} ], + '#template': + [ { token: + [ 'punctuation.definition.tag.begin.soy', + 'meta.tag.template.soy' ], + regex: '(\\{/?)(\\s*)(?=template|deltemplate)', + push: + [ { token: 'punctuation.definition.tag.end.soy', + regex: '\\}', + next: 'pop' }, + { token: ['entity.name.tag.soy', 'text', 'entity.name.function.soy' ], + regex: '(template|deltemplate)(\\s+)([\\.\\w]+)', + originalRegex: '(?<=template|deltemplate)\\s+([\\.\\w]+)' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy', + 'text', + 'string.quoted.double.soy' ], + regex: '\\b(private)(\\s*)(=)(\\s*)("true"|"false")' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy', + 'text', + 'string.quoted.single.soy' ], + regex: '\\b(private)(\\s*)(=)(\\s*)(\'true\'|\'false\')' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy', + 'text', + 'string.quoted.double.soy' ], + regex: '\\b(autoescape)(\\s*)(=)(\\s*)("true"|"false"|"contextual")' }, + { token: + [ 'entity.other.attribute-name.soy', + 'text', + 'keyword.operator.soy', + 'text', + 'string.quoted.single.soy' ], + regex: '\\b(autoescape)(\\s*)(=)(\\s*)(\'true\'|\'false\'|\'contextual\')' }, + { defaultToken: 'meta.tag.template.soy' } ] } ], + '#variable': [ { token: 'variable.other.soy', regex: '\\$[\\w\\.]+' } ] } + + + for (var i in soyRules) { + if (this.$rules[i]) { + this.$rules[i].unshift.apply(this.$rules[i], soyRules[i]); + } else { + this.$rules[i] = soyRules[i]; + } + } + + this.normalizeRules(); +}; + +SoyTemplateHighlightRules.metaData = { comment: 'SoyTemplate', + fileTypes: [ 'soy' ], + firstLineMatch: '\\{\\s*namespace\\b', + foldingStartMarker: '\\{\\s*template\\s+[^\\}]*\\}', + foldingStopMarker: '\\{\\s*/\\s*template\\s*\\}', + name: 'SoyTemplate', + scopeName: 'source.soy' } + + +oop.inherits(SoyTemplateHighlightRules, HtmlHighlightRules); + +exports.SoyTemplateHighlightRules = SoyTemplateHighlightRules; +}); + +ace.define("ace/mode/soy_template",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/soy_template_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var SoyTemplateHighlightRules = require("./soy_template_highlight_rules").SoyTemplateHighlightRules; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = SoyTemplateHighlightRules; +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$id = "ace/mode/soy_template"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-space.js b/htdocs/includes/ace/mode-space.js new file mode 100644 index 00000000000..5bbeb482c79 --- /dev/null +++ b/htdocs/includes/ace/mode-space.js @@ -0,0 +1,160 @@ +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/space_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SpaceHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "empty_line", + regex : / */, + next : "key" + }, + { + token : "empty_line", + regex : /$/, + next : "key" + } + ], + "key" : [ + { + token : "variable", + regex : /\S+/ + }, + { + token : "empty_line", + regex : /$/, + next : "start" + },{ + token : "keyword.operator", + regex : / /, + next : "value" + } + ], + "value" : [ + { + token : "keyword.operator", + regex : /$/, + next : "start" + }, + { + token : "string", + regex : /[^$]/ + } + ] + }; + +}; + +oop.inherits(SpaceHighlightRules, TextHighlightRules); + +exports.SpaceHighlightRules = SpaceHighlightRules; +}); + +ace.define("ace/mode/space",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/folding/coffee","ace/mode/space_highlight_rules"], function(require, exports, module) { +"use strict"; +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var FoldMode = require("./folding/coffee").FoldMode; +var SpaceHighlightRules = require("./space_highlight_rules").SpaceHighlightRules; +var Mode = function() { + this.HighlightRules = SpaceHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); +(function() { + + this.$id = "ace/mode/space"; +}).call(Mode.prototype); +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-sparql.js b/htdocs/includes/ace/mode-sparql.js new file mode 100644 index 00000000000..e5a5854214b --- /dev/null +++ b/htdocs/includes/ace/mode-sparql.js @@ -0,0 +1,313 @@ +ace.define("ace/mode/sparql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SPARQLHighlightRules = function() { + + this.$rules = { + start: [{ + include: "#comments" + }, { + include: "#strings" + }, { + include: "#string-language-suffixes" + }, { + include: "#string-datatype-suffixes" + }, { + include: "#logic-operators" + }, { + include: "#relative-urls" + }, { + include: "#xml-schema-types" + }, { + include: "#rdf-schema-types" + }, { + include: "#owl-types" + }, { + include: "#qnames" + }, { + include: "#keywords" + }, { + include: "#built-in-functions" + }, { + include: "#variables" + }, { + include: "#boolean-literal" + }, { + include: "#punctuation-operators" + }], + "#boolean-literal": [{ + token: "constant.language.boolean.sparql", + regex: /true|false/ + }], + "#built-in-functions": [{ + token: "support.function.sparql", + regex: /[Aa][Bb][Ss]|[Aa][Vv][Gg]|[Bb][Nn][Oo][Dd][Ee]|[Bb][Oo][Uu][Nn][Dd]|[Cc][Ee][Ii][Ll]|[Cc][Oo][Aa][Ll][Ee][Ss][Cc][Ee]|[Cc][Oo][Nn][Cc][Aa][Tt]|[Cc][Oo][Nn][Tt][Aa][Ii][Nn][Ss]|[Cc][Oo][Uu][Nn][Tt]|[Dd][Aa][Tt][Aa][Tt][Yy][Pp][Ee]|[Dd][Aa][Yy]|[Ee][Nn][Cc][Oo][Dd][Ee]_[Ff][Oo][Rr]_[Uu][Rr][Ii]|[Ee][Xx][Ii][Ss][Tt][Ss]|[Ff][Ll][Oo][Oo][Rr]|[Gg][Rr][Oo][Uu][Pp]_[Cc][Oo][Nn][Cc][Aa][Tt]|[Hh][Oo][Uu][Rr][Ss]|[Ii][Ff]|[Ii][Rr][Ii]|[Ii][Ss][Bb][Ll][Aa][Nn][Kk]|[Ii][Ss][Ii][Rr][Ii]|[Ii][Ss][Ll][Ii][Tt][Ee][Rr][Aa][Ll]|[Ii][Ss][Nn][Uu][Mm][Ee][Rr][Ii][Cc]|[Ii][Ss][Uu][Rr][Ii]|[Ll][Aa][Nn][Gg]|[Ll][Aa][Nn][Gg][Mm][Aa][Tt][Cc][Hh][Ee][Ss]|[Ll][Cc][Aa][Ss][Ee]|[Mm][Aa][Xx]|[Mm][Dd]5|[Mm][Ii][Nn]|[Mm][Ii][Nn][Uu][Tt][Ee][Ss]|[Mm][Oo][Nn][Tt][Hh]|[Nn][Oo][Ww]|[Rr][Aa][Nn][Dd]|[Rr][Ee][Gg][Ee][Xx]|[Rr][Ee][Pp][Ll][Aa][Cc][Ee]|[Rr][Oo][Uu][Nn][Dd]|[Ss][Aa][Mm][Ee][Tt][Ee][Rr][Mm]|[Ss][Aa][Mm][Pp][Ll][Ee]|[Ss][Ee][Cc][Oo][Nn][Dd][Ss]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Hh][Aa](?:1|256|384|512)|[Ss][Tt][Rr]|[Ss][Tt][Rr][Aa][Ff][Tt][Ee][Rr]|[Ss][Tt][Rr][Bb][Ee][Ff][Oo][Rr][Ee]|[Ss][Tt][Rr][Dd][Tt]|[Ss][Tt][Rr][Ee][Nn][Dd][Ss]|[Ss][Tt][Rr][Ll][Aa][Nn][Gg]|[Ss][Tt][Rr][Ll][Ee][Nn]|[Ss][Tt][Rr][Ss][Tt][Aa][Rr][Tt][Ss]|[Ss][Tt][Rr][Uu][Uu][Ii][Dd]|[Ss][Uu][Bb][Ss][Tt][Rr]|[Ss][Uu][Mm]|[Tt][Ii][Mm][Ee][Zz][Oo][Nn][Ee]|[Tt][Zz]|[Uu][Cc][Aa][Ss][Ee]|[Uu][Rr][Ii]|[Uu][Uu][Ii][Dd]|[Yy][Ee][Aa][Rr]/ + }], + "#comments": [{ + token: [ + "punctuation.definition.comment.sparql", + "comment.line.hash.sparql" + ], + regex: /(#)(.*$)/ + }], + "#keywords": [{ + token: "keyword.other.sparql", + regex: /[Aa][Dd][Dd]|[Aa][Ll][Ll]|[Aa][Ss]|[As][Ss][Cc]|[Aa][Ss][Kk]|[Bb][Aa][Ss][Ee]|[Bb][Ii][Nn][Dd]|[Bb][Yy]|[Cc][Ll][Ee][Aa][Rr]|[Cc][Oo][Nn][Ss][Tt][Rr][Uu][Cc][Tt]|[Cc][Oo][Pp][Yy]|[Cc][Rr][Ee][Aa][Tt][Ee]|[Dd][Aa][Tt][Aa]|[Dd][Ee][Ff][Aa][Uu][Ll][Tt]|[Dd][Ee][Ll][Ee][Tt][Ee]|[Dd][Ee][Sc][Cc]|[Dd][Ee][Ss][Cc][Rr][Ii][Bb][Ee]|[Dd][Ii][Ss][Tt][Ii][Nn][Cc][Tt]|[Dd][Rr][Oo][Pp]|[Ff][Ii][Ll][Tt][Ee][Rr]|[Ff][Rr][Oo][Mm]|[Gg][Rr][Aa][Pp][Hh]|[Gg][Rr][Oo][Uu][Pp]|[Hh][Aa][Vv][Ii][Nn][Gg]|[Ii][Nn][Ss][Ee][Rr][Tt]|[Ll][Ii][Mm][Ii][Tt]|[Ll][Oo][Aa][Dd]|[Mm][Ii][Nn][Uu][Ss]|[Mm][Oo][Vv][Ee]|[Nn][Aa][Mm][Ee][Dd]|[Oo][Ff][Ff][Ss][Ee][Tt]|[Oo][Pp][Tt][Ii][Oo][Nn][Aa][Ll]|[Oo][Rr][Dd][Ee][Rr]|[Pp][Rr][Ee][Ff][Ii][Xx]|[Rr][Ee][Dd][Uu][Cc][Ee][Dd]|[Ss][Ee][Ll][Ee][Cc][Tt]|[Ss][Ee][Pp][Aa][Rr][Aa][Tt][Oo][Rr]|[Ss][Ee][Rr][Vv][Ii][Cc][Ee]|[Ss][Ii][Ll][Ee][Nn][Tt]|[Tt][Oo]|[Uu][Nn][Dd][Ee][Ff]|[Uu][Nn][Ii][Oo][Nn]|[Uu][Ss][Ii][Nn][Gg]|[Vv][Aa][Ll][Uu][Ee][Ss]|[Ww][He][Ee][Rr][Ee]|[Ww][Ii][Tt][Hh]/ + }], + "#logic-operators": [{ + token: "keyword.operator.logical.sparql", + regex: /\|\||&&|=|!=|<|>|<=|>=|(?:^|!?\s)IN(?:!?\s|$)|(?:^|!?\s)NOT(?:!?\s|$)|-|\+|\*|\/|\!/ + }], + "#owl-types": [{ + token: "support.type.datatype.owl.sparql", + regex: /owl:[a-zA-Z]+/ + }], + "#punctuation-operators": [{ + token: "keyword.operator.punctuation.sparql", + regex: /;|,|\.|\(|\)|\{|\}|\|/ + }], + "#qnames": [{ + token: "entity.name.other.qname.sparql", + regex: /(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/ + }], + "#rdf-schema-types": [{ + token: "support.type.datatype.rdf.schema.sparql", + regex: /rdfs?:[a-zA-Z]+|(?:^|\s)a(?:\s|$)/ + }], + "#relative-urls": [{ + token: "string.quoted.other.relative.url.sparql", + regex: //, + next: "pop" + }, { + defaultToken: "string.quoted.other.relative.url.sparql" + }] + }], + "#string-datatype-suffixes": [{ + token: "keyword.operator.datatype.suffix.sparql", + regex: /\^\^/ + }], + "#string-language-suffixes": [{ + token: [ + "keyword.operator.language.suffix.sparql", + "constant.language.suffix.sparql" + ], + regex: /(?!")(@)([a-z]+(?:\-[a-z0-9]+)*)/ + }], + "#strings": [{ + token: "string.quoted.triple.sparql", + regex: /"""/, + push: [{ + token: "string.quoted.triple.sparql", + regex: /"""/, + next: "pop" + }, { + defaultToken: "string.quoted.triple.sparql" + }] + }, { + token: "string.quoted.double.sparql", + regex: /"/, + push: [{ + token: "string.quoted.double.sparql", + regex: /"/, + next: "pop" + }, { + token: "invalid.string.newline", + regex: /$/ + }, { + token: "constant.character.escape.sparql", + regex: /\\./ + }, { + defaultToken: "string.quoted.double.sparql" + }] + }], + "#variables": [{ + token: "variable.other.sparql", + regex: /(?:\?|\$)[-_a-zA-Z0-9]+/ + }], + "#xml-schema-types": [{ + token: "support.type.datatype.schema.sparql", + regex: /xsd?:[a-z][a-zA-Z]+/ + }] + } + + this.normalizeRules(); +}; + +SPARQLHighlightRules.metaData = { + fileTypes: ["rq", "sparql"], + name: "SPARQL", + scopeName: "source.sparql" +} + + +oop.inherits(SPARQLHighlightRules, TextHighlightRules); + +exports.SPARQLHighlightRules = SPARQLHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/sparql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sparql_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var SPARQLHighlightRules = require("./sparql_highlight_rules").SPARQLHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = SPARQLHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/sparql" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-sql.js b/htdocs/includes/ace/mode-sql.js new file mode 100644 index 00000000000..9678787a874 --- /dev/null +++ b/htdocs/includes/ace/mode-sql.js @@ -0,0 +1,103 @@ +ace.define("ace/mode/sql_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SqlHighlightRules = function() { + + var keywords = ( + "select|insert|update|delete|from|where|and|or|group|by|order|limit|offset|having|as|case|" + + "when|else|end|type|left|right|join|on|outer|desc|asc|union|create|table|primary|key|if|" + + "foreign|not|references|default|null|inner|cross|natural|database|drop|grant" + ); + + var builtinConstants = ( + "true|false" + ); + + var builtinFunctions = ( + "avg|count|first|last|max|min|sum|ucase|lcase|mid|len|round|rank|now|format|" + + "coalesce|ifnull|isnull|nvl" + ); + + var dataTypes = ( + "int|numeric|decimal|date|varchar|char|bigint|float|double|bit|binary|text|set|timestamp|" + + "money|real|number|integer" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants, + "storage.type": dataTypes + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "--.*$" + }, { + token : "comment", + start : "/\\*", + end : "\\*/" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "string", // ' string + regex : "'.*?'" + }, { + token : "string", // ` string (apache drill) + regex : "`.*?`" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ] + }; + this.normalizeRules(); +}; + +oop.inherits(SqlHighlightRules, TextHighlightRules); + +exports.SqlHighlightRules = SqlHighlightRules; +}); + +ace.define("ace/mode/sql",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sql_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var SqlHighlightRules = require("./sql_highlight_rules").SqlHighlightRules; + +var Mode = function() { + this.HighlightRules = SqlHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + + this.$id = "ace/mode/sql"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-sqlserver.js b/htdocs/includes/ace/mode-sqlserver.js new file mode 100644 index 00000000000..59e9b9077b8 --- /dev/null +++ b/htdocs/includes/ace/mode-sqlserver.js @@ -0,0 +1,437 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/sqlserver_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SqlServerHighlightRules = function() { + var logicalOperators = "ALL|AND|ANY|BETWEEN|EXISTS|IN|LIKE|NOT|OR|SOME"; + logicalOperators += "|NULL|IS|APPLY|INNER|OUTER|LEFT|RIGHT|JOIN|CROSS"; //SSMS colors these gray too + + + var builtinFunctions = ( + "OPENDATASOURCE|OPENQUERY|OPENROWSET|OPENXML|" + + "AVG|CHECKSUM_AGG|COUNT|COUNT_BIG|GROUPING|GROUPING_ID|MAX|MIN|STDEV|STDEVP|SUM|VAR|VARP|" + + "DENSE_RANK|NTILE|RANK|ROW_NUMBER" + + "@@DATEFIRST|@@DBTS|@@LANGID|@@LANGUAGE|@@LOCK_TIMEOUT|@@MAX_CONNECTIONS|@@MAX_PRECISION|@@NESTLEVEL|@@OPTIONS|@@REMSERVER|@@SERVERNAME|@@SERVICENAME|@@SPID|@@TEXTSIZE|@@VERSION|" + + "CAST|CONVERT|PARSE|TRY_CAST|TRY_CONVERT|TRY_PARSE" + + "@@CURSOR_ROWS|@@FETCH_STATUS|CURSOR_STATUS|" + + "@@DATEFIRST|@@LANGUAGE|CURRENT_TIMESTAMP|DATEADD|DATEDIFF|DATEFROMPARTS|DATENAME|DATEPART|DATETIME2FROMPARTS|DATETIMEFROMPARTS|DATETIMEOFFSETFROMPARTS|DAY|EOMONTH|GETDATE|GETUTCDATE|ISDATE|MONTH|SET DATEFIRST|SET DATEFORMAT|SET LANGUAGE|SMALLDATETIMEFROMPARTS|SP_HELPLANGUAGE|SWITCHOFFSET|SYSDATETIME|SYSDATETIMEOFFSET|SYSUTCDATETIME|TIMEFROMPARTS|TODATETIMEOFFSET|YEAR|" + + "CHOOSE|IIF|" + + "ABS|ACOS|ASIN|ATAN|ATN2|CEILING|COS|COT|DEGREES|EXP|FLOOR|LOG|LOG10|PI|POWER|RADIANS|RAND|ROUND|SIGN|SIN|SQRT|SQUARE|TAN|" + + "@@PROCID|APPLOCK_MODE|APPLOCK_TEST|APP_NAME|ASSEMBLYPROPERTY|COLUMNPROPERTY|COL_LENGTH|COL_NAME|DATABASEPROPERTYEX|DATABASE_PRINCIPAL_ID|DB_ID|DB_NAME|FILEGROUPPROPERTY|FILEGROUP_ID|FILEGROUP_NAME|FILEPROPERTY|FILE_ID|FILE_IDEX|FILE_NAME|FULLTEXTCATALOGPROPERTY|FULLTEXTSERVICEPROPERTY|INDEXKEY_PROPERTY|INDEXPROPERTY|INDEX_COL|OBJECTPROPERTY|OBJECTPROPERTYEX|OBJECT_DEFINITION|OBJECT_ID|OBJECT_NAME|OBJECT_SCHEMA_NAME|ORIGINAL_DB_NAME|PARSENAME|SCHEMA_ID|SCHEMA_NAME|SCOPE_IDENTITY|SERVERPROPERTY|STATS_DATE|TYPEPROPERTY|TYPE_ID|TYPE_NAME|" + + "CERTENCODED|CERTPRIVATEKEY|CURRENT_USER|DATABASE_PRINCIPAL_ID|HAS_PERMS_BY_NAME|IS_MEMBER|IS_ROLEMEMBER|IS_SRVROLEMEMBER|ORIGINAL_LOGIN|PERMISSIONS|PWDCOMPARE|PWDENCRYPT|SCHEMA_ID|SCHEMA_NAME|SESSION_USER|SUSER_ID|SUSER_NAME|SUSER_SID|SUSER_SNAME|SYS.FN_BUILTIN_PERMISSIONS|SYS.FN_GET_AUDIT_FILE|SYS.FN_MY_PERMISSIONS|SYSTEM_USER|USER_ID|USER_NAME|" + + "ASCII|CHAR|CHARINDEX|CONCAT|DIFFERENCE|FORMAT|LEN|LOWER|LTRIM|NCHAR|PATINDEX|QUOTENAME|REPLACE|REPLICATE|REVERSE|RTRIM|SOUNDEX|SPACE|STR|STUFF|SUBSTRING|UNICODE|UPPER|" + + "$PARTITION|@@ERROR|@@IDENTITY|@@PACK_RECEIVED|@@ROWCOUNT|@@TRANCOUNT|BINARY_CHECKSUM|CHECKSUM|CONNECTIONPROPERTY|CONTEXT_INFO|CURRENT_REQUEST_ID|ERROR_LINE|ERROR_MESSAGE|ERROR_NUMBER|ERROR_PROCEDURE|ERROR_SEVERITY|ERROR_STATE|FORMATMESSAGE|GETANSINULL|GET_FILESTREAM_TRANSACTION_CONTEXT|HOST_ID|HOST_NAME|ISNULL|ISNUMERIC|MIN_ACTIVE_ROWVERSION|NEWID|NEWSEQUENTIALID|ROWCOUNT_BIG|XACT_STATE|" + + "@@CONNECTIONS|@@CPU_BUSY|@@IDLE|@@IO_BUSY|@@PACKET_ERRORS|@@PACK_RECEIVED|@@PACK_SENT|@@TIMETICKS|@@TOTAL_ERRORS|@@TOTAL_READ|@@TOTAL_WRITE|FN_VIRTUALFILESTATS|" + + "PATINDEX|TEXTPTR|TEXTVALID|" + + "COALESCE|NULLIF" + ); + var dataTypes = ("BIGINT|BINARY|BIT|CHAR|CURSOR|DATE|DATETIME|DATETIME2|DATETIMEOFFSET|DECIMAL|FLOAT|HIERARCHYID|IMAGE|INTEGER|INT|MONEY|NCHAR|NTEXT|NUMERIC|NVARCHAR|REAL|SMALLDATETIME|SMALLINT|SMALLMONEY|SQL_VARIANT|TABLE|TEXT|TIME|TIMESTAMP|TINYINT|UNIQUEIDENTIFIER|VARBINARY|VARCHAR|XML"); + var builtInStoredProcedures = "sp_addextendedproc|sp_addextendedproperty|sp_addmessage|sp_addtype|sp_addumpdevice|sp_add_data_file_recover_suspect_db|sp_add_log_file_recover_suspect_db|sp_altermessage|sp_attach_db|sp_attach_single_file_db|sp_autostats|sp_bindefault|sp_bindrule|sp_bindsession|sp_certify_removable|sp_clean_db_file_free_space|sp_clean_db_free_space|sp_configure|sp_control_plan_guide|sp_createstats|sp_create_plan_guide|sp_create_plan_guide_from_handle|sp_create_removable|sp_cycle_errorlog|sp_datatype_info|sp_dbcmptlevel|sp_dbmmonitoraddmonitoring|sp_dbmmonitorchangealert|sp_dbmmonitorchangemonitoring|sp_dbmmonitordropalert|sp_dbmmonitordropmonitoring|sp_dbmmonitorhelpalert|sp_dbmmonitorhelpmonitoring|sp_dbmmonitorresults|sp_db_increased_partitions|sp_delete_backuphistory|sp_depends|sp_describe_first_result_set|sp_describe_undeclared_parameters|sp_detach_db|sp_dropdevice|sp_dropextendedproc|sp_dropextendedproperty|sp_dropmessage|sp_droptype|sp_execute|sp_executesql|sp_getapplock|sp_getbindtoken|sp_help|sp_helpconstraint|sp_helpdb|sp_helpdevice|sp_helpextendedproc|sp_helpfile|sp_helpfilegroup|sp_helpindex|sp_helplanguage|sp_helpserver|sp_helpsort|sp_helpstats|sp_helptext|sp_helptrigger|sp_indexoption|sp_invalidate_textptr|sp_lock|sp_monitor|sp_prepare|sp_prepexec|sp_prepexecrpc|sp_procoption|sp_recompile|sp_refreshview|sp_releaseapplock|sp_rename|sp_renamedb|sp_resetstatus|sp_sequence_get_range|sp_serveroption|sp_setnetname|sp_settriggerorder|sp_spaceused|sp_tableoption|sp_unbindefault|sp_unbindrule|sp_unprepare|sp_updateextendedproperty|sp_updatestats|sp_validname|sp_who|sys.sp_merge_xtp_checkpoint_files|sys.sp_xtp_bind_db_resource_pool|sys.sp_xtp_checkpoint_force_garbage_collection|sys.sp_xtp_control_proc_exec_stats|sys.sp_xtp_control_query_exec_stats|sys.sp_xtp_unbind_db_resource_pool"; + var keywords = "ABSOLUTE|ACTION|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|AND|ANY|ARE|ARRAY|AS|ASC|ASENSITIVE|ASSERTION|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|BACKUP|BEFORE|BEGIN|BETWEEN|BIT_LENGTH|BLOB|BOOLEAN|BOTH|BREADTH|BREAK|BROWSE|BULK|BY|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CATALOG|CHARACTER|CHARACTER_LENGTH|CHAR_LENGTH|CHECK|CHECKPOINT|CLASS|CLOB|CLOSE|CLUSTERED|COALESCE|COLLATE|COLLATION|COLLECT|COLUMN|COMMIT|COMPLETION|COMPUTE|CONDITION|CONNECT|CONNECTION|CONSTRAINT|CONSTRAINTS|CONSTRUCTOR|CONTAINS|CONTAINSTABLE|CONTINUE|CORR|CORRESPONDING|COVAR_POP|COVAR_SAMP|CREATE|CROSS|CUBE|CUME_DIST|CURRENT|CURRENT_CATALOG|CURRENT_DATE|CURRENT_DEFAULT_TRANSFORM_GROUP|CURRENT_PATH|CURRENT_ROLE|CURRENT_SCHEMA|CURRENT_TIME|CURRENT_TRANSFORM_GROUP_FOR_TYPE|CYCLE|DATA|DATABASE|DBCC|DEALLOCATE|DEC|DECLARE|DEFAULT|DEFERRABLE|DEFERRED|DELETE|DENY|DEPTH|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISK|DISTINCT|DISTRIBUTED|DOMAIN|DOUBLE|DROP|DUMP|DYNAMIC|EACH|ELEMENT|ELSE|END|END-EXEC|EQUALS|ERRLVL|ESCAPE|EVERY|EXCEPT|EXCEPTION|EXEC|EXECUTE|EXISTS|EXIT|EXTERNAL|EXTRACT|FETCH|FILE|FILLFACTOR|FILTER|FIRST|FOR|FOREIGN|FORTRAN|FOUND|FREE|FREETEXT|FREETEXTTABLE|FROM|FULL|FULLTEXTTABLE|FUNCTION|FUSION|GENERAL|GET|GLOBAL|GO|GOTO|GRANT|GROUP|HAVING|HOLD|HOLDLOCK|HOST|HOUR|IDENTITY|IDENTITYCOL|IDENTITY_INSERT|IF|IGNORE|IMMEDIATE|IN|INCLUDE|INDEX|INDICATOR|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INTEGER|INTERSECT|INTERSECTION|INTERVAL|INTO|IS|ISOLATION|ITERATE|JOIN|KEY|KILL|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LESS|LEVEL|LIKE|LIKE_REGEX|LIMIT|LINENO|LN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATOR|MAP|MATCH|MEMBER|MERGE|METHOD|MINUTE|MOD|MODIFIES|MODIFY|MODULE|MULTISET|NAMES|NATIONAL|NATURAL|NCLOB|NEW|NEXT|NO|NOCHECK|NONCLUSTERED|NONE|NORMALIZE|NOT|NULL|NULLIF|OBJECT|OCCURRENCES_REGEX|OCTET_LENGTH|OF|OFF|OFFSETS|OLD|ON|ONLY|OPEN|OPERATION|OPTION|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVER|OVERLAPS|OVERLAY|PAD|PARAMETER|PARAMETERS|PARTIAL|PARTITION|PASCAL|PATH|PERCENT|PERCENTILE_CONT|PERCENTILE_DISC|PERCENT_RANK|PIVOT|PLAN|POSITION|POSITION_REGEX|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRINT|PRIOR|PRIVILEGES|PROC|PROCEDURE|PUBLIC|RAISERROR|RANGE|READ|READS|READTEXT|RECONFIGURE|RECURSIVE|REF|REFERENCES|REFERENCING|REGR_AVGX|REGR_AVGY|REGR_COUNT|REGR_INTERCEPT|REGR_R2|REGR_SLOPE|REGR_SXX|REGR_SXY|REGR_SYY|RELATIVE|RELEASE|REPLICATION|RESTORE|RESTRICT|RESULT|RETURN|RETURNS|REVERT|REVOKE|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROW|ROWCOUNT|ROWGUIDCOL|ROWS|RULE|SAVE|SAVEPOINT|SCHEMA|SCOPE|SCROLL|SEARCH|SECOND|SECTION|SECURITYAUDIT|SELECT|SEMANTICKEYPHRASETABLE|SEMANTICSIMILARITYDETAILSTABLE|SEMANTICSIMILARITYTABLE|SENSITIVE|SEQUENCE|SESSION|SET|SETS|SETUSER|SHUTDOWN|SIMILAR|SIZE|SOME|SPECIFIC|SPECIFICTYPE|SQL|SQLCA|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNING|START|STATE|STATEMENT|STATIC|STATISTICS|STDDEV_POP|STDDEV_SAMP|STRUCTURE|SUBMULTISET|SUBSTRING_REGEX|SYMMETRIC|SYSTEM|TABLESAMPLE|TEMPORARY|TERMINATE|TEXTSIZE|THAN|THEN|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOP|TRAILING|TRAN|TRANSACTION|TRANSLATE|TRANSLATE_REGEX|TRANSLATION|TREAT|TRIGGER|TRIM|TRUNCATE|TSEQUAL|UESCAPE|UNDER|UNION|UNIQUE|UNKNOWN|UNNEST|UNPIVOT|UPDATE|UPDATETEXT|USAGE|USE|USER|USING|VALUE|VALUES|VARIABLE|VARYING|VAR_POP|VAR_SAMP|VIEW|WAITFOR|WHEN|WHENEVER|WHERE|WHILE|WIDTH_BUCKET|WINDOW|WITH|WITHIN|WITHIN GROUP|WITHOUT|WORK|WRITE|WRITETEXT|XMLAGG|XMLATTRIBUTES|XMLBINARY|XMLCAST|XMLCOMMENT|XMLCONCAT|XMLDOCUMENT|XMLELEMENT|XMLEXISTS|XMLFOREST|XMLITERATE|XMLNAMESPACES|XMLPARSE|XMLPI|XMLQUERY|XMLSERIALIZE|XMLTABLE|XMLTEXT|XMLVALIDATE|ZONE"; + keywords += "|KEEPIDENTITY|KEEPDEFAULTS|IGNORE_CONSTRAINTS|IGNORE_TRIGGERS|XLOCK|FORCESCAN|FORCESEEK|HOLDLOCK|NOLOCK|NOWAIT|PAGLOCK|READCOMMITTED|READCOMMITTEDLOCK|READPAST|READUNCOMMITTED|REPEATABLEREAD|ROWLOCK|SERIALIZABLE|SNAPSHOT|SPATIAL_WINDOW_MAX_CELLS|TABLOCK|TABLOCKX|UPDLOCK|XLOCK|IGNORE_NONCLUSTERED_COLUMNSTORE_INDEX|EXPAND|VIEWS|FAST|FORCE|KEEP|KEEPFIXED|MAXDOP|MAXRECURSION|OPTIMIZE|PARAMETERIZATION|SIMPLE|FORCED|RECOMPILE|ROBUST|PLAN|SPATIAL_WINDOW_MAX_CELLS|NOEXPAND|HINT"; + keywords += "|LOOP|HASH|MERGE|REMOTE"; + keywords += "|TRY|CATCH|THROW"; + keywords += "|TYPE"; + keywords = keywords.split('|'); + keywords = keywords.filter(function(value, index, self) { + return logicalOperators.split('|').indexOf(value) === -1 && builtinFunctions.split('|').indexOf(value) === -1 && dataTypes.split('|').indexOf(value) === -1; + }); + keywords = keywords.sort().join('|'); + + + var keywordMapper = this.createKeywordMapper({ + "constant.language": logicalOperators, + "storage.type": dataTypes, + "support.function": builtinFunctions, + "support.storedprocedure": builtInStoredProcedures, + "keyword": keywords + }, "identifier", true); + var setStatements = "SET ANSI_DEFAULTS|SET ANSI_NULLS|SET ANSI_NULL_DFLT_OFF|SET ANSI_NULL_DFLT_ON|SET ANSI_PADDING|SET ANSI_WARNINGS|SET ARITHABORT|SET ARITHIGNORE|SET CONCAT_NULL_YIELDS_NULL|SET CURSOR_CLOSE_ON_COMMIT|SET DATEFIRST|SET DATEFORMAT|SET DEADLOCK_PRIORITY|SET FIPS_FLAGGER|SET FMTONLY|SET FORCEPLAN|SET IDENTITY_INSERT|SET IMPLICIT_TRANSACTIONS|SET LANGUAGE|SET LOCK_TIMEOUT|SET NOCOUNT|SET NOEXEC|SET NUMERIC_ROUNDABORT|SET OFFSETS|SET PARSEONLY|SET QUERY_GOVERNOR_COST_LIMIT|SET QUOTED_IDENTIFIER|SET REMOTE_PROC_TRANSACTIONS|SET ROWCOUNT|SET SHOWPLAN_ALL|SET SHOWPLAN_TEXT|SET SHOWPLAN_XML|SET STATISTICS IO|SET STATISTICS PROFILE|SET STATISTICS TIME|SET STATISTICS XML|SET TEXTSIZE|SET XACT_ABORT".split('|'); + var isolationLevels = "READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SNAPSHOP|SERIALIZABLE".split('|'); + for (var i = 0; i < isolationLevels.length; i++) { + setStatements.push('SET TRANSACTION ISOLATION LEVEL ' + isolationLevels[i]); + } + + + this.$rules = { + start: [{ + token: "string.start", + regex: "'", + next: [{ + token: "constant.language.escape", + regex: /''/ + }, { + token: "string.end", + next: "start", + regex: "'" + }, { + defaultToken: "string" + }] + }, + DocCommentHighlightRules.getStartRule("doc-start"), { + token: "comment", + regex: "--.*$" + }, { + token: "comment", + start: "/\\*", + end: "\\*/" + }, { + token: "constant.numeric", // float + regex: "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token: keywordMapper, + regex: "@{0,2}[a-zA-Z_$][a-zA-Z0-9_$]*\\b(?!])" //up to 2 @symbols for some built in functions + }, { + token: "constant.class", + regex: "@@?[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token: "keyword.operator", + regex: "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=|\\*" + }, { + token: "paren.lparen", + regex: "[\\(]" + }, { + token: "paren.rparen", + regex: "[\\)]" + }, { + token: "punctuation", + regex: ",|;" + }, { + token: "text", + regex: "\\s+" + }], + comment: [ + DocCommentHighlightRules.getTagRule(), { + token: "comment", + regex: "\\*\\/", + next: "no_regex" + }, { + defaultToken: "comment", + caseInsensitive: true + }] + }; + for (var i = 0; i < setStatements.length; i++) { + this.$rules.start.unshift({ + token: "set.statement", + regex: setStatements[i] + }); + } + + this.embedRules(DocCommentHighlightRules, "doc-", [DocCommentHighlightRules.getEndRule("start")]); + this.normalizeRules(); + var completions = []; + var addCompletions = function(arr, meta) { + arr.forEach(function(v) { + completions.push({ + name: v, + value: v, + score: 0, + meta: meta + }); + }); + }; + addCompletions(builtInStoredProcedures.split('|'), 'procedure'); + addCompletions(logicalOperators.split('|'), 'operator'); + addCompletions(builtinFunctions.split('|'), 'function'); + addCompletions(dataTypes.split('|'), 'type'); + addCompletions(setStatements, 'statement'); + addCompletions(keywords.split('|'), 'keyword'); + + this.completions = completions; +}; + +oop.inherits(SqlServerHighlightRules, TextHighlightRules); + +exports.SqlHighlightRules = SqlServerHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/sqlserver",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function() {}; + +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\bCASE\b|\bBEGIN\b)|^\s*(\/\*)/i; + this.startRegionRe = /^\s*(\/\*|--)#?region\b/; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + if (match[1]) return this.getBeginEndBlock(session, row, i, match[1]); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } + else if (foldStyle != "all") range = null; + } + + return range; + } + + if (foldStyle === "markbegin") return; + return; + }; + this.getBeginEndBlock = function(session, row, column, matchSequence) { + var start = { + row: row, + column: column + matchSequence.length + }; + var maxRow = session.getLength(); + var line; + + var depth = 1; + var re = /(\bCASE\b|\bBEGIN\b)|(\bEND\b)/i; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth++; + else depth--; + + if (!depth) break; + } + var endRow = row; + if (endRow > start.row) { + return new Range(start.row, start.column, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/sqlserver",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/sqlserver_highlight_rules","ace/mode/folding/sqlserver"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var SqlServerHighlightRules = require("./sqlserver_highlight_rules").SqlHighlightRules; +var SqlServerFoldMode = require("./folding/sqlserver").FoldMode; + +var Mode = function() { + this.HighlightRules = SqlServerHighlightRules; + this.foldingRules = new SqlServerFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "--"; + this.blockComment = {start: "/*", end: "*/"}; + this.getCompletions = function(state, session, pos, prefix) { + return session.$mode.$highlightRules.completions; + }; + + this.$id = "ace/mode/sql"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-stylus.js b/htdocs/includes/ace/mode-stylus.js new file mode 100644 index 00000000000..fed3f82fad1 --- /dev/null +++ b/htdocs/includes/ace/mode-stylus.js @@ -0,0 +1,462 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/stylus_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules","ace/mode/css_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CssHighlightRules = require("./css_highlight_rules"); + +var StylusHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.type": CssHighlightRules.supportType, + "support.function": CssHighlightRules.supportFunction, + "support.constant": CssHighlightRules.supportConstant, + "support.constant.color": CssHighlightRules.supportConstantColor, + "support.constant.fonts": CssHighlightRules.supportConstantFonts + }, "text", true); + + this.$rules = { + start: [ + { + token : "comment", + regex : /\/\/.*$/ + }, + { + token : "comment", // multi line comment + regex : /\/\*/, + next : "comment" + }, + { + token: ["entity.name.function.stylus", "text"], + regex: "^([-a-zA-Z_][-\\w]*)?(\\()" + }, + { + token: ["entity.other.attribute-name.class.stylus"], + regex: "\\.-?[_a-zA-Z]+[_a-zA-Z0-9-]*" + }, + { + token: ["entity.language.stylus"], + regex: "^ *&" + }, + { + token: ["variable.language.stylus"], + regex: "(arguments)" + }, + { + token: ["keyword.stylus"], + regex: "@[-\\w]+" + }, + { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : CssHighlightRules.pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : CssHighlightRules.pseudoClasses + }, + { + token: ["entity.name.tag.stylus"], + regex: "(?:\\b)(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(?:h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)(?:\\b)" + }, + { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, + { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, + { + token: ["punctuation.definition.entity.stylus", "entity.other.attribute-name.id.stylus"], + regex: "(#)([a-zA-Z][a-zA-Z0-9_-]*)" + }, + { + token: "meta.vendor-prefix.stylus", + regex: "-webkit-|-moz\\-|-ms-|-o-" + }, + { + token: "keyword.control.stylus", + regex: "(?:!important|for|in|return|true|false|null|if|else|unless|return)\\b" + }, + { + token: "keyword.operator.stylus", + regex: "!|~|\\+|-|(?:\\*)?\\*|\\/|%|(?:\\.)\\.\\.|<|>|(?:=|:|\\?|\\+|-|\\*|\\/|%|<|>)?=|!=" + }, + { + token: "keyword.operator.stylus", + regex: "(?:in|is(?:nt)?|not)\\b" + }, + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, + { + token : "constant.numeric", + regex : CssHighlightRules.numRe + }, + { + token : "keyword", + regex : "(?:ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)\\b" + }, + { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : "\\*\\/", + next : "start" + }, { + defaultToken : "comment" + } + ], + "qqstring" : [ + { + token : "string", + regex : '[^"\\\\]+' + }, + { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, + { + token : "string", + regex : '"|$', + next : "start" + } + ], + "qstring" : [ + { + token : "string", + regex : "[^'\\\\]+" + }, + { + token : "string", + regex : "\\\\$", + next : "qstring" + }, + { + token : "string", + regex : "'|$", + next : "start" + } + ] +} + +}; + +oop.inherits(StylusHighlightRules, TextHighlightRules); + +exports.StylusHighlightRules = StylusHighlightRules; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/stylus",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/stylus_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var StylusHighlightRules = require("./stylus_highlight_rules").StylusHighlightRules; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = StylusHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.$id = "ace/mode/stylus"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-svg.js b/htdocs/includes/ace/mode-svg.js new file mode 100644 index 00000000000..25d879b35cf --- /dev/null +++ b/htdocs/includes/ace/mode-svg.js @@ -0,0 +1,1568 @@ +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = XmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.voidElements = lang.arrayToMap([]); + + this.blockComment = {start: ""}; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/xml_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/xml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/svg_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var SvgHighlightRules = function() { + XmlHighlightRules.call(this); + + this.embedTagRules(JavaScriptHighlightRules, "js-", "script"); + + this.normalizeRules(); +}; + +oop.inherits(SvgHighlightRules, XmlHighlightRules); + +exports.SvgHighlightRules = SvgHighlightRules; +}); + +ace.define("ace/mode/folding/mixed",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(defaultMode, subModes) { + this.defaultMode = defaultMode; + this.subModes = subModes; +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + + this.$getMode = function(state) { + if (typeof state != "string") + state = state[0]; + for (var key in this.subModes) { + if (state.indexOf(key) === 0) + return this.subModes[key]; + } + return null; + }; + + this.$tryMode = function(state, session, foldStyle, row) { + var mode = this.$getMode(state); + return (mode ? mode.getFoldWidget(session, foldStyle, row) : ""); + }; + + this.getFoldWidget = function(session, foldStyle, row) { + return ( + this.$tryMode(session.getState(row-1), session, foldStyle, row) || + this.$tryMode(session.getState(row), session, foldStyle, row) || + this.defaultMode.getFoldWidget(session, foldStyle, row) + ); + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var mode = this.$getMode(session.getState(row-1)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.$getMode(session.getState(row)); + + if (!mode || !mode.getFoldWidget(session, foldStyle, row)) + mode = this.defaultMode; + + return mode.getFoldWidgetRange(session, foldStyle, row); + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/svg",["require","exports","module","ace/lib/oop","ace/mode/xml","ace/mode/javascript","ace/mode/svg_highlight_rules","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var XmlMode = require("./xml").Mode; +var JavaScriptMode = require("./javascript").Mode; +var SvgHighlightRules = require("./svg_highlight_rules").SvgHighlightRules; +var MixedFoldMode = require("./folding/mixed").FoldMode; +var XmlFoldMode = require("./folding/xml").FoldMode; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + XmlMode.call(this); + + this.HighlightRules = SvgHighlightRules; + + this.createModeDelegates({ + "js-": JavaScriptMode + }); + + this.foldingRules = new MixedFoldMode(new XmlFoldMode(), { + "js-": new CStyleFoldMode() + }); +}; + +oop.inherits(Mode, XmlMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + + this.$id = "ace/mode/svg"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-swift.js b/htdocs/includes/ace/mode-swift.js new file mode 100644 index 00000000000..dc5a4303b7a --- /dev/null +++ b/htdocs/includes/ace/mode-swift.js @@ -0,0 +1,382 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/swift_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SwiftHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "variable.language": "", + "keyword": "__COLUMN__|__FILE__|__FUNCTION__|__LINE__" + + "|as|associativity|break|case|class|continue|default|deinit|didSet" + + "|do|dynamicType|else|enum|extension|fallthrough|for|func|get|if|import" + + "|in|infix|init|inout|is|left|let|let|mutating|new|none|nonmutating" + + "|operator|override|postfix|precedence|prefix|protocol|return|right" + + "|safe|Self|self|set|struct|subscript|switch|Type|typealias" + + "|unowned|unsafe|var|weak|where|while|willSet" + + "|convenience|dynamic|final|infix|lazy|mutating|nonmutating|optional|override|postfix" + + "|prefix|required|static|guard|defer", + "storage.type": "bool|double|Double" + + "|extension|float|Float|int|Int|private|public|string|String", + "constant.language": + "false|Infinity|NaN|nil|no|null|null|off|on|super|this|true|undefined|yes", + "support.function": + "" + }, "identifier"); + + function string(start, options) { + var nestable = options.nestable || options.interpolation; + var interpStart = options.interpolation && options.interpolation.nextState || "start"; + var mainRule = { + regex: start + (options.multiline ? "" : "(?=.)"), + token: "string.start" + }; + var nextState = [ + options.escape && { + regex: options.escape, + token: "character.escape" + }, + options.interpolation && { + token : "paren.quasi.start", + regex : lang.escapeRegExp(options.interpolation.lead + options.interpolation.open), + push : interpStart + }, + options.error && { + regex: options.error, + token: "error.invalid" + }, + { + regex: start + (options.multiline ? "" : "|$"), + token: "string.end", + next: nestable ? "pop" : "start" + }, { + defaultToken: "string" + } + ].filter(Boolean); + + if (nestable) + mainRule.push = nextState; + else + mainRule.next = nextState; + + if (!options.interpolation) + return mainRule; + + var open = options.interpolation.open; + var close = options.interpolation.close; + var counter = { + regex: "[" + lang.escapeRegExp(open + close) + "]", + onMatch: function(val, state, stack) { + this.next = val == open ? this.nextState : ""; + if (val == open && stack.length) { + stack.unshift("start", state); + return "paren"; + } + if (val == close && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1) + return "paren.quasi.end"; + } + return val == open ? "paren.lparen" : "paren.rparen"; + }, + nextState: interpStart + } + return [counter, mainRule]; + } + + function comments() { + return [{ + token : "comment", + regex : "\\/\\/(?=.)", + next : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next: "start"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment.start", + regex : /\/\*/, + stateName: "nested_comment", + push : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment.start", regex : /\/\*/, push: "nested_comment"}, + {token : "comment.end", regex : "\\*\\/", next : "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; + } + + + this.$rules = { + start: [ + string('"', { + escape: /\\(?:[0\\tnr"']|u{[a-fA-F1-9]{0,8}})/, + interpolation: {lead: "\\", open: "(", close: ")"}, + error: /\\./, + multiline: false + }), + comments({type: "c", nestable: true}), + { + regex: /@[a-zA-Z_$][a-zA-Z_$\d\u0080-\ufffe]*/, + token: "variable.parameter" + }, + { + regex: /[a-zA-Z_$][a-zA-Z_$\d\u0080-\ufffe]*/, + token: keywordMapper + }, + { + token : "constant.numeric", + regex : /[+-]?(?:0(?:b[01]+|o[0-7]+|x[\da-fA-F])|\d+(?:(?:\.\d*)?(?:[PpEe][+-]?\d+)?)\b)/ + }, { + token : "keyword.operator", + regex : /--|\+\+|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + } + + ] + }; + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); + + this.normalizeRules(); +}; + + +oop.inherits(SwiftHighlightRules, TextHighlightRules); + +exports.HighlightRules = SwiftHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/swift",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/swift_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./swift_highlight_rules").HighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = new CstyleBehaviour(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/", nestable: true}; + + this.$id = "ace/mode/swift" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-swig.js b/htdocs/includes/ace/mode-swig.js new file mode 100644 index 00000000000..2b2061777cd --- /dev/null +++ b/htdocs/includes/ace/mode-swig.js @@ -0,0 +1,1099 @@ +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "animation-fill-mode|alignment-adjust|alignment-baseline|animation-delay|animation-direction|animation-duration|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|animation|appearance|azimuth|backface-visibility|background-attachment|background-break|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|background|baseline-shift|binding|bleed|bookmark-label|bookmark-level|bookmark-state|bookmark-target|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|border|bottom|box-align|box-decoration-break|box-direction|box-flex-group|box-flex|box-lines|box-ordinal-group|box-orient|box-pack|box-shadow|box-sizing|break-after|break-before|break-inside|caption-side|clear|clip|color-profile|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|crop|cue-after|cue-before|cue|cursor|direction|display|dominant-baseline|drop-initial-after-adjust|drop-initial-after-align|drop-initial-before-adjust|drop-initial-before-align|drop-initial-size|drop-initial-value|elevation|empty-cells|fit|fit-position|float-offset|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|grid-columns|grid-rows|hanging-punctuation|height|hyphenate-after|hyphenate-before|hyphenate-character|hyphenate-lines|hyphenate-resource|hyphens|icon|image-orientation|image-rendering|image-resolution|inline-box-align|left|letter-spacing|line-height|line-stacking-ruby|line-stacking-shift|line-stacking-strategy|line-stacking|list-style-image|list-style-position|list-style-type|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|mark-after|mark-before|mark|marks|marquee-direction|marquee-play-count|marquee-speed|marquee-style|max-height|max-width|min-height|min-width|move-to|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|orphans|outline-color|outline-offset|outline-style|outline-width|outline|overflow-style|overflow-x|overflow-y|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page-break-after|page-break-before|page-break-inside|page-policy|page|pause-after|pause-before|pause|perspective-origin|perspective|phonemes|pitch-range|pitch|play-during|pointer-events|position|presentation-level|punctuation-trim|quotes|rendering-intent|resize|rest-after|rest-before|rest|richness|right|rotation-point|rotation|ruby-align|ruby-overhang|ruby-position|ruby-span|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|string-set|table-layout|target-name|target-new|target-position|target|text-align-last|text-align|text-decoration|text-emphasis|text-height|text-indent|text-justify|text-outline|text-shadow|text-transform|text-wrap|top|transform-origin|transform-style|transform|transition-delay|transition-duration|transition-property|transition-timing-function|transition|unicode-bidi|vertical-align|visibility|voice-balance|voice-duration|voice-family|voice-pitch-range|voice-pitch|voice-rate|voice-stress|voice-volume|volume|white-space-collapse|white-space|widows|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+)|(?:[0-9]*\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + token : "comment", // multi line comment + regex : "\\/\\*", + push : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + push: "ruleset" + }, { + token: "string", + regex: "@.*?{", + push: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media" : [{ + token : "comment", // multi line comment + regex : "\\/\\*", + push : "comment" + }, { + token: "paren.lparen", + regex: "\\{", + push: "ruleset" + }, { + token: "string", + regex: "\\}", + next: "pop" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "comment" : [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }], + + "ruleset" : [ + { + token : "paren.rparen", + regex : "\\}", + next: "pop" + }, { + token : "comment", // multi line comment + regex : "\\/\\*", + push : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + token : ["support.function", "string", "support.function"], + regex : "(url\\()(.*)(\\))" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }] + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-6][0-7]?|" + // oct + "37[0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + { + token : "comment", + regex : "\\/\\/", + next : "line_comment" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : /\/\*/, + next : "comment" + }, { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hex + regex : /0[xX][0-9a-fA-F]+\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?\b/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment_regex_allowed" + }, { + token : "comment", + regex : "\\/\\/", + next : "line_comment_regex_allowed" + }, { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "comment_regex_allowed" : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : "start"}, + {defaultToken : "comment", caseInsensitive: true} + ], + "comment" : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : "no_regex"}, + {defaultToken : "comment", caseInsensitive: true} + ], + "line_comment_regex_allowed" : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : "start"}, + {defaultToken : "comment", caseInsensitive: true} + ], + "line_comment" : [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : "no_regex"}, + {defaultToken : "comment", caseInsensitive: true} + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + next : "qstring" + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + return "paren"; + } + if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || !options.noJSX) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + jsxJsRule, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + jsxJsRule, + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.xml-decl.xml", "keyword.xml-decl.xml"], + regex : "(<\\?)(xml)(?=[\\s])", next : "xml_decl", caseInsensitive: true + }, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction", + }, + {token : "comment.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + processing_instruction : [ + {token : "punctuation.instruction.xml", regex : "\\?>", next : "start"}, + {defaultToken : "instruction.xml"} + ], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : "(?:" + tagRegex + ":)?" + tagRegex + "" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ], + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({noJSX: true}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/swig",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var SwigHighlightRules = function() { + HtmlHighlightRules.call(this); + + var tags = "autoescape|block|else|elif|extends|filter|for|if|import|include|macro|parent|raw|set|spaceless"; + tags = tags + "|end" + tags.replace(/\|/g, "|end"); + var filters = "addslashes|capitalize|date|default|escape|first|groupBy|join|json|last|lower|raw|replace|reverse|safe|sort|striptags|title|uniq|upper|url_encode|url_decode"; + var special = "first|last|index|index0|revindex|revindex0|key" + var constants = "null|none|true|false|loop"; + var operators = "in|is|and|or|not|as|with|only"; + + var keywordMapper = this.createKeywordMapper({ + "keyword.control.swig": tags, + "support.function.swig": filters+"|"+special, + "keyword.operator.swig": operators, + "constant.language.swig": constants, + }, "identifier"); + for (var rule in this.$rules) { + this.$rules[rule].unshift({ + token : "variable.other.readwrite.local.swig", + regex : "\\{\\{-?", + push : "swig-start" + }, { + token : "meta.tag.swig", + regex : "\\{%-?", + push : "swig-start" + }, { + token : "comment.block.swig", + regex : "\\{#-?", + push : "swig-comment" + }); + } + this.$rules["swig-comment"] = [{ + token : "comment.block.swig", + regex : ".*-?#}", + next : "pop" + }]; + + this.$rules["swig-start"] = [{ + token : "variable.other.readwrite.local.swig", + regex : "-?\\}\\}", + next : "pop" + }, { + token : "meta.tag.swig", + regex : "-?%\\}", + next : "pop" + }, { + token : "string", + regex : "'", + next : "swig-qstring" + }, { + token : "string", + regex : '"', + next : "swig-qqstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator.assignment", + regex : "=|~" + }, { + token : "keyword.operator.comparison", + regex : "==|!=|<|>|>=|<=|===" + }, { + token : "keyword.operator.arithmetic", + regex : "\\+|-|/|%|//|\\*|\\*\\*" + }, { + token : "keyword.operator.other", + regex : "\\.\\.|\\|" + }, { + token : "punctuation.operator", + regex : /\?|\:|\,|\;|\./ + }, { + token : "paren.lparen", + regex : /[\[\({]/ + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "text", + regex : "\\s+" + } ]; + + this.$rules["swig-qqstring"] = [{ + token : "constant.language.escape", + regex : /\\[\\"$#ntr]|#{[^"}]*}/ + }, { + token : "string", + regex : '"', + next : "swig-start" + }, { + defaultToken : "string" + } + ]; + + this.$rules["swig-qstring"] = [{ + token : "constant.language.escape", + regex : /\\[\\'ntr]}/ + }, { + token : "string", + regex : "'", + next : "swig-start" + }, { + defaultToken : "string" + } + ]; + + this.normalizeRules(); +}; + +oop.inherits(SwigHighlightRules, TextHighlightRules); + +exports.SwigHighlightRules = SwigHighlightRules; +}); diff --git a/htdocs/includes/ace/mode-tcl.js b/htdocs/includes/ace/mode-tcl.js new file mode 100644 index 00000000000..1f878c31d49 --- /dev/null +++ b/htdocs/includes/ace/mode-tcl.js @@ -0,0 +1,376 @@ +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/tcl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TclHighlightRules = function() { + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*\\\\$", + next : "commentfollow" + }, { + token : "comment", + regex : "#.*$" + }, { + token : "support.function", + regex : '[\\\\]$', + next : "splitlineStart" + }, { + token : "text", + regex : /\\(?:["{}\[\]$\\])/ + }, { + token : "text", // last value before command + regex : '^|[^{][;][^}]|[/\r/]', + next : "commandItem" + }, { + token : "string", // single line + regex : '[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line """ string start + regex : '[ ]*["]', + next : "qqstring" + }, { + token : "variable.instance", + regex : "[$]", + next : "variable" + }, { + token : "support.function", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::" + }, { + token : "identifier", + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "paren.lparen", + regex : "[[{]", + next : "commandItem" + }, { + token : "paren.lparen", + regex : "[(]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "commandItem" : [ + { + token : "comment", + regex : "#.*\\\\$", + next : "commentfollow" + }, { + token : "comment", + regex : "#.*$", + next : "start" + }, { + token : "string", // single line + regex : '[ ]*["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "variable.instance", + regex : "[$]", + next : "variable" + }, { + token : "support.function", + regex : "(?:[:][:])[a-zA-Z0-9_/]+(?:[:][:])", + next : "commandItem" + }, { + token : "support.function", + regex : "[a-zA-Z0-9_/]+(?:[:][:])", + next : "commandItem" + }, { + token : "support.function", + regex : "(?:[:][:])", + next : "commandItem" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "support.function", + regex : "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|{\\*}|;|::" + }, { + token : "keyword", + regex : "[a-zA-Z0-9_/]+", + next : "start" + } ], + "commentfollow" : [ + { + token : "comment", + regex : ".*\\\\$", + next : "commentfollow" + }, { + token : "comment", + regex : '.+', + next : "start" + } ], + "splitlineStart" : [ + { + token : "text", + regex : "^.", + next : "start" + }], + "variable" : [ + { + token : "variable.instance", // variable tcl + regex : "[a-zA-Z_\\d]+(?:[(][a-zA-Z_\\d]+[)])?", + next : "start" + }, { + token : "variable.instance", // variable tcl with braces + regex : "{?[a-zA-Z_\\d]+}?", + next : "start" + }], + "qqstring" : [ { + token : "string", // multi line """ string end + regex : '(?:[^\\\\]|\\\\.)*?["]', + next : "start" + }, { + token : "string", + regex : '.+' + } ] + }; +}; + +oop.inherits(TclHighlightRules, TextHighlightRules); + +exports.TclHighlightRules = TclHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/tcl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/folding/cstyle","ace/mode/tcl_highlight_rules","ace/mode/matching_brace_outdent","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var TclHighlightRules = require("./tcl_highlight_rules").TclHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = TclHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new CStyleFoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/tcl"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-tex.js b/htdocs/includes/ace/mode-tex.js new file mode 100644 index 00000000000..f4f13baa179 --- /dev/null +++ b/htdocs/includes/ace/mode-tex.js @@ -0,0 +1,152 @@ +ace.define("ace/mode/tex_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TexHighlightRules = function(textClass) { + + if (!textClass) + textClass = "text"; + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "%.*$" + }, { + token : textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b", + next : "nospell" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])}]" + }, { + token : textClass, + regex : "\\s+" + } + ], + "nospell" : [ + { + token : "comment", + regex : "%.*$", + next : "start" + }, { + token : "nospell." + textClass, // non-command + regex : "\\\\[$&%#\\{\\}]" + }, { + token : "keyword", // command + regex : "\\\\(?:documentclass|usepackage|newcounter|setcounter|addtocounter|value|arabic|stepcounter|newenvironment|renewenvironment|ref|vref|eqref|pageref|label|cite[a-zA-Z]*|tag|begin|end|bibitem)\\b" + }, { + token : "keyword", // command + regex : "\\\\(?:[a-zA-Z0-9]+|[^a-zA-Z0-9])", + next : "start" + }, { + token : "paren.keyword.operator", + regex : "[[({]" + }, { + token : "paren.keyword.operator", + regex : "[\\])]" + }, { + token : "paren.keyword.operator", + regex : "}", + next : "start" + }, { + token : "nospell." + textClass, + regex : "\\s+" + }, { + token : "nospell." + textClass, + regex : "\\w+" + } + ] + }; +}; + +oop.inherits(TexHighlightRules, TextHighlightRules); + +exports.TexHighlightRules = TexHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/tex",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/tex_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var TexHighlightRules = require("./tex_highlight_rules").TexHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function(suppressHighlighting) { + if (suppressHighlighting) + this.HighlightRules = TextHighlightRules; + else + this.HighlightRules = TexHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "%"; + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.allowAutoInsert = function() { + return false; + }; + this.$id = "ace/mode/tex"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-text.js b/htdocs/includes/ace/mode-text.js new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/htdocs/includes/ace/mode-text.js @@ -0,0 +1 @@ + diff --git a/htdocs/includes/ace/mode-textile.js b/htdocs/includes/ace/mode-textile.js new file mode 100644 index 00000000000..94ed5c778dc --- /dev/null +++ b/htdocs/includes/ace/mode-textile.js @@ -0,0 +1,142 @@ +ace.define("ace/mode/textile_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TextileHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : function(value) { + if (value.charAt(0) == "h") + return "markup.heading." + value.charAt(1); + else + return "markup.heading"; + }, + regex : "h1|h2|h3|h4|h5|h6|bq|p|bc|pre", + next : "blocktag" + }, + { + token : "keyword", + regex : "[\\*]+|[#]+" + }, + { + token : "text", + regex : ".+" + } + ], + "blocktag" : [ + { + token : "keyword", + regex : "\\. ", + next : "start" + }, + { + token : "keyword", + regex : "\\(", + next : "blocktagproperties" + } + ], + "blocktagproperties" : [ + { + token : "keyword", + regex : "\\)", + next : "blocktag" + }, + { + token : "string", + regex : "[a-zA-Z0-9\\-_]+" + }, + { + token : "keyword", + regex : "#" + } + ] + }; +}; + +oop.inherits(TextileHighlightRules, TextHighlightRules); + +exports.TextileHighlightRules = TextileHighlightRules; + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/textile",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/textile_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextileHighlightRules = require("./textile_highlight_rules").TextileHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = TextileHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.type = "text"; + this.getNextLineIndent = function(state, line, tab) { + if (state == "intag") + return tab; + + return ""; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.$id = "ace/mode/textile"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-toml.js b/htdocs/includes/ace/mode-toml.js new file mode 100644 index 00000000000..2f348937d89 --- /dev/null +++ b/htdocs/includes/ace/mode-toml.js @@ -0,0 +1,146 @@ +ace.define("ace/mode/toml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TomlHighlightRules = function() { + var keywordMapper = this.createKeywordMapper({ + "constant.language.boolean": "true|false" + }, "identifier"); + + var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*\\b"; + + this.$rules = { + "start": [ + { + token: "comment.toml", + regex: /#.*$/ + }, + { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, + { + token: ["variable.keygroup.toml"], + regex: "(?:^\\s*)(\\[\\[([^\\]]+)\\]\\])" + }, + { + token: ["variable.keygroup.toml"], + regex: "(?:^\\s*)(\\[([^\\]]+)\\])" + }, + { + token : keywordMapper, + regex : identifierRe + }, + { + token : "support.date.toml", + regex: "\\d{4}-\\d{2}-\\d{2}(T)\\d{2}:\\d{2}:\\d{2}(Z)" + }, + { + token: "constant.numeric.toml", + regex: "-?\\d+(\\.?\\d+)?" + } + ], + "qqstring" : [ + { + token : "string", + regex : "\\\\$", + next : "qqstring" + }, + { + token : "constant.language.escape", + regex : '\\\\[0tnr"\\\\]' + }, + { + token : "string", + regex : '"|$', + next : "start" + }, + { + defaultToken: "string" + } + ] + } + +}; + +oop.inherits(TomlHighlightRules, TextHighlightRules); + +exports.TomlHighlightRules = TomlHighlightRules; +}); + +ace.define("ace/mode/folding/ini",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function() { +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /^\s*\[([^\])]*)]\s*(?:$|[;#])/; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var re = this.foldingStartMarker; + var line = session.getLine(row); + + var m = line.match(re); + + if (!m) return; + + var startName = m[1] + "."; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + if (/^\s*$/.test(line)) + continue; + m = line.match(re); + if (m && m[1].lastIndexOf(startName, 0) !== 0) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/toml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/toml_highlight_rules","ace/mode/folding/ini"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TomlHighlightRules = require("./toml_highlight_rules").TomlHighlightRules; +var FoldMode = require("./folding/ini").FoldMode; + +var Mode = function() { + this.HighlightRules = TomlHighlightRules; + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "#"; + this.$id = "ace/mode/toml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-tsx.js b/htdocs/includes/ace/mode-tsx.js new file mode 100644 index 00000000000..9db47ac0b98 --- /dev/null +++ b/htdocs/includes/ace/mode-tsx.js @@ -0,0 +1,891 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/typescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; + +var TypeScriptHighlightRules = function(options) { + + var tsRules = [ + { + token: ["keyword.operator.ts", "text", "variable.parameter.function.ts", "text"], + regex: "\\b(module)(\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*\\{)" + }, + { + token: ["storage.type.variable.ts", "text", "keyword.other.ts", "text"], + regex: "(super)(\\s*\\()([a-zA-Z0-9,_?.$\\s]+\\s*)(\\))" + }, + { + token: ["entity.name.function.ts","paren.lparen", "paren.rparen"], + regex: "([a-zA-Z_?.$][\\w?.$]*)(\\()(\\))" + }, + { + token: ["variable.parameter.function.ts", "text", "variable.parameter.function.ts"], + regex: "([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*:\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)" + }, + { + token: ["keyword.operator.ts"], + regex: "(?:\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\b)" + }, + { + token: ["storage.type.variable.ts"], + regex: "(?:\\b(this\\.|string\\b|bool\\b|number)\\b)" + }, + { + token: ["keyword.operator.ts", "storage.type.variable.ts", "keyword.operator.ts", "storage.type.variable.ts"], + regex: "(class)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)(extends)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)?" + }, + { + token: "keyword", + regex: "(?:super|export|class|extends|import)\\b" + } + ]; + + var JSRules = new JavaScriptHighlightRules({jsx: (options && options.jsx) == true}).getRules(); + + JSRules.start = tsRules.concat(JSRules.start); + this.$rules = JSRules; +}; + +oop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules); + +exports.TypeScriptHighlightRules = TypeScriptHighlightRules; +}); + +ace.define("ace/mode/typescript",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/typescript_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var jsMode = require("./javascript").Mode; +var TypeScriptHighlightRules = require("./typescript_highlight_rules").TypeScriptHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = TypeScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, jsMode); + +(function() { + this.createWorker = function(session) { + return null; + }; + this.$id = "ace/mode/typescript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/tsx",["require","exports","module","ace/lib/oop","ace/mode/typescript"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var tsMode = require("./typescript").Mode; + +var Mode = function() { + tsMode.call(this); + this.$highlightRuleConfig = {jsx: true}; +}; +oop.inherits(Mode, tsMode); + +(function() { + this.$id = "ace/mode/tsx"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-turtle.js b/htdocs/includes/ace/mode-turtle.js new file mode 100644 index 00000000000..4eef543d2a8 --- /dev/null +++ b/htdocs/includes/ace/mode-turtle.js @@ -0,0 +1,289 @@ +ace.define("ace/mode/turtle_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TurtleHighlightRules = function() { + + this.$rules = { + start: [{ + include: "#comments" + }, { + include: "#strings" + }, { + include: "#base-prefix-declarations" + }, { + include: "#string-language-suffixes" + }, { + include: "#string-datatype-suffixes" + }, { + include: "#relative-urls" + }, { + include: "#xml-schema-types" + }, { + include: "#rdf-schema-types" + }, { + include: "#owl-types" + }, { + include: "#qnames" + }, { + include: "#punctuation-operators" + }], + "#base-prefix-declarations": [{ + token: "keyword.other.prefix.turtle", + regex: /@(?:base|prefix)/ + }], + "#comments": [{ + token: [ + "punctuation.definition.comment.turtle", + "comment.line.hash.turtle" + ], + regex: /(#)(.*$)/ + }], + "#owl-types": [{ + token: "support.type.datatype.owl.turtle", + regex: /owl:[a-zA-Z]+/ + }], + "#punctuation-operators": [{ + token: "keyword.operator.punctuation.turtle", + regex: /;|,|\.|\(|\)|\[|\]/ + }], + "#qnames": [{ + token: "entity.name.other.qname.turtle", + regex: /(?:[a-zA-Z][-_a-zA-Z0-9]*)?:(?:[_a-zA-Z][-_a-zA-Z0-9]*)?/ + }], + "#rdf-schema-types": [{ + token: "support.type.datatype.rdf.schema.turtle", + regex: /rdfs?:[a-zA-Z]+|(?:^|\s)a(?:\s|$)/ + }], + "#relative-urls": [{ + token: "string.quoted.other.relative.url.turtle", + regex: //, + next: "pop" + }, { + defaultToken: "string.quoted.other.relative.url.turtle" + }] + }], + "#string-datatype-suffixes": [{ + token: "keyword.operator.datatype.suffix.turtle", + regex: /\^\^/ + }], + "#string-language-suffixes": [{ + token: [ + "keyword.operator.language.suffix.turtle", + "constant.language.suffix.turtle" + ], + regex: /(?!")(@)([a-z]+(?:\-[a-z0-9]+)*)/ + }], + "#strings": [{ + token: "string.quoted.triple.turtle", + regex: /"""/, + push: [{ + token: "string.quoted.triple.turtle", + regex: /"""/, + next: "pop" + }, { + defaultToken: "string.quoted.triple.turtle" + }] + }, { + token: "string.quoted.double.turtle", + regex: /"/, + push: [{ + token: "string.quoted.double.turtle", + regex: /"/, + next: "pop" + }, { + token: "invalid.string.newline", + regex: /$/ + }, { + token: "constant.character.escape.turtle", + regex: /\\./ + }, { + defaultToken: "string.quoted.double.turtle" + }] + }], + "#xml-schema-types": [{ + token: "support.type.datatype.xml.schema.turtle", + regex: /xsd?:[a-z][a-zA-Z]+/ + }] + } + + this.normalizeRules(); +}; + +TurtleHighlightRules.metaData = { + fileTypes: ["ttl", "nt"], + name: "Turtle", + scopeName: "source.turtle" +} + + +oop.inherits(TurtleHighlightRules, TextHighlightRules); + +exports.TurtleHighlightRules = TurtleHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/turtle",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/turtle_highlight_rules","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TurtleHighlightRules = require("./turtle_highlight_rules").TurtleHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = TurtleHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.$id = "ace/mode/turtle" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-twig.js b/htdocs/includes/ace/mode-twig.js new file mode 100644 index 00000000000..557c124b671 --- /dev/null +++ b/htdocs/includes/ace/mode-twig.js @@ -0,0 +1,2664 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/twig_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/html_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var TwigHighlightRules = function() { + HtmlHighlightRules.call(this); + + var tags = "autoescape|block|do|embed|extends|filter|flush|for|from|if|import|include|macro|sandbox|set|spaceless|use|verbatim"; + tags = tags + "|end" + tags.replace(/\|/g, "|end"); + var filters = "abs|batch|capitalize|convert_encoding|date|date_modify|default|e|escape|first|format|join|json_encode|keys|last|length|lower|merge|nl2br|number_format|raw|replace|reverse|slice|sort|split|striptags|title|trim|upper|url_encode"; + var functions = "attribute|constant|cycle|date|dump|parent|random|range|template_from_string"; + var tests = "constant|divisibleby|sameas|defined|empty|even|iterable|odd"; + var constants = "null|none|true|false"; + var operators = "b-and|b-xor|b-or|in|is|and|or|not" + + var keywordMapper = this.createKeywordMapper({ + "keyword.control.twig": tags, + "support.function.twig": [filters, functions, tests].join("|"), + "keyword.operator.twig": operators, + "constant.language.twig": constants + }, "identifier"); + for (var rule in this.$rules) { + this.$rules[rule].unshift({ + token : "variable.other.readwrite.local.twig", + regex : "\\{\\{-?", + push : "twig-start" + }, { + token : "meta.tag.twig", + regex : "\\{%-?", + push : "twig-start" + }, { + token : "comment.block.twig", + regex : "\\{#-?", + push : "twig-comment" + }); + } + this.$rules["twig-comment"] = [{ + token : "comment.block.twig", + regex : ".*-?#\\}", + next : "pop" + }]; + + this.$rules["twig-start"] = [{ + token : "variable.other.readwrite.local.twig", + regex : "-?\\}\\}", + next : "pop" + }, { + token : "meta.tag.twig", + regex : "-?%\\}", + next : "pop" + }, { + token : "string", + regex : "'", + next : "twig-qstring" + }, { + token : "string", + regex : '"', + next : "twig-qqstring" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator.assignment", + regex : "=|~" + }, { + token : "keyword.operator.comparison", + regex : "==|!=|<|>|>=|<=|===" + }, { + token : "keyword.operator.arithmetic", + regex : "\\+|-|/|%|//|\\*|\\*\\*" + }, { + token : "keyword.operator.other", + regex : "\\.\\.|\\|" + }, { + token : "punctuation.operator", + regex : /\?|:|,|;|\./ + }, { + token : "paren.lparen", + regex : /[\[\({]/ + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token : "text", + regex : "\\s+" + } ]; + + this.$rules["twig-qqstring"] = [{ + token : "constant.language.escape", + regex : /\\[\\"$#ntr]|#{[^"}]*}/ + }, { + token : "string", + regex : '"', + next : "twig-start" + }, { + defaultToken : "string" + } + ]; + + this.$rules["twig-qstring"] = [{ + token : "constant.language.escape", + regex : /\\[\\'ntr]}/ + }, { + token : "string", + regex : "'", + next : "twig-start" + }, { + defaultToken : "string" + } + ]; + + this.normalizeRules(); +}; + +oop.inherits(TwigHighlightRules, TextHighlightRules); + +exports.TwigHighlightRules = TwigHighlightRules; +}); + +ace.define("ace/mode/twig",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/twig_highlight_rules","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var TwigHighlightRules = require("./twig_highlight_rules").TwigHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = TwigHighlightRules; + this.$outdent = new MatchingBraceOutdent(); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.blockComment = {start: "{#", end: "#}"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + this.$id = "ace/mode/twig"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-typescript.js b/htdocs/includes/ace/mode-typescript.js new file mode 100644 index 00000000000..1c1b697d928 --- /dev/null +++ b/htdocs/includes/ace/mode-typescript.js @@ -0,0 +1,872 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/typescript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/javascript_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; + +var TypeScriptHighlightRules = function(options) { + + var tsRules = [ + { + token: ["keyword.operator.ts", "text", "variable.parameter.function.ts", "text"], + regex: "\\b(module)(\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*\\{)" + }, + { + token: ["storage.type.variable.ts", "text", "keyword.other.ts", "text"], + regex: "(super)(\\s*\\()([a-zA-Z0-9,_?.$\\s]+\\s*)(\\))" + }, + { + token: ["entity.name.function.ts","paren.lparen", "paren.rparen"], + regex: "([a-zA-Z_?.$][\\w?.$]*)(\\()(\\))" + }, + { + token: ["variable.parameter.function.ts", "text", "variable.parameter.function.ts"], + regex: "([a-zA-Z0-9_?.$][\\w?.$]*)(\\s*:\\s*)([a-zA-Z0-9_?.$][\\w?.$]*)" + }, + { + token: ["keyword.operator.ts"], + regex: "(?:\\b(constructor|declare|interface|as|AS|public|private|class|extends|export|super)\\b)" + }, + { + token: ["storage.type.variable.ts"], + regex: "(?:\\b(this\\.|string\\b|bool\\b|number)\\b)" + }, + { + token: ["keyword.operator.ts", "storage.type.variable.ts", "keyword.operator.ts", "storage.type.variable.ts"], + regex: "(class)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)(extends)(\\s+[a-zA-Z0-9_?.$][\\w?.$]*\\s+)?" + }, + { + token: "keyword", + regex: "(?:super|export|class|extends|import)\\b" + } + ]; + + var JSRules = new JavaScriptHighlightRules({jsx: (options && options.jsx) == true}).getRules(); + + JSRules.start = tsRules.concat(JSRules.start); + this.$rules = JSRules; +}; + +oop.inherits(TypeScriptHighlightRules, JavaScriptHighlightRules); + +exports.TypeScriptHighlightRules = TypeScriptHighlightRules; +}); + +ace.define("ace/mode/typescript",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/typescript_highlight_rules","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var jsMode = require("./javascript").Mode; +var TypeScriptHighlightRules = require("./typescript_highlight_rules").TypeScriptHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = TypeScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, jsMode); + +(function() { + this.createWorker = function(session) { + return null; + }; + this.$id = "ace/mode/typescript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-vala.js b/htdocs/includes/ace/mode-vala.js new file mode 100644 index 00000000000..75340fb4c86 --- /dev/null +++ b/htdocs/includes/ace/mode-vala.js @@ -0,0 +1,669 @@ +ace.define("ace/mode/vala_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var ValaHighlightRules = function() { + + this.$rules = { start: + [ { token: + [ 'meta.using.vala', + 'keyword.other.using.vala', + 'meta.using.vala', + 'storage.modifier.using.vala', + 'meta.using.vala', + 'punctuation.terminator.vala' ], + regex: '^(\\s*)(using)\\b(?:(\\s*)([^ ;$]+)(\\s*)((?:;)?))?' }, + { include: '#code' } ], + '#all-types': + [ { include: '#primitive-arrays' }, + { include: '#primitive-types' }, + { include: '#object-types' } ], + '#annotations': + [ { token: + [ 'storage.type.annotation.vala', + 'punctuation.definition.annotation-arguments.begin.vala' ], + regex: '(@[^ (]+)(\\()', + push: + [ { token: 'punctuation.definition.annotation-arguments.end.vala', + regex: '\\)', + next: 'pop' }, + { token: + [ 'constant.other.key.vala', + 'text', + 'keyword.operator.assignment.vala' ], + regex: '(\\w*)(\\s*)(=)' }, + { include: '#code' }, + { token: 'punctuation.seperator.property.vala', regex: ',' }, + { defaultToken: 'meta.declaration.annotation.vala' } ] }, + { token: 'storage.type.annotation.vala', regex: '@\\w*' } ], + '#anonymous-classes-and-new': + [ { token: 'keyword.control.new.vala', + regex: '\\bnew\\b', + push_disabled: + [ { token: 'text', + regex: '(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?<=\\)|\\])(?!\\s*{)|(?<=})|(?=;)', + next: 'pop' }, + { token: [ 'storage.type.vala', 'text' ], + regex: '(\\w+)(\\s*)(?=\\[)', + push: + [ { token: 'text', regex: '}|(?=;|\\))', next: 'pop' }, + { token: 'text', + regex: '\\[', + push: + [ { token: 'text', regex: '\\]', next: 'pop' }, + { include: '#code' } ] }, + { token: 'text', + regex: '{', + push: + [ { token: 'text', regex: '(?=})', next: 'pop' }, + { include: '#code' } ] } ] }, + { token: 'text', + regex: '(?=\\w.*\\()', + push: + [ { token: 'text', + regex: '(?<=\\))', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '(?<=\\))', + next: 'pop' }, + { include: '#object-types' }, + { token: 'text', + regex: '\\(', + push: + [ { token: 'text', regex: '\\)', next: 'pop' }, + { include: '#code' } ] } ] }, + { token: 'meta.inner-class.vala', + regex: '{', + push: + [ { token: 'meta.inner-class.vala', regex: '}', next: 'pop' }, + { include: '#class-body' }, + { defaultToken: 'meta.inner-class.vala' } ] } ] } ], + '#assertions': + [ { token: + [ 'keyword.control.assert.vala', + 'meta.declaration.assertion.vala' ], + regex: '\\b(assert|requires|ensures)(\\s)', + push: + [ { token: 'meta.declaration.assertion.vala', + regex: '$', + next: 'pop' }, + { token: 'keyword.operator.assert.expression-seperator.vala', + regex: ':' }, + { include: '#code' }, + { defaultToken: 'meta.declaration.assertion.vala' } ] } ], + '#class': + [ { token: 'meta.class.vala', + regex: '(?=\\w?[\\w\\s]*(?:class|(?:@)?interface|enum|struct|namespace)\\s+\\w+)', + push: + [ { token: 'paren.vala', + regex: '}', + next: 'pop' }, + { include: '#storage-modifiers' }, + { include: '#comments' }, + { token: + [ 'storage.modifier.vala', + 'meta.class.identifier.vala', + 'entity.name.type.class.vala' ], + regex: '(class|(?:@)?interface|enum|struct|namespace)(\\s+)([\\w\\.]+)' }, + { token: 'storage.modifier.extends.vala', + regex: ':', + push: + [ { token: 'meta.definition.class.inherited.classes.vala', + regex: '(?={|,)', + next: 'pop' }, + { include: '#object-types-inherited' }, + { include: '#comments' }, + { defaultToken: 'meta.definition.class.inherited.classes.vala' } ] }, + { token: + [ 'storage.modifier.implements.vala', + 'meta.definition.class.implemented.interfaces.vala' ], + regex: '(,)(\\s)', + push: + [ { token: 'meta.definition.class.implemented.interfaces.vala', + regex: '(?=\\{)', + next: 'pop' }, + { include: '#object-types-inherited' }, + { include: '#comments' }, + { defaultToken: 'meta.definition.class.implemented.interfaces.vala' } ] }, + { token: 'paren.vala', + regex: '{', + push: + [ { token: 'paren.vala', regex: '(?=})', next: 'pop' }, + { include: '#class-body' }, + { defaultToken: 'meta.class.body.vala' } ] }, + { defaultToken: 'meta.class.vala' } ], + comment: 'attempting to put namespace in here.' } ], + '#class-body': + [ { include: '#comments' }, + { include: '#class' }, + { include: '#enums' }, + { include: '#methods' }, + { include: '#annotations' }, + { include: '#storage-modifiers' }, + { include: '#code' } ], + '#code': + [ { include: '#comments' }, + { include: '#class' }, + { token: 'text', + regex: '{', + push: + [ { token: 'text', regex: '}', next: 'pop' }, + { include: '#code' } ] }, + { include: '#assertions' }, + { include: '#parens' }, + { include: '#constants-and-special-vars' }, + { include: '#anonymous-classes-and-new' }, + { include: '#keywords' }, + { include: '#storage-modifiers' }, + { include: '#strings' }, + { include: '#all-types' } ], + '#comments': + [ { token: 'punctuation.definition.comment.vala', + regex: '/\\*\\*/' }, + { include: 'text.html.javadoc' }, + { include: '#comments-inline' } ], + '#comments-inline': + [ { token: 'punctuation.definition.comment.vala', + regex: '/\\*', + push: + [ { token: 'punctuation.definition.comment.vala', + regex: '\\*/', + next: 'pop' }, + { defaultToken: 'comment.block.vala' } ] }, + { token: + [ 'text', + 'punctuation.definition.comment.vala', + 'comment.line.double-slash.vala' ], + regex: '(\\s*)(//)(.*$)' } ], + '#constants-and-special-vars': + [ { token: 'constant.language.vala', + regex: '\\b(?:true|false|null)\\b' }, + { token: 'variable.language.vala', + regex: '\\b(?:this|base)\\b' }, + { token: 'constant.numeric.vala', + regex: '\\b(?:0(?:x|X)[0-9a-fA-F]*|(?:[0-9]+\\.?[0-9]*|\\.[0-9]+)(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:[LlFfUuDd]|UL|ul)?\\b' }, + { token: [ 'keyword.operator.dereference.vala', 'constant.other.vala' ], + regex: '((?:\\.)?)\\b([A-Z][A-Z0-9_]+)(?!<|\\.class|\\s*\\w+\\s*=)\\b' } ], + '#enums': + [ { token: 'text', + regex: '^(?=\\s*[A-Z0-9_]+\\s*(?:{|\\(|,))', + push: + [ { token: 'text', regex: '(?=;|})', next: 'pop' }, + { token: 'constant.other.enum.vala', + regex: '\\w+', + push: + [ { token: 'meta.enum.vala', regex: '(?=,|;|})', next: 'pop' }, + { include: '#parens' }, + { token: 'text', + regex: '{', + push: + [ { token: 'text', regex: '}', next: 'pop' }, + { include: '#class-body' } ] }, + { defaultToken: 'meta.enum.vala' } ] } ] } ], + '#keywords': + [ { token: 'keyword.control.catch-exception.vala', + regex: '\\b(?:try|catch|finally|throw)\\b' }, + { token: 'keyword.control.vala', regex: '\\?|:|\\?\\?' }, + { token: 'keyword.control.vala', + regex: '\\b(?:return|break|case|continue|default|do|while|for|foreach|switch|if|else|in|yield|get|set|value)\\b' }, + { token: 'keyword.operator.vala', + regex: '\\b(?:typeof|is|as)\\b' }, + { token: 'keyword.operator.comparison.vala', + regex: '==|!=|<=|>=|<>|<|>' }, + { token: 'keyword.operator.assignment.vala', regex: '=' }, + { token: 'keyword.operator.increment-decrement.vala', + regex: '\\-\\-|\\+\\+' }, + { token: 'keyword.operator.arithmetic.vala', + regex: '\\-|\\+|\\*|\\/|%' }, + { token: 'keyword.operator.logical.vala', regex: '!|&&|\\|\\|' }, + { token: 'keyword.operator.dereference.vala', + regex: '\\.(?=\\S)', + originalRegex: '(?<=\\S)\\.(?=\\S)' }, + { token: 'punctuation.terminator.vala', regex: ';' }, + { token: 'keyword.operator.ownership', regex: 'owned|unowned' } ], + '#methods': + [ { token: 'meta.method.vala', + regex: '(?!new)(?=\\w.*\\s+)(?=[^=]+\\()', + push: + [ { token: 'paren.vala', regex: '}|(?=;)', next: 'pop' }, + { include: '#storage-modifiers' }, + { token: [ 'entity.name.function.vala', 'meta.method.identifier.vala' ], + regex: '([\\~\\w\\.]+)(\\s*\\()', + push: + [ { token: 'meta.method.identifier.vala', + regex: '\\)', + next: 'pop' }, + { include: '#parameters' }, + { defaultToken: 'meta.method.identifier.vala' } ] }, + { token: 'meta.method.return-type.vala', + regex: '(?=\\w.*\\s+\\w+\\s*\\()', + push: + [ { token: 'meta.method.return-type.vala', + regex: '(?=\\w+\\s*\\()', + next: 'pop' }, + { include: '#all-types' }, + { defaultToken: 'meta.method.return-type.vala' } ] }, + { include: '#throws' }, + { token: 'paren.vala', + regex: '{', + push: + [ { token: 'paren.vala', regex: '(?=})', next: 'pop' }, + { include: '#code' }, + { defaultToken: 'meta.method.body.vala' } ] }, + { defaultToken: 'meta.method.vala' } ] } ], + '#namespace': + [ { token: 'text', + regex: '^(?=\\s*[A-Z0-9_]+\\s*(?:{|\\(|,))', + push: + [ { token: 'text', regex: '(?=;|})', next: 'pop' }, + { token: 'constant.other.namespace.vala', + regex: '\\w+', + push: + [ { token: 'meta.namespace.vala', regex: '(?=,|;|})', next: 'pop' }, + { include: '#parens' }, + { token: 'text', + regex: '{', + push: + [ { token: 'text', regex: '}', next: 'pop' }, + { include: '#code' } ] }, + { defaultToken: 'meta.namespace.vala' } ] } ], + comment: 'This is not quite right. See the class grammar right now' } ], + '#object-types': + [ { token: 'storage.type.generic.vala', + regex: '\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*<', + push: + [ { token: 'storage.type.generic.vala', + regex: '>|[^\\w\\s,\\?<\\[()\\]]', + TODO: 'FIXME: regexp doesn\'t have js equivalent', + originalRegex: '>|[^\\w\\s,\\?<\\[(?:[,]+)\\]]', + next: 'pop' }, + { include: '#object-types' }, + { token: 'storage.type.generic.vala', + regex: '<', + push: + [ { token: 'storage.type.generic.vala', + regex: '>|[^\\w\\s,\\[\\]<]', + next: 'pop' }, + { defaultToken: 'storage.type.generic.vala' } ], + comment: 'This is just to support <>\'s with no actual type prefix' }, + { defaultToken: 'storage.type.generic.vala' } ] }, + { token: 'storage.type.object.array.vala', + regex: '\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*(?=\\[)', + push: + [ { token: 'storage.type.object.array.vala', + regex: '(?=[^\\]\\s])', + next: 'pop' }, + { token: 'text', + regex: '\\[', + push: + [ { token: 'text', regex: '\\]', next: 'pop' }, + { include: '#code' } ] }, + { defaultToken: 'storage.type.object.array.vala' } ] }, + { token: + [ 'storage.type.vala', + 'keyword.operator.dereference.vala', + 'storage.type.vala' ], + regex: '\\b(?:([a-z]\\w*)(\\.))*([A-Z]+\\w*\\b)' } ], + '#object-types-inherited': + [ { token: 'entity.other.inherited-class.vala', + regex: '\\b(?:[a-z]\\w*\\.)*[A-Z]+\\w*<', + push: + [ { token: 'entity.other.inherited-class.vala', + regex: '>|[^\\w\\s,<]', + next: 'pop' }, + { include: '#object-types' }, + { token: 'storage.type.generic.vala', + regex: '<', + push: + [ { token: 'storage.type.generic.vala', + regex: '>|[^\\w\\s,<]', + next: 'pop' }, + { defaultToken: 'storage.type.generic.vala' } ], + comment: 'This is just to support <>\'s with no actual type prefix' }, + { defaultToken: 'entity.other.inherited-class.vala' } ] }, + { token: + [ 'entity.other.inherited-class.vala', + 'keyword.operator.dereference.vala', + 'entity.other.inherited-class.vala' ], + regex: '\\b(?:([a-z]\\w*)(\\.))*([A-Z]+\\w*)' } ], + '#parameters': + [ { token: 'storage.modifier.vala', regex: 'final' }, + { include: '#primitive-arrays' }, + { include: '#primitive-types' }, + { include: '#object-types' }, + { token: 'variable.parameter.vala', regex: '\\w+' } ], + '#parens': + [ { token: 'text', + regex: '\\(', + push: + [ { token: 'text', regex: '\\)', next: 'pop' }, + { include: '#code' } ] } ], + '#primitive-arrays': + [ { token: 'storage.type.primitive.array.vala', + regex: '\\b(?:bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|int8|int16|int32|int64|uint8|uint16|uint32|uint64)(?:\\[\\])*\\b' } ], + '#primitive-types': + [ { token: 'storage.type.primitive.vala', + regex: '\\b(?:var|bool|byte|sbyte|char|decimal|double|float|int|uint|long|ulong|object|short|ushort|string|void|signal|int8|int16|int32|int64|uint8|uint16|uint32|uint64)\\b', + comment: 'var is not really a primitive, but acts like one in most cases' } ], + '#storage-modifiers': + [ { token: 'storage.modifier.vala', + regex: '\\b(?:public|private|protected|internal|static|final|sealed|virtual|override|abstract|readonly|volatile|dynamic|async|unsafe|out|ref|weak|owned|unowned|const)\\b', + comment: 'Not sure about unsafe and readonly' } ], + '#strings': + [ { token: 'punctuation.definition.string.begin.vala', + regex: '@"', + push: + [ { token: 'punctuation.definition.string.end.vala', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.vala', + regex: '\\\\.|%[\\w\\.\\-]+|\\$(?:\\w+|\\([\\w\\s\\+\\-\\*\\/]+\\))' }, + { defaultToken: 'string.quoted.interpolated.vala' } ] }, + { token: 'punctuation.definition.string.begin.vala', + regex: '"', + push: + [ { token: 'punctuation.definition.string.end.vala', + regex: '"', + next: 'pop' }, + { token: 'constant.character.escape.vala', regex: '\\\\.' }, + { token: 'constant.character.escape.vala', + regex: '%[\\w\\.\\-]+' }, + { defaultToken: 'string.quoted.double.vala' } ] }, + { token: 'punctuation.definition.string.begin.vala', + regex: '\'', + push: + [ { token: 'punctuation.definition.string.end.vala', + regex: '\'', + next: 'pop' }, + { token: 'constant.character.escape.vala', regex: '\\\\.' }, + { defaultToken: 'string.quoted.single.vala' } ] }, + { token: 'punctuation.definition.string.begin.vala', + regex: '"""', + push: + [ { token: 'punctuation.definition.string.end.vala', + regex: '"""', + next: 'pop' }, + { token: 'constant.character.escape.vala', + regex: '%[\\w\\.\\-]+' }, + { defaultToken: 'string.quoted.triple.vala' } ] } ], + '#throws': + [ { token: 'storage.modifier.vala', + regex: 'throws', + push: + [ { token: 'meta.throwables.vala', regex: '(?={|;)', next: 'pop' }, + { include: '#object-types' }, + { defaultToken: 'meta.throwables.vala' } ] } ], + '#values': + [ { include: '#strings' }, + { include: '#object-types' }, + { include: '#constants-and-special-vars' } ] } + + this.normalizeRules(); +}; + +ValaHighlightRules.metaData = { + comment: 'Based heavily on the Java bundle\'s language syntax. TODO:\n* Closures\n* Delegates\n* Properties: Better support for properties.\n* Annotations\n* Error domains\n* Named arguments\n* Array slicing, negative indexes, multidimensional\n* construct blocks\n* lock blocks?\n* regex literals\n* DocBlock syntax highlighting. (Currently importing javadoc)\n* Folding rule for comments.\n', + fileTypes: [ 'vala' ], + foldingStartMarker: '(\\{\\s*(//.*)?$|^\\s*// \\{\\{\\{)', + foldingStopMarker: '^\\s*(\\}|// \\}\\}\\}$)', + name: 'Vala', + scopeName: 'source.vala' } + + +oop.inherits(ValaHighlightRules, TextHighlightRules); + +exports.ValaHighlightRules = ValaHighlightRules; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/vala",["require","exports","module","ace/lib/oop","ace/mode/text","ace/tokenizer","ace/mode/vala_highlight_rules","ace/mode/folding/cstyle","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/mode/matching_brace_outdent"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var Tokenizer = require("../tokenizer").Tokenizer; +var ValaHighlightRules = require("./vala_highlight_rules").ValaHighlightRules; +var FoldMode = require("./folding/cstyle").FoldMode; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; + +var Mode = function() { + this.HighlightRules = ValaHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + this.$id = "ace/mode/vala" +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-vbscript.js b/htdocs/includes/ace/mode-vbscript.js new file mode 100644 index 00000000000..010be5be404 --- /dev/null +++ b/htdocs/includes/ace/mode-vbscript.js @@ -0,0 +1,199 @@ +ace.define("ace/mode/vbscript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var VBScriptHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "keyword.control.asp": "If|Then|Else|ElseIf|End|While|Wend|For|To|Each|Case|Select|Return" + + "|Continue|Do|Until|Loop|Next|With|Exit|Function|Property|Type|Enum|Sub|IIf", + "storage.type.asp": "Dim|Call|Class|Const|Dim|Redim|Set|Let|Get|New|Randomize|Option|Explicit", + "storage.modifier.asp": "Private|Public|Default", + "keyword.operator.asp": "Mod|And|Not|Or|Xor|as", + "constant.language.asp": "Empty|False|Nothing|Null|True", + "support.class.asp": "Application|ObjectContext|Request|Response|Server|Session", + "support.class.collection.asp": "Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables", + "support.constant.asp": "TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute" + + "|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout", + "support.function.asp": "Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog" + + "|BinaryWrite|Clear|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex", + "support.function.event.asp": "Application_OnEnd|Application_OnStart" + + "|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart", + "support.function.vb.asp": "Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng" + + "|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial" + + "|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency" + + "|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex" + + "|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric" + + "|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim" + + "|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace" + + "|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion" + + "|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse" + + "|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year", + "support.type.vb.asp": "vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|" + + "int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday" + + "|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek" + + "|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger" + + "|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant" + + "|vbDataObject|vbDecimal|vbByte|vbArray" + }, "identifier", true); + + this.$rules = { + "start": [ + { + token: [ + "meta.ending-space" + ], + regex: "$" + }, + { + token: [null], + regex: "^(?=\\t)", + next: "state_3" + }, + { + token: [null], + regex: "^(?= )", + next: "state_4" + }, + { + token: [ + "text", + "storage.type.function.asp", + "text", + "entity.name.function.asp", + "text", + "punctuation.definition.parameters.asp", + "variable.parameter.function.asp", + "punctuation.definition.parameters.asp" + ], + regex: "^(\\s*)(Function|Sub)(\\s+)([a-zA-Z_]\\w*)(\\s*)(\\()([^)]*)(\\))" + }, + { + token: "punctuation.definition.comment.asp", + regex: "'|REM(?=\\s|$)", + next: "comment", + caseInsensitive: true + }, + { + token: "storage.type.asp", + regex: "On Error Resume Next|On Error GoTo", + caseInsensitive: true + }, + { + token: "punctuation.definition.string.begin.asp", + regex: '"', + next: "string" + }, + { + token: [ + "punctuation.definition.variable.asp" + ], + regex: "(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*" + }, + { + token: "constant.numeric.asp", + regex: "-?\\b(?:(?:0(?:x|X)[0-9a-fA-F]*)|(?:(?:[0-9]+\\.?[0-9]*)|(?:\\.[0-9]+))(?:(?:e|E)(?:\\+|-)?[0-9]+)?)(?:L|l|UL|ul|u|U|F|f)?\\b" + }, + { + regex: "\\w+", + token: keywordMapper + }, + { + token: ["entity.name.function.asp"], + regex: "(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))" + }, + { + token: ["keyword.operator.asp"], + regex: "\\-|\\+|\\*\\/|\\>|\\<|\\=|\\&" + } + ], + "state_3": [ + { + token: [ + "meta.odd-tab.tabs", + "meta.even-tab.tabs" + ], + regex: "(\\t)(\\t)?" + }, + { + token: "meta.leading-space", + regex: "(?=[^\\t])", + next: "start" + }, + { + token: "meta.leading-space", + regex: ".", + next: "state_3" + } + ], + "state_4": [ + { + token: ["meta.odd-tab.spaces", "meta.even-tab.spaces"], + regex: "( )( )?" + }, + { + token: "meta.leading-space", + regex: "(?=[^ ])", + next: "start" + }, + { + defaultToken: "meta.leading-space" + } + ], + "comment": [ + { + token: "comment.line.apostrophe.asp", + regex: "$|(?=(?:%>))", + next: "start" + }, + { + defaultToken: "comment.line.apostrophe.asp" + } + ], + "string": [ + { + token: "constant.character.escape.apostrophe.asp", + regex: '""' + }, + { + token: "string.quoted.double.asp", + regex: '"', + next: "start" + }, + { + defaultToken: "string.quoted.double.asp" + } + ] +} + +}; + +oop.inherits(VBScriptHighlightRules, TextHighlightRules); + +exports.VBScriptHighlightRules = VBScriptHighlightRules; +}); + +ace.define("ace/mode/vbscript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vbscript_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var VBScriptHighlightRules = require("./vbscript_highlight_rules").VBScriptHighlightRules; + +var Mode = function() { + this.HighlightRules = VBScriptHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = ["'", "REM"]; + + this.$id = "ace/mode/vbscript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-velocity.js b/htdocs/includes/ace/mode-velocity.js new file mode 100644 index 00000000000..2a420b669d7 --- /dev/null +++ b/htdocs/includes/ace/mode-velocity.js @@ -0,0 +1,2762 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/css_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var supportType = exports.supportType = "align-content|align-items|align-self|all|animation|animation-delay|animation-direction|animation-duration|animation-fill-mode|animation-iteration-count|animation-name|animation-play-state|animation-timing-function|backface-visibility|background|background-attachment|background-blend-mode|background-clip|background-color|background-image|background-origin|background-position|background-repeat|background-size|border|border-bottom|border-bottom-color|border-bottom-left-radius|border-bottom-right-radius|border-bottom-style|border-bottom-width|border-collapse|border-color|border-image|border-image-outset|border-image-repeat|border-image-slice|border-image-source|border-image-width|border-left|border-left-color|border-left-style|border-left-width|border-radius|border-right|border-right-color|border-right-style|border-right-width|border-spacing|border-style|border-top|border-top-color|border-top-left-radius|border-top-right-radius|border-top-style|border-top-width|border-width|bottom|box-shadow|box-sizing|caption-side|clear|clip|color|column-count|column-fill|column-gap|column-rule|column-rule-color|column-rule-style|column-rule-width|column-span|column-width|columns|content|counter-increment|counter-reset|cursor|direction|display|empty-cells|filter|flex|flex-basis|flex-direction|flex-flow|flex-grow|flex-shrink|flex-wrap|float|font|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|hanging-punctuation|height|justify-content|left|letter-spacing|line-height|list-style|list-style-image|list-style-position|list-style-type|margin|margin-bottom|margin-left|margin-right|margin-top|max-height|max-width|min-height|min-width|nav-down|nav-index|nav-left|nav-right|nav-up|opacity|order|outline|outline-color|outline-offset|outline-style|outline-width|overflow|overflow-x|overflow-y|padding|padding-bottom|padding-left|padding-right|padding-top|page-break-after|page-break-before|page-break-inside|perspective|perspective-origin|position|quotes|resize|right|tab-size|table-layout|text-align|text-align-last|text-decoration|text-decoration-color|text-decoration-line|text-decoration-style|text-indent|text-justify|text-overflow|text-shadow|text-transform|top|transform|transform-origin|transform-style|transition|transition-delay|transition-duration|transition-property|transition-timing-function|unicode-bidi|vertical-align|visibility|white-space|width|word-break|word-spacing|word-wrap|z-index"; +var supportFunction = exports.supportFunction = "rgb|rgba|url|attr|counter|counters"; +var supportConstant = exports.supportConstant = "absolute|after-edge|after|all-scroll|all|alphabetic|always|antialiased|armenian|auto|avoid-column|avoid-page|avoid|balance|baseline|before-edge|before|below|bidi-override|block-line-height|block|bold|bolder|border-box|both|bottom|box|break-all|break-word|capitalize|caps-height|caption|center|central|char|circle|cjk-ideographic|clone|close-quote|col-resize|collapse|column|consider-shifts|contain|content-box|cover|crosshair|cubic-bezier|dashed|decimal-leading-zero|decimal|default|disabled|disc|disregard-shifts|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ease-in|ease-in-out|ease-out|ease|ellipsis|end|exclude-ruby|fill|fixed|georgian|glyphs|grid-height|groove|hand|hanging|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|icon|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|ideographic|inactive|include-ruby|inherit|initial|inline-block|inline-box|inline-line-height|inline-table|inline|inset|inside|inter-ideograph|inter-word|invert|italic|justify|katakana-iroha|katakana|keep-all|last|left|lighter|line-edge|line-through|line|linear|list-item|local|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|mathematical|max-height|max-size|medium|menu|message-box|middle|move|n-resize|ne-resize|newspaper|no-change|no-close-quote|no-drop|no-open-quote|no-repeat|none|normal|not-allowed|nowrap|nw-resize|oblique|open-quote|outset|outside|overline|padding-box|page|pointer|pre-line|pre-wrap|pre|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|replaced|reset-size|ridge|right|round|row-resize|rtl|s-resize|scroll|se-resize|separate|slice|small-caps|small-caption|solid|space|square|start|static|status-bar|step-end|step-start|steps|stretch|strict|sub|super|sw-resize|table-caption|table-cell|table-column-group|table-column|table-footer-group|table-header-group|table-row-group|table-row|table|tb-rl|text-after-edge|text-before-edge|text-bottom|text-size|text-top|text|thick|thin|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|use-script|vertical-ideographic|vertical-text|visible|w-resize|wait|whitespace|z-index|zero"; +var supportConstantColor = exports.supportConstantColor = "aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen"; +var supportConstantFonts = exports.supportConstantFonts = "arial|century|comic|courier|cursive|fantasy|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace"; + +var numRe = exports.numRe = "\\-?(?:(?:[0-9]+(?:\\.[0-9]+)?)|(?:\\.[0-9]+))"; +var pseudoElements = exports.pseudoElements = "(\\:+)\\b(after|before|first-letter|first-line|moz-selection|selection)\\b"; +var pseudoClasses = exports.pseudoClasses = "(:)\\b(active|checked|disabled|empty|enabled|first-child|first-of-type|focus|hover|indeterminate|invalid|last-child|last-of-type|link|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|only-child|only-of-type|required|root|target|valid|visited)\\b"; + +var CssHighlightRules = function() { + + var keywordMapper = this.createKeywordMapper({ + "support.function": supportFunction, + "support.constant": supportConstant, + "support.type": supportType, + "support.constant.color": supportConstantColor, + "support.constant.fonts": supportConstantFonts + }, "text", true); + + this.$rules = { + "start" : [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "ruleset" + }, { + token: "paren.rparen", + regex: "\\}" + }, { + token: "string", + regex: "@", + next: "media" + }, { + token: "keyword", + regex: "#[a-z0-9-_]+" + }, { + token: "keyword", + regex: "%" + }, { + token: "variable", + regex: "\\.[a-z0-9-_]+" + }, { + token: "string", + regex: ":[a-z0-9-_]+" + }, { + token : "constant.numeric", + regex : numRe + }, { + token: "constant", + regex: "[a-z0-9-_]+" + }, { + caseInsensitive: true + }], + + "media": [{ + include : ["strings", "url", "comments"] + }, { + token: "paren.lparen", + regex: "\\{", + next: "start" + }, { + token: "paren.rparen", + regex: "\\}", + next: "start" + }, { + token: "string", + regex: ";", + next: "start" + }, { + token: "keyword", + regex: "(?:media|supports|document|charset|import|namespace|media|supports|document" + + "|page|font|keyframes|viewport|counter-style|font-feature-values" + + "|swash|ornaments|annotation|stylistic|styleset|character-variant)" + }], + + "comments" : [{ + token: "comment", // multi line comment + regex: "\\/\\*", + push: [{ + token : "comment", + regex : "\\*\\/", + next : "pop" + }, { + defaultToken : "comment" + }] + }], + + "ruleset" : [{ + regex : "-(webkit|ms|moz|o)-", + token : "text" + }, { + token : "paren.rparen", + regex : "\\}", + next : "start" + }, { + include : ["strings", "url", "comments"] + }, { + token : ["constant.numeric", "keyword"], + regex : "(" + numRe + ")(ch|cm|deg|em|ex|fr|gd|grad|Hz|in|kHz|mm|ms|pc|pt|px|rad|rem|s|turn|vh|vm|vw|%)" + }, { + token : "constant.numeric", + regex : numRe + }, { + token : "constant.numeric", // hex6 color + regex : "#[a-f0-9]{6}" + }, { + token : "constant.numeric", // hex3 color + regex : "#[a-f0-9]{3}" + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-element.css"], + regex : pseudoElements + }, { + token : ["punctuation", "entity.other.attribute-name.pseudo-class.css"], + regex : pseudoClasses + }, { + include: "url" + }, { + token : keywordMapper, + regex : "\\-?[a-zA-Z_][a-zA-Z0-9_\\-]*" + }, { + caseInsensitive: true + }], + + url: [{ + token : "support.function", + regex : "(?:url(:?-prefix)?|domain|regexp)\\(", + push: [{ + token : "support.function", + regex : "\\)", + next : "pop" + }, { + defaultToken: "string" + }] + }], + + strings: [{ + token : "string.start", + regex : "'", + push : [{ + token : "string.end", + regex : "'|$", + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }, { + token : "string.start", + regex : '"', + push : [{ + token : "string.end", + regex : '"|$', + next: "pop" + }, { + include : "escapes" + }, { + token : "constant.language.escape", + regex : /\\$/, + consumeLineEnd: true + }, { + defaultToken: "string" + }] + }], + escapes: [{ + token : "constant.language.escape", + regex : /\\([a-fA-F\d]{1,6}|[^a-fA-F\d])/ + }] + + }; + + this.normalizeRules(); +}; + +oop.inherits(CssHighlightRules, TextHighlightRules); + +exports.CssHighlightRules = CssHighlightRules; + +}); + +ace.define("ace/mode/css_completions",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var propertyMap = { + "background": {"#$0": 1}, + "background-color": {"#$0": 1, "transparent": 1, "fixed": 1}, + "background-image": {"url('/$0')": 1}, + "background-repeat": {"repeat": 1, "repeat-x": 1, "repeat-y": 1, "no-repeat": 1, "inherit": 1}, + "background-position": {"bottom":2, "center":2, "left":2, "right":2, "top":2, "inherit":2}, + "background-attachment": {"scroll": 1, "fixed": 1}, + "background-size": {"cover": 1, "contain": 1}, + "background-clip": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "background-origin": {"border-box": 1, "padding-box": 1, "content-box": 1}, + "border": {"solid $0": 1, "dashed $0": 1, "dotted $0": 1, "#$0": 1}, + "border-color": {"#$0": 1}, + "border-style": {"solid":2, "dashed":2, "dotted":2, "double":2, "groove":2, "hidden":2, "inherit":2, "inset":2, "none":2, "outset":2, "ridged":2}, + "border-collapse": {"collapse": 1, "separate": 1}, + "bottom": {"px": 1, "em": 1, "%": 1}, + "clear": {"left": 1, "right": 1, "both": 1, "none": 1}, + "color": {"#$0": 1, "rgb(#$00,0,0)": 1}, + "cursor": {"default": 1, "pointer": 1, "move": 1, "text": 1, "wait": 1, "help": 1, "progress": 1, "n-resize": 1, "ne-resize": 1, "e-resize": 1, "se-resize": 1, "s-resize": 1, "sw-resize": 1, "w-resize": 1, "nw-resize": 1}, + "display": {"none": 1, "block": 1, "inline": 1, "inline-block": 1, "table-cell": 1}, + "empty-cells": {"show": 1, "hide": 1}, + "float": {"left": 1, "right": 1, "none": 1}, + "font-family": {"Arial":2,"Comic Sans MS":2,"Consolas":2,"Courier New":2,"Courier":2,"Georgia":2,"Monospace":2,"Sans-Serif":2, "Segoe UI":2,"Tahoma":2,"Times New Roman":2,"Trebuchet MS":2,"Verdana": 1}, + "font-size": {"px": 1, "em": 1, "%": 1}, + "font-weight": {"bold": 1, "normal": 1}, + "font-style": {"italic": 1, "normal": 1}, + "font-variant": {"normal": 1, "small-caps": 1}, + "height": {"px": 1, "em": 1, "%": 1}, + "left": {"px": 1, "em": 1, "%": 1}, + "letter-spacing": {"normal": 1}, + "line-height": {"normal": 1}, + "list-style-type": {"none": 1, "disc": 1, "circle": 1, "square": 1, "decimal": 1, "decimal-leading-zero": 1, "lower-roman": 1, "upper-roman": 1, "lower-greek": 1, "lower-latin": 1, "upper-latin": 1, "georgian": 1, "lower-alpha": 1, "upper-alpha": 1}, + "margin": {"px": 1, "em": 1, "%": 1}, + "margin-right": {"px": 1, "em": 1, "%": 1}, + "margin-left": {"px": 1, "em": 1, "%": 1}, + "margin-top": {"px": 1, "em": 1, "%": 1}, + "margin-bottom": {"px": 1, "em": 1, "%": 1}, + "max-height": {"px": 1, "em": 1, "%": 1}, + "max-width": {"px": 1, "em": 1, "%": 1}, + "min-height": {"px": 1, "em": 1, "%": 1}, + "min-width": {"px": 1, "em": 1, "%": 1}, + "overflow": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-x": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "overflow-y": {"hidden": 1, "visible": 1, "auto": 1, "scroll": 1}, + "padding": {"px": 1, "em": 1, "%": 1}, + "padding-top": {"px": 1, "em": 1, "%": 1}, + "padding-right": {"px": 1, "em": 1, "%": 1}, + "padding-bottom": {"px": 1, "em": 1, "%": 1}, + "padding-left": {"px": 1, "em": 1, "%": 1}, + "page-break-after": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "page-break-before": {"auto": 1, "always": 1, "avoid": 1, "left": 1, "right": 1}, + "position": {"absolute": 1, "relative": 1, "fixed": 1, "static": 1}, + "right": {"px": 1, "em": 1, "%": 1}, + "table-layout": {"fixed": 1, "auto": 1}, + "text-decoration": {"none": 1, "underline": 1, "line-through": 1, "blink": 1}, + "text-align": {"left": 1, "right": 1, "center": 1, "justify": 1}, + "text-transform": {"capitalize": 1, "uppercase": 1, "lowercase": 1, "none": 1}, + "top": {"px": 1, "em": 1, "%": 1}, + "vertical-align": {"top": 1, "bottom": 1}, + "visibility": {"hidden": 1, "visible": 1}, + "white-space": {"nowrap": 1, "normal": 1, "pre": 1, "pre-line": 1, "pre-wrap": 1}, + "width": {"px": 1, "em": 1, "%": 1}, + "word-spacing": {"normal": 1}, + "filter": {"alpha(opacity=$0100)": 1}, + + "text-shadow": {"$02px 2px 2px #777": 1}, + "text-overflow": {"ellipsis-word": 1, "clip": 1, "ellipsis": 1}, + "-moz-border-radius": 1, + "-moz-border-radius-topright": 1, + "-moz-border-radius-bottomright": 1, + "-moz-border-radius-topleft": 1, + "-moz-border-radius-bottomleft": 1, + "-webkit-border-radius": 1, + "-webkit-border-top-right-radius": 1, + "-webkit-border-top-left-radius": 1, + "-webkit-border-bottom-right-radius": 1, + "-webkit-border-bottom-left-radius": 1, + "-moz-box-shadow": 1, + "-webkit-box-shadow": 1, + "transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-moz-transform": {"rotate($00deg)": 1, "skew($00deg)": 1}, + "-webkit-transform": {"rotate($00deg)": 1, "skew($00deg)": 1 } +}; + +var CssCompletions = function() { + +}; + +(function() { + + this.completionsDefined = false; + + this.defineCompletions = function() { + if (document) { + var style = document.createElement('c').style; + + for (var i in style) { + if (typeof style[i] !== 'string') + continue; + + var name = i.replace(/[A-Z]/g, function(x) { + return '-' + x.toLowerCase(); + }); + + if (!propertyMap.hasOwnProperty(name)) + propertyMap[name] = 1; + } + } + + this.completionsDefined = true; + } + + this.getCompletions = function(state, session, pos, prefix) { + if (!this.completionsDefined) { + this.defineCompletions(); + } + + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (state==='ruleset'){ + var line = session.getLine(pos.row).substr(0, pos.column); + if (/:[^;]+$/.test(line)) { + /([\w\-]+):[^:]*$/.test(line); + + return this.getPropertyValueCompletions(state, session, pos, prefix); + } else { + return this.getPropertyCompletions(state, session, pos, prefix); + } + } + + return []; + }; + + this.getPropertyCompletions = function(state, session, pos, prefix) { + var properties = Object.keys(propertyMap); + return properties.map(function(property){ + return { + caption: property, + snippet: property + ': $0', + meta: "property", + score: Number.MAX_VALUE + }; + }); + }; + + this.getPropertyValueCompletions = function(state, session, pos, prefix) { + var line = session.getLine(pos.row).substr(0, pos.column); + var property = (/([\w\-]+):[^:]*$/.exec(line) || {})[1]; + + if (!property) + return []; + var values = []; + if (property in propertyMap && typeof propertyMap[property] === "object") { + values = Object.keys(propertyMap[property]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "property value", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(CssCompletions.prototype); + +exports.CssCompletions = CssCompletions; +}); + +ace.define("ace/mode/behaviour/css",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/mode/behaviour/cstyle","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var CstyleBehaviour = require("./cstyle").CstyleBehaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; + +var CssBehaviour = function () { + + this.inherit(CstyleBehaviour); + + this.add("colon", "insertion", function (state, action, editor, session, text) { + if (text === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ':') { + return { + text: '', + selection: [1, 1] + } + } + if (!line.substring(cursor.column).match(/^\s*;/)) { + return { + text: ':;', + selection: [1, 1] + } + } + } + } + }); + + this.add("colon", "deletion", function (state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected === ':') { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + if (token && token.value.match(/\s+/)) { + token = iterator.stepBackward(); + } + if (token && token.type === 'support.type') { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar === ';') { + range.end.column ++; + return range; + } + } + } + }); + + this.add("semicolon", "insertion", function (state, action, editor, session, text) { + if (text === ';') { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === ';') { + return { + text: '', + selection: [1, 1] + } + } + } + }); + +} +oop.inherits(CssBehaviour, CstyleBehaviour); + +exports.CssBehaviour = CssBehaviour; +}); + +ace.define("ace/mode/css",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/css_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/css_completions","ace/mode/behaviour/css","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CssCompletions = require("./css_completions").CssCompletions; +var CssBehaviour = require("./behaviour/css").CssBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = CssHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CssBehaviour(); + this.$completer = new CssCompletions(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.foldingRules = "cStyle"; + this.blockComment = {start: "/*", end: "*/"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var tokens = this.getTokenizer().getLineTokens(line, state).tokens; + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + var match = line.match(/^.*\{\s*$/); + if (match) { + indent += tab; + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/css_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/css"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); + +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/html_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/css_highlight_rules","ace/mode/javascript_highlight_rules","ace/mode/xml_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var CssHighlightRules = require("./css_highlight_rules").CssHighlightRules; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; + +var tagMap = lang.createMap({ + a : 'anchor', + button : 'form', + form : 'form', + img : 'image', + input : 'form', + label : 'form', + option : 'form', + script : 'script', + select : 'form', + textarea : 'form', + style : 'style', + table : 'table', + tbody : 'table', + td : 'table', + tfoot : 'table', + th : 'table', + tr : 'table' +}); + +var HtmlHighlightRules = function() { + XmlHighlightRules.call(this); + + this.addRules({ + attributes: [{ + include : "tag_whitespace" + }, { + token : "entity.other.attribute-name.xml", + regex : "[-_a-zA-Z0-9:.]+" + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=", + push : [{ + include: "tag_whitespace" + }, { + token : "string.unquoted.attribute-value.html", + regex : "[^<>='\"`\\s]+", + next : "pop" + }, { + token : "empty", + regex : "", + next : "pop" + }] + }, { + include : "attribute_value" + }], + tag: [{ + token : function(start, tag) { + var group = tagMap[tag]; + return ["meta.tag.punctuation." + (start == "<" ? "" : "end-") + "tag-open.xml", + "meta.tag" + (group ? "." + group : "") + ".tag-name.xml"]; + }, + regex : "(", next : "start"} + ] + }); + + this.embedTagRules(CssHighlightRules, "css-", "style"); + this.embedTagRules(new JavaScriptHighlightRules({jsx: false}).getRules(), "js-", "script"); + + if (this.constructor === HtmlHighlightRules) + this.normalizeRules(); +}; + +oop.inherits(HtmlHighlightRules, XmlHighlightRules); + +exports.HtmlHighlightRules = HtmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/folding/html",["require","exports","module","ace/lib/oop","ace/mode/folding/mixed","ace/mode/folding/xml","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var MixedFoldMode = require("./mixed").FoldMode; +var XmlFoldMode = require("./xml").FoldMode; +var CStyleFoldMode = require("./cstyle").FoldMode; + +var FoldMode = exports.FoldMode = function(voidElements, optionalTags) { + MixedFoldMode.call(this, new XmlFoldMode(voidElements, optionalTags), { + "js-": new CStyleFoldMode(), + "css-": new CStyleFoldMode() + }); +}; + +oop.inherits(FoldMode, MixedFoldMode); + +}); + +ace.define("ace/mode/html_completions",["require","exports","module","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; + +var commonAttributes = [ + "accesskey", + "class", + "contenteditable", + "contextmenu", + "dir", + "draggable", + "dropzone", + "hidden", + "id", + "inert", + "itemid", + "itemprop", + "itemref", + "itemscope", + "itemtype", + "lang", + "spellcheck", + "style", + "tabindex", + "title", + "translate" +]; + +var eventAttributes = [ + "onabort", + "onblur", + "oncancel", + "oncanplay", + "oncanplaythrough", + "onchange", + "onclick", + "onclose", + "oncontextmenu", + "oncuechange", + "ondblclick", + "ondrag", + "ondragend", + "ondragenter", + "ondragleave", + "ondragover", + "ondragstart", + "ondrop", + "ondurationchange", + "onemptied", + "onended", + "onerror", + "onfocus", + "oninput", + "oninvalid", + "onkeydown", + "onkeypress", + "onkeyup", + "onload", + "onloadeddata", + "onloadedmetadata", + "onloadstart", + "onmousedown", + "onmousemove", + "onmouseout", + "onmouseover", + "onmouseup", + "onmousewheel", + "onpause", + "onplay", + "onplaying", + "onprogress", + "onratechange", + "onreset", + "onscroll", + "onseeked", + "onseeking", + "onselect", + "onshow", + "onstalled", + "onsubmit", + "onsuspend", + "ontimeupdate", + "onvolumechange", + "onwaiting" +]; + +var globalAttributes = commonAttributes.concat(eventAttributes); + +var attributeMap = { + "html": {"manifest": 1}, + "head": {}, + "title": {}, + "base": {"href": 1, "target": 1}, + "link": {"href": 1, "hreflang": 1, "rel": {"stylesheet": 1, "icon": 1}, "media": {"all": 1, "screen": 1, "print": 1}, "type": {"text/css": 1, "image/png": 1, "image/jpeg": 1, "image/gif": 1}, "sizes": 1}, + "meta": {"http-equiv": {"content-type": 1}, "name": {"description": 1, "keywords": 1}, "content": {"text/html; charset=UTF-8": 1}, "charset": 1}, + "style": {"type": 1, "media": {"all": 1, "screen": 1, "print": 1}, "scoped": 1}, + "script": {"charset": 1, "type": {"text/javascript": 1}, "src": 1, "defer": 1, "async": 1}, + "noscript": {"href": 1}, + "body": {"onafterprint": 1, "onbeforeprint": 1, "onbeforeunload": 1, "onhashchange": 1, "onmessage": 1, "onoffline": 1, "onpopstate": 1, "onredo": 1, "onresize": 1, "onstorage": 1, "onundo": 1, "onunload": 1}, + "section": {}, + "nav": {}, + "article": {"pubdate": 1}, + "aside": {}, + "h1": {}, + "h2": {}, + "h3": {}, + "h4": {}, + "h5": {}, + "h6": {}, + "header": {}, + "footer": {}, + "address": {}, + "main": {}, + "p": {}, + "hr": {}, + "pre": {}, + "blockquote": {"cite": 1}, + "ol": {"start": 1, "reversed": 1}, + "ul": {}, + "li": {"value": 1}, + "dl": {}, + "dt": {}, + "dd": {}, + "figure": {}, + "figcaption": {}, + "div": {}, + "a": {"href": 1, "target": {"_blank": 1, "top": 1}, "ping": 1, "rel": {"nofollow": 1, "alternate": 1, "author": 1, "bookmark": 1, "help": 1, "license": 1, "next": 1, "noreferrer": 1, "prefetch": 1, "prev": 1, "search": 1, "tag": 1}, "media": 1, "hreflang": 1, "type": 1}, + "em": {}, + "strong": {}, + "small": {}, + "s": {}, + "cite": {}, + "q": {"cite": 1}, + "dfn": {}, + "abbr": {}, + "data": {}, + "time": {"datetime": 1}, + "code": {}, + "var": {}, + "samp": {}, + "kbd": {}, + "sub": {}, + "sup": {}, + "i": {}, + "b": {}, + "u": {}, + "mark": {}, + "ruby": {}, + "rt": {}, + "rp": {}, + "bdi": {}, + "bdo": {}, + "span": {}, + "br": {}, + "wbr": {}, + "ins": {"cite": 1, "datetime": 1}, + "del": {"cite": 1, "datetime": 1}, + "img": {"alt": 1, "src": 1, "height": 1, "width": 1, "usemap": 1, "ismap": 1}, + "iframe": {"name": 1, "src": 1, "height": 1, "width": 1, "sandbox": {"allow-same-origin": 1, "allow-top-navigation": 1, "allow-forms": 1, "allow-scripts": 1}, "seamless": {"seamless": 1}}, + "embed": {"src": 1, "height": 1, "width": 1, "type": 1}, + "object": {"param": 1, "data": 1, "type": 1, "height" : 1, "width": 1, "usemap": 1, "name": 1, "form": 1, "classid": 1}, + "param": {"name": 1, "value": 1}, + "video": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "width": 1, "height": 1, "poster": 1, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1}}, + "audio": {"src": 1, "autobuffer": 1, "autoplay": {"autoplay": 1}, "loop": {"loop": 1}, "controls": {"controls": 1}, "muted": {"muted": 1}, "preload": {"auto": 1, "metadata": 1, "none": 1 }}, + "source": {"src": 1, "type": 1, "media": 1}, + "track": {"kind": 1, "src": 1, "srclang": 1, "label": 1, "default": 1}, + "canvas": {"width": 1, "height": 1}, + "map": {"name": 1}, + "area": {"shape": 1, "coords": 1, "href": 1, "hreflang": 1, "alt": 1, "target": 1, "media": 1, "rel": 1, "ping": 1, "type": 1}, + "svg": {}, + "math": {}, + "table": {"summary": 1}, + "caption": {}, + "colgroup": {"span": 1}, + "col": {"span": 1}, + "tbody": {}, + "thead": {}, + "tfoot": {}, + "tr": {}, + "td": {"headers": 1, "rowspan": 1, "colspan": 1}, + "th": {"headers": 1, "rowspan": 1, "colspan": 1, "scope": 1}, + "form": {"accept-charset": 1, "action": 1, "autocomplete": 1, "enctype": {"multipart/form-data": 1, "application/x-www-form-urlencoded": 1}, "method": {"get": 1, "post": 1}, "name": 1, "novalidate": 1, "target": {"_blank": 1, "top": 1}}, + "fieldset": {"disabled": 1, "form": 1, "name": 1}, + "legend": {}, + "label": {"form": 1, "for": 1}, + "input": { + "type": {"text": 1, "password": 1, "hidden": 1, "checkbox": 1, "submit": 1, "radio": 1, "file": 1, "button": 1, "reset": 1, "image": 31, "color": 1, "date": 1, "datetime": 1, "datetime-local": 1, "email": 1, "month": 1, "number": 1, "range": 1, "search": 1, "tel": 1, "time": 1, "url": 1, "week": 1}, + "accept": 1, "alt": 1, "autocomplete": {"on": 1, "off": 1}, "autofocus": {"autofocus": 1}, "checked": {"checked": 1}, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": {"application/x-www-form-urlencoded": 1, "multipart/form-data": 1, "text/plain": 1}, "formmethod": {"get": 1, "post": 1}, "formnovalidate": {"formnovalidate": 1}, "formtarget": {"_blank": 1, "_self": 1, "_parent": 1, "_top": 1}, "height": 1, "list": 1, "max": 1, "maxlength": 1, "min": 1, "multiple": {"multiple": 1}, "name": 1, "pattern": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "size": 1, "src": 1, "step": 1, "width": 1, "files": 1, "value": 1}, + "button": {"autofocus": 1, "disabled": {"disabled": 1}, "form": 1, "formaction": 1, "formenctype": 1, "formmethod": 1, "formnovalidate": 1, "formtarget": 1, "name": 1, "value": 1, "type": {"button": 1, "submit": 1}}, + "select": {"autofocus": 1, "disabled": 1, "form": 1, "multiple": {"multiple": 1}, "name": 1, "size": 1, "readonly":{"readonly": 1}}, + "datalist": {}, + "optgroup": {"disabled": 1, "label": 1}, + "option": {"disabled": 1, "selected": 1, "label": 1, "value": 1}, + "textarea": {"autofocus": {"autofocus": 1}, "disabled": {"disabled": 1}, "form": 1, "maxlength": 1, "name": 1, "placeholder": 1, "readonly": {"readonly": 1}, "required": {"required": 1}, "rows": 1, "cols": 1, "wrap": {"on": 1, "off": 1, "hard": 1, "soft": 1}}, + "keygen": {"autofocus": 1, "challenge": {"challenge": 1}, "disabled": {"disabled": 1}, "form": 1, "keytype": {"rsa": 1, "dsa": 1, "ec": 1}, "name": 1}, + "output": {"for": 1, "form": 1, "name": 1}, + "progress": {"value": 1, "max": 1}, + "meter": {"value": 1, "min": 1, "max": 1, "low": 1, "high": 1, "optimum": 1}, + "details": {"open": 1}, + "summary": {}, + "command": {"type": 1, "label": 1, "icon": 1, "disabled": 1, "checked": 1, "radiogroup": 1, "command": 1}, + "menu": {"type": 1, "label": 1}, + "dialog": {"open": 1} +}; + +var elements = Object.keys(attributeMap); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +function findTagName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "tag-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +function findAttributeName(session, pos) { + var iterator = new TokenIterator(session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + while (token && !is(token, "attribute-name")){ + token = iterator.stepBackward(); + } + if (token) + return token.value; +} + +var HtmlCompletions = function() { + +}; + +(function() { + + this.getCompletions = function(state, session, pos, prefix) { + var token = session.getTokenAt(pos.row, pos.column); + + if (!token) + return []; + if (is(token, "tag-name") || is(token, "tag-open") || is(token, "end-tag-open")) + return this.getTagCompletions(state, session, pos, prefix); + if (is(token, "tag-whitespace") || is(token, "attribute-name")) + return this.getAttributeCompletions(state, session, pos, prefix); + if (is(token, "attribute-value")) + return this.getAttributeValueCompletions(state, session, pos, prefix); + var line = session.getLine(pos.row).substr(0, pos.column); + if (/&[a-z]*$/i.test(line)) + return this.getHTMLEntityCompletions(state, session, pos, prefix); + + return []; + }; + + this.getTagCompletions = function(state, session, pos, prefix) { + return elements.map(function(element){ + return { + value: element, + meta: "tag", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + if (!tagName) + return []; + var attributes = globalAttributes; + if (tagName in attributeMap) { + attributes = attributes.concat(Object.keys(attributeMap[tagName])); + } + return attributes.map(function(attribute){ + return { + caption: attribute, + snippet: attribute + '="$0"', + meta: "attribute", + score: Number.MAX_VALUE + }; + }); + }; + + this.getAttributeValueCompletions = function(state, session, pos, prefix) { + var tagName = findTagName(session, pos); + var attributeName = findAttributeName(session, pos); + + if (!tagName) + return []; + var values = []; + if (tagName in attributeMap && attributeName in attributeMap[tagName] && typeof attributeMap[tagName][attributeName] === "object") { + values = Object.keys(attributeMap[tagName][attributeName]); + } + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "attribute value", + score: Number.MAX_VALUE + }; + }); + }; + + this.getHTMLEntityCompletions = function(state, session, pos, prefix) { + var values = ['Aacute;', 'aacute;', 'Acirc;', 'acirc;', 'acute;', 'AElig;', 'aelig;', 'Agrave;', 'agrave;', 'alefsym;', 'Alpha;', 'alpha;', 'amp;', 'and;', 'ang;', 'Aring;', 'aring;', 'asymp;', 'Atilde;', 'atilde;', 'Auml;', 'auml;', 'bdquo;', 'Beta;', 'beta;', 'brvbar;', 'bull;', 'cap;', 'Ccedil;', 'ccedil;', 'cedil;', 'cent;', 'Chi;', 'chi;', 'circ;', 'clubs;', 'cong;', 'copy;', 'crarr;', 'cup;', 'curren;', 'Dagger;', 'dagger;', 'dArr;', 'darr;', 'deg;', 'Delta;', 'delta;', 'diams;', 'divide;', 'Eacute;', 'eacute;', 'Ecirc;', 'ecirc;', 'Egrave;', 'egrave;', 'empty;', 'emsp;', 'ensp;', 'Epsilon;', 'epsilon;', 'equiv;', 'Eta;', 'eta;', 'ETH;', 'eth;', 'Euml;', 'euml;', 'euro;', 'exist;', 'fnof;', 'forall;', 'frac12;', 'frac14;', 'frac34;', 'frasl;', 'Gamma;', 'gamma;', 'ge;', 'gt;', 'hArr;', 'harr;', 'hearts;', 'hellip;', 'Iacute;', 'iacute;', 'Icirc;', 'icirc;', 'iexcl;', 'Igrave;', 'igrave;', 'image;', 'infin;', 'int;', 'Iota;', 'iota;', 'iquest;', 'isin;', 'Iuml;', 'iuml;', 'Kappa;', 'kappa;', 'Lambda;', 'lambda;', 'lang;', 'laquo;', 'lArr;', 'larr;', 'lceil;', 'ldquo;', 'le;', 'lfloor;', 'lowast;', 'loz;', 'lrm;', 'lsaquo;', 'lsquo;', 'lt;', 'macr;', 'mdash;', 'micro;', 'middot;', 'minus;', 'Mu;', 'mu;', 'nabla;', 'nbsp;', 'ndash;', 'ne;', 'ni;', 'not;', 'notin;', 'nsub;', 'Ntilde;', 'ntilde;', 'Nu;', 'nu;', 'Oacute;', 'oacute;', 'Ocirc;', 'ocirc;', 'OElig;', 'oelig;', 'Ograve;', 'ograve;', 'oline;', 'Omega;', 'omega;', 'Omicron;', 'omicron;', 'oplus;', 'or;', 'ordf;', 'ordm;', 'Oslash;', 'oslash;', 'Otilde;', 'otilde;', 'otimes;', 'Ouml;', 'ouml;', 'para;', 'part;', 'permil;', 'perp;', 'Phi;', 'phi;', 'Pi;', 'pi;', 'piv;', 'plusmn;', 'pound;', 'Prime;', 'prime;', 'prod;', 'prop;', 'Psi;', 'psi;', 'quot;', 'radic;', 'rang;', 'raquo;', 'rArr;', 'rarr;', 'rceil;', 'rdquo;', 'real;', 'reg;', 'rfloor;', 'Rho;', 'rho;', 'rlm;', 'rsaquo;', 'rsquo;', 'sbquo;', 'Scaron;', 'scaron;', 'sdot;', 'sect;', 'shy;', 'Sigma;', 'sigma;', 'sigmaf;', 'sim;', 'spades;', 'sub;', 'sube;', 'sum;', 'sup;', 'sup1;', 'sup2;', 'sup3;', 'supe;', 'szlig;', 'Tau;', 'tau;', 'there4;', 'Theta;', 'theta;', 'thetasym;', 'thinsp;', 'THORN;', 'thorn;', 'tilde;', 'times;', 'trade;', 'Uacute;', 'uacute;', 'uArr;', 'uarr;', 'Ucirc;', 'ucirc;', 'Ugrave;', 'ugrave;', 'uml;', 'upsih;', 'Upsilon;', 'upsilon;', 'Uuml;', 'uuml;', 'weierp;', 'Xi;', 'xi;', 'Yacute;', 'yacute;', 'yen;', 'Yuml;', 'yuml;', 'Zeta;', 'zeta;', 'zwj;', 'zwnj;']; + + return values.map(function(value){ + return { + caption: value, + snippet: value, + meta: "html entity", + score: Number.MAX_VALUE + }; + }); + }; + +}).call(HtmlCompletions.prototype); + +exports.HtmlCompletions = HtmlCompletions; +}); + +ace.define("ace/mode/html",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/javascript","ace/mode/css","ace/mode/html_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/html","ace/mode/html_completions","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var JavaScriptMode = require("./javascript").Mode; +var CssMode = require("./css").Mode; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var HtmlFoldMode = require("./folding/html").FoldMode; +var HtmlCompletions = require("./html_completions").HtmlCompletions; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var voidElements = ["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "menuitem", "param", "source", "track", "wbr"]; +var optionalEndTags = ["li", "dt", "dd", "p", "rt", "rp", "optgroup", "option", "colgroup", "td", "th"]; + +var Mode = function(options) { + this.fragmentContext = options && options.fragmentContext; + this.HighlightRules = HtmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.$completer = new HtmlCompletions(); + + this.createModeDelegates({ + "js-": JavaScriptMode, + "css-": CssMode + }); + + this.foldingRules = new HtmlFoldMode(this.voidElements, lang.arrayToMap(optionalEndTags)); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.blockComment = {start: ""}; + + this.voidElements = lang.arrayToMap(voidElements); + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.getCompletions = function(state, session, pos, prefix) { + return this.$completer.getCompletions(state, session, pos, prefix); + }; + + this.createWorker = function(session) { + if (this.constructor != Mode) + return; + var worker = new WorkerClient(["ace"], "ace/mode/html_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + if (this.fragmentContext) + worker.call("setOptions", [{context: this.fragmentContext}]); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/html"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/velocity_highlight_rules",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text_highlight_rules","ace/mode/html_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var HtmlHighlightRules = require("./html_highlight_rules").HtmlHighlightRules; + +var VelocityHighlightRules = function() { + HtmlHighlightRules.call(this); + + var builtinConstants = lang.arrayToMap( + ('true|false|null').split('|') + ); + + var builtinFunctions = lang.arrayToMap( + ("_DateTool|_DisplayTool|_EscapeTool|_FieldTool|_MathTool|_NumberTool|_SerializerTool|_SortTool|_StringTool|_XPathTool").split('|') + ); + + var builtinVariables = lang.arrayToMap( + ('$contentRoot|$foreach').split('|') + ); + + var keywords = lang.arrayToMap( + ("#set|#macro|#include|#parse|" + + "#if|#elseif|#else|#foreach|" + + "#break|#end|#stop" + ).split('|') + ); + + this.$rules.start.push( + { + token : "comment", + regex : "##.*$" + },{ + token : "comment.block", // multi line comment + regex : "#\\*", + next : "vm_comment" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1))) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + if(value.match(/^(\$[a-zA-Z_][a-zA-Z0-9_]*)$/)) + return "variable"; + return "identifier"; + }, + regex : "[a-zA-Z$#][a-zA-Z0-9_]*\\b" + }, { + token : "keyword.operator", + regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ); + + this.$rules["vm_comment"] = [ + { + token : "comment", // closing comment + regex : "\\*#|-->", + next : "start" + }, { + defaultToken: "comment" + } + ]; + + this.$rules["vm_start"] = [ + { + token: "variable", + regex: "}", + next: "pop" + }, { + token : "string.regexp", + regex : "[/](?:(?:\\[(?:\\\\]|[^\\]])+\\])|(?:\\\\/|[^\\]/]))*[/]\\w*\\s*(?=[).,;]|$)" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : function(value) { + if (keywords.hasOwnProperty(value)) + return "keyword"; + else if (builtinConstants.hasOwnProperty(value)) + return "constant.language"; + else if (builtinVariables.hasOwnProperty(value)) + return "variable.language"; + else if (builtinFunctions.hasOwnProperty(value) || builtinFunctions.hasOwnProperty(value.substring(1))) + return "support.function"; + else if (value == "debugger") + return "invalid.deprecated"; + else + if(value.match(/^(\$[a-zA-Z_$][a-zA-Z0-9_]*)$/)) + return "variable"; + return "identifier"; + }, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "!|&|\\*|\\-|\\+|=|!=|<=|>=|<|>|&&|\\|\\|" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ]; + + for (var i in this.$rules) { + this.$rules[i].unshift({ + token: "variable", + regex: "\\${", + push: "vm_start" + }); + } + + this.normalizeRules(); +}; + +oop.inherits(VelocityHighlightRules, TextHighlightRules); + +exports.VelocityHighlightRules = VelocityHighlightRules; +}); + +ace.define("ace/mode/folding/velocity",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "##") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "##") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "##" && next[indent] == "##") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "##" && prev[indent] == "##") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/velocity",["require","exports","module","ace/lib/oop","ace/mode/html","ace/mode/velocity_highlight_rules","ace/mode/folding/velocity"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var HtmlMode = require("./html").Mode; +var VelocityHighlightRules = require("./velocity_highlight_rules").VelocityHighlightRules; +var FoldMode = require("./folding/velocity").FoldMode; + +var Mode = function() { + HtmlMode.call(this); + this.HighlightRules = VelocityHighlightRules; + this.foldingRules = new FoldMode(); +}; +oop.inherits(Mode, HtmlMode); + +(function() { + this.lineCommentStart = "##"; + this.blockComment = {start: "#*", end: "*#"}; + this.$id = "ace/mode/velocity"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-verilog.js b/htdocs/includes/ace/mode-verilog.js new file mode 100644 index 00000000000..7def13b985c --- /dev/null +++ b/htdocs/includes/ace/mode-verilog.js @@ -0,0 +1,104 @@ +ace.define("ace/mode/verilog_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var VerilogHighlightRules = function() { +var keywords = "always|and|assign|automatic|begin|buf|bufif0|bufif1|case|casex|casez|cell|cmos|config|" + + "deassign|default|defparam|design|disable|edge|else|end|endcase|endconfig|endfunction|endgenerate|endmodule|" + + "endprimitive|endspecify|endtable|endtask|event|for|force|forever|fork|function|generate|genvar|highz0|" + + "highz1|if|ifnone|incdir|include|initial|inout|input|instance|integer|join|large|liblist|library|localparam|" + + "macromodule|medium|module|nand|negedge|nmos|nor|noshowcancelled|not|notif0|notif1|or|output|parameter|pmos|" + + "posedge|primitive|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|rcmos|real|realtime|" + + "reg|release|repeat|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|showcancelled|signed|small|specify|specparam|" + + "strong0|strong1|supply0|supply1|table|task|time|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|" + + "unsigned|use|vectored|wait|wand|weak0|weak1|while|wire|wor|xnor|xor" + + "begin|bufif0|bufif1|case|casex|casez|config|else|end|endcase|endconfig|endfunction|" + + "endgenerate|endmodule|endprimitive|endspecify|endtable|endtask|for|forever|function|generate|if|ifnone|" + + "macromodule|module|primitive|repeat|specify|table|task|while"; + + var builtinConstants = ( + "true|false|null" + ); + + var builtinFunctions = ( + "count|min|max|avg|sum|rank|now|coalesce|main" + ); + + var keywordMapper = this.createKeywordMapper({ + "support.function": builtinFunctions, + "keyword": keywords, + "constant.language": builtinConstants + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "//.*$" + }, { + token : "comment.start", + regex : "/\\*", + next : [ + { token : "comment.end", regex : "\\*/", next: "start" }, + { defaultToken : "comment" } + ] + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "string", // ' string + regex : "'.*?'" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "\\+|\\-|\\/|\\/\\/|%|<@>|@>|<@|&|\\^|~|<|>|<=|=>|==|!=|<>|=" + }, { + token : "paren.lparen", + regex : "[\\(]" + }, { + token : "paren.rparen", + regex : "[\\)]" + }, { + token : "text", + regex : "\\s+" + } ] + }; + this.normalizeRules(); +}; + +oop.inherits(VerilogHighlightRules, TextHighlightRules); + +exports.VerilogHighlightRules = VerilogHighlightRules; +}); + +ace.define("ace/mode/verilog",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/verilog_highlight_rules","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var VerilogHighlightRules = require("./verilog_highlight_rules").VerilogHighlightRules; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = VerilogHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + + this.$id = "ace/mode/verilog"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-vhdl.js b/htdocs/includes/ace/mode-vhdl.js new file mode 100644 index 00000000000..41dab579287 --- /dev/null +++ b/htdocs/includes/ace/mode-vhdl.js @@ -0,0 +1,110 @@ +ace.define("ace/mode/vhdl_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var VHDLHighlightRules = function() { + + + + var keywords = "access|after|ailas|all|architecture|assert|attribute|"+ + "begin|block|buffer|bus|case|component|configuration|"+ + "disconnect|downto|else|elsif|end|entity|file|for|function|"+ + "generate|generic|guarded|if|impure|in|inertial|inout|is|"+ + "label|linkage|literal|loop|mapnew|next|of|on|open|"+ + "others|out|port|process|pure|range|record|reject|"+ + "report|return|select|shared|subtype|then|to|transport|"+ + "type|unaffected|united|until|wait|when|while|with"; + + var storageType = "bit|bit_vector|boolean|character|integer|line|natural|"+ + "positive|real|register|severity|signal|signed|"+ + "std_logic|std_logic_vector|string||text|time|unsigned|"+ + "variable"; + + var storageModifiers = "array|constant"; + + var keywordOperators = "abs|and|mod|nand|nor|not|rem|rol|ror|sla|sll|sra"+ + "srl|xnor|xor"; + + var builtinConstants = ( + "true|false|null" + ); + + + var keywordMapper = this.createKeywordMapper({ + "keyword.operator": keywordOperators, + "keyword": keywords, + "constant.language": builtinConstants, + "storage.modifier": storageModifiers, + "storage.type": storageType + }, "identifier", true); + + this.$rules = { + "start" : [ { + token : "comment", + regex : "--.*$" + }, { + token : "string", // " string + regex : '".*?"' + }, { + token : "string", // ' string + regex : "'.*?'" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "keyword", // pre-compiler directives + regex : "\\s*(?:library|package|use)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "&|\\*|\\+|\\-|\\/|<|=|>|\\||=>|\\*\\*|:=|\\/=|>=|<=|<>" + }, { + token : "punctuation.operator", + regex : "\\'|\\:|\\,|\\;|\\." + },{ + token : "paren.lparen", + regex : "[[(]" + }, { + token : "paren.rparen", + regex : "[\\])]" + }, { + token : "text", + regex : "\\s+" + } ] + + + }; +}; + +oop.inherits(VHDLHighlightRules, TextHighlightRules); + +exports.VHDLHighlightRules = VHDLHighlightRules; +}); + +ace.define("ace/mode/vhdl",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/vhdl_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var VHDLHighlightRules = require("./vhdl_highlight_rules").VHDLHighlightRules; + +var Mode = function() { + this.HighlightRules = VHDLHighlightRules; + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "--"; + + this.$id = "ace/mode/vhdl"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/mode-wollok.js b/htdocs/includes/ace/mode-wollok.js new file mode 100644 index 00000000000..22c64ac23f1 --- /dev/null +++ b/htdocs/includes/ace/mode-wollok.js @@ -0,0 +1,905 @@ +ace.define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var DocCommentHighlightRules = function() { + this.$rules = { + "start" : [ { + token : "comment.doc.tag", + regex : "@[\\w\\d_]+" // TODO: fix email addresses + }, + DocCommentHighlightRules.getTagRule(), + { + defaultToken : "comment.doc", + caseInsensitive: true + }] + }; +}; + +oop.inherits(DocCommentHighlightRules, TextHighlightRules); + +DocCommentHighlightRules.getTagRule = function(start) { + return { + token : "comment.doc.tag.storage.type", + regex : "\\b(?:TODO|FIXME|XXX|HACK)\\b" + }; +} + +DocCommentHighlightRules.getStartRule = function(start) { + return { + token : "comment.doc", // doc comment + regex : "\\/\\*(?=\\*)", + next : start + }; +}; + +DocCommentHighlightRules.getEndRule = function (start) { + return { + token : "comment.doc", // closing comment + regex : "\\*\\/", + next : start + }; +}; + + +exports.DocCommentHighlightRules = DocCommentHighlightRules; + +}); + +ace.define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var identifierRe = "[a-zA-Z\\$_\u00a1-\uffff][a-zA-Z\\d\\$_\u00a1-\uffff]*"; + +var JavaScriptHighlightRules = function(options) { + var keywordMapper = this.createKeywordMapper({ + "variable.language": + "Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|" + // Constructors + "Namespace|QName|XML|XMLList|" + // E4X + "ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|" + + "Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|" + + "Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|" + // Errors + "SyntaxError|TypeError|URIError|" + + "decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|" + // Non-constructor functions + "isNaN|parseFloat|parseInt|" + + "JSON|Math|" + // Other + "this|arguments|prototype|window|document" , // Pseudo + "keyword": + "const|yield|import|get|set|async|await|" + + "break|case|catch|continue|default|delete|do|else|finally|for|function|" + + "if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|" + + "__parent__|__count__|escape|unescape|with|__proto__|" + + "class|enum|extends|super|export|implements|private|public|interface|package|protected|static", + "storage.type": + "const|let|var|function", + "constant.language": + "null|Infinity|NaN|undefined", + "support.function": + "alert", + "constant.language.boolean": "true|false" + }, "identifier"); + var kwBeforeRe = "case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void"; + + var escapedRe = "\\\\(?:x[0-9a-fA-F]{2}|" + // hex + "u[0-9a-fA-F]{4}|" + // unicode + "u{[0-9a-fA-F]{1,6}}|" + // es6 unicode + "[0-2][0-7]{0,2}|" + // oct + "3[0-7][0-7]?|" + // oct + "[4-7][0-7]?|" + //oct + ".)"; + + this.$rules = { + "no_regex" : [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("no_regex"), + { + token : "string", + regex : "'(?=.)", + next : "qstring" + }, { + token : "string", + regex : '"(?=.)', + next : "qqstring" + }, { + token : "constant.numeric", // hexadecimal, octal and binary + regex : /0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/ + }, { + token : "constant.numeric", // decimal integers and floats + regex : /(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/ + }, { + token : [ + "storage.type", "punctuation.operator", "support.function", + "punctuation.operator", "entity.name.function", "text","keyword.operator" + ], + regex : "(" + identifierRe + ")(\\.)(prototype)(\\.)(" + identifierRe +")(\\s*)(=)", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "keyword.operator", "text", "storage.type", + "text", "paren.lparen" + ], + regex : "(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(function)(\\s+)(" + identifierRe + ")(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "entity.name.function", "text", "punctuation.operator", + "text", "storage.type", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\s*)(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : [ + "text", "text", "storage.type", "text", "paren.lparen" + ], + regex : "(:)(\\s*)(function)(\\s*)(\\()", + next: "function_arguments" + }, { + token : "keyword", + regex : "from(?=\\s*('|\"))" + }, { + token : "keyword", + regex : "(?:" + kwBeforeRe + ")\\b", + next : "start" + }, { + token : ["support.constant"], + regex : /that\b/ + }, { + token : ["storage.type", "punctuation.operator", "support.function.firebug"], + regex : /(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/ + }, { + token : keywordMapper, + regex : identifierRe + }, { + token : "punctuation.operator", + regex : /[.](?![.])/, + next : "property" + }, { + token : "storage.type", + regex : /=>/ + }, { + token : "keyword.operator", + regex : /--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/, + next : "start" + }, { + token : "punctuation.operator", + regex : /[?:,;.]/, + next : "start" + }, { + token : "paren.lparen", + regex : /[\[({]/, + next : "start" + }, { + token : "paren.rparen", + regex : /[\])}]/ + }, { + token: "comment", + regex: /^#!.*$/ + } + ], + property: [{ + token : "text", + regex : "\\s+" + }, { + token : [ + "storage.type", "punctuation.operator", "entity.name.function", "text", + "keyword.operator", "text", + "storage.type", "text", "entity.name.function", "text", "paren.lparen" + ], + regex : "(" + identifierRe + ")(\\.)(" + identifierRe +")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()", + next: "function_arguments" + }, { + token : "punctuation.operator", + regex : /[.](?![.])/ + }, { + token : "support.function", + regex : /(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/ + }, { + token : "support.function.dom", + regex : /(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/ + }, { + token : "support.constant", + regex : /(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/ + }, { + token : "identifier", + regex : identifierRe + }, { + regex: "", + token: "empty", + next: "no_regex" + } + ], + "start": [ + DocCommentHighlightRules.getStartRule("doc-start"), + comments("start"), + { + token: "string.regexp", + regex: "\\/", + next: "regex" + }, { + token : "text", + regex : "\\s+|^$", + next : "start" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "regex": [ + { + token: "regexp.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "string.regexp", + regex: "/[sxngimy]*", + next: "no_regex" + }, { + token : "invalid", + regex: /\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/ + }, { + token : "constant.language.escape", + regex: /\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/ + }, { + token : "constant.language.delimiter", + regex: /\|/ + }, { + token: "constant.language.escape", + regex: /\[\^?/, + next: "regex_character_class" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp" + } + ], + "regex_character_class": [ + { + token: "regexp.charclass.keyword.operator", + regex: "\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)" + }, { + token: "constant.language.escape", + regex: "]", + next: "regex" + }, { + token: "constant.language.escape", + regex: "-" + }, { + token: "empty", + regex: "$", + next: "no_regex" + }, { + defaultToken: "string.regexp.charachterclass" + } + ], + "function_arguments": [ + { + token: "variable.parameter", + regex: identifierRe + }, { + token: "punctuation.operator", + regex: "[, ]+" + }, { + token: "punctuation.operator", + regex: "$" + }, { + token: "empty", + regex: "", + next: "no_regex" + } + ], + "qqstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : '"|$', + next : "no_regex" + }, { + defaultToken: "string" + } + ], + "qstring" : [ + { + token : "constant.language.escape", + regex : escapedRe + }, { + token : "string", + regex : "\\\\$", + consumeLineEnd : true + }, { + token : "string", + regex : "'|$", + next : "no_regex" + }, { + defaultToken: "string" + } + ] + }; + + + if (!options || !options.noES6) { + this.$rules.no_regex.unshift({ + regex: "[{}]", onMatch: function(val, state, stack) { + this.next = val == "{" ? this.nextState : ""; + if (val == "{" && stack.length) { + stack.unshift("start", state); + } + else if (val == "}" && stack.length) { + stack.shift(); + this.next = stack.shift(); + if (this.next.indexOf("string") != -1 || this.next.indexOf("jsx") != -1) + return "paren.quasi.end"; + } + return val == "{" ? "paren.lparen" : "paren.rparen"; + }, + nextState: "start" + }, { + token : "string.quasi.start", + regex : /`/, + push : [{ + token : "constant.language.escape", + regex : escapedRe + }, { + token : "paren.quasi.start", + regex : /\${/, + push : "start" + }, { + token : "string.quasi.end", + regex : /`/, + next : "pop" + }, { + defaultToken: "string.quasi" + }] + }); + + if (!options || options.jsx != false) + JSX.call(this); + } + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("no_regex") ]); + + this.normalizeRules(); +}; + +oop.inherits(JavaScriptHighlightRules, TextHighlightRules); + +function JSX() { + var tagRegex = identifierRe.replace("\\d", "\\d\\-"); + var jsxTag = { + onMatch : function(val, state, stack) { + var offset = val.charAt(1) == "/" ? 2 : 1; + if (offset == 1) { + if (state != this.nextState) + stack.unshift(this.next, this.nextState, 0); + else + stack.unshift(this.next); + stack[2]++; + } else if (offset == 2) { + if (state == this.nextState) { + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.shift(); + stack.shift(); + } + } + } + return [{ + type: "meta.tag.punctuation." + (offset == 1 ? "" : "end-") + "tag-open.xml", + value: val.slice(0, offset) + }, { + type: "meta.tag.tag-name.xml", + value: val.substr(offset) + }]; + }, + regex : "", + onMatch : function(value, currentState, stack) { + if (currentState == stack[0]) + stack.shift(); + if (value.length == 2) { + if (stack[0] == this.nextState) + stack[1]--; + if (!stack[1] || stack[1] < 0) { + stack.splice(0, 2); + } + } + this.next = stack[0] || "start"; + return [{type: this.token, value: value}]; + }, + nextState: "jsx" + }, + jsxJsRule, + comments("jsxAttributes"), + { + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + token : "text.tag-whitespace.xml", + regex : "\\s+" + }, { + token : "string.attribute-value.xml", + regex : "'", + stateName : "jsx_attr_q", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + stateName : "jsx_attr_qq", + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, + jsxTag + ]; + this.$rules.reference = [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }]; +} + +function comments(next) { + return [ + { + token : "comment", // multi line comment + regex : /\/\*/, + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "\\*\\/", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + }, { + token : "comment", + regex : "\\/\\/", + next: [ + DocCommentHighlightRules.getTagRule(), + {token : "comment", regex : "$|^", next : next || "pop"}, + {defaultToken : "comment", caseInsensitive: true} + ] + } + ]; +} +exports.JavaScriptHighlightRules = JavaScriptHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var JavaScriptHighlightRules = require("./javascript_highlight_rules").JavaScriptHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var WorkerClient = require("../worker/worker_client").WorkerClient; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; + +var Mode = function() { + this.HighlightRules = JavaScriptHighlightRules; + + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "//"; + this.blockComment = {start: "/*", end: "*/"}; + this.$quotes = {'"': '"', "'": "'", "`": "`"}; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + var tokenizedLine = this.getTokenizer().getLineTokens(line, state); + var tokens = tokenizedLine.tokens; + var endState = tokenizedLine.state; + + if (tokens.length && tokens[tokens.length-1].type == "comment") { + return indent; + } + + if (state == "start" || state == "no_regex") { + var match = line.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/); + if (match) { + indent += tab; + } + } else if (state == "doc-start") { + if (endState == "start" || endState == "no_regex") { + return ""; + } + var match = line.match(/^\s*(\/?)\*/); + if (match) { + if (match[1]) { + indent += " "; + } + indent += "* "; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/javascript_worker", "JavaScriptWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(results) { + session.setAnnotations(results.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/javascript"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +ace.define("ace/mode/wollok_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var DocCommentHighlightRules = require("./doc_comment_highlight_rules").DocCommentHighlightRules; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var WollokHighlightRules = function() { + var keywords = ( + "test|package|inherits|false|import|else|or|class|and|not|native|override|program|this|try|val|var|catch|object|super|throw|if|null|return|true|new|method" + ); + + var buildinConstants = ("null|assert|console"); + + + var langClasses = ( + "Object|Pair|String|Boolean|Number|Integer|Double|Collection|Set|List|Exception|Range" + + "|StackTraceElement" + ); + + var keywordMapper = this.createKeywordMapper({ + "variable.language": "this", + "keyword": keywords, + "constant.language": buildinConstants, + "support.function": langClasses + }, "identifier"); + + this.$rules = { + "start" : [ + { + token : "comment", + regex : "\\/\\/.*$" + }, + DocCommentHighlightRules.getStartRule("doc-start"), + { + token : "comment", // multi line comment + regex : "\\/\\*", + next : "comment" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // single line + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // hex + regex : /0(?:[xX][0-9a-fA-F][0-9a-fA-F_]*|[bB][01][01_]*)[LlSsDdFfYy]?\b/ + }, { + token : "constant.numeric", // float + regex : /[+-]?\d[\d_]*(?:(?:\.[\d_]*)?(?:[eE][+-]?[\d_]+)?)?[LlSsDdFfYy]?\b/ + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : keywordMapper, + regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" + }, { + token : "keyword.operator", + regex : "===|&&|\\*=|\\.\\.|\\*\\*|#|!|%|\\*|\\?:|\\+|\\/|,|\\+=|\\-|\\.\\.<|!==|:|\\/=|\\?\\.|\\+\\+|>|=|<|>=|=>|==|\\]|\\[|\\-=|\\->|\\||\\-\\-|<>|!=|%=|\\|" + }, { + token : "lparen", + regex : "[[({]" + }, { + token : "rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "comment" : [ + { + token : "comment", // closing comment + regex : ".*?\\*\\/", + next : "start" + }, { + token : "comment", // comment spanning whole line + regex : ".+" + } + ] + }; + + this.embedRules(DocCommentHighlightRules, "doc-", + [ DocCommentHighlightRules.getEndRule("start") ]); +}; + +oop.inherits(WollokHighlightRules, TextHighlightRules); + +exports.WollokHighlightRules = WollokHighlightRules; +}); + +ace.define("ace/mode/wollok",["require","exports","module","ace/lib/oop","ace/mode/javascript","ace/mode/wollok_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var JavaScriptMode = require("./javascript").Mode; +var WollokHighlightRules = require("./wollok_highlight_rules").WollokHighlightRules; + +var Mode = function() { + JavaScriptMode.call(this); + this.HighlightRules = WollokHighlightRules; +}; +oop.inherits(Mode, JavaScriptMode); + +(function() { + + this.createWorker = function(session) { + return null; + }; + + this.$id = "ace/mode/wollok"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-xml.js b/htdocs/includes/ace/mode-xml.js new file mode 100644 index 00000000000..f5f840a9b2c --- /dev/null +++ b/htdocs/includes/ace/mode-xml.js @@ -0,0 +1,664 @@ +ace.define("ace/mode/xml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var XmlHighlightRules = function(normalize) { + var tagRegex = "[_:a-zA-Z\xc0-\uffff][-_:.a-zA-Z0-9\xc0-\uffff]*"; + + this.$rules = { + start : [ + {token : "string.cdata.xml", regex : "<\\!\\[CDATA\\[", next : "cdata"}, + { + token : ["punctuation.instruction.xml", "keyword.instruction.xml"], + regex : "(<\\?)(" + tagRegex + ")", next : "processing_instruction" + }, + {token : "comment.start.xml", regex : "<\\!--", next : "comment"}, + { + token : ["xml-pe.doctype.xml", "xml-pe.doctype.xml"], + regex : "(<\\!)(DOCTYPE)(?=[\\s])", next : "doctype", caseInsensitive: true + }, + {include : "tag"}, + {token : "text.end-tag-open.xml", regex: "", + next : "start" + }], + + doctype : [ + {include : "whitespace"}, + {include : "string"}, + {token : "xml-pe.doctype.xml", regex : ">", next : "start"}, + {token : "xml-pe.xml", regex : "[-_a-zA-Z0-9:]+"}, + {token : "punctuation.int-subset", regex : "\\[", push : "int_subset"} + ], + + int_subset : [{ + token : "text.xml", + regex : "\\s+" + }, { + token: "punctuation.int-subset.xml", + regex: "]", + next: "pop" + }, { + token : ["punctuation.markup-decl.xml", "keyword.markup-decl.xml"], + regex : "(<\\!)(" + tagRegex + ")", + push : [{ + token : "text", + regex : "\\s+" + }, + { + token : "punctuation.markup-decl.xml", + regex : ">", + next : "pop" + }, + {include : "string"}] + }], + + cdata : [ + {token : "string.cdata.xml", regex : "\\]\\]>", next : "start"}, + {token : "text.xml", regex : "\\s+"}, + {token : "text.xml", regex : "(?:[^\\]]|\\](?!\\]>))+"} + ], + + comment : [ + {token : "comment.end.xml", regex : "-->", next : "start"}, + {defaultToken : "comment.xml"} + ], + + reference : [{ + token : "constant.language.escape.reference.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + attr_reference : [{ + token : "constant.language.escape.reference.attribute-value.xml", + regex : "(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)" + }], + + tag : [{ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag.punctuation.end-tag-open.xml", "meta.tag.tag-name.xml"], + regex : "(?:(<)|(", next : "start"} + ] + }], + + tag_whitespace : [ + {token : "text.tag-whitespace.xml", regex : "\\s+"} + ], + whitespace : [ + {token : "text.whitespace.xml", regex : "\\s+"} + ], + string: [{ + token : "string.xml", + regex : "'", + push : [ + {token : "string.xml", regex: "'", next: "pop"}, + {defaultToken : "string.xml"} + ] + }, { + token : "string.xml", + regex : '"', + push : [ + {token : "string.xml", regex: '"', next: "pop"}, + {defaultToken : "string.xml"} + ] + }], + + attributes: [{ + token : "entity.other.attribute-name.xml", + regex : tagRegex + }, { + token : "keyword.operator.attribute-equals.xml", + regex : "=" + }, { + include: "tag_whitespace" + }, { + include: "attribute_value" + }], + + attribute_value: [{ + token : "string.attribute-value.xml", + regex : "'", + push : [ + {token : "string.attribute-value.xml", regex: "'", next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }, { + token : "string.attribute-value.xml", + regex : '"', + push : [ + {token : "string.attribute-value.xml", regex: '"', next: "pop"}, + {include : "attr_reference"}, + {defaultToken : "string.attribute-value.xml"} + ] + }] + }; + + if (this.constructor === XmlHighlightRules) + this.normalizeRules(); +}; + + +(function() { + + this.embedTagRules = function(HighlightRules, prefix, tag){ + this.$rules.tag.unshift({ + token : ["meta.tag.punctuation.tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(<)(" + tag + "(?=\\s|>|$))", + next: [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next : prefix + "start"} + ] + }); + + this.$rules[tag + "-end"] = [ + {include : "attributes"}, + {token : "meta.tag.punctuation.tag-close.xml", regex : "/?>", next: "start", + onMatch : function(value, currentState, stack) { + stack.splice(0); + return this.token; + }} + ] + + this.embedRules(HighlightRules, prefix, [{ + token: ["meta.tag.punctuation.end-tag-open.xml", "meta.tag." + tag + ".tag-name.xml"], + regex : "(|$))", + next: tag + "-end" + }, { + token: "string.cdata.xml", + regex : "<\\!\\[CDATA\\[" + }, { + token: "string.cdata.xml", + regex : "\\]\\]>" + }]); + }; + +}).call(TextHighlightRules.prototype); + +oop.inherits(XmlHighlightRules, TextHighlightRules); + +exports.XmlHighlightRules = XmlHighlightRules; +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === " -1; +} + +(function() { + + this.getFoldWidget = function(session, foldStyle, row) { + var tag = this._getFirstTagInLine(session, row); + + if (!tag) + return this.getCommentFoldWidget(session, row); + + if (tag.closing || (!tag.tagName && tag.selfClosing)) + return foldStyle == "markbeginend" ? "end" : ""; + + if (!tag.tagName || tag.selfClosing || this.voidElements.hasOwnProperty(tag.tagName.toLowerCase())) + return ""; + + if (this._findEndTagInLine(session, row, tag.tagName, tag.end.column)) + return ""; + + return "start"; + }; + + this.getCommentFoldWidget = function(session, row) { + if (/comment/.test(session.getState(row)) && /'; + break; + } + } + return tag; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == '/>'; + return tag; + } + tag.start.column += token.value.length; + } + + return null; + }; + + this._findEndTagInLine = function(session, row, tagName, startColumn) { + var tokens = session.getTokens(row); + var column = 0; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + column += token.value.length; + if (column < startColumn) + continue; + if (is(token, "end-tag-open")) { + token = tokens[i + 1]; + if (token && token.value == tagName) + return true; + } + } + return false; + }; + this._readTagForward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + iterator.stepForward(); + return tag; + } + } while(token = iterator.stepForward()); + + return null; + }; + + this._readTagBackward = function(iterator) { + var token = iterator.getCurrentToken(); + if (!token) + return null; + + var tag = new Tag(); + do { + if (is(token, "tag-open")) { + tag.closing = is(token, "end-tag-open"); + tag.start.row = iterator.getCurrentTokenRow(); + tag.start.column = iterator.getCurrentTokenColumn(); + iterator.stepBackward(); + return tag; + } else if (is(token, "tag-name")) { + tag.tagName = token.value; + } else if (is(token, "tag-close")) { + tag.selfClosing = token.value == "/>"; + tag.end.row = iterator.getCurrentTokenRow(); + tag.end.column = iterator.getCurrentTokenColumn() + token.value.length; + } + } while(token = iterator.stepBackward()); + + return null; + }; + + this._pop = function(stack, tag) { + while (stack.length) { + + var top = stack[stack.length-1]; + if (!tag || top.tagName == tag.tagName) { + return stack.pop(); + } + else if (this.optionalEndTags.hasOwnProperty(top.tagName)) { + stack.pop(); + continue; + } else { + return null; + } + } + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var firstTag = this._getFirstTagInLine(session, row); + + if (!firstTag) { + return this.getCommentFoldWidget(session, row) + && session.getCommentFoldRange(row, session.getLine(row).length); + } + + var isBackward = firstTag.closing || firstTag.selfClosing; + var stack = []; + var tag; + + if (!isBackward) { + var iterator = new TokenIterator(session, row, firstTag.start.column); + var start = { + row: row, + column: firstTag.start.column + firstTag.tagName.length + 2 + }; + if (firstTag.start.row == firstTag.end.row) + start.column = firstTag.end.column; + while (tag = this._readTagForward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) + return Range.fromPoints(start, tag.start); + } + else { + stack.push(tag); + } + } + } + else { + var iterator = new TokenIterator(session, row, firstTag.end.column); + var end = { + row: row, + column: firstTag.start.column + }; + + while (tag = this._readTagBackward(iterator)) { + if (tag.selfClosing) { + if (!stack.length) { + tag.start.column += tag.tagName.length + 2; + tag.end.column -= 2; + return Range.fromPoints(tag.start, tag.end); + } else + continue; + } + + if (!tag.closing) { + this._pop(stack, tag); + if (stack.length == 0) { + tag.start.column += tag.tagName.length + 2; + if (tag.start.row == tag.end.row && tag.start.column < tag.end.column) + tag.start.column = tag.end.column; + return Range.fromPoints(tag.start, end); + } + } + else { + stack.push(tag); + } + } + } + + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/xml",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/mode/text","ace/mode/xml_highlight_rules","ace/mode/behaviour/xml","ace/mode/folding/xml","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var lang = require("../lib/lang"); +var TextMode = require("./text").Mode; +var XmlHighlightRules = require("./xml_highlight_rules").XmlHighlightRules; +var XmlBehaviour = require("./behaviour/xml").XmlBehaviour; +var XmlFoldMode = require("./folding/xml").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = XmlHighlightRules; + this.$behaviour = new XmlBehaviour(); + this.foldingRules = new XmlFoldMode(); +}; + +oop.inherits(Mode, TextMode); + +(function() { + + this.voidElements = lang.arrayToMap([]); + + this.blockComment = {start: ""}; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/xml_worker", "Worker"); + worker.attachToDocument(session.getDocument()); + + worker.on("error", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + this.$id = "ace/mode/xml"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-xquery.js b/htdocs/includes/ace/mode-xquery.js new file mode 100644 index 00000000000..3de4ec0938b --- /dev/null +++ b/htdocs/includes/ace/mode-xquery.js @@ -0,0 +1,2631 @@ +ace.define("ace/mode/xquery/xquery_lexer",["require","exports","module"], function(require, exports, module) { +module.exports = (function outer (modules, cache, entry) { + var previousRequire = typeof require == "function" && require; + function newRequire(name, jumped){ + if(!cache[name]) { + if(!modules[name]) { + var currentRequire = typeof require == "function" && require; + if (!jumped && currentRequire) return currentRequire(name, true); + if (previousRequire) return previousRequire(name, true); + var err = new Error('Cannot find module \'' + name + '\''); + err.code = 'MODULE_NOT_FOUND'; + throw err; + } + var m = cache[name] = {exports:{}}; + modules[name][0].call(m.exports, function(x){ + var id = modules[name][1][x]; + return newRequire(id ? id : x); + },m,m.exports,outer,modules,cache,entry); + } + return cache[name].exports; + } + for(var i=0;i= 0 ? XQueryTokenizer.TOKEN[o] : null; + }; + + this.getExpectedTokenSet = function(e) + { + var expected; + if (e.getExpected() < 0) + { + expected = XQueryTokenizer.getTokenSet(- e.getState()); + } + else + { + expected = [XQueryTokenizer.TOKEN[e.getExpected()]]; + } + return expected; + }; + + this.getErrorMessage = function(e) + { + var tokenSet = this.getExpectedTokenSet(e); + var found = this.getOffendingToken(e); + var prefix = input.substring(0, e.getBegin()); + var lines = prefix.split("\n"); + var line = lines.length; + var column = lines[line - 1].length + 1; + var size = e.getEnd() - e.getBegin(); + return e.getMessage() + + (found == null ? "" : ", found " + found) + + "\nwhile expecting " + + (tokenSet.length == 1 ? tokenSet[0] : ("[" + tokenSet.join(", ") + "]")) + + "\n" + + (size == 0 || found != null ? "" : "after successfully scanning " + size + " characters beginning ") + + "at line " + line + ", column " + column + ":\n..." + + input.substring(e.getBegin(), Math.min(input.length, e.getBegin() + 64)) + + "..."; + }; + + this.parse_start = function() + { + eventHandler.startNonterminal("start", e0); + lookahead1W(14); // ModuleDecl | Annotation | OptionDecl | Operator | Variable | Tag | AttrTest | + switch (l1) + { + case 55: // '' | '=' | '>' + switch (l1) + { + case 58: // '>' + shift(58); // '>' + break; + case 50: // '/>' + shift(50); // '/>' + break; + case 27: // QName + shift(27); // QName + break; + case 57: // '=' + shift(57); // '=' + break; + case 35: // '"' + shift(35); // '"' + break; + case 38: // "'" + shift(38); // "'" + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("StartTag", e0); + }; + + this.parse_TagContent = function() + { + eventHandler.startNonterminal("TagContent", e0); + lookahead1(11); // Tag | EndTag | PredefinedEntityRef | ElementContentChar | CharRef | EOF | + switch (l1) + { + case 23: // ElementContentChar + shift(23); // ElementContentChar + break; + case 6: // Tag + shift(6); // Tag + break; + case 7: // EndTag + shift(7); // EndTag + break; + case 55: // '' + switch (l1) + { + case 11: // CDataSectionContents + shift(11); // CDataSectionContents + break; + case 64: // ']]>' + shift(64); // ']]>' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("CData", e0); + }; + + this.parse_XMLComment = function() + { + eventHandler.startNonterminal("XMLComment", e0); + lookahead1(0); // DirCommentContents | EOF | '-->' + switch (l1) + { + case 9: // DirCommentContents + shift(9); // DirCommentContents + break; + case 47: // '-->' + shift(47); // '-->' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("XMLComment", e0); + }; + + this.parse_PI = function() + { + eventHandler.startNonterminal("PI", e0); + lookahead1(3); // DirPIContents | EOF | '?' | '?>' + switch (l1) + { + case 10: // DirPIContents + shift(10); // DirPIContents + break; + case 59: // '?' + shift(59); // '?' + break; + case 60: // '?>' + shift(60); // '?>' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("PI", e0); + }; + + this.parse_Pragma = function() + { + eventHandler.startNonterminal("Pragma", e0); + lookahead1(2); // PragmaContents | EOF | '#' | '#)' + switch (l1) + { + case 8: // PragmaContents + shift(8); // PragmaContents + break; + case 36: // '#' + shift(36); // '#' + break; + case 37: // '#)' + shift(37); // '#)' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("Pragma", e0); + }; + + this.parse_Comment = function() + { + eventHandler.startNonterminal("Comment", e0); + lookahead1(4); // CommentContents | EOF | '(:' | ':)' + switch (l1) + { + case 52: // ':)' + shift(52); // ':)' + break; + case 41: // '(:' + shift(41); // '(:' + break; + case 30: // CommentContents + shift(30); // CommentContents + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("Comment", e0); + }; + + this.parse_CommentDoc = function() + { + eventHandler.startNonterminal("CommentDoc", e0); + lookahead1(5); // DocTag | DocCommentContents | EOF | '(:' | ':)' + switch (l1) + { + case 31: // DocTag + shift(31); // DocTag + break; + case 32: // DocCommentContents + shift(32); // DocCommentContents + break; + case 52: // ':)' + shift(52); // ':)' + break; + case 41: // '(:' + shift(41); // '(:' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("CommentDoc", e0); + }; + + this.parse_QuotString = function() + { + eventHandler.startNonterminal("QuotString", e0); + lookahead1(6); // PredefinedEntityRef | EscapeQuot | QuotChar | CharRef | EOF | '"' + switch (l1) + { + case 18: // PredefinedEntityRef + shift(18); // PredefinedEntityRef + break; + case 29: // CharRef + shift(29); // CharRef + break; + case 19: // EscapeQuot + shift(19); // EscapeQuot + break; + case 21: // QuotChar + shift(21); // QuotChar + break; + case 35: // '"' + shift(35); // '"' + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("QuotString", e0); + }; + + this.parse_AposString = function() + { + eventHandler.startNonterminal("AposString", e0); + lookahead1(7); // PredefinedEntityRef | EscapeApos | AposChar | CharRef | EOF | "'" + switch (l1) + { + case 18: // PredefinedEntityRef + shift(18); // PredefinedEntityRef + break; + case 29: // CharRef + shift(29); // CharRef + break; + case 20: // EscapeApos + shift(20); // EscapeApos + break; + case 22: // AposChar + shift(22); // AposChar + break; + case 38: // "'" + shift(38); // "'" + break; + default: + shift(33); // EOF + } + eventHandler.endNonterminal("AposString", e0); + }; + + this.parse_Prefix = function() + { + eventHandler.startNonterminal("Prefix", e0); + lookahead1W(13); // NCName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | + whitespace(); + parse_NCName(); + eventHandler.endNonterminal("Prefix", e0); + }; + + this.parse__EQName = function() + { + eventHandler.startNonterminal("_EQName", e0); + lookahead1W(12); // EQName^Token | S^WS | 'after' | 'allowing' | 'ancestor' | 'ancestor-or-self' | + whitespace(); + parse_EQName(); + eventHandler.endNonterminal("_EQName", e0); + }; + + function parse_EQName() + { + eventHandler.startNonterminal("EQName", e0); + switch (l1) + { + case 77: // 'attribute' + shift(77); // 'attribute' + break; + case 91: // 'comment' + shift(91); // 'comment' + break; + case 115: // 'document-node' + shift(115); // 'document-node' + break; + case 116: // 'element' + shift(116); // 'element' + break; + case 119: // 'empty-sequence' + shift(119); // 'empty-sequence' + break; + case 140: // 'function' + shift(140); // 'function' + break; + case 147: // 'if' + shift(147); // 'if' + break; + case 160: // 'item' + shift(160); // 'item' + break; + case 180: // 'namespace-node' + shift(180); // 'namespace-node' + break; + case 186: // 'node' + shift(186); // 'node' + break; + case 211: // 'processing-instruction' + shift(211); // 'processing-instruction' + break; + case 221: // 'schema-attribute' + shift(221); // 'schema-attribute' + break; + case 222: // 'schema-element' + shift(222); // 'schema-element' + break; + case 238: // 'switch' + shift(238); // 'switch' + break; + case 239: // 'text' + shift(239); // 'text' + break; + case 248: // 'typeswitch' + shift(248); // 'typeswitch' + break; + default: + parse_FunctionName(); + } + eventHandler.endNonterminal("EQName", e0); + } + + function parse_FunctionName() + { + eventHandler.startNonterminal("FunctionName", e0); + switch (l1) + { + case 14: // EQName^Token + shift(14); // EQName^Token + break; + case 65: // 'after' + shift(65); // 'after' + break; + case 68: // 'ancestor' + shift(68); // 'ancestor' + break; + case 69: // 'ancestor-or-self' + shift(69); // 'ancestor-or-self' + break; + case 70: // 'and' + shift(70); // 'and' + break; + case 74: // 'as' + shift(74); // 'as' + break; + case 75: // 'ascending' + shift(75); // 'ascending' + break; + case 79: // 'before' + shift(79); // 'before' + break; + case 83: // 'case' + shift(83); // 'case' + break; + case 84: // 'cast' + shift(84); // 'cast' + break; + case 85: // 'castable' + shift(85); // 'castable' + break; + case 88: // 'child' + shift(88); // 'child' + break; + case 89: // 'collation' + shift(89); // 'collation' + break; + case 98: // 'copy' + shift(98); // 'copy' + break; + case 100: // 'count' + shift(100); // 'count' + break; + case 103: // 'declare' + shift(103); // 'declare' + break; + case 104: // 'default' + shift(104); // 'default' + break; + case 105: // 'delete' + shift(105); // 'delete' + break; + case 106: // 'descendant' + shift(106); // 'descendant' + break; + case 107: // 'descendant-or-self' + shift(107); // 'descendant-or-self' + break; + case 108: // 'descending' + shift(108); // 'descending' + break; + case 113: // 'div' + shift(113); // 'div' + break; + case 114: // 'document' + shift(114); // 'document' + break; + case 117: // 'else' + shift(117); // 'else' + break; + case 118: // 'empty' + shift(118); // 'empty' + break; + case 121: // 'end' + shift(121); // 'end' + break; + case 123: // 'eq' + shift(123); // 'eq' + break; + case 124: // 'every' + shift(124); // 'every' + break; + case 126: // 'except' + shift(126); // 'except' + break; + case 129: // 'first' + shift(129); // 'first' + break; + case 130: // 'following' + shift(130); // 'following' + break; + case 131: // 'following-sibling' + shift(131); // 'following-sibling' + break; + case 132: // 'for' + shift(132); // 'for' + break; + case 141: // 'ge' + shift(141); // 'ge' + break; + case 143: // 'group' + shift(143); // 'group' + break; + case 145: // 'gt' + shift(145); // 'gt' + break; + case 146: // 'idiv' + shift(146); // 'idiv' + break; + case 148: // 'import' + shift(148); // 'import' + break; + case 154: // 'insert' + shift(154); // 'insert' + break; + case 155: // 'instance' + shift(155); // 'instance' + break; + case 157: // 'intersect' + shift(157); // 'intersect' + break; + case 158: // 'into' + shift(158); // 'into' + break; + case 159: // 'is' + shift(159); // 'is' + break; + case 165: // 'last' + shift(165); // 'last' + break; + case 167: // 'le' + shift(167); // 'le' + break; + case 169: // 'let' + shift(169); // 'let' + break; + case 173: // 'lt' + shift(173); // 'lt' + break; + case 175: // 'mod' + shift(175); // 'mod' + break; + case 176: // 'modify' + shift(176); // 'modify' + break; + case 177: // 'module' + shift(177); // 'module' + break; + case 179: // 'namespace' + shift(179); // 'namespace' + break; + case 181: // 'ne' + shift(181); // 'ne' + break; + case 193: // 'only' + shift(193); // 'only' + break; + case 195: // 'or' + shift(195); // 'or' + break; + case 196: // 'order' + shift(196); // 'order' + break; + case 197: // 'ordered' + shift(197); // 'ordered' + break; + case 201: // 'parent' + shift(201); // 'parent' + break; + case 207: // 'preceding' + shift(207); // 'preceding' + break; + case 208: // 'preceding-sibling' + shift(208); // 'preceding-sibling' + break; + case 213: // 'rename' + shift(213); // 'rename' + break; + case 214: // 'replace' + shift(214); // 'replace' + break; + case 215: // 'return' + shift(215); // 'return' + break; + case 219: // 'satisfies' + shift(219); // 'satisfies' + break; + case 224: // 'self' + shift(224); // 'self' + break; + case 230: // 'some' + shift(230); // 'some' + break; + case 231: // 'stable' + shift(231); // 'stable' + break; + case 232: // 'start' + shift(232); // 'start' + break; + case 243: // 'to' + shift(243); // 'to' + break; + case 244: // 'treat' + shift(244); // 'treat' + break; + case 245: // 'try' + shift(245); // 'try' + break; + case 249: // 'union' + shift(249); // 'union' + break; + case 251: // 'unordered' + shift(251); // 'unordered' + break; + case 255: // 'validate' + shift(255); // 'validate' + break; + case 261: // 'where' + shift(261); // 'where' + break; + case 265: // 'with' + shift(265); // 'with' + break; + case 269: // 'xquery' + shift(269); // 'xquery' + break; + case 67: // 'allowing' + shift(67); // 'allowing' + break; + case 76: // 'at' + shift(76); // 'at' + break; + case 78: // 'base-uri' + shift(78); // 'base-uri' + break; + case 80: // 'boundary-space' + shift(80); // 'boundary-space' + break; + case 81: // 'break' + shift(81); // 'break' + break; + case 86: // 'catch' + shift(86); // 'catch' + break; + case 93: // 'construction' + shift(93); // 'construction' + break; + case 96: // 'context' + shift(96); // 'context' + break; + case 97: // 'continue' + shift(97); // 'continue' + break; + case 99: // 'copy-namespaces' + shift(99); // 'copy-namespaces' + break; + case 101: // 'decimal-format' + shift(101); // 'decimal-format' + break; + case 120: // 'encoding' + shift(120); // 'encoding' + break; + case 127: // 'exit' + shift(127); // 'exit' + break; + case 128: // 'external' + shift(128); // 'external' + break; + case 136: // 'ft-option' + shift(136); // 'ft-option' + break; + case 149: // 'in' + shift(149); // 'in' + break; + case 150: // 'index' + shift(150); // 'index' + break; + case 156: // 'integrity' + shift(156); // 'integrity' + break; + case 166: // 'lax' + shift(166); // 'lax' + break; + case 187: // 'nodes' + shift(187); // 'nodes' + break; + case 194: // 'option' + shift(194); // 'option' + break; + case 198: // 'ordering' + shift(198); // 'ordering' + break; + case 217: // 'revalidation' + shift(217); // 'revalidation' + break; + case 220: // 'schema' + shift(220); // 'schema' + break; + case 223: // 'score' + shift(223); // 'score' + break; + case 229: // 'sliding' + shift(229); // 'sliding' + break; + case 235: // 'strict' + shift(235); // 'strict' + break; + case 246: // 'tumbling' + shift(246); // 'tumbling' + break; + case 247: // 'type' + shift(247); // 'type' + break; + case 252: // 'updating' + shift(252); // 'updating' + break; + case 256: // 'value' + shift(256); // 'value' + break; + case 257: // 'variable' + shift(257); // 'variable' + break; + case 258: // 'version' + shift(258); // 'version' + break; + case 262: // 'while' + shift(262); // 'while' + break; + case 92: // 'constraint' + shift(92); // 'constraint' + break; + case 171: // 'loop' + shift(171); // 'loop' + break; + default: + shift(216); // 'returning' + } + eventHandler.endNonterminal("FunctionName", e0); + } + + function parse_NCName() + { + eventHandler.startNonterminal("NCName", e0); + switch (l1) + { + case 26: // NCName^Token + shift(26); // NCName^Token + break; + case 65: // 'after' + shift(65); // 'after' + break; + case 70: // 'and' + shift(70); // 'and' + break; + case 74: // 'as' + shift(74); // 'as' + break; + case 75: // 'ascending' + shift(75); // 'ascending' + break; + case 79: // 'before' + shift(79); // 'before' + break; + case 83: // 'case' + shift(83); // 'case' + break; + case 84: // 'cast' + shift(84); // 'cast' + break; + case 85: // 'castable' + shift(85); // 'castable' + break; + case 89: // 'collation' + shift(89); // 'collation' + break; + case 100: // 'count' + shift(100); // 'count' + break; + case 104: // 'default' + shift(104); // 'default' + break; + case 108: // 'descending' + shift(108); // 'descending' + break; + case 113: // 'div' + shift(113); // 'div' + break; + case 117: // 'else' + shift(117); // 'else' + break; + case 118: // 'empty' + shift(118); // 'empty' + break; + case 121: // 'end' + shift(121); // 'end' + break; + case 123: // 'eq' + shift(123); // 'eq' + break; + case 126: // 'except' + shift(126); // 'except' + break; + case 132: // 'for' + shift(132); // 'for' + break; + case 141: // 'ge' + shift(141); // 'ge' + break; + case 143: // 'group' + shift(143); // 'group' + break; + case 145: // 'gt' + shift(145); // 'gt' + break; + case 146: // 'idiv' + shift(146); // 'idiv' + break; + case 155: // 'instance' + shift(155); // 'instance' + break; + case 157: // 'intersect' + shift(157); // 'intersect' + break; + case 158: // 'into' + shift(158); // 'into' + break; + case 159: // 'is' + shift(159); // 'is' + break; + case 167: // 'le' + shift(167); // 'le' + break; + case 169: // 'let' + shift(169); // 'let' + break; + case 173: // 'lt' + shift(173); // 'lt' + break; + case 175: // 'mod' + shift(175); // 'mod' + break; + case 176: // 'modify' + shift(176); // 'modify' + break; + case 181: // 'ne' + shift(181); // 'ne' + break; + case 193: // 'only' + shift(193); // 'only' + break; + case 195: // 'or' + shift(195); // 'or' + break; + case 196: // 'order' + shift(196); // 'order' + break; + case 215: // 'return' + shift(215); // 'return' + break; + case 219: // 'satisfies' + shift(219); // 'satisfies' + break; + case 231: // 'stable' + shift(231); // 'stable' + break; + case 232: // 'start' + shift(232); // 'start' + break; + case 243: // 'to' + shift(243); // 'to' + break; + case 244: // 'treat' + shift(244); // 'treat' + break; + case 249: // 'union' + shift(249); // 'union' + break; + case 261: // 'where' + shift(261); // 'where' + break; + case 265: // 'with' + shift(265); // 'with' + break; + case 68: // 'ancestor' + shift(68); // 'ancestor' + break; + case 69: // 'ancestor-or-self' + shift(69); // 'ancestor-or-self' + break; + case 77: // 'attribute' + shift(77); // 'attribute' + break; + case 88: // 'child' + shift(88); // 'child' + break; + case 91: // 'comment' + shift(91); // 'comment' + break; + case 98: // 'copy' + shift(98); // 'copy' + break; + case 103: // 'declare' + shift(103); // 'declare' + break; + case 105: // 'delete' + shift(105); // 'delete' + break; + case 106: // 'descendant' + shift(106); // 'descendant' + break; + case 107: // 'descendant-or-self' + shift(107); // 'descendant-or-self' + break; + case 114: // 'document' + shift(114); // 'document' + break; + case 115: // 'document-node' + shift(115); // 'document-node' + break; + case 116: // 'element' + shift(116); // 'element' + break; + case 119: // 'empty-sequence' + shift(119); // 'empty-sequence' + break; + case 124: // 'every' + shift(124); // 'every' + break; + case 129: // 'first' + shift(129); // 'first' + break; + case 130: // 'following' + shift(130); // 'following' + break; + case 131: // 'following-sibling' + shift(131); // 'following-sibling' + break; + case 140: // 'function' + shift(140); // 'function' + break; + case 147: // 'if' + shift(147); // 'if' + break; + case 148: // 'import' + shift(148); // 'import' + break; + case 154: // 'insert' + shift(154); // 'insert' + break; + case 160: // 'item' + shift(160); // 'item' + break; + case 165: // 'last' + shift(165); // 'last' + break; + case 177: // 'module' + shift(177); // 'module' + break; + case 179: // 'namespace' + shift(179); // 'namespace' + break; + case 180: // 'namespace-node' + shift(180); // 'namespace-node' + break; + case 186: // 'node' + shift(186); // 'node' + break; + case 197: // 'ordered' + shift(197); // 'ordered' + break; + case 201: // 'parent' + shift(201); // 'parent' + break; + case 207: // 'preceding' + shift(207); // 'preceding' + break; + case 208: // 'preceding-sibling' + shift(208); // 'preceding-sibling' + break; + case 211: // 'processing-instruction' + shift(211); // 'processing-instruction' + break; + case 213: // 'rename' + shift(213); // 'rename' + break; + case 214: // 'replace' + shift(214); // 'replace' + break; + case 221: // 'schema-attribute' + shift(221); // 'schema-attribute' + break; + case 222: // 'schema-element' + shift(222); // 'schema-element' + break; + case 224: // 'self' + shift(224); // 'self' + break; + case 230: // 'some' + shift(230); // 'some' + break; + case 238: // 'switch' + shift(238); // 'switch' + break; + case 239: // 'text' + shift(239); // 'text' + break; + case 245: // 'try' + shift(245); // 'try' + break; + case 248: // 'typeswitch' + shift(248); // 'typeswitch' + break; + case 251: // 'unordered' + shift(251); // 'unordered' + break; + case 255: // 'validate' + shift(255); // 'validate' + break; + case 257: // 'variable' + shift(257); // 'variable' + break; + case 269: // 'xquery' + shift(269); // 'xquery' + break; + case 67: // 'allowing' + shift(67); // 'allowing' + break; + case 76: // 'at' + shift(76); // 'at' + break; + case 78: // 'base-uri' + shift(78); // 'base-uri' + break; + case 80: // 'boundary-space' + shift(80); // 'boundary-space' + break; + case 81: // 'break' + shift(81); // 'break' + break; + case 86: // 'catch' + shift(86); // 'catch' + break; + case 93: // 'construction' + shift(93); // 'construction' + break; + case 96: // 'context' + shift(96); // 'context' + break; + case 97: // 'continue' + shift(97); // 'continue' + break; + case 99: // 'copy-namespaces' + shift(99); // 'copy-namespaces' + break; + case 101: // 'decimal-format' + shift(101); // 'decimal-format' + break; + case 120: // 'encoding' + shift(120); // 'encoding' + break; + case 127: // 'exit' + shift(127); // 'exit' + break; + case 128: // 'external' + shift(128); // 'external' + break; + case 136: // 'ft-option' + shift(136); // 'ft-option' + break; + case 149: // 'in' + shift(149); // 'in' + break; + case 150: // 'index' + shift(150); // 'index' + break; + case 156: // 'integrity' + shift(156); // 'integrity' + break; + case 166: // 'lax' + shift(166); // 'lax' + break; + case 187: // 'nodes' + shift(187); // 'nodes' + break; + case 194: // 'option' + shift(194); // 'option' + break; + case 198: // 'ordering' + shift(198); // 'ordering' + break; + case 217: // 'revalidation' + shift(217); // 'revalidation' + break; + case 220: // 'schema' + shift(220); // 'schema' + break; + case 223: // 'score' + shift(223); // 'score' + break; + case 229: // 'sliding' + shift(229); // 'sliding' + break; + case 235: // 'strict' + shift(235); // 'strict' + break; + case 246: // 'tumbling' + shift(246); // 'tumbling' + break; + case 247: // 'type' + shift(247); // 'type' + break; + case 252: // 'updating' + shift(252); // 'updating' + break; + case 256: // 'value' + shift(256); // 'value' + break; + case 258: // 'version' + shift(258); // 'version' + break; + case 262: // 'while' + shift(262); // 'while' + break; + case 92: // 'constraint' + shift(92); // 'constraint' + break; + case 171: // 'loop' + shift(171); // 'loop' + break; + default: + shift(216); // 'returning' + } + eventHandler.endNonterminal("NCName", e0); + } + + function shift(t) + { + if (l1 == t) + { + whitespace(); + eventHandler.terminal(XQueryTokenizer.TOKEN[l1], b1, e1 > size ? size : e1); + b0 = b1; e0 = e1; l1 = 0; + } + else + { + error(b1, e1, 0, l1, t); + } + } + + function whitespace() + { + if (e0 != b1) + { + b0 = e0; + e0 = b1; + eventHandler.whitespace(b0, e0); + } + } + + function matchW(set) + { + var code; + for (;;) + { + code = match(set); + if (code != 28) // S^WS + { + break; + } + } + return code; + } + + function lookahead1W(set) + { + if (l1 == 0) + { + l1 = matchW(set); + b1 = begin; + e1 = end; + } + } + + function lookahead1(set) + { + if (l1 == 0) + { + l1 = match(set); + b1 = begin; + e1 = end; + } + } + + function error(b, e, s, l, t) + { + throw new self.ParseException(b, e, s, l, t); + } + + var lk, b0, e0; + var l1, b1, e1; + var eventHandler; + + var input; + var size; + var begin; + var end; + + function match(tokenSetId) + { + var nonbmp = false; + begin = end; + var current = end; + var result = XQueryTokenizer.INITIAL[tokenSetId]; + var state = 0; + + for (var code = result & 4095; code != 0; ) + { + var charclass; + var c0 = current < size ? input.charCodeAt(current) : 0; + ++current; + if (c0 < 0x80) + { + charclass = XQueryTokenizer.MAP0[c0]; + } + else if (c0 < 0xd800) + { + var c1 = c0 >> 4; + charclass = XQueryTokenizer.MAP1[(c0 & 15) + XQueryTokenizer.MAP1[(c1 & 31) + XQueryTokenizer.MAP1[c1 >> 5]]]; + } + else + { + if (c0 < 0xdc00) + { + var c1 = current < size ? input.charCodeAt(current) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) + { + ++current; + c0 = ((c0 & 0x3ff) << 10) + (c1 & 0x3ff) + 0x10000; + nonbmp = true; + } + } + var lo = 0, hi = 5; + for (var m = 3; ; m = (hi + lo) >> 1) + { + if (XQueryTokenizer.MAP2[m] > c0) hi = m - 1; + else if (XQueryTokenizer.MAP2[6 + m] < c0) lo = m + 1; + else {charclass = XQueryTokenizer.MAP2[12 + m]; break;} + if (lo > hi) {charclass = 0; break;} + } + } + + state = code; + var i0 = (charclass << 12) + code - 1; + code = XQueryTokenizer.TRANSITION[(i0 & 15) + XQueryTokenizer.TRANSITION[i0 >> 4]]; + + if (code > 4095) + { + result = code; + code &= 4095; + end = current; + } + } + + result >>= 12; + if (result == 0) + { + end = current - 1; + var c1 = end < size ? input.charCodeAt(end) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) --end; + return error(begin, end, state, -1, -1); + } + + if (nonbmp) + { + for (var i = result >> 9; i > 0; --i) + { + --end; + var c1 = end < size ? input.charCodeAt(end) : 0; + if (c1 >= 0xdc00 && c1 < 0xe000) --end; + } + } + else + { + end -= result >> 9; + } + + return (result & 511) - 1; + } +} + +XQueryTokenizer.getTokenSet = function(tokenSetId) +{ + var set = []; + var s = tokenSetId < 0 ? - tokenSetId : INITIAL[tokenSetId] & 4095; + for (var i = 0; i < 276; i += 32) + { + var j = i; + var i0 = (i >> 5) * 2062 + s - 1; + var i1 = i0 >> 2; + var i2 = i1 >> 2; + var f = XQueryTokenizer.EXPECTED[(i0 & 3) + XQueryTokenizer.EXPECTED[(i1 & 3) + XQueryTokenizer.EXPECTED[(i2 & 3) + XQueryTokenizer.EXPECTED[i2 >> 2]]]]; + for ( ; f != 0; f >>>= 1, ++j) + { + if ((f & 1) != 0) + { + set.push(XQueryTokenizer.TOKEN[j]); + } + } + } + return set; +}; + +XQueryTokenizer.MAP0 = +[ 66, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 35, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 31, 61, 62, 63, 64, 35 +]; + +XQueryTokenizer.MAP1 = +[ 108, 124, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 156, 181, 181, 181, 181, 181, 214, 215, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 247, 261, 277, 293, 309, 347, 363, 379, 416, 416, 416, 408, 331, 323, 331, 323, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 433, 433, 433, 433, 433, 433, 433, 316, 331, 331, 331, 331, 331, 331, 331, 331, 394, 416, 416, 417, 415, 416, 416, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 330, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 416, 66, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 27, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 35, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 31, 31, 33, 31, 31, 31, 31, 31, 31, 34, 35, 36, 35, 31, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 31, 61, 62, 63, 64, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 31, 31, 35, 35, 35, 35, 35, 35, 35, 65, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65 +]; + +XQueryTokenizer.MAP2 = +[ 57344, 63744, 64976, 65008, 65536, 983040, 63743, 64975, 65007, 65533, 983039, 1114111, 35, 31, 35, 31, 31, 35 +]; + +XQueryTokenizer.INITIAL = +[ 1, 2, 36867, 45060, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 +]; + +XQueryTokenizer.TRANSITION = +[ 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22908, 18836, 17152, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17365, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 17470, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18157, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 17848, 17880, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18023, 36545, 18621, 18039, 18056, 18072, 18117, 18143, 18173, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17687, 18805, 18421, 18437, 18101, 17393, 18489, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18579, 21711, 17152, 19008, 19233, 20367, 19008, 28684, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17365, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 17470, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18157, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 17848, 17880, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18023, 36545, 18621, 18039, 18056, 18072, 18117, 18143, 18173, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17687, 18805, 18421, 18437, 18101, 17393, 18489, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 20116, 18836, 18637, 19008, 19233, 21267, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18763, 18778, 18794, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 18821, 22923, 18906, 19008, 19233, 17431, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18937, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 19054, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 18953, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21843, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21696, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22429, 20131, 18720, 19008, 19233, 20367, 19008, 17173, 23559, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 18087, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 21242, 19111, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19024, 18836, 18609, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19081, 22444, 18987, 19008, 19233, 20367, 19008, 19065, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21992, 22007, 18987, 19008, 19233, 20367, 19008, 18690, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22414, 18836, 18987, 19008, 19233, 30651, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 19138, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 19280, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 19172, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21783, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 19218, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21651, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 19249, 19265, 19307, 18888, 27857, 30536, 24401, 31444, 23357, 18888, 19351, 18888, 18890, 27211, 19370, 27211, 27211, 19392, 24401, 31911, 24401, 24401, 25467, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19440, 24401, 24401, 24401, 24401, 24036, 17994, 24060, 18888, 18888, 18888, 18890, 19468, 27211, 27211, 27211, 27211, 19484, 35367, 19520, 24401, 24401, 24401, 19628, 18888, 29855, 18888, 18888, 23086, 27211, 19538, 27211, 27211, 30756, 24012, 24401, 19560, 24401, 24401, 26750, 18888, 18888, 19327, 27855, 27211, 27211, 19580, 17590, 24017, 24401, 24401, 19600, 25665, 18888, 18888, 28518, 27211, 27212, 24016, 19620, 19868, 28435, 25722, 18889, 19644, 27211, 32888, 35852, 19868, 31018, 19694, 19376, 19717, 22215, 19735, 22098, 19751, 35203, 19776, 19797, 19817, 19840, 25783, 31738, 24135, 19701, 19856, 31015, 23516, 31008, 28311, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21768, 18836, 19307, 18888, 27857, 27904, 24401, 29183, 28015, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 19888, 24401, 24401, 24401, 24401, 22953, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19440, 24401, 24401, 24401, 24401, 24036, 18881, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22399, 18836, 19918, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21666, 18836, 19307, 18888, 27857, 27525, 24401, 29183, 21467, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 19946, 24401, 24401, 24401, 24401, 32382, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 19998, 24401, 24401, 24401, 24401, 31500, 18467, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 20021, 24401, 24401, 24401, 24401, 24401, 34271, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 32926, 29908, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 20050, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 20101, 19039, 20191, 20412, 20903, 17569, 20309, 20872, 25633, 20623, 20505, 20218, 20242, 17189, 17208, 17281, 20355, 20265, 20306, 20328, 20383, 22490, 20796, 20619, 21354, 20654, 20410, 20956, 21232, 20765, 17421, 20535, 17192, 18127, 22459, 20312, 25531, 22470, 20309, 20428, 18964, 20466, 20491, 21342, 21070, 20521, 20682, 17714, 18326, 17543, 17559, 17585, 22497, 20559, 19504, 20279, 20575, 20290, 20475, 20604, 20639, 20226, 20670, 17661, 21190, 17703, 21176, 17730, 19494, 20698, 20711, 22480, 21046, 21116, 18971, 21130, 20727, 20755, 17675, 17753, 17832, 17590, 25518, 20394, 20781, 20831, 20202, 20847, 21401, 17292, 17934, 17979, 18549, 20863, 20588, 25542, 20888, 20919, 18072, 18117, 20935, 20972, 21032, 21062, 21086, 18239, 21102, 18563, 21146, 21162, 21206, 18351, 20949, 20902, 18340, 21222, 21258, 21283, 18360, 20249, 17405, 21295, 21311, 21327, 20739, 20343, 21370, 21386, 21417, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21977, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 21452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 21504, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 36501, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 28674, 21946, 17617, 36473, 18223, 17237, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 21575, 21534, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 21560, 30628, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21798, 18836, 21612, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21636, 18836, 18987, 19008, 19233, 17902, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21753, 19096, 21903, 19008, 19233, 20367, 19008, 19291, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 17379, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 21931, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 18280, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21962, 18594, 18987, 19008, 19233, 22043, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21681, 21858, 18987, 19008, 19233, 20367, 19008, 21544, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 32319, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 22231, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 31678, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 33588, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 35019, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22248, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 31500, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 21431, 24401, 24401, 24401, 24401, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22324, 18836, 22059, 18888, 27857, 30501, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 34365, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22354, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 27086, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 19930, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22309, 22513, 18987, 19008, 19233, 20367, 19008, 19122, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 22544, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22608, 18836, 22988, 23004, 27585, 23020, 23036, 23067, 22087, 18888, 18888, 18888, 23083, 27211, 27211, 27211, 23102, 22121, 24401, 24401, 24401, 23122, 31386, 26154, 19674, 18888, 28119, 28232, 19424, 23705, 27211, 27211, 23142, 23173, 23189, 23212, 24401, 24401, 23246, 34427, 31693, 23262, 18888, 23290, 23308, 27783, 27620, 23327, 35263, 35107, 33383, 23346, 18193, 23393, 32748, 23968, 24401, 23414, 35153, 23463, 18888, 33913, 23442, 23482, 27211, 27211, 23532, 23552, 21431, 23575, 24401, 24401, 23604, 26095, 23635, 23657, 18888, 33482, 23685, 33251, 27211, 22187, 18851, 23721, 35536, 24401, 18887, 23750, 32641, 27211, 23769, 23787, 20080, 33012, 24384, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 23803, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 28224, 31826, 23823, 26917, 34978, 23850, 26493, 25782, 23878, 23914, 23516, 31008, 22105, 19419, 27963, 19659, 29781, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22623, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 28909, 25783, 27211, 27211, 27211, 34048, 23933, 22164, 24401, 24401, 24401, 28409, 23949, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 31181, 26583, 18888, 18888, 18888, 35585, 23984, 27211, 27211, 27211, 24005, 22201, 24033, 24401, 24401, 24401, 24052, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 26496, 24076, 24126, 24151, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22638, 18836, 22059, 19678, 27857, 24185, 24401, 24201, 24217, 26592, 18888, 18888, 18890, 24252, 24268, 27211, 27211, 22121, 24287, 24303, 24401, 24401, 30613, 19781, 35432, 36007, 32649, 18888, 25783, 24322, 28966, 23771, 27211, 35072, 22164, 24358, 32106, 26829, 24400, 31500, 31693, 18888, 18888, 18888, 24801, 18890, 27211, 27211, 27211, 27211, 24418, 19484, 24401, 24401, 24401, 24401, 20167, 31181, 18888, 18888, 18888, 27833, 23086, 27211, 27211, 33540, 27211, 30756, 21431, 24401, 24401, 22972, 24401, 26095, 18888, 36131, 18888, 27855, 27211, 24440, 27211, 22187, 22968, 24401, 24459, 24401, 31699, 28454, 18888, 34528, 34570, 35779, 24478, 24402, 24494, 25659, 18888, 36228, 27211, 27211, 24515, 30981, 23734, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 24538, 31017, 27856, 31741, 30059, 23377, 24563, 19837, 25782, 19760, 31015, 23516, 25374, 22105, 19419, 29793, 24579, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22653, 18836, 22059, 25756, 19982, 34097, 23196, 29183, 24614, 24110, 23641, 24673, 26103, 24697, 24443, 24713, 28558, 22121, 24748, 24462, 24764, 23398, 30613, 18888, 18888, 18888, 18888, 24798, 25783, 27211, 27211, 27211, 34232, 35072, 22164, 24401, 24401, 24401, 33302, 31500, 22559, 24106, 24232, 18888, 18888, 34970, 24817, 30411, 27211, 27211, 32484, 19484, 29750, 35127, 24401, 24401, 19872, 31181, 24852, 18888, 18888, 24871, 29221, 27211, 27211, 32072, 27211, 30756, 34441, 24401, 24401, 31571, 24401, 26095, 33141, 27802, 27011, 27855, 25295, 25607, 24888, 22187, 22968, 19195, 34593, 24906, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 18888, 33663, 27211, 27211, 24924, 24947, 23588, 31018, 18890, 27211, 31833, 22135, 19447, 23086, 23330, 19828, 30904, 31042, 24972, 19840, 25000, 31738, 30898, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 25016, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22668, 18836, 25041, 25057, 31320, 25073, 25089, 25105, 22087, 34796, 24236, 36138, 34870, 34125, 25121, 23106, 35497, 22248, 36613, 25137, 30671, 27365, 30613, 25153, 26447, 25199, 25233, 22574, 23274, 25249, 25265, 25281, 25318, 25344, 25360, 25400, 25428, 25452, 26731, 25504, 31693, 23669, 25558, 27407, 25575, 28599, 25934, 25599, 27211, 28180, 27304, 25623, 25839, 25649, 24401, 34820, 25681, 25698, 22586, 27775, 30190, 25745, 25778, 25799, 25817, 28995, 33569, 30756, 21518, 33443, 25837, 25855, 25893, 26095, 31254, 26677, 30136, 27855, 25930, 25950, 27211, 22187, 22968, 25966, 25986, 24401, 23428, 27763, 36330, 26959, 26002, 26029, 26045, 26085, 26119, 26170, 26203, 26222, 26239, 30527, 26372, 26274, 28404, 31018, 33757, 27211, 34262, 26316, 36729, 26345, 26366, 35337, 31017, 26388, 26407, 30954, 26350, 33861, 26434, 26463, 26479, 26512, 23516, 33189, 26531, 26547, 27963, 31293, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22683, 18836, 26568, 26181, 26608, 34097, 26643, 29183, 22087, 26669, 18888, 18888, 18890, 26693, 27211, 27211, 27211, 22121, 26720, 24401, 24401, 24401, 30613, 18888, 18888, 18888, 18888, 26774, 25783, 27211, 27211, 27211, 26619, 35072, 22164, 24401, 24401, 24401, 21596, 31500, 31693, 18888, 18888, 33978, 18888, 18890, 27211, 27211, 25801, 27211, 27211, 19484, 24401, 24401, 24401, 26792, 24401, 31181, 18888, 18888, 18888, 35464, 23086, 27211, 27211, 27211, 26809, 30756, 21431, 24401, 24401, 24401, 26828, 26095, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 22187, 22968, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 35779, 20080, 24402, 19868, 25659, 31948, 18889, 35707, 27211, 19719, 26845, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 26905, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 24984, 31088, 19419, 26945, 27651, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22698, 18836, 26999, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 23051, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 27033, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 27056, 18888, 18890, 27211, 27211, 30320, 27211, 27211, 27075, 24401, 24401, 29032, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 33986, 27855, 27211, 27211, 27102, 17590, 24017, 24401, 24401, 27123, 27144, 36254, 27162, 27210, 27228, 28500, 18187, 34842, 33426, 27244, 35980, 27277, 27302, 27320, 36048, 34013, 20999, 31882, 21478, 27895, 27356, 30287, 27381, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 26329, 30087, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 27406, 27423, 27445, 35294, 27461, 22087, 18888, 18888, 30140, 18890, 27211, 27211, 27989, 27211, 22121, 24401, 24401, 25682, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 34042, 27211, 27211, 27211, 27211, 29700, 22164, 24401, 24401, 24401, 24401, 27128, 31693, 27477, 18888, 18888, 18888, 18890, 27194, 27211, 27211, 27211, 27211, 19484, 35299, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 27059, 23086, 27211, 27211, 27211, 33366, 30756, 24012, 24401, 24401, 24401, 35044, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 20815, 27211, 30818, 19960, 33969, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22713, 18836, 22059, 27496, 27516, 27541, 35231, 27557, 22087, 29662, 26292, 23292, 27573, 24836, 27601, 27211, 27636, 22121, 35544, 27686, 24401, 27721, 18866, 18888, 27799, 18888, 27818, 22071, 27853, 32260, 27211, 26013, 27873, 27920, 22164, 29419, 24401, 29946, 33413, 26742, 27751, 26881, 18888, 18888, 27261, 36776, 27936, 27211, 27211, 27211, 27988, 28005, 28031, 28052, 24401, 24401, 28069, 28088, 28135, 25488, 28152, 26069, 28167, 27211, 28340, 24657, 28196, 30756, 31523, 24401, 28212, 34176, 36174, 24956, 28248, 28266, 28290, 21488, 33077, 28327, 28356, 17590, 20986, 23126, 28391, 28425, 28102, 28451, 28470, 28490, 28516, 28534, 20034, 33728, 25868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 30241, 28274, 28553, 28574, 19406, 28590, 23086, 23330, 19828, 19452, 28615, 28660, 26147, 25783, 31738, 19837, 25782, 19760, 29613, 35958, 29276, 22105, 19419, 27963, 23157, 28700, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 18888, 27857, 34097, 24401, 29183, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 22528, 18888, 18888, 18888, 18888, 18890, 27333, 27211, 27211, 27211, 27211, 19484, 30853, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22728, 18836, 28747, 28782, 28817, 28841, 28857, 28880, 28896, 24161, 28943, 32011, 36261, 27340, 28961, 29492, 28982, 29011, 24522, 29027, 25436, 29048, 23051, 27500, 29090, 29110, 30713, 18888, 23512, 29130, 25183, 27211, 29155, 28927, 27033, 29173, 23230, 24401, 29199, 35373, 31693, 18888, 18888, 25583, 32629, 29218, 27211, 27211, 31461, 30692, 29237, 27075, 24401, 24401, 24401, 29262, 29302, 19628, 18888, 34329, 18888, 18888, 23086, 27211, 29329, 27211, 27211, 30756, 24012, 35933, 24401, 24401, 24401, 27705, 31612, 18888, 18888, 29346, 29374, 27211, 35650, 17590, 21436, 29393, 24401, 25970, 18887, 33895, 18888, 27211, 32528, 27212, 24016, 32769, 19868, 25659, 18888, 26889, 27211, 27211, 29412, 23889, 24371, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31768, 19840, 25783, 31738, 19837, 29435, 29508, 31102, 29550, 29606, 22105, 30300, 29462, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22743, 18836, 22059, 29629, 29473, 34097, 33285, 29183, 29651, 27254, 18888, 29678, 33329, 32535, 27211, 29694, 29716, 22121, 19202, 24401, 32742, 29741, 18866, 26776, 33921, 28474, 18888, 18888, 25783, 29766, 27211, 29809, 27211, 35072, 22164, 35825, 24401, 29828, 24401, 24036, 36769, 25217, 18888, 18888, 29848, 18890, 27211, 29871, 27211, 26258, 27211, 29894, 24401, 29929, 24401, 36587, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 29725, 29962, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18473, 18888, 18888, 19584, 27211, 27212, 24016, 29982, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19902, 19447, 32052, 19544, 19828, 29998, 30097, 30031, 19840, 25783, 30047, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 30075, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22758, 18836, 30121, 30156, 30206, 30257, 30273, 30336, 22087, 35624, 32837, 25762, 18890, 29878, 34934, 26812, 27211, 22121, 24931, 23223, 29202, 24401, 18866, 34373, 30352, 18888, 18888, 18888, 23447, 24828, 27211, 27211, 27211, 35072, 30370, 35052, 24401, 24401, 24401, 24036, 29523, 18888, 18888, 27146, 18888, 31308, 30386, 27211, 27211, 30405, 30558, 19484, 30427, 24401, 24401, 29938, 35686, 19628, 28766, 30447, 34506, 35614, 23086, 28731, 30482, 30517, 30552, 30756, 24012, 20156, 30574, 30598, 30667, 26283, 33464, 28945, 27670, 30687, 32915, 33504, 25328, 17590, 23963, 20450, 33837, 21016, 32397, 26300, 30708, 30729, 27885, 30748, 21588, 36373, 30779, 26653, 24628, 33220, 32514, 30806, 31835, 25412, 25906, 26515, 18890, 28825, 31833, 26133, 19447, 28304, 31730, 23834, 26057, 30869, 30885, 32181, 30920, 30942, 32797, 25782, 30970, 31015, 23516, 31008, 30997, 31034, 27963, 19659, 29450, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22773, 18836, 31058, 31074, 32463, 31125, 31141, 31197, 22087, 18888, 29534, 35471, 36738, 27211, 24342, 31213, 24424, 22121, 24401, 20175, 31229, 31917, 27736, 31245, 34334, 27175, 18888, 29094, 27286, 27211, 31278, 31336, 27211, 31355, 31371, 24401, 31402, 31418, 24401, 31437, 31693, 18888, 31619, 32841, 18888, 18890, 27211, 27211, 31460, 31477, 27211, 19484, 24401, 24401, 31497, 36581, 24401, 33020, 18888, 18888, 18888, 18888, 30007, 27211, 27211, 27211, 27211, 31516, 32310, 24401, 24401, 24401, 24401, 31539, 18888, 28762, 18888, 24651, 35740, 27211, 27211, 28644, 31565, 35796, 24401, 24401, 19318, 32188, 18888, 24334, 28366, 27212, 29966, 29832, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 31587, 19868, 31635, 32435, 33693, 30105, 31663, 20005, 31715, 31757, 31784, 31812, 30015, 31851, 31878, 25783, 31898, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 31933, 30221, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22788, 18836, 22059, 25729, 30466, 31968, 24306, 31984, 32000, 32807, 35160, 27017, 29590, 34941, 19801, 29377, 33700, 22121, 27040, 30431, 29396, 28864, 29565, 18888, 18888, 18888, 32027, 18888, 25783, 27211, 27211, 23698, 27211, 35072, 22164, 24401, 24401, 30845, 24401, 24036, 32045, 18888, 26929, 18888, 18888, 18890, 27211, 31481, 32068, 27211, 27211, 32088, 24401, 33058, 32122, 24401, 24401, 33736, 18888, 18888, 33162, 18888, 23086, 27211, 27211, 29484, 27211, 28375, 32144, 24401, 24401, 33831, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 36704, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 33107, 22171, 33224, 24271, 32169, 31017, 27856, 31741, 19840, 25783, 31738, 30234, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 32204, 32232, 32252, 32677, 33295, 29074, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 23619, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 32276, 24401, 24401, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 32299, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 33886, 18889, 36065, 27211, 19719, 35326, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22803, 18836, 32335, 31647, 34666, 32351, 32367, 32417, 22087, 18888, 32433, 19335, 32451, 27211, 32479, 27107, 32500, 22121, 24401, 32551, 20085, 32572, 18866, 22287, 23753, 18888, 18888, 32602, 32665, 27211, 32693, 27211, 26972, 32713, 32729, 24401, 32764, 24401, 25877, 32785, 34768, 18888, 27390, 32823, 24594, 24855, 32857, 24890, 32878, 32904, 27211, 32942, 32977, 24401, 33000, 29313, 24401, 30790, 26206, 27666, 33904, 18888, 23086, 36353, 27211, 33036, 27211, 30756, 24012, 32153, 24401, 33056, 24401, 35861, 18888, 18888, 30354, 27972, 27211, 27211, 33800, 17590, 20145, 24401, 24401, 34638, 20811, 18888, 18888, 33074, 27211, 27212, 36167, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 34616, 24169, 33093, 33123, 33157, 27856, 31741, 23862, 26552, 34302, 19837, 25782, 19760, 31015, 23516, 31008, 33178, 19973, 27963, 23497, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22818, 18836, 33205, 28113, 33240, 34097, 33275, 29183, 22087, 33318, 35438, 18888, 18890, 33345, 26391, 33382, 27211, 22121, 33399, 28072, 33442, 24401, 18866, 22232, 18888, 33459, 18888, 18888, 33480, 33498, 25175, 27211, 27211, 26704, 22164, 24775, 35239, 24401, 24401, 25914, 29580, 18888, 18888, 31109, 25211, 33520, 33539, 27211, 27211, 33556, 36284, 19484, 33585, 24401, 24401, 33604, 32556, 19628, 18888, 18888, 31262, 33658, 23086, 27211, 27211, 33679, 27211, 30756, 24012, 24401, 24401, 33716, 24401, 26854, 27480, 18888, 33752, 27855, 33259, 34701, 27211, 17590, 32102, 24782, 23807, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 33773, 36105, 19868, 25659, 18888, 23368, 27211, 29157, 19719, 23889, 34454, 29286, 18890, 33794, 25302, 33816, 19447, 34079, 33853, 31862, 31017, 27856, 31741, 33877, 28920, 33937, 19837, 30461, 34002, 22276, 36041, 34029, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22833, 18836, 34064, 32616, 34113, 34141, 34157, 34192, 34208, 32216, 36013, 31549, 31952, 34224, 34248, 34287, 29330, 34350, 34389, 34413, 34481, 26793, 18866, 26187, 29635, 22293, 18888, 36654, 25783, 34522, 34544, 34566, 25821, 35072, 22164, 34586, 34609, 34632, 19604, 24036, 36644, 36674, 24681, 18888, 32401, 34654, 31339, 34682, 34698, 27211, 34717, 34753, 28053, 34812, 34836, 24401, 33619, 19628, 34858, 32236, 34906, 24598, 33523, 27612, 34890, 34922, 24732, 29246, 36717, 33634, 34465, 32984, 34168, 26750, 34957, 18888, 18888, 34994, 35010, 27211, 33040, 17590, 29913, 35035, 24401, 36304, 25482, 30171, 35883, 35068, 35088, 26627, 20441, 31173, 35123, 35143, 35176, 24640, 30492, 29358, 19719, 35192, 35219, 25384, 28801, 35255, 35279, 32586, 34496, 23086, 23330, 29061, 31017, 27856, 31741, 19840, 25783, 31738, 24547, 25164, 35315, 31796, 35353, 34316, 22105, 19419, 27963, 24091, 28630, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22848, 18836, 22059, 34782, 34088, 35389, 21008, 35405, 35421, 35454, 18888, 18888, 23466, 35487, 27211, 27211, 27211, 35513, 31154, 24401, 24401, 24401, 35560, 18888, 26863, 36664, 35601, 24872, 25783, 30389, 23536, 26250, 35647, 35666, 22164, 19522, 19564, 30582, 35682, 27697, 35575, 29114, 18888, 18888, 18888, 18890, 27211, 35702, 27211, 27211, 27211, 35723, 24401, 35527, 24401, 24401, 24401, 19628, 30184, 18888, 18888, 18888, 23086, 35739, 27211, 27211, 27211, 29139, 22938, 24401, 24401, 24401, 24401, 23898, 35756, 18888, 18888, 25025, 35778, 27211, 27211, 17590, 20064, 35795, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 23917, 18890, 34550, 31833, 22262, 19447, 23086, 23330, 26418, 31017, 27856, 31741, 19840, 25783, 35812, 19837, 27187, 35841, 33135, 23516, 31008, 22105, 22148, 28712, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22863, 18836, 22059, 35877, 28723, 34097, 31164, 29183, 22087, 26758, 18888, 22592, 18890, 23989, 27211, 29812, 27211, 22121, 33778, 24401, 31421, 24401, 18866, 18888, 18888, 26872, 18888, 18888, 25783, 27211, 30732, 27211, 27211, 35072, 22164, 24401, 24908, 24401, 24401, 24036, 31693, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22878, 18836, 22059, 27837, 27857, 35899, 24401, 35915, 22087, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 22121, 24401, 24401, 24401, 24401, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 31602, 18888, 18888, 18888, 18888, 26223, 27211, 27211, 27211, 27211, 27211, 19484, 35931, 24401, 24401, 24401, 24401, 19628, 18888, 28136, 18888, 18888, 35949, 27211, 32862, 27211, 32697, 30756, 24012, 24401, 32283, 24401, 32128, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22893, 18836, 22059, 35974, 34882, 34097, 33960, 29183, 35996, 18888, 23311, 18888, 36029, 27211, 27211, 36064, 36081, 22121, 24401, 24401, 36104, 33950, 18866, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 35072, 22164, 24401, 24401, 24401, 24401, 24036, 36121, 18888, 25559, 18888, 18888, 18890, 27211, 27211, 30313, 27211, 27211, 36154, 24401, 24401, 34397, 24401, 24401, 19628, 28250, 18888, 18888, 18888, 23086, 30926, 27211, 27211, 27211, 26983, 24012, 33642, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22339, 18836, 22059, 19354, 27857, 36190, 24401, 36206, 22087, 18888, 18888, 18888, 18007, 27211, 27211, 27211, 24724, 22121, 24401, 24401, 24401, 30827, 18866, 18888, 36222, 18888, 28795, 18888, 25783, 35100, 27211, 27429, 27211, 35072, 22164, 30836, 24401, 24499, 24401, 24036, 31693, 18888, 36244, 18888, 18888, 18890, 27211, 36088, 27211, 27211, 27211, 19484, 24401, 28036, 24401, 24401, 24401, 19628, 18888, 18888, 35631, 18888, 35762, 27211, 27211, 36277, 27211, 34730, 24012, 24401, 24401, 36300, 24401, 36320, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 25712, 18888, 18888, 36346, 27211, 27212, 19184, 24402, 19868, 25659, 32029, 18889, 27211, 33359, 19719, 23889, 36369, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22384, 18836, 36389, 19008, 19233, 20367, 36434, 17173, 17595, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 36453, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20362, 21726, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 22369, 18836, 18987, 19008, 19233, 20367, 19008, 21737, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17949, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21813, 18836, 36489, 19008, 19233, 20367, 19008, 17173, 17737, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17768, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20543, 22022, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 18987, 19008, 19233, 20367, 19008, 17173, 30763, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 36517, 17308, 17327, 17346, 18918, 18452, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 18127, 21873, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 21828, 18836, 19307, 18888, 27857, 30756, 24401, 29183, 28015, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 36567, 24401, 24401, 24401, 24401, 22953, 18888, 18888, 18888, 18888, 18888, 25783, 27211, 27211, 27211, 27211, 28537, 36603, 24401, 24401, 24401, 24401, 24036, 18881, 18888, 18888, 18888, 18888, 18890, 27211, 27211, 27211, 27211, 27211, 19484, 24401, 24401, 24401, 24401, 24401, 19628, 18888, 18888, 18888, 18888, 23086, 27211, 27211, 27211, 27211, 30756, 24012, 24401, 24401, 24401, 24401, 26750, 18888, 18888, 18888, 27855, 27211, 27211, 27211, 17590, 24017, 24401, 24401, 24401, 18887, 18888, 18888, 27211, 27211, 27212, 24016, 24402, 19868, 25659, 18888, 18889, 27211, 27211, 19719, 23889, 19868, 31018, 18890, 27211, 31833, 19406, 19447, 23086, 23330, 19828, 31017, 27856, 31741, 19840, 25783, 31738, 19837, 25782, 19760, 31015, 23516, 31008, 22105, 19419, 27963, 19659, 27951, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 36629, 36690, 18720, 19008, 19233, 20367, 19008, 17454, 17595, 36437, 17330, 17349, 18921, 17189, 17208, 17281, 20355, 17223, 17308, 17327, 17346, 18918, 36754, 21880, 18649, 18665, 19006, 17265, 22033, 20765, 17421, 20535, 17192, 20362, 21726, 17311, 18658, 18999, 19008, 17447, 32952, 17497, 17520, 17251, 36411, 17782, 20682, 17714, 18326, 17543, 17559, 17585, 21887, 17504, 17527, 17258, 36418, 21915, 21940, 17611, 36467, 18217, 17633, 17661, 21190, 17703, 21176, 17730, 34737, 21946, 17617, 36473, 18223, 36531, 17477, 19152, 17860, 17892, 17675, 17753, 17832, 17590, 21620, 17481, 19156, 17864, 18731, 17918, 36551, 17292, 17934, 17979, 18727, 18681, 18405, 18621, 18039, 18056, 18072, 18117, 18143, 18706, 18052, 18209, 18250, 18239, 18266, 17963, 18296, 18312, 18376, 17807, 36403, 19232, 17796, 17163, 30642, 18392, 17816, 32961, 17645, 18805, 18421, 18437, 18519, 17393, 18747, 18505, 18535, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 17590, 0, 94242, 0, 118820, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2482176, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 2207744, 2404352, 2412544, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3104768, 2605056, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2678784, 2207744, 2695168, 2207744, 2703360, 2207744, 2711552, 2752512, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 3170304, 3174400, 2158592, 0, 139, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2748416, 2756608, 2777088, 2801664, 2158592, 2158592, 2158592, 2863104, 2891776, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2785280, 2207744, 2809856, 2207744, 2207744, 2842624, 2207744, 2207744, 2207744, 2899968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2473984, 2207744, 2207744, 2494464, 2207744, 2207744, 2207744, 2523136, 2158592, 2404352, 2412544, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2564096, 2158592, 2158592, 2605056, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2678784, 2158592, 2695168, 2158592, 2703360, 2158592, 2711552, 2752512, 2158592, 2158592, 2785280, 2158592, 2158592, 2785280, 2158592, 2809856, 2158592, 2158592, 2842624, 2158592, 2158592, 2158592, 2899968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 641, 0, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 32768, 0, 2158592, 0, 2158592, 2158592, 2158592, 2383872, 2158592, 2158592, 2158592, 2158592, 3006464, 2383872, 2207744, 2207744, 2207744, 2207744, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2572573, 2158877, 2158877, 0, 2207744, 2207744, 2596864, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2641920, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 167936, 0, 0, 2162688, 0, 0, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2146304, 2146304, 2224128, 2224128, 2232320, 2232320, 2232320, 641, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2531328, 2158592, 2158592, 2158592, 2158592, 2158592, 2617344, 2158592, 2158592, 2158592, 2158592, 2441216, 2445312, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2502656, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2580480, 2158592, 2158592, 2158592, 2158592, 2621440, 2158592, 2580480, 2158592, 2158592, 2158592, 2158592, 2621440, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2699264, 2158592, 2158592, 2158592, 2158592, 2158592, 2748416, 2756608, 2777088, 2801664, 2207744, 2863104, 2891776, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3018752, 2207744, 3043328, 2207744, 2207744, 2207744, 2207744, 3080192, 2207744, 2207744, 3112960, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 172310, 279, 0, 2162688, 0, 0, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2404352, 2412544, 2158592, 2510848, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2584576, 2158592, 2609152, 2158592, 2158592, 2629632, 2158592, 2158592, 2158592, 2686976, 2158592, 2715648, 2158592, 2158592, 3121152, 2158592, 2158592, 2158592, 3149824, 2158592, 2158592, 3170304, 3174400, 2158592, 2367488, 2207744, 2207744, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2572288, 2158592, 2158592, 0, 2207744, 2207744, 2207744, 2433024, 2207744, 2453504, 2461696, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2510848, 2207744, 2207744, 2207744, 2207744, 2207744, 2531328, 2207744, 2207744, 2207744, 2207744, 2207744, 2617344, 2207744, 2207744, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2572288, 2158592, 2158592, 1508, 2715648, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2867200, 2207744, 2904064, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2580480, 2207744, 2207744, 2207744, 2207744, 2621440, 2207744, 2207744, 2207744, 3149824, 2207744, 2207744, 3170304, 3174400, 2207744, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 2158592, 2158592, 2158592, 2404352, 2412544, 2707456, 2732032, 2207744, 2207744, 2207744, 2822144, 2826240, 2207744, 2895872, 2207744, 2207744, 2924544, 2207744, 2207744, 2973696, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 285, 2158592, 2158592, 3112960, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 2207744, 2207744, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 0, 0, 2535424, 2543616, 2158592, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2990080, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2572288, 2981888, 2207744, 2207744, 3002368, 2207744, 3047424, 3063808, 3076096, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3203072, 2708960, 2732032, 2158592, 2158592, 2158592, 2822144, 2827748, 2158592, 2895872, 2158592, 2158592, 2924544, 2158592, 2158592, 2973696, 2158592, 2981888, 2158592, 2158592, 3002368, 2158592, 3047424, 3063808, 3076096, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3203072, 2981888, 2158592, 2158592, 3003876, 2158592, 3047424, 3063808, 3076096, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3203072, 2207744, 2207744, 2207744, 2207744, 2207744, 2424832, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 20480, 0, 0, 0, 0, 0, 2162688, 20480, 0, 2523136, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2908160, 2527232, 2207744, 2207744, 2576384, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2908160, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 286, 2158592, 2158592, 0, 0, 2158592, 2158592, 2158592, 2158592, 2633728, 2658304, 0, 0, 2740224, 2744320, 0, 2834432, 2207744, 2207744, 2977792, 2207744, 2207744, 2207744, 2207744, 3039232, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3158016, 0, 0, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 933, 45, 45, 45, 45, 442, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 2494464, 2158592, 2158592, 2158592, 2524757, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 1504, 2158592, 2498560, 2158592, 2158592, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 2736128, 2158592, 2158592, 0, 2158592, 2912256, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3108864, 2158592, 2158592, 3133440, 3145728, 3153920, 2375680, 2379776, 2207744, 2207744, 2420736, 2207744, 2449408, 2207744, 2207744, 2207744, 2498560, 2207744, 2207744, 2207744, 2207744, 2568192, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 0, 551, 2158592, 2158592, 2158592, 2158592, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158592, 2506752, 0, 2020, 2158592, 2592768, 2625536, 2207744, 2207744, 2674688, 2736128, 2207744, 2207744, 2207744, 2912256, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 542, 0, 544, 2207744, 3108864, 2207744, 2207744, 3133440, 3145728, 3153920, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 641, 0, 0, 0, 0, 0, 0, 2367488, 2158592, 2498560, 2158592, 2158592, 1621, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 0, 0, 0, 0, 0, 1608, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1107, 97, 97, 1110, 97, 97, 3133440, 3145728, 3153920, 2158592, 2408448, 2416640, 2158592, 2465792, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3014656, 2158592, 2158592, 3051520, 2158592, 2158592, 3100672, 2158592, 2158592, 3121152, 2158592, 2158592, 2158592, 3149824, 2416640, 2207744, 2465792, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2633728, 2658304, 2740224, 2744320, 2834432, 2949120, 2158592, 2985984, 2158592, 2998272, 2158592, 2158592, 2158592, 3129344, 2207744, 2408448, 2949120, 2207744, 2985984, 2207744, 2998272, 2207744, 2207744, 2207744, 3129344, 2158592, 2408448, 2416640, 2158592, 2465792, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 32768, 0, 0, 0, 0, 0, 0, 2367488, 2949120, 2158592, 2985984, 2158592, 2998272, 2158592, 2158592, 2158592, 3129344, 2158592, 2158592, 2478080, 2158592, 2158592, 2158592, 2535424, 2543616, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3117056, 2207744, 2207744, 2478080, 2207744, 2207744, 2207744, 2207744, 2699264, 2207744, 2207744, 2207744, 2207744, 2207744, 2748416, 2756608, 2777088, 2801664, 2207744, 2207744, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 0, 0, 2535709, 2543901, 2158877, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2990365, 2158877, 2158877, 2158730, 2158730, 2158730, 2158730, 2158730, 2572426, 2207744, 2535424, 2543616, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3117056, 2158592, 2158592, 2478080, 2207744, 2207744, 2990080, 2207744, 2207744, 2158592, 2158592, 2482176, 2158592, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 0, 2158592, 2908160, 2158592, 2158592, 2158592, 2977792, 2158592, 2158592, 2158592, 2158592, 3039232, 2158592, 2158592, 3010560, 2207744, 2428928, 2207744, 2514944, 2207744, 2588672, 2207744, 2838528, 2207744, 2207744, 2207744, 3010560, 2158592, 2428928, 2158592, 2514944, 0, 0, 2158592, 2588672, 2158592, 0, 2838528, 2158592, 2158592, 2158592, 3010560, 2158592, 2506752, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 0, 29315, 922, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1539, 45, 3006464, 2383872, 0, 2020, 2158592, 2158592, 2158592, 2158592, 3006464, 2158592, 2637824, 2953216, 2158592, 2207744, 2637824, 2953216, 2207744, 0, 0, 2158592, 2637824, 2953216, 2158592, 2539520, 2158592, 2539520, 2207744, 0, 0, 2539520, 2158592, 2158592, 2158592, 2158592, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158592, 2506752, 0, 0, 2158592, 2207744, 0, 2158592, 2158592, 2207744, 0, 2158592, 2158592, 2207744, 0, 2158592, 2965504, 2965504, 2965504, 0, 0, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2474269, 2158877, 2158877, 0, 0, 2158877, 2158877, 2158877, 2158877, 2634013, 2658589, 0, 0, 2740509, 2744605, 0, 2834717, 40976, 18, 36884, 45078, 24, 28, 90143, 94242, 118820, 102439, 106538, 98347, 118820, 118820, 118820, 40976, 18, 18, 36884, 0, 0, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 86016, 0, 0, 2211840, 102439, 0, 0, 0, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 0, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 135, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2564096, 2158592, 2158592, 2158592, 2158592, 2158592, 2596864, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2641920, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2781184, 2793472, 2494464, 2158592, 2158592, 2158592, 2523136, 2527232, 2158592, 2158592, 2576384, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 0, 27, 27, 0, 2158592, 2498560, 2158592, 2158592, 0, 2158592, 2158592, 2568192, 2158592, 2592768, 2625536, 2158592, 2158592, 2674688, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2473984, 2158592, 2158592, 2494464, 2158592, 2158592, 2158592, 3006464, 2383872, 0, 0, 2158592, 2158592, 2158592, 2158592, 3006464, 2158592, 2637824, 2953216, 2158592, 2207744, 2637824, 2953216, 40976, 18, 36884, 45078, 24, 27, 147488, 94242, 147456, 147488, 106538, 98347, 0, 0, 147456, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 0, 81920, 0, 94242, 0, 0, 0, 2211840, 0, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2428928, 2158592, 2514944, 2158592, 2588672, 2158592, 2838528, 2158592, 2158592, 40976, 18, 151573, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 0, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 1315, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1487, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 0, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 130, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3096576, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2158592, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 644, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 1080, 0, 1084, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2531466, 2158730, 2158730, 2158730, 2158730, 2158730, 2617482, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2781184, 2793472, 2158592, 2818048, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 45078, 24, 27, 90143, 159779, 159744, 102439, 159779, 98347, 0, 0, 159744, 40976, 18, 18, 36884, 0, 45078, 0, 2224253, 172032, 2224253, 2232448, 2232448, 172032, 2232448, 90143, 0, 0, 2170880, 0, 0, 550, 829, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 124, 124, 127, 127, 127, 40976, 18, 36884, 45078, 25, 29, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 163931, 40976, 18, 18, 36884, 0, 45078, 249856, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 2170880, 0, 0, 827, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 4243810, 4243810, 24, 24, 27, 27, 27, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 0, 0, 0, 0, 57344, 286, 2158592, 2158592, 2158592, 2158592, 2707456, 2732032, 2158592, 2158592, 2158592, 2822144, 2826240, 2158592, 2895872, 2158592, 2158592, 2924544, 2158592, 2158592, 2973696, 2158592, 2207744, 2207744, 2207744, 3186688, 2207744, 0, 0, 0, 0, 0, 0, 53248, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1613, 97, 97, 97, 97, 97, 97, 1495, 97, 97, 97, 97, 97, 97, 97, 97, 97, 566, 97, 97, 97, 97, 97, 97, 2207744, 0, 0, 0, 0, 0, 0, 2166784, 546, 0, 0, 0, 0, 286, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 17, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 120, 121, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 2170880, 0, 53248, 550, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 196608, 18, 266240, 24, 24, 27, 27, 27, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 0, 45, 45, 45, 45, 45, 45, 45, 1535, 45, 45, 45, 45, 45, 45, 45, 1416, 45, 45, 45, 45, 45, 45, 45, 45, 424, 45, 45, 45, 45, 45, 45, 45, 45, 45, 405, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 199, 45, 45, 67, 67, 67, 67, 67, 491, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1766, 67, 67, 67, 1767, 67, 24850, 24850, 12564, 12564, 0, 0, 2166784, 546, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 743, 57889, 0, 2170880, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1856, 45, 1858, 1859, 67, 67, 67, 1009, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1021, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367773, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2699549, 2158877, 2158877, 2158877, 2158877, 2158877, 2748701, 2756893, 2777373, 2801949, 97, 1115, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 857, 97, 67, 67, 67, 67, 67, 1258, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1826, 67, 97, 97, 97, 97, 97, 97, 1338, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 870, 97, 97, 67, 67, 67, 1463, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1579, 67, 67, 97, 97, 97, 1518, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 904, 905, 97, 97, 97, 97, 1620, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 0, 0, 0, 0, 45, 1679, 67, 67, 67, 1682, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1690, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 189, 45, 45, 45, 1748, 45, 45, 45, 1749, 1750, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1959, 67, 67, 67, 67, 1768, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1791, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1802, 67, 1817, 67, 67, 67, 67, 67, 67, 1823, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 1848, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 659, 45, 45, 45, 45, 45, 45, 45, 1863, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 495, 67, 67, 67, 67, 67, 1878, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 0, 1973, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1165, 97, 1167, 67, 24850, 24850, 12564, 12564, 0, 0, 2166784, 0, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 1789, 97, 0, 94242, 0, 0, 0, 2211840, 102439, 0, 0, 106538, 98347, 136, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 229376, 2375680, 2379776, 2158592, 2158592, 2420736, 2158592, 2449408, 2158592, 2158592, 67, 24850, 24850, 12564, 12564, 0, 0, 280, 547, 0, 53531, 53531, 0, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 1788, 97, 97, 0, 97, 2024, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 235, 67, 67, 67, 67, 67, 57889, 547, 547, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1799, 45, 45, 45, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 1092, 0, 0, 0, 0, 0, 97, 97, 97, 97, 1612, 97, 97, 97, 97, 1616, 97, 1297, 1472, 0, 0, 0, 0, 1303, 1474, 0, 0, 0, 0, 1309, 1476, 0, 0, 0, 0, 97, 97, 97, 1481, 97, 97, 97, 97, 97, 97, 1488, 97, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 607, 97, 97, 97, 97, 40976, 18, 36884, 45078, 26, 30, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 213080, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 143448, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 0, 0, 0, 0, 97, 97, 97, 97, 1482, 97, 1483, 97, 97, 97, 97, 97, 97, 1326, 97, 97, 1329, 1330, 97, 97, 97, 97, 97, 97, 1159, 1160, 97, 97, 97, 97, 97, 97, 97, 97, 590, 97, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 2211974, 102439, 0, 0, 106538, 98347, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2474122, 2158730, 2158730, 2494602, 2158730, 2158730, 2158730, 2809994, 2158730, 2158730, 2842762, 2158730, 2158730, 2158730, 2900106, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3014794, 2158730, 2158730, 3051658, 2158730, 2158730, 3100810, 2158730, 2158730, 2158730, 2158730, 3096714, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2207744, 2207744, 2572288, 2207744, 2207744, 2207744, 2207744, 541, 541, 543, 543, 0, 0, 2166784, 0, 548, 549, 549, 0, 286, 2158877, 2158877, 2158877, 2863389, 2892061, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3186973, 2158877, 0, 0, 0, 0, 0, 0, 0, 0, 2367626, 2158877, 2404637, 2412829, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2564381, 2158877, 2158877, 2605341, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2679069, 2158877, 2695453, 2158877, 2703645, 2158877, 2711837, 2752797, 2158877, 0, 2158877, 2158877, 2158877, 2384010, 2158730, 2158730, 2158730, 2158730, 3006602, 2383872, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3096576, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 0, 0, 2158877, 2785565, 2158877, 2810141, 2158877, 2158877, 2842909, 2158877, 2158877, 2158877, 2900253, 2158877, 2158877, 2158877, 2158877, 2158877, 2531613, 2158877, 2158877, 2158877, 2158877, 2158877, 2617629, 2158877, 2158877, 2158877, 2158877, 2158730, 2818186, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3105053, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 0, 0, 0, 0, 97, 97, 97, 1611, 97, 97, 97, 97, 97, 97, 97, 1496, 97, 97, 1499, 97, 97, 97, 97, 97, 2441354, 2445450, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2502794, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2433162, 2158730, 2453642, 2461834, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2580618, 2158730, 2158730, 2158730, 2158730, 2621578, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2699402, 2158730, 2158730, 2158730, 2158730, 2678922, 2158730, 2695306, 2158730, 2703498, 2158730, 2711690, 2752650, 2158730, 2158730, 2785418, 2158730, 2158730, 2158730, 3113098, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3186826, 2158730, 2207744, 2207744, 2207744, 2207744, 2781184, 2793472, 2207744, 2818048, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 541, 0, 543, 2158877, 2502941, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2580765, 2158877, 2158877, 2158877, 2158877, 2621725, 2158877, 3019037, 2158877, 3043613, 2158877, 2158877, 2158877, 2158877, 3080477, 2158877, 2158877, 3113245, 2158877, 2158877, 2158877, 2158877, 0, 2158877, 2908445, 2158877, 2158877, 2158877, 2978077, 2158877, 2158877, 2158877, 2158877, 3039517, 2158877, 2158730, 2510986, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2584714, 2158730, 2609290, 2158730, 2158730, 2629770, 2158730, 2158730, 2158730, 2388106, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2605194, 2158730, 2158730, 2158730, 2158730, 2687114, 2158730, 2715786, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2867338, 2158730, 2904202, 2158730, 2158730, 2158730, 2642058, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2781322, 2793610, 2158730, 3121290, 2158730, 2158730, 2158730, 3149962, 2158730, 2158730, 3170442, 3174538, 2158730, 2367488, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2441216, 2445312, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2502656, 2158877, 2433309, 2158877, 2453789, 2461981, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2511133, 2158877, 2158877, 2158877, 2158877, 2584861, 2158877, 2609437, 2158877, 2158877, 2629917, 2158877, 2158877, 2158877, 2687261, 2158877, 2715933, 2158877, 2158730, 2158730, 2973834, 2158730, 2982026, 2158730, 2158730, 3002506, 2158730, 3047562, 3063946, 3076234, 2158730, 2158730, 2158730, 2158730, 2207744, 2506752, 2207744, 2207744, 2207744, 2207744, 2207744, 2158877, 2507037, 0, 0, 2158877, 2158730, 2158730, 2158730, 3203210, 2207744, 2207744, 2207744, 2207744, 2207744, 2424832, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2564096, 2207744, 2207744, 2207744, 2707741, 2732317, 2158877, 2158877, 2158877, 2822429, 2826525, 2158877, 2896157, 2158877, 2158877, 2924829, 2158877, 2158877, 2973981, 2158877, 18, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 642, 0, 2158592, 0, 45, 1529, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1755, 45, 67, 67, 2982173, 2158877, 2158877, 3002653, 2158877, 3047709, 3064093, 3076381, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3203357, 2523274, 2527370, 2158730, 2158730, 2576522, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2908298, 2494749, 2158877, 2158877, 2158877, 2523421, 2527517, 2158877, 2158877, 2576669, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 0, 40976, 0, 18, 18, 4321280, 2224253, 2232448, 4329472, 2232448, 2158730, 2498698, 2158730, 2158730, 2158730, 2158730, 2568330, 2158730, 2592906, 2625674, 2158730, 2158730, 2674826, 2736266, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2158730, 2912394, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3109002, 2158730, 2158730, 3133578, 3145866, 3154058, 2375680, 2207744, 3108864, 2207744, 2207744, 3133440, 3145728, 3153920, 2375965, 2380061, 2158877, 2158877, 2421021, 2158877, 2449693, 2158877, 2158877, 2158877, 3117341, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3104906, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158877, 2498845, 2158877, 2158877, 0, 2158877, 2158877, 2568477, 2158877, 2593053, 2625821, 2158877, 2158877, 2674973, 0, 0, 0, 0, 97, 97, 1480, 97, 97, 97, 97, 97, 1485, 97, 97, 97, 0, 97, 97, 1729, 97, 1731, 97, 97, 97, 97, 97, 97, 97, 311, 97, 97, 97, 97, 97, 97, 97, 97, 1520, 97, 97, 1523, 97, 97, 1526, 97, 2736413, 2158877, 2158877, 0, 2158877, 2912541, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3109149, 2158877, 2158877, 3014941, 2158877, 2158877, 3051805, 2158877, 2158877, 3100957, 2158877, 2158877, 3121437, 2158877, 2158877, 2158877, 3150109, 3133725, 3146013, 3154205, 2158730, 2408586, 2416778, 2158730, 2465930, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3018890, 2158730, 3043466, 2158730, 2158730, 2158730, 2158730, 3080330, 2633866, 2658442, 2740362, 2744458, 2834570, 2949258, 2158730, 2986122, 2158730, 2998410, 2158730, 2158730, 2158730, 3129482, 2207744, 2408448, 2949120, 2207744, 2985984, 2207744, 2998272, 2207744, 2207744, 2207744, 3129344, 2158877, 2408733, 2416925, 2158877, 2466077, 2158877, 2158877, 3170589, 3174685, 2158877, 0, 0, 0, 2158730, 2158730, 2158730, 2158730, 2158730, 2424970, 2158730, 2158730, 2158730, 2158730, 2707594, 2732170, 2158730, 2158730, 2158730, 2822282, 2826378, 2158730, 2896010, 2158730, 2158730, 2924682, 2949405, 2158877, 2986269, 2158877, 2998557, 2158877, 2158877, 2158877, 3129629, 2158730, 2158730, 2478218, 2158730, 2158730, 2158730, 2535562, 2543754, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3117194, 2207744, 2207744, 2478080, 2207744, 2207744, 2207744, 2207744, 3014656, 2207744, 2207744, 3051520, 2207744, 2207744, 3100672, 2207744, 2207744, 3121152, 2207744, 2207744, 2207744, 2207744, 2207744, 2584576, 2207744, 2609152, 2207744, 2207744, 2629632, 2207744, 2207744, 2207744, 2686976, 2207744, 2207744, 2535424, 2543616, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3117056, 2158877, 2158877, 2478365, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158730, 2158730, 2482314, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2207744, 2207744, 2207744, 2387968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 823, 0, 825, 2158730, 2158730, 2158730, 2990218, 2158730, 2158730, 2207744, 2207744, 2482176, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 135, 0, 2207744, 2207744, 2990080, 2207744, 2207744, 2158877, 2158877, 2482461, 2158877, 2158877, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2158730, 2429066, 2158730, 2515082, 2158730, 2588810, 2158730, 2838666, 2158730, 2158730, 2158730, 3010698, 2207744, 2428928, 2207744, 2514944, 2207744, 2588672, 2207744, 2838528, 2207744, 2207744, 2207744, 3010560, 2158877, 2429213, 2158877, 2515229, 0, 0, 2158877, 2588957, 2158877, 0, 2838813, 2158877, 2158877, 2158877, 3010845, 2158730, 2506890, 2158730, 2158730, 2158730, 2748554, 2756746, 2777226, 2801802, 2158730, 2158730, 2158730, 2863242, 2891914, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 2564234, 2158730, 2158730, 2158730, 2158730, 2158730, 2597002, 2158730, 2158730, 2158730, 3006464, 2384157, 0, 0, 2158877, 2158877, 2158877, 2158877, 3006749, 2158730, 2637962, 2953354, 2158730, 2207744, 2637824, 2953216, 2207744, 0, 0, 2158877, 2638109, 2953501, 2158877, 2539658, 2158730, 2539520, 2207744, 0, 0, 2539805, 2158877, 2158730, 2158730, 2158730, 2977930, 2158730, 2158730, 2158730, 2158730, 3039370, 2158730, 2158730, 2158730, 2158730, 2158730, 2158730, 3158154, 2207744, 0, 2158877, 2158730, 2207744, 0, 2158877, 2158730, 2207744, 0, 2158877, 2965642, 2965504, 2965789, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1484, 97, 97, 97, 97, 2158592, 18, 0, 122880, 0, 0, 0, 77824, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 356, 0, 0, 0, 0, 0, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 45, 1751, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1427, 67, 67, 67, 67, 67, 1432, 67, 67, 67, 3104768, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 122880, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 1322, 550, 0, 286, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 4329472, 27, 27, 2207744, 2207744, 2977792, 2207744, 2207744, 2207744, 2207744, 3039232, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 3158016, 542, 0, 0, 0, 542, 0, 544, 0, 0, 0, 544, 0, 550, 0, 0, 0, 0, 0, 97, 97, 1610, 97, 97, 97, 97, 97, 97, 97, 97, 898, 97, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 2211840, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 237568, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 192512, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 94, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 96, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 12378, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 126, 126, 126, 126, 90143, 0, 0, 2170880, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 20480, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 241664, 102439, 106538, 98347, 0, 0, 20568, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 200797, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 0, 0, 44, 0, 0, 20575, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 41, 41, 41, 0, 0, 1126400, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 0, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 89, 40976, 18, 18, 36884, 0, 45078, 0, 24, 24, 24, 27, 131201, 27, 27, 90143, 0, 0, 2170880, 0, 0, 550, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2441216, 2445312, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 94242, 0, 0, 208896, 2211840, 102439, 0, 0, 106538, 98347, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 0, 0, 0, 0, 0, 0, 0, 2367488, 32768, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2433024, 2158592, 2453504, 2461696, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2510848, 2158592, 2158592, 2158592, 2158592, 40976, 18, 36884, 245783, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 20480, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 221184, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 180224, 40976, 18, 18, 36884, 155648, 45078, 0, 24, 24, 217088, 27, 27, 27, 217088, 90143, 0, 0, 2170880, 0, 0, 828, 0, 2158592, 2158592, 2158592, 2387968, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2387968, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 233472, 0, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 45, 718, 45, 45, 45, 45, 45, 45, 45, 45, 45, 727, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 45, 1808, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 97, 0, 0, 97, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 97, 0, 0, 97, 97, 97, 97, 97, 97, 1787, 0, 97, 97, 0, 97, 97, 97, 45, 45, 45, 45, 2029, 45, 67, 67, 67, 67, 2033, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 45, 1798, 45, 45, 1800, 45, 45, 0, 1472, 0, 0, 0, 0, 0, 1474, 0, 0, 0, 0, 0, 1476, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 1320, 97, 97, 0, 0, 97, 97, 97, 97, 1786, 97, 0, 0, 97, 97, 0, 1790, 1527, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 663, 67, 24850, 24850, 12564, 12564, 0, 57889, 281, 0, 0, 53531, 53531, 367, 286, 97, 97, 0, 0, 97, 97, 97, 1785, 97, 97, 0, 0, 97, 97, 0, 97, 97, 1979, 97, 97, 45, 45, 1983, 45, 1984, 45, 45, 45, 45, 45, 652, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 690, 45, 45, 694, 45, 45, 40976, 19, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 262144, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 46, 67, 98, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 45, 67, 97, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 258048, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 1122423, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 1114152, 1114152, 1114152, 0, 0, 1114112, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 37, 102439, 106538, 98347, 0, 0, 204800, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 0, 102439, 106538, 98347, 0, 0, 57436, 40976, 18, 36884, 45078, 24, 27, 33, 33, 0, 33, 33, 33, 0, 0, 0, 40976, 18, 18, 36884, 0, 45078, 0, 124, 124, 124, 127, 127, 127, 127, 90143, 0, 0, 2170880, 0, 0, 550, 0, 2158877, 2158877, 2158877, 2388253, 2158877, 2158877, 2158877, 2158877, 2158877, 2781469, 2793757, 2158877, 2818333, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2867485, 2158877, 2904349, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 3096861, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2441501, 2445597, 2158877, 2158877, 2158877, 2158877, 2158877, 40976, 122, 123, 36884, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 936, 2158592, 4243810, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 935, 45, 45, 45, 715, 45, 45, 45, 45, 45, 45, 45, 723, 45, 45, 45, 45, 45, 1182, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 430, 45, 45, 45, 45, 45, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 47, 68, 99, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 48, 69, 100, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 49, 70, 101, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 50, 71, 102, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 51, 72, 103, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 52, 73, 104, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 53, 74, 105, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 54, 75, 106, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 55, 76, 107, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 56, 77, 108, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 57, 78, 109, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 58, 79, 110, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 59, 80, 111, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 60, 81, 112, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 61, 82, 113, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 62, 83, 114, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 63, 84, 115, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 64, 85, 116, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 65, 86, 117, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 38, 102439, 106538, 98347, 66, 87, 118, 40976, 18, 36884, 45078, 24, 27, 90143, 94242, 118820, 102439, 106538, 98347, 118820, 118820, 118820, 40976, 18, 18, 0, 0, 45078, 0, 24, 24, 24, 27, 27, 27, 27, 90143, 0, 0, 1314, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 1321, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 0, 367, 0, 0, 1315, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1360, 97, 97, 131, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 145, 149, 45, 45, 45, 45, 45, 174, 45, 179, 45, 185, 45, 188, 45, 45, 202, 67, 255, 67, 67, 269, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 292, 296, 97, 97, 97, 97, 97, 321, 97, 326, 97, 332, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 646, 335, 97, 97, 349, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 437, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 523, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 511, 67, 67, 67, 97, 97, 97, 620, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1501, 1502, 97, 793, 67, 67, 796, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 808, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 2052, 67, 67, 67, 67, 813, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 830, 97, 97, 97, 97, 97, 97, 97, 97, 97, 315, 97, 97, 97, 97, 97, 97, 841, 97, 97, 97, 97, 97, 97, 97, 97, 97, 854, 97, 97, 97, 97, 97, 97, 589, 97, 97, 97, 97, 97, 97, 97, 97, 97, 867, 97, 97, 97, 97, 97, 97, 97, 891, 97, 97, 894, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 906, 45, 937, 45, 45, 940, 45, 45, 45, 45, 45, 45, 948, 45, 45, 45, 45, 45, 734, 735, 67, 737, 67, 738, 67, 740, 67, 67, 67, 45, 967, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 435, 45, 45, 45, 980, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 415, 45, 45, 67, 67, 1024, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 67, 67, 67, 67, 67, 25398, 1081, 13112, 1085, 54074, 1089, 0, 0, 0, 0, 0, 0, 363, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 45, 1674, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1913, 67, 1914, 67, 67, 67, 1918, 67, 67, 97, 97, 97, 97, 1118, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 630, 97, 97, 97, 97, 97, 1169, 97, 97, 97, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 1534, 45, 45, 45, 45, 45, 1538, 45, 45, 45, 45, 1233, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 742, 67, 45, 45, 1191, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 454, 67, 67, 67, 67, 1243, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1251, 67, 0, 0, 97, 97, 97, 97, 45, 45, 67, 67, 2050, 0, 97, 97, 45, 45, 45, 732, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 67, 67, 67, 1284, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 772, 67, 67, 67, 1293, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 368, 2158592, 2158592, 2158592, 2404352, 2412544, 1323, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1331, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1737, 97, 1364, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1373, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 647, 45, 45, 1387, 45, 45, 1391, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 410, 45, 45, 45, 45, 45, 1400, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1407, 45, 45, 45, 45, 45, 941, 45, 943, 45, 45, 45, 45, 45, 45, 951, 45, 67, 1438, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1447, 67, 67, 67, 67, 67, 67, 782, 67, 67, 67, 67, 67, 67, 67, 67, 67, 756, 67, 67, 67, 67, 67, 67, 97, 1491, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1500, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1736, 97, 45, 45, 1541, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 677, 45, 45, 67, 1581, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 791, 792, 67, 67, 67, 67, 1598, 67, 1600, 67, 67, 67, 67, 67, 67, 67, 67, 1472, 97, 97, 97, 1727, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1513, 97, 97, 67, 67, 97, 1879, 97, 1881, 97, 0, 1884, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 1842, 97, 97, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1928, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1903, 45, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 1971, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 1381, 45, 45, 45, 45, 1976, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1747, 809, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 907, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 0, 0, 1478, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1150, 97, 97, 97, 97, 67, 67, 67, 67, 1244, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 477, 67, 67, 67, 67, 67, 67, 1294, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1324, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1374, 97, 97, 97, 97, 0, 1175, 0, 45, 45, 45, 45, 45, 45, 45, 45, 945, 45, 45, 45, 45, 45, 45, 45, 45, 1908, 45, 45, 1910, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1919, 67, 0, 0, 97, 97, 97, 97, 45, 2048, 67, 2049, 0, 0, 97, 2051, 45, 45, 45, 939, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 397, 45, 45, 45, 1921, 67, 67, 1923, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1947, 45, 1935, 0, 0, 0, 97, 1939, 97, 97, 1941, 97, 45, 45, 45, 45, 45, 45, 382, 389, 45, 45, 45, 45, 45, 45, 45, 45, 1810, 45, 45, 1812, 67, 67, 67, 67, 67, 256, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 336, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 371, 373, 45, 45, 45, 955, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 413, 45, 45, 45, 457, 459, 67, 67, 67, 67, 67, 67, 67, 67, 473, 67, 478, 67, 67, 482, 67, 67, 485, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 1828, 97, 554, 556, 97, 97, 97, 97, 97, 97, 97, 97, 570, 97, 575, 97, 97, 579, 97, 97, 582, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 330, 97, 97, 67, 746, 67, 67, 67, 67, 67, 67, 67, 67, 67, 758, 67, 67, 67, 67, 67, 67, 67, 1575, 67, 67, 67, 67, 67, 67, 67, 67, 493, 67, 67, 67, 67, 67, 67, 67, 97, 97, 844, 97, 97, 97, 97, 97, 97, 97, 97, 97, 856, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1735, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 1642, 97, 1644, 97, 97, 890, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 67, 67, 67, 67, 1065, 1066, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 532, 67, 67, 67, 67, 67, 67, 67, 1451, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 496, 67, 67, 97, 97, 1505, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 593, 97, 97, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1617, 97, 97, 1635, 0, 1637, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 885, 97, 97, 97, 97, 67, 67, 1704, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 565, 572, 97, 97, 97, 97, 97, 97, 97, 97, 1832, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 1946, 45, 45, 67, 67, 67, 67, 67, 97, 1926, 97, 1927, 97, 0, 0, 0, 97, 97, 1934, 2043, 0, 0, 97, 97, 97, 2047, 45, 45, 67, 67, 0, 1832, 97, 97, 45, 45, 45, 981, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1227, 45, 45, 45, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 372, 45, 45, 45, 45, 1661, 1662, 45, 45, 45, 45, 45, 1666, 45, 45, 45, 45, 45, 1673, 45, 1675, 45, 45, 45, 45, 45, 45, 45, 67, 1426, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1275, 67, 67, 67, 67, 67, 45, 418, 45, 45, 420, 45, 45, 423, 45, 45, 45, 45, 45, 45, 45, 45, 959, 45, 45, 962, 45, 45, 45, 45, 458, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 483, 67, 67, 67, 67, 504, 67, 67, 506, 67, 67, 509, 67, 67, 67, 67, 67, 67, 67, 528, 67, 67, 67, 67, 67, 67, 67, 67, 1287, 67, 67, 67, 67, 67, 67, 67, 555, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 580, 97, 97, 97, 97, 601, 97, 97, 603, 97, 97, 606, 97, 97, 97, 97, 97, 97, 848, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1498, 97, 97, 97, 97, 97, 97, 45, 45, 714, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 989, 990, 45, 67, 67, 67, 67, 67, 1011, 67, 67, 67, 67, 1015, 67, 67, 67, 67, 67, 67, 67, 753, 67, 67, 67, 67, 67, 67, 67, 67, 467, 67, 67, 67, 67, 67, 67, 67, 45, 45, 1179, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1003, 1004, 67, 1217, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 728, 67, 1461, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1034, 67, 97, 1516, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 871, 97, 67, 67, 67, 1705, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 567, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1715, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 1380, 45, 45, 45, 45, 45, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1887, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 2006, 45, 45, 1907, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1920, 67, 97, 0, 2035, 97, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 1428, 67, 67, 67, 67, 67, 67, 1435, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 146, 45, 152, 45, 45, 165, 45, 175, 45, 180, 45, 45, 187, 190, 195, 45, 203, 254, 257, 262, 67, 270, 67, 67, 0, 24850, 12564, 0, 0, 0, 281, 28809, 53531, 97, 97, 97, 293, 97, 299, 97, 97, 312, 97, 322, 97, 327, 97, 97, 334, 337, 342, 97, 350, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 67, 484, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 499, 97, 581, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 596, 648, 45, 650, 45, 651, 45, 653, 45, 45, 45, 657, 45, 45, 45, 45, 45, 45, 1954, 67, 67, 67, 1958, 67, 67, 67, 67, 67, 67, 67, 768, 67, 67, 67, 67, 67, 67, 67, 67, 769, 67, 67, 67, 67, 67, 67, 67, 680, 45, 45, 45, 45, 45, 45, 45, 45, 688, 689, 691, 45, 45, 45, 45, 45, 983, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 947, 45, 45, 45, 45, 952, 45, 45, 698, 699, 45, 45, 702, 703, 45, 45, 45, 45, 45, 45, 45, 711, 744, 67, 67, 67, 67, 67, 67, 67, 67, 67, 757, 67, 67, 67, 67, 761, 67, 67, 67, 67, 765, 67, 767, 67, 67, 67, 67, 67, 67, 67, 67, 775, 776, 778, 67, 67, 67, 67, 67, 67, 785, 786, 67, 67, 789, 790, 67, 67, 67, 67, 67, 67, 1442, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1775, 97, 97, 97, 67, 67, 67, 67, 67, 798, 67, 67, 67, 802, 67, 67, 67, 67, 67, 67, 67, 67, 1465, 67, 67, 1468, 67, 67, 1471, 67, 67, 810, 67, 67, 67, 67, 67, 67, 67, 67, 67, 821, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 833, 97, 835, 97, 836, 97, 838, 97, 97, 0, 0, 97, 97, 97, 2002, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 1740, 45, 45, 45, 1744, 45, 45, 45, 97, 842, 97, 97, 97, 97, 97, 97, 97, 97, 97, 855, 97, 97, 97, 97, 0, 1717, 1718, 97, 97, 97, 97, 97, 1722, 97, 0, 0, 859, 97, 97, 97, 97, 863, 97, 865, 97, 97, 97, 97, 97, 97, 97, 97, 604, 97, 97, 97, 97, 97, 97, 97, 873, 874, 876, 97, 97, 97, 97, 97, 97, 883, 884, 97, 97, 887, 888, 97, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 225280, 0, 365, 0, 367, 0, 45, 45, 45, 1531, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1199, 45, 45, 45, 45, 45, 97, 97, 908, 97, 97, 97, 97, 97, 97, 97, 97, 97, 919, 638, 0, 0, 0, 0, 2158877, 2158877, 2158877, 2158877, 2158877, 2425117, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2597149, 2158877, 2158877, 2158877, 2158877, 2158877, 2158877, 2642205, 2158877, 2158877, 2158877, 2158877, 2158877, 3158301, 0, 2375818, 2379914, 2158730, 2158730, 2420874, 2158730, 2449546, 2158730, 2158730, 953, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 965, 978, 45, 45, 45, 45, 45, 45, 985, 45, 45, 45, 45, 45, 45, 45, 45, 971, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1027, 67, 1029, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1455, 67, 67, 67, 67, 67, 67, 67, 1077, 1078, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 366, 0, 139, 2158730, 2158730, 2158730, 2404490, 2412682, 1113, 97, 97, 97, 97, 97, 97, 1121, 97, 1123, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1540, 1155, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 615, 1168, 97, 97, 1171, 1172, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 45, 45, 45, 45, 1533, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1663, 45, 45, 45, 45, 45, 45, 45, 45, 45, 183, 45, 45, 45, 45, 201, 45, 45, 45, 1219, 45, 45, 45, 45, 45, 45, 45, 1226, 45, 45, 45, 45, 45, 168, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 427, 45, 45, 45, 45, 45, 45, 45, 1231, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1242, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1046, 67, 67, 1254, 67, 1256, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 806, 807, 67, 67, 97, 1336, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1111, 97, 97, 97, 97, 97, 1351, 97, 97, 97, 1354, 97, 97, 97, 1359, 97, 97, 97, 0, 97, 97, 97, 97, 1640, 97, 97, 97, 97, 97, 97, 97, 897, 97, 97, 97, 902, 97, 97, 97, 97, 97, 97, 97, 97, 1366, 97, 97, 97, 97, 97, 97, 97, 1371, 97, 97, 97, 0, 97, 97, 97, 1730, 97, 97, 97, 97, 97, 97, 97, 97, 915, 97, 97, 97, 97, 0, 360, 0, 67, 67, 67, 1440, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1017, 67, 1019, 67, 67, 67, 67, 67, 1453, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1459, 97, 97, 97, 1493, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1525, 97, 97, 97, 97, 97, 97, 1507, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1514, 67, 67, 67, 67, 1584, 67, 67, 67, 67, 67, 1590, 67, 67, 67, 67, 67, 67, 67, 783, 67, 67, 67, 788, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1599, 1601, 67, 67, 67, 1604, 67, 1606, 1607, 67, 1472, 0, 1474, 0, 1476, 0, 97, 97, 97, 97, 97, 97, 1614, 97, 97, 97, 97, 45, 45, 1850, 45, 45, 45, 45, 1855, 45, 45, 45, 45, 45, 1222, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1229, 97, 1618, 97, 97, 97, 97, 97, 97, 97, 1625, 97, 97, 97, 97, 97, 0, 1175, 0, 45, 45, 45, 45, 45, 45, 45, 45, 447, 45, 45, 45, 45, 45, 67, 67, 1633, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 1643, 1645, 97, 97, 0, 0, 97, 97, 1784, 97, 97, 97, 0, 0, 97, 97, 0, 97, 1894, 1895, 97, 1897, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 656, 45, 45, 45, 45, 45, 45, 97, 1648, 97, 1650, 1651, 97, 0, 45, 45, 45, 1654, 45, 45, 45, 45, 45, 169, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 658, 45, 45, 45, 45, 664, 45, 45, 1659, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1187, 45, 45, 1669, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1005, 67, 67, 1681, 67, 67, 67, 67, 67, 67, 67, 1686, 67, 67, 67, 67, 67, 67, 67, 784, 67, 67, 67, 67, 67, 67, 67, 67, 1055, 67, 67, 67, 67, 1060, 67, 67, 97, 97, 1713, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 1378, 45, 45, 45, 45, 45, 45, 45, 408, 45, 45, 45, 45, 45, 45, 45, 45, 1547, 45, 1549, 45, 45, 45, 45, 45, 97, 97, 1780, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 45, 2027, 2028, 45, 45, 67, 67, 2031, 2032, 67, 45, 45, 1804, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1917, 67, 67, 67, 67, 67, 67, 67, 1819, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1708, 97, 97, 97, 97, 97, 45, 45, 1862, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 497, 67, 67, 67, 1877, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 97, 97, 97, 97, 97, 1839, 0, 0, 97, 97, 97, 97, 1936, 0, 0, 97, 97, 97, 97, 97, 97, 1943, 1944, 1945, 45, 45, 45, 45, 670, 45, 45, 45, 45, 674, 45, 45, 45, 45, 678, 45, 1948, 45, 1950, 45, 45, 45, 45, 1955, 1956, 1957, 67, 67, 67, 1960, 67, 1962, 67, 67, 67, 67, 1967, 1968, 1969, 97, 0, 0, 0, 97, 97, 1974, 97, 0, 1936, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 1906, 0, 1977, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1746, 45, 45, 45, 45, 2011, 67, 67, 2013, 67, 67, 67, 2017, 97, 97, 0, 0, 2021, 97, 8192, 97, 97, 2025, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1916, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 140, 45, 45, 45, 1180, 45, 45, 45, 45, 1184, 45, 45, 45, 45, 45, 45, 45, 387, 45, 392, 45, 45, 396, 45, 45, 399, 45, 45, 67, 207, 67, 67, 67, 67, 67, 67, 236, 67, 67, 67, 67, 67, 67, 67, 800, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1603, 67, 67, 67, 67, 67, 0, 97, 97, 287, 97, 97, 97, 97, 97, 97, 316, 97, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 1656, 1657, 45, 376, 45, 45, 45, 45, 45, 388, 45, 45, 45, 45, 45, 45, 45, 45, 1406, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 462, 67, 67, 67, 67, 67, 474, 67, 67, 67, 67, 67, 67, 67, 817, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 97, 97, 97, 559, 97, 97, 97, 97, 97, 571, 97, 97, 97, 97, 97, 97, 896, 97, 97, 97, 900, 97, 97, 97, 97, 97, 97, 912, 914, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 391, 45, 45, 45, 45, 45, 45, 45, 45, 713, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 662, 45, 1140, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 636, 67, 67, 1283, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 513, 67, 67, 1363, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 889, 97, 97, 97, 1714, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 926, 45, 45, 45, 45, 45, 45, 45, 45, 672, 45, 45, 45, 45, 45, 45, 45, 45, 686, 45, 45, 45, 45, 45, 45, 45, 45, 944, 45, 45, 45, 45, 45, 45, 45, 45, 1676, 45, 45, 45, 45, 45, 45, 67, 97, 97, 97, 1833, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 1902, 45, 45, 45, 45, 45, 957, 45, 45, 45, 45, 961, 45, 963, 45, 45, 45, 67, 97, 2034, 0, 97, 97, 97, 97, 97, 2040, 45, 45, 45, 2042, 67, 67, 67, 67, 67, 67, 1574, 67, 67, 67, 67, 67, 1578, 67, 67, 67, 67, 67, 67, 799, 67, 67, 67, 804, 67, 67, 67, 67, 67, 67, 67, 1298, 0, 0, 0, 1304, 0, 0, 0, 1310, 132, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 45, 1414, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 428, 45, 45, 45, 45, 45, 57889, 0, 0, 54074, 54074, 550, 831, 97, 97, 97, 97, 97, 97, 97, 97, 97, 568, 97, 97, 97, 97, 578, 97, 45, 45, 968, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1228, 45, 45, 67, 67, 67, 67, 67, 25398, 1082, 13112, 1086, 54074, 1090, 0, 0, 0, 0, 0, 0, 364, 0, 0, 0, 139, 2158592, 2158592, 2158592, 2404352, 2412544, 67, 67, 67, 67, 1464, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 510, 67, 67, 67, 67, 97, 97, 97, 97, 1519, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 918, 97, 0, 0, 0, 0, 1528, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 976, 45, 1554, 45, 45, 45, 45, 45, 45, 45, 45, 1562, 45, 45, 1565, 45, 45, 45, 45, 683, 45, 45, 45, 687, 45, 45, 692, 45, 45, 45, 45, 45, 1953, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1014, 67, 67, 67, 67, 67, 67, 1568, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 67, 67, 67, 67, 67, 1585, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1594, 97, 97, 1649, 97, 97, 97, 0, 45, 45, 1653, 45, 45, 45, 45, 45, 45, 383, 45, 45, 45, 45, 45, 45, 45, 45, 45, 986, 45, 45, 45, 45, 45, 45, 45, 45, 1670, 45, 1672, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 736, 67, 67, 67, 67, 67, 741, 67, 67, 67, 1680, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1074, 67, 67, 67, 1692, 67, 67, 67, 67, 67, 67, 67, 1697, 67, 1699, 67, 67, 67, 67, 67, 67, 1012, 67, 67, 67, 67, 67, 67, 67, 67, 67, 468, 475, 67, 67, 67, 67, 67, 67, 1769, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 624, 97, 97, 97, 97, 97, 97, 634, 97, 97, 1792, 97, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 958, 45, 45, 45, 45, 45, 45, 964, 45, 150, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 977, 204, 45, 67, 67, 67, 217, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 787, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 271, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 97, 351, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 45, 938, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1398, 45, 45, 45, 153, 45, 161, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 660, 661, 45, 45, 205, 45, 67, 67, 67, 67, 220, 67, 228, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 280, 94, 0, 0, 67, 67, 67, 67, 67, 272, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 97, 352, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 439, 45, 45, 45, 45, 45, 445, 45, 45, 45, 452, 45, 45, 67, 67, 212, 216, 67, 67, 67, 67, 67, 241, 67, 246, 67, 252, 67, 67, 486, 67, 67, 67, 67, 67, 67, 67, 494, 67, 67, 67, 67, 67, 67, 67, 1245, 67, 67, 67, 67, 67, 67, 67, 67, 1013, 67, 67, 1016, 67, 67, 67, 67, 67, 521, 67, 67, 525, 67, 67, 67, 67, 67, 531, 67, 67, 67, 538, 67, 0, 0, 2046, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 1192, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1418, 45, 45, 1421, 97, 97, 583, 97, 97, 97, 97, 97, 97, 97, 591, 97, 97, 97, 97, 97, 97, 913, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 1384, 97, 618, 97, 97, 622, 97, 97, 97, 97, 97, 628, 97, 97, 97, 635, 97, 18, 131427, 0, 0, 0, 639, 0, 132, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 932, 45, 45, 45, 45, 45, 1544, 45, 45, 45, 45, 45, 1550, 45, 45, 45, 45, 45, 1194, 45, 1196, 45, 45, 45, 45, 45, 45, 45, 45, 999, 45, 45, 45, 45, 45, 67, 67, 45, 45, 667, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1408, 45, 45, 45, 696, 45, 45, 45, 701, 45, 45, 45, 45, 45, 45, 45, 45, 710, 45, 45, 45, 1220, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 194, 45, 45, 45, 729, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 797, 67, 67, 67, 67, 67, 67, 805, 67, 67, 67, 67, 67, 67, 67, 1587, 67, 1589, 67, 67, 67, 67, 67, 67, 67, 67, 1763, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2162968, 0, 0, 67, 67, 67, 67, 67, 814, 816, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 67, 67, 1008, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1020, 67, 0, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 1429, 67, 1430, 67, 67, 67, 67, 67, 1062, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 518, 1076, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 0, 28809, 0, 139, 45, 45, 45, 45, 45, 97, 97, 97, 97, 1102, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1124, 97, 1126, 97, 97, 1114, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1112, 97, 97, 1156, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 594, 97, 97, 97, 97, 1170, 97, 97, 97, 97, 0, 921, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 1532, 45, 45, 45, 45, 1536, 45, 45, 45, 45, 45, 172, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 706, 45, 45, 709, 45, 45, 1177, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1202, 45, 1204, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1215, 45, 45, 45, 1232, 45, 45, 45, 45, 45, 45, 45, 67, 1237, 67, 67, 67, 67, 67, 67, 1053, 1054, 67, 67, 67, 67, 67, 67, 1061, 67, 67, 1282, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1289, 67, 67, 67, 1292, 97, 97, 97, 97, 1339, 97, 97, 97, 97, 97, 97, 1344, 97, 97, 97, 97, 45, 1849, 45, 1851, 45, 45, 45, 45, 45, 45, 45, 45, 721, 45, 45, 45, 45, 45, 726, 45, 1385, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1188, 45, 45, 1401, 1402, 45, 45, 45, 45, 1405, 45, 45, 45, 45, 45, 45, 45, 45, 1752, 45, 45, 45, 45, 45, 67, 67, 1410, 45, 45, 45, 1413, 45, 1415, 45, 45, 45, 45, 45, 45, 1419, 45, 45, 45, 45, 1806, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 97, 97, 2019, 0, 97, 67, 67, 67, 1452, 67, 67, 67, 67, 67, 67, 67, 67, 1457, 67, 67, 67, 67, 67, 67, 1259, 67, 67, 67, 67, 67, 67, 1264, 67, 67, 1460, 67, 1462, 67, 67, 67, 67, 67, 67, 1466, 67, 67, 67, 67, 67, 67, 67, 67, 1588, 67, 67, 67, 67, 67, 67, 67, 0, 1300, 0, 0, 0, 1306, 0, 0, 0, 97, 97, 97, 1506, 97, 97, 97, 97, 97, 97, 97, 97, 1512, 97, 97, 97, 0, 1728, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 901, 97, 97, 97, 97, 1515, 97, 1517, 97, 97, 97, 97, 97, 97, 1521, 97, 97, 97, 97, 97, 97, 0, 45, 1652, 45, 45, 45, 1655, 45, 45, 45, 45, 45, 1542, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1552, 1553, 45, 45, 45, 1556, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 693, 45, 45, 45, 67, 67, 67, 67, 1572, 67, 67, 67, 67, 1576, 67, 67, 67, 67, 67, 67, 67, 67, 1602, 67, 67, 1605, 67, 67, 67, 0, 67, 1582, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1580, 67, 67, 1596, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 542, 0, 544, 67, 67, 67, 67, 1759, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 533, 67, 67, 67, 67, 67, 67, 67, 1770, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 1777, 97, 97, 97, 1793, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 998, 45, 45, 1001, 1002, 45, 45, 67, 67, 45, 1861, 45, 67, 67, 67, 67, 67, 67, 67, 67, 1871, 67, 1873, 1874, 67, 0, 97, 45, 67, 0, 97, 45, 67, 16384, 97, 45, 67, 97, 0, 0, 0, 1473, 0, 1082, 0, 0, 0, 1475, 0, 1086, 0, 0, 0, 1477, 1876, 67, 97, 97, 97, 97, 97, 1883, 0, 1885, 97, 97, 97, 1889, 0, 0, 0, 286, 0, 0, 0, 286, 0, 2367488, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 40976, 0, 18, 18, 24, 24, 126, 126, 126, 2053, 0, 2055, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 2039, 97, 45, 45, 45, 45, 67, 67, 67, 67, 67, 226, 67, 67, 67, 67, 67, 67, 67, 67, 1246, 67, 67, 1249, 1250, 67, 67, 67, 132, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 141, 45, 45, 45, 1403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1186, 45, 45, 1189, 45, 45, 155, 45, 45, 45, 45, 45, 45, 45, 45, 45, 191, 45, 45, 45, 45, 700, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1753, 45, 45, 45, 67, 67, 45, 45, 67, 208, 67, 67, 67, 222, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1764, 67, 67, 67, 67, 67, 67, 67, 258, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 288, 97, 97, 97, 302, 97, 97, 97, 97, 97, 97, 97, 97, 97, 627, 97, 97, 97, 97, 97, 97, 338, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 370, 45, 45, 45, 45, 716, 45, 45, 45, 45, 45, 722, 45, 45, 45, 45, 45, 45, 1912, 67, 67, 67, 67, 67, 67, 67, 67, 67, 819, 67, 67, 25398, 542, 13112, 544, 45, 403, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1409, 45, 67, 67, 67, 67, 489, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 771, 67, 67, 67, 67, 520, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 534, 67, 67, 67, 67, 67, 67, 1271, 67, 67, 67, 1274, 67, 67, 67, 1279, 67, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 553, 97, 97, 97, 97, 586, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1138, 97, 97, 97, 97, 617, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 631, 97, 97, 97, 0, 1834, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 353, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 45, 668, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 724, 45, 45, 45, 45, 45, 682, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 949, 45, 45, 45, 67, 67, 747, 748, 67, 67, 67, 67, 755, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 1302, 0, 0, 0, 1308, 0, 67, 794, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1701, 67, 97, 97, 97, 845, 846, 97, 97, 97, 97, 853, 97, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 97, 97, 892, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 610, 97, 97, 45, 992, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 1239, 67, 67, 67, 1063, 67, 67, 67, 67, 67, 1068, 67, 67, 67, 67, 67, 67, 67, 0, 0, 1301, 0, 0, 0, 1307, 0, 0, 97, 1141, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1152, 97, 97, 0, 0, 97, 97, 2001, 0, 97, 2003, 97, 97, 97, 45, 45, 45, 1739, 45, 45, 45, 1742, 45, 45, 45, 45, 45, 97, 97, 97, 97, 1157, 97, 97, 97, 97, 97, 1162, 97, 97, 97, 97, 97, 97, 1145, 97, 97, 97, 97, 97, 1151, 97, 97, 97, 1253, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 539, 45, 1423, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1431, 67, 67, 67, 67, 67, 67, 67, 1695, 67, 67, 67, 67, 67, 1700, 67, 1702, 67, 67, 1439, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 514, 67, 67, 97, 97, 1492, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 611, 97, 97, 1703, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 97, 97, 852, 97, 97, 97, 97, 97, 97, 45, 1949, 45, 1951, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 1961, 67, 0, 97, 45, 67, 0, 97, 2060, 2061, 0, 2062, 45, 67, 97, 0, 0, 2036, 97, 97, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 67, 223, 67, 67, 237, 67, 67, 67, 67, 67, 67, 67, 1272, 67, 67, 67, 67, 67, 67, 67, 67, 507, 67, 67, 67, 67, 67, 67, 67, 1963, 67, 67, 67, 97, 97, 97, 97, 0, 1972, 0, 97, 97, 97, 1975, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 931, 45, 45, 45, 45, 45, 407, 45, 45, 45, 45, 45, 45, 45, 45, 45, 417, 45, 45, 1989, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1996, 97, 18, 131427, 0, 0, 360, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 930, 45, 45, 45, 45, 45, 45, 444, 45, 45, 45, 45, 45, 45, 45, 67, 67, 97, 97, 1998, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1985, 45, 1986, 45, 45, 45, 156, 45, 45, 170, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 675, 45, 45, 45, 45, 679, 131427, 0, 358, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 381, 45, 45, 45, 45, 45, 45, 45, 45, 45, 400, 45, 45, 419, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 436, 67, 67, 67, 67, 67, 505, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 820, 67, 25398, 542, 13112, 544, 67, 67, 522, 67, 67, 67, 67, 67, 529, 67, 67, 67, 67, 67, 67, 67, 0, 1299, 0, 0, 0, 1305, 0, 0, 0, 97, 97, 619, 97, 97, 97, 97, 97, 626, 97, 97, 97, 97, 97, 97, 97, 1105, 97, 97, 97, 97, 1109, 97, 97, 97, 67, 67, 67, 67, 749, 67, 67, 67, 67, 67, 67, 67, 67, 67, 760, 67, 0, 97, 45, 67, 2058, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 97, 97, 97, 97, 45, 45, 45, 2041, 67, 67, 67, 67, 67, 780, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 516, 67, 67, 97, 97, 97, 878, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1629, 97, 0, 45, 979, 45, 45, 45, 45, 984, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1198, 45, 45, 45, 45, 45, 45, 67, 1023, 67, 67, 67, 67, 1028, 67, 67, 67, 67, 67, 67, 67, 67, 67, 470, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 1094, 0, 0, 0, 1092, 1315, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1486, 97, 1489, 97, 97, 97, 1117, 97, 97, 97, 97, 1122, 97, 97, 97, 97, 97, 97, 97, 1146, 97, 97, 97, 97, 97, 97, 97, 97, 881, 97, 97, 97, 886, 97, 97, 97, 1311, 0, 0, 0, 0, 0, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1615, 97, 97, 97, 97, 97, 1619, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1631, 97, 97, 1847, 97, 45, 45, 45, 45, 1852, 45, 45, 45, 45, 45, 45, 45, 1235, 45, 45, 45, 67, 67, 67, 67, 67, 1868, 67, 67, 67, 1872, 67, 67, 67, 67, 67, 97, 97, 97, 97, 1882, 0, 0, 0, 97, 97, 97, 97, 0, 1891, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 1929, 0, 0, 97, 97, 97, 97, 97, 97, 45, 1900, 45, 1901, 45, 45, 45, 1905, 45, 67, 2054, 97, 45, 67, 0, 97, 45, 67, 0, 97, 45, 67, 97, 0, 0, 97, 2037, 2038, 97, 97, 45, 45, 45, 45, 67, 67, 67, 67, 1867, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1774, 97, 97, 97, 97, 97, 97, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 142, 45, 45, 45, 1412, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 432, 45, 45, 45, 45, 45, 157, 45, 45, 171, 45, 45, 45, 182, 45, 45, 45, 45, 200, 45, 45, 45, 1543, 45, 45, 45, 45, 45, 45, 45, 45, 1551, 45, 45, 45, 45, 1181, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1211, 45, 45, 45, 1214, 45, 45, 45, 67, 209, 67, 67, 67, 224, 67, 67, 238, 67, 67, 67, 249, 67, 0, 97, 2056, 2057, 0, 2059, 45, 67, 0, 97, 45, 67, 97, 0, 0, 1937, 97, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1741, 45, 45, 45, 45, 45, 45, 67, 67, 67, 267, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 289, 97, 97, 97, 304, 97, 97, 318, 97, 97, 97, 329, 97, 97, 0, 0, 97, 1783, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 45, 2026, 45, 45, 45, 45, 67, 2030, 67, 67, 67, 67, 67, 67, 1041, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1044, 67, 67, 67, 67, 67, 67, 97, 97, 347, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 45, 666, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1420, 45, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 840, 67, 1007, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 759, 67, 67, 67, 67, 67, 67, 67, 1052, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1031, 67, 67, 67, 67, 67, 97, 97, 97, 1101, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 592, 97, 97, 97, 1190, 45, 45, 45, 45, 45, 1195, 45, 1197, 45, 45, 45, 45, 1201, 45, 45, 45, 45, 1952, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 250, 67, 67, 67, 1255, 67, 1257, 67, 67, 67, 67, 1261, 67, 67, 67, 67, 67, 67, 67, 67, 1685, 67, 67, 67, 67, 67, 67, 67, 0, 24851, 12565, 0, 0, 0, 0, 28809, 53532, 67, 67, 1267, 67, 67, 67, 67, 67, 67, 1273, 67, 67, 67, 67, 67, 67, 67, 67, 1696, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 2162688, 0, 0, 1281, 67, 67, 67, 67, 1285, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1070, 67, 67, 67, 67, 67, 1335, 97, 1337, 97, 97, 97, 97, 1341, 97, 97, 97, 97, 97, 97, 97, 97, 882, 97, 97, 97, 97, 97, 97, 97, 1347, 97, 97, 97, 97, 97, 97, 1353, 97, 97, 97, 97, 97, 97, 1361, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 544, 0, 550, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2473984, 2158592, 2158592, 2158592, 2990080, 2158592, 2158592, 2207744, 2207744, 2482176, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 2207744, 0, 0, 0, 0, 0, 0, 2162688, 0, 53530, 97, 97, 97, 1365, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 608, 97, 97, 97, 45, 45, 1424, 45, 1425, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1058, 67, 67, 67, 67, 45, 1555, 45, 45, 1557, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 707, 45, 45, 45, 45, 67, 67, 1570, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 773, 67, 67, 1595, 67, 67, 1597, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 2158592, 2158592, 2158592, 2404352, 2412544, 97, 97, 97, 1636, 97, 97, 97, 1639, 97, 97, 1641, 97, 97, 97, 97, 97, 97, 1173, 0, 921, 0, 0, 0, 0, 0, 0, 45, 67, 67, 67, 1693, 67, 67, 67, 67, 67, 67, 67, 1698, 67, 67, 67, 67, 67, 67, 67, 1773, 67, 97, 97, 97, 97, 97, 97, 97, 625, 97, 97, 97, 97, 97, 97, 97, 97, 850, 97, 97, 97, 97, 97, 97, 97, 97, 880, 97, 97, 97, 97, 97, 97, 97, 97, 1106, 97, 97, 97, 97, 97, 97, 97, 1860, 45, 45, 67, 67, 1865, 67, 67, 67, 67, 1870, 67, 67, 67, 67, 1875, 67, 67, 97, 97, 1880, 97, 97, 0, 0, 0, 97, 97, 1888, 97, 0, 0, 0, 1938, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 1854, 45, 45, 45, 45, 45, 45, 45, 1909, 45, 45, 1911, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1248, 67, 67, 67, 67, 67, 67, 1922, 67, 67, 1924, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 1898, 45, 45, 45, 45, 45, 45, 1904, 45, 45, 67, 67, 67, 67, 97, 97, 97, 97, 0, 0, 16384, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 1724, 2008, 2009, 45, 45, 67, 67, 67, 2014, 2015, 67, 67, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 2022, 0, 2023, 97, 97, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1869, 67, 67, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 147, 151, 154, 45, 162, 45, 45, 176, 178, 181, 45, 45, 45, 192, 196, 45, 45, 45, 45, 2012, 67, 67, 67, 67, 67, 67, 2018, 97, 0, 0, 97, 1978, 97, 97, 97, 1982, 45, 45, 45, 45, 45, 45, 45, 45, 45, 972, 973, 45, 45, 45, 45, 45, 67, 259, 263, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 294, 298, 301, 97, 309, 97, 97, 323, 325, 328, 97, 97, 97, 97, 97, 560, 97, 97, 97, 569, 97, 97, 97, 97, 97, 97, 306, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1624, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 1175, 0, 0, 0, 0, 45, 339, 343, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 67, 67, 503, 67, 67, 67, 67, 67, 67, 67, 67, 67, 512, 67, 67, 519, 97, 97, 600, 97, 97, 97, 97, 97, 97, 97, 97, 97, 609, 97, 97, 616, 45, 649, 45, 45, 45, 45, 45, 654, 45, 45, 45, 45, 45, 45, 45, 45, 1393, 45, 45, 45, 45, 45, 45, 45, 45, 1209, 45, 45, 45, 45, 45, 45, 45, 67, 763, 67, 67, 67, 67, 67, 67, 67, 67, 770, 67, 67, 67, 774, 67, 0, 2045, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 994, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 213, 67, 219, 67, 67, 232, 67, 242, 67, 247, 67, 67, 67, 779, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1018, 67, 67, 67, 67, 811, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 97, 834, 97, 97, 97, 97, 97, 839, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 645, 97, 97, 861, 97, 97, 97, 97, 97, 97, 97, 97, 868, 97, 97, 97, 872, 97, 97, 877, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 613, 97, 97, 97, 97, 97, 909, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 0, 18, 18, 24, 24, 27, 27, 27, 1036, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1047, 67, 67, 67, 1050, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1033, 67, 67, 67, 97, 97, 1130, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 67, 67, 67, 1295, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 1317, 97, 97, 97, 97, 97, 97, 1375, 97, 97, 97, 0, 0, 0, 45, 1379, 45, 45, 45, 45, 45, 45, 422, 45, 45, 45, 429, 431, 45, 45, 45, 45, 0, 1090, 0, 0, 97, 1479, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1357, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1716, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1723, 0, 921, 29315, 0, 0, 0, 0, 45, 929, 45, 45, 45, 45, 45, 45, 45, 1392, 45, 45, 45, 45, 45, 45, 45, 45, 45, 960, 45, 45, 45, 45, 45, 45, 97, 97, 97, 1738, 45, 45, 45, 45, 45, 45, 45, 1743, 45, 45, 45, 45, 166, 45, 45, 45, 45, 184, 186, 45, 45, 197, 45, 45, 97, 1779, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 18, 131427, 0, 638, 0, 0, 0, 0, 362, 0, 640, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1537, 45, 45, 45, 45, 45, 1803, 45, 45, 45, 45, 45, 1809, 45, 45, 45, 67, 67, 67, 1814, 67, 67, 67, 67, 67, 67, 1821, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 0, 67, 67, 67, 1818, 67, 67, 67, 67, 67, 1824, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 1890, 0, 1829, 97, 97, 0, 0, 97, 97, 1836, 97, 97, 0, 0, 0, 97, 97, 97, 97, 1981, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1987, 1845, 97, 97, 97, 45, 45, 45, 45, 45, 1853, 45, 45, 45, 1857, 45, 45, 45, 67, 1864, 67, 1866, 67, 67, 67, 67, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 97, 97, 1710, 1711, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1886, 97, 97, 97, 0, 0, 97, 97, 97, 97, 1838, 0, 0, 0, 97, 1843, 97, 0, 1893, 97, 97, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1745, 45, 45, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 1931, 97, 97, 97, 97, 97, 588, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 629, 97, 97, 97, 97, 97, 67, 2044, 0, 97, 97, 97, 97, 45, 45, 67, 67, 0, 0, 97, 97, 45, 45, 45, 1660, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 453, 45, 455, 67, 67, 67, 67, 268, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 348, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 359, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 421, 45, 45, 45, 45, 45, 45, 45, 434, 45, 45, 695, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1667, 45, 0, 921, 29315, 0, 925, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1811, 45, 67, 67, 67, 67, 67, 67, 1037, 67, 1039, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1277, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 1095, 0, 0, 0, 1096, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 869, 97, 97, 97, 97, 97, 97, 1131, 97, 1133, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1370, 97, 97, 97, 97, 97, 1312, 0, 0, 0, 0, 1096, 0, 0, 0, 97, 97, 97, 97, 97, 97, 97, 1327, 97, 97, 97, 97, 97, 1332, 97, 97, 97, 1830, 97, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 1896, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1548, 45, 45, 45, 45, 45, 45, 133, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 45, 380, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 401, 45, 45, 158, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1200, 45, 45, 45, 45, 206, 67, 67, 67, 67, 67, 225, 67, 67, 67, 67, 67, 67, 67, 67, 754, 67, 67, 67, 67, 67, 67, 67, 57889, 0, 0, 54074, 54074, 550, 832, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1342, 97, 97, 97, 97, 97, 97, 67, 67, 67, 67, 67, 25398, 1083, 13112, 1087, 54074, 1091, 0, 0, 0, 0, 0, 0, 1316, 0, 831, 97, 97, 97, 97, 97, 97, 97, 1174, 921, 0, 1175, 0, 0, 0, 0, 45, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 45, 148, 67, 67, 264, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 97, 295, 97, 97, 97, 97, 313, 97, 97, 97, 97, 331, 333, 97, 18, 131427, 356, 638, 0, 0, 0, 0, 362, 0, 0, 365, 0, 367, 0, 45, 45, 1530, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 988, 45, 45, 45, 97, 344, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 402, 404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1756, 67, 438, 45, 45, 45, 45, 45, 45, 45, 45, 449, 450, 45, 45, 45, 67, 67, 214, 218, 221, 67, 229, 67, 67, 243, 245, 248, 67, 67, 67, 67, 67, 488, 490, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1071, 67, 1073, 67, 67, 67, 67, 67, 524, 67, 67, 67, 67, 67, 67, 67, 67, 535, 536, 67, 67, 67, 67, 67, 67, 1683, 1684, 67, 67, 67, 67, 1688, 1689, 67, 67, 67, 67, 67, 67, 1586, 67, 67, 67, 67, 67, 67, 67, 67, 67, 469, 67, 67, 67, 67, 67, 67, 97, 97, 97, 585, 587, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1163, 97, 97, 97, 97, 97, 97, 97, 621, 97, 97, 97, 97, 97, 97, 97, 97, 632, 633, 97, 97, 0, 0, 1782, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 712, 45, 45, 45, 717, 45, 45, 45, 45, 45, 45, 45, 45, 725, 45, 45, 45, 163, 167, 173, 177, 45, 45, 45, 45, 45, 193, 45, 45, 45, 45, 982, 45, 45, 45, 45, 45, 45, 987, 45, 45, 45, 45, 45, 1558, 45, 1560, 45, 45, 45, 45, 45, 45, 45, 45, 704, 705, 45, 45, 45, 45, 45, 45, 45, 45, 731, 45, 45, 45, 67, 67, 67, 67, 67, 739, 67, 67, 67, 67, 67, 67, 273, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 67, 67, 67, 764, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1290, 67, 67, 67, 67, 67, 67, 812, 67, 67, 67, 67, 818, 67, 67, 67, 25398, 542, 13112, 544, 57889, 0, 0, 54074, 54074, 550, 0, 97, 97, 97, 97, 97, 837, 97, 97, 97, 97, 97, 602, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1137, 97, 97, 97, 97, 97, 97, 97, 97, 97, 862, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1627, 97, 97, 97, 0, 97, 97, 97, 97, 910, 97, 97, 97, 97, 916, 97, 97, 97, 0, 0, 0, 97, 97, 1940, 97, 97, 1942, 45, 45, 45, 45, 45, 45, 385, 45, 45, 45, 45, 395, 45, 45, 45, 45, 966, 45, 969, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 975, 45, 45, 45, 406, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 974, 45, 45, 45, 67, 67, 67, 67, 1010, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1262, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1040, 67, 1042, 67, 1045, 67, 67, 67, 67, 67, 67, 67, 97, 1706, 97, 97, 97, 1709, 97, 97, 97, 67, 67, 67, 67, 1051, 67, 67, 67, 67, 67, 1057, 67, 67, 67, 67, 67, 67, 67, 1443, 67, 67, 1446, 67, 67, 67, 67, 67, 67, 67, 1297, 0, 0, 0, 1303, 0, 0, 0, 1309, 67, 67, 67, 67, 1079, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2207744, 2207744, 2207744, 2207744, 2207744, 2572288, 2207744, 2207744, 2207744, 1098, 97, 97, 97, 97, 97, 1104, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1356, 97, 97, 97, 97, 97, 97, 1128, 97, 97, 97, 97, 97, 97, 1134, 97, 1136, 97, 1139, 97, 97, 97, 97, 97, 97, 1622, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 0, 1176, 0, 646, 45, 67, 67, 67, 1268, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1469, 67, 67, 67, 97, 1348, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1127, 97, 67, 1569, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1448, 1449, 67, 1816, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1825, 67, 67, 1827, 97, 97, 0, 1781, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 1831, 0, 0, 97, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 1980, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1395, 45, 45, 45, 45, 45, 97, 1846, 97, 97, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1212, 45, 45, 45, 45, 45, 45, 2010, 45, 67, 67, 67, 67, 67, 2016, 67, 97, 97, 0, 0, 97, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 2007, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 143, 45, 45, 45, 1671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 1813, 67, 67, 1815, 45, 45, 67, 210, 67, 67, 67, 67, 67, 67, 239, 67, 67, 67, 67, 67, 67, 67, 1454, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1445, 67, 67, 67, 67, 67, 67, 97, 97, 290, 97, 97, 97, 97, 97, 97, 319, 97, 97, 97, 97, 97, 97, 303, 97, 97, 317, 97, 97, 97, 97, 97, 97, 305, 97, 97, 97, 97, 97, 97, 97, 97, 97, 899, 97, 97, 97, 97, 97, 97, 375, 45, 45, 45, 379, 45, 45, 390, 45, 45, 394, 45, 45, 45, 45, 45, 443, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 461, 67, 67, 67, 465, 67, 67, 476, 67, 67, 480, 67, 67, 67, 67, 67, 67, 1694, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1288, 67, 67, 67, 67, 67, 67, 500, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1075, 97, 97, 97, 558, 97, 97, 97, 562, 97, 97, 573, 97, 97, 577, 97, 97, 97, 97, 97, 895, 97, 97, 97, 97, 97, 97, 903, 97, 97, 97, 0, 97, 97, 1638, 97, 97, 97, 97, 97, 97, 97, 97, 1646, 597, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1334, 45, 681, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1396, 45, 45, 1399, 45, 45, 730, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1434, 67, 67, 67, 67, 67, 67, 750, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1456, 67, 67, 67, 67, 67, 45, 45, 993, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1238, 67, 67, 1006, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1280, 1048, 1049, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1059, 67, 67, 67, 67, 67, 67, 1286, 67, 67, 67, 67, 67, 67, 67, 1291, 67, 97, 97, 1100, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 638, 0, 920, 97, 97, 1142, 1143, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1153, 97, 97, 97, 97, 97, 1158, 97, 97, 97, 1161, 97, 97, 97, 97, 1166, 97, 97, 97, 97, 97, 1325, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1328, 97, 97, 97, 97, 97, 97, 97, 45, 1218, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1678, 45, 45, 45, 67, 67, 67, 67, 67, 1269, 67, 67, 67, 67, 67, 67, 67, 67, 1278, 67, 67, 67, 67, 67, 67, 1761, 67, 67, 67, 67, 67, 67, 67, 67, 67, 530, 67, 67, 67, 67, 67, 67, 97, 97, 1349, 97, 97, 97, 97, 97, 97, 97, 97, 1358, 97, 97, 97, 97, 97, 97, 1623, 97, 97, 97, 97, 97, 97, 97, 97, 0, 921, 0, 0, 926, 0, 0, 0, 45, 45, 1411, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1754, 45, 45, 67, 67, 1301, 0, 1307, 0, 1313, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 21054, 97, 97, 97, 97, 67, 1757, 67, 67, 67, 1760, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1467, 67, 67, 67, 67, 67, 1778, 97, 0, 0, 97, 97, 97, 97, 97, 97, 0, 0, 97, 97, 0, 97, 97, 97, 97, 97, 1352, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1511, 97, 97, 97, 97, 97, 67, 67, 67, 67, 67, 1820, 67, 1822, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 97, 1933, 97, 1892, 97, 97, 97, 97, 97, 97, 1899, 45, 45, 45, 45, 45, 45, 45, 45, 1664, 45, 45, 45, 45, 45, 45, 45, 45, 1546, 45, 45, 45, 45, 45, 45, 45, 45, 1208, 45, 45, 45, 45, 45, 45, 45, 45, 1224, 45, 45, 45, 45, 45, 45, 45, 45, 673, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 1925, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 97, 623, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 307, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1796, 97, 45, 45, 45, 45, 45, 45, 45, 970, 45, 45, 45, 45, 45, 45, 45, 45, 1417, 45, 45, 45, 45, 45, 45, 45, 67, 1964, 67, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1721, 97, 97, 0, 0, 1997, 97, 0, 0, 2000, 97, 97, 0, 97, 97, 97, 97, 97, 45, 45, 45, 45, 733, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 803, 67, 67, 67, 67, 67, 0, 94242, 0, 0, 0, 38, 102439, 0, 0, 106538, 98347, 28809, 45, 45, 144, 45, 45, 45, 1805, 45, 1807, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 231, 67, 67, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 45, 45, 67, 211, 67, 67, 67, 67, 230, 234, 240, 244, 67, 67, 67, 67, 67, 67, 464, 67, 67, 67, 67, 67, 67, 479, 67, 67, 67, 260, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 97, 291, 97, 97, 97, 97, 310, 314, 320, 324, 97, 97, 97, 97, 97, 97, 1367, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1355, 97, 97, 97, 97, 97, 97, 1362, 340, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 360, 0, 362, 0, 365, 28809, 367, 139, 369, 45, 45, 45, 374, 67, 67, 460, 67, 67, 67, 67, 466, 67, 67, 67, 67, 67, 67, 67, 67, 801, 67, 67, 67, 67, 67, 67, 67, 67, 67, 487, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 498, 67, 67, 67, 67, 67, 67, 1772, 67, 67, 97, 97, 97, 97, 97, 97, 97, 0, 921, 922, 1175, 0, 0, 0, 0, 45, 67, 502, 67, 67, 67, 67, 67, 67, 67, 508, 67, 67, 67, 515, 517, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 0, 0, 1932, 97, 97, 0, 1999, 97, 97, 97, 0, 97, 97, 2004, 2005, 97, 45, 45, 45, 45, 1193, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 676, 45, 45, 45, 45, 67, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 552, 97, 97, 97, 97, 97, 1377, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 655, 45, 45, 45, 45, 45, 45, 45, 97, 97, 557, 97, 97, 97, 97, 563, 97, 97, 97, 97, 97, 97, 97, 97, 1135, 97, 97, 97, 97, 97, 97, 97, 97, 97, 584, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 595, 97, 97, 97, 97, 97, 911, 97, 97, 97, 97, 97, 97, 97, 638, 0, 0, 0, 0, 1315, 0, 0, 0, 0, 97, 97, 97, 1319, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 1733, 97, 97, 97, 97, 97, 97, 1340, 97, 97, 97, 1343, 97, 97, 1345, 97, 1346, 97, 599, 97, 97, 97, 97, 97, 97, 97, 605, 97, 97, 97, 612, 614, 97, 97, 97, 97, 97, 1794, 97, 97, 97, 45, 45, 45, 45, 45, 45, 45, 1207, 45, 45, 45, 45, 45, 45, 1213, 45, 45, 745, 67, 67, 67, 67, 751, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1577, 67, 67, 67, 67, 67, 762, 67, 67, 67, 67, 766, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1765, 67, 67, 67, 67, 67, 777, 67, 67, 781, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1592, 1593, 67, 67, 97, 843, 97, 97, 97, 97, 849, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1510, 97, 97, 97, 97, 97, 97, 97, 860, 97, 97, 97, 97, 864, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1797, 45, 45, 45, 45, 1801, 45, 97, 875, 97, 97, 879, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1522, 97, 97, 97, 97, 97, 991, 45, 45, 45, 45, 996, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 215, 67, 67, 67, 67, 233, 67, 67, 67, 67, 251, 253, 1022, 67, 67, 67, 1026, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1035, 67, 67, 1038, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1458, 67, 67, 67, 67, 67, 1064, 67, 67, 67, 1067, 67, 67, 67, 67, 1072, 67, 67, 67, 67, 67, 67, 1296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2367488, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 1096, 0, 921, 29315, 0, 0, 0, 0, 928, 45, 45, 45, 45, 45, 934, 45, 45, 45, 164, 45, 45, 45, 45, 45, 45, 45, 45, 45, 198, 45, 45, 45, 378, 45, 45, 45, 45, 45, 45, 393, 45, 45, 45, 398, 45, 97, 97, 1116, 97, 97, 97, 1120, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1147, 1148, 97, 97, 97, 97, 97, 97, 97, 1129, 97, 97, 1132, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1626, 97, 97, 97, 97, 0, 45, 1178, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1185, 45, 45, 45, 45, 441, 45, 45, 45, 45, 45, 45, 451, 45, 45, 67, 67, 67, 67, 67, 227, 67, 67, 67, 67, 67, 67, 67, 67, 1260, 67, 67, 67, 1263, 67, 67, 1265, 1203, 45, 45, 1205, 45, 1206, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1216, 67, 1266, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1276, 67, 67, 67, 67, 67, 67, 492, 67, 67, 67, 67, 67, 67, 67, 67, 67, 471, 67, 67, 67, 67, 481, 67, 45, 1386, 45, 1389, 45, 45, 45, 45, 1394, 45, 45, 45, 1397, 45, 45, 45, 45, 995, 45, 997, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 1915, 67, 67, 67, 67, 67, 1422, 45, 45, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1433, 67, 1436, 67, 67, 67, 67, 1441, 67, 67, 67, 1444, 67, 67, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 281, 28809, 53531, 97, 97, 97, 97, 1494, 97, 97, 97, 1497, 97, 97, 97, 97, 97, 97, 97, 1368, 97, 97, 97, 97, 97, 97, 97, 97, 851, 97, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1571, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 67, 67, 1583, 67, 67, 67, 67, 67, 67, 67, 67, 1591, 67, 67, 67, 67, 67, 67, 752, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1056, 67, 67, 67, 67, 67, 67, 97, 1634, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1125, 97, 97, 97, 1647, 97, 97, 97, 97, 97, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1183, 45, 45, 45, 45, 45, 45, 45, 45, 45, 409, 45, 45, 45, 45, 45, 45, 1658, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1668, 1712, 97, 97, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 0, 0, 1835, 97, 97, 97, 97, 0, 0, 0, 97, 97, 1844, 97, 97, 1726, 0, 97, 97, 97, 97, 97, 1732, 97, 1734, 97, 97, 97, 97, 97, 300, 97, 308, 97, 97, 97, 97, 97, 97, 97, 97, 866, 97, 97, 97, 97, 97, 97, 97, 67, 67, 67, 1758, 67, 67, 67, 1762, 67, 67, 67, 67, 67, 67, 67, 67, 1043, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1771, 67, 67, 67, 97, 97, 97, 97, 97, 1776, 97, 97, 97, 97, 297, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1108, 97, 97, 97, 97, 67, 67, 67, 1966, 97, 97, 97, 1970, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 97, 1720, 97, 97, 97, 97, 97, 0, 0, 97, 97, 97, 1837, 97, 0, 1840, 1841, 97, 97, 97, 1988, 45, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1994, 1995, 67, 97, 97, 97, 97, 97, 1103, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 917, 97, 97, 0, 0, 0, 67, 67, 265, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 345, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 131427, 0, 0, 0, 361, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 671, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 411, 45, 45, 414, 45, 45, 45, 45, 377, 45, 45, 45, 386, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1223, 45, 45, 45, 45, 45, 45, 45, 45, 45, 426, 45, 45, 433, 45, 45, 45, 67, 67, 67, 67, 67, 463, 67, 67, 67, 472, 67, 67, 67, 67, 67, 67, 67, 527, 67, 67, 67, 67, 67, 67, 537, 67, 540, 24850, 24850, 12564, 12564, 0, 57889, 0, 0, 0, 53531, 53531, 367, 286, 97, 97, 97, 97, 97, 1119, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1509, 97, 97, 97, 97, 97, 97, 97, 97, 564, 97, 97, 97, 97, 97, 97, 97, 637, 18, 131427, 0, 0, 0, 0, 0, 0, 362, 0, 0, 365, 29315, 367, 0, 921, 29315, 0, 0, 0, 927, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1234, 45, 45, 45, 45, 67, 67, 67, 67, 1240, 45, 697, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 708, 45, 45, 45, 45, 1221, 45, 45, 45, 45, 1225, 45, 45, 45, 45, 45, 45, 384, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1210, 45, 45, 45, 45, 45, 45, 67, 67, 795, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1470, 67, 67, 67, 67, 67, 67, 67, 815, 67, 67, 67, 67, 67, 67, 25398, 542, 13112, 544, 97, 97, 97, 893, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1164, 97, 97, 97, 67, 67, 67, 1025, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1687, 67, 67, 67, 67, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 0, 0, 0, 1097, 1241, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1450, 45, 45, 1388, 45, 1390, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1236, 67, 67, 67, 67, 67, 1437, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1472, 1490, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1503, 67, 67, 67, 67, 67, 97, 97, 97, 97, 97, 0, 1930, 0, 97, 97, 97, 97, 97, 847, 97, 97, 97, 97, 97, 97, 97, 97, 97, 858, 67, 67, 1965, 67, 97, 97, 97, 97, 0, 0, 0, 97, 97, 97, 97, 0, 97, 97, 1719, 97, 97, 97, 97, 97, 97, 0, 0, 0, 45, 45, 45, 45, 1382, 45, 1383, 45, 45, 45, 159, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1563, 45, 45, 45, 45, 45, 67, 261, 67, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 341, 97, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 97, 1099, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1333, 97, 1230, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 67, 1992, 67, 1993, 67, 67, 67, 97, 97, 45, 45, 160, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1665, 45, 45, 45, 45, 45, 131427, 357, 0, 0, 0, 362, 0, 365, 28809, 367, 139, 45, 45, 45, 45, 45, 684, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 412, 45, 45, 45, 416, 45, 45, 45, 440, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 67, 67, 1990, 67, 1991, 67, 67, 67, 67, 67, 67, 67, 97, 97, 1707, 97, 97, 97, 97, 97, 97, 501, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1691, 67, 67, 67, 67, 67, 526, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1030, 67, 1032, 67, 67, 67, 67, 598, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1632, 0, 921, 29315, 923, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1404, 45, 45, 45, 45, 45, 45, 45, 45, 45, 425, 45, 45, 45, 45, 45, 45, 67, 67, 67, 67, 67, 25398, 0, 13112, 0, 54074, 0, 0, 1093, 0, 0, 0, 0, 0, 97, 1609, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1369, 97, 97, 97, 1372, 97, 97, 67, 67, 266, 67, 67, 67, 67, 0, 24850, 12564, 0, 0, 0, 0, 28809, 53531, 97, 346, 97, 97, 97, 97, 0, 40976, 0, 18, 18, 24, 24, 27, 27, 27, 665, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1677, 45, 45, 45, 45, 67, 45, 45, 954, 45, 956, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1545, 45, 45, 45, 45, 45, 45, 45, 45, 45, 448, 45, 45, 45, 45, 67, 456, 67, 67, 67, 67, 67, 1270, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1069, 67, 67, 67, 67, 67, 67, 97, 97, 97, 1350, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1524, 97, 97, 97, 97, 97, 97, 97, 1376, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 1559, 1561, 45, 45, 45, 1564, 45, 1566, 1567, 45, 67, 67, 67, 67, 67, 1573, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 1247, 67, 67, 67, 67, 67, 1252, 97, 1725, 97, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1628, 97, 1630, 0, 0, 94242, 0, 0, 0, 2211840, 0, 1118208, 0, 0, 0, 0, 2158592, 2158731, 2158592, 2158592, 2158592, 3117056, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3018752, 2158592, 3043328, 2158592, 2158592, 2158592, 2158592, 3080192, 2158592, 2158592, 3112960, 2158592, 2158592, 2158592, 2158592, 2158592, 2158878, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2605056, 2158592, 2158592, 2207744, 0, 542, 0, 544, 0, 0, 2166784, 0, 0, 0, 550, 0, 0, 2158592, 2158592, 2686976, 2158592, 2715648, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2867200, 2158592, 2904064, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 0, 94242, 0, 0, 0, 2211840, 0, 0, 1130496, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 3186688, 2158592, 0, 0, 139, 0, 0, 0, 139, 0, 2367488, 2207744, 0, 0, 0, 0, 176128, 0, 2166784, 0, 0, 0, 0, 0, 286, 2158592, 2158592, 3170304, 3174400, 2158592, 0, 0, 0, 2158592, 2158592, 2158592, 2158592, 2158592, 2424832, 2158592, 2158592, 2158592, 1508, 2158592, 2908160, 2158592, 2158592, 2158592, 2977792, 2158592, 2158592, 2158592, 2158592, 3039232, 2158592, 2158592, 2158592, 2158592, 2158592, 2158592, 3158016, 67, 24850, 24850, 12564, 12564, 0, 0, 0, 0, 0, 53531, 53531, 0, 286, 97, 97, 97, 97, 97, 1144, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1149, 97, 97, 97, 97, 1154, 57889, 0, 0, 0, 0, 550, 0, 97, 97, 97, 97, 97, 97, 97, 97, 97, 561, 97, 97, 97, 97, 97, 97, 576, 97, 97, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 139264, 0, 0, 139264, 0, 921, 29315, 0, 0, 926, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 719, 720, 45, 45, 45, 45, 45, 45, 45, 45, 685, 45, 45, 45, 45, 45, 45, 45, 45, 45, 942, 45, 45, 946, 45, 45, 45, 950, 45, 45, 0, 2146304, 2146304, 0, 0, 0, 0, 2224128, 2224128, 2224128, 2232320, 2232320, 2232320, 2232320, 0, 0, 1301, 0, 0, 0, 0, 0, 1307, 0, 0, 0, 0, 0, 1313, 0, 0, 0, 0, 0, 0, 0, 97, 97, 1318, 97, 97, 97, 97, 97, 97, 1795, 97, 97, 45, 45, 45, 45, 45, 45, 45, 446, 45, 45, 45, 45, 45, 45, 67, 67, 2158592, 2146304, 0, 0, 0, 0, 0, 0, 0, 2211840, 0, 0, 0, 0, 2158592, 0, 921, 29315, 0, 924, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 1000, 45, 45, 45, 45, 67, 67 +]; + +XQueryTokenizer.EXPECTED = +[ 290, 300, 304, 353, 296, 309, 305, 319, 315, 324, 328, 352, 354, 334, 338, 330, 320, 345, 349, 293, 358, 362, 341, 366, 312, 370, 374, 378, 382, 386, 390, 394, 398, 737, 402, 634, 439, 604, 634, 634, 634, 634, 408, 634, 634, 634, 404, 634, 634, 634, 457, 634, 634, 963, 634, 634, 413, 634, 634, 634, 634, 634, 634, 634, 663, 418, 422, 903, 902, 426, 431, 548, 634, 437, 521, 919, 443, 615, 409, 449, 455, 624, 731, 751, 634, 461, 465, 672, 470, 469, 474, 481, 485, 477, 489, 493, 629, 542, 497, 505, 603, 602, 991, 648, 510, 804, 634, 515, 958, 526, 525, 530, 768, 634, 546, 552, 711, 710, 593, 558, 562, 618, 566, 570, 574, 578, 582, 586, 590, 608, 612, 660, 822, 821, 634, 622, 596, 444, 628, 533, 724, 633, 640, 653, 647, 652, 536, 1008, 451, 450, 445, 657, 670, 676, 685, 689, 693, 697, 701, 704, 707, 715, 719, 798, 815, 634, 723, 762, 996, 634, 728, 969, 730, 735, 908, 634, 741, 679, 889, 511, 747, 634, 750, 755, 499, 666, 499, 501, 759, 772, 776, 780, 634, 787, 784, 797, 802, 809, 808, 427, 814, 1006, 517, 634, 519, 853, 634, 813, 850, 793, 634, 819, 826, 833, 832, 837, 843, 847, 857, 861, 863, 867, 871, 875, 879, 883, 643, 887, 539, 980, 979, 634, 893, 944, 634, 900, 896, 634, 907, 933, 506, 912, 917, 828, 433, 636, 635, 554, 961, 923, 930, 927, 937, 941, 634, 634, 634, 974, 948, 952, 985, 913, 968, 967, 743, 634, 973, 839, 634, 978, 599, 634, 984, 989, 765, 444, 995, 1000, 634, 1003, 790, 955, 1012, 681, 634, 634, 634, 634, 634, 414, 1016, 1020, 1024, 1085, 1027, 1090, 1090, 1046, 1080, 1137, 1108, 1215, 1049, 1032, 1039, 1085, 1085, 1085, 1085, 1058, 1062, 1068, 1085, 1086, 1090, 1090, 1091, 1072, 1064, 1107, 1090, 1090, 1090, 1118, 1123, 1138, 1078, 1074, 1084, 1085, 1085, 1085, 1087, 1090, 1062, 1052, 1060, 1114, 1062, 1104, 1085, 1085, 1090, 1090, 1028, 1122, 1063, 1128, 1139, 1127, 1158, 1085, 1085, 1151, 1090, 1090, 1090, 1095, 1090, 1132, 1073, 1136, 1143, 1061, 1150, 1085, 1155, 1098, 1101, 1146, 1162, 1169, 1101, 1185, 1151, 1090, 1110, 1173, 1054, 1087, 1109, 1177, 1165, 1089, 1204, 1184, 1107, 1189, 1193, 1088, 1197, 1180, 1201, 1208, 1042, 1212, 1219, 1223, 1227, 1231, 1235, 1245, 1777, 1527, 1686, 1686, 1238, 1686, 1254, 1686, 1686, 1686, 1294, 1669, 1686, 1686, 1686, 1322, 1625, 1534, 1268, 1624, 1275, 1281, 1443, 1292, 1300, 1686, 1686, 1686, 1350, 1826, 1306, 1686, 1686, 1240, 2032, 1317, 1321, 1686, 1686, 1253, 1686, 1326, 1686, 1686, 1686, 1418, 1709, 1446, 1686, 1686, 1686, 1492, 1686, 1295, 1447, 1686, 1686, 1258, 1686, 1736, 1686, 1686, 1520, 1355, 1686, 1288, 1348, 1361, 1686, 1359, 1686, 1364, 1498, 1368, 1302, 1362, 1381, 1389, 1395, 1486, 1686, 1371, 1377, 1370, 1686, 1375, 1382, 1384, 1402, 1408, 1385, 1383, 1619, 1413, 1423, 1428, 1433, 1686, 1686, 1270, 1686, 1338, 1686, 1440, 1686, 1686, 1686, 1499, 1465, 1686, 1686, 1686, 1639, 1473, 1884, 1686, 1686, 1293, 1864, 1686, 1686, 1296, 1321, 1483, 1686, 1686, 1686, 1646, 1686, 1748, 1496, 1686, 1418, 1675, 1686, 1418, 1702, 1686, 1418, 1981, 1686, 1429, 1409, 1427, 1504, 1692, 1686, 1686, 1313, 1448, 1651, 1508, 1686, 1686, 1340, 1686, 1903, 1686, 1686, 1435, 1513, 1686, 1283, 1287, 1519, 1686, 1524, 1363, 1568, 1938, 1539, 1566, 1579, 1479, 1533, 1538, 1553, 1544, 1552, 1557, 1563, 1574, 1557, 1583, 1589, 1590, 1759, 1594, 1603, 1607, 1611, 1686, 1436, 1514, 1686, 1434, 1656, 1686, 1434, 1680, 1686, 1453, 1686, 1686, 1686, 1559, 1617, 1686, 1770, 1418, 1623, 1769, 1629, 1686, 1515, 1335, 1686, 1285, 1686, 1671, 1921, 1650, 1686, 1686, 1344, 1308, 1666, 1686, 1686, 1686, 1659, 1685, 1686, 1686, 1686, 1686, 1241, 1686, 1686, 1844, 1691, 1686, 1630, 1977, 1970, 1362, 1686, 1686, 1686, 1693, 1698, 1686, 1686, 1686, 1697, 1686, 1764, 1715, 1686, 1634, 1638, 1686, 1599, 1585, 1686, 1271, 1686, 1269, 1686, 1721, 1686, 1686, 1354, 1686, 1801, 1686, 1799, 1686, 1640, 1686, 1686, 1461, 1686, 1686, 1732, 1686, 1944, 1686, 1740, 1686, 1746, 1415, 1396, 1686, 1598, 1547, 1417, 1597, 1416, 1577, 1546, 1397, 1577, 1547, 1548, 1570, 1398, 1753, 1686, 1652, 1509, 1686, 1686, 1686, 1757, 1686, 1419, 1686, 1763, 1418, 1768, 1781, 1686, 1686, 1686, 1705, 1686, 2048, 1792, 1686, 1686, 1686, 1735, 1686, 1797, 1686, 1686, 1404, 1686, 1639, 1815, 1686, 1686, 1418, 2017, 1820, 1686, 1686, 1803, 1686, 1686, 1686, 1736, 1489, 1686, 1686, 1825, 1338, 1260, 1263, 1686, 1686, 1785, 1686, 1686, 1728, 1686, 1686, 1749, 1497, 1830, 1830, 1262, 1248, 1261, 1329, 1260, 1264, 1329, 1248, 1249, 1259, 1540, 1849, 1842, 1686, 1686, 1835, 1686, 1686, 1816, 1686, 1686, 1831, 1882, 1848, 1686, 1686, 1686, 1774, 2071, 1854, 1686, 1686, 1469, 1884, 1686, 1821, 1859, 1686, 1686, 1350, 1883, 1686, 1686, 1686, 1781, 1391, 1875, 1686, 1686, 1613, 1644, 1686, 1686, 1889, 1686, 1686, 1662, 1884, 1686, 1885, 1890, 1686, 1686, 1686, 1894, 1686, 1686, 1678, 1686, 1907, 1686, 1686, 1529, 1914, 1686, 1838, 1686, 1686, 1881, 1686, 1686, 1872, 1876, 1836, 1919, 1686, 1837, 1692, 1910, 1686, 1925, 1928, 1742, 1686, 1811, 1811, 1930, 1810, 1929, 1935, 1928, 1900, 1942, 1867, 1868, 1931, 1035, 1788, 1948, 1952, 1956, 1960, 1964, 1686, 1976, 1686, 1686, 1686, 2065, 1686, 1992, 2037, 1686, 1686, 1998, 2009, 1972, 2002, 1686, 1686, 1686, 2077, 1300, 2023, 1686, 1686, 1686, 1807, 2031, 1686, 1686, 1686, 1860, 1500, 2032, 1686, 1686, 1686, 2083, 1686, 2036, 1686, 1277, 1276, 2042, 1877, 1686, 1686, 2041, 1686, 1686, 2027, 2037, 2012, 1686, 2012, 1855, 1850, 1686, 2046, 1686, 1686, 2054, 1996, 1686, 1897, 1309, 2059, 2052, 1686, 2058, 1686, 1686, 2081, 1686, 1717, 1477, 1686, 1331, 1686, 1686, 1687, 1686, 1860, 1681, 1686, 1686, 1686, 1966, 1724, 1686, 1686, 1686, 1984, 2015, 1686, 1686, 1686, 1988, 1686, 2063, 1686, 1686, 1686, 2005, 1686, 1727, 1686, 1686, 1711, 1457, 2069, 1686, 1686, 1686, 2019, 2075, 1686, 1686, 1915, 1686, 1686, 1793, 1874, 1686, 1686, 1491, 1362, 1449, 1686, 1686, 1460, 2098, 2087, 2091, 2095, 2184, 2102, 2113, 2780, 2117, 2134, 2142, 2281, 2146, 2146, 2146, 2304, 2296, 2181, 2639, 2591, 2872, 2592, 2873, 2313, 2195, 2200, 2281, 2146, 2273, 2226, 2204, 2152, 2219, 2276, 2167, 2177, 2276, 2235, 2276, 2276, 2230, 2281, 2276, 2296, 2276, 2293, 2276, 2276, 2276, 2276, 2234, 2276, 2311, 2314, 2210, 2199, 2217, 2222, 2276, 2276, 2276, 2240, 2276, 2294, 2276, 2276, 2173, 2276, 2198, 2281, 2281, 2281, 2281, 2282, 2146, 2146, 2146, 2146, 2205, 2146, 2204, 2248, 2276, 2235, 2276, 2297, 2276, 2276, 2276, 2277, 2256, 2281, 2283, 2146, 2146, 2146, 2275, 2276, 2295, 2276, 2276, 2293, 2146, 2304, 2264, 2269, 2221, 2276, 2276, 2276, 2293, 2295, 2276, 2276, 2276, 2295, 2263, 2205, 2268, 2220, 2172, 2276, 2276, 2276, 2296, 2276, 2276, 2296, 2294, 2276, 2276, 2278, 2281, 2281, 2280, 2281, 2281, 2281, 2283, 2206, 2223, 2276, 2276, 2279, 2281, 2281, 2146, 2273, 2276, 2276, 2281, 2281, 2281, 2276, 2292, 2276, 2298, 2225, 2276, 2298, 2169, 2224, 2292, 2298, 2171, 2229, 2281, 2281, 2171, 2236, 2281, 2281, 2281, 2146, 2275, 2225, 2292, 2299, 2276, 2229, 2281, 2146, 2276, 2290, 2297, 2283, 2146, 2146, 2274, 2224, 2227, 2298, 2225, 2297, 2276, 2230, 2170, 2230, 2282, 2146, 2147, 2151, 2156, 2288, 2276, 2230, 2303, 2308, 2236, 2284, 2228, 2318, 2318, 2318, 2326, 2335, 2339, 2343, 2349, 2416, 2693, 2357, 2592, 2109, 2592, 2592, 2162, 2943, 2823, 2646, 2592, 2361, 2592, 2122, 2592, 2592, 2122, 2470, 2592, 2592, 2592, 2109, 2107, 2592, 2592, 2592, 2123, 2592, 2592, 2592, 2125, 2592, 2413, 2592, 2592, 2592, 2127, 2592, 2592, 2414, 2592, 2592, 2592, 2130, 2952, 2592, 2594, 2592, 2592, 2212, 2609, 2252, 2592, 2592, 2592, 2446, 2434, 2592, 2592, 2592, 2212, 2446, 2450, 2456, 2431, 2435, 2592, 2592, 2243, 2478, 2448, 2439, 2946, 2592, 2592, 2592, 2368, 2809, 2813, 2450, 2441, 2212, 2812, 2449, 2440, 2947, 2592, 2592, 2592, 2345, 2451, 2457, 2948, 2592, 2124, 2592, 2592, 2650, 2823, 2449, 2455, 2946, 2592, 2128, 2592, 2592, 2649, 2952, 2592, 2810, 2448, 2461, 2991, 2467, 2592, 2592, 2329, 2817, 2474, 2990, 2466, 2592, 2592, 2373, 2447, 2992, 2469, 2592, 2592, 2592, 2373, 2447, 2477, 2468, 2592, 2592, 2353, 2469, 2592, 2495, 2592, 2592, 2415, 2483, 2592, 2415, 2496, 2592, 2592, 2352, 2592, 2592, 2352, 2352, 2469, 2592, 2592, 2363, 2331, 2494, 2592, 2592, 2592, 2375, 2592, 2375, 2415, 2504, 2592, 2592, 2367, 2372, 2503, 2592, 2592, 2592, 2389, 2418, 2415, 2592, 2592, 2373, 2592, 2592, 2592, 2593, 2732, 2417, 2415, 2592, 2417, 2520, 2592, 2592, 2592, 2390, 2521, 2521, 2592, 2592, 2592, 2401, 2599, 2585, 2526, 2531, 2120, 2592, 2212, 2426, 2450, 2463, 2948, 2592, 2592, 2592, 2213, 2389, 2527, 2532, 2121, 2542, 2551, 2105, 2592, 2213, 2592, 2592, 2592, 2558, 2538, 2544, 2553, 2557, 2537, 2543, 2552, 2421, 2572, 2576, 2546, 2543, 2547, 2592, 2592, 2373, 2615, 2575, 2545, 2105, 2592, 2244, 2479, 2592, 2129, 2592, 2592, 2628, 2690, 2469, 2562, 2566, 2592, 2592, 2592, 2415, 2928, 2934, 2401, 2570, 2574, 2564, 2572, 2585, 2590, 2592, 2592, 2585, 2965, 2592, 2592, 2592, 2445, 2251, 2592, 2592, 2592, 2474, 2592, 2609, 2892, 2592, 2362, 2592, 2592, 2138, 2851, 2159, 2592, 2592, 2592, 2509, 2888, 2892, 2592, 2592, 2592, 2490, 2418, 2891, 2592, 2592, 2376, 2592, 2592, 2374, 2592, 2889, 2388, 2592, 2373, 2373, 2890, 2592, 2592, 2387, 2592, 2887, 2505, 2892, 2592, 2373, 2610, 2388, 2592, 2592, 2376, 2373, 2592, 2887, 2891, 2592, 2374, 2592, 2592, 2608, 2159, 2614, 2620, 2592, 2592, 2394, 2594, 2887, 2399, 2592, 2887, 2397, 2508, 2374, 2507, 2592, 2375, 2592, 2592, 2592, 2595, 2508, 2506, 2592, 2506, 2505, 2505, 2592, 2507, 2637, 2505, 2592, 2592, 2401, 2661, 2592, 2643, 2592, 2592, 2417, 2592, 2655, 2592, 2592, 2592, 2510, 2414, 2656, 2592, 2592, 2592, 2516, 2592, 2593, 2660, 2665, 2880, 2592, 2592, 2592, 2522, 2767, 2666, 2881, 2592, 2592, 2420, 2571, 2696, 2592, 2592, 2592, 2580, 2572, 2686, 2632, 2698, 2592, 2383, 2514, 2592, 2163, 2932, 2465, 2685, 2631, 2697, 2592, 2388, 2592, 2592, 2212, 2604, 2671, 2632, 2678, 2592, 2401, 2405, 2409, 2592, 2592, 2592, 2679, 2592, 2592, 2592, 2592, 2108, 2677, 2591, 2592, 2592, 2592, 2419, 2592, 2683, 2187, 2191, 2469, 2671, 2189, 2467, 2592, 2401, 2629, 2633, 2702, 2468, 2592, 2592, 2421, 2536, 2703, 2469, 2592, 2592, 2422, 2573, 2593, 2672, 2467, 2592, 2402, 2406, 2592, 2402, 2979, 2592, 2592, 2626, 2673, 2467, 2592, 2446, 2259, 2947, 2592, 2377, 2709, 2592, 2592, 2522, 2862, 2713, 2468, 2592, 2592, 2581, 2572, 2562, 2374, 2374, 2592, 2376, 2721, 2724, 2592, 2592, 2624, 2373, 2731, 2592, 2592, 2592, 2626, 2732, 2592, 2592, 2592, 2755, 2656, 2726, 2736, 2741, 2592, 2486, 2593, 2381, 2592, 2727, 2737, 2742, 2715, 2747, 2753, 2592, 2498, 2469, 2873, 2743, 2592, 2592, 2592, 2791, 2759, 2763, 2592, 2592, 2627, 2704, 2592, 2592, 2522, 2789, 2593, 2761, 2753, 2592, 2498, 2863, 2592, 2592, 2767, 2592, 2592, 2592, 2792, 2789, 2592, 2592, 2592, 2803, 2126, 2592, 2592, 2592, 2811, 2122, 2592, 2592, 2592, 2834, 2777, 2592, 2592, 2592, 2848, 2936, 2591, 2489, 2797, 2592, 2592, 2670, 2631, 2490, 2798, 2592, 2592, 2592, 2963, 2807, 2592, 2592, 2592, 2965, 2838, 2592, 2592, 2592, 2975, 2330, 2818, 2829, 2592, 2498, 2939, 2592, 2498, 2592, 2791, 2331, 2819, 2830, 2592, 2592, 2592, 2982, 2834, 2817, 2828, 2106, 2592, 2592, 2592, 2405, 2405, 2817, 2828, 2592, 2592, 2415, 2849, 2842, 2592, 2522, 2773, 2592, 2522, 2868, 2592, 2580, 2600, 2586, 2137, 2850, 2843, 2592, 2592, 2855, 2937, 2844, 2592, 2592, 2592, 2987, 2936, 2591, 2592, 2592, 2684, 2630, 2592, 2856, 2938, 2592, 2592, 2860, 2939, 2592, 2592, 2872, 2592, 2861, 2591, 2592, 2592, 2887, 2616, 2592, 2867, 2592, 2592, 2708, 2592, 2498, 2469, 2498, 2497, 2785, 2773, 2499, 2783, 2770, 2877, 2877, 2877, 2772, 2592, 2592, 2345, 2885, 2592, 2592, 2592, 2715, 2762, 2515, 2896, 2592, 2592, 2715, 2917, 2516, 2897, 2592, 2592, 2592, 2901, 2906, 2911, 2592, 2592, 2956, 2960, 2715, 2902, 2907, 2912, 2593, 2916, 2920, 2820, 2922, 2822, 2592, 2592, 2715, 2927, 2921, 2821, 2106, 2592, 2592, 2974, 2408, 2321, 2821, 2106, 2592, 2592, 2983, 2592, 2593, 2404, 2408, 2592, 2592, 2717, 2749, 2716, 2928, 2322, 2822, 2593, 2926, 2919, 2820, 2934, 2823, 2592, 2592, 2592, 2651, 2824, 2592, 2592, 2592, 2130, 2952, 2592, 2592, 2592, 2592, 2964, 2592, 2592, 2716, 2748, 2592, 2969, 2592, 2592, 2716, 2918, 2368, 2970, 2592, 2592, 2592, 2403, 2407, 2592, 2592, 2787, 2211, 2404, 2409, 2592, 2592, 2802, 2837, 2987, 2592, 2592, 2592, 2809, 2427, 2592, 2793, 2592, 2592, 2809, 2447, 1073741824, 0x80000000, 539754496, 542375936, 402653184, 554434560, 571736064, 545521856, 268451840, 335544320, 268693630, 512, 2048, 256, 1024, 0, 1024, 0, 1073741824, 0x80000000, 0, 0, 0, 8388608, 0, 0, 1073741824, 1073741824, 0, 0x80000000, 537133056, 4194304, 1048576, 268435456, -1073741824, 0, 0, 0, 1048576, 0, 0, 0, 1572864, 0, 0, 0, 4194304, 0, 134217728, 16777216, 0, 0, 32, 64, 98304, 0, 33554432, 8388608, 192, 67108864, 67108864, 67108864, 67108864, 16, 32, 4, 0, 8192, 196608, 196608, 229376, 80, 4096, 524288, 8388608, 0, 0, 32, 128, 256, 24576, 24600, 24576, 24576, 2, 24576, 24576, 24576, 24584, 24592, 24576, 24578, 24576, 24578, 24576, 24576, 16, 512, 2048, 2048, 256, 4096, 32768, 1048576, 4194304, 67108864, 134217728, 268435456, 262144, 134217728, 0, 128, 128, 64, 16384, 16384, 16384, 67108864, 32, 32, 4, 4, 4096, 262144, 134217728, 0, 0, 0, 2, 0, 8192, 131072, 131072, 4096, 4096, 4096, 4096, 24576, 24576, 24576, 8, 8, 24576, 24576, 16384, 16384, 16384, 24576, 24584, 24576, 24576, 24576, 16384, 24576, 536870912, 262144, 0, 0, 32, 2048, 8192, 4, 4096, 4096, 4096, 786432, 8388608, 16777216, 0, 128, 16384, 16384, 16384, 32768, 65536, 2097152, 32, 32, 32, 32, 4, 4, 4, 4, 4, 4096, 67108864, 67108864, 67108864, 24576, 24576, 24576, 24576, 0, 16384, 16384, 16384, 16384, 67108864, 67108864, 8, 67108864, 24576, 8, 8, 8, 24576, 24576, 24576, 24578, 24576, 24576, 24576, 2, 2, 2, 16384, 67108864, 67108864, 67108864, 32, 67108864, 8, 8, 24576, 2048, 0x80000000, 536870912, 262144, 262144, 262144, 67108864, 8, 24576, 16384, 32768, 1048576, 4194304, 25165824, 67108864, 24576, 32770, 2, 4, 112, 512, 98304, 524288, 50, 402653186, 1049090, 1049091, 10, 66, 100925514, 10, 66, 12582914, 0, 0, -1678194207, -1678194207, -1041543218, 0, 32768, 0, 0, 32, 65536, 268435456, 1, 1, 513, 1048577, 0, 12582912, 0, 0, 0, 4, 1792, 0, 0, 0, 7, 29360128, 0, 0, 0, 8, 0, 0, 0, 12, 1, 1, 0, 0, -604102721, -604102721, 4194304, 8388608, 0, 0, 0, 31, 925600, 997981306, 997981306, 997981306, 0, 0, 2048, 8388608, 0, 0, 1, 2, 4, 32, 64, 512, 8192, 0, 0, 0, 245760, 997720064, 0, 0, 0, 32, 0, 0, 0, 3, 12, 16, 32, 8, 112, 3072, 12288, 16384, 32768, 65536, 131072, 7864320, 16777216, 973078528, 0, 0, 65536, 131072, 3670016, 4194304, 16777216, 33554432, 2, 8, 48, 2048, 8192, 16384, 32768, 65536, 131072, 524288, 131072, 524288, 3145728, 4194304, 16777216, 33554432, 65536, 131072, 2097152, 4194304, 16777216, 33554432, 134217728, 268435456, 536870912, 0, 0, 0, 1024, 0, 8, 48, 2048, 8192, 65536, 33554432, 268435456, 536870912, 65536, 268435456, 536870912, 0, 0, 32768, 0, 0, 126, 623104, 65011712, 0, 32, 65536, 536870912, 0, 0, 65536, 524288, 0, 32, 65536, 0, 0, 0, 2048, 0, 0, 0, 15482, 245760, -604102721, 0, 0, 0, 18913, 33062912, 925600, -605028352, 0, 0, 0, 65536, 31, 8096, 131072, 786432, 3145728, 3145728, 12582912, 50331648, 134217728, 268435456, 160, 256, 512, 7168, 131072, 786432, 131072, 786432, 1048576, 2097152, 12582912, 16777216, 268435456, 1073741824, 0x80000000, 12582912, 16777216, 33554432, 268435456, 1073741824, 0x80000000, 3, 12, 16, 160, 256, 7168, 786432, 1048576, 12582912, 16777216, 268435456, 1073741824, 0, 8, 16, 32, 128, 256, 512, 7168, 786432, 1048576, 2097152, 0, 1, 2, 8, 16, 7168, 786432, 1048576, 8388608, 16777216, 16777216, 1073741824, 0, 0, 0, 0, 1, 0, 0, 8, 32, 128, 256, 7168, 8, 32, 0, 3072, 0, 8, 32, 3072, 4096, 524288, 8, 32, 0, 0, 3072, 4096, 0, 2048, 524288, 8388608, 8, 2048, 0, 0, 1, 12, 256, 4096, 32768, 262144, 1048576, 4194304, 67108864, 0, 2048, 0, 2048, 2048, 1073741824, -58805985, -58805985, -58805985, 0, 0, 262144, 0, 0, 32, 4194304, 16777216, 134217728, 4382, 172032, -58982400, 0, 0, 2, 28, 256, 4096, 8192, 8192, 32768, 131072, 262144, 524288, 1, 2, 12, 256, 4096, 0, 0, 4194304, 67108864, 134217728, 805306368, 1073741824, 0, 0, 1, 2, 12, 16, 256, 4096, 1048576, 67108864, 134217728, 268435456, 0, 512, 1048576, 4194304, 201326592, 1879048192, 0, 0, 12, 256, 4096, 134217728, 268435456, 536870912, 12, 256, 268435456, 536870912, 0, 12, 256, 0, 0, 1, 32, 64, 512, 0, 0, 205236961, 205236961, 0, 0, 0, 1, 96, 640, 1, 10976, 229376, 204996608, 0, 640, 2048, 8192, 229376, 1572864, 1572864, 2097152, 201326592, 0, 0, 0, 64, 512, 2048, 229376, 1572864, 201326592, 1572864, 201326592, 0, 0, 1, 4382, 0, 1, 32, 2048, 65536, 131072, 1572864, 201326592, 131072, 1572864, 134217728, 0, 0, 524288, 524288, 0, 0, 0, -68582786, -68582786, -68582786, 0, 0, 2097152, 524288, 0, 524288, 0, 0, 65536, 131072, 1572864, 0, 0, 2, 4, 0, 0, 65011712, -134217728, 0, 0, 0, 0, 2, 4, 120, 512, -268435456, 0, 0, 0, 2, 8, 48, 64, 2048, 8192, 98304, 524288, 2097152, 4194304, 25165824, 33554432, 134217728, 268435456, 0x80000000, 0, 0, 25165824, 33554432, 134217728, 1879048192, 0x80000000, 0, 0, 4, 112, 512, 622592, 65011712, 134217728, -268435456, 16777216, 33554432, 134217728, 1610612736, 0, 0, 0, 64, 98304, 524288, 4194304, 16777216, 33554432, 0, 98304, 524288, 16777216, 33554432, 0, 65536, 524288, 33554432, 536870912, 1073741824, 0, 65536, 524288, 536870912, 1073741824, 0, 0, 65536, 524288, 536870912, 0, 524288, 0, 524288, 524288, 1048576, 2086666240, 0x80000000, 0, -1678194207, 0, 0, 0, 8, 32, 2048, 524288, 8388608, 0, 0, 33062912, 436207616, 0x80000000, 0, 0, 32, 64, 2432, 16384, 32768, 32768, 524288, 3145728, 4194304, 25165824, 25165824, 167772160, 268435456, 0x80000000, 0, 32, 64, 384, 2048, 16384, 32768, 1048576, 2097152, 4194304, 25165824, 32, 64, 128, 256, 2048, 16384, 2048, 16384, 1048576, 4194304, 16777216, 33554432, 134217728, 536870912, 1073741824, 0, 0, 2048, 16384, 4194304, 16777216, 33554432, 134217728, 805306368, 0, 0, 16777216, 134217728, 268435456, 0x80000000, 0, 622592, 622592, 622592, 8807, 8807, 434791, 0, 0, 16777216, 0, 0, 0, 7, 608, 8192, 0, 0, 0, 3, 4, 96, 512, 32, 64, 8192, 0, 0, 16777216, 134217728, 0, 0, 2, 4, 8192, 16384, 65536, 2097152, 33554432, 268435456 +]; + +XQueryTokenizer.TOKEN = +[ + "(0)", + "ModuleDecl", + "Annotation", + "OptionDecl", + "Operator", + "Variable", + "Tag", + "EndTag", + "PragmaContents", + "DirCommentContents", + "DirPIContents", + "CDataSectionContents", + "AttrTest", + "Wildcard", + "EQName", + "IntegerLiteral", + "DecimalLiteral", + "DoubleLiteral", + "PredefinedEntityRef", + "'\"\"'", + "EscapeApos", + "QuotChar", + "AposChar", + "ElementContentChar", + "QuotAttrContentChar", + "AposAttrContentChar", + "NCName", + "QName", + "S", + "CharRef", + "CommentContents", + "DocTag", + "DocCommentContents", + "EOF", + "'!'", + "'\"'", + "'#'", + "'#)'", + "''''", + "'('", + "'(#'", + "'(:'", + "'(:~'", + "')'", + "'*'", + "'*'", + "','", + "'-->'", + "'.'", + "'/'", + "'/>'", + "':'", + "':)'", + "';'", + "''), token: xmlcomment, next: function(stack){ stack.pop(); } } + ], + CData: [ + { name: 'CDataSectionContents', token: cdata }, + { name: n(']]>'), token: cdata, next: function(stack){ stack.pop(); } } + ], + PI: [ + { name: 'DirPIContents', token: pi }, + { name: n('?'), token: pi }, + { name: n('?>'), token: pi, next: function(stack){ stack.pop(); } } + ], + AposString: [ + { name: n('\'\''), token: 'string', next: function(stack){ stack.pop(); } }, + { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, + { name: 'CharRef', token: 'constant.language.escape' }, + { name: 'EscapeApos', token: 'constant.language.escape' }, + { name: 'AposChar', token: 'string' } + ], + QuotString: [ + { name: n('"'), token: 'string', next: function(stack){ stack.pop(); } }, + { name: 'PredefinedEntityRef', token: 'constant.language.escape' }, + { name: 'CharRef', token: 'constant.language.escape' }, + { name: 'EscapeQuot', token: 'constant.language.escape' }, + { name: 'QuotChar', token: 'string' } + ] +}; + +exports.XQueryLexer = function(){ return new Lexer(XQueryTokenizer, Rules); }; +},{"./XQueryTokenizer":"/node_modules/xqlint/lib/lexers/XQueryTokenizer.js","./lexer":"/node_modules/xqlint/lib/lexers/lexer.js"}]},{},["/node_modules/xqlint/lib/lexers/xquery_lexer.js"]); + +}); + +ace.define("ace/mode/behaviour/xml",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +function is(token, type) { + return token.type.lastIndexOf(type + ".xml") > -1; +} + +var XmlBehaviour = function () { + + this.add("string_dquotes", "insertion", function (state, action, editor, session, text) { + if (text == '"' || text == "'") { + var quote = text; + var selected = session.doc.getTextRange(editor.getSelectionRange()); + if (selected !== "" && selected !== "'" && selected != '"' && editor.getWrapBehavioursEnabled()) { + return { + text: quote + selected + quote, + selection: false + }; + } + + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (rightChar == quote && (is(token, "attribute-value") || is(token, "string"))) { + return { + text: "", + selection: [1, 1] + }; + } + + if (!token) + token = iterator.stepBackward(); + + if (!token) + return; + + while (is(token, "tag-whitespace") || is(token, "whitespace")) { + token = iterator.stepBackward(); + } + var rightSpace = !rightChar || rightChar.match(/\s/); + if (is(token, "attribute-equals") && (rightSpace || rightChar == '>') || (is(token, "decl-attribute-equals") && (rightSpace || rightChar == '?'))) { + return { + text: quote + quote, + selection: [1, 1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && (selected == '"' || selected == "'")) { + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + + this.add("autoclosing", "insertion", function (state, action, editor, session, text) { + if (text == '>') { + var position = editor.getSelectionRange().start; + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken() || iterator.stepBackward(); + if (!token || !(is(token, "tag-name") || is(token, "tag-whitespace") || is(token, "attribute-name") || is(token, "attribute-equals") || is(token, "attribute-value"))) + return; + if (is(token, "reference.attribute-value")) + return; + if (is(token, "attribute-value")) { + var firstChar = token.value.charAt(0); + if (firstChar == '"' || firstChar == "'") { + var lastChar = token.value.charAt(token.value.length - 1); + var tokenEnd = iterator.getCurrentTokenColumn() + token.value.length; + if (tokenEnd > position.column || tokenEnd == position.column && firstChar != lastChar) + return; + } + } + while (!is(token, "tag-name")) { + token = iterator.stepBackward(); + if (token.value == "<") { + token = iterator.stepForward(); + break; + } + } + + var tokenRow = iterator.getCurrentTokenRow(); + var tokenColumn = iterator.getCurrentTokenColumn(); + if (is(iterator.stepBackward(), "end-tag-open")) + return; + + var element = token.value; + if (tokenRow == position.row) + element = element.substring(0, position.column - tokenColumn); + + if (this.voidElements.hasOwnProperty(element.toLowerCase())) + return; + + return { + text: ">" + "", + selection: [1, 1] + }; + } + }); + + this.add("autoindent", "insertion", function (state, action, editor, session, text) { + if (text == "\n") { + var cursor = editor.getCursorPosition(); + var line = session.getLine(cursor.row); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + if (token && token.type.indexOf("tag-close") !== -1) { + if (token.value == "/>") + return; + while (token && token.type.indexOf("tag-name") === -1) { + token = iterator.stepBackward(); + } + + if (!token) { + return; + } + + var tag = token.value; + var row = iterator.getCurrentTokenRow(); + token = iterator.stepBackward(); + if (!token || token.type.indexOf("end-tag") !== -1) { + return; + } + + if (this.voidElements && !this.voidElements[tag]) { + var nextToken = session.getTokenAt(cursor.row, cursor.column+1); + var line = session.getLine(row); + var nextIndent = this.$getIndent(line); + var indent = nextIndent + session.getTabString(); + + if (nextToken && nextToken.value === "') { + var position = editor.getCursorPosition(); + var iterator = new TokenIterator(session, position.row, position.column); + var token = iterator.getCurrentToken(); + var atCursor = false; + var state = JSON.parse(state).pop(); + if ((token && token.value === '>') || state !== "StartTag") return; + if (!token || !hasType(token, 'meta.tag') && !(hasType(token, 'text') && token.value.match('/'))){ + do { + token = iterator.stepBackward(); + } while (token && (hasType(token, 'string') || hasType(token, 'keyword.operator') || hasType(token, 'entity.attribute-name') || hasType(token, 'text'))); + } else { + atCursor = true; + } + var previous = iterator.stepBackward(); + if (!token || !hasType(token, 'meta.tag') || (previous !== null && previous.value.match('/'))) { + return + } + var tag = token.value.substring(1); + if (atCursor){ + var tag = tag.substring(0, position.column - token.start); + } + + return { + text: '>' + '', + selection: [1, 1] + } + } + }); + + } + oop.inherits(XQueryBehaviour, Behaviour); + + exports.XQueryBehaviour = XQueryBehaviour; +}); + +ace.define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/xquery",["require","exports","module","ace/worker/worker_client","ace/lib/oop","ace/mode/text","ace/mode/text_highlight_rules","ace/mode/xquery/xquery_lexer","ace/range","ace/mode/behaviour/xquery","ace/mode/folding/cstyle","ace/anchor"], function(require, exports, module) { +"use strict"; + +var WorkerClient = require("../worker/worker_client").WorkerClient; +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var XQueryLexer = require("./xquery/xquery_lexer").XQueryLexer; +var Range = require("../range").Range; +var XQueryBehaviour = require("./behaviour/xquery").XQueryBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var Anchor = require("../anchor").Anchor; + +var Mode = function() { + this.$tokenizer = new XQueryLexer(); + this.$behaviour = new XQueryBehaviour(); + this.foldingRules = new CStyleFoldMode(); + this.$highlightRules = new TextHighlightRules(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.completer = { + getCompletions: function(editor, session, pos, prefix, callback) { + if (!session.$worker) + return callback(); + session.$worker.emit("complete", { data: { pos: pos, prefix: prefix } }); + session.$worker.on("complete", function(e){ + callback(null, e.data); + }); + } + }; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + var match = line.match(/\s*(?:then|else|return|[{\(]|<\w+>)\s*$/); + if (match) + indent += tab; + return indent; + }; + + this.checkOutdent = function(state, line, input) { + if (! /^\s+$/.test(line)) + return false; + + return (/^\s*[\}\)]/).test(input); + }; + + this.autoOutdent = function(state, doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*[\}\)])/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.toggleCommentLines = function(state, doc, startRow, endRow) { + var i, line; + var outdent = true; + var re = /^\s*\(:(.*):\)/; + + for (i=startRow; i<= endRow; i++) { + if (!re.test(doc.getLine(i))) { + outdent = false; + break; + } + } + + var range = new Range(0, 0, 0, 0); + for (i=startRow; i<= endRow; i++) { + line = doc.getLine(i); + range.start.row = i; + range.end.row = i; + range.end.column = line.length; + + doc.replace(range, outdent ? line.match(re)[1] : "(:" + line + ":)"); + } + }; + + this.createWorker = function(session) { + + var worker = new WorkerClient(["ace"], "ace/mode/xquery_worker", "XQueryWorker"); + var that = this; + + worker.attachToDocument(session.getDocument()); + + worker.on("ok", function(e) { + session.clearAnnotations(); + }); + + worker.on("markers", function(e) { + session.clearAnnotations(); + that.addMarkers(e.data, session); + }); + + worker.on("highlight", function(tokens) { + that.$tokenizer.tokens = tokens.data.tokens; + that.$tokenizer.lines = session.getDocument().getAllLines(); + + var rows = Object.keys(that.$tokenizer.tokens); + for(var i=0; i < rows.length; i++) { + var row = parseInt(rows[i]); + delete session.bgTokenizer.lines[row]; + delete session.bgTokenizer.states[row]; + session.bgTokenizer.fireUpdateEvent(row, row); + } + }); + + return worker; + }; + + this.removeMarkers = function(session) { + var markers = session.getMarkers(false); + for (var id in markers) { + if (markers[id].clazz.indexOf('language_highlight_') === 0) { + session.removeMarker(id); + } + } + for (var i = 0; i < session.markerAnchors.length; i++) { + session.markerAnchors[i].detach(); + } + session.markerAnchors = []; + }; + + this.addMarkers = function(annos, mySession) { + var _self = this; + + if (!mySession.markerAnchors) mySession.markerAnchors = []; + this.removeMarkers(mySession); + mySession.languageAnnos = []; + annos.forEach(function(anno) { + var anchor = new Anchor(mySession.getDocument(), anno.pos.sl, anno.pos.sc || 0); + mySession.markerAnchors.push(anchor); + var markerId; + var colDiff = anno.pos.ec - anno.pos.sc; + var rowDiff = anno.pos.el - anno.pos.sl; + var gutterAnno = { + guttertext: anno.message, + type: anno.level || "warning", + text: anno.message + }; + + function updateFloat(single) { + if (markerId) + mySession.removeMarker(markerId); + gutterAnno.row = anchor.row; + if (anno.pos.sc !== undefined && anno.pos.ec !== undefined) { + var range = new Range(anno.pos.sl, anno.pos.sc, anno.pos.el, anno.pos.ec); + markerId = mySession.addMarker(range, "language_highlight_" + (anno.type ? anno.type : "default")); + } + if (single) mySession.setAnnotations(mySession.languageAnnos); + } + updateFloat(); + anchor.on("change", function() { + updateFloat(true); + }); + if (anno.message) mySession.languageAnnos.push(gutterAnno); + }); + mySession.setAnnotations(mySession.languageAnnos); + }; + + this.$id = "ace/mode/xquery"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); diff --git a/htdocs/includes/ace/mode-yaml.js b/htdocs/includes/ace/mode-yaml.js new file mode 100644 index 00000000000..8fbc403f126 --- /dev/null +++ b/htdocs/includes/ace/mode-yaml.js @@ -0,0 +1,289 @@ +ace.define("ace/mode/yaml_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var YamlHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "comment", + regex : "#.*$" + }, { + token : "list.markup", + regex : /^(?:-{3}|\.{3})\s*(?=#|$)/ + }, { + token : "list.markup", + regex : /^\s*[\-?](?:$|\s)/ + }, { + token: "constant", + regex: "!![\\w//]+" + }, { + token: "constant.language", + regex: "[&\\*][a-zA-Z0-9-_]+" + }, { + token: ["meta.tag", "keyword"], + regex: /^(\s*\w.*?)(:(?:\s+|$))/ + },{ + token: ["meta.tag", "keyword"], + regex: /(\w+?)(\s*:(?:\s+|$))/ + }, { + token : "keyword.operator", + regex : "<<\\w*:\\w*" + }, { + token : "keyword.operator", + regex : "-\\s*(?=[{])" + }, { + token : "string", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + }, { + token : "string", // multi line string start + regex : /[|>][-+\d\s]*$/, + onMatch: function(val, state, stack, line) { + var indent = /^\s*/.exec(line)[0]; + if (stack.length < 1) { + stack.push(this.next); + } else { + stack[0] = "mlString"; + } + + if (stack.length < 2) { + stack.push(indent.length); + } + else { + stack[1] = indent.length; + } + return this.token; + }, + next : "mlString" + }, { + token : "string", // single quoted string + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "constant.numeric", // float + regex : /(\b|[+\-\.])[\d_]+(?:(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)/ + }, { + token : "constant.numeric", // other number + regex : /[+\-]?\.inf\b|NaN\b|0x[\dA-Fa-f_]+|0b[10_]+/ + }, { + token : "constant.language.boolean", + regex : "\\b(?:true|false|TRUE|FALSE|True|False|yes|no)\\b" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + } + ], + "mlString" : [ + { + token : "indent", + regex : /^\s*$/ + }, { + token : "indent", + regex : /^\s*/, + onMatch: function(val, state, stack) { + var curIndent = stack[1]; + + if (curIndent >= val.length) { + this.next = "start"; + stack.splice(0); + } + else { + this.next = "mlString"; + } + return this.token; + }, + next : "mlString" + }, { + token : "string", + regex : '.+' + } + ]}; + this.normalizeRules(); + +}; + +oop.inherits(YamlHighlightRules, TextHighlightRules); + +exports.YamlHighlightRules = YamlHighlightRules; +}); + +ace.define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +ace.define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var BaseFoldMode = require("./fold_mode").FoldMode; +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.getFoldWidgetRange = function(session, foldStyle, row) { + var range = this.indentationBlock(session, row); + if (range) + return range; + + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1 || line[startLevel] != "#") + return; + + var startColumn = line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + line = session.getLine(row); + var level = line.search(re); + + if (level == -1) + continue; + + if (line[level] != "#") + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + var indent = line.search(/\S/); + var next = session.getLine(row + 1); + var prev = session.getLine(row - 1); + var prevIndent = prev.search(/\S/); + var nextIndent = next.search(/\S/); + + if (indent == -1) { + session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; + return ""; + } + if (prevIndent == -1) { + if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { + session.foldWidgets[row - 1] = ""; + session.foldWidgets[row + 1] = ""; + return "start"; + } + } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { + if (session.getLine(row - 2).search(/\S/) == -1) { + session.foldWidgets[row - 1] = "start"; + session.foldWidgets[row + 1] = ""; + return ""; + } + } + + if (prevIndent!= -1 && prevIndent < indent) + session.foldWidgets[row - 1] = "start"; + else + session.foldWidgets[row - 1] = ""; + + if (indent < nextIndent) + return "start"; + else + return ""; + }; + +}).call(FoldMode.prototype); + +}); + +ace.define("ace/mode/yaml",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/yaml_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/folding/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var YamlHighlightRules = require("./yaml_highlight_rules").YamlHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var FoldMode = require("./folding/coffee").FoldMode; + +var Mode = function() { + this.HighlightRules = YamlHighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.foldingRules = new FoldMode(); + this.$behaviour = this.$defaultBehaviour; +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.lineCommentStart = "#"; + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + + this.$id = "ace/mode/yaml"; +}).call(Mode.prototype); + +exports.Mode = Mode; + +}); diff --git a/htdocs/includes/ace/snippets/abap.js b/htdocs/includes/ace/snippets/abap.js new file mode 100644 index 00000000000..0ef29119029 --- /dev/null +++ b/htdocs/includes/ace/snippets/abap.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/abap",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "abap"; + +}); diff --git a/htdocs/includes/ace/snippets/abc.js b/htdocs/includes/ace/snippets/abc.js new file mode 100644 index 00000000000..17030761574 --- /dev/null +++ b/htdocs/includes/ace/snippets/abc.js @@ -0,0 +1,38 @@ +ace.define("ace/snippets/abc",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "\n\ +snippet zupfnoter.print\n\ + %%%%hn.print {\"startpos\": ${1:pos_y}, \"t\":\"${2:title}\", \"v\":[${3:voices}], \"s\":[[${4:syncvoices}1,2]], \"f\":[${5:flowlines}], \"sf\":[${6:subflowlines}], \"j\":[${7:jumplines}]}\n\ +\n\ +snippet zupfnoter.note\n\ + %%%%hn.note {\"pos\": [${1:pos_x},${2:pos_y}], \"text\": \"${3:text}\", \"style\": \"${4:style}\"}\n\ +\n\ +snippet zupfnoter.annotation\n\ + %%%%hn.annotation {\"id\": \"${1:id}\", \"pos\": [${2:pos}], \"text\": \"${3:text}\"}\n\ +\n\ +snippet zupfnoter.lyrics\n\ + %%%%hn.lyrics {\"pos\": [${1:x_pos},${2:y_pos}]}\n\ +\n\ +snippet zupfnoter.legend\n\ + %%%%hn.legend {\"pos\": [${1:x_pos},${2:y_pos}]}\n\ +\n\ +\n\ +\n\ +snippet zupfnoter.target\n\ + \"^:${1:target}\"\n\ +\n\ +snippet zupfnoter.goto\n\ + \"^@${1:target}@${2:distance}\"\n\ +\n\ +snippet zupfnoter.annotationref\n\ + \"^#${1:target}\"\n\ +\n\ +snippet zupfnoter.annotation\n\ + \"^!${1:text}@${2:x_offset},${3:y_offset}\"\n\ +\n\ +\n\ +"; +exports.scope = "abc"; + +}); diff --git a/htdocs/includes/ace/snippets/actionscript.js b/htdocs/includes/ace/snippets/actionscript.js new file mode 100644 index 00000000000..bc899d16128 --- /dev/null +++ b/htdocs/includes/ace/snippets/actionscript.js @@ -0,0 +1,164 @@ +ace.define("ace/snippets/actionscript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet main\n\ + package {\n\ + import flash.display.*;\n\ + import flash.Events.*;\n\ + \n\ + public class Main extends Sprite {\n\ + public function Main ( ) {\n\ + trace(\"start\");\n\ + stage.scaleMode = StageScaleMode.NO_SCALE;\n\ + stage.addEventListener(Event.RESIZE, resizeListener);\n\ + }\n\ + \n\ + private function resizeListener (e:Event):void {\n\ + trace(\"The application window changed size!\");\n\ + trace(\"New width: \" + stage.stageWidth);\n\ + trace(\"New height: \" + stage.stageHeight);\n\ + }\n\ + \n\ + }\n\ + \n\ + }\n\ +snippet class\n\ + ${1:public|internal} class ${2:name} ${3:extends } {\n\ + public function $2 ( ) {\n\ + (\"start\");\n\ + }\n\ + }\n\ +snippet all\n\ + package name {\n\ +\n\ + ${1:public|internal|final} class ${2:name} ${3:extends } {\n\ + private|public| static const FOO = \"abc\";\n\ + private|public| static var BAR = \"abc\";\n\ +\n\ + // class initializer - no JIT !! one time setup\n\ + if Cababilities.os == \"Linux|MacOS\" {\n\ + FOO = \"other\";\n\ + }\n\ +\n\ + // constructor:\n\ + public function $2 ( ){\n\ + super2();\n\ + trace(\"start\");\n\ + }\n\ + public function name (a, b...){\n\ + super.name(..);\n\ + lable:break\n\ + }\n\ + }\n\ + }\n\ +\n\ + function A(){\n\ + // A can only be accessed within this file\n\ + }\n\ +snippet switch\n\ + switch(${1}){\n\ + case ${2}:\n\ + ${3}\n\ + break;\n\ + default:\n\ + }\n\ +snippet case\n\ + case ${1}:\n\ + ${2}\n\ + break;\n\ +snippet package\n\ + package ${1:package}{\n\ + ${2}\n\ + }\n\ +snippet wh\n\ + while ${1:cond}{\n\ + ${2}\n\ + }\n\ +snippet do\n\ + do {\n\ + ${2}\n\ + } while (${1:cond})\n\ +snippet while\n\ + while ${1:cond}{\n\ + ${2}\n\ + }\n\ +snippet for enumerate names\n\ + for (${1:var} in ${2:object}){\n\ + ${3}\n\ + }\n\ +snippet for enumerate values\n\ + for each (${1:var} in ${2:object}){\n\ + ${3}\n\ + }\n\ +snippet get_set\n\ + function get ${1:name} {\n\ + return ${2}\n\ + }\n\ + function set $1 (newValue) {\n\ + ${3}\n\ + }\n\ +snippet interface\n\ + interface name {\n\ + function method(${1}):${2:returntype};\n\ + }\n\ +snippet try\n\ + try {\n\ + ${1}\n\ + } catch (error:ErrorType) {\n\ + ${2}\n\ + } finally {\n\ + ${3}\n\ + }\n\ +# For Loop (same as c.snippet)\n\ +snippet for for (..) {..}\n\ + for (${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n\ + ${4:/* code */}\n\ + }\n\ +# Custom For Loop\n\ +snippet forr\n\ + for (${1:i} = ${2:0}; ${3:$1 < 10}; $1${4:++}) {\n\ + ${5:/* code */}\n\ + }\n\ +# If Condition\n\ +snippet if\n\ + if (${1:/* condition */}) {\n\ + ${2:/* code */}\n\ + }\n\ +snippet el\n\ + else {\n\ + ${1}\n\ + }\n\ +# Ternary conditional\n\ +snippet t\n\ + ${1:/* condition */} ? ${2:a} : ${3:b}\n\ +snippet fun\n\ + function ${1:function_name}(${2})${3}\n\ + {\n\ + ${4:/* code */}\n\ + }\n\ +# FlxSprite (usefull when using the flixel library)\n\ +snippet FlxSprite\n\ + package\n\ + {\n\ + import org.flixel.*\n\ +\n\ + public class ${1:ClassName} extends ${2:FlxSprite}\n\ + {\n\ + public function $1(${3: X:Number, Y:Number}):void\n\ + {\n\ + super(X,Y);\n\ + ${4: //code...}\n\ + }\n\ +\n\ + override public function update():void\n\ + {\n\ + super.update();\n\ + ${5: //code...}\n\ + }\n\ + }\n\ + }\n\ +\n\ +"; +exports.scope = "actionscript"; + +}); diff --git a/htdocs/includes/ace/snippets/ada.js b/htdocs/includes/ace/snippets/ada.js new file mode 100644 index 00000000000..656608aaa9e --- /dev/null +++ b/htdocs/includes/ace/snippets/ada.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/ada",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ada"; + +}); diff --git a/htdocs/includes/ace/snippets/apache_conf.js b/htdocs/includes/ace/snippets/apache_conf.js new file mode 100644 index 00000000000..0f38e54c62b --- /dev/null +++ b/htdocs/includes/ace/snippets/apache_conf.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/apache_conf",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "apache_conf"; + +}); diff --git a/htdocs/includes/ace/snippets/applescript.js b/htdocs/includes/ace/snippets/applescript.js new file mode 100644 index 00000000000..6b59011a368 --- /dev/null +++ b/htdocs/includes/ace/snippets/applescript.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/applescript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "applescript"; + +}); diff --git a/htdocs/includes/ace/snippets/asciidoc.js b/htdocs/includes/ace/snippets/asciidoc.js new file mode 100644 index 00000000000..ef22c020b5a --- /dev/null +++ b/htdocs/includes/ace/snippets/asciidoc.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/asciidoc",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "asciidoc"; + +}); diff --git a/htdocs/includes/ace/snippets/assembly_x86.js b/htdocs/includes/ace/snippets/assembly_x86.js new file mode 100644 index 00000000000..b3c3cd3dc45 --- /dev/null +++ b/htdocs/includes/ace/snippets/assembly_x86.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/assembly_x86",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "assembly_x86"; + +}); diff --git a/htdocs/includes/ace/snippets/autohotkey.js b/htdocs/includes/ace/snippets/autohotkey.js new file mode 100644 index 00000000000..61c8ad4e793 --- /dev/null +++ b/htdocs/includes/ace/snippets/autohotkey.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/autohotkey",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "autohotkey"; + +}); diff --git a/htdocs/includes/ace/snippets/batchfile.js b/htdocs/includes/ace/snippets/batchfile.js new file mode 100644 index 00000000000..619f57daf53 --- /dev/null +++ b/htdocs/includes/ace/snippets/batchfile.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/batchfile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "batchfile"; + +}); diff --git a/htdocs/includes/ace/snippets/bro.js b/htdocs/includes/ace/snippets/bro.js new file mode 100644 index 00000000000..2f2e2e12325 --- /dev/null +++ b/htdocs/includes/ace/snippets/bro.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/bro",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/c9search.js b/htdocs/includes/ace/snippets/c9search.js new file mode 100644 index 00000000000..78ea3dabfdc --- /dev/null +++ b/htdocs/includes/ace/snippets/c9search.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/c9search",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "c9search"; + +}); diff --git a/htdocs/includes/ace/snippets/c_cpp.js b/htdocs/includes/ace/snippets/c_cpp.js new file mode 100644 index 00000000000..a232b56f94f --- /dev/null +++ b/htdocs/includes/ace/snippets/c_cpp.js @@ -0,0 +1,138 @@ +ace.define("ace/snippets/c_cpp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "## STL Collections\n\ +# std::array\n\ +snippet array\n\ + std::array<${1:T}, ${2:N}> ${3};${4}\n\ +# std::vector\n\ +snippet vector\n\ + std::vector<${1:T}> ${2};${3}\n\ +# std::deque\n\ +snippet deque\n\ + std::deque<${1:T}> ${2};${3}\n\ +# std::forward_list\n\ +snippet flist\n\ + std::forward_list<${1:T}> ${2};${3}\n\ +# std::list\n\ +snippet list\n\ + std::list<${1:T}> ${2};${3}\n\ +# std::set\n\ +snippet set\n\ + std::set<${1:T}> ${2};${3}\n\ +# std::map\n\ +snippet map\n\ + std::map<${1:Key}, ${2:T}> ${3};${4}\n\ +# std::multiset\n\ +snippet mset\n\ + std::multiset<${1:T}> ${2};${3}\n\ +# std::multimap\n\ +snippet mmap\n\ + std::multimap<${1:Key}, ${2:T}> ${3};${4}\n\ +# std::unordered_set\n\ +snippet uset\n\ + std::unordered_set<${1:T}> ${2};${3}\n\ +# std::unordered_map\n\ +snippet umap\n\ + std::unordered_map<${1:Key}, ${2:T}> ${3};${4}\n\ +# std::unordered_multiset\n\ +snippet umset\n\ + std::unordered_multiset<${1:T}> ${2};${3}\n\ +# std::unordered_multimap\n\ +snippet ummap\n\ + std::unordered_multimap<${1:Key}, ${2:T}> ${3};${4}\n\ +# std::stack\n\ +snippet stack\n\ + std::stack<${1:T}> ${2};${3}\n\ +# std::queue\n\ +snippet queue\n\ + std::queue<${1:T}> ${2};${3}\n\ +# std::priority_queue\n\ +snippet pqueue\n\ + std::priority_queue<${1:T}> ${2};${3}\n\ +##\n\ +## Access Modifiers\n\ +# private\n\ +snippet pri\n\ + private\n\ +# protected\n\ +snippet pro\n\ + protected\n\ +# public\n\ +snippet pub\n\ + public\n\ +# friend\n\ +snippet fr\n\ + friend\n\ +# mutable\n\ +snippet mu\n\ + mutable\n\ +## \n\ +## Class\n\ +# class\n\ +snippet cl\n\ + class ${1:`Filename('$1', 'name')`} \n\ + {\n\ + public:\n\ + $1(${2});\n\ + ~$1();\n\ +\n\ + private:\n\ + ${3:/* data */}\n\ + };\n\ +# member function implementation\n\ +snippet mfun\n\ + ${4:void} ${1:`Filename('$1', 'ClassName')`}::${2:memberFunction}(${3}) {\n\ + ${5:/* code */}\n\ + }\n\ +# namespace\n\ +snippet ns\n\ + namespace ${1:`Filename('', 'my')`} {\n\ + ${2}\n\ + } /* namespace $1 */\n\ +##\n\ +## Input/Output\n\ +# std::cout\n\ +snippet cout\n\ + std::cout << ${1} << std::endl;${2}\n\ +# std::cin\n\ +snippet cin\n\ + std::cin >> ${1};${2}\n\ +##\n\ +## Iteration\n\ +# for i \n\ +snippet fori\n\ + for (int ${2:i} = 0; $2 < ${1:count}; $2${3:++}) {\n\ + ${4:/* code */}\n\ + }${5}\n\ +\n\ +# foreach\n\ +snippet fore\n\ + for (${1:auto} ${2:i} : ${3:container}) {\n\ + ${4:/* code */}\n\ + }${5}\n\ +# iterator\n\ +snippet iter\n\ + for (${1:std::vector}<${2:type}>::${3:const_iterator} ${4:i} = ${5:container}.begin(); $4 != $5.end(); ++$4) {\n\ + ${6}\n\ + }${7}\n\ +\n\ +# auto iterator\n\ +snippet itera\n\ + for (auto ${1:i} = $1.begin(); $1 != $1.end(); ++$1) {\n\ + ${2:std::cout << *$1 << std::endl;}\n\ + }${3}\n\ +##\n\ +## Lambdas\n\ +# lamda (one line)\n\ +snippet ld\n\ + [${1}](${2}){${3:/* code */}}${4}\n\ +# lambda (multi-line)\n\ +snippet lld\n\ + [${1}](${2}){\n\ + ${3:/* code */}\n\ + }${4}\n\ +"; +exports.scope = "c_cpp"; + +}); diff --git a/htdocs/includes/ace/snippets/cirru.js b/htdocs/includes/ace/snippets/cirru.js new file mode 100644 index 00000000000..02ef1f30f51 --- /dev/null +++ b/htdocs/includes/ace/snippets/cirru.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/cirru",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "cirru"; + +}); diff --git a/htdocs/includes/ace/snippets/clojure.js b/htdocs/includes/ace/snippets/clojure.js new file mode 100644 index 00000000000..49f23cac473 --- /dev/null +++ b/htdocs/includes/ace/snippets/clojure.js @@ -0,0 +1,97 @@ +ace.define("ace/snippets/clojure",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet comm\n\ + (comment\n\ + ${1}\n\ + )\n\ +snippet condp\n\ + (condp ${1:pred} ${2:expr}\n\ + ${3})\n\ +snippet def\n\ + (def ${1})\n\ +snippet defm\n\ + (defmethod ${1:multifn} \"${2:doc-string}\" ${3:dispatch-val} [${4:args}]\n\ + ${5})\n\ +snippet defmm\n\ + (defmulti ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\n\ +snippet defma\n\ + (defmacro ${1:name} \"${2:doc-string}\" ${3:dispatch-fn})\n\ +snippet defn\n\ + (defn ${1:name} \"${2:doc-string}\" [${3:arg-list}]\n\ + ${4})\n\ +snippet defp\n\ + (defprotocol ${1:name}\n\ + ${2})\n\ +snippet defr\n\ + (defrecord ${1:name} [${2:fields}]\n\ + ${3:protocol}\n\ + ${4})\n\ +snippet deft\n\ + (deftest ${1:name}\n\ + (is (= ${2:assertion})))\n\ + ${3})\n\ +snippet is\n\ + (is (= ${1} ${2}))\n\ +snippet defty\n\ + (deftype ${1:Name} [${2:fields}]\n\ + ${3:Protocol}\n\ + ${4})\n\ +snippet doseq\n\ + (doseq [${1:elem} ${2:coll}]\n\ + ${3})\n\ +snippet fn\n\ + (fn [${1:arg-list}] ${2})\n\ +snippet if\n\ + (if ${1:test-expr}\n\ + ${2:then-expr}\n\ + ${3:else-expr})\n\ +snippet if-let \n\ + (if-let [${1:result} ${2:test-expr}]\n\ + (${3:then-expr} $1)\n\ + (${4:else-expr}))\n\ +snippet imp\n\ + (:import [${1:package}])\n\ + & {:keys [${1:keys}] :or {${2:defaults}}}\n\ +snippet let\n\ + (let [${1:name} ${2:expr}]\n\ + ${3})\n\ +snippet letfn\n\ + (letfn [(${1:name) [${2:args}]\n\ + ${3})])\n\ +snippet map\n\ + (map ${1:func} ${2:coll})\n\ +snippet mapl\n\ + (map #(${1:lambda}) ${2:coll})\n\ +snippet met\n\ + (${1:name} [${2:this} ${3:args}]\n\ + ${4})\n\ +snippet ns\n\ + (ns ${1:name}\n\ + ${2})\n\ +snippet dotimes\n\ + (dotimes [_ 10]\n\ + (time\n\ + (dotimes [_ ${1:times}]\n\ + ${2})))\n\ +snippet pmethod\n\ + (${1:name} [${2:this} ${3:args}])\n\ +snippet refer\n\ + (:refer-clojure :exclude [${1}])\n\ +snippet require\n\ + (:require [${1:namespace} :as [${2}]])\n\ +snippet use\n\ + (:use [${1:namespace} :only [${2}]])\n\ +snippet print\n\ + (println ${1})\n\ +snippet reduce\n\ + (reduce ${1:(fn [p n] ${3})} ${2})\n\ +snippet when\n\ + (when ${1:test} ${2:body})\n\ +snippet when-let\n\ + (when-let [${1:result} ${2:test}]\n\ + ${3:body})\n\ +"; +exports.scope = "clojure"; + +}); diff --git a/htdocs/includes/ace/snippets/cobol.js b/htdocs/includes/ace/snippets/cobol.js new file mode 100644 index 00000000000..760727ce6d5 --- /dev/null +++ b/htdocs/includes/ace/snippets/cobol.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/cobol",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "cobol"; + +}); diff --git a/htdocs/includes/ace/snippets/coffee.js b/htdocs/includes/ace/snippets/coffee.js new file mode 100644 index 00000000000..eb1a76d7fd3 --- /dev/null +++ b/htdocs/includes/ace/snippets/coffee.js @@ -0,0 +1,102 @@ +ace.define("ace/snippets/coffee",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Closure loop\n\ +snippet forindo\n\ + for ${1:name} in ${2:array}\n\ + do ($1) ->\n\ + ${3:// body}\n\ +# Array comprehension\n\ +snippet fora\n\ + for ${1:name} in ${2:array}\n\ + ${3:// body...}\n\ +# Object comprehension\n\ +snippet foro\n\ + for ${1:key}, ${2:value} of ${3:object}\n\ + ${4:// body...}\n\ +# Range comprehension (inclusive)\n\ +snippet forr\n\ + for ${1:name} in [${2:start}..${3:finish}]\n\ + ${4:// body...}\n\ +snippet forrb\n\ + for ${1:name} in [${2:start}..${3:finish}] by ${4:step}\n\ + ${5:// body...}\n\ +# Range comprehension (exclusive)\n\ +snippet forrex\n\ + for ${1:name} in [${2:start}...${3:finish}]\n\ + ${4:// body...}\n\ +snippet forrexb\n\ + for ${1:name} in [${2:start}...${3:finish}] by ${4:step}\n\ + ${5:// body...}\n\ +# Function\n\ +snippet fun\n\ + (${1:args}) ->\n\ + ${2:// body...}\n\ +# Function (bound)\n\ +snippet bfun\n\ + (${1:args}) =>\n\ + ${2:// body...}\n\ +# Class\n\ +snippet cla class ..\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + ${2}\n\ +snippet cla class .. constructor: ..\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + constructor: (${2:args}) ->\n\ + ${3}\n\ +\n\ + ${4}\n\ +snippet cla class .. extends ..\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n\ + ${3}\n\ +snippet cla class .. extends .. constructor: ..\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} extends ${2:ParentClass}\n\ + constructor: (${3:args}) ->\n\ + ${4}\n\ +\n\ + ${5}\n\ +# If\n\ +snippet if\n\ + if ${1:condition}\n\ + ${2:// body...}\n\ +# If __ Else\n\ +snippet ife\n\ + if ${1:condition}\n\ + ${2:// body...}\n\ + else\n\ + ${3:// body...}\n\ +# Else if\n\ +snippet elif\n\ + else if ${1:condition}\n\ + ${2:// body...}\n\ +# Ternary If\n\ +snippet ifte\n\ + if ${1:condition} then ${2:value} else ${3:other}\n\ +# Unless\n\ +snippet unl\n\ + ${1:action} unless ${2:condition}\n\ +# Switch\n\ +snippet swi\n\ + switch ${1:object}\n\ + when ${2:value}\n\ + ${3:// body...}\n\ +\n\ +# Log\n\ +snippet log\n\ + console.log ${1}\n\ +# Try __ Catch\n\ +snippet try\n\ + try\n\ + ${1}\n\ + catch ${2:error}\n\ + ${3}\n\ +# Require\n\ +snippet req\n\ + ${2:$1} = require '${1:sys}'${3}\n\ +# Export\n\ +snippet exp\n\ + ${1:root} = exports ? this\n\ +"; +exports.scope = "coffee"; + +}); diff --git a/htdocs/includes/ace/snippets/coldfusion.js b/htdocs/includes/ace/snippets/coldfusion.js new file mode 100644 index 00000000000..1a91f9670a9 --- /dev/null +++ b/htdocs/includes/ace/snippets/coldfusion.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/coldfusion",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "coldfusion"; + +}); diff --git a/htdocs/includes/ace/snippets/csharp.js b/htdocs/includes/ace/snippets/csharp.js new file mode 100644 index 00000000000..96b9174a3ac --- /dev/null +++ b/htdocs/includes/ace/snippets/csharp.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/csharp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "csharp"; + +}); diff --git a/htdocs/includes/ace/snippets/css.js b/htdocs/includes/ace/snippets/css.js new file mode 100644 index 00000000000..db5a8c0ac28 --- /dev/null +++ b/htdocs/includes/ace/snippets/css.js @@ -0,0 +1,974 @@ +ace.define("ace/snippets/css",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet .\n\ + ${1} {\n\ + ${2}\n\ + }\n\ +snippet !\n\ + !important\n\ +snippet bdi:m+\n\ + -moz-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\ +snippet bdi:m\n\ + -moz-border-image: ${1};\n\ +snippet bdrz:m\n\ + -moz-border-radius: ${1};\n\ +snippet bxsh:m+\n\ + -moz-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\ +snippet bxsh:m\n\ + -moz-box-shadow: ${1};\n\ +snippet bdi:w+\n\ + -webkit-border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\ +snippet bdi:w\n\ + -webkit-border-image: ${1};\n\ +snippet bdrz:w\n\ + -webkit-border-radius: ${1};\n\ +snippet bxsh:w+\n\ + -webkit-box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\ +snippet bxsh:w\n\ + -webkit-box-shadow: ${1};\n\ +snippet @f\n\ + @font-face {\n\ + font-family: ${1};\n\ + src: url(${2});\n\ + }\n\ +snippet @i\n\ + @import url(${1});\n\ +snippet @m\n\ + @media ${1:print} {\n\ + ${2}\n\ + }\n\ +snippet bg+\n\ + background: #${1:FFF} url(${2}) ${3:0} ${4:0} ${5:no-repeat};\n\ +snippet bga\n\ + background-attachment: ${1};\n\ +snippet bga:f\n\ + background-attachment: fixed;\n\ +snippet bga:s\n\ + background-attachment: scroll;\n\ +snippet bgbk\n\ + background-break: ${1};\n\ +snippet bgbk:bb\n\ + background-break: bounding-box;\n\ +snippet bgbk:c\n\ + background-break: continuous;\n\ +snippet bgbk:eb\n\ + background-break: each-box;\n\ +snippet bgcp\n\ + background-clip: ${1};\n\ +snippet bgcp:bb\n\ + background-clip: border-box;\n\ +snippet bgcp:cb\n\ + background-clip: content-box;\n\ +snippet bgcp:nc\n\ + background-clip: no-clip;\n\ +snippet bgcp:pb\n\ + background-clip: padding-box;\n\ +snippet bgc\n\ + background-color: #${1:FFF};\n\ +snippet bgc:t\n\ + background-color: transparent;\n\ +snippet bgi\n\ + background-image: url(${1});\n\ +snippet bgi:n\n\ + background-image: none;\n\ +snippet bgo\n\ + background-origin: ${1};\n\ +snippet bgo:bb\n\ + background-origin: border-box;\n\ +snippet bgo:cb\n\ + background-origin: content-box;\n\ +snippet bgo:pb\n\ + background-origin: padding-box;\n\ +snippet bgpx\n\ + background-position-x: ${1};\n\ +snippet bgpy\n\ + background-position-y: ${1};\n\ +snippet bgp\n\ + background-position: ${1:0} ${2:0};\n\ +snippet bgr\n\ + background-repeat: ${1};\n\ +snippet bgr:n\n\ + background-repeat: no-repeat;\n\ +snippet bgr:x\n\ + background-repeat: repeat-x;\n\ +snippet bgr:y\n\ + background-repeat: repeat-y;\n\ +snippet bgr:r\n\ + background-repeat: repeat;\n\ +snippet bgz\n\ + background-size: ${1};\n\ +snippet bgz:a\n\ + background-size: auto;\n\ +snippet bgz:ct\n\ + background-size: contain;\n\ +snippet bgz:cv\n\ + background-size: cover;\n\ +snippet bg\n\ + background: ${1};\n\ +snippet bg:ie\n\ + filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='${1}',sizingMethod='${2:crop}');\n\ +snippet bg:n\n\ + background: none;\n\ +snippet bd+\n\ + border: ${1:1px} ${2:solid} #${3:000};\n\ +snippet bdb+\n\ + border-bottom: ${1:1px} ${2:solid} #${3:000};\n\ +snippet bdbc\n\ + border-bottom-color: #${1:000};\n\ +snippet bdbi\n\ + border-bottom-image: url(${1});\n\ +snippet bdbi:n\n\ + border-bottom-image: none;\n\ +snippet bdbli\n\ + border-bottom-left-image: url(${1});\n\ +snippet bdbli:c\n\ + border-bottom-left-image: continue;\n\ +snippet bdbli:n\n\ + border-bottom-left-image: none;\n\ +snippet bdblrz\n\ + border-bottom-left-radius: ${1};\n\ +snippet bdbri\n\ + border-bottom-right-image: url(${1});\n\ +snippet bdbri:c\n\ + border-bottom-right-image: continue;\n\ +snippet bdbri:n\n\ + border-bottom-right-image: none;\n\ +snippet bdbrrz\n\ + border-bottom-right-radius: ${1};\n\ +snippet bdbs\n\ + border-bottom-style: ${1};\n\ +snippet bdbs:n\n\ + border-bottom-style: none;\n\ +snippet bdbw\n\ + border-bottom-width: ${1};\n\ +snippet bdb\n\ + border-bottom: ${1};\n\ +snippet bdb:n\n\ + border-bottom: none;\n\ +snippet bdbk\n\ + border-break: ${1};\n\ +snippet bdbk:c\n\ + border-break: close;\n\ +snippet bdcl\n\ + border-collapse: ${1};\n\ +snippet bdcl:c\n\ + border-collapse: collapse;\n\ +snippet bdcl:s\n\ + border-collapse: separate;\n\ +snippet bdc\n\ + border-color: #${1:000};\n\ +snippet bdci\n\ + border-corner-image: url(${1});\n\ +snippet bdci:c\n\ + border-corner-image: continue;\n\ +snippet bdci:n\n\ + border-corner-image: none;\n\ +snippet bdf\n\ + border-fit: ${1};\n\ +snippet bdf:c\n\ + border-fit: clip;\n\ +snippet bdf:of\n\ + border-fit: overwrite;\n\ +snippet bdf:ow\n\ + border-fit: overwrite;\n\ +snippet bdf:r\n\ + border-fit: repeat;\n\ +snippet bdf:sc\n\ + border-fit: scale;\n\ +snippet bdf:sp\n\ + border-fit: space;\n\ +snippet bdf:st\n\ + border-fit: stretch;\n\ +snippet bdi\n\ + border-image: url(${1}) ${2:0} ${3:0} ${4:0} ${5:0} ${6:stretch} ${7:stretch};\n\ +snippet bdi:n\n\ + border-image: none;\n\ +snippet bdl+\n\ + border-left: ${1:1px} ${2:solid} #${3:000};\n\ +snippet bdlc\n\ + border-left-color: #${1:000};\n\ +snippet bdli\n\ + border-left-image: url(${1});\n\ +snippet bdli:n\n\ + border-left-image: none;\n\ +snippet bdls\n\ + border-left-style: ${1};\n\ +snippet bdls:n\n\ + border-left-style: none;\n\ +snippet bdlw\n\ + border-left-width: ${1};\n\ +snippet bdl\n\ + border-left: ${1};\n\ +snippet bdl:n\n\ + border-left: none;\n\ +snippet bdlt\n\ + border-length: ${1};\n\ +snippet bdlt:a\n\ + border-length: auto;\n\ +snippet bdrz\n\ + border-radius: ${1};\n\ +snippet bdr+\n\ + border-right: ${1:1px} ${2:solid} #${3:000};\n\ +snippet bdrc\n\ + border-right-color: #${1:000};\n\ +snippet bdri\n\ + border-right-image: url(${1});\n\ +snippet bdri:n\n\ + border-right-image: none;\n\ +snippet bdrs\n\ + border-right-style: ${1};\n\ +snippet bdrs:n\n\ + border-right-style: none;\n\ +snippet bdrw\n\ + border-right-width: ${1};\n\ +snippet bdr\n\ + border-right: ${1};\n\ +snippet bdr:n\n\ + border-right: none;\n\ +snippet bdsp\n\ + border-spacing: ${1};\n\ +snippet bds\n\ + border-style: ${1};\n\ +snippet bds:ds\n\ + border-style: dashed;\n\ +snippet bds:dtds\n\ + border-style: dot-dash;\n\ +snippet bds:dtdtds\n\ + border-style: dot-dot-dash;\n\ +snippet bds:dt\n\ + border-style: dotted;\n\ +snippet bds:db\n\ + border-style: double;\n\ +snippet bds:g\n\ + border-style: groove;\n\ +snippet bds:h\n\ + border-style: hidden;\n\ +snippet bds:i\n\ + border-style: inset;\n\ +snippet bds:n\n\ + border-style: none;\n\ +snippet bds:o\n\ + border-style: outset;\n\ +snippet bds:r\n\ + border-style: ridge;\n\ +snippet bds:s\n\ + border-style: solid;\n\ +snippet bds:w\n\ + border-style: wave;\n\ +snippet bdt+\n\ + border-top: ${1:1px} ${2:solid} #${3:000};\n\ +snippet bdtc\n\ + border-top-color: #${1:000};\n\ +snippet bdti\n\ + border-top-image: url(${1});\n\ +snippet bdti:n\n\ + border-top-image: none;\n\ +snippet bdtli\n\ + border-top-left-image: url(${1});\n\ +snippet bdtli:c\n\ + border-corner-image: continue;\n\ +snippet bdtli:n\n\ + border-corner-image: none;\n\ +snippet bdtlrz\n\ + border-top-left-radius: ${1};\n\ +snippet bdtri\n\ + border-top-right-image: url(${1});\n\ +snippet bdtri:c\n\ + border-top-right-image: continue;\n\ +snippet bdtri:n\n\ + border-top-right-image: none;\n\ +snippet bdtrrz\n\ + border-top-right-radius: ${1};\n\ +snippet bdts\n\ + border-top-style: ${1};\n\ +snippet bdts:n\n\ + border-top-style: none;\n\ +snippet bdtw\n\ + border-top-width: ${1};\n\ +snippet bdt\n\ + border-top: ${1};\n\ +snippet bdt:n\n\ + border-top: none;\n\ +snippet bdw\n\ + border-width: ${1};\n\ +snippet bd\n\ + border: ${1};\n\ +snippet bd:n\n\ + border: none;\n\ +snippet b\n\ + bottom: ${1};\n\ +snippet b:a\n\ + bottom: auto;\n\ +snippet bxsh+\n\ + box-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\ +snippet bxsh\n\ + box-shadow: ${1};\n\ +snippet bxsh:n\n\ + box-shadow: none;\n\ +snippet bxz\n\ + box-sizing: ${1};\n\ +snippet bxz:bb\n\ + box-sizing: border-box;\n\ +snippet bxz:cb\n\ + box-sizing: content-box;\n\ +snippet cps\n\ + caption-side: ${1};\n\ +snippet cps:b\n\ + caption-side: bottom;\n\ +snippet cps:t\n\ + caption-side: top;\n\ +snippet cl\n\ + clear: ${1};\n\ +snippet cl:b\n\ + clear: both;\n\ +snippet cl:l\n\ + clear: left;\n\ +snippet cl:n\n\ + clear: none;\n\ +snippet cl:r\n\ + clear: right;\n\ +snippet cp\n\ + clip: ${1};\n\ +snippet cp:a\n\ + clip: auto;\n\ +snippet cp:r\n\ + clip: rect(${1:0} ${2:0} ${3:0} ${4:0});\n\ +snippet c\n\ + color: #${1:000};\n\ +snippet ct\n\ + content: ${1};\n\ +snippet ct:a\n\ + content: attr(${1});\n\ +snippet ct:cq\n\ + content: close-quote;\n\ +snippet ct:c\n\ + content: counter(${1});\n\ +snippet ct:cs\n\ + content: counters(${1});\n\ +snippet ct:ncq\n\ + content: no-close-quote;\n\ +snippet ct:noq\n\ + content: no-open-quote;\n\ +snippet ct:n\n\ + content: normal;\n\ +snippet ct:oq\n\ + content: open-quote;\n\ +snippet coi\n\ + counter-increment: ${1};\n\ +snippet cor\n\ + counter-reset: ${1};\n\ +snippet cur\n\ + cursor: ${1};\n\ +snippet cur:a\n\ + cursor: auto;\n\ +snippet cur:c\n\ + cursor: crosshair;\n\ +snippet cur:d\n\ + cursor: default;\n\ +snippet cur:ha\n\ + cursor: hand;\n\ +snippet cur:he\n\ + cursor: help;\n\ +snippet cur:m\n\ + cursor: move;\n\ +snippet cur:p\n\ + cursor: pointer;\n\ +snippet cur:t\n\ + cursor: text;\n\ +snippet d\n\ + display: ${1};\n\ +snippet d:mib\n\ + display: -moz-inline-box;\n\ +snippet d:mis\n\ + display: -moz-inline-stack;\n\ +snippet d:b\n\ + display: block;\n\ +snippet d:cp\n\ + display: compact;\n\ +snippet d:ib\n\ + display: inline-block;\n\ +snippet d:itb\n\ + display: inline-table;\n\ +snippet d:i\n\ + display: inline;\n\ +snippet d:li\n\ + display: list-item;\n\ +snippet d:n\n\ + display: none;\n\ +snippet d:ri\n\ + display: run-in;\n\ +snippet d:tbcp\n\ + display: table-caption;\n\ +snippet d:tbc\n\ + display: table-cell;\n\ +snippet d:tbclg\n\ + display: table-column-group;\n\ +snippet d:tbcl\n\ + display: table-column;\n\ +snippet d:tbfg\n\ + display: table-footer-group;\n\ +snippet d:tbhg\n\ + display: table-header-group;\n\ +snippet d:tbrg\n\ + display: table-row-group;\n\ +snippet d:tbr\n\ + display: table-row;\n\ +snippet d:tb\n\ + display: table;\n\ +snippet ec\n\ + empty-cells: ${1};\n\ +snippet ec:h\n\ + empty-cells: hide;\n\ +snippet ec:s\n\ + empty-cells: show;\n\ +snippet exp\n\ + expression()\n\ +snippet fl\n\ + float: ${1};\n\ +snippet fl:l\n\ + float: left;\n\ +snippet fl:n\n\ + float: none;\n\ +snippet fl:r\n\ + float: right;\n\ +snippet f+\n\ + font: ${1:1em} ${2:Arial},${3:sans-serif};\n\ +snippet fef\n\ + font-effect: ${1};\n\ +snippet fef:eb\n\ + font-effect: emboss;\n\ +snippet fef:eg\n\ + font-effect: engrave;\n\ +snippet fef:n\n\ + font-effect: none;\n\ +snippet fef:o\n\ + font-effect: outline;\n\ +snippet femp\n\ + font-emphasize-position: ${1};\n\ +snippet femp:a\n\ + font-emphasize-position: after;\n\ +snippet femp:b\n\ + font-emphasize-position: before;\n\ +snippet fems\n\ + font-emphasize-style: ${1};\n\ +snippet fems:ac\n\ + font-emphasize-style: accent;\n\ +snippet fems:c\n\ + font-emphasize-style: circle;\n\ +snippet fems:ds\n\ + font-emphasize-style: disc;\n\ +snippet fems:dt\n\ + font-emphasize-style: dot;\n\ +snippet fems:n\n\ + font-emphasize-style: none;\n\ +snippet fem\n\ + font-emphasize: ${1};\n\ +snippet ff\n\ + font-family: ${1};\n\ +snippet ff:c\n\ + font-family: ${1:'Monotype Corsiva','Comic Sans MS'},cursive;\n\ +snippet ff:f\n\ + font-family: ${1:Capitals,Impact},fantasy;\n\ +snippet ff:m\n\ + font-family: ${1:Monaco,'Courier New'},monospace;\n\ +snippet ff:ss\n\ + font-family: ${1:Helvetica,Arial},sans-serif;\n\ +snippet ff:s\n\ + font-family: ${1:Georgia,'Times New Roman'},serif;\n\ +snippet fza\n\ + font-size-adjust: ${1};\n\ +snippet fza:n\n\ + font-size-adjust: none;\n\ +snippet fz\n\ + font-size: ${1};\n\ +snippet fsm\n\ + font-smooth: ${1};\n\ +snippet fsm:aw\n\ + font-smooth: always;\n\ +snippet fsm:a\n\ + font-smooth: auto;\n\ +snippet fsm:n\n\ + font-smooth: never;\n\ +snippet fst\n\ + font-stretch: ${1};\n\ +snippet fst:c\n\ + font-stretch: condensed;\n\ +snippet fst:e\n\ + font-stretch: expanded;\n\ +snippet fst:ec\n\ + font-stretch: extra-condensed;\n\ +snippet fst:ee\n\ + font-stretch: extra-expanded;\n\ +snippet fst:n\n\ + font-stretch: normal;\n\ +snippet fst:sc\n\ + font-stretch: semi-condensed;\n\ +snippet fst:se\n\ + font-stretch: semi-expanded;\n\ +snippet fst:uc\n\ + font-stretch: ultra-condensed;\n\ +snippet fst:ue\n\ + font-stretch: ultra-expanded;\n\ +snippet fs\n\ + font-style: ${1};\n\ +snippet fs:i\n\ + font-style: italic;\n\ +snippet fs:n\n\ + font-style: normal;\n\ +snippet fs:o\n\ + font-style: oblique;\n\ +snippet fv\n\ + font-variant: ${1};\n\ +snippet fv:n\n\ + font-variant: normal;\n\ +snippet fv:sc\n\ + font-variant: small-caps;\n\ +snippet fw\n\ + font-weight: ${1};\n\ +snippet fw:b\n\ + font-weight: bold;\n\ +snippet fw:br\n\ + font-weight: bolder;\n\ +snippet fw:lr\n\ + font-weight: lighter;\n\ +snippet fw:n\n\ + font-weight: normal;\n\ +snippet f\n\ + font: ${1};\n\ +snippet h\n\ + height: ${1};\n\ +snippet h:a\n\ + height: auto;\n\ +snippet l\n\ + left: ${1};\n\ +snippet l:a\n\ + left: auto;\n\ +snippet lts\n\ + letter-spacing: ${1};\n\ +snippet lh\n\ + line-height: ${1};\n\ +snippet lisi\n\ + list-style-image: url(${1});\n\ +snippet lisi:n\n\ + list-style-image: none;\n\ +snippet lisp\n\ + list-style-position: ${1};\n\ +snippet lisp:i\n\ + list-style-position: inside;\n\ +snippet lisp:o\n\ + list-style-position: outside;\n\ +snippet list\n\ + list-style-type: ${1};\n\ +snippet list:c\n\ + list-style-type: circle;\n\ +snippet list:dclz\n\ + list-style-type: decimal-leading-zero;\n\ +snippet list:dc\n\ + list-style-type: decimal;\n\ +snippet list:d\n\ + list-style-type: disc;\n\ +snippet list:lr\n\ + list-style-type: lower-roman;\n\ +snippet list:n\n\ + list-style-type: none;\n\ +snippet list:s\n\ + list-style-type: square;\n\ +snippet list:ur\n\ + list-style-type: upper-roman;\n\ +snippet lis\n\ + list-style: ${1};\n\ +snippet lis:n\n\ + list-style: none;\n\ +snippet mb\n\ + margin-bottom: ${1};\n\ +snippet mb:a\n\ + margin-bottom: auto;\n\ +snippet ml\n\ + margin-left: ${1};\n\ +snippet ml:a\n\ + margin-left: auto;\n\ +snippet mr\n\ + margin-right: ${1};\n\ +snippet mr:a\n\ + margin-right: auto;\n\ +snippet mt\n\ + margin-top: ${1};\n\ +snippet mt:a\n\ + margin-top: auto;\n\ +snippet m\n\ + margin: ${1};\n\ +snippet m:4\n\ + margin: ${1:0} ${2:0} ${3:0} ${4:0};\n\ +snippet m:3\n\ + margin: ${1:0} ${2:0} ${3:0};\n\ +snippet m:2\n\ + margin: ${1:0} ${2:0};\n\ +snippet m:0\n\ + margin: 0;\n\ +snippet m:a\n\ + margin: auto;\n\ +snippet mah\n\ + max-height: ${1};\n\ +snippet mah:n\n\ + max-height: none;\n\ +snippet maw\n\ + max-width: ${1};\n\ +snippet maw:n\n\ + max-width: none;\n\ +snippet mih\n\ + min-height: ${1};\n\ +snippet miw\n\ + min-width: ${1};\n\ +snippet op\n\ + opacity: ${1};\n\ +snippet op:ie\n\ + filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100});\n\ +snippet op:ms\n\ + -ms-filter: 'progid:DXImageTransform.Microsoft.Alpha(Opacity=${1:100})';\n\ +snippet orp\n\ + orphans: ${1};\n\ +snippet o+\n\ + outline: ${1:1px} ${2:solid} #${3:000};\n\ +snippet oc\n\ + outline-color: ${1:#000};\n\ +snippet oc:i\n\ + outline-color: invert;\n\ +snippet oo\n\ + outline-offset: ${1};\n\ +snippet os\n\ + outline-style: ${1};\n\ +snippet ow\n\ + outline-width: ${1};\n\ +snippet o\n\ + outline: ${1};\n\ +snippet o:n\n\ + outline: none;\n\ +snippet ovs\n\ + overflow-style: ${1};\n\ +snippet ovs:a\n\ + overflow-style: auto;\n\ +snippet ovs:mq\n\ + overflow-style: marquee;\n\ +snippet ovs:mv\n\ + overflow-style: move;\n\ +snippet ovs:p\n\ + overflow-style: panner;\n\ +snippet ovs:s\n\ + overflow-style: scrollbar;\n\ +snippet ovx\n\ + overflow-x: ${1};\n\ +snippet ovx:a\n\ + overflow-x: auto;\n\ +snippet ovx:h\n\ + overflow-x: hidden;\n\ +snippet ovx:s\n\ + overflow-x: scroll;\n\ +snippet ovx:v\n\ + overflow-x: visible;\n\ +snippet ovy\n\ + overflow-y: ${1};\n\ +snippet ovy:a\n\ + overflow-y: auto;\n\ +snippet ovy:h\n\ + overflow-y: hidden;\n\ +snippet ovy:s\n\ + overflow-y: scroll;\n\ +snippet ovy:v\n\ + overflow-y: visible;\n\ +snippet ov\n\ + overflow: ${1};\n\ +snippet ov:a\n\ + overflow: auto;\n\ +snippet ov:h\n\ + overflow: hidden;\n\ +snippet ov:s\n\ + overflow: scroll;\n\ +snippet ov:v\n\ + overflow: visible;\n\ +snippet pb\n\ + padding-bottom: ${1};\n\ +snippet pl\n\ + padding-left: ${1};\n\ +snippet pr\n\ + padding-right: ${1};\n\ +snippet pt\n\ + padding-top: ${1};\n\ +snippet p\n\ + padding: ${1};\n\ +snippet p:4\n\ + padding: ${1:0} ${2:0} ${3:0} ${4:0};\n\ +snippet p:3\n\ + padding: ${1:0} ${2:0} ${3:0};\n\ +snippet p:2\n\ + padding: ${1:0} ${2:0};\n\ +snippet p:0\n\ + padding: 0;\n\ +snippet pgba\n\ + page-break-after: ${1};\n\ +snippet pgba:aw\n\ + page-break-after: always;\n\ +snippet pgba:a\n\ + page-break-after: auto;\n\ +snippet pgba:l\n\ + page-break-after: left;\n\ +snippet pgba:r\n\ + page-break-after: right;\n\ +snippet pgbb\n\ + page-break-before: ${1};\n\ +snippet pgbb:aw\n\ + page-break-before: always;\n\ +snippet pgbb:a\n\ + page-break-before: auto;\n\ +snippet pgbb:l\n\ + page-break-before: left;\n\ +snippet pgbb:r\n\ + page-break-before: right;\n\ +snippet pgbi\n\ + page-break-inside: ${1};\n\ +snippet pgbi:a\n\ + page-break-inside: auto;\n\ +snippet pgbi:av\n\ + page-break-inside: avoid;\n\ +snippet pos\n\ + position: ${1};\n\ +snippet pos:a\n\ + position: absolute;\n\ +snippet pos:f\n\ + position: fixed;\n\ +snippet pos:r\n\ + position: relative;\n\ +snippet pos:s\n\ + position: static;\n\ +snippet q\n\ + quotes: ${1};\n\ +snippet q:en\n\ + quotes: '\\201C' '\\201D' '\\2018' '\\2019';\n\ +snippet q:n\n\ + quotes: none;\n\ +snippet q:ru\n\ + quotes: '\\00AB' '\\00BB' '\\201E' '\\201C';\n\ +snippet rz\n\ + resize: ${1};\n\ +snippet rz:b\n\ + resize: both;\n\ +snippet rz:h\n\ + resize: horizontal;\n\ +snippet rz:n\n\ + resize: none;\n\ +snippet rz:v\n\ + resize: vertical;\n\ +snippet r\n\ + right: ${1};\n\ +snippet r:a\n\ + right: auto;\n\ +snippet tbl\n\ + table-layout: ${1};\n\ +snippet tbl:a\n\ + table-layout: auto;\n\ +snippet tbl:f\n\ + table-layout: fixed;\n\ +snippet tal\n\ + text-align-last: ${1};\n\ +snippet tal:a\n\ + text-align-last: auto;\n\ +snippet tal:c\n\ + text-align-last: center;\n\ +snippet tal:l\n\ + text-align-last: left;\n\ +snippet tal:r\n\ + text-align-last: right;\n\ +snippet ta\n\ + text-align: ${1};\n\ +snippet ta:c\n\ + text-align: center;\n\ +snippet ta:l\n\ + text-align: left;\n\ +snippet ta:r\n\ + text-align: right;\n\ +snippet td\n\ + text-decoration: ${1};\n\ +snippet td:l\n\ + text-decoration: line-through;\n\ +snippet td:n\n\ + text-decoration: none;\n\ +snippet td:o\n\ + text-decoration: overline;\n\ +snippet td:u\n\ + text-decoration: underline;\n\ +snippet te\n\ + text-emphasis: ${1};\n\ +snippet te:ac\n\ + text-emphasis: accent;\n\ +snippet te:a\n\ + text-emphasis: after;\n\ +snippet te:b\n\ + text-emphasis: before;\n\ +snippet te:c\n\ + text-emphasis: circle;\n\ +snippet te:ds\n\ + text-emphasis: disc;\n\ +snippet te:dt\n\ + text-emphasis: dot;\n\ +snippet te:n\n\ + text-emphasis: none;\n\ +snippet th\n\ + text-height: ${1};\n\ +snippet th:a\n\ + text-height: auto;\n\ +snippet th:f\n\ + text-height: font-size;\n\ +snippet th:m\n\ + text-height: max-size;\n\ +snippet th:t\n\ + text-height: text-size;\n\ +snippet ti\n\ + text-indent: ${1};\n\ +snippet ti:-\n\ + text-indent: -9999px;\n\ +snippet tj\n\ + text-justify: ${1};\n\ +snippet tj:a\n\ + text-justify: auto;\n\ +snippet tj:d\n\ + text-justify: distribute;\n\ +snippet tj:ic\n\ + text-justify: inter-cluster;\n\ +snippet tj:ii\n\ + text-justify: inter-ideograph;\n\ +snippet tj:iw\n\ + text-justify: inter-word;\n\ +snippet tj:k\n\ + text-justify: kashida;\n\ +snippet tj:t\n\ + text-justify: tibetan;\n\ +snippet to+\n\ + text-outline: ${1:0} ${2:0} #${3:000};\n\ +snippet to\n\ + text-outline: ${1};\n\ +snippet to:n\n\ + text-outline: none;\n\ +snippet tr\n\ + text-replace: ${1};\n\ +snippet tr:n\n\ + text-replace: none;\n\ +snippet tsh+\n\ + text-shadow: ${1:0} ${2:0} ${3:0} #${4:000};\n\ +snippet tsh\n\ + text-shadow: ${1};\n\ +snippet tsh:n\n\ + text-shadow: none;\n\ +snippet tt\n\ + text-transform: ${1};\n\ +snippet tt:c\n\ + text-transform: capitalize;\n\ +snippet tt:l\n\ + text-transform: lowercase;\n\ +snippet tt:n\n\ + text-transform: none;\n\ +snippet tt:u\n\ + text-transform: uppercase;\n\ +snippet tw\n\ + text-wrap: ${1};\n\ +snippet tw:no\n\ + text-wrap: none;\n\ +snippet tw:n\n\ + text-wrap: normal;\n\ +snippet tw:s\n\ + text-wrap: suppress;\n\ +snippet tw:u\n\ + text-wrap: unrestricted;\n\ +snippet t\n\ + top: ${1};\n\ +snippet t:a\n\ + top: auto;\n\ +snippet va\n\ + vertical-align: ${1};\n\ +snippet va:bl\n\ + vertical-align: baseline;\n\ +snippet va:b\n\ + vertical-align: bottom;\n\ +snippet va:m\n\ + vertical-align: middle;\n\ +snippet va:sub\n\ + vertical-align: sub;\n\ +snippet va:sup\n\ + vertical-align: super;\n\ +snippet va:tb\n\ + vertical-align: text-bottom;\n\ +snippet va:tt\n\ + vertical-align: text-top;\n\ +snippet va:t\n\ + vertical-align: top;\n\ +snippet v\n\ + visibility: ${1};\n\ +snippet v:c\n\ + visibility: collapse;\n\ +snippet v:h\n\ + visibility: hidden;\n\ +snippet v:v\n\ + visibility: visible;\n\ +snippet whsc\n\ + white-space-collapse: ${1};\n\ +snippet whsc:ba\n\ + white-space-collapse: break-all;\n\ +snippet whsc:bs\n\ + white-space-collapse: break-strict;\n\ +snippet whsc:k\n\ + white-space-collapse: keep-all;\n\ +snippet whsc:l\n\ + white-space-collapse: loose;\n\ +snippet whsc:n\n\ + white-space-collapse: normal;\n\ +snippet whs\n\ + white-space: ${1};\n\ +snippet whs:n\n\ + white-space: normal;\n\ +snippet whs:nw\n\ + white-space: nowrap;\n\ +snippet whs:pl\n\ + white-space: pre-line;\n\ +snippet whs:pw\n\ + white-space: pre-wrap;\n\ +snippet whs:p\n\ + white-space: pre;\n\ +snippet wid\n\ + widows: ${1};\n\ +snippet w\n\ + width: ${1};\n\ +snippet w:a\n\ + width: auto;\n\ +snippet wob\n\ + word-break: ${1};\n\ +snippet wob:ba\n\ + word-break: break-all;\n\ +snippet wob:bs\n\ + word-break: break-strict;\n\ +snippet wob:k\n\ + word-break: keep-all;\n\ +snippet wob:l\n\ + word-break: loose;\n\ +snippet wob:n\n\ + word-break: normal;\n\ +snippet wos\n\ + word-spacing: ${1};\n\ +snippet wow\n\ + word-wrap: ${1};\n\ +snippet wow:no\n\ + word-wrap: none;\n\ +snippet wow:n\n\ + word-wrap: normal;\n\ +snippet wow:s\n\ + word-wrap: suppress;\n\ +snippet wow:u\n\ + word-wrap: unrestricted;\n\ +snippet z\n\ + z-index: ${1};\n\ +snippet z:a\n\ + z-index: auto;\n\ +snippet zoo\n\ + zoom: 1;\n\ +"; +exports.scope = "css"; + +}); diff --git a/htdocs/includes/ace/snippets/curly.js b/htdocs/includes/ace/snippets/curly.js new file mode 100644 index 00000000000..1b2b68734c5 --- /dev/null +++ b/htdocs/includes/ace/snippets/curly.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/curly",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "curly"; + +}); diff --git a/htdocs/includes/ace/snippets/d.js b/htdocs/includes/ace/snippets/d.js new file mode 100644 index 00000000000..729741cc25c --- /dev/null +++ b/htdocs/includes/ace/snippets/d.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/d",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "d"; + +}); diff --git a/htdocs/includes/ace/snippets/dart.js b/htdocs/includes/ace/snippets/dart.js new file mode 100644 index 00000000000..e96cc5d26e2 --- /dev/null +++ b/htdocs/includes/ace/snippets/dart.js @@ -0,0 +1,90 @@ +ace.define("ace/snippets/dart",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet lib\n\ + library ${1};\n\ + ${2}\n\ +snippet im\n\ + import '${1}';\n\ + ${2}\n\ +snippet pa\n\ + part '${1}';\n\ + ${2}\n\ +snippet pao\n\ + part of ${1};\n\ + ${2}\n\ +snippet main\n\ + void main() {\n\ + ${1:/* code */}\n\ + }\n\ +snippet st\n\ + static ${1}\n\ +snippet fi\n\ + final ${1}\n\ +snippet re\n\ + return ${1}\n\ +snippet br\n\ + break;\n\ +snippet th\n\ + throw ${1}\n\ +snippet cl\n\ + class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ +snippet imp\n\ + implements ${1}\n\ +snippet ext\n\ + extends ${1}\n\ +snippet if\n\ + if (${1:true}) {\n\ + ${2}\n\ + }\n\ +snippet ife\n\ + if (${1:true}) {\n\ + ${2}\n\ + } else {\n\ + ${3}\n\ + }\n\ +snippet el\n\ + else\n\ +snippet sw\n\ + switch (${1}) {\n\ + ${2}\n\ + }\n\ +snippet cs\n\ + case ${1}:\n\ + ${2}\n\ +snippet de\n\ + default:\n\ + ${1}\n\ +snippet for\n\ + for (var ${2:i} = 0, len = ${1:things}.length; $2 < len; ${3:++}$2) {\n\ + ${4:$1[$2]}\n\ + }\n\ +snippet fore\n\ + for (final ${2:item} in ${1:itemList}) {\n\ + ${3:/* code */}\n\ + }\n\ +snippet wh\n\ + while (${1:/* condition */}) {\n\ + ${2:/* code */}\n\ + }\n\ +snippet dowh\n\ + do {\n\ + ${2:/* code */}\n\ + } while (${1:/* condition */});\n\ +snippet as\n\ + assert(${1:/* condition */});\n\ +snippet try\n\ + try {\n\ + ${2}\n\ + } catch (${1:Exception e}) {\n\ + }\n\ +snippet tryf\n\ + try {\n\ + ${2}\n\ + } catch (${1:Exception e}) {\n\ + } finally {\n\ + }\n\ +"; +exports.scope = "dart"; + +}); diff --git a/htdocs/includes/ace/snippets/diff.js b/htdocs/includes/ace/snippets/diff.js new file mode 100644 index 00000000000..8fe075ecf9b --- /dev/null +++ b/htdocs/includes/ace/snippets/diff.js @@ -0,0 +1,18 @@ +ace.define("ace/snippets/diff",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# DEP-3 (http://dep.debian.net/deps/dep3/) style patch header\n\ +snippet header DEP-3 style header\n\ + Description: ${1}\n\ + Origin: ${2:vendor|upstream|other}, ${3:url of the original patch}\n\ + Bug: ${4:url in upstream bugtracker}\n\ + Forwarded: ${5:no|not-needed|url}\n\ + Author: ${6:`g:snips_author`}\n\ + Reviewed-by: ${7:name and email}\n\ + Last-Update: ${8:`strftime(\"%Y-%m-%d\")`}\n\ + Applied-Upstream: ${9:upstream version|url|commit}\n\ +\n\ +"; +exports.scope = "diff"; + +}); diff --git a/htdocs/includes/ace/snippets/django.js b/htdocs/includes/ace/snippets/django.js new file mode 100644 index 00000000000..c1dacbed824 --- /dev/null +++ b/htdocs/includes/ace/snippets/django.js @@ -0,0 +1,115 @@ +ace.define("ace/snippets/django",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Model Fields\n\ +\n\ +# Note: Optional arguments are using defaults that match what Django will use\n\ +# as a default, e.g. with max_length fields. Doing this as a form of self\n\ +# documentation and to make it easy to know whether you should override the\n\ +# default or not.\n\ +\n\ +# Note: Optional arguments that are booleans will use the opposite since you\n\ +# can either not specify them, or override them, e.g. auto_now_add=False.\n\ +\n\ +snippet auto\n\ + ${1:FIELDNAME} = models.AutoField(${2})\n\ +snippet bool\n\ + ${1:FIELDNAME} = models.BooleanField(${2:default=True})\n\ +snippet char\n\ + ${1:FIELDNAME} = models.CharField(max_length=${2}${3:, blank=True})\n\ +snippet comma\n\ + ${1:FIELDNAME} = models.CommaSeparatedIntegerField(max_length=${2}${3:, blank=True})\n\ +snippet date\n\ + ${1:FIELDNAME} = models.DateField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\ +snippet datetime\n\ + ${1:FIELDNAME} = models.DateTimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\ +snippet decimal\n\ + ${1:FIELDNAME} = models.DecimalField(max_digits=${2}, decimal_places=${3})\n\ +snippet email\n\ + ${1:FIELDNAME} = models.EmailField(max_length=${2:75}${3:, blank=True})\n\ +snippet file\n\ + ${1:FIELDNAME} = models.FileField(upload_to=${2:path/for/upload}${3:, max_length=100})\n\ +snippet filepath\n\ + ${1:FIELDNAME} = models.FilePathField(path=${2:\"/abs/path/to/dir\"}${3:, max_length=100}${4:, match=\"*.ext\"}${5:, recursive=True}${6:, blank=True, })\n\ +snippet float\n\ + ${1:FIELDNAME} = models.FloatField(${2})\n\ +snippet image\n\ + ${1:FIELDNAME} = models.ImageField(upload_to=${2:path/for/upload}${3:, height_field=height, width_field=width}${4:, max_length=100})\n\ +snippet int\n\ + ${1:FIELDNAME} = models.IntegerField(${2})\n\ +snippet ip\n\ + ${1:FIELDNAME} = models.IPAddressField(${2})\n\ +snippet nullbool\n\ + ${1:FIELDNAME} = models.NullBooleanField(${2})\n\ +snippet posint\n\ + ${1:FIELDNAME} = models.PositiveIntegerField(${2})\n\ +snippet possmallint\n\ + ${1:FIELDNAME} = models.PositiveSmallIntegerField(${2})\n\ +snippet slug\n\ + ${1:FIELDNAME} = models.SlugField(max_length=${2:50}${3:, blank=True})\n\ +snippet smallint\n\ + ${1:FIELDNAME} = models.SmallIntegerField(${2})\n\ +snippet text\n\ + ${1:FIELDNAME} = models.TextField(${2:blank=True})\n\ +snippet time\n\ + ${1:FIELDNAME} = models.TimeField(${2:auto_now_add=True, auto_now=True}${3:, blank=True, null=True})\n\ +snippet url\n\ + ${1:FIELDNAME} = models.URLField(${2:verify_exists=False}${3:, max_length=200}${4:, blank=True})\n\ +snippet xml\n\ + ${1:FIELDNAME} = models.XMLField(schema_path=${2:None}${3:, blank=True})\n\ +# Relational Fields\n\ +snippet fk\n\ + ${1:FIELDNAME} = models.ForeignKey(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, to_field=''})\n\ +snippet m2m\n\ + ${1:FIELDNAME} = models.ManyToManyField(${2:OtherModel}${3:, related_name=''}${4:, limit_choices_to=}${5:, symmetrical=False}${6:, through=''}${7:, db_table=''})\n\ +snippet o2o\n\ + ${1:FIELDNAME} = models.OneToOneField(${2:OtherModel}${3:, parent_link=True}${4:, related_name=''}${5:, limit_choices_to=}${6:, to_field=''})\n\ +\n\ +# Code Skeletons\n\ +\n\ +snippet form\n\ + class ${1:FormName}(forms.Form):\n\ + \"\"\"${2:docstring}\"\"\"\n\ + ${3}\n\ +\n\ +snippet model\n\ + class ${1:ModelName}(models.Model):\n\ + \"\"\"${2:docstring}\"\"\"\n\ + ${3}\n\ + \n\ + class Meta:\n\ + ${4}\n\ + \n\ + def __unicode__(self):\n\ + ${5}\n\ + \n\ + def save(self, force_insert=False, force_update=False):\n\ + ${6}\n\ + \n\ + @models.permalink\n\ + def get_absolute_url(self):\n\ + return ('${7:view_or_url_name}' ${8})\n\ +\n\ +snippet modeladmin\n\ + class ${1:ModelName}Admin(admin.ModelAdmin):\n\ + ${2}\n\ + \n\ + admin.site.register($1, $1Admin)\n\ + \n\ +snippet tabularinline\n\ + class ${1:ModelName}Inline(admin.TabularInline):\n\ + model = $1\n\ +\n\ +snippet stackedinline\n\ + class ${1:ModelName}Inline(admin.StackedInline):\n\ + model = $1\n\ +\n\ +snippet r2r\n\ + return render_to_response('${1:template.html}', {\n\ + ${2}\n\ + }${3:, context_instance=RequestContext(request)}\n\ + )\n\ +"; +exports.scope = "django"; + +}); diff --git a/htdocs/includes/ace/snippets/dockerfile.js b/htdocs/includes/ace/snippets/dockerfile.js new file mode 100644 index 00000000000..981cee8ab6d --- /dev/null +++ b/htdocs/includes/ace/snippets/dockerfile.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/dockerfile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "dockerfile"; + +}); diff --git a/htdocs/includes/ace/snippets/dot.js b/htdocs/includes/ace/snippets/dot.js new file mode 100644 index 00000000000..3a09fc7727c --- /dev/null +++ b/htdocs/includes/ace/snippets/dot.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/dot",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "dot"; + +}); diff --git a/htdocs/includes/ace/snippets/drools.js b/htdocs/includes/ace/snippets/drools.js new file mode 100644 index 00000000000..a8dd859a404 --- /dev/null +++ b/htdocs/includes/ace/snippets/drools.js @@ -0,0 +1,26 @@ +ace.define("ace/snippets/drools",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "\n\ +snippet rule\n\ + rule \"${1?:rule_name}\"\n\ + when\n\ + ${2:// when...} \n\ + then\n\ + ${3:// then...}\n\ + end\n\ +\n\ +snippet query\n\ + query ${1?:query_name}\n\ + ${2:// find} \n\ + end\n\ + \n\ +snippet declare\n\ + declare ${1?:type_name}\n\ + ${2:// attributes} \n\ + end\n\ +\n\ +"; +exports.scope = "drools"; + +}); diff --git a/htdocs/includes/ace/snippets/eiffel.js b/htdocs/includes/ace/snippets/eiffel.js new file mode 100644 index 00000000000..25672785c5a --- /dev/null +++ b/htdocs/includes/ace/snippets/eiffel.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/eiffel",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "eiffel"; + +}); diff --git a/htdocs/includes/ace/snippets/ejs.js b/htdocs/includes/ace/snippets/ejs.js new file mode 100644 index 00000000000..fd38fa09dce --- /dev/null +++ b/htdocs/includes/ace/snippets/ejs.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/ejs",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ejs"; + +}); diff --git a/htdocs/includes/ace/snippets/elixir.js b/htdocs/includes/ace/snippets/elixir.js new file mode 100644 index 00000000000..d9326275222 --- /dev/null +++ b/htdocs/includes/ace/snippets/elixir.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/elixir",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/elm.js b/htdocs/includes/ace/snippets/elm.js new file mode 100644 index 00000000000..a9d06b59bc5 --- /dev/null +++ b/htdocs/includes/ace/snippets/elm.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/elm",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "elm"; + +}); diff --git a/htdocs/includes/ace/snippets/erlang.js b/htdocs/includes/ace/snippets/erlang.js new file mode 100644 index 00000000000..d04ee117e34 --- /dev/null +++ b/htdocs/includes/ace/snippets/erlang.js @@ -0,0 +1,167 @@ +ace.define("ace/snippets/erlang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# module and export all\n\ +snippet mod\n\ + -module(${1:`Filename('', 'my')`}).\n\ + \n\ + -compile([export_all]).\n\ + \n\ + start() ->\n\ + ${2}\n\ + \n\ + stop() ->\n\ + ok.\n\ +# define directive\n\ +snippet def\n\ + -define(${1:macro}, ${2:body}).${3}\n\ +# export directive\n\ +snippet exp\n\ + -export([${1:function}/${2:arity}]).\n\ +# include directive\n\ +snippet inc\n\ + -include(\"${1:file}\").${2}\n\ +# behavior directive\n\ +snippet beh\n\ + -behaviour(${1:behaviour}).${2}\n\ +# if expression\n\ +snippet if\n\ + if\n\ + ${1:guard} ->\n\ + ${2:body}\n\ + end\n\ +# case expression\n\ +snippet case\n\ + case ${1:expression} of\n\ + ${2:pattern} ->\n\ + ${3:body};\n\ + end\n\ +# anonymous function\n\ +snippet fun\n\ + fun (${1:Parameters}) -> ${2:body} end${3}\n\ +# try...catch\n\ +snippet try\n\ + try\n\ + ${1}\n\ + catch\n\ + ${2:_:_} -> ${3:got_some_exception}\n\ + end\n\ +# record directive\n\ +snippet rec\n\ + -record(${1:record}, {\n\ + ${2:field}=${3:value}}).${4}\n\ +# todo comment\n\ +snippet todo\n\ + %% TODO: ${1}\n\ +## Snippets below (starting with '%') are in EDoc format.\n\ +## See http://www.erlang.org/doc/apps/edoc/chapter.html#id56887 for more details\n\ +# doc comment\n\ +snippet %d\n\ + %% @doc ${1}\n\ +# end of doc comment\n\ +snippet %e\n\ + %% @end\n\ +# specification comment\n\ +snippet %s\n\ + %% @spec ${1}\n\ +# private function marker\n\ +snippet %p\n\ + %% @private\n\ +# OTP application\n\ +snippet application\n\ + -module(${1:`Filename('', 'my')`}).\n\ +\n\ + -behaviour(application).\n\ +\n\ + -export([start/2, stop/1]).\n\ +\n\ + start(_Type, _StartArgs) ->\n\ + case ${2:root_supervisor}:start_link() of\n\ + {ok, Pid} ->\n\ + {ok, Pid};\n\ + Other ->\n\ + {error, Other}\n\ + end.\n\ +\n\ + stop(_State) ->\n\ + ok. \n\ +# OTP supervisor\n\ +snippet supervisor\n\ + -module(${1:`Filename('', 'my')`}).\n\ +\n\ + -behaviour(supervisor).\n\ +\n\ + %% API\n\ + -export([start_link/0]).\n\ +\n\ + %% Supervisor callbacks\n\ + -export([init/1]).\n\ +\n\ + -define(SERVER, ?MODULE).\n\ +\n\ + start_link() ->\n\ + supervisor:start_link({local, ?SERVER}, ?MODULE, []).\n\ +\n\ + init([]) ->\n\ + Server = {${2:my_server}, {$2, start_link, []},\n\ + permanent, 2000, worker, [$2]},\n\ + Children = [Server],\n\ + RestartStrategy = {one_for_one, 0, 1},\n\ + {ok, {RestartStrategy, Children}}.\n\ +# OTP gen_server\n\ +snippet gen_server\n\ + -module(${1:`Filename('', 'my')`}).\n\ +\n\ + -behaviour(gen_server).\n\ +\n\ + %% API\n\ + -export([\n\ + start_link/0\n\ + ]).\n\ +\n\ + %% gen_server callbacks\n\ + -export([init/1, handle_call/3, handle_cast/2, handle_info/2,\n\ + terminate/2, code_change/3]).\n\ +\n\ + -define(SERVER, ?MODULE).\n\ +\n\ + -record(state, {}).\n\ +\n\ + %%%===================================================================\n\ + %%% API\n\ + %%%===================================================================\n\ +\n\ + start_link() ->\n\ + gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).\n\ +\n\ + %%%===================================================================\n\ + %%% gen_server callbacks\n\ + %%%===================================================================\n\ +\n\ + init([]) ->\n\ + {ok, #state{}}.\n\ +\n\ + handle_call(_Request, _From, State) ->\n\ + Reply = ok,\n\ + {reply, Reply, State}.\n\ +\n\ + handle_cast(_Msg, State) ->\n\ + {noreply, State}.\n\ +\n\ + handle_info(_Info, State) ->\n\ + {noreply, State}.\n\ +\n\ + terminate(_Reason, _State) ->\n\ + ok.\n\ +\n\ + code_change(_OldVsn, State, _Extra) ->\n\ + {ok, State}.\n\ +\n\ + %%%===================================================================\n\ + %%% Internal functions\n\ + %%%===================================================================\n\ +\n\ +"; +exports.scope = "erlang"; + +}); diff --git a/htdocs/includes/ace/snippets/forth.js b/htdocs/includes/ace/snippets/forth.js new file mode 100644 index 00000000000..afb1f8a44ea --- /dev/null +++ b/htdocs/includes/ace/snippets/forth.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/forth",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "forth"; + +}); diff --git a/htdocs/includes/ace/snippets/fortran.js b/htdocs/includes/ace/snippets/fortran.js new file mode 100644 index 00000000000..b4605929bcb --- /dev/null +++ b/htdocs/includes/ace/snippets/fortran.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/fortran",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "fortran"; + +}); diff --git a/htdocs/includes/ace/snippets/ftl.js b/htdocs/includes/ace/snippets/ftl.js new file mode 100644 index 00000000000..3b53ad417a6 --- /dev/null +++ b/htdocs/includes/ace/snippets/ftl.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/ftl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ftl"; + +}); diff --git a/htdocs/includes/ace/snippets/gcode.js b/htdocs/includes/ace/snippets/gcode.js new file mode 100644 index 00000000000..0ed4a102777 --- /dev/null +++ b/htdocs/includes/ace/snippets/gcode.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/gcode",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "gcode"; + +}); diff --git a/htdocs/includes/ace/snippets/gherkin.js b/htdocs/includes/ace/snippets/gherkin.js new file mode 100644 index 00000000000..2044647138d --- /dev/null +++ b/htdocs/includes/ace/snippets/gherkin.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/gherkin",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "gherkin"; + +}); diff --git a/htdocs/includes/ace/snippets/gitignore.js b/htdocs/includes/ace/snippets/gitignore.js new file mode 100644 index 00000000000..6da54aa5b2e --- /dev/null +++ b/htdocs/includes/ace/snippets/gitignore.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/gitignore",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "gitignore"; + +}); diff --git a/htdocs/includes/ace/snippets/glsl.js b/htdocs/includes/ace/snippets/glsl.js new file mode 100644 index 00000000000..bb8e40d8460 --- /dev/null +++ b/htdocs/includes/ace/snippets/glsl.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/glsl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "glsl"; + +}); diff --git a/htdocs/includes/ace/snippets/gobstones.js b/htdocs/includes/ace/snippets/gobstones.js new file mode 100644 index 00000000000..4e36e5319c1 --- /dev/null +++ b/htdocs/includes/ace/snippets/gobstones.js @@ -0,0 +1,41 @@ +ace.define("ace/snippets/gobstones",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Procedure\n\ +snippet proc\n\ + procedure ${1?:name}(${2:argument}) {\n\ + ${3:// body...}\n\ + }\n\ +\n\ +# Function\n\ +snippet fun\n\ + function ${1?:name}(${2:argument}) {\n\ + return ${3:// body...}\n\ + }\n\ +\n\ +# Repeat\n\ +snippet rep\n\ + repeat ${1?:times} {\n\ + ${2:// body...}\n\ + }\n\ +\n\ +# For\n\ +snippet for\n\ + foreach ${1?:e} in ${2?:list} {\n\ + ${3:// body...} \n\ + }\n\ +\n\ +# If\n\ +snippet if\n\ + if (${1?:condition}) {\n\ + ${3:// body...} \n\ + }\n\ +\n\ +# While\n\ + while (${1?:condition}) {\n\ + ${2:// body...} \n\ + }\n\ +"; +exports.scope = "gobstones"; + +}); diff --git a/htdocs/includes/ace/snippets/golang.js b/htdocs/includes/ace/snippets/golang.js new file mode 100644 index 00000000000..0a2411d5373 --- /dev/null +++ b/htdocs/includes/ace/snippets/golang.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/golang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "golang"; + +}); diff --git a/htdocs/includes/ace/snippets/graphqlschema.js b/htdocs/includes/ace/snippets/graphqlschema.js new file mode 100644 index 00000000000..6b1e49f9421 --- /dev/null +++ b/htdocs/includes/ace/snippets/graphqlschema.js @@ -0,0 +1,39 @@ +ace.define("ace/snippets/graphqlschema",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Type Snippet\n\ +trigger type\n\ +snippet type\n\ + type ${1:type_name} {\n\ + ${2:type_siblings}\n\ + }\n\ +\n\ +# Input Snippet\n\ +trigger input\n\ +snippet input\n\ + input ${1:input_name} {\n\ + ${2:input_siblings}\n\ + }\n\ +\n\ +# Interface Snippet\n\ +trigger interface\n\ +snippet interface\n\ + interface ${1:interface_name} {\n\ + ${2:interface_siblings}\n\ + }\n\ +\n\ +# Interface Snippet\n\ +trigger union\n\ +snippet union\n\ + union ${1:union_name} = ${2:type} | ${3: type}\n\ +\n\ +# Enum Snippet\n\ +trigger enum\n\ +snippet enum\n\ + enum ${1:enum_name} {\n\ + ${2:enum_siblings}\n\ + }\n\ +"; +exports.scope = "graphqlschema"; + +}); diff --git a/htdocs/includes/ace/snippets/groovy.js b/htdocs/includes/ace/snippets/groovy.js new file mode 100644 index 00000000000..ddeab2c8175 --- /dev/null +++ b/htdocs/includes/ace/snippets/groovy.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/groovy",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "groovy"; + +}); diff --git a/htdocs/includes/ace/snippets/haml.js b/htdocs/includes/ace/snippets/haml.js new file mode 100644 index 00000000000..2d1c68aa217 --- /dev/null +++ b/htdocs/includes/ace/snippets/haml.js @@ -0,0 +1,27 @@ +ace.define("ace/snippets/haml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet t\n\ + %table\n\ + %tr\n\ + %th\n\ + ${1:headers}\n\ + %tr\n\ + %td\n\ + ${2:headers}\n\ +snippet ul\n\ + %ul\n\ + %li\n\ + ${1:item}\n\ + %li\n\ +snippet =rp\n\ + = render :partial => '${1:partial}'\n\ +snippet =rpl\n\ + = render :partial => '${1:partial}', :locals => {}\n\ +snippet =rpc\n\ + = render :partial => '${1:partial}', :collection => @$1\n\ +\n\ +"; +exports.scope = "haml"; + +}); diff --git a/htdocs/includes/ace/snippets/handlebars.js b/htdocs/includes/ace/snippets/handlebars.js new file mode 100644 index 00000000000..1764b754cc9 --- /dev/null +++ b/htdocs/includes/ace/snippets/handlebars.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/handlebars",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "handlebars"; + +}); diff --git a/htdocs/includes/ace/snippets/haskell.js b/htdocs/includes/ace/snippets/haskell.js new file mode 100644 index 00000000000..2bd8b5afd91 --- /dev/null +++ b/htdocs/includes/ace/snippets/haskell.js @@ -0,0 +1,89 @@ +ace.define("ace/snippets/haskell",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet lang\n\ + {-# LANGUAGE ${1:OverloadedStrings} #-}\n\ +snippet info\n\ + -- |\n\ + -- Module : ${1:Module.Namespace}\n\ + -- Copyright : ${2:Author} ${3:2011-2012}\n\ + -- License : ${4:BSD3}\n\ + --\n\ + -- Maintainer : ${5:email@something.com}\n\ + -- Stability : ${6:experimental}\n\ + -- Portability : ${7:unknown}\n\ + --\n\ + -- ${8:Description}\n\ + --\n\ +snippet import\n\ + import ${1:Data.Text}\n\ +snippet import2\n\ + import ${1:Data.Text} (${2:head})\n\ +snippet importq\n\ + import qualified ${1:Data.Text} as ${2:T}\n\ +snippet inst\n\ + instance ${1:Monoid} ${2:Type} where\n\ + ${3}\n\ +snippet type\n\ + type ${1:Type} = ${2:Type}\n\ +snippet data\n\ + data ${1:Type} = ${2:$1} ${3:Int}\n\ +snippet newtype\n\ + newtype ${1:Type} = ${2:$1} ${3:Int}\n\ +snippet class\n\ + class ${1:Class} a where\n\ + ${2}\n\ +snippet module\n\ + module `substitute(substitute(expand('%:r'), '[/\\\\]','.','g'),'^\\%(\\l*\\.\\)\\?','','')` (\n\ + ) where\n\ + `expand('%') =~ 'Main' ? \"\\n\\nmain = do\\n print \\\"hello world\\\"\" : \"\"`\n\ +\n\ +snippet const\n\ + ${1:name} :: ${2:a}\n\ + $1 = ${3:undefined}\n\ +snippet fn\n\ + ${1:fn} :: ${2:a} -> ${3:a}\n\ + $1 ${4} = ${5:undefined}\n\ +snippet fn2\n\ + ${1:fn} :: ${2:a} -> ${3:a} -> ${4:a}\n\ + $1 ${5} = ${6:undefined}\n\ +snippet ap\n\ + ${1:map} ${2:fn} ${3:list}\n\ +snippet do\n\ + do\n\ + \n\ +snippet λ\n\ + \\${1:x} -> ${2}\n\ +snippet \\\n\ + \\${1:x} -> ${2}\n\ +snippet <-\n\ + ${1:a} <- ${2:m a}\n\ +snippet ←\n\ + ${1:a} <- ${2:m a}\n\ +snippet ->\n\ + ${1:m a} -> ${2:a}\n\ +snippet →\n\ + ${1:m a} -> ${2:a}\n\ +snippet tup\n\ + (${1:a}, ${2:b})\n\ +snippet tup2\n\ + (${1:a}, ${2:b}, ${3:c})\n\ +snippet tup3\n\ + (${1:a}, ${2:b}, ${3:c}, ${4:d})\n\ +snippet rec\n\ + ${1:Record} { ${2:recFieldA} = ${3:undefined}\n\ + , ${4:recFieldB} = ${5:undefined}\n\ + }\n\ +snippet case\n\ + case ${1:something} of\n\ + ${2} -> ${3}\n\ +snippet let\n\ + let ${1} = ${2}\n\ + in ${3}\n\ +snippet where\n\ + where\n\ + ${1:fn} = ${2:undefined}\n\ +"; +exports.scope = "haskell"; + +}); diff --git a/htdocs/includes/ace/snippets/haskell_cabal.js b/htdocs/includes/ace/snippets/haskell_cabal.js new file mode 100644 index 00000000000..56d6e875e0e --- /dev/null +++ b/htdocs/includes/ace/snippets/haskell_cabal.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/haskell_cabal",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "haskell_cabal"; + +}); diff --git a/htdocs/includes/ace/snippets/haxe.js b/htdocs/includes/ace/snippets/haxe.js new file mode 100644 index 00000000000..3769547132a --- /dev/null +++ b/htdocs/includes/ace/snippets/haxe.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/haxe",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "haxe"; + +}); diff --git a/htdocs/includes/ace/snippets/hjson.js b/htdocs/includes/ace/snippets/hjson.js new file mode 100644 index 00000000000..b31e556360d --- /dev/null +++ b/htdocs/includes/ace/snippets/hjson.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/hjson",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/html.js b/htdocs/includes/ace/snippets/html.js new file mode 100644 index 00000000000..5b29fd50b5f --- /dev/null +++ b/htdocs/includes/ace/snippets/html.js @@ -0,0 +1,835 @@ +ace.define("ace/snippets/html",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Some useful Unicode entities\n\ +# Non-Breaking Space\n\ +snippet nbs\n\ +  \n\ +# ←\n\ +snippet left\n\ + ←\n\ +# →\n\ +snippet right\n\ + →\n\ +# ↑\n\ +snippet up\n\ + ↑\n\ +# ↓\n\ +snippet down\n\ + ↓\n\ +# ↩\n\ +snippet return\n\ + ↩\n\ +# ⇤\n\ +snippet backtab\n\ + ⇤\n\ +# ⇥\n\ +snippet tab\n\ + ⇥\n\ +# ⇧\n\ +snippet shift\n\ + ⇧\n\ +# ⌃\n\ +snippet ctrl\n\ + ⌃\n\ +# ⌅\n\ +snippet enter\n\ + ⌅\n\ +# ⌘\n\ +snippet cmd\n\ + ⌘\n\ +# ⌥\n\ +snippet option\n\ + ⌥\n\ +# ⌦\n\ +snippet delete\n\ + ⌦\n\ +# ⌫\n\ +snippet backspace\n\ + ⌫\n\ +# ⎋\n\ +snippet esc\n\ + ⎋\n\ +# Generic Doctype\n\ +snippet doctype HTML 4.01 Strict\n\ + \n\ +snippet doctype HTML 4.01 Transitional\n\ + \n\ +snippet doctype HTML 5\n\ + \n\ +snippet doctype XHTML 1.0 Frameset\n\ + \n\ +snippet doctype XHTML 1.0 Strict\n\ + \n\ +snippet doctype XHTML 1.0 Transitional\n\ + \n\ +snippet doctype XHTML 1.1\n\ + \n\ +# HTML Doctype 4.01 Strict\n\ +snippet docts\n\ + \n\ +# HTML Doctype 4.01 Transitional\n\ +snippet doct\n\ + \n\ +# HTML Doctype 5\n\ +snippet doct5\n\ + \n\ +# XHTML Doctype 1.0 Frameset\n\ +snippet docxf\n\ + \n\ +# XHTML Doctype 1.0 Strict\n\ +snippet docxs\n\ + \n\ +# XHTML Doctype 1.0 Transitional\n\ +snippet docxt\n\ + \n\ +# XHTML Doctype 1.1\n\ +snippet docx\n\ + \n\ +# Attributes\n\ +snippet attr\n\ + ${1:attribute}=\"${2:property}\"\n\ +snippet attr+\n\ + ${1:attribute}=\"${2:property}\" attr+${3}\n\ +snippet .\n\ + class=\"${1}\"${2}\n\ +snippet #\n\ + id=\"${1}\"${2}\n\ +snippet alt\n\ + alt=\"${1}\"${2}\n\ +snippet charset\n\ + charset=\"${1:utf-8}\"${2}\n\ +snippet data\n\ + data-${1}=\"${2:$1}\"${3}\n\ +snippet for\n\ + for=\"${1}\"${2}\n\ +snippet height\n\ + height=\"${1}\"${2}\n\ +snippet href\n\ + href=\"${1:#}\"${2}\n\ +snippet lang\n\ + lang=\"${1:en}\"${2}\n\ +snippet media\n\ + media=\"${1}\"${2}\n\ +snippet name\n\ + name=\"${1}\"${2}\n\ +snippet rel\n\ + rel=\"${1}\"${2}\n\ +snippet scope\n\ + scope=\"${1:row}\"${2}\n\ +snippet src\n\ + src=\"${1}\"${2}\n\ +snippet title=\n\ + title=\"${1}\"${2}\n\ +snippet type\n\ + type=\"${1}\"${2}\n\ +snippet value\n\ + value=\"${1}\"${2}\n\ +snippet width\n\ + width=\"${1}\"${2}\n\ +# Elements\n\ +snippet a\n\ + ${2:$1}\n\ +snippet a.\n\ + ${3:$1}\n\ +snippet a#\n\ + ${3:$1}\n\ +snippet a:ext\n\ + ${2:$1}\n\ +snippet a:mail\n\ + ${3:email me}\n\ +snippet abbr\n\ + ${2}\n\ +snippet address\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet area\n\ + \"${4}\"\n\ +snippet area+\n\ + \"${4}\"\n\ + area+${5}\n\ +snippet area:c\n\ + \"${3}\"\n\ +snippet area:d\n\ + \"${3}\"\n\ +snippet area:p\n\ + \"${3}\"\n\ +snippet area:r\n\ + \"${3}\"\n\ +snippet article\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet article.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet article#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet aside\n\ + \n\ +snippet aside.\n\ + \n\ +snippet aside#\n\ + \n\ +snippet audio\n\ + \n\ +snippet b\n\ + ${1}\n\ +snippet base\n\ + \n\ +snippet bdi\n\ + ${1}\n\ +snippet bdo\n\ + ${2}\n\ +snippet bdo:l\n\ + ${1}\n\ +snippet bdo:r\n\ + ${1}\n\ +snippet blockquote\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet body\n\ + \n\ + ${1}\n\ + \n\ +snippet br\n\ +
    ${1}\n\ +snippet button\n\ + \n\ +snippet button.\n\ + \n\ +snippet button#\n\ + \n\ +snippet button:s\n\ + \n\ +snippet button:r\n\ + \n\ +snippet canvas\n\ + \n\ + ${1}\n\ + \n\ +snippet caption\n\ + ${1}\n\ +snippet cite\n\ + ${1}\n\ +snippet code\n\ + ${1}\n\ +snippet col\n\ + ${1}\n\ +snippet col+\n\ + \n\ + col+${1}\n\ +snippet colgroup\n\ + \n\ + ${1}\n\ + \n\ +snippet colgroup+\n\ + \n\ + \n\ + col+${1}\n\ + \n\ +snippet command\n\ + \n\ +snippet command:c\n\ + \n\ +snippet command:r\n\ + \n\ +snippet datagrid\n\ + \n\ + ${1}\n\ + \n\ +snippet datalist\n\ + \n\ + ${1}\n\ + \n\ +snippet datatemplate\n\ + \n\ + ${1}\n\ + \n\ +snippet dd\n\ +
    ${1}
    \n\ +snippet dd.\n\ +
    ${2}
    \n\ +snippet dd#\n\ +
    ${2}
    \n\ +snippet del\n\ + ${1}\n\ +snippet details\n\ +
    ${1}
    \n\ +snippet dfn\n\ + ${1}\n\ +snippet dialog\n\ + \n\ + ${1}\n\ + \n\ +snippet div\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet div.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet div#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet dl\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet dl.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet dl#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet dl+\n\ +
    \n\ +
    ${1}
    \n\ +
    ${2}
    \n\ + dt+${3}\n\ +
    \n\ +snippet dt\n\ +
    ${1}
    \n\ +snippet dt.\n\ +
    ${2}
    \n\ +snippet dt#\n\ +
    ${2}
    \n\ +snippet dt+\n\ +
    ${1}
    \n\ +
    ${2}
    \n\ + dt+${3}\n\ +snippet em\n\ + ${1}\n\ +snippet embed\n\ + \n\ +snippet fieldset\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet fieldset.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet fieldset#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet fieldset+\n\ +
    \n\ + ${1}\n\ + ${2}\n\ +
    \n\ + fieldset+${3}\n\ +snippet figcaption\n\ +
    ${1}
    \n\ +snippet figure\n\ +
    ${1}
    \n\ +snippet footer\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet footer.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet footer#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet form\n\ +
    \n\ + ${3}\n\ +
    \n\ +snippet form.\n\ +
    \n\ + ${4}\n\ +
    \n\ +snippet form#\n\ +
    \n\ + ${4}\n\ +
    \n\ +snippet h1\n\ +

    ${1}

    \n\ +snippet h1.\n\ +

    ${2}

    \n\ +snippet h1#\n\ +

    ${2}

    \n\ +snippet h2\n\ +

    ${1}

    \n\ +snippet h2.\n\ +

    ${2}

    \n\ +snippet h2#\n\ +

    ${2}

    \n\ +snippet h3\n\ +

    ${1}

    \n\ +snippet h3.\n\ +

    ${2}

    \n\ +snippet h3#\n\ +

    ${2}

    \n\ +snippet h4\n\ +

    ${1}

    \n\ +snippet h4.\n\ +

    ${2}

    \n\ +snippet h4#\n\ +

    ${2}

    \n\ +snippet h5\n\ +
    ${1}
    \n\ +snippet h5.\n\ +
    ${2}
    \n\ +snippet h5#\n\ +
    ${2}
    \n\ +snippet h6\n\ +
    ${1}
    \n\ +snippet h6.\n\ +
    ${2}
    \n\ +snippet h6#\n\ +
    ${2}
    \n\ +snippet head\n\ + \n\ + \n\ +\n\ + ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}\n\ + ${2}\n\ + \n\ +snippet header\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet header.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet header#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet hgroup\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet hgroup.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet hr\n\ +
    ${1}\n\ +snippet html\n\ + \n\ + ${1}\n\ + \n\ +snippet xhtml\n\ + \n\ + ${1}\n\ + \n\ +snippet html5\n\ + \n\ + \n\ + \n\ + \n\ + ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}\n\ + ${2:meta}\n\ + \n\ + \n\ + ${3:body}\n\ + \n\ + \n\ +snippet i\n\ + ${1}\n\ +snippet iframe\n\ + ${2}\n\ +snippet iframe.\n\ + ${3}\n\ +snippet iframe#\n\ + ${3}\n\ +snippet img\n\ + \"${2}\"${3}\n\ +snippet img.\n\ + \"${3}\"${4}\n\ +snippet img#\n\ + \"${3}\"${4}\n\ +snippet input\n\ + ${5}\n\ +snippet input.\n\ + ${6}\n\ +snippet input:text\n\ + ${4}\n\ +snippet input:submit\n\ + ${4}\n\ +snippet input:hidden\n\ + ${4}\n\ +snippet input:button\n\ + ${4}\n\ +snippet input:image\n\ + ${5}\n\ +snippet input:checkbox\n\ + ${3}\n\ +snippet input:radio\n\ + ${3}\n\ +snippet input:color\n\ + ${4}\n\ +snippet input:date\n\ + ${4}\n\ +snippet input:datetime\n\ + ${4}\n\ +snippet input:datetime-local\n\ + ${4}\n\ +snippet input:email\n\ + ${4}\n\ +snippet input:file\n\ + ${4}\n\ +snippet input:month\n\ + ${4}\n\ +snippet input:number\n\ + ${4}\n\ +snippet input:password\n\ + ${4}\n\ +snippet input:range\n\ + ${4}\n\ +snippet input:reset\n\ + ${4}\n\ +snippet input:search\n\ + ${4}\n\ +snippet input:time\n\ + ${4}\n\ +snippet input:url\n\ + ${4}\n\ +snippet input:week\n\ + ${4}\n\ +snippet ins\n\ + ${1}\n\ +snippet kbd\n\ + ${1}\n\ +snippet keygen\n\ + ${1}\n\ +snippet label\n\ + \n\ +snippet label:i\n\ + \n\ + ${7}\n\ +snippet label:s\n\ + \n\ + \n\ +snippet legend\n\ + ${1}\n\ +snippet legend+\n\ + ${1}\n\ +snippet li\n\ +
  • ${1}
  • \n\ +snippet li.\n\ +
  • ${2}
  • \n\ +snippet li+\n\ +
  • ${1}
  • \n\ + li+${2}\n\ +snippet lia\n\ +
  • ${1}
  • \n\ +snippet lia+\n\ +
  • ${1}
  • \n\ + lia+${3}\n\ +snippet link\n\ + ${5}\n\ +snippet link:atom\n\ + ${2}\n\ +snippet link:css\n\ + ${4}\n\ +snippet link:favicon\n\ + ${2}\n\ +snippet link:rss\n\ + ${2}\n\ +snippet link:touch\n\ + ${2}\n\ +snippet map\n\ + \n\ + ${2}\n\ + \n\ +snippet map.\n\ + \n\ + ${3}\n\ + \n\ +snippet map#\n\ + \n\ + ${3}\n\ + \n\ +snippet map+\n\ + \n\ + \"${5}\"${6}\n\ + ${7}\n\ +snippet mark\n\ + ${1}\n\ +snippet menu\n\ + \n\ + ${1}\n\ + \n\ +snippet menu:c\n\ + \n\ + ${1}\n\ + \n\ +snippet menu:t\n\ + \n\ + ${1}\n\ + \n\ +snippet meta\n\ + ${3}\n\ +snippet meta:compat\n\ + ${3}\n\ +snippet meta:refresh\n\ + ${3}\n\ +snippet meta:utf\n\ + ${3}\n\ +snippet meter\n\ + ${1}\n\ +snippet nav\n\ + \n\ +snippet nav.\n\ + \n\ +snippet nav#\n\ + \n\ +snippet noscript\n\ + \n\ +snippet object\n\ + \n\ + ${3}\n\ + ${4}\n\ +# Embed QT Movie\n\ +snippet movie\n\ + \n\ + \n\ + \n\ + \n\ + \n\ + ${6}\n\ +snippet ol\n\ +
      \n\ + ${1}\n\ +
    \n\ +snippet ol.\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ol#\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ol+\n\ +
      \n\ +
    1. ${1}
    2. \n\ + li+${2}\n\ +
    \n\ +snippet opt\n\ + \n\ +snippet opt+\n\ + \n\ + opt+${3}\n\ +snippet optt\n\ + \n\ +snippet optgroup\n\ + \n\ + \n\ + opt+${3}\n\ + \n\ +snippet output\n\ + ${1}\n\ +snippet p\n\ +

    ${1}

    \n\ +snippet param\n\ + ${3}\n\ +snippet pre\n\ +
    \n\
    +		${1}\n\
    +	
    \n\ +snippet progress\n\ + ${1}\n\ +snippet q\n\ + ${1}\n\ +snippet rp\n\ + ${1}\n\ +snippet rt\n\ + ${1}\n\ +snippet ruby\n\ + \n\ + ${1}\n\ + \n\ +snippet s\n\ + ${1}\n\ +snippet samp\n\ + \n\ + ${1}\n\ + \n\ +snippet script\n\ + \n\ +snippet scriptsrc\n\ + \n\ +snippet section\n\ +
    \n\ + ${1}\n\ +
    \n\ +snippet section.\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet section#\n\ +
    \n\ + ${2}\n\ +
    \n\ +snippet select\n\ + \n\ +snippet select.\n\ + \n\ +snippet select+\n\ + \n\ +snippet small\n\ + ${1}\n\ +snippet source\n\ + \n\ +snippet span\n\ + ${1}\n\ +snippet strong\n\ + ${1}\n\ +snippet style\n\ + \n\ +snippet sub\n\ + ${1}\n\ +snippet summary\n\ + \n\ + ${1}\n\ + \n\ +snippet sup\n\ + ${1}\n\ +snippet table\n\ + \n\ + ${2}\n\ +
    \n\ +snippet table.\n\ + \n\ + ${3}\n\ +
    \n\ +snippet table#\n\ + \n\ + ${3}\n\ +
    \n\ +snippet tbody\n\ + \n\ + ${1}\n\ + \n\ +snippet td\n\ + ${1}\n\ +snippet td.\n\ + ${2}\n\ +snippet td#\n\ + ${2}\n\ +snippet td+\n\ + ${1}\n\ + td+${2}\n\ +snippet textarea\n\ + ${6}\n\ +snippet tfoot\n\ + \n\ + ${1}\n\ + \n\ +snippet th\n\ + ${1}\n\ +snippet th.\n\ + ${2}\n\ +snippet th#\n\ + ${2}\n\ +snippet th+\n\ + ${1}\n\ + th+${2}\n\ +snippet thead\n\ + \n\ + ${1}\n\ + \n\ +snippet time\n\ + \n\ +snippet title\n\ + ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`}\n\ +snippet tr\n\ + \n\ + ${1}\n\ + \n\ +snippet tr+\n\ + \n\ + ${1}\n\ + td+${2}\n\ + \n\ +snippet track\n\ + ${5}${6}\n\ +snippet ul\n\ +
      \n\ + ${1}\n\ +
    \n\ +snippet ul.\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ul#\n\ +
      \n\ + ${2}\n\ +
    \n\ +snippet ul+\n\ +
      \n\ +
    • ${1}
    • \n\ + li+${2}\n\ +
    \n\ +snippet var\n\ + ${1}\n\ +snippet video\n\ + ${8}\n\ +snippet wbr\n\ + ${1}\n\ +"; +exports.scope = "html"; + +}); diff --git a/htdocs/includes/ace/snippets/html_elixir.js b/htdocs/includes/ace/snippets/html_elixir.js new file mode 100644 index 00000000000..66d9eb384de --- /dev/null +++ b/htdocs/includes/ace/snippets/html_elixir.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/html_elixir",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "html_elixir"; + +}); diff --git a/htdocs/includes/ace/snippets/html_ruby.js b/htdocs/includes/ace/snippets/html_ruby.js new file mode 100644 index 00000000000..83676f79234 --- /dev/null +++ b/htdocs/includes/ace/snippets/html_ruby.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/html_ruby",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "html_ruby"; + +}); diff --git a/htdocs/includes/ace/snippets/ini.js b/htdocs/includes/ace/snippets/ini.js new file mode 100644 index 00000000000..ad9bf52ff6d --- /dev/null +++ b/htdocs/includes/ace/snippets/ini.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/ini",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ini"; + +}); diff --git a/htdocs/includes/ace/snippets/io.js b/htdocs/includes/ace/snippets/io.js new file mode 100644 index 00000000000..431002b41ab --- /dev/null +++ b/htdocs/includes/ace/snippets/io.js @@ -0,0 +1,69 @@ +ace.define("ace/snippets/io",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippets = [ + { + "content": "assertEquals(${1:expected}, ${2:expr})", + "name": "assertEquals", + "scope": "io", + "tabTrigger": "ae" + }, + { + "content": "${1:${2:newValue} := ${3:Object} }clone do(\n\t$0\n)", + "name": "clone do", + "scope": "io", + "tabTrigger": "cdo" + }, + { + "content": "docSlot(\"${1:slotName}\", \"${2:documentation}\")", + "name": "docSlot", + "scope": "io", + "tabTrigger": "ds" + }, + { + "content": "(${1:header,}\n\t${2:body}\n)$0", + "keyEquivalent": "@(", + "name": "Indented Bracketed Line", + "scope": "io", + "tabTrigger": "(" + }, + { + "content": "\n\t$0\n", + "keyEquivalent": "\r", + "name": "Special: Return Inside Empty Parenthesis", + "scope": "io meta.empty-parenthesis.io, io meta.comma-parenthesis.io" + }, + { + "content": "${1:methodName} := method(${2:args,}\n\t$0\n)", + "name": "method", + "scope": "io", + "tabTrigger": "m" + }, + { + "content": "newSlot(\"${1:slotName}\", ${2:defaultValue}, \"${3:docString}\")$0", + "name": "newSlot", + "scope": "io", + "tabTrigger": "ns" + }, + { + "content": "${1:name} := Object clone do(\n\t$0\n)", + "name": "Object clone do", + "scope": "io", + "tabTrigger": "ocdo" + }, + { + "content": "test${1:SomeFeature} := method(\n\t$0\n)", + "name": "testMethod", + "scope": "io", + "tabTrigger": "ts" + }, + { + "content": "${1:Something}Test := ${2:UnitTest} clone do(\n\t$0\n)", + "name": "UnitTest", + "scope": "io", + "tabTrigger": "ut" + } +]; +exports.scope = "io"; + +}); diff --git a/htdocs/includes/ace/snippets/jack.js b/htdocs/includes/ace/snippets/jack.js new file mode 100644 index 00000000000..eca7f2937b8 --- /dev/null +++ b/htdocs/includes/ace/snippets/jack.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/jack",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jack"; + +}); diff --git a/htdocs/includes/ace/snippets/jade.js b/htdocs/includes/ace/snippets/jade.js new file mode 100644 index 00000000000..f516d0c040a --- /dev/null +++ b/htdocs/includes/ace/snippets/jade.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/jade",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jade"; + +}); diff --git a/htdocs/includes/ace/snippets/java.js b/htdocs/includes/ace/snippets/java.js new file mode 100644 index 00000000000..1bc92acad0e --- /dev/null +++ b/htdocs/includes/ace/snippets/java.js @@ -0,0 +1,247 @@ +ace.define("ace/snippets/java",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "## Access Modifiers\n\ +snippet po\n\ + protected\n\ +snippet pu\n\ + public\n\ +snippet pr\n\ + private\n\ +##\n\ +## Annotations\n\ +snippet before\n\ + @Before\n\ + static void ${1:intercept}(${2:args}) { ${3} }\n\ +snippet mm\n\ + @ManyToMany\n\ + ${1}\n\ +snippet mo\n\ + @ManyToOne\n\ + ${1}\n\ +snippet om\n\ + @OneToMany${1:(cascade=CascadeType.ALL)}\n\ + ${2}\n\ +snippet oo\n\ + @OneToOne\n\ + ${1}\n\ +##\n\ +## Basic Java packages and import\n\ +snippet im\n\ + import\n\ +snippet j.b\n\ + java.beans.\n\ +snippet j.i\n\ + java.io.\n\ +snippet j.m\n\ + java.math.\n\ +snippet j.n\n\ + java.net.\n\ +snippet j.u\n\ + java.util.\n\ +##\n\ +## Class\n\ +snippet cl\n\ + class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ +snippet in\n\ + interface ${1:`Filename(\"\", \"untitled\")`} ${2:extends Parent}${3}\n\ +snippet tc\n\ + public class ${1:`Filename()`} extends ${2:TestCase}\n\ +##\n\ +## Class Enhancements\n\ +snippet ext\n\ + extends \n\ +snippet imp\n\ + implements\n\ +##\n\ +## Comments\n\ +snippet /*\n\ + /*\n\ + * ${1}\n\ + */\n\ +##\n\ +## Constants\n\ +snippet co\n\ + static public final ${1:String} ${2:var} = ${3};${4}\n\ +snippet cos\n\ + static public final String ${1:var} = \"${2}\";${3}\n\ +##\n\ +## Control Statements\n\ +snippet case\n\ + case ${1}:\n\ + ${2}\n\ +snippet def\n\ + default:\n\ + ${2}\n\ +snippet el\n\ + else\n\ +snippet elif\n\ + else if (${1}) ${2}\n\ +snippet if\n\ + if (${1}) ${2}\n\ +snippet sw\n\ + switch (${1}) {\n\ + ${2}\n\ + }\n\ +##\n\ +## Create a Method\n\ +snippet m\n\ + ${1:void} ${2:method}(${3}) ${4:throws }${5}\n\ +##\n\ +## Create a Variable\n\ +snippet v\n\ + ${1:String} ${2:var}${3: = null}${4};${5}\n\ +##\n\ +## Enhancements to Methods, variables, classes, etc.\n\ +snippet ab\n\ + abstract\n\ +snippet fi\n\ + final\n\ +snippet st\n\ + static\n\ +snippet sy\n\ + synchronized\n\ +##\n\ +## Error Methods\n\ +snippet err\n\ + System.err.print(\"${1:Message}\");\n\ +snippet errf\n\ + System.err.printf(\"${1:Message}\", ${2:exception});\n\ +snippet errln\n\ + System.err.println(\"${1:Message}\");\n\ +##\n\ +## Exception Handling\n\ +snippet as\n\ + assert ${1:test} : \"${2:Failure message}\";${3}\n\ +snippet ca\n\ + catch(${1:Exception} ${2:e}) ${3}\n\ +snippet thr\n\ + throw\n\ +snippet ths\n\ + throws\n\ +snippet try\n\ + try {\n\ + ${3}\n\ + } catch(${1:Exception} ${2:e}) {\n\ + }\n\ +snippet tryf\n\ + try {\n\ + ${3}\n\ + } catch(${1:Exception} ${2:e}) {\n\ + } finally {\n\ + }\n\ +##\n\ +## Find Methods\n\ +snippet findall\n\ + List<${1:listName}> ${2:items} = ${1}.findAll();${3}\n\ +snippet findbyid\n\ + ${1:var} ${2:item} = ${1}.findById(${3});${4}\n\ +##\n\ +## Javadocs\n\ +snippet /**\n\ + /**\n\ + * ${1}\n\ + */\n\ +snippet @au\n\ + @author `system(\"grep \\`id -un\\` /etc/passwd | cut -d \\\":\\\" -f5 | cut -d \\\",\\\" -f1\")`\n\ +snippet @br\n\ + @brief ${1:Description}\n\ +snippet @fi\n\ + @file ${1:`Filename()`}.java\n\ +snippet @pa\n\ + @param ${1:param}\n\ +snippet @re\n\ + @return ${1:param}\n\ +##\n\ +## Logger Methods\n\ +snippet debug\n\ + Logger.debug(${1:param});${2}\n\ +snippet error\n\ + Logger.error(${1:param});${2}\n\ +snippet info\n\ + Logger.info(${1:param});${2}\n\ +snippet warn\n\ + Logger.warn(${1:param});${2}\n\ +##\n\ +## Loops\n\ +snippet enfor\n\ + for (${1} : ${2}) ${3}\n\ +snippet for\n\ + for (${1}; ${2}; ${3}) ${4}\n\ +snippet wh\n\ + while (${1}) ${2}\n\ +##\n\ +## Main method\n\ +snippet main\n\ + public static void main (String[] args) {\n\ + ${1:/* code */}\n\ + }\n\ +##\n\ +## Print Methods\n\ +snippet print\n\ + System.out.print(\"${1:Message}\");\n\ +snippet printf\n\ + System.out.printf(\"${1:Message}\", ${2:args});\n\ +snippet println\n\ + System.out.println(${1});\n\ +##\n\ +## Render Methods\n\ +snippet ren\n\ + render(${1:param});${2}\n\ +snippet rena\n\ + renderArgs.put(\"${1}\", ${2});${3}\n\ +snippet renb\n\ + renderBinary(${1:param});${2}\n\ +snippet renj\n\ + renderJSON(${1:param});${2}\n\ +snippet renx\n\ + renderXml(${1:param});${2}\n\ +##\n\ +## Setter and Getter Methods\n\ +snippet set\n\ + ${1:public} void set${3:}(${2:String} ${4:}){\n\ + this.$4 = $4;\n\ + }\n\ +snippet get\n\ + ${1:public} ${2:String} get${3:}(){\n\ + return this.${4:};\n\ + }\n\ +##\n\ +## Terminate Methods or Loops\n\ +snippet re\n\ + return\n\ +snippet br\n\ + break;\n\ +##\n\ +## Test Methods\n\ +snippet t\n\ + public void test${1:Name}() throws Exception {\n\ + ${2}\n\ + }\n\ +snippet test\n\ + @Test\n\ + public void test${1:Name}() throws Exception {\n\ + ${2}\n\ + }\n\ +##\n\ +## Utils\n\ +snippet Sc\n\ + Scanner\n\ +##\n\ +## Miscellaneous\n\ +snippet action\n\ + public static void ${1:index}(${2:args}) { ${3} }\n\ +snippet rnf\n\ + notFound(${1:param});${2}\n\ +snippet rnfin\n\ + notFoundIfNull(${1:param});${2}\n\ +snippet rr\n\ + redirect(${1:param});${2}\n\ +snippet ru\n\ + unauthorized(${1:param});${2}\n\ +snippet unless\n\ + (unless=${1:param});${2}\n\ +"; +exports.scope = "java"; + +}); diff --git a/htdocs/includes/ace/snippets/javascript.js b/htdocs/includes/ace/snippets/javascript.js new file mode 100644 index 00000000000..f3f998ad636 --- /dev/null +++ b/htdocs/includes/ace/snippets/javascript.js @@ -0,0 +1,202 @@ +ace.define("ace/snippets/javascript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Prototype\n\ +snippet proto\n\ + ${1:class_name}.prototype.${2:method_name} = function(${3:first_argument}) {\n\ + ${4:// body...}\n\ + };\n\ +# Function\n\ +snippet fun\n\ + function ${1?:function_name}(${2:argument}) {\n\ + ${3:// body...}\n\ + }\n\ +# Anonymous Function\n\ +regex /((=)\\s*|(:)\\s*|(\\()|\\b)/f/(\\))?/\n\ +snippet f\n\ + function${M1?: ${1:functionName}}($2) {\n\ + ${0:$TM_SELECTED_TEXT}\n\ + }${M2?;}${M3?,}${M4?)}\n\ +# Immediate function\n\ +trigger \\(?f\\(\n\ +endTrigger \\)?\n\ +snippet f(\n\ + (function(${1}) {\n\ + ${0:${TM_SELECTED_TEXT:/* code */}}\n\ + }(${1}));\n\ +# if\n\ +snippet if\n\ + if (${1:true}) {\n\ + ${0}\n\ + }\n\ +# if ... else\n\ +snippet ife\n\ + if (${1:true}) {\n\ + ${2}\n\ + } else {\n\ + ${0}\n\ + }\n\ +# tertiary conditional\n\ +snippet ter\n\ + ${1:/* condition */} ? ${2:a} : ${3:b}\n\ +# switch\n\ +snippet switch\n\ + switch (${1:expression}) {\n\ + case '${3:case}':\n\ + ${4:// code}\n\ + break;\n\ + ${5}\n\ + default:\n\ + ${2:// code}\n\ + }\n\ +# case\n\ +snippet case\n\ + case '${1:case}':\n\ + ${2:// code}\n\ + break;\n\ + ${3}\n\ +\n\ +# while (...) {...}\n\ +snippet wh\n\ + while (${1:/* condition */}) {\n\ + ${0:/* code */}\n\ + }\n\ +# try\n\ +snippet try\n\ + try {\n\ + ${0:/* code */}\n\ + } catch (e) {}\n\ +# do...while\n\ +snippet do\n\ + do {\n\ + ${2:/* code */}\n\ + } while (${1:/* condition */});\n\ +# Object Method\n\ +snippet :f\n\ +regex /([,{[])|^\\s*/:f/\n\ + ${1:method_name}: function(${2:attribute}) {\n\ + ${0}\n\ + }${3:,}\n\ +# setTimeout function\n\ +snippet setTimeout\n\ +regex /\\b/st|timeout|setTimeo?u?t?/\n\ + setTimeout(function() {${3:$TM_SELECTED_TEXT}}, ${1:10});\n\ +# Get Elements\n\ +snippet gett\n\ + getElementsBy${1:TagName}('${2}')${3}\n\ +# Get Element\n\ +snippet get\n\ + getElementBy${1:Id}('${2}')${3}\n\ +# console.log (Firebug)\n\ +snippet cl\n\ + console.log(${1});\n\ +# return\n\ +snippet ret\n\ + return ${1:result}\n\ +# for (property in object ) { ... }\n\ +snippet fori\n\ + for (var ${1:prop} in ${2:Things}) {\n\ + ${0:$2[$1]}\n\ + }\n\ +# hasOwnProperty\n\ +snippet has\n\ + hasOwnProperty(${1})\n\ +# docstring\n\ +snippet /**\n\ + /**\n\ + * ${1:description}\n\ + *\n\ + */\n\ +snippet @par\n\ +regex /^\\s*\\*\\s*/@(para?m?)?/\n\ + @param {${1:type}} ${2:name} ${3:description}\n\ +snippet @ret\n\ + @return {${1:type}} ${2:description}\n\ +# JSON.parse\n\ +snippet jsonp\n\ + JSON.parse(${1:jstr});\n\ +# JSON.stringify\n\ +snippet jsons\n\ + JSON.stringify(${1:object});\n\ +# self-defining function\n\ +snippet sdf\n\ + var ${1:function_name} = function(${2:argument}) {\n\ + ${3:// initial code ...}\n\ +\n\ + $1 = function($2) {\n\ + ${4:// main code}\n\ + };\n\ + }\n\ +# singleton\n\ +snippet sing\n\ + function ${1:Singleton} (${2:argument}) {\n\ + // the cached instance\n\ + var instance;\n\ +\n\ + // rewrite the constructor\n\ + $1 = function $1($2) {\n\ + return instance;\n\ + };\n\ + \n\ + // carry over the prototype properties\n\ + $1.prototype = this;\n\ +\n\ + // the instance\n\ + instance = new $1();\n\ +\n\ + // reset the constructor pointer\n\ + instance.constructor = $1;\n\ +\n\ + ${3:// code ...}\n\ +\n\ + return instance;\n\ + }\n\ +# class\n\ +snippet class\n\ +regex /^\\s*/clas{0,2}/\n\ + var ${1:class} = function(${20}) {\n\ + $40$0\n\ + };\n\ + \n\ + (function() {\n\ + ${60:this.prop = \"\"}\n\ + }).call(${1:class}.prototype);\n\ + \n\ + exports.${1:class} = ${1:class};\n\ +# \n\ +snippet for-\n\ + for (var ${1:i} = ${2:Things}.length; ${1:i}--; ) {\n\ + ${0:${2:Things}[${1:i}];}\n\ + }\n\ +# for (...) {...}\n\ +snippet for\n\ + for (var ${1:i} = 0; $1 < ${2:Things}.length; $1++) {\n\ + ${3:$2[$1]}$0\n\ + }\n\ +# for (...) {...} (Improved Native For-Loop)\n\ +snippet forr\n\ + for (var ${1:i} = ${2:Things}.length - 1; $1 >= 0; $1--) {\n\ + ${3:$2[$1]}$0\n\ + }\n\ +\n\ +\n\ +#modules\n\ +snippet def\n\ + define(function(require, exports, module) {\n\ + \"use strict\";\n\ + var ${1/.*\\///} = require(\"${1}\");\n\ + \n\ + $TM_SELECTED_TEXT\n\ + });\n\ +snippet req\n\ +guard ^\\s*\n\ + var ${1/.*\\///} = require(\"${1}\");\n\ + $0\n\ +snippet requ\n\ +guard ^\\s*\n\ + var ${1/.*\\/(.)/\\u$1/} = require(\"${1}\").${1/.*\\/(.)/\\u$1/};\n\ + $0\n\ +"; +exports.scope = "javascript"; + +}); diff --git a/htdocs/includes/ace/snippets/json.js b/htdocs/includes/ace/snippets/json.js new file mode 100644 index 00000000000..cc02e651367 --- /dev/null +++ b/htdocs/includes/ace/snippets/json.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/json",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "json"; + +}); diff --git a/htdocs/includes/ace/snippets/jsoniq.js b/htdocs/includes/ace/snippets/jsoniq.js new file mode 100644 index 00000000000..9c5eaf61379 --- /dev/null +++ b/htdocs/includes/ace/snippets/jsoniq.js @@ -0,0 +1,68 @@ +ace.define("ace/snippets/jsoniq",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet for\n\ + for $${1:item} in ${2:expr}\n\ +snippet return\n\ + return ${1:expr}\n\ +snippet import\n\ + import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ +snippet some\n\ + some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet every\n\ + every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet if\n\ + if(${1:true}) then ${2:expr} else ${3:true}\n\ +snippet switch\n\ + switch(${1:\"foo\"})\n\ + case ${2:\"foo\"}\n\ + return ${3:true}\n\ + default return ${4:false}\n\ +snippet try\n\ + try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ +snippet tumbling\n\ + for tumbling window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet sliding\n\ + for sliding window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet let\n\ + let $${1:varname} := ${2:expr}\n\ +snippet group\n\ + group by $${1:varname} := ${2:expr}\n\ +snippet order\n\ + order by ${1:expr} ${2:descending}\n\ +snippet stable\n\ + stable order by ${1:expr}\n\ +snippet count\n\ + count $${1:varname}\n\ +snippet ordered\n\ + ordered { ${1:expr} }\n\ +snippet unordered\n\ + unordered { ${1:expr} }\n\ +snippet treat \n\ + treat as ${1:expr}\n\ +snippet castable\n\ + castable as ${1:atomicType}\n\ +snippet cast\n\ + cast as ${1:atomicType}\n\ +snippet typeswitch\n\ + typeswitch(${1:expr})\n\ + case ${2:type} return ${3:expr}\n\ + default return ${4:expr}\n\ +snippet var\n\ + declare variable $${1:varname} := ${2:expr};\n\ +snippet fn\n\ + declare function ${1:ns}:${2:name}(){\n\ + ${3:expr}\n\ + };\n\ +snippet module\n\ + module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ +"; +exports.scope = "jsoniq"; + +}); diff --git a/htdocs/includes/ace/snippets/jsp.js b/htdocs/includes/ace/snippets/jsp.js new file mode 100644 index 00000000000..6428e5be570 --- /dev/null +++ b/htdocs/includes/ace/snippets/jsp.js @@ -0,0 +1,106 @@ +ace.define("ace/snippets/jsp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet @page\n\ + <%@page contentType=\"text/html\" pageEncoding=\"UTF-8\"%>\n\ +snippet jstl\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\ +snippet jstl:c\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/core\" prefix=\"c\" %>\n\ +snippet jstl:fn\n\ + <%@ taglib uri=\"http://java.sun.com/jsp/jstl/functions\" prefix=\"fn\" %>\n\ +snippet cpath\n\ + ${pageContext.request.contextPath}\n\ +snippet cout\n\ + \n\ +snippet cset\n\ + \n\ +snippet cremove\n\ + \n\ +snippet ccatch\n\ + \n\ +snippet cif\n\ + \n\ + ${2}\n\ + \n\ +snippet cchoose\n\ + \n\ + ${1}\n\ + \n\ +snippet cwhen\n\ + \n\ + ${2}\n\ + \n\ +snippet cother\n\ + \n\ + ${1}\n\ + \n\ +snippet cfore\n\ + \n\ + ${4:}\n\ + \n\ +snippet cfort\n\ + ${2:item1,item2,item3}\n\ + \n\ + ${5:}\n\ + \n\ +snippet cparam\n\ + \n\ +snippet cparam+\n\ + \n\ + cparam+${3}\n\ +snippet cimport\n\ + \n\ +snippet cimport+\n\ + \n\ + \n\ + cparam+${4}\n\ + \n\ +snippet curl\n\ + \n\ + ${3}\n\ +snippet curl+\n\ + \n\ + \n\ + cparam+${6}\n\ + \n\ + ${3}\n\ +snippet credirect\n\ + \n\ +snippet contains\n\ + ${fn:contains(${1:string}, ${2:substr})}\n\ +snippet contains:i\n\ + ${fn:containsIgnoreCase(${1:string}, ${2:substr})}\n\ +snippet endswith\n\ + ${fn:endsWith(${1:string}, ${2:suffix})}\n\ +snippet escape\n\ + ${fn:escapeXml(${1:string})}\n\ +snippet indexof\n\ + ${fn:indexOf(${1:string}, ${2:substr})}\n\ +snippet join\n\ + ${fn:join(${1:collection}, ${2:delims})}\n\ +snippet length\n\ + ${fn:length(${1:collection_or_string})}\n\ +snippet replace\n\ + ${fn:replace(${1:string}, ${2:substr}, ${3:replace})}\n\ +snippet split\n\ + ${fn:split(${1:string}, ${2:delims})}\n\ +snippet startswith\n\ + ${fn:startsWith(${1:string}, ${2:prefix})}\n\ +snippet substr\n\ + ${fn:substring(${1:string}, ${2:begin}, ${3:end})}\n\ +snippet substr:a\n\ + ${fn:substringAfter(${1:string}, ${2:substr})}\n\ +snippet substr:b\n\ + ${fn:substringBefore(${1:string}, ${2:substr})}\n\ +snippet lc\n\ + ${fn:toLowerCase(${1:string})}\n\ +snippet uc\n\ + ${fn:toUpperCase(${1:string})}\n\ +snippet trim\n\ + ${fn:trim(${1:string})}\n\ +"; +exports.scope = "jsp"; + +}); diff --git a/htdocs/includes/ace/snippets/jsx.js b/htdocs/includes/ace/snippets/jsx.js new file mode 100644 index 00000000000..9f39a9431d5 --- /dev/null +++ b/htdocs/includes/ace/snippets/jsx.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/jsx",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "jsx"; + +}); diff --git a/htdocs/includes/ace/snippets/julia.js b/htdocs/includes/ace/snippets/julia.js new file mode 100644 index 00000000000..e81370f75da --- /dev/null +++ b/htdocs/includes/ace/snippets/julia.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/julia",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "julia"; + +}); diff --git a/htdocs/includes/ace/snippets/kotlin.js b/htdocs/includes/ace/snippets/kotlin.js new file mode 100644 index 00000000000..d78bd46332b --- /dev/null +++ b/htdocs/includes/ace/snippets/kotlin.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/kotlin",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/latex.js b/htdocs/includes/ace/snippets/latex.js new file mode 100644 index 00000000000..e6fe7612498 --- /dev/null +++ b/htdocs/includes/ace/snippets/latex.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/latex",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "latex"; + +}); diff --git a/htdocs/includes/ace/snippets/lean.js b/htdocs/includes/ace/snippets/lean.js new file mode 100644 index 00000000000..cff1657099a --- /dev/null +++ b/htdocs/includes/ace/snippets/lean.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/lean",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lean"; + +}); diff --git a/htdocs/includes/ace/snippets/less.js b/htdocs/includes/ace/snippets/less.js new file mode 100644 index 00000000000..148aa0cd3d5 --- /dev/null +++ b/htdocs/includes/ace/snippets/less.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/less",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "less"; + +}); diff --git a/htdocs/includes/ace/snippets/liquid.js b/htdocs/includes/ace/snippets/liquid.js new file mode 100644 index 00000000000..c7f708dc628 --- /dev/null +++ b/htdocs/includes/ace/snippets/liquid.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/liquid",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "liquid"; + +}); diff --git a/htdocs/includes/ace/snippets/lisp.js b/htdocs/includes/ace/snippets/lisp.js new file mode 100644 index 00000000000..410b807fd3a --- /dev/null +++ b/htdocs/includes/ace/snippets/lisp.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/lisp",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lisp"; + +}); diff --git a/htdocs/includes/ace/snippets/live_script.js b/htdocs/includes/ace/snippets/live_script.js new file mode 100644 index 00000000000..80a9da89393 --- /dev/null +++ b/htdocs/includes/ace/snippets/live_script.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/live_script",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/livescript.js b/htdocs/includes/ace/snippets/livescript.js new file mode 100644 index 00000000000..37ea1c14af4 --- /dev/null +++ b/htdocs/includes/ace/snippets/livescript.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/livescript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "livescript"; + +}); diff --git a/htdocs/includes/ace/snippets/logiql.js b/htdocs/includes/ace/snippets/logiql.js new file mode 100644 index 00000000000..77943f3a99d --- /dev/null +++ b/htdocs/includes/ace/snippets/logiql.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/logiql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "logiql"; + +}); diff --git a/htdocs/includes/ace/snippets/lsl.js b/htdocs/includes/ace/snippets/lsl.js new file mode 100644 index 00000000000..717a5cf32c8 --- /dev/null +++ b/htdocs/includes/ace/snippets/lsl.js @@ -0,0 +1,1239 @@ +ace.define("ace/snippets/lsl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet @\n\ + @${1:label};\n\ +snippet CAMERA_ACTIVE\n\ + CAMERA_ACTIVE, ${1:integer isActive}, $0\n\ +snippet CAMERA_BEHINDNESS_ANGLE\n\ + CAMERA_BEHINDNESS_ANGLE, ${1:float degrees}, $0\n\ +snippet CAMERA_BEHINDNESS_LAG\n\ + CAMERA_BEHINDNESS_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_DISTANCE\n\ + CAMERA_DISTANCE, ${1:float meters}, $0\n\ +snippet CAMERA_FOCUS\n\ + CAMERA_FOCUS, ${1:vector position}, $0\n\ +snippet CAMERA_FOCUS_LAG\n\ + CAMERA_FOCUS_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_FOCUS_LOCKED\n\ + CAMERA_FOCUS_LOCKED, ${1:integer isLocked}, $0\n\ +snippet CAMERA_FOCUS_OFFSET\n\ + CAMERA_FOCUS_OFFSET, ${1:vector meters}, $0\n\ +snippet CAMERA_FOCUS_THRESHOLD\n\ + CAMERA_FOCUS_THRESHOLD, ${1:float meters}, $0\n\ +snippet CAMERA_PITCH\n\ + CAMERA_PITCH, ${1:float degrees}, $0\n\ +snippet CAMERA_POSITION\n\ + CAMERA_POSITION, ${1:vector position}, $0\n\ +snippet CAMERA_POSITION_LAG\n\ + CAMERA_POSITION_LAG, ${1:float seconds}, $0\n\ +snippet CAMERA_POSITION_LOCKED\n\ + CAMERA_POSITION_LOCKED, ${1:integer isLocked}, $0\n\ +snippet CAMERA_POSITION_THRESHOLD\n\ + CAMERA_POSITION_THRESHOLD, ${1:float meters}, $0\n\ +snippet CHARACTER_AVOIDANCE_MODE\n\ + CHARACTER_AVOIDANCE_MODE, ${1:integer flags}, $0\n\ +snippet CHARACTER_DESIRED_SPEED\n\ + CHARACTER_DESIRED_SPEED, ${1:float speed}, $0\n\ +snippet CHARACTER_DESIRED_TURN_SPEED\n\ + CHARACTER_DESIRED_TURN_SPEED, ${1:float speed}, $0\n\ +snippet CHARACTER_LENGTH\n\ + CHARACTER_LENGTH, ${1:float length}, $0\n\ +snippet CHARACTER_MAX_TURN_RADIUS\n\ + CHARACTER_MAX_TURN_RADIUS, ${1:float radius}, $0\n\ +snippet CHARACTER_ORIENTATION\n\ + CHARACTER_ORIENTATION, ${1:integer orientation}, $0\n\ +snippet CHARACTER_RADIUS\n\ + CHARACTER_RADIUS, ${1:float radius}, $0\n\ +snippet CHARACTER_STAY_WITHIN_PARCEL\n\ + CHARACTER_STAY_WITHIN_PARCEL, ${1:boolean stay}, $0\n\ +snippet CHARACTER_TYPE\n\ + CHARACTER_TYPE, ${1:integer type}, $0\n\ +snippet HTTP_BODY_MAXLENGTH\n\ + HTTP_BODY_MAXLENGTH, ${1:integer length}, $0\n\ +snippet HTTP_CUSTOM_HEADER\n\ + HTTP_CUSTOM_HEADER, ${1:string name}, ${2:string value}, $0\n\ +snippet HTTP_METHOD\n\ + HTTP_METHOD, ${1:string method}, $0\n\ +snippet HTTP_MIMETYPE\n\ + HTTP_MIMETYPE, ${1:string mimeType}, $0\n\ +snippet HTTP_PRAGMA_NO_CACHE\n\ + HTTP_PRAGMA_NO_CACHE, ${1:integer send_header}, $0\n\ +snippet HTTP_VERBOSE_THROTTLE\n\ + HTTP_VERBOSE_THROTTLE, ${1:integer noisy}, $0\n\ +snippet HTTP_VERIFY_CERT\n\ + HTTP_VERIFY_CERT, ${1:integer verify}, $0\n\ +snippet RC_DATA_FLAGS\n\ + RC_DATA_FLAGS, ${1:integer flags}, $0\n\ +snippet RC_DETECT_PHANTOM\n\ + RC_DETECT_PHANTOM, ${1:integer dectedPhantom}, $0\n\ +snippet RC_MAX_HITS\n\ + RC_MAX_HITS, ${1:integer maxHits}, $0\n\ +snippet RC_REJECT_TYPES\n\ + RC_REJECT_TYPES, ${1:integer filterMask}, $0\n\ +snippet at_rot_target\n\ + at_rot_target(${1:integer handle}, ${2:rotation targetrot}, ${3:rotation ourrot})\n\ + {\n\ + $0\n\ + }\n\ +snippet at_target\n\ + at_target(${1:integer tnum}, ${2:vector targetpos}, ${3:vector ourpos})\n\ + {\n\ + $0\n\ + }\n\ +snippet attach\n\ + attach(${1:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet changed\n\ + changed(${1:integer change})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision\n\ + collision(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision_end\n\ + collision_end(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet collision_start\n\ + collision_start(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet control\n\ + control(${1:key id}, ${2:integer level}, ${3:integer edge})\n\ + {\n\ + $0\n\ + }\n\ +snippet dataserver\n\ + dataserver(${1:key query_id}, ${2:string data})\n\ + {\n\ + $0\n\ + }\n\ +snippet do\n\ + do\n\ + {\n\ + $0\n\ + }\n\ + while (${1:condition});\n\ +snippet else\n\ + else\n\ + {\n\ + $0\n\ + }\n\ +snippet email\n\ + email(${1:string time}, ${2:string address}, ${3:string subject}, ${4:string message}, ${5:integer num_left})\n\ + {\n\ + $0\n\ + }\n\ +snippet experience_permissions\n\ + experience_permissions(${1:key agent_id})\n\ + {\n\ + $0\n\ + }\n\ +snippet experience_permissions_denied\n\ + experience_permissions_denied(${1:key agent_id}, ${2:integer reason})\n\ + {\n\ + $0\n\ + }\n\ +snippet for\n\ + for (${1:start}; ${3:condition}; ${3:step})\n\ + {\n\ + $0\n\ + }\n\ +snippet http_request\n\ + http_request(${1:key request_id}, ${2:string method}, ${3:string body})\n\ + {\n\ + $0\n\ + }\n\ +snippet http_response\n\ + http_response(${1:key request_id}, ${2:integer status}, ${3:list metadata}, ${4:string body})\n\ + {\n\ + $0\n\ + }\n\ +snippet if\n\ + if (${1:condition})\n\ + {\n\ + $0\n\ + }\n\ +snippet jump\n\ + jump ${1:label};\n\ +snippet land_collision\n\ + land_collision(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet land_collision_end\n\ + land_collision_end(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet land_collision_start\n\ + land_collision_start(${1:vector pos})\n\ + {\n\ + $0\n\ + }\n\ +snippet link_message\n\ + link_message(${1:integer sender_num}, ${2:integer num}, ${3:string str}, ${4:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet listen\n\ + listen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string message})\n\ + {\n\ + $0\n\ + }\n\ +snippet llAbs\n\ + llAbs(${1:integer val})\n\ +snippet llAcos\n\ + llAcos(${1:float val})\n\ +snippet llAddToLandBanList\n\ + llAddToLandBanList(${1:key agent}, ${2:float hours});\n\ + $0\n\ +snippet llAddToLandPassList\n\ + llAddToLandPassList(${1:key agent}, ${2:float hours});\n\ + $0\n\ +snippet llAdjustSoundVolume\n\ + llAdjustSoundVolume(${1:float volume});\n\ + $0\n\ +snippet llAgentInExperience\n\ + llAgentInExperience(${1:key agent})\n\ +snippet llAllowInventoryDrop\n\ + llAllowInventoryDrop(${1:integer add});\n\ + $0\n\ +snippet llAngleBetween\n\ + llAngleBetween(${1:rotation a}, ${2:rotation b})\n\ +snippet llApplyImpulse\n\ + llApplyImpulse(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llApplyRotationalImpulse\n\ + llApplyRotationalImpulse(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llAsin\n\ + llAsin(${1:float val})\n\ +snippet llAtan2\n\ + llAtan2(${1:float y}, ${2:float x})\n\ +snippet llAttachToAvatar\n\ + llAttachToAvatar(${1:integer attach_point});\n\ + $0\n\ +snippet llAttachToAvatarTemp\n\ + llAttachToAvatarTemp(${1:integer attach_point});\n\ + $0\n\ +snippet llAvatarOnLinkSitTarget\n\ + llAvatarOnLinkSitTarget(${1:integer link})\n\ +snippet llAvatarOnSitTarget\n\ + llAvatarOnSitTarget()\n\ +snippet llAxes2Rot\n\ + llAxes2Rot(${1:vector fwd}, ${2:vector left}, ${3:vector up})\n\ +snippet llAxisAngle2Rot\n\ + llAxisAngle2Rot(${1:vector axis}, ${2:float angle})\n\ +snippet llBase64ToInteger\n\ + llBase64ToInteger(${1:string str})\n\ +snippet llBase64ToString\n\ + llBase64ToString(${1:string str})\n\ +snippet llBreakAllLinks\n\ + llBreakAllLinks();\n\ + $0\n\ +snippet llBreakLink\n\ + llBreakLink(${1:integer link});\n\ + $0\n\ +snippet llCastRay\n\ + llCastRay(${1:vector start}, ${2:vector end}, ${3:list options});\n\ + $0\n\ +snippet llCeil\n\ + llCeil(${1:float val})\n\ +snippet llClearCameraParams\n\ + llClearCameraParams();\n\ + $0\n\ +snippet llClearLinkMedia\n\ + llClearLinkMedia(${1:integer link}, ${2:integer face});\n\ + $0\n\ +snippet llClearPrimMedia\n\ + llClearPrimMedia(${1:integer face});\n\ + $0\n\ +snippet llCloseRemoteDataChannel\n\ + llCloseRemoteDataChannel(${1:key channel});\n\ + $0\n\ +snippet llCollisionFilter\n\ + llCollisionFilter(${1:string name}, ${2:key id}, ${3:integer accept});\n\ + $0\n\ +snippet llCollisionSound\n\ + llCollisionSound(${1:string impact_sound}, ${2:float impact_volume});\n\ + $0\n\ +snippet llCos\n\ + llCos(${1:float theta})\n\ +snippet llCreateCharacter\n\ + llCreateCharacter(${1:list options});\n\ + $0\n\ +snippet llCreateKeyValue\n\ + llCreateKeyValue(${1:string k})\n\ +snippet llCreateLink\n\ + llCreateLink(${1:key target}, ${2:integer parent});\n\ + $0\n\ +snippet llCSV2List\n\ + llCSV2List(${1:string src})\n\ +snippet llDataSizeKeyValue\n\ + llDataSizeKeyValue()\n\ +snippet llDeleteCharacter\n\ + llDeleteCharacter();\n\ + $0\n\ +snippet llDeleteKeyValue\n\ + llDeleteKeyValue(${1:string k})\n\ +snippet llDeleteSubList\n\ + llDeleteSubList(${1:list src}, ${2:integer start}, ${3:integer end})\n\ +snippet llDeleteSubString\n\ + llDeleteSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\ +snippet llDetachFromAvatar\n\ + llDetachFromAvatar();\n\ + $0\n\ +snippet llDetectedGrab\n\ + llDetectedGrab(${1:integer number})\n\ +snippet llDetectedGroup\n\ + llDetectedGroup(${1:integer number})\n\ +snippet llDetectedKey\n\ + llDetectedKey(${1:integer number})\n\ +snippet llDetectedLinkNumber\n\ + llDetectedLinkNumber(${1:integer number})\n\ +snippet llDetectedName\n\ + llDetectedName(${1:integer number})\n\ +snippet llDetectedOwner\n\ + llDetectedOwner(${1:integer number})\n\ +snippet llDetectedPos\n\ + llDetectedPosl(${1:integer number})\n\ +snippet llDetectedRot\n\ + llDetectedRot(${1:integer number})\n\ +snippet llDetectedTouchBinormal\n\ + llDetectedTouchBinormal(${1:integer number})\n\ +snippet llDetectedTouchFace\n\ + llDetectedTouchFace(${1:integer number})\n\ +snippet llDetectedTouchNormal\n\ + llDetectedTouchNormal(${1:integer number})\n\ +snippet llDetectedTouchPos\n\ + llDetectedTouchPos(${1:integer number})\n\ +snippet llDetectedTouchST\n\ + llDetectedTouchST(${1:integer number})\n\ +snippet llDetectedTouchUV\n\ + llDetectedTouchUV(${1:integer number})\n\ +snippet llDetectedType\n\ + llDetectedType(${1:integer number})\n\ +snippet llDetectedVel\n\ + llDetectedVel(${1:integer number})\n\ +snippet llDialog\n\ + llDialog(${1:key agent}, ${2:string message}, ${3:list buttons}, ${4:integer channel});\n\ + $0\n\ +snippet llDie\n\ + llDie();\n\ + $0\n\ +snippet llDumpList2String\n\ + llDumpList2String(${1:list src}, ${2:string separator})\n\ +snippet llEdgeOfWorld\n\ + llEdgeOfWorld(${1:vector pos}, ${2:vector dir})\n\ +snippet llEjectFromLand\n\ + llEjectFromLand(${1:key agent});\n\ + $0\n\ +snippet llEmail\n\ + llEmail(${1:string address}, ${2:string subject}, ${3:string message});\n\ + $0\n\ +snippet llEscapeURL\n\ + llEscapeURL(${1:string url})\n\ +snippet llEuler2Rot\n\ + llEuler2Rot(${1:vector v})\n\ +snippet llExecCharacterCmd\n\ + llExecCharacterCmd(${1:integer command}, ${2:list options});\n\ + $0\n\ +snippet llEvade\n\ + llEvade(${1:key target}, ${2:list options});\n\ + $0\n\ +snippet llFabs\n\ + llFabs(${1:float val})\n\ +snippet llFleeFrom\n\ + llFleeFrom(${1:vector position}, ${2:float distance}, ${3:list options});\n\ + $0\n\ +snippet llFloor\n\ + llFloor(${1:float val})\n\ +snippet llForceMouselook\n\ + llForceMouselook(${1:integer mouselook});\n\ + $0\n\ +snippet llFrand\n\ + llFrand(${1:float mag})\n\ +snippet llGenerateKey\n\ + llGenerateKey()\n\ +snippet llGetAccel\n\ + llGetAccel()\n\ +snippet llGetAgentInfo\n\ + llGetAgentInfo(${1:key id})\n\ +snippet llGetAgentLanguage\n\ + llGetAgentLanguage(${1:key agent})\n\ +snippet llGetAgentList\n\ + llGetAgentList(${1:integer scope}, ${2:list options})\n\ +snippet llGetAgentSize\n\ + llGetAgentSize(${1:key agent})\n\ +snippet llGetAlpha\n\ + llGetAlpha(${1:integer face})\n\ +snippet llGetAndResetTime\n\ + llGetAndResetTime()\n\ +snippet llGetAnimation\n\ + llGetAnimation(${1:key id})\n\ +snippet llGetAnimationList\n\ + llGetAnimationList(${1:key agent})\n\ +snippet llGetAnimationOverride\n\ + llGetAnimationOverride(${1:string anim_state})\n\ +snippet llGetAttached\n\ + llGetAttached()\n\ +snippet llGetAttachedList\n\ + llGetAttachedList(${1:key id})\n\ +snippet llGetBoundingBox\n\ + llGetBoundingBox(${1:key object})\n\ +snippet llGetCameraPos\n\ + llGetCameraPos()\n\ +snippet llGetCameraRot\n\ + llGetCameraRot()\n\ +snippet llGetCenterOfMass\n\ + llGetCenterOfMass()\n\ +snippet llGetClosestNavPoint\n\ + llGetClosestNavPoint(${1:vector point}, ${2:list options})\n\ +snippet llGetColor\n\ + llGetColor(${1:integer face})\n\ +snippet llGetCreator\n\ + llGetCreator()\n\ +snippet llGetDate\n\ + llGetDate()\n\ +snippet llGetDisplayName\n\ + llGetDisplayName(${1:key id})\n\ +snippet llGetEnergy\n\ + llGetEnergy()\n\ +snippet llGetEnv\n\ + llGetEnv(${1:string name})\n\ +snippet llGetExperienceDetails\n\ + llGetExperienceDetails(${1:key experience_id})\n\ +snippet llGetExperienceErrorMessage\n\ + llGetExperienceErrorMessage(${1:integer error})\n\ +snippet llGetForce\n\ + llGetForce()\n\ +snippet llGetFreeMemory\n\ + llGetFreeMemory()\n\ +snippet llGetFreeURLs\n\ + llGetFreeURLs()\n\ +snippet llGetGeometricCenter\n\ + llGetGeometricCenter()\n\ +snippet llGetGMTclock\n\ + llGetGMTclock()\n\ +snippet llGetHTTPHeader\n\ + llGetHTTPHeader(${1:key request_id}, ${2:string header})\n\ +snippet llGetInventoryCreator\n\ + llGetInventoryCreator(${1:string item})\n\ +snippet llGetInventoryKey\n\ + llGetInventoryKey(${1:string name})\n\ +snippet llGetInventoryName\n\ + llGetInventoryName(${1:integer type}, ${2:integer number})\n\ +snippet llGetInventoryNumber\n\ + llGetInventoryNumber(${1:integer type})\n\ +snippet llGetInventoryPermMask\n\ + llGetInventoryPermMask(${1:string item}, ${2:integer mask})\n\ +snippet llGetInventoryType\n\ + llGetInventoryType(${1:string name})\n\ +snippet llGetKey\n\ + llGetKey()\n\ +snippet llGetLandOwnerAt\n\ + llGetLandOwnerAt(${1:vector pos})\n\ +snippet llGetLinkKey\n\ + llGetLinkKey(${1:integer link})\n\ +snippet llGetLinkMedia\n\ + llGetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params})\n\ +snippet llGetLinkName\n\ + llGetLinkName(${1:integer link})\n\ +snippet llGetLinkNumber\n\ + llGetLinkNumber()\n\ +snippet llGetLinkNumberOfSides\n\ + llGetLinkNumberOfSides(${1:integer link})\n\ +snippet llGetLinkPrimitiveParams\n\ + llGetLinkPrimitiveParams(${1:integer link}, ${2:list params})\n\ +snippet llGetListEntryType\n\ + llGetListEntryType(${1:list src}, ${2:integer index})\n\ +snippet llGetListLength\n\ + llGetListLength(${1:list src})\n\ +snippet llGetLocalPos\n\ + llGetLocalPos()\n\ +snippet llGetLocalRot\n\ + llGetLocalRot()\n\ +snippet llGetMass\n\ + llGetMass()\n\ +snippet llGetMassMKS\n\ + llGetMassMKS()\n\ +snippet llGetMaxScaleFactor\n\ + llGetMaxScaleFactor()\n\ +snippet llGetMemoryLimit\n\ + llGetMemoryLimit()\n\ +snippet llGetMinScaleFactor\n\ + llGetMinScaleFactor()\n\ +snippet llGetNextEmail\n\ + llGetNextEmail(${1:string address}, ${2:string subject});\n\ + $0\n\ +snippet llGetNotecardLine\n\ + llGetNotecardLine(${1:string name}, ${2:integer line})\n\ +snippet llGetNumberOfNotecardLines\n\ + llGetNumberOfNotecardLines(${1:string name})\n\ +snippet llGetNumberOfPrims\n\ + llGetNumberOfPrims()\n\ +snippet llGetNumberOfSides\n\ + llGetNumberOfSides()\n\ +snippet llGetObjectDesc\n\ + llGetObjectDesc()\n\ +snippet llGetObjectDetails\n\ + llGetObjectDetails(${1:key id}, ${2:list params})\n\ +snippet llGetObjectMass\n\ + llGetObjectMass(${1:key id})\n\ +snippet llGetObjectName\n\ + llGetObjectName()\n\ +snippet llGetObjectPermMask\n\ + llGetObjectPermMask(${1:integer mask})\n\ +snippet llGetObjectPrimCount\n\ + llGetObjectPrimCount(${1:key prim})\n\ +snippet llGetOmega\n\ + llGetOmega()\n\ +snippet llGetOwner\n\ + llGetOwner()\n\ +snippet llGetOwnerKey\n\ + llGetOwnerKey(${1:key id})\n\ +snippet llGetParcelDetails\n\ + llGetParcelDetails(${1:vector pos}, ${2:list params})\n\ +snippet llGetParcelFlags\n\ + llGetParcelFlags(${1:vector pos})\n\ +snippet llGetParcelMaxPrims\n\ + llGetParcelMaxPrims(${1:vector pos}, ${2:integer sim_wide})\n\ +snippet llGetParcelMusicURL\n\ + llGetParcelMusicURL()\n\ +snippet llGetParcelPrimCount\n\ + llGetParcelPrimCount(${1:vector pos}, ${2:integer category}, ${3:integer sim_wide})\n\ +snippet llGetParcelPrimOwners\n\ + llGetParcelPrimOwners(${1:vector pos})\n\ +snippet llGetPermissions\n\ + llGetPermissions()\n\ +snippet llGetPermissionsKey\n\ + llGetPermissionsKey()\n\ +snippet llGetPhysicsMaterial\n\ + llGetPhysicsMaterial()\n\ +snippet llGetPos\n\ + llGetPos()\n\ +snippet llGetPrimitiveParams\n\ + llGetPrimitiveParams(${1:list params})\n\ +snippet llGetPrimMediaParams\n\ + llGetPrimMediaParams(${1:integer face}, ${2:list params})\n\ +snippet llGetRegionAgentCount\n\ + llGetRegionAgentCount()\n\ +snippet llGetRegionCorner\n\ + llGetRegionCorner()\n\ +snippet llGetRegionFlags\n\ + llGetRegionFlags()\n\ +snippet llGetRegionFPS\n\ + llGetRegionFPS()\n\ +snippet llGetRegionName\n\ + llGetRegionName()\n\ +snippet llGetRegionTimeDilation\n\ + llGetRegionTimeDilation()\n\ +snippet llGetRootPosition\n\ + llGetRootPosition()\n\ +snippet llGetRootRotation\n\ + llGetRootRotation()\n\ +snippet llGetRot\n\ + llGetRot()\n\ +snippet llGetScale\n\ + llGetScale()\n\ +snippet llGetScriptName\n\ + llGetScriptName()\n\ +snippet llGetScriptState\n\ + llGetScriptState(${1:string script})\n\ +snippet llGetSimStats\n\ + llGetSimStats(${1:integer stat_type})\n\ +snippet llGetSimulatorHostname\n\ + llGetSimulatorHostname()\n\ +snippet llGetSPMaxMemory\n\ + llGetSPMaxMemory()\n\ +snippet llGetStartParameter\n\ + llGetStartParameter()\n\ +snippet llGetStaticPath\n\ + llGetStaticPath(${1:vector start}, ${2:vector end}, ${3:float radius}, ${4:list params})\n\ +snippet llGetStatus\n\ + llGetStatus(${1:integer status})\n\ +snippet llGetSubString\n\ + llGetSubString(${1:string src}, ${2:integer start}, ${3:integer end})\n\ +snippet llGetSunDirection\n\ + llGetSunDirection()\n\ +snippet llGetTexture\n\ + llGetTexture(${1:integer face})\n\ +snippet llGetTextureOffset\n\ + llGetTextureOffset(${1:integer face})\n\ +snippet llGetTextureRot\n\ + llGetTextureRot(${1:integer face})\n\ +snippet llGetTextureScale\n\ + llGetTextureScale(${1:integer face})\n\ +snippet llGetTime\n\ + llGetTime()\n\ +snippet llGetTimeOfDay\n\ + llGetTimeOfDay()\n\ +snippet llGetTimestamp\n\ + llGetTimestamp()\n\ +snippet llGetTorque\n\ + llGetTorque()\n\ +snippet llGetUnixTime\n\ + llGetUnixTime()\n\ +snippet llGetUsedMemory\n\ + llGetUsedMemory()\n\ +snippet llGetUsername\n\ + llGetUsername(${1:key id})\n\ +snippet llGetVel\n\ + llGetVel()\n\ +snippet llGetWallclock\n\ + llGetWallclock()\n\ +snippet llGiveInventory\n\ + llGiveInventory(${1:key destination}, ${2:string inventory});\n\ + $0\n\ +snippet llGiveInventoryList\n\ + llGiveInventoryList(${1:key target}, ${2:string folder}, ${3:list inventory});\n\ + $0\n\ +snippet llGiveMoney\n\ + llGiveMoney(${1:key destination}, ${2:integer amount})\n\ +snippet llGround\n\ + llGround(${1:vector offset})\n\ +snippet llGroundContour\n\ + llGroundContour(${1:vector offset})\n\ +snippet llGroundNormal\n\ + llGroundNormal(${1:vector offset})\n\ +snippet llGroundRepel\n\ + llGroundRepel(${1:float height}, ${2:integer water}, ${3:float tau});\n\ + $0\n\ +snippet llGroundSlope\n\ + llGroundSlope(${1:vector offset})\n\ +snippet llHTTPRequest\n\ + llHTTPRequest(${1:string url}, ${2:list parameters}, ${3:string body})\n\ +snippet llHTTPResponse\n\ + llHTTPResponse(${1:key request_id}, ${2:integer status}, ${3:string body});\n\ + $0\n\ +snippet llInsertString\n\ + llInsertString(${1:string dst}, ${2:integer pos}, ${3:string src})\n\ +snippet llInstantMessage\n\ + llInstantMessage(${1:key user}, ${2:string message});\n\ + $0\n\ +snippet llIntegerToBase64\n\ + llIntegerToBase64(${1:integer number})\n\ +snippet llJson2List\n\ + llJson2List(${1:string json})\n\ +snippet llJsonGetValue\n\ + llJsonGetValue(${1:string json}, ${2:list specifiers})\n\ +snippet llJsonSetValue\n\ + llJsonSetValue(${1:string json}, ${2:list specifiers}, ${3:string newValue})\n\ +snippet llJsonValueType\n\ + llJsonValueType(${1:string json}, ${2:list specifiers})\n\ +snippet llKey2Name\n\ + llKey2Name(${1:key id})\n\ +snippet llKeyCountKeyValue\n\ + llKeyCountKeyValue()\n\ +snippet llKeysKeyValue\n\ + llKeysKeyValue(${1:integer first}, ${2:integer count})\n\ +snippet llLinkParticleSystem\n\ + llLinkParticleSystem(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llLinkSitTarget\n\ + llLinkSitTarget(${1:integer link}, ${2:vector offset}, ${3:rotation rot});\n\ + $0\n\ +snippet llList2CSV\n\ + llList2CSV(${1:list src})\n\ +snippet llList2Float\n\ + llList2Float(${1:list src}, ${2:integer index})\n\ +snippet llList2Integer\n\ + llList2Integer(${1:list src}, ${2:integer index})\n\ +snippet llList2Json\n\ + llList2Json(${1:string type}, ${2:list values})\n\ +snippet llList2Key\n\ + llList2Key(${1:list src}, ${2:integer index})\n\ +snippet llList2List\n\ + llList2List(${1:list src}, ${2:integer start}, ${3:integer end})\n\ +snippet llList2ListStrided\n\ + llList2ListStrided(${1:list src}, ${2:integer start}, ${3:integer end}, ${4:integer stride})\n\ +snippet llList2Rot\n\ + llList2Rot(${1:list src}, ${2:integer index})\n\ +snippet llList2String\n\ + llList2String(${1:list src}, ${2:integer index})\n\ +snippet llList2Vector\n\ + llList2Vector(${1:list src}, ${2:integer index})\n\ +snippet llListen\n\ + llListen(${1:integer channel}, ${2:string name}, ${3:key id}, ${4:string msg})\n\ +snippet llListenControl\n\ + llListenControl(${1:integer handle}, ${2:integer active});\n\ + $0\n\ +snippet llListenRemove\n\ + llListenRemove(${1:integer handle});\n\ + $0\n\ +snippet llListFindList\n\ + llListFindList(${1:list src}, ${2:list test})\n\ +snippet llListInsertList\n\ + llListInsertList(${1:list dest}, ${2:list src}, ${3:integer start})\n\ +snippet llListRandomize\n\ + llListRandomize(${1:list src}, ${2:integer stride})\n\ +snippet llListReplaceList\n\ + llListReplaceList(${1:list dest}, ${2:list src}, ${3:integer start}, ${4:integer end})\n\ +snippet llListSort\n\ + llListSort(${1:list src}, ${2:integer stride}, ${3:integer ascending})\n\ +snippet llListStatistics\n\ + llListStatistics(${1:integer operation}, ${2:list src})\n\ +snippet llLoadURL\n\ + llLoadURL(${1:key agent}, ${2:string message}, ${3:string url});\n\ + $0\n\ +snippet llLog\n\ + llLog(${1:float val})\n\ +snippet llLog10\n\ + llLog10(${1:float val})\n\ +snippet llLookAt\n\ + llLookAt(${1:vector target}, ${2:float strength}, ${3:float damping});\n\ + $0\n\ +snippet llLoopSound\n\ + llLoopSound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llLoopSoundMaster\n\ + llLoopSoundMaster(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llLoopSoundSlave\n\ + llLoopSoundSlave(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llManageEstateAccess\n\ + llManageEstateAccess(${1:integer action}, ${2:key agent})\n\ +snippet llMapDestination\n\ + llMapDestination(${1:string simname}, ${2:vector pos}, ${3:vector look_at});\n\ + $0\n\ +snippet llMD5String\n\ + llMD5String(${1:string src}, ${2:integer nonce})\n\ +snippet llMessageLinked\n\ + llMessageLinked(${1:integer link}, ${2:integer num}, ${3:string str}, ${4:key id});\n\ + $0\n\ +snippet llMinEventDelay\n\ + llMinEventDelay(${1:float delay});\n\ + $0\n\ +snippet llModifyLand\n\ + llModifyLand(${1:integer action}, ${2:integer brush});\n\ + $0\n\ +snippet llModPow\n\ + llModPow(${1:integer a}, ${2:integer b}, ${3:integer c})\n\ +snippet llMoveToTarget\n\ + llMoveToTarget(${1:vector target}, ${2:float tau});\n\ + $0\n\ +snippet llNavigateTo\n\ + llNavigateTo(${1:vector pos}, ${2:list options});\n\ + $0\n\ +snippet llOffsetTexture\n\ + llOffsetTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\ + $0\n\ +snippet llOpenRemoteDataChannel\n\ + llOpenRemoteDataChannel();\n\ + $0\n\ +snippet llOverMyLand\n\ + llOverMyLand(${1:key id})\n\ +snippet llOwnerSay\n\ + llOwnerSay(${1:string msg});\n\ + $0\n\ +snippet llParcelMediaCommandList\n\ + llParcelMediaCommandList(${1:list commandList});\n\ + $0\n\ +snippet llParcelMediaQuery\n\ + llParcelMediaQuery(${1:list query})\n\ +snippet llParseString2List\n\ + llParseString2List(${1:string src}, ${2:list separators}, ${3:list spacers})\n\ +snippet llParseStringKeepNulls\n\ + llParseStringKeepNulls(${1:string src}, ${2:list separators}, ${3:list spacers})\n\ +snippet llParticleSystem\n\ + llParticleSystem(${1:list rules});\n\ + $0\n\ +snippet llPassCollisions\n\ + llPassCollisions(${1:integer pass});\n\ + $0\n\ +snippet llPassTouches\n\ + llPassTouches(${1:integer pass});\n\ + $0\n\ +snippet llPatrolPoints\n\ + llPatrolPoints(${1:list patrolPoints}, ${2:list options});\n\ + $0\n\ +snippet llPlaySound\n\ + llPlaySound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llPlaySoundSlave\n\ + llPlaySoundSlave(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llPow\n\ + llPow(${1:float base}, ${2:float exponent})\n\ +snippet llPreloadSound\n\ + llPreloadSound(${1:string sound});\n\ + $0\n\ +snippet llPursue\n\ + llPursue(${1:key target}, ${2:list options});\n\ + $0\n\ +snippet llPushObject\n\ + llPushObject(${1:key target}, ${2:vector impulse}, ${3:vector ang_impulse}, ${4:integer local});\n\ + $0\n\ +snippet llReadKeyValue\n\ + llReadKeyValue(${1:string k})\n\ +snippet llRegionSay\n\ + llRegionSay(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llRegionSayTo\n\ + llRegionSayTo(${1:key target}, ${2:integer channel}, ${3:string msg});\n\ + $0\n\ +snippet llReleaseControls\n\ + llReleaseControls();\n\ + $0\n\ +snippet llReleaseURL\n\ + llReleaseURL(${1:string url});\n\ + $0\n\ +snippet llRemoteDataReply\n\ + llRemoteDataReply(${1:key channel}, ${2:key message_id}, ${3:string sdata}, ${4:integer idata});\n\ + $0\n\ +snippet llRemoteLoadScriptPin\n\ + llRemoteLoadScriptPin(${1:key target}, ${2:string name}, ${3:integer pin}, ${4:integer running}, ${5:integer start_param});\n\ + $0\n\ +snippet llRemoveFromLandBanList\n\ + llRemoveFromLandBanList(${1:key agent});\n\ + $0\n\ +snippet llRemoveFromLandPassList\n\ + llRemoveFromLandPassList(${1:key agent});\n\ + $0\n\ +snippet llRemoveInventory\n\ + llRemoveInventory(${1:string item});\n\ + $0\n\ +snippet llRemoveVehicleFlags\n\ + llRemoveVehicleFlags(${1:integer flags});\n\ + $0\n\ +snippet llRequestAgentData\n\ + llRequestAgentData(${1:key id}, ${2:integer data})\n\ +snippet llRequestDisplayName\n\ + llRequestDisplayName(${1:key id})\n\ +snippet llRequestExperiencePermissions\n\ + llRequestExperiencePermissions(${1:key agent}, ${2:string name})\n\ +snippet llRequestInventoryData\n\ + llRequestInventoryData(${1:string name})\n\ +snippet llRequestPermissions\n\ + llRequestPermissions(${1:key agent}, ${2:integer permissions})\n\ +snippet llRequestSecureURL\n\ + llRequestSecureURL()\n\ +snippet llRequestSimulatorData\n\ + llRequestSimulatorData(${1:string region}, ${2:integer data})\n\ +snippet llRequestURL\n\ + llRequestURL()\n\ +snippet llRequestUsername\n\ + llRequestUsername(${1:key id})\n\ +snippet llResetAnimationOverride\n\ + llResetAnimationOverride(${1:string anim_state});\n\ + $0\n\ +snippet llResetLandBanList\n\ + llResetLandBanList();\n\ + $0\n\ +snippet llResetLandPassList\n\ + llResetLandPassList();\n\ + $0\n\ +snippet llResetOtherScript\n\ + llResetOtherScript(${1:string name});\n\ + $0\n\ +snippet llResetScript\n\ + llResetScript();\n\ + $0\n\ +snippet llResetTime\n\ + llResetTime();\n\ + $0\n\ +snippet llReturnObjectsByID\n\ + llReturnObjectsByID(${1:list objects})\n\ +snippet llReturnObjectsByOwner\n\ + llReturnObjectsByOwner(${1:key owner}, ${2:integer scope})\n\ +snippet llRezAtRoot\n\ + llRezAtRoot(${1:string inventory}, ${2:vector position}, ${3:vector velocity}, ${4:rotation rot}, ${5:integer param});\n\ + $0\n\ +snippet llRezObject\n\ + llRezObject(${1:string inventory}, ${2:vector pos}, ${3:vector vel}, ${4:rotation rot}, ${5:integer param});\n\ + $0\n\ +snippet llRot2Angle\n\ + llRot2Angle(${1:rotation rot})\n\ +snippet llRot2Axis\n\ + llRot2Axis(${1:rotation rot})\n\ +snippet llRot2Euler\n\ + llRot2Euler(${1:rotation quat})\n\ +snippet llRot2Fwd\n\ + llRot2Fwd(${1:rotation q})\n\ +snippet llRot2Left\n\ + llRot2Left(${1:rotation q})\n\ +snippet llRot2Up\n\ + llRot2Up(${1:rotation q})\n\ +snippet llRotateTexture\n\ + llRotateTexture(${1:float angle}, ${2:integer face});\n\ + $0\n\ +snippet llRotBetween\n\ + llRotBetween(${1:vector start}, ${2:vector end})\n\ +snippet llRotLookAt\n\ + llRotLookAt(${1:rotation target_direction}, ${2:float strength}, ${3:float damping});\n\ + $0\n\ +snippet llRotTarget\n\ + llRotTarget(${1:rotation rot}, ${2:float error})\n\ +snippet llRotTargetRemove\n\ + llRotTargetRemove(${1:integer handle});\n\ + $0\n\ +snippet llRound\n\ + llRound(${1:float val})\n\ +snippet llSameGroup\n\ + llSameGroup(${1:key group})\n\ +snippet llSay\n\ + llSay(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llScaleByFactor\n\ + llScaleByFactor(${1:float scaling_factor})\n\ +snippet llScaleTexture\n\ + llScaleTexture(${1:float u}, ${2:float v}, ${3:integer face});\n\ + $0\n\ +snippet llScriptDanger\n\ + llScriptDanger(${1:vector pos})\n\ +snippet llScriptProfiler\n\ + llScriptProfiler(${1:integer flags});\n\ + $0\n\ +snippet llSendRemoteData\n\ + llSendRemoteData(${1:key channel}, ${2:string dest}, ${3:integer idata}, ${4:string sdata})\n\ +snippet llSensor\n\ + llSensor(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc});\n\ + $0\n\ +snippet llSensorRepeat\n\ + llSensorRepeat(${1:string name}, ${2:key id}, ${3:integer type}, ${4:float range}, ${5:float arc}, ${6:float rate});\n\ + $0\n\ +snippet llSetAlpha\n\ + llSetAlpha(${1:float alpha}, ${2:integer face});\n\ + $0\n\ +snippet llSetAngularVelocity\n\ + llSetAngularVelocity(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSetAnimationOverride\n\ + llSetAnimationOverride(${1:string anim_state}, ${2:string anim})\n\ +snippet llSetBuoyancy\n\ + llSetBuoyancy(${1:float buoyancy});\n\ + $0\n\ +snippet llSetCameraAtOffset\n\ + llSetCameraAtOffset(${1:vector offset});\n\ + $0\n\ +snippet llSetCameraEyeOffset\n\ + llSetCameraEyeOffset(${1:vector offset});\n\ + $0\n\ +snippet llSetCameraParams\n\ + llSetCameraParams(${1:list rules});\n\ + $0\n\ +snippet llSetClickAction\n\ + llSetClickAction(${1:integer action});\n\ + $0\n\ +snippet llSetColor\n\ + llSetColor(${1:vector color}, ${2:integer face});\n\ + $0\n\ +snippet llSetContentType\n\ + llSetContentType(${1:key request_id}, ${2:integer content_type});\n\ + $0\n\ +snippet llSetDamage\n\ + llSetDamage(${1:float damage});\n\ + $0\n\ +snippet llSetForce\n\ + llSetForce(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSetForceAndTorque\n\ + llSetForceAndTorque(${1:vector force}, ${2:vector torque}, ${3:integer local});\n\ + $0\n\ +snippet llSetHoverHeight\n\ + llSetHoverHeight(${1:float height}, ${2:integer water}, ${3:float tau});\n\ + $0\n\ +snippet llSetKeyframedMotion\n\ + llSetKeyframedMotion(${1:list keyframes}, ${2:list options});\n\ + $0\n\ +snippet llSetLinkAlpha\n\ + llSetLinkAlpha(${1:integer link}, ${2:float alpha}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkCamera\n\ + llSetLinkCamera(${1:integer link}, ${2:vector eye}, ${3:vector at});\n\ + $0\n\ +snippet llSetLinkColor\n\ + llSetLinkColor(${1:integer link}, ${2:vector color}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkMedia\n\ + llSetLinkMedia(${1:integer link}, ${2:integer face}, ${3:list params});\n\ + $0\n\ +snippet llSetLinkPrimitiveParams\n\ + llSetLinkPrimitiveParams(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llSetLinkPrimitiveParamsFast\n\ + llSetLinkPrimitiveParamsFast(${1:integer link}, ${2:list rules});\n\ + $0\n\ +snippet llSetLinkTexture\n\ + llSetLinkTexture(${1:integer link}, ${2:string texture}, ${3:integer face});\n\ + $0\n\ +snippet llSetLinkTextureAnim\n\ + llSetLinkTextureAnim(${1:integer link}, ${2:integer mode}, ${3:integer face}, ${4:integer sizex}, ${5:integer sizey}, ${6:float start}, ${7:float length}, ${8:float rate});\n\ + $0\n\ +snippet llSetLocalRot\n\ + llSetLocalRot(${1:rotation rot});\n\ + $0\n\ +snippet llSetMemoryLimit\n\ + llSetMemoryLimit(${1:integer limit})\n\ +snippet llSetObjectDesc\n\ + llSetObjectDesc(${1:string description});\n\ + $0\n\ +snippet llSetObjectName\n\ + llSetObjectName(${1:string name});\n\ + $0\n\ +snippet llSetParcelMusicURL\n\ + llSetParcelMusicURL(${1:string url});\n\ + $0\n\ +snippet llSetPayPrice\n\ + llSetPayPrice(${1:integer price}, [${2:integer price_button_a}, ${3:integer price_button_b}, ${4:integer price_button_c}, ${5:integer price_button_d}]);\n\ + $0\n\ +snippet llSetPhysicsMaterial\n\ + llSetPhysicsMaterial(${1:integer mask}, ${2:float gravity_multiplier}, ${3:float restitution}, ${4:float friction}, ${5:float density});\n\ + $0\n\ +snippet llSetPos\n\ + llSetPos(${1:vector pos});\n\ + $0\n\ +snippet llSetPrimitiveParams\n\ + llSetPrimitiveParams(${1:list rules});\n\ + $0\n\ +snippet llSetPrimMediaParams\n\ + llSetPrimMediaParams(${1:integer face}, ${2:list params});\n\ + $0\n\ +snippet llSetRegionPos\n\ + llSetRegionPos(${1:vector position})\n\ +snippet llSetRemoteScriptAccessPin\n\ + llSetRemoteScriptAccessPin(${1:integer pin});\n\ + $0\n\ +snippet llSetRot\n\ + llSetRot(${1:rotation rot});\n\ + $0\n\ +snippet llSetScale\n\ + llSetScale(${1:vector size});\n\ + $0\n\ +snippet llSetScriptState\n\ + llSetScriptState(${1:string name}, ${2:integer run});\n\ + $0\n\ +snippet llSetSitText\n\ + llSetSitText(${1:string text});\n\ + $0\n\ +snippet llSetSoundQueueing\n\ + llSetSoundQueueing(${1:integer queue});\n\ + $0\n\ +snippet llSetSoundRadius\n\ + llSetSoundRadius(${1:float radius});\n\ + $0\n\ +snippet llSetStatus\n\ + llSetStatus(${1:integer status}, ${2:integer value});\n\ + $0\n\ +snippet llSetText\n\ + llSetText(${1:string text}, ${2:vector color}, ${3:float alpha});\n\ + $0\n\ +snippet llSetTexture\n\ + llSetTexture(${1:string texture}, ${2:integer face});\n\ + $0\n\ +snippet llSetTextureAnim\n\ + llSetTextureAnim(${1:integer mode}, ${2:integer face}, ${3:integer sizex}, ${4:integer sizey}, ${5:float start}, ${6:float length}, ${7:float rate});\n\ + $0\n\ +snippet llSetTimerEvent\n\ + llSetTimerEvent(${1:float sec});\n\ + $0\n\ +snippet llSetTorque\n\ + llSetTorque(${1:vector torque}, ${2:integer local});\n\ + $0\n\ +snippet llSetTouchText\n\ + llSetTouchText(${1:string text});\n\ + $0\n\ +snippet llSetVehicleFlags\n\ + llSetVehicleFlags(${1:integer flags});\n\ + $0\n\ +snippet llSetVehicleFloatParam\n\ + llSetVehicleFloatParam(${1:integer param}, ${2:float value});\n\ + $0\n\ +snippet llSetVehicleRotationParam\n\ + llSetVehicleRotationParam(${1:integer param}, ${2:rotation rot});\n\ + $0\n\ +snippet llSetVehicleType\n\ + llSetVehicleType(${1:integer type});\n\ + $0\n\ +snippet llSetVehicleVectorParam\n\ + llSetVehicleVectorParam(${1:integer param}, ${2:vector vec});\n\ + $0\n\ +snippet llSetVelocity\n\ + llSetVelocity(${1:vector force}, ${2:integer local});\n\ + $0\n\ +snippet llSHA1String\n\ + llSHA1String(${1:string src})\n\ +snippet llShout\n\ + llShout(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llSin\n\ + llSin(${1:float theta})\n\ +snippet llSitTarget\n\ + llSitTarget(${1:vector offset}, ${2:rotation rot});\n\ + $0\n\ +snippet llSleep\n\ + llSleep(${1:float sec});\n\ + $0\n\ +snippet llSqrt\n\ + llSqrt(${1:float val})\n\ +snippet llStartAnimation\n\ + llStartAnimation(${1:string anim});\n\ + $0\n\ +snippet llStopAnimation\n\ + llStopAnimation(${1:string anim});\n\ + $0\n\ +snippet llStopHover\n\ + llStopHover();\n\ + $0\n\ +snippet llStopLookAt\n\ + llStopLookAt();\n\ + $0\n\ +snippet llStopMoveToTarget\n\ + llStopMoveToTarget();\n\ + $0\n\ +snippet llStopSound\n\ + llStopSound();\n\ + $0\n\ +snippet llStringLength\n\ + llStringLength(${1:string str})\n\ +snippet llStringToBase64\n\ + llStringToBase64(${1:string str})\n\ +snippet llStringTrim\n\ + llStringTrim(${1:string src}, ${2:integer type})\n\ +snippet llSubStringIndex\n\ + llSubStringIndex(${1:string source}, ${2:string pattern})\n\ +snippet llTakeControls\n\ + llTakeControls(${1:integer controls}, ${2:integer accept}, ${3:integer pass_on});\n\ + $0\n\ +snippet llTan\n\ + llTan(${1:float theta})\n\ +snippet llTarget\n\ + llTarget(${1:vector position}, ${2:float range})\n\ +snippet llTargetOmega\n\ + llTargetOmega(${1:vector axis}, ${2:float spinrate}, ${3:float gain});\n\ + $0\n\ +snippet llTargetRemove\n\ + llTargetRemove(${1:integer handle});\n\ + $0\n\ +snippet llTeleportAgent\n\ + llTeleportAgent(${1:key agent}, ${2:string landmark}, ${3:vector position}, ${4:vector look_at});\n\ + $0\n\ +snippet llTeleportAgentGlobalCoords\n\ + llTeleportAgentGlobalCoords(${1:key agent}, ${2:vector global_coordinates}, ${3:vector region_coordinates}, ${4:vector look_at});\n\ + $0\n\ +snippet llTeleportAgentHome\n\ + llTeleportAgentHome(${1:key agent});\n\ + $0\n\ +snippet llTextBox\n\ + llTextBox(${1:key agent}, ${2:string message}, ${3:integer channel});\n\ + $0\n\ +snippet llToLower\n\ + llToLower(${1:string src})\n\ +snippet llToUpper\n\ + llToUpper(${1:string src})\n\ +snippet llTransferLindenDollars\n\ + llTransferLindenDollars(${1:key destination}, ${2:integer amount})\n\ +snippet llTriggerSound\n\ + llTriggerSound(${1:string sound}, ${2:float volume});\n\ + $0\n\ +snippet llTriggerSoundLimited\n\ + llTriggerSoundLimited(${1:string sound}, ${2:float volume}, ${3:vector top_north_east}, ${4:vector bottom_south_west});\n\ + $0\n\ +snippet llUnescapeURL\n\ + llUnescapeURL(${1:string url})\n\ +snippet llUnSit\n\ + llUnSit(${1:key id});\n\ + $0\n\ +snippet llUpdateCharacter\n\ + llUpdateCharacter(${1:list options})\n\ +snippet llUpdateKeyValue\n\ + llUpdateKeyValue(${1:string k}, ${2:string v}, ${3:integer checked}, ${4:string ov})\n\ +snippet llVecDist\n\ + llVecDist(${1:vector vec_a}, ${2:vector vec_b})\n\ +snippet llVecMag\n\ + llVecMag(${1:vector vec})\n\ +snippet llVecNorm\n\ + llVecNorm(${1:vector vec})\n\ +snippet llVolumeDetect\n\ + llVolumeDetect(${1:integer detect});\n\ + $0\n\ +snippet llWanderWithin\n\ + llWanderWithin(${1:vector origin}, ${2:vector dist}, ${3:list options});\n\ + $0\n\ +snippet llWater\n\ + llWater(${1:vector offset});\n\ + $0\n\ +snippet llWhisper\n\ + llWhisper(${1:integer channel}, ${2:string msg});\n\ + $0\n\ +snippet llWind\n\ + llWind(${1:vector offset});\n\ + $0\n\ +snippet llXorBase64\n\ + llXorBase64(${1:string str1}, ${2:string str2})\n\ +snippet money\n\ + money(${1:key id}, ${2:integer amount})\n\ + {\n\ + $0\n\ + }\n\ +snippet object_rez\n\ + object_rez(${1:key id})\n\ + {\n\ + $0\n\ + }\n\ +snippet on_rez\n\ + on_rez(${1:integer start_param})\n\ + {\n\ + $0\n\ + }\n\ +snippet path_update\n\ + path_update(${1:integer type}, ${2:list reserved})\n\ + {\n\ + $0\n\ + }\n\ +snippet remote_data\n\ + remote_data(${1:integer event_type}, ${2:key channel}, ${3:key message_id}, ${4:string sender}, ${5:integer idata}, ${6:string sdata})\n\ + {\n\ + $0\n\ + }\n\ +snippet run_time_permissions\n\ + run_time_permissions(${1:integer perm})\n\ + {\n\ + $0\n\ + }\n\ +snippet sensor\n\ + sensor(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet state\n\ + state ${1:name}\n\ +snippet touch\n\ + touch(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet touch_end\n\ + touch_end(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet touch_start\n\ + touch_start(${1:integer index})\n\ + {\n\ + $0\n\ + }\n\ +snippet transaction_result\n\ + transaction_result(${1:key id}, ${2:integer success}, ${3:string data})\n\ + {\n\ + $0\n\ + }\n\ +snippet while\n\ + while (${1:condition})\n\ + {\n\ + $0\n\ + }\n\ +"; +exports.scope = "lsl"; + +}); diff --git a/htdocs/includes/ace/snippets/lua.js b/htdocs/includes/ace/snippets/lua.js new file mode 100644 index 00000000000..c369b648ff8 --- /dev/null +++ b/htdocs/includes/ace/snippets/lua.js @@ -0,0 +1,28 @@ +ace.define("ace/snippets/lua",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env lua\n\ + $1\n\ +snippet local\n\ + local ${1:x} = ${2:1}\n\ +snippet fun\n\ + function ${1:fname}(${2:...})\n\ + ${3:-- body}\n\ + end\n\ +snippet for\n\ + for ${1:i}=${2:1},${3:10} do\n\ + ${4:print(i)}\n\ + end\n\ +snippet forp\n\ + for ${1:i},${2:v} in pairs(${3:table_name}) do\n\ + ${4:-- body}\n\ + end\n\ +snippet fori\n\ + for ${1:i},${2:v} in ipairs(${3:table_name}) do\n\ + ${4:-- body}\n\ + end\n\ +"; +exports.scope = "lua"; + +}); diff --git a/htdocs/includes/ace/snippets/luapage.js b/htdocs/includes/ace/snippets/luapage.js new file mode 100644 index 00000000000..f1bcf0919d0 --- /dev/null +++ b/htdocs/includes/ace/snippets/luapage.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/luapage",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "luapage"; + +}); diff --git a/htdocs/includes/ace/snippets/lucene.js b/htdocs/includes/ace/snippets/lucene.js new file mode 100644 index 00000000000..8795919e42e --- /dev/null +++ b/htdocs/includes/ace/snippets/lucene.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/lucene",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "lucene"; + +}); diff --git a/htdocs/includes/ace/snippets/makefile.js b/htdocs/includes/ace/snippets/makefile.js new file mode 100644 index 00000000000..6c02e0d657a --- /dev/null +++ b/htdocs/includes/ace/snippets/makefile.js @@ -0,0 +1,11 @@ +ace.define("ace/snippets/makefile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet ifeq\n\ + ifeq (${1:cond0},${2:cond1})\n\ + ${3:code}\n\ + endif\n\ +"; +exports.scope = "makefile"; + +}); diff --git a/htdocs/includes/ace/snippets/markdown.js b/htdocs/includes/ace/snippets/markdown.js new file mode 100644 index 00000000000..d05f16b9693 --- /dev/null +++ b/htdocs/includes/ace/snippets/markdown.js @@ -0,0 +1,95 @@ +ace.define("ace/snippets/markdown",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Markdown\n\ +\n\ +# Includes octopress (http://octopress.org/) snippets\n\ +\n\ +snippet [\n\ + [${1:text}](http://${2:address} \"${3:title}\")\n\ +snippet [*\n\ + [${1:link}](${2:`@*`} \"${3:title}\")${4}\n\ +\n\ +snippet [:\n\ + [${1:id}]: http://${2:url} \"${3:title}\"\n\ +snippet [:*\n\ + [${1:id}]: ${2:`@*`} \"${3:title}\"\n\ +\n\ +snippet ![\n\ + ![${1:alttext}](${2:/images/image.jpg} \"${3:title}\")\n\ +snippet ![*\n\ + ![${1:alt}](${2:`@*`} \"${3:title}\")${4}\n\ +\n\ +snippet ![:\n\ + ![${1:id}]: ${2:url} \"${3:title}\"\n\ +snippet ![:*\n\ + ![${1:id}]: ${2:`@*`} \"${3:title}\"\n\ +\n\ +snippet ===\n\ +regex /^/=+/=*//\n\ + ${PREV_LINE/./=/g}\n\ + \n\ + ${0}\n\ +snippet ---\n\ +regex /^/-+/-*//\n\ + ${PREV_LINE/./-/g}\n\ + \n\ + ${0}\n\ +snippet blockquote\n\ + {% blockquote %}\n\ + ${1:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet blockquote-author\n\ + {% blockquote ${1:author}, ${2:title} %}\n\ + ${3:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet blockquote-link\n\ + {% blockquote ${1:author} ${2:URL} ${3:link_text} %}\n\ + ${4:quote}\n\ + {% endblockquote %}\n\ +\n\ +snippet bt-codeblock-short\n\ + ```\n\ + ${1:code_snippet}\n\ + ```\n\ +\n\ +snippet bt-codeblock-full\n\ + ``` ${1:language} ${2:title} ${3:URL} ${4:link_text}\n\ + ${5:code_snippet}\n\ + ```\n\ +\n\ +snippet codeblock-short\n\ + {% codeblock %}\n\ + ${1:code_snippet}\n\ + {% endcodeblock %}\n\ +\n\ +snippet codeblock-full\n\ + {% codeblock ${1:title} lang:${2:language} ${3:URL} ${4:link_text} %}\n\ + ${5:code_snippet}\n\ + {% endcodeblock %}\n\ +\n\ +snippet gist-full\n\ + {% gist ${1:gist_id} ${2:filename} %}\n\ +\n\ +snippet gist-short\n\ + {% gist ${1:gist_id} %}\n\ +\n\ +snippet img\n\ + {% img ${1:class} ${2:URL} ${3:width} ${4:height} ${5:title_text} ${6:alt_text} %}\n\ +\n\ +snippet youtube\n\ + {% youtube ${1:video_id} %}\n\ +\n\ +# The quote should appear only once in the text. It is inherently part of it.\n\ +# See http://octopress.org/docs/plugins/pullquote/ for more info.\n\ +\n\ +snippet pullquote\n\ + {% pullquote %}\n\ + ${1:text} {\" ${2:quote} \"} ${3:text}\n\ + {% endpullquote %}\n\ +"; +exports.scope = "markdown"; + +}); diff --git a/htdocs/includes/ace/snippets/mask.js b/htdocs/includes/ace/snippets/mask.js new file mode 100644 index 00000000000..2811ad2a090 --- /dev/null +++ b/htdocs/includes/ace/snippets/mask.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mask",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mask"; + +}); diff --git a/htdocs/includes/ace/snippets/matlab.js b/htdocs/includes/ace/snippets/matlab.js new file mode 100644 index 00000000000..ce298c3f519 --- /dev/null +++ b/htdocs/includes/ace/snippets/matlab.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/matlab",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "matlab"; + +}); diff --git a/htdocs/includes/ace/snippets/maze.js b/htdocs/includes/ace/snippets/maze.js new file mode 100644 index 00000000000..c12d5668d27 --- /dev/null +++ b/htdocs/includes/ace/snippets/maze.js @@ -0,0 +1,16 @@ +ace.define("ace/snippets/maze",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet >\n\ +description assignment\n\ +scope maze\n\ + -> ${1}= ${2}\n\ +\n\ +snippet >\n\ +description if\n\ +scope maze\n\ + -> IF ${2:**} THEN %${3:L} ELSE %${4:R}\n\ +"; +exports.scope = "maze"; + +}); diff --git a/htdocs/includes/ace/snippets/mel.js b/htdocs/includes/ace/snippets/mel.js new file mode 100644 index 00000000000..537cc25b1d8 --- /dev/null +++ b/htdocs/includes/ace/snippets/mel.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mel",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mel"; + +}); diff --git a/htdocs/includes/ace/snippets/mips_assembler.js b/htdocs/includes/ace/snippets/mips_assembler.js new file mode 100644 index 00000000000..08fbb817226 --- /dev/null +++ b/htdocs/includes/ace/snippets/mips_assembler.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mips_assembler",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mips_assembler"; + +}); diff --git a/htdocs/includes/ace/snippets/mipsassembler.js b/htdocs/includes/ace/snippets/mipsassembler.js new file mode 100644 index 00000000000..3e997aa8bde --- /dev/null +++ b/htdocs/includes/ace/snippets/mipsassembler.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mipsassembler",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/mushcode.js b/htdocs/includes/ace/snippets/mushcode.js new file mode 100644 index 00000000000..1f0fe24e328 --- /dev/null +++ b/htdocs/includes/ace/snippets/mushcode.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mushcode",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mushcode"; + +}); diff --git a/htdocs/includes/ace/snippets/mysql.js b/htdocs/includes/ace/snippets/mysql.js new file mode 100644 index 00000000000..bfb3a42c7ba --- /dev/null +++ b/htdocs/includes/ace/snippets/mysql.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/mysql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "mysql"; + +}); diff --git a/htdocs/includes/ace/snippets/nix.js b/htdocs/includes/ace/snippets/nix.js new file mode 100644 index 00000000000..4fb6e7043c2 --- /dev/null +++ b/htdocs/includes/ace/snippets/nix.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/nix",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "nix"; + +}); diff --git a/htdocs/includes/ace/snippets/nsis.js b/htdocs/includes/ace/snippets/nsis.js new file mode 100644 index 00000000000..81b5726da2f --- /dev/null +++ b/htdocs/includes/ace/snippets/nsis.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/nsis",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/objectivec.js b/htdocs/includes/ace/snippets/objectivec.js new file mode 100644 index 00000000000..f93e6ae99a1 --- /dev/null +++ b/htdocs/includes/ace/snippets/objectivec.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/objectivec",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "objectivec"; + +}); diff --git a/htdocs/includes/ace/snippets/ocaml.js b/htdocs/includes/ace/snippets/ocaml.js new file mode 100644 index 00000000000..06e0940dbe6 --- /dev/null +++ b/htdocs/includes/ace/snippets/ocaml.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/ocaml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "ocaml"; + +}); diff --git a/htdocs/includes/ace/snippets/pascal.js b/htdocs/includes/ace/snippets/pascal.js new file mode 100644 index 00000000000..70aa2ee781e --- /dev/null +++ b/htdocs/includes/ace/snippets/pascal.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/pascal",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pascal"; + +}); diff --git a/htdocs/includes/ace/snippets/perl.js b/htdocs/includes/ace/snippets/perl.js new file mode 100644 index 00000000000..9f818432cac --- /dev/null +++ b/htdocs/includes/ace/snippets/perl.js @@ -0,0 +1,354 @@ +ace.define("ace/snippets/perl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# #!/usr/bin/perl\n\ +snippet #!\n\ + #!/usr/bin/env perl\n\ +\n\ +# Hash Pointer\n\ +snippet .\n\ + =>\n\ +# Function\n\ +snippet sub\n\ + sub ${1:function_name} {\n\ + ${2:#body ...}\n\ + }\n\ +# Conditional\n\ +snippet if\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# Conditional if..else\n\ +snippet ife\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ + else {\n\ + ${3:# else...}\n\ + }\n\ +# Conditional if..elsif..else\n\ +snippet ifee\n\ + if (${1}) {\n\ + ${2:# body...}\n\ + }\n\ + elsif (${3}) {\n\ + ${4:# elsif...}\n\ + }\n\ + else {\n\ + ${5:# else...}\n\ + }\n\ +# Conditional One-line\n\ +snippet xif\n\ + ${1:expression} if ${2:condition};${3}\n\ +# Unless conditional\n\ +snippet unless\n\ + unless (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# Unless conditional One-line\n\ +snippet xunless\n\ + ${1:expression} unless ${2:condition};${3}\n\ +# Try/Except\n\ +snippet eval\n\ + local $@;\n\ + eval {\n\ + ${1:# do something risky...}\n\ + };\n\ + if (my $e = $@) {\n\ + ${2:# handle failure...}\n\ + }\n\ +# While Loop\n\ +snippet wh\n\ + while (${1}) {\n\ + ${2:# body...}\n\ + }\n\ +# While Loop One-line\n\ +snippet xwh\n\ + ${1:expression} while ${2:condition};${3}\n\ +# C-style For Loop\n\ +snippet cfor\n\ + for (my $${2:var} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\ + ${4:# body...}\n\ + }\n\ +# For loop one-line\n\ +snippet xfor\n\ + ${1:expression} for @${2:array};${3}\n\ +# Foreach Loop\n\ +snippet for\n\ + foreach my $${1:x} (@${2:array}) {\n\ + ${3:# body...}\n\ + }\n\ +# Foreach Loop One-line\n\ +snippet fore\n\ + ${1:expression} foreach @${2:array};${3}\n\ +# Package\n\ +snippet package\n\ + package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`};\n\ +\n\ + ${2}\n\ +\n\ + 1;\n\ +\n\ + __END__\n\ +# Package syntax perl >= 5.14\n\ +snippet packagev514\n\ + package ${1:`substitute(Filename('', 'Page Title'), '^.', '\\u&', '')`} ${2:0.99};\n\ +\n\ + ${3}\n\ +\n\ + 1;\n\ +\n\ + __END__\n\ +#moose\n\ +snippet moose\n\ + use Moose;\n\ + use namespace::autoclean;\n\ + ${1:#}BEGIN {extends '${2:ParentClass}'};\n\ +\n\ + ${3}\n\ +# parent\n\ +snippet parent\n\ + use parent qw(${1:Parent Class});\n\ +# Read File\n\ +snippet slurp\n\ + my $${1:var} = do { local $/; open my $file, '<', \"${2:file}\"; <$file> };\n\ + ${3}\n\ +# strict warnings\n\ +snippet strwar\n\ + use strict;\n\ + use warnings;\n\ +# older versioning with perlcritic bypass\n\ +snippet vers\n\ + ## no critic\n\ + our $VERSION = '${1:version}';\n\ + eval $VERSION;\n\ + ## use critic\n\ +# new 'switch' like feature\n\ +snippet switch\n\ + use feature 'switch';\n\ +\n\ +# Anonymous subroutine\n\ +snippet asub\n\ + sub {\n\ + ${1:# body }\n\ + }\n\ +\n\ +\n\ +\n\ +# Begin block\n\ +snippet begin\n\ + BEGIN {\n\ + ${1:# begin body}\n\ + }\n\ +\n\ +# call package function with some parameter\n\ +snippet pkgmv\n\ + __PACKAGE__->${1:package_method}(${2:var})\n\ +\n\ +# call package function without a parameter\n\ +snippet pkgm\n\ + __PACKAGE__->${1:package_method}()\n\ +\n\ +# call package \"get_\" function without a parameter\n\ +snippet pkget\n\ + __PACKAGE__->get_${1:package_method}()\n\ +\n\ +# call package function with a parameter\n\ +snippet pkgetv\n\ + __PACKAGE__->get_${1:package_method}(${2:var})\n\ +\n\ +# complex regex\n\ +snippet qrx\n\ + qr/\n\ + ${1:regex}\n\ + /xms\n\ +\n\ +#simpler regex\n\ +snippet qr/\n\ + qr/${1:regex}/x\n\ +\n\ +#given\n\ +snippet given\n\ + given ($${1:var}) {\n\ + ${2:# cases}\n\ + ${3:# default}\n\ + }\n\ +\n\ +# switch-like case\n\ +snippet when\n\ + when (${1:case}) {\n\ + ${2:# body}\n\ + }\n\ +\n\ +# hash slice\n\ +snippet hslice\n\ + @{ ${1:hash} }{ ${2:array} }\n\ +\n\ +\n\ +# map\n\ +snippet map\n\ + map { ${2: body } } ${1: @array } ;\n\ +\n\ +\n\ +\n\ +# Pod stub\n\ +snippet ppod\n\ + =head1 NAME\n\ +\n\ + ${1:ClassName} - ${2:ShortDesc}\n\ +\n\ + =head1 SYNOPSIS\n\ +\n\ + use $1;\n\ +\n\ + ${3:# synopsis...}\n\ +\n\ + =head1 DESCRIPTION\n\ +\n\ + ${4:# longer description...}\n\ +\n\ +\n\ + =head1 INTERFACE\n\ +\n\ +\n\ + =head1 DEPENDENCIES\n\ +\n\ +\n\ + =head1 SEE ALSO\n\ +\n\ +\n\ +# Heading for a subroutine stub\n\ +snippet psub\n\ + =head2 ${1:MethodName}\n\ +\n\ + ${2:Summary....}\n\ +\n\ +# Heading for inline subroutine pod\n\ +snippet psubi\n\ + =head2 ${1:MethodName}\n\ +\n\ + ${2:Summary...}\n\ +\n\ +\n\ + =cut\n\ +# inline documented subroutine\n\ +snippet subpod\n\ + =head2 $1\n\ +\n\ + Summary of $1\n\ +\n\ + =cut\n\ +\n\ + sub ${1:subroutine_name} {\n\ + ${2:# body...}\n\ + }\n\ +# Subroutine signature\n\ +snippet parg\n\ + =over 2\n\ +\n\ + =item\n\ + Arguments\n\ +\n\ +\n\ + =over 3\n\ +\n\ + =item\n\ + C<${1:DataStructure}>\n\ +\n\ + ${2:Sample}\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ + =item\n\ + Return\n\ +\n\ + =over 3\n\ +\n\ +\n\ + =item\n\ + C<${3:...return data}>\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ + =back\n\ +\n\ +\n\ +\n\ +# Moose has\n\ +snippet has\n\ + has ${1:attribute} => (\n\ + is => '${2:ro|rw}',\n\ + isa => '${3:Str|Int|HashRef|ArrayRef|etc}',\n\ + default => sub {\n\ + ${4:defaultvalue}\n\ + },\n\ + ${5:# other attributes}\n\ + );\n\ +\n\ +\n\ +# override\n\ +snippet override\n\ + override ${1:attribute} => sub {\n\ + ${2:# my $self = shift;};\n\ + ${3:# my ($self, $args) = @_;};\n\ + };\n\ +\n\ +\n\ +# use test classes\n\ +snippet tuse\n\ + use Test::More;\n\ + use Test::Deep; # (); # uncomment to stop prototype errors\n\ + use Test::Exception;\n\ +\n\ +# local test lib\n\ +snippet tlib\n\ + use lib qw{ ./t/lib };\n\ +\n\ +#test methods\n\ +snippet tmeths\n\ + $ENV{TEST_METHOD} = '${1:regex}';\n\ +\n\ +# runtestclass\n\ +snippet trunner\n\ + use ${1:test_class};\n\ + $1->runtests();\n\ +\n\ +# Test::Class-style test\n\ +snippet tsub\n\ + sub t${1:number}_${2:test_case} :Test(${3:num_of_tests}) {\n\ + my $self = shift;\n\ + ${4:# body}\n\ +\n\ + }\n\ +\n\ +# Test::Routine-style test\n\ +snippet trsub\n\ + test ${1:test_name} => { description => '${2:Description of test.}'} => sub {\n\ + my ($self) = @_;\n\ + ${3:# test code}\n\ + };\n\ +\n\ +#prep test method\n\ +snippet tprep\n\ + sub prep${1:number}_${2:test_case} :Test(startup) {\n\ + my $self = shift;\n\ + ${4:# body}\n\ + }\n\ +\n\ +# cause failures to print stack trace\n\ +snippet debug_trace\n\ + use Carp; # 'verbose';\n\ + # cloak \"die\"\n\ + # warn \"warning\"\n\ + $SIG{'__DIE__'} = sub {\n\ + require Carp; Carp::confess\n\ + };\n\ +\n\ +"; +exports.scope = "perl"; + +}); diff --git a/htdocs/includes/ace/snippets/pgsql.js b/htdocs/includes/ace/snippets/pgsql.js new file mode 100644 index 00000000000..5914fe1db90 --- /dev/null +++ b/htdocs/includes/ace/snippets/pgsql.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/pgsql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pgsql"; + +}); diff --git a/htdocs/includes/ace/snippets/php.js b/htdocs/includes/ace/snippets/php.js new file mode 100644 index 00000000000..a99ab6e09b2 --- /dev/null +++ b/htdocs/includes/ace/snippets/php.js @@ -0,0 +1,384 @@ +ace.define("ace/snippets/php",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet \n\ +# this one is for php5.4\n\ +snippet \n\ +snippet ns\n\ + namespace ${1:Foo\\Bar\\Baz};\n\ + ${2}\n\ +snippet use\n\ + use ${1:Foo\\Bar\\Baz};\n\ + ${2}\n\ +snippet c\n\ + ${1:abstract }class ${2:$FILENAME}\n\ + {\n\ + ${3}\n\ + }\n\ +snippet i\n\ + interface ${1:$FILENAME}\n\ + {\n\ + ${2}\n\ + }\n\ +snippet t.\n\ + $this->${1}\n\ +snippet f\n\ + function ${1:foo}(${2:array }${3:$bar})\n\ + {\n\ + ${4}\n\ + }\n\ +# method\n\ +snippet m\n\ + ${1:abstract }${2:protected}${3: static} function ${4:foo}(${5:array }${6:$bar})\n\ + {\n\ + ${7}\n\ + }\n\ +# setter method\n\ +snippet sm \n\ + /**\n\ + * Sets the value of ${1:foo}\n\ + *\n\ + * @param ${2:$1} $$1 ${3:description}\n\ + *\n\ + * @return ${4:$FILENAME}\n\ + */\n\ + ${5:public} function set${6:$2}(${7:$2 }$$1)\n\ + {\n\ + $this->${8:$1} = $$1;\n\ + return $this;\n\ + }${9}\n\ +# getter method\n\ +snippet gm\n\ + /**\n\ + * Gets the value of ${1:foo}\n\ + *\n\ + * @return ${2:$1}\n\ + */\n\ + ${3:public} function get${4:$2}()\n\ + {\n\ + return $this->${5:$1};\n\ + }${6}\n\ +#setter\n\ +snippet $s\n\ + ${1:$foo}->set${2:Bar}(${3});\n\ +#getter\n\ +snippet $g\n\ + ${1:$foo}->get${2:Bar}();\n\ +\n\ +# Tertiary conditional\n\ +snippet =?:\n\ + $${1:foo} = ${2:true} ? ${3:a} : ${4};\n\ +snippet ?:\n\ + ${1:true} ? ${2:a} : ${3}\n\ +\n\ +snippet C\n\ + $_COOKIE['${1:variable}']${2}\n\ +snippet E\n\ + $_ENV['${1:variable}']${2}\n\ +snippet F\n\ + $_FILES['${1:variable}']${2}\n\ +snippet G\n\ + $_GET['${1:variable}']${2}\n\ +snippet P\n\ + $_POST['${1:variable}']${2}\n\ +snippet R\n\ + $_REQUEST['${1:variable}']${2}\n\ +snippet S\n\ + $_SERVER['${1:variable}']${2}\n\ +snippet SS\n\ + $_SESSION['${1:variable}']${2}\n\ + \n\ +# the following are old ones\n\ +snippet inc\n\ + include '${1:file}';${2}\n\ +snippet inc1\n\ + include_once '${1:file}';${2}\n\ +snippet req\n\ + require '${1:file}';${2}\n\ +snippet req1\n\ + require_once '${1:file}';${2}\n\ +# Start Docblock\n\ +snippet /*\n\ + /**\n\ + * ${1}\n\ + */\n\ +# Class - post doc\n\ +snippet doc_cp\n\ + /**\n\ + * ${1:undocumented class}\n\ + *\n\ + * @package ${2:default}\n\ + * @subpackage ${3:default}\n\ + * @author ${4:`g:snips_author`}\n\ + */${5}\n\ +# Class Variable - post doc\n\ +snippet doc_vp\n\ + /**\n\ + * ${1:undocumented class variable}\n\ + *\n\ + * @var ${2:string}\n\ + */${3}\n\ +# Class Variable\n\ +snippet doc_v\n\ + /**\n\ + * ${3:undocumented class variable}\n\ + *\n\ + * @var ${4:string}\n\ + */\n\ + ${1:var} $${2};${5}\n\ +# Class\n\ +snippet doc_c\n\ + /**\n\ + * ${3:undocumented class}\n\ + *\n\ + * @package ${4:default}\n\ + * @subpackage ${5:default}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1:}class ${2:}\n\ + {\n\ + ${7}\n\ + } // END $1class $2\n\ +# Constant Definition - post doc\n\ +snippet doc_dp\n\ + /**\n\ + * ${1:undocumented constant}\n\ + */${2}\n\ +# Constant Definition\n\ +snippet doc_d\n\ + /**\n\ + * ${3:undocumented constant}\n\ + */\n\ + define(${1}, ${2});${4}\n\ +# Function - post doc\n\ +snippet doc_fp\n\ + /**\n\ + * ${1:undocumented function}\n\ + *\n\ + * @return ${2:void}\n\ + * @author ${3:`g:snips_author`}\n\ + */${4}\n\ +# Function signature\n\ +snippet doc_s\n\ + /**\n\ + * ${4:undocumented function}\n\ + *\n\ + * @return ${5:void}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1}function ${2}(${3});${7}\n\ +# Function\n\ +snippet doc_f\n\ + /**\n\ + * ${4:undocumented function}\n\ + *\n\ + * @return ${5:void}\n\ + * @author ${6:`g:snips_author`}\n\ + */\n\ + ${1}function ${2}(${3})\n\ + {${7}\n\ + }\n\ +# Header\n\ +snippet doc_h\n\ + /**\n\ + * ${1}\n\ + *\n\ + * @author ${2:`g:snips_author`}\n\ + * @version ${3:$Id$}\n\ + * @copyright ${4:$2}, `strftime('%d %B, %Y')`\n\ + * @package ${5:default}\n\ + */\n\ + \n\ +# Interface\n\ +snippet interface\n\ + /**\n\ + * ${2:undocumented class}\n\ + *\n\ + * @package ${3:default}\n\ + * @author ${4:`g:snips_author`}\n\ + */\n\ + interface ${1:$FILENAME}\n\ + {\n\ + ${5}\n\ + }\n\ +# class ...\n\ +snippet class\n\ + /**\n\ + * ${1}\n\ + */\n\ + class ${2:$FILENAME}\n\ + {\n\ + ${3}\n\ + /**\n\ + * ${4}\n\ + */\n\ + ${5:public} function ${6:__construct}(${7:argument})\n\ + {\n\ + ${8:// code...}\n\ + }\n\ + }\n\ +# define(...)\n\ +snippet def\n\ + define('${1}'${2});${3}\n\ +# defined(...)\n\ +snippet def?\n\ + ${1}defined('${2}')${3}\n\ +snippet wh\n\ + while (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +# do ... while\n\ +snippet do\n\ + do {\n\ + ${2:// code... }\n\ + } while (${1:/* condition */});\n\ +snippet if\n\ + if (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +snippet ifil\n\ + \n\ + ${2:}\n\ + \n\ +snippet ife\n\ + if (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + } else {\n\ + ${3:// code...}\n\ + }\n\ + ${4}\n\ +snippet ifeil\n\ + \n\ + ${2:}\n\ + \n\ + ${3:}\n\ + \n\ + ${4}\n\ +snippet else\n\ + else {\n\ + ${1:// code...}\n\ + }\n\ +snippet elseif\n\ + elseif (${1:/* condition */}) {\n\ + ${2:// code...}\n\ + }\n\ +snippet switch\n\ + switch ($${1:variable}) {\n\ + case '${2:value}':\n\ + ${3:// code...}\n\ + break;\n\ + ${5}\n\ + default:\n\ + ${4:// code...}\n\ + break;\n\ + }\n\ +snippet case\n\ + case '${1:value}':\n\ + ${2:// code...}\n\ + break;${3}\n\ +snippet for\n\ + for ($${2:i} = 0; $$2 < ${1:count}; $$2${3:++}) {\n\ + ${4: // code...}\n\ + }\n\ +snippet foreach\n\ + foreach ($${1:variable} as $${2:value}) {\n\ + ${3:// code...}\n\ + }\n\ +snippet foreachil\n\ + \n\ + ${3:}\n\ + \n\ +snippet foreachk\n\ + foreach ($${1:variable} as $${2:key} => $${3:value}) {\n\ + ${4:// code...}\n\ + }\n\ +snippet foreachkil\n\ + $${3:value}): ?>\n\ + ${4:}\n\ + \n\ +# $... = array (...)\n\ +snippet array\n\ + $${1:arrayName} = array('${2}' => ${3});${4}\n\ +snippet try\n\ + try {\n\ + ${2}\n\ + } catch (${1:Exception} $e) {\n\ + }\n\ +# lambda with closure\n\ +snippet lambda\n\ + ${1:static }function (${2:args}) use (${3:&$x, $y /*put vars in scope (closure) */}) {\n\ + ${4}\n\ + };\n\ +# pre_dump();\n\ +snippet pd\n\ + echo '
    '; var_dump(${1}); echo '
    ';\n\ +# pre_dump(); die();\n\ +snippet pdd\n\ + echo '
    '; var_dump(${1}); echo '
    '; die(${2:});\n\ +snippet vd\n\ + var_dump(${1});\n\ +snippet vdd\n\ + var_dump(${1}); die(${2:});\n\ +snippet http_redirect\n\ + header (\"HTTP/1.1 301 Moved Permanently\"); \n\ + header (\"Location: \".URL); \n\ + exit();\n\ +# Getters & Setters\n\ +snippet gs\n\ + /**\n\ + * Gets the value of ${1:foo}\n\ + *\n\ + * @return ${2:$1}\n\ + */\n\ + public function get${3:$2}()\n\ + {\n\ + return $this->${4:$1};\n\ + }\n\ +\n\ + /**\n\ + * Sets the value of $1\n\ + *\n\ + * @param $2 $$1 ${5:description}\n\ + *\n\ + * @return ${6:$FILENAME}\n\ + */\n\ + public function set$3(${7:$2 }$$1)\n\ + {\n\ + $this->$4 = $$1;\n\ + return $this;\n\ + }${8}\n\ +# anotation, get, and set, useful for doctrine\n\ +snippet ags\n\ + /**\n\ + * ${1:description}\n\ + * \n\ + * @${7}\n\ + */\n\ + ${2:protected} $${3:foo};\n\ +\n\ + public function get${4:$3}()\n\ + {\n\ + return $this->$3;\n\ + }\n\ +\n\ + public function set$4(${5:$4 }$${6:$3})\n\ + {\n\ + $this->$3 = $$6;\n\ + return $this;\n\ + }\n\ +snippet rett\n\ + return true;\n\ +snippet retf\n\ + return false;\n\ +"; +exports.scope = "php"; + +}); diff --git a/htdocs/includes/ace/snippets/pig.js b/htdocs/includes/ace/snippets/pig.js new file mode 100644 index 00000000000..479a03bc937 --- /dev/null +++ b/htdocs/includes/ace/snippets/pig.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/pig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "pig"; + +}); diff --git a/htdocs/includes/ace/snippets/plain_text.js b/htdocs/includes/ace/snippets/plain_text.js new file mode 100644 index 00000000000..24223a66255 --- /dev/null +++ b/htdocs/includes/ace/snippets/plain_text.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/plain_text",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "plain_text"; + +}); diff --git a/htdocs/includes/ace/snippets/powershell.js b/htdocs/includes/ace/snippets/powershell.js new file mode 100644 index 00000000000..a8e7310a15a --- /dev/null +++ b/htdocs/includes/ace/snippets/powershell.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/powershell",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "powershell"; + +}); diff --git a/htdocs/includes/ace/snippets/praat.js b/htdocs/includes/ace/snippets/praat.js new file mode 100644 index 00000000000..dcf6826774c --- /dev/null +++ b/htdocs/includes/ace/snippets/praat.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/praat",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "praat"; + +}); diff --git a/htdocs/includes/ace/snippets/prolog.js b/htdocs/includes/ace/snippets/prolog.js new file mode 100644 index 00000000000..2d63cb83aa7 --- /dev/null +++ b/htdocs/includes/ace/snippets/prolog.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/prolog",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "prolog"; + +}); diff --git a/htdocs/includes/ace/snippets/properties.js b/htdocs/includes/ace/snippets/properties.js new file mode 100644 index 00000000000..44c1ada78e8 --- /dev/null +++ b/htdocs/includes/ace/snippets/properties.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/properties",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "properties"; + +}); diff --git a/htdocs/includes/ace/snippets/protobuf.js b/htdocs/includes/ace/snippets/protobuf.js new file mode 100644 index 00000000000..d00d57afd1d --- /dev/null +++ b/htdocs/includes/ace/snippets/protobuf.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/protobuf",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = ""; +exports.scope = "protobuf"; + +}); diff --git a/htdocs/includes/ace/snippets/python.js b/htdocs/includes/ace/snippets/python.js new file mode 100644 index 00000000000..182b34067e7 --- /dev/null +++ b/htdocs/includes/ace/snippets/python.js @@ -0,0 +1,165 @@ +ace.define("ace/snippets/python",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env python\n\ +snippet imp\n\ + import ${1:module}\n\ +snippet from\n\ + from ${1:package} import ${2:module}\n\ +# Module Docstring\n\ +snippet docs\n\ + '''\n\ + File: ${1:FILENAME:file_name}\n\ + Author: ${2:author}\n\ + Description: ${3}\n\ + '''\n\ +snippet wh\n\ + while ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +# dowh - does the same as do...while in other languages\n\ +snippet dowh\n\ + while True:\n\ + ${1:# TODO: write code...}\n\ + if ${2:condition}:\n\ + break\n\ +snippet with\n\ + with ${1:expr} as ${2:var}:\n\ + ${3:# TODO: write code...}\n\ +# New Class\n\ +snippet cl\n\ + class ${1:ClassName}(${2:object}):\n\ + \"\"\"${3:docstring for $1}\"\"\"\n\ + def __init__(self, ${4:arg}):\n\ + ${5:super($1, self).__init__()}\n\ + self.$4 = $4\n\ + ${6}\n\ +# New Function\n\ +snippet def\n\ + def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\ + \"\"\"${3:docstring for $1}\"\"\"\n\ + ${4:# TODO: write code...}\n\ +snippet deff\n\ + def ${1:fname}(${2:`indent('.') ? 'self' : ''`}):\n\ + ${3:# TODO: write code...}\n\ +# New Method\n\ +snippet defs\n\ + def ${1:mname}(self, ${2:arg}):\n\ + ${3:# TODO: write code...}\n\ +# New Property\n\ +snippet property\n\ + def ${1:foo}():\n\ + doc = \"${2:The $1 property.}\"\n\ + def fget(self):\n\ + ${3:return self._$1}\n\ + def fset(self, value):\n\ + ${4:self._$1 = value}\n\ +# Ifs\n\ +snippet if\n\ + if ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +snippet el\n\ + else:\n\ + ${1:# TODO: write code...}\n\ +snippet ei\n\ + elif ${1:condition}:\n\ + ${2:# TODO: write code...}\n\ +# For\n\ +snippet for\n\ + for ${1:item} in ${2:items}:\n\ + ${3:# TODO: write code...}\n\ +# Encodes\n\ +snippet cutf8\n\ + # -*- coding: utf-8 -*-\n\ +snippet clatin1\n\ + # -*- coding: latin-1 -*-\n\ +snippet cascii\n\ + # -*- coding: ascii -*-\n\ +# Lambda\n\ +snippet ld\n\ + ${1:var} = lambda ${2:vars} : ${3:action}\n\ +snippet .\n\ + self.\n\ +snippet try Try/Except\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ +snippet try Try/Except/Else\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + else:\n\ + ${5:# TODO: write code...}\n\ +snippet try Try/Except/Finally\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + finally:\n\ + ${5:# TODO: write code...}\n\ +snippet try Try/Except/Else/Finally\n\ + try:\n\ + ${1:# TODO: write code...}\n\ + except ${2:Exception}, ${3:e}:\n\ + ${4:raise $3}\n\ + else:\n\ + ${5:# TODO: write code...}\n\ + finally:\n\ + ${6:# TODO: write code...}\n\ +# if __name__ == '__main__':\n\ +snippet ifmain\n\ + if __name__ == '__main__':\n\ + ${1:main()}\n\ +# __magic__\n\ +snippet _\n\ + __${1:init}__${2}\n\ +# python debugger (pdb)\n\ +snippet pdb\n\ + import pdb; pdb.set_trace()\n\ +# ipython debugger (ipdb)\n\ +snippet ipdb\n\ + import ipdb; ipdb.set_trace()\n\ +# ipython debugger (pdbbb)\n\ +snippet pdbbb\n\ + import pdbpp; pdbpp.set_trace()\n\ +snippet pprint\n\ + import pprint; pprint.pprint(${1})${2}\n\ +snippet \"\n\ + \"\"\"\n\ + ${1:doc}\n\ + \"\"\"\n\ +# test function/method\n\ +snippet test\n\ + def test_${1:description}(${2:self}):\n\ + ${3:# TODO: write code...}\n\ +# test case\n\ +snippet testcase\n\ + class ${1:ExampleCase}(unittest.TestCase):\n\ + \n\ + def test_${2:description}(self):\n\ + ${3:# TODO: write code...}\n\ +snippet fut\n\ + from __future__ import ${1}\n\ +#getopt\n\ +snippet getopt\n\ + try:\n\ + # Short option syntax: \"hv:\"\n\ + # Long option syntax: \"help\" or \"verbose=\"\n\ + opts, args = getopt.getopt(sys.argv[1:], \"${1:short_options}\", [${2:long_options}])\n\ + \n\ + except getopt.GetoptError, err:\n\ + # Print debug info\n\ + print str(err)\n\ + ${3:error_action}\n\ +\n\ + for option, argument in opts:\n\ + if option in (\"-h\", \"--help\"):\n\ + ${4}\n\ + elif option in (\"-v\", \"--verbose\"):\n\ + verbose = argument\n\ +"; +exports.scope = "python"; + +}); diff --git a/htdocs/includes/ace/snippets/r.js b/htdocs/includes/ace/snippets/r.js new file mode 100644 index 00000000000..24c02a0c6a7 --- /dev/null +++ b/htdocs/includes/ace/snippets/r.js @@ -0,0 +1,128 @@ +ace.define("ace/snippets/r",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet #!\n\ + #!/usr/bin/env Rscript\n\ +\n\ +# includes\n\ +snippet lib\n\ + library(${1:package})\n\ +snippet req\n\ + require(${1:package})\n\ +snippet source\n\ + source('${1:file}')\n\ +\n\ +# conditionals\n\ +snippet if\n\ + if (${1:condition}) {\n\ + ${2:code}\n\ + }\n\ +snippet el\n\ + else {\n\ + ${1:code}\n\ + }\n\ +snippet ei\n\ + else if (${1:condition}) {\n\ + ${2:code}\n\ + }\n\ +\n\ +# functions\n\ +snippet fun\n\ + ${1:name} = function (${2:variables}) {\n\ + ${3:code}\n\ + }\n\ +snippet ret\n\ + return(${1:code})\n\ +\n\ +# dataframes, lists, etc\n\ +snippet df\n\ + ${1:name}[${2:rows}, ${3:cols}]\n\ +snippet c\n\ + c(${1:items})\n\ +snippet li\n\ + list(${1:items})\n\ +snippet mat\n\ + matrix(${1:data}, nrow=${2:rows}, ncol=${3:cols})\n\ +\n\ +# apply functions\n\ +snippet apply\n\ + apply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet lapply\n\ + lapply(${1:list}, ${2:function})\n\ +snippet sapply\n\ + sapply(${1:list}, ${2:function})\n\ +snippet vapply\n\ + vapply(${1:list}, ${2:function}, ${3:type})\n\ +snippet mapply\n\ + mapply(${1:function}, ${2:...})\n\ +snippet tapply\n\ + tapply(${1:vector}, ${2:index}, ${3:function})\n\ +snippet rapply\n\ + rapply(${1:list}, ${2:function})\n\ +\n\ +# plyr functions\n\ +snippet dd\n\ + ddply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet dl\n\ + dlply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet da\n\ + daply(${1:frame}, ${2:variables}, ${3:function})\n\ +snippet d_\n\ + d_ply(${1:frame}, ${2:variables}, ${3:function})\n\ +\n\ +snippet ad\n\ + adply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet al\n\ + alply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet aa\n\ + aaply(${1:array}, ${2:margin}, ${3:function})\n\ +snippet a_\n\ + a_ply(${1:array}, ${2:margin}, ${3:function})\n\ +\n\ +snippet ld\n\ + ldply(${1:list}, ${2:function})\n\ +snippet ll\n\ + llply(${1:list}, ${2:function})\n\ +snippet la\n\ + laply(${1:list}, ${2:function})\n\ +snippet l_\n\ + l_ply(${1:list}, ${2:function})\n\ +\n\ +snippet md\n\ + mdply(${1:matrix}, ${2:function})\n\ +snippet ml\n\ + mlply(${1:matrix}, ${2:function})\n\ +snippet ma\n\ + maply(${1:matrix}, ${2:function})\n\ +snippet m_\n\ + m_ply(${1:matrix}, ${2:function})\n\ +\n\ +# plot functions\n\ +snippet pl\n\ + plot(${1:x}, ${2:y})\n\ +snippet ggp\n\ + ggplot(${1:data}, aes(${2:aesthetics}))\n\ +snippet img\n\ + ${1:(jpeg,bmp,png,tiff)}(filename=\"${2:filename}\", width=${3}, height=${4}, unit=\"${5}\")\n\ + ${6:plot}\n\ + dev.off()\n\ +\n\ +# statistical test functions\n\ +snippet fis\n\ + fisher.test(${1:x}, ${2:y})\n\ +snippet chi\n\ + chisq.test(${1:x}, ${2:y})\n\ +snippet tt\n\ + t.test(${1:x}, ${2:y})\n\ +snippet wil\n\ + wilcox.test(${1:x}, ${2:y})\n\ +snippet cor\n\ + cor.test(${1:x}, ${2:y})\n\ +snippet fte\n\ + var.test(${1:x}, ${2:y})\n\ +snippet kvt \n\ + kv.test(${1:x}, ${2:y})\n\ +"; +exports.scope = "r"; + +}); diff --git a/htdocs/includes/ace/snippets/razor.js b/htdocs/includes/ace/snippets/razor.js new file mode 100644 index 00000000000..78fdf8c3eca --- /dev/null +++ b/htdocs/includes/ace/snippets/razor.js @@ -0,0 +1,10 @@ +ace.define("ace/snippets/razor",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet if\n\ +(${1} == ${2}) {\n\ + ${3}\n\ +}"; +exports.scope = "razor"; + +}); diff --git a/htdocs/includes/ace/snippets/rdoc.js b/htdocs/includes/ace/snippets/rdoc.js new file mode 100644 index 00000000000..956de47aa29 --- /dev/null +++ b/htdocs/includes/ace/snippets/rdoc.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/rdoc",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rdoc"; + +}); diff --git a/htdocs/includes/ace/snippets/rhtml.js b/htdocs/includes/ace/snippets/rhtml.js new file mode 100644 index 00000000000..e62ce87f741 --- /dev/null +++ b/htdocs/includes/ace/snippets/rhtml.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/rhtml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rhtml"; + +}); diff --git a/htdocs/includes/ace/snippets/rst.js b/htdocs/includes/ace/snippets/rst.js new file mode 100644 index 00000000000..db6c960f63d --- /dev/null +++ b/htdocs/includes/ace/snippets/rst.js @@ -0,0 +1,29 @@ +ace.define("ace/snippets/rst",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# rst\n\ +\n\ +snippet :\n\ + :${1:field name}: ${2:field body}\n\ +snippet *\n\ + *${1:Emphasis}*\n\ +snippet **\n\ + **${1:Strong emphasis}**\n\ +snippet _\n\ + \\`${1:hyperlink-name}\\`_\n\ + .. _\\`$1\\`: ${2:link-block}\n\ +snippet =\n\ + ${1:Title}\n\ + =====${2:=}\n\ + ${3}\n\ +snippet -\n\ + ${1:Title}\n\ + -----${2:-}\n\ + ${3}\n\ +snippet cont:\n\ + .. contents::\n\ + \n\ +"; +exports.scope = "rst"; + +}); diff --git a/htdocs/includes/ace/snippets/ruby.js b/htdocs/includes/ace/snippets/ruby.js new file mode 100644 index 00000000000..18bc409f47d --- /dev/null +++ b/htdocs/includes/ace/snippets/ruby.js @@ -0,0 +1,935 @@ +ace.define("ace/snippets/ruby",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "########################################\n\ +# Ruby snippets - for Rails, see below #\n\ +########################################\n\ +\n\ +# encoding for Ruby 1.9\n\ +snippet enc\n\ + # encoding: utf-8\n\ +\n\ +# #!/usr/bin/env ruby\n\ +snippet #!\n\ + #!/usr/bin/env ruby\n\ + # encoding: utf-8\n\ +\n\ +# New Block\n\ +snippet =b\n\ + =begin rdoc\n\ + ${1}\n\ + =end\n\ +snippet y\n\ + :yields: ${1:arguments}\n\ +snippet rb\n\ + #!/usr/bin/env ruby -wKU\n\ +snippet beg\n\ + begin\n\ + ${3}\n\ + rescue ${1:Exception} => ${2:e}\n\ + end\n\ +\n\ +snippet req require\n\ + require \"${1}\"${2}\n\ +snippet #\n\ + # =>\n\ +snippet end\n\ + __END__\n\ +snippet case\n\ + case ${1:object}\n\ + when ${2:condition}\n\ + ${3}\n\ + end\n\ +snippet when\n\ + when ${1:condition}\n\ + ${2}\n\ +snippet def\n\ + def ${1:method_name}\n\ + ${2}\n\ + end\n\ +snippet deft\n\ + def test_${1:case_name}\n\ + ${2}\n\ + end\n\ +snippet if\n\ + if ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet ife\n\ + if ${1:condition}\n\ + ${2}\n\ + else\n\ + ${3}\n\ + end\n\ +snippet elsif\n\ + elsif ${1:condition}\n\ + ${2}\n\ +snippet unless\n\ + unless ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet while\n\ + while ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet for\n\ + for ${1:e} in ${2:c}\n\ + ${3}\n\ + end\n\ +snippet until\n\ + until ${1:condition}\n\ + ${2}\n\ + end\n\ +snippet cla class .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + ${2}\n\ + end\n\ +snippet cla class .. initialize .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + def initialize(${2:args})\n\ + ${3}\n\ + end\n\ + end\n\ +snippet cla class .. < ParentClass .. initialize .. end\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < ${2:ParentClass}\n\ + def initialize(${3:args})\n\ + ${4}\n\ + end\n\ + end\n\ +snippet cla ClassName = Struct .. do .. end\n\ + ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} = Struct.new(:${2:attr_names}) do\n\ + def ${3:method_name}\n\ + ${4}\n\ + end\n\ + end\n\ +snippet cla class BlankSlate .. initialize .. end\n\ + class ${1:BlankSlate}\n\ + instance_methods.each { |meth| undef_method(meth) unless meth =~ /\\A__/ }\n\ + end\n\ +snippet cla class << self .. end\n\ + class << ${1:self}\n\ + ${2}\n\ + end\n\ +# class .. < DelegateClass .. initialize .. end\n\ +snippet cla-\n\ + class ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`} < DelegateClass(${2:ParentClass})\n\ + def initialize(${3:args})\n\ + super(${4:del_obj})\n\ +\n\ + ${5}\n\ + end\n\ + end\n\ +snippet mod module .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + ${2}\n\ + end\n\ +snippet mod module .. module_function .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + module_function\n\ +\n\ + ${2}\n\ + end\n\ +snippet mod module .. ClassMethods .. end\n\ + module ${1:`substitute(Filename(), '\\(_\\|^\\)\\(.\\)', '\\u\\2', 'g')`}\n\ + module ClassMethods\n\ + ${2}\n\ + end\n\ +\n\ + module InstanceMethods\n\ +\n\ + end\n\ +\n\ + def self.included(receiver)\n\ + receiver.extend ClassMethods\n\ + receiver.send :include, InstanceMethods\n\ + end\n\ + end\n\ +# attr_reader\n\ +snippet r\n\ + attr_reader :${1:attr_names}\n\ +# attr_writer\n\ +snippet w\n\ + attr_writer :${1:attr_names}\n\ +# attr_accessor\n\ +snippet rw\n\ + attr_accessor :${1:attr_names}\n\ +snippet atp\n\ + attr_protected :${1:attr_names}\n\ +snippet ata\n\ + attr_accessible :${1:attr_names}\n\ +# include Enumerable\n\ +snippet Enum\n\ + include Enumerable\n\ +\n\ + def each(&block)\n\ + ${1}\n\ + end\n\ +# include Comparable\n\ +snippet Comp\n\ + include Comparable\n\ +\n\ + def <=>(other)\n\ + ${1}\n\ + end\n\ +# extend Forwardable\n\ +snippet Forw-\n\ + extend Forwardable\n\ +# def self\n\ +snippet defs\n\ + def self.${1:class_method_name}\n\ + ${2}\n\ + end\n\ +# def method_missing\n\ +snippet defmm\n\ + def method_missing(meth, *args, &blk)\n\ + ${1}\n\ + end\n\ +snippet defd\n\ + def_delegator :${1:@del_obj}, :${2:del_meth}, :${3:new_name}\n\ +snippet defds\n\ + def_delegators :${1:@del_obj}, :${2:del_methods}\n\ +snippet am\n\ + alias_method :${1:new_name}, :${2:old_name}\n\ +snippet app\n\ + if __FILE__ == $PROGRAM_NAME\n\ + ${1}\n\ + end\n\ +# usage_if()\n\ +snippet usai\n\ + if ARGV.${1}\n\ + abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\ + end\n\ +# usage_unless()\n\ +snippet usau\n\ + unless ARGV.${1}\n\ + abort \"Usage: #{$PROGRAM_NAME} ${2:ARGS_GO_HERE}\"${3}\n\ + end\n\ +snippet array\n\ + Array.new(${1:10}) { |${2:i}| ${3} }\n\ +snippet hash\n\ + Hash.new { |${1:hash}, ${2:key}| $1[$2] = ${3} }\n\ +snippet file File.foreach() { |line| .. }\n\ + File.foreach(${1:\"path/to/file\"}) { |${2:line}| ${3} }\n\ +snippet file File.read()\n\ + File.read(${1:\"path/to/file\"})${2}\n\ +snippet Dir Dir.global() { |file| .. }\n\ + Dir.glob(${1:\"dir/glob/*\"}) { |${2:file}| ${3} }\n\ +snippet Dir Dir[\"..\"]\n\ + Dir[${1:\"glob/**/*.rb\"}]${2}\n\ +snippet dir\n\ + Filename.dirname(__FILE__)\n\ +snippet deli\n\ + delete_if { |${1:e}| ${2} }\n\ +snippet fil\n\ + fill(${1:range}) { |${2:i}| ${3} }\n\ +# flatten_once()\n\ +snippet flao\n\ + inject(Array.new) { |${1:arr}, ${2:a}| $1.push(*$2)}${3}\n\ +snippet zip\n\ + zip(${1:enums}) { |${2:row}| ${3} }\n\ +# downto(0) { |n| .. }\n\ +snippet dow\n\ + downto(${1:0}) { |${2:n}| ${3} }\n\ +snippet ste\n\ + step(${1:2}) { |${2:n}| ${3} }\n\ +snippet tim\n\ + times { |${1:n}| ${2} }\n\ +snippet upt\n\ + upto(${1:1.0/0.0}) { |${2:n}| ${3} }\n\ +snippet loo\n\ + loop { ${1} }\n\ +snippet ea\n\ + each { |${1:e}| ${2} }\n\ +snippet ead\n\ + each do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet eab\n\ + each_byte { |${1:byte}| ${2} }\n\ +snippet eac- each_char { |chr| .. }\n\ + each_char { |${1:chr}| ${2} }\n\ +snippet eac- each_cons(..) { |group| .. }\n\ + each_cons(${1:2}) { |${2:group}| ${3} }\n\ +snippet eai\n\ + each_index { |${1:i}| ${2} }\n\ +snippet eaid\n\ + each_index do |${1:i}|\n\ + ${2}\n\ + end\n\ +snippet eak\n\ + each_key { |${1:key}| ${2} }\n\ +snippet eakd\n\ + each_key do |${1:key}|\n\ + ${2}\n\ + end\n\ +snippet eal\n\ + each_line { |${1:line}| ${2} }\n\ +snippet eald\n\ + each_line do |${1:line}|\n\ + ${2}\n\ + end\n\ +snippet eap\n\ + each_pair { |${1:name}, ${2:val}| ${3} }\n\ +snippet eapd\n\ + each_pair do |${1:name}, ${2:val}|\n\ + ${3}\n\ + end\n\ +snippet eas-\n\ + each_slice(${1:2}) { |${2:group}| ${3} }\n\ +snippet easd-\n\ + each_slice(${1:2}) do |${2:group}|\n\ + ${3}\n\ + end\n\ +snippet eav\n\ + each_value { |${1:val}| ${2} }\n\ +snippet eavd\n\ + each_value do |${1:val}|\n\ + ${2}\n\ + end\n\ +snippet eawi\n\ + each_with_index { |${1:e}, ${2:i}| ${3} }\n\ +snippet eawid\n\ + each_with_index do |${1:e},${2:i}|\n\ + ${3}\n\ + end\n\ +snippet reve\n\ + reverse_each { |${1:e}| ${2} }\n\ +snippet reved\n\ + reverse_each do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet inj\n\ + inject(${1:init}) { |${2:mem}, ${3:var}| ${4} }\n\ +snippet injd\n\ + inject(${1:init}) do |${2:mem}, ${3:var}|\n\ + ${4}\n\ + end\n\ +snippet map\n\ + map { |${1:e}| ${2} }\n\ +snippet mapd\n\ + map do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet mapwi-\n\ + enum_with_index.map { |${1:e}, ${2:i}| ${3} }\n\ +snippet sor\n\ + sort { |a, b| ${1} }\n\ +snippet sorb\n\ + sort_by { |${1:e}| ${2} }\n\ +snippet ran\n\ + sort_by { rand }\n\ +snippet all\n\ + all? { |${1:e}| ${2} }\n\ +snippet any\n\ + any? { |${1:e}| ${2} }\n\ +snippet cl\n\ + classify { |${1:e}| ${2} }\n\ +snippet col\n\ + collect { |${1:e}| ${2} }\n\ +snippet cold\n\ + collect do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet det\n\ + detect { |${1:e}| ${2} }\n\ +snippet detd\n\ + detect do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet fet\n\ + fetch(${1:name}) { |${2:key}| ${3} }\n\ +snippet fin\n\ + find { |${1:e}| ${2} }\n\ +snippet find\n\ + find do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet fina\n\ + find_all { |${1:e}| ${2} }\n\ +snippet finad\n\ + find_all do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet gre\n\ + grep(${1:/pattern/}) { |${2:match}| ${3} }\n\ +snippet sub\n\ + ${1:g}sub(${2:/pattern/}) { |${3:match}| ${4} }\n\ +snippet sca\n\ + scan(${1:/pattern/}) { |${2:match}| ${3} }\n\ +snippet scad\n\ + scan(${1:/pattern/}) do |${2:match}|\n\ + ${3}\n\ + end\n\ +snippet max\n\ + max { |a, b| ${1} }\n\ +snippet min\n\ + min { |a, b| ${1} }\n\ +snippet par\n\ + partition { |${1:e}| ${2} }\n\ +snippet pard\n\ + partition do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet rej\n\ + reject { |${1:e}| ${2} }\n\ +snippet rejd\n\ + reject do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet sel\n\ + select { |${1:e}| ${2} }\n\ +snippet seld\n\ + select do |${1:e}|\n\ + ${2}\n\ + end\n\ +snippet lam\n\ + lambda { |${1:args}| ${2} }\n\ +snippet doo\n\ + do\n\ + ${1}\n\ + end\n\ +snippet dov\n\ + do |${1:variable}|\n\ + ${2}\n\ + end\n\ +snippet :\n\ + :${1:key} => ${2:\"value\"}${3}\n\ +snippet ope\n\ + open(${1:\"path/or/url/or/pipe\"}, \"${2:w}\") { |${3:io}| ${4} }\n\ +# path_from_here()\n\ +snippet fpath\n\ + File.join(File.dirname(__FILE__), *%2[${1:rel path here}])${2}\n\ +# unix_filter {}\n\ +snippet unif\n\ + ARGF.each_line${1} do |${2:line}|\n\ + ${3}\n\ + end\n\ +# option_parse {}\n\ +snippet optp\n\ + require \"optparse\"\n\ +\n\ + options = {${1:default => \"args\"}}\n\ +\n\ + ARGV.options do |opts|\n\ + opts.banner = \"Usage: #{File.basename($PROGRAM_NAME)}\n\ +snippet opt\n\ + opts.on( \"-${1:o}\", \"--${2:long-option-name}\", ${3:String},\n\ + \"${4:Option description.}\") do |${5:opt}|\n\ + ${6}\n\ + end\n\ +snippet tc\n\ + require \"test/unit\"\n\ +\n\ + require \"${1:library_file_name}\"\n\ +\n\ + class Test${2:$1} < Test::Unit::TestCase\n\ + def test_${3:case_name}\n\ + ${4}\n\ + end\n\ + end\n\ +snippet ts\n\ + require \"test/unit\"\n\ +\n\ + require \"tc_${1:test_case_file}\"\n\ + require \"tc_${2:test_case_file}\"${3}\n\ +snippet as\n\ + assert ${1:test}, \"${2:Failure message.}\"${3}\n\ +snippet ase\n\ + assert_equal ${1:expected}, ${2:actual}${3}\n\ +snippet asne\n\ + assert_not_equal ${1:unexpected}, ${2:actual}${3}\n\ +snippet asid\n\ + assert_in_delta ${1:expected_float}, ${2:actual_float}, ${3:2 ** -20}${4}\n\ +snippet asio\n\ + assert_instance_of ${1:ExpectedClass}, ${2:actual_instance}${3}\n\ +snippet asko\n\ + assert_kind_of ${1:ExpectedKind}, ${2:actual_instance}${3}\n\ +snippet asn\n\ + assert_nil ${1:instance}${2}\n\ +snippet asnn\n\ + assert_not_nil ${1:instance}${2}\n\ +snippet asm\n\ + assert_match /${1:expected_pattern}/, ${2:actual_string}${3}\n\ +snippet asnm\n\ + assert_no_match /${1:unexpected_pattern}/, ${2:actual_string}${3}\n\ +snippet aso\n\ + assert_operator ${1:left}, :${2:operator}, ${3:right}${4}\n\ +snippet asr\n\ + assert_raise ${1:Exception} { ${2} }\n\ +snippet asrd\n\ + assert_raise ${1:Exception} do\n\ + ${2}\n\ + end\n\ +snippet asnr\n\ + assert_nothing_raised ${1:Exception} { ${2} }\n\ +snippet asnrd\n\ + assert_nothing_raised ${1:Exception} do\n\ + ${2}\n\ + end\n\ +snippet asrt\n\ + assert_respond_to ${1:object}, :${2:method}${3}\n\ +snippet ass assert_same(..)\n\ + assert_same ${1:expected}, ${2:actual}${3}\n\ +snippet ass assert_send(..)\n\ + assert_send [${1:object}, :${2:message}, ${3:args}]${4}\n\ +snippet asns\n\ + assert_not_same ${1:unexpected}, ${2:actual}${3}\n\ +snippet ast\n\ + assert_throws :${1:expected} { ${2} }\n\ +snippet astd\n\ + assert_throws :${1:expected} do\n\ + ${2}\n\ + end\n\ +snippet asnt\n\ + assert_nothing_thrown { ${1} }\n\ +snippet asntd\n\ + assert_nothing_thrown do\n\ + ${1}\n\ + end\n\ +snippet fl\n\ + flunk \"${1:Failure message.}\"${2}\n\ +# Benchmark.bmbm do .. end\n\ +snippet bm-\n\ + TESTS = ${1:10_000}\n\ + Benchmark.bmbm do |results|\n\ + ${2}\n\ + end\n\ +snippet rep\n\ + results.report(\"${1:name}:\") { TESTS.times { ${2} }}\n\ +# Marshal.dump(.., file)\n\ +snippet Md\n\ + File.open(${1:\"path/to/file.dump\"}, \"wb\") { |${2:file}| Marshal.dump(${3:obj}, $2) }${4}\n\ +# Mashal.load(obj)\n\ +snippet Ml\n\ + File.open(${1:\"path/to/file.dump\"}, \"rb\") { |${2:file}| Marshal.load($2) }${3}\n\ +# deep_copy(..)\n\ +snippet deec\n\ + Marshal.load(Marshal.dump(${1:obj_to_copy}))${2}\n\ +snippet Pn-\n\ + PStore.new(${1:\"file_name.pstore\"})${2}\n\ +snippet tra\n\ + transaction(${1:true}) { ${2} }\n\ +# xmlread(..)\n\ +snippet xml-\n\ + REXML::Document.new(File.read(${1:\"path/to/file\"}))${2}\n\ +# xpath(..) { .. }\n\ +snippet xpa\n\ + elements.each(${1:\"//Xpath\"}) do |${2:node}|\n\ + ${3}\n\ + end\n\ +# class_from_name()\n\ +snippet clafn\n\ + split(\"::\").inject(Object) { |par, const| par.const_get(const) }\n\ +# singleton_class()\n\ +snippet sinc\n\ + class << self; self end\n\ +snippet nam\n\ + namespace :${1:`Filename()`} do\n\ + ${2}\n\ + end\n\ +snippet tas\n\ + desc \"${1:Task description}\"\n\ + task :${2:task_name => [:dependent, :tasks]} do\n\ + ${3}\n\ + end\n\ +# block\n\ +snippet b\n\ + { |${1:var}| ${2} }\n\ +snippet begin\n\ + begin\n\ + raise 'A test exception.'\n\ + rescue Exception => e\n\ + puts e.message\n\ + puts e.backtrace.inspect\n\ + else\n\ + # other exception\n\ + ensure\n\ + # always executed\n\ + end\n\ +\n\ +#debugging\n\ +snippet debug\n\ + require 'ruby-debug'; debugger; true;\n\ +snippet pry\n\ + require 'pry'; binding.pry\n\ +\n\ +#############################################\n\ +# Rails snippets - for pure Ruby, see above #\n\ +#############################################\n\ +snippet art\n\ + assert_redirected_to ${1::action => \"${2:index}\"}\n\ +snippet artnp\n\ + assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1}, ${4:@$2})\n\ +snippet artnpp\n\ + assert_redirected_to ${1:parent}_${2:child}_path(${3:@$1})\n\ +snippet artp\n\ + assert_redirected_to ${1:model}_path(${2:@$1})\n\ +snippet artpp\n\ + assert_redirected_to ${1:model}s_path\n\ +snippet asd\n\ + assert_difference \"${1:Model}.${2:count}\", $1 do\n\ + ${3}\n\ + end\n\ +snippet asnd\n\ + assert_no_difference \"${1:Model}.${2:count}\" do\n\ + ${3}\n\ + end\n\ +snippet asre\n\ + assert_response :${1:success}, @response.body${2}\n\ +snippet asrj\n\ + assert_rjs :${1:replace}, \"${2:dom id}\"\n\ +snippet ass assert_select(..)\n\ + assert_select '${1:path}', :${2:text} => '${3:inner_html' ${4:do}\n\ +snippet bf\n\ + before_filter :${1:method}\n\ +snippet bt\n\ + belongs_to :${1:association}\n\ +snippet crw\n\ + cattr_accessor :${1:attr_names}\n\ +snippet defcreate\n\ + def create\n\ + @${1:model_class_name} = ${2:ModelClassName}.new(params[:$1])\n\ +\n\ + respond_to do |wants|\n\ + if @$1.save\n\ + flash[:notice] = '$2 was successfully created.'\n\ + wants.html { redirect_to(@$1) }\n\ + wants.xml { render :xml => @$1, :status => :created, :location => @$1 }\n\ + else\n\ + wants.html { render :action => \"new\" }\n\ + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\ + end\n\ + end\n\ + end${3}\n\ +snippet defdestroy\n\ + def destroy\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ + @$1.destroy\n\ +\n\ + respond_to do |wants|\n\ + wants.html { redirect_to($1s_url) }\n\ + wants.xml { head :ok }\n\ + end\n\ + end${3}\n\ +snippet defedit\n\ + def edit\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ + end\n\ +snippet defindex\n\ + def index\n\ + @${1:model_class_name} = ${2:ModelClassName}.all\n\ +\n\ + respond_to do |wants|\n\ + wants.html # index.html.erb\n\ + wants.xml { render :xml => @$1s }\n\ + end\n\ + end${3}\n\ +snippet defnew\n\ + def new\n\ + @${1:model_class_name} = ${2:ModelClassName}.new\n\ +\n\ + respond_to do |wants|\n\ + wants.html # new.html.erb\n\ + wants.xml { render :xml => @$1 }\n\ + end\n\ + end${3}\n\ +snippet defshow\n\ + def show\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ +\n\ + respond_to do |wants|\n\ + wants.html # show.html.erb\n\ + wants.xml { render :xml => @$1 }\n\ + end\n\ + end${3}\n\ +snippet defupdate\n\ + def update\n\ + @${1:model_class_name} = ${2:ModelClassName}.find(params[:id])\n\ +\n\ + respond_to do |wants|\n\ + if @$1.update_attributes(params[:$1])\n\ + flash[:notice] = '$2 was successfully updated.'\n\ + wants.html { redirect_to(@$1) }\n\ + wants.xml { head :ok }\n\ + else\n\ + wants.html { render :action => \"edit\" }\n\ + wants.xml { render :xml => @$1.errors, :status => :unprocessable_entity }\n\ + end\n\ + end\n\ + end${3}\n\ +snippet flash\n\ + flash[:${1:notice}] = \"${2}\"\n\ +snippet habtm\n\ + has_and_belongs_to_many :${1:object}, :join_table => \"${2:table_name}\", :foreign_key => \"${3}_id\"${4}\n\ +snippet hm\n\ + has_many :${1:object}\n\ +snippet hmd\n\ + has_many :${1:other}s, :class_name => \"${2:$1}\", :foreign_key => \"${3:$1}_id\", :dependent => :destroy${4}\n\ +snippet hmt\n\ + has_many :${1:object}, :through => :${2:object}\n\ +snippet ho\n\ + has_one :${1:object}\n\ +snippet i18\n\ + I18n.t('${1:type.key}')${2}\n\ +snippet ist\n\ + <%= image_submit_tag(\"${1:agree.png}\", :id => \"${2:id}\"${3} %>\n\ +snippet log\n\ + Rails.logger.${1:debug} ${2}\n\ +snippet log2\n\ + RAILS_DEFAULT_LOGGER.${1:debug} ${2}\n\ +snippet logd\n\ + logger.debug { \"${1:message}\" }${2}\n\ +snippet loge\n\ + logger.error { \"${1:message}\" }${2}\n\ +snippet logf\n\ + logger.fatal { \"${1:message}\" }${2}\n\ +snippet logi\n\ + logger.info { \"${1:message}\" }${2}\n\ +snippet logw\n\ + logger.warn { \"${1:message}\" }${2}\n\ +snippet mapc\n\ + ${1:map}.${2:connect} '${3:controller/:action/:id}'\n\ +snippet mapca\n\ + ${1:map}.catch_all \"*${2:anything}\", :controller => \"${3:default}\", :action => \"${4:error}\"${5}\n\ +snippet mapr\n\ + ${1:map}.resource :${2:resource}\n\ +snippet maprs\n\ + ${1:map}.resources :${2:resource}\n\ +snippet mapwo\n\ + ${1:map}.with_options :${2:controller} => '${3:thing}' do |$3|\n\ + ${4}\n\ + end\n\ +snippet mbs\n\ + before_save :${1:method}\n\ +snippet mcht\n\ + change_table :${1:table_name} do |t|\n\ + ${2}\n\ + end\n\ +snippet mp\n\ + map(&:${1:id})\n\ +snippet mrw\n\ + mattr_accessor :${1:attr_names}\n\ +snippet oa\n\ + order(\"${1:field}\")\n\ +snippet od\n\ + order(\"${1:field} DESC\")\n\ +snippet pa\n\ + params[:${1:id}]${2}\n\ +snippet ra\n\ + render :action => \"${1:action}\"\n\ +snippet ral\n\ + render :action => \"${1:action}\", :layout => \"${2:layoutname}\"\n\ +snippet rest\n\ + respond_to do |wants|\n\ + wants.${1:html} { ${2} }\n\ + end\n\ +snippet rf\n\ + render :file => \"${1:filepath}\"\n\ +snippet rfu\n\ + render :file => \"${1:filepath}\", :use_full_path => ${2:false}\n\ +snippet ri\n\ + render :inline => \"${1:<%= 'hello' %>}\"\n\ +snippet ril\n\ + render :inline => \"${1:<%= 'hello' %>}\", :locals => { ${2::name} => \"${3:value}\"${4} }\n\ +snippet rit\n\ + render :inline => \"${1:<%= 'hello' %>}\", :type => ${2::rxml}\n\ +snippet rjson\n\ + render :json => ${1:text to render}\n\ +snippet rl\n\ + render :layout => \"${1:layoutname}\"\n\ +snippet rn\n\ + render :nothing => ${1:true}\n\ +snippet rns\n\ + render :nothing => ${1:true}, :status => ${2:401}\n\ +snippet rp\n\ + render :partial => \"${1:item}\"\n\ +snippet rpc\n\ + render :partial => \"${1:item}\", :collection => ${2:@$1s}\n\ +snippet rpl\n\ + render :partial => \"${1:item}\", :locals => { :${2:$1} => ${3:@$1}\n\ +snippet rpo\n\ + render :partial => \"${1:item}\", :object => ${2:@$1}\n\ +snippet rps\n\ + render :partial => \"${1:item}\", :status => ${2:500}\n\ +snippet rt\n\ + render :text => \"${1:text to render}\"\n\ +snippet rtl\n\ + render :text => \"${1:text to render}\", :layout => \"${2:layoutname}\"\n\ +snippet rtlt\n\ + render :text => \"${1:text to render}\", :layout => ${2:true}\n\ +snippet rts\n\ + render :text => \"${1:text to render}\", :status => ${2:401}\n\ +snippet ru\n\ + render :update do |${1:page}|\n\ + $1.${2}\n\ + end\n\ +snippet rxml\n\ + render :xml => ${1:text to render}\n\ +snippet sc\n\ + scope :${1:name}, :where(:@${2:field} => ${3:value})\n\ +snippet sl\n\ + scope :${1:name}, lambda do |${2:value}|\n\ + where(\"${3:field = ?}\", ${4:bind var})\n\ + end\n\ +snippet sha1\n\ + Digest::SHA1.hexdigest(${1:string})\n\ +snippet sweeper\n\ + class ${1:ModelClassName}Sweeper < ActionController::Caching::Sweeper\n\ + observe $1\n\ +\n\ + def after_save(${2:model_class_name})\n\ + expire_cache($2)\n\ + end\n\ +\n\ + def after_destroy($2)\n\ + expire_cache($2)\n\ + end\n\ +\n\ + def expire_cache($2)\n\ + expire_page\n\ + end\n\ + end\n\ +snippet tcb\n\ + t.boolean :${1:title}\n\ + ${2}\n\ +snippet tcbi\n\ + t.binary :${1:title}, :limit => ${2:2}.megabytes\n\ + ${3}\n\ +snippet tcd\n\ + t.decimal :${1:title}, :precision => ${2:10}, :scale => ${3:2}\n\ + ${4}\n\ +snippet tcda\n\ + t.date :${1:title}\n\ + ${2}\n\ +snippet tcdt\n\ + t.datetime :${1:title}\n\ + ${2}\n\ +snippet tcf\n\ + t.float :${1:title}\n\ + ${2}\n\ +snippet tch\n\ + t.change :${1:name}, :${2:string}, :${3:limit} => ${4:80}\n\ + ${5}\n\ +snippet tci\n\ + t.integer :${1:title}\n\ + ${2}\n\ +snippet tcl\n\ + t.integer :lock_version, :null => false, :default => 0\n\ + ${1}\n\ +snippet tcr\n\ + t.references :${1:taggable}, :polymorphic => { :default => '${2:Photo}' }\n\ + ${3}\n\ +snippet tcs\n\ + t.string :${1:title}\n\ + ${2}\n\ +snippet tct\n\ + t.text :${1:title}\n\ + ${2}\n\ +snippet tcti\n\ + t.time :${1:title}\n\ + ${2}\n\ +snippet tcts\n\ + t.timestamp :${1:title}\n\ + ${2}\n\ +snippet tctss\n\ + t.timestamps\n\ + ${1}\n\ +snippet va\n\ + validates_associated :${1:attribute}\n\ +snippet vao\n\ + validates_acceptance_of :${1:terms}\n\ +snippet vc\n\ + validates_confirmation_of :${1:attribute}\n\ +snippet ve\n\ + validates_exclusion_of :${1:attribute}, :in => ${2:%w( mov avi )}\n\ +snippet vf\n\ + validates_format_of :${1:attribute}, :with => /${2:regex}/\n\ +snippet vi\n\ + validates_inclusion_of :${1:attribute}, :in => %w(${2: mov avi })\n\ +snippet vl\n\ + validates_length_of :${1:attribute}, :within => ${2:3}..${3:20}\n\ +snippet vn\n\ + validates_numericality_of :${1:attribute}\n\ +snippet vpo\n\ + validates_presence_of :${1:attribute}\n\ +snippet vu\n\ + validates_uniqueness_of :${1:attribute}\n\ +snippet wants\n\ + wants.${1:js|xml|html} { ${2} }\n\ +snippet wc\n\ + where(${1:\"conditions\"}${2:, bind_var})\n\ +snippet wh\n\ + where(${1:field} => ${2:value})\n\ +snippet xdelete\n\ + xhr :delete, :${1:destroy}, :id => ${2:1}${3}\n\ +snippet xget\n\ + xhr :get, :${1:show}, :id => ${2:1}${3}\n\ +snippet xpost\n\ + xhr :post, :${1:create}, :${2:object} => { ${3} }\n\ +snippet xput\n\ + xhr :put, :${1:update}, :id => ${2:1}, :${3:object} => { ${4} }${5}\n\ +snippet test\n\ + test \"should ${1:do something}\" do\n\ + ${2}\n\ + end\n\ +#migrations\n\ +snippet mac\n\ + add_column :${1:table_name}, :${2:column_name}, :${3:data_type}\n\ +snippet mrc\n\ + remove_column :${1:table_name}, :${2:column_name}\n\ +snippet mrnc\n\ + rename_column :${1:table_name}, :${2:old_column_name}, :${3:new_column_name}\n\ +snippet mcc\n\ + change_column :${1:table}, :${2:column}, :${3:type}\n\ +snippet mccc\n\ + t.column :${1:title}, :${2:string}\n\ +snippet mct\n\ + create_table :${1:table_name} do |t|\n\ + t.column :${2:name}, :${3:type}\n\ + end\n\ +snippet migration\n\ + class ${1:class_name} < ActiveRecord::Migration\n\ + def self.up\n\ + ${2}\n\ + end\n\ +\n\ + def self.down\n\ + end\n\ + end\n\ +\n\ +snippet trc\n\ + t.remove :${1:column}\n\ +snippet tre\n\ + t.rename :${1:old_column_name}, :${2:new_column_name}\n\ + ${3}\n\ +snippet tref\n\ + t.references :${1:model}\n\ +\n\ +#rspec\n\ +snippet it\n\ + it \"${1:spec_name}\" do\n\ + ${2}\n\ + end\n\ +snippet itp\n\ + it \"${1:spec_name}\"\n\ + ${2}\n\ +snippet desc\n\ + describe ${1:class_name} do\n\ + ${2}\n\ + end\n\ +snippet cont\n\ + context \"${1:message}\" do\n\ + ${2}\n\ + end\n\ +snippet bef\n\ + before :${1:each} do\n\ + ${2}\n\ + end\n\ +snippet aft\n\ + after :${1:each} do\n\ + ${2}\n\ + end\n\ +"; +exports.scope = "ruby"; + +}); diff --git a/htdocs/includes/ace/snippets/rust.js b/htdocs/includes/ace/snippets/rust.js new file mode 100644 index 00000000000..0411c63e152 --- /dev/null +++ b/htdocs/includes/ace/snippets/rust.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/rust",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "rust"; + +}); diff --git a/htdocs/includes/ace/snippets/sass.js b/htdocs/includes/ace/snippets/sass.js new file mode 100644 index 00000000000..b9adc9d8c36 --- /dev/null +++ b/htdocs/includes/ace/snippets/sass.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/sass",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "sass"; + +}); diff --git a/htdocs/includes/ace/snippets/scad.js b/htdocs/includes/ace/snippets/scad.js new file mode 100644 index 00000000000..998a98ac67d --- /dev/null +++ b/htdocs/includes/ace/snippets/scad.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/scad",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scad"; + +}); diff --git a/htdocs/includes/ace/snippets/scala.js b/htdocs/includes/ace/snippets/scala.js new file mode 100644 index 00000000000..4051d988833 --- /dev/null +++ b/htdocs/includes/ace/snippets/scala.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/scala",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scala"; + +}); diff --git a/htdocs/includes/ace/snippets/scheme.js b/htdocs/includes/ace/snippets/scheme.js new file mode 100644 index 00000000000..202d0741506 --- /dev/null +++ b/htdocs/includes/ace/snippets/scheme.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/scheme",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scheme"; + +}); diff --git a/htdocs/includes/ace/snippets/scss.js b/htdocs/includes/ace/snippets/scss.js new file mode 100644 index 00000000000..fbd98f74cae --- /dev/null +++ b/htdocs/includes/ace/snippets/scss.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/scss",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "scss"; + +}); diff --git a/htdocs/includes/ace/snippets/sh.js b/htdocs/includes/ace/snippets/sh.js new file mode 100644 index 00000000000..0f1f6d8e124 --- /dev/null +++ b/htdocs/includes/ace/snippets/sh.js @@ -0,0 +1,90 @@ +ace.define("ace/snippets/sh",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Shebang. Executing bash via /usr/bin/env makes scripts more portable.\n\ +snippet #!\n\ + #!/usr/bin/env bash\n\ + \n\ +snippet if\n\ + if [[ ${1:condition} ]]; then\n\ + ${2:#statements}\n\ + fi\n\ +snippet elif\n\ + elif [[ ${1:condition} ]]; then\n\ + ${2:#statements}\n\ +snippet for\n\ + for (( ${2:i} = 0; $2 < ${1:count}; $2++ )); do\n\ + ${3:#statements}\n\ + done\n\ +snippet fori\n\ + for ${1:needle} in ${2:haystack} ; do\n\ + ${3:#statements}\n\ + done\n\ +snippet wh\n\ + while [[ ${1:condition} ]]; do\n\ + ${2:#statements}\n\ + done\n\ +snippet until\n\ + until [[ ${1:condition} ]]; do\n\ + ${2:#statements}\n\ + done\n\ +snippet case\n\ + case ${1:word} in\n\ + ${2:pattern})\n\ + ${3};;\n\ + esac\n\ +snippet go \n\ + while getopts '${1:o}' ${2:opts} \n\ + do \n\ + case $$2 in\n\ + ${3:o0})\n\ + ${4:#staments};;\n\ + esac\n\ + done\n\ +# Set SCRIPT_DIR variable to directory script is located.\n\ +snippet sdir\n\ + SCRIPT_DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" && pwd )\"\n\ +# getopt\n\ +snippet getopt\n\ + __ScriptVersion=\"${1:version}\"\n\ +\n\ + #=== FUNCTION ================================================================\n\ + # NAME: usage\n\ + # DESCRIPTION: Display usage information.\n\ + #===============================================================================\n\ + function usage ()\n\ + {\n\ + cat <<- EOT\n\ +\n\ + Usage : $${0:0} [options] [--] \n\ +\n\ + Options: \n\ + -h|help Display this message\n\ + -v|version Display script version\n\ +\n\ + EOT\n\ + } # ---------- end of function usage ----------\n\ +\n\ + #-----------------------------------------------------------------------\n\ + # Handle command line arguments\n\ + #-----------------------------------------------------------------------\n\ +\n\ + while getopts \":hv\" opt\n\ + do\n\ + case $opt in\n\ +\n\ + h|help ) usage; exit 0 ;;\n\ +\n\ + v|version ) echo \"$${0:0} -- Version $__ScriptVersion\"; exit 0 ;;\n\ +\n\ + \\? ) echo -e \"\\n Option does not exist : $OPTARG\\n\"\n\ + usage; exit 1 ;;\n\ +\n\ + esac # --- end of case ---\n\ + done\n\ + shift $(($OPTIND-1))\n\ +\n\ +"; +exports.scope = "sh"; + +}); diff --git a/htdocs/includes/ace/snippets/sjs.js b/htdocs/includes/ace/snippets/sjs.js new file mode 100644 index 00000000000..cf39a34ecd6 --- /dev/null +++ b/htdocs/includes/ace/snippets/sjs.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/sjs",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "sjs"; + +}); diff --git a/htdocs/includes/ace/snippets/smarty.js b/htdocs/includes/ace/snippets/smarty.js new file mode 100644 index 00000000000..47319a25992 --- /dev/null +++ b/htdocs/includes/ace/snippets/smarty.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/smarty",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "smarty"; + +}); diff --git a/htdocs/includes/ace/snippets/snippets.js b/htdocs/includes/ace/snippets/snippets.js new file mode 100644 index 00000000000..b81605ccdfe --- /dev/null +++ b/htdocs/includes/ace/snippets/snippets.js @@ -0,0 +1,16 @@ +ace.define("ace/snippets/snippets",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# snippets for making snippets :)\n\ +snippet snip\n\ + snippet ${1:trigger}\n\ + ${2}\n\ +snippet msnip\n\ + snippet ${1:trigger} ${2:description}\n\ + ${3}\n\ +snippet v\n\ + {VISUAL}\n\ +"; +exports.scope = "snippets"; + +}); diff --git a/htdocs/includes/ace/snippets/soy_template.js b/htdocs/includes/ace/snippets/soy_template.js new file mode 100644 index 00000000000..908f5fdf65e --- /dev/null +++ b/htdocs/includes/ace/snippets/soy_template.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/soy_template",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "soy_template"; + +}); diff --git a/htdocs/includes/ace/snippets/space.js b/htdocs/includes/ace/snippets/space.js new file mode 100644 index 00000000000..302b84e00be --- /dev/null +++ b/htdocs/includes/ace/snippets/space.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/space",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "space"; + +}); diff --git a/htdocs/includes/ace/snippets/sparql.js b/htdocs/includes/ace/snippets/sparql.js new file mode 100644 index 00000000000..2c87bbfe950 --- /dev/null +++ b/htdocs/includes/ace/snippets/sparql.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/sparql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/sql.js b/htdocs/includes/ace/snippets/sql.js new file mode 100644 index 00000000000..1822126ba78 --- /dev/null +++ b/htdocs/includes/ace/snippets/sql.js @@ -0,0 +1,33 @@ +ace.define("ace/snippets/sql",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet tbl\n\ + create table ${1:table} (\n\ + ${2:columns}\n\ + );\n\ +snippet col\n\ + ${1:name} ${2:type} ${3:default ''} ${4:not null}\n\ +snippet ccol\n\ + ${1:name} varchar2(${2:size}) ${3:default ''} ${4:not null}\n\ +snippet ncol\n\ + ${1:name} number ${3:default 0} ${4:not null}\n\ +snippet dcol\n\ + ${1:name} date ${3:default sysdate} ${4:not null}\n\ +snippet ind\n\ + create index ${3:$1_$2} on ${1:table}(${2:column});\n\ +snippet uind\n\ + create unique index ${1:name} on ${2:table}(${3:column});\n\ +snippet tblcom\n\ + comment on table ${1:table} is '${2:comment}';\n\ +snippet colcom\n\ + comment on column ${1:table}.${2:column} is '${3:comment}';\n\ +snippet addcol\n\ + alter table ${1:table} add (${2:column} ${3:type});\n\ +snippet seq\n\ + create sequence ${1:name} start with ${2:1} increment by ${3:1} minvalue ${4:1};\n\ +snippet s*\n\ + select * from ${1:table}\n\ +"; +exports.scope = "sql"; + +}); diff --git a/htdocs/includes/ace/snippets/sqlserver.js b/htdocs/includes/ace/snippets/sqlserver.js new file mode 100644 index 00000000000..7dfa2d0493b --- /dev/null +++ b/htdocs/includes/ace/snippets/sqlserver.js @@ -0,0 +1,76 @@ +ace.define("ace/snippets/sqlserver",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# ISNULL\n\ +snippet isnull\n\ + ISNULL(${1:check_expression}, ${2:replacement_value})\n\ +# FORMAT\n\ +snippet format\n\ + FORMAT(${1:value}, ${2:format})\n\ +# CAST\n\ +snippet cast\n\ + CAST(${1:expression} AS ${2:data_type})\n\ +# CONVERT\n\ +snippet convert\n\ + CONVERT(${1:data_type}, ${2:expression})\n\ +# DATEPART\n\ +snippet datepart\n\ + DATEPART(${1:datepart}, ${2:date})\n\ +# DATEDIFF\n\ +snippet datediff\n\ + DATEDIFF(${1:datepart}, ${2:startdate}, ${3:enddate})\n\ +# DATEADD\n\ +snippet dateadd\n\ + DATEADD(${1:datepart}, ${2:number}, ${3:date})\n\ +# DATEFROMPARTS \n\ +snippet datefromparts\n\ + DATEFROMPARTS(${1:year}, ${2:month}, ${3:day})\n\ +# OBJECT_DEFINITION\n\ +snippet objectdef\n\ + SELECT OBJECT_DEFINITION(OBJECT_ID('${1:sys.server_permissions /*object name*/}'))\n\ +# STUFF XML\n\ +snippet stuffxml\n\ + STUFF((SELECT ', ' + ${1:ColumnName}\n\ + FROM ${2:TableName}\n\ + WHERE ${3:WhereClause}\n\ + FOR XML PATH('')), 1, 1, '') AS ${4:Alias}\n\ + ${5:/*https://msdn.microsoft.com/en-us/library/ms188043.aspx*/}\n\ +# Create Procedure\n\ +snippet createproc\n\ + -- =============================================\n\ + -- Author: ${1:Author}\n\ + -- Create date: ${2:Date}\n\ + -- Description: ${3:Description}\n\ + -- =============================================\n\ + CREATE PROCEDURE ${4:Procedure_Name}\n\ + ${5:/*Add the parameters for the stored procedure here*/}\n\ + AS\n\ + BEGIN\n\ + -- SET NOCOUNT ON added to prevent extra result sets from interfering with SELECT statements.\n\ + SET NOCOUNT ON;\n\ + \n\ + ${6:/*Add the T-SQL statements to compute the return value here*/}\n\ + \n\ + END\n\ + GO\n\ +# Create Scalar Function\n\ +snippet createfn\n\ + -- =============================================\n\ + -- Author: ${1:Author}\n\ + -- Create date: ${2:Date}\n\ + -- Description: ${3:Description}\n\ + -- =============================================\n\ + CREATE FUNCTION ${4:Scalar_Function_Name}\n\ + -- Add the parameters for the function here\n\ + RETURNS ${5:Function_Data_Type}\n\ + AS\n\ + BEGIN\n\ + DECLARE @Result ${5:Function_Data_Type}\n\ + \n\ + ${6:/*Add the T-SQL statements to compute the return value here*/}\n\ + \n\ + END\n\ + GO"; +exports.scope = "sqlserver"; + +}); diff --git a/htdocs/includes/ace/snippets/stylus.js b/htdocs/includes/ace/snippets/stylus.js new file mode 100644 index 00000000000..5f700bae337 --- /dev/null +++ b/htdocs/includes/ace/snippets/stylus.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/stylus",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "stylus"; + +}); diff --git a/htdocs/includes/ace/snippets/svg.js b/htdocs/includes/ace/snippets/svg.js new file mode 100644 index 00000000000..69a3408ec96 --- /dev/null +++ b/htdocs/includes/ace/snippets/svg.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/svg",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "svg"; + +}); diff --git a/htdocs/includes/ace/snippets/swift.js b/htdocs/includes/ace/snippets/swift.js new file mode 100644 index 00000000000..55226ba0cc7 --- /dev/null +++ b/htdocs/includes/ace/snippets/swift.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/swift",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "swift"; + +}); diff --git a/htdocs/includes/ace/snippets/swig.js b/htdocs/includes/ace/snippets/swig.js new file mode 100644 index 00000000000..1eee033478a --- /dev/null +++ b/htdocs/includes/ace/snippets/swig.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/swig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "swig"; + +}); diff --git a/htdocs/includes/ace/snippets/tcl.js b/htdocs/includes/ace/snippets/tcl.js new file mode 100644 index 00000000000..4d116da8296 --- /dev/null +++ b/htdocs/includes/ace/snippets/tcl.js @@ -0,0 +1,99 @@ +ace.define("ace/snippets/tcl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# #!/usr/bin/env tclsh\n\ +snippet #!\n\ + #!/usr/bin/env tclsh\n\ + \n\ +# Process\n\ +snippet pro\n\ + proc ${1:function_name} {${2:args}} {\n\ + ${3:#body ...}\n\ + }\n\ +#xif\n\ +snippet xif\n\ + ${1:expr}? ${2:true} : ${3:false}\n\ +# Conditional\n\ +snippet if\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + }\n\ +# Conditional if..else\n\ +snippet ife\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + } else {\n\ + ${3:# else...}\n\ + }\n\ +# Conditional if..elsif..else\n\ +snippet ifee\n\ + if {${1}} {\n\ + ${2:# body...}\n\ + } elseif {${3}} {\n\ + ${4:# elsif...}\n\ + } else {\n\ + ${5:# else...}\n\ + }\n\ +# If catch then\n\ +snippet ifc\n\ + if { [catch {${1:#do something...}} ${2:err}] } {\n\ + ${3:# handle failure...}\n\ + }\n\ +# Catch\n\ +snippet catch\n\ + catch {${1}} ${2:err} ${3:options}\n\ +# While Loop\n\ +snippet wh\n\ + while {${1}} {\n\ + ${2:# body...}\n\ + }\n\ +# For Loop\n\ +snippet for\n\ + for {set ${2:var} 0} {$$2 < ${1:count}} {${3:incr} $2} {\n\ + ${4:# body...}\n\ + }\n\ +# Foreach Loop\n\ +snippet fore\n\ + foreach ${1:x} {${2:#list}} {\n\ + ${3:# body...}\n\ + }\n\ +# after ms script...\n\ +snippet af\n\ + after ${1:ms} ${2:#do something}\n\ +# after cancel id\n\ +snippet afc\n\ + after cancel ${1:id or script}\n\ +# after idle\n\ +snippet afi\n\ + after idle ${1:script}\n\ +# after info id\n\ +snippet afin\n\ + after info ${1:id}\n\ +# Expr\n\ +snippet exp\n\ + expr {${1:#expression here}}\n\ +# Switch\n\ +snippet sw\n\ + switch ${1:var} {\n\ + ${3:pattern 1} {\n\ + ${4:#do something}\n\ + }\n\ + default {\n\ + ${2:#do something}\n\ + }\n\ + }\n\ +# Case\n\ +snippet ca\n\ + ${1:pattern} {\n\ + ${2:#do something}\n\ + }${3}\n\ +# Namespace eval\n\ +snippet ns\n\ + namespace eval ${1:path} {${2:#script...}}\n\ +# Namespace current\n\ +snippet nsc\n\ + namespace current\n\ +"; +exports.scope = "tcl"; + +}); diff --git a/htdocs/includes/ace/snippets/tex.js b/htdocs/includes/ace/snippets/tex.js new file mode 100644 index 00000000000..2bd3f1034c9 --- /dev/null +++ b/htdocs/includes/ace/snippets/tex.js @@ -0,0 +1,197 @@ +ace.define("ace/snippets/tex",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "#PREAMBLE\n\ +#newcommand\n\ +snippet nc\n\ + \\newcommand{\\${1:cmd}}[${2:opt}]{${3:realcmd}}${4}\n\ +#usepackage\n\ +snippet up\n\ + \\usepackage[${1:[options}]{${2:package}}\n\ +#newunicodechar\n\ +snippet nuc\n\ + \\newunicodechar{${1}}{${2:\\ensuremath}${3:tex-substitute}}}\n\ +#DeclareMathOperator\n\ +snippet dmo\n\ + \\DeclareMathOperator{${1}}{${2}}\n\ +\n\ +#DOCUMENT\n\ +# \\begin{}...\\end{}\n\ +snippet begin\n\ + \\begin{${1:env}}\n\ + ${2}\n\ + \\end{$1}\n\ +# Tabular\n\ +snippet tab\n\ + \\begin{${1:tabular}}{${2:c}}\n\ + ${3}\n\ + \\end{$1}\n\ +snippet thm\n\ + \\begin[${1:author}]{${2:thm}}\n\ + ${3}\n\ + \\end{$1}\n\ +snippet center\n\ + \\begin{center}\n\ + ${1}\n\ + \\end{center}\n\ +# Align(ed)\n\ +snippet ali\n\ + \\begin{align${1:ed}}\n\ + ${2}\n\ + \\end{align$1}\n\ +# Gather(ed)\n\ +snippet gat\n\ + \\begin{gather${1:ed}}\n\ + ${2}\n\ + \\end{gather$1}\n\ +# Equation\n\ +snippet eq\n\ + \\begin{equation}\n\ + ${1}\n\ + \\end{equation}\n\ +# Equation\n\ +snippet eq*\n\ + \\begin{equation*}\n\ + ${1}\n\ + \\end{equation*}\n\ +# Unnumbered Equation\n\ +snippet \\\n\ + \\[\n\ + ${1}\n\ + \\]\n\ +# Enumerate\n\ +snippet enum\n\ + \\begin{enumerate}\n\ + \\item ${1}\n\ + \\end{enumerate}\n\ +# Itemize\n\ +snippet itemize\n\ + \\begin{itemize}\n\ + \\item ${1}\n\ + \\end{itemize}\n\ +# Description\n\ +snippet desc\n\ + \\begin{description}\n\ + \\item[${1}] ${2}\n\ + \\end{description}\n\ +# Matrix\n\ +snippet mat\n\ + \\begin{${1:p/b/v/V/B/small}matrix}\n\ + ${2}\n\ + \\end{$1matrix}\n\ +# Cases\n\ +snippet cas\n\ + \\begin{cases}\n\ + ${1:equation}, &\\text{ if }${2:case}\\\\\n\ + ${3}\n\ + \\end{cases}\n\ +# Split\n\ +snippet spl\n\ + \\begin{split}\n\ + ${1}\n\ + \\end{split}\n\ +# Part\n\ +snippet part\n\ + \\part{${1:part name}} % (fold)\n\ + \\label{prt:${2:$1}}\n\ + ${3}\n\ + % part $2 (end)\n\ +# Chapter\n\ +snippet cha\n\ + \\chapter{${1:chapter name}}\n\ + \\label{cha:${2:$1}}\n\ + ${3}\n\ +# Section\n\ +snippet sec\n\ + \\section{${1:section name}}\n\ + \\label{sec:${2:$1}}\n\ + ${3}\n\ +# Sub Section\n\ +snippet sub\n\ + \\subsection{${1:subsection name}}\n\ + \\label{sub:${2:$1}}\n\ + ${3}\n\ +# Sub Sub Section\n\ +snippet subs\n\ + \\subsubsection{${1:subsubsection name}}\n\ + \\label{ssub:${2:$1}}\n\ + ${3}\n\ +# Paragraph\n\ +snippet par\n\ + \\paragraph{${1:paragraph name}}\n\ + \\label{par:${2:$1}}\n\ + ${3}\n\ +# Sub Paragraph\n\ +snippet subp\n\ + \\subparagraph{${1:subparagraph name}}\n\ + \\label{subp:${2:$1}}\n\ + ${3}\n\ +#References\n\ +snippet itd\n\ + \\item[${1:description}] ${2:item}\n\ +snippet figure\n\ + ${1:Figure}~\\ref{${2:fig:}}${3}\n\ +snippet table\n\ + ${1:Table}~\\ref{${2:tab:}}${3}\n\ +snippet listing\n\ + ${1:Listing}~\\ref{${2:list}}${3}\n\ +snippet section\n\ + ${1:Section}~\\ref{${2:sec:}}${3}\n\ +snippet page\n\ + ${1:page}~\\pageref{${2}}${3}\n\ +snippet index\n\ + \\index{${1:index}}${2}\n\ +#Citations\n\ +snippet cite\n\ + \\cite[${1}]{${2}}${3}\n\ +snippet fcite\n\ + \\footcite[${1}]{${2}}${3}\n\ +#Formating text: italic, bold, underline, small capital, emphase ..\n\ +snippet it\n\ + \\textit{${1:text}}\n\ +snippet bf\n\ + \\textbf{${1:text}}\n\ +snippet under\n\ + \\underline{${1:text}}\n\ +snippet emp\n\ + \\emph{${1:text}}\n\ +snippet sc\n\ + \\textsc{${1:text}}\n\ +#Choosing font\n\ +snippet sf\n\ + \\textsf{${1:text}}\n\ +snippet rm\n\ + \\textrm{${1:text}}\n\ +snippet tt\n\ + \\texttt{${1:text}}\n\ +#misc\n\ +snippet ft\n\ + \\footnote{${1:text}}\n\ +snippet fig\n\ + \\begin{figure}\n\ + \\begin{center}\n\ + \\includegraphics[scale=${1}]{Figures/${2}}\n\ + \\end{center}\n\ + \\caption{${3}}\n\ + \\label{fig:${4}}\n\ + \\end{figure}\n\ +snippet tikz\n\ + \\begin{figure}\n\ + \\begin{center}\n\ + \\begin{tikzpicture}[scale=${1:1}]\n\ + ${2}\n\ + \\end{tikzpicture}\n\ + \\end{center}\n\ + \\caption{${3}}\n\ + \\label{fig:${4}}\n\ + \\end{figure}\n\ +#math\n\ +snippet stackrel\n\ + \\stackrel{${1:above}}{${2:below}} ${3}\n\ +snippet frac\n\ + \\frac{${1:num}}{${2:denom}}\n\ +snippet sum\n\ + \\sum^{${1:n}}_{${2:i=1}}{${3}}"; +exports.scope = "tex"; + +}); diff --git a/htdocs/includes/ace/snippets/text.js b/htdocs/includes/ace/snippets/text.js new file mode 100644 index 00000000000..57b897bf67d --- /dev/null +++ b/htdocs/includes/ace/snippets/text.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/text",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "text"; + +}); diff --git a/htdocs/includes/ace/snippets/textile.js b/htdocs/includes/ace/snippets/textile.js new file mode 100644 index 00000000000..a6fd711efa5 --- /dev/null +++ b/htdocs/includes/ace/snippets/textile.js @@ -0,0 +1,37 @@ +ace.define("ace/snippets/textile",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# Jekyll post header\n\ +snippet header\n\ + ---\n\ + title: ${1:title}\n\ + layout: post\n\ + date: ${2:date} ${3:hour:minute:second} -05:00\n\ + ---\n\ +\n\ +# Image\n\ +snippet img\n\ + !${1:url}(${2:title}):${3:link}!\n\ +\n\ +# Table\n\ +snippet |\n\ + |${1}|${2}\n\ +\n\ +# Link\n\ +snippet link\n\ + \"${1:link text}\":${2:url}\n\ +\n\ +# Acronym\n\ +snippet (\n\ + (${1:Expand acronym})${2}\n\ +\n\ +# Footnote\n\ +snippet fn\n\ + [${1:ref number}] ${3}\n\ +\n\ + fn$1. ${2:footnote}\n\ + \n\ +"; +exports.scope = "textile"; + +}); diff --git a/htdocs/includes/ace/snippets/toml.js b/htdocs/includes/ace/snippets/toml.js new file mode 100644 index 00000000000..0c1a857bb1a --- /dev/null +++ b/htdocs/includes/ace/snippets/toml.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/toml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "toml"; + +}); diff --git a/htdocs/includes/ace/snippets/tsx.js b/htdocs/includes/ace/snippets/tsx.js new file mode 100644 index 00000000000..7946297ead3 --- /dev/null +++ b/htdocs/includes/ace/snippets/tsx.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/tsx",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "tsx"; + +}); diff --git a/htdocs/includes/ace/snippets/turtle.js b/htdocs/includes/ace/snippets/turtle.js new file mode 100644 index 00000000000..5e104b22f22 --- /dev/null +++ b/htdocs/includes/ace/snippets/turtle.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/turtle",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/twig.js b/htdocs/includes/ace/snippets/twig.js new file mode 100644 index 00000000000..ccc6073cfda --- /dev/null +++ b/htdocs/includes/ace/snippets/twig.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/twig",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "twig"; + +}); diff --git a/htdocs/includes/ace/snippets/typescript.js b/htdocs/includes/ace/snippets/typescript.js new file mode 100644 index 00000000000..5f6217d01b1 --- /dev/null +++ b/htdocs/includes/ace/snippets/typescript.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/typescript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "typescript"; + +}); diff --git a/htdocs/includes/ace/snippets/vala.js b/htdocs/includes/ace/snippets/vala.js new file mode 100644 index 00000000000..3b493422e7d --- /dev/null +++ b/htdocs/includes/ace/snippets/vala.js @@ -0,0 +1,193 @@ +ace.define("ace/snippets/vala",["require","exports","module"], function(require, exports, module) { +"use strict"; +exports.snippets = [ + { + "content": "case ${1:condition}:\n\t$0\n\tbreak;\n", + "name": "case", + "scope": "vala", + "tabTrigger": "case" + }, + { + "content": "/**\n * ${6}\n */\n${1:public} class ${2:MethodName}${3: : GLib.Object} {\n\n\t/**\n\t * ${7}\n\t */\n\tpublic ${2}(${4}) {\n\t\t${5}\n\t}\n\n\t$0\n}", + "name": "class", + "scope": "vala", + "tabTrigger": "class" + }, + { + "content": "(${1}) => {\n\t${0}\n}\n", + "name": "closure", + "scope": "vala", + "tabTrigger": "=>" + }, + { + "content": "/*\n * $0\n */", + "name": "Comment (multiline)", + "scope": "vala", + "tabTrigger": "/*" + }, + { + "content": "Console.WriteLine($1);\n$0", + "name": "Console.WriteLine (writeline)", + "scope": "vala", + "tabTrigger": "writeline" + }, + { + "content": "[DBus(name = \"$0\")]", + "name": "DBus annotation", + "scope": "vala", + "tabTrigger": "[DBus" + }, + { + "content": "delegate ${1:void} ${2:DelegateName}($0);", + "name": "delegate", + "scope": "vala", + "tabTrigger": "delegate" + }, + { + "content": "do {\n\t$0\n} while ($1);\n", + "name": "do while", + "scope": "vala", + "tabTrigger": "dowhile" + }, + { + "content": "/**\n * $0\n */", + "name": "DocBlock", + "scope": "vala", + "tabTrigger": "/**" + }, + { + "content": "else if ($1) {\n\t$0\n}\n", + "name": "else if (elseif)", + "scope": "vala", + "tabTrigger": "elseif" + }, + { + "content": "else {\n\t$0\n}", + "name": "else", + "scope": "vala", + "tabTrigger": "else" + }, + { + "content": "enum {$1:EnumName} {\n\t$0\n}", + "name": "enum", + "scope": "vala", + "tabTrigger": "enum" + }, + { + "content": "public errordomain ${1:Error} {\n\t$0\n}", + "name": "error domain", + "scope": "vala", + "tabTrigger": "errordomain" + }, + { + "content": "for ($1;$2;$3) {\n\t$0\n}", + "name": "for", + "scope": "vala", + "tabTrigger": "for" + }, + { + "content": "foreach ($1 in $2) {\n\t$0\n}", + "name": "foreach", + "scope": "vala", + "tabTrigger": "foreach" + }, + { + "content": "Gee.ArrayList<${1:G}>($0);", + "name": "Gee.ArrayList", + "scope": "vala", + "tabTrigger": "ArrayList" + }, + { + "content": "Gee.HashMap<${1:K},${2:V}>($0);", + "name": "Gee.HashMap", + "scope": "vala", + "tabTrigger": "HashMap" + }, + { + "content": "Gee.HashSet<${1:G}>($0);", + "name": "Gee.HashSet", + "scope": "vala", + "tabTrigger": "HashSet" + }, + { + "content": "if ($1) {\n\t$0\n}", + "name": "if", + "scope": "vala", + "tabTrigger": "if" + }, + { + "content": "interface ${1:InterfaceName}{$2: : SuperInterface} {\n\t$0\n}", + "name": "interface", + "scope": "vala", + "tabTrigger": "interface" + }, + { + "content": "public static int main(string [] argv) {\n\t${0}\n\treturn 0;\n}", + "name": "Main function", + "scope": "vala", + "tabTrigger": "main" + }, + { + "content": "namespace $1 {\n\t$0\n}\n", + "name": "namespace (ns)", + "scope": "vala", + "tabTrigger": "ns" + }, + { + "content": "stdout.printf($0);", + "name": "printf", + "scope": "vala", + "tabTrigger": "printf" + }, + { + "content": "${1:public} ${2:Type} ${3:Name} {\n\tset {\n\t\t$0\n\t}\n\tget {\n\n\t}\n}", + "name": "property (prop)", + "scope": "vala", + "tabTrigger": "prop" + }, + { + "content": "${1:public} ${2:Type} ${3:Name} {\n\tget {\n\t\t$0\n\t}\n}", + "name": "read-only property (roprop)", + "scope": "vala", + "tabTrigger": "roprop" + }, + { + "content": "@\"${1:\\$var}\"", + "name": "String template (@)", + "scope": "vala", + "tabTrigger": "@" + }, + { + "content": "struct ${1:StructName} {\n\t$0\n}", + "name": "struct", + "scope": "vala", + "tabTrigger": "struct" + }, + { + "content": "switch ($1) {\n\t$0\n}", + "name": "switch", + "scope": "vala", + "tabTrigger": "switch" + }, + { + "content": "try {\n\t$2\n} catch (${1:Error} e) {\n\t$0\n}", + "name": "try/catch", + "scope": "vala", + "tabTrigger": "try" + }, + { + "content": "\"\"\"$0\"\"\";", + "name": "Verbatim string (\"\"\")", + "scope": "vala", + "tabTrigger": "verbatim" + }, + { + "content": "while ($1) {\n\t$0\n}", + "name": "while", + "scope": "vala", + "tabTrigger": "while" + } +]; +exports.scope = ""; + +}); diff --git a/htdocs/includes/ace/snippets/vbscript.js b/htdocs/includes/ace/snippets/vbscript.js new file mode 100644 index 00000000000..38ca68fb2c4 --- /dev/null +++ b/htdocs/includes/ace/snippets/vbscript.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/vbscript",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "vbscript"; + +}); diff --git a/htdocs/includes/ace/snippets/velocity.js b/htdocs/includes/ace/snippets/velocity.js new file mode 100644 index 00000000000..e2b12a45e36 --- /dev/null +++ b/htdocs/includes/ace/snippets/velocity.js @@ -0,0 +1,36 @@ +ace.define("ace/snippets/velocity",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "# macro\n\ +snippet #macro\n\ + #macro ( ${1:macroName} ${2:\\$var1, [\\$var2, ...]} )\n\ + ${3:## macro code}\n\ + #end\n\ +# foreach\n\ +snippet #foreach\n\ + #foreach ( ${1:\\$item} in ${2:\\$collection} )\n\ + ${3:## foreach code}\n\ + #end\n\ +# if\n\ +snippet #if\n\ + #if ( ${1:true} )\n\ + ${0}\n\ + #end\n\ +# if ... else\n\ +snippet #ife\n\ + #if ( ${1:true} )\n\ + ${2}\n\ + #else\n\ + ${0}\n\ + #end\n\ +#import\n\ +snippet #import\n\ + #import ( \"${1:path/to/velocity/format}\" )\n\ +# set\n\ +snippet #set\n\ + #set ( $${1:var} = ${0} )\n\ +"; +exports.scope = "velocity"; +exports.includeScopes = ["html", "javascript", "css"]; + +}); diff --git a/htdocs/includes/ace/snippets/verilog.js b/htdocs/includes/ace/snippets/verilog.js new file mode 100644 index 00000000000..8103ff6f262 --- /dev/null +++ b/htdocs/includes/ace/snippets/verilog.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/verilog",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "verilog"; + +}); diff --git a/htdocs/includes/ace/snippets/vhdl.js b/htdocs/includes/ace/snippets/vhdl.js new file mode 100644 index 00000000000..10d8ca09ce8 --- /dev/null +++ b/htdocs/includes/ace/snippets/vhdl.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/vhdl",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "vhdl"; + +}); diff --git a/htdocs/includes/ace/snippets/wollok.js b/htdocs/includes/ace/snippets/wollok.js new file mode 100644 index 00000000000..31e62118d29 --- /dev/null +++ b/htdocs/includes/ace/snippets/wollok.js @@ -0,0 +1,91 @@ +ace.define("ace/snippets/wollok",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "##\n\ +## Basic Java packages and import\n\ +snippet im\n\ + import\n\ +snippet w.l\n\ + wollok.lang\n\ +snippet w.i\n\ + wollok.lib\n\ +\n\ +## Class and object\n\ +snippet cl\n\ + class ${1:`Filename(\"\", \"untitled\")`} ${2}\n\ +snippet obj\n\ + object ${1:`Filename(\"\", \"untitled\")`} ${2:inherits Parent}${3}\n\ +snippet te\n\ + test ${1:`Filename(\"\", \"untitled\")`}\n\ +\n\ +##\n\ +## Enhancements\n\ +snippet inh\n\ + inherits\n\ +\n\ +##\n\ +## Comments\n\ +snippet /*\n\ + /*\n\ + * ${1}\n\ + */\n\ +\n\ +##\n\ +## Control Statements\n\ +snippet el\n\ + else\n\ +snippet if\n\ + if (${1}) ${2}\n\ +\n\ +##\n\ +## Create a Method\n\ +snippet m\n\ + method ${1:method}(${2}) ${5}\n\ +\n\ +## \n\ +## Tests\n\ +snippet as\n\ + assert.equals(${1:expected}, ${2:actual})\n\ +\n\ +##\n\ +## Exceptions\n\ +snippet ca\n\ + catch ${1:e} : (${2:Exception} ) ${3}\n\ +snippet thr\n\ + throw\n\ +snippet try\n\ + try {\n\ + ${3}\n\ + } catch ${1:e} : ${2:Exception} {\n\ + }\n\ +\n\ +##\n\ +## Javadocs\n\ +snippet /**\n\ + /**\n\ + * ${1}\n\ + */\n\ +\n\ +##\n\ +## Print Methods\n\ +snippet print\n\ + console.println(\"${1:Message}\")\n\ +\n\ +##\n\ +## Setter and Getter Methods\n\ +snippet set\n\ + method set${1:}(${2:}) {\n\ + $1 = $2\n\ + }\n\ +snippet get\n\ + method get${1:}() {\n\ + return ${1:};\n\ + }\n\ +\n\ +##\n\ +## Terminate Methods or Loops\n\ +snippet re\n\ + return"; +exports.scope = "wollok"; + +}); diff --git a/htdocs/includes/ace/snippets/xml.js b/htdocs/includes/ace/snippets/xml.js new file mode 100644 index 00000000000..ee4b688a7c3 --- /dev/null +++ b/htdocs/includes/ace/snippets/xml.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/xml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "xml"; + +}); diff --git a/htdocs/includes/ace/snippets/xquery.js b/htdocs/includes/ace/snippets/xquery.js new file mode 100644 index 00000000000..c880abcf17c --- /dev/null +++ b/htdocs/includes/ace/snippets/xquery.js @@ -0,0 +1,68 @@ +ace.define("ace/snippets/xquery",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText = "snippet for\n\ + for $${1:item} in ${2:expr}\n\ +snippet return\n\ + return ${1:expr}\n\ +snippet import\n\ + import module namespace ${1:ns} = \"${2:http://www.example.com/}\";\n\ +snippet some\n\ + some $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet every\n\ + every $${1:varname} in ${2:expr} satisfies ${3:expr}\n\ +snippet if\n\ + if(${1:true}) then ${2:expr} else ${3:true}\n\ +snippet switch\n\ + switch(${1:\"foo\"})\n\ + case ${2:\"foo\"}\n\ + return ${3:true}\n\ + default return ${4:false}\n\ +snippet try\n\ + try { ${1:expr} } catch ${2:*} { ${3:expr} }\n\ +snippet tumbling\n\ + for tumbling window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet sliding\n\ + for sliding window $${1:varname} in ${2:expr}\n\ + start at $${3:start} when ${4:expr}\n\ + end at $${5:end} when ${6:expr}\n\ + return ${7:expr}\n\ +snippet let\n\ + let $${1:varname} := ${2:expr}\n\ +snippet group\n\ + group by $${1:varname} := ${2:expr}\n\ +snippet order\n\ + order by ${1:expr} ${2:descending}\n\ +snippet stable\n\ + stable order by ${1:expr}\n\ +snippet count\n\ + count $${1:varname}\n\ +snippet ordered\n\ + ordered { ${1:expr} }\n\ +snippet unordered\n\ + unordered { ${1:expr} }\n\ +snippet treat \n\ + treat as ${1:expr}\n\ +snippet castable\n\ + castable as ${1:atomicType}\n\ +snippet cast\n\ + cast as ${1:atomicType}\n\ +snippet typeswitch\n\ + typeswitch(${1:expr})\n\ + case ${2:type} return ${3:expr}\n\ + default return ${4:expr}\n\ +snippet var\n\ + declare variable $${1:varname} := ${2:expr};\n\ +snippet fn\n\ + declare function ${1:ns}:${2:name}(){\n\ + ${3:expr}\n\ + };\n\ +snippet module\n\ + module namespace ${1:ns} = \"${2:http://www.example.com}\";\n\ +"; +exports.scope = "xquery"; + +}); diff --git a/htdocs/includes/ace/snippets/yaml.js b/htdocs/includes/ace/snippets/yaml.js new file mode 100644 index 00000000000..1adceabee15 --- /dev/null +++ b/htdocs/includes/ace/snippets/yaml.js @@ -0,0 +1,7 @@ +ace.define("ace/snippets/yaml",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.snippetText =undefined; +exports.scope = "yaml"; + +}); diff --git a/htdocs/includes/ace/theme-ambiance.js b/htdocs/includes/ace/theme-ambiance.js new file mode 100644 index 00000000000..1e53ecd9695 --- /dev/null +++ b/htdocs/includes/ace/theme-ambiance.js @@ -0,0 +1,182 @@ +ace.define("ace/theme/ambiance",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-ambiance"; +exports.cssText = ".ace-ambiance .ace_gutter {\ +background-color: #3d3d3d;\ +background-image: -moz-linear-gradient(left, #3D3D3D, #333);\ +background-image: -ms-linear-gradient(left, #3D3D3D, #333);\ +background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#3D3D3D), to(#333));\ +background-image: -webkit-linear-gradient(left, #3D3D3D, #333);\ +background-image: -o-linear-gradient(left, #3D3D3D, #333);\ +background-image: linear-gradient(left, #3D3D3D, #333);\ +background-repeat: repeat-x;\ +border-right: 1px solid #4d4d4d;\ +text-shadow: 0px 1px 1px #4d4d4d;\ +color: #222;\ +}\ +.ace-ambiance .ace_gutter-layer {\ +background: repeat left top;\ +}\ +.ace-ambiance .ace_gutter-active-line {\ +background-color: #3F3F3F;\ +}\ +.ace-ambiance .ace_fold-widget {\ +text-align: center;\ +}\ +.ace-ambiance .ace_fold-widget:hover {\ +color: #777;\ +}\ +.ace-ambiance .ace_fold-widget.ace_start,\ +.ace-ambiance .ace_fold-widget.ace_end,\ +.ace-ambiance .ace_fold-widget.ace_closed{\ +background: none;\ +border: none;\ +box-shadow: none;\ +}\ +.ace-ambiance .ace_fold-widget.ace_start:after {\ +content: '▾'\ +}\ +.ace-ambiance .ace_fold-widget.ace_end:after {\ +content: '▴'\ +}\ +.ace-ambiance .ace_fold-widget.ace_closed:after {\ +content: '‣'\ +}\ +.ace-ambiance .ace_print-margin {\ +border-left: 1px dotted #2D2D2D;\ +right: 0;\ +background: #262626;\ +}\ +.ace-ambiance .ace_scroller {\ +-webkit-box-shadow: inset 0 0 10px black;\ +-moz-box-shadow: inset 0 0 10px black;\ +-o-box-shadow: inset 0 0 10px black;\ +box-shadow: inset 0 0 10px black;\ +}\ +.ace-ambiance {\ +color: #E6E1DC;\ +background-color: #202020;\ +}\ +.ace-ambiance .ace_cursor {\ +border-left: 1px solid #7991E8;\ +}\ +.ace-ambiance .ace_overwrite-cursors .ace_cursor {\ +border: 1px solid #FFE300;\ +background: #766B13;\ +}\ +.ace-ambiance.normal-mode .ace_cursor-layer {\ +z-index: 0;\ +}\ +.ace-ambiance .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20);\ +}\ +.ace-ambiance .ace_marker-layer .ace_selected-word {\ +border-radius: 4px;\ +border: 8px solid #3f475d;\ +box-shadow: 0 0 4px black;\ +}\ +.ace-ambiance .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-ambiance .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25);\ +}\ +.ace-ambiance .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031);\ +}\ +.ace-ambiance .ace_invisible {\ +color: #333;\ +}\ +.ace-ambiance .ace_paren {\ +color: #24C2C7;\ +}\ +.ace-ambiance .ace_keyword {\ +color: #cda869;\ +}\ +.ace-ambiance .ace_keyword.ace_operator {\ +color: #fa8d6a;\ +}\ +.ace-ambiance .ace_punctuation.ace_operator {\ +color: #fa8d6a;\ +}\ +.ace-ambiance .ace_identifier {\ +}\ +.ace-ambiance .ace-statement {\ +color: #cda869;\ +}\ +.ace-ambiance .ace_constant {\ +color: #CF7EA9;\ +}\ +.ace-ambiance .ace_constant.ace_language {\ +color: #CF7EA9;\ +}\ +.ace-ambiance .ace_constant.ace_library {\ +}\ +.ace-ambiance .ace_constant.ace_numeric {\ +color: #78CF8A;\ +}\ +.ace-ambiance .ace_invalid {\ +text-decoration: underline;\ +}\ +.ace-ambiance .ace_invalid.ace_illegal {\ +color:#F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75);\ +}\ +.ace-ambiance .ace_invalid,\ +.ace-ambiance .ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1;\ +}\ +.ace-ambiance .ace_support {\ +color: #9B859D;\ +}\ +.ace-ambiance .ace_support.ace_function {\ +color: #DAD085;\ +}\ +.ace-ambiance .ace_function.ace_buildin {\ +color: #9b859d;\ +}\ +.ace-ambiance .ace_string {\ +color: #8f9d6a;\ +}\ +.ace-ambiance .ace_string.ace_regexp {\ +color: #DAD085;\ +}\ +.ace-ambiance .ace_comment {\ +font-style: italic;\ +color: #555;\ +}\ +.ace-ambiance .ace_comment.ace_doc {\ +}\ +.ace-ambiance .ace_comment.ace_doc.ace_tag {\ +color: #666;\ +font-style: normal;\ +}\ +.ace-ambiance .ace_definition,\ +.ace-ambiance .ace_type {\ +color: #aac6e3;\ +}\ +.ace-ambiance .ace_variable {\ +color: #9999cc;\ +}\ +.ace-ambiance .ace_variable.ace_language {\ +color: #9b859d;\ +}\ +.ace-ambiance .ace_xml-pe {\ +color: #494949;\ +}\ +.ace-ambiance .ace_gutter-layer,\ +.ace-ambiance .ace_text-layer {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAQAAAAHUWYVAABFFUlEQVQYGbzBCeDVU/74/6fj9HIcx/FRHx9JCFmzMyGRURhLZIkUsoeRfUjS2FNDtr6WkMhO9sm+S8maJfu+Jcsg+/o/c+Z4z/t97/vezy3z+z8ekGlnYICG/o7gdk+wmSHZ1z4pJItqapjoKXWahm8NmV6eOTbWUOp6/6a/XIg6GQqmenJ2lDHyvCFZ2cBDbmtHA043VFhHwXxClWmeYAdLhV00Bd85go8VmaFCkbVkzlQENzfBDZ5gtN7HwF0KDrTwJ0dypSOzpaKCMwQHKTIreYIxlmhXTzTWkVm+LTynZhiSBT3RZQ7aGfjGEd3qyXQ1FDymqbKxpspERQN2MiRjNZlFFQXfCNFm9nM1zpAsoYjmtRTc5ajwuaXc5xrWskT97RaKzAGe5ARHhVUsDbjKklziiX5WROcJwSNCNI+9w1Jwv4Zb2r7lCMZ4oq5C0EdTx+2GzNuKpJ+iFf38JEWkHJn9DNF7mmBDITrWEg0VWL3pHU20tSZnuqWu+R3BtYa8XxV1HO7GyD32UkOpL/yDloINFTmvtId+nmAjxRw40VMwVKiwrKLE4bK5UOVntYwhOcSSXKrJHKPJedocpGjVz/ZMIbnYUPB10/eKCrs5apqpgVmWzBYWpmtKHecJPjaUuEgRDDaU0oZghCJ6zNMQ5ZhDYx05r5v2muQdM0EILtXUsaKiQX9WMEUotagQzFbUNN6NUPC2nm5pxEWGCjMc3GdJHjSU2kORLK/JGSrkfGEIjncU/CYUnOipoYemwj8tST9NsJmB7TUVXtbUtXATJVZXBMvYeTXJfobgJUPmGMP/yFaWonaa6BcFO3nqcIqCozSZoZoSr1g4zJOzuyGnxTEX3lUEJ7WcZgme8ddaWvWJo2AJR9DZU3CUIbhCSG6ybSwN6qtJVnCU2svDTP2ZInOw2cBTrqtQahtNZn9NcJ4l2NaSmSkkP1noZWnVwkLmdUPOwLZEwy2Z3S3R+4rIG9hcbpPXHFVWcQdZkn2FOta3cKWQnNRC5g1LsJah4GCzSVsKnCOY5OAFRTBekyyryeyilhFKva75r4Mc0aWanGEaThcy31s439KKxTzJYY5WTHPU1FtIHjQU3Oip4xlNzj/lBw23dYZVliQa7WAXf4shetcQfatI+jWRDBPmyNeW6A1P5kdDgyYJlba0BIM8BZu1JfrFwItyjcAMR3K0BWOIrtMEXyhyrlVEx3ui5dUBjmB/Q3CXW85R4mBD0s7B+4q5tKUjOlb9qqmhi5AZ6GFIC5HXtOobdYGlVdMVbNJ8toNTFcHxnoL+muBagcctjWnbNMuR00uI7nQESwg5q2qqrKWIfrNUmeQocY6HuyxJV02wj36w00yhpmUFenv4p6fUkZYqLyuinx2RGOjhCXYyJF84oiU00YMOOhhquNdfbOB7gU88pY4xJO8LVdp6/q2voeB4R04vIdhSE40xZObx1HGGJ/ja0LBthFInKaLPPFzuCaYaoj8JjPME8yoyxo6zlBqkiUZYgq00OYMswbWO5NGmq+xhipxHLRW29ARjNKXO0wRnear8XSg4XFPLKEPUS1GqvyLwiuBUoa7zpZ0l5xxFwWmWZC1H5h5FwU8eQ7K+g8UcVY6TMQreVQT/8uQ8Z+ALIXnSEa2pYZQneE9RZbSBNYXfWYJzW/h/4j4Dp1tYVcFIC5019Vyi4ThPqSFCzjGWaHQTBU8q6vrVwgxP9Lkm840imWKpcLCjYTtrKuwvsKSnrvHCXGkSMk9p6lhckfRpIeis+N2PiszT+mFLspyGleUhDwcLrZqmyeylxwjBcKHEapqkmyangyLZRVOijwOtCY5SsG5zL0OwlCJ4y5KznF3EUNDDrinwiyLZRzOXtlBbK5ITHFGLp8Q0R6ab6mS7enI2cFrxOyHvOCFaT1HThS1krjCwqWeurCkk+willhCC+RSZnRXBiZaC5RXRIZYKp2lyfrHwiKPKR0JDzrdU2EFgpidawlFDR6FgXUMNa+g1FY3bUQh2cLCwosRdnuQTS/S+JVrGLeWIvtQUvONJxlqSQYYKpwoN2kaocLjdVsis4Mk80ESF2YpSkzwldjHkjFCUutI/r+EHDU8oCs6yzL3PhWiEooZdFMkymlas4AcI3KmoMMNSQ3tHzjGWCrcJJdYyZC7QFGwjRL9p+MrRkAGWzIaWCn9W0F3TsK01c2ZvQw0byvxuQU0r1lM0qJO7wW0kRIMdDTtXEdzi4VIh+EoIHm0mWtAtpCixlabgn83fKTI7anJe9ST7WIK1DMGpQmYeA58ImV6ezOGOzK2Kgq01pd60cKWiUi9Lievb/0vIDPHQ05Kzt4ddPckQBQtoaurjyHnek/nKzpQLrVgKPjIkh2v4uyezpv+Xoo7fPFXaGFp1vaLKxQ4uUpQQS5VuQs7BCq4xRJv7fwpVvvFEB3j+620haOuocqMhWd6TTPAEx+mdFNGHdranFe95WrWmIvlY4F1Dle2ECgc6cto7SryuqGGGha0tFQ5V53migUKmg6XKAo4qS3mik+0OZpAhOLeZKicacgaYcyx5hypYQE02ZA4xi/pNhOQxR4klNKyqacj+mpxnLTnnGSo85++3ZCZq6lrZkXlGEX3o+C9FieccJbZWVFjC0Yo1FZnJhoYMFoI1hEZ9r6hwg75HwzBNhbZCdJEfJwTPGzJvaKImw1yYX1HDAmpXR+ZJQ/SmgqMNVQb5vgamGwLtt7VwvP7Qk1xpiM5x5Cyv93E06MZmgs0Nya2azIKOYKCGBQQW97RmhKNKF02JZqHEJ4o58qp7X5EcZmc56trXEqzjCBZ1MFGR87Ql2tSTs6CGxS05PTzRQorkbw7aKoKXFDXsYW42VJih/q+FP2BdTzDTwVqOYB13liM50vG7wy28qagyuIXMeQI/Oqq8bcn5wJI50xH00CRntyfpL1T4hydYpoXgNiFzoIUTDZnLNRzh4TBHwbYGDvZkxmlyJloyr6tRihpeUG94GnKtIznREF0tzJG/OOr73JBcrSh1k6WuTprgLU+mnSGnv6Zge0NNz+kTDdH8nuAuTdJDCNb21LCiIuqlYbqGzT3RAoZofQfjFazkqeNWdYaGvYTM001EW2oKPvVk1ldUGSgUtHFwjKM1h9jnFcmy5lChoLNaQMGGDsYbKixlaMBmmsx1QjCfflwTfO/gckW0ruZ3jugKR3R5W9hGUWqCgxuFgsuaCHorotGKzGaeZB9DMsaTnKCpMtwTvOzhYk0rdrArKCqcaWmVk1+F372ur1YkKxgatI8Qfe1gIX9wE9FgS8ESmuABIXnRUbCapcKe+nO7slClSZFzpV/LkLncEb1qiO42fS3R855Su2mCLh62t1SYZZYVmKwIHjREF2uihTzB20JOkz7dkxzYQnK0UOU494wh+VWRc6Un2kpTaVgLDFEkJ/uhzRcI0YKGgpGWOlocBU/a4fKoJ/pEaNV6jip3+Es9VXY078rGnmAdf7t9ylPXS34RBSuYPs1UecZTU78WanhBCHpZ5sAoTz0LGZKjPf9TRypqWEiTvOFglL1fCEY3wY/++rbk7C8bWebA6p6om6PgOL2kp44TFJlVNBXae2rqqdZztOJpT87GQsE9jqCPIe9VReZuQ/CIgacsyZdCpIScSYqcZk8r+nsyCzhyfhOqHGOIvrLknC8wTpFcaYiGC/RU1NRbUeUpocQOnkRpGOrIOcNRx+1uA0UrzhSSt+VyS3SJpnFWkzNDqOFGIWcfR86DnmARTQ1HKIL33ExPiemeOhYSSjzlSUZZuE4TveoJLnBUOFof6KiysCbnAEcZgcUNTDOwkqWu3RWtmGpZwlHhJENdZ3miGz0lJlsKnjbwqSHQjpxnFDlTLLwqJPMZMjd7KrzkSG7VsxXBZE+F8YZkb01Oe00yyRK9psh5SYh29ySPKBo2ylNht7ZkZnsKenjKNJu9PNEyZpaCHv4Kt6RQsLvAVp7M9kIimmCUwGeWqLMmGuIotYMmWNpSahkhZw9FqZsVnKJhsjAHvtHMsTM9fCI06Dx/u3vfUXCqfsKRc4oFY2jMsoo/7DJDwZ1CsIKnJu+J9ldkpmiCxQx1rWjI+T9FwcWWzOuaYH0Hj7klNRVWEQpmaqosakiGNTFHdjS/qnUdmf0NJW5xsL0HhimCCZZSRzmSPTXJQ4aaztAwtZnoabebJ+htCaZ7Cm535ByoqXKbX1WRc4Eh2MkRXWzImVc96Cj4VdOKVxR84VdQsIUM8Psoou2byVHyZFuq7O8otbSQ2UAoeEWTudATLGSpZzVLlXVkPU2Jc+27lsw2jmg5T5VhbeE3BT083K9WsTTkFU/Osi0rC5lRlpwRHUiesNS0sOvmqGML1aRbPAxTJD9ZKtxuob+hhl8cwYGWpJ8nub7t5p6coYbMovZ1BTdaKn1jYD6h4GFDNFyT/Kqe1XCXphXHOKLZmuRSRdBPEfVUXQzJm5YGPGGJdvAEr7hHNdGZnuBvrpciGmopOLf5N0uVMy0FfYToJk90uUCbJupaVpO53UJXR2bVpoU00V2KOo4zMFrBd0Jtz2pa0clT5Q5L8IpQ177mWQejPMEJhuQjS10ref6HHjdEhy1P1EYR7GtO0uSsKJQYLiTnG1rVScj5lyazpqWGl5uBbRWl7m6ixGOOnEsMJR7z8J0n6KMnCdxhiNYQCoZ6CmYLnO8omC3MkW3bktlPmEt/VQQHejL3+dOE5FlPdK/Mq8hZxxJtLyRrepLThYKbLZxkSb5W52vYxNOaOxUF0yxMUPwBTYqCzy01XayYK0sJyWBLqX0MwU5CzoymRzV0EjjeUeLgDpTo6ij42ZAzvD01dHUUTPLU96MdLbBME8nFBn7zJCMtJcZokn8YoqU0FS5WFKyniHobguMcmW8N0XkWZjkyN3hqOMtS08r+/xTBwpZSZ3qiVRX8SzMHHjfUNFjgHEPmY9PL3ykEzxkSre/1ZD6z/NuznuB0RcE1TWTm9zRgfUWVJiG6yrzgmWPXC8EAR4Wxhlad0ZbgQyEz3pG5RVEwwDJH2mgKpjcTiCOzn1lfUWANFbZ2BA8balnEweJC9J0iuaeZoI+ippFCztEKVvckR2iice1JvhVytrQwUAZpgsubCPaU7xUe9vWnaOpaSBEspalykhC9bUlOMpT42ZHca6hyrqKmw/wMR8H5ZmdFoBVJb03O4UL0tSNnvIeRmkrLWqrs78gcrEn2tpcboh0UPOW3UUR9PMk4T4nnNKWmCjlrefhCwxRNztfmIQVdDElvS4m1/WuOujoZCs5XVOjtKPGokJzsYCtFYoWonSPT21DheU/wWhM19FcElwqNGOsp9Q8N/cwXaiND1MmeL1Q5XROtYYgGeFq1aTMsoMmcrKjQrOFQTQ1fmBYhmW6o8Jkjc7iDJRTBIo5kgJD5yMEYA3srCg7VFKwiVJkmRCc5ohGOKhsYMn/XBLdo5taZjlb9YAlGWRimqbCsoY7HFAXLa5I1HPRxMMsQDHFkWtRNniqT9UEeNjcE7RUlrCJ4R2CSJuqlKHWvJXjAUNcITYkenuBRB84TbeepcqTj3zZyFJzgYQdHnqfgI0ddUwS6GqWpsKWhjq9cV0vBAEMN2znq+EBfIWT+pClYw5xsTlJU6GeIBsjGmmANTzJZiIYpgrM0Oa8ZMjd7NP87jxhqGOhJlnQtjuQpB+8aEE00wZFznSJPyHxgH3HkPOsJFvYk8zqCHzTs1BYOa4J3PFU+UVRZxlHDM4YavlNUuMoRveiZA2d7grMNc2g+RbSCEKzmgYsUmWmazFJyoiOZ4KnyhKOGRzWJa0+moyV4TVHDzn51Awtqaphfk/lRQ08FX1iiqxTB/kLwd0VynKfEvI6cd4XMV5bMhZ7gZUWVzYQ6Nm2BYzxJbw3bGthEUUMfgbGeorae6DxHtJoZ6alhZ0+ytiVoK1R4z5PTrOECT/SugseEOlb1MMNR4VRNcJy+V1Hg9ONClSZFZjdHlc6W6FBLdJja2MC5hhpu0DBYEY1TFGwiFAxRRCsYkiM9JRb0JNMVkW6CZYT/2EiTGWmo8k+h4FhDNE7BvppoTSFnmCV5xZKzvcCdDo7VVPnIU+I+Rc68juApC90MwcFCsJ5hDqxgScYKreruyQwTqrzoqDCmhWi4IbhB0Yrt3RGa6GfDv52rKXWhh28dyZaWUvcZeMTBaZoSGyiCtRU5J8iviioHaErs7Jkj61syVzTTgOcUOQ8buFBTYWdL5g3T4qlpe0+wvD63heAXRfCCIed9RbCsp2CiI7raUOYOTU13N8PNHvpaGvayo4a3LLT1lDrVEPT2zLUlheB1R+ZTRfKWJ+dcocLJfi11vyJ51lLqJ0WD7tRwryezjiV5W28uJO9qykzX8JDe2lHl/9oyBwa2UMfOngpXCixvKdXTk3wrsKmiVYdZIqsoWEERjbcUNDuiaQomGoIbFdEHmsyWnuR+IeriKDVLnlawlyNHKwKlSU631PKep8J4Q+ayjkSLKYLhalNHlYvttb6fHm0p6OApsZ4l2VfdqZkjuysy6ysKLlckf1KUutCTs39bmCgEyyoasIWlVaMF7mgmWtBT8Kol5xpH9IGllo8cJdopcvZ2sImlDmMIbtDk3KIpeNiS08lQw11NFPTwVFlPP6pJ2gvRfI7gQUfmNAtf6Gs0wQxDsKGlVBdF8rCa3jzdwMaGHOsItrZk7hAyOzpK9VS06j5F49b0VNGOOfKs3lDToMsMBe9ZWtHFEgxTJLs7qrygKZjUnmCYoeAqeU6jqWuLJup4WghOdvCYJnrSkSzoyRkm5M2StQwVltPkfCAk58tET/CSg+8MUecmotMEnhBKfWBIZsg2ihruMJQaoIm+tkTLKEqspMh00w95gvFCQRtDwTT1gVDDSEVdlwqZfxoQRbK0g+tbiBZxzKlpnpypejdDwTaeOvorMk/IJE10h9CqRe28hhLbe0pMsdSwv4ZbhKivo2BjDWfL8UKJgeavwlwb5KlwhyE4u4XkGE2ytZCznKLCDZZq42VzT8HLCrpruFbIfOIINmh/qCdZ1ZBc65kLHR1Bkyf5zn6pN3SvGKIlFNGplhrO9QSXanLOMQTLCa0YJCRrCZm/CZmrLTm7WzCK4GJDiWUdFeYx1LCFg3NMd0XmCuF3Y5rITLDUsYS9zoHVzwnJoYpSTQoObyEzr4cFBNqYTopoaU/wkyLZ2lPhX/5Y95ulxGTV7KjhWrOZgl8MyUUafjYraNjNU1N3IWcjT5WzWqjwtoarHSUObGYO3GCJZpsBlnJGPd6ZYLyl1GdCA2625IwwJDP8GUKymbzuyPlZlvTUsaUh5zFDhRWFzPKKZLAlWdcQbObgF9tOqOsmB1dqcqYJmWstFbZRRI9poolmqiLnU0POvxScpah2iSL5UJNzgScY5+AuIbpO0YD3NCW+dLMszFSdFCWGqG6eVq2uYVNDdICGD6W7EPRWZEY5gpsE9rUkS3mijzzJnm6UpUFXG1hCUeVoS5WfNcFpblELL2qqrCvMvRfd45oalvKU2tiQ6ePJOVMRXase9iTtLJztPxJKLWpo2CRDcJwn2sWSLKIO1WQWNTCvpVUvOZhgSC40JD0dOctaSqzkCRbXsKlb11Oip6PCJ0IwSJM31j3akRxlP7Rwn6aGaUL0qiLnJkvB3xWZ2+Q1TfCwpQH3G0o92UzmX4o/oJNQMMSQc547wVHhdk+VCw01DFYEnTxzZKAm74QmeNNR1w6WzEhNK15VJzuCdxQ53dRUDws5KvwgBMOEgpcVNe0hZI6RXT1Jd0cyj5nsaEAHgVmGaJIlWdsc5Ui2ElrRR6jrRAttNMEAIWrTDFubkZaok7/AkzfIwfuWVq0jHzuCK4QabtLUMVPB3kJ0oyHTSVFlqMALilJf2Rf8k5aaHtMfayocLBS8L89oKoxpJvnAkDPa0qp5DAUTHKWmCcnthlou8iCKaFFLHWcINd1nyIwXqrSxMNmSs6KmoL2QrKuWtlQ5V0120xQ5vRyZS1rgFkWwhiOwiuQbR0OOVhQM9iS3tiXp4RawRPMp5tDletOOBL95MpM01dZTBM9pkn5qF010rIeHFcFZhmSGpYpTsI6nwhqe5C9ynhlpp5ophuRb6WcJFldkVnVEwwxVfrVkvnWUuNLCg5bgboFHPDlDPDmnK7hUrWiIbjadDclujlZcaokOFup4Ri1kacV6jmrrK1hN9bGwpKEBQ4Q6DvIUXOmo6U5LqQM6EPyiKNjVkPnJkDPNEaxhiFay5ExW1NXVUGqcpYYdPcGiCq7z/TSlbhL4pplWXKd7NZO5QQFrefhRQW/NHOsqcIglc4UhWklR8K0QzbAw08CBDnpbgqXdeD/QUsM4RZXDFBW6WJKe/mFPdH0LtBgiq57wFLzlyQzz82qYx5D5WJP5yVJDW01BfyHnS6HKO/reZqId1WGa4Hkh2kWodJ8i6KoIPlAj2hPt76CzXsVR6koPRzWTfKqIentatYpQw2me4AA3y1Kind3SwoOKZDcFXTwl9tWU6mfgRk9d71sKtlNwrjnYw5tC5n5LdKiGry3JKNlHEd3oaMCFHrazBPMp/uNJ+V7IudcSbeOIdjUEdwl0VHCOZo5t6YluEuaC9mQeMgSfOyKnYGFHcIeQ84yQWbuJYJpZw5CzglDH7gKnWqqM9ZTaXcN0TeYhR84eQtJT76JJ1lREe7WnnvsMmRc9FQ7SBBM9mV3lCUdmHk/S2RAMt0QjFNFqQpWjDPQ01DXWUdDBkXziKPjGEP3VP+zIWU2t7im41FOloyWzn/L6dkUy3VLDaZ6appgDLHPjJEsyvJngWEPUyVBiAaHCTEXwrLvSEbV1e1gKJniicWorC1MUrVjB3uDhJE/wgSOzk1DXpk0k73qCM8xw2UvD5kJmDUfOomqMpWCkJRlvKXGmoeBm18USjVIk04SClxTB6YrgLAPLWYK9HLUt5cmc0vYES8GnTeRc6skZbQkWdxRsIcyBRzx1DbTk9FbU0caTPOgJHhJKnOGIVhQqvKmo0llRw9sabrZkDtdg3PqaKi9oatjY8B+G371paMg6+mZFNNtQ04mWBq3rYLOmtWWQp8KJnpy9DdFensyjdqZ+yY40VJlH8wcdLzC8PZnvHMFUTZUrDTkLyQaGus5X5LzpYAf3i+e/ZlhqGqWhh6Ou6xTR9Z6oi5AZZtp7Mj2EEm8oSpxiYZCHU/1fbGdNNNRRoZMhmilEb2gqHOEJDtXkHK/JnG6IrvbPCwV3NhONVdS1thBMs1T4QOBcTWa2IzhMk2nW5Kyn9tXUtpv9RsG2msxk+ZsQzRQacJncpgke0+T8y5Fzj8BiGo7XlJjaTIlpQs7KFjpqGnKuoyEPeIKnFMkZHvopgh81ySxNFWvJWcKRs70j2FOT012IllEEO1n4pD1513Yg2ssQPOThOkvyrqHUdEXOSEsihmBbTbKX1kLBPWqWkLOqJbjB3GBIZmoa8qWl4CG/iZ7oiA72ZL7TJNeZUY7kFQftDcHHluBzRbCegzMtrRjVQpX2lgoPKKLJAkcbMl01XK2p7yhL8pCBbQ3BN2avJgKvttcrWDK3CiUOVxQ8ZP+pqXKyIxnmBymCg5vJjNfkPK4+c8cIfK8ocVt7kmfd/I5SR1hKvCzUtb+lhgc00ZaO6CyhIQP1Uv4yIZjload72PXX0OIJvnFU+0Zf6MhsJwTfW0r0UwQfW4LNLZl5HK261JCZ4qnBaAreVAS3WrjV0LBnNDUNNDToCEeFfwgcb4gOEqLRhirWkexrCEYKVV711DLYEE1XBEsp5tpTGjorkomKYF9FDXv7fR3BGwbettSxnyL53MBPjsxDZjMh+VUW9NRxq1DhVk+FSxQcaGjV9Pawv6eGByw5qzoy7xk4RsOShqjJwWKe/1pEEfzkobeD/dQJmpqedcyBTy2sr4nGNRH0c0SPWTLrqAc0OQcb/gemKgqucQT7ySWKCn2EUotoCvpZct7RO2sy/QW0IWcXd7pQRQyZVwT2USRO87uhjioTLKV2brpMUcMQRbKH/N2T+UlTpaMls6cmc6CCNy3JdYYSUzzJQ4oSD3oKLncULOiJvjBEC2oqnCJkJluCYy2ZQ5so9YYlZ1VLlQU1mXEW1jZERwj/MUSRc24TdexlqLKfQBtDTScJUV8FszXBEY5ktpD5Ur9hYB4Nb1iikw3JoYpkKX+RodRKFt53MMuRnKSpY31PwYaGaILh3wxJGz9TkTPEETxoCWZrgvOlmyMzxFEwVJE5xZKzvyJ4WxEc16Gd4Xe3Weq4XH2jKRikqOkGQ87hQnC7wBmGYLAnesX3M+S87eFATauuN+Qcrh7xIxXJbUIdMw3JGE3ylCWzrieaqCn4zhGM19TQ3z1oH1AX+pWEqIc7wNGAkULBo/ZxRaV9NNyh4Br3rCHZzbzmSfawBL0dNRwpW1kK9mxPXR9povcdrGSZK9c2k0xwFGzjuniCtRSZCZ6ccZ7gaktmgAOtKbG/JnOkJrjcQTdFMsxRQ2cLY3WTIrlCw1eWKn8R6pvt4GFDso3QoL4a3nLk3G6JrtME3dSenpx7PNFTmga0EaJTLQ061sEeQoWXhSo9LTXsaSjoJQRXeZLtDclbCrYzfzHHeaKjHCVOUkQHO3JeEepr56mhiyaYYKjjNU+Fed1wS5VlhWSqI/hYUdDOkaxiKehoyOnrCV5yBHtbWFqTHCCwtpDcYolesVR5yUzTZBb3RNMd0d6WP+SvhuBmRcGxnuQzT95IC285cr41cLGQ6aJJhmi4TMGempxeimBRQw1tFKV+8jd6KuzoSTqqDxzRtpZkurvKEHxlqXKRIjjfUNNXQsNOsRScoWFLT+YeRZVD3GRN0MdQcKqQjHDMrdGGVu3iYJpQx3WGUvfbmxwFfR20WBq0oYY7LMFhhgYtr8jpaEnaOzjawWWaTP8mMr0t/EPDPoqcnxTBI5o58L7uoWnMrpoqPwgVrlAUWE+V+TQl9rawoyP6QGAlQw2TPRX+YSkxyBC8Z6jhHkXBgQL7WII3DVFnRfCrBfxewv9D6xsyjys4VkhWb9pUU627JllV0YDNHMku/ldNMMXDEo4aFnAkk4U6frNEU4XgZUPmEKHUl44KrzmYamjAbh0JFvGnaTLPu1s9jPCwjFpYiN7z1DTOk/nc07CfDFzmCf7i+bfNHXhDtLeBXzTBT5rkMvWOIxpl4EMh2LGJBu2syDnAEx2naEhHDWMMzPZEhygyS1mS5RTJr5ZkoKbEUoYqr2kqdDUE8ztK7OaIntJkFrIECwv8LJTaVx5XJE86go8dFeZ3FN3rjabCAYpoYEeC9zzJVULBbmZhDyd7ko09ydpNZ3nm2Kee4FPPXHnYEF1nqOFEC08LUVcDvYXkJHW8gTaKCk9YGOeIJhqiE4ToPEepdp7IWFjdwnWaufGMwJJCMtUTTBBK9BGCOy2tGGrJTHIwyEOzp6aPzNMOtlZkDvcEWpP5SVNhfkvDxhmSazTJXYrM9U1E0xwFVwqZQwzJxw6+kGGGUj2FglGGmnb1/G51udRSMNlTw6GGnCcUwVcOpmsqTHa06o72sw1RL02p9z0VbnMLOaIX3QKaYKSCFQzBKEUNHTSc48k53RH9wxGMtpQa5KjjW0W0n6XCCCG4yxNNdhQ4R4l1Ff+2sSd6UFHiIEOyqqFgT01mEUMD+joy75jPhOA+oVVLm309FR4yVOlp4RhLiScNmSmaYF5Pw0STrOIoWMSR2UkRXOMp+M4SHW8o8Zoi6OZgjKOaFar8zZDzkWzvKOjkKBjmCXby8JahhjXULY4KlzgKLvAwxVGhvyd4zxB1d9T0piazmKLCVZY5sKiD0y2ZSYrkUEPUbIk+dlQ4SJHTR50k1DPaUWIdTZW9NJwnJMOECgd7ou/MnppMJ02O1VT4Wsh85MnZzcFTngpXGKo84qmwgKbCL/orR/SzJ2crA+t6Mp94KvxJUeIbT3CQu1uIdlQEOzlKfS3UMcrTiFmOuroocrZrT2AcmamOKg8YomeEKm/rlT2sociMaybaUlFhuqHCM2qIJ+rg4EcDFymiDSxzaHdPcpE62pD5kyM5SBMoA1PaUtfIthS85ig1VPiPPYXgYEMNk4Qq7TXBgo7oT57gPUdwgCHzhIVFPFU6OYJzHAX9m5oNrVjeE61miDrqQ4VSa1oiURTsKHC0IfjNwU2WzK6eqK8jWln4g15TVBnqmDteCJ501PGAocJhhqjZdtBEB6lnhLreFJKxmlKbeGrqLiSThVIbCdGzloasa6lpMQXHCME2boLpJgT7yWaemu6wBONbqGNVRS0PKIL7LckbjmQtR7K8I5qtqel+T/ChJTNIKLjdUMNIRyvOEko9YYl2cwQveBikCNawJKcLBbc7+JM92mysNvd/Fqp8a0k6CNEe7cnZrxlW0wQXaXjaktnRwNOGZKYiONwS7a1JVheq3WgJHlQUGKHKmp4KAxXR/ULURcNgoa4zhKSLpZR3kxRRb0NmD0OFn+UCS7CzI1nbP6+o4x47QZE5xRCt3ZagnYcvmpYQktXdk5YKXTzBC57kKEe0VVuiSYqapssMS3C9p2CKkHOg8B8Pa8p5atrIw3qezIWanMGa5HRDNF6RM9wcacl0N+Q8Z8hsIkSnaIIdHRUOEebAPy1zbCkhM062FCJtif7PU+UtoVXzWKqM1PxXO8cfdruhFQ/a6x3JKYagvVDhQEtNiyiiSQ7OsuRsZUku0CRNDs4Sog6KKjsZgk2bYJqijgsEenoKeniinRXBn/U3lgpPdyDZynQx8IiioMnCep5Ky8mjGs6Wty0l1hUQTcNWswS3WRp2kCNZwJG8omG8JphPUaFbC8lEfabwP7VtM9yoaNCAjpR41VNhrD9LkbN722v0CoZMByFzhaW+MyzRYEWFDQwN2M4/JiT76PuljT3VU/A36eaIThb+R9oZGOAJ9tewkgGvqOMNRWYjT/Cwu99Q8LqDE4TgbLWxJ1jaDDAERsFOFrobgjUsBScaguXU8kKm2RL19tRypSHnHNlHiIZqgufs4opgQdVdwxBNNFBR6kVFqb8ogimOzB6a6HTzrlDHEpYaxjiiA4TMQobkDg2vejjfwJGWmnbVFAw3H3hq2NyQfG7hz4aC+w3BbwbesG0swYayvpAs6++Ri1Vfzx93mFChvyN5xVHTS+0p9aqCAxyZ6ZacZyw5+7uuQkFPR9DDk9NOiE7X1PCYJVjVUqq7JlrHwWALF5nfHNGjApdpqgzx5OwilDhCiDYTgnc9waGW4BdLNNUQvOtpzDOWHDH8D7TR/A/85KljEQu3NREc4Pl/6B1Hhc8Umb5CsKMmGC9EPcxoT2amwHNCmeOEnOPbklnMkbOgIvO5UMOpQrS9UGVdt6iH/fURjhI/WOpaW9OKLYRod6HCUEdOX000wpDZQ6hwg6LgZfOqo1RfT/CrJzjekXOGhpc1VW71ZLbXyyp+93ILbC1kPtIEYx0FIx1VDrLoVzXRKRYWk809yYlC9ImcrinxtabKnzRJk3lAU1OLEN1j2zrYzr2myHRXJFf4h4QKT1qSTzTB5+ZNTzTRkAxX8FcLV2uS8eoQQ2aAkFzvCM72sJIcJET3WPjRk5wi32uSS9rfZajpWEvj9hW42F4o5NytSXYy8IKHay10VYdrcl4SkqscrXpMwyGOgtkajheSxdQqmpxP1L3t4R5PqasFnrQEjytq6qgp9Y09Qx9o4S1FzhUCn1kyHSzBWLemoSGvOqLNhZyBjmCaAUYpMgt4Ck7wBBMMwWKWgjsUwTaGVsxWC1mYoKiyqqeGKYqonSIRQ3KIkHO0pmAxTdBHkbOvfllfr+AA+7gnc50huVKYK393FOyg7rbPO/izI7hE4CnHHHnJ0ogNPRUGeUpsrZZTBJcrovUcJe51BPsr6GkJdhCCsZ6aTtMEb2pqWkqeVtDXE/QVggsU/Nl86d9RMF3DxvZTA58agu810RWawCiSzzXBeU3MMW9oyJUedvNEvQyNu1f10BSMddR1vaLCYpYa/mGocLSiYDcLbQz8aMn5iyF4xBNMs1P0QEOV7o5gaWGuzSeLue4tt3ro7y4Tgm4G/mopdZgl6q0o6KzJWE3mMksNr3r+a6CbT8g5wZNzT9O7fi/zpaOmnz3BRoqos+tv9zMbdpxsqDBOEewtJLt7cg5wtKKbvldpSzRRCD43VFheCI7yZLppggMVBS/KMAdHODJvOwq2NQSbKKKPLdFWQs7Fqo+mpl01JXYRgq8dnGLhTiFzqmWsUMdpllZdbKlyvSdYxhI9YghOtxR8LgSLWHK62mGGVoxzBE8LNWzqH9CUesQzFy5RQzTc56mhi6fgXEWwpKfE5Z7M05ZgZUPmo6auiv8YKzDYwWBLMErIbKHJvOwIrvEdhOBcQ9JdU1NHQ7CXn2XIDFBKU2WAgcX9UAUzDXWd5alwuyJ41Z9rjKLCL4aCp4WarhPm2rH+SaHUYE001JDZ2ZAzXPjdMpZWvC9wmqIB2lLhQ01D5jO06hghWMndbM7yRJMsoCj1vYbnFQVrW9jak3OlEJ3s/96+p33dEPRV5GxiqaGjIthUU6FFEZyqCa5qJrpBdzSw95IUnOPIrCUUjRZQFrbw5PR0R1qiYx3cb6nrWUMrBmmiBQxVHtTew5ICP/ip6g4hed/Akob/32wvBHsIOX83cI8hGeNeNPCIkPmXe8fPKx84OMSRM1MTdXSwjCZ4S30jVGhvqTRak/OVhgGazHuOCud5onEO1lJr6ecVyaOK6H7zqlBlIaHE0oroCgfvGJIdPcmfLNGLjpz7hZwZQpUbFME0A1cIJa7VNORkgfsMBatbKgwwJM9bSvQXeNOvbIjelg6WWvo5kvbKaJJNHexkKNHL9xRyFlH8Ti2riB5wVPhUk7nGkJnoCe428LR/wRGdYIlmWebCyxou1rCk4g/ShugBDX0V0ZQWkh0dOVsagkM0yV6OoLd5ye+pRlsCr0n+KiQrGuq5yJDzrTAXHtLUMduTDBVKrSm3eHL+6ijxhFDX9Z5gVU/wliHYTMiMFpKLNMEywu80wd3meoFmt6VbRMPenhrOc6DVe4pgXU8DnnHakLOIIrlF4FZPIw6R+zxBP0dyq6OOZ4Q5sLKCcz084ok+VsMMyQhNZmmBgX5xIXOEJTmi7VsGTvMTNdHHhpzdbE8Du2oKxgvBqQKdDDnTFOylCFaxR1syz2iqrOI/FEpNc3C6f11/7+ASS6l2inq2ciTrCCzgyemrCL5SVPjQkdPZUmGy2c9Sw9FtR1sS30RmsKPCS4rkIC/2U0MduwucYolGaPjKEyhzmiPYXagyWbYz8LWBDdzRimAXzxx4z8K9hpzlhLq+NiQ97HuKorMUfK/OVvC2JfiHUPCQI/q7J2gjK+tTDNxkCc4TMssqCs4TGtLVwQihyoAWgj9bosU80XGW6Ac9TJGziaUh5+hnFcHOnlaM1iRn29NaqGENTTTSUHCH2tWTeV0osUhH6psuVLjRUmGWhm6OZEshGeNowABHcJ2Bpy2ZszRcKkRXd2QuKVEeXnbfaEq825FguqfgfE2whlChSRMdron+LATTPQ2Z369t4B9C5gs/ylzv+CMmepIDPclFQl13W0rspPd1JOcbghGOEutqCv5qacURQl3dDKyvyJlqKXGPgcM9FfawJAMVmdcspcYKOZc4GjDYkFlK05olNMHyHn4zFNykyOxt99RkHlfwmiHo60l2EKI+mhreEKp080Tbug08BVPcgoqC5zWt+NLDTZ7oNSF51N1qie7Va3uCCwyZbkINf/NED6jzOsBdZjFN8oqG3wxVunqCSYYKf3EdhJyf9YWGf7tRU2oH3VHgPr1fe5J9hOgHd7xQ0y7qBwXr23aGErP0cm64JVjZwsOGqL+mhNgZmhJLW2oY4UhedsyBgzrCKrq7BmcpNVhR6jBPq64Vgi+kn6XE68pp8J5/+0wRHGOpsKenQn9DZntPzjRLZpDAdD2fnSgkG9tmIXnUwQ6WVighs7Yi2MxQ0N3CqYaCXkJ0oyOztMDJjmSSpcpvlrk0RMMOjmArQ04PRV1DO1FwhCVaUVPpKUM03JK5SxPsIWRu8/CGHi8UHChiqGFDTbSRJWeYUDDcH6vJWUxR4k1FXbMUwV6e4AJFXS8oMqsZKqzvYQ9DDQdZckY4aGsIhtlubbd2r3j4QBMoTamdPZk7O/Bf62lacZwneNjQoGcdVU7zJOd7ghsUHOkosagic6cnWc8+4gg285R6zZP5s1/LUbCKIznTwK36PkdwlOrl4U1LwfdCCa+IrvFkmgw1PCAUXKWo0sURXWcI2muKJlgyFzhynCY4RBOsqCjoI1R5zREco0n2Vt09BQtYSizgKNHfUmUrQ5UOCh51BFcLmY7umhYqXKQomOop8bUnWNNQcIiBcYaC6xzMNOS8JQQfeqKBmmglB+97ok/lfk3ygaHSyZaCRTzRxQo6GzLfa2jWBPepw+UmT7SQEJyiyRkhBLMVOfcoMjcK0eZChfUNzFAUzCsEN5vP/X1uP/n/aoMX+K+nw/Hjr/9xOo7j7Pju61tLcgvJpTWXNbfN5jLpi6VfCOviTktKlFusQixdEKWmEBUKNaIpjZRSSOXSgzaaKLdabrm1/9nZ+/f+vd/vz/v9+Xy+zZ7PRorYoZqyLrCwQdEAixxVOEXNNnjX2nUSRlkqGmWowk8lxR50JPy9Bo6qJXaXwNvREBvnThPEPrewryLhcAnj5WE15Fqi8W7R1sAuEu86S4ENikItFN4xkv9Af4nXSnUVcLiA9xzesFpivRRVeFKtsMRaKBhuSbjOELnAUtlSQUpXgdfB4Z1oSbnFEetbQ0IrAe+Y+pqnDcEJFj6S8LDZzZHwY4e3XONNlARraomNEt2bkvGsosA3ioyHm+6jCMbI59wqt4eeara28IzEmyPgoRaUOEDhTVdEJhmCoTWfC0p8aNkCp0oYqih2iqGi4yXeMkOsn4LdLLnmKfh/YogjNsPebeFGR4m9BJHLzB61XQ3BtpISfS2FugsK9FAtLWX1dCRcrCnUp44CNzuCowUZmxSRgYaE6Za0W2u/E7CVXCiI/UOR8aAm1+OSyE3mOUcwyc1zBBeoX1kiKy0Zfxck1Gsyulti11i83QTBF5Kg3pDQThFMVHiPSlK+0cSedng/VaS8bOZbtsBcTcZAR8JP5KeqQ1OYKAi20njdNNRpgnsU//K+JnaXJaGTomr7aYIphoRn9aeShJWKEq9LcozSF7QleEfDI5LYm5bgVkFkRwVDBCVu0DDIkGupo8TZBq+/pMQURYErJQmPKGKjNDkWOLx7Jd5QizdUweIaKrlP7SwJDhZvONjLkOsBBX9UpGxnydhXkfBLQ8IxgojQbLFnJf81JytSljclYYyEFyx0kVBvKWOFJmONpshGAcsduQY5giVNCV51eOdJYo/pLhbvM0uDHSevNKRcrKZIqnCtJeEsO95RoqcgGK4ocZcho1tTYtcZvH41pNQ7vA0WrhIfOSraIIntIAi+NXWCErdbkvrWwjRLrt0NKUdL6KSOscTOdMSOUtBHwL6OLA0vNSdynaWQEnCpIvKaIrJJEbvHkmuNhn6OjM8VkSGSqn1uYJCGHnq9I3aLhNME3t6GjIkO7xrNFumpyTNX/NrwX7CrIRiqqWijI9JO4d1iieykyfiposQIQ8YjjsjlBh6oHWbwRjgYJQn2NgSnNycmJAk3NiXhx44Sxykihxm8ybUwT1OVKySc7vi3OXVkdBJ4AyXBeksDXG0IhgtYY0lY5ahCD0ehborIk5aUWRJviMA7Xt5kyRjonrXENkm8yYqgs8VzgrJmClK20uMM3jRJ0FiQICQF9hdETlLQWRIb5ki6WDfWRPobvO6a4GP5mcOrNzDFELtTkONLh9dXE8xypEg7z8A9jkhrQ6Fhjlg/QVktJXxt4WXzT/03Q8IaQWSqIuEvloQ2mqC9Jfi7wRul4RX3pSPlzpoVlmCtI2jvKHCFhjcM3sN6lqF6HxnKelLjXWbwrpR4xzuCrTUZx2qq9oAh8p6ixCUGr78g8oyjRAtB5CZFwi80VerVpI0h+IeBxa6Zg6kWvpDHaioYYuEsRbDC3eOmC2JvGYLeioxGknL2UATNJN6hmtj1DlpLvDVmocYbrGCVJKOrg4X6DgddLA203BKMFngdJJFtFd7vJLm6KEpc5yjQrkk7M80SGe34X24nSex1Ra5Omgb71JKyg8SrU3i/kARKwWpH0kOGhKkObyfd0ZGjvyXlAkVZ4xRbYJ2irFMkFY1SwyWxr2oo4zlNiV+7zmaweFpT4kR3kaDAFW6xpSqzJay05FtYR4HmZhc9UxKbbfF2V8RG1MBmSaE+kmC6JnaRXK9gsiXhJHl/U0qM0WTcbyhwkYIvFGwjSbjfwhiJt8ZSQU+Bd5+marPMOkVkD0muxYLIfEuhh60x/J92itguihJSEMySVPQnTewnEm+620rTQEMsOfo4/kP/0ARvWjitlpSX7GxBgcMEsd3EEeYWvdytd+Saawi6aCIj1CkGb6Aj9rwhx16Cf3vAwFy5pyLhVonXzy51FDpdEblbkdJbUcEPDEFzQ8qNmhzzLTmmKWKbFCXeEuRabp6rxbvAtLF442QjQ+wEA9eL1xSR7Q0JXzlSHjJ4exq89yR0laScJ/FW6z4a73pFMEfDiRZvuvijIt86RaSFOl01riV2mD1UEvxGk/Geg5aWwGki1zgKPG9J2U8PEg8qYvMsZeytiTRXBMslCU8JSlxi8EabjwUldlDNLfzTUmCgxWsjqWCOHavYAqsknKFIO0yQ61VL5AVFxk6WhEaCAkdJgt9aSkzXlKNX2jEa79waYuc7gq0N3GDJGCBhoiTXUEPsdknCUE1CK0fwsiaylSF2uiDyO4XX3pFhNd7R4itFGc0k/ElBZwWvq+GC6szVeEoS/MZ+qylwpKNKv9Z469UOjqCjwlusicyTxG6VpNxcQ8IncoR4RhLbR+NdpGGmJWOcIzJGUuKPGpQg8rrG21dOMqQssJQ4RxH5jaUqnZuQ0F4Q+cjxLwPtpZbIAk3QTJHQWBE5S1BokoVtDd6lhqr9UpHSUxMcIYl9pojsb8h4SBOsMQcqvOWC2E8EVehqiJ1hrrAEbQxeK0NGZ0Gkq+guSRgniM23bIHVkqwx4hiHd7smaOyglyIyQuM978j4VS08J/A2G1KeMBRo4fBaSNhKUEZfQewVQ/C1I+MgfbEleEzCUw7mKXI0M3hd1EESVji8x5uQ41nxs1q4RMJCCXs7Iq9acpxn22oSDnQ/sJTxsCbHIYZiLyhY05TY0ZLIOQrGaSJDDN4t8pVaIrsqqFdEegtizc1iTew5Q4ayBDMUsQMkXocaYkc0hZua412siZ1rSXlR460zRJ5SlHGe5j801RLMlJTxtaOM3Q1pvxJ45zUlWFD7rsAbpfEm1JHxG0eh8w2R7QQVzBUw28FhFp5QZzq8t2rx2joqulYTWSuJdTYfWwqMFMcovFmSyJPNyLhE4E10pHzYjOC3huArRa571ZsGajQpQx38SBP5pyZB6lMU3khDnp0MBV51BE9o2E+TY5Ml2E8S7C0o6w1xvCZjf0HkVEHCzFoyNmqC+9wdcqN+Tp7jSDheE9ws8Y5V0NJCn2bk2tqSY4okdrEhx1iDN8cSudwepWmAGXKcJXK65H9to8jYQRH7SBF01ESUJdd0TayVInaWhLkOjlXE5irKGOnI6GSWGCJa482zBI9rCr0jyTVcEuzriC1vcr6mwFGSiqy5zMwxBH/TJHwjSPhL8+01kaaSUuMFKTcLEvaUePcrSmwn8DZrgikWb7CGPxkSjhQwrRk57tctmxLsb9sZvL9LSlyuSLlWkqOjwduo8b6Uv1DkmudIeFF2dHCgxVtk8dpIvHpBxhEOdhKk7OLIUSdJ+cSRY57B+0DgGUUlNfpthTfGkauzxrvTsUUaCVhlKeteTXCoJDCa2NOKhOmC4G1H8JBd4OBZReSRGkqcb/CO1PyLJTLB4j1q8JYaIutEjSLX8YKM+a6phdMsdLFUoV5RTm9JSkuDN8WcIon0NZMNZWh1q8C7SJEwV5HxrmnnTrf3KoJBlmCYI2ilSLlfEvlE4011NNgjgthzEua0oKK7JLE7HZHlEl60BLMVFewg4EWNt0ThrVNEVkkiTwpKXSWJzdRENgvKGq4IhjsiezgSFtsfCUq8qki5S1LRQeYQQ4nemmCkImWMw3tFUoUBZk4NOeZYEp4XRKTGa6wJjrWNHBVJR4m3FCnbuD6aak2WsMTh3SZImGCIPKNgsDpVwnsa70K31lCFJZYcwwSMFcQulGTsZuEaSdBXkPGZhu0FsdUO73RHjq8MPGGIfaGIbVTk6iuI3GFgucHrIQkmWSJdBd7BBu+uOryWAhY7+Lki9rK5wtEQzWwvtbqGhIMFwWRJsElsY4m9IIg9L6lCX0VklaPAYkfkZEGDnOWowlBJjtMUkcGK4Lg6EtoZInMUBVYLgn0UsdmCyCz7gIGHFfk+k1QwTh5We7A9x+IdJ6CvIkEagms0hR50eH9UnTQJ+2oiKyVlLFUE+8gBGu8MQ3CppUHesnjTHN4QB/UGPhCTHLFPHMFrCqa73gqObUJGa03wgbhHkrCfpEpzNLE7JDS25FMKhlhKKWKfCgqstLCPu1zBXy0J2ztwjtixBu8UTRn9LVtkmCN2iyFhtME70JHRQ1KVZXqKI/KNIKYMCYs1GUMEKbM1bKOI9LDXC7zbHS+bt+1MTWS9odA9DtrYtpbImQJ2VHh/lisEwaHqUk1kjKTAKknkBEXkbkdMGwq0dnhzLJF3NJH3JVwrqOB4Sca2hti75nmJN0WzxS6UxDYoEpxpa4htVlRjkYE7DZGzJVU72uC9IyhQL4i8YfGWSYLLNcHXloyz7QhNifmKSE9JgfGmuyLhc403Xm9vqcp6gXe3xuuv8F6VJNxkyTHEkHG2g0aKXL0MsXc1bGfgas2//dCONXiNLCX+5mB7eZIl1kHh7ajwpikyzlUUWOVOsjSQlsS+M0R+pPje/dzBXRZGO0rMtgQrLLG9VSu9n6CMXS3BhwYmSoIBhsjNBmZbgusE9BCPCP5triU4VhNbJfE+swSP27aayE8tuTpYYjtrYjMVGZdp2NpS1s6aBnKSHDsbKuplKbHM4a0wMFd/5/DmGyKrJSUaW4IBrqUhx0vyfzTBBLPIUcnZdrAkNsKR0sWRspumSns6Ch0v/qqIbBYUWKvPU/CFoyrDJGwSNFhbA/MlzKqjrO80hRbpKx0Jewsi/STftwGSlKc1JZyAzx05dhLEdnfQvhZOqiHWWEAHC7+30FuRcZUgaO5gpaIK+xsiHRUsqaPElTV40xQZQ107Q9BZE1nryDVGU9ZSQ47bmhBpLcYpUt7S+xuK/FiT8qKjwXYw5ypS2iuCv7q1gtgjhuBuB8LCFY5cUuCNtsQOFcT+4Ih9JX+k8Ea6v0iCIRZOtCT0Et00JW5UeC85Cg0ScK0k411HcG1zKtre3SeITBRk7WfwDhEvaYLTHP9le0m8By0JDwn4TlLW/aJOvGHxdjYUes+ScZigCkYQdNdEOhkiezgShqkx8ueKjI8lDfK2oNiOFvrZH1hS+tk7NV7nOmLHicGWEgubkXKdwdtZknCLJXaCpkrjZBtLZFsDP9CdxWsSr05Sxl6CMmoFbCOgryX40uDtamB7SVmXW4Ihlgpmq+00tBKUUa83WbjLUNkzDmY7cow1JDygyPGlhgGKYKz4vcV7QBNbJIgM11TUqZaMdwTeSguH6rOaw1JRKzaaGyxVm2EJ/uCIrVWUcZUkcp2grMsEjK+DMwS59jQk3Kd6SEq1d0S6uVmO4Bc1lDXTUcHjluCXEq+1OlBDj1pi9zgiXxnKuE0SqTXwhqbETW6RggMEnGl/q49UT2iCzgJvRwVXS2K/d6+ZkyUl7jawSVLit46EwxVljDZwoSQ20sDBihztHfk2yA8NVZghiXwrYHQdfKAOtzsayjhY9bY0yE2CWEeJ9xfzO423xhL5syS2TFJofO2pboHob0nY4GiAgRrvGQEDa/FWSsoaaYl0syRsEt3kWoH3B01shCXhTUWe9w3Bt44SC9QCh3eShQctwbaK2ApLroGCMlZrYqvlY3qYhM0aXpFkPOuoqJ3Dm6fxXrGwVF9gCWZagjPqznfkuMKQ8DPTQRO8ZqG1hPGKEm9IgpGW4DZDgTNriTxvFiq+Lz+0cKfp4wj6OCK9JSnzNSn9LFU7UhKZZMnYwcJ8s8yRsECScK4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");\ +}\ +.ace-ambiance .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/htdocs/includes/ace/theme-chaos.js b/htdocs/includes/ace/theme-chaos.js new file mode 100644 index 00000000000..97ec7fbdc7c --- /dev/null +++ b/htdocs/includes/ace/theme-chaos.js @@ -0,0 +1,156 @@ +ace.define("ace/theme/chaos",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-chaos"; +exports.cssText = ".ace-chaos .ace_gutter {\ +background: #141414;\ +color: #595959;\ +border-right: 1px solid #282828;\ +}\ +.ace-chaos .ace_gutter-cell.ace_warning {\ +background-image: none;\ +background: #FC0;\ +border-left: none;\ +padding-left: 0;\ +color: #000;\ +}\ +.ace-chaos .ace_gutter-cell.ace_error {\ +background-position: -6px center;\ +background-image: none;\ +background: #F10;\ +border-left: none;\ +padding-left: 0;\ +color: #000;\ +}\ +.ace-chaos .ace_print-margin {\ +border-left: 1px solid #555;\ +right: 0;\ +background: #1D1D1D;\ +}\ +.ace-chaos {\ +background-color: #161616;\ +color: #E6E1DC;\ +}\ +.ace-chaos .ace_cursor {\ +border-left: 2px solid #FFFFFF;\ +}\ +.ace-chaos .ace_cursor.ace_overwrite {\ +border-left: 0px;\ +border-bottom: 1px solid #FFFFFF;\ +}\ +.ace-chaos .ace_marker-layer .ace_selection {\ +background: #494836;\ +}\ +.ace-chaos .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-chaos .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #FCE94F;\ +}\ +.ace-chaos .ace_marker-layer .ace_active-line {\ +background: #333;\ +}\ +.ace-chaos .ace_gutter-active-line {\ +background-color: #222;\ +}\ +.ace-chaos .ace_invisible {\ +color: #404040;\ +}\ +.ace-chaos .ace_keyword {\ +color:#00698F;\ +}\ +.ace-chaos .ace_keyword.ace_operator {\ +color:#FF308F;\ +}\ +.ace-chaos .ace_constant {\ +color:#1EDAFB;\ +}\ +.ace-chaos .ace_constant.ace_language {\ +color:#FDC251;\ +}\ +.ace-chaos .ace_constant.ace_library {\ +color:#8DFF0A;\ +}\ +.ace-chaos .ace_constant.ace_numeric {\ +color:#58C554;\ +}\ +.ace-chaos .ace_invalid {\ +color:#FFFFFF;\ +background-color:#990000;\ +}\ +.ace-chaos .ace_invalid.ace_deprecated {\ +color:#FFFFFF;\ +background-color:#990000;\ +}\ +.ace-chaos .ace_support {\ +color: #999;\ +}\ +.ace-chaos .ace_support.ace_function {\ +color:#00AEEF;\ +}\ +.ace-chaos .ace_function {\ +color:#00AEEF;\ +}\ +.ace-chaos .ace_string {\ +color:#58C554;\ +}\ +.ace-chaos .ace_comment {\ +color:#555;\ +font-style:italic;\ +padding-bottom: 0px;\ +}\ +.ace-chaos .ace_variable {\ +color:#997744;\ +}\ +.ace-chaos .ace_meta.ace_tag {\ +color:#BE53E6;\ +}\ +.ace-chaos .ace_entity.ace_other.ace_attribute-name {\ +color:#FFFF89;\ +}\ +.ace-chaos .ace_markup.ace_underline {\ +text-decoration: underline;\ +}\ +.ace-chaos .ace_fold-widget {\ +text-align: center;\ +}\ +.ace-chaos .ace_fold-widget:hover {\ +color: #777;\ +}\ +.ace-chaos .ace_fold-widget.ace_start,\ +.ace-chaos .ace_fold-widget.ace_end,\ +.ace-chaos .ace_fold-widget.ace_closed{\ +background: none;\ +border: none;\ +box-shadow: none;\ +}\ +.ace-chaos .ace_fold-widget.ace_start:after {\ +content: '▾'\ +}\ +.ace-chaos .ace_fold-widget.ace_end:after {\ +content: '▴'\ +}\ +.ace-chaos .ace_fold-widget.ace_closed:after {\ +content: '‣'\ +}\ +.ace-chaos .ace_indent-guide {\ +border-right:1px dotted #333;\ +margin-right:-1px;\ +}\ +.ace-chaos .ace_fold { \ +background: #222; \ +border-radius: 3px; \ +color: #7AF; \ +border: none; \ +}\ +.ace-chaos .ace_fold:hover {\ +background: #CCC; \ +color: #000;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/htdocs/includes/ace/theme-chrome.js b/htdocs/includes/ace/theme-chrome.js new file mode 100644 index 00000000000..83742aa4642 --- /dev/null +++ b/htdocs/includes/ace/theme-chrome.js @@ -0,0 +1,128 @@ +ace.define("ace/theme/chrome",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-chrome"; +exports.cssText = ".ace-chrome .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow : hidden;\ +}\ +.ace-chrome .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-chrome {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-chrome .ace_cursor {\ +color: black;\ +}\ +.ace-chrome .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-chrome .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-chrome .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-chrome .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-chrome .ace_fold {\ +}\ +.ace-chrome .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-chrome .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_support.ace_type,\ +.ace-chrome .ace_support.ace_class\ +.ace-chrome .ace_support.ace_other {\ +color: rgb(109, 121, 222);\ +}\ +.ace-chrome .ace_variable.ace_parameter {\ +font-style:italic;\ +color:#FD971F;\ +}\ +.ace-chrome .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-chrome .ace_comment {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc.ace_tag {\ +color: #236e24;\ +}\ +.ace-chrome .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-chrome .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-chrome .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-chrome .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-chrome .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-chrome .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-chrome .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-chrome .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-chrome .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-chrome .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-chrome .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-chrome .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-chrome .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-chrome .ace_storage,\ +.ace-chrome .ace_keyword,\ +.ace-chrome .ace_meta.ace_tag {\ +color: rgb(147, 15, 128);\ +}\ +.ace-chrome .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-chrome .ace_string {\ +color: #1A1AA6;\ +}\ +.ace-chrome .ace_entity.ace_other.ace_attribute-name {\ +color: #994409;\ +}\ +.ace-chrome .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-clouds.js b/htdocs/includes/ace/theme-clouds.js new file mode 100644 index 00000000000..83d0d14d593 --- /dev/null +++ b/htdocs/includes/ace/theme-clouds.js @@ -0,0 +1,95 @@ +ace.define("ace/theme/clouds",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-clouds"; +exports.cssText = ".ace-clouds .ace_gutter {\ +background: #ebebeb;\ +color: #333\ +}\ +.ace-clouds .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-clouds {\ +background-color: #FFFFFF;\ +color: #000000\ +}\ +.ace-clouds .ace_cursor {\ +color: #000000\ +}\ +.ace-clouds .ace_marker-layer .ace_selection {\ +background: #BDD5FC\ +}\ +.ace-clouds.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-clouds .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-clouds .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-clouds .ace_marker-layer .ace_active-line {\ +background: #FFFBD1\ +}\ +.ace-clouds .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-clouds .ace_marker-layer .ace_selected-word {\ +border: 1px solid #BDD5FC\ +}\ +.ace-clouds .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-clouds .ace_keyword,\ +.ace-clouds .ace_meta,\ +.ace-clouds .ace_support.ace_constant.ace_property-value {\ +color: #AF956F\ +}\ +.ace-clouds .ace_keyword.ace_operator {\ +color: #484848\ +}\ +.ace-clouds .ace_keyword.ace_other.ace_unit {\ +color: #96DC5F\ +}\ +.ace-clouds .ace_constant.ace_language {\ +color: #39946A\ +}\ +.ace-clouds .ace_constant.ace_numeric {\ +color: #46A609\ +}\ +.ace-clouds .ace_constant.ace_character.ace_entity {\ +color: #BF78CC\ +}\ +.ace-clouds .ace_invalid {\ +background-color: #FF002A\ +}\ +.ace-clouds .ace_fold {\ +background-color: #AF956F;\ +border-color: #000000\ +}\ +.ace-clouds .ace_storage,\ +.ace-clouds .ace_support.ace_class,\ +.ace-clouds .ace_support.ace_function,\ +.ace-clouds .ace_support.ace_other,\ +.ace-clouds .ace_support.ace_type {\ +color: #C52727\ +}\ +.ace-clouds .ace_string {\ +color: #5D90CD\ +}\ +.ace-clouds .ace_comment {\ +color: #BCC8BA\ +}\ +.ace-clouds .ace_entity.ace_name.ace_tag,\ +.ace-clouds .ace_entity.ace_other.ace_attribute-name {\ +color: #606060\ +}\ +.ace-clouds .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-clouds_midnight.js b/htdocs/includes/ace/theme-clouds_midnight.js new file mode 100644 index 00000000000..275e9f296a1 --- /dev/null +++ b/htdocs/includes/ace/theme-clouds_midnight.js @@ -0,0 +1,96 @@ +ace.define("ace/theme/clouds_midnight",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-clouds-midnight"; +exports.cssText = ".ace-clouds-midnight .ace_gutter {\ +background: #232323;\ +color: #929292\ +}\ +.ace-clouds-midnight .ace_print-margin {\ +width: 1px;\ +background: #232323\ +}\ +.ace-clouds-midnight {\ +background-color: #191919;\ +color: #929292\ +}\ +.ace-clouds-midnight .ace_cursor {\ +color: #7DA5DC\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_selection {\ +background: #000000\ +}\ +.ace-clouds-midnight.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #191919;\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_active-line {\ +background: rgba(215, 215, 215, 0.031)\ +}\ +.ace-clouds-midnight .ace_gutter-active-line {\ +background-color: rgba(215, 215, 215, 0.031)\ +}\ +.ace-clouds-midnight .ace_marker-layer .ace_selected-word {\ +border: 1px solid #000000\ +}\ +.ace-clouds-midnight .ace_invisible {\ +color: #666\ +}\ +.ace-clouds-midnight .ace_keyword,\ +.ace-clouds-midnight .ace_meta,\ +.ace-clouds-midnight .ace_support.ace_constant.ace_property-value {\ +color: #927C5D\ +}\ +.ace-clouds-midnight .ace_keyword.ace_operator {\ +color: #4B4B4B\ +}\ +.ace-clouds-midnight .ace_keyword.ace_other.ace_unit {\ +color: #366F1A\ +}\ +.ace-clouds-midnight .ace_constant.ace_language {\ +color: #39946A\ +}\ +.ace-clouds-midnight .ace_constant.ace_numeric {\ +color: #46A609\ +}\ +.ace-clouds-midnight .ace_constant.ace_character.ace_entity {\ +color: #A165AC\ +}\ +.ace-clouds-midnight .ace_invalid {\ +color: #FFFFFF;\ +background-color: #E92E2E\ +}\ +.ace-clouds-midnight .ace_fold {\ +background-color: #927C5D;\ +border-color: #929292\ +}\ +.ace-clouds-midnight .ace_storage,\ +.ace-clouds-midnight .ace_support.ace_class,\ +.ace-clouds-midnight .ace_support.ace_function,\ +.ace-clouds-midnight .ace_support.ace_other,\ +.ace-clouds-midnight .ace_support.ace_type {\ +color: #E92E2E\ +}\ +.ace-clouds-midnight .ace_string {\ +color: #5D90CD\ +}\ +.ace-clouds-midnight .ace_comment {\ +color: #3C403B\ +}\ +.ace-clouds-midnight .ace_entity.ace_name.ace_tag,\ +.ace-clouds-midnight .ace_entity.ace_other.ace_attribute-name {\ +color: #606060\ +}\ +.ace-clouds-midnight .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-cobalt.js b/htdocs/includes/ace/theme-cobalt.js new file mode 100644 index 00000000000..c5b6f267c26 --- /dev/null +++ b/htdocs/includes/ace/theme-cobalt.js @@ -0,0 +1,113 @@ +ace.define("ace/theme/cobalt",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-cobalt"; +exports.cssText = ".ace-cobalt .ace_gutter {\ +background: #011e3a;\ +color: rgb(128,145,160)\ +}\ +.ace-cobalt .ace_print-margin {\ +width: 1px;\ +background: #555555\ +}\ +.ace-cobalt {\ +background-color: #002240;\ +color: #FFFFFF\ +}\ +.ace-cobalt .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-cobalt .ace_marker-layer .ace_selection {\ +background: rgba(179, 101, 57, 0.75)\ +}\ +.ace-cobalt.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002240;\ +}\ +.ace-cobalt .ace_marker-layer .ace_step {\ +background: rgb(127, 111, 19)\ +}\ +.ace-cobalt .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.15)\ +}\ +.ace-cobalt .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.35)\ +}\ +.ace-cobalt .ace_gutter-active-line {\ +background-color: rgba(0, 0, 0, 0.35)\ +}\ +.ace-cobalt .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(179, 101, 57, 0.75)\ +}\ +.ace-cobalt .ace_invisible {\ +color: rgba(255, 255, 255, 0.15)\ +}\ +.ace-cobalt .ace_keyword,\ +.ace-cobalt .ace_meta {\ +color: #FF9D00\ +}\ +.ace-cobalt .ace_constant,\ +.ace-cobalt .ace_constant.ace_character,\ +.ace-cobalt .ace_constant.ace_character.ace_escape,\ +.ace-cobalt .ace_constant.ace_other {\ +color: #FF628C\ +}\ +.ace-cobalt .ace_invalid {\ +color: #F8F8F8;\ +background-color: #800F00\ +}\ +.ace-cobalt .ace_support {\ +color: #80FFBB\ +}\ +.ace-cobalt .ace_support.ace_constant {\ +color: #EB939A\ +}\ +.ace-cobalt .ace_fold {\ +background-color: #FF9D00;\ +border-color: #FFFFFF\ +}\ +.ace-cobalt .ace_support.ace_function {\ +color: #FFB054\ +}\ +.ace-cobalt .ace_storage {\ +color: #FFEE80\ +}\ +.ace-cobalt .ace_entity {\ +color: #FFDD00\ +}\ +.ace-cobalt .ace_string {\ +color: #3AD900\ +}\ +.ace-cobalt .ace_string.ace_regexp {\ +color: #80FFC2\ +}\ +.ace-cobalt .ace_comment {\ +font-style: italic;\ +color: #0088FF\ +}\ +.ace-cobalt .ace_heading,\ +.ace-cobalt .ace_markup.ace_heading {\ +color: #C8E4FD;\ +background-color: #001221\ +}\ +.ace-cobalt .ace_list,\ +.ace-cobalt .ace_markup.ace_list {\ +background-color: #130D26\ +}\ +.ace-cobalt .ace_variable {\ +color: #CCCCCC\ +}\ +.ace-cobalt .ace_variable.ace_language {\ +color: #FF80E1\ +}\ +.ace-cobalt .ace_meta.ace_tag {\ +color: #9EFFFF\ +}\ +.ace-cobalt .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHCLSvkPAAP3AgSDTRd4AAAAAElFTkSuQmCC) right repeat-y\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-crimson_editor.js b/htdocs/includes/ace/theme-crimson_editor.js new file mode 100644 index 00000000000..a18855252b3 --- /dev/null +++ b/htdocs/includes/ace/theme-crimson_editor.js @@ -0,0 +1,118 @@ +ace.define("ace/theme/crimson_editor",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +exports.isDark = false; +exports.cssText = ".ace-crimson-editor .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow : hidden;\ +}\ +.ace-crimson-editor .ace_gutter-layer {\ +width: 100%;\ +text-align: right;\ +}\ +.ace-crimson-editor .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-crimson-editor {\ +background-color: #FFFFFF;\ +color: rgb(64, 64, 64);\ +}\ +.ace-crimson-editor .ace_cursor {\ +color: black;\ +}\ +.ace-crimson-editor .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-crimson-editor .ace_identifier {\ +color: black;\ +}\ +.ace-crimson-editor .ace_keyword {\ +color: blue;\ +}\ +.ace-crimson-editor .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-crimson-editor .ace_constant.ace_language {\ +color: rgb(255, 156, 0);\ +}\ +.ace-crimson-editor .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-crimson-editor .ace_invalid {\ +text-decoration: line-through;\ +color: rgb(224, 0, 0);\ +}\ +.ace-crimson-editor .ace_fold {\ +}\ +.ace-crimson-editor .ace_support.ace_function {\ +color: rgb(192, 0, 0);\ +}\ +.ace-crimson-editor .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-crimson-editor .ace_support.ace_type,\ +.ace-crimson-editor .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-crimson-editor .ace_keyword.ace_operator {\ +color: rgb(49, 132, 149);\ +}\ +.ace-crimson-editor .ace_string {\ +color: rgb(128, 0, 128);\ +}\ +.ace-crimson-editor .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-crimson-editor .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-crimson-editor .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-crimson-editor .ace_constant.ace_numeric {\ +color: rgb(0, 0, 64);\ +}\ +.ace-crimson-editor .ace_variable {\ +color: rgb(0, 64, 128);\ +}\ +.ace-crimson-editor .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_active-line {\ +background: rgb(232, 242, 254);\ +}\ +.ace-crimson-editor .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-crimson-editor .ace_meta.ace_tag {\ +color:rgb(28, 2, 255);\ +}\ +.ace-crimson-editor .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-crimson-editor .ace_string.ace_regex {\ +color: rgb(192, 0, 192);\ +}\ +.ace-crimson-editor .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +exports.cssClass = "ace-crimson-editor"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-dawn.js b/htdocs/includes/ace/theme-dawn.js new file mode 100644 index 00000000000..f3c15c92ecb --- /dev/null +++ b/htdocs/includes/ace/theme-dawn.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/dawn",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-dawn"; +exports.cssText = ".ace-dawn .ace_gutter {\ +background: #ebebeb;\ +color: #333\ +}\ +.ace-dawn .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-dawn {\ +background-color: #F9F9F9;\ +color: #080808\ +}\ +.ace-dawn .ace_cursor {\ +color: #000000\ +}\ +.ace-dawn .ace_marker-layer .ace_selection {\ +background: rgba(39, 95, 255, 0.30)\ +}\ +.ace-dawn.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #F9F9F9;\ +}\ +.ace-dawn .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-dawn .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(75, 75, 126, 0.50)\ +}\ +.ace-dawn .ace_marker-layer .ace_active-line {\ +background: rgba(36, 99, 180, 0.12)\ +}\ +.ace-dawn .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-dawn .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(39, 95, 255, 0.30)\ +}\ +.ace-dawn .ace_invisible {\ +color: rgba(75, 75, 126, 0.50)\ +}\ +.ace-dawn .ace_keyword,\ +.ace-dawn .ace_meta {\ +color: #794938\ +}\ +.ace-dawn .ace_constant,\ +.ace-dawn .ace_constant.ace_character,\ +.ace-dawn .ace_constant.ace_character.ace_escape,\ +.ace-dawn .ace_constant.ace_other {\ +color: #811F24\ +}\ +.ace-dawn .ace_invalid.ace_illegal {\ +text-decoration: underline;\ +font-style: italic;\ +color: #F8F8F8;\ +background-color: #B52A1D\ +}\ +.ace-dawn .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #B52A1D\ +}\ +.ace-dawn .ace_support {\ +color: #691C97\ +}\ +.ace-dawn .ace_support.ace_constant {\ +color: #B4371F\ +}\ +.ace-dawn .ace_fold {\ +background-color: #794938;\ +border-color: #080808\ +}\ +.ace-dawn .ace_list,\ +.ace-dawn .ace_markup.ace_list,\ +.ace-dawn .ace_support.ace_function {\ +color: #693A17\ +}\ +.ace-dawn .ace_storage {\ +font-style: italic;\ +color: #A71D5D\ +}\ +.ace-dawn .ace_string {\ +color: #0B6125\ +}\ +.ace-dawn .ace_string.ace_regexp {\ +color: #CF5628\ +}\ +.ace-dawn .ace_comment {\ +font-style: italic;\ +color: #5A525F\ +}\ +.ace-dawn .ace_heading,\ +.ace-dawn .ace_markup.ace_heading {\ +color: #19356D\ +}\ +.ace-dawn .ace_variable {\ +color: #234A97\ +}\ +.ace-dawn .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLh/5+x/AAizA4hxNNsZAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-dreamweaver.js b/htdocs/includes/ace/theme-dreamweaver.js new file mode 100644 index 00000000000..632b1ea9b00 --- /dev/null +++ b/htdocs/includes/ace/theme-dreamweaver.js @@ -0,0 +1,141 @@ +ace.define("ace/theme/dreamweaver",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +exports.isDark = false; +exports.cssClass = "ace-dreamweaver"; +exports.cssText = ".ace-dreamweaver .ace_gutter {\ +background: #e8e8e8;\ +color: #333;\ +}\ +.ace-dreamweaver .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-dreamweaver {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-dreamweaver .ace_fold {\ +background-color: #757AD8;\ +}\ +.ace-dreamweaver .ace_cursor {\ +color: black;\ +}\ +.ace-dreamweaver .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-dreamweaver .ace_storage,\ +.ace-dreamweaver .ace_keyword {\ +color: blue;\ +}\ +.ace-dreamweaver .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-dreamweaver .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-dreamweaver .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-dreamweaver .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-dreamweaver .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-dreamweaver .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-dreamweaver .ace_support.ace_type,\ +.ace-dreamweaver .ace_support.ace_class {\ +color: #009;\ +}\ +.ace-dreamweaver .ace_support.ace_php_tag {\ +color: #f00;\ +}\ +.ace-dreamweaver .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-dreamweaver .ace_string {\ +color: #00F;\ +}\ +.ace-dreamweaver .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-dreamweaver .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-dreamweaver .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-dreamweaver .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-dreamweaver .ace_variable {\ +color: #06F\ +}\ +.ace-dreamweaver .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-dreamweaver .ace_entity.ace_name.ace_function {\ +color: #00F;\ +}\ +.ace-dreamweaver .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-dreamweaver .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-dreamweaver .ace_gutter-active-line {\ +background-color : #DCDCDC;\ +}\ +.ace-dreamweaver .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-dreamweaver .ace_meta.ace_tag {\ +color:#009;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_anchor {\ +color:#060;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_form {\ +color:#F90;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_image {\ +color:#909;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_script {\ +color:#900;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_style {\ +color:#909;\ +}\ +.ace-dreamweaver .ace_meta.ace_tag.ace_table {\ +color:#099;\ +}\ +.ace-dreamweaver .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-dreamweaver .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-eclipse.js b/htdocs/includes/ace/theme-eclipse.js new file mode 100644 index 00000000000..63aa334cf3b --- /dev/null +++ b/htdocs/includes/ace/theme-eclipse.js @@ -0,0 +1,98 @@ +ace.define("ace/theme/eclipse",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssText = ".ace-eclipse .ace_gutter {\ +background: #ebebeb;\ +border-right: 1px solid rgb(159, 159, 159);\ +color: rgb(136, 136, 136);\ +}\ +.ace-eclipse .ace_print-margin {\ +width: 1px;\ +background: #ebebeb;\ +}\ +.ace-eclipse {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-eclipse .ace_fold {\ +background-color: rgb(60, 76, 114);\ +}\ +.ace-eclipse .ace_cursor {\ +color: black;\ +}\ +.ace-eclipse .ace_storage,\ +.ace-eclipse .ace_keyword,\ +.ace-eclipse .ace_variable {\ +color: rgb(127, 0, 85);\ +}\ +.ace-eclipse .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-eclipse .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-eclipse .ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-eclipse .ace_string {\ +color: rgb(42, 0, 255);\ +}\ +.ace-eclipse .ace_comment {\ +color: rgb(113, 150, 130);\ +}\ +.ace-eclipse .ace_comment.ace_doc {\ +color: rgb(63, 95, 191);\ +}\ +.ace-eclipse .ace_comment.ace_doc.ace_tag {\ +color: rgb(127, 159, 191);\ +}\ +.ace-eclipse .ace_constant.ace_numeric {\ +color: darkblue;\ +}\ +.ace-eclipse .ace_tag {\ +color: rgb(25, 118, 116);\ +}\ +.ace-eclipse .ace_type {\ +color: rgb(127, 0, 127);\ +}\ +.ace-eclipse .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-eclipse .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-eclipse .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-eclipse .ace_meta.ace_tag {\ +color:rgb(25, 118, 116);\ +}\ +.ace-eclipse .ace_invisible {\ +color: #ddd;\ +}\ +.ace-eclipse .ace_entity.ace_other.ace_attribute-name {\ +color:rgb(127, 0, 127);\ +}\ +.ace-eclipse .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0);\ +}\ +.ace-eclipse .ace_active-line {\ +background: rgb(232, 242, 254);\ +}\ +.ace-eclipse .ace_gutter-active-line {\ +background-color : #DADADA;\ +}\ +.ace-eclipse .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgb(181, 213, 255);\ +}\ +.ace-eclipse .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + +exports.cssClass = "ace-eclipse"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-github.js b/htdocs/includes/ace/theme-github.js new file mode 100644 index 00000000000..d19512c6ed7 --- /dev/null +++ b/htdocs/includes/ace/theme-github.js @@ -0,0 +1,103 @@ +ace.define("ace/theme/github",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-github"; +exports.cssText = "\ +.ace-github .ace_gutter {\ +background: #e8e8e8;\ +color: #AAA;\ +}\ +.ace-github {\ +background: #fff;\ +color: #000;\ +}\ +.ace-github .ace_keyword {\ +font-weight: bold;\ +}\ +.ace-github .ace_string {\ +color: #D14;\ +}\ +.ace-github .ace_variable.ace_class {\ +color: teal;\ +}\ +.ace-github .ace_constant.ace_numeric {\ +color: #099;\ +}\ +.ace-github .ace_constant.ace_buildin {\ +color: #0086B3;\ +}\ +.ace-github .ace_support.ace_function {\ +color: #0086B3;\ +}\ +.ace-github .ace_comment {\ +color: #998;\ +font-style: italic;\ +}\ +.ace-github .ace_variable.ace_language {\ +color: #0086B3;\ +}\ +.ace-github .ace_paren {\ +font-weight: bold;\ +}\ +.ace-github .ace_boolean {\ +font-weight: bold;\ +}\ +.ace-github .ace_string.ace_regexp {\ +color: #009926;\ +font-weight: normal;\ +}\ +.ace-github .ace_variable.ace_instance {\ +color: teal;\ +}\ +.ace-github .ace_constant.ace_language {\ +font-weight: bold;\ +}\ +.ace-github .ace_cursor {\ +color: black;\ +}\ +.ace-github.ace_focus .ace_marker-layer .ace_active-line {\ +background: rgb(255, 255, 204);\ +}\ +.ace-github .ace_marker-layer .ace_active-line {\ +background: rgb(245, 245, 245);\ +}\ +.ace-github .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-github.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-github.ace_nobold .ace_line > span {\ +font-weight: normal !important;\ +}\ +.ace-github .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-github .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-github .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-github .ace_gutter-active-line {\ +background-color : rgba(0, 0, 0, 0.07);\ +}\ +.ace-github .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-github .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-github .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-github .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}"; + + var dom = require("../lib/dom"); + dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-gob.js b/htdocs/includes/ace/theme-gob.js new file mode 100644 index 00000000000..9023fba6863 --- /dev/null +++ b/htdocs/includes/ace/theme-gob.js @@ -0,0 +1,112 @@ +ace.define("ace/theme/gob",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-gob"; +exports.cssText = ".ace-gob .ace_gutter {\ +background: #0B1818;\ +color: #03EE03\ +}\ +.ace-gob .ace_print-margin {\ +width: 1px;\ +background: #131313\ +}\ +.ace-gob {\ +background-color: #0B0B0B;\ +color: #00FF00\ +}\ +.ace-gob .ace_cursor {\ +border-color: rgba(16, 248, 255, 0.90);\ +background-color: rgba(16, 240, 248, 0.70);\ +opacity: 0.4;\ +}\ +.ace-gob .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-gob.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #141414;\ +}\ +.ace-gob .ace_marker-layer .ace_step {\ +background: rgb(16, 128, 0)\ +}\ +.ace-gob .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(64, 255, 255, 0.25)\ +}\ +.ace-gob .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.04)\ +}\ +.ace-gob .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.04)\ +}\ +.ace-gob .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(192, 240, 255, 0.20)\ +}\ +.ace-gob .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-gob .ace_keyword,\ +.ace-gob .ace_meta {\ +color: #10D8E8\ +}\ +.ace-gob .ace_constant,\ +.ace-gob .ace_constant.ace_character,\ +.ace-gob .ace_constant.ace_character.ace_escape,\ +.ace-gob .ace_constant.ace_other,\ +.ace-gob .ace_heading,\ +.ace-gob .ace_markup.ace_heading,\ +.ace-gob .ace_support.ace_constant {\ +color: #10F0A0\ +}\ +.ace-gob .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-gob .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #20F8C0\ +}\ +.ace-gob .ace_support {\ +color: #20E8B0\ +}\ +.ace-gob .ace_fold {\ +background-color: #50B8B8;\ +border-color: #70F8F8\ +}\ +.ace-gob .ace_support.ace_function {\ +color: #00F800\ +}\ +.ace-gob .ace_list,\ +.ace-gob .ace_markup.ace_list,\ +.ace-gob .ace_storage {\ +color: #10FF98\ +}\ +.ace-gob .ace_entity.ace_name.ace_function,\ +.ace-gob .ace_meta.ace_tag,\ +.ace-gob .ace_variable {\ +color: #00F868\ +}\ +.ace-gob .ace_string {\ +color: #10F060\ +}\ +.ace-gob .ace_string.ace_regexp {\ +color: #20F090;\ +}\ +.ace-gob .ace_comment {\ +font-style: italic;\ +color: #00E060;\ +}\ +.ace-gob .ace_variable {\ +color: #00F888;\ +}\ +.ace-gob .ace_xml-pe {\ +color: #488858;\ +}\ +.ace-gob .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-gruvbox.js b/htdocs/includes/ace/theme-gruvbox.js new file mode 100644 index 00000000000..133ca6410a4 --- /dev/null +++ b/htdocs/includes/ace/theme-gruvbox.js @@ -0,0 +1,82 @@ +ace.define("ace/theme/gruvbox",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-gruvbox"; +exports.cssText = ".ace-gruvbox .ace_gutter-active-line {\ +background-color: #3C3836;\ +}\ +.ace-gruvbox {\ +color: #EBDAB4;\ +background-color: #1D2021;\ +}\ +.ace-gruvbox .ace_invisible {\ +color: #504945;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_selection {\ +background: rgba(179, 101, 57, 0.75)\ +}\ +.ace-gruvbox.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002240;\ +}\ +.ace-gruvbox .ace_keyword {\ +color: #8ec07c;\ +}\ +.ace-gruvbox .ace_comment {\ +font-style: italic;\ +color: #928375;\ +}\ +.ace-gruvbox .ace-statement {\ +color: red;\ +}\ +.ace-gruvbox .ace_variable {\ +color: #84A598;\ +}\ +.ace-gruvbox .ace_variable.ace_language {\ +color: #D2879B;\ +}\ +.ace-gruvbox .ace_constant {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_constant.ace_language {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_constant.ace_numeric {\ +color: #C2859A;\ +}\ +.ace-gruvbox .ace_string {\ +color: #B8BA37;\ +}\ +.ace-gruvbox .ace_support {\ +color: #F9BC41;\ +}\ +.ace-gruvbox .ace_support.ace_function {\ +color: #F84B3C;\ +}\ +.ace-gruvbox .ace_storage {\ +color: #8FBF7F;\ +}\ +.ace-gruvbox .ace_keyword.ace_operator {\ +color: #EBDAB4;\ +}\ +.ace-gruvbox .ace_punctuation.ace_operator {\ +color: yellow;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_active-line {\ +background: #3C3836;\ +}\ +.ace-gruvbox .ace_marker-layer .ace_selected-word {\ +border-radius: 4px;\ +border: 8px solid #3f475d;\ +}\ +.ace-gruvbox .ace_print-margin {\ +width: 5px;\ +background: #3C3836;\ +}\ +.ace-gruvbox .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); + +}); diff --git a/htdocs/includes/ace/theme-idle_fingers.js b/htdocs/includes/ace/theme-idle_fingers.js new file mode 100644 index 00000000000..7fcf1cbdb47 --- /dev/null +++ b/htdocs/includes/ace/theme-idle_fingers.js @@ -0,0 +1,96 @@ +ace.define("ace/theme/idle_fingers",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-idle-fingers"; +exports.cssText = ".ace-idle-fingers .ace_gutter {\ +background: #3b3b3b;\ +color: rgb(153,153,153)\ +}\ +.ace-idle-fingers .ace_print-margin {\ +width: 1px;\ +background: #3b3b3b\ +}\ +.ace-idle-fingers {\ +background-color: #323232;\ +color: #FFFFFF\ +}\ +.ace-idle-fingers .ace_cursor {\ +color: #91FF00\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_selection {\ +background: rgba(90, 100, 126, 0.88)\ +}\ +.ace-idle-fingers.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #323232;\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_active-line {\ +background: #353637\ +}\ +.ace-idle-fingers .ace_gutter-active-line {\ +background-color: #353637\ +}\ +.ace-idle-fingers .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(90, 100, 126, 0.88)\ +}\ +.ace-idle-fingers .ace_invisible {\ +color: #404040\ +}\ +.ace-idle-fingers .ace_keyword,\ +.ace-idle-fingers .ace_meta {\ +color: #CC7833\ +}\ +.ace-idle-fingers .ace_constant,\ +.ace-idle-fingers .ace_constant.ace_character,\ +.ace-idle-fingers .ace_constant.ace_character.ace_escape,\ +.ace-idle-fingers .ace_constant.ace_other,\ +.ace-idle-fingers .ace_support.ace_constant {\ +color: #6C99BB\ +}\ +.ace-idle-fingers .ace_invalid {\ +color: #FFFFFF;\ +background-color: #FF0000\ +}\ +.ace-idle-fingers .ace_fold {\ +background-color: #CC7833;\ +border-color: #FFFFFF\ +}\ +.ace-idle-fingers .ace_support.ace_function {\ +color: #B83426\ +}\ +.ace-idle-fingers .ace_variable.ace_parameter {\ +font-style: italic\ +}\ +.ace-idle-fingers .ace_string {\ +color: #A5C261\ +}\ +.ace-idle-fingers .ace_string.ace_regexp {\ +color: #CCCC33\ +}\ +.ace-idle-fingers .ace_comment {\ +font-style: italic;\ +color: #BC9458\ +}\ +.ace-idle-fingers .ace_meta.ace_tag {\ +color: #FFE5BB\ +}\ +.ace-idle-fingers .ace_entity.ace_name {\ +color: #FFC66D\ +}\ +.ace-idle-fingers .ace_collab.ace_user1 {\ +color: #323232;\ +background-color: #FFF980\ +}\ +.ace-idle-fingers .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMwMjLyZYiPj/8PAAreAwAI1+g0AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-iplastic.js b/htdocs/includes/ace/theme-iplastic.js new file mode 100644 index 00000000000..593aa00edb8 --- /dev/null +++ b/htdocs/includes/ace/theme-iplastic.js @@ -0,0 +1,121 @@ +ace.define("ace/theme/iplastic",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-iplastic"; +exports.cssText = ".ace-iplastic .ace_gutter {\ +background: #dddddd;\ +color: #666666\ +}\ +.ace-iplastic .ace_print-margin {\ +width: 1px;\ +background: #bbbbbb\ +}\ +.ace-iplastic {\ +background-color: #eeeeee;\ +color: #333333\ +}\ +.ace-iplastic .ace_cursor {\ +color: #333\ +}\ +.ace-iplastic .ace_marker-layer .ace_selection {\ +background: #BAD6FD;\ +}\ +.ace-iplastic.ace_multiselect .ace_selection.ace_start {\ +border-radius: 4px\ +}\ +.ace-iplastic .ace_marker-layer .ace_step {\ +background: #444444\ +}\ +.ace-iplastic .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E;\ +background: #FFF799\ +}\ +.ace-iplastic .ace_marker-layer .ace_active-line {\ +background: #e5e5e5\ +}\ +.ace-iplastic .ace_gutter-active-line {\ +background-color: #eeeeee\ +}\ +.ace-iplastic .ace_marker-layer .ace_selected-word {\ +border: 1px solid #555555;\ +border-radius:4px\ +}\ +.ace-iplastic .ace_invisible {\ +color: #999999\ +}\ +.ace-iplastic .ace_entity.ace_name.ace_tag,\ +.ace-iplastic .ace_keyword,\ +.ace-iplastic .ace_meta.ace_tag,\ +.ace-iplastic .ace_storage {\ +color: #0000FF\ +}\ +.ace-iplastic .ace_punctuation,\ +.ace-iplastic .ace_punctuation.ace_tag {\ +color: #000\ +}\ +.ace-iplastic .ace_constant {\ +color: #333333;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_constant.ace_character,\ +.ace-iplastic .ace_constant.ace_language,\ +.ace-iplastic .ace_constant.ace_numeric,\ +.ace-iplastic .ace_constant.ace_other {\ +color: #0066FF;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_constant.ace_numeric{\ +font-weight: 100\ +}\ +.ace-iplastic .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-iplastic .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-iplastic .ace_support.ace_constant,\ +.ace-iplastic .ace_support.ace_function {\ +color: #333333;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_fold {\ +background-color: #464646;\ +border-color: #F8F8F2\ +}\ +.ace-iplastic .ace_storage.ace_type,\ +.ace-iplastic .ace_support.ace_class,\ +.ace-iplastic .ace_support.ace_type {\ +color: #3333fc;\ +font-weight: 700\ +}\ +.ace-iplastic .ace_entity.ace_name.ace_function,\ +.ace-iplastic .ace_entity.ace_other,\ +.ace-iplastic .ace_entity.ace_other.ace_attribute-name,\ +.ace-iplastic .ace_variable {\ +color: #3366cc;\ +font-style: italic\ +}\ +.ace-iplastic .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #2469E0\ +}\ +.ace-iplastic .ace_string {\ +color: #a55f03\ +}\ +.ace-iplastic .ace_comment {\ +color: #777777;\ +font-style: italic\ +}\ +.ace-iplastic .ace_fold-widget {\ +background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==);\ +}\ +.ace-iplastic .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAABlJREFUeNpi+P//PwMzMzPzfwAAAAD//wMAGRsECSML/RIAAAAASUVORK5CYII=) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-katzenmilch.js b/htdocs/includes/ace/theme-katzenmilch.js new file mode 100644 index 00000000000..f65ce4a81cd --- /dev/null +++ b/htdocs/includes/ace/theme-katzenmilch.js @@ -0,0 +1,121 @@ +ace.define("ace/theme/katzenmilch",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-katzenmilch"; +exports.cssText = ".ace-katzenmilch .ace_gutter,\ +.ace-katzenmilch .ace_gutter {\ +background: #e8e8e8;\ +color: #333\ +}\ +.ace-katzenmilch .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-katzenmilch {\ +background-color: #f3f2f3;\ +color: rgba(15, 0, 9, 1.0)\ +}\ +.ace-katzenmilch .ace_cursor {\ +border-left: 2px solid #100011\ +}\ +.ace-katzenmilch .ace_overwrite-cursors .ace_cursor {\ +border-left: 0px;\ +border-bottom: 1px solid #100011\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_selection {\ +background: rgba(100, 5, 208, 0.27)\ +}\ +.ace-katzenmilch.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #f3f2f3;\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(0, 0, 0, 0.33);\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_active-line {\ +background: rgb(232, 242, 254)\ +}\ +.ace-katzenmilch .ace_gutter-active-line {\ +background-color: rgb(232, 242, 254)\ +}\ +.ace-katzenmilch .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(100, 5, 208, 0.27)\ +}\ +.ace-katzenmilch .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-katzenmilch .ace_fold {\ +background-color: rgba(2, 95, 73, 0.97);\ +border-color: rgba(15, 0, 9, 1.0)\ +}\ +.ace-katzenmilch .ace_keyword {\ +color: #674Aa8;\ +rbackground-color: rgba(163, 170, 216, 0.055)\ +}\ +.ace-katzenmilch .ace_constant.ace_language {\ +color: #7D7e52;\ +rbackground-color: rgba(189, 190, 130, 0.059)\ +}\ +.ace-katzenmilch .ace_constant.ace_numeric {\ +color: rgba(79, 130, 123, 0.93);\ +rbackground-color: rgba(119, 194, 187, 0.059)\ +}\ +.ace-katzenmilch .ace_constant.ace_character,\ +.ace-katzenmilch .ace_constant.ace_other {\ +color: rgba(2, 95, 105, 1.0);\ +rbackground-color: rgba(127, 34, 153, 0.063)\ +}\ +.ace-katzenmilch .ace_support.ace_function {\ +color: #9D7e62;\ +rbackground-color: rgba(189, 190, 130, 0.039)\ +}\ +.ace-katzenmilch .ace_support.ace_class {\ +color: rgba(239, 106, 167, 1.0);\ +rbackground-color: rgba(239, 106, 167, 0.063)\ +}\ +.ace-katzenmilch .ace_storage {\ +color: rgba(123, 92, 191, 1.0);\ +rbackground-color: rgba(139, 93, 223, 0.051)\ +}\ +.ace-katzenmilch .ace_invalid {\ +color: #DFDFD5;\ +rbackground-color: #CC1B27\ +}\ +.ace-katzenmilch .ace_string {\ +color: #5a5f9b;\ +rbackground-color: rgba(170, 175, 219, 0.035)\ +}\ +.ace-katzenmilch .ace_comment {\ +font-style: italic;\ +color: rgba(64, 79, 80, 0.67);\ +rbackground-color: rgba(95, 15, 255, 0.0078)\ +}\ +.ace-katzenmilch .ace_entity.ace_name.ace_function,\ +.ace-katzenmilch .ace_variable {\ +color: rgba(2, 95, 73, 0.97);\ +rbackground-color: rgba(34, 255, 73, 0.12)\ +}\ +.ace-katzenmilch .ace_variable.ace_language {\ +color: #316fcf;\ +rbackground-color: rgba(58, 175, 255, 0.039)\ +}\ +.ace-katzenmilch .ace_variable.ace_parameter {\ +font-style: italic;\ +color: rgba(51, 150, 159, 0.87);\ +rbackground-color: rgba(5, 214, 249, 0.043)\ +}\ +.ace-katzenmilch .ace_entity.ace_other.ace_attribute-name {\ +color: rgba(73, 70, 194, 0.93);\ +rbackground-color: rgba(73, 134, 194, 0.035)\ +}\ +.ace-katzenmilch .ace_entity.ace_name.ace_tag {\ +color: #3976a2;\ +rbackground-color: rgba(73, 166, 210, 0.039)\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-kr_theme.js b/htdocs/includes/ace/theme-kr_theme.js new file mode 100644 index 00000000000..8818b33e76f --- /dev/null +++ b/htdocs/includes/ace/theme-kr_theme.js @@ -0,0 +1,104 @@ +ace.define("ace/theme/kr_theme",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-kr-theme"; +exports.cssText = ".ace-kr-theme .ace_gutter {\ +background: #1c1917;\ +color: #FCFFE0\ +}\ +.ace-kr-theme .ace_print-margin {\ +width: 1px;\ +background: #1c1917\ +}\ +.ace-kr-theme {\ +background-color: #0B0A09;\ +color: #FCFFE0\ +}\ +.ace-kr-theme .ace_cursor {\ +color: #FF9900\ +}\ +.ace-kr-theme .ace_marker-layer .ace_selection {\ +background: rgba(170, 0, 255, 0.45)\ +}\ +.ace-kr-theme.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #0B0A09;\ +}\ +.ace-kr-theme .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-kr-theme .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 177, 111, 0.32)\ +}\ +.ace-kr-theme .ace_marker-layer .ace_active-line {\ +background: #38403D\ +}\ +.ace-kr-theme .ace_gutter-active-line {\ +background-color : #38403D\ +}\ +.ace-kr-theme .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(170, 0, 255, 0.45)\ +}\ +.ace-kr-theme .ace_invisible {\ +color: rgba(255, 177, 111, 0.32)\ +}\ +.ace-kr-theme .ace_keyword,\ +.ace-kr-theme .ace_meta {\ +color: #949C8B\ +}\ +.ace-kr-theme .ace_constant,\ +.ace-kr-theme .ace_constant.ace_character,\ +.ace-kr-theme .ace_constant.ace_character.ace_escape,\ +.ace-kr-theme .ace_constant.ace_other {\ +color: rgba(210, 117, 24, 0.76)\ +}\ +.ace-kr-theme .ace_invalid {\ +color: #F8F8F8;\ +background-color: #A41300\ +}\ +.ace-kr-theme .ace_support {\ +color: #9FC28A\ +}\ +.ace-kr-theme .ace_support.ace_constant {\ +color: #C27E66\ +}\ +.ace-kr-theme .ace_fold {\ +background-color: #949C8B;\ +border-color: #FCFFE0\ +}\ +.ace-kr-theme .ace_support.ace_function {\ +color: #85873A\ +}\ +.ace-kr-theme .ace_storage {\ +color: #FFEE80\ +}\ +.ace-kr-theme .ace_string {\ +color: rgba(164, 161, 181, 0.8)\ +}\ +.ace-kr-theme .ace_string.ace_regexp {\ +color: rgba(125, 255, 192, 0.65)\ +}\ +.ace-kr-theme .ace_comment {\ +font-style: italic;\ +color: #706D5B\ +}\ +.ace-kr-theme .ace_variable {\ +color: #D1A796\ +}\ +.ace-kr-theme .ace_list,\ +.ace-kr-theme .ace_markup.ace_list {\ +background-color: #0F0040\ +}\ +.ace-kr-theme .ace_variable.ace_language {\ +color: #FF80E1\ +}\ +.ace-kr-theme .ace_meta.ace_tag {\ +color: #BABD9C\ +}\ +.ace-kr-theme .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-kuroir.js b/htdocs/includes/ace/theme-kuroir.js new file mode 100644 index 00000000000..30e0a8bb386 --- /dev/null +++ b/htdocs/includes/ace/theme-kuroir.js @@ -0,0 +1,61 @@ +ace.define("ace/theme/kuroir",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-kuroir"; +exports.cssText = "\ +.ace-kuroir .ace_gutter {\ +background: #e8e8e8;\ +color: #333;\ +}\ +.ace-kuroir .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-kuroir {\ +background-color: #E8E9E8;\ +color: #363636;\ +}\ +.ace-kuroir .ace_cursor {\ +color: #202020;\ +}\ +.ace-kuroir .ace_marker-layer .ace_selection {\ +background: rgba(245, 170, 0, 0.57);\ +}\ +.ace-kuroir.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #E8E9E8;\ +}\ +.ace-kuroir .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174);\ +}\ +.ace-kuroir .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(0, 0, 0, 0.29);\ +}\ +.ace-kuroir .ace_marker-layer .ace_active-line {\ +background: rgba(203, 220, 47, 0.22);\ +}\ +.ace-kuroir .ace_gutter-active-line {\ +background-color: rgba(203, 220, 47, 0.22);\ +}\ +.ace-kuroir .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(245, 170, 0, 0.57);\ +}\ +.ace-kuroir .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-kuroir .ace_fold {\ +border-color: #363636;\ +}\ +.ace-kuroir .ace_constant{color:#CD6839;}.ace-kuroir .ace_constant.ace_numeric{color:#9A5925;}.ace-kuroir .ace_support{color:#104E8B;}.ace-kuroir .ace_support.ace_function{color:#005273;}.ace-kuroir .ace_support.ace_constant{color:#CF6A4C;}.ace-kuroir .ace_storage{color:#A52A2A;}.ace-kuroir .ace_invalid.ace_illegal{color:#FD1224;\ +background-color:rgba(255, 6, 0, 0.15);}.ace-kuroir .ace_invalid.ace_deprecated{text-decoration:underline;\ +font-style:italic;\ +color:#FD1732;\ +background-color:#E8E9E8;}.ace-kuroir .ace_string{color:#639300;}.ace-kuroir .ace_string.ace_regexp{color:#417E00;\ +background-color:#C9D4BE;}.ace-kuroir .ace_comment{color:rgba(148, 148, 148, 0.91);\ +background-color:rgba(220, 220, 220, 0.56);}.ace-kuroir .ace_variable{color:#009ACD;}.ace-kuroir .ace_meta.ace_tag{color:#005273;}.ace-kuroir .ace_markup.ace_heading{color:#B8012D;\ +background-color:rgba(191, 97, 51, 0.051);}.ace-kuroir .ace_markup.ace_list{color:#8F5B26;}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-merbivore.js b/htdocs/includes/ace/theme-merbivore.js new file mode 100644 index 00000000000..fc0a72f1ccd --- /dev/null +++ b/htdocs/includes/ace/theme-merbivore.js @@ -0,0 +1,95 @@ +ace.define("ace/theme/merbivore",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore"; +exports.cssText = ".ace-merbivore .ace_gutter {\ +background: #202020;\ +color: #E6E1DC\ +}\ +.ace-merbivore .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-merbivore {\ +background-color: #161616;\ +color: #E6E1DC\ +}\ +.ace-merbivore .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-merbivore .ace_marker-layer .ace_selection {\ +background: #454545\ +}\ +.ace-merbivore.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #161616;\ +}\ +.ace-merbivore .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-merbivore .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-merbivore .ace_marker-layer .ace_active-line {\ +background: #333435\ +}\ +.ace-merbivore .ace_gutter-active-line {\ +background-color: #333435\ +}\ +.ace-merbivore .ace_marker-layer .ace_selected-word {\ +border: 1px solid #454545\ +}\ +.ace-merbivore .ace_invisible {\ +color: #404040\ +}\ +.ace-merbivore .ace_entity.ace_name.ace_tag,\ +.ace-merbivore .ace_keyword,\ +.ace-merbivore .ace_meta,\ +.ace-merbivore .ace_meta.ace_tag,\ +.ace-merbivore .ace_storage,\ +.ace-merbivore .ace_support.ace_function {\ +color: #FC6F09\ +}\ +.ace-merbivore .ace_constant,\ +.ace-merbivore .ace_constant.ace_character,\ +.ace-merbivore .ace_constant.ace_character.ace_escape,\ +.ace-merbivore .ace_constant.ace_other,\ +.ace-merbivore .ace_support.ace_type {\ +color: #1EDAFB\ +}\ +.ace-merbivore .ace_constant.ace_character.ace_escape {\ +color: #519F50\ +}\ +.ace-merbivore .ace_constant.ace_language {\ +color: #FDC251\ +}\ +.ace-merbivore .ace_constant.ace_library,\ +.ace-merbivore .ace_string,\ +.ace-merbivore .ace_support.ace_constant {\ +color: #8DFF0A\ +}\ +.ace-merbivore .ace_constant.ace_numeric {\ +color: #58C554\ +}\ +.ace-merbivore .ace_invalid {\ +color: #FFFFFF;\ +background-color: #990000\ +}\ +.ace-merbivore .ace_fold {\ +background-color: #FC6F09;\ +border-color: #E6E1DC\ +}\ +.ace-merbivore .ace_comment {\ +font-style: italic;\ +color: #AD2EA4\ +}\ +.ace-merbivore .ace_entity.ace_other.ace_attribute-name {\ +color: #FFFF89\ +}\ +.ace-merbivore .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQFxf3ZXB1df0PAAdsAmERTkEHAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-merbivore_soft.js b/htdocs/includes/ace/theme-merbivore_soft.js new file mode 100644 index 00000000000..eff24646514 --- /dev/null +++ b/htdocs/includes/ace/theme-merbivore_soft.js @@ -0,0 +1,96 @@ +ace.define("ace/theme/merbivore_soft",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-merbivore-soft"; +exports.cssText = ".ace-merbivore-soft .ace_gutter {\ +background: #262424;\ +color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_print-margin {\ +width: 1px;\ +background: #262424\ +}\ +.ace-merbivore-soft {\ +background-color: #1C1C1C;\ +color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_selection {\ +background: #494949\ +}\ +.ace-merbivore-soft.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #1C1C1C;\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_active-line {\ +background: #333435\ +}\ +.ace-merbivore-soft .ace_gutter-active-line {\ +background-color: #333435\ +}\ +.ace-merbivore-soft .ace_marker-layer .ace_selected-word {\ +border: 1px solid #494949\ +}\ +.ace-merbivore-soft .ace_invisible {\ +color: #404040\ +}\ +.ace-merbivore-soft .ace_entity.ace_name.ace_tag,\ +.ace-merbivore-soft .ace_keyword,\ +.ace-merbivore-soft .ace_meta,\ +.ace-merbivore-soft .ace_meta.ace_tag,\ +.ace-merbivore-soft .ace_storage {\ +color: #FC803A\ +}\ +.ace-merbivore-soft .ace_constant,\ +.ace-merbivore-soft .ace_constant.ace_character,\ +.ace-merbivore-soft .ace_constant.ace_character.ace_escape,\ +.ace-merbivore-soft .ace_constant.ace_other,\ +.ace-merbivore-soft .ace_support.ace_type {\ +color: #68C1D8\ +}\ +.ace-merbivore-soft .ace_constant.ace_character.ace_escape {\ +color: #B3E5B4\ +}\ +.ace-merbivore-soft .ace_constant.ace_language {\ +color: #E1C582\ +}\ +.ace-merbivore-soft .ace_constant.ace_library,\ +.ace-merbivore-soft .ace_string,\ +.ace-merbivore-soft .ace_support.ace_constant {\ +color: #8EC65F\ +}\ +.ace-merbivore-soft .ace_constant.ace_numeric {\ +color: #7FC578\ +}\ +.ace-merbivore-soft .ace_invalid,\ +.ace-merbivore-soft .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #FE3838\ +}\ +.ace-merbivore-soft .ace_fold {\ +background-color: #FC803A;\ +border-color: #E6E1DC\ +}\ +.ace-merbivore-soft .ace_comment,\ +.ace-merbivore-soft .ace_meta {\ +font-style: italic;\ +color: #AC4BB8\ +}\ +.ace-merbivore-soft .ace_entity.ace_other.ace_attribute-name {\ +color: #EAF1A3\ +}\ +.ace-merbivore-soft .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWOQkpLyZfD09PwPAAfYAnaStpHRAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-mono_industrial.js b/htdocs/includes/ace/theme-mono_industrial.js new file mode 100644 index 00000000000..0ece0309cb4 --- /dev/null +++ b/htdocs/includes/ace/theme-mono_industrial.js @@ -0,0 +1,107 @@ +ace.define("ace/theme/mono_industrial",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-mono-industrial"; +exports.cssText = ".ace-mono-industrial .ace_gutter {\ +background: #1d2521;\ +color: #C5C9C9\ +}\ +.ace-mono-industrial .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-mono-industrial {\ +background-color: #222C28;\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_selection {\ +background: rgba(145, 153, 148, 0.40)\ +}\ +.ace-mono-industrial.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #222C28;\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(102, 108, 104, 0.50)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_active-line {\ +background: rgba(12, 13, 12, 0.25)\ +}\ +.ace-mono-industrial .ace_gutter-active-line {\ +background-color: rgba(12, 13, 12, 0.25)\ +}\ +.ace-mono-industrial .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(145, 153, 148, 0.40)\ +}\ +.ace-mono-industrial .ace_invisible {\ +color: rgba(102, 108, 104, 0.50)\ +}\ +.ace-mono-industrial .ace_string {\ +background-color: #151C19;\ +color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_keyword,\ +.ace-mono-industrial .ace_meta {\ +color: #A39E64\ +}\ +.ace-mono-industrial .ace_constant,\ +.ace-mono-industrial .ace_constant.ace_character,\ +.ace-mono-industrial .ace_constant.ace_character.ace_escape,\ +.ace-mono-industrial .ace_constant.ace_numeric,\ +.ace-mono-industrial .ace_constant.ace_other {\ +color: #E98800\ +}\ +.ace-mono-industrial .ace_entity.ace_name.ace_function,\ +.ace-mono-industrial .ace_keyword.ace_operator,\ +.ace-mono-industrial .ace_variable {\ +color: #A8B3AB\ +}\ +.ace-mono-industrial .ace_invalid {\ +color: #FFFFFF;\ +background-color: rgba(153, 0, 0, 0.68)\ +}\ +.ace-mono-industrial .ace_support.ace_constant {\ +color: #C87500\ +}\ +.ace-mono-industrial .ace_fold {\ +background-color: #A8B3AB;\ +border-color: #FFFFFF\ +}\ +.ace-mono-industrial .ace_support.ace_function {\ +color: #588E60\ +}\ +.ace-mono-industrial .ace_entity.ace_name,\ +.ace-mono-industrial .ace_support.ace_class,\ +.ace-mono-industrial .ace_support.ace_type {\ +color: #5778B6\ +}\ +.ace-mono-industrial .ace_storage {\ +color: #C23B00\ +}\ +.ace-mono-industrial .ace_variable.ace_language,\ +.ace-mono-industrial .ace_variable.ace_parameter {\ +color: #648BD2\ +}\ +.ace-mono-industrial .ace_comment {\ +color: #666C68;\ +background-color: #151C19\ +}\ +.ace-mono-industrial .ace_entity.ace_other.ace_attribute-name {\ +color: #909993\ +}\ +.ace-mono-industrial .ace_entity.ace_name.ace_tag {\ +color: #A65EFF\ +}\ +.ace-mono-industrial .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQ1NbwZfALD/4PAAlTArlEC4r/AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-monokai.js b/htdocs/includes/ace/theme-monokai.js new file mode 100644 index 00000000000..322c2fa88d8 --- /dev/null +++ b/htdocs/includes/ace/theme-monokai.js @@ -0,0 +1,105 @@ +ace.define("ace/theme/monokai",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-monokai"; +exports.cssText = ".ace-monokai .ace_gutter {\ +background: #2F3129;\ +color: #8F908A\ +}\ +.ace-monokai .ace_print-margin {\ +width: 1px;\ +background: #555651\ +}\ +.ace-monokai {\ +background-color: #272822;\ +color: #F8F8F2\ +}\ +.ace-monokai .ace_cursor {\ +color: #F8F8F0\ +}\ +.ace-monokai .ace_marker-layer .ace_selection {\ +background: #49483E\ +}\ +.ace-monokai.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #272822;\ +}\ +.ace-monokai .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-monokai .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_marker-layer .ace_active-line {\ +background: #202020\ +}\ +.ace-monokai .ace_gutter-active-line {\ +background-color: #272727\ +}\ +.ace-monokai .ace_marker-layer .ace_selected-word {\ +border: 1px solid #49483E\ +}\ +.ace-monokai .ace_invisible {\ +color: #52524d\ +}\ +.ace-monokai .ace_entity.ace_name.ace_tag,\ +.ace-monokai .ace_keyword,\ +.ace-monokai .ace_meta.ace_tag,\ +.ace-monokai .ace_storage {\ +color: #F92672\ +}\ +.ace-monokai .ace_punctuation,\ +.ace-monokai .ace_punctuation.ace_tag {\ +color: #fff\ +}\ +.ace-monokai .ace_constant.ace_character,\ +.ace-monokai .ace_constant.ace_language,\ +.ace-monokai .ace_constant.ace_numeric,\ +.ace-monokai .ace_constant.ace_other {\ +color: #AE81FF\ +}\ +.ace-monokai .ace_invalid {\ +color: #F8F8F0;\ +background-color: #F92672\ +}\ +.ace-monokai .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #AE81FF\ +}\ +.ace-monokai .ace_support.ace_constant,\ +.ace-monokai .ace_support.ace_function {\ +color: #66D9EF\ +}\ +.ace-monokai .ace_fold {\ +background-color: #A6E22E;\ +border-color: #F8F8F2\ +}\ +.ace-monokai .ace_storage.ace_type,\ +.ace-monokai .ace_support.ace_class,\ +.ace-monokai .ace_support.ace_type {\ +font-style: italic;\ +color: #66D9EF\ +}\ +.ace-monokai .ace_entity.ace_name.ace_function,\ +.ace-monokai .ace_entity.ace_other,\ +.ace-monokai .ace_entity.ace_other.ace_attribute-name,\ +.ace-monokai .ace_variable {\ +color: #A6E22E\ +}\ +.ace-monokai .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F\ +}\ +.ace-monokai .ace_string {\ +color: #E6DB74\ +}\ +.ace-monokai .ace_comment {\ +color: #75715E\ +}\ +.ace-monokai .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ0FD0ZXBzd/wPAAjVAoxeSgNeAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-pastel_on_dark.js b/htdocs/includes/ace/theme-pastel_on_dark.js new file mode 100644 index 00000000000..2631ae00353 --- /dev/null +++ b/htdocs/includes/ace/theme-pastel_on_dark.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/pastel_on_dark",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-pastel-on-dark"; +exports.cssText = ".ace-pastel-on-dark .ace_gutter {\ +background: #353030;\ +color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_print-margin {\ +width: 1px;\ +background: #353030\ +}\ +.ace-pastel-on-dark {\ +background-color: #2C2828;\ +color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_cursor {\ +color: #A7A7A7\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-pastel-on-dark.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #2C2828;\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031)\ +}\ +.ace-pastel-on-dark .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.031)\ +}\ +.ace-pastel-on-dark .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(221, 240, 255, 0.20)\ +}\ +.ace-pastel-on-dark .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-pastel-on-dark .ace_keyword,\ +.ace-pastel-on-dark .ace_meta {\ +color: #757aD8\ +}\ +.ace-pastel-on-dark .ace_constant,\ +.ace-pastel-on-dark .ace_constant.ace_character,\ +.ace-pastel-on-dark .ace_constant.ace_character.ace_escape,\ +.ace-pastel-on-dark .ace_constant.ace_other {\ +color: #4FB7C5\ +}\ +.ace-pastel-on-dark .ace_keyword.ace_operator {\ +color: #797878\ +}\ +.ace-pastel-on-dark .ace_constant.ace_character {\ +color: #AFA472\ +}\ +.ace-pastel-on-dark .ace_constant.ace_language {\ +color: #DE8E30\ +}\ +.ace-pastel-on-dark .ace_constant.ace_numeric {\ +color: #CCCCCC\ +}\ +.ace-pastel-on-dark .ace_invalid,\ +.ace-pastel-on-dark .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-pastel-on-dark .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1\ +}\ +.ace-pastel-on-dark .ace_fold {\ +background-color: #757aD8;\ +border-color: #8F938F\ +}\ +.ace-pastel-on-dark .ace_support.ace_function {\ +color: #AEB2F8\ +}\ +.ace-pastel-on-dark .ace_string {\ +color: #66A968\ +}\ +.ace-pastel-on-dark .ace_string.ace_regexp {\ +color: #E9C062\ +}\ +.ace-pastel-on-dark .ace_comment {\ +color: #A6C6FF\ +}\ +.ace-pastel-on-dark .ace_variable {\ +color: #BEBF55\ +}\ +.ace-pastel-on-dark .ace_variable.ace_language {\ +color: #C1C144\ +}\ +.ace-pastel-on-dark .ace_xml-pe {\ +color: #494949\ +}\ +.ace-pastel-on-dark .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYIiPj/8PAARgAh2NTMh8AAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-solarized_dark.js b/htdocs/includes/ace/theme-solarized_dark.js new file mode 100644 index 00000000000..d1acdb46add --- /dev/null +++ b/htdocs/includes/ace/theme-solarized_dark.js @@ -0,0 +1,88 @@ +ace.define("ace/theme/solarized_dark",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-solarized-dark"; +exports.cssText = ".ace-solarized-dark .ace_gutter {\ +background: #01313f;\ +color: #d0edf7\ +}\ +.ace-solarized-dark .ace_print-margin {\ +width: 1px;\ +background: #33555E\ +}\ +.ace-solarized-dark {\ +background-color: #002B36;\ +color: #93A1A1\ +}\ +.ace-solarized-dark .ace_entity.ace_other.ace_attribute-name,\ +.ace-solarized-dark .ace_storage {\ +color: #93A1A1\ +}\ +.ace-solarized-dark .ace_cursor,\ +.ace-solarized-dark .ace_string.ace_regexp {\ +color: #D30102\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_active-line,\ +.ace-solarized-dark .ace_marker-layer .ace_selection {\ +background: rgba(255, 255, 255, 0.1)\ +}\ +.ace-solarized-dark.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002B36;\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-dark .ace_gutter-active-line {\ +background-color: #0d3440\ +}\ +.ace-solarized-dark .ace_marker-layer .ace_selected-word {\ +border: 1px solid #073642\ +}\ +.ace-solarized-dark .ace_invisible {\ +color: rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-dark .ace_keyword,\ +.ace-solarized-dark .ace_meta,\ +.ace-solarized-dark .ace_support.ace_class,\ +.ace-solarized-dark .ace_support.ace_type {\ +color: #859900\ +}\ +.ace-solarized-dark .ace_constant.ace_character,\ +.ace-solarized-dark .ace_constant.ace_other {\ +color: #CB4B16\ +}\ +.ace-solarized-dark .ace_constant.ace_language {\ +color: #B58900\ +}\ +.ace-solarized-dark .ace_constant.ace_numeric {\ +color: #D33682\ +}\ +.ace-solarized-dark .ace_fold {\ +background-color: #268BD2;\ +border-color: #93A1A1\ +}\ +.ace-solarized-dark .ace_entity.ace_name.ace_function,\ +.ace-solarized-dark .ace_entity.ace_name.ace_tag,\ +.ace-solarized-dark .ace_support.ace_function,\ +.ace-solarized-dark .ace_variable,\ +.ace-solarized-dark .ace_variable.ace_language {\ +color: #268BD2\ +}\ +.ace-solarized-dark .ace_string {\ +color: #2AA198\ +}\ +.ace-solarized-dark .ace_comment {\ +font-style: italic;\ +color: #657B83\ +}\ +.ace-solarized-dark .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNg0Db1ZVCxc/sPAAd4AlUHlLenAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-solarized_light.js b/htdocs/includes/ace/theme-solarized_light.js new file mode 100644 index 00000000000..f0c078ae5d7 --- /dev/null +++ b/htdocs/includes/ace/theme-solarized_light.js @@ -0,0 +1,91 @@ +ace.define("ace/theme/solarized_light",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-solarized-light"; +exports.cssText = ".ace-solarized-light .ace_gutter {\ +background: #fbf1d3;\ +color: #333\ +}\ +.ace-solarized-light .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-solarized-light {\ +background-color: #FDF6E3;\ +color: #586E75\ +}\ +.ace-solarized-light .ace_cursor {\ +color: #000000\ +}\ +.ace-solarized-light .ace_marker-layer .ace_selection {\ +background: rgba(7, 54, 67, 0.09)\ +}\ +.ace-solarized-light.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FDF6E3;\ +}\ +.ace-solarized-light .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-solarized-light .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-light .ace_marker-layer .ace_active-line {\ +background: #EEE8D5\ +}\ +.ace-solarized-light .ace_gutter-active-line {\ +background-color : #EDE5C1\ +}\ +.ace-solarized-light .ace_marker-layer .ace_selected-word {\ +border: 1px solid #073642\ +}\ +.ace-solarized-light .ace_invisible {\ +color: rgba(147, 161, 161, 0.50)\ +}\ +.ace-solarized-light .ace_keyword,\ +.ace-solarized-light .ace_meta,\ +.ace-solarized-light .ace_support.ace_class,\ +.ace-solarized-light .ace_support.ace_type {\ +color: #859900\ +}\ +.ace-solarized-light .ace_constant.ace_character,\ +.ace-solarized-light .ace_constant.ace_other {\ +color: #CB4B16\ +}\ +.ace-solarized-light .ace_constant.ace_language {\ +color: #B58900\ +}\ +.ace-solarized-light .ace_constant.ace_numeric {\ +color: #D33682\ +}\ +.ace-solarized-light .ace_fold {\ +background-color: #268BD2;\ +border-color: #586E75\ +}\ +.ace-solarized-light .ace_entity.ace_name.ace_function,\ +.ace-solarized-light .ace_entity.ace_name.ace_tag,\ +.ace-solarized-light .ace_support.ace_function,\ +.ace-solarized-light .ace_variable,\ +.ace-solarized-light .ace_variable.ace_language {\ +color: #268BD2\ +}\ +.ace-solarized-light .ace_storage {\ +color: #073642\ +}\ +.ace-solarized-light .ace_string {\ +color: #2AA198\ +}\ +.ace-solarized-light .ace_string.ace_regexp {\ +color: #D30102\ +}\ +.ace-solarized-light .ace_comment,\ +.ace-solarized-light .ace_entity.ace_other.ace_attribute-name {\ +color: #93A1A1\ +}\ +.ace-solarized-light .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHjy8NJ/AAjgA5fzQUmBAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-sqlserver.js b/htdocs/includes/ace/theme-sqlserver.js new file mode 100644 index 00000000000..91f34f6c40a --- /dev/null +++ b/htdocs/includes/ace/theme-sqlserver.js @@ -0,0 +1,138 @@ +ace.define("ace/theme/sqlserver",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-sqlserver"; +exports.cssText = ".ace-sqlserver .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow: hidden;\ +}\ +.ace-sqlserver .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-sqlserver {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-sqlserver .ace_identifier {\ +color: black;\ +}\ +.ace-sqlserver .ace_keyword {\ +color: #0000FF;\ +}\ +.ace-sqlserver .ace_numeric {\ +color: black;\ +}\ +.ace-sqlserver .ace_storage {\ +color: #11B7BE;\ +}\ +.ace-sqlserver .ace_keyword.ace_operator,\ +.ace-sqlserver .ace_lparen,\ +.ace-sqlserver .ace_rparen,\ +.ace-sqlserver .ace_punctuation {\ +color: #808080;\ +}\ +.ace-sqlserver .ace_set.ace_statement {\ +color: #0000FF;\ +text-decoration: underline;\ +}\ +.ace-sqlserver .ace_cursor {\ +color: black;\ +}\ +.ace-sqlserver .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-sqlserver .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-sqlserver .ace_constant.ace_language {\ +color: #979797;\ +}\ +.ace-sqlserver .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-sqlserver .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-sqlserver .ace_support.ace_function {\ +color: #FF00FF;\ +}\ +.ace-sqlserver .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-sqlserver .ace_class {\ +color: #008080;\ +}\ +.ace-sqlserver .ace_support.ace_other {\ +color: #6D79DE;\ +}\ +.ace-sqlserver .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #FD971F;\ +}\ +.ace-sqlserver .ace_comment {\ +color: #008000;\ +}\ +.ace-sqlserver .ace_constant.ace_numeric {\ +color: black;\ +}\ +.ace-sqlserver .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-sqlserver .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-sqlserver .ace_support.ace_storedprocedure {\ +color: #800000;\ +}\ +.ace-sqlserver .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-sqlserver .ace_list {\ +color: rgb(185, 6, 144);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-sqlserver .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-sqlserver .ace_gutter-active-line {\ +background-color: #dcdcdc;\ +}\ +.ace-sqlserver .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-sqlserver .ace_meta.ace_tag {\ +color: #0000FF;\ +}\ +.ace-sqlserver .ace_string.ace_regex {\ +color: #FF0000;\ +}\ +.ace-sqlserver .ace_string {\ +color: #FF0000;\ +}\ +.ace-sqlserver .ace_entity.ace_other.ace_attribute-name {\ +color: #994409;\ +}\ +.ace-sqlserver .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-terminal.js b/htdocs/includes/ace/theme-terminal.js new file mode 100644 index 00000000000..def9e69b77f --- /dev/null +++ b/htdocs/includes/ace/theme-terminal.js @@ -0,0 +1,114 @@ +ace.define("ace/theme/terminal",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-terminal-theme"; +exports.cssText = ".ace-terminal-theme .ace_gutter {\ +background: #1a0005;\ +color: steelblue\ +}\ +.ace-terminal-theme .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-terminal-theme {\ +background-color: black;\ +color: #DEDEDE\ +}\ +.ace-terminal-theme .ace_cursor {\ +color: #9F9F9F\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_selection {\ +background: #424242\ +}\ +.ace-terminal-theme.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px black;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_step {\ +background: rgb(0, 0, 0)\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket {\ +background: #090;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket-start {\ +background: #090;\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_bracket-unmatched {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #900\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_active-line {\ +background: #2A2A2A\ +}\ +.ace-terminal-theme .ace_gutter-active-line {\ +background-color: #2A112A\ +}\ +.ace-terminal-theme .ace_marker-layer .ace_selected-word {\ +border: 1px solid #424242\ +}\ +.ace-terminal-theme .ace_invisible {\ +color: #343434\ +}\ +.ace-terminal-theme .ace_keyword,\ +.ace-terminal-theme .ace_meta,\ +.ace-terminal-theme .ace_storage,\ +.ace-terminal-theme .ace_storage.ace_type,\ +.ace-terminal-theme .ace_support.ace_type {\ +color: tomato\ +}\ +.ace-terminal-theme .ace_keyword.ace_operator {\ +color: deeppink\ +}\ +.ace-terminal-theme .ace_constant.ace_character,\ +.ace-terminal-theme .ace_constant.ace_language,\ +.ace-terminal-theme .ace_constant.ace_numeric,\ +.ace-terminal-theme .ace_keyword.ace_other.ace_unit,\ +.ace-terminal-theme .ace_support.ace_constant,\ +.ace-terminal-theme .ace_variable.ace_parameter {\ +color: #E78C45\ +}\ +.ace-terminal-theme .ace_constant.ace_other {\ +color: gold\ +}\ +.ace-terminal-theme .ace_invalid {\ +color: yellow;\ +background-color: red\ +}\ +.ace-terminal-theme .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-terminal-theme .ace_fold {\ +background-color: #7AA6DA;\ +border-color: #DEDEDE\ +}\ +.ace-terminal-theme .ace_entity.ace_name.ace_function,\ +.ace-terminal-theme .ace_support.ace_function,\ +.ace-terminal-theme .ace_variable {\ +color: #7AA6DA\ +}\ +.ace-terminal-theme .ace_support.ace_class,\ +.ace-terminal-theme .ace_support.ace_type {\ +color: #E7C547\ +}\ +.ace-terminal-theme .ace_heading,\ +.ace-terminal-theme .ace_string {\ +color: #B9CA4A\ +}\ +.ace-terminal-theme .ace_entity.ace_name.ace_tag,\ +.ace-terminal-theme .ace_entity.ace_other.ace_attribute-name,\ +.ace-terminal-theme .ace_meta.ace_tag,\ +.ace-terminal-theme .ace_string.ace_regexp,\ +.ace-terminal-theme .ace_variable {\ +color: #D54E53\ +}\ +.ace-terminal-theme .ace_comment {\ +color: orangered\ +}\ +.ace-terminal-theme .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYLBWV/8PAAK4AYnhiq+xAAAAAElFTkSuQmCC) right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-textmate.js b/htdocs/includes/ace/theme-textmate.js new file mode 100644 index 00000000000..0033edae2c6 --- /dev/null +++ b/htdocs/includes/ace/theme-textmate.js @@ -0,0 +1,129 @@ +ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_gutter {\ +background: #f0f0f0;\ +color: #333;\ +}\ +.ace-tm .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-tm .ace_fold {\ +background-color: #6B72E6;\ +}\ +.ace-tm {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-tm .ace_cursor {\ +color: black;\ +}\ +.ace-tm .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-tm .ace_storage,\ +.ace-tm .ace_keyword {\ +color: blue;\ +}\ +.ace-tm .ace_constant {\ +color: rgb(197, 6, 11);\ +}\ +.ace-tm .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-tm .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-tm .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_invalid {\ +background-color: rgba(255, 0, 0, 0.1);\ +color: red;\ +}\ +.ace-tm .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-tm .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_support.ace_type,\ +.ace-tm .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-tm .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-tm .ace_string {\ +color: rgb(3, 106, 7);\ +}\ +.ace-tm .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-tm .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-tm .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-tm .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-tm .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-tm .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-tm .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-tm .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-tm .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-tm .ace_meta.ace_tag {\ +color:rgb(0, 22, 142);\ +}\ +.ace-tm .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-tm .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-tm.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-tm .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-tm .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-tm .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-tm .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-tm .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-tomorrow.js b/htdocs/includes/ace/theme-tomorrow.js new file mode 100644 index 00000000000..4661be11221 --- /dev/null +++ b/htdocs/includes/ace/theme-tomorrow.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/tomorrow",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-tomorrow"; +exports.cssText = ".ace-tomorrow .ace_gutter {\ +background: #f6f6f6;\ +color: #4D4D4C\ +}\ +.ace-tomorrow .ace_print-margin {\ +width: 1px;\ +background: #f6f6f6\ +}\ +.ace-tomorrow {\ +background-color: #FFFFFF;\ +color: #4D4D4C\ +}\ +.ace-tomorrow .ace_cursor {\ +color: #AEAFAD\ +}\ +.ace-tomorrow .ace_marker-layer .ace_selection {\ +background: #D6D6D6\ +}\ +.ace-tomorrow.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-tomorrow .ace_marker-layer .ace_step {\ +background: rgb(255, 255, 0)\ +}\ +.ace-tomorrow .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #D1D1D1\ +}\ +.ace-tomorrow .ace_marker-layer .ace_active-line {\ +background: #EFEFEF\ +}\ +.ace-tomorrow .ace_gutter-active-line {\ +background-color : #dcdcdc\ +}\ +.ace-tomorrow .ace_marker-layer .ace_selected-word {\ +border: 1px solid #D6D6D6\ +}\ +.ace-tomorrow .ace_invisible {\ +color: #D1D1D1\ +}\ +.ace-tomorrow .ace_keyword,\ +.ace-tomorrow .ace_meta,\ +.ace-tomorrow .ace_storage,\ +.ace-tomorrow .ace_storage.ace_type,\ +.ace-tomorrow .ace_support.ace_type {\ +color: #8959A8\ +}\ +.ace-tomorrow .ace_keyword.ace_operator {\ +color: #3E999F\ +}\ +.ace-tomorrow .ace_constant.ace_character,\ +.ace-tomorrow .ace_constant.ace_language,\ +.ace-tomorrow .ace_constant.ace_numeric,\ +.ace-tomorrow .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow .ace_support.ace_constant,\ +.ace-tomorrow .ace_variable.ace_parameter {\ +color: #F5871F\ +}\ +.ace-tomorrow .ace_constant.ace_other {\ +color: #666969\ +}\ +.ace-tomorrow .ace_invalid {\ +color: #FFFFFF;\ +background-color: #C82829\ +}\ +.ace-tomorrow .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #8959A8\ +}\ +.ace-tomorrow .ace_fold {\ +background-color: #4271AE;\ +border-color: #4D4D4C\ +}\ +.ace-tomorrow .ace_entity.ace_name.ace_function,\ +.ace-tomorrow .ace_support.ace_function,\ +.ace-tomorrow .ace_variable {\ +color: #4271AE\ +}\ +.ace-tomorrow .ace_support.ace_class,\ +.ace-tomorrow .ace_support.ace_type {\ +color: #C99E00\ +}\ +.ace-tomorrow .ace_heading,\ +.ace-tomorrow .ace_markup.ace_heading,\ +.ace-tomorrow .ace_string {\ +color: #718C00\ +}\ +.ace-tomorrow .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow .ace_meta.ace_tag,\ +.ace-tomorrow .ace_string.ace_regexp,\ +.ace-tomorrow .ace_variable {\ +color: #C82829\ +}\ +.ace-tomorrow .ace_comment {\ +color: #8E908C\ +}\ +.ace-tomorrow .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bdu3f/BwAlfgctduB85QAAAABJRU5ErkJggg==) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-tomorrow_night.js b/htdocs/includes/ace/theme-tomorrow_night.js new file mode 100644 index 00000000000..53e1f39a414 --- /dev/null +++ b/htdocs/includes/ace/theme-tomorrow_night.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/tomorrow_night",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night"; +exports.cssText = ".ace-tomorrow-night .ace_gutter {\ +background: #25282c;\ +color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_print-margin {\ +width: 1px;\ +background: #25282c\ +}\ +.ace-tomorrow-night {\ +background-color: #1D1F21;\ +color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_cursor {\ +color: #AEAFAD\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_selection {\ +background: #373B41\ +}\ +.ace-tomorrow-night.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #1D1F21;\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #4B4E55\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_active-line {\ +background: #282A2E\ +}\ +.ace-tomorrow-night .ace_gutter-active-line {\ +background-color: #282A2E\ +}\ +.ace-tomorrow-night .ace_marker-layer .ace_selected-word {\ +border: 1px solid #373B41\ +}\ +.ace-tomorrow-night .ace_invisible {\ +color: #4B4E55\ +}\ +.ace-tomorrow-night .ace_keyword,\ +.ace-tomorrow-night .ace_meta,\ +.ace-tomorrow-night .ace_storage,\ +.ace-tomorrow-night .ace_storage.ace_type,\ +.ace-tomorrow-night .ace_support.ace_type {\ +color: #B294BB\ +}\ +.ace-tomorrow-night .ace_keyword.ace_operator {\ +color: #8ABEB7\ +}\ +.ace-tomorrow-night .ace_constant.ace_character,\ +.ace-tomorrow-night .ace_constant.ace_language,\ +.ace-tomorrow-night .ace_constant.ace_numeric,\ +.ace-tomorrow-night .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night .ace_support.ace_constant,\ +.ace-tomorrow-night .ace_variable.ace_parameter {\ +color: #DE935F\ +}\ +.ace-tomorrow-night .ace_constant.ace_other {\ +color: #CED1CF\ +}\ +.ace-tomorrow-night .ace_invalid {\ +color: #CED2CF;\ +background-color: #DF5F5F\ +}\ +.ace-tomorrow-night .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-tomorrow-night .ace_fold {\ +background-color: #81A2BE;\ +border-color: #C5C8C6\ +}\ +.ace-tomorrow-night .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night .ace_support.ace_function,\ +.ace-tomorrow-night .ace_variable {\ +color: #81A2BE\ +}\ +.ace-tomorrow-night .ace_support.ace_class,\ +.ace-tomorrow-night .ace_support.ace_type {\ +color: #F0C674\ +}\ +.ace-tomorrow-night .ace_heading,\ +.ace-tomorrow-night .ace_markup.ace_heading,\ +.ace-tomorrow-night .ace_string {\ +color: #B5BD68\ +}\ +.ace-tomorrow-night .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night .ace_meta.ace_tag,\ +.ace-tomorrow-night .ace_string.ace_regexp,\ +.ace-tomorrow-night .ace_variable {\ +color: #CC6666\ +}\ +.ace-tomorrow-night .ace_comment {\ +color: #969896\ +}\ +.ace-tomorrow-night .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-tomorrow_night_blue.js b/htdocs/includes/ace/theme-tomorrow_night_blue.js new file mode 100644 index 00000000000..956e221ec9b --- /dev/null +++ b/htdocs/includes/ace/theme-tomorrow_night_blue.js @@ -0,0 +1,106 @@ +ace.define("ace/theme/tomorrow_night_blue",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-blue"; +exports.cssText = ".ace-tomorrow-night-blue .ace_gutter {\ +background: #00204b;\ +color: #7388b5\ +}\ +.ace-tomorrow-night-blue .ace_print-margin {\ +width: 1px;\ +background: #00204b\ +}\ +.ace-tomorrow-night-blue {\ +background-color: #002451;\ +color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_constant.ace_other,\ +.ace-tomorrow-night-blue .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selection {\ +background: #003F8E\ +}\ +.ace-tomorrow-night-blue.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #002451;\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_step {\ +background: rgb(127, 111, 19)\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404F7D\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_active-line {\ +background: #00346E\ +}\ +.ace-tomorrow-night-blue .ace_gutter-active-line {\ +background-color: #022040\ +}\ +.ace-tomorrow-night-blue .ace_marker-layer .ace_selected-word {\ +border: 1px solid #003F8E\ +}\ +.ace-tomorrow-night-blue .ace_invisible {\ +color: #404F7D\ +}\ +.ace-tomorrow-night-blue .ace_keyword,\ +.ace-tomorrow-night-blue .ace_meta,\ +.ace-tomorrow-night-blue .ace_storage,\ +.ace-tomorrow-night-blue .ace_storage.ace_type,\ +.ace-tomorrow-night-blue .ace_support.ace_type {\ +color: #EBBBFF\ +}\ +.ace-tomorrow-night-blue .ace_keyword.ace_operator {\ +color: #99FFFF\ +}\ +.ace-tomorrow-night-blue .ace_constant.ace_character,\ +.ace-tomorrow-night-blue .ace_constant.ace_language,\ +.ace-tomorrow-night-blue .ace_constant.ace_numeric,\ +.ace-tomorrow-night-blue .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-blue .ace_support.ace_constant,\ +.ace-tomorrow-night-blue .ace_variable.ace_parameter {\ +color: #FFC58F\ +}\ +.ace-tomorrow-night-blue .ace_invalid {\ +color: #FFFFFF;\ +background-color: #F99DA5\ +}\ +.ace-tomorrow-night-blue .ace_invalid.ace_deprecated {\ +color: #FFFFFF;\ +background-color: #EBBBFF\ +}\ +.ace-tomorrow-night-blue .ace_fold {\ +background-color: #BBDAFF;\ +border-color: #FFFFFF\ +}\ +.ace-tomorrow-night-blue .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-blue .ace_support.ace_function,\ +.ace-tomorrow-night-blue .ace_variable {\ +color: #BBDAFF\ +}\ +.ace-tomorrow-night-blue .ace_support.ace_class,\ +.ace-tomorrow-night-blue .ace_support.ace_type {\ +color: #FFEEAD\ +}\ +.ace-tomorrow-night-blue .ace_heading,\ +.ace-tomorrow-night-blue .ace_markup.ace_heading,\ +.ace-tomorrow-night-blue .ace_string {\ +color: #D1F1A9\ +}\ +.ace-tomorrow-night-blue .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-blue .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-blue .ace_meta.ace_tag,\ +.ace-tomorrow-night-blue .ace_string.ace_regexp,\ +.ace-tomorrow-night-blue .ace_variable {\ +color: #FF9DA4\ +}\ +.ace-tomorrow-night-blue .ace_comment {\ +color: #7285B7\ +}\ +.ace-tomorrow-night-blue .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYJDzqfwPAANXAeNsiA+ZAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-tomorrow_night_bright.js b/htdocs/includes/ace/theme-tomorrow_night_bright.js new file mode 100644 index 00000000000..8514a0d6997 --- /dev/null +++ b/htdocs/includes/ace/theme-tomorrow_night_bright.js @@ -0,0 +1,121 @@ +ace.define("ace/theme/tomorrow_night_bright",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-bright"; +exports.cssText = ".ace-tomorrow-night-bright .ace_gutter {\ +background: #1a1a1a;\ +color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-tomorrow-night-bright {\ +background-color: #000000;\ +color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_cursor {\ +color: #9F9F9F\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selection {\ +background: #424242\ +}\ +.ace-tomorrow-night-bright.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #000000;\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #888888\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_highlight {\ +border: 1px solid rgb(110, 119, 0);\ +border-bottom: 0;\ +box-shadow: inset 0 -1px rgb(110, 119, 0);\ +margin: -1px 0 0 -1px;\ +background: rgba(255, 235, 0, 0.1)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_active-line {\ +background: #2A2A2A\ +}\ +.ace-tomorrow-night-bright .ace_gutter-active-line {\ +background-color: #2A2A2A\ +}\ +.ace-tomorrow-night-bright .ace_stack {\ +background-color: rgb(66, 90, 44)\ +}\ +.ace-tomorrow-night-bright .ace_marker-layer .ace_selected-word {\ +border: 1px solid #888888\ +}\ +.ace-tomorrow-night-bright .ace_invisible {\ +color: #343434\ +}\ +.ace-tomorrow-night-bright .ace_keyword,\ +.ace-tomorrow-night-bright .ace_meta,\ +.ace-tomorrow-night-bright .ace_storage,\ +.ace-tomorrow-night-bright .ace_storage.ace_type,\ +.ace-tomorrow-night-bright .ace_support.ace_type {\ +color: #C397D8\ +}\ +.ace-tomorrow-night-bright .ace_keyword.ace_operator {\ +color: #70C0B1\ +}\ +.ace-tomorrow-night-bright .ace_constant.ace_character,\ +.ace-tomorrow-night-bright .ace_constant.ace_language,\ +.ace-tomorrow-night-bright .ace_constant.ace_numeric,\ +.ace-tomorrow-night-bright .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-bright .ace_support.ace_constant,\ +.ace-tomorrow-night-bright .ace_variable.ace_parameter {\ +color: #E78C45\ +}\ +.ace-tomorrow-night-bright .ace_constant.ace_other {\ +color: #EEEEEE\ +}\ +.ace-tomorrow-night-bright .ace_invalid {\ +color: #CED2CF;\ +background-color: #DF5F5F\ +}\ +.ace-tomorrow-night-bright .ace_invalid.ace_deprecated {\ +color: #CED2CF;\ +background-color: #B798BF\ +}\ +.ace-tomorrow-night-bright .ace_fold {\ +background-color: #7AA6DA;\ +border-color: #DEDEDE\ +}\ +.ace-tomorrow-night-bright .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-bright .ace_support.ace_function,\ +.ace-tomorrow-night-bright .ace_variable {\ +color: #7AA6DA\ +}\ +.ace-tomorrow-night-bright .ace_support.ace_class,\ +.ace-tomorrow-night-bright .ace_support.ace_type {\ +color: #E7C547\ +}\ +.ace-tomorrow-night-bright .ace_heading,\ +.ace-tomorrow-night-bright .ace_markup.ace_heading,\ +.ace-tomorrow-night-bright .ace_string {\ +color: #B9CA4A\ +}\ +.ace-tomorrow-night-bright .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-bright .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-bright .ace_meta.ace_tag,\ +.ace-tomorrow-night-bright .ace_string.ace_regexp,\ +.ace-tomorrow-night-bright .ace_variable {\ +color: #D54E53\ +}\ +.ace-tomorrow-night-bright .ace_comment {\ +color: #969896\ +}\ +.ace-tomorrow-night-bright .ace_c9searchresults.ace_keyword {\ +color: #C2C280\ +}\ +.ace-tomorrow-night-bright .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYFBXV/8PAAJoAXX4kT2EAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-tomorrow_night_eighties.js b/htdocs/includes/ace/theme-tomorrow_night_eighties.js new file mode 100644 index 00000000000..3665e3f7dc7 --- /dev/null +++ b/htdocs/includes/ace/theme-tomorrow_night_eighties.js @@ -0,0 +1,108 @@ +ace.define("ace/theme/tomorrow_night_eighties",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-tomorrow-night-eighties"; +exports.cssText = ".ace-tomorrow-night-eighties .ace_gutter {\ +background: #272727;\ +color: #CCC\ +}\ +.ace-tomorrow-night-eighties .ace_print-margin {\ +width: 1px;\ +background: #272727\ +}\ +.ace-tomorrow-night-eighties {\ +background-color: #2D2D2D;\ +color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_constant.ace_other,\ +.ace-tomorrow-night-eighties .ace_cursor {\ +color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selection {\ +background: #515151\ +}\ +.ace-tomorrow-night-eighties.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #2D2D2D;\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #6A6A6A\ +}\ +.ace-tomorrow-night-bright .ace_stack {\ +background: rgb(66, 90, 44)\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_active-line {\ +background: #393939\ +}\ +.ace-tomorrow-night-eighties .ace_gutter-active-line {\ +background-color: #393939\ +}\ +.ace-tomorrow-night-eighties .ace_marker-layer .ace_selected-word {\ +border: 1px solid #515151\ +}\ +.ace-tomorrow-night-eighties .ace_invisible {\ +color: #6A6A6A\ +}\ +.ace-tomorrow-night-eighties .ace_keyword,\ +.ace-tomorrow-night-eighties .ace_meta,\ +.ace-tomorrow-night-eighties .ace_storage,\ +.ace-tomorrow-night-eighties .ace_storage.ace_type,\ +.ace-tomorrow-night-eighties .ace_support.ace_type {\ +color: #CC99CC\ +}\ +.ace-tomorrow-night-eighties .ace_keyword.ace_operator {\ +color: #66CCCC\ +}\ +.ace-tomorrow-night-eighties .ace_constant.ace_character,\ +.ace-tomorrow-night-eighties .ace_constant.ace_language,\ +.ace-tomorrow-night-eighties .ace_constant.ace_numeric,\ +.ace-tomorrow-night-eighties .ace_keyword.ace_other.ace_unit,\ +.ace-tomorrow-night-eighties .ace_support.ace_constant,\ +.ace-tomorrow-night-eighties .ace_variable.ace_parameter {\ +color: #F99157\ +}\ +.ace-tomorrow-night-eighties .ace_invalid {\ +color: #CDCDCD;\ +background-color: #F2777A\ +}\ +.ace-tomorrow-night-eighties .ace_invalid.ace_deprecated {\ +color: #CDCDCD;\ +background-color: #CC99CC\ +}\ +.ace-tomorrow-night-eighties .ace_fold {\ +background-color: #6699CC;\ +border-color: #CCCCCC\ +}\ +.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_function,\ +.ace-tomorrow-night-eighties .ace_support.ace_function,\ +.ace-tomorrow-night-eighties .ace_variable {\ +color: #6699CC\ +}\ +.ace-tomorrow-night-eighties .ace_support.ace_class,\ +.ace-tomorrow-night-eighties .ace_support.ace_type {\ +color: #FFCC66\ +}\ +.ace-tomorrow-night-eighties .ace_heading,\ +.ace-tomorrow-night-eighties .ace_markup.ace_heading,\ +.ace-tomorrow-night-eighties .ace_string {\ +color: #99CC99\ +}\ +.ace-tomorrow-night-eighties .ace_comment {\ +color: #999999\ +}\ +.ace-tomorrow-night-eighties .ace_entity.ace_name.ace_tag,\ +.ace-tomorrow-night-eighties .ace_entity.ace_other.ace_attribute-name,\ +.ace-tomorrow-night-eighties .ace_meta.ace_tag,\ +.ace-tomorrow-night-eighties .ace_variable {\ +color: #F2777A\ +}\ +.ace-tomorrow-night-eighties .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWPQ09NrYAgMjP4PAAtGAwchHMyAAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-twilight.js b/htdocs/includes/ace/theme-twilight.js new file mode 100644 index 00000000000..48ec030981e --- /dev/null +++ b/htdocs/includes/ace/theme-twilight.js @@ -0,0 +1,109 @@ +ace.define("ace/theme/twilight",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-twilight"; +exports.cssText = ".ace-twilight .ace_gutter {\ +background: #232323;\ +color: #E2E2E2\ +}\ +.ace-twilight .ace_print-margin {\ +width: 1px;\ +background: #232323\ +}\ +.ace-twilight {\ +background-color: #141414;\ +color: #F8F8F8\ +}\ +.ace-twilight .ace_cursor {\ +color: #A7A7A7\ +}\ +.ace-twilight .ace_marker-layer .ace_selection {\ +background: rgba(221, 240, 255, 0.20)\ +}\ +.ace-twilight.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #141414;\ +}\ +.ace-twilight .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-twilight .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgba(255, 255, 255, 0.25)\ +}\ +.ace-twilight .ace_marker-layer .ace_active-line {\ +background: rgba(255, 255, 255, 0.031)\ +}\ +.ace-twilight .ace_gutter-active-line {\ +background-color: rgba(255, 255, 255, 0.031)\ +}\ +.ace-twilight .ace_marker-layer .ace_selected-word {\ +border: 1px solid rgba(221, 240, 255, 0.20)\ +}\ +.ace-twilight .ace_invisible {\ +color: rgba(255, 255, 255, 0.25)\ +}\ +.ace-twilight .ace_keyword,\ +.ace-twilight .ace_meta {\ +color: #CDA869\ +}\ +.ace-twilight .ace_constant,\ +.ace-twilight .ace_constant.ace_character,\ +.ace-twilight .ace_constant.ace_character.ace_escape,\ +.ace-twilight .ace_constant.ace_other,\ +.ace-twilight .ace_heading,\ +.ace-twilight .ace_markup.ace_heading,\ +.ace-twilight .ace_support.ace_constant {\ +color: #CF6A4C\ +}\ +.ace-twilight .ace_invalid.ace_illegal {\ +color: #F8F8F8;\ +background-color: rgba(86, 45, 86, 0.75)\ +}\ +.ace-twilight .ace_invalid.ace_deprecated {\ +text-decoration: underline;\ +font-style: italic;\ +color: #D2A8A1\ +}\ +.ace-twilight .ace_support {\ +color: #9B859D\ +}\ +.ace-twilight .ace_fold {\ +background-color: #AC885B;\ +border-color: #F8F8F8\ +}\ +.ace-twilight .ace_support.ace_function {\ +color: #DAD085\ +}\ +.ace-twilight .ace_list,\ +.ace-twilight .ace_markup.ace_list,\ +.ace-twilight .ace_storage {\ +color: #F9EE98\ +}\ +.ace-twilight .ace_entity.ace_name.ace_function,\ +.ace-twilight .ace_meta.ace_tag,\ +.ace-twilight .ace_variable {\ +color: #AC885B\ +}\ +.ace-twilight .ace_string {\ +color: #8F9D6A\ +}\ +.ace-twilight .ace_string.ace_regexp {\ +color: #E9C062\ +}\ +.ace-twilight .ace_comment {\ +font-style: italic;\ +color: #5F5A60\ +}\ +.ace-twilight .ace_variable {\ +color: #7587A6\ +}\ +.ace-twilight .ace_xml-pe {\ +color: #494949\ +}\ +.ace-twilight .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWMQERFpYLC1tf0PAAgOAnPnhxyiAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-vibrant_ink.js b/htdocs/includes/ace/theme-vibrant_ink.js new file mode 100644 index 00000000000..db926c70524 --- /dev/null +++ b/htdocs/includes/ace/theme-vibrant_ink.js @@ -0,0 +1,94 @@ +ace.define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-vibrant-ink"; +exports.cssText = ".ace-vibrant-ink .ace_gutter {\ +background: #1a1a1a;\ +color: #BEBEBE\ +}\ +.ace-vibrant-ink .ace_print-margin {\ +width: 1px;\ +background: #1a1a1a\ +}\ +.ace-vibrant-ink {\ +background-color: #0F0F0F;\ +color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_cursor {\ +color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_selection {\ +background: #6699CC\ +}\ +.ace-vibrant-ink.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #0F0F0F;\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_step {\ +background: rgb(102, 82, 0)\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #404040\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_active-line {\ +background: #333333\ +}\ +.ace-vibrant-ink .ace_gutter-active-line {\ +background-color: #333333\ +}\ +.ace-vibrant-ink .ace_marker-layer .ace_selected-word {\ +border: 1px solid #6699CC\ +}\ +.ace-vibrant-ink .ace_invisible {\ +color: #404040\ +}\ +.ace-vibrant-ink .ace_keyword,\ +.ace-vibrant-ink .ace_meta {\ +color: #FF6600\ +}\ +.ace-vibrant-ink .ace_constant,\ +.ace-vibrant-ink .ace_constant.ace_character,\ +.ace-vibrant-ink .ace_constant.ace_character.ace_escape,\ +.ace-vibrant-ink .ace_constant.ace_other {\ +color: #339999\ +}\ +.ace-vibrant-ink .ace_constant.ace_numeric {\ +color: #99CC99\ +}\ +.ace-vibrant-ink .ace_invalid,\ +.ace-vibrant-ink .ace_invalid.ace_deprecated {\ +color: #CCFF33;\ +background-color: #000000\ +}\ +.ace-vibrant-ink .ace_fold {\ +background-color: #FFCC00;\ +border-color: #FFFFFF\ +}\ +.ace-vibrant-ink .ace_entity.ace_name.ace_function,\ +.ace-vibrant-ink .ace_support.ace_function,\ +.ace-vibrant-ink .ace_variable {\ +color: #FFCC00\ +}\ +.ace-vibrant-ink .ace_variable.ace_parameter {\ +font-style: italic\ +}\ +.ace-vibrant-ink .ace_string {\ +color: #66FF00\ +}\ +.ace-vibrant-ink .ace_string.ace_regexp {\ +color: #44B4CC\ +}\ +.ace-vibrant-ink .ace_comment {\ +color: #9933CC\ +}\ +.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name {\ +font-style: italic;\ +color: #99CC99\ +}\ +.ace-vibrant-ink .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYNDTc/oPAALPAZ7hxlbYAAAAAElFTkSuQmCC) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/theme-xcode.js b/htdocs/includes/ace/theme-xcode.js new file mode 100644 index 00000000000..3604a170295 --- /dev/null +++ b/htdocs/includes/ace/theme-xcode.js @@ -0,0 +1,88 @@ +ace.define("ace/theme/xcode",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-xcode"; +exports.cssText = "\ +.ace-xcode .ace_gutter {\ +background: #e8e8e8;\ +color: #333\ +}\ +.ace-xcode .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8\ +}\ +.ace-xcode {\ +background-color: #FFFFFF;\ +color: #000000\ +}\ +.ace-xcode .ace_cursor {\ +color: #000000\ +}\ +.ace-xcode .ace_marker-layer .ace_selection {\ +background: #B5D5FF\ +}\ +.ace-xcode.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #FFFFFF;\ +}\ +.ace-xcode .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-xcode .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #BFBFBF\ +}\ +.ace-xcode .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.071)\ +}\ +.ace-xcode .ace_gutter-active-line {\ +background-color: rgba(0, 0, 0, 0.071)\ +}\ +.ace-xcode .ace_marker-layer .ace_selected-word {\ +border: 1px solid #B5D5FF\ +}\ +.ace-xcode .ace_constant.ace_language,\ +.ace-xcode .ace_keyword,\ +.ace-xcode .ace_meta,\ +.ace-xcode .ace_variable.ace_language {\ +color: #C800A4\ +}\ +.ace-xcode .ace_invisible {\ +color: #BFBFBF\ +}\ +.ace-xcode .ace_constant.ace_character,\ +.ace-xcode .ace_constant.ace_other {\ +color: #275A5E\ +}\ +.ace-xcode .ace_constant.ace_numeric {\ +color: #3A00DC\ +}\ +.ace-xcode .ace_entity.ace_other.ace_attribute-name,\ +.ace-xcode .ace_support.ace_constant,\ +.ace-xcode .ace_support.ace_function {\ +color: #450084\ +}\ +.ace-xcode .ace_fold {\ +background-color: #C800A4;\ +border-color: #000000\ +}\ +.ace-xcode .ace_entity.ace_name.ace_tag,\ +.ace-xcode .ace_support.ace_class,\ +.ace-xcode .ace_support.ace_type {\ +color: #790EAD\ +}\ +.ace-xcode .ace_storage {\ +color: #C900A4\ +}\ +.ace-xcode .ace_string {\ +color: #DF0002\ +}\ +.ace-xcode .ace_comment {\ +color: #008E00\ +}\ +.ace-xcode .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==) right repeat-y\ +}"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); diff --git a/htdocs/includes/ace/worker-coffee.js b/htdocs/includes/ace/worker-coffee.js new file mode 100644 index 00000000000..7fca2604922 --- /dev/null +++ b/htdocs/includes/ace/worker-coffee.js @@ -0,0 +1,2157 @@ +"no use strict"; +;(function(window) { +if (typeof window.window != "undefined" && window.document) + return; +if (window.require && window.define) + return; + +if (!window.console) { + window.console = function() { + var msgs = Array.prototype.slice.call(arguments, 0); + postMessage({type: "log", data: msgs}); + }; + window.console.error = + window.console.warn = + window.console.log = + window.console.trace = window.console; +} +window.window = window; +window.ace = window; + +window.onerror = function(message, file, line, col, err) { + postMessage({type: "error", data: { + message: message, + data: err.data, + file: file, + line: line, + col: col, + stack: err.stack + }}); +}; + +window.normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = (base ? base + "/" : "") + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +window.require = function require(parentId, id) { + if (!id) { + id = parentId; + parentId = null; + } + if (!id.charAt) + throw new Error("worker.js require() accepts only (parentId, id) as arguments"); + + id = window.normalizeModule(parentId, id); + + var module = window.require.modules[id]; + if (module) { + if (!module.initialized) { + module.initialized = true; + module.exports = module.factory().exports; + } + return module.exports; + } + + if (!window.require.tlns) + return console.log("unable to load " + id); + + var path = resolveModuleId(id, window.require.tlns); + if (path.slice(-3) != ".js") path += ".js"; + + window.require.id = id; + window.require.modules[id] = {}; // prevent infinite loop on broken modules + importScripts(path); + return window.require(parentId, id); +}; +function resolveModuleId(id, paths) { + var testPath = id, tail = ""; + while (testPath) { + var alias = paths[testPath]; + if (typeof alias == "string") { + return alias + tail; + } else if (alias) { + return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name); + } else if (alias === false) { + return ""; + } + var i = testPath.lastIndexOf("/"); + if (i === -1) break; + tail = testPath.substr(i) + tail; + testPath = testPath.slice(0, i); + } + return id; +} +window.require.modules = {}; +window.require.tlns = {}; + +window.define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + if (typeof id != "string") { + deps = id; + id = window.require.id; + } + } else if (arguments.length == 1) { + factory = id; + deps = []; + id = window.require.id; + } + + if (typeof factory != "function") { + window.require.modules[id] = { + exports: factory, + initialized: true + }; + return; + } + + if (!deps.length) + // If there is no dependencies, we inject "require", "exports" and + // "module" as dependencies, to provide CommonJS compatibility. + deps = ["require", "exports", "module"]; + + var req = function(childId) { + return window.require(id, childId); + }; + + window.require.modules[id] = { + exports: {}, + factory: function() { + var module = this; + var returnExports = factory.apply(this, deps.map(function(dep) { + switch (dep) { + // Because "require", "exports" and "module" aren't actual + // dependencies, we must handle them seperately. + case "require": return req; + case "exports": return module.exports; + case "module": return module; + // But for all other dependencies, we can just go ahead and + // require them. + default: return req(dep); + } + })); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; +window.define.amd = {}; +require.tlns = {}; +window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { + for (var i in topLevelNamespaces) + require.tlns[i] = topLevelNamespaces[i]; +}; + +window.initSender = function initSender() { + + var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter; + var oop = window.require("ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +}; + +var main = window.main = null; +var sender = window.sender = null; + +window.onmessage = function(e) { + var msg = e.data; + if (msg.event && sender) { + sender._signal(msg.event, msg.data); + } + else if (msg.command) { + if (main[msg.command]) + main[msg.command].apply(main, msg.args); + else if (window[msg.command]) + window[msg.command].apply(window, msg.args); + else + throw new Error("Unknown command:" + msg.command); + } + else if (msg.init) { + window.initBaseUrls(msg.tlns); + require("ace/lib/es5-shim"); + sender = window.sender = window.initSender(); + var clazz = require(msg.module)[msg.classname]; + main = window.main = new clazz(sender); + } +}; +})(this); + +ace.define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +ace.define("ace/range",["require","exports","module"], function(require, exports, module) { +"use strict"; +var comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + this.isEqual = function(range) { + return this.start.row === range.start.row && + this.end.row === range.end.row && + this.start.column === range.start.column && + this.end.column === range.end.column; + }; + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +ace.define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +} +}); + +ace.define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) + this.$splitAndapplyLargeDelta(delta, 20000); + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length; + var row = delta.start.row; + var column = delta.start.column; + var from = 0, to = 0; + do { + from = to; + to += MAX - 1; + var chunk = lines.slice(from, to); + if (to > l) { + delta.lines = chunk; + delta.start.row = row + from; + delta.start.column = column; + break; + } + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } while(true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: lines[l-1].length}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +ace.define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i0;)1&t&&(n+=e),t>>>=1,e+=e;return n},e.compact=function(e){var t,n,i,r;for(r=[],t=0,i=e.length;i>t;t++)n=e[t],n&&r.push(n);return r},e.count=function(e,t){var n,i;if(n=i=0,!t.length)return 1/0;for(;i=1+e.indexOf(t,i);)n++;return n},e.merge=function(e,t){return n(n({},e),t)},n=e.extend=function(e,t){var n,i;for(n in t)i=t[n],e[n]=i;return e},e.flatten=i=function(e){var t,n,r,s;for(n=[],r=0,s=e.length;s>r;r++)t=e[r],t instanceof Array?n=n.concat(i(t)):n.push(t);return n},e.del=function(e,t){var n;return n=e[t],delete e[t],n},e.some=null!=(r=Array.prototype.some)?r:function(e){var t,n,i;for(n=0,i=this.length;i>n;n++)if(t=this[n],e(t))return!0;return!1},e.invertLiterate=function(e){var t,n,i;return i=!0,n=function(){var n,r,s,o;for(s=e.split("\n"),o=[],n=0,r=s.length;r>n;n++)t=s[n],i&&/^([ ]{4}|[ ]{0,3}\t)/.test(t)?o.push(t):(i=/^\s*$/.test(t))?o.push(t):o.push("# "+t);return o}(),n.join("\n")},t=function(e,t){return t?{first_line:e.first_line,first_column:e.first_column,last_line:t.last_line,last_column:t.last_column}:e},e.addLocationDataFn=function(e,n){return function(i){return"object"==typeof i&&i.updateLocationDataIfMissing&&i.updateLocationDataIfMissing(t(e,n)),i}},e.locationDataToString=function(e){var t;return"2"in e&&"first_line"in e[2]?t=e[2]:"first_line"in e&&(t=e),t?t.first_line+1+":"+(t.first_column+1)+"-"+(t.last_line+1+":"+(t.last_column+1)):"No location data"},e.baseFileName=function(e,t,n){var i,r;return null==t&&(t=!1),null==n&&(n=!1),r=n?/\\|\//:/\//,i=e.split(r),e=i[i.length-1],t&&e.indexOf(".")>=0?(i=e.split("."),i.pop(),"coffee"===i[i.length-1]&&i.length>1&&i.pop(),i.join(".")):e},e.isCoffee=function(e){return/\.((lit)?coffee|coffee\.md)$/.test(e)},e.isLiterate=function(e){return/\.(litcoffee|coffee\.md)$/.test(e)},e.throwSyntaxError=function(e,t){var n;throw n=new SyntaxError(e),n.location=t,n.toString=o,n.stack=""+n,n},e.updateSyntaxError=function(e,t,n){return e.toString===o&&(e.code||(e.code=t),e.filename||(e.filename=n),e.stack=""+e),e},o=function(){var e,t,n,i,r,o,a,c,h,l,u,p,d,f,m;return this.code&&this.location?(u=this.location,a=u.first_line,o=u.first_column,h=u.last_line,c=u.last_column,null==h&&(h=a),null==c&&(c=o),r=this.filename||"[stdin]",e=this.code.split("\n")[a],m=o,i=a===h?c+1:e.length,l=e.slice(0,m).replace(/[^\s]/g," ")+s("^",i-m),"undefined"!=typeof process&&null!==process&&(n=(null!=(p=process.stdout)?p.isTTY:void 0)&&!(null!=(d=process.env)?d.NODE_DISABLE_COLORS:void 0)),(null!=(f=this.colorful)?f:n)&&(t=function(e){return""+e+""},e=e.slice(0,m)+t(e.slice(m,i))+e.slice(i),l=t(l)),r+":"+(a+1)+":"+(o+1)+": error: "+this.message+"\n"+e+"\n"+l):Error.prototype.toString.call(this)},e.nameWhitespaceCharacter=function(e){switch(e){case" ":return"space";case"\n":return"newline";case"\r":return"carriage return";case" ":return"tab";default:return e}}}.call(this),t.exports}(),_dereq_["./rewriter"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},w=[].slice;for(f=function(e,t,n){var i;return i=[e,t],i.generated=!0,n&&(i.origin=n),i},e.Rewriter=function(){function e(){}return e.prototype.rewrite=function(e){return this.tokens=e,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addLocationDataToGeneratedTokens(),this.tokens},e.prototype.scanTokens=function(e){var t,n,i;for(i=this.tokens,t=0;n=i[t];)t+=e.call(this,n,t,i);return!0},e.prototype.detectEnd=function(e,t,n){var i,o,a,c,h;for(h=this.tokens,i=0;c=h[e];){if(0===i&&t.call(this,c,e))return n.call(this,c,e);if(!c||0>i)return n.call(this,c,e-1);o=c[0],k.call(s,o)>=0?i+=1:(a=c[0],k.call(r,a)>=0&&(i-=1)),e+=1}return e-1},e.prototype.removeLeadingNewlines=function(){var e,t,n,i,r;for(i=this.tokens,e=t=0,n=i.length;n>t&&(r=i[e][0],"TERMINATOR"===r);e=++t);return e?this.tokens.splice(0,e):void 0},e.prototype.closeOpenCalls=function(){var e,t;return t=function(e,t){var n;return")"===(n=e[0])||"CALL_END"===n||"OUTDENT"===e[0]&&")"===this.tag(t-1)},e=function(e,t){return this.tokens["OUTDENT"===e[0]?t-1:t][0]="CALL_END"},this.scanTokens(function(n,i){return"CALL_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.closeOpenIndexes=function(){var e,t;return t=function(e){var t;return"]"===(t=e[0])||"INDEX_END"===t},e=function(e){return e[0]="INDEX_END"},this.scanTokens(function(n,i){return"INDEX_START"===n[0]&&this.detectEnd(i+1,t,e),1})},e.prototype.indexOfTag=function(){var e,t,n,i,r,s,o;for(t=arguments[0],r=arguments.length>=2?w.call(arguments,1):[],e=0,n=i=0,s=r.length;s>=0?s>i:i>s;n=s>=0?++i:--i){for(;"HERECOMMENT"===this.tag(t+n+e);)e+=2;if(null!=r[n]&&("string"==typeof r[n]&&(r[n]=[r[n]]),o=this.tag(t+n+e),0>k.call(r[n],o)))return-1}return t+n+e-1},e.prototype.looksObjectish=function(e){var t,n;return this.indexOfTag(e,"@",null,":")>-1||this.indexOfTag(e,null,":")>-1?!0:(n=this.indexOfTag(e,s),n>-1&&(t=null,this.detectEnd(n+1,function(e){var t;return t=e[0],k.call(r,t)>=0},function(e,n){return t=n}),":"===this.tag(t+1))?!0:!1)},e.prototype.findTagsBackwards=function(e,t){var n,i,o,a,c,h,l;for(n=[];e>=0&&(n.length||(a=this.tag(e),0>k.call(t,a)&&(c=this.tag(e),0>k.call(s,c)||this.tokens[e].generated)&&(h=this.tag(e),0>k.call(u,h))));)i=this.tag(e),k.call(r,i)>=0&&n.push(this.tag(e)),o=this.tag(e),k.call(s,o)>=0&&n.length&&n.pop(),e-=1;return l=this.tag(e),k.call(t,l)>=0},e.prototype.addImplicitBracesAndParens=function(){var e,t;return e=[],t=null,this.scanTokens(function(i,l,p){var d,m,g,v,y,b,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U;if(U=i[0],F=(N=l>0?p[l-1]:[])[0],C=(p.length-1>l?p[l+1]:[])[0],j=function(){return e[e.length-1]},M=l,g=function(e){return l-M+e},v=function(){var e,t;return null!=(e=j())?null!=(t=e[2])?t.ours:void 0:void 0},y=function(){var e;return v()&&"("===(null!=(e=j())?e[0]:void 0)},w=function(){var e;return v()&&"{"===(null!=(e=j())?e[0]:void 0)},b=function(){var e;return v&&"CONTROL"===(null!=(e=j())?e[0]:void 0)},B=function(t){var n;return n=null!=t?t:l,e.push(["(",n,{ours:!0}]),p.splice(n,0,f("CALL_START","(")),null==t?l+=1:void 0},d=function(){return e.pop(),p.splice(l,0,f("CALL_END",")",["","end of input",i[2]])),l+=1},V=function(t,n){var r,s;return null==n&&(n=!0),r=null!=t?t:l,e.push(["{",r,{sameLine:!0,startsLine:n,ours:!0}]),s=new String("{"),s.generated=!0,p.splice(r,0,f("{",s,i)),null==t?l+=1:void 0},m=function(t){return t=null!=t?t:l,e.pop(),p.splice(t,0,f("}","}",i)),l+=1},y()&&("IF"===U||"TRY"===U||"FINALLY"===U||"CATCH"===U||"CLASS"===U||"SWITCH"===U))return e.push(["CONTROL",l,{ours:!0}]),g(1);if("INDENT"===U&&v()){if("=>"!==F&&"->"!==F&&"["!==F&&"("!==F&&","!==F&&"{"!==F&&"TRY"!==F&&"ELSE"!==F&&"="!==F)for(;y();)d();return b()&&e.pop(),e.push([U,l]),g(1)}if(k.call(s,U)>=0)return e.push([U,l]),g(1);if(k.call(r,U)>=0){for(;v();)y()?d():w()?m():e.pop();t=e.pop()}if((k.call(c,U)>=0&&i.spaced||"?"===U&&l>0&&!p[l-1].spaced)&&(k.call(o,C)>=0||k.call(h,C)>=0&&!(null!=(L=p[l+1])?L.spaced:void 0)&&!(null!=(x=p[l+1])?x.newLine:void 0)))return"?"===U&&(U=i[0]="FUNC_EXIST"),B(l+1),g(2);if(k.call(c,U)>=0&&this.indexOfTag(l+1,"INDENT")>-1&&this.looksObjectish(l+2)&&!this.findTagsBackwards(l,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return B(l+1),e.push(["INDENT",l+2]),g(3);if(":"===U){for(I=function(){var e;switch(!1){case e=this.tag(l-1),0>k.call(r,e):return t[1];case"@"!==this.tag(l-2):return l-2;default:return l-1}}.call(this);"HERECOMMENT"===this.tag(I-2);)I-=2;return this.insideForDeclaration="FOR"===C,P=0===I||(S=this.tag(I-1),k.call(u,S)>=0)||p[I-1].newLine,j()&&(D=j(),$=D[0],O=D[1],("{"===$||"INDENT"===$&&"{"===this.tag(O-1))&&(P||","===this.tag(I-1)||"{"===this.tag(I-1)))?g(1):(V(I,!!P),g(2))}if(w()&&k.call(u,U)>=0&&(j()[2].sameLine=!1),T="OUTDENT"===F||N.newLine,k.call(a,U)>=0||k.call(n,U)>=0&&T)for(;v();)if(R=j(),$=R[0],O=R[1],A=R[2],_=A.sameLine,P=A.startsLine,y()&&","!==F)d();else if(w()&&!this.insideForDeclaration&&_&&"TERMINATOR"!==U&&":"!==F)m();else{if(!w()||"TERMINATOR"!==U||","===F||P&&this.looksObjectish(l+1))break;if("HERECOMMENT"===C)return g(1);m()}if(!(","!==U||this.looksObjectish(l+1)||!w()||this.insideForDeclaration||"TERMINATOR"===C&&this.looksObjectish(l+2)))for(E="OUTDENT"===C?1:0;w();)m(l+E);return g(1)})},e.prototype.addLocationDataToGeneratedTokens=function(){return this.scanTokens(function(e,t,n){var i,r,s,o,a,c;return e[2]?1:e.generated||e.explicit?("{"===e[0]&&(s=null!=(a=n[t+1])?a[2]:void 0)?(r=s.first_line,i=s.first_column):(o=null!=(c=n[t-1])?c[2]:void 0)?(r=o.last_line,i=o.last_column):r=i=0,e[2]={first_line:r,first_column:i,last_line:r,last_column:i},1):1})},e.prototype.normalizeLines=function(){var e,t,r,s,o;return o=r=s=null,t=function(e,t){var r,s,a,c;return";"!==e[1]&&(r=e[0],k.call(p,r)>=0)&&!("TERMINATOR"===e[0]&&(s=this.tag(t+1),k.call(i,s)>=0))&&!("ELSE"===e[0]&&"THEN"!==o)&&!!("CATCH"!==(a=e[0])&&"FINALLY"!==a||"->"!==o&&"=>"!==o)||(c=e[0],k.call(n,c)>=0&&this.tokens[t-1].newLine)},e=function(e,t){return this.tokens.splice(","===this.tag(t-1)?t-1:t,0,s)},this.scanTokens(function(n,a,c){var h,l,u,p,f,m;if(m=n[0],"TERMINATOR"===m){if("ELSE"===this.tag(a+1)&&"OUTDENT"!==this.tag(a-1))return c.splice.apply(c,[a,1].concat(w.call(this.indentation()))),1;if(u=this.tag(a+1),k.call(i,u)>=0)return c.splice(a,1),0}if("CATCH"===m)for(h=l=1;2>=l;h=++l)if("OUTDENT"===(p=this.tag(a+h))||"TERMINATOR"===p||"FINALLY"===p)return c.splice.apply(c,[a+h,0].concat(w.call(this.indentation()))),2+h;return k.call(d,m)>=0&&"INDENT"!==this.tag(a+1)&&("ELSE"!==m||"IF"!==this.tag(a+1))?(o=m,f=this.indentation(c[a]),r=f[0],s=f[1],"THEN"===o&&(r.fromThen=!0),c.splice(a+1,0,r),this.detectEnd(a+2,t,e),"THEN"===m&&c.splice(a,1),1):1})},e.prototype.tagPostfixConditionals=function(){var e,t,n;return n=null,t=function(e,t){var n,i;return i=e[0],n=this.tokens[t-1][0],"TERMINATOR"===i||"INDENT"===i&&0>k.call(d,n)},e=function(e){return"INDENT"!==e[0]||e.generated&&!e.fromThen?n[0]="POST_"+n[0]:void 0},this.scanTokens(function(i,r){return"IF"!==i[0]?1:(n=i,this.detectEnd(r+1,t,e),1)})},e.prototype.indentation=function(e){var t,n;return t=["INDENT",2],n=["OUTDENT",2],e?(t.generated=n.generated=!0,t.origin=n.origin=e):t.explicit=n.explicit=!0,[t,n]},e.prototype.generate=f,e.prototype.tag=function(e){var t;return null!=(t=this.tokens[e])?t[0]:void 0},e}(),t=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["REGEX_START","REGEX_END"]],e.INVERSES=l={},s=[],r=[],m=0,v=t.length;v>m;m++)y=t[m],g=y[0],b=y[1],s.push(l[b]=g),r.push(l[g]=b);i=["CATCH","THEN","ELSE","FINALLY"].concat(r),c=["IDENTIFIER","SUPER",")","CALL_END","]","INDEX_END","@","THIS"],o=["IDENTIFIER","NUMBER","STRING","STRING_START","JS","REGEX","REGEX_START","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","BOOL","NULL","UNDEFINED","UNARY","YIELD","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"],h=["+","-"],a=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"],d=["ELSE","->","=>","TRY","FINALLY","THEN"],p=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"],u=["TERMINATOR","INDENT","OUTDENT"],n=[".","?.","::","?::"]}.call(this),t.exports}(),_dereq_["./lexer"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};ot=_dereq_("./rewriter"),P=ot.Rewriter,w=ot.INVERSES,at=_dereq_("./helpers"),nt=at.count,ht=at.starts,tt=at.compact,ct=at.repeat,it=at.invertLiterate,st=at.locationDataToString,lt=at.throwSyntaxError,e.Lexer=S=function(){function e(){}return e.prototype.tokenize=function(e,t){var n,i,r,s;for(null==t&&(t={}),this.literate=t.literate,this.indent=0,this.baseIndent=0,this.indebt=0,this.outdebt=0,this.indents=[],this.ends=[],this.tokens=[],this.chunkLine=t.line||0,this.chunkColumn=t.column||0,e=this.clean(e),r=0;this.chunk=e.slice(r);)if(n=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),s=this.getLineAndColumnFromChunk(n),this.chunkLine=s[0],this.chunkColumn=s[1],r+=n,t.untilBalanced&&0===this.ends.length)return{tokens:this.tokens,index:r};return this.closeIndentation(),(i=this.ends.pop())&&this.error("missing "+i.tag,i.origin[2]),t.rewrite===!1?this.tokens:(new P).rewrite(this.tokens)},e.prototype.clean=function(e){return e.charCodeAt(0)===t&&(e=e.slice(1)),e=e.replace(/\r/g,"").replace(z,""),et.test(e)&&(e="\n"+e,this.chunkLine--),this.literate&&(e=it(e)),e},e.prototype.identifierToken=function(){var e,t,n,i,r,c,h,l,u,p,d,f,m,g,y,b;return(l=v.exec(this.chunk))?(h=l[0],r=l[1],t=l[2],c=r.length,u=void 0,"own"===r&&"FOR"===this.tag()?(this.token("OWN",r),r.length):"from"===r&&"YIELD"===this.tag()?(this.token("FROM",r),r.length):(d=this.tokens,p=d[d.length-1],i=t||null!=p&&("."===(f=p[0])||"?."===f||"::"===f||"?::"===f||!p.spaced&&"@"===p[0]),y="IDENTIFIER",!i&&(ut.call(E,r)>=0||ut.call(a,r)>=0)&&(y=r.toUpperCase(),"WHEN"===y&&(m=this.tag(),ut.call(N,m)>=0)?y="LEADING_WHEN":"FOR"===y?this.seenFor=!0:"UNLESS"===y?y="IF":ut.call(J,y)>=0?y="UNARY":ut.call(B,y)>=0&&("INSTANCEOF"!==y&&this.seenFor?(y="FOR"+y,this.seenFor=!1):(y="RELATION","!"===this.value()&&(u=this.tokens.pop(),r="!"+r)))),ut.call(C,r)>=0&&(i?(y="IDENTIFIER",r=new String(r),r.reserved=!0):ut.call(V,r)>=0&&this.error("reserved word '"+r+"'",{length:r.length})),i||(ut.call(s,r)>=0&&(e=r,r=o[r]),y=function(){switch(r){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"&&":case"||":return"LOGIC";case"true":case"false":return"BOOL";case"break":case"continue":return"STATEMENT";default:return y}}()),b=this.token(y,r,0,c),e&&(b.origin=[y,e,b[2]]),b.variable=!i,u&&(g=[u[2].first_line,u[2].first_column],b[2].first_line=g[0],b[2].first_column=g[1]),t&&(n=h.lastIndexOf(":"),this.token(":",":",n,t.length)),h.length)):0},e.prototype.numberToken=function(){var e,t,n,i,r;return(n=I.exec(this.chunk))?(i=n[0],t=i.length,/^0[BOX]/.test(i)?this.error("radix prefix in '"+i+"' must be lowercase",{offset:1}):/E/.test(i)&&!/^0x/.test(i)?this.error("exponential notation in '"+i+"' must be indicated with a lowercase 'e'",{offset:i.indexOf("E")}):/^0\d*[89]/.test(i)?this.error("decimal literal '"+i+"' must not be prefixed with '0'",{length:t}):/^0\d+/.test(i)&&this.error("octal literal '"+i+"' must be prefixed with '0o'",{length:t}),(r=/^0o([0-7]+)/.exec(i))&&(i="0x"+parseInt(r[1],8).toString(16)),(e=/^0b([01]+)/.exec(i))&&(i="0x"+parseInt(e[1],2).toString(16)),this.token("NUMBER",i,0,t),t):0},e.prototype.stringToken=function(){var e,t,n,i,r,s,o,a,c,h,l,u,m,g,v,y;if(l=(Y.exec(this.chunk)||[])[0],!l)return 0;if(g=function(){switch(l){case"'":return W;case'"':return q;case"'''":return f;case'"""':return p}}(),s=3===l.length,u=this.matchWithInterpolations(g,l),y=u.tokens,r=u.index,e=y.length-1,n=l.charAt(0),s){for(a=null,i=function(){var e,t,n;for(n=[],o=e=0,t=y.length;t>e;o=++e)v=y[o],"NEOSTRING"===v[0]&&n.push(v[1]);return n}().join("#{}");h=d.exec(i);)t=h[1],(null===a||(m=t.length)>0&&a.length>m)&&(a=t);a&&(c=RegExp("^"+a,"gm")),this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),0===i&&(n=n.replace(F,"")),i===e&&(n=n.replace(K,"")),c&&(n=n.replace(c,"")),n}}(this))}else this.mergeInterpolationTokens(y,{delimiter:n},function(t){return function(n,i){return n=t.formatString(n),n=n.replace(G,function(t,r){return 0===i&&0===r||i===e&&r+t.length===n.length?"":" "})}}(this));return r},e.prototype.commentToken=function(){var e,t,n;return(n=this.chunk.match(c))?(e=n[0],t=n[1],t&&((n=u.exec(e))&&this.error("block comments cannot contain "+n[0],{offset:n.index,length:n[0].length}),t.indexOf("\n")>=0&&(t=t.replace(RegExp("\\n"+ct(" ",this.indent),"g"),"\n")),this.token("HERECOMMENT",t,0,e.length)),e.length):0},e.prototype.jsToken=function(){var e,t;return"`"===this.chunk.charAt(0)&&(e=T.exec(this.chunk))?(this.token("JS",(t=e[0]).slice(1,-1),0,t.length),t.length):0},e.prototype.regexToken=function(){var e,t,n,r,s,o,a,c,h,l,u,p,d;switch(!1){case!(o=M.exec(this.chunk)):this.error("regular expressions cannot begin with "+o[2],{offset:o.index+o[1].length});break;case!(o=this.matchWithInterpolations(m,"///")):d=o.tokens,s=o.index;break;case!(o=$.exec(this.chunk)):if(p=o[0],e=o[1],t=o[2],this.validateEscapes(e,{isRegex:!0,offsetInChunk:1}),s=p.length,h=this.tokens,c=h[h.length-1],c)if(c.spaced&&(l=c[0],ut.call(i,l)>=0)){if(!t||O.test(p))return 0}else if(u=c[0],ut.call(A,u)>=0)return 0;t||this.error("missing / (unclosed regex)");break;default:return 0}switch(r=j.exec(this.chunk.slice(s))[0],n=s+r.length,a=this.makeToken("REGEX",null,0,n),!1){case!!Z.test(r):this.error("invalid regular expression flags "+r,{offset:s,length:r.length});break;case!(p||1===d.length):null==e&&(e=this.formatHeregex(d[0][1])),this.token("REGEX",""+this.makeDelimitedLiteral(e,{delimiter:"/"})+r,0,n,a);break;default:this.token("REGEX_START","(",0,0,a),this.token("IDENTIFIER","RegExp",0,0),this.token("CALL_START","(",0,0),this.mergeInterpolationTokens(d,{delimiter:'"',"double":!0},this.formatHeregex),r&&(this.token(",",",",s,0),this.token("STRING",'"'+r+'"',s,r.length)),this.token(")",")",n,0),this.token("REGEX_END",")",n,0)}return n},e.prototype.lineToken=function(){var e,t,n,i,r;if(!(n=R.exec(this.chunk)))return 0;if(t=n[0],this.seenFor=!1,r=t.length-1-t.lastIndexOf("\n"),i=this.unfinished(),r-this.indebt===this.indent)return i?this.suppressNewlines():this.newlineToken(0),t.length;if(r>this.indent){if(i)return this.indebt=r-this.indent,this.suppressNewlines(),t.length;if(!this.tokens.length)return this.baseIndent=this.indent=r,t.length;e=r-this.indent+this.outdebt,this.token("INDENT",e,t.length-r,r),this.indents.push(e),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.indebt=0,this.indent=r}else this.baseIndent>r?this.error("missing indentation",{offset:t.length}):(this.indebt=0,this.outdentToken(this.indent-r,i,t.length));return t.length},e.prototype.outdentToken=function(e,t,n){var i,r,s,o;for(i=this.indent-e;e>0;)s=this.indents[this.indents.length-1],s?s===this.outdebt?(e-=this.outdebt,this.outdebt=0):this.outdebt>s?(this.outdebt-=s,e-=s):(r=this.indents.pop()+this.outdebt,n&&(o=this.chunk[n],ut.call(y,o)>=0)&&(i-=r-e,e=r),this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",e,0,n),e-=r):e=0;for(r&&(this.outdebt-=e);";"===this.value();)this.tokens.pop();return"TERMINATOR"===this.tag()||t||this.token("TERMINATOR","\n",n,0),this.indent=i,this},e.prototype.whitespaceToken=function(){var e,t,n,i;return(e=et.exec(this.chunk))||(t="\n"===this.chunk.charAt(0))?(i=this.tokens,n=i[i.length-1],n&&(n[e?"spaced":"newLine"]=!0),e?e[0].length:0):0},e.prototype.newlineToken=function(e){for(;";"===this.value();)this.tokens.pop();return"TERMINATOR"!==this.tag()&&this.token("TERMINATOR","\n",e,0),this},e.prototype.suppressNewlines=function(){return"\\"===this.value()&&this.tokens.pop(),this},e.prototype.literalToken=function(){var e,t,n,s,o,a,c,u,p,d;if((e=_.exec(this.chunk))?(d=e[0],r.test(d)&&this.tagParameters()):d=this.chunk.charAt(0),u=d,n=this.tokens,t=n[n.length-1],"="===d&&t&&(!t[1].reserved&&(s=t[1],ut.call(C,s)>=0)&&(t.origin&&(t=t.origin),this.error("reserved word '"+t[1]+"' can't be assigned",t[2])),"||"===(o=t[1])||"&&"===o))return t[0]="COMPOUND_ASSIGN",t[1]+="=",d.length;if(";"===d)this.seenFor=!1,u="TERMINATOR";else if(ut.call(D,d)>=0)u="MATH";else if(ut.call(h,d)>=0)u="COMPARE";else if(ut.call(l,d)>=0)u="COMPOUND_ASSIGN";else if(ut.call(J,d)>=0)u="UNARY";else if(ut.call(Q,d)>=0)u="UNARY_MATH";else if(ut.call(U,d)>=0)u="SHIFT";else if(ut.call(x,d)>=0||"?"===d&&(null!=t?t.spaced:void 0))u="LOGIC";else if(t&&!t.spaced)if("("===d&&(a=t[0],ut.call(i,a)>=0))"?"===t[0]&&(t[0]="FUNC_EXIST"),u="CALL_START";else if("["===d&&(c=t[0],ut.call(b,c)>=0))switch(u="INDEX_START",t[0]){case"?":t[0]="INDEX_SOAK"}switch(p=this.makeToken(u,d),d){case"(":case"{":case"[":this.ends.push({tag:w[d],origin:p});break;case")":case"}":case"]":this.pair(d)}return this.tokens.push(p),d.length},e.prototype.tagParameters=function(){var e,t,n,i;if(")"!==this.tag())return this;for(t=[],i=this.tokens,e=i.length,i[--e][0]="PARAM_END";n=i[--e];)switch(n[0]){case")":t.push(n);break;case"(":case"CALL_START":if(!t.length)return"("===n[0]?(n[0]="PARAM_START",this):this;t.pop()}return this},e.prototype.closeIndentation=function(){return this.outdentToken(this.indent)},e.prototype.matchWithInterpolations=function(t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;if(v=[],l=n.length,this.chunk.slice(0,l)!==n)return null;for(m=this.chunk.slice(l);;){if(g=t.exec(m)[0],this.validateEscapes(g,{isRegex:"/"===n.charAt(0),offsetInChunk:l}),v.push(this.makeToken("NEOSTRING",g,l)),m=m.slice(g.length),l+=g.length,"#{"!==m.slice(0,2))break;p=this.getLineAndColumnFromChunk(l+1),c=p[0],r=p[1],d=(new e).tokenize(m.slice(1),{line:c,column:r,untilBalanced:!0}),h=d.tokens,o=d.index,o+=1,u=h[0],i=h[h.length-1],u[0]=u[1]="(",i[0]=i[1]=")",i.origin=["","end of interpolation",i[2]],"TERMINATOR"===(null!=(f=h[1])?f[0]:void 0)&&h.splice(1,1),v.push(["TOKENS",h]),m=m.slice(o),l+=o}return m.slice(0,n.length)!==n&&this.error("missing "+n,{length:n.length}),s=v[0],a=v[v.length-1],s[2].first_column-=n.length,a[2].last_column+=n.length,0===a[1].length&&(a[2].last_column-=1),{tokens:v,index:l+n.length}},e.prototype.mergeInterpolationTokens=function(e,t,n){var i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y;for(e.length>1&&(u=this.token("STRING_START","(",0,0)),s=this.tokens.length,o=a=0,h=e.length;h>a;o=++a){switch(g=e[o],m=g[0],y=g[1],m){case"TOKENS":if(2===y.length)continue;l=y[0],v=y;break;case"NEOSTRING":if(i=n(g[1],o),0===i.length){if(0!==o)continue;r=this.tokens.length}2===o&&null!=r&&this.tokens.splice(r,2),g[0]="STRING",g[1]=this.makeDelimitedLiteral(i,t),l=g,v=[g]}this.tokens.length>s&&(p=this.token("+","+"),p[2]={first_line:l[2].first_line,first_column:l[2].first_column,last_line:l[2].first_line,last_column:l[2].first_column}),(d=this.tokens).push.apply(d,v)}return u?(c=e[e.length-1],u.origin=["STRING",null,{first_line:u[2].first_line,first_column:u[2].first_column,last_line:c[2].last_line,last_column:c[2].last_column}],f=this.token("STRING_END",")"),f[2]={first_line:c[2].last_line,first_column:c[2].last_column,last_line:c[2].last_line,last_column:c[2].last_column}):void 0},e.prototype.pair=function(e){var t,n,i,r,s;return i=this.ends,n=i[i.length-1],e!==(s=null!=n?n.tag:void 0)?("OUTDENT"!==s&&this.error("unmatched "+e),r=this.indents,t=r[r.length-1],this.outdentToken(t,!0),this.pair(e)):this.ends.pop()},e.prototype.getLineAndColumnFromChunk=function(e){var t,n,i,r,s;return 0===e?[this.chunkLine,this.chunkColumn]:(s=e>=this.chunk.length?this.chunk:this.chunk.slice(0,+(e-1)+1||9e9),i=nt(s,"\n"),t=this.chunkColumn,i>0?(r=s.split("\n"),n=r[r.length-1],t=n.length):t+=s.length,[this.chunkLine+i,t])},e.prototype.makeToken=function(e,t,n,i){var r,s,o,a,c;return null==n&&(n=0),null==i&&(i=t.length),s={},o=this.getLineAndColumnFromChunk(n),s.first_line=o[0],s.first_column=o[1],r=Math.max(0,i-1),a=this.getLineAndColumnFromChunk(n+r),s.last_line=a[0],s.last_column=a[1],c=[e,t,s]},e.prototype.token=function(e,t,n,i,r){var s;return s=this.makeToken(e,t,n,i),r&&(s.origin=r),this.tokens.push(s),s},e.prototype.tag=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[0]:void 0},e.prototype.value=function(){var e,t;return e=this.tokens,t=e[e.length-1],null!=t?t[1]:void 0},e.prototype.unfinished=function(){var e;return L.test(this.chunk)||"\\"===(e=this.tag())||"."===e||"?."===e||"?::"===e||"UNARY"===e||"MATH"===e||"UNARY_MATH"===e||"+"===e||"-"===e||"YIELD"===e||"**"===e||"SHIFT"===e||"RELATION"===e||"COMPARE"===e||"LOGIC"===e||"THROW"===e||"EXTENDS"===e},e.prototype.formatString=function(e){return e.replace(X,"$1")},e.prototype.formatHeregex=function(e){return e.replace(g,"$1$2")},e.prototype.validateEscapes=function(e,t){var n,i,r,s,o,a,c,h;return null==t&&(t={}),s=k.exec(e),!s||(s[0],n=s[1],a=s[2],i=s[3],h=s[4],t.isRegex&&a&&"0"!==a.charAt(0))?void 0:(o=a?"octal escape sequences are not allowed":"invalid escape sequence",r="\\"+(a||i||h),this.error(o+" "+r,{offset:(null!=(c=t.offsetInChunk)?c:0)+s.index+n.length,length:r.length}))},e.prototype.makeDelimitedLiteral=function(e,t){var n;return null==t&&(t={}),""===e&&"/"===t.delimiter&&(e="(?:)"),n=RegExp("(\\\\\\\\)|(\\\\0(?=[1-7]))|\\\\?("+t.delimiter+")|\\\\?(?:(\\n)|(\\r)|(\\u2028)|(\\u2029))|(\\\\.)","g"),e=e.replace(n,function(e,n,i,r,s,o,a,c,h){switch(!1){case!n:return t.double?n+n:n;case!i:return"\\x00";case!r:return"\\"+r;case!s:return"\\n";case!o:return"\\r";case!a:return"\\u2028";case!c:return"\\u2029";case!h:return t.double?"\\"+h:h}}),""+t.delimiter+e+t.delimiter},e.prototype.error=function(e,t){var n,i,r,s,o,a;return null==t&&(t={}),r="first_line"in t?t:(o=this.getLineAndColumnFromChunk(null!=(s=t.offset)?s:0),i=o[0],n=o[1],o,{first_line:i,first_column:n,last_column:n+(null!=(a=t.length)?a:1)-1}),lt(e,r)},e}(),E=["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","if","else","switch","for","while","do","try","catch","finally","class","extends","super"],a=["undefined","then","unless","until","loop","of","by","when"],o={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},s=function(){var e;e=[];for(rt in o)e.push(rt);return e}(),a=a.concat(s),V=["case","default","function","var","void","with","const","let","enum","export","import","native","implements","interface","package","private","protected","public","static"],H=["arguments","eval","yield*"],C=E.concat(V).concat(H),e.RESERVED=V.concat(E).concat(a).concat(H),e.STRICT_PROSCRIBED=H,t=65279,v=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+)([^\n\S]*:(?!:))?/,I=/^0b[01]+|^0o[0-7]+|^0x[\da-f]+|^\d*\.?\d+(?:e[+-]?\d+)?/i,_=/^(?:[-=]>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/,et=/^[^\n\S]+/,c=/^###([^#][\s\S]*?)(?:###[^\n\S]*|###$)|^(?:\s*#(?!##[^#]).*)+/,r=/^[-=]>/,R=/^(?:\n[^\n\S]*)+/,T=/^`[^\\`]*(?:\\.[^\\`]*)*`/,Y=/^(?:'''|"""|'|")/,W=/^(?:[^\\']|\\[\s\S])*/,q=/^(?:[^\\"#]|\\[\s\S]|\#(?!\{))*/,f=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,p=/^(?:[^\\"#]|\\[\s\S]|"(?!"")|\#(?!\{))*/,X=/((?:\\\\)+)|\\[^\S\n]*\n\s*/g,G=/\s*\n\s*/g,d=/\n+([^\n\S]*)(?=\S)/g,$=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,j=/^\w*/,Z=/^(?!.*(.).*\1)[imgy]*$/,m=/^(?:[^\\\/#]|\\[\s\S]|\/(?!\/\/)|\#(?!\{))*/,g=/((?:\\\\)+)|\\(\s)|\s+(?:#.*)?/g,M=/^(\/|\/{3}\s*)(\*)/,O=/^\/=?\s/,u=/\*\//,L=/^\s*(?:,|\??\.(?![.\d])|::)/,k=/((?:^|[^\\])(?:\\\\)*)\\(?:(0[0-7]|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u(?![\da-fA-F]{4}).{0,4}))/,F=/^[^\n\S]*\n/,K=/\n[^\n\S]*$/,z=/\s+$/,l=["-=","+=","/=","*=","%=","||=","&&=","?=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="],J=["NEW","TYPEOF","DELETE","DO"],Q=["!","~"],x=["&&","||","&","|","^"],U=["<<",">>",">>>"],h=["==","!=","<",">","<=",">="],D=["*","/","%","//","%%"],B=["IN","OF","INSTANCEOF"],n=["TRUE","FALSE"],i=["IDENTIFIER",")","]","?","@","THIS","SUPER"],b=i.concat(["NUMBER","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::"]),A=b.concat(["++","--"]),N=["INDENT","OUTDENT","TERMINATOR"],y=[")","}","]"]}.call(this),t.exports}(),_dereq_["./parser"]=function(){var e={},t={exports:e},n=function(){function e(){this.yy={}}var t=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},n=[1,20],i=[1,75],r=[1,71],s=[1,76],o=[1,77],a=[1,73],c=[1,74],h=[1,50],l=[1,52],u=[1,53],p=[1,54],d=[1,55],f=[1,45],m=[1,46],g=[1,27],v=[1,60],y=[1,61],b=[1,70],k=[1,43],w=[1,26],T=[1,58],C=[1,59],E=[1,57],F=[1,38],N=[1,44],L=[1,56],x=[1,65],S=[1,66],D=[1,67],R=[1,68],A=[1,42],I=[1,64],_=[1,29],O=[1,30],$=[1,31],j=[1,32],M=[1,33],B=[1,34],V=[1,35],P=[1,78],U=[1,6,26,34,108],G=[1,88],H=[1,81],q=[1,80],X=[1,79],W=[1,82],Y=[1,83],K=[1,84],z=[1,85],J=[1,86],Q=[1,87],Z=[1,91],et=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],tt=[1,97],nt=[1,98],it=[1,99],rt=[1,100],st=[1,102],ot=[1,103],at=[1,96],ct=[2,112],ht=[1,6,25,26,34,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],lt=[2,79],ut=[1,108],pt=[2,58],dt=[1,112],ft=[1,117],mt=[1,118],gt=[1,120],vt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],yt=[2,76],bt=[1,6,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],kt=[1,155],wt=[1,157],Tt=[1,152],Ct=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,132,135,136,139,140,141,142,143,144,145,146,147,148],Et=[2,95],Ft=[1,6,25,26,34,49,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Nt=[1,6,25,26,34,46,49,55,60,63,72,73,74,75,77,79,80,84,86,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,139,140,141,142,143,144,145,146,147,148],Lt=[1,206],xt=[1,205],St=[1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],Dt=[2,56],Rt=[1,216],At=[6,25,26,55,60],It=[6,25,26,46,55,60,63],_t=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,144,145,146,147],Ot=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132],$t=[72,73,74,75,77,80,90,91],jt=[1,235],Mt=[2,133],Bt=[1,6,25,26,34,46,55,60,63,72,73,74,75,77,79,80,84,90,91,92,97,99,108,110,111,112,116,117,123,124,132,135,136,141,142,143,144,145,146,147],Vt=[1,244],Pt=[6,25,26,60,92,97],Ut=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,117,132],Gt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,111,117,132],Ht=[123,124],qt=[60,123,124],Xt=[1,255],Wt=[6,25,26,60,84],Yt=[6,25,26,49,60,84],Kt=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,144,145,146,147],zt=[11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,79,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt=[2,122],Qt=[6,25,26],Zt=[2,57],en=[1,268],tn=[1,269],nn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,105,108,110,111,112,116,117,127,129,132,135,136,141,142,143,144,145,146,147],rn=[26,127,129],sn=[1,6,26,34,55,60,63,79,84,92,97,99,108,111,117,132],on=[2,71],an=[1,291],cn=[1,292],hn=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,127,132,135,136,141,142,143,144,145,146,147],ln=[1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,117,132],un=[1,303],pn=[1,304],dn=[6,25,26,60],fn=[1,6,25,26,34,55,60,63,79,84,92,97,99,104,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],mn=[25,60],gn={trace:function(){},yy:{},symbols_:{error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,Statement:8,Return:9,Comment:10,STATEMENT:11,Value:12,Invocation:13,Code:14,Operation:15,Assign:16,If:17,Try:18,While:19,For:20,Switch:21,Class:22,Throw:23,Block:24,INDENT:25,OUTDENT:26,Identifier:27,IDENTIFIER:28,AlphaNumeric:29,NUMBER:30,String:31,STRING:32,STRING_START:33,STRING_END:34,Regex:35,REGEX:36,REGEX_START:37,REGEX_END:38,Literal:39,JS:40,DEBUGGER:41,UNDEFINED:42,NULL:43,BOOL:44,Assignable:45,"=":46,AssignObj:47,ObjAssignable:48,":":49,ThisProperty:50,RETURN:51,HERECOMMENT:52,PARAM_START:53,ParamList:54,PARAM_END:55,FuncGlyph:56,"->":57,"=>":58,OptComma:59,",":60,Param:61,ParamVar:62,"...":63,Array:64,Object:65,Splat:66,SimpleAssignable:67,Accessor:68,Parenthetical:69,Range:70,This:71,".":72,"?.":73,"::":74,"?::":75,Index:76,INDEX_START:77,IndexValue:78,INDEX_END:79,INDEX_SOAK:80,Slice:81,"{":82,AssignList:83,"}":84,CLASS:85,EXTENDS:86,OptFuncExist:87,Arguments:88,SUPER:89,FUNC_EXIST:90,CALL_START:91,CALL_END:92,ArgList:93,THIS:94,"@":95,"[":96,"]":97,RangeDots:98,"..":99,Arg:100,SimpleArgs:101,TRY:102,Catch:103,FINALLY:104,CATCH:105,THROW:106,"(":107,")":108,WhileSource:109,WHILE:110,WHEN:111,UNTIL:112,Loop:113,LOOP:114,ForBody:115,FOR:116,BY:117,ForStart:118,ForSource:119,ForVariables:120,OWN:121,ForValue:122,FORIN:123,FOROF:124,SWITCH:125,Whens:126,ELSE:127,When:128,LEADING_WHEN:129,IfBlock:130,IF:131,POST_IF:132,UNARY:133,UNARY_MATH:134,"-":135,"+":136,YIELD:137,FROM:138,"--":139,"++":140,"?":141,MATH:142,"**":143,SHIFT:144,COMPARE:145,LOGIC:146,RELATION:147,COMPOUND_ASSIGN:148,$accept:0,$end:1},terminals_:{2:"error",6:"TERMINATOR",11:"STATEMENT",25:"INDENT",26:"OUTDENT",28:"IDENTIFIER",30:"NUMBER",32:"STRING",33:"STRING_START",34:"STRING_END",36:"REGEX",37:"REGEX_START",38:"REGEX_END",40:"JS",41:"DEBUGGER",42:"UNDEFINED",43:"NULL",44:"BOOL",46:"=",49:":",51:"RETURN",52:"HERECOMMENT",53:"PARAM_START",55:"PARAM_END",57:"->",58:"=>",60:",",63:"...",72:".",73:"?.",74:"::",75:"?::",77:"INDEX_START",79:"INDEX_END",80:"INDEX_SOAK",82:"{",84:"}",85:"CLASS",86:"EXTENDS",89:"SUPER",90:"FUNC_EXIST",91:"CALL_START",92:"CALL_END",94:"THIS",95:"@",96:"[",97:"]",99:"..",102:"TRY",104:"FINALLY",105:"CATCH",106:"THROW",107:"(",108:")",110:"WHILE",111:"WHEN",112:"UNTIL",114:"LOOP",116:"FOR",117:"BY",121:"OWN",123:"FORIN",124:"FOROF",125:"SWITCH",127:"ELSE",129:"LEADING_WHEN",131:"IF",132:"POST_IF",133:"UNARY",134:"UNARY_MATH",135:"-",136:"+",137:"YIELD",138:"FROM",139:"--",140:"++",141:"?",142:"MATH",143:"**",144:"SHIFT",145:"COMPARE",146:"LOGIC",147:"RELATION",148:"COMPOUND_ASSIGN"},productions_:[0,[3,0],[3,1],[4,1],[4,3],[4,2],[5,1],[5,1],[8,1],[8,1],[8,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[24,2],[24,3],[27,1],[29,1],[29,1],[31,1],[31,3],[35,1],[35,3],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[39,1],[16,3],[16,4],[16,5],[47,1],[47,3],[47,5],[47,1],[48,1],[48,1],[48,1],[9,2],[9,1],[10,1],[14,5],[14,2],[56,1],[56,1],[59,0],[59,1],[54,0],[54,1],[54,3],[54,4],[54,6],[61,1],[61,2],[61,3],[61,1],[62,1],[62,1],[62,1],[62,1],[66,2],[67,1],[67,2],[67,2],[67,1],[45,1],[45,1],[45,1],[12,1],[12,1],[12,1],[12,1],[12,1],[68,2],[68,2],[68,2],[68,2],[68,1],[68,1],[76,3],[76,2],[78,1],[78,1],[65,4],[83,0],[83,1],[83,3],[83,4],[83,6],[22,1],[22,2],[22,3],[22,4],[22,2],[22,3],[22,4],[22,5],[13,3],[13,3],[13,1],[13,2],[87,0],[87,1],[88,2],[88,4],[71,1],[71,1],[50,2],[64,2],[64,4],[98,1],[98,1],[70,5],[81,3],[81,2],[81,2],[81,1],[93,1],[93,3],[93,4],[93,4],[93,6],[100,1],[100,1],[100,1],[101,1],[101,3],[18,2],[18,3],[18,4],[18,5],[103,3],[103,3],[103,2],[23,2],[69,3],[69,5],[109,2],[109,4],[109,2],[109,4],[19,2],[19,2],[19,2],[19,1],[113,2],[113,2],[20,2],[20,2],[20,2],[115,2],[115,4],[115,2],[118,2],[118,3],[122,1],[122,1],[122,1],[122,1],[120,1],[120,3],[119,2],[119,2],[119,4],[119,4],[119,4],[119,6],[119,6],[21,5],[21,7],[21,4],[21,6],[126,1],[126,2],[128,3],[128,4],[130,3],[130,5],[17,1],[17,3],[17,3],[17,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,2],[15,2],[15,2],[15,2],[15,2],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,3],[15,5],[15,4],[15,3]],performAction:function(e,t,n,i,r,s,o){var a=s.length-1; +switch(r){case 1:return this.$=i.addLocationDataFn(o[a],o[a])(new i.Block);case 2:return this.$=s[a];case 3:this.$=i.addLocationDataFn(o[a],o[a])(i.Block.wrap([s[a]]));break;case 4:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].push(s[a]));break;case 5:this.$=s[a-1];break;case 6:case 7:case 8:case 9:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 27:case 32:case 34:case 45:case 46:case 47:case 48:case 56:case 57:case 67:case 68:case 69:case 70:case 75:case 76:case 79:case 83:case 89:case 133:case 134:case 136:case 166:case 167:case 183:case 189:this.$=s[a];break;case 10:case 25:case 26:case 28:case 30:case 33:case 35:this.$=i.addLocationDataFn(o[a],o[a])(new i.Literal(s[a]));break;case 23:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Block);break;case 24:case 31:case 90:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-1]);break;case 29:case 146:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Parens(s[a-1]));break;case 36:this.$=i.addLocationDataFn(o[a],o[a])(new i.Undefined);break;case 37:this.$=i.addLocationDataFn(o[a],o[a])(new i.Null);break;case 38:this.$=i.addLocationDataFn(o[a],o[a])(new i.Bool(s[a]));break;case 39:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a]));break;case 40:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a]));break;case 41:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1]));break;case 42:case 72:case 77:case 78:case 80:case 81:case 82:case 168:case 169:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(s[a]));break;case 43:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),s[a],"object"));break;case 44:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(i.addLocationDataFn(o[a-4])(new i.Value(s[a-4])),s[a-1],"object"));break;case 49:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Return(s[a]));break;case 50:this.$=i.addLocationDataFn(o[a],o[a])(new i.Return);break;case 51:this.$=i.addLocationDataFn(o[a],o[a])(new i.Comment(s[a]));break;case 52:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Code(s[a-3],s[a],s[a-1]));break;case 53:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Code([],s[a],s[a-1]));break;case 54:this.$=i.addLocationDataFn(o[a],o[a])("func");break;case 55:this.$=i.addLocationDataFn(o[a],o[a])("boundfunc");break;case 58:case 95:this.$=i.addLocationDataFn(o[a],o[a])([]);break;case 59:case 96:case 128:case 170:this.$=i.addLocationDataFn(o[a],o[a])([s[a]]);break;case 60:case 97:case 129:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].concat(s[a]));break;case 61:case 98:case 130:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-3].concat(s[a]));break;case 62:case 99:case 132:this.$=i.addLocationDataFn(o[a-5],o[a])(s[a-5].concat(s[a-2]));break;case 63:this.$=i.addLocationDataFn(o[a],o[a])(new i.Param(s[a]));break;case 64:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Param(s[a-1],null,!0));break;case 65:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Param(s[a-2],s[a]));break;case 66:case 135:this.$=i.addLocationDataFn(o[a],o[a])(new i.Expansion);break;case 71:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Splat(s[a-1]));break;case 73:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].add(s[a]));break;case 74:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(s[a-1],[].concat(s[a])));break;case 84:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a]));break;case 85:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Access(s[a],"soak"));break;case 86:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"))),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 87:this.$=i.addLocationDataFn(o[a-1],o[a])([i.addLocationDataFn(o[a-1])(new i.Access(new i.Literal("prototype"),"soak")),i.addLocationDataFn(o[a])(new i.Access(s[a]))]);break;case 88:this.$=i.addLocationDataFn(o[a],o[a])(new i.Access(new i.Literal("prototype")));break;case 91:this.$=i.addLocationDataFn(o[a-1],o[a])(i.extend(s[a],{soak:!0}));break;case 92:this.$=i.addLocationDataFn(o[a],o[a])(new i.Index(s[a]));break;case 93:this.$=i.addLocationDataFn(o[a],o[a])(new i.Slice(s[a]));break;case 94:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Obj(s[a-2],s[a-3].generated));break;case 100:this.$=i.addLocationDataFn(o[a],o[a])(new i.Class);break;case 101:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(null,null,s[a]));break;case 102:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(null,s[a]));break;case 103:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(null,s[a-1],s[a]));break;case 104:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Class(s[a]));break;case 105:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Class(s[a-1],null,s[a]));break;case 106:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Class(s[a-2],s[a]));break;case 107:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Class(s[a-3],s[a-1],s[a]));break;case 108:case 109:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Call(s[a-2],s[a],s[a-1]));break;case 110:this.$=i.addLocationDataFn(o[a],o[a])(new i.Call("super",[new i.Splat(new i.Literal("arguments"))]));break;case 111:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Call("super",s[a]));break;case 112:this.$=i.addLocationDataFn(o[a],o[a])(!1);break;case 113:this.$=i.addLocationDataFn(o[a],o[a])(!0);break;case 114:this.$=i.addLocationDataFn(o[a-1],o[a])([]);break;case 115:case 131:this.$=i.addLocationDataFn(o[a-3],o[a])(s[a-2]);break;case 116:case 117:this.$=i.addLocationDataFn(o[a],o[a])(new i.Value(new i.Literal("this")));break;case 118:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Value(i.addLocationDataFn(o[a-1])(new i.Literal("this")),[i.addLocationDataFn(o[a])(new i.Access(s[a]))],"this"));break;case 119:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Arr([]));break;case 120:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Arr(s[a-2]));break;case 121:this.$=i.addLocationDataFn(o[a],o[a])("inclusive");break;case 122:this.$=i.addLocationDataFn(o[a],o[a])("exclusive");break;case 123:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Range(s[a-3],s[a-1],s[a-2]));break;case 124:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Range(s[a-2],s[a],s[a-1]));break;case 125:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(s[a-1],null,s[a]));break;case 126:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Range(null,s[a],s[a-1]));break;case 127:this.$=i.addLocationDataFn(o[a],o[a])(new i.Range(null,null,s[a]));break;case 137:this.$=i.addLocationDataFn(o[a-2],o[a])([].concat(s[a-2],s[a]));break;case 138:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Try(s[a]));break;case 139:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Try(s[a-1],s[a][0],s[a][1]));break;case 140:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Try(s[a-2],null,null,s[a]));break;case 141:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Try(s[a-3],s[a-2][0],s[a-2][1],s[a]));break;case 142:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-1],s[a]]);break;case 143:this.$=i.addLocationDataFn(o[a-2],o[a])([i.addLocationDataFn(o[a-1])(new i.Value(s[a-1])),s[a]]);break;case 144:this.$=i.addLocationDataFn(o[a-1],o[a])([null,s[a]]);break;case 145:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Throw(s[a]));break;case 147:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Parens(s[a-2]));break;case 148:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a]));break;case 149:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{guard:s[a]}));break;case 150:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(s[a],{invert:!0}));break;case 151:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.While(s[a-2],{invert:!0,guard:s[a]}));break;case 152:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].addBody(s[a]));break;case 153:case 154:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a].addBody(i.addLocationDataFn(o[a-1])(i.Block.wrap([s[a-1]]))));break;case 155:this.$=i.addLocationDataFn(o[a],o[a])(s[a]);break;case 156:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(s[a]));break;case 157:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.While(i.addLocationDataFn(o[a-1])(new i.Literal("true"))).addBody(i.addLocationDataFn(o[a])(i.Block.wrap([s[a]]))));break;case 158:case 159:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a-1],s[a]));break;case 160:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.For(s[a],s[a-1]));break;case 161:this.$=i.addLocationDataFn(o[a-1],o[a])({source:i.addLocationDataFn(o[a])(new i.Value(s[a]))});break;case 162:this.$=i.addLocationDataFn(o[a-3],o[a])({source:i.addLocationDataFn(o[a-2])(new i.Value(s[a-2])),step:s[a]});break;case 163:this.$=i.addLocationDataFn(o[a-1],o[a])(function(){return s[a].own=s[a-1].own,s[a].name=s[a-1][0],s[a].index=s[a-1][1],s[a]}());break;case 164:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a]);break;case 165:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return s[a].own=!0,s[a]}());break;case 171:this.$=i.addLocationDataFn(o[a-2],o[a])([s[a-2],s[a]]);break;case 172:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a]});break;case 173:this.$=i.addLocationDataFn(o[a-1],o[a])({source:s[a],object:!0});break;case 174:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a]});break;case 175:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],guard:s[a],object:!0});break;case 176:this.$=i.addLocationDataFn(o[a-3],o[a])({source:s[a-2],step:s[a]});break;case 177:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],guard:s[a-2],step:s[a]});break;case 178:this.$=i.addLocationDataFn(o[a-5],o[a])({source:s[a-4],step:s[a-2],guard:s[a]});break;case 179:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Switch(s[a-3],s[a-1]));break;case 180:this.$=i.addLocationDataFn(o[a-6],o[a])(new i.Switch(s[a-5],s[a-3],s[a-1]));break;case 181:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Switch(null,s[a-1]));break;case 182:this.$=i.addLocationDataFn(o[a-5],o[a])(new i.Switch(null,s[a-3],s[a-1]));break;case 184:this.$=i.addLocationDataFn(o[a-1],o[a])(s[a-1].concat(s[a]));break;case 185:this.$=i.addLocationDataFn(o[a-2],o[a])([[s[a-1],s[a]]]);break;case 186:this.$=i.addLocationDataFn(o[a-3],o[a])([[s[a-2],s[a-1]]]);break;case 187:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}));break;case 188:this.$=i.addLocationDataFn(o[a-4],o[a])(s[a-4].addElse(i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a-1],s[a],{type:s[a-2]}))));break;case 190:this.$=i.addLocationDataFn(o[a-2],o[a])(s[a-2].addElse(s[a]));break;case 191:case 192:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.If(s[a],i.addLocationDataFn(o[a-2])(i.Block.wrap([s[a-2]])),{type:s[a-1],statement:!0}));break;case 193:case 194:case 197:case 198:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op(s[a-1],s[a]));break;case 195:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("-",s[a]));break;case 196:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("+",s[a]));break;case 199:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-2].concat(s[a-1]),s[a]));break;case 200:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a]));break;case 201:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a]));break;case 202:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("--",s[a-1],null,!0));break;case 203:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Op("++",s[a-1],null,!0));break;case 204:this.$=i.addLocationDataFn(o[a-1],o[a])(new i.Existence(s[a-1]));break;case 205:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("+",s[a-2],s[a]));break;case 206:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op("-",s[a-2],s[a]));break;case 207:case 208:case 209:case 210:case 211:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Op(s[a-1],s[a-2],s[a]));break;case 212:this.$=i.addLocationDataFn(o[a-2],o[a])(function(){return"!"===s[a-1].charAt(0)?new i.Op(s[a-1].slice(1),s[a-2],s[a]).invert():new i.Op(s[a-1],s[a-2],s[a])}());break;case 213:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Assign(s[a-2],s[a],s[a-1]));break;case 214:this.$=i.addLocationDataFn(o[a-4],o[a])(new i.Assign(s[a-4],s[a-1],s[a-3]));break;case 215:this.$=i.addLocationDataFn(o[a-3],o[a])(new i.Assign(s[a-3],s[a],s[a-2]));break;case 216:this.$=i.addLocationDataFn(o[a-2],o[a])(new i.Extends(s[a-2],s[a]))}},table:[{1:[2,1],3:1,4:2,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{1:[3]},{1:[2,2],6:P},t(U,[2,3]),t(U,[2,6],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(U,[2,7],{118:69,109:92,115:93,110:x,112:S,116:R,132:Z}),t(et,[2,11],{87:94,68:95,76:101,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,12],{76:101,87:104,68:105,72:tt,73:nt,74:it,75:rt,77:st,80:ot,90:at,91:ct}),t(et,[2,13]),t(et,[2,14]),t(et,[2,15]),t(et,[2,16]),t(et,[2,17]),t(et,[2,18]),t(et,[2,19]),t(et,[2,20]),t(et,[2,21]),t(et,[2,22]),t(et,[2,8]),t(et,[2,9]),t(et,[2,10]),t(ht,lt,{46:[1,106]}),t(ht,[2,80]),t(ht,[2,81]),t(ht,[2,82]),t(ht,[2,83]),t([1,6,25,26,34,38,55,60,63,72,73,74,75,77,79,80,84,90,92,97,99,108,110,111,112,116,117,132,135,136,141,142,143,144,145,146,147],[2,110],{88:107,91:ut}),t([6,25,55,60],pt,{54:109,61:110,62:111,27:113,50:114,64:115,65:116,28:i,63:dt,82:b,95:ft,96:mt}),{24:119,25:gt},{7:121,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:123,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:124,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:125,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:127,8:126,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,138:[1,128],139:B,140:V},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:129,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},{12:130,13:131,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:133,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(vt,yt,{86:[1,137],139:[1,134],140:[1,135],148:[1,136]}),t(et,[2,189],{127:[1,138]}),{24:139,25:gt},{24:140,25:gt},t(et,[2,155]),{24:141,25:gt},{7:142,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,143],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,100],{39:22,69:23,70:24,71:25,64:47,65:48,29:49,35:51,27:62,50:63,31:72,12:130,13:131,45:132,24:144,67:146,25:gt,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,82:b,86:[1,145],89:w,94:T,95:C,96:E,107:L}),{7:147,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,141,142,143,144,145,146,147],[2,50],{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,7:148,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,114:D,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,51]),t(vt,[2,77]),t(vt,[2,78]),t(ht,[2,32]),t(ht,[2,33]),t(ht,[2,34]),t(ht,[2,35]),t(ht,[2,36]),t(ht,[2,37]),t(ht,[2,38]),{4:149,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,150],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:151,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,116]),t(ht,[2,117],{27:158,28:i}),{25:[2,54]},{25:[2,55]},t(Ct,[2,72]),t(Ct,[2,75]),{7:159,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:160,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:161,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:163,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,24:162,25:gt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{27:168,28:i,50:169,64:170,65:171,70:164,82:b,95:ft,96:E,120:165,121:[1,166],122:167},{119:172,123:[1,173],124:[1,174]},t([6,25,60,84],Et,{31:72,83:175,47:176,48:177,10:178,27:179,29:180,50:181,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Ft,[2,26]),t(Ft,[2,27]),t(ht,[2,30]),{12:130,13:182,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:132,50:63,64:47,65:48,67:183,69:23,70:24,71:25,82:b,89:w,94:T,95:C,96:E,107:L},t(Nt,[2,25]),t(Ft,[2,28]),{4:184,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(U,[2,5],{7:4,8:5,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,5:185,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(et,[2,204]),{7:186,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:187,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:188,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:189,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:190,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:191,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:192,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:193,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:194,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,154]),t(et,[2,159]),{7:195,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,153]),t(et,[2,158]),{88:196,91:ut},t(Ct,[2,73]),{91:[2,113]},{27:197,28:i},{27:198,28:i},t(Ct,[2,88],{27:199,28:i}),{27:200,28:i},t(Ct,[2,89]),{7:202,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:Lt,64:47,65:48,67:36,69:23,70:24,71:25,78:201,81:203,82:b,85:k,89:w,94:T,95:C,96:E,98:204,99:xt,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{76:207,77:st,80:ot},{88:208,91:ut},t(Ct,[2,74]),{6:[1,210],7:209,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,211],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,111]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,92:[1,212],93:213,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25],Dt,{59:217,55:[1,215],60:Rt}),t(At,[2,59]),t(At,[2,63],{46:[1,219],63:[1,218]}),t(At,[2,66]),t(It,[2,67]),t(It,[2,68]),t(It,[2,69]),t(It,[2,70]),{27:158,28:i},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:153,94:T,95:C,96:E,97:Tt,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,53]),{4:221,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,26:[1,220],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,135,136,142,143,144,145,146,147],[2,193],{118:69,109:89,115:90,141:X}),{109:92,110:x,112:S,115:93,116:R,118:69,132:Z},t(_t,[2,194],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,195],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,196],{118:69,109:89,115:90,141:X,143:Y}),t(et,[2,197],{118:69,109:92,115:93}),t(Ot,[2,198],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:222,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,200],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),{68:95,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:94,90:at,91:ct},{68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,lt),t(et,[2,201],{72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt}),t(et,[2,202]),t(et,[2,203]),{6:[1,225],7:223,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,224],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:226,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{24:227,25:gt,131:[1,228]},t(et,[2,138],{103:229,104:[1,230],105:[1,231]}),t(et,[2,152]),t(et,[2,160]),{25:[1,232],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{126:233,128:234,129:jt},t(et,[2,101]),{7:236,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(bt,[2,104],{24:237,25:gt,72:yt,73:yt,74:yt,75:yt,77:yt,80:yt,90:yt,91:yt,86:[1,238]}),t(Ot,[2,145],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,49],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:P,108:[1,239]},{4:240,5:3,7:4,8:5,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,60,97],Mt,{118:69,109:89,115:90,98:241,63:[1,242],99:xt,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Bt,[2,119]),t([6,25,97],Dt,{59:243,60:Vt}),t(Pt,[2,128]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:245,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,134]),t(Pt,[2,135]),t(Nt,[2,118]),{24:246,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ut,[2,148],{118:69,109:89,115:90,110:x,111:[1,247],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ut,[2,150],{118:69,109:89,115:90,110:x,111:[1,248],112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,156]),t(Gt,[2,157],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132,135,136,141,142,143,144,145,146,147],[2,161],{117:[1,249]}),t(Ht,[2,164]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,120:250,122:167},t(Ht,[2,170],{60:[1,251]}),t(qt,[2,166]),t(qt,[2,167]),t(qt,[2,168]),t(qt,[2,169]),t(et,[2,163]),{7:252,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:253,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([6,25,84],Dt,{59:254,60:Xt}),t(Wt,[2,96]),t(Wt,[2,42],{49:[1,256]}),t(Wt,[2,45]),t(Yt,[2,46]),t(Yt,[2,47]),t(Yt,[2,48]),{38:[1,257],68:105,72:tt,73:nt,74:it,75:rt,76:101,77:st,80:ot,87:104,90:at,91:ct},t($t,yt),{6:P,34:[1,258]},t(U,[2,4]),t(Kt,[2,205],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(Kt,[2,206],{118:69,109:89,115:90,141:X,142:W,143:Y}),t(_t,[2,207],{118:69,109:89,115:90,141:X,143:Y}),t(_t,[2,208],{118:69,109:89,115:90,141:X,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,144,145,146,147],[2,209],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146],[2,210],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,146],[2,211],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,147:Q}),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,117,132,145,146,147],[2,212],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K}),t(Gt,[2,192],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,191],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(St,[2,108]),t(Ct,[2,84]),t(Ct,[2,85]),t(Ct,[2,86]),t(Ct,[2,87]),{79:[1,259]},{63:Lt,79:[2,92],98:260,99:xt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{79:[2,93]},{7:261,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,127],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(zt,[2,121]),t(zt,Jt),t(Ct,[2,91]),t(St,[2,109]),t(Ot,[2,39],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:262,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:263,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(St,[2,114]),t([6,25,92],Dt,{59:264,60:Vt}),t(Pt,Mt,{118:69,109:89,115:90,63:[1,265],110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{56:266,57:v,58:y},t(Qt,Zt,{62:111,27:113,50:114,64:115,65:116,61:267,28:i,63:dt,82:b,95:ft,96:mt}),{6:en,25:tn},t(At,[2,64]),{7:270,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(nn,[2,23]),{6:P,26:[1,271]},t(Ot,[2,199],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,213],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:272,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:273,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ot,[2,216],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,190]),{7:274,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,139],{104:[1,275]}),{24:276,25:gt},{24:279,25:gt,27:277,28:i,65:278,82:b},{126:280,128:234,129:jt},{26:[1,281],127:[1,282],128:283,129:jt},t(rn,[2,183]),{7:285,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,101:284,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(sn,[2,102],{118:69,109:89,115:90,24:286,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,105]),{7:287,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,146]),{6:P,26:[1,288]},{7:289,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t([11,28,30,32,33,36,37,40,41,42,43,44,51,52,53,57,58,82,85,89,94,95,96,102,106,107,110,112,114,116,125,131,133,134,135,136,137,139,140],Jt,{6:on,25:on,60:on,97:on}),{6:an,25:cn,97:[1,290]},t([6,25,26,92,97],Zt,{12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,9:18,10:19,45:21,39:22,69:23,70:24,71:25,56:28,67:36,130:37,109:39,113:40,115:41,64:47,65:48,29:49,35:51,27:62,50:63,118:69,31:72,8:122,66:156,7:214,100:293,11:n,28:i,30:r,32:s,33:o,36:a,37:c,40:h,41:l,42:u,43:p,44:d,51:f,52:m,53:g,57:v,58:y,63:wt,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,110:x,112:S,114:D,116:R,125:A,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V}),t(Qt,Dt,{59:294,60:Vt}),t(hn,[2,187]),{7:295,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:296,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:297,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Ht,[2,165]),{27:168,28:i,50:169,64:170,65:171,82:b,95:ft,96:mt,122:298},t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,112,116,132],[2,172],{118:69,109:89,115:90,111:[1,299],117:[1,300],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,173],{118:69,109:89,115:90,111:[1,301],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:un,25:pn,84:[1,302]},t([6,25,26,84],Zt,{31:72,48:177,10:178,27:179,29:180,50:181,47:305,28:i,30:r,32:s,33:o,52:m,95:ft}),{7:306,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:[1,307],27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(ht,[2,31]),t(Ft,[2,29]),t(Ct,[2,90]),{7:308,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,79:[2,125],82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,126],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,40],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{26:[1,309],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:an,25:cn,92:[1,310]},t(Pt,on),{24:311,25:gt},t(At,[2,60]),{27:113,28:i,50:114,61:312,62:111,63:dt,64:115,65:116,82:b,95:ft,96:mt},t(dn,pt,{61:110,62:111,27:113,50:114,64:115,65:116,54:313,28:i,63:dt,82:b,95:ft,96:mt}),t(At,[2,65],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(nn,[2,24]),{26:[1,314],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Ot,[2,215],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{24:315,25:gt,109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{24:316,25:gt},t(et,[2,140]),{24:317,25:gt},{24:318,25:gt},t(fn,[2,144]),{26:[1,319],127:[1,320],128:283,129:jt},t(et,[2,181]),{24:321,25:gt},t(rn,[2,184]),{24:322,25:gt,60:[1,323]},t(mn,[2,136],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(et,[2,103]),t(sn,[2,106],{118:69,109:89,115:90,24:324,25:gt,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{108:[1,325]},{97:[1,326],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(Bt,[2,120]),{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,100:327,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:214,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,25:kt,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,63:wt,64:47,65:48,66:156,67:36,69:23,70:24,71:25,82:b,85:k,89:w,93:328,94:T,95:C,96:E,100:154,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Pt,[2,129]),{6:an,25:cn,26:[1,329]},t(Gt,[2,149],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,151],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Gt,[2,162],{118:69,109:89,115:90,110:x,112:S,116:R,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ht,[2,171]),{7:330,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:331,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:332,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(Bt,[2,94]),{10:178,27:179,28:i,29:180,30:r,31:72,32:s,33:o,47:333,48:177,50:181,52:m,95:ft},t(dn,Et,{31:72,47:176,48:177,10:178,27:179,29:180,50:181,83:334,28:i,30:r,32:s,33:o,52:m,95:ft}),t(Wt,[2,97]),t(Wt,[2,43],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{7:335,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{79:[2,124],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},t(et,[2,41]),t(St,[2,115]),t(et,[2,52]),t(At,[2,61]),t(Qt,Dt,{59:336,60:Rt}),t(et,[2,214]),t(hn,[2,188]),t(et,[2,141]),t(fn,[2,142]),t(fn,[2,143]),t(et,[2,179]),{24:337,25:gt},{26:[1,338]},t(rn,[2,185],{6:[1,339]}),{7:340,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},t(et,[2,107]),t(ht,[2,147]),t(ht,[2,123]),t(Pt,[2,130]),t(Qt,Dt,{59:341,60:Vt}),t(Pt,[2,131]),t([1,6,25,26,34,55,60,63,79,84,92,97,99,108,110,111,112,116,132],[2,174],{118:69,109:89,115:90,117:[1,342],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(ln,[2,176],{118:69,109:89,115:90,111:[1,343],135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,175],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,98]),t(Qt,Dt,{59:344,60:Xt}),{26:[1,345],109:89,110:x,112:S,115:90,116:R,118:69,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q},{6:en,25:tn,26:[1,346]},{26:[1,347]},t(et,[2,182]),t(rn,[2,186]),t(mn,[2,137],{118:69,109:89,115:90,110:x,112:S,116:R,132:G,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),{6:an,25:cn,26:[1,348]},{7:349,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{7:350,8:122,9:18,10:19,11:n,12:6,13:7,14:8,15:9,16:10,17:11,18:12,19:13,20:14,21:15,22:16,23:17,27:62,28:i,29:49,30:r,31:72,32:s,33:o,35:51,36:a,37:c,39:22,40:h,41:l,42:u,43:p,44:d,45:21,50:63,51:f,52:m,53:g,56:28,57:v,58:y,64:47,65:48,67:36,69:23,70:24,71:25,82:b,85:k,89:w,94:T,95:C,96:E,102:F,106:N,107:L,109:39,110:x,112:S,113:40,114:D,115:41,116:R,118:69,125:A,130:37,131:I,133:_,134:O,135:$,136:j,137:M,139:B,140:V},{6:un,25:pn,26:[1,351]},t(Wt,[2,44]),t(At,[2,62]),t(et,[2,180]),t(Pt,[2,132]),t(Ot,[2,177],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Ot,[2,178],{118:69,109:89,115:90,135:H,136:q,141:X,142:W,143:Y,144:K,145:z,146:J,147:Q}),t(Wt,[2,99])],defaultActions:{60:[2,54],61:[2,55],96:[2,113],203:[2,93]},parseError:function(e,t){if(!t.recoverable)throw Error(e); +this.trace(e)},parse:function(e){function t(){var e;return e=f.lex()||p,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,i=[0],r=[null],s=[],o=this.table,a="",c=0,h=0,l=0,u=2,p=1,d=s.slice.call(arguments,1),f=Object.create(this.lexer),m={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(m.yy[g]=this.yy[g]);f.setInput(e,m.yy),m.yy.lexer=f,m.yy.parser=this,f.yylloc===void 0&&(f.yylloc={});var v=f.yylloc;s.push(v);var y=f.options&&f.options.ranges;this.parseError="function"==typeof m.yy.parseError?m.yy.parseError:Object.getPrototypeOf(this).parseError;for(var b,k,w,T,C,E,F,N,L,x={};;){if(w=i[i.length-1],this.defaultActions[w]?T=this.defaultActions[w]:((null===b||b===void 0)&&(b=t()),T=o[w]&&o[w][b]),T===void 0||!T.length||!T[0]){var S="";L=[];for(E in o[w])this.terminals_[E]&&E>u&&L.push("'"+this.terminals_[E]+"'");S=f.showPosition?"Parse error on line "+(c+1)+":\n"+f.showPosition()+"\nExpecting "+L.join(", ")+", got '"+(this.terminals_[b]||b)+"'":"Parse error on line "+(c+1)+": Unexpected "+(b==p?"end of input":"'"+(this.terminals_[b]||b)+"'"),this.parseError(S,{text:f.match,token:this.terminals_[b]||b,line:f.yylineno,loc:v,expected:L})}if(T[0]instanceof Array&&T.length>1)throw Error("Parse Error: multiple actions possible at state: "+w+", token: "+b);switch(T[0]){case 1:i.push(b),r.push(f.yytext),s.push(f.yylloc),i.push(T[1]),b=null,k?(b=k,k=null):(h=f.yyleng,a=f.yytext,c=f.yylineno,v=f.yylloc,l>0&&l--);break;case 2:if(F=this.productions_[T[1]][1],x.$=r[r.length-F],x._$={first_line:s[s.length-(F||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(F||1)].first_column,last_column:s[s.length-1].last_column},y&&(x._$.range=[s[s.length-(F||1)].range[0],s[s.length-1].range[1]]),C=this.performAction.apply(x,[a,h,c,m.yy,T[1],r,s].concat(d)),C!==void 0)return C;F&&(i=i.slice(0,2*-1*F),r=r.slice(0,-1*F),s=s.slice(0,-1*F)),i.push(this.productions_[T[1]][0]),r.push(x.$),s.push(x._$),N=o[i[i.length-2]][i[i.length-1]],i.push(N);break;case 3:return!0}}return!0}};return e.prototype=gn,gn.Parser=e,new e}();return _dereq_!==void 0&&e!==void 0&&(e.parser=n,e.Parser=n.Parser,e.parse=function(){return n.parse.apply(n,arguments)},e.main=function(t){t[1]||(console.log("Usage: "+t[0]+" FILE"),process.exit(1));var n=_dereq_("fs").readFileSync(_dereq_("path").normalize(t[1]),"utf8");return e.parser.parse(n)},t!==void 0&&_dereq_.main===t&&e.main(process.argv.slice(1))),t.exports}(),_dereq_["./scope"]=function(){var e={},t={exports:e};return function(){var t,n=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e.Scope=t=function(){function e(e,t,n,i){var r,s;this.parent=e,this.expressions=t,this.method=n,this.referencedVars=i,this.variables=[{name:"arguments",type:"arguments"}],this.positions={},this.parent||(this.utilities={}),this.root=null!=(r=null!=(s=this.parent)?s.root:void 0)?r:this}return e.prototype.add=function(e,t,n){return this.shared&&!n?this.parent.add(e,t,n):Object.prototype.hasOwnProperty.call(this.positions,e)?this.variables[this.positions[e]].type=t:this.positions[e]=this.variables.push({name:e,type:t})-1},e.prototype.namedMethod=function(){var e;return(null!=(e=this.method)?e.name:void 0)||!this.parent?this.method:this.parent.namedMethod()},e.prototype.find=function(e){return this.check(e)?!0:(this.add(e,"var"),!1)},e.prototype.parameter=function(e){return this.shared&&this.parent.check(e,!0)?void 0:this.add(e,"param")},e.prototype.check=function(e){var t;return!!(this.type(e)||(null!=(t=this.parent)?t.check(e):void 0))},e.prototype.temporary=function(e,t,n){return null==n&&(n=!1),n?(t+parseInt(e,36)).toString(36).replace(/\d/g,"a"):e+(t||"")},e.prototype.type=function(e){var t,n,i,r;for(i=this.variables,t=0,n=i.length;n>t;t++)if(r=i[t],r.name===e)return r.type;return null},e.prototype.freeVariable=function(e,t){var i,r,s;for(null==t&&(t={}),i=0;;){if(s=this.temporary(e,i,t.single),!(this.check(s)||n.call(this.root.referencedVars,s)>=0))break;i++}return(null!=(r=t.reserve)?r:!0)&&this.add(s,"var",!0),s},e.prototype.assign=function(e,t){return this.add(e,{value:t,assigned:!0},!0),this.hasAssignments=!0},e.prototype.hasDeclarations=function(){return!!this.declaredVariables().length},e.prototype.declaredVariables=function(){var e;return function(){var t,n,i,r;for(i=this.variables,r=[],t=0,n=i.length;n>t;t++)e=i[t],"var"===e.type&&r.push(e.name);return r}.call(this).sort()},e.prototype.assignedVariables=function(){var e,t,n,i,r;for(n=this.variables,i=[],e=0,t=n.length;t>e;e++)r=n[e],r.type.assigned&&i.push(r.name+" = "+r.type.value);return i},e}()}.call(this),t.exports}(),_dereq_["./nodes"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b,k,w,T,C,E,F,N,L,x,S,D,R,A,I,_,O,$,j,M,B,V,P,U,G,H,q,X,W,Y,K,z,J,Q,Z,et,tt,nt,it,rt,st,ot,at,ct,ht,lt,ut,pt,dt,ft,mt,gt,vt,yt,bt,kt=function(e,t){function n(){this.constructor=e}for(var i in t)wt.call(t,i)&&(e[i]=t[i]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},wt={}.hasOwnProperty,Tt=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1},Ct=[].slice;Error.stackTraceLimit=1/0,P=_dereq_("./scope").Scope,dt=_dereq_("./lexer"),$=dt.RESERVED,V=dt.STRICT_PROSCRIBED,ft=_dereq_("./helpers"),et=ft.compact,rt=ft.flatten,it=ft.extend,lt=ft.merge,tt=ft.del,gt=ft.starts,nt=ft.ends,mt=ft.some,Z=ft.addLocationDataFn,ht=ft.locationDataToString,vt=ft.throwSyntaxError,e.extend=it,e.addLocationDataFn=Z,Q=function(){return!0},D=function(){return!1},X=function(){return this},S=function(){return this.negated=!this.negated,this},e.CodeFragment=h=function(){function e(e,t){var n;this.code=""+t,this.locationData=null!=e?e.locationData:void 0,this.type=(null!=e?null!=(n=e.constructor)?n.name:void 0:void 0)||"unknown"}return e.prototype.toString=function(){return""+this.code+(this.locationData?": "+ht(this.locationData):"")},e}(),st=function(e){var t;return function(){var n,i,r;for(r=[],n=0,i=e.length;i>n;n++)t=e[n],r.push(t.code);return r}().join("")},e.Base=r=function(){function e(){}return e.prototype.compile=function(e,t){return st(this.compileToFragments(e,t))},e.prototype.compileToFragments=function(e,t){var n;return e=it({},e),t&&(e.level=t),n=this.unfoldSoak(e)||this,n.tab=e.indent,e.level!==L&&n.isStatement(e)?n.compileClosure(e):n.compileNode(e)},e.prototype.compileClosure=function(e){var n,i,r,a,h,l,u;return(a=this.jumps())&&a.error("cannot use a pure statement in an expression"),e.sharedScope=!0,r=new c([],s.wrap([this])),n=[],((i=this.contains(at))||this.contains(ct))&&(n=[new x("this")],i?(h="apply",n.push(new x("arguments"))):h="call",r=new z(r,[new t(new x(h))])),l=new o(r,n).compileNode(e),(r.isGenerator||(null!=(u=r.base)?u.isGenerator:void 0))&&(l.unshift(this.makeCode("(yield* ")),l.push(this.makeCode(")"))),l},e.prototype.cache=function(e,t,n){var r,s,o;return r=null!=n?n(this):this.isComplex(),r?(s=new x(e.scope.freeVariable("ref")),o=new i(s,this),t?[o.compileToFragments(e,t),[this.makeCode(s.value)]]:[o,s]):(s=t?this.compileToFragments(e,t):this,[s,s])},e.prototype.cacheToCodeFragments=function(e){return[st(e[0]),st(e[1])]},e.prototype.makeReturn=function(e){var t;return t=this.unwrapAll(),e?new o(new x(e+".push"),[t]):new M(t)},e.prototype.contains=function(e){var t;return t=void 0,this.traverseChildren(!1,function(n){return e(n)?(t=n,!1):void 0}),t},e.prototype.lastNonComment=function(e){var t;for(t=e.length;t--;)if(!(e[t]instanceof l))return e[t];return null},e.prototype.toString=function(e,t){var n;return null==e&&(e=""),null==t&&(t=this.constructor.name),n="\n"+e+t,this.soak&&(n+="?"),this.eachChild(function(t){return n+=t.toString(e+q)}),n},e.prototype.eachChild=function(e){var t,n,i,r,s,o,a,c;if(!this.children)return this;for(a=this.children,i=0,s=a.length;s>i;i++)if(t=a[i],this[t])for(c=rt([this[t]]),r=0,o=c.length;o>r;r++)if(n=c[r],e(n)===!1)return this;return this},e.prototype.traverseChildren=function(e,t){return this.eachChild(function(n){var i;return i=t(n),i!==!1?n.traverseChildren(e,t):void 0})},e.prototype.invert=function(){return new I("!",this)},e.prototype.unwrapAll=function(){var e;for(e=this;e!==(e=e.unwrap()););return e},e.prototype.children=[],e.prototype.isStatement=D,e.prototype.jumps=D,e.prototype.isComplex=Q,e.prototype.isChainable=D,e.prototype.isAssignable=D,e.prototype.unwrap=X,e.prototype.unfoldSoak=D,e.prototype.assigns=D,e.prototype.updateLocationDataIfMissing=function(e){return this.locationData?this:(this.locationData=e,this.eachChild(function(t){return t.updateLocationDataIfMissing(e)}))},e.prototype.error=function(e){return vt(e,this.locationData)},e.prototype.makeCode=function(e){return new h(this,e)},e.prototype.wrapInBraces=function(e){return[].concat(this.makeCode("("),e,this.makeCode(")"))},e.prototype.joinFragmentArrays=function(e,t){var n,i,r,s,o;for(n=[],r=s=0,o=e.length;o>s;r=++s)i=e[r],r&&n.push(this.makeCode(t)),n=n.concat(i);return n},e}(),e.Block=s=function(e){function t(e){this.expressions=et(rt(e||[]))}return kt(t,e),t.prototype.children=["expressions"],t.prototype.push=function(e){return this.expressions.push(e),this},t.prototype.pop=function(){return this.expressions.pop()},t.prototype.unshift=function(e){return this.expressions.unshift(e),this},t.prototype.unwrap=function(){return 1===this.expressions.length?this.expressions[0]:this},t.prototype.isEmpty=function(){return!this.expressions.length},t.prototype.isStatement=function(e){var t,n,i,r;for(r=this.expressions,n=0,i=r.length;i>n;n++)if(t=r[n],t.isStatement(e))return!0;return!1},t.prototype.jumps=function(e){var t,n,i,r,s;for(s=this.expressions,n=0,r=s.length;r>n;n++)if(t=s[n],i=t.jumps(e))return i},t.prototype.makeReturn=function(e){var t,n;for(n=this.expressions.length;n--;)if(t=this.expressions[n],!(t instanceof l)){this.expressions[n]=t.makeReturn(e),t instanceof M&&!t.expression&&this.expressions.splice(n,1);break}return this},t.prototype.compileToFragments=function(e,n){return null==e&&(e={}),e.scope?t.__super__.compileToFragments.call(this,e,n):this.compileRoot(e)},t.prototype.compileNode=function(e){var n,i,r,s,o,a,c,h,l;for(this.tab=e.indent,l=e.level===L,i=[],h=this.expressions,s=o=0,a=h.length;a>o;s=++o)c=h[s],c=c.unwrapAll(),c=c.unfoldSoak(e)||c,c instanceof t?i.push(c.compileNode(e)):l?(c.front=!0,r=c.compileToFragments(e),c.isStatement(e)||(r.unshift(this.makeCode(""+this.tab)),r.push(this.makeCode(";"))),i.push(r)):i.push(c.compileToFragments(e,E));return l?this.spaced?[].concat(this.joinFragmentArrays(i,"\n\n"),this.makeCode("\n")):this.joinFragmentArrays(i,"\n"):(n=i.length?this.joinFragmentArrays(i,", "):[this.makeCode("void 0")],i.length>1&&e.level>=E?this.wrapInBraces(n):n)},t.prototype.compileRoot=function(e){var t,n,i,r,s,o,a,c,h,u,p;for(e.indent=e.bare?"":q,e.level=L,this.spaced=!0,e.scope=new P(null,this,null,null!=(h=e.referencedVars)?h:[]),u=e.locals||[],r=0,s=u.length;s>r;r++)o=u[r],e.scope.parameter(o);return a=[],e.bare||(c=function(){var e,n,r,s;for(r=this.expressions,s=[],i=e=0,n=r.length;n>e&&(t=r[i],t.unwrap()instanceof l);i=++e)s.push(t);return s}.call(this),p=this.expressions.slice(c.length),this.expressions=c,c.length&&(a=this.compileNode(lt(e,{indent:""})),a.push(this.makeCode("\n"))),this.expressions=p),n=this.compileWithDeclarations(e),e.bare?n:[].concat(a,this.makeCode("(function() {\n"),n,this.makeCode("\n}).call(this);\n"))},t.prototype.compileWithDeclarations=function(e){var t,n,i,r,s,o,a,c,h,u,p,d,f,m;for(r=[],c=[],h=this.expressions,s=o=0,a=h.length;a>o&&(i=h[s],i=i.unwrap(),i instanceof l||i instanceof x);s=++o);return e=lt(e,{level:L}),s&&(d=this.expressions.splice(s,9e9),u=[this.spaced,!1],m=u[0],this.spaced=u[1],p=[this.compileNode(e),m],r=p[0],this.spaced=p[1],this.expressions=d),c=this.compileNode(e),f=e.scope,f.expressions===this&&(n=e.scope.hasDeclarations(),t=f.hasAssignments,n||t?(s&&r.push(this.makeCode("\n")),r.push(this.makeCode(this.tab+"var ")),n&&r.push(this.makeCode(f.declaredVariables().join(", "))),t&&(n&&r.push(this.makeCode(",\n"+(this.tab+q))),r.push(this.makeCode(f.assignedVariables().join(",\n"+(this.tab+q))))),r.push(this.makeCode(";\n"+(this.spaced?"\n":"")))):r.length&&c.length&&r.push(this.makeCode("\n"))),r.concat(c)},t.wrap=function(e){return 1===e.length&&e[0]instanceof t?e[0]:new t(e)},t}(r),e.Literal=x=function(e){function t(e){this.value=e}return kt(t,e),t.prototype.makeReturn=function(){return this.isStatement()?this:t.__super__.makeReturn.apply(this,arguments)},t.prototype.isAssignable=function(){return g.test(this.value)},t.prototype.isStatement=function(){var e;return"break"===(e=this.value)||"continue"===e||"debugger"===e},t.prototype.isComplex=D,t.prototype.assigns=function(e){return e===this.value},t.prototype.jumps=function(e){return"break"!==this.value||(null!=e?e.loop:void 0)||(null!=e?e.block:void 0)?"continue"!==this.value||(null!=e?e.loop:void 0)?void 0:this:this},t.prototype.compileNode=function(e){var t,n,i;return n="this"===this.value?(null!=(i=e.scope.method)?i.bound:void 0)?e.scope.method.context:this.value:this.value.reserved?'"'+this.value+'"':this.value,t=this.isStatement()?""+this.tab+n+";":n,[this.makeCode(t)]},t.prototype.toString=function(){return' "'+this.value+'"'},t}(r),e.Undefined=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(e){return[this.makeCode(e.level>=T?"(void 0)":"void 0")]},t}(r),e.Null=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode("null")]},t}(r),e.Bool=function(e){function t(e){this.val=e}return kt(t,e),t.prototype.isAssignable=D,t.prototype.isComplex=D,t.prototype.compileNode=function(){return[this.makeCode(this.val)]},t}(r),e.Return=M=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.jumps=X,t.prototype.compileToFragments=function(e,n){var i,r;return i=null!=(r=this.expression)?r.makeReturn():void 0,!i||i instanceof t?t.__super__.compileToFragments.call(this,e,n):i.compileToFragments(e,n)},t.prototype.compileNode=function(e){var t,n,i;return t=[],n=null!=(i=this.expression)?"function"==typeof i.isYieldReturn?i.isYieldReturn():void 0:void 0,n||t.push(this.makeCode(this.tab+("return"+(this.expression?" ":"")))),this.expression&&(t=t.concat(this.expression.compileToFragments(e,N))),n||t.push(this.makeCode(";")),t},t}(r),e.Value=z=function(e){function t(e,n,i){return!n&&e instanceof t?e:(this.base=e,this.properties=n||[],i&&(this[i]=!0),this)}return kt(t,e),t.prototype.children=["base","properties"],t.prototype.add=function(e){return this.properties=this.properties.concat(e),this},t.prototype.hasProperties=function(){return!!this.properties.length},t.prototype.bareLiteral=function(e){return!this.properties.length&&this.base instanceof e},t.prototype.isArray=function(){return this.bareLiteral(n)},t.prototype.isRange=function(){return this.bareLiteral(j)},t.prototype.isComplex=function(){return this.hasProperties()||this.base.isComplex()},t.prototype.isAssignable=function(){return this.hasProperties()||this.base.isAssignable()},t.prototype.isSimpleNumber=function(){return this.bareLiteral(x)&&B.test(this.base.value)},t.prototype.isString=function(){return this.bareLiteral(x)&&y.test(this.base.value)},t.prototype.isRegex=function(){return this.bareLiteral(x)&&v.test(this.base.value)},t.prototype.isAtomic=function(){var e,t,n,i;for(i=this.properties.concat(this.base),e=0,t=i.length;t>e;e++)if(n=i[e],n.soak||n instanceof o)return!1;return!0},t.prototype.isNotCallable=function(){return this.isSimpleNumber()||this.isString()||this.isRegex()||this.isArray()||this.isRange()||this.isSplice()||this.isObject()},t.prototype.isStatement=function(e){return!this.properties.length&&this.base.isStatement(e)},t.prototype.assigns=function(e){return!this.properties.length&&this.base.assigns(e)},t.prototype.jumps=function(e){return!this.properties.length&&this.base.jumps(e)},t.prototype.isObject=function(e){return this.properties.length?!1:this.base instanceof A&&(!e||this.base.generated)},t.prototype.isSplice=function(){var e,t;return t=this.properties,e=t[t.length-1],e instanceof U},t.prototype.looksStatic=function(e){var t;return this.base.value===e&&1===this.properties.length&&"prototype"!==(null!=(t=this.properties[0].name)?t.value:void 0)},t.prototype.unwrap=function(){return this.properties.length?this:this.base},t.prototype.cacheReference=function(e){var n,r,s,o,a;return a=this.properties,s=a[a.length-1],2>this.properties.length&&!this.base.isComplex()&&!(null!=s?s.isComplex():void 0)?[this,this]:(n=new t(this.base,this.properties.slice(0,-1)),n.isComplex()&&(r=new x(e.scope.freeVariable("base")),n=new t(new O(new i(r,n)))),s?(s.isComplex()&&(o=new x(e.scope.freeVariable("name")),s=new w(new i(o,s.index)),o=new w(o)),[n.add(s),new t(r||n.base,[o||s])]):[n,r])},t.prototype.compileNode=function(e){var t,n,i,r,s;for(this.base.front=this.front,s=this.properties,t=this.base.compileToFragments(e,s.length?T:null),(this.base instanceof O||s.length)&&B.test(st(t))&&t.push(this.makeCode(".")),n=0,i=s.length;i>n;n++)r=s[n],t.push.apply(t,r.compileToFragments(e));return t},t.prototype.unfoldSoak=function(e){return null!=this.unfoldedSoak?this.unfoldedSoak:this.unfoldedSoak=function(n){return function(){var r,s,o,a,c,h,l,p,d,f;if(o=n.base.unfoldSoak(e))return(p=o.body.properties).push.apply(p,n.properties),o;for(d=n.properties,s=a=0,c=d.length;c>a;s=++a)if(h=d[s],h.soak)return h.soak=!1,r=new t(n.base,n.properties.slice(0,s)),f=new t(n.base,n.properties.slice(s)),r.isComplex()&&(l=new x(e.scope.freeVariable("ref")),r=new O(new i(l,r)),f.base=l),new b(new u(r),f,{soak:!0});return!1}}(this)()},t}(r),e.Comment=l=function(e){function t(e){this.comment=e}return kt(t,e),t.prototype.isStatement=Q,t.prototype.makeReturn=X,t.prototype.compileNode=function(e,t){var n,i;return i=this.comment.replace(/^(\s*)#(?=\s)/gm,"$1 *"),n="/*"+ut(i,this.tab)+(Tt.call(i,"\n")>=0?"\n"+this.tab:"")+" */",(t||e.level)===L&&(n=e.indent+n),[this.makeCode("\n"),this.makeCode(n)]},t}(r),e.Call=o=function(e){function n(e,t,n){this.args=null!=t?t:[],this.soak=n,this.isNew=!1,this.isSuper="super"===e,this.variable=this.isSuper?null:e,e instanceof z&&e.isNotCallable()&&e.error("literal is not a function")}return kt(n,e),n.prototype.children=["variable","args"],n.prototype.newInstance=function(){var e,t;return e=(null!=(t=this.variable)?t.base:void 0)||this.variable,e instanceof n&&!e.isNew?e.newInstance():this.isNew=!0,this},n.prototype.superReference=function(e){var n,r,s,o,a,c,h,l;return a=e.scope.namedMethod(),(null!=a?a.klass:void 0)?(o=a.klass,c=a.name,l=a.variable,o.isComplex()&&(s=new x(e.scope.parent.freeVariable("base")),r=new z(new O(new i(s,o))),l.base=r,l.properties.splice(0,o.properties.length)),(c.isComplex()||c instanceof w&&c.index.isAssignable())&&(h=new x(e.scope.parent.freeVariable("name")),c=new w(new i(h,c.index)),l.properties.pop(),l.properties.push(c)),n=[new t(new x("__super__"))],a["static"]&&n.push(new t(new x("constructor"))),n.push(null!=h?new w(h):c),new z(null!=s?s:o,n).compile(e)):(null!=a?a.ctor:void 0)?a.name+".__super__.constructor":this.error("cannot call super outside of an instance method.")},n.prototype.superThis=function(e){var t;return t=e.scope.method,t&&!t.klass&&t.context||"this"},n.prototype.unfoldSoak=function(e){var t,i,r,s,o,a,c,h,l;if(this.soak){if(this.variable){if(i=yt(e,this,"variable"))return i;c=new z(this.variable).cacheReference(e),s=c[0],l=c[1]}else s=new x(this.superReference(e)),l=new z(s);return l=new n(l,this.args),l.isNew=this.isNew,s=new x("typeof "+s.compile(e)+' === "function"'),new b(s,new z(l),{soak:!0})}for(t=this,a=[];;)if(t.variable instanceof n)a.push(t),t=t.variable;else{if(!(t.variable instanceof z))break;if(a.push(t),!((t=t.variable.base)instanceof n))break}for(h=a.reverse(),r=0,o=h.length;o>r;r++)t=h[r],i&&(t.variable instanceof n?t.variable=i:t.variable.base=i),i=yt(e,t,"variable");return i},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l;if(null!=(h=this.variable)&&(h.front=this.front),r=G.compileSplattedArray(e,this.args,!0),r.length)return this.compileSplat(e,r);for(i=[],l=this.args,n=o=0,a=l.length;a>o;n=++o)t=l[n],n&&i.push(this.makeCode(", ")),i.push.apply(i,t.compileToFragments(e,E));return s=[],this.isSuper?(c=this.superReference(e)+(".call("+this.superThis(e)),i.length&&(c+=", "),s.push(this.makeCode(c))):(this.isNew&&s.push(this.makeCode("new ")),s.push.apply(s,this.variable.compileToFragments(e,T)),s.push(this.makeCode("("))),s.push.apply(s,i),s.push(this.makeCode(")")),s},n.prototype.compileSplat=function(e,t){var n,i,r,s,o,a;return this.isSuper?[].concat(this.makeCode(this.superReference(e)+".apply("+this.superThis(e)+", "),t,this.makeCode(")")):this.isNew?(s=this.tab+q,[].concat(this.makeCode("(function(func, args, ctor) {\n"+s+"ctor.prototype = func.prototype;\n"+s+"var child = new ctor, result = func.apply(child, args);\n"+s+"return Object(result) === result ? result : child;\n"+this.tab+"})("),this.variable.compileToFragments(e,E),this.makeCode(", "),t,this.makeCode(", function(){})"))):(n=[],i=new z(this.variable),(o=i.properties.pop())&&i.isComplex()?(a=e.scope.freeVariable("ref"),n=n.concat(this.makeCode("("+a+" = "),i.compileToFragments(e,E),this.makeCode(")"),o.compileToFragments(e))):(r=i.compileToFragments(e,T),B.test(st(r))&&(r=this.wrapInBraces(r)),o?(a=st(r),r.push.apply(r,o.compileToFragments(e))):a="null",n=n.concat(r)),n=n.concat(this.makeCode(".apply("+a+", "),t,this.makeCode(")")))},n}(r),e.Extends=d=function(e){function t(e,t){this.child=e,this.parent=t}return kt(t,e),t.prototype.children=["child","parent"],t.prototype.compileToFragments=function(e){return new o(new z(new x(bt("extend",e))),[this.child,this.parent]).compileToFragments(e)},t}(r),e.Access=t=function(e){function t(e,t){this.name=e,this.name.asKey=!0,this.soak="soak"===t}return kt(t,e),t.prototype.children=["name"],t.prototype.compileToFragments=function(e){var t;return t=this.name.compileToFragments(e),g.test(st(t))?t.unshift(this.makeCode(".")):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.isComplex=D,t}(r),e.Index=w=function(e){function t(e){this.index=e}return kt(t,e),t.prototype.children=["index"],t.prototype.compileToFragments=function(e){return[].concat(this.makeCode("["),this.index.compileToFragments(e,N),this.makeCode("]"))},t.prototype.isComplex=function(){return this.index.isComplex()},t}(r),e.Range=j=function(e){function t(e,t,n){this.from=e,this.to=t,this.exclusive="exclusive"===n,this.equals=this.exclusive?"":"="}return kt(t,e),t.prototype.children=["from","to"],t.prototype.compileVariables=function(e){var t,n,i,r,s,o;return e=lt(e,{top:!0}),t=tt(e,"isComplex"),n=this.cacheToCodeFragments(this.from.cache(e,E,t)),this.fromC=n[0],this.fromVar=n[1],i=this.cacheToCodeFragments(this.to.cache(e,E,t)),this.toC=i[0],this.toVar=i[1],(o=tt(e,"step"))&&(r=this.cacheToCodeFragments(o.cache(e,E,t)),this.step=r[0],this.stepVar=r[1]),s=[this.fromVar.match(R),this.toVar.match(R)],this.fromNum=s[0],this.toNum=s[1],this.stepVar?this.stepNum=this.stepVar.match(R):void 0},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f;return this.fromVar||this.compileVariables(e),e.index?(a=this.fromNum&&this.toNum,s=tt(e,"index"),o=tt(e,"name"),h=o&&o!==s,f=s+" = "+this.fromC,this.toC!==this.toVar&&(f+=", "+this.toC),this.step!==this.stepVar&&(f+=", "+this.step),l=[s+" <"+this.equals,s+" >"+this.equals],c=l[0],r=l[1],n=this.stepNum?pt(this.stepNum[0])>0?c+" "+this.toVar:r+" "+this.toVar:a?(u=[pt(this.fromNum[0]),pt(this.toNum[0])],i=u[0],d=u[1],u,d>=i?c+" "+d:r+" "+d):(t=this.stepVar?this.stepVar+" > 0":this.fromVar+" <= "+this.toVar,t+" ? "+c+" "+this.toVar+" : "+r+" "+this.toVar),p=this.stepVar?s+" += "+this.stepVar:a?h?d>=i?"++"+s:"--"+s:d>=i?s+"++":s+"--":h?t+" ? ++"+s+" : --"+s:t+" ? "+s+"++ : "+s+"--",h&&(f=o+" = "+f),h&&(p=o+" = "+p),[this.makeCode(f+"; "+n+"; "+p)]):this.compileArray(e)},t.prototype.compileArray=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d;return this.fromNum&&this.toNum&&20>=Math.abs(this.fromNum-this.toNum)?(h=function(){p=[];for(var e=l=+this.fromNum,t=+this.toNum;t>=l?t>=e:e>=t;t>=l?e++:e--)p.push(e);return p}.apply(this),this.exclusive&&h.pop(),[this.makeCode("["+h.join(", ")+"]")]):(o=this.tab+q,s=e.scope.freeVariable("i",{single:!0}),u=e.scope.freeVariable("results"),c="\n"+o+u+" = [];",this.fromNum&&this.toNum?(e.index=s,n=st(this.compileNode(e))):(d=s+" = "+this.fromC+(this.toC!==this.toVar?", "+this.toC:""),i=this.fromVar+" <= "+this.toVar,n="var "+d+"; "+i+" ? "+s+" <"+this.equals+" "+this.toVar+" : "+s+" >"+this.equals+" "+this.toVar+"; "+i+" ? "+s+"++ : "+s+"--"),a="{ "+u+".push("+s+"); }\n"+o+"return "+u+";\n"+e.indent,r=function(e){return null!=e?e.contains(at):void 0},(r(this.from)||r(this.to))&&(t=", arguments"),[this.makeCode("(function() {"+c+"\n"+o+"for ("+n+")"+a+"}).apply(this"+(null!=t?t:"")+")")])},t}(r),e.Slice=U=function(e){function t(e){this.range=e,t.__super__.constructor.call(this)}return kt(t,e),t.prototype.children=["range"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;return s=this.range,o=s.to,i=s.from,r=i&&i.compileToFragments(e,N)||[this.makeCode("0")],o&&(t=o.compileToFragments(e,N),n=st(t),(this.range.exclusive||-1!==+n)&&(a=", "+(this.range.exclusive?n:B.test(n)?""+(+n+1):(t=o.compileToFragments(e,T),"+"+st(t)+" + 1 || 9e9")))),[this.makeCode(".slice("+st(r)+(a||"")+")")]},t}(r),e.Obj=A=function(e){function n(e,t){this.generated=null!=t?t:!1,this.objects=this.properties=e||[]}return kt(n,e),n.prototype.children=["properties"],n.prototype.compileNode=function(e){var n,r,s,o,a,c,h,u,p,d,f,m,g,v,y,b,k,w,T,C,E;if(T=this.properties,this.generated)for(h=0,g=T.length;g>h;h++)b=T[h],b instanceof z&&b.error("cannot have an implicit value in an implicit object");for(r=p=0,v=T.length;v>p&&(w=T[r],!((w.variable||w).base instanceof O));r=++p);for(s=T.length>r,a=e.indent+=q,m=this.lastNonComment(this.properties),n=[],s&&(k=e.scope.freeVariable("obj"),n.push(this.makeCode("(\n"+a+k+" = "))),n.push(this.makeCode("{"+(0===T.length||0===r?"}":"\n"))),o=f=0,y=T.length;y>f;o=++f)w=T[o],o===r&&(0!==o&&n.push(this.makeCode("\n"+a+"}")),n.push(this.makeCode(",\n"))),u=o===T.length-1||o===r-1?"":w===m||w instanceof l?"\n":",\n",c=w instanceof l?"":a,s&&r>o&&(c+=q),w instanceof i&&w.variable instanceof z&&w.variable.hasProperties()&&w.variable.error("invalid object key"),w instanceof z&&w["this"]&&(w=new i(w.properties[0].name,w,"object")),w instanceof l||(r>o?(w instanceof i||(w=new i(w,w,"object")),(w.variable.base||w.variable).asKey=!0):(w instanceof i?(d=w.variable,E=w.value):(C=w.base.cache(e),d=C[0],E=C[1]),w=new i(new z(new x(k),[new t(d)]),E))),c&&n.push(this.makeCode(c)),n.push.apply(n,w.compileToFragments(e,L)),u&&n.push(this.makeCode(u));return s?n.push(this.makeCode(",\n"+a+k+"\n"+this.tab+")")):0!==T.length&&n.push(this.makeCode("\n"+this.tab+"}")),this.front&&!s?this.wrapInBraces(n):n},n.prototype.assigns=function(e){var t,n,i,r;for(r=this.properties,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},n}(r),e.Arr=n=function(e){function t(e){this.objects=e||[]}return kt(t,e),t.prototype.children=["objects"],t.prototype.compileNode=function(e){var t,n,i,r,s,o,a;if(!this.objects.length)return[this.makeCode("[]")];if(e.indent+=q,t=G.compileSplattedArray(e,this.objects),t.length)return t;for(t=[],n=function(){var t,n,i,r;for(i=this.objects,r=[],t=0,n=i.length;n>t;t++)a=i[t],r.push(a.compileToFragments(e,E));return r}.call(this),r=s=0,o=n.length;o>s;r=++s)i=n[r],r&&t.push(this.makeCode(", ")),t.push.apply(t,i);return st(t).indexOf("\n")>=0?(t.unshift(this.makeCode("[\n"+e.indent)),t.push(this.makeCode("\n"+this.tab+"]"))):(t.unshift(this.makeCode("[")),t.push(this.makeCode("]"))),t},t.prototype.assigns=function(e){var t,n,i,r;for(r=this.objects,t=0,n=r.length;n>t;t++)if(i=r[t],i.assigns(e))return!0;return!1},t}(r),e.Class=a=function(e){function n(e,t,n){this.variable=e,this.parent=t,this.body=null!=n?n:new s,this.boundFuncs=[],this.body.classBody=!0}return kt(n,e),n.prototype.children=["variable","parent","body"],n.prototype.determineName=function(){var e,n,i;return this.variable?(n=this.variable.properties,i=n[n.length-1],e=i?i instanceof t&&i.name.value:this.variable.base.value,Tt.call(V,e)>=0&&this.variable.error("class variable name may not be "+e),e&&(e=g.test(e)&&e)):null},n.prototype.setContext=function(e){return this.body.traverseChildren(!1,function(t){return t.classBody?!1:t instanceof x&&"this"===t.value?t.value=e:t instanceof c&&t.bound?t.context=e:void 0})},n.prototype.addBoundFunctions=function(e){var n,i,r,s,o;for(o=this.boundFuncs,i=0,r=o.length;r>i;i++)n=o[i],s=new z(new x("this"),[new t(n)]).compile(e),this.ctor.body.unshift(new x(s+" = "+bt("bind",e)+"("+s+", this)"))},n.prototype.addProperties=function(e,n,r){var s,o,a,h,l,u;return u=e.base.properties.slice(0),h=function(){var e;for(e=[];o=u.shift();)o instanceof i&&(a=o.variable.base,delete o.context,l=o.value,"constructor"===a.value?(this.ctor&&o.error("cannot define more than one constructor in a class"),l.bound&&o.error("cannot define a constructor as a bound function"),l instanceof c?o=this.ctor=l:(this.externalCtor=r.classScope.freeVariable("class"),o=new i(new x(this.externalCtor),l))):o.variable["this"]?l["static"]=!0:(s=a.isComplex()?new w(a):new t(a),o.variable=new z(new x(n),[new t(new x("prototype")),s]),l instanceof c&&l.bound&&(this.boundFuncs.push(a),l.bound=!1))),e.push(o);return e}.call(this),et(h)},n.prototype.walkBody=function(e,t){return this.traverseChildren(!1,function(r){return function(o){var a,c,h,l,u,p,d;if(a=!0,o instanceof n)return!1;if(o instanceof s){for(d=c=o.expressions,h=l=0,u=d.length;u>l;h=++l)p=d[h],p instanceof i&&p.variable.looksStatic(e)?p.value["static"]=!0:p instanceof z&&p.isObject(!0)&&(a=!1,c[h]=r.addProperties(p,e,t));o.expressions=c=rt(c)}return a&&!(o instanceof n)}}(this))},n.prototype.hoistDirectivePrologue=function(){var e,t,n;for(t=0,e=this.body.expressions;(n=e[t])&&n instanceof l||n instanceof z&&n.isString();)++t;return this.directives=e.splice(0,t)},n.prototype.ensureConstructor=function(e){return this.ctor||(this.ctor=new c,this.externalCtor?this.ctor.body.push(new x(this.externalCtor+".apply(this, arguments)")):this.parent&&this.ctor.body.push(new x(e+".__super__.constructor.apply(this, arguments)")),this.ctor.body.makeReturn(),this.body.expressions.unshift(this.ctor)),this.ctor.ctor=this.ctor.name=e,this.ctor.klass=null,this.ctor.noReturn=!0},n.prototype.compileNode=function(e){var t,n,r,a,h,l,u,p,f;return(a=this.body.jumps())&&a.error("Class bodies cannot contain pure statements"),(n=this.body.contains(at))&&n.error("Class bodies shouldn't reference arguments"),u=this.determineName()||"_Class",u.reserved&&(u="_"+u),l=new x(u),r=new c([],s.wrap([this.body])),t=[],e.classScope=r.makeScope(e.scope),this.hoistDirectivePrologue(),this.setContext(u),this.walkBody(u,e),this.ensureConstructor(u),this.addBoundFunctions(e),this.body.spaced=!0,this.body.expressions.push(l),this.parent&&(f=new x(e.classScope.freeVariable("superClass",{reserve:!1})),this.body.expressions.unshift(new d(l,f)),r.params.push(new _(f)),t.push(this.parent)),(p=this.body.expressions).unshift.apply(p,this.directives),h=new O(new o(r,t)),this.variable&&(h=new i(this.variable,h)),h.compileToFragments(e)},n}(r),e.Assign=i=function(e){function n(e,t,n,i){var r,s,o;this.variable=e,this.value=t,this.context=n,this.param=i&&i.param,this.subpattern=i&&i.subpattern,o=s=this.variable.unwrapAll().value,r=Tt.call(V,o)>=0,r&&"object"!==this.context&&this.variable.error('variable name may not be "'+s+'"')}return kt(n,e),n.prototype.children=["variable","value"],n.prototype.isStatement=function(e){return(null!=e?e.level:void 0)===L&&null!=this.context&&Tt.call(this.context,"?")>=0 +},n.prototype.assigns=function(e){return this["object"===this.context?"value":"variable"].assigns(e)},n.prototype.unfoldSoak=function(e){return yt(e,this,"variable")},n.prototype.compileNode=function(e){var t,n,i,r,s,o,a,h,l,u,p,d,f,m;if(i=this.variable instanceof z){if(this.variable.isArray()||this.variable.isObject())return this.compilePatternMatch(e);if(this.variable.isSplice())return this.compileSplice(e);if("||="===(h=this.context)||"&&="===h||"?="===h)return this.compileConditional(e);if("**="===(l=this.context)||"//="===l||"%%="===l)return this.compileSpecialMath(e)}return this.value instanceof c&&(this.value["static"]?(this.value.klass=this.variable.base,this.value.name=this.variable.properties[0],this.value.variable=this.variable):(null!=(u=this.variable.properties)?u.length:void 0)>=2&&(p=this.variable.properties,o=p.length>=3?Ct.call(p,0,r=p.length-2):(r=0,[]),a=p[r++],s=p[r++],"prototype"===(null!=(d=a.name)?d.value:void 0)&&(this.value.klass=new z(this.variable.base,o),this.value.name=s,this.value.variable=this.variable))),this.context||(m=this.variable.unwrapAll(),m.isAssignable()||this.variable.error('"'+this.variable.compile(e)+'" cannot be assigned'),("function"==typeof m.hasProperties?m.hasProperties():void 0)||(this.param?e.scope.add(m.value,"var"):e.scope.find(m.value))),f=this.value.compileToFragments(e,E),n=this.variable.compileToFragments(e,E),"object"===this.context?n.concat(this.makeCode(": "),f):(t=n.concat(this.makeCode(" "+(this.context||"=")+" "),f),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compilePatternMatch=function(e){var i,r,s,o,a,c,h,l,u,d,f,m,v,y,b,k,T,C,N,S,D,R,A,I,_,j,M,B;if(I=e.level===L,j=this.value,y=this.variable.base.objects,!(b=y.length))return s=j.compileToFragments(e),e.level>=F?this.wrapInBraces(s):s;if(l=this.variable.isObject(),I&&1===b&&!((v=y[0])instanceof G))return v instanceof n?(T=v,C=T.variable,h=C.base,v=T.value):h=l?v["this"]?v.properties[0].name:v:new x(0),i=g.test(h.unwrap().value||0),j=new z(j),j.properties.push(new(i?t:w)(h)),N=v.unwrap().value,Tt.call($,N)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),new n(v,j,null,{param:this.param}).compileToFragments(e,L);for(M=j.compileToFragments(e,E),B=st(M),r=[],o=!1,(!g.test(B)||this.variable.assigns(B))&&(r.push([this.makeCode((k=e.scope.freeVariable("ref"))+" = ")].concat(Ct.call(M))),M=[this.makeCode(k)],B=k),c=d=0,f=y.length;f>d;c=++d){if(v=y[c],h=c,l&&(v instanceof n?(S=v,D=S.variable,h=D.base,v=S.value):v.base instanceof O?(R=new z(v.unwrapAll()).cacheReference(e),v=R[0],h=R[1]):h=v["this"]?v.properties[0].name:v),!o&&v instanceof G)m=v.name.unwrap().value,v=v.unwrap(),_=b+" <= "+B+".length ? "+bt("slice",e)+".call("+B+", "+c,(A=b-c-1)?(u=e.scope.freeVariable("i",{single:!0}),_+=", "+u+" = "+B+".length - "+A+") : ("+u+" = "+c+", [])"):_+=") : []",_=new x(_),o=u+"++";else{if(!o&&v instanceof p){(A=b-c-1)&&(1===A?o=B+".length - 1":(u=e.scope.freeVariable("i",{single:!0}),_=new x(u+" = "+B+".length - "+A),o=u+"++",r.push(_.compileToFragments(e,E))));continue}m=v.unwrap().value,(v instanceof G||v instanceof p)&&v.error("multiple splats/expansions are disallowed in an assignment"),"number"==typeof h?(h=new x(o||h),i=!1):i=l&&g.test(h.unwrap().value||0),_=new z(new x(B),[new(i?t:w)(h)])}null!=m&&Tt.call($,m)>=0&&v.error("assignment to a reserved word: "+v.compile(e)),r.push(new n(v,_,null,{param:this.param,subpattern:!0}).compileToFragments(e,E))}return I||this.subpattern||r.push(M),a=this.joinFragmentArrays(r,", "),E>e.level?a:this.wrapInBraces(a)},n.prototype.compileConditional=function(e){var t,i,r,s;return r=this.variable.cacheReference(e),i=r[0],s=r[1],!i.properties.length&&i.base instanceof x&&"this"!==i.base.value&&!e.scope.check(i.base.value)&&this.variable.error('the variable "'+i.base.value+"\" can't be assigned with "+this.context+" because it has not been declared before"),Tt.call(this.context,"?")>=0?(e.isExistentialEquals=!0,new b(new u(i),s,{type:"if"}).addElse(new n(s,this.value,"=")).compileToFragments(e)):(t=new I(this.context.slice(0,-1),i,new n(s,this.value,"=")).compileToFragments(e),E>=e.level?t:this.wrapInBraces(t))},n.prototype.compileSpecialMath=function(e){var t,i,r;return i=this.variable.cacheReference(e),t=i[0],r=i[1],new n(t,new I(this.context.slice(0,-1),r,this.value)).compileToFragments(e)},n.prototype.compileSplice=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;return a=this.variable.properties.pop().range,i=a.from,l=a.to,n=a.exclusive,o=this.variable.compile(e),i?(c=this.cacheToCodeFragments(i.cache(e,F)),r=c[0],s=c[1]):r=s="0",l?i instanceof z&&i.isSimpleNumber()&&l instanceof z&&l.isSimpleNumber()?(l=l.compile(e)-s,n||(l+=1)):(l=l.compile(e,T)+" - "+s,n||(l+=" + 1")):l="9e9",h=this.value.cache(e,E),u=h[0],p=h[1],t=[].concat(this.makeCode("[].splice.apply("+o+", ["+r+", "+l+"].concat("),u,this.makeCode(")), "),p),e.level>L?this.wrapInBraces(t):t},n}(r),e.Code=c=function(e){function t(e,t,n){this.params=e||[],this.body=t||new s,this.bound="boundfunc"===n,this.isGenerator=!!this.body.contains(function(e){var t;return e instanceof I&&("yield"===(t=e.operator)||"yield*"===t)})}return kt(t,e),t.prototype.children=["params","body"],t.prototype.isStatement=function(){return!!this.ctor},t.prototype.jumps=D,t.prototype.makeScope=function(e){return new P(e,this.body,this)},t.prototype.compileNode=function(e){var r,a,c,h,l,u,d,f,m,g,v,y,k,w,C,E,F,N,L,S,D,R,A,O,$,j,M,B,V,P,U,G,H;if(this.bound&&(null!=(A=e.scope.method)?A.bound:void 0)&&(this.context=e.scope.method.context),this.bound&&!this.context)return this.context="_this",H=new t([new _(new x(this.context))],new s([this])),a=new o(H,[new x("this")]),a.updateLocationDataIfMissing(this.locationData),a.compileNode(e);for(e.scope=tt(e,"classScope")||this.makeScope(e.scope),e.scope.shared=tt(e,"sharedScope"),e.indent+=q,delete e.bare,delete e.isExistentialEquals,L=[],h=[],O=this.params,u=0,m=O.length;m>u;u++)N=O[u],N instanceof p||e.scope.parameter(N.asReference(e));for($=this.params,d=0,g=$.length;g>d;d++)if(N=$[d],N.splat||N instanceof p){for(j=this.params,f=0,v=j.length;v>f;f++)F=j[f],F instanceof p||!F.name.value||e.scope.add(F.name.value,"var",!0);V=new i(new z(new n(function(){var t,n,i,r;for(i=this.params,r=[],n=0,t=i.length;t>n;n++)F=i[n],r.push(F.asReference(e));return r}.call(this))),new z(new x("arguments")));break}for(M=this.params,E=0,y=M.length;y>E;E++)N=M[E],N.isComplex()?(U=R=N.asReference(e),N.value&&(U=new I("?",R,N.value)),h.push(new i(new z(N.name),U,"=",{param:!0}))):(R=N,N.value&&(C=new x(R.name.value+" == null"),U=new i(new z(N.name),N.value,"="),h.push(new b(C,U)))),V||L.push(R);for(G=this.body.isEmpty(),V&&h.unshift(V),h.length&&(B=this.body.expressions).unshift.apply(B,h),l=S=0,k=L.length;k>S;l=++S)F=L[l],L[l]=F.compileToFragments(e),e.scope.parameter(st(L[l]));for(P=[],this.eachParamName(function(e,t){return Tt.call(P,e)>=0&&t.error("multiple parameters named "+e),P.push(e)}),G||this.noReturn||this.body.makeReturn(),c="function",this.isGenerator&&(c+="*"),this.ctor&&(c+=" "+this.name),c+="(",r=[this.makeCode(c)],l=D=0,w=L.length;w>D;l=++D)F=L[l],l&&r.push(this.makeCode(", ")),r.push.apply(r,F);return r.push(this.makeCode(") {")),this.body.isEmpty()||(r=r.concat(this.makeCode("\n"),this.body.compileWithDeclarations(e),this.makeCode("\n"+this.tab))),r.push(this.makeCode("}")),this.ctor?[this.makeCode(this.tab)].concat(Ct.call(r)):this.front||e.level>=T?this.wrapInBraces(r):r},t.prototype.eachParamName=function(e){var t,n,i,r,s;for(r=this.params,s=[],t=0,n=r.length;n>t;t++)i=r[t],s.push(i.eachName(e));return s},t.prototype.traverseChildren=function(e,n){return e?t.__super__.traverseChildren.call(this,e,n):void 0},t}(r),e.Param=_=function(e){function t(e,t,n){var i,r;this.name=e,this.value=t,this.splat=n,r=i=this.name.unwrapAll().value,Tt.call(V,r)>=0&&this.name.error('parameter name "'+i+'" is not allowed')}return kt(t,e),t.prototype.children=["name","value"],t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e,E)},t.prototype.asReference=function(e){var t,n;return this.reference?this.reference:(n=this.name,n["this"]?(t=n.properties[0].name.value,t.reserved&&(t="_"+t),n=new x(e.scope.freeVariable(t))):n.isComplex()&&(n=new x(e.scope.freeVariable("arg"))),n=new z(n),this.splat&&(n=new G(n)),n.updateLocationDataIfMissing(this.locationData),this.reference=n)},t.prototype.isComplex=function(){return this.name.isComplex()},t.prototype.eachName=function(e,t){var n,r,s,o,a,c;if(null==t&&(t=this.name),n=function(t){return e("@"+t.properties[0].name.value,t)},t instanceof x)return e(t.value,t);if(t instanceof z)return n(t);for(c=t.objects,r=0,s=c.length;s>r;r++)a=c[r],a instanceof i?this.eachName(e,a.value.unwrap()):a instanceof G?(o=a.name.unwrap(),e(o.value,o)):a instanceof z?a.isArray()||a.isObject()?this.eachName(e,a.base):a["this"]?n(a):e(a.base.value,a.base):a instanceof p||a.error("illegal parameter "+a.compile())},t}(r),e.Splat=G=function(e){function t(e){this.name=e.compile?e:new x(e)}return kt(t,e),t.prototype.children=["name"],t.prototype.isAssignable=Q,t.prototype.assigns=function(e){return this.name.assigns(e)},t.prototype.compileToFragments=function(e){return this.name.compileToFragments(e)},t.prototype.unwrap=function(){return this.name},t.compileSplattedArray=function(e,n,i){var r,s,o,a,c,h,l,u,p,d,f;for(l=-1;(f=n[++l])&&!(f instanceof t););if(l>=n.length)return[];if(1===n.length)return f=n[0],c=f.compileToFragments(e,E),i?c:[].concat(f.makeCode(bt("slice",e)+".call("),c,f.makeCode(")"));for(r=n.slice(l),h=u=0,d=r.length;d>u;h=++u)f=r[h],o=f.compileToFragments(e,E),r[h]=f instanceof t?[].concat(f.makeCode(bt("slice",e)+".call("),o,f.makeCode(")")):[].concat(f.makeCode("["),o,f.makeCode("]"));return 0===l?(f=n[0],a=f.joinFragmentArrays(r.slice(1),", "),r[0].concat(f.makeCode(".concat("),a,f.makeCode(")"))):(s=function(){var t,i,r,s;for(r=n.slice(0,l),s=[],t=0,i=r.length;i>t;t++)f=r[t],s.push(f.compileToFragments(e,E));return s}(),s=n[0].joinFragmentArrays(s,", "),a=n[l].joinFragmentArrays(r,", "),p=n[n.length-1],[].concat(n[0].makeCode("["),s,n[l].makeCode("].concat("),a,p.makeCode(")")))},t}(r),e.Expansion=p=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return kt(t,e),t.prototype.isComplex=D,t.prototype.compileNode=function(){return this.error("Expansion must be used inside a destructuring assignment or parameter list")},t.prototype.asReference=function(){return this},t.prototype.eachName=function(){},t}(r),e.While=J=function(e){function t(e,t){this.condition=(null!=t?t.invert:void 0)?e.invert():e,this.guard=null!=t?t.guard:void 0}return kt(t,e),t.prototype.children=["condition","guard","body"],t.prototype.isStatement=Q,t.prototype.makeReturn=function(e){return e?t.__super__.makeReturn.apply(this,arguments):(this.returns=!this.jumps({loop:!0}),this)},t.prototype.addBody=function(e){return this.body=e,this},t.prototype.jumps=function(){var e,t,n,i,r;if(e=this.body.expressions,!e.length)return!1;for(t=0,i=e.length;i>t;t++)if(r=e[t],n=r.jumps({loop:!0}))return n;return!1},t.prototype.compileNode=function(e){var t,n,i,r;return e.indent+=q,r="",n=this.body,n.isEmpty()?n=this.makeCode(""):(this.returns&&(n.makeReturn(i=e.scope.freeVariable("results")),r=""+this.tab+i+" = [];\n"),this.guard&&(n.expressions.length>1?n.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(n=s.wrap([new b(this.guard,n)]))),n=[].concat(this.makeCode("\n"),n.compileToFragments(e,L),this.makeCode("\n"+this.tab))),t=[].concat(this.makeCode(r+this.tab+"while ("),this.condition.compileToFragments(e,N),this.makeCode(") {"),n,this.makeCode("}")),this.returns&&t.push(this.makeCode("\n"+this.tab+"return "+i+";")),t},t}(r),e.Op=I=function(e){function n(e,t,n,i){if("in"===e)return new k(t,n);if("do"===e)return this.generateDo(t);if("new"===e){if(t instanceof o&&!t["do"]&&!t.isNew)return t.newInstance();(t instanceof c&&t.bound||t["do"])&&(t=new O(t))}return this.operator=r[e]||e,this.first=t,this.second=n,this.flip=!!i,this}var r,s;return kt(n,e),r={"==":"===","!=":"!==",of:"in",yieldfrom:"yield*"},s={"!==":"===","===":"!=="},n.prototype.children=["first","second"],n.prototype.isSimpleNumber=D,n.prototype.isYield=function(){var e;return"yield"===(e=this.operator)||"yield*"===e},n.prototype.isYieldReturn=function(){return this.isYield()&&this.first instanceof M},n.prototype.isUnary=function(){return!this.second},n.prototype.isComplex=function(){var e;return!(this.isUnary()&&("+"===(e=this.operator)||"-"===e)&&this.first instanceof z&&this.first.isSimpleNumber())},n.prototype.isChainable=function(){var e;return"<"===(e=this.operator)||">"===e||">="===e||"<="===e||"==="===e||"!=="===e},n.prototype.invert=function(){var e,t,i,r,o;if(this.isChainable()&&this.first.isChainable()){for(e=!0,t=this;t&&t.operator;)e&&(e=t.operator in s),t=t.first;if(!e)return new O(this).invert();for(t=this;t&&t.operator;)t.invert=!t.invert,t.operator=s[t.operator],t=t.first;return this}return(r=s[this.operator])?(this.operator=r,this.first.unwrap()instanceof n&&this.first.invert(),this):this.second?new O(this).invert():"!"===this.operator&&(i=this.first.unwrap())instanceof n&&("!"===(o=i.operator)||"in"===o||"instanceof"===o)?i:new n("!",this)},n.prototype.unfoldSoak=function(e){var t;return("++"===(t=this.operator)||"--"===t||"delete"===t)&&yt(e,this,"first")},n.prototype.generateDo=function(e){var t,n,r,s,a,h,l,u;for(h=[],n=e instanceof i&&(l=e.value.unwrap())instanceof c?l:e,u=n.params||[],r=0,s=u.length;s>r;r++)a=u[r],a.value?(h.push(a.value),delete a.value):h.push(a);return t=new o(e,h),t["do"]=!0,t},n.prototype.compileNode=function(e){var t,n,i,r,s,o;if(n=this.isChainable()&&this.first.isChainable(),n||(this.first.front=this.front),"delete"===this.operator&&e.scope.check(this.first.unwrapAll().value)&&this.error("delete operand may not be argument or var"),("--"===(r=this.operator)||"++"===r)&&(s=this.first.unwrapAll().value,Tt.call(V,s)>=0)&&this.error('cannot increment/decrement "'+this.first.unwrapAll().value+'"'),this.isYield())return this.compileYield(e);if(this.isUnary())return this.compileUnary(e);if(n)return this.compileChain(e);switch(this.operator){case"?":return this.compileExistence(e);case"**":return this.compilePower(e);case"//":return this.compileFloorDivision(e);case"%%":return this.compileModulo(e);default:return i=this.first.compileToFragments(e,F),o=this.second.compileToFragments(e,F),t=[].concat(i,this.makeCode(" "+this.operator+" "),o),F>=e.level?t:this.wrapInBraces(t)}},n.prototype.compileChain=function(e){var t,n,i,r;return i=this.first.second.cache(e),this.first.second=i[0],r=i[1],n=this.first.compileToFragments(e,F),t=n.concat(this.makeCode(" "+(this.invert?"&&":"||")+" "),r.compileToFragments(e),this.makeCode(" "+this.operator+" "),this.second.compileToFragments(e,F)),this.wrapInBraces(t)},n.prototype.compileExistence=function(e){var t,n;return this.first.isComplex()?(n=new x(e.scope.freeVariable("ref")),t=new O(new i(n,this.first))):(t=this.first,n=t),new b(new u(t),n,{type:"if"}).addElse(this.second).compileToFragments(e)},n.prototype.compileUnary=function(e){var t,i,r;return i=[],t=this.operator,i.push([this.makeCode(t)]),"!"===t&&this.first instanceof u?(this.first.negated=!this.first.negated,this.first.compileToFragments(e)):e.level>=T?new O(this).compileToFragments(e):(r="+"===t||"-"===t,("new"===t||"typeof"===t||"delete"===t||r&&this.first instanceof n&&this.first.operator===t)&&i.push([this.makeCode(" ")]),(r&&this.first instanceof n||"new"===t&&this.first.isStatement(e))&&(this.first=new O(this.first)),i.push(this.first.compileToFragments(e,F)),this.flip&&i.reverse(),this.joinFragmentArrays(i,""))},n.prototype.compileYield=function(e){var t,n;return n=[],t=this.operator,null==e.scope.parent&&this.error("yield statements must occur within a function generator."),Tt.call(Object.keys(this.first),"expression")>=0&&!(this.first instanceof W)?this.isYieldReturn()?n.push(this.first.compileToFragments(e,L)):null!=this.first.expression&&n.push(this.first.expression.compileToFragments(e,F)):(n.push([this.makeCode("("+t+" ")]),n.push(this.first.compileToFragments(e,F)),n.push([this.makeCode(")")])),this.joinFragmentArrays(n,"")},n.prototype.compilePower=function(e){var n;return n=new z(new x("Math"),[new t(new x("pow"))]),new o(n,[this.first,this.second]).compileToFragments(e)},n.prototype.compileFloorDivision=function(e){var i,r;return r=new z(new x("Math"),[new t(new x("floor"))]),i=new n("/",this.first,this.second),new o(r,[i]).compileToFragments(e)},n.prototype.compileModulo=function(e){var t;return t=new z(new x(bt("modulo",e))),new o(t,[this.first,this.second]).compileToFragments(e)},n.prototype.toString=function(e){return n.__super__.toString.call(this,e,this.constructor.name+" "+this.operator)},n}(r),e.In=k=function(e){function t(e,t){this.object=e,this.array=t}return kt(t,e),t.prototype.children=["object","array"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r,s;if(this.array instanceof z&&this.array.isArray()&&this.array.base.objects.length){for(s=this.array.base.objects,n=0,i=s.length;i>n;n++)if(r=s[n],r instanceof G){t=!0;break}if(!t)return this.compileOrTest(e)}return this.compileLoopTest(e)},t.prototype.compileOrTest=function(e){var t,n,i,r,s,o,a,c,h,l,u,p;for(c=this.object.cache(e,F),u=c[0],a=c[1],h=this.negated?[" !== "," && "]:[" === "," || "],t=h[0],n=h[1],p=[],l=this.array.base.objects,i=s=0,o=l.length;o>s;i=++s)r=l[i],i&&p.push(this.makeCode(n)),p=p.concat(i?a:u,this.makeCode(t),r.compileToFragments(e,T));return F>e.level?p:this.wrapInBraces(p)},t.prototype.compileLoopTest=function(e){var t,n,i,r;return i=this.object.cache(e,E),r=i[0],n=i[1],t=[].concat(this.makeCode(bt("indexOf",e)+".call("),this.array.compileToFragments(e,E),this.makeCode(", "),n,this.makeCode(") "+(this.negated?"< 0":">= 0"))),st(r)===st(n)?t:(t=r.concat(this.makeCode(", "),t),E>e.level?t:this.wrapInBraces(t))},t.prototype.toString=function(e){return t.__super__.toString.call(this,e,this.constructor.name+(this.negated?"!":""))},t}(r),e.Try=Y=function(e){function t(e,t,n,i){this.attempt=e,this.errorVariable=t,this.recovery=n,this.ensure=i}return kt(t,e),t.prototype.children=["attempt","recovery","ensure"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t;return this.attempt.jumps(e)||(null!=(t=this.recovery)?t.jumps(e):void 0)},t.prototype.makeReturn=function(e){return this.attempt&&(this.attempt=this.attempt.makeReturn(e)),this.recovery&&(this.recovery=this.recovery.makeReturn(e)),this},t.prototype.compileNode=function(e){var t,n,r,s;return e.indent+=q,s=this.attempt.compileToFragments(e,L),t=this.recovery?(r=new x("_error"),this.errorVariable?this.recovery.unshift(new i(this.errorVariable,r)):void 0,[].concat(this.makeCode(" catch ("),r.compileToFragments(e),this.makeCode(") {\n"),this.recovery.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}"))):this.ensure||this.recovery?[]:[this.makeCode(" catch (_error) {}")],n=this.ensure?[].concat(this.makeCode(" finally {\n"),this.ensure.compileToFragments(e,L),this.makeCode("\n"+this.tab+"}")):[],[].concat(this.makeCode(this.tab+"try {\n"),s,this.makeCode("\n"+this.tab+"}"),t,n)},t}(r),e.Throw=W=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.isStatement=Q,t.prototype.jumps=D,t.prototype.makeReturn=X,t.prototype.compileNode=function(e){return[].concat(this.makeCode(this.tab+"throw "),this.expression.compileToFragments(e),this.makeCode(";"))},t}(r),e.Existence=u=function(e){function t(e){this.expression=e}return kt(t,e),t.prototype.children=["expression"],t.prototype.invert=S,t.prototype.compileNode=function(e){var t,n,i,r;return this.expression.front=this.front,i=this.expression.compile(e,F),g.test(i)&&!e.scope.check(i)?(r=this.negated?["===","||"]:["!==","&&"],t=r[0],n=r[1],i="typeof "+i+" "+t+' "undefined" '+n+" "+i+" "+t+" null"):i=i+" "+(this.negated?"==":"!=")+" null",[this.makeCode(C>=e.level?i:"("+i+")")]},t}(r),e.Parens=O=function(e){function t(e){this.body=e}return kt(t,e),t.prototype.children=["body"],t.prototype.unwrap=function(){return this.body},t.prototype.isComplex=function(){return this.body.isComplex()},t.prototype.compileNode=function(e){var t,n,i;return n=this.body.unwrap(),n instanceof z&&n.isAtomic()?(n.front=this.front,n.compileToFragments(e)):(i=n.compileToFragments(e,N),t=F>e.level&&(n instanceof I||n instanceof o||n instanceof f&&n.returns),t?i:this.wrapInBraces(i))},t}(r),e.For=f=function(e){function t(e,t){var n;this.source=t.source,this.guard=t.guard,this.step=t.step,this.name=t.name,this.index=t.index,this.body=s.wrap([e]),this.own=!!t.own,this.object=!!t.object,this.object&&(n=[this.index,this.name],this.name=n[0],this.index=n[1]),this.index instanceof z&&this.index.error("index cannot be a pattern matching expression"),this.range=this.source instanceof z&&this.source.base instanceof j&&!this.source.properties.length,this.pattern=this.name instanceof z,this.range&&this.index&&this.index.error("indexes do not apply to range loops"),this.range&&this.pattern&&this.name.error("cannot pattern match over range loops"),this.own&&!this.object&&this.name.error("cannot use own with for-in"),this.returns=!1}return kt(t,e),t.prototype.children=["body","source","guard","step"],t.prototype.compileNode=function(e){var t,n,r,o,a,c,h,l,u,p,d,f,m,v,y,k,w,T,C,F,N,S,D,A,I,_,$,j,B,V,P,U,G,H;return t=s.wrap([this.body]),D=t.expressions,T=D[D.length-1],(null!=T?T.jumps():void 0)instanceof M&&(this.returns=!1),B=this.range?this.source.base:this.source,j=e.scope,this.pattern||(F=this.name&&this.name.compile(e,E)),v=this.index&&this.index.compile(e,E),F&&!this.pattern&&j.find(F),v&&j.find(v),this.returns&&($=j.freeVariable("results")),y=this.object&&v||j.freeVariable("i",{single:!0}),k=this.range&&F||v||y,w=k!==y?k+" = ":"",this.step&&!this.range&&(A=this.cacheToCodeFragments(this.step.cache(e,E,ot)),V=A[0],U=A[1],P=U.match(R)),this.pattern&&(F=y),H="",d="",h="",f=this.tab+q,this.range?p=B.compileToFragments(lt(e,{index:y,name:F,step:this.step,isComplex:ot})):(G=this.source.compile(e,E),!F&&!this.own||g.test(G)||(h+=""+this.tab+(S=j.freeVariable("ref"))+" = "+G+";\n",G=S),F&&!this.pattern&&(N=F+" = "+G+"["+k+"]"),this.object||(V!==U&&(h+=""+this.tab+V+";\n"),this.step&&P&&(u=0>pt(P[0]))||(C=j.freeVariable("len")),a=""+w+y+" = 0, "+C+" = "+G+".length",c=""+w+y+" = "+G+".length - 1",r=y+" < "+C,o=y+" >= 0",this.step?(P?u&&(r=o,a=c):(r=U+" > 0 ? "+r+" : "+o,a="("+U+" > 0 ? ("+a+") : "+c+")"),m=y+" += "+U):m=""+(k!==y?"++"+y:y+"++"),p=[this.makeCode(a+"; "+r+"; "+w+m)])),this.returns&&(I=""+this.tab+$+" = [];\n",_="\n"+this.tab+"return "+$+";",t.makeReturn($)),this.guard&&(t.expressions.length>1?t.expressions.unshift(new b(new O(this.guard).invert(),new x("continue"))):this.guard&&(t=s.wrap([new b(this.guard,t)]))),this.pattern&&t.expressions.unshift(new i(this.name,new x(G+"["+k+"]"))),l=[].concat(this.makeCode(h),this.pluckDirectCall(e,t)),N&&(H="\n"+f+N+";"),this.object&&(p=[this.makeCode(k+" in "+G)],this.own&&(d="\n"+f+"if (!"+bt("hasProp",e)+".call("+G+", "+k+")) continue;")),n=t.compileToFragments(lt(e,{indent:f}),L),n&&n.length>0&&(n=[].concat(this.makeCode("\n"),n,this.makeCode("\n"))),[].concat(l,this.makeCode(""+(I||"")+this.tab+"for ("),p,this.makeCode(") {"+d+H),n,this.makeCode(this.tab+"}"+(_||"")))},t.prototype.pluckDirectCall=function(e,t){var n,r,s,a,h,l,u,p,d,f,m,g,v,y,b,k;for(r=[],d=t.expressions,h=l=0,u=d.length;u>l;h=++l)s=d[h],s=s.unwrapAll(),s instanceof o&&(k=null!=(f=s.variable)?f.unwrapAll():void 0,(k instanceof c||k instanceof z&&(null!=(m=k.base)?m.unwrapAll():void 0)instanceof c&&1===k.properties.length&&("call"===(g=null!=(v=k.properties[0].name)?v.value:void 0)||"apply"===g))&&(a=(null!=(y=k.base)?y.unwrapAll():void 0)||k,p=new x(e.scope.freeVariable("fn")),n=new z(p),k.base&&(b=[n,k],k.base=b[0],n=b[1]),t.expressions[h]=new o(n,s.args),r=r.concat(this.makeCode(this.tab),new i(p,a).compileToFragments(e,L),this.makeCode(";\n"))));return r},t}(J),e.Switch=H=function(e){function t(e,t,n){this.subject=e,this.cases=t,this.otherwise=n}return kt(t,e),t.prototype.children=["subject","cases","otherwise"],t.prototype.isStatement=Q,t.prototype.jumps=function(e){var t,n,i,r,s,o,a,c;for(null==e&&(e={block:!0}),o=this.cases,i=0,s=o.length;s>i;i++)if(a=o[i],n=a[0],t=a[1],r=t.jumps(e))return r;return null!=(c=this.otherwise)?c.jumps(e):void 0},t.prototype.makeReturn=function(e){var t,n,i,r,o;for(r=this.cases,t=0,n=r.length;n>t;t++)i=r[t],i[1].makeReturn(e);return e&&(this.otherwise||(this.otherwise=new s([new x("void 0")]))),null!=(o=this.otherwise)&&o.makeReturn(e),this},t.prototype.compileNode=function(e){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g;for(c=e.indent+q,h=e.indent=c+q,o=[].concat(this.makeCode(this.tab+"switch ("),this.subject?this.subject.compileToFragments(e,N):this.makeCode("false"),this.makeCode(") {\n")),f=this.cases,a=l=0,p=f.length;p>l;a=++l){for(m=f[a],r=m[0],t=m[1],g=rt([r]),u=0,d=g.length;d>u;u++)i=g[u],this.subject||(i=i.invert()),o=o.concat(this.makeCode(c+"case "),i.compileToFragments(e,N),this.makeCode(":\n"));if((n=t.compileToFragments(e,L)).length>0&&(o=o.concat(n,this.makeCode("\n"))),a===this.cases.length-1&&!this.otherwise)break;s=this.lastNonComment(t.expressions),s instanceof M||s instanceof x&&s.jumps()&&"debugger"!==s.value||o.push(i.makeCode(h+"break;\n"))}return this.otherwise&&this.otherwise.expressions.length&&o.push.apply(o,[this.makeCode(c+"default:\n")].concat(Ct.call(this.otherwise.compileToFragments(e,L)),[this.makeCode("\n")])),o.push(this.makeCode(this.tab+"}")),o},t}(r),e.If=b=function(e){function t(e,t,n){this.body=t,null==n&&(n={}),this.condition="unless"===n.type?e.invert():e,this.elseBody=null,this.isChain=!1,this.soak=n.soak}return kt(t,e),t.prototype.children=["condition","body","elseBody"],t.prototype.bodyNode=function(){var e;return null!=(e=this.body)?e.unwrap():void 0},t.prototype.elseBodyNode=function(){var e;return null!=(e=this.elseBody)?e.unwrap():void 0},t.prototype.addElse=function(e){return this.isChain?this.elseBodyNode().addElse(e):(this.isChain=e instanceof t,this.elseBody=this.ensureBlock(e),this.elseBody.updateLocationDataIfMissing(e.locationData)),this},t.prototype.isStatement=function(e){var t;return(null!=e?e.level:void 0)===L||this.bodyNode().isStatement(e)||(null!=(t=this.elseBodyNode())?t.isStatement(e):void 0)},t.prototype.jumps=function(e){var t;return this.body.jumps(e)||(null!=(t=this.elseBody)?t.jumps(e):void 0)},t.prototype.compileNode=function(e){return this.isStatement(e)?this.compileStatement(e):this.compileExpression(e)},t.prototype.makeReturn=function(e){return e&&(this.elseBody||(this.elseBody=new s([new x("void 0")]))),this.body&&(this.body=new s([this.body.makeReturn(e)])),this.elseBody&&(this.elseBody=new s([this.elseBody.makeReturn(e)])),this},t.prototype.ensureBlock=function(e){return e instanceof s?e:new s([e])},t.prototype.compileStatement=function(e){var n,i,r,s,o,a,c;return r=tt(e,"chainChild"),(o=tt(e,"isExistentialEquals"))?new t(this.condition.invert(),this.elseBodyNode(),{type:"if"}).compileToFragments(e):(c=e.indent+q,s=this.condition.compileToFragments(e,N),i=this.ensureBlock(this.body).compileToFragments(lt(e,{indent:c})),a=[].concat(this.makeCode("if ("),s,this.makeCode(") {\n"),i,this.makeCode("\n"+this.tab+"}")),r||a.unshift(this.makeCode(this.tab)),this.elseBody?(n=a.concat(this.makeCode(" else ")),this.isChain?(e.chainChild=!0,n=n.concat(this.elseBody.unwrap().compileToFragments(e,L))):n=n.concat(this.makeCode("{\n"),this.elseBody.compileToFragments(lt(e,{indent:c}),L),this.makeCode("\n"+this.tab+"}")),n):a)},t.prototype.compileExpression=function(e){var t,n,i,r;return i=this.condition.compileToFragments(e,C),n=this.bodyNode().compileToFragments(e,E),t=this.elseBodyNode()?this.elseBodyNode().compileToFragments(e,E):[this.makeCode("void 0")],r=i.concat(this.makeCode(" ? "),n,this.makeCode(" : "),t),e.level>=C?this.wrapInBraces(r):r},t.prototype.unfoldSoak=function(){return this.soak&&this},t}(r),K={extend:function(e){return"function(child, parent) { for (var key in parent) { if ("+bt("hasProp",e)+".call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; }"},bind:function(){return"function(fn, me){ return function(){ return fn.apply(me, arguments); }; }"},indexOf:function(){return"[].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }"},modulo:function(){return"function(a, b) { return (+a % (b = +b) + b) % b; }"},hasProp:function(){return"{}.hasOwnProperty"},slice:function(){return"[].slice"}},L=1,N=2,E=3,C=4,F=5,T=6,q=" ",g=/^(?!\d)[$\w\x7f-\uffff]+$/,B=/^[+-]?\d+$/,m=/^[+-]?0x[\da-f]+/i,R=/^[+-]?(?:0x[\da-f]+|\d*\.?\d+(?:e[+-]?\d+)?)$/i,y=/^['"]/,v=/^\//,bt=function(e,t){var n,i;return i=t.scope.root,e in i.utilities?i.utilities[e]:(n=i.freeVariable(e),i.assign(n,K[e](t)),i.utilities[e]=n)},ut=function(e,t){return e=e.replace(/\n/g,"$&"+t),e.replace(/\s+$/,"")},pt=function(e){return null==e?0:e.match(m)?parseInt(e,16):parseFloat(e)},at=function(e){return e instanceof x&&"arguments"===e.value&&!e.asKey},ct=function(e){return e instanceof x&&"this"===e.value&&!e.asKey||e instanceof c&&e.bound||e instanceof o&&e.isSuper},ot=function(e){return e.isComplex()||("function"==typeof e.isAssignable?e.isAssignable():void 0)},yt=function(e,t,n){var i;if(i=t[n].unfoldSoak(e))return t[n]=i.body,i.body=new z(t),i}}.call(this),t.exports}(),_dereq_["./sourcemap"]=function(){var e={},t={exports:e};return function(){var e,n;e=function(){function e(e){this.line=e,this.columns=[]}return e.prototype.add=function(e,t,n){var i,r;return r=t[0],i=t[1],null==n&&(n={}),this.columns[e]&&n.noReplace?void 0:this.columns[e]={line:this.line,column:e,sourceLine:r,sourceColumn:i}},e.prototype.sourceLocation=function(e){for(var t;!((t=this.columns[e])||0>=e);)e--;return t&&[t.sourceLine,t.sourceColumn]},e}(),n=function(){function t(){this.lines=[]}var n,i,r,s;return t.prototype.add=function(t,n,i){var r,s,o,a;return null==i&&(i={}),o=n[0],s=n[1],a=(r=this.lines)[o]||(r[o]=new e(o)),a.add(s,t,i)},t.prototype.sourceLocation=function(e){var t,n,i;for(n=e[0],t=e[1];!((i=this.lines[n])||0>=n);)n--;return i&&i.sourceLocation(t)},t.prototype.generate=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v;for(null==e&&(e={}),null==t&&(t=null),v=0,s=0,a=0,o=0,d=!1,n="",f=this.lines,u=i=0,c=f.length;c>i;u=++i)if(l=f[u])for(m=l.columns,r=0,h=m.length;h>r;r++)if(p=m[r]){for(;p.line>v;)s=0,d=!1,n+=";",v++;d&&(n+=",",d=!1),n+=this.encodeVlq(p.column-s),s=p.column,n+=this.encodeVlq(0),n+=this.encodeVlq(p.sourceLine-a),a=p.sourceLine,n+=this.encodeVlq(p.sourceColumn-o),o=p.sourceColumn,d=!0}return g={version:3,file:e.generatedFile||"",sourceRoot:e.sourceRoot||"",sources:e.sourceFiles||[""],names:[],mappings:n},e.inline&&(g.sourcesContent=[t]),JSON.stringify(g,null,2)},r=5,i=1<e?1:0,a=(Math.abs(e)<<1)+o;a||!t;)n=a&s,a>>=r,a&&(n|=i),t+=this.encodeBase64(n);return t},n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t.prototype.encodeBase64=function(e){return n[e]||function(){throw Error("Cannot Base64 encode value: "+e)}()},t}(),t.exports=n}.call(this),t.exports}(),_dereq_["./coffee-script"]=function(){var e={},t={exports:e};return function(){var t,n,i,r,s,o,a,c,h,l,u,p,d,f,m,g,v,y,b={}.hasOwnProperty,k=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};if(a=_dereq_("fs"),v=_dereq_("vm"),f=_dereq_("path"),t=_dereq_("./lexer").Lexer,d=_dereq_("./parser").parser,h=_dereq_("./helpers"),n=_dereq_("./sourcemap"),e.VERSION="1.9.3",e.FILE_EXTENSIONS=[".coffee",".litcoffee",".coffee.md"],e.helpers=h,y=function(e){return function(t,n){var i;null==n&&(n={});try{return e.call(this,t,n) +}catch(r){if(i=r,"string"!=typeof t)throw i;throw h.updateSyntaxError(i,t,n.filename)}}},e.compile=r=y(function(e,t){var i,r,s,o,a,c,l,u,f,m,g,v,y,b,k;for(v=h.merge,o=h.extend,t=o({},t),t.sourceMap&&(g=new n),k=p.tokenize(e,t),t.referencedVars=function(){var e,t,n;for(n=[],e=0,t=k.length;t>e;e++)b=k[e],b.variable&&n.push(b[1]);return n}(),c=d.parse(k).compileToFragments(t),s=0,t.header&&(s+=1),t.shiftLine&&(s+=1),r=0,f="",u=0,m=c.length;m>u;u++)a=c[u],t.sourceMap&&(a.locationData&&!/^[;\s]*$/.test(a.code)&&g.add([a.locationData.first_line,a.locationData.first_column],[s,r],{noReplace:!0}),y=h.count(a.code,"\n"),s+=y,y?r=a.code.length-(a.code.lastIndexOf("\n")+1):r+=a.code.length),f+=a.code;return t.header&&(l="Generated by CoffeeScript "+this.VERSION,f="// "+l+"\n"+f),t.sourceMap?(i={js:f},i.sourceMap=g,i.v3SourceMap=g.generate(t,e),i):f}),e.tokens=y(function(e,t){return p.tokenize(e,t)}),e.nodes=y(function(e,t){return"string"==typeof e?d.parse(p.tokenize(e,t)):d.parse(e)}),e.run=function(e,t){var n,i,s,o;return null==t&&(t={}),s=_dereq_.main,s.filename=process.argv[1]=t.filename?a.realpathSync(t.filename):".",s.moduleCache&&(s.moduleCache={}),i=t.filename?f.dirname(a.realpathSync(t.filename)):a.realpathSync("."),s.paths=_dereq_("module")._nodeModulePaths(i),(!h.isCoffee(s.filename)||_dereq_.extensions)&&(n=r(e,t),e=null!=(o=n.js)?o:n),s._compile(e,s.filename)},e.eval=function(e,t){var n,i,s,o,a,c,h,l,u,p,d,m,g,y,k,w,T;if(null==t&&(t={}),e=e.trim()){if(o=null!=(m=v.Script.createContext)?m:v.createContext,c=null!=(g=v.isContext)?g:function(){return t.sandbox instanceof o().constructor},o){if(null!=t.sandbox){if(c(t.sandbox))w=t.sandbox;else{w=o(),y=t.sandbox;for(l in y)b.call(y,l)&&(T=y[l],w[l]=T)}w.global=w.root=w.GLOBAL=w}else w=global;if(w.__filename=t.filename||"eval",w.__dirname=f.dirname(w.__filename),w===global&&!w.module&&!w.require){for(n=_dereq_("module"),w.module=i=new n(t.modulename||"eval"),w.require=s=function(e){return n._load(e,i,!0)},i.filename=w.__filename,k=Object.getOwnPropertyNames(_dereq_),a=0,u=k.length;u>a;a++)d=k[a],"paths"!==d&&(s[d]=_dereq_[d]);s.paths=i.paths=n._nodeModulePaths(process.cwd()),s.resolve=function(e){return n._resolveFilename(e,i)}}}p={};for(l in t)b.call(t,l)&&(T=t[l],p[l]=T);return p.bare=!0,h=r(e,p),w===global?v.runInThisContext(h):v.runInContext(h,w)}},e.register=function(){return _dereq_("./register")},_dereq_.extensions)for(m=this.FILE_EXTENSIONS,l=0,u=m.length;u>l;l++)s=m[l],null==(i=_dereq_.extensions)[s]&&(i[s]=function(){throw Error("Use CoffeeScript.register() or require the coffee-script/register module to require "+s+" files.")});e._compileFile=function(e,t){var n,i,s,o;null==t&&(t=!1),s=a.readFileSync(e,"utf8"),o=65279===s.charCodeAt(0)?s.substring(1):s;try{n=r(o,{filename:e,sourceMap:t,literate:h.isLiterate(e)})}catch(c){throw i=c,h.updateSyntaxError(i,o,e)}return n},p=new t,d.lexer={lex:function(){var e,t;return t=d.tokens[this.pos++],t?(e=t[0],this.yytext=t[1],this.yylloc=t[2],d.errorToken=t.origin||t,this.yylineno=this.yylloc.first_line):e="",e},setInput:function(e){return d.tokens=e,this.pos=0},upcomingInput:function(){return""}},d.yy=_dereq_("./nodes"),d.yy.parseError=function(e,t){var n,i,r,s,o,a;return o=t.token,s=d.errorToken,a=d.tokens,i=s[0],r=s[1],n=s[2],r=function(){switch(!1){case s!==a[a.length-1]:return"end of input";case"INDENT"!==i&&"OUTDENT"!==i:return"indentation";case"IDENTIFIER"!==i&&"NUMBER"!==i&&"STRING"!==i&&"STRING_START"!==i&&"REGEX"!==i&&"REGEX_START"!==i:return i.replace(/_START$/,"").toLowerCase();default:return h.nameWhitespaceCharacter(r)}}(),h.throwSyntaxError("unexpected "+r,n)},o=function(e,t){var n,i,r,s,o,a,c,h,l,u,p,d;return s=void 0,r="",e.isNative()?r="native":(e.isEval()?(s=e.getScriptNameOrSourceURL(),s||(r=e.getEvalOrigin()+", ")):s=e.getFileName(),s||(s=""),h=e.getLineNumber(),i=e.getColumnNumber(),u=t(s,h,i),r=u?s+":"+u[0]+":"+u[1]:s+":"+h+":"+i),o=e.getFunctionName(),a=e.isConstructor(),c=!(e.isToplevel()||a),c?(l=e.getMethodName(),d=e.getTypeName(),o?(p=n="",d&&o.indexOf(d)&&(p=d+"."),l&&o.indexOf("."+l)!==o.length-l.length-1&&(n=" [as "+l+"]"),""+p+o+n+" ("+r+")"):d+"."+(l||"")+" ("+r+")"):a?"new "+(o||"")+" ("+r+")":o?o+" ("+r+")":r},g={},c=function(t){var n,i;if(g[t])return g[t];if(i=null!=f?f.extname(t):void 0,!(0>k.call(e.FILE_EXTENSIONS,i)))return n=e._compileFile(t,!0),g[t]=n.sourceMap},Error.prepareStackTrace=function(t,n){var i,r,s;return s=function(e,t,n){var i,r;return r=c(e),r&&(i=r.sourceLocation([t-1,n-1])),i?[i[0]+1,i[1]+1]:null},r=function(){var t,r,a;for(a=[],t=0,r=n.length;r>t&&(i=n[t],i.getFunction()!==e.run);t++)a.push(" at "+o(i,s));return a}(),""+t+"\n"+r.join("\n")+"\n"}}.call(this),t.exports}(),_dereq_["./browser"]=function(){var exports={},module={exports:exports};return function(){var CoffeeScript,compile,runScripts,indexOf=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};CoffeeScript=_dereq_("./coffee-script"),CoffeeScript.require=_dereq_,compile=CoffeeScript.compile,CoffeeScript.eval=function(code,options){return null==options&&(options={}),null==options.bare&&(options.bare=!0),eval(compile(code,options))},CoffeeScript.run=function(e,t){return null==t&&(t={}),t.bare=!0,t.shiftLine=!0,Function(compile(e,t))()},"undefined"!=typeof window&&null!==window&&("undefined"!=typeof btoa&&null!==btoa&&"undefined"!=typeof JSON&&null!==JSON&&"undefined"!=typeof unescape&&null!==unescape&&"undefined"!=typeof encodeURIComponent&&null!==encodeURIComponent&&(compile=function(e,t){var n,i,r;return null==t&&(t={}),t.sourceMap=!0,t.inline=!0,i=CoffeeScript.compile(e,t),n=i.js,r=i.v3SourceMap,n+"\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(r)))+"\n//# sourceURL=coffeescript"}),CoffeeScript.load=function(e,t,n,i){var r;return null==n&&(n={}),null==i&&(i=!1),n.sourceFiles=[e],r=window.ActiveXObject?new window.ActiveXObject("Microsoft.XMLHTTP"):new window.XMLHttpRequest,r.open("GET",e,!0),"overrideMimeType"in r&&r.overrideMimeType("text/plain"),r.onreadystatechange=function(){var s,o;if(4===r.readyState){if(0!==(o=r.status)&&200!==o)throw Error("Could not load "+e);if(s=[r.responseText,n],i||CoffeeScript.run.apply(CoffeeScript,s),t)return t(s)}},r.send(null)},runScripts=function(){var e,t,n,i,r,s,o,a,c,h,l;for(l=window.document.getElementsByTagName("script"),t=["text/coffeescript","text/literate-coffeescript"],e=function(){var e,n,i,r;for(r=[],e=0,n=l.length;n>e;e++)c=l[e],i=c.type,indexOf.call(t,i)>=0&&r.push(c);return r}(),s=0,n=function(){var t;return t=e[s],t instanceof Array?(CoffeeScript.run.apply(CoffeeScript,t),s++,n()):void 0},i=function(i,r){var s,o;return s={literate:i.type===t[1]},o=i.src||i.getAttribute("data-src"),o?CoffeeScript.load(o,function(t){return e[r]=t,n()},s,!0):(s.sourceFiles=["embedded"],e[r]=[i.innerHTML,s])},r=o=0,a=e.length;a>o;r=++o)h=e[r],i(h,r);return n()},window.addEventListener?window.addEventListener("DOMContentLoaded",runScripts,!1):window.attachEvent("onload",runScripts))}.call(this),module.exports}(),_dereq_["./coffee-script"]}();"function"==typeof define&&define.amd?define(function(){return CoffeeScript}):root.CoffeeScript=CoffeeScript})(this); +}); + +ace.define("ace/mode/coffee_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/coffee/coffee"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var coffee = require("../mode/coffee/coffee"); + +window.addEventListener = function() {}; + + +var Worker = exports.Worker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(250); +}; + +oop.inherits(Worker, Mirror); + +(function() { + + this.onUpdate = function() { + var value = this.doc.getValue(); + var errors = []; + try { + coffee.compile(value); + } catch(e) { + var loc = e.location; + if (loc) { + errors.push({ + row: loc.first_line, + column: loc.first_column, + endRow: loc.last_line, + endColumn: loc.last_column, + text: e.message, + type: "error" + }); + } + } + this.sender.emit("annotate", errors); + }; + +}).call(Worker.prototype); + +}); + +ace.define("ace/lib/es5-shim",["require","exports","module"], function(require, exports, module) { + +function Empty() {} + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + var target = this; + if (typeof target != "function") { + throw new TypeError("Function.prototype.bind called on incompatible " + target); + } + var args = slice.call(arguments, 1); // for normal call + var bound = function () { + + if (this instanceof bound) { + + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + if(target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; +} +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var _toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} +if ([1,2].splice(0).length != 2) { + if(function() { // test IE < 9 to splice bug - see issue #138 + function makeArray(l) { + var a = new Array(l+2); + a[0] = a[1] = 0; + return a; + } + var array = [], lengthBefore; + + array.splice.apply(array, makeArray(20)); + array.splice.apply(array, makeArray(26)); + + lengthBefore = array.length; //46 + array.splice(5, 0, "XXX"); // add one element + + lengthBefore + 1 == array.length + + if (lengthBefore + 1 == array.length) { + return true;// has right splice implementation without bugs + } + }()) {//IE 6/7 + var array_splice = Array.prototype.splice; + Array.prototype.splice = function(start, deleteCount) { + if (!arguments.length) { + return []; + } else { + return array_splice.apply(this, [ + start === void 0 ? 0 : start, + deleteCount === void 0 ? (this.length - start) : deleteCount + ].concat(slice.call(arguments, 2))) + } + }; + } else {//IE8 + Array.prototype.splice = function(pos, removeCount){ + var length = this.length; + if (pos > 0) { + if (pos > length) + pos = length; + } else if (pos == void 0) { + pos = 0; + } else if (pos < 0) { + pos = Math.max(length + pos, 0); + } + + if (!(pos+removeCount < length)) + removeCount = length - pos; + + var removed = this.slice(pos, pos+removeCount); + var insert = slice.call(arguments, 2); + var add = insert.length; + if (pos === length) { + if (add) { + this.push.apply(this, insert); + } + } else { + var remove = Math.min(removeCount, length - pos); + var tailOldPos = pos + remove; + var tailNewPos = tailOldPos + add - remove; + var tailCount = length - tailOldPos; + var lengthAfterRemove = length - remove; + + if (tailNewPos < tailOldPos) { // case A + for (var i = 0; i < tailCount; ++i) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } else if (tailNewPos > tailOldPos) { // case B + for (i = tailCount; i--; ) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } // else, add == remove (nothing to do) + + if (add && pos === lengthAfterRemove) { + this.length = lengthAfterRemove; // truncate array + this.push.apply(this, insert); + } else { + this.length = lengthAfterRemove + add; // reserves space + for (i = 0; i < add; ++i) { + this[pos+i] = insert[i]; + } + } + } + return removed; + }; + } +} +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return _toString(obj) == "[object Array]"; + }; +} +var boxedString = Object("a"), + splitString = boxedString[0] != "a" || !(0 in boxedString); + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + thisp = arguments[1], + i = -1, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (++i < length) { + if (i in self) { + fun.call(thisp, self[i], i, object); + } + } + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, object); + } + return result; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = [], + value, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (fun.call(thisp, value, i, object)) { + result.push(value); + } + } + } + return result; + }; +} +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, object)) { + return false; + } + } + return true; + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, object)) { + return true; + } + } + return false; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduce of empty array with no initial value"); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + if (++i >= length) { + throw new TypeError("reduce of empty array with no initial value"); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = fun.call(void 0, result, self[i], i, object); + } + } + + return result; + }; +} +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + if (--i < 0) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + } while (true); + } + + do { + if (i in this) { + result = fun.call(void 0, result, self[i], i, object); + } + } while (i--); + + return result; + }; +} +if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = toInteger(arguments[1]); + } + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} +if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = Math.min(i, toInteger(arguments[1])); + } + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) { + return i; + } + } + return -1; + }; +} +if (!Object.getPrototypeOf) { + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + descriptor = { enumerable: true, configurable: true }; + if (supportsAccessors) { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + return descriptor; + } + } + descriptor.value = object[property]; + return descriptor; + }; +} +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} +if (!Object.create) { + var createEmpty; + if (Object.prototype.__proto__ === null) { + createEmpty = function () { + return { "__proto__": null }; + }; + } else { + createEmpty = function () { + var empty = {}; + for (var i in empty) + empty[i] = null; + empty.constructor = + empty.hasOwnProperty = + empty.propertyIsEnumerable = + empty.isPrototypeOf = + empty.toLocaleString = + empty.toString = + empty.valueOf = + empty.__proto__ = null; + return empty; + } + } + + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = createEmpty(); + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + } +} +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + } + } + if (owns(descriptor, "value")) { + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + delete object[property]; + object[property] = descriptor.value; + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} +if (!Object.seal) { + Object.seal = function seal(object) { + return object; + }; +} +if (!Object.freeze) { + Object.freeze = function freeze(object) { + return object; + }; +} +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + return object; + }; +} +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} +if (!Object.keys) { + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) { + hasDontEnumBug = false; + } + + Object.keys = function keys(object) { + + if ( + (typeof object != "object" && typeof object != "function") || + object === null + ) { + throw new TypeError("Object.keys called on a non-object"); + } + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + return keys; + }; + +} +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +function toInteger(n) { + n = +n; + if (n !== n) { // isNaN + n = 0; + } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; +} + +function isPrimitive(input) { + var type = typeof input; + return ( + input === null || + type === "undefined" || + type === "boolean" || + type === "number" || + type === "string" + ); +} + +function toPrimitive(input) { + var val, valueOf, toString; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (typeof valueOf === "function") { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toString = input.toString; + if (typeof toString === "function") { + val = toString.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); +} +var toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert "+o+" to object"); + } + return Object(o); +}; + +}); diff --git a/htdocs/includes/ace/worker-css.js b/htdocs/includes/ace/worker-css.js new file mode 100644 index 00000000000..7bee71a188f --- /dev/null +++ b/htdocs/includes/ace/worker-css.js @@ -0,0 +1,8760 @@ +"no use strict"; +;(function(window) { +if (typeof window.window != "undefined" && window.document) + return; +if (window.require && window.define) + return; + +if (!window.console) { + window.console = function() { + var msgs = Array.prototype.slice.call(arguments, 0); + postMessage({type: "log", data: msgs}); + }; + window.console.error = + window.console.warn = + window.console.log = + window.console.trace = window.console; +} +window.window = window; +window.ace = window; + +window.onerror = function(message, file, line, col, err) { + postMessage({type: "error", data: { + message: message, + data: err.data, + file: file, + line: line, + col: col, + stack: err.stack + }}); +}; + +window.normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = (base ? base + "/" : "") + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +window.require = function require(parentId, id) { + if (!id) { + id = parentId; + parentId = null; + } + if (!id.charAt) + throw new Error("worker.js require() accepts only (parentId, id) as arguments"); + + id = window.normalizeModule(parentId, id); + + var module = window.require.modules[id]; + if (module) { + if (!module.initialized) { + module.initialized = true; + module.exports = module.factory().exports; + } + return module.exports; + } + + if (!window.require.tlns) + return console.log("unable to load " + id); + + var path = resolveModuleId(id, window.require.tlns); + if (path.slice(-3) != ".js") path += ".js"; + + window.require.id = id; + window.require.modules[id] = {}; // prevent infinite loop on broken modules + importScripts(path); + return window.require(parentId, id); +}; +function resolveModuleId(id, paths) { + var testPath = id, tail = ""; + while (testPath) { + var alias = paths[testPath]; + if (typeof alias == "string") { + return alias + tail; + } else if (alias) { + return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name); + } else if (alias === false) { + return ""; + } + var i = testPath.lastIndexOf("/"); + if (i === -1) break; + tail = testPath.substr(i) + tail; + testPath = testPath.slice(0, i); + } + return id; +} +window.require.modules = {}; +window.require.tlns = {}; + +window.define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + if (typeof id != "string") { + deps = id; + id = window.require.id; + } + } else if (arguments.length == 1) { + factory = id; + deps = []; + id = window.require.id; + } + + if (typeof factory != "function") { + window.require.modules[id] = { + exports: factory, + initialized: true + }; + return; + } + + if (!deps.length) + // If there is no dependencies, we inject "require", "exports" and + // "module" as dependencies, to provide CommonJS compatibility. + deps = ["require", "exports", "module"]; + + var req = function(childId) { + return window.require(id, childId); + }; + + window.require.modules[id] = { + exports: {}, + factory: function() { + var module = this; + var returnExports = factory.apply(this, deps.map(function(dep) { + switch (dep) { + // Because "require", "exports" and "module" aren't actual + // dependencies, we must handle them seperately. + case "require": return req; + case "exports": return module.exports; + case "module": return module; + // But for all other dependencies, we can just go ahead and + // require them. + default: return req(dep); + } + })); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; +window.define.amd = {}; +require.tlns = {}; +window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { + for (var i in topLevelNamespaces) + require.tlns[i] = topLevelNamespaces[i]; +}; + +window.initSender = function initSender() { + + var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter; + var oop = window.require("ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +}; + +var main = window.main = null; +var sender = window.sender = null; + +window.onmessage = function(e) { + var msg = e.data; + if (msg.event && sender) { + sender._signal(msg.event, msg.data); + } + else if (msg.command) { + if (main[msg.command]) + main[msg.command].apply(main, msg.args); + else if (window[msg.command]) + window[msg.command].apply(window, msg.args); + else + throw new Error("Unknown command:" + msg.command); + } + else if (msg.init) { + window.initBaseUrls(msg.tlns); + require("ace/lib/es5-shim"); + sender = window.sender = window.initSender(); + var clazz = require(msg.module)[msg.classname]; + main = window.main = new clazz(sender); + } +}; +})(this); + +ace.define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +ace.define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0) + else + return new Range(this.start.row, 0, this.end.row, 0) + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +ace.define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +} +}); + +ace.define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) + this.$splitAndapplyLargeDelta(delta, 20000); + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length; + var row = delta.start.row; + var column = delta.start.column; + var from = 0, to = 0; + do { + from = to; + to += MAX - 1; + var chunk = lines.slice(from, to); + if (to > l) { + delta.lines = chunk; + delta.start.row = row + from; + delta.start.column = column; + break; + } + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } while(true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: lines[l-1].length}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +ace.define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var Document = require("../document").Document; +var lang = require("../lib/lang"); + +var Mirror = exports.Mirror = function(sender) { + this.sender = sender; + var doc = this.doc = new Document(""); + + var deferredUpdate = this.deferredUpdate = lang.delayedCall(this.onUpdate.bind(this)); + + var _self = this; + sender.on("change", function(e) { + var data = e.data; + if (data[0].start) { + doc.applyDeltas(data); + } else { + for (var i = 0; i < data.length; i += 2) { + if (Array.isArray(data[i+1])) { + var d = {action: "insert", start: data[i], lines: data[i+1]}; + } else { + var d = {action: "remove", start: data[i], end: data[i+1]}; + } + doc.applyDelta(d, true); + } + } + if (_self.$timeout) + return deferredUpdate.schedule(_self.$timeout); + _self.onUpdate(); + }); +}; + +(function() { + + this.$timeout = 500; + + this.setTimeout = function(timeout) { + this.$timeout = timeout; + }; + + this.setValue = function(value) { + this.doc.setValue(value); + this.deferredUpdate.schedule(this.$timeout); + }; + + this.getValue = function(callbackId) { + this.sender.callback(this.doc.getValue(), callbackId); + }; + + this.onUpdate = function() { + }; + + this.isPending = function() { + return this.deferredUpdate.isPending(); + }; + +}).call(Mirror.prototype); + +}); + +ace.define("ace/mode/css/csslint",["require","exports","module"], function(require, exports, module) { +var parserlib = {}; +(function(){ +function EventTarget(){ + this._listeners = {}; +} + +EventTarget.prototype = { + constructor: EventTarget, + addListener: function(type, listener){ + if (!this._listeners[type]){ + this._listeners[type] = []; + } + + this._listeners[type].push(listener); + }, + fire: function(event){ + if (typeof event == "string"){ + event = { type: event }; + } + if (typeof event.target != "undefined"){ + event.target = this; + } + + if (typeof event.type == "undefined"){ + throw new Error("Event object missing 'type' property."); + } + + if (this._listeners[event.type]){ + var listeners = this._listeners[event.type].concat(); + for (var i=0, len=listeners.length; i < len; i++){ + listeners[i].call(this, event); + } + } + }, + removeListener: function(type, listener){ + if (this._listeners[type]){ + var listeners = this._listeners[type]; + for (var i=0, len=listeners.length; i < len; i++){ + if (listeners[i] === listener){ + listeners.splice(i, 1); + break; + } + } + + + } + } +}; +function StringReader(text){ + this._input = text.replace(/\n\r?/g, "\n"); + this._line = 1; + this._col = 1; + this._cursor = 0; +} + +StringReader.prototype = { + constructor: StringReader, + getCol: function(){ + return this._col; + }, + getLine: function(){ + return this._line ; + }, + eof: function(){ + return (this._cursor == this._input.length); + }, + peek: function(count){ + var c = null; + count = (typeof count == "undefined" ? 1 : count); + if (this._cursor < this._input.length){ + c = this._input.charAt(this._cursor + count - 1); + } + + return c; + }, + read: function(){ + var c = null; + if (this._cursor < this._input.length){ + if (this._input.charAt(this._cursor) == "\n"){ + this._line++; + this._col=1; + } else { + this._col++; + } + c = this._input.charAt(this._cursor++); + } + + return c; + }, + mark: function(){ + this._bookmark = { + cursor: this._cursor, + line: this._line, + col: this._col + }; + }, + + reset: function(){ + if (this._bookmark){ + this._cursor = this._bookmark.cursor; + this._line = this._bookmark.line; + this._col = this._bookmark.col; + delete this._bookmark; + } + }, + readTo: function(pattern){ + + var buffer = "", + c; + while (buffer.length < pattern.length || buffer.lastIndexOf(pattern) != buffer.length - pattern.length){ + c = this.read(); + if (c){ + buffer += c; + } else { + throw new Error("Expected \"" + pattern + "\" at line " + this._line + ", col " + this._col + "."); + } + } + + return buffer; + + }, + readWhile: function(filter){ + + var buffer = "", + c = this.read(); + + while(c !== null && filter(c)){ + buffer += c; + c = this.read(); + } + + return buffer; + + }, + readMatch: function(matcher){ + + var source = this._input.substring(this._cursor), + value = null; + if (typeof matcher == "string"){ + if (source.indexOf(matcher) === 0){ + value = this.readCount(matcher.length); + } + } else if (matcher instanceof RegExp){ + if (matcher.test(source)){ + value = this.readCount(RegExp.lastMatch.length); + } + } + + return value; + }, + readCount: function(count){ + var buffer = ""; + + while(count--){ + buffer += this.read(); + } + + return buffer; + } + +}; +function SyntaxError(message, line, col){ + this.col = col; + this.line = line; + this.message = message; + +} +SyntaxError.prototype = new Error(); +function SyntaxUnit(text, line, col, type){ + this.col = col; + this.line = line; + this.text = text; + this.type = type; +} +SyntaxUnit.fromToken = function(token){ + return new SyntaxUnit(token.value, token.startLine, token.startCol); +}; + +SyntaxUnit.prototype = { + constructor: SyntaxUnit, + valueOf: function(){ + return this.text; + }, + toString: function(){ + return this.text; + } + +}; +function TokenStreamBase(input, tokenData){ + this._reader = input ? new StringReader(input.toString()) : null; + this._token = null; + this._tokenData = tokenData; + this._lt = []; + this._ltIndex = 0; + + this._ltIndexCache = []; +} +TokenStreamBase.createTokenData = function(tokens){ + + var nameMap = [], + typeMap = {}, + tokenData = tokens.concat([]), + i = 0, + len = tokenData.length+1; + + tokenData.UNKNOWN = -1; + tokenData.unshift({name:"EOF"}); + + for (; i < len; i++){ + nameMap.push(tokenData[i].name); + tokenData[tokenData[i].name] = i; + if (tokenData[i].text){ + typeMap[tokenData[i].text] = i; + } + } + + tokenData.name = function(tt){ + return nameMap[tt]; + }; + + tokenData.type = function(c){ + return typeMap[c]; + }; + + return tokenData; +}; + +TokenStreamBase.prototype = { + constructor: TokenStreamBase, + match: function(tokenTypes, channel){ + if (!(tokenTypes instanceof Array)){ + tokenTypes = [tokenTypes]; + } + + var tt = this.get(channel), + i = 0, + len = tokenTypes.length; + + while(i < len){ + if (tt == tokenTypes[i++]){ + return true; + } + } + this.unget(); + return false; + }, + mustMatch: function(tokenTypes, channel){ + + var token; + if (!(tokenTypes instanceof Array)){ + tokenTypes = [tokenTypes]; + } + + if (!this.match.apply(this, arguments)){ + token = this.LT(1); + throw new SyntaxError("Expected " + this._tokenData[tokenTypes[0]].name + + " at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + } + }, + advance: function(tokenTypes, channel){ + + while(this.LA(0) !== 0 && !this.match(tokenTypes, channel)){ + this.get(); + } + + return this.LA(0); + }, + get: function(channel){ + + var tokenInfo = this._tokenData, + reader = this._reader, + value, + i =0, + len = tokenInfo.length, + found = false, + token, + info; + if (this._lt.length && this._ltIndex >= 0 && this._ltIndex < this._lt.length){ + + i++; + this._token = this._lt[this._ltIndex++]; + info = tokenInfo[this._token.type]; + while((info.channel !== undefined && channel !== info.channel) && + this._ltIndex < this._lt.length){ + this._token = this._lt[this._ltIndex++]; + info = tokenInfo[this._token.type]; + i++; + } + if ((info.channel === undefined || channel === info.channel) && + this._ltIndex <= this._lt.length){ + this._ltIndexCache.push(i); + return this._token.type; + } + } + token = this._getToken(); + if (token.type > -1 && !tokenInfo[token.type].hide){ + token.channel = tokenInfo[token.type].channel; + this._token = token; + this._lt.push(token); + this._ltIndexCache.push(this._lt.length - this._ltIndex + i); + if (this._lt.length > 5){ + this._lt.shift(); + } + if (this._ltIndexCache.length > 5){ + this._ltIndexCache.shift(); + } + this._ltIndex = this._lt.length; + } + info = tokenInfo[token.type]; + if (info && + (info.hide || + (info.channel !== undefined && channel !== info.channel))){ + return this.get(channel); + } else { + return token.type; + } + }, + LA: function(index){ + var total = index, + tt; + if (index > 0){ + if (index > 5){ + throw new Error("Too much lookahead."); + } + while(total){ + tt = this.get(); + total--; + } + while(total < index){ + this.unget(); + total++; + } + } else if (index < 0){ + + if(this._lt[this._ltIndex+index]){ + tt = this._lt[this._ltIndex+index].type; + } else { + throw new Error("Too much lookbehind."); + } + + } else { + tt = this._token.type; + } + + return tt; + + }, + LT: function(index){ + this.LA(index); + return this._lt[this._ltIndex+index-1]; + }, + peek: function(){ + return this.LA(1); + }, + token: function(){ + return this._token; + }, + tokenName: function(tokenType){ + if (tokenType < 0 || tokenType > this._tokenData.length){ + return "UNKNOWN_TOKEN"; + } else { + return this._tokenData[tokenType].name; + } + }, + tokenType: function(tokenName){ + return this._tokenData[tokenName] || -1; + }, + unget: function(){ + if (this._ltIndexCache.length){ + this._ltIndex -= this._ltIndexCache.pop();//--; + this._token = this._lt[this._ltIndex - 1]; + } else { + throw new Error("Too much lookahead."); + } + } + +}; + + +parserlib.util = { +StringReader: StringReader, +SyntaxError : SyntaxError, +SyntaxUnit : SyntaxUnit, +EventTarget : EventTarget, +TokenStreamBase : TokenStreamBase +}; +})(); +(function(){ +var EventTarget = parserlib.util.EventTarget, +TokenStreamBase = parserlib.util.TokenStreamBase, +StringReader = parserlib.util.StringReader, +SyntaxError = parserlib.util.SyntaxError, +SyntaxUnit = parserlib.util.SyntaxUnit; + +var Colors = { + aliceblue :"#f0f8ff", + antiquewhite :"#faebd7", + aqua :"#00ffff", + aquamarine :"#7fffd4", + azure :"#f0ffff", + beige :"#f5f5dc", + bisque :"#ffe4c4", + black :"#000000", + blanchedalmond :"#ffebcd", + blue :"#0000ff", + blueviolet :"#8a2be2", + brown :"#a52a2a", + burlywood :"#deb887", + cadetblue :"#5f9ea0", + chartreuse :"#7fff00", + chocolate :"#d2691e", + coral :"#ff7f50", + cornflowerblue :"#6495ed", + cornsilk :"#fff8dc", + crimson :"#dc143c", + cyan :"#00ffff", + darkblue :"#00008b", + darkcyan :"#008b8b", + darkgoldenrod :"#b8860b", + darkgray :"#a9a9a9", + darkgrey :"#a9a9a9", + darkgreen :"#006400", + darkkhaki :"#bdb76b", + darkmagenta :"#8b008b", + darkolivegreen :"#556b2f", + darkorange :"#ff8c00", + darkorchid :"#9932cc", + darkred :"#8b0000", + darksalmon :"#e9967a", + darkseagreen :"#8fbc8f", + darkslateblue :"#483d8b", + darkslategray :"#2f4f4f", + darkslategrey :"#2f4f4f", + darkturquoise :"#00ced1", + darkviolet :"#9400d3", + deeppink :"#ff1493", + deepskyblue :"#00bfff", + dimgray :"#696969", + dimgrey :"#696969", + dodgerblue :"#1e90ff", + firebrick :"#b22222", + floralwhite :"#fffaf0", + forestgreen :"#228b22", + fuchsia :"#ff00ff", + gainsboro :"#dcdcdc", + ghostwhite :"#f8f8ff", + gold :"#ffd700", + goldenrod :"#daa520", + gray :"#808080", + grey :"#808080", + green :"#008000", + greenyellow :"#adff2f", + honeydew :"#f0fff0", + hotpink :"#ff69b4", + indianred :"#cd5c5c", + indigo :"#4b0082", + ivory :"#fffff0", + khaki :"#f0e68c", + lavender :"#e6e6fa", + lavenderblush :"#fff0f5", + lawngreen :"#7cfc00", + lemonchiffon :"#fffacd", + lightblue :"#add8e6", + lightcoral :"#f08080", + lightcyan :"#e0ffff", + lightgoldenrodyellow :"#fafad2", + lightgray :"#d3d3d3", + lightgrey :"#d3d3d3", + lightgreen :"#90ee90", + lightpink :"#ffb6c1", + lightsalmon :"#ffa07a", + lightseagreen :"#20b2aa", + lightskyblue :"#87cefa", + lightslategray :"#778899", + lightslategrey :"#778899", + lightsteelblue :"#b0c4de", + lightyellow :"#ffffe0", + lime :"#00ff00", + limegreen :"#32cd32", + linen :"#faf0e6", + magenta :"#ff00ff", + maroon :"#800000", + mediumaquamarine:"#66cdaa", + mediumblue :"#0000cd", + mediumorchid :"#ba55d3", + mediumpurple :"#9370d8", + mediumseagreen :"#3cb371", + mediumslateblue :"#7b68ee", + mediumspringgreen :"#00fa9a", + mediumturquoise :"#48d1cc", + mediumvioletred :"#c71585", + midnightblue :"#191970", + mintcream :"#f5fffa", + mistyrose :"#ffe4e1", + moccasin :"#ffe4b5", + navajowhite :"#ffdead", + navy :"#000080", + oldlace :"#fdf5e6", + olive :"#808000", + olivedrab :"#6b8e23", + orange :"#ffa500", + orangered :"#ff4500", + orchid :"#da70d6", + palegoldenrod :"#eee8aa", + palegreen :"#98fb98", + paleturquoise :"#afeeee", + palevioletred :"#d87093", + papayawhip :"#ffefd5", + peachpuff :"#ffdab9", + peru :"#cd853f", + pink :"#ffc0cb", + plum :"#dda0dd", + powderblue :"#b0e0e6", + purple :"#800080", + red :"#ff0000", + rosybrown :"#bc8f8f", + royalblue :"#4169e1", + saddlebrown :"#8b4513", + salmon :"#fa8072", + sandybrown :"#f4a460", + seagreen :"#2e8b57", + seashell :"#fff5ee", + sienna :"#a0522d", + silver :"#c0c0c0", + skyblue :"#87ceeb", + slateblue :"#6a5acd", + slategray :"#708090", + slategrey :"#708090", + snow :"#fffafa", + springgreen :"#00ff7f", + steelblue :"#4682b4", + tan :"#d2b48c", + teal :"#008080", + thistle :"#d8bfd8", + tomato :"#ff6347", + turquoise :"#40e0d0", + violet :"#ee82ee", + wheat :"#f5deb3", + white :"#ffffff", + whitesmoke :"#f5f5f5", + yellow :"#ffff00", + yellowgreen :"#9acd32", + activeBorder :"Active window border.", + activecaption :"Active window caption.", + appworkspace :"Background color of multiple document interface.", + background :"Desktop background.", + buttonface :"The face background color for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttonhighlight :"The color of the border facing the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttonshadow :"The color of the border away from the light source for 3-D elements that appear 3-D due to one layer of surrounding border.", + buttontext :"Text on push buttons.", + captiontext :"Text in caption, size box, and scrollbar arrow box.", + graytext :"Grayed (disabled) text. This color is set to #000 if the current display driver does not support a solid gray color.", + greytext :"Greyed (disabled) text. This color is set to #000 if the current display driver does not support a solid grey color.", + highlight :"Item(s) selected in a control.", + highlighttext :"Text of item(s) selected in a control.", + inactiveborder :"Inactive window border.", + inactivecaption :"Inactive window caption.", + inactivecaptiontext :"Color of text in an inactive caption.", + infobackground :"Background color for tooltip controls.", + infotext :"Text color for tooltip controls.", + menu :"Menu background.", + menutext :"Text in menus.", + scrollbar :"Scroll bar gray area.", + threeddarkshadow :"The color of the darker (generally outer) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedface :"The face background color for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedhighlight :"The color of the lighter (generally outer) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedlightshadow :"The color of the darker (generally inner) of the two borders facing the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + threedshadow :"The color of the lighter (generally inner) of the two borders away from the light source for 3-D elements that appear 3-D due to two concentric layers of surrounding border.", + window :"Window background.", + windowframe :"Window frame.", + windowtext :"Text in windows." +}; +function Combinator(text, line, col){ + + SyntaxUnit.call(this, text, line, col, Parser.COMBINATOR_TYPE); + this.type = "unknown"; + if (/^\s+$/.test(text)){ + this.type = "descendant"; + } else if (text == ">"){ + this.type = "child"; + } else if (text == "+"){ + this.type = "adjacent-sibling"; + } else if (text == "~"){ + this.type = "sibling"; + } + +} + +Combinator.prototype = new SyntaxUnit(); +Combinator.prototype.constructor = Combinator; +function MediaFeature(name, value){ + + SyntaxUnit.call(this, "(" + name + (value !== null ? ":" + value : "") + ")", name.startLine, name.startCol, Parser.MEDIA_FEATURE_TYPE); + this.name = name; + this.value = value; +} + +MediaFeature.prototype = new SyntaxUnit(); +MediaFeature.prototype.constructor = MediaFeature; +function MediaQuery(modifier, mediaType, features, line, col){ + + SyntaxUnit.call(this, (modifier ? modifier + " ": "") + (mediaType ? mediaType : "") + (mediaType && features.length > 0 ? " and " : "") + features.join(" and "), line, col, Parser.MEDIA_QUERY_TYPE); + this.modifier = modifier; + this.mediaType = mediaType; + this.features = features; + +} + +MediaQuery.prototype = new SyntaxUnit(); +MediaQuery.prototype.constructor = MediaQuery; +function Parser(options){ + EventTarget.call(this); + + + this.options = options || {}; + + this._tokenStream = null; +} +Parser.DEFAULT_TYPE = 0; +Parser.COMBINATOR_TYPE = 1; +Parser.MEDIA_FEATURE_TYPE = 2; +Parser.MEDIA_QUERY_TYPE = 3; +Parser.PROPERTY_NAME_TYPE = 4; +Parser.PROPERTY_VALUE_TYPE = 5; +Parser.PROPERTY_VALUE_PART_TYPE = 6; +Parser.SELECTOR_TYPE = 7; +Parser.SELECTOR_PART_TYPE = 8; +Parser.SELECTOR_SUB_PART_TYPE = 9; + +Parser.prototype = function(){ + + var proto = new EventTarget(), //new prototype + prop, + additions = { + constructor: Parser, + DEFAULT_TYPE : 0, + COMBINATOR_TYPE : 1, + MEDIA_FEATURE_TYPE : 2, + MEDIA_QUERY_TYPE : 3, + PROPERTY_NAME_TYPE : 4, + PROPERTY_VALUE_TYPE : 5, + PROPERTY_VALUE_PART_TYPE : 6, + SELECTOR_TYPE : 7, + SELECTOR_PART_TYPE : 8, + SELECTOR_SUB_PART_TYPE : 9, + + _stylesheet: function(){ + + var tokenStream = this._tokenStream, + charset = null, + count, + token, + tt; + + this.fire("startstylesheet"); + this._charset(); + + this._skipCruft(); + while (tokenStream.peek() == Tokens.IMPORT_SYM){ + this._import(); + this._skipCruft(); + } + while (tokenStream.peek() == Tokens.NAMESPACE_SYM){ + this._namespace(); + this._skipCruft(); + } + tt = tokenStream.peek(); + while(tt > Tokens.EOF){ + + try { + + switch(tt){ + case Tokens.MEDIA_SYM: + this._media(); + this._skipCruft(); + break; + case Tokens.PAGE_SYM: + this._page(); + this._skipCruft(); + break; + case Tokens.FONT_FACE_SYM: + this._font_face(); + this._skipCruft(); + break; + case Tokens.KEYFRAMES_SYM: + this._keyframes(); + this._skipCruft(); + break; + case Tokens.VIEWPORT_SYM: + this._viewport(); + this._skipCruft(); + break; + case Tokens.UNKNOWN_SYM: //unknown @ rule + tokenStream.get(); + if (!this.options.strict){ + this.fire({ + type: "error", + error: null, + message: "Unknown @ rule: " + tokenStream.LT(0).value + ".", + line: tokenStream.LT(0).startLine, + col: tokenStream.LT(0).startCol + }); + count=0; + while (tokenStream.advance([Tokens.LBRACE, Tokens.RBRACE]) == Tokens.LBRACE){ + count++; //keep track of nesting depth + } + + while(count){ + tokenStream.advance([Tokens.RBRACE]); + count--; + } + + } else { + throw new SyntaxError("Unknown @ rule.", tokenStream.LT(0).startLine, tokenStream.LT(0).startCol); + } + break; + case Tokens.S: + this._readWhitespace(); + break; + default: + if(!this._ruleset()){ + switch(tt){ + case Tokens.CHARSET_SYM: + token = tokenStream.LT(1); + this._charset(false); + throw new SyntaxError("@charset not allowed here.", token.startLine, token.startCol); + case Tokens.IMPORT_SYM: + token = tokenStream.LT(1); + this._import(false); + throw new SyntaxError("@import not allowed here.", token.startLine, token.startCol); + case Tokens.NAMESPACE_SYM: + token = tokenStream.LT(1); + this._namespace(false); + throw new SyntaxError("@namespace not allowed here.", token.startLine, token.startCol); + default: + tokenStream.get(); //get the last token + this._unexpectedToken(tokenStream.token()); + } + + } + } + } catch(ex) { + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + } else { + throw ex; + } + } + + tt = tokenStream.peek(); + } + + if (tt != Tokens.EOF){ + this._unexpectedToken(tokenStream.token()); + } + + this.fire("endstylesheet"); + }, + + _charset: function(emit){ + var tokenStream = this._tokenStream, + charset, + token, + line, + col; + + if (tokenStream.match(Tokens.CHARSET_SYM)){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.STRING); + + token = tokenStream.token(); + charset = token.value; + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.SEMICOLON); + + if (emit !== false){ + this.fire({ + type: "charset", + charset:charset, + line: line, + col: col + }); + } + } + }, + + _import: function(emit){ + + var tokenStream = this._tokenStream, + tt, + uri, + importToken, + mediaList = []; + tokenStream.mustMatch(Tokens.IMPORT_SYM); + importToken = tokenStream.token(); + this._readWhitespace(); + + tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); + uri = tokenStream.token().value.replace(/^(?:url\()?["']?([^"']+?)["']?\)?$/, "$1"); + + this._readWhitespace(); + + mediaList = this._media_query_list(); + tokenStream.mustMatch(Tokens.SEMICOLON); + this._readWhitespace(); + + if (emit !== false){ + this.fire({ + type: "import", + uri: uri, + media: mediaList, + line: importToken.startLine, + col: importToken.startCol + }); + } + + }, + + _namespace: function(emit){ + + var tokenStream = this._tokenStream, + line, + col, + prefix, + uri; + tokenStream.mustMatch(Tokens.NAMESPACE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + this._readWhitespace(); + if (tokenStream.match(Tokens.IDENT)){ + prefix = tokenStream.token().value; + this._readWhitespace(); + } + + tokenStream.mustMatch([Tokens.STRING, Tokens.URI]); + uri = tokenStream.token().value.replace(/(?:url\()?["']([^"']+)["']\)?/, "$1"); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.SEMICOLON); + this._readWhitespace(); + + if (emit !== false){ + this.fire({ + type: "namespace", + prefix: prefix, + uri: uri, + line: line, + col: col + }); + } + + }, + + _media: function(){ + var tokenStream = this._tokenStream, + line, + col, + mediaList;// = []; + tokenStream.mustMatch(Tokens.MEDIA_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + mediaList = this._media_query_list(); + + tokenStream.mustMatch(Tokens.LBRACE); + this._readWhitespace(); + + this.fire({ + type: "startmedia", + media: mediaList, + line: line, + col: col + }); + + while(true) { + if (tokenStream.peek() == Tokens.PAGE_SYM){ + this._page(); + } else if (tokenStream.peek() == Tokens.FONT_FACE_SYM){ + this._font_face(); + } else if (tokenStream.peek() == Tokens.VIEWPORT_SYM){ + this._viewport(); + } else if (!this._ruleset()){ + break; + } + } + + tokenStream.mustMatch(Tokens.RBRACE); + this._readWhitespace(); + + this.fire({ + type: "endmedia", + media: mediaList, + line: line, + col: col + }); + }, + _media_query_list: function(){ + var tokenStream = this._tokenStream, + mediaList = []; + + + this._readWhitespace(); + + if (tokenStream.peek() == Tokens.IDENT || tokenStream.peek() == Tokens.LPAREN){ + mediaList.push(this._media_query()); + } + + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + mediaList.push(this._media_query()); + } + + return mediaList; + }, + _media_query: function(){ + var tokenStream = this._tokenStream, + type = null, + ident = null, + token = null, + expressions = []; + + if (tokenStream.match(Tokens.IDENT)){ + ident = tokenStream.token().value.toLowerCase(); + if (ident != "only" && ident != "not"){ + tokenStream.unget(); + ident = null; + } else { + token = tokenStream.token(); + } + } + + this._readWhitespace(); + + if (tokenStream.peek() == Tokens.IDENT){ + type = this._media_type(); + if (token === null){ + token = tokenStream.token(); + } + } else if (tokenStream.peek() == Tokens.LPAREN){ + if (token === null){ + token = tokenStream.LT(1); + } + expressions.push(this._media_expression()); + } + + if (type === null && expressions.length === 0){ + return null; + } else { + this._readWhitespace(); + while (tokenStream.match(Tokens.IDENT)){ + if (tokenStream.token().value.toLowerCase() != "and"){ + this._unexpectedToken(tokenStream.token()); + } + + this._readWhitespace(); + expressions.push(this._media_expression()); + } + } + + return new MediaQuery(ident, type, expressions, token.startLine, token.startCol); + }, + _media_type: function(){ + return this._media_feature(); + }, + _media_expression: function(){ + var tokenStream = this._tokenStream, + feature = null, + token, + expression = null; + + tokenStream.mustMatch(Tokens.LPAREN); + + feature = this._media_feature(); + this._readWhitespace(); + + if (tokenStream.match(Tokens.COLON)){ + this._readWhitespace(); + token = tokenStream.LT(1); + expression = this._expression(); + } + + tokenStream.mustMatch(Tokens.RPAREN); + this._readWhitespace(); + + return new MediaFeature(feature, (expression ? new SyntaxUnit(expression, token.startLine, token.startCol) : null)); + }, + _media_feature: function(){ + var tokenStream = this._tokenStream; + + tokenStream.mustMatch(Tokens.IDENT); + + return SyntaxUnit.fromToken(tokenStream.token()); + }, + _page: function(){ + var tokenStream = this._tokenStream, + line, + col, + identifier = null, + pseudoPage = null; + tokenStream.mustMatch(Tokens.PAGE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + if (tokenStream.match(Tokens.IDENT)){ + identifier = tokenStream.token().value; + if (identifier.toLowerCase() === "auto"){ + this._unexpectedToken(tokenStream.token()); + } + } + if (tokenStream.peek() == Tokens.COLON){ + pseudoPage = this._pseudo_page(); + } + + this._readWhitespace(); + + this.fire({ + type: "startpage", + id: identifier, + pseudo: pseudoPage, + line: line, + col: col + }); + + this._readDeclarations(true, true); + + this.fire({ + type: "endpage", + id: identifier, + pseudo: pseudoPage, + line: line, + col: col + }); + + }, + _margin: function(){ + var tokenStream = this._tokenStream, + line, + col, + marginSym = this._margin_sym(); + + if (marginSym){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this.fire({ + type: "startpagemargin", + margin: marginSym, + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endpagemargin", + margin: marginSym, + line: line, + col: col + }); + return true; + } else { + return false; + } + }, + _margin_sym: function(){ + + var tokenStream = this._tokenStream; + + if(tokenStream.match([Tokens.TOPLEFTCORNER_SYM, Tokens.TOPLEFT_SYM, + Tokens.TOPCENTER_SYM, Tokens.TOPRIGHT_SYM, Tokens.TOPRIGHTCORNER_SYM, + Tokens.BOTTOMLEFTCORNER_SYM, Tokens.BOTTOMLEFT_SYM, + Tokens.BOTTOMCENTER_SYM, Tokens.BOTTOMRIGHT_SYM, + Tokens.BOTTOMRIGHTCORNER_SYM, Tokens.LEFTTOP_SYM, + Tokens.LEFTMIDDLE_SYM, Tokens.LEFTBOTTOM_SYM, Tokens.RIGHTTOP_SYM, + Tokens.RIGHTMIDDLE_SYM, Tokens.RIGHTBOTTOM_SYM])) + { + return SyntaxUnit.fromToken(tokenStream.token()); + } else { + return null; + } + + }, + + _pseudo_page: function(){ + + var tokenStream = this._tokenStream; + + tokenStream.mustMatch(Tokens.COLON); + tokenStream.mustMatch(Tokens.IDENT); + + return tokenStream.token().value; + }, + + _font_face: function(){ + var tokenStream = this._tokenStream, + line, + col; + tokenStream.mustMatch(Tokens.FONT_FACE_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + this.fire({ + type: "startfontface", + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endfontface", + line: line, + col: col + }); + }, + + _viewport: function(){ + var tokenStream = this._tokenStream, + line, + col; + + tokenStream.mustMatch(Tokens.VIEWPORT_SYM); + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + + this._readWhitespace(); + + this.fire({ + type: "startviewport", + line: line, + col: col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endviewport", + line: line, + col: col + }); + + }, + + _operator: function(inFunction){ + + var tokenStream = this._tokenStream, + token = null; + + if (tokenStream.match([Tokens.SLASH, Tokens.COMMA]) || + (inFunction && tokenStream.match([Tokens.PLUS, Tokens.STAR, Tokens.MINUS]))){ + token = tokenStream.token(); + this._readWhitespace(); + } + return token ? PropertyValuePart.fromToken(token) : null; + + }, + + _combinator: function(){ + + var tokenStream = this._tokenStream, + value = null, + token; + + if(tokenStream.match([Tokens.PLUS, Tokens.GREATER, Tokens.TILDE])){ + token = tokenStream.token(); + value = new Combinator(token.value, token.startLine, token.startCol); + this._readWhitespace(); + } + + return value; + }, + + _unary_operator: function(){ + + var tokenStream = this._tokenStream; + + if (tokenStream.match([Tokens.MINUS, Tokens.PLUS])){ + return tokenStream.token().value; + } else { + return null; + } + }, + + _property: function(){ + + var tokenStream = this._tokenStream, + value = null, + hack = null, + tokenValue, + token, + line, + col; + if (tokenStream.peek() == Tokens.STAR && this.options.starHack){ + tokenStream.get(); + token = tokenStream.token(); + hack = token.value; + line = token.startLine; + col = token.startCol; + } + + if(tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + tokenValue = token.value; + if (tokenValue.charAt(0) == "_" && this.options.underscoreHack){ + hack = "_"; + tokenValue = tokenValue.substring(1); + } + + value = new PropertyName(tokenValue, hack, (line||token.startLine), (col||token.startCol)); + this._readWhitespace(); + } + + return value; + }, + _ruleset: function(){ + + var tokenStream = this._tokenStream, + tt, + selectors; + try { + selectors = this._selectors_group(); + } catch (ex){ + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + tt = tokenStream.advance([Tokens.RBRACE]); + if (tt == Tokens.RBRACE){ + } else { + throw ex; + } + + } else { + throw ex; + } + return true; + } + if (selectors){ + + this.fire({ + type: "startrule", + selectors: selectors, + line: selectors[0].line, + col: selectors[0].col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endrule", + selectors: selectors, + line: selectors[0].line, + col: selectors[0].col + }); + + } + + return selectors; + + }, + _selectors_group: function(){ + var tokenStream = this._tokenStream, + selectors = [], + selector; + + selector = this._selector(); + if (selector !== null){ + + selectors.push(selector); + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + selector = this._selector(); + if (selector !== null){ + selectors.push(selector); + } else { + this._unexpectedToken(tokenStream.LT(1)); + } + } + } + + return selectors.length ? selectors : null; + }, + _selector: function(){ + + var tokenStream = this._tokenStream, + selector = [], + nextSelector = null, + combinator = null, + ws = null; + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + return null; + } + + selector.push(nextSelector); + + do { + combinator = this._combinator(); + + if (combinator !== null){ + selector.push(combinator); + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + this._unexpectedToken(tokenStream.LT(1)); + } else { + selector.push(nextSelector); + } + } else { + if (this._readWhitespace()){ + ws = new Combinator(tokenStream.token().value, tokenStream.token().startLine, tokenStream.token().startCol); + combinator = this._combinator(); + nextSelector = this._simple_selector_sequence(); + if (nextSelector === null){ + if (combinator !== null){ + this._unexpectedToken(tokenStream.LT(1)); + } + } else { + + if (combinator !== null){ + selector.push(combinator); + } else { + selector.push(ws); + } + + selector.push(nextSelector); + } + } else { + break; + } + + } + } while(true); + + return new Selector(selector, selector[0].line, selector[0].col); + }, + _simple_selector_sequence: function(){ + + var tokenStream = this._tokenStream, + elementName = null, + modifiers = [], + selectorText= "", + components = [ + function(){ + return tokenStream.match(Tokens.HASH) ? + new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : + null; + }, + this._class, + this._attrib, + this._pseudo, + this._negation + ], + i = 0, + len = components.length, + component = null, + found = false, + line, + col; + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + + elementName = this._type_selector(); + if (!elementName){ + elementName = this._universal(); + } + + if (elementName !== null){ + selectorText += elementName; + } + + while(true){ + if (tokenStream.peek() === Tokens.S){ + break; + } + while(i < len && component === null){ + component = components[i++].call(this); + } + + if (component === null){ + if (selectorText === ""){ + return null; + } else { + break; + } + } else { + i = 0; + modifiers.push(component); + selectorText += component.toString(); + component = null; + } + } + + + return selectorText !== "" ? + new SelectorPart(elementName, modifiers, selectorText, line, col) : + null; + }, + _type_selector: function(){ + + var tokenStream = this._tokenStream, + ns = this._namespace_prefix(), + elementName = this._element_name(); + + if (!elementName){ + if (ns){ + tokenStream.unget(); + if (ns.length > 1){ + tokenStream.unget(); + } + } + + return null; + } else { + if (ns){ + elementName.text = ns + elementName.text; + elementName.col -= ns.length; + } + return elementName; + } + }, + _class: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.DOT)){ + tokenStream.mustMatch(Tokens.IDENT); + token = tokenStream.token(); + return new SelectorSubPart("." + token.value, "class", token.startLine, token.startCol - 1); + } else { + return null; + } + + }, + _element_name: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + return new SelectorSubPart(token.value, "elementName", token.startLine, token.startCol); + + } else { + return null; + } + }, + _namespace_prefix: function(){ + var tokenStream = this._tokenStream, + value = ""; + if (tokenStream.LA(1) === Tokens.PIPE || tokenStream.LA(2) === Tokens.PIPE){ + + if(tokenStream.match([Tokens.IDENT, Tokens.STAR])){ + value += tokenStream.token().value; + } + + tokenStream.mustMatch(Tokens.PIPE); + value += "|"; + + } + + return value.length ? value : null; + }, + _universal: function(){ + var tokenStream = this._tokenStream, + value = "", + ns; + + ns = this._namespace_prefix(); + if(ns){ + value += ns; + } + + if(tokenStream.match(Tokens.STAR)){ + value += "*"; + } + + return value.length ? value : null; + + }, + _attrib: function(){ + + var tokenStream = this._tokenStream, + value = null, + ns, + token; + + if (tokenStream.match(Tokens.LBRACKET)){ + token = tokenStream.token(); + value = token.value; + value += this._readWhitespace(); + + ns = this._namespace_prefix(); + + if (ns){ + value += ns; + } + + tokenStream.mustMatch(Tokens.IDENT); + value += tokenStream.token().value; + value += this._readWhitespace(); + + if(tokenStream.match([Tokens.PREFIXMATCH, Tokens.SUFFIXMATCH, Tokens.SUBSTRINGMATCH, + Tokens.EQUALS, Tokens.INCLUDES, Tokens.DASHMATCH])){ + + value += tokenStream.token().value; + value += this._readWhitespace(); + + tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); + value += tokenStream.token().value; + value += this._readWhitespace(); + } + + tokenStream.mustMatch(Tokens.RBRACKET); + + return new SelectorSubPart(value + "]", "attribute", token.startLine, token.startCol); + } else { + return null; + } + }, + _pseudo: function(){ + + var tokenStream = this._tokenStream, + pseudo = null, + colons = ":", + line, + col; + + if (tokenStream.match(Tokens.COLON)){ + + if (tokenStream.match(Tokens.COLON)){ + colons += ":"; + } + + if (tokenStream.match(Tokens.IDENT)){ + pseudo = tokenStream.token().value; + line = tokenStream.token().startLine; + col = tokenStream.token().startCol - colons.length; + } else if (tokenStream.peek() == Tokens.FUNCTION){ + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol - colons.length; + pseudo = this._functional_pseudo(); + } + + if (pseudo){ + pseudo = new SelectorSubPart(colons + pseudo, "pseudo", line, col); + } + } + + return pseudo; + }, + _functional_pseudo: function(){ + + var tokenStream = this._tokenStream, + value = null; + + if(tokenStream.match(Tokens.FUNCTION)){ + value = tokenStream.token().value; + value += this._readWhitespace(); + value += this._expression(); + tokenStream.mustMatch(Tokens.RPAREN); + value += ")"; + } + + return value; + }, + _expression: function(){ + + var tokenStream = this._tokenStream, + value = ""; + + while(tokenStream.match([Tokens.PLUS, Tokens.MINUS, Tokens.DIMENSION, + Tokens.NUMBER, Tokens.STRING, Tokens.IDENT, Tokens.LENGTH, + Tokens.FREQ, Tokens.ANGLE, Tokens.TIME, + Tokens.RESOLUTION, Tokens.SLASH])){ + + value += tokenStream.token().value; + value += this._readWhitespace(); + } + + return value.length ? value : null; + + }, + _negation: function(){ + + var tokenStream = this._tokenStream, + line, + col, + value = "", + arg, + subpart = null; + + if (tokenStream.match(Tokens.NOT)){ + value = tokenStream.token().value; + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + value += this._readWhitespace(); + arg = this._negation_arg(); + value += arg; + value += this._readWhitespace(); + tokenStream.match(Tokens.RPAREN); + value += tokenStream.token().value; + + subpart = new SelectorSubPart(value, "not", line, col); + subpart.args.push(arg); + } + + return subpart; + }, + _negation_arg: function(){ + + var tokenStream = this._tokenStream, + args = [ + this._type_selector, + this._universal, + function(){ + return tokenStream.match(Tokens.HASH) ? + new SelectorSubPart(tokenStream.token().value, "id", tokenStream.token().startLine, tokenStream.token().startCol) : + null; + }, + this._class, + this._attrib, + this._pseudo + ], + arg = null, + i = 0, + len = args.length, + elementName, + line, + col, + part; + + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + + while(i < len && arg === null){ + + arg = args[i].call(this); + i++; + } + if (arg === null){ + this._unexpectedToken(tokenStream.LT(1)); + } + if (arg.type == "elementName"){ + part = new SelectorPart(arg, [], arg.toString(), line, col); + } else { + part = new SelectorPart(null, [arg], arg.toString(), line, col); + } + + return part; + }, + + _declaration: function(){ + + var tokenStream = this._tokenStream, + property = null, + expr = null, + prio = null, + error = null, + invalid = null, + propertyName= ""; + + property = this._property(); + if (property !== null){ + + tokenStream.mustMatch(Tokens.COLON); + this._readWhitespace(); + + expr = this._expr(); + if (!expr || expr.length === 0){ + this._unexpectedToken(tokenStream.LT(1)); + } + + prio = this._prio(); + propertyName = property.toString(); + if (this.options.starHack && property.hack == "*" || + this.options.underscoreHack && property.hack == "_") { + + propertyName = property.text; + } + + try { + this._validateProperty(propertyName, expr); + } catch (ex) { + invalid = ex; + } + + this.fire({ + type: "property", + property: property, + value: expr, + important: prio, + line: property.line, + col: property.col, + invalid: invalid + }); + + return true; + } else { + return false; + } + }, + + _prio: function(){ + + var tokenStream = this._tokenStream, + result = tokenStream.match(Tokens.IMPORTANT_SYM); + + this._readWhitespace(); + return result; + }, + + _expr: function(inFunction){ + + var tokenStream = this._tokenStream, + values = [], + value = null, + operator = null; + + value = this._term(inFunction); + if (value !== null){ + + values.push(value); + + do { + operator = this._operator(inFunction); + if (operator){ + values.push(operator); + } /*else { + values.push(new PropertyValue(valueParts, valueParts[0].line, valueParts[0].col)); + valueParts = []; + }*/ + + value = this._term(inFunction); + + if (value === null){ + break; + } else { + values.push(value); + } + } while(true); + } + + return values.length > 0 ? new PropertyValue(values, values[0].line, values[0].col) : null; + }, + + _term: function(inFunction){ + + var tokenStream = this._tokenStream, + unary = null, + value = null, + endChar = null, + token, + line, + col; + unary = this._unary_operator(); + if (unary !== null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + if (tokenStream.peek() == Tokens.IE_FUNCTION && this.options.ieFilters){ + + value = this._ie_function(); + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + } else if (inFunction && tokenStream.match([Tokens.LPAREN, Tokens.LBRACE, Tokens.LBRACKET])){ + + token = tokenStream.token(); + endChar = token.endChar; + value = token.value + this._expr(inFunction).text; + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + tokenStream.mustMatch(Tokens.type(endChar)); + value += endChar; + this._readWhitespace(); + } else if (tokenStream.match([Tokens.NUMBER, Tokens.PERCENTAGE, Tokens.LENGTH, + Tokens.ANGLE, Tokens.TIME, + Tokens.FREQ, Tokens.STRING, Tokens.IDENT, Tokens.URI, Tokens.UNICODE_RANGE])){ + + value = tokenStream.token().value; + if (unary === null){ + line = tokenStream.token().startLine; + col = tokenStream.token().startCol; + } + this._readWhitespace(); + } else { + token = this._hexcolor(); + if (token === null){ + if (unary === null){ + line = tokenStream.LT(1).startLine; + col = tokenStream.LT(1).startCol; + } + if (value === null){ + if (tokenStream.LA(3) == Tokens.EQUALS && this.options.ieFilters){ + value = this._ie_function(); + } else { + value = this._function(); + } + } + + } else { + value = token.value; + if (unary === null){ + line = token.startLine; + col = token.startCol; + } + } + + } + + return value !== null ? + new PropertyValuePart(unary !== null ? unary + value : value, line, col) : + null; + + }, + + _function: function(){ + + var tokenStream = this._tokenStream, + functionText = null, + expr = null, + lt; + + if (tokenStream.match(Tokens.FUNCTION)){ + functionText = tokenStream.token().value; + this._readWhitespace(); + expr = this._expr(true); + functionText += expr; + if (this.options.ieFilters && tokenStream.peek() == Tokens.EQUALS){ + do { + + if (this._readWhitespace()){ + functionText += tokenStream.token().value; + } + if (tokenStream.LA(0) == Tokens.COMMA){ + functionText += tokenStream.token().value; + } + + tokenStream.match(Tokens.IDENT); + functionText += tokenStream.token().value; + + tokenStream.match(Tokens.EQUALS); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ + tokenStream.get(); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + } + } while(tokenStream.match([Tokens.COMMA, Tokens.S])); + } + + tokenStream.match(Tokens.RPAREN); + functionText += ")"; + this._readWhitespace(); + } + + return functionText; + }, + + _ie_function: function(){ + + var tokenStream = this._tokenStream, + functionText = null, + expr = null, + lt; + if (tokenStream.match([Tokens.IE_FUNCTION, Tokens.FUNCTION])){ + functionText = tokenStream.token().value; + + do { + + if (this._readWhitespace()){ + functionText += tokenStream.token().value; + } + if (tokenStream.LA(0) == Tokens.COMMA){ + functionText += tokenStream.token().value; + } + + tokenStream.match(Tokens.IDENT); + functionText += tokenStream.token().value; + + tokenStream.match(Tokens.EQUALS); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + while(lt != Tokens.COMMA && lt != Tokens.S && lt != Tokens.RPAREN){ + tokenStream.get(); + functionText += tokenStream.token().value; + lt = tokenStream.peek(); + } + } while(tokenStream.match([Tokens.COMMA, Tokens.S])); + + tokenStream.match(Tokens.RPAREN); + functionText += ")"; + this._readWhitespace(); + } + + return functionText; + }, + + _hexcolor: function(){ + + var tokenStream = this._tokenStream, + token = null, + color; + + if(tokenStream.match(Tokens.HASH)){ + + token = tokenStream.token(); + color = token.value; + if (!/#[a-f0-9]{3,6}/i.test(color)){ + throw new SyntaxError("Expected a hex color but found '" + color + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + } + this._readWhitespace(); + } + + return token; + }, + + _keyframes: function(){ + var tokenStream = this._tokenStream, + token, + tt, + name, + prefix = ""; + + tokenStream.mustMatch(Tokens.KEYFRAMES_SYM); + token = tokenStream.token(); + if (/^@\-([^\-]+)\-/.test(token.value)) { + prefix = RegExp.$1; + } + + this._readWhitespace(); + name = this._keyframe_name(); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.LBRACE); + + this.fire({ + type: "startkeyframes", + name: name, + prefix: prefix, + line: token.startLine, + col: token.startCol + }); + + this._readWhitespace(); + tt = tokenStream.peek(); + while(tt == Tokens.IDENT || tt == Tokens.PERCENTAGE) { + this._keyframe_rule(); + this._readWhitespace(); + tt = tokenStream.peek(); + } + + this.fire({ + type: "endkeyframes", + name: name, + prefix: prefix, + line: token.startLine, + col: token.startCol + }); + + this._readWhitespace(); + tokenStream.mustMatch(Tokens.RBRACE); + + }, + + _keyframe_name: function(){ + var tokenStream = this._tokenStream, + token; + + tokenStream.mustMatch([Tokens.IDENT, Tokens.STRING]); + return SyntaxUnit.fromToken(tokenStream.token()); + }, + + _keyframe_rule: function(){ + var tokenStream = this._tokenStream, + token, + keyList = this._key_list(); + + this.fire({ + type: "startkeyframerule", + keys: keyList, + line: keyList[0].line, + col: keyList[0].col + }); + + this._readDeclarations(true); + + this.fire({ + type: "endkeyframerule", + keys: keyList, + line: keyList[0].line, + col: keyList[0].col + }); + + }, + + _key_list: function(){ + var tokenStream = this._tokenStream, + token, + key, + keyList = []; + keyList.push(this._key()); + + this._readWhitespace(); + + while(tokenStream.match(Tokens.COMMA)){ + this._readWhitespace(); + keyList.push(this._key()); + this._readWhitespace(); + } + + return keyList; + }, + + _key: function(){ + + var tokenStream = this._tokenStream, + token; + + if (tokenStream.match(Tokens.PERCENTAGE)){ + return SyntaxUnit.fromToken(tokenStream.token()); + } else if (tokenStream.match(Tokens.IDENT)){ + token = tokenStream.token(); + + if (/from|to/i.test(token.value)){ + return SyntaxUnit.fromToken(token); + } + + tokenStream.unget(); + } + this._unexpectedToken(tokenStream.LT(1)); + }, + _skipCruft: function(){ + while(this._tokenStream.match([Tokens.S, Tokens.CDO, Tokens.CDC])){ + } + }, + _readDeclarations: function(checkStart, readMargins){ + var tokenStream = this._tokenStream, + tt; + + + this._readWhitespace(); + + if (checkStart){ + tokenStream.mustMatch(Tokens.LBRACE); + } + + this._readWhitespace(); + + try { + + while(true){ + + if (tokenStream.match(Tokens.SEMICOLON) || (readMargins && this._margin())){ + } else if (this._declaration()){ + if (!tokenStream.match(Tokens.SEMICOLON)){ + break; + } + } else { + break; + } + this._readWhitespace(); + } + + tokenStream.mustMatch(Tokens.RBRACE); + this._readWhitespace(); + + } catch (ex) { + if (ex instanceof SyntaxError && !this.options.strict){ + this.fire({ + type: "error", + error: ex, + message: ex.message, + line: ex.line, + col: ex.col + }); + tt = tokenStream.advance([Tokens.SEMICOLON, Tokens.RBRACE]); + if (tt == Tokens.SEMICOLON){ + this._readDeclarations(false, readMargins); + } else if (tt != Tokens.RBRACE){ + throw ex; + } + + } else { + throw ex; + } + } + + }, + _readWhitespace: function(){ + + var tokenStream = this._tokenStream, + ws = ""; + + while(tokenStream.match(Tokens.S)){ + ws += tokenStream.token().value; + } + + return ws; + }, + _unexpectedToken: function(token){ + throw new SyntaxError("Unexpected token '" + token.value + "' at line " + token.startLine + ", col " + token.startCol + ".", token.startLine, token.startCol); + }, + _verifyEnd: function(){ + if (this._tokenStream.LA(1) != Tokens.EOF){ + this._unexpectedToken(this._tokenStream.LT(1)); + } + }, + _validateProperty: function(property, value){ + Validation.validate(property, value); + }, + + parse: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + this._stylesheet(); + }, + + parseStyleSheet: function(input){ + return this.parse(input); + }, + + parseMediaQuery: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + var result = this._media_query(); + this._verifyEnd(); + return result; + }, + parsePropertyValue: function(input){ + + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._expr(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseRule: function(input){ + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._ruleset(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseSelector: function(input){ + + this._tokenStream = new TokenStream(input, Tokens); + this._readWhitespace(); + + var result = this._selector(); + this._readWhitespace(); + this._verifyEnd(); + return result; + }, + parseStyleAttribute: function(input){ + input += "}"; // for error recovery in _readDeclarations() + this._tokenStream = new TokenStream(input, Tokens); + this._readDeclarations(); + } + }; + for (prop in additions){ + if (additions.hasOwnProperty(prop)){ + proto[prop] = additions[prop]; + } + } + + return proto; +}(); +var Properties = { + "align-items" : "flex-start | flex-end | center | baseline | stretch", + "align-content" : "flex-start | flex-end | center | space-between | space-around | stretch", + "align-self" : "auto | flex-start | flex-end | center | baseline | stretch", + "-webkit-align-items" : "flex-start | flex-end | center | baseline | stretch", + "-webkit-align-content" : "flex-start | flex-end | center | space-between | space-around | stretch", + "-webkit-align-self" : "auto | flex-start | flex-end | center | baseline | stretch", + "alignment-adjust" : "auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | | ", + "alignment-baseline" : "baseline | use-script | before-edge | text-before-edge | after-edge | text-after-edge | central | middle | ideographic | alphabetic | hanging | mathematical", + "animation" : 1, + "animation-delay" : { multi: "